From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5D454A0524; Tue, 13 Apr 2021 12:21:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DCC89160DE2; Tue, 13 Apr 2021 12:21:52 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2060.outbound.protection.outlook.com [40.107.237.60]) by mails.dpdk.org (Postfix) with ESMTP id 197AC160DDB for ; Tue, 13 Apr 2021 12:21:51 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=odsg4acdgY7mlDosaqpiE63RVkVlIhOvDPWK0N4Kz8gSl1SSOtMPb5eLxtN+KSd5BiZ/FoRgaSBHfHCSU6VdwRbJIIDr3J9H34f2NeW2JLMxZoKVdgmlvCJMNxAbRnj8fDQIi91kq1lpzkdxweyOkCQuW97ZLU02Y1iis1aWRJtFEvfNe5vud18NTwYxbANjw0EOQXg3ob0Y1sSrzQV6kKN92yM+wdDTyor72T7NFWYWQv7Pa7uNFcIZTLLCUHFPGRfNYr8r2V+KV7cCXIaiqHV5rvwj2/jUst1iBAbOBM/ZbQ13IvvWMA2L/TDrjLw/fQkJIFRXtgQVipjNiXA+6w== 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=yrsghYLPbhO7FAVFtVnlkVfL2JxSAn7eb0PyjrR+8Lc=; b=b2YCiGJysptJ2ZxGsyTkmaELwV1DKo5dKB9nxXD6nFOzYiUj0aCqpwpJI5N2BmKpo99eZpxGizvvJSyPWteZDVKYTIG0LdhiS15CR630JmkTWly3x2OOh1amW5SaeYJ13wwFugqxcEiec5qEtrPu03kE/b+CCYxMNcXp0srrHu/LnL7E/PRi2Cs21ELGAQlcd4CMApYld8TJqusSL2j9ZcB/6mqoXHGgjJZusvGD5W/X6AMPlyrX1TYLo1tZSIcsFeezxoNYZDUYgAYKBcOwfg33l8m2MZW27FoVnA+tZdJ7aIh53KtCGoGwoGdZm9Bp7g9+0jpX4vshGgnaNZfvKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yrsghYLPbhO7FAVFtVnlkVfL2JxSAn7eb0PyjrR+8Lc=; b=VDlmfDk34De7Uh6Ki0URvfWg1KW04AZ4cm/7e6kXLtUV1wsVnL7Xx6A+ga9ZZdVNTWdhQUapSBgHeVy7NDgTt+e3R9/dN2UOI/6UDTStX7+qwjQrW2Ga57UhdPTcmGosWNUqflWZzeyeg1Cz1l6TB9UrbY/CSfpB5wM12rqYRnLSu5tNkdnZWQgph+WRr4kvVFcDyBkpOVRwrHgAQp4KhZANTM8XMeiWrWZMwXM0S8I5X6ueIZqrhYbXkrjiD/qmVtCB+4SiQe9j6tTa9TYVQOamHYNHG2lhEpGHUMVpLd5fkUdLXES/A9dcdmhJdSAC2DL4CdVcErZ/79ftuvXxjw== Received: from BYAPR12MB4983.namprd12.prod.outlook.com (2603:10b6:a03:102::18) by BYAPR12MB2886.namprd12.prod.outlook.com (2603:10b6:a03:12d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.29; Tue, 13 Apr 2021 10:21:49 +0000 Received: from BYAPR12MB4983.namprd12.prod.outlook.com ([fe80::ccbc:b99c:71e:f761]) by BYAPR12MB4983.namprd12.prod.outlook.com ([fe80::ccbc:b99c:71e:f761%7]) with mapi id 15.20.4020.022; Tue, 13 Apr 2021 10:21:49 +0000 From: Ori Kam To: Ferruh Yigit , Gregory Etelson CC: "ajit.khaparde@broadcom.com" , "andrew.rybchenko@oktetlabs.ru" , "dev@dpdk.org" , "jerinj@marvell.com" , "olivier.matz@6wind.com" , NBU-Contact-Thomas Monjalon , Slava Ovsiienko , Qi Zhang Thread-Topic: [PATCH v2 1/2] ethdev: add packet integrity checks Thread-Index: AQHXL8Jt8SEPwVVv3kSzW/YVMb8mUKqxP2/wgABJE4CAAHOBEIAAG10AgAABreCAAAXdgIAAG3JQ Date: Tue, 13 Apr 2021 10:21:49 +0000 Message-ID: References: <1617645874-105139-1-git-send-email-orika@nvidia.com> <20210411173414.12568-1-getelson@nvidia.com> <20210411173414.12568-2-getelson@nvidia.com> <527c07fc-8c12-3e8a-cc3c-f6e345ee1c1f@intel.com> <253782ca-bdbf-5212-cdac-c9bb41de3290@intel.com> <3ac7df60-ed3c-9ae3-5306-ae40dbec8e3e@intel.com> <0b143ccf-233e-fe0f-5bd9-52b60407135f@intel.com> In-Reply-To: <0b143ccf-233e-fe0f-5bd9-52b60407135f@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [147.236.145.126] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4a4803c3-7df7-4851-a5df-08d8fe65f2d6 x-ms-traffictypediagnostic: BYAPR12MB2886: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: i5A54k8VidN/u9mh1I72EKQ6Pb6Le69TWRB4qtufuMsE57gKQRzcU6wDaCtxFd22KazqfgBmAkTmQI7ypxAAojVOJP8OZliKsmJLdM6wmuJT12l0M0cJiHpnKSZVPmK0CjQ3CRkIKJjrJSUphKS+v8rXACO5GnF2fTI5PT/5ANEZOk1hPPfhBdsf91SvOPrHtNKMX+465zR+f5uBLI8H5rBa8n/kkE7rihNW+vquOpT3oTPHOQHHqpCcQqIyCeOEuwJwvgUfpSED4kFRmGv4jA4JRfwxD51UVettctb6reacrdCd8+Zxtne2lzGroAGufbSl/j4vvhBAakSRgpdDmxol0wZ1GtRRA/+QBB7hDI7qhio5f4pgRe6pF6x/5DqIi3wTzuAiSNduP7XDzr92dSNr6jEvHF/kKOV9YJaGoyFcqnvil4OlV0OiwQTBMEad03INW7fxLbtMW97HAquSn1Dlio3YfvXMfBlSrYW2jKTbpI+2LkjvcZyj/5aCTAilzdV5WQWHRXlbl70cnovtnFPxNuMTi/QWelGLgpZWPw+jSesSpe/RPwtPXkv4rOOQW/A1uV55HAJd+JPxsXXdvjInm+Cf+8FKOvImUsstwOo= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR12MB4983.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(376002)(136003)(39860400002)(366004)(346002)(55016002)(26005)(110136005)(53546011)(478600001)(4326008)(5660300002)(316002)(122000001)(86362001)(186003)(30864003)(76116006)(38100700002)(66446008)(9686003)(8676002)(66946007)(33656002)(7696005)(8936002)(52536014)(54906003)(66476007)(6506007)(66556008)(64756008)(6636002)(83380400001)(71200400001)(2906002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?bVlwNVQ0TS8vNkZUNWVGTitaS0ZJbGo1azVJYjc5aVd5ZFFxb2t2UzZSY0Ur?= =?utf-8?B?K2RIdGJPQk9oOUZVeDNhN20xZFJhWGR4em1EN1phd09BUHB6K0hiY3NtZDly?= =?utf-8?B?QzhtV3FpRGdGenFpQ0tlSk9MOVVQNFVsMWtvN0ZGcmN2V2FaTkVWNUw3cGVm?= =?utf-8?B?R1BudklHaDhoVlFrWEZxSCs5Y1V0WW1tOEhKK0hmZ3gwV2xiazFERHNiUTg1?= =?utf-8?B?dUV3YnV2Skt3M1lNR3RrWnZMR0RING4vYjNpZVVIUTJrSE52MUxrWis1NGRO?= =?utf-8?B?clJGWVhnanpSUU5XZ0Z2WFFoMkh0RGJ4MDNnUHR3TXlsUy9TR21LUzdxenB1?= =?utf-8?B?WnUyVlpuOUoyVUt3aEh0Sk1QRitjSEpCUjhieEN6VVhkcjd1OW9wQjVTWjZ0?= =?utf-8?B?U3E3VC82a3hqdlprYjVvV2dpb0owOXVRZFdMU053UWVWUTlYTWU4SlZpRy9F?= =?utf-8?B?dVkyZlJrUjhuNWNyRUVQM1RNeGJ4cWtFaHdOWXdhK0VDa09hM1pWN01QNzVo?= =?utf-8?B?M1pEYW1wUnJxc0duM2VmVUJRSUFsYjRweDd1K1llY1V1N05hS1VlcUluVVFu?= =?utf-8?B?SkxqSnU5ZU5IM2czWjZ4aDhqQ0ZKYWxaRUlFZjVCMmxpQW1COEpad2c3ZVFR?= =?utf-8?B?cDdnY0poMzJsc0FVSDdlQXh6NXBVM1k5dXhIQ05ib0hLeUEwZkhiZVU2MWpp?= =?utf-8?B?cGNOMWRmKzFCYUpNaVB1NHMyd1lJMEdEeG53eFE0MjlOcU1UaW5GZ1V1RDN0?= =?utf-8?B?S3Z1MjFYNnhUay9BbzN0c0xNdElENEVPL0lvckNGRkRoUnVlcE4xaTdlTEVM?= =?utf-8?B?RjFxc2haZWxRdTFyV3pCNXNFOHBOaThGTjlwZW5PZlp1R3AxWTZwelN5R3Na?= =?utf-8?B?TTd3UXZWRWFnOURQclhkNWpqeTJERGVEWmhpbTFLckZzZThUaFZUZzdBY1dK?= =?utf-8?B?QTRoRTJnV05hQ1RsOGt0bkNUNHA1ckZpWXVjMFp1cCtJRk5wVUJZTFp6MGM2?= =?utf-8?B?R2VrdHF2WUlLTGJoNDBBS1J6TlJnMEJDUzh5dHVybGNGcHpZSDEwNkF6OGEw?= =?utf-8?B?RjdsMEdFT1pBZ1NFT1R3Mno4SkhaKzVYOVdtNC9COHcvMDNYNFdQV1VyVjVy?= =?utf-8?B?ak1nOVgvb2cxSnl3RVNqMTJ4azROSFhaMlEydWZ6MU5Ga0hOV2VzdnI5TlU4?= =?utf-8?B?QlVxZCtVbFJOajFjRU01YjZsQWdKRFlPTDNLcEhteTdqK1FGa25JbE5YWkxs?= =?utf-8?B?TTdiREtnM2FTVWE2NXVoWmtuZzN1bEp0d0F2ZzY2NmdIU1NHVVdKYkxJYnl5?= =?utf-8?B?Z3lJTE5QeEZIMUVNblBXVHQ4MzRENThia015LzBHbFYwRUVyVUVNWS9EK2cx?= =?utf-8?B?NlNYZnFmN3ZqWlhENlhnb2ZrTzFQOElkNytmV3F4cEwzR0VkVHlGRmw5K2Iy?= =?utf-8?B?WmMrdmhueFNqNnhXZGx6ZTduVEc3ZnBGY2lTUnNnTW5XeU95MkxMU1FtZ2lT?= =?utf-8?B?UkZmaENsN3hMZWpRalBUYUJzM2kvTXZLekt4QXR1L2VxRXNmS1g3cUk2N0hu?= =?utf-8?B?NVh2NmFoUXhHd3pxdkxzWjdvbEdEZGMwK3ZpRGtzRUllNnBVcmc3Y0M0Yk82?= =?utf-8?B?UEpYWGJaN1Awam1uOVNneXI1ckpSZHRETzJhVEd1bzFib0VvZUE5NDZMeTBs?= =?utf-8?B?MVlKWXl0Z3VQM2NlYlF2bVZ0Wk0ySms4cW1uVUVDSWtOakt2VGJLS3RKcGww?= =?utf-8?Q?93BkMDu3gxmLmbScJFMXOtR5rMY6xg0s5hkBiIO?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB4983.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a4803c3-7df7-4851-a5df-08d8fe65f2d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2021 10:21:49.1590 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1BAnm9jkqkIDjKKzkTn/3R8sQFGTX2Ptjm1UORpvNZBkImU9U5zt8CGzUl3gMk0ZUtgy4vhlbt4a+cvDIoHW5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB2886 Subject: Re: [dpdk-dev] [PATCH v2 1/2] ethdev: add packet integrity checks X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxMywgMjAyMSAx MTozMCBBTQ0KPiANCj4gT24gNC8xMy8yMDIxIDk6MTggQU0sIE9yaSBLYW0gd3JvdGU6DQo+ID4g SGkgRmVycnVoLA0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZy b206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDog UmU6IFtQQVRDSCB2MiAxLzJdIGV0aGRldjogYWRkIHBhY2tldCBpbnRlZ3JpdHkgY2hlY2tzDQo+ ID4+DQo+ID4+IE9uIDQvMTMvMjAyMSA4OjEyIEFNLCBPcmkgS2FtIHdyb3RlOg0KPiA+Pj4gSGkg RmVycnVoLA0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+ IEZyb206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gPj4+PiBTdWJq ZWN0OiBSZTogW1BBVENIIHYyIDEvMl0gZXRoZGV2OiBhZGQgcGFja2V0IGludGVncml0eSBjaGVj a3MNCj4gPj4+Pg0KPiA+Pj4+IE9uIDQvMTIvMjAyMSA4OjI2IFBNLCBPcmkgS2FtIHdyb3RlOg0K PiA+Pj4+PiBIaSBGZXJydWgsDQo+ID4+Pj4+DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50ZWwu Y29tPg0KPiA+Pj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MiAxLzJdIGV0aGRldjogYWRkIHBh Y2tldCBpbnRlZ3JpdHkgY2hlY2tzDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24gNC8xMS8yMDIxIDY6 MzQgUE0sIEdyZWdvcnkgRXRlbHNvbiB3cm90ZToNCj4gPj4+Pj4+PiBGcm9tOiBPcmkgS2FtIDxv cmlrYUBudmlkaWEuY29tPg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQ3VycmVudGx5LCBEUERLIGFw cGxpY2F0aW9uIGNhbiBvZmZsb2FkIHRoZSBjaGVja3N1bSBjaGVjaywNCj4gPj4+Pj4+PiBhbmQg cmVwb3J0IGl0IGluIHRoZSBtYnVmLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSG93ZXZlciwgYXMg bW9yZSBhbmQgbW9yZSBhcHBsaWNhdGlvbnMgYXJlIG9mZmxvYWRpbmcgc29tZSBvciBhbGwNCj4g Pj4+Pj4+PiBsb2dpYyBhbmQgYWN0aW9uIHRvIHRoZSBIVywgdGhlcmUgaXMgYSBuZWVkIHRvIGNo ZWNrIHRoZSBwYWNrZXQNCj4gPj4+Pj4+PiBpbnRlZ3JpdHkgc28gdGhlIHJpZ2h0IGRlY2lzaW9u IGNhbiBiZSB0YWtlbi4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFRoZSBhcHBsaWNhdGlvbiBsb2dp YyBjYW4gYmUgcG9zaXRpdmUgbWVhbmluZyBpZiB0aGUgcGFja2V0IGlzDQo+ID4+Pj4+Pj4gdmFs aWQganVtcCAvIGRvICBhY3Rpb25zLCBvciBuZWdhdGl2ZSBpZiBwYWNrZXQgaXMgbm90IHZhbGlk DQo+ID4+Pj4+Pj4ganVtcCB0byBTVyAvIGRvIGFjdGlvbnMgKGxpa2UgZHJvcCkgIGEsIGFuZCBh ZGQgZGVmYXVsdCBmbG93DQo+ID4+Pj4+Pj4gKG1hdGNoIGFsbCBpbiBsb3cgcHJpb3JpdHkpIHRo YXQgd2lsbCBkaXJlY3QgdGhlIG1pc3MgcGFja2V0DQo+ID4+Pj4+Pj4gdG8gdGhlIG1pc3MgcGF0 aC4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNpbmNlIGN1cnJlbmx0eSBydGVfZmxvdyB3b3JrcyBp biBwb3NpdGl2ZSB3YXkgdGhlIGFzc3VtdGlvbiBpcw0KPiA+Pj4+Pj4+IHRoYXQgdGhlIHBvc3Rp dmUgd2F5IHdpbGwgYmUgdGhlIGNvbW1vbiB3YXkgaW4gdGhpcyBjYXNlIGFsc28uDQo+ID4+Pj4+ Pj4NCj4gPj4+Pj4+PiBXaGVuIHRoaW5raW5nIHdoYXQgaXMgdGhlIGJlc3QgQVBJIHRvIGltcGxl bWVudCBzdWNoIGZlYXR1cmUsDQo+ID4+Pj4+Pj4gd2UgbmVlZCB0byBjb25zaWR1cmUgdGhlIGZv bGxvd2luZyAoaW4gbm8gc3BlY2lmaWMgb3JkZXIpOg0KPiA+Pj4+Pj4+IDEuIEFQSSBicmVha2Fn ZS4NCj4gPj4+Pj4+PiAyLiBTaW1wbGljaXR5Lg0KPiA+Pj4+Pj4+IDMuIFBlcmZvcm1hbmNlLg0K PiA+Pj4+Pj4+IDQuIEhXIGNhcGFiaWxpdGllcy4NCj4gPj4+Pj4+PiA1LiBydGVfZmxvdyBsaW1p dGF0aW9uLg0KPiA+Pj4+Pj4+IDYuIEZsZXhhYmlsaXR5Lg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4g Rmlyc3Qgb3B0aW9uOiBBZGQgaW50ZWdyaXR5IGZsYWdzIHRvIGVhY2ggb2YgdGhlIGl0ZW1zLg0K PiA+Pj4+Pj4+IEZvciBleGFtcGxlIGFkZCBjaGVja3N1bV9vayB0byBpcHY0IGl0ZW0uDQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4+PiBQcm9zOg0KPiA+Pj4+Pj4+IDEuIE5vIG5ldyBydGVfZmxvdyBpdGVt Lg0KPiA+Pj4+Pj4+IDIuIFNpbXBsZSBpbiB0aGUgd2F5IHRoYXQgb24gZWFjaCBpdGVtIHRoZSBh cHAgY2FuIHNlZQ0KPiA+Pj4+Pj4+IHdoYXQgY2hlY2tzIGFyZSBhdmFpbGFibGUuDQo+ID4+Pj4+ Pj4NCj4gPj4+Pj4+PiBDb25zOg0KPiA+Pj4+Pj4+IDEuIEFQSSBicmVha2FnZS4NCj4gPj4+Pj4+ PiAyLiBpbmNyZWFzZSBudW1iZXIgb2YgZmxvd3MsIHNpbmNlIGFwcCBjYW4ndCBhZGQgZ2xvYmFs IHJ1bGUgYW5kDQo+ID4+Pj4+Pj4gICAgICAgIG11c3QgaGF2ZSBkZWRpY2F0ZWQgZmxvdyBmb3Ig ZWFjaCBvZiB0aGUgZmxvdyBjb21iaW5hdGlvbnMsIGZvcg0KPiA+Pj4+IGV4YW1wbGUNCj4gPj4+ Pj4+PiAgICAgICAgbWF0Y2hpbmcgb24gaWNtcCB0cmFmZmljIG9yIFVEUC9UQ1AgIHRyYWZmaWMg d2l0aCBJUHY0IC8gSVB2NiB3aWxsDQo+ID4+Pj4+Pj4gICAgICAgIHJlc3VsdCBpbiA1IGZsb3dz Lg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gU2Vjb25kIG9wdGlvbjogZGVkaWNhdGVkIGl0ZW0NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+IFByb3M6DQo+ID4+Pj4+Pj4gMS4gTm8gQVBJIGJyZWFrYWdlLCBh bmQgdGhlcmUgd2lsbCBiZSBubyBmb3Igc29tZSB0aW1lIGR1ZSB0byBoYXZpbmcNCj4gPj4+Pj4+ PiAgICAgICAgZXh0cmEgc3BhY2UuIChieSB1c2luZyBiaXRzKQ0KPiA+Pj4+Pj4+IDIuIEp1c3Qg b25lIGZsb3cgdG8gc3VwcG9ydCB0aGUgaWNtcCBvciBVRFAvVENQIHRyYWZmaWMgd2l0aCBJUHY0 IC8NCj4gPj4+Pj4+PiAgICAgICAgSVB2Ni4NCj4gPj4+Pj4+PiAzLiBTaW1wbGljaXR5IGFwcGxp Y2F0aW9uIGNhbiBqdXN0IGxvb2sgYXQgb25lIHBsYWNlIHRvIHNlZSBhbGwgcG9zc2libGUNCj4g Pj4+Pj4+PiAgICAgICAgY2hlY2tzLg0KPiA+Pj4+Pj4+IDQuIEFsbG93IGZ1dHVyZSBzdXBwb3J0 IGZvciBtb3JlIHRlc3RzLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gQ29uczoNCj4gPj4+Pj4+PiAx LiBOZXcgaXRlbSwgdGhhdCBob2xkcyBudW1iZXIgb2YgZmllbGRzIGZyb20gZGlmZmVyZW50IGl0 ZW1zLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gRm9yIHN0YXJ0ZXIgdGhlIGZvbGxvd2luZyBiaXRz IGFyZSBzdWdnZXN0ZWQ6DQo+ID4+Pj4+Pj4gMS4gcGFja2V0X29rIC0gbWVhbnMgdGhhdCBhbGwg SFcgY2hlY2tzIGRlcGVuZGluZyBvbiBwYWNrZXQgbGF5ZXINCj4gaGF2ZQ0KPiA+Pj4+Pj4+ICAg ICAgICBwYXNzZWQuIFRoaXMgbWF5IG1lYW4gdGhhdCBpbiBzb21lIEhXIHN1Y2ggZmxvdyBzaG91 bGQgYmUNCj4gc3BsaXRlZA0KPiA+PiB0bw0KPiA+Pj4+Pj4+ICAgICAgICBudW1iZXIgb2YgZmxv d3Mgb3IgZmFpbC4NCj4gPj4+Pj4+PiAyLiBsMl9vayAtIGFsbCBjaGVjayBmbG9yIGxheWVyIDIg aGF2ZSBwYXNzZWQuDQo+ID4+Pj4+Pj4gMy4gbDNfb2sgLSBhbGwgY2hlY2sgZmxvciBsYXllciAy IGhhdmUgcGFzc2VkLiBJZiBwYWNrZXQgZG9lbnMndCBoYXZlDQo+ID4+Pj4+Pj4gICAgICAgIGwz IGxheWVyIHRoaXMgY2hlY2sgc2hvdWRsIGZhaWwuDQo+ID4+Pj4+Pj4gNC4gbDRfb2sgLSBhbGwg Y2hlY2sgZmxvciBsYXllciAyIGhhdmUgcGFzc2VkLiBJZiBwYWNrZXQgZG9lc24ndA0KPiA+Pj4+ Pj4+ICAgICAgICBoYXZlIGw0IGxheWVyIHRoaXMgY2hlY2sgc2hvdWxkIGZhaWwuDQo+ID4+Pj4+ Pj4gNS4gbDJfY3JjX29rIC0gdGhlIGxheWVyIDIgY3JjIGlzIE8uSy4gaXQgaXMgcG9zc2libGUg dGhhdCB0aGUgY3JjIHdpbGwNCj4gPj4+Pj4+PiAgICAgICAgYmUgTy5LLiBidXQgdGhlIGwzX29r IHdpbGwgYmUgMC4gaXQgaXMgbm90IHBvc3NpYmxlIHRoYXQgbDJfY3JjX29rIHdpbGwNCj4gPj4+ Pj4+PiAgICAgICAgYmUgMCBhbmQgdGhlIGwzX29rIHdpbGwgYmUgMC4NCj4gPj4+Pj4+PiA2LiBp cHY0X2NzdW1fb2sgLSBJUHY0IGNoZWNrc3VtIGlzIE8uSy4NCj4gPj4+Pj4+PiA3LiBsNF9jc3Vt X29rIC0gbGF5ZXIgNCBjaGVja3N1bSBpcyBPLksuDQo+ID4+Pj4+Pj4gOC4gbDNfbGVuX09LIC0g Y2hlY2sgdGhhdCB0aGUgcmVwb3J0ZWQgbGF5ZXIgMyBsZW4gaXMgc21hbGxlciB0aGFuIHRoZQ0K PiA+Pj4+Pj4+ICAgICAgICBwYWNrZXQgbGVuLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gRXhhbXBs ZSBvZiB1c2FnZToNCj4gPj4+Pj4+PiAxLiBjaGVjayBwYWNrZXRzIGZyb20gYWxsIHBvc3NpYmxl IGxheWVycyBmb3IgaW50ZWdyaXR5Lg0KPiA+Pj4+Pj4+ICAgICAgICBmbG93IGNyZWF0ZSBpbnRl Z3JpdHkgc3BlYyBwYWNrZXRfb2sgPSAxIG1hc2sgcGFja2V0X29rID0gMSAuLi4uLg0KPiA+Pj4+ Pj4+DQo+ID4+Pj4+Pj4gMi4gQ2hlY2sgb25seSBwYWNrZXQgd2l0aCBsYXllciA0IChVRFAgLyBU Q1ApDQo+ID4+Pj4+Pj4gICAgICAgIGZsb3cgY3JlYXRlIGludGVncml0eSBzcGVjIGwzX29rID0g MSwgbDRfb2sgPSAxIG1hc2sgbDNfb2sgPSAxDQo+IGw0X29rID0NCj4gPj4gMQ0KPiA+Pj4+Pj4+ DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSGkgT3JpLA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IElzIHRoZSBp bnRlbnRpb24gb2YgdGhlIEFQSSBqdXN0IGZpbHRlcmluZywgbGlrZSBhcHBseSBzb21lIGFjdGlv biB0byB0aGUNCj4gPj4+Pj4+IHBhY2tldHMgYmFzZWQgb24gdGhlaXIgaW50ZWdyYXRpb24gc3Rh dHVzLiBMaWtlIGRyb3AgcGFja2V0cyB0aGVpciBsMl9jcmMNCj4gPj4+Pj4+IGNoZWNrc3VtIGZh aWxlZD8gSGVyZSBjb25maWd1cmF0aW9uIGlzIGRvbmUgYnkgZXhpc3Rpbmcgb2ZmbG9hZCBBUElz Lg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IE9yIGlzIHRoZSBpbnRlbnRpb24gdG8gY29uZmlndXJlIHRo ZSBpbnRlZ3JhdGlvbiBjaGVjayBvbiBOSUMsIGxpa2UgdG8gc2F5DQo+ID4+Pj4+PiBlbmFibGUg bGF5ZXIgMiBjaGVja3MsIGFuZCBkbyB0aGUgYWN0aW9uIGJhc2VkIG9uIGludGVncmF0aW9uIGNo ZWNrDQo+ID4+IHN0YXR1cy4NCj4gPj4+Pj4+DQo+ID4+Pj4+IElmIEkgdW5kZXJzdGFuZCB5b3Vy IHF1ZXN0aW9uIHRoZSBmaXJzdCBjYXNlIGlzIHRoZSBvbmUgdGhhdCB0aGlzIHBhdGNoIGlzDQo+ ID4+Pj4gdGFyZ2V0aW5nLg0KPiA+Pj4+PiBtZWFuaW5nIGJhc2VkIG9uIHRob3NlIGJpdHMgcm91 dGUvYXBwbHkgYWN0aW9ucyB0byB0aGUgcGFja2V0IHdoaWxlIHN0aWxsDQo+IGluDQo+ID4+Pj4g dGhlDQo+ID4+Pj4+IEhXLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGlzIGlzIG5vdCBkZXNpZ24gdG8g ZW5hYmxlIHRoZSBxdWV1ZSBzdGF0dXMgYml0cy4NCj4gPj4+Pj4gSW4gdGhlIHVzZSBjYXNlIHN1 Z2dlc3Rpb24gYnkgdGhpcyBwYXRjaCwganVzdCBsaWtlIHlvdSBzYWlkIHRoZSBhcHANCj4gPj4+ Pj4gY2FuIGRlY2lkZSB0byBkcm9wIHRoZSBwYWNrZXQgYmVmb3JlIGFycml2aW5nIHRvIHRoZSBx dWV1ZSwgYXBwbGljYXRpb24NCj4gPj4gbWF5DQo+ID4+Pj4gYWxzbw0KPiA+Pj4+PiB1c2UgdGhl IG1hcmsgKyBxdWV1ZSBhY3Rpb24gdG8gbWFyayB0byB0aGUgU1cgd2hhdCBpcyB0aGUgaXNzdWUg d2l0aA0KPiB0aGlzDQo+ID4+Pj4gcGFja2V0Lg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJJ20gbm90IHN1 cmUgSSB1bmRlcnN0YW5kIHlvdXIgY29tbWVudCBhYm91dCAiaGVyZSBjb25maWd1cmF0aW9uIGlz DQo+IGRvbmUNCj4gPj4gYnkNCj4gPj4+PiBleGlzdGluZw0KPiA+Pj4+PiBvZmZsb2FkIEFQSSIg ZG8geW91IG1lYW4gbGlrZSB0aGUgZHJvcCAvICBqdW1wIHRvIHRhYmxlIC8gYW55IG90aGVyDQo+ IHJ0ZV9mbG93DQo+ID4+Pj4gYWN0aW9uPw0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+ Pj4gSSBhbSBhc2tpbmcgYmVjYXVzZSBkaWZmZXJlbmNlIGJldHdlZW4gZGV2aWNlIGNvbmZpZ3Vy YXRpb24gYW5kIHBhY2tldA0KPiA+Pj4+IGZpbHRlcmluZw0KPiA+Pj4+IHNlZW1zIGdldHRpbmcg bW9yZSBibHVycmVkIGluIHRoZSBmbG93IEFQSS4NCj4gPj4+Pg0KPiA+Pj4+IEN1cnJlbnRseSBM NCBjaGVja3N1bSBvZmZsb2FkIGlzIHJlcXVlc3RlZCBieSBhcHBsaWNhdGlvbiB2aWEgc2V0dGlu Zw0KPiA+Pj4+ICdERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0nIChVRFAvU0NUUC8uLi4pIG9mZmxv YWQgZmxhZ3MuIFRoaXMgaXMgdGhlDQo+ID4+IHdheQ0KPiA+Pj4+IHRvDQo+ID4+Pj4gY29uZmln dXJlIEhXLg0KPiA+Pj4+DQo+ID4+Pj4gSXMgdGhlIGludGVudGlvbiBvZiB0aGlzIHBhdGNoIGRv aW5nIHBhY2tldCBmaWx0ZXJpbmcgYWZ0ZXIgZGV2aWNlIGNvbmZpZ3VyZWQNCj4gPj4+PiB3aXRo IGFib3ZlIG9mZmxvYWQgQVBJPw0KPiA+Pj4+DQo+ID4+Pj4gT3IgaXMgdGhlIGludGVudGlvbiBI VyB0byBiZSBjb25maWd1cmVkIHZpYSBmbG93IEFQSSwgbGlrZSBpZiAibDRfb2sgPSAxIiBpcw0K PiBzZXQNCj4gPj4+PiBpbiB0aGUgcnVsZSwgd2lsbCBpdCBlbmFibGUgTDQgY2hlY2tzIGZpcnN0 IGFuZCBkbyB0aGUgZmlsdGVyaW5nIGxhdGVyPw0KPiA+Pj4+DQo+ID4+Pj4gSWYgbm90IHdoYXQg aXMgdGhlIGV4cGVjdGVkIGJlaGF2aW9yIHdoZW4gaW50ZWdyYXRpb24gY2hlY2tzIGFyZSBub3QN Cj4gPj4gZW5hYmxlZA0KPiA+Pj4+IHdoZW4gdGhlIHJ1bGUgaXMgY3JlYXRlZD8NCj4gPj4+Pg0K PiA+Pj4NCj4gPj4+IExldCBtZSB0cnkgdG8gZXhwbGFpbiBpdCBpbiBhIGRpZmZlcmVudCB3YXk6 DQo+ID4+PiBXaGVuIGFwcGxpY2F0aW9uIGVuYWJsZXMgJ0RFVl9SWF9PRkZMT0FEX1RDUF9DS1NV TScgKFVEUC9TQ1RQLy4uLikNCj4gPj4gb2ZmbG9hZCBmbGFncw0KPiA+Pj4gSXQgb25seSBtZWFu cyB0aGF0IHRoZSBIVyB3aWxsIHJlcG9ydCB0aGUgY2hlY2tzdW0gaW4gdGhlIG1idWYuDQo+ID4+ DQo+ID4+IEl0IGlzIG5vdCBvbmx5IGZvciByZXBvcnRpbmcgaW4gbWJ1ZiwgaXQgYWxzbyBjb25m aWd1cmVzIHRoZSBIVyB0byBlbmFibGUgdGhlDQo+ID4+IHJlbGV2YW50IGNoZWNrcy4gVGhpcyBp cyBmb3IgZGV2aWNlIGNvbmZpZ3VyYXRpb24uDQo+ID4+DQo+ID4+IEFyZSB0aGVzZSBjaGVja3Mg YWx3YXlzIGVuYWJsZWQgaW4gbWx4IGRldmljZXM/DQo+ID4+DQo+ID4gWWVzLCB0aGV5IGFyZSBh bHdheXMgb24uDQo+ID4gVGhlIFJYIG9mZmxvYWQganVzdCBlbmFibGVzIHRoZSBSWCBidXJzdCB0 byB1cGRhdGUgdGhlIG1idWYuDQo+ID4gSW4gYW55IGNhc2UgaWYgSFcgbmVlZHMgdG8gYmUgZW5h YmxlZCwgdGhlbg0KPiA+IHRoZSBQTUQgY2FuIGVuYWJsZSB0aGUgSFcgd2hlbiBmaXJzdCBmbG93 IGlzIGluc2VydGVkIGFuZCBqdXN0IG5vdA0KPiA+IGNvcHkgdGhlIHZhbHVlIHRoZSBtYnVmLg0K PiA+DQo+IA0KPiBUaGlzIHdhcyBteSBpbml0aWFsIHF1ZXN0aW9uLCBpZiB0aGUgbmV3IHJ1bGUg aXMganVzdCBmb3IgZmlsdGVyaW5nIG9yDQo+ICJjb25maWd1cmluZyBkZXZpY2UgKyBmaWx0ZXJp bmciLg0KPiANCj4gU28sIHR3byBxdWVzdGlvbnM6DQo+IDEpIERvIHdlIHdhbnQgdG8gZHVwbGlj YXRlIHRoZSB3YXkgdG8gY29uZmlndXJlIHRoZSBIVyBjaGVja3MNCj4gMikgRG8gd2Ugd2FudCB3 YW50IHRvIHVzZSBmbG93IEFQSSBhcyBhIGRldmljZSBjb25maWd1cmF0aW9uIGludGVyZmFjZSwg KGFzIHNhaWQNCj4gYmVmb3JlIEkgYW0gZmVlbGluZyB3ZSBhcmUgZ29pbmcgdGhhdCBwYXRoIG1v cmUgYW5kIG1vcmUpDQo+IA0KPiBTaW5jZSB0aGUgSFcgaXMgYWx3YXlzIG9uIGluIHlvdXIgY2Fz ZSB0aGF0IGlzIG5vdCBhIGJpZyBwcm9ibGVtIGZvciB5b3UgYnV0ICgxKQ0KPiBjYW4gY2F1c2Ug dHJvdWJsZSBmb3Igb3RoZXIgdmVuZG9ycywgZm9yIHRoZSBjYXNlcyBsaWtlIGlmIEhXIGNoZWNr IGVuYWJsZWQgdmlhDQo+IGZsb3cgQVBJLCBsYXRlciBpdCBpcyBkaXNhYmxlZCBieSBjbGVhcmlu ZyB0aGUgb2ZmbG9hZCBmbGFnLCB3aGF0IHdpbGwgYmUgdGhlDQo+IHN0YXR1cyBvZiB0aGUgZmxv dyBydWxlPw0KPiANCg0KMS4gZnJvbSBteSBwb2ludCBvZiB2aWV3IGl0IGlzIG5vdCBkdXBsaWNh dGlvbiBzaW5jZSBpZiB0aGUgUlggb2ZmbG9hZCBpcyBlbmFibGVkIHRoZW4gdGhlcmUgaXMgYWxz bw0Kc2V0dGluZyBvZiB0aGUgbWV0YWRhdGEgaW4gdGhlIFJYLg0KV2hpbGUgaWYgdGhlIFJYIG9m ZmxvYWQgaXMgbm90IGVuYWJsZWQgdGhlbiBldmVuIGlmIHRoZSBIVyBpcyB3b3JraW5nIHRoZXJl IGlzIG5vIG5lZWQgdG8gY29weQ0KdGhlIHJlc3VsdCB0byB0aGUgbWJ1ZiBmaWVsZHMuDQoyLiBz ZWUgbXkgcmVzcG9uc2UgYWJvdmUuDQpJIHRoaW5rIHRoYXQgc2luY2UgcnRlX2Zsb3cgaXMgd29y a2luZyB3aXRoIHRoZSBIVywgYXQgYW55IGNhc2UgY3JlYXRpbmcgZmxvdyBtYXkgbmVlZCB0byBl bmFibGUgc29tZSBIVy4NCg0KSSB0aGluayBhdCBhbnkgY2FzZSB3aGVuIG9mZmxvYWRpbmcgdXNp bmcgcXVldWVzIHRoZSBkZXZpY2UgbXVzdCBiZSBzdG9wcGVkIChhdCBsZWFzdCBpbiBzb21lDQpI VykgYW5kIGlmIHRoZSBkZXZpY2UgaXMgc3RvcHBlZCBpbiBhbnkgY2FzZSBhbGwgZmxvd3MgYXJl IHJlbW92ZWQgc28gSSBkb24ndCBzZWUgDQp0aGUgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSByeCBx dWV1ZSBvZmZsb2FkIGFuZCB0aGUgcnRlX2Zsb3cgb25lLg0KbGlrZSBJIHNhaWQgZXZlbiBpZiB0 aGUgSFcgaXMgZW5hYmxlZCBpdCBkb2Vzbid0IG1lYW4gdGhlIG1idWYgc2hvdWxkIGJlIHVwZGF0 ZWQNCih0aGUgbWJ1ZiBzaG91bGQgYmUgdXBkYXRlZCBvbmx5IGlmIHRoZSBxdWV1ZSBvZmZsb2Fk IHdhcyBlbmFibGVkLiApDQoNCj4gPj4+IExldHMgY2FsbCB0aGlzIG1vZGUgUlggcXVldWUgb2Zm bG9hZC4NCj4gPj4+DQo+ID4+PiBOb3cgSSdtIGludHJvZHVjaW5nIHJ0ZV9mbG93IG9mZmxvYWQs DQo+ID4+PiBUaGlzIG1lYW5zIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbiBjcmVhdGUgcnRlX2Zs b3cgdGhhdCBtYXRjaGVzIHRob3NlDQo+ID4+PiBiaXRzIGFuZCBiYXNlZCBvbiB0aGF0IHRha2Ug ZGlmZmVyZW50IGFjdGlvbnMgdGhhdCBhcmUgZGVmaW5lZCBieSB0aGUNCj4gcnRlX2Zsb3cuDQo+ ID4+PiBFeGFtcGxlIGZvciBzdWNoIGEgZmxvdw0KPiA+Pj4gRmxvdyBjcmVhdGUgMCBpbmdyZXNz IHBhdHRlcm4gaW50ZWdyaXR5IHNwZWMgcGFja2V0X29rID0gMCBtYXNrIHBhY2tldF9vaw0KPiA9 DQo+ID4+IDEgLyBlbmQgYWN0aW9ucyBjb3VudCAvIGRyb3AgLyBlbmQNCj4gPj4+DQo+ID4+PiBP ZmZsb2FkaW5nIHN1Y2ggYSBmbG93IHdpbGwgcmVzdWx0IHRoYXQgYWxsIGludmFsaWQgcGFja2V0 cyB3aWxsIGJlIGNvdW50ZWQNCj4gYW5kDQo+ID4+IGRyb3BwZWQsIGluIHRoZSBIVw0KPiA+Pj4g c28gZXZlbiBpZiB0aGUgUlggcXVldWUgb2ZmbG9hZCB3YXMgZW5hYmxlZCwgbm8gaW52YWxpZCBw YWNrZXRzIHdpbGwgYXJyaXZlDQo+IHRvDQo+ID4+IHRoZSBhcHBsaWNhdGlvbi4NCj4gPj4+DQo+ ID4+PiBJbiBvdGhlciBjYXNlIGxldHMgYXNzdW1lIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHdhbnRz IGFsbCB2YWxpZCBwYWNrZXRzIHRvDQo+IGp1bXANCj4gPj4gdG8gdGhlIG5leHQgZ3JvdXAsDQo+ ID4+PiBhbmQgYWxsIHRoZSByZXNldCBvZiB0aGUgcGFja2V0cyB3aWxsIGdvIHRvIFNXLiAod2Ug Y2FuIGFzc3VtZSB0aGF0IGxhdGVyIGluDQo+ID4+IHRoZSBwaXBlbGluZSBhbHNvIHZhbGlkIHBh Y2tldHMNCj4gPj4+IHdpbGwgYXJyaXZlIHRvIHRoZSBhcHBsaWNhdGlvbikNCj4gPj4+IEZsb3cg Y3JlYXRlIDAgaW5ncmVzcyBwYXR0ZXJuIGludGVncml0eSBzcGVjIHBhY2tldF9vayA9IDEgbWFz ayBwYWNrZXRfb2sNCj4gPQ0KPiA+PiAxIC8gZW5kIGFjdGlvbnMgIGp1bXAgZ3JvdXAgMSAvIGVu ZA0KPiA+Pj4gRmxvdyBjcmVhdGUgMCBwcmlvcml0eSAxIHBhdHRlcm4gZXRoIC8gZW5kIGFjdGlv bnMgcnNzIC8gZW5kDQo+ID4+Pg0KPiA+Pj4gSW4gdGhpcyBjYXNlIGlmIHRoZSBhcHBsaWNhdGlv biBlbmFibGVkIHRoZSBSWCBvZmZsb2FkIHRoZW4gaWYgdGhlIGFwcGxpY2F0aW9uDQo+ID4+IHdp bGwgcmVjZWl2ZSBpbnZhbGlkIHBhY2tldA0KPiA+Pj4gYWxzbyB0aGUgZmxhZyBpbiB0aGUgbWJ1 ZiB3aWxsIGJlIHNldC4NCj4gPj4+DQo+ID4+DQo+ID4+IElmIGFwcGxpY2F0aW9uIG5vdCBlbmFi bGVkIHRoZSBSeCBvZmZsb2FkIHRoYXQgbWVhbnMgSFcgY2hlY2tzIGFyZSBub3QNCj4gPj4gZW5h YmxlZCwNCj4gPj4gc28gSFcgY2FuJ3Qga25vdyBpZiBhIHBhY2tldCBpcyBPSyBvciBub3QsIHJp Z2h0Lg0KPiA+PiBJbiB0aGF0IGNhc2UsIGZvciBhYm92ZSBydWxlLCBJIGV4cGVjdCBub25lIG9m IHRoZSBwYWNrZXRzIHRvIG1hdGNoLCBzbyBub25lDQo+ID4+IHdpbGwganVtcCB0byBuZXh0IGdy b3VwLiBBcmUgd2UgaW4gdGhlIHNhbWUgcGFnZSBoZXJlPw0KPiA+Pg0KPiA+PiBPciBkbyB5b3Ug ZXhwZWN0IGFib3ZlIHJ1bGUgY29uZmlndXJlIHRoZSBIVyB0byBlbmFibGUgdGhlIHJlbGV2YW50 IEhXDQo+ID4+IGNoZWNrcyBmaXJzdD8NCj4gPj4NCj4gPiBJZiB0aGlzIGlzIHJlcXVpcmVkIGJ5 IEhXIHRoZW4geWVzLg0KPiA+IHBsZWFzZSBzZWUgbXkgYW5zd2VyIGFib3ZlLg0KPiA+DQo+ID4+ PiBBcyB5b3UgY2FuIHNlZSB0aG9zZSB0d28gb2ZmbG9hZHMgbW9kZSBhcmUgY29tcGxlbWVudGFy eSB0byBlYWNoIG90aGVyDQo+ID4+IGFuZCBvbmUgZG9lc24ndCBmb3JjZSB0aGUgb3RoZXIgb25l IGluIGFueQ0KPiA+Pj4gd2F5Lg0KPiA+Pj4NCj4gPj4+IEkgaG9wZSB0aGlzIGlzIGNsZWFyZXIu DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogT3JpIEth bSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gPj4+Pj4+PiAtLS0NCj4gPj4+Pj4+PiB2MjogZml4IGNv bXBpbGF0aW9uIGVycm9yDQo+ID4+Pj4+Pj4gLS0tDQo+ID4+Pj4+Pj4gICAgICBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0IHwgMTkgKysrKysrKysrKysrDQo+ID4+Pj4+Pj4gICAg ICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oICAgICAgIHwgNDcNCj4gPj4+PiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4+PiAgICAgIDIgZmlsZXMgY2hhbmdlZCwg NjYgaW5zZXJ0aW9ucygrKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RvYy9n dWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QNCj4gPj4+Pj4+IGIvZG9jL2d1aWRlcy9wcm9n X2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+Pj4+Pj4+IGluZGV4IGUxYjkzZWNlZGYuLjg3ZWY1OTE0 MDUgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93 LnJzdA0KPiA+Pj4+Pj4+ICsrKyBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QN Cj4gPj4+Pj4+PiBAQCAtMTM5OCw2ICsxMzk4LDI1IEBAIE1hdGNoZXMgYSBlQ1BSSSBoZWFkZXIu DQo+ID4+Pj4+Pj4gICAgICAtIGBgaGRyYGA6IGVDUFJJIGhlYWRlciBkZWZpbml0aW9uIChgYHJ0 ZV9lY3ByaS5oYGApLg0KPiA+Pj4+Pj4+ICAgICAgLSBEZWZhdWx0IGBgbWFza2BgIG1hdGNoZXMg bm90aGluZywgZm9yIGFsbCBlQ1BSSSBtZXNzYWdlcy4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICtJ dGVtOiBgYFBBQ0tFVF9JTlRFR1JJVFlfQ0hFQ0tTYGANCj4gPj4+Pj4+PiArXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eDQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICtNYXRjaGVzIHBh Y2tldCBpbnRlZ3JpdHkuDQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICstIGBgbGV2ZWxgYDogdGhl IGVuY2Fwc3VsYXRpb24gbGV2ZWwgdGhhdCBzaG91bGQgYmUgY2hlY2tlZC4gbGV2ZWwgMA0KPiA+ PiBtZWFucw0KPiA+Pj4+IHRoZQ0KPiA+Pj4+Pj4+ICsgIGRlZmF1bHQgUE1EIG1vZGUgKENhbiBi ZSBpbm5lciBtb3N0IC8gb3V0ZXJtb3N0KS4gdmFsdWUgb2YgMQ0KPiBtZWFucw0KPiA+Pj4+Pj4g b3V0ZXJtb3N0DQo+ID4+Pj4+Pj4gKyAgYW5kIGhpZ2hlciB2YWx1ZSBtZWFucyBpbm5lciBoZWFk ZXIuIFNlZSBhbHNvIFJTUyBsZXZlbC4NCj4gPj4+Pj4+PiArLSBgYHBhY2tldF9va2BgOiBBbGwg SFcgcGFja2V0IGludGVncml0eSBjaGVja3MgaGF2ZSBwYXNzZWQgYmFzZWQgb24NCj4gPj4gdGhl DQo+ID4+Pj4+PiBtYXgNCj4gPj4+Pj4+PiArICBsYXllciBvZiB0aGUgcGFja2V0Lg0KPiA+Pj4+ Pj4+ICsgIGxheWVyIG9mIHRoZSBwYWNrZXQuDQo+ID4+Pj4+Pj4gKy0gYGBsMl9va2BgOiBhbGwg bGF5ZXIgMiBIVyBpbnRlZ3JpdHkgY2hlY2tzIHBhc3NlZC4NCj4gPj4+Pj4+PiArLSBgYGwzX29r YGA6IGFsbCBsYXllciAzIEhXIGludGVncml0eSBjaGVja3MgcGFzc2VkLg0KPiA+Pj4+Pj4+ICst IGBgbDRfb2tgYDogYWxsIGxheWVyIDMgSFcgaW50ZWdyaXR5IGNoZWNrcyBwYXNzZWQuDQo+ID4+ Pj4+Pg0KPiA+Pj4+Pj4gcy9sYXllciAzLyBsYXllciA0Lw0KPiA+Pj4+Pj4NCj4gPj4+Pj4gV2ls bCBmaXguDQo+ID4+Pj4+DQo+ID4+Pj4+Pj4gKy0gYGBsMl9jcmNfb2tgYDogbGF5ZXIgMiBjcmMg Y2hlY2sgcGFzc2VkLg0KPiA+Pj4+Pj4+ICstIGBgaXB2NF9jc3VtX29rYGA6IGlwdjQgY2hlY2tz dW0gY2hlY2sgcGFzc2VkLg0KPiA+Pj4+Pj4+ICstIGBgbDRfY3N1bV9va2BgOiBsYXllciA0IGNo ZWNrc3VtIGNoZWNrIHBhc3NlZC4NCj4gPj4+Pj4+PiArLSBgYGwzX2xlbl9va2BgOiB0aGUgbGF5 ZXIgMyBsZW4gaXMgc21hbGxlciB0aGFuIHRoZSBwYWNrZXQgbGVuLg0KPiA+Pj4+Pj4+ICsNCj4g Pj4+Pj4+PiAgICAgIEFjdGlvbnMNCj4gPj4+Pj4+PiAgICAgIH5+fn5+fn4NCj4gPj4+Pj4+Pg0K PiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oIGIvbGli L2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+Pj4+Pj4+IGluZGV4IDZjYzU3MTM2YWMuLjc3 NDcxYWYyYzQgMTAwNjQ0DQo+ID4+Pj4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zs b3cuaA0KPiA+Pj4+Pj4+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPj4+ Pj4+PiBAQCAtNTUxLDYgKzU1MSwxNSBAQCBlbnVtIHJ0ZV9mbG93X2l0ZW1fdHlwZSB7DQo+ID4+ Pj4+Pj4gICAgICAJICogU2VlIHN0cnVjdCBydGVfZmxvd19pdGVtX2dlbmV2ZV9vcHQNCj4gPj4+ Pj4+PiAgICAgIAkgKi8NCj4gPj4+Pj4+PiAgICAgIAlSVEVfRkxPV19JVEVNX1RZUEVfR0VORVZF X09QVCwNCj4gPj4+Pj4+PiArDQo+ID4+Pj4+Pj4gKwkvKioNCj4gPj4+Pj4+PiArCSAqIFtNRVRB XQ0KPiA+Pj4+Pj4+ICsJICoNCj4gPj4+Pj4+PiArCSAqIE1hdGNoZXMgb24gcGFja2V0IGludGVn cml0eS4NCj4gPj4+Pj4+PiArCSAqDQo+ID4+Pj4+Pj4gKwkgKiBTZWUgc3RydWN0IHJ0ZV9mbG93 X2l0ZW1faW50ZWdyaXR5Lg0KPiA+Pj4+Pj4+ICsJICovDQo+ID4+Pj4+Pj4gKwlSVEVfRkxPV19J VEVNX1RZUEVfSU5URUdSSVRZLA0KPiA+Pj4+Pj4+ICAgICAgfTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+ Pj4+ICAgICAgLyoqDQo+ID4+Pj4+Pj4gQEAgLTE2ODUsNiArMTY5NCw0NCBAQCBydGVfZmxvd19p dGVtX2dlbmV2ZV9vcHRfbWFzayA9IHsNCj4gPj4+Pj4+PiAgICAgIH07DQo+ID4+Pj4+Pj4gICAg ICAjZW5kaWYNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICtfX2V4dGVuc2lvbl9fDQo+ID4+Pj4+Pj4g K3N0cnVjdCBydGVfZmxvd19pdGVtX2ludGVncml0eSB7DQo+ID4+Pj4+Pj4gKwl1aW50MzJfdCBs ZXZlbDsNCj4gPj4+Pj4+PiArCS8qKjwgUGFja2V0IGVuY2Fwc3VsYXRpb24gbGV2ZWwgdGhlIGl0 ZW0gc2hvdWxkIGFwcGx5IHRvLg0KPiA+Pj4+Pj4+ICsJICogQHNlZSBydGVfZmxvd19hY3Rpb25f cnNzDQo+ID4+Pj4+Pj4gKwkgKi8NCj4gPj4+Pj4+PiArCXVuaW9uIHsNCj4gPj4+Pj4+PiArCQlz dHJ1Y3Qgew0KPiA+Pj4+Pj4+ICsJCQl1aW50NjRfdCBwYWNrZXRfb2s6MTsNCj4gPj4+Pj4+PiAr CQkJLyoqIFRoZSBwYWNrZXQgaXMgdmFsaWQgYWZ0ZXIgcGFzc2luZyBhbGwgSFcNCj4gPj4gY2hl Y2tzLiAqLw0KPiA+Pj4+Pj4+ICsJCQl1aW50NjRfdCBsMl9vazoxOw0KPiA+Pj4+Pj4+ICsJCQkv Kio8IEwyIGxheWVyIGlzIHZhbGlkIGFmdGVyIHBhc3NpbmcgYWxsIEhXDQo+ID4+IGNoZWNrcy4g Ki8NCj4gPj4+Pj4+PiArCQkJdWludDY0X3QgbDNfb2s6MTsNCj4gPj4+Pj4+PiArCQkJLyoqPCBM MyBsYXllciBpcyB2YWxpZCBhZnRlciBwYXNzaW5nIGFsbCBIVw0KPiA+PiBjaGVja3MuICovDQo+ ID4+Pj4+Pj4gKwkJCXVpbnQ2NF90IGw0X29rOjE7DQo+ID4+Pj4+Pj4gKwkJCS8qKjwgTDQgbGF5 ZXIgaXMgdmFsaWQgYWZ0ZXIgcGFzc2luZyBhbGwgSFcNCj4gPj4gY2hlY2tzLiAqLw0KPiA+Pj4+ Pj4+ICsJCQl1aW50NjRfdCBsMl9jcmNfb2s6MTsNCj4gPj4+Pj4+PiArCQkJLyoqPCBMMiBsYXll ciBjaGVja3N1bSBpcyB2YWxpZC4gKi8NCj4gPj4+Pj4+PiArCQkJdWludDY0X3QgaXB2NF9jc3Vt X29rOjE7DQo+ID4+Pj4+Pj4gKwkJCS8qKjwgTDMgbGF5ZXIgY2hlY2tzdW0gaXMgdmFsaWQuICov DQo+ID4+Pj4+Pj4gKwkJCXVpbnQ2NF90IGw0X2NzdW1fb2s6MTsNCj4gPj4+Pj4+PiArCQkJLyoq PCBMNCBsYXllciBjaGVja3N1bSBpcyB2YWxpZC4gKi8NCj4gPj4+Pj4+PiArCQkJdWludDY0X3Qg bDNfbGVuX29rOjE7DQo+ID4+Pj4+Pj4gKwkJCS8qKjwgVGhlIGwzIGxlbiBpcyBzbWFsbGVyIHRo YW4gdGhlIHBhY2tldCBsZW4uDQo+ID4+ICovDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gcGFja2V0IGxl bj8NCj4gPj4+Pj4+DQo+ID4+Pj4+IERvIHlvdSBtZWFuIHJlcGxhY2UgdGhlIGwzX2xlbl9vayB3 aXRoIHBhY2tldCBsZW4/DQo+ID4+Pj4NCj4gPj4+PiBubywgSSB3YXMgdHJ5aW5nIHRvIGFzayB3 aGF0IGlzICJwYWNrZXQgbGVuIiBoZXJlPyBmcmFtZSBsZW5ndGgsIG9yIG1idWYNCj4gPj4gYnVm ZmVyDQo+ID4+Pj4gbGVuZ3RoLCBvciBzb21ldGhpbmcgZWxzZT8NCj4gPj4+Pg0KPiA+Pj4gRnJh bWUgbGVuZ3RoLg0KPiA+Pj4NCj4gPj4+Pj4gTXkgb25seSBpc3N1ZSBpcyB0aGF0IHRoZSBjaGVj ayBpcyBjb21wYXJpbmcgdGhlIGwzIGxlbiB0byB0aGUgcGFja2V0IGxlbi4NCj4gPj4+Pj4NCj4g Pj4+Pj4gSWYgeW91IHN0aWxsIHRoaW5rIGl0IGlzIGJldHRlciB0byBjYWxsIGl0IHBhY2tldCBs ZW4sIEknbSBhbHNvIE8uSyB3aXRoIGl0Lg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4+ICsJCQl1aW50NjRf dCByZXNlcnZlZDo1NjsNCj4gPj4+Pj4+PiArCQl9Ow0KPiA+Pj4+Pj4+ICsJCXVpbnQ2NF90ICB2 YWx1ZTsNCj4gPj4+Pj4+PiArCX07DQo+ID4+Pj4+Pj4gK307DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+ Pj4+ICsjaWZuZGVmIF9fY3BsdXNwbHVzDQo+ID4+Pj4+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfaXRlbV9pbnRlZ3JpdHkNCj4gPj4+Pj4+PiArcnRlX2Zsb3dfaXRlbV9pbnRlZ3Jp dHlfbWFzayA9IHsNCj4gPj4+Pj4+PiArCS5sZXZlbCA9IDAsDQo+ID4+Pj4+Pj4gKwkudmFsdWUg PSAwLA0KPiA+Pj4+Pj4+ICt9Ow0KPiA+Pj4+Pj4+ICsjZW5kaWYNCj4gPj4+Pj4+PiArDQo+ID4+ Pj4+Pj4gICAgICAvKioNCj4gPj4+Pj4+PiAgICAgICAqIE1hdGNoaW5nIHBhdHRlcm4gaXRlbSBk ZWZpbml0aW9uLg0KPiA+Pj4+Pj4+ICAgICAgICoNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4N Cj4gPg0KDQo=