One of my projects hit a brick wall last week after my mail parsing script choked on an incoming mail from GoDaddy's "Workspace Webmail" client. I'd been using a mime parser from mlemos (mime_parser.php,v 1.80 2011/05/05 20:31:05) which returns the mail elements in a rather confusing (to me) all-in-one multi-level associative array, and it turns out my feeble coding skills aren't up to the task of extracting the data I need from the returned array.
So, I'm looking for another parser and hoping someone in the group can recommend one for me. I'd like to be able to toss it an incoming mail (like below), and be able to easily get a list of all the To: addresses, the Cc: addresses, Bcc's, Subject, From, Reply-to, mail body (text and/or html) and attachments, without having to write the code to walk through a complex array hunting for the things I need.
Ultimately, the script will be on the receiving end of a pipe but while testing, I need to have it parse a string containing the mail (the string is the mail returned from Net/POP3.php's $pop3->getMsg function like the string below).
Any thoughts?
Return-path: <user@example.com>
Envelope-to: ticket_6533_reference@services.example.com
Delivery-date: Mon, 16 Jul 2012 21:14:08 -0700
Received: from p3plsmtp05-03-02.prod.phx3.secureserver.net ([97.74.135.48]:60160 helo=p3plwbeout05-03.prod.phx3.secureserver.net)
by mail.example.com with esmtp (Exim 4.77)
(envelope-from <user@example.com>)
id 1SqzAl-0002rX-Ej
for ticket_6533_reference@services.example.com; Mon, 16 Jul 2012 21:14:08 -0700
Received: from localhost ([99.99.99.99])
by p3plwbeout05-03.prod.phx3.secureserver.net with bizsmtp
id bGE71j0012ZSNkp01GE7Fn; Mon, 16 Jul 2012 21:14:07 -0700
x-cmae-analysis: v=2.0 cv=ecG/js4H c=1 sm=1 a=gKIryCBQe32em1xqtQuthw==:17
a=Dz-sLDYWmIQA:10 a=7wwIHox7JvgA:10 a=1KO90zH8swkA:10 a=CHmiLw99jGwA:10
a=GlVLAuWUAAAA:8 a=TZb1taSUAAAA:8 a=XNXZDCW058qgDS8wB7gA:9 a=QEXdDO2ut3YA:10
a=_W_S_7VecoQA:10 a=SSmOFEACAAAA:8 a=RqOAJGx8AAAA:8 a=F4y1ph5t4H-GYW27F5AA:9
a=1Vq_FK4TplAA:10 a=2hejMlIOCYnmdwJD7IAA:9 a=HXjIzolwW10A:10
a=-ThlaWeBkFIVvBjM:18 a=gKIryCBQe32em1xqtQuthw==:117
Received: (qmail 26261 invoked by uid 99); 17 Jul 2012 04:14:07 -0000
Content-Type: multipart/mixed;
boundary="=_0fa7218a96e43ce2eb9b4e5c8f27ffcc"
X-Originating-IP: 99.99.99.99
User-Agent: Workspace Webmail 5.6.23
Message-Id: <20120716211406.7c696047686f2f9cbde4fbb08b8a7789.e0af1c7426.wbe@email05.secureserver.net>
From: <user@example.com>
To: ticket_6533_reference@services.example.com
Subject: Sample mail from GoDaddy's Workspace Webmail
Date: Mon, 16 Jul 2012 21:14:06 -0700
Mime-Version: 1.0
X-Spam-Status: No, score=1.0
X-Spam-Score: 10
X-Spam-Bar: +
X-Ham-Report: Spam detection software, running on the system "mail.example.com", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: This is a sample email sent from Godaddy's Workspace Webmail
client. This email contains two attachments. [...]
Content analysis details: (1.0 points, 5.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%
[score: 0.0000]
0.0 HTML_MESSAGE BODY: HTML included in message
0.7 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
2.2 SB_GIF_AND_NO_URIS SB_GIF_AND_NO_URIS
X-Spam-Flag: NO
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"
<html><body><span style=3D"font-family:Verdana; color:#000000; font-size:10=
pt;"><div>This is a sample email sent from Godaddy's Workspace Webmail clie=
nt. This email contains two attachments.</div></span></body></html>
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc
Content-Transfer-Encoding: base64
Content-Type: image/gif;
name="facebook_24x24.gif";
Content-Disposition: attachment;
filename="facebook_24x24.gif";
R0lGODlhGAAYAPf0AP///35lTLWchLmhii4pIzcwKn9uXXphSTQtJn9mTayRdo11XbGXfaiLb51+
X6OFZr+pkzgwKZV3Wr2mkDsyKb6rmGBOPMu4pTs0Lb2ql/n2845yVr6qlzgxKYJoT4ZsUohtUq2S
dzYuJYZrUfj29MSwnHlfRc67qS8pJHJfTIhsUo9yVpV4Wpd4WzsyKDYvKINpT6ODY4BmTJ6HcIlw
V3phRzUuJ76nkTcxKpB4YcGxosKxoTUvKLKeijgxKjkyLKuPc/j187abf6aIa7Oagj82LT41LDgx
K3ZkUYNpULKhkD00LOzk2zIsJsm2pDMsJoZsUcu3pOzj20A3LcCqlaGBY4pxWXJXPKuPdKGCY6WI
bLCSdaSIbLukjpB/b4BtXDo0Lb6li/n39b2nkIJpT7ymkL6unzozLf38+76oksu6qci1o2dYS826
pquZhn5lTbuhh7CWfJF1WeLYz8avmHtiSI12Xsq3o3VbQoZqT7qii4x0XZmAaJR9Z6uLazcwKcu8
rU5DOc+8qjoyK3ZdRINqUOfe14BnTmNRPrumkb2mj3ddQjUvKamQdopoSX9vXZx9Xl9NO0Q6MKSH
aXtqWX5lS7Obg/n18z40KpyFbvz7+pt+Yvz6+EI4L3pfRUtBNzErJbOfi824pY50WsGumk1BNff1
8unf1sm1oWFOO66UeYFwXzMsJVhKPGZWR4dsUotrTJiEcMOumtnMwL2nktTIvPv6+eff1zQtJ3Bb
R6yQdcq2o5h5XKqKa/39/IJpUD80K66TeY9wUa+RdCgjHo5xVb+qlpyGb4FnTrqjjMy4pbWZff38
/LOfjamTfeni23NYPWFOPLilk35mTaeQesStleDWzJyCaD82K5V7Y2xXQ5l4WYZrT9jDr7GXfnxj
SXZkVdbHutXArMe0oYpxWNC/rradha2Rdse4qiwmIMq0ncCtmotvUzUtJrGWfa6XgTkzLIJoTkE4
L4luUzw1LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94
cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1w
bWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4w
LWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4
bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0v
IiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNl
UmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1N
Okluc3RhbmNlSUQ9InhtcC5paWQ6RjJGMjk1RTU4MkE2MTFFMDhCNzk5NzA4RURDQkQ3M0QiIHht
cE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjJGMjk1RTY4MkE2MTFFMDhCNzk5NzA4RURDQkQ3M0Qi
PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGMkYyOTVFMzgy
QTYxMUUwOEI3OTk3MDhFRENCRDczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGMkYyOTVF
NDgyQTYxMUUwOEI3OTk3MDhFRENCRDczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRG
PiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq
6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7Kx
sK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4
d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/
Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcG
BQQDAgEAACH5BAEAAPQALAAAAAAYABgAAAj/AOnRw1DqyyMDCBMqTLjKlQ+BApfEIlWBQwaLHCpo
1Ggxw7pQrTAI/EMNlZ4BKFOqXElFnSR4Z4rQMSegps2bOAUQqQbuBQ55YRgIHUrUW5xzIZIGcweH
ko0CU4QomEq1KhZdauYYuhUOyDIk7Qpg29KgrNmzk2YBWAvg2ZBhKRAUAObngd27d6uo0rTWFwlr
WXrlkosphoPDiBFvs7SWWSIuWiDF0CaXgoQWLCRo1pwZVqO1JDY5EtaCF6LKr+atWLGh9YZicnoA
Wmtrh7R37KBYqPwhgYcRKkAI5zbKFFu2tTx52F2AQu9pCQ4hi+dBBo0gx9fqWJSEufME4MMn2Qjw
yw26tZzMKOnzrRBzFyMCyJ8vv9IVPmsvkYNW5w2ZSJXFRx99JsywlgY51CAfDN6pMCCBBgKAoIIB
wBCNXC7kccCGHHKIRyYH2kHIhjKkwkoBnVyzxwIstsgiDc4ceIwVLGaTgk+fiHNDGhD06CMEijix
lhgl3ADBGKJ4MQgGTxjTBi1lTCDllMmssRYasnQxQQndBIILPUcY0YwgykRxwZln3lGOFEyccsIu
J4zDBihgCMQIMTZ0EMGefOopwp8RdNBBOiiIJBAGPKBAwKKMNupoEz8IFBAAOw==
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc
Content-Transfer-Encoding: base64
Content-Type: image/png;
name="twitter_26x26.png";
Content-Disposition: attachment;
filename="twitter_26x26.png";
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVz
b3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1N
OkRvY3VtZW50SUQ9InhtcC5kaWQ6MzlENTFGOTA4MkZFMTFFMDlFNDdFRTAwOTNBOUM1QzkiIHht
cE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzlENTFGOEY4MkZFMTFFMDlFNDdFRTAwOTNBOUM1Qzki
IHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIj4gPHhtcE1NOkRl
cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5kaWQ6M0FBRTQwMDRGNDgyRTAxMUI0Q0ZD
RUE4NEY3RDYxREYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0FBRTQwMDRGNDgyRTAxMUI0
Q0ZDRUE4NEY3RDYxREYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l
dGE+IDw/eHBhY2tldCBlbmQ9InIiPz6CNRG1AAAEkElEQVR42qxaSo10JYiELtEVdQneOEBCcErf4i+AhIIJHhAKohKlkAsKqUEQgioFJKShJImwc4eJ15m454zM44d
JUKkudJVxvH1953zne+cO8rE+69BUUXOiGeumB35YfkMwMODLQWea6O68fefVnW96NqNkkRV+pK9
Y692j76Q1KPpYyDZI7Pr28OlP4qvby3+8oEw4tnLmaFnkqqmo175B8e5RCSJrsJTydrm/cvyuadA
clnVDRz3IkxVMxBJ9haEfPBcpy41df+/OKrKEtGSIAeecVEnMk+Ehw47eNDyPBeaHoWiaGjsrkpC
nSM/uL6aL6PrNOA6VhuRoqhQhQHpFgbdvwi0vl3CvfG3cXd+CfmciaEn34DZMchYbVnL3xOH8NyA
xAuIgii3l28j1fcwpFn4YKAP6QWS+t74W3jvs99gRjQsrdaQKUwxURMHez8hDkFR05dhRoqmcia/
TxQxs/Axnr2YR+/YSzA7T7BEtDbvT+LTr2dwtpBkIst2USwWcam6jv7zrzCwlCKoIxhPpcYiEkqZ
t11DJJHF8NgTSCcEbk4t4MN3r2LuxlVUSncYZG7yGtJxnbemKogaGlIxge/HJ7C58KMfkKKw7H79
bb9GHmUUpOw5TlBYYH3bQjZtMBARJqbfwWOPPoKpu1voz0bhul7gOXBmOzUbm4tTiKbzcBoVWedI
U3o1zMRz7OZ2rBrM9CAujKShC5WCw4AEJsJvb00gFReciabtbTqTMAXm5uZw6/qbWL79CesWqiW8
wHGtbqHneHYE3f0jmJURpqREqgSmqCO66juPiJr57K2G5WJlswFDrCFbKYPGmsdEJBkXrr0HXLsO
3UyjpysS9E5obeXQ/pJKyroJnDk9JAM9LSdCD+MQhwh7hQrWuhz5uSP/OM51nsTkNx+xs2IyI9c7
fOhaMpuR0TFkRy5x4Nw6crwRh/AJPJq0dF1wx4dWp+/0aAonBnIolVe4+JpycEa24yHXEUEid8Yn
IDfLBBTV4GfVt5/LJGvzN7F+b7xpdfqusbOC3coG/lreZUAyBxuhZYeu6xm6CCPWJc1UbZs29Jcn
g5+mw5OgdOc6fpr4gW3tyCip66nwfZkoDGkEUk4NwClDR+54VCB38jySPWfZsS1zoSmhYOZgHmm6
ib5zLyOW+Rmri9NYr1hsBrJ1q2JEQBCm/H8imUKy9yE5fvKM0X4LeAG2FdQo6ODwSHrgAmJdBWTW
5uWdsibrtwPbqnP0hi6ngWFKR3ZyMxIBXZrkLuyrnz9DfaMJX0cvmHde03GaHmMpaSSRHOFgJVA2
jRHnKU/ROqFj9xuSJ79fln3XhNOStBXeGexEzYi1AVAA8P77/cIfBtLettVQWD4JyJO8eXPu1fMo
rytUK77TJAlxiPJGfb6zPDOc6h1DbWuJ9QwJj/4CpPjvCokctuS9Rhxidavx+fSv3+VGgWSie1Rm
o7H2D7K4N6W8RCKxt4lDKc98idXZr3I3vrh2ZbDbPCXkLAv75KiL7E+TYqFcnX36+ReLmVPPlf4V
YADmmLeOkjSEDQAAAABJRU5ErkJggg==
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc--
So, I'm looking for another parser and hoping someone in the group can recommend one for me. I'd like to be able to toss it an incoming mail (like below), and be able to easily get a list of all the To: addresses, the Cc: addresses, Bcc's, Subject, From, Reply-to, mail body (text and/or html) and attachments, without having to write the code to walk through a complex array hunting for the things I need.
Ultimately, the script will be on the receiving end of a pipe but while testing, I need to have it parse a string containing the mail (the string is the mail returned from Net/POP3.php's $pop3->getMsg function like the string below).
Any thoughts?
Return-path: <user@example.com>
Envelope-to: ticket_6533_reference@services.example.com
Delivery-date: Mon, 16 Jul 2012 21:14:08 -0700
Received: from p3plsmtp05-03-02.prod.phx3.secureserver.net ([97.74.135.48]:60160 helo=p3plwbeout05-03.prod.phx3.secureserver.net)
by mail.example.com with esmtp (Exim 4.77)
(envelope-from <user@example.com>)
id 1SqzAl-0002rX-Ej
for ticket_6533_reference@services.example.com; Mon, 16 Jul 2012 21:14:08 -0700
Received: from localhost ([99.99.99.99])
by p3plwbeout05-03.prod.phx3.secureserver.net with bizsmtp
id bGE71j0012ZSNkp01GE7Fn; Mon, 16 Jul 2012 21:14:07 -0700
x-cmae-analysis: v=2.0 cv=ecG/js4H c=1 sm=1 a=gKIryCBQe32em1xqtQuthw==:17
a=Dz-sLDYWmIQA:10 a=7wwIHox7JvgA:10 a=1KO90zH8swkA:10 a=CHmiLw99jGwA:10
a=GlVLAuWUAAAA:8 a=TZb1taSUAAAA:8 a=XNXZDCW058qgDS8wB7gA:9 a=QEXdDO2ut3YA:10
a=_W_S_7VecoQA:10 a=SSmOFEACAAAA:8 a=RqOAJGx8AAAA:8 a=F4y1ph5t4H-GYW27F5AA:9
a=1Vq_FK4TplAA:10 a=2hejMlIOCYnmdwJD7IAA:9 a=HXjIzolwW10A:10
a=-ThlaWeBkFIVvBjM:18 a=gKIryCBQe32em1xqtQuthw==:117
Received: (qmail 26261 invoked by uid 99); 17 Jul 2012 04:14:07 -0000
Content-Type: multipart/mixed;
boundary="=_0fa7218a96e43ce2eb9b4e5c8f27ffcc"
X-Originating-IP: 99.99.99.99
User-Agent: Workspace Webmail 5.6.23
Message-Id: <20120716211406.7c696047686f2f9cbde4fbb08b8a7789.e0af1c7426.wbe@email05.secureserver.net>
From: <user@example.com>
To: ticket_6533_reference@services.example.com
Subject: Sample mail from GoDaddy's Workspace Webmail
Date: Mon, 16 Jul 2012 21:14:06 -0700
Mime-Version: 1.0
X-Spam-Status: No, score=1.0
X-Spam-Score: 10
X-Spam-Bar: +
X-Ham-Report: Spam detection software, running on the system "mail.example.com", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: This is a sample email sent from Godaddy's Workspace Webmail
client. This email contains two attachments. [...]
Content analysis details: (1.0 points, 5.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%
[score: 0.0000]
0.0 HTML_MESSAGE BODY: HTML included in message
0.7 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
2.2 SB_GIF_AND_NO_URIS SB_GIF_AND_NO_URIS
X-Spam-Flag: NO
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"
<html><body><span style=3D"font-family:Verdana; color:#000000; font-size:10=
pt;"><div>This is a sample email sent from Godaddy's Workspace Webmail clie=
nt. This email contains two attachments.</div></span></body></html>
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc
Content-Transfer-Encoding: base64
Content-Type: image/gif;
name="facebook_24x24.gif";
Content-Disposition: attachment;
filename="facebook_24x24.gif";
R0lGODlhGAAYAPf0AP///35lTLWchLmhii4pIzcwKn9uXXphSTQtJn9mTayRdo11XbGXfaiLb51+
X6OFZr+pkzgwKZV3Wr2mkDsyKb6rmGBOPMu4pTs0Lb2ql/n2845yVr6qlzgxKYJoT4ZsUohtUq2S
dzYuJYZrUfj29MSwnHlfRc67qS8pJHJfTIhsUo9yVpV4Wpd4WzsyKDYvKINpT6ODY4BmTJ6HcIlw
V3phRzUuJ76nkTcxKpB4YcGxosKxoTUvKLKeijgxKjkyLKuPc/j187abf6aIa7Oagj82LT41LDgx
K3ZkUYNpULKhkD00LOzk2zIsJsm2pDMsJoZsUcu3pOzj20A3LcCqlaGBY4pxWXJXPKuPdKGCY6WI
bLCSdaSIbLukjpB/b4BtXDo0Lb6li/n39b2nkIJpT7ymkL6unzozLf38+76oksu6qci1o2dYS826
pquZhn5lTbuhh7CWfJF1WeLYz8avmHtiSI12Xsq3o3VbQoZqT7qii4x0XZmAaJR9Z6uLazcwKcu8
rU5DOc+8qjoyK3ZdRINqUOfe14BnTmNRPrumkb2mj3ddQjUvKamQdopoSX9vXZx9Xl9NO0Q6MKSH
aXtqWX5lS7Obg/n18z40KpyFbvz7+pt+Yvz6+EI4L3pfRUtBNzErJbOfi824pY50WsGumk1BNff1
8unf1sm1oWFOO66UeYFwXzMsJVhKPGZWR4dsUotrTJiEcMOumtnMwL2nktTIvPv6+eff1zQtJ3Bb
R6yQdcq2o5h5XKqKa/39/IJpUD80K66TeY9wUa+RdCgjHo5xVb+qlpyGb4FnTrqjjMy4pbWZff38
/LOfjamTfeni23NYPWFOPLilk35mTaeQesStleDWzJyCaD82K5V7Y2xXQ5l4WYZrT9jDr7GXfnxj
SXZkVdbHutXArMe0oYpxWNC/rradha2Rdse4qiwmIMq0ncCtmotvUzUtJrGWfa6XgTkzLIJoTkE4
L4luUzw1LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94
cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1w
bWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4w
LWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4
bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0v
IiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNl
UmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1N
Okluc3RhbmNlSUQ9InhtcC5paWQ6RjJGMjk1RTU4MkE2MTFFMDhCNzk5NzA4RURDQkQ3M0QiIHht
cE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjJGMjk1RTY4MkE2MTFFMDhCNzk5NzA4RURDQkQ3M0Qi
PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGMkYyOTVFMzgy
QTYxMUUwOEI3OTk3MDhFRENCRDczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGMkYyOTVF
NDgyQTYxMUUwOEI3OTk3MDhFRENCRDczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRG
PiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq
6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7Kx
sK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4
d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/
Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcG
BQQDAgEAACH5BAEAAPQALAAAAAAYABgAAAj/AOnRw1DqyyMDCBMqTLjKlQ+BApfEIlWBQwaLHCpo
1Ggxw7pQrTAI/EMNlZ4BKFOqXElFnSR4Z4rQMSegps2bOAUQqQbuBQ55YRgIHUrUW5xzIZIGcweH
ko0CU4QomEq1KhZdauYYuhUOyDIk7Qpg29KgrNmzk2YBWAvg2ZBhKRAUAObngd27d6uo0rTWFwlr
WXrlkosphoPDiBFvs7SWWSIuWiDF0CaXgoQWLCRo1pwZVqO1JDY5EtaCF6LKr+atWLGh9YZicnoA
Wmtrh7R37KBYqPwhgYcRKkAI5zbKFFu2tTx52F2AQu9pCQ4hi+dBBo0gx9fqWJSEufME4MMn2Qjw
yw26tZzMKOnzrRBzFyMCyJ8vv9IVPmsvkYNW5w2ZSJXFRx99JsywlgY51CAfDN6pMCCBBgKAoIIB
wBCNXC7kccCGHHKIRyYH2kHIhjKkwkoBnVyzxwIstsgiDc4ceIwVLGaTgk+fiHNDGhD06CMEijix
lhgl3ADBGKJ4MQgGTxjTBi1lTCDllMmssRYasnQxQQndBIILPUcY0YwgykRxwZln3lGOFEyccsIu
J4zDBihgCMQIMTZ0EMGefOopwp8RdNBBOiiIJBAGPKBAwKKMNupoEz8IFBAAOw==
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc
Content-Transfer-Encoding: base64
Content-Type: image/png;
name="twitter_26x26.png";
Content-Disposition: attachment;
filename="twitter_26x26.png";
iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6
eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEz
NDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVz
b3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1N
OkRvY3VtZW50SUQ9InhtcC5kaWQ6MzlENTFGOTA4MkZFMTFFMDlFNDdFRTAwOTNBOUM1QzkiIHht
cE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzlENTFGOEY4MkZFMTFFMDlFNDdFRTAwOTNBOUM1Qzki
IHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIj4gPHhtcE1NOkRl
cml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5kaWQ6M0FBRTQwMDRGNDgyRTAxMUI0Q0ZD
RUE4NEY3RDYxREYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0FBRTQwMDRGNDgyRTAxMUI0
Q0ZDRUE4NEY3RDYxREYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l
dGE+IDw/eHBhY2tldCBlbmQ9InIiPz6CNRG1AAAEkElEQVR42qxaSo10JYiELtEVdQneOEBCcErf4i+AhIIJHhAKohKlkAsKqUEQgioFJKShJImwc4eJ15m454zM44d
JUKkudJVxvH1953zne+cO8rE+69BUUXOiGeumB35YfkMwMODLQWea6O68fefVnW96NqNkkRV+pK9
Y692j76Q1KPpYyDZI7Pr28OlP4qvby3+8oEw4tnLmaFnkqqmo175B8e5RCSJrsJTydrm/cvyuadA
clnVDRz3IkxVMxBJ9haEfPBcpy41df+/OKrKEtGSIAeecVEnMk+Ehw47eNDyPBeaHoWiaGjsrkpC
nSM/uL6aL6PrNOA6VhuRoqhQhQHpFgbdvwi0vl3CvfG3cXd+CfmciaEn34DZMchYbVnL3xOH8NyA
xAuIgii3l28j1fcwpFn4YKAP6QWS+t74W3jvs99gRjQsrdaQKUwxURMHez8hDkFR05dhRoqmcia/
TxQxs/Axnr2YR+/YSzA7T7BEtDbvT+LTr2dwtpBkIst2USwWcam6jv7zrzCwlCKoIxhPpcYiEkqZ
t11DJJHF8NgTSCcEbk4t4MN3r2LuxlVUSncYZG7yGtJxnbemKogaGlIxge/HJ7C58KMfkKKw7H79
bb9GHmUUpOw5TlBYYH3bQjZtMBARJqbfwWOPPoKpu1voz0bhul7gOXBmOzUbm4tTiKbzcBoVWedI
U3o1zMRz7OZ2rBrM9CAujKShC5WCw4AEJsJvb00gFReciabtbTqTMAXm5uZw6/qbWL79CesWqiW8
wHGtbqHneHYE3f0jmJURpqREqgSmqCO66juPiJr57K2G5WJlswFDrCFbKYPGmsdEJBkXrr0HXLsO
3UyjpysS9E5obeXQ/pJKyroJnDk9JAM9LSdCD+MQhwh7hQrWuhz5uSP/OM51nsTkNx+xs2IyI9c7
fOhaMpuR0TFkRy5x4Nw6crwRh/AJPJq0dF1wx4dWp+/0aAonBnIolVe4+JpycEa24yHXEUEid8Yn
IDfLBBTV4GfVt5/LJGvzN7F+b7xpdfqusbOC3coG/lreZUAyBxuhZYeu6xm6CCPWJc1UbZs29Jcn
g5+mw5OgdOc6fpr4gW3tyCip66nwfZkoDGkEUk4NwClDR+54VCB38jySPWfZsS1zoSmhYOZgHmm6
ib5zLyOW+Rmri9NYr1hsBrJ1q2JEQBCm/H8imUKy9yE5fvKM0X4LeAG2FdQo6ODwSHrgAmJdBWTW
5uWdsibrtwPbqnP0hi6ngWFKR3ZyMxIBXZrkLuyrnz9DfaMJX0cvmHde03GaHmMpaSSRHOFgJVA2
jRHnKU/ROqFj9xuSJ79fln3XhNOStBXeGexEzYi1AVAA8P77/cIfBtLettVQWD4JyJO8eXPu1fMo
rytUK77TJAlxiPJGfb6zPDOc6h1DbWuJ9QwJj/4CpPjvCokctuS9Rhxidavx+fSv3+VGgWSie1Rm
o7H2D7K4N6W8RCKxt4lDKc98idXZr3I3vrh2ZbDbPCXkLAv75KiL7E+TYqFcnX36+ReLmVPPlf4V
YADmmLeOkjSEDQAAAABJRU5ErkJggg==
--=_0fa7218a96e43ce2eb9b4e5c8f27ffcc--