From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60076.outbound.protection.outlook.com [40.107.6.76]) by dpdk.org (Postfix) with ESMTP id 2649658EC for ; Mon, 1 Oct 2018 12:42:28 +0200 (CEST) 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=+BCF69g+TxqLMLyKyF1Xrk9z83L4nFlbJBl6nDH34KA=; b=UbL4gvUQQUdsdeUC0TndNLj3cHIIQvqGneOWJGILKB2Eli8Y0G3NHxE4AyLzk04RC6knasUmqsIdLCmmqF+WF+SM6dBmFIc6WChN/4fNQqH6Q5Lo/CTt2449envAtSs1pb8Rkpca12Xe4skIodx3i9KFZDtbH9fIqHvR3ZKq8u8= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB2043.eurprd08.prod.outlook.com (10.168.95.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1164.25; Mon, 1 Oct 2018 10:42:26 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::c84:eee7:43bf:9f20%11]) with mapi id 15.20.1185.024; Mon, 1 Oct 2018 10:42:26 +0000 From: Ola Liljedahl To: "Wang, Yipeng1" , Honnappa Nagarahalli , "Richardson, Bruce" , "De Lara Guarch, Pablo" CC: "dev@dpdk.org" , "Gavin Hu (Arm Technology China)" , Steve Capper , nd Thread-Topic: [dpdk-dev] [PATCH 2/4] hash: add memory ordering to avoid race conditions Thread-Index: AQHUWXNxbdQrWJtSzEablHhNgtK2fw== Date: Mon, 1 Oct 2018 10:42:26 +0000 Message-ID: References: <1536253938-192391-1-git-send-email-honnappa.nagarahalli@arm.com> <1536253938-192391-3-git-send-email-honnappa.nagarahalli@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [158.174.8.16] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB2043; 6:wojG8meHRWjFPB19l4o038awRKRxH7lBT4kzN5skUJWY8WXF+LGJOEVhtGwBKDcND2QcIM4dGvy52Cef3ClbrRjbhqazErxWfCY7MlCNhupHNoh2JZVzNUJrwsEVSV8wY53S0Lb9v4BpINYds7IvvzFQ0hTJo1DJP8uavxamGpriyFE/MzD2i+dpon/QF7FhpfzyakafKcIWnNFFhbtF3wAVZKPMYqaO5t84rUm2Ee7SF022yu5aro7ou8Iizpjmj+eS9a/rxj6W2KQYcoL7ETmJbW4IVQZrCS1fucO50JthlwedJgZNdQZ3oGZYwYkAF75doySxFvnEiibLvq0XcaaGDwTscVnJAsVOZefkDlPpPmUOzeFMvPLm0VHzGufw4sINXzg6qMpjyfN+dPf6HhHFBwITByo+D2Jv62t2VjFbD/kByWX6GnICsKgRxA+xLIB0qk74o6jqm11tlBHdkg==; 5:e+xyRNFm/RWnG1KlXMyCAymNqi3uHXfAmMKag7kwQYaPlxHaJD7eJWIaKbuQlRxJYgRK4LV+0lhpgurFxGruDiYG73qnzPQytLwu3U3ITtLXFE2iFiljlfM4hHZ0IvXPNKxC6vKwY2vCcOcd4eyYMwO4q/KEtNNOH09SKM+63/4=; 7:Z6JcrM7owpBUKh7dR0VYkzFJTPO9SOdvhKoki3f3draimj9TjoZbkMCgZ3SYTErhFEuCGLE56aR85n9mlcqjsGZCw1VgKCBfI3XXN4u95kFo8m2GTzIYkleziVi4IigT+UXpIYyorgyNs4kJS+FOYIMC2RzY+9R47+De1siSLpHuinOKUZG/nKSDBCv2Xy20nDJUMGoXnJlyEWEalvjWNnqJoVuYXzN4UqPid70+Mqsd3opciTXZR2LMHgAZtcWF x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-correlation-id: a98bbf92-fa40-4267-8256-08d6278a9410 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0801MB2043; x-ms-traffictypediagnostic: HE1PR0801MB2043: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231355)(944501410)(52105095)(6055026)(149066)(150057)(6041310)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(201708071742011)(7699051); SRVR:HE1PR0801MB2043; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0801MB2043; x-forefront-prvs: 0812095267 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(346002)(39860400002)(396003)(136003)(366004)(189003)(199004)(13464003)(57704003)(5250100002)(6116002)(3846002)(486006)(82746002)(6486002)(305945005)(7736002)(58126008)(54906003)(8936002)(110136005)(71200400001)(71190400001)(83716004)(66066001)(14444005)(256004)(4326008)(186003)(2616005)(476003)(446003)(26005)(11346002)(53936002)(229853002)(6512007)(25786009)(6246003)(6436002)(2900100001)(102836004)(14454004)(2906002)(106356001)(105586002)(34290500001)(5660300001)(478600001)(316002)(99286004)(8676002)(6506007)(81156014)(81166006)(86362001)(97736004)(76176011)(68736007)(36756003)(72206003)(33656002); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB2043; H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: Ec6F0c+TatPvjRfLRRIAq33rVcdrjbOftLcgZff3rCM9uBvYs8Myqp3nGZGpqxRJo+/Hicn1iYePrYCbeQl+DLggZMqws2cuGCgWYnSrlH4uvbDxn08bxfQKidtUoTP12Eh5VybqRcDqlu2gh1baCXAPHornHpyswTtjGi/x2/AJy1h0aY8ee2fDlQ9YLukiuWMMqta7L5JNb/6RkKByDdQrOKotyDQr4Co7h+RCyj6SC0BUeYh0/YB7MXLo8Hnel20nYzki2LMEBTwiqa1peXRP1ocZ6TwADe3CksNJfqclEqmfy7/iN4VK8WkKIbQsGeYWFHeONiD4xMUheHLMtObWTYFtypj+Hx/JxJkfjh0= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <365014B5010E8040942E817FC36C2EC1@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: a98bbf92-fa40-4267-8256-08d6278a9410 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2018 10:42:26.0842 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB2043 Subject: Re: [dpdk-dev] [PATCH 2/4] hash: add memory ordering to avoid race conditions 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: Mon, 01 Oct 2018 10:42:28 -0000 DQoNCu+7v09uIDI4LzA5LzIwMTgsIDAyOjQzLCAiV2FuZywgWWlwZW5nMSIgPHlpcGVuZzEud2Fu Z0BpbnRlbC5jb20+IHdyb3RlOg0KDQogICAgU29tZSBnZW5lcmFsIGNvbW1lbnRzIGZvciAgdGhl IHZhcmlvdXMgX19hdG9taWNfc3RvcmUvbG9hZCBhZGRlZCwNCiAgICANCiAgICAxLiBBbHRob3Vn aCBpdCBwYXNzZXMgdGhlIGNvbXBpbGVyIGNoZWNrLCBidXQgSSBqdXN0IHdhbnQgdG8gY29uZmly bSB0aGF0IGlmIHdlIHNob3VsZCB1c2UgR0NDL2NsYW5nIGJ1aWx0aW5zLCBvciBpZg0KICAgIFRo ZXJlIGFyZSBoaWdoZXIgbGV2ZWwgQVBJcyBpbiBEUERLIHRvIGRvIGF0b21pYyBvcGVyYXRpb25z PyANCltPbGFdIEFkZGluZyAiaGlnaGVyIGxldmVsIiBBUEkncyBvbiB0b3Agb2YgdGhlIGJhc2lj IGxhbmd1YWdlL2NvbXBpbGVyIHN1cHBvcnQgaXMgbm90IGEgZ29vZCBpZGVhLg0KVGhlcmUgaXMg YW4gaW5maW5pdGUgYW1vdW50IG9mIGJhc2UgdHlwZXMgZm9yIHRoZSBhdG9taWMgb3BlcmF0aW9u cywgbXVsdGlwbHkgdGhhdCB3aXRoIGFsbCBkaWZmZXJlbnQgdHlwZXMgb2YgYXRvbWljIG9wZXJh dGlvbnMgKGUuZy4gbG9hZCwgc3RvcmUsIGZldGNoX2FkZCwgYWRkLCBjYXMgZXRjIGV0YykgYW5k IHRoZSBkaWZmZXJlbnQgbWVtb3J5IG9yZGVyaW5ncyBhbmQgeW91IGNyZWF0ZSBhIHZlcnkgbGFy Z2UgQVBJIChidXQgbGlrZWx5IG9ubHkgYSBzbWFsbCBidXQgaXJyZWd1bGFyIHN1YnNldCB3aWxs IGJlIHVzZWQpLiBTbyBsb3RzIG9mIHdvcmsgZm9yIGxpdHRsZSBnYWluIGFuZCBkaWZmaWN1bHQg dG8gdGVzdCBldmVyeSBzaW5nbGUgaXRlbSBpbiB0aGUgQVBJLg0KDQpGb3Igc29tZSBjb21waWxl ciB0aGF0IGRvZXMgbm90IHN1cHBvcnQgX19hdG9taWMgYnVpbHRpbnMsIG9uZSBjb3VsZCB3cml0 ZSBhbiBfX2F0b21pYyBlbXVsYXRpb24gbGF5ZXIuIEJ1dCBJIHRoaW5rIEdDQyBfX2F0b21pYyBp cyBhbHJlYWR5IHRoZSBpZGVhbCBzb3VyY2UgY29kZSBhYnN0cmFjdGlvbi4NCg0KICAgIA0KICAg IDIuIFdlIGJlbGlldmUgY29tcGlsZXIgd2lsbCB0cmFuc2xhdGUgdGhlIGF0b21pY19zdG9yZS9s b2FkIHRvIHJlZ3VsYXIgTU9WIGluc3RydWN0aW9uIG9uDQogICAgVG90YWwgU3RvcmUgT3JkZXIg YXJjaGl0ZWN0dXJlIChlLmcuIFg4Nl82NCkuIEJ1dCB3ZSBydW4gdGhlIHBlcmYgdGVzdCBvbiB4 ODYgYW5kIGhlcmUgaXMgdGhlIHJlbGF0aXZlIHNsb3dkb3duIG9uDQogICAgbG9va3VwIGNvbXBh cmluZyB0byBtYXN0ZXIgaGVhZC4gSSBhbSBub3Qgc3VyZSBpZiB0aGUgcGVyZm9ybWFuY2UgZHJv cCBjb21lcyBmcm9tIHRoZSBhdG9taWMgYnVpdGlucy4NCltPbGFdIEFueSBwZXJmb3JtYW5jZSBk aWZmZXJlbmNlIGlzIG1vc3QgbGlrZWx5IG5vdCBmcm9tIHRoZSB1c2Ugb2YgYXRvbWljIGJ1aWx0 aW5zIGJlY2F1c2UgYXMgeW91IHdyaXRlLCBvbiB4ODYgdGhleSBzaG91bGQgdHJhbnNsYXRlIHRv IG5vcm1hbCBsb2FkcyBhbmQgc3RvcmVzIGluIG1vc3Qgc2l0dWF0aW9ucy4gQnV0IHRoZSBjb2Rl IGFuZCBkYXRhIHN0cnVjdHVyZXMgaGF2ZSBjaGFuZ2VkIHNvIHRoZXJlIGlzIHNvbWUgZGlmZmVy ZW5jZSBpbiBlLmcuIG1lbW9yeSBhY2Nlc3NlcywgY291bGRuJ3QgdGhpcyBleHBsYWluIHRoZSBw ZXJmb3JtYW5jZSBkaWZmZXJlbmNlPw0KDQogICAgDQogICAgS2V5c2l6ZSB8IHNpbmdsZSBsb29r dXAgfCBidWxrIGxvb2t1cA0KICAgIDQgfCAwLjkzIHwgMC45NQ0KICAgIDggfCAwLjk1IHwgMC45 Ng0KICAgIDE2IHwgMC45NyB8IDAuOTYNCiAgICAzMiB8IDAuOTcgfCAxLjAwDQogICAgNDggfCAx LjAzIHwgMC45OQ0KICAgIDY0IHwgMS4wNCB8IDAuOTgNCiAgICA5IHwgMC45MSB8IDAuOTYNCiAg ICAxMyB8IDAuOTcgfCAwLjk4DQogICAgMzcgfCAxLjA0IHwgMS4wMw0KICAgIDQwIHwgMS4wMiB8 IDAuOTgNCiAgICANCiAgICBPdGhlciBjb21tZW50cyBpbmxpbmVkLg0KICAgIA0KICAgID4tLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KICAgID5Pbmx5IHJhY2UgY29uZGl0aW9uIHRoYXQgY2Fu IG9jY3VyIGlzIC0gIHVzaW5nIHRoZSBrZXkgc3RvcmUgZWxlbWVudA0KICAgID5iZWZvcmUgdGhl IGtleSB3cml0ZSBpcyBjb21wbGV0ZWQuIEhlbmNlLCB3aGlsZSBpbnNlcnRpbmcgdGhlIGVsZW1l bnQNCiAgICA+dGhlIHJlbGVhc2UgbWVtb3J5IG9yZGVyIGlzIHVzZWQuIEFueSBvdGhlciByYWNl IGNvbmRpdGlvbiBpcyBjYXVnaHQNCiAgICA+YnkgdGhlIGtleSBjb21wYXJpc29uLiBNZW1vcnkg b3JkZXJpbmdzIGFyZSBhZGRlZCBvbmx5IHdoZXJlIG5lZWRlZC4NCiAgICA+Rm9yIGV4OiByZWFk cyBpbiB0aGUgd3JpdGVyJ3MgY29udGV4dCBkbyBub3QgbmVlZCBtZW1vcnkgb3JkZXJpbmcNCiAg ICA+YXMgdGhlcmUgaXMgYSBzaW5nbGUgd3JpdGVyLg0KICAgID4NCiAgICBbV2FuZywgWWlwZW5n XSBJIGFzc3VtZSB0aGlzIGNvbW1pdCB3b3JrcyB0b2dldGhlciB3aXRoIHRoZSBuZXh0IG9uZSB0 byBlbmFibGUNCiAgICByZWFkLXdyaXRlIGNvbmN1cnJlbmN5IG9uIHJlbGF4ZWQgbWVtb3J5IG9y ZGVyaW5nIG1hY2hpbmUuIFRoaXMgY29tbWl0IGJ5IGl0c2VsZiBkb2VzIG5vdCBkbyB0aGF0LCBy aWdodD8NCiAgICBJZiB0aGlzIGlzIHRoZSBjYXNlLCBzaG91bGQgd2UgbWVyZ2UgdGhlIHR3byBj b21taXRzLA0KICAgIG9yIG1heWJlIGp1c3QgZXhwbGFpbiBpdCBhIGxpdHRsZSBiaXQgbW9yZSBp biB0aGUgY29tbWl0IG1lc3NhZ2U/DQogICAgDQogICAgPmtleV9pZHggaW4gdGhlIGJ1Y2tldCBl bnRyeSBhbmQgcGRhdGEgaW4gdGhlIGtleSBzdG9yZSBlbGVtZW50IGFyZQ0KICAgID51c2VkIGZv ciBzeW5jaHJvbmlzYXRpb24uIGtleV9pZHggaXMgdXNlZCB0byByZWxlYXNlIGFuIGluc2VydGVk DQogICAgPmVudHJ5IGluIHRoZSBidWNrZXQgdG8gdGhlIHJlYWRlci4gVXNlIG9mIHBkYXRhIGZv ciBzeW5jaHJvbmlzYXRpb24NCiAgICA+aXMgcmVxdWlyZWQgZHVlIHRvIHVwZGF0aW9uIG9mIGFu IGV4aXN0aW5nIGVudHJ5IHdoZXJlLWluIG9ubHkNCiAgICA+dGhlIHBkYXRhIGlzIHVwZGF0ZWQg d2l0aG91dCB1cGRhdGluZyBrZXlfaWR4Lg0KICAgID4NCiAgICA+DQogICAgPi0vKiBTZWFyY2gg YSBrZXkgZnJvbSBidWNrZXQgYW5kIHVwZGF0ZSBpdHMgZGF0YSAqLw0KICAgID4rLyogU2VhcmNo IGEga2V5IGZyb20gYnVja2V0IGFuZCB1cGRhdGUgaXRzIGRhdGEuDQogICAgPisgKiBXcml0ZXIg aG9sZHMgdGhlIGxvY2sgYmVmb3JlIGNhbGxpbmcgdGhpcy4NCiAgICA+KyAqLw0KICAgID4gc3Rh dGljIGlubGluZSBpbnQzMl90DQogICAgPiBzZWFyY2hfYW5kX3VwZGF0ZShjb25zdCBzdHJ1Y3Qg cnRlX2hhc2ggKmgsIHZvaWQgKmRhdGEsIGNvbnN0IHZvaWQgKmtleSwNCiAgICA+IAlzdHJ1Y3Qg cnRlX2hhc2hfYnVja2V0ICpia3QsIGhhc2hfc2lnX3Qgc2lnLCBoYXNoX3NpZ190IGFsdF9oYXNo KQ0KICAgID5AQCAtNDk5LDggKzUwMSwxMyBAQCBzZWFyY2hfYW5kX3VwZGF0ZShjb25zdCBzdHJ1 Y3QgcnRlX2hhc2ggKmgsIHZvaWQgKmRhdGEsIGNvbnN0IHZvaWQgKmtleSwNCiAgICA+IAkJCWsg PSAoc3RydWN0IHJ0ZV9oYXNoX2tleSAqKSAoKGNoYXIgKilrZXlzICsNCiAgICA+IAkJCQkJYmt0 LT5rZXlfaWR4W2ldICogaC0+a2V5X2VudHJ5X3NpemUpOw0KICAgID4gCQkJaWYgKHJ0ZV9oYXNo X2NtcF9lcShrZXksIGstPmtleSwgaCkgPT0gMCkgew0KICAgID4tCQkJCS8qIFVwZGF0ZSBkYXRh ICovDQogICAgPi0JCQkJay0+cGRhdGEgPSBkYXRhOw0KICAgID4rCQkJCS8qICdwZGF0YScgYWN0 cyBhcyB0aGUgc3luY2hyb25pemF0aW9uIHBvaW50DQogICAgPisJCQkJICogd2hlbiBhbiBleGlz dGluZyBoYXNoIGVudHJ5IGlzIHVwZGF0ZWQuDQogICAgPisJCQkJICogS2V5IGlzIG5vdCB1cGRh dGVkIGluIHRoaXMgY2FzZS4NCiAgICA+KwkJCQkgKi8NCiAgICBbV2FuZywgWWlwZW5nXSBJIGRp ZCBub3QgcXVpdGUgdW5kZXJzdGFuZCB3aHkgZG8gd2UgbmVlZCBzeW5jaHJvbml6YXRpb24gZm9y IGhhc2ggZGF0YSB1cGRhdGUuDQogICAgU2luY2UgcGRhdGEgd3JpdGUgaXMgYWxyZWFkeSBhdG9t aWMsIHRoZSBsb29rdXAgd2lsbCBlaXRoZXIgcmVhZCBvdXQgdGhlIHN0YWxlIGRhdGEgb3IgdGhl IG5ldyBkYXRhLA0KICAgIHdoaWNoIHNob3VsZCBiZSBmaW5lIHdpdGhvdXQgc3luY2hyb25pemF0 aW9uLg0KICAgIElzIGl0IHRvIGVuc3VyZSB0aGUgb3JkZXIgb2YgbXVsdGlwbGUgcmVhZHMgaW4g bG9va3VwIHRocmVhZHM/DQpbT2xhXSBJZiBwZGF0YSBpcyB1c2VkIGFzIGEgcmVmZXJlbmNlIHRv IGFjY2VzcyBvdGhlciBzaGFyZWQgZGF0YSwgeW91IG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGFj Y2VzcyBvZiBwZGF0YSBhbmQgYWNjZXNzZXMgdG8gb3RoZXIgZGF0YSBhcmUgb3JkZXJlZCBhcHBy b3ByaWF0ZWx5IChlLmcuIHdpdGggYWNxdWlyZS9yZWxlYXNlKS4gSSB0aGluayByZWFkaW5nIGEg bmV3IHBkYXRhIGJ1dCBzdGFsZSBhc3NvY2lhdGVkIGRhdGEgaXMgYSBiYWQgdGhpbmcuDQoNCiAg ICANCiAgICA+QEAgLTEyNDMsMTEgKzEyODksMTkgQEAgX19ydGVfaGFzaF9sb29rdXBfYnVsayhj b25zdCBzdHJ1Y3QgcnRlX2hhc2ggKmgsIGNvbnN0IHZvaWQgKiprZXlzLA0KICAgID4gCQl3aGls ZSAoc2VjX2hpdG1hc2tbaV0pIHsNCiAgICA+IAkJCXVpbnQzMl90IGhpdF9pbmRleCA9IF9fYnVp bHRpbl9jdHpsKHNlY19oaXRtYXNrW2ldKTsNCiAgICA+DQogICAgPi0JCQl1aW50MzJfdCBrZXlf aWR4ID0gc2Vjb25kYXJ5X2JrdFtpXS0+a2V5X2lkeFtoaXRfaW5kZXhdOw0KICAgID4rCQkJdWlu dDMyX3Qga2V5X2lkeCA9DQogICAgPisJCQlfX2F0b21pY19sb2FkX24oDQogICAgPisJCQkJJnNl Y29uZGFyeV9ia3RbaV0tPmtleV9pZHhbaGl0X2luZGV4XSwNCiAgICA+KwkJCQlfX0FUT01JQ19B Q1FVSVJFKTsNCiAgICA+IAkJCWNvbnN0IHN0cnVjdCBydGVfaGFzaF9rZXkgKmtleV9zbG90ID0N CiAgICA+IAkJCQkoY29uc3Qgc3RydWN0IHJ0ZV9oYXNoX2tleSAqKSgNCiAgICA+IAkJCQkoY29u c3QgY2hhciAqKWgtPmtleV9zdG9yZSArDQogICAgPiAJCQkJa2V5X2lkeCAqIGgtPmtleV9lbnRy eV9zaXplKTsNCiAgICA+Kw0KICAgID4rCQkJaWYgKGtleV9pZHggIT0gRU1QVFlfU0xPVCkNCiAg ICBbV2FuZywgWWlwZW5nXSBJIHRoaW5rIGV2ZW4gZm9yIGN1cnJlbnQgY29kZSwgd2UgbmVlZCB0 byBjaGVjayBlbXB0eV9zbG90Lg0KICAgIENvdWxkIHlvdSBleHBvcnQgdGhpcyBhcyBhIGJ1ZyBm aXggY29tbWl0Pw0KICAgIA0KICAgIA0KICAgIA0KDQo=