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 CEFB8A0352; Thu, 16 Jan 2020 12:36:21 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A2B231C241; Thu, 16 Jan 2020 12:36:21 +0100 (CET) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00045.outbound.protection.outlook.com [40.107.0.45]) by dpdk.org (Postfix) with ESMTP id 9F7381C241 for ; Thu, 16 Jan 2020 12:36:20 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XTPQ+ljuWtSGuO91ted0WhnROfCcXFOa/1CIJnnFoNbBGJxP1/Wz82oJBF713CuWJXEZTXmYq9gFPcFi1ghcyHqMnC9N6DYnkdMynV1y0WyqVdcbOzu2Zmx/fuqk6M3YYzxphg2gdslpa0YaaYW7Uwdfj54NSCuQQsJNgEwr6Qcod/2EJsIF+yo1jVCjq972JmaGpTXj3kqV1ri+ATIS3TIjz/VPz1+VIMX9z/MDiUIXwuUCUFDg09XvbsfzdvLsRb98+lRUdVusJ5Rpct9lK6NXdboOJLDQwKj4thVKXtJvIH0/geEu/7V7TsTAFTWTE4A1afZDovVuNkZqKYSOJA== 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=Y+mxLpFNZWPNovt8FBPyRjLtIr8rjqT8E1aJFV8gano=; b=SyFSZGek3Be7v6ogdC6/LUratHgXXpJlwRG754asVO+yqNvoYsbJHUjYD+wgF7gD4OlirduYVwTjVBjyAsMmv9y5rOOsi9onEgapa9tNoe3HxOWyYOpiF7l2bOS+H68mRu/4EyRCDYyCRnqyG2FRfTK7bS4p2zNRAq8A4IRbqzhYGwRTYLrc8VEoZiUd6t9xRilffewuS4sOWYll59DhZKe9VfbehZnVN4vhzuiGCMOZBshsWCm0hPBc41HmH0VV5oQmjd8ugZ2fp5ccSwapdDuWLVZuKZ+zsjNugD+szZqtu6I/xQnj/MGDDvZwbQ+cp3/SidxU7hVZe+StOq0T4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y+mxLpFNZWPNovt8FBPyRjLtIr8rjqT8E1aJFV8gano=; b=t2jKDBbI4ci0yAUZ1ok24YrgvFzgqYfsFmlkz/06F74LxAx4Luyfr2SccrX4Vcp1lQXnE/eJ0CSlQqY1+QtBsAinXWs4ZVcDRJuf7yiCCPA2C1s/qqUuj/TkU06Ta7jZxio3n0weENwuio8N3BeoZ6872PS5MkNZeqW3VJ7bjUY= Received: from AM5PR0501MB2579.eurprd05.prod.outlook.com (10.169.150.151) by AM5PR0501MB2577.eurprd05.prod.outlook.com (10.169.153.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19; Thu, 16 Jan 2020 11:36:19 +0000 Received: from AM5PR0501MB2579.eurprd05.prod.outlook.com ([fe80::189a:c6d4:a60d:9a19]) by AM5PR0501MB2579.eurprd05.prod.outlook.com ([fe80::189a:c6d4:a60d:9a19%8]) with mapi id 15.20.2644.015; Thu, 16 Jan 2020 11:36:19 +0000 From: Ori Kam To: Anoob Joseph , "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: AQHVtCwr4uuFDX00UEiog89yHDPTaqe+L+AAgAAzSgCAADe1gIAAqniAgACnDgCAAPdZgIAG32GAgBk0vQCAARxrwIAH/RIAgAAqmcA= Date: Thu, 16 Jan 2020 11:36:19 +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-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=orika@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 81c09a67-e19a-434a-6bec-08d79a784e2e x-ms-traffictypediagnostic: AM5PR0501MB2577:|AM5PR0501MB2577: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr 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)(366004)(346002)(39860400002)(136003)(396003)(376002)(189003)(199004)(7416002)(15650500001)(6506007)(9686003)(110136005)(55016002)(52536014)(26005)(316002)(53546011)(478600001)(7696005)(33656002)(66446008)(186003)(76116006)(81166006)(71200400001)(30864003)(5660300002)(8676002)(2906002)(64756008)(54906003)(86362001)(4326008)(66476007)(66556008)(81156014)(8936002)(66946007)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2577; H:AM5PR0501MB2579.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iJ9C287v3FtC2DAloxfAcy5dEmD86qafsf0BygJZ5fJvmjFhEY/4TtQIQoppDxwLDonhk4yHzd/6KdVHHhGHi2BJMSPI6xD1Ikeg91EykX/nI2bDO89+HsRQ6WBwSfiUOlfL59SJn/Xx+RyhuVl1PScgMAtDdaXhl6HPsfakw1gHH54PcJPt9fKhloe+sXEJv/8CnIS9y1KVJA+zzJm6mTfY7nx2qlKrR2PBuLEVuTHFKkEt9xLYjeOtzBcVkhGVvcAAO5+j/7Dte+iHADbNttJSXRGaaTCwLjKhMpyUTqJksbQGti/J+ieTbgiSZrl458TduWBgoQVNkYLj87AlZnuFiBCFzcPj2zvwsk8thsKZWx1O2VLeQ364XtNPlIqqChJ9fC/LK8Y7b8rbekNeG0qmC1oCuL8IDixtllmUprMzDPxep6sxNVJXMEqlxL0//uttDxsgdQa9WK7j+wEie9e+7M1VE99tBPWl2szYwEcQvgL7KdAD2Y8b8nSN4v/k Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81c09a67-e19a-434a-6bec-08d79a784e2e X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2020 11:36:19.2653 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RgyZb99GikOqDH3kaZodcwkzyH6kRKV2VjMBL5pOck0ViNlDKgBITPN5w5B+gggt9E1BN4ncU6QS7tzgPqR4OA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2577 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IDxkZXYtYm91bmNl c0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIEFub29iIEpvc2VwaA0KPiBTZW50OiBUdWVzZGF5LCBK YW51YXJ5IDE0LCAyMDIwIDExOjI4IEFNDQo+IFRvOiBPcmkgS2FtIDxvcmlrYUBtZWxsYW5veC5j b20+OyBNZWR2ZWRraW4sIFZsYWRpbWlyDQo+IDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29t PjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47 IEFraGlsIEdveWFsIDxha2hpbC5nb3lhbEBueHAuY29tPjsNCj4gQWRyaWVuIE1hemFyZ3VpbCA8 YWRyaWVuLm1hemFyZ3VpbEA2d2luZC5jb20+OyBEb2hlcnR5LCBEZWNsYW4NCj4gPGRlY2xhbi5k b2hlcnR5QGludGVsLmNvbT47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+ OyBKZXJpbg0KPiBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+OyBUaG9t YXMgTW9uamFsb24NCj4gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+IENjOiBBbmt1ciBEd2l2ZWRp IDxhZHdpdmVkaUBtYXJ2ZWxsLmNvbT47IEhlbWFudCBBZ3Jhd2FsDQo+IDxoZW1hbnQuYWdyYXdh bEBueHAuY29tPjsgTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47DQo+IE5pY29sYXUs IFJhZHUgPHJhZHUubmljb2xhdUBpbnRlbC5jb20+OyBTaGFoYWYgU2h1bGVyDQo+IDxzaGFoYWZz QG1lbGxhbm94LmNvbT47IE5hcmF5YW5hIFByYXNhZCBSYWp1IEF0aHJleWENCj4gPHBhdGhyZXlh QG1hcnZlbGwuY29tPjsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtF WFRdIFJlOiBbUEFUQ0hdIGV0aGRldjogYWxsb3cgbXVsdGlwbGUgc2VjdXJpdHkNCj4gc2Vzc2lv bnMgdG8gdXNlIG9uZSBydGUgZmxvdw0KPiANCj4gSGkgT3JpLA0KPiANCj4gUGxlYXNlIHNlZSBp bmxpbmUuDQo+IA0KPiBUaGFua3MsDQo+IEFub29iDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gRnJvbTogT3JpIEthbSA8b3Jpa2FAbWVsbGFub3guY29tPg0KPiA+IFNl bnQ6IFRodXJzZGF5LCBKYW51YXJ5IDksIDIwMjAgMTowNiBQTQ0KPiA+IFRvOiBNZWR2ZWRraW4s IFZsYWRpbWlyIDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29tPjsgQW5hbnlldiwNCj4gPiBL b25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgQW5vb2IgSm9zZXBoDQo+ ID4gPGFub29iakBtYXJ2ZWxsLmNvbT47IEFraGlsIEdveWFsIDxha2hpbC5nb3lhbEBueHAuY29t PjsgQWRyaWVuDQo+ID4gTWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT47IERv aGVydHksIERlY2xhbg0KPiA+IDxkZWNsYW4uZG9oZXJ0eUBpbnRlbC5jb20+OyBZaWdpdCwgRmVy cnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgSmVyaW4NCj4gPiBKYWNvYiBLb2xsYW51a2th cmFuIDxqZXJpbmpAbWFydmVsbC5jb20+OyBUaG9tYXMgTW9uamFsb24NCj4gPiA8dGhvbWFzQG1v bmphbG9uLm5ldD4NCj4gPiBDYzogQW5rdXIgRHdpdmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+ OyBIZW1hbnQgQWdyYXdhbA0KPiA+IDxoZW1hbnQuYWdyYXdhbEBueHAuY29tPjsgTWF0YW4gQXpy YWQgPG1hdGFuQG1lbGxhbm94LmNvbT47DQo+ID4gTmljb2xhdSwgUmFkdSA8cmFkdS5uaWNvbGF1 QGludGVsLmNvbT47IFNoYWhhZiBTaHVsZXINCj4gPiA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBO YXJheWFuYSBQcmFzYWQgUmFqdSBBdGhyZXlhDQo+ID4gPHBhdGhyZXlhQG1hcnZlbGwuY29tPjsg ZGV2QGRwZGsub3JnDQo+ID4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW0VYVF0gUmU6IFtQQVRD SF0gZXRoZGV2OiBhbGxvdyBtdWx0aXBsZSBzZWN1cml0eQ0KPiA+IHNlc3Npb25zIHRvIHVzZSBv bmUgcnRlIGZsb3cNCj4gPg0KPiA+IEhpDQo+ID4gc29ycnkgZm9yIGp1bXBpbmcgaW4gbGF0ZS4N Cj4gPg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTog ZGV2IDxkZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIE1lZHZlZGtpbiwgVmxhZGlt aXINCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSA4LCAyMDIwIDQ6MzAgUE0NCj4gPiA+ IFRvOiBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsg QW5vb2INCj4gSm9zZXBoDQo+ID4gPiA8YW5vb2JqQG1hcnZlbGwuY29tPjsgQWtoaWwgR295YWwg PGFraGlsLmdveWFsQG54cC5jb20+OyBBZHJpZW4NCj4gPiA+IE1hemFyZ3VpbCA8YWRyaWVuLm1h emFyZ3VpbEA2d2luZC5jb20+OyBEb2hlcnR5LCBEZWNsYW4NCj4gPiA+IDxkZWNsYW4uZG9oZXJ0 eUBpbnRlbC5jb20+OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsNCj4g SmVyaW4NCj4gPiA+IEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47IFRo b21hcyBNb25qYWxvbg0KPiA+ID4gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+ID4gPiBDYzogQW5r dXIgRHdpdmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+OyBIZW1hbnQgQWdyYXdhbA0KPiA+ID4g PGhlbWFudC5hZ3Jhd2FsQG54cC5jb20+OyBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3guY29t PjsNCj4gPiA+IE5pY29sYXUsIFJhZHUgPHJhZHUubmljb2xhdUBpbnRlbC5jb20+OyBTaGFoYWYg U2h1bGVyDQo+ID4gPiA8c2hhaGFmc0BtZWxsYW5veC5jb20+OyBOYXJheWFuYSBQcmFzYWQgUmFq dSBBdGhyZXlhDQo+ID4gPiA8cGF0aHJleWFAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4g PiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtFWFRdIFJlOiBbUEFUQ0hdIGV0aGRldjogYWxs b3cgbXVsdGlwbGUgc2VjdXJpdHkNCj4gPiA+IHNlc3Npb25zIHRvIHVzZSBvbmUgcnRlIGZsb3cN Cj4gPiA+DQo+ID4gPiBIaSBBbm9vYiwNCj4gPiA+DQo+ID4gPiBPbiAyMy8xMi8yMDE5IDEzOjM0 LCBBbmFueWV2LCBLb25zdGFudGluIHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+ Pj4gVGhlIHJ0ZV9zZWN1cml0eSBBUEkgd2hpY2ggZW5hYmxlcyBpbmxpbmUNCj4gPiBwcm90b2Nv bC9jcnlwdG8NCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGZlYXR1cmUgbWFuZGF0ZXMgdGhhdCBmb3Ig ZXZlcnkgc2VjdXJpdHkgc2Vzc2lvbiBhbg0KPiA+ID4gcnRlX2Zsb3cNCj4gPiA+ID4+Pj4+Pj4+ Pj4+Pj4+IGlzDQo+ID4gPiA+Pj4+PiBjcmVhdGVkLg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gVGhp cyB3b3VsZCBpbnRlcm5hbGx5IHRyYW5zbGF0ZSB0byBhIHJ1bGUgaW4gdGhlDQo+IGhhcmR3YXJl DQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiB3aGljaCB3b3VsZCBkbyBwYWNrZXQgY2xhc3NpZmljYXRp b24uDQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gSW4gcnRlX3Nl Y3VydHksIG9uZSBTQSB3b3VsZCBiZSBvbmUgc2VjdXJpdHkgc2Vzc2lvbi4NCj4gPiBBbmQNCj4g PiA+IGlmDQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiBhbiBydGVfZmxvdyBuZWVkIHRvIGJlIGNyZWF0 ZWQgZm9yIGV2ZXJ5IHNlc3Npb24sIHRoZQ0KPiA+ID4gbnVtYmVyDQo+ID4gPiA+Pj4+Pj4+Pj4+ Pj4+PiBvZiBTQXMgc3VwcG9ydGVkIGJ5IGFuIGlubGluZSBpbXBsZW1lbnRhdGlvbiB3b3VsZA0K PiBiZQ0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gbGltaXRlZCBieSB0aGUgbnVtYmVyIG9mIHJ0ZV9m bG93cyB0aGUgUE1EIHdvdWxkIGJlDQo+ID4gPiBhYmxlIHRvDQo+ID4gPiA+Pj4gc3VwcG9ydC4N Cj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IElmIHRoZSBmaWVsZHMgU1BJICYgSVAgYWRkcmVzc2VzIGFy ZSBhbGxvd2VkIHRvIGJlIGENCj4gPiByYW5nZSwNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHRoZW4g dGhpcyBsaW1pdGF0aW9uIGNhbiBiZSBvdmVyY29tZS4gTXVsdGlwbGUgZmxvd3MNCj4gd2lsbA0K PiA+ID4gYmUNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IGFibGUgdG8gdXNlIG9uZSBydWxlIGZvciBT RUNVUklUWSBwcm9jZXNzaW5nLiBJbiB0aGlzDQo+ID4gY2FzZSwNCj4gPiA+ID4+Pj4+Pj4+Pj4+ Pj4+IHRoZSBzZWN1cml0eSBzZXNzaW9uIHByb3ZpZGVkIGFzIGNvbmYgd291bGQgYmUgTlVMTC4N Cj4gPg0KPiA+IFdoeSBpcyB0aGF0Pw0KPiA+IElmIHRoZSBydGUgZmxvdyBjYW4gaGF2ZSBhIHJh bmdlIHRoZW4gdGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgb25lDQo+ID4gc2VjdXJpdHlfc2Vzc2lv biBmb3IgdGhlIGVudGlyZSByYW5nZSwNCj4gPiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nPyBBcyBp dCBpcyBzdGF0ZWQgaW4gdGhlIHJ0ZV9mb3cuaCAgc2VjdXJpdHlfc2Vzc2lvbg0KPiBjYW4NCj4g PiBiZSB1c2VkIGZvciBtdWx0aXBsZSBmbG93cy4NCj4gDQo+IFtBbm9vYl0gT25lIFNBIHdvdWxk IG1lYW4gb25lIHNlY3VyaXR5X3Nlc3Npb24uIFNvIGlmIHdlIGhhdmUgb25lDQo+IHNlY3VyaXR5 X3Nlc3Npb24gZm9yIHRoZSBlbnRpcmUgcmFuZ2UsIHRoZW4gaXQgd2lsbCBiZSBsaWtlIGhhdmlu ZyBzaW5nbGUgU0EgZm9yIGENCj4gcmFuZ2Ugb2YgSVAgJiBTUEkuIERvIHlvdSB0aGluayB3ZSBz aG91bGQgYWxsb3cgdGhhdD8NCj4gDQpbT3JpXSBJJ20gbGVzcyBmYW1pbGlhciB3aXRoIHNlY3Vy aXR5LCBidXQgdGhpcyBpcyB3aGF0IEkgdW5kZXJzdGFuZCB5b3UgYXJlIHRyeWluZyB0byBkbw0K cmlnaHQ/DQoNCj4gQWxzbywgdGhlIGludGVudCBvZiB0aGUgcGF0Y2ggaXMgdG8gbWluaW1pemUg dGhlIG51bWJlciBvZiBydGVfZmxvdyBydWxlcw0KPiByZXF1aXJlZCBmb3IgaW5saW5lIGlwc2Vj IHByb2Nlc3NpbmcuIFNpbmNlIHRoZSBzZWN1cml0eSBzZXNzaW9uIGlzIHBlciBTQSwgYW5kIGlm DQo+IHdlIG5lZWQgbXVsdGlwbGUgU1BJcyB0byB1c2Ugc2FtZSBydGVfZmxvdyBydWxlLCB0aGVu IHRoZSBzZWN1cml0eV9zZXNzaW9uDQo+IGZpZWxkIGluIHRoZSBydGVfZmxvdyBydWxlIG5lZWQg dG8gYmUgTlVMTC4gSGF2aW5nIGEgbm9uLXplcm8NCj4gc2VjdXJpdHlfc2Vzc2lvbiB3aGVuIFNQ SSBpcyBhIHJhbmdlIHdvdWxkIGJlIGluY29ycmVjdC4NCj4gDQpbT3JpXSBJJ20gYWxsIGluIGZh dm9yIGRlY3JlYXNpbmcgbnVtYmVyIG9mIGZsb3dzLg0KU29ycnkgZm9yIHRoZSBiYXNpYyBxdWVz dGlvbiwgd2hhdCBpcyB0aGUgc2VjdXJpdHlfc2Vzc2lvbiAvU0EgZGVwZW5kZW50IG9uPw0KQ2Fu IG9uZSBTQSBpbmNsdWRlIG51bWJlciBvZiBkaWZmZXJlbnQgU1BJPyANCg0KPiA+DQo+ID4gPiA+ Pj4+Pj4+Pj4+Pj4+IFdvbmRlciB3aGF0IHdpbGwgYmUgdGhlIHVzYWdlIG1vZGVsIGZvciBpdD8N Cj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4gQUZBSUssICBSRkMgNDMwMSBjbGVhcmx5IHN0YXRlcyB0aGF0 IGVpdGhlciBTUEkgdmFsdWUNCj4gYWxvbmUNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4gb3IgaW4gY29u anVuY3Rpb24gd2l0aCBkc3QgKGFuZCBzcmMpIElQIHNob3VsZCBjbGVhcmx5DQo+ID4gPiA+Pj4+ Pj4+Pj4+Pj4+IGlkZW50aWZ5IFNBIGZvciBpbmJvdW5kIFNBRA0KPiA+ID4gPj4+Pj4+Pj4+Pj4g bG9va3VwLg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+PiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nIG9idmlv dXMgaGVyZT8NCj4gPiA+ID4+Pj4+Pj4+Pj4+PiBbQW5vb2JdIEV4aXN0aW5nIFNFQ1VSSVRZIGFj dGlvbiB0eXBlIHJlcXVpcmVzDQo+IGFwcGxpY2F0aW9uDQo+ID4gdG8NCj4gPiA+ID4+Pj4+Pj4+ Pj4+PiBjcmVhdGUgYW4gJ3J0ZV9mbG93JyBwZXIgU0EsIHdoaWNoIGlzIG5vdCByZWFsbHkgcmVx dWlyZWQgaWYNCj4gPiA+ID4+Pj4+Pj4+Pj4+PiBoL3cgY2FuIHVzZSBTUEkgdG8gdW5pcXVlbHkN Cj4gPiA+ID4+Pj4+Pj4+Pj4+IGlkZW50aWZ5IHRoZSBzZWN1cml0eSBzZXNzaW9uL1NBLg0KPiA+ ID4gPj4+Pj4+Pj4+Pj4+IEV4aXN0aW5nIHJ0ZV9mbG93IHVzYWdlOiBJUCAoZHN0LHNyYykgKyBF U1AgKyBTUEkgLT4gc2VjdXJpdHkNCj4gPiA+ID4+Pj4+Pj4+Pj4+PiBwcm9jZXNzaW5nIGVuYWJs ZWQgb24gb25lIHNlY3VyaXR5IHNlc3Npb24gKGllIG9uIFNBKQ0KPiA+ID4gPj4+Pj4+Pj4+Pj4+ DQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4gVGhlIGFib3ZlIHJ1bGUgd291bGQgdW5pcXVlbHkgaWRlbnRp ZnkgcGFja2V0cyBmb3IgYW4NCj4gU0EuDQo+ID4gPiBCdXQNCj4gPiA+ID4+Pj4+Pj4+Pj4+PiB3 aXRoIHRoZSBhYm92ZSB1c2FnZSwgd2Ugd291bGQgcXVpY2tseSBleGhhdXN0IGVudHJpZXMNCj4g PiA+ID4+Pj4+Pj4+Pj4+PiBhdmFpbGFibGUgaW4gaC93IGxvb2t1cCB0YWJsZXMgKHdoaWNoIGFy ZSBsaW1pdGVkIG9uIG91cg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+IGhhcmR3YXJlKS4gQnV0IGlmIGgv dyBjYW4gdXNlIFNQSSBmaWVsZCB0byBpbmRleA0KPiA+ID4gPj4+Pj4+Pj4+Pj4gaW50byBhIHRh YmxlIChmb3IgZXhhbXBsZSksIHRoZW4gdGhlIGFib3ZlIHJlcXVpcmVtZW50IG9mDQo+ID4gPiBv bmUNCj4gPiA+ID4+Pj4+Pj4+Pj4+IHJ0ZV9mbG93IHBlciBTQSBpcyBub3QgcmVxdWlyZWQuDQo+ ID4gPiA+Pj4+Pj4+Pj4+Pj4gUHJvcG9zZWQgcnRlX2Zsb3cgdXNhZ2U6IElQIChhbnkpICsgRVNQ ICsgU1BJIChhbnkpIC0+DQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4gc2VjdXJpdHkgcHJvY2Vzc2luZyBl bmFibGVkIG9uIGFsbCBFU1AgcGFja2V0cw0KPiA+ID4gPj4+Pj4+Pj4+IFNvIHRoaXMgbWVhbnMg dGhhdCBTQSB3aWxsIGJlIGluZGV4ZWQgb25seSBieSBzcGk/IFdoYXQNCj4gYWJvdXQNCj4gPiA+ ID4+Pj4+Pj4+PiBTQSdzIHdoaWNoIGFyZSBpbmRleGVkIGJ5IFNQSStESVArU0lQPw0KPiA+ID4g Pj4+Pj4+Pj4+Pj4+IE5vdyBoL3cgY291bGQgdXNlIFNQSSB0byBpbmRleCBpbnRvIGEgcHJlLXBv cHVsYXRlZA0KPiB0YWJsZQ0KPiA+ID4gdG8NCj4gPiA+ID4+Pj4+Pj4+Pj4+PiBnZXQgc2VjdXJp dHkgc2Vzc2lvbi4gUGxlYXNlIGRvIG5vdGUgdGhhdCwgU1BJIGlzIG5vdA0KPiBpZ25vcmVkDQo+ ID4gPiA+Pj4+Pj4+Pj4+Pj4gZHVyaW5nIHRoZSBhY3R1YWwNCj4gPiA+ID4+Pj4+Pj4+Pj4+IGxv b2t1cC4gSnVzdCB0aGF0IGl0IGlzIG5vdCB1c2VkIHdoaWxlIGNyZWF0aW5nICdydGVfZmxvdycu DQo+ID4gPiA+Pj4+Pj4+Pj4+Pg0KPiA+ID4gPj4+Pj4+Pj4+Pj4gQW5kIHRoaXMgdGFibGUgd2ls bCBiZSBwcmVwb3B1bGF0ZWQgYnkgdXNlciBhbmQgcG9pbnRlciB0bw0KPiBpdA0KPiA+ID4gPj4+ Pj4+Pj4+Pj4gd2lsbCBiZSBzb21laG93IHBhc3NlZCB2aWEgcnRlX2Zsb3cgQVBJPw0KPiA+ID4g Pj4+Pj4+Pj4+Pj4gSWYgeWVzLCB0aGVuIHdoYXQgd291bGQgYmUgdGhlIG1lY2hhbmlzbT8NCj4g PiA+ID4+Pj4+Pj4+Pj4gW0Fub29iXSBJJ20gbm90IHN1cmUgd2hhdCBleGFjdGx5IHlvdSBtZWFu dCBieSB1c2VyLiBCdXQNCj4gPiBtYXkNCj4gPiA+IGJlDQo+ID4gPiA+Pj4+Pj4+Pj4+IEknbGwg ZXhwbGFpbg0KPiA+ID4gPj4+Pj4+Pj4+IGhvdyBpdCdzIGRvbmUgaW4gT0NURU9OVFgyIFBNRC4N Cj4gPiA+ID4+Pj4+Pj4+Pj4gVGhlIGFwcGxpY2F0aW9uIHdvdWxkIGNyZWF0ZSBzZWN1cml0eV9z ZXNzaW9uIGZvciBldmVyeSBTQS4NCj4gPiBTUEkNCj4gPiA+ID4+Pj4+Pj4+Pj4gZXRjIHdvdWxk IGJlDQo+ID4gPiA+Pj4+Pj4+Pj4gYXZhaWxhYmxlIHRvIFBNRCAoaW4gY29uZikgd2hlbiB0aGUg c2Vzc2lvbiBpcyBjcmVhdGVkLiBOb3cNCj4gPiB0aGUNCj4gPiA+ID4+Pj4+Pj4+PiBQTUQgd291 bGQgcG9wdWxhdGUgU0EgcmVsYXRlZCBwYXJhbXMgaW4gYSBzcGVjaWZpYyBsb2NhdGlvbg0KPiA+ IHRoYXQNCj4gPiA+ID4+Pj4+Pj4+PiBoL3cgd291bGQgYWNjZXNzLiBUaGlzIG1lbW9yeSBpcyBh bGxvY2F0ZWQgZHVyaW5nIGRldmljZQ0KPiA+ID4gPj4+Pj4+Pj4+IGNvbmZpZ3VyZSBhbmQgaC93 IHdvdWxkIGhhdmUgdGhlIHBvaW50ZXIgYWZ0ZXIgdGhlDQo+ID4gaW5pdGlhbGl6YXRpb24NCj4g PiA+IGlzDQo+ID4gPiA+Pj4gZG9uZS4NCj4gPiA+ID4+Pj4+Pj4+PiBJZiBtZW1vcnkgaXMgYWxs b2NhdGVkIGR1cmluZyBkZXZpY2UgY29uZmlndXJlIHdoYXQgaXMgdXBwZXINCj4gPiA+ID4+Pj4+ Pj4+PiBsaW1pdCBmb3IgbnVtYmVyIG9mIHNlc3Npb25zPyBXaGF0IGlmIGFwcCBuZWVkcyBtb3Jl Pw0KPiA+ID4gPj4+Pj4+Pj4+PiBQTUQgdXNlcyBTUEkgYXMgaW5kZXggdG8gd3JpdGUgaW50byBz cGVjaWZpYyBsb2NhdGlvbnMoZHVyaW5nDQo+ID4gPiA+Pj4+Pj4+Pj4+IHNlc3Npb24gY3JlYXRl KQ0KPiA+ID4gPj4+Pj4+Pj4+IGFuZCBoL3cgd291bGQgdXNlIGl0IHdoZW4gaXQgc2VlcyBhbiBF U1AgcGFja2V0IGVsaWdpYmxlIGZvcg0KPiA+ID4gPj4+Pj4+Pj4+IFNFQ1VSSVRZIChpbiByZWNl aXZlIHBhdGgsIHBlciBwYWNrZXQpLiBBcyBsb25nIGFzIHNlc3Npb24NCj4gPiA+ID4+Pj4+Pj4+ PiBjcmVhdGlvbiBjb3VsZCBwb3B1bGF0ZSBhdCBtZW1vcnkgbG9jYXRpb25zIHRoYXQgaC93IHdv dWxkDQo+ID4gPiBsb29rDQo+ID4gPiA+Pj4+Pj4+Pj4gYXQsIHRoaXMgc2NoZW1lIHdvdWxkDQo+ ID4gPiA+Pj4+Pj4+IHdvcmsuDQo+ID4gPiA+Pj4+Pj4+PiBbQW5vb2JdIFllcy4gQnV0IHdlIG5l ZWQgdG8gYWxsb3cgYXBwbGljYXRpb24gdG8gY29udHJvbCB0aGUNCj4gPiBoL3cNCj4gPiA+ID4+ Pj4+Pj4+IGlwc2VjDQo+ID4gPiA+Pj4+Pj4+IHByb2Nlc3NpbmcgYXMgd2VsbC4gTGV0J3Mgc2F5 LCBhcHBsaWNhdGlvbiB3YW50cyB0byBoYW5kbGUgYQ0KPiA+ID4gPj4+Pj4+PiBzcGVjaWZpYyBT UEkgcmFuZ2UgaW4gbG9va2FzaWRlIG1vZGUgKG1heSBiZSBiZWNhdXNlIG9mDQo+ID4gPiB1bnN1 cHBvcnRlZA0KPiA+ID4gPj4+Pj4+PiBjYXBhYmlsaXRpZXM/KSwgaW4gdGhhdCBjYXNlIGhhdmlu ZyBydGVfZmxvdyB3aWxsIGhlbHAgaW4gZmluZQ0KPiA+ID4gPj4+Pj4+PiB0dW5pbmcgaG93IHRo ZQ0KPiA+ID4gPj4+Pj4gaC93IHBhY2tldCBzdGVlcmluZyBoYXBwZW5zLg0KPiA+ID4gPj4+Pj4+ PiBBbHNvLCBydGVfZmxvdyBlbmFibGVzIEgvdyBwYXJzaW5nIG9uIGluY29taW5nIHBhY2tldHMu IFRoaXMNCj4gaW5mbw0KPiA+ID4gPj4+Pj4+PiBpcyB1c2VmdWwgZXZlbiBhZnRlciBJUHNlYyBw cm9jZXNzaW5nIGlzIGNvbXBsZXRlLiBPciBpZg0KPiA+ID4gPj4+Pj4+PiBhcHBsaWNhdGlvbiB3 YW50cyB0byBnaXZlIGhpZ2hlciBwcmlvcml0eSB0byBhIHJhbmdlIG9mIFNQSXMsDQo+ID4gPiA+ Pj4+Pj4+IHJ0ZV9mbG93IHdvdWxkIGFsbG93IGRvaW5nDQo+ID4gPiA+Pj4+PiBzby4NCj4gPiA+ ID4+Pj4+Pj4+PiBXaGF0IGFsZ29yaXRobSBvZiBpbmRleGluZyBieSBTUEkgaXMgdGhlcmU/IENv dWxkIEkgdXNlIGFueQ0KPiA+ID4gPj4+Pj4+Pj4+IGFyYml0cmFyeSBTUEk/IElmIHNvbWUga2lu ZCBvZiBoYXNoaW5nIGlzIHVzZWQsIHdoYXQgYWJvdXQNCj4gPiA+IGNvbGxpc2lvbnM/DQo+ID4g PiA+Pj4+Pj4+PiBbQW5vb2JdIFRoYXQgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LiBJbiBv dXIgUE1ELCB3ZQ0KPiA+IG1hcA0KPiA+ID4gaXQNCj4gPiA+ID4+Pj4+Pj4+IG9uZQ0KPiA+ID4g Pj4+Pj4gdG8gb25lLg0KPiA+ID4gPj4+Pj4+PiBBcyBpbiwgU1BJIGlzIHVzZWQgYXMgaW5kZXgg aW4gdGhlIHRhYmxlLg0KPiA+ID4gPj4+Pj4+PiBTbywgYXMgZmFyIGFzIHlvdSBhcmUgbWFwcGlu ZyBvbmUgdG8gb25lIGFuZCB1c2luZyBTUEkgYXMgYW4NCj4gPiBpbmRleCwNCj4gPiA+ID4+Pj4+ Pj4gYSBsb3Qgb2YgbWVtb3J5IGlzIHdhc3RlZCBpbiB0aGUgdGFibGUgZm9yIHVudXNlZCBTUEkn cy4gIEFsc28sDQo+IHlvdQ0KPiA+ID4gPj4+Pj4+PiBhcmUgbm90IGFibGUgdG8gaGF2ZSBhIHRh YmxlIHdpdGggMl4zMiBzZXNzaW9ucy4gSXQgaXMgbGlrZWx5IHRoYXQNCj4gPiA+ID4+Pj4+Pj4g c29tZSBudW1iZXIgb2YgU1BJJ3MgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBhcmUgdXNlZCBhcyBh biBpbmRleC4NCj4gPiA+ID4+Pj4+Pj4gQW5kIGl0IHJhaXNlcyBhIHF1ZXN0aW9uIC0gd2hhdCBp ZiBhcHBsaWNhdGlvbiBuZWVkcyB0d28gc2Vzc2lvbnMNCj4gPiA+ID4+Pj4+Pj4gd2l0aCBkaWZm ZXJlbnQNCj4gPiA+ID4+Pj4+IFNQSSdzIHdoaWNoIGhhdmUgdGhlIHNhbWUgbHNiJ3M/DQo+ID4g PiA+Pj4+Pj4gW0Fub29iXSBydGVfc2VjdXJpdHlfc2Vzc2lvbl9jcmVhdGUoKSB3b3VsZCBmYWls LiBXaHkgZG8geW91DQo+IHNheQ0KPiA+ID4gd2UNCj4gPiA+ID4+Pj4+IGNhbm5vdCBzdXBwb3J0 IDJeMzIgc2Vzc2lvbnM/IElmIGl0J3MgbWVtb3J5IGxpbWl0YXRpb24sIHRoZSBzYW1lDQo+ID4g PiA+Pj4+PiBtZW1vcnkgbGltaXRhdGlvbiB3b3VsZCBhcHBseSBldmVuIGlmIHlvdSBoYXZlIGR5 bmFtaWMNCj4gYWxsb2NhdGlvbg0KPiA+IG9mDQo+ID4gPiA+Pj4+PiBtZW1vcnkgZm9yIHNlc3Np b25zLiBTbyBhdCBzb21lIHBvaW50IHNlc3Npb24gY3JlYXRpb24gd291bGQNCj4gc3RhcnQNCj4g PiA+ID4+Pj4+IGZhaWxpbmcuIEluIG91ciBQTUQsIHdlIGFsbG93IHVzZXIgdG8gc3BlY2lmeSB0 aGUgcmFuZ2UgaXQgcmVxdWlyZXMNCj4gPiB1c2luZw0KPiA+ID4gPj4+IGRldmFyZ3MuDQo+ID4g PiA+Pj4+Pj4gQWxzbywgY29sbGlzaW9uIG9mIExTQnMgY2FuIGJlIGF2b2lkZWQgYnkgaW50cm9k dWNpbmcgYSAiTUFSSyINCj4gcnVsZQ0KPiA+ID4gPj4+Pj4+IGluDQo+ID4gPiA+Pj4+PiBhZGRp dGlvbiB0byAiU0VDVVJJVFkiIGZvciB0aGUgcnRlX2Zsb3cgY3JlYXRlZCBmb3IgaW5saW5lIGlw c2VjLg0KPiA+ID4gPj4+Pj4gQ3VycmVudGx5IHRoYXQgbW9kZWwgaXMgbm90IHN1cHBvcnRlZCAo aW4gdGhlIGxpYnJhcnkpLCBidXQgdGhhdCBpcw0KPiA+ID4gPj4+Pj4gb25lIHNvbHV0aW9uIHRv IHRoZSBjb2xsaXNpb25zIHRoYXQgY2FuIGJlIHB1cnN1ZWQgbGF0ZXIuDQo+ID4gPiA+Pj4+Pj4+ IE1vcmVvdmVyLCB3aGF0IGFib3V0DQo+ID4gPiA+Pj4+Pj4+IHR3byBzZXNzaW9ucyB3aXRoIHNh bWUgU1BJIGJ1dCBkaWZmZXJlbnQgZHN0IGFuZCBzcmMgaXANCj4gPiBhZGRyZXNzZXM/DQo+ID4g PiA+Pj4+Pj4gW0Fub29iXSBDdXJyZW50bHkgb3VyIFBNRCBvbmx5IHN1cHBvcnQgVUNBU1QgSVBT RUMuIFNvDQo+IGFub3RoZXINCj4gPiA+ID4+Pj4+PiBzZXNzaW9uDQo+ID4gPiA+Pj4+PiB3aXRo IHNhbWUgU1BJIHdvdWxkIHJlc3VsdCBpbiBzZXNzaW9uIGNyZWF0aW9uIGZhaWx1cmUuDQo+ID4g PiA+Pj4+Pg0KPiA+ID4gPj4+Pj4gQWhhLCBJIHNlZSwgdGhhbmtzIGZvciB0aGUgZXhwbGFuYXRp b24uIFNvIG15IHN1Z2dlc3Rpb24gaGVyZQ0KPiB3b3VsZA0KPiA+ID4gYmU6DQo+ID4gPiA+Pj4+ Pg0KPiA+ID4gPj4+Pj4gLSBBcHBsaWNhdGlvbiBkZWZpbmVzIHRoYXQgc29tZSBzdWJzZXQgb2Yg U0EncyB3b3VsZCBiZSBpbmxpbmUNCj4gPiA+ID4+Pj4+IHByb3RvY29sIHByb2Nlc3NlZC4gQW5k IHRoaXMgU0EncyB3aWxsIGJlIGluZGV4ZWQgYnkgU1BJIG9ubHkuDQo+ID4gPiA+Pj4+Pg0KPiA+ ID4gPj4+Pj4gLSBBcHAgZGVmaW5lcyBzcGVjaWFsIHJhbmdlIGZvciBTUEkgdmFsdWVzIG9mIHRo aXMgU0EncyAoc2l6ZSBvZiB0aGlzDQo+ID4gPiA+Pj4+PiByYW5nZSBpcyBkZWZpbmVkIHVzaW5n IGRldmFyZ3MpIGFuZCBmaXJzdCBTUEkgdmFsdWUgKGZyb20NCj4gPiA+IGNvbmZpZ3VyYXRpb24/ KS4NCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pj4+PiAtIEFwcCBpbnN0YWxscyBydGVfZmxvdyBvbmx5 IGZvciB0aGlzIHJhbmdlIChmcm9tIGZpcnN0IFNQSSB0byBmaXJzdA0KPiA+ID4gPj4+Pj4gU1BJ DQo+ID4gPiA+Pj4+PiArIHJhbmdlIHNpemUpLCBub3QgZm9yIGFsbCBTUEkgdmFsdWVzLg0KPiA+ ID4gPj4+PiBbQW5vb2JdIFRoaXMgaXMgZXhhY3RseSB3aGF0IHRoaXMgcGF0Y2ggcHJvcG9zZXMu IEFsbG93aW5nIHRoZSBTUEkNCj4gYW5kDQo+ID4gPiB0aGUNCj4gPiA+ID4+PiBJUCBhZGRyZXNz ZXMgdG8gYmUgcmFuZ2UgYW5kIGhhdmUgc2VjdXJpdHlfc2Vzc2lvbiBwcm92aWRlZCBhcw0KPiBO VUxMLg0KPiA+ID4gV2hhdA0KPiA+ID4gPj4+IHlvdSBoYXZlIGRlc2NyaWJlZCB3b3VsZCBiZSBh Y2hpZXZhYmxlIG9ubHkgaWYgd2UgY2FuIGFsbG93IHRoaXMNCj4gPiA+ID4+PiBtb2RpZmljYXRp b24gaW4gdGhlIGxpYi4NCj4gPiA+ID4+Pj4gU28gY2FuIEkgYXNzdW1lIHlvdSBhcmUgaW4gYWdy ZWVtZW50IHdpdGggdGhpcyBwYXRjaD8NCj4gPiA+ID4+PiBOb3QgZXhhY3RseS4gSSBtZWFudCBp dCBpcyBiZXR0ZXIgdG8gbWFrZSBtb3JlIHNwZWNpZmllZCBmbG93IGxpa2U6DQo+ID4gPiA+Pj4N Cj4gPiA+ID4+PiAuLi4NCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IHN0cnVjdCBydGVfZmxvd19pdGVt X2VzcCBlc3Bfc3BlYyA9IHsNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+ICAgICAgICAgICAuaGRyID0g ew0KPiA+ID4gPj4+ICAgICAgICAgICAgICAgICAgIC5zcGkgPSBydGVfY3B1X3RvX2JlXzMyKGZp cnN0X3NwaSksDQo+ID4gPiA+Pj4gICAgICAgICAgIH0sDQo+ID4gPiA+Pj4NCj4gPiA+ID4+PiB9 Ow0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZXNwIGVzcF9tYXNr ID0gew0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gICAgICAgICAgIC5oZHIgPSB7DQo+ID4gPiA+Pj4g ICAgICAgICAgICAgICAgICAgLnNwaSA9IHJ0ZV9jcHVfdG9fYmVfMzIobmJfaXBzZWNfaW5fc2Eg LSAxKSwNCj4gPiA+ID4+PiAgICAgICAgICAgfSwNCj4gPiA+ID4+Pg0KPiA+ID4gPj4+IH07DQo+ ID4gPiA+Pj4NCj4gPiA+ID4+PiBwYXR0ZXJuWzBdLnR5cGUgPSBSVEVfRkxPV19JVEVNX1RZUEVf RVNQOw0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gcGF0dGVyblswXS5zcGVjID0gJiBlc3Bfc3BlYzsN Cj4gPiA+ID4+Pg0KPiA+ID4gPj4+IHBhdHRlcm5bMF0ubWFzayA9ICZlc3BfbWFzazsNCj4gPiA+ ID4+Pg0KPiA+ID4gPj4+IC4uLg0KPiA+ID4gPj4+DQo+ID4gPiA+Pj4gU28gdGhpcyBtZWFucyBp bmxpbmUgcHJvdG8gZGV2aWNlIHdvdWxkIHByb2Nlc3Mgb25seSBzcGVjaWFsIHN1YnNldA0KPiBv Zg0KPiA+ID4gU1BJJ3MuDQo+ID4gPiA+Pj4gQWxsIG90aGVyIHdpbGwgYmUgcHJvY2Vzc2VkIGFz IHVzdWFsLiBTdXJlLCB5b3UgY2FuIGFzc2lnbiBhbGwNCj4gPiA+ID4+PiAyXjMyIFNQSSByYW5n ZSBhbmQgaXQgd29yayBhcyB5b3UgaW50ZW5kZWQgZWFybGllci4gSSB0aGluayB3ZSBuZWVkIHRv DQo+ID4gPiBoYXZlDQo+ID4gPiA+Pj4gZmluZXIgZ3JhaW5lZCBjb250cm9sIGhlcmUuDQo+ID4g PiA+Pj4NCj4gPiA+ID4+IFtBbm9vYl0gQWxsb3dpbmcgYSByYW5nZSBmb3IgU1BJIGlzIHdoYXQg eW91IGhhdmUgYWxzbyBkZXNjcmliZWQuDQo+IFdoYXQNCj4gPiA+IHlvdSBkZXNjcmliZWQgaXMg b25lIHdheSB0byBkZWZpbmUgYSByYW5nZS4gVGhhdCB3aWxsIGNvbWUgYXMNCj4gPiA+ID4+IHBh cnQgb2YgdGhlIGltcGxlbWVudGF0aW9uLCBpZSwgYSBjaGFuZ2UgaW4gdGhlIGV4YW1wbGUgYXBw bGljYXRpb24uDQo+IFRoaXMNCj4gPiA+IHBhdGNoIGludGVuZHMgdG8gYWxsb3cgdXNpbmcgYSBy YW5nZSBmb3IgU1BJIHRoYW4gYSBmaXhlZA0KPiA+ID4gPj4gdmFsdWUuIEkgYmVsaWV2ZSB5b3Ug YXJlIGFsc28gaW4gYWdyZWVtZW50IHRoZXJlLg0KPiA+ID4gPiBJIGFsc28gZG9uJ3QgaGF2ZSBv YmplY3Rpb25zIGZvciB0aGF0IHBhdGNoLg0KPiA+ID4gPiBUaGUgb25seSBvYnNlcmF2aW9uIGZy b20gcmVhZGluZyB5b3VyIHJlcGxpZXMgdG8gdGhhdCBhdCBpcHNlYy1zZWNndw0KPiA+ID4gcGF0 Y2hlczoNCj4gPiA+ID4gRXh0cmEgQVBJIHRvIHJldHJpZXZlIHNpemUgb2YgdGhhdCBIVyB0YWJs ZSBzZWVtcyB0byBiZSBuZWVkZWQuDQo+ID4gPiA+IFRob3VnaCBJIHN1cHBvc2UgaXQgY291bGQg YmUgYSBzdWJqZWN0IG9mIHNlcGFyYXRlIHBhdGNoL2Rpc2N1c3Npb24uDQo+ID4gPiA+DQo+ID4g PiA+IEFja2VkLWJ5OiBLb25zdGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRl bC5jb20+DQo+ID4gPg0KPiA+ID4gSSBhbHNvIGRvbid0IGhhdmUgb2JqZWN0aW9ucy4NCj4gPiA+ DQo+ID4gPiBBY2tlZC1ieTogVmxhZGltaXIgTWVkdmVka2luIDx2bGFkaW1pci5tZWR2ZWRraW5A aW50ZWwuY29tPg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4+Pj4+IC0gT3RoZXIgU1BJIHZhbHVl cyB3b3VsZCBiZSBwcm9jZXNzZWQgbm9uIGlubGluZS4NCj4gPiA+ID4+Pj4+DQo+ID4gPiA+Pj4+ PiBJbiB0aGlzIGNhc2Ugd2Ugd291bGQgYmUgYWJsZSB0byBoYXZlIFNBIGFkZHJlc3NlZCBieSBs b25nZXINCj4gdHVwbGUNCj4gPiA+IChpLmUuDQo+ID4gPiA+Pj4+PiBTUEkrRElQK1NJUCkgb3V0 c2lkZSBvZiBiZWZvcmUgbWVudGlvbmVkIHJhbmdlLCBhcyB3ZWxsIGFzIFNBDQo+IHdpdGgNCj4g PiA+ID4+Pj4+IHVuc3VwcG9ydGVkIGNhcGFiaWxpdGllcyBieSBpbmxpbmUgcHJvdG9jb2wgZGV2 aWNlLg0KPiA+ID4gPj4+Pj4NCj4gPiA+ID4+Pj4+Pj4+Pj4+PiBUaGUgdXNhZ2Ugb2Ygb25lICdy dGVfZmxvdycgZm9yIG11bHRpcGxlIFNBcyBpcyBub3QNCj4gPiA+IG1hbmRhdG9yeS4NCj4gPiA+ ID4+Pj4+Pj4+Pj4+PiBJdCBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXBwbGljYXRpb24gcmVxdWly ZXMgbGFyZ2UNCj4gbnVtYmVyDQo+ID4gb2YNCj4gPiA+ID4+PiBTQXMuDQo+ID4gPiA+Pj4+Pj4+ Pj4+Pj4gVGhlIHByb3Bvc2VkDQo+ID4gPiA+Pj4+Pj4+Pj4+PiBjaGFuZ2UgaXMgdG8gYWxsb3cg bW9yZSBlZmZpY2llbnQgdXNhZ2Ugb2YgaC93IHJlc291cmNlcw0KPiA+ID4gd2hlcmUNCj4gPiA+ ID4+Pj4+Pj4+Pj4+IGl0J3MgcGVybWl0dGVkIGJ5IHRoZSBQTUQuDQo+ID4gPiA+Pj4+Pj4+Pj4+ Pj4+PiBBcHBsaWNhdGlvbiBzaG91bGQgZG8gYW4gcnRlX2Zsb3dfdmFsaWRhdGUoKSB0byBtYWtl DQo+ID4gc3VyZQ0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gdGhlIGZsb3cgaXMgc3VwcG9ydGVkIG9u IHRoZSBQTUQuDQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+Pg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gU2ln bmVkLW9mZi1ieTogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+DQo+ID4gPiA+Pj4+ Pj4+Pj4+Pj4+PiAtLS0NCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgIGxpYi9saWJydGVfZXRo ZGV2L3J0ZV9mbG93LmggfCA2ICsrKysrKw0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgMSBm aWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5o DQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggaW5k ZXgNCj4gNDUyZDM1OS4uMjFmYTdlZA0KPiA+ID4gPj4+IDEwMDY0NA0KPiA+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gLS0tIGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gKysrIGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4gPj4+Pj4+Pj4+ Pj4+Pj4gQEAgLTIyMzksNiArMjIzOSwxMiBAQCBzdHJ1Y3QNCj4gcnRlX2Zsb3dfYWN0aW9uX21l dGVyDQo+ID4gew0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICogZGlyZWN0aW9uLg0KPiA+ ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICoNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAq IE11bHRpcGxlIGZsb3dzIGNhbiBiZSBjb25maWd1cmVkIHRvIHVzZSB0aGUgc2FtZQ0KPiA+ID4g Pj4+Pj4+Pj4+Pj4+Pj4gc2VjdXJpdHkNCj4gPiA+ID4+Pj4+IHNlc3Npb24uDQo+ID4gPiA+Pj4+ Pj4+Pj4+Pj4+PiArICoNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICsgKiBUaGUgTlVMTCB2YWx1ZSBp cyBhbGxvd2VkIGZvciBzZWN1cml0eSBzZXNzaW9uLiBJZg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4g KyBzZWN1cml0eSBzZXNzaW9uIGlzIE5VTEwsDQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiArICogdGhl biBTUEkgZmllbGQgaW4gRVNQIGZsb3cgaXRlbSBhbmQgSVAgYWRkcmVzc2VzIGluDQo+ID4gZmxv dw0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gKyBpdGVtcyAnSVB2NCcgYW5kDQo+ID4gPiA+Pj4+Pj4+ Pj4+Pj4+PiArICogJ0lQdjYnIHdpbGwgYmUgYWxsb3dlZCB0byBiZSBhIHJhbmdlLiBUaGUgcnVs ZSB0aHVzDQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiArIGNyZWF0ZWQgY2FuIGVuYWJsZQ0KPiA+ID4g Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIFNFQ1VSSVRZIHByb2Nlc3Npbmcgb24gbXVsdGlwbGUgZmxvd3Mu DQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiArICoNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICAq Lw0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gICAgICAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9zZWN1 cml0eSB7DQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICB2b2lkICpzZWN1cml0eV9zZXNzaW9u OyAvKio8IFBvaW50ZXIgdG8gc2VjdXJpdHkNCj4gPiA+ID4+Pj4+Pj4+Pj4+Pj4+IHNlc3Npb24N Cj4gPiA+ID4+Pj4+Pj4gc3RydWN0dXJlLg0KPiA+ID4gPj4+Pj4+Pj4+Pj4+Pj4gKi8NCj4gPiA+ ID4+Pj4+Pj4+Pj4+Pj4+IC0tDQo+ID4gPiA+Pj4+Pj4+Pj4+Pj4+PiAyLjcuNA0KPiA+ID4gPj4+ Pj4+Pj4+IC0tDQo+ID4gPiA+Pj4+Pj4+Pj4gUmVnYXJkcywNCj4gPiA+ID4+Pj4+Pj4+PiBWbGFk aW1pcg0KPiA+ID4gPj4+Pj4+PiAtLQ0KPiA+ID4gPj4+Pj4+PiBSZWdhcmRzLA0KPiA+ID4gPj4+ Pj4+PiBWbGFkaW1pcg0KPiA+ID4gPj4+Pj4gLS0NCj4gPiA+ID4+Pj4+IFJlZ2FyZHMsDQo+ID4g PiA+Pj4+PiBWbGFkaW1pcg0KPiA+ID4gPj4+IC0tDQo+ID4gPiA+Pj4gUmVnYXJkcywNCj4gPiA+ ID4+PiBWbGFkaW1pcg0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4gVmxh ZGltaXINCg0K