From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web12.10057.1602675500876595565 for ; Wed, 14 Oct 2020 04:38:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=nTxQSXvs; spf=pass (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=05564a573f=abner.chang@hpe.com) Received: from pps.filterd (m0134423.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 09EBXZG9017060; Wed, 14 Oct 2020 11:38:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=eZU1QEFQzoK/xKkm6NPenbB5a4EfB3b/31MFqzeOHMM=; b=nTxQSXvssnsPXyvbJcc8Q23fQHd3Bgsqo5gOPGYlnOKmntxcTSptSYevlHXGaMu9F5Bx EN/PajKEpanFbALHTxkkjOvytusCxtE01Ga2WhH9HHQopDadAoaNU3Lb9Fn3wJ7tDCnx k7gty1stZocrmkmsgIk5r8q0wz42R3Olk6cNcA44bX47pRdJ/uJrt7yI6DK+/yGryY+2 QlpiWRxMQihW8ZR8P4gpJDufK9ORbefwL+N1fkBIrk9L8IwDc8A8Kww6XCTkV819/7Lc keHbxRPHubyWmOExPUGFl1ExNmdP7IBvntPEjO0oJdtHKI/Rz64MHw8OaTe6zMmvhTlc MQ== Received: from g9t5008.houston.hpe.com (g9t5008.houston.hpe.com [15.241.48.72]) by mx0b-002e3701.pphosted.com with ESMTP id 345k8ppaxj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 14 Oct 2020 11:38:16 +0000 Received: from G9W8456.americas.hpqcorp.net (exchangepmrr1.us.hpecorp.net [16.216.161.95]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g9t5008.houston.hpe.com (Postfix) with ESMTPS id A926362; Wed, 14 Oct 2020 11:38:15 +0000 (UTC) Received: from G9W8453.americas.hpqcorp.net (2002:10d8:a0d3::10d8:a0d3) by G9W8456.americas.hpqcorp.net (2002:10d8:a15f::10d8:a15f) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 14 Oct 2020 11:38:14 +0000 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (15.241.52.13) by G9W8453.americas.hpqcorp.net (16.216.160.211) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 14 Oct 2020 11:38:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BEwhPff9vUILsKNSjxW8NzWKXR64C2ad9s1DQP2XxN6Vg+shJ2SAmKnqQ1cnR9StYcYucvsBgO61oeurQ1hHtyzCX+DThf60+gRcQ+ESL4QDWN7cBN9dsycxQll+5WL3Nu+dc32RChmshaYwK5t8IJtw39rpG9hudKNfmTtCFCl3DJ594ifS2ymNfbJIhlug8chu3xTlTMrpZOf+9wajetwl8z3wFmSMZN/vx/NQ8xAfvJugS+3y1D5bMBxVUZIFYZj700rkmvDtQIxVYwYGTm6aLDVHBvdpicMnzrJOji1n/uby1Wcb0HsSQK6VbMzLWHf3ceKXuM2a/yfe4CwEYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eb7A4s8piymAvLE/+FoDL82IK+loE8p9faDZ3R8/ZO8=; b=A4KcwejTpMtyg+ynoNWJyS4GN9JDhppvAkY7Z+MeFWWrup7U9jiehbZchgoWuWVBW3/ZYjouee8SBIYEpVqafiDlxd7bjTHmdx73KNuTsi2/HzKRmn9nSiyuSCWyiUIRxgpZCPJwGkBupB7RXPGDR70xzpsxrqHBOmPu4m3/fClf5m2vpkQVZFyX1OALoperFkOBmVSO7FRsQnt3kpUbIBWzYaiSHs/Sb7xnwEqfbSWglmam8rZnJOj0liQ9vQFgMnzqZieJE5244cnO6LR6B0o9bKp+hBZCkPe40gIPlkTjKmacwPGaEjyoRebSnwaqGhNKDd0wG5RmEwIrRD7RYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7508::16) by CS1PR8401MB0776.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:750e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Wed, 14 Oct 2020 11:38:08 +0000 Received: from CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::2d63:fa59:f357:43d0]) by CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM ([fe80::2d63:fa59:f357:43d0%11]) with mapi id 15.20.3455.031; Wed, 14 Oct 2020 11:38:08 +0000 From: "Abner Chang" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" , "'Wu, Jiaxin'" CC: "'Kinney, Michael D'" , "'Liu, Zhiguang'" , "'Yao, Jiewen'" , "Wang, Nickle (HPS SW)" Subject: Re: [edk2-devel] [Rest Ex Definition PATCH 1/2] MdePkg/Include: Definitions of EFI REST EX Protocol Thread-Topic: [edk2-devel] [Rest Ex Definition PATCH 1/2] MdePkg/Include: Definitions of EFI REST EX Protocol Thread-Index: AQHWoHUvo1aoK/lcPUuX0oQ89YFi3qmWlxKAgABaNBA= Date: Wed, 14 Oct 2020 11:38:08 +0000 Message-ID: References: <20201012070415.5878-1-abner.chang@hpe.com> <20201012070415.5878-2-abner.chang@hpe.com> <003901d6a1eb$fec99aa0$fc5ccfe0$@byosoft.com.cn> In-Reply-To: <003901d6a1eb$fec99aa0$fc5ccfe0$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=hpe.com; x-originating-ip: [1.34.113.40] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: a54d04e8-a7bd-434b-d8a6-08d870359f8b x-ms-traffictypediagnostic: CS1PR8401MB0776: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: V73MM+eyX9GdkGW85AwNtak5yhHSvc2wzMbyivNqTcUhLffirUwwSINMkvm70midd+PM94H9sZKkVi8XeGAKnLgIPtAZywDCqObzhz9ZOSaLdb8quRiO3oCrqaRs6Xl1YQ0mCWZ59WppsFYIS2liy3sTKJjljCXhXDJDyzdMdu62vfQVpNn5DIbYKsTeYMa1qFM0/SoO+m6dAWChN42EFZWUiWVe62cLoSgPNaS9P3vXwvgp75DrpFnrLCcLaTCRzN+jpY67qxG7KDHL/va4mW6s7pS5m1/TV1vNfWWgC2FVrKUAacOEJR2uO8wFTNAj47uj2Ha3D8WoTLhNiVE9ocN4pnCBvwviGXUoTVzq2UBmtPQUeYpxpUdH3RJEmxa4W58mTDCUwTmBGU2y+6kvvg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(346002)(136003)(366004)(396003)(39860400002)(376002)(26005)(83080400001)(53546011)(7696005)(478600001)(316002)(4326008)(6506007)(110136005)(64756008)(66476007)(66556008)(86362001)(5660300002)(66946007)(83380400001)(71200400001)(76116006)(66446008)(54906003)(52536014)(33656002)(2906002)(30864003)(966005)(8936002)(9686003)(8676002)(186003)(19627235002)(55016002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: ec8FAu3KSK7XABoEnWTbgBj2ze+5/tkhbFh4k8zMUrV8NzqZ1BY7uT3y9VseOnNcVpqVEsGYf4CotaqcNUxoK0BK2OpY5/xa4sCdzJwK0OXbSaCTXDja4rceXBlA8TzbqRPZUZrC2pQFWDvsk5cF70C+nW5ftA4DTL8OiZPeofAJyu1E6uvgWDKrGnwJDVFjv6T/r584mLGCirae7HY3rAkmSUTGmuK6olieji5reMa19lVvwhXv06qOR7eKyy34JeGl0p5OZNE5x9r4HLUH5hZcfs6tg1sZD3dyc/n1sixOtvV4Exbn0n2YO/JXaXAESoVohEnrdVIV35ZxiIGokDTk8/Zz/zr1m0kjgkjCYylyGcht/kzn9YLQcnMWfuKSic0onhKmceZHh7qk3/sxk6yFkXuyVDwkXIDAfMdjylXE1MYyorwp5rEm1KxNmQEwsY42zPXdlXWyXLQ2Z7a5TVArhJ4uP68Uk55hxTuaey8LJ1V70LC6rSS8/zxMxh9CXDFIs/D8O/CUvnXjWZqa51qDwCPmC8D899y+8jNxgHxwWU3JnzAMqJYbMn82iElBIaNR5kFZkdKy6h+qkVsFU7mPoT9RjBW1jFSd3f0BL5VYgR3MQGQ4l/PYlO02Rwfe32vPbDLFfPHq2Ibxnt7hAg== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CS1PR8401MB1144.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: a54d04e8-a7bd-434b-d8a6-08d870359f8b X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2020 11:38:08.4615 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Gy9BFzVh61adCUQoj9yFEh+VGW7PlG9SR/A0TF+mqUhHxTtUThOK5A8HLbdgN47F5t8ihkLRtjy0CP6sFOVY4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CS1PR8401MB0776 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-10-14_07:2020-10-14,2020-10-14 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 mlxscore=0 adultscore=0 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 clxscore=1015 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2010140085 Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 VGhhbmtzIExpbWluZywgdjIgcGF0Y2ggc2VudC4NCg0KQ0kgdGVzdCBwYXNzZWQgb24gUFI6ICBo dHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazIvcHVsbC8xMDEyDQoNCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyBbbWFpbHRv OmRldmVsQGVkazIuZ3JvdXBzLmlvXSBPbiBCZWhhbGYgT2YNCj4gZ2FvbGltaW5nDQo+IFNlbnQ6 IFdlZG5lc2RheSwgT2N0b2JlciAxNCwgMjAyMCAxOjM3IFBNDQo+IFRvOiAnV3UsIEppYXhpbicg PGppYXhpbi53dUBpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQ2hhbmcsIEFibmVy DQo+IChIUFMgU1cvRlcgVGVjaG5vbG9naXN0KSA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gQ2M6 ICdLaW5uZXksIE1pY2hhZWwgRCcgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgJ0xpdSwg WmhpZ3VhbmcnDQo+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgJ1lhbywgSmlld2VuJyA8amll d2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLA0KPiBOaWNrbGUgKEhQUyBTVykgPG5pY2tsZS53YW5n QGhwZS5jb20+DQo+IFN1YmplY3Q6ILvYuLQ6IFtlZGsyLWRldmVsXSBbUmVzdCBFeCBEZWZpbml0 aW9uIFBBVENIIDEvMl0gTWRlUGtnL0luY2x1ZGU6DQo+IERlZmluaXRpb25zIG9mIEVGSSBSRVNU IEVYIFByb3RvY29sDQo+IA0KPiBBYm5lcjoNCj4gICBJbiB0aGUgZmlsZSBoZWFkZXIsIHBsZWFz ZSBkZXNjcmliZSB0aGlzIGRlZmluaXRpb24gaXMgZnJvbSB3aGljaCB2ZXJzaW9uIFVFRkkNCj4g c3BlYy4gV2l0aCB0aGlzIGNoYW5nZSwgUmV2aWV3ZWQtYnk6IExpbWluZyBHYW8gPGdhb2xpbWlu Z0BieW9zb2Z0LmNvbS4NCj4gY24+DQo+IA0KPiBUaGFua3MNCj4gTGltaW5nDQo+ID4gLS0tLS3T yrz+1K28/i0tLS0tDQo+ID4gt6K8/sjLOiBXdSwgSmlheGluIDxqaWF4aW4ud3VAaW50ZWwuY29t Pg0KPiA+ILeiy83KsbzkOiAyMDIwxOoxMNTCMTLI1SAxNjo1NA0KPiA+IMrVvP7IyzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IGFibmVyLmNoYW5nQGhwZS5jb20NCj4gPiCzrcvNOiBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBMaW1pbmcgR2FvDQo+ID4gPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRl bC5jb20+Ow0KPiA+IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IE5pY2tsZSBX YW5nDQo+IDxuaWNrbGUud2FuZ0BocGUuY29tPg0KPiA+INb3zOI6IFJFOiBbZWRrMi1kZXZlbF0g W1Jlc3QgRXggRGVmaW5pdGlvbiBQQVRDSCAxLzJdIE1kZVBrZy9JbmNsdWRlOg0KPiA+IERlZmlu aXRpb25zIG9mIEVGSSBSRVNUIEVYIFByb3RvY29sDQo+ID4NCj4gPiBSZXZpZXdlZC1ieTogSmlh eGluIFd1IDxqaWF4aW4ud3VAaW50ZWwuY29tPg0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxk ZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mDQo+IEFibmVyDQo+ID4gPiBDaGFuZw0K PiA+ID4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDEyLCAyMDIwIDM6MDQgUE0NCj4gPiA+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT47IExpbWluZyBHYW8NCj4gPiA+IDxnYW9saW1pbmdAYnlvc29m dC5jb20uY24+OyBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsNCj4gPiA+ IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IE5pY2tsZSBXYW5nDQo+ID4gPiA8 bmlja2xlLndhbmdAaHBlLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUmVzdCBF eCBEZWZpbml0aW9uIFBBVENIIDEvMl0gTWRlUGtnL0luY2x1ZGU6DQo+ID4gPiBEZWZpbml0aW9u cyBvZiBFRkkgUkVTVCBFWCBQcm90b2NvbA0KPiA+ID4NCj4gPiA+IEFkZCBkZWZpbml0aW9ucyBv ZiBFRkkgUkVTVCBFWCBQcm90b2NvbCBhY2NvcmRpbmcgdG8gVUVGSSBzcGVjIHYyLjgNCj4gPiA+ IFNlY3Rpb24gMjkuNy4yIEVGSSBSRVNUIEVYIFByb3RvY29sLg0KPiA+ID4NCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiA+IFNpZ25lZC1v ZmYtYnk6IFNpeXVhbiBGdSA8c2l5dWFuLmZ1QGludGVsLmNvbT4NCj4gPiA+IFNpZ25lZC1vZmYt Ynk6IEZhbiBXYW5nIDxmYW4ud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBB Ym5lciBDaGFuZyA8YWJuZXIuY2hhbmdAaHBlLmNvbT4NCj4gPiA+DQo+ID4gPiBDYzogTWljaGFl bCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzogTGltaW5n IEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPg0KPiA+ID4gQ2M6IFpoaWd1YW5nIExpdSA8 emhpZ3VhbmcubGl1QGludGVsLmNvbT4NCj4gPiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFv QGludGVsLmNvbT4NCj4gPiA+IENjOiBOaWNrbGUgV2FuZyA8bmlja2xlLndhbmdAaHBlLmNvbT4N Cj4gPiA+IC0tLQ0KPiA+ID4gIE1kZVBrZy9JbmNsdWRlL1Byb3RvY29sL1Jlc3RFeC5oIHwgMzg4 DQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gPiAgTWRlUGtnL01k ZVBrZy5kZWMgICAgICAgICAgICAgICAgfCAgIDcgKw0KPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwg Mzk1IGluc2VydGlvbnMoKykNCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0luY2x1 ZGUvUHJvdG9jb2wvUmVzdEV4LmgNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0lu Y2x1ZGUvUHJvdG9jb2wvUmVzdEV4LmgNCj4gPiA+IGIvTWRlUGtnL0luY2x1ZGUvUHJvdG9jb2wv UmVzdEV4LmgNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAw MDAwLi5jNDIwOTZkMTRjDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9NZGVQa2cv SW5jbHVkZS9Qcm90b2NvbC9SZXN0RXguaA0KPiA+ID4gQEAgLTAsMCArMSwzODggQEANCj4gPiA+ ICsvKiogQGZpbGUNCj4gPiA+ICsgIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBFRkkgUkVTVCBFWCBQ cm90b2NvbCBpbnRlcmZhY2UuIEl0IGlzDQo+ID4gPiArICBzcGxpdCBpbnRvIHRoZSBmb2xsb3dp bmcgdHdvIG1haW4gc2VjdGlvbnMuDQo+ID4gPiArDQo+ID4gPiArICAtIFJFU1QgRVggU2Vydmlj ZSBCaW5kaW5nIFByb3RvY29sDQo+ID4gPiArICAtIFJFU1QgRVggUHJvdG9jb2wNCj4gPiA+ICsN Cj4gPiA+ICsgICBDb3B5cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsgIChDKSBDb3B5cmlnaHQgMjAyMCBIZXdsZXR0IFBh Y2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4gPiA+ICsNCj4gPiA+ICsgIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gPiArDQo+ID4g PiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lmbmRlZiBFRklfUkVTVF9FWF9QUk9U T0NPTF9IXw0KPiA+ID4gKyNkZWZpbmUgRUZJX1JFU1RfRVhfUFJPVE9DT0xfSF8NCj4gPiA+ICsN Cj4gPiA+ICsjaW5jbHVkZSA8UHJvdG9jb2wvSHR0cC5oPg0KPiA+ID4gKw0KPiA+ID4gKy8vDQo+ ID4gPiArLy9HVUlEIGRlZmluaXRpb25zDQo+ID4gPiArLy8NCj4gPiA+ICsjZGVmaW5lIEVGSV9S RVNUX0VYX1NFUlZJQ0VfQklORElOR19QUk9UT0NPTF9HVUlEIFwNCj4gPiA+ICsgIHsgXA0KPiA+ ID4gKyAgICAweDQ1NmJiZTAxLCAweDk5ZDAsIDB4NDVlYSwgezB4YmIsIDB4NWYsIDB4MTYsIDB4 ZDgsIDB4NGIsDQo+ID4gPiArMHhlZCwNCj4gPiAweGM1LA0KPiA+ID4gMHg1OSB9IFwNCj4gPiA+ ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIEVGSV9SRVNUX0VYX1BST1RPQ09MX0dVSUQg XA0KPiA+ID4gKyAgeyBcDQo+ID4gPiArICAgIDB4NTU2NDhiOTEsIDB4ZTdkLCAweDQwYTMsIHsw eGE5LCAweGIzLCAweGE4LCAweDE1LCAweGQ3LCAweGVhLA0KPiAweGRmLA0KPiA+ID4gMHg5NyB9 IFwNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICt0eXBlZGVmIHN0cnVjdCBfRUZJX1JFU1Rf RVhfUFJPVE9DT0wgRUZJX1JFU1RfRVhfUFJPVE9DT0w7DQo+ID4gPiArDQo+ID4gPg0KPiArLy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ ID4gPiArLy9FRklfUkVTVF9FWF9TRVJWSUNFX0lORk9fVkVSDQo+ID4gPg0KPiArLy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4gPiAr dHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gKyAgVUlOVDggIE1ham9yOw0KPiA+ID4gKyAgVUlOVDgg IE1pbm9yOw0KPiA+ID4gK30gRUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPX1ZFUjsNCj4gPiA+ICsN Cj4gPiA+DQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioNCj4gPiA+ICsvL0VGSV9SRVNUX0VYX1NFUlZJQ0VfSU5GT19IRUFERVINCj4g PiA+DQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioNCj4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiArICBVSU5UMzIgICAgICAg ICAgICAgICAgICAgICAgICAgTGVuZ3RoOw0KPiA+ID4gKyAgRUZJX1JFU1RfRVhfU0VSVklDRV9J TkZPX1ZFUiAgIFJlc3RTZXJ2aWNlSW5mb1ZlcjsNCj4gPiA+ICt9IEVGSV9SRVNUX0VYX1NFUlZJ Q0VfSU5GT19IRUFERVI7DQo+ID4gPiArDQo+ID4gPg0KPiArLy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4gPiArLy8gRUZJX1JFU1Rf RVhfU0VSVklDRV9UWVBFDQo+ID4gPg0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4gPiArdHlwZWRlZiBlbnVtIHsNCj4gPiA+ ICsgIEVmaVJlc3RFeFNlcnZpY2VVbnNwZWNpZmljID0gMSwNCj4gPiA+ICsgIEVmaVJlc3RFeFNl cnZpY2VSZWRmaXNoLA0KPiA+ID4gKyAgRWZpUmVzdEV4U2VydmljZU9kYXRhLA0KPiA+ID4gKyAg RWZpUmVzdEV4U2VydmljZVZlbmRvclNwZWNpZmljID0gMHhmZiwNCj4gPiA+ICsgIEVmaVJlc3RF eFNlcnZpY2VUeXBlTWF4DQo+ID4gPiArfSBFRklfUkVTVF9FWF9TRVJWSUNFX1RZUEU7DQo+ID4g PiArDQo+ID4gPg0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqDQo+ID4gPiArLy8gRUZJX1JFU1RfRVhfU0VSVklDRV9BQ0NFU1NfTU9E RQ0KPiA+ID4NCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKg0KPiA+ID4gK3R5cGVkZWYgZW51bSB7DQo+ID4gPiArICBFZmlSZXN0RXhT ZXJ2aWNlSW5CYW5kQWNjZXNzID0gMSwNCj4gPiA+ICsgIEVmaVJlc3RFeFNlcnZpY2VPdXRPZkJh bmRBY2Nlc3MgPSAyLA0KPiA+ID4gKyAgRWZpUmVzdEV4U2VydmljZU1vZGVNYXgNCj4gPiA+ICt9 IEVGSV9SRVNUX0VYX1NFUlZJQ0VfQUNDRVNTX01PREU7DQo+ID4gPiArDQo+ID4gPg0KPiArLy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ ID4gPiArLy8gRUZJX1JFU1RfRVhfQ09ORklHX1RZUEUNCj4gPiA+DQo+ICsvLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gPiA+ICt0eXBl ZGVmIGVudW0gew0KPiA+ID4gKyAgRWZpUmVzdEV4Q29uZmlnSHR0cCwNCj4gPiA+ICsgIEVmaVJl c3RFeENvbmZpZ1Vuc3BlY2lmaWMsDQo+ID4gPiArICBFZmlSZXN0RXhDb25maWdUeXBlTWF4DQo+ ID4gPiArfSBFRklfUkVTVF9FWF9DT05GSUdfVFlQRTsNCj4gPiA+ICsNCj4gPiA+DQo+ICsvLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4g PiA+ICsvL0VGSV9SRVNUX0VYX1NFUlZJQ0VfSU5GTyB2MS4wDQo+ID4gPg0KPiArLy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4gPiAr dHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gKyAgRUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPX0hFQURF UiAgRWZpUmVzdEV4U2VydmljZUluZm9IZWFkZXI7DQo+ID4gPiArICBFRklfUkVTVF9FWF9TRVJW SUNFX1RZUEUgICAgICAgICBSZXN0U2VydmljZVR5cGU7DQo+ID4gPiArICBFRklfUkVTVF9FWF9T RVJWSUNFX0FDQ0VTU19NT0RFICBSZXN0U2VydmljZUFjY2Vzc01vZGU7DQo+ID4gPiArICBFRklf R1VJRCAgICAgICAgICAgICAgICAgICAgICAgICBWZW5kb3JSZXN0U2VydmljZU5hbWU7DQo+ID4g PiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICBWZW5kb3JTcGVjaWZpY0RhdGFM ZW5ndGg7DQo+ID4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqVmVuZG9y U3BlY2lmY0RhdGE7DQo+ID4gPiArICBFRklfUkVTVF9FWF9DT05GSUdfVFlQRSAgICAgICAgICBS ZXN0RXhDb25maWdUeXBlOw0KPiA+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVzdEV4Q29uZmlnRGF0YUxlbmd0aDsNCj4gPiA+ICt9IEVGSV9SRVNUX0VYX1NFUlZJQ0Vf SU5GT19WXzFfMDsNCj4gPiA+ICsNCj4gPiA+DQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gPiA+ICsvL0VGSV9SRVNUX0VYX1NF UlZJQ0VfSU5GTw0KPiA+ID4NCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKg0KPiA+ID4gK3R5cGVkZWYgdW5pb24gew0KPiA+ID4gKyAg RUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPX0hFQURFUiBFZmlSZXN0RXhTZXJ2aWNlSW5mb0hlYWRl cjsNCj4gPiA+ICsgIEVGSV9SRVNUX0VYX1NFUlZJQ0VfSU5GT19WXzFfMCAgRWZpUmVzdEV4U2Vy dmljZUluZm9WMTA7IH0NCj4gPiA+ICtFRklfUkVTVF9FWF9TRVJWSUNFX0lORk87DQo+ID4gPiAr DQo+ID4gPg0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqDQo+ID4gPiArLy8gRUZJX1JFU1RfRVhfSFRUUF9DT05GSUdfREFUQQ0KPiA+ ID4NCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKg0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICsgIEVGSV9IVFRQX0NPTkZJ R19EQVRBICAgIEh0dHBDb25maWdEYXRhOw0KPiA+ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAg ICAgU2VuZFJlY2VpdmVUaW1lb3V0Ow0KPiA+ID4gK30gRUZJX1JFU1RfRVhfSFRUUF9DT05GSUdf REFUQTsNCj4gPiA+ICsNCj4gPiA+DQo+ICsvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioNCj4gPiA+ICsvL0VGSV9SRVNUX0VYX0NPTkZJR19E QVRBDQo+ID4gPg0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqDQo+ID4gPiArdHlwZWRlZiBVSU5UOCAqRUZJX1JFU1RfRVhfQ09ORklH X0RBVEE7DQo+ID4gPiArDQo+ID4gPg0KPiArLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ID4gPiArLy9FRklfUkVTVF9FWF9UT0tFTg0K PiA+ID4NCj4gKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKg0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICsgIEVGSV9FVkVOVCAg ICAgICAgIEV2ZW50Ow0KPiA+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgU3RhdHVzOw0KPiA+ID4g KyAgRUZJX0hUVFBfTUVTU0FHRSAgKlJlc3BvbnNlTWVzc2FnZTsgfSBFRklfUkVTVF9FWF9UT0tF TjsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIFByb3ZpZGVzIGEgc2ltcGxlIEhUVFAt bGlrZSBpbnRlcmZhY2UgdG8gc2VuZCBhbmQgcmVjZWl2ZQ0KPiA+ID4gK3Jlc291cmNlcw0KPiA+ IGZyb20gYQ0KPiA+ID4gUkVTVCBzZXJ2aWNlLg0KPiA+ID4gKw0KPiA+ID4gKyAgVGhlIFNlbmRS ZWNlaXZlKCkgZnVuY3Rpb24gc2VuZHMgYW4gSFRUUCByZXF1ZXN0IHRvIHRoaXMgUkVTVA0KPiBz ZXJ2aWNlLA0KPiA+ID4gYW5kIHJldHVybnMgYQ0KPiA+ID4gKyAgcmVzcG9uc2Ugd2hlbiB0aGUg ZGF0YSBpcyByZXRyaWV2ZWQgZnJvbSB0aGUgc2VydmljZS4NCj4gPiA+ICsgUmVxdWVzdE1lc3Nh Z2UNCj4gPiA+IGNvbnRhaW5zIHRoZSBIVFRQDQo+ID4gPiArICByZXF1ZXN0IHRvIHRoZSBSRVNU IHJlc291cmNlIGlkZW50aWZpZWQgYnkNCj4gPiBSZXF1ZXN0TWVzc2FnZS5SZXF1ZXN0LlVybC4N Cj4gPiA+IFRoZQ0KPiA+ID4gKyAgUmVzcG9uc2VNZXNzYWdlIGlzIHRoZSByZXR1cm5lZCBIVFRQ IHJlc3BvbnNlIGZvciB0aGF0IHJlcXVlc3QsDQo+ID4gPiBpbmNsdWRpbmcgYW55IEhUVFANCj4g PiA+ICsgIHN0YXR1cy4NCj4gPiA+ICsNCj4gPiA+ICsgIEBwYXJhbVtpbl0gIFRoaXMgICAgICAg ICAgICAgICAgUG9pbnRlciB0bw0KPiA+IEVGSV9SRVNUX0VYX1BST1RPQ09MIGluc3RhbmNlIGZv ciBhDQo+ID4gPiBwYXJ0aWN1bGFyDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJFU1Qgc2VydmljZS4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gIFJlcXVlc3RNZXNzYWdl ICAgICAgUG9pbnRlciB0byB0aGUgSFRUUCByZXF1ZXN0IGRhdGENCj4gPiBmb3IgdGhpcw0KPiA+ ID4gcmVzb3VyY2UNCj4gPiA+ICsgIEBwYXJhbVtvdXRdIFJlc3BvbnNlTWVzc2FnZSAgICAgUG9p bnRlciB0byB0aGUgSFRUUCByZXNwb25zZQ0KPiA+IGRhdGENCj4gPiA+IG9idGFpbmVkIGZvciB0 aGlzIHJlcXVlc3RlZC4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAg ICAgICAgICAgb3BlcmF0aW9uIHN1Y2NlZWRlZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX0lOVkFM SURfUEFSQU1FVEVSICAgVGhpcywgUmVxdWVzdE1lc3NhZ2UsIG9yDQo+ID4gPiBSZXNwb25zZU1l c3NhZ2UgYXJlIE5VTEwuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICAg IEFuIHVuZXhwZWN0ZWQgc3lzdGVtIG9yDQo+ID4gbmV0d29yayBlcnJvcg0KPiA+ID4gb2NjdXJy ZWQuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFU VVMNCj4gPiA+ICsoRUZJQVBJICpFRklfUkVTVF9TRU5EX1JFQ0VJVkUpKA0KPiA+ID4gKyAgSU4g ICAgICBFRklfUkVTVF9FWF9QUk9UT0NPTCAgICpUaGlzLA0KPiA+ID4gKyAgSU4gICAgICBFRklf SFRUUF9NRVNTQUdFICAgICAgICpSZXF1ZXN0TWVzc2FnZSwNCj4gPiA+ICsgIE9VVCAgICAgRUZJ X0hUVFBfTUVTU0FHRSAgICAgICAqUmVzcG9uc2VNZXNzYWdlDQo+ID4gPiArICApOw0KPiA+ID4g Kw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgT2J0YWluIHRoZSBjdXJyZW50IHRpbWUgZnJvbSB0aGlz IFJFU1Qgc2VydmljZSBpbnN0YW5jZS4NCj4gPiA+ICsNCj4gPiA+ICsgIFRoZSBHZXRTZXJ2aWNl VGltZSgpIGZ1bmN0aW9uIGlzIGFuIG9wdGlvbmFsIGludGVyZmFjZSB0byBvYnRhaW4NCj4gPiA+ ICsgdGhlDQo+ID4gPiBjdXJyZW50IHRpbWUgZnJvbQ0KPiA+ID4gKyAgdGhpcyBSRVNUIHNlcnZp Y2UgaW5zdGFuY2UuIElmIHRoaXMgUkVTVCBzZXJ2aWNlIGRvZXMgbm90IHN1cHBvcnQNCj4gPiA+ ICsgdG8NCj4gPiByZXRyaWV2ZQ0KPiA+ID4gdGhlIHRpbWUsDQo+ID4gPiArICB0aGlzIGZ1bmN0 aW9uIHJldHVybnMgRUZJX1VOU1VQUE9SVEVELiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJucw0K PiA+ID4gRUZJX1VOU1VQUE9SVEVEIGlmDQo+ID4gPiArICBFRklfUkVTVF9FWF9TRVJWSUNFX1RZ UEUgcmV0dXJuZWQgaW4gRUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPDQo+ID4gZnJvbQ0KPiA+ID4g R2V0U2VydmljZSgpIGlzDQo+ID4gPiArICBFRklfUkVTVF9FWF9TRVJWSUNFX1VOU1BFQ0lGSUMu DQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1baW5dICBUaGlzICAgICAgICAgICAgICAgIFBvaW50 ZXIgdG8NCj4gPiBFRklfUkVTVF9FWF9QUk9UT0NPTCBpbnN0YW5jZSBmb3IgYQ0KPiA+ID4gcGFy dGljdWxhcg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVNUIHNl cnZpY2UuDQo+ID4gPiArICBAcGFyYW1bb3V0XSBUaW1lICAgICAgICAgICAgICAgIEEgcG9pbnRl ciB0byBzdG9yYWdlIHRvIHJlY2VpdmUgYQ0KPiA+IHNuYXBzaG90IG9mDQo+ID4gPiB0aGUgY3Vy cmVudCB0aW1lIG9mDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo ZSBSRVNUIHNlcnZpY2UuDQo+ID4gPiArDQo+ID4gPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgICAgICAgIG9wZXJhdGlvbiBzdWNjZWVkZWQuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiAgIFRoaXMgb3IgVGltZSBhcmUgTlVMTC4NCj4gPiA+ICsgIEByZXR2YWwg RUZJX1VOU1VQUE9SVEVEICAgICAgICAgVGhlIFJFU1RmdWwgc2VydmljZSBkb2VzIG5vdA0KPiA+ IHN1cHBvcnQNCj4gPiA+IHJldHVybmluZyB0aGUgdGltZS4NCj4gPiA+ICsgIEByZXR2YWwgRUZJ X0RFVklDRV9FUlJPUiAgICAgICAgQW4gdW5leHBlY3RlZCBzeXN0ZW0gb3INCj4gPiBuZXR3b3Jr IGVycm9yDQo+ID4gPiBvY2N1cnJlZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX05PVF9SRUFEWSAg ICAgICAgICAgVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBpbnN0YW5jZQ0KPiA+IGlzIG5vdCBz ZXQNCj4gPiA+IHlldC4gQ29uZmlndXJlKCkgbXVzdA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiZSBleGVjdXRlZCBhbmQgcmV0dXJucw0KPiA+IHN1Y2Nlc3NmdWxs eSBwcmlvciB0byBpbnZva2UgdGhpcw0KPiA+ID4gZnVuY3Rpb24uDQo+ID4gPiArDQo+ID4gPiAr KiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+ICsoRUZJQVBJICpF RklfUkVTVF9HRVRfVElNRSkoDQo+ID4gPiArICBJTiAgICAgIEVGSV9SRVNUX0VYX1BST1RPQ09M ICAgKlRoaXMsDQo+ID4gPiArICBPVVQgICAgIEVGSV9USU1FICAgICAgICAgICAgICAgKlRpbWUN Cj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBUaGlzIGZ1bmN0aW9u IHJldHVybnMgdGhlIGluZm9ybWF0aW9uIG9mIFJFU1Qgc2VydmljZSBwcm92aWRlZCBieQ0KPiB0 aGlzIEVGSQ0KPiA+ID4gUkVTVCBFWCBkcml2ZXIgaW5zdGFuY2UuDQo+ID4gPiArDQo+ID4gPiAr ICBUaGUgaW5mb3JtYXRpb24gc3VjaCBhcyB0aGUgdHlwZSBvZiBSRVNUIHNlcnZpY2UgYW5kIHRo ZSBhY2Nlc3MNCj4gPiA+ICsgbW9kZQ0KPiA+IG9mDQo+ID4gPiBSRVNUIEVYIGRyaXZlciBpbnN0 YW5jZQ0KPiA+ID4gKyAgKEluLWJhbmQgb3IgT3V0LW9mLWJhbmQpIGFyZSBkZXNjcmliZWQgaW4N Cj4gPiA+ICsgRUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPDQo+ID4gPiBzdHJ1Y3R1cmUuIEZvciB0 aGUgdmVuZG9yLXNwZWNpZmljDQo+ID4gPiArICBSRVNUIHNlcnZpY2UsIHZlbmRvci1zcGVjaWZp YyBSRVNUIHNlcnZpY2UgaW5mb3JtYXRpb24gaXMNCj4gPiA+ICsgcmV0dXJuZWQgaW4NCj4gPiA+ IFZlbmRvclNwZWNpZmNEYXRhLg0KPiA+ID4gKyAgUkVTVCBFWCBkcml2ZXIgZGVzaWduZXIgaXMg d2VsbCBrbm93IHdoYXQgUkVTVCBzZXJ2aWNlIHRoaXMgUkVTVA0KPiA+ID4gKyBFWA0KPiA+IGRy aXZlcg0KPiA+ID4gaW5zdGFuY2UgaW50ZW5kcyB0bw0KPiA+ID4gKyAgY29tbXVuaWNhdGUgd2l0 aC4gVGhlIGRlc2lnbmVyIGFsc28gd2VsbCBrbm93IHRoaXMgZHJpdmVyDQo+ID4gPiArIGluc3Rh bmNlIGlzDQo+ID4gdXNlZA0KPiA+ID4gdG8gdGFsayB0byBCTUMgdGhyb3VnaA0KPiA+ID4gKyAg c3BlY2lmaWMgcGxhdGZvcm0gbWVjaGFuaXNtIG9yIHRhbGsgdG8gUkVTVCBzZXJ2ZXIgdGhyb3Vn aCBVRUZJDQo+ID4gPiArIEhUVFANCj4gPiA+IHByb3RvY29sLiBSRVNUIEVYIGRyaXZlciBpcw0K PiA+ID4gKyAgcmVzcG9uc2libGUgdG8gZmlsbCB1cCB0aGUgY29ycmVjdCBpbmZvcm1hdGlvbiBp bg0KPiA+ID4gRUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPLiBFRklfUkVTVF9FWF9TRVJWSUNFX0lO Rk8NCj4gPiA+ICsgIGlzIHJlZmVycmVkIGJ5IEVGSSBSRVNUIGNsaWVudHMgdG8gcGlja3VwIHRo ZSBwcm9wZXIgRUZJIFJFU1QgRVgNCj4gZHJpdmVyDQo+ID4gPiBpbnN0YW5jZSB0byBnZXQgYW5k IHNldCByZXNvdXJjZS4NCj4gPiA+ICsgIEdldFNlcnZpY2UoKSBpcyBhIGJhc2ljIGFuZCBtYW5k YXRvcnkgZnVuY3Rpb24gd2hpY2ggbXVzdCBiZSBhYmxlDQo+ID4gPiArIHRvDQo+ID4gdXNlDQo+ ID4gPiBldmVuIENvbmZpZ3VyZSgpIGlzIG5vdCBpbnZva2VkDQo+ID4gPiArICBpbiBwcmV2aW91 c2x5Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtW2luXSAgVGhpcyAgICAgICAgICAgICAgICBQ b2ludGVyIHRvDQo+ID4gRUZJX1JFU1RfRVhfUFJPVE9DT0wgaW5zdGFuY2UgZm9yIGENCj4gPiA+ IHBhcnRpY3VsYXINCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVT VCBzZXJ2aWNlLg0KPiA+ID4gKyAgQHBhcmFtW291dF0gUmVzdEV4U2VydmljZUluZm8gICBQb2lu dGVyIHRvIHJlY2VpdmUgYSBwb2ludGVyIHRvDQo+ID4gPiBFRklfUkVTVF9FWF9TRVJWSUNFX0lO Rk8gc3RydWN0dXJlLiBUaGUNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9ybWF0IG9mDQo+ID4gRUZJX1JFU1RfRVhfU0VSVklDRV9JTkZPIGlzIHZlcnNpb24NCj4g PiA+IGNvbnRyb2xsZWQgZm9yIHRoZSBmdXR1cmUNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXh0ZW5zaW9uLiBUaGUgdmVyc2lvbiBvZg0KPiA+IEVGSV9SRVNUX0VY X1NFUlZJQ0VfSU5GTw0KPiA+ID4gc3RydWN0dXJlIGlzIHJldHVybmVkDQo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHRoZSBoZWFkZXIgd2l0aGluIHRoaXMNCj4g PiBzdHJ1Y3R1cmUuIEVGSSBSRVNUIGNsaWVudCByZWZlcnMgdG8NCj4gPiA+IHRoZSBjb3JyZWN0 DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCBvZiBzdHJ1 Y3R1cmUgYWNjb3JkaW5nIHRvDQo+ID4gdGhlIHZlcnNpb24gbnVtYmVyLiBUaGUNCj4gPiA+IHBv aW50ZXIgdG8NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1JF U1RfRVhfU0VSVklDRV9JTkZPIGlzDQo+ID4gYSBtZW1vcnkgYmxvY2sgYWxsb2NhdGVkDQo+ID4g PiBieSBFRkkgUkVTVCBFWCBkcml2ZXINCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW5zdGFuY2UuIFRoYXQgaXMgY2FsbGVyJ3MNCj4gPiByZXNwb25zaWJpbGl0eSB0 byBmcmVlIHRoaXMgbWVtb3J5DQo+ID4gPiB3aGVuIHRoaXMNCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlIGlzIG5vIGxvbmdlciBuZWVkZWQuDQo+ID4g UmVmZXIgdG8gUmVsYXRlZCBEZWZpbml0aW9ucw0KPiA+ID4gYmVsb3cgZm9yIHRoZQ0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9ucyBvZg0KPiA+IEVG SV9SRVNUX0VYX1NFUlZJQ0VfSU5GTyBzdHJ1Y3R1cmUuDQo+ID4gPiArDQo+ID4gPiArICBAcmV0 dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgIEVGSV9SRVNUX0VYX1NFUlZJQ0VfSU5GTyBpcw0K PiA+IHJldHVybmVkIGluDQo+ID4gPiBSZXN0RXhTZXJ2aWNlSW5mby4gVGhpcyBmdW5jdGlvbg0K PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBub3Qgc3VwcG9ydGVk IGluIHRoaXMgUkVTVCBFWA0KPiA+IFByb3RvY29sIGRyaXZlciBpbnN0YW5jZS4NCj4gPiA+ICsg IEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBub3Qgc3Vw cG9ydGVkIGluDQo+ID4gdGhpcyBSRVNUDQo+ID4gPiBFWCBQcm90b2NvbCBkcml2ZXIgaW5zdGFu Y2UuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFU VVMNCj4gPiA+ICsoRUZJQVBJICpFRklfUkVTVF9FWF9HRVRfU0VSVklDRSkoDQo+ID4gPiArICBJ TiAgIEVGSV9SRVNUX0VYX1BST1RPQ09MICAgICAgKlRoaXMsDQo+ID4gPiArICBPVVQgIEVGSV9S RVNUX0VYX1NFUlZJQ0VfSU5GTyAgKipSZXN0RXhTZXJ2aWNlSW5mbw0KPiA+ID4gKyAgKTsNCj4g PiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBvcGVyYXRp b25hbCBjb25maWd1cmF0aW9uIG9mIGN1cnJlbnQgRUZJDQo+ID4gPiArUkVTVA0KPiBFWA0KPiA+ IGNoaWxkDQo+ID4gPiBpbnN0YW5jZS4NCj4gPiA+ICsNCj4gPiA+ICsgIFRoaXMgZnVuY3Rpb24g cmV0dXJucyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIG9mIEVGSSBSRVNUIEVYDQo+ID4gPiAr IGNoaWxkDQo+ID4gaW5zdGFuY2UuDQo+ID4gPiBUaGUgZm9ybWF0IG9mDQo+ID4gPiArICBvcGVy YXRpb25hbCBjb25maWd1cmF0aW9uIGRlcGVuZHMgb24gdGhlIGltcGxlbWVudGF0aW9uIG9mIEVG SQ0KPiA+ID4gKyBSRVNUDQo+IEVYDQo+ID4gPiBkcml2ZXIgaW5zdGFuY2UuIEZvcg0KPiA+ID4g KyAgZXhhbXBsZSwgSFRUUC1hd2FyZSBFRkkgUkVTVCBFWCBkcml2ZXIgaW5zdGFuY2UgdXNlcyBF RkkgSFRUUA0KPiA+IHByb3RvY29sIGFzDQo+ID4gPiB0aGUgdW5keWluZyBwcm90b2NvbA0KPiA+ ID4gKyAgdG8gY29tbXVuaWNhdGUgd2l0aCBSRVNUIHNlcnZpY2UuIEluIHRoaXMgY2FzZSwgdGhl IHR5cGUgb2YNCj4gY29uZmlndXJhdGlvbg0KPiA+IGlzDQo+ID4gPiArICBFRklfUkVTVF9FWF9D T05GSUdfVFlQRV9IVFRQIHJldHVybmVkIGZyb20gR2V0U2VydmljZSgpLg0KPiA+ID4gRUZJX0hU VFBfQ09ORklHX0RBVEEgaXMgdXNlZCBhcyBFRkkgUkVTVA0KPiA+ID4gKyAgRVggY29uZmlndXJh dGlvbiBmb3JtYXQgYW5kIHJldHVybmVkIHRvIEVGSSBSRVNUIGNsaWVudC4gVXNlciBoYXMNCj4g PiA+ICsgdG8NCj4gdHlwZQ0KPiA+ID4gY2FzdCBSZXN0RXhDb25maWdEYXRhDQo+ID4gPiArICB0 byBFRklfSFRUUF9DT05GSUdfREFUQS4gRm9yIHRob3NlIG5vbiBIVFRQLWF3YXJlIFJFU1QgRVgg ZHJpdmVyDQo+ID4gPiBpbnN0YW5jZXMsIHRoZSB0eXBlIG9mIGNvbmZpZ3VyYXRpb24NCj4gPiA+ ICsgIGlzIEVGSV9SRVNUX0VYX0NPTkZJR19UWVBFX1VOU1BFQ0lGSUMgcmV0dXJuZWQgZnJvbQ0K PiBHZXRTZXJ2aWNlKCkuDQo+ID4gSW4NCj4gPiA+IHRoaXMgY2FzZSwgdGhlIGZvcm1hdCBvZg0K PiA+ID4gKyAgcmV0dXJuaW5nIGRhdGEgY291bGQgYmUgbm9uIGluZHVzdHJpYWwuIEluc3RlYWQs IHRoZSBmb3JtYXQgb2YNCj4gPiBjb25maWd1cmF0aW9uDQo+ID4gPiBkYXRhIGlzIHN5c3RlbS9w bGF0Zm9ybQ0KPiA+ID4gKyAgc3BlY2lmaWMgZGVmaW5pdGlvbiBzdWNoIGFzIEJNQyBtZWNoYW5p c20gdXNlZCBpbiBFRkkgUkVTVCBFWA0KPiA+ID4gKyBkcml2ZXINCj4gPiA+IGluc3RhbmNlLiBF RkkgUkVTVCBjbGllbnQgYW5kDQo+ID4gPiArICBFRkkgUkVTVCBFWCBkcml2ZXIgaW5zdGFuY2Ug aGF2ZSB0byByZWZlciB0byB0aGUgc3BlY2lmaWMgc3lzdGVtDQo+ID4gL3BsYXRmb3JtDQo+ID4g PiBzcGVjIHdoaWNoIGlzIG91dCBvZiBVRUZJIHNjb3BlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBh cmFtW2luXSAgVGhpcyAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZQ0KPiA+IEVGSV9SRVNUX0VY X1BST1RPQ09MIGluc3RhbmNlLg0KPiA+ID4gKyAgQHBhcmFtW291dF0gUmVzdEV4Q29uZmlnRGF0 YSAgICBQb2ludGVyIHRvIHJlY2VpdmUgYSBwb2ludGVyIHRvDQo+ID4gPiBFRklfUkVTVF9FWF9D T05GSUdfREFUQS4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhl IG1lbW9yeSBhbGxvY2F0ZWQgZm9yDQo+ID4gY29uZmlndXJhdGlvbiBkYXRhIHNob3VsZCBiZQ0K PiA+ID4gZnJlZWQNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkg Y2FsbGVyLiBTZWUgUmVsYXRlZA0KPiA+ID4gKyBEZWZpbml0aW9ucw0KPiA+IGZvciB0aGUgZGV0 YWlscy4NCj4gPiA+ICsNCj4gPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg RUZJX1JFU1RfRVhfQ09ORklHX0RBVEEgaXMNCj4gPiByZXR1cm5lZCBpbg0KPiA+ID4gc3VjY2Vz c2Z1bGx5Lg0KPiA+ID4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgICBUaGlzIGZ1 bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4NCj4gPiB0aGlzIFJFU1QNCj4gPiA+IEVYIFByb3Rv Y29sIGRyaXZlciBpbnN0YW5jZS4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX05PVF9SRUFEWSAgICAg ICAgICAgVGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBpbnN0YW5jZQ0KPiA+IGlzIG5vdCBzZXQN Cj4gPiA+IHlldC4gQ29uZmlndXJlKCkgbXVzdCBiZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBleGVjdXRlZCBhbmQgcmV0dXJucw0KPiA+IHN1Y2Nlc3NmdWxseSBw cmlvciB0byBpbnZva2UgdGhpcw0KPiA+ID4gZnVuY3Rpb24uDQo+ID4gPiArDQo+ID4gPiArKiov DQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+ICsoRUZJQVBJICpFRklf UkVTVF9FWF9HRVRfTU9ERV9EQVRBKSgNCj4gPiA+ICsgIElOICBFRklfUkVTVF9FWF9QUk9UT0NP TCAgKlRoaXMsDQo+ID4gPiArICBPVVQgRUZJX1JFU1RfRVhfQ09ORklHX0RBVEEgKlJlc3RFeENv bmZpZ0RhdGENCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29uZmlndXJlIEVGSSBSRVNUIEVYIGNoaWxkIGluc3RhbmNl Lg0KPiA+ID4gKw0KPiA+ID4gKyAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0 aGUgc2V0dGluZyBvZiB1bmRlcmx5aW5nDQo+ID4gPiArIHByb3RvY29sDQo+IG9mDQo+ID4gUkVT VA0KPiA+ID4gRVggY2hpbGQNCj4gPiA+ICsgIGluc3RhbmNlLiBUaGUgdHlwZSBvZiBjb25maWd1 cmF0aW9uIGlzIGFjY29yZGluZyB0byB0aGUNCj4gaW1wbGVtZW50YXRpb24gb2YNCj4gPiA+IEVG SSBSRVNUIEVYDQo+ID4gPiArICBkcml2ZXIgaW5zdGFuY2UuIEZvciBleGFtcGxlLCBIVFRQLWF3 YXJlIEVGSSBSRVNUIEVYIGRyaXZlcg0KPiA+ID4gKyBpbnN0YW5jZQ0KPiA+IHVzZXMNCj4gPiA+ IEVGSSBIVFRQIHByb3RvY29sDQo+ID4gPiArICBhcyB0aGUgdW5keWluZyBwcm90b2NvbCB0byBj b21tdW5pY2F0ZSB3aXRoIFJFU1Qgc2VydmljZS4gVGhlDQo+ID4gPiArIHR5cGUgb2YNCj4gPiA+ IGNvbmZpZ3VyYXRpb24gaXMNCj4gPiA+ICsgIEVGSV9SRVNUX0VYX0NPTkZJR19UWVBFX0hUVFAg YW5kIFJlc3RFeENvbmZpZ0RhdGEgaXMgdGhlIHNhbWUNCj4gPiA+IGZvcm1hdCB3aXRoIEVGSV9I VFRQX0NPTkZJR19EQVRBLg0KPiA+ID4gKyAgQWtpbiB0byBIVFRQIGNvbmZpZ3VyYXRpb24sIFJF U1QgRVggY2hpbGQgaW5zdGFuY2UgY2FuIGJlDQo+ID4gPiArIGNvbmZpZ3VyZQ0KPiB0bw0KPiA+ IHVzZQ0KPiA+ID4gZGlmZmVyZW50IEhUVFANCj4gPiA+ICsgIGxvY2FsIGFjY2VzcyBwb2ludCBm b3IgdGhlIGRhdGEgdHJhbnNtaXNzaW9uLiBNdWx0aXBsZSBSRVNUDQo+ID4gPiArIGNsaWVudHMN Cj4gbWF5DQo+ID4gdXNlDQo+ID4gPiBkaWZmZXJlbnQNCj4gPiA+ICsgIGNvbmZpZ3VyYXRpb24g b2YgSFRUUCB0byBkaXN0aW5ndWlzaCB0aGVtc2VsdmVzLCBzdWNoIGFzIHRvIHVzZQ0KPiA+ID4g KyB0aGUNCj4gPiA+IGRpZmZlcmVudCBUQ1AgcG9ydC4NCj4gPiA+ICsgIEZvciB0aG9zZSBub24g SFRUUC1hd2FyZSBSRVNUIEVYIGRyaXZlciBpbnN0YW5jZSwgdGhlIHR5cGUgb2YNCj4gPiA+IGNv bmZpZ3VyYXRpb24gaXMNCj4gPiA+ICsgIEVGSV9SRVNUX0VYX0NPTkZJR19UWVBFX1VOU1BFQ0lG SUMuIFJlc3RFeENvbmZpZ0RhdGEgcmVmZXJzIHRvDQo+ID4gdGhlDQo+ID4gPiBub24gaW5kdXN0 cmlhbCBzdGFuZGFyZC4NCj4gPiA+ICsgIEluc3RlYWQsIHRoZSBmb3JtYXQgb2YgY29uZmlndXJh dGlvbiBkYXRhIGlzIHN5c3RlbS9wbGF0Zm9ybQ0KPiA+ID4gKyBzcGVjaWZpYw0KPiA+ID4gZGVm aW5pdGlvbiBzdWNoIGFzIEJNQy4NCj4gPiA+ICsgIEluIHRoaXMgY2FzZSwgRUZJIFJFU1QgY2xp ZW50IGFuZCBFRkkgUkVTVCBFWCBkcml2ZXIgaW5zdGFuY2UNCj4gPiA+ICsgaGF2ZSB0bw0KPiBy ZWZlcg0KPiA+IHRvDQo+ID4gPiB0aGUgc3BlY2lmaWMNCj4gPiA+ICsgIHN5c3RlbS9wbGF0Zm9y bSBzcGVjIHdoaWNoIGlzIG91dCBvZiB0aGUgVUVGSSBzY29wZS4gQmVzaWRlcw0KPiA+ID4gR2V0 U2VydmljZSgpZnVuY3Rpb24sIG5vIG90aGVyDQo+ID4gPiArICBFRkkgUkVTVCBFWCBmdW5jdGlv bnMgY2FuIGJlIGV4ZWN1dGVkIGJ5IHRoaXMgaW5zdGFuY2UgdW50aWwNCj4gQ29uZmlndXJlKClp cw0KPiA+ID4gZXhlY3V0ZWQgYW5kIHJldHVybnMNCj4gPiA+ICsgIHN1Y2Nlc3NmdWxseS4gQWxs IG90aGVyIGZ1bmN0aW9ucyBtdXN0IHJldHVybnMgRUZJX05PVF9SRUFEWSBpZg0KPiA+ID4gKyB0 aGlzDQo+ID4gPiBpbnN0YW5jZSBpcyBub3QgY29uZmlndXJlZA0KPiA+ID4gKyAgeWV0LiBTZXQg UmVzdEV4Q29uZmlnRGF0YSB0byBOVUxMIG1lYW5zIHRvIHB1dCBFRkkgUkVTVCBFWCBjaGlsZA0K PiA+IGluc3RhbmNlDQo+ID4gPiBpbnRvIHRoZSB1bmNvbmZpZ3VyZWQNCj4gPiA+ICsgIHN0YXRl Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtW2luXSAgVGhpcyAgICAgICAgICAgICAgICBUaGlz IGlzIHRoZQ0KPiA+IEVGSV9SRVNUX0VYX1BST1RPQ09MIGluc3RhbmNlLg0KPiA+ID4gKyAgQHBh cmFtW2luXSAgUmVzdEV4Q29uZmlnRGF0YSAgICBQb2ludGVyIHRvDQo+ID4gRUZJX1JFU1RfRVhf Q09ORklHX0RBVEEuDQo+ID4gPiBTZWUgUmVsYXRlZCBEZWZpbml0aW9ucyBpbg0KPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRNb2RlRGF0YSgpIHByb3RvY29sDQo+ ID4gaW50ZXJmYWNlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgICBFRklfUkVTVF9FWF9DT05GSUdfREFUQSBpcw0KPiA+IHNldCBpbg0KPiA+ID4gc3Vj Y2Vzc2Z1bGx5Lg0KPiA+ID4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgICBDb25m aWd1cmF0aW9uIGZvciB0aGlzIFJFU1QgRVgNCj4gPiBjaGlsZA0KPiA+ID4gaW5zdGFuY2UgaXMg ZmFpbGVkIHdpdGggdGhlIGdpdmVuDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVGSV9SRVNUX0VYX0NPTkZJR19EQVRBLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfVU5T VVBQT1JURUQgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4NCj4gPiB0 aGlzIFJFU1QNCj4gPiA+IEVYIFByb3RvY29sIGRyaXZlciBpbnN0YW5jZS4NCj4gPiA+ICsNCj4g PiA+ICsqKi8NCj4gPiA+ICt0eXBlZGVmDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gKyhFRklB UEkgKkVGSV9SRVNUX0VYX0NPTkZJR1VSRSkoDQo+ID4gPiArICBJTiAgRUZJX1JFU1RfRVhfUFJP VE9DT0wgICpUaGlzLA0KPiA+ID4gKyAgSU4gIEVGSV9SRVNUX0VYX0NPTkZJR19EQVRBIFJlc3RF eENvbmZpZ0RhdGENCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBU aGlzIGZ1bmN0aW9uIHNlbmRzIFJFU1QgcmVxdWVzdCB0byBSRVNUIHNlcnZpY2UgYW5kIHNpZ25h bA0KPiA+ID4gK2NhbGxlcidzDQo+ID4gZXZlbnQNCj4gPiA+IGFzeW5jaHJvbm91c2x5IHdoZW4N Cj4gPiA+ICsgIHRoZSBmaW5hbCByZXNwb25zZSBpcyByZWNlaXZlZCBieSBSRVNUIEVYIFByb3Rv Y29sIGRyaXZlciBpbnN0YW5jZS4NCj4gPiA+ICsNCj4gPiA+ICsgIFRoZSBlc3NlbnRpYWwgZGVz aWduIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gaGFuZGxlIGFzeW5jaHJvbm91cw0KPiA+ID4gc2Vu ZC9yZWNlaXZlIGltcGxpY2l0bHkgYWNjb3JkaW5nDQo+ID4gPiArICB0byBSRVNUIHNlcnZpY2Ug YXN5bmNocm9ub3VzIHJlcXVlc3QgbWVjaGFuaXNtLiBDYWxsZXIgd2lsbCBnZXQNCj4gPiA+ICsg dGhlDQo+ID4gPiBub3RpZmljYXRpb24gb25jZSB0aGUgcmVzcG9uc2UNCj4gPiA+ICsgIGlzIHJl dHVybmVkIGZyb20gUkVTVCBzZXJ2aWNlLg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtW2luXSAg VGhpcyAgICAgICAgICAgICAgICAgIFRoaXMgaXMgdGhlDQo+ID4gRUZJX1JFU1RfRVhfUFJPVE9D T0wgaW5zdGFuY2UuDQo+ID4gPiArICBAcGFyYW1baW5dICBSZXF1ZXN0TWVzc2FnZSAgICAgICAg VGhpcyBpcyB0aGUgSFRUUCByZXF1ZXN0DQo+ID4gbWVzc2FnZSBzZW50DQo+ID4gPiB0byBSRVNU IHNlcnZpY2UuIFNldCBSZXF1ZXN0TWVzc2FnZQ0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRvIE5VTEwgdG8gY2FuY2VsIHRoZQ0KPiA+IHByZXZpb3VzIGFzeW5j aHJvbm91cyByZXF1ZXN0DQo+ID4gPiBhc3NvY2lhdGVkIHdpdGggdGhlDQo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBSZXN0RXhUb2tlbi4N Cj4gPiBTZWUgZGVzY3JpcHRpb25zIGZvciB0aGUNCj4gPiA+IGRldGFpbHMuDQo+ID4gPiArICBA cGFyYW1baW5dICBSZXN0RXhUb2tlbiAgICAgICAgICAgUkVTVCBFWCB0b2tlbiB3aGljaCBSRVNU IEVYDQo+ID4gUHJvdG9jb2wNCj4gPiA+IGluc3RhbmNlIHVzZXMgdG8gbm90aWZ5IFJFU1QgY2xp ZW50DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHN0YXR1 cyBvZiByZXNwb25zZSBvZg0KPiA+IGFzeW5jaHJvbm91cyBSRVNUIHJlcXVlc3QuIFNlZQ0KPiA+ ID4gcmVsYXRlZCBkZWZpbml0aW9uDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb2YgRUZJX1JFU1RfRVhfVE9LRU4uDQo+ID4gPiArICBAcGFyYW1baW5dICBUaW1l T3V0SW5NaWxsaVNlY29uZHMgVGhlIHBvaW50ZXIgdG8gdGhlIHRpbWVvdXQgaW4NCj4gPiA+IG1p bGxpc2Vjb25kcyB3aGljaCBSRVNUIEVYIFByb3RvY29sIGRyaXZlcg0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHJlZmVycyBhcyB0aGUNCj4gPiBk dXJhdGlvbiB0byBkcm9wIGFzeW5jaHJvbm91cyBSRVNUDQo+ID4gPiByZXF1ZXN0LiBOVUxMDQo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlciBtZWFucyBu byB0aW1lb3V0IGZvcg0KPiA+IHRoaXMgUkVTVCByZXF1ZXN0LiBSRVNUIEVYDQo+ID4gPiBQcm90 b2NvbCBkcml2ZXINCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aWduYWxzIGNhbGxlcidzIGV2ZW50IHdpdGgNCj4gPiBFRklfU1RBVFVTIHNldCB0byBFRklfVElN RU9VVA0KPiA+ID4gaW4gUmVzdEV4VG9rZW4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBSRVNUIEVYIFByb3RvY29sIGNhbid0IGdldA0KPiA+IHRoZSByZXNw b25zZSBmcm9tIFJFU1QNCj4gPiA+IHNlcnZpY2Ugd2l0aGluDQo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGltZU91dEluTWlsbGlTZWNvbmRzLg0KPiA+ID4gKw0K PiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgIEFzeW5jaHJvbm91cyBS RVNUIHJlcXVlc3QgaXMNCj4gPiBlc3RhYmxpc2hlZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX1VO U1VQUE9SVEVEICAgICAgICAgICBUaGlzIFJFU1QgRVggUHJvdG9jb2wgZHJpdmVyDQo+ID4gaW5z dGFuY2UNCj4gPiA+IGRvZXNuJ3Qgc3VwcG9ydCBhc3luY2hyb25vdXMgcmVxdWVzdC4NCj4gPiA+ ICsgIEByZXR2YWwgRUZJX1RJTUVPVVQgICAgICAgICAgICAgICBBc3luY2hyb25vdXMgUkVTVCBy ZXF1ZXN0IGlzDQo+ID4gbm90DQo+ID4gPiBlc3RhYmxpc2hlZCBhbmQgdGltZW91dCBpcyBleHBp cmVkLg0KPiA+ID4gKyAgQHJldHZhbCBFRklfQUJPUlQgICAgICAgICAgICAgICAgIFByZXZpb3Vz IGFzeW5jaHJvbm91cyBSRVNUDQo+ID4gcmVxdWVzdCBoYXMgYmVlbg0KPiA+ID4gY2FuY2VsZWQu DQo+ID4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJST1IgICAgICAgICAgT3RoZXJ3aXNlLCBy ZXR1cm5zDQo+ID4gRUZJX0RFVklDRV9FUlJPUg0KPiA+ID4gZm9yIG90aGVyIGVycm9ycyBhY2Nv cmRpbmcgdG8gSFRUUCBTdGF0dXMgQ29kZS4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX05PVF9SRUFE WSAgICAgICAgICAgICBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGlzDQo+ID4gaW5zdGFuY2UgaXMg bm90IHNldA0KPiA+ID4geWV0LiBDb25maWd1cmUoKSBtdXN0IGJlIGV4ZWN1dGVkDQo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHJldHVybnMgc3VjY2Vzc2Z1 bGx5IHByaW9yDQo+ID4gdG8gaW52b2tlIHRoaXMgZnVuY3Rpb24uDQo+ID4gPiArDQo+ID4gPiAr KiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9TVEFUVVMNCj4gPiA+ICsoRUZJQVBJICpF RklfUkVTVF9FWF9BU1lOQ19TRU5EX1JFQ0VJVkUpKA0KPiA+ID4gKyAgSU4gICAgICBFRklfUkVT VF9FWF9QUk9UT0NPTCAgICpUaGlzLA0KPiA+ID4gKyAgSU4gICAgICBFRklfSFRUUF9NRVNTQUdF ICAgICAgICpSZXF1ZXN0TWVzc2FnZSBPUFRJT05BTCwNCj4gPiA+ICsgIElOICAgICAgRUZJX1JF U1RfRVhfVE9LRU4gICAgICAqUmVzdEV4VG9rZW4sDQo+ID4gPiArICBJTiAgICAgIFVJTlROICAg ICAgICAgICAgICAgICAgKlRpbWVPdXRJbk1pbGxpU2Vjb25kcw0KPiA+IE9QVElPTkFMDQo+ID4g PiArICApOw0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgVGhpcyBmdW5jdGlvbiBzZW5k cyBSRVNUIHJlcXVlc3QgdG8gYSBSRVNUIEV2ZW50IHNlcnZpY2UgYW5kDQo+ID4gPiArc2lnbmFs cw0KPiA+IGNhbGxlcidzDQo+ID4gPiBldmVudA0KPiA+ID4gKyAgdG9rZW4gYXN5bmNocm9ub3Vz bHkgd2hlbiB0aGUgVVJJIHJlc291cmNlIGNoYW5nZSBldmVudCBpcw0KPiA+ID4gKyByZWNlaXZl ZA0KPiA+IGJ5DQo+ID4gPiBSRVNUIEVYDQo+ID4gPiArICBQcm90b2NvbCBkcml2ZXIgaW5zdGFu Y2UuDQo+ID4gPiArDQo+ID4gPiArICBUaGUgZXNzZW50aWFsIGRlc2lnbiBvZiB0aGlzIGZ1bmN0 aW9uIGlzIHRvIG1vbml0b3IgZXZlbnQNCj4gPiA+ICsgaW1wbGljaXRseQ0KPiA+IGFjY29yZGlu Zw0KPiA+ID4gdG8NCj4gPiA+ICsgIFJFU1Qgc2VydmljZSBldmVudCBzZXJ2aWNlIG1lY2hhbmlz bS4gQ2FsbGVyIHdpbGwgZ2V0IHRoZQ0KPiBub3RpZmljYXRpb24gaWYNCj4gPiA+IGNlcnRhaW4N Cj4gPiA+ICsgIHJlc291cmNlIGlzIGNoYW5nZWQuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1b aW5dICBUaGlzICAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUNCj4gPiBFRklfUkVTVF9FWF9Q Uk9UT0NPTCBpbnN0YW5jZS4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gIFJlcXVlc3RNZXNzYWdlICAg ICAgICBUaGlzIGlzIHRoZSBIVFRQIHJlcXVlc3QNCj4gPiBtZXNzYWdlIHNlbnQNCj4gPiA+IHRv IFJFU1Qgc2VydmljZS4gU2V0IFJlcXVlc3RNZXNzYWdlDQo+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdG8gTlVMTCB0byBjYW5jZWwgdGhlDQo+ID4gcHJldmlvdXMg ZXZlbnQgc2VydmljZSBhc3NvY2lhdGVkDQo+ID4gPiB3aXRoIHRoZSBjb3JyZXNwb25kaW5nDQo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdEV4VG9rZW4uIFNl ZQ0KPiA+IGRlc2NyaXB0aW9ucyBmb3IgdGhlIGRldGFpbHMuDQo+ID4gPiArICBAcGFyYW1baW5d ICBSZXN0RXhUb2tlbiAgICAgICAgICAgUkVTVCBFWCB0b2tlbiB3aGljaCBSRVNUIEVYDQo+ID4g UHJvdG9jb2wNCj4gPiA+IGRyaXZlciBpbnN0YW5jZSB1c2VzIHRvIG5vdGlmeSBSRVNUIGNsaWVu dA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBVUkkgcmVz b3VyY2Ugd2hpY2gNCj4gPiBtb25pdG9yZWQgYnkgUkVTVCBjbGllbnQgaGFzDQo+ID4gPiBiZWVu IGNoYW5nZWQuIFNlZSB0aGUgcmVsYXRlZA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlZmluaXRpb24gb2YNCj4gPiBFRklfUkVTVF9FWF9UT0tFTiBpbg0KPiA+ ID4gRUZJX1JFU1RfRVhfUFJPVE9DT0wuQXN5bmNTZW5kUmVjZWl2ZSgpLg0KPiA+ID4gKw0KPiA+ ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgIEFzeW5jaHJvbm91cyBSRVNU IHJlcXVlc3QgaXMNCj4gPiBlc3RhYmxpc2hlZC4NCj4gPiA+ICsgIEByZXR2YWwgRUZJX1VOU1VQ UE9SVEVEICAgICAgICAgICBUaGlzIFJFU1QgRVggUHJvdG9jb2wgZHJpdmVyDQo+ID4gaW5zdGFu Y2UNCj4gPiA+IGRvZXNuJ3Qgc3VwcG9ydCBhc3luY2hyb25vdXMgcmVxdWVzdC4NCj4gPiA+ICsg IEByZXR2YWwgRUZJX0FCT1JUICAgICAgICAgICAgICAgICBQcmV2aW91cyBhc3luY2hyb25vdXMg UkVTVA0KPiA+IHJlcXVlc3QgaGFzIGJlZW4NCj4gPiA+IGNhbmNlbGVkIG9yIGV2ZW50IHN1YnNj cmlwdGlvbiBoYXMgYmVlbg0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlbGV0ZSBmcm9tIHNlcnZpY2UuDQo+ID4gPiArICBAcmV0dmFsIEVGSV9ERVZJQ0VfRVJS T1IgICAgICAgICAgT3RoZXJ3aXNlLCByZXR1cm5zDQo+ID4gRUZJX0RFVklDRV9FUlJPUg0KPiA+ ID4gZm9yIG90aGVyIGVycm9ycyBhY2NvcmRpbmcgdG8gSFRUUCBTdGF0dXMgQ29kZS4NCj4gPiA+ ICsgIEByZXR2YWwgRUZJX05PVF9SRUFEWSAgICAgICAgICAgICBUaGUgY29uZmlndXJhdGlvbiBv ZiB0aGlzDQo+ID4gaW5zdGFuY2UgaXMgbm90IHNldA0KPiA+ID4geWV0LiBDb25maWd1cmUoKSBt dXN0IGJlIGV4ZWN1dGVkDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIHJldHVybnMgc3VjY2Vzc2Z1bGx5IHByaW9yDQo+ID4gdG8gaW52b2tlIHRoaXMgZnVu Y3Rpb24uDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArdHlwZWRlZg0KPiA+ID4gK0VGSV9T VEFUVVMNCj4gPiA+ICsoRUZJQVBJICpFRklfUkVTVF9FWF9FVkVOVF9TRVJWSUNFKSgNCj4gPiA+ ICsgIElOICAgICAgRUZJX1JFU1RfRVhfUFJPVE9DT0wgICAqVGhpcywNCj4gPiA+ICsgIElOICAg ICAgRUZJX0hUVFBfTUVTU0FHRSAgICAgICAqUmVxdWVzdE1lc3NhZ2UgT1BUSU9OQUwsDQo+ID4g PiArICBJTiAgICAgIEVGSV9SRVNUX0VYX1RPS0VOICAgICAgKlJlc3RFeFRva2VuDQo+ID4gPiAr KTsNCj4gPiA+ICsNCj4gPiA+ICsvLy8NCj4gPiA+ICsvLy8gRUZJIFJFU1QoRVgpIHByb3RvY29s cyBhcmUgZGVzaWduZWQgdG8gc3VwcG9ydCBSRVNUDQo+ID4gPiArY29tbXVuaWNhdGlvbg0KPiA+ ID4gYmV0d2VlbiBFRkkgUkVTVCBjbGllbnQNCj4gPiA+ICsvLy8gYXBwbGljYXRpb25zL2RyaXZl cnMgYW5kIFJFU1Qgc2VydmljZXMuIEVGSSBSRVNUIGNsaWVudCB0b29sDQo+ID4gPiArdXNlcw0K PiBFRkkNCj4gPiA+IFJFU1QoRVgpIHByb3RvY29scw0KPiA+ID4gKy8vLyB0byBzZW5kL3JlY2Vp dmUgcmVzb3VyY2VzIHRvL2Zyb20gUkVTVCBzZXJ2aWNlIHRvIG1hbmFnZQ0KPiA+ID4gK3N5c3Rl bXMsDQo+ID4gPiBjb25maWd1cmUgc3lzdGVtcyBvcg0KPiA+ID4gKy8vLyBtYW5pcHVsYXRlIHJl c291cmNlcyBvbiBSRVNUIHNlcnZpY2UuIER1ZSB0byBIVFRQIHByb3RvY29sIGlzDQo+ID4gPiBj b21tb25seSB1c2VkIHRvIGNvbW11bmljYXRlDQo+ID4gPiArLy8vIHdpdGggUkVTVCBzZXJ2aWNl IGluIHByYWN0aWNlLCBFRkkgUkVTVChFWCkgcHJvdG9jb2xzIGFkb3B0DQo+ID4gPiArSFRUUCBh cw0KPiB0aGUNCj4gPiA+IG1lc3NhZ2UgZm9ybWF0IHRvDQo+ID4gPiArLy8vIHNlbmQgYW5kIHJl Y2VpdmUgUkVTVCBzZXJ2aWNlIHJlc291cmNlLiBFRkkgUkVTVChFWCkgZHJpdmVyDQo+IGluc3Rh bmNlDQo+ID4gPiBhYnN0cmFjdHMgRUZJIFJFU1QNCj4gPiA+ICsvLy8gY2xpZW50IGZ1bmN0aW9u YWxpdHkgYW5kIHByb3ZpZGVzIHVuZGVybHlpbmcgaW50ZXJmYWNlIHRvDQo+IGNvbW11bmljYXRl DQo+ID4gPiB3aXRoIFJFU1Qgc2VydmljZS4NCj4gPiA+ICsvLy8gRUZJIFJFU1QoRVgpIGRyaXZl ciBpbnN0YW5jZSBrbm93cyBob3cgdG8gY29tbXVuaWNhdGUgd2l0aCBSRVNUDQo+ID4gPiBzZXJ2 aWNlIHRocm91Z2ggY2VydGFpbg0KPiA+ID4gKy8vLyBpbnRlcmZhY2UgYWZ0ZXIgdGhlIGNvcnJl c3BvbmRpbmcgY29uZmlndXJhdGlvbiBpcyBpbml0aWFsaXplZC4NCj4gPiA+ICsvLy8NCj4gPiA+ ICtzdHJ1Y3QgX0VGSV9SRVNUX0VYX1BST1RPQ09MIHsNCj4gPiA+ICsgIEVGSV9SRVNUX1NFTkRf UkVDRUlWRSAgICAgICAgICBTZW5kUmVjZWl2ZTsNCj4gPiA+ICsgIEVGSV9SRVNUX0dFVF9USU1F ICAgICAgICAgICAgICBHZXRTZXJ2aWNlVGltZTsNCj4gPiA+ICsgIEVGSV9SRVNUX0VYX0dFVF9T RVJWSUNFICAgICAgICBHZXRTZXJ2aWNlOw0KPiA+ID4gKyAgRUZJX1JFU1RfRVhfR0VUX01PREVf REFUQSAgICAgIEdldE1vZGVEYXRhOw0KPiA+ID4gKyAgRUZJX1JFU1RfRVhfQ09ORklHVVJFICAg ICAgICAgIENvbmZpZ3VyZTsNCj4gPiA+ICsgIEVGSV9SRVNUX0VYX0FTWU5DX1NFTkRfUkVDRUlW RSBBeW5jU2VuZFJlY2VpdmU7DQo+ID4gPiArICBFRklfUkVTVF9FWF9FVkVOVF9TRVJWSUNFICAg ICAgRXZlbnRTZXJ2aWNlOw0KPiA+ID4gK307DQo+ID4gPiArDQo+ID4gPiArZXh0ZXJuIEVGSV9H VUlEIGdFZmlSZXN0RXhTZXJ2aWNlQmluZGluZ1Byb3RvY29sR3VpZDsNCj4gPiA+ICtleHRlcm4g RUZJX0dVSUQgZ0VmaVJlc3RFeFByb3RvY29sR3VpZDsNCj4gPiA+ICsNCj4gPiA+ICsjZW5kaWYN Cj4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtnLmRlYyBiL01kZVBrZy9NZGVQa2cuZGVj IGluZGV4DQo+ID4gPiA4MTJiZTc1ZmIzLi41MjA1Mzc0ZDYyIDEwMDY0NA0KPiA+ID4gLS0tIGEv TWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+ICsrKyBiL01kZVBrZy9NZGVQa2cuZGVjDQo+ID4gPiBA QCAtMTg0OCw2ICsxODQ4LDEzIEBADQo+ID4gPiAgICAjIyBJbmNsdWRlL1Byb3RvY29sL052ZGlt bUxhYmVsLmgNCj4gPiA+ICAgIGdFZmlOdmRpbW1MYWJlbFByb3RvY29sR3VpZCAgICAgICAgICAg ICAgID0geyAweGQ0MGI2YjgwLA0KPiA+IDB4OTdkNSwgMHg0MjgyLA0KPiA+ID4geyAweGJiLCAw eDFkLCAweDIyLCAweDNhLCAweDE2LCAweDkxLCAweDgwLCAweDU4IH19DQo+ID4gPg0KPiA+ID4g KyAgIw0KPiA+ID4gKyAgIyBQcm90b2NvbHMgZGVmaW5lZCBpbiBVRUZJMi44DQo+ID4gPiArICAj DQo+ID4gPiArICAjIyBJbmNsdWRlL1Byb3RvY29sL1Jlc3RFeC5oDQo+ID4gPiArICBnRWZpUmVz dEV4UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgPSB7IDB4NTU2NDhiOTEsIDB4ZTdkLA0KPiA+ IDB4NDBhMywgeyAweGE5LCAweGIzLA0KPiA+ID4gMHhhOCwgMHgxNSwgMHhkNywgMHhlYSwgMHhk ZiwgMHg5NyB9fQ0KPiA+ID4gKyAgZ0VmaVJlc3RFeFNlcnZpY2VCaW5kaW5nUHJvdG9jb2xHdWlk ID0geyAweDQ1NmJiZTAxLCAweDk5ZDAsDQo+ID4gPiArIDB4NDVlYSwNCj4gPiA+IHsgMHhiYiwg MHg1ZiwgMHgxNiwgMHhkOCwgMHg0YiwgMHhlZCwgMHhjNSwgMHg1OSB9fQ0KPiA+ID4gKw0KPiA+ ID4gICAgIw0KPiA+ID4gICAgIyBQcm90b2NvbHMgZGVmaW5lZCBpbiBTaGVsbDIuMA0KPiA+ID4g ICAgIw0KPiA+ID4gLS0NCj4gPiA+IDIuMTcuMQ0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4N Cj4gPiA+DQo+IA0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0KDQo=