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 9151C4242B;
	Fri, 20 Jan 2023 11:46:29 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3D04E40150;
	Fri, 20 Jan 2023 11:46:29 +0100 (CET)
Received: from NAM10-DM6-obe.outbound.protection.outlook.com
 (mail-dm6nam10on2080.outbound.protection.outlook.com [40.107.93.80])
 by mails.dpdk.org (Postfix) with ESMTP id 4BC71400D5
 for <dev@dpdk.org>; Fri, 20 Jan 2023 11:46:27 +0100 (CET)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=US8fOwGYo5KI9R2fvFtMQLwOHjj2NqBYr9TgsXrLScvnEX3lJ5DGS4u5ZXb4Tybp15n/tPlTgMl3y4/XzSKjkrXans24Nr5xEmtspwkX/wYcX3E2NB4ed0Z4aFhAgFxbgaAt4coUd8uOHVG7YOCtrnT1ubiVwpV0EfkPBum90wYcjNvzVhIwgqPjUIRcOtgMUc4kyGxKlE0hFkfu6EUdJyDsetkXV0/E/oarQjBFCKTuoF9GG6hw1gXTRBRr5IRuPZgS+aCWwIhcWTtdC+EjD5o0see9qAJzOtOtQmhIDnRkVPZI6DExu+R67pzlrE2Wt83LpkE34oiWnz8EHrq7mw==
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=kQjrjIuNy5jWrjREbtR50J3+6XYkF0ttO78D8rN0dOg=;
 b=YcIBTZP8TI14najqHjrM0KpxvRdMHR0/9D3f8+zWAdogy/i+Rif/28rPClL2BK4t7YC4/7THBkXhVtjePrvsmVjfKKAMRJdJuifgTgOhNI0bKKpRDl7PaePwznQFrzCN2ek60Hi2ia8BQV3A9o8lcjRi/k83Dhpgek2cSXLbnvSibe5AjSnf2VvMyGsD7vzWh15xEkj/EpcU0bj5ibm22Y7xiqkA3auoEkN1f34peMtNqRIBkj2hm6jSqsJr5yipP2/T8s9cF2BzeyleC7UuItWAP6yXvLOnWRvG0RaQs32ZngacekiQZoE26t870Vrv3kLNzUS/+Yl/OEvH3MWysw==
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=kQjrjIuNy5jWrjREbtR50J3+6XYkF0ttO78D8rN0dOg=;
 b=lZeW7jzqPIj0h7PqUx8IJ2nQn6bkjeucOOsXOffb7J1JEcfV70ptC2VkfPKGKKiISSQ16MxPkrlmrixcrUb8f+kv5naTXDBekCHqNZwxN8bbU7pfWoMORdIRtG0B0qE6RpCajjcrF9VJaAUvE6JThPY81J3uy/K4jN7khTrL2gfPXkb/QP097/1GG6xLPw9HzWAOVN4vMBLqDTu/778Hdb5GBK3HgiakhInuSPtMZ+6cd4aPFC26J2UuoXJwdr8kfDOaS7oB3s7O6GfL2YP36cRthL4bQXdNlfNo5MwN9QQCCQ1CIj8Q3f4Y9QyNbC+FnyGChqyRGHQrg3XVv3vYkw==
Received: from IA1PR12MB6332.namprd12.prod.outlook.com (2603:10b6:208:3e2::13)
 by BY5PR12MB4068.namprd12.prod.outlook.com (2603:10b6:a03:203::12)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27; Fri, 20 Jan
 2023 10:46:22 +0000
Received: from IA1PR12MB6332.namprd12.prod.outlook.com
 ([fe80::be18:9845:3676:784e]) by IA1PR12MB6332.namprd12.prod.outlook.com
 ([fe80::be18:9845:3676:784e%7]) with mapi id 15.20.6002.027; Fri, 20 Jan 2023
 10:46:22 +0000
From: Gregory Etelson <getelson@nvidia.com>
To: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>, "dev@dpdk.org"
 <dev@dpdk.org>
CC: Matan Azrad <matan@nvidia.com>, Raslan Darawsheh <rasland@nvidia.com>, Ori
 Kam <orika@nvidia.com>, "NBU-Contact-Thomas Monjalon (EXTERNAL)"
 <thomas@monjalon.net>, Ferruh Yigit <ferruh.yigit@amd.com>
Subject: RE: [PATCH v6 1/2] ethdev: add query_update sync and async function
 calls
Thread-Topic: [PATCH v6 1/2] ethdev: add query_update sync and async function
 calls
Thread-Index: AQHZLCW+BoMIipDjikSGSEM0ehHwFK6m/A8AgAAW1OA=
Date: Fri, 20 Jan 2023 10:46:22 +0000
Message-ID: <IA1PR12MB6332D6BBDEE86CE2ECB474ECA5C59@IA1PR12MB6332.namprd12.prod.outlook.com>
References: <20221221073547.988-1-getelson@nvidia.com>
 <20230119164713.7164-1-getelson@nvidia.com>
 <c4a57fce-f966-6720-843e-b3846dfdaa31@oktetlabs.ru>
