From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 9BE34A0544;
	Wed, 29 Jun 2022 16:55:25 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id EE80E4281C;
	Wed, 29 Jun 2022 16:55:14 +0200 (CEST)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com
 (mail-eopbgr20071.outbound.protection.outlook.com [40.107.2.71])
 by mails.dpdk.org (Postfix) with ESMTP id D07F4400D5;
 Mon, 27 Jun 2022 14:50:54 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=izBiK2cFzx+kcLJUdsdG8E62RyZi3IiBADsBDma/rCF7UJi/3/AneyQDg3fy8cBsLR6eQPVU3PF7cCrKh0CzxJQ90xV6rl71+rVAVYT76YBt9q1607x5bWHdmxY3VeruhGVdCA1Qns8/LrJgCB0Lh4Hc9Ftf8qmoZSa9Kx4xSqYk5ErytX0tTzytT5jpt2ClvU+ZEovp5nGRDlE1R/izFhXO6TAttgePDvNHwow+9P7Lk5txupO+uz/Rkre5ALP32IcslJh6adi4AdtXPSIG4Gmtm1au49fiO4eEe9eyc+dVLhAM6VTFm9lgRlTmagxsVQjER4LrCibdt29h/wseeQ==
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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=dV3uDppypII3Xj8gQJMxnQ8+K0Cwu131/URsMsWiG+E=;
 b=fs7v+4eC8slZige2gYDvJXrTYidN39rpIhl0Fc+Z5SCaiXMBLKIXkLR9b+h/iGREk4Lu1c2XrMa3ZBrPja1IkRtS28iEqrYPzTzfryISoOlrJjUefkzXnaiRA3mB8eAO33gD6AdOoBG/sDxoqwODW2hFNRXYdDF43C8V5twO8rVO643gpG//vVqSe/90RbWXX/ABGbP89/fiTm/JofgImQJ9rTfJTbn0KYKwJFVthpBunWY68Jlmf0ujLPNFXTMIpeM2rX3NOHYxpshI6cLhbUANPaVtfB69RGcFq6k1k0EFzfQ0ECcX74SzsaVxH2qfkXgRbyuhWv1S+RQWMgz0Pw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com;
 dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dV3uDppypII3Xj8gQJMxnQ8+K0Cwu131/URsMsWiG+E=;
 b=YywgODXt4cjgjdxmdawHpo7hGlxubDbNJA5o81sS+nloGvmWo+MWyyUhRnlhIVPvfgDpkjyjEHO/arm9OUcbzjgMJDEH5zffVZs0Soi6187+tGCsktDTKFFBo/jh5YmSbo/CADFkfepAildJUk3OIVdCYKOE7gv52Ajr6dyNea4=
