From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 644 invoked by alias); 16 Nov 2007 07:07:55 -0000 Received: (qmail 476 invoked by uid 22791); 16 Nov 2007 07:07:52 -0000 X-Spam-Check-By: sourceware.org Received: from pop132.ocn.ne.jp (HELO pop132.ocn.ne.jp) (60.37.31.215) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 16 Nov 2007 07:07:44 +0000 Received: from ariga (p1143-ipbf2202marunouchi.tokyo.ocn.ne.jp [122.17.131.143]) by pop132.ocn.ne.jp (OCN) with SMTP id lAG77bcq013290; Fri, 16 Nov 2007 16:07:37 +0900 (JST) Message-ID: <000601c8281f$5da830e0$1c0110ac@ariga> From: "ariga masahiro" To: "Gary Thomas" , "Alok Singh" , "Andrew Lunn" Cc: References: <47173F99.80405@mlbassoc.com> <000601c8120c$667aa3c0$1c0110ac@ariga> <47187EEB.5020109@mlbassoc.com> <000501c8154d$ecc04db0$1c0110ac@ariga> <000301c816ab$6acbf7f0$1c0110ac@ariga> <000a01c81a9e$6b8c2240$1c0110ac@ariga> <001a01c82044$937a9b50$1c0110ac@ariga> <001501c8204f$486d3180$1c0110ac@ariga> <20071106083527.GB16191@lunn.ch> <000301c820cf$6a8a0b50$1c0110ac@ariga> <000801c820da$3d702c20$1c0110ac@ariga> <002101c8210d$f76211b0$1c0110ac@ariga> <001301c82117$a6bb3430$1c0110ac@ariga> <002101c821aa$8ea9d1b0$1c0110ac@ariga> <001001c821e0$8d1edc60$1c0110ac@ariga> <000c01c82269$ec1a5bc0$1c0110ac@ariga> <001001c82592$5a026b20$1c0110ac@ariga> Date: Fri, 16 Nov 2007 07:40:00 -0000 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0003_01C8286A.CD32EBD0" X-Mailer: Microsoft Outlook Express 6.00.2900.2869 X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: Re: [ECOS] Can't Connect,TCP CHECKSUM INCORRECT X-SW-Source: 2007-11/txt/msg00127.txt.bz2 ------=_NextPart_000_0003_01C8286A.CD32EBD0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit Content-length: 10788 Hello, Since last mail I studied TCP/IP stack source, and I concluded that for problem of length becoming uncorrect when making SYN-ACK packet,only possible cause is tp->t_flags is become un-correct value in tcp_input() for generating SYN-ACK packet. Of cource I know it's caused by my wrong coding or my cofiguration. But I beseech you to help me discover the cause of it. As I said in previous mail, tp->t_flags was 0xA1 when jumped tcp_output at 2345 line in tcp_input.c. tcp_input() 2342: #endif 2343: m_freem(m); 2344: tp->t_flags |= TF_ACKNOW; 2345: (void) tcp_output(tp); Is this value is correct for sending SYN-ACK packet to host. Would you please let me know correct value. If by any chance, this is uncorrect would you enligten me what do you think cause of malfunction ? When I searched tp->t_flags topics in mailing list, I found next topic titled "Re: SYN problem with new TCP/IP stack". In Sun, 12 Feb 2006 mail Mr.Grant Edwards wrote next sentences. > So, the ACK that's required by the TCP RFC is never sent (the > SYN packet is just ignored). So, the host just sits there and > sends SYNs. Then the host's owner gets annoyed and calls > customer support, yadda yadda, and here were are. > Adding the following code immediately after the drop: label at > line 2398 fixes the problem. > if (tp->t_flags & TF_ACKNOW) > (void)tcp_output(tp); I checked my tcp_input.c(CVS current version),it does not include above code. To be on the safe side,I send my tcp_input.c version,would you please check it is updated to include above operation ? One more question: I still not checked auto_negotiation,but is there any chance tp->t_flags becomes bad value when auto_negotiation mal-functioed ? I most earnetly beseech you to help me. Thank you in advance. Masahiro Ariga ----- Original Message ----- From: "ariga masahiro" To: "Gary Thomas" ; "Alok Singh" ; "Andrew Lunn" Cc: Sent: Tuesday, November 13, 2007 10:13 AM Subject: Re: [ECOS] Can't Connect,TCP CHECKSUM INCORRECT > Hello, > > I setted break point at ether_demux()'s 599 line in if_ethersubr.c and > dumped mbuf data > when received SYN packet from host and was confirmed its content is just > as same as > Ethereal captured data and also mh_len is correct. > > ether_demux(ifp, eh, m) 596-601 lines > case ETHERTYPE_IP: > if (ipflow_fastforward(m)) > return; > schednetisr(NETISR_IP); > inq = &ipintrq; > break; > > Ethereal captured SYN-packet > host[172.16.1.28]-->target[172.16.1.200] TCP SYN packet > 0000 00 40 31 08 01 00 00 15 c5 6d 23 f0 08 00 45 00 > 0010 00 30 09 fb 40 00 80 06 95 c8 ac 10 01 1c ac 10 > 0020 01 c8 04 d2 22 42 10 7d 2c a0 00 00 00 00 70 02 > 0030 ff ff c3 e9 00 00 02 04 05 b4 01 01 04 02 > > mbuf dumped data > {m_hdr={mh_next=*00000000,mh_nextpkt=*00000000,mh_data=*8C092EAC,mh_len=0x30,mh_type=0x1,mh_flags=0x2}, > 8C092EAC 45 00 00 30 09 FB 40 00 > 8C092EB4 80 06 95 C8 AC 10 01 1C > 8C092EBC AC 10 01 C8 04 D2 22 42 > 8C092EC4 10 7D 2C A0 00 00 00 00 > 8C092ECC 70 02 FF FF C3 E9 00 00 > 8C092ED4 02 04 05 B4 01 01 04 02 > 8C092EDC 00 40 31 08 01 00 08 06 > 8C092EE4 00 01 08 00 06 04 00 01 > > Also I setted break point at eth_drv_send()'s line 748 in eth_drv.c. > and dumped sg_list in which sending packet is reserved. > This is just before jumping to lan91cxx_send(). > > eth_drv.c > eth_drv_send(struct ifnet *ifp) > 746: // Tell hardware to send this packet > 747: if ( sg_len ) > break 748: (sc->funs->send)(sc, sg_list, sg_len, total_len, > (unsigned long)m0); > > sg_list > [0] = {buf=0x8C0928AE,len=0x36} > [1] = {buf=0x8,len=0x8C0816B4} > [2] = {buf=0x0,len=0x8C081248} > 8C0928AE 00 15 C5 6D 23 F0 00 40 > 8C0928B6 31 08 01 00 08 00 45 00 > 8C0928BE 00 28 00 02 40 00 40 06 > 8C0928C6 DF C9 AC 10 01 C8 AC 10 > 8C0928CE 01 1C 22 42 05 3F 11 0E > 8C0928D6 A5 2E 78 6A D4 5B 60 12 > 8C0928DE 44 70 D5 D5 00 00 02 04 > 8C0928E6 05 B4 00 00 00 00 00 00 > > And I confirmed that already at this point IP packet > length(line-3,column-1,2) is contradicting > with TCP data-offset(line-6,column-7). Both lengths too short. > > Thus I think it proves that my current trouble(=SYN-ACK becomes Malformed > Packet) > is not concerned with hardware byte swapping.(at least directry) > I think it is caused by something else. > > I beseech you to consider again without attention to hardware byte > swapping. > > I re-post my trouble or question from 11/6/2007 mail. >> After exchanged commands in UDP, >> host begins to TCP Connect and send SYN packet >> to our target.Target receives SYN packet and tries to >> send back SYN-ACK but that packet becomes Malformed packet. >> SYN-ACK packet is never recieved by host. >> Please refer to Ethereal txt log file I sent before. >> >> I captured TCP connection between Windows PCs, >> and compared SYN - SYNACK packets between Windows PCs log and >> host-target >> log, >> and I noticed there are some incomprehensible points. >> >> Below is from Ethereal Capture log >> >> Windows<-->Windows -- no problem >> PC-client[172.16.1.28]<-->PC-server[172.16.1.21] >> [172.16.1.28]-->[172.16.1.21] >> SYN-Packet >> 00 10 a4 8a 8a ce 00 15 c5 6d 23 f0 08 00 45 00 >> 00 30 30 b8 40 00 80 06 6f be ac 10 01 1c ac 10 >> 01 15 04 c5 04 21 33 5d c7 c1 00 00 00 00 70 02 >> ff ff 24 c9 00 00 02 04 05 b4 01 01 04 02 >> [172.16.1.21]-->[172.16.1.28] >> SYN-ACK-Packet >> 00 15 c5 6d 23 f0 00 10 a4 8a 8a ce 08 00 45 00 >> 00 30 16 2a 40 00 80 06 8a 4c ac 10 01 15 ac 10 >> 01 1c 04 21 04 c5 20 08 8f 1b 33 5d c7 c2 70 12 >> 44 70 31 24 00 00 02 04 05 b4 01 01 04 02 >> ========================================================= >> cygwin<-->eCos -- SYN-ACK [CHECKSUM INCORRECT][Malformed packet] >> host-client[172.16.1.28]<-->target-server[172.16.1.200] >> [172.16.1.28]-->[172.16.1.200] >> SYN-Packet >> 00 40 31 08 01 00 00 15 c5 6d 23 f0 08 00 45 00 >> 00 30 35 81 40 00 80 06 6a 42 ac 10 01 1c ac 10 >> 01 c8 05 1e 22 42 a6 39 a9 dc 00 00 00 00 70 02 >> ff ff b0 a4 00 00 02 04 05 b4 01 01 04 02 >> [172.16.1.200]-->[172.16.1.28] >> SYN-ACK-Packet >> 00 15 c5 6d 23 f0 00 40 31 08 01 00 08 00 45 00 >> 00 28 00 02 40 00 40 06 df c9 ac 10 01 c8 ac 10 >> 01 1c 22 42 05 1e 17 7a 85 37 a6 39 a9 dd 60 12 >> 44 70 ec 30 00 00 00 00 00 00 00 00 >> >> My incomprehensible points are, >> about Target's SYN-ACK-Packet, >> 1. paket length in IP header(=0028 line-2,colum-1,2) indicates >> length from top of IP header(line-1,colum-15) to last of packet, >> but 0028(=40d) counts to line-4,colum-6,there are 6 bytes surplus. >> 2. data offset bits(=6 line-3,colum-15) indicates there are 4*6=24bytes >> from top of TCP header(line-3,colum-3) to last of packet. >> But 24 counts to line-4,colum-10,there are 2 bytes surplus. >> And there is a contradiction between paket length in IP header and >> TCP >> data offset bits. >> 3. option part of SYN packet(00 00 02 04 05 b4 01 01 04 02) changed to >> (00 >> 00 00 00 00 00 00 00) >> in Target's SYN-ACK-Packet. >> >> Please, could you enlighten me what is cause of this phenomenon ? >> >> By the way,I calculated checksum mannually and confirmed they are all >> correct. >> >> I only changed coding in retrieving data in BigEndian as I reported to >> you. >> I think others are resolved by Macros of bigendian. >> >> Currently when building, Resolve conflicts dialog appears like below. >> >> Resolve conflicts >> Item Conflict Property >> CYGPKG_POSIX_CLOCKS Unsatisfied Requires >> CYGBLD_ISO_STRUCTTIMEVAL_HEADER=="" >> CYGPKG_FILEIO_FNMATCH Unsatisfied Requires >> CYGBLD_ISO_FNMATCH__HEADER=="" >> Proposed Solutions: >> Item Value >> x CYGBLD_ISO_FNMATCH__HEADER Enabled, >> x CYGBLD_ISO_STRUCTTIMEVAL_HEADER Enabled, >> > > I think at least my next observation is connected with my problem. > This is from 11/08/2007 mail. >> I traced tcp_output function. >> It looks to me, at tcp_output's next points, append option part. > >> line 688-691 >> if (optlen) { >> bcopy(opt, th + 1, optlen); >> th->th_off = (sizeof (struct tcphdr) + optlen) >> 2; >> } > >> Although peer sent 8 bytes option,optlen was 4. >> >> Also it looks to me, in generating SYN-ACK packet, at next switch >> sentence, >> case (TH_SYN|TH_ACK) context should be executed. >> But it all passed out these block, never entered if sentence(line 445) >> block. >> At that time tp->t_flags was 0xA1,flags was 0x12. >> >> line 445-510 >> /* >> * Send `CC-family' options if our side wants to use them (TF_REQ_CC), >> * options are allowed (!TF_NOOPT) and it's not a RST. >> */ >> if ((tp->t_flags & (TF_REQ_CC|TF_NOOPT)) == TF_REQ_CC && >> (flags & TH_RST) == 0) { >> switch (flags & (TH_SYN|TH_ACK)) { >> /* >> * This is a normal ACK, send CC if we received CC before >> * from our peer. >> */ >> case TH_ACK: >> if (!(tp->t_flags & TF_RCVD_CC)) >> break; >> /*FALLTHROUGH*/ >> >> /* >> * We can only get here in T/TCP's SYN_SENT* state, when >> * we're a sending a non-SYN segment without waiting for >> * the ACK of our SYN. A check above assures that we only >> * do this if our peer understands T/TCP. >> */ >> case 0: >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_CC; >> opt[optlen++] = TCPOLEN_CC; >> *(u_int32_t *)&opt[optlen] = htonl(tp->cc_send); >> >> optlen += 4; >> break; >> >> /* >> * This is our initial SYN, check whether we have to use >> * CC or CC.new. >> */ >> case TH_SYN: >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = tp->t_flags & TF_SENDCCNEW ? >> TCPOPT_CCNEW : TCPOPT_CC; >> opt[optlen++] = TCPOLEN_CC; >> *(u_int32_t *)&opt[optlen] = htonl(tp->cc_send); >> optlen += 4; >> break; >> >> /* >> * This is a SYN,ACK; send CC and CC.echo if we received >> * CC from our peer. >> */ >> case (TH_SYN|TH_ACK): >> if (tp->t_flags & TF_RCVD_CC) { >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_CC; >> opt[optlen++] = TCPOLEN_CC; >> *(u_int32_t *)&opt[optlen] = >> htonl(tp->cc_send); >> optlen += 4; >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_NOP; >> opt[optlen++] = TCPOPT_CCECHO; >> opt[optlen++] = TCPOLEN_CC; >> *(u_int32_t *)&opt[optlen] = >> htonl(tp->cc_recv); >> optlen += 4; >> } >> break; >> } >> } > > Please help me to resolve problem. > Thank you in advance. ------=_NextPart_000_0003_01C8286A.CD32EBD0 Content-Type: application/x-gzip; name="tcp_input.c.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tcp_input.c.gz" Content-length: 35336 H4sICDJj60IAA3RjcF9pbnB1dC5jALRb+XfbRpL+mforOsk8m5QpUnIcTmJF 9lIkJOENRTIE5ePt7GJAoEkiAgEIACUrif/3/aq6cfCQ48yb5bN59FFdXV3H V9VQu332H3sdtNv4J/iVJm47fUzbocx8/G9nbmz7YbzOWq4a9h9d9ju8zq1+ bzT+ODEvr6bnxqU5pEbN0tHXv/SMcZRkfhSmIpqLbOmnIo3m2YOTSLFyHsXS uZdiJmUoPJn499IT8yRaiVEsQ7DRFEThIpESP0SUiChbygQU1okr06ZwQk8Q JTe6lwnmzh6xhBROHCdRnPhOJmm+G8WPib9YZsLzUzdw/JVMUuGHbrD2MAkU pR+2ttl1E4n5THOCjysno6VoSK+gV+81xMvj45f5iKYwQ7clukEgJjQgRUcq E2yr9e/Kb/tAjGFfH8d/8NwP2ocH4rC6MbchTn768WWT3jv8/iO9/3TM79/z +yt+/wEza1NIfSIXMsz0OUtxE+I4k9TPHqml5wT+PEpC32kJlk+i5JMU8hHM AgTpp1niz9Z0CnzA61TisPShc8vMD53kUYDeCkrw4GdL0g36jNYZUVlFnj/3 XYdoNFlDYpms/IzOE6px79O5Z0scKXE6j4IgevDDBTQl9Hw+fqLCOiqz1/T9 pLXFGu9T8+RGHkau0wzbyRzwyko4g1KWukdE8AqjzHdlU1lCAHpEplyWt7fJ U6mzJCPxcpcRLFiRSM4I9umtwdz/Dy9C7VJT8iJ3vcLhO/mhtQtbXcGIYIlB WgqeD4wIV7fBm/te2Y7jQXMyP6Uly/m0AAZS4xymuYbq0LGTemy7Fs0WSwKL xIHzuLUTx70No4dAegtJdF8rJfaZS4gty91DxV158l4GUVy6mQ0NJwKlkjfF uUxuZSAfWYo+NB2CVZuNkpQ3+6olhtJnIRG10FnJPbYTRmU369w2rXyv2OJM kjRwaJGQoYc+SQLCjlZRJvOdpZuedp/ctCWJNJYu2RGm+mRgCVlQqGwpTfWh 0ZzplWkJa3Qxfd+dGALfx5PRO7Nv9MX5R3QaYmJcGsOpJbrDvuiNhtOJeX4z HU0s8a9/dS1MeP6cuohUd/hRGB/GE8OyxGgizOvxwAQdEJ50h1PTsOBjh73B Td8cXkLKN1MxHE3FwLw2pxg2HTVpPSK0O1OMLsS1Meld4Wf33ByY04/M0IU5 HdJyF1ivK8bdydTs3Qy6EzG+mYxHFlOjffVNqzfomtdGHz7MHGJhYbzDtoR1 1R0MNvYJShvbPDfAYvd8wLR4HWyzb06M3pT2U37rQWrgbtAU1tjomfTF+GBg K93Jx6Ymaxm/3GAQOolav3vdvcTm6n8iFhxJ72ZiXBPDEIR1c25NzenN1BCX o1HfIlIgbxmTd2bPsE7FYGSxxG4so4lFpl1eHlQgLnTj+/mNZbLgzOHUmExu xlNzNGwQoavRe0gGzHYxu89CHg15zxDSaPKR6JI8+Aya4v2VgfYJyZSl1iVZ WJBeb0rUKiOxKuQ5rWxWDI3LgQmp9wzqHRGh96ZlNHBkpkUDTLXy++5H3uMN b58OC7yprxXlbfKRCvNCdPvvTGJeD4YiWKZWmtEFUbJuelda+toOav9V/65R wWe1H1snL0U9dwUN8UP75as2R0zxN41qXn8J4DXvEXhOjv/eetk66RDSOGkf /9h++VIcH7/+4afXIJ76AbyR8SkWfwPV9sHBd9pxiZ+JZuwkzqq1fLPVvHLg B9097bP1fLcVjiOL0ofdjjRyb2W2p/0xdbPgqfH3TkJdlT7atb+1MLUlcEJy dyxLCYhte7xut7FUtnqiN36q3fbdFXXW2ocURoXZux7b59Bc2FCtBsnuXUrv ZU8fqOnev0YxdmdPslisNvfkHHptTDt7B3ae5ml/V6cdek/1gNyT20Rv2ClY Rszx53vWhULvZ4g0fZ4+cVTUmcq7pzszxkRPdpdq9iVpdWhsucEvbCFXHaY2 7Y37xvnN5RNre3K2XvDqa9tdOojgtBmkOn4MjPzfr47/51RAKyiup/5vGjvO OPyvnE/Cj5GUOAjTTYT/B2GO7ztk2wBLhExAa+mVJPF5qhknmjln2hmovY8t o7f/bFPp7ojwVj628b8UCOgyCSKZEshzAY+yGlZO5KdVli0BxZbiTHx/ekBc uW5NfWCvpweabWqiuUJ/nh5YH63edGDDz9/0pnUbC9vElY0BTdqG6uxOEfFp ApA+Wi4G3Ut7QokhAZVnOdFmTrYpvsVUngBw6bupqJdiUwN2lKTxbeO0ujER RAubjRsg90wcF6wizm3zOTL7dveG4mtlUoXT9zmnG93Ior4dREChALuQfLQi SEp8A9iF0mX4vc3ULABmXUaB/HqWiikbDB3UnlU6iJV+RLmASHHYYmJNxcOS 8nGk0DHxlcg5o8pt3ogppexEzZahMwOeBncnX8cdzXuUno3J+wS2S5qZ5c5v +zRXdHv/IKybJQplx/5i8TjDBGBkAYQcCUd4TuaI2KG4s8F0cGdTzWCOdODr Od6auCnVgumNEQXHA6gjpPrLWq6lGOl+Zql0KXZ/Mhrb1sfhhTmsHj0dBaJa OP8r+liZtIfRjV7WATSwCiphpSpLAy8vwAxUg8Wn/WPuiYBS3Bl5Kkhmhl5s A5zA0mcdehNCR75/dK8NgjkCC7qChCOAfA6fpxWvxrT8cB4RLfostf8+8r2a UrUoilVuatvjesWysdghFJu2pj3uYZNER66j6jQPqw2gJQ4b2NbOOvEa+AjZ 1XxGelVdS0GYYrGnqBOQ0ixUFiCnyfQT6aT797BLkRSAlsNrg/hexj+t/EwF xv3Un+AnlA+JDKOv4ojmH+BgkbsuljOcbt9Puf722CzbbkJsEecw8wNKYvsy U55D3MTIHgUZfiKWWL8lGAhVQ7TSIjHsd+wr0vAsboh/HniR+B0fNUSjOjc9 eybo8+gNqT+xioZ/qlOpb3QcvcGHfT8PnIV4hkXGtjl+12mIb2BK1Unbczo4 JwagSWQnGfFQqwEm2eHas4n13VU2Z0AcNwPkb8eNU8z9DK/qw3nXjxswoyCV ezdaWJgqyJn44TrI3eGRdaEA2Tp5uBQJeuARZtButMXwP6fZNwbdjzb8o5Ze rb7HU2Pv37gOa7od07rhAsOxo0yPbDSqEeig0FyMoqoR/gcyxNdV46CWyAV5 uERsqk8GcLKvj1UpW6KT9ZsJ4ceGhq9OD34vmrJULuw7SYPvTve1xnCNJPC9 neH+OZksm3PLTiMQYjFU1Uf1anZJlVJYAZA9dOeQiptBXtU6OzsWzpw2O5MI 7FJISHAW+OmSCzM8Hj7RpXqMPDIAcM4HpnWFRJND1TqmiIZ4m2iGWjSjrfQe C5xBaSHt2gIpGVFAzM4UJ1Q5i1hZHECcB3HHkQbdyWNLmHPxIIXrhM+hlr9y WYz8PQHQ+BZG+OHDB17lujsYjHr1TJZmX0qryWAVGLW+3ddoimt7ahmXv2i/ iNe1PRy975rTxqlmXhLzdEINgWPN8WCLPu3EvV/JFfH04gXG11b2HOnxqr6i 2dCfbJ2EZDr49bmU+4VP9X8EpwXV8MjA3CXEvvCpeMlnwPYSwSC8SKa5KCHv qX0xmhjd3lX9romozacNMviR3Un7TnFIXFvGL/bltH6HAejIlvhcUlpC+p9/ b9CB1GYwjVvilhTxbpNRk8t6iRRkvXRsriRryzlvEmChAp4ukeLouRbIc6N1 olTDCbCC90i1J6o8N8sj5G5dzZMFoOTZegU1CavoFVKGnjjKnLqmtk6r+haT jyxPrDBjsgGftgqtAyrkUiV8OzSSeupAKX5DLBE6A6qfyjvxkDixA9eI4yLa NR8iirdFKl7kbXAG4qgi4FN9GL54A+1nXvLfZ9p36NYdrfLWMQEapVV7u2eP 0MwXZ6UPqm2rX612MTEMNgqt5bqZThcvKoACgpYGCTT6qOzPY+Hmo/R9QyDn UFboLrAnFaAZwy65dpu0CoqkufgXSkk181ydpfj+6P2VlY/CSccBgmuaz2vz 54Z3oFN6+/at7vt8wPtzvF/rK+id2onauzg6U8daqx6KbvtMCr0jP+CxXLq7 XduSLczhPUdCOCSCDYETi3TtunLDJFKgep/1eSWipMnTfLaiR33jpzYePOaX f5RQKJ9Hk3I11kH3bp8GQwnrG+qXq9KR2LH3UgV/1h64NHjdnk8CDa2NO1QK adbuKpqet6lT0T3l4RTrkEOphXdgmz3Y0PgwrRceiwZw88S4Hr0zNjtyfc5p cyMr9d2mThPxsHReACDQSaW1FFNyT1uJLSRK6BrggmQsV8ukXgSkVqflbwpe giN+3kKbr2qHcjkbQYJ3ZA4tYzK1r4xuv77pq2Vlk58FoaqdWd2LqTGpx9uD Dw60ebwutHKsjZe9qQ7CTbqLckKX82D33g4/kTDgyRbLg6r9eeTm1jJEWE9j EkXFi36DrMqyr7rvjEq0r+t9wGIkx4+NGFec8YWJfLy66TyafnMn/vhjV03J YdNgzesOYULRFHvLIaSSpTKSDjC6EWdbxFXrMzG9AlPD039XE4n3NDp6k0Zq 76BoWXavO5xOeu+uEZMbB7Un9JVBM2VBMycmuFp/pglhJ03xF1Q7R+J3hIB3 RXi2KULMqCJ0AoxR8uDcynWMnTQY3ioJs4jQ8DmH75ROcyVfUFoAXN7UN5Ap suwFYmPnh6O/d/SlH03gSrsbBcXNm7pQ9fhBBEvGmVzNSClPfvrxRFDKJdwg SuEENfqv5lEasXfUXUJ9BROI5nO88yKNLax9uIpzLF4ZxQB8G71rcE6mu6pg dqoE+3PHI2DvOx0yaHPcsaEaV/2J3bsykIzAqWnyCknWNxICoEhzPJ6MpiO7 PxoajUrE8BIEwCM/i35dh0d+fN85wpSjLDpCpHWdNONBM5kRm+yLOBqvMwUA /fBtbo9OB3xTSXshMy/NFMMqzrMbRz8llvgE7nc6hdqbw45tXlzY3eHHXtea NuCearWDIiUnipzS4AuxXcMn+b8s8mjT26OUKVA53pZJEiU0hq4HOnYfdnMz ZGi6p8nu9vsTrgVwxuoS83bWeAbCYBfUsCVEr6IDTVUAXZWu9vHFZVNxNhWN 3hz/uUhOqd5wsDETE4/3JIFFHseaRYP2atRGPrjd6cck1TK52+2P7oECDulz XzfXBg59hnZ5bSiKswpF5i3OVDg61g34pfJb3pxu5KoZWFWe8smUV5PZQBvZ UmeNe/PNfFXoC5ZoUopPiAboHOm8n+qfhAXhSEiv1ZRijzbbXUDvp5tuoGqe 5aBOUcsr9qX5KXnx01T/WttBhACY+QCtlTxaVdDgJTgRyCtz/GAIPVOgsQKZ nZ6RrD7FduZEkJETxWpaHGEtgrYR5yLT7ghpqrvM0cWe2TX8t8Mo5GEew1us CS8gVZL1HKA5UkS8ksr2xU0tXUZANpGKQrzP4vZnn/gqBr6pOX5K/qh6BcMz lbtBfwIK0kmjkK98LqJEzBwvxto2FRcDgFzHdZEaZYQx4nUSw6GnG7c3ihG1 DmHWHa8Ch0Lmb99T7Oo0xFtxIl5XdlSb/SaTqF5Xyt94lkWFA0YkYD+7jd6z KHMCwvXbXJCTZE4UQKPtbnv5Bqe5KltF4o3sW1375KGooZPAP3eR2iY1ryT7 BmA6AOcyrRc+L2bAfaTdi4bj0Hb3Nl2v2LNqN4azV55KGXZDo/TtreN4MFFn jJxJkXnoHKjGMLa+5bga9arLBYvsDzkQcI6I4HTOD+A4bubf8/NYsOF1qMM8 9JTv+IiETNPyabeWmttNKVmiB52QtR/RWapcWxcH1+GMUmvptdehvqSh59zc WVNNf3Id1wmrzwxhLt30qCIAJqrZQ3p2iJ+V27gZ2CHqSYTTUAEWP1VzCyWg uyQMpMpArgZqjbY+MI6vFsc3BDt+9uXCBEwuQ1uauPmJQemoYMU3fyqr3T4m lQzss0lVnPq9QBaX8HnmmO+PCK6pe1dIY6EKruB47sOEOZQxqmeBvKY5gXTu YapmMWt3sE4BSB3Em+3ymR/rDcF06UG4WLtQ0tn6RgRtMHivMZmzLezkxyqh 4YVWR29WnFf9vFOroxtsAlllbavOKRpfdgDLrnbLe8WUhqo77rcXdqTaXBRw KOsFHLj3+StyngjYFVvK4zgsiHLEPzWz0spyN+HH7AU5OFfEEd9mmN1yYdQF nOtZN9c2PdRkv+sOzH4pky/PGFvGTX9kw9U1tCKVr6JosmaxbtOhrLLMYrYn b8ylp0BSufaiut4RVL+VcvQusJ/uAd7Le8Qyi8JgdwOczr7YmkcCe1F1jA3l b0s2/hcH/mk+Z+hTSa1zd9ZbSvavQn7KJPmeqvWQMdGypYlX/XhV/8FEptNO FaNIC8Dh0v50UsSoSptis2hQZOtrm3WwkZO6mo6GVr06ant3LOQiQOgBn/Mq ez5sf6G6Gh+qfufzVqhs09PMR4Bvme8E/m/KM9J1aECPtIq8auqSJJWniPMo jpN5Z0wsczQsYrjSk0pNmU9AOWYSPWwhlVRFvuWaa5hKVTQj6xYUbXhQXD7Z 63h8D4C9L7Jlq1aDR9UeC6S4VMNioB8//yxenhaebK9vITdBFQnqf6PC61PC w5B9wlNWfHTGcJuEx7+BJDg8+SGQtONxruyDMZ/PvuJfd92r5or42DyYHRCz N1FVQAHvTaHqcF+BV/4aOqh9IUzViji1369v2hAIVsrif+bXyzkbfv2Ljr3i 2VUJ+UuevfZl3/41YtqQUi4NWrhI1OjMj54481M1MFbOQcNeuj57IU60pet8 rFT0/FLviccxNq9yNh7JUFZFqlo8qMKXKXTFUsVMqkgR6YffQZftkB6vmNFD 3TDfltDPoMt7roHL1qIlwpUT8+2OKoJ79Bj8/JGyBSIDPtsmP/Dk3jLkOKje HvBdUAzXM6OCO+G2yUXvpPPqlfLbKXuD+rRNEaAKWKrb44v2ZR4H69MrEskf qg6oNGi7bdO286pB4bj4xkg5pJ2CFwCUDLyU4OgSuRn/RYNTXIIOp6OrQaVm z8W5ahtdWus2K29D0rrThjSrWl5SjxMRu/pBrGaJ6tKmwrcQWNmSw0XtUJWr pRwu0Dc1jFgBD/lJ/ShQORFdttNdDv0Ji8TOpP4biTlwu/qrEyKjrjGRNz3P xIPDpQOkhEpUOQcKiZ5L1+G/jtm32CJiFYmggolKjRWY1HfQqXQSLEPxKC94 IxWInZS8bXkLfRSAW76fJFZSJqHiCj1ZLDP6Syo1FXtYOuGCnkRQh1Uplihz PVZGXZH7QF1YU9mEGMkvKxUB6J6HntflU4wX5sR43x0M6PL2fXfS1+lobM8f 8M9T9Q19Zbnl8/mhp2ciT6LVGPa4dLbpOqaMnO/bokw8Ss4rnnLLjQ0k1Kc/ 1UDC1aILBMJCWh7sJcqcqLWZEcE++F468G8l10veijIfCmONAt1ZEEW3a4jR SZf/1963drdxXVl+Jn9F2Wu1DUggJdGykiZFpWmIsjmRSIakLGdlMugiUCCr BaAQFCCKsTy/fc4+j/uoB0jZ6fTqmdFaiSXUvbdu3ed57LNP5ytFRvUSLxd6 PzQ+oCdnr4mG7iHbGxjnFYqHdMTnY2eV/yJ3XlT64s0NVf7QBu7hJcwq2c02 uzoxNRJYROuhvGa/HZuPNr0TUtqM5mbrRYmvgqimV85nfaq4OANpWb6q6R1O Vg7L6yg8aRuFUM69R9dc82tmgxUDK3VXN82u0TJk6Lkr2/YFaqWo7AlnsIoE DjHeVDdVqCS32n6CVfqsfe4i5b1hpdKnRKbr6np9YqUav7ZVdPpN+ydWruo9 auyLE84rgOt1ljMxUzmIBZ9OgGPDPDJYZP+RDZeDsmAn/WwegpDMCiKlWWLj JTL5kBctVqs1cmZbN57esxtcuKkTFdWoBiSvCFRih6UDuP/6BGE3nXw72wYO /DvG7vC5nH3MSzo6cCBtymE6kctLQy4dlNpsz9QcQhbTxUivJXsbmuXWyuRy tRRJyd7MPeErDxLd9HJxW8zyoVzxKKzQOw3dGwFlPBFwL11hqcGk6UDkQz8a 5Mi3jR8DVHiDnrLBkuuIrty/8E9sHju/OHt9ePxXErobf98TdGE8yWFLTx+o zPzlk51vvrR2Kr82mrNr3avpUbCWD+e3HbyoJ2LJfJHPluNOtM+7ip/R0uWa 0mz1Cw5nZ9IOFKTKW4GFpqM07fhtrE3E76uWc6/yysZGSTIzSUnVecKAwt/w ZFeuinEgIIss3JWTi+p1Xp98Pzg6fnXibDcbG1/2HZY+SZfLbMp+FJYo/6Xc /RcNzeS//s/Zl0FF+US5KMKTqasnJX+a/DUqxKebDbsDlMhH7MhHNHf1M3oq sMjdxx//5WPU6fY+J667XLChxz3zm9W6TgsxXU2Wu5Wf3QVIS9NFOdCUJeFs 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 /T9vjmHSXUoBAA== ------=_NextPart_000_0003_01C8286A.CD32EBD0 Content-Type: text/plain; charset=us-ascii Content-length: 148 -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ------=_NextPart_000_0003_01C8286A.CD32EBD0--