In-Reply-To: <c4a57fce-f966-6720-843e-b3846dfdaa31@oktetlabs.ru>
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=nvidia.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: IA1PR12MB6332:EE_|BY5PR12MB4068:EE_
x-ms-office365-filtering-correlation-id: 1c34a263-06da-4db6-094b-08dafad39250
x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: QwQkyYZYe/MpT5iZwTg3V8GfkUBGWq0iF0eu38ONWqnujnPCEpwbGeaX1cXyukxSSq/6JQKZ09XEHxxDorgoMlShAxjNcldsSxb0LlwRceSq6pHW1tWCrPmE9+ENiZU9wU3YofaCWa8dJW270cdjF/HMH3V97AtzqMlOQ4gVaZKNvqDtISTYxza5/liSttXDSqVUkZZZIScPwD7WGHaB6DEQKAp64HQpAQlePPHLq+Y0kXC3E6obJHDTYC51P61+WYOFWHXrzgr9jbuQk8olU4Dcww5dZoq7E2rwjXEfxaNYPeWpF6btnHKyDcrq3fuHgbC7mv2EDyCesTo7GFbbZC8DUFjQ3dh0AQixj3SOs6lvPH6iMkwjGE6Bmpb4TTuxuomH/W0QoPZjTt29QnO66qfysTWQr+7wZrKmKdSnkXv2Ak5c27qBcUJQ5SZg6GRAqkMbg06SWLKddJ1LeIjfTnxcZlY9TXl4zGyDKezhC4YiklMDNLSAxYxF1OmYu0lwhJt4EZ2lFa/xFWb70DcIwCeQHmloYjmFMlC35AOVWj9LpJFhtVtIuJREHjiNyfuANbZv0gokr/07jv2h0IbftGAX0+mQ/CwgAnwUwvZlAmA31Qx8VlOas7YJQBsKF4cdPZ/u6klM36q4NsI0im3wdH+Qo/LEPza4txEdeArC+2sQ+D9AZHG2WqooxC+D3PoR6QAFbGAA2Y+J4XjkLUczVw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:IA1PR12MB6332.namprd12.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230022)(4636009)(396003)(39860400002)(366004)(136003)(346002)(376002)(451199015)(2906002)(186003)(9686003)(54906003)(110136005)(6506007)(316002)(478600001)(7696005)(71200400001)(122000001)(38100700002)(38070700005)(55016003)(86362001)(33656002)(83380400001)(41300700001)(4326008)(5660300002)(8936002)(52536014)(76116006)(66946007)(66446008)(66476007)(66556008)(64756008)(8676002);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?b081azIwb0wzQVhtcXk4RWZ4WTBCVTg4RWYxcGZxSTB1L2xCOHFmdkxBWkVl?=
 =?utf-8?B?MmlpMFVYTTkvT2lUajR0QU5hR2NjT1NmQzRNU04yb3U1UjhCWGZjVWNlMGR2?=
 =?utf-8?B?TUJBS1JpN0g4SWlOTHcwL3FtYzBEMnZGZjlVWHhYWnNQampkb0hOS0x0RTE5?=
 =?utf-8?B?M0FSazdMUHZWakEwdFF1SVFWZkd1VHhIdFRFK1dyVG1mVyswbEo4UWFHRFRp?=
 =?utf-8?B?NHR3Q0xqWCtVY0E5czd6cEM5NHlScS9sRk05SW5NVDcyakJRUERYMVlMUTVO?=
 =?utf-8?B?Sm84bnRubjRlU2l2TVpjQjlHSSthek1NcjF5bnNXN1UyMCtuWk5Jd0tRbnlk?=
 =?utf-8?B?WFdPWHZQRHNrNmc4Kys3V1Z1RU5mdTd4YzhWWlJzTVBTU1lScDVPLytCRVFq?=
 =?utf-8?B?c3F2dzZ5TDJiaFV4aElERGxEa2poQjc0WU93ai83VVZLMVVFTW5EVDk3dUQ5?=
 =?utf-8?B?YmhQeVF4TGRjMGUxbkZFa25wNnloZ2FIekpWa3ZKbmJZVDVnbDl5UDUwK28y?=
 =?utf-8?B?ajcxdE1mSUZRd1JONTEvbFlHOEtmbGtlTGdrTE50WGVhU1BlNkxWeWxWS1E3?=
 =?utf-8?B?YlhUWFA5Q0pPakNqbXl6WFdPekRHN2pPVXh2ZDNxTWtDRnlHU2M3YVBqSnRZ?=
 =?utf-8?B?SE1uRnlPS04yYkduR0ZRaGlSQWFEUm1uRmZaYlhCSVk0Q0VqdThvcmZFelpO?=
 =?utf-8?B?OWI5QmJ5VFZNQnlnb1FPUDJheGNFOS80ZllqbXJJSk9RbVVxNlgyVmpNZ1ZC?=
 =?utf-8?B?Wng2UmZGaFlDcHVaL0pIdS9OdHFRcWJTelVVNXJVZG44K0R6MC9RQS9seVFQ?=
 =?utf-8?B?YThhRnJ0Q3FoNTkzTnFkNjJudzZMQ2ZPTldQeHdHR2FSeVNGMldIR3dGeStR?=
 =?utf-8?B?eU9HQ1Vnd3FJamQwdWhyZFBJRFdNcHZHcFdjWFdSWUdHRk9aeS9jZ1pqZm1m?=
 =?utf-8?B?WXJUa24xWkZYcjd2ODduTS9hWm5CNFQ5OEF2ZGZVRW4yeDZIRFZ2WTh6c3BY?=
 =?utf-8?B?cGhWcnNsQWpzQVFJUitOYzlpUEhCMnp0VlRPUllTTlpsSlczMFNBdS9zK1ZN?=
 =?utf-8?B?eXZ3UVRVQWNZZnVURlV1Y0V3SkRYb3B5VTN1dzM5NDVTelB6Z2poS1h4UXJF?=
 =?utf-8?B?ZkgvRTk0WmNvaXMrSVBKUWVIak5TYzJQSlF5VTFTK01nUUQrL1JZbCtPWmx0?=
 =?utf-8?B?ajEwNW1VbUQ4NFFBTW9relFDbVFzUEJRQUJBQ2FHZjZ2TjdFV3FJWDF5Mk5z?=
 =?utf-8?B?bkNRNEI5Z0hvTllOVUx6VGsxc3hNNGg4K3FtcTJUYk1ydnV6SG5TQkFERWlx?=
 =?utf-8?B?bDBwaHJFTEJFSnlKZE9vd01YNEliRGJGQUdXVnM1b3VZZm5kZ1JvelVNSHJG?=
 =?utf-8?B?Y043QnFxclNIV0k0WG94YkVod09sSVpVZ3g3TE9hY3VEekJFamtLcGRVandq?=
 =?utf-8?B?bXMzSmU5QWszQTZkLzZGTUtaWlFNUVZka2tsZWJhUHdCMFRRK3hZandvMTll?=
 =?utf-8?B?dUN4N1VWbVRLR2RmbnIwcy9NT291UDRacVdFYXJNZU9IWTU0SDl5bUpXRi9R?=
 =?utf-8?B?TDhuYTlEV3A1ZkhrUngzL2wrZVF0ZnpRcTUwcm5oRGJPOXpTZVNSMVFZR0tw?=
 =?utf-8?B?OHpQZWdmeHBuSXR6c1g2aXM1WEJRZElKUnQ2T3JCNmh1cllkdnFEY3ExMG4y?=
 =?utf-8?B?cjU5RnpPYTJPVzhCdDNDWlRxdUovbHR3eGVha25zV1Yrb1BGRksvVlZmRmw5?=
 =?utf-8?B?WjlKNHQ2Rll0c2JEMWlYc2FwRGw5YkFLZ1pQRS8yMjhzYVdHbGhIMGluN1ZZ?=
 =?utf-8?B?WmQxeUlQMkIzR2sreXJsVDREejY0d1hXcHRQaE93cnNRb3ZBMWtmckJhc3Rz?=
 =?utf-8?B?NFUwK2oyaVBrWUVxdjNHOFdFZlN5SGhEYnc1NGZuZ3VDKzZrc1cxWkdKZGRr?=
 =?utf-8?B?SXNEUDBYVm5UdjkwOERtV2VTUStWTWtBMjBETXdjZjcvMnBDVWtIV1c0Q212?=
 =?utf-8?B?TDhOb0dMQUFESjY0K0p6RnozUUtzZ09iSlVucWNJK3lCWElwWWRIdTlPaFFG?=
 =?utf-8?B?dEVmTVloUHZ2bUdPcFpFTkhMU2ZLTGN1aVR1SDI2OEpwbUJJenVQWEx5b2FF?=
 =?utf-8?B?RklLNktJZUtyODdaMkhnNUE3c2lqUlNmT3RQb2tKUG5KZHZLNkhrM3JsclJ5?=
 =?utf-8?Q?nuOjeJ2xoMBZl49t8tTO9eu/HH11Vo+b8rConB/O6NWP?=
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: IA1PR12MB6332.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1c34a263-06da-4db6-094b-08dafad39250
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2023 10:46:22.5640 (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: llTm5bHo1QQNZtMbs/C/MnW8qRlppfYhY0Q5hLVFTqCwKxrJjRgkEgnIJ6GnrpgJSrq+SHLHkUu9t6xWhzfGqA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4068
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

SGVsbG8gQW5kcmV3LA0KDQpbXQ0KDQo+ID4gVGhlIHBhdGNoIGFkZHMgYHJ0ZV9mbG93X2FjdGlv
bl9oYW5kbGVfcXVlcnlfdXBkYXRlYCBmdW5jdGlvbiBjYWxsLA0KPiANCj4gIlRoaXMgcGF0Y2gg
YWRkcyAuLi4iIC0+ICJBZGQgLi4uIg0KPiANCg0KV2lsbCBmaXggaW4gdjcuDQoNCj4gPiBhbmQg
aXQncyBhc3luYyB2ZXJzaW9uIGBydGVfZmxvd19hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3Vw
ZGF0ZWANCj4gPiB0byBhdG9taWNhbGx5IHF1ZXJ5IGFuZCB1cGRhdGUgZmxvdyBhY3Rpb24uDQo+
IA0KPiBTb3JyeSwgbWF5IGJlIEknbSBtaXNzaW5nIHNvbWV0aGluZywgYnV0IGFmdGVyIHJlYWRp
bmcgcHJldmlvdXMNCj4gZGlzY3Vzc2lvbiBJIGhhdmUgYSBmZWVsaW5nIHRoYXQgdXBkYXRlIGNv
dWxkIGJlIHF1ZXJpZWQgZGF0YQ0KPiBkZXBlbmRlbnQuIEhvd2V2ZXIsIEkgZG9uJ3QgdW5kZXJz
dGFuZCBob3cgaXQgY291bGQgYmUgcG9zc2libGUNCj4gd2l0aCBBUEkgYmVsb3cuIEp1c3QgbXkg
bWlzdW5kZXJzdGFuZGluZz8NCj4gDQoNClRoZSBnb2FsIG9mIGBydGVfZmxvd19hY3Rpb25faGFu
ZGxlX3F1ZXJ5X3VwZGF0ZSgpYCBpcyB0byBleGVjdXRlIHF1ZXJ5IGFuZCB1cGRhdGUgYWN0aW9u
cyBhdG9taWNhbGx5Lg0KVGhlIGZ1bmN0aW9uIGd1YXJhbnRpZXMgdGhhdCBhY3Rpb24gc3RhdGUg
d2lsbCBub3QgY2hhbmdlIGJ5IGFueSBldmVudCBiZWZvcmUgYm90aCB1cGRhdGUgYW5kIHF1ZXJ5
IGNvbXBsZXRlLg0KSWYgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgd2l0aCB0aGUgYCBSVEVfRkxP
V19RVV9RVUVSWV9GSVJTVCBgIGBtb2RlYCBhcmd1bWVudCwgdGhlbiB1cGRhdGUgZXhlY3V0aW9u
IGNhbiBkZXBlbmQNCm9uIHF1ZXJ5IHJlc3VsdC4gVGhhdCdzIHVwIHRvIHF1ZXJ5IGZvcm1hdCwg
UE1EIGltcGxlbWVudGF0aW9uIGFuZCBoYXJkd2FyZSBjYXBhYmlsaXRpZXMuDQpJIGhvcGUgdGhh
dCBhbnN3ZXJlZCB5b3VyIHF1ZXN0aW9uLg0KICANCj4gPg0KPiA+IEFwcGxpY2F0aW9uIGNhbiBj
b250cm9sIHF1ZXJ5IGFuZCB1cGRhdGUgb3JkZXIsIGlmIHRoYXQgaXMgc3VwcG9ydGVkDQo+ID4g
YnkgcG9ydCBoYXJkd2FyZSwgYnkgc2V0dGluZyBgcXVfbW9kZWAgcGFyYW1ldGVyIHRvDQo+ID4g
UlRFX0ZMT1dfUVVfUVVFUllfRklSU1Qgb3IgUlRFX0ZMT1dfUVVfVVBEQVRFX0ZJUlNULg0KPiA+
DQo+ID4gU2lnbmVkLW9mZi1ieTogR3JlZ29yeSBFdGVsc29uIDxnZXRlbHNvbkBudmlkaWEuY29t
Pg0KPiA+IC0tLQ0KPiA+IHYyOiBSZW1vdmUgUlRFX0ZMT1dfUVVfREVGQVVMVCBxdWVyeS11cGRh
dGUgbW9kZS4NCj4gPiB2MzogVXBkYXRlIHJlbGVhc2UgcmVsZWFzZSBub3Rlcy4NCj4gPiAgICAg
IEZpeCBkb3h5Z2VuIGVycm9ycy4NCj4gPiB2NDogQWRkIHJldHVybmVkIGVycm5vIGNvZGVzLg0K
PiA+IHY1OiBVcGRhdGUgdGhlIHBhdGNoIGRlc2NyaXB0aW9uLg0KPiA+ICAgICAgRml4IHR5cG9z
Lg0KPiA+IHY2OiBSZXNvbHZlIG1lcmdlIGNvbmZsaWN0IHdpdGggdGhlIG1haW4gYnJhbmNoLg0K
PiA+IC0tLQ0KPiA+ICAgZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yM18wMy5yc3QgfCAg
NyArKw0KPiA+ICAgbGliL2V0aGRldi9ydGVfZmxvdy5jICAgICAgICAgICAgICAgICAgfCAzOSAr
KysrKysrKysrDQo+ID4gICBsaWIvZXRoZGV2L3J0ZV9mbG93LmggICAgICAgICAgICAgICAgICB8
IDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICBsaWIvZXRoZGV2L3J0ZV9mbG93
X2RyaXZlci5oICAgICAgICAgICB8IDE1ICsrKysNCj4gPiAgIGxpYi9ldGhkZXYvdmVyc2lvbi5t
YXAgICAgICAgICAgICAgICAgIHwgIDUgKysNCj4gPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTY1IGlu
c2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9y
ZWxlYXNlXzIzXzAzLnJzdA0KPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjNfMDMu
cnN0DQo+ID4gaW5kZXggYzE1ZjZmYmI5Zi4uNjk0MWQyMGFiYyAxMDA2NDQNCj4gPiAtLS0gYS9k
b2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzAzLnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlk
ZXMvcmVsX25vdGVzL3JlbGVhc2VfMjNfMDMucnN0DQo+ID4gQEAgLTY5LDYgKzY5LDEzIEBAIE5l
dyBGZWF0dXJlcw0KPiA+ICAgICAgIGBgcnRlX2V2ZW50X2Rldl9jb25maWc6Om5iX3NpbmdsZV9s
aW5rX2V2ZW50X3BvcnRfcXVldWVzYGANCj4gcGFyYW1ldGVyDQo+ID4gICAgICAgcmVxdWlyZWQg
Zm9yIGV0aF9yeCwgZXRoX3R4LCBjcnlwdG8gYW5kIHRpbWVyIGV2ZW50ZGV2IGFkYXB0ZXJzLg0K
PiA+DQo+ID4gKyogKipBZGRlZCBmdW5jdGlvbnMgdG8gYXRvbWljYWxseSBxdWVyeSBhbmQgdXBk
YXRlIGluZGlyZWN0IGZsb3cNCj4gYWN0aW9uLioqDQo+ID4gKw0KPiA+ICsgIEFkZGVkIHN5bmNo
cm9ub3VzIGFuZCBhc3luY2hyb25vdXMgZnVuY3Rpb25zIHRvIGF0b21pY2FsbHkgcXVlcnkNCj4g
YW5kIHVwZGF0ZQ0KPiA+ICsgIGluZGlyZWN0IGZsb3cgYWN0aW9uOg0KPiA+ICsNCj4gPiArICAt
IGBgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGVgYA0KPiA+ICsgIC0gYGBydGVf
Zmxvd19hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZWBgDQo+IA0KPiBQbGVhc2UsIGFk
ZCBvbmUgbW9yZSBlbXB0eSBsaW5lIHNpbmNlIHR3byBzaG91bGQgc2VwYXJhdGUNCj4gc2VjdGlv
bnMuDQo+IA0KDQpXaWxsIGZpeCBpbiB2Ny4NCg0KPiA+DQo+ID4gICBSZW1vdmVkIEl0ZW1zDQo+
ID4gICAtLS0tLS0tLS0tLS0tDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cu
YyBiL2xpYi9ldGhkZXYvcnRlX2Zsb3cuYw0KPiA+IGluZGV4IDdkMGMyNDM2NmMuLjhiOGFhOTQw
YmUgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi9ydGVfZmxvdy5jDQo+ID4gKysrIGIvbGli
L2V0aGRldi9ydGVfZmxvdy5jDQo+ID4gQEAgLTE4ODMsMyArMTg4Myw0MiBAQCBydGVfZmxvd19h
c3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5KHVpbnQxNl90DQo+IHBvcnRfaWQsDQo+ID4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbl9oYW5kbGUsIGRhdGEsIHVz
ZXJfZGF0YSwgZXJyb3IpOw0KPiA+ICAgICAgIHJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQs
IGVycm9yKTsNCj4gPiAgIH0NCj4gPiArDQo+ID4gK2ludA0KPiA+ICtydGVfZmxvd19hY3Rpb25f
aGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqaGFuZGxl
LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICp1cGRh
dGUsIHZvaWQgKnF1ZXJ5LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bnVtIHJ0ZV9mbG93X3F1ZXJ5X3VwZGF0ZV9tb2RlIG1vZGUsDQo+ID4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpDQo+ID4gK3sN
Cj4gPiArICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9y
dF9pZF07DQo+IA0KPiBJIGtub3cgdGhhdCBuZWFyYnkgY29kZSBkb2VzIHRoZSBzYW1lLCBidXQg
SSBzdGlsbCBkaXNsaWtlIGl0Lg0KPiBJZiBwb3J0X2lkIGlzIGludmFsaWQsIGl0IGNvdWxkIGJl
IG91dC1vZi1ib3VuZGFyeSBhY2Nlc3MuDQo+IFllcywgcG9ydF9pZCBpcyBjaGVja2VkIG9uIG9w
cyBnZXQsIGJ1dCBpdCB3b3VsZCBiZSBzYWZlciB0bw0KPiBkbyB0aGUgYXNzaWdubWVudCBhZnRl
ciBvcHMgY2hlY2sgYmVsb3cuDQo+IFJpZ2h0IG5vdyB0aGVyZSBpcyBubyBidWdzLCBidXQgdGhl
IGZ1dHVyZSBtb2RpZmljYXRpb25zDQo+IGNvdWxkIGJyZWFrIGl0Lg0KPiANCg0KV2lsbCBmaXgg
aW4gdjcuDQoNCj4gPiArICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVf
Zmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4gPiArICAgICBpbnQgcmV0Ow0KPiA+ICsN
Cj4gPiArICAgICBpZiAoIW9wcyB8fCAhb3BzLT5hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSkN
Cj4gPiArICAgICAgICAgICAgIHJldHVybiAtRU5PVFNVUDsNCj4gPiArICAgICByZXQgPSBvcHMt
PmFjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlKGRldiwgaGFuZGxlLCB1cGRhdGUsIHF1ZXJ5LA0K
PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSwgZXJy
b3IpOw0KPiA+ICsgICAgIHJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4g
PiArfQ0KPiA+ICsNCj4gPiAraW50DQo+ID4gK3J0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVf
cXVlcnlfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQzMl90DQo+IHF1ZXVlX2lkLA0KPiA+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRl
X2Zsb3dfb3BfYXR0ciAqYXR0ciwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGUgKmhhbmRsZSwNCj4gPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqdXBkYXRlLCB2
b2lkICpxdWVyeSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW51bSBydGVfZmxvd19xdWVyeV91cGRhdGVfbW9kZSBtb2RlLA0KPiA+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyX2RhdGEsDQo+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJy
b3IpDQo+ID4gK3sNCj4gPiArICAgICBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRo
X2RldmljZXNbcG9ydF9pZF07DQo+IA0KPiBzYW1lIGhlcmUNCj4gDQoNCldpbGwgZml4IGluIHY3
Lg0KDQo+ID4gKyAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAqb3BzID0gcnRlX2Zsb3df
b3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ID4gKyAgICAgaW50IHJldDsNCj4gPiArDQo+ID4g
KyAgICAgaWYgKCFvcHMgfHwgIW9wcy0+YXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGUp
DQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gLUVOT1RTVVA7DQo+ID4gKyAgICAgcmV0ID0gb3Bz
LT5hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZShkZXYsIHF1ZXVlX2lkLCBhdHRyLA0K
PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu
ZGxlLCB1cGRhdGUsIHF1ZXJ5LCBtb2RlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhLCBlcnJvcik7DQo+ID4gKyAgICAgcmV0
dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiA+ICt9DQo+ID4gZGlmZiAtLWdp
dCBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaCBiL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+IGlu
ZGV4IGI2MDk4N2RiNGIuLjI4MDU2N2EzYWUgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi9y
dGVfZmxvdy5oDQo+ID4gKysrIGIvbGliL2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gQEAgLTU2MjIs
NiArNTYyMiwxMDUgQEANCj4gcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeSh1aW50
MTZfdCBwb3J0X2lkLA0KPiA+ICAgICAgICAgICAgICAgdm9pZCAqdXNlcl9kYXRhLA0KPiA+ICAg
ICAgICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4NCj4gPiArLyoq
DQo+ID4gKyAqIEB3YXJuaW5nDQo+ID4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5
IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4gPiArICoNCj4gPiArICogUXVlcnlfdXBk
YXRlIG9wZXJhdGlvbmFsIG1vZGUuDQo+IA0KPiBNYXkgYmUgIlF1ZXJ5IGFuZCB1cGRhdGUgb3Bl
cmF0aW9uIG1vZGUuIj8NCj4gDQoNCkxvb2tzIGdvb2QuIFdpbGwgZml4IGluIHY3Lg0KDQo+ID4g
KyAqDQo+ID4gKyAqIFJURV9GTE9XX1FVX1FVRVJZX0ZJUlNUDQo+ID4gKyAqICAgRm9yY2UgcG9y
dCB0byBxdWVyeSBhY3Rpb24gYmVmb3JlIHVwZGF0ZS4NCj4gPiArICogUlRFX0ZMT1dfUVVfVVBE
QVRFX0ZJUlNUDQo+ID4gKyAqICAgRm9yY2UgcG9ydCB0byB1cGRhdGUgYWN0aW9uIGJlZm9yZSBx
dWVyeS4NCj4gPiArICoNCj4gPiArICogQHNlZSBydGVfZmxvd19hY3Rpb25faGFuZGxlX3F1ZXJ5
X3VwZGF0ZSgpDQo+ID4gKyAqIEBzZWUgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVy
eV91cGRhdGUoKQ0KPiA+ICsgKi8NCj4gPiArZW51bSBydGVfZmxvd19xdWVyeV91cGRhdGVfbW9k
ZSB7DQo+ID4gKyAgICAgUlRFX0ZMT1dfUVVfUVVFUllfRklSU1QsICAvKiBxdWVyeSBiZWZvcmUg
dXBkYXRlICovDQo+ID4gKyAgICAgUlRFX0ZMT1dfUVVfVVBEQVRFX0ZJUlNULCAvKiBxdWVyeSBh
ZnRlciAgdXBkYXRlICovDQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogQHdhcm5p
bmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQg
cHJpb3Igbm90aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBRdWVyeSBhbmQvb3IgdXBkYXRlIGluZGly
ZWN0IGZsb3cgYWN0aW9uLg0KPiA+ICsgKiBJZiB1cGRhdGUgcGFyYW1ldGVyIGlzIE5VTEwgdGhl
IGZ1bmN0aW9uIHF1ZXJpZXMgaW5kaXJlY3QgYWN0aW9uLg0KPiA+ICsgKiBJZiBxdWVyeSBwYXJh
bWV0ZXIgaXMgTlVMTCB0aGUgZnVuY3Rpb24gdXBkYXRlcyBpbmRpcmVjdCBhY3Rpb24uDQo+IA0K
PiBJTUhPIGl0IGlzIGJldHRlciB0byBoaWdobGlnaHQgaW4gdGhlIHBhcmFtZXRlciBkZXNjcmlw
dGlvbg0KPiBiZWxvdyB0aGF0IHBhcmFtZXRlciBtYXkgYmUgTlVMTC4gU2VlIGJlbG93Lg0KPiAN
Cg0KV2lsbCBmaXggaW4gdjcuDQoNCj4gPiArICogSWYgYm90aCBxdWVyeSBhbmQgdXBkYXRlIG5v
dCBOVUxMLCB0aGUgZnVuY3Rpb24gYXRvbWljYWxseQ0KPiA+ICsgKiBxdWVyaWVzIGFuZCB1cGRh
dGVzIGluZGlyZWN0IGFjdGlvbi4gUXVlcnkgYW5kIHVwZGF0ZSBhcmUgY2FycmllZCBpbg0KPiBv
cmRlcg0KPiA+ICsgKiBzcGVjaWZpZWQgaW4gdGhlIG1vZGUgcGFyYW1ldGVyLg0KPiANCj4gSSdk
IGxpa2UgdG8gZG91YmxlLWNoZWNrIHdoYXQgaGFwcGVucyBpZiBib3RoIG9wcyBhcmUgTlVMTC4N
Cj4gSSBndWVzcyBpdCBpcyBqdXN0IE5PUC4NCg0KSWYgYm90aCBxdWVyeSBhbmQgdXBkYXRlIHBh
cmFtZXRlcnMgd2VyZSBOVUxMLCB0aGUgZnVuY3Rpb24gd2lsbCBmYWlsIHdpdGggRUlOVkFMIGVy
cm9yDQpXaWxsIGZpeCBpbiB2Ny4NCg0KPiBBbHNvIGl0IHNob3VsZCBub3QgYmUgYSBwcm9ibGVt
IGlzIFFVRVJZX0ZJUlNUIGlzIHNwZWNpZmllZCwNCj4gYnV0IHF1ZXJ5IGlzIE5VTEwuIFNhbWUg
Zm9yIHVwZGF0ZS4NCj4gSWYgeWVzIGluIGJvdGggY2FzZXMsIG5vIGV4dHJhIGRvY3VtZW50YXRp
b24gaXMgcmVxdWlyZWQuDQo+IElmIGl0IGlzIGFuIGVycm9yLCBpdCBzaG91bGQgYmUgZG9jdW1l
bnRlZC4NCj4gDQoNCkJvdGggUlRFX0ZMT1dfUVVfUVVFUllfRklSU1QgYW5kIFJURV9GTE9XX1FV
X1VQREFURV9GSVJTVCByZXF1aXJlDQpxdWVyeSBhbmQgdXBkYXRlIHBhcmFtZXRlcnMuDQpXaWxs
IGZpeCBpbiB2Ny4NCg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gcG9ydF9pZA0KPiA+ICsgKiAg
IFBvcnQgaWRlbnRpZmllciBvZiBFdGhlcm5ldCBkZXZpY2UuDQo+ID4gKyAqIEBwYXJhbSBoYW5k
bGUNCj4gPiArICogICBIYW5kbGUgZm9yIHRoZSBpbmRpcmVjdCBhY3Rpb24gb2JqZWN0IHRvIGJl
IHVwZGF0ZWQuDQo+ID4gKyAqIEBwYXJhbSB1cGRhdGUNCj4gPiArICogICBVcGRhdGUgcHJvZmls
ZSBzcGVjaWZpY2F0aW9uIHVzZWQgdG8gbW9kaWZ5IHRoZSBhY3Rpb24gcG9pbnRlZCBieQ0KPiBo
YW5kbGUuDQo+IA0KPiBJZiBub3QgTlVMTCwgdXBkYXRlIC4uLg0KPiANCg0KV2lsbCBmaXggaW4g
djcuDQoNCj4gPiArICogQHBhcmFtIHF1ZXJ5DQo+ID4gKyAqICAgUG9pbnRlciB0byBzdG9yYWdl
IGZvciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBkYXRhIHR5cGUuDQo+IA0KPiBJZiBub3QgTlVMTCwg
cXVlcnkgYWN0aW9uIGRhdGEgYW5kIHN0b3JlIGluIHByb3ZpZGVkIGxvY2F0aW9uLg0KPiANCg0K
V2lsbCBmaXggaW4gdjcuDQoNCj4gPiArICogQHBhcmFtIG1vZGUNCj4gPiArICogICBPcGVyYXRp
b25hbCBtb2RlLg0KPiA+ICsgKiBAcGFyYW0gZXJyb3INCj4gPiArICogICBQZXJmb3JtIHZlcmJv
c2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLg0KPiA+ICsgKiAgIFBNRHMgaW5pdGlhbGl6
ZSB0aGlzIHN0cnVjdHVyZSBpbiBjYXNlIG9mIGVycm9yIG9ubHkuDQo+ID4gKyAqDQo+ID4gKyAq
IEByZXR1cm4NCj4gPiArICogMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90
aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4NCj4gPiArICogLSAoRU5PVFNVUCkgaWYgdW5k
ZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZ1bmN0aW9uYWxpdHkuDQo+ID4g
KyAqIC0gKEVJTlZBTCkgLSBpZiAqaGFuZGxlKiBpbnZhbGlkDQo+ID4gKyAqLw0KPiA+ICtfX3J0
ZV9leHBlcmltZW50YWwNCj4gPiAraW50DQo+ID4gK3J0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVl
cnlfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFuZGxlICpoYW5kbGUsDQo+ID4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAq
cXVlcnksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gcnRlX2Zs
b3dfcXVlcnlfdXBkYXRlX21vZGUgbW9kZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4gKw0KPiA+ICsvKioN
Cj4gPiArICogQHdhcm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkg
Y2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBFbnF1ZXVlIGFz
eW5jIGluZGlyZWN0IGZsb3cgYWN0aW9uIHF1ZXJ5IGFuZC9vciB1cGRhdGUNCj4gPiArICoNCj4g
PiArICogQHBhcmFtIHBvcnRfaWQNCj4gPiArICogICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJu
ZXQgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4gPiArICogICBGbG93IHF1ZXVl
IHdoaWNoIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBydWxlLg0KPiA+ICsgKiBAcGFyYW0gYXR0cg0K
PiA+ICsgKiAgIEluZGlyZWN0IGFjdGlvbiB1cGRhdGUgb3BlcmF0aW9uIGF0dHJpYnV0ZXMuDQo+
ID4gKyAqIEBwYXJhbSBoYW5kbGUNCj4gPiArICogICBIYW5kbGUgZm9yIHRoZSBpbmRpcmVjdCBh
Y3Rpb24gb2JqZWN0IHRvIGJlIHVwZGF0ZWQuDQo+ID4gKyAqIEBwYXJhbSB1cGRhdGUNCj4gPiAr
ICogICBVcGRhdGUgcHJvZmlsZSBzcGVjaWZpY2F0aW9uIHVzZWQgdG8gbW9kaWZ5IHRoZSBhY3Rp
b24gcG9pbnRlZCBieQ0KPiBoYW5kbGUuDQo+IA0KPiBJdCBzaG91bGQgYmUgZG9jdW1lbnRlZCB0
aGF0IE5VTEwgaXMgYWxsb3dlZA0KPiANCg0KV2lsbCBmaXggaW4gdjcuDQoNCj4gPiArICogQHBh
cmFtIHF1ZXJ5DQo+ID4gKyAqICAgUG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgYXNzb2NpYXRl
ZCBxdWVyeSBkYXRhIHR5cGUuDQo+ID4gKyAqICAgUXVlcnkgcmVzdWx0IHJldHVybmVkIG9uIGFz
eW5jIGNvbXBsZXRpb24gZXZlbnQuDQo+IA0KPiBJdCBzaG91bGQgYmUgZG9jdW1lbnRlZCB0aGF0
IE5VTEwgaXMgYWxsb3dlZA0KPiANCg0KV2lsbCBmaXggaW4gdjcuDQoNCj4gPiArICogQHBhcmFt
IG1vZGUNCj4gPiArICogICBPcGVyYXRpb25hbCBtb2RlLg0KPiA+ICsgKiBAcGFyYW0gdXNlcl9k
YXRhDQo+ID4gKyAqICAgVGhlIHVzZXIgZGF0YSB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgb24gYXN5
bmMgY29tcGxldGlvbiBldmVudC4NCj4gPiArICogQHBhcmFtIGVycm9yDQo+ID4gKyAqICAgUGVy
Zm9ybSB2ZXJib3NlIGVycm9yIHJlcG9ydGluZyBpZiBub3QgTlVMTC4NCj4gPiArICogICBQTURz
IGluaXRpYWxpemUgdGhpcyBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiA+ICsg
Kg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAgMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVy
cm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4NCj4gPiArICogLSAoRU5P
VFNVUCkgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZ1bmN0aW9u
YWxpdHkuDQo+ID4gKyAqIC0gKEVJTlZBTCkgLSBpZiAqaGFuZGxlKiBpbnZhbGlkDQo+ID4gKyAq
Lw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiAraW50DQo+ID4gK3J0ZV9mbG93X2FzeW5j
X2FjdGlvbl9oYW5kbGVfcXVlcnlfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQzMl90DQo+
IHF1ZXVlX2lkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAqYXR0ciwNCj4gPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGUgKmhh
bmRsZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
dm9pZCAqdXBkYXRlLCB2b2lkICpxdWVyeSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW51bSBydGVfZmxvd19xdWVyeV91cGRhdGVfbW9kZSBtb2RlLA0KPiA+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICp1c2VyX2RhdGEs
DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVf
Zmxvd19lcnJvciAqZXJyb3IpOw0KPiA+ICsNCj4gPiAgICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+
ICAgfQ0KPiA+ICAgI2VuZGlmDQo+IA0KPiBbc2tpcF0NCg0K