Received: from AM8PR07MB7666.eurprd07.prod.outlook.com (2603:10a6:20b:240::23)
 by AS1PR07MB8616.eurprd07.prod.outlook.com (2603:10a6:20b:474::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Mon, 27 Jun
 2022 12:50:53 +0000
Received: from AM8PR07MB7666.eurprd07.prod.outlook.com
 ([fe80::188:e139:774e:cea1]) by AM8PR07MB7666.eurprd07.prod.outlook.com
 ([fe80::188:e139:774e:cea1%9]) with mapi id 15.20.5395.011; Mon, 27 Jun 2022
 12:50:53 +0000
From: Emil Berg <emil.berg@ericsson.com>
To: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= <hofors@lysator.liu.se>,
 =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= <mb@smartsharesystems.com>,
 "bruce.richardson@intel.com" <bruce.richardson@intel.com>, "dev@dpdk.org"
 <dev@dpdk.org>
CC: "stephen@networkplumber.org" <stephen@networkplumber.org>,
 "stable@dpdk.org" <stable@dpdk.org>, "bugzilla@dpdk.org" <bugzilla@dpdk.org>, 
 "olivier.matz@6wind.com" <olivier.matz@6wind.com>
Subject: RE: [PATCH v4] net: fix checksum with unaligned buffer
Thread-Topic: [PATCH v4] net: fix checksum with unaligned buffer
Thread-Index: AQHYhv48fmD0p9rOd0KzPCydzCSkQq1c8dgAgAZC+YCAAAOyYIAAAh4A
Date: Mon, 27 Jun 2022 12:50:53 +0000
Message-ID: <AM8PR07MB76660E55460287468718E80598B99@AM8PR07MB7666.eurprd07.prod.outlook.com>
References: <98CBD80474FA8B44BF855DF32C47DC35D87139@smartserver.smartshare.dk>
 <20220623123900.38283-1-mb@smartsharesystems.com>
 <98CBD80474FA8B44BF855DF32C47DC35D87169@smartserver.smartshare.dk>
 <9f543fc0-ae8a-067b-d13f-38a0503dd619@lysator.liu.se>
 <AM8PR07MB76661BE2F6EBC456AA00333098B99@AM8PR07MB7666.eurprd07.prod.outlook.com>
In-Reply-To: <AM8PR07MB76661BE2F6EBC456AA00333098B99@AM8PR07MB7666.eurprd07.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: df234ac5-3131-4807-1fbb-08da583babc8
x-ms-traffictypediagnostic: AS1PR07MB8616:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: bSP6kl4iHC4C4MLSwbGmJEkVlXbGrgd4a4GNg2wt5wztKJuN1Ugz30XnqU96rH/tbcFPyblhT/sJSdci7tPJLxxSUceqYbZEoRwxsKxbtItRGFmQL+4jlYpqSVGm99BgN/i8uxg4cwFdg6hjQjaG6kePXjXqaTgiBKGSzIBmvSYGnx6JErooyson/1xSJpDsF12W5Hu+le3BGxcXoVnrMphFavzI25waXrnuE7iPo1pTk/3V2N8aHY6C4lmcAA0mzxGq7Yu13DcNXMATATKJtVEnHgixnT0gsJpOmaFcnT0xFW+3Okqea1xERX9+3a3Glgz2nF2aVyqjoO2apcTwOq9W6KAdTUn/wrN0HZlija5pIrkIOGHIVChIuXC2rk9F1DF/IMysmuvV6F+HAbsovUzpbnQuacp8OGDCNSuwKkl9VI24YpkoEX6GbnKQI1eYY3DHY95cZus/iLgS1Qb+EoKgmPugIK5nSs70eTYocjIH1snXQ0V6J4RlKst0aMOwMBfmfgl6l/ksotYTCB/qh2S8y49GwI1cciUeOwCbBIJuiWKy6t2AvM3A2DrrZTpC3FQZnTMNUZC2V3RUJvavZPyjaUR2cEjqrdsommL0Gq9R8tTAer4H4GNdH/yABxwD9c2sYDdnTnkl4TwMN19w4Fxn/KrprNF9ltqsfU+3jsRGBX9bfPbhWWw5qARmyZIHy/HeqMbAsalvFz8K3Z69BTlwkFOXW0HoxI3iPzG4EOrZBarEkFgxQTdDFF7W+ucw0Iqpb2PdO1ZXXd6mPPOf1pPIz6ZlJOF3FTs92o5rMOtRZY2DyrFG2SM5yN/+YuJlxdrkWAyC3IGczxdZH0b2bg==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:AM8PR07MB7666.eurprd07.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230016)(4636009)(346002)(366004)(39860400002)(396003)(136003)(376002)(5660300002)(53546011)(478600001)(83380400001)(8936002)(41300700001)(44832011)(122000001)(66476007)(2906002)(54906003)(66556008)(52536014)(76116006)(296002)(38070700005)(8676002)(82960400001)(71200400001)(316002)(66446008)(966005)(66946007)(4326008)(64756008)(110136005)(33656002)(26005)(9686003)(86362001)(6506007)(55016003)(38100700002)(7696005)(2940100002)(186003)(66574015);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dldNZk9uYVZ4eis3R293NzhaUFp6UEdsdnZIVHpVSjZuSGhEU1JtWU4rMFhS?=
 =?utf-8?B?ZE9SOGhGZTF2bUdaTXEwcHRSYU9rUWxraUdXMmo4Z0JlRzZaZHkycUtRa3hO?=
 =?utf-8?B?eDVzT2FNMnc0SEY0cHZncTVKSjZMNkFVZ2I0SXBzNDJQbHN6Wmg3bHBpNXdX?=
 =?utf-8?B?b3RGQkk5K0NHakxXU0owQUdBcHhTT2NyRUdWaEZKUHJUYkN2WHQ4bXdRakxt?=
 =?utf-8?B?MXQrYlNqVGRCcjMzbUJxNUk1Q0lHUHZIK3ZRemRDMjdlZXZCcmk1Wll0QStj?=
 =?utf-8?B?Q3p2Q0JOTnpteDFMemx1MnpSTUtMNXRtWkt1VUkwK3B6bmJQQjVuNnUvdWU2?=
 =?utf-8?B?ZFNod0hSckRaekZLZ0U4SEJLTkR1N2I3OC9HN2tWSUU2amNhUzFyTEQyTVRa?=
 =?utf-8?B?ZGRaOTIrSTJaekdJNzNNNWdzNzdrZ2t3NjN0WWJHUld0OHFqdFZnb2ErK1BW?=
 =?utf-8?B?V0JMZ0l1Wmc4cTJyZzVSZ2c5emxHUmRxNDJIS0JOd0MrMEFFRG5YeWI2dUll?=
 =?utf-8?B?MGlaVE92ZzMzSXI1aHEwLzhFUC80eiswNVBYa1plUEhyVFQvODV5MDVlaTBz?=
 =?utf-8?B?NmlFVUswN2tvTlhGWitNZzNFRzErcXVacXJDNzgwK2hVVUs0Smttb0w3bDYr?=
 =?utf-8?B?N0RrTzJYSVQxckNjOC9rSUQ5V1Jrb1FMTlRTRURtcVJlL3BDUGJvTTJZRmpL?=
 =?utf-8?B?RTJJZENDcXNkR3VYMmNHNy9tYk1lb2txWDJjcWpZa3VtSkNuTWNDRFR1b01y?=
 =?utf-8?B?bTdoWHBieFk5WThqbisrS1c4MzJ5MVRHdTJWZmpMVDBwdytXUzlMUFRHNVpW?=
 =?utf-8?B?Vk1pcEVLUjd4VmZ2YkdLZGhwcGpUa1NzREhyWjZ6REQ1SHl3V25Wbkt6SWVB?=
 =?utf-8?B?WkgyL3ZkRzV3SXU4UkE5NjMrQlN5T1FFQmZGMFYzSm4wTDkrL0QvTGNkWFZy?=
 =?utf-8?B?KytXbzdLT2x6bWIxRE5jSmlVdG0zSmk5MU9TWXAwNEpTVXIzdG84aGNBS0Nx?=
 =?utf-8?B?UGZtWHlMa0dDa3lON1Y2OHFEWjMzOTlTbHEvejUwMWRiUHZJZTIwbzBxQVZm?=
 =?utf-8?B?VzA3NThJK2x2ZUgyNm1vckNaUERYR3p5cDJnTTRuaXdreUNQZnp5bU4vMGVm?=
 =?utf-8?B?VTVXMWp1b1ZSbDM1OXF2ZCtHVEM0UlF1L1NVb0lOS2l2REZhSFQ1WnF4amsr?=
 =?utf-8?B?cUt5dHJyQjRwSXZGbGZmb2xOeFNVUllVaFF1ZTJMV3ZaNi9VWkZ3ZG1UOW00?=
 =?utf-8?B?NWE3a3p1SHFNOUZWanBwYjdJRXhDeXR5TnU1ZCtDcVExVm9vdVF5V29pb1o4?=
 =?utf-8?B?OUp1UGVYSVZSUWZTTjNJcFIzQmVoNzRFbVFLRm5aSlZVcnZVRHJrQzFpcnE0?=
 =?utf-8?B?bFhyMGVpY0toMzdtZlBISUtzUnp2and5SllUd3Q4anhBR2IweE5nNXhNVmZj?=
 =?utf-8?B?M3h5NExRbVc5L1lacDFOOUx6U2NKUUZoOVRSMmJENmlxNFBBdU1xbW40Q1U0?=
 =?utf-8?B?TU1oOEg3VjgvWnUzUncxaS8zdlhQa3JYekUyMzFBWEtySnBBZ0x1dEtIaXFn?=
 =?utf-8?B?d2w3SWU2WjBUV3JpbGtDVkxWVmRHNFk0a21RNGszZll3WUVWY0Y5UWsvUEhw?=
 =?utf-8?B?bk4ySHJiV2hMKzdtWXVlZWpDWVIxUit2T1ZTK3VNQUxGYW41dGlUYXdmekFi?=
 =?utf-8?B?aEZ3MEhRSFVOemNCVjg3NHJ6SWgxMGZJM1hpZ0Q4WVVBWjJMTzFVUyttd2xH?=
 =?utf-8?B?YjMrdVNVcFNCVGNCb3VKdlNib0ZHZHlLRDcrY2pXU09RNVdkOUsyaW5ZRTZO?=
 =?utf-8?B?blN4UjFSUmlSczlXM1hndTJuRVJIYW5tVnYreTJXbGw3OE1MR0lWcmtYUnRv?=
 =?utf-8?B?K2xjZjhOTG9vZ3RVYUhHK1RkOENxNEVpaWlhSkJtTDBIMUlpdjU5MlVTQ1lv?=
 =?utf-8?B?RjJ3SXFtSnFEaUQ1azFzbWpaTWMxdGlrSDhQakYzaWN4L0hvVndKNDBDaWls?=
 =?utf-8?B?cU9HSEhHL1ZIcUx6aGsvUkUvQkxzZzBscXYyUHFOMWNSV0V2THBrcTdyVDdO?=
 =?utf-8?B?bnZpMVA1V0FLWk9FTll6NTBHWFlnY3F3ZXlja1AwNFl5di9MUTRWT2I4dllr?=
 =?utf-8?Q?Uj9m+sHLzwCZmsAC6T116gRIy?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7666.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: df234ac5-3131-4807-1fbb-08da583babc8
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2022 12:50:53.4524 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: G4+z+jhLfZvk4B3QfTCVn3cKay3LNXiVVptheUo87nWMEnTMOpfLO3Zj3cezF+K4eTTU+MNQb+VC+8fUk3JsMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1PR07MB8616
X-Mailman-Approved-At: Wed, 29 Jun 2022 16:55:11 +0200
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRW1pbCBCZXJnDQo+IFNl
bnQ6IGRlbiAyNyBqdW5pIDIwMjIgMTQ6NDYNCj4gVG86IE1hdHRpYXMgUsO2bm5ibG9tIDxob2Zv
cnNAbHlzYXRvci5saXUuc2U+OyBNb3J0ZW4gQnLDuHJ1cA0KPiA8bWJAc21hcnRzaGFyZXN5c3Rl
bXMuY29tPjsgYnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb207DQo+IGRldkBkcGRrLm9yZw0KPiBD
Yzogc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IHN0YWJsZUBkcGRrLm9yZzsgYnVnemlsbGFA
ZHBkay5vcmc7DQo+IG9saXZpZXIubWF0ekA2d2luZC5jb20NCj4gU3ViamVjdDogUkU6IFtQQVRD
SCB2NF0gbmV0OiBmaXggY2hlY2tzdW0gd2l0aCB1bmFsaWduZWQgYnVmZmVyDQo+IA0KPiANCj4g
DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBNYXR0aWFzIFLDtm5u
YmxvbSA8aG9mb3JzQGx5c2F0b3IubGl1LnNlPg0KPiA+IFNlbnQ6IGRlbiAyNyBqdW5pIDIwMjIg
MTQ6MjgNCj4gPiBUbzogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT47
IEVtaWwgQmVyZw0KPiA+IDxlbWlsLmJlcmdAZXJpY3Nzb24uY29tPjsgYnJ1Y2UucmljaGFyZHNv
bkBpbnRlbC5jb207IGRldkBkcGRrLm9yZw0KPiA+IENjOiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVy
Lm9yZzsgc3RhYmxlQGRwZGsub3JnOyBidWd6aWxsYUBkcGRrLm9yZzsNCj4gPiBvbGl2aWVyLm1h
dHpANndpbmQuY29tDQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2NF0gbmV0OiBmaXggY2hlY2tz
dW0gd2l0aCB1bmFsaWduZWQgYnVmZmVyDQo+ID4NCj4gPiBPbiAyMDIyLTA2LTIzIDE0OjUxLCBN
b3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiA+PiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRv
Om1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0NCj4gPiA+PiBTZW50OiBUaHVyc2RheSwgMjMgSnVu
ZSAyMDIyIDE0LjM5DQo+ID4gPj4NCj4gPiA+PiBXaXRoIHRoaXMgcGF0Y2gsIHRoZSBjaGVja3N1
bSBjYW4gYmUgY2FsY3VsYXRlZCBvbiBhbiB1bmFsaWduZWQgYnVmZmVyLg0KPiA+ID4+IEkuZS4g
dGhlIGJ1ZiBwYXJhbWV0ZXIgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIHRvIGJlIDE2IGJpdCBhbGln
bmVkLg0KPiA+ID4+DQo+ID4gPj4gVGhlIGNoZWNrc3VtIGlzIHN0aWxsIGNhbGN1bGF0ZWQgdXNp
bmcgYSAxNiBiaXQgYWxpZ25lZCBwb2ludGVyLCBzbw0KPiA+ID4+IHRoZSBjb21waWxlciBjYW4g
YXV0by12ZWN0b3JpemUgdGhlIGZ1bmN0aW9uJ3MgaW5uZXIgbG9vcC4NCj4gPiA+Pg0KPiA+ID4+
IFdoZW4gdGhlIGJ1ZmZlciBpcyB1bmFsaWduZWQsIHRoZSBmaXJzdCBieXRlIG9mIHRoZSBidWZm
ZXIgaXMNCj4gPiA+PiBoYW5kbGVkIHNlcGFyYXRlbHkuIEZ1cnRoZXJtb3JlLCB0aGUgY2FsY3Vs
YXRlZCBjaGVja3N1bSBvZiB0aGUNCj4gPiA+PiBidWZmZXIgaXMgYnl0ZSBzaGlmdGVkIGJlZm9y
ZSBiZWluZyBhZGRlZCB0byB0aGUgaW5pdGlhbCBjaGVja3N1bSwNCj4gPiA+PiB0byBjb21wZW5z
YXRlIGZvciB0aGUgY2hlY2tzdW0gaGF2aW5nIGJlZW4gY2FsY3VsYXRlZCBvbiB0aGUgYnVmZmVy
DQo+ID4gPj4gc2hpZnRlZCBieSBvbmUgYnl0ZS4NCj4gPiA+Pg0KPiA+ID4+IHY0Og0KPiA+ID4+
ICogQWRkIGNvcHlyaWdodCBub3RpY2UuDQo+ID4gPj4gKiBJbmNsdWRlIHN0ZGJvb2wuaCAoRW1p
bCBCZXJnKS4NCj4gPiA+PiAqIFVzZSBSVEVfUFRSX0FERCAoRW1pbCBCZXJnKS4NCj4gPiA+PiAq
IEZpeCBvbmUgbW9yZSB0eXBvIGluIGNvbW1pdCBtZXNzYWdlLiBJcyAndW5saWduZWQnIGV2ZW4g
YSB3b3JkPw0KPiA+ID4+IHYzOg0KPiA+ID4+ICogUmVtb3ZlIGJyYWNlcyBmcm9tIHNpbmdsZSBz
dGF0ZW1lbnQgYmxvY2suDQo+ID4gPj4gKiBGaXggdHlwbyBpbiBjb21taXQgbWVzc2FnZS4NCj4g
PiA+PiB2MjoNCj4gPiA+PiAqIERvIG5vdCBhc3N1bWUgdGhhdCB0aGUgYnVmZmVyIGlzIHBhcnQg
b2YgYW4gYWxpZ25lZCBwYWNrZXQgYnVmZmVyLg0KPiA+ID4+DQo+ID4gPj4gQnVnemlsbGEgSUQ6
IDEwMzUNCj4gPiA+PiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4gPj4NCj4gPiA+PiBTaWduZWQt
b2ZmLWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiA+ID4+
IC0tLQ0KPiA+ID4+ICAgbGliL25ldC9ydGVfaXAuaCB8IDMyICsrKysrKysrKysrKysrKysrKysr
KysrKysrKy0tLS0tDQo+ID4gPj4gICAxIGZpbGUgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwg
NSBkZWxldGlvbnMoLSkNCj4gPiA+Pg0KPiA+ID4+IGRpZmYgLS1naXQgYS9saWIvbmV0L3J0ZV9p
cC5oIGIvbGliL25ldC9ydGVfaXAuaCBpbmRleA0KPiA+ID4+IGI1MDI0ODE2NzAuLjczOGQ2NDNk
YTAgMTAwNjQ0DQo+ID4gPj4gLS0tIGEvbGliL25ldC9ydGVfaXAuaA0KPiA+ID4+ICsrKyBiL2xp
Yi9uZXQvcnRlX2lwLmgNCj4gPiA+PiBAQCAtMyw2ICszLDcgQEANCj4gPiA+PiAgICAqICAgICAg
VGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4NCj4gPiA+PiAgICAq
IENvcHlyaWdodChjKSAyMDEwLTIwMTQgSW50ZWwgQ29ycG9yYXRpb24uDQo+ID4gPj4gICAgKiBD
b3B5cmlnaHQoYykgMjAxNCA2V0lORCBTLkEuDQo+ID4gPj4gKyAqIENvcHlyaWdodChjKSAyMDIy
IFNtYXJ0U2hhcmUgU3lzdGVtcy4NCj4gPiA+PiAgICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+
ID4gPj4gICAgKi8NCj4gPiA+Pg0KPiA+ID4+IEBAIC0xNSw2ICsxNiw3IEBADQo+ID4gPj4gICAg
KiBJUC1yZWxhdGVkIGRlZmluZXMNCj4gPiA+PiAgICAqLw0KPiA+ID4+DQo+ID4gPj4gKyNpbmNs
dWRlIDxzdGRib29sLmg+DQo+ID4gPj4gICAjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gPj4NCj4g
PiA+PiAgICNpZmRlZiBSVEVfRVhFQ19FTlZfV0lORE9XUw0KPiA+ID4+IEBAIC0xNjIsMjAgKzE2
NCw0MCBAQCBfX3J0ZV9yYXdfY2tzdW0oY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuLA0KPiA+
ID4+IHVpbnQzMl90IHN1bSkNCj4gPiA+PiAgIHsNCj4gPiA+PiAgIAkvKiBleHRlbmQgc3RyaWN0
LWFsaWFzaW5nIHJ1bGVzICovDQo+ID4gPj4gICAJdHlwZWRlZiB1aW50MTZfdCBfX2F0dHJpYnV0
ZV9fKChfX21heV9hbGlhc19fKSkgdTE2X3A7DQo+ID4gPj4gLQljb25zdCB1MTZfcCAqdTE2X2J1
ZiA9IChjb25zdCB1MTZfcCAqKWJ1ZjsNCj4gPiA+PiAtCWNvbnN0IHUxNl9wICplbmQgPSB1MTZf
YnVmICsgbGVuIC8gc2l6ZW9mKCp1MTZfYnVmKTsNCj4gPiA+PiArCWNvbnN0IHUxNl9wICp1MTZf
YnVmOw0KPiA+ID4+ICsJY29uc3QgdTE2X3AgKmVuZDsNCj4gPiA+PiArCXVpbnQzMl90IGJzdW0g
PSAwOw0KPiA+ID4+ICsJY29uc3QgYm9vbCB1bmFsaWduZWQgPSAodWludHB0cl90KWJ1ZiAmIDE7
DQo+ID4gPj4gKw0KPiA+ID4+ICsJLyogaWYgYnVmZmVyIGlzIHVuYWxpZ25lZCwga2VlcGluZyBp
dCBieXRlIG9yZGVyIGluZGVwZW5kZW50ICovDQo+ID4gPj4gKwlpZiAodW5saWtlbHkodW5hbGln
bmVkKSkgew0KPiA+ID4+ICsJCXVpbnQxNl90IGZpcnN0ID0gMDsNCj4gPiA+PiArCQlpZiAodW5s
aWtlbHkobGVuID09IDApKQ0KPiA+ID4+ICsJCQlyZXR1cm4gMDsNCj4gPiA+PiArCQkoKHVuc2ln
bmVkIGNoYXIgKikmZmlyc3QpWzFdID0gKihjb25zdCB1bnNpZ25lZA0KPiA+IGNoYXIgKilidWY7
DQo+ID4gPj4gKwkJYnN1bSArPSBmaXJzdDsNCj4gPiA+PiArCQlidWYgPSBSVEVfUFRSX0FERChi
dWYsIDEpOw0KPiA+ID4+ICsJCWxlbi0tOw0KPiA+ID4+ICsJfQ0KPiA+ID4+DQo+ID4gPj4gKwkv
KiBhbGlnbmVkIGFjY2VzcyBmb3IgY29tcGlsZXIgYXV0by12ZWN0b3JpemF0aW9uICovDQo+ID4N
Cj4gPiBUaGUgY29tcGlsZXIgd2lsbCBiZSBhYmxlIHRvIGF1dG8gdmVjdG9yaXplIGV2ZW4gdW5h
bGlnbmVkIGFjY2Vzc2VzLA0KPiA+IGp1c3Qgd2l0aCBkaWZmZXJlbnQgaW5zdHJ1Y3Rpb25zLiBG
cm9tIHdoYXQgSSBjYW4gdGVsbCwgdGhlcmUncyBubw0KPiA+IHBlcmZvcm1hbmNlIGltcGFjdCwg
YXQgbGVhc3Qgbm90IG9uIHRoZSB4ODZfNjQgc3lzdGVtcyBJIHRyaWVkIG9uLg0KPiA+DQo+ID4g
SSB0aGluayB5b3Ugc2hvdWxkIHJlbW92ZSB0aGUgZmlyc3Qgc3BlY2lhbCBjYXNlIGNvbmRpdGlv
bmFsIGFuZCB1c2UNCj4gPiBtZW1jcHkoKSBpbnN0ZWFkIG9mIHRoZSBjdW1iZXJzb21lIF9fbWF5
X2FsaWFzX18gY29uc3RydWN0IHRvIHJldHJpZXZlDQo+ID4gdGhlIGRhdGEuDQo+ID4NCj4gDQo+
IEhlcmU6DQo+IGh0dHBzOi8vd3d3LmFnbmVyLm9yZy9vcHRpbWl6ZS9pbnN0cnVjdGlvbl90YWJs
ZXMucGRmDQo+IGl0IGxpc3RzIHRoZSBsYXRlbmN5IG9mIHZtb3ZkcWEgKGFsaWduZWQpIGFzIDYg
Y3ljbGVzIGFuZCB0aGUgbGF0ZW5jeSBmb3INCj4gdm1vdmRxdSAodW5hbGlnbmVkKSBhcyA3IGN5
Y2xlcy4gU28gSSBndWVzcyB0aGVyZSBjYW4gYmUgc29tZSBkaWZmZXJlbmNlLg0KPiBBbHRob3Vn
aCBpbiBwcmFjdGljZSBJJ20gbm90IHN1cmUgd2hhdCBkaWZmZXJlbmNlIGl0IG1ha2VzLiBJJ3Zl
IG5vdCBzZWVuIGFueQ0KPiBkaWZmZXJlbmNlIGluIHJ1bnRpbWUgYmV0d2VlbiB0aGUgdHdvIHZl
cnNpb25zLg0KPiANCg0KQ29ycmVjdGlvbiB0byBteSBjb21tZW50Og0KVGhvc2Ugc3RhdHMgYXJl
IGZvciBzb21lIG9sZGVyIENQVS4gRm9yIHNvbWUgbmV3ZXIgQ1BVcyBzdWNoIGFzIFRpZ2VyIExh
a2UgdGhlIHN0YXRzIHNlZW0gdG8gYmUgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiBhbGlnbmVkIG9y
IHVuYWxpZ25lZC4NCg0KPiA+ID4+ICsJdTE2X2J1ZiA9IChjb25zdCB1MTZfcCAqKWJ1ZjsNCj4g
PiA+PiArCWVuZCA9IHUxNl9idWYgKyBsZW4gLyBzaXplb2YoKnUxNl9idWYpOw0KPiA+ID4+ICAg
CWZvciAoOyB1MTZfYnVmICE9IGVuZDsgKyt1MTZfYnVmKQ0KPiA+ID4+IC0JCXN1bSArPSAqdTE2
X2J1ZjsNCj4gPiA+PiArCQlic3VtICs9ICp1MTZfYnVmOw0KPiA+ID4+DQo+ID4gPj4gICAJLyog
aWYgbGVuZ3RoIGlzIG9kZCwga2VlcGluZyBpdCBieXRlIG9yZGVyIGluZGVwZW5kZW50ICovDQo+
ID4gPj4gICAJaWYgKHVubGlrZWx5KGxlbiAlIDIpKSB7DQo+ID4gPj4gICAJCXVpbnQxNl90IGxl
ZnQgPSAwOw0KPiA+ID4+ICAgCQkqKHVuc2lnbmVkIGNoYXIgKikmbGVmdCA9ICooY29uc3QgdW5z
aWduZWQgY2hhcg0KPiA+ICopZW5kOw0KPiA+ID4+IC0JCXN1bSArPSBsZWZ0Ow0KPiA+ID4+ICsJ
CWJzdW0gKz0gbGVmdDsNCj4gPiA+PiAgIAl9DQo+ID4gPj4NCj4gPiA+PiAtCXJldHVybiBzdW07
DQo+ID4gPj4gKwkvKiBpZiBidWZmZXIgaXMgdW5hbGlnbmVkLCBzd2FwIHRoZSBjaGVja3N1bSBi
eXRlcyAqLw0KPiA+ID4+ICsJaWYgKHVubGlrZWx5KHVuYWxpZ25lZCkpDQo+ID4gPj4gKwkJYnN1
bSA9IChic3VtICYgMHhGRjAwRkYwMCkgPj4gOCB8IChic3VtICYNCj4gPiAweDAwRkYwMEZGKSA8
PCA4Ow0KPiA+ID4+ICsNCj4gPiA+PiArCXJldHVybiBzdW0gKyBic3VtOw0KPiA+ID4+ICAgfQ0K
PiA+ID4+DQo+ID4gPj4gICAvKioNCj4gPiA+PiAtLQ0KPiA+ID4+IDIuMTcuMQ0KPiA+ID4NCj4g
PiA+IEBFbWlsLCB0aGFuayB5b3UgZm9yIHRob3JvdWdobHkgcmV2aWV3aW5nIHRoZSBwcmV2aW91
cyB2ZXJzaW9ucy4NCj4gPiA+DQo+ID4gPiBJZiB5b3VyIHRlc3Qgc3VjY2VlZHMgYW5kIHlvdSBh
cmUgc2F0aXNmaWVkIHdpdGggdGhlIHBhdGNoLCByZW1lbWJlcg0KPiA+ID4gdG8NCj4gPiByZXBs
eSB3aXRoIGEgIlRlc3RlZC1ieSIgdGFnIGZvciBwYXRjaHdvcmsuDQo+ID4gPg0K