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 EF131A0A0C;
	Tue, 29 Jun 2021 02:07:51 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 6EB154069F;
	Tue, 29 Jun 2021 02:07:51 +0200 (CEST)
Received: from mga09.intel.com (mga09.intel.com [134.134.136.24])
 by mails.dpdk.org (Postfix) with ESMTP id 242464068A
 for <dev@dpdk.org>; Tue, 29 Jun 2021 02:07:49 +0200 (CEST)
X-IronPort-AV: E=McAfee;i="6200,9189,10029"; a="208000892"
X-IronPort-AV: E=Sophos;i="5.83,307,1616482800"; d="scan'208";a="208000892"
Received: from orsmga004.jf.intel.com ([10.7.209.38])
 by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 28 Jun 2021 17:07:48 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.83,307,1616482800"; d="scan'208";a="557755361"
Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16])
 by orsmga004.jf.intel.com with ESMTP; 28 Jun 2021 17:07:47 -0700
Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by
 ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.4; Mon, 28 Jun 2021 17:07:47 -0700
Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by
 ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.4; Mon, 28 Jun 2021 17:07:47 -0700
Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by
 orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4
 via Frontend Transport; Mon, 28 Jun 2021 17:07:47 -0700
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171)
 by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.4; Mon, 28 Jun 2021 17:07:46 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=Gohef82UToy+CSUy0EC59zjwl7txc918CgYoOHsSEvvg5YOnlZ5Czp8pSHvW0AXtWzaCHjwlNH8EeLdompHVxJFsz+FlN0q6o9M29xAFZg2y1KRXkm+7miHNzWCM3120y00Wozrw4vcPHzMM6XP1ERokkRc08dGfI1kttFSUTJjKKVJvHHJ2hzO+Ovx9aY4GFriA51H9kKzGg9hebAAWrMharPXBUZJahtayMocKInCfqy5roFwnZ+s3c6OO2Lmvpqgquu+YbI9XQpEQlvikNNrMLs+X7IU0QluCBfp/1CiLT+ooKP4uTZHHtFXJCk4hnnaX2tqQIZf+TByuxAegrg==
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=Y4zoXEuHhQQRPsFRwg9JSPf+OCiPEuh3Fey8eZ4g5VI=;
 b=hIAdrFbtgwVokOqWQL1OevDU32NfPyGo8yRMyzB9YLK6K523ljB/ZQuhfNSH6CzJFu/kQRgy+08UQvko+gMi3JFEg5QNsE0N9+cy52vFGXDXP7d3cr1qRiauUkYwgEE51G/rZ35kwbVfb2iXi0kcFjhwWibJHblPzJyyZzsYCA1X3bxnRKcr9KwZhgDrahKNMr1oyZmdvMHKXdDyBzRoEvsNHTqP6BLm1WVvKIAAOZo16zV9y2gV8bP+jfW/qNhGD7WFUKkZlhDbWJxYYyLallvTkMRM16AzYlvKTLL5fO7+20Dp9grp/ZR8RIYVLHfvPlpEn6KgmM7Lf2T6EofccQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;
 dkim=pass header.d=intel.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Y4zoXEuHhQQRPsFRwg9JSPf+OCiPEuh3Fey8eZ4g5VI=;
 b=pc8VF/kc9R3lJpJbphds2Wyy3fhXJ6+i7vu4iY34K+5WMvBQpZBmSzPMY7SMIpq0OG1gc3J1Ci17wUz5/jrbbJ1ZVBkyqMlNIgmH281zu0wqS9T8xwyrg2uDuKEZ8ImrtAYpgZIw7tsPMpZf7eEjfP2XXryj9rETS3RKLeiQ8rY=
Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19)
 by DM6PR11MB4265.namprd11.prod.outlook.com (2603:10b6:5:1de::30) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Tue, 29 Jun
 2021 00:07:44 +0000
Received: from DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::7dc4:66b0:f76b:6d48]) by DM6PR11MB4491.namprd11.prod.outlook.com
 ([fe80::7dc4:66b0:f76b:6d48%7]) with mapi id 15.20.4264.026; Tue, 29 Jun 2021
 00:07:44 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: "Burakov, Anatoly" <anatoly.burakov@intel.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "Hunt, David" <david.hunt@intel.com>
CC: "Loftus, Ciara" <ciara.loftus@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v3 6/7] power: support monitoring multiple Rx
 queues
Thread-Index: AQHXbBsO+Y6lPWDNwUKowUur7w9ha6spaDywgAAN2oCAAIWSUA==
Date: Tue, 29 Jun 2021 00:07:44 +0000
Message-ID: <DM6PR11MB44913223DE75F7C0702A656C9A029@DM6PR11MB4491.namprd11.prod.outlook.com>
References: <cover.1624629506.git.anatoly.burakov@intel.com>
 <cover.1624884053.git.anatoly.burakov@intel.com>
 <676eab0e1eb6c63acb170893675daa5a39eac29d.1624884053.git.anatoly.burakov@intel.com>
 <DM6PR11MB4491030DED8F1E21880416C89A039@DM6PR11MB4491.namprd11.prod.outlook.com>
 <77f30ce1-40b0-b427-c0f9-359a350358a1@intel.com>
In-Reply-To: <77f30ce1-40b0-b427-c0f9-359a350358a1@intel.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-product: dlpe-windows
dlp-reaction: no-action
dlp-version: 11.5.1.3
authentication-results: intel.com; dkim=none (message not signed)
 header.d=none;intel.com; dmarc=none action=none header.from=intel.com;
