Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/main/inc/lib/phpmailer/test/message.txt

357 lines
25 KiB

Date: Fri, 15 Apr 2005 09:47:00 +0200
Return-Path: nobody@example.com
To: Test User <vermeiref@gmail.com>
From: Frederik PHP <Frederik PHPMAILER>
Reply-to: NIET REPLYEN <no_reply@derakkers.be>
Subject: AMAI: AltBody + Attachment
Message-ID: <d7fe3e5dda2f576b588b1a9ef401bc64@localhost>
X-Priority: 3
X-Mailer: PHPMailer [version 1.72]
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="b1_d7fe3e5dda2f576b588b1a9ef401bc64"
--b1_d7fe3e5dda2f576b588b1a9ef401bc64
Content-Type: multipart/alternative;
boundary="b2_d7fe3e5dda2f576b588b1a9ef401bc64"
--b2_d7fe3e5dda2f576b588b1a9ef401bc64
Content-Type: text/plain; charset = "iso-8859-1"
Content-Transfer-Encoding: 8bit
This is the text part of the email.
--b2_d7fe3e5dda2f576b588b1a9ef401bc64
Content-Type: text/html; charset = "iso-8859-1"
Content-Transfer-Encoding: 8bit
This is the <b>HTML</b> part of the email.<br/><br/>---------------------<br/>Unit Test Frederik <br/>---------------------<br/>phpmailer version: 1.72<br/>Content Type: text/html<br/>Host: smtp.ugent.be<br/>Attachments:<br/><ul><li>Name: phpmailer_test.php, Encoding: base64, Type: application/octet-stream<br/></ul><br/>Changes<br/>-------<br/><ul><li>Sender was changed to [nobody@example.com]<br/><li>Mailer was changed to [smtp]<br/></ul><br/><br/>
--b2_d7fe3e5dda2f576b588b1a9ef401bc64--
--b1_d7fe3e5dda2f576b588b1a9ef401bc64
Content-Type: application/octet-stream; name="test_attach.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="test_attach.txt"
PD9waHANCi8qKioqKioqKioqKioqKioqKioqDQogIFVuaXQgVGVzdA0KICBUeXBlOiBwaHBtYWls
ZXIgY2xhc3MNCioqKioqKioqKioqKioqKioqKioqLw0KDQpyZXF1aXJlKCJwaHB1bml0LnBocCIp
Ow0KcmVxdWlyZSgiLi4vY2xhc3MucGhwbWFpbGVyLnBocCIpOw0KZXJyb3JfcmVwb3J0aW5nKEVf
QUxMKTsNCg0KLyoqDQogKiBQZXJmb3JtcyBhdXRoZW50aWNhdGlvbiB0ZXN0cw0KICovDQpjbGFz
cyBwaHBtYWlsZXJUZXN0IGV4dGVuZHMgVGVzdENhc2UNCnsNCiAgICAvKioNCiAgICAgKiBIb2xk
cyB0aGUgZGVmYXVsdCBwaHBtYWlsZXIgaW5zdGFuY2UuDQogICAgICogQHByaXZhdGUNCiAgICAg
KiBAdHlwZSBvYmplY3QNCiAgICAgKi8NCiAgICB2YXIgJE1haWwgPSBmYWxzZTsNCg0KICAgIC8q
Kg0KICAgICAqIEhvbGRzIHRoZSBTTVRQIG1haWwgaG9zdC4NCiAgICAgKiBAcHVibGljDQogICAg
ICogQHR5cGUgc3RyaW5nDQogICAgICovDQogICAgdmFyICRIb3N0ID0gIiI7DQogICAgDQogICAg
LyoqDQogICAgICogSG9sZHMgdGhlIGNoYW5nZSBsb2cuDQogICAgICogQHByaXZhdGUNCiAgICAg
KiBAdHlwZSBzdHJpbmcgYXJyYXkNCiAgICAgKi8NCiAgICB2YXIgJENoYW5nZUxvZyA9IGFycmF5
KCk7DQogICAgDQogICAgIC8qKg0KICAgICAqIEhvbGRzIHRoZSBub3RlIGxvZy4NCiAgICAgKiBA
cHJpdmF0ZQ0KICAgICAqIEB0eXBlIHN0cmluZyBhcnJheQ0KICAgICAqLw0KICAgIHZhciAkTm90
ZUxvZyA9IGFycmF5KCk7ICAgDQoNCiAgICAvKioNCiAgICAgKiBDbGFzcyBjb25zdHVjdG9yLg0K
ICAgICAqLw0KICAgIGZ1bmN0aW9uIHBocG1haWxlclRlc3QoJG5hbWUpIHsNCiAgICAgICAgLyog
bXVzdCBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RvciAqLw0KICAgICAgICAkdGhpcy0+VGVzdENhc2Uo
ICRuYW1lICk7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIFJ1biBiZWZvcmUgZWFjaCB0
ZXN0IGlzIHN0YXJ0ZWQuDQogICAgICovDQogICAgZnVuY3Rpb24gc2V0VXAoKSB7DQogICAgICAg
IGdsb2JhbCAkZ2xvYmFsX3ZhcnM7DQogICAgICAgIGdsb2JhbCAkSU5DTFVERV9ESVI7DQoNCiAg
ICAgICAgJHRoaXMtPk1haWwgPSBuZXcgUEhQTWFpbGVyKCk7DQoNCiAgICAgICAgJHRoaXMtPk1h
aWwtPlByaW9yaXR5ID0gMzsNCiAgICAgICAgJHRoaXMtPk1haWwtPkVuY29kaW5nID0gIjhiaXQi
Ow0KICAgICAgICAkdGhpcy0+TWFpbC0+Q2hhclNldCA9ICJpc28tODg1OS0xIjsNCiAgICAgICAg
JHRoaXMtPk1haWwtPkZyb20gPSAiRnJlZGVyaWsgUEhQTUFJTEVSIjsNCiAgICAgICAgJHRoaXMt
Pk1haWwtPkZyb21OYW1lID0gIkZyZWRlcmlrIFBIUCI7DQogICAgICAgICR0aGlzLT5NYWlsLT5T
ZW5kZXIgPSAiIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPlN1YmplY3QgPSAiQU1BSSI7DQogICAg
ICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0gIiI7DQogICAgICAgICR0aGlzLT5NYWlsLT5BbHRCb2R5
ID0gIiI7DQogICAgICAgICR0aGlzLT5NYWlsLT5Xb3JkV3JhcCA9IDA7DQogICAgICAgICR0aGlz
LT5NYWlsLT5Ib3N0ID0gJGdsb2JhbF92YXJzWyJtYWlsX2hvc3QiXTsNCiAgICAgICAgJHRoaXMt
Pk1haWwtPlBvcnQgPSAyNTsNCiAgICAgICAgJHRoaXMtPk1haWwtPkhlbG8gPSAibG9jYWxob3N0
LmxvY2FsZG9tYWluIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPlNNVFBBdXRoID0gZmFsc2U7DQog
ICAgICAgICR0aGlzLT5NYWlsLT5Vc2VybmFtZSA9ICIiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+
UGFzc3dvcmQgPSAiIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPlBsdWdpbkRpciA9ICRJTkNMVURF
X0RJUjsNCgkJJHRoaXMtPk1haWwtPkFkZFJlcGx5VG8oIm5vX3JlcGx5QGRlcmFra2Vycy5iZSIs
ICJOSUVUIFJFUExZRU4iKTsNCiAgICAgICAgJHRoaXMtPk1haWwtPlNlbmRlciA9ICJub2JvZHlA
ZXhhbXBsZS5jb20iOw0KDQogICAgICAgIGlmKHN0cmxlbigkdGhpcy0+TWFpbC0+SG9zdCkgPiAw
KQ0KICAgICAgICAgICAgJHRoaXMtPk1haWwtPk1haWxlciA9ICJzbXRwIjsNCiAgICAgICAgZWxz
ZQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGhpcy0+TWFpbC0+TWFpbGVyID0gIm1haWwiOw0K
ICAgICAgICAgICAgJHRoaXMtPlNlbmRlciA9ICJ1bml0X3Rlc3RAcGhwbWFpbGVyLnNmLm5ldCI7
DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIGdsb2JhbCAkZ2xvYmFsX3ZhcnM7DQogICAg
ICAgICR0aGlzLT5TZXRBZGRyZXNzKCRnbG9iYWxfdmFyc1sibWFpbF90byJdLCAiVGVzdCBVc2Vy
Iik7DQogICAgICAgIGlmKHN0cmxlbigkZ2xvYmFsX3ZhcnNbIm1haWxfY2MiXSkgPiAwKQ0KICAg
ICAgICAgICAgJHRoaXMtPlNldEFkZHJlc3MoJGdsb2JhbF92YXJzWyJtYWlsX2NjIl0sICJDYXJi
b24gVXNlciIsICJjYyIpOw0KICAgIH0gICAgIA0KDQogICAgLyoqDQogICAgICogUnVuIGFmdGVy
IGVhY2ggdGVzdCBpcyBjb21wbGV0ZWQuDQogICAgICovDQogICAgZnVuY3Rpb24gdGVhckRvd24o
KSB7DQogICAgICAgIC8vIENsZWFuIGdsb2JhbCB2YXJpYWJsZXMNCiAgICAgICAgJHRoaXMtPk1h
aWwgPSBOVUxMOw0KICAgICAgICAkdGhpcy0+Q2hhbmdlTG9nID0gYXJyYXkoKTsNCiAgICAgICAg
JHRoaXMtPk5vdGVMb2cgPSBhcnJheSgpOw0KICAgIH0NCg0KDQogICAgLyoqDQogICAgICogQnVp
bGQgdGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UgaW4gdGhlIGFwcHJvcHJpYXRlIGZvcm1hdC4NCiAg
ICAgKiBAcHJpdmF0ZQ0KICAgICAqIEByZXR1cm5zIHZvaWQNCiAgICAgKi8NCiAgICBmdW5jdGlv
biBCdWlsZEJvZHkoKSB7DQogICAgICAgICR0aGlzLT5DaGVja0NoYW5nZXMoKTsNCiAgICAgICAg
DQogICAgICAgIC8vIERldGVybWluZSBsaW5lIGVuZGluZ3MgZm9yIG1lc3NhZ2UgICAgICAgIA0K
ICAgICAgICBpZigkdGhpcy0+TWFpbC0+Q29udGVudFR5cGUgPT0gInRleHQvaHRtbCIgfHwgc3Ry
bGVuKCR0aGlzLT5NYWlsLT5BbHRCb2R5KSA+IDApDQogICAgICAgIHsNCiAgICAgICAgICAgICRl
b2wgPSAiPGJyLz4iOw0KICAgICAgICAgICAgJGJ1bGxldCA9ICI8bGk+IjsNCiAgICAgICAgICAg
ICRidWxsZXRfc3RhcnQgPSAiPHVsPiI7DQogICAgICAgICAgICAkYnVsbGV0X2VuZCA9ICI8L3Vs
PiI7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgICAkZW9s
ID0gIlxuIjsNCiAgICAgICAgICAgICRidWxsZXQgPSAiIC0gIjsNCiAgICAgICAgICAgICRidWxs
ZXRfc3RhcnQgPSAiIjsNCiAgICAgICAgICAgICRidWxsZXRfZW5kID0gIiI7DQogICAgICAgIH0N
CiAgICAgICAgDQogICAgICAgICRSZXBvcnRCb2R5ID0gIiI7DQogICAgICAgIA0KICAgICAgICAk
UmVwb3J0Qm9keSAuPSAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiAuICRlb2w7DQogICAgICAgICRS
ZXBvcnRCb2R5IC49ICJVbml0IFRlc3QgRnJlZGVyaWsgICAiIC4gJGVvbDsNCiAgICAgICAgJFJl
cG9ydEJvZHkgLj0gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgLiAkZW9sOw0KICAgICAgICAkUmVw
b3J0Qm9keSAuPSAicGhwbWFpbGVyIHZlcnNpb246ICIgLiAkdGhpcy0+TWFpbC0+VmVyc2lvbiAu
ICRlb2w7DQogICAgICAgICRSZXBvcnRCb2R5IC49ICJDb250ZW50IFR5cGU6ICIgLiAkdGhpcy0+
TWFpbC0+Q29udGVudFR5cGUgLiAkZW9sOw0KICAgICAgICANCiAgICAgICAgaWYoc3RybGVuKCR0
aGlzLT5NYWlsLT5Ib3N0KSA+IDApDQogICAgICAgICAgICAkUmVwb3J0Qm9keSAuPSAiSG9zdDog
IiAuICR0aGlzLT5NYWlsLT5Ib3N0IC4gJGVvbDsNCiAgICAgICAgDQogICAgICAgIC8vIElmIGF0
dGFjaG1lbnRzIHRoZW4gY3JlYXRlIGFuIGF0dGFjaG1lbnQgbGlzdA0KICAgICAgICBpZihjb3Vu
dCgkdGhpcy0+TWFpbC0+YXR0YWNobWVudCkgPiAwKQ0KICAgICAgICB7DQogICAgICAgICAgICAk
UmVwb3J0Qm9keSAuPSAiQXR0YWNobWVudHM6IiAuICRlb2w7DQogICAgICAgICAgICAkUmVwb3J0
Qm9keSAuPSAkYnVsbGV0X3N0YXJ0Ow0KICAgICAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBjb3Vu
dCgkdGhpcy0+TWFpbC0+YXR0YWNobWVudCk7ICRpKyspDQogICAgICAgICAgICB7DQogICAgICAg
ICAgICAgICAgJFJlcG9ydEJvZHkgLj0gJGJ1bGxldCAuICJOYW1lOiAiIC4gJHRoaXMtPk1haWwt
PmF0dGFjaG1lbnRbJGldWzFdIC4gIiwgIjsNCiAgICAgICAgICAgICAgICAkUmVwb3J0Qm9keSAu
PSAiRW5jb2Rpbmc6ICIgLiAkdGhpcy0+TWFpbC0+YXR0YWNobWVudFskaV1bM10gLiAiLCAiOw0K
ICAgICAgICAgICAgICAgICRSZXBvcnRCb2R5IC49ICJUeXBlOiAiIC4gJHRoaXMtPk1haWwtPmF0
dGFjaG1lbnRbJGldWzRdIC4gJGVvbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRSZXBv
cnRCb2R5IC49ICRidWxsZXRfZW5kIC4gJGVvbDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAg
ICAgLy8gSWYgdGhlcmUgYXJlIGNoYW5nZXMgdGhlbiBsaXN0IHRoZW0NCiAgICAgICAgaWYoY291
bnQoJHRoaXMtPkNoYW5nZUxvZykgPiAwKQ0KICAgICAgICB7DQogICAgICAgICAgICAkUmVwb3J0
Qm9keSAuPSAiQ2hhbmdlcyIgLiAkZW9sOw0KICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gIi0t
LS0tLS0iIC4gJGVvbDsNCg0KICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gJGJ1bGxldF9zdGFy
dDsNCiAgICAgICAgICAgIGZvcigkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPkNoYW5nZUxvZyk7
ICRpKyspDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gJGJ1
bGxldCAuICR0aGlzLT5DaGFuZ2VMb2dbJGldWzBdIC4gIiB3YXMgY2hhbmdlZCB0byBbIiAuIA0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5DaGFuZ2VMb2dbJGldWzFdIC4g
Il0iIC4gJGVvbDsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRSZXBvcnRCb2R5IC49ICRi
dWxsZXRfZW5kIC4gJGVvbCAuICRlb2w7DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8v
IElmIHRoZXJlIGFyZSBub3RlcyB0aGVuIGxpc3QgdGhlbQ0KICAgICAgICBpZihjb3VudCgkdGhp
cy0+Tm90ZUxvZykgPiAwKQ0KICAgICAgICB7DQogICAgICAgICAgICAkUmVwb3J0Qm9keSAuPSAi
Tm90ZXMiIC4gJGVvbDsNCiAgICAgICAgICAgICRSZXBvcnRCb2R5IC49ICItLS0tLSIgLiAkZW9s
Ow0KDQogICAgICAgICAgICAkUmVwb3J0Qm9keSAuPSAkYnVsbGV0X3N0YXJ0Ow0KICAgICAgICAg
ICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+Tm90ZUxvZyk7ICRpKyspDQogICAgICAg
ICAgICB7DQogICAgICAgICAgICAgICAgJFJlcG9ydEJvZHkgLj0gJGJ1bGxldCAuICR0aGlzLT5O
b3RlTG9nWyRpXSAuICRlb2w7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkUmVwb3J0Qm9k
eSAuPSAkYnVsbGV0X2VuZDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLy8gUmUtYXR0
YWNoIHRoZSBvcmlnaW5hbCBib2R5DQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5IC49ICRlb2wg
LiAkZW9sIC4gJFJlcG9ydEJvZHk7DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIENoZWNr
IHdoaWNoIGRlZmF1bHQgc2V0dGluZ3MgaGF2ZSBiZWVuIGNoYW5nZWQgZm9yIHRoZSByZXBvcnQu
DQogICAgICogQHByaXZhdGUNCiAgICAgKiBAcmV0dXJucyB2b2lkDQogICAgICovDQogICAgZnVu
Y3Rpb24gQ2hlY2tDaGFuZ2VzKCkgew0KICAgICAgICBpZigkdGhpcy0+TWFpbC0+UHJpb3JpdHkg
IT0gMykNCiAgICAgICAgICAgICR0aGlzLT5BZGRDaGFuZ2UoIlByaW9yaXR5IiwgJHRoaXMtPk1h
aWwtPlByaW9yaXR5KTsNCiAgICAgICAgaWYoJHRoaXMtPk1haWwtPkVuY29kaW5nICE9ICI4Yml0
IikNCiAgICAgICAgICAgICR0aGlzLT5BZGRDaGFuZ2UoIkVuY29kaW5nIiwgJHRoaXMtPk1haWwt
PkVuY29kaW5nKTsNCiAgICAgICAgaWYoJHRoaXMtPk1haWwtPkNoYXJTZXQgIT0gImlzby04ODU5
LTEiKQ0KICAgICAgICAgICAgJHRoaXMtPkFkZENoYW5nZSgiQ2hhclNldCIsICR0aGlzLT5NYWls
LT5DaGFyU2V0KTsNCiAgICAgICAgaWYoJHRoaXMtPk1haWwtPlNlbmRlciAhPSAiIikNCiAgICAg
ICAgICAgICR0aGlzLT5BZGRDaGFuZ2UoIlNlbmRlciIsICR0aGlzLT5NYWlsLT5TZW5kZXIpOw0K
ICAgICAgICBpZigkdGhpcy0+TWFpbC0+V29yZFdyYXAgIT0gMCkNCiAgICAgICAgICAgICR0aGlz
LT5BZGRDaGFuZ2UoIldvcmRXcmFwIiwgJHRoaXMtPk1haWwtPldvcmRXcmFwKTsNCiAgICAgICAg
aWYoJHRoaXMtPk1haWwtPk1haWxlciAhPSAibWFpbCIpDQogICAgICAgICAgICAkdGhpcy0+QWRk
Q2hhbmdlKCJNYWlsZXIiLCAkdGhpcy0+TWFpbC0+TWFpbGVyKTsNCiAgICAgICAgaWYoJHRoaXMt
Pk1haWwtPlBvcnQgIT0gMjUpDQogICAgICAgICAgICAkdGhpcy0+QWRkQ2hhbmdlKCJQb3J0Iiwg
JHRoaXMtPk1haWwtPlBvcnQpOw0KICAgICAgICBpZigkdGhpcy0+TWFpbC0+SGVsbyAhPSAibG9j
YWxob3N0LmxvY2FsZG9tYWluIikNCiAgICAgICAgICAgICR0aGlzLT5BZGRDaGFuZ2UoIkhlbG8i
LCAkdGhpcy0+TWFpbC0+SGVsbyk7DQogICAgICAgIGlmKCR0aGlzLT5NYWlsLT5TTVRQQXV0aCkN
CiAgICAgICAgICAgICR0aGlzLT5BZGRDaGFuZ2UoIlNNVFBBdXRoIiwgInRydWUiKTsNCiAgICB9
DQogICAgDQogICAgLyoqDQogICAgICogQWRkcyBhIGNoYW5nZSBlbnRyeS4NCiAgICAgKiBAcHJp
dmF0ZQ0KICAgICAqIEByZXR1cm5zIHZvaWQNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBBZGRDaGFu
Z2UoJHNOYW1lLCAkc05ld1ZhbHVlKSB7DQogICAgICAgICRjdXIgPSBjb3VudCgkdGhpcy0+Q2hh
bmdlTG9nKTsNCiAgICAgICAgJHRoaXMtPkNoYW5nZUxvZ1skY3VyXVswXSA9ICRzTmFtZTsNCiAg
ICAgICAgJHRoaXMtPkNoYW5nZUxvZ1skY3VyXVsxXSA9ICRzTmV3VmFsdWU7DQogICAgfQ0KICAg
IA0KICAgIC8qKg0KICAgICAqIEFkZHMgYSBzaW1wbGUgbm90ZSB0byB0aGUgbWVzc2FnZS4NCiAg
ICAgKiBAcHVibGljDQogICAgICogQHJldHVybnMgdm9pZA0KICAgICAqLw0KICAgIGZ1bmN0aW9u
IEFkZE5vdGUoJHNWYWx1ZSkgew0KICAgICAgICAkdGhpcy0+Tm90ZUxvZ1tdID0gJHNWYWx1ZTsN
CiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBBZGRzIGFsbCBvZiB0aGUgYWRkcmVzc2VzDQogICAg
ICogQHB1YmxpYw0KICAgICAqIEByZXR1cm5zIHZvaWQNCiAgICAgKi8NCiAgICBmdW5jdGlvbiBT
ZXRBZGRyZXNzKCRzQWRkcmVzcywgJHNOYW1lID0gIiIsICRzVHlwZSA9ICJ0byIpIHsNCiAgICAg
ICAgc3dpdGNoKCRzVHlwZSkNCiAgICAgICAgew0KICAgICAgICAgICAgY2FzZSAidG8iOg0KICAg
ICAgICAgICAgICAgICR0aGlzLT5NYWlsLT5BZGRBZGRyZXNzKCRzQWRkcmVzcywgJHNOYW1lKTsN
CiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgIGNhc2UgImNjIjoNCiAgICAgICAg
ICAgICAgICAkdGhpcy0+TWFpbC0+QWRkQ0MoJHNBZGRyZXNzLCAkc05hbWUpOw0KICAgICAgICAg
ICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgY2FzZSAiYmNjIjoNCiAgICAgICAgICAgICAgICAk
dGhpcy0+TWFpbC0+QWRkQkNDKCRzQWRkcmVzcywgJHNOYW1lKTsNCiAgICAgICAgICAgICAgICBi
cmVhazsNCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8NCiAgICAvLyBVTklUIFRFU1RTDQogICAgLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw0KDQogICAgLyoqDQogICAg
ICogVHJ5IGEgcGxhaW4gbWVzc2FnZS4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0X1dvcmRX
cmFwKCkgew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Xb3JkV3JhcCA9IDQwOw0KICAgICAgICAk
bXlfYm9keSA9ICJIZXJlIGlzIHRoZSBtYWluIGJvZHkgb2YgdGhpcyBtZXNzYWdlLiAgSXQgc2hv
dWxkICIgLg0KICAgICAgICAgICAgICAgICAgICJiZSBxdWl0ZSBhIGZldyBsaW5lcy4gIEl0IHNo
b3VsZCBiZSB3cmFwcGVkIGF0IHRoZSAiIC4NCiAgICAgICAgICAgICAgICAgICAiNDAgY2hhcmFj
dGVycy4gIE1ha2Ugc3VyZSB0aGF0IGl0IGlzLiI7DQogICAgICAgICRuQm9keUxlbiA9IHN0cmxl
bigkbXlfYm9keSk7DQogICAgICAgICRteV9ib2R5IC49ICJcblxuVGhpcyBpcyB0aGUgYWJvdmUg
Ym9keSBsZW5ndGg6ICIgLiAkbkJvZHlMZW47DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPkJvZHkg
PSAkbXlfYm9keTsNCiAgICAgICAgJHRoaXMtPk1haWwtPlN1YmplY3QgLj0gIjogV29yZHdyYXAi
Ow0KDQogICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgk
dGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9DQoNCiAg
ICAvKioNCiAgICAgKiBUcnkgYSBwbGFpbiBtZXNzYWdlLg0KICAgICAqLw0KICAgIGZ1bmN0aW9u
IHRlc3RfTG93X1ByaW9yaXR5KCkgew0KICAgIA0KICAgICAgICAkdGhpcy0+TWFpbC0+UHJpb3Jp
dHkgPSA1Ow0KICAgICAgICAkdGhpcy0+TWFpbC0+Qm9keSA9ICJIZXJlIGlzIHRoZSBtYWluIGJv
ZHkuICBUaGVyZSBzaG91bGQgYmUgIiAuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgImEg
cmVwbHkgdG8gYWRkcmVzcyBpbiB0aGlzIG1lc3NhZ2UuIjsNCiAgICAgICAgJHRoaXMtPk1haWwt
PlN1YmplY3QgLj0gIjogTG93IFByaW9yaXR5IjsNCiAgICAgICAgJHRoaXMtPk1haWwtPkFkZFJl
cGx5VG8oIm5vYm9keUBub2JvZHkuY29tIiwgIk5vYm9keSAoVW5pdCBUZXN0KSIpOw0KDQogICAg
ICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgkdGhpcy0+TWFp
bC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9DQoNCiAgICAvKioNCiAg
ICAgKiBTaW1wbGUgcGxhaW4gZmlsZSBhdHRhY2htZW50IHRlc3QuDQogICAgICovDQogICAgZnVu
Y3Rpb24gdGVzdF9NdWx0aXBsZV9QbGFpbl9GaWxlQXR0YWNobWVudCgpIHsNCg0KICAgICAgICAk
dGhpcy0+TWFpbC0+Qm9keSA9ICJIZXJlIGlzIHRoZSB0ZXh0IGJvZHkiOw0KICAgICAgICAkdGhp
cy0+TWFpbC0+U3ViamVjdCAuPSAiOiBQbGFpbiArIE11bHRpcGxlIEZpbGVBdHRhY2htZW50cyI7
DQoNCiAgICAgICAgaWYoISR0aGlzLT5NYWlsLT5BZGRBdHRhY2htZW50KCJyb2Nrcy5wbmciKSkN
CiAgICAgICAgew0KICAgICAgICAgICAgJHRoaXMtPmFzc2VydChmYWxzZSwgJHRoaXMtPk1haWwt
PkVycm9ySW5mbyk7DQogICAgICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICBp
ZighJHRoaXMtPk1haWwtPkFkZEF0dGFjaG1lbnQoInBocG1haWxlcl90ZXN0LnBocCIsICJ0ZXN0
LnR4dCIpKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGhpcy0+YXNzZXJ0KGZhbHNlLCAkdGhp
cy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICAgICAgICAgIHJldHVybjsNCiAgICAgICAgfQ0KDQog
ICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgkdGhpcy0+
TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9DQoNCiAgICAvKioN
CiAgICAgKiBTaW1wbGUgcGxhaW4gc3RyaW5nIGF0dGFjaG1lbnQgdGVzdC4NCiAgICAgKi8NCiAg
ICBmdW5jdGlvbiB0ZXN0X1BsYWluX1N0cmluZ0F0dGFjaG1lbnQoKSB7DQoNCiAgICAgICAgJHRo
aXMtPk1haWwtPkJvZHkgPSAiSGVyZSBpcyB0aGUgdGV4dCBib2R5IjsNCiAgICAgICAgJHRoaXMt
Pk1haWwtPlN1YmplY3QgLj0gIjogUGxhaW4gKyBTdHJpbmdBdHRhY2htZW50IjsNCiAgICAgICAg
DQogICAgICAgICRzQXR0YWNobWVudCA9ICJUaGVzZSBjaGFyYWN0ZXJzIGFyZSB0aGUgY29udGVu
dCBvZiB0aGUgIiAuDQogICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmcgYXR0YWNobWVudC5c
blRoaXMgbWlnaHQgYmUgdGFrZW4gZnJvbSBhICIuDQogICAgICAgICAgICAgICAgICAgICAgICJk
YXRhYmFzZSBvciBzb21lIG90aGVyIHN1Y2ggdGhpbmcuICI7DQogICAgICAgIA0KICAgICAgICAk
dGhpcy0+TWFpbC0+QWRkU3RyaW5nQXR0YWNobWVudCgkc0F0dGFjaG1lbnQsICJzdHJpbmdfYXR0
YWNoLnR4dCIpOw0KDQogICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMt
PmFzc2VydCgkdGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAg
ICB9DQoNCiAgICAvKioNCiAgICAgKiBQbGFpbiBxdW90ZWQtcHJpbnRhYmxlIG1lc3NhZ2UuDQog
ICAgICovDQogICAgZnVuY3Rpb24gdGVzdF9RdW90ZWRfUHJpbnRhYmxlKCkgew0KDQogICAgICAg
ICR0aGlzLT5NYWlsLT5Cb2R5ID0gIkhlcmUgaXMgdGhlIG1haW4gYm9keSI7DQogICAgICAgICR0
aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IFBsYWluICsgUXVvdGVkLXByaW50YWJsZSI7DQogICAg
ICAgICR0aGlzLT5NYWlsLT5FbmNvZGluZyA9ICJxdW90ZWQtcHJpbnRhYmxlIjsNCg0KICAgICAg
ICAkdGhpcy0+QnVpbGRCb2R5KCk7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwt
PlNlbmQoKSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAgfQ0KDQogICAgLyoqDQogICAg
ICogVHJ5IGEgcGxhaW4gbWVzc2FnZS4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0X0h0bWwo
KSB7DQogICAgDQogICAgICAgICR0aGlzLT5NYWlsLT5Jc0hUTUwodHJ1ZSk7DQogICAgICAgICR0
aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IEhUTUwgb25seSI7DQogICAgICAgIA0KICAgICAgICAk
dGhpcy0+TWFpbC0+Qm9keSA9ICJUaGlzIGlzIGEgPGI+dGVzdCBtZXNzYWdlPC9iPiB3cml0dGVu
IGluIEhUTUwuIDwvYnI+IiAuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdvIHRvIDxh
IGhyZWY9XCJodHRwOi8vcGhwbWFpbGVyLnNvdXJjZWZvcmdlLm5ldC9cIj4iIC4NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3BocG1haWxlci5zb3VyY2Vmb3JnZS5uZXQvPC9h
PiBmb3IgbmV3IHZlcnNpb25zIG9mICIgLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
aHBtYWlsZXIuICA8cC8+IFRoYW5rIHlvdSEiOw0KDQogICAgICAgICR0aGlzLT5CdWlsZEJvZHko
KTsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgkdGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFp
bC0+RXJyb3JJbmZvKTsNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBTaW1wbGUgSFRNTCBhbmQg
YXR0YWNobWVudCB0ZXN0DQogICAgICovDQogICAgZnVuY3Rpb24gdGVzdF9IVE1MX0F0dGFjaG1l
bnQoKSB7DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPkJvZHkgPSAiVGhpcyBpcyB0aGUgPGI+SFRN
TDwvYj4gcGFydCBvZiB0aGUgZW1haWwuIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPlN1YmplY3Qg
Lj0gIjogSFRNTCArIEF0dGFjaG1lbnQiOw0KICAgICAgICAkdGhpcy0+TWFpbC0+SXNIVE1MKHRy
dWUpOw0KICAgICAgICANCiAgICAgICAgaWYoISR0aGlzLT5NYWlsLT5BZGRBdHRhY2htZW50KCJw
aHBtYWlsZXJfdGVzdC5waHAiLCAidGVzdF9hdHRhY2gudHh0IikpDQogICAgICAgIHsNCiAgICAg
ICAgICAgICR0aGlzLT5hc3NlcnQoZmFsc2UsICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAg
ICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgJHRoaXMtPkJ1aWxkQm9keSgp
Ow0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5kKCksICR0aGlzLT5NYWls
LT5FcnJvckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIEFuIGVtYmVkZGVkIGF0dGFj
aG1lbnQgdGVzdC4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0X0VtYmVkZGVkX0ltYWdlKCkg
ew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0gIkVtYmVkZGVkIEltYWdlOiA8aW1nIGFs
dD1cInBocG1haWxlclwiIHNyYz1cImNpZDpteS1hdHRhY2hcIj4iIC4NCiAgICAgICAgICAgICAg
ICAgICAgICJIZXJlIGlzIGFuIGltYWdlITwvYT4iOw0KICAgICAgICAkdGhpcy0+TWFpbC0+U3Vi
amVjdCAuPSAiOiBFbWJlZGRlZCBJbWFnZSI7DQogICAgICAgICR0aGlzLT5NYWlsLT5Jc0hUTUwo
dHJ1ZSk7DQogICAgICAgIA0KICAgICAgICBpZighJHRoaXMtPk1haWwtPkFkZEVtYmVkZGVkSW1h
Z2UoInJvY2tzLnBuZyIsICJteS1hdHRhY2giLCAicm9ja3MucG5nIiwNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiYXNlNjQiLCAiaW1hZ2UvcG5nIikpDQogICAg
ICAgIHsNCiAgICAgICAgICAgICR0aGlzLT5hc3NlcnQoZmFsc2UsICR0aGlzLT5NYWlsLT5FcnJv
ckluZm8pOw0KICAgICAgICAgICAgcmV0dXJuOw0KICAgICAgICB9DQoNCiAgICAgICAgJHRoaXMt
PkJ1aWxkQm9keSgpOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5kKCks
ICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAgIH0NCg0KICAgIC8qKg0KICAgICAqIEFuIGVt
YmVkZGVkIGF0dGFjaG1lbnQgdGVzdC4NCiAgICAgKi8NCiAgICBmdW5jdGlvbiB0ZXN0X011bHRp
X0VtYmVkZGVkX0ltYWdlKCkgew0KDQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0gIkVtYmVk
ZGVkIEltYWdlOiA8aW1nIGFsdD1cInBocG1haWxlclwiIHNyYz1cImNpZDpteS1hdHRhY2hcIj4i
IC4NCiAgICAgICAgICAgICAgICAgICAgICJIZXJlIGlzIGFuIGltYWdlITwvYT4iOw0KICAgICAg
ICAkdGhpcy0+TWFpbC0+U3ViamVjdCAuPSAiOiBFbWJlZGRlZCBJbWFnZSArIEF0dGFjaG1lbnQi
Ow0KICAgICAgICAkdGhpcy0+TWFpbC0+SXNIVE1MKHRydWUpOw0KICAgICAgICANCiAgICAgICAg
aWYoISR0aGlzLT5NYWlsLT5BZGRFbWJlZGRlZEltYWdlKCJyb2Nrcy5wbmciLCAibXktYXR0YWNo
IiwgInJvY2tzLnBuZyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYmFzZTY0IiwgImltYWdlL3BuZyIpKQ0KICAgICAgICB7DQogICAgICAgICAgICAkdGhpcy0+
YXNzZXJ0KGZhbHNlLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICAgICAgICAgIHJldHVy
bjsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmKCEkdGhpcy0+TWFpbC0+QWRkQXR0YWNobWVudCgi
cGhwbWFpbGVyX3Rlc3QucGhwIiwgInRlc3QudHh0IikpDQogICAgICAgIHsNCiAgICAgICAgICAg
ICR0aGlzLT5hc3NlcnQoZmFsc2UsICR0aGlzLT5NYWlsLT5FcnJvckluZm8pOw0KICAgICAgICAg
ICAgcmV0dXJuOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+QnVpbGRCb2R5
KCk7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNlbmQoKSwgJHRoaXMtPk1h
aWwtPkVycm9ySW5mbyk7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogU2ltcGxlIG11bHRpcGFy
dC9hbHRlcm5hdGl2ZSB0ZXN0Lg0KICAgICAqLw0KICAgIGZ1bmN0aW9uIHRlc3RfQWx0Qm9keSgp
IHsNCg0KICAgICAgICAkdGhpcy0+TWFpbC0+Qm9keSA9ICJUaGlzIGlzIHRoZSA8Yj5IVE1MPC9i
PiBwYXJ0IG9mIHRoZSBlbWFpbC4iOw0KICAgICAgICAkdGhpcy0+TWFpbC0+QWx0Qm9keSA9ICJI
ZXJlIGlzIHRoZSB0ZXh0IGJvZHkgb2YgdGhpcyBtZXNzYWdlLiAgIiAuDQogICAgICAgICAgICAg
ICAgICAgIkl0IHNob3VsZCBiZSBxdWl0ZSBhIGZldyBsaW5lcy4gIEl0IHNob3VsZCBiZSB3cmFw
cGVkIGF0IHRoZSAiIC4NCiAgICAgICAgICAgICAgICAgICAiNDAgY2hhcmFjdGVycy4gIE1ha2Ug
c3VyZSB0aGF0IGl0IGlzLiI7DQogICAgICAgICR0aGlzLT5NYWlsLT5Xb3JkV3JhcCA9IDQwOw0K
ICAgICAgICAkdGhpcy0+QWRkTm90ZSgiVGhpcyBpcyBhIG11bGlwYXJ0IGFsdGVybmF0aXZlIGVt
YWlsIik7DQogICAgICAgICR0aGlzLT5NYWlsLT5TdWJqZWN0IC49ICI6IEFsdEJvZHkgKyBXb3Jk
IFdyYXAiOw0KDQogICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMtPmFz
c2VydCgkdGhpcy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9
DQoNCiAgICAvKioNCiAgICAgKiBTaW1wbGUgSFRNTCBhbmQgYXR0YWNobWVudCB0ZXN0DQogICAg
ICovDQogICAgZnVuY3Rpb24gdGVzdF9BbHRCb2R5X0F0dGFjaG1lbnQoKSB7DQoNCiAgICAgICAg
JHRoaXMtPk1haWwtPkJvZHkgPSAiVGhpcyBpcyB0aGUgPGI+SFRNTDwvYj4gcGFydCBvZiB0aGUg
ZW1haWwuIjsNCiAgICAgICAgJHRoaXMtPk1haWwtPkFsdEJvZHkgPSAiVGhpcyBpcyB0aGUgdGV4
dCBwYXJ0IG9mIHRoZSBlbWFpbC4iOw0KICAgICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCAuPSAi
OiBBbHRCb2R5ICsgQXR0YWNobWVudCI7DQogICAgICAgICR0aGlzLT5NYWlsLT5Jc0hUTUwodHJ1
ZSk7DQogICAgICAgIA0KICAgICAgICBpZighJHRoaXMtPk1haWwtPkFkZEF0dGFjaG1lbnQoInBo
cG1haWxlcl90ZXN0LnBocCIsICJ0ZXN0X2F0dGFjaC50eHQiKSkNCiAgICAgICAgew0KICAgICAg
ICAgICAgJHRoaXMtPmFzc2VydChmYWxzZSwgJHRoaXMtPk1haWwtPkVycm9ySW5mbyk7DQogICAg
ICAgICAgICByZXR1cm47DQogICAgICAgIH0NCg0KICAgICAgICAkdGhpcy0+QnVpbGRCb2R5KCk7
DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNlbmQoKSwgJHRoaXMtPk1haWwt
PkVycm9ySW5mbyk7DQoNCiAgICAgICAgJGZwID0gZm9wZW4oIm1lc3NhZ2UudHh0IiwgInciKTsN
CiAgICAgICAgZndyaXRlKCRmcCwgJHRoaXMtPk1haWwtPkNyZWF0ZUhlYWRlcigpIC4gJHRoaXMt
Pk1haWwtPkNyZWF0ZUJvZHkoKSk7DQogICAgICAgIGZjbG9zZSgkZnApOw0KICAgIH0gICAgDQoN
CiAgICBmdW5jdGlvbiB0ZXN0X011bHRpcGxlU2VuZCgpIHsNCiAgICAgICAgJHRoaXMtPk1haWwt
PkJvZHkgPSAiU2VuZGluZyB0d28gbWVzc2FnZXMgd2l0aG91dCBrZWVwYWxpdmUiOw0KICAgICAg
ICAkdGhpcy0+QnVpbGRCb2R5KCk7DQogICAgICAgICRzdWJqZWN0ID0gJHRoaXMtPk1haWwtPlN1
YmplY3Q7DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPlN1YmplY3QgPSAkc3ViamVjdCAuICI6IFNN
VFAgMSI7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNlbmQoKSwgJHRoaXMt
Pk1haWwtPkVycm9ySW5mbyk7DQogICAgICAgIA0KICAgICAgICAkdGhpcy0+TWFpbC0+U3ViamVj
dCA9ICRzdWJqZWN0IC4gIjogU01UUCAyIjsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgkdGhpcy0+
TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICB9DQoNCiAgICBmdW5j
dGlvbiB0ZXN0X1NtdHBLZWVwQWxpdmUoKSB7DQogICAgICAgICR0aGlzLT5NYWlsLT5Cb2R5ID0g
IlRoaXMgd2FzIGRvbmUgdXNpbmcgdGhlIFNNVFAga2VlcC1hbGl2ZS4iOw0KICAgICAgICAkdGhp
cy0+QnVpbGRCb2R5KCk7DQogICAgICAgICRzdWJqZWN0ID0gJHRoaXMtPk1haWwtPlN1YmplY3Q7
DQoNCiAgICAgICAgJHRoaXMtPk1haWwtPlNNVFBLZWVwQWxpdmUgPSB0cnVlOw0KICAgICAgICAk
dGhpcy0+TWFpbC0+U3ViamVjdCA9ICRzdWJqZWN0IC4gIjogU01UUCBrZWVwLWFsaXZlIDEiOw0K
ICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5kKCksICR0aGlzLT5NYWlsLT5F
cnJvckluZm8pOw0KICAgICAgICANCiAgICAgICAgJHRoaXMtPk1haWwtPlN1YmplY3QgPSAkc3Vi
amVjdCAuICI6IFNNVFAga2VlcC1hbGl2ZSAyIjsNCiAgICAgICAgJHRoaXMtPmFzc2VydCgkdGhp
cy0+TWFpbC0+U2VuZCgpLCAkdGhpcy0+TWFpbC0+RXJyb3JJbmZvKTsNCiAgICAgICAgJHRoaXMt
Pk1haWwtPlNtdHBDbG9zZSgpOw0KICAgIH0NCiAgICANCiAgICBmdW5jdGlvbiB0ZXN0X0Vycm9y
KCkgew0KICAgICAgICAkdGhpcy0+TWFpbC0+U3ViamVjdCAuPSAiOiBUaGlzIHNob3VsZCBiZSBz
ZW50IjsgDQogICAgICAgICR0aGlzLT5CdWlsZEJvZHkoKTsNCiAgICAgICAgJHRoaXMtPk1haWwt
PkNsZWFyQWxsUmVjaXBpZW50cygpOyAvLyBubyBhZGRyZXNzZXMgc2hvdWxkIGNhdXNlIGFuIGVy
cm9yDQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPklzRXJyb3IoKSA9PSBmYWxz
ZSwgIkVycm9yIGZvdW5kIik7DQogICAgICAgICR0aGlzLT5hc3NlcnQoJHRoaXMtPk1haWwtPlNl
bmQoKSA9PSBmYWxzZSwgIlNlbmQgc3VjY2VlZGVkIik7DQogICAgICAgICR0aGlzLT5hc3NlcnQo
JHRoaXMtPk1haWwtPklzRXJyb3IoKSwgIk5vIGVycm9yIGZvdW5kIik7DQogICAgICAgICR0aGlz
LT5hc3NlcnRFcXVhbHMoJ1lvdSBtdXN0IHByb3ZpZGUgYXQgbGVhc3Qgb25lICcgLg0KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdyZWNpcGllbnQgZW1haWwgYWRkcmVzcy4nLCAkdGhpcy0+
TWFpbC0+RXJyb3JJbmZvKTsNCiAgICAgICAgJHRoaXMtPk1haWwtPkFkZEFkZHJlc3MoZ2V0KCJt
YWlsX3RvIikpOw0KICAgICAgICAkdGhpcy0+YXNzZXJ0KCR0aGlzLT5NYWlsLT5TZW5kKCksICJT
ZW5kIGZhaWxlZCIpOw0KICAgIH0NCn0gIA0KIA0KLyoqDQogKiBDcmVhdGUgYW5kIHJ1biB0ZXN0
IGluc3RhbmNlLg0KICovDQogDQppZihpc3NldCgkSFRUUF9HRVRfVkFSUykpDQogICAgJGdsb2Jh
bF92YXJzID0gJEhUVFBfR0VUX1ZBUlM7DQplbHNlDQogICAgJGdsb2JhbF92YXJzID0gJF9SRVFV
RVNUOw0KDQppZihpc3NldCgkZ2xvYmFsX3ZhcnNbInN1Ym1pdHRlZCJdKSkNCnsNCiAgICBlY2hv
ICJUZXN0IHJlc3VsdHM6PGJyPiI7DQogICAgJHN1aXRlID0gbmV3IFRlc3RTdWl0ZSggInBocG1h
aWxlclRlc3QiICk7DQogICAgDQogICAgJHRlc3RSdW5uZXIgPSBuZXcgVGVzdFJ1bm5lcjsNCiAg
ICAkdGVzdFJ1bm5lci0+cnVuKCRzdWl0ZSk7DQogICAgZWNobyAiPGhyIG5vc2hhZGUvPiI7DQp9
DQoNCmZ1bmN0aW9uIGdldCgkc05hbWUpIHsNCiAgICBnbG9iYWwgJGdsb2JhbF92YXJzOw0KICAg
IGlmKGlzc2V0KCRnbG9iYWxfdmFyc1skc05hbWVdKSkNCiAgICAgICAgcmV0dXJuICRnbG9iYWxf
dmFyc1skc05hbWVdOw0KICAgIGVsc2UNCiAgICAgICAgcmV0dXJuICIiOw0KfQ0KDQo/Pg0KDQo8
aHRtbD4NCjxib2R5Pg0KPGgzPnBocG1haWxlciBVbml0IFRlc3Q8L2gzPg0KQnkgZW50ZXJpbmcg
YSBTTVRQIGhvc3RuYW1lIGl0IHdpbGwgYXV0b21hdGljYWxseSBwZXJmb3JtIHRlc3RzIHdpdGgg
U01UUC4NCg0KPGZvcm0gbmFtZT0icGhwbWFpbGVyX3VuaXQiIGFjdGlvbj0icGhwbWFpbGVyX3Rl
c3QucGhwIiBtZXRob2Q9ImdldCI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdWJtaXR0
ZWQiIHZhbHVlPSIxIi8+DQpUbyBBZGRyZXNzOiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNTAi
IG5hbWU9Im1haWxfdG8iIHZhbHVlPSI8P3BocCBlY2hvIGdldCgibWFpbF90byIpOyA/PiIvPg0K
PGJyLz4NCkNjIEFkZHJlc3M6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI1MCIgbmFtZT0ibWFp
bF9jYyIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0KCJtYWlsX2NjIik7ID8+Ii8+DQo8YnIvPg0KU01U
UCBIb3N0bmFtZTogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjUwIiBuYW1lPSJtYWlsX2hvc3Qi
IHZhbHVlPSI8P3BocCBlY2hvIGdldCgibWFpbF9ob3N0Iik7ID8+Ii8+DQo8cC8+DQo8aW5wdXQg
dHlwZT0ic3VibWl0IiB2YWx1ZT0iUnVuIFRlc3QiLz4NCg0KPC9mb3JtPg0KPC9ib2R5Pg0KPC9o
dG1sPg0K
--b1_d7fe3e5dda2f576b588b1a9ef401bc64--