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 03664A0524; Tue, 13 Apr 2021 10:18:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D478F160C55; Tue, 13 Apr 2021 10:18:45 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2049.outbound.protection.outlook.com [40.107.236.49]) by mails.dpdk.org (Postfix) with ESMTP id 15C7E160C53 for ; Tue, 13 Apr 2021 10:18:45 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MdLmd+qzFtrjVMJrhcvx8DuAtpc7SLSnbgQGtLzisuRygJZ/In9PGso+Th/DbUfKPW7mNWrMPyf7kY7NF9mMIAcy2LQSLSeUZXer0NMByJ3rC47z63o6X6ZtxEAiKRtYPh7tMF1UmVQE64vsE8mpvwM7JPuWFeBCEDYmCLbT79I6Wj9sXRFI3zEdiSaP2+JbISImzGYH3wq92xURuQmXPWCPaAlvRtYYPSiBOy8AgXJLU5LEPaSiD4aU0Ae/p+2e374XCNh8uqXKegRToky5NXiNc1zL/d3xSutS9x+VSCEHMhWXscIfhN7DxipgZq07Vx5bn3VwhWmjed6vNJjMQA== 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=6NAjiRelnHFKcmbDDc5ITqJ4LLc9OQ8iN3ZcwImqFE8=; b=nBIj+FrZG895/ue0lhskeOx+Dw4nT5kQ0PQeNh1lT3QDIarWxe4mHlRBsZILeCZj1KWlZZ5WkpwfL5CQ84Lv3sU2gpp+lNS+GX+lfmBMo8vRHktfRJzy/+twuNLsMhtI55LOLTeMPDTN9ARcoJcbLPmZumtYeSvTs17Tya+NAUAiK2nIZ0u2drhcSg4+vSlUjF6wUvlvOcgT1Hrcay9OYO/dnYmcHPdPon4sIWFfpQaAtT11695NADYhAhiSUyDOce7egaLqmhZQPfrcBLdwwb4mxO8ax25zTqnKgOvy6nz6jo102MNewz0zrWQPoT72dF5VxYxUG6mks6wpD3+kvQ== 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=6NAjiRelnHFKcmbDDc5ITqJ4LLc9OQ8iN3ZcwImqFE8=; b=UG46hJuw3DIcVxa6pBKvDQiw17gvNfKsRftZrIQ+sA+4SGwFDmYaFDVyF3uur+P6abzCyXLJVHcwZAz1sd1SA3BlL3eJUEHafEqs4rLsU4gyjpKSjXQEFBW7jguqhVD6X3QvZB1vP/7nYzOpLtBv3LX1ZnV/LclObiJ/JZysYSBOPQTZRqq39pmX9R9EvH6fJPLHjOiCZxhhbAlW/JuOop3zg6rC4GfaJZ3YUk4BXygt2TwVcWAIQhRqHjJBn2Engmfz3gl7HNa1rEwck4y+1Dm/8744F2GsKGx0Hic1EH8G5RAfHFjDeuy6tk0G4s5POotmE+o5dqUzWtCOCVwHOg== Received: from BYAPR12MB4983.namprd12.prod.outlook.com (2603:10b6:a03:102::18) by BYAPR12MB4632.namprd12.prod.outlook.com (2603:10b6:a03:110::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4020.18; Tue, 13 Apr 2021 08:18:42 +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 08:18:42 +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/wgABJE4CAAHOBEIAAG10AgAABreA= Date: Tue, 13 Apr 2021 08:18:42 +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> In-Reply-To: <3ac7df60-ed3c-9ae3-5306-ae40dbec8e3e@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: 839b5778-dcbf-4b1b-dd10-08d8fe54c026 x-ms-traffictypediagnostic: BYAPR12MB4632: 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: ZlRvq5xaGSoPbS3TKjTmCY9AdEOvTG7HOFFQwOS3RdeKWswjS/Xdmldt2uqNV+DhmcaaE5kp6Sg4E2/iczrsnJNzUuVapHdaBz0ipiecRAglLvrbAVe3syTXCRTZXfr4yoYMeTsxYtBdVD2o1E5SHW05b18y8Q73FQZD5X8KMuPeaHVzSm+o5SP93xkDVLmPyX6vOjEflHEipnVDeB76BG8FyK8P6mkMYOuh+QNtzylqtN6926HMr9SiKtcvkQYD+tHq8s3FzvyAef3aAYbKJeaeoB3qTrKE9gvWqjNwaBAXAwfgLye+micu0ZbIkf2zFrn+js84StCm3sgSvIUhufPVCCrBvWv76O+6sLV3i8HhowtY/0XM1+u+v+b/G818RM5XZJUit+MNJ2RAUS1HHwMpniyeXUsSQNrHa5ePsQUNwQ39y8fjuJBsywbLP3gtokrxg99TsP06xwbIntcs+gYtSfWfFWqi91/g+EQXO9WgNDdum7K0JzTjiiOXo4CEF8XdkDXAEiAy3DT5/67g0J+y6q6IIFnbO2bc5GyZrkL/Z8qRTDTVYQNbeDLWZmundc+HjNx9tpaBp5hE2uZmD8rJJyV/q6ii//jJz7Mkjs4= 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)(346002)(366004)(396003)(376002)(39860400002)(136003)(30864003)(5660300002)(55016002)(52536014)(66556008)(71200400001)(64756008)(66476007)(66446008)(76116006)(66946007)(33656002)(9686003)(38100700002)(83380400001)(316002)(7696005)(54906003)(110136005)(53546011)(478600001)(6636002)(4326008)(6506007)(186003)(26005)(2906002)(8936002)(8676002)(122000001)(86362001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?eW5OdzFOUTFicXdEVjdHY1kzd2dpVFh6L3NrVEx0NjV4N2l0WUdMejIxcGYz?= =?utf-8?B?czdJZGpDeHdSVTFuQTloK0pKYU53UVlUWEJGR3JqL2VsVGkyMkhST1JFc0xN?= =?utf-8?B?VDFrRXRUYXo2SVI4NnNGejZIdDBJdDdjVTBYTFVFbmU5VTNYTHZXQ1J1UWJZ?= =?utf-8?B?V0ZIYkRlYzkrTTIxSFdpaHRUVWJKZ0p1RzBTSk0rNEVXUTRUOTQ3SHV4MGxu?= =?utf-8?B?UmZOQ2w1UHkzb3JxeXlvN1dGTFJwdCtRZWMxN3dzYzdoenpWUlEzNUtaa21P?= =?utf-8?B?OVc4VW9obGxJeGZEeG5DN08wVXk2SjZJY2hITG40TzRCTkxjT05HbkN0Z3cx?= =?utf-8?B?K3l6OUtKK1gyVWh5QzFRN09MRzNibGxrUVNEbU91REFER1d6b0dNOHY4Z3dv?= =?utf-8?B?a1QvSEp0L0paaHhCc3VBbjBEK3h1UFdQQTRKbGdRa3FYaXFhZTZtZGZ1eHNa?= =?utf-8?B?M2pJWmZKWVM0YUZxNWZmczE3SFcrVDdMOXpDWERUVmtxcDFnTHVRVFg2M3JD?= =?utf-8?B?dEhRdWlPZnpvUksrUWVHcjRwTURiNWhLZEpDWjNqTlM2Y3p3ODZHMUZXWEpy?= =?utf-8?B?SmFIaWl0UWxGMnhtUFFKa3hjcUtTRGorZW9EcGtMMkh6WnpZUmVBSk1kVXgv?= =?utf-8?B?NndVQ3NjMDZxZE1uWW1kNGZadzZZMlg0VHBjTXZSZmxUcXNwdjhrL2pMQlZ2?= =?utf-8?B?dzlEL1ZhS0Y3cDhFNDlUM2J1WWQ3NTN2bkVvWnFoa0hOK244VUxLZFdvekRj?= =?utf-8?B?RnlhYnJWWUo1ZVZBNEkzTVZXNWM2SGJMUjBCK0RKRUx4TCtEZnY4UHd3UENl?= =?utf-8?B?MkpsSjZjRy9VNTJsQVYwU3NaVHNvSVVtaDhObTZnbW8wK3NVMVZyMjdObkpq?= =?utf-8?B?MlVLOXhDUnRqV05Ld2tQUUhQaEtWZ1B1Nm1QMkZDMzluTXZkMHJUOTcweUZr?= =?utf-8?B?OU53SWFpMHhRYkxjSFZzcDh6NSt2M0tmM3BSN2FxTkRaSnhLSVJSQWZKL3NT?= =?utf-8?B?NTE4eXVoYjBTcGNpS3IzK2FUeTlJS1ZMTnBlWWhwdVY1MmRIdjZuNzNCUko3?= =?utf-8?B?ZHRWaGhNZEdwOHgvR1dxaTBaR29tMndnZ1creHVFSHpmQlpnNlcwSnFMVVFm?= =?utf-8?B?N3VmajJmcDFnRkI4d3lJL1ZXWTB4bjBUaVordlUrczB4R2EySmZ3c3J6Y0ZH?= =?utf-8?B?UDFmMkh0RmxFYU8rOS94Zi82ZEw4RUVqem5uTWZrTnQ2eTlLZmx0YmJJWWVn?= =?utf-8?B?aWdTRDRsQ09PdXIrL0EvL1MvYzR5TVgzakRJb1JLVWFFb09scTZ4OFhvdDd4?= =?utf-8?B?YkFMaUtndmxIZEZIc2xia1pSWithSUU4NmMxNUxnOStuZFlEYWRCMGJSQTk4?= =?utf-8?B?ZVhGcnlHWnBmZ1RQWEpxYTIrK1BUbm9SbVRiTzBzc1dFdFc0a0VpaUNQSVpt?= =?utf-8?B?aHVMVGlUV2ZiUVZpYW51R1I4UklsamVLbFJrWW5qMkhPeUZjTjloNG0yRStT?= =?utf-8?B?dUhjQ3RNWnFsWWhYSGVLcmZxWG5iS3MxWkdobFNQaWpRUDB1MlBzWS9wVys2?= =?utf-8?B?QytGcmM2TEkyRDJ6N2RCVnVMaW8zR2hVRXZaclJMNmpOOUV0bFBoaWlUaXpL?= =?utf-8?B?TXFaRjJsNFo2NDZvZlF0WERQdVo2eFd3bmMwMWxBUHBWT1dac2tHZVRjdTgv?= =?utf-8?B?dVlnWjJoeUNqUmpUWVJYVjFSWFBGa3RTRGVXdnZrK3U3ZHpndXBzZTBqOUw3?= =?utf-8?Q?s+MtFJQsyu9VbcLFvU9kZaAKecTlHysRlAxQ439?= 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: 839b5778-dcbf-4b1b-dd10-08d8fe54c026 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Apr 2021 08:18:42.5306 (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: t+ZOEn/5sLSpg99qvgR1SOo2Hbw98su8lni9dlBA6mIJWOy9Y5V7ILCNTBjR2HPErryJAXp5P4kCEFYmzpNWcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB4632 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" SGkgRmVycnVoLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZlcnJ1 aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2 MiAxLzJdIGV0aGRldjogYWRkIHBhY2tldCBpbnRlZ3JpdHkgY2hlY2tzDQo+IA0KPiBPbiA0LzEz LzIwMjEgODoxMiBBTSwgT3JpIEthbSB3cm90ZToNCj4gPiBIaSBGZXJydWgsDQo+ID4NCj4gPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogRmVycnVoIFlpZ2l0IDxmZXJy dWgueWlnaXRAaW50ZWwuY29tPg0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDEvMl0gZXRo ZGV2OiBhZGQgcGFja2V0IGludGVncml0eSBjaGVja3MNCj4gPj4NCj4gPj4gT24gNC8xMi8yMDIx IDg6MjYgUE0sIE9yaSBLYW0gd3JvdGU6DQo+ID4+PiBIaSBGZXJydWgsDQo+ID4+Pg0KPiA+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMS8y XSBldGhkZXY6IGFkZCBwYWNrZXQgaW50ZWdyaXR5IGNoZWNrcw0KPiA+Pj4+DQo+ID4+Pj4gT24g NC8xMS8yMDIxIDY6MzQgUE0sIEdyZWdvcnkgRXRlbHNvbiB3cm90ZToNCj4gPj4+Pj4gRnJvbTog T3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gPj4+Pj4NCj4gPj4+Pj4gQ3VycmVudGx5LCBE UERLIGFwcGxpY2F0aW9uIGNhbiBvZmZsb2FkIHRoZSBjaGVja3N1bSBjaGVjaywNCj4gPj4+Pj4g YW5kIHJlcG9ydCBpdCBpbiB0aGUgbWJ1Zi4NCj4gPj4+Pj4NCj4gPj4+Pj4gSG93ZXZlciwgYXMg bW9yZSBhbmQgbW9yZSBhcHBsaWNhdGlvbnMgYXJlIG9mZmxvYWRpbmcgc29tZSBvciBhbGwNCj4g Pj4+Pj4gbG9naWMgYW5kIGFjdGlvbiB0byB0aGUgSFcsIHRoZXJlIGlzIGEgbmVlZCB0byBjaGVj ayB0aGUgcGFja2V0DQo+ID4+Pj4+IGludGVncml0eSBzbyB0aGUgcmlnaHQgZGVjaXNpb24gY2Fu IGJlIHRha2VuLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgYXBwbGljYXRpb24gbG9naWMgY2FuIGJl IHBvc2l0aXZlIG1lYW5pbmcgaWYgdGhlIHBhY2tldCBpcw0KPiA+Pj4+PiB2YWxpZCBqdW1wIC8g ZG8gIGFjdGlvbnMsIG9yIG5lZ2F0aXZlIGlmIHBhY2tldCBpcyBub3QgdmFsaWQNCj4gPj4+Pj4g anVtcCB0byBTVyAvIGRvIGFjdGlvbnMgKGxpa2UgZHJvcCkgIGEsIGFuZCBhZGQgZGVmYXVsdCBm bG93DQo+ID4+Pj4+IChtYXRjaCBhbGwgaW4gbG93IHByaW9yaXR5KSB0aGF0IHdpbGwgZGlyZWN0 IHRoZSBtaXNzIHBhY2tldA0KPiA+Pj4+PiB0byB0aGUgbWlzcyBwYXRoLg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBTaW5jZSBjdXJyZW5sdHkgcnRlX2Zsb3cgd29ya3MgaW4gcG9zaXRpdmUgd2F5IHRoZSBh c3N1bXRpb24gaXMNCj4gPj4+Pj4gdGhhdCB0aGUgcG9zdGl2ZSB3YXkgd2lsbCBiZSB0aGUgY29t bW9uIHdheSBpbiB0aGlzIGNhc2UgYWxzby4NCj4gPj4+Pj4NCj4gPj4+Pj4gV2hlbiB0aGlua2lu ZyB3aGF0IGlzIHRoZSBiZXN0IEFQSSB0byBpbXBsZW1lbnQgc3VjaCBmZWF0dXJlLA0KPiA+Pj4+ PiB3ZSBuZWVkIHRvIGNvbnNpZHVyZSB0aGUgZm9sbG93aW5nIChpbiBubyBzcGVjaWZpYyBvcmRl cik6DQo+ID4+Pj4+IDEuIEFQSSBicmVha2FnZS4NCj4gPj4+Pj4gMi4gU2ltcGxpY2l0eS4NCj4g Pj4+Pj4gMy4gUGVyZm9ybWFuY2UuDQo+ID4+Pj4+IDQuIEhXIGNhcGFiaWxpdGllcy4NCj4gPj4+ Pj4gNS4gcnRlX2Zsb3cgbGltaXRhdGlvbi4NCj4gPj4+Pj4gNi4gRmxleGFiaWxpdHkuDQo+ID4+ Pj4+DQo+ID4+Pj4+IEZpcnN0IG9wdGlvbjogQWRkIGludGVncml0eSBmbGFncyB0byBlYWNoIG9m IHRoZSBpdGVtcy4NCj4gPj4+Pj4gRm9yIGV4YW1wbGUgYWRkIGNoZWNrc3VtX29rIHRvIGlwdjQg aXRlbS4NCj4gPj4+Pj4NCj4gPj4+Pj4gUHJvczoNCj4gPj4+Pj4gMS4gTm8gbmV3IHJ0ZV9mbG93 IGl0ZW0uDQo+ID4+Pj4+IDIuIFNpbXBsZSBpbiB0aGUgd2F5IHRoYXQgb24gZWFjaCBpdGVtIHRo ZSBhcHAgY2FuIHNlZQ0KPiA+Pj4+PiB3aGF0IGNoZWNrcyBhcmUgYXZhaWxhYmxlLg0KPiA+Pj4+ Pg0KPiA+Pj4+PiBDb25zOg0KPiA+Pj4+PiAxLiBBUEkgYnJlYWthZ2UuDQo+ID4+Pj4+IDIuIGlu Y3JlYXNlIG51bWJlciBvZiBmbG93cywgc2luY2UgYXBwIGNhbid0IGFkZCBnbG9iYWwgcnVsZSBh bmQNCj4gPj4+Pj4gICAgICAgbXVzdCBoYXZlIGRlZGljYXRlZCBmbG93IGZvciBlYWNoIG9mIHRo ZSBmbG93IGNvbWJpbmF0aW9ucywgZm9yDQo+ID4+IGV4YW1wbGUNCj4gPj4+Pj4gICAgICAgbWF0 Y2hpbmcgb24gaWNtcCB0cmFmZmljIG9yIFVEUC9UQ1AgIHRyYWZmaWMgd2l0aCBJUHY0IC8gSVB2 NiB3aWxsDQo+ID4+Pj4+ICAgICAgIHJlc3VsdCBpbiA1IGZsb3dzLg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBTZWNvbmQgb3B0aW9uOiBkZWRpY2F0ZWQgaXRlbQ0KPiA+Pj4+Pg0KPiA+Pj4+PiBQcm9zOg0K PiA+Pj4+PiAxLiBObyBBUEkgYnJlYWthZ2UsIGFuZCB0aGVyZSB3aWxsIGJlIG5vIGZvciBzb21l IHRpbWUgZHVlIHRvIGhhdmluZw0KPiA+Pj4+PiAgICAgICBleHRyYSBzcGFjZS4gKGJ5IHVzaW5n IGJpdHMpDQo+ID4+Pj4+IDIuIEp1c3Qgb25lIGZsb3cgdG8gc3VwcG9ydCB0aGUgaWNtcCBvciBV RFAvVENQIHRyYWZmaWMgd2l0aCBJUHY0IC8NCj4gPj4+Pj4gICAgICAgSVB2Ni4NCj4gPj4+Pj4g My4gU2ltcGxpY2l0eSBhcHBsaWNhdGlvbiBjYW4ganVzdCBsb29rIGF0IG9uZSBwbGFjZSB0byBz ZWUgYWxsIHBvc3NpYmxlDQo+ID4+Pj4+ICAgICAgIGNoZWNrcy4NCj4gPj4+Pj4gNC4gQWxsb3cg ZnV0dXJlIHN1cHBvcnQgZm9yIG1vcmUgdGVzdHMuDQo+ID4+Pj4+DQo+ID4+Pj4+IENvbnM6DQo+ ID4+Pj4+IDEuIE5ldyBpdGVtLCB0aGF0IGhvbGRzIG51bWJlciBvZiBmaWVsZHMgZnJvbSBkaWZm ZXJlbnQgaXRlbXMuDQo+ID4+Pj4+DQo+ID4+Pj4+IEZvciBzdGFydGVyIHRoZSBmb2xsb3dpbmcg Yml0cyBhcmUgc3VnZ2VzdGVkOg0KPiA+Pj4+PiAxLiBwYWNrZXRfb2sgLSBtZWFucyB0aGF0IGFs bCBIVyBjaGVja3MgZGVwZW5kaW5nIG9uIHBhY2tldCBsYXllciBoYXZlDQo+ID4+Pj4+ICAgICAg IHBhc3NlZC4gVGhpcyBtYXkgbWVhbiB0aGF0IGluIHNvbWUgSFcgc3VjaCBmbG93IHNob3VsZCBi ZSBzcGxpdGVkDQo+IHRvDQo+ID4+Pj4+ICAgICAgIG51bWJlciBvZiBmbG93cyBvciBmYWlsLg0K PiA+Pj4+PiAyLiBsMl9vayAtIGFsbCBjaGVjayBmbG9yIGxheWVyIDIgaGF2ZSBwYXNzZWQuDQo+ ID4+Pj4+IDMuIGwzX29rIC0gYWxsIGNoZWNrIGZsb3IgbGF5ZXIgMiBoYXZlIHBhc3NlZC4gSWYg cGFja2V0IGRvZW5zJ3QgaGF2ZQ0KPiA+Pj4+PiAgICAgICBsMyBsYXllciB0aGlzIGNoZWNrIHNo b3VkbCBmYWlsLg0KPiA+Pj4+PiA0LiBsNF9vayAtIGFsbCBjaGVjayBmbG9yIGxheWVyIDIgaGF2 ZSBwYXNzZWQuIElmIHBhY2tldCBkb2Vzbid0DQo+ID4+Pj4+ICAgICAgIGhhdmUgbDQgbGF5ZXIg dGhpcyBjaGVjayBzaG91bGQgZmFpbC4NCj4gPj4+Pj4gNS4gbDJfY3JjX29rIC0gdGhlIGxheWVy IDIgY3JjIGlzIE8uSy4gaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgY3JjIHdpbGwNCj4gPj4+Pj4g ICAgICAgYmUgTy5LLiBidXQgdGhlIGwzX29rIHdpbGwgYmUgMC4gaXQgaXMgbm90IHBvc3NpYmxl IHRoYXQgbDJfY3JjX29rIHdpbGwNCj4gPj4+Pj4gICAgICAgYmUgMCBhbmQgdGhlIGwzX29rIHdp bGwgYmUgMC4NCj4gPj4+Pj4gNi4gaXB2NF9jc3VtX29rIC0gSVB2NCBjaGVja3N1bSBpcyBPLksu DQo+ID4+Pj4+IDcuIGw0X2NzdW1fb2sgLSBsYXllciA0IGNoZWNrc3VtIGlzIE8uSy4NCj4gPj4+ Pj4gOC4gbDNfbGVuX09LIC0gY2hlY2sgdGhhdCB0aGUgcmVwb3J0ZWQgbGF5ZXIgMyBsZW4gaXMg c21hbGxlciB0aGFuIHRoZQ0KPiA+Pj4+PiAgICAgICBwYWNrZXQgbGVuLg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBFeGFtcGxlIG9mIHVzYWdlOg0KPiA+Pj4+PiAxLiBjaGVjayBwYWNrZXRzIGZyb20gYWxs IHBvc3NpYmxlIGxheWVycyBmb3IgaW50ZWdyaXR5Lg0KPiA+Pj4+PiAgICAgICBmbG93IGNyZWF0 ZSBpbnRlZ3JpdHkgc3BlYyBwYWNrZXRfb2sgPSAxIG1hc2sgcGFja2V0X29rID0gMSAuLi4uLg0K PiA+Pj4+Pg0KPiA+Pj4+PiAyLiBDaGVjayBvbmx5IHBhY2tldCB3aXRoIGxheWVyIDQgKFVEUCAv IFRDUCkNCj4gPj4+Pj4gICAgICAgZmxvdyBjcmVhdGUgaW50ZWdyaXR5IHNwZWMgbDNfb2sgPSAx LCBsNF9vayA9IDEgbWFzayBsM19vayA9IDEgbDRfb2sgPQ0KPiAxDQo+ID4+Pj4+DQo+ID4+Pj4N Cj4gPj4+PiBIaSBPcmksDQo+ID4+Pj4NCj4gPj4+PiBJcyB0aGUgaW50ZW50aW9uIG9mIHRoZSBB UEkganVzdCBmaWx0ZXJpbmcsIGxpa2UgYXBwbHkgc29tZSBhY3Rpb24gdG8gdGhlDQo+ID4+Pj4g cGFja2V0cyBiYXNlZCBvbiB0aGVpciBpbnRlZ3JhdGlvbiBzdGF0dXMuIExpa2UgZHJvcCBwYWNr ZXRzIHRoZWlyIGwyX2NyYw0KPiA+Pj4+IGNoZWNrc3VtIGZhaWxlZD8gSGVyZSBjb25maWd1cmF0 aW9uIGlzIGRvbmUgYnkgZXhpc3Rpbmcgb2ZmbG9hZCBBUElzLg0KPiA+Pj4+DQo+ID4+Pj4gT3Ig aXMgdGhlIGludGVudGlvbiB0byBjb25maWd1cmUgdGhlIGludGVncmF0aW9uIGNoZWNrIG9uIE5J QywgbGlrZSB0byBzYXkNCj4gPj4+PiBlbmFibGUgbGF5ZXIgMiBjaGVja3MsIGFuZCBkbyB0aGUg YWN0aW9uIGJhc2VkIG9uIGludGVncmF0aW9uIGNoZWNrDQo+IHN0YXR1cy4NCj4gPj4+Pg0KPiA+ Pj4gSWYgSSB1bmRlcnN0YW5kIHlvdXIgcXVlc3Rpb24gdGhlIGZpcnN0IGNhc2UgaXMgdGhlIG9u ZSB0aGF0IHRoaXMgcGF0Y2ggaXMNCj4gPj4gdGFyZ2V0aW5nLg0KPiA+Pj4gbWVhbmluZyBiYXNl ZCBvbiB0aG9zZSBiaXRzIHJvdXRlL2FwcGx5IGFjdGlvbnMgdG8gdGhlIHBhY2tldCB3aGlsZSBz dGlsbCBpbg0KPiA+PiB0aGUNCj4gPj4+IEhXLg0KPiA+Pj4NCj4gPj4+IFRoaXMgaXMgbm90IGRl c2lnbiB0byBlbmFibGUgdGhlIHF1ZXVlIHN0YXR1cyBiaXRzLg0KPiA+Pj4gSW4gdGhlIHVzZSBj YXNlIHN1Z2dlc3Rpb24gYnkgdGhpcyBwYXRjaCwganVzdCBsaWtlIHlvdSBzYWlkIHRoZSBhcHAN Cj4gPj4+IGNhbiBkZWNpZGUgdG8gZHJvcCB0aGUgcGFja2V0IGJlZm9yZSBhcnJpdmluZyB0byB0 aGUgcXVldWUsIGFwcGxpY2F0aW9uDQo+IG1heQ0KPiA+PiBhbHNvDQo+ID4+PiB1c2UgdGhlIG1h cmsgKyBxdWV1ZSBhY3Rpb24gdG8gbWFyayB0byB0aGUgU1cgd2hhdCBpcyB0aGUgaXNzdWUgd2l0 aCB0aGlzDQo+ID4+IHBhY2tldC4NCj4gPj4+DQo+ID4+PiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0 YW5kIHlvdXIgY29tbWVudCBhYm91dCAiaGVyZSBjb25maWd1cmF0aW9uIGlzIGRvbmUNCj4gYnkN Cj4gPj4gZXhpc3RpbmcNCj4gPj4+IG9mZmxvYWQgQVBJIiBkbyB5b3UgbWVhbiBsaWtlIHRoZSBk cm9wIC8gIGp1bXAgdG8gdGFibGUgLyBhbnkgb3RoZXIgcnRlX2Zsb3cNCj4gPj4gYWN0aW9uPw0K PiA+Pj4NCj4gPj4+DQo+ID4+DQo+ID4+IEkgYW0gYXNraW5nIGJlY2F1c2UgZGlmZmVyZW5jZSBi ZXR3ZWVuIGRldmljZSBjb25maWd1cmF0aW9uIGFuZCBwYWNrZXQNCj4gPj4gZmlsdGVyaW5nDQo+ ID4+IHNlZW1zIGdldHRpbmcgbW9yZSBibHVycmVkIGluIHRoZSBmbG93IEFQSS4NCj4gPj4NCj4g Pj4gQ3VycmVudGx5IEw0IGNoZWNrc3VtIG9mZmxvYWQgaXMgcmVxdWVzdGVkIGJ5IGFwcGxpY2F0 aW9uIHZpYSBzZXR0aW5nDQo+ID4+ICdERVZfUlhfT0ZGTE9BRF9UQ1BfQ0tTVU0nIChVRFAvU0NU UC8uLi4pIG9mZmxvYWQgZmxhZ3MuIFRoaXMgaXMgdGhlDQo+IHdheQ0KPiA+PiB0bw0KPiA+PiBj b25maWd1cmUgSFcuDQo+ID4+DQo+ID4+IElzIHRoZSBpbnRlbnRpb24gb2YgdGhpcyBwYXRjaCBk b2luZyBwYWNrZXQgZmlsdGVyaW5nIGFmdGVyIGRldmljZSBjb25maWd1cmVkDQo+ID4+IHdpdGgg YWJvdmUgb2ZmbG9hZCBBUEk/DQo+ID4+DQo+ID4+IE9yIGlzIHRoZSBpbnRlbnRpb24gSFcgdG8g YmUgY29uZmlndXJlZCB2aWEgZmxvdyBBUEksIGxpa2UgaWYgImw0X29rID0gMSIgaXMgc2V0DQo+ ID4+IGluIHRoZSBydWxlLCB3aWxsIGl0IGVuYWJsZSBMNCBjaGVja3MgZmlyc3QgYW5kIGRvIHRo ZSBmaWx0ZXJpbmcgbGF0ZXI/DQo+ID4+DQo+ID4+IElmIG5vdCB3aGF0IGlzIHRoZSBleHBlY3Rl ZCBiZWhhdmlvciB3aGVuIGludGVncmF0aW9uIGNoZWNrcyBhcmUgbm90DQo+IGVuYWJsZWQNCj4g Pj4gd2hlbiB0aGUgcnVsZSBpcyBjcmVhdGVkPw0KPiA+Pg0KPiA+DQo+ID4gTGV0IG1lIHRyeSB0 byBleHBsYWluIGl0IGluIGEgZGlmZmVyZW50IHdheToNCj4gPiBXaGVuIGFwcGxpY2F0aW9uIGVu YWJsZXMgJ0RFVl9SWF9PRkZMT0FEX1RDUF9DS1NVTScgKFVEUC9TQ1RQLy4uLikNCj4gb2ZmbG9h ZCBmbGFncw0KPiA+IEl0IG9ubHkgbWVhbnMgdGhhdCB0aGUgSFcgd2lsbCByZXBvcnQgdGhlIGNo ZWNrc3VtIGluIHRoZSBtYnVmLg0KPiANCj4gSXQgaXMgbm90IG9ubHkgZm9yIHJlcG9ydGluZyBp biBtYnVmLCBpdCBhbHNvIGNvbmZpZ3VyZXMgdGhlIEhXIHRvIGVuYWJsZSB0aGUNCj4gcmVsZXZh bnQgY2hlY2tzLiBUaGlzIGlzIGZvciBkZXZpY2UgY29uZmlndXJhdGlvbi4NCj4gDQo+IEFyZSB0 aGVzZSBjaGVja3MgYWx3YXlzIGVuYWJsZWQgaW4gbWx4IGRldmljZXM/DQo+IA0KWWVzLCB0aGV5 IGFyZSBhbHdheXMgb24uDQpUaGUgUlggb2ZmbG9hZCBqdXN0IGVuYWJsZXMgdGhlIFJYIGJ1cnN0 IHRvIHVwZGF0ZSB0aGUgbWJ1Zi4NCkluIGFueSBjYXNlIGlmIEhXIG5lZWRzIHRvIGJlIGVuYWJs ZWQsIHRoZW4gDQp0aGUgUE1EIGNhbiBlbmFibGUgdGhlIEhXIHdoZW4gZmlyc3QgZmxvdyBpcyBp bnNlcnRlZCBhbmQganVzdCBub3QNCmNvcHkgdGhlIHZhbHVlIHRoZSBtYnVmLg0KDQo+ID4gTGV0 cyBjYWxsIHRoaXMgbW9kZSBSWCBxdWV1ZSBvZmZsb2FkLg0KPiA+DQo+ID4gTm93IEknbSBpbnRy b2R1Y2luZyBydGVfZmxvdyBvZmZsb2FkLA0KPiA+IFRoaXMgbWVhbnMgdGhhdCB0aGUgYXBwbGlj YXRpb24gY2FuIGNyZWF0ZSBydGVfZmxvdyB0aGF0IG1hdGNoZXMgdGhvc2UNCj4gPiBiaXRzIGFu ZCBiYXNlZCBvbiB0aGF0IHRha2UgZGlmZmVyZW50IGFjdGlvbnMgdGhhdCBhcmUgZGVmaW5lZCBi eSB0aGUgcnRlX2Zsb3cuDQo+ID4gRXhhbXBsZSBmb3Igc3VjaCBhIGZsb3cNCj4gPiBGbG93IGNy ZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBpbnRlZ3JpdHkgc3BlYyBwYWNrZXRfb2sgPSAwIG1hc2sg cGFja2V0X29rID0NCj4gMSAvIGVuZCBhY3Rpb25zIGNvdW50IC8gZHJvcCAvIGVuZA0KPiA+DQo+ ID4gT2ZmbG9hZGluZyBzdWNoIGEgZmxvdyB3aWxsIHJlc3VsdCB0aGF0IGFsbCBpbnZhbGlkIHBh Y2tldHMgd2lsbCBiZSBjb3VudGVkIGFuZA0KPiBkcm9wcGVkLCBpbiB0aGUgSFcNCj4gPiBzbyBl dmVuIGlmIHRoZSBSWCBxdWV1ZSBvZmZsb2FkIHdhcyBlbmFibGVkLCBubyBpbnZhbGlkIHBhY2tl dHMgd2lsbCBhcnJpdmUgdG8NCj4gdGhlIGFwcGxpY2F0aW9uLg0KPiA+DQo+ID4gSW4gb3RoZXIg Y2FzZSBsZXRzIGFzc3VtZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3YW50cyBhbGwgdmFsaWQgcGFj a2V0cyB0byBqdW1wDQo+IHRvIHRoZSBuZXh0IGdyb3VwLA0KPiA+IGFuZCBhbGwgdGhlIHJlc2V0 IG9mIHRoZSBwYWNrZXRzIHdpbGwgZ28gdG8gU1cuICh3ZSBjYW4gYXNzdW1lIHRoYXQgbGF0ZXIg aW4NCj4gdGhlIHBpcGVsaW5lIGFsc28gdmFsaWQgcGFja2V0cw0KPiA+IHdpbGwgYXJyaXZlIHRv IHRoZSBhcHBsaWNhdGlvbikNCj4gPiBGbG93IGNyZWF0ZSAwIGluZ3Jlc3MgcGF0dGVybiBpbnRl Z3JpdHkgc3BlYyBwYWNrZXRfb2sgPSAxIG1hc2sgcGFja2V0X29rID0NCj4gMSAvIGVuZCBhY3Rp b25zICBqdW1wIGdyb3VwIDEgLyBlbmQNCj4gPiBGbG93IGNyZWF0ZSAwIHByaW9yaXR5IDEgcGF0 dGVybiBldGggLyBlbmQgYWN0aW9ucyByc3MgLyBlbmQNCj4gPg0KPiA+IEluIHRoaXMgY2FzZSBp ZiB0aGUgYXBwbGljYXRpb24gZW5hYmxlZCB0aGUgUlggb2ZmbG9hZCB0aGVuIGlmIHRoZSBhcHBs aWNhdGlvbg0KPiB3aWxsIHJlY2VpdmUgaW52YWxpZCBwYWNrZXQNCj4gPiBhbHNvIHRoZSBmbGFn IGluIHRoZSBtYnVmIHdpbGwgYmUgc2V0Lg0KPiA+DQo+IA0KPiBJZiBhcHBsaWNhdGlvbiBub3Qg ZW5hYmxlZCB0aGUgUnggb2ZmbG9hZCB0aGF0IG1lYW5zIEhXIGNoZWNrcyBhcmUgbm90DQo+IGVu YWJsZWQsDQo+IHNvIEhXIGNhbid0IGtub3cgaWYgYSBwYWNrZXQgaXMgT0sgb3Igbm90LCByaWdo dC4NCj4gSW4gdGhhdCBjYXNlLCBmb3IgYWJvdmUgcnVsZSwgSSBleHBlY3Qgbm9uZSBvZiB0aGUg cGFja2V0cyB0byBtYXRjaCwgc28gbm9uZQ0KPiB3aWxsIGp1bXAgdG8gbmV4dCBncm91cC4gQXJl IHdlIGluIHRoZSBzYW1lIHBhZ2UgaGVyZT8NCj4gDQo+IE9yIGRvIHlvdSBleHBlY3QgYWJvdmUg cnVsZSBjb25maWd1cmUgdGhlIEhXIHRvIGVuYWJsZSB0aGUgcmVsZXZhbnQgSFcNCj4gY2hlY2tz IGZpcnN0Pw0KPiANCklmIHRoaXMgaXMgcmVxdWlyZWQgYnkgSFcgdGhlbiB5ZXMuDQpwbGVhc2Ug c2VlIG15IGFuc3dlciBhYm92ZS4NCg0KPiA+IEFzIHlvdSBjYW4gc2VlIHRob3NlIHR3byBvZmZs b2FkcyBtb2RlIGFyZSBjb21wbGVtZW50YXJ5IHRvIGVhY2ggb3RoZXINCj4gYW5kIG9uZSBkb2Vz bid0IGZvcmNlIHRoZSBvdGhlciBvbmUgaW4gYW55DQo+ID4gd2F5Lg0KPiA+DQo+ID4gSSBob3Bl IHRoaXMgaXMgY2xlYXJlci4NCj4gPg0KPiA+DQo+ID4+Pj4NCj4gPj4+Pj4gU2lnbmVkLW9mZi1i eTogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gPj4+Pj4gLS0tDQo+ID4+Pj4+IHYyOiBm aXggY29tcGlsYXRpb24gZXJyb3INCj4gPj4+Pj4gLS0tDQo+ID4+Pj4+ICAgICBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0IHwgMTkgKysrKysrKysrKysrDQo+ID4+Pj4+ICAgICBs aWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oICAgICAgIHwgNDcNCj4gPj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ID4+Pj4+ICAgICAyIGZpbGVzIGNoYW5nZWQsIDY2IGluc2Vy dGlvbnMoKykNCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcHJvZ19n dWlkZS9ydGVfZmxvdy5yc3QNCj4gPj4+PiBiL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxv dy5yc3QNCj4gPj4+Pj4gaW5kZXggZTFiOTNlY2VkZi4uODdlZjU5MTQwNSAxMDA2NDQNCj4gPj4+ Pj4gLS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+Pj4+PiArKysg Yi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0DQo+ID4+Pj4+IEBAIC0xMzk4LDYg KzEzOTgsMjUgQEAgTWF0Y2hlcyBhIGVDUFJJIGhlYWRlci4NCj4gPj4+Pj4gICAgIC0gYGBoZHJg YDogZUNQUkkgaGVhZGVyIGRlZmluaXRpb24gKGBgcnRlX2VjcHJpLmhgYCkuDQo+ID4+Pj4+ICAg ICAtIERlZmF1bHQgYGBtYXNrYGAgbWF0Y2hlcyBub3RoaW5nLCBmb3IgYWxsIGVDUFJJIG1lc3Nh Z2VzLg0KPiA+Pj4+Pg0KPiA+Pj4+PiArSXRlbTogYGBQQUNLRVRfSU5URUdSSVRZX0NIRUNLU2Bg DQo+ID4+Pj4+ICteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4NCj4gPj4+Pj4gKw0K PiA+Pj4+PiArTWF0Y2hlcyBwYWNrZXQgaW50ZWdyaXR5Lg0KPiA+Pj4+PiArDQo+ID4+Pj4+ICst IGBgbGV2ZWxgYDogdGhlIGVuY2Fwc3VsYXRpb24gbGV2ZWwgdGhhdCBzaG91bGQgYmUgY2hlY2tl ZC4gbGV2ZWwgMA0KPiBtZWFucw0KPiA+PiB0aGUNCj4gPj4+Pj4gKyAgZGVmYXVsdCBQTUQgbW9k ZSAoQ2FuIGJlIGlubmVyIG1vc3QgLyBvdXRlcm1vc3QpLiB2YWx1ZSBvZiAxIG1lYW5zDQo+ID4+ Pj4gb3V0ZXJtb3N0DQo+ID4+Pj4+ICsgIGFuZCBoaWdoZXIgdmFsdWUgbWVhbnMgaW5uZXIgaGVh ZGVyLiBTZWUgYWxzbyBSU1MgbGV2ZWwuDQo+ID4+Pj4+ICstIGBgcGFja2V0X29rYGA6IEFsbCBI VyBwYWNrZXQgaW50ZWdyaXR5IGNoZWNrcyBoYXZlIHBhc3NlZCBiYXNlZCBvbg0KPiB0aGUNCj4g Pj4+PiBtYXgNCj4gPj4+Pj4gKyAgbGF5ZXIgb2YgdGhlIHBhY2tldC4NCj4gPj4+Pj4gKyAgbGF5 ZXIgb2YgdGhlIHBhY2tldC4NCj4gPj4+Pj4gKy0gYGBsMl9va2BgOiBhbGwgbGF5ZXIgMiBIVyBp bnRlZ3JpdHkgY2hlY2tzIHBhc3NlZC4NCj4gPj4+Pj4gKy0gYGBsM19va2BgOiBhbGwgbGF5ZXIg MyBIVyBpbnRlZ3JpdHkgY2hlY2tzIHBhc3NlZC4NCj4gPj4+Pj4gKy0gYGBsNF9va2BgOiBhbGwg bGF5ZXIgMyBIVyBpbnRlZ3JpdHkgY2hlY2tzIHBhc3NlZC4NCj4gPj4+Pg0KPiA+Pj4+IHMvbGF5 ZXIgMy8gbGF5ZXIgNC8NCj4gPj4+Pg0KPiA+Pj4gV2lsbCBmaXguDQo+ID4+Pg0KPiA+Pj4+PiAr LSBgYGwyX2NyY19va2BgOiBsYXllciAyIGNyYyBjaGVjayBwYXNzZWQuDQo+ID4+Pj4+ICstIGBg aXB2NF9jc3VtX29rYGA6IGlwdjQgY2hlY2tzdW0gY2hlY2sgcGFzc2VkLg0KPiA+Pj4+PiArLSBg YGw0X2NzdW1fb2tgYDogbGF5ZXIgNCBjaGVja3N1bSBjaGVjayBwYXNzZWQuDQo+ID4+Pj4+ICst IGBgbDNfbGVuX29rYGA6IHRoZSBsYXllciAzIGxlbiBpcyBzbWFsbGVyIHRoYW4gdGhlIHBhY2tl dCBsZW4uDQo+ID4+Pj4+ICsNCj4gPj4+Pj4gICAgIEFjdGlvbnMNCj4gPj4+Pj4gICAgIH5+fn5+ fn4NCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9m bG93LmggYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4+Pj4+IGluZGV4IDZjYzU3 MTM2YWMuLjc3NDcxYWYyYzQgMTAwNjQ0DQo+ID4+Pj4+IC0tLSBhL2xpYi9saWJydGVfZXRoZGV2 L3J0ZV9mbG93LmgNCj4gPj4+Pj4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0K PiA+Pj4+PiBAQCAtNTUxLDYgKzU1MSwxNSBAQCBlbnVtIHJ0ZV9mbG93X2l0ZW1fdHlwZSB7DQo+ ID4+Pj4+ICAgICAJICogU2VlIHN0cnVjdCBydGVfZmxvd19pdGVtX2dlbmV2ZV9vcHQNCj4gPj4+ Pj4gICAgIAkgKi8NCj4gPj4+Pj4gICAgIAlSVEVfRkxPV19JVEVNX1RZUEVfR0VORVZFX09QVCwN Cj4gPj4+Pj4gKw0KPiA+Pj4+PiArCS8qKg0KPiA+Pj4+PiArCSAqIFtNRVRBXQ0KPiA+Pj4+PiAr CSAqDQo+ID4+Pj4+ICsJICogTWF0Y2hlcyBvbiBwYWNrZXQgaW50ZWdyaXR5Lg0KPiA+Pj4+PiAr CSAqDQo+ID4+Pj4+ICsJICogU2VlIHN0cnVjdCBydGVfZmxvd19pdGVtX2ludGVncml0eS4NCj4g Pj4+Pj4gKwkgKi8NCj4gPj4+Pj4gKwlSVEVfRkxPV19JVEVNX1RZUEVfSU5URUdSSVRZLA0KPiA+ Pj4+PiAgICAgfTsNCj4gPj4+Pj4NCj4gPj4+Pj4gICAgIC8qKg0KPiA+Pj4+PiBAQCAtMTY4NSw2 ICsxNjk0LDQ0IEBAIHJ0ZV9mbG93X2l0ZW1fZ2VuZXZlX29wdF9tYXNrID0gew0KPiA+Pj4+PiAg ICAgfTsNCj4gPj4+Pj4gICAgICNlbmRpZg0KPiA+Pj4+Pg0KPiA+Pj4+PiArX19leHRlbnNpb25f Xw0KPiA+Pj4+PiArc3RydWN0IHJ0ZV9mbG93X2l0ZW1faW50ZWdyaXR5IHsNCj4gPj4+Pj4gKwl1 aW50MzJfdCBsZXZlbDsNCj4gPj4+Pj4gKwkvKio8IFBhY2tldCBlbmNhcHN1bGF0aW9uIGxldmVs IHRoZSBpdGVtIHNob3VsZCBhcHBseSB0by4NCj4gPj4+Pj4gKwkgKiBAc2VlIHJ0ZV9mbG93X2Fj dGlvbl9yc3MNCj4gPj4+Pj4gKwkgKi8NCj4gPj4+Pj4gKwl1bmlvbiB7DQo+ID4+Pj4+ICsJCXN0 cnVjdCB7DQo+ID4+Pj4+ICsJCQl1aW50NjRfdCBwYWNrZXRfb2s6MTsNCj4gPj4+Pj4gKwkJCS8q KiBUaGUgcGFja2V0IGlzIHZhbGlkIGFmdGVyIHBhc3NpbmcgYWxsIEhXDQo+IGNoZWNrcy4gKi8N Cj4gPj4+Pj4gKwkJCXVpbnQ2NF90IGwyX29rOjE7DQo+ID4+Pj4+ICsJCQkvKio8IEwyIGxheWVy IGlzIHZhbGlkIGFmdGVyIHBhc3NpbmcgYWxsIEhXDQo+IGNoZWNrcy4gKi8NCj4gPj4+Pj4gKwkJ CXVpbnQ2NF90IGwzX29rOjE7DQo+ID4+Pj4+ICsJCQkvKio8IEwzIGxheWVyIGlzIHZhbGlkIGFm dGVyIHBhc3NpbmcgYWxsIEhXDQo+IGNoZWNrcy4gKi8NCj4gPj4+Pj4gKwkJCXVpbnQ2NF90IGw0 X29rOjE7DQo+ID4+Pj4+ICsJCQkvKio8IEw0IGxheWVyIGlzIHZhbGlkIGFmdGVyIHBhc3Npbmcg YWxsIEhXDQo+IGNoZWNrcy4gKi8NCj4gPj4+Pj4gKwkJCXVpbnQ2NF90IGwyX2NyY19vazoxOw0K PiA+Pj4+PiArCQkJLyoqPCBMMiBsYXllciBjaGVja3N1bSBpcyB2YWxpZC4gKi8NCj4gPj4+Pj4g KwkJCXVpbnQ2NF90IGlwdjRfY3N1bV9vazoxOw0KPiA+Pj4+PiArCQkJLyoqPCBMMyBsYXllciBj aGVja3N1bSBpcyB2YWxpZC4gKi8NCj4gPj4+Pj4gKwkJCXVpbnQ2NF90IGw0X2NzdW1fb2s6MTsN Cj4gPj4+Pj4gKwkJCS8qKjwgTDQgbGF5ZXIgY2hlY2tzdW0gaXMgdmFsaWQuICovDQo+ID4+Pj4+ ICsJCQl1aW50NjRfdCBsM19sZW5fb2s6MTsNCj4gPj4+Pj4gKwkJCS8qKjwgVGhlIGwzIGxlbiBp cyBzbWFsbGVyIHRoYW4gdGhlIHBhY2tldCBsZW4uDQo+ICovDQo+ID4+Pj4NCj4gPj4+PiBwYWNr ZXQgbGVuPw0KPiA+Pj4+DQo+ID4+PiBEbyB5b3UgbWVhbiByZXBsYWNlIHRoZSBsM19sZW5fb2sg d2l0aCBwYWNrZXQgbGVuPw0KPiA+Pg0KPiA+PiBubywgSSB3YXMgdHJ5aW5nIHRvIGFzayB3aGF0 IGlzICJwYWNrZXQgbGVuIiBoZXJlPyBmcmFtZSBsZW5ndGgsIG9yIG1idWYNCj4gYnVmZmVyDQo+ ID4+IGxlbmd0aCwgb3Igc29tZXRoaW5nIGVsc2U/DQo+ID4+DQo+ID4gRnJhbWUgbGVuZ3RoLg0K PiA+DQo+ID4+PiBNeSBvbmx5IGlzc3VlIGlzIHRoYXQgdGhlIGNoZWNrIGlzIGNvbXBhcmluZyB0 aGUgbDMgbGVuIHRvIHRoZSBwYWNrZXQgbGVuLg0KPiA+Pj4NCj4gPj4+IElmIHlvdSBzdGlsbCB0 aGluayBpdCBpcyBiZXR0ZXIgdG8gY2FsbCBpdCBwYWNrZXQgbGVuLCBJJ20gYWxzbyBPLksgd2l0 aCBpdC4NCj4gPj4+DQo+ID4+Pj4+ICsJCQl1aW50NjRfdCByZXNlcnZlZDo1NjsNCj4gPj4+Pj4g KwkJfTsNCj4gPj4+Pj4gKwkJdWludDY0X3QgIHZhbHVlOw0KPiA+Pj4+PiArCX07DQo+ID4+Pj4+ ICt9Ow0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsjaWZuZGVmIF9fY3BsdXNwbHVzDQo+ID4+Pj4+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW1faW50ZWdyaXR5DQo+ID4+Pj4+ICtydGVf Zmxvd19pdGVtX2ludGVncml0eV9tYXNrID0gew0KPiA+Pj4+PiArCS5sZXZlbCA9IDAsDQo+ID4+ Pj4+ICsJLnZhbHVlID0gMCwNCj4gPj4+Pj4gK307DQo+ID4+Pj4+ICsjZW5kaWYNCj4gPj4+Pj4g Kw0KPiA+Pj4+PiAgICAgLyoqDQo+ID4+Pj4+ICAgICAgKiBNYXRjaGluZyBwYXR0ZXJuIGl0ZW0g ZGVmaW5pdGlvbi4NCj4gPj4+Pj4gICAgICAqDQo+ID4+Pj4+DQo+ID4+Pg0KPiA+DQoNCg==