From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50044.outbound.protection.outlook.com [40.107.5.44]) by dpdk.org (Postfix) with ESMTP id 7350B4CB5 for ; Thu, 27 Dec 2018 10:02:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m0OL9y6RtgngLzT/Sxvvj8vVdN/vgPXyQwUOZf5/eLs=; b=iLLDcH2gh9eLM4QvQYTwItetUgUHslr3QUI1Pi7fs/KmL1JjtSF+VebFy+mbVVuT/sQ36seoJLZNA0F6hqRFwU+BaUGfRGFAAWPj+AO/9rQsREDp9iAGLyadKScGxFVNUz3TC3XNOXkx5O1VsCHNI2lrBqYzkAID688BSuCMoWM= Received: from VI1PR08MB3167.eurprd08.prod.outlook.com (52.133.15.142) by VI1PR08MB2782.eurprd08.prod.outlook.com (10.170.236.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.23; Thu, 27 Dec 2018 09:02:43 +0000 Received: from VI1PR08MB3167.eurprd08.prod.outlook.com ([fe80::b5a5:e179:34f1:7d21]) by VI1PR08MB3167.eurprd08.prod.outlook.com ([fe80::b5a5:e179:34f1:7d21%5]) with mapi id 15.20.1471.019; Thu, 27 Dec 2018 09:02:43 +0000 From: "Gavin Hu (Arm Technology China)" To: Jerin Jacob Kollanukkaran , "dev@dpdk.org" CC: "david.marchand@redhat.com" , "chaozhu@linux.vnet.ibm.com" , nd , "bruce.richardson@intel.com" , "thomas@monjalon.net" , "hemant.agrawal@nxp.com" , "stephen@networkplumber.org" , Honnappa Nagarahalli , nd Thread-Topic: [EXT] [PATCH v3 5/6] spinlock: reimplement with atomic one-way barrier builtins Thread-Index: AQHUnZqmauMG1KJkikm39gJVL/H8jqWSNDCAgAAMCmA= Date: Thu, 27 Dec 2018 09:02:42 +0000 Message-ID: References: <20181227041349.3058-1-gavin.hu@arm.com> <20181227041349.3058-6-gavin.hu@arm.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=Gavin.Hu@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR08MB2782; 6:jqDMmDP+3B2XWonon2axlvQjLcAARSrYHMTH/Y42weLRYGgbk+SEuUJIMSla1pgbe8sTpjog/Jek9DdbmF1z/A8XCvXIw4Gq31saPWRzc1RpP24lX1KNzKPz8rID0rQkIgI5KaUmc1FL0SVVlALrNTojtZoKTnnwdCHe/F8dQK8Xrz2AEi6XO6kPJOReYaOty8knXxtWpFI2hUbDmXy3sBh0wBcdOGnLP8iDjfQ8iU0bfG8Uu2hnDVpI2+1Bs2bckq+fa560AwQuXcyTiW0XEf/8qh23ECNRePOKg1qZr0GQUqDg+Grf87SYcUoy9FyOp29Gs0u4VLt8Nz0ug/GCs5cwTdcf7s0DA4vhlOL931CJT21/RCL65XGeKC0FoR5C8vjaUVwqpyuVzrNW7JuX23hPXWEX+4wQ2wYwTCZWjmoAtENXkdXYBHT3jcRKSdSwzYCOeA0qxTymZj+kwA++Dg==; 5:H4njeqAOQfkT3E7ZinpoLCnkPNkXhfdVuAEvPRELUcbt1JuffHEfk2A7JOpseLnAnVFrWxMRe/lPwjbU99QGrx9sRIL8OEew5rr0Mz75AJzQRzSNG93wcfZwCSov/I4bUo4XCZdSVSkv858UXsYVETRkX89IYhDMvu998FmRDNk=; 7:0W1qRhfbrKr+zusp6ONHQIf3nfc3JPYHhd6cKtMXYnYCuAwNsgLvjAHWp20qfGEqbayvyjxvQqSCZSBSHHweDasYZmLDlvb7O6Ydf4H52zD1LwemA5ExmS8FaSXygOjI1BGCcy2D5OkirswSDVuD+g== x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: 3b3ed3b2-2c62-4a86-765b-08d66bda0fc2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR08MB2782; x-ms-traffictypediagnostic: VI1PR08MB2782: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(2401047)(8121501046)(93006095)(93001095)(10201501046)(3231475)(944501520)(52105112)(3002001)(6055026)(6041310)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:VI1PR08MB2782; BCL:0; PCL:0; RULEID:; SRVR:VI1PR08MB2782; x-forefront-prvs: 0899B47777 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(376002)(136003)(396003)(39850400004)(366004)(52314003)(13464003)(199004)(189003)(446003)(478600001)(72206003)(97736004)(11346002)(4001150100001)(316002)(2906002)(305945005)(6246003)(256004)(476003)(14444005)(5660300001)(86362001)(14454004)(33656002)(71190400001)(71200400001)(25786009)(486006)(6436002)(26005)(81166006)(102836004)(186003)(54906003)(110136005)(55236004)(8676002)(81156014)(53546011)(6506007)(6116002)(2501003)(229853002)(55016002)(3846002)(7736002)(76176011)(106356001)(105586002)(74316002)(8936002)(9686003)(66066001)(4326008)(99286004)(68736007)(53936002)(7696005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB2782; H:VI1PR08MB3167.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: pQPZitqXppyvCBXszHmLGzM05Hvvqw8mn4wnTQdG0sOMxEWoNfADGBXNji8gs8EsyvbdgKbAiBrQR4mGd2Ovb91fuoYP+xqVy0b1+CMbeXegmronKNIPWhGt68uzH5KotjX/8jt4rwv8Lz4DJG5RkfbN8yJGl7LIZyVyf//BGa2oTVL6lkdUsXym09ZA63fCXRrFoNS14t1qhtCntvkrsOqZdyU4Y4KEpVupkwsLruTIu1TndXSDbAS5EjHtxYcR5vooAqmnUzMCkWUirGcj498bPdTNcU830yN2kKQdgbNVHmaUBkqNQoq/RSDSGQDX spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b3ed3b2-2c62-4a86-765b-08d66bda0fc2 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Dec 2018 09:02:42.9157 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2782 Subject: Re: [dpdk-dev] [EXT] [PATCH v3 5/6] spinlock: reimplement with atomic one-way barrier builtins 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: , X-List-Received-Date: Thu, 27 Dec 2018 09:02:46 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4gSmFjb2IgS29s bGFudWtrYXJhbiA8amVyaW5qQG1hcnZlbGwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgRGVjZW1i ZXIgMjcsIDIwMTggMzo0MiBQTQ0KPiBUbzogR2F2aW4gSHUgKEFybSBUZWNobm9sb2d5IENoaW5h KSA8R2F2aW4uSHVAYXJtLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogZGF2aWQubWFyY2hhbmRA cmVkaGF0LmNvbTsgY2hhb3podUBsaW51eC52bmV0LmlibS5jb207IG5kDQo+IDxuZEBhcm0uY29t PjsgYnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb207IHRob21hc0Btb25qYWxvbi5uZXQ7DQo+IGhl bWFudC5hZ3Jhd2FsQG54cC5jb207IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBIb25uYXBw YQ0KPiBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gU3ViamVj dDogUmU6IFtFWFRdIFtQQVRDSCB2MyA1LzZdIHNwaW5sb2NrOiByZWltcGxlbWVudCB3aXRoIGF0 b21pYyBvbmUtd2F5DQo+IGJhcnJpZXIgYnVpbHRpbnMNCj4gDQo+IE9uIFRodSwgMjAxOC0xMi0y NyBhdCAxMjoxMyArMDgwMCwgR2F2aW4gSHUgd3JvdGU6DQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAtLS0N Cj4gPiBUaGUgX19zeW5jIGJ1aWx0aW4gYmFzZWQgaW1wbGVtZW50YXRpb24gZ2VuZXJhdGVzIGZ1 bGwgbWVtb3J5DQo+ID4gYmFycmllcnMNCj4gPiAoJ2RtYiBpc2gnKSBvbiBBcm0gcGxhdGZvcm1z LiBVc2luZyBDMTEgYXRvbWljIGJ1aWx0aW5zIHRvIGdlbmVyYXRlDQo+ID4gb25lIHdheQ0KPiA+ IGJhcnJpZXJzLg0KPiA+DQo+ID4gSGVyZSBpcyB0aGUgYXNzZW1ibHkgY29kZSBvZiBfX3N5bmNf Y29tcGFyZV9hbmRfc3dhcCBidWlsdGluLg0KPiA+IF9fc3luY19ib29sX2NvbXBhcmVfYW5kX3N3 YXAoZHN0LCBleHAsIHNyYyk7DQo+ID4gICAgMHgwMDAwMDAwMDAwOTBmMWIwIDwrMTY+OiAgICBl MCAwNyA0MCBmOSBsZHIgeDAsIFtzcCwgIzhdDQo+ID4gICAgMHgwMDAwMDAwMDAwOTBmMWI0IDwr MjA+OiAgICBlMSAwZiA0MCA3OSBsZHJoICAgIHcxLCBbc3AsICM2XQ0KPiA+ICAgIDB4MDAwMDAw MDAwMDkwZjFiOCA8KzI0PjogICAgZTIgMGIgNDAgNzkgbGRyaCAgICB3MiwgW3NwLCAjNF0NCj4g PiAgICAweDAwMDAwMDAwMDA5MGYxYmMgPCsyOD46ICAgIDIxIDNjIDAwIDEyIGFuZCB3MSwgdzEs ICMweGZmZmYNCj4gPiAgICAweDAwMDAwMDAwMDA5MGYxYzAgPCszMj46ICAgIDAzIDdjIDVmIDQ4 IGxkeHJoICAgdzMsIFt4MF0NCj4gPiAgICAweDAwMDAwMDAwMDA5MGYxYzQgPCszNj46ICAgIDdm IDAwIDAxIDZiIGNtcCB3MywgdzENCj4gPiAgICAweDAwMDAwMDAwMDA5MGYxYzggPCs0MD46ICAg IDYxIDAwIDAwIDU0IGIubmUgICAgMHg5MGYxZDQNCj4gPiA8cnRlX2F0b21pYzE2X2NtcHNldCs1 Mj4gIC8vIGIuYW55DQo+ID4gICAgMHgwMDAwMDAwMDAwOTBmMWNjIDwrNDQ+OiAgICAwMiBmYyAw NCA0OCBzdGx4cmggIHc0LCB3MiwgW3gwXQ0KPiA+ICAgIDB4MDAwMDAwMDAwMDkwZjFkMCA8KzQ4 PjogICAgODQgZmYgZmYgMzUgY2JueiAgICB3NCwgMHg5MGYxYzANCj4gPiA8cnRlX2F0b21pYzE2 X2NtcHNldCszMj4NCj4gPiAgICAweDAwMDAwMDAwMDA5MGYxZDQgPCs1Mj46ICAgIGJmIDNiIDAz IGQ1IGRtYiBpc2gNCj4gPiAgICAweDAwMDAwMDAwMDA5MGYxZDggPCs1Nj46ICAgIGUwIDE3IDlm IDFhIGNzZXQgICAgdzAsIGVxICAvLyBlcSA9DQo+ID4gbm9uZQ0KPiA+DQo+ID4gVGhlIGJlbmNo bWFya2luZyByZXN1bHRzIHNob3dlZCAzWCBwZXJmb3JtYW5jZSBnYWluIG9uIENhdml1bQ0KPiA+ IFRodW5kZXJYMiBhbmQNCj4gPiAxMyUgb24gUXVhbGNvbW0gRmFsbW9uIGFuZCAzLjclIG9uIDQt QTcyIE1hcnZlbGwgbWFjY2hpYXRvYmluLg0KPiA+IEhlcmUgaXMgdGhlIGV4YW1wbGUgdGVzdCBy ZXN1bHQgb24gVFgyOg0KPiA+DQo+ID4gKioqIHNwaW5sb2NrX2F1dG90ZXN0IHdpdGhvdXQgdGhp cyBwYXRjaCAqKioNCj4gPiBDb3JlIFsxMjNdIENvc3QgVGltZSA9IDYzOTgyMiB1cw0KPiA+IENv cmUgWzEyNF0gQ29zdCBUaW1lID0gNjMzMjUzIHVzDQo+ID4gQ29yZSBbMTI1XSBDb3N0IFRpbWUg PSA2NDYwMzAgdXMNCj4gPiBDb3JlIFsxMjZdIENvc3QgVGltZSA9IDY0MzE4OSB1cw0KPiA+IENv cmUgWzEyN10gQ29zdCBUaW1lID0gNjQ3MDM5IHVzDQo+ID4gVG90YWwgQ29zdCBUaW1lID0gOTU0 MzMyOTggdXMNCj4gPg0KPiA+ICoqKiBzcGlubG9ja19hdXRvdGVzdCB3aXRoIHRoaXMgcGF0Y2gg KioqDQo+ID4gQ29yZSBbMTIzXSBDb3N0IFRpbWUgPSAxNjM2MTUgdXMNCj4gPiBDb3JlIFsxMjRd IENvc3QgVGltZSA9IDE2NjQ3MSB1cw0KPiA+IENvcmUgWzEyNV0gQ29zdCBUaW1lID0gMTg5MDQ0 IHVzDQo+ID4gQ29yZSBbMTI2XSBDb3N0IFRpbWUgPSAxOTU3NDUgdXMNCj4gPiBDb3JlIFsxMjdd IENvc3QgVGltZSA9IDc4NDIzIHVzDQo+ID4gVG90YWwgQ29zdCBUaW1lID0gMjczMzk2NTYgdXMN Cj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEdhdmluIEh1IDxnYXZpbi5odUBhcm0uY29tPg0KPiA+ IFJldmlld2VkLWJ5OiBQaGlsIFlhbmcgPHBoaWwueWFuZ0Bhcm0uY29tPg0KPiA+IFJldmlld2Vk LWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT4N Cj4gPiBSZXZpZXdlZC1ieTogT2xhIExpbGplZGFobCA8T2xhLkxpbGplZGFobEBhcm0uY29tPg0K PiA+IFJldmlld2VkLWJ5OiBTdGV2ZSBDYXBwZXIgPFN0ZXZlLkNhcHBlckBhcm0uY29tPg0KPiA+ IC0tLQ0KPiA+ICBsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9zcGlu bG9jay5oIHwgMTgNCj4gPiArKysrKysrKysrKysrLS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQs IDEzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEv bGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2VuZXJpYy9ydGVfc3BpbmxvY2suaA0KPiA+ IGIvbGliL2xpYnJ0ZV9lYWwvY29tbW9uL2luY2x1ZGUvZ2VuZXJpYy9ydGVfc3BpbmxvY2suaA0K PiA+IGluZGV4IGM0YzNmYzMxZS4uODdhZTdhNGYxIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJy dGVfZWFsL2NvbW1vbi9pbmNsdWRlL2dlbmVyaWMvcnRlX3NwaW5sb2NrLmgNCj4gPiArKysgYi9s aWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9nZW5lcmljL3J0ZV9zcGlubG9jay5oDQo+ID4g QEAgLTYxLDkgKzYxLDE0IEBAIHJ0ZV9zcGlubG9ja19sb2NrKHJ0ZV9zcGlubG9ja190ICpzbCk7 DQo+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiA+ICBydGVfc3BpbmxvY2tfbG9jayhydGVfc3Bp bmxvY2tfdCAqc2wpDQo+ID4gIHsNCj4gPiAtCXdoaWxlIChfX3N5bmNfbG9ja190ZXN0X2FuZF9z ZXQoJnNsLT5sb2NrZWQsIDEpKQ0KPiA+IC0JCXdoaWxlKHNsLT5sb2NrZWQpDQo+ID4gKwlpbnQg ZXhwID0gMDsNCj4gPiArDQo+ID4gKwl3aGlsZSAoIV9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vf bigmc2wtPmxvY2tlZCwgJmV4cCwgMSwgMCwNCj4gPiArCQkJCV9fQVRPTUlDX0FDUVVJUkUsIF9f QVRPTUlDX1JFTEFYRUQpKQ0KPiB7DQo+IA0KPiBIb3cgYWJvdXQgcmVtb3ZlIGV4cGxpY3QgZXhw ID0gMCBhbmQgY2hhbmdlIHRvDQo+IF9fYXRvbWljX3Rlc3RfYW5kX3NldChmbGFnLCBfX0FUT01J Q19BQ1FVSVJFKTsNCj4gDQo+IGkuZQ0KPiB3aGlsZSAoX2F0b21pY190ZXN0X2FuZF9zZXQoZmxh ZywgX19BVE9NSUNfQUNRVUlSRSkpDQo+IA0KV2lsbCBkbyBpdCBpbiB2NC4NCj4gDQo+ID4gKwkJ d2hpbGUgKF9fYXRvbWljX2xvYWRfbigmc2wtPmxvY2tlZCwgX19BVE9NSUNfUkVMQVhFRCkpDQo+ ID4gIAkJCXJ0ZV9wYXVzZSgpOw0KPiA+ICsJCWV4cCA9IDA7DQo+IA0KPiBXZSBjYW4gcmVtb3Zl IGV4cCA9IDAgd2l0aCBhYm92ZSBzY2hlbWUuDQo+IA0KPiA+ICsJfQ0KPiA+ICB9DQo+ID4gICNl bmRpZg0KPiA+DQo+ID4gQEAgLTgwLDcgKzg1LDcgQEAgcnRlX3NwaW5sb2NrX3VubG9jayAocnRl X3NwaW5sb2NrX3QgKnNsKTsNCj4gPiAgc3RhdGljIGlubGluZSB2b2lkDQo+ID4gIHJ0ZV9zcGlu bG9ja191bmxvY2sgKHJ0ZV9zcGlubG9ja190ICpzbCkNCj4gPiAgew0KPiA+IC0JX19zeW5jX2xv Y2tfcmVsZWFzZSgmc2wtPmxvY2tlZCk7DQo+ID4gKwlfX2F0b21pY19zdG9yZV9uKCZzbC0+bG9j a2VkLCAwLCBfX0FUT01JQ19SRUxFQVNFKTsNCj4gIH0NCj4gPiAgI2VuZGlmDQo+ID4NCj4gPiBA QCAtOTksNyArMTA0LDEwIEBAIHJ0ZV9zcGlubG9ja190cnlsb2NrIChydGVfc3BpbmxvY2tfdCAq c2wpOw0KPiA+ICBzdGF0aWMgaW5saW5lIGludA0KPiA+ICBydGVfc3BpbmxvY2tfdHJ5bG9jayAo cnRlX3NwaW5sb2NrX3QgKnNsKQ0KPiA+ICB7DQo+ID4gLQlyZXR1cm4gX19zeW5jX2xvY2tfdGVz dF9hbmRfc2V0KCZzbC0+bG9ja2VkLDEpID09IDA7DQo+ID4gKwlpbnQgZXhwID0gMDsNCj4gPiAr CXJldHVybiBfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX24oJnNsLT5sb2NrZWQsICZleHAsIDEs DQo+ID4gKwkJCQkwLCAvKiBkaXNhbGxvdyBzcHVyaW91cyBmYWlsdXJlICovDQo+ID4gKwkJCQlf X0FUT01JQ19BQ1FVSVJFLCBfX0FUT01JQ19SRUxBWEVEKTsNCj4gDQo+IEhlcmUgdG8gcmVtb3Zl IGV4cGxpY2l0IGV4cC4NCj4gDQo+IHJldHVybiAoX19hdG9taWNfdGVzdF9hbmRfc2V0KGZsYWcs IF9fQVRPTUlDX0FDUVVJUkUpID09IDApDQoNCldpbGwgZG8gaXQgaW4gdjQuDQoNCj4gPiAgfQ0K PiA+ICAjZW5kaWYNCj4gPg0KPiA+IEBAIC0xMTMsNyArMTIxLDcgQEAgcnRlX3NwaW5sb2NrX3Ry eWxvY2sgKHJ0ZV9zcGlubG9ja190ICpzbCkNCj4gPiAgICovDQo+ID4gIHN0YXRpYyBpbmxpbmUg aW50IHJ0ZV9zcGlubG9ja19pc19sb2NrZWQgKHJ0ZV9zcGlubG9ja190ICpzbCkNCj4gPiAgew0K PiA+IC0JcmV0dXJuIHNsLT5sb2NrZWQ7DQo+ID4gKwlyZXR1cm4gX19hdG9taWNfbG9hZF9uKCZz bC0+bG9ja2VkLCBfX0FUT01JQ19BQ1FVSVJFKTsNCj4gDQo+IF9fQVRPTUlDX1JFTEFYRUQgd291 bGQgYmUgZW5vdWdoIGhlcmUuIFJpZ2h0ID8NClllcywgaXQgaXMgZW5vdWdoIGZvciBjdXJyZW50 IERQREsgdXNlcywgdXNlZCBmb3IgdGVzdGluZyBhbmQgYXNzZXJ0aW9ucyBvbmx5Lg0KDQpGb3Ig Z2VuZXJhbCBhcHBsaWNhYmlsaXR5LCB3ZSBzZXQgYWNxdWlyZSBhcyBjb25jZXJuZWQgYWJvdXQg aXQgaXMgdXNlZCBmb3IgcmVhZGluZyBwcm90ZWN0ZWQgZGF0YSB3aGlsZSB0aGUgbG9jayBpcyBu b3QgdGFrZW4gYnkgYW55Ym9keS4NCkluIHRoaXMgdXNlIGNhc2UsIEFjcXVpcmUgd2lsbCBwcm9w ZXJseSBzZWUgYWxsIHVwZGF0ZXMgZnJvbSBiZWZvcmUgdGhlIGxvY2sgd2FzIHJlbGVhc2VkLCBi dXQgdGhpcyBpcyBzdGlsbCBkYW5nZXJvdXMsIGFzIGR1cmluZyB0aGUgY291cnNlLCBzb21lb25l IGVsc2UgbWlnaHQgaGF2ZSB0YWtlbiB0aGUgbG9jayBhbmQgY2hhbmdlZCB0aGUgZGF0YS4NCg0K QW55d2F5LCBJIHdpbGwgc2V0IFJlbGF4ZWQgaW4gdjQgYXMgdGhlIGFib3ZlIHVzZSBzY2VuYXJp byB3YXMgbm90IHJlY29tbWVuZGVkIGFuZCBub3QgcHJlc2VudCBpbiBEUERLLiANCg0KPiANCj4g PiAgfQ0KPiA+DQo+ID4gIC8qKg0K