From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 77C91A04F6; Thu, 19 Dec 2019 05:37:48 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 288031BDFD; Thu, 19 Dec 2019 05:37:47 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id AE8FD1F5 for ; Thu, 19 Dec 2019 05:37:45 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xBJ4ZwRD012244; Wed, 18 Dec 2019 20:37:43 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=WNXpLDUFMUffCf3ETMgZHYi42F+PtfQRGRhIFBN3IdM=; b=dCwyjevDGpYcjQ9jost4f4BP/cSTACIkXQTUnwfEyF9TcEPNdbe4R9I2SEWOhcviLpuz 4LH2L3lo5YcmqRSzdHnYzfZDjn2ID+lLecq4XOFu7parcxdNIl0FLfs5agO+DHUL+cn+ i8yIKUtjP3Pxz/tdBz46gcEHxoStjtod8PewIKU5LQMMWV3Rt4kdzyQuUXfPpC8/pRwA NTn2zZujcHNpcZeD7TeSZXtFWxFOWbGBd+RG3Q8h/rAC1OHw6yckfYccb3GdUo8yJyXo +cukvaP0MLJ9WONVlm6dor5A5yj/mRVID7ohyvpNoO2K0dPzM1iCCnWtA4PoaQ/SkOso cA== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 2wxneb1jmn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 18 Dec 2019 20:37:42 -0800 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 18 Dec 2019 20:37:40 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.51) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 18 Dec 2019 20:37:41 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mq+ipD1433Hc+SmUFKKJsp1bZM7JuNIPlbn0WkUnkdq3cUnBKRwEduIYNg9A/9uJFyih0kM2Fts5K7h27Y6s//YuG/+i8WZgOScWIMWOFPDT35BI85+0styR/UCNVoBClNPwWxSMh25UucTDPZxJ3q6LZttlh6WH+HjoYrRgiiiZvDqE+5oOAbPZLdTo5C6/9eyOPtjs3wF8Zm58BwqOyjbbOixgM6583CyNwTOmpHAno3P8TxrUVWAsA9mxPqgZ7qynjEdj0p4JQaID2Qe6nATHjvr/5WiCM7X8cpa67XGajilvycdEeiu7o+gFtQz7rFwg0BFoGaHfxEt5rPk1eg== 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=WNXpLDUFMUffCf3ETMgZHYi42F+PtfQRGRhIFBN3IdM=; b=ALC5LV6x/mvmtHIkuwWqwCEejtz5rEKY1vkbA9u/9/7jz3ntbULmb+W8x8GHtrZLerABPTs4ULR6WAHQ0yDuCb9OVPBI+L0yHT26okcvaF+45bfX0J1bnrZImy9XAdP7TDLU6IsUfqVoJv5fxHUNAzlAkv4oRUd0K8yotwmddFVDN5e7eCKvEmyGiuHr4aopeQFOE2jmhXmF7VGlhJcBcvjPY1mrwIYGzMdU681B2yNNoHjb8bGDhFWmRKuJtReM/FEquE/vr1N8pBnAp7jZVtoY/TbQW6Bpt4frNNhLD2OBVssLQC25i5wdTsE6ubr/FlOZ2PpTHtTTjdPnBgv0UA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WNXpLDUFMUffCf3ETMgZHYi42F+PtfQRGRhIFBN3IdM=; b=KulI9dAQppZffzQrLdU64ngweLM2vs+9WlMAD+R/BgmNRcS7HBzcoeg0exHaTzwsSYcAqOtiiNeL+ZoQUsc2TYLjO9pJGKbZP5oIdr0+No6zkdvBkWFlyLEP6XKyU+X5z6md1UR1wWjRFf/4XE5g/HmdeaESuBitz4HAbNPnfG8= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB3344.namprd18.prod.outlook.com (10.255.86.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2559.14; Thu, 19 Dec 2019 04:37:39 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::5db5:d179:8a01:4636]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::5db5:d179:8a01:4636%7]) with mapi id 15.20.2559.012; Thu, 19 Dec 2019 04:37:39 +0000 From: Anoob Joseph To: "Medvedkin, Vladimir" , "Ananyev, Konstantin" , Akhil Goyal , Adrien Mazarguil , "Doherty, Declan" , "Yigit, Ferruh" , Jerin Jacob Kollanukkaran , Thomas Monjalon CC: Ankur Dwivedi , Hemant Agrawal , Matan Azrad , "Nicolau, Radu" , Shahaf Shuler , "Narayana Prasad Raju Athreya" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [EXT] Re: [PATCH] ethdev: allow multiple security sessions to use one rte flow Thread-Index: AQHVtapoLPi3V0XJiUWYYEQnQa1cL6fA3TYQ Date: Thu, 19 Dec 2019 04:37:39 +0000 Message-ID: References: <1575801683-27269-1-git-send-email-anoobj@marvell.com> <1fc05516-3686-4267-a760-edbe0b92bc87@intel.com> <0a7d957d-e1f6-835b-15d8-4bccc491b4f9@intel.com> <8d5062b2-d7a7-9788-5788-01720dbad2f5@intel.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [14.140.231.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ab178272-50c2-45d5-65c8-08d7843d2dfb x-ms-traffictypediagnostic: MN2PR18MB3344: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 0256C18696 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(396003)(39850400004)(136003)(376002)(346002)(51914003)(189003)(199004)(13464003)(8936002)(2906002)(52536014)(15650500001)(55016002)(8676002)(81166006)(7696005)(81156014)(110136005)(64756008)(66556008)(316002)(66476007)(66446008)(4326008)(9686003)(76116006)(66946007)(30864003)(5660300002)(186003)(86362001)(478600001)(33656002)(26005)(54906003)(6506007)(7416002)(71200400001)(55236004)(53546011)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3344; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: my13j6gt4dgv8ehPKuHkU0ksmOGQUutd51RCEKr6YwPrzfH+vRTyhNRdU42H+xMwFv713C1Vy09Iyuk+xPkTYN4ag8yt0RGmGyZfCa549ZKPAjzTTmH7r65ixTY4XGhdBpjePBuvW3OgAENq2XHoNXNPoR6KQNFoSPOD9hs+KdJpI3XMighiEOdM5OL4zVdlppV63F/Q9fUoKG7iBOuJYOXoY+o072eD/Hj8GMbbb6JDNtRYYS36esGN+Kd0tVBlDLwPEul6E3WyAlM09OUrTaoJhUqaMOreCgfQTEE8XMkzyfk8an78wjVSy6Q83s238oDi0+J7I3qImSQEby8JLs/2tYdKnQ6uhSsOYTM5FLkuNuqzHHRHnHzMYb2YbNglyEh23cOKDrhTArRlYGo8n2E6FqMy3VzlFVC/7puB65c3Auzhs08g3V9h3VteVEult5xtkA43bYf/mBmdIcQLNxqCyRFItWkfOZ56I0/qyUflFVpGTSCbrtOoC1DfI75aYCG2Rblo6vcmgwEAA8dESTlyfPI1v4+8od2ZhYWVeWxrpeGZF4kZVHBulQpyXz1y Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: ab178272-50c2-45d5-65c8-08d7843d2dfb X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Dec 2019 04:37:39.4167 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BOfvDvRLd2pJTPY5gZIZxzjQdx37mt9AgXk6rAwUNhSL3fOnTu1CCXIphsVEhMgH/ylRyoUHWFxu2H0pLtvyhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3344 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-12-18_08:2019-12-17,2019-12-18 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH] ethdev: allow multiple security sessions to use one rte flow 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" SGkgVmxhZGltaXIsDQoNClBsZWFzZSBzZWUgaW5saW5lLg0KDQpUaGFua3MsDQpBbm9vYg0KDQo+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldiA8ZGV2LWJvdW5jZXNAZHBk ay5vcmc+IE9uIEJlaGFsZiBPZiBNZWR2ZWRraW4sIFZsYWRpbWlyDQo+IFNlbnQ6IFdlZG5lc2Rh eSwgRGVjZW1iZXIgMTgsIDIwMTkgNzoyMiBQTQ0KPiBUbzogQW5vb2IgSm9zZXBoIDxhbm9vYmpA bWFydmVsbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+IDxrb25zdGFudGluLmFuYW55ZXZA aW50ZWwuY29tPjsgQWtoaWwgR295YWwgPGFraGlsLmdveWFsQG54cC5jb20+Ow0KPiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT47IERvaGVydHksIERlY2xhbg0K PiA8ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0 QGludGVsLmNvbT47IEplcmluDQo+IEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxs LmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gQ2M6IEFu a3VyIER3aXZlZGkgPGFkd2l2ZWRpQG1hcnZlbGwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPGhl bWFudC5hZ3Jhd2FsQG54cC5jb20+OyBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3guY29tPjsN Cj4gTmljb2xhdSwgUmFkdSA8cmFkdS5uaWNvbGF1QGludGVsLmNvbT47IFNoYWhhZiBTaHVsZXIN Cj4gPHNoYWhhZnNAbWVsbGFub3guY29tPjsgTmFyYXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YQ0K PiA8cGF0aHJleWFAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtk cGRrLWRldl0gW0VYVF0gUmU6IFtQQVRDSF0gZXRoZGV2OiBhbGxvdyBtdWx0aXBsZSBzZWN1cml0 eQ0KPiBzZXNzaW9ucyB0byB1c2Ugb25lIHJ0ZSBmbG93DQo+IA0KPiBIaSBBbm9vYiwNCj4gDQo+ IE9uIDE4LzEyLzIwMTkgMDM6NTQsIEFub29iIEpvc2VwaCB3cm90ZToNCj4gPiBIaSBWbGFkaW1p ciwNCj4gPg0KPiA+IFBsZWFzZSBzZWUgaW5saW5lLg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEFu b29iDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTWVk dmVka2luLCBWbGFkaW1pciA8dmxhZGltaXIubWVkdmVka2luQGludGVsLmNvbT4NCj4gPj4gU2Vu dDogVHVlc2RheSwgRGVjZW1iZXIgMTcsIDIwMTkgMTE6MTQgUE0NCj4gPj4gVG86IEFub29iIEpv c2VwaCA8YW5vb2JqQG1hcnZlbGwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA+PiA8a29u c3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IEFraGlsIEdveWFsIDxha2hpbC5nb3lhbEBueHAu Y29tPjsNCj4gPj4gQWRyaWVuIE1hemFyZ3VpbCA8YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+ OyBEb2hlcnR5LCBEZWNsYW4NCj4gPj4gPGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IFlpZ2l0 LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+Ow0KPiA+PiBKZXJpbiBKYWNvYiBLb2xs YW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+OyBUaG9tYXMgTW9uamFsb24NCj4gPj4gPHRo b21hc0Btb25qYWxvbi5uZXQ+DQo+ID4+IENjOiBBbmt1ciBEd2l2ZWRpIDxhZHdpdmVkaUBtYXJ2 ZWxsLmNvbT47IEhlbWFudCBBZ3Jhd2FsDQo+ID4+IDxoZW1hbnQuYWdyYXdhbEBueHAuY29tPjsg TWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47DQo+IE5pY29sYXUsDQo+ID4+IFJhZHUg PHJhZHUubmljb2xhdUBpbnRlbC5jb20+OyBTaGFoYWYgU2h1bGVyDQo+IDxzaGFoYWZzQG1lbGxh bm94LmNvbT47DQo+ID4+IE5hcmF5YW5hIFByYXNhZCBSYWp1IEF0aHJleWEgPHBhdGhyZXlhQG1h cnZlbGwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW2Rw ZGstZGV2XSBbUEFUQ0hdIGV0aGRldjogYWxsb3cgbXVsdGlwbGUNCj4gPj4gc2VjdXJpdHkgc2Vz c2lvbnMgdG8gdXNlIG9uZSBydGUgZmxvdw0KPiA+Pg0KPiA+PiBIaSBBbm9vYiwNCj4gPj4NCj4g Pj4gT24gMTcvMTIvMjAxOSAxNDoyNCwgQW5vb2IgSm9zZXBoIHdyb3RlOg0KPiA+Pj4gSGkgVmxh ZGltaXIsDQo+ID4+Pg0KPiA+Pj4gUGxlYXNlIHNlZSBpbmxpbmUuDQo+ID4+Pg0KPiA+Pj4gVGhh bmtzLA0KPiA+Pj4gQW5vb2INCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPj4+PiBGcm9tOiBNZWR2ZWRraW4sIFZsYWRpbWlyIDx2bGFkaW1pci5tZWR2ZWRraW5A aW50ZWwuY29tPg0KPiA+Pj4+IFNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDE3LCAyMDE5IDQ6NTEg UE0NCj4gPj4+PiBUbzogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+OyBBbmFueWV2 LCBLb25zdGFudGluDQo+ID4+Pj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBBa2hp bCBHb3lhbCA8YWtoaWwuZ295YWxAbnhwLmNvbT47DQo+ID4+Pj4gQWRyaWVuIE1hemFyZ3VpbCA8 YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+OyBEb2hlcnR5LCBEZWNsYW4NCj4gPj4+PiA8ZGVj bGFuLmRvaGVydHlAaW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVs LmNvbT47DQo+ID4+Pj4gSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbiA8amVyaW5qQG1hcnZlbGwu Y29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ID4+Pj4gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+ID4+ Pj4gQ2M6IEFua3VyIER3aXZlZGkgPGFkd2l2ZWRpQG1hcnZlbGwuY29tPjsgSGVtYW50IEFncmF3 YWwNCj4gPj4+PiA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47IE1hdGFuIEF6cmFkIDxtYXRhbkBt ZWxsYW5veC5jb20+Ow0KPiA+PiBOaWNvbGF1LA0KPiA+Pj4+IFJhZHUgPHJhZHUubmljb2xhdUBp bnRlbC5jb20+OyBTaGFoYWYgU2h1bGVyDQo+ID4+IDxzaGFoYWZzQG1lbGxhbm94LmNvbT47DQo+ ID4+Pj4gTmFyYXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YSA8cGF0aHJleWFAbWFydmVsbC5jb20+ Ow0KPiBkZXZAZHBkay5vcmcNCj4gPj4+PiBTdWJqZWN0OiBSZTogW0VYVF0gUmU6IFtkcGRrLWRl dl0gW1BBVENIXSBldGhkZXY6IGFsbG93IG11bHRpcGxlDQo+ID4+Pj4gc2VjdXJpdHkgc2Vzc2lv bnMgdG8gdXNlIG9uZSBydGUgZmxvdw0KPiA+Pj4+DQo+ID4+Pj4gSGkgQW5vb2IsDQo+ID4+Pj4N Cj4gPj4+PiBPbiAxNi8xMi8yMDE5IDE2OjE2LCBBbm9vYiBKb3NlcGggd3JvdGU6DQo+ID4+Pj4+ IEhpIFZsYWRpbWlyLA0KPiA+Pj4+Pg0KPiA+Pj4+PiBQbGVhc2Ugc2VlIGlubGluZS4NCj4gPj4+ Pj4NCj4gPj4+Pj4gVGhhbmtzLA0KPiA+Pj4+PiBBbm9vYg0KPiA+Pj4+Pg0KPiA+Pj4+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206IE1lZHZlZGtpbiwgVmxhZGlt aXIgPHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRlbC5jb20+DQo+ID4+Pj4+PiBTZW50OiBNb25kYXks IERlY2VtYmVyIDE2LCAyMDE5IDk6MjkgUE0NCj4gPj4+Pj4+IFRvOiBBbm9vYiBKb3NlcGggPGFu b29iakBtYXJ2ZWxsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPj4+Pj4+IDxrb25zdGFu dGluLmFuYW55ZXZAaW50ZWwuY29tPjsgQWtoaWwgR295YWwNCj4gPj4+Pj4+IDxha2hpbC5nb3lh bEBueHAuY29tPjsgQWRyaWVuIE1hemFyZ3VpbA0KPiA+Pj4+Pj4gPGFkcmllbi5tYXphcmd1aWxA NndpbmQuY29tPjsgRG9oZXJ0eSwgRGVjbGFuDQo+ID4+Pj4+PiA8ZGVjbGFuLmRvaGVydHlAaW50 ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aA0KPiA+Pj4+Pj4gPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+ OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+ID4+Pj4+PiA8amVyaW5qQG1hcnZlbGwuY29t PjsgVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiA+Pj4+Pj4gQ2M6IEFu a3VyIER3aXZlZGkgPGFkd2l2ZWRpQG1hcnZlbGwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPj4+ Pj4+IDxoZW1hbnQuYWdyYXdhbEBueHAuY29tPjsgTWF0YW4gQXpyYWQNCj4gPG1hdGFuQG1lbGxh bm94LmNvbT47DQo+ID4+Pj4gTmljb2xhdSwNCj4gPj4+Pj4+IFJhZHUgPHJhZHUubmljb2xhdUBp bnRlbC5jb20+OyBTaGFoYWYgU2h1bGVyDQo+ID4+Pj4+PiA8c2hhaGFmc0BtZWxsYW5veC5jb20+ OyBOYXJheWFuYSBQcmFzYWQgUmFqdSBBdGhyZXlhDQo+ID4+Pj4+PiA8cGF0aHJleWFAbWFydmVs bC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4+Pj4+IFN1YmplY3Q6IFtFWFRdIFJlOiBbZHBkay1k ZXZdIFtQQVRDSF0gZXRoZGV2OiBhbGxvdyBtdWx0aXBsZQ0KPiA+Pj4+Pj4gc2VjdXJpdHkgc2Vz c2lvbnMgdG8gdXNlIG9uZSBydGUgZmxvdw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEV4dGVybmFsIEVt YWlsDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4+Pj4+IC0tDQo+ID4+Pj4+PiAt LQ0KPiA+Pj4+Pj4gLQ0KPiA+Pj4+Pj4gSGkgQW5vb2IsDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24g MTEvMTIvMjAxOSAxNzozMywgQW5vb2IgSm9zZXBoIHdyb3RlOg0KPiA+Pj4+Pj4+IEhpIEtvbnN0 YW50aW4sDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBQbGVhc2Ugc2VlIGlubGluZS4NCj4gPj4+Pj4+ Pg0KPiA+Pj4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4+PiBBbm9vYg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+ Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+Pj4+IEZyb206IGRldiA8ZGV2 LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBBbmFueWV2LA0KPiA+PiBLb25zdGFudGlu DQo+ID4+Pj4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgRGVjZW1iZXIgMTEsIDIwMTkgNDozNiBQTQ0K PiA+Pj4+Pj4+PiBUbzogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+OyBBa2hpbCBH b3lhbA0KPiA+Pj4+Pj4+PiA8YWtoaWwuZ295YWxAbnhwLmNvbT47IEFkcmllbiBNYXphcmd1aWwN Cj4gPj4+Pj4+Pj4gPGFkcmllbi5tYXphcmd1aWxANndpbmQuY29tPjsgRG9oZXJ0eSwgRGVjbGFu DQo+ID4+Pj4+Pj4+IDxkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb20+OyBZaWdpdCwgRmVycnVoDQo+ ID4+Pj4+Pj4+IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgSmVyaW4gSmFjb2IgS29sbGFudWtr YXJhbg0KPiA+Pj4+Pj4+PiA8amVyaW5qQG1hcnZlbGwuY29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ IDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiA+Pj4+Pj4+PiBDYzogQW5rdXIgRHdpdmVkaSA8YWR3 aXZlZGlAbWFydmVsbC5jb20+OyBIZW1hbnQgQWdyYXdhbA0KPiA+Pj4+Pj4+PiA8aGVtYW50LmFn cmF3YWxAbnhwLmNvbT47IE1hdGFuIEF6cmFkDQo+ID4+IDxtYXRhbkBtZWxsYW5veC5jb20+Ow0K PiA+Pj4+Pj4gTmljb2xhdSwNCj4gPj4+Pj4+Pj4gUmFkdSA8cmFkdS5uaWNvbGF1QGludGVsLmNv bT47IFNoYWhhZiBTaHVsZXINCj4gPj4+Pj4+Pj4gPHNoYWhhZnNAbWVsbGFub3guY29tPjsgTmFy YXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YQ0KPiA+Pj4+Pj4+PiA8cGF0aHJleWFAbWFydmVsbC5j b20+OyBkZXZAZHBkay5vcmcNCj4gPj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BB VENIXSBldGhkZXY6IGFsbG93IG11bHRpcGxlIHNlY3VyaXR5DQo+ID4+Pj4+Pj4+IHNlc3Npb25z IHRvIHVzZSBvbmUgcnRlIGZsb3cNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ Pj4gVGhlIHJ0ZV9zZWN1cml0eSBBUEkgd2hpY2ggZW5hYmxlcyBpbmxpbmUgcHJvdG9jb2wvY3J5 cHRvDQo+ID4+Pj4+Pj4+Pj4+IGZlYXR1cmUgbWFuZGF0ZXMgdGhhdCBmb3IgZXZlcnkgc2VjdXJp dHkgc2Vzc2lvbiBhbiBydGVfZmxvdw0KPiA+Pj4+Pj4+Pj4+PiBpcw0KPiA+PiBjcmVhdGVkLg0K PiA+Pj4+Pj4+Pj4+PiBUaGlzIHdvdWxkIGludGVybmFsbHkgdHJhbnNsYXRlIHRvIGEgcnVsZSBp biB0aGUgaGFyZHdhcmUNCj4gPj4+Pj4+Pj4+Pj4gd2hpY2ggd291bGQgZG8gcGFja2V0IGNsYXNz aWZpY2F0aW9uLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBJbiBydGVfc2VjdXJ0eSwg b25lIFNBIHdvdWxkIGJlIG9uZSBzZWN1cml0eSBzZXNzaW9uLiBBbmQgaWYNCj4gPj4+Pj4+Pj4+ Pj4gYW4gcnRlX2Zsb3cgbmVlZCB0byBiZSBjcmVhdGVkIGZvciBldmVyeSBzZXNzaW9uLCB0aGUg bnVtYmVyDQo+ID4+Pj4+Pj4+Pj4+IG9mIFNBcyBzdXBwb3J0ZWQgYnkgYW4gaW5saW5lIGltcGxl bWVudGF0aW9uIHdvdWxkIGJlDQo+ID4+Pj4+Pj4+Pj4+IGxpbWl0ZWQgYnkgdGhlIG51bWJlciBv ZiBydGVfZmxvd3MgdGhlIFBNRCB3b3VsZCBiZSBhYmxlIHRvDQo+IHN1cHBvcnQuDQo+ID4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IElmIHRoZSBmaWVsZHMgU1BJICYgSVAgYWRkcmVzc2VzIGFy ZSBhbGxvd2VkIHRvIGJlIGEgcmFuZ2UsDQo+ID4+Pj4+Pj4+Pj4+IHRoZW4gdGhpcyBsaW1pdGF0 aW9uIGNhbiBiZSBvdmVyY29tZS4gTXVsdGlwbGUgZmxvd3Mgd2lsbCBiZQ0KPiA+Pj4+Pj4+Pj4+ PiBhYmxlIHRvIHVzZSBvbmUgcnVsZSBmb3IgU0VDVVJJVFkgcHJvY2Vzc2luZy4gSW4gdGhpcyBj YXNlLA0KPiA+Pj4+Pj4+Pj4+PiB0aGUgc2VjdXJpdHkgc2Vzc2lvbiBwcm92aWRlZCBhcyBjb25m IHdvdWxkIGJlIE5VTEwuDQo+ID4+Pj4+Pj4+Pj4gV29uZGVyIHdoYXQgd2lsbCBiZSB0aGUgdXNh Z2UgbW9kZWwgZm9yIGl0Pw0KPiA+Pj4+Pj4+Pj4+IEFGQUlLLCAgUkZDIDQzMDEgY2xlYXJseSBz dGF0ZXMgdGhhdCBlaXRoZXIgU1BJIHZhbHVlIGFsb25lDQo+ID4+Pj4+Pj4+Pj4gb3IgaW4gY29u anVuY3Rpb24gd2l0aCBkc3QgKGFuZCBzcmMpIElQIHNob3VsZCBjbGVhcmx5DQo+ID4+Pj4+Pj4+ Pj4gaWRlbnRpZnkgU0EgZm9yIGluYm91bmQgU0FEDQo+ID4+Pj4+Pj4+IGxvb2t1cC4NCj4gPj4+ Pj4+Pj4+PiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nIG9idmlvdXMgaGVyZT8NCj4gPj4+Pj4+Pj4+ IFtBbm9vYl0gRXhpc3RpbmcgU0VDVVJJVFkgYWN0aW9uIHR5cGUgcmVxdWlyZXMgYXBwbGljYXRp b24gdG8NCj4gPj4+Pj4+Pj4+IGNyZWF0ZSBhbiAncnRlX2Zsb3cnIHBlciBTQSwgd2hpY2ggaXMg bm90IHJlYWxseSByZXF1aXJlZCBpZg0KPiA+Pj4+Pj4+Pj4gaC93IGNhbiB1c2UgU1BJIHRvIHVu aXF1ZWx5DQo+ID4+Pj4+Pj4+IGlkZW50aWZ5IHRoZSBzZWN1cml0eSBzZXNzaW9uL1NBLg0KPiA+ Pj4+Pj4+Pj4gRXhpc3RpbmcgcnRlX2Zsb3cgdXNhZ2U6IElQIChkc3Qsc3JjKSArIEVTUCArIFNQ SSAtPiBzZWN1cml0eQ0KPiA+Pj4+Pj4+Pj4gcHJvY2Vzc2luZyBlbmFibGVkIG9uIG9uZSBzZWN1 cml0eSBzZXNzaW9uIChpZSBvbiBTQSkNCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBUaGUgYWJv dmUgcnVsZSB3b3VsZCB1bmlxdWVseSBpZGVudGlmeSBwYWNrZXRzIGZvciBhbiBTQS4gQnV0DQo+ ID4+Pj4+Pj4+PiB3aXRoIHRoZSBhYm92ZSB1c2FnZSwgd2Ugd291bGQgcXVpY2tseSBleGhhdXN0 IGVudHJpZXMNCj4gPj4+Pj4+Pj4+IGF2YWlsYWJsZSBpbiBoL3cgbG9va3VwIHRhYmxlcyAod2hp Y2ggYXJlIGxpbWl0ZWQgb24gb3VyDQo+ID4+Pj4+Pj4+PiBoYXJkd2FyZSkuIEJ1dCBpZiBoL3cg Y2FuIHVzZSBTUEkgZmllbGQgdG8gaW5kZXgNCj4gPj4+Pj4+Pj4gaW50byBhIHRhYmxlIChmb3Ig ZXhhbXBsZSksIHRoZW4gdGhlIGFib3ZlIHJlcXVpcmVtZW50IG9mIG9uZQ0KPiA+Pj4+Pj4+PiBy dGVfZmxvdyBwZXIgU0EgaXMgbm90IHJlcXVpcmVkLg0KPiA+Pj4+Pj4+Pj4gUHJvcG9zZWQgcnRl X2Zsb3cgdXNhZ2U6IElQIChhbnkpICsgRVNQICsgU1BJIChhbnkpIC0+DQo+ID4+Pj4+Pj4+PiBz ZWN1cml0eSBwcm9jZXNzaW5nIGVuYWJsZWQgb24gYWxsIEVTUCBwYWNrZXRzDQo+ID4+Pj4+PiBT byB0aGlzIG1lYW5zIHRoYXQgU0Egd2lsbCBiZSBpbmRleGVkIG9ubHkgYnkgc3BpPyBXaGF0IGFi b3V0DQo+ID4+Pj4+PiBTQSdzIHdoaWNoIGFyZSBpbmRleGVkIGJ5IFNQSStESVArU0lQPw0KPiA+ Pj4+Pj4+Pj4gTm93IGgvdyBjb3VsZCB1c2UgU1BJIHRvIGluZGV4IGludG8gYSBwcmUtcG9wdWxh dGVkIHRhYmxlIHRvDQo+ID4+Pj4+Pj4+PiBnZXQgc2VjdXJpdHkgc2Vzc2lvbi4gUGxlYXNlIGRv IG5vdGUgdGhhdCwgU1BJIGlzIG5vdCBpZ25vcmVkDQo+ID4+Pj4+Pj4+PiBkdXJpbmcgdGhlIGFj dHVhbA0KPiA+Pj4+Pj4+PiBsb29rdXAuIEp1c3QgdGhhdCBpdCBpcyBub3QgdXNlZCB3aGlsZSBj cmVhdGluZyAncnRlX2Zsb3cnLg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBBbmQgdGhpcyB0YWJs ZSB3aWxsIGJlIHByZXBvcHVsYXRlZCBieSB1c2VyIGFuZCBwb2ludGVyIHRvIGl0DQo+ID4+Pj4+ Pj4+IHdpbGwgYmUgc29tZWhvdyBwYXNzZWQgdmlhIHJ0ZV9mbG93IEFQST8NCj4gPj4+Pj4+Pj4g SWYgeWVzLCB0aGVuIHdoYXQgd291bGQgYmUgdGhlIG1lY2hhbmlzbT8NCj4gPj4+Pj4+PiBbQW5v b2JdIEknbSBub3Qgc3VyZSB3aGF0IGV4YWN0bHkgeW91IG1lYW50IGJ5IHVzZXIuIEJ1dCBtYXkg YmUNCj4gPj4+Pj4+PiBJJ2xsIGV4cGxhaW4NCj4gPj4+Pj4+IGhvdyBpdCdzIGRvbmUgaW4gT0NU RU9OVFgyIFBNRC4NCj4gPj4+Pj4+PiBUaGUgYXBwbGljYXRpb24gd291bGQgY3JlYXRlIHNlY3Vy aXR5X3Nlc3Npb24gZm9yIGV2ZXJ5IFNBLiBTUEkNCj4gPj4+Pj4+PiBldGMgd291bGQgYmUNCj4g Pj4+Pj4+IGF2YWlsYWJsZSB0byBQTUQgKGluIGNvbmYpIHdoZW4gdGhlIHNlc3Npb24gaXMgY3Jl YXRlZC4gTm93IHRoZQ0KPiA+Pj4+Pj4gUE1EIHdvdWxkIHBvcHVsYXRlIFNBIHJlbGF0ZWQgcGFy YW1zIGluIGEgc3BlY2lmaWMgbG9jYXRpb24gdGhhdA0KPiA+Pj4+Pj4gaC93IHdvdWxkIGFjY2Vz cy4gVGhpcyBtZW1vcnkgaXMgYWxsb2NhdGVkIGR1cmluZyBkZXZpY2UNCj4gPj4+Pj4+IGNvbmZp Z3VyZSBhbmQgaC93IHdvdWxkIGhhdmUgdGhlIHBvaW50ZXIgYWZ0ZXIgdGhlIGluaXRpYWxpemF0 aW9uIGlzDQo+IGRvbmUuDQo+ID4+Pj4+PiBJZiBtZW1vcnkgaXMgYWxsb2NhdGVkIGR1cmluZyBk ZXZpY2UgY29uZmlndXJlIHdoYXQgaXMgdXBwZXINCj4gPj4+Pj4+IGxpbWl0IGZvciBudW1iZXIg b2Ygc2Vzc2lvbnM/IFdoYXQgaWYgYXBwIG5lZWRzIG1vcmU/DQo+ID4+Pj4+Pj4gUE1EIHVzZXMg U1BJIGFzIGluZGV4IHRvIHdyaXRlIGludG8gc3BlY2lmaWMgbG9jYXRpb25zKGR1cmluZw0KPiA+ Pj4+Pj4+IHNlc3Npb24gY3JlYXRlKQ0KPiA+Pj4+Pj4gYW5kIGgvdyB3b3VsZCB1c2UgaXQgd2hl biBpdCBzZWVzIGFuIEVTUCBwYWNrZXQgZWxpZ2libGUgZm9yDQo+ID4+Pj4+PiBTRUNVUklUWSAo aW4gcmVjZWl2ZSBwYXRoLCBwZXIgcGFja2V0KS4gQXMgbG9uZyBhcyBzZXNzaW9uDQo+ID4+Pj4+ PiBjcmVhdGlvbiBjb3VsZCBwb3B1bGF0ZSBhdCBtZW1vcnkgbG9jYXRpb25zIHRoYXQgaC93IHdv dWxkIGxvb2sNCj4gPj4+Pj4+IGF0LCB0aGlzIHNjaGVtZSB3b3VsZA0KPiA+Pj4+IHdvcmsuDQo+ ID4+Pj4+IFtBbm9vYl0gWWVzLiBCdXQgd2UgbmVlZCB0byBhbGxvdyBhcHBsaWNhdGlvbiB0byBj b250cm9sIHRoZSBoL3cNCj4gPj4+Pj4gaXBzZWMNCj4gPj4+PiBwcm9jZXNzaW5nIGFzIHdlbGwu IExldCdzIHNheSwgYXBwbGljYXRpb24gd2FudHMgdG8gaGFuZGxlIGENCj4gPj4+PiBzcGVjaWZp YyBTUEkgcmFuZ2UgaW4gbG9va2FzaWRlIG1vZGUgKG1heSBiZSBiZWNhdXNlIG9mIHVuc3VwcG9y dGVkDQo+ID4+Pj4gY2FwYWJpbGl0aWVzPyksIGluIHRoYXQgY2FzZSBoYXZpbmcgcnRlX2Zsb3cg d2lsbCBoZWxwIGluIGZpbmUNCj4gPj4+PiB0dW5pbmcgaG93IHRoZQ0KPiA+PiBoL3cgcGFja2V0 IHN0ZWVyaW5nIGhhcHBlbnMuDQo+ID4+Pj4gQWxzbywgcnRlX2Zsb3cgZW5hYmxlcyBIL3cgcGFy c2luZyBvbiBpbmNvbWluZyBwYWNrZXRzLiBUaGlzIGluZm8NCj4gPj4+PiBpcyB1c2VmdWwgZXZl biBhZnRlciBJUHNlYyBwcm9jZXNzaW5nIGlzIGNvbXBsZXRlLiBPciBpZg0KPiA+Pj4+IGFwcGxp Y2F0aW9uIHdhbnRzIHRvIGdpdmUgaGlnaGVyIHByaW9yaXR5IHRvIGEgcmFuZ2Ugb2YgU1BJcywN Cj4gPj4+PiBydGVfZmxvdyB3b3VsZCBhbGxvdyBkb2luZw0KPiA+PiBzby4NCj4gPj4+Pj4+IFdo YXQgYWxnb3JpdGhtIG9mIGluZGV4aW5nIGJ5IFNQSSBpcyB0aGVyZT8gQ291bGQgSSB1c2UgYW55 DQo+ID4+Pj4+PiBhcmJpdHJhcnkgU1BJPyBJZiBzb21lIGtpbmQgb2YgaGFzaGluZyBpcyB1c2Vk LCB3aGF0IGFib3V0IGNvbGxpc2lvbnM/DQo+ID4+Pj4+IFtBbm9vYl0gVGhhdCBpcyBpbXBsZW1l bnRhdGlvbiBkZXBlbmRlbnQuIEluIG91ciBQTUQsIHdlIG1hcCBpdA0KPiA+Pj4+PiBvbmUNCj4g Pj4gdG8gb25lLg0KPiA+Pj4+IEFzIGluLCBTUEkgaXMgdXNlZCBhcyBpbmRleCBpbiB0aGUgdGFi bGUuDQo+ID4+Pj4gU28sIGFzIGZhciBhcyB5b3UgYXJlIG1hcHBpbmcgb25lIHRvIG9uZSBhbmQg dXNpbmcgU1BJIGFzIGFuIGluZGV4LA0KPiA+Pj4+IGEgbG90IG9mIG1lbW9yeSBpcyB3YXN0ZWQg aW4gdGhlIHRhYmxlIGZvciB1bnVzZWQgU1BJJ3MuwqAgQWxzbywgeW91DQo+ID4+Pj4gYXJlIG5v dCBhYmxlIHRvIGhhdmUgYSB0YWJsZSB3aXRoIDJeMzIgc2Vzc2lvbnMuIEl0IGlzIGxpa2VseSB0 aGF0DQo+ID4+Pj4gc29tZSBudW1iZXIgb2YgU1BJJ3MgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBh cmUgdXNlZCBhcyBhbiBpbmRleC4NCj4gPj4+PiBBbmQgaXQgcmFpc2VzIGEgcXVlc3Rpb24gLSB3 aGF0IGlmIGFwcGxpY2F0aW9uIG5lZWRzIHR3byBzZXNzaW9ucw0KPiA+Pj4+IHdpdGggZGlmZmVy ZW50DQo+ID4+IFNQSSdzIHdoaWNoIGhhdmUgdGhlIHNhbWUgbHNiJ3M/DQo+ID4+PiBbQW5vb2Jd IHJ0ZV9zZWN1cml0eV9zZXNzaW9uX2NyZWF0ZSgpIHdvdWxkIGZhaWwuIFdoeSBkbyB5b3Ugc2F5 IHdlDQo+ID4+IGNhbm5vdCBzdXBwb3J0IDJeMzIgc2Vzc2lvbnM/IElmIGl0J3MgbWVtb3J5IGxp bWl0YXRpb24sIHRoZSBzYW1lDQo+ID4+IG1lbW9yeSBsaW1pdGF0aW9uIHdvdWxkIGFwcGx5IGV2 ZW4gaWYgeW91IGhhdmUgZHluYW1pYyBhbGxvY2F0aW9uIG9mDQo+ID4+IG1lbW9yeSBmb3Igc2Vz c2lvbnMuIFNvIGF0IHNvbWUgcG9pbnQgc2Vzc2lvbiBjcmVhdGlvbiB3b3VsZCBzdGFydA0KPiA+ PiBmYWlsaW5nLiBJbiBvdXIgUE1ELCB3ZSBhbGxvdyB1c2VyIHRvIHNwZWNpZnkgdGhlIHJhbmdl IGl0IHJlcXVpcmVzIHVzaW5nDQo+IGRldmFyZ3MuDQo+ID4+PiBBbHNvLCBjb2xsaXNpb24gb2Yg TFNCcyBjYW4gYmUgYXZvaWRlZCBieSBpbnRyb2R1Y2luZyBhICJNQVJLIiBydWxlDQo+ID4+PiBp bg0KPiA+PiBhZGRpdGlvbiB0byAiU0VDVVJJVFkiIGZvciB0aGUgcnRlX2Zsb3cgY3JlYXRlZCBm b3IgaW5saW5lIGlwc2VjLg0KPiA+PiBDdXJyZW50bHkgdGhhdCBtb2RlbCBpcyBub3Qgc3VwcG9y dGVkIChpbiB0aGUgbGlicmFyeSksIGJ1dCB0aGF0IGlzDQo+ID4+IG9uZSBzb2x1dGlvbiB0byB0 aGUgY29sbGlzaW9ucyB0aGF0IGNhbiBiZSBwdXJzdWVkIGxhdGVyLg0KPiA+Pj4+IE1vcmVvdmVy LCB3aGF0IGFib3V0DQo+ID4+Pj4gdHdvIHNlc3Npb25zIHdpdGggc2FtZSBTUEkgYnV0IGRpZmZl cmVudCBkc3QgYW5kIHNyYyBpcCBhZGRyZXNzZXM/DQo+ID4+PiBbQW5vb2JdIEN1cnJlbnRseSBv dXIgUE1EIG9ubHkgc3VwcG9ydCBVQ0FTVCBJUFNFQy4gU28gYW5vdGhlcg0KPiA+Pj4gc2Vzc2lv bg0KPiA+PiB3aXRoIHNhbWUgU1BJIHdvdWxkIHJlc3VsdCBpbiBzZXNzaW9uIGNyZWF0aW9uIGZh aWx1cmUuDQo+ID4+DQo+ID4+IEFoYSwgSSBzZWUsIHRoYW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9u LiBTbyBteSBzdWdnZXN0aW9uIGhlcmUgd291bGQgYmU6DQo+ID4+DQo+ID4+IC0gQXBwbGljYXRp b24gZGVmaW5lcyB0aGF0IHNvbWUgc3Vic2V0IG9mIFNBJ3Mgd291bGQgYmUgaW5saW5lDQo+ID4+ IHByb3RvY29sIHByb2Nlc3NlZC4gQW5kIHRoaXMgU0EncyB3aWxsIGJlIGluZGV4ZWQgYnkgU1BJ IG9ubHkuDQo+ID4+DQo+ID4+IC0gQXBwIGRlZmluZXMgc3BlY2lhbCByYW5nZSBmb3IgU1BJIHZh bHVlcyBvZiB0aGlzIFNBJ3MgKHNpemUgb2YgdGhpcw0KPiA+PiByYW5nZSBpcyBkZWZpbmVkIHVz aW5nIGRldmFyZ3MpIGFuZCBmaXJzdCBTUEkgdmFsdWUgKGZyb20gY29uZmlndXJhdGlvbj8pLg0K PiA+Pg0KPiA+PiAtIEFwcCBpbnN0YWxscyBydGVfZmxvdyBvbmx5IGZvciB0aGlzIHJhbmdlIChm cm9tIGZpcnN0IFNQSSB0byBmaXJzdA0KPiA+PiBTUEkNCj4gPj4gKyByYW5nZSBzaXplKSwgbm90 IGZvciBhbGwgU1BJIHZhbHVlcy4NCj4gPiBbQW5vb2JdIFRoaXMgaXMgZXhhY3RseSB3aGF0IHRo aXMgcGF0Y2ggcHJvcG9zZXMuIEFsbG93aW5nIHRoZSBTUEkgYW5kIHRoZQ0KPiBJUCBhZGRyZXNz ZXMgdG8gYmUgcmFuZ2UgYW5kIGhhdmUgc2VjdXJpdHlfc2Vzc2lvbiBwcm92aWRlZCBhcyBOVUxM LiBXaGF0DQo+IHlvdSBoYXZlIGRlc2NyaWJlZCB3b3VsZCBiZSBhY2hpZXZhYmxlIG9ubHkgaWYg d2UgY2FuIGFsbG93IHRoaXMNCj4gbW9kaWZpY2F0aW9uIGluIHRoZSBsaWIuDQo+ID4NCj4gPiBT byBjYW4gSSBhc3N1bWUgeW91IGFyZSBpbiBhZ3JlZW1lbnQgd2l0aCB0aGlzIHBhdGNoPw0KPiAN Cj4gTm90IGV4YWN0bHkuIEkgbWVhbnQgaXQgaXMgYmV0dGVyIHRvIG1ha2UgbW9yZSBzcGVjaWZp ZWQgZmxvdyBsaWtlOg0KPiANCj4gLi4uDQo+IA0KPiBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9lc3Ag ZXNwX3NwZWMgPSB7DQo+IA0KPiAgwqDCoMKgwqDCoMKgwqAgLmhkciA9IHsNCj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuc3BpID0gcnRlX2NwdV90b19iZV8zMihmaXJzdF9zcGkp LA0KPiAgwqDCoMKgwqDCoMKgwqAgfSwNCj4gDQo+IH07DQo+IA0KPiBzdHJ1Y3QgcnRlX2Zsb3df aXRlbV9lc3AgZXNwX21hc2sgPSB7DQo+IA0KPiAgwqDCoMKgwqDCoMKgwqAgLmhkciA9IHsNCj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuc3BpID0gcnRlX2NwdV90b19iZV8zMihu Yl9pcHNlY19pbl9zYSAtIDEpLA0KPiAgwqDCoMKgwqDCoMKgwqAgfSwNCj4gDQo+IH07DQo+IA0K PiBwYXR0ZXJuWzBdLnR5cGUgPSBSVEVfRkxPV19JVEVNX1RZUEVfRVNQOw0KPiANCj4gcGF0dGVy blswXS5zcGVjID0gJiBlc3Bfc3BlYzsNCj4gDQo+IHBhdHRlcm5bMF0ubWFzayA9ICZlc3BfbWFz azsNCj4gDQo+IC4uLg0KPiANCj4gU28gdGhpcyBtZWFucyBpbmxpbmUgcHJvdG8gZGV2aWNlIHdv dWxkIHByb2Nlc3Mgb25seSBzcGVjaWFsIHN1YnNldCBvZiBTUEkncy4NCj4gQWxsIG90aGVyIHdp bGwgYmUgcHJvY2Vzc2VkIGFzIHVzdWFsLiBTdXJlLCB5b3UgY2FuIGFzc2lnbiBhbGwNCj4gMl4z MiBTUEkgcmFuZ2UgYW5kIGl0IHdvcmsgYXMgeW91IGludGVuZGVkIGVhcmxpZXIuIEkgdGhpbmsg d2UgbmVlZCB0byBoYXZlDQo+IGZpbmVyIGdyYWluZWQgY29udHJvbCBoZXJlLg0KPiANCg0KW0Fu b29iXSBBbGxvd2luZyBhIHJhbmdlIGZvciBTUEkgaXMgd2hhdCB5b3UgaGF2ZSBhbHNvIGRlc2Ny aWJlZC4gV2hhdCB5b3UgZGVzY3JpYmVkIGlzIG9uZSB3YXkgdG8gZGVmaW5lIGEgcmFuZ2UuIFRo YXQgd2lsbCBjb21lIGFzIHBhcnQgb2YgdGhlIGltcGxlbWVudGF0aW9uLCBpZSwgYSBjaGFuZ2Ug aW4gdGhlIGV4YW1wbGUgYXBwbGljYXRpb24uIFRoaXMgcGF0Y2ggaW50ZW5kcyB0byBhbGxvdyB1 c2luZyBhIHJhbmdlIGZvciBTUEkgdGhhbiBhIGZpeGVkIHZhbHVlLiBJIGJlbGlldmUgeW91IGFy ZSBhbHNvIGluIGFncmVlbWVudCB0aGVyZS4NCg0KPiA+DQo+ID4+IC0gT3RoZXIgU1BJIHZhbHVl cyB3b3VsZCBiZSBwcm9jZXNzZWQgbm9uIGlubGluZS4NCj4gPj4NCj4gPj4gSW4gdGhpcyBjYXNl IHdlIHdvdWxkIGJlIGFibGUgdG8gaGF2ZSBTQSBhZGRyZXNzZWQgYnkgbG9uZ2VyIHR1cGxlIChp LmUuDQo+ID4+IFNQSStESVArU0lQKSBvdXRzaWRlIG9mIGJlZm9yZSBtZW50aW9uZWQgcmFuZ2Us IGFzIHdlbGwgYXMgU0Egd2l0aA0KPiA+PiB1bnN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgYnkgaW5s aW5lIHByb3RvY29sIGRldmljZS4NCj4gPj4NCj4gPj4+Pj4+Pj4+IFRoZSB1c2FnZSBvZiBvbmUg J3J0ZV9mbG93JyBmb3IgbXVsdGlwbGUgU0FzIGlzIG5vdCBtYW5kYXRvcnkuDQo+ID4+Pj4+Pj4+ PiBJdCBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXBwbGljYXRpb24gcmVxdWlyZXMgbGFyZ2UgbnVt YmVyIG9mDQo+IFNBcy4NCj4gPj4+Pj4+Pj4+IFRoZSBwcm9wb3NlZA0KPiA+Pj4+Pj4+PiBjaGFu Z2UgaXMgdG8gYWxsb3cgbW9yZSBlZmZpY2llbnQgdXNhZ2Ugb2YgaC93IHJlc291cmNlcyB3aGVy ZQ0KPiA+Pj4+Pj4+PiBpdCdzIHBlcm1pdHRlZCBieSB0aGUgUE1ELg0KPiA+Pj4+Pj4+Pj4+PiBB cHBsaWNhdGlvbiBzaG91bGQgZG8gYW4gcnRlX2Zsb3dfdmFsaWRhdGUoKSB0byBtYWtlIHN1cmUN Cj4gPj4+Pj4+Pj4+Pj4gdGhlIGZsb3cgaXMgc3VwcG9ydGVkIG9uIHRoZSBQTUQuDQo+ID4+Pj4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEFub29iIEpvc2VwaCA8YW5vb2Jq QG1hcnZlbGwuY29tPg0KPiA+Pj4+Pj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4+Pj4gICAgICBsaWIv bGlicnRlX2V0aGRldi9ydGVfZmxvdy5oIHwgNiArKysrKysNCj4gPj4+Pj4+Pj4+Pj4gICAgICAx IGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspDQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4+Pj4+Pj4+ Pj4+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaCBpbmRleCA0NTJkMzU5Li4yMWZhN2Vk DQo+IDEwMDY0NA0KPiA+Pj4+Pj4+Pj4+PiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxv dy5oDQo+ID4+Pj4+Pj4+Pj4+ICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4g Pj4+Pj4+Pj4+Pj4gQEAgLTIyMzksNiArMjIzOSwxMiBAQCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X21ldGVyIHsNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgKiBkaXJlY3Rpb24uDQo+ID4+Pj4+Pj4+Pj4+ ICAgICAgICoNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgKiBNdWx0aXBsZSBmbG93cyBjYW4gYmUgY29u ZmlndXJlZCB0byB1c2UgdGhlIHNhbWUNCj4gPj4+Pj4+Pj4+Pj4gc2VjdXJpdHkNCj4gPj4gc2Vz c2lvbi4NCj4gPj4+Pj4+Pj4+Pj4gKyAqDQo+ID4+Pj4+Pj4+Pj4+ICsgKiBUaGUgTlVMTCB2YWx1 ZSBpcyBhbGxvd2VkIGZvciBzZWN1cml0eSBzZXNzaW9uLiBJZg0KPiA+Pj4+Pj4+Pj4+PiArIHNl Y3VyaXR5IHNlc3Npb24gaXMgTlVMTCwNCj4gPj4+Pj4+Pj4+Pj4gKyAqIHRoZW4gU1BJIGZpZWxk IGluIEVTUCBmbG93IGl0ZW0gYW5kIElQIGFkZHJlc3NlcyBpbiBmbG93DQo+ID4+Pj4+Pj4+Pj4+ ICsgaXRlbXMgJ0lQdjQnIGFuZA0KPiA+Pj4+Pj4+Pj4+PiArICogJ0lQdjYnIHdpbGwgYmUgYWxs b3dlZCB0byBiZSBhIHJhbmdlLiBUaGUgcnVsZSB0aHVzDQo+ID4+Pj4+Pj4+Pj4+ICsgY3JlYXRl ZCBjYW4gZW5hYmxlDQo+ID4+Pj4+Pj4+Pj4+ICsgKiBTRUNVUklUWSBwcm9jZXNzaW5nIG9uIG11 bHRpcGxlIGZsb3dzLg0KPiA+Pj4+Pj4+Pj4+PiArICoNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgKi8N Cj4gPj4+Pj4+Pj4+Pj4gICAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3NlY3VyaXR5IHsNCj4g Pj4+Pj4+Pj4+Pj4gICAgICAJdm9pZCAqc2VjdXJpdHlfc2Vzc2lvbjsgLyoqPCBQb2ludGVyIHRv IHNlY3VyaXR5DQo+ID4+Pj4+Pj4+Pj4+IHNlc3Npb24NCj4gPj4+PiBzdHJ1Y3R1cmUuDQo+ID4+ Pj4+Pj4+Pj4+ICovDQo+ID4+Pj4+Pj4+Pj4+IC0tDQo+ID4+Pj4+Pj4+Pj4+IDIuNy40DQo+ID4+ Pj4+PiAtLQ0KPiA+Pj4+Pj4gUmVnYXJkcywNCj4gPj4+Pj4+IFZsYWRpbWlyDQo+ID4+Pj4gLS0N Cj4gPj4+PiBSZWdhcmRzLA0KPiA+Pj4+IFZsYWRpbWlyDQo+ID4+IC0tDQo+ID4+IFJlZ2FyZHMs DQo+ID4+IFZsYWRpbWlyDQo+IA0KPiAtLQ0KPiBSZWdhcmRzLA0KPiBWbGFkaW1pcg0KDQo=