Re: mailfront new plugin API
Scott Gifford <[email protected]> Wed, 27 Jul 2011 01:51:50 -0400
| Newsgroups | gmane.comp.sysutils.bgware |
|---|---|
| Message-ID | <CADzP0Nz0yN6uLh5cNxn0Hwuhzz38vmBG2qNGZVFyJ83KBsC3ew@mail.gmail.com> |
--bcaec51b9a496799ad04a906a7aa Content-Type: multipart/alternative; boundary=bcaec51b9a496799aa04a906a7a8 --bcaec51b9a496799aa04a906a7a8 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Jul 25, 2011 at 11:49 PM, Scott Gifford <[email protected]>wrote: > On Thu, Jul 14, 2011 at 6:27 PM, Bruce Guenter <[email protected]>wrote: > >> On Thu, Jul 14, 2011 at 02:34:59PM -0600, Bruce Guenter wrote: >> > I've pushed out my current code for the next mailfront API to github >> > as branch "api3". ... Just drop the attached file into the mailfront >> > source directory and type: >> > >> > ./makeso plugin-starttls-ucspi.c -lbg -lbg-sysdeps >> > >> > and add starttls-ucspi to the mailfront command line. >> >> I'm making it too hard on you. I've uploaded a tarball of all the >> sources to: >> >> http://untroubled.org/mailfront/mailfront-2.00pre1.tar.gz > > > Bruce, > > I have spent some time playing with this, and so far things look good. > > I ran into a few problems with "/home/bruce/dev" sneaking into config files > instead of "/usr/local/bglibs/include", but nothing that was hard to > overcome. > > I am working on setting up a new mail server for a client, so this will get > a better workout over the next week or two. > OK, I have this up and running for SMTP! Here is a patch with a few changes: - Changes "/home/bruce/dev" to "/usr/local/bglibs/include" in some config files, and adds "-L/usr/local/bglibs/lib" to "conf-ld". Not sure if these are necessary, but I needed these changes to compile, and it was easier to leave them in than take them out - Implements "AUTH_REQUIRES_TLS" environment variable setting for "plugin-cvm-authenticate.c", where authentication options are only offerred after encryption is negotiated, preventing sending a password in plaintext - Fix missing newline after AUTH EHLO response - After negotiating TLS, remove UCSPITLS from environment, so other modules can tell TLS has been negotiated - Flush input buffer after STARTTLS, to avoid CVE-2011-0411<http://www.postfix.org/CVE-2011-0411.html> - Added a first draft of documentation for "plugin-starttls-ucspi" I couldn't find a way to make it work with IMAP or POP3 though. Is that something that you have planned, or something I should work on myself? Thanks! -----Scott. --bcaec51b9a496799aa04a906a7a8 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div><div>On Mon, Jul 25, 2011 at 11:49 PM, Scott Gifford <span dir=3D"ltr"= ><<a href=3D"mailto:[email protected]" target=3D"_blank">sgiffor= [email protected]</a>></span> wrote:</div><div class=3D"gmail_quote"><b= lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px = #ccc solid;padding-left:1ex"> <div><div class=3D"gmail_quote"><div>On Thu, Jul 14, 2011 at 6:27 PM, Bruce= Guenter <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" targ= et=3D"_blank">[email protected]</a>></span> wrote:<br><blockquote cla= ss=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pa= dding-left:1ex"> <div>On Thu, Jul 14, 2011 at 02:34:59PM -0600, Bruce Guenter wrote:<br> > I've pushed out my current code for the next mailfront API to gith= ub<br> </div>> as branch "api3". ... =A0Just drop the attached file i= nto the mailfront<br> <div>> source directory and type:<br> ><br> > =A0 =A0 =A0 ./makeso plugin-starttls-ucspi.c =A0-lbg -lbg-sysdeps<br> ><br> > and add starttls-ucspi to the mailfront command line.<br> <br> </div>I'm making it too hard on you. =A0I've uploaded a tarball of = all the<br> sources to:<br> <br> =A0 =A0 =A0 =A0<a href=3D"http://untroubled.org/mailfront/mailfront-2.00pr= e1.tar.gz" target=3D"_blank">http://untroubled.org/mailfront/mailfront-2.00= pre1.tar.gz</a></blockquote><div><br></div></div><div>Bruce,</div><div><br>= </div><div> I have spent some time playing with this, and so far things look good.</div= > <div><br></div><div>I ran into a few problems with "/home/bruce/dev&qu= ot; sneaking into config files instead of "/usr/local/bglibs/include&q= uot;, but nothing that was hard to overcome.</div><div><br></div><div> I am working on setting up a new mail server for a client, so this will get= a better workout over the next week or two.</div></div></div></blockquote>= <div><br></div><div>OK, I have this up and running for SMTP! =A0Here is a p= atch with a few changes:<div> <ul><li>Changes "/home/bruce/dev" to "/usr/local/bglibs/incl= ude" in some config files, and adds "-L/usr/local/bglibs/lib"= ; to "conf-ld". =A0Not sure if these are necessary, but I needed = these changes to compile, and it was easier to leave them in than take them= out</li> <li>Implements "AUTH_REQUIRES_TLS" environment variable setting f= or "plugin-cvm-authenticate.c", where authentication options are = only offerred after encryption is negotiated, preventing sending a password= in plaintext</li> <li> Fix missing newline after AUTH EHLO response</li><li>After negotiating TLS,= remove UCSPITLS from environment, so other modules can tell TLS has been n= egotiated</li><li>Flush input buffer after STARTTLS, to avoid=A0<a href=3D"= http://www.postfix.org/CVE-2011-0411.html">CVE-2011-0411</a></li> <li>Added a first draft of documentation for "plugin-starttls-ucspi&qu= ot;</li></ul><div>I couldn't find a way to make it work with IMAP or PO= P3 though. =A0Is that something that you have planned, or something I shoul= d work on myself?</div> </div></div><div><br></div><div>Thanks!</div><div><br></div><div>-----Scott= .</div><div><br></div></div></div> --bcaec51b9a496799aa04a906a7a8-- --bcaec51b9a496799ad04a906a7aa Content-Type: application/octet-stream; name="mailfront-2.00pre1-ucspitls-sg2.patch" Content-Disposition: attachment; filename="mailfront-2.00pre1-ucspitls-sg2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqlviloa0 T25seSBpbiBtYWlsZnJvbnQtMi4wMHByZTEtc2cvOiBjbWQudHh0Ck9ubHkgaW4gbWFpbGZyb250 LTIuMDBwcmUxOiBjb21waWxlCmRpZmYgLXVyIG1haWxmcm9udC0yLjAwcHJlMS9jb25mLWNjIG1h aWxmcm9udC0yLjAwcHJlMS1zZy9jb25mLWNjCi0tLSBtYWlsZnJvbnQtMi4wMHByZTEvY29uZi1j YwkyMDExLTA3LTE0IDE4OjEzOjU5LjAwMDAwMDAwMCAtMDQwMAorKysgbWFpbGZyb250LTIuMDBw cmUxLXNnL2NvbmYtY2MJMjAxMS0wNy0yNiAyMzo0MTo1Ni4wMDAwMDAwMDAgLTA0MDAKQEAgLTEs MyArMSwzIEBACi1nY2MgLVcgLVdhbGwgLVdzaGFkb3cgLU8gLWcgLUkvdXNyL2xvY2FsL2luY2x1 ZGUgLUkvaG9tZS9icnVjZS9kZXYKK2djYyAtVyAtV2FsbCAtV3NoYWRvdyAtZ2R3YXJmLTIgLUkv dXNyL2xvY2FsL2luY2x1ZGUgLUkvdXNyL2xvY2FsL2JnbGlicy9pbmNsdWRlCiAKIFRoaXMgd2ls bCBiZSB1c2VkIHRvIGNvbXBpbGUgLmMgZmlsZXMuCk9ubHkgaW4gbWFpbGZyb250LTIuMDBwcmUx LXNnLzogY29uZi1jY34KZGlmZiAtdXIgbWFpbGZyb250LTIuMDBwcmUxL2NvbmYtY2NzbyBtYWls ZnJvbnQtMi4wMHByZTEtc2cvY29uZi1jY3NvCi0tLSBtYWlsZnJvbnQtMi4wMHByZTEvY29uZi1j Y3NvCTIwMTEtMDctMTQgMTg6MTM6NTkuMDAwMDAwMDAwIC0wNDAwCisrKyBtYWlsZnJvbnQtMi4w MHByZTEtc2cvY29uZi1jY3NvCTIwMTEtMDctMjUgMjM6MTU6MDUuMDAwMDAwMDAwIC0wNDAwCkBA IC0xLDMgKzEsMyBAQAotZ2NjIC1XIC1XYWxsIC1Xc2hhZG93IC1PIC1nIC1JL3Vzci9sb2NhbC9p bmNsdWRlIC1JL2hvbWUvYnJ1Y2UvZGV2IC1mUElDIC1zaGFyZWQKK2djYyAtVyAtV2FsbCAtV3No YWRvdyAtTyAtZyAtSS91c3IvbG9jYWwvaW5jbHVkZSAtSS91c3IvbG9jYWwvYmdsaWJzL2luY2x1 ZGUgLWZQSUMgLXNoYXJlZAogCiBUaGlzIHdpbGwgYmUgdXNlZCB0byBjb21waWxlIC5jIGZpbGVz IGludG8gc2hhcmVkIG9iamVjdHMuCmRpZmYgLXVyIG1haWxmcm9udC0yLjAwcHJlMS9jb25mLWxk IG1haWxmcm9udC0yLjAwcHJlMS1zZy9jb25mLWxkCi0tLSBtYWlsZnJvbnQtMi4wMHByZTEvY29u Zi1sZAkyMDExLTA3LTE0IDE4OjEzOjU5LjAwMDAwMDAwMCAtMDQwMAorKysgbWFpbGZyb250LTIu MDBwcmUxLXNnL2NvbmYtbGQJMjAxMS0wNy0yNSAyMzoxNDoxNi4wMDAwMDAwMDAgLTA0MDAKQEAg LTEsMyArMSwzIEBACi1nY2MgLWcgLUwvdXNyL2xvY2FsL2xpYgorZ2NjIC1nIC1ML3Vzci9sb2Nh bC9saWIgLUwvdXNyL2xvY2FsL2JnbGlicy9saWIKIAogVGhpcyB3aWxsIGJlIHVzZWQgdG8gbGlu ayAubyBhbmQgLmEgZmlsZXMgaW50byBhbiBleGVjdXRhYmxlLgpPbmx5IGluIG1haWxmcm9udC0y LjAwcHJlMTogbWFrZWxpYgpPbmx5IGluIG1haWxmcm9udC0yLjAwcHJlMS1zZy86IHBsdWdpbi1h ZGQtcmVjZWl2ZWQubwpkaWZmIC11ciBtYWlsZnJvbnQtMi4wMHByZTEvcGx1Z2luLWN2bS1hdXRo ZW50aWNhdGUuYyBtYWlsZnJvbnQtMi4wMHByZTEtc2cvcGx1Z2luLWN2bS1hdXRoZW50aWNhdGUu YwotLS0gbWFpbGZyb250LTIuMDBwcmUxL3BsdWdpbi1jdm0tYXV0aGVudGljYXRlLmMJMjAxMS0w Ny0xNCAxODoxMzo1OS4wMDAwMDAwMDAgLTA0MDAKKysrIG1haWxmcm9udC0yLjAwcHJlMS1zZy9w bHVnaW4tY3ZtLWF1dGhlbnRpY2F0ZS5jCTIwMTEtMDctMjYgMjI6MzU6MTAuMDAwMDAwMDAwIC0w NDAwCkBAIC0yLDEwICsyLDEzIEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8Y3Zt L2ZhY3RzLmg+CiAjaW5jbHVkZSA8Y3ZtL3Nhc2wuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNp bmNsdWRlIDxzdHJpbmcuaD4KIAogc3RhdGljIFJFU1BPTlNFKGF1dGhmYWlsLCA0MjEsICI0LjMu MCBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBBVVRIIik7CiBzdGF0aWMgUkVTUE9OU0UoYXV0aF9hbHJl YWR5LCA1MDMsICI1LjUuMSBZb3UgYXJlIGFscmVhZHkgYXV0aGVudGljYXRlZC4iKTsKIHN0YXRp YyBSRVNQT05TRShhdXRoZW50aWNhdGVkLCAyMzUsICIyLjcuMCBBdXRoZW50aWNhdGlvbiBzdWNj ZWVkZWQuIik7CitzdGF0aWMgUkVTUE9OU0UodW5pbXAsIDUwMCwgIjUuNS4xIE5vdCBpbXBsZW1l bnRlZC4iKTsKIAogc3RhdGljIHN0cnVjdCBzYXNsX2F1dGggc2FzbGF1dGggPSB7IC5wcmVmaXgg PSAiMzM0ICIgfTsKIApAQCAtMjUsOSArMjgsMTkgQEAKICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBpbnQgYXV0aF9hbGxvd2VkKCkgeworICAvLyBBbGxvd2VkIGlmLi4uCisgIHJldHVybiAhZ2V0 ZW52KCJBVVRIX1JFUVVJUkVTX1RMUyIpIC8vIFRMUyBpcyBub3QgcmVxdWlyZWQgZm9yIFNTTCwg b3IKKyAgICB8fCAoKGdldGVudigiUFJPVE8iKSAhPSAwICYmIHN0cmNtcChnZXRlbnYoIlBST1RP IiksIlNTTCIpID09IDApIC8vIHdlIGFyZSBydW5uaW5nIHVuZGVyIFNTTCwgYW5kCisJJiYgZ2V0 ZW52KCJVQ1NQSVRMUyIpID09IDApOyAvLyBUTFMgaXMgbm90IHdhaXRpbmcgdG8gYmUgbmVnb3Rp YXRlZC4KK30KKwogc3RhdGljIGNvbnN0IHJlc3BvbnNlKiBoZWxvKHN0ciogaG9zdG5hbWUsIHN0 ciogY2FwYWJpbGl0aWVzKQogeworICBpZiAoIWF1dGhfYWxsb3dlZCgpKQorICAgIHJldHVybiAw OwogICBzdHJfY2F0KGNhcGFiaWxpdGllcywgJmF1dGhfY2Fwcyk7CisgIHN0cl9jYXRjKGNhcGFi aWxpdGllcywgJ1xuJyk7CiAgIHJldHVybiAwOwogICAodm9pZClob3N0bmFtZTsKIH0KQEAgLTM1 LDYgKzQ4LDggQEAKIHN0YXRpYyBpbnQgY21kX0FVVEgoc3RyKiBwYXJhbSkKIHsKICAgaW50IGk7 CisgIGlmICghYXV0aF9hbGxvd2VkKCkpCisgICAgcmV0dXJuIHJlc3BvbmQoJnJlc3BfdW5pbXAp OwogICBpZiAoc2Vzc2lvbl9nZXRudW0oImF1dGhlbnRpY2F0ZWQiLCAwKSkKICAgICByZXR1cm4g cmVzcG9uZCgmcmVzcF9hdXRoX2FscmVhZHkpOwogICBpZiAoKGkgPSBzYXNsX2F1dGgxKCZzYXNs YXV0aCwgcGFyYW0pKSAhPSAwKSB7CmRpZmYgLXVyIG1haWxmcm9udC0yLjAwcHJlMS9wbHVnaW4t Y3ZtLWF1dGhlbnRpY2F0ZS5odG1sIG1haWxmcm9udC0yLjAwcHJlMS1zZy9wbHVnaW4tY3ZtLWF1 dGhlbnRpY2F0ZS5odG1sCi0tLSBtYWlsZnJvbnQtMi4wMHByZTEvcGx1Z2luLWN2bS1hdXRoZW50 aWNhdGUuaHRtbAkyMDExLTA3LTE0IDE4OjEzOjU5LjAwMDAwMDAwMCAtMDQwMAorKysgbWFpbGZy b250LTIuMDBwcmUxLXNnL3BsdWdpbi1jdm0tYXV0aGVudGljYXRlLmh0bWwJMjAxMS0wNy0yNiAy MzowNjozMi4wMDAwMDAwMDAgLTA0MDAKQEAgLTE3LDYgKzE3LDIwIEBACiAgIHRoZSA8YSBocmVm PSJodHRwOi8vdW50cm91YmxlZC5vcmcvY3ZtL3Nhc2wuaHRtbCI+Q1ZNIFNBU0w8L2E+CiAgIGxp YnJhcnkuPC9wPgogCis8cD5BZGRpdGlvbmFsbHksIGl0IHJlY29nbml6ZXMgdGhlIGZvbGxvd2lu ZyBlbnZpcm9ubWVudCB2YXJpYWJsZToKKzxkbD4gCisgIDxkdD48dHQ+QVVUSF9SRVFVSVJFU19U TFM8L3R0PjwvZHQ+CisgIDxkZD5Pbmx5IG9mZmVyIGF1dGhlbnRpY2F0aW9uIHdoZW4gdGhlIGNs aWVudCBpcyB1c2luZyBhbiBlbmNyeXB0ZWQKKyAgY29ubmVjdGlvbiwgdG8gYXZvaWQgc2VuZGlu ZyBhIHBhc3N3b3JkIG92ZXIgYW4gaW5zZWN1cmUgY29ubmVjdGlvbi4KKyAgVGhpcyBjaGVja3Mg dGhhdCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPHR0PlBST1RPPC90dD4gaXMgc2V0IHRvCisg IDx0dD5TU0w8L3R0PiwgYW5kIDx0dD5VQ1NQSVRMUzwvdHQ+IGlzIG5vdCBzZXQuICBUaGUKKyAg PGEgaHJlZj0icGx1Z2luLXN0YXJ0dGxzLXVjc3BpIj5zdGFydHRscy11Y3NwaSBwbHVnaW48L2E+ IHdpbGwKKyAgcmVtb3ZlIDx0dD5VQ1NQSVRMUzwvdHQ+IHZhcmlhYmxlIGZyb20gdGhlIGVudmly b25tZW50LCB0byBpbmRpY2F0ZQorICB0aGF0IFRMUyBoYXMgYmVlbiBuZWdvdGlhdGVkLjwvZGQ+ Cis8L2RsPgorPC9wPgorCisKIDxoMj5Db21tYW5kczwvaDI+CiAKIDxkbD4KZGlmZiAtdXIgbWFp bGZyb250LTIuMDBwcmUxL3BsdWdpbi1zdGFydHRscy11Y3NwaS5jIG1haWxmcm9udC0yLjAwcHJl MS1zZy9wbHVnaW4tc3RhcnR0bHMtdWNzcGkuYwotLS0gbWFpbGZyb250LTIuMDBwcmUxL3BsdWdp bi1zdGFydHRscy11Y3NwaS5jCTIwMTEtMDctMTQgMTg6MTM6NTkuMDAwMDAwMDAwIC0wNDAwCisr KyBtYWlsZnJvbnQtMi4wMHByZTEtc2cvcGx1Z2luLXN0YXJ0dGxzLXVjc3BpLmMJMjAxMS0wNy0y NyAwMTo0NDo0NS4wMDAwMDAwMDAgLTA0MDAKQEAgLTEsOSArMSwxMSBAQAogI2luY2x1ZGUgIm1h aWxmcm9udC5oIgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2lu Y2x1ZGUgPGlvYnVmL2lvYnVmLmg+CiAKIHN0YXRpYyBSRVNQT05TRSh1bmltcCwgNTAwLCAiNS41 LjEgTm90IGltcGxlbWVudGVkLiIpOwogc3RhdGljIFJFU1BPTlNFKHN0YXJ0LCAyMjAsICIyLjAu MCBSZWFkeSB0byBzdGFydCBUTFMiKTsKK3N0YXRpYyBSRVNQT05TRShlYXJseXRhbGtlciwgNTAw LCAiNS41LjEgVW5leHBlY3RlZCBwaXBlbGluZWQgY29tbWFuZHMgZm9sbG93aW5nIFNUQVJUVExT Iik7CiAKIHN0YXRpYyBpbnQgdGxzX2F2YWlsYWJsZSA9IDA7CiAKQEAgLTI1LDYgKzI3LDIxIEBA CiB7CiAgIGludCBmZDsKICAgY2hhciAqZmRzdHI7CisgIGludCBleHRyYWNoYXJzID0gMDsKKyAg Y2hhciBjOworCisgIC8qIFNUQVJUVExTIG11c3QgYmUgdGhlIGxhc3QgY29tbWFuZCBpbiBhIHBp cGVsaW5lLCBvdGhlcndpc2Ugd2UgY2FuCisgICAqIGNyZWF0ZSBhIHNlY3VyaXR5IHJpc2sgKHNl ZSBDVkUtMjAxMS0wNDExKS4gIENsb3NlIGlucHV0IGFuZAorICAgKiBjaGVjayBmb3IgYW55IGV4 dHJhIHBpcGVsaW5lZCBjb21tYW5kcywgc28gd2UgY2FuIGdpdmUgYW4gZXJyb3IKKyAgICogbWVz c2FnZS4gIE5vdGUgdGhhdCB0aGlzIHdpbGwgY2F1c2UgYW4gZXJyb3Igb24gdGhlIGZpbGVoYW5k bGUsCisgICAqIHNpbmNlIHdlIGhhdmUgY2xvc2VkIGl0LgorICAgKi8KKyAgY2xvc2UoMCk7Cisg ICAgCisgIHdoaWxlICghaWJ1Zl9lb2YoJmluYnVmKSAmJiAhaWJ1Zl9lcnJvcigmaW5idWYpKSB7 CisgICAgaWYgKGlidWZfZ2V0YygmaW5idWYsICZjKSkKKyAgICAgICsrZXh0cmFjaGFyczsKKyAg fQogCiAgIGlmICghKGZkc3RyPWdldGVudigiU1NMQ1RMRkQiKSkpCiAgICAgcmV0dXJuIDA7CkBA IC00Nyw2ICs2NCwxMiBAQAogICBpZiAoZHVwMihmZCwgMSkgIT0gMSkKICAgICByZXR1cm4gMDsK IAorICAvKiBSZS1pbml0aWFsaXplIHN0ZGluIGFuZCBjbGVhciBpbnB1dCBidWZmZXIgKi8KKyAg aWJ1Zl9pbml0KCZpbmJ1ZiwwLDAsSU9CVUZfTkVFRFNDTE9TRSwgNDA5Nik7CisKKyAgaWYgKGV4 dHJhY2hhcnMpCisgICAgcmVzcG9uZCgmcmVzcF9lYXJseXRhbGtlcik7CisgIAogICByZXR1cm4g MTsKIH0KIApAQCAtNjIsNiArODUsMTEgQEAKICAgICByZXR1cm4gMDsKIAogICB0bHNfYXZhaWxh YmxlID0gMDsKKworICAvKiBSZW1vdmUgVUNTUElUTFMgZnJvbSBlbnZpcm9ubWVudCB0byBpbmRp Y2F0ZSBpdCBpcyBhbHJlYWR5CisgICAqIG5lZ290aWF0ZWQsIGFuZCBubyBsb25nZXIgYXZhaWxh YmxlLgorICAgKi8KKyAgdW5zZXRlbnYoIlVDU1BJVExTIik7CiAgIHJldHVybiAxOwogfQogCmRp ZmYgLXVyIG1haWxmcm9udC0yLjAwcHJlMS9wbHVnaW4tc3RhcnR0bHMtdWNzcGkuaHRtbCBtYWls ZnJvbnQtMi4wMHByZTEtc2cvcGx1Z2luLXN0YXJ0dGxzLXVjc3BpLmh0bWwKLS0tIG1haWxmcm9u dC0yLjAwcHJlMS9wbHVnaW4tc3RhcnR0bHMtdWNzcGkuaHRtbAkyMDExLTA3LTE0IDE4OjEzOjU5 LjAwMDAwMDAwMCAtMDQwMAorKysgbWFpbGZyb250LTIuMDBwcmUxLXNnL3BsdWdpbi1zdGFydHRs cy11Y3NwaS5odG1sCTIwMTEtMDctMjYgMjM6MDY6MzEuMDAwMDAwMDAwIC0wNDAwCkBAIC0wLDAg KzEsNTMgQEAKKzxodG1sPgorPGJvZHk+CisKKzxoMj48YSBocmVmPSJtYWlsZnJvbnQuaHRtbCI+ bWFpbGZyb250PC9hPjwvaDI+CisKKzxoMT5QbHVnaW46IHN0YXJ0dGxzLXVjc3BpPC9oMT4KKwor PGhyIC8+CisKKzxwPlRoaXMgcGx1Z2luIHVzZXMKKzxhIGhyZWY9Imh0dHA6Ly93d3cuc3VzcGVj dGNsYXNzLmNvbS9zZ2lmZm9yZC91Y3NwaS10bHMvIj51Y3NwaS10bHM8L2E+Cit0byBpbXBsZW1l bnQgdGhlIDx0dD5TVEFSVFRMUzwvdHQ+IFNNVFAgY29tbWFuZCwgd2hpY2ggaXMgdXNlZCB0byBi ZWdpbgorVExTIGVuY3J5cHRpb24gb24gYSBwbGFpbnRleHQgU01UUCBjb25uZWN0aW9uLjwvcD4K KworCis8aDI+Q29uZmlndXJhdGlvbjwvaDI+CisKKzxwPlRoaXMgbW9kdWxlIGlzIGNvbmZpZ3Vy ZWQgYnkgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZToKKzxkbD4KKyAgPGR0Pjx0 dD5VQ1NQSVRMUzwvdHQ+PC9kdD4KKyAgPGRkPkluc3RydWN0cyBtYWlsZnJvbnQgdG8gb2ZmZXIg dGhlIDx0dD5TVEFSVFRMUzwvdHQ+IGNvbW1hbmQuCisgIFRoaXMgdmFyaWFibGUgaXMgcmVtb3Zl ZCBmcm9tIHRoZSBlbnZpcm9ubWVudCBhZnRlciBUTFMgaGFzIGJlZW4KKyAgbmVnb3RpYXRlZC48 L2RkPgorPC9kbD4KKzwvcD4KKworPGgyPkNvbW1hbmRzPC9oMj4KKworPGRsPgorCis8ZHQ+PHR0 PlNUQVJUVExTPC90dD48L2R0PiA8ZGQ+SW1wbGVtZW50cyB0aGUgU01UUCBzZXJ2aWNlIGV4dGVu c2lvbiBmb3IKK3NlY3VyZSBzbXRwIG92ZXIgdHJhbnNwb3J0IGxheWVyIHNlY3VyaXR5LCBhcyBz cGVjaWZpZWQgYnkgUkZDIDMyMDcuPC9kZD4KKworPC9kbD4KKworPGgyPlNlbmRlciBBY3Rpb248 L2gyPgorCis8cD5Ob25lPC9wPgorCis8aDI+UmVjaXBpZW50IEFjdGlvbjwvaDI+CisKKzxwPk5v bmU8L3A+CisKKzxoMj5EYXRhIEFjdGlvbjwvaDI+CisKKzxwPk5vbmU8L3A+CisKKzxoMj5NZXNz YWdlIEFjdGlvbjwvaDI+CisKKzxwPk5vbmU8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4K --bcaec51b9a496799ad04a906a7aa Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --bcaec51b9a496799ad04a906a7aa--