From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BCCDFA09FF; Thu, 7 Jan 2021 08:26:50 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 836FD140E95; Thu, 7 Jan 2021 08:26:50 +0100 (CET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mails.dpdk.org (Postfix) with ESMTP id 43CB6140D04 for ; Thu, 7 Jan 2021 08:26:48 +0100 (CET) IronPort-SDR: 6rOkk+MfFcNPdT3E1OpoWVRtW4UB5KHNQmwsnTfzVS9kgZpPb6tzzS7cwXqbpv4QZDZrqnDNBr a4HOE8Mg+Icw== X-IronPort-AV: E=McAfee;i="6000,8403,9856"; a="241464928" X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="241464928" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2021 23:26:47 -0800 IronPort-SDR: nkHT5EyX+UP+1QvsZsX2DpFbm2XeJB3g46lnJi6mVdO8KhqU6mR/xETjszq/8Gy8ZgBjxYf3S0 b/TxsxLPg6wA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,329,1602572400"; d="scan'208";a="422477141" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga001.jf.intel.com with ESMTP; 06 Jan 2021 23:26:47 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.1713.5; Wed, 6 Jan 2021 23:26:46 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 6 Jan 2021 23:26:46 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 6 Jan 2021 23:26:46 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.43) 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.1713.5; Wed, 6 Jan 2021 23:26:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aKC1omVoJ3vAi6PTokWyeCD1qm4XuG1EpZW6ygxLSM2cE2O20W/6Hc/3tl03qzl0d/GGqFPCEuKmtGWlJ0oUhjtQO++MNiigKOFkiKe86iIC1hsH+xEtGRVSzx3ct2J2W9ops4YPPsB5Jib2sFQQfHP5DXRgqxLCjcMNsHn53ivLixTWhk4lL1zFVaitrX2+IkIvzWb7/kx79RbwMn4ei7goqNOkyXDW/4Th9mWyxBIqXyVG5IIR8l8oycclF8r7ryEUE619enbZK5Qf/2qpFD6t71r0jjmLdd2AA0h4F8CyXJmO1dYqxy97Di9DOefsCCMknhSq2b0M8v7K80a/IQ== 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=0Xsxy0gSEwMMLamb2hGkwcBueosUiNdIvaT7kjiDAZM=; b=SAWVWLPauGTG7TOYOVLc9BcdlW9DJs3fh2AqoJibSmmjoY3rdtkw7TcMxSsKSPu8E/LWlmNh/pQz3HkA9vP8ynVCbJa/BTMVDXRVZDWmVsAmJSnrWxRaqwfew8NeODgetBii8aREv/AuQUKbqU86sJs17ZjsFjW6wPvhzFB4dZgF4bZCfDorfjnF0gg3sbgjEajf4K4i6wpiDBOG55MZ/wJeRJFe/DLQuFUn4CQ3kPuFcS9nUxlWjGrdunHdmWPpFBPTfugUWu8b38FcIeo9L6+EzPZmsvdAJoMYaiBBEaxqX4/I1OJvH9b12QCmnM0/jFlT431YVGj75qcO2fyjrg== 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=0Xsxy0gSEwMMLamb2hGkwcBueosUiNdIvaT7kjiDAZM=; b=Q7rr9OTfbAQ2ISsX3IlR3X4D2oOQxGITX1uzkaiAQMPIYb88gT+NOdr6XDkOSsoTf+MA9f5Av8frtmEk8ZxxL6QGcUoRC6aTMJukHOfmOejDJTYPcN3Ozxs3mB/lWg0KRvkxIys7n/DpFbjnGi0YZ04OKPeJX7YJMEmhCIu26p4= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3661.namprd11.prod.outlook.com (2603:10b6:208:f0::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.23; Thu, 7 Jan 2021 07:26:44 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272%7]) with mapi id 15.20.3721.024; Thu, 7 Jan 2021 07:26:44 +0000 From: "Xia, Chenbo" To: "Xing, Beilei" , "dev@dpdk.org" , "thomas@monjalon.net" , "david.marchand@redhat.com" CC: "stephen@networkplumber.org" , "Liang, Cunming" , "Lu, Xiuchun" , "Li, Miao" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [PATCH 7/9] vfio_user: add client APIs of DMA/IRQ/region Thread-Index: AQHW1RNnwtqzCoLW3UeP0dOE1BdeUKobkxGAgABPgvA= Date: Thu, 7 Jan 2021 07:26:43 +0000 Message-ID: References: <20201218073851.93609-1-chenbo.xia@intel.com> <20201218073851.93609-8-chenbo.xia@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN 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=intel.com; x-originating-ip: [192.55.46.39] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7a3fac75-1453-49c2-479b-08d8b2dd95c3 x-ms-traffictypediagnostic: MN2PR11MB3661: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2399; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /BhDQrGZeH2T2GYcsBvDRkL3/v1lUpgPOgDgCnsSAf7jx66DE1FP1C6zOIaCavi0BaF6hwaxKCUoFKHuR7b9+mUz+zVj/G/Y0e64qaR6QBCz15z1sn5n0/bsDfV8iWo4Qk67sguMiW7KiaKL7BsAWEOrl3Qw5msULvjj2wb8KkyeKf3UNtPt7Y15SIoLJhK+Ix4y2ZkXWPwNeWPxUBBpWbWvHv6SgTnaYl4G4JJaKagrfP6Gt8WXpqjYZo+tbv1xXGa+tpav3CFhyGaxIldzWJa8Yd2mr9r1FFbiEjPoivRnZ1LMCJ/HZcFTCdYg8FeFAnDiiF/fG9ZOu0MvOPzkNILGs9TqCQuYMFR1KqCdodACncnDCFfnxY2Y6VRBdKfrTZAY9dg86mezBnmPKiPyO5JDMbN45PRewptXfo3Sxd7dQkzYWjitTeCVlab/xijr x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(346002)(396003)(136003)(376002)(366004)(86362001)(66556008)(76116006)(66446008)(52536014)(64756008)(5660300002)(66946007)(66476007)(107886003)(26005)(7696005)(6506007)(478600001)(53546011)(55016002)(110136005)(4326008)(8676002)(8936002)(83380400001)(186003)(2906002)(54906003)(33656002)(9686003)(71200400001)(316002)(21314003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?eEI1dm4vQTk5R3RGOTIwdkRtUWJvRG1wY2k3bi9KL2VORGdqc05LM1hFWStk?= =?utf-8?B?NE1BWXYyVXBaTVZSRlBkQUI3S3d0RmZBbEMwNHo4dTZBR0JRbFdySVQ1OHZi?= =?utf-8?B?d2Zzb1BWOXdSTWdKbTUzWEx5d051bmg3cnVXcnRucXZuQ3Z3MmVhZWI0WkNV?= =?utf-8?B?UDVCb3hESTRjQTZxelEzd29IUWg1SWVIREVLY0h0YjRzQnZjUlp0dENmRVlt?= =?utf-8?B?ekpvSDNCOWMwY1c3eXNGYnZzOGJDVkZjelZPWEFZYzcrZVE4QzJ5REp0OVlw?= =?utf-8?B?ZS8renVDWDZPZkhQNjUrZE9VSndYckg3MS9QUEJwRmhLMXNKQ0NRRjJQZXp2?= =?utf-8?B?dzlvTmZzcGlKTkxZZkZwOEZBT0F6WlVKcHRQREhXREJQSzQ5KzBxbUVHQVRG?= =?utf-8?B?TlQzN3F5bGthU0F4NU5EUHdRUFc1WmhrakZHS2FnUklnMTMvUExmQklJYVZk?= =?utf-8?B?dHVEeTV0dlYyOW9pVUlQR3oxN3o2NjlvZERudVRMVVNvNVlQeEZ0S21TbDJV?= =?utf-8?B?dU9jbGJ2MjltSXZoVzNadWhBWEI0NndSNk1xc2Q0ZlkybjJMQkdOc0VQcjhQ?= =?utf-8?B?U01EQUZRWGlNb3ZsVnBZK213cUduY2o4OHRva0NFbHhXOThmNG9QUWRBaFJy?= =?utf-8?B?S0V0dEQyMURnWEVVOFIyTXRnMFhEQzgzYXYwcjdEVEpES08rU3FrdXFiai9H?= =?utf-8?B?cXgyUVhDZEkxVTNKK1NaTzUwclQ2dVAyU3JXajVKNlBYNXo2eUpSSW9RTDR3?= =?utf-8?B?QTJSckJibzNTd1BvbmwrMUdaUDQ5VGwxK3hkYUI3VUdSVUlpZy9NYmFpNkYy?= =?utf-8?B?QmZLWkVnbXdGT0s1eDBobWJPN3M2V0xFNmhuRWNPNDMzNTJkckFKNVNwc2F3?= =?utf-8?B?ZnZBdjhXVWp4aDBUQWY4STcrcjlzUlgzbFozaWg2NUFJNjJ2aFp2UEJiN1hL?= =?utf-8?B?MnF3T3JQS21wbnVKVEdHWTIwVHh4N0ZpNUdaNEJvaTJENXJPNG0weC9Qdkdh?= =?utf-8?B?SUFWRjVVSW83V0U0MkdUbFMwa0lFNWZ6NjhvN1BNVEpjWkNDQ05pem1xY1VS?= =?utf-8?B?c0hUbzlBOWNwdnd4ekZkekpZcWtNYm5Db1daTStKbjVMQVJnWDNOTjExbzc1?= =?utf-8?B?ek5EV1dxMGJGbmMzTnBoOFlOemFlYjJBRVVtUzAvMWRqSFUwdXY1L1RHOUV5?= =?utf-8?B?aDB6blI1cVo2Ukd6dEh5cXhOdmlGbjFpYnVEdEhvMDloTEJ5WXFsV2J1RXIw?= =?utf-8?B?NXoxeTRELzA5R0dmbWtTaUFhRllWZ1RQT29NejlHVjBtSkoyTk80Yk9aYk85?= =?utf-8?Q?axR1Aj74psD6Q=3D?= 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: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a3fac75-1453-49c2-479b-08d8b2dd95c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2021 07:26:44.0716 (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: mNUKJ7VAglsrt+uZhkZPyTJqhkaPELxGeBChCiYDshKdvPjqtH5fL7NEYn75TzIe+6BrrWUw2J5DM1OY/LV1og== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3661 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 7/9] vfio_user: add client APIs of DMA/IRQ/region 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" SGkgQmVpbGVpLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFhpbmcs IEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgSmFudWFy eSA3LCAyMDIxIDEwOjQyIEFNDQo+IFRvOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5j b20+OyBkZXZAZHBkay5vcmc7IHRob21hc0Btb25qYWxvbi5uZXQ7DQo+IGRhdmlkLm1hcmNoYW5k QHJlZGhhdC5jb20NCj4gQ2M6IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBMaWFuZywgQ3Vu bWluZyA8Y3VubWluZy5saWFuZ0BpbnRlbC5jb20+OyBMdSwNCj4gWGl1Y2h1biA8eGl1Y2h1bi5s dUBpbnRlbC5jb20+OyBMaSwgTWlhbyA8bWlhby5saUBpbnRlbC5jb20+OyBXdSwgSmluZ2ppbmcN Cj4gPGppbmdqaW5nLnd1QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW1BB VENIIDcvOV0gdmZpb191c2VyOiBhZGQgY2xpZW50IEFQSXMgb2YNCj4gRE1BL0lSUS9yZWdpb24N Cj4gDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRl diA8ZGV2LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBDaGVuYm8gWGlhDQo+ID4gU2Vu dDogRnJpZGF5LCBEZWNlbWJlciAxOCwgMjAyMCAzOjM5IFBNDQo+ID4gVG86IGRldkBkcGRrLm9y ZzsgdGhvbWFzQG1vbmphbG9uLm5ldDsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiA+IENj OiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgTGlhbmcsIEN1bm1pbmcNCj4gPiA8Y3VubWlu Zy5saWFuZ0BpbnRlbC5jb20+OyBMdSwgWGl1Y2h1biA8eGl1Y2h1bi5sdUBpbnRlbC5jb20+OyBM aSwgTWlhbw0KPiA+IDxtaWFvLmxpQGludGVsLmNvbT47IFd1LCBKaW5namluZyA8amluZ2ppbmcu d3VAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIIDcvOV0gdmZpb191 c2VyOiBhZGQgY2xpZW50IEFQSXMgb2YgRE1BL0lSUS9yZWdpb24NCj4gPg0KPiA+IFRoaXMgcGF0 Y2ggaW50cm9kdWNlcyBuaW5lIEFQSXMNCj4gPiAtIERldmljZSByZWxhdGVkOg0KPiA+ICAgcnRl X3ZmaW9fdXNlcl9nZXRfZGV2X2luZm8gYW5kIHJ0ZV92ZmlvX3VzZXJfcmVzZXQNCj4gPiAtIERN QSByZWxhdGVkOg0KPiA+ICAgcnRlX3ZmaW9fdXNlcl9kbWFfbWFwL3VubWFwDQo+ID4gLSBSZWdp b24gcmVsYXRlZDoNCj4gPiAgIHJ0ZV92ZmlvX3VzZXJfZ2V0X3JlZ19pbmZvIGFuZCBydGVfdmZp b191c2VyX3JlZ2lvbl9yZWFkL3dyaXRlDQo+ID4gLSBJUlEgcmVsYXRlZDoNCj4gPiAgIHJ0ZV92 ZmlvX3VzZXJfZ2V0X2lycV9pbmZvIGFuZCBydGVfdmZpb191c2VyX3NldF9pcnFzDQo+ID4NCj4g PiBTaWduZWQtb2ZmLWJ5OiBDaGVuYm8gWGlhIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4gPiBT aWduZWQtb2ZmLWJ5OiBYaXVjaHVuIEx1IDx4aXVjaHVuLmx1QGludGVsLmNvbT4NCj4gPiAtLS0N Cj4gPiAgbGliL2xpYnJ0ZV92ZmlvX3VzZXIvcnRlX3ZmaW9fdXNlci5oICAgIHwgMTY4ICsrKysr KysrKysNCj4gPiAgbGliL2xpYnJ0ZV92ZmlvX3VzZXIvdmVyc2lvbi5tYXAgICAgICAgIHwgICA5 ICsNCj4gPiAgbGliL2xpYnJ0ZV92ZmlvX3VzZXIvdmZpb191c2VyX2NsaWVudC5jIHwgNDEyICsr KysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDU4OSBpbnNlcnRp b25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92ZmlvX3VzZXIvcnRlX3Zm aW9fdXNlci5oDQo+ID4gYi9saWIvbGlicnRlX3ZmaW9fdXNlci9ydGVfdmZpb191c2VyLmgNCj4g PiBpbmRleCBiMDlkODNlMjI0Li5mZTI3ZDA1OTkyIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJy dGVfdmZpb191c2VyL3J0ZV92ZmlvX3VzZXIuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmZpb191 c2VyL3J0ZV92ZmlvX3VzZXIuaA0KPiA+IEBAIC0yMjksNiArMjI5LDE1IEBAIGludCBydGVfdmZp b191c2VyX3NldF9pcnFfaW5mbyhjb25zdCBjaGFyICpzb2NrX2FkZHIsDQo+IA0KPiANCj4gPiAr aW50IHJ0ZV92ZmlvX3VzZXJfZ2V0X2Rldl9pbmZvKGludCBkZXZfaWQsIHN0cnVjdCB2ZmlvX2Rl dmljZV9pbmZvDQo+ID4gKyppbmZvKSB7DQo+ID4gKwlWRklPX1VTRVJfTVNHIG1zZzsNCj4gPiAr CXN0cnVjdCB2ZmlvX3VzZXJfY2xpZW50ICpkZXY7DQo+ID4gKwlpbnQgcmV0Ow0KPiA+ICsJdWlu dDMyX3Qgc3ogPSBWRklPX1VTRVJfTVNHX0hEUl9TSVpFICsgc2l6ZW9mKHN0cnVjdA0KPiA+ICt2 ZmlvX2RldmljZV9pbmZvKTsNCj4gPiArDQo+ID4gKwlpZiAoIWluZm8pDQo+ID4gKwkJcmV0dXJu IC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJZGV2ID0gdmZpb19jbGllbnRfZGV2cy5jbFtkZXZfaWRd Ow0KPiA+ICsJaWYgKCFkZXYpIHsNCj4gPiArCQlWRklPX1VTRVJfTE9HKEVSUiwgIkZhaWxlZCB0 byBnZXQgZGV2aWNlIGluZm86ICINCj4gPiArCQkJIndyb25nIGRldmljZSBJRFxuIik7DQo+ID4g KwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJbWVtc2V0KCZtc2csIDAs IHNpemVvZihWRklPX1VTRVJfTVNHKSk7DQo+ID4gKwl2ZmlvX3VzZXJfY2xpZW50X2ZpbGxfaGRy KCZtc2csIFZGSU9fVVNFUl9ERVZJQ0VfR0VUX0lORk8sIHN6KTsNCj4gPiArDQo+ID4gKwlyZXQg PSB2ZmlvX3VzZXJfY2xpZW50X3NlbmRfcmVjdihkZXYtPnNvY2suc29ja19mZCwgJm1zZyk7DQo+ ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gKw0KPiA+ICsJaWYgKG1zZy5m bGFncyAmIFZGSU9fVVNFUl9FUlJPUikgew0KPiA+ICsJCVZGSU9fVVNFUl9MT0coRVJSLCAiRmFp bGVkIHRvIGdldCBkZXZpY2UgaW5mbzogJXNcbiIsDQo+ID4gKwkJCQltc2cuZXJyID8gc3RyZXJy b3IobXNnLmVycikgOiAiVW5rbm93biBlcnJvciIpOw0KPiA+ICsJCXJldHVybiBtc2cuZXJyID8g LShpbnQpbXNnLmVyciA6IC0xOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmICh2ZmlvX3VzZXJf Y2hlY2tfbXNnX2ZkbnVtKCZtc2csIDApICE9IDApDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsN Cj4gPiArCW1lbWNweShpbmZvLCAmbXNnLnBheWxvYWQuZGV2X2luZm8sIHNpemVvZigqaW5mbykp Ow0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gDQo+IFNlZW1zIHRoZXJlJ3Mg ZHVwbGljYXRlIGNvZGUgaW4gZnVuY3Rpb24gZ2V0X3h4eF9pbmZvLCBkb3VibGUgY2hlY2sgYW5k IHJlZmluZS4NCg0KT0suIFdpbGwgcmVmaW5lIHRoaXMuDQoNClRoYW5rcywNCkNoZW5ibw0K