Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp2180979ybn; Thu, 26 Sep 2019 08:09:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqwxYr4ZIwAwT5a6n0H/JnlwG47Tf87dNiqhHHYh4HMn0BPtmCNbJKi0VJDzuJx8gzyg2iPJ X-Received: by 2002:a17:906:4b07:: with SMTP id y7mr3567221eju.126.1569510592291; Thu, 26 Sep 2019 08:09:52 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1569510592; cv=pass; d=google.com; s=arc-20160816; b=qjfEp7exV1739Sec1t+ocW8z7VrcKMNR6CZIApGGncppWyPx11l4mC1kWUxVUJJieO 9/UzSqAYWdZe7X+6Tufxc7WrRlxXyAfFwvxuiZUZ5pRfhhv76ki1FbNklUGR2o4kTO6P b6hGkFEfGS6UydFgSbbIwmqXO8BNOnEPuGpFv5kUDHdeyjiH0Z38IEWTIY2aB8AKrUVG fkZ9SEGDR9a3F32WkD5fqdRDj8CufxB5WU4oUdx9Y1oORvBs9x1c7g5JTBPjqwSjCMl0 vdTaKn5ZxkvShqbkfSNaxK5GY3CyUvyqorr7NZamIao96Z7dMg2OQ3vBTTGkAwfFLUi+ Z+Kw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=e4/cO8Ml9Ih68xKH6jmGh9YTHqRZ/3q7N3JEAqC2zxU=; b=LQtgPZp8y/enwaABgGiV/2VoUxenCDp6/Pd4wJGSsdJqYRFowjMaFEOBRBQ9OT2rkn Dk2vYO2msOzOuW+s7FCbKjjAs4PTauAJ7/+DruVs1u5mhq/ZHDqh4gqNwuF244Y2sP8q IcNAnquhNrJKSDcZQMP2+/j9rCg0nMNUrHNGgwM4zokG1TZcGNuNi33pFoST2mTgNO/x FMQ2y+Loclb9I/kPYqoQKK7FgiDQ1E+KzUhB7Qt4nqLdzyiSh83sRtSJ8zClS87FziwU t2rX02tyY5ZPoic2XQWlCfcgGTyw1CCCZkY+K49Gd6E+aWyccJ9iZgWSEOJMcAHDaTEO Fv1A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@verimatrix.com header.s=selector2 header.b=RJuBv2QT; arc=pass (i=1 spf=pass spfdomain=verimatrix.com dkim=pass dkdomain=verimatrix.com dmarc=pass fromdomain=verimatrix.com); spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=verimatrix.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z9si1546338edz.77.2019.09.26.08.09.26; Thu, 26 Sep 2019 08:09:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@verimatrix.com header.s=selector2 header.b=RJuBv2QT; arc=pass (i=1 spf=pass spfdomain=verimatrix.com dkim=pass dkdomain=verimatrix.com dmarc=pass fromdomain=verimatrix.com); spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=verimatrix.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725820AbfIZPGn (ORCPT + 99 others); Thu, 26 Sep 2019 11:06:43 -0400 Received: from mail-eopbgr700076.outbound.protection.outlook.com ([40.107.70.76]:64256 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726029AbfIZPGm (ORCPT ); Thu, 26 Sep 2019 11:06:42 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CHEGdwuOGDhJvmXPqlcdSMI3pSaO2sH/D5sOaPdiztXTEhMEOD20vqPlvJDPziWi32OL3ovTZWXVh9bQNCmumAOHbuSlO++vDBdCxst1cA2vvTawxzuwsWqh2+iVCXttMayRdfhB0bcRVt5q1VA+YTVxsa4VbUeqGVch+aLX5efP+tBrof7cWY8f6THVjsoqdPmsHwSZetULv1ea6ApVuw8TOc5dJFC0l7KrSXkj3uGXn5LOGXF3POjMgUXlF8ZRSy+mlNCiG9GEcf+1rOjtdzFzinXYfpNuhgbDopRmm8ITIdHso1xT0dFZDX8Bzh/FdLoaGa8DNSH5ceg/0GqOJw== 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=e4/cO8Ml9Ih68xKH6jmGh9YTHqRZ/3q7N3JEAqC2zxU=; b=gFE2KNqudmFDpf5wDM+yr1IWB12TOge36X/dpDSEM2EyH3hJTLf7KxyafNIX42fDgGTEsrYF6GK6OzQMyn3g/SabddpwR8LaJ5Ob/d54XqKA9CDLf4h/il/ETbTsghXl8/D76w7YG7fUQBsVLVB5OUi+QXvMQh5RiPK1TkCDYyrcydWqP4qwbmc9H3d8bNHG2VWc+EpZNIHjMCWcU4jDzlTaAK0NDqOQfITy4jfDFwA+SN/H2xvpuBAmMX+Q2004Y0dDxuD3Ekk5s7pihE6tA78vINEBGwBJxDERhNDaMgyJDW0ame6MO5glb67sV7gazhcUa6eiZXjoNyZAw5zWmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=verimatrix.com; dmarc=pass action=none header.from=verimatrix.com; dkim=pass header.d=verimatrix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=verimatrix.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e4/cO8Ml9Ih68xKH6jmGh9YTHqRZ/3q7N3JEAqC2zxU=; b=RJuBv2QTA2VGmO02CEwD7awZ6Y30pUwxiZzj2X+gwJColkbrROvKkVs1Pd15sDzbmOagkIdsTnlePRqvaX+C+2MiYtce1uBFLPnowAjbKVtRqAA7xG18TbkXZTPITeF5PkVhdcnBk6gzB/hMIq58BbAjqKr6GV+GE/Zihi1Z7F8= Received: from MN2PR20MB2973.namprd20.prod.outlook.com (52.132.172.146) by MN2PR20MB2416.namprd20.prod.outlook.com (20.179.148.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2284.20; Thu, 26 Sep 2019 15:04:59 +0000 Received: from MN2PR20MB2973.namprd20.prod.outlook.com ([fe80::6d07:5f09:97bf:c717]) by MN2PR20MB2973.namprd20.prod.outlook.com ([fe80::6d07:5f09:97bf:c717%7]) with mapi id 15.20.2305.017; Thu, 26 Sep 2019 15:04:59 +0000 From: Pascal Van Leeuwen To: Ard Biesheuvel CC: "Jason A. Donenfeld" , Linux Crypto Mailing List , linux-arm-kernel , Herbert Xu , David Miller , Greg KH , Linus Torvalds , Samuel Neves , Dan Carpenter , Arnd Bergmann , Eric Biggers , Andy Lutomirski , Will Deacon , Marc Zyngier , Catalin Marinas Subject: RE: [RFC PATCH 00/18] crypto: wireguard using the existing crypto API Thread-Topic: [RFC PATCH 00/18] crypto: wireguard using the existing crypto API Thread-Index: AQHVc7w6foOeRxVj+U6Yc++T56fqIac9qd4AgAA0kYCAAAbroIAADDgAgAAKvfCAABBXgIAAAPbg Date: Thu, 26 Sep 2019 15:04:59 +0000 Message-ID: References: <20190925161255.1871-1-ard.biesheuvel@linaro.org> 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=pvanleeuwen@verimatrix.com; x-originating-ip: [188.204.2.113] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f909802f-8196-4755-34f2-08d74292e684 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600167)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:MN2PR20MB2416; x-ms-traffictypediagnostic: MN2PR20MB2416: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0172F0EF77 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(39850400004)(396003)(346002)(136003)(366004)(376002)(189003)(199004)(13464003)(2906002)(11346002)(3846002)(81166006)(81156014)(99286004)(14444005)(478600001)(316002)(6506007)(6116002)(74316002)(54906003)(8676002)(186003)(6246003)(8936002)(256004)(102836004)(229853002)(66066001)(53546011)(305945005)(7736002)(14454004)(71200400001)(476003)(6916009)(9686003)(486006)(6436002)(76116006)(26005)(86362001)(66476007)(64756008)(66946007)(25786009)(66556008)(7416002)(76176011)(5660300002)(33656002)(7696005)(66446008)(446003)(4326008)(71190400001)(15974865002)(55016002)(52536014)(18886075002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR20MB2416;H:MN2PR20MB2973.namprd20.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: verimatrix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: MLg/j3U/X1cqYz7Hvc3z5OiYQhOxTSVSAsH0QnWq7mg4kG56eWg5xUoBJP8q3D3Tw5ucFxac9kBZfj4f4G3AXCOhX/pTolt486v0qkcRw0cpa0biHWJD1svvmgB1P+x0XJ0rCSxncUzosVyN4YXgRNmZKfd6vEb7YTWi2n8g3S9EJN1npCaVsHtZpHucAcRe4mJ5MGAc9oLvYtE8Fq+rD4NQx3gXj+F06tVsrDoNm+xWquxOA6mheSgAb9vOk2oHVOihlzAc2iMjMHgmBQybacJ95BeBJDTn6CqtqTqkvvz3KQycdGWLkYrOH/2gqxhNG0gt2IVm4BsoXR2t0TCD18iNjk1qLrxZ6LyeX1lHCAhGKBEllD8PQUC2JUOnnuhMP4TQ3bk9Isz5fyV7SKSFU3lja6CeQD3TLoUIVvU3++E= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: verimatrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: f909802f-8196-4755-34f2-08d74292e684 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Sep 2019 15:04:59.3718 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: dcb260f9-022d-4495-8602-eae51035a0d0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 80Z402VxDLcehUJ6/rSs7Fk0wbl4t/Khu3Ze36BqYvkKp8eFNm47XOCaWR2iW4JlKKuc1AwJi3CtEmDU/nrD6lxQ7nbEF9uoNMjD8THuYck= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR20MB2416 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBsaW51eC1jcnlwdG8tb3duZXJA dmdlci5rZXJuZWwub3JnIDxsaW51eC1jcnlwdG8tb3duZXJAdmdlci5rZXJuZWwub3JnPiBPbiBC ZWhhbGYNCj4gT2YgQXJkIEJpZXNoZXV2ZWwNCj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAy NiwgMjAxOSA0OjUzIFBNDQo+IFRvOiBQYXNjYWwgVmFuIExlZXV3ZW4gPHB2YW5sZWV1d2VuQHZl cmltYXRyaXguY29tPg0KPiBDYzogSmFzb24gQS4gRG9uZW5mZWxkIDxKYXNvbkB6eDJjNC5jb20+ OyBMaW51eCBDcnlwdG8gTWFpbGluZyBMaXN0IDxsaW51eC0NCj4gY3J5cHRvQHZnZXIua2VybmVs Lm9yZz47IGxpbnV4LWFybS1rZXJuZWwgPGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZz47DQo+IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT47IERhdmlk IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD47IEdyZWcgS0gNCj4gPGdyZWdraEBsaW51eGZv dW5kYXRpb24ub3JnPjsgTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24u b3JnPjsgU2FtdWVsDQo+IE5ldmVzIDxzbmV2ZXNAZGVpLnVjLnB0PjsgRGFuIENhcnBlbnRlciA8 ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPjsgQXJuZCBCZXJnbWFubg0KPiA8YXJuZEBhcm5kYi5k ZT47IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29vZ2xlLmNvbT47IEFuZHkgTHV0b21pcnNraSA8 bHV0b0BrZXJuZWwub3JnPjsNCj4gV2lsbCBEZWFjb24gPHdpbGxAa2VybmVsLm9yZz47IE1hcmMg WnluZ2llciA8bWF6QGtlcm5lbC5vcmc+OyBDYXRhbGluIE1hcmluYXMNCj4gPGNhdGFsaW4ubWFy aW5hc0Bhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW1JGQyBQQVRDSCAwMC8xOF0gY3J5cHRvOiB3 aXJlZ3VhcmQgdXNpbmcgdGhlIGV4aXN0aW5nIGNyeXB0byBBUEkNCj4gDQo+IE9uIFRodSwgMjYg U2VwIDIwMTkgYXQgMTY6MDMsIFBhc2NhbCBWYW4gTGVldXdlbg0KPiA8cHZhbmxlZXV3ZW5AdmVy aW1hdHJpeC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+ DQo+ID4gPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDI2LCAyMDE5IDM6MTYgUE0NCj4gPiA+ IFRvOiBQYXNjYWwgVmFuIExlZXV3ZW4gPHB2YW5sZWV1d2VuQHZlcmltYXRyaXguY29tPg0KPiA+ ID4gQ2M6IEphc29uIEEuIERvbmVuZmVsZCA8SmFzb25AengyYzQuY29tPjsgTGludXggQ3J5cHRv IE1haWxpbmcgTGlzdCA8bGludXgtDQo+ID4gPiBjcnlwdG9Admdlci5rZXJuZWwub3JnPjsgbGlu dXgtYXJtLWtlcm5lbCA8bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnPjsNCj4g PiA+IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT47IERhdmlkIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD47IEdyZWcNCj4gS0gNCj4gPiA+IDxncmVna2hAbGludXhm b3VuZGF0aW9uLm9yZz47IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9u Lm9yZz47IFNhbXVlbA0KPiA+ID4gTmV2ZXMgPHNuZXZlc0BkZWkudWMucHQ+OyBEYW4gQ2FycGVu dGVyIDxkYW4uY2FycGVudGVyQG9yYWNsZS5jb20+OyBBcm5kIEJlcmdtYW5uDQo+ID4gPiA8YXJu ZEBhcm5kYi5kZT47IEVyaWMgQmlnZ2VycyA8ZWJpZ2dlcnNAZ29vZ2xlLmNvbT47IEFuZHkgTHV0 b21pcnNraQ0KPiA8bHV0b0BrZXJuZWwub3JnPjsNCj4gPiA+IFdpbGwgRGVhY29uIDx3aWxsQGtl cm5lbC5vcmc+OyBNYXJjIFp5bmdpZXIgPG1hekBrZXJuZWwub3JnPjsgQ2F0YWxpbiBNYXJpbmFz DQo+ID4gPiA8Y2F0YWxpbi5tYXJpbmFzQGFybS5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW1JG QyBQQVRDSCAwMC8xOF0gY3J5cHRvOiB3aXJlZ3VhcmQgdXNpbmcgdGhlIGV4aXN0aW5nIGNyeXB0 byBBUEkNCj4gPiA+DQo+ID4gPiBPbiBUaHUsIDI2IFNlcCAyMDE5IGF0IDE1OjA2LCBQYXNjYWwg VmFuIExlZXV3ZW4NCj4gPiA+IDxwdmFubGVldXdlbkB2ZXJpbWF0cml4LmNvbT4gd3JvdGU6DQo+ ID4gPiAuLi4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE15IHByZWZlcmVuY2Ugd291bGQgYmUgdG8g YWRkcmVzcyB0aGlzIGJ5IHBlcm1pdHRpbmcgcGVyLXJlcXVlc3Qga2V5cw0KPiA+ID4gPiA+IGlu IHRoZSBBRUFEIGxheWVyLiBUaGF0IHdheSwgd2UgY2FuIGluc3RhbnRpYXRlIHRoZSB0cmFuc2Zv cm0gb25seQ0KPiA+ID4gPiA+IG9uY2UsIGFuZCBqdXN0IGludm9rZSBpdCB3aXRoIHRoZSBhcHBy b3ByaWF0ZSBrZXkgb24gdGhlIGhvdCBwYXRoIChhbmQNCj4gPiA+ID4gPiBhdm9pZCBhbnkgcGVy LWtleXBhaXIgYWxsb2NhdGlvbnMpDQo+ID4gPiA+ID4NCj4gPiA+ID4gVGhpcyBwYXJ0IEkgZG8g bm90IHJlYWxseSB1bmRlcnN0YW5kLiBXaHkgd291bGQgeW91IG5lZWQgdG8gYWxsb2NhdGUgYQ0K PiA+ID4gPiBuZXcgdHJhbnNmb3JtIGlmIHlvdSBjaGFuZ2UgdGhlIGtleT8gV2h5IGNhbid0IHlv dSBqdXN0IGNhbGwgc2V0a2V5KCkNCj4gPiA+ID4gb24gdGhlIGFscmVhZHkgYWxsb2NhdGVkIHRy YW5zZm9ybT8NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBCZWNhdXNlIHRoZSBzaW5nbGUgdHJhbnNm b3JtIHdpbGwgYmUgc2hhcmVkIGJldHdlZW4gYWxsIHVzZXJzIHJ1bm5pbmcNCj4gPiA+IG9uIGRp ZmZlcmVudCBDUFVzIGV0YywgYW5kIHNvIHRoZSBrZXkgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRo ZSBURk0NCj4gPiA+IHN0YXRlIGJ1dCBvZiB0aGUgcmVxdWVzdCBzdGF0ZS4NCj4gPiA+DQo+ID4g U28geW91IG5lZWQgYSB0cmFuc2Zvcm0gcGVyIHVzZXIsIHN1Y2ggdGhhdCBlYWNoIHVzZXIgY2Fu IGhhdmUgaGlzIG93bg0KPiA+IGtleS4gQnV0IHlvdSBzaG91bGRuJ3QgbmVlZCB0byByZWFsbG9j YXRlIGl0IHdoZW4gdGhlIHVzZXIgY2hhbmdlcyBoaXMNCj4gPiBrZXkuIEkgYWxzbyBkb24ndCBz ZWUgaG93IHRoZSAiZGlmZmVyZW50IENQVXMiIGlzIHJlbGV2YW50IGhlcmU/IEkgY2FuDQo+ID4g c2hhcmUgYSBzaW5nbGUga2V5IGFjcm9zcyBtdWx0aXBsZSBDUFVzIGhlcmUganVzdCBmaW5lIC4u Lg0KPiA+DQo+IA0KPiBXZSBuZWVkIHR3byB0cmFuc2Zvcm1zIHBlciBjb25uZWN0aW9uLCBvbmUg Zm9yIGVhY2ggZGlyZWN0aW9uLiBUaGF0IGlzDQo+IGhvdyBJIGN1cnJlbnRseSBpbXBsZW1lbnRl ZCBpdCwgYW5kIGl0IHNlZW1zIHRvIG1lIHRoYXQsIGlmDQo+IGFsbG9jYXRpbmcvZnJlZWluZyB0 aG9zZSBvbiB0aGUgc2FtZSBwYXRoIGFzIHdoZXJlIHRoZSBrZXlwYWlyIG9iamVjdA0KPiBpdHNl bGYgaXMgYWxsb2NhdGVkIGlzIHRvbyBjb3N0bHksIEkgd29uZGVyIHdoeSBhbGxvY2F0aW5nIHRo ZSBrZXlwYWlyDQo+IG9iamVjdCBpdHNlbGYgaXMgZmluZS4NCj4gDQoNCkkgZ3Vlc3MgdGhhdCBr ZXlwYWlyIG9iamVjdCBpcyBhIFdpcmVndWFyZCBzcGVjaWZpYyB0aGluZz8NCkluIHRoYXQgY2Fz ZSBpdCBtYXkgbm90IG1ha2UgYSBkaWZmZXJlbmNlIHBlcmZvcm1hbmNlIHdpc2UuDQpJIGp1c3Qg d291bGQgbm90IGV4cGVjdCBhIG5ldyAocGFpciBvZikgdHJhbnNmb3JtcyB0byBiZSBhbGxvY2F0 ZWQNCmp1c3QgZm9yIGEgcmVrZXksIG9ubHkgd2hlbiBhIG5ldyBjb25uZWN0aW9uIGlzIG1hZGUu IA0KDQpUaGlua2luZyBhYm91dCB0aGlzIHNvbWUgbW9yZToNCkFsbG9jYXRpbmcgYSB0cmFuc2Zv cm0gaXMgYWJvdXQgbW9yZSB0aGFuIGp1c3QgYWxsb2NhdGluZyB0aGUgDQpvYmplY3QsIHRoZXJl IG1heSBiZSBhbGwga2luZHMgb2Ygc2lkZS1lZmZlY3RzIGxpa2UgZmFsbGJhY2sNCmNpcGhlcnMg YmVpbmcgYWxsb2NhdGVkLCBzcGVjaWZpYyBIVyBpbml0aWFsaXphdGlvbiBiZWluZyBkb25lLCBl dGMuIA0KSSBqdXN0IGZlZWwgdGhhdCBpZiB5b3Ugb25seSBuZWVkIHRvIGNoYW5nZSB0aGUga2V5 LCB5b3Ugc2hvdWxkDQpvbmx5IGNoYW5nZSB0aGUga2V5LiBBcyB0aGF0J3Mgd2hhdCB0aGUgZHJp dmVyIHdvdWxkIGJlIG9wdGltaXplZA0KZm9yLg0KDQpSZWdhcmRzLA0KUGFzY2FsIHZhbiBMZWV1 d2VuDQpTaWxpY29uIElQIEFyY2hpdGVjdCwgTXVsdGktUHJvdG9jb2wgRW5naW5lcyBAIFZlcmlt YXRyaXgNCnd3dy5pbnNpZGVzZWN1cmUuY29tDQoNCg0K