From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0074.outbound.protection.outlook.com [104.47.38.74]) by dpdk.org (Postfix) with ESMTP id 0EEC51B235 for ; Tue, 31 Oct 2017 12:39:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=m2Ld7hIxdKLwEg6BqAPVgpEwWRqRR/t5LgC9gqcqCNA=; b=gztMRZ3Cim4LLbtXjCmNTL/V8nE6JTClljhdj/cghZiNOqlQI4NcwNbB91Tm1JESqPmL8DK24WWx21p3U03fB5/DuzOkEMtEYE9kc+J/lTtXWatckYIoX+BIxgzPOjgzCHj5rJ2qikqeUW4SCELycpjajZNXMihAPYYhzKvKdO0= Received: from DM2PR0701MB1120.namprd07.prod.outlook.com (10.160.246.151) by DM2PR0701MB1067.namprd07.prod.outlook.com (10.160.26.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.178.6; Tue, 31 Oct 2017 11:39:24 +0000 Received: from DM2PR0701MB1120.namprd07.prod.outlook.com ([fe80::f95d:8c63:4cec:95b4]) by DM2PR0701MB1120.namprd07.prod.outlook.com ([fe80::f95d:8c63:4cec:95b4%16]) with mapi id 15.20.0178.012; Tue, 31 Oct 2017 11:39:22 +0000 From: "Verma, Shally" To: "dev@dpdk.org" , "Trahe, Fiona" , "Athreya, Narayana Prasad" , "Challa, Mahipal" Thread-Topic: [RFC v1] doc compression API for DPDK Thread-Index: AdNRkjwE1ZjDhxTcR46UpkXBh0QrkQAdnT0w Date: Tue, 31 Oct 2017 11:39:22 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Shally.Verma@cavium.com; x-originating-ip: [14.140.2.178] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DM2PR0701MB1067; 6:wiM4V5JkoD+UbYTBQ/53B7z8uAaad0SJ8d9bR6U4Cqe9kp9sPA5XssoKTFHyPpiFea2bKbHRqQESZ4i0Owtn/0x04nU973PskfVhdAIxFgnFoOfkI9KlEMiejar8/dNYL+XxZitcySPzwqtMFMCH2RjkYWKZPxh6Bcq5HqB33Rhuc0Anouvw8UK3W17Z6ejfSbULXhoHmj9YsBELWSEIcGorfG+mHDAxPwd3iuPTyYdd6ntDcPbhbY6yAIl5Z90ZjsVbpRTz0zHpwSetOjR7VkPDn7wKOvMxdO4gunMvKgUzZOMLHbwYwd6g86B+6S/XS/blfzV0soi7icrkI7ocnqC5fwdX/OOmaz2g+5cEU7U=; 5:BLMOzJmWtK/srql0PuS/NIsRtucfn49zrXhGhu8vPUDMbznLMiE8XTC/9E7JifLADMRLXxolfx2mlfj82n37zsAV+XoCFq9AwjBOwM8r9B0vpzx74jOon0JaA+JG9uC6d0bTnpfOQrPyL+YNWEV4cjKPCro6J4Ewob0A+W5RidQ=; 24:blMsWJDdEgyqIwWBlVjuvmVTxIWgjDaVxMA8iVVzP+Oll5KX86LHsGTulAJc3FJCWSakQqM8FJBlKRjRT6Qrrmq4r78VJmDKzrWfmkP+Y/c=; 7:zpyBLE2CYgnfZ3Ih7TD0TxZNPawLOr8k3OpGPrc3Jdm4+udVlAwFKOYreyd0kIo+T8jg277Wg3G5XnwLgQOSB/Lm4FE4m/HwO2wfsQr/Qbuw4/11PHAK/xjz2l/BDsdreG9A6te+gunJ+/mskXXy27wq4mzBCqWO562unAf2ANR9kwoBbEIwgBoXgk5gguTuYy6sz80nJPJRrK/oYwK3VqCF3oJGwy3GIvmXsf7XjxOnhxcqBQHzsGz0qmgpPceX x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(189002)(199003)(81166006)(99286003)(106356001)(6436002)(9686003)(6506006)(105586002)(55016002)(316002)(101416001)(50986999)(54356999)(2501003)(5890100001)(76176999)(478600001)(110136005)(2900100001)(6306002)(5250100002)(3660700001)(68736007)(189998001)(7736002)(305945005)(966005)(33656002)(25786009)(74316002)(66066001)(3280700002)(561944003)(7696004)(2906002)(3846002)(102836003)(6116002)(97736004)(5660300001)(53936002)(8936002)(8676002)(81156014)(6636002)(53376002)(72206003)(14454004)(86362001)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0701MB1067; H:DM2PR0701MB1120.namprd07.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; x-ms-office365-filtering-correlation-id: 00bd8a5c-212b-4db6-5b90-08d5205407d0 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(2017052603199); SRVR:DM2PR0701MB1067; x-ms-traffictypediagnostic: DM2PR0701MB1067: x-exchange-antispam-report-test: UriScan:(278428928389397); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3231020)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR0701MB1067; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR0701MB1067; x-forefront-prvs: 04772EA191 received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00bd8a5c-212b-4db6-5b90-08d5205407d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2017 11:39:22.1980 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB1067 Subject: [dpdk-dev] [RFC v1] doc compression API for DPDK X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Oct 2017 11:39:27 -0000 SEkgRmlvbmENCg0KVGhpcyBpcyBhbiBSRkMgZG9jdW1lbnQgdG8gYnJpZWYgb3VyIHVuZGVyc3Rh bmRpbmcgYW5kIHJlcXVpcmVtZW50cyBvbiBjb21wcmVzc2lvbiBBUEkgcHJvcG9zYWwgaW4gRFBE Sy4gSXQgaXMgYmFzZWQgb24gIltSRkNdIENvbXByZXNzaW9uIEFQSSBpbiBEUERLIGh0dHA6Ly9k cGRrLm9yZy9tbC9hcmNoaXZlcy9kZXYvMjAxNy1PY3RvYmVyLzA3OTM3Ny5odG1sIi4NCkludGVu dGlvbiBvZiB0aGlzIGRvY3VtZW50IGlzIHRvIGFsaWduIG9uIGNvbmNlcHRzIGJ1aWx0IGludG8g Y29tcHJlc3Npb24gQVBJLCBpdHMgdXNhZ2UgYW5kIGlkZW50aWZ5IGZ1cnRoZXIgcmVxdWlyZW1l bnRzLiANCg0KR29pbmcgZnVydGhlciBpdCBjb3VsZCBiZSBhIGJhc2UgdG8gQ29tcHJlc3Npb24g TW9kdWxlIFByb2dyYW1tZXIgR3VpZGUuDQoNCkN1cnJlbnQgc2NvcGUgaXMgbGltaXRlZCB0bw0K LSBkZWZpbml0aW9uIG9mIHRoZSB0ZXJtaW5vbG9neSB3aGljaCBtYWtlcyB1cCBmb3VuZGF0aW9u IG9mIGNvbXByZXNzaW9uIEFQSQ0KLSB0eXBpY2FsIEFQSSBmbG93IGV4cGVjdGVkIHRvIHVzZSBi eSBhcHBsaWNhdGlvbnMNCsKgDQpPdmVydmlldw0Kfn5+fn5+fn4NCkEuIE5vdGlvbiBvZiBhIHNl c3Npb24gaW4gY29tcHJlc3Npb24gQVBJDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09wqANCkEgU2Vzc2lvbiBpcyBwZXIgZGV2aWNlIGxvZ2ljYWwgZW50aXR5IHdoaWNoIGlzIHNl dHVwIHdpdGggY2hhaW5lZC14Zm9ybXMgdG8gYmUgcGVyZm9ybWVkIG9uIGJ1cnN0IG9wZXJhdGlv bnMgd2hlcmUgaW5kaXZpZHVhbCBlbnRyeSBjb250YWlucyBvcGVyYXRpb24gdHlwZSAoZGVjb21w cmVzcy9jb21wcmVzcykgYW5kIHJlbGF0ZWQgcGFyYW1ldGVyLg0KQSB0eXBpY2FsIFNlc3Npb24g cGFyYW1ldGVyIGluY2x1ZGVzOg0KLSBjb21wcmVzcyAvIGRlY29tcHJlc3MNCi0gZGV2X2lkIA0K LSBjb21wcmVzc2lvbiBhbGdvcml0aG0gYW5kIG90aGVyIHJlbGF0ZWQgcGFyYW1ldGVycw0KLSBt ZW1wb29sIC0gZm9yIHVzZSBieSBzZXNzaW9uIGZvciBydW50aW1lIHJlcXVpcmVtZW50DQotIGFu ZCBhbnkgb3RoZXIgYXNzb2NpYXRlZCBwcml2YXRlIGRhdGEgbWFpbnRhaW5lZCBieSBzZXNzaW9u DQrCoA0KQXBwbGljYXRpb24gY2FuIHNldHVwIG11bHRpcGxlIHNlc3Npb25zIG9uIGEgZGV2aWNl IGFzIGRpY3RhdGVkIGJ5IGRldl9pbmZvLm5iX3Nlc3Npb25zIG9yIG5iX3Nlc3Npb25fcGVyX3Fw Lg0KwqANCkIuIE5vdGlvbiBvZiBidXJzdCBvcGVyYXRpb25zIGluIGNvbXByZXNzaW9uIEFQSQ0K wqA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCnN0cnVjdCBydGVfY29t cF9vcCBkZWZpbmVzIGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24gb3BlcmF0aW9uYWwgcGFyYW1l dGVyIGFuZCBtYWtlcyB1cCBvbmUgc2luZ2xlIGVsZW1lbnQgb2YgYnVyc3QuIFRoaXMgaXMgYm90 aCBhbiBpbnB1dC9vdXRwdXQgcGFyYW1ldGVyLiANClBNRCBnZXRzIHNvdXJjZSwgZGVzdGluYXRp b24gYW5kIGNoZWNrc3VtIGluZm9ybWF0aW9uIGF0IGlucHV0IGFuZCB1cGRhdGVkIGl0IHdpdGgg Ynl0ZXMgY29uc3VtZWQgYW5kIHByb2R1Y2VkIGF0IG91dHB1dC4gDQpPbmNlIGVucXVldWVkIGZv ciBwcm9jZXNzaW5nLCBydGVfY29tcF9vcCAqY2Fubm90IGJlIHJldXNlZCogdW50aWwgaXRzIHN0 YXR1cyBpcyBzZXQgdG8gUlRFX0NPTVBfT1BfRkFJTFVSRSBvciBSVEVfQ09NUF9PUF9TVEFUVVNf U1VDQ0VTUy4NCsKgDQpDLiBTZXNzaW9uIGFuZCBydGVfY29tcF9vcA0KwqA9PT09PT09PT09PT09 PT09PT09PT09PQ0KRXZlcnkgb3BlcmF0aW9uIGluIGEgYnVyc3QgaXMgdGllZCB0byBhIFNlc3Np b24uIE1vcmUgdG8gY292ZXIgb24gdGhpcyB1bmRlciBTdGF0ZWxlc3MgVnMgU3RhdGVmdWwgc2Vj dGlvbi4NCsKgDQpELiBTdGF0ZWxlc3MgVnMgU3RhdGVmdWwNCj09PT09PT09PT09PT09PT09PT0N CkNvbXByZXNzaW9uIEFQSSBwcm92aWRlIFJURV9DT01QX0ZGX1NUQVRFRlVMIGZlYXR1cmUgZmxh ZyBmb3IgUE1EIHRvIHJlZmxlY3QgaXRzIHN1cHBvcnQgZm9yIFN0YXRlZnVsIG9wZXJhdGlvbi4g DQrCoA0KRC4xIENvbXByZXNzaW9uIEFQSSBTdGF0ZWxlc3Mgb3BlcmF0aW9uDQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS3CoA0KQSBTdGF0ZWxl c3Mgb3BlcmF0aW9uIG1lYW5zIGFsbCBlbnF1ZXVlZCBwYWNrZXRzIGFyZSBpbmRlcGVuZGVudCBv ZiBlYWNoIG90aGVyIGkuZS4gRWFjaCBwYWNrZXQgaGFzDQotwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgVGhlaXIgZmx1c2ggdmFsdWUgaXMgc2V0IHRvIFJURV9GTFVTSF9GVUxMIG9yIFJURV9G TFVTSF9GSU5BTCAocmVxdWlyZWQgb25seSBvbiBjb21wcmVzc2lvbiBzaWRlKSwNCi3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBBbGwtb2YgdGhlIHJlcXVpcmVkIGlucHV0IGFuZCBzdWZmaWNp ZW50IGxhcmdlIGJ1ZmZlciBzaXplIHRvIHN0b3JlIG91dHB1dCBpLmUuIE9VVF9PRl9TUEFDRSBj YW4gbmV2ZXIgb2NjdXIgKHJlcXVpcmVkIGR1cmluZyBib3RoIGNvbXByZXNzaW9uIGFuZCBkZWNv bXByZXNzaW9uKQ0KwqANCkluIHN1Y2ggY2FzZSwgUE1EIGluaXRpYXRlcyBzdGF0ZWxlc3MgcHJv Y2Vzc2luZyBhbmQgcmVsZWFzZXMgYWNxdWlyZWQgcmVzb3VyY2VzIGFmdGVyIHByb2Nlc3Npbmcg b2YgY3VycmVudCBvcGVyYXRpb24gaXMgY29tcGxldGUgaS5lLiBmdWxsIGlucHV0IGNvbnN1bWVk IGFuZCBmdWxsIG91dHB1dCB3cml0dGVuLg0KQXBwbGljYXRpb24gY2FuIGF0dGFjaCBzYW1lIG9y IGRpZmZlcmVudCBzZXNzaW9uIHRvIGVhY2ggcGFja2V0IGFuZCBjYW4gbWFrZSBjb25zZWN1dGl2 ZSBlbnF1ZV9idXJzdCgpIGNhbGxzIGkuZS4gRm9sbG93aW5nIGlzIHJlbGV2YW50IHVzYWdlOg0K wqANCmVucXVldWVkID0gcnRlX2NvbXBfZW5xdWVfYnVyc3QgKGRldl9pZCwgcXBfaWQsIG9wczEs IG5iX29wcyk7wqANCmVucXVldWVkID0gcnRlX2NvbXBfZW5xdWVfYnVyc3QoZGV2X2lkLCBxcF9p ZCwgb3BzMiwgbmJfb3BzKTsgwqANCmVucXVldWVkID0gcnRlX2NvbXBfZW5xdWVfYnVyc3QoZGV2 X2lkLCBxcF9pZCwgb3BzMywgbmJfb3BzKTsgDQrCoA0KKk5vdGUg4oCTIEV2ZXJ5IGNhbGwgaGFz IGRpZmZlcmVudCBvcHMgYXJyYXkgaS5lLsKgIHNhbWUgcnRlX2NvbXBfb3AgYXJyYXkgKmNhbm5v dCBiZSByZXVzZWQqIHRvIHF1ZXVlIG5leHQgYmF0Y2ggb2YgZGF0YSB1bnRpbCBwcmV2aW91cyBv bmVzIGFyZSBjb21wbGV0ZWx5IHByb2Nlc3NlZC4NCg0KQWxzbyBpZiBtdWx0aXBsZSB0aHJlYWRz IGNhbGxzIGVucXVldWVfYnVyc3QoKSBvbiBzYW1lIHF1ZXVlIHBhaXIgdGhlbiBpdOKAmXMgYXBw bGljYXRpb24gb251cyB0byB1c2UgcHJvcGVyIGxvY2tpbmcgbWVjaGFuaXNtIHRvIGVuc3VyZSBz ZXJpYWxpemVkIGVucXVldWluZyBvZiBvcGVyYXRpb25zLg0KwqANClBsZWFzZSBub3RlIGFueSB0 aW1lIG91dHB1dCBidWZmZXIgcmFuIG91dCBvZiBzcGFjZSBkdXJpbmcgd3JpdGUgdGhlbiBvcGVy YXRpb24gd2lsbCB0dXJuIOKAnFN0YXRlZnVs4oCdLsKgIFNlZSBtb3JlIG9uIFN0YXRlZnVsIHVu ZGVyIHJlc3BlY3RpdmUgc2VjdGlvbi4NCg0KIFR5cGljYWwgQVBJKGZsb3ctd2lzZSkgdG8gc2V0 dXAgZm9yIHN0YXRlbGVzcyBvcGVyYXRpb246DQoxLiBydGVfY29tcF9zZXNzaW9uICpzZXNzID0g cnRlX2NvbXBfc2Vzc2lvbl9jcmVhdGUocnRlX21lbXBvb2wgKnBvb2wpOyDCoA0KMi4gcnRlX2Nv bXBfc2Vzc2lvbl9pbml0IChpbnQgZGV2X2lkLCBydGVfY29tcF9zZXNzaW9uICpzZXNzLCBydGVf Y29tcF94Zm9ybSAqeGZvcm0sIHJ0ZV9tZW1wb29sICpzZXNzX3Bvb2wpOyDCoA0KMy4gcnRlX2Nv bXBfb3BfcG9vbF9jcmVhdGUocnRlX21lbXBvb2wgLi4pIMKgDQo0LiBydGVfY29tcF9vcF9idWxr X2FsbG9jIChzdHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2wsIHN0cnVjdCBydGVfY29tcF9vcCAq Km9wcywgdWludDE2X3QgbmJfb3BzKTsgwqANCjUuIGZvciBldmVyeSBydGVfY29tcF9vcCBpbiBv cHNbXSwNCsKgwqDCoCA1LjEgcnRlX2NvbXBfb3BfYXR0YWNoX3Nlc3Npb24ocnRlX2NvbXBfb3Ag Km9wLCBydGVfY29tcF9zZXNzaW9uICpzZXNzKTsNCsKgwqDCoCA1LjIgc2V0IHVwIHdpdGggc3Jj L2RzdCBidWZmZXLCoA0KNi4gZW5xID0gcnRlX2NvbXBkZXZfZW5xdWV1ZV9idXJzdCh1aW50OF90 IGRldl9pZCwgdWludDE2X3QgcXBfaWQsIHN0cnVjdCBydGVfY29tcF9vcCAqKm9wcywgdWludDE2 X3QgbmJfb3BzKTsgDQo3LiBkcXUgPSBydGVfY29tcGRldl9kZXF1ZXVlX2J1cnN0KGRldl9pZCwg cXBfaWQsIG9wcywgZW5xKTsNCjguIHJlcGVhdCA3IHdoaWxlIChkcXUgPCBlbnEpIC8vIFdhaXQg dGlsbCBhbGwgb2YgZW5xdWV1ZWQgYXJlIGRlcXVldWVkDQo5LiBSZXBlYXQgNS4yIGZvciBuZXh0 IGJhdGNoIG9mIGRhdGEgwqANCjEwLiBydGVfY29tcF9zZXNzaW9uX2NsZWFyICgpIC8vIG9ubHkg cmVzZXQgcHJpdmF0ZSBkYXRhIG1lbW9yeSBhcmVhIGFuZCAqbm90KiB0aGUgeGZvcm0gYW5kIGRl dmlkIGluZm9ybWF0aW9uLiBJbiBjYXNlLCB5b3Ugd2FudCB0byByZS11c2Ugc2Vzc2lvbi7CoA0K MTEuIHJ0ZV9jb21wX3Nlc3Npb25fZnJlZShyZXRfY29tcF9zZXNzICpzZXNzaW9uKcKgDQoNCkQu MS4yIFJlcXVpcmVtZW50IGZvciBTdGF0ZWxlc3MNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClNpbmNlIG9wZXJhdGlvbiBjYW4gY29tcGxldGUgb3V0LW9mLW9y ZGVyLiBUaGVyZSBzaG91bGQgYmUgb25lICh2b2lkICp1c2VyKSBwZXIgcnRlX2NvbXBfb3AgdG8g ZW5hYmxlIGFwcGxpY2F0aW9uIHRvIG1hcCBkZXF1ZXVlZCBvcCB0byBlbnF1ZXVlZCBvcC4NCg0K RC4yIENvbXByZXNzaW9uIEFQSSBTdGF0ZWZ1bCBvcGVyYXRpb24NCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCsKgQSBTdGF0ZWZ1bCBv cGVyYXRpb24gbWVhbnMgZm9sbG93aW5nIGNvbmRpdGlvbnM6DQotIEFQSSByYW4gaW50byBvdXRf b2Zfc3BhY2Ugc2l0dWF0aW9uIGR1cmluZyBwcm9jZXNzaW5nIG9mIGlucHV0LiBFeGFtcGxlLCBz dGF0ZWxlc3MgY29tcHJlc3NlZCBzdHJlYW0gZmVkIGZ1bGx5IHRvIGRlY29tcHJlc3NvciBidXQg b3V0cHV0IGJ1ZmZlciBpcyBub3QgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgb3V0cHV0Lg0KLSBBUEkg d2FpdGluZyBmb3IgbW9yZSBpbnB1dCB0byBwcm9kdWNlIG91dHB1dC4gRXhhbXBsZSwgc3RhdGVs ZXNzIGNvbXByZXNzZWQgc3RyZWFtIGZlZCBwYXJ0aWFsbHkgdG8gZGVjb21wcmVzc29yLg0KLSBB UEkgaXMgZGVwZW5kZW50IG9uIHByZXZpb3VzIG9wZXJhdGlvbiBmb3IgZnVydGhlciBjb21wcmVz c2lvbi9kZWNvbXByZXNzaW9uDQoNCkluIGNhc2Ugb2YgZWl0aGVyIG9uZSBvciBhbGwgb2YgdGhl IGFib3ZlIGNvbmRpdGlvbnMgUE1EIGlzIHJlcXVpcmVkIHRvIG1haW50YWluIGNvbnRleHQgb2Yg b3BlcmF0aW9ucyBhY3Jvc3MgZW5xdWVfYnVyc3QoKSBjYWxscywgdW50aWwgYSBwYWNrZXQgd2l0 aMKgIFJURV9GTFVTSF9GVUxML0ZJTkFMIGFuZCBzdWZmaWNpZW50IGlucHV0L291dHB1dCBidWZm ZXJzIGlzIHJlY2VpdmVkIGFuZCBwcm9jZXNzZWQuDQrCoA0KRC4yLjEgQ29tcHJlc3Npb24gQVBJ IHJlcXVpcmVtZW50IGZvciBTdGF0ZWZ1bA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCkQuMi4xLjEgU2xpZGluZyBXaW5k b3cgU2l6ZQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpNYXhpbXVtIGxl bmd0aCBvZiBTbGlkaW5nIFdpbmRvdyBpbiBieXRlcy4gUHJldmlvdXMgZGF0YSBsb29rdXAgd2ls bCBiZSBwZXJmb3JtZWQgdXAgdG8gdGhpcyBsZW5ndGguIFRvIGJlIGFkZGVkIGFzIGFsZ29yaXRo bSBjYXBhYmlsaXR5IHBhcmFtZXRlciBhbmQgc2V0IGJ5IFBNRC4NCsKgDQpELjIuMS4yIFN0YXRl ZnVsIG9wZXJhdGlvbiBzdGF0ZSBtYWludGVuYW5jZQ0KwqAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUaGlzIHNlY3Rpb24gc3Rh cnRzIHdpdGggZGVzY3JpcHRpb24gb2Ygb3VyIHVuZGVyc3RhbmRpbmcgYWJvdXQgY29tcHJlc3Np b24gQVBJIHN1cHBvcnQgZm9yIHN0YXRlZnVsLiBEZXBlbmRpbmcgdXBvbiB1bmRlcnN0YW5kaW5n IGJ1aWxkIHVwb24gdGhlc2UgY29uY2VwdHMsIHdlIHdpbGwgaWRlbnRpZnkgcmVxdWlyZWQgZGF0 YSBzdHJ1Y3R1cmUvcGFyYW0gdG8gbWFpbnRhaW4gaW4tcHJvZ3Jlc3Mgb3BlcmF0aW9uIGNvbnRl eHQgYnkgUE1ELg0KwqANCkZvciBzdGF0ZWZ1bCBjb21wcmVzc2lvbiwgYmF0Y2ggb2YgZGVwZW5k ZW50IHBhY2tldHMgc3RhcnRzIGF0IGEgcGFja2V0IGhhdmluZyBSVEVfTk9fRkxVU0gvUlRFX1NZ TkNfRkxVU0ggZmx1c2ggdmFsdWUgYW5kIGVuZCBhdCBwYWNrZXQgaGF2aW5nIFJURV9GVUxMX0ZM VVNIL0ZJTkFMX0ZMVVNILiBpLmUuIGFycmF5IG9mIG9wZXJhdGlvbnMgd2lsbCBjYXJyeSBzdHJ1 Y3R1cmUgbGlrZSB0aGlzOg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnxvcDEubm9f Zmx1c2ggfCBvcDIubm9fZmx1c2ggfCBvcDMubm9fZmx1c2ggfCBvcDQuZnVsbF9mbHVzaHwNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KwqANCkZvciBzYWtlIG9mIHNpbXBsaWNpdHksIHdl IHdpbGwgdXNlIHRlcm0gInN0cmVhbSIgdG8gaWRlbnRpZnkgc3VjaCByZWxhdGVkIHNldCBvZiBv cGVyYXRpb24gaW4gZm9sbG93aW5nIGRlc2NyaXB0aW9uLiANCsKgDQpTdHJlYW0gcHJvY2Vzc2lu ZyBpbXBvc2UgZm9sbG93aW5nIGxpbWl0YXRpb25zIG9uIHVzYWdlIG9mIGVucXVlX2J1cnN0KCkg QVBJDQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQWxsIGRlcGVuZGVudCBwYWNrZXRzIGlu IGEgc3RyZWFtIHNob3VsZCBjYXJyeSBzYW1lIHNlc3Npb24NCi3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiBzdHJlYW0gaXMgYnJva2VuIGludG8gbXVsdGlwbGUgZW5xdWV1ZV9idXJzdCgp IGNhbGwsIHRoZW4gbmV4dCBlbnF1ZXVlX2J1cnN0KCkgY2Fubm90IGJlIGNhbGxlZCB1bnRpbCBw cmV2aW91cyBvbmUgaGFzIGZ1bGx5IHByb2Nlc3NlZC4gSS5FLg0KDQrCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIENvbnNpZGVyIGZvciBleGFtcGxlLCBhIHN0cmVhbSB3aXRoIG9wczEgLi5v cHM3LCAgVGhpcyBpcyAqbm90KiBhbGxvd2VkDQogICAgICAgICAgICAgICANCsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCsKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBlbnF1ZV9idXJzdCh8b3AxLm5vX2ZsdXNoIHwgb3AyLm5vX2ZsdXNoIHwgb3Az Lm5vX2ZsdXNoIHwgb3A0Lm5vX2ZsdXNofCkNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KwqANCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnF1ZV9idXJzdCh8b3A1Lm5vX2ZsdXNoIHwgb3A2Lm5v X2ZsdXNoIHwgb3A3LmZsdXNoX2ZpbmFsIHwpDQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KwqANCsKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgwqDCoFRoaXMgKmlzKiBhbGxvd2VkDQrCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQrCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGVucXVlX2J1cnN0KHxvcDEubm9fZmx1c2ggfCBvcDIubm9fZmx1c2gg fCBvcDMubm9fZmx1c2ggfCBvcDQubm9fZmx1c2h8KQ0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQrCoA0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGRlcXVlX2J1cnN0KG9wczEgLi5vcHM0KQ0KwqANCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbnF1ZV9idXJzdCh8b3A1Lm5vX2ZsdXNo IHwgb3A2Lm5vX2ZsdXNoIHwgb3A3LmZsdXNoX2ZpbmFsIHwpDQrCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KDQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQSBzaW5nbGUgZW5xdWVf YnVyc3QoKSBjYW4gY2Fycnkgb25seSBvbmUgc3RyZWFtLiBJLkUuIFRoaXMgaXMgKm5vdCogYWxs b3dlZA0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCANCsKgIMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZW5xdWVfYnVyc3QgKHxvcDEubm9fZmx1c2ggfCBvcDIubm9fZmx1 c2ggfCBvcDMuZmx1c2hfZmluYWwgfCBvcDQubm9fZmx1c2ggfCBvcDUubm9fZmx1c2ggfCkNCsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQoNCklmIGEgc3RyZWFtIGlzIGJyb2tlbiBpbiB0byBzZXZlcmFsIGVucXVldWVf YnVyc3QoKSBjYWxscywgdGhlbiBjb21wcmVzcyBBUEkgbmVlZCB0byBtYWludGFpbiBvcGVyYXRp b25hbCBzdGF0ZSBiZXR3ZWVuIGNhbGxzLiBGb3IgdGhpcywgY29uY2VwdCBvZiBydGVfY29tcF9z dHJlYW0gaXMgZW5hYmxlZCBpbiB0byBjb21wcmVzc2lvbiBBUEkuIA0KSGVyZeKAmXJlIHRoZSBw cm9wb3NlZCBjaGFuZ2VzIHRvIGV4aXN0aW5nIGRlc2lnbjoNCg0KMS4gQWRkIHJ0ZV9jb21wX29w X3R5cGUgDQouLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uDQplbnVtIHJ0 ZV9jb21wX29wX3R5cGUgew0KUlRFX0NPTVBfT1BfU1RBVEVMRVNTLA0KUlRFX0NPTVBfT1BfU1RB VEVGVUwNCn0NCg0KMi4gQWRkIG5ldyBkYXRhIHR5cGUgcnRlX2NvbXBfc3RyZWFtIHRvIG1haW50 YWluIHN0cmVhbSBzdGF0ZQ0KLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4NCnJ0ZV9jb21wX3N0cmVhbSBpcyBhbiBvcGFxdWUgZGF0YSBzdHJ1Y3R1cmUgdG8g YXBwbGljYXRpb24gd2hpY2ggaXMgZXhjaGFuZ2VkIGJhY2sgYW5kIGZvcnRoIGJldHdlZW4gYXBw bGljYXRpb24gYW5kIFBNRCBkdXJpbmcgc3RhdGVmdWwgY29tcHJlc3Npb24vZGVjb21wcmVzc2lv bi4gDQpJdCBzaG91bGQgYmUgYWxsb2NhdGVkIHBlciBzdHJlYW0gQU5EIGJlZm9yZSBiZWdpbm5p bmcgb2Ygc3RhdGVmdWwgb3BlcmF0aW9uLiBJZiBzdHJlYW0gaXMgYnJva2VuIGludG8gbXVsdGlw bGUgZW5xdWV1ZV9idXJzdCgpIHRoZW4gZWFjaCANCnJlc3BlY3RpdmUgZW5xdWV1ZV9idXJzdCgp IG11c3QgY2Fycnkgc2FtZSBydGVfY29tcF9zdHJlYW0gcG9pbnRlci4gSXQgaXMgbWFuZGF0b3J5 IGlucHV0IGZvciBzdGF0ZWZ1bCBvcGVyYXRpb25zLg0KcnRlX2NvbXBfc3RyZWFtIGNhbiBiZSBj bGVhcmVkIGFuZCByZXVzZWQgdmlhIGNvbXByZXNzaW9uIEFQSSBydGVfY29tcF9zdHJlYW1fY2xl YXIoKSBhbmQgZnJlZSB2aWEgcnRlX2NvbXBfc3RyZWFtX2ZyZWUoKS4gQ2xlYXIvZnJlZSBzaG91 bGQgbm90IGJlIGNhbGxlZCB3aGVuIGl0IGlzIGluIHVzZS4NCg0KVGhpcyBlbmFibGVzIHNoYXJp bmcgb2YgYSBzZXNzaW9uIGJ5IG11bHRpcGxlIHRocmVhZHMgaGFuZGxpbmcgZGlmZmVyZW50IHN0 cmVhbXMgYXMgZWFjaCBidWxrIG9wcyBjYXJyeSBpdHMgb3duIGNvbnRleHQuIFRoaXMgY2FuIGFs c28gYmUgdXNlZCBieSBQTUQgdG8gaGFuZGxlIE9VVF9PRl9TUEFDRSBzaXR1YXRpb24uDQoNCjMu IEFkZCBzdHJlYW0gYWxsb2NhdGUsIGNsZWFyIGFuZCBmcmVlIEFQSSANCi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4NCjMu MS4gcnRlX2NvbXBfb3Bfc3RyZWFtX2FsbG9jKHJ0ZV9tZW1wb29sICpwb29sLCBydGVfY29tcF9v cF90eXBlIHR5cGUsIHJ0ZV9jb21wX3N0cmVhbSAqKnN0cmVhbSk7DQozLjIuIHJ0ZV9jb21wX29w X3N0cmVhbV9jbGVhcihydGVfY29tcF9zdHJlYW0gKnN0cmVhbSk7IC8vIGluIHRoaXMgY2FzZSBz dHJlYW0gd2lsbCBiZSB1c2VhYmxlIGZvciBuZXcgc3RhdGVmdWwgYmF0Y2gNCjMuMy4gcnRlX2Nv bXBfb3Bfc3RyZWFtX2ZyZWUocnRlX2NvbXBfc3RyZWFtICpzdHJlYW0pOyAvLyB0byBmcmVlIGNv bnRleHQNCg0KNC4gQWRkIG5ldyBBUEkgcnRlX2NvbXBkZXZfZW5xdWV1ZV9zdHJlYW0oKQ0KLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLg0KIHN0YXRpYyBpbmxpbmUgdWludDE2X3QgcnRlX2NvbXBkZXZf ZW5xdWV1ZV9zdHJlYW0odWludDhfdCBkZXZfaWQsIA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IHFwX2lkLCANCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NvbXBfb3AgKipv cHMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQxNl90IG5iX29wcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJ0ZV9jb21wX3N0cmVhbSAqc3RyZWFtKTsgLy90byBiZSBwYXNzZWQgd2l0aCBlYWNo IGNhbGwNCg0KQXBwbGljYXRpb24gc2hvdWxkIGNhbGwgdGhpcyBBUEkgdG8gcHJvY2VzcyBkZXBl bmRlbnQgc2V0IG9mIGRhdGEgT1Igd2hlbiBvdXRwdXQgYnVmZmVyIHNpemUgaXMgdW5rbm93bi4N Cg0KcnRlX2NvbXBfb3BfcG9vbF9jcmVhdGUoKSBzaG91bGQgY3JlYXRlIG1lbXBvb2wgbGFyZ2Ug ZW5vdWdoIHRvIGFjY29tbW9kYXRlIG9wZXJhdGlvbmFsIHN0YXRlIChtYWludGFpbmVkIGJ5IHJ0 ZV9jb21wX3N0cmVhbSkgYmFzZWQgb24gcnRlX2NvbXBfb3BfdHlwZS4gU2luY2UgcnRlX2NvbXBf c3RyZWFtIHdvdWxkIGJlIG1haW50YWluZWQgYnkgUE1ELCB0aHVzIGFsbG9jYXRpbmcgaXQgZnJv bSBQTUQgbWFuYWdlZCBwb29sIG9mZmVycyBwZXJmb3JtYW5jZSBnYWlucy4NCg0KQVBJIGZsb3c6 IHJ0ZV9jb21wX29wX3Bvb2xfY3JlYXRlKCkgLeKGkiBydGVfY29tcF9vcF9idWxrX2FsbG9jKCkg LS0tPiBydGVfY29tcF9vcF9zdHJlYW1fYWxsb2MoKSDihpIgZW5xdWVfc3RyZWFtKC4ub3BzLCAu Liwgc3RyZWFtKQ0KDQpELjIuMS4zIEhpc3RvcnkgYnVmZmVyDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KV2lsbCBiZSBtYWludGFpbmVkIGJ5IFBNRCB3aXRoIGluIHJ0ZV9jb21wX3N0 cmVhbQ0KDQpUaGFua3MNClNoYWxseQ0KDQo=