diff --git a/CAN_Bootloader/MSW.dll b/CAN_Bootloader/MSW.dll new file mode 100644 index 0000000..bfde764 Binary files /dev/null and b/CAN_Bootloader/MSW.dll differ diff --git a/CAN_Bootloader/USB2XXX.dll b/CAN_Bootloader/USB2XXX.dll index b7649ce..7d01443 100644 Binary files a/CAN_Bootloader/USB2XXX.dll and b/CAN_Bootloader/USB2XXX.dll differ diff --git a/CAN_Bootloader/dlg/诊断子窗口.aardio b/CAN_Bootloader/dlg/诊断子窗口.aardio index 54a0352..4858b01 100644 --- a/CAN_Bootloader/dlg/诊断子窗口.aardio +++ b/CAN_Bootloader/dlg/诊断子窗口.aardio @@ -1,24 +1,28 @@ import win.ui; /*DSG{{*/ -var winform = win.form(text="诊断读取";right=679;bottom=319;border="thin";max=false;mode="popup") +var winform = win.form(text="诊断读取";right=679;bottom=499;border="thin";max=false;mode="popup") winform.add( -btnDID_1701={cls="button";text="电机当前位置霍尔数";left=36;top=162;right=163;bottom=193;z=5}; -btnDID_1702={cls="button";text="软止点位置霍尔数";left=36;top=203;right=163;bottom=234;z=6}; -btnDID_1706={cls="button";text="软止点学习状态";left=178;top=40;right=305;bottom=71;z=7}; -btnDID_1707={cls="button";text="座椅电机电流";left=178;top=80;right=305;bottom=111;z=8}; -btnDID_1708={cls="button";text="模块输入信号状态";left=178;top=121;right=305;bottom=152;z=9}; -btnDID_1709={cls="button";text="模块输出信号状态";left=178;top=162;right=305;bottom=193;z=11}; -btnDID_170B={cls="button";text="系统供电电压";left=178;top=203;right=305;bottom=234;z=10}; -btnDID_F187={cls="button";text="车辆备用零部件编号";left=36;top=40;right=163;bottom=71;z=2}; -btnDID_F18A={cls="button";text="供应商公司名称代码";left=36;top=80;right=163;bottom=111;z=3}; +btnDID_F010={cls="button";text="F010";left=178;top=162;right=305;bottom=193;z=11}; +btnDID_F010w={cls="button";text="写F010";left=336;top=296;right=463;bottom=327;z=16}; +btnDID_F101={cls="button";text="F101";left=178;top=203;right=305;bottom=234;z=10}; +btnDID_F101w={cls="button";text="写F101";left=338;top=335;right=458;bottom=366;z=15}; +btnDID_F159={cls="button";text="F159";left=36;top=162;right=163;bottom=193;z=5}; +btnDID_F15A={cls="button";text="F15A";left=36;top=203;right=163;bottom=234;z=6}; +btnDID_F180={cls="button";text="F180";left=178;top=40;right=305;bottom=71;z=7}; +btnDID_F187={cls="button";text="零部件编号";left=36;top=40;right=163;bottom=71;z=2}; +btnDID_F18A={cls="button";text="供应商名称";left=36;top=80;right=163;bottom=111;z=3}; +btnDID_F18C={cls="button";text="F18C";left=178;top=80;right=305;bottom=111;z=8}; +btnDID_F190={cls="button";text="F190 VIN";left=178;top=121;right=305;bottom=152;z=9}; btnDID_F197={cls="button";text="ECU 系统名称";left=36;top=121;right=163;bottom=152;z=4}; +btn_1003={cls="button";text="扩展会话";left=22;top=296;right=126;bottom=323;z=14}; +btn_2701={cls="button";text="解锁";left=158;top=296;right=262;bottom=323;z=13}; groupbox={cls="groupbox";text="DID";left=16;top=12;right=328;bottom=260;edge=1;z=1}; groupbox2={cls="groupbox";text="DTC";left=343;top=12;right=655;bottom=260;edge=1;z=12} ) /*}}*/ -winform.btnDID_F187.oncommand = function(id,event){ - DiagReadDID(0xF187); +winform.btnDID_F180.oncommand = function(id,event){ + DiagReadDID(0xF180); } winform.btnDID_F18A.oncommand = function(id,event){ @@ -29,32 +33,28 @@ winform.btnDID_F197.oncommand = function(id,event){ DiagReadDID(0xF197); } -winform.btnDID_1701.oncommand = function(id,event){ - DiagReadDID(0x1701); +winform.btnDID_F159.oncommand = function(id,event){ + DiagReadDID(0xF159); } -winform.btnDID_1702.oncommand = function(id,event){ - DiagReadDID(0x1702); +winform.btnDID_F15A.oncommand = function(id,event){ + DiagReadDID(0xF15A); } -winform.btnDID_1706.oncommand = function(id,event){ - DiagReadDID(0x1706); +winform.btnDID_F18C.oncommand = function(id,event){ + DiagReadDID(0xF18C); } -winform.btnDID_1707.oncommand = function(id,event){ - DiagReadDID(0x1707); +winform.btnDID_F190.oncommand = function(id,event){ + DiagReadDID(0xF190); } -winform.btnDID_1708.oncommand = function(id,event){ - DiagReadDID(0x1708); +winform.btnDID_F010.oncommand = function(id,event){ + DiagReadDID(0xF010); } -winform.btnDID_1709.oncommand = function(id,event){ - DiagReadDID(0x1709); -} - -winform.btnDID_170B.oncommand = function(id,event){ - DiagReadDID(0x170B); +winform.btnDID_F101.oncommand = function(id,event){ + DiagReadDID(0xF101); } winform.onClose = function(hwnd,message,wParam,lParam){ @@ -62,6 +62,26 @@ winform.onClose = function(hwnd,message,wParam,lParam){ return 0; } +winform.btn_2701.oncommand = function(id,event){ + ::PostThreadMessage(thrdId,114,0x01,0)//自定义消息 +} + +winform.btn_1003.oncommand = function(id,event){ + ::PostThreadMessage(thrdId,111,0x00,0x03)//自定义消息 +} + +winform.btnDID_F187.oncommand = function(id,event){ + DiagReadDID(0xF187); +} + +winform.btnDID_F010w.oncommand = function(id,event){ + ::PostThreadMessage(thrdId,115,0xF010,0x00)//自定义消息 +} + +winform.btnDID_F101w.oncommand = function(id,event){ + ::PostThreadMessage(thrdId,115,0xF101,0x00)//自定义消息 +} + winform.show(); win.loopMessage(); return winform; \ No newline at end of file diff --git a/CAN_Bootloader/lib/usb2canfd.aardio b/CAN_Bootloader/lib/usb2canfd.aardio index f5db3cf..730c342 100644 --- a/CAN_Bootloader/lib/usb2canfd.aardio +++ b/CAN_Bootloader/lib/usb2canfd.aardio @@ -137,7 +137,7 @@ namespace usb2canfd{ //加载DLL LoadDll = function(){ try{ - DllHandle = ..raw.loadDll("USB2XXX.dll") + DllHandle = ..raw.loadDll("\USB2XXX.dll") } catch(err) { diff --git a/CAN_Bootloader/main.aardio b/CAN_Bootloader/main.aardio index ae4efc6..e1b52e5 100644 --- a/CAN_Bootloader/main.aardio +++ b/CAN_Bootloader/main.aardio @@ -25,7 +25,7 @@ static={cls="static";text="设备";left=1;top=28;right=61;bottom=52;align="cente static2={cls="static";text="通道";left=1;top=66;right=61;bottom=90;align="center";center=1;transparent=1;z=7}; static3={cls="static";text="刷写进度";left=296;top=409;right=349;bottom=429;transparent=1;z=16}; static4={cls="static";text="烧录APP";left=13;top=108;right=85;bottom=132;center=1;transparent=1;z=17}; -static5={cls="static";text="V0.1_20220707";left=451;top=1;right=595;bottom=17;align="right";center=1;transparent=1;z=18}; +static5={cls="static";text="V0.1_20220518";left=451;top=1;right=595;bottom=17;align="right";center=1;transparent=1;z=18}; static6={cls="static";text="FlashDriver";left=13;top=195;right=101;bottom=218;transparent=1;z=23} ) /*}}*/ @@ -163,12 +163,12 @@ var DiagStopReq = function(){ } mainForm.btnReadSw.oncommand = function(id,event){ - DiagReadDID(0xF188); + DiagReadDID(0xF195); } mainForm.btnReadHw.oncommand = function(id,event){ - DiagReadDID(0xF191); + DiagReadDID(0xF193); } mainForm.btnReadF186.oncommand = function(id,event){ diff --git a/CAN_Bootloader/user/CanThread.aardio b/CAN_Bootloader/user/CanThread.aardio index 22ed161..75393ae 100644 --- a/CAN_Bootloader/user/CanThread.aardio +++ b/CAN_Bootloader/user/CanThread.aardio @@ -9,6 +9,20 @@ DiagReqID = 0x751;//0x18dadff1; DiagRespID = 0x759;//0x18daf1df; DiagGloableID = 0x7DF;//0x18DB33F1; stopflag = 0; + +write2Etest = function(did){ + select(did) { + case 0xF010 { + var data = {1,2,3,4, 0,0,0,0, 0,0,0,0, 0,0,0,0,}; + FuncReq2E(did,data); + } + case 0xF101 { + var data = {1,2,3,4, 0,0,0,0, }; + FuncReq2E(did,data); + } + } +} + //注册一个消息钩子函数 FuncLoopMsg = function(msg){ select(msg.message) { @@ -51,7 +65,7 @@ FuncLoopMsg = function(msg){ FuncReadDID(msg.wParam); } case 111 { - FuncReq10(msg.wParam); + FuncReq10(msg.wParam,msg.lParam); } case 112 { FuncReq28(msg.wParam); @@ -62,8 +76,11 @@ FuncLoopMsg = function(msg){ case 114 { FuncReq27(msg.wParam); } + case 115 { + write2Etest(msg.wParam) + } else { - + } } } diff --git a/CAN_Bootloader/user/Diag22code.aardio b/CAN_Bootloader/user/Diag22code.aardio index aaa76ca..669ecc3 100644 --- a/CAN_Bootloader/user/Diag22code.aardio +++ b/CAN_Bootloader/user/Diag22code.aardio @@ -23,11 +23,11 @@ FuncDiag22Pro = function(data){ case 0xF186 { FuncDisplay("当前会话: " + data[3]); } - case 0xF191 { + case 0xF193 { FuncDisplay("硬件版本号"); FuncDisplay(string.pack(table.slice(data,3))); } - case 0xF188 { + case 0xF195 { FuncDisplay("软件版本号"); FuncDisplay(string.pack(table.slice(data,3))); } diff --git a/CAN_Bootloader/user/DiagBootcode.aardio b/CAN_Bootloader/user/DiagBootcode.aardio index 882a279..0195701 100644 --- a/CAN_Bootloader/user/DiagBootcode.aardio +++ b/CAN_Bootloader/user/DiagBootcode.aardio @@ -224,8 +224,8 @@ FuncBootSeq = function(){ FuncClearState(); } else { - var ret = FuncWait(0x10); - nextstate(ret); + //var ret = FuncWait(0x10); + nextstate(0); } } case 4 { @@ -234,8 +234,8 @@ FuncBootSeq = function(){ FuncClearState(); } else { - var ret = FuncWait(0x85); - nextstate(ret); + //var ret = FuncWait(0x85); + nextstate(0); } } case 5 { @@ -244,8 +244,8 @@ FuncBootSeq = function(){ FuncClearState(); } else { - var ret = FuncWait(0x28); - nextstate(ret); + //var ret = FuncWait(0x28); + nextstate(0); } } case 6 { diff --git a/CAN_Bootloader/user/GeelySecurety.aardio b/CAN_Bootloader/user/GeelySecurety.aardio index ec45635..bbfc84d 100644 --- a/CAN_Bootloader/user/GeelySecurety.aardio +++ b/CAN_Bootloader/user/GeelySecurety.aardio @@ -11,20 +11,43 @@ securetyKeyCalc = function(pucSeed,ucSecurityLevel){ seed[4]=pucSeed[1]; select(ucSecurityLevel) { case 0x01 { + /* cal[1] = seed[1]^xorArray[1]; cal[2] = seed[2]^xorArray[2]; cal[3] = seed[3]^xorArray[3]; cal[4] = seed[4]^xorArray[4]; - /* - key[3] = ((cal[0]&0x0F)<<4)|( cal[0]&0xF0); - key[2] = ((cal[2]&0x0F)<<4)|((cal[3]&0xF0)>>4); - key[1] = (cal[2]&0xF0)|((cal[1]&0xF0)>>4); - key[0] = ((cal[3]&0x0F)<<4)|( cal[1]&0x0F); - */ key[4] = ((cal[1]&0x0F)<<4)|( cal[1]&0xF0); key[3] = ((cal[3]&0x0F)<<4)|((cal[4]&0xF0)>>4); key[2] = (cal[3]&0xF0)|((cal[2]&0xF0)>>4); key[1] = ((cal[4]&0x0F)<<4)|( cal[2]&0x0F); + */ + var dll = raw.loadDll("/MSW.dll",,"cdecl" ); + // + if(dll != null){ + FuncDisplay("加载密钥dll成功"); + var retlen = raw.buffer(4,0); + var seedraw = raw.buffer(4,0); + var iVariant = raw.buffer(20,0); + var keyraw = raw.buffer(4,0); + seedraw[1] = pucSeed[1]; + seedraw[2] = pucSeed[2]; + seedraw[3] = pucSeed[3]; + seedraw[4] = pucSeed[4]; + var ret = 0; + ret = dll.GenerateKeyEx(seedraw,4,0x01,iVariant,keyraw,4,retlen); + FuncDisplay("ret = " ++ ret ); + + key[1] = keyraw[1]; + key[2] = keyraw[2]; + key[3] = keyraw[3]; + key[4] = keyraw[4]; + return key; + } + else { + FuncDisplay("加载密钥dll失败"); + } + + } case 0x03 { /* diff --git a/ECU_APP/OutPut/ECU-BOOT.hex b/ECU_APP/OutPut/ECU-BOOT.hex index 50e9aaa..3052e86 100644 --- a/ECU_APP/OutPut/ECU-BOOT.hex +++ b/ECU_APP/OutPut/ECU-BOOT.hex @@ -1,8271 +1,1281 @@ -:0400000300000000F9 -:020000020000FC -:02000000D80026 -:020000020000FC -:02000200FFFFFE -:020000020000FC -:1000040025036A03A403DE03180452048C04C60403 -:1000140000053A057405AE05E80522065C06960659 -:10002400D0060A0744077E07B807F2072C086608BB -:10003400A008DA0814094E098809C209FC09360A1D -:100044007B0AB50AEF0A290B630B9D0BE20B1C0C10 -:10005400610CA60CEB0C300D6A0DA40DDE0D180E10 -:020000020000FC -:02006400C820B2 -:020000020000FC -:02006600CC20AC -:020000020000FC -:02006800D020A6 -:020000020000FC -:02006A00D420A0 -:020000020000FC -:02006C00D8209A -:020000020000FC -:02006E00DC2094 -:020000020000FC -:02007000E0208E -:020000020000FC -:02007200E42088 -:020000020000FC -:02007400E82082 -:020000020000FC -:02007600EC207C -:020000020000FC -:02007800F02076 -:020000020000FC -:02007A00F42070 -:020000020000FC -:02007C00F8206A -:020000020000FC -:02007E00FC2064 -:020000020000FC -:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:020000020000FC -:0400C000FEFFE884D3 -:020000020000FC -:0A00C4000000000000000000000032 -:020000020000FC -:0A00CE00FFFFFFFFFFFFFFFFFFFF32 -:020000020000FC -:1000D80061CF5100718C7109FECBF8A0F9FCAA8799 -:1000E8000036D4F4FC9A110053C0F693935820FEBE -:1000F800DFF9410036560E349CF4EF05118B99A7B1 -:10010800A517448E0EDFF536C40034D4F4EF0A4147 -:1001180000118B410F1199A7A51744C400DFF036D1 -:1001280010E5309CF4EF04CC0000A747DFF9410F3D -:1001380036D4F430D4F4EF0511CC0000A747DFF82B -:10014800410036C40034D4F4EF05118B99A7A517E4 -:1001580044C400DFF536D4F430D4F4EF04CC000006 -:10016800A747DFF9F6BF94E5E6BF92E530AAE5BFF9 -:10017800A8E5FCE58500EC002000C5C3DAD8CEFB75 -:100188000114DADAADDCCEFB010514DAD8ADDCCE29 -:10019800FB01BDD81305BDDAC2C4D7C161686BDCE9 -:1001A8006BDDC0DD16C7C5C316EADCDADAADD8CE1A -:1001B800FB0BBDD813BDDAC2C4C6D7F6B1BDD8BDD6 -:1001C800DAD706DABDDAADDC06D8BDD861D8A6DA4A -:1001D800D7C312ADD826DCBDD861317006DA23BD8D -:1001E800DAC2D7D1DD17C1C3DAD89DD8ADDA311C50 -:1001F80061EEB4D8DFF8BDDA13BDD8C2C0D7D1DDFF -:100208001BC1C3DADA9DDAADD8311E33311E337122 -:10021800F9B4DADFF4BDD813BDDAC2C0D75BDB9D11 -:10022800DB605BDA9DDAADDC5BD9085BD808BDD84A -:10023800D76BDB9DDB606BDA9DDAADDC6BD9086BC5 -:10024800D808BDD8D77BDB9DDB607BDA9DDAADDCD7 -:090258007BD9087BD808BDD8D77A -:020000020000FC -:100261004100118FCAA09EFC11AFC8A061CB410013 -:10027100118FCEA09EFC11AFCCA061CB4100118F9C -:10028100D2A09EFC11AFD0A061CB4100118FD6A0AE -:100291009EFC11AFD4A061CB4100118FDAA09EFC6E -:1002A10011AFD8A061CB4100118FDEA09EFC11AF30 -:1002B100DCA061CB4100118FE2A09EFC11AFE0A058 -:1002C10061CB4100118FE6A09EFC11AFE4A061CB90 -:1002D1004100118FEAA09EFC11AFE8A061CB410063 -:1002E100118FEEA09EFC11AFECA061CB4100118FEC -:1002F100F2A09EFC11AFF0A061CB4100118FF6A0DE -:100301009EFC11AFF4A061CB4100118FFAA09EFCBD -:1003110011AFF8A061CB4100118FFEA09EFC11AF7F -:04032100FCA061CB10 -:020000020000FC -:10032500C1C3C5C7520C929269D4FEC1DFF88EFDD8 -:10033500708EFCC1D50BE5DF06FC338900EF0E415D -:1003450000118F0AA09EFC11AF08A061CAC09EFCD7 -:10035500609EFD34D4FE5206C0B9A5A592DFF9C64C -:10036500C4C2C061FCC1C3C5C7520C929269D4FE18 -:10037500C1DFF88EFD708EFCC14100118F0EA09E6D -:10038500FC11AF0CA061CAC09EFC609EFD34D4FE7A -:100395005206C0B9A5A592DFF9C6C4C2C061FCC1A9 -:1003A500C3C5C7520C929269D4FEC1DFF88EFD70A9 -:1003B5008EFCC14100118F12A09EFC11AF10A061EF -:1003C500CAC09EFC609EFD34D4FE5206C0B9A5A5E8 -:1003D50092DFF9C6C4C2C061FCC1C3C5C7520C9245 -:1003E5009269D4FEC1DFF88EFD708EFCC14100110B -:1003F5008F16A09EFC11AF14A061CAC09EFC609E22 -:10040500FD34D4FE5206C0B9A5A592DFF9C6C4C213 -:10041500C061FCC1C3C5C7520C929269D4FEC1DF4D -:10042500F88EFD708EFCC14100118F1AA09EFC1143 -:10043500AF18A061CAC09EFC609EFD34D4FE520672 -:10044500C0B9A5A592DFF9C6C4C2C061FCC1C3C5C8 -:10045500C7520C929269D4FEC1DFF88EFD708EFCF6 -:10046500C14100118F1EA09EFC11AF1CA061CAC026 -:100475009EFC609EFD34D4FE5206C0B9A5A592DF50 -:10048500F9C6C4C2C061FCC1C3C5C7520C9292690A -:10049500D4FEC1DFF88EFD708EFCC14100118F22A4 -:1004A500A09EFC11AF20A061CAC09EFC609EFD34D9 -:1004B500D4FE5206C0B9A5A592DFF9C6C4C2C06173 -:1004C500FCC1C3C5C7520C929269D4FEC1DFF88E38 -:1004D500FD708EFCC14100118F26A09EFC11AF243A -:1004E500A061CAC09EFC609EFD34D4FE5206C0B910 -:1004F500A5A592DFF9C6C4C2C061FCC1C3C5C75278 -:100505000C929269D4FEC1DFF88EFD708EFCC1415C -:1005150000118F2AA09EFC11AF28A061CAC09EFCC5 -:10052500609EFD34D4FE5206C0B9A5A592DFF9C67A -:10053500C4C2C061FCC1C3C5C7520C929269D4FE46 -:10054500C1DFF88EFD708EFCC14100118F2EA09E7B -:10055500FC11AF2CA061CAC09EFC609EFD34D4FE88 -:100565005206C0B9A5A592DFF9C6C4C2C061FCC1D7 -:10057500C3C5C7520C929269D4FEC1DFF88EFD70D7 -:100585008EFCC14100118F32A09EFC11AF30A061DD -:10059500CAC09EFC609EFD34D4FE5206C0B9A5A516 -:1005A50092DFF9C6C4C2C061FCC1C3C5C7520C9273 -:1005B5009269D4FEC1DFF88EFD708EFCC141001139 -:1005C5008F36A09EFC11AF34A061CAC09EFC609E10 -:1005D500FD34D4FE5206C0B9A5A592DFF9C6C4C242 -:1005E500C061FCC1C3C5C7520C929269D4FEC1DF7C -:1005F500F88EFD708EFCC14100118F3AA09EFC1152 -:10060500AF38A061CAC09EFC609EFD34D4FE520680 -:10061500C0B9A5A592DFF9C6C4C2C061FCC1C3C5F6 -:10062500C7520C929269D4FEC1DFF88EFD708EFC24 -:10063500C14100118F3EA09EFC11AF3CA061CAC014 -:100645009EFC609EFD34D4FE5206C0B9A5A592DF7E -:10065500F9C6C4C2C061FCC1C3C5C7520C92926938 -:10066500D4FEC1DFF88EFD708EFCC14100118F42B2 -:10067500A09EFC11AF40A061CAC09EFC609EFD34E7 -:10068500D4FE5206C0B9A5A592DFF9C6C4C2C061A1 -:10069500FCC1C3C5C7520C929269D4FEC1DFF88E66 -:1006A500FD708EFCC14100118F46A09EFC11AF4428 -:1006B500A061CAC09EFC609EFD34D4FE5206C0B93E -:1006C500A5A592DFF9C6C4C2C061FCC1C3C5C752A6 -:1006D5000C929269D4FEC1DFF88EFD708EFCC1418B -:1006E50000118F4AA09EFC11AF48A061CAC09EFCB4 -:1006F500609EFD34D4FE5206C0B9A5A592DFF9C6A9 -:10070500C4C2C061FCC1C3C5C7520C929269D4FE74 -:10071500C1DFF88EFD708EFCC14100118F4EA09E89 -:10072500FC11AF4CA061CAC09EFC609EFD34D4FE96 -:100735005206C0B9A5A592DFF9C6C4C2C061FCC105 -:10074500C3C5C7520C929269D4FEC1DFF88EFD7005 -:100755008EFCC14100118F52A09EFC11AF50A061CB -:10076500CAC09EFC609EFD34D4FE5206C0B9A5A544 -:1007750092DFF9C6C4C2C061FCC1C3C5C7520C92A1 -:100785009269D4FEC1DFF88EFD708EFCC141001167 -:100795008F56A09EFC11AF54A061CAC09EFC609EFE -:1007A500FD34D4FE5206C0B9A5A592DFF9C6C4C270 -:1007B500C061FCC1C3C5C7520C929269D4FEC1DFAA -:1007C500F88EFD708EFCC14100118F5AA09EFC1160 -:1007D500AF58A061CAC09EFC609EFD34D4FE52068F -:1007E500C0B9A5A592DFF9C6C4C2C061FCC1C3C525 -:1007F500C7520C929269D4FEC1DFF88EFD708EFC53 -:10080500C14100118F5EA09EFC11AF5CA061CAC002 -:100815009EFC609EFD34D4FE5206C0B9A5A592DFAC -:10082500F9C6C4C2C061FCC1C3C5C7520C92926966 -:10083500D4FEC1DFF88EFD708EFCC14100118F62C0 -:10084500A09EFC11AF60A061CAC09EFC609EFD34F5 -:10085500D4FE5206C0B9A5A592DFF9C6C4C2C061CF -:10086500FCC1C3C5C7520C929269D4FEC1DFF88E94 -:10087500FD708EFCC14100118F66A09EFC11AF6416 -:10088500A061CAC09EFC609EFD34D4FE5206C0B96C -:10089500A5A592DFF9C6C4C2C061FCC1C3C5C752D4 -:1008A5000C929269D4FEC1DFF88EFD708EFCC141B9 -:1008B50000118F6AA09EFC11AF68A061CAC09EFCA2 -:1008C500609EFD34D4FE5206C0B9A5A592DFF9C6D7 -:1008D500C4C2C061FCC1C3C5C7520C929269D4FEA3 -:1008E500C1DFF88EFD708EFCC14100118F6EA09E98 -:1008F500FC11AF6CA061CAC09EFC609EFD34D4FEA5 -:100905005206C0B9A5A592DFF9C6C4C2C061FCC133 -:10091500C3C5C7520C929269D4FEC1DFF88EFD7033 -:100925008EFCC14100118F72A09EFC11AF70A061B9 -:10093500CAC09EFC609EFD34D4FE5206C0B9A5A572 -:1009450092DFF9C6C4C2C061FCC1C3C5C7520C92CF -:100955009269D4FEC1DFF88EFD708EFCC141001195 -:100965008F76A09EFC11AF74A061CAC09EFC609EEC -:10097500FD34D4FE5206C0B9A5A592DFF9C6C4C29E -:10098500C061FCC1C3C5C7520C929269D4FEC1DFD8 -:10099500F88EFD708EFCC14100118F7AA09EFC116E -:1009A500AF78A061CAC09EFC609EFD34D4FE52069D -:1009B500C0B9A5A592DFF9C6C4C2C061FCC1C3C553 -:1009C500C7520C929269D4FEC1DFF88EFD708EFC81 -:1009D500C14100118F7EA09EFC11AF7CA061CAC0F1 -:1009E5009EFC609EFD34D4FE5206C0B9A5A592DFDB -:1009F500F9C6C4C2C061FCC1C3C5C7520C92926995 -:100A0500D4FEC1DFF88EFD708EFCC14100118F82CE -:100A1500A09EFC11AF80A061CAC09EFC609EFD3403 -:100A2500D4FE5206C0B9A5A592DFF9C6C4C2C061FD -:100A3500FCC1C3C5C7520C929269D4FEC1DFF88EC2 -:100A4500FD708EFCC1D50BE5DF06FCE38800EF0EDB -:100A55004100118F86A09EFC11AF84A061CAC09E83 -:100A6500FC609EFD34D4FE5206C0B9A5A592DFF9FF -:100A7500C6C4C2C061FCC1C3C5C7520C929269D439 -:100A8500FEC1DFF88EFD708EFCC14100118F8AA07A -:100A95009EFC11AF88A061CAC09EFC609EFD34D447 -:100AA500FE5206C0B9A5A592DFF9C6C4C2C061FC55 -:100AB500C1C3C5C7520C929269D4FEC1DFF88EFD41 -:100AC500708EFCC14100118F8EA09EFC11AF8CA0D1 -:100AD50061CAC09EFC609EFD34D4FE5206C0B9A515 -:100AE500A592DFF9C6C4C2C061FCC1C3C5C7520C1B -:100AF500929269D4FEC1DFF88EFD708EFCC1410073 -:100B0500118F92A09EFC11AF90A061CAC09EFC609F -:100B15009EFD34D4FE5206C0B9A5A592DFF9C6C420 -:100B2500C2C061FCC1C3C5C7520C929269D4FEC153 -:100B3500DFF88EFD708EFCC14100118F96A09EFCE2 -:100B450011AF94A061CAC09EFC609EFD34D4FE52D4 -:100B550006C0B9A5A592DFF9C6C4C2C061FCC1C370 -:100B6500C5C7520C929269D4FEC1DFF88EFD708E16 -:100B7500FCC14100118F9AA09EFC11AF98A061CADB -:100B8500C09EFC609EFD34D4FE5206C0B9A5A59258 -:100B9500DFF9C6C4C2C061FCC1C3C5C7520C92927D -:100BA50069D4FEC1DFF88EFD708EFCC1D50BE5DF83 -:100BB50006FC552E00EF0E4100118F9EA09EFC11E4 -:100BC500AF9CA061CAC09EFC609EFD34D4FE520657 -:100BD500C0B9A5A592DFF9C6C4C2C061FCC1C3C531 -:100BE500C7520C929269D4FEC1DFF88EFD708EFC5F -:100BF500C14100118FA2A09EFC11AFA0A061CAC087 -:100C05009EFC609EFD34D4FE5206C0B9A5A592DFB8 -:100C1500F9C6C4C2C061FCC1C3C5C7520C92926972 -:100C2500D4FEC1DFF88EFD708EFCC1D50BE5DF0665 -:100C3500FC562E00EF0E4100118FA6A09EFC11AFB1 -:100C4500A4A061CAC09EFC609EFD34D4FE5206C0BD -:100C5500B9A5A592DFF9C6C4C2C061FCC1C3C5C7A9 -:100C6500520C929269D4FEC1DFF88EFD708EFCC1E4 -:100C7500D50BE5DF06FC572E00EF0E4100118FAABC -:100C8500A09EFC11AFA8A061CAC09EFC609EFD3469 -:100C9500D4FE5206C0B9A5A592DFF9C6C4C2C0618B -:100CA500FCC1C3C5C7520C929269D4FEC1DFF88E50 -:100CB500FD708EFCC1D50BE5DF06FC092E00EF0E9D -:100CC5004100118FAEA09EFC11AFACA061CAC09EC1 -:100CD500FC609EFD34D4FE5206C0B9A5A592DFF98D -:100CE500C6C4C2C061FCC1C3C5C7520C929269D4C7 -:100CF500FEC1DFF88EFD708EFCC1D50BE5DF06FC6D -:100D0500082E00EF0E4100118FB2A09EFC11AFB06E -:100D1500A061CAC09EFC609EFD34D4FE5206C0B9D7 -:100D2500A5A592DFF9C6C4C2C061FCC1C3C5C7523F -:100D35000C929269D4FEC1DFF88EFD708EFCC14124 -:100D450000118FB6A09EFC11AFB4A061CAC09EFC75 -:100D5500609EFD34D4FE5206C0B9A5A592DFF9C642 -:100D6500C4C2C061FCC1C3C5C7520C929269D4FE0E -:100D7500C1DFF88EFD708EFCC14100118FBAA09EB7 -:100D8500FC11AFB8A061CAC09EFC609EFD34D4FEC4 -:100D95005206C0B9A5A592DFF9C6C4C2C061FCC19F -:100DA500C3C5C7520C929269D4FEC1DFF88EFD709F -:100DB5008EFCC14100118FBEA09EFC11AFBCA0618D -:100DC500CAC09EFC609EFD34D4FE5206C0B9A5A5DE -:100DD50092DFF9C6C4C2C061FCC1C3C5C7520C923B -:100DE5009269D4FEC1DFF88EFD708EFCC141001101 -:100DF5008FC2A09EFC11AFC0A061CAC09EFC609EC0 -:100E0500FD34D4FE5206C0B9A5A592DFF9C6C4C209 -:100E1500C061FCC1C3C5C7520C929269D4FEC1DF43 -:100E2500F88EFD708EFCC14100118FC6A09EFC118D -:100E3500AFC4A061CAC09EFC609EFD34D4FE5206BC -:0D0E4500C0B9A5A592DFF9C6C4C2C061FC0A -:020000020000FC -:040E5200002001007B -:020000020000FC -:100E56003200C80078563412896D85AC0202111230 -:100E66001314222431333536377F727173787E92AC -:100E7600937000112233445566778899AABBCCDD5E -:080E8600EEFF00000000000077 -:020000020000FC -:100E8E0071009000C716BF04088C019F0108E5038E -:100E9E0008F2FCF8FF0EC6CF800804D7C5C716C3EC -:100EAE00E503088C02088C03BF0408340010CF023F -:100EBE00080F8C069F81084C03DD2415080E0008D0 -:100ECE001E01BF0008148C04088C05BF06081251C1 -:100EDE00004E06DD1BF98108FCF8FF0E62EF203094 -:100EEE000004BF06088C003129F005BF0008EFE5AD -:100EFE00FB040800899BA7A5B3F643DFF75100C298 -:100F0E0072C6C4D7FC04F00ED7C3FC08F00EC27133 -:070F1E00089000F58008D7E0 -:020000020000FC -:010F2500FFCC -:020000020000FC -:100F2600C7C5C116348008F6B9A5A53544C008352D -:100F3600DFF68EFDC1629EFD3182A13DF1114E02AA -:100F460061E8710091089F0308114E0061E8E19F76 -:100F5600010830800814BF0408118C0199410E1154 -:100F66004FE8FFDC1411F9E9FF6142DC0C5200FC8A -:100F7600F8FF0E71009008EF025205C09EFDC0C436 -:070F8600C6D771109008D7D7 -:020000020000FC -:010F8D00FF64 -:020000020000FC -:050F8E0071189008D766 -:020000020000FC -:010F9300FF5E -:020000020000FC -:100F9400C7C5C3C1712090088EFDC1410036D80F6A -:100FA40032D81034800A11ABB9A7A7A5A51743DC22 -:090FB400F5C09EFDC0C2C4C6D701 -:020000020000FC -:010FBD00FF34 -:020000020000FC -:100FBE00C7C5C3C1713090088EFDC1410036D8102F -:090FCE0032581134800BEED3FF00 -:020000020000FC -:010FD700FF1A -:020000020000FC -:100FD800C7C5C18EFC758EFD74CEFC0F69740B619C -:100FE800CBFCC4080F624CFFDD477148900871784C -:100FF80090088F9008315539510F9EFCAF920861C7 -:10100800CB5203EF065206EF025208A80016410E13 -:1010180011AFE6FF47DC1817312D9F0208609F01CA -:1010280008F50008F50308300004BF0608EF63520E -:1010380005659EFC649EFDC0C4C6D7A800168C003A -:10104800708C01BF04088C025C03DFE38C05D1DFE0 -:10105800DE8C06D1DDD94C41DED570F1312DBF06CD -:1010680008B1B1C5148C02708C03BF000805358C1B -:10107800049F02081C0035161570C4DCB2410E66C8 -:10108800113FDFFF67113FE0FF60113FE1FFDE9F87 -:10109800520413FCF8FF0E624CFFDF958F91083164 -:1010A800030F71409008604C0361F871709008EF6D -:1010B80080FCC4080FEFE000000000000000000002 -:1010C80000000000B10AB50AB90AEB0A910A00004B -:020000020000FC -:1010D800C5C18EFC758EFD74CEFC0F69F80B61CB13 -:1010E800308008BF04085210FCF8FF0ED2DF1467E6 -:1010F8005F80089F8008675C0161E8710080085282 -:1011080011EF1071589008659EFC649EFDC0C4C61E -:10111800D75213FCF8FF0E624CFFDF0C8F91083199 -:10112800031571409008EFDF8F90083155D9510FA2 -:101138009EFCAF920861CBFCC4080FEFDA000000F8 -:101148000000000000000000900BC10B0000000030 -:020000020000FC -:101158005204EF0A5200EF065202EF025206FE2531 -:101168000061F8EC800A0F521FD7C151FF500FEFF2 -:101178001AC151475007EF13C151475007EF0CC12F -:1011880051475047EF05C151F750075F9008614834 -:02119800C0D7BE -:020000020000FC -:10119A00C80300AEF827DD3BDC39315E12F643DDC9 -:1011AA0027BBBC02BC04BC06BC08BC0ABC0CBC0EF7 -:1011BA00BC10BC12BC14BC16BC18BC1ABC1CBC1E8D -:1011CA003704200037B3EFD6AEF847DD06F6BBA7E3 -:0411DA00A7EFF5D7AF -:020000020000FC -:1011DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:1011EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:1011FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10120E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10121E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10122E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10123E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10124E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10125E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10126E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10127E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10128E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10129E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:1012AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:1012BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:1012CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1012DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1012EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1012FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10130E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10131E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10132E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10133E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10134E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10135E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10136E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10137E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10138E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10139E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:1013AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:1013BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:1013CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1013DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1013EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1013FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10140E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10141E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10142E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10143E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10144E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10145E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10146E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10147E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10148E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10149E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:1014AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:1014BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:1014CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1014DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1014EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1014FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10150E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10151E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10152E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10153E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10154E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10155E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10156E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10157E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10158E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10159E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:1015AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:1015BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:1015CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1015DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1015EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1015FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10160E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10161E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10162E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10163E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10164E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10165E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10166E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10167E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10168E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10169E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:1016AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:1016BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:1016CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1016DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1016EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1016FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10170E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10171E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10172E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10173E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10174E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10175E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10176E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10177E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10178E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10179E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:1017AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1017BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1017CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1017DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1017EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1017FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10180E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10181E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10182E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10183E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10184E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10185E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10186E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10187E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10188E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10189E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:1018AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:1018BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:1018CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1018DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1018EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1018FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10190E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10191E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10192E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10193E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10194E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10195E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10196E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10197E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10198E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10199E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:1019AE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:1019BE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:1019CE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1019DE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1019EE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1019FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:101A0E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:101A1E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:101A2E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:101A3E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:101A4E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:101A5E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:101A6E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:101A7E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:101A8E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:101A9E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:101AAE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:101ABE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:101ACE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:101ADE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:101AEE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:101AFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:101B0E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:101B1E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:101B2E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:101B3E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:101B4E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:101B5E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:101B6E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:101B7E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:101B8E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:101B9E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:101BAE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:101BBE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:101BCE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:101BDE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:101BEE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:101BFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:101C0E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:101C1E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:101C2E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:101C3E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:101C4E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:101C5E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:101C6E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:101C7E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:101C8E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:101C9E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:101CAE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:101CBE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:101CCE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:101CDE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:101CEE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:101CFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:101D0E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:101D1E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:101D2E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:101D3E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:101D4E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:101D5E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:101D6E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:101D7E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:101D8E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:101D9E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:101DAE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:101DBE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:101DCE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:101DDE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:101DEE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:101DFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:101E0E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:101E1E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:101E2E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:101E3E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:101E4E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:101E5E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:101E6E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:101E7E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:101E8E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:101E9E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:101EAE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:101EBE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:101ECE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:101EDE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:101EEE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:101EFE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:101F0E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:101F1E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:101F2E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:101F3E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:101F4E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:101F5E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:101F6E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:101F7E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:101F8E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:101F9E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:101FAE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:101FBE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:101FCE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:101FDE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:101FEE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:021FFE00FFFFE3 -:020000020000FC -:1020000051070000FFFFFFDF02800180DF070000B3 -:10201000FFFFFFDF0281028080808200070703024A -:102020000310F6500000070703020111A55100003C -:1020300006070102022722540000060703030328B3 -:10204000DE54000007070302013E5A59000007074B -:1020500003020285065A00000707030300225252BA -:10206000000006030104002E97550000020701043A -:102070000331B85700000201010500343C4500005F -:10208000020101030036C2470000020101010037CE -:102090004A4C0000000000000000000000000000AA -:1020A0000000000000000000000000000000000030 -:1020B0000000000000000000000000000102E1320A -:1020C00000000202CC3300000302B334000001021E -:1020D000693500000302693500000102D1350000B6 -:1020E0000206023700001102D13500001206023745 -:1020F00000000003BB4100000103BB4100000303DB -:10210000BB4100000002F642000001023E43000015 -:1021100002029E4300000108044400000304264418 -:102120000000040302000063AF6400000403020027 -:102130000863F9640000040302000B6343650000B8 -:10214000040302000C638D650000040302000E63AB -:10215000D7650000070708000002EE5A00000707D5 -:10216000080001022B5B00000707080013F1865CE2 -:10217000000007070A0080F1155D00000707010055 -:1021800086F1DD5D00000707090094F1025E0000A2 -:1021900007070A008AF17E5E0000070703008BF143 -:1021A000C35E00000707110090F1085F00000707F9 -:1021B000060095F1976000000707050093F1146091 -:1021C00000000707100098F167610000070704008E -:1021D00099F1ED610000070704009DF17C620000A9 -:1021E0000603100098F1A86100000603040099F1AD -:1021F00032620000010C143900000205393E000073 -:1022000003058A3F00000104733C00000205A93E5B -:1022100000000305FB3F000001048A3800000204AF -:10222000C93D00000304193F000001086C40000094 -:102230000205B94100000305BA410000020100FF98 -:10224000F421020101FF2A22020102022A220604CD -:1022500003021822AA50435202010100510708004C -:10226000968B000000000000DF0708002E8E0000A3 -:10227000000000005907080000000103016400008D -:1022800000000000000000000300AA005107DF0763 -:10229000590700004B009600881300F0061601F065 -:1022A00006170291811203918114049181710591A5 -:1022B0008312069183140791837108918412099106 -:1022C00084140A9184710B9186110C9186140DC0AF -:1022D000730000000000000000000000000000008B -:1022E00000000000000000000000000000000000EE -:1022F00000000000000000000000000000000000DE -:10230000963007772C610EEEBA51099919C46D0702 -:102310008FF46A7035A563E9A395649E3288DB0E5D -:10232000A4B8DC791EE9D5E088D9D2972B4CB60940 -:10233000BD7CB17E072DB8E7911DBF906410B71D1D -:10234000F220B06A4871B9F3DE41BE847DD4DA1A56 -:10235000EBE4DD6D51B5D4F4C785D38356986C1387 -:10236000C0A86B647AF962FDECC9658A4F5C011400 -:10237000D96C0663633D0FFAF50D088DC8206E3BDE -:102380005E10694CE44160D5727167A2D1E4033CF0 -:1023900047D4044BFD850DD26BB50AA5FAA8B53517 -:1023A0006C98B242D6C9BBDB40F9BCACE36CD83206 -:1023B000755CDF45CF0DD6DC593DD1ABAC30D926AD -:1023C0003A00DE518051D7C81661D0BFB5F4B421B0 -:1023D00023C4B3569995BACF0FA5BDB89EB80228AD -:1023E0000888055FB2D90CC624E90BB1877C6F2F32 -:1023F000114C6858AB1D61C13D2D66B69041DC762D -:102400000671DB01BC20D2982A10D5EF8985B17105 -:102410001FB5B606A5E4BF9F33D4B8E8A2C90778B4 -:1024200034F9000F8EA8099618980EE1BB0D6A7F4B -:102430002D3D6D08976C6491015C63E6F4516B6B04 -:1024400062616C1CD83065854E0062F2ED95066CB9 -:102450007BA5011BC1F4088257C40FF5C6D9B0652E -:1024600050E9B712EAB8BE8B7C88B9FCDF1DDD628B -:10247000492DDA15F37CD38C654CD4FB5861B24DF1 -:10248000CE51B53A7400BCA3E230BBD441A5DF4ABB -:10249000D795D83D6DC4D1A4FBF4D6D36AE969437E -:1024A000FCD96E34468867ADD0B860DA732D044429 -:1024B000E51D03335F4C0AAAC97C0DDD3C71055054 -:1024C000AA41022710100BBE86200CC925B56857FB -:1024D000B3856F2009D466B99FE461CE0EF9DE5E44 -:1024E00098C9D9292298D0B0B4A8D7C7173DB359F5 -:1024F000810DB42E3B5CBDB7AD6CBAC02083B8ED86 -:10250000B6B3BF9A0CE2B6039AD2B1743947D5EA92 -:10251000AF77D29D1526DB048316DC73120B63E3C1 -:10252000843B64943E6A6D0DA85A6A7A0BCF0EE420 -:102530009DFF099327AE000AB19E077D44930FF0DB -:10254000D2A3088768F2011EFEC206695D5762F7D2 -:10255000CB67658071366C19E7066B6E761BD4FE0F -:10256000E02BD3895A7ADA10CC4ADD676FDFB9F9EC -:10257000F9EFBE8E43BEB717D58EB060E8A3D6D6AE -:102580007E93D1A1C4C2D83852F2DF4FF167BBD1DC -:102590006757BCA6DD06B53F4B36B248DA2B0DD8DF -:1025A0004C1B0AAFF64A0336607A0441C3EF60DF82 -:1025B00055DF67A8EF8E6E3179BE69468CB361CB6B -:1025C0001A8366BCA0D26F2536E2685295770CCC90 -:1025D00003470BBBB91602222F260555BE3BBAC5D1 -:1025E000280BBDB2925AB42B046AB35CA7FFD7C2C2 -:1025F00031CFD0B58B9ED92C1DAEDE5BB0C2649BB3 -:1026000026F263EC9CA36A750A936D02A906099CE5 -:102610003F360EEB8567077213570005824ABF9558 -:10262000147AB8E2AE2BB17B381BB60C9B8ED292DB -:102630000DBED5E5B7EFDC7C21DFDB0BD4D2D38632 -:1026400042E2D4F1F8B3DD686E83DA1FCD16BE81A5 -:102650005B26B9F6E177B06F7747B718E65A088876 -:10266000706A0FFFCA3B06665C0B0111FF9E658F07 -:1026700069AE62F8D3FF6B6145CF6C1678E20AA0B1 -:10268000EED20DD75483044EC2B30339612667A737 -:10269000F71660D04D476949DB776E3E4A6AD1AE86 -:1026A000DC5AD6D9660BDF40F03BD83753AEBCA915 -:1026B000C59EBBDE7FCFB247E9FFB5301CF2BDBD82 -:1026C0008AC2BACA3093B353A6A3B4240536D0BA8B -:1026D0009306D7CD2957DE54BF67D9232E7A66B328 -:1026E000B84A61C4021B685D942B6F2A37BE0BB4D5 -:1026F000A18E0CC31BDF055A8DEF022D00100F00B9 -:10270000090000140F00050010140F000900201428 -:102710000F00120040140F00090050140F001100A8 -:1027200060140F00050070140F00050080140F00E6 -:10273000090003180F00030006180F000300091812 -:102740000F0003000C180F0003000F180F00030008 -:1027500012180F00030015180F00030018180F00BF -:1027600003001B180F0003001E180F0003002118A0 -:102770000F00030024180F00030027180F000300A8 -:102780002A180F000300FFFFE803F4016400FFFFB5 -:020000020000FC -:10279000C72006FBF8FFAF2A03F1085C0808616850 -:1027A000DD06320500EE4701AF2A03F1085C04089C -:1027B0006168DD1CAF2603085CFB08BF2603AF2A57 -:1027C00003F1085C04086168DD06320400EE1F01B5 -:1027D000AF0803F1085C04086168DD1CAF0403085E -:1027E0005CFB08BF0403AF0803F1085C04086168E0 -:1027F000DD06320400EEF700300204BF2203F6BF0C -:102800002403E6BF0003303A01BF0203E6A1BF3054 -:1028100003AF8A03BC02AF8A03085CFE08BF8A03C9 -:1028200030A003BC04F6BBAB440200DE77AB320C35 -:1028300000CEFB011279002012AC041413B9AB32A4 -:102840000C00CEFB011279022012AC041413BA0260 -:10285000AB320C00CEFB011279042012AC0414132D -:10286000BA04AB320C00CEFB011279062012AC0484 -:102870001413BA06AB320C00CEFB011279082012F9 -:10288000AC041413BA08AB320C00CEFB0112790A67 -:102890002012AC041413BA0AAC04040C00BC04618A -:1028A0007900EF83AC02BF8A03300400BF320330EB -:1028B0000210BF38035112BF3A03A1A1BF5003E673 -:1028C000BF5203500EBF7A03AF2603F1085C07081E -:1028D0000C03BF2603AF0403F1085C070891BF0493 -:1028E00003AF060304A100BF0603FCB12D00F710DF -:1028F00006C6D7AF2A03F1085C01086168DD1AAF8C -:102900002603085CFC08BF2603AF2A03F1085C011C -:10291000086168DD04320400D7F52C03D51820DDEA -:102920000AAF3803086C0108BF3803D51920DD0A47 -:10293000AF3A03086C0108BF3A03401A2081DF0A4E -:10294000AF5003086C0108BF5003F7D7AF0803F17D -:10295000085C01086168DD1AAF0403085CFC08BF6D -:102960000403AF0803F1085C01086168DD04320468 -:1029700000D7401A2082DF0AAF5003086C0108BF5D -:102980005003F7D7C7C12004FBF8FF8C04318E0435 -:102990006C03BC0214CA0000AC021489D1DD0532FC -:1029A000FEFFEF76AF8A03BBAF8A03086C0108BF56 -:1029B0008A038C043149318E0C06BC02AC0C14A97C -:1029C00012AC021413B9AC0C14AA0212AC02141308 -:1029D000BA02AC0C14AA0612AC021413BA06AC0C60 -:1029E00014AA0812AC021413BA08AC0C14AA0A12E6 -:1029F000AC021413BA0AAC0C14AA0C12AC021413D5 -:102A0000BA0CAC0C14AA0E12AC021413BA0EABBF63 -:102A10008A038C047238640301F71006C6D7C71600 -:102A200017F104640314896C0299F7C6D7C7C12053 -:102A300004FBF8FF8C04318E046C03BB14897230E4 -:102A40000006615A318E311EBC02F6614902DD0575 -:102A5000AB14CA0000AC02121006C6D7C7C1C1FB36 -:102A6000F8FFAF5803F1085C02086168DD04E7A3D2 -:102A7000EF3DAF8A03BBAF8A03086C0108BF8A032E -:102A8000AC0214A9BFE005AA02BFE205AA06BFE690 -:102A900005AA08BFE805AA0ABFEA05AA0CBFEC050B -:102AA000AA0EBFEE05ABBF8A03F690BF5C03F7101A -:102AB00004C6D7AF5803F1085C01086168DD0FAFA9 -:102AC0000803F1085C6008442000DF02E7D7F7D76D -:102AD000C7C1200AFBF8FFAF3403BC06F661490604 -:102AE000DF06320300EEE300F6614906DD2AE6BCAC -:102AF000049C098C094C10DE1F8C065E04708C0748 -:102B00005E056168DD08AC0A148C0999EF0AAC0413 -:102B100001BC04615909EFDBF6B161290412AF343D -:102B200003615B08615A08BF3403AF34035E0508D4 -:102B30005E04086168DD0632FEFFEE8E00AF8A0398 -:102B4000BBAF8A03086C0108BF8A03AC0A14893141 -:102B500049318E04A003BC0214A912AC121413B99B -:102B6000AC0214AA0212AC121413BA02AC0214AAD8 -:102B70000412AC121413BA04AC0214AA0612AC125A -:102B80001413BA06AC0214AA0812AC121413BA0831 -:102B9000AC0214AA0A12AC121413BA0AAC0214AA98 -:102BA0000C12AC121413BA0CAC0214AA0E12AC1212 -:102BB0001413BA0EABBF8A03AF34035E05085E047C -:102BC000086168DD0532FDFFEF01F7100CC6D7C7BD -:102BD000C1FBF8FF8BD1DF08AC08FCF02B00EF0D38 -:102BE0008B91DF08AC08FC872C00EF01F7C0C6D73B -:102BF000C7C12006FBF8FFAF4003BC04E15E04310F -:102C00008E6168DD05320300EF79F6BC0251045E87 -:102C100004318E6168DD09300800BF4003E6BC0264 -:102C2000AF4003085CF708BF4003AF8A03BBAF8A1D -:102C300003086C0108BF8A03AC0614AFA005B9AC49 -:102C40000614AFA205BA02AC0614AFA405BA04ACD0 -:102C50000614AFA605BA06AC0614AFA805BA08ACB0 -:102C60000614AFAA05BA0AAC0614AFAC05BA0CAC90 -:102C70000614AFAE05BA0EABBF8A03F690BF480389 -:102C8000AC02121008C6D7C7C12006FBF8FFAF423E -:102C900003BC04E15E04318E6168DD05320300EFA0 -:102CA00079F6BC0251045E04318E6168DD0930089A -:102CB00000BF4203E6BC02AF4203085CF708BF4214 -:102CC00003AF8A03BBAF8A03086C0108BF8A03AC59 -:102CD0000614AFB005B9AC0614AFB205BA02AC0623 -:102CE00014AFB405BA04AC0614AFB605BA06AC0608 -:102CF00014AFB805BA08AC0614AFBA05BA0AAC06E8 -:102D000014AFBC05BA0CAC0614AFBE05BA0EABBF0F -:102D10008A03F690BF4A03AC02121008C6D7C7C197 -:102D20002006FBF8FFAF5803BC04E15E04318E615E -:102D300068DD05320300EF6FF6BC0251045E04311A -:102D40008E6168DD09301800BF5803E6BC02AF8A07 -:102D500003BBAF8A03086C0108BF8A03AC0614AF3B -:102D6000E005B9AC0614AFE205BA02AC0614AFE454 -:102D700005BA04AC0614AFE605BA06AC0614AFE813 -:102D800005BA08AC0614AFEA05BA0AAC0614AFECF3 -:102D900005BA0CAC0614AFEE05BA0EABBF8A03F64B -:102DA00090BF5C03AC02121008C6D7AF0803F11243 -:102DB000D7717BD0716BD0715BD0712BD1711BD16E -:102DC000710BD1715BD4712BD5711BD5710BD5D71C -:102DD000C77100C102360500F647DD08FC902700E8 -:102DE0001316EFF436040030040047DF08FCF32824 -:102DF000001316EFF236040030040047DF08FC4CE5 -:102E000029001316EFF2C6D7D7C736DAEAC7E6FCB1 -:102E1000CF2B00C0AFDAEA445107DD08AFDAEA444D -:102E2000DF07DF2FAFDAEA44DF07DF1240E3EA3ED5 -:102E3000DF0C40E4EA80DF06FCB03100EF1536E23B -:102E4000EAC78FE1EA31CEC1AFDAEAC1F6FCCD7351 -:102E5000001006C6D7D7D7AF5803085CEF08BF5895 -:102E600003D7C7C1200CFBF8FF300F00614916DF04 -:102E70000630FF0F61491461C8EE9501300F006103 -:102E80004916DF0630FF1F61491461D8EE8201D573 -:102E9000D2E5DF3BCC0820CC0900717BFA1704088F -:102EA00000FC8E0E00CC0608AC14BDD8AC16BDDA02 -:102EB000C9DC0010300F00FDD901ADD8BBAC18BC87 -:102EC0000417FCAA0E00629C0B717AFAE5D2E54069 -:102ED000D2E501DF708C0B81DF09FC120F00629CD0 -:102EE0000BEFF28C0B81DD5D8C0B4C1BDF26CC06CF -:102EF00003AC14BDD8AC16BDDAC9DC0010300F002D -:102F0000FDD901ADD831AEBB17FCAA0E00629C0BF7 -:102F1000CFD2E5028C0BD1DF2CCC0604AC14BDD88B -:102F2000AC16BDDAC9DC0010300F00FDD901ADD8F8 -:102F3000BBAC18BC04AC0CBC0217FCAA0E00629C13 -:102F40000BCFD2E50340D2E502DF508C0B81DF09C5 -:102F5000FC120F00629C0BEFF28C0B81DD3D8C0BA1 -:102F6000D1DF2ECC0604AC14BDD8AC16BDDAC9DC5A -:102F70000010300F00FDD901ADD8BBAC18BC04ACBB -:102F80000CBC0217FCAA0E00629C0BCFD2E503EF2B -:102F90000ACC0B01E1318E12EE810040D2E503DF55 -:102FA0004B8C0B81DF09FC120F00629C0BEFF28C43 -:102FB0000B81DD388C0BD1DF2ACC0606AC14BDD8D2 -:102FC000AC16BDDAC9DC0010300F00FDD901ADD858 -:102FD000BBAC18BC0417FCAA0E00629C0BCFD2E558 -:102FE00004EF09CC0B01E1318E12EF3040D2E50441 -:102FF000DF2A8C0B81DF09FC120F00629C0BEFF2C1 -:103000008C0B81DD17FC170F00F5D2E5321100EFB4 -:103010000BCC0B01F5D2E58C0B318E12100EC6D7FE -:10302000C7C1200CFBF8FF300F00614916DF0630E6 -:10303000FF0F61491461C8EE0E01300F006149169F -:10304000DF0630FF1F61491461D8EEFB00CC082079 -:10305000CC090017040800FC8E0E00CC0608AC1446 -:10306000BDD8AC16BDDAC9DC0010300F00FDD901A7 -:10307000ADD8BBAC18BC0417FCAA0E00629C0B8C2C -:103080000B81DF09FC120F00629C0BEFF28C0B4CE2 -:103090001BDF30CC0603AC14BDD8AC16BDDAC9DCDE -:1030A0000010300F00FDD901ADD831AEBB17FCAA1E -:1030B0000E00629C0B8C0B81DF09FC120F00629CDE -:1030C0000BEFF28C0BD1DF72CC0604AC14BDD8AC84 -:1030D00016BDDAC9DC0010300F00FDD901ADD8BB38 -:1030E000AC18BC04AC0CBC0217FCAA0E00629C0B12 -:1030F0008C0B81DF09FC120F00629C0BEFF28C0B32 -:10310000D1DF32CC0606AC14BDD8AC16BDDAC9DCB2 -:103110000010300F00FDD901ADD8BBAC18BC0417AE -:10312000FCAA0E00629C0B8C0B81DF11FC120F00BD -:10313000629C0BEFF2CC0B01EF03CC0B01FC170FE1 -:10314000008C0B318E12EF07CC0B01E1318E121087 -:103150000EC6D7C7C12008FBF8FF8F9000310329A6 -:1031600071009000F6BC02BC04AC04F743DF05AC70 -:1031700002440F00DE1300AC0412AC020401006133 -:10318000D8A3BC0233BC04EFE0AC10BBCC07008C6E -:1031900007318E614914DE14AB148972AC081462D5 -:1031A00099617908617900615907EFE3100AC6D780 -:1031B000308813BF0EE6D7C7F6BFD4E5F5D6E5F5E0 -:1031C000D7E5F5D8E576664C03DE087238D9E50018 -:1031D00086EFF3F5DCE55600664C04DE087238DD58 -:1031E000E50086EFF3F5E1E55600664C0ADE08726D -:1031F00038E2E50086EFF3F5ECE5F6BFEEE576663E -:103200004C14DE087238F0E50086EFF3C6D7C756D7 -:1032100000FCB731003408E6C5340AE6C5300CE6D8 -:10322000FC158B001004627791DD05674C02DF1DF1 -:103230005601D50CE6DF05E5D7E5EF04CFD7E5026B -:10324000AF0AE6BFD4E5EB08E6899FD6E517F11291 -:10325000C6D7C7C1C1FBF8FFCC00FFCC01008C0171 -:103260004C0EDE438C01F0316E61090A14AC02127F -:103270008A01704900007260614ADF26AC02A11227 -:103280008A02704900007260614ADF16AC02A1A197 -:10329000128A03704900007260614ADF058C019B4D -:1032A000EF05615901EFB78B318E121004C6D7C7F5 -:1032B000C1C1FBF8FFCC00FFCC01008C014C04DE47 -:1032C000188C015006D661090A14894E02DF058C5C -:1032D000019BEF05615901EFE28B318E121004C69C -:1032E000D7C7200CFBF8FFF510E64011E60261F8A5 -:1032F000E535E6E511E6CF12E604E513E6E514E66A -:10330000CF15E6038FD8E55C80D161E8EEA60040DA -:1033100035E601DF6A3055AA4100114202A1DF07FC -:10332000084100114200A1DF563055AA4101114267 -:10333000F29FDF070841011142F09FDF42CF08E50D -:10334000A5CF09E507CF00E5068FD6E50C409F0124 -:10335000E58FD8E59F02E5AF9CF49F03E551FF5F41 -:103360009CF49F04E5AF9EF49F05E551FF5F9EF43A -:103370009F06E5CF07E5AAF50AE5F5ABFFEFFB8F62 -:10338000D6E50C409C068FD8E59C07AF9CF49C08C2 -:1033900051FF5F9CF49C09AF9EF49C0A51FF5F9E15 -:1033A000F49C0B17040600C1300600FCEB8E00C035 -:1033B000CC0501EF0E17040600C1F6FCEB8E00C031 -:1033C000CC05028C05318F12100CC6D7C72010FB1C -:1033D000F8FFF6BC06BC08E510E6308813BF0EE621 -:1033E0004011E601DD72CF11E602CF12E604E513CB -:1033F000E6E514E6F515E6CF0AE5A58FD8E55C808D -:10340000D1DF3FCF08E5A5CF09E507CF00E5068F5F -:10341000D6E50C409F01E58FD8E59F02E5AF9CF40F -:103420009F03E551FF5F9CF49F04E5AF9EF49F0569 -:10343000E551FF5F9EF49F06E5CF07E5AAF5ABFFD8 -:10344000EFFBF508E517040A00C1F6FCEB8E00C09F -:10345000CC0502F5ABFFEFFBD9AEF4F1C1D9D6E54F -:10346000FCA74400C03404E6C5300300FCEB8E002A -:10347000C0CC05008C05318F121010C6D7E510E6C0 -:10348000308813BF0EE6CF11E602CF12E604F51323 -:10349000E6E514E6F515E6D7F510E6308813BF0E1D -:1034A000E6E511E6CF12E604E513E6E514E6CF15EE -:1034B000E603D7C72008FBF8FF4011E602DD6FE501 -:1034C00010E6308813BF0EE64011E604DD0EE5136A -:1034D000E6CF11E604E514E6CF15E603CF12E604C5 -:1034E0008FD8E55C80D1DF368FD6E50C409C028F0B -:1034F000D8E59C03AF9CF49C0451FF5F9CF49C05B1 -:10350000AF9EF49C0651FF5F9EF49C0717040200D7 -:10351000C1300600FCEB8E00C0CC0101EF42170465 -:103520000200C1F6FCEB8E00C0CC0102EF3240D7A6 -:10353000E502DF1017040200C1F6FCEB8E00C0CCE0 -:103540000102EF1CD9BAF4F1C1D9D6E5FCA74400B9 -:10355000C03404E6C5300300FCEB8E00C0CC010093 -:103560008C01318F121008C6D7C72008FBF8FF8FD7 -:10357000D8E55C80D1DF33CF08E5A5CF09E503CFDF -:1035800000E5028FD6E50C409F01E58FD8E59F024C -:10359000E5CF03E5AACF04E5AACF05E5AACF06E566 -:1035A000AACF07E5AACC0501EF11F508E517040637 -:1035B00000C1F6FCEB8E00C0CC0502F50AE58C05D7 -:1035C00091DF05F5ABFFEFFBF5ABFFEFFB1008C696 -:1035D000D7C7C12008FBF8FF401AE605DE23A01A72 -:1035E000E68F1AE66CB09F0EE5401AE605DF123052 -:1035F0001027BF1CE6300300BF16E6086CB09F0D15 -:10360000E5F64218E661E8EED300421CE661E8EE1A -:10361000CB00401AE605DF06F51AE6F50EE58FD871 -:10362000E55C80D161E8EEA4008FD6E50C409C02F9 -:103630008FD8E59C03FC484D00624C04DD0ECC04A1 -:1036400000CC0500CC0600CC0700EF53401AE60280 -:10365000DE0CFCCF700013BFA0F415BFA2F4AFA026 -:10366000F4BDD8AFA2F4BDDA5118FD0602F8D86255 -:103670009C04AFA0F4BDD8AFA2F4BDDA5110FD0692 -:1036800002F8D8629C05AFA0F4BDD8AFA2F4BDDAB1 -:103690005108FD0602F8D8629C068FA0F49C0771C1 -:1036A000701EE68C08318EC1AFA0F4DBA2F4FCAC36 -:1036B0007200C013BF20E615BF22E617040200C146 -:1036C000300600FCEB8E00C0CC0101EF2C17040289 -:1036D00000C1F6FCEB8E00C0CC0102EF1CD9B4F4A3 -:1036E000F1C1D9D6E5FCA74400C03404E6C53003D7 -:1036F00000FCEB8E00C0CC01008C01318F12100A4F -:10370000C6D7C7C12008FBF8FF51805F1EE6D16114 -:10371000F8EE4D01F51AE6F50EE5CC07008C074CE6 -:1037200004DE188C070C02318E0208E61489728CB4 -:1037300007736218DDE5615907EFE2D9DDE5F1BDF8 -:10374000D8F6BDDA5118FDEB01ADD8BDDCADDABD60 -:10375000DED9DEE5F1BDD8F6BDDA5110FDEB01ADE5 -:10376000DEFDCA01ADD8BDDCADDABDDED9DFE5F1E5 -:10377000BDD8F6BDDA5108FDEB01ADDEFDCA01D9B9 -:10378000E0E5F1BDDCF6BDDEFDCA01ADDABC02AD9F -:10379000D8BBAC024222E6AB61F84220E6DD0EA2C5 -:1037A00016E6AF16E6086CB09F0DE5EF1DF6BF16E6 -:1037B000E6F50DE58C084C02DF06CF12E607EF0AAE -:1037C0008C084C1261F8CF12E607F64216E6DF3994 -:1037D0008FD8E55C80D1DF218FD6E50C409C058F2A -:1037E000D8E59C06CF1EE60417040500C1E6A1FC3F -:1037F000EB8E00C0CC0401EF6617040500C1F6FC97 -:10380000EB8E00C0CC0402EF56F64216E6DD2AAF7E -:1038100016E6440300DE22CF1EE604D9B2F4F1C15D -:10382000D9D6E5FCA74400C03404E6C5300300FC4B -:10383000EB8E00C0CC0400EF48CF1EE6043010270A -:10384000BF18E6D9B3F4F1C1D9D6E5FCA74400C04E -:103850003404E6C5300300FCEB8E00C0CC0400EF5E -:1038600020CF1EE604D9AFF4F1C1D9D6E5FCA744B8 -:1038700000C03404E6C5300300FCEB8E00C0CC046D -:10388000008C04318F12100AC6D7C72006FBF8FF40 -:103890004030E601DF538FD8E55C80D1DF348FD62E -:1038A000E50C409C018FD8E59C0251FF5FEEE59C42 -:1038B00004AFEEE59C03CC0504F530E6E534E6E51F -:1038C00030E617A1C1300500FCEB8E00C0CC000132 -:1038D000EF33F530E6E534E6E530E617A1C1F6FC56 -:1038E000EB8E00C0CC0002EF1CD9AFF4F1C1D9D6E9 -:1038F000E5FCA74400C03404E6C5300300FCEB8EB1 -:1039000000C0CC00008B318F121006C6D78F34E672 -:10391000318F12D7C72024FBF8FFEB08E68A049DFD -:10392000D8F4D9F6BDDA5118FDEB01AF08E604056D -:1039300000C1ADD8BDDCADDABDDEC014899DD8F4C0 -:10394000D9F6BDDA5110FDEB01ADDEFDCA01AF08BD -:10395000E6040600C1ADD8BDDCADDABDDEC0148919 -:103960009DD8F4D9F6BDDA5108FDEB01ADDEFDCAF4 -:1039700001EB08E68A079DDCF4DDF6BDDEFDCA0139 -:10398000ADDABC16ADD8BC14EB08E68A089DD8F4B5 -:10399000D9F6BDDA5118FDEB01AF08E6040900C104 -:1039A000ADD8BDDCADDABDDEC014899DD8F4D9F642 -:1039B000BDDA5110FDEB01ADDEFDCA01AF08E60432 -:1039C0000A00C1ADD8BDDCADDABDDEC014899DD81A -:1039D000F4D9F6BDDA5108FDEB01ADDEFDCA01EB0D -:1039E00008E68A0B9DDCF4DDF6BDDEFDCA01ADDA2A -:1039F000BC12ADD8BC10AC16614912AC1461F861B0 -:103A00004910DE1BAC10BDD8AC12BDDAAC14BDDC65 -:103A1000AC16FDD901ADDABC12ADD8BC10EF23D97C -:103A2000B0F4F1C1D9D6E5FCA74400C03404E6C522 -:103A3000300300FCEB8E00C0CC1D00F1318F12EE84 -:103A40002D02F6614916DF0630FF9F614914DE1A28 -:103A5000E6614916DF0630FF9F614914DC0CE66120 -:103A60004912DF04F6614910DE23D9B0F4F1C1D95F -:103A7000D6E5FCA74400C03404E6C5300300FCEBE7 -:103A80008E00C0CC1D00F1318F12EEE2014031E614 -:103A90000161E8EEB801D9B9F4F1C1D9D6E5FCA7C6 -:103AA0004400C03404E6C5300300FCE18F00C0F6DA -:103AB000B1BC18BC1A300400C1E6A1C1170418003B -:103AC000FCF381001004D261E8EE6401D9B9F4F18D -:103AD000C1D9D6E5FCA74400C03404E6C5300300D4 -:103AE000FCE18F00C0F6614916DF0630FF9F614997 -:103AF0001461C8EEEF00E6614916DF0630FF9F61F2 -:103B0000491461D8EEDE00FCFB7E00629C23D1DF0D -:103B100066D9B9F4F1C1D9D6E5FCA74400C0340494 -:103B2000E6C5300300FCE18F00C0304000C15028E2 -:103B3000FC207F00C0629C23CF2FE6040017FCFC12 -:103B4000690017040800FC0E6A008C0881DF05CCB0 -:103B50000801EF03615908FCFB7E00D2DF19E6C1C2 -:103B60005068FC207F00C0301000C117C13000A099 -:103B7000E7FC9B7F0010048C23D1DF4B8FD8E55CE2 -:103B800080D1DF338FD6E50C409C1E8FD8E59C1F7B -:103B900051FF5FEEE59C21AFEEE59C20CC2204F5C1 -:103BA00031E6E531E617041E00C1300500FCEB8E5E -:103BB00000C0CC1D01EF2C17041E00C1F6FCEB8EDB -:103BC00000C0CC1D02EF67D9B6F4F1C1D9D6E5FC2F -:103BD000A74400C03404E6C5300300FCEB8E00C0EF -:103BE000CC1D00EF678FD8E55C80D1DF338FD6E541 -:103BF0000C409C1E8FD8E59C1F51FF5FEEE59C2179 -:103C0000AFEEE59C20CC2205F531E6E531E6170460 -:103C10001E00C1300500FCEB8E00C0CC1D01EF4A38 -:103C200017041E00C1F6FCEB8E00C0CC1D02EF3A5B -:103C3000D9B6F4F1C1D9D6E5FCA74400C03404E6F6 -:103C4000C5300300FCEB8E00C0CC1D00EF1CD9AFCB -:103C5000F4F1C1D9D6E5FCA74400C03404E6C53070 -:103C60000300FCEB8E00C0CC1D008C1D318F1210A8 -:103C700024C6D7C72016FBF8FF4032E60161E8EE04 -:103C80002301402FE606DD328FD6E50C409C118FD4 -:103C9000D8E59C1251FF5FEEE59C14AFEEE59C1356 -:103CA000CC150517041100C1300500FCEB8E00C0D7 -:103CB000CC0001E1318F12EE0B013055AA41001109 -:103CC0004202A1DF07084100114200A161E8EEA114 -:103CD000003055AA41011142F29FDF07084101114E -:103CE00042F09F61E8EE8A0017A1FCFC690017040E -:103CF0000900FC0E6A008C0181DF05CC0101EF0395 -:103D0000615901CC0900FCFB7E00D2DF1AE6C150EC -:103D100068FC207F00C0301000C117A1C13000A096 -:103D2000E7FC9B7F0010048FD8E55C80D1DF338FE8 -:103D3000D6E50C409C118FD8E59C1251FF5FEEE553 -:103D40009C14AFEEE59C13CC1504F532E6E532E6A3 -:103D500017041100C1300500FCEB8E00C0CC00013F -:103D6000EF5F17041100C1F6FCEB8E00C0CC00021F -:103D7000EF4F8FD6E50C409C118FD8E59C1251FF78 -:103D80005FEEE59C14AFEEE59C13CC1505F532E62D -:103D9000E532E617041100C1300500FCEB8E00C0CF -:103DA000CC0001EF1CD9AFF4F1C1D9D6E5FCA74492 -:103DB00000C03404E6C5300300FCEB8E00C0CC002C -:103DC000008B318F121016C6D7C72006FBF8FFD51F -:103DD00030E6DF418FD8E55C80D1DF2B8FD6E50C54 -:103DE000409C018FD8E59C0251FF5FEEE59C04AF3B -:103DF000EEE59C03CC050417A1C1300500FCEB8E59 -:103E000000C0CC0001EF2A17A1C1F6FCEB8E00C068 -:103E1000CC0002EF1CD9AFF4F1C1D9D6E5FCA74420 -:103E200000C03404E6C5300300FCEB8E00C0CC00BB -:103E3000008B318F121006C6D7C72006FBF8FFD5BE -:103E400031E6DF418FD8E55C80D1DF2B8FD6E50CE2 -:103E5000409C018FD8E59C0251FF5FEEE59C04AFCA -:103E6000EEE59C03CC050417A1C1300500FCEB8EE8 -:103E700000C0CC0001EF2A17A1C1F6FCEB8E00C0F8 -:103E8000CC0002EF1CD9AFF4F1C1D9D6E5FCA744B0 -:103E900000C03404E6C5300300FCEB8E00C0CC004B -:103EA000008B318F121006C6D7C72006FBF8FFD54E -:103EB00032E6DF418FD8E55C80D1DF2B8FD6E50C71 -:103EC000409C018FD8E59C0251FF5FEEE59C04AF5A -:103ED000EEE59C03CC050417A1C1300500FCEB8E78 -:103EE00000C0CC0001EF2A17A1C1F6FCEB8E00C088 -:103EF000CC0002EF1CD9AFF4F1C1D9D6E5FCA74440 -:103F000000C03404E6C5300300FCEB8E00C0CC00DA -:103F1000008B318F121006C6D7C72006FBF8FF4072 -:103F200030E601DF418FD8E55C80D1DF2B8FD6E50D -:103F30000C409C018FD8E59C0251FF5FEEE59C048C -:103F4000AFEEE59C03CC050417A1C1300500FCEBE6 -:103F50008E00C0CC0001EF2A17A1C1F6FCEB8E0049 -:103F6000C0CC0002EF1CD9AFF4F1C1D9D6E5FCA753 -:103F70004400C03404E6C5300300FCEB8E00C0CC26 -:103F800000008B318F121006C6D7C72006FBF8FF42 -:103F90004031E601DF418FD8E55C80D1DF2B8FD641 -:103FA000E50C409C018FD8E59C0251FF5FEEE59C3B -:103FB00004AFEEE59C03CC050417A1C1300500FC5D -:103FC000EB8E00C0CC0001EF2A17A1C1F6FCEB8EEE -:103FD00000C0CC0002EF1CD9AFF4F1C1D9D6E5FC8A -:103FE000A74400C03404E6C5300300FCEB8E00C0DB -:103FF000CC00008B318F121006C6D7C72006FBF805 -:10400000FF4032E601DF418FD8E55C80D1DF2B8FA6 -:10401000D6E50C409C018FD8E59C0251FF5FEEE590 -:104020009C04AFEEE59C03CC050417A1C13005004C -:10403000FCEB8E00C0CC0001EF2A17A1C1F6FCEB0F -:104040008E00C0CC0002EF1CD9AFF4F1C1D9D6E587 -:10405000FCA74400C03404E6C5300300FCEB8E002E -:10406000C0CC00008B318F121006C6D7C7200EFBC4 -:10407000F8FFD9B9F4F1C1D9D6E5FCA74400C034A2 -:1040800004E6C5300300FCE18F00C04033E6016167 -:10409000E8EE01018FD6E50C409C018FD8E59C022B -:1040A00051FF5FEEE59C04AFEEE59C03EB08E68A6A -:1040B000049DD8F4D9F6BDDA5118FDEB01AF08E63E -:1040C000040500C1ADD8BDDCADDABDDEC014899DEC -:1040D000D8F4D9F6BDDA5110FDEB01ADDEFDCA0111 -:1040E000AF08E6040600C1ADD8BDDCADDABDDEC068 -:1040F00014899DD8F4D9F6BDDA5108FDEB01ADDE87 -:10410000FDCA01EB08E68A079DDCF4DDF6BDDEFDA5 -:10411000CA01ADDABF4CE6ADD8BF4AE6300F004267 -:104120003CE6DF0630A0F9423AE6DF2DF6C13080EA -:1041300004C130A0F9C1F6B112FC1681001006AF1F -:104140004CE645AF4AE661F843DF09CC0504CF2FC2 -:10415000E603EF31CC0505EF2CE6C1B1C1C151A09A -:10416000C1F6B112FC4680001008AF4CE645AF4ADC -:10417000E661F843DF0CF50AE5CC0504CF2FE6062F -:10418000EF03CC050517A1C1300500FCEB8E00C084 -:10419000CC0001EF1CD9AFF4F1C1D9D6E5FCA7449E -:1041A00000C03404E6C5300300FCEB8E00C0CC0038 -:1041B000008B318F12100EC6D7D7D7C7C12004FB92 -:1041C000F8FF4011E604DD3440D7E502DF101704A4 -:1041D0000200C1F6FCEB8E00C0E7A3EEAE00D9B53D -:1041E000F4F1C1D9D6E5FCA74400C03404E6C530DB -:1041F0000300FCEB8E00C0E7A3EE90008C04D1DD41 -:104200006A8C044C04DE648FD8E55C80D1DF4C8F6F -:10421000D6E50C409C028FD8E59C038C044C03DF50 -:104220001251032FD8E59F14E651032FD8E59F15AF -:10423000E6EF178C0491DF0A51032FD8E59F15E6AE -:10424000EF0851032FD8E59F14E617040200C1E6DA -:10425000A1FCEB8E00C0CC0101EF2C17040200C1C1 -:10426000F6FCEB8E00C0CC0102EF1CD9B0F4F1C11A -:10427000D9D6E5FCA74400C03404E6C5300300FCF1 -:10428000EB8E00C0CC01008C01318F121006C6D716 -:10429000C72004FBF8FF8FD8E55C80D1DF238FD6E1 -:1042A000E50C409C028FD8E59C03F514E6F515E675 -:1042B00017040200C1E6A1FCEB8E00C0CC0101EFA7 -:1042C0000E17040200C1F6FCEB8E00C0CC01028C7C -:1042D00001318F121004C6D7D915E6F112D7D914BF -:1042E000E6F112D751032F15E6318E12D751032F65 -:1042F00014E6318E12D7C72004FBF8FF308813BFB5 -:104300000EE68FD8E55C80D1DF1D8FD6E50C409C92 -:10431000028FD8E59C0317040200C1E6A1FCEB8ED6 -:1043200000C0CC0101EF0E17040200C1F6FCEB8EB9 -:1043300000C0CC01028C01318F121004C6D7C720F7 -:1043400004FBF8FF40D7E502DF154011E604DD0F5E -:1043500017040200C1F6FCEB8E00C0E7A3EF3BE5BB -:1043600013E68FD8E55C80D1DF1D8FD6E50C409C2D -:10437000028FD8E59C0317040200C1E6A1FCEB8E76 -:1043800000C0CC0101EF0E17040200C1F6FCEB8E59 -:1043900000C0CC01028C01318F121004C6D7C72097 -:1043A00004FBF8FF40D7E502DF154011E604DD0FFE -:1043B00017040200C1F6FCEB8E00C0E7A3EF3BF54B -:1043C00013E68FD8E55C80D1DF1D8FD6E50C409CCD -:1043D000028FD8E59C0317040200C1E6A1FCEB8E16 -:1043E00000C0CC0101EF0E17040200C1F6FCEB8EF9 -:1043F00000C0CC01028C01318F121004C6D7D91332 -:10440000E6F112D7C7D9AEF4F1C1D9D6E5FCA7447D -:1044100000C03404E6C5300300FCEB8E00C056003B -:1044200066318F12C6D7C7D9AEF4F1C1D9D6E5FC33 -:10443000A74400C03404E6C5300300FCEB8E00C086 -:10444000560066318F12C6D7C72004FBF8FF401113 -:10445000E602DF08F50AE5F5ABFFEFFBF510E6E550 -:1044600011E6CF12E604E513E6E514E6CF15E60300 -:104470001004C6D7F6420EE661E8B20EE6D7F64261 -:1044800018E6DD0EB218E64218E6DF06BF16E6F5BE -:104490000DE5F6421CE6DD0EB21CE6421CE6DF0628 -:1044A000F51AE6F50EE5D7C7880616CF04E67F664F -:1044B0009F05E6679F06E6C6D7C7C1C1FBF8FFCCDC -:1044C00001008C014E10DE1D8C0E0E01318E610933 -:1044D0000C1489728C0A0E01318E610902146299E2 -:1044E000615901EFDD1004C6D7C7C3C1FBF8FFF661 -:1044F000614902DF0551A0614900DF0CE661490C0A -:10450000DF04F661490ADD2C300F00614902DF0645 -:1045100030A0F9614900DF0EF661490CDF063080FA -:104520000461490ADD0EF6614902DF0630015A6175 -:104530004900DF03E7EF01F71004C6D7C72024FBCB -:10454000F8FFEB08E68A019C238A029C228A039DDD -:10455000D8F4D9F6BDDA5118FDEB01AF08E6040432 -:1045600000C1ADD8BDDCADDABDDEC014899DD8F484 -:10457000D9F6BDDA5110FDEB01ADDEFDCA01AF0881 -:10458000E6040500C1ADD8BDDCADDABDDEC01489DE -:104590009DD8F4D9F6BDDA5108FDEB01ADDEFDCAB8 -:1045A00001EB08E68A069DDCF4DDF6BDDEFDCA01FE -:1045B000ADDABC20ADD8BC1EEB08E68A079DD8F466 -:1045C000D9F6BDDA5118FDEB01AF08E6040800C1C9 -:1045D000ADD8BDDCADDABDDEC014899DD8F4D9F606 -:1045E000BDDA5110FDEB01ADDEFDCA01AF08E604F6 -:1045F0000900C1ADD8BDDCADDABDDEC014899DD8DF -:10460000F4D9F6BDDA5108FDEB01ADDEFDCA01EBD0 -:1046100008E68A0A9DDCF4DDF6BDDEFDCA01ADDAEE -:10462000BC1CADD8BC1AAC2012AC1EBF3AE633BFDE -:104630003CE6AC1C12AC1ABF42E633BF44E68C2306 -:10464000D161E8EE57018C224C4461E8EE4E013016 -:104650000B0042D4E561E8EE2501AC1CC1AC1AC1E7 -:10466000AC2012AC1EFCE9440010049261E8EEF0AC -:1046700000F6423CE6DF0630015A423AE6DD1030F1 -:104680000F00423CE6DF0630A0F9423AE6DF1C307C -:10469000A0F9BF3AE631CEBF3CE6308004BF42E627 -:1046A000F6BF44E65042BFA8F4EF43300202BFA871 -:1046B000F43000A0BF3AE6F6BF3CE6BF42E6E6BFF4 -:1046C00044E6402FE604DD22D9BDF4C1D9D6E5FC8D -:1046D000A74400C03404E6C5300300FCEB8E00C0E4 -:1046E000CC0100F1318F12EED400CF2FE605D9D6E0 -:1046F000E5F1FC4E4D00629C19318EFC9E4D00622E -:104700009C1891DF3E8FD6E50C409C12CC132051B3 -:10471000FF5FA8F49C15AFA8F49C1417041200C105 -:10472000300400FCEB8E00C0E524E6AC1C12AC1A91 -:10473000BF26E633BF28E6F6BF2AE6BF2CE6CC014B -:1047400001EF76D9BDF4F1C1D9D6E5FCA74400C08C -:104750003404E6C5300300FCEB8E00C0CC0100EF52 -:1047600058D9B0F4F1C1D9D6E5FCA74400C034044F -:10477000E6C5300300FCEB8E00C0CC0100EF3AD957 -:10478000ACF4F1C1D9D6E5FCA74400C03404E6C5B9 -:10479000300300FCEB8E00C0CC0100EF1CD9B0F45C -:1047A000F1C1D9D6E5FCA74400C03404E6C5300306 -:1047B00000FCEB8E00C0CC01008C01318F12102464 -:1047C000C6D7C72016FBF8FF4024E601DD0F4024C2 -:1047D000E602DD094024E60361E8EE4804AFD4E5D3 -:1047E000B1B1BC14BDDCF6BDDEAF2AE6BDD8AF2C3E -:1047F000E6BDDAADDEFDCA01ADDABF2CE6ADD8BF4D -:104800002AE6EB08E68A019C13D92EE6F1A1F160B5 -:104810009C12AC14BDD8F6BDDA8C139DDCF4DDF629 -:10482000BDDEFD8201E646DADF03F646D861D8EE4A -:10483000D503AFD4E542A8F4DD23D9ACF4F1C1D956 -:10484000D6E5FCA74400C03404E6C5300300FCEB09 -:104850008E00C0CC0B00F1318F12EEE9038C139166 -:10486000DF064024E601DD1F8C134E12DD0A8C1298 -:10487000914E1361E8EE71034024E602DD09402405 -:10488000E60361E8EE62038C1391DF114024E60138 -:10489000DF0BF6BF50E6BF54EACF24E6028C12913C -:1048A0004E13DF74300F00423CE6DF0630A0F942C1 -:1048B0003AE6DD64AF3EE6BBF6BC04AC044252E629 -:1048C000DE21ABCDD40FF74361F8F4D4C18DD4C051 -:1048D00014AC040454E6C5C214629961790061798C -:1048E00004EFD8DB40E6AF3EE6BF3AE633BF3CE636 -:1048F000AF52E6BF50E6AC14BDDCF6BDDEAF2AE633 -:10490000BDD8AF2CE6BDDAADDEFDD901ADDABF2CE6 -:10491000E6ADD8BF2AE6EF408C12914E13DF393056 -:104920000F00423CE6DF0630A0F9423AE6DF29AF4D -:1049300054EA612914BF54EAAC14BDDCF6BDDEAF05 -:104940002AE6BDD8AF2CE6BDDAADDEFDD901ADDA81 -:10495000BF2CE6ADD8BF2AE6AC140250E6318EBFBC -:104960004EE6F6BC04AC040250E6DB4EE6318C4366 -:10497000DE1AAC04A1A10208E6148972AC0402504C -:10498000E60454E6146299617904EFD9AFEAEA4487 -:104990001D01DE1ED9BCF4F1C1D9D6E5FCA7440047 -:1049A000C03404E6C5300300FCEB8E00C0CC0B0025 -:1049B000EF24AFEAEA443F02DC1CD9BBF4F1C1D9D1 -:1049C000D6E5FCA74400C03404E6C5300300FCEB88 -:1049D0008E00C0CC0B00AFD4E542A8F461E8EEEA4B -:1049E000018C139F2EE6AF2CE64228E6AF2AE66143 -:1049F000F84226E6DF6CCF24E603AC140250E6DB77 -:104A00004EE6318C23BF50E6F6BF2AE6BF2CE642C5 -:104A100050E661E8A24EE6F6BC02AC024250E6DE89 -:104A200021AC04A1A10208E6148972AC040250E68C -:104A30000454E6146299AC04A1BC04AC02A1BC020B -:104A4000EFD8AC040250E6DB4EE6318C43DE0FAC0F -:104A5000040250E6123954E6FF617904EFE4F6BF30 -:104A600050E6AF50E6BF52E6AC140250E6DB4EE62D -:104A7000318C23BF50E6300F00423CE6DF0630A009 -:104A8000F9423AE6DF57E6A1BC02AF54EABDD8F6D8 -:104A9000BDDA4244E6ADD861F84242E6DE22AC021D -:104AA000A1BC02B10208E6148972A254EAAF54EA2A -:104AB000049FF9146299AC14A1A112AC0243DCCAA0 -:104AC0008FD6E50C409C0C8C139C0D17040C00C178 -:104AD000E6A1FCEB8E00C0CC0B01EEEC00D9B9F4E2 -:104AE000F1C1D9D6E5FCA74400C03404E6C53003C3 -:104AF00000FCE18F00C0FCFB7E00D2DF653054E695 -:104B0000BC08DB3CE6AF3AE6BF3EE633BF40E6F624 -:104B1000424EE6DD4DD9B9F4C1D9D6E5FCA7440033 -:104B2000C03404E6C5300300FCE18F00C0CC0B00AC -:104B3000F0E1C1AC08C1AF3AE6DB3CE6FC9B7F008C -:104B40001004629C07AF3AE6DB3CE604000161D842 -:104B5000A3BF3AE633BF3CE6AC0881BC08B24EE6E0 -:104B6000EFAD8C07D1DF468FD6E50C409C0C8C1343 -:104B70009C0D17040C00C1E6A1FCEB8E00C0AC0438 -:104B8000A1A1BC04F6BC02AC024250E6DE1AAC04A1 -:104B90000208E6148973AC02334854E6AC04A1BCA5 -:104BA00004AC02A1BC02EFDFCC0B01EF76D9AAF472 -:104BB000F1C1D9D6E5FCA74400C03404E6C53003F2 -:104BC00000FCEB8E00C0CC0B00EF76D9ACF4F1C149 -:104BD000D9D6E5FCA74400C03404E6C5300300FC88 -:104BE000EB8E00C0CC0B00EF58D9B8F4F1C1D9D688 -:104BF000E5FCA74400C03404E6C5300300FCEB8E9E -:104C000000C0CC0B00EF3AD9B0F4F1C1D9D6E5FC25 -:104C1000A74400C03404E6C5300300FCEB8E00C09E -:104C2000CC0B00EF1CD9AFF4F1C1D9D6E5FCA744F9 -:104C300000C03404E6C5300300FCEB8E00C0CC0B92 -:104C4000008C0B318F121016C6D7C72004FBF8FF5B -:104C50004024E603DF40E642D4E5DF1C8FD6E50CB6 -:104C6000409C029C0217040200C1E6FCEB8E00C0CF -:104C7000F524E6E533E6EF3AD9ACF4F1C1D9D6E54F -:104C8000FCA74400C03404E6C5300300FCEB8E00F2 -:104C9000C0CC0100EF1CD9AFF4F1C1D9D6E5FCA717 -:104CA0004400C03404E6C5300300FCEB8E00C0CCE9 -:104CB00001008C01318F121004C6D7E511E6CF1226 -:104CC000E604E513E6E514E6CF15E603F6BF18E6BD -:104CD000CF1EE604BF16E68F0EE59F1AE6D90DE556 -:104CE000F1BF16E68F1AE6314A4C0BDF09341AE69B -:104CF000895C0F99EF03F51AE6AF16E6314E440BC7 -:104D000000DF0C510F5F16E6318EBF16E6EF04F69A -:104D1000BF16E6AF16E6440300DC06301027BF18C6 -:104D2000E6F524E6E530E6E531E6E532E6F534E69B -:104D3000D7DB0EE6D7308813BF0EE6D7D910E6F1E1 -:104D400012D7D911E6F112D7D912E6F112D7C7C19D -:104D5000C1FBF8FFCC00FFCC01008C014C10DE172A -:104D60008C01500AD6124921204E02DF058C019B8E -:104D7000EF05615901EFE38B318E121004C6D7C7DE -:104D800016570066500AD6041C20C1FC424D00C4D0 -:104D900089615AD161E8570167318E12C6D7C716AB -:104DA000570066500AD6041C20C1FC484D00C48A36 -:104DB00001615AD161E8570167318E12C6D7C71613 -:104DC000570066500AD612491E205FD7E5D161E828 -:104DD0008767318E12C6D7C7C1C1FBF8FFCC01006F -:104DE0008C02500AD612491F20318E12AC0A436140 -:104DF000C8CC01018C01318E121004C6D7C7C1C1C5 -:104E0000FBF8FFCC00FFCC01008C014E02DE1D8CB4 -:104E10000A5C7F728C015006D661090C14896142CC -:104E2000DF058C019BEF05615901EFDD8B318E129F -:104E30001004C6D7C7C1C1FBF8FFCC01008C0250DB -:104E400006D661090C148A01318E61490A61F8CCD9 -:104E500001018C01318E121004C6D7C7C1C1FBF805 -:104E6000FFCC0100AC02440300DC18AC02440C008F -:104E7000DE118C025C01318EE743DF07AC02311E8C -:104E8000609C018C01318E121004C6D7C7C1C1FBD2 -:104E9000F8FFCC0100AC02440300DC0CF6614902CF -:104EA000DF068C022C029C018C01318E121004C68C -:104EB000D7C7C1C1FBF8FFCC01008C02500AD661F4 -:104EC000090A148A020C03318E42D4E561F8CC0140 -:104ED000018C01318E121004C6D7C7C1C1FBF8FF87 -:104EE000CC01008C02500AD661090A148A020C0314 -:104EF000318E42D4E5DD0B8A020C02318E42D4E5BC -:104F000061F8CC01018C01318E121004C6D7C7C1E3 -:104F1000C1FBF8FFCC00FFCC01008C014E02DE1A71 -:104F20008C01500AD661090C14AA0461490ADF05F4 -:104F30008C019BEF05615901EFE08B318E1210045B -:104F4000C6D7C7C1C1FBF8FFCC01008C02500AD6FE -:104F500061090AC1FC424D00C489615AD161E8CCA3 -:104F600001018C01318E121004C6D7C7C1C1FBF8F4 -:104F7000FFCC01008C02500AD661090AC1FC484DE1 -:104F800000C48A01615AD161E8CC01018C01318EE3 -:104F9000121004C6D7C7C1C1FBF8FFCC00FFCC017B -:104FA000008C014E02DE1A8C015006D661090C14E9 -:104FB000AA0261490ADF058C019BEF05615901EFE7 -:104FC000E08B318E121004C6D7C7C1C1FBF8FFCCED -:104FD00001008C025006D661090AC1FC424D00C492 -:104FE00089615AD161E8CC01018C01318E12100423 -:104FF000C6D7C7C1C1FBF8FFCC01008C025006D652 -:1050000061090AC1FC484D00C48A01615AD161E8B6 -:10501000CC01018C01318E121004C6D7C7C1C1FB6F -:10502000F8FFCC00FFCC01008C014E0CDE298C0A6D -:105030005C7F728C025006D661090E148C015006FA -:10504000D6C312AA040314C2896142DF058C019BF6 -:10505000EF05615901EFD18B318E121004C6D7C70D -:10506000C1C1FBF8FFCC01008C025006D661090CCF -:10507000148C0A5006D612AA0403148A01318E42F7 -:10508000D4E561F8CC01018C01318E121004C6D731 -:10509000C7C12004FBF8FF8C0E9C01AC0E9C02AC37 -:1050A0000C1489318E610904148C0299AC0C14899A -:1050B0008199AC0C1489318E610904148C0199AC6E -:1050C0000C14898199CC03008C034E12DE1D8C03D5 -:1050D000318E610910148972AC0C14890E03318E63 -:1050E000610904146299615903EFDDAC0C14890E57 -:1050F00012991006C6D7C7200AFBF8FFCC09FFEBB0 -:1051000008E68A019FD8E534BC20C5D9D8E5F1C1AD -:105110005003FCFD4D001004629C0981DF3440D730 -:10512000E502DF1017040200C1F6FCEB8E00C0CCD4 -:105130000102EF68D9ABF4F1C1D9D6E5FCA7440070 -:10514000C03404E6C5300300FCEB8E00C0CC010087 -:10515000EF4A34BC20C5AFD4E5C18C09318EFC3494 -:105160004E001004629C0891DF168C095006D6048C -:10517000BC20148A049EFCAA0261CA629C01EF1C36 -:10518000D9ACF4F1C1D9D6E5FCA74400C03404E69B -:10519000C5300300FCEB8E00C0CC01008C01318FC8 -:1051A00012100AC6D7C7200AFBF8FFCC09FFEB088C -:1051B000E68A019FD8E534CE20C5D9D8E5F1C1E60D -:1051C000A1FCFD4D001004629C0981DF3240D7E54F -:1051D00002DF0E17A1C1F6FCEB8E00C0CC0702EF78 -:1051E00068D9ABF4F1C1D9D6E5FCA74400C03404BA -:1051F000E6C5300300FCEB8E00C0CC0700EF4A345C -:10520000CE20C5AFD4E5C18C09318EFC344E0010E0 -:1052100004629C0891DF168C095006D604CE201437 -:105220008A049EFCAA0261CA629C07EF1CD9ACF4F6 -:10523000F1C1D9D6E5FCA74400C03404E6C530036B -:1052400000FCEB8E00C0CC07008C07318F12100AD7 -:10525000C6D7C72090FBF8FFCC8F00CC8D00CC03C5 -:1052600001CC0200AFD4E5FC5B4E00629C8ED161A4 -:10527000F8EE88018C8E9FECE58C8E3119318EC151 -:10528000E6C1AF08E6C1F6C130E2E5FCB944001062 -:1052900008D5ECE561F8EE0A018C8F7309E2E5317F -:1052A0008E318D128C8F81318E04E2E51489318E1E -:1052B00003BC868C8F0C029C8F345421C5AC86C1F4 -:1052C000300E00FC0E4F001004629C8C8161F8EEE1 -:1052D000C800345421C58C8C318EFC424F00C06212 -:1052E0009C8B9161E8EEAA00345421C58C8C318EE0 -:1052F000FC6B4F00C0629C8A91DF768C8C500AD682 -:105300000454211417046B00C18A089DD4AA06C155 -:105310008DD49DD6C01417046C00C18DD69EFCC0E0 -:1053200061EAC0629C8934ECE58991998C8991DDB0 -:10533000228C897309AAF4318EC1D9D6E5FCA74421 -:1053400000C03404E6C5300300FCEB8E00C0CC0185 -:1053500000EF508C6B318EC117046C00C1AC86C15C -:1053600017040300C117040400FC9050001008EF5C -:105370002FD9B1F4F1C1D9D6E5FCA74400C034045B -:10538000E6C5300300FCEB8E00C0CC0100CC02016E -:10539000EF1161598DB0ECE5EF0661598DB0ECE588 -:1053A000EEEEFE8C02D1DF708C8D4E8EDF3440D756 -:1053B000E502DF1017048000C1F6FCEB8E00C0CCC4 -:1053C0000102EF54D9B0F4F1C1D9D6E5FCA74400ED -:1053D000C03404E6C5300300FCEB8E00C0CC0100F5 -:1053E000EF368FD6E50C409C0417040400C18C03F3 -:1053F000318EFCEB8E00C0CC0101EF1CD9ACF4F176 -:10540000C1D9D6E5FCA74400C03404E6C53003008A -:10541000FCEB8E00C0CC01008C01318F121090C6C5 -:10542000D7D7C7200AFBF8FFCC09FFEB08E68A01B3 -:105430009FD8E534DA20C5D9D8E5F1C15004FCFD88 -:105440004D001004629C0981DF3240D7E502DF0E77 -:1054500017A1C1F6FCEB8E00C0CC0702EF77D9ABE9 -:10546000F4F1C1D9D6E5FCA74400C03404E6C53048 -:105470000300FCEB8E00C0CC0700EF5934DA20C5E6 -:10548000AFD4E5C18C09318EFC344E001004629C0F -:105490000891DF258C095006D604DA20148C0950B7 -:1054A00006D604DA20128A049EFCAA0214490000DF -:1054B000318E61EA629C07EF1CD9ACF4F1C1D9D6F8 -:1054C000E5FCA74400C03404E6C5300300FCEB8EC5 -:1054D00000C0CC07008C07318F12100AC6D7C72036 -:1054E0000AFBF8FFCC09FFEB08E68A019FD8E534F8 -:1054F000F220C5D9D8E5F1C15003FCFD4D001004E0 -:10550000629C0981DF3240D7E502DF0E17A1C1F6A8 -:10551000FCEB8E00C0CC0702EF74D9ABF4F1C1D91B -:10552000D6E5FCA74400C03404E6C5300300FCEB1C -:105530008E00C0CC0700EF5634F220C5AFD4E5C1D1 -:105540008C09318EFC344E001004629C0891DF22DD -:105550008C095006D604F22014AF08E6A1A1128AE5 -:10556000049EFCAA0214490000318E61EA629C0785 -:10557000EF1CD9ACF4F1C1D9D6E5FCA74400C03486 -:1055800004E6C5300300FCEB8E00C0CC07008C079E -:10559000318F12100AC6D7C72016FBF8FFCC1500B2 -:1055A000CC0203E6A1C1E6C1AF08E6C1F6C130E214 -:1055B000E5FCB9440010088FE2E5F012D9E3E5F10B -:1055C00003BC0834E021C5AC08C1E6A1FC0E4F00C5 -:1055D0001004629C148161F8EE5E01305AF1614959 -:1055E00008DF0D30210042D4E5DF05CC1301EF10B8 -:1055F00034E021C58C14318EFCB14E00C0629C1386 -:105600008C139161E8EE13018C14500AD61249E212 -:1056100021318EC15003C1AF08E6C1F6C130F0E5BB -:10562000FCB9440010088C14500AD61249E2219C9F -:105630000734E021C58C14318EFC424F00C0629CBF -:10564000129161E8EEA00034E021C58C14318EFC8B -:105650006B4F00C0629C1191DF6F8C14500AD6040E -:10566000E0211417040700C18A089DD4AA06C18D41 -:10567000D49DD6C01430F0E5C18DD69EFCC061EA41 -:10568000C0629C1091DD228C107309AAF4318EC186 -:10569000D9D6E5FCA74400C03404E6C5300300FCBD -:1056A000EB8E00C0CC0100EF708FD6E50C409C0360 -:1056B0008FE2E59C048FE3E59C0517040300C130ED -:1056C0000300FCEB8E00C0EF6ED9B1F4F1C1D9D666 -:1056D000E5FCA74400C03404E6C5300300FCEB8EB3 -:1056E00000C0CC0100EF5040D7E502DF1017040ADC -:1056F00000C1F6FCEB8E00C0CC0102EF6ED9B0F415 -:10570000F1C1D9D6E5FCA74400C03404E6C5300396 -:1057100000FCEB8E00C0CC0100EF50D9ACF4F1C11D -:10572000D9D6E5FCA74400C03404E6C5300300FC2C -:10573000EB8E00C0CC0100EF3240D7E502DF10173E -:10574000040A00C1F6FCEB8E00C0CC0102EF1CD9AC -:10575000B0F4F1C1D9D6E5FCA74400C03404E6C5D5 -:10576000300300FCEB8E00C0CC01008C01318F12A5 -:105770001016C6D7C7D9AEF4F1C1D9D6E5FCA744F7 -:1057800000C03404E6C5300300FCEB8E00C05600B8 -:1057900066318F12C6D7C7D9AEF4F1C1D9D6E5FCB0 -:1057A000A74400C03404E6C5300300FCEB8E00C003 -:1057B000560066318F12C6D7C7200CFBF8FFEB08E6 -:1057C000E68A02318E318D128A03318E03BFEEE5F7 -:1057D000EB08E68A019FD8E5343C22C5AFEEE5C16F -:1057E000300400FC954F001004629C0B8161F8EEC0 -:1057F0003001343C22C58C0B318EFCC94F00C06295 -:105800009C089161E8EEE900343C22C58C0B318E96 -:10581000FCF24F00C0629C079161E8EEB500343C99 -:1058200022C5300300C1D9D8E5C18C0B318EFC1CD8 -:1058300050001006629C0981DD68343C22C58C0949 -:10584000318EC18C0B318EFC5F50001004629C0ABB -:1058500091DF208C0B5006D6043C22148C09500694 -:10586000D612AA0403148A049EFCAA0261CA629C8E -:1058700006EF5E3001FF42EEE5DF09FC733C00629B -:105880009C06EF6BD9ACF4F1C1D9D6E5FCA7440076 -:10589000C03404E6C5300300FCEB8E00C0CC06002B -:1058A000EF4D40D7E502DF0D17C1F6FCEB8E00C0CF -:1058B000CC0602EF6BD9ABF4F1C1D9D6E5FCA74415 -:1058C00000C03404E6C5300300FCEB8E00C0CC06FB -:1058D00000EF4DD9B1F4F1C1D9D6E5FCA74400C021 -:1058E0003404E6C5300300FCEB8E00C0CC0600EFAC -:1058F0006040D7E502DF0D17C1F6FCEB8E00C0CC8F -:105900000602EF4DD9B0F4F1C1D9D6E5FCA74400A9 -:10591000C03404E6C5300300FCEB8E00C0CC0600AA -:10592000EF2F40D7E502DF0D17C1F6FCEB8E00C06C -:10593000CC0602EF1CD9BAF4F1C1D9D6E5FCA744D4 -:1059400000C03404E6C5300300FCEB8E00C0CC067A -:10595000008C06318F12100CC6D7C7200AFBF8FF47 -:10596000CC09FFEB08E68A019FD8E5340421C5D9AC -:10597000D8E5F1C1E6FCFD4D001004629C0981DF11 -:105980003240D7E502DF0E17A1C1F6FCEB8E00C056 -:10599000CC0702EF68D9ABF4F1C1D9D6E5FCA74436 -:1059A00000C03404E6C5300300FCEB8E00C0CC0719 -:1059B00000EF4A340421C5AFD4E5C18C09318EFC17 -:1059C000344E001004629C0891DF168C095006D6F4 -:1059D000040421148A049EFCAA0261CA629C07EF97 -:1059E0001CD9ACF4F1C1D9D6E5FCA74400C03404FD -:1059F000E6C5300300FCEB8E00C0CC07008C0731FD -:105A00008F12100AC6D7C7200AFBF8FFCC09FFEB9C -:105A100008E68A019FD8E5FC424D00624C04DD3265 -:105A200040D7E502DF0E17A1C1F6FCEB8E00C0E700 -:105A3000A3EEB600D9B5F4F1C1D9D6E5FCA7440070 -:105A4000C03404E6C5300300FCEB8E00C0E7A3EED3 -:105A50009800340A21C5D9D8E5F1C1E6A1FCFD4D75 -:105A6000001004629C0981DF3240D7E502DF0E1787 -:105A7000A1C1F6FCEB8E00C0CC0702EF68D9ABF4F5 -:105A8000F1C1D9D6E5FCA74400C03404E6C5300313 -:105A900000FCEB8E00C0CC0700EF4A340A21C5AFF2 -:105AA000D4E5C18C09318EFC344E001004629C0890 -:105AB00091DF168C095006D6040A21148A049EFC34 -:105AC000AA0261CA629C07EF1CD9ACF4F1C1D9D615 -:105AD000E5FCA74400C03404E6C5300300FCEB8EAF -:105AE00000C0CC07008C07318F12100AC6D7C7C17F -:105AF000C1FBF8FF17FCFC690092DF28CC01008C89 -:105B000001D1DF178C01318E071489728C01318E1F -:105B1000610902146299615901EFE4AC0A14CA00E8 -:105B200001E7EF033204001004C6D7C7C1C1FBF878 -:105B3000FF17FC0E6A0092DF28CC01008C01D1DF38 -:105B4000178C01318E071489728C01318E61090224 -:105B5000146299615901EFE4AC0A14CA0001E7EF3D -:105B6000033204001004C6D7C7C1200AFBF8FF1790 -:105B7000040200FC206A0092DF2CCC01008C014C56 -:105B800008DE1A8C01318E070402001489728C0120 -:105B9000318E61090A146299615901EFE0AC121467 -:105BA000CA0008E7EF03320400100CC6D7C7C120B3 -:105BB0000AFBF8FFFC6E6E00D2DD35CC0900AC129A -:105BC00014894E0961D3188C09318E61090A148930 -:105BD000728C09318E07A1146299615909EFDF17A0 -:105BE000A1FC766E0092DF03E7EF08320400EF03BA -:105BF000320400100CC6D7C7C1200AFBF8FF1704F7 -:105C00000200FC396A0092DF2CCC01008C014C08A8 -:105C1000DE1A8C01318E070402001489728C013166 -:105C20008E61090A146299615901EFE0AC1214CA3D -:105C30000008E7EF03320400100CC6D7C7C1200AE2 -:105C4000FBF8FFFC6E6E00D2DD35CC0900AC1214FF -:105C5000894E0961D3188C09318E61090A14897241 -:105C60008C09318E07A1146299615909EFDF17A1E0 -:105C7000FCB96E0092DF03E7EF08320400EF033255 -:105C80000400100CC6D7C7C12006FBF8FF1704029A -:105C900000FC516A0092DF2CCC01008C014C04DE28 -:105CA0001A8C01318E070402001489728C01318E26 -:105CB000610906146299615901EFE0AC0E14CA0043 -:105CC00004E7EF033204001008C6D7C7C12020FB49 -:105CD000F8FFFC6E6E00D2DD35CC1F00AC281489B5 -:105CE0004E1F61D3188C1F318E6109201489728C6C -:105CF0001F318E07A114629961591FEFDF17A1FCB4 -:105D0000646A0092DF03E7EF08320400EF03320415 -:105D1000001022C6D7C7C1200CFBF8FF17040200F1 -:105D2000FC966A0092DF2CCC01008C014C0ADE1A32 -:105D30008C01318E070402001489728C01318E614E -:105D4000090C146299615901EFE0AC1414CA000AFD -:105D5000E7EF03320400100EC6D7C7C12010FBF8CE -:105D6000FF17A1FC786B0092DF27CC00008B4C0F53 -:105D7000DE168B318E07A11489728B318E6109106A -:105D8000146299615900EFE5AC1814CA000FE7EFEF -:105D9000033204001012C6D7C7C1200EFBF8FF174C -:105DA000040200FC7D6B0092DF2CCC01008C014CC6 -:105DB0000CDE1A8C01318E070402001489728C01EA -:105DC000318E61090E146299615901EFE0AC16142D -:105DD000CA000CE7EF033204001010C6D7C7C1C1D8 -:105DE000FBF8FF17A1FC826B0092DF0FAC02148C52 -:105DF0000199AC0A14CA0001E7EF03320400100451 -:105E0000C6D7C7C1200AFBF8FF17A1FCC46B0092DC -:105E1000DF27CC00008B4C09DE168B318E07A114D6 -:105E200089728B318E61090A146299615900EFE51C -:105E3000AC1214CA0009E7EF03320400100CC6D7F5 -:105E4000C7C12010FBF8FF17A1FCE66B0092DF270B -:105E5000CC00008B4C0FDE168B318E07A11489729B -:105E60008B318E610910146299615900EFE5AC180D -:105E700014CA000FE7EF033204001012C6D7C7C1DF -:105E80002008FBF8FF17040200FCEB6B0092DF2CEC -:105E9000CC01008C014C06DE1A8C01318E07040205 -:105EA000001489728C01318E61090814629961595C -:105EB00001EFE0AC1014CA0006E7EF033204001053 -:105EC0000AC6D7C7C12006FBF8FF17040200FC046E -:105ED0006C0092DF2CCC01008C014C04DE1A8C018A -:105EE000318E070402001489728C01318E6109061B -:105EF000146299615901EFE0AC0E14CA0004E7EF97 -:105F0000033204001008C6D7C7C12012FBF8FF17E0 -:105F1000FC176C0092DF29CC11008C114C11DE179C -:105F20008C11318E071489728C11318E6109121413 -:105F30006299615911EFE3AC1A14CA0011E7EF033B -:105F40003204001014C6D7C7C12016FBF8FFFC6E40 -:105F50006E00D2DD35CC1500AC1E14894E1561D310 -:105F6000188C15318E6109161489728C15318E07C3 -:105F7000A1146299615915EFDF17A1FCFB6E009225 -:105F8000DF03E7EF08320400EF033204001018C605 -:105F9000D7C7C12010FBF8FF17A1FC306C0092DFBF -:105FA00027CC00008B4C0FDE168B318E07A1148995 -:105FB000728B318E610910146299615900EFE5AC62 -:105FC0001814CA000FE7EF033204001012C6D7C737 -:105FD000C1200EFBF8FF17040200FC356C0092DFB5 -:105FE0002CCC01008C014C0CDE1A8C01318E070484 -:105FF00002001489728C01318E61090E146299615C -:106000005901EFE0AC1614CA000CE7EF03320400AC -:106010001010C6D7C7C12006FBF8FF17A1FC3A6CC9 -:106020000092DF27CC00008B4C05DE168B318E07EB -:10603000A11489728B318E6109061462996159002D -:10604000EFE5AC0E14CA0005E7EF033204001008B8 -:10605000C6D7C7C1200EFBF8FF17040200FCC36CB3 -:106060000092DF2CCC01008C014C0CDE1A8C01312B -:106070008E070402001489728C01318E61090E149E -:106080006299615901EFE0AC1614CA000CE7EF0306 -:106090003204001010C6D7C7C12008FBF8FF170450 -:1060A0000200FCC86C0092DF2CCC01008C014C0675 -:1060B000DE1A8C01318E070402001489728C0131C2 -:1060C0008E610908146299615901EFE0AC1014CA9D -:1060D0000006E7EF03320400100AC6D7C7C1200A42 -:1060E000FBF8FF17A1FC696D0092DF2ACC09008C38 -:1060F000094C08DE188C09318E07A11489728C09AD -:10610000318E61090A146299615909EFE2AC1214E7 -:10611000CA0008E7EF03320400100CC6D7C7C1203D -:106120000AFBF8FFFC6E6E00D2DD35CC0900AC1224 -:1061300014894E0961D3188C09318E61090A1489BA -:10614000728C09318E07A1146299615909EFDF172A -:10615000A1FC3E6F0092DF03E7EF08320400EF037B -:10616000320400100CC6D7C7C12012FBF8FF17A1DC -:10617000FC826D0092DF2ACC11008C114C10DE18CD -:106180008C11318E07A11489728C11318E61091224 -:10619000146299615911EFE2AC1A14CA0010E7EFCA -:1061A000033204001014C6D7C7C12012FBF8FF1732 -:1061B000040200FC816F0092DF2CCC01008C014CAA -:1061C00010DE1A8C01318E070402001489728C01D2 -:1061D000318E610912146299615901EFE0AC1A1411 -:1061E000CA0010E7EF033204001014C6D7C7C1205D -:1061F00006FBF8FF17040200FC9B6D0092DF2CCC1D -:1062000001008C014C04DE1A8C01318E070402005F -:106210001489728C01318E610906146299615901E9 -:10622000EFE0AC0E14CA0004E7EF033204001008DC -:10623000C6D7C7C12006FBF8FFFC6E6E00D2DD3565 -:10624000CC0500AC0E14894E0561D3188C05318E37 -:106250006109061489728C05318E07A11462996157 -:106260005905EFDF17A1FCC46F0092DF03E7EF08C9 -:10627000320400EF033204001008C6D7C7C120065D -:10628000FBF8FF17040200FCB46D0092DF2CCC0178 -:10629000008C014C04DE1A8C01318E0704020014BC -:1062A00089728C01318E610906146299615901EF7E -:1062B000E0AC0E14CA0004E7EF033204001008C675 -:1062C000D7C7C12006FBF8FFFC6E6E00D2DD35CCCF -:1062D0000500AC0E14894E0561D3188C05318E6112 -:1062E00009061489728C05318E07A11462996159CF -:1062F00005EFDF17A1FC07700092DF03E7EF08321C -:106300000400EF033204001008C6D7C7C1C1FBF870 -:10631000FF17A1FCCD6D0092DF26CC00008BD1DFF2 -:10632000168B318E07A11489728B318E610902148C -:106330006299615900EFE6AC0A14CA0001E7EF0365 -:106340003204001004C6D7C7C1C1FBF8FF17A1FC77 -:10635000D86D0092DF26CC00008BD1DF168B318EFA -:1063600007A11489728B318E6109021462996159F7 -:1063700000EFE6AC0A14CA0001E7EF033204001094 -:1063800004C6D7C7C1C1FBF8FF17A1FCE36D00929B -:10639000DF26CC00008BD1DF168B318E07A114894C -:1063A000728B318E610902146299615900EFE6AC7B -:1063B0000A14CA0001E7EF033204001004C6D7C76D -:1063C000C1C1FBF8FF17A1FCEF6D0092DF26CC00E6 -:1063D000008BD1DF168B318E07A11489728B318E21 -:1063E000610902146299615900EFE6AC0A14CA000F -:1063F00001E7EF033204001004C6D7C7C1C1FBF8A0 -:10640000FF17A1FCFC6D0092DF26CC00008BD1DFD2 -:10641000168B318E07A11489728B318E610902149B -:106420006299615900EFE6AC0A14CA0001E7EF0374 -:106430003204001004C6D7C7C1C1FBF8FF17A1FC86 -:10644000096E0092DF26CC00008BD1DF168B318ED7 -:1064500007A11489728B318E610902146299615906 -:1064600000EFE6AC0A14CA0001E7EF0332040010A3 -:1064700004C6D7C7C1C1FBF8FF17A1FC166E009276 -:10648000DF26CC00008BD1DF168B318E07A114895B -:10649000728B318E610902146299615900EFE6AC8A -:1064A0000A14CA0001E7EF033204001004C6D7C77C -:1064B000C1200AFBF8FFFC6E6E00D2DD35CC09006E -:1064C000AC1214894E0961D3188C09318E61090A06 -:1064D0001489728C09318E07A1146299615909EFF0 -:1064E000DF17A1FC4A700092DF03E7EF08320400D7 -:1064F000EF03320400100CC6D7C7C1200AFBF8FF17 -:10650000FC6E6E00D2DD35CC0900AC1214894E0948 -:1065100061D3188C09318E61090A1489728C093192 -:106520008E07A1146299615909EFDF17A1FC64700D -:106530000092DF03E7EF08320400EF03320400109B -:106540000CC6D7C7C1200AFBF8FFFC6E6E00D2DD77 -:1065500035CC0900AC1214894E0961D3188C09316D -:106560008E61090A1489728C09318E07A11462990F -:10657000615909EFDF17A1FC7E700092DF03E7EF9E -:1065800008320400EF03320400100CC6D7C7C12044 -:106590000AFBF8FFFC6E6E00D2DD35CC0900AC12B0 -:1065A00014894E0961D3188C09318E61090A148946 -:1065B000728C09318E07A1146299615909EFDF17B6 -:1065C000A1FC99700092DF03E7EF08320400EF03AB -:1065D000320400100CC6D7C7C1200AFBF8FFFC6EBE -:1065E0006E00D2DD35CC0900AC1214894E0961D39E -:1065F000188C09318E61090A1489728C09318E0751 -:10660000A1146299615909EFDF17A1FCB4700092DF -:10661000DF03E7EF08320400EF03320400100CC67A -:10662000D7C7C12004FBF8FF17A1FC236E0092DF3F -:1066300027CC00008B4C03DE168B318E07A114890A -:10664000728B318E610904146299615900EFE5ACD7 -:106650000C14CA0003E7EF033204001006C6D7C7C4 -:10666000C12004FBF8FFFC6E6E00D2DD33CC0300CA -:10667000AC0C14894E0361D3178C03318E6109046D -:106680001489728C03318E07146299615903EFE00B -:1066900017FC286E0092DF03E7EF08320400EF03D7 -:1066A0003204001006C6D7C7C1200EFBF8FF17043E -:1066B0000200FC2D6E0092DF2CCC01008C014C0CF2 -:1066C000DE1A8C01318E070402001489728C0131AC -:1066D0008E61090E146299615901EFE0AC1614CA7B -:1066E000000CE7EF033204001010C6D7C7C1200822 -:1066F000FBF8FF17A1FC326E0092DF27CC00008B65 -:106700004C07DE168B318E07A11489728B318E6196 -:106710000908146299615900EFE5AC1014CA00072A -:10672000E7EF03320400100AC6D7C7C12008FBF800 -:10673000FFFC6E6E00D2DD33CC0700AC1014894E26 -:106740000761D3178C07318E6109081489728C0791 -:10675000318E07146299615907EFE017FC376E001C -:1067600092DF03E7EF08320400EF03320400100A5F -:10677000C6D7C7C12004FBF8FF17A1FC3C6E0092EE -:10678000DF27CC00008B4C03DE168B318E07A11463 -:1067900089728B318E610904146299615900EFE5A9 -:1067A000AC0C14CA0003E7EF033204001006C6D78E -:1067B000C7C12004FBF8FFFC6E6E00D2DD33CC03B2 -:1067C00000AC0C14894E0361D3178C03318E610920 -:1067D000041489728C03318E07146299615903EF96 -:1067E000E017FC416E0092DF03E7EF08320400EF90 -:1067F000033204001006C6D7C7C1C1FBF8FF17A1BA -:10680000FC466E0092DF26CC00008BD1DF168B3168 -:106810008E07A11489728B318E610902146299610D -:106820005900EFE6AC0A14CA0001E7EF0332040096 -:106830001004C6D7C7C12004FBF8FF17040200FCF0 -:106840004B6E0092DF2CCC01008C014C02DE1A8CC6 -:1068500001318E070402001489728C01318E6109A6 -:1068600004146299615901EFE0AC0C14CA0002E70C -:10687000EF033204001006C6D7C7C12004FBF8FF9F -:1068800017040200FC506E0092DF2CCC01008C013A -:106890004C02DE1A8C01318E070402001489728CBE -:1068A00001318E610904146299615901EFE0AC0C69 -:1068B00014CA0002E7EF033204001006C6D7C7C1AE -:1068C000C1FBF8FF17A1FC556E0092DF26CC00003B -:1068D0008BD1DF168B318E07A11489728B318E61BB -:1068E0000902146299615900EFE6AC0A14CA00016A -:1068F000E7EF033204001004C6D7C7C12004FBF839 -:10690000FF17040200FC5A6E0092DF2CCC01008CB1 -:10691000014C02DE1A8C01318E07040200148972C8 -:106920008C01318E610904146299615901EFE0AC68 -:106930000C14CA0002E7EF033204001006C6D7C7E2 -:10694000C1C1FBF8FF17A1FC5F6E0092DF26CC00EF -:10695000008BD1DF168B318E07A11489728B318E9B -:10696000610902146299615900EFE6AC0A14CA0089 -:1069700001E7EF033204001004C6D7C7C1C1FBF81A -:10698000FF17A1FC646E0092DF26CC00008BD1DFE4 -:10699000168B318E07A11489728B318E6109021416 -:1069A0006299615900EFE6AC0A14CA0001E7EF03EF -:1069B0003204001004C6D7C7C12004FBF8FF170437 -:1069C0000200FC696E0092DF2CCC01008C014C02AD -:1069D000DE1A8C01318E070402001489728C013199 -:1069E0008E610904146299615901EFE0AC0C14CA7C -:1069F0000002E7EF033204001006C6D7C7164101B4 -:106A0000118F00A09B81DD03E7EF01F7C6D7C71602 -:106A10004101118F08A09B81DD03E7EF01F7C6D785 -:106A2000C716300800C15003C117FC33830010049F -:106A3000D2DF03E7EF01F7C6D7C716300800C1A1C0 -:106A4000C117FC3383001004D2DF03E7EF01F7C660 -:106A5000D7C7161714CA0003CA0102CA0201CA0323 -:106A600007E7C6D7C7C1C1FBF8FFCC01008C014CBA -:106A70001EDE168C01318E6109021489728C01733D -:106A80006218BEF4615901EFE48C01D1DF03E7EF36 -:106A900001F71004C6D7C7C12004FBF8FF30209CC3 -:106AA000BBE19C029DD4ABA1BBB11461B8D41189E8 -:106AB00072AC041462998C029DD4ABA1BBB1146179 -:106AC000B8D4118972AC0414629A018C029DD4ABC3 -:106AD000A1BBB11461B8D4118972AC0414629A02DA -:106AE0008C029DD4ABA1BBB11461B8D4118972AC36 -:106AF0000414629A038C029DD4ABA1BBB11461B89B -:106B0000D4118972AC0414629A048C029DD4ABA196 -:106B1000BBB11461B8D4118972AC0414629A058CAB -:106B2000029DD4ABA1BBB11461B8D4118972AC047D -:106B300014629A068C029DD4ABA1BBB11461B8D487 -:106B4000118972AC0414629A078C029DD4ABA1BB6C -:106B5000B11461B8D4118972AC0414629A088C0221 -:106B60009DD4ABA1BBB11461B8D4118972AC04142B -:106B7000629A09E71006C6D7C716E7C6D7C716E751 -:106B8000C6D7C7C1C1FBF8FFCC01FFFC424D006274 -:106B90009C0191DF08AC0214CA0001EF1A8C014C71 -:106BA00002DF08AC0214CA0002EF0C8C014C04DFB7 -:106BB00006AC0214CA00038C0181DD03E7EF01F784 -:106BC0001004C6D7C7161714CA0061CA010ACA0240 -:106BD00031CA0332CA0433CA0500CA0630CA0730B4 -:106BE000CA0830E7C6D7C716E7C6D7C7161714CAEC -:106BF0000035CA0137CA0234CA0332CA0432CA0590 -:106C000032E7C6D7C7161714CA0020CA0118CA022D -:106C100006CA0315E7C6D7C716301100C15004C114 -:106C200017FC3383001004D2DF03E7EF01F7C6D768 -:106C3000C716E7C6D7C716E7C6D7C7C12004FBF8F3 -:106C4000FF30009CBBE19C029DD4ABA1BBB11461A1 -:106C5000B8D4118972AC04A1BC04B11462998C023D -:106C60009DD4ABA1BBB11461B8D4118972AC04A19D -:106C7000BC04B11462998C029DD4ABA1BBB1146168 -:106C8000B8D4118972AC04A1BC04B11462998C020D -:106C90009DD4ABA1BBB11461B8D4118972AC04A16D -:106CA000BC04B11462998C029DD4ABA1BBB1146138 -:106CB000B8D4118972AC04A1BC04B1146299E71074 -:106CC00006C6D7C716E7C6D7C7C12004FBF8FF30F2 -:106CD000109CBBE19C029DD4ABA1BBB11461B8D4A4 -:106CE000118972AC04A1BC04B11462998C029DD4C8 -:106CF000ABA1BBB11461B8D4118972AC04A1BC04BE -:106D0000B11462998C029DD4ABA1BBB11461B8D40B -:106D1000118972AC04A1BC04B11462998C029DD497 -:106D2000ABA1BBB11461B8D4118972AC04A1BC048D -:106D3000B11462998C029DD4ABA1BBB11461B8D4DB -:106D4000118972AC04A1BC04B11462998C029DD467 -:106D5000ABA1BBB11461B8D4118972AC04A1BC045D -:106D6000B1146299E71006C6D7C716300800C150A3 -:106D700005C117FC3383001004D2DF03E7EF01F7EE -:106D8000C6D7C716301000C15006C117FC338300A8 -:106D90001004D2DF03E7EF01F7C6D7C716300400AF -:106DA000C15007C117FC3383001004D2DF03E7EFA3 -:106DB00001F7C6D7C716300400C15008C117FC330D -:106DC00083001004D2DF03E7EF01F7C6D7C716F63A -:106DD000FD08A1629BE7C6D7C716E6FD08A1629B26 -:106DE000E7C6D7C716E6A1FD08A1629BE7C6D7C7CD -:106DF00016300300FD08A1629BE7C6D7C716300412 -:106E000000FD08A1629BE7C6D7C716300600FD0843 -:106E1000A1629BE7C6D7C716300700FD08A1629B99 -:106E2000E7C6D7C716E7C6D7C716E7C6D7C716E758 -:106E3000C6D7C716E7C6D7C716E7C6D7C716E7C669 -:106E4000D7C716E7C6D7C716E7C6D7C716E7C6D748 -:106E5000C716E7C6D7C716E7C6D7C716E7C6D7C748 -:106E600016E7C6D7C716E7C6D7C716E7C6D7C756A9 -:106E70000117F112C6D7C7C1C1FBF8FFCC01008CC6 -:106E8000014C08DE168C01318E6109021489728C66 -:106E900001736218BEF4615901EFE4300800C1507B -:106EA00003C130BEF4FCF381001004629C01D1DF09 -:106EB00003E7EF01F71004C6D7C7C1C1FBF8FFCC49 -:106EC00001008C014C08DE168C01318E6109021420 -:106ED00089728C01736218BEF4615901EFE43008C5 -:106EE00000C1A1C130BEF4FCF381001004629C011A -:106EF000D1DF03E7EF01F71004C6D7C7C1C1FBF824 -:106F0000FFCC01008C014C11DE168C01318E610921 -:106F1000021489728C01736218BEF4615901EFE4A6 -:106F2000301100C15004C130BEF4FCF381001004E4 -:106F3000629C01D1DF03E7EF01F71004C6D7C7C198 -:106F4000C1FBF8FFCC01008C014C08DE168C01312E -:106F50008E6109021489728C01736218BEF4615942 -:106F600001EFE4300800C15005C130BEF4FCF381EC -:106F7000001004629C01D1DF03E7EF01F71004C6A3 -:106F8000D7C7C1C1FBF8FFCC01008C014C10DE1645 -:106F90008C01318E6109021489728C01736218BEF2 -:106FA000F4615901EFE4301000C15006C130BEF465 -:106FB000FCF381001004629C01D1DF03E7EF01F7CD -:106FC0001004C6D7C7C1C1FBF8FFCC01008C014C2F -:106FD00004DE168C01318E6109021489728C0173F2 -:106FE0006218BEF4615901EFE4300400C15007C1DA -:106FF00030BEF4FCF381001004629C01D1DF03E792 -:10700000EF01F71004C6D7C7C1C1FBF8FFCC0100E0 -:107010008C014C04DE168C01318E610902148972D8 -:107020008C01736218BEF4615901EFE4300400C1B1 -:107030005008C130BEF4FCF381001004629C01D101 -:10704000DF03E7EF01F71004C6D7C7C1C1FBF8FFA4 -:10705000AC02148A019C01318EC1F6FD0CA1C0E77F -:107060001004C6D7C7C1C1FBF8FFAC02148A019C4B -:1070700001318EC1E6FD0CA1C0E71004C6D7C7C11F -:10708000C1FBF8FFAC02148A019C01318EC1E6A15C -:10709000FD0CA1C0E71004C6D7C7C1C1FBF8FFAC07 -:1070A00002148A019C01318EC15003FD0CA1C0E77E -:1070B0001004C6D7C7C1C1FBF8FFAC02148A019CFB -:1070C00001318EC15005FD0CA1C0E71004C6D7FCEC -:1070D000028900D7C7C3C1200EFBF8FFAC10BC0269 -:1070E000AC0EBBF661490261F861490061F8EEA897 -:1070F00000CC0D008C0D4C2361C8EE9C00ABBDD8BC -:10710000AC02BDDAC9DC0000300080FD2502F64685 -:10711000DA61F846D8DD6AABBDD8AC02BDDAC9DCAD -:107120000200F6FD2502F646DA61F846D8DD29AB05 -:10713000BDD8AC02BDDAE1FDEB01ADDABC02ADD8E1 -:10714000BBAC02BDDAC9DCB53030AFDFFD4D02ADFE -:10715000DABC02ADD8BBEF3BABBDD8AC02BDDAE1C7 -:10716000FDEB01ADDABC02ADD8BBAC02BDDAC9DCC7 -:10717000AEEA30216FFD4D02ADDABC02ADD8BBEFF7 -:1071800012ABBDD8AC02BDDAE1FDEB01ADDABC0259 -:10719000ADD8BB61590DEE5BFFAC0214AB121012FF -:1071A000C6D7C7C3C1FBF8FFAC0212ABFCD470005A -:1071B0001004C6D7C7C3C1200CFBF8FFAC0EBC023D -:1071C000AC0CBB8B5CF8313A7F54229C088C015C80 -:1071D000F8313A7F55229C098C025CF8313A7F568F -:1071E000229C0A8C035CF8313A7F57229C0B5C0787 -:1071F0003159728C085CF8313A6162629C048C08E7 -:107200005C073159728C0A5C1F6162629C058C09B3 -:107210005CF8728C0B5CE0315A6162629C068C0AED -:107220005CF8728C095C076162629C07AC0614AC66 -:1072300004121010C6D7C7C3C12010FBF8FFAC1250 -:10724000BC06AC10BC048C047F54229C0C8C057FC3 -:1072500055229C0D8C067F56229C0E8C077F572250 -:107260009C0F8C0D5C033169728C0C5CFC312A61C3 -:1072700062629C0B8C0C5C033169728C0F5C3F6109 -:1072800062629C0A8C0F5CFC728C0E5CC0316A617D -:1072900062629C098C0E5CFC728C0D5C0361626204 -:1072A0009C08AC0A14AC08121014C6D7C7C3C1FBA3 -:1072B000F8FF8C0A91DF0AAC0212ABFCA27100EF5E -:1072C0000E8C0A4C11DF08AC0212ABFC36720010B7 -:1072D00004C6D7C7F6BF8AEABF8CEA7666D161E8F2 -:1072E000EE8200500CD612F6788EEA66500CD60468 -:1072F0008EEA14CA0200CA0B00A5A5A5CA00006642 -:10730000500CD6048EEA14A5A5A5CA010066500C3F -:10731000D6048EEA14A5A5A5CA020066500CD604B0 -:107320008EEA14A5A5A5CA030066500CD6048EEA01 -:1073300014A5A5A5CA040066500CD6048EEA14A5AF -:10734000A5A5CA050066500CD6048EEA14A5A5A50D -:10735000CA060066500CD6048EEA14A5A5A5CA0775 -:107360000086EE77FFC6D7F588EAD7E588EAD7E545 -:1073700086EACF87EA02FCD37200E588EAD7C7160F -:10738000F7C6D7C7163489EA89616E99F7C6D7C799 -:1073900016667CFF5F89EA9F89EAF7C6D7C7168F12 -:1073A00089EA9BF7C6D7C716F7C6D7C7168F86EAEE -:1073B0009BF7C6D7C7168F87EA9BF7C6D7C716664F -:1073C000318FFCCE7500669F87EAF7C6D7C7C1200C -:1073D00008FBF8FFCC0700D5582261F8EEBE00CCC0 -:1073E00007008C074F582261C8EEB100D95822F12E -:1073F000BC048C07500CD612795C22BC048C07505C -:107400000CD612795C2261491061E8EE8900495E70 -:10741000224E12DD418C07500CD6045C22148A0ADD -:10742000C1AA08BBC09C029DD4ABBDDC8DD49DDE3F -:10743000F4DFF646DE61F846DCDD62AC14C18C1286 -:10744000318EC1AC10C1AB148C029EFC8C08318E05 -:1074500061EA1006EF478C07500CD6045C22148AB0 -:1074600006C1AA04BBC09C029DD4ABBDDC8DD49DDB -:10747000DEF4DFF646DE61F846DCDD21AC14C18CBB -:1074800012318EC1AC10C1AB148C029EFC8C083141 -:107490008E61EA1006EF06615907EE45FF100AC635 -:1074A000D7C7C12004FBF8FFCC0300FCA87500ACD3 -:1074B0000EC18C0C318EC1AC04FCD9840010046266 -:1074C0009C03FCAC75008C039161E8EEC100CC021A -:1074D000008C024F592261C8EEB4008C025016D6BF -:1074E0001279742261490461E8EE9D0049882250B6 -:1074F0000CD612AC04788EEA8C025016D61249884B -:1075000022500CD6048EEA148C0C9A02CC01008C0A -:10751000014E0CDE2C8C01318E61090E1489728CA7 -:10752000025016D6047422148A14500CD6048EEA23 -:10753000148C01318EA5A5A505146299615901EF3E -:10754000CE8C025016D612498822500CD6048EEAF0 -:1075500014CA0B018C025016D6047422148A1472B9 -:10756000E6D2DD040192DFFCBDDC31FFBDDEAF8A77 -:10757000EABDD8AF8CEABDDAADDEFD3902ADDABFC7 -:107580008CEAADD8BF8AEAEF06615902EE42FF8C61 -:1075900003318E121006C6D7D588EADD0A4086EA86 -:1075A0000161F84087EA02D7717BFAD7717AFAD77E -:1075B000F59DEAD7E59DEAD7CF9AEA02F59BEAE581 -:1075C0009CEAE59DEAD7C7168F9AEA9BC6D7C716ED -:1075D0006691DF0AFC097600669F9AEAEF0D664C19 -:1075E00002DF08FC0A7600669F9AEAC6D7C7168FA4 -:1075F0009BEA9BC6D7F59BEAD7C716C6D7C7168F97 -:107600009CEA9BC6D7D59DEAD7D7D7C7202CFBF8D5 -:10761000FF302A00C1500AFCE28100C5C317FC827A -:1076200084001006CC2B008C2B4C0E61C8EE34016C -:107630008C2B5003D66081318E071489728C2B50AD -:1076400003D6F1071489610A72F0E108617A9C2A75 -:107650008C2B5003D6F10714898161F8EEF3008C6E -:107660002B5003D6600C02318E0714894E2A61E834 -:10767000EEDF008C2B5003D6F1071489738C2BF0AE -:10768000317E33489EEA895C08D161F8EEB5008C02 -:107690002B5003D66081318E07148981998C2B5031 -:1076A00003D66081318E071489728C2B5003D6F17A -:1076B0000714896102F0E108617A08128C2B5003EB -:1076C000D6600C02318E071462998C2B5003D66061 -:1076D00081318E0714894C28DC5C8C2B5003D6F149 -:1076E0000714CA00008C2B5003D66081318E07141A -:1076F000CA00FF8C2B5003D66081318E071489722B -:107700008C2B5003D6F10714896102F0E108617AED -:1077100008128C2B5003D6600C02318E071462992C -:107720008C2B318EFCD778008C2BF0317E049EEAB6 -:1077300014CA0101EF288C2BF0317E049EEA14CA92 -:107740000100EF1A8C2BF0317E049EEA14CA01016D -:10775000EF0C8C2BF0317E049EEA14CA01016159B2 -:107760002BEEC3FE302A00C1500AFCE28100C5C3E3 -:1077700017FC5684001006102CC6D730DC05BFBAA3 -:10778000EA30F401BFBCEAEC0B7600F642BAEA61DB -:10779000E8B2BAEAFD10A1D2DF0AF642BCEADD0A7D -:1077A000B2BCEAD730F401BFBCEAD7F642BCEAE685 -:1077B000613012D7F642BAEADF0842BCEADF03E6DC -:1077C000EF01F612D7C7C12082FBF8FFCC80003052 -:1077D0008000C18C823119318EC117FC33830010B7 -:1077E00004CC81008C814C08DE2D8C8131290C0366 -:1077F000F0316E0714AA0244FFFFDF04A944FFFF23 -:10780000DD108C8170E1D0DD05311990DFFB6E80D9 -:107810009C80615981EFCD8C8091DD2A2C02DD297D -:107820002C04DD282C08DD282C10DD292C20DD2A55 -:107830002C40DD2B2C72DD0E2C02DD0D2C04DD0C1A -:107840002C08DD20EF23F7EF23E7EF20E7A3EF1C61 -:10785000320300EF17320400EF12320500EF0D3251 -:107860000600EF08320700EF033207001084C6D786 -:10787000C7C12012FBF8FF8C12F0317E049EEA147F -:10788000896C09998C12F0317E12499FEAD1DD434F -:107890008C12F0317E049EEA14CA0100300300C14C -:1078A0008C120C0A318EC117041000FC33830010B7 -:1078B000048C12F0317E12499EEA5C089C10300361 -:1078C00000C18C120C0A318EC117041000FCF38128 -:1078D0000010041014C6D7C71666F0317E049EEA65 -:1078E00014895CFE99C6D7FCB47700D2DD16FC7C07 -:1078F0008500D2DD08300D00FC707800D7300D0017 -:10790000FCD77800D7F6FD00A1624CA1DC1240BE86 -:10791000EA32DE05A0BEEAEF20E6FC707800EF193F -:10792000D5BEEADD0FB0BEEA40BEEA26DC0BCFBE14 -:10793000EA25EF05E6FCD77800F6FD00A1624C5A77 -:10794000DE1040BFEA32DE04A0BFEAD7F6FC707852 -:1079500000D7D5BFEADD0EB0BFEA40BFEA26DC0A99 -:10796000CFBFEA25D7F6FCD77800D7E6FD00A162A5 -:107970004C31DC1340C0EA32DE05A0C0EAEF22E65B -:10798000A1FC707800EF1AD5C0EADD0FB0C0EA4064 -:10799000C0EA26DC0CCFC0EA25EF06E6A1FCD778CA -:1079A00000E6FD00A1624C02DE1240C1EA32DE04B4 -:1079B000A0C1EAD7300300FC707800D7D5C1EADD5A -:1079C0000EB0C1EA40C1EA26DC0CCFC1EA25D730AF -:1079D0000300FCD77800D7E6A1FD00A1624C31DCA2 -:1079E0001440C2EA32DE05A0C2EAEF24300500FCF2 -:1079F000707800EF1BD5C2EADD0FB0C2EA40C2EAE0 -:107A000026DC0DCFC2EA25EF07300500FCD7780051 -:107A1000E6A1FD00A1624C02DE1240C3EA32DE04A0 -:107A2000A0C3EAD7300600FC707800D7D5C3EADDE2 -:107A30000EB0C3EA40C3EA26DC0CCFC3EA25D73038 -:107A40000600FCD77800D7300300FD00A1624C315E -:107A5000DC1440C4EA32DE05A0C4EAEF243008009A -:107A6000FC707800EF1BD5C4EADD0FB0C4EA40C457 -:107A7000EA26DC0DCFC4EA25EF07300800FCD778F2 -:107A800000300300FD00A1624C02DE1240C5EA3264 -:107A9000DE04A0C5EAD7300900FC707800D7D5C550 -:107AA000EADD0EB0C5EA40C5EA26DC0CCFC5EA2502 -:107AB000D7300900FCD77800D7300400FD00A16260 -:107AC0004C31DC1440C6EA32DE05A0C6EAEF2430B1 -:107AD0000B00FC707800EF1BD5C6EADD0FB0C6EADC -:107AE00040C6EA26DC0DCFC6EA25EF07300B00FCC6 -:107AF000D77800300400FD00A1624C02DE1240C7BE -:107B0000EA32DE04A0C7EAD7300C00FC707800D758 -:107B1000D5C7EADD0EB0C7EA40C7EA26DC0CCFC7FE -:107B2000EA25D7300C00FCD77800D7E6FD04A1D2B7 -:107B3000DD09300400FC707800EF07300400FCD74A -:107B40007800E6A1FD04A1D2DD09300700FC7078C1 -:107B500000EF07300700FCD77800300300FD04A1D8 -:107B6000D2DD08300A00FC707800D7300A00FCD75C -:107B70007800D7FC057900FC6B7900FCD77900FC14 -:107B8000477A00ECB97A00FCE77800FCD842006242 -:107B90005C02D1DD15FC2B7B0040C8EA28DE04A086 -:107BA000C8EAD7F5C8EAFC737B00D7C71666F03180 -:107BB0007E12499EEA318E12C6D7C7C12010FBF84B -:107BC000FF301000C18C10318EC117FC33830010C0 -:107BD000048C1CD1DD638C1C4C07DE5DAC18A1BC91 -:107BE00018B1148C1C99AC18A1BC18B114CA0001AE -:107BF000AC18A1BC18B114CA000A8C1C9172AC1844 -:107C0000A1BC18B11462998C1C913119318E0714E2 -:107C10008972AC18A1BC18B11462998C1C913119ED -:107C200081318E07148972AC18A1BC18B114629905 -:107C3000AC1A14890C0699EF728C1C81DF69CC1C7C -:107C4000018C1C4C07DE64AC18A1BC18B1148C1C50 -:107C500099AC18A1BC18B114CA0001AC18A1BC1889 -:107C6000B114CA000A8C1C9172AC18A1BC18B114D2 -:107C700062998C1C913119318E07148972AC18A14C -:107C8000BC18B11462998C1C91311981318E071482 -:107C90008972AC18A1BC18B1146299AC1A14890C81 -:107CA000069961591CEF9AF792EF01F71012C6D7A7 -:107CB000C7200AFBF8FFEB08E68A029FDCE55C09B7 -:107CC000D1DD4B8FD6E50C409C048FD8E59C05CCCC -:107CD0000609CC01008C014C0EDE178C01318EFCA4 -:107CE000AB7B00625FDCE5D161E86159026159015B -:107CF000EFE3CC0701CC08008C029C0917040400B8 -:107D0000C1300600FCEB8E00C0CC0301EF1CD9B0E3 -:107D1000F4F1C1D9D6E5FCA74400C03404E6C5306F -:107D20000300FCEB8E00C0CC03008C03318F1210DB -:107D30000AC6D7C7206CFBF8FFEB08E68A029FDC77 -:107D4000E55C09D161F8EE9F008FD6E50C409C03FD -:107D50008FD8E59C04CC0509CC0003CC01008C0134 -:107D60004C0EDE728C01318EFCAB7B00625FDCE579 -:107D7000D1DD5E8C01F0316E12499B227261590097 -:107D80008B91318E070403001462998C01F0316EDF -:107D900012499C22726159008B91318E07040300B5 -:107DA0001462998C01F0316E12499D227261590062 -:107DB0008B91318E070403001462998C01318EFC83 -:107DC000AB7B006159008B91318E07040300146274 -:107DD00099615901EF8817040300C18B318EFCEBC8 -:107DE0008E00C0CC0201EF1CD9B0F4F1C1D9D6E5A8 -:107DF000FCA74400C03404E6C5300300FCEB8E0051 -:107E0000C0CC02008C02318F12106CC6D7C7206C18 -:107E1000FBF8FF8FD6E50C409C038FD8E59C04CC83 -:107E20000509CC0003CC01008C014C0EDE5C8C01FA -:107E3000F0316E12499B22726159008B91318E078D -:107E40000403001462998C01F0316E12499C227275 -:107E50006159008B91318E070403001462998C01E3 -:107E6000F0316E12499D22726159008B91318E075B -:107E70000403001462996159008B91318E07040349 -:107E80000014CA0009615901EF9E17040300C18B59 -:107E9000318EFCEB8E00C0CC0201E1318F12106CF0 -:107EA000C6D7C7202CFBF8FFC717A116F749D22267 -:107EB0009BA3A7512A614ADFF4C6CC0000CC2B005B -:107EC0008C2B4C0EDE0F8C2BF0317E12399EEA008B -:107ED00061592BEFEB302A00C1500AFCE28100C54A -:107EE000C317A1FC5684001006D261E86159008BCB -:107EF000D1DF03E7EF01F7102CC6D7C730520E527F -:107F000000F3FC260F006276D1DF0CFC880F00FC2A -:107F1000940F00FCBE0F0017F112C6D7EC8E0F00B5 -:107F2000C7C12004FBF8FF8C044C28DC678C0CD103 -:107F3000DD62FCFB7E00629C03D1DF46CC0200CCFC -:107F400001008C024E0CDE3A717BFA8C040E023179 -:107F50008EFC581100629C034C1BDF0D8C040E023A -:107F6000318EFC5C1100629C03717AFA8C03D1DFC4 -:107F700008615902CC0100EF036159018C014C05E5 -:107F8000DCC0FC1C7F008C014C05DC05321A00EFC4 -:107F900006F7EF033205001006C6D7C7C3C1200C91 -:107FA000FBF8FFF661490EDF0630FF9F61490CDEEA -:107FB0001EE661490EDF0630FF9F61490CDC10F6BA -:107FC000614918DD0A8C185C03318E6168DD2CE68E -:107FD00061490EDF0630FF9F61490CDE5BE66149B7 -:107FE0000EDF063008A061490CDC4DF6614918DD52 -:107FF000478C185C03318E6168DF3DAC16BBAC0E5C -:10800000BC04AC0CBC02AC18312E609C06FCFB7EA0 -:1080100000629C0BD1DF1B717BFA17FC64110062BC -:108020009C0B717AFA8C0BD1DF05CC0900EF03CCE5 -:10803000091CFC1C7F00EF03CC09058C09318EF76D -:1080400033351010C6D7C7C3C1200CFBF8FFAC0EE8 -:10805000BC0AAC0CBC088C1872F3AC16BB33BC0267 -:10806000F661491C61F861491A61F8EE8700F6BCB7 -:1080700004BC06AC0661491CAC0461F861491ADE17 -:1080800074AC08BDD8AC0ABDDA5108FD0602AB14C9 -:108090008C029EFD11899DDCF4DDF6BDDEADD8C1FC -:1080A000ADDAC1AC08BDD8AC0ABDDAADDEFD4D021B -:1080B000C9DCFF00F6FD2502ADD8312D04FC2212EB -:1080C000C0BDDAC0BDD81314A9BDDCAA02BDDEFD57 -:1080D0004D02ADDABC0AADD8BC08617900F6614941 -:1080E0000061F8617902617904F6614904DF846115 -:1080F0007906EE7EFFAC08BDD8AC0ABDDAF6B1BD9C -:10810000DCFD4D02ADDABC0AADD8BC08AC0A14AC3B -:1081100008121010C6D7C7C3C1200CFBF8FFAC0E65 -:10812000BC0AAC0CBC08AC16F74361E8520FBB3379 -:10813000BC02F661491A61F861491861F8EE8100E4 -:10814000F6BC04BC06AC0661491AAC0461F861498E -:1081500018DE6EAC08BDD8AC0ABDDA5108FD0602C7 -:10816000AB14899DDCF4DDF6BDDEADD8C1ADDAC15E -:10817000AC08BDD8AC0ABDDAADDEFD4D02C9DCFFEE -:1081800000F6FD2502ADD8312D04FC2212C0BDDA67 -:10819000C0BDD81314A9BDDCAA02BDDEFD4D02ADE1 -:1081A000DABC0AADD8BC08617900F661490061F813 -:1081B000617902617904F6614904DF89617906EF2A -:1081C00084AC08BDD8AC0ABDDAF6B1BDDCFD4D0209 -:1081D000ADDABC0AADD8BC08AC0A14AC0812101059 -:1081E000C6D7C716665006D604FC2614A912AA02E2 -:1081F00014C6D7C7C1208AFBF8FFCC05008C92318A -:108200008EFCE2810013BB15BC02ABBDD8AC02BD35 -:10821000DAC9DC0010300F00FDD901510AFD060259 -:108220008DD89C09D1DF05CC0809EF188C0991DFA6 -:1082300005CC084DEF0E8C094C02DF05CC082AEF67 -:1082400003CC08FF8C094C0361C8EEE0008C0831B8 -:108250008EC18C09318E31ADBDDC31FFBDDEC9D898 -:108260000010C9DA0F00ADDEFDCA01ADDAC1ADD82C -:10827000C117040A00FC53310010068C09318E31FD -:10828000ADBDDC31FFBDDEC9D80010C9DA0F00ADCD -:10829000DEFDCA01ADD8BDDCDADAABBDD8AC02BDBB -:1082A000DA13FDD9018DD89C07CC0600CC05008CD3 -:1082B000054E94DE298C05318E61098A1489728CF1 -:1082C000070E05318E07040A001462998C05318E61 -:1082D00061098A14890E069C06615905EFD18C0646 -:1082E0007CFF819C068C070E05318E07040A001462 -:1082F0008C06998C08318EC18C09318E31ADBDDC74 -:1083000031FFBDDEC9D80010C9DA0F00ADDEFDCAED -:1083100001ADDAC1ADD8C117040A00FC622E00100D -:1083200006624C11DF03F7EF06F792EF02F79210A7 -:108330008CC6D7C7C1208AFBF8FFCC05008C9231D0 -:108340008EFCE2810013BB15BC02ABBDD8AC02BDF4 -:10835000DAC9DC0010300F00FDD901C9DC0004F6D9 -:10836000FDA3018DD89C09D1DF05CC0809EF188C3D -:108370000991DF05CC084DEF0E8C094C02DF05CCCE -:10838000082AEF03CC08FF8C094C0361C8EEC0003B -:108390008C08318EC18C09318E31ADBDDC31FFBD11 -:1083A000DEC9D80010C9DA0F00ADDEFDCA01ADDAB2 -:1083B000C1ADD8C117040A00FC53310010068C0966 -:1083C000318E31ADBDDC31FFBDDEC9D80010C9DA58 -:1083D0000F00ADDEFDCA01ADD8BDDCDADAABBDD829 -:1083E000AC02BDDA13FDD9018DD89C07CC0600CCB8 -:1083F00005008C054E94DE158C070E05318E0704A2 -:108400000A0014890E069C06615905EFE58C067C6E -:10841000FF819C068C070E05318E07040A00148923 -:108420004E06DF28CC05008C054E94DE1C8C070E12 -:1084300005318E07040A001489728C05318E61099A -:108440008A146299615905EFDEF7EF06F792EF02A1 -:10845000F792108CC6D7C7C1C1FBF8FF8C0E318EC6 -:10846000C1AC0CC1AC0AC1AC02FC622E00100662A9 -:108470009C014C11DF03F7EF058C01318E121004C3 -:10848000C6D7C7C1FBF8FF8C0C318EC1AC0AC1AC9A -:1084900008C1ABFC5331001006F7C0C6D74101112B -:1084A000D900A0F112D7410111D908A0F112D7C704 -:1084B000C1C1FBF8FFCC01008C014E0CDE176159E5 -:1084C00001AC0AA1BC0AB1148972AC02A1BC02B110 -:1084D000146299EFE31004C6D7C7C12012FBF8FF5E -:1084E000AC12BC028C1A3149708C095C0F61689C1B -:1084F000098C0571FB9C0571EB9C0571DB9C05AC3F -:10850000045CE0F0BC048C095C0F6C809C09AC0836 -:108510005CF0F0BC08F6BC068C1A318EC1AC1CC1F4 -:1085200017040A00FCAF8400100417040200FC5C6E -:108530002A0013BBF6614900DF03F7EF01E71014CF -:10854000C6D7FCAB2D0013F1085C02086168DD287A -:10855000AF0C03F1085C08086168DD08D5D2F4614E -:10856000F8E5D2F4F6420C0361E8BF0C03AF040354 -:10857000085CFC08BF0403D7F5D2F4D7D5D2F4DFEA -:1085800002F7D7E7D7C72004FBF8FFCEA040CEA361 -:1085900007717BA1CC01FF8EA29B5E019B8B4E01DC -:1085A000DFF5714AA4CFC502927100C502F6BC0284 -:1085B000AC02442103DE0600617902EFF38FC602AC -:1085C0005C80D1DDF87120C502716AA17100C4021E -:1085D000716BA4F5C702710BA1CFC802427128C408 -:1085E000021004C6D7C7FCAB8600FCC18800FC5B48 -:1085F0008900FC638900712301400AE5A5DD5F3035 -:1086000055AA4100114202A1DF07084100114200B2 -:10861000A1DF323055AA41011142F29FDF07084124 -:10862000011142F09FDF1E717BFAFCD28800F50A2F -:10863000E5CF0BE5A54100118F02A09EFC11AF0014 -:10864000A061CAEFF0F50BE5FC5E9000FCBB4C00AE -:10865000FCC38600FCD02D00FC983400EF17F50B0E -:10866000E5FC5E9000FCBB4C00FCC38600FCD02DFA -:1086700000FC7D34004008E5A5DF143400E5C5307A -:108680000800C1305907FCD984001004F508E5FC46 -:108690002F8900FC74890086664C65DCF2FCF48648 -:1086A00000FC3D87005600EFE6C6D78EA89F0CE57C -:1086B000400CE510DD09F50AE5F50BE5F508E57177 -:1086C0007AFAD7710B21710201711A21712301D736 -:1086D000C7C1C1FBF8FF8C029E31717A303182E351 -:1086E00002EFFAAD1E316EBB717B30710BE3AB1242 -:1086F0001004C6D7C72004FBF8FFF6BBFCD08600E9 -:10870000D9EEEAF10104F0EA1413B9A0EEEA40EE62 -:10871000EA0561C8F5EEEACC03008C034C05DE13D4 -:108720008C03F0317E04F0EA14A9610900BB6159A1 -:1087300003EFE7305E01BFEAEA1004C6D7E5EDEAD1 -:10874000D7F400F401F403F405F407F409F408F491 -:108750000DF40EE53400CF6900BFCF6C00DFF520CB -:1087600002E57600CE20FECE21D3CE23F4CE25F036 -:10877000CE26FFCE2734CE28FECE29BACE2CFFCE71 -:108780002EFED7F51600F51700F51A00F51B00F5BB -:108790001D00FC858500FC418700FCB28700FC1FA2 -:1087A0008900FC348900F57800D7717BFAFC838757 -:1087B00000D77100F000F6BFB60130FF0ABFB40168 -:1087C000F6BF2A02714AE6714BE2715AE6715BE22A -:1087D000713AE7713BE3716AE6716BE2717AE671B7 -:1087E0007BE2714AE7714BE3717AE7717BE3710ACF -:1087F000D4710BD0711AD4711BD0712AD4712BD0C3 -:10880000716AEE716AEA717AEF717AEBBF9401CB0B -:1088100064FF7CAFBE01085CFB08BFBE01AFBC01BA -:10882000085CFB08BFBC01AFB801085CFB08BFB81F -:1088300001AFBA01085CFB08BFBA01F6BF9801CBD3 -:1088400068FF7CAFBE01085CEF08BFBE01AFBC0192 -:10885000085CEF08BFBC01AFB801085CEF08BFB807 -:1088600001AFBA01085CEF08BFBA015A03FE8E23BC -:108870005CFE9E23D7AFBA01086C0208BFBA01AFF5 -:10888000B201086C0308BFB201D7AFB401086C0392 -:1088900008BFB401AFBA01085CFD08BFBA01D771C7 -:1088A0006BE2716BE6AFB201086C0408BFB201D78E -:1088B000AFB401086C0408BFB401716AE6716BE2E1 -:1088C000D7717BE3717BE7AFB201086C1008BFB2D0 -:1088D00001D7AFB401086C1008BFB401717AE77119 -:1088E0007BE3D7E500EBA2FAEAF642FAEA61F8A2E6 -:1088F000FCEAA0FEEA40FEEA64DC06E5FFEAF5FEDB -:10890000EAD7AF8801BDD8F6BDDA5110FDEB01AF53 -:10891000FAEABDDCAFFCEAFD4D02EADADAD8D7713B -:108920000AE4710BE0710AEC710AE8710BE4D7CE2E -:10893000ABACD7D77150F000F530FF710AE7710B7F -:10894000E38E236C089E23CE3018CE3220F5100023 -:10895000CF1100FFF51200F531FFD7717A30D771D2 -:108960007B30D7710A30D7710B30D7C716AD1E31A7 -:108970006EBBC6D74000EB01DF0BF500EBFC868930 -:1089800000FCBA9000D7C7200EFBF8FFFC078B0055 -:10899000FC0E3200629C029161E8EE5701FC354DFD -:1089A00000D9D6E5F1FC4E4D00629C0D8161F8EED8 -:1089B00010018C0D318EFC7F4D00629C0C9161E8A2 -:1089C000EEE1008C0D318EFC9E4D00629C0B91619E -:1089D000E8EEB20040D7E502DF658C0D318EFCBEBB -:1089E0004D00629C0AD1DF1017040400C1F6FCEBB5 -:1089F0008E00C0CC0102EF45AFD4E5C18C0D318EA5 -:108A0000FCD74D00C0629C0391DF168C0D500AD636 -:108A1000041C20148A089EFCAA0661CA629C01EF0D -:108A200063D9ACF4F1C1D9D6E5FCA74400C0340445 -:108A3000E6C5300300FCEB8E00C0CC0100EF63AF55 -:108A4000D4E5C18C0D318EFCD74D00C0629C0391E2 -:108A5000DF168C0D500AD6041C20148A089EFCAA2E -:108A60000661CA629C01EF58D9ACF4F1C1D9D6E5D0 -:108A7000FCA74400C03404E6C5300300FCEB8E00C4 -:108A8000C0CC0100EF6ED9B1F4F1C1D9D6E5FCA795 -:108A90004400C03404E6C5300300FCEB8E00C0CCBB -:108AA0000100EF50D9B5F4F1C1D9D6E5FCA74400D7 -:108AB000C03404E6C5300300FCEB8E00C0CC0100DE -:108AC000EF3240D7E502DF1017040400C1F6FCEBDB -:108AD0008E00C0CC0102EF1CD9AAF4F1C1D9D6E5B1 -:108AE000FCA74400C03404E6C5300300FCEB8E0054 -:108AF000C0CC0100FC2792009261F8FC744400FC99 -:108B00007E4400100EC6D7FC314D00F64361F8FCE0 -:108B1000484400D7D7C7C1C1FBF8FF4013EB01DFC2 -:108B20001ECF13EB05AC02148FCEEF99AC0A14AF35 -:108B3000CAEFB9AC0C143002EBB9CC0101EF4E40D6 -:108B400013EB04DF1ECF13EB05AC02148FCEEF99AD -:108B5000AC0A14AFCAEFB9AC0C14301AEBB9CC01A3 -:108B600001EF2A4012EB01DF21CF13EB05F512EBE9 -:108B7000AC02148FCFEF99AC0A14AFCCEFB9AC0CA8 -:108B800014300AEBB9CC0101EF03CC01008C0131A8 -:108B90008F121004C6D7C7C1C1FBF8FFCC0100ACCF -:108BA0000A428C2261E8EE8102AC0E1489314A9CA3 -:108BB000014013EB01DD0F4013EB04DD094013EB23 -:108BC0000561E8EEB7004013EB05DF664094F40161 -:108BD000DF608C014C03DF5AAC0E14895C0FD1DFCF -:108BE00036CF94F4038A01D1DF06CF14EBB0EF083F -:108BF000AC0E148A019F14EBAC0E148A024C7FDE7B -:108C0000098A0291819F15EBEF04CF15EB80F59651 -:108C1000F4F6BFD4EFEF1BAC0E14895C0F91DF06A6 -:108C2000F6BFD4EFEF0CF594F4F513EBF512EBF57A -:108C3000D7EF8C01D1DF43AC0E14895C0F318EBFAE -:108C4000CCEF440800DE33F642CCEFDD2DE512EB2D -:108C5000F5CFEF9B8B318E42CCEFDE158B81318EC1 -:108C600061090E1489728B7362180AEB615900EF67 -:108C7000E3E59AF430E803BF98F4EEAD018C01D13E -:108C8000DF46AC0E14895C0F318EBFCAEF4408007A -:108C9000DE33F642CAEFDD2DE513EBF5CEEF9B8B0D -:108CA000318E42CAEFDE158B81318E61090E148937 -:108CB000728B73621802EB615900EFE3E59AF430AE -:108CC000E803BF98F4EE62018C019161E8EEC00008 -:108CD000AC0E14895C0F318E318D128A01318E03F6 -:108CE000BFCAEF44B104DC36CF88F430CF89F40238 -:108CF0008F92229F8AF4CC00038B4C08DE0D8B737D -:108D00008F8A221888F4615900EFEE3488F4C53058 -:108D10000800C1AF9022FCA174001004EF6FAFCA2D -:108D2000EF440800DC67F5CEEFF6BFD0EFCC0002D1 -:108D30008B4C08DE168B318E61090E1489DBD0EF67 -:108D4000481AEBA2D0EF615900EFE5E5D2EFCF88EA -:108D5000F430F589F48F92229F8AF4CC00038B4C77 -:108D600008DE0D8B738F8A221888F4615900EFEEAC -:108D70003488F4C5300800C1AF9022FCA174001003 -:108D800004CF13EB03CFD6EF05F6BFD4EFEE9A0076 -:108D90008C014C0261E8EE91004013EB0361E8EEB8 -:108DA0008800F6BFD4EFAC0E14895C0F728FD2EF3F -:108DB0005C0F6142DF71A0D2EF8C0C4C08DE1A8C84 -:108DC0000CD1DD15AFCAEF082E0C083C0012AFD055 -:108DD000EF43DE05F513EBEF51CC00018B4C08DEC1 -:108DE00049AFD0EF42CAEFDE138B318E61090E140A -:108DF00089DBD0EF481AEBA2D0EFEF0FCF13EB04D3 -:108E0000E59AF430E803BF98F4EF1FAFD0EF42CA01 -:108E1000EFDF0FCF13EB04E59AF430E803BF98F4CB -:108E2000EF08615900EFB5F513EB1004C6D7C7C1C1 -:108E3000C1FBF8FFCC0100AC0A428E2261E8EEA62D -:108E400000AC0E1489314A9C014013EB01DD0C404B -:108E500013EB04DD064013EB05DF4A8C01D1DF4341 -:108E6000AC0E14895C0F318EBFCCEF440800DE33AA -:108E7000F642CCEFDD2DE512EBE5CFEF9B8B318E8B -:108E800042CCEFDE158B81318E61090E1489728B15 -:108E90007362180AEB615900EFE3E59AF430E803D6 -:108EA000BF98F4EF428C01D1DF3DAC0E14895C0F0A -:108EB000318EBFCAEF440800DE2DE513EBE5CEEF9F -:108EC0009B8B318E42CAEFDE158B81318E61090E8C -:108ED0001489728B73621802EB615900EFE3E59A13 -:108EE000F430E803BF98F41004C6D7C7C12004FBD0 -:108EF000F8FF4013EB0561E8EEDA00D5D7EF61E843 -:108F0000EED200F59AF430E803BF98F4F661490414 -:108F1000DF06F513EBEEB800AC04440800DE498C24 -:108F2000049F88F4E6BBAB440800DE0DAB128F8AC9 -:108F3000224888F4617900EFEDF6BBAB614904DEAD -:108F400011AB61090C148973AB334889F461790062 -:108F5000EFE93488F4C5300800C1AF9022FCA17459 -:108F6000001004F513EBEF68E5D7EFF6BBAB6149F2 -:108F700004DE11AB61090C148973AB3348D8EF617F -:108F80007900EFE9AC04BF90F40C109F88F451FF16 -:108F90005E049F89F4F6BF92F4AF92F4440600DEBB -:108FA00011DB92F449D8EFDB92F4488AF4A292F4F0 -:108FB000EFE73488F4C5300800C1AF9022FCA174FB -:108FC000001004E5D6EFF6BFD4EFE595F4E594F490 -:108FD000CC0300EF03CC03018C03318F121006C6C3 -:108FE000D7C7C1C1FBF8FF4013EB05DF65D5D7EF4D -:108FF000DF60AC02440800DE548C029F88F4CC0091 -:10900000018B4C08DE0D8B738F8A221888F461590E -:1090100000EFEECC00008B318E614902DE158B3102 -:109020008E61090A1489728B8173621888F4615900 -:1090300000EFE33488F4C5300800C1AF9022FCA1F2 -:1090400074001004CC0100F6BF98F4EF08CC0101C5 -:10905000EF03CC01018C01318F121004C6D7C75623 -:1090600000664C08DE14723802EB003888F40038D1 -:10907000D8EF00381AEB0086EFE7F513EBF514EBA9 -:10908000CF15EB0AF6BFCAEFBFCCEFF5CEEFF5CFA9 -:10909000EFBFD0EFF5D2EFBFD4EFF5D6EFF5D7EFB6 -:1090A000BF90F4BF92F4F594F4F595F4F596F4308E -:1090B000E803BF98F4F59AF4C6D7C74013EB03DF73 -:1090C0002040D6EF05DF12AF962242D4EFDE05F541 -:1090D00013EBEF0DA2D4EFEF08CFD6EF05F6BFD418 -:1090E000EF409AF401DF1BAF98224298F4DE0EF5B0 -:1090F00013EBF59AF430E803BF98F4EF0BA298F461 -:10910000EF0630E803BF98F44013EB0561E8EE1476 -:10911000014094F401DF2540D6EF01DF18AF94221F -:1091200042D4EFDE0BF594F4F513EBF5D7EFEF0C2B -:10913000A2D4EFEF07E5D6EFF6BFD4EF4094F403E7 -:1091400061E8EEE000A096F4D514EB61F8EECB00F8 -:109150008F15EB4F96F461C8EEBE00E596F4AF9024 -:10916000F424070012AF92F443DE5551200F95F41A -:109170009F88F45600664C07DE14A292F4DB92F44A -:1091800049D7EF72668173621888F486EFE73488F6 -:10919000F4C5300800C1AF9022FCA174001004A0F7 -:1091A00095F43495F4895C0F994014EB01DF0CE5DC -:1091B00094F4F6BFD4EFE5D6EFEF6AB014EBEF65A9 -:1091C000AF90F42292F4607751200F95F49F88F4C9 -:1091D0005601664C08DE0A738F8A221888F486EFDF -:1091E000F1560066614FDE14A292F4DB92F449D787 -:1091F000EF72668173621888F486EFE73488F4C5ED -:10920000300800C1AF9022FCA174001004F594F462 -:10921000F513EBF5D7EFF514EBEF0AE594F4F6BF91 -:10922000D4EFE5D6EFC6D7C7D513EBDF045601EF71 -:0892300002560017F112C6D727 -:020000020000FC -:10923800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10924800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10925800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10926800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10927800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10928800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10929800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:1092A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:1092B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:1092C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:1092D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:1092E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:1092F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10930800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10931800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10932800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10933800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10934800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10935800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10936800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10937800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10938800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10939800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:1093A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:1093B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:1093C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:1093D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:1093E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:1093F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10940800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10941800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10942800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10943800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10944800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10945800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10946800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10947800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10948800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10949800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:1094A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:1094B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:1094C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:1094D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:1094E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:1094F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10950800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10951800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10952800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10953800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10954800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10955800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10956800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10957800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10958800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10959800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:1095A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:1095B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:1095C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:1095D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:1095E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:1095F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10960800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10961800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10962800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10963800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10964800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10965800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10966800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10967800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10968800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10969800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:1096A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:1096B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:1096C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:1096D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:1096E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:1096F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10970800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10971800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10972800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10973800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10974800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10975800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10976800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10977800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10978800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10979800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:1097A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:1097B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:1097C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:1097D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:1097E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:1097F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10980800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10981800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10982800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10983800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10984800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10985800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10986800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10987800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10988800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10989800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:1098A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:1098B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:1098C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:1098D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:1098E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:1098F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10990800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10991800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10992800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10993800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10994800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10995800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10996800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10997800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10998800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10999800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:1099A800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:1099B800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:1099C800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:1099D800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:1099E800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:1099F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:109A0800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:109A1800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:109A2800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:109A3800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:109A4800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:109A5800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:109A6800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:109A7800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:109A8800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:109A9800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:109AA800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:109AB800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:109AC800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:109AD800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:109AE800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:109AF800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:109B0800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:109B1800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:109B2800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:109B3800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:109B4800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:109B5800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:109B6800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:109B7800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:109B8800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:109B9800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:109BA800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:109BB800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:109BC800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:109BD800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:109BE800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:109BF800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:109C0800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:109C1800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:109C2800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:109C3800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:109C4800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:109C5800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:109C6800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:109C7800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:109C8800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:109C9800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:109CA800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:109CB800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:109CC800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:109CD800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:109CE800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:109CF800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:109D0800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:109D1800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:109D2800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:109D3800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:109D4800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:109D5800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:109D6800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:109D7800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:109D8800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:109D9800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:109DA800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:109DB800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:109DC800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:109DD800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:109DE800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:089DF800FFFFFFFFFFFFFFFF6B -:020000020000FC -:109E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:109E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:109E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:109E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:109E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:109E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:109E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:109E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:109E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:109E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:109EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:109EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:109EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:109ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:109EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:109EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:109F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:109F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:109F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:109F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:109F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:109F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:109F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:109F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:109F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:109F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:109FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:109FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:109FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:109FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:109FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:109FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:020000020000FC -:10A00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10A01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10A02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10A03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10A04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10A05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10A06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10A07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10A08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10A09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10A0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10A0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10A0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10A0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10A0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10A0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10A10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10A11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10A12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10A13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10A14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10A15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10A16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10A17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10A18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10A19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10A1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10A1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10A1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10A1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10A1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10A1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10A20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10A21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10A22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10A23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10A24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10A25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10A26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10A27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10A28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10A29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10A2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10A2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10A2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10A2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10A2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10A2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10A30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10A31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10A32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10A33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10A34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10A35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10A36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10A37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10A38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10A39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10A3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10A3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10A3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10A3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10A3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10A3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10A40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10A41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10A42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10A43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10A44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10A45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10A46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10A47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10A48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10A49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10A4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10A4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10A4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10A4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10A4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10A4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10A50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10A51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10A52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10A53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10A54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10A55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10A56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10A57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10A58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10A59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10A5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10A5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10A5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10A5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10A5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10A5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10A60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10A61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10A62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10A63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10A64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10A65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10A66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10A67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10A68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10A69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10A6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10A6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10A6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10A6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10A6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10A6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10A70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10A71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10A72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10A73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10A74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10A75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10A76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10A77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10A78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10A79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10A7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10A7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10A7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10A7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10A7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10A7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10A80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10A81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10A82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10A83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10A84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10A85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10A86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10A87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10A88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10A89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10A8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10A8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10A8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10A8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10A8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10A8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10A90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10A91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10A92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10A93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10A94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10A95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10A96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10A97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10A98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10A99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10A9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10A9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10A9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10A9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10A9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10A9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10AA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10AA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10AA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10AA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10AA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10AA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10AA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10AA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10AA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10AA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10AAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10AAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10AAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10AAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10AAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10AAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10AB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10AB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10AB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10AB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10AB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10AB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10AB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10AB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10AB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10AB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10ABA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10ABB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10ABC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10ABD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10ABE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10ABF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10AC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10AC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10AC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10AC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10AC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10AC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10AC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10AC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10AC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10AC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10ACA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10ACB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10ACC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10ACD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10ACE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10ACF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10AD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10AD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10AD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10AD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10AD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10AD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10AD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10AD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10AD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10AD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10ADA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10ADB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10ADC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10ADD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10ADE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10ADF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10AE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10AE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10AE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10AE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10AE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10AE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10AE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10AE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10AE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10AE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10AEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10AEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10AEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10AED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10AEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10AEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10AF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10AF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10AF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10AF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10AF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10AF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10AF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10AF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10AF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10AF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10AFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10AFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10AFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10AFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10AFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10AFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10B00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10B01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10B02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10B03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10B04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10B05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10B06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10B07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10B08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10B09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10B0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10B0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10B0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10B0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10B0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10B0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10B10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10B11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10B12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10B13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10B14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10B15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10B16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10B17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10B18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10B19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10B1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10B1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10B1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10B1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10B1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10B1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10B20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10B21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10B22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10B23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10B24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10B25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10B26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10B27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10B28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10B29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10B2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10B2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10B2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10B2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10B2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10B2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10B30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10B31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10B32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10B33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10B34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10B35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10B36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10B37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10B38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10B39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10B3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10B3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10B3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10B3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10B3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10B3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10B40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10B41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10B42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10B43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10B44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10B45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10B46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10B47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10B48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10B49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10B4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10B4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10B4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10B4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10B4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10B4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10B50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10B51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10B52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10B53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10B54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10B55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10B56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10B57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10B58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10B59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10B5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10B5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10B5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10B5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10B5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10B5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10B60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10B61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10B62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10B63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10B64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10B65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10B66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10B67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10B68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10B69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10B6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10B6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10B6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10B6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10B6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10B6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10B70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10B71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10B72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10B73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10B74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10B75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10B76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10B77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10B78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10B79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10B7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10B7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10B7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10B7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10B7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10B7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10B80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10B81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10B82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10B83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10B84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10B85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10B86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10B87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10B88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10B89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10B8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10B8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10B8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10B8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10B8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10B8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10B90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10B91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10B92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10B93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10B94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10B95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10B96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10B97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10B98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10B99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10B9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10B9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10B9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10B9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10B9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10B9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10BA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10BA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10BA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10BA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10BA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10BA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10BA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10BA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10BA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10BA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10BAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10BAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10BAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10BAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10BAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10BAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10BB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10BB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10BB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10BB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10BB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10BB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10BB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10BB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10BB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10BB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10BBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10BBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10BBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10BBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10BBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10BBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10BC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10BC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10BC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10BC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10BC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10BC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10BC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10BC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10BC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10BC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10BCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10BCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10BCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10BCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10BCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10BCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10BD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10BD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10BD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10BD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10BD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10BD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10BD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10BD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10BD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10BD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10BDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10BDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10BDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10BDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10BDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10BDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10BE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10BE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10BE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10BE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10BE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10BE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10BE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10BE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10BE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10BE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10BEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10BEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10BEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10BED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10BEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10BEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10BF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10BF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10BF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10BF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10BF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10BF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10BF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10BF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10BF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10BF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10BFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10BFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10BFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10BFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10BFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10BFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10C01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10C02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10C03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10C04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10C05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10C06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10C07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10C08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10C09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10C0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10C0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10C0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10C0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10C0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10C0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10C10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10C11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10C12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10C13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10C14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10C15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10C16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10C17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10C18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10C19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10C1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10C1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10C1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10C1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10C1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10C1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10C20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10C21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10C22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10C23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10C24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10C25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10C26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10C27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10C28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10C29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10C2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10C2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10C2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10C2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10C2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10C2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10C30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10C31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10C32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10C33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10C34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10C35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10C36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10C37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10C38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10C39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10C3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10C3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10C3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10C3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10C3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10C3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10C40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10C41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10C42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10C43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10C44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10C45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10C46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10C47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10C48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10C49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10C4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10C4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10C4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10C4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10C4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10C4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10C50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10C51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10C52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10C53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10C54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10C55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10C56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10C57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10C58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10C59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10C5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10C5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10C5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10C5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10C5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10C5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10C60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10C61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10C62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10C63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10C64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10C65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10C66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10C67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10C68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10C69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10C6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10C6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10C6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10C6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10C6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10C6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10C70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10C71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10C72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10C73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10C74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10C75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10C76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10C77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10C78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10C79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10C7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10C7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10C7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10C7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10C7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10C7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10C80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10C81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10C82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10C83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10C84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10C85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10C86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10C87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10C88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10C89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10C8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10C8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10C8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10C8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10C8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10C8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10C90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10C91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10C92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10C93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10C94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10C95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10C96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10C97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10C98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10C99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10C9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10C9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10C9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10C9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10C9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10C9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10CA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10CA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10CA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10CA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10CA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10CA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10CA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10CA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10CA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10CA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10CAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10CAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10CAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10CAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10CAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10CAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10CB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10CB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10CB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10CB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10CB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10CB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10CB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10CB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10CB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10CB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10CBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10CBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10CBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10CBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10CBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10CBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10CC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10CC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10CC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10CC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10CC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10CC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10CC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10CC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10CC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10CC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10CCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10CCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10CCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10CCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10CCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10CCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10CD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10CD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10CD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10CD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10CD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10CD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10CD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10CD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10CD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10CDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10CDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10CDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10CDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10CDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10CDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10CE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10CE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10CE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10CE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10CE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10CE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10CE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10CE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10CE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10CE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10CEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10CEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10CEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10CED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10CEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10CEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10CF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10CF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10CF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10CF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10CF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10CF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10CF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10CF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10CF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10CF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10CFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10CFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10CFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10CFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10CFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10CFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10D00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10D01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10D02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10D03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10D04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10D05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10D06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10D07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10D08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10D09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10D0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10D0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10D0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10D0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10D0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10D0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10D10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10D11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10D12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10D13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10D14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10D15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10D16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10D17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10D18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10D19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10D1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10D1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10D1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10D1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10D1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10D1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10D20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10D21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10D22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10D23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10D24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10D25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10D26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10D27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10D28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10D29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10D2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10D2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10D2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10D2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10D2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10D2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10D30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10D31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10D32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10D33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10D34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10D35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10D36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10D37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10D38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10D39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10D3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10D3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10D3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10D3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10D3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10D3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10D40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10D41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10D42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10D43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10D44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10D45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10D46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10D47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10D48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10D49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10D4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10D4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10D4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10D4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10D4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10D4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10D50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10D51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10D52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10D53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10D54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10D55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10D56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10D57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10D58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10D59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10D5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10D5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10D5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10D5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10D5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10D5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10D60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10D61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10D62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10D63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10D64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10D65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10D66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10D67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10D68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10D69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10D6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10D6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10D6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10D6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10D6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10D6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10D70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10D71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10D72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10D73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10D74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10D75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10D76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10D77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10D78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10D79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10D7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10D7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10D7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10D7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10D7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10D7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10D80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10D81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10D82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10D83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10D84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10D85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10D86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10D87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10D88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10D89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10D8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10D8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10D8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10D8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10D8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10D8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10D90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10D91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10D92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10D93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10D94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10D95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10D96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10D97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10D98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10D99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10D9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10D9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10D9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10D9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10D9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10D9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10DA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10DA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10DA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10DA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10DA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10DA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10DA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10DA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10DA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10DA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10DAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10DAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10DAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10DAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10DAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10DAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10DB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10DB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10DB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10DB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10DB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10DB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10DB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10DB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10DB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10DB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10DBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10DBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10DBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10DBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10DBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10DBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10DC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10DC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10DC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10DC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10DC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10DC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10DC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10DC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10DC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10DC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10DCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10DCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10DCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10DCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10DCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10DCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10DD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10DD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10DD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10DD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10DD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10DD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10DD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10DD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10DD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10DD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10DDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10DDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10DDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10DDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10DDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10DDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10DE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10DE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10DE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10DE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10DE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10DE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10DE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10DE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10DE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10DE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10DEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10DEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10DEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10DED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10DEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10DEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10DF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10DF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10DF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10DF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10DF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10DF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10DF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10DF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10DF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10DF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10DFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10DFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10DFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10DFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10DFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10DFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10E00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10E01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10E02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10E03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10E04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10E05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10E06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10E07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10E08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10E09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10E0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10E0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10E0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10E0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10E0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10E0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10E10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10E11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10E12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10E13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10E14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10E15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10E16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10E17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10E18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10E19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10E1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10E1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10E1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10E1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10E1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10E1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10E20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10E21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10E22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10E23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10E24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10E25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10E26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10E27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10E28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10E29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10E2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10E2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10E2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10E2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10E2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10E2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10E30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10E31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10E32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10E33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10E34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10E35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10E36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10E37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10E38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10E39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10E3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10E3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10E3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10E3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10E3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10E3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10E40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10E41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10E42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10E43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10E44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10E45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10E46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10E47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10E48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10E49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10E4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10E4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10E4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10E4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10E4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10E4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10E50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10E51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10E52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10E53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10E54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10E55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10E56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10E57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10E58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10E59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10E5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10E5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10E5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10E5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10E5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10E5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10E60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10E61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10E62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10E63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10E64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10E65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10E66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10E67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10E68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10E69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10E6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10E6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10E6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10E6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10E6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10E6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10E70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10E71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10E72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10E73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10E74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10E75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10E76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10E77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10E78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10E79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10E7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10E7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10E7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10E7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10E7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10E7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10E80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10E81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10E82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10E83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10E84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10E85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10E86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10E87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10E88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10E89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10E8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10E8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10E8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10E8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10E8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10E8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10E90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10E91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10E92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10E93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10E94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10E95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10E96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10E97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10E98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10E99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10E9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10E9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10E9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10E9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10E9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10E9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10EA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10EA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10EA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10EA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10EA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10EA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10EA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10EA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10EA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10EA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10EAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10EAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10EAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10EAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10EAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10EAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10EB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10EB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10EB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10EB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10EB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10EB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10EB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10EB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10EB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10EB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10EBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10EBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10EBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10EBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10EBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10EBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10EC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10EC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10EC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10EC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10EC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10EC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10EC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10EC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10EC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10EC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10ECA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10ECB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10ECC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10ECD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10ECE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10ECF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10ED0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10ED1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10ED2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10ED3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10ED4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10ED5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10ED6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10ED7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10ED8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10ED9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10EDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10EDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10EDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10EDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10EDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10EDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10EE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10EE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10EE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10EE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10EE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10EE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10EE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10EE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10EE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10EE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10EEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10EEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10EEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10EED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10EEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10EEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10EF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10EF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10EF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10EF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10EF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10EF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10EF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10EF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10EF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10EF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10EFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10EFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10EFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10EFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10EFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10EFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10F00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10F01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10F02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10F03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10F04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10F05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10F06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10F07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10F08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10F09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10F0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10F0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10F0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10F0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10F0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10F0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10F10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10F11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10F12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10F13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10F14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10F15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10F16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10F17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10F18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10F19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10F1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10F1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10F1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10F1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10F1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10F1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10F20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10F21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10F22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10F23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10F24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10F25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10F26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10F27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10F28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10F29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10F2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10F2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10F2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10F2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10F2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10F2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10F30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10F31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10F32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10F33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10F34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10F35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10F36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10F37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10F38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10F39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10F3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10F3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10F3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10F3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10F3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10F3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10F40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10F41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10F42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10F43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10F44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10F45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10F46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10F47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10F48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10F49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10F4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10F4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10F4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10F4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10F4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10F4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10F50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10F51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10F52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10F53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10F54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10F55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10F56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10F57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10F58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10F59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10F5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10F5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10F5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10F5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10F5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10F5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10F60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10F61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10F62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10F63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10F64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10F65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10F66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10F67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10F68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10F69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10F6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10F6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10F6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10F6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10F6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10F6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10F70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10F71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10F72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10F73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10F74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10F75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10F76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10F77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10F78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10F79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10F7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10F7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10F7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10F7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10F7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10F7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10F80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10F82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10F83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10F84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10F85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10F86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10F87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10F88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10F89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10F8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10F8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10F8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10F8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10F8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10F8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10F90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10F91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10F92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10F93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10F94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10F95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10F96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10F97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10F98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10F99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10F9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10F9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10F9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10F9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10F9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10F9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10FA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10FA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10FA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10FA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10FA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10FA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10FA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10FA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10FA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10FA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10FAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10FAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10FAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10FAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10FAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10FAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10FB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10FB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10FB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10FB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10FB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10FB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10FB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10FB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10FB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10FB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10FBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10FBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10FBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10FBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10FBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10FBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10FC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10FC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10FC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10FC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10FC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10FC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10FC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10FC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10FC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10FC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10FCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10FCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10FCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10FCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10FCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10FCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10FD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10FD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10FD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10FD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10FD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10FD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10FD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10FD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10FD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10FD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10FDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10FDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10FDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10FDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10FDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10FDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10FE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10FE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10FE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10FE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10FE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10FE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10FE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10FE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10FE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10FE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10FEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10FEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10FEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10FED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10FEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10FEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10FF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10FF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10FF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10FF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10FF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10FF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10FF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10FF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10FF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10FFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10FFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10FFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10FFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10FFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:020000021000EC -:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10049000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:1004B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:1004D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:1004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1004F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10051000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10053000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10055000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10057000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10059000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:1005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10065000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10067000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:1006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1006F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10071000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10073000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10079000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:1007D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:1007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10081000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10083000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10087000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:1008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:1008B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10097000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10099000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:1009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:1009D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:100AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:100AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:100BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:100C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:100D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:100D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:100D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:100D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:100D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:100D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:100D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:100DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:100EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:100EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:100FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:100FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10101000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10102000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10103000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10104000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10105000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10106000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10107000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10108000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10109000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:1010A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:1010B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:1010C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:1010D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1010E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1010F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10110000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10111000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10112000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10113000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10114000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10115000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10116000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10117000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10118000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10119000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:1011A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:1011B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:1011C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:1011D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1011F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10121000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10123000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10125000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10127000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10129000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:1012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:1012B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:1012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:1012D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1012F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10131000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10133000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10135000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10139000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:1013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:1013B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:1013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:1013D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1013F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10141000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10143000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10145000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10147000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10149000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:1014B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:1014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:1014D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1014F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10151000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10153000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10155000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10157000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10159000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:1015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:1015B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1015D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1015F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10161000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10163000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10165000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10167000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10169000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:1016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:1016B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:1016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1016F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10171000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10173000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10175000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10177000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10179000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:1017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:1017B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:1017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:1017D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1017F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10181000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10183000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10185000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10187000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10189000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:1018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:1018B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:1018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:1018D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:1018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:1018F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10191000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10193000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10195000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10197000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10199000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:1019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:1019B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:1019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:1019D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1019F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:101A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:101A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:101A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:101A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:101A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:101A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:101A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:101A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:101AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:101AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:101AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:101AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:101AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:101AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:101B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:101B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:101B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:101B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:101B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:101B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:101B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:101BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:101BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:101BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:101BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:101BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:101BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:101C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:101C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:101C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:101C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:101C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:101C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:101C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:101C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:101C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:101C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:101CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:101CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:101CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:101CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:101CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:101CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:101D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:101D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:101D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:101D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:101D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:101D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:101D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:101D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:101DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:101DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:101DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:101DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:101DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:101E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:101E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:101E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:101E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:101E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:101E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:101E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:101E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:101E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:101E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:101EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:101EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:101EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:101ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:101EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:101EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:101F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:101F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:101F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:101F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:101F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:101F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:101F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:101F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:101F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:101F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:101FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:101FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:101FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:101FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:101FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:101FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10200000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10201000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10202000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10203000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10204000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10205000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10206000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10207000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10208000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10209000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:1020A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:1020B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:1020C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1020D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1020E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1020F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10210000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10211000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10212000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10213000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10214000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10215000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10216000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10217000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10218000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10219000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:1021A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:1021B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:1021C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1021D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1021E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1021F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10220000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10221000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10222000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10223000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10224000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10225000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10226000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10227000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10228000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10229000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:1022A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:1022B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:1022C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1022D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1022E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1022F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10230000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10231000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10232000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10233000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10234000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10235000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10236000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10237000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10238000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10239000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:1023A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:1023B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:1023C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1023D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1023E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1023F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10240000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10241000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10242000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10243000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10244000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10245000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10246000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10247000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10248000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10249000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:1024A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:1024B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:1024C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1024D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1024E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1024F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10250000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10251000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10252000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10253000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10254000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10255000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10256000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10257000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10258000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10259000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:1025A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1025B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1025C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1025D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1025E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1025F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10260000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10261000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10262000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10263000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10264000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10265000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10266000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10267000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10268000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10269000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:1026A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:1026B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:1026C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1026D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1026E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1026F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10270000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10271000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10272000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10273000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10274000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10275000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10276000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10277000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10278000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10279000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:1027A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:1027B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:1027C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1027D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1027E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1027F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10280000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10281000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10282000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10283000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10284000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10285000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10286000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10287000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10288000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10289000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:1028A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:1028B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:1028C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:1028D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:1028E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:1028F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10290000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10291000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10292000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10293000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10294000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10295000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10296000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10297000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10298000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10299000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:1029A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:1029B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:1029C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1029D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1029E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1029F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:102A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:102A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:102A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:102A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:102A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:102A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:102A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:102A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:102A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:102A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:102AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:102AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:102AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:102AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:102AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:102AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:102B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:102B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:102B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:102B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:102B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:102B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:102B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:102B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:102B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:102B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:102BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:102BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:102BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:102BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:102BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:102BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:102C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:102C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:102C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:102C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:102C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:102C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:102C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:102C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:102C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:102C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:102CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:102CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:102CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:102CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:102CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:102CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:102D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:102D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:102D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:102D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:102D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:102D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:102D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:102D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:102D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:102D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:102DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:102DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:102DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:102DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:102DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:102DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:102E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:102E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:102E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:102E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:102E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:102E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:102E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:102E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:102E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:102E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:102EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:102EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:102EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:102ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:102EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:102EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:102F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:102F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:102F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:102F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:102F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:102F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:102F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:102F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:102F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:102F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:102FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:102FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:102FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:102FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:102FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:102FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10300000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10301000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10302000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10303000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10304000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10305000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10306000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10307000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10308000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10309000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:1030A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:1030B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1030C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1030D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1030E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1030F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10310000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10311000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10312000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10313000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10314000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10315000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10316000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10317000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10318000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10319000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:1031A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:1031B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1031C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1031D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1031E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:1031F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10321000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10322000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10323000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10324000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10325000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10326000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10327000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10328000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10329000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:1032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:1032B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1032D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1032E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:1032F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10331000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10332000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10333000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10334000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10335000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10336000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10337000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10338000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10339000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:1033A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:1033B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1033C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1033D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1033E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:1033F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10340000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10341000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10342000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10343000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10344000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10345000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10346000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10347000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10348000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10349000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:1034A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:1034B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1034C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1034D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1034E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:1034F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10350000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10351000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10352000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10353000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10354000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10355000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10356000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10357000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10358000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10359000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:1035A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1035B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1035C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1035D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1035E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:1035F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10360000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10361000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10362000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10363000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10364000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10365000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10366000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10367000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10368000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10369000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:1036A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:1036B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1036C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1036D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1036E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:1036F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10370000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10371000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10372000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10373000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10374000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10375000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10376000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10377000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10378000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10379000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:1037A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:1037B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1037D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:1037F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10380000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10381000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10382000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10383000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10384000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10385000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10386000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10387000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10388000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10389000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:1038A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:1038B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:1038C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:1038D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:1038E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:1038F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10390000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10391000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10392000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10393000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10394000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10395000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10396000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10397000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10398000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10399000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:1039A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:1039B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1039C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1039D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1039E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1039F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:103A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:103A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:103A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:103A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:103A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:103A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:103A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:103A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:103A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:103A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:103AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:103AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:103AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:103AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:103AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:103AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:103B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:103B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:103B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:103B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:103B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:103B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:103B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:103B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:103B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:103B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:103BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:103BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:103BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:103BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:103BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:103BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:103C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:103C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:103C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:103C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:103C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:103C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:103C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:103C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:103C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:103C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:103CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:103CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:103CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:103CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:103CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:103CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:103D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:103D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:103D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:103D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:103D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:103D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:103D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:103D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:103D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:103D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:103DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:103DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:103DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:103DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:103DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:103DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:103E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:103E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:103E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:103E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:103E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:103E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:103E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:103E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:103E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:103E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:103EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:103EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:103EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:103ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:103EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:103EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:103F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:103F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:103F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:103F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:103F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:103F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:103F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:103F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:103F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:103F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:103FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:103FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:103FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:103FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:103FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:103FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10400000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10401000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10402000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10403000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10404000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10405000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10406000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10407000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10408000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10409000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:1040A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1040B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1040C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1040D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1040E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:1040F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10410000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10411000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10412000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10413000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10414000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10415000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10416000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10417000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10418000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10419000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:1041A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1041B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1041C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1041D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:1041E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:1041F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10420000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10421000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10422000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10423000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10424000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10425000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10426000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10427000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10428000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10429000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:1042A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1042B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1042C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1042D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:1042E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:1042F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10430000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10431000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10432000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10433000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10434000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10435000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10436000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10437000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10438000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10439000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:1043A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1043B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1043C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1043D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:1043E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:1043F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10440000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10441000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10442000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10443000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10444000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10445000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10446000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10447000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10448000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10449000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:1044A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1044B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1044C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1044D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:1044E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:1044F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10450000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10451000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10452000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10453000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10454000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10455000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10456000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10457000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10458000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10459000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:1045A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1045B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1045C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1045D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:1045E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:1045F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10460000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10461000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10462000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10463000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10464000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10465000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10466000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10467000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10468000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10469000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:1046A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1046B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1046C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1046D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:1046E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:1046F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10470000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10471000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10472000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10473000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10474000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10475000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10476000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10477000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10478000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10479000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:1047A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1047B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1047C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1047D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:1047E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:1047F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10480000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10481000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10482000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10483000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10484000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10485000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10486000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10487000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10488000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10489000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:1048A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:1048B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:1048C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:1048D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:1048E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:1048F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10490000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10491000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10492000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10493000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10494000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10495000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10496000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10497000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10498000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10499000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:1049A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1049B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1049C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1049D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1049E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1049F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:104A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:104A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:104A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:104A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:104A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:104A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:104A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:104A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:104A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:104A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:104AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:104AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:104AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:104AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:104AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:104AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:104B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:104B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:104B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:104B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:104B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:104B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:104B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:104B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:104B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:104B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:104BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:104BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:104BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:104BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:104BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:104BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:104C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:104C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:104C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:104C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:104C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:104C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:104C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:104C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:104C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:104C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:104CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:104CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:104CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:104CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:104CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:104CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:104D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:104D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:104D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:104D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:104D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:104D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:104D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:104D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:104D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:104D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:104DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:104DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:104DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:104DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:104DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:104DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:104E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:104E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:104E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:104E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:104E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:104E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:104E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:104E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:104E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:104E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:104EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:104EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:104EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:104ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:104EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:104EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:104F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:104F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:104F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:104F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:104F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:104F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:104F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:104F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:104F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:104F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:104FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:104FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:104FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:104FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:104FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:104FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10500000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10501000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10502000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10503000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10504000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10505000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10506000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10507000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10508000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10509000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:1050A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1050B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1050C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1050D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:1050E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:1050F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10510000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10511000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10512000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10513000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10514000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10515000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10516000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10517000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10518000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10519000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:1051A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1051B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1051C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:1051D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:1051E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:1051F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10520000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10521000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10522000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10523000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10524000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10525000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10526000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10527000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10528000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10529000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:1052A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1052B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1052C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:1052D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:1052E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:1052F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10530000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10531000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10532000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10533000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10534000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10535000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10536000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10537000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10538000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10539000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:1053A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1053B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1053C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:1053D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:1053E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1053F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10540000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10541000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10542000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10543000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10544000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10545000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10546000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10547000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10548000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10549000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:1054A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1054B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1054C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:1054D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:1054E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:1054F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10550000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10551000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10552000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10553000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10554000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10555000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10556000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10557000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10558000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10559000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:1055A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1055B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1055C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:1055D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:1055E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:1055F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10560000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10561000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10562000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10563000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10564000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10565000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10566000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10567000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10568000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10569000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:1056A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1056B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1056C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:1056D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:1056E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:1056F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10570000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10571000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10572000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10573000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10574000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10575000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10576000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10577000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10578000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10579000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:1057A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1057B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1057C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:1057D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:1057E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:1057F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10580000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10581000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10582000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10583000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10584000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10585000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10586000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10587000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10588000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10589000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:1058A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:1058B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:1058C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:1058D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:1058E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:1058F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10590000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10591000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10592000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10593000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10594000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10595000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10596000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10597000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10598000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10599000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:1059A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1059B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1059C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1059D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1059E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:1059F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:105A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:105A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:105A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:105A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:105A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:105A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:105A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:105A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:105A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:105A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:105AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:105AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:105AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:105AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:105AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:105AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:105B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:105B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:105B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:105B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:105B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:105B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:105B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:105B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:105B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:105B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:105BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:105BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:105BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:105BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:105BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:105BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:105C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:105C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:105C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:105C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:105C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:105C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:105C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:105C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:105C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:105C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:105CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:105CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:105CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:105CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:105CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:105CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:105D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:105D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:105D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:105D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:105D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:105D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:105D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:105D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:105D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:105D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:105DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:105DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:105DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:105DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:105DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:105DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:105E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:105E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:105E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:105E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:105E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:105E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:105E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:105E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:105E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:105E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:105EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:105EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:105EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:105ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:105EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:105EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:105F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:105F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:105F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:105F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:105F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:105F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:105F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:105F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:105F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:105F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:105FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:105FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:105FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:105FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:105FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:105FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10600000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10601000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10602000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10603000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10604000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10605000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10606000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10607000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10608000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10609000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:1060A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1060B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1060C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:1060D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:1060E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:1060F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10610000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10611000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10612000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10613000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10614000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10615000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10616000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10617000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10618000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10619000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:1061A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1061B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:1061C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:1061D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:1061E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:1061F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10620000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10621000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10622000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10623000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10624000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10625000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10626000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10627000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10628000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10629000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:1062A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1062B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:1062C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:1062D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:1062E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:1062F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10630000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10631000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10632000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10633000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10634000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10635000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10636000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10637000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10638000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10639000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:1063A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1063B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:1063C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:1063D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1063E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:1063F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10640000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10641000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10642000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10643000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10644000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10645000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10646000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10647000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10648000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10649000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:1064A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1064B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:1064C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:1064D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:1064E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:1064F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10650000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10651000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10652000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10653000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10654000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10655000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10656000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10657000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10658000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10659000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:1065A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1065B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:1065C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:1065D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:1065E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:1065F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10660000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10661000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10662000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10663000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10664000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10665000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10666000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10667000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10668000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10669000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:1066A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1066B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:1066C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:1066D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:1066E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:1066F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10670000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10671000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10672000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10673000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10674000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10675000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10676000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10677000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10678000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10679000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:1067A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1067B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:1067C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:1067D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:1067E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:1067F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10680000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10681000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10682000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10683000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10684000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10685000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10686000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10687000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10688000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10689000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:1068A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:1068B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:1068C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:1068D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:1068E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:1068F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10690000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10691000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10692000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10693000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10694000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10695000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10696000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10697000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10698000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10699000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:1069A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1069B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1069C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1069D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:1069E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:1069F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:106A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:106A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:106A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:106A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:106A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:106A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:106A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:106A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:106A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:106A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:106AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:106AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:106AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:106AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:106AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:106AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:106B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:106B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:106B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:106B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:106B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:106B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:106B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:106B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:106B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:106B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:106BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:106BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:106BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:106BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:106BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:106BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:106C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:106C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:106C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:106C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:106C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:106C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:106C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:106C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:106C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:106C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:106CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:106CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:106CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:106CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:106CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:106CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:106D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:106D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:106D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:106D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:106D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:106D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:106D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:106D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:106D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:106D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:106DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:106DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:106DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:106DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:106DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:106DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:106E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:106E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:106E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:106E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:106E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:106E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:106E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:106E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:106E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:106E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:106EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:106EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:106EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:106ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:106EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:106EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:106F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:106F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:106F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:106F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:106F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:106F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:106F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:106F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:106F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:106F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:106FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:106FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:106FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:106FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:106FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:106FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10700000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10701000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10702000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10703000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10704000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10705000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10706000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10707000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10708000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10709000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:1070A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1070B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:1070C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:1070D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:1070E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:1070F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10710000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10711000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10712000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10713000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10714000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10715000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10716000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10717000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10718000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10719000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:1071A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:1071B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:1071C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:1071D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:1071E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:1071F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10720000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10721000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10722000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10723000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10724000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10725000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10726000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10727000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10728000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10729000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:1072A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:1072B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:1072C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:1072D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:1072E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:1072F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10730000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10731000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10732000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10733000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10734000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10735000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10736000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10737000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10738000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10739000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:1073A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:1073B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:1073C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1073D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:1073E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:1073F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10740000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10741000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10742000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10743000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10744000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10745000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10746000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10747000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10748000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10749000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:1074A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:1074B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:1074C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:1074D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:1074E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:1074F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10750000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10751000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10752000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10753000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10754000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10755000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10756000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10757000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10758000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10759000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:1075A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:1075B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:1075C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:1075D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:1075E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:1075F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10760000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10761000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10762000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10763000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10764000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10765000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10766000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10767000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10768000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10769000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:1076A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:1076B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:1076C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:1076D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:1076E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:1076F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10770000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10771000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10772000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10773000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10774000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10775000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10776000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10777000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10778000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10779000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:1077A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:1077B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:1077C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:1077D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:1077E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:1077F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10780000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10781000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10782000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10783000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10784000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10785000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10786000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10787000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10788000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10789000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:1078A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:1078B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:1078C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:1078D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:1078E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:1078F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10790000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10791000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10792000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10793000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10794000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10795000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10796000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10797000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10798000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10799000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:1079A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1079B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1079C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:1079D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:1079E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:1079F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:107A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:107A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:107A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:107A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:107A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:107A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:107A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:107A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:107A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:107A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:107AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:107AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:107AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:107AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:107AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:107AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:107B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:107B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:107B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:107B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:107B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:107B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:107B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:107B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:107B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:107B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:107BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:107BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:107BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:107BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:107BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:107BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:107C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:107C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:107C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:107C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:107C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:107C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:107C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:107C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:107C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:107C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:107CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:107CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:107CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:107CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:107CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:107CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:107D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:107D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:107D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:107D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:107D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:107D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:107D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:107D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:107D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:107D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:107DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:107DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:107DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:107DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:107DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:107DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:107E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:107E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:107E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:107E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:107E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:107E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:107E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:107E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:107E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:107E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:107EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:107EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:107EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:107ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:107EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:107EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:107F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:107F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:107F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:107F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:107F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:107F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:107F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:107F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:107F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:107F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:107FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:107FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:107FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:107FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:107FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:107FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10801000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10802000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10803000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10804000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10805000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10806000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10807000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10808000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10809000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:1080A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:1080B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:1080C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:1080D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:1080E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:1080F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10810000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10811000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10812000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10813000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10814000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10815000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10816000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10817000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10818000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10819000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:1081A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:1081B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:1081C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:1081D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:1081E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:1081F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10820000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10821000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10822000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10823000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10824000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10825000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10826000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10827000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10828000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10829000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:1082A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:1082B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:1082C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:1082D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:1082E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:1082F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10830000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10831000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10832000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10833000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10834000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10835000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10836000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10837000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10838000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10839000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:1083A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:1083B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1083C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:1083D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:1083E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:1083F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10840000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10841000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10842000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10843000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10844000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10845000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10846000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10847000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10848000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10849000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:1084A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:1084B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:1084C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:1084D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:1084E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:1084F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10850000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10851000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10852000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10853000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10854000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10855000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10856000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10857000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10858000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10859000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:1085A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:1085B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:1085C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:1085D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:1085E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:1085F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10860000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10861000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10862000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10863000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10864000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10865000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10866000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10867000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10868000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10869000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:1086A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:1086B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:1086C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:1086D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:1086E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:1086F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10870000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10871000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10872000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10873000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10874000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10875000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10876000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10877000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10878000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10879000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:1087A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:1087B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:1087C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:1087D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:1087E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:1087F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10880000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10881000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10882000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10883000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10884000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10885000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10886000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10887000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10888000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10889000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:1088A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:1088B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:1088C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:1088D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:1088E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:1088F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10890000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10891000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10892000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10893000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10894000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10895000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10896000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10897000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10898000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10899000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:1089A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1089B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:1089C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:1089D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:1089E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:1089F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:108A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:108A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:108A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:108A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:108A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:108A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:108A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:108A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:108A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:108A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:108AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:108AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:108AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:108AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:108AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:108AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:108B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:108B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:108B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:108B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:108B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:108B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:108B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:108B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:108B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:108B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:108BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:108BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:108BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:108BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:108BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:108BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:108C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:108C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:108C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:108C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:108C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:108C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:108C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:108C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:108C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:108C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:108CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:108CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:108CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:108CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:108CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:108CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:108D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:108D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:108D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:108D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:108D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:108D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:108D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:108D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:108D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:108D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:108DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:108DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:108DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:108DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:108DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:108DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:108E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:108E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:108E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:108E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:108E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:108E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:108E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:108E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:108E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:108E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:108EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:108EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:108EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:108ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:108EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:108EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:108F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:108F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:108F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:108F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:108F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:108F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:108F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:108F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:108F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:108F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:108FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:108FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:108FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:108FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:108FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:108FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10900000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10901000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10902000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10903000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10904000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10905000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10906000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10907000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10908000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10909000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:1090A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:1090B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:1090C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:1090D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:1090E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:1090F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10910000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10911000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10912000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10913000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10914000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10915000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10916000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10917000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10918000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10919000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:1091A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:1091B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:1091C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:1091D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:1091E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:1091F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10920000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10921000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10922000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10923000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10924000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10925000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10926000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10927000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10928000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10929000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:1092A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:1092B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:1092C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:1092D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:1092E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:1092F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10930000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10931000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10932000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10933000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10934000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10935000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10936000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10937000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10938000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10939000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:1093A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:1093B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:1093C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:1093D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:1093E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:1093F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10940000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10941000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10942000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10943000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10944000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10945000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10946000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10947000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10948000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10949000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:1094A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:1094B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:1094C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:1094D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:1094E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:1094F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10950000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10951000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10952000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10953000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10954000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10955000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10956000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10957000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10958000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10959000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:1095A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:1095B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:1095C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:1095D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:1095E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:1095F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10960000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10961000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10962000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10963000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10964000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10965000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10966000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10967000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10968000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10969000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:1096A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:1096B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:1096C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:1096D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:1096E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:1096F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10970000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10971000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10972000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10973000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10974000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10975000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10976000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10977000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10978000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10979000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:1097A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:1097B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:1097C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:1097D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:1097E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:1097F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10980000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10981000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10982000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10983000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10984000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10985000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10986000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10987000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10988000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10989000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:1098A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:1098B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:1098C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:1098D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:1098E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:1098F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10990000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10991000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10992000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10993000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10994000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10995000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10996000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10997000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10998000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10999000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:1099A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:1099B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:1099C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:1099D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:1099E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:1099F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:109A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:109A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:109A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:109A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:109A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:109A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:109A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:109A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:109A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:109A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:109AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:109AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:109AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:109AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:109AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:109AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:109B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:109B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:109B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:109B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:109B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:109B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:109B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:109B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:109B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:109B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:109BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:109BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:109BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:109BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:109BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:109BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:109C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:109C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:109C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:109C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:109C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:109C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:109C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:109C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:109C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:109C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:109CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:109CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:109CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:109CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:109CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:109CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:109D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:109D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:109D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:109D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:109D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:109D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:109D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:109D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:109D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:109D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:109DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:109DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:109DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:109DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:109DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:109DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:109E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:109E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:109E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:109E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:109E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:109E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:109E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:109E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:109E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:109E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:109EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:109EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:109EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:109ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:109EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:109EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:109F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:109F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:109F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:109F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:109F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:109F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:109F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:109F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:109F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:109F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:109FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:109FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:109FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:109FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:109FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:109FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10A00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10A01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10A02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10A03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10A04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10A05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10A06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10A07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10A08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10A09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10A0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10A0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10A0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10A0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10A0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10A0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10A10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10A11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10A12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10A13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10A14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10A15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10A16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10A17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10A18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10A19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10A1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10A1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10A1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10A1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10A1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10A1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10A20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10A21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10A22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10A23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10A24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10A25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10A26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10A27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10A28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10A29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10A2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10A2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10A2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10A2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10A2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10A2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10A30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10A31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10A32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10A33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10A34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10A35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10A36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10A37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10A38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10A39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10A3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10A3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10A3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10A3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10A3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10A3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10A40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10A41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10A42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10A43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10A44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10A45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10A46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10A47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10A48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10A49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10A4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10A4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10A4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10A4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10A4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10A4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10A50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10A51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10A52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10A53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10A54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10A55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10A56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10A57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10A58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10A59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10A5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10A5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10A5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10A5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10A5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10A5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10A60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10A61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10A62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10A63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10A64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10A65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10A66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10A67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10A68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10A69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10A6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10A6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10A6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10A6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10A6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10A6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10A70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10A71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10A72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10A73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10A74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10A75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10A76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10A77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10A78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10A79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10A7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10A7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10A7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10A7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10A7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10A7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10A80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10A81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10A82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10A83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10A84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10A85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10A86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10A87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10A88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10A89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10A8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10A8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10A8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10A8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10A8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10A8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10A90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10A91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10A92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10A93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10A94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10A95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10A96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10A97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10A98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10A99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10A9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10A9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10A9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10A9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10A9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10A9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10AA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10AA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10AA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10AA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10AA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10AA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10AA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10AA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10AA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10AA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10AAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10AAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10AAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10AAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10AAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10AAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10AB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10AB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10AB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10AB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10AB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10AB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10AB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10AB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10AB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10AB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10ABA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10ABB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10ABC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10ABD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10ABE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10ABF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10AC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10AC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10AC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10AC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10AC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10AC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10AC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10AC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10AC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10AC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10ACA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10ACB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10ACC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10ACD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10ACE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10ACF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10AD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10AD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10AD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10AD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10AD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10AD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10AD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10AD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10AD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10AD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10ADA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10ADB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10ADC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10ADD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10ADE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10ADF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10AE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10AE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10AE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10AE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10AE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10AE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10AE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10AE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10AE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10AE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10AEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10AEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10AEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10AED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10AEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10AEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10AF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10AF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10AF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10AF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10AF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10AF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10AF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10AF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10AF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10AF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10AFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10AFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10AFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10AFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10AFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10AFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10B00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10B01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10B02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10B03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10B04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10B05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10B06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10B07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10B08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10B09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10B0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10B0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10B0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10B0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10B0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10B0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10B10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10B11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10B12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10B13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10B14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10B15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10B16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10B17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10B18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10B19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10B1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10B1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10B1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10B1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10B1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10B1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10B20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10B21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10B22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10B23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10B24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10B25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10B26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10B27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10B28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10B29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10B2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10B2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10B2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10B2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10B2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10B2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10B30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10B31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10B32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10B33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10B34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10B35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10B36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10B37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10B38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10B39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10B3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10B3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10B3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10B3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10B3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10B3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10B40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10B41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10B42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10B43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10B44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10B45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10B46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10B47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10B48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10B49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10B4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10B4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10B4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10B4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10B4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10B4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10B50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10B51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10B52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10B53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10B54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10B55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10B56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10B57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10B58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10B59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10B5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10B5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10B5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10B5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10B5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10B5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10B60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10B61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10B62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10B63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10B64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10B65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10B66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10B67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10B68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10B69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10B6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10B6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10B6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10B6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10B6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10B6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10B70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10B71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10B72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10B73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10B74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10B75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10B76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10B77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10B78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10B79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10B7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10B7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10B7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10B7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10B7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10B7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10B80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10B81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10B82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10B83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10B84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10B85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10B86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10B87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10B88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10B89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10B8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10B8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10B8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10B8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10B8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10B8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10B90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10B91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10B92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10B93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10B94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10B95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10B96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10B97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10B98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10B99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10B9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10B9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10B9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10B9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10B9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10B9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10BA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10BA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10BA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10BA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10BA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10BA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10BA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10BA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10BA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10BA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10BAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10BAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10BAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10BAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10BAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10BAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10BB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10BB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10BB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10BB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10BB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10BB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10BB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10BB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10BB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10BB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10BBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10BBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10BBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10BBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10BBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10BBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10BC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10BC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10BC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10BC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10BC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10BC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10BC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10BC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10BC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10BC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10BCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10BCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10BCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10BCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10BCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10BCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10BD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10BD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10BD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10BD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10BD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10BD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10BD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10BD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10BD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10BD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10BDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10BDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10BDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10BDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10BDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10BDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10BE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10BE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10BE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10BE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10BE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10BE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10BE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10BE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10BE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10BE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10BEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10BEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10BEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10BED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10BEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10BEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10BF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10BF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10BF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10BF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10BF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10BF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10BF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10BF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10BF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10BF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10BFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10BFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10BFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10BFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10BFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10BFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10C00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10C01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10C02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10C03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10C04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10C05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10C06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10C07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10C08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10C09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10C0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10C0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10C0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10C0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10C0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10C0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10C10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10C11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10C12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10C13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10C14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10C15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10C16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10C17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10C18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10C19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10C1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10C1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10C1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10C1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10C1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10C1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10C20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10C21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10C22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10C23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10C24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10C25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10C26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10C27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10C28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10C29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10C2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10C2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10C2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10C2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10C2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10C2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10C30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10C31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10C32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10C33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10C34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10C35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10C36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10C37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10C38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10C39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10C3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10C3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10C3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10C3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10C3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10C3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10C40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10C41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10C42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10C43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10C44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10C45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10C46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10C47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10C48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10C49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10C4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10C4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10C4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10C4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10C4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10C4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10C50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10C51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10C52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10C53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10C54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10C55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10C56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10C57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10C58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10C59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10C5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10C5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10C5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10C5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10C5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10C5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10C60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10C61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10C62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10C63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10C64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10C65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10C66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10C67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10C68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10C69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10C6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10C6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10C6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10C6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10C6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10C6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10C70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10C71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10C72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10C73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10C74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10C75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10C76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10C77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10C78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10C79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10C7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10C7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10C7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10C7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10C7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10C7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10C80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10C81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10C82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10C83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10C84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10C85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10C86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10C87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10C88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10C89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10C8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10C8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10C8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10C8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10C8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10C8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10C90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10C91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10C92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10C93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10C94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10C95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10C96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10C97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10C98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10C99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10C9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10C9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10C9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10C9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10C9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10C9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10CA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10CA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10CA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10CA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10CA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10CA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10CA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10CA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10CA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10CA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10CAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10CAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10CAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10CAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10CAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10CAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10CB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10CB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10CB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10CB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10CB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10CB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10CB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10CB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10CB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10CB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10CBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10CBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10CBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10CBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10CBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10CBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10CC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10CC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10CC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10CC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10CC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10CC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10CC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10CC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10CC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10CC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10CCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10CCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10CCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10CCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10CCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10CCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10CD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10CD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10CD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10CD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10CD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10CD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10CD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10CD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10CD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10CD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10CDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10CDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10CDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10CDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10CDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10CDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10CE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10CE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10CE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10CE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10CE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10CE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10CE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10CE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10CE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10CE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10CEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10CEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10CEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10CED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10CEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10CEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10CF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10CF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10CF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10CF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10CF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10CF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10CF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10CF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10CF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10CF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10CFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10CFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10CFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10CFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10CFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10CFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10D00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10D01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10D02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10D03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10D04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10D05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10D06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10D07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10D08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10D09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10D0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10D0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10D0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10D0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10D0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10D0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10D10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10D11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10D12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10D13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10D14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10D15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10D16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10D17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10D18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10D19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10D1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10D1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10D1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10D1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10D1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10D1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10D20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10D21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10D22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10D23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10D24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10D25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10D26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10D27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10D28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10D29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10D2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10D2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10D2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10D2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10D2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10D2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10D30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10D31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10D32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10D33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10D34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10D35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10D36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10D37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10D38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10D39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10D3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10D3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10D3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10D3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10D3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10D3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10D40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10D41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10D42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10D43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10D44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10D45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10D46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10D47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10D48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10D49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10D4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10D4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10D4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10D4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10D4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10D4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10D50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10D51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10D52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10D53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10D54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10D55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10D56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10D57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10D58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10D59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10D5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10D5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10D5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10D5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10D5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10D5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10D60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10D61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10D62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10D63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10D64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10D65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10D66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10D67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10D68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10D69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10D6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10D6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10D6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10D6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10D6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10D6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10D70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10D71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10D72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10D73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10D74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10D75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10D76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10D77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10D78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10D79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10D7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10D7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10D7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10D7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10D7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10D7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10D80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10D81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10D82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10D83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10D84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10D85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10D86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10D87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10D88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10D89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10D8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10D8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10D8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10D8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10D8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10D8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10D90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10D91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10D92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10D93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10D94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10D95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10D96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10D97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10D98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10D99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10D9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10D9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10D9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10D9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10D9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10D9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10DA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10DA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10DA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10DA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10DA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10DA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10DA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10DA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10DA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10DA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10DAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10DAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10DAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10DAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10DAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10DAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10DB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10DB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10DB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10DB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10DB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10DB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10DB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10DB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10DB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10DB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10DBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10DBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10DBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10DBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10DBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10DBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10DC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10DC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10DC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10DC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10DC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10DC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10DC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10DC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10DC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10DC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10DCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10DCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10DCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10DCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10DCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10DCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10DD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10DD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10DD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10DD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10DD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10DD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10DD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10DD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10DD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10DD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10DDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10DDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10DDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10DDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10DDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10DDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10DE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10DE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10DE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10DE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10DE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10DE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10DE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10DE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10DE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10DE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10DEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10DEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10DEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10DED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10DEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10DEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10DF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10DF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10DF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10DF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10DF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10DF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10DF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10DF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10DF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10DF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10DFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10DFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10DFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10DFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10DFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10DFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10E00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10E01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10E02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10E03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10E04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10E05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10E06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10E07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10E08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10E09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10E0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10E0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10E0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10E0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10E0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10E0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10E10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10E11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10E12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10E13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10E14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10E15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10E16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10E17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10E18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10E19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10E1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10E1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10E1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10E1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10E1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10E1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10E20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10E21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10E22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10E23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10E24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10E25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10E26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10E27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10E28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10E29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10E2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10E2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10E2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10E2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10E2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10E2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10E30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10E31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10E32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10E33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10E34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10E35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10E36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10E37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10E38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10E39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10E3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10E3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10E3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10E3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10E3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10E3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10E40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10E41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10E42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10E43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10E44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10E45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10E46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10E47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10E48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10E49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10E4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10E4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10E4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10E4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10E4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10E4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10E50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10E51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10E52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10E53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10E54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10E55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10E56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10E57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10E58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10E59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10E5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10E5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10E5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10E5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10E5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10E5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10E60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10E61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10E62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10E63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10E64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10E65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10E66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10E67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10E68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10E69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10E6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10E6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10E6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10E6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10E6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10E6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10E70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10E71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10E72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10E73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10E74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10E75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10E76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10E77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10E78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10E79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10E7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10E7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10E7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10E7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10E7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10E7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10E80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10E81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10E82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10E83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10E84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10E85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10E86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10E87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10E88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10E89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10E8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10E8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10E8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10E8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10E8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10E8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10E90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10E91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10E92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10E93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10E94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10E95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10E96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10E97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10E98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10E99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10E9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10E9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10E9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10E9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10E9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10E9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10EA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10EA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10EA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10EA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10EA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10EA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10EA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10EA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10EA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10EA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10EAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10EAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10EAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10EAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10EAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10EAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10EB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10EB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10EB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10EB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10EB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10EB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10EB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10EB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10EB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10EB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10EBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10EBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10EBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10EBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10EBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10EBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10EC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10EC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10EC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10EC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10EC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10EC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10EC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10EC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10EC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10EC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10ECA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10ECB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10ECC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10ECD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10ECE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10ECF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10ED0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10ED1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10ED2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10ED3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10ED4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10ED5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10ED6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10ED7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10ED8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10ED9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10EDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10EDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10EDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10EDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10EDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10EDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10EE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10EE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10EE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10EE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10EE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10EE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10EE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10EE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10EE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10EE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10EEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10EEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10EEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10EED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10EEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10EEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10EF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 -:10EF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10EF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10EF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10EF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10EF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10EF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10EF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10EF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10EF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10EFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10EFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10EFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10EFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10EFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10EFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10F00000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 -:10F01000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 -:10F02000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 -:10F03000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 -:10F04000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 -:10F05000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 -:10F06000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 -:10F07000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 -:10F08000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 -:10F09000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 -:10F0A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 -:10F0B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 -:10F0C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 -:10F0D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 -:10F0E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 -:10F0F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 -:10F10000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F -:10F11000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -:10F12000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF -:10F13000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF -:10F14000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF -:10F15000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF -:10F16000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF -:10F17000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F -:10F18000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F -:10F19000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F -:10F1A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F -:10F1B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F -:10F1C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F -:10F1D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F -:10F1E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F -:10F1F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F -:10F20000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E -:10F21000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -:10F22000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE -:10F23000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE -:10F24000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE -:10F25000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE -:10F26000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE -:10F27000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E -:10F28000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E -:10F29000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E -:10F2A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E -:10F2B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E -:10F2C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E -:10F2D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E -:10F2E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E -:10F2F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E -:10F30000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D -:10F31000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD -:10F32000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED -:10F33000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD -:10F34000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD -:10F35000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD -:10F36000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD -:10F37000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D -:10F38000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D -:10F39000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D -:10F3A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D -:10F3B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D -:10F3C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D -:10F3D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D -:10F3E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D -:10F3F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D -:10F40000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C -:10F41000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC -:10F42000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC -:10F43000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC -:10F44000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC -:10F45000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC -:10F46000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC -:10F47000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C -:10F48000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C -:10F49000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C -:10F4A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C -:10F4B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C -:10F4C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C -:10F4D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C -:10F4E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C -:10F4F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C -:10F50000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B -:10F51000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB -:10F52000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB -:10F53000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB -:10F54000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB -:10F55000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB -:10F56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB -:10F57000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B -:10F58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B -:10F59000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B -:10F5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B -:10F5B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B -:10F5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B -:10F5D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B -:10F5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B -:10F5F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B -:10F60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A -:10F61000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA -:10F62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA -:10F63000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA -:10F64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA -:10F65000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA -:10F66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA -:10F67000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A -:10F68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A -:10F69000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A -:10F6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A -:10F6B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A -:10F6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A -:10F6D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A -:10F6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A -:10F6F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A -:10F70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 -:10F71000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 -:10F72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 -:10F73000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 -:10F74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 -:10F75000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 -:10F76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 -:10F77000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 -:10F78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 -:10F79000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 -:10F7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 -:10F7B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 -:10F7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 -:10F7D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 -:10F7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 -:10F7F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 -:10F80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 -:10F81000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 -:10F82000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 -:10F83000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 -:10F84000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 -:10F85000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 -:10F86000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 -:10F87000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 -:10F88000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 -:10F89000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 -:10F8A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 -:10F8B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 -:10F8C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 -:10F8D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 -:10F8E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 -:10F8F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 -:10F90000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 -:10F91000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 -:10F92000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 -:10F93000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 -:10F94000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 -:10F95000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 -:10F96000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 -:10F97000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 -:10F98000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 -:10F99000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 -:10F9A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 -:10F9B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 -:10F9C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 -:10F9D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 -:10F9E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 -:10F9F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 -:10FA0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 -:10FA1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 -:10FA2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 -:10FA3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 -:10FA4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 -:10FA5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 -:10FA6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 -:10FA7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 -:10FA8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 -:10FA9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 -:10FAA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 -:10FAB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 -:10FAC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 -:10FAD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 -:10FAE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 -:10FAF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 -:10FB0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 -:10FB1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 -:10FB2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 -:10FB3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 -:10FB4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 -:10FB5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 -:10FB6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 -:10FB7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 -:10FB8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 -:10FB9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 -:10FBA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 -:10FBB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 -:10FBC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 -:10FBD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 -:10FBE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 -:10FBF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 -:10FC0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 -:10FC1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 -:10FC2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 -:10FC3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 -:10FC4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 -:10FC5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 -:10FC6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 -:10FC7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 -:10FC8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 -:10FC9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 -:10FCA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 -:10FCB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 -:10FCC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 -:10FCD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 -:10FCE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 -:10FCF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 -:10FD0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 -:10FD1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 -:10FD2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 -:10FD3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 -:10FD4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 -:10FD5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 -:10FD6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 -:10FD7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 -:10FD8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 -:10FD9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 -:10FDA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 -:10FDB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 -:10FDC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 -:10FDD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 -:10FDE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 -:10FDF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 -:10FE0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 -:10FE1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 -:10FE2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 -:10FE3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 -:10FE4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 -:10FE5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 -:10FE6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 -:10FE7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 -:10FE8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 -:10FE9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 -:10FEA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 -:10FEB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 -:10FEC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 -:10FED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 -:10FEE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 -:10FEF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 -:10FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 -:10FF1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 -:10FF2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 -:10FF3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 -:10FF4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 -:10FF5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 -:10FF6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 -:10FF7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 -:10FF8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 -:10FF9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 -:10FFA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 -:10FFB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 -:10FFC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 -:10FFD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 -:10FFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 -:10FFF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +:20000000D800FFFF25036A03A403DE03180452048C04C60400053A057405AE05E80522069C +:200020005C069606D0060A0744077E07B807F2072C086608A008DA0814094E098809C20957 +:20004000FC09360A7B0AB50AEF0A290B630B9D0BE20B1C0C610CA60CEB0C300D6A0DA40D44 +:20006000DE0D180EC820CC20D020D420D820DC20E020E420E820EC20F020F420F820FC2053 +:20008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +:2000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +:2000C000FEFFE88400000000000000000000FFFFFFFFFFFFFFFFFFFF61CF5100718C7109C9 +:2000E000FECBF8A0F9FC87890036D4F4FC9A110053C0F693935820FEDFF9410036560E3469 +:200100009CF4EF05118B99A7A517448E0EDFF536C40034D4F4EF0A4100118B410F1199A7A2 +:20012000A51744C400DFF03610E5309CF4EF04CC0000A747DFF9410F36D4F430D4F4EF0582 +:2001400011CC0000A747DFF8410036C40034D4F4EF05118B99A7A51744C400DFF536D4F460 +:2001600030D4F4EF04CC0000A747DFF9F6BF94E5E6BF92E530AAE5BFA8E5FCC28700EC007C +:200180002000C5C3DAD8CEFB0114DADAADDCCEFB010514DAD8ADDCCEFB01BDD81305BDDABE +:2001A000C2C4D7C161686BDC6BDDC0DD16C7C5C316EADCDADAADD8CEFB0BBDD813BDDAC2DD +:2001C000C4C6D7F6B1BDD8BDDAD706DABDDAADDC06D8BDD861D8A6DAD7C312ADD826DCBDF8 +:2001E000D861317006DA23BDDAC2D7D1DD17C1C3DAD89DD8ADDA311C61EEB4D8DFF8BDDA65 +:2002000013BDD8C2C0D7D1DD1BC1C3DADA9DDAADD8311E33311E3371F9B4DADFF4BDD81369 +:20022000BDDAC2C0D75BDB9DDB605BDA9DDAADDC5BD9085BD808BDD8D76BDB9DDB606BDA45 +:200240009DDAADDC6BD9086BD808BDD8D77BDB9DDB607BDA9DDAADDC7BD9087BD808BDD8CC +:20026000D74100118FCAA09EFC11AFC8A061CB4100118FCEA09EFC11AFCCA061CB410011DB +:200280008FD2A09EFC11AFD0A061CB4100118FD6A09EFC11AFD4A061CB4100118FDAA09E1D +:2002A000FC11AFD8A061CB4100118FDEA09EFC11AFDCA061CB4100118FE2A09EFC11AFE0E0 +:2002C000A061CB4100118FE6A09EFC11AFE4A061CB4100118FEAA09EFC11AFE8A061CB4127 +:2002E00000118FEEA09EFC11AFECA061CB4100118FF2A09EFC11AFF0A061CB4100118FF65E +:20030000A09EFC11AFF4A061CB4100118FFAA09EFC11AFF8A061CB4100118FFEA09EFC1160 +:20032000AFFCA061CBC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1D50BE5DF06FC10E5 +:200340008B00EF0E4100118F0AA09EFC11AF08A061CAC09EFC609EFD34D4FE5206C0B9A58C +:20036000A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1410019 +:20038000118F0EA09EFC11AF0CA061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C474 +:2003A000C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F12A09EFC86 +:2003C00011AF10A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3B5 +:2003E000C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F16A09EFC11AF14A061CA06 +:20040000C09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929201 +:2004200069D4FEC1DFF88EFD708EFCC14100118F1AA09EFC11AF18A061CAC09EFC609EFD76 +:2004400034D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF843 +:200460008EFD708EFCC14100118F1EA09EFC11AF1CA061CAC09EFC609EFD34D4FE5206C0E3 +:20048000B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1DB +:2004A0004100118F22A09EFC11AF20A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF974 +:2004C000C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F26A061 +:2004E0009EFC11AF24A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FC6A +:20050000C1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F2AA09EFC11AF28A063 +:2005200061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520CD9 +:20054000929269D4FEC1DFF88EFD708EFCC14100118F2EA09EFC11AF2CA061CAC09EFC60A4 +:200560009EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC15E +:20058000DFF88EFD708EFCC14100118F32A09EFC11AF30A061CAC09EFC609EFD34D4FE5289 +:2005A00006C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EB1 +:2005C000FCC14100118F36A09EFC11AF34A061CAC09EFC609EFD34D4FE5206C0B9A5A59246 +:2005E000DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F2E +:200600003AA09EFC11AF38A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C0B7 +:2006200061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F3EA09EFC11AF99 +:200640003CA061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C73A +:20066000520C929269D4FEC1DFF88EFD708EFCC14100118F42A09EFC11AF40A061CAC09E59 +:20068000FC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4A0 +:2006A000FEC1DFF88EFD708EFCC14100118F46A09EFC11AF44A061CAC09EFC609EFD34D4D1 +:2006C000FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD3E +:2006E000708EFCC14100118F4AA09EFC11AF48A061CAC09EFC609EFD34D4FE5206C0B9A536 +:20070000A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1410075 +:20072000118F4EA09EFC11AF4CA061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C450 +:20074000C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F52A09EFCA2 +:2007600011AF50A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3D1 +:20078000C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F56A09EFC11AF54A061CAE2 +:2007A000C09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C92925E +:2007C00069D4FEC1DFF88EFD708EFCC14100118F5AA09EFC11AF58A061CAC09EFC609EFD53 +:2007E00034D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF8A0 +:200800008EFD708EFCC14100118F5EA09EFC11AF5CA061CAC09EFC609EFD34D4FE5206C0BF +:20082000B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC137 +:200840004100118F62A09EFC11AF60A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF950 +:20086000C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F66A07D +:200880009EFC11AF64A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FC86 +:2008A000C1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F6AA09EFC11AF68A040 +:2008C00061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C36 +:2008E000929269D4FEC1DFF88EFD708EFCC14100118F6EA09EFC11AF6CA061CAC09EFC6081 +:200900009EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1BA +:20092000DFF88EFD708EFCC14100118F72A09EFC11AF70A061CAC09EFC609EFD34D4FE5265 +:2009400006C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708E0D +:20096000FCC14100118F76A09EFC11AF74A061CAC09EFC609EFD34D4FE5206C0B9A5A59222 +:20098000DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F8A +:2009A0007AA09EFC11AF78A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C094 +:2009C00061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F7EA09EFC11AFB6 +:2009E0007CA061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C757 +:200A0000520C929269D4FEC1DFF88EFD708EFCC14100118F82A09EFC11AF80A061CAC09E35 +:200A2000FC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FC +:200A4000FEC1DFF88EFD708EFCC1D50BE5DF06FCC08A00EF0E4100118F86A09EFC11AF84E8 +:200A6000A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C75200 +:200A80000C929269D4FEC1DFF88EFD708EFCC14100118F8AA09EFC11AF88A061CAC09EFCFB +:200AA000609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FE7A +:200AC000C1DFF88EFD708EFCC14100118F8EA09EFC11AF8CA061CAC09EFC609EFD34D4FE1D +:200AE0005206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD70A8 +:200B00008EFCC14100118F92A09EFC11AF90A061CAC09EFC609EFD34D4FE5206C0B9A5A54C +:200B200092DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1410011E5 +:200B40008F96A09EFC11AF94A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2EB +:200B6000C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118F9AA09EFC11E7 +:200B8000AF98A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5B1 +:200BA000C7520C929269D4FEC1DFF88EFD708EFCC1D50BE5DF06FC492E00EF0E4100118FD8 +:200BC0009EA09EFC11AF9CA061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C02A +:200BE00061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118FA2A09EFC11AF70 +:200C0000A0A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C710 +:200C2000520C929269D4FEC1DFF88EFD708EFCC1D50BE5DF06FC4A2E00EF0E4100118FA677 +:200C4000A09EFC11AFA4A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061DE +:200C6000FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1D50BE5DF06FC4B2E00EF0EB1 +:200C80004100118FAAA09EFC11AFA8A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF97C +:200CA000C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1D50BE5DF06FC7A +:200CC000FD2D00EF0E4100118FAEA09EFC11AFACA061CAC09EFC609EFD34D4FE5206C0B9C1 +:200CE000A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC1D557 +:200D00000BE5DF06FCFC2D00EF0E4100118FB2A09EFC11AFB0A061CAC09EFC609EFD34D477 +:200D2000FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFDD7 +:200D4000708EFCC14100118FB6A09EFC11AFB4A061CAC09EFC609EFD34D4FE5206C0B9A5F7 +:200D6000A592DFF9C6C4C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC141000F +:200D8000118FBAA09EFC11AFB8A061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C412 +:200DA000C2C061FCC1C3C5C7520C929269D4FEC1DFF88EFD708EFCC14100118FBEA09EFCD0 +:200DC00011AFBCA061CAC09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3FF +:200DE000C5C7520C929269D4FEC1DFF88EFD708EFCC14100118FC2A09EFC11AFC0A061CAA4 +:200E0000C09EFC609EFD34D4FE5206C0B9A5A592DFF9C6C4C2C061FCC1C3C5C7520C9292F7 +:200E200069D4FEC1DFF88EFD708EFCC14100118FC6A09EFC11AFC4A061CAC09EFC609EFD14 +:200E400034D4FE5206C0B9A5A592DFF9C6C4C2C061FC002001003200C80078563412896D79 +:200E600085AC020211121314222431333536377F727173787E92937000112233445566776B +:200E80008899AABBCCDDEEFF00000000000071009000C716BF04088C019F0108E50308F276 +:200EA000FCF8FF0EC6CF800804D7C5C716C3E503088C02088C03BF0408340010CF02080FC8 +:200EC0008C069F81084C03DD2415080E00081E01BF0008148C04088C05BF06081251004E34 +:200EE00006DD1BF98108FCF8FF0E62EF20300004BF06088C003129F005BF0008EFE5FB048A +:200F00000800899BA7A5B3F643DFF75100C272C6C4D7FC04F00ED7C3FC08F00EC27108904C +:200F200000F58008D7FFC7C5C116348008F6B9A5A53544C00835DFF68EFDC1629EFD3182FF +:200F4000A13DF1114E0261E8710091089F0308114E0061E8E19F010830800814BF0408118B +:200F60008C0199410E114FE8FFDC1411F9E9FF6142DC0C5200FCF8FF0E71009008EF0252A9 +:200F800005C09EFDC0C4C6D771109008D7FF71189008D7FFC7C5C3C1712090088EFDC14124 +:200FA0000036D80F32D81034800A11ABB9A7A7A5A51743DCF5C09EFDC0C2C4C6D7FFC7C53B +:200FC000C3C1713090088EFDC1410036D81032581134800BEED3FFFFC7C5C18EFC758EFDB9 +:200FE00074CEFC0F69740B61CBFCC4080F624CFFDD4771489008717890088F900831553930 +:20100000510F9EFCAF920861CB5203EF065206EF025208A80016410E11AFE6FF47DC181770 +:20102000312D9F0208609F0108F50008F50308300004BF0608EF635205659EFC649EFDC03C +:20104000C4C6D7A800168C00708C01BF04088C025C03DFE38C05D1DFDE8C06D1DDD94C41A9 +:20106000DED570F1312DBF0608B1B1C5148C02708C03BF000805358C049F02081C003516C8 +:201080001570C4DCB2410E66113FDFFF67113FE0FF60113FE1FFDE9F520413FCF8FF0E6227 +:2010A0004CFFDF958F910831030F71409008604C0361F871709008EF80FCC4080FEFE00027 +:2010C000000000000000000000000000B10AB50AB90AEB0A910A0000C5C18EFC758EFD74BF +:2010E000CEFC0F69F80B61CB308008BF04085210FCF8FF0ED2DF14675F80089F8008675C9C +:201100000161E8710080085211EF1071589008659EFC649EFDC0C4C6D75213FCF8FF0E62E2 +:201120004CFFDF0C8F910831031571409008EFDF8F90083155D9510F9EFCAF920861CBFC00 +:20114000C4080FEFDA0000000000000000000000900BC10B000000005204EF0A5200EF06EE +:201160005202EF025206FE250061F8EC800A0F521FD7C151FF500FEF1AC151475007EF135E +:20118000C151475007EF0CC151475047EF05C151F750075F90086148C0D7C80300AEF82791 +:2011A000DD3BDC39315E12F643DD27BBBC02BC04BC06BC08BC0ABC0CBC0EBC10BC12BC14A3 +:2011C000BC16BC18BC1ABC1CBC1E3704200037B3EFD6AEF847DD06F6BBA7A7EFF5D7FFFF4F +:2011E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +:20120000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +:20122000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:20124000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +:20126000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +:20128000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +:2012A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +:2012C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:2012E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:20130000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +:20132000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:20134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +:20136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +:20138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +:2013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +:2013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +:2013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +:20140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:20142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:20144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:20146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:20148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +:2014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:2014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:2014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:20150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:20152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:20154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:20156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:20158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:2015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:2015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:2015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:20160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:20162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:20164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:20166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:20168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:2016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:2016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:2016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:20170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:20172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:20174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:20176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:20178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:2017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:2017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:2017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:20180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:20182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:20184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:20186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:20188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:2018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:2018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:2018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:20190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:20192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:20194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:20196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:20198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:2019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:2019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:2019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:201A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:201A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:201A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:201A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:201A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:201AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:201AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:201AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:201B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:201B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:201B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:201B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:201B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:201BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:201BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:201BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:201C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:201C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:201C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:201C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:201C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:201CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:201CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:201CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:201D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:201D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:201D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:201D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:201D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:201DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:201DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:201DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:201E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:201E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:201E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:201E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:201E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:201EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:201EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:201EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:201F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:201F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:201F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:201F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +:201F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:201FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:201FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:201FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:2020000051070000FFFFFFDF02800180DF070000FFFFFFDF0281028080808200070703022D +:202020000310C750000007070302011176510000060701020227F3530000060703030328CD +:20204000AF54000007070302013E1A590000070703020285C6590000070703030022235254 +:20206000000006030104002E68550000020701040331895700000201010500340D450000B6 +:20208000020101030036934700000201010100371B4C000000000000000000000000000086 +:2020A000000000000000000000000000000000000000000000000000000000000102D53216 +:2020C00000000202C03300000302A734000001025D35000003025D3500001102C5350000F0 +:2020E0001206F636000000038C41000001038C41000003038C4100000002C742000001021A +:202100000F43000002026F4300000108D54300000304F74300000403020000637D64000008 +:20212000040302000863C7640000040302000B6311650000040302000C635B6500000403D4 +:2021400002000E63A5650000070708000002AE5A0000070708000102EB5A0000070708006E +:2021600013F1465C00000707100080F1D55C00000707010086F19D5D000007070B0087F1E8 +:20218000C25D000007070A008AF1455E0000070703008BF18A5E00000707110090F1CF5EA8 +:2021A00000000707100095F1656000000707100093F1DB5F00000707100098F1356100009D +:2021C0000707040099F1BB610000070704009DF14A6200000603100098F176610000060379 +:2021E000040099F100620000010D0839000002050A3E000003055B3F00000104443C00002A +:2022000002057A3E00000305CC3F000001047E38000002049A3D00000304EA3E000001081C +:202220003D40000002058A41000003058B410000020100FFE821020101FFFA21020102024B +:202240001E22060403020C22AA5043520201010051070800738D000000000000DF07080020 +:202260000B9000000000000059070800000001030164000000000000000000000300AA0045 +:202280005107DF07590700004B009600881300F0061601F006170291811203918114049126 +:2022A000817105918312069183140791837108918412099184140A9184710B9186110C9186 +:2022C00086140DC07300000000000000000000000000000000000000000000000000000024 +:2022E0000000000000000000000000000000000000000000963007772C610EEEBA51099964 +:2023000019C46D078FF46A7035A563E9A395649E3288DB0EA4B8DC791EE9D5E088D9D297D5 +:202320002B4CB609BD7CB17E072DB8E7911DBF906410B71DF220B06A4871B9F3DE41BE84F5 +:202340007DD4DA1AEBE4DD6D51B5D4F4C785D38356986C13C0A86B647AF962FDECC9658A95 +:202360004F5C0114D96C0663633D0FFAF50D088DC8206E3B5E10694CE44160D5727167A2B5 +:20238000D1E4033C47D4044BFD850DD26BB50AA5FAA8B5356C98B242D6C9BBDB40F9BCAC55 +:2023A000E36CD832755CDF45CF0DD6DC593DD1ABAC30D9263A00DE518051D7C81661D0BF75 +:2023C000B5F4B42123C4B3569995BACF0FA5BDB89EB802280888055FB2D90CC624E90BB115 +:2023E000877C6F2F114C6858AB1D61C13D2D66B69041DC760671DB01BC20D2982A10D5EFF5 +:202400008985B1711FB5B606A5E4BF9F33D4B8E8A2C9077834F9000F8EA8099618980EE1D4 +:20242000BB0D6A7F2D3D6D08976C6491015C63E6F4516B6B62616C1CD83065854E0062F274 +:20244000ED95066C7BA5011BC1F4088257C40FF5C6D9B06550E9B712EAB8BE8B7C88B9FC94 +:20246000DF1DDD62492DDA15F37CD38C654CD4FB5861B24DCE51B53A7400BCA3E230BBD434 +:2024800041A5DF4AD795D83D6DC4D1A4FBF4D6D36AE96943FCD96E34468867ADD0B860DA54 +:2024A000732D0444E51D03335F4C0AAAC97C0DDD3C710550AA41022710100BBE86200CC9F4 +:2024C00025B56857B3856F2009D466B99FE461CE0EF9DE5E98C9D9292298D0B0B4A8D7C714 +:2024E000173DB359810DB42E3B5CBDB7AD6CBAC02083B8EDB6B3BF9A0CE2B6039AD2B1742C +:202500003947D5EAAF77D29D1526DB048316DC73120B63E3843B64943E6A6D0DA85A6A7AC3 +:202520000BCF0EE49DFF099327AE000AB19E077D44930FF0D2A3088768F2011EFEC2066963 +:202540005D5762F7CB67658071366C19E7066B6E761BD4FEE02BD3895A7ADA10CC4ADD6783 +:202560006FDFB9F9F9EFBE8E43BEB717D58EB060E8A3D6D67E93D1A1C4C2D83852F2DF4F23 +:20258000F167BBD16757BCA6DD06B53F4B36B248DA2B0DD84C1B0AAFF64A0336607A044143 +:2025A000C3EF60DF55DF67A8EF8E6E3179BE69468CB361CB1A8366BCA0D26F2536E26852E3 +:2025C00095770CCC03470BBBB91602222F260555BE3BBAC5280BBDB2925AB42B046AB35C03 +:2025E000A7FFD7C231CFD0B58B9ED92C1DAEDE5BB0C2649B26F263EC9CA36A750A936D02E3 +:20260000A906099C3F360EEB8567077213570005824ABF95147AB8E2AE2BB17B381BB60CC2 +:202620009B8ED2920DBED5E5B7EFDC7C21DFDB0BD4D2D38642E2D4F1F8B3DD686E83DA1FE2 +:20264000CD16BE815B26B9F6E177B06F7747B718E65A0888706A0FFFCA3B06665C0B011182 +:20266000FF9E658F69AE62F8D3FF6B6145CF6C1678E20AA0EED20DD75483044EC2B30339A2 +:20268000612667A7F71660D04D476949DB776E3E4A6AD1AEDC5AD6D9660BDF40F03BD83742 +:2026A00053AEBCA9C59EBBDE7FCFB247E9FFB5301CF2BDBD8AC2BACA3093B353A6A3B42462 +:2026C0000536D0BA9306D7CD2957DE54BF67D9232E7A66B3B84A61C4021B685D942B6F2A02 +:2026E00037BE0BB4A18E0CC31BDF055A8DEF022D00100F00090000140F00050010140F00A1 +:20270000090020140F00120040140F00090050140F00110060140F00050070140F0005004B +:2027200080140F00090003180F00030006180F00030009180F0003000C180F0003000F1800 +:202740000F00030012180F00030015180F00030018180F0003001B180F0003001E180F0020 +:20276000030021180F00030024180F00030027180F0003002A180F000300FFFFE803F4013A +:202780006400FFFFC72006FBF8FFAF2A03F1085C08086168DD06320500EE4701AF2A03F1D1 +:2027A000085C04086168DD1CAF2603085CFB08BF2603AF2A03F1085C04086168DD063204A1 +:2027C00000EE1F01AF0803F1085C04086168DD1CAF0403085CFB08BF0403AF0803F1085C1C +:2027E00004086168DD06320400EEF700300204BF2203F6BF2403E6BF0003303A01BF020339 +:20280000E6A1BF3003AF8A03BC02AF8A03085CFE08BF8A0330A003BC04F6BBAB440200DE40 +:2028200077AB320C00CEFB011279002012AC041413B9AB320C00CEFB011279022012AC04FF +:202840001413BA02AB320C00CEFB011279042012AC041413BA04AB320C00CEFB0112790648 +:202860002012AC041413BA06AB320C00CEFB011279082012AC041413BA08AB320C00CEFBCC +:202880000112790A2012AC041413BA0AAC04040C00BC04617900EF83AC02BF8A03300400DB +:2028A000BF3203300210BF38035112BF3A03A1A1BF5003E6BF5203500EBF7A03AF2603F1D8 +:2028C000085C07080C03BF2603AF0403F1085C070891BF0403AF060304A100BF0603FCA557 +:2028E0002D00F71006C6D7AF2A03F1085C01086168DD1AAF2603085CFC08BF2603AF2A0303 +:20290000F1085C01086168DD04320400D7F52C03D51820DD0AAF3803086C0108BF3803D554 +:202920001920DD0AAF3A03086C0108BF3A03401A2081DF0AAF5003086C0108BF5003F7D7CF +:20294000AF0803F1085C01086168DD1AAF0403085CFC08BF0403AF0803F1085C01086168DA +:20296000DD04320400D7401A2082DF0AAF5003086C0108BF5003F7D7C7C12004FBF8FF8CFB +:2029800004318E046C03BC0214CA0000AC021489D1DD0532FEFFEF76AF8A03BBAF8A030898 +:2029A0006C0108BF8A038C043149318E0C06BC02AC0C14A912AC021413B9AC0C14AA02121E +:2029C000AC021413BA02AC0C14AA0612AC021413BA06AC0C14AA0812AC021413BA08AC0C64 +:2029E00014AA0A12AC021413BA0AAC0C14AA0C12AC021413BA0CAC0C14AA0E12AC021413CA +:202A0000BA0EABBF8A038C047238640301F71006C6D7C71617F104640314896C0299F7C6FA +:202A2000D7C7C12004FBF8FF8C04318E046C03BB148972300006615A318E311EBC02F66181 +:202A40004902DD05AB14CA0000AC02121006C6D7C7C1C1FBF8FFAF5803F1085C02086168E0 +:202A6000DD04E7A3EF3DAF8A03BBAF8A03086C0108BF8A03AC0214A9BFE005AA02BFE20562 +:202A8000AA06BFE605AA08BFE805AA0ABFEA05AA0CBFEC05AA0EBFEE05ABBF8A03F690BF10 +:202AA0005C03F71004C6D7AF5803F1085C01086168DD0FAF0803F1085C6008442000DF0236 +:202AC000E7D7F7D7C7C1200AFBF8FFAF3403BC06F6614906DF06320300EEE300F6614906E7 +:202AE000DD2AE6BC049C098C094C10DE1F8C065E04708C075E056168DD08AC0A148C099996 +:202B0000EF0AAC0401BC04615909EFDBF6B161290412AF3403615B08615A08BF3403AF3431 +:202B2000035E05085E04086168DD0632FEFFEE8E00AF8A03BBAF8A03086C0108BF8A03ACBE +:202B40000A14893149318E04A003BC0214A912AC121413B9AC0214AA0212AC121413BA02A2 +:202B6000AC0214AA0412AC121413BA04AC0214AA0612AC121413BA06AC0214AA0812AC12C3 +:202B80001413BA08AC0214AA0A12AC121413BA0AAC0214AA0C12AC121413BA0CAC0214AA7A +:202BA0000E12AC121413BA0EABBF8A03AF34035E05085E04086168DD0532FDFFEF01F710C6 +:202BC0000CC6D7C7C1FBF8FF8BD1DF08AC08FCE42B00EF0D8B91DF08AC08FC7B2C00EF018A +:202BE000F7C0C6D7C7C12006FBF8FFAF4003BC04E15E04318E6168DD05320300EF79F6BC33 +:202C00000251045E04318E6168DD09300800BF4003E6BC02AF4003085CF708BF4003AF8A1F +:202C200003BBAF8A03086C0108BF8A03AC0614AFA005B9AC0614AFA205BA02AC0614AFA40D +:202C400005BA04AC0614AFA605BA06AC0614AFA805BA08AC0614AFAA05BA0AAC0614AFACE4 +:202C600005BA0CAC0614AFAE05BA0EABBF8A03F690BF4803AC02121008C6D7C7C12006FBF4 +:202C8000F8FFAF4203BC04E15E04318E6168DD05320300EF79F6BC0251045E04318E61684C +:202CA000DD09300800BF4203E6BC02AF4203085CF708BF4203AF8A03BBAF8A03086C010843 +:202CC000BF8A03AC0614AFB005B9AC0614AFB205BA02AC0614AFB405BA04AC0614AFB605C1 +:202CE000BA06AC0614AFB805BA08AC0614AFBA05BA0AAC0614AFBC05BA0CAC0614AFBE05F4 +:202D0000BA0EABBF8A03F690BF4A03AC02121008C6D7C7C12006FBF8FFAF5803BC04E15E44 +:202D200004318E6168DD05320300EF6FF6BC0251045E04318E6168DD09301800BF5803E671 +:202D4000BC02AF8A03BBAF8A03086C0108BF8A03AC0614AFE005B9AC0614AFE205BA02ACE2 +:202D60000614AFE405BA04AC0614AFE605BA06AC0614AFE805BA08AC0614AFEA05BA0AACCB +:202D80000614AFEC05BA0CAC0614AFEE05BA0EABBF8A03F690BF5C03AC02121008C6D7AFC4 +:202DA0000803F112D7717BD0716BD0715BD0712BD1711BD1710BD1715BD4712BD5711BD5A1 +:202DC000710BD5D7C77100C102360500F647DD08FC8427001316EFF436040030040047DF2C +:202DE00008FCE728001316EFF236040030040047DF08FC4029001316EFF2C6D7D7C736DA60 +:202E0000EAC7E6FCC32B00C0AFDAEA445107DD08AFDAEA44DF07DF2FAFDAEA44DF07DF1244 +:202E200040E3EA3EDF0C40E4EA80DF06FCA43100EF1536E2EAC78FE1EA31CEC1AFDAEAC1FD +:202E4000F6FCAA75001006C6D7D7D7AF5803085CEF08BF5803D7C7C1200CFBF8FF300F00C5 +:202E6000614916DF0630FF0F61491461C8EE9501300F00614916DF0630FF1F61491461D8DB +:202E8000EE8201D5D2E5DF3BCC0820CC0900717BFA17040800FC8E0E00CC0608AC14BDD882 +:202EA000AC16BDDAC9DC0010300F00FDD901ADD8BBAC18BC0417FCAA0E00629C0B717AFA71 +:202EC000E5D2E540D2E501DF708C0B81DF09FC120F00629C0BEFF28C0B81DD5D8C0B4C1BB8 +:202EE000DF26CC0603AC14BDD8AC16BDDAC9DC0010300F00FDD901ADD831AEBB17FCAA0E95 +:202F000000629C0BCFD2E5028C0BD1DF2CCC0604AC14BDD8AC16BDDAC9DC0010300F00FD38 +:202F2000D901ADD8BBAC18BC04AC0CBC0217FCAA0E00629C0BCFD2E50340D2E502DF508C6C +:202F40000B81DF09FC120F00629C0BEFF28C0B81DD3D8C0BD1DF2ECC0604AC14BDD8AC1662 +:202F6000BDDAC9DC0010300F00FDD901ADD8BBAC18BC04AC0CBC0217FCAA0E00629C0BCF12 +:202F8000D2E503EF0ACC0B01E1318E12EE810040D2E503DF4B8C0B81DF09FC120F00629C46 +:202FA0000BEFF28C0B81DD388C0BD1DF2ACC0606AC14BDD8AC16BDDAC9DC0010300F00FD10 +:202FC000D901ADD8BBAC18BC0417FCAA0E00629C0BCFD2E504EF09CC0B01E1318E12EF3054 +:202FE00040D2E504DF2A8C0B81DF09FC120F00629C0BEFF28C0B81DD17FC170F00F5D2E5EC +:20300000321100EF0BCC0B01F5D2E58C0B318E12100EC6D7C7C1200CFBF8FF300F0061493D +:2030200016DF0630FF0F61491461C8EE0E01300F00614916DF0630FF1F61491461D8EEFB61 +:2030400000CC0820CC090017040800FC8E0E00CC0608AC14BDD8AC16BDDAC9DC0010300F70 +:2030600000FDD901ADD8BBAC18BC0417FCAA0E00629C0B8C0B81DF09FC120F00629C0BEFCC +:20308000F28C0B4C1BDF30CC0603AC14BDD8AC16BDDAC9DC0010300F00FDD901ADD831AE7F +:2030A000BB17FCAA0E00629C0B8C0B81DF09FC120F00629C0BEFF28C0BD1DF72CC0604AC3F +:2030C00014BDD8AC16BDDAC9DC0010300F00FDD901ADD8BBAC18BC04AC0CBC0217FCAA0E1E +:2030E00000629C0B8C0B81DF09FC120F00629C0BEFF28C0BD1DF32CC0606AC14BDD8AC1658 +:20310000BDDAC9DC0010300F00FDD901ADD8BBAC18BC0417FCAA0E00629C0B8C0B81DF11AD +:20312000FC120F00629C0BEFF2CC0B01EF03CC0B01FC170F008C0B318E12EF07CC0B01E1AD +:20314000318E12100EC6D7C7C12008FBF8FF8F900031032971009000F6BC02BC04AC04F7A9 +:2031600043DF05AC02440F00DE1300AC0412AC0204010061D8A3BC0233BC04EFE0AC10BBEE +:20318000CC07008C07318E614914DE14AB148972AC08146299617908617900615907EFE38E +:2031A000100AC6D7308813BF0EE6D7C7F6BFD4E5F5D6E5F5D7E5F5D8E576664C03DE087238 +:2031C00038D9E50086EFF3F5DCE55600664C04DE087238DDE50086EFF3F5E1E55600664C52 +:2031E0000ADE087238E2E50086EFF3F5ECE5F6BFEEE576664C14DE087238F0E50086EFF3AF +:20320000C6D7C75600FCAB31003408E6C5340AE6C5300CE6FCF28C001004627791DD0567E9 +:203220004C02DF1D5601D50CE6DF05E5D7E5EF04CFD7E502AF0AE6BFD4E5EB08E6899FD633 +:20324000E517F112C6D7C7C1C1FBF8FFCC00FFCC01008C014C0EDE438C01F0316E61090A67 +:2032600014AC02128A01704900007260614ADF26AC02A1128A02704900007260614ADF169C +:20328000AC02A1A1128A03704900007260614ADF058C019BEF05615901EFB78B318E12109C +:2032A00004C6D7C7C1C1FBF8FFCC00FFCC01008C014C04DE188C015006D661090A14894EAF +:2032C00002DF058C019BEF05615901EFE28B318E121004C6D7C7200CFBF8FFF510E6401132 +:2032E000E60261F8E535E6E511E6CF12E604E513E6E514E6CF15E6038FD8E55C80D161E81A +:20330000EEA6004035E601DF6A3055AA4100114202A1DF07084100114200A1DF563055AA87 +:2033200041011142F29FDF070841011142F09FDF42CF08E5A5CF09E507CF00E5068FD6E50B +:203340000C409F01E58FD8E59F02E5AF9CF49F03E551FF5F9CF49F04E5AF9EF49F05E55122 +:20336000FF5F9EF49F06E5CF07E5AAF50AE5F5ABFFEFFB8FD6E50C409C068FD8E59C07AF2B +:203380009CF49C0851FF5F9CF49C09AF9EF49C0A51FF5F9EF49C0B17040600C1300600FC32 +:2033A000C89000C0CC0501EF0E17040600C1F6FCC89000C0CC05028C05318F12100CC6D74B +:2033C000C72010FBF8FFF6BC06BC08E510E6308813BF0EE64011E601DD72CF11E602CF12FF +:2033E000E604E513E6E514E6F515E6CF0AE5A58FD8E55C80D1DF3FCF08E5A5CF09E507CFC8 +:2034000000E5068FD6E50C409F01E58FD8E59F02E5AF9CF49F03E551FF5F9CF49F04E5AF98 +:203420009EF49F05E551FF5F9EF49F06E5CF07E5AAF5ABFFEFFBF508E517040A00C1F6FCFE +:20344000C89000C0CC0502F5ABFFEFFBD9AEF4F1C1D9D6E5FC784400C03404E6C5300300A9 +:20346000FCC89000C0CC05008C05318F121010C6D7E510E6308813BF0EE6CF11E602CF1245 +:20348000E604F513E6E514E6F515E6D7F510E6308813BF0EE6E511E6CF12E604E513E6E5DB +:2034A00014E6CF15E603D7C72008FBF8FF4011E602DD6FE510E6308813BF0EE64011E60474 +:2034C000DD0EE513E6CF11E604E514E6CF15E603CF12E6048FD8E55C80D1DF368FD6E50C7E +:2034E000409C028FD8E59C03AF9CF49C0451FF5F9CF49C05AF9EF49C0651FF5F9EF49C077D +:2035000017040200C1300600FCC89000C0CC0101EF4217040200C1F6FCC89000C0CC0102CD +:20352000EF3240D7E502DF1017040200C1F6FCC89000C0CC0102EF1CD9BAF4F1C1D9D6E5EE +:20354000FC784400C03404E6C5300300FCC89000C0CC01008C01318F121008C6D7C72008F9 +:20356000FBF8FF8FD8E55C80D1DF33CF08E5A5CF09E503CF00E5028FD6E50C409F01E58FCD +:20358000D8E59F02E5CF03E5AACF04E5AACF05E5AACF06E5AACF07E5AACC0501EF11F5082A +:2035A000E517040600C1F6FCC89000C0CC0502F50AE58C0591DF05F5ABFFEFFBF5ABFFEF66 +:2035C000FB1008C6D7C7C12008FBF8FF401AE605DE23A01AE68F1AE66CB09F0EE5401AE636 +:2035E00005DF12301027BF1CE6300300BF16E6086CB09F0DE5F64218E661E8EED300421C6C +:20360000E661E8EECB00401AE605DF06F51AE6F50EE58FD8E55C80D161E8EEA4008FD6E59D +:203620000C409C028FD8E59C03FC194D00624C04DD0ECC0400CC0500CC0600CC0700EF532E +:20364000401AE602DE0CFC16730013BFA0F415BFA2F4AFA0F4BDD8AFA2F4BDDA5118FD06C9 +:2036600002F8D8629C04AFA0F4BDD8AFA2F4BDDA5110FD0602F8D8629C05AFA0F4BDD8AF02 +:20368000A2F4BDDA5108FD0602F8D8629C068FA0F49C0771701EE68C08318EC1AFA0F4DBEE +:2036A000A2F4FC897400C013BF20E615BF22E617040200C1300600FCC89000C0CC0101EF22 +:2036C0002C17040200C1F6FCC89000C0CC0102EF1CD9B4F4F1C1D9D6E5FC784400C0340485 +:2036E000E6C5300300FCC89000C0CC01008C01318F12100AC6D7C7C12008FBF8FF51805F23 +:203700001EE6D161F8EE4D01F51AE6F50EE5CC07008C074C04DE188C070C02318E0208E666 +:203720001489728C07736218DDE5615907EFE2D9DDE5F1BDD8F6BDDA5118FDEB01ADD8BD64 +:20374000DCADDABDDED9DEE5F1BDD8F6BDDA5110FDEB01ADDEFDCA01ADD8BDDCADDABDDEDF +:20376000D9DFE5F1BDD8F6BDDA5108FDEB01ADDEFDCA01D9E0E5F1BDDCF6BDDEFDCA01ADD6 +:20378000DABC02ADD8BBAC024222E6AB61F84220E6DD0EA216E6AF16E6086CB09F0DE5EF35 +:2037A0001DF6BF16E6F50DE58C084C02DF06CF12E606EF0A8C084C1261F8CF12E607F64276 +:2037C00016E6DF398FD8E55C80D1DF218FD6E50C409C058FD8E59C06CF1EE60417040500C0 +:2037E000C1E6A1FCC89000C0CC0401EF6617040500C1F6FCC89000C0CC0402EF56F64216F7 +:20380000E6DD2AAF16E6440300DE22CF1EE604D9B2F4F1C1D9D6E5FC784400C03404E6C5D2 +:20382000300300FCC89000C0CC0400EF48CF1EE604301027BF18E6D9B3F4F1C1D9D6E5FC7D +:20384000784400C03404E6C5300300FCC89000C0CC0400EF20CF1EE604D9AFF4F1C1D9D62F +:20386000E5FC784400C03404E6C5300300FCC89000C0CC04008C04318F12100AC6D7C720F1 +:2038800006FBF8FF4030E601DF538FD8E55C80D1DF348FD6E50C409C018FD8E59C0251FF2E +:2038A0005FEEE59C04AFEEE59C03CC0504F530E6E534E6E530E617A1C1300500FCC8900039 +:2038C000C0CC0001EF33F530E6E534E6E530E617A1C1F6FCC89000C0CC0002EF1CD9AFF45C +:2038E000F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC00008B318F121006C6DB +:20390000D78F34E6318F12D7C72024FBF8FFEB08E68A059DD8F4D9F6BDDA5118FDEB01AF49 +:2039200008E6040600C1ADD8BDDCADDABDDEC014899DD8F4D9F6BDDA5110FDEB01ADDEFD90 +:20394000CA01AF08E6040700C1ADD8BDDCADDABDDEC014899DD8F4D9F6BDDA5108FDEB0185 +:20396000ADDEFDCA01EB08E68A089DDCF4DDF6BDDEFDCA01ADDABC16ADD8BC14EB08E68AD5 +:20398000099DD8F4D9F6BDDA5118FDEB01AF08E6040A00C1ADD8BDDCADDABDDEC014899D57 +:2039A000D8F4D9F6BDDA5110FDEB01ADDEFDCA01AF08E6040B00C1ADD8BDDCADDABDDEC0CB +:2039C00014899DD8F4D9F6BDDA5108FDEB01ADDEFDCA01EB08E68A0C9DDCF4DDF6BDDEFD9F +:2039E000CA01ADDABC12ADD8BC10402FE603DD23D9AEF4F1C1D9D6E5FC784400C03404E6A7 +:203A0000C5300300FCC89000C0CC1D00F1318F12EE2D02F6614916DF0630FF9F614914DECC +:203A20001AE6614916DF0630FF9F614914DC0CE6614912DF04F6614910DE23D9B0F4F1C108 +:203A4000D9D6E5FC784400C03404E6C5300300FCC89000C0CC1D00F1318F12EEE201403142 +:203A6000E60161E8EEB801D9B9F4F1C1D9D6E5FC784400C03404E6C5300300FCBE9100C00A +:203A8000F6B1BC18BC1A300400C1E6A1C117041800FCD083001004D261E8EE6401D9B9F40E +:203AA000F1C1D9D6E5FC784400C03404E6C5300300FCBE9100C0F6614916DF0630FF9F615D +:203AC000491461C8EEEF00E6614916DF0630FF9F61491461D8EEDE00FCD88000629C23D121 +:203AE000DF66D9B9F4F1C1D9D6E5FC784400C03404E6C5300300FCBE9100C0304000C1509B +:203B000028FCFD8000C0629C23CF2FE6040017FCCA690017040800FCDC69008C0881DF0598 +:203B2000CC0801EF03615908FCD88000D2DF19E6C15068FCFD8000C0301000C117C130003D +:203B4000A0E7FC78810010048C23D1DF4B8FD8E55C80D1DF338FD6E50C409C1E8FD8E59CE8 +:203B60001F51FF5FEEE59C21AFEEE59C20CC2204F531E6E531E617041E00C1300500FCC8BC +:203B80009000C0CC1D01EF2C17041E00C1F6FCC89000C0CC1D02EF67D9B6F4F1C1D9D6E5C2 +:203BA000FC784400C03404E6C5300300FCC89000C0CC1D00EF678FD8E55C80D1DF338FD6B4 +:203BC000E50C409C1E8FD8E59C1F51FF5FEEE59C21AFEEE59C20CC2205F531E6E531E61764 +:203BE000041E00C1300500FCC89000C0CC1D01EF4A17041E00C1F6FCC89000C0CC1D02EF98 +:203C00003AD9B6F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC1D00EF1CD932 +:203C2000AFF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC1D008C1D318F1295 +:203C40001024C6D7C72016FBF8FF4032E60161E8EE2301402FE606DD328FD6E50C409C1143 +:203C60008FD8E59C1251FF5FEEE59C14AFEEE59C13CC150517041100C1300500FCC890008B +:203C8000C0CC0001E1318F12EE0B013055AA4100114202A1DF07084100114200A161E8EE2A +:203CA000A1003055AA41011142F29FDF070841011142F09F61E8EE8A0017A1FCCA6900173D +:203CC000040900FCDC69008C0181DF05CC0101EF03615901CC0900FCD88000D2DF1AE6C18E +:203CE0005068FCFD8000C0301000C117A1C13000A0E7FC78810010048FD8E55C80D1DF338E +:203D00008FD6E50C409C118FD8E59C1251FF5FEEE59C14AFEEE59C13CC1504F532E6E532FA +:203D2000E617041100C1300500FCC89000C0CC0001EF5F17041100C1F6FCC89000C0CC0089 +:203D400002EF4F8FD6E50C409C118FD8E59C1251FF5FEEE59C14AFEEE59C13CC1505F53276 +:203D6000E6E532E617041100C1300500FCC89000C0CC0001EF1CD9AFF4F1C1D9D6E5FC781C +:203D80004400C03404E6C5300300FCC89000C0CC00008B318F121016C6D7C72006FBF8FF2A +:203DA000D530E6DF418FD8E55C80D1DF2B8FD6E50C409C018FD8E59C0251FF5FEEE59C04B6 +:203DC000AFEEE59C03CC050417A1C1300500FCC89000C0CC0001EF2A17A1C1F6FCC8900082 +:203DE000C0CC0002EF1CD9AFF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CCFA +:203E000000008B318F121006C6D7C72006FBF8FFD531E6DF418FD8E55C80D1DF2B8FD6E55A +:203E20000C409C018FD8E59C0251FF5FEEE59C04AFEEE59C03CC050417A1C1300500FCC825 +:203E40009000C0CC0001EF2A17A1C1F6FCC89000C0CC0002EF1CD9AFF4F1C1D9D6E5FC789A +:203E60004400C03404E6C5300300FCC89000C0CC00008B318F121006C6D7C72006FBF8FF59 +:203E8000D532E6DF418FD8E55C80D1DF2B8FD6E50C409C018FD8E59C0251FF5FEEE59C04D3 +:203EA000AFEEE59C03CC050417A1C1300500FCC89000C0CC0001EF2A17A1C1F6FCC89000A1 +:203EC000C0CC0002EF1CD9AFF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC19 +:203EE00000008B318F121006C6D7C72006FBF8FF4030E601DF418FD8E55C80D1DF2B8FD6F4 +:203F0000E50C409C018FD8E59C0251FF5FEEE59C04AFEEE59C03CC050417A1C1300500FC27 +:203F2000C89000C0CC0001EF2A17A1C1F6FCC89000C0CC0002EF1CD9AFF4F1C1D9D6E5FC69 +:203F4000784400C03404E6C5300300FCC89000C0CC00008B318F121006C6D7C72006FBF8FF +:203F6000FF4031E601DF418FD8E55C80D1DF2B8FD6E50C409C018FD8E59C0251FF5FEEE528 +:203F80009C04AFEEE59C03CC050417A1C1300500FCC89000C0CC0001EF2A17A1C1F6FCC8B0 +:203FA0009000C0CC0002EF1CD9AFF4F1C1D9D6E5FC784400C03404E6C5300300FCC8900034 +:203FC000C0CC00008B318F121006C6D7C72006FBF8FF4032E601DF418FD8E55C80D1DF2BEA +:203FE0008FD6E50C409C018FD8E59C0251FF5FEEE59C04AFEEE59C03CC050417A1C13005DE +:2040000000FCC89000C0CC0001EF2A17A1C1F6FCC89000C0CC0002EF1CD9AFF4F1C1D9D66D +:20402000E5FC784400C03404E6C5300300FCC89000C0CC00008B318F121006C6D7C7200E28 +:20404000FBF8FFD9B9F4F1C1D9D6E5FC784400C03404E6C5300300FCBE9100C04033E601AF +:2040600061E8EE01018FD6E50C409C018FD8E59C0251FF5FEEE59C04AFEEE59C03EB08E6CE +:204080008A049DD8F4D9F6BDDA5118FDEB01AF08E6040500C1ADD8BDDCADDABDDEC014896D +:2040A0009DD8F4D9F6BDDA5110FDEB01ADDEFDCA01AF08E6040600C1ADD8BDDCADDABDDEEC +:2040C000C014899DD8F4D9F6BDDA5108FDEB01ADDEFDCA01EB08E68A079DDCF4DDF6BDDEDA +:2040E000FDCA01ADDABF4CE6ADD8BF4AE6300F00423CE6DF0630A0F9423AE6DF2DF6C13066 +:204100008004C130A0F9C1F6B112FCF382001006AF4CE645AF4AE661F843DF09CC0504CF63 +:204120002FE603EF31CC0505EF2CE6C1B1C1C151A0C1F6B112FC2382001008AF4CE645AF83 +:204140004AE661F843DF0CF50AE5CC0504CF2FE606EF03CC050517A1C1300500FCC890003B +:20416000C0CC0001EF1CD9AFF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC77 +:2041800000008B318F12100EC6D7D7D7C7C12004FBF8FF4011E604DD3440D7E502DF10176B +:2041A000040200C1F6FCC89000C0E7A3EEAE00D9B5F4F1C1D9D6E5FC784400C03404E6C5E5 +:2041C000300300FCC89000C0E7A3EE90008C04D1DD6A8C044C04DE648FD8E55C80D1DF4CA2 +:2041E0008FD6E50C409C028FD8E59C038C044C03DF1251032FD8E59F14E651032FD8E59F18 +:2042000015E6EF178C0491DF0A51032FD8E59F15E6EF0851032FD8E59F14E617040200C10B +:20422000E6A1FCC89000C0CC0101EF2C17040200C1F6FCC89000C0CC0102EF1CD9B0F4F1CA +:20424000C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC01008C01318F121006C65F +:20426000D7C72004FBF8FF8FD8E55C80D1DF238FD6E50C409C028FD8E59C03F514E6F51577 +:20428000E617040200C1E6A1FCC89000C0CC0101EF0E17040200C1F6FCC89000C0CC01023D +:2042A0008C01318F121004C6D7D915E6F112D7D914E6F112D751032F15E6318E12D7510319 +:2042C0002F14E6318E12D7C72004FBF8FF308813BF0EE68FD8E55C80D1DF1D8FD6E50C4027 +:2042E0009C028FD8E59C0317040200C1E6A1FCC89000C0CC0101EF0E17040200C1F6FCC859 +:204300009000C0CC01028C01318F121004C6D7C72004FBF8FF40D7E502DF154011E604DD87 +:204320000F17040200C1F6FCC89000C0E7A3EF3BE513E68FD8E55C80D1DF1D8FD6E50C4069 +:204340009C028FD8E59C0317040200C1E6A1FCC89000C0CC0101EF0E17040200C1F6FCC8F8 +:204360009000C0CC01028C01318F121004C6D7C72004FBF8FF40D7E502DF154011E604DD27 +:204380000F17040200C1F6FCC89000C0E7A3EF3BF513E68FD8E55C80D1DF1D8FD6E50C40F9 +:2043A0009C028FD8E59C0317040200C1E6A1FCC89000C0CC0101EF0E17040200C1F6FCC898 +:2043C0009000C0CC01028C01318F121004C6D7D913E6F112D7C7D9AEF4F1C1D9D6E5FC7806 +:2043E0004400C03404E6C5300300FCC89000C0560066318F12C6D7C7D9AEF4F1C1D9D6E5DC +:20440000FC784400C03404E6C5300300FCC89000C0560066318F12C6D7C72004FBF8FF40B2 +:2044200011E602DF08F50AE5F5ABFFEFFBF510E6E511E6CF12E604E513E6E514E6CF15E616 +:20444000031004C6D7F6420EE661E8B20EE6D7F64218E6DD0EB218E64218E6DF06BF16E605 +:20446000F50DE5F6421CE6DD0EB21CE6421CE6DF06F51AE6F50EE5D7C7880616CF04E67FFC +:20448000669F05E6679F06E6C6D7C7C1C1FBF8FFCC01008C014E10DE1D8C0E0E01318E61E6 +:2044A000090C1489728C0A0E01318E610902146299615901EFDD1004C6D7C7C3C1FBF8FF84 +:2044C000F6614902DF0551A0614900DF0CE661490CDF04F661490ADD2C300F00614902DFD4 +:2044E0000630A0F9614900DF0EF661490CDF0630800461490ADD0EF6614902DF0630015A60 +:20450000614900DF03E7EF01F71004C6D7C72024FBF8FFEB08E68A019C238A029C228A0399 +:204520009DD8F4D9F6BDDA5118FDEB01AF08E6040400C1ADD8BDDCADDABDDEC014899DD8E2 +:20454000F4D9F6BDDA5110FDEB01ADDEFDCA01AF08E6040500C1ADD8BDDCADDABDDEC014E9 +:20456000899DD8F4D9F6BDDA5108FDEB01ADDEFDCA01EB08E68A069DDCF4DDF6BDDEFDCA43 +:2045800001ADDABC20ADD8BC1EEB08E68A079DD8F4D9F6BDDA5118FDEB01AF08E604080024 +:2045A000C1ADD8BDDCADDABDDEC014899DD8F4D9F6BDDA5110FDEB01ADDEFDCA01AF08E694 +:2045C000040900C1ADD8BDDCADDABDDEC014899DD8F4D9F6BDDA5108FDEB01ADDEFDCA010C +:2045E000EB08E68A0A9DDCF4DDF6BDDEFDCA01ADDABC1CADD8BC1AAC2012AC1EBF3AE63337 +:20460000BF3CE6AC1C12AC1ABF42E633BF44E68C23D161E8EE57018C224C4461E8EE4E0143 +:20462000300B0042D4E561E8EE2501AC1CC1AC1AC1AC2012AC1EFCBA440010049261E8EE58 +:20464000F000F6423CE6DF0630015A423AE6DD10300F00423CE6DF0630A0F9423AE6DF1CA3 +:2046600030A0F9BF3AE631CEBF3CE6308004BF42E6F6BF44E65042BFA8F4EF43300202BF26 +:20468000A8F43000A0BF3AE6F6BF3CE6BF42E6E6BF44E6402FE604DD22D9BDF4C1D9D6E50B +:2046A000FC784400C03404E6C5300300FCC89000C0CC0100F1318F12EED400CF2FE605D944 +:2046C000D6E5F1FC1F4D00629C19318EFC6F4D00629C1891DF3E8FD6E50C409C12CC132031 +:2046E00051FF5FA8F49C15AFA8F49C1417041200C1300400FCC89000C0E524E6AC1C12AC18 +:204700001ABF26E633BF28E6F6BF2AE6BF2CE6CC0101EF76D9BDF4F1C1D9D6E5FC78440063 +:20472000C03404E6C5300300FCC89000C0CC0100EF58D9B0F4F1C1D9D6E5FC784400C0340C +:2047400004E6C5300300FCC89000C0CC0100EF3AD9ACF4F1C1D9D6E5FC784400C03404E618 +:20476000C5300300FCC89000C0CC0100EF1CD9B0F4F1C1D9D6E5FC784400C03404E6C53007 +:204780000300FCC89000C0CC01008C01318F121024C6D7C72016FBF8FF4024E601DD0F409F +:2047A00024E602DD094024E60361E8EE4804AFD4E5B1B1BC14BDDCF6BDDEAF2AE6BDD8AF70 +:2047C0002CE6BDDAADDEFDCA01ADDABF2CE6ADD8BF2AE6EB08E68A019C13D92EE6F1A1F1AE +:2047E000609C12AC14BDD8F6BDDA8C139DDCF4DDF6BDDEFD8201E646DADF03F646D861D89A +:20480000EED503AFD4E542A8F4DD23D9ACF4F1C1D9D6E5FC784400C03404E6C5300300FC43 +:20482000C89000C0CC0B00F1318F12EEE9038C1391DF064024E601DD1F8C134E12DD0A8C1E +:2048400012914E1361E8EE71034024E602DD094024E60361E8EE62038C1391DF114024E624 +:2048600001DF0BF6BF50E6BF54EACF24E6028C12914E13DF74300F00423CE6DF0630A0F956 +:20488000423AE6DD64AF3EE6BBF6BC04AC044252E6DE21ABCDD40FF74361F8F4D4C18DD430 +:2048A000C014AC040454E6C5C2146299617900617904EFD8DB40E6AF3EE6BF3AE633BF3C40 +:2048C000E6AF52E6BF50E6AC14BDDCF6BDDEAF2AE6BDD8AF2CE6BDDAADDEFDD901ADDABFD8 +:2048E0002CE6ADD8BF2AE6EF408C12914E13DF39300F00423CE6DF0630A0F9423AE6DF29C0 +:20490000AF54EA612914BF54EAAC14BDDCF6BDDEAF2AE6BDD8AF2CE6BDDAADDEFDD901AD6A +:20492000DABF2CE6ADD8BF2AE6AC140250E6318EBF4EE6F6BC04AC040250E6DB4EE6318C64 +:2049400043DE1AAC04A1A10208E6148972AC040250E60454E6146299617904EFD9AFEAEACD +:20496000441D01DE1ED9BCF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0B91 +:2049800000EF24AFEAEA443F02DC1CD9BBF4F1C1D9D6E5FC784400C03404E6C5300300FCAC +:2049A000C89000C0CC0B00AFD4E542A8F461E8EEEA018C139F2EE6AF2CE64228E6AF2AE67E +:2049C00061F84226E6DF6CCF24E603AC140250E6DB4EE6318C23BF50E6F6BF2AE6BF2CE697 +:2049E0004250E661E8A24EE6F6BC02AC024250E6DE21AC04A1A10208E6148972AC04025054 +:204A0000E60454E6146299AC04A1BC04AC02A1BC02EFD8AC040250E6DB4EE6318C43DE0F9A +:204A2000AC040250E6123954E6FF617904EFE4F6BF50E6AF50E6BF52E6AC140250E6DB4E71 +:204A4000E6318C23BF50E6300F00423CE6DF0630A0F9423AE6DF57E6A1BC02AF54EABDD8EB +:204A6000F6BDDA4244E6ADD861F84242E6DE22AC02A1BC02B10208E6148972A254EAAF5455 +:204A8000EA049FF9146299AC14A1A112AC0243DCCA8FD6E50C409C0C8C139C0D17040C0029 +:204AA000C1E6A1FCC89000C0CC0B01EEEC00D9B9F4F1C1D9D6E5FC784400C03404E6C53091 +:204AC0000300FCBE9100C0FCD88000D2DF653054E6BC08DB3CE6AF3AE6BF3EE633BF40E669 +:204AE000F6424EE6DD4DD9B9F4C1D9D6E5FC784400C03404E6C5300300FCBE9100C0CC0BD5 +:204B000000F0E1C1AC08C1AF3AE6DB3CE6FC7881001004629C07AF3AE6DB3CE60400016182 +:204B2000D8A3BF3AE633BF3CE6AC0881BC08B24EE6EFAD8C07D1DF468FD6E50C409C0C8C39 +:204B4000139C0D17040C00C1E6A1FCC89000C0AC04A1A1BC04F6BC02AC024250E6DE1AACE6 +:204B6000040208E6148973AC02334854E6AC04A1BC04AC02A1BC02EFDFCC0B01EF76D9AA22 +:204B8000F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0B00EF76D9ACF4F193 +:204BA000C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0B00EF58D9B8F4F1C1D9D0 +:204BC000D6E5FC784400C03404E6C5300300FCC89000C0CC0B00EF3AD9B0F4F1C1D9D6E5B5 +:204BE000FC784400C03404E6C5300300FCC89000C0CC0B00EF1CD9AFF4F1C1D9D6E5FC78FB +:204C00004400C03404E6C5300300FCC89000C0CC0B008C0B318F121016C6D7C72004FBF885 +:204C2000FF4024E603DF40E642D4E5DF1C8FD6E50C409C029C0217040200C1E6FCC8900043 +:204C4000C0F524E6E533E6EF3AD9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC890CD +:204C600000C0CC0100EF1CD9AFF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C038 +:204C8000CC01008C01318F121004C6D7E511E6CF12E604E513E6E514E6CF15E603F6BF1839 +:204CA000E6CF1EE604BF16E68F0EE59F1AE6D90DE5F1BF16E68F1AE6314A4C0BDF09341A4D +:204CC000E6895C0F99EF03F51AE6AF16E6314E440B00DF0C510F5F16E6318EBF16E6EF04EE +:204CE000F6BF16E6AF16E6440300DC06301027BF18E6F524E6E530E6E531E6E532E6F534EF +:204D0000E6D7DB0EE6D7308813BF0EE6D7D910E6F112D7D911E6F112D7D912E6F112D7C716 +:204D2000C1C1FBF8FFCC00FFCC01008C014C10DE178C01500AD6124921204E02DF058C016F +:204D40009BEF05615901EFE38B318E121004C6D7C716570066500AD6041C20C1FC134D0003 +:204D6000C489615AD161E8570167318E12C6D7C716570066500AD6041C20C1FC194D00C4F3 +:204D80008A01615AD161E8570167318E12C6D7C716570066500AD612491E205FD7E5D161D6 +:204DA000E88767318E12C6D7C7C1C1FBF8FFCC01008C02500AD612491F20318E12AC0A4385 +:204DC00061C8CC01018C01318E121004C6D7C7C1C1FBF8FFCC00FFCC01008C014E02DE1D22 +:204DE0008C0A5C7F728C015006D661090C14896142DF058C019BEF05615901EFDD8B318E90 +:204E0000121004C6D7C7C1C1FBF8FFCC01008C025006D661090C148A01318E61490A61F82C +:204E2000CC01018C01318E121004C6D7C7C1C1FBF8FFCC0100AC02440300DC18AC02440CA6 +:204E400000DE118C025C01318EE743DF07AC02311E609C018C01318E121004C6D7C7C1C157 +:204E6000FBF8FFCC0100AC02440300DC0CF6614902DF068C022C029C018C01318E12100444 +:204E8000C6D7C7C1C1FBF8FFCC01008C02500AD661090A148A020C03318E42D4E561F8CCAD +:204EA00001018C01318E121004C6D7C7C1C1FBF8FFCC01008C02500AD661090A148A020CFB +:204EC00003318E42D4E5DD0B8A020C02318E42D4E561F8CC01018C01318E121004C6D7C7DC +:204EE000C1C1FBF8FFCC00FFCC01008C014E02DE1A8C01500AD661090C14AA0461490ADF49 +:204F0000058C019BEF05615901EFE08B318E121004C6D7C7C1C1FBF8FFCC01008C02500AE9 +:204F2000D661090AC1FC134D00C489615AD161E8CC01018C01318E121004C6D7C7C1C1FBC7 +:204F4000F8FFCC01008C02500AD661090AC1FC194D00C48A01615AD161E8CC01018C013188 +:204F60008E121004C6D7C7C1C1FBF8FFCC00FFCC01008C014E02DE1A8C015006D661090C09 +:204F800014AA0261490ADF058C019BEF05615901EFE08B318E121004C6D7C7C1C1FBF8FFCB +:204FA000CC01008C025006D661090AC1FC134D00C489615AD161E8CC01018C01318E12107B +:204FC00004C6D7C7C1C1FBF8FFCC01008C025006D661090AC1FC194D00C48A01615AD1619B +:204FE000E8CC01018C01318E121004C6D7C7C1C1FBF8FFCC00FFCC01008C014E0CDE298C9F +:205000000A5C7F728C025006D661090E148C015006D6C312AA040314C2896142DF058C0141 +:205020009BEF05615901EFD18B318E121004C6D7C7C1C1FBF8FFCC01008C025006D661092D +:205040000C148C0A5006D612AA0403148A01318E42D4E561F8CC01018C01318E121004C6F3 +:20506000D7C7C12004FBF8FF8C0E9C01AC0E9C02AC0C1489318E610904148C0299AC0C14A3 +:20508000898199AC0C1489318E610904148C0199AC0C14898199CC03008C034E12DE1D8CFD +:2050A00003318E610910148972AC0C14890E03318E610904146299615903EFDDAC0C148925 +:2050C0000E12991006C6D7C7200AFBF8FFCC09FFEB08E68A019FD8E534BC20C5D9D8E5F191 +:2050E000C15003FCCE4D001004629C0981DF3440D7E502DF1017040200C1F6FCC89000C001 +:20510000CC0102EF68D9ABF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC013C +:2051200000EF4A34BC20C5AFD4E5C18C09318EFC054E001004629C0891DF168C095006D634 +:2051400004BC20148A049EFCAA0261CA629C01EF1CD9ACF4F1C1D9D6E5FC784400C03404E3 +:20516000E6C5300300FCC89000C0CC01008C01318F12100AC6D7C7200AFBF8FFCC09FFEBB8 +:2051800008E68A019FD8E534CE20C5D9D8E5F1C1E6A1FCCE4D001004629C0981DF3240D7A9 +:2051A000E502DF0E17A1C1F6FCC89000C0CC0702EF68D9ABF4F1C1D9D6E5FC784400C03402 +:2051C00004E6C5300300FCC89000C0CC0700EF4A34CE20C5AFD4E5C18C09318EFC054E001A +:2051E0001004629C0891DF168C095006D604CE20148A049EFCAA0261CA629C07EF1CD9ACB4 +:20520000F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC07008C07318F12106A +:205220000AC6D7C72090FBF8FFCC8F00CC8D00CC0301CC0200AFD4E5FC2C4E00629C8ED1D1 +:2052400061F8EE88018C8E9FECE58C8E3119318EC1E6C1AF08E6C1F6C130E2E5FC8A440093 +:205260001008D5ECE561F8EE0A018C8F7309E2E5318E318D128C8F81318E04E2E51489313D +:205280008E03BC868C8F0C029C8F344821C5AC86C1300E00FCDF4E001004629C8C8161F8B3 +:2052A000EEC800344821C58C8C318EFC134F00C0629C8B9161E8EEAA00344821C58C8C313B +:2052C0008EFC3C4F00C0629C8A91DF768C8C500AD60448211417046B00C18A089DD4AA06C8 +:2052E000C18DD49DD6C01417046C00C18DD69EFCC061EAC0629C8934ECE58991998C899150 +:20530000DD228C897309AAF4318EC1D9D6E5FC784400C03404E6C5300300FCC89000C0CCDD +:205320000100EF508C6B318EC117046C00C1AC86C117040300C117040400FC6150001008B8 +:20534000EF2FD9B1F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0100CC022E +:2053600001EF1161598DB0ECE5EF0661598DB0ECE5EEEEFE8C02D1DF708C8D4E8EDF3440D7 +:20538000D7E502DF1017048000C1F6FCC89000C0CC0102EF54D9B0F4F1C1D9D6E5FC78446D +:2053A00000C03404E6C5300300FCC89000C0CC0100EF368FD6E50C409C0417040400C18C6F +:2053C00003318EFCC89000C0CC0101EF1CD9ACF4F1C1D9D6E5FC784400C03404E6C53003D1 +:2053E00000FCC89000C0CC01008C01318F121090C6D7D7C7200AFBF8FFCC09FFEB08E68A3F +:20540000019FD8E534DA20C5D9D8E5F1C1E6A1FCCE4D001004629C0981DF3240D7E502DFCC +:205420000E17A1C1F6FCC89000C0CC0702EF77D9ABF4F1C1D9D6E5FC784400C03404E6C587 +:20544000300300FCC89000C0CC0700EF5934DA20C5AFD4E5C18C09318EFC054E00100462B5 +:205460009C0891DF258C095006D604DA20148C095006D604DA20128A049EFCAA021449001E +:2054800000318E61EA629C07EF1CD9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC8E1 +:2054A0009000C0CC07008C07318F12100AC6D7C7200AFBF8FFCC09FFEB08E68A019FD8E536 +:2054C00034E620C5D9D8E5F1C15003FCCE4D001004629C0981DF3240D7E502DF0E17A1C10A +:2054E000F6FCC89000C0CC0702EF74D9ABF4F1C1D9D6E5FC784400C03404E6C5300300FC22 +:20550000C89000C0CC0700EF5634E620C5AFD4E5C18C09318EFC054E001004629C0891DF06 +:20552000228C095006D604E62014AF08E6A1A1128A049EFCAA0214490000318E61EA629C40 +:2055400007EF1CD9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC07008C79 +:2055600007318F12100AC6D7C72016FBF8FFCC1500CC0203E6A1C1E6C1AF08E6C1F6C130C6 +:20558000E2E5FC8A440010088FE2E5F012D9E3E5F103BC0834D421C5AC08C1E6A1FCDF4E9E +:2055A000001004629C148161F8EE5E01305AF1614908DF0D30210042D4E5DF05CC1301EF86 +:2055C0001034D421C58C14318EFC824E00C0629C138C139161E8EE13018C14500AD612492B +:2055E000D621318EC15003C1AF08E6C1F6C130F0E5FC8A440010088C14500AD61249D62102 +:205600009C0734D421C58C14318EFC134F00C0629C129161E8EEA00034D421C58C14318EB7 +:20562000FC3C4F00C0629C1191DF6F8C14500AD604D4211417040700C18A089DD4AA06C101 +:205640008DD49DD6C01430F0E5C18DD69EFCC061EAC0629C1091DD228C107309AAF4318E01 +:20566000C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0100EF708FD6E50C409CD5 +:20568000038FE2E59C048FE3E59C0517040300C1300300FCC89000C0EF6ED9B1F4F1C1D98D +:2056A000D6E5FC784400C03404E6C5300300FCC89000C0CC0100EF5040D7E502DF10170479 +:2056C0000A00C1F6FCC89000C0CC0102EF6ED9B0F4F1C1D9D6E5FC784400C03404E6C5307B +:2056E0000300FCC89000C0CC0100EF50D9ACF4F1C1D9D6E5FC784400C03404E6C53003003A +:20570000FCC89000C0CC0100EF3240D7E502DF1017040A00C1F6FCC89000C0CC0102EF1CD0 +:20572000D9B0F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC01008C01318FEA +:20574000121016C6D7C7D9AEF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C056F4 +:205760000066318F12C6D7C7D9AEF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000EA +:20578000C0560066318F12C6D7C7200CFBF8FFEB08E68A02318E318D128A03318E03BFEE49 +:2057A000E5EB08E68A019FD8E5343022C5AFEEE5C1300400FC664F001004629C0B8161F8DA +:2057C000EE1F01343022C58C0B318EFC9A4F00C0629C089161E8EED800343022C58C0B31BC +:2057E0008EFCC34F00C0629C079161E8EEA400343022C5300300C1D9D8E5C18C0B318EFCF4 +:20580000ED4F001006629C0981DD57343022C58C09318EC18C0B318EFC3050001004629C36 +:205820000A91DF208C0B5006D6043022148C095006D612AA0403148A049EFCAA0261CA62A8 +:205840009C06EF6BD9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC060019 +:20586000EF4D40D7E502DF0D17C1F6FCC89000C0CC0602EF6BD9ABF4F1C1D9D6E5FC78447C +:2058800000C03404E6C5300300FCC89000C0CC0600EF4DD9B1F4F1C1D9D6E5FC784400C0D4 +:2058A0003404E6C5300300FCC89000C0CC0600EF6040D7E502DF0D17C1F6FCC89000C0CC05 +:2058C0000602EF4DD9B0F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC06004D +:2058E000EF2F40D7E502DF0D17C1F6FCC89000C0CC0602EF1CD9BAF4F1C1D9D6E5FC78445A +:2059000000C03404E6C5300300FCC89000C0CC06008C06318F12100CC6D7C7200AFBF8FFCB +:20592000CC09FFEB08E68A019FD8E534F820C5D9D8E5F1C1E6FCCE4D001004629C0981DF02 +:205940003240D7E502DF0E17A1C1F6FCC89000C0CC0702EF68D9ABF4F1C1D9D6E5FC784405 +:2059600000C03404E6C5300300FCC89000C0CC0700EF4A34F820C5AFD4E5C18C09318EFCA7 +:20598000054E001004629C0891DF168C095006D604F820148A049EFCAA0261CA629C07EF30 +:2059A0001CD9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC07008C0731D3 +:2059C0008F12100AC6D7C7200AFBF8FFCC09FFEB08E68A019FD8E5FC134D00624C04DD32DB +:2059E00040D7E502DF0E17A1C1F6FCC89000C0E7A3EEB600D9B5F4F1C1D9D6E5FC7844008B +:205A0000C03404E6C5300300FCC89000C0E7A3EE980034FE20C5D9D8E5F1C1E6A1FCCE4D8F +:205A2000001004629C0981DF3240D7E502DF0E17A1C1F6FCC89000C0CC0702EF68D9ABF4A7 +:205A4000F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0700EF4A34FE20C5AF8C +:205A6000D4E5C18C09318EFC054E001004629C0891DF168C095006D604FE20148A049EFC4A +:205A8000AA0261CA629C07EF1CD9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC8907E +:205AA00000C0CC07008C07318F12100AC6D7C7C1C1FBF8FF17FCCA690092DF28CC01008CC4 +:205AC00001D1DF178C01318E071489728C01318E610902146299615901EFE4AC0A14CA00B3 +:205AE00001E7EF033204001004C6D7C7C1C1FBF8FF17FCDC690092DF28CC01008C01D1DFAF +:205B0000178C01318E071489728C01318E610902146299615901EFE4AC0A14CA0001E7EF4C +:205B2000033204001004C6D7C7C1200AFBF8FF17040200FCEE690092DF2CCC01008C014C24 +:205B400008DE1A8C01318E070402001489728C01318E61090A146299615901EFE0AC1214B2 +:205B6000CA0008E7EF03320400100CC6D7C7C1200AFBF8FFFCB57000D2DD35CC0900AC124F +:205B800014894E0961D3188C09318E61090A1489728C09318E07A1146299615909EFDF173B +:205BA000A1FCBD700092DF03E7EF08320400EF03320400100CC6D7C7C1200AFBF8FF1704F3 +:205BC0000200FC076A0092DF2CCC01008C014C08DE1A8C01318E070402001489728C0131ED +:205BE0008E61090A146299615901EFE0AC1214CA0008E7EF03320400100CC6D7C7C1200AEC +:205C0000FBF8FFFCB57000D2DD35CC0900AC1214894E0961D3188C09318E61090A148972E3 +:205C20008C09318E07A1146299615909EFDF17A1FC00710092DF03E7EF08320400EF0332F7 +:205C40000400100CC6D7C7C12006FBF8FF17040200FC1F6A0092DF2CCC01008C014C04DE20 +:205C60001A8C01318E070402001489728C01318E610906146299615901EFE0AC0E14CA00B5 +:205C800004E7EF033204001008C6D7C7C12020FBF8FFFCB57000D2DD35CC1F00AC28148921 +:205CA0004E1F61D3188C1F318E6109201489728C1F318E07A114629961591FEFDF17A1FCAC +:205CC000326A0092DF03E7EF08320400EF033204001022C6D7C7C12012FBF8FF17040200E0 +:205CE000FC646A0092DF2CCC01008C014C10DE1A8C01318E070402001489728C01318E617A +:205D00000912146299615901EFE0AC1A14CA0010E7EF033204001014C6D7C7C12010FBF8A0 +:205D2000FF17A1FCC46B0092DF27CC00008B4C0FDE168B318E07A11489728B318E6109107E +:205D4000146299615900EFE5AC1814CA000FE7EF033204001012C6D7C7C1200EFBF8FF1768 +:205D6000040200FCC96B0092DF2CCC01008C014C0CDE1A8C01318E070402001489728C01B1 +:205D8000318E61090E146299615901EFE0AC1614CA000CE7EF033204001010C6D7C7C1C172 +:205DA000FBF8FF17A1FCCE6B0092DF0FAC02148C0199AC0A14CA0001E7EF033204001004E4 +:205DC000C6D7C7C1200CFBF8FF17040200FC106C0092DF2CCC01008C014C0ADE1A8C0131E8 +:205DE0008E070402001489728C01318E61090C146299615901EFE0AC1414CA000AE7EF031D +:205E0000320400100EC6D7C7C12010FBF8FF17A1FC356C0092DF27CC00008B4C0FDE168BC9 +:205E2000318E07A11489728B318E610910146299615900EFE5AC1814CA000FE7EF033204CB +:205E4000001012C6D7C7C12008FBF8FF17040200FC3A6C0092DF2CCC01008C014C06DE1AE1 +:205E60008C01318E070402001489728C01318E610908146299615901EFE0AC1014CA0006C3 +:205E8000E7EF03320400100AC6D7C7C12006FBF8FF17040200FC536C0092DF2CCC01008CCE +:205EA000014C04DE1A8C01318E070402001489728C01318E610906146299615901EFE0AC30 +:205EC0000E14CA0004E7EF033204001008C6D7C7C12012FBF8FF17FC666C0092DF29CC1106 +:205EE000008C114C11DE178C11318E071489728C11318E610912146299615911EFE3AC1AF7 +:205F000014CA0011E7EF033204001014C6D7C7C12016FBF8FFFCB57000D2DD35CC1500AC80 +:205F20001E14894E1561D3188C15318E6109161489728C15318E07A1146299615915EFDF54 +:205F400017A1FC42710092DF03E7EF08320400EF033204001018C6D7C7C12010FBF8FF17A4 +:205F6000A1FC7F6C0092DF27CC00008B4C0FDE168B318E07A11489728B318E610910146220 +:205F800099615900EFE5AC1814CA000FE7EF033204001012C6D7C7C1200EFBF8FF17040296 +:205FA00000FC846C0092DF2CCC01008C014C0CDE1A8C01318E070402001489728C01318EFA +:205FC00061090E146299615901EFE0AC1614CA000CE7EF033204001010C6D7C7C12012FB83 +:205FE000F8FF17040200FC896C0092DF2CCC01008C014C10DE1A8C01318E0704020014895B +:20600000728C01318E610912146299615901EFE0AC1A14CA0010E7EF033204001014C6D729 +:20602000C7C1200EFBF8FF17040200FC1A6E0092DF2CCC01008C014C0CDE1A8C01318E077D +:206040000402001489728C01318E61090E146299615901EFE0AC1614CA000CE7EF03320413 +:20606000001010C6D7C7C12012FBF8FF17040200FC1F6E0092DF2CCC01008C014C10DE1AC6 +:206080008C01318E070402001489728C01318E610912146299615901EFE0AC1A14CA001083 +:2060A000E7EF033204001014C6D7C7C1200AFBF8FF17A1FCB06F0092DF2ACC09008C094C48 +:2060C00008DE188C09318E07A11489728C09318E61090A146299615909EFE2AC1214CA00B0 +:2060E00008E7EF03320400100CC6D7C7C1200AFBF8FFFCB57000D2DD35CC0900AC121489F7 +:206100004E0961D3188C09318E61090A1489728C09318E07A1146299615909EFDF17A1FCB5 +:2061200085710092DF03E7EF08320400EF03320400100CC6D7C7C12012FBF8FF17A1FCC9D7 +:206140006F0092DF2ACC11008C114C10DE188C11318E07A11489728C11318E610912146208 +:2061600099615911EFE2AC1A14CA0010E7EF033204001014C6D7C7C12012FBF8FF1704029D +:2061800000FCC8710092DF2CCC01008C014C10DE1A8C01318E070402001489728C01318ECB +:2061A000610912146299615901EFE0AC1A14CA0010E7EF033204001014C6D7C7C12006FB9D +:2061C000F8FF17040200FCE26F0092DF2CCC01008C014C04DE1A8C01318E07040200148929 +:2061E000728C01318E610906146299615901EFE0AC0E14CA0004E7EF033204001008C6D778 +:20620000C7C12006FBF8FFFCB57000D2DD35CC0500AC0E14894E0561D3188C05318E610958 +:20622000061489728C05318E07A1146299615905EFDF17A1FC0B720092DF03E7EF083204FC +:2062400000EF033204001008C6D7C7C12006FBF8FF17040200FCFB6F0092DF2CCC01008C48 +:20626000014C04DE1A8C01318E070402001489728C01318E610906146299615901EFE0AC6C +:206280000E14CA0004E7EF033204001008C6D7C7C12006FBF8FFFCB57000D2DD35CC0500D4 +:2062A000AC0E14894E0561D3188C05318E6109061489728C05318E07A1146299615905EF64 +:2062C000DF17A1FC4E720092DF03E7EF08320400EF033204001008C6D7C7C1C1FBF8FF17B4 +:2062E000A1FC14700092DF26CC00008BD1DF168B318E07A11489728B318E61090214629903 +:20630000615900EFE6AC0A14CA0001E7EF033204001004C6D7C7C1C1FBF8FF17A1FC1F701B +:206320000092DF26CC00008BD1DF168B318E07A11489728B318E610902146299615900EF3A +:20634000E6AC0A14CA0001E7EF033204001004C6D7C7C1C1FBF8FF17A1FC2A700092DF26E2 +:20636000CC00008BD1DF168B318E07A11489728B318E610902146299615900EFE6AC0A14E1 +:20638000CA0001E7EF033204001004C6D7C7C1C1FBF8FF17A1FC36700092DF26CC00008BEF +:2063A000D1DF168B318E07A11489728B318E610902146299615900EFE6AC0A14CA0001E746 +:2063C000EF033204001004C6D7C7C1C1FBF8FF17A1FC43700092DF26CC00008BD1DF168B03 +:2063E000318E07A11489728B318E610902146299615900EFE6AC0A14CA0001E7EF0332042F +:20640000001004C6D7C7C1C1FBF8FF17A1FC50700092DF26CC00008BD1DF168B318E07A176 +:206420001489728B318E610902146299615900EFE6AC0A14CA0001E7EF033204001004C67B +:20644000D7C7C1C1FBF8FF17A1FC5D700092DF26CC00008BD1DF168B318E07A11489728B69 +:20646000318E610902146299615900EFE6AC0A14CA0001E7EF033204001004C6D7C7C12056 +:206480000AFBF8FFFCB57000D2DD35CC0900AC1214894E0961D3188C09318E61090A1489C3 +:2064A000728C09318E07A1146299615909EFDF17A1FC91720092DF03E7EF08320400EF039D +:2064C000320400100CC6D7C7C1200AFBF8FFFCB57000D2DD35CC0900AC1214894E0961D369 +:2064E000188C09318E61090A1489728C09318E07A1146299615909EFDF17A1FCAB720092AE +:20650000DF03E7EF08320400EF03320400100CC6D7C7C1200AFBF8FFFCB57000D2DD35CC2F +:206520000900AC1214894E0961D3188C09318E61090A1489728C09318E07A11462996159B8 +:2065400009EFDF17A1FCC5720092DF03E7EF08320400EF03320400100CC6D7C7C1200AFB63 +:20656000F8FFFCB57000D2DD35CC0900AC1214894E0961D3188C09318E61090A1489728CE9 +:2065800009318E07A1146299615909EFDF17A1FCE0720092DF03E7EF08320400EF03320435 +:2065A00000100CC6D7C7C1200AFBF8FFFCB57000D2DD35CC0900AC1214894E0961D3188C1A +:2065C00009318E61090A1489728C09318E07A1146299615909EFDF17A1FCFB720092DF033F +:2065E000E7EF08320400EF03320400100CC6D7C7C12004FBF8FF17A1FC6A700092DF27CC16 +:2066000000008B4C03DE168B318E07A11489728B318E610904146299615900EFE5AC0C148A +:20662000CA0003E7EF033204001006C6D7C7C12004FBF8FFFCB57000D2DD33CC0300AC0CA3 +:2066400014894E0361D3178C03318E6109041489728C03318E07146299615903EFE017FC33 +:206660006F700092DF03E7EF08320400EF033204001006C6D7C7C1200EFBF8FF1704020013 +:20668000FC74700092DF2CCC01008C014C0CDE1A8C01318E070402001489728C01318E61BE +:2066A000090E146299615901EFE0AC1614CA000CE7EF033204001010C6D7C7C12008FBF80F +:2066C000FF17A1FC79700092DF27CC00008B4C07DE168B318E07A11489728B318E6109082B +:2066E000146299615900EFE5AC1014CA0007E7EF03320400100AC6D7C7C12008FBF8FFFCF8 +:20670000B57000D2DD33CC0700AC1014894E0761D3178C07318E6109081489728C07318E81 +:2067200007146299615907EFE017FC7E700092DF03E7EF08320400EF03320400100AC6D74B +:20674000C7C12004FBF8FF17A1FC83700092DF27CC00008B4C03DE168B318E07A1148972C1 +:206760008B318E610904146299615900EFE5AC0C14CA0003E7EF033204001006C6D7C7C1E1 +:206780002004FBF8FFFCB57000D2DD33CC0300AC0C14894E0361D3178C03318E6109041450 +:2067A00089728C03318E07146299615903EFE017FC88700092DF03E7EF08320400EF033237 +:2067C00004001006C6D7C7C1C1FBF8FF17A1FC8D700092DF26CC00008BD1DF168B318E0711 +:2067E000A11489728B318E610902146299615900EFE6AC0A14CA0001E7EF033204001004DD +:20680000C6D7C7C12004FBF8FF17040200FC92700092DF2CCC01008C014C02DE1A8C013127 +:206820008E070402001489728C01318E610904146299615901EFE0AC0C14CA0002E7EF03EA +:206840003204001006C6D7C7C12004FBF8FF17040200FC97700092DF2CCC01008C014C024C +:20686000DE1A8C01318E070402001489728C01318E610904146299615901EFE0AC0C14CACF +:206880000002E7EF033204001006C6D7C7C1C1FBF8FF17A1FC9C700092DF26CC00008BD17A +:2068A000DF168B318E07A11489728B318E610902146299615900EFE6AC0A14CA0001E7EF23 +:2068C000033204001004C6D7C7C12004FBF8FF17040200FCA1700092DF2CCC01008C014CC3 +:2068E00002DE1A8C01318E070402001489728C01318E610904146299615901EFE0AC0C1417 +:20690000CA0002E7EF033204001006C6D7C7C1C1FBF8FF17A1FCA6700092DF26CC00008BF6 +:20692000D1DF168B318E07A11489728B318E610902146299615900EFE6AC0A14CA0001E7C0 +:20694000EF033204001004C6D7C7C1C1FBF8FF17A1FCAB700092DF26CC00008BD1DF168B15 +:20696000318E07A11489728B318E610902146299615900EFE6AC0A14CA0001E7EF033204A9 +:20698000001004C6D7C7C12004FBF8FF17040200FCB0700092DF2CCC01008C014C02DE1A32 +:2069A0008C01318E070402001489728C01318E610904146299615901EFE0AC0C14CA000284 +:2069C000E7EF033204001006C6D7C7164101118F00A09B81DD03E7EF01F7C6D7C716410110 +:2069E000118F08A09B81DD03E7EF01F7C6D7C716300800C15003C117FC1085001004D2DF91 +:206A000003E7EF01F7C6D7C716300800C1A1C117FC1085001004D2DF03E7EF01F7C6D7C72E +:206A2000161714CA0003CA0102CA0201CA0307E7C6D7C7C1C1FBF8FFCC01008C014C1EDE79 +:206A4000168C01318E6109021489728C01736218BEF4615901EFE48C01D1DF03E7EF01F791 +:206A60001004C6D7C7C12004FBF8FF30209CBBE19C029DD4ABA1BBB11461B8D4118972ACBF +:206A8000041462998C029DD4ABA1BBB11461B8D4118972AC0414629A018C029DD4ABA1BB58 +:206AA000B11461B8D4118972AC0414629A028C029DD4ABA1BBB11461B8D4118972AC0414CE +:206AC000629A038C029DD4ABA1BBB11461B8D4118972AC0414629A048C029DD4ABA1BBB178 +:206AE0001461B8D4118972AC0414629A058C029DD4ABA1BBB11461B8D4118972AC041462DA +:206B00009A068C029DD4ABA1BBB11461B8D4118972AC0414629A078C029DD4ABA1BBB1147F +:206B200061B8D4118972AC0414629A088C029DD4ABA1BBB11461B8D4118972AC0414629A10 +:206B4000098C029DD4ABA1BBB11461B8D4118972AC0414629A0A8C029DD4ABA1BBB1146172 +:206B6000B8D4118972AC0414629A0B8C029DD4ABA1BBB11461B8D4118972AC0414629A0C22 +:206B80008C029DD4ABA1BBB11461B8D4118972AC0414629A0D8C029DD4ABA1BBB11461B880 +:206BA000D4118972AC0414629A0E8C029DD4ABA1BBB11461B8D4118972AC0414629A0FE7AD +:206BC0001006C6D7C716E7C6D7C716E7C6D7C7C1C1FBF8FFCC01FFFC134D00629C0191DF6E +:206BE00008AC0214CA0001EF1A8C014C02DF08AC0214CA0002EF0C8C014C04DF06AC021428 +:206C0000CA00038C0181DD03E7EF01F71004C6D7C7161714CA0036CA0136CA0230CA033038 +:206C2000CA0430CA0530CA0635CA0738CA0839CA0930E7C6D7C716E7C6D7C7161714CA0084 +:206C400035CA0137CA0234CA0332CA0432CA0532E7C6D7C7161714CA0020CA0118CA0206D2 +:206C6000CA0315E7C6D7C716301100C15004C117FC1085001004D2DF03E7EF01F7C6D7C718 +:206C800016E7C6D7C716E7C6D7C7C12004FBF8FF30009CBBE19C029DD4ABA1BBB11461B8FF +:206CA000D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC52 +:206CC00004B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029D30 +:206CE000D4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B846 +:206D0000D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BCF1 +:206D200004B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DCF +:206D4000D4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8E5 +:206D6000D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC91 +:206D800004B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029D6F +:206DA000D4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B885 +:206DC000D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC31 +:206DE00004B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029D0F +:206E0000D4ABA1BBB11461B8D4118972AC04A1BC04B1146299E71006C6D7C716E7C6D7C746 +:206E2000C12004FBF8FF30109CBBE19C029DD4ABA1BBB11461B8D4118972AC04A1BC04B16D +:206E40001462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABE4 +:206E6000A1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4115E +:206E80008972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B1A0 +:206EA0001462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4AB84 +:206EC000A1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D411FE +:206EE0008972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B140 +:206F00001462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4AB23 +:206F2000A1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4119D +:206F40008972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B1DF +:206F60001462998C029DD4ABA1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABC3 +:206F8000A1BBB11461B8D4118972AC04A1BC04B11462998C029DD4ABA1BBB11461B8D4113D +:206FA0008972AC04A1BC04B1146299E71006C6D7C716300800C15005C117FC1085001004C3 +:206FC000D2DF03E7EF01F7C6D7C716301000C15006C117FC1085001004D2DF03E7EF01F75F +:206FE000C6D7C716300400C15007C117FC1085001004D2DF03E7EF01F7C6D7C7163004001E +:20700000C15008C117FC1085001004D2DF03E7EF01F7C6D7C716F6FD08A1629BE7C6D7C7FA +:2070200016E6FD08A1629BE7C6D7C716E6A1FD08A1629BE7C6D7C716300300FD08A1629BEF +:20704000E7C6D7C716300400FD08A1629BE7C6D7C716300600FD08A1629BE7C6D7C716302D +:207060000700FD08A1629BE7C6D7C716E7C6D7C716E7C6D7C716E7C6D7C716E7C6D7C71681 +:20708000E7C6D7C716E7C6D7C716E7C6D7C716E7C6D7C716E7C6D7C716E7C6D7C716E7C6FD +:2070A000D7C716E7C6D7C716E7C6D7C716E7C6D7C716E7C6D7C7560117F112C6D7C7C1C157 +:2070C000FBF8FFCC01008C014C08DE168C01318E6109021489728C01736218BEF46159016E +:2070E000EFE4300800C15003C130BEF4FCD083001004629C01D1DF03E7EF01F71004C6D73A +:20710000C7C1C1FBF8FFCC01008C014C08DE168C01318E6109021489728C01736218BEF49F +:20712000615901EFE4300800C1A1C130BEF4FCD083001004629C01D1DF03E7EF01F710048D +:20714000C6D7C7C1C1FBF8FFCC01008C014C11DE168C01318E6109021489728C017362186B +:20716000BEF4615901EFE4301100C15004C130BEF4FCD083001004629C01D1DF03E7EF01EA +:20718000F71004C6D7C7C1C1FBF8FFCC01008C014C08DE168C01318E6109021489728C0116 +:2071A000736218BEF4615901EFE4300800C15005C130BEF4FCD083001004629C01D1DF039C +:2071C000E7EF01F71004C6D7C7C1C1FBF8FFCC01008C014C10DE168C01318E6109021489F6 +:2071E000728C01736218BEF4615901EFE4301000C15006C130BEF4FCD083001004629C0107 +:20720000D1DF03E7EF01F71004C6D7C7C1C1FBF8FFCC01008C014C04DE168C01318E6109AD +:20722000021489728C01736218BEF4615901EFE4300400C15007C130BEF4FCD08300100431 +:20724000629C01D1DF03E7EF01F71004C6D7C7C1C1FBF8FFCC01008C014C04DE168C013166 +:207260008E6109021489728C01736218BEF4615901EFE4300400C15008C130BEF4FCD0830C +:20728000001004629C01D1DF03E7EF01F71004C6D7C7C1C1FBF8FFAC02148A019C01318EC5 +:2072A000C1F6FD0CA1C0E71004C6D7C7C1C1FBF8FFAC02148A019C01318EC1E6FD0CA1C020 +:2072C000E71004C6D7C7C1C1FBF8FFAC02148A019C01318EC1E6A1FD0CA1C0E71004C6D7E8 +:2072E000C7C1C1FBF8FFAC02148A019C01318EC15003FD0CA1C0E71004C6D7C7C1C1FBF858 +:20730000FFAC02148A019C01318EC15005FD0CA1C0E71004C6D7FCDF8A00D7C7C3C1200CFA +:20732000FBF8FFAC0EBC02AC0CBB8B7F48229C088C017F49229C098C027F4A229C0A8C038E +:207340007F4B229C0B8C085C0F3149728C085CF06162629C078C0A5C0F3149728C0B5CF037 +:20736000314A6162629C068C0A5CF0728C095CF0314A6162629C058C0B5C0F3149728C09D2 +:207380005C0F6162629C04AC0614AC04121010C6D7C7C3C1200CFBF8FFAC0EBC02AC0CBB24 +:2073A0008B5CF8313A7F48229C088C015CF8313A7F49229C098C025CF8313A7F4A229C0A3D +:2073C0008C035CF8313A7F4B229C0B5C073159728C085CF8313A6162629C048C085C07312D +:2073E00059728C0A5C1F6162629C058C095CF8728C0B5CE0315A6162629C068C0A5CF8720F +:207400008C095C076162629C07AC0614AC04121010C6D7C7C3C12010FBF8FFAC12BC06ACCE +:2074200010BC048C047F48229C0C8C057F49229C0D8C067F4A229C0E8C077F4B229C0F8C5A +:207440000D5C033169728C0C5CFC312A6162629C0B8C0C5C033169728C0F5C3F6162629CA3 +:207460000A8C0F5CFC728C0E5CC0316A6162629C098C0E5CFC728C0D5C036162629C08ACB1 +:207480000A14AC08121014C6D7C7C3C1FBF8FF8C0A91DF0AAC0212ABFC1B7300EF0E8C0A72 +:2074A0004C11DF08AC0212ABFC1374001004C6D7C7F6BF8AEABF8CEA7666D161E8EE82005E +:2074C000500CD612F6788EEA66500CD6048EEA14CA0200CA0B00A5A5A5CA000066500CD668 +:2074E000048EEA14A5A5A5CA010066500CD6048EEA14A5A5A5CA020066500CD6048EEA1437 +:20750000A5A5A5CA030066500CD6048EEA14A5A5A5CA040066500CD6048EEA14A5A5A5CAE9 +:20752000050066500CD6048EEA14A5A5A5CA060066500CD6048EEA14A5A5A5CA070086EE03 +:2075400077FFC6D7F588EAD7E588EAD7E586EACF87EA02FCB07400E588EAD7C716F7C6D756 +:20756000C7163489EA89616E99F7C6D7C716667CFF5F89EA9F89EAF7C6D7C7168F89EA9B52 +:20758000F7C6D7C716F7C6D7C7168F86EA9BF7C6D7C7168F87EA9BF7C6D7C71666318FFCD0 +:2075A000AB7700669F87EAF7C6D7C7C12008FBF8FFCC0700D54C2261F8EEBE00CC07008C83 +:2075C000074F4C2261C8EEB100D94C22F1BC048C07500CD612795022BC048C07500CD612CE +:2075E00079502261491061E8EE89004952224E12DD418C07500CD6045022148A0AC1AA0895 +:20760000BBC09C029DD4ABBDDC8DD49DDEF4DFF646DE61F846DCDD62AC14C18C12318EC17A +:20762000AC10C1AB148C029EFC8C08318E61EA1006EF478C07500CD6045022148A06C1AAB2 +:2076400004BBC09C029DD4ABBDDC8DD49DDEF4DFF646DE61F846DCDD21AC14C18C12318E38 +:20766000C1AC10C1AB148C029EFC8C08318E61EA1006EF06615907EE45FF100AC6D7C7C10A +:207680002004FBF8FFCC0300FC857700AC0EC18C0C318EC1AC04FCB686001004629C03FC81 +:2076A0008977008C039161E8EEC100CC02008C024F4D2261C8EEB4008C025016D612796810 +:2076C0002261490461E8EE9D00497C22500CD612AC04788EEA8C025016D612497C22500C1C +:2076E000D6048EEA148C0C9A02CC01008C014E0CDE2C8C01318E61090E1489728C0250166B +:20770000D6046822148A14500CD6048EEA148C01318EA5A5A505146299615901EFCE8C023C +:207720005016D612497C22500CD6048EEA14CA0B018C025016D6046822148A1472E6D2DD6B +:20774000040192DFFCBDDC31FFBDDEAF8AEABDD8AF8CEABDDAADDEFD3902ADDABF8CEAADB3 +:20776000D8BF8AEAEF06615902EE42FF8C03318E121006C6D7D588EADD0A4086EA0161F8D3 +:207780004087EA02D7717BFAD7717AFAD7F59DEAD7E59DEAD7CF9AEA02F59BEAE59CEAE531 +:2077A0009DEAD7C7168F9AEA9BC6D7C7166691DF0AFCE67700669F9AEAEF0D664C02DF080D +:2077C000FCE77700669F9AEAC6D7C7168F9BEA9BC6D7F59BEAD7C716C6D7C7168F9CEA9BA8 +:2077E000C6D7D59DEAD7D7D7C7202CFBF8FF302A00C1500AFCBF8300C5C317FC5F860010C3 +:2078000006CC2B008C2B4C0E61C8EE34018C2B5003D66081318E071489728C2B5003D6F1A7 +:20782000071489610A72F0E108617A9C2A8C2B5003D6F10714898161F8EEF3008C2B500313 +:20784000D6600C02318E0714894E2A61E8EEDF008C2B5003D6F1071489738C2BF0317E3382 +:20786000489EEA895C08D161F8EEB5008C2B5003D66081318E07148981998C2B5003D66000 +:2078800081318E071489728C2B5003D6F10714896102F0E108617A08128C2B5003D6600CA0 +:2078A00002318E071462998C2B5003D66081318E0714894C28DC5C8C2B5003D6F10714CA6B +:2078C00000008C2B5003D66081318E0714CA00FF8C2B5003D66081318E071489728C2B50A7 +:2078E00003D6F10714896102F0E108617A08128C2B5003D6600C02318E071462998C2B31DE +:207900008EFCB47A008C2BF0317E049EEA14CA0101EF288C2BF0317E049EEA14CA0100EF26 +:207920001A8C2BF0317E049EEA14CA0101EF0C8C2BF0317E049EEA14CA010161592BEEC318 +:20794000FE302A00C1500AFCBF8300C5C317FC3386001006102CC6D730DC05BFBAEA30F49B +:2079600001BFBCEAECE87700F642BAEA61E8B2BAEAFD10A1D2DF0AF642BCEADD0AB2BCEA55 +:20798000D730F401BFBCEAD7F642BCEAE6613012D7F642BAEADF0842BCEADF03E6EF01F618 +:2079A00012D7C7C12082FBF8FFCC8000308000C18C823119318EC117FC1085001004CC8124 +:2079C000008C814C08DE2D8C8131290C03F0316E0714AA0244FFFFDF04A944FFFFDD108CE6 +:2079E0008170E1D0DD05311990DFFB6E809C80615981EFCD8C8091DD2A2C02DD292C04DD69 +:207A0000282C08DD282C10DD292C20DD2A2C40DD2B2C72DD0E2C02DD0D2C04DD0C2C08DD31 +:207A200020EF23F7EF23E7EF20E7A3EF1C320300EF17320400EF12320500EF0D320600EFB4 +:207A400008320700EF033207001084C6D7C7C12012FBF8FF8C12F0317E049EEA14896C0902 +:207A6000998C12F0317E12499FEAD1DD438C12F0317E049EEA14CA0100300300C18C120C15 +:207A80000A318EC117041000FC10850010048C12F0317E12499EEA5C089C10300300C18CDC +:207AA000120C0A318EC117041000FCD0830010041014C6D7C71666F0317E049EEA14895C68 +:207AC000FE99C6D7FC917900D2DD16FC598700D2DD08300D00FC4D7A00D7300D00FCB47AD6 +:207AE00000D7F6FD00A1624CA1DC1240BEEA32DE05A0BEEAEF20E6FC4D7A00EF19D5BEEA5C +:207B0000DD0FB0BEEA40BEEA26DC0BCFBEEA25EF05E6FCB47A00F6FD00A1624C5ADE1040C2 +:207B2000BFEA32DE04A0BFEAD7F6FC4D7A00D7D5BFEADD0EB0BFEA40BFEA26DC0ACFBFEAA9 +:207B400025D7F6FCB47A00D7E6FD00A1624C31DC1340C0EA32DE05A0C0EAEF22E6A1FC4DB6 +:207B60007A00EF1AD5C0EADD0FB0C0EA40C0EA26DC0CCFC0EA25EF06E6A1FCB47A00E6FD9E +:207B800000A1624C02DE1240C1EA32DE04A0C1EAD7300300FC4D7A00D7D5C1EADD0EB0C1DA +:207BA000EA40C1EA26DC0CCFC1EA25D7300300FCB47A00D7E6A1FD00A1624C31DC1440C242 +:207BC000EA32DE05A0C2EAEF24300500FC4D7A00EF1BD5C2EADD0FB0C2EA40C2EA26DC0D81 +:207BE000CFC2EA25EF07300500FCB47A00E6A1FD00A1624C02DE1240C3EA32DE04A0C3EA7D +:207C0000D7300600FC4D7A00D7D5C3EADD0EB0C3EA40C3EA26DC0CCFC3EA25D7300600FC4E +:207C2000B47A00D7300300FD00A1624C31DC1440C4EA32DE05A0C4EAEF24300800FC4D7A40 +:207C400000EF1BD5C4EADD0FB0C4EA40C4EA26DC0DCFC4EA25EF07300800FCB47A00300323 +:207C600000FD00A1624C02DE1240C5EA32DE04A0C5EAD7300900FC4D7A00D7D5C5EADD0E5B +:207C8000B0C5EA40C5EA26DC0CCFC5EA25D7300900FCB47A00D7300400FD00A1624C31DC47 +:207CA0001440C6EA32DE05A0C6EAEF24300B00FC4D7A00EF1BD5C6EADD0FB0C6EA40C6EA7F +:207CC00026DC0DCFC6EA25EF07300B00FCB47A00300400FD00A1624C02DE1240C7EA32DE23 +:207CE00004A0C7EAD7300C00FC4D7A00D7D5C7EADD0EB0C7EA40C7EA26DC0CCFC7EA25D735 +:207D0000300C00FCB47A00D7E6FD04A1D2DD09300400FC4D7A00EF07300400FCB47A00E6B5 +:207D2000A1FD04A1D2DD09300700FC4D7A00EF07300700FCB47A00300300FD04A1D2DD086B +:207D4000300A00FC4D7A00D7300A00FCB47A00D7FCE27A00FC487B00FCB47B00FC247C0036 +:207D6000EC967C00FCC47A00FCA94200625C02D1DD15FC087D0040C8EA28DE04A0C8EAD7BB +:207D8000F5C8EAFC507D00D7C71666F0317E12499EEA318E12C6D7C7C12010FBF8FF30107F +:207DA00000C18C10318EC117FC10850010048C1CD1DD638C1C4C07DE5DAC18A1BC18B1143D +:207DC0008C1C99AC18A1BC18B114CA0001AC18A1BC18B114CA000A8C1C9172AC18A1BC18E3 +:207DE000B11462998C1C913119318E07148972AC18A1BC18B11462998C1C91311981318EAF +:207E000007148972AC18A1BC18B1146299AC1A14890C0699EF728C1C81DF69CC1C018C1CE2 +:207E20004C07DE64AC18A1BC18B1148C1C99AC18A1BC18B114CA0001AC18A1BC18B114CADD +:207E4000000A8C1C9172AC18A1BC18B11462998C1C913119318E07148972AC18A1BC18B132 +:207E60001462998C1C91311981318E07148972AC18A1BC18B1146299AC1A14890C069961B2 +:207E8000591CEF9AF792EF01F71012C6D7C7200AFBF8FFEB08E68A029FDCE55C09D1DD4BAF +:207EA0008FD6E50C409C048FD8E59C05CC0609CC01008C014C0EDE178C01318EFC887D00CE +:207EC000625FDCE5D161E8615902615901EFE3CC0701CC08008C029C0917040400C13006CC +:207EE00000FCC89000C0CC0301EF1CD9B0F4F1C1D9D6E5FC784400C03404E6C5300300FC46 +:207F0000C89000C0CC03008C03318F12100AC6D7C7206CFBF8FFEB08E68A029FDCE55C09F3 +:207F2000D161F8EE9F008FD6E50C409C038FD8E59C04CC0509CC0003CC01008C014C0EDE2E +:207F4000728C01318EFC887D00625FDCE5D1DD5E8C01F0316E12498F22726159008B913133 +:207F60008E070403001462998C01F0316E12499022726159008B91318E0704030014629909 +:207F80008C01F0316E12499122726159008B91318E070403001462998C01318EFC887D0046 +:207FA0006159008B91318E07040300146299615901EF8817040300C18B318EFCC89000C0A0 +:207FC000CC0201EF1CD9B0F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0294 +:207FE000008C02318F12106CC6D7C7206CFBF8FF8FD6E50C409C038FD8E59C04CC0509CCFC +:208000000003CC01008C014C0EDE5C8C01F0316E12498F22726159008B91318E0704030032 +:208020001462998C01F0316E12499022726159008B91318E070403001462998C01F0316EC8 +:2080400012499122726159008B91318E070403001462996159008B91318E0704030014CA6D +:208060000009615901EF9E17040300C18B318EFCC89000C0CC0201E1318F12106CC6D7C710 +:20808000202CFBF8FFC717A116F749C6229BA3A7512A614ADFF4C6CC0000CC2B008C2B4C7B +:2080A0000EDE0F8C2BF0317E12399EEA0061592BEFEB302A00C1500AFCBF8300C5C317A1EA +:2080C000FC3386001006D261E86159008BD1DF03E7EF01F7102CC6D7C730520E5200F3FC83 +:2080E000260F006276D1DF0CFC880F00FC940F00FCBE0F0017F112C6D7EC8E0F00C7C120D4 +:2081000004FBF8FF8C044C28DC678C0CD1DD62FCD88000629C03D1DF46CC0200CC01008C08 +:20812000024E0CDE3A717BFA8C040E02318EFC581100629C034C1BDF0D8C040E02318EFC72 +:208140005C1100629C03717AFA8C03D1DF08615902CC0100EF036159018C014C05DCC0FCD9 +:20816000F980008C014C05DC05321A00EF06F7EF033205001006C6D7C7C3C1200CFBF8FF4A +:20818000F661490EDF0630FF9F61490CDE1EE661490EDF0630FF9F61490CDC10F661491821 +:2081A000DD0A8C185C03318E6168DD2CE661490EDF0630FF9F61490CDE5BE661490EDF0681 +:2081C0003008A061490CDC4DF6614918DD478C185C03318E6168DF3DAC16BBAC0EBC04ACC2 +:2081E0000CBC02AC18312E609C06FCD88000629C0BD1DF1B717BFA17FC641100629C0B7180 +:208200007AFA8C0BD1DF05CC0900EF03CC091CFCF98000EF03CC09058C09318EF7333510E2 +:2082200010C6D7C7C3C1200CFBF8FFAC0EBC0AAC0CBC088C1872F3AC16BB33BC02F6614915 +:208240001C61F861491A61F8EE8700F6BC04BC06AC0661491CAC0461F861491ADE74AC0854 +:20826000BDD8AC0ABDDA5108FD0602AB148C029EFD11899DDCF4DDF6BDDEADD8C1ADDAC1D3 +:20828000AC08BDD8AC0ABDDAADDEFD4D02C9DCFF00F6FD2502ADD8312D04F02212C0BDDA51 +:2082A000C0BDD81314A9BDDCAA02BDDEFD4D02ADDABC0AADD8BC08617900F661490061F804 +:2082C000617902617904F6614904DF84617906EE7EFFAC08BDD8AC0ABDDAF6B1BDDCFD4D72 +:2082E00002ADDABC0AADD8BC08AC0A14AC08121010C6D7C7C3C1200CFBF8FFAC0EBC0AAC04 +:208300000CBC08AC16F74361E8520FBB33BC02F661491A61F861491861F8EE8100F6BC04E8 +:20832000BC06AC0661491AAC0461F8614918DE6EAC08BDD8AC0ABDDA5108FD0602AB1489B2 +:208340009DDCF4DDF6BDDEADD8C1ADDAC1AC08BDD8AC0ABDDAADDEFD4D02C9DCFF00F6FDB0 +:208360002502ADD8312D04F02212C0BDDAC0BDD81314A9BDDCAA02BDDEFD4D02ADDABC0AD6 +:20838000ADD8BC08617900F661490061F8617902617904F6614904DF89617906EF84AC08F4 +:2083A000BDD8AC0ABDDAF6B1BDDCFD4D02ADDABC0AADD8BC08AC0A14AC08121010C6D7C7A5 +:2083C00016665006D604F02614A912AA0214C6D7C7C1208AFBF8FFCC05008C92318EFCBF22 +:2083E000830013BB15BC02ABBDD8AC02BDDAC9DC0010300F00FDD901510AFD06028DD89CA8 +:2084000009D1DF05CC0809EF188C0991DF05CC084DEF0E8C094C02DF05CC082AEF03CC0807 +:20842000FF8C094C0361C8EEE0008C08318EC18C09318E31ADBDDC31FFBDDEC9D80010C93E +:20844000DA0F00ADDEFDCA01ADDAC1ADD8C117040A00FC47310010068C09318E31ADBDDCD8 +:2084600031FFBDDEC9D80010C9DA0F00ADDEFDCA01ADD8BDDCDADAABBDD8AC02BDDA13FD14 +:20848000D9018DD89C07CC0600CC05008C054E94DE298C05318E61098A1489728C070E05E4 +:2084A000318E07040A001462998C05318E61098A14890E069C06615905EFD18C067CFF8135 +:2084C0009C068C070E05318E07040A00148C06998C08318EC18C09318E31ADBDDC31FFBD75 +:2084E000DEC9D80010C9DA0F00ADDEFDCA01ADDAC1ADD8C117040A00FC562E001006624CF1 +:2085000011DF03F7EF06F792EF02F792108CC6D7C7C1208AFBF8FFCC05008C92318EFCBFB3 +:20852000830013BB15BC02ABBDD8AC02BDDAC9DC0010300F00FDD901C9DC0004F6FDA30187 +:208540008DD89C09D1DF05CC0809EF188C0991DF05CC084DEF0E8C094C02DF05CC082AEF9C +:2085600003CC08FF8C094C0361C8EEC0008C08318EC18C09318E31ADBDDC31FFBDDEC9D81F +:208580000010C9DA0F00ADDEFDCA01ADDAC1ADD8C117040A00FC47310010068C09318E3104 +:2085A000ADBDDC31FFBDDEC9D80010C9DA0F00ADDEFDCA01ADD8BDDCDADAABBDD8AC02BD77 +:2085C000DA13FDD9018DD89C07CC0600CC05008C054E94DE158C070E05318E07040A001438 +:2085E000890E069C06615905EFE58C067CFF819C068C070E05318E07040A0014894E06DF2F +:2086000028CC05008C054E94DE1C8C070E05318E07040A001489728C05318E61098A1462B1 +:2086200099615905EFDEF7EF06F792EF02F792108CC6D7C7C1C1FBF8FF8C0E318EC1AC0CE0 +:20864000C1AC0AC1AC02FC562E001006629C014C11DF03F7EF058C01318E121004C6D7C79F +:20866000C1FBF8FF8C0C318EC1AC0AC1AC08C1ABFC4731001006F7C0C6D7410111D900A0EE +:20868000F112D7410111D908A0F112D7C7C1C1FBF8FFCC01008C014E0CDE17615901AC0AFD +:2086A000A1BC0AB1148972AC02A1BC02B1146299EFE31004C6D7C7C12012FBF8FFAC12BC1D +:2086C000028C1A3149708C095C0F61689C098C0571FB9C0571EB9C0571DB9C05AC045CE026 +:2086E000F0BC048C095C0F6C809C09AC085CF0F0BC08F6BC068C1A318EC1AC1CC117040AF9 +:2087000000FC8C8600100417040200FC502A0013BBF6614900DF03F7EF01E71014C6D7FCC9 +:208720009F2D0013F1085C02086168DD28AF0C03F1085C08086168DD08D5D2F461F8E5D2B1 +:20874000F4F6420C0361E8BF0C03AF0403085CFC08BF0403D7F5D2F4D7D5D2F4DF02F7D730 +:20876000E7D7C72004FBF8FFCEA040CEA307717BA1CC01FF8EA29B5E019B8B4E01DFF571FB +:208780004AA4CFC502927100C502F6BC02AC02442103DE0600617902EFF38FC6025C80D11B +:2087A000DDF87120C502716AA17100C402716BA4F5C702710BA1CFC802427128C402100430 +:2087C000C6D7C7FC888800FC9E8A00FC388B00FC408B00712301400AE5A5DD5F3055AA416A +:2087E00000114202A1DF07084100114200A1DF323055AA41011142F29FDF07084101114277 +:20880000F09FDF1E717BFAFCAF8A00F50AE5CF0BE5A54100118F02A09EFC11AF00A061CAC1 +:20882000EFF0F50BE5FC3B9200FC8C4C00FCA08800FCC42D00FC8C3400EF17F50BE5FC3BE8 +:208840009200FC8C4C00FCA08800FCC42D00FC7134004008E5A5DF143400E5C5300800C164 +:20886000305907FCB686001004F508E5FC0C8B00FC518B0086664C65DCF2FCD18800FC1AF9 +:2088800089005600EFE6C6D78EA89F0CE5400CE510DD09F50AE5F50BE5F508E5717AFAD733 +:2088A000710B21710201711A21712301D7C7C1C1FBF8FF8C029E31717A303182E302EFFA5B +:2088C000AD1E316EBB717B30710BE3AB121004C6D7C72004FBF8FFF6BBFCAD8800D9EEEA1A +:2088E000F10104F0EA1413B9A0EEEA40EEEA0561C8F5EEEACC03008C034C05DE138C03F01E +:20890000317E04F0EA14A9610900BB615903EFE7305E01BFEAEA1004C6D7E5EDEAD7F400FB +:20892000F401F403F405F407F409F408F40DF40EE53400CF6900BFCF6C00DFF52002E576BF +:2089400000CE20FECE21D3CE23F4CE25F0CE26FFCE2734CE28FECE29BACE2CFFCE2EFED716 +:20896000F51600F51700F51A00F51B00F51D00FC628700FC1E8900FC8F8900FCFC8A00FC95 +:20898000118B00F57800D7717BFAFC608900D77100F000F6BFB60130FF0ABFB401F6BF2AFC +:2089A00002714AE6714BE2715AE6715BE2713AE7713BE3716AE6716BE2717AE6717BE27167 +:2089C0004AE7714BE3717AE7717BE3710AD4710BD0711AD4711BD0712AD4712BD0716AEE2C +:2089E000716AEA717AEF717AEBBF9401CB64FF7CAFBE01085CFB08BFBE01AFBC01085CFBE6 +:208A000008BFBC01AFB801085CFB08BFB801AFBA01085CFB08BFBA01F6BF9801CB68FF7C44 +:208A2000AFBE01085CEF08BFBE01AFBC01085CEF08BFBC01AFB801085CEF08BFB801AFBA08 +:208A400001085CEF08BFBA015A03FE8E235CFE9E23D7AFBA01086C0208BFBA01AFB2010876 +:208A60006C0308BFB201D7AFB401086C0308BFB401AFBA01085CFD08BFBA01D7716BE2718C +:208A80006BE6AFB201086C0408BFB201D7AFB401086C0408BFB401716AE6716BE2D7717BC0 +:208AA000E3717BE7AFB201086C1008BFB201D7AFB401086C1008BFB401717AE7717BE3D7ED +:208AC000E500EBA2FAEAF642FAEA61F8A2FCEAA0FEEA40FEEA64DC06E5FFEAF5FEEAD7AF1C +:208AE0008801BDD8F6BDDA5110FDEB01AFFAEABDDCAFFCEAFD4D02EADADAD8D7710AE47157 +:208B00000BE0710AEC710AE8710BE4D7CEABACD7D77150F000F530FF710AE7710BE38E234F +:208B20006C089E23CE3018CE3220F51000CF1100FFF51200F531FFD7717A30D7717B30D7FE +:208B4000710A30D7710B30D7C716AD1E316EBBC6D74000EB01DF0BF500EBFC638B00FC97FE +:208B60009200D7C7200EFBF8FFFCE48C00FC023200629C029161E8EE5701FC064D00D9D6EB +:208B8000E5F1FC1F4D00629C0D8161F8EE10018C0D318EFC504D00629C0C9161E8EEE1000F +:208BA0008C0D318EFC6F4D00629C0B9161E8EEB20040D7E502DF658C0D318EFC8F4D00624E +:208BC0009C0AD1DF1017040400C1F6FCC89000C0CC0102EF45AFD4E5C18C0D318EFCA84DD0 +:208BE00000C0629C0391DF168C0D500AD6041C20148A089EFCAA0661CA629C01EF63D9AC34 +:208C0000F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0100EF63AFD4E5C130 +:208C20008C0D318EFCA84D00C0629C0391DF168C0D500AD6041C20148A089EFCAA0661CA80 +:208C4000629C01EF58D9ACF4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC01A0 +:208C600000EF6ED9B1F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0100EF75 +:208C800050D9B5F4F1C1D9D6E5FC784400C03404E6C5300300FCC89000C0CC0100EF3240EC +:208CA000D7E502DF1017040400C1F6FCC89000C0CC0102EF1CD9AAF4F1C1D9D6E5FC7844CE +:208CC00000C03404E6C5300300FCC89000C0CC0100FC0494009261F8FC454400FC4F44004A +:208CE000100EC6D7FC024D00F64361F8FC194400D7D7C7C1C1FBF8FF4013EB01DF1ECF137C +:208D0000EB05AC02148FCEEF99AC0A14AFCAEFB9AC0C143002EBB9CC0101EF4E4013EB04E2 +:208D2000DF1ECF13EB05AC02148FCEEF99AC0A14AFCAEFB9AC0C14301AEBB9CC0101EF2A31 +:208D40004012EB01DF21CF13EB05F512EBAC02148FCFEF99AC0A14AFCCEFB9AC0C14300A76 +:208D6000EBB9CC0101EF03CC01008C01318F121004C6D7C7C1C1FBF8FFCC0100AC0A428032 +:208D80002261E8EE8102AC0E1489314A9C014013EB01DD0F4013EB04DD094013EB0561E8A9 +:208DA000EEB7004013EB05DF664094F401DF608C014C03DF5AAC0E14895C0FD1DF36CF945E +:208DC000F4038A01D1DF06CF14EBB0EF08AC0E148A019F14EBAC0E148A024C7FDE098A0257 +:208DE00091819F15EBEF04CF15EB80F596F4F6BFD4EFEF1BAC0E14895C0F91DF06F6BFD4BE +:208E0000EFEF0CF594F4F513EBF512EBF5D7EF8C01D1DF43AC0E14895C0F318EBFCCEF448C +:208E20000800DE33F642CCEFDD2DE512EBF5CFEF9B8B318E42CCEFDE158B81318E61090E6F +:208E40001489728B7362180AEB615900EFE3E59AF430E803BF98F4EEAD018C01D1DF46AC66 +:208E60000E14895C0F318EBFCAEF440800DE33F642CAEFDD2DE513EBF5CEEF9B8B318E4291 +:208E8000CAEFDE158B81318E61090E1489728B73621802EB615900EFE3E59AF430E803BF96 +:208EA00098F4EE62018C019161E8EEC000AC0E14895C0F318E318D128A01318E03BFCAEFAA +:208EC00044B104DC36CF88F430CF89F4028F86229F8AF4CC00038B4C08DE0D8B738F7E22A4 +:208EE0001888F4615900EFEE3488F4C5300800C1AF8422FC7E76001004EF6FAFCAEF44086E +:208F000000DC67F5CEEFF6BFD0EFCC00028B4C08DE168B318E61090E1489DBD0EF481AEB01 +:208F2000A2D0EF615900EFE5E5D2EFCF88F430F589F48F86229F8AF4CC00038B4C08DE0DC2 +:208F40008B738F7E221888F4615900EFEE3488F4C5300800C1AF8422FC7E76001004CF1310 +:208F6000EB03CFD6EF05F6BFD4EFEE9A008C014C0261E8EE91004013EB0361E8EE8800F6D1 +:208F8000BFD4EFAC0E14895C0F728FD2EF5C0F6142DF71A0D2EF8C0C4C08DE1A8C0CD1DDE2 +:208FA00015AFCAEF082E0C083C0012AFD0EF43DE05F513EBEF51CC00018B4C08DE49AFD083 +:208FC000EF42CAEFDE138B318E61090E1489DBD0EF481AEBA2D0EFEF0FCF13EB04E59AF4CD +:208FE00030E803BF98F4EF1FAFD0EF42CAEFDF0FCF13EB04E59AF430E803BF98F4EF0861A4 +:209000005900EFB5F513EB1004C6D7C7C1C1FBF8FFCC0100AC0A42822261E8EEA600AC0E74 +:209020001489314A9C014013EB01DD0C4013EB04DD064013EB05DF4A8C01D1DF43AC0E1474 +:20904000895C0F318EBFCCEF440800DE33F642CCEFDD2DE512EBE5CFEF9B8B318E42CCEF22 +:20906000DE158B81318E61090E1489728B7362180AEB615900EFE3E59AF430E803BF98F4D9 +:20908000EF428C01D1DF3DAC0E14895C0F318EBFCAEF440800DE2DE513EBE5CEEF9B8B31F9 +:2090A0008E42CAEFDE158B81318E61090E1489728B73621802EB615900EFE3E59AF430E866 +:2090C00003BF98F41004C6D7C7C12004FBF8FF4013EB0561E8EEDA00D5D7EF61E8EED200FB +:2090E000F59AF430E803BF98F4F6614904DF06F513EBEEB800AC04440800DE498C049F888B +:20910000F4E6BBAB440800DE0DAB128F7E224888F4617900EFEDF6BBAB614904DE11AB616D +:20912000090C148973AB334889F4617900EFE93488F4C5300800C1AF8422FC7E76001004EE +:20914000F513EBEF68E5D7EFF6BBAB614904DE11AB61090C148973AB3348D8EF617900EF3A +:20916000E9AC04BF90F40C109F88F451FF5E049F89F4F6BF92F4AF92F4440600DE11DB92F8 +:20918000F449D8EFDB92F4488AF4A292F4EFE73488F4C5300800C1AF8422FC7E76001004DF +:2091A000E5D6EFF6BFD4EFE595F4E594F4CC0300EF03CC03018C03318F121006C6D7C7C185 +:2091C000C1FBF8FF4013EB05DF65D5D7EFDF60AC02440800DE548C029F88F4CC00018B4C02 +:2091E00008DE0D8B738F7E221888F4615900EFEECC00008B318E614902DE158B318E6109BB +:209200000A1489728B8173621888F4615900EFE33488F4C5300800C1AF8422FC7E76001071 +:2092200004CC0100F6BF98F4EF08CC0101EF03CC01018C01318F121004C6D7C75600664CB8 +:2092400008DE14723802EB003888F40038D8EF00381AEB0086EFE7F513EBF514EBCF15EB7B +:209260000AF6BFCAEFBFCCEFF5CEEFF5CFEFBFD0EFF5D2EFBFD4EFF5D6EFF5D7EFBF90F429 +:20928000BF92F4F594F4F595F4F596F430E803BF98F4F59AF4C6D7C74013EB03DF2040D66C +:2092A000EF05DF12AF8A2242D4EFDE05F513EBEF0DA2D4EFEF08CFD6EF05F6BFD4EF409A50 +:2092C000F401DF1BAF8C224298F4DE0EF513EBF59AF430E803BF98F4EF0BA298F4EF06305F +:2092E000E803BF98F44013EB0561E8EE14014094F401DF2540D6EF01DF18AF882242D4EF81 +:20930000DE0BF594F4F513EBF5D7EFEF0CA2D4EFEF07E5D6EFF6BFD4EF4094F40361E8EEBF +:20932000E000A096F4D514EB61F8EECB008F15EB4F96F461C8EEBE00E596F4AF90F4240733 +:209340000012AF92F443DE5551200F95F49F88F45600664C07DE14A292F4DB92F449D7EF93 +:2093600072668173621888F486EFE73488F4C5300800C1AF8422FC7E76001004A095F434AB +:2093800095F4895C0F994014EB01DF0CE594F4F6BFD4EFE5D6EFEF6AB014EBEF65AF90F46E +:2093A0002292F4607751200F95F49F88F45601664C08DE0A738F7E221888F486EFF156001F +:2093C00066614FDE14A292F4DB92F449D7EF72668173621888F486EFE73488F4C530080022 +:2093E000C1AF8422FC7E76001004F594F4F513EBF5D7EFF514EBEF0AE594F4F6BFD4EFE571 +:20940000D6EFC6D7C7D513EBDF045601EF02560017F112C6D7FFFFFFFFFFFFFFFFFFFFFF23 +:20942000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +:20944000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:20946000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +:20948000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +:2094A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +:2094C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +:2094E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:20950000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +:20952000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +:20954000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +:20956000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +:20958000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +:2095A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +:2095C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +:2095E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +:20960000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +:20962000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +:20964000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +:20966000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +:20968000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:2096A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:2096C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:2096E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +:20970000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +:20972000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +:20974000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +:20976000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +:20978000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +:2097A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +:2097C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +:2097E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:20980000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +:20982000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +:20984000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +:20986000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +:20988000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +:2098A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +:2098C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:2098E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +:20990000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +:20992000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +:20994000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +:20996000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +:20998000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +:2099A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +:2099C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +:2099E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +:209A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +:209A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +:209A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +:209A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +:209A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +:209AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +:209AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +:209AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +:209B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +:209B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +:209B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +:209B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +:209B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +:209BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +:209BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:209BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +:209C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +:209C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +:209C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +:209C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:209C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +:209CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +:209CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +:209CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +:209D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +:209D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +:209D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +:209D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +:209D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +:209DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +:209DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +:209DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +:209E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +:209E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +:209E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:209E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +:209E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +:209EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +:209EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +:209EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +:209F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:209F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:209F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +:209F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +:209F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +:209FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +:209FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +:209FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 :00000001FF - \ No newline at end of file diff --git a/ECU_APP/OutPut/FlsDrv.s19 b/ECU_APP/OutPut/FlsDrv.s19 new file mode 100644 index 0000000..89be07c --- /dev/null +++ b/ECU_APP/OutPut/FlsDrv.s19 @@ -0,0 +1,38 @@ +S01100000000486578766965772056312E3009 +S32500005A010102214E34FC0F009BFC0F00ADFC0F002CFD0F0071109008D70071189008D70050 +S32500005A21C7C5C3C1712090088EFDC1410F36B4FA32B4FB34800A11ABB9A7A7A5A51743DFC1 +S32500005A41F5C09EFDC0C2C4C6D700C7C5C3C1713090088EFDC1410F36B4FB3234FC34800B21 +S32500005A61EED3FF00C7C5C3C1721516348008F6B9A5A53544C00835DFF68EFDC1629EFD3138 +S32500005A8182A13DF1114E0261E8710091089F0308114E0061E8E19F010830800814BF040888 +S32500005AA1118C0199410E114FE8FFDC1411F9E9FF6142DC0C5200FCF8FF0E71009008EF0258 +S32500005AC15205C09EFDC062C2C4C6D7FFC35204EF0DC35200EF08C35202EF03C35206FE275F +S32500005AE10061F8EC800A0F511FC2D700C151FF500FEF1AC151475007EF13C151475007EFEE +S32500005B010CC151475047EF05C151F750075F90086148C0D7C7C5C18EFC758EFD74CEFC0FD3 +S32500005B2169740B61CBFCC4080F624CFFDD4771489008717890088F9008315539510F9EFCF0 +S32500005B41AF920861CB5203EF065206EF025208A80016410E11AFE6FF47DC1817312D9F02D9 +S32500005B6108609F0108F50008F50308300004BF0608EF655205659EFC649EFDC062C4C6C2F9 +S32500005B81D7A800168C00708C01BF04088C025C03DFE18C05D1DFDC8C06D1DDD74C41DED3F6 +S32500005BA170F1312DBF0608B1B1C5148C02708C03BF000805358C049F02081C003516157064 +S32500005BC1C4DCB0410E66113FDFFF67113FE0FF60113FE1FFDE9D520413FCF8FF0E624CFFD3 +S32500005BE1DF938F910831031071409008604C0361F871709008EE7DFFFCC4080FEFDF0000E7 +S32500005C010000000000000000B10AB50AB90AED0A910A0000C7C5C18EFC758EFD74CEFC0F8A +S32500005C2169F80B61CB308008BF04085210FCF8FF0ED2DF14635F80089F8008635C0161E8A0 +S32500005C41710080085211EF1271589008659EFC649EFDC062C4C6C2D75213FCF8FF0E624C28 +S32500005C61FFDF0C8F910831031571409008EFDD8F90083155D7510F9EFCAF920861CBFCC4FA +S32500005C81080FEFDA0000000000000000910BC40B00000000C1201414C80A0F8A2198008AFB +S32500005CA12298018A2398023024FAB808CEFC0FAEF8143624FA510F61FA9803D1DF3030D4AC +S32500005CC1F9B804C8060FCEFC0F36D4F961FACEFC0F30E0F9B810C8120F36E0F961FACEFC2D +S32500005CE10F300AFAB80CC80E0F360AFA61FAA814148803705110BA041016D7C1CEFC0F3665 +S32500005D01DAF961FAC4C5300020BA04C6D7C1200814AA0E12316CAA0C1631AE0360980117F8 +S32500005D215C036168DD058801819801AA0A12316CAA0831AE03609803F198008801708800B3 +S32500005D416148DD45150414001615041200148B9EFCA91661FA3091FAB804C8060FCEFC0F83 +S32500005D61C0C188036108318E3691FA61FA9802D1DF0DA80814300030BA04880081EFBAA839 +S32500005D8108148802705130BA04100AD7C12012148A085C0361E8EEB000AA10B804B806AAF9 +S32500005DA10AB800AA08B802B808A800B80AAA0E16440000AA0C1261F8440001DC250400FF08 +S32500005DC1BA0C1761C8B1BA0EC80C40A804040001BA10A802040001BA08A80061D8A1BA0AF7 +S32500005DE1EF191731ED1613312E0716625C03DD0317A11666980CF6BA0EBA0C15041400167A +S32500005E0115041200148B9EFCA91661FA309BFAB80EC8100FCEFC0F369BFAAEF804060061D6 +S32500005E21FA9800D1DF1AA81214300040BA04AA0E6168AA0C61F8616861E8EE5CFF1014D71D +S32500005E41A81214C0C15140EF03300540BA04EFEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S32500005E61FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S705FFFFFFFFFE diff --git a/ECU_APP/OutPut/HS550_L_SW0101.S19 b/ECU_APP/OutPut/HS550_L_SW0101.S19 new file mode 100644 index 0000000..db3ec7b --- /dev/null +++ b/ECU_APP/OutPut/HS550_L_SW0101.S19 @@ -0,0 +1,4105 @@ +S00E00004543555F41505020533139F7 +S3150000A000D8A5000098A6000098A6000098A6000013 +S3150000A01098A6000098A6000098A6000098A6000042 +S3150000A02098A6000098A6000098A6000098A6000032 +S3150000A03098A6000098A6000098A6000098A6000022 +S3150000A04098A6000098A6000098A6000098A6000012 +S3150000A05098A6000098A600009AA60000A1A60000F7 +S3150000A06098A6000098A60000A2A6000098A60000E8 +S3150000A07098A6000098A6000098A6000098A60000E2 +S3150000A08098A6000098A6000098A6000098A60000D2 +S3150000A09098A6000098A6000098A600008CA60000CE +S3150000A0A098A600008DA600008EA600002CA6000033 +S3150000A0B02BA6000098A6000098A6000098A600000F +S3150000A0C098A6000098A6000098A6000098A6000092 +S3150000A0D098A6000098A6000098A6000098A6000082 +S3150000A0E098A6000098A6000098A6000098A6000072 +S3150000A0F098A6000098A6000098A6000098A6000062 +S3090000A100AA5555AA57 +S3150000A10441070000FFFFFFDF02800180DF07000038 +S3150000A114FFFFFFDF0281028003040000FFFFFFDF71 +S3150000A124028203806D020000FFFFFFDF02830480CA +S3150000A13400040000000080D4028405808080820030 +S3150000A14407070302031040C20000070703020111B8 +S3150000A154B3C20000060701020227A6C400000507D1 +S3150000A164030303281FC5000007070302013EFFC9B6 +S3150000A174000007070302028571CA000007070303EC +S3150000A184002226C3000006030104002E97C5000022 +S3150000A194020701040331BBC80000020101050034B3 +S3150000A1A46FC0000002010103003670C00000020106 +S3150000A1B40101003771C000000102BCB600000202B2 +S3150000A1C436B700000302D0B70000010230B8000021 +S3150000A1D4030230B8000001033EE500000203A9E5CE +S3150000A1E400000A0251E600000102A7B800000206B8 +S3150000A1F4D7B90000000372BD0000010372BD000060 +S3150000A204030372BD00000002A3BE00000102DABE11 +S3150000A2140000020217BF0000010854BF0000030437 +S3150000A22469BF00000403020000637FD20000040338 +S3150000A23402000863BCD20000040302000B63F9D2D7 +S3150000A2440000040302000C6336D30000040302007A +S3150000A2540E6373D300000707090094F142CD000092 +S3150000A264070705008AF1B8CD000007070A0097F131 +S3150000A27436CC000007070D0088F192CF00000707CF +S3150000A2840A0091F1A6CE0000070704000117BFD605 +S3150000A2940000070708000217FAD6000007070100A6 +S3150000A2A4061735D7000007070200071757D700001F +S3150000A2B407070100081792D70000070701000917CE +S3150000A2C4B4D70000070701000B17D6D7000007070D +S3150000A2D4060095F192CF00000707050093F1A6CE7C +S3150000A2E4000007070800000206CB00000707080065 +S3150000A2F4010226CB000007070A0080F171CC00009A +S3150000A3040707010086F122CD0000070703008BF141 +S3150000A314F3CD00000707110090F12ECE00000707C9 +S3150000A324100089F17DCD00000707100098F10AD0CE +S3150000A33400000707040099F1AFD0000007070400E6 +S3150000A3449DF127D100000603080010F181CB00001F +S3150000A3540603110090F169CE00000603100098F17F +S3150000A36462D000000603040099F1EAD00000060357 +S3150000A37404009DF162D1000000000000000000000E +S3150000A384000000000000000000000000010D6CBB8E +S3150000A39400000205C3BB00000305C3BC00000104A2 +S3150000A3A46DBB0000020518BC0000030519BD0000C2 +S3150000A3B4010406BB000002046EBB000003046DBC6E +S3150000A3C4000001086FBD0000020570BD0000030512 +S3150000A3D471BD000006040302B4A32020202020201F +S3150000A3E42020202020202020202020202020202063 +S3150000A3F420202044414D494E47414320202020201F +S3150000A40420202020202020202020202000010120A0 +S3150000A4140001012020202020202020000102030426 +S3150000A42405060708090A0B0C0D0E0F10111213145A +S3150000A434151806150201010051070800EEE7000091 +S3150000A44400000000DF07080095E900000000000096 +S3150000A4545907080000000103016400000000000021 +S3150000A464000000000300AA005107DF0759070A008D +S3150000A4744B009600881300F0061601F006170291A9 +S3150000A48481140391811204918171059183120691BD +S3150000A49483140791837108918412099184140A9193 +S3150000A4A484710B9186110C9186140DC07300000003 +S3150000A4B40000000000000000000000000000000092 +S3150000A4C400000000000000000000FFFFE803F401A4 +S3150000A4D46400FFFF001D3A2774694E53E8F5D2CF96 +S3150000A4E49C81A6BBCDD0F7EAB9A4839E25381F026A +S3150000A4F4514C6B76879ABDA0F3EEC9D46F7255485A +S3150000A5041B06213C4A57706D3E230419A2BF988549 +S3150000A514D6CBECF1130E2934677A5D40FBE6C1DC39 +S3150000A5248F92B5A8DEC3E4F9AAB7908D362B0C1129 +S3150000A534425F78659489AEB3E0FDDAC77C61465B19 +S3150000A5440815322F5944637E2D30170AB1AC8B9609 +S3150000A554C5D8FFE2263B1C01524F6875CED3F4E9F9 +S3150000A564BAA7809DEBF6D1CC9F82A5B8031E3924E9 +S3150000A574776A4D50A1BC9B86D5C8EFF24954736ED9 +S3150000A5843D20071A6C71564B1805223F8499BEA3C9 +S3150000A594F0EDCAD735280F12415C7B66DDC0E7FAB9 +S3150000A5A4A9B4938EF8E5C2DF8C91B6AB100D2A37A9 +S3150000A5B464795E43B2AF8895C6DBFCE15A47607D99 +S3150000A5C42E3314097F6245580B16312C978AADB089 +S3090000A5D4E3FED9C4FF +S3150000A5D8CBF820FEFC66AE003686E530F4F0EF04D4 +S3150000A5E8CC0000A747DFF93620FE3020FEEF04CC6A +S3150000A5F80000A747DFF94100327600EF08B311499A +S3150000A6089AF34810E5F643DFF44100320000EF08FC +S3150000A618B3114910F44820FEF643DFF4FC6BAE0094 +S3150000A628F6EFFED730F401BF6AF032A2F0E1FCD3B0 +S3150000A638AC00AFA2F0445107DD0544DF07DF2C4428 +S3150000A648DF07DF1240ABF03EDF0C40ACF080DF06E0 +S3150000A658FCD3BE00EF0F128FA9F0314A7034AAF06E +S3150000A668F1FC85DF00E5B3E5E5ABE53000FC02A2C9 +S3150000A678F0448000DE0DE5A9E5E15FABF09FB2E5A9 +S3150000A688E5ABE5D7D7D7345803A9085CEF08B9D79F +S3130000A69800D7E594E5EC3AAF00D7EC4FF3009F +S3150000A6A6C116F645DD094900009BA3A7B5EFF3C021 +S3060000A6B6D7C6 +S3060000A6B7FF9D +S3150000A6B87100900016BF04088C019F0108E5030885 +S3150000A6C8F2FCF8FF0E62CF800804D716E503088C63 +S3150000A6D802088C03BF0408340010CF02080F8C064A +S3150000A6E89F81084C03DD2415080E00081E01BF00D3 +S3150000A6F808148C04088C05BF06081251004E06DDA6 +S3150000A7081BF98108FCF8FF0E62EF20300004BF0633 +S3150000A718088C003129F005BF0008EFE5FB040800A6 +S3150000A728899BA7A5B3F643DFF75100D7FC04F00EC3 +S3130000A73862D7FC08F00E71089000F58008D775 +S3150000A74616C80300AEF82761D339315E12F643DD2B +S3150000A75627BBBC02BC04BC06BC08BC0ABC0CBC0EAF +S3150000A766BC10BC12BC14BC16BC18BC1ABC1CBC1E45 +S3150000A7763704200037B3EFD6AEF847DD06F6BBA79B +S3150000A786A7EFF5D7C1200A13C30400F0121561D846 +S3150000A796A104F0FF4400001361F844001061C8EEFE +S3150000A7A6FA008F86E570D1DF29C80A20C80B00AEED +S3150000A7B6F8040A00FCB8A600C80808A8000CF0B8F9 +S3150000A7C602A812B806AEF8A1A1FCD3A60073E586C8 +S3150000A7D6E5E090DF49634CFFDF07FC34A70073EF23 +S3150000A7E6F44C1BDF18C80803A8000CF031AEB802FB +S3150000A7F6AEF8A1A1FCD3A60073CF86E502D1DF1E73 +S3150000A806C80804A8000CF0B802A812B806A80CB826 +S3150000A81604AEF8A1A1FCD3A60073CF86E5038F8606 +S3150000A826E54C02DF2F634CFFDF07FC34A70073EF0E +S3150000A836F4D1DF6BC80804A8000CF0B802A812B859 +S3150000A84606A80CB804AEF8A1A1FCD3A60073CF8661 +S3150000A856E50351034C03DF2B634CFFDF07FC34A7EC +S3150000A8660073EFF4D1DF38C80806A8000CF0B8026A +S3150000A876A812B806AEF8A1A1FCD3A60073CF86E54A +S3150000A8860451044C04DF1883DF07FC34A70073EF7A +S3150000A896F6FC3AA700F586E55111EF04F586E5E1E3 +S3150000A8A6100ED7C1200C130400F0B8001561D8A10C +S3150000A8B604F0FFF743A80061F844001061C8EE9B58 +S3150000A8C600C80A20C80B00AEF8040A00FCB8A600A9 +S3150000A8D6C80808A800B802A812B806AEF8A1A1FCD6 +S3150000A8E6D3A6004CFFDF06FC34A700EFF64C1BDFB1 +S3150000A8F61BC80803A80031AEB802AEF8A1A1FCD366 +S3150000A906A6004CFFDF06FC34A700EFF6D1DD0BE10F +S3150000A9169800FC3AA7008800EF43C80804A800B8C8 +S3150000A92602A812B806A80CB804AEF8A1A1FCD3A6D4 +S3150000A936004CFFDF06FC34A700EFF6D1DFD1C808CE +S3150000A94606A800B802A812B806AEF8A1A1FCD3A6BE +S3150000A95600980081DFBCFC34A700EFF5E1100ED7A6 +S3150000A966C12006C3C48F9000718CA80C12DC2D364C +S3150000A9769000F67182B804B802A804440000A80242 +S3150000A98661F8440F00DE1500A804B800A802040109 +S3150000A9960016A80061D8A1B80417EFDBF6B800F1D7 +S3150000A9A643DE0FA80616899BA5A717B806A800A119 +S3150000A9B6EFEB1008D72006AF2A036071BC300500FE +S3150000A9C6DC19AF2A0360312515342603A9085CFB7A +S3150000A9D608B9AA0460312506300400EEDB00AF088C +S3150000A9E6036031250F340403A9085CFB08B9AA04E1 +S3150000A9F6603123E4340003300204BA22F6BA24A1F5 +S3150000AA06B9303A01BA02300500BA30AA8AB804AAA1 +S3150000AA168A085CFE08BA8A30A00314BF88E5C80215 +S3150000AA26053004A1B800C6C7ABB917A1A116EB88B5 +S3150000AA36E5ABBA02A8001204040016EB88E5ABBA29 +S3150000AA46041304060016EB88E5ABBA0613040800E1 +S3150000AA5616EB88E5ABBA0813040A00EB88E516A8D8 +S3150000AA6600040C00B800ABBA0A300C000288E514E4 +S3150000AA76BF88E58802919802DFAC340403A804BABD +S3150000AA8686300400BA2E300210BA345112BA365045 +S3150000AA9604BA4CE6BA4E500EBA76AA226C035C038A +S3150000AAA6085C0708BA22A951FF085C0708B9AA027A +S3150000AAB604A100BA02FE4103F61006D7AF2A0360C8 +S3150000AAC6310513342603A9085CFC08B9AA0460718B +S3150000AAD68C300400DC26F52C03D540A1DD0934387C +S3150000AAE603A9086C0108B9D541A1DD09343A03A9C1 +S3150000AAF6086C0108B94042A181DD02F6D73450033D +S3150000AB06A9086C0108B9EFF3AF08036031051334E1 +S3150000AB160403A9085CFC08B9AA0460718C30040019 +S3150000AB26DC074042A182DD02F6D7345003A9086C41 +S3150000AB360108B9EFF32004318EC3C4B80012046CC1 +S3150000AB460316CC00008BD1DF56368A03314CABB8E0 +S3150000AB5602AB086C0108BB130C0616A9BB1304024C +S3150000AB660616AA02BB1304060616AA06BB13040893 +S3150000AB760616AA08BB13040A0616AA0ABB13040C71 +S3150000AB860616AA0CBB13040E0616AA0EBB348A03B7 +S3150000AB96A802B9A80004640314F6CA0001EF03303C +S3150000ABA6FEFF1004D7318E0464031489719A99F650 +S3150000ABB6D7318E046C0314F7895C06319E4361F81F +S3150000ABC6D7CA0000D714AF580360311337368A0345 +S3150000ABD6AB12AB086C0108BBA9BFE005AA02BFE22F +S3150000ABE605AA06BFE605AA08BFE805AA0ABFEA053A +S3150000ABF6AA0CBFEC05AA0EBFEE0513BB30FF00BFBD +S3150000AC065C03F0D7E6A1D7C3200416AF340314F7C6 +S3150000AC164330030061F8EEB100F19800A313B802C1 +S3150000AC2613615D08615C086168DF10311C13B802A8 +S3150000AC3688008198004C10DCE7EF0388009BF6B18C +S3150000AC462334340312A9615B08615A08B9A80212B3 +S3150000AC56A9615B08615A08F74330FEFFDF6C548A28 +S3150000AC66A9B800A9086C0108B98B5010D61204A021 +S3150000AC760314A914A80435B91304A20316ABBA0221 +S3150000AC861304A40316ABBA041304A60316ABBA063A +S3150000AC961304A80316ABBA081304AA0316ABBA0A1A +S3150000ACA61304AC0316ABBA0C1304AE0316ABBA0EFA +S3150000ACB6348A03A800B9A80212AF3403615B08619F +S3150000ACC65A08F743F661E830FDFF1006D7D1DF03D1 +S3150000ACD613EF0891DF0313EF63F6D7C714AF4003EC +S3150000ACE660310353F7312507300800BF4003A3360A +S3150000ACF64003AB085CF708BBAC4AB800AC4A086C24 +S3150000AD060108BC4AAFA005B9AFA205BA02AFA405B1 +S3150000AD16BA04AFA605BA06AFA805BA08AFAA05BA19 +S3150000AD260AAFAC05BA0CAFAE05BA0EA800BC4A30DF +S3150000AD36FF00BC0813C2D7300300C2D7C714AF4200 +S3150000AD460360310353F7312507300800BF4203A3DA +S3150000AD56364203AB085CF708BBAC48B800AC4808FB +S3150000AD666C0108BC48AFB005B9AFB205BA02AFB4BC +S3150000AD7605BA04AFB605BA06AFB805BA08AFBA053E +S3150000AD86BA0AAFBC05BA0CAFBE05BA0EA800BC48D7 +S3150000AD9630FF00BC0813C2D7300300C2D7C714AFB2 +S3150000ADA6580360310349F7312507301800BF5803A9 +S3150000ADB6A336E005AF8A03B800AF8A03086C01081C +S3150000ADC6BF8A03ABB9AC02BA02AC04BA04AC06BA83 +S3150000ADD606AC08BA08AC0ABA0AAC0CBA0CAC0EBA7F +S3150000ADE60EA800BF8A0330FF00BF5C0313C2D7302C +S3150000ADF60300C2D7AF0803F1D736D0FF71F371E36C +S3150000AE0671D3712BD1711BD1710BD1715BD4712B9F +S3150000AE16D5711BD5710BD5D736C1027183007182E8 +S3150000AE26FE92FBF743DFF9FE92FC440400DDF8FED2 +S3150000AE36D6FC440400DDF8D7341A00CA0000CA015D +S3150000AE4600CA0300FC06B100FC09B100FCE2B00032 +S3150000AE56FC80B100FC08B000FCD3AE00F57800D744 +S3150000AE66717BFAEFD3FE27004008E5A5DF1334060B +S3150000AE76035208A95CFCB93400E5305907FC08DD25 +S3150000AE8600FC04F000FCDAAE00FC8AEC00EFF6FCEF +S3150000AE961DEE00FCAEC000FCEFEA00FE2300FC43FC +S3150000AEA6F100FCDBB100FCA2B000712301FC1EAE72 +S3150000AEB600FCCCB100FCB8B100FCC2B000717AFA55 +S3150000AEC6D73621FF71837102017192D7D7710AE4D1 +S3150000AED6710BE0D7CEABACD71489D161F8D791996F +S3150000AEE6D714F7A94361F8D7B1B9D7C5C1C4C5897F +S3150000AEF677318E43DF14CA0000A8021488087089C9 +S3150000AF066148DF07CA00001004D7678199EFF8C5C4 +S3150000AF16C1C4C5A91643DF17F6B9A8021488087076 +S3150000AF26896148DF05CA0000EF0281991004D71728 +S3150000AF36A1B9EFF8304EE5FEA7FF3095E5FE98FF7E +S3150000AF46306AF0FE9BFF30A4E5FE95FF30B0E5FEC5 +S3150000AF568FFFA29AE5A29CE5AF9EE5F743DD04B115 +S3150000AF66BF9EE5AFA6E543DD04B1BFA6E5AF74F027 +S3150000AF7643DD04B1BF74F0E60296E512BF96E5130B +S3150000AF86340500CEFB030015616861F8E565F0132C +S3150000AF96340A00CEFB030015616861F8E566F01316 +S3150000AFA6341400CEFB030015616861F8E567F013FB +S3150000AFB6343200CEFB030015616861F8E568F013CC +S3150000AFC634E803CEFB030015616861F8E569F01302 +S3150000AFD6448813DC04F6BF96E5E6025EF0BF5EF033 +S3150000AFE6F661D8A10260F0BF60F0AF52E5F743DD27 +S3150000AFF604B1BF52E5D594E561F8D7F594E5E56465 +S3150000B006F0D734F00036F000F67182BAC630FF0A81 +S3150000B016BAC4F6BF2A02714AE6714BE2715AE67164 +S3150000B0265BE2713AE7713BE3716AE6716BE2717A4C +S3150000B036E6717BE2714AE7714BE3717AE7717BE36E +S3150000B046710AD4710BD0711AD4711BD0712AD471BE +S3150000B0562BD0714AEE714AEA715AEE715AEABAA0D3 +S3150000B066C918FF7CAAC8085CFE08BAC8AACA085C42 +S3150000B076FE08BACAF6BAA2C91AFF7CAACE085CFDB1 +S3150000B08608BACEAACC085CFD08BACCAAC8085CFDEC +S3150000B09608BAC8AACA085CFD08BACAD734B201718A +S3150000B0A64BE2714BE6A9086C0108B9D734B401A97D +S3150000B0B6086C0108B9714AE6714BE2D734B20171E0 +S3150000B0C65BE2715BE6A9086C0208B9D734B401A93C +S3150000B0D6086C0208B9715AE6715BE2D7343400F49B +S3150000B0E601CA0000CA38DEF52002CA4202CE21FB9A +S3150000B0F6CE23FFCE24FFCE26FFCE28FFCE2CFFD7AB +S3150000B1068EA8D736C40220047182CEA040CEA307ED +S3150000B116717BA140A2FFFFDFFA714AA48EA43155C6 +S3150000B126FBCFC50292F6B802B800A802F743A800FC +S3150000B13661F8442103DE1300A80214A800040100E6 +S3150000B146121561D8A1B80213EFDEA771828FC60267 +S3150000B1563175FA34C502CA020071A251885FC60269 +S3150000B1664C88DFF7716BA4710BA1B5B7CA04008AC8 +S3150000B176046C429A0471A31004D730100004E00050 +S3150000B1861634100071D2CE3000710AE7710BE371E6 +S3150000B1960AEF710AEB51086F23FF9E23CE3000CECD +S3150000B1A632A0CA0000CA01FFCA0200CE3100710AE7 +S3150000B1B630D7710BE3710BE7717A30D7717B30713B +S3150000B1C60AE7710BE3D7710A30D7710B30D714AD86 +S3150000B1D61E316EB9D7F598E5F6BF9AE5BF9CE5BF71 +S3150000B1E6A0E5BFA4E5304006BF9EE530F401BFA248 +S3150000B1F6E5F5A8E5F5A9E5F5AAE5F599E5F5ABE5DD +S3150000B206F5ACE5F5ADE530D007BFA6E5F5AEE5EC60 +S3150000B216EFB500D598E5DF3140A9E501DD198D01C9 +S3150000B226317514F510E5D511E5DF1E340603A96C54 +S3150000B23603B9E511E5EF12F511E5D510E5DF0A3498 +S3150000B2460603E510E5A95CFCB940B3E501DF12305B +S3150000B2568813BFB0E5F5B3E54098E50861F8E5B4AF +S3150000B266E58F72F032A9E5FEB4029FA8E530ABE59C +S3150000B276FEF602739FACE58F98E5D1DD3191DD7858 +S3150000B28691DD049161E89161F8EEC2009161F8EEF4 +S3150000B296DA009161F8EE14019161F8EEDC01916134 +S3150000B2A6F8EE4F01CF98E507F6BF9AE5EF488FA867 +S3150000B2B6E572914C02DE2A30D007BFA6E5E598E591 +S3150000B2C6304006BF9EE5F6BF9AE5BFA4E5CF99E5F1 +S3150000B2D6029261F8EEB901CFAFE50530F401EEB49E +S3150000B2E601F598E593DF64AF9AE5448913DC5CF5CE +S3150000B2F699E5FC25F000EF5340AFE504DC0630F493 +S3150000B30601BFA2E58FA8E57391DD0C40AEE501DD30 +S3150000B31606AF9EE5EE920093F7EF4643DF2DCF98F4 +S3150000B326E505304006BF9EE5F6BF9AE530F401BF57 +S3150000B336A2E5EEB700AF9EE543DF10CF98E50830ED +S3150000B346F40122A4E5BF9AE5E599E5EE770140AF5B +S3150000B356E504DC0630F401BFA2E5F740A8E501DF07 +S3150000B366D430D007BFA6E5AF9EE5EFAF40B2E50104 +S3150000B376DF28F5B2E5CF98E50330D007BFA6E5305E +S3150000B3864006BF9EE5F6BF9AE5BFA4E5CF99E5025E +S3150000B39630F401BFA2E5CFAFE50540A8E501DD40E3 +S3150000B3A640AEE501DD3AAFB0E5F7EF8C40B2E50118 +S3150000B3B6DF28F5B2E5CF98E50330D007BFA6E5301E +S3150000B3C64006BF9EE5F6BF9AE5BFA4E5CF99E5021E +S3150000B3D630F401BFA2E5CFAFE50540A8E501EFC40D +S3150000B3E630D007BFA6E5304006BF9EE5CF99E502F9 +S3150000B3F6EED2008FA8E54C01DF0D30D007BFA6E5DB +S3150000B406CF98E506EE1BFF4C02DF05E599E5EF3A18 +S3150000B41640B4E501DF21F5B4E530D007BFA6E5CF98 +S3150000B42698E506304006BF9EE5F6BF9AE530F4017C +S3150000B436BFA2E5CF99E502AF9AE544D107DC0BCF6B +S3150000B44698E507F6BF9AE5F599E540B2E501DF48C6 +S3150000B456F5B2E5CF98E50430D007BFA6E53040063D +S3150000B466BF9EE5F6BF9AE5BFA4E5CF99E50230F49F +S3150000B47601BFA2E5CFAFE505EF4B8FA8E572914C6C +S3150000B48602DE1730D007BFA6E5CF98E502EE30FEFE +S3150000B496F5AFE55014BFA2E5EF2BAF9AE544D10709 +S3150000B4A6DC2393DF17340603F6BF9AE5F599E5F52F +S3150000B4B610E5F511E5A96C03B9EE36FE30D007BFE7 +S3150000B4C69AE5F599E5CFC8E53651EE5FC9E5708F81 +S3150000B4D6A8E57391DF046071CA70609FC9E551FBE8 +S3150000B4E60F98E54C028FCBE5DE04718AEF02718B6D +S3150000B4F69FCBE5634C02D9CCE5DF06CFCAE502EF62 +S3150000B5060B93DF05E5CAE5EF03F5CAE5605C049F24 +S3150000B516CCE5540832C8E530C0E5EC1FF10077C328 +S3150000B526C4D5AAE5DF0CE5AAE5F6BF9AE5F512E568 +S3150000B536EF1AAF9AE544E903DE048991DF0E899195 +S3150000B546DFEBCA0000F6BF9AE5E512E567D1DF052F +S3150000B556E5ADE5E1D7F14012E501DF0940ADE501CC +S3150000B56661E85102D7F5ADE5D714E60214E5BF1436 +S3150000B576E5441F00DC2589D1DF178F16E5819F1666 +S3150000B586E54C04DC06CF16E503E1D7F6BF14E5EF76 +S3150000B5960ACA0000F6BF14E5F516E5F1D7323604F9 +S3150000B5A630B8E5FC10F200CFC8E53651EE5FC9E5C6 +S3150000B5B69FC9E57108CBE5F5CAE551045FCCE59F61 +S3150000B5C6CCE5540832C8E530C0E5EC1FF100F5D0ED +S3150000B5D6E551EE5FD1E59FD1E57108D3E5F5D2E5F4 +S3150000B5E651045FD4E59FD4E5D7CFB6E50CFEADFF93 +S3150000B5F6EFDCF6BFF0E5BFF2E5F5F4E5F17319F514 +S3150000B606E50083634C03DFF5F5F8E5F17319F9E513 +S3150000B6160083634C04DFF5F5FDE5F17319FEE500DD +S3150000B62683634C0ADFF5F508E6F6BF0AE6F17319F9 +S3150000B6360CE60083634C14DFF53424E63226E63046 +S3150000B64628E6FCB6E70091DF1AD528E6E161E8515F +S3150000B65602EB24E69FF3E5AF26E6BFF0E5899FF207 +S3150000B666E5E1D7F1D7200414F19800318E312D0388 +S3150000B676B802A116894DDF11A78A014DDF0BA80274 +S3150000B686040300168A024DDD0C88008198004C0ED4 +S3150000B696DCD9C800FF88001004D7C79800C3C4F1D8 +S3150000B6A6735006D6051688004DDD0883634C04DC08 +S3150000B6B6EF53FF63C2D72006F52CE6402DE602615E +S3150000B6C6F8E545E6E52DE6CF2EE604E52FE6E53078 +S3150000B6D6E6CF31E6038FF4E57031732951400FF258 +S3150000B6E6E59800609801AF18E5129802629803AFD4 +S3150000B6F61AE5129804629805AEF812300600FCE5C3 +S3150000B706E900E1EF0AAEF812F6FCE5E9005102405F +S3150000B71645E601DF180401001461D8A313440100AD +S3150000B7261561F8448038DCEDCEAB00EFFB1006D78A +S3150000B7362006E52CE6308813BF2AE6402DE601DF13 +S3150000B7462940F3E502DF0DAEF812F6FCE5E90051F5 +S3150000B756021006D7D930E58FF2E5FECC083220E690 +S3150000B766300300FCE5E900F1EFE7CF2DE602CF2E28 +S3150000B776E604E52FE6E530E6F531E6CF0AE5A58FE0 +S3150000B786F4E570317334CF08E5A5CF09E507CF0098 +S3150000B796E50651400FF2E59F01E5609F02E5AF1809 +S3150000B7A6E5129F03E5629F04E5AF1AE5129F05E5DC +S3150000B7B6629F06E5CF07E555EF0BF508E5AEF812ED +S3150000B7C6F6FCE5E900CEAB00EFFB2006E52CE630FD +S3150000B7D68813BF2AE6402DE604DD0EE52FE6CF2DBB +S3150000B7E6E604E530E6CF31E603CF2EE6048FF4E530 +S3150000B7F67031732951400FF2E59800609801AF1831 +S3150000B806E5129802629803AF1AE512980462980543 +S3150000B816AEF812300600FCE5E900E1EF0AAEF812D2 +S3150000B826F6FCE5E90051021006D7C7402DE601DF12 +S3150000B8362840F3E502DF0CAEF812F6FCE5E9005106 +S3150000B84602C2D7D92BE58FF2E5FEDD073220E630B8 +S3150000B8560300FCE5E900F1C2D78FF4E570317331D8 +S3150000B866CF08E5A5CF09E503CF00E50251400FF263 +S3150000B876E59F01E5609F02E5CF03E555CF04E55553 +S3150000B886CF05E555CF06E555CF07E555CEAB00EF17 +S3150000B896FBF508E5AEF812F6FCE5E900CEAB00EFDF +S3150000B8A6FBC1200C8F36E64C05DE4E819F36E64CF4 +S3150000B8B60571CA9F0EE5DF10301027BF38E6300344 +S3150000B8C600BF32E6CF0DE513300400C1AEF8040A18 +S3150000B8D600B802340F00320018FC66A900C08F3685 +S3150000B8E6E698088F32E69809300400C1A802340F9C +S3150000B8F600320018FC8AA700C0AF34E6F743DF041F +S3150000B906AF38E64361E8EEB2004036E605DF36F5C7 +S3150000B91636E6F50EE5300400C1AEF8040A00B802B4 +S3150000B926340F005318FC66A900C08F36E698088FB8 +S3150000B93632E69809300400C1A802340F0032001816 +S3150000B946FC8AA700C08FF4E57031736051400FF290 +S3150000B956E59802609803402EE604DF1DFCDBDB005B +S3150000B966B800BF1CE513BF1EE5129804629805A829 +S3150000B97600129806629807EF0CC80400C80500C8AE +S3150000B9860600C8070071703AE6880D74DB1EE5AF3F +S3150000B9961CE5FCCADC00BF3CE613BF3EE6AEF8A1DA +S3150000B9A6A112300600FCE5E900E1EF0CAEF8A1A114 +S3150000B9B612F6FCE5E9005102100ED7D92AE58FF2F8 +S3150000B9C6E5FE65063220E6300300FCE5E900F1EF08 +S3150000B9D6E7363AE6C1200831F30ACF3AE604D92516 +S3150000B9E6E5EEFE00F536E6F50EE5F173318E022438 +S3150000B9F6E6A1A1148918F9E583634C04DFEED9FAAA +S3150000BA06E58FFCE598008FF9E5423EE6C0C18FFB5F +S3150000BA16E561F8423CE6340F00320018DF47F6BF10 +S3150000BA2632E6F50DE55004C1AEF8040600B802FC90 +S3150000BA3666A900C08F36E698048F32E6980530046C +S3150000BA4600C1A802340F00320018FC8AA700C0887D +S3150000BA56094C02DF06CF2EE606EF424C12DF3ECF3A +S3150000BA662EE607EF38E60232E6BF32E66071CA9F77 +S3150000BA760DE5300400C1AEF8040600B802FC66A95E +S3150000BA8600C08F36E698048F32E69805300400C16A +S3150000BA96A802340F00320018FC8AA700C0AF32E6AF +S3150000BAA6F743DF328FF4E57031731C51400FF2E530 +S3150000BAB69802609803CF3AE604AEF8A1A112E6A171 +S3150000BAC6FCE5E900E1EF0CAEF8A1A112F6FCE5E90A +S3150000BAD6005102100AD7CF3AE604440300DE16D90F +S3150000BAE628E58FF2E5FE41053220E6300300FCE547 +S3150000BAF6E900F1EFDE301027BF34E6D929E5EFE29B +S3150000BB0620064041E601DF448FF4E57031732A5181 +S3150000BB16400FF2E59800609801AF0AE612609803B6 +S3150000BB26139802C80404E544E6E541E6AEF8123089 +S3150000BB360500FCE5E900E1EF10E544E6E541E6AE81 +S3150000BB46F812F6FCE5E90051021006D7D925E58F6D +S3150000BB56F2E5FED4043220E6300300FCE5E900F106 +S3150000BB66EFE78F44E6D7D7D72006D541E6DF388FED +S3150000BB76F4E57031732451400FF2E59800609801A0 +S3150000BB86AF0AE612609803139802C80404AEF812C8 +S3150000BB96300500FCE5E900E1EF0AAEF812F6FCE531 +S3150000BBA6E90051021006D7D925E58FF2E5FE79049C +S3150000BBB63220E6300300FCE5E900F1EFE72006D582 +S3150000BBC642E6DF388FF4E57031732451400FF2E513 +S3150000BBD69800609801AF0AE612609803139802C8A7 +S3150000BBE60404AEF812300500FCE5E900E1EF0AAE02 +S3150000BBF6F812F6FCE5E90051021006D7D925E58FBD +S3150000BC06F2E5FE24043220E6300300FCE5E900F105 +S3150000BC16EFE72006D543E6DF388FF4E57031732467 +S3150000BC2651400FF2E59800609801AF0AE612609857 +S3150000BC3603139802C80404AEF812300500FCE5E9C1 +S3150000BC4600E1EF0AAEF812F6FCE5E900510210062D +S3150000BC56D7D925E58FF2E5FECF033220E63003007D +S3150000BC66FCE5E900F1EFE720064041E601DF388F03 +S3150000BC76F4E57031732451400FF2E598006098019F +S3150000BC86AF0AE612609803139802C80404AEF812C7 +S3150000BC96300500FCE5E900E1EF0AAEF812F6FCE530 +S3150000BCA6E90051021006D7D925E58FF2E5FE79039C +S3150000BCB63220E6300300FCE5E900F1EFE720064016 +S3150000BCC642E601DF388FF4E57031732451400FF2F6 +S3150000BCD6E59800609801AF0AE61260980313980289 +S3150000BCE6C80404AEF812300500FCE5E900E1EF0AE7 +S3150000BCF6AEF812F6FCE5E90051021006D7D925E59D +S3150000BD068FF2E5FE23033220E6300300FCE5E90068 +S3150000BD16F1EFE720064043E601DF388FF4E57031A0 +S3150000BD26732451400FF2E59800609801AF0AE612B7 +S3150000BD36609803139802C80404AEF812300500FC96 +S3150000BD46E5E900E1EF0AAEF812F6FCE5E900510274 +S3150000BD561006D7D925E58FF2E5FECD023220E6306C +S3150000BD660300FCE5E900F1EFE7D7D7D7C773402D07 +S3150000BD76E604DF574C04DE3CD1DD398FF4E570313D +S3150000BD86734F51400FF2E598006098015103612800 +S3150000BD9670634C03DF06609F30E6EF049160DF05B3 +S3150000BDA69F31E6EF039F30E6AEF812E6A1FCE5E921 +S3150000BDB600E1C2D740F3E502DD17D926E58FF2E5A5 +S3150000BDC6FE66023220E6300300EF0A40F3E502DFA4 +S3150000BDD60CAEF812F6FCE5E9005102C2D7D92BE5FE +S3150000BDE6EFDBC78FF4E57031731C51400FF2E5980F +S3150000BDF600609801F530E6F531E6AEF812E6A1FCEC +S3150000BE06E5E900E1C2D7F530E6F531E6AEF812F619 +S3150000BE16FCE5E9005102C2D7C78FF4E5704C02DF94 +S3150000BE2613E530E6CF31E603AEF812F6FCE5E90097 +S3150000BE365102C2D751400FF2E59800609801E530ED +S3150000BE46E6CF31E603AEF812E6A1FCE5E900E1C26B +S3150000BE56D7C78FF4E5704C02DF13E530E6CF31E63F +S3150000BE6603AEF812F6FCE5E9005102C2D751400FBF +S3150000BE76F2E59800609801E530E6CF31E603AEF8C4 +S3150000BE8612E6FCE5E900E1C2D78F31E6D78F30E648 +S3150000BE96D751032F31E6D751032F30E6D7C730885F +S3150000BEA613BF2AE68FF4E57031731651400FF2E59B +S3150000BEB69800609801AEF812E6A1FCE5E900E1C239 +S3150000BEC6D7AEF812F6FCE5E9005102C2D730881360 +S3150000BED6BF2AE6D7C740F3E502DF06402DE604DFB4 +S3150000BEE624E52FE6FC24E1008FF4E5703173165144 +S3150000BEF6400FF2E59800609801AEF812E6A1FCE55F +S3150000BF06E900E1C2D7AEF812F6FCE5E9005102C235 +S3150000BF16D7C740F3E502DF06402DE604DF20F52FFE +S3150000BF26E68FF4E57031731651400FF2E59800601E +S3150000BF369801AEF812E6A1FCE5E900E1C2D7AEF833 +S3150000BF4612F6FCE5E9005102C2D78F2FE6D7D924AF +S3150000BF56E58FF2E5FED2003220E6300300FCE5E985 +S3150000BF6600F1D7D924E58FF2E5FEBD003220E63092 +S3150000BF760300FCE5E900F1D7F52CE6E52DE6CF2E24 +S3150000BF86E604E52FE6E530E6CF31E603D7AF2AE647 +S3150000BF96F74361F8D7B1BF2AE6D72006AF34E6F7EE +S3150000BFA643DD3E04FFFFBF34E6DF36F6BF32E6F575 +S3150000BFB60DE55004C1AEF8040400B802340F005370 +S3150000BFC618FC66A900C08F36E698028F32E69803FB +S3150000BFD6300400C1A802340F00320018FC8AA700FC +S3150000BFE6C0AF38E6F743DD3E04FFFFBF38E6DF366F +S3150000BFF6F536E6F50EE5300400C1AEF8040400B8E1 +S3150000C00602340F005318FC66A900C08F36E6980264 +S3150000C0168F32E69803300400C1A802340F003200BE +S3150000C02618FC8AA700C01006D79F21E6609F22E665 +S3150000C036CF20E67FD7C3C12004F0609802880C6142 +S3150000C04640DD238802318E12A804168806318E0337 +S3150000C05607B8008807318E0305168B73C6C7639B20 +S3150000C06688028170EFD51008D7D7D7C74040E603B8 +S3150000C076DF31AFF0E5E743DF1551400FF2E59800F3 +S3150000C086AEF812E6FCE5E900F540E6F1C2D7D9229C +S3150000C096E58FF2E5FE92FF3220E6300300FCE5E985 +S3150000C0A600EFE8D925E5EFE92022E52DE6CF2EE6D5 +S3150000C0B604E52FE6E530E6CF31E603F6BF34E6BF04 +S3150000C0C632E6CF3AE6045004C1340F00320018AE09 +S3150000C0D6F8A1A1FC66A900C08800729F36E6880111 +S3150000C0E673318E14BF32E6624C0761C8F536E663D5 +S3150000C0F64C05DC05F614BF32E615440300DC0630B3 +S3150000C1061027BF34E6F540E6E541E6E542E6E543B7 +S3150000C116E6F544E61022D7AF2AE6D7308813BF2ABB +S3150000C126E6D78F2CE6D78F2DE6D78F2EE6D772F178 +S3150000C13673500AD60449A116624DDD0883634C0C7A +S3150000C146DCEE53FF63D7C7500AD6124944A19800BE +S3150000C156FC2CC1007088006158E161F8F1C2D7C7AE +S3150000C166500AD60445A114899800FC30C10070888F +S3150000C176006158E161F8F1C2D7500AD60446A11407 +S3150000C186895FF3E5E161F8F1D7500AD60447A114B1 +S3150000C19689318E43E161F3F1D7C1F388016143DE4C +S3150000C1A614635006D60516629EFD880071FB114D76 +S3150000C1B6DD0583EFE653FF63C2D7C1C55006D61425 +S3150000C1C688029EFDA8000514A51189318E43E161FA +S3150000C1D6E8F11004D7C1C3F388036143DE1963503F +S3150000C1E60AD6050404001688029EFD11AB16A800A1 +S3150000C1F63747DD0583EFE153FF100463D7C1500AC5 +S3150000C206D6051488009EFD11899800FC2CC1007085 +S3150000C21688006158E161F8F1C2D7C1500AD6128882 +S3150000C226009EFD150314A511899800FC30C1007007 +S3150000C23688006158E161F8F1C2D72008EB24E6527E +S3150000C2460F8A019FF4E57034BCA15103FE4AFF989C +S3150000C256004CFFDF2B40F3E502DF0DAEF8A112F628 +S3150000C266FCE5E9005102EF15D921E58FF2E5FC2F31 +S3150000C276C0003220E6300300FCE5E900F11008D7DD +S3150000C286DBF0E534BCA1500FFE2FFF91DF1A8800C4 +S3150000C2965006D604BCA11204040014A3899EFCA36E +S3150000C2A61314A91661FAEFD5D922E5EFBE2008EBDD +S3150000C2B624E6520F8A019FF4E57034CEA15102FEA0 +S3150000C2C6D7FE98004CFFDF2B40F3E502DF0DAEF8F4 +S3150000C2D6A112F6FCE5E9005102EF15D921E58FF228 +S3150000C2E6E5FC2FC0003220E6300300FCE5E900F14C +S3150000C2F61008D7DBF0E534CEA1500FFEBCFE91DF69 +S3150000C3061A88005006D604CEA11204040014A38986 +S3150000C3169EFCA31314A91661FAEFD5D922E5EFBE42 +S3150000C326208EAFF0E51204FDFF440900DE046275B7 +S3150000C336718C61C8EE630113311E609807D161F8EE +S3150000C346EE57019F08E665718B318EC1F19808E1BB +S3150000C3569803EB24E6E3F230FEE5FC3BC000C0F1B1 +S3150000C3669803D508E661F8EEE20088067381723412 +S3150000C3765AA229FEE57009FEE5B80A12300F18FE24 +S3150000C38653FE98004CFF61F8EE9A00345AA2500FFD +S3150000C396FE6AFE9161E8EE8C008800345AA2500FC0 +S3150000C3A6FE77FE91DF7A8800500AD6045AA2120456 +S3150000C3B60800141304060016899EFCAB16AEF80494 +S3150000C3C60C0012040700B80861FAB008E64C01DF53 +S3150000C3D665AEF8042700B804880C9802C2C3A80AFA +S3150000C3E614A804161561D9836461D988010C0298CC +S3150000C3F601F19800880270880061488801DD1B31CA +S3150000C4068E128800318E0312A8040314880073A8BE +S3150000C416081661C999880081EFD861089801EF0D61 +S3150000C426D927E5EF48B008E6880381980388060C05 +S3150000C436029806EE2CFF730920E5708FF2E5FC2FB5 +S3150000C446C0003220E6300300FCE5E9008803708868 +S3150000C456076140DF2C40F3E502DF0FAEF8040D005E +S3150000C46612F6FCE5E9005102EF2DD926E58FF2E535 +S3150000C476FC2FC0003220E6300300FCE5E900F1EFB0 +S3150000C4861651400FF2E59827AEF8042700128801E8 +S3150000C496318EFCE5E900E1108ED7D922E5EFCED73D +S3150000C4A62008EB24E6520F8A019FF4E57034ECA1CE +S3150000C4B65102FEE4FC98004CFFDF2C40F3E502DF58 +S3150000C4C60EAEF8A1A112F6FCE5E9005102EF15D968 +S3150000C4D621E58FF2E5FC2FC0003220E6300300FC92 +S3150000C4E6E5E900F11008D7DBF0E534ECA1500FFEC4 +S3150000C4F6C8FC91DF1F88005006D604ECA1B80012CE +S3150000C50604040016C48B9EFC13A1A116C5AB16899E +S3150000C51661FAEFD0D922E5EFB92008EB24E6520FEF +S3150000C5268A019FF4E57034F8A15103FE6BFC98006E +S3150000C5364CFFDF2B40F3E502DF0DAEF8A112F6FC49 +S3150000C546E5E9005102EF15D921E58FF2E5FC2FC08A +S3150000C556003220E6300300FCE5E900F11008D7DBDF +S3150000C566F0E534F8A1500FFE50FC91DF1F8800500D +S3150000C57606D604F8A11204040014A3899EFCA3138C +S3150000C58616EB24E6AB168A0261FAEFD0D922E5EF5E +S3150000C596B92010E6A1C1EB24E6E3F230FEE5FC3B4A +S3150000C5A6C000C0D9FFE58FFEE512344AA3300F0757 +S3150000C5B6FE22FC98014CFF61F8EEC900318EB802E6 +S3150000C5C614320A00CEFB02044CA316410F118B311E +S3150000C5D68E04030042F0E561E8EEBF0015320A005C +S3150000C5E6CEFB02044CA314320003899800318EC197 +S3150000C5F6EB24E6300CE6FC3BC000C08800980488B5 +S3150000C60601344AA3500FFEF4FB91DF798801344AC0 +S3150000C616A3500FFE04FC91DF67A802320A00CEFB88 +S3150000C62602044AA312040800141304060016899E7F +S3150000C636FCAB16AEF804040012300CE661FA4C01A7 +S3150000C646DF3751400FF2E598058FFEE598068FFF16 +S3150000C656E59807AEF804050012300300FCE5E9008C +S3150000C666EF36D926E58FF2E5FC2FC0003220E630FC +S3150000C6760300FCE5E900F1EF1F730920E570EFE51D +S3150000C686D927E5EFE040F3E502DFD7AEF804090067 +S3150000C69612F6FCE5E90051021010D7D922E5EFC5DE +S3150000C6A6D924E58FF2E5FC2FC0003220E6300300E0 +S3150000C6B6FCE5E900F1D7D924E58FF2E5FC2FC000A9 +S3150000C6C63220E6300300FCE5E900F1D7C7AFF0E516 +S3150000C6D6440400DF67EB24E68A0298008A03318E5B +S3150000C6E6128800708A0114318D031215318E144496 +S3150000C6F680001361F8440000DD0C1544FF00136149 +S3150000C706F844FFFFDF2EFCC2E600918FF2E5DF104C +S3150000C7160C409801AEF8A112E6FCE5E900E1C2D7A5 +S3150000C726D924E5FC2FC0003220E6300300FCE5E9FB +S3150000C73600F1C2D7D926E58FF2E5EFE7D922E5EF74 +S3150000C746F62008EB24E6520F8A019FF4E57034DAE8 +S3150000C756A15103FE43FA98004CFFDF2B40F3E50296 +S3150000C766DF0DAEF8A112F6FCE5E9005102EF15D988 +S3150000C77621E58FF2E5FC2FC0003220E6300300FCEF +S3150000C786E5E900F11008D7DBF0E534DAA1500FFE33 +S3150000C79628FA91DF1A88005006D604DAA112040494 +S3150000C7A60014A3899EFCA31314A91661FAEFD5D922 +S3150000C7B622E5EFBE200CE6A1C1EB24E6E3F230FE4D +S3150000C7C6E5FC3BC000C0D9FFE58FFEE5123428A282 +S3150000C7D6300F05FEFFF998004CFF61F8EED10031E7 +S3150000C7E68EB802320A00CEFB02042AA214320003D5 +S3150000C7F6899801318EC1EB24E6300CE6FC3BC0007D +S3150000C806C088003428A2500FFEF2F99161E8EE8A3C +S3150000C8160088003428A2500FFEFFF991DF658801D3 +S3150000C8269804A802320A00CEFB020428A2120408C3 +S3150000C83600141304060016899EFCAB16AEF8040413 +S3150000C8460012300CE661FA4C01DF3151400FF2E579 +S3150000C85698058FFEE598068FFFE598078F0CE698F4 +S3150000C866088F0DE698098F0EE6980A8FF0E57598FB +S3150000C87604AEF80405001265318EEF17730920E53C +S3150000C88670EF03D927E58FF2E5FC2FC0003220E6CC +S3150000C896300300FCE5E900F1100CD740F3E502DFB2 +S3150000C8A60FAEF804050012F6FCE5E9005102EFE8C2 +S3150000C8B6D926E5EFD1EB24E6200C8A03708A02B866 +S3150000C8C602BF0AE68A019FF4E5F19800318EB804A4 +S3150000C8D614320600CEFB0204DAA316410FA8021292 +S3150000C8E611AB438800DD1E819800DDE040F3E502CA +S3150000C8F661E8EEFF00AEF804060012F6FCE5E90074 +S3150000C9065102EEEC0081DDE415320600CEFB021282 +S3150000C916410F1149D8A39800FC2CC100708800610C +S3150000C92658DF0B40F3E502DDCCD926E5EF64A80413 +S3150000C936320600CEFB0204D9A314410F11899800D2 +S3150000C946FC30C1007088006158DF05D927E5EF4243 +S3150000C9568FF4E59803F19802318E14320600CEFB69 +S3150000C9660216A804320600CEFB0204DCA3B8004178 +S3150000C9760FA800371161090016880371FB4D88025E +S3150000C986DD128198024C03DCCF40F3E502DD98D92F +S3150000C99621E5EF4B81DDF215320600CEFB02124190 +S3150000C9A60FC6C7131161090016A78B318E42F0E533 +S3150000C9B6DF2A15320600CEFB0214A804320600CE84 +S3150000C9C6FB0204DCA316156109001204040014A375 +S3150000C9D6899EFCA31314A91661FAEF15D922E58FD1 +S3150000C9E6F2E5FC2FC0003220E6300300FCE5E90044 +S3150000C9F6F1100CD7D930E5EFE62008EB24E6520F06 +S3150000CA068A019FF4E570340AA2E1FE8CF798004C81 +S3150000CA16FFDF2B40F3E502DF0DAEF8A112F6FCE5CB +S3150000CA26E9005102EF15D921E58FF2E5FC2FC0008A +S3150000CA363220E6300300FCE5E900F11008D7DBF00A +S3150000CA46E5340AA2500FFE71F791DF1A88005006E8 +S3150000CA56D6040AA21204040014A3899EFCA3131486 +S3150000CA66A91661FAEFD5D922E5EFBEEB24E6200832 +S3150000CA768A019FF4E5FC2CC1004C04DF5DD9F4E580 +S3150000CA863410A2520F5102FE0FF798004CFFDF1D1D +S3150000CA9640F3E502DD4AD921E58FF2E5FC2FC00019 +S3150000CAA63220E6300300FCE5E900F1EF3EDBF0E577 +S3150000CAB63410A2500FFE02F791DF1A88005006D6F0 +S3150000CAC60410A21204040014A3899EFCA31314A93D +S3150000CAD61661FAEF16D922E5EFBF40F3E502DF0E3F +S3150000CAE6AEF8A112F6FCE5E90051021008D7D92BDB +S3150000CAF6E58FF2E5FC2FC0003220E6300300EFE5B5 +S3150000CB06C3C1C7AEF8FCF8D70091DF0FA802148898 +S3150000CB160099A80414E1CA0001EF0251041006D7D1 +S3150000CB26C3C1C7AEF8FC06D80091DF0FA802148869 +S3150000CB360099A80414E1CA0001EF0251041006D7B1 +S3150000CB46C1C3200CAEF8040400B802FC14D8009148 +S3150000CB56DF24F19800318E12A80E0314880073A8FC +S3150000CB66021661C999836398004C08DFE8A80C147D +S3150000CB76E1CA0008EF0251041010D7C1C3200AFC0F +S3150000CB868FDA00D1DD2DF19800A80A1688004DDE51 +S3150000CB9616318E12A80C0314AEF8A1A116880073DE +S3150000CBA68961D98363EFE0AEF8A1A1FC91DA009121 +S3150000CBB6E161E85104100ED7C1C3200CAEF8040497 +S3150000CBC600B802FC2BD80091DF24F19800318E12B2 +S3150000CBD6A80E0314880073A8021661C99983639880 +S3150000CBE6004C08DFE8A80C14E1CA0008EF0251045D +S3150000CBF61010D7C1C3200AFC8FDA00D1DD2DF198BB +S3150000CC0600A80A1688004DDE16318E12A80C0314EB +S3150000CC16AEF8A1A1168800738961D98363EFE0AEE9 +S3150000CC26F8A1A1FCB8DA0091E161E85104100ED72B +S3150000CC36C1C3200EAEF8040400B802FC42D8009127 +S3150000CC46DF24F19800318E12A8100314880073A809 +S3150000CC56021661C999836398004C0ADFE8A80E1488 +S3150000CC66E1CA000AEF0251041012D7C1C32014AE5E +S3150000CC76F8040400B802FC63D80091DF24F198009A +S3150000CC86318E12A8160314880073A8021661C99974 +S3150000CC96836398004C0ADFE8A81414E1CA000AEF79 +S3150000CCA60251041018D7C1C32014AEF8040400B804 +S3150000CCB602FCA3D80091DF24F19800318E12A81643 +S3150000CCC60314880073A8021661C999836398004CF9 +S3150000CCD60FDFE8A81414E1CA000FEF02510410187A +S3150000CCE6D7C1C32010AEF8040400B802FCA5D800CC +S3150000CCF691DF24F19800318E12A81203148800736E +S3150000CD06A8021661C999836398004C0CDFE8A8103F +S3150000CD1614E1CA000CEF0251041014D7C3C1C7AE02 +S3150000CD26F8FCA7D80091DF0FA80214880099A8047A +S3150000CD3614E1CA0001EF0251041006D7C1C3200E42 +S3150000CD46AEF8040400B802FCD3D80091DF24F198AB +S3150000CD5600318E12A8100314880073A8021661C942 +S3150000CD6699836398004C09DFE8A80E14E1CA000906 +S3150000CD76EF0251041012D7C1C32014AEF804040002 +S3150000CD86B802FCF1D80091DF24F19800318E12A882 +S3150000CD96160314880073A8021661C999836398005E +S3150000CDA64C0FDFE8A81414E1CA0010EF0251041074 +S3150000CDB618D7C1C3200AAEF8040400B802FC24D969 +S3150000CDC60091DF24F19800318E12A80C0314880016 +S3150000CDD673A8021661C999836398004C05DFE8A813 +S3150000CDE60A14E1CA0005EF025104100ED7C1C3208A +S3150000CDF608AEF8040400B802FC36D90091DF24F127 +S3150000CE069800318E12A80A0314880073A8021661C8 +S3150000CE16C999836398004C04DFE8A80814E1CA00A0 +S3150000CE2604EF025104100CD7C1C32016AEF8040451 +S3150000CE3600B802FC41D90091DF24F19800318E1228 +S3150000CE46A8180314880073A8021661C99983639803 +S3150000CE56004C11DFE8A81614E1CA0011EF025104CE +S3150000CE66101AD7C1C32016FC8FDA00D1DD2DF19832 +S3150000CE7600A8161688004DDE16318E12A818031461 +S3150000CE86AEF8A1A1168800738961D98363EFE0AE77 +S3150000CE96F8A1A1FCDFDA0091E161E85104101AD786 +S3150000CEA6C1C32014AEF8040400B802FC57D9009199 +S3150000CEB6DF24F19800318E12A8160314880073A891 +S3150000CEC6021661C999836398004C05DFE8A8141415 +S3150000CED6E1CA0005EF0251041018D7C1C32010AEEF +S3150000CEE6F8040400B802FC69D90091DF24F1980021 +S3150000CEF6318E12A8120314880073A8021661C99906 +S3150000CF06836398004C0CDFE8A81014E1CA000CEF06 +S3150000CF160251041014D7C1C3200EAEF8040400B89B +S3150000CF2602FC6BD90091DF24F19800318E12A8100D +S3150000CF360314880073A8021661C999836398004C86 +S3150000CF460ADFE8A80E14E1CA000AEF02510410121D +S3150000CF56D7C1C32010AEF8040400B802FCABD90052 +S3150000CF6691DF24F19800318E12A8120314880073FB +S3150000CF76A8021661C999836398004C0CDFE8A810CD +S3150000CF8614E1CA000CEF0251041014D7C1C3200ADB +S3150000CF96AEF8040400B802FCADD90091DF24F1987E +S3150000CFA600318E12A80C0314880073A8021661C9F4 +S3150000CFB699836398004C06DFE8A80A14E1CA0006BE +S3150000CFC6EF025104100ED7C1C3200AFC8FDA00D136 +S3150000CFD6DD2DF19800A80A1688004DDE16318E1250 +S3150000CFE6A80C0314AEF8A1A1168800738961D9832B +S3150000CFF663EFE0AEF8A1A1FC05DB0091E161E85123 +S3150000D00604100ED7C3C12016AEF8040600B804FCF9 +S3150000D016B3D90091DF41F19800318EB80212A816F5 +S3150000D0260314880073A8041661C999A80207163165 +S3150000D036F514F177318E12A816031487CA00006715 +S3150000D0464C10DFF0EF08836398004C10DCCBA81871 +S3150000D05614E1CA0010EF025104101AD7C1C32014F6 +S3150000D066FC8FDA00D15104DD39F19802A81416882E +S3150000D076024DDE1F318E12A81603B800AEF8040361 +S3150000D0860016C4C58802738961D9C6C731F31683EB +S3150000D09663EFD7AEF8040300FC2CDB0091E161E8F0 +S3150000D0A651041018D75106EFF9C1C32008AEF8048B +S3150000D0B60400B802FCCAD90091DF24F19800318E2B +S3150000D0C612A80A0314880073A8021661C999836315 +S3150000D0D698004C04DFE8A80814E1CA0004EF0251E0 +S3150000D0E604100CD7C1C32006FC8FDA00D1DD2DF162 +S3150000D0F69800A8061688004DDE16318E12A808037B +S3150000D10614AEF8A1A1168800738961D98363EFE08E +S3150000D116AEF8A1A1FC53DB0091E161E85104100AC7 +S3150000D126D7C1C32008AEF8040400B802FCE1D90052 +S3150000D13691DF24F19800318E12A80A031488007331 +S3150000D146A8021661C999836398004C04DFE8A8080B +S3150000D15614E1CA0004EF025104100CD7C1C320061D +S3150000D166FC8FDA00D1DD2DF19800A8061688004D51 +S3150000D176DE16318E12A8080314AEF8A1A116880091 +S3150000D186738961D98363EFE0AEF8A1A1FC7ADB006F +S3150000D19691E161E85104100AD7C3C1C7AEF8FCF89D +S3150000D1A6D90091DF0FA80214880099A80414E1CAD1 +S3150000D1B60001EF0251041006D7C3C1C7AEF8FC063C +S3150000D1C6DA0091DF0FA80214880099A80414E1CAB0 +S3150000D1D60001EF0251041006D7C3C1C7AEF8FC140E +S3150000D1E6DA0091DF0FA80214880099A80414E1CA90 +S3150000D1F60001EF0251041006D7C3C1C7AEF8FC23DF +S3150000D206DA0091DF0FA80214880099A80414E1CA6F +S3150000D2160001EF0251041006D7C3C1C7AEF8FC32AF +S3150000D226DA0091DF0FA80214880099A80414E1CA4F +S3150000D2360001EF0251041006D7C3C1C7AEF8FC4180 +S3150000D246DA0091DF0FA80214880099A80414E1CA2F +S3150000D2560001EF0251041006D7C3C1C7AEF8FC5051 +S3150000D266DA0091DF0FA80214880099A80414E1CA0F +S3150000D2760001EF0251041006D7C1C3200AFC8FDA5B +S3150000D28600D1DD2DF19800A80A1688004DDE16316C +S3150000D2968E12A80C0314AEF8A1A116880073896134 +S3150000D2A6D98363EFE0AEF8A1A1FCA1DB0091E161B1 +S3150000D2B6E85104100ED7C1C3200AFC8FDA00D1DD6F +S3150000D2C62DF19800A80A1688004DDE16318E12A892 +S3150000D2D60C0314AEF8A1A1168800738961D983637D +S3150000D2E6EFE0AEF8A1A1FCACDB0091E161E85104E8 +S3150000D2F6100ED7C1C3200AFC8FDA00D1DD2DF198B6 +S3150000D30600A80A1688004DDE16318E12A80C0314E4 +S3150000D316AEF8A1A1168800738961D98363EFE0AEE2 +S3150000D326F8A1A1FCB7DB0091E161E85104100ED724 +S3150000D336C1C3200AFC8FDA00D1DD2DF19800A80AB8 +S3150000D3461688004DDE16318E12A80C0314AEF8A10F +S3150000D356A1168800738961D98363EFE0AEF8A1A1AF +S3150000D366FCC3DB0091E161E85104100ED7C1C3206E +S3150000D3760AFC8FDA00D1DD2DF19800A80A1688007E +S3150000D3864DDE16318E12A80C0314AEF8A1A116882E +S3150000D39600738961D98363EFE0AEF8A1A1FCCFDB08 +S3150000D3A60091E161E85104100ED7C1C32008AEF81A +S3150000D3B6040400B802FC5FDA0091DF24F19800311C +S3150000D3C68E12A80A0314880073A8021661C99983E7 +S3150000D3D66398004C03DFE8A80814E1CA0003EF02CD +S3150000D3E65104100CD7C1C32006FC8FDA00D1DD2DFF +S3150000D3F6F19800A8061688004DDE16318E12A8088A +S3150000D4060314AEF8A1A1168800738961D98363EF68 +S3150000D416E0AEF8A1A1FC61DA0091E161E8510410E1 +S3150000D4260AD7C1C32010AEF8040400B802FC63DABA +S3150000D4360091DF24F19800318E12A8120314880099 +S3150000D44673A8021661C999836398004C0CDFE8A895 +S3150000D4561014E1CA000CEF0251041014D7C1C32000 +S3150000D4660CAEF8040400B802FC65DA0091DF24F17C +S3150000D4769800318E12A80E0314880073A80216614E +S3150000D486C999836398004C07DFE8A80C14E1CA0023 +S3150000D49607EF0251041010D7C1C3200AFC8FDA0029 +S3150000D4A6D1DD2DF19800A80A1688004DDE16318EBC +S3150000D4B612A80C0314AEF8A1A1168800738961D9C7 +S3150000D4C68363EFE0AEF8A1A1FC67DA0091E161E8BB +S3150000D4D65104100ED7C1C32008AEF8040400B802E2 +S3150000D4E6FC69DA0091DF24F19800318E12A80A034E +S3150000D4F614880073A8021661C999836398004C03C1 +S3150000D506DFE8A80814E1CA0003EF025104100CD79D +S3150000D516C1C32006FC8FDA00D1DD2DF19800A806DE +S3150000D5261688004DDE16318E12A8080314AEF8A131 +S3150000D536A1168800738961D98363EFE0AEF8A1A1CD +S3150000D546FC6BDA0091E161E85104100AD7C3C1C742 +S3150000D556AEF8FC6DDA0091DF0FA80214880099A8D0 +S3150000D5660414E1CA0001EF0251041006D7C1C32014 +S3150000D57606AEF8040400B802FC6FDA0091DF24F167 +S3150000D5869800318E12A8080314880073A802166143 +S3150000D596C999836398004C02DFE8A80614E1CA001D +S3150000D5A602EF025104100AD7C1C32006AEF80404DE +S3150000D5B600B802FC71DA0091DF24F19800318E1270 +S3150000D5C6A8080314880073A8021661C9998363988C +S3150000D5D6004C02DFE8A80614E1CA0002EF02510475 +S3150000D5E6100AD7C3C1C7AEF8FC73DA0091DF0FA8DD +S3150000D5F60214880099A80414E1CA0001EF02510436 +S3150000D6061006D7C1C32006AEF8040400B802FC759E +S3150000D616DA0091DF24F19800318E12A808031488E7 +S3150000D6260073A8021661C999836398004C02DFE865 +S3150000D636A80614E1CA0002EF025104100AD7C3C1B4 +S3150000D646C7AEF8FC77DA0091DF0FA80214880099B6 +S3150000D656A80414E1CA0001EF0251041006D7C3C19B +S3150000D666C7AEF8FC79DA0091DF0FA8021488009994 +S3150000D676A80414E1CA0001EF0251041006D7C1C37B +S3150000D6862006AEF8040400B802FC7BDA0091DF241B +S3150000D696F19800318E12A8080314880073A80216A2 +S3150000D6A661C999836398004C02DFE8A80614E1CAAB +S3150000D6B60002EF025104100AD7C1C32008AEF804CF +S3150000D6C60400B802FC7DDA0091DF24F19800318E61 +S3150000D6D612A80A0314880073A8021661C9998363FF +S3150000D6E698004C04DFE8A80814E1CA0004EF0251CA +S3150000D6F604100CD7C1C3200CAEF8040400B802FC13 +S3150000D7067FDA0091DF24F19800318E12A80E0314F9 +S3150000D716880073A8021661C999836398004C08DFCE +S3150000D726E8A80C14E1CA0008EF0251041010D7C38A +S3150000D7362004C1AEF8A1A1FC81DA0091DF0EC4C5B2 +S3150000D746880299A80614E1CA0001EF0251041008DE +S3150000D756D7C1C32008AEF8040400B802FC83DA0079 +S3150000D76691DF24F19800318E12A80A0314880073FB +S3150000D776A8021661C999836398004C02DFE8A808D7 +S3150000D78614E1CA0002EF025104100CD7C32004C1EB +S3150000D796AEF8A1A1FC85DA0091DF0EC4C588029910 +S3150000D7A6A80614E1CA0001EF0251041008D7C320E7 +S3150000D7B604C1AEF8A1A1FC87DA0091DF0EC4C588C4 +S3150000D7C60299A80614E1CA0001EF0251041008D70F +S3150000D7D6C32004C1AEF8A1A1FC89DA0091DF0EC40C +S3150000D7E6C5880299A80614E1CA0001EF0251041081 +S3150000D7F608D7144101118F00A09981E161F8F1D78C +S3150000D806144101118F08A09981E161F8F1D7C15140 +S3150000D81605FCB5DE0072A8005308FC7EDE00D1E1E9 +S3150000D82661E8F1C2D7C15105FCB5DE0072A8005306 +S3150000D83608FC7EDE00D1E161E8F1C2D714E1CA0038 +S3150000D84654CA014FCA024ECA0347CA0459CA0555E5 +S3150000D856CA062DCA0753CA0843CA094DD714410139 +S3150000D866118F209C99118F219C9A01118F229C9AC7 +S3150000D87602118F239C9A03118F249C9A04118F25DB +S3150000D8869C9A05118F269C9A06118F279C9A07113A +S3150000D8968F289C9A08118F299C9A09E1D7E1D7E12E +S3150000D8A6D7C1FC2CC100734C01DF07C4C5CA0001F1 +S3150000D8B6EF144C02DF07C4C5CA0002EF094C04DFA9 +S3150000D8C605C4C5CA000383E161F8F1C2D714E1CAEB +S3150000D8D60061CA010ACA0231CA0332CA0433CA053A +S3150000D8E600CA0630CA0730CA0830D714CA0043CA67 +S3150000D8F60134CA0230CA0320CA0420CA0520CA0651 +S3150000D90620CA0720CA0820CA0920CA0A20CA0B202C +S3150000D916CA0C20CA0D20CA0E20CA0F20E1D714E170 +S3150000D926CA0043CA014CCA0231CA0337CA0437D7EA +S3150000D93614A1CA0020FCF9DE00E1D7C1E1FCB5DE80 +S3150000D9460072A8005311FC7EDE00D1E161E8F1C247 +S3150000D956D714E1CA0001CA0117CA0207CA0318CAC0 +S3150000D9660400D7E1D7144101118F009C99118F014C +S3150000D9769C9A01118F029C9A02118F039C9A03119D +S3150000D9868F049C9A04118F059C9A05118F069C9A02 +S3150000D99606118F079C9A07118F089C9A08118F0902 +S3150000D9A69C9A09E1D7E1D7FCCFDE00E1D7C1510247 +S3150000D9B6FCB5DE0072A8005310FC7EDE00D1E161E4 +S3150000D9C6E8F1C2D7C15103FCB5DE0072A8005304C4 +S3150000D9D6FC7EDE00D1E161E8F1C2D7C15104FCB597 +S3150000D9E6DE0072A8005304FC7EDE00D1E161E8F198 +S3150000D9F6C2D7C1F1FCE6DC0073C4C56399E1C2D7A0 +S3150000DA06C1E1FCE6DC0073C4C56399E1C2D7C15126 +S3150000DA1602FCE6DC0073C4C56399E1C2D7C15103B3 +S3150000DA26FCE6DC0073C4C56399E1C2D7C15104FCA8 +S3150000DA36E6DC0073C4C56399E1C2D7C15106FCE6AC +S3150000DA46DC0073C4C56399E1C2D7C15107FCE6DCA5 +S3150000DA560073C4C56399E1C2D7E1D7E1D7E1D7E13F +S3150000DA66D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1EA +S3150000DA76D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1DA +S3150000DA86D7E1D7FC19F100E1D7E1D714F173318E4E +S3150000DA9605168B1831E583634C08DFF25105FCB594 +S3150000DAA6DE007253083031E5FC4EDD00D1E161E857 +S3150000DAB6F1D714F173318E05168B1831E583634C55 +S3150000DAC608DFF25105FCB5DE007253083031E5FC7D +S3150000DAD64EDD00D1E161E8F1D714F173318E0516FA +S3150000DAE68B1831E583634C11DFF2E1FCB5DE00727B +S3150000DAF653113031E5FC4EDD00D1E161E8F1D71472 +S3150000DB06F173318E05168B1831E583634C08DFF207 +S3150000DB165105FCB5DE007253083031E5FC4EDD00DA +S3150000DB26D1E161E8F1D714F173318E05168B183100 +S3150000DB36E583634C10DFF25102FCB5DE007253102A +S3150000DB463031E5FC4EDD00D1E161E8F1D714F17321 +S3150000DB56318E05168B1831E583634C04DFF25103CB +S3150000DB66FCB5DE007253043031E5FC4EDD00D1E132 +S3150000DB7661E8F1D714F173318E05168B1831E583FA +S3150000DB86634C04DFF25104FCB5DE007253043031F7 +S3150000DB96E5FC4EDD00D1E161E8F1D7148A0170F1AA +S3150000DBA6FCF5DC00E1D7148A0170E1FCF5DC00E146 +S3150000DBB6D7148A01705102FCF5DC00E1D7148A01FC +S3150000DBC6705103FCF5DC00E1D7148A01705105FC9F +S3150000DBD6F5DC00E1D7ECAEDE00C10361F8DE48579E +S3150000DBE623A800311CDC0931FE0314A80001EF301E +S3150000DBF61431FE03B80015011264719C13DC107C07 +S3150000DC06EA087CAE0812A8007C6F087C21EF0E7C21 +S3150000DC1630087CB50812A8007CDF087CAF08141310 +S3150000DC26B800C5C297DFBAA800C4D7EFAC20041661 +S3150000DC3660313A7CAA703159980260313A751331CF +S3150000DC46BE607C52F0313E60610D98011731BE60B0 +S3150000DC567C50F0755C077065719A5CFA98006231C3 +S3150000DC663A7C43755C586108708800081288027011 +S3150000DC76655C1F6108708801100408D7C7C3147C49 +S3150000DC8650775C0370627C40735CFC6108980363A2 +S3150000DC96316A9802647CAA73312A723168A8007CBC +S3150000DCA652F0755C3F610B980067F0312E60610A91 +S3150000DCB67088000812880270655CFC61087088032B +S3150000DCC6100408D716644C01DF0417EE0BFF4C034D +S3150000DCD6DF0417EE57FF4C11DF0317EF9FD7D7D791 +S3150000DCE64C08DC02F1D75002D6046FE61489D7C178 +S3150000DCF65002D6046EE6148800CA0001A599C0D75C +S3150000DD06F1D7C3BF7EE6C5C2511F5F81E69F81E696 +S3150000DD16AF80E6F05CE0BF80E651806F85E65C8FFB +S3150000DD269F85E6AF84E6F05CF0BF84E6F6BF82E642 +S3150000DD36C4C53086E6FC1FF100307EE6FCCBAB00A0 +S3150000DD46F743E161F8F1C2D7C1205663980092DD28 +S3150000DD561392DD4D9261F8EE87009261F8EEC100EE +S3150000DD661058F1D7305000C1AEF8040800B8063492 +S3150000DD760F00320014FC66A900C08800318EB80276 +S3150000DD86F6B800A80212A80043DD3BA80414A800B2 +S3150000DD9612F10516A85614A3899BA515B85613EFB6 +S3150000DDA6E0305000C1AEF8040800B806340F003261 +S3150000DDB60014FC66A900C08800318EB802F6B800C9 +S3150000DDC6A80212A80043DD3EA80414A80012F10515 +S3150000DDD604400016A85614A3899BA515B85613EF3A +S3150000DDE6DD305000C1AEF8040800B806340F003224 +S3150000DDF60014FC66A900C08800318EB802F6B80089 +S3150000DE06A80212A80043DD59A80414A80012F105B9 +S3150000DE1604300016A85614A3899BA515B85613EF09 +S3150000DE26DD305000C1AEF8040800B806340F0032E3 +S3150000DE360014FC66A900C08800318EB802F6B80048 +S3150000DE46A80212A80043DD19A80414A80012F105B9 +S3150000DE5604380016A85614A3899BA515B85613EFC1 +S3150000DE66DD305000C1340F00320014AEF80408004D +S3150000DE76FC8AA700C0EEE8FE146392DD0B92DD0D68 +S3150000DE8692DD0F92DD1DF1D7320014EF0832201411 +S3150000DE96EF03323014318EC115340F00FC66A9002B +S3150000DEA6C0EFE3323814EFEDDB60F0AF5EF0D77308 +S3150000DEB6091FA4D714F1734101318E051611090005 +S3150000DEC69C9B83634C10DFEFD714F1734101318EAF +S3150000DED605161109109C9B83634C06DFEFD714F1D8 +S3150000DEE6734101318E05161109209C9B83634C10E4 +S3150000DEF6DFEFD714CA0018CA0106CA0215D7D7D744 +S3150000DF06D7F1D7F1D7F1D7D7D7148F7EF099D7F6B1 +S3150000DF16BF94E6BF92E6BF96E6BF9AE6BF9CE6BF0B +S3150000DF269EE6F598E6F5A1E6F599E6F5A0E6D7F5B7 +S3150000DF3690E6D7E590E6D7E58EE6CF8FE602FECEEB +S3150000DF46FFE590E6D7F1D76F91E69F91E6F1D77C8C +S3150000DF56FF5F91E69F91E6F1D7148F91E699F1D787 +S3150000DF66F1D7148F8EE699F1D7148F8FE699F1D7EC +S3150000DF76C79800FCF4E00088009F8FE6F1C2D7C57B +S3150000DF86C3C1C78F38A49801D1DD76F19800880100 +S3150000DF967088006148DE6A318E14320C00CEFB02B0 +S3150000DFA6043CA416A804614900DD05880081EFDC5F +S3150000DFB615320C00CEFB02043EA4168802320C0073 +S3150000DFC64D15CEFB02DF0F043CA412040600B80072 +S3150000DFD613040400EF0D043CA412040A00B800134F +S3150000DFE604080016C4AB16C58973318E0761F8DEC0 +S3150000DFF610639EFCA80614A80412880270880361A2 +S3150000E006FA1008D7C5C3C12004FCD9E000A8081435 +S3150000E016880672A804FC08DD009807FCDDE0008887 +S3150000E026079161E8EEA600F198004F39A461C8EEA3 +S3150000E0369B00318E14321600CEFB020454A416A899 +S3150000E04604614900DD05880081EFDD15321600CE34 +S3150000E056FB020468A414320C0089318E16CEFB022C +S3150000E0660496E614A804B9A5A5880699F198048825 +S3150000E07606708804320C006148DD23318E14A80828 +S3150000E08605B80217CEFB020496E605040300B8009F +S3150000E096A802148973C4C56399880481EFCF17CE85 +S3150000E0A6FB0204A1E61466CA000173E6D3EF020179 +S3150000E0B693DFFC1231FF6F95E6086F94E608BF946E +S3150000E0C6E6136F93E6086F92E608BF92E688071096 +S3150000E0D60AD7D7717BFAD7717AFAD7D7D7CFA2E6FE +S3150000E0E602F5A3E6E5A4E6D7148FA2E699D7C79864 +S3150000E0F6004C01DF0BFC22E10088009FA2E6C0D798 +S3150000E1064C02DFFAFC23E100EFEF148FA3E699D762 +S3150000E116F5A3E6D7D7148FA4E699D7D7D7D7202263 +S3150000E1265108FCB5DE0072AEF8040600B804531CAE +S3150000E136FC7EDE00F19802318E01B80012A80403B7 +S3150000E14614897381A800DF0904A7E614CA0001EF43 +S3150000E156333348A6E631330639A7E601EF26130818 +S3150000E1666C010812A80403168B819B4C28DC0FCA87 +S3150000E1760000CC00FF8802FEA600C2C3EFDAC2C3C7 +S3150000E18639A7E60088028198024C0EDFAA5108FCE0 +S3150000E196B5DE0072531CAEF8040600FC4EDD001018 +S3150000E1A622D730DC05BFC2E630F401BFC4E6EE6D09 +S3150000E1B6FFAFC2E6F743DD04B1BFC2E6FC06DD00EB +S3150000E1C6D1DF0DAFC4E6F74361F8D7B1BFC4E6D7D2 +S3150000E1D630F401EFF72008735002D604A6E614B809 +S3150000E1E604896C0999A589D1DF031008D7CA0000EE +S3150000E1F6630C089802FCB5DE0072AEF8040600B899 +S3150000E206005302FC7EDE00A80414895C0898068882 +S3150000E21602FCB5DE0072A8005302FC4EDD00EFCA12 +S3150000E2265002D604A6E6167183D7AFC2E6F743DFD9 +S3150000E23616AFC4E643DF10FC04DF00D1DD09510D3D +S3150000E246FE92FF7108C0E6FC8FBE00311301D7E1CE +S3150000E256FCE5DC00D15104DF05FEC4FFEF03FE74C6 +S3150000E266FF5102FCE5DC00D15107DF05FEB1FFEFE9 +S3150000E27603FE61FF5103FCE5DC00D1510ADF05FE12 +S3150000E2869EFFEF03FE4EFF8FD0E64C28DE05819FEC +S3150000E296D0E6D7F5D0E6F1FCE4DC004CA18FC6E665 +S3150000E2A6DC104C32DE06819FC6E6EF1BE1FE25FF3B +S3150000E2B6EF15D1DF06E1FE67FFEF0C919FC6E64C30 +S3150000E2C62661C8CFC6E625F1FCE4DC004C5A8FC7AA +S3150000E2D6E6DE104C32DE06819FC7E6EF1BF1FEF442 +S3150000E2E6FEEF15D1DF06F1FE36FFEF0C919FC7E66E +S3150000E2F64C2661C8CFC7E625E1FCE4DC004C318F2D +S3150000E306C8E6DC114C32DE06819FC8E6EF1D5102D7 +S3150000E316FEC2FEEF16D1DF075102FE03FFEF0C9198 +S3150000E3269FC8E64C2661C8CFC8E625E1FCE4DC00BA +S3150000E3364C028FC9E6DE114C32DE06819FC9E6EF36 +S3150000E3461D5103FE8FFEEF16D1DF075103FED0FEE9 +S3150000E356EF0C919FC9E64C2661C8CFC9E625510246 +S3150000E366FCE4DC004C318FCAE6DC114C32DE068159 +S3150000E3769FCAE6EF1D5105FE5BFEEF16D1DF07517C +S3150000E38605FE9CFEEF0C919FCAE64C2661C8CFCAD5 +S3150000E396E6255102FCE4DC004C028FCBE6DE114C8E +S3150000E3A632DE06819FCBE6EF1D5106FE27FEEF16EF +S3150000E3B6D1DF075106FE68FEEF0C919FCBE64C2691 +S3150000E3C661C8CFCBE6255103FCE4DC004C318FCC8B +S3150000E3D6E6DC114C32DE06819FCCE6EF1D5108FEC7 +S3150000E3E6F3FDEF16D1DF075108FE34FEEF0C919FC1 +S3150000E3F6CCE64C2661C8CFCCE6255103FCE4DC000E +S3150000E4064C028FCDE6DE114C32DE06819FCDE6EF5D +S3150000E4161D5109FEBFFDEF16D1DF075109FE00FEAD +S3150000E426EF0C919FCDE64C2661C8CFCDE62551046B +S3150000E436FCE4DC004C318FCEE6DC114C32DE068184 +S3150000E4469FCEE6EF1D510BFE8BFDEF16D1DF075172 +S3150000E4560BFECCFDEF0C919FCEE64C2661C8CFCEC7 +S3150000E466E6255104FCE4DC004C028FCFE6DE0E4CBA +S3150000E47632DE05819FCFE6D7510CEE58FDD1DF057A +S3150000E486510CEE9BFD919FCFE64C2661C8CFCFE699 +S3150000E49625D75002D61249A6E6D7C3C5201453106F +S3150000E4A6C1776772AEF8040600B804FC7EDE008803 +S3150000E4B6004C07DE33D1DD30A81814880099CA014E +S3150000E4C601CA020A919A03A804128800318EB10184 +S3150000E4D6B80003168B9A04A800A103168B9A05A802 +S3150000E4E61614890C0699EF4C8151FFDF48C80306BE +S3150000E4F6F173819802A81814880299CA0101CA0202 +S3150000E5060A639A03A804128802318EB101B8000381 +S3150000E51616A818040600B8188B9A04A800A10316B4 +S3150000E5268B9A05A81614890C069988039198038870 +S3150000E5360273DFBEF1101AD7EB24E620088A029F83 +S3150000E546F8E55C09DF17D926E58FF2E5FC2FC00052 +S3150000E5563220E6300300FCE5E900F1EF4351400FB7 +S3150000E566F2E598028FF4E59803C80409F198009835 +S3150000E576018800FE1CFF5FF8E5DD0588018198012C +S3150000E58688008198004C0EDFE8C80501C806008899 +S3150000E596019807AEF8A1A112300600FCE5E900E1F4 +S3150000E5A61008D7EB24E620708A029FF8E55C09DF9F +S3150000E5B618D926E58FF2E5FC2FC0003220E6300397 +S3150000E5C600FCE5E900F1EE7F0051400FF2E5980602 +S3150000E5D68FF4E59807C80809C80203F19803FEB147 +S3150000E5E6FE5FF8E5DD4A8803735004D614AEF804D8 +S3150000E5F60600B80415047AA4B800A114A80416885F +S3150000E60602728961F96281A5728961F9A80004031B +S3150000E616001488020C02728961F963FE74FE728820 +S3150000E626020C0373A804166261D988020C049802C8 +S3150000E63688038198034C0EDFA5AEF80406001288FF +S3150000E64602318EFCE5E900E11070D7206E51400FCD +S3150000E656F2E598048FF4E59805C80609F36398026F +S3150000E66663980388035004D614630C0372AEF80449 +S3150000E67604001615047AA4B800A1148961F9630C7E +S3150000E68604A5738961D9A8000403001488020C0541 +S3150000E696728961F988020C06318E071488038198FF +S3150000E6A6034C0ECA0009639802DFB8AEF8040400EC +S3150000E6B612303B00FCE5E900106EE1D7201C341C45 +S3150000E6C60032B2A4AEF8FCA6A600F1755002D61228 +S3150000E6D68539A6E600654C0EDFF15108FCB5DE006D +S3150000E6E672531CAEF8FC4EDD00D1E161E8F1101C58 +S3150000E6F6D72008FC1DC100F74361F8FC7EBF00FC6D +S3150000E706F8B50091DF44FC21C1008FF2E5FC34C167 +S3150000E7160098004CFFDF0B40F3E502DD24D920E527 +S3150000E726EF2DFC4CC10091DF6F8800FC65C100919E +S3150000E736DF61880040F3E502DF19FC7FC100D1DF07 +S3150000E74610AEF8A112F6FCE5E900EF2AD922E5EFAC +S3150000E7564A8800DBF0E5FC8FC10091DFEF880050A8 +S3150000E7660AD60444A11204080014130406001689E6 +S3150000E7769EFCAB1661FAFC82EC009161F8FC93BF35 +S3150000E78600FCA0BF00FCB7E100FC50BF00D1DF1AB9 +S3150000E7961008D7D927E5EF03D92BE58FF2E5FC2F2D +S3150000E7A6C0003220E6300300EF9CFC30E200EFE0CA +S3150000E7B6C3168FDAE64C01DF15CFDAE6058F90EB46 +S3150000E7C69BC6C7AF8EEBBB30D2E6B9E1C2D74C04C7 +S3150000E7D6DF13CFDAE6058F90EB9BC6C7AF8EEBBB92 +S3150000E7E630DDE6EFE5F1C2D7C5C1C713445107DFF1 +S3150000E7F65C899800314A708FDAE6734C01DD084C65 +S3150000E80604DD044C05DF494C05DF424056F001DFC6 +S3150000E8163C604C03DF3788005C0FDF1FCF56F003E2 +S3150000E8268A01D161F851B09FDBE640DCE67FF161F3 +S3150000E836D88A029FDCE6F558F0EF0391DF06F6BFAD +S3150000E84696EBEF09F556F0F5DAE6F599EBEE3C01AF +S3150000E85660D1DF3688005C0F72318EBF8EEB624C5C +S3150000E8660861C8EE2601D161F8EE2001E5DAE6F583 +S3150000E87690EBF363318E1662614361C8EE040117AD +S3150000E8860516A78B18D2E683EFE94C0161E8EE81FF +S3150000E896008A017088005C0FBF8EEB44B104DC1C55 +S3150000E8A6CF4AF030CF4BF0028F72A49F4CF0344A19 +S3150000E8B6F052083059071006EC0AE00044080061D9 +S3150000E8C6D8EEC800F590EB34DDE6E6B800F3A8040A +S3150000E8D616630C02318E0716838B99A800BF92EB3E +S3150000E8E6634C06A800A1B800A5DFE3E594EBCF4A82 +S3150000E8F6F030F54BF08F72A49F4CF0344AF0520874 +S3150000E906305907FC0AE000CFDAE603CF98EB05EEAE +S3150000E9162CFF4C02DF67634C03DF62F6BF96EBC043 +S3150000E926C1E994EB636170605C0FDF4E63819F946F +S3150000E936EB8802D1DD044C08DC33E19802DB8EEB72 +S3150000E94613B804AF92EBB80043DE348802318E0565 +S3150000E95616C2C38B48DDE6A313BF92EBA804334366 +S3150000E966DD1D88028198024C08DCD2EF1F318E121B +S3150000E976AF8EEB234292EB61D3C0F5DAE6EF0DCF0D +S3150000E986DAE604E55CF030E803BF5AF01006D71362 +S3150000E99644DF07C5C6DF478FDAE64C01DD404C0487 +S3150000E9A6DD3C4C05DD388B705CF0DF32605C0F7247 +S3150000E9B6318EBF8EEB624C08DE24E5DAE6E590EB97 +S3150000E9C6F363318E14626143DE0B150714A58918AD +S3150000E9D6D2E683EFECE55CF030E803BF5AF0D7C128 +S3150000E9E6C3C440DAE60561F8D599EB61E8EEA10005 +S3150000E9F6F55CF030E803BF5AF0A800F743DF06F5EA +S3150000EA06DAE6F1C2D7440800DE31609F4AF05107C4 +S3150000EA16364BF0CC005591A7DFF9364BF0A800A18E +S3150000EA2604FFFF12DD07899BA5A713EFF3344AF00F +S3150000EA365208305907FC0AE000EFC4E599EB369A0E +S3150000EA46EBA104FFFF12DD07899BA5A713EFF3A829 +S3150000EA5600BF52F0A800120C109F4AF0629F4BF0BE +S3150000EA66344CF0F7369AEB8B99A313BF54F0440651 +S3150000EA7600A5A7DCF2344AF05208305907FC0AE032 +S3150000EA8600E598EBF6BF96EBE557F0E556F0EE7126 +S3150000EA96FFE1C2D7C3C71440DAE605DF48D599EBCE +S3150000EAA6DF4315440800DE3D649F4AF0F383637333 +S3150000EAB64C07194AF055DFF5F198008800318E1299 +S3150000EAC645DE0FA80203168800738B184BF0836386 +S3150000EAD6EFE7344AF05208305907FC0AE000F6BF61 +S3150000EAE65AF0F1EF01E11004D7F17319D2E60019D5 +S3150000EAF64AF000199AEB0019DDE60083634C08DF3D +S3150000EB06E9F5DAE6F5DBE6CFDCE60AF6BF8EEBBF1D +S3150000EB1692EBBF96EBBF52F0BF54F0F590EBF5942F +S3150000EB26EBF598EBF599EBF556F0F557F0F558F049 +S3150000EB3630E803BF5AF0F55CF0D78FDAE6734C037C +S3150000EB46DF204098EB05DF12AF96EB4276A461D341 +S3150000EB5606F5DAE6F3EF0BA1EF05CF98EB05F6BF60 +S3150000EB6696EB405CF001DF18AF5AF04278A461D309 +S3150000EB760CF5DAE6F55CF030E803F3EF06A1EF03F1 +S3150000EB8630E803BF5AF0634C05DF2F8F56F07391BA +S3150000EB96DF254098EB01DF18AF96EB4274A461D3EC +S3150000EBA60CF556F0F5DAE6F599EBF3EF0AA1EF0464 +S3150000EBB6E598EBF6BF96EB634C0361E8EEBC008F77 +S3150000EBC658F0819F58F0D5DBE6DD574FDCE661E36A +S3150000EBD6EEA800E558F0AF52F01604F9FF12EB5412 +S3150000EBE6F015435120DE4B0F57F09F4AF0F315A15F +S3150000EBF61615049AEB1489184BF017BF54F0836365 +S3150000EC064C07A7A5DFF0344AF05208305907FC0A2C +S3150000EC16E0008F57F0815C0F9F57F08FDBE64C01C3 +S3150000EC26DF0BE556F0F6BF96EBE598EBD7919FDB43 +S3150000EC36E6D70F57F09F4AF0F31725607283637382 +S3150000EC464C07194AF055DFF515A11615049AEB146B +S3150000EC56F363614ADE0D89184BF017BF54F083A79C +S3150000EC66A5EFEE344AF05208305907FC0AE000F5E3 +S3150000EC7656F0F5DAE6F599EBF5DBE6D7D5DAE6E111 +S3150000EC8661E8F1D7FC8FBE009F4CE5FC93BE009F62 +S3150000EC964DE58D01312309D576F061F8FC88F10042 +S3150000ECA64064F001DF19F564F0FCF7E600FC40EB82 +S3150000ECB600AF52E5F74361F8FE7102FC8CF20040A4 +S3150000ECC665F001DF06F565F0FE24004066F0016199 +S3150000ECD6F8F566F04067F001DF06F567F0FECB0251 +S3150000ECE64068F001DF07F568F0EC7EF100D7D7D56E +S3150000ECF662F0F161E8EEF4005103FC37F300718C23 +S3150000ED0636B4F0510871B1FC37F300718C36B4F0A5 +S3150000ED16510671C1FC37F300718C36B4F05104719B +S3150000ED26D1FC37F300718C36B5F0F171A1FC37F3DF +S3150000ED3600718C36B5F0E171E1FC37F300718C3663 +S3150000ED46B7F0510271D1FC37F300718C36B8F05129 +S3150000ED560571C1FC37F300718C36B9F05107718124 +S3150000ED66FC37F300718C36B9F05207719130B4F066 +S3150000ED76FC7EF3009FBBF05103FC37F300718C3623 +S3150000ED86BCF0F171C1FC37F300718C36BCF0510250 +S3150000ED9671E1FC37F300718C36BCF0510571F1FC5C +S3150000EDA637F300718C36BDF051067181FC37F300DE +S3150000EDB6718C36BDF0510871C1FC37F300718C3683 +S3150000EDC6BEF051077181FC37F300718C36BFF0E156 +S3150000EDD67181FC37F300718C36BFF051047191FCDA +S3150000EDE637F30036BFF0718C71C1EF1B7319B4F09F +S3150000EDF60019BCF00083634C07DFF1520730B4F00C +S3150000EE06FC7EF3009FBBF0520730BCF0FC7EF3009D +S3150000EE169FC3F0D7D7D7D72024E6C1AEF80404009F +S3150000EE26B802340F00320014FC66A900C0880281BD +S3150000EE36DF41F1734C08DE07C6C709DEA3EF184C9F +S3150000EE4619DE07318E04DEA3EF094C21DE0B318E67 +S3150000EE5604DEA314C6C78961D983634C21DFD53086 +S3150000EE662100C1340F00320014AEF8040400FC8AF7 +S3150000EE76A700C0E6C1AEF8040400B802340F00329B +S3150000EE860018FC66A900C0880281DF4CF1734C109D +S3150000EE96DE07C6C709FFA3EF234C14DE07318E042F +S3150000EEA6FFA3EF144C18DE07318E04FFA3EF094CBF +S3150000EEB620DE0B318E04FFA314C6C78961D983638E +S3150000EEC64C20DFCA302000C1340F00320018AEF8DD +S3150000EED6040400FC8AA700C01024D78F0C03F33164 +S3150000EEE63501E38F04033115418F0C03313504A236 +S3150000EEF64AE5E38F48E5724C0ADE0FAF4AE54464FD +S3150000EF0600DC0762819F48E5EF11624C0ADC1BAF05 +S3150000EF164AE544E803DC13CF48E50A340403F6BFA2 +S3150000EF264AE5BA08A9085CFC08B963D7AF0C0360C2 +S3150000EF36313545FCFAAD006031153DAF74F0F74347 +S3150000EF46DF358F76F073D1DF06306400BF74F06369 +S3150000EF564C05DE0BD1DD08FE3100306400EF0A4CAD +S3150000EF6605DC09FE250030E803BF74F08F76F04C09 +S3150000EF7605DE04819F76F0D7D576F0DD0AAF74F00C +S3150000EF86F74361F8F576F0F550E5D7345003F7897F +S3150000EF96718B990089718A99AF0C0343DD04F6BF1C +S3150000EFA60C035404A9085CFC08B9D7F1FC42F3002B +S3150000EFB614321D01CEFB01316C31AE03BF7EF01556 +S3150000EFC6443201DE128F63F0819F63F04CFADC2D2A +S3150000EFD6F563F0E562F0D7445002DC138F63F081E7 +S3150000EFE69F63F04CFADC16F563F0CF62F002D704A5 +S3150000EFF6BDFE44FC00DE06F563F0F562F0D730F49C +S3150000F00601BF6AF030D007BF52E5E572F0F1731919 +S3150000F016B4F00019BCF00083634C08DFF1D7D7FCC7 +S3150000F026B2B00034B801F6B9BA40BA02BA42B9BAB1 +S3150000F03640FCC2B10036F000710B3071C3718371AA +S3150000F0469371230671330671030C71330371330111 +S3150000F056714301710303712201AF0403086C0408AE +S3150000F066BF0403AF2603086C0108BF260300AF26BC +S3150000F07603086C0408BF26037108C502716BD071BC +S3150000F0866BD48D0131750261FD716BD0716AD471D5 +S3150000F0962301FC66AE00FC95AE00ECA2B000C3C62A +S3150000F0A66148880470DF118981739963614861D864 +S3150000F0B6D7CA0000CC0001D7CA0000CC0000D73062 +S3150000F0C60500C18D01317A346FF0326EF0E0FECD67 +S3150000F0D6FFC0300500C18D01317A3471F03270F00F +S3150000F0E6F0FEBAFFC04070F001DF05F572F0EF0CD6 +S3150000F0F6406EF001DF06E572F07133018F72F04F54 +S3150000F10680F0DD0D9F80F0D1DF07340603A95CFC95 +S3150000F116B9D7D7148F7EF099D7C1C3C664318EA1ED +S3150000F12604FFFF12DD0BC4C58B99A7A5C0C513EF57 +S3150000F136EFC0D7540832BCF0308AF0EFDC712301F9 +S3150000F146511F5F85F09F85F0302002BF82F0AF84A5 +S3150000F156F0F05CE0BF84F051806F89F05C8F9F8988 +S3150000F166F0AF88F0F05CF0BF88F0F6BF86F0540882 +S3150000F17632BCF0308AF0EFA1D7FCF5EC00F6BF4EB4 +S3150000F186E5D78F99E570914C02DE59604C02DF2374 +S3150000F196AFA4E5F743DF17364DE5AFA2E5BFA4E515 +S3150000F1A631850B8FAFE54C05DE04819FAFE5F5573C +S3150000F1B6E5EF318F57E573D1DD2AAFA4E56168DF48 +S3150000F1C623364DE563919F57E5AFA2E5BFA4E5312A +S3150000F1D6851230B8E5FCCBAB008FAFE54C05DE04F7 +S3150000F1E6819FAFE5AF4EE5F743DF1E364CE5318529 +S3150000F1F618540832BCF0308AF0FE1DFF3082F0FC4F +S3150000F206CBAB00306400BF4EE5D7C11413B98A03F1 +S3150000F2165C1F9A0315A1A114A9F05CE0B9C4C58ABE +S3150000F2260771FA5C8F9A071504060014A9F05CF0BC +S3150000F236B9A80004040014F6B9C0D7F1731958E545 +S3150000F246001961E500196AE50083634C09DFEDD70D +S3150000F2564C09DE05731961E501D74C09DE057319FC +S3150000F2666AE501D74C09DE0B318E0461E51489CABD +S3150000F2760000D7F1D74C09DE0B318E046AE51489F6 +S3150000F286CA0000D7F1D7C7F19800FE52004C01DF3D +S3150000F2961A88005002D60474E514A9A1B9441400CC +S3150000F2A6DC328800731958E501EF29D1DF2688007C +S3150000F2B65002D6127974E5440600DC06300500785D +S3150000F2C674E5440000DF098800731958E500EF0469 +S3150000F2D6B17874E588008198004C09DFADC0D7D1B6 +S3150000F2E6DD1A91DD1D91DD2091DD2391DD2691DD6F +S3150000F2F62B91DD2D91DD2E91DD32F1D78D0C315A14 +S3150000F306EF168D03314AEF108D08311AEF0A8D0874 +S3150000F316312AEF048D08313A5C01EF0DE15B08EF07 +S3150000F326088D06EFF18D01317A7C01D7E15B03EF9B +S3150000F336F84C09DE05730958E5D7F1D7D1DF085031 +S3150000F34602D61279DCF0D7F6D730DCF0ECD4B10071 +S3150000F3561653FF62318EA104FFFF1463DD175008B2 +S3150000F3667D7261017362317504637C1D739063DF80 +S3150000F376F0A715EFE27CFFD71653FF62318EA10484 +S3150000F386FFFF1463DD0A7D73A709D8A47315EFEF93 +S3080000F3967CFFD71C +S3060000F399FF6E +S3150000F39A00000000000000003200C800785634124F +S3150000F3AA11121314222431333536377F727173786A +S3150000F3BA7E00112233445566778899AABBCCDDEEC6 +S3150000F3CAFF000000000000000000000003036400C4 +S3150000F3DA0000D00700010300000000000000000042 +S3150000F3EA000000000000000000000000000000000D +S3150000F3FA00000000000000000000000000000000FD +S30B0000F40A000000000000F6 +S3150000F410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S3150000F420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S3150000F430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S3150000F440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S3150000F450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S3150000F460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S3150000F470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S3150000F480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S3150000F490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S3150000F4A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S3150000F4B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S3150000F4C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S3150000F4D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S3150000F4E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S3150000F4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S3150000F500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S3150000F510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S3150000F520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S3150000F530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S3150000F540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S3150000F550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S3150000F560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S3150000F570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S3150000F580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S3150000F590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S3150000F5A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S3150000F5B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S3150000F5C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S3150000F5D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S3150000F5E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S3150000F5F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S3150000F600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S3150000F610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S3150000F620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S3150000F630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S3150000F640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S3150000F650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S3150000F660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S3150000F670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S3150000F680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S3150000F690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S3150000F6A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S3150000F6B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S3150000F6C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S3150000F6D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S3150000F6E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S3150000F6F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S3150000F700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S3150000F710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S3150000F720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S3150000F730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S3150000F740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S3150000F750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S3150000F760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S3150000F770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S3150000F780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S3150000F790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S3150000F7A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S3150000F7B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S3150000F7C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S3150000F7D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S3150000F7E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S3150000F7F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S3150000F800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S3150000F810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S3150000F820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S3150000F830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S3150000F840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S3150000F850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S3150000F860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S3150000F870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S3150000F880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S3150000F890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S3150000F8A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S3150000F8B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S3150000F8C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S3150000F8D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S3150000F8E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S3150000F8F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S3150000F900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S3150000F910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S3150000F920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S3150000F930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S3150000F940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S3150000F950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S3150000F960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S3150000F970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S3150000F980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S3150000F990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S3150000F9A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S3150000F9B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S3150000F9C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S3150000F9D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S3150000F9E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S3150000F9F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S3150000FA00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S3150000FA10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S3150000FA20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S3150000FA30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S3150000FA40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S3150000FA50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S3150000FA60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S3150000FA70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S3150000FA80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S3150000FA90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S3150000FAA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S3150000FAB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S3150000FAC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S3150000FAD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S3150000FAE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S3150000FAF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S3150000FB00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S3150000FB10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S3150000FB20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S3150000FB30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S3150000FB40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S3150000FB50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S3150000FB60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S3150000FB70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S3150000FB80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S3150000FB90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S3150000FBA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S3150000FBB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S3150000FBC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S3150000FBD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S3150000FBE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S3150000FBF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S3150000FC00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S3150000FC10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S3150000FC20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S3150000FC30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S3150000FC40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S3150000FC50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S3150000FC60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S3150000FC70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S3150000FC80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S3150000FC90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S3150000FCA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S3150000FCB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S3150000FCC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S3150000FCD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S3150000FCE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S3150000FCF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S3150000FD00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S3150000FD10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S3150000FD20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S3150000FD30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S3150000FD40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S3150000FD50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S3150000FD60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S3150000FD70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S3150000FD80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S3150000FD90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S3150000FDA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S3150000FDB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S3150000FDC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S3150000FDD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S3150000FDE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S3150000FDF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S3150000FE00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S3150000FE10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S3150000FE20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S3150000FE30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S3150000FE40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S3150000FE50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S3150000FE60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S3150000FE70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S3150000FE80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S3150000FE90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S3150000FEA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S3150000FEB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S3150000FEC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S3150000FED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S3150000FEE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S3150000FEF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S3150000FF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S3150000FF10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S3150000FF20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S3150000FF30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S3150000FF40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S3150000FF50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S3150000FF60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S3150000FF70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S3150000FF80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S3150000FF90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S3150000FFA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S3150000FFB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S3150000FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S3150000FFD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S3150000FFE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S3150000FFF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S31500010010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S31500010020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S31500010030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S31500010040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S31500010050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500010060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500010070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500010080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500010090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S315000100A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S315000100B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S315000100C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S315000100D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S315000100E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S315000100F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S31500010100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S31500010110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S31500010120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S31500010130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S31500010140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S31500010150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500010160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500010170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500010180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500010190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S315000101A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S315000101B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S315000101C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S315000101D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S315000101E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S315000101F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S31500010200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S31500010210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S31500010220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S31500010230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S31500010240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S31500010250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500010260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500010270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500010280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500010290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S315000102A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S315000102B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S315000102C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S315000102D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S315000102E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S315000102F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S31500010300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S31500010310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S31500010320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S31500010330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S31500010340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S31500010350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500010360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500010370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500010380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500010390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S315000103A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S315000103B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S315000103C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S315000103D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S315000103E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S315000103F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S31500010400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S31500010410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S31500010420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S31500010430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S31500010440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S31500010450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500010460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500010470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500010480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500010490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S315000104A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S315000104B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S315000104C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S315000104D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S315000104E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S315000104F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S31500010500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S31500010510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S31500010520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S31500010530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S31500010540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S31500010550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500010560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500010570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500010580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500010590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S315000105A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S315000105B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S315000105C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S315000105D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S315000105E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S315000105F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S31500010600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S31500010610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S31500010620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S31500010630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S31500010640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S31500010650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500010660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500010670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500010680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500010690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S315000106A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S315000106B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S315000106C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S315000106D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S315000106E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S315000106F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S31500010700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S31500010710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S31500010720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S31500010730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S31500010740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S31500010750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500010760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500010770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500010780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500010790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S315000107A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S315000107B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S315000107C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S315000107D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S315000107E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S315000107F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S31500010800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S31500010810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S31500010820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S31500010830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S31500010840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S31500010850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500010860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500010870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500010880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500010890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S315000108A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S315000108B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S315000108C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S315000108D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S315000108E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S315000108F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S31500010900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S31500010910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S31500010920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S31500010930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S31500010940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S31500010950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500010960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500010970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500010980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500010990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S315000109A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S315000109B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S315000109C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S315000109D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S315000109E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S315000109F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S31500010A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500010A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500010A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500010A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500010A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500010A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500010A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500010A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500010A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500010A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500010AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500010AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500010AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500010AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500010AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500010AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500010B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500010B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500010B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500010B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500010B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500010B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500010B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500010B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500010B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500010B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500010BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500010BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500010BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500010BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500010BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500010BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500010C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500010C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500010C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500010C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500010C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500010C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500010C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500010C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500010C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500010C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500010CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500010CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500010CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500010CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500010CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500010CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500010D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500010D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500010D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500010D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500010D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500010D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500010D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500010D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500010D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500010D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500010DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500010DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500010DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500010DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500010DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500010DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500010E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500010E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500010E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500010E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500010E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500010E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500010E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500010E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500010E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500010E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500010EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500010EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500010EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500010ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500010EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500010EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500010F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500010F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500010F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500010F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500010F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500010F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500010F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500010F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500010F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500010F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500010FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500010FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500010FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500010FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500010FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500010FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S31500011010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S31500011020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S31500011030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S31500011040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500011050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500011060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500011070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500011080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500011090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S315000110A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S315000110B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S315000110C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S315000110D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S315000110E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S315000110F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S31500011100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S31500011110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S31500011120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S31500011130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S31500011140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500011150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500011160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500011170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500011180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500011190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S315000111A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S315000111B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S315000111C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S315000111D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S315000111E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S315000111F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S31500011200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S31500011210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S31500011220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S31500011230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S31500011240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500011250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500011260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500011270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500011280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500011290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S315000112A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S315000112B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S315000112C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S315000112D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S315000112E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S315000112F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S31500011300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S31500011310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S31500011320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S31500011330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S31500011340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500011350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500011360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500011370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500011380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500011390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S315000113A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S315000113B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S315000113C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S315000113D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S315000113E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S315000113F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S31500011400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S31500011410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S31500011420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S31500011430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S31500011440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500011450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500011460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500011470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500011480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500011490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S315000114A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S315000114B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S315000114C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S315000114D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S315000114E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S315000114F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S31500011500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S31500011510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S31500011520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S31500011530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S31500011540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500011550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500011560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500011570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500011580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500011590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S315000115A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S315000115B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S315000115C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S315000115D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S315000115E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S315000115F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S31500011600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S31500011610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S31500011620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S31500011630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S31500011640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500011650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500011660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500011670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500011680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500011690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S315000116A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S315000116B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S315000116C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S315000116D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S315000116E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S315000116F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S31500011700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S31500011710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S31500011720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S31500011730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S31500011740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500011750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500011760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500011770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500011780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500011790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S315000117A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S315000117B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S315000117C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S315000117D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S315000117E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S315000117F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S31500011800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S31500011810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S31500011820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S31500011830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S31500011840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500011850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500011860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500011870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500011880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500011890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S315000118A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S315000118B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S315000118C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S315000118D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S315000118E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S315000118F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S31500011900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S31500011910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S31500011920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S31500011930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S31500011940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500011950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500011960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500011970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500011980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500011990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S315000119A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S315000119B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S315000119C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S315000119D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S315000119E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S315000119F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S31500011A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500011A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500011A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500011A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500011A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500011A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500011A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500011A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500011A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500011A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500011AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500011AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500011AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500011AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500011AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500011AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500011B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500011B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500011B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500011B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500011B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500011B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500011B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500011B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500011B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500011B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500011BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500011BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500011BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500011BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500011BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500011BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500011C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500011C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500011C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500011C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500011C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500011C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500011C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500011C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500011C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500011C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500011CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500011CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500011CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500011CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500011CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500011CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500011D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500011D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500011D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500011D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500011D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500011D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500011D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500011D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500011D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500011D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500011DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500011DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500011DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500011DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500011DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500011DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500011E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500011E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500011E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500011E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500011E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500011E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500011E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500011E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500011E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500011E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500011EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500011EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500011EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500011ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500011EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500011EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500011F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500011F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500011F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500011F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500011F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500011F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500011F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500011F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500011F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500011F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500011FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500011FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500011FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500011FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500011FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500011FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S31500012010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S31500012020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S31500012030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500012040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500012050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500012060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500012070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500012080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500012090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S315000120A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S315000120B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S315000120C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S315000120D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S315000120E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S315000120F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S31500012100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S31500012110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S31500012120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S31500012130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500012140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500012150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500012160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500012170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500012180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500012190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S315000121A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S315000121B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S315000121C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S315000121D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S315000121E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S315000121F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S31500012200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S31500012210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S31500012220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S31500012230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500012240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500012250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500012260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500012270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500012280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500012290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S315000122A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S315000122B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S315000122C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S315000122D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S315000122E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S315000122F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S31500012300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S31500012310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S31500012320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S31500012330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500012340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500012350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500012360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500012370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500012380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500012390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S315000123A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S315000123B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S315000123C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S315000123D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S315000123E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S315000123F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S31500012400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S31500012410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S31500012420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S31500012430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500012440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500012450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500012460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500012470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500012480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500012490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S315000124A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S315000124B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S315000124C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S315000124D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S315000124E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S315000124F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S31500012500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S31500012510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S31500012520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S31500012530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500012540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500012550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500012560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500012570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500012580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500012590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S315000125A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S315000125B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S315000125C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S315000125D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S315000125E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S315000125F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S31500012600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S31500012610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S31500012620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S31500012630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500012640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500012650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500012660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500012670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500012680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500012690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S315000126A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S315000126B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S315000126C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S315000126D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S315000126E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S315000126F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S31500012700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S31500012710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S31500012720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S31500012730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500012740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500012750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500012760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500012770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500012780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500012790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S315000127A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S315000127B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S315000127C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S315000127D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S315000127E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S315000127F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S31500012800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S31500012810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S31500012820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S31500012830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500012840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500012850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500012860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500012870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500012880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500012890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S315000128A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S315000128B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S315000128C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S315000128D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S315000128E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S315000128F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S31500012900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S31500012910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S31500012920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S31500012930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500012940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500012950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500012960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500012970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500012980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500012990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S315000129A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S315000129B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S315000129C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S315000129D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S315000129E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S315000129F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S31500012A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500012A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500012A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500012A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500012A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500012A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500012A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500012A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500012A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500012A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500012AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500012AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500012AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500012AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500012AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500012AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500012B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500012B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500012B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500012B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500012B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500012B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500012B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500012B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500012B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500012B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500012BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500012BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500012BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500012BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500012BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500012BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500012C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500012C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500012C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500012C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500012C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500012C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500012C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500012C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500012C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500012C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500012CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500012CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500012CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500012CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500012CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500012CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500012D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500012D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500012D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500012D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500012D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500012D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500012D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500012D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500012D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500012D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500012DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500012DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500012DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500012DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500012DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500012DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500012E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500012E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500012E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500012E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500012E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500012E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500012E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500012E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500012E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500012E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500012EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500012EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500012EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500012ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500012EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500012EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500012F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500012F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500012F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500012F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500012F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500012F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500012F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500012F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500012F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500012F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500012FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500012FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500012FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500012FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500012FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500012FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S31500013010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S31500013020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500013030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500013040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500013050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500013060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500013070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500013080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500013090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S315000130A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S315000130B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S315000130C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S315000130D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S315000130E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S315000130F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S31500013100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S31500013110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S31500013120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500013130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500013140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500013150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500013160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500013170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500013180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500013190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S315000131A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S315000131B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S315000131C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S315000131D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S315000131E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S315000131F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S31500013200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S31500013210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S31500013220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500013230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500013240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500013250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500013260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500013270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500013280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500013290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S315000132A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S315000132B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S315000132C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S315000132D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S315000132E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S315000132F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S31500013300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S31500013310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S31500013320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500013330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500013340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500013350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500013360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500013370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500013380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500013390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S315000133A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S315000133B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S315000133C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S315000133D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S315000133E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S315000133F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S31500013400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S31500013410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S31500013420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500013430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500013440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500013450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500013460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500013470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500013480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500013490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S315000134A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S315000134B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S315000134C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S315000134D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S315000134E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S315000134F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S31500013500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S31500013510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S31500013520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500013530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500013540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500013550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500013560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500013570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500013580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500013590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S315000135A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S315000135B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S315000135C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S315000135D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S315000135E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S315000135F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S31500013600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S31500013610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S31500013620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500013630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500013640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500013650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500013660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500013670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500013680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500013690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S315000136A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S315000136B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S315000136C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S315000136D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S315000136E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S315000136F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S31500013700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S31500013710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S31500013720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500013730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500013740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500013750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500013760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500013770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500013780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500013790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S315000137A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S315000137B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S315000137C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S315000137D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S315000137E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S315000137F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S31500013800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S31500013810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S31500013820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500013830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500013840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500013850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500013860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500013870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500013880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500013890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S315000138A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S315000138B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S315000138C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S315000138D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S315000138E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S315000138F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S31500013900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S31500013910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S31500013920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500013930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500013940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500013950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500013960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500013970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500013980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500013990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S315000139A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S315000139B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S315000139C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S315000139D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S315000139E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S315000139F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S31500013A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500013A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500013A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500013A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500013A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500013A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500013A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500013A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500013A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500013A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500013AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500013AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500013AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500013AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500013AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500013AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500013B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500013B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500013B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500013B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500013B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500013B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500013B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500013B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500013B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500013B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500013BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500013BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500013BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500013BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500013BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500013BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500013C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500013C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500013C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500013C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500013C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500013C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500013C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500013C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500013C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500013C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500013CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500013CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500013CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500013CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500013CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500013CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500013D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500013D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500013D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500013D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500013D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500013D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500013D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500013D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500013D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500013D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500013DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500013DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500013DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500013DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500013DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500013DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500013E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500013E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500013E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500013E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500013E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500013E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500013E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500013E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500013E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500013E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500013EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500013EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500013EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500013ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500013EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500013EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500013F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500013F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500013F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500013F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500013F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500013F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500013F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500013F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500013F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500013F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500013FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500013FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500013FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500013FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500013FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500013FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S31500014010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500014020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500014030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500014040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500014050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500014060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500014070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500014080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S31500014090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S315000140A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S315000140B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S315000140C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S315000140D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S315000140E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S315000140F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S31500014100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S31500014110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500014120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500014130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500014140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500014150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500014160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500014170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500014180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S31500014190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S315000141A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S315000141B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S315000141C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S315000141D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S315000141E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S315000141F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S31500014200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S31500014210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500014220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500014230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500014240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500014250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500014260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500014270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500014280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S31500014290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S315000142A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S315000142B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S315000142C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S315000142D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S315000142E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S315000142F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S31500014300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S31500014310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500014320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500014330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500014340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500014350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500014360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500014370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500014380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S31500014390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S315000143A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S315000143B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S315000143C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S315000143D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S315000143E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S315000143F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S31500014400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S31500014410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500014420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500014430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500014440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500014450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500014460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500014470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500014480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S31500014490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S315000144A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S315000144B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S315000144C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S315000144D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S315000144E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S315000144F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S31500014500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S31500014510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500014520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500014530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500014540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500014550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500014560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500014570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500014580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S31500014590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S315000145A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S315000145B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S315000145C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S315000145D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S315000145E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S315000145F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S31500014600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S31500014610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500014620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500014630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500014640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500014650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500014660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500014670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500014680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S31500014690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S315000146A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S315000146B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S315000146C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S315000146D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S315000146E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S315000146F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S31500014700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S31500014710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500014720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500014730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500014740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500014750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500014760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500014770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500014780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S31500014790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S315000147A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S315000147B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S315000147C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S315000147D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S315000147E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S315000147F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S31500014800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S31500014810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500014820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500014830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500014840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500014850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500014860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500014870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500014880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S31500014890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S315000148A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S315000148B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S315000148C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S315000148D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S315000148E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S315000148F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S31500014900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S31500014910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500014920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500014930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500014940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500014950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500014960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500014970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500014980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S31500014990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S315000149A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S315000149B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S315000149C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S315000149D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S315000149E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S315000149F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S31500014A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500014A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500014A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500014A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500014A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500014A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500014A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500014A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500014A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500014A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500014AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500014AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500014AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500014AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500014AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500014AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500014B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500014B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500014B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500014B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500014B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500014B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500014B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500014B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500014B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500014B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500014BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500014BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500014BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500014BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500014BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500014BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500014C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500014C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500014C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500014C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500014C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500014C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500014C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500014C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500014C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500014C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500014CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500014CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500014CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500014CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500014CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500014CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500014D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500014D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500014D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500014D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500014D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500014D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500014D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500014D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500014D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500014D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500014DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500014DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500014DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500014DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500014DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500014DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500014E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500014E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500014E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500014E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500014E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500014E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500014E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500014E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500014E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500014E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500014EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500014EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500014EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500014ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500014EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500014EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500014F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500014F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500014F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500014F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500014F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500014F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500014F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500014F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500014F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500014F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500014FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500014FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500014FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500014FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500014FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500014FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500015010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500015020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500015030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500015040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500015050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500015060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500015070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S31500015080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S31500015090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S315000150A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S315000150B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S315000150C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S315000150D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S315000150E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S315000150F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S31500015100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500015110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500015120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500015130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500015140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500015150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500015160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500015170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S31500015180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S31500015190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S315000151A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S315000151B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S315000151C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S315000151D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S315000151E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S315000151F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S31500015200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500015210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500015220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500015230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500015240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500015250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500015260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500015270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S31500015280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S31500015290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S315000152A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S315000152B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S315000152C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S315000152D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S315000152E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S315000152F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S31500015300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500015310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500015320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500015330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500015340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500015350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500015360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500015370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S31500015380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S31500015390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S315000153A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S315000153B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S315000153C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S315000153D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S315000153E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S315000153F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S31500015400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500015410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500015420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500015430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500015440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500015450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500015460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500015470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S31500015480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S31500015490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S315000154A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S315000154B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S315000154C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S315000154D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S315000154E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S315000154F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S31500015500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500015510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500015520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500015530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500015540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500015550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500015560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500015570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S31500015580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S31500015590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S315000155A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S315000155B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S315000155C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S315000155D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S315000155E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S315000155F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S31500015600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500015610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500015620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500015630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500015640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500015650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500015660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500015670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S31500015680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S31500015690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S315000156A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S315000156B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S315000156C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S315000156D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S315000156E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S315000156F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S31500015700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500015710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500015720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500015730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500015740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500015750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500015760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500015770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S31500015780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S31500015790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S315000157A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S315000157B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S315000157C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S315000157D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S315000157E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S315000157F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S31500015800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500015810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500015820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500015830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500015840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500015850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500015860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500015870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S31500015880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S31500015890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S315000158A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S315000158B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S315000158C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S315000158D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S315000158E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S315000158F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S31500015900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500015910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500015920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500015930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500015940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500015950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500015960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500015970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S31500015980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S31500015990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S315000159A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S315000159B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S315000159C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S315000159D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S315000159E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S315000159F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S31500015A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500015A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500015A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500015A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500015A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500015A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500015A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500015A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500015A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500015A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500015AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500015AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500015AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500015AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500015AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500015AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500015B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500015B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500015B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500015B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500015B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500015B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500015B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500015B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500015B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500015B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500015BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500015BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500015BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500015BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500015BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500015BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500015C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500015C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500015C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500015C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500015C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500015C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500015C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500015C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500015C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500015C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500015CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500015CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500015CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500015CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500015CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500015CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500015D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500015D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500015D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500015D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500015D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500015D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500015D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500015D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500015D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500015D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500015DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500015DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500015DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500015DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500015DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500015DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500015E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500015E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500015E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500015E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500015E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500015E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500015E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500015E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500015E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500015E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500015EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500015EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500015EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500015ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500015EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500015EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500015F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500015F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500015F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500015F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500015F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500015F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500015F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500015F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500015F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500015F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500015FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500015FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500015FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500015FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500015FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500015FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500016010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500016020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500016030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500016040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500016050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500016060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S31500016070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S31500016080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S31500016090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S315000160A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S315000160B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S315000160C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S315000160D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S315000160E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S315000160F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S31500016100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500016110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500016120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500016130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500016140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500016150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500016160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S31500016170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S31500016180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S31500016190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S315000161A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S315000161B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S315000161C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S315000161D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S315000161E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S315000161F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S31500016200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500016210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500016220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500016230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500016240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500016250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500016260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S31500016270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S31500016280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S31500016290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S315000162A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S315000162B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S315000162C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S315000162D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S315000162E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S315000162F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S31500016300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500016310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500016320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500016330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500016340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500016350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500016360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S31500016370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S31500016380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S31500016390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S315000163A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S315000163B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S315000163C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S315000163D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S315000163E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S315000163F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S31500016400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500016410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500016420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500016430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500016440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500016450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500016460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S31500016470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S31500016480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S31500016490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S315000164A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S315000164B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S315000164C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S315000164D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S315000164E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S315000164F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S31500016500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500016510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500016520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500016530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500016540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500016550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500016560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S31500016570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S31500016580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S31500016590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S315000165A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S315000165B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S315000165C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S315000165D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S315000165E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S315000165F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S31500016600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500016610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500016620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500016630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500016640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500016650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500016660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S31500016670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S31500016680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S31500016690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S315000166A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S315000166B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S315000166C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S315000166D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S315000166E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S315000166F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S31500016700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500016710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500016720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500016730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500016740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500016750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500016760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S31500016770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S31500016780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S31500016790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S315000167A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S315000167B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S315000167C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S315000167D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S315000167E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S315000167F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S31500016800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500016810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500016820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500016830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500016840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500016850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500016860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S31500016870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S31500016880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S31500016890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S315000168A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S315000168B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S315000168C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S315000168D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S315000168E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S315000168F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S31500016900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500016910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500016920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500016930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500016940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500016950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500016960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S31500016970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S31500016980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S31500016990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S315000169A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S315000169B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S315000169C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S315000169D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S315000169E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S315000169F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S31500016A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500016A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500016A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500016A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500016A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500016A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500016A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500016A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500016A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500016A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500016AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500016AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500016AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500016AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500016AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500016AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500016B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500016B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500016B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500016B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500016B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500016B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500016B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500016B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500016B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500016B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500016BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500016BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500016BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500016BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500016BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500016BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500016C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500016C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500016C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500016C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500016C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500016C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500016C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500016C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500016C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500016C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500016CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500016CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500016CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500016CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500016CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500016CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500016D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500016D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500016D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500016D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500016D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500016D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500016D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500016D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500016D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500016D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500016DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500016DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500016DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500016DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500016DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500016DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500016E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500016E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500016E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500016E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500016E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500016E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500016E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500016E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500016E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500016E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500016EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500016EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500016EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500016ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500016EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500016EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500016F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500016F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500016F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500016F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500016F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500016F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500016F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500016F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500016F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500016F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500016FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500016FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500016FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500016FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500016FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500016FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500017010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500017020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500017030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500017040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500017050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S31500017060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S31500017070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S31500017080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S31500017090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S315000170A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S315000170B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S315000170C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S315000170D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S315000170E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S315000170F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S31500017100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500017110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500017120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500017130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500017140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500017150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S31500017160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S31500017170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S31500017180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S31500017190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S315000171A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S315000171B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S315000171C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S315000171D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S315000171E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S315000171F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S31500017200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500017210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500017220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500017230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500017240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500017250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S31500017260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S31500017270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S31500017280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S31500017290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S315000172A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S315000172B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S315000172C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S315000172D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S315000172E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S315000172F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S31500017300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500017310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500017320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500017330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500017340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500017350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S31500017360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S31500017370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S31500017380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S31500017390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S315000173A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S315000173B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S315000173C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S315000173D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S315000173E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S315000173F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S31500017400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500017410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500017420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500017430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500017440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500017450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S31500017460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S31500017470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S31500017480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S31500017490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S315000174A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S315000174B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S315000174C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S315000174D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S315000174E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S315000174F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S31500017500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500017510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500017520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500017530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500017540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500017550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S31500017560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S31500017570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S31500017580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S31500017590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S315000175A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S315000175B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S315000175C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S315000175D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S315000175E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S315000175F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S31500017600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500017610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500017620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500017630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500017640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500017650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S31500017660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S31500017670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S31500017680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S31500017690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S315000176A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S315000176B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S315000176C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S315000176D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S315000176E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S315000176F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S31500017700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500017710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500017720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500017730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500017740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500017750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S31500017760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S31500017770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S31500017780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S31500017790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S315000177A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S315000177B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S315000177C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S315000177D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S315000177E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S315000177F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S31500017800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500017810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500017820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500017830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500017840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500017850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S31500017860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S31500017870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S31500017880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S31500017890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S315000178A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S315000178B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S315000178C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S315000178D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S315000178E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S315000178F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S31500017900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500017910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500017920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500017930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500017940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500017950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S31500017960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S31500017970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S31500017980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S31500017990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S315000179A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S315000179B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S315000179C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S315000179D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S315000179E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S315000179F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S31500017A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500017A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500017A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500017A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500017A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500017A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500017A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500017A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500017A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500017A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500017AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500017AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500017AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500017AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500017AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500017AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500017B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500017B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500017B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500017B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500017B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500017B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500017B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500017B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500017B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500017B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500017BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500017BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500017BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500017BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500017BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500017BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500017C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500017C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500017C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500017C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500017C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500017C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500017C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500017C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500017C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500017C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500017CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500017CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500017CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500017CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500017CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500017CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500017D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500017D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500017D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500017D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500017D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500017D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500017D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500017D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500017D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500017D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500017DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500017DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500017DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500017DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500017DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500017DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500017E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500017E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500017E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500017E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500017E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500017E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500017E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500017E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500017E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500017E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500017EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500017EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500017EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500017ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500017EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500017EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500017F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500017F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500017F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500017F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500017F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500017F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500017F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500017F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500017F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500017F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500017FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500017FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500017FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500017FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500017FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500017FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500018010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500018020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500018030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500018040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S31500018050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S31500018060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S31500018070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S31500018080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S31500018090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S315000180A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S315000180B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S315000180C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S315000180D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S315000180E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S315000180F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S31500018100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500018110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500018120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500018130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500018140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S31500018150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S31500018160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S31500018170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S31500018180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S31500018190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S315000181A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S315000181B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S315000181C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S315000181D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S315000181E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S315000181F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S31500018200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500018210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500018220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500018230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500018240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S31500018250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S31500018260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S31500018270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S31500018280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S31500018290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S315000182A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S315000182B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S315000182C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S315000182D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S315000182E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S315000182F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S31500018300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500018310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500018320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500018330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500018340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S31500018350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S31500018360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S31500018370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S31500018380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S31500018390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S315000183A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S315000183B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S315000183C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S315000183D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S315000183E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S315000183F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S31500018400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500018410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500018420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500018430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500018440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S31500018450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S31500018460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S31500018470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S31500018480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S31500018490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S315000184A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S315000184B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S315000184C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S315000184D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S315000184E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S315000184F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S31500018500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500018510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500018520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500018530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500018540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S31500018550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S31500018560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S31500018570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S31500018580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S31500018590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S315000185A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S315000185B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S315000185C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S315000185D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S315000185E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S315000185F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S31500018600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500018610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500018620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500018630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500018640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S31500018650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S31500018660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S31500018670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S31500018680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S31500018690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S315000186A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S315000186B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S315000186C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S315000186D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S315000186E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S315000186F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S31500018700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500018710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500018720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500018730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500018740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S31500018750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S31500018760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S31500018770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S31500018780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S31500018790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S315000187A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S315000187B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S315000187C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S315000187D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S315000187E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S315000187F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S31500018800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500018810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500018820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500018830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500018840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S31500018850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S31500018860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S31500018870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S31500018880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S31500018890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S315000188A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S315000188B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S315000188C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S315000188D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S315000188E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S315000188F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S31500018900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500018910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500018920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500018930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500018940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S31500018950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S31500018960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S31500018970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S31500018980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S31500018990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S315000189A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S315000189B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S315000189C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S315000189D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S315000189E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S315000189F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S31500018A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500018A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500018A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500018A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500018A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500018A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500018A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500018A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500018A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500018A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500018AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500018AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500018AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500018AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500018AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500018AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500018B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500018B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500018B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500018B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500018B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500018B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500018B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500018B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500018B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500018B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500018BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500018BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500018BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500018BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500018BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500018BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500018C00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500018C10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D +S31500018C20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D +S31500018C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D +S31500018C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500018C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500018C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500018C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500018C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500018C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500018CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500018CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500018CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500018CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500018CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500018CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500018D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500018D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500018D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500018D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500018D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500018D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500018D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500018D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500018D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500018D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500018DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500018DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500018DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500018DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500018DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500018DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500018E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500018E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500018E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500018E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500018E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500018E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500018E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500018E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500018E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500018E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500018EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500018EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500018EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500018ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500018EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500018EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500018F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A +S31500018F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500018F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500018F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500018F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500018F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500018F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500018F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500018F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500018F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500018FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500018FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500018FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500018FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500018FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500018FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S31500019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69 +S31500019010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59 +S31500019020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49 +S31500019030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39 +S31500019040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29 +S31500019050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19 +S31500019060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09 +S31500019070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9 +S31500019080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9 +S31500019090FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9 +S315000190A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9 +S315000190B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9 +S315000190C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9 +S315000190D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +S315000190E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +S315000190F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79 +S31500019100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68 +S31500019110FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58 +S31500019120FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48 +S31500019130FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38 +S31500019140FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28 +S31500019150FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18 +S31500019160FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08 +S31500019170FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8 +S31500019180FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8 +S31500019190FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8 +S315000191A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8 +S315000191B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8 +S315000191C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +S315000191D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98 +S315000191E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88 +S315000191F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78 +S31500019200FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67 +S31500019210FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57 +S31500019220FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47 +S31500019230FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37 +S31500019240FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27 +S31500019250FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +S31500019260FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07 +S31500019270FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 +S31500019280FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 +S31500019290FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 +S315000192A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 +S315000192B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 +S315000192C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 +S315000192D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97 +S315000192E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87 +S315000192F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77 +S31500019300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66 +S31500019310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56 +S31500019320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46 +S31500019330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36 +S31500019340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26 +S31500019350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16 +S31500019360FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06 +S31500019370FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6 +S31500019380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6 +S31500019390FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6 +S315000193A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6 +S315000193B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6 +S315000193C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6 +S315000193D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96 +S315000193E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86 +S315000193F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 +S31500019400FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65 +S31500019410FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55 +S31500019420FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45 +S31500019430FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35 +S31500019440FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25 +S31500019450FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15 +S31500019460FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05 +S31500019470FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5 +S31500019480FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5 +S31500019490FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5 +S315000194A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5 +S315000194B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5 +S315000194C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +S315000194D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95 +S315000194E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85 +S315000194F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75 +S31500019500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64 +S31500019510FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54 +S31500019520FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44 +S31500019530FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34 +S31500019540FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24 +S31500019550FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14 +S31500019560FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +S31500019570FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 +S31500019580FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4 +S31500019590FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4 +S315000195A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4 +S315000195B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4 +S315000195C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4 +S315000195D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94 +S315000195E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84 +S315000195F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74 +S31500019600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63 +S31500019610FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53 +S31500019620FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43 +S31500019630FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33 +S31500019640FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23 +S31500019650FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13 +S31500019660FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03 +S31500019670FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 +S31500019680FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3 +S31500019690FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3 +S315000196A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3 +S315000196B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3 +S315000196C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3 +S315000196D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93 +S315000196E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 +S315000196F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73 +S31500019700FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62 +S31500019710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52 +S31500019720FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42 +S31500019730FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +S31500019740FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +S31500019750FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +S31500019760FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02 +S31500019770FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2 +S31500019780FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2 +S31500019790FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2 +S315000197A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2 +S315000197B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2 +S315000197C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2 +S315000197D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92 +S315000197E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82 +S315000197F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +S31500019800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +S31500019810FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51 +S31500019820FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +S31500019830FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31 +S31500019840FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21 +S31500019850FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 +S31500019860FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01 +S31500019870FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 +S31500019880FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1 +S31500019890FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1 +S315000198A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1 +S315000198B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1 +S315000198C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1 +S315000198D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91 +S315000198E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81 +S315000198F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +S31500019900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60 +S31500019910FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50 +S31500019920FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40 +S31500019930FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30 +S31500019940FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20 +S31500019950FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10 +S31500019960FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +S31500019970FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +S31500019980FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +S31500019990FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +S315000199A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +S315000199B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +S315000199C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +S315000199D0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +S315000199E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 +S315000199F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 +S31500019A00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F +S31500019A10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F +S31500019A20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F +S31500019A30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F +S31500019A40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F +S31500019A50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F +S31500019A60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +S31500019A70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF +S31500019A80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF +S31500019A90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF +S31500019AA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF +S31500019AB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF +S31500019AC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F +S31500019AD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F +S31500019AE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F +S31500019AF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F +S31500019B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E +S31500019B10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E +S31500019B20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E +S31500019B30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +S31500019B40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E +S31500019B50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +S31500019B60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE +S31500019B70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE +S31500019B80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +S31500019B90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +S31500019BA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE +S31500019BB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE +S31500019BC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E +S31500019BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E +S31500019BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E +S31500019BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E +S31500019C0048573031303020202020202020202020AD +S31500019C1030313031202020202020202020202020FB +S31500019C20171A000B000017071820202020202020DB +S31500019C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D +S31500019C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D +S31500019C50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D +S31500019C60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD +S31500019C70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED +S31500019C80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD +S31500019C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +S31500019CA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD +S31500019CB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD +S31500019CC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D +S31500019CD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D +S31500019CE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D +S31500019CF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D +S31500019D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +S31500019D10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C +S31500019D20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +S31500019D30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +S31500019D40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C +S31500019D50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C +S31500019D60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC +S31500019D70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC +S31500019D80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC +S31500019D90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC +S31500019DA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC +S31500019DB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC +S31500019DC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +S31500019DD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +S31500019DE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C +S31500019DF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C +S31500019E00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B +S31500019E10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B +S31500019E20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B +S31500019E30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B +S31500019E40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B +S31500019E50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B +S31500019E60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB +S31500019E70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB +S31500019E80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB +S31500019E90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB +S31500019EA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB +S31500019EB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB +S31500019EC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B +S31500019ED0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B +S31500019EE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B +S31500019EF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B +S31500019F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A +S31500019F10FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A +S31500019F20FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A +S31500019F30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A +S31500019F40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A +S31500019F50FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A +S31500019F60FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA +S31500019F70FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +S31500019F80FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA +S31500019F90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +S31500019FA0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA +S31500019FB0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +S31500019FC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A +S31500019FD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A +S31500019FE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A +S30900019FF0AA5555AA68 +S31100019FF4FFFFFFFFFFFFFFFFFFFFFFFF66 +S9030000FC diff --git a/ECU_APP/OutPut/ECU_APP.S19 b/ECU_APP/OutPut/HS550_R_SW0101.S19 similarity index 99% rename from ECU_APP/OutPut/ECU_APP.S19 rename to ECU_APP/OutPut/HS550_R_SW0101.S19 index ac565a2..c2acd0d 100644 --- a/ECU_APP/OutPut/ECU_APP.S19 +++ b/ECU_APP/OutPut/HS550_R_SW0101.S19 @@ -912,7 +912,7 @@ S3150000D8968F289C9A08118F299C9A09E1D7E1D7E12E S3150000D8A6D7C1FC2CC100734C01DF07C4C5CA0001F1 S3150000D8B6EF144C02DF07C4C5CA0002EF094C04DFA9 S3150000D8C605C4C5CA000383E161F8F1C2D714E1CAEB -S3150000D8D60061CA010ACA0231CA0332CA0433CA053A +S3150000D8D60061CA010BCA0231CA0332CA0433CA0539 S3150000D8E600CA0630CA0730CA0830D714CA0043CA67 S3150000D8F60134CA0230CA0320CA0420CA0520CA0651 S3150000D90620CA0720CA0820CA0920CA0A20CA0B202C @@ -1303,7 +1303,7 @@ S3150000F10680F0DD0D9F80F0D1DF07340603A95CFC95 S3150000F116B9D7D7148F7EF099D7C1C3C664318EA1ED S3150000F12604FFFF12DD0BC4C58B99A7A5C0C513EF57 S3150000F136EFC0D7540832B4F0308AF0EFDC71230101 -S3150000F146511F5F85F09F85F0302002BF82F0AF84A5 +S3150000F146511F5F85F09F85F0300101BF82F0AF84C5 S3150000F156F0F05CE0BF84F051806F89F05C8F9F8988 S3150000F166F0AF88F0F05CF0BF88F0F6BF86F0540882 S3150000F17632B4F0308AF0EFA1D7FCF5EC00F6BF4EBC @@ -4038,7 +4038,7 @@ S31500019BD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E S31500019BE0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E S31500019BF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E S31500019C0048573031303020202020202020202020AD -S31500019C103031170718003031202020202020202045 +S31500019C1030313031202020202020202020202020FB S31500019C20171A000B000017071820202020202020DB S31500019C30FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D S31500019C40FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D diff --git a/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt b/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt index 36abf29..3abd5c8 100644 --- a/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt +++ b/ECU_APP/QualityReport(ECU_APP,DefaultBuild).txt @@ -1,9 +1,80 @@ QualityReport -2024年5月23日 13:59:33 +2024年5月23日 19:59:11 ------ Start build(ECU_APP, DefaultBuild) ------ -E:\Program Files (x86)\renesas\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe r_cg_timer_user.c r_cg_adc_user.c -cpu=S3 -obj_path=DefaultBuild "-dev=E:\Program Files (x86)\renesas\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english +E:\Program Files (x86)\renesas\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe rscan_driver\r_rl78_can_irq.c r_main.c r_cg_timer_user.c CanNw\CanNw.c CanNw\CanNwConfig.c diagnose\Dcm_App.c diagnose\Dcm_App_Cfg.c diagnose\Dcm_Cfg.c diagnose\Dcm_DID_Cfg.c diagnose\extern.c diagnose\CanIf\CanIf_Cfg.c diagnose\CanTp\CanTp_Cfg.c diagnose\DTC\DCM_DTC.c diagnose\Dcm.c diagnose\CanTp\CanTp.c user\appTask.c user\can_user.c user\hwCtrl.c -cpu=S3 -obj_path=DefaultBuild "-dev=E:\Program Files (x86)\renesas\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english +r_main.c(134):W0523076:Function declarations should have prototype r_cg_timer_user.c(141):W0520167:Argument of type "uint16_t __near *" is incompatible with parameter of type "unsigned int *__near" +diagnose\Dcm_App.c(296):W0520549:Variable "DcmResetDelay" is used before its value is set +diagnose\Dcm_App.c(320):W0520177:Variable "ResetDelayCnt" was declared but never referenced +diagnose\Dcm_App.c(470):W0520177:Variable "ResetDelayCnt" was declared but never referenced +diagnose\Dcm_App.c(899):W0520549:Variable "LeDcm_u_Result" is used before its value is set +diagnose\Dcm_App.c(966):W0520549:Variable "LeDcm_u_Result" is used before its value is set +diagnose\Dcm_App.c(917):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced +diagnose\Dcm_App.c(1281):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Start" +diagnose\Dcm_App.c(1285):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Stop" +diagnose\Dcm_App.c(1289):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Result" +diagnose\Dcm_App.c(1559):W0520177:Variable "temp" was declared but never referenced +diagnose\Dcm_App.c(1906):W0520549:Variable "LeDcm_u_FinallyResult" is used before its value is set +diagnose\Dcm_App.c(1840):W0520177:Variable "LeDcm_u_dataFomatldentifier" was declared but never referenced +diagnose\Dcm_App.c(1841):W0520177:Variable "LeDcm_u_addressAndLengthFomatldentifier" was declared but never referenced +diagnose\Dcm_App.c(1842):W0520177:Variable "LeDcm_w_Address" was declared but never referenced +diagnose\Dcm_App.c(1843):W0520177:Variable "LeDcm_w_DataLength" was declared but never referenced +diagnose\Dcm_App.c(1844):W0520177:Variable "LeDcm_u_SidIndex" was declared but never referenced +diagnose\Dcm_App.c(1845):W0520177:Variable "LeDcm_u_SecurityAccessCheckResult" was declared but never referenced +diagnose\Dcm_App.c(1846):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced +diagnose\Dcm_App.c(2010):W0520549:Variable "LeDcm_u_FinallyResult" is used before its value is set +diagnose\Dcm_App.c(1926):W0520177:Variable "LeDcm_w_SingleTransmitDataCount" was declared but never referenced +diagnose\Dcm_App.c(1927):W0520177:Variable "LeDcm_u_BlockSequenceCount" was declared but never referenced +diagnose\Dcm_App.c(1928):W0520177:Variable "LeDcm_u_BlockExpect" was declared but never referenced +diagnose\Dcm_App.c(1929):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced +diagnose\Dcm_App.c(60):W0520177:Variable "CeDcm_w_SecurityAccessFBLMask" was declared but never referenced +diagnose\Dcm_App.c(63):W0520177:Variable "SeDcm_w_DownLoadDataLength" was declared but never referenced +diagnose\Dcm_App.c(64):W0520177:Variable "SeDcm_w_TransmitDataCount" was declared but never referenced +diagnose\Dcm_App.c(65):W0520177:Variable "SeDcm_u_BlockSequenceCountSts" was declared but never referenced +diagnose\Dcm_App.c(66):W0520177:Variable "CaDcm_w_SingleAllowDateLength" was declared but never referenced +diagnose\Dcm_App.c(71):W0520177:Variable "SeDcm_u_RidF001Sts" was declared but never referenced +diagnose\Dcm_Cfg.c(83):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc" +diagnose\Dcm_Cfg.c(84):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc" +diagnose\Dcm_Cfg.c(87):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc" +diagnose\Dcm_Cfg.c(1157):W0520940:Missing return statement at end of non-void function "MngDcm_ReadMemoryDataService" +diagnose\Dcm_Cfg.c(1179):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1199):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1240):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1259):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near" +diagnose\Dcm_Cfg.c(1294):W0520177:Variable "i" was declared but never referenced +diagnose\Dcm_Cfg.c(1304):W0520177:Variable "LeDcm_u_CollectDataPost" was declared but never referenced +diagnose\Dcm_Cfg.c(1597):W0520177:Variable "LeDcm_u_DLCheckResult" was declared but never referenced +diagnose\Dcm_Cfg.c(1603):W0520177:Variable "LeDcm_u_CollectDataPost" was declared but never referenced +diagnose\Dcm_Cfg.c(509):W0520177:Function "MngDcm_2AReadDidCheckDL" was declared but never referenced +diagnose\Dcm_Cfg.c(551):W0520177:Function "MngDcm_IoDidCheckDL" was declared but never referenced +diagnose\Dcm_DID_Cfg.c(177):W0520144:A value of type "long" cannot be used to initialize an entity of type "uint8 __far *__near" +diagnose\Dcm_DID_Cfg.c(177):W0520152:Conversion of nonzero integer to pointer +diagnose\Dcm_DID_Cfg.c(307):W0520174:Expression has no effect +diagnose\Dcm_DID_Cfg.c(333):W0520144:A value of type "long" cannot be used to initialize an entity of type "uint8 __far *__near" +diagnose\Dcm_DID_Cfg.c(333):W0520152:Conversion of nonzero integer to pointer +diagnose\Dcm_DID_Cfg.c(365):W0520174:Expression has no effect +diagnose\extern.c(107):W0520940:Missing return statement at end of non-void function "GetVoltage" +diagnose\extern.c(135):W0520940:Missing return statement at end of non-void function "GetMotorLockStatus" +diagnose\extern.c(181):W0520111:Statement is unreachable +diagnose\extern.c(322):W0520111:Statement is unreachable +diagnose\extern.c(326):W0520111:Statement is unreachable +diagnose\extern.c(330):W0520111:Statement is unreachable +diagnose\extern.c(334):W0520111:Statement is unreachable +diagnose\extern.c(505):W0520940:Missing return statement at end of non-void function "GetCanBusOffErr" +diagnose\extern.c(523):W0520940:Missing return statement at end of non-void function "GetBcmCommFault" +diagnose\extern.c(540):W0520940:Missing return statement at end of non-void function "GetAcpCommFault" +diagnose\CanIf\CanIf_Cfg.c(33):W0520009:Nested comment is not allowed +diagnose\CanIf\CanIf_Cfg.c(43):W0520009:Nested comment is not allowed +diagnose\DTC\DCM_DTC.c(111):W0520167:Argument of type "uint32 __near *" is incompatible with parameter of type "unsigned char *__near" +diagnose\DTC\DCM_DTC.c(175):W0520167:Argument of type "uint8 __near (*)[2]" is incompatible with parameter of type "unsigned char *__near" +diagnose\DTC\DCM_DTC.c(166):W0520177:Variable "DtcSnapshotRecord" was declared but never referenced +diagnose\DTC\DCM_DTC.c(780):W0520167:Argument of type "uint8 __near (*)[28]" is incompatible with parameter of type "unsigned char *__near" +diagnose\DTC\DCM_DTC.c(97):W0520177:Function "ChkDiagVolt" was declared but never referenced +diagnose\DTC\DCM_DTC.c(107):W0520177:Function "GetLastSnapshotRecordNum" was declared but never referenced +diagnose\Dcm.c(69):W0520550:Variable "LeDcm_u_FinallyResult" was set but never used +diagnose\CanTp\CanTp.c(192):W0520069:Integer conversion resulted in truncation +diagnose\CanTp\CanTp.c(786):W0520188:Enumerated type mixed with another type E:\Program Files (x86)\renesas\CS+\CC\CC-RL\V1.11.00\Bin\rlink.exe -subcommand=DefaultBuild\ECU_APP.clnk W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product. RAMDATA SECTION: 00000bf3 Byte(s) @@ -12,7 +83,7 @@ PROGRAM SECTION: 00004dc0 Byte(s) W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product. W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product. Renesas Optimizing Linker Completed ------- Build ended(Error:0, Warning:4)(ECU_APP, DefaultBuild) ------ +------ Build ended(Error:0, Warning:75)(ECU_APP, DefaultBuild) ------ --- CommandFile 1 --- DefaultBuild\ECU_APP.clnk : @@ -97,9 +168,9 @@ DefaultBuild\ECU_APP.clnk : --- SHA1 hash value of output files --- -F:\FCB_project\temp\HS550\code\ECU_APP\DefaultBuild\ECU_APP.abs: ead2ac07fe9de18da2d71bb5d35e0dc3e70a09c0 -F:\FCB_project\temp\HS550\code\ECU_APP\DefaultBuild\ECU_APP.mot: d78aacba1409b08a0bfa0ac3d420a02a0e485239 -F:\FCB_project\temp\HS550\code\ECU_APP\output\ECU_APP.S19: 8544f1d360fa9f2af931fa882df65fd53f64d163 +F:\FCB_project\temp\HS550\code\ECU_APP\DefaultBuild\ECU_APP.abs: f6bb349eab3330412e36ef94b09cec36f5be7c3f +F:\FCB_project\temp\HS550\code\ECU_APP\DefaultBuild\ECU_APP.mot: 2eeb385bb9bb72ba12f889cd97f4b9ae8e1d7e58 +F:\FCB_project\temp\HS550\code\ECU_APP\output\ECU_APP.S19: aea5a432a46ab659438a5362d4fd0c3bce7b92b0 --- System Information --- @@ -127,11 +198,11 @@ F:\FCB_project\temp\HS550\code\ECU_APP\output\ECU_APP.S19: 8544f1d360fa9f2af931f E:\Program Files (x86)\renesas\CS+\CC *Memory Usage *Private Working Set - 418 MB + 320 MB *Number of GDI Objects - 2438 + 2129 *Number of USER Objects - 1166 + 1158 *Opened Files 5 editors, 5 files, 36 KB diff --git a/ECU_APP/diagnose/CanTp/CanTp_Cfg.h b/ECU_APP/diagnose/CanTp/CanTp_Cfg.h index 4b20df5..e783fb8 100644 --- a/ECU_APP/diagnose/CanTp/CanTp_Cfg.h +++ b/ECU_APP/diagnose/CanTp/CanTp_Cfg.h @@ -22,15 +22,11 @@ -#if NOW_BOARD == LEFT_BOARD + #define CANTP_ADDR_FUNC_REQ 0x7DF /* 诊断功能寻址 */ #define CANTP_ADDR_PHY_REQ 0x751//0x7C6 /* 诊断物理寻址 */ #define CANTP_RESP_CANID 0x759//0x7CE /* 诊断反馈 */ -#else -#define CANTP_ADDR_FUNC_REQ 0x7DF /* 诊断功能寻址 */ -#define CANTP_ADDR_PHY_REQ 0x752//0x7C6 /* 诊断物理寻址 */ -#define CANTP_RESP_CANID 0x75A//0x7CE /* 诊断反馈 */ -#endif + #define CANTP_ADDRFUNC_MF_FORBID DCM_FALSE diff --git a/ECU_APP/diagnose/extern.c b/ECU_APP/diagnose/extern.c index 8c3f5ef..0d17d56 100644 --- a/ECU_APP/diagnose/extern.c +++ b/ECU_APP/diagnose/extern.c @@ -26,12 +26,12 @@ __far const unsigned char HD_VERSION[]={ __far const unsigned char SW_VERSION[]={ '0' , //AC_SW_VERSION_00 '1' , //AC_SW_VERSION_01 - 23 , //AC_SW_VERSION_02 - 7 , //AC_SW_VERSION_03 - 24 , //AC_SW_VERSION_04 - 0 , //AC_SW_VERSION_05 - '0' , //AC_SW_VERSION_06 - '1' , //AC_SW_VERSION_07 + '0' , //AC_SW_VERSION_02 + '1' , //AC_SW_VERSION_03 + ' ', //AC_SW_VERSION_04 + ' ', //AC_SW_VERSION_05 + ' ' , //AC_SW_VERSION_06 + ' ' , //AC_SW_VERSION_07 ' ' , //AC_SW_VERSION_08 ' ' , //AC_SW_VERSION_09 ' ' , //AC_SW_VERSION_10 diff --git a/ECU_APP/user/PINdef.h b/ECU_APP/user/PINdef.h index c05aa41..ab1ba2e 100644 --- a/ECU_APP/user/PINdef.h +++ b/ECU_APP/user/PINdef.h @@ -35,7 +35,7 @@ typedef enum #define LEFT_BOARD 1 #define RIGHT_BOARD 2 -#define NOW_BOARD LEFT_BOARD +#define NOW_BOARD RIGHT_BOARD #endif diff --git a/ECU_APP/user/can_user.c b/ECU_APP/user/can_user.c index 75fc0bf..d5c3bd6 100644 --- a/ECU_APP/user/can_user.c +++ b/ECU_APP/user/can_user.c @@ -53,7 +53,11 @@ void Copy_Array_to_Array(unsigned char *dest, unsigned char *src, unsigned char void Can_Msg_Change_Bcm(void) { +#if NOW_BOARD == RIGHT_BOARD Copy_Array_to_Array(TxCanMessage.DB, CAN_101.Msg_Byte, 8); +#else + Copy_Array_to_Array(TxCanMessage.DB, CAN_220.Msg_Byte, 8); +#endif } void CAN_TX_MESSAGE_INIT(void) diff --git a/ECU_BOOT/.gitignore b/ECU_BOOT/.gitignore deleted file mode 100644 index ea3a533..0000000 --- a/ECU_BOOT/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/DefaultBuild diff --git a/ECU_BOOT/.vscode/settings.json b/ECU_BOOT/.vscode/settings.json deleted file mode 100644 index 15bd2f0..0000000 --- a/ECU_BOOT/.vscode/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files.associations": { - "r_rl78_can_drv.h": "c" - } -} \ No newline at end of file diff --git a/ECU_BOOT/DataFlash/pfdl.h b/ECU_BOOT/DataFlash/pfdl.h deleted file mode 100644 index a670b56..0000000 --- a/ECU_BOOT/DataFlash/pfdl.h +++ /dev/null @@ -1,144 +0,0 @@ -/******************************************************************************* -* Library : Flash Data Library T04 (PicoFDL) -* -* File Name : $Source: pfdl.h $ -* Lib. Version : $RL78_FDL_LIB_VERSION_T04_REN: V1.05 $ -* Mod. Revision : $Revision: 1.8 $ -* Mod. Date : $Date: 2013/06/10 22:04:41JST $ -* Device(s) : RL78 -* Description : C language API definition of the Flash Data Library -******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2011-2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ - - -#ifndef __PFDL_H_INCLUDED -#define __PFDL_H_INCLUDED - -/*================================================================================================*/ -/* include files list */ -/*================================================================================================*/ -#include "pfdl_types.h" - -#define FLASH_START_ADDRESS (0xF1000) /* Start address of data flash */ -#define TARGET_BLOCK (0) /* Block number of target(0 ~ 3) */ -#define BLOCK_SIZE (0x400) /* Block size */ -//#define WRITE_SIZE (1) /* Size of data to be written at once */ -#define MAX_VALUE (0xFF) /* Maximum value of writing */ -#define MAX_ADDRESS ((TARGET_BLOCK + 1) * BLOCK_SIZE - 1) /* Maximum address of writing */ -#define PFDL_NG (1) /* Failure to Data Flash */ -#define FDL_FRQ (32) /* Setting frequency (MHz) */ -#define FDL_VOL (0x00) /* Voltage mode */ - -uint8_t WriteDataflash(uint8_t* buffer,uint32_t Addr,uint16_t lenth); -uint8_t WriteDataflash1(uint8_t* buffer,uint32_t Addr,uint16_t lenth); - -void ReadFlashData(uint8_t* buffer,uint32_t Addr,uint16_t lenth); -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Block type: standard function */ -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Purpose: Unconditional activation of the Data Flash Library. */ -/* Based on the descriptor data: */ -/* - the flash firmware will be initialized for data-flash access only */ -/* - the internal timing and low-voltage capability will be configured according to the descriptor */ -/* After successful initialization the data flash clock is ON and the PFDL is ready to use. */ -/* */ -/* CAUTION: */ -/* Due to the code size minimization no plausibility checks are done by the PicoFDL. */ -/* Neither configuration, frequency range nor data flash size will be checked by the library. */ -/* */ -/* Input: address of the PFDL descriptor variable (RAM only) */ -/* Output: - */ -/* Return: PFDL status */ -/* ---------------------------------------------------------------------------------------------------------------*/ -extern pfdl_status_t __far PFDL_Open(__near pfdl_descriptor_t* descriptor_pstr); - - - - -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Block type: standard function */ -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Purpose: Disable data flash access unconditionally. */ -/* If any command is just executed, PFDL_Close will stop it immediately. */ -/* After return the data flash clock is switched OFF. */ -/* Input: - */ -/* Output: - */ -/* Return: - */ -/* ---------------------------------------------------------------------------------------------------------------*/ -extern void __far PFDL_Close(void); - - - -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Block type: standard function */ -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Purpose: Initiating execution of the PFDL request related to the data flash. */ -/* The corresponding request variable has to be parametrized before. */ -/* */ -/* request_pstr->index_u16 : byte-index or block-number within PFDL-pool */ -/* request_pstr->data_pu08 : start address of the RAM data that should be read/written */ -/* request_pstr->bytecount_u16 : number of bytes has to be read/written */ -/* request_pstr->command_enu : command code */ -/* */ -/* CAUTION: */ -/* Due to the code size minimization no plausibility checks are done by the PFDL. */ -/* */ -/* Input: &request_pstr - pointer to PFDL request variable */ -/* Output: - */ -/* Return: status of the request */ -/* ---------------------------------------------------------------------------------------------------------------*/ -extern pfdl_status_t __far PFDL_Execute(__near pfdl_request_t* request_pstr); - - - -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Block type: standard function */ -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Purpose: Continuation of command execution and status update of requests being under execution. */ -/* Input: - */ -/* Output: - */ -/* Return: PFDL status = */ -/* PFDL_IDLE - no request is processed by PFDL, PFDL is ready to receive new requests */ -/* PFDL_OK - processed request/command finished without problems */ -/* PFDL_BUSY - request/command is still being processed */ -/* other - flash or firmware related errors */ -/* ---------------------------------------------------------------------------------------------------------------*/ -extern pfdl_status_t __far PFDL_Handler(void); - - - -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Block type: standard function */ -/* ---------------------------------------------------------------------------------------------------------------*/ -/* Purpose: Returns the start address of the library version string */ -/* */ -/* Input: - */ -/* Output: - */ -/* Return: starting address of the zero-terminated version string */ -/* ---------------------------------------------------------------------------------------------------------------*/ -extern __far pfdl_u08* __far PFDL_GetVersionString(void); - - - -#endif diff --git a/ECU_BOOT/DataFlash/pfdl.lib b/ECU_BOOT/DataFlash/pfdl.lib deleted file mode 100644 index 3c0a11c..0000000 Binary files a/ECU_BOOT/DataFlash/pfdl.lib and /dev/null differ diff --git a/ECU_BOOT/DataFlash/pfdl_types.h b/ECU_BOOT/DataFlash/pfdl_types.h deleted file mode 100644 index 4f3837d..0000000 --- a/ECU_BOOT/DataFlash/pfdl_types.h +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* -* Library : Flash Data Library T04 (PicoFDL) -* -* File Name : $Source: pfdl_types.h $ -* Lib. Version : $RL78_FDL_LIB_VERSION_T04_REN: V1.05 $ -* Mod. Revision : $Revision: 1.8 $ -* Mod. Date : $Date: 2013/06/10 22:28:01JST $ -* Device(s) : RL78 -* Description : Type definitions used by the library -******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2011-2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ - - -#ifndef __PFDL_TYPES_H_INCLUDED -#define __PFDL_TYPES_H_INCLUDED - - - - -#ifndef __TYPEDEF__ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed long int32_t; -typedef unsigned long uint32_t; -typedef unsigned short MD_STATUS; -#define __TYPEDEF__ -#endif -/*==============================================================================================*/ -/* unsigned type definitions */ -/*==============================================================================================*/ -typedef unsigned char pfdl_u08; -typedef unsigned int pfdl_u16; -typedef unsigned long int pfdl_u32; - - -/*==============================================================================================*/ -/* global constant definitions */ -/*==============================================================================================*/ - - - -/*==============================================================================================*/ -/* global type definitions */ -/*==============================================================================================*/ - - -/* PFDL command code set */ -typedef enum -{ /* ---------------------------------------------- */ - PFDL_CMD_READ_BYTES = (0x00), /* 0x00, reads data from flash memory */ - PFDL_CMD_IVERIFY_BYTES = (0x06), /* 0x06, verifies data if flash content is stable */ - PFDL_CMD_BLANKCHECK_BYTES = (0x08), /* 0x08, checks if flash content is blank */ - PFDL_CMD_WRITE_BYTES = (0x04), /* 0x04, writes data into flash memory */ - PFDL_CMD_ERASE_BLOCK = (0x03) /* 0x03, erases one flash block */ -} pfdl_command_t; /* ---------------------------------------------- */ - - -/* PFDL error code set */ -typedef enum -{ - /* operation related status */ /* ---------------------------------------------- */ - PFDL_IDLE = (0x30), /* 0x30, PFDL ready to receive requests */ - PFDL_OK = (0x00), /* 0x00, command finished without problems */ - PFDL_BUSY = (0xFF), /* 0xFF, command is being processed */ - /* flash related status */ /* ---------------------------------------------- */ - PFDL_ERR_PROTECTION = (0x10), /* 0x10, protection error (access right conflict) */ - PFDL_ERR_ERASE = (0x1A), /* 0x1A, erase error */ - PFDL_ERR_MARGIN = (0x1B), /* 0x1B, blankcheck or verify margin violated */ - PFDL_ERR_WRITE = (0x1C), /* 0x1C, write error */ - PFDL_ERR_PARAMETER = (0x05) /* 0x05, parameter error */ -} pfdl_status_t; /* ---------------------------------------------- */ - - -/* PFDL request type (base type for any PFDL access) */ -typedef struct -{ /* ---------------------------------------------- */ - pfdl_u16 index_u16; /* 2, W, virt. byte/block index inside PFDL-pool */ - __near pfdl_u08* data_pu08; /* 2, W, pointer to the 1'st byte of data buffer */ - pfdl_u16 bytecount_u16; /* 2, W, number of bytes to be transfered */ - pfdl_command_t command_enu; /* 1, W, command code */ -} pfdl_request_t; /*------------------------------------------------*/ - /* 7 bytes in total */ - /*------------------------------------------------*/ - -/* PFDL descriptor type */ -typedef struct -{ /* ---------------------------------------------- */ - pfdl_u08 fx_MHz_u08; /* 1, system frequency expressed in MHz */ - pfdl_u08 wide_voltage_mode_u08; /* 1, programming voltage mode ( full/wide ) */ -} pfdl_descriptor_t; /*------------------------------------------------*/ - /* 2 bytes in total */ - - -/*==============================================================================================*/ -/* type definition plausibility check */ -/*==============================================================================================*/ - -/* The following checks are implemented in order to check the correct size of the FDL type */ -/* definitions at compile time. In case of a compilation error in the following lines, please */ -/* check your compiler options for enumeration types and structures and contact your local */ -/* support, if necessary. */ - -#define R_PFDLT04_ASSERT_CONCAT_(a, b) a##b -#define R_PFDLT04_ASSERT_CONCAT(a, b) R_PFDLT04_ASSERT_CONCAT_(a, b) -#define R_PFDLT04_STATIC_ASSERT(e) enum { R_PFDLT04_ASSERT_CONCAT(R_PFDLT04_ASSERT_LINE_, __LINE__) = 1/(!!(e)) } - - -/* assertion if unsigned data type size is not correct, please evaluate compiler settings for integer types */ -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_u08)==1); -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_u16)==2); -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_u32)==4); - -/* assertion if unsigned data type size is not correct, please evaluate compiler settings for enumeration types */ -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_command_t)==1); -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_status_t)==1); - -/* assertion if structure type size is not correct, please evaluate compiler settings for structure types */ -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_request_t)>=7); /* sizeof(pfdl_request_t) == 7 for packed structures */ -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_request_t)<=8); /* sizeof(pfdl_request_t) == 8 for unpacked structures */ -R_PFDLT04_STATIC_ASSERT(sizeof(pfdl_descriptor_t)==2); - - -#endif diff --git a/ECU_BOOT/DataFlash/pfdl_user.c b/ECU_BOOT/DataFlash/pfdl_user.c deleted file mode 100644 index 0b87adb..0000000 --- a/ECU_BOOT/DataFlash/pfdl_user.c +++ /dev/null @@ -1,230 +0,0 @@ -#include "boot_macrodriver.h" -#include "pfdl.h" -#include "pfdl_types.h" -#include "pfdl_user.h" - -/*********************************************************************************************************************** -* Function Name: WriteDataflash -* Description : -* Arguments : buffer: to be writed data; Addr:Target absolute address,must be check for different mcu;lenth:to be writed number,<=1024 -* Return Value : PFDL_OK - - Success - PFDL_IDLE - - Idling statement - PFDL_ERR_MARGIN - - Blank check error - - other//if(Addr>=FLASH_START_ADDRESS&&Addr>10); - - if(0==block_num){ - block_use = DF_BLOCK0_USE; - } - else if(1==block_num){ - block_use = DF_BLOCK1_USE; - } - else if(2==block_num){ - block_use = DF_BLOCK2_USE; - } - else{ - block_use = 0xFF; - } - - if(2 >= block_num){ - ReadFlashData(DF_Buf,(0x000F1000 + block_num*0x400),block_use); - - buf_addr = (unsigned char)(addr - (0x000F1000 + block_num*0x400)); - - for(sum=0,i=0;i= block_num){ - ReadFlashData(DF_Buf,(0x000F1000 + block_num*0x400),block_use); - - buf_addr = (unsigned char)(addr - (0x000F1000 + block_num*0x400)); - - for(sum=0,i=0;i=FLASH_START_ADDRESS&&Addr=0x000F1000 && Addr<0x000F2000) - { - if(Wr_Status == 0) - { - /* ---- Setting for PFDL_Open ---- */ - descriptor.fx_MHz_u08 = FDL_FRQ; - descriptor.wide_voltage_mode_u08 = FDL_VOL; - DI(); - PFDL_Open(&descriptor); - - - /* ---- Setting for blank check ---- */ - requester.command_enu = PFDL_CMD_BLANKCHECK_BYTES; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000);//g_write_address;0x0F1000 according to MCU - requester.bytecount_u16 = lenth; - ret = PFDL_Execute(&requester); /* Blank check */ - EI(); - Wr_Status = 1; - } - - if(Wr_Status == 1) - { - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } - if(ret != PFDL_BUSY) - { - /* **** When blank check error **** */ - if(ret == PFDL_ERR_MARGIN) - { - - /* ---- Setting for erase ---- */ - requester.command_enu = PFDL_CMD_ERASE_BLOCK; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000)/0x400;//TARGET_BLOCK; - ret = PFDL_Execute(&requester); /* Erase block data */ - Wr_Status = 2; - /* Erase data of target block */ - } - /* **** When other than blank check error **** */ - else - { - /* Do nothing */ - } - - /******When blank no check error***/ - if(ret == PFDL_OK) - { - /* ---- Setting for write ---- */ - requester.command_enu = PFDL_CMD_WRITE_BYTES; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000);//g_write_address;; - requester.bytecount_u16 = lenth; - requester.data_pu08 = buffer;//&g_write_value; - ret = PFDL_Execute(&requester); /* Execute write */ - Wr_Status = 3; - } - } - } - - if(Wr_Status == 2) - { - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } - if(ret != PFDL_BUSY) - { - if(ret == PFDL_OK) - { - /* ---- Setting for write ---- */ - requester.command_enu = PFDL_CMD_WRITE_BYTES; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000);//g_write_address;; - requester.bytecount_u16 = lenth; - requester.data_pu08 = buffer;//&g_write_value; - ret = PFDL_Execute(&requester); /* Execute write */ - Wr_Status = 3; - } - /* **** When blank check or data erase is failure **** */ - else - { - ret = PFDL_NG; - //PFDL_Close(); /* Close FDL */ - //Wr_Status = 0; - return ret; - } - } - } - - if(Wr_Status == 3) - { - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } - if(ret != PFDL_BUSY) - { - /* ==== When write data is success ==== */ - if(ret == PFDL_OK) - { - /* ---- Setting for verify ---- */ - requester.command_enu = PFDL_CMD_IVERIFY_BYTES; - requester.index_u16 = (unsigned int)(Addr- 0x0F1000);//g_write_address;; - requester.bytecount_u16 = lenth; - ret = PFDL_Execute(&requester); /* Execute internal verify */ - Wr_Status = 4; - } - /* ==== When writing data is failure ==== */ - else - { - ret = PFDL_NG; - //PFDL_Close(); /* Close FDL */ - //Wr_Status = 0; - return ret; - } - } - } - - if(Wr_Status == 4) - { - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } - if(ret != PFDL_BUSY) - { - PFDL_Close(); /* Close FDL */ - Wr_Status = 0; - return 0x11;//write data flash finished - } - } - } - else - { - ret = PFDL_NG; - Wr_Status = 0; - return ret; - } -} - - -uint8_t WriteDataflash1(uint8_t* buffer,uint32_t Addr,uint16_t lenth) -{ - pfdl_status_t ret; - pfdl_descriptor_t descriptor; - pfdl_request_t requester; - - if(Addr>=0x000F1000&&Addr<0x000F2000){ - /* ---- Setting for PFDL_Open ---- */ - descriptor.fx_MHz_u08 = FDL_FRQ; - descriptor.wide_voltage_mode_u08 = FDL_VOL; - PFDL_Open(&descriptor); - - /* ---- Setting for blank check ---- */ - requester.command_enu = PFDL_CMD_BLANKCHECK_BYTES; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000);//g_write_address;0x0F1000 according to MCU - requester.bytecount_u16 = lenth; - ret = PFDL_Execute(&requester); /* Blank check */ - - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } - - /* **** When blank check error **** */ - if(ret == PFDL_ERR_MARGIN) - { - - /* ---- Setting for erase ---- */ - requester.command_enu = PFDL_CMD_ERASE_BLOCK; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000)/0x400;//TARGET_BLOCK; - ret = PFDL_Execute(&requester); /* Erase block data */ - - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } /* Erase data of target block */ - } - /* **** When other than blank check error **** */ - else - { - /* Do nothing */ - } - - if(ret == PFDL_OK) - { - /* ---- Setting for write ---- */ - requester.command_enu = PFDL_CMD_WRITE_BYTES; - requester.index_u16 = (unsigned int)(Addr - 0x0F1000);//g_write_address;; - requester.bytecount_u16 = lenth; - requester.data_pu08 = buffer;//&g_write_value; - ret = PFDL_Execute(&requester); /* Execute write */ - - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler(); /* Status check process */ - } /* Write data process */ - /* ==== When write data is success ==== */ - - if(ret == PFDL_OK) - { - /* ---- Setting for verify ---- */ - requester.command_enu = PFDL_CMD_IVERIFY_BYTES; - requester.index_u16 = (unsigned int)(Addr- 0x0F1000);//g_write_address;; - requester.bytecount_u16 = lenth; - ret = PFDL_Execute(&requester); /* Execute internal verify */ - - /* ---- Waiting for command finish ---- */ - while(ret == PFDL_BUSY) - { - ret = PFDL_Handler();/* Status check process */ - } - - } - /* ==== When writing data is failure ==== */ - else - { - ret = PFDL_NG; - } - } - /* **** When blank check or data erase is failure **** */ - else - { - ret = PFDL_NG; - } - - PFDL_Close(); /* Close FDL */ - - return ret; - } - else{ - ret = PFDL_NG; - return ret; - } -} - - -/*********************************************************************************************************************** -* Function Name: ReadFlashData -* Description : -* Arguments : buffer: to be read data; - Addr:Target absolute address,must be check for different mcu; Both codeflash & dataflash can be used - lenth:to be read number -* Return Value : None -***********************************************************************************************************************/ - -void ReadFlashData(uint8_t* buffer,uint32_t Addr,uint16_t lenth) -{ - uint8_t temp; - volatile uint32_t w_count; - volatile uint8_t * snnumber; - /**** Only dataflash needed start*****/ - if(0 == DFLEN) - { - DFLEN = 1U; - for (w_count = 0U; w_count < 15U; w_count++)//3U - { - NOP(); - } - } - /**** Only dataflash needed end******/ - snnumber = Addr; - - for(temp = 0; temp < lenth; temp ++) - { - *buffer = *snnumber; - buffer ++; - snnumber ++; - } - //memcpy(buffer,snnumber,lenth); -} - -/* End user code. Do not edit comment generated here */ \ No newline at end of file diff --git a/ECU_BOOT/DataFlash/测试数据.txt b/ECU_BOOT/DataFlash/测试数据.txt deleted file mode 100644 index 6e0a546..0000000 --- a/ECU_BOOT/DataFlash/测试数据.txt +++ /dev/null @@ -1,10 +0,0 @@ -32MHz - - 64Bytes1024Bytes00HʱһΪ5.7mS -д 1024Bytes00H Ҫ46.8mSдʱݳȳԹϵ - -T04ʹע -1ջΣDMAӦRAMַҪŵRAMܷ -2дֽڵʱϳ鲻Ҫṩеȵİ취ѭвPFDL_Handler() -3ֱCPUָҪ -4ĵַΧķֵпܷܲ \ No newline at end of file diff --git a/ECU_BOOT/ECU-BOOT.dm01.mtud b/ECU_BOOT/ECU-BOOT.dm01.mtud deleted file mode 100644 index 9e7bacb..0000000 --- a/ECU_BOOT/ECU-BOOT.dm01.mtud +++ /dev/null @@ -1,711 +0,0 @@ - - - - Header=True,LineEditor=True,SelectionEditor=True,Out of Date Module Indicator=True,Coverage=True,Address=True,Event=True,MainDebug=True,Main=True,OpCode=True,Label=True, - - - 0 - - - - - 12.2.20122.2006 - - - - - 12.2.20122.2006 - 5.02.00.02 - RgBvAHIAbQBhAHQAVgBlAHIAcwBpAG8AbgA6ADEALgAwAA0ACgBEAG8AYwBrAEEAcgBlAGEAcwAuAEMAbwB1AG4AdAA6ADEAMwANAAoALQAtAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC0ALQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgAwADcAOAA5ADcAOAA3AC0AZgBmAGEANwAtADQAZgBmADIALQBiAGMANwA0AC0AYwAzADMAZgBmAGYAYQAwADMAYQBiAGIADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARABvAGMAawBlAGQATABvAGMAYQB0AGkAbwBuADoARABvAGMAawBlAGQAUgBpAGcAaAB0AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgAzADUAMgAsACAANgA0ADQADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARgBsAG8AYQB0AGkAbgBnAEwAbwBjAGEAdABpAG8AbgA6ADkAMAAyACwAIAAxADMAOAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMQA4AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAZQBsAGUAYwB0AGUAZABUAGEAYgBJAG4AZABlAHgAOgAxADcADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADUAYgA4ADAANAA2ADAAOAAtAGEANAA4ADkALQA0ADEAZgBiAC0AYgA0ADUANAAtAGMAYgA3ADcAYwA1ADcAZQA2ADUAYgA1AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAzADUAMgAsACAANAA0ADkADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwATABvAGMAYQBsAFYAYQByAGkAYQBiAGwAZQANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZAAzAGQAMAA5AGQAZgAxAC0AMwBlADYAMwAtADQANgAzADUALQBiADkAOAA2AC0ANQBlAGYAYQAxAGYANgBhADQAYQA1ADkADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADMANQAyACwAIAA0ADYAOQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgAwADcAOAA5ADcAOAA3AC0AZgBmAGEANwAtADQAZgBmADIALQBiAGMANwA0AC0AYwAzADMAZgBmAGYAYQAwADMAYQBiAGIADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABDAHAAdQBSAGUAZwBpAHMAdABlAHIADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADAAZgA3ADMANwAxADEAMgAtAGIAMgA1ADcALQA0ADMAZAAxAC0AYgA5AGYAMwAtAGIAZAA2ADUAZABlADgAZQAxAGYANgAzAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAyADkAMwAsACAAMwA4ADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwASQBPAFIAZQBnAGkAcwB0AGUAcgANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAYgBjAGYAZAA1ADIAOQBhAC0ANgBhADMAYQAtADQAZgAzADgALQBhAGQAMQA2AC0ANgA4AGEAMAA5AGMAMQAzADIAMABkAGMADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADIAOQAzACwAIAAzADgAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgAwADcAOAA5ADcAOAA3AC0AZgBmAGEANwAtADQAZgBmADIALQBiAGMANwA0AC0AYwAzADMAZgBmAGYAYQAwADMAYQBiAGIADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABDAGEAbABsAFMAdABhAGMAawANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZAA0ADQAOAA5ADIAZQBhAC0AMwBhAGMAYgAtADQAZQBjADUALQA5AGMAYgAwAC0ANgBhADEAZgBjADQAZgBjADUAOAA1AGQADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADIAOQAzACwAIAAzADgAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgAwADcAOAA5ADcAOAA3AC0AZgBmAGEANwAtADQAZgBmADIALQBiAGMANwA0AC0AYwAzADMAZgBmAGYAYQAwADMAYQBiAGIADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABUAHIAYQBjAGUADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADQAZgA2ADAAMwA2ADQAYgAtAGUANwA0AGEALQA0ADYAMwBkAC0AYgA3ADEANQAtAGQAMgA3ADkAOQAzADgAYwA2ADQANgAzAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAyADkAMwAsACAAMwA4ADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwARQB2AGUAbgB0AA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAxADQANgBiADgANgA2AGEALQAzAGYANABkAC0ANABiADkANAAtAGEANQAwADIALQBkADMAMAAwAGUAMgBkAGQAYQBiADUAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMgA5ADMALAAgADMAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADAANwA4ADkANwA4ADcALQBmAGYAYQA3AC0ANABmAGYAMgAtAGIAYwA3ADQALQBjADMAMwBmAGYAZgBhADAAMwBhAGIAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAFcAYQB0AGMAaAAxAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA0ADYANwA2ADEAMAA1ADIALQA5ADcAYwA0AC0ANAAyAGYAMwAtAGIAYwBhADcALQAxAGEANgAyADUAYgA5ADkAMwBiADQANwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMgA5ADMALAAgADMAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADAANwA4ADkANwA4ADcALQBmAGYAYQA3AC0ANABmAGYAMgAtAGIAYwA3ADQALQBjADMAMwBmAGYAZgBhADAAMwBhAGIAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAFcAYQB0AGMAaAAyAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBjADIAMgAyADUANwAzADIALQAwADUAMgA1AC0ANABmADUAZQAtAGEAMgA4AGMALQAxADYAZAA1AGEAYwBjADUANQA4AGMANwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMgA5ADMALAAgADMAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADAANwA4ADkANwA4ADcALQBmAGYAYQA3AC0ANABmAGYAMgAtAGIAYwA3ADQALQBjADMAMwBmAGYAZgBhADAAMwBhAGIAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAFcAYQB0AGMAaAAzAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADEAMwBmAGYAMgA1ADcALQBjADUAMQBhAC0ANABjAGYAYQAtADkAMgAxADMALQBhADcAZAAwADIAZgBjADUANABlADMANwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMgA5ADMALAAgADMAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADAANwA4ADkANwA4ADcALQBmAGYAYQA3AC0ANABmAGYAMgAtAGIAYwA3ADQALQBjADMAMwBmAGYAZgBhADAAMwBhAGIAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAFcAYQB0AGMAaAA0AA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBkAGQAYwBkADUAZAA5AGEALQBkADIAZABiAC0ANAAyADEANgAtADgAOAAyAGIALQA4ADAAMgAzADAAMABkAGQAYgBhADYAYwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMgA5ADMALAAgADMAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADAANwA4ADkANwA4ADcALQBmAGYAYQA3AC0ANABmAGYAMgAtAGIAYwA3ADQALQBjADMAMwBmAGYAZgBhADAAMwBhAGIAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAE0AZQBtAG8AcgB5ADEADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGQAZQBlADQAZQA2ADMANQAtAGIAZABjAGQALQA0AGIAOABiAC0AOAA1ADUAZQAtAGUAMwA2ADIAZgAxADkANQA3AGIAMQBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAyADkAMwAsACAAMwA4ADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwATQBlAG0AbwByAHkAMgANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANABmAGUAZQBjADYANQBiAC0ANQAwAGQAZQAtADQAOAA4ADMALQA5ADYAOQAyAC0ANwBlAGUAMAA4ADEAMwA1ADIAOQA1ADYADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADIAOQAzACwAIAAzADgAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgAwADcAOAA5ADcAOAA3AC0AZgBmAGEANwAtADQAZgBmADIALQBiAGMANwA0AC0AYwAzADMAZgBmAGYAYQAwADMAYQBiAGIADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABNAGUAbQBvAHIAeQAzAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA1ADYAMwA0ADcANQA3ADkALQA0ADQAOAA5AC0ANABiADkAOAAtADgAZQA2ADUALQBhAGMANwA4AGMAOQAzADIAZgA0ADAAYQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMgA5ADMALAAgADMAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2ADAANwA4ADkANwA4ADcALQBmAGYAYQA3AC0ANABmAGYAMgAtAGIAYwA3ADQALQBjADMAMwBmAGYAZgBhADAAMwBhAGIAYgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAE0AZQBtAG8AcgB5ADQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADAANAA1AGIANgAxAGQANgAtADUAMAA3ADMALQA0AGIAZgA4AC0AYQAyADMAMgAtAGYANwA2ADAAZQA3ADQANABiAGEAOAA3AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwARgB1AG4AYwB0AGkAbwBuAEwAaQBzAHQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADkAYgBlAGUAOQA0ADUAYQAtAGMAOQBkADgALQA0AGQAZAA5AC0AOAAzAGUAZAAtADYAMQA1AGIAZgBlAGIANQBhADQAZQA3AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwAVgBhAHIAaQBhAGIAbABlAEwAaQBzAHQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADEAMABmADIAYgBjADQANgAtADEAMQA1AGUALQA0ADgAOQAwAC0AOAAxAGQAYQAtADUAZAA5ADEAMwBmADkANAA5ADMAZAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAEEAbgBhAGwAeQBzAGkAcwBDAGgAYQByAHQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYANwA5AGIAOQBhADQANAAtADUAMgBiADMALQA0ADYAOQBhAC0AYQA0ADAANAAtAGEAMQA3AGUAMQAxADYAMwA4AGIAZAAzAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADYAMAA3ADgAOQA3ADgANwAtAGYAZgBhADcALQA0AGYAZgAyAC0AYgBjADcANAAtAGMAMwAzAGYAZgBmAGEAMAAzAGEAYgBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAEMAYQBsAGwARwByAGEAcABoAA0ACgAtAC0ARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALQAtAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAxADkANgBlAGUAOQAzADYALQAzAGQAZQBmAC0ANAA2ADMAZAAtADgAMwAwADYALQA3ADQANgA2ADcAYwAyADYAMgA0ADgANQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBEAG8AYwBrAGUAZABMAG8AYwBhAHQAaQBvAG4AOgBEAG8AYwBrAGUAZABMAGUAZgB0AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgAyADYAOQAsACAANgA3ADkADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARgBsAG8AYQB0AGkAbgBnAEwAbwBjAGEAdABpAG8AbgA6AC0AMQAsACAALQAxAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAaABpAGwAZABQAGEAbgBlAFMAdAB5AGwAZQA6AFQAYQBiAEcAcgBvAHUAcAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBQAGEAbgBlAHMALgBDAG8AdQBuAHQAOgA4AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAZQBsAGUAYwB0AGUAZABUAGEAYgBJAG4AZABlAHgAOgAxAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgA2AGYAOABiAGYANABmADYALQA2AGIANQA1AC0ANAAyADUAMgAtADgAOQBiADUALQBjADAANgBiAGMANAA0AGEAZgA4ADcAMwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAOAAxADQALAAgADQANAA0AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAxADkANgBlAGUAOQAzADYALQAzAGQAZQBmAC0ANAA2ADMAZAAtADgAMwAwADYALQA3ADQANgA2ADcAYwAyADYAMgA0ADgANQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABTAHQAYQByAHQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGYANQBmADEAYQAzAGMANwAtADAAYgA5ADEALQA0ADcAOQA0AC0AOQBkADQAYQAtAGMAMgA4AGEAOQBiADEAZgBlADcAZQA1AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADEAOQA1ACwAIAA2ADQANAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoAMQA5ADYAZQBlADkAMwA2AC0AMwBkAGUAZgAtADQANgAzAGQALQA4ADMAMAA2AC0ANwA0ADYANgA3AGMAMgA2ADIANAA4ADUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABQAHIAbwBqAGUAYwB0AFQAcgBlAGUADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADgAMgA4AGYANAAyADkAMwAtAGUAYgBmADAALQA0ADIANAAzAC0AOQBkADAAMAAtADkAYQAxADIANgA1AGMAMgA5AGIAOQBiAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADgAMQA0ACwAIAA0ADQANAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoAMQA5ADYAZQBlADkAMwA2AC0AMwBkAGUAZgAtADQANgAzAGQALQA4ADMAMAA2AC0ANwA0ADYANgA3AGMAMgA2ADIANAA4ADUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwAUAByAG8AcABlAHIAdAB5AEcAcgBpAGQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADkANwA5AGQANAA5ADIANAAtAGEANQBhADgALQA0ADMAZAAxAC0AYgBjADQAOQAtADYANwA2AGMAYwA3AGIAOABjADYAMAA0AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgA4ADEANAAsACAANAA0ADQADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADEAOQA2AGUAZQA5ADMANgAtADMAZABlAGYALQA0ADYAMwBkAC0AOAAzADAANgAtADcANAA2ADYANwBjADIANgAyADQAOAA1AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAEQAaQBzAGEAcwBzAGUAbQBiAGwAZQAxAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAzAGIAMABjADcAOAA2AGEALQA4ADMAZgBjAC0ANABiAGIAOQAtAGIAZQA4AGUALQBmADkAYgA5ADgAZQAxADQAMAA3AGIANgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoANAA3ADQALAAgADYAMgAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAxADkANgBlAGUAOQAzADYALQAzAGQAZQBmAC0ANAA2ADMAZAAtADgAMwAwADYALQA3ADQANgA2ADcAYwAyADYAMgA0ADgANQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABEAGkAcwBhAHMAcwBlAG0AYgBsAGUAMgANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZgA4ADUANgA2AGIAYgA5AC0ANgA3AGIAMQAtADQAOQAxAGQALQBiAGEAOQBlAC0ANwA1ADQAYQA5AGMAZABmADQAZQA0AGQADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADQANwA0ACwAIAA2ADIAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoAMQA5ADYAZQBlADkAMwA2AC0AMwBkAGUAZgAtADQANgAzAGQALQA4ADMAMAA2AC0ANwA0ADYANgA3AGMAMgA2ADIANAA4ADUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwARABpAHMAYQBzAHMAZQBtAGIAbABlADMADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADcAZgBlADUANQBkAGQAYgAtADQAZQBmADEALQA0AGMAZgAxAC0AOQBlADcAOAAtADgAZQBjAGYAYQA1ADAAZQBlAGEANwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgA0ADcANAAsACAANgAyADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADEAOQA2AGUAZQA5ADMANgAtADMAZABlAGYALQA0ADYAMwBkAC0AOAAzADAANgAtADcANAA2ADYANwBjADIANgAyADQAOAA1AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAEQAaQBzAGEAcwBzAGUAbQBiAGwAZQA0AA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAwADEAOQBhADIANABiADYALQA5AGMAYwBiAC0ANABhADAAYwAtADkAMwA2ADEALQBhAGMAMAA0AGMANQBhAGYAOABlADgAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAMQAwADAALAAgADEAMAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgAxADkANgBlAGUAOQAzADYALQAzAGQAZQBmAC0ANAA2ADMAZAAtADgAMwAwADYALQA3ADQANgA2ADcAYwAyADYAMgA0ADgANQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAEMAbABhAHMAcwBNAGUAbQBiAGUAcgANAAoALQAtAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC0ALQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAYgA5AGMANQA3ADcAZABjAC0ANwBlAGEAYgAtADQAMwA2AGQALQA4ADcAOQBkAC0AZABhADQANgBlADcAOQBiADIAYgBiADMADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARABvAGMAawBlAGQATABvAGMAYQB0AGkAbwBuADoARgBsAG8AYQB0AGkAbgBnAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgAyADMANwAsACAANQA3ADgADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARgBsAG8AYQB0AGkAbgBnAEwAbwBjAGEAdABpAG8AbgA6ADgANAA1ACwAIAA2ADQAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBIAG8AcgBpAHoAbwBuAHQAYQBsAFMAcABsAGkAdAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBQAGEAbgBlAHMALgBDAG8AdQBuAHQAOgAwAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAZQBsAGUAYwB0AGUAZABUAGEAYgBJAG4AZABlAHgAOgAwAA0ACgAtAC0ARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALQAtAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBjADkAMgA4ADIAMwAzADQALQA2ADkANQAyAC0ANAA3ADgAYQAtAGIAMAA4AGUALQAxADQANQA5ADIAMAAzAGYAOAA5ADkAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBEAG8AYwBrAGUAZABMAG8AYwBhAHQAaQBvAG4AOgBEAG8AYwBrAGUAZABCAG8AdAB0AG8AbQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGwAbwBzAGUAZAA6AEYAYQBsAHMAZQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGkAegBlADoAMQAyADYAMgAsACAAMQA3ADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARgBsAG8AYQB0AGkAbgBnAEwAbwBjAGEAdABpAG8AbgA6ADgANAA1ACwAIAA2ADQAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4ADoAMAANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANQAzADIAZgA2AGUAMwBkAC0AMgAwAGYAYgAtADQAMABiADgALQA4AGIAMwBkAC0AYQA2ADQANABkADQANwA2AGIAMwA0ADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBTAGkAegBlADoAOAAxADYALAAgADEANwAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABEAG8AYwBrAGUAZAAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBjADkAMgA4ADIAMwAzADQALQA2ADkANQAyAC0ANAA3ADgAYQAtAGIAMAA4AGUALQAxADQANQA5ADIAMAAzAGYAOAA5ADkAMwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARgBsAG8AYQB0AGkAbgBnAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGIAOQBjADUANwA3AGQAYwAtADcAZQBhAGIALQA0ADMANgBkAC0AOAA3ADkAZAAtAGQAYQA0ADYAZQA3ADkAYgAyAGIAYgAzAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBUAHkAcABlADoARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ASQBzAE0AZABpAEMAaABpAGwAZAA6AEYAYQBsAHMAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAE8AdQB0AHAAdQB0AA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBkADYAYgBkADEAYQA5ADkALQAxADYAOAA4AC0ANAAyAGQAOAAtADgAYQBjADYALQAxADcAMwBhADEANQAwADkAZQAyAGQAYwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgA4ADEANgAsACAAMQA3ADEADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGMAOQAyADgAMgAzADMANAAtADYAOQA1ADIALQA0ADcAOABhAC0AYgAwADgAZQAtADEANAA1ADkAMgAwADMAZgA4ADkAOQAzAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoAYgA5AGMANQA3ADcAZABjAC0ANwBlAGEAYgAtADQAMwA2AGQALQA4ADcAOQBkAC0AZABhADQANgBlADcAOQBiADIAYgBiADMADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwARQByAHIAbwByAEwAaQBzAHQADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADQAMgBiADUAOAAwAGQAZgAtADIAZgBmADcALQA0AGQAZQA2AC0AOQBiAGEAYgAtADIAYgBhADAAZQAyAGMAZQA4ADkAMgBjAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGMAOQAyADgAMgAzADMANAAtADYAOQA1ADIALQA0ADcAOABhAC0AYgAwADgAZQAtADEANAA1ADkAMgAwADMAZgA4ADkAOQAzAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoARgBhAGwAcwBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAHkAdABoAG8AbgBDAG8AbgBzAG8AbABlAA0ACgAtAC0ARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALQAtAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBjAGEAMQBjAGIAOAAxAGYALQA3ADkAMQAwAC0ANABiADMANwAtAGIAYwA4ADUALQA5ADYAYQA0ADEAZABiAGQAZQA0ADcAMgANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBEAG8AYwBrAGUAZABMAG8AYwBhAHQAaQBvAG4AOgBGAGwAbwBhAHQAaQBuAGcADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AQwBsAG8AcwBlAGQAOgBGAGEAbABzAGUADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUwBpAHoAZQA6ADIANQA2ACwAIAAyADUANgANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBGAGwAbwBhAHQAaQBuAGcATABvAGMAYQB0AGkAbwBuADoAOQA5ADIALAAgADMAMgANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4ADoAMAANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANAAzADgAMQA0AGQAMgBlAC0ANQAyADUAOAAtADQAMwAyAGUALQA4ADEANAA3AC0AZQAyAGUAYQAyADkAYQBlAGEAMwA3ADUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADEAMAAwACwAIAAxADAAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBjAGEAMQBjAGIAOAAxAGYALQA3ADkAMQAwAC0ANABiADMANwAtAGIAYwA4ADUALQA5ADYAYQA0ADEAZABiAGQAZQA0ADcAMgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEYAbAB5AG8AdQB0AFMAaQB6AGUAOgAtADEALAAgAC0AMQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AUABpAG4AbgBlAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBDAG8AbgB0AHIAbwBsAC4ATgBhAG0AZQA6AFAAYQBuAGUAbABEAGUAYgB1AGcATQBhAG4AYQBnAGUAcgANAAoALQAtAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC0ALQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZAA1AGEAOQA5ADgAYQA2AC0AZgAzADYANAAtADQAYgAzAGMALQA5AGIAZgA0AC0AYQAzADQAMgA4AGUAOQAyAGMAYwA3AGYADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARABvAGMAawBlAGQATABvAGMAYQB0AGkAbwBuADoARABvAGMAawBlAGQAUgBpAGcAaAB0AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgA5ADUALAAgADUAMAAzAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEYAbABvAGEAdABpAG4AZwBMAG8AYwBhAHQAaQBvAG4AOgAtADEALAAgAC0AMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4ADoAMAANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAMQA0ADgAMAAzADkAMABlAC0AYwA0ADIANwAtADQANQAxADQALQA4ADUAMABlAC0AYgBlADcAMABkADAAOAA5ADIAZQA2ADgADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADEAMAAwACwAIAAxADAAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZAA1AGEAOQA5ADgAYQA2AC0AZgAzADYANAAtADQAYgAzAGMALQA5AGIAZgA0AC0AYQAzADQAMgA4AGUAOQAyAGMAYwA3AGYADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBEAGUAdgBpAGMAZQBUAG8AcABQAGEAbgBlAGwADQAKAC0ALQBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAtAC0ADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADkAMgBkADEANAA2AGMAOQAtADQAYQA4AGQALQA0ADYAYQBlAC0AOABkADEAYwAtADIAMwBlADEAMwAyAGQANgAwAGEANABhAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEQAbwBjAGsAZQBkAEwAbwBjAGEAdABpAG8AbgA6AEQAbwBjAGsAZQBkAFIAaQBnAGgAdAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGwAbwBzAGUAZAA6AEYAYQBsAHMAZQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGkAegBlADoAOQA1ACwAIAA1ADAAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBGAGwAbwBhAHQAaQBuAGcATABvAGMAYQB0AGkAbwBuADoALQAxACwAIAAtADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AQwBoAGkAbABkAFAAYQBuAGUAUwB0AHkAbABlADoAVABhAGIARwByAG8AdQBwAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFAAYQBuAGUAcwAuAEMAbwB1AG4AdAA6ADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUwBlAGwAZQBjAHQAZQBkAFQAYQBiAEkAbgBkAGUAeAA6ADAADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGIAYgBmADkAMAA2AGYANAAtAGYAZQA5AGMALQA0AGMAYgBlAC0AYgA0ADQAMgAtADUAMwAxADkAYgAxAGQANwAzADIAOQA5AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADkAMgBkADEANAA2AGMAOQAtADQAYQA4AGQALQA0ADYAYQBlAC0AOABkADEAYwAtADIAMwBlADEAMwAyAGQANgAwAGEANABhAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoARABlAHYAaQBjAGUATABpAHMAdABQAGEAbgBlAGwADQAKAC0ALQBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAtAC0ADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADEAMQA0ADcAYwAyAGEAYQAtAGUAZQBhAGUALQA0ADkANwA3AC0AOABiAGUAYQAtADIANAA1ADEANQBmADQAYQA1ADQAYQAxAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEQAbwBjAGsAZQBkAEwAbwBjAGEAdABpAG8AbgA6AEQAbwBjAGsAZQBkAFIAaQBnAGgAdAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGwAbwBzAGUAZAA6AEYAYQBsAHMAZQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGkAegBlADoAOQA1ACwAIAA1ADAAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBGAGwAbwBhAHQAaQBuAGcATABvAGMAYQB0AGkAbwBuADoALQAxACwAIAAtADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AQwBoAGkAbABkAFAAYQBuAGUAUwB0AHkAbABlADoAVABhAGIARwByAG8AdQBwAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFAAYQBuAGUAcwAuAEMAbwB1AG4AdAA6ADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUwBlAGwAZQBjAHQAZQBkAFQAYQBiAEkAbgBkAGUAeAA6ADAADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADIAYQBjADEANgBlAGYAZQAtADEANwA3ADcALQA0AGEANgAzAC0AOQA4AGYAZAAtADcAYgA0AGMAZAAzAGEAMAAyAGIAYwA1AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADEAMQA0ADcAYwAyAGEAYQAtAGUAZQBhAGUALQA0ADkANwA3AC0AOABiAGUAYQAtADIANAA1ADEANQBmADQAYQA1ADQAYQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoATQBhAGMAcgBvAFAAYQBuAGUAbAANAAoALQAtAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC0ALQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZAA1AGYANgAwAGYAYgBiAC0AMwAyADYAOAAtADQAYQAxADAALQA4AGYANQAxAC0AYQAwADEAZAA3ADcAZQBlADAAMgBmADcADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARABvAGMAawBlAGQATABvAGMAYQB0AGkAbwBuADoARABvAGMAawBlAGQAUgBpAGcAaAB0AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgA5ADUALAAgADUAMAAzAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEYAbABvAGEAdABpAG4AZwBMAG8AYwBhAHQAaQBvAG4AOgAtADEALAAgAC0AMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4ADoAMAANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAOAA3AGEAMAA1ADMANAA1AC0ANgAxAGYAYgAtADQAMwBhADIALQBhADEAYwA0AC0AZQA1ADAAYQBmADEANAA1AGEAOAAyADMADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADEAMAAwACwAIAAxADAAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZAA1AGYANgAwAGYAYgBiAC0AMwAyADYAOAAtADQAYQAxADAALQA4AGYANQAxAC0AYQAwADEAZAA3ADcAZQBlADAAMgBmADcADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBUAGUAeAB0AFAAYQBuAGUAbAANAAoALQAtAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC0ALQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgBmADAAOQBjAGUAOAA5AC0ANQA1AGUANAAtADQANQBkAGIALQBiADYAMABkAC0AZAAzADAANwA2AGEANAA2AGMANwAzAGIADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARABvAGMAawBlAGQATABvAGMAYQB0AGkAbwBuADoARABvAGMAawBlAGQAUgBpAGcAaAB0AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgA5ADUALAAgADUAMAAzAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEYAbABvAGEAdABpAG4AZwBMAG8AYwBhAHQAaQBvAG4AOgAtADEALAAgAC0AMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4ADoAMAANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANwBjADMAMAA0ADcAZQA5AC0AMQBlADEANwAtADQAYQBkAGMALQBhAGQAZgBhAC0AMgBkADIAZgA1AGIAYgA3ADAAMwA2AGYADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADEAMAAwACwAIAAxADAAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgBmADAAOQBjAGUAOAA5AC0ANQA1AGUANAAtADQANQBkAGIALQBiADYAMABkAC0AZAAzADAANwA2AGEANAA2AGMANwAzAGIADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBEAGUAdgBpAGMAZQBQAGkAbgBMAGkAcwB0AEYAbwByAG0ADQAKAC0ALQBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAtAC0ADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADkAOQAzADYAOAA0AGMANQAtADYAZAAyADUALQA0ADYANAA4AC0AYQA5ADQAMQAtAGEAMAA4AGYANQA5ADYANAAyADkANABmAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEQAbwBjAGsAZQBkAEwAbwBjAGEAdABpAG8AbgA6AEQAbwBjAGsAZQBkAFIAaQBnAGgAdAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGwAbwBzAGUAZAA6AEYAYQBsAHMAZQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGkAegBlADoAOQA1ACwAIAA1ADAAMwANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBGAGwAbwBhAHQAaQBuAGcATABvAGMAYQB0AGkAbwBuADoALQAxACwAIAAtADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AQwBoAGkAbABkAFAAYQBuAGUAUwB0AHkAbABlADoAVABhAGIARwByAG8AdQBwAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFAAYQBuAGUAcwAuAEMAbwB1AG4AdAA6ADEADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUwBlAGwAZQBjAHQAZQBkAFQAYQBiAEkAbgBkAGUAeAA6ADAADQAKAC0ALQBEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC0ALQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADMANgAwADMAOAA5AGQAMgAtADMAYQBjADIALQA0AGIAMAAwAC0AYQBkADIAMAAtADYAMAAzADAAZgBjADkANwBjADcAZQA3AA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBDAGwAbwBzAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6ADkAOQAzADYAOAA0AGMANQAtADYAZAAyADUALQA0ADYANAA4AC0AYQA5ADQAMQAtAGEAMAA4AGYANQA5ADYANAAyADkANABmAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoARABlAHYAaQBjAGUAVABvAHAAVgBpAGUAdwBGAG8AcgBtAA0ACgAtAC0ARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALQAtAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBhAGIANwA5AGMAMQBlADIALQAyAGQAYwA4AC0ANAA2AGMAMAAtAGEAYQA0AGIALQA3ADUANwBiADkANgA0ADIAOQBhADgAMAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBEAG8AYwBrAGUAZABMAG8AYwBhAHQAaQBvAG4AOgBEAG8AYwBrAGUAZABSAGkAZwBoAHQADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AQwBsAG8AcwBlAGQAOgBGAGEAbABzAGUADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUwBpAHoAZQA6ADkANQAsACAANQAwADMADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARgBsAG8AYQB0AGkAbgBnAEwAbwBjAGEAdABpAG8AbgA6AC0AMQAsACAALQAxAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAaABpAGwAZABQAGEAbgBlAFMAdAB5AGwAZQA6AFQAYQBiAEcAcgBvAHUAcAANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBQAGEAbgBlAHMALgBDAG8AdQBuAHQAOgAxAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAZQBsAGUAYwB0AGUAZABUAGEAYgBJAG4AZABlAHgAOgAwAA0ACgAtAC0ARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAtAC0ADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgBjAGEAZQAwADMAZgBhADYALQA0ADkAYwBkAC0ANABlAGQANgAtAGIAZAAxAGUALQBjADUAMAAzADcANQAzADAAYQA1ADUAYwANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AQwBsAG8AcwBlAGQAOgBGAGEAbABzAGUADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFMAaQB6AGUAOgAxADAAMAAsACAAMQAwADAADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEQAbwBjAGsAZQBkAC4ASQBuAHQAZQByAG4AYQBsAEkAZAA6AGEAYgA3ADkAYwAxAGUAMgAtADIAZABjADgALQA0ADYAYwAwAC0AYQBhADQAYgAtADcANQA3AGIAOQA2ADQAMgA5AGEAOAAwAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBQAGEAcgBlAG4AdABGAGwAbwBhAHQAaQBuAGcALgBJAG4AdABlAHIAbgBhAGwASQBkADoADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFQAeQBwAGUAOgBEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBJAHMATQBkAGkAQwBoAGkAbABkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4ARgBsAHkAbwB1AHQAUwBpAHoAZQA6AC0AMQAsACAALQAxAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBQAGkAbgBuAGUAZAA6AFQAcgB1AGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEMAbwBuAHQAcgBvAGwALgBOAGEAbQBlADoAUABhAG4AZQBsAEMAbwBkAGUAUABhAHIAdAANAAoALQAtAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC0ALQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgBkADAANwBhAGEAYwBjAC0AYQAxAGIAZAAtADQANwBlAGYALQBiADkANQA4AC0AMQAxAGUAMQAxADcANwA3AGMAOABhAGMADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4ARABvAGMAawBlAGQATABvAGMAYQB0AGkAbwBuADoARABvAGMAawBlAGQAUgBpAGcAaAB0AA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEMAbABvAHMAZQBkADoARgBhAGwAcwBlAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAFMAaQB6AGUAOgA5ADUALAAgADUAMAAzAA0ACgBEAG8AYwBrAEEAcgBlAGEAUABhAG4AZQAuAEYAbABvAGEAdABpAG4AZwBMAG8AYwBhAHQAaQBvAG4AOgAtADEALAAgAC0AMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBDAGgAaQBsAGQAUABhAG4AZQBTAHQAeQBsAGUAOgBUAGEAYgBHAHIAbwB1AHAADQAKAEQAbwBjAGsAQQByAGUAYQBQAGEAbgBlAC4AUABhAG4AZQBzAC4AQwBvAHUAbgB0ADoAMQANAAoARABvAGMAawBBAHIAZQBhAFAAYQBuAGUALgBTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4ADoAMAANAAoALQAtAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALQAtAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBQAGEAbgBlAEIAYQBzAGUALgBJAG4AdABlAHIAbgBhAGwASQBkADoAZQBmADcAMQBiADUAMwA4AC0AZQBjADMANwAtADQAZABkADEALQA4AGUAMwA0AC0ANAA4ADEAOABjADQAOQAwADIAMgA3ADkADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAEMAbABvAHMAZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUwBpAHoAZQA6ADEAMAAwACwAIAAxADAAMAANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AUABhAHIAZQBuAHQARABvAGMAawBlAGQALgBJAG4AdABlAHIAbgBhAGwASQBkADoANgBkADAANwBhAGEAYwBjAC0AYQAxAGIAZAAtADQANwBlAGYALQBiADkANQA4AC0AMQAxAGUAMQAxADcANwA3AGMAOABhAGMADQAKACAARABvAGMAawBhAGIAbABlAFAAYQBuAGUAQgBhAHMAZQAuAFAAYQByAGUAbgB0AEYAbABvAGEAdABpAG4AZwAuAEkAbgB0AGUAcgBuAGEAbABJAGQAOgANAAoAIABEAG8AYwBrAGEAYgBsAGUAUABhAG4AZQBCAGEAcwBlAC4AVAB5AHAAZQA6AEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAEkAcwBNAGQAaQBDAGgAaQBsAGQAOgBUAHIAdQBlAA0ACgAgAEQAbwBjAGsAYQBiAGwAZQBDAG8AbgB0AHIAbwBsAFAAYQBuAGUALgBGAGwAeQBvAHUAdABTAGkAegBlADoALQAxACwAIAAtADEADQAKACAARABvAGMAawBhAGIAbABlAEMAbwBuAHQAcgBvAGwAUABhAG4AZQAuAFAAaQBuAG4AZQBkADoAVAByAHUAZQANAAoAIABEAG8AYwBrAGEAYgBsAGUAQwBvAG4AdAByAG8AbABQAGEAbgBlAC4AQwBvAG4AdAByAG8AbAAuAE4AYQBtAGUAOgBQAGEAbgBlAGwAQwBvAGQAZQBQAGEAcgB0AFAAcgBlAHYAaQBlAHcADQAKAA== - PABTAE8AQQBQAC0ARQBOAFYAOgBFAG4AdgBlAGwAbwBwAGUAIAB4AG0AbABuAHMAOgB4AHMAaQA9ACIAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAHcAMwAuAG8AcgBnAC8AMgAwADAAMQAvAFgATQBMAFMAYwBoAGUAbQBhAC0AaQBuAHMAdABhAG4AYwBlACIAIAB4AG0AbABuAHMAOgB4AHMAZAA9ACIAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAHcAMwAuAG8AcgBnAC8AMgAwADAAMQAvAFgATQBMAFMAYwBoAGUAbQBhACIAIAB4AG0AbABuAHMAOgBTAE8AQQBQAC0ARQBOAEMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAHgAbQBsAHMAbwBhAHAALgBvAHIAZwAvAHMAbwBhAHAALwBlAG4AYwBvAGQAaQBuAGcALwAiACAAeABtAGwAbgBzADoAUwBPAEEAUAAtAEUATgBWAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgB4AG0AbABzAG8AYQBwAC4AbwByAGcALwBzAG8AYQBwAC8AZQBuAHYAZQBsAG8AcABlAC8AIgAgAHgAbQBsAG4AcwA6AGMAbAByAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AcwBvAGEAcAAvAGUAbgBjAG8AZABpAG4AZwAvAGMAbAByAC8AMQAuADAAIgAgAFMATwBBAFAALQBFAE4AVgA6AGUAbgBjAG8AZABpAG4AZwBTAHQAeQBsAGUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAHgAbQBsAHMAbwBhAHAALgBvAHIAZwAvAHMAbwBhAHAALwBlAG4AYwBvAGQAaQBuAGcALwAiAD4ADQAKADwAUwBPAEEAUAAtAEUATgBWADoAQgBvAGQAeQA+AA0ACgA8AGEAMQA6AE8AYgBqAGUAYwB0AFMAdAByAGUAYQBtAGUAcgAgAGkAZAA9ACIAcgBlAGYALQAxACIAIAB4AG0AbABuAHMAOgBhADEAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkAIgA+AA0ACgA8AE8AYgBqAGUAYwB0AFMAdAByAGUAYQBtAGUAcgBBAHMAcwBlAG0AYgBsAHkATgBhAG0AZQAgAGkAZAA9ACIAcgBlAGYALQA1ACIAPgBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpADwALwBPAGIAagBlAGMAdABTAHQAcgBlAGEAbQBlAHIAQQBzAHMAZQBtAGIAbAB5AE4AYQBtAGUAPgANAAoAPABUAGEAYgBTAGUAdAB0AGkAbgBnAHMAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0ANgAiAC8APgANAAoAPABIAGkAZABkAGUAbgBUAGEAYgBzACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADcAIgAvAD4ADQAKADwAVABhAGIARwByAG8AdQBwAHMAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AOAAiAC8APgANAAoAPABNAGEAeABUAGEAYgBHAHIAbwB1AHAAcwA+ADQAPAAvAE0AYQB4AFQAYQBiAEcAcgBvAHUAcABzAD4ADQAKADwAQQBjAHQAaQB2AGUAVABhAGIARwByAG8AdQBwAEkAbgBkAGUAeAA+ADAAPAAvAEEAYwB0AGkAdgBlAFQAYQBiAEcAcgBvAHUAcABJAG4AZABlAHgAPgANAAoAPABTAHAAbABpAHQAdABlAHIAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQA5ACIALwA+AA0ACgA8AFMAcABsAGkAdAB0AGUAcgBCAG8AcgBkAGUAcgBTAHQAeQBsAGUAPgA2ADwALwBTAHAAbABpAHQAdABlAHIAQgBvAHIAZABlAHIAUwB0AHkAbABlAD4ADQAKADwAVgBpAGUAdwBTAHQAeQBsAGUAPgA0ADwALwBWAGkAZQB3AFMAdAB5AGwAZQA+AA0ACgA8AFQAYQBiAEcAcgBvAHUAcABTAGUAdAB0AGkAbgBnAHMAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMQAwACIALwA+AA0ACgA8AC8AYQAxADoATwBiAGoAZQBjAHQAUwB0AHIAZQBhAG0AZQByAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAUwBlAHQAdABpAG4AZwBzACAAaQBkAD0AIgByAGUAZgAtADYAIgAgAHgAbQBsAG4AcwA6AGEAMgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALgB2ADEAMgAuADIAIgA+AA0ACgA8AEEAYwB0AGkAdgBlAFQAYQBiAEEAcABwAGUAYQByAGEAbgBjAGUAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMQAxACIALwA+AA0ACgA8AEQAaQBzAHAAbABhAHkARgBvAHIAbQBJAGMAbwBuAD4AMQA8AC8ARABpAHMAcABsAGEAeQBGAG8AcgBtAEkAYwBvAG4APgANAAoAPABIAG8AdABUAHIAYQBjAGsAPgAxADwALwBIAG8AdABUAHIAYQBjAGsAPgANAAoAPABTAGUAbABlAGMAdABlAGQAVABhAGIAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQAxADIAIgAvAD4ADQAKADwAVABhAGIAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQAxADMAIgAvAD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgBTAGUAdAB0AGkAbgBnAHMAPgANAAoAPABhADIAOgBIAGkAZABkAGUAbgBNAGQAaQBUAGEAYgBzAEMAbwBsAGwAZQBjAHQAaQBvAG4AIABpAGQAPQAiAHIAZQBmAC0ANwAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAQwBvAHUAbgB0AD4AMQA0ADwALwBDAG8AdQBuAHQAPgANAAoAPABfAHgAMAAwADMAMABfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADEANAAiAC8APgANAAoAPABfAHgAMAAwADMAMQBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADEANQAiAC8APgANAAoAPABfAHgAMAAwADMAMgBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADEANgAiAC8APgANAAoAPABfAHgAMAAwADMAMwBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADEANwAiAC8APgANAAoAPABfAHgAMAAwADMANABfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADEAOAAiAC8APgANAAoAPABfAHgAMAAwADMANQBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADEAOQAiAC8APgANAAoAPABfAHgAMAAwADMANgBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADIAMAAiAC8APgANAAoAPABfAHgAMAAwADMANwBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADIAMQAiAC8APgANAAoAPABfAHgAMAAwADMAOABfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADIAMgAiAC8APgANAAoAPABfAHgAMAAwADMAOQBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADIAMwAiAC8APgANAAoAPABfAHgAMAAwADMAMQBfADAAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMgA0ACIALwA+AA0ACgA8AF8AeAAwADAAMwAxAF8AMQAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQAyADUAIgAvAD4ADQAKADwAXwB4ADAAMAAzADEAXwAyACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADIANgAiAC8APgANAAoAPABfAHgAMAAwADMAMQBfADMAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMgA3ACIALwA+AA0ACgA8AC8AYQAyADoASABpAGQAZABlAG4ATQBkAGkAVABhAGIAcwBDAG8AbABsAGUAYwB0AGkAbwBuAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIARwByAG8AdQBwAHMAQwBvAGwAbABlAGMAdABpAG8AbgAgAGkAZAA9ACIAcgBlAGYALQA4ACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABDAG8AdQBuAHQAPgAxADwALwBDAG8AdQBuAHQAPgANAAoAPABfAHgAMAAwADMAMABfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADIAOAAiAC8APgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAEcAcgBvAHUAcABzAEMAbwBsAGwAZQBjAHQAaQBvAG4APgANAAoAPABhADMAOgBBAHAAcABlAGEAcgBhAG4AYwBlAEgAbwBsAGQAZQByACAAaQBkAD0AIgByAGUAZgAtADkAIgAgAHgAbQBsAG4AcwA6AGEAMwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgB2ADEAMgAuADIAIgA+AA0ACgA8AEEAcABwAGUAYQByAGEAbgBjAGUAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMgA5ACIALwA+AA0ACgA8AC8AYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQBIAG8AbABkAGUAcgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiAEcAcgBvAHUAcABTAGUAdAB0AGkAbgBnAHMAIABpAGQAPQAiAHIAZQBmAC0AMQAwACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABUAGEAYgBBAHIAZQBhAEEAcABwAGUAYQByAGEAbgBjAGUAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMwAwACIALwA+AA0ACgA8AFMAaABvAHcAVABhAGIATABpAHMAdABCAHUAdAB0AG8AbgA+ADEAPAAvAFMAaABvAHcAVABhAGIATABpAHMAdABCAHUAdAB0AG8AbgA+AA0ACgA8AFQAYQBiAEIAdQB0AHQAbwBuAFMAdAB5AGwAZQA+ADEANgA8AC8AVABhAGIAQgB1AHQAdABvAG4AUwB0AHkAbABlAD4ADQAKADwAUwBjAHIAbwBsAGwAQQByAHIAbwB3AFMAdAB5AGwAZQA+ADIAPAAvAFMAYwByAG8AbABsAEEAcgByAG8AdwBTAHQAeQBsAGUAPgANAAoAPABTAGMAcgBvAGwAbABCAHUAdAB0AG8AbgBzAD4AMwA8AC8AUwBjAHIAbwBsAGwAQgB1AHQAdABvAG4AcwA+AA0ACgA8AFQAYQBiAFMAdAB5AGwAZQA+ADIAPAAvAFQAYQBiAFMAdAB5AGwAZQA+AA0ACgA8AFQAYQBiAEEAcgBlAGEATQBhAHIAZwBpAG4AcwAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQAzADEAIgAvAD4ADQAKADwAQwBsAG8AcwBlAEIAdQB0AHQAbwBuAEwAbwBjAGEAdABpAG8AbgA+ADIAPAAvAEMAbABvAHMAZQBCAHUAdAB0AG8AbgBMAG8AYwBhAHQAaQBvAG4APgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAEcAcgBvAHUAcABTAGUAdAB0AGkAbgBnAHMAPgANAAoAPABhADMAOgBBAHAAcABlAGEAcgBhAG4AYwBlAEgAbwBsAGQAZQByACAAaQBkAD0AIgByAGUAZgAtADEAMQAiACAAeABtAGwAbgBzADoAYQAzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAHYAMQAyAC4AMgAiAD4ADQAKADwAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQAzADIAIgAvAD4ADQAKADwALwBhADMAOgBBAHAAcABlAGEAcgBhAG4AYwBlAEgAbwBsAGQAZQByAD4ADQAKADwAYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQBIAG8AbABkAGUAcgAgAGkAZAA9ACIAcgBlAGYALQAxADIAIgAgAHgAbQBsAG4AcwA6AGEAMwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgB2ADEAMgAuADIAIgA+AA0ACgA8AEEAcABwAGUAYQByAGEAbgBjAGUAIABoAHIAZQBmAD0AIgAjAHIAZQBmAC0AMwAzACIALwA+AA0ACgA8AC8AYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQBIAG8AbABkAGUAcgA+AA0ACgA8AGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUASABvAGwAZABlAHIAIABpAGQAPQAiAHIAZQBmAC0AMQAzACIAIAB4AG0AbABuAHMAOgBhADMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AdgAxADIALgAyACIAPgANAAoAPABBAHAAcABlAGEAcgBhAG4AYwBlACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADMANAAiAC8APgANAAoAPAAvAGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUASABvAGwAZABlAHIAPgANAAoAPABhADIAOgBNAGQAaQBUAGEAYgAgAGkAZAA9ACIAcgBlAGYALQAxADQAIgAgAHgAbQBsAG4AcwA6AGEAMgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALgB2ADEAMgAuADIAIgA+AA0ACgA8AFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8AIAB4AHMAaQA6AHQAeQBwAGUAPQAiAGEANAA6AE8AYgBqAGUAYwB0AFcAcgBhAHAAcABlAHIAIgAgAHgAbQBsAG4AcwA6AGEANAA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AUwBoAGEAcgBlAGQALgBTAGUAcgBpAGEAbABpAHoAYQB0AGkAbwBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFMAaABhAHIAZQBkAC4AdgAxADIALgAyACIAPgANAAoAPABvAGIAagBlAGMAdABWAGEAbAB1AGUAIAB4AHMAaQA6AHQAeQBwAGUAPQAiAGEANQA6AEcAdQBpAGQAIgAgAHgAbQBsAG4AcwA6AGEANQA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAC8AUwB5AHMAdABlAG0AIgA+AA0ACgA8AF8AYQA+ADEAOAA3ADEANAA0ADMAMQA5ADAAPAAvAF8AYQA+AA0ACgA8AF8AYgA+ADIANwA0ADcANwA8AC8AXwBiAD4ADQAKADwAXwBjAD4AMQA2ADkANwA4ADwALwBfAGMAPgANAAoAPABfAGQAPgAxADMANwA8AC8AXwBkAD4ADQAKADwAXwBlAD4AMQA4ADEAPAAvAF8AZQA+AA0ACgA8AF8AZgA+ADEAOQAyADwALwBfAGYAPgANAAoAPABfAGcAPgAxADAANwA8AC8AXwBnAD4ADQAKADwAXwBoAD4AMQA5ADYAPAAvAF8AaAA+AA0ACgA8AF8AaQA+ADcANAA8AC8AXwBpAD4ADQAKADwAXwBqAD4AMgA0ADgAPAAvAF8AagA+AA0ACgA8AF8AawA+ADEAMQA1ADwALwBfAGsAPgANAAoAPAAvAG8AYgBqAGUAYwB0AFYAYQBsAHUAZQA+AA0ACgA8AC8AUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwA+AA0ACgA8AE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgAyADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADEANQAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4ALQAxADcANQAxADIAOQA5ADgAMAA0ADwALwBfAGEAPgANAAoAPABfAGIAPgAtADIAMwAxADIAOAA8AC8AXwBiAD4ADQAKADwAXwBjAD4AMQA3ADMANgAxADwALwBfAGMAPgANAAoAPABfAGQAPgAxADgAOAA8AC8AXwBkAD4ADQAKADwAXwBlAD4ANwAzADwALwBfAGUAPgANAAoAPABfAGYAPgAxADAAMwA8AC8AXwBmAD4ADQAKADwAXwBnAD4AMQAwADgAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADEAOQA5ADwALwBfAGgAPgANAAoAPABfAGkAPgAxADgANAA8AC8AXwBpAD4ADQAKADwAXwBqAD4AMQA5ADgAPAAvAF8AagA+AA0ACgA8AF8AawA+ADQAPAAvAF8AawA+AA0ACgA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+ADQAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0AMQA2ACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgA5ADkAMAA2ADcAMwAwADAAMgA8AC8AXwBhAD4ADQAKADwAXwBiAD4ALQAzADEANwA0ADgAPAAvAF8AYgA+AA0ACgA8AF8AYwA+ADEAOQAzADgANQA8AC8AXwBjAD4ADQAKADwAXwBkAD4AMQA5ADAAPAAvAF8AZAA+AA0ACgA8AF8AZQA+ADEANAAyADwALwBfAGUAPgANAAoAPABfAGYAPgAyADQAOQA8AC8AXwBmAD4ADQAKADwAXwBnAD4AMQA4ADUAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADEANAAyADwALwBfAGgAPgANAAoAPABfAGkAPgAyADAAPAAvAF8AaQA+AA0ACgA8AF8AagA+ADcAPAAvAF8AagA+AA0ACgA8AF8AawA+ADEAOAAyADwALwBfAGsAPgANAAoAPAAvAG8AYgBqAGUAYwB0AFYAYQBsAHUAZQA+AA0ACgA8AC8AUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwA+AA0ACgA8AE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgA1ADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADEANwAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4ALQAxADIAOAA1ADUANAAwADUANQA8AC8AXwBhAD4ADQAKADwAXwBiAD4AMgA2ADUANAA1ADwALwBfAGIAPgANAAoAPABfAGMAPgAxADgANwAxADcAPAAvAF8AYwA+AA0ACgA8AF8AZAA+ADEAOAA2ADwALwBfAGQAPgANAAoAPABfAGUAPgAxADUAOAA8AC8AXwBlAD4ADQAKADwAXwBmAD4AMQAxADcAPAAvAF8AZgA+AA0ACgA8AF8AZwA+ADcANAA8AC8AXwBnAD4ADQAKADwAXwBoAD4AMQA1ADYAPAAvAF8AaAA+AA0ACgA8AF8AaQA+ADIAMgAzADwALwBfAGkAPgANAAoAPABfAGoAPgA3ADgAPAAvAF8AagA+AA0ACgA8AF8AawA+ADcANwA8AC8AXwBrAD4ADQAKADwALwBvAGIAagBlAGMAdABWAGEAbAB1AGUAPgANAAoAPAAvAFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8APgANAAoAPABNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ANgA8AC8ATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+AA0ACgA8AC8AYQAyADoATQBkAGkAVABhAGIAPgANAAoAPABhADIAOgBNAGQAaQBUAGEAYgAgAGkAZAA9ACIAcgBlAGYALQAxADgAIgAgAHgAbQBsAG4AcwA6AGEAMgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALgB2ADEAMgAuADIAIgA+AA0ACgA8AFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8AIAB4AHMAaQA6AHQAeQBwAGUAPQAiAGEANAA6AE8AYgBqAGUAYwB0AFcAcgBhAHAAcABlAHIAIgAgAHgAbQBsAG4AcwA6AGEANAA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AUwBoAGEAcgBlAGQALgBTAGUAcgBpAGEAbABpAHoAYQB0AGkAbwBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFMAaABhAHIAZQBkAC4AdgAxADIALgAyACIAPgANAAoAPABvAGIAagBlAGMAdABWAGEAbAB1AGUAIAB4AHMAaQA6AHQAeQBwAGUAPQAiAGEANQA6AEcAdQBpAGQAIgAgAHgAbQBsAG4AcwA6AGEANQA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAC8AUwB5AHMAdABlAG0AIgA+AA0ACgA8AF8AYQA+ADIAMQA0ADUANwAzADgAMgAwADMAPAAvAF8AYQA+AA0ACgA8AF8AYgA+ADIAMAAyADAAOQA8AC8AXwBiAD4ADQAKADwAXwBjAD4AMQA5ADYAOQA3ADwALwBfAGMAPgANAAoAPABfAGQAPgAxADUAOAA8AC8AXwBkAD4ADQAKADwAXwBlAD4AMQAyADAAPAAvAF8AZQA+AA0ACgA8AF8AZgA+ADEANAAyADwALwBfAGYAPgANAAoAPABfAGcAPgAyADAANwA8AC8AXwBnAD4ADQAKADwAXwBoAD4AMQA2ADUAPAAvAF8AaAA+AA0ACgA8AF8AaQA+ADEANAA8AC8AXwBpAD4ADQAKADwAXwBqAD4AMgAzADQAPAAvAF8AagA+AA0ACgA8AF8AawA+ADEAMgA2ADwALwBfAGsAPgANAAoAPAAvAG8AYgBqAGUAYwB0AFYAYQBsAHUAZQA+AA0ACgA8AC8AUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwA+AA0ACgA8AE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgA3ADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADEAOQAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4AMwA0ADMAOQA0ADcANQAzADQAPAAvAF8AYQA+AA0ACgA8AF8AYgA+AC0AMQA1ADMAMgAxADwALwBfAGIAPgANAAoAPABfAGMAPgAxADcANgA4ADQAPAAvAF8AYwA+AA0ACgA8AF8AZAA+ADEAMwAzADwALwBfAGQAPgANAAoAPABfAGUAPgAxADQAPAAvAF8AZQA+AA0ACgA8AF8AZgA+ADEAOQAwADwALwBfAGYAPgANAAoAPABfAGcAPgAxADEAMgA8AC8AXwBnAD4ADQAKADwAXwBoAD4AMgAwADgAPAAvAF8AaAA+AA0ACgA8AF8AaQA+ADEAMwA3ADwALwBfAGkAPgANAAoAPABfAGoAPgA0ADYAPAAvAF8AagA+AA0ACgA8AF8AawA+ADEAMAA0ADwALwBfAGsAPgANAAoAPAAvAG8AYgBqAGUAYwB0AFYAYQBsAHUAZQA+AA0ACgA8AC8AUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwA+AA0ACgA8AE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgA4ADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADIAMAAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4ALQAxADEANAAxADMAMAA3ADYANgAwADwALwBfAGEAPgANAAoAPABfAGIAPgAtADMANQA2ADwALwBfAGIAPgANAAoAPABfAGMAPgAxADkANgA0ADYAPAAvAF8AYwA+AA0ACgA8AF8AZAA+ADEAOAAwADwALwBfAGQAPgANAAoAPABfAGUAPgA2ADYAPAAvAF8AZQA+AA0ACgA8AF8AZgA+ADgAMwA8AC8AXwBmAD4ADQAKADwAXwBnAD4AMgA1ADwALwBfAGcAPgANAAoAPABfAGgAPgAxADcANwA8AC8AXwBoAD4ADQAKADwAXwBpAD4AMgAxADUAPAAvAF8AaQA+AA0ACgA8AF8AagA+ADUAMAA8AC8AXwBqAD4ADQAKADwAXwBrAD4AMQA1ADMAPAAvAF8AawA+AA0ACgA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+ADkAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0AMgAxACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgA3ADEANwAzADEAOQA5ADMANAA8AC8AXwBhAD4ADQAKADwAXwBiAD4ANgAwADAANwA8AC8AXwBiAD4ADQAKADwAXwBjAD4AMQA5ADAANAAzADwALwBfAGMAPgANAAoAPABfAGQAPgAxADUAMgA8AC8AXwBkAD4ADQAKADwAXwBlAD4AMgA1ADMAPAAvAF8AZQA+AA0ACgA8AF8AZgA+ADEAMgAzADwALwBfAGYAPgANAAoAPABfAGcAPgA3ADYAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADIAMQAxADwALwBfAGgAPgANAAoAPABfAGkAPgAxADYAMAA8AC8AXwBpAD4ADQAKADwAXwBqAD4ANAAzADwALwBfAGoAPgANAAoAPABfAGsAPgAxADkANwA8AC8AXwBrAD4ADQAKADwALwBvAGIAagBlAGMAdABWAGEAbAB1AGUAPgANAAoAPAAvAFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8APgANAAoAPABNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4AMQAwADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADIAMgAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4ALQAyADAAMQA5ADUAMwA2ADAANQA5ADwALwBfAGEAPgANAAoAPABfAGIAPgAyADUAMAA4ADMAPAAvAF8AYgA+AA0ACgA8AF8AYwA+ADEANwAzADEANAA8AC8AXwBjAD4ADQAKADwAXwBkAD4AMQA2ADEAPAAvAF8AZAA+AA0ACgA8AF8AZQA+ADEAOQA2ADwALwBfAGUAPgANAAoAPABfAGYAPgAyADIAOQA8AC8AXwBmAD4ADQAKADwAXwBnAD4AMQAwADwALwBfAGcAPgANAAoAPABfAGgAPgAyADQAMQA8AC8AXwBoAD4ADQAKADwAXwBpAD4ANgA5ADwALwBfAGkAPgANAAoAPABfAGoAPgAxADYAOAA8AC8AXwBqAD4ADQAKADwAXwBrAD4AMwA1ADwALwBfAGsAPgANAAoAPAAvAG8AYgBqAGUAYwB0AFYAYQBsAHUAZQA+AA0ACgA8AC8AUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwA+AA0ACgA8AE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgAxADEAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0AMgAzACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgAyADAAOAAzADUAMwA4ADkAMgAxADwALwBfAGEAPgANAAoAPABfAGIAPgA3ADcAMAAzADwALwBfAGIAPgANAAoAPABfAGMAPgAxADkAMQA2ADQAPAAvAF8AYwA+AA0ACgA8AF8AZAA+ADEANwAzADwALwBfAGQAPgANAAoAPABfAGUAPgAyADUAMAA8AC8AXwBlAD4ADQAKADwAXwBmAD4ANAA1ADwALwBfAGYAPgANAAoAPABfAGcAPgA0ADcAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADkAMQA8AC8AXwBoAD4ADQAKADwAXwBpAD4AMQA4ADMAPAAvAF8AaQA+AA0ACgA8AF8AagA+ADMAPAAvAF8AagA+AA0ACgA8AF8AawA+ADEAMQAxADwALwBfAGsAPgANAAoAPAAvAG8AYgBqAGUAYwB0AFYAYQBsAHUAZQA+AA0ACgA8AC8AUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwA+AA0ACgA8AE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgAxADIAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0AMgA0ACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgA5ADAANgAyADAAMQA1ADUANAA8AC8AXwBhAD4ADQAKADwAXwBiAD4AMQA1ADAANAAyADwALwBfAGIAPgANAAoAPABfAGMAPgAxADkAMgAwADAAPAAvAF8AYwA+AA0ACgA8AF8AZAA+ADEANwAzADwALwBfAGQAPgANAAoAPABfAGUAPgAzADIAPAAvAF8AZQA+AA0ACgA8AF8AZgA+ADkANgA8AC8AXwBmAD4ADQAKADwAXwBnAD4ANAA4ADwALwBfAGcAPgANAAoAPABfAGgAPgAyADUAMgA8AC8AXwBoAD4ADQAKADwAXwBpAD4AMQA1ADEAPAAvAF8AaQA+AA0ACgA8AF8AagA+ADEAOQA5ADwALwBfAGoAPgANAAoAPABfAGsAPgAyADMAMQA8AC8AXwBrAD4ADQAKADwALwBvAGIAagBlAGMAdABWAGEAbAB1AGUAPgANAAoAPAAvAFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8APgANAAoAPABNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4AMQAzADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADIANQAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4AMgA4ADQAMwA0ADMAMwA2ADYAPAAvAF8AYQA+AA0ACgA8AF8AYgA+ADQANAA0ADYAPAAvAF8AYgA+AA0ACgA8AF8AYwA+ADEAOAA1ADcANgA8AC8AXwBjAD4ADQAKADwAXwBkAD4AMQAyADkAPAAvAF8AZAA+AA0ACgA8AF8AZQA+ADIAMQA4ADwALwBfAGUAPgANAAoAPABfAGYAPgA5ADMAPAAvAF8AZgA+AA0ACgA8AF8AZwA+ADEANAA1ADwALwBfAGcAPgANAAoAPABfAGgAPgA2ADMAPAAvAF8AaAA+AA0ACgA8AF8AaQA+ADEANAA4ADwALwBfAGkAPgANAAoAPABfAGoAPgAxADQANwA8AC8AXwBqAD4ADQAKADwAXwBrAD4AMgAwADgAPAAvAF8AawA+AA0ACgA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+ADAAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0AMgA2ACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgAtADIANwA3ADcANgAwADcAMQAyADwALwBfAGEAPgANAAoAPABfAGIAPgAtADUAMAA2ADUAPAAvAF8AYgA+AA0ACgA8AF8AYwA+ADEAOQA5ADIAMQA8AC8AXwBjAD4ADQAKADwAXwBkAD4AMQA0ADIAPAAvAF8AZAA+AA0ACgA8AF8AZQA+ADUAMgA8AC8AXwBlAD4ADQAKADwAXwBmAD4ANwAyADwALwBfAGYAPgANAAoAPABfAGcAPgAyADQAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADEAOQA2ADwALwBfAGgAPgANAAoAPABfAGkAPgAxADQANAA8AC8AXwBpAD4ADQAKADwAXwBqAD4AMwA0ADwALwBfAGoAPgANAAoAPABfAGsAPgAxADIAMQA8AC8AXwBrAD4ADQAKADwALwBvAGIAagBlAGMAdABWAGEAbAB1AGUAPgANAAoAPAAvAFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8APgANAAoAPABNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4AMQA1ADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AGEAMgA6AE0AZABpAFQAYQBiACAAaQBkAD0AIgByAGUAZgAtADIANwAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAUABlAHIAcwBpAHMAdABlAGQASQBuAGYAbwAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA0ADoATwBiAGoAZQBjAHQAVwByAGEAcABwAGUAcgAiACAAeABtAGwAbgBzADoAYQA0AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBTAGgAYQByAGUAZAAuAFMAZQByAGkAYQBsAGkAegBhAHQAaQBvAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AUwBoAGEAcgBlAGQALgB2ADEAMgAuADIAIgA+AA0ACgA8AG8AYgBqAGUAYwB0AFYAYQBsAHUAZQAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA1ADoARwB1AGkAZAAiACAAeABtAGwAbgBzADoAYQA1AD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMALwBTAHkAcwB0AGUAbQAiAD4ADQAKADwAXwBhAD4AMQA3ADMAOAAyADUAMAA4ADIAMAA8AC8AXwBhAD4ADQAKADwAXwBiAD4AMgAxADEANwAxADwALwBfAGIAPgANAAoAPABfAGMAPgAxADgAMAA3ADQAPAAvAF8AYwA+AA0ACgA8AF8AZAA+ADEANgA0ADwALwBfAGQAPgANAAoAPABfAGUAPgA0ADwALwBfAGUAPgANAAoAPABfAGYAPgAxADYAMQA8AC8AXwBmAD4ADQAKADwAXwBnAD4AMQAyADYAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADEANwA8AC8AXwBoAD4ADQAKADwAXwBpAD4AOQA5ADwALwBfAGkAPgANAAoAPABfAGoAPgAxADMAOQA8AC8AXwBqAD4ADQAKADwAXwBrAD4AMgAxADEAPAAvAF8AawA+AA0ACgA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+ADEAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIARwByAG8AdQBwACAAaQBkAD0AIgByAGUAZgAtADIAOAAiACAAeABtAGwAbgBzADoAYQAyAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAFUAbAB0AHIAYQBXAGkAbgBUAGEAYgBiAGUAZABNAGQAaQAuAHYAMQAyAC4AMgAiAD4ADQAKADwAVABhAGIAcwAgAGgAcgBlAGYAPQAiACMAcgBlAGYALQAzADYAIgAvAD4ADQAKADwARQB4AHQAZQBuAHQAPgA1ADAAMQA8AC8ARQB4AHQAZQBuAHQAPgANAAoAPABGAGkAcgBzAHQARABpAHMAcABsAGEAeQBUAGEAYgBJAG4AZABlAHgAPgAwADwALwBGAGkAcgBzAHQARABpAHMAcABsAGEAeQBUAGEAYgBJAG4AZABlAHgAPgANAAoAPABTAGUAbABlAGMAdABlAGQAVABhAGIASQBuAGQAZQB4AD4AMgA8AC8AUwBlAGwAZQBjAHQAZQBkAFQAYQBiAEkAbgBkAGUAeAA+AA0ACgA8AC8AYQAyADoATQBkAGkAVABhAGIARwByAG8AdQBwAD4ADQAKADwAYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGkAZAA9ACIAcgBlAGYALQAyADkAIgAgAHgAbQBsAG4AcwA6AGEAMwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgB2ADEAMgAuADIAIgA+AA0ACgA8AEIAYQBjAGsAQwBvAGwAbwByACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADYAOgBDAG8AbABvAHIAIgAgAHgAbQBsAG4AcwA6AGEANgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAiAD4ADQAKADwAbgBhAG0AZQAgAHgAcwBpADoAbgB1AGwAbAA9ACIAMQAiAC8APgANAAoAPAB2AGEAbAB1AGUAPgAwADwALwB2AGEAbAB1AGUAPgANAAoAPABrAG4AbwB3AG4AQwBvAGwAbwByAD4ANQA8AC8AawBuAG8AdwBuAEMAbwBsAG8AcgA+AA0ACgA8AHMAdABhAHQAZQA+ADEAPAAvAHMAdABhAHQAZQA+AA0ACgA8AC8AQgBhAGMAawBDAG8AbABvAHIAPgANAAoAPABCAGEAYwBrAEMAbwBsAG8AcgAyACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADYAOgBDAG8AbABvAHIAIgAgAHgAbQBsAG4AcwA6AGEANgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAiAD4ADQAKADwAbgBhAG0AZQAgAHgAcwBpADoAbgB1AGwAbAA9ACIAMQAiAC8APgANAAoAPAB2AGEAbAB1AGUAPgAwADwALwB2AGEAbAB1AGUAPgANAAoAPABrAG4AbwB3AG4AQwBvAGwAbwByAD4ANgA8AC8AawBuAG8AdwBuAEMAbwBsAG8AcgA+AA0ACgA8AHMAdABhAHQAZQA+ADEAPAAvAHMAdABhAHQAZQA+AA0ACgA8AC8AQgBhAGMAawBDAG8AbABvAHIAMgA+AA0ACgA8AEkAZAA+ADAAPAAvAEkAZAA+AA0ACgA8AC8AYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQA+AA0ACgA8AGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUASABvAGwAZABlAHIAIABpAGQAPQAiAHIAZQBmAC0AMwAwACIAIAB4AG0AbABuAHMAOgBhADMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AdgAxADIALgAyACIAPgANAAoAPABBAHAAcABlAGEAcgBhAG4AYwBlACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADMAOAAiAC8APgANAAoAPAAvAGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUASABvAGwAZABlAHIAPgANAAoAPABhADMAOgBNAGEAcgBnAGkAbgBzACAAaQBkAD0AIgByAGUAZgAtADMAMQAiACAAeABtAGwAbgBzADoAYQAzAD0AIgBoAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYwBsAHIALwBuAHMAYQBzAHMAZQBtAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMALgBXAGkAbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBXAGkAbgAuAHYAMQAyAC4AMgAiAD4ADQAKADwATABlAGYAdABEAGUAZgBhAHUAbAB0AD4AMAA8AC8ATABlAGYAdABEAGUAZgBhAHUAbAB0AD4ADQAKADwAVABvAHAARABlAGYAYQB1AGwAdAA+ADAAPAAvAFQAbwBwAEQAZQBmAGEAdQBsAHQAPgANAAoAPABSAGkAZwBoAHQARABlAGYAYQB1AGwAdAA+ADAAPAAvAFIAaQBnAGgAdABEAGUAZgBhAHUAbAB0AD4ADQAKADwAQgBvAHQAdABvAG0ARABlAGYAYQB1AGwAdAA+ADAAPAAvAEIAbwB0AHQAbwBtAEQAZQBmAGEAdQBsAHQAPgANAAoAPABCAG8AdAB0AG8AbQA+ADQAPAAvAEIAbwB0AHQAbwBtAD4ADQAKADwALwBhADMAOgBNAGEAcgBnAGkAbgBzAD4ADQAKADwAYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGkAZAA9ACIAcgBlAGYALQAzADIAIgAgAHgAbQBsAG4AcwA6AGEAMwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgB2ADEAMgAuADIAIgA+AA0ACgA8AEIAYQBjAGsAQwBvAGwAbwByACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADYAOgBDAG8AbABvAHIAIgAgAHgAbQBsAG4AcwA6AGEANgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAiAD4ADQAKADwAbgBhAG0AZQAgAHgAcwBpADoAbgB1AGwAbAA9ACIAMQAiAC8APgANAAoAPAB2AGEAbAB1AGUAPgA0ADIAOAAyADAAOAA5ADcAMAA5ADwALwB2AGEAbAB1AGUAPgANAAoAPABrAG4AbwB3AG4AQwBvAGwAbwByAD4AMAA8AC8AawBuAG8AdwBuAEMAbwBsAG8AcgA+AA0ACgA8AHMAdABhAHQAZQA+ADIAPAAvAHMAdABhAHQAZQA+AA0ACgA8AC8AQgBhAGMAawBDAG8AbABvAHIAPgANAAoAPABCAGEAYwBrAEMAbwBsAG8AcgAyACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADYAOgBDAG8AbABvAHIAIgAgAHgAbQBsAG4AcwA6AGEANgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAiAD4ADQAKADwAbgBhAG0AZQAgAHgAcwBpADoAbgB1AGwAbAA9ACIAMQAiAC8APgANAAoAPAB2AGEAbAB1AGUAPgA0ADIAOAAxADQAMgA4ADYANwA3ADwALwB2AGEAbAB1AGUAPgANAAoAPABrAG4AbwB3AG4AQwBvAGwAbwByAD4AMAA8AC8AawBuAG8AdwBuAEMAbwBsAG8AcgA+AA0ACgA8AHMAdABhAHQAZQA+ADIAPAAvAHMAdABhAHQAZQA+AA0ACgA8AC8AQgBhAGMAawBDAG8AbABvAHIAMgA+AA0ACgA8AEkAZAA+ADAAPAAvAEkAZAA+AA0ACgA8AC8AYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQA+AA0ACgA8AGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUAIABpAGQAPQAiAHIAZQBmAC0AMwAzACIAIAB4AG0AbABuAHMAOgBhADMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AdgAxADIALgAyACIAPgANAAoAPABCAGEAYwBrAEMAbwBsAG8AcgAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA2ADoAQwBvAGwAbwByACIAIAB4AG0AbABuAHMAOgBhADYAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBTAHkAcwB0AGUAbQAuAEQAcgBhAHcAaQBuAGcALwBTAHkAcwB0AGUAbQAuAEQAcgBhAHcAaQBuAGcAIgA+AA0ACgA8AG4AYQBtAGUAIAB4AHMAaQA6AG4AdQBsAGwAPQAiADEAIgAvAD4ADQAKADwAdgBhAGwAdQBlAD4ANAAyADkAMQA2ADEAMAA1ADUANAA8AC8AdgBhAGwAdQBlAD4ADQAKADwAawBuAG8AdwBuAEMAbwBsAG8AcgA+ADAAPAAvAGsAbgBvAHcAbgBDAG8AbABvAHIAPgANAAoAPABzAHQAYQB0AGUAPgAyADwALwBzAHQAYQB0AGUAPgANAAoAPAAvAEIAYQBjAGsAQwBvAGwAbwByAD4ADQAKADwAQgBhAGMAawBHAHIAYQBkAGkAZQBuAHQAUwB0AHkAbABlAD4AMQA8AC8AQgBhAGMAawBHAHIAYQBkAGkAZQBuAHQAUwB0AHkAbABlAD4ADQAKADwASQBkAD4AMAA8AC8ASQBkAD4ADQAKADwALwBhADMAOgBBAHAAcABlAGEAcgBhAG4AYwBlAD4ADQAKADwAYQAzADoAQQBwAHAAZQBhAHIAYQBuAGMAZQAgAGkAZAA9ACIAcgBlAGYALQAzADQAIgAgAHgAbQBsAG4AcwA6AGEAMwA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgB2ADEAMgAuADIAIgA+AA0ACgA8AEIAYQBjAGsAQwBvAGwAbwByACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADYAOgBDAG8AbABvAHIAIgAgAHgAbQBsAG4AcwA6AGEANgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAvAFMAeQBzAHQAZQBtAC4ARAByAGEAdwBpAG4AZwAiAD4ADQAKADwAbgBhAG0AZQAgAHgAcwBpADoAbgB1AGwAbAA9ACIAMQAiAC8APgANAAoAPAB2AGEAbAB1AGUAPgA0ADIAOQAxADYAMQAwADUANQA0ADwALwB2AGEAbAB1AGUAPgANAAoAPABrAG4AbwB3AG4AQwBvAGwAbwByAD4AMAA8AC8AawBuAG8AdwBuAEMAbwBsAG8AcgA+AA0ACgA8AHMAdABhAHQAZQA+ADIAPAAvAHMAdABhAHQAZQA+AA0ACgA8AC8AQgBhAGMAawBDAG8AbABvAHIAPgANAAoAPABCAGEAYwBrAEcAcgBhAGQAaQBlAG4AdABTAHQAeQBsAGUAPgAxADwALwBCAGEAYwBrAEcAcgBhAGQAaQBlAG4AdABTAHQAeQBsAGUAPgANAAoAPABJAGQAPgAwADwALwBJAGQAPgANAAoAPAAvAGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUAPgANAAoAPABhADIAOgBNAGQAaQBUAGEAYgBzAEMAbwBsAGwAZQBjAHQAaQBvAG4AIABpAGQAPQAiAHIAZQBmAC0AMwA2ACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABDAG8AdQBuAHQAPgAzADwALwBDAG8AdQBuAHQAPgANAAoAPABfAHgAMAAwADMAMABfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADMAOQAiAC8APgANAAoAPABfAHgAMAAwADMAMQBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADQAMAAiAC8APgANAAoAPABfAHgAMAAwADMAMgBfACAAaAByAGUAZgA9ACIAIwByAGUAZgAtADQAMQAiAC8APgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAHMAQwBvAGwAbABlAGMAdABpAG8AbgA+AA0ACgA8AGEAMwA6AEEAcABwAGUAYQByAGEAbgBjAGUAIABpAGQAPQAiAHIAZQBmAC0AMwA4ACIAIAB4AG0AbABuAHMAOgBhADMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AdgAxADIALgAyACIAPgANAAoAPABCAGEAYwBrAEMAbwBsAG8AcgAgAHgAcwBpADoAdAB5AHAAZQA9ACIAYQA2ADoAQwBvAGwAbwByACIAIAB4AG0AbABuAHMAOgBhADYAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBTAHkAcwB0AGUAbQAuAEQAcgBhAHcAaQBuAGcALwBTAHkAcwB0AGUAbQAuAEQAcgBhAHcAaQBuAGcAIgA+AA0ACgA8AG4AYQBtAGUAIAB4AHMAaQA6AG4AdQBsAGwAPQAiADEAIgAvAD4ADQAKADwAdgBhAGwAdQBlAD4ANAAyADkAMQA2ADEAMAA1ADUANAA8AC8AdgBhAGwAdQBlAD4ADQAKADwAawBuAG8AdwBuAEMAbwBsAG8AcgA+ADAAPAAvAGsAbgBvAHcAbgBDAG8AbABvAHIAPgANAAoAPABzAHQAYQB0AGUAPgAyADwALwBzAHQAYQB0AGUAPgANAAoAPAAvAEIAYQBjAGsAQwBvAGwAbwByAD4ADQAKADwASQBkAD4AMAA8AC8ASQBkAD4ADQAKADwALwBhADMAOgBBAHAAcABlAGEAcgBhAG4AYwBlAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0AMwA5ACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgAtADIAMQAwADQANQA0ADAANQAyADUAPAAvAF8AYQA+AA0ACgA8AF8AYgA+AC0ANQAxADMANgA8AC8AXwBiAD4ADQAKADwAXwBjAD4AMQA2ADkANgAzADwALwBfAGMAPgANAAoAPABfAGQAPgAxADUANwA8AC8AXwBkAD4ADQAKADwAXwBlAD4AMAA8AC8AXwBlAD4ADQAKADwAXwBmAD4AMQA1ADQAPAAvAF8AZgA+AA0ACgA8AF8AZwA+ADEAOAA8AC8AXwBnAD4ADQAKADwAXwBoAD4AMQAwADEAPAAvAF8AaAA+AA0ACgA8AF8AaQA+ADEAOQA0ADwALwBfAGkAPgANAAoAPABfAGoAPgAxADUANQA8AC8AXwBqAD4ADQAKADwAXwBrAD4AMQA1ADUAPAAvAF8AawA+AA0ACgA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+ADMAPAAvAE0AZABpAEMAaABpAGwAZABJAG4AZABlAHgAPgANAAoAPAAvAGEAMgA6AE0AZABpAFQAYQBiAD4ADQAKADwAYQAyADoATQBkAGkAVABhAGIAIABpAGQAPQAiAHIAZQBmAC0ANAAwACIAIAB4AG0AbABuAHMAOgBhADIAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFcAaQBuAC4AVQBsAHQAcgBhAFcAaQBuAFQAYQBiAGIAZQBkAE0AZABpAC4AdgAxADIALgAyACIAPgANAAoAPABQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADQAOgBPAGIAagBlAGMAdABXAHIAYQBwAHAAZQByACIAIAB4AG0AbABuAHMAOgBhADQAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwBhAHMAcwBlAG0ALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwAuAFMAaABhAHIAZQBkAC4AUwBlAHIAaQBhAGwAaQB6AGEAdABpAG8AbgAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzADQALgBTAGgAYQByAGUAZAAuAHYAMQAyAC4AMgAiAD4ADQAKADwAbwBiAGoAZQBjAHQAVgBhAGwAdQBlACAAeABzAGkAOgB0AHkAcABlAD0AIgBhADUAOgBHAHUAaQBkACIAIAB4AG0AbABuAHMAOgBhADUAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBjAGwAcgAvAG4AcwAvAFMAeQBzAHQAZQBtACIAPgANAAoAPABfAGEAPgAtADgAOQAxADIANwAzADMAMAA2ADwALwBfAGEAPgANAAoAPABfAGIAPgAxADgAOAA5ADMAPAAvAF8AYgA+AA0ACgA8AF8AYwA+ADIAMAAxADgAMgA8AC8AXwBjAD4ADQAKADwAXwBkAD4AMQA4ADkAPAAvAF8AZAA+AA0ACgA8AF8AZQA+ADMAMAA8AC8AXwBlAD4ADQAKADwAXwBmAD4AMQA5ADcAPAAvAF8AZgA+AA0ACgA8AF8AZwA+ADMAPAAvAF8AZwA+AA0ACgA8AF8AaAA+ADEAMQA3ADwALwBfAGgAPgANAAoAPABfAGkAPgA0ADgAPAAvAF8AaQA+AA0ACgA8AF8AagA+ADEANgA1ADwALwBfAGoAPgANAAoAPABfAGsAPgA5ADIAPAAvAF8AawA+AA0ACgA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+ADEANAA8AC8ATQBkAGkAQwBoAGkAbABkAEkAbgBkAGUAeAA+AA0ACgA8AC8AYQAyADoATQBkAGkAVABhAGIAPgANAAoAPABhADIAOgBNAGQAaQBUAGEAYgAgAGkAZAA9ACIAcgBlAGYALQA0ADEAIgAgAHgAbQBsAG4AcwA6AGEAMgA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALwBJAG4AZgByAGEAZwBpAHMAdABpAGMAcwA0AC4AVwBpAG4ALgBVAGwAdAByAGEAVwBpAG4AVABhAGIAYgBlAGQATQBkAGkALgB2ADEAMgAuADIAIgA+AA0ACgA8AFAAZQByAHMAaQBzAHQAZQBkAEkAbgBmAG8AIAB4AHMAaQA6AHQAeQBwAGUAPQAiAGEANAA6AE8AYgBqAGUAYwB0AFcAcgBhAHAAcABlAHIAIgAgAHgAbQBsAG4AcwA6AGEANAA9ACIAaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGMAbAByAC8AbgBzAGEAcwBzAGUAbQAvAEkAbgBmAHIAYQBnAGkAcwB0AGkAYwBzAC4AUwBoAGEAcgBlAGQALgBTAGUAcgBpAGEAbABpAHoAYQB0AGkAbwBuAC8ASQBuAGYAcgBhAGcAaQBzAHQAaQBjAHMANAAuAFMAaABhAHIAZQBkAC4AdgAxADIALgAyACIAPgANAAoAPABvAGIAagBlAGMAdABWAGEAbAB1AGUAIABpAGQAPQAiAHIAZQBmAC0ANAAyACIAIAB4AHMAaQA6AHQAeQBwAGUAPQAiAFMATwBBAFAALQBFAE4AQwA6AHMAdAByAGkAbgBnACIAPgAwADUANQBmAGQANwA2ADQALQA2ADMAYgA5AC0ANAAxAGIAYQAtAGEAMQAxADUALQBmAGEAMQAyAGQANQBmADkAOABkADcANQA8AC8AbwBiAGoAZQBjAHQAVgBhAGwAdQBlAD4ADQAKADwALwBQAGUAcgBzAGkAcwB0AGUAZABJAG4AZgBvAD4ADQAKADwAVABvAG8AbABUAGkAcAAgAGkAZAA9ACIAcgBlAGYALQA0ADMAIgA+AEYAOgBcAEYAQwBCAF8AcAByAG8AagBlAGMAdABcAHQAZQBtAHAAXABRAEoAVABZAEsARwBcAEMATwBEAEUAXABFAEMAVQBfAEIATwBPAFQAXABiAG8AbwB0AF8AbQBhAGkAbgAuAGMAPAAvAFQAbwBvAGwAVABpAHAAPgANAAoAPABNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4AMQA2ADwALwBNAGQAaQBDAGgAaQBsAGQASQBuAGQAZQB4AD4ADQAKADwALwBhADIAOgBNAGQAaQBUAGEAYgA+AA0ACgA8AC8AUwBPAEEAUAAtAEUATgBWADoAQgBvAGQAeQA+AA0ACgA8AC8AUwBPAEEAUAAtAEUATgBWADoARQBuAHYAZQBsAG8AcABlAD4ADQAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - - - - - 12.2.20122.2006 - 5.02.00.02 - - - - - PanelWatch1 - 0 - 0 - 0 - 0 - 0 - None - - - PanelWatch2 - 0 - 0 - 0 - 0 - 0 - None - - - PanelWatch3 - 0 - 0 - 0 - 0 - 0 - None - - - PanelWatch4 - 0 - 0 - 0 - 0 - 0 - None - - - - - PanelIORegister - 0 - 0 - 0 - 0 - 0 - - - - - PanelCpuRegister - 0 - 0 - 0 - 0 - 0 - - - - - PanelLocalVariable - 0 - 0 - 0 - 0 - 0 - False - Decimal - Decimal - 20127 - - - - - PanelCallStack - Auto - Decimal - 20127 - True - True - 50 - 500 - - - - - PanelTrace - False - False - Decimal - Mixed - - - - - PanelMemory1 - Hexadecimal - Ascii - View8bitWidth - None - False - True - - 16 - 0 - - - PanelMemory2 - Hexadecimal - Ascii - View8bitWidth - None - False - True - - 16 - 0 - - - PanelMemory3 - Hexadecimal - Ascii - View8bitWidth - None - False - True - - 16 - 0 - - - PanelMemory4 - Hexadecimal - Ascii - View8bitWidth - None - False - True - - 16 - 0 - - - - - False - False - False - False - 291a5aad-8f89-4443-8b93-58ebd220ca9c - FunctionName - False - False - 0 - -1 - True - ClassName - False - False - 1 - -1 - True - Namespace - True - False - 2 - -1 - True - FileName - False - False - 3 - -1 - True - FilePath - True - False - 4 - -1 - True - PEInformation - False - False - 5 - -1 - True - Import - True - False - 6 - -1 - True - AccessSpecifier - False - False - 7 - -1 - True - Attribute - False - False - 8 - -1 - True - ReturnType - False - False - 9 - -1 - True - ArgumentsCount - True - False - 10 - -1 - True - Arguments - False - False - 11 - -1 - True - CodeSize - False - False - 12 - -1 - True - StackSize - False - False - 13 - -1 - True - StartAddress - False - False - 14 - -1 - True - EndAddress - True - False - 15 - -1 - True - ReferenceCount - False - False - 16 - -1 - True - ExecutionCount - True - False - 17 - -1 - True - ExecutionTime - True - False - 18 - -1 - True - PercentageExecutionTime - True - False - 19 - -1 - True - AverageExecutionTime - True - False - 20 - -1 - True - CodeCoverage - True - False - 21 - -1 - True - def4131d-299f-4229-94f7-b6796e3a759d - False - False - 0 - -1 - True - False - False - 1 - -1 - True - True - False - 2 - -1 - True - False - False - 3 - -1 - True - True - False - 4 - -1 - True - False - False - 5 - -1 - True - True - False - 6 - -1 - True - False - False - 7 - -1 - True - False - False - 8 - -1 - True - False - False - 9 - -1 - True - True - False - 10 - -1 - True - False - False - 11 - -1 - True - False - False - 12 - -1 - True - False - False - 13 - -1 - True - False - False - 14 - -1 - True - True - False - 15 - -1 - True - False - False - 16 - -1 - True - True - False - 17 - -1 - True - True - False - 18 - -1 - True - True - False - 19 - -1 - True - True - False - 20 - -1 - True - True - False - 21 - -1 - True - - - - - False - False - False - False - 291a5aad-8f89-4443-8b93-58ebd220ca9c - VariableName - False - False - 0 - -1 - True - ClassName - False - False - 1 - -1 - True - Namespace - True - False - 2 - -1 - True - FileName - False - False - 3 - -1 - True - FunctionName - True - False - 4 - -1 - True - FilePath - True - False - 5 - -1 - True - PEInformation - False - False - 6 - -1 - True - Import - True - False - 7 - -1 - True - AccessSpecifier - False - False - 8 - -1 - True - Attribute - False - False - 9 - -1 - True - Type - False - False - 10 - -1 - True - Members - False - False - 11 - -1 - True - Address - False - False - 12 - -1 - True - Size - False - False - 13 - -1 - True - ReferenceCount - False - False - 14 - -1 - True - ReadCount - True - False - 15 - -1 - True - WriteCount - True - False - 16 - -1 - True - ReadWriteCount - True - False - 17 - -1 - True - MinimumValue - True - False - 18 - -1 - True - MaximumValue - True - False - 19 - -1 - True - DataCoverage - True - False - 20 - -1 - True - def4131d-299f-4229-94f7-b6796e3a759d - False - False - 0 - -1 - True - False - False - 1 - -1 - True - True - False - 2 - -1 - True - False - False - 3 - -1 - True - True - False - 4 - -1 - True - True - False - 5 - -1 - True - False - False - 6 - -1 - True - True - False - 7 - -1 - True - False - False - 8 - -1 - True - False - False - 9 - -1 - True - False - False - 10 - -1 - True - False - False - 11 - -1 - True - False - False - 12 - -1 - True - False - False - 13 - -1 - True - False - False - 14 - -1 - True - True - False - 15 - -1 - True - True - False - 16 - -1 - True - True - False - 17 - -1 - True - True - False - 18 - -1 - True - True - False - 19 - -1 - True - True - False - 20 - -1 - True - - - - - PanelAnalysisChart - True - - - - - PanelCallGraph - True - - - - - PanelClassMember - 0 - - - - - 1 - 055fd764-63b9-41ba-a115-fa12d5f98d75 - e9e5eb74-fd3b-4a6d-9bee-88bf153cb9b0 - F:\FCB_project\temp\QJTYKG\CODE\ECU_BOOT\boot_main.c - be7f8e71-56fd-4281-b3a5-f9b6afed2177 - 0 - False - VerticalSplitPercentage:0.00 -HorizontalSplitPercentage:0.00 -ActiveViewPlacement:Right -CaretPosition:21,51 -FirstVisiblePosition:Right,0,0 - - - - - - 5271232c-2f7c-45f8-8f53-365194868cf6 -b2909743-c6df-4399-8f6c-ca0a0b7416e3 -1d4e3527-c841-4069-9a5d-53d6f3b474a2 - - 39dc1a26-78f2-4eaf-8f1d-4dfc74549611 - 2 - False - - - diff --git a/ECU_BOOT/ECU-BOOT.mtpj b/ECU_BOOT/ECU-BOOT.mtpj deleted file mode 100644 index fee1497..0000000 --- a/ECU_BOOT/ECU-BOOT.mtpj +++ /dev/null @@ -1,5859 +0,0 @@ - - 5.02.00.00 - - - 2.0 - 5.2 - f6c2173b-d689-4f06-afb3-ab0a68750517 - 5271232c-2f7c-45f8-8f53-365194868cf6 - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - fb98844b-2c27-4275-9804-f6e63e204da0 - f6c2173b-d689-4f06-afb3-ab0a68750517 - - - Startup - Category - ca577376-6f97-4ef1-9fe7-b03e86e75233 - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - 58beb843-6f73-41f8-a540-21221e20ceb5 - - - Code Generator - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - 9579e74f-7180-4c5d-b6fb-63024eb74ece - - - boot_adc.c - File - boot_adc.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - ef868c89-c3a0-46ab-8817-19f160386b55 - - - boot_adc.h - File - boot_adc.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - 9756f7a2-399b-4563-b8eb-b72ac60e7bb8 - - - rscan_driver - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - d5ca85c2-b529-40d8-9deb-4e57f0731ca8 - - - DataFlash - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - eed3901a-3be8-4815-9509-075d2d9ba22f - - - diagnose - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - 027e388f-f362-4354-bd7d-0c988a468a02 - - - FSL - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - 74b0745b-7ce6-4947-be31-5629438a0f89 - - - crc - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - c1372d98-0624-4422-add2-f5b9cce5c81e - - - ECU_BOOT.dr - File - ECU_BOOT.dr - a4460d02-6943-4122-9169-dd699e916213 - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - 239043be-9e53-4892-a951-309d98ab4225 - - - sys - Category - b2909743-c6df-4399-8f6c-ca0a0b7416e3 - f5417a50-bf95-43b7-a795-9646d1a81dc4 - - - boot_cgc.c - File - boot_cgc.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 121964e4-cfaf-4e4d-8815-4b72d355d462 - - - boot_cgc_user.c - File - boot_cgc_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - d8aa638a-ee90-4447-b35f-97d5640499d6 - - - boot_main.c - File - boot_main.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - abbe8ff2-99cd-4b22-af50-48eb82472a89 - - - boot_port.c - File - boot_port.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 15a4bed5-71b3-48a9-8311-f2f0dccf03b0 - - - boot_port_user.c - File - boot_port_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 65c6762e-addb-408f-bd61-df7a1c147764 - - - boot_systeminit.c - File - boot_systeminit.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 12c405aa-cb1b-43cb-b46e-221c1231f3ff - - - boot_timer.c - File - boot_timer.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 3a8055c2-2306-4b69-8335-7229066174f7 - - - boot_timer_user.c - File - boot_timer_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 8aab79e2-925b-4961-8e46-4b7110d9206f - - - boot_wdt.c - File - boot_wdt.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - af41eb8c-a8b0-4bb0-852f-cda86ddfc6e6 - - - boot_wdt_user.c - File - boot_wdt_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 8e8f649c-79fe-4cf7-8231-8788d53290d1 - - - boot_cgc.h - File - boot_cgc.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 946e8829-3f7d-46ec-8bee-0360fa368ac6 - - - boot_macrodriver.h - File - boot_macrodriver.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - bd0e09bc-91f0-4dcd-a871-422f26062d92 - - - boot_port.h - File - boot_port.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - f83012d7-9075-4bf7-80d0-18d806e9ae6c - - - boot_timer.h - File - boot_timer.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 5ef18ff7-3aa5-40d9-b8b2-f568ba43dbca - - - boot_userdefine.h - File - boot_userdefine.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - cddfbb66-0f76-4344-bbdd-737c70ad4414 - - - boot_wdt.h - File - boot_wdt.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - 9aa4d8c8-9ccf-4ecf-9eb7-6ee6493ec7f2 - - - r_rl78_can_drv.c - File - rscan_driver\r_rl78_can_drv.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 68c131e1-b516-401d-bc43-3d260be41045 - ccb9a8f1-faa4-4ccf-950c-59f46db7ec40 - - - r_rl78_can_irq.c - File - rscan_driver\r_rl78_can_irq.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 68c131e1-b516-401d-bc43-3d260be41045 - 43a6a882-dec5-411c-9174-f833da4bb9bc - - - RL78_RCAN.c - File - rscan_driver\RL78_RCAN.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 68c131e1-b516-401d-bc43-3d260be41045 - 10a856b6-8bf8-4d92-8788-b88160b5d2ce - - - r_rl78_can_drv.h - File - rscan_driver\r_rl78_can_drv.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 68c131e1-b516-401d-bc43-3d260be41045 - 2d3adb40-98cd-4928-b9ce-ea9790829d86 - - - r_rl78_can_sfr.h - File - rscan_driver\r_rl78_can_sfr.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 68c131e1-b516-401d-bc43-3d260be41045 - faf25e04-0e3d-4a5f-b044-589f898007e7 - - - RL78_RCAN.h - File - rscan_driver\RL78_RCAN.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 68c131e1-b516-401d-bc43-3d260be41045 - c38879b3-60be-49b9-8bde-7dc8c518be7e - - - boot_can_user.c - File - rscan_driver\boot_can_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 68c131e1-b516-401d-bc43-3d260be41045 - 37abf04b-f74d-4df1-9f75-0eb9a4e5d61c - - - boot_can_user.h - File - rscan_driver\boot_can_user.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 68c131e1-b516-401d-bc43-3d260be41045 - 462c0d9a-cf10-4d45-830b-7a1c24ea1401 - - - pfdl.h - File - DataFlash\pfdl.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - df6337bf-c0a5-4b4c-9991-71cd4b48927c - 541d088f-8d5b-4e04-94f5-f6f2ff5ae633 - - - pfdl.lib - File - DataFlash\pfdl.lib - 7b85280b-7850-438e-9957-3b011f52c619 - df6337bf-c0a5-4b4c-9991-71cd4b48927c - 62a44065-c6ad-4f83-a7a4-2a797b3ae2b0 - - - pfdl_types.h - File - DataFlash\pfdl_types.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - df6337bf-c0a5-4b4c-9991-71cd4b48927c - 4c575d39-ae8c-4e29-986d-765929e1afc4 - - - r_pfdl.c - File - DataFlash\r_pfdl.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - df6337bf-c0a5-4b4c-9991-71cd4b48927c - 5bb1e1d9-5f8b-4562-a2a1-09ea18bb9354 - - - pfdl_user.c - File - DataFlash\pfdl_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - df6337bf-c0a5-4b4c-9991-71cd4b48927c - e68f6da7-396c-4f20-b82c-825fefedec25 - - - pfdl_user.h - File - DataFlash\pfdl_user.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - df6337bf-c0a5-4b4c-9991-71cd4b48927c - 1d2c0866-1ae1-42b6-a3b1-59427a0042c1 - - - api.h - File - diagnose\api.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 6ab8f79d-c23c-413d-840a-a38191b4a2c9 - aef73322-f391-49e7-8625-621746c0cf51 - - - Dcm - Category - 6ab8f79d-c23c-413d-840a-a38191b4a2c9 - ab3c65fc-25ab-4307-9dba-b7be3e3d490e - - - UDS_lib_boot_cacx.lib - File - diagnose\lib\UDS_lib_boot_cacx.lib - 7b85280b-7850-438e-9957-3b011f52c619 - 6ab8f79d-c23c-413d-840a-a38191b4a2c9 - 2ec4e794-8076-492f-a735-1c05f293fe9a - - - app_to_dcm.h - File - diagnose\Dcm\app_to_dcm.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - a0e9a93b-da5f-415a-8ab4-e8b2b2a8b6e7 - - - CanIf - Category - 2851c168-83ad-4168-8e0c-4b4d780a8712 - e62f7b51-f813-4a83-8e0f-7d5811a5b7ca - - - CanIf.h - File - diagnose\Dcm\CanIf.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - efee1610-8417-43d6-9f5e-37548044d6ec - - - CanIf_Cfg.h - File - diagnose\Dcm\CanIf_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 85c9ff96-7665-414e-bc67-edfaf470198c - - - CanSM.h - File - diagnose\Dcm\CanSM.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - CanSM_Cfg.h - File - diagnose\Dcm\CanSM_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - CanTp - Category - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 55cacb94-eaa0-4dbe-885c-d84d415f706c - - - CanTrcv - Category - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - can_drv.h - File - diagnose\Dcm\can_drv.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - dc9a408e-2a92-4fc8-8b6b-89496a66d7b9 - - - ComTypes.h - File - diagnose\Dcm\ComTypes.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - Dcm.h - File - diagnose\Dcm\Dcm.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - e0458499-a572-4e87-9742-47679fb5c982 - - - Dcm_App.c - File - diagnose\Dcm\Dcm_App.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 9555e7af-c2e4-49a0-9d6e-f3cde6e90d69 - - - Dcm_App.h - File - diagnose\Dcm\Dcm_App.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 3071273d-b239-4103-8723-d50ec9d39b7e - - - Dcm_App_Cfg.c - File - diagnose\Dcm\Dcm_App_Cfg.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 74739ff4-a1fc-462a-8556-8f922f1dc725 - - - Dcm_App_Cfg.h - File - diagnose\Dcm\Dcm_App_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - ec3d997e-47bc-4675-adcd-32663e188b4a - - - Dcm_Cfg.c - File - diagnose\Dcm\Dcm_Cfg.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - e9f44b7f-5ef8-4775-a7eb-b685b3120ce3 - - - Dcm_Cfg.h - File - diagnose\Dcm\Dcm_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - Dcm_DID.c - File - diagnose\Dcm\Dcm_DID.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - f083605d-b761-4fdf-adfd-5d6ab2657ea6 - - - Dcm_DID.h - File - diagnose\Dcm\Dcm_DID.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - Dcm_DID_Cfg.c - File - diagnose\Dcm\Dcm_DID_Cfg.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 11b439f2-18c3-42e1-b9f1-88e63efecb5f - - - Dcm_DID_Cfg.h - File - diagnose\Dcm\Dcm_DID_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - 5f4ca6a8-3e36-4272-85f4-6d659963511e - - - Dcm_extern.h - File - diagnose\Dcm\Dcm_extern.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - Dcm_Key.c - File - diagnose\Dcm\Dcm_Key.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - e7d2345b-b665-4f13-8ed6-222a88af3356 - - - Dcm_Key.h - File - diagnose\Dcm\Dcm_Key.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - DTC - Category - 2851c168-83ad-4168-8e0c-4b4d780a8712 - - - CanIf.c - File - diagnose\Dcm\CanIf\CanIf.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 07f4f8c3-17c5-49b8-b75a-ecc49f9c1537 - 23082545-d2d9-4f7d-bee0-e201b348a7a2 - - - CanIf.h - File - diagnose\Dcm\CanIf\CanIf.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 07f4f8c3-17c5-49b8-b75a-ecc49f9c1537 - - - CanIf_Cfg.c - File - diagnose\Dcm\CanIf\CanIf_Cfg.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 07f4f8c3-17c5-49b8-b75a-ecc49f9c1537 - 603225cb-2da7-45be-a603-be00713cbce3 - - - CanIf_Cfg.h - File - diagnose\Dcm\CanIf\CanIf_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 07f4f8c3-17c5-49b8-b75a-ecc49f9c1537 - - - CanTp.h - File - diagnose\Dcm\CanTp\CanTp.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2863c129-ee45-4da1-a58d-f776bb2a31b6 - d879011c-08b6-4b82-b30e-51b1ae145a18 - - - CanTp_Cfg.c - File - diagnose\Dcm\CanTp\CanTp_Cfg.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 2863c129-ee45-4da1-a58d-f776bb2a31b6 - f18de5a2-3caf-4080-a9aa-5c11e3f25358 - - - CanTp_Cfg.h - File - diagnose\Dcm\CanTp\CanTp_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 2863c129-ee45-4da1-a58d-f776bb2a31b6 - 092a3925-5984-40e1-a394-0a491ae0f600 - - - CanTrcv.c - File - diagnose\Dcm\CanTrcv\CanTrcv.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - fbe273b7-669c-4300-b3ff-91bfd3425189 - - - CanTrcv.h - File - diagnose\Dcm\CanTrcv\CanTrcv.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - fbe273b7-669c-4300-b3ff-91bfd3425189 - - - CanTrcv_Cfg.c - File - diagnose\Dcm\CanTrcv\CanTrcv_Cfg.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - fbe273b7-669c-4300-b3ff-91bfd3425189 - - - CanTrcv_Cfg.h - File - diagnose\Dcm\CanTrcv\CanTrcv_Cfg.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - fbe273b7-669c-4300-b3ff-91bfd3425189 - - - DCM_DTC.c - File - diagnose\Dcm\DTC\DCM_DTC.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 8a982399-3931-4a9f-84cc-ff17fffd5486 - 19f1bfcf-56f9-4b10-8a4a-843b129e8e6e - - - DCM_DTC.h - File - diagnose\Dcm\DTC\DCM_DTC.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 8a982399-3931-4a9f-84cc-ff17fffd5486 - - - incrl78 - Category - 27aa8bda-b26d-48d1-bfdd-12f50e3abd9b - - - librl78 - Category - 27aa8bda-b26d-48d1-bfdd-12f50e3abd9b - 9009930d-a280-42b6-b198-92d22d0b0a23 - - - fsl_user.c - File - FSL\fsl_user.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 27aa8bda-b26d-48d1-bfdd-12f50e3abd9b - 347693d6-8c73-4932-b8ec-3c7b3b0c511e - - - fsl_user.h - File - FSL\fsl_user.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 27aa8bda-b26d-48d1-bfdd-12f50e3abd9b - e994b3f2-bf92-4146-9234-8b7289818822 - - - fsl.h - File - FSL\incrl78\fsl.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - abeb4651-fc36-4cb7-9abe-184d85156fc0 - c47877c2-8bc9-40fa-b702-fa39dfd9ace5 - - - fsl.inc - File - FSL\incrl78\fsl.inc - b4d23a67-9c5b-4928-b8d4-059c57eafca1 - abeb4651-fc36-4cb7-9abe-184d85156fc0 - 5e87e325-9a26-4f88-b3d2-db983999f500 - - - fsl_types.h - File - FSL\incrl78\fsl_types.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - abeb4651-fc36-4cb7-9abe-184d85156fc0 - - - fsl.lib - File - FSL\librl78\fsl.lib - 7b85280b-7850-438e-9957-3b011f52c619 - 1ae48b3b-9036-4edc-971a-48c4c08d0044 - - - crc.c - File - crc\crc.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 7340d265-0bd5-4f7d-a0ea-dde51a68d609 - 310f2a8e-2cd6-4256-89ac-29f52564ef19 - - - crc.h - File - crc\crc.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 7340d265-0bd5-4f7d-a0ea-dde51a68d609 - d70f2117-e194-4209-9da7-7a358800a6c4 - - - ftable.h - File - sys\ftable.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 4c032b1a-1b04-4ae0-a989-580441618a55 - 5ac11cef-99b9-4ac7-ada3-0d282c5a0b64 - - - vector.c - File - sys\vector.c - 941832c1-fc3b-4e1b-94e8-01ea17128b42 - 4c032b1a-1b04-4ae0-a989-580441618a55 - 3089585e-fd4c-4f90-8da7-686438333b11 - - - vocter.h - File - sys\vocter.h - 03cad1e8-2eb3-4cde-a8a3-982423631122 - 4c032b1a-1b04-4ae0-a989-580441618a55 - - - - - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - b0cb2657-6337-442d-978c-8dd81ad9ddf5 - - - - - 90ee5797-fc0c-48ea-b02f-689179ce9df7 - - - - - 1.0 - - - R5F10BLG - 0 - - - - - 0 - R5F10BLG - - - - - 11ff4962-ca73-4419-bb4a-67e9b8de9571 - - - - - 1.1 - 1 - RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA - False - DefaultBuild - 05572826-416f-46b4-8bc8-9996bfb46b49 - CSource - b58e8c9d-c9a5-48c5-9efa-d6df9a58d4bf - LinkDirectiveSource - a190e8b1-4fac-4789-a028-3adf45dd2d89 - CSource - 7633017e-aee6-4ea9-b108-51704050a5c1 - CSource - be7f8e71-56fd-4281-b3a5-f9b6afed2177 - CSource - 22f571c7-ba88-41cf-b576-184a51b763dd - CSource - 1dbe330a-2593-493d-ab81-edb2c67b1a0b - CSource - 9290cfe0-949c-4a5b-92d8-7c0ac1301514 - CSource - c58e9ffd-709b-4492-9571-32b19b915d5e - CSource - 2d502839-e994-4886-8f4c-f7fbdd8a06e2 - CSource - a60b769b-638f-4ff0-ad2e-078c7cc672eb - CSource - 50f1c9b2-ea62-4495-b6f0-c377c13c8534 - CSource - fc597229-9c50-4860-a9d5-7451d0d73a2b - CSource - 1fbbf9af-2220-42f7-b4e4-f18e359e78c9 - CSource - b093d783-bc21-4e8d-b323-a919f61d4a9a - CSource - 3504a449-dc0c-48e2-b648-cdad544a7490 - CSource - 997584c1-c8f7-4d87-88f6-c4d4560ef663 - LibrarySource - 8916bdb2-027c-4dd5-9d18-80e4189e59a6 - CSource - b0dce186-a104-4626-93d0-4796b3cc21a2 - CSource - 2c6c62ab-b0d3-4c40-8884-a0026ad63940 - LibrarySource - 69b7b619-519b-4871-96af-679ac3908a7e - CSource - 07808bc1-8fb0-4dfa-aed3-983ad88a37a7 - CSource - 9a2a4ea2-9abf-45f7-8915-e38ae1e58953 - CSource - 7a528565-4f15-462f-8233-a9fe7f84f095 - CSource - f3524860-d514-418e-8c82-86fa2915446a - CSource - 124658d0-13bb-4dd8-a81b-3995c0f2b11a - CSource - f76fc9b2-a3e9-4e26-9884-5b7e8990a3b1 - CSource - 2dc0342e-c143-42eb-b1f7-7f0f3e53081c - CSource - 9550afd6-d0fd-4c7e-b343-0553baa3fdf6 - CSource - 5a42d104-bc98-450f-a393-f3b9874587f9 - CSource - 72f45faf-7852-4554-b6e0-3f46759066e2 - CSource - 44bf8ca1-b4a8-4b1c-917e-3fd27cd48e93 - CSource - c2c97f1c-8baa-4153-ad7e-32247fe5756d - CSource - b946aa4b-784c-47f9-9d4f-ea78f61832c3 - LibrarySource - 01826450-9c8f-495e-88c6-2ae2e5e1ec82 - CSource - 51e3b091-0c2d-4807-936f-e43ad0a4d5af - CSource - 36 - 0 - 0 - - - - DefaultBuild - Rebuild - True - - Standard - LoadModuleFile - %TargetFiles% - False - 00000000000000000000 - - - - - -0 - %TargetFiles% : %Program% %Options% - %BuildModeName% - %BuildModeName% - %BuildModeName% - - - %ProjectName%.hex - %BuildModeName% - romp.lmf - - - IntelExtended - - %ProjectName%.lmf - - - False - -8586716211763286318 - DefaultBuild - - %TargetFiles% - %TargetFiles% : %Program% %Options% - - - Rebuild - LoadModuleFile - 00000000000000000000 - %BuildModeName% - - V1.72 -E:\Program Files (x86)\renesas\CS+\CACX\CA78K0R\V1.72 -281784214487040 - V1.72 - - - - NotOutput - False - True - False - AssemblyAndObject - Medium - Yes - Standard - - False - Normal - True - - False - True - True - False - False - - False - False - - - NormalOutput - ShiftJis - False - True - False - - - False - False - - False - True - True - - True - True - s0rllb.rel - - False - False - Maa0 - NotAllocate - True - True - True - NotAllocate - cl78m -cl78mf - - No - False - NotReplace - True - NotOutput - None - False - False - False - False - 132 - 0 - 8 - False - -8586967059175352614 - sys -crc -FSL -FSL\incrl78 -diagnose\Dcm\DTC -diagnose\Dcm\CanTrcv -diagnose\Dcm\CanTp -diagnose\Dcm\CanIf -diagnose\Dcm -diagnose -DataFlash -rscan_driver -. - - WithNoCSource - False - True - AssemblyAndObject - Standard - - False - Boot - True - False - True - False - - False - False - - NormalOutput - Unspecified - False - - - False - False - True - - True - True - s0rllb.rel - False - NotAllocate - True - NotAllocate - False - True - NotOutput - False - False - 132 - 8 - False - Medium - Yes - True - False - - True - False - False - A000 - True - - False - Maa0 - True - True - No - NotReplace - None - False - False - 0 - - - - True - ShiftJis - LocalSymbolAndAssemblerDebugInformation - False - False - False - - False - False - - True - - False - False - - False - - 132 - 0 - 8 - - False - -8587011747631617707 - FSL\incrl78 - - True - ShiftJis - LocalSymbolAndAssemblerDebugInformation - False - False - False - - False - - True - - False - False - - False - - 132 - 8 - - False - 0 - - - True - False - - True - False - %BuildModeName% - - False - NormalOutput - ECU_BOOT.dr - True - - %ProjectName%.lmf - - - - - False - False - - 1FE00 - False - 512 - - True - False - False - - Maa0 - 0 - False - False - - - No - No - No - False - - False - -8585191119478249383 - True - False - - True - %BuildModeName% - - True - NormalOutput - True - %ProjectName%.lmf - - - - - False - False - - False - - True - False - True - 84 - 9E00 - 512 - True - FEFFE8 - Maa0 - 0 - False - True - - No - Error - No - False - - - - False - True - - False - False - - %BuildModeName% - - False - romp.lmf - - True - False - - 0 - - False - -8587058265271007615 - False - True - - False - False - - %BuildModeName% - - False - romp.lmf - - True - False - - - - - False - True - True - False - - True - FF - %BuildModeName% - - - - %ProjectName%.hex - - HighSpeed - - IntelExtended - False - False - -8586545235184410369 - False - True - True - - True - FF - %BuildModeName% - - - %ProjectName%.hex - - - IntelExtended - False - False - - HighSpeed - - - False - %BuildModeName% - - %ProjectName%.lib - - False - False - - 132 - 0 - False - -8586556457368511139 - False - %BuildModeName% - - %ProjectName%.lib - - False - False - - 132 - 0 - - - 0 - False - False - %BuildModeName% - %ProjectName%.vfi - False - -8585191119478249383 - 0 - True - False - %BuildModeName% - %ProjectName%.vfi - - - 636377863844196142 - 5 - - - 636377863844196142 - 4 - - - 636377863844196142 - 3 - - - 636377863844196142 - 2 - - - 636377863844196142 - 1 - - - 636377863844196142 - 0 - - - 636377863718062423 - 9 - - - 636377863718062423 - 8 - - - 636377863718062423 - 7 - - - 636377863718062423 - 6 - - - 636377863718062423 - 5 - - - 636377863718062423 - 4 - - - 636377863718062423 - 3 - - - 636377863718062423 - 2 - - - 636377863718062423 - 1 - - - 636377863718062423 - 0 - - - 636314140476034966 - 0 - - - 636314140476034966 - 1 - - - 636314140476034966 - 2 - - - 636314140782482494 - 0 - - - 636314140782482494 - 1 - - - 636314140782482494 - 2 - - - 636377863476036215 - 1 - - - 636377863476036215 - 0 - - - 636318507776077057 - 0 - - - 636318507776077057 - 1 - - - 636318507776077057 - 2 - - - 636318507776077057 - 3 - - - 636377026806679972 - 0 - - - 636377026631631344 - 0 - - - 636326831052469868 - 0 - - - 636347864499463868 - 0 - - - 636347864499463868 - 3 - - - 636347864499463868 - 4 - - - 636347864499463868 - 5 - - - 636347864499463868 - 6 - - - 636347864499463868 - 7 - - - 636347864499463868 - 9 - - - 636347864499463868 - 13 - - - 636347864499463868 - 14 - - - 636347864499463868 - 16 - - - 636347864499463868 - 18 - - - 636347864499463868 - 19 - - - 636347864499463868 - 20 - - - 636347864499463868 - 22 - - - 636347864499463868 - 24 - - - 636347864499463868 - 26 - - - 636347864499463868 - 28 - - - 636347864499463868 - 30 - - - 636347864499463868 - 32 - - - 636347864499463868 - 34 - - - 636347864499463868 - 36 - - - 636347864499703881 - 0 - - - 636347864499703881 - 2 - - - 636347864499703881 - 4 - - - 636347864499703881 - 6 - - - 636347864499823888 - 1 - - - 636347864499823888 - 2 - - - 636347864499823888 - 3 - - - 636347864499863891 - 0 - - - 636347864499863891 - 1 - - - 636347864499863891 - 2 - - - 636347864499863891 - 3 - - - 636347864500033900 - 0 - - - 636347864500033900 - 2 - - - 636365719633743171 - 0 - - - 636360577223158101 - 0 - - - 636360577223158101 - 1 - - - 636360577223158101 - 2 - - - 636360577223454109 - 0 - - - 636362455493726837 - 0 - - - 636365719633743171 - 2 - - - 636405265679423194 - 0 - - - 636405265679423194 - 1 - - - 636405265679423194 - 2 - - - 636423782517925581 - 0 - - - 636704142013626818 - 0 - - - 636815867363667657 - 0 - - - 636826298243618418 - 0 - - - 636826298426958905 - 0 - - - -8586546026611157390 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8586994461136713385 - False - True - False - -8587058184378740842 - False - True - False - -8587058184378740842 - False - True - False - -8587058184378740842 - False - True - False - -8586994461378739593 - False - True - False - -8587053817078688750 - False - True - False - -8586995298223144464 - False - True - False - -8587024460355301940 - False - True - False - -8587024460355301940 - False - True - False - -8587024460355291939 - False - True - False - -8587024460355291939 - False - True - False - -8587024460355291939 - False - True - False - -8587024460355291939 - False - True - False - -8587024460355071927 - False - True - False - -8587024460355061926 - False - True - False - -8587024460354951920 - False - True - False - -8587024460354911917 - False - True - False - -8587024460354901917 - False - True - False - -8587024460354741908 - False - True - False - -8587009869361048971 - False - True - False - -8587006605221032637 - False - True - False - -8586967059175352614 - False - True - False - - - -8586556457491108151 - False - True - - - -8587053817078698751 - False - True - -8586668182841148990 - False - True - -8587011747631321699 - False - True - - - - - False - 00000000-0000-0000-0000-000000000000 - - - - - True - 1 - REGULAR - 2 - ROM - REGULAR - 0 - 131072 - REGULAR - RAM - REGULAR - 1040128 - 8192 - REGULAR - - - - - a1b29f7a-6007-4082-b223-0b9f7a2063c9 - - - - - 1.0 - 1.0 - - - - - - - - - - 0 - R5F10BLG - 4000 - 32768 - 128 - 8192 - SelectCpuClockFrequency - MHz - 4000000 - No - - 1 - - DefaultBuild\DMK-SX11-03-Boot.lmf - LoadModuleFile - 0 - 0 - True - True - False - 0 - 0 - True - True - False - SuspendEvent - True - XwBtAGEAaQBuAA== - XwBAAGMAcwB0AGEAcgB0AA== - XwBAAGMAZQBuAGQA - Yes - 500 - No - 9 - InternalRom - 0 - 131071 - 0 - 16 - True - False - None - NonMap - 131072 - 983039 - 0 - 8 - True - False - None - Sfr - 983040 - 985087 - 0 - 8 - True - False - None - NonMap - 985088 - 987135 - 0 - 8 - True - False - None - Eeprom - 987136 - 991231 - 0 - 8 - True - False - None - Mirror - 991232 - 1040127 - 0 - 16 - True - False - None - InternalRam - 1040128 - 1048287 - 0 - 16 - True - False - None - Register - 1048288 - 1048319 - 0 - 16 - True - False - None - Sfr - 1048320 - 1048575 - 0 - 8 - True - False - None - SymbolOffset - Yes - Yes - Nonstop - No - No - No - No - No - No - 4096 - Yes - Yes - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - AQAAAAQAAAA= - - - - - - 1.0 - 1.0 - - - - - 27a31222-7c35-4331-a7d1-d42a4a803c2c - - - - - a1b29f7a-6007-4082-b223-0b9f7a2063c9 - - - - - 0 - R5F10BLG - No - Emulator - Emulator - 4000 - 32768 - 128 - 8192 - 1 - - DefaultBuild\DMK-SX11-03-BLG.lmf - LoadModuleFile - 0 - 0 - True - True - False - 0 - 0 - True - True - False - SuspendEvent - True - XwBtAGEAaQBuAA== - XwBAAGMAcwB0AGEAcgB0AA== - XwBAAGMAZQBuAGQA - SpeedPriority - No - Typical - 0 - 3 - Typical - 0 - 1023 - None - 0 - 0 - None - 0 - 0 - None - 0 - 0 - 0 - 65535 - No - No - No - No - No - No - Typical - 987136 - 0 - Typical - 987136 - 1023 - None - 987136 - 0 - None - 987136 - 0 - None - 987136 - 0 - Yes - 500 - No - 0 - Yes - SymbolOffset - Yes - SoftwareBreak - No - No - No - No - No - No - Yes - Nonstop - 0 - No - No - Yes - Yes - Yes - Yes - No - QABTAFQARQBOAEQA - No - QABTAFQAQgBFAEcA - Yes - Yes - Yes - Yes - Yes - No - No - No - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 0 - R5F10BLG - 10 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 8000 - 0 - Yes - No - System - Yes - Yes - Use5_0V - 1000 - 3 - 1 - - DefaultBuild\ECU-BOOT.lmf - LoadModuleFile - 0 - 0 - True - True - False - 0 - 0 - True - True - True - SuspendEvent - True - XwBiAG8AbwB0AF8AbQBhAGkAbgA= - XwBAAGMAcwB0AGEAcgB0AA== - XwBAAGMAZQBuAGQA - SpeedPriority - Yes - Yes - 500 - No - 9 - InternalRom - 0 - 131071 - 0 - 16 - True - False - None - NonMap - 131072 - 983039 - 0 - 8 - True - False - None - Sfr - 983040 - 985087 - 0 - 8 - True - False - None - NonMap - 985088 - 987135 - 0 - 8 - True - False - None - Eeprom - 987136 - 991231 - 0 - 8 - True - False - None - Mirror - 991232 - 1040127 - 0 - 16 - True - False - None - InternalRam - 1040128 - 1048287 - 0 - 16 - True - False - None - Register - 1048288 - 1048319 - 0 - 16 - True - False - None - Sfr - 1048320 - 1048575 - 0 - 8 - True - False - None - Yes - SymbolOffset - Yes - SoftwareBreak - No - No - Yes - No - No - No - 8000 - Internal - 9 - No - Nonstop - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - 1164e6bc-1580-4c0c-8c62-cc92e5f3f701 - - - - - Yes - FB - - - Color [LightGray] - Color [Red] - Color [Green] - Color [Black] - Color [Blue] - Color [Red] - Color [Yellow] - Color [Green] - DisplayAll - Display - DisplayAll - - - -1,-1,-1,-1,-1 - False - 0 - - - - - 7d577131-4ec1-4e88-968d-89381f6c178a - - - - - 1.1 - - - False - False - False - True - Yes - Nanosecond - False - False - False - False - False - True - FilesNotToAnalyze - 0 - All - 0 - False - %ProjectName%.mtfl - %ProjectName%.mtvl - 10 - - - RealtimeSampling - - Synchronized - AtProgramStop - 20 - 1000000 - LineChart - False - PaleGreen - PaleTurquoise - 40ff0a4f - 405be416 - 40056def - 40ff541c - False - Auto - Channel01 - 0 - Rising - 0 - Orange - 10 - None - - - - - - - - - - - - - - - - - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - Auto - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 25.5 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - c0ff0a4f - c05be416 - c0056dff - c0ff541c - c04fc1ff - c0a932ff - c0ffd91c - c0ff30a5 - c0bee02f - c05510ff - c0ff97e4 - c0913a37 - c0c68e15 - c0317f0c - c060493e - c072808e - - - - - cb4eebec-2381-4e77-8b34-fa8cd6f33b4c - - - - - <RL78F13> - <VAR> - <fCLK Name="fCLK" Value="32" Comment="4M" Trigger="fCLK"> - <Effect> - <ADC /> - <SAU0 /> - <SAU1 /> - <IICA0 /> - <TAU0 /> - <TAU1 /> - <TMRJ0 /> - </Effect> - </fCLK> - <ISPullupForPort Name="ISPullupForPort" Text="P00-P10-P11-P12-P13-P14-P15-P16-P17-P30-P31-P32-P40-P41-P42-P43-P50-P51-P52-P53-P60-P61-P62-P63-P70-P71-P72-P73-P74-P75-P76-P77-P96-P120-P125-P140-" Comment="unused" /> - <fHOCO Name="fHOCO" Value="64" Comment="64M" Trigger="fHOCO" /> - <fIH Name="fIH" Value="0" Comment="32M" /> - <fSUB Name="fSUB" Value="0" Comment="0K" Trigger="fSUB"> - <Effect> - <TAU0 /> - <TAU1 /> - <TMRJ0 /> - </Effect> - </fSUB> - <fIL Name="fIL" Value="15" Comment="15K" Trigger="fIL"> - <Effect> - <TMRJ0 /> - <WDT /> - <TAU0 /> - <TAU1 /> - </Effect> - </fIL> - <fSL Name="fSL" Value="15" Comment="15K" Trigger="fSL"> - <Effect> - <PCLBUZ0 /> - <TMRJ0 /> - <TAU0 /> - <TAU1 /> - </Effect> - </fSL> - <fPLL Name="fPLL" Value="32" Comment="24M" Trigger="fPLL" /> - <fRTC Name="fRTC" Value="65.5737704918033" Comment="15k" Trigger="fRTC"> - <Effect> - <RTC /> - </Effect> - </fRTC> - <fTRD Name="fTRD" Value="32" Comment="64M" Trigger="fTRD"> - <Effect> - <TMRD0 /> - <TMRD1 /> - </Effect> - </fTRD> - <fMAIN Name="fMAIN" Value="8" Comment="32M" Trigger="fMAIN"> - <Effect> - <PCLBUZ0 /> - </Effect> - </fMAIN> - <fTRDSource Name="fTRDSource" Trigger="fTRD" Text="fCLK" /> - <VDD_MIN Name="VDD_MIN" Value="4" Comment="4.0V" Trigger="VDD"> - <Effect> - <PCLBUZ0 /> - <IICA0 /> - <SAU0 /> - <SAU1 /> - </Effect> - </VDD_MIN> - <VDD_MAX Name="VDD_MAX" Value="5.5" Comment="5.5V" /> - <VDD Name="VDD" Text="false" Comment="used" /> - <VDDValue Name="VDDValue" Value="2.7" Comment="2.7V" Trigger="VDD"> - <Effect> - <ADC /> - </Effect> - </VDDValue> - <AD_ADPC_USEDPIN Name="AD_ADPC_USEDPIN" Text="ANI0,ANI1,ANI2,ANI3,ANI4,ANI5,ANI6,ANI7,ANI8,ANI9," /> - <AD_ADS_USEDPIN Name="AD_ADS_USEDPIN" Text="ANI0," /> - <ADPCForPort3 Name="ADPCForPort3" Value="255" Comment="ADPCForPort3" /> - <ADPCForPort8 Name="ADPCForPort8" Value="255" Comment="ADPCForPort8" /> - <ADPCForPort9 Name="ADPCForPort9" Value="11" Comment="ADPCForPort9" /> - <ADPCForKey Name="ADPCForKey" Value="255" Comment="ADPCForKey" /> - <OnChipDebugTraceDTC Name="GTraceRam" Text="1" Trigger="ocdtraceram"> - <Effect> - <DTC /> - </Effect> - </OnChipDebugTraceDTC> - <OnChipDebugTrace Name="GTrace" Text="1" /> - <OnChipDebugHotPlugDTC Name="GHotPlugRam" Text="2" Trigger="ocdhotplugram"> - <Effect> - <DTC /> - </Effect> - </OnChipDebugHotPlugDTC> - <KR0 Name="KR0" Text="false" Comment="unused" Trigger="KR0"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR0> - <KR1 Name="KR1" Text="false" Comment="unused" Trigger="KR1"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR1> - <KR2 Name="KR2" Text="false" Comment="unused" Trigger="KR2"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR2> - <KR3 Name="KR3" Text="false" Comment="unused" Trigger="KR3"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR3> - <KR4 Name="KR4" Text="false" Comment="unused" Trigger="KR4"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR4> - <KR5 Name="KR5" Text="false" Comment="unused" Trigger="KR5"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR5> - <KR6 Name="KR6" Text="false" Comment="unused" Trigger="KR6"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR6> - <KR7 Name="KR7" Text="false" Comment="unused" Trigger="KR7"> - <Effect> - <PORT Forcible="" /> - </Effect> - </KR7> - <OnChipDebugHotPlug Name="GHotPlug" Text="2" /> - <IIC00 Name="IIC00" Text="false" Comment="unused" Trigger="IIC00"> - <Effect> - <PORT Forcible="" /> - </Effect> - </IIC00> - <IIC01 Name="IIC01" Text="false" Comment="unused" Trigger="IIC01"> - <Effect> - <PORT Forcible="" /> - </Effect> - </IIC01> - <IIC10 Name="IIC10" Text="false" Comment="unused" Trigger="IIC10"> - <Effect> - <PORT Forcible="" /> - </Effect> - </IIC10> - <IIC11 Name="IIC11" Text="false" Comment="unused" Trigger="IIC11"> - <Effect> - <PORT Forcible="" /> - </Effect> - </IIC11> - <IICA0 Name="IICA0" Text="false" Comment="unused" Trigger="IICA0"> - <Effect> - <PORT Forcible="" /> - </Effect> - </IICA0> - <PIOR00Value Name="PIOR00Value" Text="0" /> - <PIOR01Value Name="PIOR01Value" Text="0" /> - <PIOR02Value Name="PIOR02Value" Text="0" /> - <PIOR03Value Name="PIOR03Value" Text="0" /> - <PIOR04Value Name="PIOR04Value" Text="0" /> - <PIOR05Value Name="PIOR05Value" Text="0" /> - <PIOR06Value Name="PIOR06Value" Text="0" /> - <PIOR07Value Name="PIOR07Value" Text="0" /> - <PIOR10Value Name="PIOR10Value" Text="0" /> - <PIOR11Value Name="PIOR11Value" Text="0" /> - <PIOR12Value Name="PIOR12Value" Text="0" /> - <PIOR13Value Name="PIOR13Value" Text="0" /> - <PIOR14Value Name="PIOR14Value" Text="0" /> - <PIOR15Value Name="PIOR15Value" Text="0" /> - <PIOR16Value Name="PIOR16Value" Text="0" /> - <PIOR17Value Name="PIOR17Value" Text="0" /> - <PIOR20Value Name="PIOR20Value" Text="0" /> - <PIOR21Value Name="PIOR21Value" Text="0" /> - <PIOR22Value Name="PIOR22Value" Text="0" /> - <PIOR23Value Name="PIOR23Value" Text="0" /> - <PIOR24Value Name="PIOR24Value" Text="0" /> - <PIOR25Value Name="PIOR25Value" Text="0" /> - <PIOR26Value Name="PIOR26Value" Text="0" /> - <PIOR27Value Name="PIOR27Value" Text="0" /> - <PIOR30Value Name="PIOR30Value" Text="0" /> - <PIOR31Value Name="PIOR31Value" Text="0" /> - <PIOR32Value Name="PIOR32Value" Text="0" /> - <PIOR33Value Name="PIOR33Value" Text="0" /> - <PIOR34Value Name="PIOR34Value" Text="0" /> - <PIOR35Value Name="PIOR35Value" Text="0" /> - <PIOR36Value Name="PIOR36Value" Text="0" /> - <PIOR37Value Name="PIOR37Value" Text="0" /> - <PIOR40Value Name="PIOR40Value" Text="0" /> - <PIOR41Value Name="PIOR41Value" Text="0" /> - <PIOR42Value Name="PIOR42Value" Text="0" /> - <PIOR43Value Name="PIOR43Value" Text="0" /> - <PIOR44Value Name="PIOR44Value" Text="0" /> - <PIOR45Value Name="PIOR45Value" Text="0" /> - <PIOR46Value Name="PIOR46Value" Text="0" /> - <PIOR50Value Name="PIOR50Value" Text="0" /> - <PIOR52Value Name="PIOR52Value" Text="0" /> - <PIOR53Value Name="PIOR53Value" Text="0" /> - <PIOR60Value Name="PIOR60Value" Text="0" /> - <PIOR61Value Name="PIOR61Value" Text="0" /> - <PIOR62Value Name="PIOR62Value" Text="0" /> - <PIOR63Value Name="PIOR63Value" Text="0" /> - <PIOR64Value Name="PIOR64Value" Text="0" /> - <PIOR65Value Name="PIOR65Value" Text="0" /> - <PIOR66Value Name="PIOR66Value" Text="0" /> - <PIOR67Value Name="PIOR67Value" Text="0" /> - <PIOR70Value Name="PIOR70Value" Text="0" /> - <PIOR71Value Name="PIOR71Value" Text="0" /> - <PIOR73Value Name="PIOR73Value" Text="0" /> - <RTC1HZ Name="RTC1HZ" Text="disable" Trigger="RTC1HZ"> - <Effect> - <TAU0 /> - <TAU1 /> - </Effect> - </RTC1HZ> - <RXD0 Name="RXD0" Text="disable" /> - <ProjectName Name="PrjName" Text="ECU-BOOT" /> - <ProjectPath Name="PrjPath" Text="F:\FCB_project\temp\CFMOTOR\ECU_BOOT" /> - <ProjectKind Name="PrjKind" Text="Project78K0R" /> - <DeviceName Name="DeviceName" Fixed="" Text="RL78F13" /> - <MCUName Name="MCUName" Text="RL78F13_64pin" /> - <ChipName Name="ChipName" Text="R5F10BLG" /> - <ChipID Name="ChipID" Text="R5F10BLG" /> - <CPUCoreType Name="CPUCoreType" Fixed="" Text="1" /> - <MCUType Name="MCUType" Fixed="" Text="RL78" /> - <Compiler Name="Compiler" Text="CARL78" /> - <UseSecurityId Name="GI" Text="0" /> - <SecurityId Name="GIValue" Text="00000000000000000000" /> - <LinkDirectiveFile Name="D0" Text="lk.dr" /> - <OnChipDebugOptionBytes Name="GO" Text="1" /> - <OnChipDebugOptionBytesValue Name="GOValue" Text="84" /> - <StartAddressOfOnChipDebugOptionBytes Name="GOStart" Text="1FE00" /> - <SizeOfOnChipDebugOptionBytesArea Name="GOSizeValue" Text="512" /> - <UserOptionBytes Name="GB" Text="1" /> - <UserOptionBytesValue Name="GBValue" Text="FFFFE8" /> - <RAMStartAddress Chip="R5F10AGG,R5F10ALG,R5F10AMG,R5F10BAG,R5F10BBG,R5F10BGG,R5F10BLG,R5F10BMG" Name="RAMStartAddress" Fixed="" Text="000FDF00" /> - <RAMEndAddress Name="RAMEndAddress" Fixed="" Text="000FFEFF" /> - <ROMEndAddress Chip="R5F10AGG,R5F10ALG,R5F10AMG,R5F10BAG,R5F10BBG,R5F10BGG,R5F10BLG,R5F10BMG" Name="ROMEndAddress" Fixed="" Text="0001FFFF" /> - <MirrorROM Chip="R5F10AGG,R5F10ALG,R5F10AMG,R5F10BAG,R5F10BBG,R5F10BGG,R5F10BLG,R5F10BMG" Name="MirrorROM" Fixed="" Text="47.75" /> - <TAUUsedRTC1Hz Name="TAUUsedRTC1Hz" Text="false" Comment="unused" Trigger="RTC1HZ"> - <Effect> - <RTC /> - </Effect> - </TAUUsedRTC1Hz> - <TRDCLKUSE1 Name="TRDCLKUSE1" Value="0" Comment="unused" Trigger="TRDCLK input"> - <Effect> - <TMRD0 /> - </Effect> - </TRDCLKUSE1> - <fMP Name="fMP" Value="32" /> - <ADPCForPort0 Name="ADPCForPort0" Value="255" /> - <ADPCForPort1 Name="ADPCForPort1" Value="255" /> - <ADPCForPort4 Name="ADPCForPort4" Value="255" /> - <ADPCForPort5 Name="ADPCForPort5" Value="255" /> - <ADPCForPort6 Name="ADPCForPort6" Value="255" /> - <ADPCForPort7 Name="ADPCForPort7" Value="255" /> - <ADPCForPort12 Name="ADPCForPort12" Value="255" /> - <ADPCForPort13 Name="ADPCForPort13" Value="255" /> - <ADPCForPort14 Name="ADPCForPort14" Value="255" /> - <TRDCLKTag Name="TRDCLKTag" Value="-1" /> - <TRDCLKUSE0 Name="TRDCLKUSE0" Value="0" /> - <GroupName Name="GroupName" Text="groupc2" /> - <CodePath Name="CodePath" Text=".\" /> - <ReportType Name="ReportType" Text="Html" /> - <GenerateType Name="GenerateType" Text="Merge" /> - <APIOutputType Name="APIOutputType" Text="Default" /> - <FileRegister Name="FileRegister" Text="Yes" /> - <PinReflect Name="PinReflect" Text="NotReflected" /> - <fCLKSource Name="fCLKSource" Text="fMX" /> - <HasRRMRam Name="HasRRMRam" Text="1FE00" /> - <HasTraceRam Name="HasTraceRam" Text="FE300" /> - <HasHotRam Name="HasHotRam" Text="" /> - <PrjVersion Name="PrjVersion" Text="1.2.0.1" /> - <UICultureNumberDecimalSeparator Name="UICultureNumberDecimalSeparator" Text="." /> - <UICultureNumberGroupSeparator Name="UICultureNumberGroupSeparator" Text="," /> - <LinkFileName Name="LinkFileName" Text="" /> - <TO02_PWM Name="TO02_PWM" Text="false" /> - <TO03_PWM Name="TO03_PWM" Text="false" /> - <Ch3UseTI03 Name="Ch3UseTI03" Text="false" /> - <Ch4UseTI03 Name="Ch4UseTI03" Text="false" /> - <Ch5UseTI03 Name="Ch5UseTI03" Text="false" /> - <INPT0USE0 Name="INPT0USE0" Text="false" /> - <TRDINTP0LINK0 Name="TRDINTP0LINK0" Text="false" /> - <TRDIOC1_PWM Name="TRDIOC1_PWM" Text="false" /> - <TRDIOD1_PWM Name="TRDIOD1_PWM" Text="false" /> - <INPT0USE1 Name="INPT0USE1" Text="false" /> - <TRDINTP0LINK1 Name="TRDINTP0LINK1" Text="false" /> - <CreationDateType Name="CreationDateType" Text="OutputDate" /> - <UseFDL Name="UseFDL" Text="no" /> - </VAR> - <DIR> - <PIN> - <CGC> - <X1 Port="P121" Point="-" /> - <X2 Port="P122" Point="-" /> - <EXCLK Port="P122" Point="I" /> - <XT1 Chip="RL78F13_48pin,RL78F13_64pin" Port="P123" Point="-" /> - <XT2 Chip="RL78F13_48pin,RL78F13_64pin" Port="P124" Point="-" /> - <EXCLKS Chip="RL78F13_48pin,RL78F13_64pin" Port="P124" Point="I" /> - <TOOL0 Port="P40" Point="I/O" /> - <RESOUT Port="P130" Point="O" /> - </CGC> - <PORT> - <Port0 Chip="RL78F13_48pin,RL78F13_64pin" Pullup="true"> - <P00 Name="P00/TI05/TO05/INTP9" AltFunc="P00" Point="I/O" /> - </Port0> - <Port1 Chip="RL78F13_30pin,RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" Pullup="true"> - <P10 Name="P10/TI13/TO13/TRJO0/_SCK10/SCL10/LTXD1/CTXD0" Chip="groupb,groupc1,groupc2" TTL="true" PITHL="true" Nch="true" AltFunc="" Point="I/O" /> - <P11 Name="P11/TI12/TO12/TRDIOB0/SI10/SDA10/RXD1/LRXD1/CRXD0" Chip="groupb,groupc1,groupc2" TTL="true" PITHL="true" Nch="true" AltFunc="" Point="I/O" /> - <P12 Name="P12/TI11/TO11/TRDIOD0/INTP5/SO10/TXD1/SNZOUT3" Chip="groupb,groupc1,groupc2" Nch="true" AltFunc="P12" Point="I/O" /> - <P13 Name="P13/TI04/TO04/TRDIOA0/TRDCLK0/SI01/SDA01/LTXD0" TTL="true" PITHL="true" Nch="true" AltFunc="" Point="I/O" /> - <P14 Name="P14/TI06/TO06/TRDIOC0/_SCK01/SCL01/LRXD0" TTL="true" PITHL="true" Nch="true" AltFunc="" Point="I/O" /> - <P15 Name="P15/TI05/TO05/TRDIOA1/TRDIOA0/TRDCLK0/SO00/TXD0/TOOLTXD/RTC1HZ" Nch="true" AltFunc="P15" Point="I/O" /> - <P16 Name="P16/TI02/TO02/TRDIOC1/SI00/SDA00/RXD0/TOOLRXD" TTL="true" PITHL="true" Nch="true" AltFunc="P16" Point="I/O" /> - <P17 Name="P17/TI00/TO00/TRDIOB1/_SCK00/SCL00/INTP3" TTL="true" PITHL="true" Nch="true" AltFunc="P17" Point="I/O" /> - </Port1> - <Port3 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <P30 Name="P30/TI01/TO01/TRDIOD1/_SSI00/INTP2/SNZOUT0" TTL="true" PITHL="true" Pullup="true" AltFunc="TO01" Point="I/O" /> - <P31 Name="P31/TI14/TO14/STOPST/INTP2" Pullup="true" AltFunc="P31" Point="I/O" /> - <P32 Name="P32/TI16/TO16/INTP7" Pullup="true" AltFunc="P32" Point="I/O" /> - <P33 Name="P33/AVREFP/ANI00" AltFunc="ANI0" Point="I/O" /> - <P34 Name="P34/AVREFM/ANI01" AltFunc="ANALOG_1" Point="I/O" /> - </Port3> - <Port4 Chip="RL78F13_64pin" Pullup="true"> - <P40 Name="P40/TOOL0" AltFunc="TOOL0" Point="I/O" /> - <P41 Name="P41/TI10/TO10/TRJIO0/VCOUT0/SNZOUT2" AltFunc="" Point="I/O" /> - <P42 Name="P42/LTXD0" AltFunc="" Point="I/O" /> - <P43 Name="P43/LRXD0" PITHL="true" AltFunc="" Point="I/O" /> - </Port4> - <Port5 Chip="RL78F13_64pin" Pullup="true"> - <P50 Name="P50/_SSI01/INTP3" PITHL="true" AltFunc="P50" Point="I/O" /> - <P51 Name="P51/SO01/INTP11" AltFunc="P51" Point="I/O" /> - <P52 Name="P52/_SCK01/SCL01/STOPST" PITHL="true" AltFunc="P52" Point="I/O" /> - <P53 Name="P53/SI01/SDA01/INTP10" PITHL="true" AltFunc="" Point="I/O" /> - </Port5> - <Port6 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin" Pullup="true"> - <P60 Name="P60/_SCK00/SCL00" PITHL="true" Nch="true" AltFunc="P60" Point="I/O" /> - <P61 Name="P61/SI00/SDA00/RXD0" PITHL="true" Nch="true" AltFunc="" Point="I/O" /> - <P62 Name="P62/SO00/TXD0/SCLA0" Chip="R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" PITHL="true" Nch="true" TTL="true" AltFunc="" Point="I/O" /> - <P63 Name="P63/_SSI00/SDAA0" Chip="R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" TTL="true" PITHL="true" Nch="true" AltFunc="P63" Point="I/O" /> - </Port6> - <Port7 Chip="RL78F13_64pin,RL78F13_80pin" Pullup="true"> - <P70 Name="P70/ANI26/KR0/TI15/TO15/INTP8/SI11/SDA11/SNZOUT4" Chip="R5F10ALF,R5F10ALG,5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" TTL="true" PITHL="true" Nch="true" AltFunc="P70" Point="I/O" /> - <P71 Name="P71/ANI27/KR1/TI17/TO17/INTP6/_SCK11/SCL11/SNZOUT5" Chip="R5F10ALF,R5F10ALG,R5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" TTL="true" PITHL="true" Nch="true" AltFunc="P71" Point="I/O" /> - <P72 Name="P72/ANI28/KR2/CTXD0/SO11/SNZOUT6" Chip="R5F10ALF,R5F10ALG,R5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" Nch="true" AltFunc="P72" Point="I/O" /> - <P73 Name="P73/ANI29/KR3/CRXD0/_SSI11/SNZOUT7" Chip="R5F10ALF,R5F10ALG,R5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" TTL="true" PITHL="true" AltFunc="P73" Point="I/O" /> - <P74 Name="P74/ANI30/KR4/SO10/TXD1" AltFunc="P74" Point="I/O" /> - <P75 Name="P75/KR5/SI10/SDA10/RXD1" Chip="R5F10ALF,R5F10ALG,R5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" PITHL="true" AltFunc="P75" Point="I/O" /> - <P76 Name="P76/KR6/_SCK10/SCL10" Chip="R5F10ALF,R5F10ALG,R5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" PITHL="true" AltFunc="P76" Point="I/O" /> - <P77 Name="P77/KR7/_SSI10/INTP12" Chip="R5F10ALF,R5F10ALG,R5F10AME,R5F10AMF,R5F10AMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" PITHL="true" AltFunc="P77" Point="I/O" /> - </Port7> - <Port8 Chip="RL78F13_30pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <P80 Name="P80/ANI02/ANO0" AltFunc="ANALOG_2" Point="I/O" /> - <P81 Name="P81/ANI03/IVCMP00" AltFunc="ANALOG_3" Point="I/O" /> - <P82 Name="P82/ANI04/IVCMP01" AltFunc="ANALOG_4" Point="I/O" /> - <P83 Name="P83/ANI05/IVCMP02" AltFunc="ANALOG_5" Point="I/O" /> - <P84 Name="P84/ANI06/IVCMP03" AltFunc="ANALOG_6" Point="I/O" /> - <P85 Name="P85/ANI07/IVREF0" AltFunc="ANALOG_7" Point="I/O" /> - <P86 Name="P86/ANI08" AltFunc="ANALOG_8" Point="I/O" /> - <P87 Name="P87/ANI09" AltFunc="ANALOG_9" Point="I/O" /> - </Port8> - <Port9 Chip="RL78F13_64pin"> - <P90 Name="P90/ANI10" AltFunc="P90" Point="I/O" /> - <P91 Name="P91/ANI11" AltFunc="P91" Point="I/O" /> - <P92 Name="P92/ANI12" Chip="R5F10ALF,R5F10ALG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" AltFunc="P92" Point="I/O" /> - <P93 Name="P93/ANI13" Chip="R5F10ALF,R5F10ALG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" AltFunc="P93" Point="I/O" /> - <P94 Name="P94/ANI14" Chip="R5F10ALF,R5F10ALG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" AltFunc="" Point="I/O" /> - <P95 Name="P95/ANI15" Chip="R5F10ALF,R5F10ALG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" AltFunc="P95" Point="I/O" /> - <P96 Name="P96/ANI16" Chip="R5F10ALF,R5F10ALG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" DIN="true" AltFunc="P96" Pullup="true" Point="I/O" /> - </Port9> - <Port12 Chip="RL78F13_48pin,RL78F13_64pin"> - <P120 Name="P120/ANI25/TI07/TO07/TRDIOD0/SO01/INTP4" Chip="R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" DIN="true" Nch="true" Pullup="true" AltFunc="" Point="I/O" /> - <P121 Name="P121/X1" AltFunc="X1" Point="I" /> - <P122 Name="P122/X2/EXCLK" AltFunc="X2" Point="I" /> - <P123 Name="P123/XT1" AltFunc="" Point="I" /> - <P124 Name="P124/XT2/EXCLKS" AltFunc="" Point="I" /> - <P125 Name="P125/ANI24/TI03/TO03/TRDIOB0/_SSI01/INTP1/SNZOUT1" Chip="R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG" DIN="true" TTL="true" PITHL="true" Pullup="true" AltFunc="P125" Point="I/O" /> - </Port12> - <Port13 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <P130 Name="P130/RESOUT" AltFunc="P130" Point="O" /> - <P137 Name="P137/INTP0" AltFunc="" Point="I" /> - </Port13> - <Port14 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" Pullup="true"> - <P140 Name="P140/PCLBUZ0" AltFunc="P140" Point="I/O" /> - </Port14> - </PORT> - <INTC> - <INTP> - <INTP0 Port="P137" Point="I" /> - <INTP1 Port="P125" Point="I" /> - <INTP2 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin,RL78F13_30pin,RL78F13_32pin,RL78F13_20pin" PIOR52="0" Port="P30" Point="I" /> - <INTP3 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin,RL78F13_30pin,RL78F13_32pin,RL78F13_20pin" PIOR53="0" Port="P17" Point="I" /> - <INTP4 Port="P120" Point="I" /> - <INTP5 Chip="RL78F13_30pin,RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" Port="P12" Point="I" /> - <INTP6 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" Port="P71" Point="I" /> - <INTP7 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" Port="P32" Point="I" /> - <INTP8 Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin" Port="P70" Point="I" /> - <INTP9 Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin" Port="P00" Point="I" /> - <INTP10 Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin" Port="P53" Point="I" /> - <INTP11 Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin" Port="P51" Point="I" /> - </INTP> - <KEY> - <KR0 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P70" Point="I" /> - <KR1 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P71" Point="I" /> - <KR2 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P72" Point="I" /> - <KR3 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P73" Point="I" /> - <KR4 Chip="RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P74" Point="I" /> - <KR5 Chip="RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P75" Point="I" /> - <KR6 Chip="RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P76" Point="I" /> - <KR7 Chip="RL78F13_64pin,RL78F13_80pin" PIOR50="0" Port="P77" Point="I" /> - </KEY> - </INTC> - <ADC> - <ANI0 Port="P33" Point="I" /> - <ANI1 Port="P34" Point="I" /> - <ANI2 Port="P80" Point="I" /> - <ANI3 Port="P81" Point="I" /> - <ANI4 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P82" Point="I" /> - <ANI5 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P83" Point="I" /> - <ANI6 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P84" Point="I" /> - <ANI7 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P85" Point="I" /> - <ANI8 Chip="RL78F13_30pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P86" Point="I" /> - <ANI9 Chip="RL78F13_30pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P87" Point="I" /> - <ANI10 Chip="RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P90" Point="I" /> - <ANI11 Chip="RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P91" Point="I" /> - <ANI12 Chip="R5F10BGC, R5F10BGD, R5F10BGE, R5F10BGF, R5F10BGG, R5F10AGF, R5F10AGG, R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P92" Point="I" /> - <ANI13 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P93" Point="I" /> - <ANI14 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P94" Point="I" /> - <ANI15 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P95" Point="I" /> - <ANI24 Chip="R5F10BGC, R5F10BGD, R5F10BGE, R5F10BGF, R5F10BGG, R5F10AGF, R5F10AGG, R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin, R5F10BBC, R5F10BBD, R5F10BBE, R5F10BBF, R5F10BBG, R5F10BAC, R5F10BAD, R5F10BAE, R5F10BAF, R5F10BAG" Port="P125" Point="I" /> - <ANI25 Chip="R5F10BGC, R5F10BGD, R5F10BGE, R5F10BGF, R5F10BGG, R5F10AGF, R5F10AGG, R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin, R5F10BBC, R5F10BBD, R5F10BBE, R5F10BBF, R5F10BBG, R5F10BAC, R5F10BAD, R5F10BAE, R5F10BAF, R5F10BAG" Port="P120" Point="I" /> - <ANI26 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin, " Port="P96" Point="I" /> - <AVREFP Port="P33" Point="I" /> - <AVREFM Port="P34" Point="I" /> - <ANALOG_0 Port="P33" Point="I" RealName="ANI0" /> - <ANALOG_1 Port="P34" Point="I" RealName="ANI1" /> - <ANALOG_2 Port="P80" Point="I" RealName="ANI2" /> - <ANALOG_3 Port="P81" Point="I" RealName="ANI3" /> - <ANALOG_4 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P82" Point="I" RealName="ANI4" /> - <ANALOG_5 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P83" Point="I" RealName="ANI5" /> - <ANALOG_6 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P84" Point="I" RealName="ANI6" /> - <ANALOG_7 Chip="RL78F13_30pin, RL78F13_32pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P85" Point="I" RealName="ANI7" /> - <ANALOG_8 Chip="RL78F13_30pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P86" Point="I" RealName="ANI8" /> - <ANALOG_9 Chip="RL78F13_30pin, RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P87" Point="I" RealName="ANI9" /> - <ANALOG_10 Chip="RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P90" Point="I" RealName="ANI10" /> - <ANALOG_11 Chip="RL78F13_48pin, RL78F13_64pin, RL78F13_80pin" Port="P91" Point="I" RealName="ANI11" /> - <ANALOG_12 Chip="R5F10BGC, R5F10BGD, R5F10BGE, R5F10BGF, R5F10BGG, R5F10AGF, R5F10AGG, R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P92" Point="I" RealName="ANI12" /> - <ANALOG_13 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P93" Point="I" RealName="ANI13" /> - <ANALOG_14 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P94" Point="I" RealName="ANI14" /> - <ANALOG_15 Chip="R5F10BLC, R5F10BLD, R5F10BLE, R5F10BLF, R5F10BLG, R5F10ALF, R5F10ALG, RL78F13_80pin" Port="P95" Point="I" RealName="ANI15" /> - </ADC> - <Serial> - <SAU0> - <UART0> - <RXD0 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" Port="P16" Point="I" /> - <TXD0 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" Port="P15" Point="O" /> - </UART0> - <CSI00> - <SO00 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" Port="P15" Point="O" /> - <SI00 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" Port="P16" Point="I" /> - <SCK00 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" RealName="_SCK00" Port="P17" Point="I/O" /> - <SSI00 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" RealName="_SSI00" Port="P30" Point="I" /> - </CSI00> - <CSI01> - <SO01 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR41="0" Port="P120" Point="O" /> - <SI01 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR41="0" Port="P13" Point="I" /> - <SCK01 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR41="0" Port="P14" RealName="_SCK01" Point="I/O" /> - <SSI01 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR41="0" RealName="_SSI01" Port="P125" Point="I" /> - </CSI01> - <IIC00> - <SCL00 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" Port="P17" Point="O" CheckNch="true" /> - <SDA00 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR40="0" Port="P16" Point="O" CheckNch="true" /> - </IIC00> - <IIC01> - <SCL01 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR41="0" Port="P14" Point="O" CheckNch="true" /> - <SDA01 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR41="0" Port="P13" Point="O" CheckNch="true" /> - </IIC01> - </SAU0> - <SAU1> - <UART1> - <RXD1 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P11" Point="I" /> - <TXD1 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P12" Point="O" /> - </UART1> - <CSI10> - <SO10 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P12" Point="O" /> - <SI10 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P11" Point="I" /> - <SCK10 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P10" RealName="_SCK10" Point="I/O" /> - </CSI10> - <CSI11 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG"> - <SO11 PIOR43="0" Port="P72" Point="O" /> - <SI11 PIOR43="0" Port="P70" Point="I" /> - <SCK11 PIOR43="0" Port="P71" RealName="_SCK11" Point="I/O" /> - <SSI11 PIOR43="0" RealName="_SSI11" Port="P73" Point="I" /> - </CSI11> - <IIC10> - <SCL10 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P10" Point="O" CheckNch="true" /> - <SDA10 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG" PIOR42="0" Port="P11" Point="O" CheckNch="true" /> - </IIC10> - <IIC11 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG"> - <SCL11 PIOR43="0" Port="P71" Point="O" CheckNch="true" /> - <SDA11 PIOR43="0" Port="P70" Point="O" CheckNch="true" /> - </IIC11> - </SAU1> - <IICA0> - <SCLA0 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" Port="P62" Point="I/O" /> - <SDAA0 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" Port="P63" Point="I/O" /> - </IICA0> - </Serial> - <TAU> - <TAU0> - <Channel0> - <TI00 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR00="0" Port="P17" Point="I" /> - <TO00 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR10="0" Port="P17" Point="O" /> - </Channel0> - <Channel1> - <TI01 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR01="0" Port="P30" Point="I" /> - <TO01 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR11="0" Port="P30" Point="O" /> - </Channel1> - <Channel2> - <TI02 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR02="0" Port="P16" Point="I" /> - <TO02 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR12="0" Port="P16" Point="O" /> - </Channel2> - <Channel3> - <TI03 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR03="0" Port="P125" Point="I" /> - <TO03 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR13="0" Port="P125" Point="O" /> - </Channel3> - <Channel4> - <TI04 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR04="0" Port="P13" Point="I" /> - <TO04 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR14="0" Port="P13" Point="O" /> - </Channel4> - <Channel5> - <TI05 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR05="0" Port="P15" Point="I" /> - <TO05 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR15="0" Port="P15" Point="O" /> - </Channel5> - <Channel6> - <TI06 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR06="0" Port="P14" Point="I" /> - <TO06 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR16="0" Port="P14" Point="O" /> - </Channel6> - <Channel7> - <TI07 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR07="0" Port="P120" Point="I" /> - <TO07 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR17="0" Port="P120" Point="O" /> - </Channel7> - </TAU0> - <TAU1 Chip="groupb,groupc1,groupc2"> - <Channel0> - <TI10 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P41" Point="I" /> - <TO10 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P41" Point="O" /> - </Channel0> - <Channel1> - <TI11 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P12" Point="I" /> - <TO11 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P12" Point="O" /> - </Channel1> - <Channel2> - <TI12 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P11" Point="I" /> - <TO12 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P11" Point="O" /> - </Channel2> - <Channel3> - <TI13 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P10" Point="I" /> - <TO13 Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" Port="P10" Point="O" /> - </Channel3> - </TAU1> - <TMRJ0 Chip="RL78F13_80pin,RL78F13_64pin,RL78F13_48pin,RL78F13_32pin,RL78F13_30pin"> - <TRJIO0 Port="P41" Point="I/O" /> - <TRJO0 Port="P10" Point="O" /> - </TMRJ0> - <TMRD0> - <TRDCLK_P13_0 PIOR70="0" Port="P13" Point="I/O" UnConflict="TRDCLK_P13_1" RealName="TRDCLK0" /> - <TRDIOA0_P13 PIOR70="0" Port="P13" Point="I/O" UnConflict="TRDCLK_P13_0" RealName="TRDIOA0" /> - <TRDIOB0_P125 PIOR71="0" Port="P125" Point="I/O" RealName="TRDIOB0" /> - <TRDIOC0_P14 Port="P14" Point="I/O" RealName="TRDIOC0" /> - <TRDIOD0_P120 PIOR73="0" Port="P120" Point="I/O" RealName="TRDIOD0" /> - <TRDIOA1_P15_0 Port="P15" Point="I/O" UnConflict="TRDIOA1_P15" RealName="TRDIOA1" /> - <TRDIOB1_P17_0 Port="P17" Point="I/O" UnConflict="TRDIOB1_P17" RealName="TRDIOB1" /> - <TRDIOC1_P16_0 Port="P16" Point="I/O" UnConflict="TRDIOC1_P16" RealName="TRDIOC1" /> - <TRDIOD1_P30_0 Port="P30" Point="I/O" UnConflict="TRDIOD1_P30" RealName="TRDIOD1" /> - </TMRD0> - <TMRD1> - <TRDCLK_P13_1 PIOR70="0" Port="P13" Point="I/O" UnConflict="TRDCLK_P13_0,TRDIOA0_P13" RealName="TRDCLK0" /> - <TRDIOA1_P15 Port="P15" Point="I/O" UnConflict="TRDIOA1_P15_0" RealName="TRDIOA1" /> - <TRDIOB1_P17 Port="P17" Point="I/O" UnConflict="TRDIOB1_P17_0" RealName="TRDIOB1" /> - <TRDIOC1_P16 Port="P16" Point="I/O" UnConflict="TRDIOC1_P16_0" RealName="TRDIOC1" /> - <TRDIOD1_P30 Port="P30" Point="I/O" UnConflict="TRDIOD1_P30_0" RealName="TRDIOD1" /> - </TMRD1> - </TAU> - <RTC> - <RTC1HZ Port="P15" Point="O" /> - </RTC> - <PCLBUZ Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <PCLBUZ0> - <PCLBUZ0 Port="P140" Point="O" /> - </PCLBUZ0> - </PCLBUZ> - <LIN> - <LTxD0 Chip="RL78F13_80pin,RL78F13_64pin,RL78F13_48pin,RL78F13_32pin" PIOR44="0" Port="P13" Point="O" /> - <LRxD0 Chip="RL78F13_80pin,RL78F13_64pin,RL78F13_48pin,RL78F13_32pin" PIOR44="0" Port="P14" Point="I" /> - </LIN> - <CAN> - <CTxD0 Chip="R5F10BME,R5F10BMF,R5F10BMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC" PIOR46="0" Port="P10" Point="O" /> - <CRxD0 Chip="R5F10BME,R5F10BMF,R5F10BMG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC" PIOR46="0" Port="P11" Point="I" /> - </CAN> - <Others> - <VDD AltFunc="VDD" Point="-" /> - <VSS AltFunc="VSS" Point="-" /> - <EVDD0 Chip="RL78F13_64pin,RL78F13_80pin" AltFunc="EVDD0" Point="-" /> - <EVSS0 Chip="RL78F13_64pin,RL78F13_80pin" AltFunc="EVSS0" Point="-" /> - <REGC AltFunc="REGC" Point="-" /> - <_RESET AltFunc="_RESET" RealName="_RESET" Point="I" /> - </Others> - </PIN> - <INT> - <CGC> - <INTCLM InUse="0" ISR="r_cgc_clockmonitor_interrupt" /> - <INTRAM InUse="0" ISR="r_cgc_ram_ecc_interrupt" /> - <INTSPM InUse="0" ISR="r_cgc_stackpointer_interrupt" /> - </CGC> - <INTC> - <INTP> - <INTP0 InUse="0" ISR="r_intc0_interrupt" /> - <INTP1 InUse="0" ISR="r_intc1_interrupt" /> - <INTP2 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin,RL78F13_30pin,RL78F13_32pin,RL78F13_20pin" PIOR52="0" InUse="0" ISR="r_intc2_interrupt" /> - <INTP3 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin,RL78F13_30pin,RL78F13_32pin,RL78F13_20pin" PIOR53="0" InUse="0" ISR="r_intc3_interrupt" /> - <INTP4 InUse="0" ISR="r_intc4_interrupt" /> - <INTP5 Chip="RL78F13_30pin,RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" InUse="0" ISR="r_intc5_interrupt" /> - <INTP6 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" InUse="0" ISR="r_intc6_interrupt" /> - <INTP7 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" InUse="0" ISR="r_intc7_interrupt" /> - <INTP8 Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin" InUse="0" ISR="r_intc8_interrupt" /> - <INTP9 Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin" InUse="0" ISR="r_intc9_interrupt" /> - <INTP10 Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin" InUse="0" ISR="r_intc10_interrupt" /> - <INTP11 Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin" InUse="0" ISR="r_intc11_interrupt" /> - </INTP> - <KEY> - <INTKR Chip="RL78F13_48pin,RL78F13_64pin" InUse="0" ISR="r_key_interrupt" /> - </KEY> - </INTC> - <Serial> - <SAU0> - <INTCSI00 InUse="0" ISR="r_csi00_interrupt" /> - <INTCSI01 InUse="0" ISR="r_csi01_interrupt" /> - <INTST0 InUse="0" ISR="r_uart0_interrupt_send" /> - <INTSR0 InUse="0" ISR="r_uart0_interrupt_receive" /> - <INTIIC00 InUse="0" ISR="r_iic00_interrupt" /> - <INTIIC01 InUse="0" ISR="r_iic01_interrupt" /> - </SAU0> - <SAU1> - <INTCSI10 InUse="0" ISR="r_csi10_interrupt" /> - <INTCSI11 InUse="0" ISR="r_csi11_interrupt" /> - <INTST1 InUse="0" ISR="r_uart1_interrupt_send" /> - <INTSR1 InUse="0" ISR="r_uart1_interrupt_receive" /> - <INTIIC10 InUse="0" ISR="r_iic10_interrupt" /> - <INTIIC11 InUse="0" ISR="r_iic11_interrupt" /> - </SAU1> - <IICA0> - <INTIICA0 InUse="0" ISR="r_iica0_interrupt" /> - </IICA0> - </Serial> - <ADC> - <INTAD InUse="0" ISR="r_adc_interrupt" IsDMATrigger="true" /> - </ADC> - <TAU> - <TAU0> - <Channel0> - <INTTM00 InUse="0" ISR="r_tau0_channel0_interrupt" /> - </Channel0> - <Channel1> - <INTTM01 InUse="0" ISR="r_tau0_channel1_interrupt" /> - <INTTM01H InUse="0" ISR="r_tau0_channel1_higher8bits_interrupt" /> - </Channel1> - <Channel2> - <INTTM02 InUse="1" ISR="r_tau0_channel2_interrupt" /> - </Channel2> - <Channel3> - <INTTM03 InUse="0" ISR="r_tau0_channel3_interrupt" /> - <INTTM03H InUse="0" ISR="r_tau0_channel3_higher8bits_interrupt" /> - </Channel3> - <Channel4> - <INTTM04 InUse="0" ISR="r_tau0_channel4_interrupt" /> - </Channel4> - <Channel5> - <INTTM05 InUse="0" ISR="r_tau0_channel5_interrupt" /> - </Channel5> - <Channel6> - <INTTM06 InUse="0" ISR="r_tau0_channel6_interrupt" /> - </Channel6> - <Channel7> - <INTTM07 InUse="0" ISR="r_tau0_channel7_interrupt" /> - </Channel7> - </TAU0> - <TAU1> - <Channel0> - <INTTM10 InUse="0" ISR="r_tau1_channel0_interrupt" /> - </Channel0> - <Channel1> - <INTTM11 InUse="0" ISR="r_tau1_channel1_interrupt" /> - <INTTM11H InUse="0" ISR="r_tau1_channel1_higher8bits_interrupt" /> - </Channel1> - <Channel2> - <INTTM12 InUse="0" ISR="r_tau1_channel2_interrupt" /> - </Channel2> - <Channel3> - <INTTM13 InUse="0" ISR="r_tau1_channel3_interrupt" /> - <INTTM13H InUse="0" ISR="r_tau1_channel3_higher8bits_interrupt" /> - </Channel3> - <Channel4> - <INTTM14 InUse="0" ISR="r_tau1_channel4_interrupt" /> - </Channel4> - <Channel5> - <INTTM15 InUse="0" ISR="r_tau1_channel5_interrupt" /> - </Channel5> - <Channel6> - <INTTM16 InUse="0" ISR="r_tau1_channel6_interrupt" /> - </Channel6> - <Channel7> - <INTTM17 InUse="0" ISR="r_tau1_channel7_interrupt" /> - </Channel7> - </TAU1> - <TMRJ0> - <INTTRJ0 InUse="0" ISR="r_tmr_rj0_interrupt" /> - </TMRJ0> - <TMRD0> - <INTTRD0 InUse="0" ISR="r_tmr_rd0_interrupt" /> - </TMRD0> - <TMRD1> - <INTTRD1 InUse="0" ISR="r_tmr_rd1_interrupt" /> - </TMRD1> - </TAU> - <RTC> - <INTRTC InUse="0" ISR="r_rtc_interrupt" /> - </RTC> - <WDT> - <INTWDTI InUse="1" ISR="r_wdt_interrupt" /> - </WDT> - <LVD> - <INTLVI InUse="0" ISR="r_lvd_interrupt" IsDMATrigger="true" /> - </LVD> - </INT> - <FUNC> - <Common> - <r_main.c UserName="r_main.c" LibName="main.c" IsLibrary="false" InUse="2"> - <Type main="void main(void)" R_MAIN_UserInit="void R_MAIN_UserInit(void)" /> - <main UserName="main" LibName="main" FixedName="" InUse="2" ForRTOS="false" Init="" /> - <R_MAIN_UserInit UserName="R_MAIN_UserInit" LibName="R_MAIN_UserInit" InUse="2" /> - </r_main.c> - <r_systeminit.c UserName="r_systeminit.c" LibName="systeminit.c" Compiler="CARL78,ICCRL78,CCRL" InUse="1"> - <Type systeminit="void R_Systeminit(void)" hdwinit="void hdwinit(void)" low_level_init="int __low_level_init(void)" inti_handler="void inti_handler(void)" idle_handler="void idle_handler(void)" /> - <R_Systeminit UserName="R_Systeminit" LibName="systeminit" InUse="1" Init="" /> - <hdwinit UserName="hdwinit" LibName="hdwinit" FixedName="" Compiler="CARL78,CCRL" InUse="1" Init="" /> - <__low_level_init UserName="" LibName="low_level_init" FixedName="" Compiler="ICCRL78" InUse="1" Init="" /> - </r_systeminit.c> - <r_hardware_setup.c UserName="" LibName="hardwaresetup.c" Compiler="GCCRL78" InUse="1"> - <Type systeminit="void R_Systeminit(void)" hardwaresetup="void HardwareSetup(void)" /> - <R_Systeminit UserName="" LibName="systeminit" InUse="1" Init="" /> - <HardwareSetup UserName="" LibName="hardwaresetup" FixedName="" InUse="1" Init="" /> - </r_hardware_setup.c> - <r_cg_vector_table.c UserName="" LibName="vectortable.c" Compiler="GCCRL78" InUse="1"> - <Type R_Dummy="void R_Dummy(void)" /> - <R_Dummy UserName="R_Dummy" LibName="R_Dummy" InUse="1" /> - </r_cg_vector_table.c> - <r_reset_program.asm UserName="" LibName="resetprogram.s" Compiler="GCCRL78" InUse="1" /> - <r_cg_interrupt_handlers.h UserName="" LibName="interrupthandlers.h" Compiler="GCCRL78" InUse="1" /> - <r_cg_macrodriver.h UserName="r_cg_macrodriver.h" LibName="macrodriver1.h" InUse="1" /> - <r_cg_userdefine.h UserName="r_cg_userdefine.h" LibName="userdefine.h" InUse="1" /> - <r_lk.dr UserName="r_lk.dr" LibName="lk.dr" IsLibrary="false" Compiler="CARL78" InUse="1" /> - <r_mdlnk.xcl UserName="" LibName="md_lnk.xcl" Visible="false" IsLibrary="false" Compiler="ICCRL78" InUse="1" /> - <iodefine.head UserName="" LibName="iodefine.head" Visible="false" IsLibrary="false" Compiler="GCCRL78" InUse="1" /> - <iodefineext.head UserName="" LibName="iodefineext.head" Visible="false" IsLibrary="false" Compiler="GCCRL78" InUse="1" /> - <mdt.customdebuglinker UserName="" LibName="mdt.customdebuglinker" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <mdt.debuglinker UserName="" LibName="mdt.debuglinker" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <mdt.hardwaredebuglinker UserName="" LibName="mdt.hardwaredebuglinker" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <mdt.releaselinker UserName="" LibName="mdt.releaselinker" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <mdt.project UserName="" LibName="mdt.project" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <mdt.cproject UserName="" LibName="mdt.cproject" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <mdt.info UserName="" LibName="mdt.info" Visible="false" IsLibrary="false" Compiler="GCCRL78" ForAP="true" InUse="1" /> - <r_mdt.ipcf UserName="" LibName="mdt.ipcf" Visible="false" IsLibrary="false" Compiler="ICCRL78" ForAP="true" InUse="1" /> - <r_mdt.eww UserName="" LibName="mdt.eww" Visible="false" IsLibrary="false" Compiler="ICCRL78" ForAP="true" InUse="1" /> - <r_mdt.ewp UserName="" LibName="rl78mdt.ewp" Visible="false" IsLibrary="false" Compiler="ICCRL78" ForAP="true" InUse="1" /> - <r_mdt.txt UserName="r_mdt.txt" LibName="mdt.txt" Visible="false" IsLibrary="false" Compiler="CARL78,CCRL" ForAP="true" InUse="1" /> - </Common> - <CGC> - <r_cg_cgc.c UserName="r_cg_cgc.c" LibName=".c" InUse="1"> - <Type R_CGC_Create="void R_CGC_Create(void)" R_CGC_Set_ClockMode="MD_STATUS R_CGC_Set_ClockMode(enum ClockMode mode)" R_CGC_ClockMonitor_Start="void R_CGC_ClockMonitor_Start(void)" R_CGC_ClockMonitor_Stop="void R_CGC_ClockMonitor_Stop(void)" R_CGC_StackPointer_Start="void R_CGC_StackPointer_Start(void)" R_CGC_StackPointer_Stop="void R_CGC_StackPointer_Stop(void)" R_CGC_RAMECC_Start="void R_CGC_RAMECC_Start(void)" R_CGC_RAMECC_Stop="void R_CGC_RAMECC_Stop(void)" /> - <R_CGC_Create UserName="R_CGC_Create" LibName="R_CGC_Create" InUse="1" Init="1" InitMode="" /> - <R_CGC_Set_ClockMode UserName="R_CGC_Set_ClockMode" LibName="R_CGC_Set_ClockMode" InUse="0" /> - <R_CGC_ClockMonitor_Start UserName="R_CGC_ClockMonitor_Start" LibName="R_CGC_ClockMonitor_Start" InUse="0" /> - <R_CGC_ClockMonitor_Stop UserName="R_CGC_ClockMonitor_Stop" LibName="R_CGC_ClockMonitor_Stop" InUse="0" /> - <R_CGC_StackPointer_Start UserName="R_CGC_StackPointer_Start" LibName="R_CGC_StackPointer_Start" InUse="0" /> - <R_CGC_StackPointer_Stop UserName="R_CGC_StackPointer_Stop" LibName="R_CGC_StackPointer_Stop" InUse="0" /> - <R_CGC_RAMECC_Start UserName="R_CGC_RAMECC_Start" LibName="R_CGC_RAMECC_Start" InUse="0" /> - <R_CGC_RAMECC_Stop UserName="R_CGC_RAMECC_Stop" LibName="R_CGC_RAMECC_Stop" InUse="0" /> - </r_cg_cgc.c> - <r_cg_cgc_user.c UserName="r_cg_cgc_user.c" LibName="_user.c" InUse="1"> - <Type R_CGC_Get_ResetSource="void R_CGC_Get_ResetSource(void)" R_CGC_Create_UserInit="void R_CGC_Create_UserInit(void)" r_cgc_clockmonitor_interrupt="__interrupt static void r_cgc_clockmonitor_interrupt(void)" r_cgc_stackpointer_interrupt="__interrupt static void r_cgc_stackpointer_interrupt(void)" r_cgc_ram_ecc_interrupt="__interrupt static void r_cgc_ram_ecc_interrupt(void)" /> - <R_CGC_Create_UserInit UserName="R_CGC_Create_UserInit" LibName="R_CGC_Create_UserInit" InUse="0" /> - <R_CGC_Get_ResetSource UserName="R_CGC_Get_ResetSource" LibName="R_CGC_Get_ResetSource" Init="0" InUse="1" /> - <r_cgc_clockmonitor_interrupt UserName="r_cgc_clockmonitor_interrupt" INTHandle="" LibName="r_cgc_clockmonitor_interrupt" InUse="0" /> - <r_cgc_stackpointer_interrupt UserName="r_cgc_stackpointer_interrupt" INTHandle="" LibName="r_cgc_stackpointer_interrupt" InUse="0" /> - <r_cgc_ram_ecc_interrupt UserName="r_cgc_ram_ecc_interrupt" INTHandle="" LibName="r_cgc_ram_ecc_interrupt" InUse="0" /> - </r_cg_cgc_user.c> - <r_cg_cgc.h UserName="r_cg_cgc.h" LibName=".h" InUse="1" /> - </CGC> - <PORT> - <r_cg_port.c UserName="r_cg_port.c" LibName=".c" InUse="1"> - <Type R_PORT_Create="void R_PORT_Create(void)" /> - <R_PORT_Create UserName="R_PORT_Create" LibName="R_PORT_Create" Init="1" InitMode="" InUse="1" /> - </r_cg_port.c> - <r_cg_port_user.c UserName="r_cg_port_user.c" LibName="_user.c" InUse="1"> - <Type R_PORT_Create_UserInit="void R_PORT_Create_UserInit(void)" /> - <R_PORT_Create_UserInit UserName="R_PORT_Create_UserInit" LibName="R_PORT_Create_UserInit" InUse="0" /> - </r_cg_port_user.c> - <r_cg_port.h UserName="r_cg_port.h" LibName=".h" InUse="1" /> - </PORT> - <INTC> - <r_cg_intc.c UserName="r_cg_intc.c" LibName=".c" InUse=""> - <Type R_INTC_Create="void R_INTC_Create(void)" R_INTCn_Start="void R_INTCn_Start(void)" R_INTCn_Stop="void R_INTCn_Stop(void)" R_KEY_Create="void R_KEY_Create(void)" R_KEY_Start="void R_KEY_Start(void)" R_KEY_Stop="void R_KEY_Stop(void)" /> - <INTP> - <R_INTC_Create UserName="R_INTC_Create" LibName="R_INTC_Create" InUse="" Init="2" InitMode="" /> - <INTP0> - <R_INTC0_Start UserName="R_INTC0_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC0_Stop UserName="R_INTC0_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP0> - <INTP1> - <R_INTC1_Start UserName="R_INTC1_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC1_Stop UserName="R_INTC1_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP1> - <INTP2 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <R_INTC2_Start UserName="R_INTC2_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC2_Stop UserName="R_INTC2_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP2> - <INTP3 Chip="RL78F13_64pin,RL78F13_80pin"> - <R_INTC3_Start UserName="R_INTC3_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC3_Stop UserName="R_INTC3_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP3> - <INTP4> - <R_INTC4_Start UserName="R_INTC4_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC4_Stop UserName="R_INTC4_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP4> - <INTP5 Chip="RL78F13_30pin,RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <R_INTC5_Start UserName="R_INTC5_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC5_Stop UserName="R_INTC5_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP5> - <INTP6 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <R_INTC6_Start UserName="R_INTC6_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC6_Stop UserName="R_INTC6_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP6> - <INTP7 Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <R_INTC7_Start UserName="R_INTC7_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC7_Stop UserName="R_INTC7_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP7> - <INTP8 Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin"> - <R_INTC8_Start UserName="R_INTC8_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC8_Stop UserName="R_INTC8_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP8> - <INTP9 Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin"> - <R_INTC9_Start UserName="R_INTC9_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC9_Stop UserName="R_INTC9_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP9> - <INTP10 Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin"> - <R_INTC10_Start UserName="R_INTC10_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC10_Stop UserName="R_INTC10_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP10> - <INTP11 Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin"> - <R_INTC11_Start UserName="R_INTC11_Start" LibName="R_INTCn_Start" InUse="" /> - <R_INTC11_Stop UserName="R_INTC11_Stop" LibName="R_INTCn_Stop" InUse="" /> - </INTP11> - </INTP> - <KEY Chip="RL78F13_48pin,RL78F13_64pin"> - <R_KEY_Create UserName="R_KEY_Create" LibName="R_KEY_Create" InUse="" Init="2" InitMode="" /> - <R_KEY_Start UserName="R_KEY_Start" LibName="R_KEY_Start" InUse="" /> - <R_KEY_Stop UserName="R_KEY_Stop" LibName="R_KEY_Stop" InUse="" /> - </KEY> - </r_cg_intc.c> - <r_cg_intc_user.c UserName="r_cg_intc_user.c" LibName="_user.c" InUse=""> - <Type R_INTC_Create_UserInit="void R_INTC_Create_UserInit(void)" r_intc0_interrupt="__interrupt static void r_intc0_interrupt(void)" r_intc1_interrupt="__interrupt static void r_intc1_interrupt(void)" r_intc2_interrupt="__interrupt static void r_intc2_interrupt(void)" r_intc3_interrupt="__interrupt static void r_intc3_interrupt(void)" r_intc4_interrupt="__interrupt static void r_intc4_interrupt(void)" r_intc5_interrupt="__interrupt static void r_intc5_interrupt(void)" r_intc6_interrupt="__interrupt static void r_intc6_interrupt(void)" r_intc7_interrupt="__interrupt static void r_intc7_interrupt(void)" r_intc8_interrupt="__interrupt static void r_intc8_interrupt(void)" r_intc9_interrupt="__interrupt static void r_intc9_interrupt(void)" r_intc10_interrupt="__interrupt static void r_intc10_interrupt(void)" r_intc11_interrupt="__interrupt static void r_intc11_interrupt(void)" R_KEY_Create_UserInit="void R_KEY_Create_UserInit(void)" r_key_interrupt="__interrupt static void r_key_interrupt(void)" /> - <INTP> - <R_INTC_Create_UserInit UserName="R_INTC_Create_UserInit" LibName="R_INTC_Create_UserInit" InUse="" /> - <r_intc0_interrupt UserName="r_intc0_interrupt" LibName="r_intc0_interrupt" INTHandle="" InUse="" /> - <r_intc1_interrupt UserName="r_intc1_interrupt" LibName="r_intc1_interrupt" INTHandle="" InUse="" /> - <r_intc2_interrupt Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" UserName="r_intc2_interrupt" LibName="r_intc2_interrupt" INTHandle="" InUse="" /> - <r_intc3_interrupt Chip="RL78F13_64pin,RL78F13_80pin" UserName="r_intc3_interrupt" LibName="r_intc3_interrupt" INTHandle="" InUse="" /> - <r_intc4_interrupt UserName="r_intc4_interrupt" LibName="r_intc4_interrupt" INTHandle="" InUse="" /> - <r_intc5_interrupt Chip="RL78F13_30pin,RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" UserName="r_intc5_interrupt" LibName="r_intc5_interrupt" INTHandle="" InUse="" /> - <r_intc6_interrupt Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" UserName="r_intc6_interrupt" LibName="r_intc6_interrupt" INTHandle="" InUse="" /> - <r_intc7_interrupt Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" UserName="r_intc7_interrupt" LibName="r_intc7_interrupt" INTHandle="" InUse="" /> - <r_intc8_interrupt Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin" UserName="r_intc8_interrupt" LibName="r_intc8_interrupt" INTHandle="" InUse="" /> - <r_intc9_interrupt Chip="R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10AGF,R5F10AGG,R5F10ALF,R5F10ALG,RL78F13_80pin" UserName="r_intc9_interrupt" LibName="r_intc9_interrupt" INTHandle="" InUse="" /> - <r_intc10_interrupt Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin" UserName="r_intc10_interrupt" LibName="r_intc10_interrupt" INTHandle="" InUse="" /> - <r_intc11_interrupt Chip="R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10ALF,R5F10ALG,RL78F13_80pin" UserName="r_intc11_interrupt" LibName="r_intc11_interrupt" INTHandle="" InUse="" /> - </INTP> - <KEY Chip="RL78F13_48pin,RL78F13_64pin"> - <R_KEY_Create_UserInit UserName="R_KEY_Create_UserInit" LibName="R_KEY_Create_UserInit" InUse="" /> - <r_key_interrupt UserName="r_key_interrupt" LibName="r_key_interrupt" INTHandle="" InUse="" /> - </KEY> - </r_cg_intc_user.c> - <r_cg_intc.h UserName="r_cg_intc.h" LibName=".h" InUse="" /> - </INTC> - <Serial> - <r_cg_serial.c UserName="r_cg_serial.c" LibName=".c" InUse="0"> - <Type R_SAUn_Create="void R_SAUn_Create(void)" R_SAUn_Set_PowerOff="void R_SAUn_Set_PowerOff(void)" R_SAUn_Set_SnoozeOn="void R_SAUn_Set_SnoozeOn(void)" R_SAUn_Set_SnoozeOff="void R_SAUn_Set_SnoozeOff(void)" R_UARTn_Create="void R_UARTn_Create(void)" R_UARTn_Send="MD_STATUS R_UARTn_Send(uint8_t const * tx_buf, uint16_t tx_num)" R_UARTn_Receive="MD_STATUS R_UARTn_Receive(uint8_t const * rx_buf, uint16_t rx_num)" R_UARTn_Start="void R_UARTn_Start(void)" R_UARTn_Stop="void R_UARTn_Stop(void)" R_CSIn_Create="void R_CSIn_Create(void)" R_CSIn_Send="MD_STATUS R_CSIn_Send(uint8_t const * tx_buf, uint16_t tx_num)" R_CSIn_Receive="MD_STATUS R_CSIn_Receive(uint8_t const * rx_buf, uint16_t rx_num) " R_CSIn_Send_Receive="MD_STATUS R_CSIn_Send_Receive(uint8_t const * tx_buf, uint16_t tx_num, uint8_t const * rx_buf) " R_CSIn_Start="void R_CSIn_Start(void)" R_CSIn_Stop="void R_CSIn_Stop(void)" R_IICn_Create="void R_IICn_Create(void)" R_IICn_Master_Send="void R_IICn_Master_Send(uint8_t adr, uint8_t const * tx_buf, uint16_t txnum)" R_IICn_Master_Receive="void R_IICn_Master_Receive(uint8_t adr, uint8_t const * rx_buf, uint16_t rx_num) " R_IICn_Stop="void R_IICn_Stop(void)" R_IICn_StartCondition="void R_IICn_StartCondition(void)" R_IICn_StopCondition="void R_IICn_StopCondition(void)" R_UARTFn_Create="void R_UARTFn_Create(void)" R_UARTFn_Send="MD_STATUS R_UARTFn_Send(uint8_t * const tx_buf, uint16_t tx_num)" R_UARTFn_Receive="MD_STATUS R_UARTFn_Receive(uint8_t * const rx_buf, uint16_t rx_num)" R_UARTFn_Set_ComparisonData="void R_UARTFn_Set_ComparisonData(uint16_t com_data)" R_UARTFn_Set_DataComparisonOn="void R_UARTFn_Set_DataComparisonOn(void)" R_UARTFn_Set_DataComparisonOff="void R_UARTFn_Set_DataComparisonOff(void)" R_UARTFn_Set_PowerOff="void R_UARTFn_Set_PowerOff(void)" R_IICAn_Create="void R_IICAn_Create(void)" R_IICAn_Master_Send="MD_STATUS R_IICAn_Master_Send(uint8_t adr, uint8_t * const tx_buf, uint16_t tx_num, uint8_t wait)" R_IICAn_Master_Receive="MD_STATUS R_IICAn_Master_Receive(uint8_t adr, uint8_t * const rx_buf, uint16_t rx_num, uint8_t wait)" R_IICAn_Slave_Send="void R_IICAn_Slave_Send(uint8_t * const tx_buf, uint16_t tx_num)" R_IICAn_Slave_Receive="void R_IICAn_Slave_Receive(uint8_t * const rx_buf, uint16_t rx_num)" R_IICAn_Stop="void R_IICAn_Stop(void)" R_IICAn_StopCondition="void R_IICAn_StopCondition(void)" R_IICAn_Set_SnoozeOn="void R_IICAn_Set_SnoozeOn(void)" R_IICAn_Set_SnoozeOff="void R_IICAn_Set_SnoozeOff(void)" R_IICAn_Set_PowerOff="void R_IICAn_Set_PowerOff(void)" /> - <SAU0 InUse=""> - <R_SAU0_Create UserName="R_SAU0_Create" LibName="R_SAUn_Create" InUse="0" Init="1" InitMode="" /> - <R_SAU0_Set_PowerOff UserName="R_SAU0_Set_PowerOff" LibName="R_SAUn_Set_PowerOff" InUse="0" /> - <R_SAU0_Set_SnoozeOn UserName="R_SAU0_Set_SnoozeOn" LibName="R_SAUn_Set_SnoozeOn" InUse="0" /> - <R_SAU0_Set_SnoozeOff UserName="R_SAU0_Set_SnoozeOff" LibName="R_SAUn_Set_SnoozeOff" InUse="0" /> - <UART0 InUse=""> - <R_UART0_Create UserName="R_UART0_Create" LibName="R_UARTn_Create" InUse="0" InitMode="" /> - <R_UART0_Start UserName="R_UART0_Start" LibName="R_UARTn_Start" InUse="0" /> - <R_UART0_Stop UserName="R_UART0_Stop" LibName="R_UARTn_Stop" InUse="0" /> - <R_UART0_Send UserName="R_UART0_Send" LibName="R_UARTn_Send" InUse="0" /> - <R_UART0_Receive UserName="R_UART0_Receive" LibName="R_UARTn_Receive" InUse="0" /> - </UART0> - <CSI00 InUse=""> - <R_CSI00_Create UserName="R_CSI00_Create" LibName="R_CSIn_Create" InUse="0" InitMode="" /> - <R_CSI00_Start UserName="R_CSI00_Start" LibName="R_CSIn_Start" InUse="0" /> - <R_CSI00_Stop UserName="R_CSI00_Stop" LibName="R_CSIn_Stop" InUse="0" /> - <R_CSI00_Send UserName="R_CSI00_Send" LibName="R_CSIn_Send" InUse="0" /> - <R_CSI00_Receive UserName="R_CSI00_Receive" LibName="R_CSIn_Receive" InUse="0" /> - <R_CSI00_Send_Receive UserName="R_CSI00_Send_Receive" LibName="R_CSIn_Send_Receive" InUse="0" /> - </CSI00> - <CSI01 InUse="" Chip="RL78F13_64pin,RL78F13_80pin,RL78F13_48pin,RL78F13_32pin" PIOR41="0"> - <R_CSI01_Create UserName="R_CSI01_Create" LibName="R_CSIn_Create" InUse="0" InitMode="" /> - <R_CSI01_Start UserName="R_CSI01_Start" LibName="R_CSIn_Start" InUse="0" /> - <R_CSI01_Stop UserName="R_CSI01_Stop" LibName="R_CSIn_Stop" InUse="0" /> - <R_CSI01_Send UserName="R_CSI01_Send" LibName="R_CSIn_Send" InUse="0" /> - <R_CSI01_Receive UserName="R_CSI01_Receive" LibName="R_CSIn_Receive" InUse="0" /> - <R_CSI01_Send_Receive UserName="R_CSI01_Send_Receive" LibName="R_CSIn_Send_Receive" InUse="0" /> - </CSI01> - <IIC00 InUse=""> - <R_IIC00_Create UserName="R_IIC00_Create" LibName="R_IICn_Create" InUse="0" InitMode="" /> - <R_IIC00_Master_Send UserName="R_IIC00_Master_Send" LibName="R_IICn_Master_Send" InUse="0" /> - <R_IIC00_Master_Receive UserName="R_IIC00_Master_Receive" LibName="R_IICn_Master_Receive" InUse="0" /> - <R_IIC00_Stop UserName="R_IIC00_Stop" LibName="R_IICn_Stop" InUse="0" /> - <R_IIC00_StartCondition UserName="R_IIC00_StartCondition" LibName="R_IICn_StartCondition" InUse="0" /> - <R_IIC00_StopCondition UserName="R_IIC00_StopCondition" LibName="R_IICn_StopCondition" InUse="0" /> - </IIC00> - <IIC01 InUse="" Chip="RL78F13_64pin,RL78F13_80pin,RL78F13_48pin,RL78F13_32pin" PIOR41="0"> - <R_IIC01_Create UserName="R_IIC01_Create" LibName="R_IICn_Create" InUse="0" InitMode="" /> - <R_IIC01_Master_Send UserName="R_IIC01_Master_Send" LibName="R_IICn_Master_Send" InUse="0" /> - <R_IIC01_Master_Receive UserName="R_IIC01_Master_Receive" LibName="R_IICn_Master_Receive" InUse="0" /> - <R_IIC01_Stop UserName="R_IIC01_Stop" LibName="R_IICn_Stop" InUse="0" /> - <R_IIC01_StartCondition UserName="R_IIC01_StartCondition" LibName="R_IICn_StartCondition" InUse="0" /> - <R_IIC01_StopCondition UserName="R_IIC01_StopCondition" LibName="R_IICn_StopCondition" InUse="0" /> - </IIC01> - </SAU0> - <SAU1 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" PIOR42="0" InUse=""> - <R_SAU1_Create UserName="R_SAU1_Create" LibName="R_SAUn_Create" InUse="0" Init="1" InitMode="" /> - <R_SAU1_Set_PowerOff UserName="R_SAU1_Set_PowerOff" LibName="R_SAUn_Set_PowerOff" InUse="0" /> - <UART1 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" PIOR42="0" InUse=""> - <R_UART1_Create UserName="R_UART1_Create" LibName="R_UARTn_Create" InUse="0" InitMode="" /> - <R_UART1_Start UserName="R_UART1_Start" LibName="R_UARTn_Start" InUse="0" /> - <R_UART1_Stop UserName="R_UART1_Stop" LibName="R_UARTn_Stop" InUse="0" /> - <R_UART1_Send UserName="R_UART1_Send" LibName="R_UARTn_Send" InUse="0" /> - <R_UART1_Receive UserName="R_UART1_Receive" LibName="R_UARTn_Receive" InUse="0" /> - </UART1> - <CSI10 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" InUse=""> - <R_CSI10_Create UserName="R_CSI10_Create" LibName="R_CSIn_Create" InUse="0" InitMode="" /> - <R_CSI10_Start UserName="R_CSI10_Start" LibName="R_CSIn_Start" InUse="0" /> - <R_CSI10_Stop UserName="R_CSI10_Stop" LibName="R_CSIn_Stop" InUse="0" /> - <R_CSI10_Send UserName="R_CSI10_Send" LibName="R_CSIn_Send" InUse="0" /> - <R_CSI10_Receive UserName="R_CSI10_Receive" LibName="R_CSIn_Receive" InUse="0" /> - <R_CSI10_Send_Receive UserName="R_CSI10_Send_Receive" LibName="R_CSIn_Send_Receive" InUse="0" /> - </CSI10> - <CSI11 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG" PIOR43="0" InUse=""> - <R_CSI11_Create UserName="R_CSI11_Create" LibName="R_CSIn_Create" InUse="0" InitMode="" /> - <R_CSI11_Start UserName="R_CSI11_Start" LibName="R_CSIn_Start" InUse="0" /> - <R_CSI11_Stop UserName="R_CSI11_Stop" LibName="R_CSIn_Stop" InUse="0" /> - <R_CSI11_Send UserName="R_CSI11_Send" LibName="R_CSIn_Send" InUse="0" /> - <R_CSI11_Receive UserName="R_CSI11_Receive" LibName="R_CSIn_Receive" InUse="0" /> - <R_CSI11_Send_Receive UserName="R_CSI11_Send_Receive" LibName="R_CSIn_Send_Receive" InUse="0" /> - </CSI11> - <IIC10 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" InUse=""> - <R_IIC10_Create UserName="R_IIC10_Create" LibName="R_IICn_Create" InUse="0" InitMode="" /> - <R_IIC10_Master_Send UserName="R_IIC10_Master_Send" LibName="R_IICn_Master_Send" InUse="0" /> - <R_IIC10_Master_Receive UserName="R_IIC10_Master_Receive" LibName="R_IICn_Master_Receive" InUse="0" /> - <R_IIC10_Stop UserName="R_IIC10_Stop" LibName="R_IICn_Stop" InUse="0" /> - <R_IIC10_StartCondition UserName="R_IIC10_StartCondition" LibName="R_IICn_StartCondition" InUse="0" /> - <R_IIC10_StopCondition UserName="R_IIC10_StopCondition" LibName="R_IICn_StopCondition" InUse="0" /> - </IIC10> - <IIC11 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG" PIOR43="0" InUse=""> - <R_IIC11_Create UserName="R_IIC11_Create" LibName="R_IICn_Create" InUse="0" InitMode="" /> - <R_IIC11_Master_Send UserName="R_IIC11_Master_Send" LibName="R_IICn_Master_Send" InUse="0" /> - <R_IIC11_Master_Receive UserName="R_IIC11_Master_Receive" LibName="R_IICn_Master_Receive" InUse="0" /> - <R_IIC11_Stop UserName="R_IIC11_Stop" LibName="R_IICn_Stop" InUse="0" /> - <R_IIC11_StartCondition UserName="R_IIC11_StartCondition" LibName="R_IICn_StartCondition" InUse="0" /> - <R_IIC11_StopCondition UserName="R_IIC11_StopCondition" LibName="R_IICn_StopCondition" InUse="0" /> - </IIC11> - </SAU1> - <IICA0 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" InUse=""> - <R_IICA0_Create UserName="R_IICA0_Create" LibName="R_IICAn_Create" InUse="0" Init="1" InitMode="" /> - <R_IICA0_Master_Send UserName="R_IICA0_Master_Send" LibName="R_IICAn_Master_Send" InUse="0" /> - <R_IICA0_Master_Receive UserName="R_IICA0_Master_Receive" LibName="R_IICAn_Master_Receive" InUse="0" /> - <R_IICA0_Slave_Send UserName="R_IICA0_Slave_Send" LibName="R_IICAn_Slave_Send" InUse="0" /> - <R_IICA0_Slave_Receive UserName="R_IICA0_Slave_Receive" LibName="R_IICAn_Slave_Receive" InUse="0" /> - <R_IICA0_Stop UserName="R_IICA0_Stop" LibName="R_IICAn_Stop" InUse="0" /> - <R_IICA0_StopCondition UserName="R_IICA0_StopCondition" LibName="R_IICAn_StopCondition" InUse="0" /> - <R_IICA0_Set_SnoozeOn UserName="R_IICA0_Set_SnoozeOn" LibName="R_IICAn_Set_SnoozeOn" InUse="0" /> - <R_IICA0_Set_SnoozeOff UserName="R_IICA0_Set_SnoozeOff" LibName="R_IICAn_Set_SnoozeOff" InUse="0" /> - <R_IICA0_Set_PowerOff UserName="R_IICA0_Set_PowerOff" LibName="R_IICAn_Set_PowerOff" InUse="0" /> - </IICA0> - </r_cg_serial.c> - <r_cg_serial_user.c UserName="r_cg_serial_user.c" LibName="_user.c" InUse="0"> - <Type R_SAUn_Create_UserInit="void R_SAUn_Create_UserInit(void)" r_uartn_interrupt_receive="__interrupt void r_uartn_interrupt_receive(void)" r_uartn_interrupt_error="__interrupt void r_uartn_interrupt_error(void)" r_uartn_interrupt_send="__interrupt void r_uartn_interrupt_send(void)" r_uartn_callback_sendend="void r_uartn_callback_sendend(void)" r_uartn_callback_receiveend="void r_uartn_callback_receiveend(void)" r_uartn_callback_error="void r_uartn_callback_error(uint16_t err_type)" r_uartn_callback_softwareoverrun="void r_uartn_callback_softwareoverrun(uint16_t err_type)" r_csin_interrupt="__interrupt void r_csin_interrupt(void)" r_csin_callback_receiveend="void r_csin_callback_receiveend(void)" r_csin_callback_error="void r_csin_callback_error(uint16_t err_type)" r_csin_callback_sendend="void r_csin_callback_sendend(void)" r_iicn_interrupt="__interrupt void r_iicn_interrupt(void)" r_iicn_callback_master_receiveend="void r_iicn_callback_master_receiveend(void)" r_iicn_callback_master_sendend="void r_iicn_callback_master_sendend(void)" r_iicn_callback_master_error="void r_iicn_callback_master_error(MD_STATUS flag)" R_UARTFn_Create_UserInit="void R_UARTFn_Create_UserInit(void)" r_uartfn_interrupt_receive="__interrupt static void r_uartfn_interrupt_receive(void)" r_uartfn_interrupt_error="__interrupt static void r_uartfn_interrupt_error(void)" r_uartfn_interrupt_send="__interrupt static void r_uartfn_interrupt_send(void)" r_uartfn_callback_receiveend="static void r_uartfn_callback_receiveend(void)" r_uartfn_callback_sendend="static void r_uartfn_callback_sendend(void)" r_uartfn_callback_error="static void r_uartfn_callback_error(void)" r_uartfn_callback_softwareoverrun="static void r_uartfn_callback_softwareoverrun(uint16_t rx_data)" r_uartfn_callback_expbitdetect="static void r_uartfn_callback_expbitdetect(void)" r_uartfn_callback_idmatch="static void r_uartfn_callback_idmatch(void)" R_IICAn_Create_UserInit="void R_IICAn_Create_UserInit(void)" r_iican_interrupt="__interrupt static r_iican_interrupt(void)" r_iican_callback_master_sendend="static void r_iican_callback_master_sendend(void)" r_iican_callback_master_receiveend="static void r_iican_callback_master_receiveend(void)" r_iican_callback_slave_sendend="static void r_iican_callback_slave_sendend(void)" r_iican_callback_slave_receiveend="static void r_iican_callback_slave_receiveend(void)" r_iican_callback_master_error="static void r_iican_callback_master_error(MD_STATUS flag)" r_iican_callback_slave_error="static void r_iican_callback_slave_error(MD_STATUS flag)" r_iican_callback_getstopcondition="static void r_iican_callback_getstopcondition(void)" /> - <SAU0 InUse=""> - <R_SAU0_Create_UserInit UserName="R_SAU0_Create_UserInit" LibName="R_SAUn_Create_UserInit" InUse="0" /> - <UART0 InUse=""> - <r_uart0_interrupt_receive UserName="r_uart0_interrupt_receive" INTHandle="" LibName="r_uartn_interrupt_receive" InUse="0" /> - <r_uart0_interrupt_send UserName="r_uart0_interrupt_send" INTHandle="" LibName="r_uartn_interrupt_send" InUse="0" /> - <r_uart0_callback_receiveend UserName="r_uart0_callback_receiveend" LibName="r_uartn_callback_receiveend" InUse="0" /> - <r_uart0_callback_sendend UserName="r_uart0_callback_sendend" LibName="r_uartn_callback_sendend" InUse="0" /> - <r_uart0_callback_error UserName="r_uart0_callback_error" LibName="r_uartn_callback_error" InUse="" /> - <r_uart0_callback_softwareoverrun UserName="r_uart0_callback_softwareoverrun" LibName="r_uartn_callback_softwareoverrun" InUse="0" /> - </UART0> - <CSI00 InUse=""> - <r_csi00_interrupt UserName="r_csi00_interrupt" INTHandle="" LibName="r_csin_interrupt" InUse="0" /> - <r_csi00_callback_receiveend UserName="r_csi00_callback_receiveend" LibName="r_csin_callback_receiveend" InUse="0" /> - <r_csi00_callback_error UserName="r_csi00_callback_error" LibName="r_csin_callback_error" InUse="0" /> - <r_csi00_callback_sendend UserName="r_csi00_callback_sendend" LibName="r_csin_callback_sendend" InUse="0" /> - </CSI00> - <CSI01 InUse="" Chip="RL78F13_64pin,RL78F13_80pin,RL78F13_48pin,RL78F13_32pin" PIOR41="0"> - <r_csi01_interrupt UserName="r_csi01_interrupt" INTHandle="" LibName="r_csin_interrupt" InUse="0" /> - <r_csi01_callback_receiveend UserName="r_csi01_callback_receiveend" LibName="r_csin_callback_receiveend" InUse="0" /> - <r_csi01_callback_error UserName="r_csi01_callback_error" LibName="r_csin_callback_error" InUse="0" /> - <r_csi01_callback_sendend UserName="r_csi01_callback_sendend" LibName="r_csin_callback_sendend" InUse="0" /> - </CSI01> - <IIC00 InUse=""> - <r_iic00_interrupt UserName="r_iic00_interrupt" INTHandle="" LibName="r_iicn_interrupt" InUse="0" /> - <r_iic00_callback_master_receiveend UserName="r_iic00_callback_master_receiveend" LibName="r_iicn_callback_master_receiveend" InUse="0" /> - <r_iic00_callback_master_sendend UserName="r_iic00_callback_master_sendend" LibName="r_iicn_callback_master_sendend" InUse="0" /> - <r_iic00_callback_master_error UserName="r_iic00_callback_master_error" LibName="r_iicn_callback_master_error" InUse="0" /> - </IIC00> - <IIC01 InUse="" Chip="RL78F13_64pin,RL78F13_80pin,RL78F13_48pin,RL78F13_32pin" PIOR41="0"> - <r_iic01_interrupt UserName="r_iic01_interrupt" INTHandle="" LibName="r_iicn_interrupt" InUse="0" /> - <r_iic01_callback_master_receiveend UserName="r_iic01_callback_master_receiveend" LibName="r_iicn_callback_master_receiveend" InUse="0" /> - <r_iic01_callback_master_sendend UserName="r_iic01_callback_master_sendend" LibName="r_iicn_callback_master_sendend" InUse="0" /> - <r_iic01_callback_master_error UserName="r_iic01_callback_master_error" LibName="r_iicn_callback_master_error" InUse="0" /> - </IIC01> - </SAU0> - <SAU1 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" PIOR42="0" InUse=""> - <R_SAU1_Create_UserInit UserName="R_SAU1_Create_UserInit" LibName="R_SAUn_Create_UserInit" InUse="0" /> - <UART1 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" InUse=""> - <r_uart1_interrupt_receive UserName="r_uart1_interrupt_receive" INTHandle="" LibName="r_uartn_interrupt_receive" InUse="0" /> - <r_uart1_interrupt_send UserName="r_uart1_interrupt_send" INTHandle="" LibName="r_uartn_interrupt_send" InUse="0" /> - <r_uart1_callback_receiveend UserName="r_uart1_callback_receiveend" LibName="r_uartn_callback_receiveend" InUse="0" /> - <r_uart1_callback_sendend UserName="r_uart1_callback_sendend" LibName="r_uartn_callback_sendend" InUse="0" /> - <r_uart1_callback_error UserName="r_uart1_callback_error" LibName="r_uartn_callback_error" InUse="" /> - <r_uart1_callback_softwareoverrun UserName="r_uart1_callback_softwareoverrun" LibName="r_uartn_callback_softwareoverrun" InUse="0" /> - </UART1> - <CSI10 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" InUse=""> - <r_csi10_interrupt UserName="r_csi10_interrupt" INTHandle="" LibName="r_csin_interrupt" InUse="0" /> - <r_csi10_callback_receiveend UserName="r_csi10_callback_receiveend" LibName="r_csin_callback_receiveend" InUse="0" /> - <r_csi10_callback_error UserName="r_csi10_callback_error" LibName="r_csin_callback_error" InUse="0" /> - <r_csi10_callback_sendend UserName="r_csi10_callback_sendend" LibName="r_csin_callback_sendend" InUse="0" /> - </CSI10> - <CSI11 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG" PIOR43="0" InUse=""> - <r_csi11_interrupt UserName="r_csi11_interrupt" INTHandle="" LibName="r_csin_interrupt" InUse="0" /> - <r_csi11_callback_receiveend UserName="r_csi11_callback_receiveend" LibName="r_csin_callback_receiveend" InUse="0" /> - <r_csi11_callback_error UserName="r_csi11_callback_error" LibName="r_csin_callback_error" InUse="0" /> - <r_csi11_callback_sendend UserName="r_csi11_callback_sendend" LibName="r_csin_callback_sendend" InUse="0" /> - </CSI11> - <IIC10 Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" InUse=""> - <r_iic10_interrupt UserName="r_iic10_interrupt" INTHandle="" LibName="r_iicn_interrupt" InUse="0" /> - <r_iic10_callback_master_receiveend UserName="r_iic10_callback_master_receiveend" LibName="r_iicn_callback_master_receiveend" InUse="0" /> - <r_iic10_callback_master_sendend UserName="r_iic10_callback_master_sendend" LibName="r_iicn_callback_master_sendend" InUse="0" /> - <r_iic10_callback_master_error UserName="r_iic10_callback_master_error" LibName="r_iicn_callback_master_error" InUse="0" /> - </IIC10> - <IIC11 Chip="RL78F13_80pin,R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG" PIOR43="0" InUse=""> - <r_iic11_interrupt UserName="r_iic11_interrupt" INTHandle="" LibName="r_iicn_interrupt" InUse="0" /> - <r_iic11_callback_master_receiveend UserName="r_iic11_callback_master_receiveend" LibName="r_iicn_callback_master_receiveend" InUse="0" /> - <r_iic11_callback_master_sendend UserName="r_iic11_callback_master_sendend" LibName="r_iicn_callback_master_sendend" InUse="0" /> - <r_iic11_callback_master_error UserName="r_iic11_callback_master_error" LibName="r_iicn_callback_master_error" InUse="0" /> - </IIC11> - </SAU1> - <IICA0 Chip="RL78F13_32pin,RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" InUse=""> - <R_IICA0_Create_UserInit UserName="R_IICA0_Create_UserInit" LibName="R_IICAn_Create_UserInit" InUse="0" /> - <r_iica0_interrupt UserName="r_iica0_interrupt" INTHandle="" LibName="r_iican_interrupt" InUse="0" /> - <r_iica0_callback_master_sendend UserName="r_iica0_callback_master_sendend" LibName="r_iican_callback_master_sendend" InUse="0" /> - <r_iica0_callback_master_receiveend UserName="r_iica0_callback_master_receiveend" LibName="r_iican_callback_master_receiveend" InUse="0" /> - <r_iica0_callback_slave_sendend UserName="r_iica0_callback_slave_sendend" LibName="r_iican_callback_slave_sendend" InUse="0" /> - <r_iica0_callback_slave_receiveend UserName="r_iica0_callback_slave_receiveend" LibName="r_iican_callback_slave_receiveend" InUse="0" /> - <r_iica0_callback_master_error UserName="r_iica0_callback_master_error" LibName="r_iican_callback_master_error" InUse="0" /> - <r_iica0_callback_slave_error UserName="r_iica0_callback_slave_error" LibName="r_iican_callback_slave_error" InUse="0" /> - <r_iica0_callback_getstopcondition UserName="r_iica0_callback_getstopcondition" LibName="r_iican_callback_getstopcondition" InUse="0" /> - </IICA0> - </r_cg_serial_user.c> - <r_cg_serial.h UserName="r_cg_serial.h" LibName=".h" InUse="0" /> - </Serial> - <ADC> - <r_cg_adc.c UserName="r_cg_adc.c" LibName=".c" InUse="1"> - <Type R_ADC_Create="void R_ADC_Create(void)" R_ADC_Start="void R_ADC_Start(void)" R_ADC_Stop="void R_ADC_Stop(void)" R_ADC_Set_OperationOn="void R_ADC_Set_OperationOn(void)" R_ADC_Set_OperationOff="void R_ADC_Set_OperationOff(void)" R_ADC_Get_Result="void R_ADC_Get_Result(uint16_t * const buffer)" R_ADC_Get_Result_8bit="void R_ADC_Get_Result_8bit(uint8_t * const buffer)" R_ADC_Set_ADChannel="MD_STATUS R_ADC_Set_ADChannel(ad_channel_t channel)" R_ADC_Set_SnoozeOn="void R_ADC_Set_SnoozeOn(void)" R_ADC_Set_SnoozeOff="void R_ADC_Set_SnoozeOff(void)" R_ADC_Set_TestChannel="MD_STATUS R_ADC_Set_TestChannel(test_channel_t channel)" R_ADC_Set_PowerOff="void R_ADC_Set_PowerOff(void)" /> - <R_ADC_Create UserName="R_ADC_Create" LibName="R_ADC_Create" InUse="1" Init="1" InitMode="" /> - <R_ADC_Start UserName="R_ADC_Start" LibName="R_ADC_Start" InUse="1" /> - <R_ADC_Stop UserName="R_ADC_Stop" LibName="R_ADC_Stop" InUse="1" /> - <R_ADC_Set_OperationOn UserName="R_ADC_Set_OperationOn" LibName="R_ADC_Set_OperationOn" InUse="1" /> - <R_ADC_Set_OperationOff UserName="R_ADC_Set_OperationOff" LibName="R_ADC_Set_OperationOff" InUse="1" /> - <R_ADC_Get_Result UserName="R_ADC_Get_Result" LibName="R_ADC_Get_Result" InUse="1" /> - <R_ADC_Get_Result_8bit UserName="R_ADC_Get_Result_8bit" LibName="R_ADC_Get_Result_8bit" InUse="0" /> - <R_ADC_Set_ADChannel UserName="R_ADC_Set_ADChannel" LibName="R_ADC_Set_ADChannel" InUse="0" /> - <R_ADC_Set_SnoozeOn UserName="R_ADC_Set_SnoozeOn" LibName="R_ADC_Set_SnoozeOn" InUse="0" /> - <R_ADC_Set_SnoozeOff UserName="R_ADC_Set_SnoozeOff" LibName="R_ADC_Set_SnoozeOff" InUse="0" /> - <R_ADC_Set_TestChannel UserName="R_ADC_Set_TestChannel" LibName="R_ADC_Set_TestChannel" InUse="0" /> - <R_ADC_Set_PowerOff UserName="R_ADC_Set_PowerOff" LibName="R_ADC_Set_PowerOff" InUse="0" /> - </r_cg_adc.c> - <r_cg_adc_user.c UserName="r_cg_adc_user.c" LibName="_user.c" InUse="1"> - <Type R_ADC_Create_UserInit="void R_ADC_Create_UserInit(void)" r_adc_interrupt="__interrupt static void r_adc_interrupt(void)" /> - <R_ADC_Create_UserInit UserName="R_ADC_Create_UserInit" LibName="R_ADC_Create_UserInit" InUse="0" /> - <r_adc_interrupt UserName="r_adc_interrupt" INTHandle="" LibName="r_adc_interrupt" InUse="0" /> - </r_cg_adc_user.c> - <r_cg_adc.h UserName="r_cg_adc.h" LibName=".h" InUse="1" /> - </ADC> - <TAU> - <r_cg_timer.c UserName="r_cg_timer.c" LibName=".c" InUse="1"> - <Type R_TAU_Create="void R_TAU_Create(void)" R_TAU_Set_PowerOff="void R_TAU_Set_PowerOff(void)" R_TAU_Channeln_Start="void R_TAU_Channeln_Start(void)" R_TAU_Channeln_Higher8bits_Start="void R_TAU_Channeln_Higher8bits_Start(void)" R_TAU_Channeln_Lower8bits_Start="void R_TAU_Channeln_Lower8bits_Start(void)" R_TAU_Channeln_Stop="void R_TAU_Channeln_Stop(void)" R_TAU_Channeln_Higher8bits_Stop="void R_TAU_Channeln_Higher8bits_Stop(void)" R_TAU_Channeln_Lower8bits_Stop="void R_TAU_Channeln_Lower8bits_Stop(void)" R_TAU_Channeln_Get_PulseWidth="void R_TAU_Channeln_Get_PulseWidth(uint32_t * const width)" R_TAU_Channeln_Set_SoftwareTriggerOn="void R_TAU_Channeln_Set_SoftwareTriggerOn(void)" R_WUTM_Create="void R_WUTM_Create(void)" R_WUTM_Start="void R_WUTM_Start(void)" R_WUTM_Stop="void R_WUTM_Stop(void)" R_WUTM_Set_PowerOff="void R_WUTM_Set_PowerOff(void)" /> - <TAU0> - <R_TAU0_Create UserName="R_TAU0_Create" LibName="R_TAU_Create" InUse="1" Init="1" InitMode="" /> - <R_TAU0_Set_PowerOff UserName="R_TAU0_Set_PowerOff" LibName="R_TAU_Set_PowerOff" InUse="0" /> - <Channel0 InUse=""> - <R_TAU0_Channel0_Start UserName="R_TAU0_Channel0_Start" LibName="R_TAU_Channeln_Start" InUse="1" /> - <R_TAU0_Channel0_Stop UserName="R_TAU0_Channel0_Stop" LibName="R_TAU_Channeln_Stop" InUse="1" /> - <R_TAU0_Channel0_Get_PulseWidth Chip="RL78F13_48pin,RL78F13_64pin" PIOR00="0" UserName="R_TAU0_Channel0_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - <R_TAU0_Channel0_Set_SoftwareTriggerOn UserName="R_TAU0_Channel0_Set_SoftwareTriggerOn" LibName="R_TAU_Channeln_Set_SoftwareTriggerOn" InUse="0" /> - </Channel0> - <Channel1 InUse=""> - <R_TAU0_Channel1_Start UserName="R_TAU0_Channel1_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU0_Channel1_Higher8bits_Start UserName="R_TAU0_Channel1_Higher8bits_Start" LibName="R_TAU_Channeln_Higher8bits_Start" InUse="0" /> - <R_TAU0_Channel1_Lower8bits_Start UserName="R_TAU0_Channel1_Lower8bits_Start" LibName="R_TAU_Channeln_Lower8bits_Start" InUse="0" /> - <R_TAU0_Channel1_Stop UserName="R_TAU0_Channel1_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU0_Channel1_Higher8bits_Stop UserName="R_TAU0_Channel1_Higher8bits_Stop" LibName="R_TAU_Channeln_Higher8bits_Stop" InUse="0" /> - <R_TAU0_Channel1_Lower8bits_Stop UserName="R_TAU0_Channel1_Lower8bits_Stop" LibName="R_TAU_Channeln_Lower8bits_Stop" InUse="0" /> - <R_TAU0_Channel1_Get_PulseWidth UserName="R_TAU0_Channel1_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - </Channel1> - <Channel2 InUse=""> - <R_TAU0_Channel2_Start UserName="R_TAU0_Channel2_Start" LibName="R_TAU_Channeln_Start" InUse="1" /> - <R_TAU0_Channel2_Stop UserName="R_TAU0_Channel2_Stop" LibName="R_TAU_Channeln_Stop" InUse="1" /> - <R_TAU0_Channel2_Get_PulseWidth Chip="RL78F13_48pin,RL78F13_64pin" PIOR02="0" UserName="R_TAU0_Channel2_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - <R_TAU0_Channel2_Set_SoftwareTriggerOn UserName="R_TAU0_Channel2_Set_SoftwareTriggerOn" LibName="R_TAU_Channeln_Set_SoftwareTriggerOn" InUse="0" /> - </Channel2> - <Channel3 InUse=""> - <R_TAU0_Channel3_Start UserName="R_TAU0_Channel3_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU0_Channel3_Higher8bits_Start UserName="R_TAU0_Channel3_Higher8bits_Start" LibName="R_TAU_Channeln_Higher8bits_Start" InUse="0" /> - <R_TAU0_Channel3_Lower8bits_Start UserName="R_TAU0_Channel3_Lower8bits_Start" LibName="R_TAU_Channeln_Lower8bits_Start" InUse="0" /> - <R_TAU0_Channel3_Stop UserName="R_TAU0_Channel3_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU0_Channel3_Higher8bits_Stop UserName="R_TAU0_Channel3_Higher8bits_Stop" LibName="R_TAU_Channeln_Higher8bits_Stop" InUse="0" /> - <R_TAU0_Channel3_Lower8bits_Stop UserName="R_TAU0_Channel3_Lower8bits_Stop" LibName="R_TAU_Channeln_Lower8bits_Stop" InUse="0" /> - <R_TAU0_Channel3_Get_PulseWidth Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" PIOR03="0" UserName="R_TAU0_Channel3_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - </Channel3> - <Channel4 InUse=""> - <R_TAU0_Channel4_Start UserName="R_TAU0_Channel4_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU0_Channel4_Stop UserName="R_TAU0_Channel4_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU0_Channel4_Get_PulseWidth Chip="RL78F13_48pin,RL78F13_64pin" UserName="R_TAU0_Channel4_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - <R_TAU0_Channel4_Set_SoftwareTriggerOn UserName="R_TAU0_Channel4_Set_SoftwareTriggerOn" LibName="R_TAU_Channeln_Set_SoftwareTriggerOn" InUse="0" /> - </Channel4> - <Channel5 InUse=""> - <R_TAU0_Channel5_Start UserName="R_TAU0_Channel5_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU0_Channel5_Stop UserName="R_TAU0_Channel5_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU0_Channel5_Get_PulseWidth Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" UserName="R_TAU0_Channel5_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - </Channel5> - <Channel6 InUse=""> - <R_TAU0_Channel6_Start UserName="R_TAU0_Channel6_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU0_Channel6_Stop UserName="R_TAU0_Channel6_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU0_Channel6_Get_PulseWidth UserName="R_TAU0_Channel6_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - <R_TAU0_Channel6_Set_SoftwareTriggerOn Chip="RL78F13_48pin,RL78F13_64pin" PIOR17="0" UserName="R_TAU0_Channel6_Set_SoftwareTriggerOn" LibName="R_TAU_Channeln_Set_SoftwareTriggerOn" InUse="0" /> - </Channel6> - <Channel7 InUse=""> - <R_TAU0_Channel7_Start UserName="R_TAU0_Channel7_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU0_Channel7_Stop UserName="R_TAU0_Channel7_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU0_Channel7_Get_PulseWidth UserName="R_TAU0_Channel7_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - </Channel7> - </TAU0> - <TAU1 Chip="groupb,groupc1,groupc2"> - <R_TAU1_Create UserName="R_TAU1_Create" LibName="R_TAU_Create" InUse="0" Init="1" InitMode="" /> - <R_TAU1_Set_PowerOff UserName="R_TAU1_Set_PowerOff" LibName="R_TAU_Set_PowerOff" InUse="0" /> - <Channel0 InUse=""> - <R_TAU1_Channel0_Start UserName="R_TAU1_Channel0_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU1_Channel0_Stop UserName="R_TAU1_Channel0_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU1_Channel0_Get_PulseWidth Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" UserName="R_TAU1_Channel0_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - <R_TAU1_Channel0_Set_SoftwareTriggerOn UserName="R_TAU1_Channel0_Set_SoftwareTriggerOn" LibName="R_TAU_Channeln_Set_SoftwareTriggerOn" InUse="0" /> - </Channel0> - <Channel1 InUse=""> - <R_TAU1_Channel1_Start UserName="R_TAU1_Channel1_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU1_Channel1_Higher8bits_Start UserName="R_TAU1_Channel1_Higher8bits_Start" LibName="R_TAU_Channeln_Higher8bits_Start" InUse="0" /> - <R_TAU1_Channel1_Lower8bits_Start UserName="R_TAU1_Channel1_Lower8bits_Start" LibName="R_TAU_Channeln_Lower8bits_Start" InUse="0" /> - <R_TAU1_Channel1_Stop UserName="R_TAU1_Channel1_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU1_Channel1_Higher8bits_Stop UserName="R_TAU1_Channel1_Higher8bits_Stop" LibName="R_TAU_Channeln_Higher8bits_Stop" InUse="0" /> - <R_TAU1_Channel1_Lower8bits_Stop UserName="R_TAU1_Channel1_Lower8bits_Stop" LibName="R_TAU_Channeln_Lower8bits_Stop" InUse="0" /> - <R_TAU1_Channel1_Get_PulseWidth Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" UserName="R_TAU1_Channel1_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - </Channel1> - <Channel2 InUse=""> - <R_TAU1_Channel2_Start UserName="R_TAU1_Channel2_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU1_Channel2_Stop UserName="R_TAU1_Channel2_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU1_Channel2_Get_PulseWidth Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" UserName="R_TAU1_Channel2_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - <R_TAU1_Channel2_Set_SoftwareTriggerOn UserName="R_TAU1_Channel2_Set_SoftwareTriggerOn" LibName="R_TAU_Channeln_Set_SoftwareTriggerOn" InUse="0" /> - </Channel2> - <Channel3 InUse=""> - <R_TAU1_Channel3_Start UserName="R_TAU1_Channel3_Start" LibName="R_TAU_Channeln_Start" InUse="0" /> - <R_TAU1_Channel3_Higher8bits_Start UserName="R_TAU1_Channel3_Higher8bits_Start" LibName="R_TAU_Channeln_Higher8bits_Start" InUse="0" /> - <R_TAU1_Channel3_Lower8bits_Start UserName="R_TAU1_Channel3_Lower8bits_Start" LibName="R_TAU_Channeln_Lower8bits_Start" InUse="0" /> - <R_TAU1_Channel3_Stop UserName="R_TAU1_Channel3_Stop" LibName="R_TAU_Channeln_Stop" InUse="0" /> - <R_TAU1_Channel3_Higher8bits_Stop UserName="R_TAU1_Channel3_Higher8bits_Stop" LibName="R_TAU_Channeln_Higher8bits_Stop" InUse="0" /> - <R_TAU1_Channel3_Lower8bits_Stop UserName="R_TAU1_Channel3_Lower8bits_Stop" LibName="R_TAU_Channeln_Lower8bits_Stop" InUse="0" /> - <R_TAU1_Channel3_Get_PulseWidth Chip="R5F10ALF,R5F10ALG,R5F10AGF,R5F10AGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BAC,R5F10BAD,R5F10BAE,R5F10BAF,R5F10BAG" UserName="R_TAU1_Channel3_Get_PulseWidth" LibName="R_TAU_Channeln_Get_PulseWidth" InUse="0" /> - </Channel3> - </TAU1> - <TMRJ0 InUse=""> - <R_TMR_RJ0_Create UserName="R_TMR_RJ0_Create" LibName="R_TMR_RJn_Create" InUse="0" Init="2" InitMode="" /> - <R_TMR_RJ0_Start UserName="R_TMR_RJ0_Start" LibName="R_TMR_RJn_Start" InUse="0" /> - <R_TMR_RJ0_Stop UserName="R_TMR_RJ0_Stop" LibName="R_TMR_RJn_Stop" InUse="0" /> - <R_TMR_RJ0_Get_PulseWidth Chip="RL78F13_80pin,RL78F13_64pin,RL78F13_48pin,RL78F13_32pin,RL78F13_30pin" UserName="R_TMR_RJ0_Get_PulseWidth" LibName="R_TMR_RJn_Get_PulseWidth" InUse="0" /> - <R_TMR_RJ0_Set_PowerOff UserName="R_TMR_RJ0_Set_PowerOff" LibName="R_TMR_RJn_Set_PowerOff" InUse="0" /> - </TMRJ0> - <TMRD0 InUse=""> - <R_TMR_RD0_Create UserName="R_TMR_RD0_Create" LibName="R_TMR_RDn_Create" InUse="0" Init="2" InitMode="" /> - <R_TMR_RD0_Start UserName="R_TMR_RD0_Start" LibName="R_TMR_RDn_Start" InUse="0" /> - <R_TMR_RD0_Stop UserName="R_TMR_RD0_Stop" LibName="R_TMR_RDn_Stop" InUse="0" /> - <R_TMR_RD0_Get_PulseWidth UserName="R_TMR_RD0_Get_PulseWidth" LibName="R_TMR_RDn_Get_PulseWidth" InUse="0" /> - <R_TMR_RD0_Set_PowerOff UserName="R_TMR_RD0_Set_PowerOff" LibName="R_TMR_RDn_Set_PowerOff" InUse="0" /> - <R_TMR_RD0_ForcedOutput_Start UserName="R_TMR_RD0_ForcedOutput_Start" LibName="R_TMR_RDn_ForcedOutput_Start" InUse="0" /> - <R_TMR_RD0_ForcedOutput_Stop UserName="R_TMR_RD0_ForcedOutput_Stop" LibName="R_TMR_RDn_ForcedOutput_Stop" InUse="0" /> - </TMRD0> - <TMRD1 InUse=""> - <R_TMR_RD1_Create UserName="R_TMR_RD1_Create" LibName="R_TMR_RDn_Create" InUse="0" Init="2" InitMode="" /> - <R_TMR_RD1_Start UserName="R_TMR_RD1_Start" LibName="R_TMR_RDn_Start" InUse="0" /> - <R_TMR_RD1_Stop UserName="R_TMR_RD1_Stop" LibName="R_TMR_RDn_Stop" InUse="0" /> - <R_TMR_RD1_Get_PulseWidth UserName="R_TMR_RD1_Get_PulseWidth" LibName="R_TMR_RDn_Get_PulseWidth" InUse="0" /> - <R_TMR_RD1_Set_PowerOff UserName="R_TMR_RD1_Set_PowerOff" LibName="R_TMR_RDn_Set_PowerOff" InUse="0" /> - <R_TMR_RD1_ForcedOutput_Start UserName="R_TMR_RD1_ForcedOutput_Start" LibName="R_TMR_RDn_ForcedOutput_Start" InUse="0" /> - <R_TMR_RD1_ForcedOutput_Stop UserName="R_TMR_RD1_ForcedOutput_Stop" LibName="R_TMR_RDn_ForcedOutput_Stop" InUse="0" /> - </TMRD1> - </r_cg_timer.c> - <r_cg_timer_user.c UserName="r_cg_timer_user.c" LibName="_user.c" InUse="1"> - <Type R_TAU_Create_UserInit="void R_TAUn_Create_UserInit(void)" r_tau_channeln_interrupt="__interrupt static void r_tau_channeln_interrupt(void)" r_tau_channeln_higher8bits_interrupt="__interrupt static void r_tau_channeln_higher8bits_interrupt(void)" R_WUTM_Create_UserInit="void R_WUTM_Create_UserInit(void)" r_wutm_interrupt="__interrupt static void r_wutm_interrupt(void)" /> - <TAU0> - <R_TAU0_Create_UserInit UserName="R_TAU0_Create_UserInit" LibName="R_TAU_Create_UserInit" InUse="0" /> - <Channel0 InUse=""> - <r_tau0_channel0_interrupt UserName="r_tau0_channel0_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel0> - <Channel1 InUse=""> - <r_tau0_channel1_interrupt UserName="r_tau0_channel1_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - <r_tau0_channel1_higher8bits_interrupt UserName="r_tau0_channel1_higher8bits_interrupt" INTHandle="" LibName="r_tau_channeln_higher8bits_interrupt" InUse="0" /> - </Channel1> - <Channel2 InUse=""> - <r_tau0_channel2_interrupt UserName="r_tau0_channel2_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="1" /> - </Channel2> - <Channel3 InUse=""> - <r_tau0_channel3_interrupt UserName="r_tau0_channel3_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - <r_tau0_channel3_higher8bits_interrupt UserName="r_tau0_channel3_higher8bits_interrupt" INTHandle="" LibName="r_tau_channeln_higher8bits_interrupt" InUse="0" /> - </Channel3> - <Channel4 InUse=""> - <r_tau0_channel4_interrupt UserName="r_tau0_channel4_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel4> - <Channel5 InUse=""> - <r_tau0_channel5_interrupt UserName="r_tau0_channel5_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel5> - <Channel6 InUse=""> - <r_tau0_channel6_interrupt UserName="r_tau0_channel6_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel6> - <Channel7 InUse=""> - <r_tau0_channel7_interrupt UserName="r_tau0_channel7_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel7> - </TAU0> - <TAU1 Chip="groupb,groupc1,groupc2"> - <R_TAU1_Create_UserInit UserName="R_TAU1_Create_UserInit" LibName="R_TAU_Create_UserInit" InUse="0" /> - <Channel0 InUse=""> - <r_tau1_channel0_interrupt UserName="r_tau1_channel0_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel0> - <Channel1 InUse=""> - <r_tau1_channel1_interrupt UserName="r_tau1_channel1_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - <r_tau1_channel1_higher8bits_interrupt UserName="r_tau1_channel1_higher8bits_interrupt" INTHandle="" LibName="r_tau_channeln_higher8bits_interrupt" InUse="0" /> - </Channel1> - <Channel2 InUse=""> - <r_tau1_channel2_interrupt UserName="r_tau1_channel2_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - </Channel2> - <Channel3 InUse=""> - <r_tau1_channel3_interrupt UserName="r_tau1_channel3_interrupt" INTHandle="" LibName="r_tau_channeln_interrupt" InUse="0" /> - <r_tau1_channel3_higher8bits_interrupt UserName="r_tau1_channel3_higher8bits_interrupt" INTHandle="" LibName="r_tau_channeln_higher8bits_interrupt" InUse="0" /> - </Channel3> - </TAU1> - <TMRJ0 InUse=""> - <R_TMR_RJ0_Create_UserInit UserName="R_TMR_RJ0_Create_UserInit" LibName="R_TMR_RJn_Create_UserInit" InUse="0" /> - <r_tmr_rj0_interrupt UserName="r_tmr_rj0_interrupt" LibName="r_tmr_rjn_interrupt" INTHandle="" InUse="0" /> - </TMRJ0> - <TMRD0 InUse=""> - <R_TMR_RD0_Create_UserInit UserName="R_TMR_RD0_Create_UserInit" LibName="R_TMR_RDn_Create_UserInit" InUse="0" /> - <r_tmr_rd0_interrupt UserName="r_tmr_rd0_interrupt" LibName="r_tmr_rdn_interrupt" INTHandle="" InUse="0" /> - </TMRD0> - <TMRD1 InUse=""> - <R_TMR_RD1_Create_UserInit UserName="R_TMR_RD1_Create_UserInit" LibName="R_TMR_RDn_Create_UserInit" InUse="0" /> - <r_tmr_rd1_interrupt UserName="r_tmr_rd1_interrupt" LibName="r_tmr_rdn_interrupt" INTHandle="" InUse="0" /> - </TMRD1> - </r_cg_timer_user.c> - <r_cg_timer.h UserName="r_cg_timer.h" LibName=".h" InUse="1" /> - </TAU> - <WDT> - <r_cg_wdt.c UserName="r_cg_wdt.c" LibName=".c" InUse="1"> - <Type R_WDT_Create="void R_WDT_Create(void)" R_WDT_Restart="void R_WDT_Restart(void)" /> - <R_WDT_Create UserName="R_WDT_Create" LibName="R_WDT_Create" InUse="1" Init="1" InitMode="" /> - <R_WDT_Restart UserName="R_WDT_Restart" LibName="R_WDT_Restart" InUse="1" /> - </r_cg_wdt.c> - <r_cg_wdt_user.c UserName="r_cg_wdt_user.c" LibName="_user.c" InUse="1"> - <Type R_WDT_Create_UserInit="void R_WDT_Create_UserInit(void)" r_wdt_interrupt="__interrupt static void r_wdt_interrupt(void)" /> - <R_WDT_Create_UserInit UserName="R_WDT_Create_UserInit" LibName="R_WDT_Create_UserInit" InUse="0" /> - <r_wdt_interrupt UserName="r_wdt_interrupt" INTHandle="" LibName="r_wdt_interrupt" InUse="1" /> - </r_cg_wdt_user.c> - <r_cg_wdt.h UserName="r_cg_wdt.h" LibName=".h" InUse="1" /> - </WDT> - <RTC> - <r_cg_rtc.c UserName="r_cg_rtc.c" LibName=".c" InUse=""> - <Type R_RTC_Create="void R_RTC_Create(void)" R_RTC_Start="void R_RTC_Start(void)" R_RTC_Stop="void R_RTC_Stop(void)" R_RTC_Set_HourSystem="MD_STATUS R_RTC_SetHourSystem(rtc_hour_system_t hour_system)" R_RTC_Get_CounterValue="MD_STATUS R_RTC_Get_CounterValue(rtc_counter_value_t * const counter_read_val)" R_RTC_Set_CounterValue="MD_STATUS R_RTC_Set_CounterValue(rtc_counter_value_t counter_write_val)" R_RTC_Set_AlarmOn="void R_RTC_Set_AlarmOn(void)" R_RTC_Set_AlarmOff="void R_RTC_Set_AlarmOff(void)" R_RTC_Set_AlarmValue="void R_RTC_Set_AlarmValue(rtc_alarm_value_t alarm_val)" R_RTC_Get_AlarmValue="void R_RTC_Get_AlarmValue(rtc_alarm_value_t * const alarm_val)" R_RTC_Set_ConstPeriodInterruptOn="MD_STATUS R_RTC_Set_ConstPeriodInterruptOn(rtc_int_period_t period)" R_RTC_Set_ConstPeriodInterruptOff="void R_RTC_Set_ConstPeriodInterruptOff(void)" R_RTC_Set_RTC1HZOn="void R_RTC_Set_RTC1HZOn(void)" R_RTC_Set_RTC1HZOff="void R_RTC_Set_RTC1HZOff(void)" R_RTC_Set_PowerOff="void R_RTC_Set_PowerOff(void)" /> - <R_RTC_Create UserName="R_RTC_Create" LibName="R_RTC_Create" InUse="" Init="1" InitMode="" /> - <R_RTC_Start UserName="R_RTC_Start" LibName="R_RTC_Start" InUse="" /> - <R_RTC_Stop UserName="R_RTC_Stop" LibName="R_RTC_Stop" InUse="" /> - <R_RTC_Set_HourSystem UserName="R_RTC_Set_HourSystem" LibName="R_RTC_Set_HourSystem" InUse="" /> - <R_RTC_Get_CounterValue UserName="R_RTC_Get_CounterValue" LibName="R_RTC_Get_CounterValue" InUse="" /> - <R_RTC_Set_CounterValue UserName="R_RTC_Set_CounterValue" LibName="R_RTC_Set_CounterValue" InUse="" /> - <R_RTC_Set_AlarmOn UserName="R_RTC_Set_AlarmOn" LibName="R_RTC_Set_AlarmOn" InUse="" /> - <R_RTC_Set_AlarmOff UserName="R_RTC_Set_AlarmOff" LibName="R_RTC_Set_AlarmOff" InUse="" /> - <R_RTC_Set_AlarmValue UserName="R_RTC_Set_AlarmValue" LibName="R_RTC_Set_AlarmValue" InUse="" /> - <R_RTC_Get_AlarmValue UserName="R_RTC_Get_AlarmValue" LibName="R_RTC_Get_AlarmValue" InUse="" /> - <R_RTC_Set_ConstPeriodInterruptOn UserName="R_RTC_Set_ConstPeriodInterruptOn" LibName="R_RTC_Set_ConstPeriodInterruptOn" InUse="" /> - <R_RTC_Set_ConstPeriodInterruptOff UserName="R_RTC_Set_ConstPeriodInterruptOff" LibName="R_RTC_Set_ConstPeriodInterruptOff" InUse="" /> - <R_RTC_Set_RTC1HZOn UserName="R_RTC_Set_RTC1HZOn" LibName="R_RTC_Set_RTC1HZOn" InUse="" /> - <R_RTC_Set_RTC1HZOff UserName="R_RTC_Set_RTC1HZOff" LibName="R_RTC_Set_RTC1HZOff" InUse="" /> - <R_RTC_Set_PowerOff UserName="R_RTC_Set_PowerOff" LibName="R_RTC_Set_PowerOff" InUse="" /> - </r_cg_rtc.c> - <r_cg_rtc_user.c UserName="r_cg_rtc_user.c" LibName="_user.c" InUse=""> - <Type R_RTC_Create_UserInit="void R_RTC_Create_UserInit(void)" r_rtc_interrupt="__interrupt static void r_rtc_interrupt(void)" r_rtc_callback_constperiod="static void r_rtc_callback_constperiod(void)" r_rtc_callback_alarm="static void r_rtc_callback_alarm(void)" /> - <R_RTC_Create_UserInit UserName="R_RTC_Create_UserInit" LibName="R_RTC_Create_UserInit" InUse="" /> - <r_rtc_interrupt UserName="r_rtc_interrupt" INTHandle="" LibName="r_rtc_interrupt" InUse="" /> - <r_rtc_callback_constperiod UserName="r_rtc_callback_constperiod" LibName="r_rtc_callback_constperiod" InUse="" /> - <r_rtc_callback_alarm UserName="r_rtc_callback_alarm" LibName="r_rtc_callback_alarm" InUse="" /> - </r_cg_rtc_user.c> - <r_cg_rtc.h UserName="r_cg_rtc.h" LibName=".h" InUse="" /> - </RTC> - <DTC InUse=""> - <r_cg_dtc.c UserName="r_cg_dtc.c" LibName=".c" InUse=""> - <Type R_DTC_Create="void R_DTC_Create(void)" R_DTCDn_Start="void R_DTCDn_Start(void)" R_DTCDn_Stop="void R_DTCDn_Stop(void)" R_DTC_Set_PowerOff="void R_DTC_Set_PowerOff(void)" /> - <R_DTC_Create UserName="R_DTC_Create" LibName="R_DTC_Create" InUse="" Init="2" InitMode="" /> - <DTCD0> - <R_DTCD0_Start LibName="R_DTCDn_Start" InUse="" Visible="False" /> - <R_DTCD0_Stop LibName="R_DTCDn_Stop" InUse="" Visible="False" /> - </DTCD0> - <DTCD1> - <R_DTCD1_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD1_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD1> - <DTCD2> - <R_DTCD2_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD2_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD2> - <DTCD3> - <R_DTCD3_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD3_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD3> - <DTCD4> - <R_DTCD4_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD4_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD4> - <DTCD5> - <R_DTCD5_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD5_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD5> - <DTCD6> - <R_DTCD6_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD6_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD6> - <DTCD7> - <R_DTCD7_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD7_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD7> - <DTCD8> - <R_DTCD8_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD8_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD8> - <DTCD9> - <R_DTCD9_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD9_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD9> - <DTCD10> - <R_DTCD10_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD10_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD10> - <DTCD11> - <R_DTCD11_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD11_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD11> - <DTCD12> - <R_DTCD12_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD12_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD12> - <DTCD13> - <R_DTCD13_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD13_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD13> - <DTCD14> - <R_DTCD14_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD14_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD14> - <DTCD15> - <R_DTCD15_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD15_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD15> - <DTCD16> - <R_DTCD16_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD16_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD16> - <DTCD17> - <R_DTCD17_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD17_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD17> - <DTCD18> - <R_DTCD18_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD18_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD18> - <DTCD19> - <R_DTCD19_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD19_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD19> - <DTCD20> - <R_DTCD20_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD20_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD20> - <DTCD21> - <R_DTCD21_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD21_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD21> - <DTCD22> - <R_DTCD22_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD22_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD22> - <DTCD23> - <R_DTCD23_Start LibName="R_DTCDn_Start" InUse="" Visible="false" /> - <R_DTCD23_Stop LibName="R_DTCDn_Stop" InUse="" Visible="false" /> - </DTCD23> - <DTCH0> - <R_DTCH0_Start LibName="R_DTCHn_Start" InUse="" Visible="false" /> - <R_DTCH0_Stop LibName="R_DTCHn_Stop" InUse="" Visible="false" /> - </DTCH0> - <DTCH1> - <R_DTCH1_Start LibName="R_DTCHn_Start" InUse="" Visible="false" /> - <R_DTCH1_Stop LibName="R_DTCHn_Stop" InUse="" Visible="false" /> - </DTCH1> - <R_DTC_Set_PowerOff UserName="R_DTC_Set_PowerOff" LibName="R_DTC_Set_PowerOff" InUse="" /> - </r_cg_dtc.c> - <r_cg_dtc_user.c UserName="r_cg_dtc_user.c" LibName="_user.c" InUse=""> - <Type R_DTC_Create_UserInit="void R_DTC_Create_UserInit(void)" /> - <R_DTC_Create_UserInit UserName="R_DTC_Create_UserInit" LibName="R_DTC_Create_UserInit" InUse="" /> - </r_cg_dtc_user.c> - <r_cg_dtc.h UserName="r_cg_dtc.h" LibName=".h" InUse="" /> - </DTC> - <PCLBUZ Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin"> - <r_cg_pclbuz.c UserName="r_cg_pclbuz.c" LibName=".c" InUse=""> - <Type R_PCLBUZn_Create="void R_PCLBUZn_Create(void) " R_PCLBUZn_Start="void R_PCLBUZn_Start(void)" R_PCLBUZn_Stop="void R_PCLBUZn_Stop(void)" /> - <PCLBUZ0 InUse=""> - <R_PCLBUZ0_Create UserName="R_PCLBUZ0_Create" LibName="R_PCLBUZn_Create" InUse="" Init="1" InitMode="" /> - <R_PCLBUZ0_Start UserName="R_PCLBUZ0_Start" LibName="R_PCLBUZn_Start" InUse="" /> - <R_PCLBUZ0_Stop UserName="R_PCLBUZ0_Stop" LibName="R_PCLBUZn_Stop" InUse="" /> - </PCLBUZ0> - </r_cg_pclbuz.c> - <r_cg_pclbuz_user.c UserName="r_cg_pclbuz_user.c" LibName="_user.c" InUse=""> - <Type R_PCLBUZn_Create_UserInit="void R_PCLBUZn_Create_UserInit(void) " /> - <PCLBUZ0 InUse=""> - <R_PCLBUZ0_Create_UserInit UserName="R_PCLBUZ0_Create_UserInit" LibName="R_PCLBUZn_Create_UserInit" InUse="" Init="1" /> - </PCLBUZ0> - </r_cg_pclbuz_user.c> - <r_cg_pclbuz.h UserName="r_cg_pclbuz.h" LibName=".h" InUse="" /> - </PCLBUZ> - <LVD> - <r_cg_lvd.c UserName="r_cg_lvd.c" LibName=".c" InUse="0"> - <Type R_LVD_Create="void R_LVD_Create(void)" R_LVD_InterruptMode_Start="void R_LVD_InterruptMode_Start(void)" /> - <R_LVD_Create UserName="R_LVD_Create" LibName="R_LVD_Create" InUse="0" Init="1" InitMode="" /> - <R_LVD_InterruptMode_Start UserName="R_LVD_InterruptMode_Start" LibName="R_LVD_InterruptMode_Start" InUse="0" /> - </r_cg_lvd.c> - <r_cg_lvd_user.c UserName="r_cg_lvd_user.c" LibName="_user.c" InUse="0"> - <Type R_LVD_Create_UserInit="void R_LVD_Create_UserInit(void)" r_lvd_interrupt="__interrupt static void r_lvd_interrupt(void)" /> - <R_LVD_Create_UserInit UserName="R_LVD_Create_UserInit" LibName="R_LVD_Create_UserInit" InUse="0" /> - <r_lvd_interrupt UserName="r_lvd_interrupt" INTHandle="" LibName="r_lvd_interrupt" InUse="0" /> - </r_cg_lvd_user.c> - <r_cg_lvd.h UserName="r_cg_lvd.h" LibName=".h" InUse="0" /> - </LVD> - </FUNC> - <TAG> - <GlobleUserTag> - <rrm Name="rrm" Value="1FE00" /> - <cg_ocd_trace_size Name="cg_ocd_trace_size" Value="512" /> - <cg_security8 Name="cg_security8" Value="00" /> - <cg_security4 Name="cg_security4" Value="00" /> - <wdt_option Name="wdt_option" Value="FF" /> - <cg_crc_area Name="cg_crc_area" Value="00" /> - <cg_security3 Name="cg_security3" Value="00" /> - <cg_iawctl_value Name="cg_iawctl_value" Value="00" /> - <cg_security0 Name="cg_security0" Value="00" /> - <cg_security9 Name="cg_security9" Value="00" /> - <cg_option Name="cg_option" Value="84" /> - <cg_security5 Name="cg_security5" Value="00" /> - <lvi_option Name="lvi_option" Value="FF" /> - <cg_ocd_ram_size Name="cg_ocd_ram_size" Value="512" /> - <pior_value4 Name="pior_value4" Value="00" /> - <cg_ocd_trace Name="cg_ocd_trace" Value="FE300" /> - <pior_value5 Name="pior_value5" Value="00" /> - <cg_security6 Name="cg_security6" Value="00" /> - <cg_security1 Name="cg_security1" Value="00" /> - <pior_value0 Name="pior_value0" Value="00" /> - <pior_value1 Name="pior_value1" Value="00" /> - <pior_value7 Name="pior_value7" Value="00" /> - <cg_security7 Name="cg_security7" Value="00" /> - <ocdstart Name="ocdstart" Value="1FE00" /> - <cg_security2 Name="cg_security2" Value="00" /> - <clock_option Name="clock_option" Value="E8" /> - <cg_onchip Name="cg_onchip" Value="" /> - </GlobleUserTag> - </TAG> - </DIR> - <MACRO> - <CGC Prepared="true" SetFlag="True" NeedRefresh="False"> - <CGC SetFlag="True" MacroName="cgc" /> - </CGC> - <PORT HelpID="port" Prepared="true" SetFlag="True" NeedRefresh="False"> - <PORT SetFlag="True" MacroName="PORT" /> - </PORT> - <INTC SetFlag="" HelpID="int" NeedRefresh="False"> - <INTP Accelerate="No" MacroName="INTP" /> - <KEY Chip="RL78F13_48pin,RL78F13_64pin" MacroName="KEY" /> - </INTC> - <Serial SetFlag="False" HelpID="serial" NeedRefresh="False"> - <SAU0 Accelerate="No" MacroName="SAU" Channel="0" SetFlag="False" TabEnable="True"> - <Channel0 UART="0" CSI="00" IIC="00" Channel="0" /> - <Channel1 Chip="RL78F13_64pin,RL78F13_80pin,RL78F13_48pin,RL78F13_32pin" PIOR41="0" UART="0" CSI="01" IIC="01" Channel="1" /> - </SAU0> - <SAU1 Accelerate="No" MacroName="SAU" Channel="1" PIOR42="0" Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,groupc2" SetFlag="False" TabEnable="True"> - <Channel0 UART="1" CSI="10" IIC="10" Channel="0" /> - <Channel1 Chip="groupb,groupc2" PIOR43="0" UART="1" CSI="11" IIC="11" Channel="1" /> - </SAU1> - <IICA0 Accelerate="No" Chip="groupb,R5F10BBC,R5F10BBD,R5F10BBE,R5F10BBF,R5F10BBG,R5F10BGC,R5F10BGD,R5F10BGE,R5F10BGF,R5F10BGG,R5F10BLC,R5F10BLD,R5F10BLE,R5F10BLF,R5F10BLG,R5F10BME,R5F10BMF,R5F10BMG" MacroName="IICA" Channel="0" SetFlag="False" TabEnable="True" /> - </Serial> - <ADC SetFlag="True" HelpID="adc" NeedRefresh="False"> - <ADC SetFlag="True" MacroName="ADC" /> - </ADC> - <TAU SetFlag="True" HelpID="timer" NeedRefresh="False"> - <TAU0 Accelerate="No" MacroName="TAU" Channel="0" ChannelNum="0,1,2,3,4,5,6,7" SetFlag="True" TabEnable="True" /> - <TAU1 Accelerate="No" Chip="groupb,groupc1,groupc2" MacroName="TAU" Channel="1" ChannelNum="0,1,2,3" SetFlag="False" TabEnable="True" /> - <TMRJ0 SetFlag="False" MacroName="TMRJ" Channel="0" TabEnable="True" /> - <TMRD0 SetFlag="False" MacroName="TMRD" Channel="0" TabEnable="True" /> - <TMRD1 SetFlag="False" MacroName="TMRD" Channel="1" TabEnable="True" /> - </TAU> - <WDT Prepared="true" SetFlag="True" HelpID="watchdogtimer" NeedRefresh="False"> - <WDT SetFlag="True" MacroName="WDT" /> - </WDT> - <RTC SetFlag="" HelpID="rtc" NeedRefresh="False"> - <RTC MacroName="RTC" /> - </RTC> - <DTC HelpID="dtc" SetFlag="" NeedRefresh="False"> - <DTC SetFlag="" /> - </DTC> - <PCLBUZ Chip="RL78F13_48pin,RL78F13_64pin,RL78F13_80pin" SetFlag="" HelpID="PCLBUZ" NeedRefresh="False"> - <PCLBUZ0 MacroName="PCLBUZ" Channel="0" /> - </PCLBUZ> - <LVD SetFlag="False" Prepared="true" NeedRefresh="False"> - <LVD MacroName="LVD" SetFlag="False" /> - </LVD> - </MACRO> - <SETTING> - <CGC> - <setting name="PIN_ASSIGNMENT_FIX_SETTING" value="false" /> - <setting name="OPERATION_MODE_HS_27_55" value="false" /> - <setting name="OPERATION_MODE_HS_40_55" value="true" /> - <setting name="MAIN_CLOCK_SELECT_HIGH_SYSTEM_CLOCK" value="true" /> - <setting name="MAIN_CLOCK_SELECT_HIGH_INTERNAL_CLOCK" value="false" /> - <setting name="INTERNAL_HIGH_CLOCK_OPERATION" value="false" /> - <setting name="INTERNAL_HIGH_CLOCK_FREQUENCY" value="6" /> - <setting name="HIGH_SYSTEM_CLOCK_OPERATION" value="true" /> - <setting name="HIGH_SYSTEM_CLOCK_SELECT_EXTERNAL_CLOCK" value="false" /> - <setting name="HIGH_SYSTEM_CLOCK_SELECT_X1_CLOCK" value="true" /> - <setting name="X1_CLOCK_STABLE_TIME" value="7" /> - <setting name="HIGH_SYSTEM_CLOCK_FREQUENCY" value="8" /> - <setting name="SUBCLOCK_SELECT_XT1_CLOCK" value="true" /> - <setting name="SUBCLOCK_XT1_OSCILLATION_MODE" value="0" /> - <setting name="SUBCLOCK_OPERATION" value="false" /> - <setting name="SUBCLOCK_SELECT_EXTERNAL_CLOCK" value="false" /> - <setting name="SUBCLOCK_HALT_STOP_STATUS" value="0" /> - <setting name="CPU_PERIPHERAL_CLOCK_FREQUENCY" value="0" /> - <setting name="FPLL_FREQUENCY_VALUE" value="1" /> - <setting name="FPLL_FREQUENCY_OPERATION" value="true" /> - <setting name="FPLL_LOCKUP_WAIT_COUNTER" value="0" /> - <setting name="FMP_FREQUENCY_VALUE" value="1" /> - <setting name="TRD_FREQUENCY_VALUE" value="0" /> - <setting name="FSL_FREQUENCY_VALUE" value="0" /> - <setting name="RTC_IT_CLOCK" value="0" /> - <setting name="OCD_UNUSED" value="false" /> - <setting name="OCD_USED" value="true" /> - <setting name="RRM_UNUSED" value="false" /> - <setting name="RRM_USED" value="true" /> - <setting name="TRACE_UNUSED" value="false" /> - <setting name="TRACE_USED" value="true" /> - <setting name="HOTPLUG_UNUSED" value="true" /> - <setting name="HOTPLUG_USED" value="false" /> - <setting name="SECURITY_ID_AUTHENTICATION_ERASE" value="true" /> - <setting name="SECURITY_ID_AUTHENTICATION_NOT_ERASE" value="false" /> - <setting name="SECURITY_ID_SELECT" value="true" /> - <setting name="SECURITY_ID_VALUE" value="0x00000000000000000000" /> - <setting name="RESET_SOURCE_FUNCTION_OUTPUT" value="true" /> - <setting name="RESOUT_UNUSED" value="true" /> - <setting name="RESOUT_USED" value="false" /> - <setting name="ILLEGAL_MEMORY_ACCESS_UNUSED" value="true" /> - <setting name="ILLEGAL_MEMORY_ACCESS_USED" value="false" /> - <setting name="RAM_GUARD_UNUSED" value="true" /> - <setting name="RAM_GUARD_USED" value="false" /> - <setting name="RAM_GUARD_AREA" value="0" /> - <setting name="PORT_GUARD_UNUSED" value="true" /> - <setting name="PORT_GUARD_USED" value="false" /> - <setting name="INTERRUPT_GUARD_UNUSED" value="true" /> - <setting name="INTERRUPT_GUARD_USED" value="false" /> - <setting name="CHIP_CONTROL_GUARD_UNUSED" value="true" /> - <setting name="CHIP_CONTROL_GUARD_USED" value="false" /> - <setting name="STACKPOINTER_INTERRUPT_PRIORITY" value="3" /> - <setting name="STACKPOINTER_INTERRUPT_USED" value="true" /> - <setting name="CLOCK_MONITOR_INTERRUPT_PRIORITY" value="3" /> - <setting name="CLOCK_MONITOR_INTERRUPT_USED" value="true" /> - <setting name="CLOCK_MONITOR_UNUSED" value="true" /> - <setting name="CLOCK_MONITOR_USED" value="false" /> - <setting name="STACK_POINTER_UNUSED" value="true" /> - <setting name="STACK_POINTER_USED" value="false" /> - <setting name="STACK_POINTER_UNDERFLOW_DATA" value="0x0000" /> - <setting name="STACK_POINTER_OVERFLOW_DATA" value="0xFFFE" /> - <setting name="RAM_ECC_INTERRUPT_USED" value="false" /> - <setting name="RAMECC_TEST_UNUSED" value="true" /> - <setting name="RAMECC_TEST_USED" value="false" /> - <setting name="RAM_ECC_INTERRUPT_PRIORITY" value="3" /> - <setting name="RAM_ECC_INVERTBIT" value="0" /> - <setting name="DataFlash" value="unused" /> - </CGC> - <PORT> - <PortP0> - <P00> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P00> - </PortP0> - <PortP1> - <P10> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P10> - <P11> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P11> - <P12> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P12> - <P13> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P13> - <P14> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P14> - <P15> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P15> - <P16> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P16> - <P17> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P17> - </PortP1> - <PortP3> - <P30> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P30> - <P31> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P31> - <P32> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P32> - <P33> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P33> - <P34> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P34> - </PortP3> - <PortP4> - <P40> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="true" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P40> - <P41> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P41> - <P42> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P42> - <P43> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P43> - </PortP4> - <PortP5> - <P50> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P50> - <P51> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P51> - <P52> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P52> - <P53> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P53> - </PortP5> - <PortP6> - <P60> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P60> - <P61> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P61> - <P62> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P62> - <P63> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P63> - </PortP6> - <PortP7> - <P70> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P70> - <P71> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P71> - <P72> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P72> - <P73> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P73> - <P74> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P74> - <P75> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P75> - <P76> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P76> - <P77> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P77> - </PortP7> - <PortP8> - <P80> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P80> - <P81> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P81> - <P82> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P82> - <P83> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P83> - <P84> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P84> - <P85> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P85> - <P86> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P86> - <P87> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P87> - </PortP8> - <PortP9> - <P90> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P90> - <P91> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P91> - <P92> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P92> - <P93> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P93> - <P94> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P94> - <P95> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P95> - <P96> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P96> - </PortP9> - <PortP12> - <P120> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P120> - <P121> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P121> - <P122> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P122> - <P123> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P123> - <P124> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P124> - <P125> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="true" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="0" /> - <setting name="PSRSEL" value="false" /> - </P125> - </PortP12> - <PortP13> - <P130> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P130> - <P137> - <setting name="MODULE_UNUSED" value="true" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="false" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P137> - </PortP13> - <PortP14> - <P140> - <setting name="MODULE_UNUSED" value="false" /> - <setting name="INPUT_MODE" value="false" /> - <setting name="OUTPUT_MODE" value="true" /> - <setting name="PULLUP_ON" value="false" /> - <setting name="NCH_ON" value="false" /> - <setting name="OUTPUT_1" value="false" /> - <setting name="INPUT_BUFFER" value="-1" /> - <setting name="PSRSEL" value="false" /> - </P140> - </PortP14> - </PORT> - <WDT> - <setting name="WDT_MODULE_USED" value="true" /> - <setting name="WDT_MODULE_UNUSE" value="false" /> - <setting name="WDT_OVERFLOW_TIME" value="7" /> - <setting name="WDT_WINDOW_OPEN_TIME" value="2" /> - <setting name="WDT_HALT_STOP_OPERATION_ENABLE" value="true" /> - <setting name="WDT_HALT_STOP_OPERATION_STOP" value="false" /> - <setting name="WDT_INTERRUPT_USED" value="true" /> - <setting name="WDT_INTERRUPT_PRIORITY" value="3" /> - </WDT> - <ADC> - <setting name="ADC_USED" value="true" /> - <setting name="ADC_UNUSED" value="false" /> - <setting name="ADC_COMPARATOR_ENABLE" value="false" /> - <setting name="ADC_COMPARATOR_DISABLE" value="true" /> - <setting name="ADC_RESOLUTION_10BIT" value="true" /> - <setting name="ADC_RESOLUTION_8BIT" value="false" /> - <setting name="ADC_POSITIVE_VDD" value="true" /> - <setting name="ADC_POSITIVE_AVREFP" value="false" /> - <setting name="ADC_POSITIVE_BGR" value="false" /> - <setting name="ADC_NEGATIVE_VSS" value="true" /> - <setting name="ADC_NEGATIVE_AVREFM" value="false" /> - <setting name="ADC_TRIGGER_SOFTWARE" value="true" /> - <setting name="ADC_TRIGGER_HARDWARE_NOWAIT" value="false" /> - <setting name="ADC_TRIGGER_HARDWARE_WAIT" value="false" /> - <setting name="ADC_TRIGGER_SOURCE" value="0" /> - <setting name="ADC_CONTINUOUS_SELECT_MODE" value="false" /> - <setting name="ADC_ONESHOT_SELECT_MODE" value="true" /> - <setting name="ADC_CONTINUOUS_SCAN_MODE" value="false" /> - <setting name="ADC_ONESHOT_SCAN_MODE" value="false" /> - <setting name="ADC_ANALOG_INPUT_SELECTION" value="6" /> - <setting name="ANALOG_INPUT_24" value="false" /> - <setting name="ANALOG_INPUT_25" value="false" /> - <setting name="ANALOG_INPUT_26" value="false" /> - <setting name="ADC_CHANNEL_SELECTION" value="0" /> - <setting name="ADC_CONVERSION_MODE" value="0" /> - <setting name="ADC_CONVERSION_TIME" value="3" /> - <setting name="ADC_INTERRUPT_GENERATE_CONDITION_1" value="true" /> - <setting name="ADC_INTERRUPT_GENERATE_CONDITION_2" value="false" /> - <setting name="ADC_UPPER_BOUND_VALUE" value="255" /> - <setting name="ADC_LOWER_BOUND_VALUE" value="0" /> - <setting name="ADC_INTERRUPT_PRIORITY" value="0" /> - <setting name="ADC_INTERRUPT_USED" value="false" /> - <setting name="ANALOG_INPUT_30" value="true" /> - <setting name="ANALOG_INPUT_29" value="true" /> - <setting name="ANALOG_INPUT_28" value="true" /> - <setting name="ANALOG_INPUT_27" value="true" /> - </ADC> - <TAU0> - <Channel0> - <setting name="ChannelFunction" value="7" /> - <setting name="Pinselection" value="-1" /> - <TAUPWMMaster0> - <PWMMaster0> - <setting name="Value_scale" value="1" /> - <setting name="PWM_cycle" value="200" /> - <setting name="Master_interrupt_priority" value="3" /> - <setting name="Master_interrupt" value="unused" /> - </PWMMaster0> - <PWMSlave1> - <setting name="PWM_duty" value="0" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="unused" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave1> - <PWMSlave2> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave2> - <PWMSlave3> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave3> - <PWMSlave4> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave4> - <PWMSlave5> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave5> - <PWMSlave6> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave6> - <PWMSlave7> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave7> - </TAUPWMMaster0> - <TAUMultiPWMMaster0> - <PWMMaster0> - <setting name="Value_scale" value="1" /> - <setting name="PWM_cycle" value="100" /> - <setting name="Master_interrupt_priority" value="3" /> - <setting name="Master_interrupt" value="used" /> - </PWMMaster0> - <PWMSlave1> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave1> - <PWMSlave2> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave2> - <PWMSlave3> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave3> - <PWMSlave4> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave4> - <PWMSlave5> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave5> - <PWMSlave6> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave6> - <PWMSlave7> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave7> - </TAUMultiPWMMaster0> - </Channel0> - <Channel1> - <setting name="ChannelFunction" value="8" /> - <setting name="Pinselection" value="-1" /> - </Channel1> - <Channel2> - <setting name="ChannelFunction" value="1" /> - <setting name="Pinselection" value="-1" /> - <TAUInterval2> - <setting name="OperationMode" value="16bits" /> - <setting name="Count_clock" value="MCK clock" /> - <setting name="Sub_clock_mode" value="-1" /> - <setting name="Interval_value" value="1" /> - <setting name="Value_scale" value="0" /> - <setting name="Intervalvalue_High8bits" value="100" /> - <setting name="Intervalvalue_High8bits_scale" value="-1" /> - <setting name="Intervalvalue_Low8bits" value="100" /> - <setting name="Intervalvalue_Low8bits_Scale" value="-1" /> - <setting name="Generate_interrupt_when_couting_started" value="no" /> - <setting name="Interrupt" value="used" /> - <setting name="Interrupt_priority" value="3" /> - <setting name="InterruptH_priority" value="3" /> - <setting name="InterruptH8" value="unused" /> - </TAUInterval2> - <TAUMultiPWMMaster2> - <PWMMaster2> - <setting name="Value_scale" value="1" /> - <setting name="PWM_cycle" value="100" /> - <setting name="Master_interrupt_priority" value="3" /> - <setting name="Master_interrupt" value="used" /> - </PWMMaster2> - <PWMSlave3> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave3> - <PWMSlave4> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave4> - <PWMSlave5> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave5> - <PWMSlave6> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave6> - <PWMSlave7> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave7> - </TAUMultiPWMMaster2> - </Channel2> - <Channel3> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel3> - <Channel4> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel4> - <Channel5> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel5> - <Channel6> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel6> - <Channel7> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel7> - </TAU0> - <TAU1> - <Channel0> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - <TAUPWMMaster0> - <PWMMaster0> - <setting name="Value_scale" value="1" /> - <setting name="PWM_cycle" value="100" /> - <setting name="Master_interrupt_priority" value="3" /> - <setting name="Master_interrupt" value="used" /> - </PWMMaster0> - <PWMSlave1> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave1> - <PWMSlave2> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave2> - <PWMSlave3> - <setting name="PWM_duty" value="50" /> - <setting name="OuputLevel" value="0" /> - <setting name="OuputValue" value="0" /> - <setting name="Slave_interrupt_priority" value="3" /> - <setting name="Slave_interrupt" value="used" /> - <setting name="OuputTime" value="0" /> - <setting name="TauPWMSlave cbPSRSEL" value="false" /> - </PWMSlave3> - </TAUPWMMaster0> - </Channel0> - <Channel1> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel1> - <Channel2> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel2> - <Channel3> - <setting name="ChannelFunction" value="0" /> - <setting name="Pinselection" value="-1" /> - </Channel3> - </TAU1> - <TMRJ0> - <setting name="Function" value="Unused" /> - </TMRJ0> - <TMRD0> - <setting name="Function" value="Unused" /> - </TMRD0> - <TMRD1> - <setting name="Function" value="Unused" /> - </TMRD1> - <SAU0> - <IIC00 /> - <CSI00 /> - <UART0 /> - <Channel0> - <setting name="CHANNEL_FUNCTION" value="0" /> - <setting name="DETAIL_FUNCTION" value="-1" /> - </Channel0> - <IIC01 /> - <CSI01 /> - <Channel1> - <setting name="CHANNEL_FUNCTION" value="0" /> - <setting name="DETAIL_FUNCTION" value="-1" /> - </Channel1> - </SAU0> - <SAU1> - <Channel0> - <setting name="CHANNEL_FUNCTION" value="0" /> - <setting name="DETAIL_FUNCTION" value="-1" /> - </Channel0> - <UART1 /> - <Channel1> - <setting name="CHANNEL_FUNCTION" value="0" /> - <setting name="DETAIL_FUNCTION" value="-1" /> - </Channel1> - <IIC10 /> - <CSI10 /> - <IIC11 /> - <CSI11 /> - </SAU1> - <IICA0> - <setting name="SLAVE_MODE_USED" value="false" /> - <setting name="MODULE_UNUSE" value="true" /> - <setting name="SINGLE_MASTER_USED" value="false" /> - </IICA0> - <LVD> - <setting name="Operation" value="unused" /> - <setting name="Reset_only_level" value="0" /> - <setting name="InterruptReset_level" value="0" /> - <setting name="Interrupt_level" value="0" /> - <setting name="Interrupt_only_level" value="0" /> - <setting name="operation_mode" value="reset" /> - <setting name="Interrupt_priority" value="3" /> - <setting name="Interrupt_only_priority" value="3" /> - </LVD> - </SETTING> -</RL78F13> - 1.0 - 83cb397c-5ae9-4fcf-a335-ade32afe0325 - 1d4e3527-c841-4069-9a5d-53d6f3b474a2 - - - - - 83cb397c-5ae9-4fcf-a335-ade32afe0325 - - - - - Project78K0R - - - - - a1b29f7a-6007-4082-b223-0b9f7a2063c9 - - - - - 0 - R5F10BLG - No - Emulator - Emulator - 4000 - 32768 - 128 - 8192 - 1 - - DefaultBuild\DMK-SX11-03-BLG.lmf - LoadModuleFile - 0 - 0 - True - True - False - 0 - 0 - True - True - False - SuspendEvent - True - XwBtAGEAaQBuAA== - XwBAAGMAcwB0AGEAcgB0AA== - XwBAAGMAZQBuAGQA - SpeedPriority - No - Typical - 0 - 3 - Typical - 0 - 1023 - None - 0 - 0 - None - 0 - 0 - None - 0 - 0 - 0 - 65535 - No - No - No - No - No - No - Typical - 987136 - 0 - Typical - 987136 - 1023 - None - 987136 - 0 - None - 987136 - 0 - None - 987136 - 0 - Yes - 500 - No - 0 - Yes - SymbolOffset - Yes - SoftwareBreak - No - No - No - No - No - No - Yes - Nonstop - 0 - No - No - Yes - Yes - Yes - Yes - No - QABTAFQARQBOAEQA - No - QABTAFQAQgBFAEcA - Yes - Yes - Yes - Yes - Yes - No - No - No - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 0 - R5F10BLG - 10 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 8000 - 0 - Yes - No - System - Yes - Yes - Use5_0V - 1000 - 3 - 1 - - DefaultBuild\DMK-SX11-03-Boot.lmf - LoadModuleFile - 0 - 0 - True - True - False - 0 - 0 - True - True - True - SuspendEvent - False - XwBtAGEAaQBuAA== - XwBAAGMAcwB0AGEAcgB0AA== - XwBAAGMAZQBuAGQA - SpeedPriority - Yes - Yes - 500 - No - 9 - InternalRom - 0 - 131071 - 0 - 16 - True - False - None - NonMap - 131072 - 983039 - 0 - 8 - True - False - None - Sfr - 983040 - 985087 - 0 - 8 - True - False - None - NonMap - 985088 - 987135 - 0 - 8 - True - False - None - Eeprom - 987136 - 991231 - 0 - 8 - True - False - None - Mirror - 991232 - 1040127 - 0 - 16 - True - False - None - InternalRam - 1040128 - 1048287 - 0 - 16 - True - False - None - Register - 1048288 - 1048319 - 0 - 16 - True - False - None - Sfr - 1048320 - 1048575 - 0 - 8 - True - False - None - Yes - SymbolOffset - Yes - SoftwareBreak - No - No - No - No - No - No - 8000 - Internal - 9 - No - Nonstop - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - UgB1AG4ALQBCAHIAZQBhAGsAIABUAGkAbQBlAHIA - - Enable - Invalid - True - 0 - 0 - 0 - 0 - VQBuAGMAbwBuAGQAaQB0AGkAbwBuAGEAbAAgAFQAcgBhAGMAZQA= - - Enable - Invalid - True - AllTrace - 0 - 0 - 0 - QgByAGUAYQBrADAAMAAwADEA - - Invalid - Enable - False - None - 0 - 1 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAxAA== - 1 - QgByAGUAYQBrADAAMAAwADIA - - Invalid - Enable - False - None - 0 - 2 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAyAA== - 1 - QgByAGUAYQBrADAAMAAwADMA - - Invalid - Enable - False - None - 0 - 3 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAzAA== - 1 - QgByAGUAYQBrADAAMAAwADQA - - Enable - Invalid - False - None - 0 - 4 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA0AA== - 1 - QgByAGUAYQBrADAAMAAwADUA - - Enable - Invalid - False - None - 0 - 5 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA1AA== - 1 - QgByAGUAYQBrADAAMAAwADYA - - Enable - Invalid - False - None - 0 - 6 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA2AA== - 1 - QgByAGUAYQBrADAAMAAwADgA - - Enable - Invalid - False - None - 0 - 8 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA4AA== - 1 - QgByAGUAYQBrADAAMAAxADAA - - Enable - Invalid - False - None - 0 - 10 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAxADAA - 1 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAxAA== - - False - Software - 1 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - r_main.c - _main - 31 - Address - 10383 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAxADAA - - False - Software - 10 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - r_pfdl.c - _WriteDataflash - 106 - Address - 12001 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAyAA== - - False - Software - 2 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - r_main.c - _main - 14 - Address - 10366 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAAzAA== - - False - Software - 3 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - r_main.c - _boot_main - 14 - Address - 10366 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA0AA== - - False - Software - 4 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - boot_main.c - _boot_main - 31 - Address - 34929 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA1AA== - - False - Software - 5 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - boot_main.c - _boot_main - 18 - Address - 34916 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA2AA== - - False - Software - 6 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - boot_main.c - _Boot_MAIN_UserInit - 4 - Address - 34949 - RQB2AGUAbgB0ACAAQwBvAG4AZABpAHQAaQBvAG4AIAA4AA== - - False - Software - 8 - SymbolOffset - E:\project\2017\DMK-SX11-03\DMK-SX11-03-Boot\DefaultBuild\DMK-SX11-03-Boot.lmf - DCM_DTC.c - _DtcStutasInit - 345 - Address - 31449 - 0 - 8 - 0 - 8 - 1 - 1 - 1 - - - - - - - - - - 0 - R5F10BLG - 4000 - 32768 - 128 - 8192 - SelectCpuClockFrequency - MHz - 4000000 - No - - 1 - - DefaultBuild\DMK-SX11-03-Boot.lmf - LoadModuleFile - 0 - 0 - True - True - False - 0 - 0 - True - True - False - SuspendEvent - True - XwBtAGEAaQBuAA== - XwBAAGMAcwB0AGEAcgB0AA== - XwBAAGMAZQBuAGQA - Yes - 500 - No - 9 - InternalRom - 0 - 131071 - 0 - 16 - True - False - None - NonMap - 131072 - 983039 - 0 - 8 - True - False - None - Sfr - 983040 - 985087 - 0 - 8 - True - False - None - NonMap - 985088 - 987135 - 0 - 8 - True - False - None - Eeprom - 987136 - 991231 - 0 - 8 - True - False - None - Mirror - 991232 - 1040127 - 0 - 16 - True - False - None - InternalRam - 1040128 - 1048287 - 0 - 16 - True - False - None - Register - 1048288 - 1048319 - 0 - 16 - True - False - None - Sfr - 1048320 - 1048575 - 0 - 8 - True - False - None - SymbolOffset - Yes - Yes - Nonstop - No - No - No - No - No - No - 4096 - Yes - Yes - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - AQAAAAQAAAA= - - - - - - 5.00.00.00 - - - diff --git a/ECU_BOOT/ECU_BOOT.dr b/ECU_BOOT/ECU_BOOT.dr deleted file mode 100644 index 5b3ef77..0000000 --- a/ECU_BOOT/ECU_BOOT.dr +++ /dev/null @@ -1,9 +0,0 @@ -;MEMORY -MEMORY RAM : ( 000fe510H, 00001490H ) / REGULAR -MEMORY KAM : ( 000fe500H, 00000010H ) / REGULAR -MEMORY FSL_COD : ( 00ff9a0H, 00000480H ) / REGULAR -MEMORY SADDR : ( 000ffe20H, 000000c0H ) / REGULAR - -MERGE KAM_SEG := KAM -MERGE FslSeg := FSL_COD - diff --git a/ECU_BOOT/FSL/BranchTable.h b/ECU_BOOT/FSL/BranchTable.h deleted file mode 100644 index 9db9f2a..0000000 --- a/ECU_BOOT/FSL/BranchTable.h +++ /dev/null @@ -1,32 +0,0 @@ -/******************************************************************************* -* File Name : BranchTable.h -* Version : 1.00 -* Device(s) : RL78/F13( R5F10BLG ) -* Tool-Chain : CS+ ( V4.00 ) -* OS : none -* H/W Platform : -* Description : -* Operation : -* Limitations : -******************************************************************************/ -/****************************************************************************** -* History : Version Description -* : 07.29.2017 1.00 First Release -******************************************************************************/ -/****************************************************************************** -Include , "Project Includes" -******************************************************************************/ - -/*---------------------------------------------------------------------------*/ -/* (#pragma) branch table functions (ext_func) */ -/*---------------------------------------------------------------------------*/ -#pragma ext_func GetVoltage 0 -#pragma ext_func GetMotorLockStatus 1 -#pragma ext_func GetIoParameter 2 -#pragma ext_func WriteIoParameter 3 -#pragma ext_func GetIgnVoltStatus 4 -#pragma ext_func GetHardwareVersion 5 -#pragma ext_func GetSoftwareVersion 6 -#pragma ext_func GetManufacturingDate 7 -#pragma ext_func Clear_DTC_Data 8 - diff --git a/ECU_BOOT/FSL/com.h b/ECU_BOOT/FSL/com.h deleted file mode 100644 index 1762c70..0000000 --- a/ECU_BOOT/FSL/com.h +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2011 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : r_fsl_praxis01_com.h -* Version : 1.00 -* Device(s) : RL78/G13( R5F100LEA ) -* Tool-Chain : CubeSuite+ ( V1.01 ) -* OS : none -* H/W Platform : QB-R5F100LE-TB -* Description : -* Operation : -* Limitations : FSL AN-sample. -******************************************************************************/ -/****************************************************************************** -* History : Version Description -* : 09.29.2011 1.00 First Release -******************************************************************************/ - -/****************************************************************************** -Include , "Project Includes" -******************************************************************************/ -/**************************/ -/* */ -/**************************/ - -/*----------------------------------------------------------------------------*/ -/* common prototype declarations ( public function ) */ -/*----------------------------------------------------------------------------*/ -/************************************************************************************/ -/* ch : */ -/* 0: KL30ѹ KL15 */ -/* 1: ʻԱ¶ȵڵѹ */ -/* 2: ģʽѹ */ -/* 3: ѭŵڵѹ */ -/* 4¶ȴѹ */ -/* */ -/* ֵ */ -/* Ӧĵѹ*10صĵѹֵ0.1Vģ */ -/* */ -/************************************************************************************/ -unsigned char GetVoltage(unsigned char ch) ; - -/************************************************************************************/ -/* motor : */ -/* 1: ʻԱ¶ȵڵ */ -/* 2: ģʽ */ -/* 3: ѭŵڵ */ -/* */ -/* ֵ */ -/* 0: 1ת */ -/* */ -/************************************************************************************/ -unsigned char GetMotorLockStatus(unsigned char motor) ; - -/************************************************************************************/ -/* p : */ -/* 0: TEMP ʻԱ¶ȷλ */ -/* 1: REC ѭģʽ */ -/* 2: FAN ķλ */ -/* 3: MODE ģʽλ */ -/* 4: DEFROST ˪ */ -/* 5: REARDEF ˪ */ -/* 6: AC A/C䰴 */ -/* 7: K30 ECU Supplier voltage */ -/* */ -/* ֵ */ -/* 0: Ӧdata,222F */ -/************************************************************************************/ -unsigned char GetIoParameter(unsigned char p); - -/************************************************************************************/ -/* ѯ */ -/* p : */ -/* 0: TEMP ʻԱ¶ȷλ */ -/* 1: REC ѭģʽ */ -/* 2: FAN ķλ */ -/* 3: MODE ģʽλ */ -/* 4: DEFROST Ч */ -/* 5: REARDEF ˪ */ -/* 6: AC Ч */ -/* 7: K30 Ч */ -/* ֵ */ -/* */ -/************************************************************************************/ -void WriteIoParameter(unsigned char p,unsigned char data); - -/************************************************************************************/ -/* p : */ -/* */ -/* */ -/* ֵ */ -/* 0: IGNԴ 1IGN > 16V IGN < 9V */ -/* */ -/************************************************************************************/ -unsigned char GetIgnVoltStatus(void); - -/************************************************************************************ -// ȡACӲ汾 // -// hdv : // -// ָȡݴĻĵַ // -// // -// ֵ // -// // -// // -************************************************************************************/ -void GetHardwareVersion(unsigned char* hdv); - -/************************************************************************************ -// ȡAC汾 // -// swv : // -// ָȡݴĻĵַ // -// // -// ֵ // -// // -// // -************************************************************************************/ -void GetSoftwareVersion(unsigned char* swv); -/************************************************************************************ -// ȡAC // -// *date : // -// data[0] = YEAR // -// data[1] = MONTH // -// data[0] = DAY // -// // -// ֵ // -// // -// // -************************************************************************************/ -void GetManufacturingDate(unsigned char* date); - -/******************************/ -//ȡcan߳״̬ -//ֵ -/******************************/ -unsigned char GetCanBusOffErr(void); - -/******************************/ -//DTC -//ĿǰBusOff -// -//ֵ0 -/******************************/ -unsigned char Clear_DTC_Data(void); - - - diff --git a/ECU_BOOT/FSL/fsl_user.c b/ECU_BOOT/FSL/fsl_user.c deleted file mode 100644 index ff779b1..0000000 --- a/ECU_BOOT/FSL/fsl_user.c +++ /dev/null @@ -1,198 +0,0 @@ -/******************************************************************************* -* File Name : r_fsl_praxis01_boot_write.c -* Version : 1.00 -* Device(s) : RL78/G13( R5F100LEA ) -* Tool-Chain : CubeSuite+ ( V1.01 ) -* OS : none -* H/W Platform : QB-R5F100LE-TB -* Description : -* Operation : -* Limitations : FSL AN-sample. -******************************************************************************/ -/****************************************************************************** -* History : Version Description -* : 09.29.2011 1.00 First Release -******************************************************************************/ - -/*----------------------------------------------------------------------------*/ -/* (#pragma) Expanded functions */ -/*----------------------------------------------------------------------------*/ -#pragma sfr /* */ -#pragma DI /* */ -#pragma EI /* */ -#pragma NOP /* */ - - -/*----------------------------------------------------------------------------*/ -/* Include files */ -/*----------------------------------------------------------------------------*/ -#include "fsl_user.h" /* */ - - -/*----------------------------------------------------------------------------*/ -/* Parameter */ -/*----------------------------------------------------------------------------*/ -/* */ -static __far const fsl_descriptor_t fsl_descriptor_pstr = { 0x00, 0x20, 0x01 }; - -/*----------------------------------------------------------------------------*/ -/* FSL functions */ -/*----------------------------------------------------------------------------*/ -/****************************************************************************** -* Outline : -* Include : none -* Declaration : UB prFslStart(void) -* Function Name : prFslStart -* Description : -* Argument : none -* Return Value : processing result -* Calling Functions : prBootWriteProgram -******************************************************************************/ -fsl_u08 prFslStart( void ) -{ - fsl_u08 dubRetCode; - - /* Flash self-programming library initialization */ - dubRetCode = FSL_Init( &fsl_descriptor_pstr ); - - /* When initialization has completed normally */ - if( dubRetCode == FSL_OK ) - { - /* Flash self-programming library start processing */ - FSL_Open(); - - /* */ - FSL_PrepareFunctions(); - - /* */ - FSL_PrepareExtFunctions(); - } - - - - return dubRetCode; -} - -/****************************************************************************** -* Outline : -* Include : none -* Declaration : void prFslEnd(void) -* Function Name : prFslEnd -* Description : -* Argument : none -* Return Value : none -* Calling Functions : prBootWriteProgram -******************************************************************************/ -void prFslEnd( void ) -{ - /* Flash self-programming library end processing */ - FSL_Close(); -} - -/****************************************************************************** -* Outline : -* Include : none -* Declaration : void prFslErase(void) -* Function Name : prFslErase -* Description : -* Argument : none -* Return Value : none -* Calling Functions : -******************************************************************************/ -fsl_u08 prFslErase( fsl_u08 start_block,fsl_u08 num ) -{ - fsl_u08 ret_code,erase_cnt,erase_err; - - if(APP_START_BLOCK <= start_block && 0 < num){ - ret_code = prFslStart(); - - if(FSL_OK==ret_code){ - erase_cnt = 0; - erase_err = 0; - while(erase_cnt=APP_START_ADDR && start_addr<=APP_END_ADDR && 0!=write_num && 0==(write_num%4)) || (start_addr>=DID_0200_ADDR && start_addr<= DID_0201_ADDR && 0!=write_num && 0==(write_num%4)) ) - { - - WriteConfig.fsl_data_buffer_p_u08 = buf; - WriteConfig.fsl_destination_address_u32 = start_addr; - WriteConfig.fsl_word_count_u08 = (fsl_u08)(write_num/4); - - ret_code = prFslStart(); - if(FSL_OK==ret_code){ - DI(); - ret_code = FSL_Write(&WriteConfig); - EI(); - - if(FSL_OK==ret_code){ - return_code = FSL_OK; - - } - else{ - return_code = FSL_ERR_WRITE; - } - } - - prFslEnd(); - } - else{ - return_code = FSL_ERR_PARAMETER; - } - - return return_code; -} - - diff --git a/ECU_BOOT/FSL/fsl_user.h b/ECU_BOOT/FSL/fsl_user.h deleted file mode 100644 index 30aa16d..0000000 --- a/ECU_BOOT/FSL/fsl_user.h +++ /dev/null @@ -1,30 +0,0 @@ - - -#ifndef __FSL_USER_H_ -#define __FSL_USER_H_ - -#include "boot_macrodriver.h" -#include "fsl.h" /* */ -#include "fsl_types.h" /* */ - -#define APP_START_ADDR 0x0A000 -#define APP_END_ADDR 0x19FFF - -#define APP_SIZE (APP_END_ADDR - APP_START_ADDR + 1) -#define APP_START_BLOCK (fsl_u08)(APP_START_ADDR/0x400) -#define APP_TOTAL_BLOCK (fsl_u08)((APP_END_ADDR + 1 - APP_START_ADDR)/0x400) - -#define FLASH_DRIVER_ADDR (0xFF9A0) -#define DM_FLASH_DRIVER_ADDR (0x5A01) -#define FLASH_DRIVER_SIZE (0x480) - -/*----------------------------------------------------------------------------*/ -/* Prototype declarations */ -/*----------------------------------------------------------------------------*/ -fsl_u08 prFslStart ( void ); /* */ -void prFslEnd ( void ); /* */ -fsl_u08 prFslErase( fsl_u08 start_block,fsl_u08 num ); -fsl_u32 prFslWrite(fsl_u32 start_addr,fsl_u08* buf,fsl_u16 write_num); - -#endif - diff --git a/ECU_BOOT/FSL/incrl78/fsl.h b/ECU_BOOT/FSL/incrl78/fsl.h deleted file mode 100644 index 788124c..0000000 --- a/ECU_BOOT/FSL/incrl78/fsl.h +++ /dev/null @@ -1,513 +0,0 @@ -/*==============================================================================================*/ -/* Project = Flash self-programming library, MF3 single voltage flash */ -/* Module = fsl.h */ -/* Device: = RL78 */ -/* Version = V2.20 */ -/*==============================================================================================*/ -/* COPYRIGHT */ -/*==============================================================================================*/ -/* Copyright(c) 2010,2011,2012 Renesas Electronics Corporation */ -/*==============================================================================================*/ -/* Purpose: */ -/* constant and function prototype definitions used by the FSL */ -/* */ -/*==============================================================================================*/ -/* */ -/* RENESAS ELECTRONICS CONFIDENTIAL AND PROPRIETARY. */ -/* This program must be used solely for the purpose for which it was furnished */ -/* by Renesas Electronics Corporation. No part of this program may be reproduced or */ -/* disclosed to others, in any form, without the prior written permission of */ -/* Renesas Electronics Corporation. */ -/* */ -/*==============================================================================================*/ - -#ifndef __FSL_H_INCLUDED -#define __FSL_H_INCLUDED - - -/*==============================================================================================*/ -/* include files list */ -/*==============================================================================================*/ -#include "fsl_types.h" - - -/*==============================================================================================*/ -/* constant definitions */ -/*==============================================================================================*/ - -/*status code definitions returned by the FSL functions */ -#define FSL_OK 0x00 /* no problems */ -#define FSL_ERR_PARAMETER 0x05 /* parameter error */ -#define FSL_ERR_PROTECTION 0x10 /* protection error (access right conflict) */ -#define FSL_ERR_ERASE 0x1A /* erase error */ -#define FSL_ERR_BLANKCHECK 0x1B /* blankcheck error (MRG11) */ -#define FSL_ERR_IVERIFY 0x1B /* internal verify error (MRG11) */ -#define FSL_ERR_WRITE 0x1C /* write error */ -#define FSL_ERR_FLOW 0x1F /* flow error (wrong timing calling) */ -#define FSL_IDLE 0x30 /* idle state (any action is not running) */ -#define FSL_SUSPEND 0x43 /* previous flash action is suspended */ -#define FSL_BUSY 0xFF /* command is being processed */ - - -/*==============================================================================================*/ -/* global function prototypes */ -/*==============================================================================================*/ - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: initialization of flash environment */ -/* */ -/* Input: *descriptor_pstr - FSL descriptor */ -/* Output: - */ -/* Returned: fsl_u08, status_code */ -/* = 0x00(FSL_OK), normal and means initialization OK */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error or HOCO isn't started */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_Init(__far fsl_descriptor_t* descriptor_pstr); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: opens flash environment */ -/* Input: - */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_Open(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: closes flash environment */ -/* Input: - */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_Close(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: prepares following functions to be called */ -/* FSL_BlankCheck, FSL_Erase, FSL_Write, FSL_IVerify, FSL_StatusCheck */ -/* Input: - */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_PrepareFunctions(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: prepares following functions to be called */ -/* FSL_Set*ProtectFlag, FSL_InvertBootFlag, FSL_SetFlashShieldWindow, */ -/* FSL_SwapBootCluster, FSL_SwapActiveBootCluster */ -/* Input: - */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_PrepareExtFunctions(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: changes all vector addresses to specified address in RAM */ -/* Input: fsl_interrupt_destination_u16 - vector address in RAM (Lower 16 bits address) */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_ChangeInterruptTable(fsl_u16 fsl_interrupt_destination_u16); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: restores all vector addresses to initial vector addresses */ -/* Input: - */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_RestoreInterruptTable(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: checks if specified block is blank */ -/* Input: block_u16 - block number has to be checked */ -/* Output: - */ -/* Returned: fsl_u08, status_code */ -/* = 0x00(FSL_OK), normal and means "block is blank" */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error */ -/* = 0x1B(FSL_ERR_BLANKCHECK), blank-check error, means "block is not blank" */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_BlankCheck(fsl_u16 block_u16); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: erase specified block */ -/* Input: block_u16 - block number has to be erase */ -/* Output: - */ -/* Returned: fsl_u08, status_code */ -/* = 0x00(FSL_OK), normal and means "block erased successfully" */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error */ -/* = 0x10(FSL_ERR_PROTECTION), protection error */ -/* = 0x1A(FSL_ERR_ERASE), erase error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_Erase(fsl_u16 block_u16); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: performs internal verify on specified block */ -/* Input: block_u16 - block number has to be verified */ -/* Output: - */ -/* Returned: fsl_u08, status_code */ -/* = 0x00(FSL_OK), normal and means "block is verified" */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error */ -/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_IVerify(fsl_u16 block_u16); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: writes N words from the data buffer into flash */ -/* Input: *write_pstr - struct fsl_write_t to write */ -/* Output: - */ -/* Condition: 1) (&fsl_destination_address MOD 4 == 0) */ -/* 2) most significant byte (MSB) of fsl_destination_address_u32 has to be 0x00 */ -/* Means: 0x00abcdef 24 bit flash address allowed */ -/* 3) (0 < fsl_word_count_u08 <= 64) */ -/* 4) (fsl_word_count_u08 <= sizeof(data buffer)) */ -/* NOT CHECKED BY FSL */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error */ -/* = 0x10(FSL_ERR_PROTECTION), protection error */ -/* = 0x1C(FSL_ERR_WRITE), write error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_Write(__near fsl_write_t* write_pstr); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: controls the flash action start/continue/check for the last called function */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x1A(FSL_ERR_ERASE), erase error */ -/* = 0x1B(FSL_ERR_BLANKCHECK), blank-check error, means "block not blank" */ -/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ -/* = 0x1C(FSL_ERR_WRITE), write error */ -/* = 0x1F(FSL_ERR_FLOW), violates the precondition. */ -/* or FSL is suspending. */ -/* = 0x30(FSL_IDLE), any action is not running */ -/* = 0xFF(FSL_BUSY), normal and means "process was not finished" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_StatusCheck(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: suspends the flash action */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), previous flash action is OK. */ -/* And the state is suspended. */ -/* = 0x1A(FSL_ERR_ERASE), previous flash action is Erase error. */ -/* And the state is suspended. */ -/* = 0x1B(FSL_ERR_BLANKCHECK), previous flash action is Blank error. */ -/* And the state is suspended. */ -/* = 0x1B(FSL_ERR_IVERIFY), previous flash action is IVerify error. */ -/* And the state is suspended. */ -/* = 0x1C(FSL_ERR_WRITE), previous flash action is Write error. */ -/* And the state is suspended. */ -/* = 0x1F(FSL_ERR_FLOW), violates the precondition. */ -/* or has been already suspending. */ -/* = 0x30(FSL_IDLE), any action are not running. */ -/* And the state is suspended. */ -/* = 0x43(FSL_SUSPEND), OK, previous flash action is suspended. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_StandBy(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: resumes the flash action */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), resumed flash action is OK. */ -/* And the state is resumed from the suspended state. */ -/* = 0x1A(FSL_ERR_ERASE), resumed flash action is Erase error. */ -/* And the state is resumed from the suspended state. */ -/* = 0x1F(FSL_ERR_FLOW), violates the precondition. */ -/* or FSL is not suspending. */ -/* = 0xFF(FSL_BUSY), resumed flash action is BUSY. */ -/* And the state is resumed from the suspended state. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_WakeUp(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: puts the security information into the destination variable */ -/* Input: *data_destination_pu08 - destination variable of the security info */ -/* The format of the security info is: "unsigned char" */ -/* */ -/* Format of the security info: */ -/* bit_1 = 0 -> boot-area re-programming disabled, otherwise enabled */ -/* bit_2 = 0 -> block erase command disabled, otherwise enabled */ -/* bit_4 = 0 -> write command disabled, otherwise enabled */ -/* other bits = 1 */ -/* Output: data_destination_pu08 - security info */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_GetSecurityFlags(fsl_u08 __near *data_destination_pu08); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: puts the boot flag into the destination variable */ -/* Input: *data_destination_pu08 - destination variable of the boot flag */ -/* The format of the boot flag info is: "unsigned char" */ -/* The value of the boot info is 0x00 for cluster 0 and 0x01 for cluster 1. */ -/* Output: data_destination_pu08 - the boot flag info */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_GetBootFlag(fsl_u08 __near *data_destination_pu08); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: puts the state of swap boot clusters into the destination variable */ -/* Input: *data_destination_pu08 - destination variable of the state of boot info */ -/* The format of the state of boot info is: "unsigned char" */ -/* The value of the state of boot info is 0x00 for cluster 0 */ -/* and 0x01 for cluster 1. */ -/* Output: data_destination_pu08 - the state of boot info */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_GetSwapState(fsl_u08 __near *data_destination_pu08); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: puts the last address of the specified block into fsl_destination_address_u32 */ -/* Input: *getblockendaddr_pstr - struct fsl_getblockendaddr_t to get the last address */ -/* Output: fsl_destination_address_u32 - the last address */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_GetBlockEndAddr(__near fsl_getblockendaddr_t* getblockendaddr_pstr); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: puts the information about the protected flash area into fsl_*_block_u16 */ -/* Input: *getfsw_pstr - struct fsl_fsw_t to get FSW */ -/* Output: fsl_start_block_u16 - the start block of FSW */ -/* fsl_end_block_u16 - the end block of FSW */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_GetFlashShieldWindow(__near fsl_fsw_t* getfsw_pstr); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: sets specified security flag by dedicated command-function. */ -/* */ -/* There are following security levels: */ -/* a) block-erase protection */ -/* b) write protection */ -/* c) boot-cluster protection */ -/* */ -/* CAUTION: */ -/* Each security flag can be written by the application only once */ -/* */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x1A(FSL_ERR_ERASE), erase error */ -/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ -/* = 0x1C(FSL_ERR_WRITE), write error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_SetBlockEraseProtectFlag(void); -extern fsl_u08 FSL_SetWriteProtectFlag(void); -extern fsl_u08 FSL_SetBootClusterProtectFlag(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: inverts the boot flag. */ -/* */ -/* CAUTION: */ -/* After reset, the boot clusters will be switched regarding this boot flag */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x10(FSL_ERR_PROTECTION), protection error */ -/* = 0x1A(FSL_ERR_ERASE), erase error */ -/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ -/* = 0x1C(FSL_ERR_WRITE), write error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_InvertBootFlag(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: defines a new Flash Shield Window inside the flash memory */ -/* Input: *setfsw_pstr - struct fsl_fsw_t to set FSW */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x05(FSL_ERR_PARAMETER), parameter error */ -/* = 0x10(FSL_ERR_PROTECTION), protection error */ -/* = 0x1A(FSL_ERR_ERASE), erase error */ -/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ -/* = 0x1C(FSL_ERR_WRITE), write error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_SetFlashShieldWindow(__near fsl_fsw_t* setfsw_pstr); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: swaps boot cluster 0 and boot cluster 1 physically without setting */ -/* the boot flag. After swap the library jumps to the address of the */ -/* reset vector. */ -/* */ -/* CAUTION: */ -/* After reset, the boot cluster will be switched regarding the boot flag */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x10(FSL_ERR_PROTECTION), protection error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_SwapBootCluster(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: inverts the boot flag and swaps boot cluster 0 and boot cluster 1 physically */ -/* */ -/* CAUTION: */ -/* After reset, the boot clusters will be switched regarding this boot flag */ -/* Input: - */ -/* Output: - */ -/* Returned: fsl_u08, status code */ -/* = 0x00(FSL_OK), normal */ -/* = 0x10(FSL_ERR_PROTECTION), protection error */ -/* = 0x1A(FSL_ERR_ERASE), erase error */ -/* = 0x1B(FSL_ERR_IVERIFY), internal verify error */ -/* = 0x1C(FSL_ERR_WRITE), write error */ -/* = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. */ -/* or violates the precondition. */ -/* or FSL is suspending. */ -/* = 0xFF(FSL_BUSY), normal and means "process was started" */ -/*----------------------------------------------------------------------------------------------*/ -extern fsl_u08 FSL_SwapActiveBootCluster(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: forces a hardware reset via illegal instruction */ -/* Input: - */ -/* Output: - */ -/* Returned: - */ -/*----------------------------------------------------------------------------------------------*/ -extern void FSL_ForceReset(void); - - -/*----------------------------------------------------------------------------------------------*/ -/* Block type: FSL command function */ -/*----------------------------------------------------------------------------------------------*/ -/* Purpose: gets the internal version information of the used FSL */ -/* Input: - */ -/* Output: - */ -/* Returned: pointer to version string */ -/*----------------------------------------------------------------------------------------------*/ -extern __far fsl_u08* FSL_GetVersionString(void); - - -#endif diff --git a/ECU_BOOT/FSL/incrl78/fsl.inc b/ECU_BOOT/FSL/incrl78/fsl.inc deleted file mode 100644 index c22970f..0000000 --- a/ECU_BOOT/FSL/incrl78/fsl.inc +++ /dev/null @@ -1,513 +0,0 @@ -;================================================================================================= -; Project = Flash self-programming library, MF3 single voltage flash -; Module = fsl.inc -; Device: = RL78 -; Version = V2.20 -;================================================================================================= -; COPYRIGHT -;================================================================================================= -; Copyright(c) 2010,2011,2012 Renesas Electronics Corporation -;================================================================================================= -; Purpose: -; implementation module of low-level flash memory access -; CAUTION: Please comment out unused function prototypes -; for code size reduction. -; -;================================================================================================= -; -; RENESAS ELECTRONICS CONFIDENTIAL AND PROPRIETARY. -; This program must be used solely for the purpose for which it was furnished -; by Renesas Electronics Corporation. No part of this program may be reproduced or -; disclosed to others, in any form, without the prior written permission of -; Renesas Electronics Corporation. -; -;================================================================================================= - -$IF (__FSL_INC_INCLUDED) - -$ELSE -$SET (__FSL_INC_INCLUDED) - - -;================================================================================================= -; constant definitions -;================================================================================================= - -;status code definitions returned by the FSL functions -FSL_OK EQU (000H) ; no problems -FSL_ERR_PARAMETER EQU (005H) ; parameter error -FSL_ERR_PROTECTION EQU (010H) ; protection error (access right conflict) -FSL_ERR_ERASE EQU (01AH) ; erase error -FSL_ERR_BLANKCHECK EQU (01BH) ; blankcheck error (MRG11) -FSL_ERR_IVERIFY EQU (01BH) ; internal verify error (MRG11) -FSL_ERR_WRITE EQU (01CH) ; write error -FSL_ERR_FLOW EQU (01FH) ; flow error (wrong timing calling) -FSL_IDLE EQU (030H) ; idle state (any action is not running) -FSL_SUSPEND EQU (043H) ; previous flash action is suspended -FSL_BUSY EQU (0FFH) ; command is being processed - - -;================================================================================================= -; global function prototypes -;================================================================================================= - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: initialization of flash environment -; -; Input: AX,C - pointer to FSL descriptor -; Output: - -; Returned: C, status_code -; = 0x00(FSL_OK), normal and means initialization OK -; = 0x05(FSL_ERR_PARAMETER), parameter error or HOCO isn't started -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_Init - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: opens flash environment -; Input: - -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_Open - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: closes flash environment -; Input: - -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_Close - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: prepares following functions to be called -; FSL_BlankCheck, FSL_Erase, FSL_Write, FSL_IVerify, FSL_StatusCheck -; Input: - -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_PrepareFunctions - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: prepares following functions to be called -; FSL_Set*ProtectFlag, FSL_InvertBootFlag, FSL_SetFlashShieldWindow, -; FSL_SwapBootCluster, FSL_SwapActiveBootCluster -; Input: - -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_PrepareExtFunctions - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: changes all vector addresses to specified address in RAM -; Input: AX - vector address in RAM (Lower 16 bits address) -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_ChangeInterruptTable - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: restores all vector addresses to initial vector addresses -; Input: - -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_RestoreInterruptTable - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: checks if specified block is blank -; Input: AX - block number has to be checked -; Output: - -; Returned: C, status_code -; = 0x00(FSL_OK), normal and means "block is blank" -; = 0x05(FSL_ERR_PARAMETER), parameter error -; = 0x1B(FSL_ERR_BLANKCHECK), blank-check error, means "block is not blank" -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_BlankCheck - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: erase specified block -; Input: AX - block number has to be erase -; Output: - -; Returned: C, status_code -; = 0x00(FSL_OK), normal and means "block erased successfully" -; = 0x05(FSL_ERR_PARAMETER), parameter error -; = 0x10(FSL_ERR_PROTECTION), protection error -; = 0x1A(FSL_ERR_ERASE), erase error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_Erase - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: performs internal verify on specified block -; Input: AX - block number has to be verified -; Output: - -; Returned: C, status_code -; = 0x00(FSL_OK), normal and means "block is verified" -; = 0x05(FSL_ERR_PARAMETER), parameter error -; = 0x1B(FSL_ERR_IVERIFY), internal verify error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_IVerify - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: writes N words from the data buffer into flash -; Input: AX - pointer to struct fsl_write_str to write -; Output: - -; Condition: 1) (fsl_destination_address_u32 MOD 4 == 0) -; 2) most significant byte (MSB) of fsl_destination_address_u32 has to be 0x00 -; Means: 0x00abcdef 24 bit flash address allowed -; 3) (0 < fsl_word_count_u08 <= 64) -; 4) (fsl_word_count_u08 <= sizeof(data buffer)) -; NOT CHECKED BY FSL -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x05(FSL_ERR_PARAMETER), parameter error -; = 0x10(FSL_ERR_PROTECTION), protection error -; = 0x1C(FSL_ERR_WRITE), write error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_Write - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: controls the flash action start/continue/check for the last called function -; Input: - -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x1A(FSL_ERR_ERASE), erase error -; = 0x1B(FSL_ERR_BLANKCHECK), blank-check error, means "block not blank" -; = 0x1B(FSL_ERR_IVERIFY), internal verify error -; = 0x1C(FSL_ERR_WRITE), write error -; = 0x1F(FSL_ERR_FLOW), violates the precondition. -; or FSL is suspending. -; = 0x30(FSL_IDLE), any action is not running -; = 0xFF(FSL_BUSY), normal and means "process was not finished" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_StatusCheck - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: susdends the flash action -; Input: - -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), previous flash action is OK. -; And the state is suspended. -; = 0x1A(FSL_ERR_ERASE), previous flash action is Erase error. -; And the state is suspended. -; = 0x1B(FSL_ERR_BLANKCHECK), previous flash action is Blank error. -; And the state is suspended. -; = 0x1B(FSL_ERR_IVERIFY), previous flash action is IVerify error. -; And the state is suspended. -; = 0x1C(FSL_ERR_WRITE), previous flash action is Write error. -; And the state is suspended. -; = 0x1F(FSL_ERR_FLOW), violates the precondition. -; or has been already suspending. -; = 0x30(FSL_IDLE), any action are not running. -; And the state is suspended. -; = 0x43(FSL_SUSPEND), OK, previous flash action is suspended. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_StandBy - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: resumes the flash action -; Input: - -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), resumed flash action is OK. -; And the state is resumed from the suspended state. -; = 0x1A(FSL_ERR_ERASE), resumed flash action is Erase error. -; And the state is resumed from the suspended state. -; = 0x1F(FSL_ERR_FLOW), violates the precondition. -; or FSL is not suspending. -; = 0xFF(FSL_BUSY), resumed flash action is BUSY. -; And the state is resumed from the suspended state. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_WakeUp - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: puts the security information into the destination address -; Input: AX - destination address of the security info -; The format of the security info is: "unsigned char" -; -; Format of the security info: -; bit_1 = 0 -> boot-area re-programming disabled, otherwise enabled -; bit_2 = 0 -> block erase command disabled, otherwise enabled -; bit_4 = 0 -> write command disabled, otherwise enabled -; other bits = 1 -; Output: data_destination_pu08 - security info -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_GetSecurityFlags - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: puts the boot flag into the destination address -; Input: AX - destination address of the boot flag -; The format of the boot flag info is: "unsigned char" -; The value of the boot info is 0x00 for cluster 0 and 0x01 for cluster 1. -; Output: data_destination_pu08 - the boot flag info -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_GetBootFlag - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: puts the state of swap boot clusters into the destination address -; Input: AX - destination address of the state of boot info -; The format of the state of boot info is: "unsigned char" -; The value of the state of boot info is 0x00 for cluster 0 -; and 0x01 for cluster 1. -; Output: data_destination_pu08 - the state of boot info -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_GetSwapState - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: puts the last address of the specified block into fsl_destination_address_u32 -; Input: AX - pointer to struct fsl_getblockendaddr_str to get the last address -; Output: fsl_destination_address_u32 - the last address -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x05(FSL_ERR_PARAMETER), parameter error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_GetBlockEndAddr - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: puts the information about the protected flash area into fsl_*_block_u16 -; Input: AX - pointer to struct fsl_fsw_str to get FSW -; Output: fsl_start_block_u16 - the start block of FSW -; fsl_end_block_u16 - the end block of FSW -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_GetFlashShieldWindow - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: sets specified security flag by dedicated command-function. -; -; There are following security levels: -; a) block-erase protection -; b) write protection -; c) boot-cluster protection -; -; CAUTION: -; Each security flag can be written by the application only once -; -; Input: - -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x1A(FSL_ERR_ERASE), erase error -; = 0x1B(FSL_ERR_IVERIFY), internal verify error -; = 0x1C(FSL_ERR_WRITE), write error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_SetBlockEraseProtectFlag -EXTRN _FSL_SetWriteProtectFlag -EXTRN _FSL_SetBootClusterProtectFlag - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: inverts the boot flag. -; -; CAUTION: -; After reset, the boot clusters will be switched regarding this boot flag -; Input: - -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x10(FSL_ERR_PROTECTION), protection error -; = 0x1A(FSL_ERR_ERASE), erase error -; = 0x1B(FSL_ERR_IVERIFY), internal verify error -; = 0x1C(FSL_ERR_WRITE), write error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_InvertBootFlag - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: defines a new Flash Shield Window inside the flash memory -; Input: AX - pointer struct fsl_fsw_str to set FSW -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x05(FSL_ERR_PARAMETER), parameter error -; = 0x10(FSL_ERR_PROTECTION), protection error -; = 0x1A(FSL_ERR_ERASE), erase error -; = 0x1B(FSL_ERR_IVERIFY), internal verify error -; = 0x1C(FSL_ERR_WRITE), write error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_SetFlashShieldWindow - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: swaps boot cluster 0 and boot cluster 1 physically without setting -; the boot flag. After swap the library jumps to the address of the -; reset vector. -; -; CAUTION: -; After reset, the boot cluster will be switched regarding the boot flag -; Input: - -; Output: - -; Returned: C, status code -; = 0x10(FSL_ERR_PROTECTION), protection error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_SwapBootCluster - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: inverts the boot flag and swaps boot cluster 0 and boot cluster 1 physically -; -; CAUTION: -; After reset, the boot clusters will be switched regarding this boot flag -; Input: - -; Output: - -; Returned: C, status code -; = 0x00(FSL_OK), normal -; = 0x10(FSL_ERR_PROTECTION), protection error -; = 0x1A(FSL_ERR_ERASE), erase error -; = 0x1B(FSL_ERR_IVERIFY), internal verify error -; = 0x1C(FSL_ERR_WRITE), write error -; = 0x1F(FSL_ERR_FLOW), last operation has not finished, yet. -; or violates the precondition. -; or FSL is suspending. -; = 0xFF(FSL_BUSY), normal and means "process was started" -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_SwapActiveBootCluster - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: forces a hardware reset via illegal instruction -; Input: - -; Output: - -; Returned: - -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_ForceReset - - -;---------------------------------------------------------------------------------------------- -; Block type: FSL command function -;---------------------------------------------------------------------------------------------- -; Purpose: gets the internal version information of the used FSL -; Input: - -; Output: - -; Returned: BC, pointer to version string(L) -; DE, pointer to version string(H) -;---------------------------------------------------------------------------------------------- -EXTRN _FSL_GetVersionString - - - -$ENDIF diff --git a/ECU_BOOT/FSL/incrl78/fsl_types.h b/ECU_BOOT/FSL/incrl78/fsl_types.h deleted file mode 100644 index 7dba50b..0000000 --- a/ECU_BOOT/FSL/incrl78/fsl_types.h +++ /dev/null @@ -1,84 +0,0 @@ -/*==============================================================================================*/ -/* Project = Flash self-programming library, MF3 single voltage flash */ -/* Module = fsl_types.h */ -/* Device: = RL78 */ -/* Version = V2.20 */ -/*==============================================================================================*/ -/* COPYRIGHT */ -/*==============================================================================================*/ -/* Copyright(c) 2010,2011,2012 Renesas Electronics Corporation */ -/*==============================================================================================*/ -/* Purpose: definition of types used by the library */ -/*==============================================================================================*/ -/* */ -/* RENESAS ELECTRONICS CONFIDENTIAL AND PROPRIETARY. */ -/* This program must be used solely for the purpose for which it was furnished */ -/* by Renesas Electronics Corporation. No part of this program may be reproduced or */ -/* disclosed to others, in any form, without the prior written permission of */ -/* Renesas Electronics Corporation. */ -/* */ -/*==============================================================================================*/ - - - -#ifndef __FSL_TYPES_H_INCLUDED -#define __FSL_TYPES_H_INCLUDED - - - -/*==============================================================================================*/ -/* unsigned type definitions */ -/*==============================================================================================*/ -typedef unsigned char fsl_u08; -typedef unsigned int fsl_u16; -typedef unsigned long int fsl_u32; - - -/*==============================================================================================*/ -/* global constant definitions */ -/*==============================================================================================*/ - - -/*==============================================================================================*/ -/* global type definitions */ -/*==============================================================================================*/ - -/* FSL descriptor type */ -typedef struct { /* ---------------------------------------------- */ - fsl_u08 fsl_flash_voltage_u08; /* 1, setting of flash voltage mode */ - fsl_u08 fsl_frequency_u08; /* 1, CPU frequency (MHz) */ - fsl_u08 fsl_auto_status_check_u08; /* 1, setting of status check mode */ - } fsl_descriptor_t; /*------------------------------------------------*/ - /* 3 bytes in total */ - /*------------------------------------------------*/ - - -/* FSL write type */ -typedef struct { /* ---------------------------------------------- */ - fsl_u08 __near *fsl_data_buffer_p_u08; /* 2, pointer to data buffer */ - fsl_u32 fsl_destination_address_u32; /* 4, starting address to write data */ - fsl_u08 fsl_word_count_u08; /* 1, number of words to write data */ - } fsl_write_t; /*------------------------------------------------*/ - /* 7 bytes in total */ - /*------------------------------------------------*/ - - -/* FSL get block end address type */ -typedef struct { /* ---------------------------------------------- */ - fsl_u32 fsl_destination_address_u32; /* 4, destination variable for the end address */ - fsl_u16 fsl_block_u16; /* 2, block number */ - } fsl_getblockendaddr_t; /*------------------------------------------------*/ - /* 6 bytes in total */ - /*------------------------------------------------*/ - - -/* FSL get and set flash shield window type */ -typedef struct { /* ---------------------------------------------- */ - fsl_u16 fsl_start_block_u16; /* 2, start block number of FSW (destination) */ - fsl_u16 fsl_end_block_u16; /* 2, end block number of FSW (destination) */ - } fsl_fsw_t; /*------------------------------------------------*/ - /* 4 bytes in total */ - /*------------------------------------------------*/ - - -#endif diff --git a/ECU_BOOT/FSL/librl78/fsl.lib b/ECU_BOOT/FSL/librl78/fsl.lib deleted file mode 100644 index 0cfa854..0000000 Binary files a/ECU_BOOT/FSL/librl78/fsl.lib and /dev/null differ diff --git a/ECU_BOOT/FSL/r_fsl_sample_c.c b/ECU_BOOT/FSL/r_fsl_sample_c.c deleted file mode 100644 index 6657f0b..0000000 --- a/ECU_BOOT/FSL/r_fsl_sample_c.c +++ /dev/null @@ -1,868 +0,0 @@ -/*==============================================================================*/ -/* */ -/* Project = Sample program for flash self-programming library */ -/* Module = r_fsl_sample_c.c */ -/* Version = V1.01(Target FSL Version for CA78K0R is V2.20) */ -/* Target CPU = RL78/G13 ( R5F100LEA / QB-R5F100LE-TB ) */ -/* Environment = CS+ for CA[CA78K0R],CX (V3.00) */ -/* */ -/* Date = 12, 28, 2016 */ -/* */ -/*==============================================================================*/ -/* COPYRIGHT */ -/*==============================================================================*/ -/* DISCLAIMER */ -/* This software is supplied by Renesas Electronics Corporation and is only */ -/* intended for use with Renesas products. No other uses are authorized. This */ -/* software is owned by Renesas Electronics Corporation and is protected under */ -/* all applicable laws, including copyright laws. */ -/* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING */ -/* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT */ -/* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE */ -/* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. */ -/* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS */ -/* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE */ -/* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR */ -/* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE */ -/* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. */ -/* Renesas reserves the right, without notice, to make changes to this software */ -/* and to discontinue the availability of this software. By using this software,*/ -/* you agree to the additional terms and conditions found by accessing the */ -/* following link: */ -/* http://www.renesas.com/disclaimer */ -/* */ -/* Copyright (C) 2010-2016 Renesas Electronics Corporation. All rights reserved.*/ -/*==============================================================================*/ -/*------------------------------------------------------------------------------*/ -/* Expanded functions */ -/*------------------------------------------------------------------------------*/ -#pragma sfr /* SFR (Special Function Register) area usage declaration */ -#pragma DI /* Interrupt disable instruction usage declaration */ -#pragma EI /* Interrupt enable instruction usage declaration */ -#pragma NOP /* CPU control instruction (NOP) usage declaration */ - - -/*------------------------------------------------------------------------------*/ -/* interrupt function */ -/*------------------------------------------------------------------------------*/ -#pragma interrupt INTWDTI samIntWdt /* WDT interrupt */ - - -/*------------------------------------------------------------------------------*/ -/* section and switch */ -/*------------------------------------------------------------------------------*/ -/******************************************/ -/* Setting of sections for sample program */ -/******************************************/ -/* Sets (changes) section names of code (program) */ -#ifdef __RL78_SMALL__ - #pragma section @@CODE SAM_CODE -#else - #pragma section @@CODEL SAM_CODE -#endif - -/* Sets (changes) section names of fixed-value table (const) */ -#ifdef __RL78_LARGE__ - #pragma section @@CNSTL SAM_CNST -#else - #pragma section @@CNST SAM_CNST -#endif - -/* Sets (changes) section names of data (variable) */ -#ifdef __RL78_LARGE__ - #pragma section @@DATAL SAM_DATA -#else - #pragma section @@DATA SAM_DATA -#endif - - - -/***********************************************/ -/* Symbol for program switch of sample program */ -/***********************************************/ -/* Can be set when QB-R5F100LE-TB is used alone */ -#if 0 -#define __QB_R5F100LE_TB__ /* */ - - -/* Other boards (on-chip oscillator setting) */ -#else -#define __NON_TARGET__ /* */ - -#endif - - -/*------------------------------------------------------------------------------*/ -/* Include files */ -/*------------------------------------------------------------------------------*/ -/* Standard library (runtime library is used) */ -#include /* For memcpy */ - -/* Flash self-programming library */ -#include "fsl.h" /* Library header file */ -#include "fsl_types.h" /* Library header file */ - - - -/*------------------------------------------------------------------------------*/ -/* structure */ -/*------------------------------------------------------------------------------*/ -/* Writing setting parameter structure for sample program */ -typedef struct { - fsl_u08 *pubDataBuffer; /* Pointer to the start of data buffer */ - fsl_u08 dubStartBlock; /* Writing start block number */ - fsl_u08 *pubWriteData; /* Pointer to the beginning of write data */ - fsl_u32 duwWriteDataSize; /* Write data size */ - fsl_u08 dubEndOption; /* End option */ -} SAM_FSL_PARM_T; - - -/*------------------------------------------------------------------------------*/ -/* Constant definitions */ -/*------------------------------------------------------------------------------*/ -/*****************************************/ -/* Symbol definitions for sample program */ -/*****************************************/ -/* Error code */ -#define SAM_ERR_PARM 0x7F /* Parameter error */ -#define SAM_ERR_OPT 0x80 /* Option execution error flag */ - -/* Basic data */ -#define SAM_BLOCK_SIZE 0x400l /* Standard block size */ -#define SAM_WORD_SIZE 4 /* Standard word size */ -#define SAM_DUMYY_DATA 0xFF /* Dummy write data */ -#define SAM_DATA_SIZE 0x490 /* Write data size */ -#define SAM_BUFFER_SIZE 256 /* Write buffer size */ - -/* Option code for sample program */ -#define SAM_OPT_NON 0x00 /* No options */ -#define SAM_OPT_RST 0x01 /* Reset execution */ -#define SAM_OPT_CBOOT 0x02 /* Boot flag change */ -#define SAM_OPT_ACT_SWAP 0x03 /* Boot flag change + swapping (executable only in RAM) */ -#define SAM_OPT_CBOOT_RST 0x04 /* Boot flag change + reset */ -#define SAM_OPT_CBOOT_SUP 0x05 /* Boot flag change + swapping + return to start */ -#define SAM_OPT_SUP 0x06 /* Swapping + return to start (no change in boot flag) */ - -/* Control macro for sample program */ -#define SAM_WDT_RESET() WDTE = 0xAC /* Watchdog timer reset */ - -/**************************************************/ -/* QB-R5F100LE-TB: Symbol definitions for writing */ -/**************************************************/ -#ifdef __QB_R5F100LE_TB__ -#define SAM_START_BLOCK 0x04 /* Writing start block number (4: 1000H) */ -#define SAM_SET_OPTION SAM_OPT_CBOOT /* After writing, the option to change the boot flag is set */ - -/* QB-R5F100LE-TB, LED control macros */ -#define SAM_LED1_INIT() P6.2 = 1, PM6.2 = 0 - /* Initializes on-board LED1 (turns off) */ -#define SAM_LED1_ON() P6.2 = 0 /* Turns on on-board LED1 */ -#define SAM_LED1_OFF() P6.2 = 1 /* Turns off on-board LED1 */ - -#define SAM_LED2_INIT() P6.3 = 1, PM6.3 = 0 - /* Initializes on-board LED2 (turns off) */ -#define SAM_LED2_ON() P6.3 = 0 /* Turns on on-board LED2 */ -#define SAM_LED2_OFF() P6.3 = 1 /* Turns off on-board LED2 */ - -/*************************************************************/ -/* Symbol definitions for making settings for normal writing */ -/*************************************************************/ -#else -#define SAM_START_BLOCK 0x0D /* Writing start block (D: address 3400) */ -#define SAM_SET_OPTION SAM_OPT_NON /* No option setting */ - -/* No processes for LED (invalid code) */ -#define SAM_LED1_INIT() -#define SAM_LED1_ON() -#define SAM_LED1_OFF() -#define SAM_LED2_INIT() -#define SAM_LED2_ON() -#define SAM_LED2_OFF() - -#endif - -/*------------------------------------------------------------------------------*/ -/* external reference parameter */ -/*------------------------------------------------------------------------------*/ -/* Data buffer body */ -fsl_u08 fsl_data_buffer[ SAM_BUFFER_SIZE ]; - -/* Fixed-value table for writing */ -extern const fsl_u08 samDubWriteData[ SAM_DATA_SIZE ]; - -/*********************************************************/ -/* QB-R5F100LE-TB, */ -/*********************************************************/ -#ifdef __QB_R5F100LE_TB__ -/* Sets the operating clock to internal 32-MHz clock (external 20-MHz clock is not used because the clock setting is not confirmed) */ -const __far fsl_descriptor_t fsl_descriptor_pstr = { 0x00, 0x20, 0x01 }; -#else -/* Sets the operating clock to internal 32-MHz clock */ -const __far fsl_descriptor_t fsl_descriptor_pstr = { 0x00, 0x20, 0x01 }; -#endif - -/*------------------------------------------------------------------------------*/ -/* prototype declarations */ -/*------------------------------------------------------------------------------*/ -/* Sample functions for target */ -void samTargetInit( void ); /* Target initialization processing */ -void samTargetEnd ( void ); /* Target end processing */ - -/* Sample functions for writing program */ -fsl_u08 samFslBlockWrite( SAM_FSL_PARM_T * ); /* Writing program body */ -fsl_u08 samFslStart ( void ); /* Flash self-programming library start processing */ -void samFslEnd ( void ); /* Flash self-programming library end processing */ - - -/*##############################################################################*/ -/*------------------------------------------------------------------------------*/ -/* start-up : hdwinit functions */ -/*------------------------------------------------------------------------------*/ -/*==============================================================================*/ -/* Function name : hdwinit */ -/* IN : void */ -/* OUT : void */ -/* Description : Hardware initialization function for the start-up routine */ -/* Note 1: The start-up routine should be executed before the */ -/* main function. */ -/* Note 2: Should be called in the DI(interrupt disabled) state.*/ -/* Date : 04,28,2011 */ -/*==============================================================================*/ -void hdwinit( void ) -{ - /***********************************/ - /* Setting of low-voltage detector */ - /***********************************/ - LVIM = 0x00; /* Initializes the voltage detection register setting */ - LVIS = 0x00; /* Initializes the voltage detection level register setting */ - -/* Makes the setting to switch to external 20-MHz oscillator for QB-R5F100LE-TB */ -#if 0 - - - /* Deleted because the clock setting has not yet been confirmed. */ - - - /***********************************************************************************************/ - /* Initialization of clock control registers */ - /* The operating clock is changed from on-chip oscillator to X1 oscillator (20 MHz is assumed) */ - /* Note: When the above change is not made, set fsl_user.h to 20 MHz. */ - /***********************************************************************************************/ - /* Subsystem clock supply mode control register */ - OSMC = 0b00000001; /* Specifies operation at a frequency exceeding 10 MHz */ - - /* Clock operation mode control register */ - CMC = 0b01010001; /* Sets the oscillation modes for X1 and XT1 pins and sets the X1 frequency to 10 MHz < fx <= 20 MHz */ - - /* Clock operation status control register */ - CSC = 0b00000000; /* Starts X1 and XT1 oscillators */ - - /* Oscillation stabilization time select register */ - OSTS = 0b11110000; /* Sets the X1 oscillation stabilization time (102.4 us or more at fx = 20 MHz) */ - - /* Oscillation stabilization time counter status register */ - while( OSTC == 0 ); /* Waits for the X1 oscillation stabilization time to pass (all 0) */ - - /* System clock control register */ - CKC = 0b00011000; /* Changes the main system clock from on-chip oscillator to X1 oscillator */ - - while( MCS == 0 ); /* Confirms the main system clock (fMAIN) status */ - /* Note: Oscillator switching is confirmed (MCS: bit 5 of CKC register) */ - - /* Clock operation status control register: Controls operation of the high-speed on-chip oscillator */ - /* HIOSTOP = 1; */ /* CSC = 0b00000001: Stops the high-speed on-chip oscillator */ - /* Since the high-speed on-chip oscillator is required to execute RL78 self-programming, */ - /* the high-speed on-chip oscillator is not stopped. */ - - - - -#endif -} - - -/*##############################################################################*/ -/*------------------------------------------------------------------------------*/ -/* main functions */ -/*------------------------------------------------------------------------------*/ -/*==============================================================================*/ -/* Function name : main */ -/* IN : void */ -/* OUT : void */ -/* Description : Main function */ -/* Date : 04,28,2011 */ -/*==============================================================================*/ -void main( void ) -{ - fsl_u08 dubRetCode; /* Return code */ - SAM_FSL_PARM_T dtyFslData; /* Parameter for writing program */ - - /* Target initialization processing */ - samTargetInit(); - - /* Enables interrupts */ - EI(); - - /* Parameter setting */ - dtyFslData.pubDataBuffer = fsl_data_buffer; /* Start address of data buffer */ - dtyFslData.dubStartBlock = SAM_START_BLOCK; /* Writing start block number */ - dtyFslData.pubWriteData = samDubWriteData; /* Start address of write data */ - dtyFslData.duwWriteDataSize = SAM_DATA_SIZE; /* Write data size */ - dtyFslData.dubEndOption = SAM_SET_OPTION; /* End option of writing program */ - - /* Calls the sample writing program */ - dubRetCode = samFslBlockWrite( &dtyFslData ); - - /* Normal termination */ - if( dubRetCode == FSL_OK ) - { } - /* Abnormal termination */ - else { - /* Abnormal determination process */ - /* Error in parameter check or rewrite process */ - if( ( dubRetCode & SAM_ERR_OPT ) != SAM_ERR_OPT ) - { - /* Error check */ - switch( dubRetCode ) - { - /* Errors caused by flash self-programming library */ - - case FSL_ERR_PARAMETER: /* Parameter error */ - case FSL_ERR_PROTECTION: /* Protect error */ - case FSL_ERR_ERASE: /* Erasure error */ - case FSL_ERR_IVERIFY: /* Internal verification error */ - case FSL_ERR_WRITE: /* Writing error */ - break; - - /* Sample program error */ - case SAM_ERR_PARM: /* Parameter error */ - break; - - /* Others */ - default: - break; - } - } - /* Error caused by option execution */ - else { - dubRetCode &= ~SAM_ERR_OPT; /* Option flag is false */ - - /* Error check */ - switch( dubRetCode ) - { - /* Errors caused by flash self-programming library */ - case FSL_ERR_PARAMETER: /* Parameter error */ - case FSL_ERR_PROTECTION: /* Protect error */ - case FSL_ERR_ERASE: /* Erasure error */ - case FSL_ERR_IVERIFY: /* Internal verification error */ - case FSL_ERR_WRITE: /* Writing error */ - break; - - /* Others */ - default: - break; - } - } - } - - /* Target end processing */ - samTargetEnd(); - -/* WDT reset execution process for QB_R5F100LE_TB */ -#ifdef __QB_R5F100LE_TB__ - /* Disables interrupts */ - DI(); - - /* Resets the watchdog timer once */ - SAM_WDT_RESET(); -#endif - - /* End loop (this is reset by watchdog timer) */ - while( 1 ) - { - NOP(); - NOP(); - } -} - - -/*##############################################################################*/ -/*------------------------------------------------------------------------------*/ -/* sub functions */ -/*------------------------------------------------------------------------------*/ -/*==============================================================================*/ -/* Function name : samFslBlockWrite */ -/* IN : SAM_FSL_PARM_T / Setting parameter group */ -/* OUT : fsl_u08 / Return code */ -/* Description : Sample program for flash self-programming */ -/* Date : 04,28,2011 */ -/*==============================================================================*/ -fsl_u08 samFslBlockWrite( SAM_FSL_PARM_T *ptyFslData ) -{ - fsl_u08 dubRetCode; /* Return code */ - fsl_u32 duwWriteBlockNum; /* Number of remaining blocks to be written */ - fsl_u16 duhWriteBufSize; /* Size of data buffer for writing */ - - /*******************************************************/ - /* Setting parameter check + Initialization processing */ - /*******************************************************/ - if( ( ptyFslData->duwWriteDataSize == 0 ) || - ( ptyFslData->pubDataBuffer == 0 ) ) - { - dubRetCode = SAM_ERR_PARM; /* Parameter error */ - } - else { - /* When the data buffer is not in word units (4 bytes), the remainder is */ - /* rounded down to adjust the maximum write data length to be in word units. */ - duhWriteBufSize = SAM_BUFFER_SIZE - SAM_BUFFER_SIZE % SAM_WORD_SIZE; - - /* Flash self-programming library start processing */ - dubRetCode = samFslStart(); - } - - /*******************/ - /* Writing process */ - /*******************/ - /* Loops until all data has been written or an error has occurred */ - for( duwWriteBlockNum = ( ( ptyFslData->duwWriteDataSize - 1 ) / SAM_BLOCK_SIZE ) + 1 ; - ( duwWriteBlockNum != 0 ) && ( dubRetCode == FSL_OK ) ; - duwWriteBlockNum-- ,ptyFslData->dubStartBlock++ ) - { - /* Confirms the state of the target block */ - dubRetCode = FSL_BlankCheck( ptyFslData->dubStartBlock ); - - /* If the target block is not in the blank state */ - if( dubRetCode == FSL_ERR_BLANKCHECK ) - { - dubRetCode = FSL_Erase( ptyFslData->dubStartBlock ); - } - - /* Writing process (in block units) */ - if( dubRetCode == FSL_OK ) - { - fsl_u32 duwRemDataSize; /* Size of data not yet written */ - fsl_u32 duwWriteAddress; /* Writing destination address */ - fsl_u32 duwOneWriteSize; /* Write data length */ - fsl_write_t dtyWriteBuff; /* */ - - /* Calculates the writing start address */ - duwWriteAddress = ptyFslData->dubStartBlock * SAM_BLOCK_SIZE; - - /* If this is not the last write block (data remains to be written to the next block) */ - if( duwWriteBlockNum > 1 ) - { - /* Sets the write data size for the block size */ - duwRemDataSize = SAM_BLOCK_SIZE; - } - else { - /* When this is the last block, sets the remaining data for the write data size */ - duwRemDataSize = ptyFslData->duwWriteDataSize; - } - - /* Loops until all remaining data of the target block has been written or an error has occurred */ - for( ; ( duwRemDataSize != 0 ) && ( dubRetCode == FSL_OK ) ; - duwWriteAddress += duhWriteBufSize ) - { - /* If the remaining write data is the same size as the data buffer */ - if( duwRemDataSize >= duhWriteBufSize ) - { - /* Sets the buffer size as the unit for writing */ - duwOneWriteSize = duhWriteBufSize; - } - else { - /* Sets the remaining write data size as the unit for writing */ - duwOneWriteSize = ptyFslData->duwWriteDataSize; - } - - /* Copies the write data to the data buffer */ - memcpy( ptyFslData->pubDataBuffer , - ptyFslData->pubWriteData , - (unsigned int)duwOneWriteSize ); - - /* Re-calculates the remaining write data */ - duwRemDataSize -= duwOneWriteSize; - ptyFslData->duwWriteDataSize -= duwOneWriteSize; - ptyFslData->pubWriteData += duwOneWriteSize; - - /* When the write data is not in word units (4 bytes), the size is rounded up */ - /* and dummy data is set for the remaining data */ - for( ; ( duwOneWriteSize % SAM_WORD_SIZE ) != 0 ; duwOneWriteSize++ ) - { - ptyFslData->pubDataBuffer[ duwOneWriteSize ] = SAM_DUMYY_DATA; - } - - /* Sets the parameters */ - dtyWriteBuff.fsl_data_buffer_p_u08 = ptyFslData->pubDataBuffer; - dtyWriteBuff.fsl_destination_address_u32 = duwWriteAddress; - dtyWriteBuff.fsl_word_count_u08 = (fsl_u08)( duwOneWriteSize / SAM_WORD_SIZE ); - - /* Executes data writing to the specified address */ - dubRetCode = FSL_Write( &dtyWriteBuff ); - } - } - /* If writing to the target block has completed normally */ - if( dubRetCode == FSL_OK ) - { - /* Executes internal verification of the target block */ - dubRetCode = FSL_IVerify( ptyFslData->dubStartBlock ); - } - } - - /* If the error code is other than SAM_ERR_PARM (library is executed) */ - if( dubRetCode != SAM_ERR_PARM ) - { - /* If the writing process is completed normally, options are executed */ - if( dubRetCode == FSL_OK ) - { - /*************************************************************************/ - /* Usage notes on boot swapping */ - /* When executing boot swapping, the necessary settings for operation of */ - /* the target microcontroller (e.g. option byte) must be written to also */ - /* the area (1000H to 1FFFH) before swapping. If the settings are not */ - /* made, the target microcontroller will not operate correctly. */ - /*************************************************************************/ - switch( ptyFslData->dubEndOption ) - { - /* Reset processing */ - case SAM_OPT_RST: - /* Forced reset processing */ - /* Note: When debugging with the OCD or IECUBE, a reset cannot be generated */ - /* with the FSL_ForceReset function. */ - /* In such a case, generate a reset from the debugger manually, */ - /* or use another method to generate a reset. */ - FSL_ForceReset(); - break; - - /* Boot flag change process */ - case SAM_OPT_CBOOT: - /* Boot flag change process (boot clusters are changed after a reset) */ - /* Note: Since the address of a program located in boot cluster 0 (BCL0) or */ - /* boot cluster 1 (BCL1) is changed, after a reset, execution of a program */ - /* located at an address lower than 2000H in the debugger can no longer be */ - /* correctly confirmed unless it is performed from the same program. */ - dubRetCode = FSL_InvertBootFlag(); - - break; - - /* Boot flag change process and boot swapping process */ - case SAM_OPT_ACT_SWAP: -#if 0 /* This facility (function) is removed from the sample program because it is */ - /* a facility (function) that can support only RAM location setting. */ - do { - /* Boot flag change process and boot swapping process */ - /* Note: When the rewriting program or library is in a boot cluster, if the */ - /* FSL_SwapActiveBootCluster function is executed, the location address */ - /* changes immediately after execution. Thus, correct operation is not */ - /* possible. To achieve correct operation, locate this re-writing program */ - /* or library at an area other than boot clusters. */ - /* Since the address of a program located in BCL0 or BCL1 is changed, */ - /* execution of a program located at an address lower than 2000H in the */ - /* debugger can no longer be correctly confirmed unless it is performed */ - /* from the same program. */ - dubRetCode = FSL_SwapActiveBootCluster(); - - /* Re-executes the sample program when execution is terminated with an interrupt */ - } while( dubRetCode == FSL_ERR_INTERRUPTION ); -#endif - break; - - /* Boot flag change process and reset processing */ - case SAM_OPT_CBOOT_RST: - /* Boot flag change process (boot clusters are changed after a reset) */ - /* Note: Since the address of a program located in BCL0 or BCL1 is changed, */ - /* after a reset, execution of a program located at an address lower than */ - /* 2000H in the debugger can no longer be correctly confirmed unless */ - /* it is performed from the same program. */ - dubRetCode = FSL_InvertBootFlag(); - - if( dubRetCode == FSL_OK ) - { - /* Forced reset processing */ - /* Note: When debugging with the OCD or IECUBE, a reset cannot be generated */ - /* with the FSL_ForceReset function. */ - /* In such a case, generate a reset from the debugger manually, or use */ - /* another method to generate a reset. */ - FSL_ForceReset(); - } - break; - - /* Boot flag change process, boot swapping process, and re-execution from the program start address */ - case SAM_OPT_CBOOT_SUP: - /* Boot flag change process (boot clusters are changed after a reset) */ - /* Note: Since the address of a program located in BCL0 or BCL1 is changed, */ - /* after a reset, execution of a program located at an address lower than */ - /* 2000H in the debugger can no longer be correctly confirmed unless */ - /* it is performed from the same program. */ - dubRetCode = FSL_InvertBootFlag(); - - if( dubRetCode == FSL_OK ) - { - /* After boot swapping is executed, the program is re-executed from a new boot area */ - /* Note: Since the address of a program located in BCL0 or BCL1 is changed, */ - /* execution of a program located at an address lower than 2000H in */ - /* the debugger can no longer be correctly confirmed unless it is performed */ - /* from the same program. */ - /* As swapping is performed in a state where no reset is executed and the */ - /* process is re-executed from a new startup routine, operation differs from */ - /* normal reset operation. */ - /* Find out the status of RAM and interrupts so that execution can be carried */ - /* out with no problems occurring on the user program side. */ - dubRetCode = FSL_SwapBootCluster(); - } - break; - - /* Boot swapping process and re-execution from the program start address (no change in boot flag) */ - case SAM_OPT_SUP: - /* After boot swapping is executed, the program is re-executed from a new boot area */ - /* Note: Since the address of a program located in BCL0 or BCL1 is changed, */ - /* execution of a program located at an address lower than 2000H in */ - /* the debugger can no longer be correctly confirmed unless it is performed */ - /* from the same program. However, after a reset, program execution can be */ - /* re-confirmed in the debugger because the cluster locations are returned to */ - /* the previous state. */ - /* As swapping is performed in a state where no reset is executed and the */ - /* process is re-executed from a new startup routine, operation differs from */ - /* normal reset operation. */ - /* Find out the status of RAM and interrupts so that execution can be carried */ - /* out with no problems occurring on the user program side. */ - dubRetCode = FSL_SwapBootCluster(); - - break; - - /* Option is not executed */ - default: - break; - } - - /* Adds an option flag to an error occurring during execution of an option to */ - /* differentiate it with an error occurring at writing. */ - if( dubRetCode != FSL_OK ) - { - dubRetCode |= SAM_ERR_OPT; - } - } - - /* Flash self-programming library end processing */ - samFslEnd(); - } - - return dubRetCode; -} - - -/*==============================================================================*/ -/* Function name : samTargetInit */ -/* IN : void */ -/* OUT : void */ -/* Description : Target initialization processing */ -/* Date : 07,02,2010 */ -/*==============================================================================*/ -void samTargetInit( void ) -{ - /******************/ - /* Watchdog timer */ - /******************/ - SAM_WDT_RESET(); /* Watchdog timer reset */ - - /*********************************/ - /* LED initialization processing */ - /*********************************/ - SAM_LED1_INIT(); /* Initializes LED1 (turns off) */ - SAM_LED2_INIT(); /* Initializes LED2 (turns off) */ - SAM_LED1_ON(); /* Turns on LED1 */ - SAM_LED2_ON(); /* Turns on LED2 */ -} - -/*==============================================================================*/ -/* Function name : samTargetEnd */ -/* IN : void */ -/* OUT : void */ -/* Description : Target end processing */ -/* Date : 07,02,2010 */ -/*==============================================================================*/ -void samTargetEnd( void ) -{ - SAM_LED1_OFF(); /* Turns off LED1 */ - SAM_LED2_OFF(); /* Turns off LED2 */ -} - -/*==============================================================================*/ -/* Function name : samFslStart */ -/* IN : void */ -/* OUT : fsl_u08 / Return code */ -/* Description : Sample program for flash self-programming */ -/* Date : 04,28,2011 */ -/*==============================================================================*/ -fsl_u08 samFslStart( void ) -{ - fsl_u08 dubRetCode; - - /* Flash self-programming library initialization */ - dubRetCode = FSL_Init( &fsl_descriptor_pstr ); - - /* When initialization has completed normally */ - if( dubRetCode == FSL_OK ) - { - /* Flash self-programming library start processing */ - FSL_Open(); - - /* */ - FSL_PrepareFunctions(); - - /* */ - FSL_PrepareExtFunctions(); - } - - - - return dubRetCode; -} - - -/*==============================================================================*/ -/* Function name : samFslEnd */ -/* IN : void */ -/* OUT : void */ -/* Description : Sample program for flash self-programming */ -/* Date : 04,28,2011 */ -/*==============================================================================*/ -void samFslEnd( void ) -{ - /* Flash self-programming library end processing */ - FSL_Close(); -} - - -/*##############################################################################*/ -/*------------------------------------------------------------------------------*/ -/* interrupt functions */ -/*------------------------------------------------------------------------------*/ -/*==============================================================================*/ -/* Function name : samIntWdt */ -/* IN : void */ -/* OUT : void */ -/* Description : WDT reset function */ -/* Date : 07,02,2010 */ -/*==============================================================================*/ -void samIntWdt( void ) -{ - SAM_WDT_RESET(); -} - - -/********************************************************************************/ -/********************************************************************************/ -/* */ -/* Program of LED lighting and swapping for QB-R5F100LE-TB */ -/* */ -/* Note: Two LEDs are lighted up alternately. When SW1 is pressed, the LED */ -/* flashing method is changed and boot swapping is performed within */ -/* a few seconds */ -/* */ -/* - Usage method (when used as an executable program instead of dummy data) */ -/* When QB-R5F100LE-TB is used, change [#if 0] on the 75th line of this */ -/* code to [#if 1] and enable symbols of [__QB_R5F100LE_TB__]. */ -/* After that, register this code and the [sample_c.dr] file in a new */ -/* project, enable the on-chip debugging settings, and create a load */ -/* module. */ -/* After the debugger is started, set a breakpoint near the beginning of */ -/* the main program and execute the sample program to the end. A reset is */ -/* generated at the watchdog timer, boot swapping is executed, */ -/* and the program of LED lighting and swapping is executed. (LEDs start */ -/* flashing alternately.) */ -/* */ -/*==============================================================================*/ -/* At this time (period between changing the boot flag and returning it to */ -/* its former state), do not execute a reset by the debugger. */ -/* Since the program has already been changed, it may not operate correctly.*/ -/*==============================================================================*/ -/* */ -/* If SW1 is pressed in this state, the LEDs are changed from flashing */ -/* alternately to flashing simultaneously. Then, after a few seconds, */ -/* a reset occurs again, boot swapping is executed, execution returns to */ -/* the original sample program, and a break occurs (execution stops) at */ -/* the set breakpoint. */ -/* */ -/* Note: This executable program is a sample program created for easily */ -/* confirming boot swapping. It may not operate correctly in some */ -/* cases depending on the project settings or operation status or */ -/* connection state of QB-R5F100LE-TB. */ -/* */ -/********************************************************************************/ -const fsl_u08 samDubWriteData[ SAM_DATA_SIZE ] = -{ -/* 0000 */ 0xD0, 0x00, 0xFF, 0xFF, 0x00, 0x14, 0x01, 0x00, 0x84, 0x01, 0xC7, 0xC5, 0xC1, 0x16, 0x34, 0x80, -/* 0010 */ 0x08, 0xF6, 0xB9, 0xA5, 0xA5, 0x35, 0x44, 0xC0, 0x08, 0x35, 0xDF, 0xF6, 0x8E, 0xFD, 0xC1, 0x62, -/* 0020 */ 0x9E, 0xFD, 0x31, 0x82, 0xA1, 0x3D, 0xF1, 0x11, 0x4E, 0x02, 0x61, 0xE8, 0x71, 0x00, 0x91, 0x08, -/* 0030 */ 0x9F, 0x03, 0x08, 0x11, 0x4E, 0x00, 0x61, 0xE8, 0xE1, 0x9F, 0x01, 0x08, 0x30, 0x80, 0x08, 0x14, -/* 0040 */ 0xBF, 0x04, 0x08, 0x11, 0x8C, 0x01, 0x99, 0x41, 0x0E, 0x11, 0x4F, 0xE8, 0xFF, 0xDC, 0x14, 0x11, -/* 0050 */ 0xF9, 0xE9, 0xFF, 0x61, 0x42, 0xDC, 0x0C, 0x52, 0x00, 0xFC, 0xF8, 0xFF, 0x0E, 0x71, 0x00, 0x90, -/* 0060 */ 0x08, 0xEF, 0x02, 0x52, 0x05, 0xC0, 0x9E, 0xFD, 0xC0, 0xC4, 0xC6, 0xD7, 0x71, 0x10, 0x90, 0x08, -/* 0070 */ 0xD7, 0xFF, 0x71, 0x18, 0x90, 0x08, 0xD7, 0xFF, 0xC7, 0xC5, 0xC3, 0xC1, 0x71, 0x20, 0x90, 0x08, -/* 0080 */ 0x8E, 0xFD, 0xC1, 0x41, 0x00, 0x36, 0xBA, 0x02, 0x32, 0xB7, 0x03, 0x34, 0x80, 0x0A, 0x11, 0xAB, -/* 0090 */ 0xB9, 0xA7, 0xA7, 0xA5, 0xA5, 0x17, 0x43, 0xDC, 0xF5, 0xC0, 0x9E, 0xFD, 0xC0, 0xC2, 0xC4, 0xC6, -/* 00A0 */ 0xD7, 0xFF, 0xC7, 0xC5, 0xC3, 0xC1, 0x71, 0x30, 0x90, 0x08, 0x8E, 0xFD, 0xC1, 0x41, 0x00, 0x36, -/* 00B0 */ 0xB8, 0x03, 0x32, 0x33, 0x04, 0x34, 0x80, 0x0B, 0xEE, 0xD3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -/* 00C0 */ 0xFF, 0xFF, 0xEF, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x00, -/* 00D0 */ 0xEC, 0xFD, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x61, 0xCF, 0x51, 0x00, 0x71, 0x8C, 0x71, 0x09, -/* 00E0 */ 0xFE, 0xCB, 0xF8, 0x20, 0xFE, 0xFC, 0x72, 0x04, 0x00, 0xF6, 0xBF, 0x96, 0xFB, 0xBF, 0x80, 0xFB, -/* 00F0 */ 0xBF, 0x84, 0xFB, 0xE6, 0xBF, 0x82, 0xFB, 0x30, 0x9A, 0xFB, 0xBF, 0x98, 0xFB, 0x53, 0xC0, 0xF6, -/* 0100 */ 0x93, 0x93, 0x58, 0x20, 0xFE, 0xDF, 0xF9, 0x41, 0x00, 0x36, 0x02, 0x00, 0x34, 0xBA, 0xFC, 0xEF, -/* 0110 */ 0x05, 0x11, 0x8B, 0x99, 0xA7, 0xA5, 0x17, 0x44, 0x02, 0x00, 0xDF, 0xF5, 0x36, 0x02, 0x00, 0x34, -/* 0120 */ 0xBA, 0xFC, 0xEF, 0x0A, 0x41, 0x00, 0x11, 0x8B, 0x41, 0x0F, 0x11, 0x99, 0xA7, 0xA5, 0x17, 0x44, -/* 0130 */ 0x02, 0x00, 0xDF, 0xF0, 0x36, 0xBA, 0xFB, 0x30, 0xBA, 0xFC, 0xEF, 0x04, 0xCC, 0x00, 0x00, 0xA7, -/* 0140 */ 0x47, 0xDF, 0xF9, 0x41, 0x0F, 0x36, 0xBA, 0xFC, 0x30, 0xBA, 0xFC, 0xEF, 0x05, 0x11, 0xCC, 0x00, -/* 0150 */ 0x00, 0xA7, 0x47, 0xDF, 0xF8, 0x41, 0x00, 0x36, 0x02, 0x00, 0x34, 0xBA, 0xFC, 0xEF, 0x05, 0x11, -/* 0160 */ 0x8B, 0x99, 0xA7, 0xA5, 0x17, 0x44, 0x02, 0x00, 0xDF, 0xF5, 0x36, 0xBA, 0xFC, 0x30, 0xBA, 0xFC, -/* 0170 */ 0xEF, 0x04, 0xCC, 0x00, 0x00, 0xA7, 0x47, 0xDF, 0xF9, 0xFC, 0x31, 0x02, 0x00, 0xF6, 0xFC, 0x73, -/* 0180 */ 0x04, 0x00, 0xEF, 0xFE, 0x71, 0x7B, 0xFA, 0xC1, 0xC3, 0xC5, 0xC7, 0x52, 0x0C, 0x92, 0x92, 0x69, -/* 0190 */ 0xD4, 0xFE, 0xC1, 0xDF, 0xF8, 0x8E, 0xFD, 0x70, 0x8E, 0xFC, 0xC1, 0x20, 0x06, 0xFB, 0xF8, 0xFF, -/* 01A0 */ 0x30, 0x04, 0x00, 0x52, 0x00, 0xF3, 0xFC, 0x0A, 0x00, 0x00, 0x62, 0x9C, 0x01, 0xD1, 0xDF, 0x0C, -/* 01B0 */ 0xFC, 0x6C, 0x00, 0x00, 0xFC, 0x78, 0x00, 0x00, 0xFC, 0xA2, 0x00, 0x00, 0x8C, 0x01, 0xD1, 0xDF, -/* 01C0 */ 0x07, 0xFC, 0x34, 0x04, 0x00, 0x62, 0x9C, 0x01, 0x8C, 0x01, 0xD1, 0xDF, 0x43, 0xCE, 0xAB, 0xAC, -/* 01D0 */ 0xCC, 0x00, 0x01, 0x8B, 0xD1, 0xDF, 0x0B, 0xCC, 0x00, 0x01, 0x71, 0x23, 0x06, 0x71, 0x33, 0x06, -/* 01E0 */ 0xEF, 0x09, 0xCC, 0x00, 0x00, 0x71, 0x22, 0x06, 0x71, 0x32, 0x06, 0xF6, 0xBC, 0x02, 0xBC, 0x04, -/* 01F0 */ 0xF6, 0x61, 0x49, 0x04, 0xDF, 0x06, 0x30, 0x0F, 0x27, 0x61, 0x49, 0x02, 0xDC, 0xD5, 0xFC, 0xAF, -/* 0200 */ 0x02, 0x00, 0x61, 0x79, 0x02, 0xF6, 0x61, 0x49, 0x02, 0xDF, 0xE5, 0x61, 0x79, 0x04, 0xEF, 0xE0, -/* 0210 */ 0xFC, 0x72, 0x00, 0x00, 0x10, 0x06, 0xC0, 0x9E, 0xFC, 0x60, 0x9E, 0xFD, 0x34, 0xD4, 0xFE, 0x52, -/* 0220 */ 0x06, 0xC0, 0xB9, 0xA5, 0xA5, 0x92, 0xDF, 0xF9, 0xC6, 0xC4, 0xC2, 0xC0, 0x71, 0x7A, 0xFA, 0x61, -/* 0230 */ 0xFC, 0xC7, 0x20, 0x06, 0xFB, 0xF8, 0xFF, 0xF6, 0xBB, 0xFC, 0x81, 0x02, 0x00, 0xF6, 0x61, 0x49, -/* 0240 */ 0x00, 0xDF, 0x0A, 0xE6, 0xBB, 0x71, 0x23, 0x06, 0x71, 0x32, 0x06, 0xEF, 0x08, 0xF6, 0xBB, 0x71, -/* 0250 */ 0x22, 0x06, 0x71, 0x33, 0x06, 0xF6, 0xBC, 0x02, 0xBC, 0x04, 0xF6, 0x61, 0x49, 0x04, 0xDF, 0x06, -/* 0260 */ 0x30, 0x1F, 0x4E, 0x61, 0x49, 0x02, 0xDC, 0xD5, 0xFC, 0xAF, 0x02, 0x00, 0xCE, 0xAB, 0xAC, 0x61, -/* 0270 */ 0x79, 0x02, 0xF6, 0x61, 0x49, 0x02, 0xDF, 0xE2, 0x61, 0x79, 0x04, 0xEF, 0xDD, 0x10, 0x06, 0xC6, -/* 0280 */ 0xD7, 0xF5, 0xA9, 0xFF, 0xF5, 0xAA, 0xFF, 0x71, 0x22, 0x06, 0x71, 0x32, 0x06, 0x71, 0x22, 0x06, -/* 0290 */ 0x71, 0x2B, 0x26, 0x71, 0x32, 0x06, 0x71, 0x3B, 0x26, 0x71, 0x0B, 0x38, 0x71, 0x0A, 0x39, 0x71, -/* 02A0 */ 0x2B, 0xE8, 0x71, 0x2A, 0xEC, 0x71, 0x2B, 0xE0, 0x71, 0x2B, 0xE4, 0x71, 0x7A, 0xFA, 0xD7, 0x00, -/* 02B0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xEF, 0x21, 0xEF, 0x23, 0xEF, 0x25, -/* 02C0 */ 0xEF, 0x27, 0xEF, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC5, 0xC1, 0x8E, 0xFC, 0x75, -/* 02D0 */ 0x8E, 0xFD, 0x74, 0xCE, 0xFC, 0x0F, 0x13, 0xF1, 0x04, 0x80, 0x0A, 0x61, 0xCB, 0x52, 0x03, 0xEF, -/* 02E0 */ 0x2D, 0x52, 0x06, 0xEF, 0x29, 0x52, 0x08, 0xEF, 0x25, 0xA8, 0x00, 0x16, 0xEF, 0x50, 0xFC, 0xC4, -/* 02F0 */ 0x08, 0x0F, 0x62, 0x4C, 0xFF, 0xDD, 0x3D, 0x71, 0x48, 0x90, 0x08, 0x71, 0x78, 0x90, 0x08, 0x8F, -/* 0300 */ 0x90, 0x08, 0x31, 0x55, 0x2F, 0x51, 0x0F, 0x9E, 0xFC, 0xAF, 0x92, 0x08, 0x61, 0xCB, 0xA8, 0x00, -/* 0310 */ 0x16, 0x41, 0x0E, 0x11, 0xAF, 0xE6, 0xFF, 0x47, 0xDC, 0x18, 0x17, 0x31, 0x2D, 0x9F, 0x02, 0x08, -/* 0320 */ 0x60, 0x9F, 0x01, 0x08, 0xF5, 0x00, 0x08, 0xF5, 0x03, 0x08, 0x30, 0x00, 0x04, 0xBF, 0x06, 0x08, -/* 0330 */ 0xEF, 0x60, 0x52, 0x05, 0x65, 0x9E, 0xFC, 0x64, 0x9E, 0xFD, 0xC0, 0xC4, 0xC6, 0xD7, 0x8C, 0x00, -/* 0340 */ 0x70, 0x8C, 0x01, 0xBF, 0x04, 0x08, 0x8C, 0x02, 0x5C, 0x03, 0xDF, 0xE6, 0x8C, 0x05, 0xD1, 0xDF, -/* 0350 */ 0xE1, 0x8C, 0x06, 0xD1, 0xDD, 0xDC, 0x4C, 0x41, 0xDE, 0xD8, 0x70, 0xF1, 0x31, 0x2D, 0xBF, 0x06, -/* 0360 */ 0x08, 0xB1, 0xB1, 0xC5, 0x14, 0x8C, 0x02, 0x70, 0x8C, 0x03, 0xBF, 0x00, 0x08, 0x05, 0x35, 0x8C, -/* 0370 */ 0x04, 0x9F, 0x02, 0x08, 0x1C, 0x00, 0x35, 0x16, 0x15, 0x70, 0xC4, 0xDC, 0xB5, 0x41, 0x0E, 0x66, -/* 0380 */ 0x11, 0x3F, 0xDF, 0xFF, 0x67, 0x11, 0x3F, 0xE0, 0xFF, 0x60, 0x11, 0x3F, 0xE1, 0xFF, 0xDE, 0xA2, -/* 0390 */ 0x52, 0x04, 0x13, 0xFC, 0xF8, 0xFF, 0x0E, 0x62, 0x4C, 0xFF, 0xDF, 0x98, 0x8F, 0x91, 0x08, 0x31, -/* 03A0 */ 0x03, 0x0F, 0x71, 0x40, 0x90, 0x08, 0x60, 0x4C, 0x03, 0x61, 0xF8, 0x71, 0x70, 0x90, 0x08, 0xEF, -/* 03B0 */ 0x83, 0xFC, 0xC4, 0x08, 0x0F, 0xEF, 0xE0, 0x00, 0xEF, 0x18, 0xEF, 0x3F, 0x00, 0x00, 0x00, 0x00, -/* 03C0 */ 0xC5, 0xC1, 0x8E, 0xFC, 0x75, 0x8E, 0xFD, 0x74, 0xCE, 0xFC, 0x0F, 0x13, 0xF1, 0x04, 0x80, 0x0B, -/* 03D0 */ 0x61, 0xCB, 0x30, 0x80, 0x08, 0xBF, 0x04, 0x08, 0x52, 0x10, 0xFC, 0xF8, 0xFF, 0x0E, 0xD2, 0xDF, -/* 03E0 */ 0x14, 0x67, 0x5F, 0x80, 0x08, 0x9F, 0x80, 0x08, 0x67, 0x5C, 0x01, 0x61, 0xE8, 0x71, 0x00, 0x80, -/* 03F0 */ 0x08, 0x52, 0x11, 0xEF, 0x0A, 0x71, 0x58, 0x90, 0x08, 0xEF, 0x2E, 0x52, 0x13, 0xEF, 0x00, 0xFC, -/* 0400 */ 0xF8, 0xFF, 0x0E, 0x62, 0x4C, 0xFF, 0xDF, 0x0C, 0x8F, 0x91, 0x08, 0x31, 0x03, 0x15, 0x71, 0x40, -/* 0410 */ 0x90, 0x08, 0xEF, 0x15, 0x8F, 0x90, 0x08, 0x31, 0x55, 0x0F, 0x51, 0x0F, 0x9E, 0xFC, 0xAF, 0x92, -/* 0420 */ 0x08, 0x61, 0xCB, 0xFC, 0xC4, 0x08, 0x0F, 0xEF, 0xDA, 0x65, 0x9E, 0xFC, 0x64, 0x9E, 0xFD, 0xC0, -/* 0430 */ 0xC4, 0xC6, 0xD7, 0x00, 0xC7, 0x57, 0xFE, 0x52, 0x00, 0xEE, 0x00, 0x00, 0xFE, 0x0B, 0x00, 0x61, -/* 0440 */ 0xF8, 0xEC, 0x88, 0x0B, 0x0F, 0x52, 0x1F, 0xC6, 0xD7, 0xFF, 0xC1, 0x51, 0xFF, 0x50, 0x0F, 0xEF, -/* 0450 */ 0x1A, 0xC1, 0x51, 0x47, 0x50, 0x07, 0xEF, 0x13, 0xC1, 0x51, 0x47, 0x50, 0x07, 0xEF, 0x0C, 0xC1, -/* 0460 */ 0x51, 0x47, 0x50, 0x47, 0xEF, 0x05, 0xC1, 0x51, 0xF7, 0x50, 0x07, 0x5F, 0x90, 0x08, 0x61, 0x48, -/* 0470 */ 0xC0, 0xD7, 0xD7, 0xFB, 0x80, 0xFB, 0xF6, 0x47, 0xDD, 0x13, 0xB7, 0xC7, 0x17, 0x31, 0x2D, 0x04, -/* 0480 */ 0x00, 0xFB, 0x16, 0x8C, 0x02, 0x9E, 0xFC, 0xAB, 0xC6, 0x61, 0xCA, 0xEF, 0xE9, 0xEF, 0xFE, 0xFF, -}; - diff --git a/ECU_BOOT/FSL/r_fsl_sample_c.dr b/ECU_BOOT/FSL/r_fsl_sample_c.dr deleted file mode 100644 index 7d6a8a4..0000000 --- a/ECU_BOOT/FSL/r_fsl_sample_c.dr +++ /dev/null @@ -1,138 +0,0 @@ -;============================================================================== -; -; Project = Sample program for flash self-programming library -; Module = r_fsl_sample_c.dr -; Version = V1.01(Target FSL Version for CA78K0R is V2.20) -; Target CPU = RL78/G13 ( R5F100LEA / QB-R5F100LE-TB ) -; Environment = CS+ for CA[CA78K0R],CX (V3.00) -; -; Date = 12, 28, 2016 -; -;============================================================================== -; COPYRIGHT -;============================================================================== -; DISCLAIMER -; This software is supplied by Renesas Electronics Corporation and is only -; intended for use with Renesas products. No other uses are authorized. This -; software is owned by Renesas Electronics Corporation and is protected under -; all applicable laws, including copyright laws. -; THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -; THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -; LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -; AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -; TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -; ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -; FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -; ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -; BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -; Renesas reserves the right, without notice, to make changes to this software -; and to discontinue the availability of this software. By using this software, -; you agree to the additional terms and conditions found by accessing the -; following link: -; http://www.renesas.com/disclaimer -; -; Copyright (C) 2010-2016 Renesas Electronics Corporation. All rights reserved. -;============================================================================== -;*********************************************************** -; Redefined ROM area -;*********************************************************** -; ---------------------------------------------------------- -; Define new memory entry for boot cluster 0 -; ---------------------------------------------------------- -MEMORY BCL0 : ( 000000H, 001000H ) - -; ---------------------------------------------------------- -; Define new memory entry for boot cluster 1 -; ---------------------------------------------------------- -MEMORY BCL1 : ( 001000H, 001000H ) - -; ---------------------------------------------------------- -; Redefined default code segment ROM -; ---------------------------------------------------------- -MEMORY ROM : ( 002000H, 000800H ) - -; ---------------------------------------------------------- -; Define new memory entry for fsl-code area -; ---------------------------------------------------------- -MEMORY ROM_FSL : ( 002800H, 000400H ) - -; ---------------------------------------------------------- -; Define new memory entry for write-data area -; ---------------------------------------------------------- -MEMORY ROM_DATA : ( 002C00H, 000800H ) - -; ---------------------------------------------------------- -; Define new memory entry for write-data area -; ---------------------------------------------------------- -;MEMORY OCDROM : ( 00FE00H, 000200H ) - -;*********************************************************** -; Redefined RAM area -;*********************************************************** -; ---------------------------------------------------------- -; Redefined default data segment RAM -; ---------------------------------------------------------- -MEMORY RAM : ( 0FFB00H, 000320H ) - -; ---------------------------------------------------------- -; Define new memory entry for saddr area -; ---------------------------------------------------------- -MEMORY RAM_SADDR : ( 0FFE20H, 0000E0H ) - - -;*********************************************************** -; Library(fsl.lib) segment -;*********************************************************** -; ---------------------------------------------------------- -; Merge FSL_FCD segment -; ---------------------------------------------------------- -MERGE FSL_FCD := ROM_FSL - -; ---------------------------------------------------------- -; Merge FSL_FECD segment -; ---------------------------------------------------------- -;MERGE FSL_FECD := ROM_FSL - -; ---------------------------------------------------------- -; Merge FSL_RCD segment -; ---------------------------------------------------------- -MERGE FSL_RCD := ROM_FSL - -; ---------------------------------------------------------- -; Merge FSL_BCD segment -; ---------------------------------------------------------- -MERGE FSL_BCD := ROM_FSL - -; ---------------------------------------------------------- -; Merge FSL_BECD segment -; ---------------------------------------------------------- -MERGE FSL_BECD := ROM_FSL - - -;*********************************************************** -; sample_c.c segment -;*********************************************************** -; ---------------------------------------------------------- -; Merge SAM_CODE segment -; ---------------------------------------------------------- -MERGE SAM_CODE := ROM - -; ---------------------------------------------------------- -; Merge SAM_CNST segment -; ---------------------------------------------------------- -MERGE SAM_CNST := ROM_DATA - -; ---------------------------------------------------------- -; Merge SAM_DATA segment -; ---------------------------------------------------------- -MERGE SAM_DATA := RAM - - -;*********************************************************** -; run-time library segment ( 0000H - FFFFH ) -;*********************************************************** -; ---------------------------------------------------------- -; Merge @@LCODE,@@LCODEL(run-time library) segment -; ---------------------------------------------------------- -MERGE @@LCODE := BCL0 -MERGE @@LCODEL := BCL0 diff --git a/ECU_BOOT/InterruptVector.c b/ECU_BOOT/InterruptVector.c deleted file mode 100644 index 4d89d75..0000000 --- a/ECU_BOOT/InterruptVector.c +++ /dev/null @@ -1,7 +0,0 @@ -#pragma interrupt INTTM02 r_tau0_channel2_interrupt - - -#include "BranchTable.h" - - - diff --git a/ECU_BOOT/boot_adc.c b/ECU_BOOT/boot_adc.c deleted file mode 100644 index cd7e92f..0000000 --- a/ECU_BOOT/boot_adc.c +++ /dev/null @@ -1,130 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2017 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_adc.c -* Version : CodeGenerator for RL78/F13 V2.03.00.02 [19 Apr 2017] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for ADC module. -* Creation Date: 2019/1/9 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_adc.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: R_ADC_Create -* Description : This function initializes the AD converter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void R_ADC_Create(void) -{ - ADCEN = 1U; /* supply AD clock */ - ADM0 = _00_AD_ADM0_INITIALVALUE; /* disable AD conversion and clear ADM0 register */ - ADMK = 1U; /* disable INTAD interrupt */ - ADIF = 0U; /* clear INTAD interrupt flag */ - /* The reset status of ADPC is analog input, so it's unnecessary to set. */ - /* Set ANI0 pin as analog input */ - PM3 |= 0x08U; - ADM0 = _18_AD_CONVERSION_CLOCK_8 | _00_AD_TIME_MODE_NORMAL_1 | _00_AD_OPERMODE_SELECT; - ADM1 = _00_AD_TRIGGER_SOFTWARE | _20_AD_CONVMODE_ONESELECT; - ADM2 = _00_AD_POSITIVE_VDD | _00_AD_NEGATIVE_VSS | _00_AD_AREA_MODE_1 | _00_AD_RESOLUTION_10BIT; - ADUL = _FF_AD_ADUL_VALUE; - ADLL = _00_AD_ADLL_VALUE; - ADS = _00_AD_INPUT_CHANNEL_0; -} - -/*********************************************************************************************************************** -* Function Name: R_ADC_Start -* Description : This function starts the AD converter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void R_ADC_Start(void) -{ - ADCS = 1U; /* enable AD conversion */ -} - -/*********************************************************************************************************************** -* Function Name: R_ADC_Stop -* Description : This function stops the AD converter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void R_ADC_Stop(void) -{ - ADCS = 0U; /* disable AD conversion */ -} - -/*********************************************************************************************************************** -* Function Name: R_ADC_Set_OperationOn -* Description : This function enables comparator operation. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void R_ADC_Set_OperationOn(void) -{ - ADCE = 1U; /* enable AD comparator */ -} - -/*********************************************************************************************************************** -* Function Name: R_ADC_Set_OperationOff -* Description : This function stops comparator operation. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void R_ADC_Set_OperationOff(void) -{ - ADCE = 0U; /* disable AD comparator */ -} - -/*********************************************************************************************************************** -* Function Name: R_ADC_Get_Result -* Description : This function returns the conversion result in the buffer. -* Arguments : buffer - -* the address where to write the conversion result -* Return Value : None -***********************************************************************************************************************/ -void R_ADC_Get_Result(uint16_t * const buffer) -{ - *buffer = (uint16_t)(ADCR >> 6U); -} - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_adc.h b/ECU_BOOT/boot_adc.h deleted file mode 100644 index a624056..0000000 --- a/ECU_BOOT/boot_adc.h +++ /dev/null @@ -1,201 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2017 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_adc.h -* Version : CodeGenerator for RL78/F13 V2.03.00.02 [19 Apr 2017] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for ADC module. -* Creation Date: 2019/1/9 -***********************************************************************************************************************/ - -#ifndef ADC_H -#define ADC_H - -/*********************************************************************************************************************** -Macro definitions (Register bit) -***********************************************************************************************************************/ -/* - Peripheral enable register 0 (PER0) -*/ -/* Control of AD converter input clock (ADCEN) */ -#define _00_AD_CLOCK_STOP (0x00U) /* stop supply of input clock */ -#define _20_AD_CLOCK_SUPPLY (0x20U) /* supply input clock */ - -/* - AD converter mode register 0 (ADM0) -*/ -#define _00_AD_ADM0_INITIALVALUE (0x00U) -/* AD conversion operation control (ADCS) */ -#define _80_AD_CONVERSION_ENABLE (0x80U) /* enable AD conversion operation control */ -#define _00_AD_CONVERSION_DISABLE (0x00U) /* disable AD conversion operation control */ -/* Specification of AD conversion operation mode (ADMD) */ -#define _00_AD_OPERMODE_SELECT (0x00U) /* select operation mode */ -#define _40_AD_OPERMODE_SCAN (0x40U) /* scan operation mode */ -/* AD conversion clock selection (FR2 - FR0) */ -#define _00_AD_CONVERSION_CLOCK_64 (0x00U) /* fCLK/64 */ -#define _08_AD_CONVERSION_CLOCK_32 (0x08U) /* fCLK/32 */ -#define _10_AD_CONVERSION_CLOCK_16 (0x10U) /* fCLK/16 */ -#define _18_AD_CONVERSION_CLOCK_8 (0x18U) /* fCLK/8 */ -#define _20_AD_CONVERSION_CLOCK_6 (0x20U) /* fCLK/6 */ -#define _28_AD_CONVERSION_CLOCK_5 (0x28U) /* fCLK/5 */ -#define _30_AD_CONVERSION_CLOCK_4 (0x30U) /* fCLK/4 */ -#define _38_AD_CONVERSION_CLOCK_2 (0x38U) /* fCLK/2 */ -/* Specification AD conversion time mode (LV1, LV0) */ -#define _00_AD_TIME_MODE_NORMAL_1 (0x00U) /* normal 1 mode */ -#define _02_AD_TIME_MODE_NORMAL_2 (0x02U) /* normal 2 mode */ -/* AD comparator operation control (ADCE) */ -#define _01_AD_COMPARATOR_ENABLE (0x01U) /* enable comparator operation control */ -#define _00_AD_COMPARATOR_DISABLE (0x00U) /* disable comparator operation control */ - -/* - Analog input channel specification register (ADS) -*/ -/* Specification of analog input channel (ADISS, ADS4 - ADS0) */ -/* Select mode */ -#define _00_AD_INPUT_CHANNEL_0 (0x00U) /* ANI0 */ -#define _01_AD_INPUT_CHANNEL_1 (0x01U) /* ANI1 */ -#define _02_AD_INPUT_CHANNEL_2 (0x02U) /* ANI2 */ -#define _03_AD_INPUT_CHANNEL_3 (0x03U) /* ANI3 */ -#define _04_AD_INPUT_CHANNEL_4 (0x04U) /* ANI4 */ -#define _05_AD_INPUT_CHANNEL_5 (0x05U) /* ANI5 */ -#define _06_AD_INPUT_CHANNEL_6 (0x06U) /* ANI6 */ -#define _07_AD_INPUT_CHANNEL_7 (0x07U) /* ANI7 */ -#define _08_AD_INPUT_CHANNEL_8 (0x08U) /* ANI8 */ -#define _09_AD_INPUT_CHANNEL_9 (0x09U) /* ANI9 */ -#define _0A_AD_INPUT_CHANNEL_10 (0x0AU) /* ANI10 */ -#define _0B_AD_INPUT_CHANNEL_11 (0x0BU) /* ANI11 */ -#define _0C_AD_INPUT_CHANNEL_12 (0x0CU) /* ANI12 */ -#define _0D_AD_INPUT_CHANNEL_13 (0x0DU) /* ANI13 */ -#define _0E_AD_INPUT_CHANNEL_14 (0x0EU) /* ANI14 */ -#define _0F_AD_INPUT_CHANNEL_15 (0x0FU) /* ANI15 */ -#define _18_AD_INPUT_CHANNEL_24 (0x18U) /* ANI24 */ -#define _19_AD_INPUT_CHANNEL_25 (0x19U) /* ANI25 */ -#define _1A_AD_INPUT_CHANNEL_26 (0x1AU) /* ANI26 */ -#define _80_AD_INPUT_TEMPERSENSOR_0 (0x80U) /* temperature sensor 0 output is used to be the input channel */ -#define _81_AD_INPUT_INTERREFVOLT (0x81U) /* internal reference voltage output is used to be the input channel */ -/* Scan mode */ -#define _00_AD_INPUT_CHANNEL_0_3 (0x00U) /* ANI0 - ANI3 */ -#define _01_AD_INPUT_CHANNEL_1_4 (0x01U) /* ANI1 - ANI4 */ -#define _02_AD_INPUT_CHANNEL_2_5 (0x02U) /* ANI2 - ANI5 */ -#define _03_AD_INPUT_CHANNEL_3_6 (0x03U) /* ANI3 - ANI6 */ -#define _04_AD_INPUT_CHANNEL_4_7 (0x04U) /* ANI4 - ANI7 */ -#define _05_AD_INPUT_CHANNEL_5_8 (0x05U) /* ANI5 - ANI8 */ -#define _06_AD_INPUT_CHANNEL_6_9 (0x06U) /* ANI6 - ANI9 */ -#define _07_AD_INPUT_CHANNEL_7_10 (0x07U) /* ANI7 - ANI10 */ -#define _08_AD_INPUT_CHANNEL_8_11 (0x08U) /* ANI8 - ANI11 */ -#define _09_AD_INPUT_CHANNEL_9_12 (0x09U) /* ANI9 - ANI12 */ -#define _0A_AD_INPUT_CHANNEL_10_13 (0x0AU) /* ANI10 - ANI13 */ -#define _0B_AD_INPUT_CHANNEL_11_14 (0x0BU) /* ANI11 - ANI14 */ -#define _0C_AD_INPUT_CHANNEL_12_15 (0x0CU) /* ANI12 - ANI15 */ - -/* - AD converter mode register 1 (ADM1) -*/ -/* AD trigger mode selection (ADTMD1, ADTMD0) */ -#define _00_AD_TRIGGER_SOFTWARE (0x00U) /* software trigger mode */ -#define _80_AD_TRIGGER_HARDWARE_NOWAIT (0x80U) /* hardware trigger mode (no wait) */ -#define _C0_AD_TRIGGER_HARDWARE_WAIT (0xC0U) /* hardware trigger mode (wait) */ -/* AD convertion mode selection (ADSCM) */ -#define _00_AD_CONVMODE_CONSELECT (0x00U) /* continuous convertion mode */ -#define _20_AD_CONVMODE_ONESELECT (0x20U) /* oneshot convertion mode */ -/* Trigger signal selection (ADTRS1, ADTRS0) */ -#define _00_AD_TRIGGER_INTTM01 (0x00U) /* INTTM01 */ -#define _01_AD_TRIGGER_ELC (0x01U) /* ELC */ -#define _01_AD_TRIGGER_TIMER (0x01U) /* INTTRD0,INTTRJ0 */ -#define _02_AD_TRIGGER_INTRTC (0x02U) /* INTRTC */ -/* - AD converter mode register 2 (ADM2) -*/ -/* AD VREF(+) selection (ADREFP1, ADREFP0) */ -#define _00_AD_POSITIVE_VDD (0x00U) /* use VDD as VREF(+) */ -#define _40_AD_POSITIVE_AVREFP (0x40U) /* use AVREFP as VREF(+) */ -#define _80_AD_POSITIVE_INTERVOLT (0x80U) /* use internal voltage as VREF(+) */ -/* AD VREF(-) selection (ADREFM) */ -#define _00_AD_NEGATIVE_VSS (0x00U) /* use VSS as VREF(-) */ -#define _20_AD_NEGATIVE_AVREFM (0x20U) /* use AVREFM as VREF(-) */ -/* AD conversion result upper/lower bound value selection (ADRCK) */ -#define _00_AD_AREA_MODE_1 (0x00U) /* generates INTAD when ADLL <= ADCRH <= ADUL */ -#define _08_AD_AREA_MODE_2_3 (0x08U) /* generates INTAD when ADUL < ADCRH or ADLL > ADCRH */ -/* AD wakeup function selection (AWC) */ -#define _00_AD_WAKEUP_OFF (0x00U) /* stop wakeup function */ -#define _04_AD_WAKEUP_ON (0x04U) /* use wakeup function */ -/* AD resolution selection (ADTYP) */ -#define _00_AD_RESOLUTION_10BIT (0x00U) /* 10 bits */ -#define _01_AD_RESOLUTION_8BIT (0x01U) /* 8 bits */ - -/* - AD test function register (ADTES) -*/ -/* AD test mode signal (ADTES2 - ADTES0) */ -#define _00_AD_NORMAL_INPUT (0x00U) /* normal mode */ -#define _02_AD_TEST_AVREFM (0x02U) /* use AVREFM as test signal */ -#define _03_AD_TEST_AVREFP (0x03U) /* use AVREFP as test signal */ -/* - Format of A/D Converter Trigger Select Register 0 (ADTRGS0)(F13 only) -*/ -/* Selection of the operation trigger of the A/D converter when the timer RD0 input capture B/compare match B -interrupt request is generated (ADTRGS00) */ -#define _01_AD_TRIGGER_INTTRD0 (0x01U) /* A/D conversion is started when the interrupt request is generated */ - -/* - Format of A/D Converter Trigger Select Register 1 (ADTRGS1)(F13 only) -*/ -/* Selection of the operation trigger of the A/D converter when the timer RJ0 interrupt request is generated (ADTRGS10) */ -#define _01_AD_TRIGGER_INTTRJ0 (0x01U) /* A/D conversion is started when the interrupt request is generated */ - -/*********************************************************************************************************************** -Macro definitions -***********************************************************************************************************************/ -/* Upper bound (ADUL) value */ -#define _FF_AD_ADUL_VALUE (0xFFU) -/* Upper bound (ADLL) value */ -#define _00_AD_ADLL_VALUE (0x00U) - -/*********************************************************************************************************************** -Typedef definitions -***********************************************************************************************************************/ -typedef enum -{ - ADCHANNEL0, ADCHANNEL1, ADCHANNEL2, ADCHANNEL3, ADCHANNEL4, ADCHANNEL5, ADCHANNEL6, - ADCHANNEL7, ADCHANNEL8, ADCHANNEL9, ADCHANNEL10, ADCHANNEL11, ADCHANNEL12, - ADCHANNEL13, ADCHANNEL14, ADCHANNEL15, ADCHANNEL24 = 24U, ADCHANNEL25, ADCHANNEL26, - ADTEMPERSENSOR0 = 128U, ADINTERREFVOLT -} ad_channel_t; -typedef enum -{ - ADNORMALINPUT, - ADAVREFM = 2U, - ADAVREFP -} test_channel_t; - -/*********************************************************************************************************************** -Global functions -***********************************************************************************************************************/ -void R_ADC_Create(void); -void R_ADC_Start(void); -void R_ADC_Stop(void); -void R_ADC_Set_OperationOn(void); -void R_ADC_Set_OperationOff(void); -void R_ADC_Get_Result(uint16_t * const buffer); - -/* Start user code for function. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#endif diff --git a/ECU_BOOT/boot_cgc.c b/ECU_BOOT/boot_cgc.c deleted file mode 100644 index 0f691fd..0000000 --- a/ECU_BOOT/boot_cgc.c +++ /dev/null @@ -1,110 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_cgc.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for CGC module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_cgc.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: Boot_CGC_Create -* Description : This function initializes the clock generator. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_CGC_Create(void) -{ - volatile uint16_t w_count; - uint8_t temp_stab_set; - uint8_t temp_stab_wait; - - /* Set fMX */ - CMC = _40_CGC_HISYS_OSC | _00_CGC_SUB_PORT | _00_CGC_SYSOSC_UNDER10M | _00_CGC_SUBMODE_DEFAULT; - OSTS = _07_CGC_OSCSTAB_SEL18; - MSTOP = 0U; - temp_stab_set = _FF_CGC_OSCSTAB_STA18; - - do - { - temp_stab_wait = OSTC; - temp_stab_wait &= temp_stab_set; - } - while (temp_stab_wait != temp_stab_set); - - /* Set fMAIN */ - MCM0 = 1U; - /* Set fPLL */ - PLLCTL = _80_CGC_LOCKUP_WAIT_9 | _00_CGC_PLL_BELOW_32MHZ | _10_CGC_PLL_DIVISION_4 | _02_CGC_PLL_MULTIPLY_X16; - PLLON = 1U; - - /* Change the waiting time according to the system */ - for (w_count = 0U; w_count <= CGC_PLLWAITTIME; w_count++) - { - NOP(); - } - - while ((PLLSTS & 0x80) == 0U) - { - ; - } - - /* Set fMP to PLL clock select mode */ - SELPLL = 1U; - /* Set fSUB */ - XTSTOP = 1U; - /* Set fSL */ - SELLOSC = 1U; - /* Set fCLK */ - CSS = 0U; - MDIV = _00_CGC_FMP_DIV_DEFAULT; - /* Set fIH */ - HIOSTOP = 0U; - /* Set RTC clock source */ - RTCCL = _00_CGC_RTC_FMX | _42_CGC_RTC_DIV122; - /* Set Timer RD clock source to fCLK, fMP */ - TRD_CKSEL = 0U; -} - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_cgc.h b/ECU_BOOT/boot_cgc.h deleted file mode 100644 index 0e81f4a..0000000 --- a/ECU_BOOT/boot_cgc.h +++ /dev/null @@ -1,228 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_cgc.h -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for CGC module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -#ifndef CGC_H -#define CGC_H - -/*********************************************************************************************************************** -Macro definitions (Register bit) -***********************************************************************************************************************/ -/* - Clock operation mode control register (CMC) -*/ -/* High-speed system clock pin operation mode (EXCLK, OSCSEL) */ -#define _C0_CGC_HISYS_PIN (0xC0U) -#define _00_CGC_HISYS_PORT (0x00U) /* X1, X2 as I/O port */ -#define _40_CGC_HISYS_OSC (0x40U) /* X1, X2 as crystal/ceramic resonator connection */ -#define _80_CGC_HISYS_PORT1 (0x80U) /* X1, X2 as I/O port */ -#define _C0_CGC_HISYS_EXT (0xC0U) /* X1 as I/O port, X2 as external clock input */ -/* Subsystem clock pin operation mode (EXCLKS, OSCSELS) */ -#define _30_CGC_SUB_PIN (0x30U) -#define _00_CGC_SUB_PORT (0x00U) /* XT1, XT2 as I/O port */ -#define _10_CGC_SUB_OSC (0x10U) /* XT1, XT2 as crystal connection */ -#define _20_CGC_SUB_PORT1 (0x20U) /* XT1, XT2 as I/O port */ -#define _30_CGC_SUB_EXT (0x30U) /* XT1 as I/O port, XT2 as external clock input */ -/* XT1 oscillator oscillation mode selection (AMPHS1, AMPHS0) */ -#define _00_CGC_SUBMODE_DEFAULT (0x00U) -#define _00_CGC_SUBMODE_LOW (0x00U) /* low power consumption oscillation */ -#define _02_CGC_SUBMODE_NORMAL (0x02U) /* normal oscillation */ -#define _04_CGC_SUBMODE_ULOW (0x04U) /* ultra-low power consumption oscillation */ -/* Control of X1 high-speed system clock oscillation frequency (AMPH) */ -#define _00_CGC_SYSOSC_DEFAULT (0x00U) -#define _00_CGC_SYSOSC_UNDER10M (0x00U) /* fX <= 10MHz */ -#define _01_CGC_SYSOSC_OVER10M (0x01U) /* fX > 10MHz */ - -/* - Clock operation status control register (CSC) -*/ -/* Control of high-speed system clock operation (MSTOP) */ -#define _00_CGC_HISYS_OPER (0x00U) /* X1 oscillator/external clock operating */ -#define _80_CGC_HISYS_STOP (0x80U) /* X1 oscillator/external clock stopped */ -/* Subsystem clock operation (XTSTOP) */ -#define _00_CGC_SUB_OPER (0x00U) /* XT1 oscillator operating */ -#define _40_CGC_SUB_STOP (0x40U) /* XT1 oscillator stopped */ -/* High-speed OCO operation (HIOSTOP) */ -#define _00_CGC_HIO_OPER (0x00U) /* high-speed OCO operating */ -#define _01_CGC_HIO_STOP (0x01U) /* high-speed OCO stopped */ - -/* - Oscillation stabilization time counter status register (OSTC) -*/ -/* Oscillation stabilization time status (MOST18 - MOST8) */ -#define _00_CGC_OSCSTAB_STA0 (0x00U) /* < 2^8/fX */ -#define _80_CGC_OSCSTAB_STA8 (0x80U) /* 2^8/fX */ -#define _C0_CGC_OSCSTAB_STA9 (0xC0U) /* 2^9/fX */ -#define _E0_CGC_OSCSTAB_STA10 (0xE0U) /* 2^10/fX */ -#define _F0_CGC_OSCSTAB_STA11 (0xF0U) /* 2^11/fX */ -#define _F8_CGC_OSCSTAB_STA13 (0xF8U) /* 2^13/fX */ -#define _FC_CGC_OSCSTAB_STA15 (0xFCU) /* 2^15/fX */ -#define _FE_CGC_OSCSTAB_STA17 (0xFEU) /* 2^17/fX */ -#define _FF_CGC_OSCSTAB_STA18 (0xFFU) /* 2^18/fX */ - -/* - Oscillation stabilization time select register (OSTS) -*/ -/* Oscillation stabilization time selection (OSTS2 - OSTS0) */ -#define _00_CGC_OSCSTAB_SEL8 (0x00U) /* 2^8/fX */ -#define _01_CGC_OSCSTAB_SEL9 (0x01U) /* 2^9/fX */ -#define _02_CGC_OSCSTAB_SEL10 (0x02U) /* 2^10/fX */ -#define _03_CGC_OSCSTAB_SEL11 (0x03U) /* 2^11/fX */ -#define _04_CGC_OSCSTAB_SEL13 (0x04U) /* 2^13/fX */ -#define _05_CGC_OSCSTAB_SEL15 (0x05U) /* 2^15/fX */ -#define _06_CGC_OSCSTAB_SEL17 (0x06U) /* 2^17/fX */ -#define _07_CGC_OSCSTAB_SEL18 (0x07U) /* 2^18/fX */ - -/* - PLL control register (PLLCTL) -*/ -/* Lockup wait counter setting value */ -#define _00_CGC_LOCKUP_WAIT_7 (0x00U) /* 2^7/fMAIN */ -#define _40_CGC_LOCKUP_WAIT_8 (0x40U) /* 2^8/fMAIN */ -#define _80_CGC_LOCKUP_WAIT_9 (0x80U) /* 2^9/fMAIN */ -/* PLL output clock selection (PLLDIV1) */ -#define _00_CGC_PLL_BELOW_32MHZ (0x00U) /* when fMAIN <= 32 MHz */ -#define _20_CGC_PLL_ABOVE_32MHZ (0x20U) /* when fMAIN > 32 MHz */ -/* PLL output clock division selection (PLLDIV0) */ -#define _00_CGC_PLL_DIVISION_2 (0x00U) /* divides the clock frequency by 2 */ -#define _10_CGC_PLL_DIVISION_4 (0x10U) /* divides the clock frequency by 4 */ -/* Clock mode selection (SELPLL) */ -#define _00_CGC_NOSEL_PLL (0x00U) /* clock through mode */ -#define _04_CGC_SEL_PLL (0x04U) /* PLL clock select mode */ -/* PLL output clock (fPLLO) multiplier selection (PLLMUL) */ -#define _00_CGC_PLL_MULTIPLY_X12 (0x00U) /* clock through mode */ -#define _02_CGC_PLL_MULTIPLY_X16 (0x02U) /* PLL clock select mode */ -/* Operating or stopping PLL function (PLLON) */ -#define _00_CGC_PLL_STOP (0x00U) /* PLL operating stopped */ -#define _01_CGC_PLL_ENABLE (0x01U) /* PLL operating */ - -/* - PLL status register (PLLSTS) -*/ -/* PLL lock state */ -#define _00_CGC_PLL_UNLOCKED (0x00U) /* Unlocked state */ -#define _80_CGC_PLL_LOCKED (0x80U) /* Locked state */ - -/* - FMP clock selection division register (MDIV) -*/ -/* Division of PLL clock (fMP) */ -#define _00_CGC_FMP_DIV_DEFAULT (0x00U) /* fMP (default) */ -#define _01_CGC_FMP_DIV_1 (0x01U) /* fMP/2^1 */ -#define _02_CGC_FMP_DIV_2 (0x02U) /* fMP/2^2 */ -#define _03_CGC_FMP_DIV_3 (0x03U) /* fMP/2^3 */ -#define _04_CGC_FMP_DIV_4 (0x04U) /* fMP/2^4 */ -#define _05_CGC_FMP_DIV_5 (0x05U) /* fMP/2^5 */ -#define _06_CGC_FMP_DIV_6 (0x06U) /* fMP/2^6 */ - -/* - System clock control register (CKC) -*/ -/* Status of CPU/peripheral hardware clock fCLK (CLS) */ -#define _00_CGC_CPUCLK_MAIN (0x00U) /* main system clock (fMAIN) */ -#define _80_CGC_CPUCLK_SUB (0x80U) /* subsystem clock (fSUB) */ -/* Selection of CPU/peripheral hardware clock fCLK (CSS) */ -#define _00_CGC_CPUCLK_SELMAIN (0x00U) /* main system clock (fMAIN) */ -#define _40_CGC_CPUCLK_SELSUB (0x40U) /* subsystem clock (fSUB) */ -/* Status of Main system clock fMAIN (MCS) */ -#define _00_CGC_MAINCLK_HIO (0x00U) /* high-speed OCO clock (fIH) */ -#define _20_CGC_MAINCLK_HISYS (0x20U) /* high-speed system clock (fMX) */ -/* Selection of Main system clock fMAIN (MCM0) */ -#define _00_CGC_MAINCLK_SELHIO (0x00U) /* high-speed OCO clock (fIH) */ -#define _10_CGC_MAINCLK_SELHISYS (0x10U) /* high-speed system clock (fMX) */ - -/* - Operation speed mode control register (OSMC) -*/ -/* Setting in subsystem clock HALT mode (RTCLPC) */ -#define _00_CGC_SUBINHALT_ON (0x00U) /* enables supply of subsystem clock to peripheral functions */ -#define _80_CGC_SUBINHALT_OFF (0x80U) /* stops supply to peripheral functions other than RTC and interval timer */ -/* RTC macro operation clock (WUTMMCK0) */ -#define _00_CGC_RTC_CLK_OTHER (0x00U) /* Other than fIL */ -#define _10_CGC_RTC_CLK_FIL (0x10U) /* use fIL clock */ - -/* - Illegal memory access detection control register (IAWCTL) -*/ -/* Illegal memory access detection control (IAWEN) */ -#define _00_CGC_ILLEGAL_ACCESS_OFF (0x00U) /* disables illegal memory access detection */ -#define _80_CGC_ILLEGAL_ACCESS_ON (0x80U) /* enables illegal memory access detection */ -/* RAM guard area (GRAM1, GRAM0) */ -#define _00_CGC_RAM_GUARD_OFF (0x00U) /* invalid, it is possible to write RAM */ -#define _10_CGC_RAM_GUARD_AREA0 (0x10U) /* 128 bytes from RAM bottom address */ -#define _20_CGC_RAM_GUARD_AREA1 (0x20U) /* 256 bytes from RAM bottom address */ -#define _30_CGC_RAM_GUARD_AREA2 (0x30U) /* 512 bytes from RAM bottom address */ -/* PORT register guard (GPORT) */ -#define _00_CGC_PORT_GUARD_OFF (0x00U) /* invalid, it is possible to write PORT register */ -#define _04_CGC_PORT_GUARD_ON (0x04U) /* valid, it is impossible to write PORT register, but possible for read */ -/* Interrupt register guard (GINT) */ -#define _00_CGC_INT_GUARD_OFF (0x00U) /* invalid, it is possible to write interrupt register */ -#define _02_CGC_INT_GUARD_ON (0x02U) /* valid, it is impossible to write , but possible for read */ -/* CSC register guard (GCSC) */ -#define _00_CGC_CSC_GUARD_OFF (0x00U) /* invalid, it is possible to write CSC register */ -#define _01_CGC_CSC_GUARD_ON (0x01U) /* valid, it is impossible to write CSC register, but possible for read */ - -/* - RTC clock selection register (RTCCL) -*/ -/* Operation clock source selection for RTC (RTCCL7) */ -#define _00_CGC_RTC_FMX (0x00U) /* RTC uses External Main clock (fMX) */ -#define _80_CGC_RTC_FIH (0x80U) /* RTC uses Internal high speed clock (fIH) */ -/* Operation selection of RTC macro (RTCCL6,RTCCKS1 - RTCCKS0) */ -#define _00_CGC_RTC_FSUB (0x00U) /* RTC uses sub clock */ -#define _02_CGC_RTC_DIV128 (0x02U) /* RTC uses high-speed clock / 128 */ -#define _03_CGC_RTC_DIV256 (0x03U) /* RTC uses high-speed clock / 256 */ -#define _42_CGC_RTC_DIV122 (0x42U) /* RTC uses high-speed clock / 122 */ -#define _43_CGC_RTC_DIV244 (0x43U) /* RTC uses high-speed clock / 244 */ - - -/*********************************************************************************************************************** -Macro definitions -***********************************************************************************************************************/ -#define CGC_PLLWAITTIME (800U) /* change the waiting time according to the system */ - -/*********************************************************************************************************************** -Typedef definitions -***********************************************************************************************************************/ -typedef enum -{ - HIOCLK, - SYSX1CLK, - SYSEXTCLK, - SUBXT1CLK, - SUBEXTCLK -} clock_mode_t; - -/*********************************************************************************************************************** -Global functions -***********************************************************************************************************************/ -void Boot_CGC_Create(void); -void Boot_CGC_Get_ResetSource(void); - -/* Start user code for function. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#endif diff --git a/ECU_BOOT/boot_cgc_user.c b/ECU_BOOT/boot_cgc_user.c deleted file mode 100644 index 55298e1..0000000 --- a/ECU_BOOT/boot_cgc_user.c +++ /dev/null @@ -1,59 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_cgc_user.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for CGC module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_cgc.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: Boot_CGC_Get_ResetSource -* Description : This function process of Reset. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ - - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_macrodriver.h b/ECU_BOOT/boot_macrodriver.h deleted file mode 100644 index efe405e..0000000 --- a/ECU_BOOT/boot_macrodriver.h +++ /dev/null @@ -1,121 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_macrodriver.h -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements general head file. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -#ifndef STATUS_H -#define STATUS_H -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#pragma sfr -#pragma DI -#pragma EI -#pragma NOP -#pragma HALT -#pragma STOP - -/*********************************************************************************************************************** -Macro definitions (Register bit) -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Macro definitions -***********************************************************************************************************************/ -#ifndef __TYPEDEF__ -/* Status list definition */ -#define MD_STATUSBASE 0x00U -#define MD_OK (MD_STATUSBASE + 0x00U) /* register setting OK */ -#define MD_SPT (MD_STATUSBASE + 0x01U) /* IIC stop */ -#define MD_NACK (MD_STATUSBASE + 0x02U) /* IIC no ACK */ -#define MD_BUSY1 (MD_STATUSBASE + 0x03U) /* busy 1 */ -#define MD_BUSY2 (MD_STATUSBASE + 0x04U) /* busy 2 */ -#define MD_OVERRUN (MD_STATUSBASE + 0x05U) /* IIC OVERRUN occur */ - -/* Error list definition */ -#define MD_ERRORBASE 0x80U -#define MD_ERROR (MD_ERRORBASE + 0x00U) /* error */ -#define MD_ARGERROR (MD_ERRORBASE + 0x01U) /* error agrument input error */ -#define MD_ERROR1 (MD_ERRORBASE + 0x02U) /* error 1 */ -#define MD_ERROR2 (MD_ERRORBASE + 0x03U) /* error 2 */ -#define MD_ERROR3 (MD_ERRORBASE + 0x04U) /* error 3 */ -#define MD_ERROR4 (MD_ERRORBASE + 0x05U) /* error 4 */ -#define MD_DATAEXISTS (MD_ERRORBASE + 0x06U) /* data to be transferred next exists in TXBn register */ -#endif - -/*********************************************************************************************************************** -Typedef definitions -***********************************************************************************************************************/ -#ifndef __TYPEDEF__ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef signed short int16_t; -typedef unsigned short uint16_t; -typedef signed long int32_t; -typedef unsigned long uint32_t; -typedef unsigned short MD_STATUS; -#define __TYPEDEF__ -#endif -//typedef signed char int8; -//typedef unsigned char uint8; -//typedef signed short int16; -//typedef unsigned short uint16; -//typedef signed long int32; -//typedef unsigned long uint32; -typedef struct{ - uint8_t RspData[8]; - uint8_t AckReq; - uint8_t AckLenth; - uint8_t boot_enable; - uint8_t RunAir; - uint8_t RstSrc; - uint8_t KeyErrTimes; - uint8_t SeedReqTimes; -}KamData_t; - -#define WDT_RST 0x10 -#define RPRGRM_REQ_VALID 0xA5 -#define RUN_IN_BOOT 0x00 -#define RUN_IN_APP 0xA5 -#define ACK_REQ 0xA5 - -#define GetAppValid() (*(__far uint32 *)0xA100) -#define GetAppEndValid() (*(__far uint32 *)0x19FF0) - -#define DID_0200_ADDR 0x1A000 -#define DID_0201_ADDR 0x1A008 - -#define DID_F180_ADDR 0x19C20 -#define DID_F193_ADDR 0x19C00 -#define DID_F195_ADDR 0x19C10 - -extern KamData_t KamData; -extern uint8_t fsl_code_buf[0x480]; -/*********************************************************************************************************************** -Global functions -***********************************************************************************************************************/ - -#endif diff --git a/ECU_BOOT/boot_main.c b/ECU_BOOT/boot_main.c deleted file mode 100644 index 05b4eba..0000000 --- a/ECU_BOOT/boot_main.c +++ /dev/null @@ -1,234 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : r_main.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements main function. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_cgc.h" -#include "boot_port.h" -#include "boot_timer.h" -#include "boot_wdt.h" -/* Start user code for include. Do not edit comment generated here */ -#include "r_rl78_can_drv.h" -#include "r_rl78_can_sfr.h" -#include "RL78_RCAN.h" -#include "boot_can_user.h" -#include "api.h" -#include "Dcm_extern.h" -#include "pfdl_user.h" -#include "CanTp.h" -#include "ftable.h" -#include "boot_adc.h" -#include "Dcm_App.h" -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" -#include "CanTp_Cfg.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -#pragma section @@DATA KAM_SEG - KamData_t KamData; -#pragma section @@DATA @@DATA - -#pragma section @@DATA FslSeg -uint8_t fsl_code_buf[0x480]; -#pragma section @@DATA @@DATA - -uint16 ADval_Power; -uint16 AdcSample(uint8 ch) ; -void AdScan(void); - -/* End user code. Do not edit comment generated here */ -void Boot_MAIN_UserInit(void); -void IGN_Scan(void); -extern unsigned char flag_100ms; -unsigned char time,IGN_State; -#define CAN_STB P1.2 -/*********************************************************************************************************************** -* Function Name: main -* Description : This function implements main function. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void boot_main(void) -{ - uint8 i; - Boot_MAIN_UserInit(); - /* Start user code. Do not edit comment generated here */ - Boot_TAU0_Channel4_Start(); - R_ADC_Start(); - R_ADC_Set_OperationOn(); - //P3.0 = 1; // AD_Bat - CAN_STB = 0; - if(KamData.boot_enable != RPRGRM_REQ_VALID) - { - if((GetAppValid() == APP_VALID)&&(GetAppEndValid() == APP_VALID)) - { - DI(); - Boot_TAU0_Channel4_Stop(); - KamData.boot_enable = 0; - KamData.RunAir = RUN_IN_APP; - while(1) - { - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE)))(); - } - } - else - { - KamData.RunAir = RUN_IN_BOOT; - InitCanTp_Parameter(); - InitDcm_Parameter(); - Boot_CAN_Pin_init(); - CanUserInit(); - BootDefaultSessionDeal(); - } - } - else - { - KamData.RunAir = RUN_IN_BOOT; - InitCanTp_Parameter(); - InitDcm_Parameter(); - Boot_CAN_Pin_init(); - CanUserInit(); - - BootProgramSessionDeal(); - - } -#if 0 - if(KamData.boot_enable == RPRGRM_REQ_VALID) - { - SetCanTp_TxBuffer(KamData.RspData[0],&KamData.RspData[1]); - } -#endif - if(KamData.AckReq == ACK_REQ) - { - TransmitCAN_Message(CANTP_RESP_CANID,8,&KamData.RspData[0]); - KamData.AckReq = 0; - } - while (1U) - { - Boot_WDT_Restart(); - MngDcm_1ms_Sever(); - i++; - if(i>100) - { - AdScan(); - IGN_Scan(); - i=0; - } - } - - /* End user code. Do not edit comment generated here */ -} - -/*********************************************************************************************************************** -* Function Name: Boot_MAIN_UserInit -* Description : This function adds user code before implementing main function. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_MAIN_UserInit(void) -{ - /* Start user code. Do not edit comment generated here */ - KamData.RstSrc = RESF; - if(KamData.RstSrc != WDT_RST) - { - KamData.boot_enable = 0; - KamData.RunAir = RUN_IN_BOOT; - KamData.AckReq = 0; - } - EI(); - /* End user code. Do not edit comment generated here */ -} - -/* Start user code for adding. Do not edit comment generated here */ -void Boot_CAN_Pin_init(void) -{ - PM1.0 = 0; - P1.0 = 1; - PM1.1 = 1; - - //PM1.3 = 0;//OUTPUT - CAN_STB = 0; -} - -uint16 AdcSample(uint8 ch) -{ - uint16 u2Temp; - ADS = ch; //ģͨĴ - ADCS = 1; // A/DתеĿƣ1Ϊת - while(!ADIF); //ж־ - u2Temp = ADCR>>6; //10 λ A/D תĴ - ADCS = 0; - ADIF = 0; - return u2Temp; - } - -void AdScan(void) -{ - static uint8 FilterCounter; - static uint16 AD_temp[5]; - uint8 i; - uint16 AD_cal=0; - AD_temp[FilterCounter] = AdcSample(0); - FilterCounter++; - if(FilterCounter >= 5)FilterCounter=0; - for(i=0;i<5;i++) - { - AD_cal += AD_temp[i]; - } - //ADval_Power = AD_cal/5; - ADval_Power = 350; -} - - -void IGN_Scan(void) -{ - /* - if(P1.7 == 1) - { - IGN_State = 0; - } - else - { - IGN_State = 1; - } - */ - IGN_State = 1; -} - -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_port.c b/ECU_BOOT/boot_port.c deleted file mode 100644 index 7fff683..0000000 --- a/ECU_BOOT/boot_port.c +++ /dev/null @@ -1,89 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_port.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for PORT module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_port.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: Boot_PORT_Create -* Description : This function initializes the Port I/O. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_PORT_Create(void) -{ - P0 = _00_Pn0_OUTPUT_0; - P1 = _00_Pn2_OUTPUT_0 | _00_Pn5_OUTPUT_0; - P3 = _00_Pn1_OUTPUT_0; - P5 = _00_Pn0_OUTPUT_0 | _00_Pn1_OUTPUT_0 | _00_Pn2_OUTPUT_0; - P7 = _00_Pn0_OUTPUT_0 | _00_Pn1_OUTPUT_0 | _00_Pn3_OUTPUT_0 | _00_Pn6_OUTPUT_0 | _00_Pn7_OUTPUT_0; - P9 = _00_Pn0_OUTPUT_0 | _00_Pn2_OUTPUT_0 | _00_Pn6_OUTPUT_0; - P8 = 0; - P13 = _00_Pn0_OUTPUT_0; - P14 = _00_Pn0_OUTPUT_0; - PU4 = _01_PUn0_PULLUP_ON; - PMC9 = _00_PMCn6_DI_ON | _BF_PMC9_DEFAULT; - PMC12 = _01_PMCn0_NOT_USE | _00_PMCn5_DI_ON | _DE_PMC12_DEFAULT; - PSRSEL = _00_PSR140_NORMAL | _00_PSR12_NORMAL; - ADPC = 1;//_0B_ADPC_DI_ON; - PM0 = _00_PMn0_MODE_OUTPUT | _FE_PM0_DEFAULT; - PM1 = _01_PMn0_NOT_USE | _02_PMn1_NOT_USE | _00_PMn2_MODE_OUTPUT | _00_PMn3_MODE_OUTPUT | _10_PMn4_NOT_USE | - _00_PMn5_MODE_OUTPUT | _40_PMn6_MODE_INPUT | _80_PMn7_MODE_INPUT; - PM3 = _00_PMn0_MODE_OUTPUT | _00_PMn1_MODE_OUTPUT | _04_PMn2_MODE_INPUT | _00_PMn3_MODE_OUTPUT | _10_PMn4_NOT_USE | - _E0_PM3_DEFAULT; - PM5 = _00_PMn0_MODE_OUTPUT | _00_PMn1_MODE_OUTPUT | _00_PMn2_MODE_OUTPUT | _00_PMn3_MODE_OUTPUT | _F0_PM5_DEFAULT; - PM6 = _01_PMn0_MODE_INPUT | _02_PMn1_NOT_USE | _04_PMn2_NOT_USE | _08_PMn3_MODE_INPUT | _F0_PM6_DEFAULT; - PM7 = _00_PMn0_MODE_OUTPUT | _00_PMn1_MODE_OUTPUT | _04_PMn2_MODE_INPUT | _00_PMn3_MODE_OUTPUT | - _10_PMn4_MODE_INPUT | _20_PMn5_MODE_INPUT | _00_PMn6_MODE_OUTPUT | _00_PMn7_MODE_OUTPUT; - PM8 = 0xFE; - PM9 = _00_PMn0_MODE_OUTPUT | _02_PMn1_MODE_INPUT | _00_PMn2_MODE_OUTPUT | _08_PMn3_MODE_INPUT | _10_PMn4_NOT_USE | - _20_PMn5_MODE_INPUT | _00_PMn6_MODE_OUTPUT | _80_PM9_DEFAULT; - PM12 = _01_PMn0_NOT_USE | _20_PMn5_MODE_INPUT | _DE_PM12_DEFAULT; - PM14 = _00_PMn0_MODE_OUTPUT | _FE_PM14_DEFAULT; -} - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_port.h b/ECU_BOOT/boot_port.h deleted file mode 100644 index fd38023..0000000 --- a/ECU_BOOT/boot_port.h +++ /dev/null @@ -1,262 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_port.h -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for PORT module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -#ifndef PORT_H -#define PORT_H - -/*********************************************************************************************************************** -Macro definitions (Register bit) -***********************************************************************************************************************/ -/* - Port Mode Register (PMm) -*/ -/* Pmn pin I/O mode selection (PMm7 - PMm0) */ -#define _01_PMn0_NOT_USE (0x01U) /* not use Pn0 as digital I/O */ -#define _01_PMn0_MODE_INPUT (0x01U) /* use Pn0 as input mode */ -#define _00_PMn0_MODE_OUTPUT (0x00U) /* use Pn0 as output mode */ -#define _02_PMn1_NOT_USE (0x02U) /* not use Pn1 as digital I/O */ -#define _02_PMn1_MODE_INPUT (0x02U) /* use Pn1 as input mode */ -#define _00_PMn1_MODE_OUTPUT (0x00U) /* use Pn1 as output mode */ -#define _04_PMn2_NOT_USE (0x04U) /* not use Pn2 as digital I/O */ -#define _04_PMn2_MODE_INPUT (0x04U) /* use Pn2 as input mode */ -#define _00_PMn2_MODE_OUTPUT (0x00U) /* use Pn2 as output mode */ -#define _08_PMn3_NOT_USE (0x08U) /* not use Pn3 as digital I/O */ -#define _08_PMn3_MODE_INPUT (0x08U) /* use Pn3 as input mode */ -#define _00_PMn3_MODE_OUTPUT (0x00U) /* use Pn3 as output mode */ -#define _10_PMn4_NOT_USE (0x10U) /* not use Pn4 as digital I/O */ -#define _10_PMn4_MODE_INPUT (0x10U) /* use Pn4 as input mode */ -#define _00_PMn4_MODE_OUTPUT (0x00U) /* use Pn4 as output mode */ -#define _20_PMn5_NOT_USE (0x20U) /* not use Pn5 as digital I/O */ -#define _20_PMn5_MODE_INPUT (0x20U) /* use Pn5 as input mode */ -#define _00_PMn5_MODE_OUTPUT (0x00U) /* use Pn5 as output mode */ -#define _40_PMn6_NOT_USE (0x40U) /* not use Pn6 as digital I/O */ -#define _40_PMn6_MODE_INPUT (0x40U) /* use Pn6 as input mode */ -#define _00_PMn6_MODE_OUTPUT (0x00U) /* use Pn6 as output mode */ -#define _80_PMn7_NOT_USE (0x80U) /* not use Pn7 as digital I/O */ -#define _80_PMn7_MODE_INPUT (0x80U) /* use Pn7 as input mode */ -#define _00_PMn7_MODE_OUTPUT (0x00U) /* use Pn7 as output mode */ - -/* - Port Register (Pm) -*/ -/* Pmn pin data (Pm0 to Pm7) */ -#define _00_Pn0_OUTPUT_0 (0x00U) /* Pn0 output 0 */ -#define _01_Pn0_OUTPUT_1 (0x01U) /* Pn0 output 1 */ -#define _00_Pn1_OUTPUT_0 (0x00U) /* Pn1 output 0 */ -#define _02_Pn1_OUTPUT_1 (0x02U) /* Pn1 output 1 */ -#define _00_Pn2_OUTPUT_0 (0x00U) /* Pn2 output 0 */ -#define _04_Pn2_OUTPUT_1 (0x04U) /* Pn2 output 1 */ -#define _00_Pn3_OUTPUT_0 (0x00U) /* Pn3 output 0 */ -#define _08_Pn3_OUTPUT_1 (0x08U) /* Pn3 output 1 */ -#define _00_Pn4_OUTPUT_0 (0x00U) /* Pn4 output 0 */ -#define _10_Pn4_OUTPUT_1 (0x10U) /* Pn4 output 1 */ -#define _00_Pn5_OUTPUT_0 (0x00U) /* Pn5 output 0 */ -#define _20_Pn5_OUTPUT_1 (0x20U) /* Pn5 output 1 */ -#define _00_Pn6_OUTPUT_0 (0x00U) /* Pn6 output 0 */ -#define _40_Pn6_OUTPUT_1 (0x40U) /* Pn6 output 1 */ -#define _00_Pn7_OUTPUT_0 (0x00U) /* Pn7 output 0 */ -#define _80_Pn7_OUTPUT_1 (0x80U) /* Pn7 output 1 */ - -/* - Pull-up Resistor Option Register (PUm) -*/ -/* Pmn pin on-chip pull-up resistor selection (PUmn) */ -#define _00_PUn0_PULLUP_OFF (0x00U) /* Pn0 pull-up resistor not connected */ -#define _01_PUn0_PULLUP_ON (0x01U) /* Pn0 pull-up resistor connected */ -#define _00_PUn1_PULLUP_OFF (0x00U) /* Pn1 pull-up resistor not connected */ -#define _02_PUn1_PULLUP_ON (0x02U) /* Pn1 pull-up resistor connected */ -#define _00_PUn2_PULLUP_OFF (0x00U) /* Pn2 Pull-up resistor not connected */ -#define _04_PUn2_PULLUP_ON (0x04U) /* Pn2 pull-up resistor connected */ -#define _00_PUn3_PULLUP_OFF (0x00U) /* Pn3 pull-up resistor not connected */ -#define _08_PUn3_PULLUP_ON (0x08U) /* Pn3 pull-up resistor connected */ -#define _00_PUn4_PULLUP_OFF (0x00U) /* Pn4 pull-up resistor not connected */ -#define _10_PUn4_PULLUP_ON (0x10U) /* Pn4 pull-up resistor connected */ -#define _00_PUn5_PULLUP_OFF (0x00U) /* Pn5 pull-up resistor not connected */ -#define _20_PUn5_PULLUP_ON (0x20U) /* Pn5 pull-up resistor connected */ -#define _00_PUn6_PULLUP_OFF (0x00U) /* Pn6 pull-up resistor not connected */ -#define _40_PUn6_PULLUP_ON (0x40U) /* Pn6 pull-up resistor connected */ -#define _00_PUn7_PULLUP_OFF (0x00U) /* Pn7 pull-up resistor not connected */ -#define _80_PUn7_PULLUP_ON (0x80U) /* Pn7 pull-up resistor connected */ - -/* - Port Input Mode Register (PIMm) -*/ -/* Pmn pin input buffer selection (PIMmn) */ -#define _00_PIMn0_TTL_OFF (0x00U) /* set Pn0 normal input buffer */ -#define _01_PIMn0_TTL_ON (0x01U) /* set Pn0 TTL input buffer */ -#define _00_PIMn1_TTL_OFF (0x00U) /* set Pn1 normal input buffer */ -#define _02_PIMn1_TTL_ON (0x02U) /* set Pn1 TTL input buffer */ -#define _00_PIMn2_TTL_OFF (0x00U) /* set Pn2 normal input buffer */ -#define _04_PIMn2_TTL_ON (0x04U) /* set Pn2 TTL input buffer */ -#define _00_PIMn3_TTL_OFF (0x00U) /* set Pn3 normal input buffer */ -#define _08_PIMn3_TTL_ON (0x08U) /* set Pn3 TTL input buffer */ -#define _00_PIMn4_TTL_OFF (0x00U) /* set Pn4 normal input buffer */ -#define _10_PIMn4_TTL_ON (0x10U) /* set Pn4 TTL input buffer */ -#define _00_PIMn5_TTL_OFF (0x00U) /* set Pn5 normal input buffer */ -#define _20_PIMn5_TTL_ON (0x20U) /* set Pn5 TTL input buffer */ -#define _00_PIMn6_TTL_OFF (0x00U) /* set Pn6 normal input buffer */ -#define _40_PIMn6_TTL_ON (0x40U) /* set Pn6 TTL input buffer */ -#define _00_PIMn7_TTL_OFF (0x00U) /* set Pn7 normal input buffer */ -#define _80_PIMn7_TTL_ON (0x80U) /* set Pn7 TTL input buffer */ - -/* - Port Input Threshold Control Register (PITHLm) -*/ -/* Pmn pin input threshold selection (PITHLmn) */ -#define _00_PITHLn0_SCHMITT3_OFF (0x00U) /* set Pn0 schmitt 1 input (default) */ -#define _01_PITHLn0_SCHMITT3_ON (0x01U) /* set Pn0 schmitt 3 input */ -#define _00_PITHLn1_SCHMITT3_OFF (0x00U) /* set Pn1 schmitt 1 input (default) */ -#define _02_PITHLn1_SCHMITT3_ON (0x02U) /* set Pn1 schmitt 3 input */ -#define _00_PITHLn2_SCHMITT3_OFF (0x00U) /* set Pn2 schmitt 1 input (default) */ -#define _04_PITHLn2_SCHMITT3_ON (0x04U) /* set Pn2 schmitt 3 input */ -#define _00_PITHLn3_SCHMITT3_OFF (0x00U) /* set Pn3 schmitt 1 input (default) */ -#define _08_PITHLn3_SCHMITT3_ON (0x08U) /* set Pn3 schmitt 3 input */ -#define _00_PITHLn4_SCHMITT3_OFF (0x00U) /* set Pn4 schmitt 1 input (default) */ -#define _10_PITHLn4_SCHMITT3_ON (0x10U) /* set Pn4 schmitt 3 input */ -#define _00_PITHLn5_SCHMITT3_OFF (0x00U) /* set Pn5 schmitt 1 input (default) */ -#define _20_PITHLn5_SCHMITT3_ON (0x20U) /* set Pn5 schmitt 3 input */ -#define _00_PITHLn6_SCHMITT3_OFF (0x00U) /* set Pn6 schmitt 1 input (default) */ -#define _40_PITHLn6_SCHMITT3_ON (0x40U) /* set Pn6 schmitt 3 input */ -#define _00_PITHLn7_SCHMITT3_OFF (0x00U) /* set Pn7 schmitt 1 input (default) */ -#define _80_PITHLn7_SCHMITT3_ON (0x80U) /* set Pn7 schmitt 3 input */ - -/* - Port Output Mode Register (POMm) -*/ -/* Pmn pin output mode selection (POMmn) */ -#define _00_POMn0_NCH_OFF (0x00U) /* set Pn0 output normal mode */ -#define _01_POMn0_NCH_ON (0x01U) /* set Pn0 output N-ch open-drain mode */ -#define _00_POMn1_NCH_OFF (0x00U) /* set Pn1 output normal mode */ -#define _02_POMn1_NCH_ON (0x02U) /* set Pn1 output N-ch open-drain mode */ -#define _00_POMn2_NCH_OFF (0x00U) /* set Pn2 output normal mode */ -#define _04_POMn2_NCH_ON (0x04U) /* set Pn2 output N-ch open-drain mode */ -#define _00_POMn3_NCH_OFF (0x00U) /* set Pn3 output normal mode */ -#define _08_POMn3_NCH_ON (0x08U) /* set Pn3 output N-ch open-drain mode */ -#define _00_POMn4_NCH_OFF (0x00U) /* set Pn4 output normal mode */ -#define _10_POMn4_NCH_ON (0x10U) /* set Pn4 output N-ch open-drain mode */ -#define _00_POMn5_NCH_OFF (0x00U) /* set Pn5 output normal mode */ -#define _20_POMn5_NCH_ON (0x20U) /* set Pn5 output N-ch open-drain mode */ -#define _00_POMn6_NCH_OFF (0x00U) /* set Pn6 output normal mode */ -#define _40_POMn6_NCH_ON (0x40U) /* set Pn6 output N-ch open-drain mode */ -#define _00_POMn7_NCH_OFF (0x00U) /* set Pn7 output normal mode */ -#define _80_POMn7_NCH_ON (0x80U) /* set Pn7 output N-ch open-drain mode */ - -/* - Port Operation Mode Register (PMCm) -*/ -/* Pmn pin digital input buffer selection (PMCmn) */ -#define _01_PMCn0_NOT_USE (0x01U) /* not use Pn0 digital input */ -#define _00_PMCn0_DI_ON (0x00U) /* enable Pn0 digital input */ -#define _02_PMCn1_NOT_USE (0x02U) /* not use Pn1 digital input */ -#define _00_PMCn1_DI_ON (0x00U) /* enable Pn1 digital input */ -#define _04_PMCn2_NOT_USE (0x04U) /* not use Pn2 digital input */ -#define _00_PMCn2_DI_ON (0x00U) /* enable Pn2 digital input */ -#define _08_PMCn3_NOT_USE (0x08U) /* not use Pn3 digital input */ -#define _00_PMCn3_DI_ON (0x00U) /* enable Pn3 digital input */ -#define _10_PMCn4_NOT_USE (0x10U) /* not use Pn4 digital input */ -#define _00_PMCn4_DI_ON (0x00U) /* enable Pn4 digital input */ -#define _20_PMCn5_NOT_USE (0x20U) /* not use Pn5 digital input */ -#define _00_PMCn5_DI_ON (0x00U) /* enable Pn5 digital input */ -#define _40_PMCn6_NOT_USE (0x40U) /* not use Pn6 digital input */ -#define _00_PMCn6_DI_ON (0x00U) /* enable Pn6 digital input */ -#define _80_PMCn7_NOT_USE (0x80U) /* not use Pn7 digital input */ -#define _00_PMCn7_DI_ON (0x00U) /* enable Pn7 digital input */ - -/* - Port output slew rate select register (PSRSEL) -*/ -/* P140/PCLBUZ0 pin output mode selection (PSR140) */ -#define _00_PSR140_NORMAL (0x00U) /* normal mode (5 V/5 ns) */ -#define _20_PSR140_SLOW (0x20U) /* slow mode (25 V/5 ns (target) (TYP.)) */ -/* P14/SCK01/SCL01/TO06/TRDIOC0 pin output mode selection (PSR14) */ -#define _00_PSR14_NORMAL (0x00U) /* normal mode (5 V/5 ns) */ -#define _10_PSR14_SLOW (0x10U) /* slow mode (25 V/5 ns (target) (TYP.)) */ -/* P120/SO01/TO07/TRDIOD0 pin output mode selection (PSR120) */ -#define _00_PSR120_NORMAL (0x00U) /* normal mode (5 V/5 ns) */ -#define _08_PSR120_SLOW (0x08U) /* slow mode (25 V/5 ns (target) (TYP.)) */ -/* P30/TO01/TRDIOD1/SNZOUT0 pin output mode selection (PSR30) */ -#define _00_PSR30_NORMAL (0x00U) /* normal mode (5 V/5 ns) */ -#define _04_PSR30_SLOW (0x04U) /* slow mode (25 V/5 ns (target) (TYP.)) */ -/* P12/SO10/TO11/(TRDIOD0)/TXD1/SNZOUT3 pin output mode selection (PSR12) */ -#define _00_PSR12_NORMAL (0x00U) /* normal mode (5 V/5 ns) */ -#define _02_PSR12_SLOW (0x02U) /* slow mode (25 V/5 ns (target) (TYP.)) */ -/* P10/SCK10/TO13/TRJO0/SCL10/LTXD1/CTXD0 pin output mode selection (PSR10) */ -#define _00_PSR10_NORMAL (0x00U) /* normal mode (5 V/5 ns) */ -#define _01_PSR10_SLOW (0x01U) /* slow mode (25 V/5 ns (target) (TYP.)) */ - - -/* - AD port configuration register (ADPC) -*/ -/* Analog input/digital input switching (ADPC4 - ADPC0) */ -#define _00_ADPC_DI_OFF (0x00U) /* use P33, P34, P80 - P87, P90 - P96 as analog input */ -#define _11_ADPC_DI_ON (0x11U) /* use P96 as digital input */ -#define _10_ADPC_DI_ON (0x10U) /* use P95 - P96 as digital input */ -#define _0F_ADPC_DI_ON (0x0FU) /* use P94 - P96 as digital input */ -#define _0E_ADPC_DI_ON (0x0EU) /* use P93 - P96 as digital input */ -#define _0D_ADPC_DI_ON (0x0DU) /* use P92 - P96 as digital input */ -#define _0C_ADPC_DI_ON (0x0CU) /* use P91 - P96 as digital input */ -#define _0B_ADPC_DI_ON (0x0BU) /* use P90 - P96 as digital input */ -#define _0A_ADPC_DI_ON (0x0AU) /* use P87, P90 - P96 as digital input */ -#define _09_ADPC_DI_ON (0x09U) /* use P86 - P87, P90 - P96 as digital input */ -#define _08_ADPC_DI_ON (0x08U) /* use P85 - P87, P90 - P96 as digital input */ -#define _07_ADPC_DI_ON (0x07U) /* use P84 - P87, P90 - P96 as digital input */ -#define _06_ADPC_DI_ON (0x06U) /* use P83 - P87, P90 - P96 as digital input */ -#define _05_ADPC_DI_ON (0x05U) /* use P82 - P87, P90 - P96 as digital input */ -#define _04_ADPC_DI_ON (0x04U) /* use P81 - P87, P90 - P96 as digital input */ -#define _03_ADPC_DI_ON (0x03U) /* use P80 - P87, P90 - P96 as digital input */ -#define _02_ADPC_DI_ON (0x02U) /* use P34, P80 - P87, P90 - P96 as digital input */ -#define _01_ADPC_DI_ON (0x01U) /* use P33, P34, P80 - P87, P90 - P96 as digital input */ - -/*********************************************************************************************************************** -Macro definitions -***********************************************************************************************************************/ -#define _FE_PM0_DEFAULT (0xFEU) /* PM0 default value */ -#define _E0_PM3_DEFAULT (0xE0U) /* PM3 default value */ -#define _F0_PM4_DEFAULT (0xF0U) /* PM4 default value */ -#define _F0_PM5_DEFAULT (0xF0U) /* PM5 default value */ -#define _F0_PM6_DEFAULT (0xF0U) /* PM6 default value */ -#define _80_PM9_DEFAULT (0x80U) /* PM9 default value */ -#define _DE_PM12_DEFAULT (0xDEU) /* PM12 default value */ -#define _FE_PM14_DEFAULT (0xFEU) /* PM14 default value */ -#define _BF_PMC9_DEFAULT (0xBFU) /* PMC9 default value */ -#define _DE_PMC12_DEFAULT (0xDEU) /* PMC12 default value */ - - -/*********************************************************************************************************************** -Typedef definitions -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Global functions -***********************************************************************************************************************/ -void Boot_PORT_Create(void); - -/* Start user code for function. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#endif diff --git a/ECU_BOOT/boot_port_user.c b/ECU_BOOT/boot_port_user.c deleted file mode 100644 index 22298a7..0000000 --- a/ECU_BOOT/boot_port_user.c +++ /dev/null @@ -1,51 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_port_user.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for PORT module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_port.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_systeminit.c b/ECU_BOOT/boot_systeminit.c deleted file mode 100644 index ae5120b..0000000 --- a/ECU_BOOT/boot_systeminit.c +++ /dev/null @@ -1,92 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : r_systeminit.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements system initializing function. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_cgc.h" -#include "boot_port.h" -#include "boot_timer.h" -#include "boot_wdt.h" -#include "boot_adc.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: Boot_Systeminit -* Description : This function initializes every macro. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_Systeminit(void) -{ - /* Set periperal I/O redirection */ - PIOR0 = 0x00U; - PIOR1 = 0x00U; - PIOR4 = 0x00U; - PIOR5 = 0x00U; - PIOR7 = 0x00U; - - Boot_CGC_Create(); - Boot_PORT_Create(); - Boot_TAU0_Create(); - Boot_WDT_Create(); - R_ADC_Create(); - /* Set invalid memory access detection control */ - IAWCTL = 0x00U; -} - - -/*********************************************************************************************************************** -* Function Name: hdwinit -* Description : This function initializes hardware setting. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void hdwinit(void) -{ - DI(); - Boot_Systeminit(); -} - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_timer.c b/ECU_BOOT/boot_timer.c deleted file mode 100644 index 9dbc549..0000000 --- a/ECU_BOOT/boot_timer.c +++ /dev/null @@ -1,201 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_timer.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for TAU module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_timer.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: Boot_TAU0_Create -* Description : This function initializes the TAU0 module. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Create(void) -{ - TAU0EN = 1U; /* supplies input clock */ - TPS0 = _0000_TAU_CKM0_FCLK_0 | _0000_TAU_CKM1_FCLK_0 | _0000_TAU_CKM2_FCLK_1 | _0000_TAU_CKM3_FCLK_8; - /* Stop all channels */ - TT0 = _0001_TAU_CH0_STOP_TRG_ON | _0002_TAU_CH1_STOP_TRG_ON | _0004_TAU_CH2_STOP_TRG_ON | - _0008_TAU_CH3_STOP_TRG_ON | _0010_TAU_CH4_STOP_TRG_ON | _0020_TAU_CH5_STOP_TRG_ON | - _0040_TAU_CH6_STOP_TRG_ON | _0080_TAU_CH7_STOP_TRG_ON | _0200_TAU_CH1_H8_STOP_TRG_ON | - _0800_TAU_CH3_H8_STOP_TRG_ON; - PWMDLY1 = _0000_TAU_PWM_DELAY_CLEAR; /* clear PWM output delay */ - /* Mask channel 0 interrupt */ - TMMK00 = 1U; /* disable INTTM00 interrupt */ - TMIF00 = 0U; /* clear INTTM00 interrupt flag */ - /* Mask channel 1 interrupt */ - TMMK01 = 1U; /* disable INTTM01 interrupt */ - TMIF01 = 0U; /* clear INTTM01 interrupt flag */ - /* Mask channel 1 higher 8 bits interrupt */ - TMMK01H = 1U; /* disable INTTM01H interrupt */ - TMIF01H = 0U; /* clear INTTM01H interrupt flag */ - /* Mask channel 2 interrupt */ - TMMK02 = 1U; /* disable INTTM02 interrupt */ - TMIF02 = 0U; /* clear INTTM02 interrupt flag */ - /* Mask channel 3 interrupt */ - TMMK03 = 1U; /* disable INTTM03 interrupt */ - TMIF03 = 0U; /* clear INTTM03 interrupt flag */ - /* Mask channel 3 higher 8 bits interrupt */ - TMMK03H = 1U; /* disable INTTM03H interrupt */ - TMIF03H = 0U; /* clear INTTM03H interrupt flag */ - /* Mask channel 4 interrupt */ - TMMK04 = 1U; /* disable INTTM04 interrupt */ - TMIF04 = 0U; /* clear INTTM04 interrupt flag */ - /* Mask channel 5 interrupt */ - TMMK05 = 1U; /* disable INTTM05 interrupt */ - TMIF05 = 0U; /* clear INTTM05 interrupt flag */ - /* Mask channel 6 interrupt */ - TMMK06 = 1U; /* disable INTTM06 interrupt */ - TMIF06 = 0U; /* clear INTTM06 interrupt flag */ - /* Mask channel 7 interrupt */ - TMMK07 = 1U; /* disable INTTM07 interrupt */ - TMIF07 = 0U; /* clear INTTM07 interrupt flag */ - /* Set INTTM02 low priority */ - TMPR102 = 1U; - TMPR002 = 1U; - /* Set INTTM04 low priority */ - TMPR104 = 1U; - TMPR004 = 1U; - /* Channel 2 used as interval timer */ - TMR02 = _0000_TAU_CLOCK_SELECT_CKM0 | _0000_TAU_CLOCK_MODE_CKS | _0000_TAU_COMBINATION_SLAVE | - _0000_TAU_TRIGGER_SOFTWARE | _0000_TAU_MODE_INTERVAL_TIMER | _0000_TAU_START_INT_UNUSED; - TDR02 = _7CFF_TAU_TDR02_VALUE; - TOM0 &= ~_0004_TAU_CH2_OUTPUT_COMBIN; - TOL0 &= ~_0004_TAU_CH2_OUTPUT_LEVEL_L; - TO0 &= ~_0004_TAU_CH2_OUTPUT_VALUE_1; - TOE0 &= ~_0004_TAU_CH2_OUTPUT_ENABLE; - /* Channel 4 used as interval timer */ - TMR04 = _0000_TAU_CLOCK_SELECT_CKM0 | _0000_TAU_CLOCK_MODE_CKS | _0000_TAU_COMBINATION_SLAVE | - _0000_TAU_TRIGGER_SOFTWARE | _0000_TAU_MODE_INTERVAL_TIMER | _0000_TAU_START_INT_UNUSED; - TDR04 = _7CFF_TAU_TDR04_VALUE; - TOM0 &= ~_0010_TAU_CH4_OUTPUT_COMBIN; - TOL0 &= ~_0010_TAU_CH4_OUTPUT_LEVEL_L; - TO0 &= ~_0010_TAU_CH4_OUTPUT_VALUE_1; - TOE0 &= ~_0010_TAU_CH4_OUTPUT_ENABLE; - /* Set TO01 pin */ - P3 &= 0xFEU; - PM3 &= 0xFEU; -} - -/*********************************************************************************************************************** -* Function Name: R_TAU0_Channel0_Start -* Description : This function starts TAU0 channel 0 counter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Channel0_Start(void) -{ - TOE0 |= _0002_TAU_CH1_OUTPUT_ENABLE; - TS0 |= _0001_TAU_CH0_START_TRG_ON | _0002_TAU_CH1_START_TRG_ON; -} - -/*********************************************************************************************************************** -* Function Name: R_TAU0_Channel0_Stop -* Description : This function stops TAU0 channel 0 counter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Channel0_Stop(void) -{ - TT0 |= _0001_TAU_CH0_STOP_TRG_ON | _0002_TAU_CH1_STOP_TRG_ON; - TOE0 &= ~_0002_TAU_CH1_OUTPUT_ENABLE; -} - -/*********************************************************************************************************************** -* Function Name: R_TAU0_Channel2_Start -* Description : This function starts TAU0 channel 2 counter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Channel2_Start(void) -{ - TMIF02 = 0U; /* clear INTTM02 interrupt flag */ - TMMK02 = 0U; /* enable INTTM02 interrupt */ - TS0 |= _0004_TAU_CH2_START_TRG_ON; -} - -/*********************************************************************************************************************** -* Function Name: R_TAU0_Channel2_Stop -* Description : This function stops TAU0 channel 2 counter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Channel2_Stop(void) -{ - TT0 |= _0004_TAU_CH2_STOP_TRG_ON; - /* Mask channel 2 interrupt */ - TMMK02 = 1U; /* disable INTTM02 interrupt */ - TMIF02 = 0U; /* clear INTTM02 interrupt flag */ -} - -/*********************************************************************************************************************** -* Function Name: Boot_TAU0_Channel4_Start -* Description : This function starts TAU0 channel 4 counter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Channel4_Start(void) -{ - TMIF04 = 0U; /* clear INTTM04 interrupt flag */ - TMMK04 = 0U; /* enable INTTM04 interrupt */ - TS0 |= _0010_TAU_CH4_START_TRG_ON; -} - -/*********************************************************************************************************************** -* Function Name: R_TAU0_Channel4_Stop -* Description : This function stops TAU0 channel 4 counter. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_TAU0_Channel4_Stop(void) -{ - TT0 |= _0010_TAU_CH4_STOP_TRG_ON; - /* Mask channel 4 interrupt */ - TMMK04 = 1U; /* disable INTTM04 interrupt */ - TMIF04 = 0U; /* clear INTTM04 interrupt flag */ -} -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_timer.h b/ECU_BOOT/boot_timer.h deleted file mode 100644 index f5c7128..0000000 --- a/ECU_BOOT/boot_timer.h +++ /dev/null @@ -1,1049 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2016 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_timer.h -* Version : CodeGenerator for RL78/F13 V2.02.05.01 [11 Nov 2016] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for TAU module. -* Creation Date: 2017/8/7 -***********************************************************************************************************************/ - -#ifndef TAU_H -#define TAU_H - -/*********************************************************************************************************************** -Macro definitions (Register bit) -***********************************************************************************************************************/ -/* - Peripheral Enable Register 0 (PER0) -*/ -/* Control of timer array unit 0 input clock (TAU0EN) */ -#define _00_TAU0_CLOCK_STOP (0x00U) /* stops supply of input clock */ -#define _01_TAU0_CLOCK_SUPPLY (0x01U) /* supplies input clock */ -/* Control of timer array unit 1 input clock (TAU1EN) */ -#define _00_TAU1_CLOCK_STOP (0x00U) /* stops supply of input clock */ -#define _02_TAU1_CLOCK_SUPPLY (0x02U) /* supplies input clock */ - -/* - Timer Clock Select Register m (TPSm) -*/ -/* Operating mode and clear mode selection (PRSm03 - PRSm00) */ -#define _0000_TAU_CKM0_FCLK_0 (0x0000U) /* ckm0 - fCLK */ -#define _0001_TAU_CKM0_FCLK_1 (0x0001U) /* ckm0 - fCLK/2^1 */ -#define _0002_TAU_CKM0_FCLK_2 (0x0002U) /* ckm0 - fCLK/2^2 */ -#define _0003_TAU_CKM0_FCLK_3 (0x0003U) /* ckm0 - fCLK/2^3 */ -#define _0004_TAU_CKM0_FCLK_4 (0x0004U) /* ckm0 - fCLK/2^4 */ -#define _0005_TAU_CKM0_FCLK_5 (0x0005U) /* ckm0 - fCLK/2^5 */ -#define _0006_TAU_CKM0_FCLK_6 (0x0006U) /* ckm0 - fCLK/2^6 */ -#define _0007_TAU_CKM0_FCLK_7 (0x0007U) /* ckm0 - fCLK/2^7 */ -#define _0008_TAU_CKM0_FCLK_8 (0x0008U) /* ckm0 - fCLK/2^8 */ -#define _0009_TAU_CKM0_FCLK_9 (0x0009U) /* ckm0 - fCLK/2^9 */ -#define _000A_TAU_CKM0_FCLK_10 (0x000AU) /* ckm0 - fCLK/2^10 */ -#define _000B_TAU_CKM0_FCLK_11 (0x000BU) /* ckm0 - fCLK/2^11 */ -#define _000C_TAU_CKM0_FCLK_12 (0x000CU) /* ckm0 - fCLK/2^12 */ -#define _000D_TAU_CKM0_FCLK_13 (0x000DU) /* ckm0 - fCLK/2^13 */ -#define _000E_TAU_CKM0_FCLK_14 (0x000EU) /* ckm0 - fCLK/2^14 */ -#define _000F_TAU_CKM0_FCLK_15 (0x000FU) /* ckm0 - fCLK/2^15 */ -/* Operating mode and clear mode selection (PRSm13 - PRSm10) */ -#define _0000_TAU_CKM1_FCLK_0 (0x0000U) /* ckm1 - fCLK */ -#define _0010_TAU_CKM1_FCLK_1 (0x0010U) /* ckm1 - fCLK/2^1 */ -#define _0020_TAU_CKM1_FCLK_2 (0x0020U) /* ckm1 - fCLK/2^2 */ -#define _0030_TAU_CKM1_FCLK_3 (0x0030U) /* ckm1 - fCLK/2^3 */ -#define _0040_TAU_CKM1_FCLK_4 (0x0040U) /* ckm1 - fCLK/2^4 */ -#define _0050_TAU_CKM1_FCLK_5 (0x0050U) /* ckm1 - fCLK/2^5 */ -#define _0060_TAU_CKM1_FCLK_6 (0x0060U) /* ckm1 - fCLK/2^6 */ -#define _0070_TAU_CKM1_FCLK_7 (0x0070U) /* ckm1 - fCLK/2^7 */ -#define _0080_TAU_CKM1_FCLK_8 (0x0080U) /* ckm1 - fCLK/2^8 */ -#define _0090_TAU_CKM1_FCLK_9 (0x0090U) /* ckm1 - fCLK/2^9 */ -#define _00A0_TAU_CKM1_FCLK_10 (0x00A0U) /* ckm1 - fCLK/2^10 */ -#define _00B0_TAU_CKM1_FCLK_11 (0x00B0U) /* ckm1 - fCLK/2^11 */ -#define _00C0_TAU_CKM1_FCLK_12 (0x00C0U) /* ckm1 - fCLK/2^12 */ -#define _00D0_TAU_CKM1_FCLK_13 (0x00D0U) /* ckm1 - fCLK/2^13 */ -#define _00E0_TAU_CKM1_FCLK_14 (0x00E0U) /* ckm1 - fCLK/2^14 */ -#define _00F0_TAU_CKM1_FCLK_15 (0x00F0U) /* ckm1 - fCLK/2^15 */ -/* Operating mode and clear mode selection (PRSm21 - PRSm20) */ -#define _0000_TAU_CKM2_FCLK_0 (0x0000U) /* CKM2 - fCLK */ -#define _0100_TAU_CKM2_FCLK_1 (0x0100U) /* CKM2 - fCLK/2^1 */ -#define _0200_TAU_CKM2_FCLK_2 (0x0200U) /* CKM2 - fCLK/2^2 */ -#define _0300_TAU_CKM2_FCLK_3 (0x0300U) /* CKM2 - fCLK/2^3 */ -#define _0400_TAU_CKM2_FCLK_4 (0x0400U) /* CKM2 - fCLK/2^4 */ -#define _0500_TAU_CKM2_FCLK_5 (0x0500U) /* CKM2 - fCLK/2^5 */ -#define _0600_TAU_CKM2_FCLK_6 (0x0600U) /* CKM2 - fCLK/2^6 */ -#define _0700_TAU_CKM2_FCLK_7 (0x0700U) /* CKM2 - fCLK/2^7 */ -#define _0800_TAU_CKM2_FCLK_8 (0x0800U) /* CKM2 - fCLK/2^8 */ -#define _0900_TAU_CKM2_FCLK_9 (0x0900U) /* CKM2 - fCLK/2^9 */ -#define _0A00_TAU_CKM2_FCLK_10 (0x0A00U) /* CKM2 - fCLK/2^10 */ -#define _0B00_TAU_CKM2_FCLK_11 (0x0B00U) /* CKM2 - fCLK/2^11 */ -#define _0C00_TAU_CKM2_FCLK_12 (0x0C00U) /* CKM2 - fCLK/2^12 */ -#define _0D00_TAU_CKM2_FCLK_13 (0x0D00U) /* CKM2 - fCLK/2^13 */ -#define _0E00_TAU_CKM2_FCLK_14 (0x0E00U) /* CKM2 - fCLK/2^14 */ -#define _0F00_TAU_CKM2_FCLK_15 (0x0F00U) /* CKM2 - fCLK/2^15 */ -/* Operating mode and clear mode selection (PRSm31 - PRSm30) */ -#define _0000_TAU_CKM3_FCLK_0 (0x0000U) /* CKM3 - fCLK */ -#define _1000_TAU_CKM3_FCLK_1 (0x1000U) /* CKM3 - fCLK/2^1 */ -#define _2000_TAU_CKM3_FCLK_2 (0x2000U) /* CKM3 - fCLK/2^2 */ -#define _3000_TAU_CKM3_FCLK_3 (0x3000U) /* CKM3 - fCLK/2^3 */ -#define _4000_TAU_CKM3_FCLK_4 (0x4000U) /* CKM3 - fCLK/2^4 */ -#define _5000_TAU_CKM3_FCLK_5 (0x5000U) /* CKM3 - fCLK/2^5 */ -#define _6000_TAU_CKM3_FCLK_6 (0x6000U) /* CKM3 - fCLK/2^6 */ -#define _7000_TAU_CKM3_FCLK_7 (0x7000U) /* CKM3 - fCLK/2^7 */ -#define _8000_TAU_CKM3_FCLK_8 (0x8000U) /* CKM3 - fCLK/2^8 */ -#define _9000_TAU_CKM3_FCLK_9 (0x9000U) /* CKM3 - fCLK/2^9 */ -#define _A000_TAU_CKM3_FCLK_10 (0xA000U) /* CKM3 - fCLK/2^10 */ -#define _B000_TAU_CKM3_FCLK_11 (0xB000U) /* CKM3 - fCLK/2^11 */ -#define _C000_TAU_CKM3_FCLK_12 (0xC000U) /* CKM3 - fCLK/2^12 */ -#define _D000_TAU_CKM3_FCLK_13 (0xD000U) /* CKM3 - fCLK/2^13 */ -#define _E000_TAU_CKM3_FCLK_14 (0xE000U) /* CKM3 - fCLK/2^14 */ -#define _F000_TAU_CKM3_FCLK_15 (0xF000U) /* CKM3 - fCLK/2^15 */ -/* Operating mode and clear mode selection (PRSm21 - PRSm20) */ -#define _0000_TAU_CKM2_FCLK_1 (0x0000U) /* ckm2 - fCLK/2^1 */ -#define _0100_TAU_CKM2_FCLK_2 (0x0100U) /* ckm2 - fCLK/2^2 */ -#define _0200_TAU_CKM2_FCLK_4 (0x0200U) /* ckm2 - fCLK/2^4 */ -#define _0300_TAU_CKM2_FCLK_6 (0x0300U) /* ckm2 - fCLK/2^6 */ -/* Operating mode and clear mode selection (PRSm31 - PRSm30) */ -#define _0000_TAU_CKM3_FCLK_8 (0x0000U) /* ckm2 - fCLK/2^8 */ -#define _1000_TAU_CKM3_FCLK_10 (0x1000U) /* ckm2 - fCLK/2^10 */ -#define _2000_TAU_CKM3_FCLK_12 (0x2000U) /* ckm2 - fCLK/2^12 */ -#define _3000_TAU_CKM3_FCLK_14 (0x3000U) /* ckm2 - fCLK/2^14 */ - -/* - Timer Mode Register mn (TMRmn) -*/ -/* Selection of macro clock (MCK) of channel n (CKSmn1 - CKSmn0) */ -#define _0000_TAU_CLOCK_SELECT_CKM0 (0x0000U) /* operation clock CK0 set by PRS register */ -#define _8000_TAU_CLOCK_SELECT_CKM1 (0x8000U) /* operation clock CK1 set by PRS register */ -#define _4000_TAU_CLOCK_SELECT_CKM2 (0x4000U) /* operation clock CK2 set by PRS register */ -#define _C000_TAU_CLOCK_SELECT_CKM3 (0xC000U) /* operation clock CK3 set by PRS register */ -/* Selection of count clock (CCK) of channel n (CCSmn) */ -#define _0000_TAU_CLOCK_MODE_CKS (0x0000U) /* macro clock MCK specified by CKSmn bit */ -#define _1000_TAU_CLOCK_MODE_TIMN (0x1000U) /* valid edge of input signal input from TImn pin */ -/* Selection of slave/master of channel n (MASTERmn) */ -#define _0000_TAU_COMBINATION_SLAVE (0x0000U) /* operates as slave channel */ -#define _0800_TAU_COMBINATION_MASTER (0x0800U) /* operates as master channel */ -/* Operation explanation of channel 1 or 3 (SPLIT) */ -#define _0000_TAU_16BITS_MODE (0x0000U) /* operates as 16 bits timer */ -#define _0800_TAU_8BITS_MODE (0x0800U) /* operates as 8 bits timer */ -/* Setting of start trigger or capture trigger of channel n (STSmn2 - STSmn0) */ -#define _0000_TAU_TRIGGER_SOFTWARE (0x0000U) /* only software trigger start is valid */ -#define _0100_TAU_TRIGGER_TIMN_VALID (0x0100U) /* TImn input edge is used as a start/capture trigger */ -#define _0200_TAU_TRIGGER_TIMN_BOTH (0x0200U) /* TImn input edges are used as a start/capture trigger */ -#define _0400_TAU_TRIGGER_MASTER_INT (0x0400U) /* interrupt signal of the master channel is used */ -/* Selection of TImn pin input valid edge (CISmn1 - CISmn0) */ -#define _0000_TAU_TIMN_EDGE_FALLING (0x0000U) /* falling edge */ -#define _0040_TAU_TIMN_EDGE_RISING (0x0040U) /* rising edge */ -#define _0080_TAU_TIMN_EDGE_BOTH_LOW (0x0080U) /* both edges (when low-level width is measured) */ -#define _00C0_TAU_TIMN_EDGE_BOTH_HIGH (0x00C0U) /* both edges (when high-level width is measured) */ -/* Operation mode of channel n (MDmn3 - MDmn0) */ -#define _0000_TAU_MODE_INTERVAL_TIMER (0x0000U) /* interval timer mode */ -#define _0004_TAU_MODE_CAPTURE (0x0004U) /* capture mode */ -#define _0006_TAU_MODE_EVENT_COUNT (0x0006U) /* event counter mode */ -#define _0008_TAU_MODE_ONE_COUNT (0x0008U) /* one count mode */ -#define _000C_TAU_MODE_HIGHLOW_MEASURE (0x000CU) /* high-/low-level width measurement mode */ -#define _0001_TAU_MODE_PWM_MASTER (0x0001U) /* PWM Function (Master Channel) mode */ -#define _0009_TAU_MODE_PWM_SLAVE (0x0009U) /* PWM Function (Slave Channel) mode */ -#define _0008_TAU_MODE_ONESHOT (0x0008U) /* one-shot pulse output mode */ -/* Setting of starting counting and interrupt (MDmn0) */ -#define _0000_TAU_START_INT_UNUSED (0x0000U) /* interrupt is not generated when counting is started */ -#define _0001_TAU_START_INT_USED (0x0001U) /* interrupt is generated when counting is started */ - -/* - Timer Status Register mn (TSRmn) -*/ -/* Counter overflow status of channel n (OVF) */ -#define _0000_TAU_OVERFLOW_NOT_OCCURS (0x0000U) /* overflow does not occur */ -#define _0001_TAU_OVERFLOW_OCCURS (0x0001U) /* overflow occurs */ - -/* - Timer Channel Enable Status Register m (TEm) -*/ -/* Indication of operation enable/stop status of channel 0 (TEm0) */ -#define _0000_TAU_CH0_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0001_TAU_CH0_OPERATION_ENABLE (0x0001U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 1 (TEm1) */ -#define _0000_TAU_CH1_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0002_TAU_CH1_OPERATION_ENABLE (0x0002U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 2 (TEm2) */ -#define _0000_TAU_CH2_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0004_TAU_CH2_OPERATION_ENABLE (0x0004U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 3 (TEm3) */ -#define _0000_TAU_CH3_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0008_TAU_CH3_OPERATION_ENABLE (0x0008U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 4 (TEm4) */ -#define _0000_TAU_CH4_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0010_TAU_CH4_OPERATION_ENABLE (0x0010U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 5 (TEm5) */ -#define _0000_TAU_CH5_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0020_TAU_CH5_OPERATION_ENABLE (0x0020U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 6 (TEm6) */ -#define _0000_TAU_CH6_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0040_TAU_CH6_OPERATION_ENABLE (0x0040U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 7 (TEm7) */ -#define _0000_TAU_CH7_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0080_TAU_CH7_OPERATION_ENABLE (0x0080U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 1 higher 8 bits (TEHm1) */ -#define _0000_TAU_CH1_H8_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0200_TAU_CH1_H8_OPERATION_ENABLE (0x0200U) /* operation is enabled */ -/* Indication of operation enable/stop status of channel 3 higher 8 bits (TEHm3) */ -#define _0000_TAU_CH3_H8_OPERATION_STOP (0x0000U) /* operation is stopped */ -#define _0800_TAU_CH3_H8_OPERATION_ENABLE (0x0800U) /* operation is enabled */ - -/* - Timer Channel Start Register m (TSm) -*/ -/* Operation enable (start) trigger of channel 0 (TSm0) */ -#define _0000_TAU_CH0_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0001_TAU_CH0_START_TRG_ON (0x0001U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 1 (TSm1) */ -#define _0000_TAU_CH1_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0002_TAU_CH1_START_TRG_ON (0x0002U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 2 (TSm2) */ -#define _0000_TAU_CH2_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0004_TAU_CH2_START_TRG_ON (0x0004U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 3 (TSm3) */ -#define _0000_TAU_CH3_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0008_TAU_CH3_START_TRG_ON (0x0008U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 4 (TSm4) */ -#define _0000_TAU_CH4_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0010_TAU_CH4_START_TRG_ON (0x0010U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 5 (TSm5) */ -#define _0000_TAU_CH5_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0020_TAU_CH5_START_TRG_ON (0x0020U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 6 (TSm6) */ -#define _0000_TAU_CH6_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0040_TAU_CH6_START_TRG_ON (0x0040U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 7 (TSm7) */ -#define _0000_TAU_CH7_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0080_TAU_CH7_START_TRG_ON (0x0080U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 1 higher 8 bits (TSHm1) */ -#define _0000_TAU_CH1_H8_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0200_TAU_CH1_H8_START_TRG_ON (0x0200U) /* operation is enabled (start trigger is generated) */ -/* Operation enable (start) trigger of channel 3 higher 8 bits (TSHm3) */ -#define _0000_TAU_CH3_H8_START_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0800_TAU_CH3_H8_START_TRG_ON (0x0800U) /* operation is enabled (start trigger is generated) */ - -/* - Timer Channel Stop Register m (TTm) -*/ -/* Operation stop trigger of channel 0 (TTm0) */ -#define _0000_TAU_CH0_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0001_TAU_CH0_STOP_TRG_ON (0x0001U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 1 (TTm1) */ -#define _0000_TAU_CH1_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0002_TAU_CH1_STOP_TRG_ON (0x0002U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 2 (TTm2) */ -#define _0000_TAU_CH2_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0004_TAU_CH2_STOP_TRG_ON (0x0004U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 3 (TTm3) */ -#define _0000_TAU_CH3_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0008_TAU_CH3_STOP_TRG_ON (0x0008U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 4 (TTm4) */ -#define _0000_TAU_CH4_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0010_TAU_CH4_STOP_TRG_ON (0x0010U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 5 (TTm5) */ -#define _0000_TAU_CH5_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0020_TAU_CH5_STOP_TRG_ON (0x0020U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 6 (TTm6) */ -#define _0000_TAU_CH6_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0040_TAU_CH6_STOP_TRG_ON (0x0040U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 7 (TTm7) */ -#define _0000_TAU_CH7_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0080_TAU_CH7_STOP_TRG_ON (0x0080U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 1 higher 8 bits (TTHm1) */ -#define _0000_TAU_CH1_H8_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0200_TAU_CH1_H8_STOP_TRG_ON (0x0200U) /* operation is stopped (stop trigger is generated) */ -/* Operation stop trigger of channel 3 higher 8 bits (TTHm3) */ -#define _0000_TAU_CH3_H8_STOP_TRG_OFF (0x0000U) /* no trigger operation */ -#define _0800_TAU_CH3_H8_STOP_TRG_ON (0x0800U) /* operation is stopped (stop trigger is generated) */ - -/* - Timer Input Select Register m (TIS0) -*/ -/* Selection of timer input used with TAU0 channel 1 (TIS02 - TIS00) */ -#define _00_TAU_CH1_INPUT_TI01 (0x00U) /* input signal of timer input pin (TI01) */ -#define _01_TAU_CH1_INPUT_ELC (0x01U) /* input signal of timer input pin (ELC) */ -#define _02_TAU_CH1_INPUT_TI01 (0x02U) /* input signal of timer input pin (TI01) */ -#define _03_TAU_CH1_INPUT_TI01 (0x03U) /* input signal of timer input pin (TI01) */ -#define _04_TAU_CH1_INPUT_FIL (0x04U) /* internal low speed oscillation clock (fIL) */ -#define _05_TAU_CH1_INPUT_FSL (0x05U) /* low speed on-chip oscillator clock (fSL) */ -/* Selection of timer input used with TAU0 channel 0 (TIS04) */ -#define _00_TAU_CH0_INPUT_TI00 (0x00U) /* input signal of timer input pin (TI00) */ -#define _10_TAU_CH0_INPUT_ELC (0x10U) /* event input signal from ELC */ -/* Selection of timer input used with TAU0 channel 2 (TIS06) */ -#define _00_TAU_CH2_INPUT_TI02 (0x00U) /* input signal of timer input pin (TI02) */ -#define _40_TAU_CH2_INPUT_ELC (0x40U) /* event input signal from ELC */ -/* Selection of timer input used with TAU0 channel 3 (TIS07) */ -#define _00_TAU_CH3_INPUT_TI03 (0x00U) /* input signal of timer input pin (TI03) */ -#define _80_TAU_CH3_INPUT_ELC (0x80U) /* event input signal from ELC */ - -/* - Timer Input Select Register m (TIS1) -*/ -/* Selection of timer input used with TAU0 channel 4 (TIS10) */ -#define _00_TAU_CH4_INPUT_TI04 (0x00U) /* input signal of timer input pin (TI04) */ -#define _01_TAU_CH4_INPUT_TI03 (0x01U) /* input signal of timer input pin (TI03) */ -/* Selection of timer input used with TAU0 channel 5 (TIS12) */ -#define _00_TAU_CH5_INPUT_TI05 (0x00U) /* input signal of timer input pin (TI05) */ -#define _04_TAU_CH5_INPUT_TI03 (0x04U) /* input signal of timer input pin (TI03) */ -/* Selection of timer input used with TAU0 channel 6 (TIS14) */ -#define _00_TAU_CH6_INPUT_TI06 (0x00U) /* input signal of timer input pin (TI06) */ -#define _10_TAU_CH6_INPUT_RTC1HZ (0x10U) /* RTC1HZ output signal */ -/* Selection of timer input used with TAU0 channel 7 (TIS17 - TIS16) */ -#define _00_TAU_CH7_INPUT_TI07 (0x00U) /* input signal of timer input pin (TI07) */ -#define _40_TAU_CH7_INPUT_RTC1HZ (0x40U) /* RTC1HZ output signal */ -#define _80_TAU_CH7_INPUT_RXD0 (0x80U) /* input signal of RXD0 pin */ - -/* - Timer Input Select Register m (TIS2) -*/ -/* Selection of timer input used with TAU1 channel 6 (TIS22) */ -#define _00_TAU_CH6_INPUT_TI16 (0x00U) /* input signal of timer input pin (TI16) */ -#define _04_TAU_CH6_INPUT_RTC1HZ (0x04U) /* RTC1HZ output signal */ -/* Selection of timer input used with TAU1 channel 7 (TIS23) */ -#define _00_TAU_CH7_INPUT_TI17 (0x00U) /* input signal of timer input pin (TI17) */ -#define _08_TAU_CH7_INPUT_RTC1HZ (0x08U) /* RTC1HZ output signal */ - -/* - Timer Output Enable Register m (TOEm) -*/ -/* Timer output enable/disable of channel 0 (TOEm0) */ -#define _0001_TAU_CH0_OUTPUT_ENABLE (0x0001U) /* the TOm0 operation enabled by count operation */ -#define _0000_TAU_CH0_OUTPUT_DISABLE (0x0000U) /* the TOm0 operation stopped by count operation */ -/* Timer output enable/disable of channel 1 (TOEm1) */ -#define _0002_TAU_CH1_OUTPUT_ENABLE (0x0002U) /* the TOm1 operation enabled by count operation */ -#define _0000_TAU_CH1_OUTPUT_DISABLE (0x0000U) /* the TOm1 operation stopped by count operation */ -/* Timer output enable/disable of channel 2 (TOEm2) */ -#define _0004_TAU_CH2_OUTPUT_ENABLE (0x0004U) /* the TOm2 operation enabled by count operation */ -#define _0000_TAU_CH2_OUTPUT_DISABLE (0x0000U) /* the TOm2 operation stopped by count operation */ -/* Timer output enable/disable of channel 3 (TOEm3) */ -#define _0008_TAU_CH3_OUTPUT_ENABLE (0x0008U) /* the TOm3 operation enabled by count operation */ -#define _0000_TAU_CH3_OUTPUT_DISABLE (0x0000U) /* the TOm3 operation stopped by count operation */ -/* Timer output enable/disable of channel 4 (TOEm4) */ -#define _0010_TAU_CH4_OUTPUT_ENABLE (0x0010U) /* the TOm4 operation enabled by count operation */ -#define _0000_TAU_CH4_OUTPUT_DISABLE (0x0000U) /* the TOm4 operation stopped by count operation */ -/* Timer output enable/disable of channel 5 (TOEm5) */ -#define _0020_TAU_CH5_OUTPUT_ENABLE (0x0020U) /* the TOm5 operation enabled by count operation */ -#define _0000_TAU_CH5_OUTPUT_DISABLE (0x0000U) /* the TOm5 operation stopped by count operation */ -/* Timer output enable/disable of channel 6 (TOEm6) */ -#define _0040_TAU_CH6_OUTPUT_ENABLE (0x0040U) /* the TOm6 operation enabled by count operation */ -#define _0000_TAU_CH6_OUTPUT_DISABLE (0x0000U) /* the TOm6 operation stopped by count operation */ -/* Timer output enable/disable of channel 7 (TOEm7) */ -#define _0080_TAU_CH7_OUTPUT_ENABLE (0x0080U) /* the TOm7 operation enabled by count operation */ -#define _0000_TAU_CH7_OUTPUT_DISABLE (0x0000U) /* the TOm7 operation stopped by count operation */ - -/* - Timer Output Register m (TOm) -*/ -/* Timer output of channel 0 (TOm0) */ -#define _0000_TAU_CH0_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0001_TAU_CH0_OUTPUT_VALUE_1 (0x0001U) /* timer output value is "1" */ -/* Timer output of channel 1 (TOm1) */ -#define _0000_TAU_CH1_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0002_TAU_CH1_OUTPUT_VALUE_1 (0x0002U) /* timer output value is "1" */ -/* Timer output of channel 2 (TOm2) */ -#define _0000_TAU_CH2_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0004_TAU_CH2_OUTPUT_VALUE_1 (0x0004U) /* timer output value is "1" */ -/* Timer output of channel 3 (TOm3) */ -#define _0000_TAU_CH3_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0008_TAU_CH3_OUTPUT_VALUE_1 (0x0008U) /* timer output value is "1" */ -/* Timer output of channel 4 (TOm4) */ -#define _0000_TAU_CH4_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0010_TAU_CH4_OUTPUT_VALUE_1 (0x0010U) /* timer output value is "1" */ -/* Timer output of channel 5 (TOm5) */ -#define _0000_TAU_CH5_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0020_TAU_CH5_OUTPUT_VALUE_1 (0x0020U) /* timer output value is "1" */ -/* Timer output of channel 6 (TOm6) */ -#define _0000_TAU_CH6_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0040_TAU_CH6_OUTPUT_VALUE_1 (0x0040U) /* timer output value is "1" */ -/* Timer output of channel 7 (TOm7) */ -#define _0000_TAU_CH7_OUTPUT_VALUE_0 (0x0000U) /* timer output value is "0" */ -#define _0080_TAU_CH7_OUTPUT_VALUE_1 (0x0080U) /* timer output value is "1" */ - -/* - Timer Output Level Register 0 (TOLm) -*/ -/* Control of timer output level of channel 1 (TOLm1) */ -#define _0000_TAU_CH1_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0002_TAU_CH1_OUTPUT_LEVEL_L (0x0002U) /* inverted output (active-low) */ -/* Control of timer output level of channel 2 (TOLm2) */ -#define _0000_TAU_CH2_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0004_TAU_CH2_OUTPUT_LEVEL_L (0x0004U) /* inverted output (active-low) */ -/* Control of timer output level of channel 3 (TOLm3) */ -#define _0000_TAU_CH3_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0008_TAU_CH3_OUTPUT_LEVEL_L (0x0008U) /* inverted output (active-low) */ -/* Control of timer output level of channel 4 (TOLm4) */ -#define _0000_TAU_CH4_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0010_TAU_CH4_OUTPUT_LEVEL_L (0x0010U) /* inverted output (active-low) */ -/* Control of timer output level of channel 5 (TOLm5) */ -#define _0000_TAU_CH5_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0020_TAU_CH5_OUTPUT_LEVEL_L (0x0020U) /* inverted output (active-low) */ -/* Control of timer output level of channel 6 (TOLm6) */ -#define _0000_TAU_CH6_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0040_TAU_CH6_OUTPUT_LEVEL_L (0x0040U) /* inverted output (active-low) */ -/* Control of timer output level of channel 7 (TOLm7) */ -#define _0000_TAU_CH7_OUTPUT_LEVEL_H (0x0000U) /* positive logic output (active-high) */ -#define _0080_TAU_CH7_OUTPUT_LEVEL_L (0x0080U) /* inverted output (active-low) */ - -/* - Timer Output Mode Register m (TOMm) -*/ -/* Control of timer output mode of channel 1 (TOMm1) */ -#define _0000_TAU_CH1_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0002_TAU_CH1_OUTPUT_COMBIN (0x0002U) /* combination operation mode */ -/* Control of timer output mode of channel 2 (TOMm2) */ -#define _0000_TAU_CH2_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0004_TAU_CH2_OUTPUT_COMBIN (0x0004U) /* combination operation mode */ -/* Control of timer output mode of channel 3 (TOMm3) */ -#define _0000_TAU_CH3_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0008_TAU_CH3_OUTPUT_COMBIN (0x0008U) /* combination operation mode */ -/* Control of timer output mode of channel 4 (TOMm4) */ -#define _0000_TAU_CH4_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0010_TAU_CH4_OUTPUT_COMBIN (0x0010U) /* combination operation mode */ -/* Control of timer output mode of channel 5 (TOMm5) */ -#define _0000_TAU_CH5_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0020_TAU_CH5_OUTPUT_COMBIN (0x0020U) /* combination operation mode */ -/* Control of timer output mode of channel 6 (TOMm6) */ -#define _0000_TAU_CH6_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0040_TAU_CH6_OUTPUT_COMBIN (0x0040U) /* combination operation mode */ -/* Control of timer output mode of channel 7 (TOMm7) */ -#define _0000_TAU_CH7_OUTPUT_TOGGLE (0x0000U) /* toggle operation mode */ -#define _0080_TAU_CH7_OUTPUT_COMBIN (0x0080U) /* combination operation mode */ - -#define _0000_TAU_PWM_DELAY_CLEAR (0x0000U) /* clear PWM output delay control register */ - -/* - PWM output delay control register 1 (PWMDLY1) -*/ -/* Control of PWM output delay time of TAU0 TO01 */ -#define _0000_TO01_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0004_TO01_OUTPUT_DELAY_1 (0x0004U) /* delay 1 cycle */ -#define _0008_TO01_OUTPUT_DELAY_2 (0x0008U) /* delay 2 cycles */ -#define _000C_TO01_OUTPUT_DELAY_3 (0x000CU) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU0 TO02 */ -#define _0000_TO02_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0010_TO02_OUTPUT_DELAY_1 (0x0010U) /* delay 1 cycle */ -#define _0020_TO02_OUTPUT_DELAY_2 (0x0020U) /* delay 2 cycles */ -#define _0030_TO02_OUTPUT_DELAY_3 (0x0030U) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU0 TO03 */ -#define _0000_TO03_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0040_TO03_OUTPUT_DELAY_1 (0x0040U) /* delay 1 cycle */ -#define _0080_TO03_OUTPUT_DELAY_2 (0x0080U) /* delay 2 cycles */ -#define _00C0_TO03_OUTPUT_DELAY_3 (0x00C0U) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU0 TO04 */ -#define _0000_TO04_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0100_TO04_OUTPUT_DELAY_1 (0x0100U) /* delay 1 cycle */ -#define _0200_TO04_OUTPUT_DELAY_2 (0x0200U) /* delay 2 cycles */ -#define _0300_TO04_OUTPUT_DELAY_3 (0x0300U) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU0 TO05 */ -#define _0000_TO05_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0400_TO05_OUTPUT_DELAY_1 (0x0400U) /* delay 1 cycle */ -#define _0800_TO05_OUTPUT_DELAY_2 (0x0800U) /* delay 2 cycles */ -#define _0C00_TO05_OUTPUT_DELAY_3 (0x0C00U) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU0 TO06 */ -#define _0000_TO06_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _1000_TO06_OUTPUT_DELAY_1 (0x1000U) /* delay 1 cycle */ -#define _2000_TO06_OUTPUT_DELAY_2 (0x2000U) /* delay 2 cycles */ -#define _3000_TO06_OUTPUT_DELAY_3 (0x3000U) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU0 TO07 */ -#define _0000_TO07_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _4000_TO07_OUTPUT_DELAY_1 (0x4000U) /* delay 1 cycle */ -#define _8000_TO07_OUTPUT_DELAY_2 (0x8000U) /* delay 2 cycles */ -#define _C000_TO07_OUTPUT_DELAY_3 (0xC000U) /* delay 3 cycles */ - -/* - PWM output delay control register 2 (PWMDLY2) -*/ -/* Control of PWM output delay time of TAU1 TO11 */ -#define _0000_TO11_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0004_TO11_OUTPUT_DELAY_1 (0x0004U) /* delay 1 cycle */ -#define _0008_TO11_OUTPUT_DELAY_2 (0x0008U) /* delay 2 cycles */ -#define _000C_TO11_OUTPUT_DELAY_3 (0x000CU) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU1 TO12 */ -#define _0000_TO12_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0010_TO12_OUTPUT_DELAY_1 (0x0010U) /* delay 1 cycle */ -#define _0020_TO12_OUTPUT_DELAY_2 (0x0020U) /* delay 2 cycles */ -#define _0030_TO12_OUTPUT_DELAY_3 (0x0030U) /* delay 3 cycles */ -/* Control of PWM output delay time of TAU1 TO13 */ -#define _0000_TO13_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0040_TO13_OUTPUT_DELAY_1 (0x0040U) /* delay 1 cycle */ -#define _0080_TO13_OUTPUT_DELAY_2 (0x0080U) /* delay 2 cycles */ -#define _00C0_TO13_OUTPUT_DELAY_3 (0x00C0U) /* delay 3 cycles */ - -/* - Noise Filter Enable Register 1 (NFEN1) -*/ -/* Enable/disable using noise filter of TI07 pin input signal (TNFEN07) */ -#define _00_TAU_CH7_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _80_TAU_CH7_NOISE_ON (0x80U) /* noise filter ON */ -/* Enable/disable using noise filter of TI06 pin input signal (TNFEN06) */ -#define _00_TAU_CH6_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _40_TAU_CH6_NOISE_ON (0x40U) /* noise filter ON */ -/* Enable/disable using noise filter of TI05 pin input signal (TNFEN05) */ -#define _00_TAU_CH5_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _20_TAU_CH5_NOISE_ON (0x20U) /* noise filter ON */ -/* Enable/disable using noise filter of TI04 pin input signal (TNFEN04) */ -#define _00_TAU_CH4_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _10_TAU_CH4_NOISE_ON (0x10U) /* noise filter ON */ -/* Enable/disable using noise filter of TI03 pin input signal (TNFEN03) */ -#define _00_TAU_CH3_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _08_TAU_CH3_NOISE_ON (0x08U) /* noise filter ON */ -/* Enable/disable using noise filter of TI02 pin input signal (TNFEN02) */ -#define _00_TAU_CH2_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _04_TAU_CH2_NOISE_ON (0x04U) /* noise filter ON */ -/* Enable/disable using noise filter of TI01 pin input signal (TNFEN01) */ -#define _00_TAU_CH1_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _02_TAU_CH1_NOISE_ON (0x02U) /* noise filter ON */ -/* Enable/disable using noise filter of TI00 pin input signal (TNFEN00) */ -#define _00_TAU_CH0_NOISE_OFF (0x00U) /* noise filter OFF */ -#define _01_TAU_CH0_NOISE_ON (0x01U) /* noise filter ON */ - -/* - Format of Peripheral Enable Register 1 (PER1) -*/ -/* Control of timer RJ0 input clock supply (TRJ0EN) */ -#define _00_TMRJ_CLOCK_STOP (0x00U) /* stops input clock supply */ -#define _01_TMRJ_CLOCK_ENABLE (0x01U) /* enables input clock supply */ - -/* - Timer RJ Control Register (TRJCR0) -*/ -/* Timer RJ count start bit (TSTART) */ -#define _00_TMRJ_COUNT_STOP (0x00U) /* count stops */ -#define _01_TMRJ_COUNT_START (0x01U) /* count starts */ -/* Timer RJ count status flag (TCSTF) */ -#define _00_TMRJ_STATUS_STOP (0x00U) /* count stops */ -#define _02_TMRJ_STATUS_COUNT (0x02U) /* during count */ -/* Timer RJ count forcible stop bit (TSTOP) */ -#define _00_TMRJ_FORCIBLE_STOP_DISABLE (0x00U) /* the count is not forcibly stopped */ -#define _04_TMRJ_FORCIBLE_STOP_ENABLE (0x04U) /* the count is forcibly stopped */ -/* Active edge judgment flag (TEDGF) */ -#define _00_TMRJ_ACTIVE_EDGE_RECEIVED (0x00U) /* active edge not received */ -#define _10_TMRJ_ACTIVE_EDGE_UNRECEIVED (0x10U) /* active edge received (end of measurement period) */ -/* Timer RJ underflow flag (TUNDF) */ -#define _00_TMRJ_UNDERFLOW_NOOCCUR (0x00U) /* no underflow */ -#define _20_TMRJ_UNDERFLOW_OCCUR (0x20U) /* underflow */ - -/* - Timer RJ I/O Control Register (TRJIOC0) -*/ -#define _00_TMRJ_TRJIOC_INITIAL_VALUE (0x00U) -/* TRJIO polarity switch bit (TEDGSEL) */ -#define _00_TMRJ_TRJIO_POLARITY_0 (0x00U) /* TRJIO polarity switch bit = 0 */ -#define _01_TMRJ_TRJIO_POLARITY_1 (0x01U) /* TRJIO polarity switch bit = 1 */ -/* TRJO output enable bit (TOENA) */ -#define _00_TMRJ_TRJO_OUTPUT_DISABLE (0x00U) /* TRJO output disable */ -#define _04_TMRJ_TRJO_OUTPUT_ENABLE (0x04U) /* TRJO output */ -/* TRJIO input filter select bit (TIPF1, TIPF0) */ -#define _00_TMRJ_TRJIO_FILTER_UNUSED (0x00U) /* no filter */ -#define _10_TMRJ_TRJIO_FILTER_FCLK (0x10U) /* filter with fCLK sampling */ -#define _20_TMRJ_TRJIO_FILTER_FCLK8 (0x20U) /* filter with fCLK/8 sampling */ -#define _30_TMRJ_TRJIO_FILTER_FCLK32 (0x30U) /* filter with fCLK/32 sampling */ -/* TRJIO event input control bit (TIOGT1, TIOGT0) */ -#define _00_TMRJ_EVENT_ENABLE_ALWAYS (0x00U) /* event is counted */ -#define _40_TMRJ_EVENT_ENABLE_INTP4 (0x40U) /* event is counted during INTP4 specified period */ -#define _80_TMRJ_EVENT_ENABLE_PWM (0x80U) /* event is counted during PWM signal period */ - -/* - Timer RJ Mode Register (TRJMR0) -*/ -/* Timer RJ operating mode select bit (TMOD2 - TMOD0) */ -#define _00_TMRJ_MODE_TIMER (0x00U) /* timer mode */ -#define _01_TMRJ_MODE_PULSE_OUTPUT (0x01U) /* pulse output mode */ -#define _02_TMRJ_MODE_EVENT_COUNTER (0x02U) /* event counter mode */ -#define _03_TMRJ_MODE_PULSE_WIDTH (0x03U) /* pulse width measurement mode */ -#define _04_TMRJ_MODE_PULSE_PERIOD (0x04U) /* pulse period measurement mode */ -/* TRJIO input polarity select bit (TEDGPL) */ -#define _00_TMRJ_TRJIO_POLARITY_ONE (0x00U) /* one edge */ -#define _08_TMRJ_TRJIO_POLARITY_BOTH (0x08U) /* both edges */ -/* Timer RJ count source select bit (TCK2 - TCK0) */ -#define _00_TMRJ_COUNT_SOURCE_FCLK (0x00U) /* fCLK */ -#define _10_TMRJ_COUNT_SOURCE_FCLK8 (0x10U) /* fCLK8 */ -#define _30_TMRJ_COUNT_SOURCE_FCLK2 (0x30U) /* fCLK2 */ -#define _40_TMRJ_COUNT_SOURCE_FIL (0x40U) /* fIL */ -#define _60_TMRJ_COUNT_SOURCE_FSL (0x60U) /* fSL */ - -/* - Timer RJ event pin selection register 0 (TRJISR0) -*/ -/* PWM signal selection (RCCPSEL1, RCCPSEL0) */ -#define _00_TMRJ_PWM_TRDIOD1 (0x00U) /* TRDIOD1 */ -#define _01_TMRJ_PWM_TRDIOC1 (0x01U) /* TRDIOC1 */ -#define _02_TMRJ_PWM_TO02 (0x02U) /* TO02 */ -#define _03_TMRJ_PWM_TO03 (0x03U) /* TO03 */ -/* PWM signal and INTP4 polarity selection (RCCPSEL2) */ -#define _00_TMRJ_PWM_POLARITY_L (0x00U) /* L period is counted */ -#define _04_TMRJ_PWM_POLARITY_H (0x04U) /* H period is counted */ - -/* - Peripheral enable register 1 (PER1) -*/ -/* Control of timer RD input clock supply (TRD0EN) */ -#define _00_TMRD_NOSUPPLY (0x00U) /* stops input clock supply */ -#define _10_TMRD_SUPPLY (0x10U) /* enables input clock supply */ - -/* - Timer RD ELC Register (TRDELC) -*/ -/* ELC event input 0 select for timer RD input capture D0 (ELCICE0) */ -#define _00_TMRD0_INPUTCAPTURE (0x00U) /* input capture D0 is selected */ -#define _01_TMRD0_ELC (0x01U) /* the event link controller (ELC) is not selected */ -/* ELC event input 0 enable for timer RD pulse output forced cutoff (ELCOBE0) */ -#define _00_TMRD0_CUTOFF_DISABLED (0x00U) /* forced cutoff is disabled */ -#define _02_TMRD0_CUTOFF_ENABLED (0x02U) /* forced cutoff is enabled */ -/* ELC event input 1 select for timer RD input capture D1 (ELCICE1) */ -#define _00_TMRD1_INPUTCAPTURE (0x00U) /* input capture D1 is selected */ -#define _10_TMRD1_ELC (0x10U) /* event link controller (ELC) is selected */ -/* ELC event input 1 enable for timer RD pulse output forced cutoff (ELCOBE1) */ -#define _00_TMRD1_CUTOFF_DISABLED (0x00U) /* forced cutoff is disabled */ -#define _20_TMRD1_CUTOFF_ENABLED (0x20U) /* forced cutoff is enabled */ - -/* - Timer RD Start Register (TRDSTR) -*/ -#define _03_TRD_COUNT_STATR_INITIAL_VALUE (0x03U) /* trd0/trd1 count satrts */ -/* TRD0 count start flag (TSTART0) */ -#define _00_TMRD_TRD0_COUNT_STOP (0x00U) /* trd0 count stops */ -#define _01_TMRD_TRD0_COUNT_START (0x01U) /* trd0 count starts */ -/* TRD1 count start flag (TSTART1) */ -#define _00_TMRD_TRD1_COUNT_STOP (0x00U) /* trd1 count stops */ -#define _02_TMRD_TRD1_COUNT_START (0x02U) /* trd1 count starts */ -/* TRD0 count operation select bit (CSEL0) */ -#define _00_TMRD_TRD0_COUNT_STOP_MATCH (0x00U) /* count stops at the compare match */ -#define _04_TMRD_TRD0_COUNT_CONTINUES (0x04U) /* count continues after the compare match */ -/* TRD1 count operation select bit (CSEL1) */ -#define _00_TMRD_TRD1_COUNT_STOP_MATCH (0x00U) /* count stops at the compare match */ -#define _08_TMRD_TRD1_COUNT_CONTINUES (0x08U) /* count continues after the compare match */ - -/* - Timer RD Mode Register (TRDMR) -*/ -/* Timer RD synchronous bit (SYNC) */ -#define _00_TMRD_INDEPENDENTLY (0x00U) /* registers TRD0 and TRD1 operate independently */ -#define _01_TMRD_SYNCHRONOUSLY (0x01U) /* registers TRD0 and TRD1 operate synchronously */ -/* TRDGRC0 register function select bit (BFC0) */ -#define _00_TMRD_TRDGRC0_GENERAL (0x00U) /* general register */ -#define _10_TMRD_TRDGRC0_BUFFER (0x10U) /* buffer register of TRDGRA0 register */ -/* TRDGRD0 register function select bit (BFD0) */ -#define _00_TMRD_TRDGRD0_GENERAL (0x00U) /* general register */ -#define _20_TMRD_TRDGRD0_BUFFER (0x20U) /* buffer register of TRDGRB0 register */ -/* TRDGRC1 register function select bit (BFC1) */ -#define _00_TMRD_TRDGRC1_GENERAL (0x00U) /* general register */ -#define _40_TMRD_TRDGRC1_BUFFER (0x40U) /* buffer register of TRDGRA1 register */ -/* TRDGRD1 register function select bit (BFD1) */ -#define _00_TMRD_TRDGRD1_GENERAL (0x00U) /* general register */ -#define _80_TMRD_TRDGRD1_BUFFER (0x80U) /* buffer register of TRDGRB1 register */ - -/* - Timer RD PWM Mode Register (TRDPMR) -*/ -/* PWM mode of TRDIOB0 select bit (PWMB0) */ -#define _00_TMRD_TRDIOB0_TIMER_MODE (0x00U) /* TRDIOB0 used as timer mode */ -#define _01_TMRD_TRDIOB0_PWM_MODE (0x01U) /* TRDIOB0 used as PWM mode */ -/* PWM mode of TRDIOC0 select bit (PWMC0) */ -#define _00_TMRD_TRDIOC0_TIMER_MODE (0x00U) /* TRDIOC0 used as timer mode */ -#define _02_TMRD_TRDIOC0_PWM_MODE (0x02U) /* TRDIOC0 used as PWM mode */ -/* PWM mode of TRDIOD0 select bit (PWMD0) */ -#define _00_TMRD_TRDIOD0_TIMER_MODE (0x00U) /* TRDIOD0 used as timer mode */ -#define _04_TMRD_TRDIOD0_PWM_MODE (0x04U) /* TRDIOD0 used as PWM mode */ -/* PWM mode of TRDIOB1 select bit (PWMB1) */ -#define _00_TMRD_TRDIOB1_TIMER_MODE (0x00U) /* TRDIOB1 used as timer mode */ -#define _10_TMRD_TRDIOB1_PWM_MODE (0x10U) /* TRDIOB1 used as PWM mode */ -/* PWM mode of TRDIOC1 select bit (PWMC1) */ -#define _00_TMRD_TRDIOC1_TIMER_MODE (0x00U) /* TRDIOC1 used as timer mode */ -#define _20_TMRD_TRDIOC1_PWM_MODE (0x20U) /* TRDIOC1 used as PWM mode */ -/* PWM mode of TRDIOD1 select bit (PWMD1) */ -#define _00_TMRD_TRDIOD1_TIMER_MODE (0x00U) /* TRDIOD1 used as timer mode */ -#define _40_TMRD_TRDIOD1_PWM_MODE (0x40U) /* TRDIOD1 used as PWM mode */ - -/* - Timer RD Function Control Register (TRDFCR) -*/ -/* Combination mode select bit (CMD1, CMD0) */ -#define _00_TMRD_TRANSFER_DEFAULT (0x00U) /* in timer mode, PWM mode, or PWM3 mode */ -#define _01_TMRD_TRANSFER_RESET_SYNCHRONOUS (0x01U) /* in reset synchronous PWM mode */ -#define _02_TMRD_TRANSFER_TMRD1_UNDERFLOW (0x02U) /* transfer from buffer register to general register */ -#define _03_TMRD_TRANSFER_TMRD0_MATCH (0x03U) /* transfer from buffer register to general register */ -/* Normal-phase output level select bit (OLS0) */ -#define _00_TMRD_NORMAL_PHASE_LEVEl_HL (0x00U) /* initial output "H", Active level "L" */ -#define _04_TMRD_NORMAL_PHASE_LEVEl_LH (0x04U) /* initial output "L", Active level "H" */ -/* Counter-phase output level select bit (OLS1) */ -#define _00_TMRD_COUNTER_PHASE_LEVEl_HL (0x00U) /* initial output "H", Active level "L" */ -#define _08_TMRD_COUNTER_PHASE_LEVEl_LH (0x08U) /* initial output "L", Active level "H" */ -/* External clock input select bit (STCLK) */ -#define _00_TMRD_EXTERNAL_CLOCK_DISABLE (0x00U) /* external clock input disabled */ -#define _40_TMRD_EXTERNAL_CLOCK_ENABLE (0x40U) /* external clock input enabled */ -/* PWM3 mode select bit (PWM3) */ -#define _00_TMRD_PWM3_MODE (0x00U) /* PWM3 mode */ -#define _80_TMRD_OTHER_MODE (0x80U) /* other mode */ - -/* - Timer RD Output Master Enable Register 1 (TRDOER1) -*/ -#define _F0_TMRD_CHANNEL0_OUTPUT_DEFAULT (0xF0U) -#define _0F_TMRD_CHANNEL1_OUTPUT_DEFAULT (0x0FU) -/* TRDIOA0 output disable bit (EA0) */ -#define _00_TMRD_TRDIOA0_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _01_TMRD_TRDIOA0_OUTPUT_DISABLE (0x01U) /* disable output */ -/* TRDIOB0 output disable bit (EB0) */ -#define _00_TMRD_TRDIOB0_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _02_TMRD_TRDIOB0_OUTPUT_DISABLE (0x02U) /* disable output */ -/* TRDIOC0 output disable bit (EC0) */ -#define _00_TMRD_TRDIOC0_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _04_TMRD_TRDIOC0_OUTPUT_DISABLE (0x04U) /* disable output */ -/* TRDIOD0 output disable bit (ED0) */ -#define _00_TMRD_TRDIOD0_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _08_TMRD_TRDIOD0_OUTPUT_DISABLE (0x08U) /* disable output */ -/* TRDIOA1 output disable bit (EA1) */ -#define _00_TMRD_TRDIOA1_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _10_TMRD_TRDIOA1_OUTPUT_DISABLE (0x10U) /* disable output */ -/* TRDIOB1 output disable bit (EB1) */ -#define _00_TMRD_TRDIOB1_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _20_TMRD_TRDIOB1_OUTPUT_DISABLE (0x20U) /* disable output */ -/* TRDIOC1 output disable bit (EC1) */ -#define _00_TMRD_TRDIOC1_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _40_TMRD_TRDIOC1_OUTPUT_DISABLE (0x40U) /* disable output */ -/* TRDIOD1 output disable bit (ED1) */ -#define _00_TMRD_TRDIOD1_OUTPUT_ENABLE (0x00U) /* enable output */ -#define _80_TMRD_TRDIOD1_OUTPUT_DISABLE (0x80U) /* disable output */ - -/* - Timer RD Output Master Enable Register 2 (TRDOER2) -*/ -/* INT0 of pulse output forced cutoff signal input enabled bit (PTO) */ -#define _00_TMRD_ALL_OUTPUT_DISABLE (0x00U) /* pulse output forced cutoff input disabled */ -#define _80_TMRD_ALL_OUTPUT_ENABLE (0x80U) /* pulse output forced cutoff input enabled */ -/* Forced cutoff flag (SHUTS) */ -#define _00_TMRD_INTERCEPTION_STOP (0x00U) /* not forcibly cut off */ -#define _01_TMRD_INTERCEPTION (0x01U) /* forcibly cut off */ - -/* - Timer RD Output Control Register (TRDOCR) -*/ -/* TRDIOA0 output level select bit (TOA0) */ -#define _00_TMRD_TRDIOA0_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _01_TMRD_TRDIOA0_INITIAL_OUTPUT_H (0x01U) /* initial output "H" or active level */ -/* TRDIOB0 output level select bit (TOB0) */ -#define _00_TMRD_TRDIOB0_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _02_TMRD_TRDIOB0_INITIAL_OUTPUT_H (0x02U) /* initial output "H" or active level */ -/* TRDIOC0 output level select bit (TOC0) */ -#define _00_TMRD_TRDIOC0_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _04_TMRD_TRDIOC0_INITIAL_OUTPUT_H (0x04U) /* initial output "H" or active level */ -/* TRDIOD0 output level select bit (TOD0) */ -#define _00_TMRD_TRDIOD0_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _08_TMRD_TRDIOD0_INITIAL_OUTPUT_H (0x08U) /* initial output "H" or active level */ -/* TRDIOA1 output level select bit (TOA1) */ -#define _00_TMRD_TRDIOA1_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _10_TMRD_TRDIOA1_INITIAL_OUTPUT_H (0x10U) /* initial output "H" or active level */ -/* TRDIOB1 output level select bit (TOB1) */ -#define _00_TMRD_TRDIOB1_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _20_TMRD_TRDIOB1_INITIAL_OUTPUT_H (0x20U) /* initial output "H" or active level */ -/* TRDIOC1 output level select bit (TOC1) */ -#define _00_TMRD_TRDIOC1_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _40_TMRD_TRDIOC1_INITIAL_OUTPUT_H (0x40U) /* initial output "H" or active level */ -/* TRDIOD1 output level select bit (TOD1) */ -#define _00_TMRD_TRDIOD1_INITIAL_OUTPUT_L (0x00U) /* initial output "L" or inactive level */ -#define _80_TMRD_TRDIOD1_INITIAL_OUTPUT_H (0x80U) /* initial output "H" or active level */ - -/* - Timer RD Digital Filter Function Select Register i (TRDDFi) -*/ -/* TRDIOA pin digital filter function select bit (DFA) */ -#define _00_TMRD_TRDIOA_DIGITAL_FILTER_DISABLE (0x00U) /* TRDIOA pin digital filter function is not used */ -#define _01_TMRD_TRDIOA_DIGITAL_FILTER_ENABLE (0x01U) /* TRDIOA pin digital filter function is used */ -/* TRDIOB pin digital filter function select bit (DFB) */ -#define _00_TMRD_TRDIOB_DIGITAL_FILTER_DISABLE (0x00U) /* TRDIOB pin digital filter function is not used */ -#define _02_TMRD_TRDIOB_DIGITAL_FILTER_ENABLE (0x02U) /* TRDIOB pin digital filter function is used */ -/* TRDIOD pin pulse forced cutoff control (DFB, DFA) */ -#define _00_TMRD_TRDIOD_FORCEDCUTOFF_DISABLE (0x00U) /* forced cutoff disabled */ -#define _01_TMRD_TRDIOD_HIGHIMPEDANCE_OUTPUT (0x01U) /* high-impedance output */ -#define _02_TMRD_TRDIOD_LOW_OUTPUT (0x02U) /* low output */ -#define _03_TMRD_TRDIOD_HIGH_OUTPUT (0x03U) /* high output */ -/* TRDIOC pin digital filter function select bit (DFC) */ -#define _00_TMRD_TRDIOC_DIGITAL_FILTER_DISABLE (0x00U) /* TRDIOC pin digital filter function is not used */ -#define _04_TMRD_TRDIOC_DIGITAL_FILTER_ENABLE (0x04U) /* TRDIOC pin digital filter function is used */ -/* TRDIOD pin digital filter function select bit (DFD) */ -#define _00_TMRD_TRDIOD_DIGITAL_FILTER_DISABLE (0x00U) /* TRDIOD pin digital filter function is not used */ -#define _08_TMRD_TRDIOD_DIGITAL_FILTER_ENABLE (0x08U) /* TRDIOD pin digital filter function is used */ -/* TRDIOC pin pulse forced cutoff control (DFD, DFC) */ -#define _00_TMRD_TRDIOC_FORCEDCUTOFF_DISABLE (0x00U) /* forced cutoff disabled */ -#define _04_TMRD_TRDIOC_HIGHIMPEDANCE_OUTPUT (0x04U) /* high-impedance output */ -#define _08_TMRD_TRDIOC_LOW_OUTPUT (0x08U) /* low output */ -#define _0C_TMRD_TRDIOC_HIGH_OUTPUT (0x0CU) /* high output */ -/* TRDIOB pin pulse forced cutoff control (PENB1, PENB0) */ -#define _00_TMRD_TRDIOB_FORCEDCUTOFF_DISABLE (0x00U) /* forced cutoff disabled */ -#define _10_TMRD_TRDIOB_HIGHIMPEDANCE_OUTPUT (0x10U) /* high-impedance output */ -#define _20_TMRD_TRDIOB_LOW_OUTPUT (0x20U) /* low output */ -#define _30_TMRD_TRDIOB_HIGH_OUTPUT (0x30U) /* high output */ -/* Clock select bits for digital filter function (DFCK1, DFCK0) */ -#define _00_TMRD_DIGITAL_FILTER_CLOCK_F32 (0x00U) /* fTRD/2^5 */ -#define _40_TMRD_DIGITAL_FILTER_CLOCK_F8 (0x40U) /* fTRD/2^3 */ -#define _80_TMRD_DIGITAL_FILTER_CLOCK_F1 (0x80U) /* fTRD */ -#define _C0_TMRD_DIGITAL_FILTER_CLOCK_SOURCE (0xC0U) /* count source */ -/* TRDIOA pin pulse forced cutoff control (DFCK1, DFCK0) */ -#define _00_TMRD_TRDIOA_FORCEDCUTOFF_DISABLE (0x00U) /* forced cutoff disabled */ -#define _40_TMRD_TRDIOA_HIGHIMPEDANCE_OUTPUT (0x40U) /* high-impedance output */ -#define _80_TMRD_TRDIOA_LOW_OUTPUT (0x80U) /* low output */ -#define _C0_TMRD_TRDIOA_HIGH_OUTPUT (0xC0U) /* high output */ - -/* - Timer RD Control Register i (TRDCRi) -*/ -/* Count source select bit (TCK2 - TCK0) */ -#define _00_TMRD_INTERNAL_CLOCK_F1 (0x00U) /* fTRD */ -#define _00_TMRD_INTERNAL_CLOCK_FIH (0x00U) /* fIH */ -#define _00_TMRD_INTERNAL_CLOCK_FPLL (0x00U) /* fPLL */ -#define _00_TMRD_INTERNAL_CLOCK_FSL (0x00U) /* fSL */ -#define _01_TMRD_INTERNAL_CLOCK_F2 (0x01U) /* fTRD/2 */ -#define _02_TMRD_INTERNAL_CLOCK_F4 (0x02U) /* fTRD/2^2 */ -#define _03_TMRD_INTERNAL_CLOCK_F8 (0x03U) /* fTRD/2^3 */ -#define _04_TMRD_INTERNAL_CLOCK_F32 (0x04U) /* fTRD/2^5 */ -#define _05_TMRD_INTERNAL_CLOCK_TRDCLK (0x05U) /* TRDCLK input */ -/* External clock edge select bit (CKEG1, CKEG0) */ -#define _00_TMRD_EXTERNAL_CLOCK_EDGE_RISING (0x00U) /* count at the rising edge */ -#define _08_TMRD_EXTERNAL_CLOCK_EDGE_FALLING (0x08U) /* count at the falling edge */ -#define _10_TMRD_EXTERNAL_CLOCK_EDGE_BOTH (0x10U) /* count at both edges */ -/* TRDi counter clear select bit (CCLR2 - CCLR0) */ -#define _00_TMRD_COUNTER_CLEAR_DISABLE (0x00U) /* disable clear (free-running operation) */ -#define _20_TMRD_COUNTER_CLEAR_TRDGRA (0x20U) /* clear with the TRDGRAi register */ -#define _40_TMRD_COUNTER_CLEAR_TRDGRB (0x40U) /* clear with the TRDGRBi register */ -#define _60_TMRD_COUNTER_CLEAR_SYNCHRONOUS (0x60U) /* synchronous clear */ -#define _A0_TMRD_COUNTER_CLEAR_TRDGRC (0xA0U) /* clear by input capture with TRDGRCi register */ -#define _C0_TMRD_COUNTER_CLEAR_TRDGRD (0xC0U) /* clear by input capture with TRDGRDi register */ - -/* - Timer RD I/O Control Register Ai (TRDIORAi) -*/ -/* TRDGRA control bit (IOA1, IOA0) */ -#define _00_TMRD_TRDGRA_CAPTURE_RISING (0x00U) /* input capture to the TRDGRAi register at the rising edge */ -#define _01_TMRD_TRDGRA_CAPTURE_FALLING (0x01U) /* input capture to TRDGRAi register at falling edge */ -#define _02_TMRD_TRDGRA_CAPTURE_BOTH (0x02U) /* input capture to the TRDGRAi register at the both edges */ -#define _00_TMRD_TRDGRA_COMPARE_OUTPUT_DISABLE (0x00U) /* pin output by compare match is disabled */ -#define _01_TMRD_TRDGRA_COMPARE_OUTPUT_LOW (0x01U) /* "L" output by compare match with the TRDGRAi register */ -#define _02_TMRD_TRDGRA_COMPARE_OUTPUT_HIGH (0x02U) /* "H" output by compare match with the TRDGRAi register */ -#define _03_TMRD_TRDGRA_COMPARE_OUTPUT_TOGGLE (0x03U) /* toggle output by compare match with the TRDGRAi register */ -/* TRDGRA mode select bit (IOA2) */ -#define _00_TMRD_TRDGRA_COMPARE (0x00U) /* output compare */ -#define _04_TMRD_TRDGRA_CAPTURE (0x04U) /* input capture */ -/* TRDGRB control bit (IOB1, IOB0) */ -#define _00_TMRD_TRDGRB_CAPTURE_RISING (0x00U) /* input capture to the TRDGRBi register at the rising edge */ -#define _10_TMRD_TRDGRB_CAPTURE_FALLING (0x10U) /* input capture to TRDGRBi register at falling edge */ -#define _20_TMRD_TRDGRB_CAPTURE_BOTH (0x20U) /* input capture to the TRDGRBi register at the both edges */ -#define _00_TMRD_TRDGRB_COMPARE_OUTPUT_DISABLE (0x00U) /* disable output prohibition by compare agreement */ -#define _10_TMRD_TRDGRB_COMPARE_OUTPUT_LOW (0x10U) /* "L" output by compare match with the TRDGRBi register */ -#define _20_TMRD_TRDGRB_COMPARE_OUTPUT_HIGH (0x20U) /* "H" output by compare match with the TRDGRBi register */ -#define _30_TMRD_TRDGRB_COMPARE_OUTPUT_TOGGLE (0x30U) /* toggle output by compare match with the TRDGRBi register */ -/* TRDGRB mode select bit (IOB2) */ -#define _00_TMRD_TRDGRB_COMPARE (0x00U) /* output compare */ -#define _40_TMRD_TRDGRB_CAPTURE (0x40U) /* input capture */ - -/* - Timer RD I/O Control Register Ci (TRDIORCi) -*/ -/* TRDGRC control bit (IOC1, IOC0) */ -#define _00_TMRD_TRDGRC_CAPTURE_RISING (0x00U) /* input capture to the TRDGRCi register at rising edge */ -#define _01_TMRD_TRDGRC_CAPTURE_FALLING (0x01U) /* input capture to TRDGRCi register at falling edge */ -#define _02_TMRD_TRDGRC_CAPTURE_BOTH (0x02U) /* input capture to the TRDGRCi register at the both edges */ -#define _00_TMRD_TRDGRC_COMPARE_OUTPUT_DISABLE (0x00U) /* disable pin output by the compare match */ -#define _01_TMRD_TRDGRC_COMPARE_OUTPUT_LOW (0x01U) /* "L" output by compare match with the TRDGRCi register */ -#define _02_TMRD_TRDGRC_COMPARE_OUTPUT_HIGH (0x02U) /* "H" output by compare match with the TRDGRCi register */ -#define _03_TMRD_TRDGRC_COMPARE_OUTPUT_TOGGLE (0x03U) /* toggle output by compare match with the TRDGRCi register */ -/* TRDGRC mode select bit (IOC2) */ -#define _00_TMRD_TRDGRC_COMPARE (0x00U) /* output compare */ -#define _04_TMRD_TRDGRC_CAPTURE (0x04U) /* input capture */ -/* TRDGRC register function select bit (IOC3) */ -#define _00_TMRD_TRDGRC_OUTPUT_REGISTER (0x00U) /* output register */ -#define _08_TMRD_TRDGRC_GENERAL_BUFFER_REGISTER (0x08U) /* general register or buffer register */ -/* TRDGRD control bit (IOD1, IOD0) */ -#define _00_TMRD_TRDGRD_CAPTURE_RISING (0x00U) /* input capture to TRDGRDi register at rising edge */ -#define _10_TMRD_TRDGRD_CAPTURE_FALLING (0x10U) /* input capture to TRDGRDi register at falling edge */ -#define _20_TMRD_TRDGRD_CAPTURE_BOTH (0x20U) /* input capture to TRDGRDi register at both edges */ -#define _00_TMRD_TRDGRD_COMPARE_OUTPUT_DISABLE (0x00U) /* disable pin output by the compare match */ -#define _10_TMRD_TRDGRD_COMPARE_OUTPUT_LOW (0x10U) /* "L" output by compare match with the TRDGRDi register */ -#define _20_TMRD_TRDGRD_COMPARE_OUTPUT_HIGH (0x20U) /* "H" output by compare match with the TRDGRDi register */ -#define _30_TMRD_TRDGRD_COMPARE_OUTPUT_TOGGLE (0x30U) /* toggle output by compare match with the TRDGRDi register */ -/* TRDGRD mode select bit (IOD2) */ -#define _00_TMRD_TRDGRD_COMPARE (0x00U) /* output compare */ -#define _40_TMRD_TRDGRD_CAPTURE (0x40U) /* input capture */ -/* TRDGRD register function select bit (IOD3) */ -#define _00_TMRD_TRDGRD_OUTPUT_REGISTER (0x00U) /* output register */ -#define _80_TMRD_TRDGRD_GENERAL_BUFFER_REGISTER (0x80U) /* general register or buffer register */ - -/* - Timer RD Status Register 0 (TRDSR0) -*/ -#define _E0_TMRD_TRDSR0_DEFAULT_VALUR (0xE0U) /* TRDSR0 register default value */ -/* Input capture/compare match flag A (IMFA) */ -#define _00_TMRD0_INTA_FLAG_CLEAR (0x00U) /* interrupt A not generate */ -#define _01_TMRD0_INTA_GENERATE_FLAG (0x01U) /* interrupt A generate */ -/* Input capture/compare match flag B (IMFB) */ -#define _00_TMRD0_INTB_FLAG_CLEAR (0x00U) /* interrupt B not generate */ -#define _02_TMRD0_INTB_GENERATE_FLAG (0x02U) /* interrupt B generate */ -/* Input capture/compare match flag C (IMFC) */ -#define _00_TMRD0_INTC_FLAG_CLEAR (0x00U) /* interrupt C not generate */ -#define _04_TMRD0_INTC_GENERATE_FLAG (0x04U) /* interrupt C generate */ -/* Input capture/compare match flag D (IMFD) */ -#define _00_TMRD0_INTD_FLAG_CLEAR (0x00U) /* interrupt D not generate */ -#define _08_TMRD0_INTD_GENERATE_FLAG (0x08U) /* interrupt D generate */ -/* Overflow flag (OVF) */ -#define _00_TMRD0_INTOV_FLAG_CLEAR (0x00U) /* interrupt overflow not generate */ -#define _10_TMRD0_INTOV_GENERATE_FLAG (0x10U) /* interrupt overflow generate */ - -/* - Timer RD Status Register 1 (TRDSR1) -*/ -#define _C0_TMRD_TRDSR1_DEFAULT_VALUR (0xC0U) /* TRDSR1 register default value */ -/* Input capture/compare match flag A (IMFA) */ -#define _00_TMRD1_INTA_FLAG_CLEAR (0x00U) /* interrupt A not generate */ -#define _01_TMRD1_INTA_GENERATE_FLAG (0x01U) /* interrupt A generate */ -/* Input capture/compare match flag B (IMFB) */ -#define _00_TMRD1_INTB_FLAG_CLEAR (0x00U) /* interrupt B not generate */ -#define _02_TMRD1_INTB_GENERATE_FLAG (0x02U) /* interrupt B generate */ -/* Input capture/compare match flag C (IMFC) */ -#define _00_TMRD1_INTC_FLAG_CLEAR (0x00U) /* interrupt C not generate */ -#define _04_TMRD1_INTC_GENERATE_FLAG (0x04U) /* interrupt C generate */ -/* Input capture/compare match flag D (IMFD) */ -#define _00_TMRD1_INTD_FLAG_CLEAR (0x00U) /* interrupt D not generate */ -#define _08_TMRD1_INTD_GENERATE_FLAG (0x08U) /* interrupt D generate */ -/* Overflow flag (OVF) */ -#define _00_TMRD1_INTOV_FLAG_CLEAR (0x00U) /* interrupt overflow not generate */ -#define _10_TMRD1_INTOV_GENERATE_FLAG (0x10U) /* interrupt overflow generate */ - -/* - Timer RD Interrupt Enable Register i (TRDIERi) -*/ -/* Input capture/compare match interrupt enable bit A (IMIEA) */ -#define _00_TMRD_IMIA_DISABLE (0x00U) /* disable interrupt (IMIA) by the IMFA bit */ -#define _01_TMRD_IMIA_ENABLE (0x01U) /* enable interrupt (IMIA) by the IMFA bit */ -/* Input capture/compare match interrupt enable bit B (IMIEB) */ -#define _00_TMRD_IMIB_DISABLE (0x00U) /* disable interrupt (IMIB) by the IMFB bit */ -#define _02_TMRD_IMIB_ENABLE (0x02U) /* enable interrupt (IMIB) by the IMFB bit */ -/* Input capture/compare match interrupt enable bit C (IMIEC) */ -#define _00_TMRD_IMIC_DISABLE (0x00U) /* disable interrupt (IMIC) by the IMFC bit */ -#define _04_TMRD_IMIC_ENABLE (0x04U) /* enable interrupt (IMIC) by the IMFC bit */ -/* Input capture/compare match interrupt enable bit D (IMIED) */ -#define _00_TMRD_IMID_DISABLE (0x00U) /* disable interrupt (IMID) by the IMFD bit */ -#define _08_TMRD_IMID_ENABLE (0x08U) /* enable interrupt (IMId) by the IMFD bit */ -/* Overflow/underflow interrupt enable bit (OVIE) */ -#define _00_TMRD_OVIE_DISABLE (0x00U) /* disable interrupt (OVI) by the OVF or UDF bit */ -#define _10_TMRD_OVIE_ENABLE (0x10U) /* enable interrupt (OVI) by the OVF or UDF bit */ - -#define _0000_TMRD_PWM_DELAY_CLEAR (0x0000U) /* clear PWM output delay control register */ - -/* - PWM output delay control register 0 (PWMDLY0) -*/ -/* Control of PWM output delay time of TRDIOA0 */ -#define _0000_TMRD_TRDIOA0_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0001_TMRD_TRDIOA0_OUTPUT_DELAY_1 (0x0001U) /* delay 1 cycle */ -#define _0002_TMRD_TRDIOA0_OUTPUT_DELAY_2 (0x0002U) /* delay 2 cycles */ -#define _0003_TMRD_TRDIOA0_OUTPUT_DELAY_3 (0x0003U) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOB0 */ -#define _0000_TMRD_TRDIOB0_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0004_TMRD_TRDIOB0_OUTPUT_DELAY_1 (0x0004U) /* delay 1 cycle */ -#define _0008_TMRD_TRDIOB0_OUTPUT_DELAY_2 (0x0008U) /* delay 2 cycles */ -#define _000C_TMRD_TRDIOB0_OUTPUT_DELAY_3 (0x000CU) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOC0 */ -#define _0000_TMRD_TRDIOC0_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0010_TMRD_TRDIOC0_OUTPUT_DELAY_1 (0x0010U) /* delay 1 cycle */ -#define _0020_TMRD_TRDIOC0_OUTPUT_DELAY_2 (0x0020U) /* delay 2 cycles */ -#define _0030_TMRD_TRDIOC0_OUTPUT_DELAY_3 (0x0030U) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOD0 */ -#define _0000_TMRD_TRDIOD0_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0040_TMRD_TRDIOD0_OUTPUT_DELAY_1 (0x0040U) /* delay 1 cycle */ -#define _0080_TMRD_TRDIOD0_OUTPUT_DELAY_2 (0x0080U) /* delay 2 cycles */ -#define _00C0_TMRD_TRDIOD0_OUTPUT_DELAY_3 (0x00C0U) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOA1 */ -#define _0000_TMRD_TRDIOA1_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0100_TMRD_TRDIOA1_OUTPUT_DELAY_1 (0x0100U) /* delay 1 cycle */ -#define _0200_TMRD_TRDIOA1_OUTPUT_DELAY_2 (0x0200U) /* delay 2 cycles */ -#define _0300_TMRD_TRDIOA1_OUTPUT_DELAY_3 (0x0300U) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOB1 */ -#define _0000_TMRD_TRDIOB1_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _0400_TMRD_TRDIOB1_OUTPUT_DELAY_1 (0x0400U) /* delay 1 cycle */ -#define _0800_TMRD_TRDIOB1_OUTPUT_DELAY_2 (0x0800U) /* delay 2 cycles */ -#define _0C00_TMRD_TRDIOB1_OUTPUT_DELAY_3 (0x0C00U) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOC1 */ -#define _0000_TMRD_TRDIOC1_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _1000_TMRD_TRDIOC1_OUTPUT_DELAY_1 (0x1000U) /* delay 1 cycle */ -#define _2000_TMRD_TRDIOC1_OUTPUT_DELAY_2 (0x2000U) /* delay 2 cycles */ -#define _3000_TMRD_TRDIOC1_OUTPUT_DELAY_3 (0x3000U) /* delay 3 cycles */ -/* Control of PWM output delay time of TRDIOD1 */ -#define _0000_TMRD_TRDIOD1_OUTPUT_DELAY_0 (0x0000U) /* no delay */ -#define _4000_TMRD_TRDIOD1_OUTPUT_DELAY_1 (0x4000U) /* delay 1 cycle */ -#define _8000_TMRD_TRDIOD1_OUTPUT_DELAY_2 (0x8000U) /* delay 2 cycles */ -#define _C000_TMRD_TRDIOD1_OUTPUT_DELAY_3 (0xC000U) /* delay 3 cycles */ - -/* - Timer RD PWM Mode Output Level Control Register i (TRDPOCRi) -*/ -/* PWM mode output level control bit B (POLB) */ -#define _00_TMRD_TRDIOB_OUTPUT_ACTIVE_L (0x00U) /* "L" active TRDIOBi output level is selected */ -#define _01_TMRD_TRDIOB_OUTPUT_ACTIVE_H (0x01U) /* "H" active TRDIOBi output level is selected */ -/* PWM mode output level control bit C (POLC) */ -#define _00_TMRD_TRDIOC_OUTPUT_ACTIVE_L (0x00U) /* "L" active TRDIOCi output level is selected */ -#define _02_TMRD_TRDIOC_OUTPUT_ACTIVE_H (0x02U) /* "H" active TRDIOCi output level is selected */ -/* PWM mode output level control bit D (POLD) */ -#define _00_TMRD_TRDIOD_OUTPUT_ACTIVE_L (0x00U) /* "L" active TRDIODi output level is selected */ -#define _04_TMRD_TRDIOD_OUTPUT_ACTIVE_H (0x04U) /* "H" active TRDIODi output level is selected */ - -/*********************************************************************************************************************** -Macro definitions -***********************************************************************************************************************/ -/* 16-bit timer data register 00 (TDR00) */ -#define _18FF_TAU_TDR00_VALUE (0x18FFU) -/* 16-bit timer data register 01 (TDR01) */ -#define _0000_TAU_TDR01_VALUE (0x0000U) -/* Clock divisor for TAU0 channel 0 */ -#define _0001_TAU0_CHANNEL0_DIVISOR (0x0001U) -/* Clock divisor for TAU0 channel 1 */ -#define _0001_TAU0_CHANNEL1_DIVISOR (0x0001U) -/* 16-bit timer data register 02 (TDR02) */ -#define _7CFF_TAU_TDR02_VALUE (0x7CFFU) -/* Clock divisor for TAU0 channel 2 */ -#define _0001_TAU0_CHANNEL2_DIVISOR (0x0001U) -/* 16-bit timer data register 04 (TDR04) */ -#define _7CFF_TAU_TDR04_VALUE (0x7CFFU) -/* Clock divisor for TAU0 channel 4 */ -#define _0001_TAU0_CHANNEL4_DIVISOR (0x0001U) - -/*********************************************************************************************************************** -Typedef definitions -***********************************************************************************************************************/ -typedef enum -{ - TMCHANNELA, - TMCHANNELB, - TMCHANNELC, - TMCHANNELD, - TMCHANNELELC -} timer_channel_t; - -/*********************************************************************************************************************** -Global functions -***********************************************************************************************************************/ -void Boot_TAU0_Create(void); -void Boot_TAU0_Channel2_Start(void); -void Boot_TAU0_Channel2_Stop(void); -void Boot_TAU0_Channel4_Start(void); -void Boot_TAU0_Channel4_Stop(void); - -/* Start user code for function. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#endif diff --git a/ECU_BOOT/boot_timer_user.c b/ECU_BOOT/boot_timer_user.c deleted file mode 100644 index 4b97556..0000000 --- a/ECU_BOOT/boot_timer_user.c +++ /dev/null @@ -1,78 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_timer_user.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for TAU module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ - -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_timer.h" -/* Start user code for include. Do not edit comment generated here */ -#include "boot_can_user.h" -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -extern unsigned char DCM_1ms_flag; -unsigned long freedom_count_1ms; -unsigned char TimeTick,flag_100ms; -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: r_tau0_channel4_interrupt -* Description : This function is INTTM04 interrupt service routine. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void r_tau0_channel4_interrupt(void) -{ - /* Start user code. Do not edit comment generated here */ - DCM_1ms_flag=1; - freedom_count_1ms++; - TimeTick++; - if(TimeTick >= 100){flag_100ms=1;TimeTick=0;} - /* End user code. Do not edit comment generated here */ -} - -/* Start user code for adding. Do not edit comment generated here */ - -unsigned long GetTimerCnt(void) -{ - return (freedom_count_1ms ^ (((unsigned long)TCR04)<<16)); -} - -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_userdefine.h b/ECU_BOOT/boot_userdefine.h deleted file mode 100644 index a0bc628..0000000 --- a/ECU_BOOT/boot_userdefine.h +++ /dev/null @@ -1,41 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_userdefine.h -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file includes user definition. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -#ifndef _USER_DEF_H -#define _USER_DEF_H - -/*********************************************************************************************************************** -User definitions -***********************************************************************************************************************/ - -/* Start user code for function. Do not edit comment generated here */ -void hdwinit(void); -void Boot_CAN_Pin_init(void); - -/* End user code. Do not edit comment generated here */ -#endif diff --git a/ECU_BOOT/boot_wdt.c b/ECU_BOOT/boot_wdt.c deleted file mode 100644 index 89647b4..0000000 --- a/ECU_BOOT/boot_wdt.c +++ /dev/null @@ -1,78 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_wdt.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for WDT module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_wdt.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: Boot_WDT_Create -* Description : This function initializes the watchdogtimer. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_WDT_Create(void) -{ - WDTIMK = 1U; /* disable INTWDTI interrupt */ - WDTIIF = 0U; /* clear INTWDTI interrupt flag */ - /* Set INTWDTI low priority */ - WDTIPR1 = 1U; - WDTIPR0 = 1U; - WDTIMK = 0U; /* enable INTWDTI interrupt */ -} - -/*********************************************************************************************************************** -* Function Name: Boot_WDT_Restart -* Description : This function restarts the watchdog timer. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void Boot_WDT_Restart(void) -{ - WDTE = 0xACU; /* restart watchdog timer */ -} - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/boot_wdt.h b/ECU_BOOT/boot_wdt.h deleted file mode 100644 index ff6d8b1..0000000 --- a/ECU_BOOT/boot_wdt.h +++ /dev/null @@ -1,52 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_wdt.h -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for WDT module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -#ifndef WDT_H -#define WDT_H - -/*********************************************************************************************************************** -Macro definitions (Register bit) -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Macro definitions -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Typedef definitions -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Global functions -***********************************************************************************************************************/ -void Boot_WDT_Create(void); -void Boot_WDT_Restart(void); - -/* Start user code for function. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#endif diff --git a/ECU_BOOT/boot_wdt_user.c b/ECU_BOOT/boot_wdt_user.c deleted file mode 100644 index 9e9e752..0000000 --- a/ECU_BOOT/boot_wdt_user.c +++ /dev/null @@ -1,64 +0,0 @@ -/*********************************************************************************************************************** -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only intended for use with Renesas products. -* No other uses are authorized. This software is owned by Renesas Electronics Corporation and is protected under all -* applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIESREGARDING THIS SOFTWARE, WHETHER EXPRESS, IMPLIED -* OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -* NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY -* LAW, NEITHER RENESAS ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE FOR ANY DIRECT, -* INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR -* ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software and to discontinue the availability -* of this software. By using this software, you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2012, 2015 Renesas Electronics Corporation. All rights reserved. -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -* File Name : boot_wdt_user.c -* Version : CodeGenerator for RL78/F13 V2.02.01.03 [30 Jan 2015] -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : This file implements device driver for WDT module. -* Creation Date: 2017/7/4 -***********************************************************************************************************************/ - -/*********************************************************************************************************************** -Pragma directive -***********************************************************************************************************************/ - -/* Start user code for pragma. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -Includes -***********************************************************************************************************************/ -#include "boot_macrodriver.h" -#include "boot_wdt.h" -/* Start user code for include. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ -#include "boot_userdefine.h" - -/*********************************************************************************************************************** -Global variables and functions -***********************************************************************************************************************/ -/* Start user code for global. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ - -/*********************************************************************************************************************** -* Function Name: r_wdt_interrupt -* Description : This function is INTWDTI interrupt service routine. -* Arguments : None -* Return Value : None -***********************************************************************************************************************/ -void r_wdt_interrupt(void) -{ - /* Start user code. Do not edit comment generated here */ - /* End user code. Do not edit comment generated here */ -} - -/* Start user code for adding. Do not edit comment generated here */ -/* End user code. Do not edit comment generated here */ diff --git a/ECU_BOOT/crc/crc.c b/ECU_BOOT/crc/crc.c deleted file mode 100644 index e983377..0000000 --- a/ECU_BOOT/crc/crc.c +++ /dev/null @@ -1,85 +0,0 @@ -#pragma nop -#include "crc.h" - -unsigned long GetCrc32(unsigned long CrcInitValue,__far unsigned char *buffer,unsigned long size); - -static const unsigned long Crc32Tble[256] = -{ - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, - 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, - 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, - 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, - 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, - 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, - 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, - 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, - 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, - 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, - 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, - 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, - 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, - 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, - 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, - 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, - 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, - 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, - 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, - 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, - 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, - 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, - 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, - 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, - 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, - 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, - 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, - 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, - 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, - 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, - 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, - 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D -}; - -//__far unsigned char *TBuf; -unsigned long GetCrc32(unsigned long CrcInitValue,__far unsigned char *buffer,unsigned long size) -{ - unsigned long crcValue = CrcInitValue; - unsigned long CrcTempCnt,TBuf; - //static __far unsigned char *TBuf; - TBuf = buffer; - if (size != 0) - { - for(CrcTempCnt = 0;CrcTempCnt < size;CrcTempCnt++) - { - crcValue = (crcValue >> 8) ^ Crc32Tble[(crcValue ^ *(__far unsigned char *)TBuf) & 0xFF]; - TBuf++; - } - } - crcValue = crcValue ^ 0xFFFFFFFF; - return crcValue; -} - - - -unsigned long GetCrc32_Ram(unsigned long CrcInitValue,unsigned char *buffer,unsigned long size) -{ - unsigned long crcValue = CrcInitValue; - unsigned long CrcTempCnt,TBuf; - //static __far unsigned char *TBuf; - TBuf = buffer; - if (size != 0) - { - for(CrcTempCnt = 0;CrcTempCnt < size;CrcTempCnt++) - { - crcValue = (crcValue >> 8) ^ Crc32Tble[(crcValue ^ *(unsigned char *)TBuf) & 0xFF]; - TBuf++; - } - } - crcValue = crcValue ^ 0xFFFFFFFF; - return crcValue; -} - - - - - - diff --git a/ECU_BOOT/crc/crc.h b/ECU_BOOT/crc/crc.h deleted file mode 100644 index f1bcf43..0000000 --- a/ECU_BOOT/crc/crc.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef __CRC32_H__ - #define __CRC32_H__ - - #ifdef EXTERN - #undef EXTERN - #endif /* end of #ifdef EXTERN */ - - #ifdef __CRC32_C__ - #define EXTERN - #else - #define EXTERN extern - #endif /* end of #ifdef __CRC32_C__*/ - - #define CRC_INIT_VALUE (0xFFFFFFFF) - - EXTERN unsigned long GetCrc32(unsigned long CrcInitValue,__far unsigned char *buffer,unsigned long size); - EXTERN unsigned long GetCrc32_Ram(unsigned long CrcInitValue,unsigned char *buffer,unsigned long size) ; -#endif /* end of #ifndef __CRC32_H__ */ diff --git a/ECU_BOOT/diagnose/Dcm/CanIf.h b/ECU_BOOT/diagnose/Dcm/CanIf.h deleted file mode 100644 index 66cac02..0000000 --- a/ECU_BOOT/diagnose/Dcm/CanIf.h +++ /dev/null @@ -1,30 +0,0 @@ -#if !defined(CANIF_H) -#define CANIF_H - -/***ͷļ***/ -#include "ComTypes.h" -#include "CanTrcv.h" -#include "CanIf_Cfg.h" -//#include "canhl.h" - - -/***APIӿ***/ -extern void ReInitCanIf_Parameter(void); -extern void CanIf_MainFunction(void); -extern void InitCanIf_Parameter(void); -extern void DeInitCanIf_Parameter(void); -extern ComStd_ReturnType SetCanIf_BusoffEvent(CanIf_ControllerErrorType LeCanIf_u_BusoffEvent); -extern ComStd_ReturnType SetCanIf_WakeUpEvent(CanIf_WakeUpSourceType LeCanIf_e_WakeUpSource); -extern ComStd_ReturnType ClrCanIf_WakeUpEvent(CanIf_WakeUpSourceType LeCanIf_e_WakeUpSource); -extern ComStd_ReturnType GetCanIf_WakeUpEvent(CanIf_WakeUpSourceType *LeCanIf_e_WakeUpSource); -extern ComStd_ReturnType SetCanIf_ControllerMode(CanIf_ControllerModeType LeCanIf_e_ControllerMode); -extern ComStd_ReturnType GetCanIf_ControllerMode(CanIf_ControllerModeType *LeCanIf_e_ControllerModePtr); -extern ComStd_ReturnType GetCanIf_TransceiverMode(CanTrcv_WorkModeType *LeCanIf_e_WorkModePtr); -extern ComStd_ReturnType SetCanIf_TransceiverMode(CanTrcv_WorkModeType LeCanIf_e_WorkMode); -extern void RxIndicationCanIf_Messages(CanIf_HwHandleType Hrh, CanIf_CanIdType LeCanIf_e_CanId, CanIf_CanDlcType LeCanIf_e_CanDlc, CanIf_CanDataType* LeCanIf_e_CanSduPtr); -extern ComStd_ReturnType TransmitCanIf_Buffer(CanIf_CanIdType LeCanIf_t_TxCanID,CanIf_CanDlcType LeCanIf_t_TxCanDlc,CanIf_CanDataType *LeCanIf_t_TxCanDataPtr); -extern void ConfirmCanIf_TxOK(ComUint8 LeCanIf_e_Hrh,CanIf_CanIdType LeCanIf_t_TxCanID); -extern ComStd_ReturnType ResetCanIf_Controller(ComUint8 LeCanIf_u_Channel); - - -#endif diff --git a/ECU_BOOT/diagnose/Dcm/CanIf/CanIf.c b/ECU_BOOT/diagnose/Dcm/CanIf/CanIf.c deleted file mode 100644 index 7792280..0000000 --- a/ECU_BOOT/diagnose/Dcm/CanIf/CanIf.c +++ /dev/null @@ -1,577 +0,0 @@ -/**------------------ʷ汾Ϣ------------------------------------------------------- - -** : fengshulin - -** V1.0 - -** : 2015/03/12 - -** : ʼ汾 - -**-------------------------------------------------------------------------------------*/ -#include "CanIf.h" -//#include "CanNM.h" -/***************************************************************************************/ -static CanIf_ControllerModeType TeCanIf_e_ControllerMode; -static CanTrcv_WorkModeType TeCanTrcv_e_WorkMode; -static ComUint8 SeCanIf_u_IsInit; -static ComUint8 SeCanIf_u_WakeEvent; -static ComUint32 SeCanIf_u_TxQueueCounter; -static CanIf_TxQueueType TsCanIf_h_TxQueue[CANIF_CFG_MAX_TX_HANDLE]; - -extern unsigned char TransmitCAN_Message(unsigned int ID,unsigned char Dlc,unsigned char *Data); -/**************************************************************************************** -@ : void ClearCanIf_Queue(void) - -@ : void - -@ֵ : void - -@ : - -@༭ʱ : 2015/04/08 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -void ClearCanIf_Queue(void) -{ - ComUint8 LeCanIf_u_Index; - - SeCanIf_u_TxQueueCounter = 0; - for(LeCanIf_u_Index = 0; LeCanIf_u_Index < CANIF_CFG_MAX_TX_HANDLE; LeCanIf_u_Index++) - { - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_CanId = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_CanDlc = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eQueued = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[0] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[1] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[2] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[3] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[4] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[5] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[6] = 0x00; - TsCanIf_h_TxQueue[LeCanIf_u_Index].eCanIf_Txdata[7] = 0x00; - } -} -/**************************************************************************************** -@ : void DeInitCanIf_Parameter(void) - -@ : void - -@ֵ : void - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -void DeInitCanIf_Parameter(void) -{ - SeCanIf_u_IsInit = COM_FALSE; -} -/**************************************************************************************** -@ : void ReInitCanIf_Parameter(void) - -@ : void - -@ֵ : void - -@ : - -@༭ʱ : 2015/05/7 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -void ReInitCanIf_Parameter(void) -{ - SeCanIf_u_IsInit = COM_TRUE; -} -/**************************************************************************************** -@ : void InitCanIf_Parameter(void) - -@ : void - -@ֵ : void - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : called by main -*****************************************************************************************/ -void InitCanIf_Parameter(void) -{ - TeCanIf_e_ControllerMode = CANIF_CS_STOP; - TeCanTrcv_e_WorkMode = CANTRCV_STANDBY; - - ClearCanIf_Queue(); - - SeCanIf_u_IsInit = COM_TRUE; -} -/**************************************************************************************** -@ : ComStd_ReturnType SetCanIf_BusoffEvent(void) - -@ : void - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : called by can module to indicator busoff event has happened -*****************************************************************************************/ -#if 0 -ComStd_ReturnType SetCanIf_BusoffEvent(CanIf_ControllerErrorType LeCanIf_u_BusoffEvent) -{ - (void)LeCanIf_u_BusoffEvent; - SetCanSM_BusoffEvent(LeCanIf_u_BusoffEvent); - return COM_E_OK; -} -#endif -/**************************************************************************************** -@ : ComStd_ReturnType ResetCanIf_Controller(ComUint8 LeCanIf_u_Channel) - -@ : LeCanIf_u_Channel - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/04/13 - -@汾 : V1.0 - -@ע : called by can module to indicator busoff event has happened -*****************************************************************************************/ -ComStd_ReturnType ResetCanIf_Controller(ComUint8 LeCanIf_u_Channel) -{ - (void)LeCanIf_u_Channel; -#if 0 - ResetCan_Controller(); -#endif - return COM_E_OK; -} -/**************************************************************************************** -@ : ComStd_ReturnType SetCanIf_WakeUpEvent(CanIf_WakeUpSourceType LeCanIf_u_WakeUpSource) - -@ : CanIf_WakeUpSourceType LeCanIf_e_WakeUpSource - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : called by can/cantrcv/ICU module to indicator wakeup event has happened -*****************************************************************************************/ -ComStd_ReturnType SetCanIf_WakeUpEvent(CanIf_WakeUpSourceType LeCanIf_e_WakeUpSource) -{ - SeCanIf_u_WakeEvent |= LeCanIf_e_WakeUpSource; - //SetCanNM_NmMode(NMStatus_WAITCHECK,NoActiveLoad); - return COM_E_OK; -} -ComStd_ReturnType ClrCanIf_WakeUpEvent(CanIf_WakeUpSourceType LeCanIf_e_WakeUpSource) -{ - SeCanIf_u_WakeEvent &= ~LeCanIf_e_WakeUpSource; - return COM_E_OK; -} -ComStd_ReturnType GetCanIf_WakeUpEvent(CanIf_WakeUpSourceType *LeCanIf_e_WakeUpSource) -{ - *LeCanIf_e_WakeUpSource = SeCanIf_u_WakeEvent; - return COM_E_OK; -} -/**************************************************************************************** -@ : ComStd_ReturnType SetCanIf_ControllerMode(CanIf_ControllerModeType LeCanIf_e_RequestedMode) - -@ : CanIf_ControllerModeType LeCanIf_e_RequestedMode - -@ֵ : ComStd_ReturnType - -@ : Call by CanSM - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : CanIf Layer Set Controller RequestMode -*****************************************************************************************/ -ComStd_ReturnType SetCanIf_ControllerMode(CanIf_ControllerModeType LeCanIf_e_RequestedMode) -{ -#if 0 - SetCan_ControllerMode(LeCanIf_e_RequestedMode); - TeCanIf_e_ControllerMode = LeCanIf_e_RequestedMode; -#endif - return COM_E_OK; -} -/**************************************************************************************** -@ : ComStd_ReturnType GetCanIf_ControllerMode(CanIf_ControllerModeType *LeCanIf_e_ControllerModePtr) - -@ : CanIf_ControllerModeType *LeCanIf_e_ControllerModePtr - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : Upper Layer Get Controller Mode -*****************************************************************************************/ -ComStd_ReturnType GetCanIf_ControllerMode(CanIf_ControllerModeType *LeCanIf_e_ControllerModePtr) -{ - *LeCanIf_e_ControllerModePtr = TeCanIf_e_ControllerMode; - return COM_E_OK; -} -/**************************************************************************************** -@ : ComStd_ReturnType GetCanIf_TransceiverMode(CanTrcv_WorkModeType *LeCanIf_e_WorkModePtr) - -@ : CanTrcv_WorkModeType *LeCanIf_e_WorkModePtr - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : Upper Layer Get Transceive Mode -*****************************************************************************************/ -ComStd_ReturnType GetCanIf_TransceiverMode(CanTrcv_WorkModeType *LeCanIf_e_WorkModePtr) -{ - *LeCanIf_e_WorkModePtr = TeCanTrcv_e_WorkMode; - return COM_E_OK; -} -/**************************************************************************************** -@ : ComStd_ReturnType SetCanIf_TransceiverMode(CanTrcv_WorkModeType LeCanIf_e_WorkMode) - -@ : CanTrcv_WorkModeType LeCanIf_e_WorkMode - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -ComStd_ReturnType SetCanIf_TransceiverMode(CanTrcv_WorkModeType LeCanIf_e_WorkMode) -{ - SetCanTrcv_WorkMode(LeCanIf_e_WorkMode); - TeCanTrcv_e_WorkMode = LeCanIf_e_WorkMode; - return COM_E_OK; -} -/**************************************************************************************** -@ : void RxIndicationCanIf_Messages(CanIf_HwHandleType LeCanIf_e_Hrh, CanIf_CanIdType LeCanIf_e_CanId, CanIf_CanDlcType LeCanIf_e_CanDlc, const CanIf_CanDataType* LeCanIf_e_CanSduPtr) - -@ : CanIf_HwHandleType LeCanIf_e_Hrh, CanIf_CanIdType LeCanIf_e_CanId, CanIf_CanDlcType LeCanIf_e_CanDlc, const CanIf_CanDataType* LeCanIf_e_CanSduPtr - -@ֵ : void - -@ : - -@༭ʱ : 2015/03/16 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -void RxIndicationCanIf_Messages(CanIf_HwHandleType LeCanIf_e_Hrh, CanIf_CanIdType LeCanIf_e_CanId, CanIf_CanDlcType LeCanIf_e_CanDlc, CanIf_CanDataType* LeCanIf_e_CanSduPtr) -{ - CanIf_PduIdType LeCanIf_e_RxPduId = 0; - uint16_t temp; - (void)LeCanIf_e_Hrh; - /* No Rx-Pdus or Ranges configured. Nothing to search. */ - if (0 != CANIF_CFG_GENERIC(eMaxRxPDUHandle)) - { - /* Checked for invalid RxPduId earlier */ - for(LeCanIf_e_RxPduId = 0;LeCanIf_e_RxPduId < CANIF_CFG_GENERIC(eMaxRxPDUHandle);LeCanIf_e_RxPduId++) - { - temp = CANIF_CFG_GENERIC(eMaxRxPDUHandle); - temp = CANIF_CFG_CANRX_TABLE(LeCanIf_e_RxPduId,eRxCanId); - if( CANIF_CFG_CANRX_TABLE(LeCanIf_e_RxPduId,eRxCanId) == LeCanIf_e_CanId ) - { - /* ID matches - Pdu identified */ - /* DLC check - if configured DLC == 0 the following condition is always false and DLC check is deactivated */ - CanIf_RxIndicationType rxIndicationFct; - if (LeCanIf_e_CanDlc != CANIF_CFG_CANRX_TABLE(LeCanIf_e_RxPduId, eRxCanDlc) ) - { - /*DLC Error*/ - rxIndicationFct = CANIF_CFG_CANRX_TABLE(LeCanIf_e_RxPduId,eCanIf_RxErrorFct); - if(COM_NULL_PTR != rxIndicationFct) - { - rxIndicationFct(LeCanIf_e_Hrh,LeCanIf_e_CanId,LeCanIf_e_CanDlc,LeCanIf_e_CanSduPtr); - } - else - { - /*Avoid Warning*/ - } - } - else - { - rxIndicationFct = CANIF_CFG_CANRX_TABLE(LeCanIf_e_RxPduId,eCanIf_RxIndicationFct); - if(COM_NULL_PTR != rxIndicationFct) - { - rxIndicationFct(LeCanIf_e_Hrh,LeCanIf_e_CanId,LeCanIf_e_CanDlc,LeCanIf_e_CanSduPtr); - } - else - { - /*Avoid Warning*/ - } - } - break; - } - else - { - /*Avoid Warning*/ - } - } - } - else - { - /*Avoid Warning*/ - } -} - -/**************************************************************************************** -@ : ComStd_ReturnType TransmitCanIf_Buffer(CanIf_CanIdType LeCanIf_t_TxCanID,CanIf_CanDlcType LeCanIf_t_TxCanDlc,CanIf_CanDataType *LeCanIf_t_TxCanDataPtr) - -@ : CanIf_CanIdType LeCanIf_t_TxCanID,CanIf_CanDlcType LeCanIf_t_TxCanDlc,CanIf_CanDataType *LeCanIf_t_TxCanDataPtr - -@ֵ : ComStd_ReturnType - -@ : - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -ComStd_ReturnType TransmitCanIf_Buffer(CanIf_CanIdType LeCanIf_t_TxCanID,CanIf_CanDlcType LeCanIf_t_TxCanDlc,CanIf_CanDataType *LeCanIf_t_TxCanDataPtr) -{ - Can_ReturnType txResult = CAN_OK; /*or CAN_OK*/ - - CanIf_EnterCritical(); - - txResult = TransmitCAN_Message(LeCanIf_t_TxCanID,LeCanIf_t_TxCanDlc,LeCanIf_t_TxCanDataPtr); - CanIf_LeaveCritical(); - - /*ʧ*/ - if(CAN_NOT_OK == txResult) - { - CanIf_uint8Type LeCanIf_e_TxPduId; - for(LeCanIf_e_TxPduId = 0;LeCanIf_e_TxPduId < CANIF_CFG_GENERIC(eMaxTxPDUHandle);LeCanIf_e_TxPduId++) - { - if( CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eTxCanId) == LeCanIf_t_TxCanID ) - { - CanIf_uint8Type LeCanIf_e_TxDataCycle; - - TsCanIf_h_TxQueue[CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eQueuedIndex)].eCanIf_CanId = LeCanIf_t_TxCanID; - TsCanIf_h_TxQueue[CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eQueuedIndex)].eCanIf_CanDlc = LeCanIf_t_TxCanDlc; - for(LeCanIf_e_TxDataCycle = 0;LeCanIf_e_TxDataCycle < LeCanIf_t_TxCanDlc;LeCanIf_e_TxDataCycle++) - { - TsCanIf_h_TxQueue[CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eQueuedIndex)].eCanIf_Txdata[LeCanIf_e_TxDataCycle] = LeCanIf_t_TxCanDataPtr[LeCanIf_e_TxDataCycle]; - } - TsCanIf_h_TxQueue[CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eQueuedIndex)].eQueued = 1; - SeCanIf_u_TxQueueCounter |= ( 1 << (CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eQueuedIndex)) ); - - break; - } - else - { - - } - } - } - else - { - /*Tx OK == do nothing */ - } - return (ComStd_ReturnType)txResult; -} -/**************************************************************************************** -@ : void TreatCanIf_TxQueue(void) - -@ : void - -@ֵ : void - -@ : - -@༭ʱ : 2015/04/08 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -#if 0 -void TreatCanIf_TxQueue(void) -{ - if(0 != SeCanIf_u_TxQueueCounter) - { - Can_ReturnType txResult = CAN_NOT_OK; - CanIf_uint8Type LeCanIf_e_Index = 0; - - for(LeCanIf_e_Index = 0;LeCanIf_e_Index < CANIF_CFG_MAX_TX_HANDLE;LeCanIf_e_Index++) - { - if(0 != TsCanIf_h_TxQueue[LeCanIf_e_Index].eQueued) - { - txResult = TransmitCAN_Message(TsCanIf_h_TxQueue[LeCanIf_e_Index].eCanIf_CanId,TsCanIf_h_TxQueue[LeCanIf_e_Index].eCanIf_CanDlc,TsCanIf_h_TxQueue[LeCanIf_e_Index].eCanIf_Txdata); - if(CAN_OK == txResult) - { - TsCanIf_h_TxQueue[LeCanIf_e_Index].eQueued = 0; - SeCanIf_u_TxQueueCounter &= ~( 1 << LeCanIf_e_Index ); - } - else - { - - } - break; - } - else - { - - } - } - } - else - { - - } -} -#endif -/**************************************************************************************** -@ : void ConfirmCanIf_TxOK(CanIf_CanIdType LeCanIf_t_TxCanID) - -@ : LeCanIf_t_TxCanID - -@ֵ : void - -@ : - -@༭ʱ : 2015/04/08 - -@汾 : V1.0 - -@ע : -*****************************************************************************************/ -#if 0 -void ConfirmCanIf_TxOK(ComUint8 LeCanIf_e_Hrh,CanIf_CanIdType LeCanIf_t_TxCanID) -{ - CanIf_PduIdType LeCanIf_e_TxPduId = 0; - - if(0 != CANIF_CFG_MAX_TX_HANDLE) - { - /* Checked for invalid RxPduId earlier */ - for(LeCanIf_e_TxPduId = 0;LeCanIf_e_TxPduId < CANIF_CFG_GENERIC(eMaxTxPDUHandle);LeCanIf_e_TxPduId++) - { - if( CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eTxCanId) == LeCanIf_t_TxCanID ) - { - CanIf_TxConfirmationType TxConfirmationFct; - TxConfirmationFct = CANIF_CFG_CANTX_TABLE(LeCanIf_e_TxPduId,eCanIf_TxConfirmationFct); - if(COM_NULL_PTR != TxConfirmationFct) - { - TxConfirmationFct(LeCanIf_e_Hrh,LeCanIf_t_TxCanID); - } - else - { - /*Avoid Warning*/ - } - break; - } - else - { - /*Avoid Warning*/ - } - } - } - else - { - - } - CanIf_EnterCritical(); - TreatCanIf_TxQueue(); - CanIf_LeaveCritical(); -} -#endif -/**************************************************************************************** -@ : void CanIf_MainFunction(void) - -@ : void - -@ֵ : void - -@ : 10msڵ - -@༭ʱ : 2015/03/14 - -@汾 : V1.0 - -@ע : CanIfTASK -*****************************************************************************************/ -void CanIf_MainFunction(void) -{ - if( COM_FALSE != SeCanIf_u_IsInit ) - { - if( (CANIF_CS_STOP == TeCanIf_e_ControllerMode) && (CANTRCV_STANDBY == TeCanTrcv_e_WorkMode) ) - { - /*߻¼,ڴӴ*/ - } - else - { - - } - } - else - { - /*Avoid Warning*/ - } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ECU_BOOT/diagnose/Dcm/CanIf/CanIf.h b/ECU_BOOT/diagnose/Dcm/CanIf/CanIf.h deleted file mode 100644 index 120e078..0000000 --- a/ECU_BOOT/diagnose/Dcm/CanIf/CanIf.h +++ /dev/null @@ -1,57 +0,0 @@ -#if !defined(CANIF_H) -#define CANIF_H - -/***ͷļ***/ -//#include "global.h" -#include "ComTypes.h" -#include "CanTrcv.h" -#include "CanIf_Cfg.h" -//#include "canhl.h" -typedef struct -{ - uint32_t Arb; //! 0) - tDiagStart --; - if(GetIgnVoltStatus() == 0) - { - if(tDiagStartVolt > 0) - tDiagStartVolt--; - } - else - tDiagStartVolt = 500; -} - -static bool1 ChkDiagVolt(void) -{ - return (tDiagStartVolt == 0); -} - -static bool1 ChkNetDiagCondition(void) -{ - return ((tDiagStart == 0)&&(tDiagStartVolt == 0)); -} - -static uint8 GetLastSnapshotRecordNum(uint8 DtcIndex) -{ - uint8 temp,SnapshotRecordNum = 0; - uint32 DtcSnapshotRecord[32]; - DF_Read(DtcSnapshotRecord,DtcIndex<<1,128); - for(temp=0;temp<=7;temp++) - { - if(DtcSnapshotRecord[(temp<<2)+3] != 0xFFFFFFFF) - SnapshotRecordNum |= 1<>8); - *Data++ = (uint8)Temp16&0xFF; - Temp16 = GetRecFeedbackVoltage(); - *Data++ = (uint8)(Temp16>>8); - *Data++ = (uint8)Temp16&0xFF; - Temp16 = EvaSensorFeedbackVoltage(); - *Data++ = (uint8)(Temp16>>8); - *Data++ = (uint8)Temp16&0xFF; - Temp16 = GetPtcTmpSnsVolt(); - *Data++ = (uint8)(Temp16>>8); - *Data++ = (uint8)Temp16&0xFF; - Temp16 = GetFanFeedBackVolt(); - *Data++ = (uint8)(Temp16>>8); - *Data++ = (uint8)Temp16&0xFF; - Temp16 = GetCompSnsVolt(); - *Data++ = (uint8)(Temp16>>8); - *Data++ = (uint8)Temp16&0xFF; -} -#endif - -static void WriteDtcSnapshot(uint8 DtcIndex) -{ - uint8 temp[2]; -#if (defined (DTC_ONE_SNAPSHOT) && (DTC_ONE_SNAPSHOT == NO)) - uint32 DtcSnapshotRecord[32]; -#else - uint32 DtcSnapshotRecord[4]; -#endif - DtcStutas[DtcIndex].DtcStutas |= (TestFailed | ConfirmedDTC); -// DtcStutas[DtcIndex].DtcStutas &= ~TestNotCompletedThisOperationCycle; //2017/7/2 11:52:01 spark del - if(DtcStutas[DtcIndex].EepWrtEnable) - { - DtcStutas[DtcIndex].EepWrtEnable = 0; - DF_Read(temp,(DtcIndex+INDEX_19_BASE),3); - temp[0] = DtcStutas[DtcIndex].DtcStutas & ConfirmedDTC; - DF_Write(&temp,(DtcIndex+INDEX_19_BASE),3); - } -} - -void ClearDtcStutas(uint8 DtcIndex) -{ -// DtcStutas[DtcIndex].EepWrtEnable = 1; //2017/7/4 15:19:34 spark del -// DtcStutas[DtcIndex].DtcStutas &= ~(TestNotCompletedThisOperationCycle | TestFailed); //2017/7/2 11:52:29 del - DtcStutas[DtcIndex].DtcStutas &= ~TestFailed; //2017/7/2 11:52:56 spark add -} - -static void CanDTC_AcBusOffDetected(void) -{ -// uint8 temp; -// uint32 DtcSnapshotRecord[32]; - if(ChkNetDiagCondition() == 0) return; - - if(0!=GetCanBusOffErr()) { - WriteDtcSnapshot(AC_BusOff); - } - else{ - ClearDtcStutas(AC_BusOff); - } - -#if 0 - if((BusOffCnt < 10) && (BusOffCnt > 0)) - DtcStutas[AC_BusOff].DtcStutas |= TestNotCompletedThisOperationCycle; - else if(BusOffCnt >= 10) - { - if(DtcStutas[AC_BusOff].EepWrtEnable) - { - WriteDtcSnapshot(AC_BusOff); - } - } - else if(BusOffCnt == 0) - { - ClearDtcStutas(AC_BusOff); - } -#endif -} -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -static void PowerVoltageChk(void) -{ - static uint8 PowerOverVoltCnt,PowerUderVoltCnt; - if(GetVoltage(KL30_VOLTAGE) > 160) - { - if(PowerOverVoltCnt < 50) /* 50*40ms = 2s */ - PowerOverVoltCnt++; - else - WriteDtcSnapshot(AC_OVER_VOLTAGE); - } - else - { - if(PowerOverVoltCnt > 0){ - PowerOverVoltCnt--; - if(PowerOverVoltCnt>37){ /* 37*40ms = 1.48s */ - PowerOverVoltCnt = 37; - } - } - else{ - ClearDtcStutas(AC_OVER_VOLTAGE); - } - } - - if(GetVoltage(KL30_VOLTAGE) < 90) - { - if(PowerUderVoltCnt < 50) /* 50*40ms = 2s */ - PowerUderVoltCnt++; - else - WriteDtcSnapshot(AC_LOW_VOLTAGE); - } - else - { - if(PowerUderVoltCnt > 0){ - PowerUderVoltCnt--; - if(PowerUderVoltCnt>37){ /* 37*40ms = 1.48s */ - PowerUderVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_LOW_VOLTAGE); - } -} - -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -static void TempMotorFeedbackChk(void) -{ - static uint8 TempOverVoltCnt,TempUderVoltCnt; - if(GetVoltage(TEMP_MOTOR) >= 49) - { - if(TempOverVoltCnt < 50) /* 50*40ms = 2s */ - TempOverVoltCnt++; - else - WriteDtcSnapshot(AC_TEMP_MOTOR_SHORT_CUT_TO_VCC); - } - else - { - if(TempOverVoltCnt > 0){ - TempOverVoltCnt--; - if(TempOverVoltCnt>37){ /* 37*40ms = 1.48s */ - TempOverVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_TEMP_MOTOR_SHORT_CUT_TO_VCC); - } - - if(GetVoltage(TEMP_MOTOR) <= 1) - { - if(TempUderVoltCnt < 50) /* 50*40ms = 2s */ - TempUderVoltCnt++; - else - WriteDtcSnapshot(AC_TEMP_MOTOR_SHORT_CUT_TO_GND); - } - else - { - if(TempUderVoltCnt > 0){ - TempUderVoltCnt--; - if(TempUderVoltCnt>37){ /* 37*40ms = 1.48s */ - TempUderVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_TEMP_MOTOR_SHORT_CUT_TO_GND); - } -} - -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -static void ModeMotorFeedbackChk(void) -{ - static uint8 ModeOverVoltCnt,ModeUderVoltCnt; - if(GetVoltage(MODE_MOTOR) >= 49) - { - if(ModeOverVoltCnt < 50) /* 50*40ms = 2s */ - ModeOverVoltCnt++; - else - WriteDtcSnapshot(AC_MODE_MOTOR_SHORT_CUT_TO_VCC); - } - else - { - if(ModeOverVoltCnt > 0){ - ModeOverVoltCnt--; - if(ModeOverVoltCnt>37){ /* 37*40ms = 1.48s */ - ModeOverVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_MODE_MOTOR_SHORT_CUT_TO_VCC); - } - - if(GetVoltage(MODE_MOTOR) <= 1) - { - if(ModeUderVoltCnt < 50) /* 50*40ms = 2s */ - ModeUderVoltCnt++; - else - WriteDtcSnapshot(AC_MODE_MOTOR_SHORT_CUT_TO_GND); - } - else - { - if(ModeUderVoltCnt > 0){ - ModeUderVoltCnt--; - if(ModeUderVoltCnt>37){ /* 37*40ms = 1.48s */ - ModeUderVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_MODE_MOTOR_SHORT_CUT_TO_GND); - } -} - -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -static void RecMotorFeedbackChk(void) -{ - static uint8 RecOverVoltCnt,RecUderVoltCnt; - if(GetVoltage(REC_MOTOR) >= 49) - { - if(RecOverVoltCnt < 50) /* 50*40ms = 2s */ - RecOverVoltCnt++; - else - WriteDtcSnapshot(AC_REC_MOTOR_SHORT_CUT_TO_VCC); - } - else - { - if(RecOverVoltCnt > 0){ - RecOverVoltCnt--; - if(RecOverVoltCnt>37){ /* 37*40ms = 1.48s */ - RecOverVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_REC_MOTOR_SHORT_CUT_TO_VCC); - } - - if(GetVoltage(REC_MOTOR) <= 1) - { - if(RecUderVoltCnt < 50) /* 50*40ms = 2s */ - RecUderVoltCnt++; - else - WriteDtcSnapshot(AC_REC_MOTOR_SHORT_CUT_TO_GND); - } - else - { - if(RecUderVoltCnt > 0){ - RecUderVoltCnt--; - if(RecUderVoltCnt>37){ /* 37*40ms = 1.48s */ - RecUderVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_REC_MOTOR_SHORT_CUT_TO_GND); - } -} - -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -static void EvaSensorChk(void) -{ - static uint8 EvaOverVoltCnt,EvaUderVoltCnt; - if(GetVoltage(EVA_SENSOR) >= 49) - { - if(EvaOverVoltCnt < 50) /* 50*40ms = 2s */ - EvaOverVoltCnt++; - else - WriteDtcSnapshot(AC_EVA_SENSOR_SHORT_CUT_TO_VCC); - } - else - { - if(EvaOverVoltCnt > 0){ - EvaOverVoltCnt--; - if(EvaOverVoltCnt>37){ /* 37*40ms = 1.48s */ - EvaOverVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_EVA_SENSOR_SHORT_CUT_TO_VCC); - } - - if(GetVoltage(EVA_SENSOR) <= 1) - { - if(EvaUderVoltCnt < 50) /* 50*40ms = 2s */ - EvaUderVoltCnt++; - else - WriteDtcSnapshot(AC_EVA_SENSOR_SHORT_CUT_TO_GND); - } - else - { - if(EvaUderVoltCnt > 0){ - EvaUderVoltCnt--; - if(EvaUderVoltCnt>37){ /* 37*40ms = 1.48s */ - EvaUderVoltCnt = 37; - } - } - else - ClearDtcStutas(AC_EVA_SENSOR_SHORT_CUT_TO_GND); - } -} - -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -/**************************************************************************************/ -static void MotorLockChk(void) -{ - if(GetMotorLockStatus(TEMP_MOTOR) != 0) - { - WriteDtcSnapshot(AC_TEMP_MOTOR_LOCK); - } - else - { - ClearDtcStutas(AC_TEMP_MOTOR_LOCK); - } - - if(GetMotorLockStatus(MODE_MOTOR) != 0) - { - WriteDtcSnapshot(AC_MODE_MOTOR_LOCK); - } - else - { - ClearDtcStutas(AC_MODE_MOTOR_LOCK); - } - - if(GetMotorLockStatus(REC_MOTOR) != 0) - { - WriteDtcSnapshot(AC_REC_MOTOR_LOCK); - } - else - { - ClearDtcStutas(AC_REC_MOTOR_LOCK); - } -} - -static void CanDTC_CycChk(void) -{ - PowerVoltageChk(); - TempMotorFeedbackChk(); - ModeMotorFeedbackChk(); - RecMotorFeedbackChk(); - EvaSensorChk(); -} - -extern uint8 GetNormalMsgSts(void); -void CanDTC_Task(void) -{ - static uint8 DtcTestCycleTim; - //if(ChkDiagVolt()==0) return; - - CanDTC_AcBusOffDetected(); - if(GetNormalMsgSts() & 0x02) - { - //CanDTC_CanCommunicationLostDetected(HMI_ControlCommand_ID); - //CanDTC_CanCommunicationLostDetected(VCU_DisplayInfo_ID); - //CanDTC_CanCommunicationLostDetected(COMP_Information_ID); - //CanDTC_CompErrChk(); - //CanDTC_MotorRunTimeChk(); - - MotorLockChk(); - - if(DtcTestCycleTim < DTC_TEST_CYCLE_TIM) - { - DtcTestCycleTim++; - } - else{ - DtcTestCycleTim = 0; - CanDTC_CycChk(); - } - } -} - -uint8 GetDtcStutas(uint8 DtcIndex) -{ -return DtcStutas[DtcIndex].DtcStutas; -} - -uint8 GetDtcSnapshotRecord(uint8 Index,uint8 * Buf,uint8 * Length ,uint8 DtcSnapshotRecordNum) -{ - uint8 SnapshotRecordBuf[16]; - DF_Read(SnapshotRecordBuf,Index,16); - if((DtcSnapshotRecordNum >= 1)&&(DtcSnapshotRecordNum <=6)) - { - *Buf++ = DtcSnapshotRecordNum; - *Buf++ = 1; - *Buf++ = 0x0A; - *Buf++ = DtcSnapshotRecordNum - 1; - *Buf++ = SnapshotRecordBuf[(DtcSnapshotRecordNum - 1)<<1]; - *Buf++ = SnapshotRecordBuf[((DtcSnapshotRecordNum - 1)<<1)+1]; - *Length += 6; - } - else if(DtcSnapshotRecordNum == 0xFF) - { - for(DtcSnapshotRecordNum = 1;DtcSnapshotRecordNum<=6;DtcSnapshotRecordNum++) - { - *Buf++ = DtcSnapshotRecordNum; - *Buf++ = 1; - *Buf++ = 0x0A; - *Buf++ = DtcSnapshotRecordNum - 1; - *Buf++ = SnapshotRecordBuf[(DtcSnapshotRecordNum - 1)<<1]; - *Buf++ = SnapshotRecordBuf[((DtcSnapshotRecordNum - 1)<<1)+1]; - *Length += 6; - } - } - else - return DCM_NORESULT; - - return 0; -} - -// 19 01 -uint8 MngDcm_ReportNumberOfDTCByStatusMask(void) -{ - uint8 LaDcm_u_TempBuffer[6]; - TeDcm_h_ResultType LeDcm_u_Result; - uint8 DtcCnt,Index; - - VeDcm_h_RqustInfo.StateMask = VeDcm_P_DataAddress[2]; - if(VeDcm_h_RqustInfo.StateMask & DTC_STATUS_AVAILABILITY_MASK) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - LaDcm_u_TempBuffer[2] = DTC_STATUS_AVAILABILITY_MASK; - for(Index=0;Index>8); - KamData.RspData[4] = (uint8)(CeDcm_u_P2serverTime&0xFF); - KamData.RspData[5] = (uint8)(CeDcm_u_P2ExtserverTime>>8); - KamData.RspData[6] = (uint8)(CeDcm_u_P2ExtserverTime&0xFF); - KamData.RspData[7] = 0xAA; - KamData.boot_enable = 0; - - SetMcu_SoftReset(); - } - else - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - LaDcm_u_TempBuffer[2] = (uint8)(CeDcm_u_P2serverTime>>8); - LaDcm_u_TempBuffer[3] = (uint8)(CeDcm_u_P2serverTime&0xFF); - LaDcm_u_TempBuffer[4] = (uint8)(CeDcm_u_P2ExtserverTime>>8); - LaDcm_u_TempBuffer[5] = (uint8)(CeDcm_u_P2ExtserverTime&0xFF); - - SetCanTp_TxBuffer(6U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - } - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - } - - //if( DCM_RESET_READY == DcmResetReady) - //{ - // //while(++DcmResetDelay < 80000); - // SetMcu_SoftReset(); - //} - - return LeDcm_u_Result; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ProgramSessionDeal(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 进入 编程会话模式 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_ProgramSessionDeal(void) - { - uint8 LaDcm_u_TempBuffer[6]; - uint32 ResetDelayCnt = 0; - TeDcm_h_ResultType LeDcm_u_Result; - - uint32_t ReprogmaValid; - - SeDcm_u_S3ServerTimeSts = DCM_S3SEVERTIMER_CONTINUE; /*S3server 计时继续*/ - SeDcm_w_S3ServerTime = DCM_S3SEVERTIMEOUT; /*S3server 计时计数值重新装载*/ - if( DCM_DEFAULT_SESSION != SeDcm_u_DiagnosticSession ) - { - // 78 - //MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); - //SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); - - SeDcm_u_DiagnosticSession = DCM_PROGRAMME_SESSION; /*会话模式编程模式*/ - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_DEFAULT; /*安全模式 锁定*/ - SeDcm_u_DtcSetSts = DCM_DTCSET_ENABLE; /*DTC设置使能*/ - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_ENABLE; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_DISENABLE; /*应用报文收发使能*/ - //ReprogmaValid = 0xAA5555AA; - //if( 0 == DF_Write((uint8*)(&ReprogmaValid),GetIndexNumber(INDEX_REPROGMA),sizeof(ReprogmaValid))) //R_FDL_OK => 0 - if(1) - { - KamData.boot_enable = RPRGRM_REQ_VALID; - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - KamData.AckReq = ACK_REQ; - KamData.AckLenth = 7; - KamData.RspData[0] = 0x06; - KamData.RspData[1] = VeDcm_h_RqustInfo.Sid + 0x40; - KamData.RspData[2] = VeDcm_h_RqustInfo.Sub; - KamData.RspData[3] = (uint8)(CeDcm_u_P2serverTime>>8); - KamData.RspData[4] = (uint8)(CeDcm_u_P2serverTime&0xFF); - KamData.RspData[5] = (uint8)(CeDcm_u_P2ExtserverTime>>8); - KamData.RspData[6] = (uint8)(CeDcm_u_P2ExtserverTime&0xFF); - KamData.RspData[7] = 0xAA; - SetMcu_SoftReset(); -#if 0 - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - LaDcm_u_TempBuffer[2] = (uint8)(CeDcm_u_P2serverTime>>8); - LaDcm_u_TempBuffer[3] = (uint8)(CeDcm_u_P2serverTime&0xFF); - LaDcm_u_TempBuffer[4] = (uint8)(CeDcm_u_P2ExtserverTime>>8); - LaDcm_u_TempBuffer[5] = (uint8)(CeDcm_u_P2ExtserverTime&0xFF); - while(++ResetDelayCnt < 100000); - SetCanTp_TxBuffer(6U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ -#endif - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - KamData.AckReq = 0; - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - SetMcu_SoftReset(); - } - //ResetDelayCnt = 0; - //while(++ResetDelayCnt < 10000); - //SetMcu_SoftReset(); - } - else - { - /*设置NRC 22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - } - else - { - /*设置NRC 22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - return LeDcm_u_Result; - } - - /*------------ boot add 394 -----------------*/ - /****************************************************************************** - *函数名称 : void BootProgramSessionDeal(void) - - *参数 : void - - *返回值 : void - - *描述 : - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void BootProgramSessionDeal(void) -{ - SeDcm_u_S3ServerTimeSts = DCM_S3SEVERTIMER_CONTINUE; /*S3server 计时继续*/ - SeDcm_w_S3ServerTime = DCM_S3SEVERTIMEOUT; /*S3server 计时计数值重新装载*/ - SeDcm_u_DiagnosticSession = DCM_PROGRAMME_SESSION; /*会话模式编程模式*/ - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_DEFAULT; /*安全模式 锁定*/ - SeDcm_u_DtcSetSts = DCM_DTCSET_DISENABLE; /*DTC设置使能*/ - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_ENABLE; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_DISENABLE; /*应用报文收发使能*/ -} - - - - /****************************************************************************** - *函数名称 : void BootDefaultSessionDeal(void) - - *参数 : void - - *返回值 : void - - *描述 : - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void BootDefaultSessionDeal(void) -{ - SeDcm_u_S3ServerTimeSts = DCM_S3SEVERTIMER_STOP; /*S3server 计时停止*/ - SeDcm_w_S3ServerTime = DCM_S3SEVERTIMEOUT; /*S3server 计时计数值重新装载*/ - SeDcm_u_DiagnosticSession = DCM_DEFAULT_SESSION; /*会话模式默认模式*/ - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_DEFAULT; /*安全模式 锁定*/ - SeDcm_u_DtcSetSts = DCM_DTCSET_ENABLE; /*DTC设置使能*/ - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_ENABLE; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_ENABLE | (DCM_MSGTXRX_ENABLE<<1); /*应用报文收发使能*/ -} - -/*------------ boot add 394 -----------------*/ - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ExtendedSessionDeal(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 进入 扩展会话模式 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_ExtendedSessionDeal(void) - { - uint8 LaDcm_u_TempBuffer[6]; - TeDcm_h_ResultType LeDcm_u_Result; - if(SeDcm_u_DiagnosticSession != DCM_PROGRAMME_SESSION) - { - SeDcm_u_S3ServerTimeSts = DCM_S3SEVERTIMER_CONTINUE; /*S3server 计时继续*/ - SeDcm_w_S3ServerTime = DCM_S3SEVERTIMEOUT; /*S3server 计时计数值重新装载*/ - if(SeDcm_u_DiagnosticSession != DCM_EXTEND_SESSION) - { - SeDcm_u_DtcSetSts = DCM_DTCSET_ENABLE; /*DTC设置使能*/ - SeDcm_u_DiagnosticSession = DCM_EXTEND_SESSION; /*会话模式 扩展模式*/ - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_ENABLE; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_ENABLE | (DCM_MSGTXRX_ENABLE<<1); /*应用报文收发使能*/ - } - - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_DEFAULT; /*安全模式 锁定*/ - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - LaDcm_u_TempBuffer[2] = (uint8)(CeDcm_u_P2serverTime>>8); - LaDcm_u_TempBuffer[3] = (uint8)(CeDcm_u_P2serverTime&0xFF); - LaDcm_u_TempBuffer[4] = (uint8)(CeDcm_u_P2ExtserverTime>>8); - LaDcm_u_TempBuffer[5] = (uint8)(CeDcm_u_P2ExtserverTime&0xFF); - - //SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_L2_UNLOCK; /*置安全权限为 解锁状态 */ - - SetCanTp_TxBuffer(6U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - } - } - else - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7E]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - } - return LeDcm_u_Result; -} - -/****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_SoftResetDeal(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 11 03 请求软件复位 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -TeDcm_h_ResultType MngDcm_SoftResetDeal(void) -{ - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - static uint32 ResetDelayCnt; - uint32 Temp_ReprogmaValid; - - //重启ECU接口 - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - KamData.AckReq = ACK_REQ; - KamData.AckLenth = 3; - KamData.RspData[0] = 0x02; - KamData.RspData[1] = VeDcm_h_RqustInfo.Sid + 0x40; - KamData.RspData[2] = VeDcm_h_RqustInfo.Sub; - KamData.RspData[3] = 0xAA; - KamData.RspData[4] = 0xAA; - KamData.RspData[5] = 0xAA; - KamData.RspData[6] = 0xAA; - KamData.RspData[7] = 0xAA; - // LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - //LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - //SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - KamData.AckReq = 0; - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - } - - KamData.boot_enable = 0; - if(LeDcm_u_Result == CeDcm_e_ResultPosRsp) - { - //while(GetCanTxCmpltd() != 1){} - SetMcu_SoftReset(); - } - else - SetMcu_SoftReset(); - - return LeDcm_u_Result; -} - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RequestSeekDeal( uint8 SecurityLevel) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 27 请求种子 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RequestSeekDeal( uint8 SecurityLevel) - { - - uint8 LaDcm_u_TempBuffer[6]; - TeDcm_h_ResultType LeDcm_u_Result; - //SeDcm_u_KeyErrorDelayCount = 0; - - if(SaDcm_u_RequestCounter < 5) - { - SaDcm_u_RequestCounter++; - KamData.SeedReqTimes = SaDcm_u_RequestCounter | 0xB0; - if(SaDcm_u_RequestCounter == 5) - { - SaDcm_u_RequestDelayCount = DCM_SASERVERSTS_ERRORDELAY_COUNT; - SeDcm_u_KeyErrorCount = 3; - KamData.KeyErrTimes = SeDcm_u_KeyErrorCount | 0xB0; - } - }//fcb - - if(0==SeDcm_u_KeyErrorDelayCount && 0==SaDcm_u_RequestDelayCount) - { - if(SaDcm_u_RequestCounter == 5) - { - SaDcm_u_RequestCounter=0; - KamData.SeedReqTimes = 0; - } - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - if(MngDcm_GetSecurityAccessSts() != DCM_SECURITYACCESS_DEFAULT) - { - LaDcm_u_TempBuffer[2] = 0; - LaDcm_u_TempBuffer[3] = 0; - LaDcm_u_TempBuffer[4] = 0; - LaDcm_u_TempBuffer[5] = 0; - } - else - { - if(SaDcm_u_RequestCounter < 2) - SeDcm_w_SecurityAccessSeed = GetSeed(); - LaDcm_u_TempBuffer[2] = (uint8)(SeDcm_w_SecurityAccessSeed>>24)&0xFF; - LaDcm_u_TempBuffer[3] = (uint8)(SeDcm_w_SecurityAccessSeed>>16)&0xFF; - LaDcm_u_TempBuffer[4] = (uint8)(SeDcm_w_SecurityAccessSeed>>8)&0xFF; - LaDcm_u_TempBuffer[5] = (uint8)SeDcm_w_SecurityAccessSeed&0xFF; - } - SeDcm_u_SecurityAccessServerSts |= DCM_SASERVERSTS_REQUESTKEY; /*置27 服务为 已请求种子*/ - - SeDcm_u_SecurityAccessKey = GENERIC_ALGORITHM(SeDcm_w_SecurityAccessSeed,SecurityLevel); - - SetCanTp_TxBuffer(6U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - } - - } - else - { - /*设置NRC 37*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC37]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_KeyCkeckDeal(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 27 密钥校验 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_KeyCkeckDeal(uint8 dummy) - { - uint8 i; - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - uint32 LeDcm_w_Key; - - - if(DCM_SASERVERSTS_REQUESTKEY & SeDcm_u_SecurityAccessServerSts) - { - SaDcm_u_RequestCounter = 0; - KamData.SeedReqTimes = 0; - for(i = 0;i < DCM_SASERVER_KEYLENGTH;i++) /*获取客户端发送过来的密钥*/ - { - VeDcm_h_RqustInfo.Key[i] = VeDcm_P_DataAddress[i+2]; - } - - LeDcm_w_Key = ((uint32)VeDcm_h_RqustInfo.Key[0]<<24) + ((uint32)VeDcm_h_RqustInfo.Key[1]<<16) + ((uint32)VeDcm_h_RqustInfo.Key[2]<<8) + VeDcm_h_RqustInfo.Key[3]; - - if(LeDcm_w_Key != SeDcm_u_SecurityAccessKey) /*密钥校验*/ - //if(LeDcm_w_Key != SeDcm_w_SecurityAccessSeed) /*密钥校验*/ - { - SeDcm_u_KeyErrorCount++; /*密钥不符合 密钥错误数加1*/ - KamData.KeyErrTimes = SeDcm_u_KeyErrorCount | 0xB0; - } - else /*密钥验证通过*/ - { - SeDcm_u_KeyErrorCount = 0U; /*密钥错误次数清零*/ - KamData.KeyErrTimes = 0; - if(dummy == 0x02) - //SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_L1_UNLOCK; - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_L2_UNLOCK; /*置安全权限为 解锁状态 改为L2用于此项目 */ - else if(dummy == 0x12) - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_L2_UNLOCK; /*置安全权限为 解锁状态 */ - } - - if(0 == SeDcm_u_KeyErrorCount) /*密钥没有错误*/ - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - SeDcm_u_SecurityAccessServerSts = DCM_SECURITYACCESS_DEFAULT; /*置27 服务为 默认状态 */ - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - - - } - else if(SeDcm_u_KeyErrorCount>0&&SeDcm_u_KeyErrorCount>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SeDcm_u_RidFF02Sts = CeDcm_e_RidStart; /*置例程当前状态*/ - - //必要的化 插 78 - //处理函数 - RidFF02RunSts = Rid_Finish; - - SeDcm_u_RidFF02Sts = CeDcm_e_RidStop; /*置例程当前状态*/ - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SeDcm_u_RidFF02Sts = CeDcm_e_RidStart; /*置例程当前状态*/ - - //必要的化 插 78 - //处理函数 - RidFF02RunSts = Rid_Finish; - - SeDcm_u_RidFF02Sts = CeDcm_e_RidStop; /*置例程当前状态*/ - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - -RidRunSts_T GetRidFF02RunSts(void) -{ - return RidFF02RunSts; -} - -/*------------ boot add 766 -----------------*/ - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF00Start(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF00 开始 处理函数 - - *编辑时间 : 2015-11-03 - - *备注 : - *****************************************************************************/ -TeDcm_h_ResultType MngDcm_RoutineFF00Start(void) -{ - fsl_u08 ret; - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - uint32 Temp_AppValid; - uint32 LeDcm_w_Address; /*地址*/ - uint32 LeDcm_w_DataLength; /*数据长度*/ - uint8 BootCnt[16]; - /*提取地址参数*/ - LeDcm_w_Address = (((uint32)VeDcm_P_DataAddress[4])<<24U) + (((uint32)VeDcm_P_DataAddress[5])<<16U) + (((uint32)VeDcm_P_DataAddress[6])<<8U) + VeDcm_P_DataAddress[7]; - /*提取数据长度数*/ - LeDcm_w_DataLength = (((uint32)VeDcm_P_DataAddress[8])<<24U) + (((uint32)VeDcm_P_DataAddress[9])<<16U) + (((uint32)VeDcm_P_DataAddress[10])<<8U) + VeDcm_P_DataAddress[11]; - /* - if(DCM_DS_FLASHCRC_COMPLETE != SeDcm_u_DownLoadState) - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - return LeDcm_u_Result; - } - */ - if (LeDcm_w_DataLength > LeDcm_w_Address) - { - LeDcm_w_DataLength -= LeDcm_w_Address; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - - return LeDcm_u_Result; - } - - if((LeDcm_w_Address < 0xA000 || LeDcm_w_Address > 0x19FFF) || LeDcm_w_DataLength > 0x10000) - { - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - - return LeDcm_u_Result; - - } - if(CeDcm_e_RidStop == SeDcm_u_RidFF00Sts) - { - // 78 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); - SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); - - Temp_AppValid = 0xFFFFFFFF; - if( 0 == DF_Write(((unsigned char*)(&Temp_AppValid)),INDEX_APP_VALID,sizeof(Temp_AppValid))) //R_FDL_OK - { - // 78 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); - SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); - - if(LeDcm_w_Address >= 0xA000 && LeDcm_w_Address <= 0x19FFF) - { - ret = prFslStart(); - - if (FSL_OK == ret) - { - // 78 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); - SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); - ret = prFslErase(APP_START_BLOCK,APP_TOTAL_BLOCK); - SeDcm_u_DownLoadState = DCM_DS_ERASE_COMPLETE; - NOP(); - /**************************************************/ - GetRTE_Dcm_DidServices_0x0200_ReadData(BootCnt); - GetRTE_Dcm_DidServices_0x0201_ReadData(BootCnt + 8); - if(BootCnt[8] == 0xFF) - BootCnt[8] = 1; - else - BootCnt[8]++; - - if (FSL_OK == prFslStart()) - { - prFslErase(104,1); - prFslWrite(DID_0200_ADDR,(fsl_u08*)BootCnt,16); - } - /**************************************************/ - } - if(FSL_OK == ret) - { - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SeDcm_u_RidFF00Sts = CeDcm_e_RidStart; /*置例程当前状态*/ - - - SeDcm_u_RidFF00Sts = CeDcm_e_RidStop; /*置例程当前状态*/ - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC72]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - } - else - { - //MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - //SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - //LeDcm_u_Result = CeDcm_e_ResultNegRsp; - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_FAILURE; - - SeDcm_u_RidFF00Sts = CeDcm_e_RidStart; /*置例程当前状态*/ - - - SeDcm_u_RidFF00Sts = CeDcm_e_RidStop; /*置例程当前状态*/ - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC72]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - } - else - { - /*设置NRC 24*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF01Start(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF01 开始 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : -*****************************************************************************/ -TeDcm_h_ResultType MngDcm_RoutineFF01Start(void) -{ - uint8 LaDcm_u_TempBuffer[5]; - uint8 BootCnt[16]; - TeDcm_h_ResultType LeDcm_u_Result; -#if 1 - if(CeDcm_e_RidStop == SeDcm_u_RidFF01Sts) - { - //处理函数 - if(DCM_DS_APPCRC_COMPLETE != SeDcm_u_DownLoadState) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_FAILURE; - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - - - return LeDcm_u_Result; - } - if((GetAppValid() == APP_VALID)&&(GetAppEndValid() == APP_VALID)) - { - GetRTE_Dcm_DidServices_0x0200_ReadData(BootCnt); - GetRTE_Dcm_DidServices_0x0201_ReadData(BootCnt + 8); - if(BootCnt[0] == 0xFF) - BootCnt[0] = 1; - else - BootCnt[0]++; - BootCnt[8]=0; //下载成功后201清零 - if (FSL_OK == prFslStart()) - { - prFslErase(104,1); - prFslWrite(DID_0200_ADDR,(fsl_u08*)BootCnt,16); - } - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SeDcm_u_RidFF01Sts = CeDcm_e_RidStart; /*置例程当前状态*/ - - SeDcm_u_RidFF01Sts = CeDcm_e_RidStop; /*置例程当前状态*/ - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_FAILURE; - - SeDcm_u_RidFF01Sts = CeDcm_e_RidStart; /*置例程当前状态*/ - - SeDcm_u_RidFF01Sts = CeDcm_e_RidStop; /*置例程当前状态*/ - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - } - else - { - /*设置NRC 24*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } -#endif - return LeDcm_u_Result; -} - -/*------------ boot add 766-----------------*/ - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF02Stop(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF02 停止 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineFF02Stop(void) - { - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - - - if(CeDcm_e_RidStart == SeDcm_u_RidFF02Sts) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF02Stop(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF00 停止 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineFF00Stop(void) - { - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(CeDcm_e_RidStart == SeDcm_u_RidFF00Sts) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - -/****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF02Result(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF01 停止 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineFF01Stop(void) - { - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(CeDcm_e_RidStart == SeDcm_u_RidFF01Sts) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - - -/****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF02Result(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF02 请求结果 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineFF02Result(void) - { - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(CeDcm_e_RidStop == SeDcm_u_RidFF02Sts) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF00Result(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF00 请求结果 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineFF00Result(void) - { - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(CeDcm_e_RidStop == SeDcm_u_RidFF00Sts) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineFF01Result(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 31 服务 FF01 请求结果 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineFF01Result(void) - { - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(CeDcm_e_RidStop == SeDcm_u_RidFF01Sts) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 24*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - - -TeDcm_h_ResultType MngDcm_Routine0202Start(void) -{ -/*------------ boot add 1245 -----------------*/ - static uint32 CrcValue; - uint32 Temp_AppValid,Temp_ReprogramValid; - uint8 LaDcm_u_TempBuffer[5]; - TeDcm_h_ResultType LeDcm_u_Result; - // 78 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); - SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); - - if(CeDcm_e_RidStop == SeDcm_u_RidF001Sts) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - LaDcm_u_TempBuffer[3] = VeDcm_h_RqustInfo.Rid&0xFF; - LaDcm_u_TempBuffer[2] = VeDcm_h_RqustInfo.Rid>>8; - CrcValue = (((uint32)VeDcm_P_DataAddress[4])<<24U) + (((uint32)VeDcm_P_DataAddress[5])<<16U) + (((uint32)VeDcm_P_DataAddress[6])<<8U) + VeDcm_P_DataAddress[7]; - - if(FLASH_DRIVER_ADDR == SeFCL_Programing_dw_FlashAddr) - {//Flash Driver - if(CrcValue == GetCrc32_Ram(0xFFFFFFFF,FLASH_DRIVER_ADDR,FLASH_DRIVER_SIZE)) - { - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - SeDcm_u_DownLoadState = DCM_DS_FLASHCRC_COMPLETE; - } - else - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_FAILURE; - } - else - { - if(CrcValue == GetCrc32(0xFFFFFFFF,APP_START_ADDR,APP_SIZE)) - { - KamData.boot_enable = 0; - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_SUCCESS; - SeDcm_u_DownLoadState = DCM_DS_APPCRC_COMPLETE; - } - else - LaDcm_u_TempBuffer[4] = DCM_RIDRESULT_FAILURE; - } - - SetCanTp_TxBuffer(5U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - /*设置NRC 24*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; -/*------------ boot add 1245 -----------------*/ -} - -TeDcm_h_ResultType MngDcm_Routine0202Stop(void) -{ - -} -TeDcm_h_ResultType MngDcm_Routine0202Result(void) -{ - -} - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_EnableCommunication(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 28 允许通讯 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_CtrlCommunication(uint8 CommunicationType) - { - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(SeDcm_u_DiagnosticSession != DCM_EXTEND_SESSION) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - return CeDcm_e_ResultNoRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7F]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - return CeDcm_e_ResultNoRsp; - } - } - - if( (CommunicationType >= 1) && ( CommunicationType <= 3)) - { - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - if( CommunicationType == 3) - { - SeDcm_u_NetworkMsgSts = 3 - VeDcm_h_RqustInfo.Sub; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = 3 - VeDcm_h_RqustInfo.Sub; /*应用报文收发使能*/ - } - else if(CommunicationType == 1) - SeDcm_u_NormalMsgSts = 3 - VeDcm_h_RqustInfo.Sub; /*应用报文收发使能*/ - else - SeDcm_u_NetworkMsgSts = 3 - VeDcm_h_RqustInfo.Sub; /*网络管理报文收发使能*/ - - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - } - else - { - /*设置NRC 31*/ - - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_Result; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_DisenableCommunication(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 28 禁止通讯 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_DisenableCommunication(void) - { - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_DISENABLE; /*网络管理报文收发关闭*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_DISENABLE; /*应用报文收发关闭*/ - - - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - - return LeDcm_u_Result; - } - - uint8 GetNormalMsgSts(void) - { - return (SeDcm_u_NormalMsgSts); - } - - uint8 GetNetworkMsgSts(void) - { - return(SeDcm_u_NetworkMsgSts); - } - - unsigned char SX11GetNormalMsgSts(void) - { - return (3 - SeDcm_u_NormalMsgSts); - } - - unsigned char SX11GetNetworkMsgSts(void) - { - return(3 - SeDcm_u_NetworkMsgSts); - } - - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_TesterPresentDeal(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 3E 诊断在线 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_TesterPresentDeal(void) - { - - - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - - SeDcm_w_S3ServerTime = DCM_S3SEVERTIMEOUT; /*重置S3server计时*/ - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - - return LeDcm_u_Result; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_DTCSettingEnable(void) - - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 85 DTC 设置使能 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_DTCSettingEnable(void) - { - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - uint8 temp; - - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty && (SeDcm_u_DiagnosticSession != DCM_EXTEND_SESSION)) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - return CeDcm_e_ResultNoRsp; - } - - SeDcm_u_DtcSetSts = DCM_DTCSET_ENABLE; - //DtcStutasInit(); - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - - return LeDcm_u_Result; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_DTCSettingDisenable(void) - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 85 DTC 设置禁止 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_DTCSettingDisenable(void) - { - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_Result; - - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty && (SeDcm_u_DiagnosticSession != DCM_EXTEND_SESSION)) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - return CeDcm_e_ResultNoRsp; - } - - SeDcm_u_DtcSetSts = DCM_DTCSET_DISENABLE; - - if(_FALSE == (VeDcm_h_RqustInfo.Sub&0x80)) /*判断正响应抑制位*/ - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = VeDcm_h_RqustInfo.Sub; - - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultPosRsp; - } - else - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_Result = CeDcm_e_ResultNoRsp; - } - - return LeDcm_u_Result; - } - - - uint8 GetDtcEnable(void) - { - return SeDcm_u_DtcSetSts; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_DynamicaDefineNewDid(void) - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 2C 创建新动态DID 处理函数 - - *编辑时间 : 2016-12-25 - - *备注 : - *****************************************************************************/ - - TeDcm_h_ResultType MngDcm_DynamicaDefineNewDid(void) - { - TeDcm_h_ResultType LeDcm_u_Result; - /*设置NRC22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; /*负响应*/ - return LeDcm_u_Result; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ClearDynamicaDid(void) - *参数 : void - - *返回值 : LeDcm_u_Result 处理结果 - - *描述 : 2C 创建新动态DID 处理函数 - - *编辑时间 : 2016-12-25 - - *备注 : - *****************************************************************************/ - - TeDcm_h_ResultType MngDcm_ClearDynamicaDid(void) - { - TeDcm_h_ResultType LeDcm_u_Result; - /*设置NRC22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_Result = CeDcm_e_ResultNegRsp; /*负响应*/ - return LeDcm_u_Result; - } - - /****************************************************************************** - *函数名称 : void MngDcm_ChangeToDefaltSession(void) - - *参数 : void - - *返回值 : void - - *描述 : 跳转到 默认会话模式 处理函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void MngDcm_ChangeToDefaltSession(void) -{ -/*------------ boot add -----------------*/ - uint32 Temp_ReprogmaValid; - if(DCM_PROGRAMME_SESSION == SeDcm_u_DiagnosticSession) - { - - KamData.boot_enable = 0; - SetMcu_SoftReset(); - } -/*------------ boot add -----------------*/ - - SeDcm_u_S3ServerTimeSts = DCM_S3SEVERTIMER_STOP; /*S3server 计时停止*/ - SeDcm_u_DiagnosticSession = DCM_DEFAULT_SESSION; /*会话模式 默认模式*/ - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_DEFAULT; /*安全模式锁定*/ - SeDcm_u_DtcSetSts = DCM_DTCSET_ENABLE; /*DTC设置使能*/ - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_ENABLE; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_ENABLE | (DCM_MSGTXRX_ENABLE<<1); /*应用报文收发使能*/ - -} - - /****************************************************************************** - *函数名称 : void MngDcmS3ServerAndKeyErrorCountCutDown(void) - - *参数 : void - - *返回值 : void - - *描述 : S3ServerTime 计数自减 - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void MngDcmS3ServerCountCutDown(void) -{ - if(SeDcm_w_S3ServerTime > 0) - { - SeDcm_w_S3ServerTime--; - } - -} - - -/****************************************************************************** - *函数名称 : void MngDcmKeyErrorDelayCountCutDown(void) - - *参数 : void - - *返回值 : void - - *描述 : 密钥错误超出允许次数 延时 计数自减 - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void MngDcmKeyErrorDelayCountCutDown(void) -{ - if(SeDcm_u_KeyErrorDelayCount > 0) - { - SeDcm_u_KeyErrorDelayCount--; - if(SeDcm_u_KeyErrorDelayCount == 0) - { - SeDcm_u_KeyErrorCount = 0U; - KamData.KeyErrTimes = 0; - } - - } - if(SaDcm_u_RequestDelayCount > 0) - { - SaDcm_u_RequestDelayCount--; - if(SaDcm_u_RequestDelayCount == 0) - { - SaDcm_u_RequestCounter = 0U; - KamData.SeedReqTimes = 0; - } - } -} - - - - - -/****************************************************************************** - *函数名称 : void MngDcm_PrepareNegRsp(uint8 LeDcm_u_Sid,uint8 LeDcm_u_Nrc) - - *参数 : LeDcm_u_Sid 请求的sid 要回应的NRC的索引 - - *返回值 : void - - *描述 : 整理负响应数据 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void MngDcm_PrepareNegRsp(uint8 LeDcm_u_Sid,uint8 LeDcm_u_Nrc) -{ - VaDcm_u_NegRspTxBuffer[0] = 0x7F; /*负响应*/ - VaDcm_u_NegRspTxBuffer[1] = LeDcm_u_Sid; /*sid*/ - VaDcm_u_NegRspTxBuffer[2] = LeDcm_u_Nrc; /*NRC*/ -} - - - -/****************************************************************************** - *函数名称 : void MngDcm_PrepareNegRsp(uint8 LeDcm_u_Sid,uint8 LeDcm_u_Nrc) - - *参数 : TargetAddress 目标数组,TargetPost 目标数组的起始位置,SourceAddress 源数组,SourcePost 源数组位置, - DataLength 需移动的数据长度 - - *返回值 : void - - *描述 : 移动数据 处理 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -void MngDcm_DataMoveDeal(uint8* TargetAddress,uint8 TargetPost,uint8* SourceAddress,uint8 SourcePost,uint8 DataLength) -{ - - uint8 i; - - for(i = 0;i < DataLength; i ++) - { - TargetAddress[TargetPost + i] = SourceAddress[SourcePost + i]; - - } - -} - - - /****************************************************************************** - *函数名称 :TeDcm_h_ResultType MngDcm_RequestDownloadService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 34 服务函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_34AddrChk(uint32 Addr,uint32 Size) -{ - if(((Addr == APP_START_ADDR) && (Size == APP_SIZE)) || (((Addr == FLASH_DRIVER_ADDR) && (Size == FLASH_DRIVER_SIZE))||(Addr == DM_FLASH_DRIVER_ADDR))) - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} -TeDcm_h_ResultType MngDcm_RequestDownloadService(void) -{ - uint8 LeDcm_u_dataFomatldentifier; /*数据格式*/ - uint8 LeDcm_u_addressAndLengthFomatldentifier; /*地址和数据长度格式*/ - uint32 LeDcm_w_Address; /*地址*/ - uint32 LeDcm_w_DataLength; /*数据长度*/ - uint8 LeDcm_u_SidIndex; - uint8 LeDcm_u_SecurityAccessCheckResult; - uint8 LaDcm_u_TempBuffer[6]; - uint8 BootCnt[16]; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - - LeDcm_u_dataFomatldentifier = VeDcm_P_DataAddress[1]; - LeDcm_u_addressAndLengthFomatldentifier = VeDcm_P_DataAddress[2]; - - /*提取地址参数*/ - LeDcm_w_Address = (((uint32)VeDcm_P_DataAddress[3])<<24U) + (((uint32)VeDcm_P_DataAddress[4])<<16U) + (((uint32)VeDcm_P_DataAddress[5])<<8U) + VeDcm_P_DataAddress[6]; - /*提取数据长度数*/ - LeDcm_w_DataLength = (((uint32)VeDcm_P_DataAddress[7])<<24U) + (((uint32)VeDcm_P_DataAddress[8])<<16U) + (((uint32)VeDcm_P_DataAddress[9])<<8U) + VeDcm_P_DataAddress[10]; - - SeFCL_Programing_dw_FlashAddr = LeDcm_w_Address; - SeFCL_Programing_dw_DataLen = LeDcm_w_DataLength; - - if((DCM_DATAFOMATLDENTIFER == LeDcm_u_dataFomatldentifier)&&(LeDcm_u_addressAndLengthFomatldentifier == DCM_ADDRESSANDLENGTHFOMATLDENTIFER)) - { - if(VeDcm_h_RqustInfo.DL == 11U) - { - if(DCM_CHECK_OK == MngDcm_34AddrChk(LeDcm_w_Address,LeDcm_w_DataLength)) - { - - if((DM_FLASH_DRIVER_ADDR == SeFCL_Programing_dw_FlashAddr) || (FLASH_DRIVER_ADDR == SeFCL_Programing_dw_FlashAddr)) - { - SeFCL_Programing_dw_FlashAddr = FLASH_DRIVER_ADDR; - SeFCL_Programing_dw_DataLen = FLASH_DRIVER_SIZE; - /* - GetRTE_Dcm_DidServices_0x0200_ReadData(BootCnt); - GetRTE_Dcm_DidServices_0x0201_ReadData(BootCnt + 8); - if(BootCnt[8] == 0xFF) - BootCnt[8] = 1; - else - BootCnt[8]++; - - if (FSL_OK == prFslStart()) - { - prFslErase(104,1); - prFslWrite(DID_0200_ADDR,(fsl_u08*)BootCnt,16); - } - */ - CaDcm_w_SingleAllowDateLength = 0x0042; - } - else - { - CaDcm_w_SingleAllowDateLength = 0x0202; - SeFCL_Programing_dw_FlashAddr = APP_START_ADDR; - SeFCL_Programing_dw_DataLen = 0x10000; - if(SeDcm_u_DownLoadState != DCM_DS_ERASE_COMPLETE) - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC70]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - return LeDcm_u_FinallyResult; - } - else - { - SeDcm_u_DownLoadState = DCM_DS_APPDOWNLOAD_REQUEST; - } - } - - LeDcm_u_SidIndex = MngDcm_SIDCheckAvailable(VeDcm_h_RqustInfo.Sid); - LeDcm_u_SecurityAccessCheckResult = MngDcm_SIDCheckSecurityAccess(LeDcm_u_SidIndex); - - if(DCM_CHECK_OK == LeDcm_u_SecurityAccessCheckResult) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = DCM_LENGTHFOMATLDENTIFER; - LaDcm_u_TempBuffer[3] = (uint8)(CaDcm_w_SingleAllowDateLength&0xFF); /*单次允许的最大数据 低字节*/ - LaDcm_u_TempBuffer[2] = (uint8)(CaDcm_w_SingleAllowDateLength>>8); /*单次允许的最大数据 高字节*/ - SetCanTp_TxBuffer(4U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadRequested; /*置数据下载状态为 已请求下载*/ - SeDcm_w_DownLoadDataLength = LeDcm_w_DataLength; /*记录 34 请求下载的数据长度*/ - SeDcm_w_TransmitDataCount = 0U; - - LeDcm_u_FinallyResult = CeDcm_e_ResultPosRsp; - - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC70]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - return LeDcm_u_FinallyResult; -} - - /****************************************************************************** - *函数名称 : - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 36 服务函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - -TeDcm_h_ResultType MngDcm_TransmitDataService(void) -{ - uint16 LeDcm_w_SingleTransmitDataCount; - uint8 LeDcm_u_BlockSequenceCount; - uint8 LeDcm_u_BlockExpect; - uint8 LaDcm_u_TempBuffer[6]; /*响应数据缓存数组*/ - TeDcm_h_ResultType LeDcm_u_FinallyResult; - static uint16 ProgramByteCnt; - static uint16 RemaindProgramByteCnt,LastRemaindProgramByteCnt; - static uint8 ProgramDataBuf[1024]; - uint8 *pWriteBuf; - fsl_u08 LeDcm_FCC_Ret; - uint16 TempCnt,TempCnt1; - static uint16 FlashDrvCpyCnt; - unsigned char *flashdata; - - if(CeDcm_e_DownLoadRequested==SeDcm_u_DownLoadDataSts||CeDcm_e_DownLoadDuringTransmit == SeDcm_u_DownLoadDataSts||CeDcm_e_DownLoadTransmited == SeDcm_u_DownLoadDataSts) - { - LeDcm_w_SingleTransmitDataCount = VeDcm_h_RqustInfo.DL - 2U; /*提取传输的数据量 剔除服务参数字节*/ - SeDcm_w_TransmitDataCount = SeDcm_w_TransmitDataCount + LeDcm_w_SingleTransmitDataCount; /*记录传输数据量*/ - /*判断传输数据累计是否超过 请求下载的数据量 单次传输长度是否超出 34服务回应的允许的数据量*/ - - LeDcm_u_BlockSequenceCount = VeDcm_P_DataAddress[1]; /*提取 36 请求参数 BlockSequenceCount*/ - LeDcm_u_BlockExpect = (uint8)(((uint16)SeDcm_u_BlockSequenceCountSts + 1)&0x00ff); - if((uint32_t)LeDcm_w_SingleTransmitDataCount * LeDcm_u_BlockSequenceCount <= APP_SIZE) - { - if(VeDcm_h_RqustInfo.DL != CaDcm_w_SingleAllowDateLength)/*MaxNumberofBlockLength*/ - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据 */ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - return LeDcm_u_FinallyResult; - } - - if(((0x01 == LeDcm_u_BlockSequenceCount)&&(SeDcm_u_DownLoadDataSts == CeDcm_e_DownLoadRequested)) - || (((LeDcm_u_BlockSequenceCount== LeDcm_u_BlockExpect)||(LeDcm_u_BlockSequenceCount == LeDcm_u_BlockExpect-1))&&(SeDcm_u_DownLoadDataSts == CeDcm_e_DownLoadDuringTransmit||CeDcm_e_DownLoadTransmited == SeDcm_u_DownLoadDataSts))) - { - if((0x01 == LeDcm_u_BlockSequenceCount)&&(SeDcm_u_DownLoadDataSts == CeDcm_e_DownLoadRequested)) - { - RemaindProgramByteCnt = 0; - FlashDrvCpyCnt = 0; - SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadDuringTransmit; /*置数据下载状态为 正在传输*/ - } - //如果SequenceCount不变,覆盖缓冲区 - if((LeDcm_u_BlockSequenceCount == LeDcm_u_BlockExpect-1) && (FLASH_DRIVER_ADDR != SeFCL_Programing_dw_FlashAddr)) - { - flashdata = (unsigned char *)LastSeFCL_Programing_dw_FlashAddr; - for(TempCnt=0;TempCnt>8; /* 上次剩余数据长度及本次数据长度之和 ,取0x100整数倍 */ - for(TempCnt = 0;(RemaindProgramByteCnt + TempCnt) < (ProgramByteCnt<<8);TempCnt++) - ProgramDataBuf[RemaindProgramByteCnt + TempCnt] = VeDcm_P_DataAddress[TempCnt + 2]; /* 转移0x100整数倍数据到专用缓冲区 */ - - - if(ADval_Power<285) - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC93]); /*整理负响应数据 传输数据暂停*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - else if(ADval_Power>574) - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC92]); /*整理负响应数据 传输数据暂停*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - if(VeDcm_h_RqustInfo.DL == CaDcm_w_SingleAllowDateLength)/*MaxNumberofBlockLength*/ - { - SeDcm_u_BlockSequenceCountSts = LeDcm_u_BlockSequenceCount; - - - if(SeDcm_w_TransmitDataCount == SeDcm_w_DownLoadDataLength) /* 目标接收长度接收完成 */ - { - SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadTransmited; /*置数据下载状态为 传输完毕*/ - RemaindProgramByteCnt = LeDcm_w_SingleTransmitDataCount + RemaindProgramByteCnt - (ProgramByteCnt<<8); - SeDcm_w_TransmitDataCount = 0U; - if(RemaindProgramByteCnt > 0) - ProgramByteCnt += 1; - for(TempCnt1 = 0;TempCnt1 < RemaindProgramByteCnt ;TempCnt++,TempCnt1++) - ProgramDataBuf[RemaindProgramByteCnt + TempCnt] = VeDcm_P_DataAddress[TempCnt + 2]; /* 转移0x100整数倍数据到专用缓冲区 */ - for(;(RemaindProgramByteCnt + TempCnt) < (ProgramByteCnt<<8);TempCnt++) /* 数据全部传输完成,如果数据不满足0x100整数倍,则填入0xFF */ - ProgramDataBuf[RemaindProgramByteCnt + TempCnt] = 0xFF; - RemaindProgramByteCnt = 0; - } - LastRemaindProgramByteCnt = RemaindProgramByteCnt; - RemaindProgramByteCnt = LeDcm_w_SingleTransmitDataCount + RemaindProgramByteCnt - (ProgramByteCnt<<8); - if(FLASH_DRIVER_ADDR == SeFCL_Programing_dw_FlashAddr) /* Flash Driver*/ - { - for(TempCnt1 = 2;FlashDrvCpyCnt < SeFCL_Programing_dw_DataLen;) - { - fsl_code_buf[FlashDrvCpyCnt++] = VeDcm_P_DataAddress[TempCnt1++]; - if(TempCnt1 >= (LeDcm_w_SingleTransmitDataCount + 2)) - break; - } - //if(ADval_Power>262 && ADval_Power<621) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = LeDcm_u_BlockSequenceCount; - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultPosRsp; - } - - } - else - { - //78响应 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); /*整理负响应数据*/ - SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - - if (FSL_OK == prFslStart()) - { - pWriteBuf = ProgramDataBuf; - LastSeFCL_Programing_dw_FlashAddr = SeFCL_Programing_dw_FlashAddr; - for(;ProgramByteCnt > 0;ProgramByteCnt--) - { - //78响应 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC78]); /*整理负响应数据*/ - SetCanTp_Tx_78Neg(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - //调用接口 编程 - LeDcm_FCC_Ret = prFslWrite(SeFCL_Programing_dw_FlashAddr,(fsl_u08*)pWriteBuf,0x100); - SeFCL_Programing_dw_FlashAddr += 0x100; - pWriteBuf += 0x100; - } - } - if(LeDcm_FCC_Ret == FSL_OK) - { - LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LaDcm_u_TempBuffer[1] = LeDcm_u_BlockSequenceCount; - SetCanTp_TxBuffer(2U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - //SeFCL_Programing_dw_FlashAddr += (ProgramByteCnt<<8); - for(TempCnt += 2,TempCnt1 = 0;TempCnt1 < RemaindProgramByteCnt;TempCnt++,TempCnt1++) - ProgramDataBuf[TempCnt1] = VeDcm_P_DataAddress[TempCnt]; /* 转移取出的0x100整数倍数据盛夏的数据转移到专用缓冲区 */ - - LeDcm_u_FinallyResult = CeDcm_e_ResultPosRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC11]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据 */ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - } - else - { - //20190112更改36服务超出最大区块时发NRC31 - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC73]); /*整理负响应数据 快序列错误*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - - } - - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据 传输数据暂停*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据 请求顺序错误 */ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - return LeDcm_u_FinallyResult; -} - - /****************************************************************************** - *函数名称 : - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 37 服务函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - -TeDcm_h_ResultType MngDcm_TransmitExitService(void) -{ - uint8 LaDcm_u_TempBuffer[2]; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - //SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadTransmited; - - if(SeDcm_u_DownLoadDataSts == CeDcm_e_DownLoadTransmited) - { - if((VeDcm_h_RqustInfo.DL == 1U))// ||(VeDcm_h_RqustInfo.DL == 2U)) - { - LaDcm_u_TempBuffer[0] = LaDcm_u_TempBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - SetCanTp_TxBuffer(1U,LaDcm_u_TempBuffer); /*调用接口发送响应数据*/ - SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadRelax; /*置数据下载状态为 退出传输 空闲状态*/ - SeDcm_u_RidF001Sts = CeDcm_e_RidStop; -#if 0 - SetFCC_Programing_Finish(); -#endif - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC24]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - return LeDcm_u_FinallyResult; -} - - -/****************************************************************************** - *函数名称 : void InitDcm_Parameter (void) - - *参数 : void - - *返回值 : void - - *描述 : DCM 初始化函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - void InitDcm_Parameter (void) - { - SeDcm_u_DiagnosticSession = DCM_DIAGNOSTIC_SESSION_DEFAULT; /*会话模式 默认会话*/ - SeDcm_u_SecurityAccessState = DCM_SECURITYACCESS_DEFAULT; /*安全模式 锁定状态*/ - SeDcm_u_DtcSetSts = DCM_DTCSET_ENABLE; /*DTC设置使能*/ - SeDcm_u_NetworkMsgSts = DCM_MSGTXRX_ENABLE; /*网络管理报文收发使能*/ - SeDcm_u_NormalMsgSts = DCM_MSGTXRX_ENABLE |(DCM_MSGTXRX_ENABLE<<1); /*应用报文收发使能*/ - SeDcm_u_KeyErrorDelayCount = 0;//DCM_SASERVERSTS_ERRORDELAY_COUNT_DEFAULT; /*默认27服务上电延时*/ - SeDcm_u_SecurityAccessServerSts = DCM_SECURITYACCESS_DEFAULT; /*置27 服务为 默认状态 */ - SeDcm_u_KeyErrorCount = 0U; /*置27 密钥错误次数初始为0 */ - SaDcm_u_RequestCounter = KamData.SeedReqTimes; - SeDcm_u_KeyErrorCount = KamData.KeyErrTimes; /*读取储存的次数*/ - - if((SaDcm_u_RequestCounter>>4)==0x0B)SaDcm_u_RequestCounter &= 0x0F; - else SaDcm_u_RequestCounter = 0; - - if((SeDcm_u_KeyErrorCount>>4)==0x0B)SeDcm_u_KeyErrorCount &= 0x0F; - else SeDcm_u_KeyErrorCount = 0; - - if(SeDcm_u_KeyErrorCount >= 3 ) - { - SeDcm_u_KeyErrorDelayCount = DCM_SASERVERSTS_ERRORDELAY_COUNT; - } - SeDcm_u_DownLoadDataSts = CeDcm_e_DownLoadRelax; /*置下载处理状态为 空闲*/ - - SeDcm_u_RidFF02Sts = CeDcm_e_RidStop; /*置例程初始状态*/ - SeDcm_u_RidFF00Sts = CeDcm_e_RidStop; - SeDcm_u_RidFF01Sts = CeDcm_e_RidStop; - - RidFF02RunSts = Rid_Idle; - //DtcInit(); - } - -/****************************************************************************** - *函数名称 : uint16 MngDcm_GetS3serverTime() - - *参数 : void - - *返回值 : SeDcm_w_S3ServerTime S3ServerTime当前计数值 - - *描述 : 获取S3ServerTime当前计数值 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint16 MngDcm_GetS3serverTime(void) -{ - return SeDcm_w_S3ServerTime; -} - -void MngDcm_ResetS3serverTime(void) -{ - SeDcm_w_S3ServerTime = DCM_S3SEVERTIMEOUT; -} -/****************************************************************************** - *函数名称 : uint8 MngDcm_GetS3serverTimeSts(void) - - *参数 : void - - *返回值 : SeDcm_u_S3ServerTimeSts S3ServerTime当前计数 计数状态 - - *描述 : 获取S3ServerTime当前计数 计数状态 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_GetS3serverTimeSts(void) -{ - return SeDcm_u_S3ServerTimeSts; -} - - -/****************************************************************************** - *函数名称 :uint8 MngDcm_GetDiagnosticSession(void) - - *参数 : void - - *返回值 : SeDcm_u_DiagnosticSession 当前会话模式 - - *描述 : 获取当前会话模式 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_GetDiagnosticSession(void) -{ - return SeDcm_u_DiagnosticSession; -} - -/****************************************************************************** - *函数名称 :uint8 MngDcm_GetSecurityAccessSts(void) - - *参数 : void - - *返回值 : SeDcm_u_SecurityAccessState 当前安全权限 - - *描述 : 获取当前安全权限 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_GetSecurityAccessSts(void) -{ - return SeDcm_u_SecurityAccessState; -} - diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_App.h b/ECU_BOOT/diagnose/Dcm/Dcm_App.h deleted file mode 100644 index b7b0e64..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_App.h +++ /dev/null @@ -1,241 +0,0 @@ - -#ifndef DCM_APP_H -#define DCM_APP_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ - -#include "Dcm_App_Cfg.h" -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ -#define SetMcu_SoftReset() do{WDTE = 0x00;}while(1) - - -#define DCM_PHYSICAL_ADDRESS 0x01 /* 宏定寻址方式 */ -#define DCM_FUNCTIONAL_ADDRESS 0x02 - -#define DCM_DEFAULT_SESSION 0x01 /* 默认模式 */ -#define DCM_PROGRAMME_SESSION 0x02 /* 编程模式 */ -#define DCM_EXTEND_SESSION 0x04 /* 扩展模式 */ -#define DCM_DIAGNOSTIC_SESSION_DEFAULT DCM_DEFAULT_SESSION /* 上电默认诊断会话模式 */ - -#define DCM_SECURITYACCESS_L2_UNLOCK 0x07 /*解锁状态*/ -#define DCM_SECURITYACCESS_L1_UNLOCK 0x06 /*L1解锁状态*/ -#define DCM_SECURITYACCESS_DEFAULT 0x04 /*默认安全状态状态*/ - -#define DCM_SECURITY_LEVEL_DEFAULT 0x07 -#define DCM_SECURITYACCESS_LEVEL_L1 0x03 -#define DCM_SECURITYACCESS_LEVEL_L2 0x01 -#define DCM_SECURITYACCESS_LEVEL_L11 0x03 -#define DCM_SECURITYACCESS_LEVEL_L12 0x01 - -#define DCM_19SUPMASK 0x09 /*19服务的有效掩码*/ -#define DCM_15031_6_DTCFORMAT 0x00 /*DTC格式*/ - -#define DCM_DTCSET_ENABLE 1U /*DTC设置使能*/ -#define DCM_DTCSET_DISENABLE 0U /*DTC设置关闭*/ - -#define DCM_MSGTXRX_ENABLE 1U /*报文收发状态 使能*/ -#define DCM_MSGTXRX_DISENABLE 0U /*报文收发状态 关闭*/ - -#define DCM_SASERVERSTS_DEFAULT 0U /*27服务状态机 默认状态 初始状态*/ -#define DCM_SASERVERSTS_REQUESTKEY (0x80)//1U /*27服务状态机 已请求种子*/ -#define DCM_SASERVERSTS_UNLOCK 2U /*27服务状态机 已解锁*/ -#define DCM_SASERVERSTS_ERROR 4U /*27服务状态机 密钥错误延时*/ - - -#define DCM_S3SEVERTIMER_STOP 0U /*S3ServerTime 计时停止*/ -#define DCM_S3SEVERTIMER_CONTINUE 1U /*S3ServerTime 计时继续*/ - -#define DCM_DTCDATA_MAXLENGTH 36 /*DTC列表最大数据量*/ - -#define DCM_TXBUFFER_LENGTH 105U /*发送buffer的长度*/ - -#define DCM_SASERVER_KEYLENGTH 4U /*密钥长度*/ -#define DCM_SASERVER_KEYERRORCOUNT 3U /*允许密钥错误次数*/ - -#define DCM_RIDRESULT_SUCCESS 0x04 /*历程处理成功*/ -#define DCM_RIDRESULT_FAILURE 0x05 /*历程处理失败*/ - -#define DCM_RIDRUNSTS_FINISH 0x01 -#define DCM_RIDRUNSTS_IDLE 0x00 - -#define DCM_READDID_MAXNUMBER 5U /*22 一次性读取的DID 最大个数*/ -#define DCM_WRITEDATA_MAXLENGTH 20U /*2E服务写入数据最大长度*/ - - - -#define DCM_SASERVERSTS_ERRORDELAY_COUNT 10000U /*密钥错误延时*/ -#define DCM_SASERVERSTS_ERRORDELAY_COUNT_DEFAULT 10000U /*密钥错误延时 上电默认值*/ - -#define DCM_S3SEVERTIMEOUT 5000U /*S3ServerTime计时超时计数量标定*/ - - -#define DCM_DATAFOMATLDENTIFER 0x00 /*34 服务参数 数据格式*/ -#define DCM_ADDRESSANDLENGTHFOMATLDENTIFER 0x44 /*34 服务参数 地址和数据长度格式*/ -#define DCM_DOWNLOAD_MINADDRESS 0x00000000 /*34 服务参数 最小地址*/ -#define DCM_DOWNLOAD_MAXADDRESS 0xFFFFFFFF /*34 服务参数 最大地址*/ -#define DCM_DOWNLOAD_MAXDATALENGTH 0xFFF /*34 服务参数 最长数据长度*/ -#define DCM_LENGTHFOMATLDENTIFER 0x20 /*34 服务参数 正响应里的 数据长度格式*/ -#define DCM_DOWNLOAD_RECEIVEDATALENGTH 0x0400 /*36 服务 接收数据缓存数组长度*/ - - -/***************************************************/ -#define DCM_DS_FLASHDOWNLOAD_COMPLETE 0x02 -#define DCM_DS_FLASHCRC_COMPLETE 0x03 -#define DCM_DS_ERASE_COMPLETE 0x04 -#define DCM_DS_APPDOWNLOAD_REQUEST 0x05 -#define DCM_DS_APPCRC_COMPLETE 0x06 - - -/****************************************************************************** - * Description: : Structure Type Declaration Section -******************************************************************************/ -/*@结构类型typedef定义*/ -/*34 36 37 数据下载相关服务处理状态*/ -typedef enum -{ - CeDcm_e_DownLoadRelax =0, - CeDcm_e_DownLoadRequested, - CeDcm_e_DownLoadDuringTransmit, - CeDcm_e_DownLoadTransmited -}TeDcm_e_DownLoadStsType; - -/*例程控制状态*/ -typedef enum -{ - CeDcm_e_RidStart =0, - CeDcm_e_RidStop, - CeDcm_e_RidGetResult -}TeDcm_e_RidStsType; - -typedef enum -{ - Rid_Idle, - Rid_Finish -}RidRunSts_T; - -/*TP数据分拣出的信息 完整信息*/ -typedef struct -{ - uint16 DL; /*有效字节长度*/ - uint8 Sid; /*SID*/ - uint8 RequstSty; /*请求方式*/ - uint8 Sub; /*子服务*/ - uint8 DtcGroup[3]; /*DTC组*/ - uint8 StateMask; /*请求的 状态掩码*/ - uint8 Key[DCM_SASERVER_KEYLENGTH]; /*密钥信息*/ - uint8 CommType; /*通讯类型*/ - uint8 Did[DCM_READDID_MAXNUMBER*2]; /*具体DID*/ - uint8 DidCount; /*DID个数*/ - uint16 Rid; /*RID*/ - uint8 WriteData[DCM_WRITEDATA_MAXLENGTH]; /*写入的数据*/ -}TsDcm_h_RquestInfo; - -typedef enum{ - DCM_RESET_NOTREADY, - DCM_RESET_READY -}DcmReset_T; - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ - -/*调试暂用*/ -extern uint8 TempTP[]; - -/*@全局变量声明extern*/ -extern uint8* VeDcm_P_DataAddress; /*TP层数据地址*/ -extern uint8 VeDcm_u_DL; /*TP层数据长度*/ -extern uint8 VeDcm_u_RequstSty; /*TP层数据请求方式*/ -extern uint8 VaDcm_u_NegRspTxBuffer[3]; - -extern TsDcm_h_RquestInfo VeDcm_h_RqustInfo; - - - -extern uint16 VeDcm_w_S3ServerTime; /*S3ServerTime计数*/ -extern uint8 VeDcm_u_S3ServerTimeSts; -extern uint8 VeDcm_u_DiagnosticSession; /*诊断会话模式*/ -extern uint8 VeDcm_u_SecurityAccessState; /*安全权限状态*/ - - - -/****************************************************************************** - * Description: : Global Function Prototype Declaration -******************************************************************************/ - - -/*@接口函数声明extern*/ -extern uint8 MngDcm_CollectRequstInfo(void); - -extern TeDcm_h_ResultType MngDcm_DefaultSessionDeal(void); -extern TeDcm_h_ResultType MngDcm_ProgramSessionDeal(void); -extern TeDcm_h_ResultType MngDcm_ExtendedSessionDeal(void); - -extern TeDcm_h_ResultType MngDcm_SoftResetDeal(void); - -extern TeDcm_h_ResultType MngDcm_CleanDTC(uint32 Group); - -extern TeDcm_h_ResultType MngDcm_DynamicaDefineNewDid(void); -extern TeDcm_h_ResultType MngDcm_ClearDynamicaDid(void); - -extern TeDcm_h_ResultType MngDcm_RequestSeekDeal(uint8 SecurityLevel); -extern TeDcm_h_ResultType MngDcm_KeyCkeckDeal(uint8 dummy); - -extern TeDcm_h_ResultType MngDcm_CtrlCommunication(uint8 CommunicationType); -extern TeDcm_h_ResultType MngDcm_DisenableCommunication(void); - -extern TeDcm_h_ResultType MngDcm_RoutineFF02Start(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF02Stop(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF02Result(void); - -extern TeDcm_h_ResultType MngDcm_Routine0202Start(void) ; -extern TeDcm_h_ResultType MngDcm_Routine0202Stop(void) ; -extern TeDcm_h_ResultType MngDcm_Routine0202Result(void); - - -extern TeDcm_h_ResultType MngDcm_TesterPresentDeal(void); - -extern TeDcm_h_ResultType MngDcm_DTCSettingEnable(void); -extern TeDcm_h_ResultType MngDcm_DTCSettingDisenable(void); - -extern void MngDcm_ChangeToDefaltSession(void); - -extern void MngDcmS3ServerCountCutDown(void); - -extern void MngDcmKeyErrorDelayCountCutDown(void); - -extern void MngDcm_PrepareNegRsp(uint8 Sid,uint8 Nrc); - -extern void MngDcm_DataMoveDeal(uint8* TargetAddress,uint8 TargetPost,uint8* SourceAddress,uint8 SourcePost,uint8 DataLength); - -extern TeDcm_h_ResultType MngDcm_RequestDownloadService(void); -extern TeDcm_h_ResultType MngDcm_TransmitDataService(void); -extern TeDcm_h_ResultType MngDcm_TransmitExitService(void); - -extern void InitDcm_Parameter (void); - -extern uint16 MngDcm_GetS3serverTime(void); -extern uint8 MngDcm_GetS3serverTimeSts(void); -extern uint8 MngDcm_GetDiagnosticSession(void); -extern uint8 MngDcm_GetSecurityAccessSts(void); - -extern TeDcm_h_ResultType MngDcm_RoutineFF00Start(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF01Start(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF00Stop(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF01Stop(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF00Result(void); -extern TeDcm_h_ResultType MngDcm_RoutineFF01Result(void); - -extern uint8 GetDtcEnable(void); - -extern void MngDcm_ResetS3serverTime(void); - -extern void BootProgramSessionDeal(void); -extern void BootDefaultSessionDeal(void); -extern void resetS3Server(void); - -#endif diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_App_Cfg.c b/ECU_BOOT/diagnose/Dcm/Dcm_App_Cfg.c deleted file mode 100644 index 8ddf27a..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_App_Cfg.c +++ /dev/null @@ -1,20 +0,0 @@ - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -#include "Dcm_App_Cfg.h" - -/****************************************************************************** - * Description: : Global Variable Definition Section - ******************************************************************************/ - - - -/****************************************************************************** - * Description: : Static Variable Definition Section - ******************************************************************************/ - - - - - diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_App_Cfg.h b/ECU_BOOT/diagnose/Dcm/Dcm_App_Cfg.h deleted file mode 100644 index 248f09e..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_App_Cfg.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef DCM_APP_CFG_H -#define DCM_APP_CFG_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ - -#include "_Types.h" -#include "Dcm_DID.h" -#include "CanTp.h" -//#include "FCC_Programing.h" -//#include "eel.h" -#include "Dcm_Key.h" -#include "DCM_DTC.h" -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ -//#define DCM_19SUPDTCEXTDATARECORD_COUNT (4U) -/* 19 06ֵ֧DTCExtDataRecord */ -//#define DCM_SUPDTC_COUNT ( 15U ) -/* Ʒֵ֧DTC */ - - -/****************************************************************************** - * Description: : Structure Type Declaration Section -******************************************************************************/ -/*ṹtypedef*/ - -/*Ӧ*/ -typedef enum -{ - CeDcm_e_ResultNegRsp =0, - CeDcm_e_ResultPosRsp, - CeDcm_e_ResultNoRsp -}TeDcm_h_ResultType; - - - -//typedef uint8 (*ReportDTCExtDataFun)(uint8* LeDemDtcNum,uint8 LeDemParameter,uint8* LeDemDataRecord); -/*19 06 ֵ֧ DTCExtDataRecordNumber бṹ*/ -//typedef struct -//{ -// uint8 DTCExtDataRecordNumber; /*չnumber*/ -// ReportDTCExtDataFun Function; /*չnumber ӦĴ*/ -//}DTCExtDataRecordType; -// -//typedef struct -//{ -// uint8 DtcHigh; /*DTC ֽ*/ -// uint8 DtcMiddle; /*DTC мֽ*/ -// uint8 DtcLow; /*DTC ֽ*/ -//}TsDcm_h_DtcGroupType; - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ - -//extern const TsDcm_h_DtcGroupType CaDcm_u_DtcTable[DCM_SUPDTC_COUNT]; -//extern const DTCExtDataRecordType CaDcm_h_19DTCExtDataRecordTable[DCM_19SUPDTCEXTDATARECORD_COUNT]; - -#endif diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c b/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c deleted file mode 100644 index c41748e..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.c +++ /dev/null @@ -1,1731 +0,0 @@ - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ - -#include"Dcm_Cfg.h" - -/****************************************************************************** - * Description: : Global Variable Definition Section - ******************************************************************************/ - - - - -/****************************************************************************** - * Description: : Static Variable Definition Section - ******************************************************************************/ - - - - /*SID 条件检查项列表*/ -#if 0 -/*SID 条件检查项*/ -typedef struct -{ - uint8 SupportSession; /*支持的会话模式*/ - uint8 SupportSecurityAccess; /*支持的安全权限*/ - uint8 SupportRequestAddress; /*支持的请求方式*/ - uint8 MinDL; /*SID 对应的最小DL*/ - uint8 SubCount; /*子服务个数 */ - uint8 Sid; /*SID */ - ServerDealfunc SidFunction; -}TsDcm_h_SidCheckInfoType; -#endif -const TsDcm_h_SidCheckInfoType CaDcm_h_SidCheckInfoTable[DCM_SUPPORTSID_COUNT]={ -// 会话模式 ; 安全权限 ; 请求方式 ;子服务最小DL;子服务个数;SID;处理函数地址 -{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 3 , 0x10 , &MngDcm_SessionControlService}, -{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 1 , 0x11 , &MngDcm_ECUResetService}, -{ DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS , 2 , 2 , 0x27 , &MngDcm_SecurityAccessService}, -{ DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 3 , 3 , 0x28 , &MngDcm_CommunicationControlService}, -{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 1 , 0x3E , &MngDcm_TesterPresentService}, -{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 2 , 0x85 , &MngDcm_DTCSettingControlService}, -{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 3 , 0 , 0x22 , &MngDcm_ReadDidDataService}, -{ DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION , DCM_SECURITYACCESS_LEVEL_L1 , DCM_PHYSICAL_ADDRESS , 4 , 0 , 0x2E , &MngDcm_WriteDidDataService}, -//{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 4 , 0 , 0x14 , &MngDcm_CleanDTCService}, -//{DCM_DEFAULT_SESSION | DCM_EXTEND_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS | DCM_FUNCTIONAL_ADDRESS , 2 , 5 , 0x19 , &MngDcm_ReadDTCInfoService}, -//{ DCM_EXTEND_SESSION , DCM_SECURITYACCESS_LEVEL_L1 , DCM_PHYSICAL_ADDRESS , 4 , 0 , 0x2F , &MngDcm_IOCtrlDIDService}, -{ DCM_PROGRAMME_SESSION , DCM_SECURITY_LEVEL_DEFAULT , DCM_PHYSICAL_ADDRESS , 4 , 3 , 0x31 , &MngDcm_RoutineControlService}, -{ DCM_PROGRAMME_SESSION , DCM_SECURITYACCESS_LEVEL_L2 , DCM_PHYSICAL_ADDRESS , 5 , 0 , 0x34 , &MngDcm_RequestDownloadService}, -{ DCM_PROGRAMME_SESSION , DCM_SECURITYACCESS_LEVEL_L2 , DCM_PHYSICAL_ADDRESS , 3 , 0 , 0x36 , &MngDcm_TransmitDataService}, -{ DCM_PROGRAMME_SESSION , DCM_SECURITYACCESS_LEVEL_L2 , DCM_PHYSICAL_ADDRESS , 1 , 0 , 0x37 , &MngDcm_TransmitExitService} -}; - - -/*10服务 子服务信息列表*/ -const TsDcm_h_SubCheckType CaDcm_h_10SubCheckTable[DCM_10SUB_COUNT]={ -{0x01,2,&MngDcm_DefaultSessionDeal}, -{0x02,2,&MngDcm_ProgramSessionDeal}, -{0x03,2,&MngDcm_ExtendedSessionDeal} -}; - - -/*11服务 子服务信息列表*/ -const TsDcm_h_SubCheckType CaDcm_h_11SubCheckTable[DCM_11SUB_COUNT]={ - {0x01,2,&MngDcm_SoftResetDeal}, -// {0x02,2,&MngDcm_SoftResetDeal}, - {0x03,2,&MngDcm_SoftResetDeal} -}; - -/*19服务 子服务信息列表*/ -#if 0 -const TsDcm_h_SubCheckType CaDcm_h_19SubCheckTable[DCM_19SUB_COUNT]={ - {0x01,3,&MngDcm_ReportNumberOfDTCByStatusMask}, - {0x02,3,&MngDcm_ReportDTCByStatusMask}, -// {0x04,6,&MngDcm_ReportDTCSnapshotRecordByDTCNumber}, -// {0x06,6,&MngDcm_ReportDTCExtendedDataRecordByDTCNumber}, - {0x0A,2,&MngDcm_ReportSupportedDTC} -}; -#endif -/*27服务 子服务信息列表*/ -const TsDcm_h_WithParaSubCheckType CaDcm_h_27SubCheckTable[DCM_27SUB_COUNT]={ -{0x01,2,&MngDcm_RequestSeekDeal}, -{0x02,6,&MngDcm_KeyCkeckDeal}, -{0x11,2,&MngDcm_RequestSeekDeal}, -{0x12,6,&MngDcm_KeyCkeckDeal}, -}; - - -/*28服务 子服务信息列表*/ -const TsDcm_h_WithParaSubCheckType CaDcm_h_28SubCheckTable[DCM_28SUB_COUNT]={ -{0x00,3,&MngDcm_CtrlCommunication}, -{0x01,3,&MngDcm_CtrlCommunication}, -{0x03,3,&MngDcm_CtrlCommunication}, -}; - - - - -/*3E服务 子服务信息列表*/ -const TsDcm_h_SubCheckType CaDcm_h_3ESubCheckTable[DCM_3ESUB_COUNT]={ -{0x00,2,&MngDcm_TesterPresentDeal} - -}; - -/*85服务 子服务信息列表*/ -const TsDcm_h_SubCheckType CaDcm_h_85SubCheckTable[DCM_85SUB_COUNT]={ -{0x01,2,&MngDcm_DTCSettingEnable}, -{0x02,2,&MngDcm_DTCSettingDisenable} -}; - -/*2C服务 子服务信息列表*/ -const TsDcm_h_SubCheckType CaDcm_h_2CSubCheckTable[DCM_2CSUB_COUNT]={ -{0x01,8,&MngDcm_DynamicaDefineNewDid}, -{0x03,4,&MngDcm_ClearDynamicaDid} -}; - -/*2F 服务 DID 条件检查项列表*/ -const TsDcm_h_DidCheckType CaDcm_h_IODidCheckInfoTable[DCM_IO_DIDSUP_COUNT]={ - {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x6300,&Dcm_DidServices_0x6300_WriteData}, - {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x6308,&Dcm_DidServices_0x6308_WriteData}, - {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x630B,&Dcm_DidServices_0x630B_WriteData}, - {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x630C,&Dcm_DidServices_0x630C_WriteData}, - {DCM_EXTEND_SESSION,DCM_SECURITYACCESS_LEVEL_L1,2,0x630E,&Dcm_DidServices_0x630E_WriteData}, -}; - /*22 服务 DID 条件检查项列表*/ -const TsDcm_h_DidCheckType CaDcm_h_ReadDidCheckInfoTable[DCM_READ_DIDSUP_COUNT + DCM_PERIODIC_DATA_COUNT]={ -{0x07,0x07, 8,0x0200,&Dcm_DidServices_0x0200_ReadData}, -{0x07,0x07, 8,0x0201,&Dcm_DidServices_0x0201_ReadData}, -//{0x07,0x07, 8,0xF110,&Dcm_DidServices_0xF110_ReadData}, -//{0x07,0x07, 8,0xF112,&Dcm_DidServices_0xF112_ReadData}, -{0x07,0x07, 8,0xF113,&Dcm_DidServices_0xF113_ReadData}, -{0x07,0x07,10,0xF180,&Dcm_DidServices_0xF180_ReadData}, -{0x07,0x07, 1,0xF186,&Dcm_DidServices_0xF186_ReadData}, -{0x07,0x07,9,0xF194,&Dcm_DidServices_0xF187_ReadData}, -{0x07,0x07,10,0xF18A,&Dcm_DidServices_0xF18A_ReadData}, -{0x07,0x07, 3,0xF18B,&Dcm_DidServices_0xF18B_ReadData}, -{0x07,0x07,17,0xF190,&Dcm_DidServices_0xF190_ReadData}, -{0x07,0x07,6,0xF195,&Dcm_DidServices_0xF195_ReadData}, -{0x07,0x07,5,0xF193,&Dcm_DidServices_0xF193_ReadData}, -//{0x07,0x07, 8,0xF197,&Dcm_DidServices_0xF197_ReadData}, -{0x07,0x07,16,0xF198,&Dcm_DidServices_0xF198_ReadData}, -{0x07,0x07, 4,0xF199,&Dcm_DidServices_0xF199_ReadData}, -{0x07,0x07, 4,0xF19D,&Dcm_DidServices_0xF19D_ReadData}, -//{0x07,0x07, 1,0x6300,&Dcm_DidServices_0x6300_ReadData}, -//{0x07,0x07, 1,0x6308,&Dcm_DidServices_0x6308_ReadData}, -//{0x07,0x07, 1,0x630B,&Dcm_DidServices_0x630B_ReadData}, -//{0x07,0x07, 1,0x630C,&Dcm_DidServices_0x630C_ReadData}, -//{0x07,0x07, 1,0x630D,&Dcm_DidServices_0x630D_ReadData}, -//{0x07,0x07, 1,0x630F,&Dcm_DidServices_0x630F_ReadData}, -//{0x07,0x07, 1,0xDF00,&Dcm_DidServices_0xFD00_ReadData}, -#if (defined (DAMING_CAN_BOOT) && (DAMING_CAN_BOOT == YES)) -{0x07,0x07,1,0xF188,&Dcm_DidServices_0xF193_ReadData}, -{0x07,0x07,1,0xF191,&Dcm_DidServices_0xF195_ReadData}, -#endif -/*********************End of SID $22******************************/ -}; - - - /*2E 服务 DID 条件检查项列表*/ -const TsDcm_h_DidCheckType CaDcm_h_WriteDidCheckInfoTable[DCM_WRITE_DIDSUP_COUNT]={ - {0x06,DCM_SECURITYACCESS_LEVEL_L1,16,0xF198,&Dcm_DidServices_0xF198_WriteData}, - {0x06,DCM_SECURITYACCESS_LEVEL_L1, 4,0xF199,&Dcm_DidServices_0xF199_WriteData}, -}; - -/*Rid FF00 检查列表*/ -const TsDcm_h_RidSubCheckType CaDcm_h_RidFF00SubCheckTable[DCM_RIDFF00_SUB_COUNT]= -{ - {0x01,12,&MngDcm_RoutineFF00Start}, - {0x02,5,&MngDcm_RoutineFF00Stop}, - {0x03,5,&MngDcm_RoutineFF00Result} -}; - -/*Rid FF01 检查列表*/ -const TsDcm_h_RidSubCheckType CaDcm_h_RidFF01SubCheckTable[DCM_RIDFF01_SUB_COUNT]= -{ - {0x01,4,&MngDcm_RoutineFF01Start}, - {0x02,5,&MngDcm_RoutineFF01Stop}, - {0x03,5,&MngDcm_RoutineFF01Result} -}; - -/*Rid FF02 检查列表*/ -const TsDcm_h_RidSubCheckType CaDcm_h_RidFF02SubCheckTable[DCM_RIDFF02_SUB_COUNT]= -{ - {0x01,4,&MngDcm_RoutineFF02Start}, - {0x02,4,&MngDcm_RoutineFF02Stop}, - {0x03,4,&MngDcm_RoutineFF02Result} -}; - -/*Rid 202 检查列表*/ -const TsDcm_h_RidSubCheckType CaDcm_h_Rid0202SubCheckTable[DCM_RIDF001_SUB_COUNT]= -{ - {0x01,8,&MngDcm_Routine0202Start }, - {0x02,5,&MngDcm_Routine0202Stop }, - {0x03,5,&MngDcm_Routine0202Result} -}; - -/*Rid 总检查列表*/ -const TsDcm_h_RidCheckType CaDcm_h_RidCheckInfoTable[DCM_31RID_COUNT]={ -{DCM_PROGRAMME_SESSION,DCM_SECURITYACCESS_LEVEL_L2, ROUTINECTRL_DID_EraseMemory, CaDcm_h_RidFF00SubCheckTable}, -{DCM_PROGRAMME_SESSION,DCM_SECURITYACCESS_LEVEL_L2, ROUTINECTRL_DID_CheckProgrammingDependencies, CaDcm_h_Rid0202SubCheckTable}, -{DCM_PROGRAMME_SESSION,DCM_SECURITYACCESS_LEVEL_L2, ROUTINECTRL_DID_CheckProgrammingIntegrity, CaDcm_h_Rid0202SubCheckTable}, -{DCM_EXTEND_SESSION | DCM_PROGRAMME_SESSION,DCM_SECURITYACCESS_DEFAULT, ROUTINECTRL_DID_CheckProgrammingPreconditions,CaDcm_h_RidFF02SubCheckTable}, -}; - - - -/****************************************************************************** - * Description: : Static Function Prototype Declaration - *****************************************************************************/ -/*@静态函数声明*/ -static uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]); -static uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint16 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]); -static uint8 MngDcm_ReadDidCheckDL(uint16 LeDcm_u_DL); -static uint8 MngDcm_2AReadDidCheckDL(uint16 LeDcm_u_DL); -static uint8 MngDcm_WriteDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]); -static uint8 MngDcm_IoDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]); -static uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const TsDcm_h_DidCheckType LeDcm_h_DidTable[]); -static uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]); -static uint8 MngDcm_DidCheckSecurityAccess(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]); -static uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]); -static uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]); -static uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]); -static uint8 MngDcm_RidCheckDL(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSubIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]); -static uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 LeDcm_u_ListLength,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]); - -static void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeDcm_u_Did,uint8* LeDcm_u_Data,uint8 LeDcm_u_Length); - - - - -/****************************************************************************** - * Description: : Write User Function Code - *****************************************************************************/ -/*@函数头注释格式,所有函数头按照此格式注释*/ - - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid) - - *参数 : LeDcm_u_Sid 请求的SID - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查SID的有效性 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid) -{ - uint8 i; - uint8 LeDcm_u_TempResult = DCM_NORESULT; - for(i=0 ; i < DCM_SUPPORTSID_COUNT; i++) - { - if(LeDcm_u_Sid == CaDcm_h_SidCheckInfoTable[i].Sid) - { - LeDcm_u_TempResult = i; - break; - } - } - - return LeDcm_u_TempResult; -} - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex) - - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前模式是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (CaDcm_h_SidCheckInfoTable[LeDcm_u_SidIndex].SupportSession&(MngDcm_GetDiagnosticSession()))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; - -} - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex) - - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前安全权限是否满足 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (CaDcm_h_SidCheckInfoTable[LeDcm_u_SidIndex].SupportSecurityAccess&(MngDcm_GetSecurityAccessSts()))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex) - - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求方式是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (CaDcm_h_SidCheckInfoTable[LeDcm_u_SidIndex].SupportRequestAddress&VeDcm_h_RqustInfo.RequstSty)) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint8 LeDcm_u_DL) - - *参数 : LeDcm_u_SidIndex 请求的SID在条件列表中的索引值,LeDcm_u_DL 客户端请求的 DL - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求的DL 是否满足索引的SID的最小DL - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint16 LeDcm_u_DL) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(CaDcm_h_SidCheckInfoTable[LeDcm_u_SidIndex].MinDL <= LeDcm_u_DL) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - - - - - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) - - *参数 : LeDcm_u_ListLenth 请求的SID的子服务信息列表长度 - LeDcm_u_Sub 请求的子服务 - LeDcm_h_SubTable[] 请求的SID的子服务信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求子服务是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SubCheckAvailable(uint8 LeDcm_u_ListLenth,uint8 LeDcm_u_Sub,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) -{ - uint8 i; - uint8 LeDcm_u_TempResult = DCM_NORESULT; - for(i=0 ; i < LeDcm_u_ListLenth; i++) - { - if((LeDcm_u_Sub&0x7F)== LeDcm_h_SubTable[i].Sub) - { - LeDcm_u_TempResult = i; - break; - } - } - - return LeDcm_u_TempResult; -} - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint8 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) - - *参数 : LeDcm_u_SubIndex 请求的SID的子服务在子服务信息列表中的索引值 - LeDcm_u_DL 请求的DL - LeDcm_h_SubTable[] 请求的SID的子服务信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求子服务是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_SubCheckDL(uint8 LeDcm_u_SubIndex,uint16 LeDcm_u_DL,const TsDcm_h_SubCheckType LeDcm_h_SubTable[]) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(LeDcm_h_SubTable[LeDcm_u_SubIndex].DL == LeDcm_u_DL) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - return LeDcm_u_TempResult; - -} - - - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_ReadDidCheckDL(uint8 LeDcm_u_DL) - - *参数 : LeDcm_u_DL 请求的DL - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求的DL是否满足要求 - - *编辑时间 : 2015-10-10 - - *备注 : 检查22 服务请求DL有效性函数 - *****************************************************************************/ -uint8 MngDcm_ReadDidCheckDL(uint16 LeDcm_u_DL) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(LeDcm_u_DL>2&&LeDcm_u_DL<(DCM_READDID_MAXNUMBER*2+2)&&(LeDcm_u_DL%2==1)) - { - LeDcm_u_TempResult = LeDcm_u_DL/2; - } - - return LeDcm_u_TempResult; - -} - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_ReadDidCheckDL(uint8 LeDcm_u_DL) - - *参数 : LeDcm_u_DL 请求的DL - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求的DL是否满足要求 - - *编辑时间 : 2015-10-10 - - *备注 : 检查22 服务请求DL有效性函数 - *****************************************************************************/ -uint8 MngDcm_2AReadDidCheckDL(uint16 LeDcm_u_DL) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if((LeDcm_u_DL>2)&&((LeDcm_u_DL<=DCM_PERIODIC_DATA_COUNT))) - { - LeDcm_u_TempResult = LeDcm_u_DL-2; - } - - return LeDcm_u_TempResult; - -} - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_WriteDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) - - *参数 : LeDcm_u_DidIndex 请求的DID 在2E支持的DID信息列表中的索引值 - LaDcm_h_DidTable[] 2E支持的DID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求的DL是否满足要求 - - *编辑时间 : 2015-10-10 - - *备注 : 2E 服务检查请求DL有效性函数 - *****************************************************************************/ -uint8 MngDcm_WriteDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) -{ - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(((LaDcm_h_DidTable[LeDcm_u_DidIndex].DataLength +3U) == VeDcm_h_RqustInfo.DL)) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - -uint8 MngDcm_IoDidCheckDL(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) -{ - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if((((LaDcm_h_DidTable[LeDcm_u_DidIndex].DataLength +3U) == VeDcm_h_RqustInfo.DL))||(((LaDcm_h_DidTable[LeDcm_u_DidIndex].DataLength +2U) == VeDcm_h_RqustInfo.DL))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - -/****************************************************************************** - *函数名称 : uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const TsDcm_h_DidCheckType LeDcm_h_DidTable[]) - - *参数 : LeDcm_u_ListLenth 请求的DID信息列表长度 - LeDcm_u_Did 请求的DID - LaDcm_h_DidTable[] DID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求的DID是支持 - - *编辑时间 : 2015-10-10 - - *备注 : 检测DID是否在列表中 如果存在 返回索引 不存在 返回 DCM_NORESULT 没找到 - *****************************************************************************/ -uint8 MngDcm_DidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Did,const TsDcm_h_DidCheckType LeDcm_h_DidTable[]) -{ - uint8 i; - uint8 LeDcm_u_TempResult = DCM_NORESULT; - for(i=0 ; i < LeDcm_u_ListLenth; i++) - { - if(LeDcm_u_Did == LeDcm_h_DidTable[i].Did) - { - LeDcm_u_TempResult = i; - break; - } - } - - return LeDcm_u_TempResult; - - -} - - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) - - *参数 : LeDcm_u_DidIndex 请求的DID在DID信息列表中的索引值 - LaDcm_h_DidTable[] DID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前会话模式是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (LaDcm_h_DidTable[LeDcm_u_DidIndex].SupportSession&(MngDcm_GetDiagnosticSession()))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; - -} - - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_DidCheckSession(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) - - *参数 : LeDcm_u_DidIndex 请求的DID在DID信息列表中的索引值 - LaDcm_h_DidTable[] DID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前安全权限是否满足要求 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -uint8 MngDcm_DidCheckSecurityAccess(uint8 LeDcm_u_DidIndex,const TsDcm_h_DidCheckType LaDcm_h_DidTable[]) -{ - - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (LaDcm_h_DidTable[LeDcm_u_DidIndex].SupportSecurityAccess&(MngDcm_GetSecurityAccessSts()))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - - - /****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - - *参数 : LeDcm_u_ListLenth 请求的RID信息列表长度 - LeDcm_u_Rid 请求的RID - LeDcm_h_RidTable[] RID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前请求的RID是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : 31服务 检测RID是否在列表中 如果存在 返回索引 不存在 返回 DCM_NORESULT 没找到 - *****************************************************************************/ -uint8 MngDcm_RidCheckAvailable(uint8 LeDcm_u_ListLenth,uint16 LeDcm_u_Rid,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) -{ - uint8 i; - uint8 LeDcm_u_TempResult = DCM_NORESULT; - for(i=0 ; i < LeDcm_u_ListLenth; i++) - { - if(LeDcm_u_Rid == LeDcm_h_RidTable[i].Rid) - { - LeDcm_u_TempResult = i; - break; - } - } - - return LeDcm_u_TempResult; -} - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_h_RidTable[] RID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前会话模式是否支持 - - *编辑时间 : 2015-10-10 - - *备注 : 31服务 检查当前模式是否支持该RID - *****************************************************************************/ -uint8 MngDcm_RidCheckSession(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) -{ - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (LeDcm_h_RidTable[LeDcm_u_RidIndex].SupportSession&(MngDcm_GetDiagnosticSession()))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; - -} - -/****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_h_RidTable[] RID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查当前安全权限是否满足要求 - - *编辑时间 : 2015-10-10 - - *备注 : 31服务 检查权限是否满足要求 - *****************************************************************************/ -uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) -{ - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(_FALSE != (LeDcm_h_RidTable[LeDcm_u_RidIndex].SupportSecurityAccess&(MngDcm_GetSecurityAccessSts()))) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - - -/****************************************************************************** - *函数名称 : uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 LeDcm_u_ListLength,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_u_RidSub 请求的Sub - LeDcm_u_ListLength RID支持的子服务信息列表长度 - LeDcm_h_RidTable[] RID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查请求的RID是否支持当前请求的Sub - - *编辑时间 : 2015-10-10 - - *备注 : 31服务 检查请求的RID是否支持当前请求的Sub - *****************************************************************************/ -uint8 MngDcm_RidSubAvailable(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSub,uint8 LeDcm_u_ListLength,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) -{ - uint8 i; - uint8 LeDcm_u_TempResult = DCM_NORESULT; - for(i=0 ; i < LeDcm_u_ListLength; i++) - { - if((LeDcm_u_RidSub&0x7F) == LeDcm_h_RidTable[LeDcm_u_RidIndex].RidSubTable[i].Sub) - { - LeDcm_u_TempResult = i; - break; - } - } - - return LeDcm_u_TempResult; -} - -/****************************************************************************** - *函数名称 : uint8 MngDcm_RidCheckSecurityAccess(uint8 LeDcm_u_RidIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) - - *参数 : LeDcm_u_RidIndex 请求的RID在RID信息列表中的索引值 - LeDcm_u_RidSubIndex 请求的SUB在RID支持的子服务信息列表中的索引值 - LeDcm_h_RidTable[] RID信息列表 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 检查请求的DL是否满足要求 - - *编辑时间 : 2015-10-10 - - *备注 : 31服务 检查请求的DL是否满足要求 - *****************************************************************************/ -uint8 MngDcm_RidCheckDL(uint8 LeDcm_u_RidIndex,uint8 LeDcm_u_RidSubIndex,const TsDcm_h_RidCheckType LeDcm_h_RidTable[]) -{ - uint8 LeDcm_u_TempResult = DCM_CHECK_NOK; - - if(((LeDcm_h_RidTable[LeDcm_u_RidIndex].RidSubTable[LeDcm_u_RidSubIndex].DL) == VeDcm_h_RqustInfo.DL)) - { - LeDcm_u_TempResult = DCM_CHECK_OK; - } - - - return LeDcm_u_TempResult; -} - - - - - - - - -/****************************************************************************** - *函数名称 : void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeDcm_u_Did,uint8* LeDcm_u_Data,uint8 LeDcm_u_Length) - - *参数 : LeDcm_u_Buffer 数据目标缓存数组 - LeDcm_u_Post 目标缓存数组数据填充位置 - LeDcm_u_Did 当前处理的DID - LeDcm_u_Data 数据的源地址 - LeDcm_u_Length 数据长度 - - *返回值 : LeDcm_u_TempResult 处理结果 - - *描述 : 22 DID 读取服务的数据整理函数 - - *编辑时间 : 2015-10-10 - - *备注 : 对单个DID的处理,22服务请求有多个DID时会多次调用 - *****************************************************************************/ -void MngDcm_ReadDidDataPack(uint8* LeDcm_u_Buffer,uint8* LeDcm_u_Post,uint16 LeDcm_u_Did,uint8* LeDcm_u_Data,uint8 LeDcm_u_Length) -{ - uint8 i; - uint8 LeDcm_u_DidHigh; - uint8 LeDcm_u_DidLow; - - LeDcm_u_DidLow = LeDcm_u_Did&0xFF; - LeDcm_u_DidHigh = LeDcm_u_Did>>8; - - LeDcm_u_Buffer[(*LeDcm_u_Post)] = LeDcm_u_DidHigh; - (*LeDcm_u_Post)++; - LeDcm_u_Buffer[(*LeDcm_u_Post)] = LeDcm_u_DidLow; - (*LeDcm_u_Post)++; - - for(i = 0;i < LeDcm_u_Length;i++) - { - LeDcm_u_Buffer[(*LeDcm_u_Post) + i] = LeDcm_u_Data[i]; - - } - - (*LeDcm_u_Post) = (*LeDcm_u_Post) + LeDcm_u_Length; - -} - - - -/**********************************************诊断服务入口函数**************/ - - -/****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_SessionControlService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 10 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ -TeDcm_h_ResultType MngDcm_SessionControlService(void) - { - uint8 LeDcm_u_SubInex = 0xFF; - uint8 LeDcm_u_DLCheckResult; - uint8 LaDcm_u_TempBuffer[6]; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*调试暂用*/ //从TP数据提取 - - LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_10SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_10SubCheckTable); /*检查子服务是否支持*/ - if(DCM_NORESULT == LeDcm_u_SubInex) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - } - else - { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - } - else - { - LeDcm_u_DLCheckResult = MngDcm_SubCheckDL(LeDcm_u_SubInex,VeDcm_h_RqustInfo.DL,CaDcm_h_10SubCheckTable); - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_10SubCheckTable[LeDcm_u_SubInex].SubFunction(); - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - - - return LeDcm_u_FinallyResult; - } - - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ECUResetService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 11 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_ECUResetService(void) - { - uint8 LeDcm_u_SubInex = 0xFF; - uint8 LeDcm_u_DLCheckResult; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; //从TP数据提取 - - LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_11SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_11SubCheckTable); /*检查子服务是否支持*/ - if(DCM_NORESULT == LeDcm_u_SubInex) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; /*设置为不响应*/ - } - else - { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - - } - else - { - LeDcm_u_DLCheckResult = MngDcm_SubCheckDL(LeDcm_u_SubInex,VeDcm_h_RqustInfo.DL,CaDcm_h_11SubCheckTable); - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_11SubCheckTable[LeDcm_u_SubInex].SubFunction(); - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - - - return LeDcm_u_FinallyResult; - } - - - - - - - - - - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ReadDidDataService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 22 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - #if (defined (DID_RECORD) && (DID_RECORD == YES)) - uint16 DidList[16]; - uint8 Didcnt; - - #endif - TeDcm_h_ResultType MngDcm_ReadDidDataService(void) - { - - uint8 i = 0U; - uint8 LeDcm_u_DidNumber; - uint8 LeDcm_u_NotSupDidNumber =0U; - uint8 LeDcm_u_DidIndex; - uint8 LeDcm_u_SessionCheckResult; - uint8 LeDcm_u_SecurityAccessCheckResult; - uint8 LeDcm_u_FuncDealResult; - uint16 LeDcm_u_CurrentDid; - uint8 LaDcm_u_TempBuffer[6]; - uint8 LeDcm_u_SingleDidBuffer[DCM_ONEDID_MAXDATALENGTH]; - uint8 LeDcm_u_SingleDidDataLength; - - uint8 LeDcm_u_CollectDataBuffer[DCM_TXBUFFER_LENGTH - 2U]; - uint8 LeDcm_u_CollectDataPost = 1U; - - uint8 LeDcm_u_BreakFlag = 0U; - - - TeDcm_h_ResultType LeDcm_u_FinallyResult; - - - - LeDcm_u_DidNumber = MngDcm_ReadDidCheckDL(VeDcm_h_RqustInfo.DL); /*函数返回值为不合格 或 DID 数目 */ - if(DCM_CHECK_NOK != LeDcm_u_DidNumber) - { - VeDcm_h_RqustInfo.DidCount = LeDcm_u_DidNumber; /*将得到的DID 个数保存到 结构体中 */ - - - MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.Did,0,VeDcm_P_DataAddress,1,LeDcm_u_DidNumber*2); /*将具体DID 提取到结构体中*/ - - while(VeDcm_h_RqustInfo.DidCount > _NULL) - { - /*将两个did 数组元素转换成 uint16 类型的 did 便于比较 */ - LeDcm_u_CurrentDid = (((uint16)VeDcm_h_RqustInfo.Did[i])<<8) + ((uint16)VeDcm_h_RqustInfo.Did[i+1U]); - i = i + 2U; /*指向下一个did */ - - #if (defined (DID_RECORD) && (DID_RECORD == YES)) - DidList[Didcnt++] = LeDcm_u_CurrentDid; - #endif - - LeDcm_u_DidIndex = MngDcm_DidCheckAvailable(DCM_READ_DIDSUP_COUNT + DCM_PERIODIC_DATA_COUNT,LeDcm_u_CurrentDid,CaDcm_h_ReadDidCheckInfoTable); /*检查是否是否支持该DID*/ /*返回为当前DID索引或不支持*/ - - if(DCM_NORESULT != LeDcm_u_DidIndex) - { - - LeDcm_u_SessionCheckResult = MngDcm_DidCheckSession(LeDcm_u_DidIndex,CaDcm_h_ReadDidCheckInfoTable); /*检查当前模式是否支持该DID*/ - if(DCM_CHECK_OK == LeDcm_u_SessionCheckResult) - { - LeDcm_u_SecurityAccessCheckResult = MngDcm_DidCheckSecurityAccess(LeDcm_u_DidIndex,CaDcm_h_ReadDidCheckInfoTable); /*检查当前权限是否满足*/ - if(DCM_CHECK_OK == LeDcm_u_SecurityAccessCheckResult) - { - LeDcm_u_FuncDealResult = CaDcm_h_ReadDidCheckInfoTable[LeDcm_u_DidIndex].Function(LeDcm_u_SingleDidBuffer,&LeDcm_u_SingleDidDataLength); /*查表调用具体DID处理函数*/ - - VeDcm_h_RqustInfo.DidCount = VeDcm_h_RqustInfo.DidCount - 1U; /*减去已处理的DID*/ - - if(DCM_CHECK_OK !=LeDcm_u_FuncDealResult) /*如果具体处理函数产生NRC*/ - { - /*接收返回值作为NRC*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[LeDcm_u_FuncDealResult]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - break; - } - else - { - MngDcm_ReadDidDataPack(LeDcm_u_CollectDataBuffer,&LeDcm_u_CollectDataPost,LeDcm_u_CurrentDid,LeDcm_u_SingleDidBuffer,LeDcm_u_SingleDidDataLength); /*将读取的DID数据整合到一个数组*/ - } - - - } - else - { - /*设置NRC 33*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - LeDcm_u_BreakFlag = 1U; - break; - } - - } - else - { - LeDcm_u_NotSupDidNumber++; /*当前不支持加1*/ - VeDcm_h_RqustInfo.DidCount--; /*减去已处理的DID*/ - } - - } - else - { - LeDcm_u_NotSupDidNumber++; /*当前不支持加1 不支持的DID 暂时做成当前不支持*/ - VeDcm_h_RqustInfo.DidCount--; /*减去已处理的DID*/ - } - } - - - - /*所有DID处理完成*/ - if(0U==LeDcm_u_BreakFlag) - { - if(LeDcm_u_NotSupDidNumber == LeDcm_u_DidNumber) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC 31*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - else - { - LeDcm_u_CollectDataBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - SetCanTp_TxBuffer(LeDcm_u_CollectDataPost,LeDcm_u_CollectDataBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultPosRsp; - } - } - else - {} - - - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - - return LeDcm_u_FinallyResult; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_ReadMemoryDataService - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 23 服务入口函数 - - *编辑时间 : 2016-12-25 - - *备注 : - *****************************************************************************/ - - TeDcm_h_ResultType MngDcm_ReadMemoryDataService(void) - { - - } - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_SecurityAccessService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 27 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_SecurityAccessService(void) - { - uint8 LeDcm_u_SubIndex = 0xFF; - uint8 LeDcm_u_DLCheckResult; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; ; /*从TP数据提取*/ - - LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_27SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_27SubCheckTable); /*检查子服务是否支持*/ - if(DCM_NORESULT == LeDcm_u_SubIndex) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - - } - else - { - LeDcm_u_DLCheckResult = MngDcm_SubCheckDL(LeDcm_u_SubIndex,VeDcm_h_RqustInfo.DL,CaDcm_h_27SubCheckTable); - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_27SubCheckTable[LeDcm_u_SubIndex].SubFunction( CaDcm_h_27SubCheckTable[LeDcm_u_SubIndex].Sub); - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - - - return LeDcm_u_FinallyResult; - } - - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_CommunicationControlService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 28 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_CommunicationControlService(void) - { - uint8 LeDcm_u_SubIndex = 0xFF; - uint8 LeDcm_u_DLCheckResult; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; //从TP数据提取 - - LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_28SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_28SubCheckTable); /*检查子服务是否支持*/ - if(DCM_NORESULT == LeDcm_u_SubIndex) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - } - else - { - LeDcm_u_DLCheckResult = MngDcm_SubCheckDL(LeDcm_u_SubIndex,VeDcm_h_RqustInfo.DL,CaDcm_h_28SubCheckTable); - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_28SubCheckTable[LeDcm_u_SubIndex].SubFunction(VeDcm_P_DataAddress[2]); - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - - - return LeDcm_u_FinallyResult; - } - - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_WriteDidDataService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 2E 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_WriteDidDataService(void) - { - uint8 i = 0U; - uint8 LeDcm_u_DidIndex; - uint8 LeDcm_u_DLCheckResult; - uint8 LeDcm_u_SessionCheckResult; - uint8 LeDcm_u_SecurityAccessCheckResult; - uint8 LeDcm_u_FuncDealResult; - uint8 LaDcm_u_TempBuffer[6]; - uint16 LeDcm_u_CurrentDid; - uint8 LeDcm_u_DidDataLength; - uint8 LeDcm_u_CollectDataBuffer[4U]; - uint8 LeDcm_u_CollectDataPost = 3U; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - - - MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.Did,0,VeDcm_P_DataAddress,1,2); /*将具体DID 提取到结构体中*/ - - LeDcm_u_CurrentDid = (((uint16)VeDcm_h_RqustInfo.Did[0])<<8) + ((uint16)VeDcm_h_RqustInfo.Did[1]); /*将两个did 数组元素转换成 uint16 类型的 did 便于比较 */ - -#if (defined (DID_RECORD) && (DID_RECORD == YES)) - DidList[Didcnt++] = LeDcm_u_CurrentDid; -#endif - - LeDcm_u_DidIndex = MngDcm_DidCheckAvailable(DCM_WRITE_DIDSUP_COUNT,LeDcm_u_CurrentDid,CaDcm_h_WriteDidCheckInfoTable); /*检查是否是否支持该DID*/ /*返回为当前DID索引或不支持*/ - - if(DCM_NORESULT != LeDcm_u_DidIndex) - { - if((LeDcm_u_CurrentDid == 0xF15A)&&(VeDcm_h_RqustInfo.DL == 33)) /* 适应大明Boot软件 */ - { - LeDcm_u_DLCheckResult = DCM_CHECK_OK; - } - else - LeDcm_u_DLCheckResult = MngDcm_WriteDidCheckDL(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*检查DL是否满足要求 */ - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - MngDcm_DataMoveDeal(VeDcm_h_RqustInfo.WriteData,0,VeDcm_P_DataAddress,3,CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].DataLength); /*将具体DID 提取到结构体中*/ - LeDcm_u_DidDataLength = CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].DataLength; - - LeDcm_u_SessionCheckResult = MngDcm_DidCheckSession(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*检查当前模式是否支持该DID*/ - if(DCM_CHECK_OK == LeDcm_u_SessionCheckResult) - { - LeDcm_u_SecurityAccessCheckResult = MngDcm_DidCheckSecurityAccess(LeDcm_u_DidIndex,CaDcm_h_WriteDidCheckInfoTable); /*检查当前权限是否满足*/ - if(DCM_CHECK_OK == LeDcm_u_SecurityAccessCheckResult) - { - - LeDcm_u_FuncDealResult = CaDcm_h_WriteDidCheckInfoTable[LeDcm_u_DidIndex].Function(VeDcm_h_RqustInfo.WriteData,&LeDcm_u_DidDataLength); /*查表调用具体DID处理函数*/ - - if(DCM_CHECK_OK !=LeDcm_u_FuncDealResult) /*如果具体处理函数产生NRC*/ - { - /*接收返回值作为NRC*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[LeDcm_u_FuncDealResult]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - - } - else - { - LeDcm_u_CollectDataBuffer[0] = VeDcm_h_RqustInfo.Sid + 0x40; - LeDcm_u_CollectDataBuffer[1] = VeDcm_h_RqustInfo.Did[0]; - LeDcm_u_CollectDataBuffer[2] = VeDcm_h_RqustInfo.Did[1]; - - SetCanTp_TxBuffer(3U,LeDcm_u_CollectDataBuffer); /*调用接口发送响应数据*/ - } - - } - else - { - - /*设置NRC 33*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - - } - else - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC 31*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - - - } - - } - else - { - /*设置NRC 13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - - } - - } - else - { - - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC31*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - - } - - return LeDcm_u_FinallyResult; -} - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 3D 服务入口函数 - - *编辑时间 : 2016-12-25 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void) - { - TeDcm_h_ResultType LeDcm_u_FinallyResult; - /*设置NRC22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - - return LeDcm_u_FinallyResult; - } - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 2C 服务入口函数 - - *编辑时间 : 2016-12-25 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void) - { - TeDcm_h_ResultType LeDcm_u_FinallyResult; - /*设置NRC22*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC22]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - - return LeDcm_u_FinallyResult; - } - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_RoutineControlService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 31 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_RoutineControlService(void) - { - - uint8 LeDcm_u_RidIndex; - uint8 LeDcm_u_DLCheckResult; - uint8 LeDcm_u_RidSubIndex; - uint8 LeDcm_u_SessionCheckResult; - uint8 LeDcm_u_SecurityAccessCheckResult; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - uint8 LaDcm_u_TempBuffer[6]; - - - VeDcm_h_RqustInfo.Rid = (((uint16)VeDcm_P_DataAddress[2])<<8) + ((uint16)VeDcm_P_DataAddress[3]); /*将具体RID 提取到结构体中*/ - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*sub*/ //从TP数据提取 - LeDcm_u_RidIndex = MngDcm_RidCheckAvailable(DCM_31RID_COUNT,VeDcm_h_RqustInfo.Rid,CaDcm_h_RidCheckInfoTable); /*检查是否是否支持该RID*/ /*返回为当前RID索引或不支持*/ - if(DCM_NORESULT != LeDcm_u_RidIndex) - { - LeDcm_u_SessionCheckResult = MngDcm_RidCheckSession(LeDcm_u_RidIndex,CaDcm_h_RidCheckInfoTable); /*检查当前模式是否支持该RID*/ - if(DCM_CHECK_OK == LeDcm_u_SessionCheckResult) - { - LeDcm_u_SecurityAccessCheckResult = MngDcm_RidCheckSecurityAccess(LeDcm_u_RidIndex,CaDcm_h_RidCheckInfoTable); - if(DCM_CHECK_OK == LeDcm_u_SecurityAccessCheckResult) - { - LeDcm_u_RidSubIndex = MngDcm_RidSubAvailable(LeDcm_u_RidIndex,VeDcm_h_RqustInfo.Sub,DCM_RIDFF02_SUB_COUNT,CaDcm_h_RidCheckInfoTable); - if(DCM_NORESULT != LeDcm_u_RidSubIndex) - { - LeDcm_u_DLCheckResult = MngDcm_RidCheckDL(LeDcm_u_RidIndex,LeDcm_u_RidSubIndex,CaDcm_h_RidCheckInfoTable); /*检查DL是否满足要求 */ - - //LeDcm_u_DLCheckResult = DCM_CHECK_OK; //boot add //todo - - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_RidCheckInfoTable[LeDcm_u_RidIndex].RidSubTable[LeDcm_u_RidSubIndex].Function(); /*调用对应子函数处理 */ - } - else if (VeDcm_h_RqustInfo.Rid == 0xff01) - { - LeDcm_u_FinallyResult = MngDcm_RoutineFF01Start(); - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - - } - - } - else - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - - } - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC33]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - - } - } - else - { - - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC31]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - - } - } - else - { - - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7E]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - - } - - return LeDcm_u_FinallyResult; - } - - - - /****************************************************************************** - *函数名称 : TeDcm_h_ResultType MngDcm_TesterPresentService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 3E 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_TesterPresentService(void) - { - uint8 LeDcm_u_SubInex = 0xFF; - uint8 LeDcm_u_DLCheckResult; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*调试暂用*/ //从TP数据提取 - - LeDcm_u_SubInex = MngDcm_SubCheckAvailable(DCM_3ESUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_3ESubCheckTable); /*检查子服务是否支持*/ - if(DCM_NORESULT == LeDcm_u_SubInex) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - } - else - { - LeDcm_u_DLCheckResult = MngDcm_SubCheckDL(LeDcm_u_SubInex,VeDcm_h_RqustInfo.DL,CaDcm_h_3ESubCheckTable); - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_3ESubCheckTable[LeDcm_u_SubInex].SubFunction(); - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - - - return LeDcm_u_FinallyResult; - -} - - - - /****************************************************************************** - *函数名称 :TeDcm_h_ResultType MngDcm_DTCSettingControlService(void) - - *参数 : void - - *返回值 : LeDcm_u_FinallyResult 处理结果 - - *描述 : 85 服务入口函数 - - *编辑时间 : 2015-10-10 - - *备注 : - *****************************************************************************/ - TeDcm_h_ResultType MngDcm_DTCSettingControlService(void) - { - uint8 LeDcm_u_SubIndex = 0xFF; - uint8 LeDcm_u_DLCheckResult; - TeDcm_h_ResultType LeDcm_u_FinallyResult; - uint8 LaDcm_u_TempBuffer[6]; - VeDcm_h_RqustInfo.Sub = VeDcm_P_DataAddress[1]; /*从TP数据提取*/ - - if(MngDcm_GetDiagnosticSession() != DCM_EXTEND_SESSION) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - return CeDcm_e_ResultNoRsp; - } - else - { - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC7F]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - return CeDcm_e_ResultNoRsp; - - } - } - - - LeDcm_u_SubIndex = MngDcm_SubCheckAvailable(DCM_85SUB_COUNT,VeDcm_h_RqustInfo.Sub,CaDcm_h_85SubCheckTable); /*检查子服务是否支持*/ - if(DCM_NORESULT == LeDcm_u_SubIndex) - { - if(DCM_FUNCTIONAL_ADDRESS == VeDcm_h_RqustInfo.RequstSty) - { - SetCanTp_TxBuffer(0U,LaDcm_u_TempBuffer); /*调用接口发送响应数据 0数据为不响应*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNoRsp; - } - else - { - /*设置NRC12*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC12]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; /*负响应*/ - } - - } - else - { - LeDcm_u_DLCheckResult = MngDcm_SubCheckDL(LeDcm_u_SubIndex,VeDcm_h_RqustInfo.DL,CaDcm_h_85SubCheckTable); - if(DCM_CHECK_OK == LeDcm_u_DLCheckResult) - { - LeDcm_u_FinallyResult = CaDcm_h_85SubCheckTable[LeDcm_u_SubIndex].SubFunction(); - } - else - { - /*设置NRC13*/ - MngDcm_PrepareNegRsp(VeDcm_h_RqustInfo.Sid,CaDcm_u_NRCData[DCM_NRC13]); /*整理负响应数据*/ - SetCanTp_TxBuffer(3U,VaDcm_u_NegRspTxBuffer); /*调用接口发送响应数据*/ - LeDcm_u_FinallyResult = CeDcm_e_ResultNegRsp; - } - } - - - return LeDcm_u_FinallyResult; - } - - - - - - - diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h b/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h deleted file mode 100644 index ae721af..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_Cfg.h +++ /dev/null @@ -1,205 +0,0 @@ -/*@ 处根据实际情况填写相关信息,将@字符以及这条提示语句去掉 */ -#ifndef DCM_CFG_H -#define DCM_CFG_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ - -#include"Dcm_App.h" - -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ -#define YES 1 -#define NO 0 - -#define DID_RECORD ( NO ) /* 测试用,记录DID请求列表 */ -#define SID_RECORD ( NO ) /* 测试用,记录SID请求列表 */ - -#define DAMING_CAN_BOOT ( NO ) /*大明只有CAN升级协议 */ -#define DCM_SUPPORTSID_COUNT 16U /*支持的SID数目*/ - - -#define DCM_10SUB_COUNT 3U /*10服务子服务个数*/ -#define DCM_11SUB_COUNT 2U /*11服务子服务个数*/ -#define DCM_19SUB_COUNT 3U /*19服务子服务个数*/ - - -#define DCM_27SUB_COUNT 4U /*27服务子服务个数*/ -#define DCM_28SUB_COUNT 3U /*28服务子服务个数*/ - -#define DCM_31RID_COUNT 4U /*31服务子服务个数*/ -#define DCM_RIDFF02_SUB_COUNT 3U /*31 FF02 支持的子服务个数*/ -#define DCM_RIDFF00_SUB_COUNT 3U /*31 FF00 支持的子服务个数*/ -#define DCM_RIDFF01_SUB_COUNT 3U /*31 FF01 支持的子服务个数*/ -#define DCM_RIDF001_SUB_COUNT 3U /* 31 F001 支持的子服务个数 */ - -#define DCM_3ESUB_COUNT 1U /*3E服务子服务个数*/ -#define DCM_85SUB_COUNT 2U /*85服务子服务个数*/ -#define DCM_2CSUB_COUNT 2U /*2C服务子服务个数*/ -#define DCM_14DTCGROUP_COUNT 3U /*14服务支持的DTC组个数*/ - -#if (defined (DAMING_CAN_BOOT) && (DAMING_CAN_BOOT == YES)) -#define DCM_READ_DIDSUP_COUNT 19U /*22 服务支持的DID 个数 */ -#else -#define DCM_READ_DIDSUP_COUNT 14U /* 22 服务支持的DID 个数 */ -#endif -#define DCM_IO_DIDSUP_COUNT 5U /*2F 服务支持的DID 个数*/ -#define DCM_PERIODIC_DATA_COUNT 0U /*2A 服务支持DID个数 */ - -#define DCM_WRITE_DIDSUP_COUNT 2U /*2E 服务支持的DID 个数*/ -#define DCM_ONEDID_MAXDATALENGTH 20U /*22 单个DID 数据最大长度*/ - - - -/****************************************************************************** - * Description: : Structure Type Declaration Section -******************************************************************************/ - - -#define ROUTINECTRL_DID_CheckProgrammingIntegrity 0x0202 -#define ROUTINECTRL_DID_CheckProgrammingPreconditions 0x0203 -#define ROUTINECTRL_DID_CheckProgrammingDependencies 0xFF01 -#define ROUTINECTRL_DID_EraseMemory 0xFF00 - - -typedef TeDcm_h_ResultType (*ServerDealfunc)(void); -/*SID 条件检查项 */ -typedef struct -{ - uint8 SupportSession; /* 支持的会话 模式 */ - uint8 SupportSecurityAccess; /* 支持的安全权限 */ - uint8 SupportRequestAddress; /* 支持的请求方式 */ - uint8 MinDL; /*SID 对应的最小DL*/ - uint8 SubCount; /* 子服务个数 */ - uint8 Sid; /*SID */ - ServerDealfunc SidFunction; -}TsDcm_h_SidCheckInfoType; - - - -typedef TeDcm_h_ResultType (*SubDealfunc)(void ); -typedef TeDcm_h_ResultType (*SubDealfuncWithPara)(uint8 ); -/* 子服务信息列表结构体 */ -typedef struct -{ - uint8 Sub; /* 子服务 */ - uint8 DL; /* 子服务 对应的正确DL */ - SubDealfunc SubFunction; /* 子服务 对应函数的处理函数 */ -}TsDcm_h_SubCheckType; - -typedef struct -{ - uint8 Sub; /* 子服务 */ - uint8 DL; /* 子服务 对应的正确DL */ - SubDealfuncWithPara SubFunction; /* 子服务 对应函数的处理函数 */ -}TsDcm_h_WithParaSubCheckType; - - - -/* 子服务信息列表结构体 */ -typedef struct -{ - uint8 Sub; /* 子服务 */ - uint8 DL; /* 子服务 对应的正确DL */ - SubDealfunc SubFunction; /* 子服务 对应函数的处理函数 */ -}TsDcm_h_DtcCheckType; - - -typedef uint8 (*DidDealfunc)(uint8* LeDcm_u_DataAddress,uint8* LeDcm_u_DataLength); -/* 22 2E 2A服务 DID 信息列表结构体 */ -typedef struct -{ - uint8 SupportSession; /* 支持的会话模式 */ - uint8 SupportSecurityAccess; /* 支持的安全权限 */ - uint8 DataLength; /* 数据长度 */ - uint16 Did; /* 具体DID */ - DidDealfunc Function; /* DID 对应函数的处理函数 */ -}TsDcm_h_DidCheckType; - -typedef struct -{ - uint8 Did; - uint8 TransmissionMode; - uint16 TmCount; -}TsDcm_h_2APeriodicDidServe; - -typedef TeDcm_h_ResultType (*DtcDealfunc)(uint32 LeDcm_DtcGroup); -/*14 服务信息列表结构体 */ -#if 0 -typedef struct -{ - uint32 Dtc; /* DTC组 */ - DtcDealfunc CleanFunction; /* 子服务 对应函数的处理函数 */ -}TsDcm_h_DtcCheckType; - -#endif - - - -typedef TeDcm_h_ResultType (*RidDealfunc)(void); -/*Rid 支持的子服务及处理函数信息的列表结构体*/ -typedef struct -{ - - uint8 Sub; /* 子服务 */ - uint8 DL; /* 服务 对应的正确DL */ - RidDealfunc Function; /* 服务 对应函数的处理函数 */ -}TsDcm_h_RidSubCheckType; - - - -/* 31服务 RID 信息列表结构体 */ -typedef struct -{ - uint8 SupportSession; /* 支持的会话模式 */ - uint8 SupportSecurityAccess; /* 支持的安全权限 */ - uint16 Rid; /* Rid*/ - const TsDcm_h_RidSubCheckType* RidSubTable; /*Rid 支持的子服务列表 */ - -}TsDcm_h_RidCheckType; - -typedef struct -{ - uint8 write; - uint8 data; -}TsDcm_h_IO_parameter_t; - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ - - -extern const TsDcm_h_SidCheckInfoType CaDcm_h_SidCheckInfoTable[DCM_SUPPORTSID_COUNT]; - - - -/****************************************************************************** - * Description: : Global Function Prototype Declaration -******************************************************************************/ - -extern uint8 MngDcm_SIDCheckAvailable(uint8 LeDcm_u_Sid); -extern uint8 MngDcm_SIDCheckSession(uint8 LeDcm_u_SidIndex); -extern uint8 MngDcm_SIDCheckSecurityAccess(uint8 LeDcm_u_SidIndex); -extern uint8 MngDcm_SIDFuncAddressAvailable(uint8 LeDcm_u_SidIndex); -extern uint8 MngDcm_SIDCheckMinDL(uint8 LeDcm_u_SidIndex,uint16 LeDcm_u_DL); - -extern TeDcm_h_ResultType MngDcm_SessionControlService(void); -extern TeDcm_h_ResultType MngDcm_ECUResetService(void); -extern TeDcm_h_ResultType MngDcm_CleanDTCService(void); -extern TeDcm_h_ResultType MngDcm_ReportDTCService(void); -extern TeDcm_h_ResultType MngDcm_ReadDidDataService(void); -extern TeDcm_h_ResultType MngDcm_SecurityAccessService(void); -extern TeDcm_h_ResultType MngDcm_CommunicationControlService(void); -extern TeDcm_h_ResultType MngDcm_WriteDidDataService(void); -extern TeDcm_h_ResultType MngDcm_RoutineControlService(void); -extern TeDcm_h_ResultType MngDcm_TesterPresentService(void); -extern TeDcm_h_ResultType MngDcm_DTCSettingControlService(void); - -extern TeDcm_h_ResultType MngDcm_ReadMemoryDataService(void); -extern TeDcm_h_ResultType MngDcm_SecurityAccessService(void); -extern TeDcm_h_ResultType MngDcm_WriteMemoryDataService(void); -extern TeDcm_h_ResultType MngDcm_ReadDataByIdentifier(void); -extern TeDcm_h_ResultType MngDcm_DynamicaDefineIdentifier(void); -#endif diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_DID.c b/ECU_BOOT/diagnose/Dcm/Dcm_DID.c deleted file mode 100644 index 452401a..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_DID.c +++ /dev/null @@ -1,1612 +0,0 @@ -/*@������ʵ�������д�����Ϣ����@�ַ��Լ�������ʾ���ȥ��*/ - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -/*@���������ļ�*/ -#include "Dcm_DID.h" -#include "app_to_dcm.h" -/****************************************************************************** - * Description: : Global Variable Definition Section - ******************************************************************************/ -/*@����ȫ�ֱ���*/ - - -/****************************************************************************** - * Description: : Static Variable Definition Section - ******************************************************************************/ -/*@���徲̬����*/ -/****************************************************************************** - * Description: : Static Function Prototype Declaration - *****************************************************************************/ -/*@��̬��������*/ -/****************************************************************************** - * Description: : Write User Function Code - *****************************************************************************/ -/*@����ͷע�͸�ʽ�����к���ͷ���մ˸�ʽע��*/ -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ - - -uint8 IO_Did_Enable_0x3A00; -uint8 Rec_Moto_Status_0x3A00; -uint8 Fan_Degree_0x3A00; -uint8 Mode_Moto_Status_0x3A00; -uint8 IO_Did_Enable_0x3A01 ; -uint8 Rec_Moto_Drive_Status_0x3A01; -uint8 Mode_Moto_Drive_Status_0x3A01 ; - - -/******************* Read 0x0200 ***************************/ - -uint8 Dcm_DidServices_0x0200_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 i; - uint8 LaDCM_u_Buf[1]; - - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x0200_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0x0201 ***************************/ -uint8 Dcm_DidServices_0x0201_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 i; - uint8 LaDCM_u_Buf[1]; - - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x0201_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - - -/******************* Read 0xF110 ***************************/ -uint8 Dcm_DidServices_0xF110_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[8]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF110_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 8;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 8U; - - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Write 0xF110 **************************************/ -uint8 Dcm_DidServices_0xF110_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF110_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } -} - -/******************* Read 0xF112 ***************************/ -uint8 Dcm_DidServices_0xF112_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[8]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF112_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 8;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 8U; - - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0xF112 **************************************/ -uint8 Dcm_DidServices_0xF112_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF112_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } -} - - -/******************* Read 0xF113 ***************************/ -uint8 Dcm_DidServices_0xF113_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[4]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF113_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 4;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 4U; - - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0xF15A **************************************/ - -uint8 Dcm_DidServices_0xF15A_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buff[30]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buff[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF15AWriteData(LaDCM_u_Buff)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0xF180 ***************************/ - -uint8 Dcm_DidServices_0xF180_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[10]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF180_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 10;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 10U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0xF181 ***************************/ - -uint8 Dcm_DidServices_0xF181_ReadData(uint8* LeDcm_0xF181_data,uint8* LeDcm_0xF181_dataLength) - - { - uint8 LaDCM_u_Buf[15]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF181_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 15;i++) - { - LeDcm_0xF181_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_0xF181_dataLength) = 15U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF183 ***************************/ - -uint8 Dcm_DidServices_0xF183_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[12]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF183_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 12;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 12U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF186 ***************************/ - -uint8 Dcm_DidServices_0xF186_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF186_ReadData(&LaDCM_u_Buf)) - { - - *LeDcm_u_data = LaDCM_u_Buf; - - (*LeDcm_u_dataLength) = 1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF187 ***************************/ - -uint8 Dcm_DidServices_0xF187_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[9]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF187_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 9;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 9U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF189 ***************************/ - -uint8 Dcm_DidServices_0xF189_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[15]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF189_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 15;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 15U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF18A ***************************/ - -uint8 Dcm_DidServices_0xF18A_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[6]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF18A_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 6;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 6U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF18B ***************************/ - -uint8 Dcm_DidServices_0xF18B_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[4]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF18B_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 4;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 4U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0xF190 ***************************/ - -uint8 Dcm_DidServices_0xF190_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 i; - uint8 LaDCM_u_Buf[17]; - - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF190_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 17;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 17U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0xF190 **************************************/ - -uint8 Dcm_DidServices_0xF190_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[20]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF190_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF191 ***************************/ - -uint8 Dcm_DidServices_0xF191_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[15]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF191_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 15;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 15U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF192 ***************************/ - -uint8 Dcm_DidServices_0xF192_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[12]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF192_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 12;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 12U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF193 ***************************/ - -uint8 Dcm_DidServices_0xF193_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[5]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF193_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 5;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 5U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0xF194 ***************************/ - -uint8 Dcm_DidServices_0xF194_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[12]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF194_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 12;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 12U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - - -/******************* Read 0xF195 ***************************/ - -uint8 Dcm_DidServices_0xF195_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[6]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF195_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 6;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 6U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF197 ***************************/ - -uint8 Dcm_DidServices_0xF197_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF197_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 8;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 8U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0xF197 **************************************/ - -uint8 Dcm_DidServices_0xF197_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF197_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0xF198 ***************************/ - -uint8 Dcm_DidServices_0xF198_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[16]; - - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF198_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 16;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 16U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0xF198 **************************************/ -uint8 Dcm_DidServices_0xF198_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[16]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF198_WriteData(LaDCM_u_Buf)) - { - - for(i = 0;i < 16;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =16U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - - -/******************* Read 0xF199 ***************************/ -uint8 Dcm_DidServices_0xF199_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[4]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF199_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 4;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =4U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Write 0xF199 **************************************/ -uint8 Dcm_DidServices_0xF199_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[4]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF199_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF19D ***************************/ -uint8 Dcm_DidServices_0xF19D_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[4]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF19D_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 4;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =4U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Write 0xF19D **************************************/ -uint8 Dcm_DidServices_0xF19D_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[4]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF19D_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0x6300 ***************************/ -uint8 Dcm_DidServices_0x6300_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x6300_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x6308 ***************************/ -uint8 Dcm_DidServices_0x6308_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x6308_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x630B ***************************/ -uint8 Dcm_DidServices_0x630B_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630B_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x630C ***************************/ -uint8 Dcm_DidServices_0x630C_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630C_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x630D ***************************/ -uint8 Dcm_DidServices_0x630D_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630D_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x630F ***************************/ -uint8 Dcm_DidServices_0x630F_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630F_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xFD00 ***************************/ -uint8 Dcm_DidServices_0xFD00_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xFD00_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) =1U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0x6300 **************************************/ -uint8 Dcm_DidServices_0x6300_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x6300_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0x6308 **************************************/ -uint8 Dcm_DidServices_0x6308_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x6308_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0x630B **************************************/ -uint8 Dcm_DidServices_0x630B_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630B_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0x630C **************************************/ -uint8 Dcm_DidServices_0x630C_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630C_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - -/******************* Write 0x630E **************************************/ -uint8 Dcm_DidServices_0x630E_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[8]; - - if(0 != GetVehicel_u_SpeedVal()) - { - - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x630E_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0xF1A2 ***************************/ - uint8 Dcm_DidServices_0xF1A2_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[3]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A2_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 3;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 3U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Write 0xF1A2 **************************************/ - -uint8 Dcm_DidServices_0xF1A2_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[3]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A2_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0xF1A4 ***************************/ -uint8 Dcm_DidServices_0xF1A4_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[12]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A4_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 12;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 12U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - - -/******************* Read 0xF1A5 ***************************/ -uint8 Dcm_DidServices_0xF1A5_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[7]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A5_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 7;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 7U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Write 0xF1A5 **************************************/ -uint8 Dcm_DidServices_0xF1A5_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[7]; - - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A5_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - - } - else - { - return DCM_NRC22; - } -} -/******************* Read 0xF1A6 ***************************/ - -uint8 Dcm_DidServices_0xF1A6_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[3]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A6_ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 3;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 3U; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Write 0xF1A6 **************************************/ - -uint8 Dcm_DidServices_0xF1A6_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength) -{ - uint8 i; - uint8 LaDCM_u_Buf[3]; - - if(0 != GetVehicel_u_SpeedVal()) - { - for(i = 0;i < (*LeDcm_u_dataLength);i++) - { - LaDCM_u_Buf[i] = LeDcm_u_data[i]; - } - - if(DCM_CHECK_OK == GetRTE_Dcm_DidServices_0xF1A6_WriteData(LaDCM_u_Buf)) - { - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x016B ***************************/ - -uint8 Dcm_DidServices_0x016B_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x061BReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 1; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x016C ***************************/ - -uint8 Dcm_DidServices_0x016C_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[2]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x061CReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 2;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 2; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x016D ***************************/ - -uint8 Dcm_DidServices_0x016D_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[2]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x061DReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 2;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 2; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x016E ***************************/ - -uint8 Dcm_DidServices_0x016E_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x061EReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 1; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x016F ***************************/ - -uint8 Dcm_DidServices_0x016F_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) - -{ - uint8 LaDCM_u_Buf[2]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x061FReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 2;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 2; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x0620 ***************************/ - -uint8 Dcm_DidServices_0x0620_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x0620ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 1; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - -/******************* Read 0x0621 ***************************/ - -uint8 Dcm_DidServices_0x0621_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[1]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x0621ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 1;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 1; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - -/******************* Read 0x0622 ***************************/ - -uint8 Dcm_DidServices_0x0622_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) -{ - uint8 LaDCM_u_Buf[2]; - uint8 i; - - if( DCM_CHECK_OK == GetRTE_Dcm_DidServices_0x0622ReadData(LaDCM_u_Buf)) - { - - for(i = 0;i < 2;i++) - { - LeDcm_u_data[i] = LaDCM_u_Buf[i]; - } - - (*LeDcm_u_dataLength) = 2; - return DCM_CHECK_OK; - } - else - { - return DCM_NRC22; - } - -} - - - diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_DID.h b/ECU_BOOT/diagnose/Dcm/Dcm_DID.h deleted file mode 100644 index 55160fd..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_DID.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef _DCM_DID_H -#define _DCM_DID_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -#include "Dcm_DID_Cfg.h" -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ - - -/****************************************************************************** - * Description: : Structure Type Declaration Section -******************************************************************************/ - - - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ - - -/****************************************************************************** - * Description: : Global Function Prototype Declaration -******************************************************************************/ -extern uint8 Dcm_DidServices_0x0200_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x0201_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF110_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF110_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF112_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF112_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF113_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF15A_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF180_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF181_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF183_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -//extern uint8 Dcm_DidServices_0xF184_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF186_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF187_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF189_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength) ; -extern uint8 Dcm_DidServices_0xF18A_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF18B_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF18C_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF190_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF190_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF191_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF192_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF193_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF194_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF195_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF197_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF197_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF198_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF198_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF199_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF199_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF19D_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF19D_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A2_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A2_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A4_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A5_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A5_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A6_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF1A6_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x016B_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x016C_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x016D_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x016E_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x016F_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x0620_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x0621_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x0622_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x3A00(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x3A01(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); - -extern uint8 Dcm_DidServices_0xF200_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF201_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF202_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF203_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF204_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF205_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xF206_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); - -extern uint8 Dcm_DidServices_0x6300_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x6308_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630B_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630C_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630D_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630F_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0xFD00_ReadData(uint8* LeDcm_u_data,uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x6300_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x6308_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630B_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630C_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); -extern uint8 Dcm_DidServices_0x630E_WriteData(uint8* LeDcm_u_data, uint8* LeDcm_u_dataLength); - - - - -#endif diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.c b/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.c deleted file mode 100644 index 648a8eb..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.c +++ /dev/null @@ -1,709 +0,0 @@ -/* @������ʵ�������д�����Ϣ����@�ַ��Լ�������ʾ���ȥ�� */ - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -/* @���������ļ� */ - -#include "BranchTable.h" -#include "boot_macrodriver.h" -#include "Dcm_DID_Cfg.h" -//#include "R_TypeDefs.h" -//#include "r_fdl_types.h" -//#include "eel.h" -//#include "user_define.h" -#include "Dcm_extern.h" -#include "CanTp_Cfg.h" -#include "pfdl_user.h" - -unsigned char DF_Read(unsigned char* read_buf,unsigned char data_num,unsigned char len); - -/****************************************************************************** - * Description: : Global Variable Definition Section - ******************************************************************************/ -/*@ ����ȫ�ֱ��� */ -extern uint16 adResult[7]; -uint8 TempTxBuffer[40]; - -/****************************************************************************** - * Description: : Static Variable Definition Section - ******************************************************************************/ - -uint8 CaDcm_u_NRCData[DCM_NRCCOUNT] = {0x11,0x12,0x13,0x14,0x22,0x24,0x31,0x33,0x35,0x36,0x37,0x7F,0x72,0x71,0x73,0x78,0x7E,0x92,0x93,0x70}; /*27 ����Ӧ������*/ - -uint8 wBuf[20] = {0,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff,0}; - -/****************************************************************************** - * Description: : Static Function Prototype Declaration - *****************************************************************************/ -/*@��̬��������*/ -/****************************************************************************** - * Description: : Write User Function Code - *****************************************************************************/ -/*@����ͷע�͸�ʽ�����к���ͷ���մ˸�ʽע��*/ -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x0200_ReadData(uint8* data) -{ - data[0] = *(__far uint8 *)DID_0200_ADDR; - if(data[0] != 0xFF) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x0201_ReadData(uint8* data) -{ - data[0] = *(__far uint8 *)DID_0201_ADDR; - if(data[0] != 0xFF) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF110_ReadData(uint8* data) -{ - if( 0 == DF_Read(data,INDEX_0xF110,8)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF112_ReadData(uint8* data) -{ - if( 0 == DF_Read(data,INDEX_0xF112,8)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF113_ReadData(uint8* data) -{ - (void)data; - data[0] = 0x03; - data[1] = 0x02; - data[2] = 0x01; - data[3] = 0x07; - return DCM_CHECK_OK; -} - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF15AWriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 30;temp++) - { - wBuf[temp] = data[temp]; - } -// temp = DF_Write(wBuf,INDEX_0xF15A,30); //2017/8/7 10:18:15 spark del - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF180_ReadData(uint8* data) -{ - __far uint8_t *p = DID_F180_ADDR; - (void)data; - - data[0] = *p++; - data[1] = *p++; - data[2] = *p++; - data[3] = *p++; - data[4] = *p++; - data[5] = *p++; - data[6] = *p++; - data[7] = *p++; - data[8] = *p++; - data[9] = *p++; - return DCM_CHECK_OK; -} - -/****************************************************************************** - *�������� : @ - - *���� : @ - - *����ֵ : @ - - *���� : @ - - *�༭ʱ�� : @ - - *��ע : @ - *****************************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF181_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - - -uint8 GetRTE_Dcm_DidServices_0xF183_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -#define DCM_DEFAULT_SESSION 0x01 /*Ĭ��ģʽ*/ -#define DCM_PROGRAMME_SESSION 0x02 /*���ģʽ*/ -#define DCM_EXTEND_SESSION 0x04 /*��չģʽ*/ -extern uint8 MngDcm_GetDiagnosticSession(void); -uint8 GetRTE_Dcm_DidServices_0xF186_ReadData(uint8* data) -{ - uint8 temp = 0xFF; - - temp = MngDcm_GetDiagnosticSession(); /* ��ǰ�Ựģʽ */ - - if(temp == DCM_DEFAULT_SESSION){ - *data = 0x01; - } - else if(temp == DCM_PROGRAMME_SESSION){ - *data = 0x02; - } - else if(temp == DCM_EXTEND_SESSION){ - *data = 0x03; - } - - if( 0xFF != temp) - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF187_ReadData(uint8* data) -{ - (void)data; - data[0] = 0x61; - #if BOARD_CFG == LEFT_BOARD - data[1] = 0x0A; - #else - data[1] = 0x0B; - #endif - data[2] = '1'; - data[3] = '2'; - data[4] = '3'; - data[5] = 0x00; - data[6] = '0'; - data[7] = '0'; - data[8] = '0'; - - - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF189_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF18A_ReadData(uint8* data) -{ - (void)data; - data[0] = '5'; - data[1] = '7'; - data[2] = '4'; - data[3] = '2'; - data[4] = '2'; - data[5] = '2'; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF18B_ReadData(uint8* data) -{ - (void)data; - data[0] = 0x20; - data[1] = 0x18; - data[2] = 0X06; - data[3] = 0x15; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF190_ReadData(uint8* data) -{ - (void *)data; - - if(0 == DF_Read(data,INDEX_0xF190,17)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF191_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} -uint8 GetRTE_Dcm_DidServices_0xF192_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF193_ReadData(uint8* data) -{ - - __far uint8 *p = DID_F193_ADDR; - (void)data; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - - - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF194_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} -uint8 GetRTE_Dcm_DidServices_0xF195_ReadData(uint8* data) -{ - __far uint8 *p = DID_F195_ADDR; - (void)data; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - *data++ = *p++; - - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF197_ReadData(uint8* data) -{ - (void *)data; - if(0 == DF_Read(data,INDEX_0xF197,8)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF198_ReadData(uint8* data) -{ - (void *)data; - if(0 == DF_Read(data,INDEX_0xF198,16)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - - -uint8 GetRTE_Dcm_DidServices_0xF199_ReadData(uint8* data) -{ - (void)data; - if(0 == DF_Read(data,INDEX_0xF199,4)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF19D_ReadData(uint8* data) -{ - (void)data; - if(0 == DF_Read(data,INDEX_0xF19D,4)) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0x6300_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_TEMP); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x6308_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_REC); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x630B_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_FAN); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x630C_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_MODE); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x630D_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_DEFROST); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x630F_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_AC); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xFD00_ReadData(uint8* data) -{ - (void)data; - *data = GetIoParameter(IO_K30); - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF1A2_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF1A2_WriteData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF1A4_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - - -uint8 GetRTE_Dcm_DidServices_0xF1A5_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF1A5_WriteData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF1A6_ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0xF1A6_WriteData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x061BReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x061CReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x061DReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x061EReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x061FReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x0620ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x0621ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetRTE_Dcm_DidServices_0x0622ReadData(uint8* data) -{ - (void)data; - return DCM_CHECK_OK; -} - -uint8 GetVehicel_u_SpeedVal(void) -{ - uint8 LeVehicle_U_Speed = 1; - return LeVehicle_U_Speed; -} - - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF110_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 8;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF110,8); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0xF112_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 8;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF112,8); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - - -uint8 GetRTE_Dcm_DidServices_0xF190_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 17;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF190,17); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF197_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 8;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF197,8); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF198_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 16;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF198,16); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF199_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 4;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF199,4); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - -uint8 GetRTE_Dcm_DidServices_0xF19D_WriteData(uint8* data) -{ - uint8 temp; - for(temp = 0;temp < 4;temp++) - { - wBuf[temp] = data[temp]; - } - temp = DF_Write(wBuf,INDEX_0xF19D,4); - if(temp == 0) //R_FDL_OK - return DCM_CHECK_OK; - else - return DCM_CHECK_NOK; -} - - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x6300_WriteData(uint8* data) -{ - uint8 temp; - - temp = *(data+1); - WriteIoParameter(IO_TEMP,temp); - - return DCM_CHECK_OK; -} - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x6308_WriteData(uint8* data) -{ - uint8 temp; - - temp = *(data+1); - WriteIoParameter(IO_REC,temp); - - return DCM_CHECK_OK; -} - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x630B_WriteData(uint8* data) -{ - uint8 temp; - - temp = *(data+1); - WriteIoParameter(IO_FAN,temp); - - return DCM_CHECK_OK; -} - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x630C_WriteData(uint8* data) -{ - uint8 temp; - - temp = *(data+1); - WriteIoParameter(IO_MODE,temp); - - return DCM_CHECK_OK; -} - -/****************************************************************/ -uint8 GetRTE_Dcm_DidServices_0x630E_WriteData(uint8* data) -{ - uint8 temp; - - temp = *(data+1); - WriteIoParameter(IO_REARDEF,temp); - - return DCM_CHECK_OK; -} - diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.h b/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.h deleted file mode 100644 index e5e61b8..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_DID_Cfg.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef _DCM_DID_CFG_H -#define _DCM_DID_CFG_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -#include "_Types.h" -//#include "eel.h" -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ -#define DCM_CHECK_NOK 0U /*궨鷵ؽ*/ -#define DCM_CHECK_OK 1U - -#define YES 1 - -#define BOOT_DEBUG NO - -#define DCM_NORESULT 0xFF /*δҵĿ귵غ궨ֵ*/ - -#define DCM_NRCCOUNT 20U -#define DCM_NRC11 0U -#define DCM_NRC12 1U -#define DCM_NRC13 2U -#define DCM_NRC14 3U -#define DCM_NRC22 4U -#define DCM_NRC24 5U -#define DCM_NRC31 6U -#define DCM_NRC33 7U -#define DCM_NRC35 8U -#define DCM_NRC36 9U -#define DCM_NRC37 10U -#define DCM_NRC7F 11U -#define DCM_NRC72 12U -#define DCM_NRC71 13U -#define DCM_NRC73 14U -#define DCM_NRC78 15U -#define DCM_NRC7E 16U -#define DCM_NRC92 17U -#define DCM_NRC93 18U -#define DCM_NRC70 19U - -/****************************************************************************** - * Description: : Structure Type Declaration Section -******************************************************************************/ - - - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ -extern uint8 TempTxBuffer[40]; -extern uint8 CaDcm_u_NRCData[DCM_NRCCOUNT]; -/****************************************************************************** - * Description: : Global Function Prototype Declaration -******************************************************************************/ -extern uint8 GetRTE_Dcm_DidServices_0x0200_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x0201_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF110_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF110_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF112_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF112_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF113_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF15AWriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF180_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF181_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF183_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF186_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF187_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF189_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF18A_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF18B_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF18C_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF190_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF190_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF191_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF192_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF193_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF194_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF195_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF197_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF197_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF198_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF198_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF199_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF199_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF19D_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF19D_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A2_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A2_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A4_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A5_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A5_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A6_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xF1A6_WriteData(uint8* data); - -extern uint8 GetRTE_Dcm_DidServices_0x061BReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x061CReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x061DReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x061EReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x061FReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x0620ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x0621ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x0622ReadData(uint8* data); - -extern uint8 GetRTE_Dcm_DidServices_0x6300_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x6300_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x6308_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x6308_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630B_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630B_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630C_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630C_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630D_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630D_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630E_WriteData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0x630F_ReadData(uint8* data); -extern uint8 GetRTE_Dcm_DidServices_0xFD00_ReadData(uint8* data); - - -extern uint8 GetVehicel_u_SpeedVal(void); - -#if 0 -extern uint16 EvaSensorFeedbackVoltage(void); -extern uint16 GetModeFeedbackVoltage(void); -extern uint16 GetRecFeedbackVoltage(void); -extern uint16 GetPtcTmpSnsVolt(void); -extern uint16 GetCompSnsVolt(void); -extern uint16 GetFanFeedBackVolt(void); -extern uint8 GetAC_OutputSignal(void) ; -extern uint8 GetBlowerOn_Signal(void); -extern uint8 GetRec_Moto_Status(void); -extern uint8 GetFan_Degree(void); -extern uint8 GetMode_Moto_Status(void); -extern uint8 GetRec_Moto_Drive_Status(void) ; -extern uint8 GetMode_Moto_Drive_Status(void); -extern uint16 GetBattyVoltage(void) ; -extern uint16 GetEvaTemperature(void); -#endif - -#endif diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_Key.c b/ECU_BOOT/diagnose/Dcm/Dcm_Key.c deleted file mode 100644 index 55f6a72..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_Key.c +++ /dev/null @@ -1,126 +0,0 @@ -/****************************************************************************** -| File Name : Dcm_App.c -| Description: ��Ϸ�����崦�� -|------------------------------------------------------------------------------ - - *****************************************************************************/ - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -#include "Dcm_Key.h" -#include "Dcm_extern.h" -/****************************************************************************** - * Description: : Global Variable Definition Section - ******************************************************************************/ - - - -/****************************************************************************** - * Description: : Static Variable Definition Section - ******************************************************************************/ - - - /****************************************************************************** - * Description: : Write User Function Code - *****************************************************************************/ -static const uint8 xorArray[4] = {0xAA,0x50,0x43,0x52}; - -uint32 GetSeed(void) -{ - return (GetTimerCnt()); - //return(0x0016CDB0); test -} - -uint32 encypt(uint32 seed) -{ - uint8 i,data[8]; - uint32 seed_temp; - seed_temp = seed;//(uint32)(data[0])<<24 | (uint32)(data[1])<<16 | (uint32)(data[2])<<8 | (uint32)(data[3]); - if(seed_temp != 0) - { - for(i=0;i<35;i++) - { - if(seed_temp & 0x80000000) - { - if(seed_temp & 0x00000002) - { - seed_temp = ((seed_temp << 1)&0xFFFFFFFF); - seed_temp = (seed_temp^0xDFAF30B5)&0xFFFFFFFF; - } - else - { - seed_temp = (seed_temp << 1)&0xFFFFFFFF; - seed_temp = seed_temp^0x6F21EAAE; - } - } - else - seed_temp = (seed_temp << 1)&0xFFFFFFFF; - } - } - // data[0] = seed_temp>>24; - // data[1] = seed_temp>>16; - // data[2] = seed_temp>>8; - // data[3] = seed_temp; - // TransmitCAN_Message(0x701,8,data); - return seed_temp; -} - -uint32 SecurityLevel_1(uint32 Seed) -{ - return encypt(Seed); -} - -uint32 SecurityLevel_3(uint32 Seed) -{ - SeedSec_t cal,key,seed; - seed.word = Seed; - cal.byte[0] = ((seed.byte[0]&0xF8)>>3)^xorArray[0]; - cal.byte[1] = ((seed.byte[1]&0xF8)>>3)^xorArray[1]; - cal.byte[2] = ((seed.byte[2]&0xF8)>>3)^xorArray[2]; - cal.byte[3] = ((seed.byte[3]&0xF8)>>3)^xorArray[3]; - - key.byte[0] = ((cal.byte[3]&0x07)<<5)|(( cal.byte[0]&0xF8)>>3); - key.byte[1] = ((cal.byte[0]&0x07)<<5)|(cal.byte[2]&0x1F); - key.byte[2] = (cal.byte[1]&0xF8)|((cal.byte[3]&0xE0)>>5); - key.byte[3] = (cal.byte[2]&0xF8)|( cal.byte[1]&0x07); - - return( key.word ); -} - -uint32 SecurityLevel_11(uint32 Seed) -{ - SeedSec_t cal,key,seed,key_test; - seed.word = Seed; - cal.byte[0] = seed.byte[0]^xorArray[0]; - cal.byte[1] = seed.byte[1]^xorArray[1]; - cal.byte[2] = seed.byte[2]^xorArray[2]; - cal.byte[3] = seed.byte[3]^xorArray[3]; -#if 0 - key.byte[0] = ((cal.byte[2]&0x03)<<6)|(( cal.byte[3]&0xFC)>>2); - key.byte[1] = ((cal.byte[3]&0x03)<<6)|(cal.byte[0]&0x3F); - key.byte[2] = (cal.byte[0]&0xFC)|((cal.byte[1]&0xC0)>>6); - key.byte[3] = (cal.byte[1]&0xFC)|( cal.byte[2]&0x03); -#else - key.byte[3] = ((cal.byte[1]&0x03)<<6)|(( cal.byte[0]&0xFC)>>2); - key.byte[2] = ((cal.byte[0]&0x03)<<6)|(cal.byte[3]&0x3F); - key.byte[1] = (cal.byte[3]&0xFC)|((cal.byte[2]&0xC0)>>6); - key.byte[0] = (cal.byte[2]&0xFC)|( cal.byte[1]&0x03); -#endif - return( key.word ); -} - - - uint32 GENERIC_ALGORITHM(uint32 wSeed, uint8 SecurityLevel) -{ - if(0x01==SecurityLevel){ - return(SecurityLevel_1(wSeed)); - } - else if(0x11==SecurityLevel){ - return(SecurityLevel_11(wSeed)); - } -} - - - - diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_Key.h b/ECU_BOOT/diagnose/Dcm/Dcm_Key.h deleted file mode 100644 index 7f2c464..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_Key.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _DCM_KEY_H -#define _DCM_KEY_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ -#include "_Types.h" - - -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ - -typedef uint32 UWord32; - -typedef union{ - uint32 word; - uint8 byte[4]; -}SeedSec_t; - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ - -extern UWord32 seedToKey(UWord32 seed,UWord32 MASK); - -extern uint32 GENERIC_ALGORITHM(uint32 wSeed, uint8 SecurityLevel); - -extern uint32 GetSeed(void); - -extern uint32 GetTimerCnt(void); -#endif diff --git a/ECU_BOOT/diagnose/Dcm/Dcm_extern.h b/ECU_BOOT/diagnose/Dcm/Dcm_extern.h deleted file mode 100644 index 0061eec..0000000 --- a/ECU_BOOT/diagnose/Dcm/Dcm_extern.h +++ /dev/null @@ -1,237 +0,0 @@ -typedef struct -{ - unsigned char write; - unsigned char data; -}IO_parameter_t; - -#define IO_TEMP 0 -#define IO_REC 1 -#define IO_FAN 2 -#define IO_MODE 3 -#define IO_DEFROST 4 -#define IO_REARDEF 5 -#define IO_AC 6 -#define IO_K30 7 - -#define KL30_VOLTAGE 0 -#define TEMP_MOTOR 1 -#define MODE_MOTOR 2 -#define REC_MOTOR 3 -#define EVA_SENSOR 4 - -#define REPROGRAM_VALID 0xAA5555AA -#define APP_VALID 0xAA5555AA - - -/************************************************************************************ -// 输入参数 ch : / -// 0: KL30电压 / -// 1: 驾驶员侧温度调节电机反馈电压 / -// 2: 出风模式电机电机反馈电压 / -// 3: 循环风门调节电机反馈电压 / -// 4:蒸发器温度传感器电压 / -// / -// 返回值: / -// 对应的电压*10(即返回的电压值精度是0.1V的) / -// / -************************************************************************************/ -unsigned char GetVoltage(unsigned char ch); - -/************************************************************************************ -// 输入参数 motor : / -// 1: 驾驶员侧温度调节电机 / -// 2: 出风模式电机电机 / -// 3: 循环风门调节电机 / -// / -// 返回值: / -// 0: 电机正常 1:电机堵转 / -// / -************************************************************************************/ -unsigned char GetMotorLockStatus(unsigned char motor); - -/************************************************************************************ -// 输入参数 p : / -// 0: TEMP 驾驶员侧温度风门位置 / -// 1: REC 内外循环模式 / -// 2: FAN 鼓风机档位 / -// 3: MODE 模式风门位置 / -// 4: DEFROST 除霜开关 / -// 5: REARDEF 后除霜控制 / -// 6: AC A/C制冷按键按键 / -// 7: K30 ECU Supplier voltage / -// / -// 返回值: / -// 0: 对应的data,具体见22,2F服务 / -************************************************************************************/ -unsigned char GetIoParameter(unsigned char p); - -/************************************************************************************ -// 输入参数 p : / -// 0: TEMP 驾驶员侧温度风门位置 / -// 1: REC 内外循环模式 / -// 2: FAN 鼓风机档位 / -// 3: MODE 模式风门位置 / -// 4: DEFROST 无效 / -// 5: REARDEF 后除霜控制 / -// 6: AC 无效 / -// 7: K30 无效 / -// 返回值: / -// / -************************************************************************************/ -void WriteIoParameter(unsigned char p,unsigned char data); - -/************************************************************************************ -// 输入参数 p : / -// / -// / -// 返回值: / -// 0: IGN电源正常 1:IGN > 16V 或 IGN < 9V / -// / -************************************************************************************/ -unsigned char GetIgnVoltStatus(void); - -/************************************************************************************ -// 输入参数 ID : CAN ID // -// 输入参数 Dlc : CAN 发送数据长度 // -// 输入参数 *Data : 指向 CAN 发送数据缓冲区的指针 // -// // -// 返回值: // -// 0: 发送成功 非0 :发送失败 // -************************************************************************************/ -unsigned char TransmitCAN_Message(unsigned int ID,unsigned char Dlc,unsigned char *Data); - -/************************************************************************************ -// 输入参数 write_buf : 指向 需要写入数据缓冲区的地址 // -// 输入参数 data_num : 数据代号 // -// 输入参数 len : 写入数据长度 // -// // -// 返回值: // -// 0: 写入成功 非0 :写入失败 // -************************************************************************************/ -unsigned char DF_Write(unsigned char* write_buf,unsigned char data_num,unsigned char len); - -/************************************************************************************ -// 输入参数 read_buf : 指向读取数据存入的缓冲区的地址 // -// 输入参数 data_num : 数据代号 // -// 输入参数 len : 读取数据长度 // -// // -// 返回值: // -// 0: 读取成功 非0 :读取失败 // -************************************************************************************/ -unsigned char DF_Read(unsigned char* read_buf,unsigned char data_num,unsigned char len); - -/************************************************************************************ -// // -// 返回值: // -// 当前32bit 的 1ms计数的值 // -***********************************************************************************/ -unsigned long GetTimerCnt(void); - -/************************************************************************************ -// 获取data Flash数据存取索引号 // -// 输入参数 code : // -// 0 : 获取APP重编程请求标志索引号 // -// 1 : 获取2E服务0xF110的索引号 // -// 2 : 获取2E服务0xF190的索引号 // -// 3 : 获取2E服务0xF197的索引号 // -// 4 : 获取2E服务0xF198的索引号 // -// 5 : 获取2E服务0xF199的索引号 // -// 6 : 获取2E服务0xF19D的索引号 // -// 7 : 获取2E服务0xF112的索引号 // -// 8 : 获取19服务0xF00616的索引号 // -// 9 : 获取19服务0xF00617的索引号 // -// 10 : 获取19服务0x918112的索引号 // -// 11 : 获取19服务0x918114的索引号 // -// 12 : 获取19服务0x918171的索引号 // -// 13 : 获取19服务0x918312的索引号 // -// 14 : 获取19服务0x918314的索引号 // -// 15 : 获取19服务0x918371的索引号 // -// 16 : 获取19服务0x918412的索引号 // -// 17 : 获取19服务0x918414的索引号 // -// 18 : 获取19服务0x918471的索引号 // -// 19 : 获取19服务0x918611的索引号 // -// 20 : 获取19服务0x918614的索引号 // -// 21 : 获取19服务0xC07300的索引号 -// // -// 返回值: // -// 数据索引号 // -// // -************************************************************************************/ -unsigned long GetDataFlashAddress(unsigned char code); - -/************************************************************************************ -// 获取AC硬件版本 // -// 输入参数 hdv : // -// 指向读取数据存入的缓冲区的地址 // -// // -// 返回值: // -// // -// // -************************************************************************************/ -void GetHardwareVersion(unsigned char* hdv); - -/************************************************************************************ -// 获取AC软件版本 // -// 输入参数 swv : // -// 指向读取数据存入的缓冲区的地址 // -// // -// 返回值: // -// // -// // -************************************************************************************/ -void GetSoftwareVersion(unsigned char* swv); - - -/************************************************************************************ -// 获取AC生产日期 // -// 输入参数 *date : // -// data[0] = YEAR // -// data[1] = MONTH // -// data[0] = DAY // -// // -// 返回值: // -// // -// // -************************************************************************************/ -void GetManufacturingDate(unsigned char* date); - -/************************************************************************************ -// 获取Can总线出错状态 // -// 输入参数 : // -// // -// 返回值: Can总线出错状态 // -// // -// // -************************************************************************************/ -unsigned char GetCanBusOffErr(void); - -/************************************************************************************ -// 获取历史成功编程次数 // -// 输入参数 // -// // -// 返回值: 历史成功编程次数 // -// // -// // -************************************************************************************/ -unsigned char GetProgrammingCounter(void); - -/************************************************************************************ -// 获取历史编程次数 // -// 输入参数 // -// // -// 返回值: 历史编程次数 // -// // -// // -************************************************************************************/ -unsigned char GetProgrammingAttempCounter(void); - -/************************************************************************************ -// 清除DTC数据 // -// 输入参数 // -// // -// 返回值: 状态 // -// // -// // -************************************************************************************/ -unsigned char Clear_DTC_Data(void); - diff --git a/ECU_BOOT/diagnose/Dcm/_Types.h b/ECU_BOOT/diagnose/Dcm/_Types.h deleted file mode 100644 index 28a916a..0000000 --- a/ECU_BOOT/diagnose/Dcm/_Types.h +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************/ -#ifndef _TYPES_H -#define _TYPES_H - -/****************************************************************************** - * Description: : Include File Section -******************************************************************************/ - - -/****************************************************************************** - * Description: : Macro Description Section -******************************************************************************/ - -typedef signed char int8; -typedef signed int int16; -typedef signed long int32; -typedef unsigned char uint8; -typedef unsigned int uint16; -typedef unsigned long uint32; -typedef unsigned char bool1; -typedef union{ - uint32 word; - uint8 byte[4]; -}long2char_t; - -#ifndef _ON -# define _ON 1U -#endif - -#ifndef _OFF -#define _OFF 0U -#endif - - -#ifndef _TRUE -# define _TRUE 1U -#endif - -#ifndef _FALSE -# define _FALSE 0U -#endif - - -#ifndef _HIGH -# define _HIGH 1U -#endif - -#ifndef _LOW -# define _LOW 0U -#endif - - -#ifndef _ACTIVE -# define _ACTIVE 1U -#endif - -#ifndef _INACTIVE -# define _INACTIVE 0U -#endif - - -#ifndef _NULL -# define _NULL 0U -#endif - -/* NULL_PTR define with a void pointer to zero definition*/ -#ifndef _NULL_PTR -# define _NULL_PTR ((void *)0) -#endif - -/****************************************************************************** - * Description: : Structure Type Declaration Section -******************************************************************************/ - - -/****************************************************************************** - * Description: : Global Variable Declaration Section -******************************************************************************/ - - -/****************************************************************************** - * Description: : Global Function Prototype Declaration -******************************************************************************/ - - -#endif diff --git a/ECU_BOOT/diagnose/Dcm/app_to_dcm.h b/ECU_BOOT/diagnose/Dcm/app_to_dcm.h deleted file mode 100644 index bf0221e..0000000 --- a/ECU_BOOT/diagnose/Dcm/app_to_dcm.h +++ /dev/null @@ -1,15 +0,0 @@ -/*********************************************************************************************************************** -* File Name : app_to_dcm.h -* Version : -* Device(s) : R5F10BLG -* Tool-Chain : CA78K0R -* Description : -* Creation Date: -***********************************************************************************************************************/ - -#ifndef APP_TO_DCM_H -#define APP_TO_DCM_H - -#define DMK_A01_03_VERSION (5) - -#endif \ No newline at end of file diff --git a/ECU_BOOT/diagnose/Dcm/can_drv.h b/ECU_BOOT/diagnose/Dcm/can_drv.h deleted file mode 100644 index 1a4d635..0000000 --- a/ECU_BOOT/diagnose/Dcm/can_drv.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef CAN_DRV_H -#define CAN_DRV_H - -/****************************************************************************** -Macro definitions -******************************************************************************/ -#define R_CAN_GRAMINIT_ON (0x8UL) -#define R_CAN_GSLPSTS_ON (0x4UL) -#define R_CAN_GRSTSTS_ON (0x1UL) -#define R_CAN_CSLPSTS_ON (0x4UL) -#define R_CAN_CHLTSTS_ON (0x2UL) -#define R_CAN_CRSTSTS_ON (0x1UL) -#define R_CAN_TMTRM_ON (0x8U) -#define R_CAN_TMTR_ON (0x1U) -#define R_CAN_AFLDAE_ON (0x100UL) -#define R_CAN_GSLPR_MASK (0x4UL) -#define R_CAN_GMDC_MASK (0x3UL) -#define R_CAN_CSLPR_MASK (0x4UL) -#define R_CAN_CHMDC_MASK (0x3UL) - -/****************************************************************************** -Exported global variables and functions (to be accessed by other files) -******************************************************************************/ -//void R_CAN_Init( void ); -//bool R_CAN_Send_TxBuf0(uint32_t can_id, uint8_t dlc, uint8_t msg[8]); -//bool R_CAN_Receive_RxBuf0(uint32_t * p_can_id, uint8_t * p_dlc, uint8_t msg[8]); - -/***************************************************/ -/*** Compressor CAN0 signals ****/ -/***** RX *****/ - - -/***** TX *****/ - - - -/***************************************************/ -/*** MAIN CAN signals ****/ -/***** TX *****/ - - - - -/***** RX *****/ -typedef struct -{ - unsigned int RcvId:11; - unsigned int RcvDLC:4; - - unsigned int VCU_AC_EnableCommand:1; -}VCU_DisplayInfo_t; - -typedef struct -{ - unsigned int RcvId:11; - unsigned int RcvDLC:4; - - unsigned int HMI_AcKeyState:3; - unsigned int HMI_BlowerLevelKey:2; - unsigned int HMI_IntakeAirKey:1; -}HMI_ControlCommand_t; - -typedef struct -{ - unsigned int RcvId:11; - unsigned int RcvDLC:4; - - unsigned char Data[8]; -}TEST_AC_DiagReq_t; - -typedef struct -{ - unsigned int RcvId:11; - unsigned int RcvDLC:4; - - unsigned char Data[8]; -}TEST_Func_DiagReq_t; - - -typedef struct { - unsigned int lword[4]; -}can_cre_type; - -#define CAN_RX_RULE_NUM 5 -#define CAN_PAGE_RX_RULE_IDX_MASK 0xfU -#define CAN_RX_RULE_PAGE_IDX_BIT_POS 4U -/***************************************************/ -/**********************CAN FRAME********************/ -typedef struct -{ - unsigned int ID; - unsigned int * addr; -}Can_Frame_Format; - - - -#define COMP_Information_ID 0x300 -#define AC_CurrentStatus_ID 0x32B -#define AC_COMP_Information_ID 0x35B - - - -#define VCU_DisplayInfo_ID 0x310 -#define HMI_ControlCommand_ID 0x348 -#define TEST_AC_DiagReq_ID 0x787//0x7C6 -#define TEST_Func_DiagReq_ID 0x7DF - - - - -extern volatile VCU_DisplayInfo_t VCU_DisplayInfo ; -extern volatile HMI_ControlCommand_t HMI_ControlCommand ; -extern volatile TEST_AC_DiagReq_t TEST_AC_DiagReq ; -extern volatile TEST_Func_DiagReq_t TEST_Func_DiagReq ; -extern const Can_Frame_Format CanBufDsc[]; - -#endif diff --git a/ECU_BOOT/diagnose/api.h b/ECU_BOOT/diagnose/api.h deleted file mode 100644 index 6817c93..0000000 --- a/ECU_BOOT/diagnose/api.h +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef DCM_API_H -#define DCM_API_H - -typedef unsigned char CanIf_HwHandleType; -typedef unsigned char CanIf_CanDlcType; -typedef unsigned char CanIf_CanDataType; -typedef unsigned int CanIf_CanIdType; - - -/* 此函数在收到CAN数据后面调用 */ -extern void RxIndicationCanIf_Messages( - CanIf_HwHandleType Hrh, /* 此参数暂时不明,先置0 */ - CanIf_CanIdType LeCanIf_e_CanId, /* CAN ID */ - CanIf_CanDlcType LeCanIf_e_CanDlc, /* CAN数据长度 */ - CanIf_CanDataType* LeCanIf_e_CanSduPtr); /* 指向CAN接收数据缓存 */ -/* 初始化 上电调用 */ -extern void InitCanTp_Parameter(void); -extern void InitDcm_Parameter (void); - -/**下面函数在主程序调用,能否在中断里调用要具体处理时间,**/ -extern void MngDcm_1ms_Sever(void); -void BootProgramSessionDeal(void); -#endif - diff --git a/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx.bak b/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx.bak deleted file mode 100644 index 47b1b3a..0000000 Binary files a/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx.bak and /dev/null differ diff --git a/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx.lib b/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx.lib deleted file mode 100644 index aedf02b..0000000 Binary files a/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx.lib and /dev/null differ diff --git a/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx_bak2.lib b/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx_bak2.lib deleted file mode 100644 index a6b33d6..0000000 Binary files a/ECU_BOOT/diagnose/lib/UDS_Lib_boot_cacx_bak2.lib and /dev/null differ diff --git a/ECU_BOOT/diagnose/lib/UDS_lib_boot_cacx_bak.lib b/ECU_BOOT/diagnose/lib/UDS_lib_boot_cacx_bak.lib deleted file mode 100644 index 643223d..0000000 Binary files a/ECU_BOOT/diagnose/lib/UDS_lib_boot_cacx_bak.lib and /dev/null differ diff --git a/ECU_BOOT/function.html b/ECU_BOOT/function.html deleted file mode 100644 index df93b04..0000000 --- a/ECU_BOOT/function.html +++ /dev/null @@ -1,487 +0,0 @@ - - - - Function list - - - MCU name: RL78/F13(ROM:128KB)
Chip name: R5F10BLG
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Module File Macro Function Default Status
Common
r_main.c r_main.c Used
void main(void) main Used
void R_MAIN_UserInit(void) R_MAIN_UserInit Used
r_systeminit.c r_systeminit.c Used
void R_Systeminit(void) R_Systeminit Used
void hdwinit(void) hdwinit Used
r_cg_macrodriver.h r_cg_macrodriver.h Used
r_cg_userdefine.h r_cg_userdefine.h Used
r_lk.dr r_lk.dr Used
Clock Generator
r_cg_cgc.c r_cg_cgc.c Used
void R_CGC_Create(void) R_CGC_Create Used
MD_STATUS R_CGC_Set_ClockMode(enum ClockMode mode) R_CGC_Set_ClockMode Unused
void R_CGC_ClockMonitor_Start(void) R_CGC_ClockMonitor_Start Unused
void R_CGC_ClockMonitor_Stop(void) R_CGC_ClockMonitor_Stop Unused
void R_CGC_StackPointer_Start(void) R_CGC_StackPointer_Start Unused
void R_CGC_StackPointer_Stop(void) R_CGC_StackPointer_Stop Unused
void R_CGC_RAMECC_Start(void) R_CGC_RAMECC_Start Unused
void R_CGC_RAMECC_Stop(void) R_CGC_RAMECC_Stop Unused
r_cg_cgc_user.c r_cg_cgc_user.c Used
void R_CGC_Create_UserInit(void) R_CGC_Create_UserInit Unused
void R_CGC_Get_ResetSource(void) R_CGC_Get_ResetSource Used
__interrupt static void r_cgc_clockmonitor_interrupt(void) r_cgc_clockmonitor_interrupt Unused
__interrupt static void r_cgc_stackpointer_interrupt(void) r_cgc_stackpointer_interrupt Unused
__interrupt static void r_cgc_ram_ecc_interrupt(void) r_cgc_ram_ecc_interrupt Unused
r_cg_cgc.h r_cg_cgc.h Used
Port
r_cg_port.c r_cg_port.c Used
void R_PORT_Create(void) R_PORT_Create Used
r_cg_port_user.c r_cg_port_user.c Used
void R_PORT_Create_UserInit(void) R_PORT_Create_UserInit Unused
r_cg_port.h r_cg_port.h Used
Interrupt
r_cg_intc.c r_cg_intc.c Unused
INTP
void R_INTC_Create(void) R_INTC_Create Unused
INTP0
void R_INTC0_Start(void) R_INTC0_Start Unused
void R_INTC0_Stop(void) R_INTC0_Stop Unused
INTP1
void R_INTC1_Start(void) R_INTC1_Start Unused
void R_INTC1_Stop(void) R_INTC1_Stop Unused
INTP2
void R_INTC2_Start(void) R_INTC2_Start Unused
void R_INTC2_Stop(void) R_INTC2_Stop Unused
INTP3
void R_INTC3_Start(void) R_INTC3_Start Unused
void R_INTC3_Stop(void) R_INTC3_Stop Unused
INTP4
void R_INTC4_Start(void) R_INTC4_Start Unused
void R_INTC4_Stop(void) R_INTC4_Stop Unused
INTP5
void R_INTC5_Start(void) R_INTC5_Start Unused
void R_INTC5_Stop(void) R_INTC5_Stop Unused
INTP6
void R_INTC6_Start(void) R_INTC6_Start Unused
void R_INTC6_Stop(void) R_INTC6_Stop Unused
INTP7
void R_INTC7_Start(void) R_INTC7_Start Unused
void R_INTC7_Stop(void) R_INTC7_Stop Unused
INTP8
void R_INTC8_Start(void) R_INTC8_Start Unused
void R_INTC8_Stop(void) R_INTC8_Stop Unused
INTP9
void R_INTC9_Start(void) R_INTC9_Start Unused
void R_INTC9_Stop(void) R_INTC9_Stop Unused
INTP10
void R_INTC10_Start(void) R_INTC10_Start Unused
void R_INTC10_Stop(void) R_INTC10_Stop Unused
INTP11
void R_INTC11_Start(void) R_INTC11_Start Unused
void R_INTC11_Stop(void) R_INTC11_Stop Unused
KEY
void R_KEY_Create(void) R_KEY_Create Unused
void R_KEY_Start(void) R_KEY_Start Unused
void R_KEY_Stop(void) R_KEY_Stop Unused
r_cg_intc_user.c r_cg_intc_user.c Unused
INTP
void R_INTC_Create_UserInit(void) R_INTC_Create_UserInit Unused
__interrupt static void r_intc0_interrupt(void) r_intc0_interrupt Unused
__interrupt static void r_intc1_interrupt(void) r_intc1_interrupt Unused
__interrupt static void r_intc2_interrupt(void) r_intc2_interrupt Unused
__interrupt static void r_intc3_interrupt(void) r_intc3_interrupt Unused
__interrupt static void r_intc4_interrupt(void) r_intc4_interrupt Unused
__interrupt static void r_intc5_interrupt(void) r_intc5_interrupt Unused
__interrupt static void r_intc6_interrupt(void) r_intc6_interrupt Unused
__interrupt static void r_intc7_interrupt(void) r_intc7_interrupt Unused
__interrupt static void r_intc8_interrupt(void) r_intc8_interrupt Unused
__interrupt static void r_intc9_interrupt(void) r_intc9_interrupt Unused
__interrupt static void r_intc10_interrupt(void) r_intc10_interrupt Unused
__interrupt static void r_intc11_interrupt(void) r_intc11_interrupt Unused
KEY
void R_KEY_Create_UserInit(void) R_KEY_Create_UserInit Unused
__interrupt static void r_key_interrupt(void) r_key_interrupt Unused
r_cg_intc.h r_cg_intc.h Unused
Serial
r_cg_serial.c r_cg_serial.c Unused
SAU0
void R_SAU0_Create(void) R_SAU0_Create Unused
void R_SAU0_Set_PowerOff(void) R_SAU0_Set_PowerOff Unused
void R_SAU0_Set_SnoozeOn(void) R_SAU0_Set_SnoozeOn Unused
void R_SAU0_Set_SnoozeOff(void) R_SAU0_Set_SnoozeOff Unused
UART0
void R_UART0_Create(void) R_UART0_Create Unused
void R_UART0_Start(void) R_UART0_Start Unused
void R_UART0_Stop(void) R_UART0_Stop Unused
MD_STATUS R_UART0_Send(uint8_t const * tx_buf, uint16_t tx_num) R_UART0_Send Unused
MD_STATUS R_UART0_Receive(uint8_t const * rx_buf, uint16_t rx_num) R_UART0_Receive Unused
CSI00
void R_CSI00_Create(void) R_CSI00_Create Unused
void R_CSI00_Start(void) R_CSI00_Start Unused
void R_CSI00_Stop(void) R_CSI00_Stop Unused
MD_STATUS R_CSI00_Send(uint8_t const * tx_buf, uint16_t tx_num) R_CSI00_Send Unused
MD_STATUS R_CSI00_Receive(uint8_t const * rx_buf, uint16_t rx_num) R_CSI00_Receive Unused
MD_STATUS R_CSI00_Send_Receive(uint8_t const * tx_buf, uint16_t tx_num, uint8_t const * rx_buf) R_CSI00_Send_Receive Unused
CSI01
void R_CSI01_Create(void) R_CSI01_Create Unused
void R_CSI01_Start(void) R_CSI01_Start Unused
void R_CSI01_Stop(void) R_CSI01_Stop Unused
MD_STATUS R_CSI01_Send(uint8_t const * tx_buf, uint16_t tx_num) R_CSI01_Send Unused
MD_STATUS R_CSI01_Receive(uint8_t const * rx_buf, uint16_t rx_num) R_CSI01_Receive Unused
MD_STATUS R_CSI01_Send_Receive(uint8_t const * tx_buf, uint16_t tx_num, uint8_t const * rx_buf) R_CSI01_Send_Receive Unused
IIC00
void R_IIC00_Create(void) R_IIC00_Create Unused
void R_IIC00_Master_Send(uint8_t adr, uint8_t const * tx_buf, uint16_t txnum) R_IIC00_Master_Send Unused
void R_IIC00_Master_Receive(uint8_t adr, uint8_t const * rx_buf, uint16_t rx_num) R_IIC00_Master_Receive Unused
void R_IIC00_Stop(void) R_IIC00_Stop Unused
void R_IIC00_StartCondition(void) R_IIC00_StartCondition Unused
void R_IIC00_StopCondition(void) R_IIC00_StopCondition Unused
IIC01
void R_IIC01_Create(void) R_IIC01_Create Unused
void R_IIC01_Master_Send(uint8_t adr, uint8_t const * tx_buf, uint16_t txnum) R_IIC01_Master_Send Unused
void R_IIC01_Master_Receive(uint8_t adr, uint8_t const * rx_buf, uint16_t rx_num) R_IIC01_Master_Receive Unused
void R_IIC01_Stop(void) R_IIC01_Stop Unused
void R_IIC01_StartCondition(void) R_IIC01_StartCondition Unused
void R_IIC01_StopCondition(void) R_IIC01_StopCondition Unused
SAU1
void R_SAU1_Create(void) R_SAU1_Create Unused
void R_SAU1_Set_PowerOff(void) R_SAU1_Set_PowerOff Unused
UART1
void R_UART1_Create(void) R_UART1_Create Unused
void R_UART1_Start(void) R_UART1_Start Unused
void R_UART1_Stop(void) R_UART1_Stop Unused
MD_STATUS R_UART1_Send(uint8_t const * tx_buf, uint16_t tx_num) R_UART1_Send Unused
MD_STATUS R_UART1_Receive(uint8_t const * rx_buf, uint16_t rx_num) R_UART1_Receive Unused
CSI10
void R_CSI10_Create(void) R_CSI10_Create Unused
void R_CSI10_Start(void) R_CSI10_Start Unused
void R_CSI10_Stop(void) R_CSI10_Stop Unused
MD_STATUS R_CSI10_Send(uint8_t const * tx_buf, uint16_t tx_num) R_CSI10_Send Unused
MD_STATUS R_CSI10_Receive(uint8_t const * rx_buf, uint16_t rx_num) R_CSI10_Receive Unused
MD_STATUS R_CSI10_Send_Receive(uint8_t const * tx_buf, uint16_t tx_num, uint8_t const * rx_buf) R_CSI10_Send_Receive Unused
CSI11
void R_CSI11_Create(void) R_CSI11_Create Unused
void R_CSI11_Start(void) R_CSI11_Start Unused
void R_CSI11_Stop(void) R_CSI11_Stop Unused
MD_STATUS R_CSI11_Send(uint8_t const * tx_buf, uint16_t tx_num) R_CSI11_Send Unused
MD_STATUS R_CSI11_Receive(uint8_t const * rx_buf, uint16_t rx_num) R_CSI11_Receive Unused
MD_STATUS R_CSI11_Send_Receive(uint8_t const * tx_buf, uint16_t tx_num, uint8_t const * rx_buf) R_CSI11_Send_Receive Unused
IIC10
void R_IIC10_Create(void) R_IIC10_Create Unused
void R_IIC10_Master_Send(uint8_t adr, uint8_t const * tx_buf, uint16_t txnum) R_IIC10_Master_Send Unused
void R_IIC10_Master_Receive(uint8_t adr, uint8_t const * rx_buf, uint16_t rx_num) R_IIC10_Master_Receive Unused
void R_IIC10_Stop(void) R_IIC10_Stop Unused
void R_IIC10_StartCondition(void) R_IIC10_StartCondition Unused
void R_IIC10_StopCondition(void) R_IIC10_StopCondition Unused
IIC11
void R_IIC11_Create(void) R_IIC11_Create Unused
void R_IIC11_Master_Send(uint8_t adr, uint8_t const * tx_buf, uint16_t txnum) R_IIC11_Master_Send Unused
void R_IIC11_Master_Receive(uint8_t adr, uint8_t const * rx_buf, uint16_t rx_num) R_IIC11_Master_Receive Unused
void R_IIC11_Stop(void) R_IIC11_Stop Unused
void R_IIC11_StartCondition(void) R_IIC11_StartCondition Unused
void R_IIC11_StopCondition(void) R_IIC11_StopCondition Unused
IICA0
void R_IICA0_Create(void) R_IICA0_Create Unused
MD_STATUS R_IICA0_Master_Send(uint8_t adr, uint8_t * const tx_buf, uint16_t tx_num, uint8_t wait) R_IICA0_Master_Send Unused
MD_STATUS R_IICA0_Master_Receive(uint8_t adr, uint8_t * const rx_buf, uint16_t rx_num, uint8_t wait) R_IICA0_Master_Receive Unused
void R_IICA0_Slave_Send(uint8_t * const tx_buf, uint16_t tx_num) R_IICA0_Slave_Send Unused
void R_IICA0_Slave_Receive(uint8_t * const rx_buf, uint16_t rx_num) R_IICA0_Slave_Receive Unused
void R_IICA0_Stop(void) R_IICA0_Stop Unused
void R_IICA0_StopCondition(void) R_IICA0_StopCondition Unused
void R_IICA0_Set_SnoozeOn(void) R_IICA0_Set_SnoozeOn Unused
void R_IICA0_Set_SnoozeOff(void) R_IICA0_Set_SnoozeOff Unused
void R_IICA0_Set_PowerOff(void) R_IICA0_Set_PowerOff Unused
r_cg_serial_user.c r_cg_serial_user.c Unused
SAU0
void R_SAU0_Create_UserInit(void) R_SAU0_Create_UserInit Unused
UART0
__interrupt void r_uart0_interrupt_receive(void) r_uart0_interrupt_receive Unused
__interrupt void r_uart0_interrupt_send(void) r_uart0_interrupt_send Unused
void r_uart0_callback_receiveend(void) r_uart0_callback_receiveend Unused
void r_uart0_callback_sendend(void) r_uart0_callback_sendend Unused
void r_uart0_callback_error(uint16_t err_type) r_uart0_callback_error Unused
void r_uart0_callback_softwareoverrun(uint16_t err_type) r_uart0_callback_softwareoverrun Unused
CSI00
__interrupt void r_csi00_interrupt(void) r_csi00_interrupt Unused
void r_csi00_callback_receiveend(void) r_csi00_callback_receiveend Unused
void r_csi00_callback_error(uint16_t err_type) r_csi00_callback_error Unused
void r_csi00_callback_sendend(void) r_csi00_callback_sendend Unused
CSI01
__interrupt void r_csi01_interrupt(void) r_csi01_interrupt Unused
void r_csi01_callback_receiveend(void) r_csi01_callback_receiveend Unused
void r_csi01_callback_error(uint16_t err_type) r_csi01_callback_error Unused
void r_csi01_callback_sendend(void) r_csi01_callback_sendend Unused
IIC00
__interrupt void r_iic00_interrupt(void) r_iic00_interrupt Unused
void r_iic00_callback_master_receiveend(void) r_iic00_callback_master_receiveend Unused
void r_iic00_callback_master_sendend(void) r_iic00_callback_master_sendend Unused
void r_iic00_callback_master_error(MD_STATUS flag) r_iic00_callback_master_error Unused
IIC01
__interrupt void r_iic01_interrupt(void) r_iic01_interrupt Unused
void r_iic01_callback_master_receiveend(void) r_iic01_callback_master_receiveend Unused
void r_iic01_callback_master_sendend(void) r_iic01_callback_master_sendend Unused
void r_iic01_callback_master_error(MD_STATUS flag) r_iic01_callback_master_error Unused
SAU1
void R_SAU1_Create_UserInit(void) R_SAU1_Create_UserInit Unused
UART1
__interrupt void r_uart1_interrupt_receive(void) r_uart1_interrupt_receive Unused
__interrupt void r_uart1_interrupt_send(void) r_uart1_interrupt_send Unused
void r_uart1_callback_receiveend(void) r_uart1_callback_receiveend Unused
void r_uart1_callback_sendend(void) r_uart1_callback_sendend Unused
void r_uart1_callback_error(uint16_t err_type) r_uart1_callback_error Unused
void r_uart1_callback_softwareoverrun(uint16_t err_type) r_uart1_callback_softwareoverrun Unused
CSI10
__interrupt void r_csi10_interrupt(void) r_csi10_interrupt Unused
void r_csi10_callback_receiveend(void) r_csi10_callback_receiveend Unused
void r_csi10_callback_error(uint16_t err_type) r_csi10_callback_error Unused
void r_csi10_callback_sendend(void) r_csi10_callback_sendend Unused
CSI11
__interrupt void r_csi11_interrupt(void) r_csi11_interrupt Unused
void r_csi11_callback_receiveend(void) r_csi11_callback_receiveend Unused
void r_csi11_callback_error(uint16_t err_type) r_csi11_callback_error Unused
void r_csi11_callback_sendend(void) r_csi11_callback_sendend Unused
IIC10
__interrupt void r_iic10_interrupt(void) r_iic10_interrupt Unused
void r_iic10_callback_master_receiveend(void) r_iic10_callback_master_receiveend Unused
void r_iic10_callback_master_sendend(void) r_iic10_callback_master_sendend Unused
void r_iic10_callback_master_error(MD_STATUS flag) r_iic10_callback_master_error Unused
IIC11
__interrupt void r_iic11_interrupt(void) r_iic11_interrupt Unused
void r_iic11_callback_master_receiveend(void) r_iic11_callback_master_receiveend Unused
void r_iic11_callback_master_sendend(void) r_iic11_callback_master_sendend Unused
void r_iic11_callback_master_error(MD_STATUS flag) r_iic11_callback_master_error Unused
IICA0
void R_IICA0_Create_UserInit(void) R_IICA0_Create_UserInit Unused
__interrupt static r_iica0_interrupt(void) r_iica0_interrupt Unused
static void r_iica0_callback_master_sendend(void) r_iica0_callback_master_sendend Unused
static void r_iica0_callback_master_receiveend(void) r_iica0_callback_master_receiveend Unused
static void r_iica0_callback_slave_sendend(void) r_iica0_callback_slave_sendend Unused
static void r_iica0_callback_slave_receiveend(void) r_iica0_callback_slave_receiveend Unused
static void r_iica0_callback_master_error(MD_STATUS flag) r_iica0_callback_master_error Unused
static void r_iica0_callback_slave_error(MD_STATUS flag) r_iica0_callback_slave_error Unused
static void r_iica0_callback_getstopcondition(void) r_iica0_callback_getstopcondition Unused
r_cg_serial.h r_cg_serial.h Unused
A/D Converter
r_cg_adc.c r_cg_adc.c Used
void R_ADC_Create(void) R_ADC_Create Used
void R_ADC_Start(void) R_ADC_Start Used
void R_ADC_Stop(void) R_ADC_Stop Used
void R_ADC_Set_OperationOn(void) R_ADC_Set_OperationOn Used
void R_ADC_Set_OperationOff(void) R_ADC_Set_OperationOff Used
void R_ADC_Get_Result(uint16_t * const buffer) R_ADC_Get_Result Used
void R_ADC_Get_Result_8bit(uint8_t * const buffer) R_ADC_Get_Result_8bit Unused
MD_STATUS R_ADC_Set_ADChannel(ad_channel_t channel) R_ADC_Set_ADChannel Unused
void R_ADC_Set_SnoozeOn(void) R_ADC_Set_SnoozeOn Unused
void R_ADC_Set_SnoozeOff(void) R_ADC_Set_SnoozeOff Unused
MD_STATUS R_ADC_Set_TestChannel(test_channel_t channel) R_ADC_Set_TestChannel Unused
void R_ADC_Set_PowerOff(void) R_ADC_Set_PowerOff Unused
r_cg_adc_user.c r_cg_adc_user.c Used
void R_ADC_Create_UserInit(void) R_ADC_Create_UserInit Unused
__interrupt static void r_adc_interrupt(void) r_adc_interrupt Unused
r_cg_adc.h r_cg_adc.h Used
Timer
r_cg_timer.c r_cg_timer.c Used
TAU0
void R_TAU0_Create(void) R_TAU0_Create Used
void R_TAU0_Set_PowerOff(void) R_TAU0_Set_PowerOff Unused
Channel0
void R_TAU0_Channel0_Start(void) R_TAU0_Channel0_Start Used
void R_TAU0_Channel0_Stop(void) R_TAU0_Channel0_Stop Used
void R_TAU0_Channel0_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel0_Get_PulseWidth Unused
void R_TAU0_Channel0_Set_SoftwareTriggerOn(void) R_TAU0_Channel0_Set_SoftwareTriggerOn Unused
Channel1
void R_TAU0_Channel1_Start(void) R_TAU0_Channel1_Start Unused
void R_TAU0_Channel1_Higher8bits_Start(void) R_TAU0_Channel1_Higher8bits_Start Unused
void R_TAU0_Channel1_Lower8bits_Start(void) R_TAU0_Channel1_Lower8bits_Start Unused
void R_TAU0_Channel1_Stop(void) R_TAU0_Channel1_Stop Unused
void R_TAU0_Channel1_Higher8bits_Stop(void) R_TAU0_Channel1_Higher8bits_Stop Unused
void R_TAU0_Channel1_Lower8bits_Stop(void) R_TAU0_Channel1_Lower8bits_Stop Unused
void R_TAU0_Channel1_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel1_Get_PulseWidth Unused
Channel2
void R_TAU0_Channel2_Start(void) R_TAU0_Channel2_Start Used
void R_TAU0_Channel2_Stop(void) R_TAU0_Channel2_Stop Used
void R_TAU0_Channel2_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel2_Get_PulseWidth Unused
void R_TAU0_Channel2_Set_SoftwareTriggerOn(void) R_TAU0_Channel2_Set_SoftwareTriggerOn Unused
Channel3
void R_TAU0_Channel3_Start(void) R_TAU0_Channel3_Start Unused
void R_TAU0_Channel3_Higher8bits_Start(void) R_TAU0_Channel3_Higher8bits_Start Unused
void R_TAU0_Channel3_Lower8bits_Start(void) R_TAU0_Channel3_Lower8bits_Start Unused
void R_TAU0_Channel3_Stop(void) R_TAU0_Channel3_Stop Unused
void R_TAU0_Channel3_Higher8bits_Stop(void) R_TAU0_Channel3_Higher8bits_Stop Unused
void R_TAU0_Channel3_Lower8bits_Stop(void) R_TAU0_Channel3_Lower8bits_Stop Unused
void R_TAU0_Channel3_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel3_Get_PulseWidth Unused
Channel4
void R_TAU0_Channel4_Start(void) R_TAU0_Channel4_Start Unused
void R_TAU0_Channel4_Stop(void) R_TAU0_Channel4_Stop Unused
void R_TAU0_Channel4_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel4_Get_PulseWidth Unused
void R_TAU0_Channel4_Set_SoftwareTriggerOn(void) R_TAU0_Channel4_Set_SoftwareTriggerOn Unused
Channel5
void R_TAU0_Channel5_Start(void) R_TAU0_Channel5_Start Unused
void R_TAU0_Channel5_Stop(void) R_TAU0_Channel5_Stop Unused
void R_TAU0_Channel5_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel5_Get_PulseWidth Unused
Channel6
void R_TAU0_Channel6_Start(void) R_TAU0_Channel6_Start Unused
void R_TAU0_Channel6_Stop(void) R_TAU0_Channel6_Stop Unused
void R_TAU0_Channel6_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel6_Get_PulseWidth Unused
void R_TAU0_Channel6_Set_SoftwareTriggerOn(void) R_TAU0_Channel6_Set_SoftwareTriggerOn Unused
Channel7
void R_TAU0_Channel7_Start(void) R_TAU0_Channel7_Start Unused
void R_TAU0_Channel7_Stop(void) R_TAU0_Channel7_Stop Unused
void R_TAU0_Channel7_Get_PulseWidth(uint32_t * const width) R_TAU0_Channel7_Get_PulseWidth Unused
TAU1
void R_TAU1_Create(void) R_TAU1_Create Unused
void R_TAU1_Set_PowerOff(void) R_TAU1_Set_PowerOff Unused
Channel0
void R_TAU1_Channel0_Start(void) R_TAU1_Channel0_Start Unused
void R_TAU1_Channel0_Stop(void) R_TAU1_Channel0_Stop Unused
void R_TAU1_Channel0_Get_PulseWidth(uint32_t * const width) R_TAU1_Channel0_Get_PulseWidth Unused
void R_TAU1_Channel0_Set_SoftwareTriggerOn(void) R_TAU1_Channel0_Set_SoftwareTriggerOn Unused
Channel1
void R_TAU1_Channel1_Start(void) R_TAU1_Channel1_Start Unused
void R_TAU1_Channel1_Higher8bits_Start(void) R_TAU1_Channel1_Higher8bits_Start Unused
void R_TAU1_Channel1_Lower8bits_Start(void) R_TAU1_Channel1_Lower8bits_Start Unused
void R_TAU1_Channel1_Stop(void) R_TAU1_Channel1_Stop Unused
void R_TAU1_Channel1_Higher8bits_Stop(void) R_TAU1_Channel1_Higher8bits_Stop Unused
void R_TAU1_Channel1_Lower8bits_Stop(void) R_TAU1_Channel1_Lower8bits_Stop Unused
void R_TAU1_Channel1_Get_PulseWidth(uint32_t * const width) R_TAU1_Channel1_Get_PulseWidth Unused
Channel2
void R_TAU1_Channel2_Start(void) R_TAU1_Channel2_Start Unused
void R_TAU1_Channel2_Stop(void) R_TAU1_Channel2_Stop Unused
void R_TAU1_Channel2_Get_PulseWidth(uint32_t * const width) R_TAU1_Channel2_Get_PulseWidth Unused
void R_TAU1_Channel2_Set_SoftwareTriggerOn(void) R_TAU1_Channel2_Set_SoftwareTriggerOn Unused
Channel3
void R_TAU1_Channel3_Start(void) R_TAU1_Channel3_Start Unused
void R_TAU1_Channel3_Higher8bits_Start(void) R_TAU1_Channel3_Higher8bits_Start Unused
void R_TAU1_Channel3_Lower8bits_Start(void) R_TAU1_Channel3_Lower8bits_Start Unused
void R_TAU1_Channel3_Stop(void) R_TAU1_Channel3_Stop Unused
void R_TAU1_Channel3_Higher8bits_Stop(void) R_TAU1_Channel3_Higher8bits_Stop Unused
void R_TAU1_Channel3_Lower8bits_Stop(void) R_TAU1_Channel3_Lower8bits_Stop Unused
void R_TAU1_Channel3_Get_PulseWidth(uint32_t * const width) R_TAU1_Channel3_Get_PulseWidth Unused
TMRJ0
R_TMR_RJ0_Create R_TMR_RJ0_Create Unused
R_TMR_RJ0_Start R_TMR_RJ0_Start Unused
R_TMR_RJ0_Stop R_TMR_RJ0_Stop Unused
R_TMR_RJ0_Get_PulseWidth R_TMR_RJ0_Get_PulseWidth Unused
R_TMR_RJ0_Set_PowerOff R_TMR_RJ0_Set_PowerOff Unused
TMRD0
R_TMR_RD0_Create R_TMR_RD0_Create Unused
R_TMR_RD0_Start R_TMR_RD0_Start Unused
R_TMR_RD0_Stop R_TMR_RD0_Stop Unused
R_TMR_RD0_Get_PulseWidth R_TMR_RD0_Get_PulseWidth Unused
R_TMR_RD0_Set_PowerOff R_TMR_RD0_Set_PowerOff Unused
R_TMR_RD0_ForcedOutput_Start R_TMR_RD0_ForcedOutput_Start Unused
R_TMR_RD0_ForcedOutput_Stop R_TMR_RD0_ForcedOutput_Stop Unused
TMRD1
R_TMR_RD1_Create R_TMR_RD1_Create Unused
R_TMR_RD1_Start R_TMR_RD1_Start Unused
R_TMR_RD1_Stop R_TMR_RD1_Stop Unused
R_TMR_RD1_Get_PulseWidth R_TMR_RD1_Get_PulseWidth Unused
R_TMR_RD1_Set_PowerOff R_TMR_RD1_Set_PowerOff Unused
R_TMR_RD1_ForcedOutput_Start R_TMR_RD1_ForcedOutput_Start Unused
R_TMR_RD1_ForcedOutput_Stop R_TMR_RD1_ForcedOutput_Stop Unused
r_cg_timer_user.c r_cg_timer_user.c Used
TAU0
void R_TAUn_Create_UserInit(void) R_TAU0_Create_UserInit Unused
Channel0
__interrupt static void r_tau0_channel0_interrupt(void) r_tau0_channel0_interrupt Unused
Channel1
__interrupt static void r_tau0_channel1_interrupt(void) r_tau0_channel1_interrupt Unused
__interrupt static void r_tau0_channel1_higher8bits_interrupt(void) r_tau0_channel1_higher8bits_interrupt Unused
Channel2
__interrupt static void r_tau0_channel2_interrupt(void) r_tau0_channel2_interrupt Used
Channel3
__interrupt static void r_tau0_channel3_interrupt(void) r_tau0_channel3_interrupt Unused
__interrupt static void r_tau0_channel3_higher8bits_interrupt(void) r_tau0_channel3_higher8bits_interrupt Unused
Channel4
__interrupt static void r_tau0_channel4_interrupt(void) r_tau0_channel4_interrupt Unused
Channel5
__interrupt static void r_tau0_channel5_interrupt(void) r_tau0_channel5_interrupt Unused
Channel6
__interrupt static void r_tau0_channel6_interrupt(void) r_tau0_channel6_interrupt Unused
Channel7
__interrupt static void r_tau0_channel7_interrupt(void) r_tau0_channel7_interrupt Unused
TAU1
void R_TAUn_Create_UserInit(void) R_TAU1_Create_UserInit Unused
Channel0
__interrupt static void r_tau1_channel0_interrupt(void) r_tau1_channel0_interrupt Unused
Channel1
__interrupt static void r_tau1_channel1_interrupt(void) r_tau1_channel1_interrupt Unused
__interrupt static void r_tau1_channel1_higher8bits_interrupt(void) r_tau1_channel1_higher8bits_interrupt Unused
Channel2
__interrupt static void r_tau1_channel2_interrupt(void) r_tau1_channel2_interrupt Unused
Channel3
__interrupt static void r_tau1_channel3_interrupt(void) r_tau1_channel3_interrupt Unused
__interrupt static void r_tau1_channel3_higher8bits_interrupt(void) r_tau1_channel3_higher8bits_interrupt Unused
TMRJ0
R_TMR_RJ0_Create_UserInit R_TMR_RJ0_Create_UserInit Unused
r_tmr_rj0_interrupt r_tmr_rj0_interrupt Unused
TMRD0
R_TMR_RD0_Create_UserInit R_TMR_RD0_Create_UserInit Unused
r_tmr_rd0_interrupt r_tmr_rd0_interrupt Unused
TMRD1
R_TMR_RD1_Create_UserInit R_TMR_RD1_Create_UserInit Unused
r_tmr_rd1_interrupt r_tmr_rd1_interrupt Unused
r_cg_timer.h r_cg_timer.h Used
Watchdog Timer
r_cg_wdt.c r_cg_wdt.c Used
void R_WDT_Create(void) R_WDT_Create Used
void R_WDT_Restart(void) R_WDT_Restart Used
r_cg_wdt_user.c r_cg_wdt_user.c Used
void R_WDT_Create_UserInit(void) R_WDT_Create_UserInit Unused
__interrupt static void r_wdt_interrupt(void) r_wdt_interrupt Used
r_cg_wdt.h r_cg_wdt.h Used
Real-time Clock
r_cg_rtc.c r_cg_rtc.c Unused
void R_RTC_Create(void) R_RTC_Create Unused
void R_RTC_Start(void) R_RTC_Start Unused
void R_RTC_Stop(void) R_RTC_Stop Unused
MD_STATUS R_RTC_SetHourSystem(rtc_hour_system_t hour_system) R_RTC_Set_HourSystem Unused
MD_STATUS R_RTC_Get_CounterValue(rtc_counter_value_t * const counter_read_val) R_RTC_Get_CounterValue Unused
MD_STATUS R_RTC_Set_CounterValue(rtc_counter_value_t counter_write_val) R_RTC_Set_CounterValue Unused
void R_RTC_Set_AlarmOn(void) R_RTC_Set_AlarmOn Unused
void R_RTC_Set_AlarmOff(void) R_RTC_Set_AlarmOff Unused
void R_RTC_Set_AlarmValue(rtc_alarm_value_t alarm_val) R_RTC_Set_AlarmValue Unused
void R_RTC_Get_AlarmValue(rtc_alarm_value_t * const alarm_val) R_RTC_Get_AlarmValue Unused
MD_STATUS R_RTC_Set_ConstPeriodInterruptOn(rtc_int_period_t period) R_RTC_Set_ConstPeriodInterruptOn Unused
void R_RTC_Set_ConstPeriodInterruptOff(void) R_RTC_Set_ConstPeriodInterruptOff Unused
void R_RTC_Set_RTC1HZOn(void) R_RTC_Set_RTC1HZOn Unused
void R_RTC_Set_RTC1HZOff(void) R_RTC_Set_RTC1HZOff Unused
void R_RTC_Set_PowerOff(void) R_RTC_Set_PowerOff Unused
r_cg_rtc_user.c r_cg_rtc_user.c Unused
void R_RTC_Create_UserInit(void) R_RTC_Create_UserInit Unused
__interrupt static void r_rtc_interrupt(void) r_rtc_interrupt Unused
static void r_rtc_callback_constperiod(void) r_rtc_callback_constperiod Unused
static void r_rtc_callback_alarm(void) r_rtc_callback_alarm Unused
r_cg_rtc.h r_cg_rtc.h Unused
Data Transfer Controller
r_cg_dtc.c r_cg_dtc.c Unused
void R_DTC_Create(void) R_DTC_Create Unused
void R_DTC_Set_PowerOff(void) R_DTC_Set_PowerOff Unused
r_cg_dtc_user.c r_cg_dtc_user.c Unused
void R_DTC_Create_UserInit(void) R_DTC_Create_UserInit Unused
r_cg_dtc.h r_cg_dtc.h Unused
Clock Output/Buzzer Output
r_cg_pclbuz.c r_cg_pclbuz.c Unused
PCLBUZ0
void R_PCLBUZ0_Create(void) R_PCLBUZ0_Create Unused
void R_PCLBUZ0_Start(void) R_PCLBUZ0_Start Unused
void R_PCLBUZ0_Stop(void) R_PCLBUZ0_Stop Unused
r_cg_pclbuz_user.c r_cg_pclbuz_user.c Unused
PCLBUZ0
void R_PCLBUZ0_Create_UserInit(void) R_PCLBUZ0_Create_UserInit Unused
r_cg_pclbuz.h r_cg_pclbuz.h Unused
Voltage Detector
r_cg_lvd.c r_cg_lvd.c Unused
void R_LVD_Create(void) R_LVD_Create Unused
void R_LVD_InterruptMode_Start(void) R_LVD_InterruptMode_Start Unused
r_cg_lvd_user.c r_cg_lvd_user.c Unused
void R_LVD_Create_UserInit(void) R_LVD_Create_UserInit Unused
__interrupt static void r_lvd_interrupt(void) r_lvd_interrupt Unused
r_cg_lvd.h r_cg_lvd.h Unused
- - \ No newline at end of file diff --git a/ECU_BOOT/macro.html b/ECU_BOOT/macro.html deleted file mode 100644 index 11e3b4e..0000000 --- a/ECU_BOOT/macro.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - Macro list - - - MCU name: RL78/F13(ROM:128KB)
Chip name: R5F10BLG
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Module Macro Sub Setting Status
Clock Generator Used
CGC Used
PIOR00 / TI00 P17
PIOR01 / TI01 P30
PIOR02 / TI02 P16
PIOR03 / TI03 P125
PIOR04 / TI04 P13
PIOR05 / TI05 P15
PIOR06 / TI06 P14
PIOR07 / TI07 P120
PIOR10 / TO00 P17
PIOR11 / TO01 P30
PIOR12 / TO02 P16
PIOR13 / TO03 P125
PIOR14 / TO04 P13
PIOR15 / TO05 P15
PIOR16 / TO06 P14
PIOR17 / TO07 P120
PIOR40 / RXD0/SI00/SDA00 P16
PIOR40 / TXD0/SO00 P15
PIOR40 / _SCK00/SCL00 P17
PIOR40 / _SSI00 P30
PIOR41 / SO01 P120
PIOR41 / SI01 P13
PIOR41 / _SCK01 P14
PIOR41 / _SSI01 P125
PIOR41 / SCL01 P14
PIOR41 / SDA01 P13
PIOR42 / RXD1/SI10 P11
PIOR42 / TXD1/SO10 P12
PIOR42 / _SCK10 P10
PIOR42 / _SSI10 -
PIOR42 / SCL10 P10
PIOR42 / SDA10 P11
PIOR43 / SO11 P72
PIOR43 / SI11 P70
PIOR43 / _SCK11 P71
PIOR43 / _SSI11 P73
PIOR43 / SCL11 P71
PIOR43 / SDA11 P70
PIOR44 / LTxD0 P13
PIOR44 / LRxD0 P14
PIOR46 / CTxD0 P10
PIOR46 / CRxD0 P11
PIOR50 / KR0 P70
PIOR50 / KR1 P71
PIOR50 / KR2 P72
PIOR50 / KR3 P73
PIOR50 / KR4 P74
PIOR50 / KR5 P75
PIOR50 / KR6 P76
PIOR50 / KR7 P77
PIOR52 / INTP2 P30
PIOR53 / INTP3 P17
PIOR70 / TRDCLK0/TRDIOA0 P13
PIOR71 / TRDIOB0 P125
PIOR73 / TRDIOD0 P120
Operation mode setting High speed main mode 4.0 (V) VDD 5.5 (V)
Main system clock (fMAIN) setting High-speed system clock (fMX)
fIH operation Unused
fMX operation Used
High-speed system clock setting X1 oscillation (fX)
fMX frequency 8(MHz)
Stable time 32768 (2^18/fX)(s)
fPLL operation Used
fPLL frequency 32(MHz)
Lockup wait counter 64 (2^9/fMAIN)(s)
PLL output for main system clock (fMP) setting 32 (fPLL)(MHz)
fSUB operation Unused
Internal low-speed oscillation clock (fIL) setting 15(kHz)
Low speed on-chip oscillator clock (fSL) setting 15 (fIL)(kHz)
WDT operation clock (fWDT) setting 15(kHz)
RTC operation clock 65.57 (fMX/122)(kHz)
Timer RD operation clock 32000 (fCLK)(kHz)
CPU and peripheral clock (fCLK) 32000 (fMP)(kHz)
On-chip debug operation setting Used
RRM function setting Used
Trace function setting Used
Hot plug-in function setting Unused
Security ID setting Used
Security ID 0x00000000000000000000
Security ID authentication failure setting Erase flash memory data
Output the function for confirming reset source Used
RESOUT pin setting P130 used as port pin
Illegal memory access detection function setting Unused
RAM guard function setting Unused
Port register guard function setting Unused
Interrupt register guard function setting Unused
Chip state control register guard function setting Unused
Detection of 1 bit error detection interrupt (INTRAM) Unused
CPU stack pointer monitor function setting Unused
Clock monitor function setting Unused
Data flash access control setting Disables data flash access
Port Used
PORT Used
P00
Mode Out
output value 0
P12
Mode Out
N-ch Unused
output value 0
P15
Mode Out
N-ch Unused
output value 0
P16
Mode In
Pull-up Unused
Schmitt1 buffer Used
P17
Mode In
Pull-up Unused
Schmitt1 buffer Used
P31
Mode Out
output value 0
P32
Mode In
Pull-up Unused
P50
Mode Out
output value 0
P51
Mode Out
output value 0
P52
Mode Out
output value 0
P60
Mode In
Pull-up Unused
Schmitt1 buffer Used
P63
Mode In
Pull-up Unused
Schmitt1 buffer Used
P70
Mode Out
N-ch Unused
output value 0
P71
Mode Out
N-ch Unused
output value 0
P72
Mode In
Pull-up Unused
P73
Mode Out
output value 0
P74
Mode In
Pull-up Unused
P75
Mode In
Pull-up Unused
Schmitt1 buffer Used
P76
Mode Out
output value 0
P77
Mode Out
output value 0
P90
Mode Out
output value 0
P91
Mode In
P92
Mode Out
output value 0
P93
Mode In
P95
Mode In
P96
Mode Out
output value 0
P125
Mode In
Pull-up Unused
Schmitt1 buffer Used
P130
Mode Out
output value 0
P140
Mode Out
output value 0
Interrupt Unused
Serial Unused
A/D Converter Used
ADC Used
A/D convertor operation setting Used
Comparator operation setting Stop
Resolution setting 10 bits
VREF(+) setting VDD
VREF(-) setting VSS
Trigger mode setting Software trigger mode
Operation mode setting One-shot select mode
ANI0 - ANI15 analog input selection ANI0 - ANI9
ANI24 - ANI26 analog input selection ANI27, ANI28, ANI29, ANI30
A/D channel selection ANI0
Conversion time mode Normal 1
Conversion time 4.75 (152/fCLK)(s)
Conversion result upper/lower bound value setting Generates an interrupt request (INTAD) when ADLL ADCRH ADUL
Upper bound (ADUL) value 255
Lower bound (ADLL) value 0
Use A/D interrupt (INTAD) Unused
Timer Used
TAU0 Used
Channel0
Channel 0 PWM output (master)
Cycle value 200s, (Actual value: 200)
End of timer channel 0 count, generate an interrupt (INTTM00) Unused
Duty value 0(%), (Actual value: 0%)
Initial output value 0
Output level Active-high
Output delay time No delay
Slow mode Unused
End of timer channel 1 count, generate an interrupt (INTTM01) Unused
Channel1
Channel 1 PWM output (slave)
Channel2
Channel 2 Interval timer
Interval value (16 bits) 1ms, (Actual value: 1)
Generates INTTM02 when counting is started Unused
End of timer channel 2 count, generate an interrupt (INTTM02) Used
Priority (INTTM02) Low
TAU1 Unused
TMRJ0 Unused
TMRD0 Unused
TMRD1 Unused
Watchdog Timer Used
WDT Used
Watchdog timer operation setting Used
Operation in HALT/STOP/SNOOZE mode setting Enabled
Overflow time 4369.07 (2^16/fWDT)(ms)
Window open period 100(%)
Enable interval interrupt when 75% + 1/2fIL of overflow time (INTWDTI) Used
Priority Low
Real-time Clock Unused
Data Transfer Controller Unused
Clock Output/Buzzer Output Unused
Voltage Detector Unused
- - \ No newline at end of file diff --git a/ECU_BOOT/rscan_driver/RL78_RCAN.c b/ECU_BOOT/rscan_driver/RL78_RCAN.c deleted file mode 100644 index 46900ca..0000000 --- a/ECU_BOOT/rscan_driver/RL78_RCAN.c +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : RL78_RCAN.c -* Version : 1.0 -* Description : This is source file for CAN configuration. -******************************************************************************/ -/***************************************************************************** -* History : DD.MM.YYYY Version Description -* : 03.29.2013 1.00 First Release -******************************************************************************/ -#include "boot_macrodriver.h" -#include "r_rl78_can_drv.h" -#include "r_rl78_can_sfr.h" -#include "RL78_RCAN.h" -#include "CanTp_Cfg.h" - - -#if CAN_RX_RULE_NUM > 0 - - -const uint16_t g_rxrule_table[CAN_RX_RULE_NUM][6] = { - /* IDL IDH IDL_MASK IDH_MASK Store data filter */ - { CANTP_ADDR_PHY_REQ, 0x0000U, 0xFFFFU, 0xDFFFU, 0x8002U, 0x8001U }, - { CANTP_ADDR_FUNC_REQ, 0x0000U, 0xFFFFU, 0xDFFFU, 0x8102U, 0x8002U }, -}; - - -#endif - -const uint8_t g_rxfifo0_use_mode = CAN_USE; -const uint8_t g_rxfifo1_use_mode = CAN_USE; - -const uint8_t g_trfifo_use_mode = CAN_USE_TX_MODE; - diff --git a/ECU_BOOT/rscan_driver/RL78_RCAN.h b/ECU_BOOT/rscan_driver/RL78_RCAN.h deleted file mode 100644 index 889d4a7..0000000 --- a/ECU_BOOT/rscan_driver/RL78_RCAN.h +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : RL78_RCAN.h -* Version : 1.0 -* Description : This is include file for CAN configuration. -******************************************************************************/ -/***************************************************************************** -* History : DD.MM.YYYY Version Description -* : 03.29.2013 1.00 First Release -******************************************************************************/ -#ifndef RL78_RCAN_H -#define RL78_RCAN_H - -//#define demo1 - - -#define CAN_ENABLE 1U -#define CAN_DISABLE 0U - -/* ---- Global setting ---- */ -#define CAN_CFG_TX_PRIORITY CAN_TX_ID_FIRST -#define CAN_CFG_DLC_CHECK CAN_ENABLE -#define CAN_CFG_DLC_REPLACE CAN_DISABLE -#define CAN_CFG_MIRROR CAN_DISABLE -#define CAN_CFG_CLOCK CAN_SOURCE_PCLOCK_2 -#define CAN_CFG_TS_CLOCK CAN_TS_PCLOCK_2 -#define CAN_CFG_TS_PR CAN_TS_16_DIV -#define CAN_CFG_IT_PR 0U - -#define CAN_CFG_OVERFLOW_IE CAN_DISABLE -#define CAN_CFG_MSG_LOST_IE CAN_ENABLE -#define CAN_CFG_DLC_ERROR_IE CAN_ENABLE - -/* ---- Rx rule ---- */ -#define CAN_RX_RULE_NUM_CH0 (2U) -#define CAN_RX_RULE_NUM CAN_RX_RULE_NUM_CH0 - -/* ---- Rx buffer ---- */ -#define CAN_CFG_RBNUM (4U) - -/* ---- RxFIFO ---- */ -#define CAN_CFG_RXFIFO0 \ - CAN_CFG_RXFIFO(CAN_FIFO_DEPTH_0, CAN_ENABLE, \ - CAN_FIFO_INT_EACH_MSG, CAN_FIFO_THRESHOLD_1_8) - -#define CAN_CFG_RXFIFO1 \ -CAN_CFG_RXFIFO(CAN_FIFO_DEPTH_8, CAN_ENABLE, \ - CAN_FIFO_INT_EACH_MSG, CAN_FIFO_THRESHOLD_1_8) - -/* ---- Register value ---- */ -#define CAN_CFG_GLB_CFGL \ - CAN_CFG_GCFGL(CAN_CFG_TX_PRIORITY, \ - CAN_CFG_DLC_CHECK, CAN_CFG_DLC_REPLACE, \ - CAN_CFG_MIRROR, CAN_CFG_CLOCK, \ - CAN_CFG_TS_CLOCK, CAN_CFG_TS_PR) - -#define CAN_CFG_GLB_CFGH \ - CAN_CFG_GCFGH(CAN_CFG_IT_PR) - -#define CAN_CFG_GLB_ERR_INT \ - CAN_CFG_GCTRL(CAN_CFG_OVERFLOW_IE, \ - CAN_CFG_MSG_LOST_IE, CAN_CFG_DLC_ERROR_IE) - -#define CAN_CFG_RN0 (CAN_RX_RULE_NUM_CH0) - -/* ---- Channel 0 setting ---- */ -#define CAN_CFG_C0_FUNC_L \ - CAN_CFG_FUNCL(CAN_ENABLE, CAN_ENABLE, CAN_ENABLE, CAN_ENABLE, \ - CAN_ENABLE, CAN_ENABLE, CAN_ENABLE, CAN_ENABLE) - -#define CAN_CFG_C0_FUNC_H \ - CAN_CFG_FUNCH(CAN_ENABLE, CAN_BOFF_RECOVERY_START_ENTRY, CAN_ERRDISP_ALL_ERR) - -#define CAN_CFG_C0_BAUDRATE_L \ - CAN_CFG_BAUDRATEL(1U) - -#define CAN_CFG_C0_BAUDRATE_H \ - CAN_CFG_BAUDRATEH(CAN_TSEG1_11TQ, CAN_TSEG2_4TQ, CAN_SJW_2TQ) - -#define CAN_CFG_C0_TRFIFO0_L \ - CAN_CFG_TRFIFO_TXL(CAN_FIFO_DEPTH_8, CAN_ENABLE, \ - CAN_FIFO_INT_EACH_MSG) - -#define CAN_CFG_C0_TRFIFO0_H \ - CAN_CFG_TRFIFO_TXH(CAN_TX_BUFFER_0, 0, 0) - -#define CAN_CFG_C0_TXBUF_IE (0x000EU) - -#endif diff --git a/ECU_BOOT/rscan_driver/RL78_RCAN.xml b/ECU_BOOT/rscan_driver/RL78_RCAN.xml deleted file mode 100644 index 1adbc8d..0000000 --- a/ECU_BOOT/rscan_driver/RL78_RCAN.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - false - - RL78/F14 - R5F10PXX - 20 - 16 - 1 - - - ID_FIRST - true - false - false - PCLOCK_2 - 20 - 16 - false - 1 - PCLOCK_2 - TS_16_DIV - true - true - - 2 - - - - true - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - ISO11898 - ALL_ERR - - - - \ No newline at end of file diff --git a/ECU_BOOT/rscan_driver/boot_can_user.c b/ECU_BOOT/rscan_driver/boot_can_user.c deleted file mode 100644 index c3ab8b7..0000000 --- a/ECU_BOOT/rscan_driver/boot_can_user.c +++ /dev/null @@ -1,84 +0,0 @@ -#include "boot_macrodriver.h" -#include "boot_userdefine.h" -#include "r_rl78_can_sfr.h" -#include "r_rl78_can_drv.h" -#include "boot_can_user.h" - -#define C_100MS_1MS 100 - -can_frame_t Boot_TxCanMessage; -can_frame_t Boot_RxCanMessage; - -unsigned char BusOff_flag = 0; - -void Copy_Array_to_Array(unsigned char *dest, unsigned char *src,unsigned char count) -{ - unsigned char i = 0; - - while( i < count) - { - i++; - *dest++ = *src++; - } -} - -unsigned char TransmitCAN_Message(unsigned int ID,unsigned char Dlc,unsigned char *Data) -{ - can_frame_t Boot_TxCanMessage; - Can_RtnType re_flag; - Boot_TxCanMessage.IDL=ID; - Boot_TxCanMessage.DLC=Dlc; - Boot_TxCanMessage.IDE = 0; /* IDE 0:Standard 1:Extend */ - Boot_TxCanMessage.RTR = 0; /* RTR 0:Data 1:Remote */ - Boot_TxCanMessage.THDSE = 0; /* Transmit History Data Store Enable */ - Boot_TxCanMessage.IDH = 0; /* ID Data (high) */ - Boot_TxCanMessage.DLC = 8; /* DLC Data */ - Boot_TxCanMessage.LBL = 0; /* Label Data */ - Boot_TxCanMessage.TS = 0; /* Timestamp Data */ - Copy_Array_to_Array(Boot_TxCanMessage.DB,Data,Dlc); - re_flag=R_CAN_TrmByTRFIFO0_CH0(&Boot_TxCanMessage); - if(re_flag == CAN_RTN_OK) - { - return 0; - } - else - { - return 1; - } -} - -void BusOff_Detect(void) -{ - if(R_CAN_ReadChStatus_CH0()&0x02) - { - if(C0ERFLL&0x08) - { - if(BusOff_flag==0) - { - BusOff_flag=1;//clear after 40 IGN cycle - } - } - if(C0ERFLL!=0) - { - C0ERFLL=0; - } - C0CTRL&=0xfffc; - } - else - { - BusOff_flag=0; - } -} - -/******************************/ -//ȡcan߳״̬ -//ֵ -/******************************/ -unsigned char GetCanBusOffErr(void) -{ - if(BusOff_flag==0) - return 0; - else - return 1; -} - diff --git a/ECU_BOOT/rscan_driver/boot_can_user.h b/ECU_BOOT/rscan_driver/boot_can_user.h deleted file mode 100644 index 942d1ee..0000000 --- a/ECU_BOOT/rscan_driver/boot_can_user.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _CAN_USER_H -#define _CAN_USER_H - -#include "r_rl78_can_drv.h" - - -extern can_frame_t Boot_RxCanMessage; - -void Copy_Array_to_Array(unsigned char *dest, unsigned char *src,unsigned char count); - - - - - - - - - -#endif diff --git a/ECU_BOOT/rscan_driver/r_rl78_can_drv.c b/ECU_BOOT/rscan_driver/r_rl78_can_drv.c deleted file mode 100644 index 2645bf5..0000000 --- a/ECU_BOOT/rscan_driver/r_rl78_can_drv.c +++ /dev/null @@ -1,895 +0,0 @@ -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : r_rl78_can_drv.c -* Version : 1.0 -* Description : This is source file for CAN driver code. -******************************************************************************/ -/***************************************************************************** -* History : DD.MM.YYYY Version Description -* : 29.03.2013 1.00 First Release -******************************************************************************/ - -/***************************************************************************** - Includes , "Project Includes" - *****************************************************************************/ -#include "boot_macrodriver.h" -#include "r_rl78_can_drv.h" -#include "r_rl78_can_sfr.h" -#include "RL78_RCAN.h" - -/***************************************************************************** - Typedef definitions - *****************************************************************************/ - -/***************************************************************************** - Macro definitions - *****************************************************************************/ - -#define CAN_FIFO_PTR_INC 0xffUL - -#define CAN_8_BITS_MASK 0x00FFU - -/***************************************************************************** - Private variables and functions - *****************************************************************************/ - -/***************************************************************************** - Exported global variables and functions (to be accessed by other files) - *****************************************************************************/ - -/****************************************************************************** -* Function Name: R_Can_Init -* Description : Initialize CAN controller after reset -* Arguments : none -* Return Value : CAN_RTN_OK - -* normal completion -* CAN_RTN_RAM_INIT - -* CAN RAM initializing -* CAN_RTN_MODE_WAIT - -* wait to change global mode or channel mode -******************************************************************************/ -Can_RtnType R_CAN_Init(void) -{ - - /* ==== CAN RAM initialization ==== */ - if ((GSTS & CAN_RAM_INIT_BIT_ON) != 0U) /*GSTS&0x80, waiting CAN RAM initialization completed*/ - { - return CAN_RTN_RAM_INIT; /* return 05U */ - } - - /* ==== global mode switch (stop->reset) ==== */ - if ((GSTS & CAN_GLB_STP_STS_BIT_ON) != 0U) /*GSTS&0x04, judgment global in stop mode*/ - { - /* exit global stop mode */ - GCTRL &= (uint16_t)~(CAN_GLB_STP_BIT_ON); /* not in global stop mode*/ - if ((GSTS & CAN_GLB_STP_STS_BIT_ON) != 0U) /*if still in stop mode*/ - { - return CAN_RTN_MODE_WAIT; /* return 04u*/ - } - } - - /* ==== channel mode switch ==== */ - /* --- switch from channel stop mode ---- */ - if ((C0STSL & CAN_STP_STS_BIT_ON) != 0U) /* C0STSL & 0x04; judgment in channel stop mode*/ - { - /* exit channel stop mode */ - C0CTRL &= (uint16_t)~(CAN_STP_BIT_ON); /* C0STSL & 0xFB; not in stop mode*/ - if ((C0STSL & CAN_STP_STS_BIT_ON) != 0U) - { - return CAN_RTN_MODE_WAIT; /* return 04u*/ - } - } - - /* ==== global function setting ==== */ - GCFGL = CAN_CFG_GLB_CFGL; /*ID priority, DLC check is disable, DLC replacment is disable - Mirror function is disabled, clock obtained by frequency-dividing Fclk by 2*/ - GCFGH = CAN_CFG_GLB_CFGH; /*0x0000*/ - //fcl/2--32M/2--16M - /* ==== communication speed setting: 500K ==== 16M/2/(11+4+1)=500K*/ - C0CFGL = CAN_CFG_C0_BAUDRATE_L; /*0x0001 Prescaler:2 */ - //C0CFGL = 0x3; //250K - C0CFGH = CAN_CFG_C0_BAUDRATE_H; /*CAN_TSEG1_11TQ, CAN_TSEG2_4TQ, CAN_SJW_2TQ*/ - - /* ==== Rx rule setting ==== */ -#if CAN_RX_RULE_NUM > 0 - { - volatile can_rxrule_sfr_t * p_RxRuleSfr; // - uint16_t temp_rpage; - uint16_t rxrule_idx; - - /* ---- Set Rx rule number per channel ---- */ - GAFLCFG = CAN_CFG_RN0; /*CAN_CFG_RN0=0x04*/ - - /* ---- Save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 0 ---- */ - GRWCR &= (uint16_t)~(CAN_RAM_WINDOW_BIT_ON); /*Setting GRWCR=0; Select window 0*/ - - /* ---- Copy Rx rule one by one ---- *//////////////////////////////// - - p_RxRuleSfr =(volatile can_rxrule_sfr_t *)&GAFLIDL0; //__near - - for (rxrule_idx = 0U; rxrule_idx < CAN_RX_RULE_NUM; rxrule_idx++) - { - - /* Set a single Rx rule */ - p_RxRuleSfr->IDL = g_rxrule_table[rxrule_idx][0]; - p_RxRuleSfr->IDH = g_rxrule_table[rxrule_idx][1]; - p_RxRuleSfr->ML = g_rxrule_table[rxrule_idx][2]; - p_RxRuleSfr->MH = g_rxrule_table[rxrule_idx][3]; - p_RxRuleSfr->PL = g_rxrule_table[rxrule_idx][4]; - p_RxRuleSfr->PH = g_rxrule_table[rxrule_idx][5]; - - /* Next sfr */ - p_RxRuleSfr++; - } - - /* ---- restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } -#endif /* CAN_RX_RULE_NUM > 0 */ - - /* ==== buffer setting ==== */ - /* ---- Set Rx buffer number ---- */ - RMNB = CAN_CFG_RBNUM; - - /* ---- Set Rx FIFO buffer ---- */ - RFCC0 = CAN_CFG_RXFIFO0; - RFCC1 = CAN_CFG_RXFIFO1; - - /* ---- Set common (Tx/Rx) FIFO buffer ---- */ - CFCCL0 = CAN_CFG_C0_TRFIFO0_L; - CFCCH0 = CAN_CFG_C0_TRFIFO0_H; - - /* ---- Tx buffer transmission complete interrupt ---- */ - TMIEC = CAN_CFG_C0_TXBUF_IE; - - /* ==== global error interrupt setting ==== */ - GCTRL = (GCTRL & (CAN_GLB_STP_BIT_ON | CAN_GLB_MODE_BITS_ON)) + CAN_CFG_GLB_ERR_INT; - - /* ==== channel function setting ==== */ - C0CTRL = (C0CTRL & (CAN_STP_BIT_ON | CAN_MODE_BITS_ON)) + CAN_CFG_C0_FUNC_L; - //C0CTRL |= 1<= CAN_MAX_TXBUF_NUM) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - /* ---- Clear Tx buffer status ---- */ - { - volatile uint8_t * p_TMSTSp;//__near - - p_TMSTSp = CAN_ADDR_TMSTSp(txbuf_idx); - *p_TMSTSp = 0x0U; - if (*p_TMSTSp != 0x0U) - { - return CAN_RTN_STS_ERROR; - } - } - - /* ---- Store message to tx buffer ---- */ - { - volatile can_frame_sfr_t * p_TxMsgSfr;// __near - uint16_t temp_rpage; - - /* ---- Save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 1 ---- */ - GRWCR |= CAN_RAM_WINDOW_BIT_ON; - - /* ---- Set frame data ---- */ - p_TxMsgSfr = CAN_ADDR_TMIDLp(txbuf_idx); - p_TxMsgSfr->IDL = ((can_frame_sfr_t *)pFrame)->IDL; - p_TxMsgSfr->IDH = ((can_frame_sfr_t *)pFrame)->IDH; - p_TxMsgSfr->PTR = ((can_frame_sfr_t *)pFrame)->PTR; - p_TxMsgSfr->DF0 = ((can_frame_sfr_t *)pFrame)->DF0; - p_TxMsgSfr->DF1 = ((can_frame_sfr_t *)pFrame)->DF1; - p_TxMsgSfr->DF2 = ((can_frame_sfr_t *)pFrame)->DF2; - p_TxMsgSfr->DF3 = ((can_frame_sfr_t *)pFrame)->DF3; - - /* ---- Restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } - - /* ---- Set transmission request ---- */ - TMCp(txbuf_idx) = CAN_TXBUF_TRM_BIT_ON; - - return CAN_RTN_OK; -} - -/****************************************************************************** -* Function Name: R_CAN_AbortTrm_CH0 -* Description : Abort a CAN transmission (Channel 0) -* Arguments : txbuf_idx - -* Tx buffer index -* Return Value : CAN_RTN_OK - -* normal completion -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -Can_RtnType R_CAN_AbortTrm_CH0(can_txbuf_t txbuf_idx) -{ -#if defined(__CHECK__) - /* ---- Check Tx buffer index ---- */ - if (txbuf_idx >= CAN_MAX_TXBUF_NUM) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - /* ---- Set transmission abort request ---- */ - TMCp(txbuf_idx) |= CAN_TXBUF_ABT_BIT_ON; - - return CAN_RTN_OK; -} - -/****************************************************************************** -* Function Name: R_CAN_CheckTxBufResult_CH0 -* Description : Read the result of transmission from Tx buffer (Channel 0) -* Arguments : txbuf_idx - -* Tx buffer index -* Return Value : CAN_RTN_TRANSMITTING - -* Transmission is in progress -* or no transmit request is present. -* CAN_RTN_TX_ABORT_OVER - -* Transmit abort has been completed. -* CAN_RTN_TX_END - -* Transmission has been completed -* (without transmit abort request). -* CAN_RTN_TX_END_WITH_ABORT_REQ - -* Transmission has been completed -* (with transmit abort request). -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -Can_RtnType R_CAN_CheckTxBufResult_CH0(can_txbuf_t txbuf_idx) -{ - Can_RtnType rtn_value; - - volatile uint8_t * p_TMSTSp;//__near - -#if defined(__CHECK__) - /* ---- Check Tx buffer index ---- */ - if (txbuf_idx >= CAN_MAX_TXBUF_NUM) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - p_TMSTSp = CAN_ADDR_TMSTSp(txbuf_idx); - - rtn_value = (Can_RtnType)((*p_TMSTSp & CAN_TXBUF_RSLT_BITS_ON) - >> CAN_TXBUF_RSLT_BITS_POS); - - /* ---- Tx transmission completed/abort? ---- */ - if (rtn_value != CAN_RTN_TRANSMITTING) - { - /* Clear Tx buffer status */ - *p_TMSTSp = 0x0U; - } - - return rtn_value; -} - -/****************************************************************************** -* Function Name: R_CAN_TrmByTRFIFO0_CH0 -* Description : Transmit a frame by common (Tx/Rx) FIFO 0 (Channel 0) -* Arguments : ch_idx - -* channel index -* trfifo_idx - -* Tx/Rx FIFO index -* pFrame - -* pointer to frame to be transmitted -* Return Value : CAN_RTN_OK - -* Frame is successfully pushed into FIFO. -* CAN_RTN_FIFO_FULL - -* Specified FIFO is full. -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -Can_RtnType R_CAN_TrmByTRFIFO0_CH0(const can_frame_t * pFrame) -{ -#if defined(__CHECK__) - /* ---- Check Tx/Rx FIFO 0 mode ---- */ - if (g_trfifo_use_mode != CAN_USE_TX_MODE) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - /* ---- Return if Tx/Rx FIFO is full ---- */ - if ((CFSTS0 & CAN_TRFIFO_FULL_BIT_ON) != 0) - { - return CAN_RTN_FIFO_FULL; - } - - /* ---- Send message into Tx/Rx FIFO if it is not full ---- */ - { - uint16_t temp_rpage; - - /* ---- save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 1 ---- */ - GRWCR |= CAN_RAM_WINDOW_BIT_ON; - - /* ---- Set frame data ---- */ - CFIDL0 = ((can_frame_sfr_t *)pFrame)->IDL; - CFIDH0 = ((can_frame_sfr_t *)pFrame)->IDH; - CFPTR0 = ((can_frame_sfr_t *)pFrame)->PTR; - CFDF00 = ((can_frame_sfr_t *)pFrame)->DF0; - CFDF10 = ((can_frame_sfr_t *)pFrame)->DF1; - CFDF20 = ((can_frame_sfr_t *)pFrame)->DF2; - CFDF30 = ((can_frame_sfr_t *)pFrame)->DF3; - - /* ---- restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } - - /* ---- Increment Tx/Rx FIFO buffer pointer ---- */ - CFPCTR0 = CAN_FIFO_PTR_INC; - - return CAN_RTN_OK; -} - -unsigned char GetCanTxCmpltd(void) -{ - if((CFSTS0 & 0x01)&&((C0STSL & 0x60) == 0x20)) - return 1; - else - return 0; -} -/****************************************************************************** -* Function Name: R_CAN_ReadRxBuffer -* Description : Read message from Rx buffer -* Arguments : p_rxbuf_idx - -* pointer to Rx buffer that receives frame -* pFrame - -* pointer to stored frame position -* Return Value : CAN_RTN_OK - -* A frame is successfully read out. -* CAN_RTN_BUFFER_EMPTY - -* No frame is read out. -* CAN_RTN_STS_ERROR - -* failure to clear Rx complete flag -* CAN_RTN_OVERWRITE - -* A frame is overwritten. -******************************************************************************/ -Can_RtnType R_CAN_ReadRxBuffer(uint8_t * p_rxbuf_idx, can_frame_t * pFrame) -{ - uint8_t buf_idx; - uint16_t temp_rbrcf; - uint16_t pattern; - - /* ---- Judge if new messages are available ---- */ - temp_rbrcf = RMND0; - if (temp_rbrcf == 0) - { - return CAN_RTN_BUFFER_EMPTY; - } - - /* ---- Get Rx buffer that has new message ---- */ - if (temp_rbrcf != 0) - { - pattern = 1; - for (buf_idx = 0U; buf_idx < 16U; ++buf_idx) - { - if ((temp_rbrcf & pattern) != 0) - { - *p_rxbuf_idx = buf_idx; - break; - } - pattern <<= 1; - } - } - - /* ---- Clear Rx complete flag of corresponding Rx buffer ---- */ - RMND0 &= (uint16_t)~pattern; - if ((RMND0 & pattern) != 0) - { - return CAN_RTN_STS_ERROR; - } - - /* ---- Read out message from Rx buffer ---- */ - { - volatile can_frame_sfr_t * p_RxBufSfr;// __near - uint16_t temp_rpage; - - /* ---- Save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 1 ---- */ - GRWCR |= CAN_RAM_WINDOW_BIT_ON; - - /* ---- Read frame data ---- */ - p_RxBufSfr = CAN_ADDR_RMIDLp(*p_rxbuf_idx); - ((can_frame_sfr_t *)pFrame)->IDL = p_RxBufSfr->IDL; - ((can_frame_sfr_t *)pFrame)->IDH = p_RxBufSfr->IDH; - ((can_frame_sfr_t *)pFrame)->TS = p_RxBufSfr->TS; - ((can_frame_sfr_t *)pFrame)->PTR = p_RxBufSfr->PTR; - ((can_frame_sfr_t *)pFrame)->DF0 = p_RxBufSfr->DF0; - ((can_frame_sfr_t *)pFrame)->DF1 = p_RxBufSfr->DF1; - ((can_frame_sfr_t *)pFrame)->DF2 = p_RxBufSfr->DF2; - ((can_frame_sfr_t *)pFrame)->DF3 = p_RxBufSfr->DF3; - - /* ---- restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } - - /* ---- Judge if current message is overwritten ---- */ - if ((RMND0 & pattern) != 0) - { - return CAN_RTN_OVERWRITE; - } - - return CAN_RTN_OK; -} - -/****************************************************************************** -* Function Name: R_CAN_ReadRxFIFO -* Description : Read message from Rx FIFO -* Arguments : rxfifo_idx - -* Rx FIFO index -* pFrame - -* pointer to stored frame position -* Return Value : CAN_RTN_OK - -* A frame is successfully read out. -* CAN_RTN_OK_WITH_LOST - -* A frame is successfully read out (with message lost). -* CAN_RTN_BUFFER_EMPTY - -* No frame is read out. -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -extern Can_RtnType R_CAN_ReadRxFIFO0(can_frame_t *); -extern Can_RtnType R_CAN_ReadRxFIFO1(can_frame_t *); -Can_RtnType R_CAN_ReadRxFIFO(can_rxfifo_t rxfifo_idx, can_frame_t * pFrame) -{ - if (rxfifo_idx == 0) - { - return R_CAN_ReadRxFIFO0(pFrame); - } - else if (rxfifo_idx == 1) - { - return R_CAN_ReadRxFIFO1(pFrame); -#if defined(__CHECK__) - } - - else { - return CAN_RTN_ARG_ERROR; -#endif - } - - return CAN_RTN_OK; -} - -/****************************************************************************** -* Function Name: R_CAN_ReadRxFIFO0 -* Description : Read message from Rx FIFO 0 -* Arguments : pFrame - -* pointer to stored frame position -* Return Value : CAN_RTN_OK - -* A frame is successfully read out. -* CAN_RTN_OK_WITH_LOST - -* A frame is successfully read out (with message lost). -* CAN_RTN_BUFFER_EMPTY - -* No frame is read out. -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -Can_RtnType R_CAN_ReadRxFIFO0(can_frame_t * pFrame) -{ - uint16_t temp_status; - Can_RtnType rtn_value; - -#if defined(__CHECK__) - /* ---- Check Rx FIFO 0 mode ---- */ - if ((g_rxfifo0_use_mode == CAN_NOUSE)) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - /* ---- Check if any unread message is available in Rx FIFO ---- */ - temp_status = RFSTS0; - if ((temp_status & CAN_RFIFO_EMPTY_BIT_ON) != 0) - { - return CAN_RTN_BUFFER_EMPTY; - } - - /* ---- Set return value ---- */ - rtn_value = CAN_RTN_OK; - - /* ---- Check if Rx FIFO has message lost ---- */ - if ((temp_status & CAN_RFIFO_MSGLST_BIT_ON) != 0) - { - /* ---- Clear message lost flag ---- */ - RFSTS0 = CAN_CLR_WITHOUT_RX_INT; - - /* ---- Set return value ---- */ - rtn_value = CAN_RTN_OK_WITH_LOST; - } - - RFSTS0 &= 0xFFF7; /*Clear RFIF receive FIFO interrupt request flag*/ - - /* ---- Read out message from Rx FIFO ---- */ - { - uint16_t temp_rpage; - - /* ---- Save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 1 ---- */ - GRWCR |= CAN_RAM_WINDOW_BIT_ON; - - /* ---- Read frame data ---- */ - ((can_frame_sfr_t *)pFrame)->IDL = RFIDL0; - ((can_frame_sfr_t *)pFrame)->IDH = RFIDH0; - ((can_frame_sfr_t *)pFrame)->TS = RFTS0; - ((can_frame_sfr_t *)pFrame)->PTR = RFPTR0; - ((can_frame_sfr_t *)pFrame)->DF0 = RFDF00; - ((can_frame_sfr_t *)pFrame)->DF1 = RFDF10; - ((can_frame_sfr_t *)pFrame)->DF2 = RFDF20; - ((can_frame_sfr_t *)pFrame)->DF3 = RFDF30; - - /* ---- Restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } - - /* ---- Increment Rx FIFO buffer pointer ---- */ - RFPCTR0 = CAN_FIFO_PTR_INC; - - return rtn_value; -} - -/****************************************************************************** -* Function Name: R_CAN_ReadRxFIFO1 -* Description : Read message from Rx FIFO 1 -* Arguments : pFrame - -* pointer to stored frame position -* Return Value : CAN_RTN_OK - -* A frame is successfully read out. -* CAN_RTN_OK_WITH_LOST - -* A frame is successfully read out (with message lost). -* CAN_RTN_BUFFER_EMPTY - -* No frame is read out. -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -Can_RtnType R_CAN_ReadRxFIFO1(can_frame_t * pFrame) -{ - uint16_t temp_status; - Can_RtnType rtn_value; - -#if defined(__CHECK__) - /* ---- Check Rx FIFO 1 mode ---- */ - if ((g_rxfifo1_use_mode == CAN_NOUSE)) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - /* ---- Check if any unread message is available in Rx FIFO ---- */ - temp_status = RFSTS1; - if ((temp_status & CAN_RFIFO_EMPTY_BIT_ON) != 0) - { - return CAN_RTN_BUFFER_EMPTY; - } - - /* ---- Set return value ---- */ - rtn_value = CAN_RTN_OK; - - /* ---- Check if Rx FIFO has message lost ---- */ - if ((temp_status & CAN_RFIFO_MSGLST_BIT_ON) != 0) - { - /* ---- Clear message lost flag ---- */ - RFSTS1 = CAN_CLR_WITHOUT_RX_INT; - - /* ---- Set return value ---- */ - rtn_value = CAN_RTN_OK_WITH_LOST; - } - - RFSTS1 &= ~CAN_CLR_WITHOUT_RX_INT; - /* ---- Read out message from Rx FIFO ---- */ - { - uint16_t temp_rpage; - - /* ---- Save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 1 ---- */ - GRWCR |= CAN_RAM_WINDOW_BIT_ON; - - /* ---- Read frame data ---- */ - ((can_frame_sfr_t *)pFrame)->IDL = RFIDL1; - ((can_frame_sfr_t *)pFrame)->IDH = RFIDH1; - ((can_frame_sfr_t *)pFrame)->TS = RFTS1; - ((can_frame_sfr_t *)pFrame)->PTR = RFPTR1; - ((can_frame_sfr_t *)pFrame)->DF0 = RFDF01; - ((can_frame_sfr_t *)pFrame)->DF1 = RFDF11; - ((can_frame_sfr_t *)pFrame)->DF2 = RFDF21; - ((can_frame_sfr_t *)pFrame)->DF3 = RFDF31; - - /* ---- Restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } - - /* ---- Increment Rx FIFO buffer pointer ---- */ - RFPCTR1 = CAN_FIFO_PTR_INC; - - return rtn_value; -} - -/****************************************************************************** -* Function Name: R_CAN_ReadTRFIFO -* Description : Read message from common (Tx/Rx) FIFO -* Arguments : ch_idx - -* channel index -* trfifo_idx - -* common (Tx/Rx) FIFO index -* pFrame - -* pointer to stored frame position -* Return Value : CAN_RTN_OK - -* A frame is successfully read out. -* CAN_RTN_OK_WITH_LOST - -* A frame is successfully read out (with message lost). -* CAN_RTN_BUFFER_EMPTY - -* No frame is read out. -* CAN_RTN_ARG_ERROR - -* invalid argument specification -******************************************************************************/ -Can_RtnType R_CAN_ReadTRFIFO0_CH0(can_frame_t * pFrame) -{ - uint16_t temp_status; - Can_RtnType rtn_value; - -#if defined(__CHECK__) - /* ---- Check Tx/Rx FIFO 0 mode ---- */ - if (g_trfifo_use_mode != CAN_USE_RX_MODE) - { - return CAN_RTN_ARG_ERROR; - } -#endif - - /* ---- Check if any unread message is available in common (Tx/Rx) FIFO ---- */ - temp_status = CFSTS0; - if ((temp_status & CAN_TRFIFO_EMPTY_BIT_ON) != 0) - { - return CAN_RTN_BUFFER_EMPTY; - } - - /* ---- Set return value ---- */ - rtn_value = CAN_RTN_OK; - - /* ---- Check if common (Tx/Rx) FIFO has message lost ---- */ - if ((temp_status & CAN_TRFIFO_MSGLST_BIT_ON) != 0) - { - /* ---- Clear message lost flag ---- */ - CFSTS0 = CAN_CLR_WITHOUT_TX_RX_INT; - - /* ---- Set return value ---- */ - rtn_value = CAN_RTN_OK_WITH_LOST; - } - - /* ---- Read out message from common (Tx/Rx) FIFO ---- */ - { - uint16_t temp_rpage; - - /* ---- Save value of GRWCR register ---- */ - temp_rpage = GRWCR; - - /* ---- Select window 1 ---- */ - GRWCR |= CAN_RAM_WINDOW_BIT_ON; - - /* ---- Read frame data ---- */ - ((can_frame_sfr_t *)pFrame)->IDL = CFIDL0; - ((can_frame_sfr_t *)pFrame)->IDH = CFIDH0; - ((can_frame_sfr_t *)pFrame)->TS = CFTS0; - ((can_frame_sfr_t *)pFrame)->PTR = CFPTR0; - ((can_frame_sfr_t *)pFrame)->DF0 = CFDF00; - ((can_frame_sfr_t *)pFrame)->DF1 = CFDF10; - ((can_frame_sfr_t *)pFrame)->DF2 = CFDF20; - ((can_frame_sfr_t *)pFrame)->DF3 = CFDF30; - - /* ---- Restore value of GRWCR register ---- */ - GRWCR = temp_rpage; - } - - /* ---- Increment common (Tx/Rx) FIFO buffer pointer ---- */ - CFPCTR0 = CAN_FIFO_PTR_INC; - - return rtn_value; -} - -/****************************************************************************** -* Function Name: R_CAN_ReadChStatus -* Description : Read channel status -* Arguments : none -* Return Value : channel status (<= 0xFF) - -* normal completion -******************************************************************************/ -Can_RtnType R_CAN_ReadChStatus_CH0(void) -{ - return (Can_RtnType)(C0STSL & CAN_8_BITS_MASK); -} -/****************************************************************************** -* Function Name: R_CAN_ReadChStatus -* Description : Read channel status -* Arguments : none -* Return Value : channel status (<= 0xFF) - -* normal completion -******************************************************************************/ -void enable_interrupt_request_mask() -{ - CAN0CFRIF=0U; - CAN0WUPIF=0U; - CAN0ERRIF=0U; - CANGERRIF=0U; - CANGRFRIF=0U; - CAN0TRMIF=0U; - - //CAN0CFRMK=0U; - //CAN0WUPMK=0U; - CAN0ERRMK=0U; - CANGERRMK=0U; - CANGRFRMK=0U; - CAN0TRMMK=0U; - -} - - -void CanUserInit(void) -{ - Can_RtnType retval; - - /* supply CAN clock */ - CAN0EN = 1; - - /* CAN Initialize */ - retval = CAN_RTN_RAM_INIT; // CAN_RTN_RAM_INIT=5U - while (retval != CAN_RTN_OK) { - retval = R_CAN_Init(); - } - - /* Set global operating mode */ - retval = CAN_RTN_MODE_WAIT; - while (retval == CAN_RTN_MODE_WAIT) { - retval = R_CAN_GlobalStart(); - } - - /* CH0 -> Channel communication mode */ - retval = CAN_RTN_MODE_WAIT; - while (retval == CAN_RTN_MODE_WAIT) { - retval = R_CAN_ChStart(CAN_CH0); - } -} - diff --git a/ECU_BOOT/rscan_driver/r_rl78_can_drv.h b/ECU_BOOT/rscan_driver/r_rl78_can_drv.h deleted file mode 100644 index 1bf9b30..0000000 --- a/ECU_BOOT/rscan_driver/r_rl78_can_drv.h +++ /dev/null @@ -1,158 +0,0 @@ -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : r_rl78_can_drv.h -* Version : 1.0 -* Description : This is header file for CAN driver code. -******************************************************************************/ -/***************************************************************************** -* History : DD.MM.YYYY Version Description -* : 29.03.2013 1.00 First Release -******************************************************************************/ -#ifndef R_RL78_CAN_DRV_H -#define R_RL78_CAN_DRV_H - -typedef signed char CHAR; -typedef unsigned char UCHAR; -typedef signed short INT; -typedef unsigned short UINT; - -typedef unsigned int Can_RtnType; - -typedef UCHAR can_ch_t; -typedef UCHAR can_rxfifo_t; -typedef UCHAR can_trfifo_t; -typedef UCHAR can_txbuf_t; - -/* ---- Channel ---- */ -#define CAN_CH0 0U - -/* ---- Rx FIFO ---- */ -#define CAN_RXFIFO0 0U -#define CAN_RXFIFO1 1U -#define CAN_MAX_RXFIFO_NUM 2U - -/* ---- Common (Tx/Rx) FIFO ---- */ -#define CAN_TRFIFO0 0U -#define CAN_MAX_TRFIFO_NUM 1U - -/* ---- Tx buffers ---- */ -#define CAN_TXBUF0 0U -#define CAN_TXBUF1 1U -#define CAN_TXBUF2 2U -#define CAN_TXBUF3 3U -#define CAN_MAX_TXBUF_NUM 4U - -/* ---- CAN frame ----- */ -typedef struct -{ - UINT IDL:16; /* ID Data (low) */ - UINT IDH:13; /* ID Data (high) */ - UINT THDSE :1; /* Transmit History Data Store Enable */ - UINT RTR :1; /* RTR 0:Data 1:Remote */ - UINT IDE :1; /* IDE 0:Standard 1:Extend */ - UINT TS :16; /* Timestamp Data */ - UINT LBL :12; /* Label Data */ - UINT DLC :4; /* DLC Data */ - UCHAR DB[8]; /* Data Byte */ -} can_frame_t; - -#if 0 -//only for test -typedef struct _IoInput_ -{ - /*previous value,middle variable value , finally value of the switches,used for - cleaning up the botton's dithering*/ - UINT unused : 1; - UINT swIn : 1; /* Read from I/O pin.*/ - UINT in : 1; /* Used by program,related to inMode.*/ - UINT preSwIn : 1; /* Previous value read from I/O pin.*/ - - UINT preVal : 1; - UINT curVal : 1; - UINT inMode : 2; - UINT shakeCnt : 4; /* Switch shaking counter */ - UINT shakeNum : 4; /* Switvh shaking number */ -} IoInput; -#endif - -extern const UCHAR g_rxfifo0_use_mode; -extern const UCHAR g_rxfifo1_use_mode; -extern const UCHAR g_trfifo_use_mode; -extern const UCHAR g_fifo_lost_isr; -extern const UINT g_rxrule_table[][6]; - -/* ---- Configuration ---- */ -#define CAN_NOUSE 0x00U -#define CAN_USE 0x80U -#define CAN_USE_RX_MODE 0x81U -#define CAN_USE_TX_MODE 0x82U -#define CAN_USE_CH_MASK 0x07U - -/* ---- function return value ---- */ -#define CAN_RTN_OK 0U -#define CAN_RTN_OK_WITH_LOST 1U -#define CAN_RTN_FIFO_FULL 2U -#define CAN_RTN_BUFFER_EMPTY 3U -#define CAN_RTN_MODE_WAIT 4U -#define CAN_RTN_RAM_INIT 5U - -#define CAN_RTN_TRANSMITTING 0U -#define CAN_RTN_TX_ABORT_OVER 1U -#define CAN_RTN_TX_END 2U -#define CAN_RTN_TX_END_WITH_ABORT_REQ 3U - -#define CAN_RTN_ERROR (0x8000U) -#define CAN_RTN_ARG_ERROR (CAN_RTN_ERROR + 0x7FFF) -#define CAN_RTN_STS_ERROR (CAN_RTN_ERROR + 0x7FFE) -#define CAN_RTN_OVERWRITE (CAN_RTN_ERROR + 0x7FFD) -#define CAN_RTN_MODE_ERROR (CAN_RTN_ERROR + 0x7FFC) - -/****************************************************************************** -Exported global functions (to be accessed by other files) -******************************************************************************/ -extern Can_RtnType R_CAN_Init(void); -extern Can_RtnType R_CAN_GlobalStart(void); -extern Can_RtnType R_CAN_ChStart_CH0(void); -extern Can_RtnType R_CAN_TrmByTxBuf_CH0(can_txbuf_t, const can_frame_t *); -extern Can_RtnType R_CAN_AbortTrm_CH0(can_txbuf_t); -extern Can_RtnType R_CAN_CheckTxBufResult_CH0(can_txbuf_t); -extern Can_RtnType R_CAN_TrmByTRFIFO0_CH0(const can_frame_t *); -extern Can_RtnType R_CAN_ReadRxBuffer(UCHAR *, can_frame_t *); -extern Can_RtnType R_CAN_ReadRxFIFO(can_rxfifo_t, can_frame_t *); -extern Can_RtnType R_CAN_ReadTRFIFO0_CH0(can_frame_t *); -extern Can_RtnType R_CAN_ReadChStatus_CH0(void); -void enable_interrupt_request_mask(void); - -#define R_CAN_ChStart(val1) (R_CAN_ChStart_CH0()) -#define R_CAN_TrmByTxBuf(val1, val2, val3) (R_CAN_TrmByTxBuf_CH0(val2, val3)) -#define R_CAN_AbortTrm(val1, val2) (R_CAN_AbortTrm_CH0(val2)) -#define R_CAN_CheckTxBufResult(val1, val2) (R_CAN_CheckTxBufResult_CH0(val2)) -#define R_CAN_TrmByTRFIFO(val1, val2, val3) (R_CAN_TrmByTRFIFO_CH0(val3)) -#define R_CAN_ReadTRFIFO(val1, val2, val3) (R_CAN_ReadTRFIFO0_CH0(val3)) -#define R_CAN_ReadChStatus(val1) (R_CAN_ReadChStatus_CH0()) - -extern void CanUserInit(void); -extern can_frame_t frame,frame1; -#endif /* R_RL78_CAN_DRV_H */ diff --git a/ECU_BOOT/rscan_driver/r_rl78_can_irq.c b/ECU_BOOT/rscan_driver/r_rl78_can_irq.c deleted file mode 100644 index e63738f..0000000 --- a/ECU_BOOT/rscan_driver/r_rl78_can_irq.c +++ /dev/null @@ -1,122 +0,0 @@ -//============================================================================ -// PROJECT = RL78/F14 -//============================================================================ -// C O P Y R I G H T -//============================================================================ -// Copyright (c) 2002 by Renesas Electronics (EUROPE) GmbH. All rights reserved. -// Kanzlerstrasse 2 -// D-40472 Duesseldorf -//============================================================================ -//Purpose: RSCAN Interrupt Vectors -// -//Warranty Disclaimer -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : RL78_RCAN.c -* Version : 1.0 -* Description : This is source file for CAN configuration. -******************************************************************************/ -/***************************************************************************** -* History : DD.MM.YYYY Version Description -* : 03.29.2013 1.00 First Release -******************************************************************************/ - -/*===========================================================================*/ -/* Includes */ -/*===========================================================================*/ -#if 0 - -#pragma interrupt INTCANGERR RSCAN_INTCANGERR_interrupt -#pragma interrupt INTCANGRFR RSCAN_INTCANGRECC_interrupt -#pragma interrupt INTCAN0ERR RSCAN_INTCAN0ERR_interrupt -#pragma interrupt INTCAN0CFR RSCAN_INTCAN0REC_interrupt -#pragma interrupt INTCAN0TRM RSCAN_INTCAN0TRX_interrupt - -#endif - -#include "boot_macrodriver.h" -#include "boot_userdefine.h" -#include "r_rl78_can_sfr.h" -#include "r_rl78_can_drv.h" -#include "boot_can_user.h" -#include "api.h" -#include "CanTp_Cfg.h" -#include "Dcm_App.h" - -unsigned char CAN_data_buf[8]; - /*CAN global error*/ -//__interrupt static -void RSCAN_INTCANGERR_interrupt(void) -{ - -} - -/*CAN global reveive FIFO*/ -//__interrupt static -void RSCAN_INTCANGRECC_interrupt(void) -{ - //static uint8_t read_flag = 0; - //static uint8_t i; - R_CAN_ReadRxFIFO(CAN_RXFIFO1, &Boot_RxCanMessage); - if((Boot_RxCanMessage.IDL == CANTP_ADDR_PHY_REQ) || (Boot_RxCanMessage.IDL == CANTP_ADDR_FUNC_REQ)) - { - if(Boot_RxCanMessage.IDL == CANTP_ADDR_FUNC_REQ && Boot_RxCanMessage.DB[1]==0x3E && Boot_RxCanMessage.DB[2]==0x80) - resetS3Server(); /*S3serverʱ*/ - else - RxIndicationCanIf_Messages(0,Boot_RxCanMessage.IDL,Boot_RxCanMessage.DLC,Boot_RxCanMessage.DB); - } - //R_CAN_ReadTRFIFO0_CH0(&Boot_RxCanMessage); - //RFSTS1 &= ~CAN_CLR_WITHOUT_RX_INT; - /*if(Boot_RxCanMessage.IDL == 0xE5) - { - read_flag = 1; - }*/ -} - - /*CAN0 channel error*/ -//__interrupt static -void RSCAN_INTCAN0ERR_interrupt(void) -{ - /*if(C0ERFLL&0x08) - { - BusOff_flag=1;//clear after can transmit successfully - } */ - //C0ERFLL=0; -} - - /*CAN0 transmit/receive FIFO receive interrutp*/ -//__interrupt static -void RSCAN_INTCAN0REC_interrupt(void) -{ - -} - -/* CAN Channel transmit */ -//__interrupt static -void RSCAN_INTCAN0TRX_interrupt(void) -{ - CFSTS0 &=0xFFEF; /*Clear CFTXIF FIFO transmit interrupt request flag*/ -} - diff --git a/ECU_BOOT/rscan_driver/r_rl78_can_sfr.h b/ECU_BOOT/rscan_driver/r_rl78_can_sfr.h deleted file mode 100644 index 3b72828..0000000 --- a/ECU_BOOT/rscan_driver/r_rl78_can_sfr.h +++ /dev/null @@ -1,415 +0,0 @@ -/******************************************************************************* -* DISCLAIMER -* This software is supplied by Renesas Electronics Corporation and is only -* intended for use with Renesas products. No other uses are authorized. This -* software is owned by Renesas Electronics Corporation and is protected under -* all applicable laws, including copyright laws. -* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING -* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT -* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE -* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED. -* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS -* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE -* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR -* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE -* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. -* Renesas reserves the right, without notice, to make changes to this software -* and to discontinue the availability of this software. By using this software, -* you agree to the additional terms and conditions found by accessing the -* following link: -* http://www.renesas.com/disclaimer -* -* Copyright (C) 2013 Renesas Electronics Corporation. All rights reserved. -*******************************************************************************/ -/******************************************************************************* -* File Name : r_rl78_can_sfr.h -* Version : 1.0 -* Description : This is include file for CAN I/O registers. -******************************************************************************/ -/***************************************************************************** -* History : DD.MM.YYYY Version Description -* : 29.03.2013 1.00 First Release -******************************************************************************/ -#include "boot_macrodriver.h" - -#ifndef R_RL78_CAN_SFR_H -#define R_RL78_CAN_SFR_H - -#define BIT_ON(x) (uint16_t)(1 << (x)) -#define BITS_2_ON(x) (uint16_t)(3 << (x)) - - -/* - * Address - */ - -/* ---- Channel ---- */ -typedef struct { - volatile uint16_t CnCFGL; - volatile uint16_t CnCFGH; - volatile uint16_t CnCTRL; - volatile uint16_t CnCTRH; - volatile uint16_t CnSTSL; - volatile uint16_t CnSTSH; - volatile uint16_t CnERFLL; - volatile uint16_t CnERFLH; -} can_ch_top_sfr_t; - -typedef struct { - volatile uint16_t IDL; - volatile uint16_t IDH; - volatile uint16_t TS; - volatile uint16_t PTR; - volatile uint16_t DF0; - volatile uint16_t DF1; - volatile uint16_t DF2; - volatile uint16_t DF3; -} can_frame_sfr_t; - -typedef struct { - volatile uint16_t IDL; - volatile uint16_t IDH; - volatile uint16_t ML; - volatile uint16_t MH; - volatile uint16_t PL; - volatile uint16_t PH; -} can_rxrule_sfr_t; - -/* ---- Tx buffers ---- */ -#define TMCp(txbuf) (*((volatile uint8_t *)((uint16_t)&TMC0 + txbuf))) //__near -#define CAN_ADDR_TMSTSp(txbuf) (volatile uint8_t *)((uint16_t)&TMSTS0 + txbuf) // __near - -/* ---- RAM ---- */ -#define CAN_ADDR_RMIDLp(buf) (volatile can_frame_sfr_t *)((uint16_t)&RMIDL0 + (0x10 * (buf))) //__near -#define CAN_ADDR_TMIDLp(txbuf) (volatile can_frame_sfr_t *)((uint16_t)&TMIDL0 + (0x10 * (txbuf))) //__near - - -#define CAN_ADDR_GAFLIDL0 0x03a0 // (volatile can_rxrule_sfr_t *)((uint16_t)&GAFLIDL0) //near - -/* ==== CAN SFR register bit field position ==== */ -/* ---- C0CFGL ---- */ -#define CAN_BRP_BIT_POS 0U -#define CAN_CFG_BAUDRATEL(brp) ((brp) << CAN_BRP_BIT_POS) - -/* ---- C0CFGH ---- */ -#define CAN_SJW_BIT_POS 8U -#define CAN_TSEG2_BIT_POS 4U -#define CAN_TSEG1_BIT_POS 0U -#define CAN_CFG_BAUDRATEH(tseg1, tseg2, sjw) \ - ( ((tseg1) << CAN_TSEG1_BIT_POS) \ - + ((tseg2) << CAN_TSEG2_BIT_POS) \ - + ((sjw) << CAN_SJW_BIT_POS) ) - -/* ---- C0CTRL ---- */ -#define CAN_ALIE_BIT_POS 15U -#define CAN_BLIE_BIT_POS 14U -#define CAN_OLIE_BIT_POS 13U -#define CAN_BORIE_BIT_POS 12U -#define CAN_BOEIE_BIT_POS 11U -#define CAN_EPIE_BIT_POS 10U -#define CAN_EWIE_BIT_POS 9U -#define CAN_BEIE_BIT_POS 8U -#define CAN_CSLPR_BIT_POS 2U -#define CAN_CHMDC_BIT_POS 0U - -#define CAN_CFG_FUNCL(ie_bus, ie_ew, ie_ep, ie_boe, \ - ie_bor, ie_ol, ie_bl, ie_al) \ - ( ((ie_bus) << CAN_BEIE_BIT_POS) \ - + ((ie_ew) << CAN_EWIE_BIT_POS) \ - + ((ie_ep) << CAN_EPIE_BIT_POS) \ - + ((ie_boe) << CAN_BOEIE_BIT_POS) \ - + ((ie_bor) << CAN_BORIE_BIT_POS) \ - + ((ie_ol) << CAN_OLIE_BIT_POS) \ - + ((ie_bl) << CAN_BLIE_BIT_POS) \ - + ((ie_al) << CAN_ALIE_BIT_POS) ) - -#define CAN_STP_BIT_ON BIT_ON(CAN_CSLPR_BIT_POS) -#define CAN_MODE_BITS_ON BITS_2_ON(CAN_CHMDC_BIT_POS) - -/* ---- C0CTRH ---- */ -#define CAN_ERRD_BIT_POS 7U -#define CAN_BOM_BIT_POS 5U -#define CAN_TAIE_BIT_POS 0U - -#define CAN_CFG_FUNCH(ie_ta, boff_mode, er_disp) \ - ( ((ie_ta) << CAN_TAIE_BIT_POS) \ - + ((boff_mode) << CAN_BOM_BIT_POS) \ - + ((er_disp) << CAN_ERRD_BIT_POS) ) - -/* ---- C0STSL ---- */ -#define CAN_CSLPSTS_BIT_POS 2U -#define CAN_CRSTSTS_BIT_POS 0U - -#define CAN_STP_STS_BIT_ON BIT_ON(CAN_CSLPSTS_BIT_POS) -#define CAN_RST_STS_BIT_ON BIT_ON(CAN_CRSTSTS_BIT_POS) - -/* ---- GCFGL ---- */ -#define CAN_TSSS_BIT_POS 12U -#define CAN_TSP_BIT_POS 8U -#define CAN_DCS_BIT_POS 4U -#define CAN_MME_BIT_POS 3U -#define CAN_DRE_BIT_POS 2U -#define CAN_DCE_BIT_POS 1U -#define CAN_TPRI_BIT_POS 0U - -#define CAN_CFG_GCFGL(priority, dlc_check, dlc_replace, \ - mirror, can_clock, ts_clock, \ - ts_pr) \ - ( ((priority) << CAN_TPRI_BIT_POS) \ - + ((dlc_check) << CAN_DCE_BIT_POS) \ - + ((dlc_replace) << CAN_DRE_BIT_POS) \ - + ((mirror) << CAN_MME_BIT_POS) \ - + ((can_clock) << CAN_DCS_BIT_POS) \ - + ((ts_pr) << CAN_TSP_BIT_POS) \ - + ((ts_clock) << CAN_TSSS_BIT_POS) ) - -/* ---- GCFGH ---- */ -#define CAN_ITRCP_BIT_POS 0U - -#define CAN_CFG_GCFGH(it_pr) \ - ( (it_pr) << CAN_ITRCP_BIT_POS ) - -/* ---- GCTRL ---- */ -#define CAN_THLEIE_BIT_POS 10U -#define CAN_MEIE_BIT_POS 9U -#define CAN_DEIE_BIT_POS 8U -#define CAN_GSLPR_BIT_POS 2U -#define CAN_GMDC_BIT_POS 0U - -#define CAN_CFG_GCTRL(overflow_ie, msg_lost_ie, dlc_error_ie) \ - ( ((overflow_ie) << CAN_THLEIE_BIT_POS) \ - + ((msg_lost_ie) << CAN_MEIE_BIT_POS) \ - + ((dlc_error_ie) << CAN_DEIE_BIT_POS)) - -#define CAN_GLB_STP_BIT_ON BIT_ON(CAN_GSLPR_BIT_POS) -#define CAN_GLB_MODE_BITS_ON BITS_2_ON(CAN_GMDC_BIT_POS) - -/* ---- GSTS ---- */ -#define CAN_GRAMINIT_BIT_POS 3U -#define CAN_GSLPSTS_BIT_POS 2U -#define CAN_GRSTSTS_BIT_POS 0U - -#define CAN_RAM_INIT_BIT_ON BIT_ON(CAN_GRAMINIT_BIT_POS) -#define CAN_GLB_STP_STS_BIT_ON BIT_ON(CAN_GSLPSTS_BIT_POS) -#define CAN_GLB_RST_STS_BIT_ON BIT_ON(CAN_GRSTSTS_BIT_POS) - -/* ---- GRWCR ---- */ -#define CAN_RPAGE_BIT_POS 0U - -#define CAN_RAM_WINDOW_BIT_ON BIT_ON(CAN_RPAGE_BIT_POS) - - - -/* ---- RFCCm ---- */ -#define CAN_RFIGCV_BIT_POS 13U -#define CAN_RFIM_BIT_POS 12U -#define CAN_RFDC_BIT_POS 8U -#define CAN_RFIE_BIT_POS 1U -#define CAN_RFE_BIT_POS 0U - -#define CAN_CFG_RXFIFO(dc, i_enable, i_factor, i_timing) \ - ( ((i_timing) << CAN_RFIGCV_BIT_POS) \ - + ((i_factor) << CAN_RFIM_BIT_POS) \ - + ((i_enable) << CAN_RFIE_BIT_POS) \ - + ((dc) << CAN_RFDC_BIT_POS) ) - -#define CAN_RFIFO_EN_BIT_ON BIT_ON(CAN_RFE_BIT_POS) - -/* ---- RFSTSm ---- */ -#define CAN_RFIF_BIT_POS 3U -#define CAN_RFMLT_BIT_POS 2U -#define CAN_RFEMP_BIT_POS 0U - -#define CAN_RFIFO_MSGLST_BIT_ON BIT_ON(CAN_RFMLT_BIT_POS) -#define CAN_RFIFO_EMPTY_BIT_ON BIT_ON(CAN_RFEMP_BIT_POS) - -#define CAN_CLR_WITHOUT_RX_INT BIT_ON(CAN_RFIF_BIT_POS) - -/* ---- CFCCLk ---- */ -#define CAN_CFIGCV_BIT_POS 13U -#define CAN_CFIM_BIT_POS 12U -#define CAN_CFDC_BIT_POS 8U -#define CAN_CFTXIE_BIT_POS 2U -#define CAN_CFRXIE_BIT_POS 1U -#define CAN_CFE_BIT_POS 0U - -#define CAN_CFG_TRFIFO_TXL(dc, i_enable, i_factor) \ - ( ((i_factor) << CAN_CFIM_BIT_POS) \ - + ((dc) << CAN_CFDC_BIT_POS) \ - + ((i_enable) << CAN_CFTXIE_BIT_POS) ) - -#define CAN_CFG_TRFIFO_RXL(dc, i_enable, i_factor, i_timing) \ - ( ((i_timing) << CAN_CFIGCV_BIT_POS) \ - + ((i_factor) << CAN_CFIM_BIT_POS) \ - + ((dc) << CAN_CFDC_BIT_POS) \ - + ((i_enable) << CAN_CFRXIE_BIT_POS) ) - - -#define CAN_TRFIFO_EN_BIT_ON BIT_ON(CAN_CFE_BIT_POS) - -/* ---- CFCCHk ---- */ -#define CAN_CFITT_BIT_POS 8U -#define CAN_CFTML_BIT_POS 4U -#define CAN_CFITR_BIT_POS 3U -#define CAN_CFITSS_BIT_POS 2U -#define CAN_CFM_BIT_POS 0U - -#define CAN_CFG_TRFIFO_TXH(txbuf_idx, timer, time) \ - ( ((time) << CAN_CFITT_BIT_POS) \ - + ((txbuf_idx) << CAN_CFTML_BIT_POS) \ - + ((timer) << CAN_CFITSS_BIT_POS) \ - + ((CAN_TRFIFO_TX_MODE) << CAN_CFM_BIT_POS) ) - -#define CAN_CFG_TRFIFO_RXH ((CAN_TRFIFO_RX_MODE) << CAN_CFM_BIT_POS) - -/* ---- CFSTSk ---- */ -#define CAN_CFTXIF_BIT_POS 4U -#define CAN_CFRXIF_BIT_POS 3U -#define CAN_CFMLT_BIT_POS 2U -#define CAN_CFFLL_BIT_POS 1U -#define CAN_CFEMP_BIT_POS 0U - -#define CAN_TRFIFO_MSGLST_BIT_ON BIT_ON(CAN_CFMLT_BIT_POS) -#define CAN_TRFIFO_FULL_BIT_ON BIT_ON(CAN_CFFLL_BIT_POS) -#define CAN_TRFIFO_EMPTY_BIT_ON BIT_ON(CAN_CFEMP_BIT_POS) - -#define CAN_CLR_WITHOUT_TX_RX_INT \ - (BIT_ON(CAN_CFTXIF_BIT_POS) | BIT_ON(CAN_CFRXIF_BIT_POS)) - - - - -/* ---- TMCp ---- */ -#define CAN_TMTAR_BIT_ON 1U -#define CAN_TMTR_BIT_ON 0U - -#define CAN_TXBUF_ABT_BIT_ON BIT_ON(CAN_TMTAR_BIT_ON) -#define CAN_TXBUF_TRM_BIT_ON BIT_ON(CAN_TMTR_BIT_ON) - -/* ---- TMSTSp ---- */ -#define CAN_TMTRF_BIT_POS 1U - -#define CAN_TXBUF_RSLT_BITS_POS CAN_TMTRF_BIT_POS -#define CAN_TXBUF_RSLT_BITS_ON BITS_2_ON(CAN_TXBUF_RSLT_BITS_POS) - - - - -/* ==== CAN SFR register value ==== */ - -/* ---- Resynchronization jump width ---- */ -#define CAN_SJW_1TQ 0U -#define CAN_SJW_2TQ 1U -#define CAN_SJW_3TQ 2U -#define CAN_SJW_4TQ 3U - -/* ---- Time segment 2 ---- */ -#define CAN_TSEG2_2TQ 1U -#define CAN_TSEG2_3TQ 2U -#define CAN_TSEG2_4TQ 3U -#define CAN_TSEG2_5TQ 4U -#define CAN_TSEG2_6TQ 5U -#define CAN_TSEG2_7TQ 6U -#define CAN_TSEG2_8TQ 7U - -/* ---- Time segment 1 ---- */ -#define CAN_TSEG1_4TQ 3U -#define CAN_TSEG1_5TQ 4U -#define CAN_TSEG1_6TQ 5U -#define CAN_TSEG1_7TQ 6U -#define CAN_TSEG1_8TQ 7U -#define CAN_TSEG1_9TQ 8U -#define CAN_TSEG1_10TQ 9U -#define CAN_TSEG1_11TQ 10U -#define CAN_TSEG1_12TQ 11U -#define CAN_TSEG1_13TQ 12U -#define CAN_TSEG1_14TQ 13U -#define CAN_TSEG1_15TQ 14U -#define CAN_TSEG1_16TQ 15U - -/* ---- Error display mode ---- */ -#define CAN_ERRDISP_FIRST_ERR_ONLY 0U -#define CAN_ERRDISP_ALL_ERR 1U - -/* ---- Bus off recovery mode ---- */ -#define CAN_BOFF_RECOVERY_ISO11898 0U -#define CAN_BOFF_RECOVERY_START_ENTRY 1U -#define CAN_BOFF_RECOVERY_END_ENTRY 2U -#define CAN_BOFF_RECOVERY_MANUAL_ENTRY 3U - -/* ---- Channel mode ---- */ -#define CAN_MODE_CH_COMM_MODE 0U -#define CAN_MODE_CH_RESET_MODE 1U -#define CAN_MODE_CH_HALT_MODE 2U - -/* ---- Time stamp clock source ---- */ -#define CAN_TS_PCLOCK_2 0U -#define CAN_TS_CAN0_BT_CLOCK 1U - -/* ---- Time stamp clock source division ---- */ -#define CAN_TS_NO_DIV 0U -#define CAN_TS_2_DIV 1U -#define CAN_TS_4_DIV 2U -#define CAN_TS_8_DIV 3U -#define CAN_TS_16_DIV 4U -#define CAN_TS_32_DIV 5U -#define CAN_TS_64_DIV 6U -#define CAN_TS_128_DIV 7U -#define CAN_TS_256_DIV 8U -#define CAN_TS_512_DIV 9U -#define CAN_TS_1024_DIV 10U -#define CAN_TS_2048_DIV 11U -#define CAN_TS_4096_DIV 12U -#define CAN_TS_8192_DIV 13U -#define CAN_TS_16384_DIV 14U -#define CAN_TS_32768_DIV 15U - -/* ---- CAN clock source ---- */ -#define CAN_SOURCE_PCLOCK_2 0U -#define CAN_SOURCE_MAIN_CLOCK 1U - -/* ---- transmission priority ---- */ -#define CAN_TX_ID_FIRST 0U -#define CAN_TX_BUF_IDX_FIRST 1U - -/* ---- global mode ---- */ -#define CAN_GLB_OPERATION_MODE 0U -#define CAN_GLB_RESET_MODE 1U -#define CAN_GLB_TEST_MODE 2U - -/* ---- FIFO (Rx, Common) interrupt generation timing ---- */ -#define CAN_FIFO_THRESHOLD_1_8 0U -#define CAN_FIFO_THRESHOLD_2_8 1U -#define CAN_FIFO_THRESHOLD_3_8 2U -#define CAN_FIFO_THRESHOLD_4_8 3U -#define CAN_FIFO_THRESHOLD_5_8 4U -#define CAN_FIFO_THRESHOLD_6_8 5U -#define CAN_FIFO_THRESHOLD_7_8 6U -#define CAN_FIFO_THRESHOLD_FULL 7U - -/* ---- FIFO (Rx, Common) interrupt factor ---- */ -#define CAN_FIFO_INT_THRESHOLD 0U -#define CAN_FIFO_INT_EACH_MSG 1U - -/* ---- FIFO (Rx, Common) depth define ---- */ -#define CAN_FIFO_DEPTH_0 0U -#define CAN_FIFO_DEPTH_4 1U -#define CAN_FIFO_DEPTH_8 2U -#define CAN_FIFO_DEPTH_16 3U - -/* ---- Tx buffer ---- */ -#define CAN_TX_BUFFER_0 0U -#define CAN_TX_BUFFER_1 1U -#define CAN_TX_BUFFER_2 2U -#define CAN_TX_BUFFER_3 3U - -/* ---- Common FIFO interval time counter source ---- */ -#define CAN_IT_PCLOCK_2 0U -#define CAN_IT_CAN_BIT_CLK 1U -#define CAN_IT_PCLOCK_2_10_DIV 2U - -/* ---- Common FIFO mode ---- */ -#define CAN_TRFIFO_RX_MODE 0U -#define CAN_TRFIFO_TX_MODE 1U - -#endif /* R_RL78_CAN_SFR_H */ diff --git a/ECU_BOOT/sys/ftable.h b/ECU_BOOT/sys/ftable.h deleted file mode 100644 index 7949bb9..0000000 --- a/ECU_BOOT/sys/ftable.h +++ /dev/null @@ -1,3 +0,0 @@ - -#define FLASH_TABLE 0xA000 - diff --git a/ECU_BOOT/sys/vector.c b/ECU_BOOT/sys/vector.c deleted file mode 100644 index 71794da..0000000 --- a/ECU_BOOT/sys/vector.c +++ /dev/null @@ -1,217 +0,0 @@ - -//#pragma interrupt INTWDTI r_wdt_interrupt -//#pragma interrupt INTTM04 r_tau0_channel4_interrupt -//#pragma interrupt INTCANGERR RSCAN_INTCANGERR_interrupt -//#pragma interrupt INTCANGRFR RSCAN_INTCANGRECC_interrupt -//#pragma interrupt INTCAN0ERR RSCAN_INTCAN0ERR_interrupt -//#pragma interrupt INTCAN0CFR RSCAN_INTCAN0REC_interrupt -//#pragma interrupt INTCAN0TRM RSCAN_INTCAN0TRX_interrupt - - - -#pragma interrupt INTSRO VECTOR_TABLE_04H //(vect = 0x04 ) -// INTWDTI // -#pragma interrupt INTLVI VECTOR_TABLE_06H //(vect = 0x06 ) -#pragma interrupt INTP0 VECTOR_TABLE_08H //(vect = 0x08 ) -#pragma interrupt INTP1 VECTOR_TABLE_0AH //(vect = 0x0A ) -#pragma interrupt INTP2 VECTOR_TABLE_0CH //(vect = 0x0C ) -#pragma interrupt INTP3 VECTOR_TABLE_0EH //(vect = 0x0E ) -#pragma interrupt INTP4 VECTOR_TABLE_10H //(vect = 0x10 ) -// INTSPM // -#pragma interrupt INTP5 VECTOR_TABLE_12H //(vect = 0x12 ) -// INTCMP0 // -#pragma interrupt INTCLM VECTOR_TABLE_14H //(vect = 0x14 ) -#pragma interrupt INTCSI00 VECTOR_TABLE_16H //(vect = 0x16 ) -// INTIIC00 // -// INTST0 // -#pragma interrupt INTCSI01 VECTOR_TABLE_18H //(vect = 0x18 ) -// INTIIC01 // -// INTSR0 // -#pragma interrupt INTTRD0 VECTOR_TABLE_1AH //(vect = 0x1A ) -#pragma interrupt INTTRD1 VECTOR_TABLE_1CH //(vect = 0x1C ) -#pragma interrupt INTTRJ0 VECTOR_TABLE_1EH //(vect = 0x1E ) -#pragma interrupt INTRAM VECTOR_TABLE_20H //(vect = 0x20 ) -#pragma interrupt INTLIN0TRM VECTOR_TABLE_22H //(vect = 0x22 ) -#pragma interrupt INTLIN0RVC VECTOR_TABLE_24H //(vect = 0x24 ) -#pragma interrupt INTLIN0 VECTOR_TABLE_26H //(vect = 0x26 ) -// INTLIN0STA // -#pragma interrupt INTIICA0 VECTOR_TABLE_28H //(vect = 0x28 ) -#pragma interrupt INTP8 VECTOR_TABLE_2AH //(vect = 0x2A ) -// INTRTC // -#pragma interrupt INTTM00 VECTOR_TABLE_2CH //(vect = 0x2C ) -#pragma interrupt INTTM01 VECTOR_TABLE_2EH //(vect = 0x2E ) -#pragma interrupt INTTM02 VECTOR_TABLE_30H //(vect = 0x30 ) -#pragma interrupt INTTM03 VECTOR_TABLE_32H //(vect = 0x32 ) -#pragma interrupt INTAD VECTOR_TABLE_34H //(vect = 0x34 ) -#pragma interrupt INTP6 VECTOR_TABLE_36H //(vect = 0x36 ) -// INTTM11H // -#pragma interrupt INTP7 VECTOR_TABLE_38H //(vect = 0x38 ) -// INTTM13H // -#pragma interrupt INTP9 VECTOR_TABLE_3AH //(vect = 0x3A ) -// INTTM01H // -#pragma interrupt INTP10 VECTOR_TABLE_3CH //(vect = 0x3C ) -// INTTM03H // -#pragma interrupt INTCSI10 VECTOR_TABLE_3EH //(vect = 0x3E ) -// INTIIC10 // -// INTST1 // -#pragma interrupt INTCSI11 VECTOR_TABLE_40H //(vect = 0x40 ) -// INTIIC11 // -// INTSR1 // -#pragma interrupt INTTM04 VECTOR_TABLE_42H //(vect = 0x42 ) -#pragma interrupt INTTM05 VECTOR_TABLE_44H //(vect = 0x44 ) -#pragma interrupt INTTM06 VECTOR_TABLE_46H //(vect = 0x46 ) -#pragma interrupt INTTM07 VECTOR_TABLE_48H //(vect = 0x48 ) -#pragma interrupt INTLIN0WUP VECTOR_TABLE_4AH //(vect = 0x4A ) -// INTP11 // -#pragma interrupt INTKR VECTOR_TABLE_4CH //(vect = 0x4C ) -#pragma interrupt INTCAN0ERR VECTOR_TABLE_4EH //(vect = 0x4E ) -#pragma interrupt INTCAN0WUP VECTOR_TABLE_50H //(vect = 0x50 ) -#pragma interrupt INTCAN0CFR VECTOR_TABLE_52H //(vect = 0x52 ) -#pragma interrupt INTCAN0TRM VECTOR_TABLE_54H //(vect = 0x54 ) -#pragma interrupt INTCANGRFR VECTOR_TABLE_56H //(vect = 0x56 ) -#pragma interrupt INTCANGERR VECTOR_TABLE_58H //(vect = 0x58 ) -#pragma interrupt INTTM10 VECTOR_TABLE_5AH //(vect = 0x5A ) -#pragma interrupt INTTM11 VECTOR_TABLE_5CH //(vect = 0x5C ) -#pragma interrupt INTTM12 VECTOR_TABLE_5EH //(vect = 0x5E ) -#pragma interrupt INTTM13 VECTOR_TABLE_60H //(vect = 0x60 ) -#pragma interrupt INTFL VECTOR_TABLE_62H //(vect = 0x62 ) -//#pragma interrupt INTP12 VECTOR_TABLE_64H //(vect = 0x64 ) -// INTLIN1WUP // -//#pragma interrupt INTLIN1TRM VECTOR_TABLE_66H //(vect = 0x66 ) -//#pragma interrupt INTLIN1RVC VECTOR_TABLE_68H //(vect = 0x68 ) -//#pragma interrupt INTLIN1 VECTOR_TABLE_6AH //(vect = 0x6A ) -// INTLIN1STA // -//#pragma interrupt INTTM14 VECTOR_TABLE_6CH //(vect = 0x6C ) -//#pragma interrupt INTTM15 VECTOR_TABLE_6EH //(vect = 0x6E ) -//#pragma interrupt INTTM16 VECTOR_TABLE_70H //(vect = 0x70 ) -//#pragma interrupt INTTM17 VECTOR_TABLE_72H //(vect = 0x72 ) -//#pragma interrupt VECTOR_TABLE_74H (vect = 0x74 ) -//#pragma interrupt VECTOR_TABLE_76H (vect = 0x76 ) -//#pragma interrupt VECTOR_TABLE_78H (vect = 0x78 ) -//#pragma interrupt VECTOR_TABLE_7AH (vect = 0x7A ) -//#pragma interrupt VECTOR_TABLE_7CH (vect = 0x7C ) -#pragma interrupt_brk VECTOR_TABLE_7EH - -#include "boot_macrodriver.h" -#include "ftable.h" - -extern void r_wdt_interrupt(void); -extern void r_tau0_channel4_interrupt(void); -extern void RSCAN_INTCANGERR_interrupt (void); -extern void RSCAN_INTCANGRECC_interrupt (void); -extern void RSCAN_INTCAN0ERR_interrupt (void); -extern void RSCAN_INTCAN0REC_interrupt (void); -extern void RSCAN_INTCAN0TRX_interrupt (void); - - -static void __near VECTOR_TABLE_04H(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - r_wdt_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x04 *2)))(); -} -static void __near VECTOR_TABLE_06H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x06 *2)))();} -static void __near VECTOR_TABLE_08H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x08 *2)))();} -static void __near VECTOR_TABLE_0AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x0A *2)))();} -static void __near VECTOR_TABLE_0CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x0C *2)))();} -static void __near VECTOR_TABLE_0EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x0E *2)))();} -static void __near VECTOR_TABLE_10H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x10 *2)))();} -static void __near VECTOR_TABLE_12H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x12 *2)))();} -static void __near VECTOR_TABLE_14H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x14 *2)))();} -static void __near VECTOR_TABLE_16H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x16 *2)))();} -static void __near VECTOR_TABLE_18H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x18 *2)))();} -static void __near VECTOR_TABLE_1AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x1A *2)))();} -static void __near VECTOR_TABLE_1CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x1C *2)))();} -static void __near VECTOR_TABLE_1EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x1E *2)))();} -static void __near VECTOR_TABLE_20H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x20 *2)))();} -static void __near VECTOR_TABLE_22H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x22 *2)))();} -static void __near VECTOR_TABLE_24H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x24 *2)))();} -static void __near VECTOR_TABLE_26H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x26 *2)))();} -static void __near VECTOR_TABLE_28H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x28 *2)))();} -static void __near VECTOR_TABLE_2AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x2A *2)))();} -static void __near VECTOR_TABLE_2CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x2C *2)))();} -static void __near VECTOR_TABLE_2EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x2E *2)))();} -static void __near VECTOR_TABLE_30H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x30 *2)))();} -static void __near VECTOR_TABLE_32H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x32 *2)))();} -static void __near VECTOR_TABLE_34H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x34 *2)))();} -static void __near VECTOR_TABLE_36H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x36 *2)))();} -static void __near VECTOR_TABLE_38H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x38 *2)))();} -static void __near VECTOR_TABLE_3AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x3A *2)))();} -static void __near VECTOR_TABLE_3CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x3C *2)))();} -static void __near VECTOR_TABLE_3EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x3E *2)))();} -static void __near VECTOR_TABLE_40H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x40 *2)))();} - -static void __near VECTOR_TABLE_42H(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - r_tau0_channel4_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x42 *2)))(); -} -static void __near VECTOR_TABLE_44H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x44 *2)))();} -static void __near VECTOR_TABLE_46H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x46 *2)))();} -static void __near VECTOR_TABLE_48H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x48 *2)))();} -static void __near VECTOR_TABLE_4AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x4A *2)))();} -static void __near VECTOR_TABLE_4CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x4C *2)))();} -static void __near VECTOR_TABLE_4EH(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - RSCAN_INTCAN0ERR_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x4E *2)))(); -} -static void __near VECTOR_TABLE_50H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x50 *2)))();} -static void __near VECTOR_TABLE_52H(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - RSCAN_INTCAN0REC_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x52 *2)))(); -} -static void __near VECTOR_TABLE_54H(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - RSCAN_INTCAN0TRX_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x54 *2)))(); -} -static void __near VECTOR_TABLE_56H(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - RSCAN_INTCANGRECC_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x56 *2)))(); -} - -static void __near VECTOR_TABLE_58H(void) -{ - if(KamData.RunAir == RUN_IN_BOOT) - RSCAN_INTCANGERR_interrupt(); - else - ((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x58 *2)))(); -} - -static void __near VECTOR_TABLE_5AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x5A *2)))();} -static void __near VECTOR_TABLE_5CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x5C *2)))();} -static void __near VECTOR_TABLE_5EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x5E *2)))();} -static void __near VECTOR_TABLE_60H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x60 *2)))();} -static void __near VECTOR_TABLE_62H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x62 *2)))();} -static void __near VECTOR_TABLE_64H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x64 *2)))();} -static void __near VECTOR_TABLE_66H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x66 *2)))();} -static void __near VECTOR_TABLE_68H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x68 *2)))();} -static void __near VECTOR_TABLE_6AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x6A *2)))();} -static void __near VECTOR_TABLE_6CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x6C *2)))();} -static void __near VECTOR_TABLE_6EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x6E *2)))();} -static void __near VECTOR_TABLE_70H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x70 *2)))();} -static void __near VECTOR_TABLE_72H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x72 *2)))();} -static void __near VECTOR_TABLE_74H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x74 *2)))();} -static void __near VECTOR_TABLE_76H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x76 *2)))();} -static void __near VECTOR_TABLE_78H(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x78 *2)))();} -static void __near VECTOR_TABLE_7AH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x7A *2)))();} -static void __near VECTOR_TABLE_7CH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x7C *2)))();} -static void __near VECTOR_TABLE_7EH(void){((__far void(*)(void))(*(__far unsigned long *)(FLASH_TABLE + 0x7E *2)))();} - - - - diff --git a/ECU_BOOT/sys/vocter.h b/ECU_BOOT/sys/vocter.h deleted file mode 100644 index 6edf10a..0000000 --- a/ECU_BOOT/sys/vocter.h +++ /dev/null @@ -1,4 +0,0 @@ - - -#define APP_START_ADDR 0xA000 -