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 02A7342508 for ; Wed, 6 Sep 2023 09:52:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 71F3B4029E; Wed, 6 Sep 2023 09:52:56 +0200 (CEST) Received: from smtp.mei.co.jp (smtp.mei.co.jp [133.183.100.20]) by mails.dpdk.org (Postfix) with ESMTP id 9362B4029D for ; Wed, 6 Sep 2023 09:52:54 +0200 (CEST) Received: from mail-gw.jp.panasonic.com ([157.8.1.157]) by smtp.mei.co.jp (8.14.7/8.14.4/lvzy19) with ESMTP id 3867qqMO022736; Wed, 6 Sep 2023 16:52:52 +0900 Received: from epochmail.jp.panasonic.com ([157.8.1.130]) by mail.jp.panasonic.com (8.14.7/3.7W/kc-maili04) with ESMTP id 3867qq97004840; Wed, 6 Sep 2023 16:52:52 +0900 Received: by epochmail.jp.panasonic.com (8.12.11.20060308/3.7W/pml-send1) id 3867qp9m027398; Wed, 6 Sep 2023 16:52:51 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dVUHpl6DipIYUb35mcLa2RRD57Pe6FQd5F7Al+3Y18la3HnjJBL/+pTsxAW/JFc+cE895fZuN//zrVJcyRt6+0IkpI2B79FubeFiM0W+r0T4GWaO3jr3PwkUrSh6IGppKhsfUB1fPzKNNypVN5E5Gp+Dfq45rNGacRPX1ZuhOpRMkospEzGYJ0Fp1TsnsQJC342Mx+qa1cO9m42YB7rDD0zxtX1EXwSNrHH9P5V+fyNrZTEKh+y7wrttiVhZmlDwRUwIqPWd/LZbU+cfPO+/v3nnJQWYdzxrbBSB8IhOCyqgTbMjyoADSvcdNYEtxqCO2KHn9CYRdaDkiBAywKzqoA== 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=F0AuTT1/JnWHOwLOWlgh8UiqRrkh4ob+c0LeKncc4a0=; b=go2uP+8NoZR3VnH7hegPtWerxbgqgeuphKdKYg0+Aof1waKdt1PQhFMPODcqiT+8Sp/LXHW6dxdrDfETGYbcXJMWLBLvn6adYWIqWeMs5vg+3Go8YpJOzwZhsznbYDi7hH5HyvWlBCh7myRLLy6YgrLdIuNKBaHjRqZHVellqbRa+tfMibhpv/PkFzqGIYwj8vYvaaaZfwpI79vbldWTrLsPz68VMkiDzJcx3PX37vVCAKktBUWAEVIHW1HOiSg6Qn0zyuJhh1c+BVB5EJYWn1g3wuhxjvYjxnW1b3LXh6xdOvtkTnES+cmIA/HjVao2ei1HEMVRmxbgwlRUFhbr6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jp.panasonic.com; dmarc=pass action=none header.from=jp.panasonic.com; dkim=pass header.d=jp.panasonic.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jppanasonic.onmicrosoft.com; s=selector2-jppanasonic-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F0AuTT1/JnWHOwLOWlgh8UiqRrkh4ob+c0LeKncc4a0=; b=xeRKOj4qRrx7rq5/NURcGh5c28Z5SVPZ8GASfUAM2fWjbyFBZycd+pMA+45g6vFA7X8nI7f8b1qFoJNuvXdhgDzeDzHz82GNmAuhz1rdFbu2KZKDgSIHPPQ+V9P2JenJuy9qiKfVf8f6OlgWZiZMlBC0+IXLd4ffHa28wY4MMkM= Received: from TYAPR01MB6378.jpnprd01.prod.outlook.com (2603:1096:400:a2::10) by OS3PR01MB7972.jpnprd01.prod.outlook.com (2603:1096:604:1be::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Wed, 6 Sep 2023 07:52:51 +0000 Received: from TYAPR01MB6378.jpnprd01.prod.outlook.com ([fe80::bb02:6fee:f039:b801]) by TYAPR01MB6378.jpnprd01.prod.outlook.com ([fe80::bb02:6fee:f039:b801%4]) with mapi id 15.20.6745.030; Wed, 6 Sep 2023 07:52:50 +0000 From: =?utf-8?B?Tmljb2xzb24gS2VuICjjg4vjgrPjg6vjgr3jg7Mg44Kx44OzKQ==?= To: David Marchand CC: "users@dpdk.org" , Maxime Coquelin , "Xia, Chenbo" Subject: RE: Implementing a simple TAP PMD to dpdk-vhost structure Thread-Topic: Implementing a simple TAP PMD to dpdk-vhost structure Thread-Index: AdngY3M13Z8GMXL8TeSPRhEvi+7OhAAJPASAAAOrHiA= Date: Wed, 6 Sep 2023 07:52:50 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-panasonic-appendix: BOiYvuUmEiA7L3+6V8fmVOI3n7ZWsH1rcI+i0f7A0O4Pgu88iJqL5hoL2VZpjLrzuJTtcxxof6aHo29mjBWt86EzznnbeHbhD8wHqVQgJnd9C21mmzjk4g== x-panasonic-plugin: SecurityPlus Ver,17.1.0.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=jp.panasonic.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYAPR01MB6378:EE_|OS3PR01MB7972:EE_ x-ms-office365-filtering-correlation-id: 98085a6b-0296-4301-3c61-08dbaeae4515 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IbnOXn/6ZWMjFsQ9zLyPCZWcECLe+Nf8Y0qUSkmDVy8gA/XFq59ab5oabklkXUxrf7XsUzHmuICgtPEUb3Lia0WMbEkUvIOgc6VSJh2XAWyVGeYcrVDvu1KtJ9T4OhcVQ6atCisigTpl5PRprjehSWjbaHZF7m/LBNvCh2Uo9+kmFWz8yvWt868QHIE4cB1YPCR1TH7UFTYPhoCvSaowWejmR3FY4p07LAytxJHPvYaqYCqZm9km92IDthyaHZ6h7G3GgmA8PRYM+lPAe4jFwiRIDKWLzyam6MRUA986NOYs6gwMx3rSHxuWCgkAL2i3n5uSgdAu+2U3eUVkIPzdRT4A5ZGYAWrgrvj/YTetGree/WMyQyBd6PxUpAXUGn5uyaPNiNqkxF/0B7t6KK1DFp/AT5mqAk05AH3FVkjgYvaaSdWwxU7w8qL0kW5vZzERc71ZxJoU/CNQWf/zn4q2ClntV93H2DqmuUu8qis8KDwLPnSRXQy8HgMn+kGgm27rkOHtMf85neFoniYhfphSPrUuKnMRDCb0DeQxTuRIOUR+21LpOCiITUmLCoYIdtsrkZb93/xKm9fKwh+8oSnsE6ikI97i2cT3qkRG0vGPqjs+4aG64Ccsh/b6XyHHH9Rh x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYAPR01MB6378.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(366004)(346002)(136003)(39860400002)(376002)(451199024)(1800799009)(186009)(82960400001)(85182001)(33656002)(38100700002)(86362001)(38070700005)(55016003)(6506007)(64756008)(478600001)(71200400001)(26005)(52536014)(5660300002)(316002)(7696005)(6916009)(122000001)(53546011)(66946007)(76116006)(66556008)(66446008)(66476007)(8936002)(41300700001)(9686003)(4326008)(8676002)(54906003)(2906002)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M0hWOW10c21rMStObnBtZ2VNS0NUZnlaUzEzNmlpT0M3Wlp2ZFplS2tIaCs3?= =?utf-8?B?K3BzMVBIMmpXQ0doTVpCcFZOcWxxVXozb2hGZUlqV3FpK09WRFc0bnViSTU4?= =?utf-8?B?Q1JTL09sbWpHSlpuQWppUXZ5YzdBeml0bkJOUFRKUUhZTDFtZlBRMGMvay91?= =?utf-8?B?bnZyT2pjQzlXZ0tOM2hjOTEyZjl6YnorU1hnZ2psVzVXNytsM0s2ckRsd0Q2?= =?utf-8?B?RWMzbGdmNEMxbXl2K2N2K0REVnFPRmxId1RFTEIvam9iNmlKRzhwMzF2TkhX?= =?utf-8?B?L0ZSTWQvZWhweFVHWjAvUytIOU9JMFhFRndGSG9MeTRJYi9ReUFCOThRaklm?= =?utf-8?B?azQwTDV5WDNOcjdtWUZlRzBBNGxwd0tydGl2TUtERnM1SjYwbWJKYS9adnFW?= =?utf-8?B?K1orbW1qajNlT2ZCMDBXSEFyWGEybUIwaks0Y3RVNVhtVzlZR1picWFYMXhL?= =?utf-8?B?Z0ZUR2VCL05qaW5PaHhrRG01MVhmMTNPYlM5R3lmL1RvaFg5N3hvd1NoZWJ2?= =?utf-8?B?MW51TjZKeXlqcmpUT0UyMTBraDNMYzRueExrRWdlUVJUYUNRVjNaa0xDWDRR?= =?utf-8?B?LzhBbjN0ZjJjMUhPT0svdDIrd2E2V01BcmJEZFRlT0djYmc5ZkR3YVRQK05R?= =?utf-8?B?aWlxOWEySDhhSStWYTRwTW0yZXZUREdyU05EVDRyS2N0WmxSYTBHdzhTVyth?= =?utf-8?B?djVHOGhQYVZSeVdBY1dML1J3QVNmY29aSkduRU05ZTgxNGRxek1YMFhzbUcx?= =?utf-8?B?a0Z0NUZPRTlnbDVJSllLV2NkaERjVW54NTdKS051R2YramlEMHFnUmdlRjBn?= =?utf-8?B?UCtyUGs4WTVud2kvdEdCcEVma01sY0NnbEtsaFVESE5OUjRUYjg4L3dLRUZi?= =?utf-8?B?L2JXVENkS2tJYUllcDBGVDA4SlBZUU5qT2R6OTRqRVpiaDJqK01iNUJXSHB0?= =?utf-8?B?cEJNUzFUK3U5ZXBUd0VDbXpsQ2ttRlZVbktnOTVLZjFPTCsrQ2dLdW00MWZF?= =?utf-8?B?TFdDd1JpUzRDOHh0YWw5UVdFVGFxOTlRbzVheS9zL2RmS0doRWRZcEgrVVZQ?= =?utf-8?B?KzErNXhGWHBWV3RPRW5wWUZFeWdSeUVheVFla3VXVDJyakRKRXlsZEpUS0ZU?= =?utf-8?B?QnB0N0tDZS9TSGFPaE5taEVnZnM3YXptUlZtQjZsQzdRbWNnUVlBc0k0Zjhv?= =?utf-8?B?bGo3T0NTdzAyRGE2UWZsSGZJUVJFZTZ1MVQ4WVQrbFhPTFE4K0N6c0FKQlFS?= =?utf-8?B?ZWViR25wOER1c2NySUdzVUlTUmk3eFJ5VlVEZzZSRURsdFVram50STZkSFl5?= =?utf-8?B?Q29BRThLTk5nYnNYdmZ4dkZhTHdoTjJmRGFFWkRrcElsZExPNGRRSTBkbEM1?= =?utf-8?B?NVNWSTRVOHlMZi9VUHBHNjA0bW5jZUY5WVpEVFZXWGY3cHNoc0V6dGQzdDlv?= =?utf-8?B?ejZRa1JVMXVsU3hSQTJ2MFlEblpKSURRL3JFam8wNTlIbnhrWVd2QmRqbGRi?= =?utf-8?B?Y2NBc0tzdTJUaERPekdDNmZSWGlyRUwrV3A0TjhZUitDMHl5TUp4c0pOL1Qw?= =?utf-8?B?eHFKVGNSWUZLbVhTNkRTNks5NWV4UHMwWEFDQ2JsbEo0Ykw5ZzdBTmw2dWg4?= =?utf-8?B?aWtydzlXUkVXbmRUN1U3UmVEM2owZFBVelVKYTl3RXdOSmZtYUZQR3JDSWli?= =?utf-8?B?Q2MxSWZtR0FEVzVMZ1RuZXY5R1Z4dUR5ZU9EME1WYkhKTFJRVWpjL0kveEln?= =?utf-8?B?b1ZJTS9FMzZ2b2t4Q2kxSjlDUVFJdGhzMUdvT3ZlQ3NURVhJSnU3LzVwa3Mr?= =?utf-8?B?LzIxVHhCcGVRL0svTlc1eTA1NXRKZEh4aGZZVWliOHk3QzgxNzlpN0Y4TjUv?= =?utf-8?B?Sm1qeDhIdm1Gak9uKzF1UkNuWTJVT2VmNXBxRUhnLzROM3p5Z05rRmZIcTNU?= =?utf-8?B?R1NPc1M2ZlVNc00vemhmbzg0cXg3SEgyQkFXVFZUMGF0ZUdyUll2MlUrWEpr?= =?utf-8?B?ZWxVRWoreW0rbTFTQlBONWZFV2F1RVZJU1JmQitWUkQ3K0hlS0RyN3NXckZU?= =?utf-8?B?ako2dG51a0RMbnUwams2OWVrU2N0SUNpRDlmc1ZjSWxZUzZmUmFVblgvdDFM?= =?utf-8?B?dnRSWUJOWGNGYVI4TERUd2tUK3l3eHJUSmVCMjRBemV3SFRaejg0dG94V2Ft?= =?utf-8?B?TWc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?utf-8?B?T2NjVFFFYndTMldoZzZaQ200SXg1YmVLVHJvVGx3Y0xrZ0tkSFhpOUdCSlRV?= =?utf-8?B?b3MzYlpRY2oyTUxUT3RZZ2dhcmNMZXJCem9JRXQ2Z1dheEEyWXdGbm9YekRD?= =?utf-8?B?dnkxVFJGVGxRNXJZUUNEVjZuSEY1cThIZk94OUR3RzdDc05TRUdqVVNrY0pM?= =?utf-8?B?Nm9LN0dudGtpNUQ0MFBOMEJpUUtIVGhnRFpoYlN4ZGUrSjFYRUgwZXVDMkpO?= =?utf-8?B?d1BvcndjUVVHSUExbXZhMTBPYXdMQlZjZUQyMStjVGJlT1NFVW5DRU8rU252?= =?utf-8?B?elExbmdVZkd2NVJEMzBhakc0eVNFNDF6SFZxbjcyMzRTd1FIN3FZaUJnS2ho?= =?utf-8?B?OUxieXhUSXdybkQwUlc1d3doYjBKNm1UVk4yWXdzRk9vY0h4Zis0cHpva3dC?= =?utf-8?B?enNMQmpiWUp2NHlCcTM2SUZkcnlqVmIxQzJYejQzcnFwb2dTRGtBMmhNTHh4?= =?utf-8?B?eXV0eExVcC9oUmU1dXBuWUlUcHBxWmdZNEpLazdncUo3SVRDeEtKUkdJbTJ4?= =?utf-8?B?RWVQTGJXWUVVRm1zTEJKZm5YWUs2OHhsb05kOGpSMXZUVTdUTHcxTGJESXJm?= =?utf-8?B?d0xsSXdFc3dxQ3hYcUFVbUx6QzR1RXVSTHRDTVE1cXRPbWF6OFlOaHNwZWdq?= =?utf-8?B?WVFWU3NMU3Y0ajFiK2FaS01ZR08ybGxkZG1oMkY4S1F3eVBUM0dWUEJ1UUdL?= =?utf-8?B?ek5iai9hT1E1ZllVbXJ0dlZxMHJQUnRVWVlNUEFtbmtJRjFIQ3MwOHFwQ0k1?= =?utf-8?B?V3JNcTJhaFJtYnNubUFRSzJQRzMrRHkzeWI3ZU5OSzJlcC83YWppSmFZN1pS?= =?utf-8?B?TTlidElqRWJRVlZrL0VJNFJ6dStMOHNRMkl6d2drSDFkQm14WVlJbUNQbjdw?= =?utf-8?B?cTB0TEd5K1hmRSsyenhTdWk4dWxsZlY1VkQvVWZBaVZpajEyaTh6WEV2b3RJ?= =?utf-8?B?eGZ4dkpoOUwzMDh1OFUzazRTelZ6ZzM1WXA5SktFdVUyQmI1K09tRlVZOHZz?= =?utf-8?B?RHJNSTlLNUVRSEo2TzhneG1YY0ZVZW5ES2hMbWt1eS9ZKzQwZjJDYUxDbnBl?= =?utf-8?B?Umd3THZaZGJqV0JjL3R6b3p4aCs0OTBaYzA1ODhBcHlVM0h3bElKUWlWcFBZ?= =?utf-8?B?WDBUcjFNT1BaVUhlMFlnWGZvWHBQL0xGVjgxUWpwaSs5Y2tkQ21TdEVKKy9L?= =?utf-8?B?Rk4vQm5vVXhqUW45ZVV2NWVMeVpXTzQ0RGdSUHJzSGVDM1gvYzIxYU1oaEUx?= =?utf-8?B?NDF0OGdzb3VJRFpDbHh4VVZkL0lBamVPdDRDQkxOZ2tHaHVOVWdvNVY2bm9P?= =?utf-8?B?MUhRaTBISkJEOGdSUDBMd3BrTVg3bFdFUm5UcmRvbjVXSE1QZnk0bzZuUUVK?= =?utf-8?B?bFNOZDI2MFdrbnQyMENvU0Q5LzBOUVIyL2lXV0x5UkhJazVVaW9qT2tXVGNG?= =?utf-8?B?NEo5KzQyc3BMUENHSEQ1MlNTckd2ckZzZkVpUUVnPT0=?= X-OriginatorOrg: jp.panasonic.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB6378.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98085a6b-0296-4301-3c61-08dbaeae4515 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Sep 2023 07:52:50.9546 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4863f5d6-4760-4589-be9c-42f82e075739 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wqo7/87Dne9G/w1iDuweJHlkSLmFlk0YEzEggOKBLLdchnrvQpsezQlle411uJN52B4E2Le7dDVyuDzOqxYjpTjDbn+67eAI1lp9dPA8ZAg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB7972 X-TM-AS-GCONF: 00 X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org SGkgRGF2aWQsDQoNCj4gQWx0ZXJuYXRpdmVseSwgZGlkIHlvdSBjb25zaWRlciB1c2luZyB0ZXN0 cG1kIHdpdGggdGhlIHZob3N0IHBtZCBpbnN0ZWFkID8NCg0KSSd2ZSB0cmllZCB0aGF0IGJlZm9y ZSwgYnV0IGFzIGZhciBhcyBJIGNhbiBzZWUgZnJvbSBuZXQvdmhvc3QvcnRlX2V0aF9ob3N0LmMg aXQgdXNlcyBydGVfdm9zdF9lbnF1ZXVlL2RlcXVldWVfYnVyc3QoKSB0byBiYXNpY2FsbHkgYWN0 IGFzIGEgbG9vcGJhY2sgZm9yIHRoZSBHdWVzdCBPUy4gSSB1c2U6DQoNCiQgc3VkbyBkcGRrLXRl c3RwbWQgLWwgMC0zIC1uIDQgLS12ZGV2ICduZXRfdGFwMCcgLS12ZGV2ICduZXRfdmhvc3QxLGlm YWNlPS90bXAvc29jazAsY2xpZW50PTEnIC0tIC1pDQoNCkJ1dCBpZiBJIGZlZWQgZGF0YSBpbiB1 c2luZyAidGNwcmVwbGF5IC1JIGR0YXAwIC4uLiIsICJzaG93IHBvcnQgc3RhdHMgYWxsIiBzaG93 cyBldmVyeXRoaW5nIGdvaW5nIGludG8gdGhlIFRBUCBidXQgbm90aGluZyBpcyBmb3J3YXJkIHRv IHZob3N0Lg0KDQpUaGFua3MsDQpLZW4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy b206IERhdmlkIE1hcmNoYW5kIDxkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tPiANClNlbnQ6IFdl ZG5lc2RheSwgU2VwdGVtYmVyIDYsIDIwMjMgMzowNyBQTQ0KVG86IE5pY29sc29uIEtlbiAo44OL 44Kz44Or44K944OzIOOCseODsykgPGtlbi5uaWNvbHNvbkBqcC5wYW5hc29uaWMuY29tPg0KQ2M6 IHVzZXJzQGRwZGsub3JnOyBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQu Y29tPjsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPg0KU3ViamVjdDogUmU6IElt cGxlbWVudGluZyBhIHNpbXBsZSBUQVAgUE1EIHRvIGRwZGstdmhvc3Qgc3RydWN0dXJlDQoNCkhl bGxvIEtlbiwNCg0KT24gV2VkLCBTZXAgNiwgMjAyMyBhdCAzOjU24oCvQU0gTmljb2xzb24gS2Vu ICjjg4vjgrPjg6vjgr3jg7Mg44Kx44OzKQ0KPGtlbi5uaWNvbHNvbkBqcC5wYW5hc29uaWMuY29t PiB3cm90ZToNCj4NCj4gSGkgYWxsLA0KPg0KPiBVc2luZyBkcGRrIDIyLjExLjIgb24gVWJ1bnR1 IDIyLjA0DQo+DQo+IEkgaGF2ZSBhIHJlYWxseSBzaW1wbGUgdXNlIGNhc2UsIGJ1dCBJIGNhbm5v dCBmaW5kIGhvdyB0byBpbXBsZW1lbnQgaXQuIEkndmUgc2V0IHVwIFFFTVUgd2l0aCBhbGwgdGhl IHJlcXVpcmVkIHZpcnRpbyBzdXBwb3J0LCBzbyBJIGp1c3QgbmVlZCB0byBjb25maWd1cmUgbXkg SG9zdCBPUy1zaWRlLiBJIHdhbnQgdG8gc2VuZCBkYXRhIGZyb20gYSBQQ0FQIGZpbGUgdmlhIHRj cHJlcGxheSBmcm9tIHRoZSBIb3N0IHRvIHRoZSBHdWVzdCwgc28gSSB1c2UgdGhpcyBjb21tYW5k IGxpbmU6DQo+DQo+ICQgc3VkbyAvaG9tZS9pbnRlZy9kcGRrLXN0YWJsZS0yMi4xMS4yL2J1aWxk L2V4YW1wbGVzL2RwZGstdmhvc3QgLWwgMC0zIC1uIDQgLS1zb2NrZXQtbWVtIDEwMjQgLS12ZGV2 ICduZXRfdGFwMCcgLS0gLS1zb2NrZXQtZmlsZSAvdG1wL3NvY2swIC0tY2xpZW50IC1wIDENCj4N Cj4gSG93ZXZlciwgdGhpcyBmYWlscyB3aXRoOg0KPg0KPiBFQUw6IERldGVjdGVkIENQVSBsY29y ZXM6IDIwDQo+IEVBTDogRGV0ZWN0ZWQgTlVNQSBub2RlczogMQ0KPiBFQUw6IERldGVjdGVkIHN0 YXRpYyBsaW5rYWdlIG9mIERQREsNCj4gRUFMOiBNdWx0aS1wcm9jZXNzIHNvY2tldCAvdmFyL3J1 bi9kcGRrL3J0ZS9tcF9zb2NrZXQNCj4gRUFMOiBTZWxlY3RlZCBJT1ZBIG1vZGUgJ1BBJw0KPiBW SE9TVF9QT1JUOiBGYWlsZWQgdG8gZ2V0IFZNRHEgaW5mby4NCj4gRUFMOiBFcnJvciAtIGV4aXRp bmcgd2l0aCBjb2RlOiAxDQo+ICAgQ2F1c2U6IENhbm5vdCBpbml0aWFsaXplIG5ldHdvcmsgcG9y dHMNCj4NCj4gVGhlIG9mZmVuZGluZyBjb2RlIGlzIGZyb20gZXhhbXBsZXMvdmhvc3QvbWFpbi5j Og0KPg0KPiAgICAgICAgIGlmIChkZXZfaW5mby5tYXhfdm1kcV9wb29scyA9PSAwKSB7DQo+ICAg ICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgVkhPU1RfUE9SVCwgIkZhaWxlZCB0byBnZXQgVk1E cSBpbmZvLlxuIik7DQo+ICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ICAgICAgICAgfQ0K Pg0KPiBUaGlzIGlzIGJlY2F1c2UgdGhlIFRBUCBQTUQgZG9lc24ndCBzdXBwb3J0IFZNRHEgcG9v bHMuDQo+DQo+IElzIHRoZXJlIGFuIGVhc3kgd2F5IHRvIGdldCB0aGlzIHRvIHdvcms/DQoNClRo aXMgc291bmRzIHN0cmFuZ2UgdG8gcmVxdWlyZSBWTURxIHN1cHBvcnQuLi4NCkNvcHlpbmcgTWF4 aW1lIGFuZCBDaGVuYm8gd2hvIHByb2JhYmx5IGtub3cgYmV0dGVyIGFib3V0IHRoaXMgZXhhbXBs ZSBjb2RlLg0KDQpBbHRlcm5hdGl2ZWx5LCBkaWQgeW91IGNvbnNpZGVyIHVzaW5nIHRlc3RwbWQg d2l0aCB0aGUgdmhvc3QgcG1kIGluc3RlYWQgPw0KDQoNCi0tIA0KRGF2aWQgTWFyY2hhbmQNCg0K