From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id DD589A00E6 for ; Thu, 21 Mar 2019 15:08:49 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4F5071B4E8; Thu, 21 Mar 2019 15:08:49 +0100 (CET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20042.outbound.protection.outlook.com [40.107.2.42]) by dpdk.org (Postfix) with ESMTP id 12EE31B4DD for ; Thu, 21 Mar 2019 15:08:48 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ohjnvh2+TucJlmSZ4T8IBbjcWao0JFhKxBdvujmyqIw=; b=picOqnMqass4xSCEJpdJu4GMrKrPdbcIK/6LBa025yqieEE0ZeELb+3gZMSDmFERSKzZSVPXdhAL0axCUWnzV6kQGMDYcnuGdQBFDH0F9uk5jx7KxnbQ6DdCQ8YNOVSPR8xt8OrIbQPX1yjSbecBbWcJ7xrDd2NSTR/FKQBwya0= Received: from AM4PR05MB3265.eurprd05.prod.outlook.com (10.171.188.154) by AM4PR05MB3122.eurprd05.prod.outlook.com (10.171.186.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1709.15; Thu, 21 Mar 2019 14:08:47 +0000 Received: from AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::11b0:de86:8d93:8b02]) by AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::11b0:de86:8d93:8b02%3]) with mapi id 15.20.1709.015; Thu, 21 Mar 2019 14:08:47 +0000 From: Slava Ovsiienko To: Shahaf Shuler , "dev@dpdk.org" Thread-Topic: [PATCH 13/14] net/mlx5: update event handler for multiport IB devices Thread-Index: AQHU39+9dk6NX9/9+0W9UKqVSHuVQ6YWHZKA Date: Thu, 21 Mar 2019 14:08:46 +0000 Message-ID: References: <1551376985-11096-1-git-send-email-viacheslavo@mellanox.com> <1553155888-27498-1-git-send-email-viacheslavo@mellanox.com> <1553155888-27498-14-git-send-email-viacheslavo@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; x-originating-ip: [95.67.35.250] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: be6762cf-ed35-4762-8e76-08d6ae06bc43 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM4PR05MB3122; x-ms-traffictypediagnostic: AM4PR05MB3122: x-microsoft-antispam-prvs: x-forefront-prvs: 0983EAD6B2 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(346002)(366004)(136003)(396003)(39860400002)(199004)(189003)(13464003)(305945005)(6116002)(74316002)(71200400001)(110136005)(71190400001)(256004)(53546011)(6506007)(33656002)(76176011)(3846002)(81156014)(68736007)(81166006)(14444005)(8676002)(478600001)(26005)(229853002)(102836004)(15650500001)(476003)(186003)(5660300002)(7736002)(6246003)(486006)(14454004)(2906002)(25786009)(66066001)(6436002)(2501003)(52536014)(106356001)(11346002)(55016002)(99286004)(446003)(93886005)(8936002)(7696005)(105586002)(316002)(86362001)(9686003)(53936002)(97736004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3122; H:AM4PR05MB3265.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: XS67w1RGM/ILq8dVFs2QEWrFU1dFnXnaEMbuS8jBMtSeBze1/hBl9XqJuPLh27OO/1+SZ2AVFpJAVsBbPwZCx7NDmOFDQXwh2nj98jD81TSRCI/R/zSiYaB1ez3yBZoTbwluxQ5nrbsmVsGhtkzhqbgNGcJdAZeUXKv3UbVXicAlzxzjlhu/JFOCwOGr3rXmd+0i6GUaTNNKT21qwNq1EGY7nz9SxuXGu7kwKxxjFzEb1+/4Im2pDhKU1yvhQqBwr8H3KZPHArdgJCwhHt4TGXmViujmsuNZWE5VAkR+rpJMMM7TRg2LQ65+/ieTjYcc7BgaUE8CgRvcmr+JFSeTj2rdjR16+XseQFigrf64NLDpphvb2kKm+1/uXlJ95923rL5NnYFQ950Xm4MsH9DWI5yqejITnJbYpDJ7Y3kxrxU= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: be6762cf-ed35-4762-8e76-08d6ae06bc43 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2019 14:08:46.9463 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3122 Subject: Re: [dpdk-dev] [PATCH 13/14] net/mlx5: update event handler for multiport IB devices X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Message-ID: <20190321140846.JPLAVdJO-DBaF7N1wY7BKSNyFk3ltZ_t3DZ5AnRvGu4@z> PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBTaGFoYWYgU2h1bGVyDQo+IFNl bnQ6IFRodXJzZGF5LCBNYXJjaCAyMSwgMjAxOSAxNDoxNQ0KPiBUbzogU2xhdmEgT3ZzaWllbmtv IDx2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20+OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUkU6 IFtQQVRDSCAxMy8xNF0gbmV0L21seDU6IHVwZGF0ZSBldmVudCBoYW5kbGVyIGZvciBtdWx0aXBv cnQgSUINCj4gZGV2aWNlcw0KPiANCj4gVGh1cnNkYXksIE1hcmNoIDIxLCAyMDE5IDEwOjExIEFN LCBWaWFjaGVzbGF2IE92c2lpZW5rbzoNCj4gPiBTdWJqZWN0OiBbUEFUQ0ggMTMvMTRdIG5ldC9t bHg1OiB1cGRhdGUgZXZlbnQgaGFuZGxlciBmb3IgbXVsdGlwb3J0IElCDQo+ID4gZGV2aWNlcw0K PiA+DQo+ID4gVGhpcyBwYXRjaCBtb2RpZmllcyBhc3luY2hyb25vdXMgZXZlbnQgaGFuZGxlciB0 byBzdXBwb3J0IG11bHRpcG9ydA0KPiA+IEluZmluaWJhbmQgZGV2aWNlcy4gSGFuZGxlciBxdWVy aWVzIHRoZSBldmVudCBwYXJhbWV0ZXJzLCBpbmNsdWRpbmcNCj4gPiBldmVudCBzb3VyY2UgcG9y dCBpbmRleCwgYW5kIGludm9rZXMgdGhlIGhhbmRsZXIgZm9yIHNwZWNpZmljIGRldmljZXMNCj4g PiB3aXRoIGFwcHJvcHJpYXRlIHBvcnRfaWQuDQo+IA0KPiBUaGlzIGNvbW1pdCBzaG91bGQgYmUg YWxvbmcgdy8gdGhlIHByZXZpb3VzIG9uZSwgc2luY2UgaW50ZXJydXB0cyB3aWxsIG5vdA0KPiB3 b3JrIGFmdGVyIGNvbW1pdCAjMTIgaW4gdGhpcyBzZXJpZXMuDQoNCkl0IHdhcyDwn5iKDQpJIHRy aWVkIGZpcnN0IHRvIGRvIHRoZXNlIHBhcnRzIGluIHNpbmdsZSBjb21taXQuIEJ1dCB0aGUgcmVz dWx0aW5nIGRpZmYgbG9va2VkDQphcyB2ZXJ5IHdlaXJkIHRoaW5nIC0gaXQgaW50ZXJtaXhlZCB0 aGUgaGFuZGxlciBhbmQgaW5zdGFsbC91bmluc3RhbGwNCnJvdXRpbmVzLiBTbywgaXQgd2FzIGlu dGVudGlvbmFsbHkgIHNwbGl0dGVkIGluIHR3byBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5Lg0KTm9u ZXRoZWxlc3MsIGlmIHlvdSBpbnNpc3QgLSB0aGUgaXMgbm8gYW55IHByb2JsZW0gdG8gc3F1YXNo IHRoZXNlIG9uZXMuDQpQbGVhc2UsIGxldCBtZSBrbm93Lg0KDQo+IA0KPiA+DQo+ID4gU2lnbmVk LW9mZi1ieTogVmlhY2hlc2xhdiBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbT4N Cj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jIHwgMTAxDQo+ID4g KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tDQo+ID4gLS0tLS0tLS0NCj4gPiAgMSBm aWxlIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9ldGhkZXYuYw0KPiA+IGIvZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jIGluZGV4IDgzNThjZDIuLjcxMGU2YjUgMTAwNjQ0DQo+ ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jDQo+ID4gKysrIGIvZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2V0aGRldi5jDQo+ID4gQEAgLTEwMzIsNjYgKzEwMzIsNjcgQEAgaW50 IG1seDVfZndfdmVyc2lvbl9nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ID4gKmRldiwgY2hhciAq ZndfdmVyLCBzaXplX3QgZndfc2l6ZSkgIH0NCj4gPg0KPiA+ICAvKioNCj4gPiAtICogRGV2aWNl IHN0YXR1cyBoYW5kbGVyLg0KPiA+ICsgKiBIYW5kbGUgc2hhcmVkIGFzeW5jaHJvbm91cyBldmVu dHMgdGhlIE5JQyAocmVtb3ZhbCBldmVudA0KPiA+ICsgKiBhbmQgbGluayBzdGF0dXMgY2hhbmdl KS4gU3VwcG9ydHMgbXVsdGlwb3J0IElCIGRldmljZS4NCj4gPiAgICoNCj4gPiAtICogQHBhcmFt IGRldg0KPiA+IC0gKiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlLg0KPiA+IC0gKiBAcGFy YW0gZXZlbnRzDQo+ID4gLSAqICAgUG9pbnRlciB0byBldmVudCBmbGFncyBob2xkZXIuDQo+ID4g LSAqDQo+ID4gLSAqIEByZXR1cm4NCj4gPiAtICogICBFdmVudHMgYml0bWFwIG9mIGNhbGxiYWNr IHByb2Nlc3Mgd2hpY2ggY2FuIGJlIGNhbGxlZCBpbW1lZGlhdGVseS4NCj4gPiArICogQHBhcmFt IGNiX2FyZw0KPiA+ICsgKiAgIENhbGxiYWNrIGFyZ3VtZW50Lg0KPiA+ICAgKi8NCj4gPiAtc3Rh dGljIHVpbnQzMl90DQo+ID4gLW1seDVfZGV2X3N0YXR1c19oYW5kbGVyKHN0cnVjdCBydGVfZXRo X2RldiAqZGV2KQ0KPiA+ICt2b2lkDQo+ID4gK21seDVfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZv aWQgKmNiX2FyZykNCj4gPiAgew0KPiA+IC0Jc3RydWN0IG1seDVfcHJpdiAqcHJpdiA9IGRldi0+ ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgbWx4NV9pYnZfc2hhcmVkICpzaCA9IGNi X2FyZzsNCj4gPiAgCXN0cnVjdCBpYnZfYXN5bmNfZXZlbnQgZXZlbnQ7DQo+ID4gLQl1aW50MzJf dCByZXQgPSAwOw0KPiA+DQo+ID4gLQlpZiAobWx4NV9saW5rX3VwZGF0ZShkZXYsIDApID09IC1F QUdBSU4pIHsNCj4gPiAtCQl1c2xlZXAoMCk7DQo+ID4gLQkJcmV0dXJuIDA7DQo+ID4gLQl9DQo+ ID4gLQkvKiBSZWFkIGFsbCBtZXNzYWdlIGFuZCBhY2tub3dsZWRnZSB0aGVtLiAqLw0KPiA+ICsJ LyogUmVhZCBhbGwgbWVzc2FnZSBmcm9tIHRoZSBJQiBkZXZpY2UgYW5kIGFja25vd2xlZGdlIHRo ZW0uICovDQo+ID4gIAlmb3IgKDs7KSB7DQo+ID4gLQkJaWYgKG1seDVfZ2x1ZS0+Z2V0X2FzeW5j X2V2ZW50KHByaXYtPnNoLT5jdHgsICZldmVudCkpDQo+ID4gKwkJc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXY7DQo+ID4gKwkJdWludDMyX3QgdG1wOw0KPiA+ICsNCj4gPiArCQlpZiAobWx4NV9nbHVl LT5nZXRfYXN5bmNfZXZlbnQoc2gtPmN0eCwgJmV2ZW50KSkNCj4gPiAgCQkJYnJlYWs7DQo+ID4g KwkJLyogUmV0cmlldmUgYW5kIGNoZWNrIElCIHBvcnQgaW5kZXguICovDQo+ID4gKwkJdG1wID0g KHVpbnQzMl90KWV2ZW50LmVsZW1lbnQucG9ydF9udW07DQo+ID4gKwkJYXNzZXJ0KHRtcCAmJiAo dG1wIDw9IHNoLT5tYXhfcG9ydCkpOw0KPiA+ICsJCWlmICghdG1wIHx8DQo+ID4gKwkJICAgIHRt cCA+IHNoLT5tYXhfcG9ydCB8fA0KPiA+ICsJCSAgICBzaC0+cG9ydFt0bXAgLSAxXS5wb3J0X2lk ID49IFJURV9NQVhfRVRIUE9SVFMpIHsNCj4gPiArCQkJLyoNCj4gPiArCQkJICogSW52YWxpZCBJ QiBwb3J0IGluZGV4IG9yIG5vIGhhbmRsZXINCj4gPiArCQkJICogaW5zdGFsbGVkIGZvciB0aGlz IHBvcnQuDQo+ID4gKwkJCSAqLw0KPiA+ICsJCQltbHg1X2dsdWUtPmFja19hc3luY19ldmVudCgm ZXZlbnQpOw0KPiA+ICsJCQljb250aW51ZTsNCj4gPiArCQl9DQo+ID4gKwkJLyogUmV0cmlldmUg ZXRoZXJuZXQgZGV2aWNlIGRlc2NyaXB0b3IuICovDQo+ID4gKwkJdG1wID0gc2gtPnBvcnRbdG1w IC0gMV0ucG9ydF9pZDsNCj4gPiArCQlkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3RtcF07DQo+IA0K PiBJcyB0aGVyZSBhIGd1YXJhbnRlZSB0aGF0IHRoZSByZXByZXNlbnRvcnMgZXRoZWRldiBpbmRl eGVzIHdpbGwgYmUNCj4gY29udGlndW91cz8NCk5vIGFueS4gQW5kIG5vIGFzc3VtcHRpb25zIG9m IHN1Y2gga2luZCB3ZXJlIG1hZGUgZHVyaW5nIGRldmVsb3BtZW50Lg0KDQo+IEkgdGhpbmsgd2Ug bmVlZCBhIG1hcHBpbmcgYmV0d2VlbiBpYmRldiBwb3J0IGFuZCBldGhlZHYgaW5kZXguDQpZZXMs IGl0IGlzIGV4YWN0bHkgZG9uZS4gQXJyYXkgY29udGFpbnMgdGhlIERQREsgcG9ydF9pZHMsIGFy cmF5IGluZGV4IGlzIGlidl9wb3J0Lg0KDQo+IA0KPiA+ICsJCXRtcCA9IDA7DQo+ID4gKwkJYXNz ZXJ0KGRldik7DQo+ID4gIAkJaWYgKChldmVudC5ldmVudF90eXBlID09IElCVl9FVkVOVF9QT1JU X0FDVElWRSB8fA0KPiA+IC0JCQlldmVudC5ldmVudF90eXBlID09IElCVl9FVkVOVF9QT1JUX0VS UikgJiYNCj4gPiAtCQkJKGRldi0+ZGF0YS0+ZGV2X2NvbmYuaW50cl9jb25mLmxzYyA9PSAxKSkN Cj4gPiAtCQkJcmV0IHw9ICgxIDw8IFJURV9FVEhfRVZFTlRfSU5UUl9MU0MpOw0KPiA+IC0JCWVs c2UgaWYgKGV2ZW50LmV2ZW50X3R5cGUgPT0gSUJWX0VWRU5UX0RFVklDRV9GQVRBTCAmJg0KPiA+ IC0JCQlkZXYtPmRhdGEtPmRldl9jb25mLmludHJfY29uZi5ybXYgPT0gMSkNCj4gPiAtCQkJcmV0 IHw9ICgxIDw8IFJURV9FVEhfRVZFTlRfSU5UUl9STVYpOw0KPiA+IC0JCWVsc2UNCj4gPiAtCQkJ RFJWX0xPRyhERUJVRywNCj4gPiAtCQkJCSJwb3J0ICV1IGV2ZW50IHR5cGUgJWQgb24gbm90IGhh bmRsZWQiLA0KPiA+IC0JCQkJZGV2LT5kYXRhLT5wb3J0X2lkLCBldmVudC5ldmVudF90eXBlKTsN Cj4gPiArCQkgICAgIGV2ZW50LmV2ZW50X3R5cGUgPT0gSUJWX0VWRU5UX1BPUlRfRVJSKSAmJg0K PiA+ICsJCQlkZXYtPmRhdGEtPmRldl9jb25mLmludHJfY29uZi5sc2MpIHsNCj4gPiArCQkJbWx4 NV9nbHVlLT5hY2tfYXN5bmNfZXZlbnQoJmV2ZW50KTsNCj4gPiArCQkJaWYgKG1seDVfbGlua191 cGRhdGUoZGV2LCAwKSA9PSAtRUFHQUlOKSB7DQo+ID4gKwkJCQl1c2xlZXAoMCk7DQo+ID4gKwkJ CQljb250aW51ZTsNCj4gPiArCQkJfQ0KPiA+ICsJCQlfcnRlX2V0aF9kZXZfY2FsbGJhY2tfcHJv Y2Vzcw0KPiA+ICsJCQkJKGRldiwgUlRFX0VUSF9FVkVOVF9JTlRSX0xTQywgTlVMTCk7DQo+ID4g KwkJCWNvbnRpbnVlOw0KPiA+ICsJCX0NCj4gPiArCQlpZiAoZXZlbnQuZXZlbnRfdHlwZSA9PSBJ QlZfRVZFTlRfREVWSUNFX0ZBVEFMICYmDQo+ID4gKwkJICAgIGRldi0+ZGF0YS0+ZGV2X2NvbmYu aW50cl9jb25mLnJtdikgew0KPiA+ICsJCQltbHg1X2dsdWUtPmFja19hc3luY19ldmVudCgmZXZl bnQpOw0KPiA+ICsJCQlfcnRlX2V0aF9kZXZfY2FsbGJhY2tfcHJvY2Vzcw0KPiA+ICsJCQkJKGRl diwgUlRFX0VUSF9FVkVOVF9JTlRSX1JNViwgTlVMTCk7DQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ ICsJCX0NCj4gPiArCQlEUlZfTE9HKERFQlVHLA0KPiA+ICsJCQkicG9ydCAldSBldmVudCB0eXBl ICVkIG9uIG5vdCBoYW5kbGVkIiwNCj4gPiArCQkJZGV2LT5kYXRhLT5wb3J0X2lkLCBldmVudC5l dmVudF90eXBlKTsNCj4gPiAgCQltbHg1X2dsdWUtPmFja19hc3luY19ldmVudCgmZXZlbnQpOw0K PiA+ICAJfQ0KPiA+IC0JcmV0dXJuIHJldDsNCj4gPiAtfQ0KPiA+IC0NCj4gPiAtLyoqDQo+ID4g LSAqIEhhbmRsZSBpbnRlcnJ1cHRzIGZyb20gdGhlIE5JQy4NCj4gPiAtICoNCj4gPiAtICogQHBh cmFtW2luXSBpbnRyX2hhbmRsZQ0KPiA+IC0gKiAgIEludGVycnVwdCBoYW5kbGVyLg0KPiA+IC0g KiBAcGFyYW0gY2JfYXJnDQo+ID4gLSAqICAgQ2FsbGJhY2sgYXJndW1lbnQuDQo+ID4gLSAqLw0K PiA+IC12b2lkDQo+ID4gLW1seDVfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2FyZykg LXsNCj4gPiAtCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gY2JfYXJnOw0KPiA+IC0JdWludDMy X3QgZXZlbnRzOw0KPiA+IC0NCj4gPiAtCWV2ZW50cyA9IG1seDVfZGV2X3N0YXR1c19oYW5kbGVy KGRldik7DQo+ID4gLQlpZiAoZXZlbnRzICYgKDEgPDwgUlRFX0VUSF9FVkVOVF9JTlRSX0xTQykp DQo+ID4gLQkJX3J0ZV9ldGhfZGV2X2NhbGxiYWNrX3Byb2Nlc3MoZGV2LA0KPiA+IFJURV9FVEhf RVZFTlRfSU5UUl9MU0MsIE5VTEwpOw0KPiA+IC0JaWYgKGV2ZW50cyAmICgxIDw8IFJURV9FVEhf RVZFTlRfSU5UUl9STVYpKQ0KPiA+IC0JCV9ydGVfZXRoX2Rldl9jYWxsYmFja19wcm9jZXNzKGRl diwNCj4gPiBSVEVfRVRIX0VWRU5UX0lOVFJfUk1WLCBOVUxMKTsNCj4gPiAgfQ0KPiA+DQo+ID4g IC8qKg0KPiA+IC0tDQo+ID4gMS44LjMuMQ0KDQo=