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"=
>&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">sgiffor=
[email protected]</a>&gt;</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">&lt;<a href=3D"mailto:[email protected]" targ=
et=3D"_blank">[email protected]</a>&gt;</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>
&gt; I&#39;ve pushed out my current code for the next mailfront API to gith=
ub<br>
</div>&gt; as branch &quot;api3&quot;. ... =A0Just drop the attached file i=
nto the mailfront<br>
<div>&gt; source directory and type:<br>
&gt;<br>
&gt; =A0 =A0 =A0 ./makeso plugin-starttls-ucspi.c =A0-lbg -lbg-sysdeps<br>
&gt;<br>
&gt; and add starttls-ucspi to the mailfront command line.<br>
<br>
</div>I&#39;m making it too hard on you. =A0I&#39;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 &quot;/home/bruce/dev&qu=
ot; sneaking into config files instead of &quot;/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 &quot;/home/bruce/dev&quot; to &quot;/usr/local/bglibs/incl=
ude&quot; in some config files, and adds &quot;-L/usr/local/bglibs/lib&quot=
; to &quot;conf-ld&quot;. =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 &quot;AUTH_REQUIRES_TLS&quot; environment variable setting f=
or &quot;plugin-cvm-authenticate.c&quot;, 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 &quot;plugin-starttls-ucspi&qu=
ot;</li></ul><div>I couldn&#39;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--