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 0AFD642BF9; Thu, 1 Jun 2023 03:45:25 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8F862406B3; Thu, 1 Jun 2023 03:45:24 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 14A68406A2 for ; Thu, 1 Jun 2023 03:45:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685583922; x=1717119922; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ElM9A0XYuuIti23Zr5xiGfmOYKv+G8qeeFVdFJcOQg4=; b=RB3jDlDjIjDvQi+LxAlitHhNxxa4QYia3/6baFGFRstXCYAeMNz57icM r+lgvWcFIevTTohbP0iOHPJN7d+SYsuObP92NbHAJ7c6XvwQPdPETH806 FLVdsAko1Gqi2cDhVeCxWQ7VOfRhR4SrNN0srjFESkNEhWohV63yewGsP E5KabUQMAUOe8PWSzzozobGXM/vEWEGcBHo7ubcVNvroZ2h7WDGWSa9g3 4HQj8XCtdbaUQy7aEEWP49rMGAzY9KK7KUK2Led71EvwF+TWA35iIXftO IiEh2gWUz+voaJSgPdPK+IdI5VasUrymbz9mjJRur1Xb6GXt33Dcd7znI Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10727"; a="355430818" X-IronPort-AV: E=Sophos;i="6.00,207,1681196400"; d="scan'208";a="355430818" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2023 18:45:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10727"; a="851451696" X-IronPort-AV: E=Sophos;i="6.00,207,1681196400"; d="scan'208";a="851451696" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 31 May 2023 18:45:20 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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.2507.23; Wed, 31 May 2023 18:45:20 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 31 May 2023 18:45:20 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 31 May 2023 18:45:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V37Qa6AGze7mJWUkSvtHQcIsz+IxcbqFiKYU0uyqW59gWEhR5TDhU6Y4cOrCqK4blp6WLc3741dOKJ11RfV4Andja7vEieWEjeQ9fxPaD2Sz6vLX24xdsAQz1m4yY1cntf4ghUm6OVR2B9hL38I8E6EVRuk4kLr11rvcrSi7nH86k/BbsFWNSKyNEAkbjePTU9Zh+x3m+KDqAyvv6obSS+DDcySiGWGp58/WiQw7YBnlBaTfPF67DClVrj+Sc1kY2C4VAUNxISjVuE5rSA8IzCI9ekR+AXGNMPv9tRzwgnGaO+AI5hzukFO1Da98Rkr+d2QQAHUxH/4q2n4NBYc0jA== 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=ElM9A0XYuuIti23Zr5xiGfmOYKv+G8qeeFVdFJcOQg4=; b=hHKVT6Lv1Aq3EWEOvxRqaxqNCs+j4VIv1CmScCXltyEBoZRu7BepPGujM+WL3H+sFo5L9CqtOJ+oRl5USo0wC6cbH7NquS7Ek9LmsshcJInlTvEZTODr2en3VcnSrAl023gaO1KjKqq3Jjn5Pbmu+QfnvzGuHjH+0ulAQFmyBIo9MK5iSchnQnAgbjOIQdFE0hbpaFcON0S4yOmZZF6htwc+PvkjWdkMJknhw4/M34hwYvrxfgbgluR5Clt5AgquBa/CGFlGp54fn7+qxAe4mTWNrCJEs+ml+EsOXdpHyZpFVDPc+Ln5DOA/FLlCkwL565xsp5eiejA5Buai1H/j9Q== 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 Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by PH0PR11MB7563.namprd11.prod.outlook.com (2603:10b6:510:286::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.24; Thu, 1 Jun 2023 01:45:17 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::e508:44ff:3d34:60bc]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::e508:44ff:3d34:60bc%4]) with mapi id 15.20.6455.020; Thu, 1 Jun 2023 01:45:17 +0000 From: "Xia, Chenbo" To: Eelco Chaudron , Maxime Coquelin CC: "david.marchand@redhat.com" , "dev@dpdk.org" Subject: RE: [PATCH v3 1/4] vhost: change vhost_virtqueue access lock to a read/write one Thread-Topic: [PATCH v3 1/4] vhost: change vhost_virtqueue access lock to a read/write one Thread-Index: AQHZiJ84SGxe0cPTqke+1t+9DDzP0q90Am+QgAAwkYCAAB2rAIAA8zpw Date: Thu, 1 Jun 2023 01:45:16 +0000 Message-ID: References: <168431450017.558450.16680518469610688737.stgit@ebuild.local> <168431452543.558450.14131829672896784074.stgit@ebuild.local> <04BFE798-9FA7-4D8F-9360-266946DAD5BC@redhat.com> In-Reply-To: <04BFE798-9FA7-4D8F-9360-266946DAD5BC@redhat.com> Accept-Language: en-US, zh-CN 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB3504:EE_|PH0PR11MB7563:EE_ x-ms-office365-filtering-correlation-id: adc1fd33-e907-48b3-0d77-08db6241d9d6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2qXAJD9V7jQzl1dCG3MsByMpjmtLBnS17PWtHLIRB1c7fZ/OyL886mrI73mL3ZCboAtiz8IM2IsXnCAyIxXKYgQhL85zwctPNzaZ23ema805NpBDdkSldV6fomCMd9QfzNC9L4gOGon7A6YQNkTkr1mN0ILYmtYffOxiecvqRpkPo/vXTPQZN3CyC0uWU1H1ysUMCc7VIpWX/YmgrTnkt8W4wuxPyd1plJs3n449ugs/Z8ohzagVVczSwU8/b7bvMbUguNoX9iA540r8X6JvucfLCktJVdTZKNTW3BRbC17wpuPXqbaK//cPbAPw6lBW9el9qm3tC/Jbria/r25jTwylabQDjdQv+7fas1XcNk0AMp93OUdspPTJKDVrkOJ398qr90PDc418kNc0Z6dGd8BU7wVP+VWpNn57jX7eTE2Nufv99BLfdMa9eeGkcpSHsmTwiE8kUpd/887WTJeYqtErShZ++pf0NQrqIi7KvKulpNxRvAUKa6IqFtnKJSCrhTnfHw0W55OrmbppmhSRrH0Wja6gqp9P7WKp1moRnexeIxPr0IYKEzOMetG1OYfWNBZy4ziW/81Iky7xgk9dfS9cuBDdtLlIYZ8iGdV5hZgyLb1BBgfMvBTKwIAC14xM x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(366004)(39860400002)(346002)(376002)(396003)(136003)(451199021)(53546011)(38100700002)(54906003)(110136005)(82960400001)(52536014)(2906002)(122000001)(71200400001)(66946007)(76116006)(64756008)(66476007)(66446008)(66556008)(478600001)(4326008)(6506007)(9686003)(26005)(316002)(38070700005)(7696005)(186003)(83380400001)(33656002)(41300700001)(5660300002)(8936002)(8676002)(86362001)(55016003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NUpyM2g5V3BDMVhFZFZmUkx6NUsxd0VEeU1RMzZoT2pTVUJKSUwyY1lmSXRF?= =?utf-8?B?Tk5DK214WDdGNitmMXNzM3Z4aURuYzZuYjFrWkQ5U1R0K21kQ0ZNNnEvb2M2?= =?utf-8?B?R25BamFrZFVHZml0YVVhd2d5TU11QXI0L2NDazJpNWFNV1NTT0hOV2c2MkZB?= =?utf-8?B?WFdhU1ZuUXg0TE1SMGtrdHRqOWxRUVRxNG9PdENzSVhaOSt4QTRTUlhUTC9C?= =?utf-8?B?anVLM1c5N1A1dWxEN25JS2JvdEltNEoyQzk4ak9pWGhGVTZ2b3hlSG5oZXZI?= =?utf-8?B?VC9nTTJ3czdDc3BtVzNCclpQTCs5QVhJS29rblBia2dxb3FsS0M5RWdlRVc0?= =?utf-8?B?aW1DNU9wM3RKRUx6c3d4T2x1eEVTSjg3VmR0ZkpLL2VSZHE0Rmk2eUcwN2dD?= =?utf-8?B?TDFCcS82b0U3cnYxdFJ0d09UbmRoMjU2bWNaM3FXbGZQSkk3MmFScmNtdlRl?= =?utf-8?B?cko3NFFLNjRwRm9Ba3Avbk1XalpPNHBia1hiZWJoUzNUbGZHNXpaRWJZNU5l?= =?utf-8?B?WmVEa1RjYXJFVmpDbkxvR3dwajA3MkpjK002andxVUZjSVFWbHFFeXdEK1li?= =?utf-8?B?aUxjTEdmWURJQ1JiMUJXSElVRGQ1UWhJa0JqVDZ3QXZlWG5rQTlKMUFPM0Vj?= =?utf-8?B?MzJnczFVUDZyVEpmdTlSSGNTa2ZQaXlYNnd5ZVQ0ZE5zMjdpK3hveTU3WlVH?= =?utf-8?B?azQyd2phRTQxV016b2VQTGVKY1l1VGZCQWxuUU5hVFlveGE4S21XZ0JSWmEy?= =?utf-8?B?NkhzMWZBV1pXVVVDOEdnMlAxbFUyWnpJRE1vVFV0RXVxd2FCUzZlcTVsRmRH?= =?utf-8?B?NXNXREVhbXYvL1lhak1zclVBRGZFUGlNdjJBTUxUcm5uNWxsT1JjMXFSbitF?= =?utf-8?B?eUNmZCtnMXBmbzZVQmJ0MFdlaXhmdkpCaWhJRzZPdGtLVkJ1TTRncEdOTXlO?= =?utf-8?B?VHJ4ZE5XdTBXUmYyd2ZyZnVyOVFSZmxuZ0E2TXhTSnMxUzBQeXVLc1FDVTFV?= =?utf-8?B?ckVUNzljRXRGVFMrb2tQN1F3SHMvalRzNWlqYW00QTJXTkVIODRpdkN4TFl5?= =?utf-8?B?bnFYSGlXcU1TTCtXVGI0eDBvTzVmMWhEQTE5czhQM0RrYTZPdzhqUUhEVW9B?= =?utf-8?B?dXJOWS8wVTFlaS83WVZxZ1p6YjlXaTJPUHAwSi8xaWx1c1lUeGpBdXJqbmlH?= =?utf-8?B?aG5oWjJiaFlpUXZhKzZtSFJ5Y3lHWTJpZzhZRnhMTy9JRTg5dDdZREcyVHBZ?= =?utf-8?B?bm45bmVLRU5JUmdxckRJVTlhWFhpNHVVdGxjeDJHVGNxWjFtZFlnYzR5TEF4?= =?utf-8?B?dk15MjM5eEJhNGdWd2wvdmtNRkY5cGdyZjh6R2djVkM4c0xUU21lQlJiSmtP?= =?utf-8?B?ZVZZa2kxcHl2SUkreVVxZVRKWFhHZnI3aWJoNkJtWlR5TjZYM3g3RU00YXBR?= =?utf-8?B?SC8vd1lmVCttTVJUNWZ2OU9KYWZ6djdwSE85L29OaW5jTjkzRDE2VUk3T01k?= =?utf-8?B?SVRIVWF2M1BhQzJyN3VQbmkxcWM0VGJYOHBwbklUalFNeW9iRlhlWXNvODR6?= =?utf-8?B?OVhlRmVUQ05ZS2NKS0ZjYld5ZXVSUVVXZXQ0bDRPbUVvVTJQZmRZaWxGcnJ6?= =?utf-8?B?WkpLcXlMUXViK2UxTUE2MTNXcmtSQjMxK3dTSW5KR2ZYWmFwK0N3RlBPbThD?= =?utf-8?B?cXovVTM0cG9GdkFoejlOT2tHTzlTZk9BSS93aEF2K2NramFCVSs1dXlvcWh2?= =?utf-8?B?MVR4MHdMYUs4UVoydTFRbnU2OGtZTm9VSkdlY2tzZngwY0RTRk5ON1JZTGNi?= =?utf-8?B?TVVvWStMVVJQUzdENFhaZ0dlanlOaFV0blJ3RkxWbWJLT0V2RnNpQ2VwUTdI?= =?utf-8?B?d0pGVWVXSjRJbng3WHo4WU9Cb3RZdGlGRFJPVzE0YnhKdmp5VFFPek8wZGpV?= =?utf-8?B?OVdmemdQanZvUnk4YnZVbjh6T2lDcVJ2SlljYjJyTnFKRWVBQjRsaFZ0cENm?= =?utf-8?B?b0RDRjBNY2xpczBGWVhmYkNHS3hXUVRMSW10VmQ0MHN5bjd5dW9GWGZrMm0r?= =?utf-8?B?MldKSEUvMlIyUzNseXQ3emlWcHNLQ0ZjZmQzcXNEN01SSmNNNjd6OEFMbWhF?= =?utf-8?Q?mvrzat9WblE4VbQVqil4NX0jF?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: adc1fd33-e907-48b3-0d77-08db6241d9d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jun 2023 01:45:16.9637 (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: J0KPtJR4HelLgQ2LwaWkx4APWA16kn80qTH6je741Yqvn0/hBWclSWCS2yfk5zL9VagzOYa7pZ/fVlfSlfEiiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7563 X-OriginatorOrg: intel.com 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBFZWxjbyBDaGF1ZHJvbiA8ZWNo YXVkcm9AcmVkaGF0LmNvbT4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXkgMzEsIDIwMjMgNzoxNCBQ TQ0KPiBUbzogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4g Q2M6IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IGRhdmlkLm1hcmNoYW5kQHJl ZGhhdC5jb207DQo+IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYzIDEvNF0g dmhvc3Q6IGNoYW5nZSB2aG9zdF92aXJ0cXVldWUgYWNjZXNzIGxvY2sgdG8gYQ0KPiByZWFkL3dy aXRlIG9uZQ0KPiANCj4gDQo+IA0KPiBPbiAzMSBNYXkgMjAyMywgYXQgMTE6MjcsIE1heGltZSBD b3F1ZWxpbiB3cm90ZToNCj4gDQo+ID4gT24gNS8zMS8yMyAwODozNywgWGlhLCBDaGVuYm8gd3Jv dGU6DQo+ID4+IEhpIEVlbGNvLA0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPj4+IEZyb206IEVlbGNvIENoYXVkcm9uIDxlY2hhdWRyb0ByZWRoYXQuY29tPg0KPiA+ Pj4gU2VudDogV2VkbmVzZGF5LCBNYXkgMTcsIDIwMjMgNTowOSBQTQ0KPiA+Pj4gVG86IG1heGlt ZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+ Ow0KPiA+Pj4gZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiA+Pj4gQ2M6IGRldkBkcGRrLm9y Zw0KPiA+Pj4gU3ViamVjdDogW1BBVENIIHYzIDEvNF0gdmhvc3Q6IGNoYW5nZSB2aG9zdF92aXJ0 cXVldWUgYWNjZXNzIGxvY2sgdG8gYQ0KPiA+Pj4gcmVhZC93cml0ZSBvbmUNCj4gPj4+DQo+ID4+ PiBUaGlzIGNoYW5nZSB3aWxsIGFsbG93IHRoZSB2aG9zdCBpbnRlcnJ1cHQgZGF0YXBhdGggaGFu ZGxpbmcgdG8gYmUNCj4gc3BsaXQNCj4gPj4+IGJldHdlZW4gdHdvIHByb2Nlc3NlZCB3aXRob3V0 IG9uZSBvZiB0aGVtIGhvbGRpbmcgYW4gZXhwbGljaXQgbG9jay4NCj4gPj4+DQo+ID4+PiBTaWdu ZWQtb2ZmLWJ5OiBFZWxjbyBDaGF1ZHJvbiA8ZWNoYXVkcm9AcmVkaGF0LmNvbT4NCj4gPj4+IC0t LQ0KPiA+Pj4gICBsaWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9ydGVfcndsb2NrLmggfCAgIDE3ICsr KysrKw0KPiA+Pj4gICBsaWIvdmhvc3Qvdmhvc3QuYyAgICAgICAgICAgICAgICAgICAgfCAgIDQ2 ICsrKysrKysrKy0tLS0tLS0tDQo+ID4+PiAgIGxpYi92aG9zdC92aG9zdC5oICAgICAgICAgICAg ICAgICAgICB8ICAgIDQgKy0NCj4gPj4+ICAgbGliL3Zob3N0L3Zob3N0X3VzZXIuYyAgICAgICAg ICAgICAgIHwgICAxNCArKystLQ0KPiA+Pj4gICBsaWIvdmhvc3QvdmlydGlvX25ldC5jICAgICAg ICAgICAgICAgfCAgIDkwICsrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPiAtLS0tLQ0KPiA+Pj4g LS0tLS0NCj4gPj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCA3NyBkZWxl dGlvbnMoLSkNCj4gPj4+DQo+ID4+PiBkaWZmIC0tZ2l0IGEvbGliL2VhbC9pbmNsdWRlL2dlbmVy aWMvcnRlX3J3bG9jay5oDQo+ID4+PiBiL2xpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9yd2xv Y2suaA0KPiA+Pj4gaW5kZXggNzFlMmQ4ZDVmNC4uOWUwODNiYmM2MSAxMDA2NDQNCj4gPj4+IC0t LSBhL2xpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9yd2xvY2suaA0KPiA+Pj4gKysrIGIvbGli L2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3J3bG9jay5oDQo+ID4+PiBAQCAtMjM2LDYgKzIzNiwy MyBAQCBydGVfcndsb2NrX3dyaXRlX3VubG9jayhydGVfcndsb2NrX3QgKnJ3bCkNCj4gPj4+ICAg CV9fYXRvbWljX2ZldGNoX3N1YigmcndsLT5jbnQsIFJURV9SV0xPQ0tfV1JJVEUsDQo+IF9fQVRP TUlDX1JFTEVBU0UpOw0KPiA+Pj4gICB9DQo+ID4+Pg0KPiA+Pj4gKy8qKg0KPiA+Pj4gKyAqIFRl c3QgaWYgdGhlIHdyaXRlIGxvY2sgaXMgdGFrZW4uDQo+ID4+PiArICoNCj4gPj4+ICsgKiBAcGFy YW0gcndsDQo+ID4+PiArICogICBBIHBvaW50ZXIgdG8gYSByd2xvY2sgc3RydWN0dXJlLg0KPiA+ Pj4gKyAqIEByZXR1cm4NCj4gPj4+ICsgKiAgIDEgaWYgdGhlIHdyaXRlIGxvY2sgaXMgY3VycmVu dGx5IHRha2VuOyAwIG90aGVyd2lzZS4NCj4gPj4+ICsgKi8NCj4gPj4+ICtzdGF0aWMgaW5saW5l IGludA0KPiA+Pj4gK3J0ZV9yd2xvY2tfd3JpdGVfaXNfbG9ja2VkKHJ0ZV9yd2xvY2tfdCAqcnds KQ0KPiA+Pj4gK3sNCj4gPj4+ICsJaWYgKF9fYXRvbWljX2xvYWRfbigmcndsLT5jbnQsIF9fQVRP TUlDX1JFTEFYRUQpICYgUlRFX1JXTE9DS19XUklURSkNCj4gPj4+ICsJCXJldHVybiAxOw0KPiA+ Pj4gKw0KPiA+Pj4gKwlyZXR1cm4gMDsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+DQo+ID4+IEFn YWluIHdlIG5lZWQgdG8gdXBkYXRlIHJlbGVhc2Ugbm90ZSBhcyBpdCdzIGEgbmV3IEVBTCBBUEku DQo+ID4+DQo+ID4+PiAgIC8qKg0KPiA+Pj4gICAgKiBUcnkgdG8gZXhlY3V0ZSBjcml0aWNhbCBz ZWN0aW9uIGluIGEgaGFyZHdhcmUgbWVtb3J5IHRyYW5zYWN0aW9uLA0KPiBpZg0KPiA+Pj4gaXQN Cj4gPj4+ICAgICogZmFpbHMgb3Igbm90IGF2YWlsYWJsZSB0YWtlIGEgcmVhZCBsb2NrDQo+ID4+ PiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3Zob3N0LmMgYi9saWIvdmhvc3Qvdmhvc3QuYw0KPiA+ Pj4gaW5kZXggZWYzNzk0MzgxNy4uNzRiZGJmZDgxMCAxMDA2NDQNCj4gPj4+IC0tLSBhL2xpYi92 aG9zdC92aG9zdC5jDQo+ID4+PiArKysgYi9saWIvdmhvc3Qvdmhvc3QuYw0KPiA+Pj4gQEAgLTM5 Myw5ICszOTMsOSBAQCBmcmVlX3ZxKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHN0cnVjdA0KPiB2 aG9zdF92aXJ0cXVldWUNCj4gPj4+ICp2cSkNCj4gPj4+ICAgCWVsc2UNCj4gPj4+ICAgCQlydGVf ZnJlZSh2cS0+c2hhZG93X3VzZWRfc3BsaXQpOw0KPiA+Pj4NCj4gPj4+IC0JcnRlX3NwaW5sb2Nr X2xvY2soJnZxLT5hY2Nlc3NfbG9jayk7DQo+ID4+PiArCXJ0ZV9yd2xvY2tfd3JpdGVfbG9jaygm dnEtPmFjY2Vzc19sb2NrKTsNCj4gPj4+ICAgCXZob3N0X2ZyZWVfYXN5bmNfbWVtKHZxKTsNCj4g Pj4+IC0JcnRlX3NwaW5sb2NrX3VubG9jaygmdnEtPmFjY2Vzc19sb2NrKTsNCj4gPj4+ICsJcnRl X3J3bG9ja193cml0ZV91bmxvY2soJnZxLT5hY2Nlc3NfbG9jayk7DQo+ID4+PiAgIAlydGVfZnJl ZSh2cS0+YmF0Y2hfY29weV9lbGVtcyk7DQo+ID4+PiAgIAl2aG9zdF91c2VyX2lvdGxiX2Rlc3Ry b3kodnEpOw0KPiA+Pj4gICAJcnRlX2ZyZWUodnEtPmxvZ19jYWNoZSk7DQo+ID4+PiBAQCAtNjMw LDcgKzYzMCw3IEBAIGFsbG9jX3ZyaW5nX3F1ZXVlKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHVp bnQzMl90DQo+ID4+PiB2cmluZ19pZHgpDQo+ID4+Pg0KPiA+Pj4gICAJCWRldi0+dmlydHF1ZXVl W2ldID0gdnE7DQo+ID4+PiAgIAkJaW5pdF92cmluZ19xdWV1ZShkZXYsIHZxLCBpKTsNCj4gPj4+ IC0JCXJ0ZV9zcGlubG9ja19pbml0KCZ2cS0+YWNjZXNzX2xvY2spOw0KPiA+Pj4gKwkJcnRlX3J3 bG9ja19pbml0KCZ2cS0+YWNjZXNzX2xvY2spOw0KPiA+Pj4gICAJCXZxLT5hdmFpbF93cmFwX2Nv dW50ZXIgPSAxOw0KPiA+Pj4gICAJCXZxLT51c2VkX3dyYXBfY291bnRlciA9IDE7DQo+ID4+PiAg IAkJdnEtPnNpZ25hbGxlZF91c2VkX3ZhbGlkID0gZmFsc2U7DQo+ID4+PiBAQCAtMTMwNSwxNCAr MTMwNSwxNCBAQCBydGVfdmhvc3RfdnJpbmdfY2FsbChpbnQgdmlkLCB1aW50MTZfdA0KPiB2cmlu Z19pZHgpDQo+ID4+PiAgIAlpZiAoIXZxKQ0KPiA+Pj4gICAJCXJldHVybiAtMTsNCj4gPj4+DQo+ ID4+PiAtCXJ0ZV9zcGlubG9ja19sb2NrKCZ2cS0+YWNjZXNzX2xvY2spOw0KPiA+Pj4gKwlydGVf cndsb2NrX3JlYWRfbG9jaygmdnEtPmFjY2Vzc19sb2NrKTsNCj4gPj4+DQo+ID4+PiAgIAlpZiAo dnFfaXNfcGFja2VkKGRldikpDQo+ID4+PiAgIAkJdmhvc3RfdnJpbmdfY2FsbF9wYWNrZWQoZGV2 LCB2cSk7DQo+ID4+PiAgIAllbHNlDQo+ID4+PiAgIAkJdmhvc3RfdnJpbmdfY2FsbF9zcGxpdChk ZXYsIHZxKTsNCj4gPj4+DQo+ID4+PiAtCXJ0ZV9zcGlubG9ja191bmxvY2soJnZxLT5hY2Nlc3Nf bG9jayk7DQo+ID4+PiArCXJ0ZV9yd2xvY2tfcmVhZF91bmxvY2soJnZxLT5hY2Nlc3NfbG9jayk7 DQo+ID4+DQo+ID4+IE5vdCBzdXJlIGFib3V0IHRoaXMuIHZob3N0X3JpbmdfY2FsbF9wYWNrZWQv c3BsaXQgaXMgY2hhbmdpbmcgc29tZQ0KPiBmaWVsZCBpbg0KPiA+PiBWcS4gU2hvdWxkIHdlIHVz ZSB3cml0ZSBsb2NrIGhlcmU/DQo+ID4NCj4gPiBJIGRvbid0IHRoaW5rIHNvLCB0aGUgcHVycG9z ZSBvZiB0aGUgYWNjZXNzX2xvY2sgaXMgbm90IHRvIG1ha2UgdGhlDQo+ID4gZGF0YXBhdGggdGhy ZWFkcy1zYWZlLCBidXQgdG8gcHJvdGVjdCB0aGUgZGF0YXBhdGggZnJvbSBtZXRhZGF0YSBjaGFu Z2VzDQo+ID4gYnkgdGhlIGNvbnRyb2wgcGF0aC4NCj4gDQo+IFRoYW5rcyBDaGluYm8gZm9yIHRo ZSByZXZpZXcsIGFuZCBzZWUgTWF4aW1l4oCZcyBjb21tZW50IGFib3ZlLiBEb2VzIHRoaXMNCj4g Y2xhcmlmeSB5b3VyIGNvbmNlcm4vcXVlc3Rpb24/DQoNCk1ha2Ugc2Vuc2UgdG8gbWUuIFRoYW5r cyBFZWxjbyBhbmQgTWF4aW1lIQ0KDQpXaXRoIHRoZSByZWxlYXNlIG5vdGUgYWRkZWQ6DQoNClJl dmlld2VkLWJ5OiBDaGVuYm8gWGlhIDxjaGVuYm8ueGlhQGludGVsLmNvbT4gDQoNCj4gDQo+ID4+ DQo+ID4+IFRoYW5rcywNCj4gPj4gQ2hlbmJvDQo+ID4+DQoNCg==