x-originating-ip: [109.255.184.192]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 35bc28d1-2e1d-4aba-65d4-08d93a91eb99
x-ms-traffictypediagnostic: DM6PR11MB4265:
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <DM6PR11MB426530C68471BBEDB13340D29A029@DM6PR11MB4265.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 6yaNGVJHKKpfk2SzSrYsZurLptq5vrQJqrUHRs9umRwqpO22lnfiZoGvc8TEPq74seP1IVJh+PoplDJRKaksY0efYUgv50nekEzj0wrdeNTVG8R23A7e9rTt8XqkqRdbJcCohc4B9usUYjZUfF8I7L4HxjTsjDlBvfUMxbWhgofhYaOZxJROLlcMa8EYRZKaB/Axywnq5+6KyPu22oGva0G6caUhllwHjvAjfrSmoNGUGkFt8gBOkhYbjT0QihgEkdOgsYgmyDwDi5OiYApS4xkoO5dAQmxrkQJ9RrUD9IyQ4KB62ld1Z1bPGPCPrOS/cJEaqmX3yHGtRheAdq8l34Q7LLfIIIpk3LpeD2cBvP7DKrBGbLw2uSBp1qKc6EjU9GPOrV/9lilQOHR/PpaMK6Mcgjloe2gkQM6FEZ87JyF+y8KywyoXdbgxUml8ba8zkTQVb9aGO+2UMJ5Nyssc4fdPN6URggYYxHPKmtbxiiMG6YYKAQoU/Ni+fAduJAc/KneT8hj3fE6kBkpa6NG0XOkXDlTGvpcD4oxDbTKgs7FwcqGGPQL7/zjteclqPSSD4E8xk0XrrwjU5GFtaWW02zbP9PK97qDzKQvuYEODvtQ+pGxQ1nYBVaZklKnXg3eeTiby0KiPU5xTR3SQWHLT5A==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(366004)(136003)(376002)(39860400002)(346002)(396003)(478600001)(107886003)(38100700002)(83380400001)(33656002)(110136005)(316002)(186003)(7696005)(5660300002)(6636002)(8936002)(2906002)(9686003)(30864003)(4326008)(26005)(66446008)(66476007)(64756008)(86362001)(66556008)(71200400001)(55236004)(8676002)(122000001)(6506007)(52536014)(55016002)(76116006)(66946007);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OU5DK2NUbnI5MVNFK1FsbG1reTVKQWo3MjNqeUVPUmM4Y2Z3K0huTDRNTTYv?=
 =?utf-8?B?TnNuRjBQYkFneDVUUTRRT0txWHhKbEE5TjFIOTBBU08zUGFybCt0RGNoYThS?=
 =?utf-8?B?QjNoQTA1RXpkd1RjSXJBMEJGQnJaSVI0Q2FmMjE0THcvS1BMamdRSnZLOW5N?=
 =?utf-8?B?VC9oUy9LN042TzVzSGxJeWliUmtCdncrdXdJNXA2QVBaZGN5N1JKNTBWZ2J4?=
 =?utf-8?B?Mzdsa1VYNkNyWnhINEVKQUxpNCsxZTlzMDU1WlludzNlYlc0OXlwZUZOVm9t?=
 =?utf-8?B?OEhPNHYyYVhxaDh3R2JvS0lmT0NESnZpRVhZWU9EOFRZSnU0d2R1cU1oVnkw?=
 =?utf-8?B?aWlTUWNVVDMweXVzcGpud09CT1RDRVVwWkdSQXBYWHN2bTQrWGFkQktDek00?=
 =?utf-8?B?TmIyZ1hSdXB0eHJJaWVydUNjQ0dpb1d1ZlZoMFFNMTgvZWhyMUhMeE9VRDVo?=
 =?utf-8?B?TFhJNVFaL0NSQlhkbnMwdnhoZlExOHZYWWJsQVFTa3BkQzhHaEhXZHpRU3ZJ?=
 =?utf-8?B?U3BZRXhlVkRQNk5nR1lOclFGRkJmZHRKanBPUGg2SnhGZ0tBNkhkRFl2MVNq?=
 =?utf-8?B?akdubUYwc1hRdlF1dTZ3aXpzL0VYRzh3cG5uNXFraEhBMWJBTHo3Z3dkVUc0?=
 =?utf-8?B?RldsQlMySUMvdUJIbXlycXFkblc2MDA1OHJlR2NHZ25WOXdta21rK3NvUTNE?=
 =?utf-8?B?d0tqMGxsdUVSMmwrT1hicEJocXlORjYycTBFNm5IMTUwNHMvbVZJbEtQcGtu?=
 =?utf-8?B?aDdiY1ZpMzBiSGJMTzU3dklXdmRHUGZiVEVhZXUyQjQvVEgxN1ZyN2gvUUhB?=
 =?utf-8?B?R1hpMXBoSXZ4YTl6bC8rVkZYdFovbVVERmxzR3lwdC9sMzRRdHZRTnF3dGha?=
 =?utf-8?B?WHpBeXdxL3hxejBlMExxQmhwSjZDeXRXN2o3bDZ3T3BrNUdmdzJVdnhLcFgr?=
 =?utf-8?B?eHlpaFNUdmI2WWhoYnFHMVFrK2kycGh0SG9US3RPYmJpV0VESXpDT21TUktB?=
 =?utf-8?B?MEdSUnpsbVAzc3c1RTBVZzAzTW1nQkxwdk1kZ1ArTDcxTWtZbG5RQi9DZ1lw?=
 =?utf-8?B?ZURRWVZmTE1vM2JEMHZsNU5sSDJFcVQrdVBHaUdDYk4rS0RLRmNpNks2RGlD?=
 =?utf-8?B?RE5yRmFwMWhhSVlGVXFxVk41ZzgzLzVqQUkvNFdWcjlTVWY2T1UwaHZsUDZI?=
 =?utf-8?B?N2dwQUNDczV3NERpeTlwU1F1d0hSY21XM2ErUHUrV0poZzE5WEtHSkFJZnIx?=
 =?utf-8?B?cE4zbjYzWUpTb2taekg0MXNiUS94OUVVaEc2TncxT0FtZmdac2owcXhybHdx?=
 =?utf-8?B?TWxSeDRTMXdWRjBtT1lvWHhMT1d1aXFlN0hZenp1SHJoYkxib2xrWGR3R1cz?=
 =?utf-8?B?NG9Qa1VpTWpmUUNIOWRXOHp4WjFiRU5NbEhPL3h2NnhoV0VwUFNWUXcreVhm?=
 =?utf-8?B?V05ORDhMK2NNRjduT0ozdFhVTEtYQWpEQWsrdDBZMlR3d29oYTdWL1hRSUZJ?=
 =?utf-8?B?OUNadDlxbmNIMXpLdll3VXp6K1RWTjVuVUliQ0FuYmVyS2VRc1ZRS0cwUFIw?=
 =?utf-8?B?U3U5TFFITFNQb3hPdW5KTHZEVDFxR0NseExQVi9JUEQxUUFBaVYwZ3Vqd3Zk?=
 =?utf-8?B?bHRqYWVjS3BNZjlKcjdMc05GVEVlUFNEQUdoYXQrdjhlZWlxR1A2MGFpMVFP?=
 =?utf-8?B?dlE1a2hybkljWGFwTXNnYjdYMGNKOUdieXp5VWdRbTNnbXVMbUZzRU4yRlZN?=
 =?utf-8?Q?RJ/Fa10IMb5e9jI3MkXyjT4FPrd55c0KyxgoBAr?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 35bc28d1-2e1d-4aba-65d4-08d93a91eb99
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2021 00:07:44.4914 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: pP5IcpxvgH8u7+7gso7MmGoFV3ac1Mh+y1SLlYdltTiveDv+lOnrnkE38wN2cAnB6iA15stnDDxtmfc3W0MJtidUggOBp6B8uHpYqK+lCUw=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4265
X-OriginatorOrg: intel.com
Subject: Re: [dpdk-dev] [PATCH v3 6/7] power: support monitoring multiple Rx
 queues
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
Sender: "dev" <dev-bounces@dpdk.org>

