From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DF14FC33CB1 for ; Thu, 16 Jan 2020 12:03:35 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 2B87820663 for ; Thu, 16 Jan 2020 12:03:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="YaBlXr1i"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=marvell.onmicrosoft.com header.i=@marvell.onmicrosoft.com header.b="JfcuEQZU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2B87820663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=marvell.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 611761C2A4; Thu, 16 Jan 2020 13:03:34 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id F25251C227 for ; Thu, 16 Jan 2020 13:03:31 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00GC1oFL012504; Thu, 16 Jan 2020 04:03:30 -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=x777bhgg1PR/gaTa986zCfihU67TPEq/TBY2m6+BRxY=; b=YaBlXr1ij40QTNmkSPSCYL1R9Xr+VBSCYOdaQuYg8S5+xCHLQu4asCiljXGXycS9rqob toz84ObRjcTcUKea6a8EiBUuwxlleEkQMuAWNMaatQ2TGnChlJ/DGpEA7q35emnCABEM jcQc3AgyT3xKpONmdCnvNNwCJqJXctAZhP3x+e8e9nSCD/gJU7sJe8lNKauA270dJiM1 WtfdSmrY8jlzqmA/eX1kaH2Vubj68T8wooFfhZJAyhih0D3ATGlPlU3qmHf6fj3NGYr0 iXNP8U6USoImoMqewM/4nuoYgB36/TDNYX4NBx4jG6Hh2HNQ23D8+w61ae2u9qKHK3vY 5w== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2xhrhe6trk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 04:03:30 -0800 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 16 Jan 2020 04:03:28 -0800 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.57) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Thu, 16 Jan 2020 04:03:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gvrIn7ek4sErKHFmFCGsRKqovSfVCDGL3PluVepQIB8+sVXEXuhLr51wDorhMs9qPpCvWRDPQw4bug633C3fcO/UsvP6yFFsu4qsLgHXmsLW6N44SJqN0E37fYSn4L8HkTpDdUkkNgajDwWGVVTjODNeU+L9ZTb4rReA4YUY5+Ch8m8IjDv6I2VAofpWABOguhanFacsTV/Ik5jRaqQNscEFKZjnF4O/Lh0BP9GWltdrw3kfOwPVZUxxz6ez+pm9x4BzlHGHSW58cjr2IxaroVNa7C8iKEe99R6HSztixoO/jubJDYrFGJTMHA1MJN7NK+t3HTS3vWTfUDPJqGf4gw== 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=x777bhgg1PR/gaTa986zCfihU67TPEq/TBY2m6+BRxY=; b=CYh/2vBoyGR7BFElgvxPtxTLW7k+dQxpZB5ozrjsx8TwZXK+hqbabxySzSkinSBPmSvR1vR6fjztNJVW9u+z2xegMheFRDwLkl/+XRGPgj46otiSg73j6FdR53AcuFdrtfZVNKTRUpfEnvYp0iZv+tWyaYYPIZdDVcPSgd0H7c23EJA4zMQuTmRPVkf4VZsaYE+lNzze0jMnBK14EOHRkhkQUitqhAEsXkqScyNRsbaNhcvZq79yixh3iaFERHwYUXfITCc8AUMiTqyYjTa/LKiSP19xpRQyDbPJsGIVKb9Bx0paOf9zcHTnhBAcjbJNaOZkusoek3aYxKYbINSa3Q== 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=x777bhgg1PR/gaTa986zCfihU67TPEq/TBY2m6+BRxY=; b=JfcuEQZUtgf98KjkmabHs4YqmvVAoSZGxgM7+39esA8GeypUXVx1VwhOLITWahTjlqsJolMHACwkjlS6qkgj+ztwapb2pngwZrFuc9y7ltFG5FKkw3Tx9Ga+SwZB12qMzwraS81T+EDepNdkGbvw+RGNusRpHGIObT/+wZxt/FE= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB3247.namprd18.prod.outlook.com (10.255.237.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.18; Thu, 16 Jan 2020 12:03:27 +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.2644.015; Thu, 16 Jan 2020 12:03:27 +0000 From: Anoob Joseph To: Ori Kam , "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: AQHVtapoLPi3V0XJiUWYYEQnQa1cL6fA3TYQgAbi7ICAGTS9AIABHogAgAf3RgCAA0xVgIAAAwWw Date: Thu, 16 Jan 2020 12:03:26 +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> <23ee9ff1-93ac-3381-d10d-867681c25932@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: [111.125.206.208] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c5e56cbf-b242-4687-c827-08d79a7c184a x-ms-traffictypediagnostic: MN2PR18MB3247: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-forefront-prvs: 02843AA9E0 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(39840400004)(346002)(366004)(376002)(396003)(199004)(189003)(66476007)(478600001)(66556008)(64756008)(71200400001)(76116006)(66446008)(30864003)(52536014)(8936002)(66946007)(26005)(86362001)(8676002)(81166006)(54906003)(55236004)(81156014)(316002)(5660300002)(2906002)(53546011)(33656002)(4326008)(7696005)(9686003)(55016002)(7416002)(15650500001)(186003)(6506007)(110136005)(921003)(1121003)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3247; H:MN2PR18MB2877.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: jT3ym30xv+E0maiF+KW0lHWQk08tftDnRt1djo10tPRCYmRgWCbHg2xXUyTnNjLTT9Djuxgo9WRxxj6/snPWHO/0NekLBH6crYm+ZoVpJ489QbxX58L8zRoCYrvs1VuAejiVsHEbCvBBvKoOriXjCTKMUkn3NIAIkPldZWdReRobzeGvyJy6IwIWm53/hWMyQBAXY848iwGcyyRnCAywHTBTc68jeLFrc/ZyAKW7CUIKK+PEmiBzWl9xo4Mnr7pHMuEEQ8IJHOmT2qcUWhVBC4SG1nI0I4HJE5lvq1sO9qPYmboEHZKyAFZnIZOmQKv9barvoVz+n2NTNcoS3Dk7g/PmIJxtGjH3JVLyQHaqpTGa+V/0DLAQ3JZvc1A/5f2cmQG/kfryEdceS+f2/L0hZS2jjFdLz/MTnAZMSG+4BAKfeOiea7b4FRovaaqZjmAfcQcnS/LaSzre6lBBXniChiqfoS1yyhuwBlt7nuYPTACCEuK3dQA7R6lQvqbYv6h8 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c5e56cbf-b242-4687-c827-08d79a7c184a X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2020 12:03:26.8801 (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: 4EDM2sjl2XqNWAyigWRBHCM7QwDq6Ca6zgnKwGmkvcaiVHpQdJD49etFfuC93dS8g3lShXTNqPuN6M1uz5/GFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3247 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-16_03:2020-01-16, 2020-01-15 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" SGkgT3JpLA0KDQpQbGVhc2Ugc2VlIGlubGluZS4NCg0KVGhhbmtzLA0KQW5vb2INCg0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3Jn PiBPbiBCZWhhbGYgT2YgT3JpIEthbQ0KPiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSAxNiwgMjAy MCA1OjA2IFBNDQo+IFRvOiBBbm9vYiBKb3NlcGggPGFub29iakBtYXJ2ZWxsLmNvbT47IE1lZHZl ZGtpbiwgVmxhZGltaXINCj4gPHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRlbC5jb20+OyBBbmFueWV2 LCBLb25zdGFudGluDQo+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgQWtoaWwgR295 YWwgPGFraGlsLmdveWFsQG54cC5jb20+OyBBZHJpZW4NCj4gTWF6YXJndWlsIDxhZHJpZW4ubWF6 YXJndWlsQDZ3aW5kLmNvbT47IERvaGVydHksIERlY2xhbg0KPiA8ZGVjbGFuLmRvaGVydHlAaW50 ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IEplcmluIEph Y29iDQo+IEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47IFRob21hcyBNb25qYWxv bg0KPiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gQ2M6IEFua3VyIER3aXZlZGkgPGFkd2l2ZWRp QG1hcnZlbGwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+ OyBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3guY29tPjsgTmljb2xhdSwNCj4gUmFkdSA8cmFk dS5uaWNvbGF1QGludGVsLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFub3guY29t PjsNCj4gTmFyYXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YSA8cGF0aHJleWFAbWFydmVsbC5jb20+ OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW0VYVF0gUmU6IFtQQVRD SF0gZXRoZGV2OiBhbGxvdyBtdWx0aXBsZSBzZWN1cml0eQ0KPiBzZXNzaW9ucyB0byB1c2Ugb25l IHJ0ZSBmbG93DQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgQW5vb2IgSm9z ZXBoDQo+ID4gU2VudDogVHVlc2RheSwgSmFudWFyeSAxNCwgMjAyMCAxMToyOCBBTQ0KPiA+IFRv OiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5jb20+OyBNZWR2ZWRraW4sIFZsYWRpbWlyDQo+ID4g PHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRlbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+ID4g PGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBBa2hpbCBHb3lhbCA8YWtoaWwuZ295YWxA bnhwLmNvbT47DQo+ID4gQWRyaWVuIE1hemFyZ3VpbCA8YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5j b20+OyBEb2hlcnR5LCBEZWNsYW4NCj4gPiA8ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsgWWln aXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47DQo+ID4gSmVyaW4gSmFjb2IgS29s bGFudWtrYXJhbiA8amVyaW5qQG1hcnZlbGwuY29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ID4gPHRo b21hc0Btb25qYWxvbi5uZXQ+DQo+ID4gQ2M6IEFua3VyIER3aXZlZGkgPGFkd2l2ZWRpQG1hcnZl bGwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPiA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT47IE1h dGFuIEF6cmFkIDxtYXRhbkBtZWxsYW5veC5jb20+Ow0KPiBOaWNvbGF1LA0KPiA+IFJhZHUgPHJh ZHUubmljb2xhdUBpbnRlbC5jb20+OyBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94LmNv bT47DQo+ID4gTmFyYXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YSA8cGF0aHJleWFAbWFydmVsbC5j b20+OyBkZXZAZHBkay5vcmcNCj4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbRVhUXSBSZTog W1BBVENIXSBldGhkZXY6IGFsbG93IG11bHRpcGxlDQo+ID4gc2VjdXJpdHkgc2Vzc2lvbnMgdG8g dXNlIG9uZSBydGUgZmxvdw0KPiA+DQo+ID4gSGkgT3JpLA0KPiA+DQo+ID4gUGxlYXNlIHNlZSBp bmxpbmUuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gQW5vb2INCj4gPg0KPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IE9yaSBLYW0gPG9yaWthQG1lbGxhbm94LmNv bT4NCj4gPiA+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDksIDIwMjAgMTowNiBQTQ0KPiA+ID4g VG86IE1lZHZlZGtpbiwgVmxhZGltaXIgPHZsYWRpbWlyLm1lZHZlZGtpbkBpbnRlbC5jb20+OyBB bmFueWV2LA0KPiA+ID4gS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47 IEFub29iIEpvc2VwaA0KPiA+ID4gPGFub29iakBtYXJ2ZWxsLmNvbT47IEFraGlsIEdveWFsIDxh a2hpbC5nb3lhbEBueHAuY29tPjsgQWRyaWVuDQo+ID4gPiBNYXphcmd1aWwgPGFkcmllbi5tYXph cmd1aWxANndpbmQuY29tPjsgRG9oZXJ0eSwgRGVjbGFuDQo+ID4gPiA8ZGVjbGFuLmRvaGVydHlA aW50ZWwuY29tPjsgWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47DQo+ID4g PiBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+OyBUaG9tYXMg TW9uamFsb24NCj4gPiA+IDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiA+ID4gQ2M6IEFua3VyIER3 aXZlZGkgPGFkd2l2ZWRpQG1hcnZlbGwuY29tPjsgSGVtYW50IEFncmF3YWwNCj4gPiA+IDxoZW1h bnQuYWdyYXdhbEBueHAuY29tPjsgTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47DQo+ IE5pY29sYXUsDQo+ID4gPiBSYWR1IDxyYWR1Lm5pY29sYXVAaW50ZWwuY29tPjsgU2hhaGFmIFNo dWxlciA8c2hhaGFmc0BtZWxsYW5veC5jb20+Ow0KPiA+ID4gTmFyYXlhbmEgUHJhc2FkIFJhanUg QXRocmV5YSA8cGF0aHJleWFAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+IFN1Ympl Y3Q6IFJFOiBbZHBkay1kZXZdIFtFWFRdIFJlOiBbUEFUQ0hdIGV0aGRldjogYWxsb3cgbXVsdGlw bGUNCj4gPiA+IHNlY3VyaXR5IHNlc3Npb25zIHRvIHVzZSBvbmUgcnRlIGZsb3cNCj4gPiA+DQo+ ID4gPiBIaQ0KPiA+ID4gc29ycnkgZm9yIGp1bXBpbmcgaW4gbGF0ZS4NCj4gPiA+DQo+ID4gPg0K PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBkZXYgPGRl di1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2YgTWVkdmVka2luLCBWbGFkaW1pcg0KPiA+ ID4gPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgOCwgMjAyMCA0OjMwIFBNDQo+ID4gPiA+IFRv OiBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgQW5v b2INCj4gPiBKb3NlcGgNCj4gPiA+ID4gPGFub29iakBtYXJ2ZWxsLmNvbT47IEFraGlsIEdveWFs IDxha2hpbC5nb3lhbEBueHAuY29tPjsgQWRyaWVuDQo+ID4gPiA+IE1hemFyZ3VpbCA8YWRyaWVu Lm1hemFyZ3VpbEA2d2luZC5jb20+OyBEb2hlcnR5LCBEZWNsYW4NCj4gPiA+ID4gPGRlY2xhbi5k b2hlcnR5QGludGVsLmNvbT47IFlpZ2l0LCBGZXJydWgNCj4gPiA+ID4gPGZlcnJ1aC55aWdpdEBp bnRlbC5jb20+Ow0KPiA+IEplcmluDQo+ID4gPiA+IEphY29iIEtvbGxhbnVra2FyYW4gPGplcmlu akBtYXJ2ZWxsLmNvbT47IFRob21hcyBNb25qYWxvbg0KPiA+ID4gPiA8dGhvbWFzQG1vbmphbG9u Lm5ldD4NCj4gPiA+ID4gQ2M6IEFua3VyIER3aXZlZGkgPGFkd2l2ZWRpQG1hcnZlbGwuY29tPjsg SGVtYW50IEFncmF3YWwNCj4gPiA+ID4gPGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+OyBNYXRhbiBB enJhZCA8bWF0YW5AbWVsbGFub3guY29tPjsNCj4gPiA+ID4gTmljb2xhdSwgUmFkdSA8cmFkdS5u aWNvbGF1QGludGVsLmNvbT47IFNoYWhhZiBTaHVsZXINCj4gPiA+ID4gPHNoYWhhZnNAbWVsbGFu b3guY29tPjsgTmFyYXlhbmEgUHJhc2FkIFJhanUgQXRocmV5YQ0KPiA+ID4gPiA8cGF0aHJleWFA bWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRl dl0gW0VYVF0gUmU6IFtQQVRDSF0gZXRoZGV2OiBhbGxvdyBtdWx0aXBsZQ0KPiA+ID4gPiBzZWN1 cml0eSBzZXNzaW9ucyB0byB1c2Ugb25lIHJ0ZSBmbG93DQo+ID4gPiA+DQo+ID4gPiA+IEhpIEFu b29iLA0KPiA+ID4gPg0KPiA+ID4gPiBPbiAyMy8xMi8yMDE5IDEzOjM0LCBBbmFueWV2LCBLb25z dGFudGluIHdyb3RlOg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IFRoZSBydGVf c2VjdXJpdHkgQVBJIHdoaWNoIGVuYWJsZXMgaW5saW5lDQo+ID4gPiBwcm90b2NvbC9jcnlwdG8N Cj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gZmVhdHVyZSBtYW5kYXRlcyB0aGF0IGZvciBldmVyeSBz ZWN1cml0eSBzZXNzaW9uIGFuDQo+ID4gPiA+IHJ0ZV9mbG93DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+ Pj4+IGlzDQo+ID4gPiA+ID4+Pj4+IGNyZWF0ZWQuDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IFRo aXMgd291bGQgaW50ZXJuYWxseSB0cmFuc2xhdGUgdG8gYSBydWxlIGluIHRoZQ0KPiA+IGhhcmR3 YXJlDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHdoaWNoIHdvdWxkIGRvIHBhY2tldCBjbGFzc2lm aWNhdGlvbi4NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4g SW4gcnRlX3NlY3VydHksIG9uZSBTQSB3b3VsZCBiZSBvbmUgc2VjdXJpdHkgc2Vzc2lvbi4NCj4g PiA+IEFuZA0KPiA+ID4gPiBpZg0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiBhbiBydGVfZmxvdyBu ZWVkIHRvIGJlIGNyZWF0ZWQgZm9yIGV2ZXJ5IHNlc3Npb24sDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+ Pj4+IHRoZQ0KPiA+ID4gPiBudW1iZXINCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gb2YgU0FzIHN1 cHBvcnRlZCBieSBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24gd291bGQNCj4gPiBiZQ0KPiA+ID4g PiA+Pj4+Pj4+Pj4+Pj4+PiBsaW1pdGVkIGJ5IHRoZSBudW1iZXIgb2YgcnRlX2Zsb3dzIHRoZSBQ TUQgd291bGQgYmUNCj4gPiA+ID4gYWJsZSB0bw0KPiA+ID4gPiA+Pj4gc3VwcG9ydC4NCj4gPiA+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gSWYgdGhlIGZpZWxkcyBTUEkgJiBJUCBhZGRyZXNzZXMgYXJlIGFs bG93ZWQgdG8gYmUNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gYQ0KPiA+ID4gcmFuZ2UsDQo+ID4g PiA+ID4+Pj4+Pj4+Pj4+Pj4+IHRoZW4gdGhpcyBsaW1pdGF0aW9uIGNhbiBiZSBvdmVyY29tZS4g TXVsdGlwbGUNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gZmxvd3MNCj4gPiB3aWxsDQo+ID4gPiA+ IGJlDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGFibGUgdG8gdXNlIG9uZSBydWxlIGZvciBTRUNV UklUWSBwcm9jZXNzaW5nLiBJbg0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiB0aGlzDQo+ID4gPiBj YXNlLA0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiB0aGUgc2VjdXJpdHkgc2Vzc2lvbiBwcm92aWRl ZCBhcyBjb25mIHdvdWxkIGJlIE5VTEwuDQo+ID4gPg0KPiA+ID4gV2h5IGlzIHRoYXQ/DQo+ID4g PiBJZiB0aGUgcnRlIGZsb3cgY2FuIGhhdmUgYSByYW5nZSB0aGVuIHRoaXMgbWVhbnMgdGhhdCB3 ZSBuZWVkIG9uZQ0KPiA+ID4gc2VjdXJpdHlfc2Vzc2lvbiBmb3IgdGhlIGVudGlyZSByYW5nZSwg QW0gSSBtaXNzaW5nIHNvbWV0aGluZz8gQXMgaXQNCj4gPiA+IGlzIHN0YXRlZCBpbiB0aGUgcnRl X2Zvdy5oICBzZWN1cml0eV9zZXNzaW9uDQo+ID4gY2FuDQo+ID4gPiBiZSB1c2VkIGZvciBtdWx0 aXBsZSBmbG93cy4NCj4gPg0KPiA+IFtBbm9vYl0gT25lIFNBIHdvdWxkIG1lYW4gb25lIHNlY3Vy aXR5X3Nlc3Npb24uIFNvIGlmIHdlIGhhdmUgb25lDQo+ID4gc2VjdXJpdHlfc2Vzc2lvbiBmb3Ig dGhlIGVudGlyZSByYW5nZSwgdGhlbiBpdCB3aWxsIGJlIGxpa2UgaGF2aW5nDQo+ID4gc2luZ2xl IFNBIGZvciBhIHJhbmdlIG9mIElQICYgU1BJLiBEbyB5b3UgdGhpbmsgd2Ugc2hvdWxkIGFsbG93 IHRoYXQ/DQo+ID4NCj4gW09yaV0gSSdtIGxlc3MgZmFtaWxpYXIgd2l0aCBzZWN1cml0eSwgYnV0 IHRoaXMgaXMgd2hhdCBJIHVuZGVyc3RhbmQgeW91IGFyZSB0cnlpbmcgdG8NCj4gZG8gcmlnaHQ/ DQoNCltBbm9vYl0gTm90IGV4YWN0bHkuIEluIG91ciBpbXBsZW1lbnRhdGlvbiwgaC93IGNhbiBp bmRleCBpbnRvIGEgdGFibGUgd2hpY2ggd291bGQgaG9sZCBzZWN1cml0eV9zZXNzaW9ucy4gU28g d2UgY2FuIGhhdmUgb25lIHJ0ZV9mbG93IHJ1bGUsIHdoaWNoIHdpbGwgZW5hYmxlIHRoZSBwYWNr ZXQgc3RlZXJpbmcgaW4gdGhlIGhhcmR3YXJlLiBXaGljaCBzZXNzaW9uIG5lZWQgdG8gYmUgdXNl ZCB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIFNQSS4NCiANCj4gDQo+ID4gQWxzbywgdGhlIGlu dGVudCBvZiB0aGUgcGF0Y2ggaXMgdG8gbWluaW1pemUgdGhlIG51bWJlciBvZiBydGVfZmxvdw0K PiA+IHJ1bGVzIHJlcXVpcmVkIGZvciBpbmxpbmUgaXBzZWMgcHJvY2Vzc2luZy4gU2luY2UgdGhl IHNlY3VyaXR5IHNlc3Npb24NCj4gPiBpcyBwZXIgU0EsIGFuZCBpZiB3ZSBuZWVkIG11bHRpcGxl IFNQSXMgdG8gdXNlIHNhbWUgcnRlX2Zsb3cgcnVsZSwNCj4gPiB0aGVuIHRoZSBzZWN1cml0eV9z ZXNzaW9uIGZpZWxkIGluIHRoZSBydGVfZmxvdyBydWxlIG5lZWQgdG8gYmUgTlVMTC4NCj4gPiBI YXZpbmcgYSBub24temVybyBzZWN1cml0eV9zZXNzaW9uIHdoZW4gU1BJIGlzIGEgcmFuZ2Ugd291 bGQgYmUgaW5jb3JyZWN0Lg0KPiA+DQo+IFtPcmldIEknbSBhbGwgaW4gZmF2b3IgZGVjcmVhc2lu ZyBudW1iZXIgb2YgZmxvd3MuDQo+IFNvcnJ5IGZvciB0aGUgYmFzaWMgcXVlc3Rpb24sIHdoYXQg aXMgdGhlIHNlY3VyaXR5X3Nlc3Npb24gL1NBIGRlcGVuZGVudCBvbj8NCg0KW0Fub29iXSBObyBw cm9iISBJbiBjYXNlIG9mIHVuaWNhc3QgSVBzZWMsIGV2ZXJ5IFNBIHdvdWxkIGhhdmUgYSB1bmlx dWUgU1BJLiBTbyB3ZSBjYW5ub3QgaGF2ZSBtdWx0aXBsZSBTUEkncyByZWZlcnJpbmcgdG8gdGhl IHNhbWUgU0EuIEFuZCBvbmUgU0Egd291bGQgbWVhbiBvbmUgc2VjdXJpdHlfc2Vzc2lvbi4NCg0K PiBDYW4gb25lIFNBIGluY2x1ZGUgbnVtYmVyIG9mIGRpZmZlcmVudCBTUEk/DQoNCltBbm9vYl0g Tm8uDQoNCk1heSBiZSB3ZSBuZWVkIHRvIHJlaW1hZ2luZSB0aGlzLg0KDQpDdXJyZW50bHksIGFu IHJ0ZV9mbG93IHdpdGggU0VDVVJJVFkgZW5hYmxlcyBpcHNlYyBwcm9jZXNzaW5nIHdpdGggYSBz cGVjaWZpYyBzZWN1cml0eV9zZXNzaW9uIG9uIHRoZSBwYWNrZXQuIFRoaXMgaXMgZW5hYmxlZCBv biBhIHNwZWNpZmljIElQL1NQSSBzcGVjaWZpZWQgaW4gdGhlIHJ1bGUuDQoNCk15IHByb3Bvc2Fs OiBhbiBydGVfZmxvdyB3aXRoIFNFQ1VSSVRZIChhbmQgc2Vzc2lvbiA9IE5VTEwpLCB3b3VsZCBl bmFibGUgaXBzZWMgcHJvY2Vzc2luZyBvbiBhIHJhbmdlIGFuZCBTUEkgZnJvbSB0aGUgcGFja2V0 IGNhbiBiZSB1c2VkIGJ5IHRoZSBoL3cgdG8gZnVydGhlciBmaWd1cmUgb3V0IHRoZSBzZWN1cml0 eV9zZXNzaW9uLg0KIA0KPiANCj4gPiA+DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4gV29uZGVyIHdo YXQgd2lsbCBiZSB0aGUgdXNhZ2UgbW9kZWwgZm9yIGl0Pw0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+ IEFGQUlLLCAgUkZDIDQzMDEgY2xlYXJseSBzdGF0ZXMgdGhhdCBlaXRoZXIgU1BJDQo+ID4gPiA+ ID4+Pj4+Pj4+Pj4+Pj4gdmFsdWUNCj4gPiBhbG9uZQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+IG9y IGluIGNvbmp1bmN0aW9uIHdpdGggZHN0IChhbmQgc3JjKSBJUCBzaG91bGQNCj4gPiA+ID4gPj4+ Pj4+Pj4+Pj4+PiBjbGVhcmx5IGlkZW50aWZ5IFNBIGZvciBpbmJvdW5kIFNBRA0KPiA+ID4gPiA+ Pj4+Pj4+Pj4+PiBsb29rdXAuDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4gQW0gSSBtaXNzaW5nIHNv bWV0aGluZyBvYnZpb3VzIGhlcmU/DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+PiBbQW5vb2JdIEV4aXN0 aW5nIFNFQ1VSSVRZIGFjdGlvbiB0eXBlIHJlcXVpcmVzDQo+ID4gYXBwbGljYXRpb24NCj4gPiA+ IHRvDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+PiBjcmVhdGUgYW4gJ3J0ZV9mbG93JyBwZXIgU0EsIHdo aWNoIGlzIG5vdCByZWFsbHkNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+IHJlcXVpcmVkIGlmIGgvdyBj YW4gdXNlIFNQSSB0byB1bmlxdWVseQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4+PiBpZGVudGlmeSB0aGUg c2VjdXJpdHkgc2Vzc2lvbi9TQS4NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+IEV4aXN0aW5nIHJ0ZV9m bG93IHVzYWdlOiBJUCAoZHN0LHNyYykgKyBFU1AgKyBTUEkgLT4NCj4gPiA+ID4gPj4+Pj4+Pj4+ Pj4+IHNlY3VyaXR5IHByb2Nlc3NpbmcgZW5hYmxlZCBvbiBvbmUgc2VjdXJpdHkgc2Vzc2lvbg0K PiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4gKGllIG9uIFNBKQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4NCj4g PiA+ID4gPj4+Pj4+Pj4+Pj4+IFRoZSBhYm92ZSBydWxlIHdvdWxkIHVuaXF1ZWx5IGlkZW50aWZ5 IHBhY2tldHMgZm9yIGFuDQo+ID4gU0EuDQo+ID4gPiA+IEJ1dA0KPiA+ID4gPiA+Pj4+Pj4+Pj4+ Pj4gd2l0aCB0aGUgYWJvdmUgdXNhZ2UsIHdlIHdvdWxkIHF1aWNrbHkgZXhoYXVzdA0KPiA+ID4g PiA+Pj4+Pj4+Pj4+Pj4gZW50cmllcyBhdmFpbGFibGUgaW4gaC93IGxvb2t1cCB0YWJsZXMgKHdo aWNoIGFyZQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4gbGltaXRlZCBvbiBvdXIgaGFyZHdhcmUpLiBC dXQgaWYgaC93IGNhbiB1c2UgU1BJDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+PiBmaWVsZCB0byBpbmRl eA0KPiA+ID4gPiA+Pj4+Pj4+Pj4+PiBpbnRvIGEgdGFibGUgKGZvciBleGFtcGxlKSwgdGhlbiB0 aGUgYWJvdmUgcmVxdWlyZW1lbnQNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4gb2YNCj4gPiA+ID4gb25l DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+IHJ0ZV9mbG93IHBlciBTQSBpcyBub3QgcmVxdWlyZWQuDQo+ ID4gPiA+ID4+Pj4+Pj4+Pj4+PiBQcm9wb3NlZCBydGVfZmxvdyB1c2FnZTogSVAgKGFueSkgKyBF U1AgKyBTUEkgKGFueSkNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+IC0+IHNlY3VyaXR5IHByb2Nlc3Np bmcgZW5hYmxlZCBvbiBhbGwgRVNQIHBhY2tldHMNCj4gPiA+ID4gPj4+Pj4+Pj4+IFNvIHRoaXMg bWVhbnMgdGhhdCBTQSB3aWxsIGJlIGluZGV4ZWQgb25seSBieSBzcGk/IFdoYXQNCj4gPiBhYm91 dA0KPiA+ID4gPiA+Pj4+Pj4+Pj4gU0EncyB3aGljaCBhcmUgaW5kZXhlZCBieSBTUEkrRElQK1NJ UD8NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+IE5vdyBoL3cgY291bGQgdXNlIFNQSSB0byBpbmRleCBp bnRvIGEgcHJlLXBvcHVsYXRlZA0KPiA+IHRhYmxlDQo+ID4gPiA+IHRvDQo+ID4gPiA+ID4+Pj4+ Pj4+Pj4+PiBnZXQgc2VjdXJpdHkgc2Vzc2lvbi4gUGxlYXNlIGRvIG5vdGUgdGhhdCwgU1BJIGlz IG5vdA0KPiA+IGlnbm9yZWQNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+IGR1cmluZyB0aGUgYWN0dWFs DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+IGxvb2t1cC4gSnVzdCB0aGF0IGl0IGlzIG5vdCB1c2VkIHdo aWxlIGNyZWF0aW5nICdydGVfZmxvdycuDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+DQo+ID4gPiA+ID4+ Pj4+Pj4+Pj4+IEFuZCB0aGlzIHRhYmxlIHdpbGwgYmUgcHJlcG9wdWxhdGVkIGJ5IHVzZXIgYW5k DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+IHBvaW50ZXIgdG8NCj4gPiBpdA0KPiA+ID4gPiA+Pj4+Pj4+ Pj4+PiB3aWxsIGJlIHNvbWVob3cgcGFzc2VkIHZpYSBydGVfZmxvdyBBUEk/DQo+ID4gPiA+ID4+ Pj4+Pj4+Pj4+IElmIHllcywgdGhlbiB3aGF0IHdvdWxkIGJlIHRoZSBtZWNoYW5pc20/DQo+ID4g PiA+ID4+Pj4+Pj4+Pj4gW0Fub29iXSBJJ20gbm90IHN1cmUgd2hhdCBleGFjdGx5IHlvdSBtZWFu dCBieSB1c2VyLg0KPiA+ID4gPiA+Pj4+Pj4+Pj4+IEJ1dA0KPiA+ID4gbWF5DQo+ID4gPiA+IGJl DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4gSSdsbCBleHBsYWluDQo+ID4gPiA+ID4+Pj4+Pj4+PiBob3cg aXQncyBkb25lIGluIE9DVEVPTlRYMiBQTUQuDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4gVGhlIGFwcGxp Y2F0aW9uIHdvdWxkIGNyZWF0ZSBzZWN1cml0eV9zZXNzaW9uIGZvciBldmVyeSBTQS4NCj4gPiA+ IFNQSQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4+IGV0YyB3b3VsZCBiZQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4g YXZhaWxhYmxlIHRvIFBNRCAoaW4gY29uZikgd2hlbiB0aGUgc2Vzc2lvbiBpcyBjcmVhdGVkLg0K PiA+ID4gPiA+Pj4+Pj4+Pj4gTm93DQo+ID4gPiB0aGUNCj4gPiA+ID4gPj4+Pj4+Pj4+IFBNRCB3 b3VsZCBwb3B1bGF0ZSBTQSByZWxhdGVkIHBhcmFtcyBpbiBhIHNwZWNpZmljDQo+ID4gPiA+ID4+ Pj4+Pj4+PiBsb2NhdGlvbg0KPiA+ID4gdGhhdA0KPiA+ID4gPiA+Pj4+Pj4+Pj4gaC93IHdvdWxk IGFjY2Vzcy4gVGhpcyBtZW1vcnkgaXMgYWxsb2NhdGVkIGR1cmluZyBkZXZpY2UNCj4gPiA+ID4g Pj4+Pj4+Pj4+IGNvbmZpZ3VyZSBhbmQgaC93IHdvdWxkIGhhdmUgdGhlIHBvaW50ZXIgYWZ0ZXIg dGhlDQo+ID4gPiBpbml0aWFsaXphdGlvbg0KPiA+ID4gPiBpcw0KPiA+ID4gPiA+Pj4gZG9uZS4N Cj4gPiA+ID4gPj4+Pj4+Pj4+IElmIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZHVyaW5nIGRldmljZSBj b25maWd1cmUgd2hhdCBpcw0KPiA+ID4gPiA+Pj4+Pj4+Pj4gdXBwZXIgbGltaXQgZm9yIG51bWJl ciBvZiBzZXNzaW9ucz8gV2hhdCBpZiBhcHAgbmVlZHMgbW9yZT8NCj4gPiA+ID4gPj4+Pj4+Pj4+ PiBQTUQgdXNlcyBTUEkgYXMgaW5kZXggdG8gd3JpdGUgaW50byBzcGVjaWZpYw0KPiA+ID4gPiA+ Pj4+Pj4+Pj4+IGxvY2F0aW9ucyhkdXJpbmcgc2Vzc2lvbiBjcmVhdGUpDQo+ID4gPiA+ID4+Pj4+ Pj4+PiBhbmQgaC93IHdvdWxkIHVzZSBpdCB3aGVuIGl0IHNlZXMgYW4gRVNQIHBhY2tldCBlbGln aWJsZQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4gZm9yIFNFQ1VSSVRZIChpbiByZWNlaXZlIHBhdGgsIHBl ciBwYWNrZXQpLiBBcyBsb25nIGFzDQo+ID4gPiA+ID4+Pj4+Pj4+PiBzZXNzaW9uIGNyZWF0aW9u IGNvdWxkIHBvcHVsYXRlIGF0IG1lbW9yeSBsb2NhdGlvbnMgdGhhdA0KPiA+ID4gPiA+Pj4+Pj4+ Pj4gaC93IHdvdWxkDQo+ID4gPiA+IGxvb2sNCj4gPiA+ID4gPj4+Pj4+Pj4+IGF0LCB0aGlzIHNj aGVtZSB3b3VsZA0KPiA+ID4gPiA+Pj4+Pj4+IHdvcmsuDQo+ID4gPiA+ID4+Pj4+Pj4+IFtBbm9v Yl0gWWVzLiBCdXQgd2UgbmVlZCB0byBhbGxvdyBhcHBsaWNhdGlvbiB0byBjb250cm9sDQo+ID4g PiA+ID4+Pj4+Pj4+IHRoZQ0KPiA+ID4gaC93DQo+ID4gPiA+ID4+Pj4+Pj4+IGlwc2VjDQo+ID4g PiA+ID4+Pj4+Pj4gcHJvY2Vzc2luZyBhcyB3ZWxsLiBMZXQncyBzYXksIGFwcGxpY2F0aW9uIHdh bnRzIHRvIGhhbmRsZQ0KPiA+ID4gPiA+Pj4+Pj4+IGEgc3BlY2lmaWMgU1BJIHJhbmdlIGluIGxv b2thc2lkZSBtb2RlIChtYXkgYmUgYmVjYXVzZSBvZg0KPiA+ID4gPiB1bnN1cHBvcnRlZA0KPiA+ ID4gPiA+Pj4+Pj4+IGNhcGFiaWxpdGllcz8pLCBpbiB0aGF0IGNhc2UgaGF2aW5nIHJ0ZV9mbG93 IHdpbGwgaGVscCBpbg0KPiA+ID4gPiA+Pj4+Pj4+IGZpbmUgdHVuaW5nIGhvdyB0aGUNCj4gPiA+ ID4gPj4+Pj4gaC93IHBhY2tldCBzdGVlcmluZyBoYXBwZW5zLg0KPiA+ID4gPiA+Pj4+Pj4+IEFs c28sIHJ0ZV9mbG93IGVuYWJsZXMgSC93IHBhcnNpbmcgb24gaW5jb21pbmcgcGFja2V0cy4NCj4g PiA+ID4gPj4+Pj4+PiBUaGlzDQo+ID4gaW5mbw0KPiA+ID4gPiA+Pj4+Pj4+IGlzIHVzZWZ1bCBl dmVuIGFmdGVyIElQc2VjIHByb2Nlc3NpbmcgaXMgY29tcGxldGUuIE9yIGlmDQo+ID4gPiA+ID4+ Pj4+Pj4gYXBwbGljYXRpb24gd2FudHMgdG8gZ2l2ZSBoaWdoZXIgcHJpb3JpdHkgdG8gYSByYW5n ZSBvZg0KPiA+ID4gPiA+Pj4+Pj4+IFNQSXMsIHJ0ZV9mbG93IHdvdWxkIGFsbG93IGRvaW5nDQo+ ID4gPiA+ID4+Pj4+IHNvLg0KPiA+ID4gPiA+Pj4+Pj4+Pj4gV2hhdCBhbGdvcml0aG0gb2YgaW5k ZXhpbmcgYnkgU1BJIGlzIHRoZXJlPyBDb3VsZCBJIHVzZQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4gYW55 IGFyYml0cmFyeSBTUEk/IElmIHNvbWUga2luZCBvZiBoYXNoaW5nIGlzIHVzZWQsIHdoYXQNCj4g PiA+ID4gPj4+Pj4+Pj4+IGFib3V0DQo+ID4gPiA+IGNvbGxpc2lvbnM/DQo+ID4gPiA+ID4+Pj4+ Pj4+IFtBbm9vYl0gVGhhdCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuIEluIG91ciBQTUQs IHdlDQo+ID4gPiBtYXANCj4gPiA+ID4gaXQNCj4gPiA+ID4gPj4+Pj4+Pj4gb25lDQo+ID4gPiA+ ID4+Pj4+IHRvIG9uZS4NCj4gPiA+ID4gPj4+Pj4+PiBBcyBpbiwgU1BJIGlzIHVzZWQgYXMgaW5k ZXggaW4gdGhlIHRhYmxlLg0KPiA+ID4gPiA+Pj4+Pj4+IFNvLCBhcyBmYXIgYXMgeW91IGFyZSBt YXBwaW5nIG9uZSB0byBvbmUgYW5kIHVzaW5nIFNQSSBhcw0KPiA+ID4gPiA+Pj4+Pj4+IGFuDQo+ ID4gPiBpbmRleCwNCj4gPiA+ID4gPj4+Pj4+PiBhIGxvdCBvZiBtZW1vcnkgaXMgd2FzdGVkIGlu IHRoZSB0YWJsZSBmb3IgdW51c2VkIFNQSSdzLg0KPiA+ID4gPiA+Pj4+Pj4+IEFsc28sDQo+ID4g eW91DQo+ID4gPiA+ID4+Pj4+Pj4gYXJlIG5vdCBhYmxlIHRvIGhhdmUgYSB0YWJsZSB3aXRoIDJe MzIgc2Vzc2lvbnMuIEl0IGlzDQo+ID4gPiA+ID4+Pj4+Pj4gbGlrZWx5IHRoYXQgc29tZSBudW1i ZXIgb2YgU1BJJ3MgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBhcmUgdXNlZCBhcw0KPiBhbiBpbmRl eC4NCj4gPiA+ID4gPj4+Pj4+PiBBbmQgaXQgcmFpc2VzIGEgcXVlc3Rpb24gLSB3aGF0IGlmIGFw cGxpY2F0aW9uIG5lZWRzIHR3bw0KPiA+ID4gPiA+Pj4+Pj4+IHNlc3Npb25zIHdpdGggZGlmZmVy ZW50DQo+ID4gPiA+ID4+Pj4+IFNQSSdzIHdoaWNoIGhhdmUgdGhlIHNhbWUgbHNiJ3M/DQo+ID4g PiA+ID4+Pj4+PiBbQW5vb2JdIHJ0ZV9zZWN1cml0eV9zZXNzaW9uX2NyZWF0ZSgpIHdvdWxkIGZh aWwuIFdoeSBkbw0KPiA+ID4gPiA+Pj4+Pj4geW91DQo+ID4gc2F5DQo+ID4gPiA+IHdlDQo+ID4g PiA+ID4+Pj4+IGNhbm5vdCBzdXBwb3J0IDJeMzIgc2Vzc2lvbnM/IElmIGl0J3MgbWVtb3J5IGxp bWl0YXRpb24sIHRoZQ0KPiA+ID4gPiA+Pj4+PiBzYW1lIG1lbW9yeSBsaW1pdGF0aW9uIHdvdWxk IGFwcGx5IGV2ZW4gaWYgeW91IGhhdmUgZHluYW1pYw0KPiA+IGFsbG9jYXRpb24NCj4gPiA+IG9m DQo+ID4gPiA+ID4+Pj4+IG1lbW9yeSBmb3Igc2Vzc2lvbnMuIFNvIGF0IHNvbWUgcG9pbnQgc2Vz c2lvbiBjcmVhdGlvbiB3b3VsZA0KPiA+IHN0YXJ0DQo+ID4gPiA+ID4+Pj4+IGZhaWxpbmcuIElu IG91ciBQTUQsIHdlIGFsbG93IHVzZXIgdG8gc3BlY2lmeSB0aGUgcmFuZ2UgaXQNCj4gPiA+ID4g Pj4+Pj4gcmVxdWlyZXMNCj4gPiA+IHVzaW5nDQo+ID4gPiA+ID4+PiBkZXZhcmdzLg0KPiA+ID4g PiA+Pj4+Pj4gQWxzbywgY29sbGlzaW9uIG9mIExTQnMgY2FuIGJlIGF2b2lkZWQgYnkgaW50cm9k dWNpbmcgYSAiTUFSSyINCj4gPiBydWxlDQo+ID4gPiA+ID4+Pj4+PiBpbg0KPiA+ID4gPiA+Pj4+ PiBhZGRpdGlvbiB0byAiU0VDVVJJVFkiIGZvciB0aGUgcnRlX2Zsb3cgY3JlYXRlZCBmb3IgaW5s aW5lIGlwc2VjLg0KPiA+ID4gPiA+Pj4+PiBDdXJyZW50bHkgdGhhdCBtb2RlbCBpcyBub3Qgc3Vw cG9ydGVkIChpbiB0aGUgbGlicmFyeSksIGJ1dA0KPiA+ID4gPiA+Pj4+PiB0aGF0IGlzIG9uZSBz b2x1dGlvbiB0byB0aGUgY29sbGlzaW9ucyB0aGF0IGNhbiBiZSBwdXJzdWVkIGxhdGVyLg0KPiA+ ID4gPiA+Pj4+Pj4+IE1vcmVvdmVyLCB3aGF0IGFib3V0DQo+ID4gPiA+ID4+Pj4+Pj4gdHdvIHNl c3Npb25zIHdpdGggc2FtZSBTUEkgYnV0IGRpZmZlcmVudCBkc3QgYW5kIHNyYyBpcA0KPiA+ID4g YWRkcmVzc2VzPw0KPiA+ID4gPiA+Pj4+Pj4gW0Fub29iXSBDdXJyZW50bHkgb3VyIFBNRCBvbmx5 IHN1cHBvcnQgVUNBU1QgSVBTRUMuIFNvDQo+ID4gYW5vdGhlcg0KPiA+ID4gPiA+Pj4+Pj4gc2Vz c2lvbg0KPiA+ID4gPiA+Pj4+PiB3aXRoIHNhbWUgU1BJIHdvdWxkIHJlc3VsdCBpbiBzZXNzaW9u IGNyZWF0aW9uIGZhaWx1cmUuDQo+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4+Pj4+IEFoYSwgSSBz ZWUsIHRoYW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9uLiBTbyBteSBzdWdnZXN0aW9uDQo+ID4gPiA+ ID4+Pj4+IGhlcmUNCj4gPiB3b3VsZA0KPiA+ID4gPiBiZToNCj4gPiA+ID4gPj4+Pj4NCj4gPiA+ ID4gPj4+Pj4gLSBBcHBsaWNhdGlvbiBkZWZpbmVzIHRoYXQgc29tZSBzdWJzZXQgb2YgU0EncyB3 b3VsZCBiZQ0KPiA+ID4gPiA+Pj4+PiBpbmxpbmUgcHJvdG9jb2wgcHJvY2Vzc2VkLiBBbmQgdGhp cyBTQSdzIHdpbGwgYmUgaW5kZXhlZCBieSBTUEkgb25seS4NCj4gPiA+ID4gPj4+Pj4NCj4gPiA+ ID4gPj4+Pj4gLSBBcHAgZGVmaW5lcyBzcGVjaWFsIHJhbmdlIGZvciBTUEkgdmFsdWVzIG9mIHRo aXMgU0Encw0KPiA+ID4gPiA+Pj4+PiAoc2l6ZSBvZiB0aGlzIHJhbmdlIGlzIGRlZmluZWQgdXNp bmcgZGV2YXJncykgYW5kIGZpcnN0IFNQSQ0KPiA+ID4gPiA+Pj4+PiB2YWx1ZSAoZnJvbQ0KPiA+ ID4gPiBjb25maWd1cmF0aW9uPykuDQo+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4+Pj4+IC0gQXBw IGluc3RhbGxzIHJ0ZV9mbG93IG9ubHkgZm9yIHRoaXMgcmFuZ2UgKGZyb20gZmlyc3QgU1BJDQo+ ID4gPiA+ID4+Pj4+IHRvIGZpcnN0IFNQSQ0KPiA+ID4gPiA+Pj4+PiArIHJhbmdlIHNpemUpLCBu b3QgZm9yIGFsbCBTUEkgdmFsdWVzLg0KPiA+ID4gPiA+Pj4+IFtBbm9vYl0gVGhpcyBpcyBleGFj dGx5IHdoYXQgdGhpcyBwYXRjaCBwcm9wb3Nlcy4gQWxsb3dpbmcNCj4gPiA+ID4gPj4+PiB0aGUg U1BJDQo+ID4gYW5kDQo+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+Pj4gSVAgYWRkcmVzc2VzIHRvIGJl IHJhbmdlIGFuZCBoYXZlIHNlY3VyaXR5X3Nlc3Npb24gcHJvdmlkZWQgYXMNCj4gPiBOVUxMLg0K PiA+ID4gPiBXaGF0DQo+ID4gPiA+ID4+PiB5b3UgaGF2ZSBkZXNjcmliZWQgd291bGQgYmUgYWNo aWV2YWJsZSBvbmx5IGlmIHdlIGNhbiBhbGxvdw0KPiA+ID4gPiA+Pj4gdGhpcyBtb2RpZmljYXRp b24gaW4gdGhlIGxpYi4NCj4gPiA+ID4gPj4+PiBTbyBjYW4gSSBhc3N1bWUgeW91IGFyZSBpbiBh Z3JlZW1lbnQgd2l0aCB0aGlzIHBhdGNoPw0KPiA+ID4gPiA+Pj4gTm90IGV4YWN0bHkuIEkgbWVh bnQgaXQgaXMgYmV0dGVyIHRvIG1ha2UgbW9yZSBzcGVjaWZpZWQgZmxvdyBsaWtlOg0KPiA+ID4g PiA+Pj4NCj4gPiA+ID4gPj4+IC4uLg0KPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPj4+IHN0cnVjdCBy dGVfZmxvd19pdGVtX2VzcCBlc3Bfc3BlYyA9IHsNCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+PiAg ICAgICAgICAgLmhkciA9IHsNCj4gPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgIC5zcGkgPSBy dGVfY3B1X3RvX2JlXzMyKGZpcnN0X3NwaSksDQo+ID4gPiA+ID4+PiAgICAgICAgICAgfSwNCj4g PiA+ID4gPj4+DQo+ID4gPiA+ID4+PiB9Ow0KPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPj4+IHN0cnVj dCBydGVfZmxvd19pdGVtX2VzcCBlc3BfbWFzayA9IHsNCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+ PiAgICAgICAgICAgLmhkciA9IHsNCj4gPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgIC5zcGkg PSBydGVfY3B1X3RvX2JlXzMyKG5iX2lwc2VjX2luX3NhIC0gMSksDQo+ID4gPiA+ID4+PiAgICAg ICAgICAgfSwNCj4gPiA+ID4gPj4+DQo+ID4gPiA+ID4+PiB9Ow0KPiA+ID4gPiA+Pj4NCj4gPiA+ ID4gPj4+IHBhdHRlcm5bMF0udHlwZSA9IFJURV9GTE9XX0lURU1fVFlQRV9FU1A7DQo+ID4gPiA+ ID4+Pg0KPiA+ID4gPiA+Pj4gcGF0dGVyblswXS5zcGVjID0gJiBlc3Bfc3BlYzsNCj4gPiA+ID4g Pj4+DQo+ID4gPiA+ID4+PiBwYXR0ZXJuWzBdLm1hc2sgPSAmZXNwX21hc2s7DQo+ID4gPiA+ID4+ Pg0KPiA+ID4gPiA+Pj4gLi4uDQo+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+Pj4gU28gdGhpcyBtZWFu cyBpbmxpbmUgcHJvdG8gZGV2aWNlIHdvdWxkIHByb2Nlc3Mgb25seSBzcGVjaWFsDQo+ID4gPiA+ ID4+PiBzdWJzZXQNCj4gPiBvZg0KPiA+ID4gPiBTUEkncy4NCj4gPiA+ID4gPj4+IEFsbCBvdGhl ciB3aWxsIGJlIHByb2Nlc3NlZCBhcyB1c3VhbC4gU3VyZSwgeW91IGNhbiBhc3NpZ24gYWxsDQo+ ID4gPiA+ID4+PiAyXjMyIFNQSSByYW5nZSBhbmQgaXQgd29yayBhcyB5b3UgaW50ZW5kZWQgZWFy bGllci4gSSB0aGluayB3ZQ0KPiA+ID4gPiA+Pj4gbmVlZCB0bw0KPiA+ID4gPiBoYXZlDQo+ID4g PiA+ID4+PiBmaW5lciBncmFpbmVkIGNvbnRyb2wgaGVyZS4NCj4gPiA+ID4gPj4+DQo+ID4gPiA+ ID4+IFtBbm9vYl0gQWxsb3dpbmcgYSByYW5nZSBmb3IgU1BJIGlzIHdoYXQgeW91IGhhdmUgYWxz byBkZXNjcmliZWQuDQo+ID4gV2hhdA0KPiA+ID4gPiB5b3UgZGVzY3JpYmVkIGlzIG9uZSB3YXkg dG8gZGVmaW5lIGEgcmFuZ2UuIFRoYXQgd2lsbCBjb21lIGFzDQo+ID4gPiA+ID4+IHBhcnQgb2Yg dGhlIGltcGxlbWVudGF0aW9uLCBpZSwgYSBjaGFuZ2UgaW4gdGhlIGV4YW1wbGUgYXBwbGljYXRp b24uDQo+ID4gVGhpcw0KPiA+ID4gPiBwYXRjaCBpbnRlbmRzIHRvIGFsbG93IHVzaW5nIGEgcmFu Z2UgZm9yIFNQSSB0aGFuIGEgZml4ZWQNCj4gPiA+ID4gPj4gdmFsdWUuIEkgYmVsaWV2ZSB5b3Ug YXJlIGFsc28gaW4gYWdyZWVtZW50IHRoZXJlLg0KPiA+ID4gPiA+IEkgYWxzbyBkb24ndCBoYXZl IG9iamVjdGlvbnMgZm9yIHRoYXQgcGF0Y2guDQo+ID4gPiA+ID4gVGhlIG9ubHkgb2JzZXJhdmlv biBmcm9tIHJlYWRpbmcgeW91ciByZXBsaWVzIHRvIHRoYXQgYXQNCj4gPiA+ID4gPiBpcHNlYy1z ZWNndw0KPiA+ID4gPiBwYXRjaGVzOg0KPiA+ID4gPiA+IEV4dHJhIEFQSSB0byByZXRyaWV2ZSBz aXplIG9mIHRoYXQgSFcgdGFibGUgc2VlbXMgdG8gYmUgbmVlZGVkLg0KPiA+ID4gPiA+IFRob3Vn aCBJIHN1cHBvc2UgaXQgY291bGQgYmUgYSBzdWJqZWN0IG9mIHNlcGFyYXRlIHBhdGNoL2Rpc2N1 c3Npb24uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBY2tlZC1ieTogS29uc3RhbnRpbiBBbmFueWV2 IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiA+ID4gPg0KPiA+ID4gPiBJIGFsc28g ZG9uJ3QgaGF2ZSBvYmplY3Rpb25zLg0KPiA+ID4gPg0KPiA+ID4gPiBBY2tlZC1ieTogVmxhZGlt aXIgTWVkdmVka2luIDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29tPg0KPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4+Pj4+IC0gT3RoZXIgU1BJIHZhbHVlcyB3b3VsZCBiZSBwcm9jZXNz ZWQgbm9uIGlubGluZS4NCj4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPj4+Pj4gSW4gdGhpcyBjYXNl IHdlIHdvdWxkIGJlIGFibGUgdG8gaGF2ZSBTQSBhZGRyZXNzZWQgYnkgbG9uZ2VyDQo+ID4gdHVw bGUNCj4gPiA+ID4gKGkuZS4NCj4gPiA+ID4gPj4+Pj4gU1BJK0RJUCtTSVApIG91dHNpZGUgb2Yg YmVmb3JlIG1lbnRpb25lZCByYW5nZSwgYXMgd2VsbCBhcw0KPiA+ID4gPiA+Pj4+PiBTUEkrRElQ K1NBDQo+ID4gd2l0aA0KPiA+ID4gPiA+Pj4+PiB1bnN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgYnkg aW5saW5lIHByb3RvY29sIGRldmljZS4NCj4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPj4+Pj4+Pj4+ Pj4+IFRoZSB1c2FnZSBvZiBvbmUgJ3J0ZV9mbG93JyBmb3IgbXVsdGlwbGUgU0FzIGlzIG5vdA0K PiA+ID4gPiBtYW5kYXRvcnkuDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+PiBJdCBpcyBvbmx5IHJlcXVp cmVkIHdoZW4gYXBwbGljYXRpb24gcmVxdWlyZXMgbGFyZ2UNCj4gPiBudW1iZXINCj4gPiA+IG9m DQo+ID4gPiA+ID4+PiBTQXMuDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+PiBUaGUgcHJvcG9zZWQNCj4g PiA+ID4gPj4+Pj4+Pj4+Pj4gY2hhbmdlIGlzIHRvIGFsbG93IG1vcmUgZWZmaWNpZW50IHVzYWdl IG9mIGgvdw0KPiA+ID4gPiA+Pj4+Pj4+Pj4+PiByZXNvdXJjZXMNCj4gPiA+ID4gd2hlcmUNCj4g PiA+ID4gPj4+Pj4+Pj4+Pj4gaXQncyBwZXJtaXR0ZWQgYnkgdGhlIFBNRC4NCj4gPiA+ID4gPj4+ Pj4+Pj4+Pj4+Pj4gQXBwbGljYXRpb24gc2hvdWxkIGRvIGFuIHJ0ZV9mbG93X3ZhbGlkYXRlKCkg dG8NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gbWFrZQ0KPiA+ID4gc3VyZQ0KPiA+ID4gPiA+Pj4+ Pj4+Pj4+Pj4+PiB0aGUgZmxvdyBpcyBzdXBwb3J0ZWQgb24gdGhlIFBNRC4NCj4gPiA+ID4gPj4+ Pj4+Pj4+Pj4+Pj4NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQW5vb2Ig Sm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC0tLQ0K PiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICBsaWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5o IHwgNiArKysrKysNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4+ Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4g PiA+Pj4+Pj4+Pj4+Pj4+PiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggaW5kZXgNCj4g PiA0NTJkMzU5Li4yMWZhN2VkDQo+ID4gPiA+ID4+PiAxMDA2NDQNCj4gPiA+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4gPiA+Pj4+Pj4+ Pj4+Pj4+PiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gPiA+ID4+Pj4+ Pj4+Pj4+Pj4+IEBAIC0yMjM5LDYgKzIyMzksMTIgQEAgc3RydWN0DQo+ID4gcnRlX2Zsb3dfYWN0 aW9uX21ldGVyDQo+ID4gPiB7DQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAqIGRpcmVj dGlvbi4NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICoNCj4gPiA+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gICAgICAgICogTXVsdGlwbGUgZmxvd3MgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gdXNlDQo+ ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHRoZSBzYW1lIHNlY3VyaXR5DQo+ID4gPiA+ID4+Pj4+IHNl c3Npb24uDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKg0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+ PiArICogVGhlIE5VTEwgdmFsdWUgaXMgYWxsb3dlZCBmb3Igc2VjdXJpdHkgc2Vzc2lvbi4NCj4g PiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gKyBJZiBzZWN1cml0eSBzZXNzaW9uIGlzIE5VTEwsDQo+ID4g PiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiB0aGVuIFNQSSBmaWVsZCBpbiBFU1AgZmxvdyBpdGVtIGFu ZCBJUA0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiArIGFkZHJlc3NlcyBpbg0KPiA+ID4gZmxvdw0K PiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiArIGl0ZW1zICdJUHY0JyBhbmQNCj4gPiA+ID4gPj4+Pj4+ Pj4+Pj4+Pj4gKyAqICdJUHY2JyB3aWxsIGJlIGFsbG93ZWQgdG8gYmUgYSByYW5nZS4gVGhlIHJ1 bGUNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gKyB0aHVzIGNyZWF0ZWQgY2FuIGVuYWJsZQ0KPiA+ ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiArICogU0VDVVJJVFkgcHJvY2Vzc2luZyBvbiBtdWx0aXBsZSBm bG93cy4NCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gKyAqDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ ICAgICAgICAqLw0KPiA+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICBzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX3NlY3VyaXR5IHsNCj4gPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgdm9pZCAqc2Vj dXJpdHlfc2Vzc2lvbjsgLyoqPCBQb2ludGVyIHRvDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHNl Y3VyaXR5IHNlc3Npb24NCj4gPiA+ID4gPj4+Pj4+PiBzdHJ1Y3R1cmUuDQo+ID4gPiA+ID4+Pj4+ Pj4+Pj4+Pj4+ICovDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IC0tDQo+ID4gPiA+ID4+Pj4+Pj4+ Pj4+Pj4+IDIuNy40DQo+ID4gPiA+ID4+Pj4+Pj4+PiAtLQ0KPiA+ID4gPiA+Pj4+Pj4+Pj4gUmVn YXJkcywNCj4gPiA+ID4gPj4+Pj4+Pj4+IFZsYWRpbWlyDQo+ID4gPiA+ID4+Pj4+Pj4gLS0NCj4g PiA+ID4gPj4+Pj4+PiBSZWdhcmRzLA0KPiA+ID4gPiA+Pj4+Pj4+IFZsYWRpbWlyDQo+ID4gPiA+ ID4+Pj4+IC0tDQo+ID4gPiA+ID4+Pj4+IFJlZ2FyZHMsDQo+ID4gPiA+ID4+Pj4+IFZsYWRpbWly DQo+ID4gPiA+ID4+PiAtLQ0KPiA+ID4gPiA+Pj4gUmVnYXJkcywNCj4gPiA+ID4gPj4+IFZsYWRp bWlyDQo+ID4gPiA+DQo+ID4gPiA+IC0tDQo+ID4gPiA+IFJlZ2FyZHMsDQo+ID4gPiA+IFZsYWRp bWlyDQoNCg==