DQoNCj4gPj4gVXNlIHRoZSBuZXcgbXVsdGktbW9uaXRvciBpbnRyaW5zaWMgdG8gYWxsb3cgbW9u
aXRvcmluZyBtdWx0aXBsZSBldGhkZXYNCj4gPj4gUnggcXVldWVzIHdoaWxlIGVudGVyaW5nIHRo
ZSBlbmVyZ3kgZWZmaWNpZW50IHBvd2VyIHN0YXRlLiBUaGUgbXVsdGkNCj4gPj4gdmVyc2lvbiB3
aWxsIGJlIHVzZWQgdW5jb25kaXRpb25hbGx5IGlmIHN1cHBvcnRlZCwgYW5kIHRoZSBVTVdBSVQg
b25lDQo+ID4+IHdpbGwgb25seSBiZSB1c2VkIHdoZW4gbXVsdGktbW9uaXRvciBpcyBub3Qgc3Vw
cG9ydGVkIGJ5IHRoZSBoYXJkd2FyZS4NCj4gPj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogQW5hdG9s
eSBCdXJha292IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPg0KPiA+PiAtLS0NCj4gPj4gICBk
b2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG93ZXJfbWFuLnJzdCB8ICA5ICsrLS0NCj4gPj4gICBsaWIv
cG93ZXIvcnRlX3Bvd2VyX3BtZF9tZ210LmMgICAgICB8IDc2ICsrKysrKysrKysrKysrKysrKysr
KysrKysrKystDQo+ID4+ICAgMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA1IGRl
bGV0aW9ucygtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRl
L3Bvd2VyX21hbi5yc3QgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG93ZXJfbWFuLnJzdA0KPiA+
PiBpbmRleCBmYWMyYzE5NTE2Li4zMjQ1YTVlYmVkIDEwMDY0NA0KPiA+PiAtLS0gYS9kb2MvZ3Vp
ZGVzL3Byb2dfZ3VpZGUvcG93ZXJfbWFuLnJzdA0KPiA+PiArKysgYi9kb2MvZ3VpZGVzL3Byb2df
Z3VpZGUvcG93ZXJfbWFuLnJzdA0KPiA+PiBAQCAtMjIxLDEzICsyMjEsMTYgQEAgcG93ZXIgc2F2
aW5nIHdoZW5ldmVyIGVtcHR5IHBvbGwgY291bnQgcmVhY2hlcyBhIGNlcnRhaW4gbnVtYmVyLg0K
PiA+PiAgIFRoZSAibW9uaXRvciIgbW9kZSBpcyBvbmx5IHN1cHBvcnRlZCBpbiB0aGUgZm9sbG93
aW5nIGNvbmZpZ3VyYXRpb25zIGFuZCBzY2VuYXJpb3M6DQo+ID4+DQo+ID4+ICAgKiBJZiBgYHJ0
ZV9jcHVfZ2V0X2ludHJpbnNpY3Nfc3VwcG9ydCgpYGAgZnVuY3Rpb24gaW5kaWNhdGVzIHRoYXQN
Cj4gPj4gKyAgYGBydGVfcG93ZXJfbW9uaXRvcl9tdWx0aSgpYGAgZnVuY3Rpb24gaXMgc3VwcG9y
dGVkIGJ5IHRoZSBwbGF0Zm9ybSwgdGhlbg0KPiA+PiArICBtb25pdG9yaW5nIG11bHRpcGxlIEV0
aGVybmV0IFJ4IHF1ZXVlcyBmb3IgdHJhZmZpYyB3aWxsIGJlIHN1cHBvcnRlZC4NCj4gPj4gKw0K
PiA+PiArKiBJZiBgYHJ0ZV9jcHVfZ2V0X2ludHJpbnNpY3Nfc3VwcG9ydCgpYGAgZnVuY3Rpb24g
aW5kaWNhdGVzIHRoYXQgb25seQ0KPiA+PiAgICAgYGBydGVfcG93ZXJfbW9uaXRvcigpYGAgaXMg
c3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSwgdGhlbiBtb25pdG9yaW5nIHdpbGwgYmUNCj4gPj4g
ICAgIGxpbWl0ZWQgdG8gYSBtYXBwaW5nIG9mIDEgY29yZSAxIHF1ZXVlICh0aHVzLCBlYWNoIFJ4
IHF1ZXVlIHdpbGwgaGF2ZSB0byBiZQ0KPiA+PiAgICAgbW9uaXRvcmVkIGZyb20gYSBkaWZmZXJl
bnQgbGNvcmUpLg0KPiA+Pg0KPiA+PiAtKiBJZiBgYHJ0ZV9jcHVfZ2V0X2ludHJpbnNpY3Nfc3Vw
cG9ydCgpYGAgZnVuY3Rpb24gaW5kaWNhdGVzIHRoYXQgdGhlDQo+ID4+IC0gIGBgcnRlX3Bvd2Vy
X21vbml0b3IoKWBgIGZ1bmN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZW4gbW9uaXRvciBtb2Rl
IHdpbGwgbm90DQo+ID4+IC0gIGJlIHN1cHBvcnRlZC4NCj4gPj4gKyogSWYgYGBydGVfY3B1X2dl
dF9pbnRyaW5zaWNzX3N1cHBvcnQoKWBgIGZ1bmN0aW9uIGluZGljYXRlcyB0aGF0IG5laXRoZXIg
b2YgdGhlDQo+ID4+ICsgIHR3byBtb25pdG9yaW5nIGZ1bmN0aW9ucyBhcmUgc3VwcG9ydGVkLCB0
aGVuIG1vbml0b3IgbW9kZSB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQuDQo+ID4+DQo+ID4+ICAgKiBO
b3QgYWxsIEV0aGVybmV0IGRldmljZXMgc3VwcG9ydCBtb25pdG9yaW5nLCBldmVuIGlmIHRoZSB1
bmRlcmx5aW5nDQo+ID4+ICAgICBwbGF0Zm9ybSBtYXkgc3VwcG9ydCB0aGUgbmVjZXNzYXJ5IENQ
VSBpbnN0cnVjdGlvbnMuIFBsZWFzZSByZWZlciB0bw0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL3Bv
d2VyL3J0ZV9wb3dlcl9wbWRfbWdtdC5jIGIvbGliL3Bvd2VyL3J0ZV9wb3dlcl9wbWRfbWdtdC5j
DQo+ID4+IGluZGV4IDc3NjJjZDM5YjguLmFhYjJkNGYxZWUgMTAwNjQ0DQo+ID4+IC0tLSBhL2xp
Yi9wb3dlci9ydGVfcG93ZXJfcG1kX21nbXQuYw0KPiA+PiArKysgYi9saWIvcG93ZXIvcnRlX3Bv
d2VyX3BtZF9tZ210LmMNCj4gPj4gQEAgLTE1NSw2ICsxNTUsMjQgQEAgcXVldWVfbGlzdF9yZW1v
dmUoc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLCBjb25zdCB1bmlvbiBxdWV1ZSAqcSkNCj4gPj4g
ICAgICAgIHJldHVybiAwOw0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gK3N0YXRpYyBpbmxpbmUgaW50
DQo+ID4+ICtnZXRfbW9uaXRvcl9hZGRyZXNzZXMoc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLA0K
PiA+PiArICAgICAgICAgICAgIHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kICpwbWMpDQo+
ID4+ICt7DQo+ID4+ICsgICAgIGNvbnN0IHN0cnVjdCBxdWV1ZV9saXN0X2VudHJ5ICpxbGU7DQo+
ID4+ICsgICAgIHNpemVfdCBpID0gMDsNCj4gPj4gKyAgICAgaW50IHJldDsNCj4gPj4gKw0KPiA+
PiArICAgICBUQUlMUV9GT1JFQUNIKHFsZSwgJmNmZy0+aGVhZCwgbmV4dCkgew0KPiA+PiArICAg
ICAgICAgICAgIHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kICpjdXIgPSAmcG1jW2ldOw0K
PiA+DQo+ID4gTG9va3MgbGlrZSB5b3UgbmV2ZXIgaW5jcmVtZW50ICdpJyB2YWx1ZSBpbnNpZGUg
dGhhdCBmdW5jdGlvbi4NCj4gPiBBbHNvIGl0IHByb2JhYmx5IHdpbGwgYmUgc2FmZXIgdG8gYWRk
ICdudW0nIHBhcmFtZXRlciB0byBjaGVjayB0aGF0DQo+ID4gd2Ugd2lsbCBuZXZlciBvdmVyLXJ1
biBwbWNbXSBib3VuZGFyaWVzLg0KPiANCj4gV2lsbCBmaXggaW4gdjQsIGdvb2QgY2F0Y2ghDQo+
IA0KPiA+DQo+ID4+ICsgICAgICAgICAgICAgY29uc3QgdW5pb24gcXVldWUgKnEgPSAmcWxlLT5x
dWV1ZTsNCj4gPj4gKyAgICAgICAgICAgICByZXQgPSBydGVfZXRoX2dldF9tb25pdG9yX2FkZHIo
cS0+cG9ydGlkLCBxLT5xaWQsIGN1cik7DQo+ID4+ICsgICAgICAgICAgICAgaWYgKHJldCA8IDAp
DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+PiArICAgICB9DQo+
ID4+ICsgICAgIHJldHVybiAwOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICAgc3RhdGljIHZvaWQN
Cj4gPj4gICBjYWxjX3RzYyh2b2lkKQ0KPiA+PiAgIHsNCj4gPj4gQEAgLTE4Myw2ICsyMDEsNDgg
QEAgY2FsY190c2Modm9pZCkNCj4gPj4gICAgICAgIH0NCj4gPj4gICB9DQo+ID4+DQo+ID4+ICtz
dGF0aWMgdWludDE2X3QNCj4gPj4gK2NsYl9tdWx0aXdhaXQodWludDE2X3QgcG9ydF9pZCwgdWlu
dDE2X3QgcWlkeCwNCj4gPj4gKyAgICAgICAgICAgICBzdHJ1Y3QgcnRlX21idWYgKipwa3RzIF9f
cnRlX3VudXNlZCwgdWludDE2X3QgbmJfcngsDQo+ID4+ICsgICAgICAgICAgICAgdWludDE2X3Qg
bWF4X3BrdHMgX19ydGVfdW51c2VkLCB2b2lkICphZGRyIF9fcnRlX3VudXNlZCkNCj4gPj4gK3sN
Cj4gPj4gKyAgICAgY29uc3QgdW5zaWduZWQgaW50IGxjb3JlID0gcnRlX2xjb3JlX2lkKCk7DQo+
ID4+ICsgICAgIGNvbnN0IHVuaW9uIHF1ZXVlIHEgPSB7LnBvcnRpZCA9IHBvcnRfaWQsIC5xaWQg
PSBxaWR4fTsNCj4gPj4gKyAgICAgY29uc3QgYm9vbCBlbXB0eSA9IG5iX3J4ID09IDA7DQo+ID4+
ICsgICAgIHN0cnVjdCBwbWRfY29yZV9jZmcgKnFfY29uZjsNCj4gPj4gKw0KPiA+PiArICAgICBx
X2NvbmYgPSAmbGNvcmVfY2ZnW2xjb3JlXTsNCj4gPj4gKw0KPiA+PiArICAgICAvKiBlYXJseSBl
eGl0ICovDQo+ID4+ICsgICAgIGlmIChsaWtlbHkoIWVtcHR5KSkgew0KPiA+PiArICAgICAgICAg
ICAgIHFfY29uZi0+ZW1wdHlfcG9sbF9zdGF0cyA9IDA7DQo+ID4+ICsgICAgIH0gZWxzZSB7DQo+
ID4+ICsgICAgICAgICAgICAgLyogZG8gd2UgY2FyZSBhYm91dCB0aGlzIHBhcnRpY3VsYXIgcXVl
dWU/ICovDQo+ID4+ICsgICAgICAgICAgICAgaWYgKCFxdWV1ZV9pc19wb3dlcl9zYXZlKHFfY29u
ZiwgJnEpKQ0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5iX3J4Ow0KPiA+DQo+
ID4gSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHRoZSBuZWVkIG9mICdzcGVjaWFsJyBwb3dlcl9z
YXZlIHF1ZXVlIGhlcmUuLi4NCj4gPiBXaHkgd2UgY2FuJ3QganVzdCBoYXZlIGEgZnVuY3Rpb246
DQo+ID4NCj4gPiBnZXRfbnVtYmVyX29mX3F1ZXVlc193aG9zZV9zZXF1ZW50aWFsX2VtcHR5X3Bv
bGxzX2xlc3NfdGhlbl90aHJlc2hvbGQoc3RydWN0IHBtZF9jb3JlX2NmZyAqbGNvcmVfY2ZnKSwN
Cj4gPiBhbmQgdGhlbiBqdXN0Og0KPiA+DQo+ID4gLyogYWxsIHF1ZXVlcyBoYXZlIGF0IGxlYXN0
IEVNUFRZUE9MTF9NQVggc2VxdWVudGlhbCBlbXB0eSBwb2xscyAqLw0KPiA+IGlmIChnZXRfbnVt
YmVyX29mX3F1ZXVlc193aG9zZV9zZXF1ZW50aWFsX2VtcHR5X3BvbGxzX2xlc3NfdGhlbl90aHJl
c2hvbGQocV9jb25mKSA9PSAwKSB7DQo+ID4gICAgICAvKiBnbyBpbnRvIHBvd2VyLXNhdmUgbW9k
ZSBoZXJlICovDQo+ID4gfQ0KPiANCj4gT2theSwgbGV0J3MgZ28gdGhyb3VnaCB0aGlzIHN0ZXAg
Ynkgc3RlcCA6KQ0KPiANCj4gTGV0J3Mgc3VwcG9zZSB3ZSBoYXZlIHRocmVlIHF1ZXVlcyAtIHEw
LCBxMSBhbmQgcTIuIFdlIHdhbnQgdG8gc2xlZXANCj4gd2hlbmV2ZXIgdGhlcmUncyBubyB0cmFm
ZmljIG9uICphbGwgb2YgdGhlbSosIGhvd2V2ZXIgd2UgY2Fubm90IGtub3cNCj4gdGhhdCB1bnRp
bCB3ZSBoYXZlIGNoZWNrZWQgYWxsIG9mIHRoZW0uDQo+IA0KPiBTbywgbGV0J3Mgc3VwcG9zZSB0
aGF0IHEwLCBxMSBhbmQgcTIgd2VyZSBlbXB0eSBhbGwgdGhpcyB0aW1lLCBidXQgbm93DQo+IHNv
bWUgdHJhZmZpYyBhcnJpdmVkIGF0IHEyIHdoaWxlIHdlJ3JlIHN0aWxsIGNoZWNraW5nIHEwLiBX
ZSBzZWUgdGhhdCBxMA0KPiBpcyBlbXB0eSwgYW5kIGFsbCBvZiB0aGUgcXVldWVzIHdlcmUgZW1w
dHkgZm9yIHRoZSBsYXN0IE4gcG9sbHMsIHNvIHdlDQo+IHRoaW5rIHdlIHdpbGwgYmUgc2FmZSB0
byBzbGVlcCBhdCBxMCBkZXNwaXRlIHRoZSBmYWN0IHRoYXQgdHJhZmZpYyBoYXMNCj4ganVzdCBh
cnJpdmVkIGF0IHEyLg0KPiBUaGlzIGlzIG5vdCBhbiBpc3N1ZSB3aXRoIE1PTklUT1IgbW9kZSBi
ZWNhdXNlIHdlIHdpbGwgYmUgYWJsZSB0byBzZWUgaWYNCj4gY3VycmVudCBSeCByaW5nIGRlc2Ny
aXB0b3IgaXMgYnVzeSBvciBub3QgdmlhIHRoZSBOSUMgY2FsbGJhY2ssICpidXQNCj4gdGhpcyBp
cyBub3QgcG9zc2libGUqIHdpdGggUEFVU0UgYW5kIFNDQUxFIG1vZGVzLCBiZWNhdXNlIHRoZXkg
ZG9uJ3QNCj4gaGF2ZSB0aGUgc25lYWt5IGxvb2thaGVhZCBmdW5jdGlvbiBvZiBNT05JVE9SISBT
bywgd2l0aCBQQVVTRSBhbmQgU0NBTEUNCj4gbW9kZXMsIGl0IGlzIHBvc3NpYmxlIHRvIGVuZCB1
cCBpbiBhIHNpdHVhdGlvbiB3aGVyZSB5b3UgKnRoaW5rKiB5b3UNCj4gZG9uJ3QgaGF2ZSBhbnkg
dHJhZmZpYywgYnV0IHlvdSBhY3R1YWxseSBkbywgeW91IGp1c3QgaGF2ZW4ndCBjaGVja2VkDQo+
IHRoZSByZWxldmFudCBxdWV1ZSB5ZXQuDQoNCkkgdGhpbmsgc3VjaCBzaXR1YXRpb24gaXMgdW5h
dm9pZGFibGUuDQpZZXMsIHRyYWZmaWMgY2FuIGFycml2ZSB0byAqYW55KiBxdWV1ZSBhdCAqYW55
KiB0aW1lLg0KV2l0aCB5b3VyIGV4YW1wbGUgYWJvdmUgLSB1c2VyIGNob29zZSBxMiBhcyAnc3Bl
Y2lhbCcgcXVldWUsIGJ1dA0KdHJhZmZpYyBhY3R1YWxseSBhcnJpdmVzIG9uIHEwIG9yIHExLiAN
CkFuZCB5ZXMsIGlmIHVzZXIgY2hvb3NlIFBBVVNFIG9yIFNDQUxFIG1ldGhvZHMgaGUgKmNhbiog
bWlzcyB0aGUgdHJhZmZpYywgICANCmJlY2F1c2UgYXMgeW91IHNhaWQgZm9yIHRoZXNlIG1ldGhv
ZHMgdGhlcmUgaXMgbm8gbm90aWZpY2F0aW9uIG1lY2hhbmlzbXMuDQpJIHRoaW5rIHRoZXJlIGFy
ZSBqdXN0IHVuYXZvaWRhYmxlIGxpbWl0YXRpb25zIHdpdGggdGhlc2UgcG93ZXItc2F2ZSBtZXRo
b2RzLiANCiANCj4gSW4gb3JkZXIgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nLCB3ZSBk
byBub3Qgc2xlZXAgb24gZXZlcnkgcXVldWUsDQo+IGluc3RlYWQgd2Ugc2xlZXAgKm9uY2UqIHBl
ciBsb29wLiANCg0KWWVzLCB0b3RhbGx5IGFncmVlIHdlIHNob3VsZG4ndCBzbGVlcCBvbiAqZXZl
cnkqIHF1ZXVlLg0KV2UgbmVlZCB0byBnbyB0byBzbGVlcCB3aGVuIHRoZXJlIGlzIG5vIHRyYWZm
aWMgb24gKmFueSogb2YgcXVldWVzIHdlIG1vbml0b3IuIA0KDQo+IFRoYXQgaXMsIHdlIGNoZWNr
IHEwLCBjaGVjayBxMSwgY2hlY2sNCj4gcTIsIGFuZCBvbmx5IHRoZW4gd2UgZGVjaWRlIHdoZXRo
ZXIgd2Ugd2FudCB0byBzbGVlcCBvciBub3QuDQoNCj4gT2YgY291cnNlLCB3aXRoIHN1Y2ggc2No
ZW1lIGl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIGUuZy4gc2xlZXAgaW4gcTINCj4gd2hpbGUgdGhl
cmUncyB0cmFmZmljIHdhaXRpbmcgaW4gcTAsDQoNClllcywgZXhhY3RseS4NCg0KPiBidXQgd29y
c3QgY2FzZSBpcyBsZXNzIGJhZCB3aXRoDQo+IHRoaXMgc2NoZW1lLCBiZWNhdXNlIHdlJ2xsIGJl
IGRvaW5nIGF0IHdvcnN0IDEgZXh0cmEgc2xlZXAuDQoNCkhtbSwgSSB0aGluayBpdCB3b3VsZCBi
ZSBvbmUgZXh0cmEgc2xlZXAgYW55d2F5Lg0KDQo+IFdoZXJlYXMgd2l0aCB3aGF0IHlvdSdyZSBz
dWdnZXN0aW5nLCBpZiB3ZSBoYWQgZS5nLiAxMCBxdWV1ZXMgdG8gcG9sbCwNCj4gYW5kIHdlIGNo
ZWNrZWQgcTEgYnV0IHRyYWZmaWMgaGFzIGp1c3QgYXJyaXZlZCBhdCBxMCwgd2UnbGwgYmUgc2xl
ZXBpbmcNCj4gYXQgcTEsIHRoZW4gd2UnbGwgYmUgc2xlZXBpbmcgYXQgcTIsIHRoZW4gd2UnbGwg
YmUgc2xlZXBpbmcgYXQgcTMsIHRoZW4NCj4gd2UnbGwgYmUgc2xlZXBpbmcgYXQgcTQsIHRoZW4g
d2UnbGwgYmUgc2xlZXBpbmcgYXQgcTUuLi4uIGFuZCA5IHNsZWVwcw0KPiBsYXRlciB3ZSBmaW5h
bGx5IHJlYWNoIHEwIGFuZCBmaW5kIG91dCBhZnRlciBhbGwgdGhpcyB0aW1lIHRoYXQgd2UNCj4g
c2hvdWxkbid0IGhhdmUgc2xlcHQgaW4gdGhlIGZpcnN0IHBsYWNlLg0KDQpBaCBvaywgSSB0aGlu
ayBJIHVuZGVyc3RhbmQgbm93IHdoYXQgeW91IGFyZSBzYXlpbmcuDQpTdXJlLCB0byBhdm9pZCBz
dWNoIHNpdHVhdGlvbiwgd2UnbGwgbmVlZCB0byBtYWludGFpbiBleHRyYSBjb3VudGVycyBhbmQN
CnVwZGF0ZSB0aGVtIHByb3Blcmx5IHdoZW4gd2UgZ28gdG8gc2xlZXAuICAgDQpJIHNob3VsZCBz
dGF0ZSBpdCBjbGVhcmx5IGF0IHRoZSBiZWdpbm5pbmcuDQpJdCBtaWdodCBiZSBlYXNpZXIgdG8g
ZXhwbGFpbiB3aGF0IEkgbWVhbnQgYnkgY29kZSBzbmlwcGV0Og0KDQpsY29yZV9jb25mIG5lZWRz
IDIgY291bnRlcnM6DQp1aW50NjRfdCAgIG5iX3F1ZXVlc19yZWFkeV90b19zbGVlcDsNCnVpbnQ2
NF90ICAgbmJfc2xlZXBzOw0KIA0KUGx1cyBlYWNoIHF1ZXVlIG5lZWRzIDIgY291bnRlcnM6DQp1
aW50NjRfdCBuYl9lbXB0eV9wb2xsczsNCnVpbnQ2NF90IG5iX3NsZWVwczsNCg0KTm93LCBhdCBy
eF9jYWxsYmFjaygpOg0KDQovKiBjaGVjayBkaWQgc2xlZXAgaGFwcGVuIHNpbmNlIHByZXZpb3Vz
IGNhbGwsDQogICAgIGlmIHllcywgdGhlbiByZXNldCBxdWV1ZSBjb3VudGVycyAqLw0KaWYgKHF1
ZXVlLT5uYl9zbGVlcHMgIT0gbGNvcmVfY29uZi0+bmJfc2xlZXBzKSB7DQogICAgcXVldWUtPm5i
X3NsZWVwcyA9IGxjb3JlX2NvbmYtPm5iX3NsZWVwczsNCiAgICBxdWV1ZS0+bmJfZW1wdHlfcG9s
bHMgPSAwOw0KfQ0KDQogLyogcGFja2V0IGFycml2ZWQsIHJlc2V0IGNvdW50ZXJzICovDQogaWYg
KG5iX3J4ICE9IDApIHsNCiAgIC8qIHF1ZXVlIGlzIG5vdCAncmVhZHlfdG9fc2xlZXAnIGFueSBt
b3JlICovDQogICBpZiAocXVldWUtPm5iX2VtcHR5X3BvbGxzID4gRU1QVFlQT0xMX01BWCkNCiAg
ICAgICBsY29yZV9jb25mLT4gbmJfcXVldWVzX3JlYWR5X3RvX3NsZWVwLS07DQogICBxdWV1ZS0+
bmJfZW1wdHlfcG9sbHMgPSAwOw0KDQovKiBlbXB0eSBwb2xsICovDQp9IGVsc2Ugew0KICAgIC8q
IHF1ZXVlIHJlYWNoZXMgRU1QVFlQT0xMX01BWCB0aHJlc2hvbGQsIG1hcmsgaXQgYXMgJ3JlYWR5
X3RvX3NsZWVwJyAqLyANCiAgICBpZiAocXVldWUtPm5iX2VtcHR5X3BvbGxzID09IEVNUFRZUE9M
TF9NQVgpDQogICAgICAgbGNvcmVfY29uZi0+IG5iX3F1ZXVlc19yZWFkeV90b19zbGVlcCsrOw0K
ICAgIHF1ZXVlLT5uYl9lbXB0eV9wb2xscysrOw0KfQ0KDQogICAvKiBubyB0cmFmZmljIG9uIGFu
eSBxdWV1ZSBmb3IgYXQgbGVhc3QgRU1QVFlQT0xMX01BWCBpdGVyYXRpb25zICovDQogICBpZiAo
bGNvcmVfY29uZi0+IG5iX3F1ZXVlc19yZWFkeV90b19zbGVlcCA9PSBsY29yZV9jb25mLT5uX3F1
ZXVlcykgew0KICAgICAgLyogdXBkYXRlIGNvdW50ZXJzIGFuZCBzbGVlcCAqLw0KICAgICAgbGNv
cmVfY29uZi0+bmJfc2xlZXBzKys7DQogICAgICBsY29yZV9jb25mLT4gbmJfcXVldWVzX3JlYWR5
X3RvX3NsZWVwID0gMDsNCiAgICAgIGdvdG9fc2xlZXAoKTsNCiAgIH0NCn0NCg0KPiBIb3BlZnVs
bHkgeW91IGdldCB0aGUgcG9pbnQgbm93IDopDQo+IA0KPiBTbywgdGhlIGlkZWEgaGVyZSBpcywg
Zm9yIGFueSBOIHF1ZXVlcywgc2xlZXAgb25seSBvbmNlLCBub3QgTiB0aW1lcy4NCj4gDQo+ID4N
Cj4gPj4gKw0KPiA+PiArICAgICAgICAgICAgIC8qDQo+ID4+ICsgICAgICAgICAgICAgICogd2Ug
Y2FuIGluY3JlbWVudCB1bmNvbmRpdGlvbmFsbHkgaGVyZSBiZWNhdXNlIGlmIHRoZXJlIHdlcmUN
Cj4gPj4gKyAgICAgICAgICAgICAgKiBub24tZW1wdHkgcG9sbHMgaW4gb3RoZXIgcXVldWVzIGFz
c2lnbmVkIHRvIHRoaXMgY29yZSwgd2UNCj4gPj4gKyAgICAgICAgICAgICAgKiBkcm9wcGVkIHRo
ZSBjb3VudGVyIHRvIHplcm8gYW55d2F5Lg0KPiA+PiArICAgICAgICAgICAgICAqLw0KPiA+PiAr
ICAgICAgICAgICAgIHFfY29uZi0+ZW1wdHlfcG9sbF9zdGF0cysrOw0KPiA+PiArICAgICAgICAg
ICAgIGlmICh1bmxpa2VseShxX2NvbmYtPmVtcHR5X3BvbGxfc3RhdHMgPiBFTVBUWVBPTExfTUFY
KSkgew0KPiA+PiArICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9wb3dlcl9tb25pdG9y
X2NvbmQgcG1jW1JURV9NQVhfRVRIUE9SVFNdOw0KPiA+DQo+ID4gSSB0aGluayB5b3UgbmVlZCBo
ZXJlOg0KPiA+IHN0cnVjdCBydGVfcG93ZXJfbW9uaXRvcl9jb25kIHBtY1txX2NvbmYtPm5fcXVl
dWVzXTsNCj4gDQo+IEkgdGhpbmsgVkxBJ3MgYXJlIGdlbmVyYWxseSBhZ3JlZWQgdXBvbiB0byBi
ZSB1bnNhZmUsIHNvIGknbSBhdm9pZGluZw0KPiB0aGVtIGhlcmUuDQoNCldvbmRlciB3aHk/DQpU
aGVzZSBkYXlzIERQREsgdXNlcyBWTEEgaW4gZG96ZW5zIG9mIHBsYWNlcy4uLg0KQnV0IGlmIHlv
dSdkIGxpa2UgdG8gYXZvaWQgVkxBIC0geW91IGNhbiB1c2UgYWxsb2NhKCksDQpvciBoYXZlIGxj
b3JlX2NvbmYtPnBtY1tdIGFuZCByZWFsbG9jKCkgaXQgd2hlbiBuZXcgcXVldWUgaXMNCmFkZGVk
L3JlbW92ZWQgZnJvbSB0aGUgbGlzdC4NCg0KPiANCj4gPg0KPiA+DQo+ID4+ICsgICAgICAgICAg
ICAgICAgICAgICB1aW50MTZfdCByZXQ7DQo+ID4+ICsNCj4gPj4gKyAgICAgICAgICAgICAgICAg
ICAgIC8qIGdhdGhlciBhbGwgbW9uaXRvcmluZyBjb25kaXRpb25zICovDQo+ID4+ICsgICAgICAg
ICAgICAgICAgICAgICByZXQgPSBnZXRfbW9uaXRvcl9hZGRyZXNzZXMocV9jb25mLCBwbWMpOw0K
PiA+PiArDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApDQo+ID4+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9wb3dlcl9tb25pdG9yX211bHRpKHBtYywN
Cj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxX2NvbmYtPm5fcXVl
dWVzLCBVSU5UNjRfTUFYKTsNCj4gPj4gKyAgICAgICAgICAgICB9DQo+ID4+ICsgICAgIH0NCj4g
Pj4gKw0KPiA+PiArICAgICByZXR1cm4gbmJfcng7DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gICBz
dGF0aWMgdWludDE2X3QNCj4gPj4gICBjbGJfdW13YWl0KHVpbnQxNl90IHBvcnRfaWQsIHVpbnQx
Nl90IHFpZHgsIHN0cnVjdCBydGVfbWJ1ZiAqKnBrdHMgX19ydGVfdW51c2VkLA0KPiA+PiAgICAg
ICAgICAgICAgICB1aW50MTZfdCBuYl9yeCwgdWludDE2X3QgbWF4X3BrdHMgX19ydGVfdW51c2Vk
LA0KPiA+PiBAQCAtMzQ4LDE0ICs0MDgsMTkgQEAgc3RhdGljIGludA0KPiA+PiAgIGNoZWNrX21v
bml0b3Ioc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLCBjb25zdCB1bmlvbiBxdWV1ZSAqcWRhdGEp
DQo+ID4+ICAgew0KPiA+PiAgICAgICAgc3RydWN0IHJ0ZV9wb3dlcl9tb25pdG9yX2NvbmQgZHVt
bXk7DQo+ID4+ICsgICAgIGJvb2wgbXVsdGltb25pdG9yX3N1cHBvcnRlZDsNCj4gPj4NCj4gPj4g
ICAgICAgIC8qIGNoZWNrIGlmIHJ0ZV9wb3dlcl9tb25pdG9yIGlzIHN1cHBvcnRlZCAqLw0KPiA+
PiAgICAgICAgaWYgKCFnbG9iYWxfZGF0YS5pbnRyaW5zaWNzX3N1cHBvcnQucG93ZXJfbW9uaXRv
cikgew0KPiA+PiAgICAgICAgICAgICAgICBSVEVfTE9HKERFQlVHLCBQT1dFUiwgIk1vbml0b3Jp
bmcgaW50cmluc2ljcyBhcmUgbm90IHN1cHBvcnRlZFxuIik7DQo+ID4+ICAgICAgICAgICAgICAg
IHJldHVybiAtRU5PVFNVUDsNCj4gPj4gICAgICAgIH0NCj4gPj4gKyAgICAgLyogY2hlY2sgaWYg
bXVsdGktbW9uaXRvciBpcyBzdXBwb3J0ZWQgKi8NCj4gPj4gKyAgICAgbXVsdGltb25pdG9yX3N1
cHBvcnRlZCA9DQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICBnbG9iYWxfZGF0YS5pbnRyaW5z
aWNzX3N1cHBvcnQucG93ZXJfbW9uaXRvcl9tdWx0aTsNCj4gPj4NCj4gPj4gLSAgICAgaWYgKGNm
Zy0+bl9xdWV1ZXMgPiAwKSB7DQo+ID4+ICsgICAgIC8qIGlmIHdlJ3JlIGFkZGluZyBhIG5ldyBx
dWV1ZSwgZG8gd2Ugc3VwcG9ydCBtdWx0aXBsZSBxdWV1ZXM/ICovDQo+ID4+ICsgICAgIGlmIChj
ZmctPm5fcXVldWVzID4gMCAmJiAhbXVsdGltb25pdG9yX3N1cHBvcnRlZCkgew0KPiA+PiAgICAg
ICAgICAgICAgICBSVEVfTE9HKERFQlVHLCBQT1dFUiwgIk1vbml0b3JpbmcgbXVsdGlwbGUgcXVl
dWVzIGlzIG5vdCBzdXBwb3J0ZWRcbiIpOw0KPiA+PiAgICAgICAgICAgICAgICByZXR1cm4gLUVO
T1RTVVA7DQo+ID4+ICAgICAgICB9DQo+ID4+IEBAIC0zNzEsNiArNDM2LDEzIEBAIGNoZWNrX21v
bml0b3Ioc3RydWN0IHBtZF9jb3JlX2NmZyAqY2ZnLCBjb25zdCB1bmlvbiBxdWV1ZSAqcWRhdGEp
DQo+ID4+ICAgICAgICByZXR1cm4gMDsNCj4gPj4gICB9DQo+ID4+DQo+ID4+ICtzdGF0aWMgaW5s
aW5lIHJ0ZV9yeF9jYWxsYmFja19mbg0KPiA+PiArZ2V0X21vbml0b3JfY2FsbGJhY2sodm9pZCkN
Cj4gPj4gK3sNCj4gPj4gKyAgICAgcmV0dXJuIGdsb2JhbF9kYXRhLmludHJpbnNpY3Nfc3VwcG9y
dC5wb3dlcl9tb25pdG9yX211bHRpID8NCj4gPj4gKyAgICAgICAgICAgICBjbGJfbXVsdGl3YWl0
IDogY2xiX3Vtd2FpdDsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiAgIGludA0KPiA+PiAgIHJ0ZV9w
b3dlcl9ldGhkZXZfcG1nbXRfcXVldWVfZW5hYmxlKHVuc2lnbmVkIGludCBsY29yZV9pZCwgdWlu
dDE2X3QgcG9ydF9pZCwNCj4gPj4gICAgICAgICAgICAgICAgdWludDE2X3QgcXVldWVfaWQsIGVu
dW0gcnRlX3Bvd2VyX3BtZF9tZ210X3R5cGUgbW9kZSkNCj4gPj4gQEAgLTQzNCw3ICs1MDYsNyBA
QCBydGVfcG93ZXJfZXRoZGV2X3BtZ210X3F1ZXVlX2VuYWJsZSh1bnNpZ25lZCBpbnQgbGNvcmVf
aWQsIHVpbnQxNl90IHBvcnRfaWQsDQo+ID4+ICAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKQ0K
PiA+PiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZW5kOw0KPiA+Pg0KPiA+PiAtICAgICAg
ICAgICAgIGNsYiA9IGNsYl91bXdhaXQ7DQo+ID4+ICsgICAgICAgICAgICAgY2xiID0gZ2V0X21v
bml0b3JfY2FsbGJhY2soKTsNCj4gPj4gICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4+ICAgICAg
ICBjYXNlIFJURV9QT1dFUl9NR01UX1RZUEVfU0NBTEU6DQo+ID4+ICAgICAgICAgICAgICAgIC8q
IGNoZWNrIGlmIHdlIGNhbiBhZGQgYSBuZXcgcXVldWUgKi8NCj4gPj4gLS0NCj4gPj4gMi4yNS4x
DQo+ID4NCj4gDQo+IA0KPiAtLQ0KPiBUaGFua3MsDQo+IEFuYXRvbHkNCg==