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 6C025A04B5; Tue, 3 Dec 2019 06:32:42 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8B57E2B8D; Tue, 3 Dec 2019 06:32:41 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 065461F5 for ; Tue, 3 Dec 2019 06:32:39 +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 xB35UM9H003772; Mon, 2 Dec 2019 21:32:37 -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=atJjI9hb2chvIbk3RrBb0S6PTHBhUH6bcFlnqLxfLx8=; b=TrHk8Nn92lc4NBTtPBE0BevaHIZhjizkhhGgoWBbNMR2xpCtYPqrgDrwXPS7PaBFWIK9 IxIege8vzGqqGffh3qVSPPQUXpsjO2phJQgqq5DnaCEUQ/Sj/C/Z1FeaGp7aNENG8igC cT797vWNIARJx73xA01ZAOtkcuQopLdYzIwoSPJd9RUL3NKUyE1h72cLbSu9oNQMw7qa FQCIopPvh6eWG+qV4XclUT1UVETYlhDgdrCbv5BIUk5zEmm8NW1id485PYj3aPSWihBe fzPA6PvbRP9ctHtnIV5JMFJ4ZFD9qEEfowXYAk1n+hyGQvc1hDBTkrkV6OVQWRAZ4mDl lw== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2wkpnwa46p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 02 Dec 2019 21:32:37 -0800 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 2 Dec 2019 21:32:36 -0800 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.54) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Mon, 2 Dec 2019 21:32:36 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SHH3HFbC/XOMVBRwRKptxll/8UM6Roe7Qfm38Jqv/6romQMT8Enib3I6KT2J/whOPwojlovf/jA15BtaKsXSC0kX3kvubzkpCPSkeXSq8VrzAX5HB3Yj0aK44n0DVLtaA/S+1banQ1MkOXgKZnnNWhII4likn4vJDUv/vSnQG2ypFAUo/TY9RDrQhUqP1iD+yXO3vd91S68fCjPsc2/2b3F76DMphJFtDiH6vR7UhR4P/FPpvfznc0wKv7XvIAZ3uWRClg/WcKGos1R6qiaKZbo9bWqlbVctExwWvC8SRWmpVvIOw+2OCzDCLTReyObV9SLtgGskVOGlgRxGnDj+hw== 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=atJjI9hb2chvIbk3RrBb0S6PTHBhUH6bcFlnqLxfLx8=; b=nG5zHkkUnbyEznlXsADeK4/p2uEfhtuTwrST0VLGshzX2UNSH9GbvKHoHupUh70uoImTNjhRPV9KTr24dlvOgsuOdGjtTgxWegZrbAT/UgiCXxBI4Wl7Q3bARUUUe6xbMoBtBB0J8tjpeUEwDSKoRXFaKEtxf9ymuVVquh928gr0yWhWdLXi68hibYV7Zi+n8Z5Sreo+WybW+w4+Jvtc8RKwDodk6WsQHQL8sbKNYjRMoFiRFE+6gnG5C2RCLbWgcddUeW1y7HATD8Hp2+/bekshORiAiGWNj80WmFc+i63mMtXCvYXffAt8eZ6NfRWCph4erDStyk+c+9ju1g335Q== 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=atJjI9hb2chvIbk3RrBb0S6PTHBhUH6bcFlnqLxfLx8=; b=kKVJo7WfIU+wj7Wv2HyD5VRYtWsRfRiKQQpmN2Go3i0inrOCgXZT5g04sLcDN3NZhCZ/km7tLVhUf/pyKiTKkGmAsZO5KJAGc9TLEhrRvBA+i2qZyQo8SY7CwBaFyDRVYyPbTQhOVAIxhHzFdYMes8DI36cejMguKMjzc+Nw6cc= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (20.179.20.218) by MN2PR18MB3342.namprd18.prod.outlook.com (10.255.86.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2495.20; Tue, 3 Dec 2019 05:32:34 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::10fb:1671:dbff:6710]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::10fb:1671:dbff:6710%4]) with mapi id 15.20.2495.014; Tue, 3 Dec 2019 05:32:34 +0000 From: Anoob Joseph To: Anoob Joseph , "Yigit, Ferruh" , Akhil Goyal , "Adrien Mazarguil" , Declan Doherty , Pablo de Lara , Thomas Monjalon CC: Jerin Jacob Kollanukkaran , "Narayana Prasad Raju Athreya" , Ankur Dwivedi , "Shahaf Shuler" , Hemant Agrawal , "Matan Azrad" , Yongseok Koh , Wenzhuo Lu , Konstantin Ananyev , Radu Nicolau , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [EXT] Re: [RFC] ethdev: allow multiple security sessions to use one rte flow Thread-Index: AQHVqZsQ2RtYwh5G6E2vHZOmEk2WXg== Date: Tue, 3 Dec 2019 05:32:34 +0000 Message-ID: References: <1563977848-30101-1-git-send-email-anoobj@marvell.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.192.33] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a6f1bc86-4f4b-43a0-4dbe-08d777b23377 x-ms-traffictypediagnostic: MN2PR18MB3342: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 02408926C4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(39860400002)(376002)(136003)(396003)(366004)(199004)(189003)(13464003)(6246003)(110136005)(55016002)(446003)(478600001)(6506007)(3846002)(6116002)(30864003)(2906002)(76176011)(15650500001)(229853002)(5660300002)(52536014)(99286004)(54906003)(316002)(7696005)(14454004)(33656002)(66066001)(6436002)(7416002)(561944003)(71200400001)(76116006)(86362001)(71190400001)(25786009)(8676002)(66946007)(8936002)(7736002)(66446008)(305945005)(64756008)(66556008)(66476007)(9686003)(256004)(14444005)(4326008)(81166006)(186003)(81156014)(53546011)(55236004)(11346002)(102836004)(26005)(74316002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3342; 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: Uz8TqzEOOa65RxqTF4Qj12TYvTvTfKgh8Dnd1/54vPN7OZ7xAv5SjT0y/oErh356Jhk3jOew1m3rDxaeuKa0Sbd5nGogm90wH1ImM5LFTKw4tHWpdJsZEnRxCqpz3wHWRA6pGI2/Naw4jDZxtZcnlta7ywXwXsIdquklMlKrTdpuk+1iIuuNgUBHJklNRrESb5YEXSuy3xTq9+vBiAdNPK2/a7fbC79yzKGmGZO4hi+S5M7sQ373nidirvkWE8cVvCmevhiqnTM6rUE7lYxpVmbo8UiSXAAY2R0bRIphJBD1qUOK3UYS2Bpi/BewGHBeqGZf/5dy6hE93B2W/+W194B2xYbjmc3iIgP/q/Q09NdMgiVyx1twvnuJWgM0ibURaMqHT7HZSPhYEFEZ9XjHb2zm/+x7PIU2nRqN45wfDSkEe4FX9UTmcLe+Ey2lsMQR Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: a6f1bc86-4f4b-43a0-4dbe-08d777b23377 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2019 05:32:34.5406 (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: 1m9bIxaXP3EdKvVers2psmKfUo1pvVu/WHV+9gZX6aTYTVTEHNmc5cqPKMYnSgTq7d1x+5cHjDBdcgz/7D9uOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3342 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-12-02_06:2019-11-29,2019-12-02 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [RFC] 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" SGkgQWtoaWwsDQoNCkNhbiB5b3Ugc2VlIG15IHJlc3BvbnNlcyBiZWxvdyBhbmQgc2VlIGlmIEkg Y2FuIHB1cnN1ZSB0aGlzIFJGQz8NCg0KVGhhbmtzLA0KQW5vb2INCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhh bGYgT2YgQW5vb2IgSm9zZXBoDQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciA5LCAyMDE5IDQ6 MjUgUE0NCj4gVG86IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55aWdpdEBsaW51eC5pbnRlbC5jb20+ OyBBa2hpbCBHb3lhbA0KPiA8YWtoaWwuZ295YWxAbnhwLmNvbT47IEFkcmllbiBNYXphcmd1aWwg PGFkcmllbi5tYXphcmd1aWxANndpbmQuY29tPjsNCj4gRGVjbGFuIERvaGVydHkgPGRlY2xhbi5k b2hlcnR5QGludGVsLmNvbT47IFBhYmxvIGRlIExhcmENCj4gPHBhYmxvLmRlLmxhcmEuZ3VhcmNo QGludGVsLmNvbT47IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gQ2M6 IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47IE5hcmF5YW5h IFByYXNhZCBSYWp1DQo+IEF0aHJleWEgPHBhdGhyZXlhQG1hcnZlbGwuY29tPjsgQW5rdXIgRHdp dmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+Ow0KPiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1l bGxhbm94LmNvbT47IEhlbWFudCBBZ3Jhd2FsDQo+IDxoZW1hbnQuYWdyYXdhbEBueHAuY29tPjsg TWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47IFlvbmdzZW9rDQo+IEtvaCA8eXNrb2hA bWVsbGFub3guY29tPjsgV2Vuemh1byBMdSA8d2Vuemh1by5sdUBpbnRlbC5jb20+Ow0KPiBLb25z dGFudGluIEFuYW55ZXYgPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBSYWR1IE5pY29s YXUNCj4gPHJhZHUubmljb2xhdUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDog UmU6IFtkcGRrLWRldl0gW0VYVF0gUmU6IFtSRkNdIGV0aGRldjogYWxsb3cgbXVsdGlwbGUgc2Vj dXJpdHkgc2Vzc2lvbnMNCj4gdG8gdXNlIG9uZSBydGUgZmxvdw0KPiANCj4gSGkgRmVycnVoLA0K PiANCj4gSSB3b3VsZCBsaWtlIHRvIHB1cnN1ZSB0aGlzIFJGQy4NCj4gDQo+IEBBa2hpbCwgUGxl YXNlIHNlZSBpbmxpbmUuDQo+IA0KPiBUaGFua3MsDQo+IEFub29iDQo+IA0KPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogWWlnaXQsIEZlcnJ1aCA8ZmVycnVoLnlpZ2l0 QGxpbnV4LmludGVsLmNvbT4NCj4gPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDgsIDIwMTkgNjoz MCBQTQ0KPiA+IFRvOiBBa2hpbCBHb3lhbCA8YWtoaWwuZ295YWxAbnhwLmNvbT47IEFub29iIEpv c2VwaA0KPiA+IDxhbm9vYmpAbWFydmVsbC5jb20+OyBBZHJpZW4gTWF6YXJndWlsIDxhZHJpZW4u bWF6YXJndWlsQDZ3aW5kLmNvbT47DQo+ID4gRGVjbGFuIERvaGVydHkgPGRlY2xhbi5kb2hlcnR5 QGludGVsLmNvbT47IFBhYmxvIGRlIExhcmENCj4gPiA8cGFibG8uZGUubGFyYS5ndWFyY2hAaW50 ZWwuY29tPjsgVGhvbWFzIE1vbmphbG9uDQo+ID4gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+ID4g Q2M6IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBtYXJ2ZWxsLmNvbT47IE5hcmF5 YW5hIFByYXNhZA0KPiA+IFJhanUgQXRocmV5YSA8cGF0aHJleWFAbWFydmVsbC5jb20+OyBBbmt1 ciBEd2l2ZWRpDQo+ID4gPGFkd2l2ZWRpQG1hcnZlbGwuY29tPjsgU2hhaGFmIFNodWxlciA8c2hh aGFmc0BtZWxsYW5veC5jb20+OyBIZW1hbnQNCj4gPiBBZ3Jhd2FsIDxoZW1hbnQuYWdyYXdhbEBu eHAuY29tPjsgTWF0YW4gQXpyYWQNCj4gPG1hdGFuQG1lbGxhbm94LmNvbT47DQo+ID4gWW9uZ3Nl b2sgS29oIDx5c2tvaEBtZWxsYW5veC5jb20+OyBXZW56aHVvIEx1DQo+IDx3ZW56aHVvLmx1QGlu dGVsLmNvbT47DQo+ID4gS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaW50 ZWwuY29tPjsgUmFkdSBOaWNvbGF1DQo+ID4gPHJhZHUubmljb2xhdUBpbnRlbC5jb20+OyBkZXZA ZHBkay5vcmcNCj4gPiBTdWJqZWN0OiBbRVhUXSBSZTogW2RwZGstZGV2XSBbUkZDXSBldGhkZXY6 IGFsbG93IG11bHRpcGxlIHNlY3VyaXR5DQo+ID4gc2Vzc2lvbnMgdG8gdXNlIG9uZSBydGUgZmxv dw0KPiA+DQo+ID4gRXh0ZXJuYWwgRW1haWwNCj4gPg0KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBP biA4LzE5LzIwMTkgODowOSBBTSwgQWtoaWwgR295YWwgd3JvdGU6DQo+ID4gPiBIaSBBbm9vYiwN Cj4gPiA+Pg0KPiA+ID4+IEhpIEFraGlsLA0KPiA+ID4+DQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+ Pj4+PiBUaGUgcnRlX3NlY3VyaXR5IEFQSSB3aGljaCBlbmFibGVzIGlubGluZSBwcm90b2NvbC9j cnlwdG8NCj4gPiA+Pj4+Pj4+PiBmZWF0dXJlIG1hbmRhdGVzIHRoYXQgZm9yIGV2ZXJ5IHNlY3Vy aXR5IHNlc3Npb24gYW4gcnRlX2Zsb3cNCj4gPiA+Pj4+Pj4+PiBpcw0KPiA+ID4+PiBjcmVhdGVk Lg0KPiA+ID4+Pj4+Pj4+IFRoaXMgd291bGQgaW50ZXJuYWxseSB0cmFuc2xhdGUgdG8gYSBydWxl IGluIHRoZSBoYXJkd2FyZQ0KPiA+ID4+Pj4+Pj4+IHdoaWNoIHdvdWxkIGRvIHBhY2tldA0KPiA+ ID4+Pj4+Pj4gY2xhc3NpZmljYXRpb24uDQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBJbiBy dGVfc2VjdXJ0eSwgb25lIFNBIHdvdWxkIGJlIG9uZSBzZWN1cml0eSBzZXNzaW9uLiBBbmQgaWYN Cj4gPiA+Pj4+Pj4+PiBhbiBydGVfZmxvdyBuZWVkIHRvIGJlIGNyZWF0ZWQgZm9yIGV2ZXJ5IHNl c3Npb24sIHRoZSBudW1iZXINCj4gPiA+Pj4+Pj4+PiBvZiBTQXMgc3VwcG9ydGVkIGJ5IGFuIGlu bGluZSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBiZSBsaW1pdGVkDQo+ID4gPj4+Pj4+Pj4gYnkgdGhl IG51bWJlciBvZiBydGVfZmxvd3MgdGhlIFBNRCB3b3VsZCBiZSBhYmxlIHRvIHN1cHBvcnQuDQo+ ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBJZiB0aGUgZmllbGRzIFNQSSAmIElQIGFkZHJlc3Nl cyBhcmUgYWxsb3dlZCB0byBiZSBhIHJhbmdlLA0KPiA+ID4+Pj4+Pj4+IHRoZW4gdGhpcyBsaW1p dGF0aW9uIGNhbiBiZSBvdmVyY29tZS4gTXVsdGlwbGUgZmxvd3Mgd2lsbCBiZQ0KPiA+ID4+Pj4+ Pj4+IGFibGUgdG8gdXNlIG9uZSBydWxlIGZvciBTRUNVUklUWSBwcm9jZXNzaW5nLiBJbiB0aGlz IGNhc2UsDQo+ID4gPj4+Pj4+Pj4gdGhlIHNlY3VyaXR5IHNlc3Npb24gcHJvdmlkZWQgYXMNCj4g PiA+Pj4+Pj4+IGNvbmYgd291bGQgYmUgTlVMTC4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFNQSSB2 YWx1ZXMgYXJlIG5vcm1hbGx5IHVzZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhlIFNBIHRoYXQN Cj4gPiA+Pj4+PiBuZWVkIHRvIGJlIGFwcGxpZWQgb24gYSBwYXJ0aWN1bGFyIGZsb3cuDQo+ID4g Pj4+Pj4gSSBiZWxpZXZlIFNQSSB2YWx1ZSBzaG91bGQgbm90IGJlIGEgcmFuZ2UgZm9yIGFwcGx5 aW5nIGENCj4gPiA+Pj4+PiBwYXJ0aWN1bGFyIFNBIG9yIHNlc3Npb24uDQo+ID4gPj4+Pj4NCj4g PiA+Pj4+PiBQbGFpbiBwYWNrZXQgSVAgYWRkcmVzc2VzIGNhbiBiZSBhIHJhbmdlLiBUaGF0IGlz IG5vdCBhbiBpc3N1ZS4NCj4gPiA+Pj4+PiBNdWx0aXBsZSBwbGFpbiBwYWNrZXQgZmxvd3MgY2Fu IHVzZSB0aGUgc2FtZSBzZXNzaW9uL1NBLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gV2h5IGRvIHlv dSBmZWVsIHRoYXQgc2VjdXJpdHkgc2Vzc2lvbiBwcm92aWRlZCBzaG91bGQgYmUgTlVMTCB0bw0K PiA+ID4+Pj4+IHN1cHBvcnQgbXVsdGlwbGUgZmxvd3MuDQo+ID4gPj4+Pj4gSG93IHdpbGwgdGhl IGtleXMgYW5kIG90aGVyIFNBIHJlbGF0ZWQgaW5mbyB3aWxsIGJlIHBhc3NlZCB0bw0KPiA+ID4+ Pj4+IHRoZQ0KPiA+ID4+PiBkcml2ZXIvSFcuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gW0Fub29iXSBU aGUgU0EgY29uZmlndXJhdGlvbiB3b3VsZCBiZSBkb25lIHZpYSBydGVfc2VjdXJpdHkgc2Vzc2lv bi4NCj4gPiA+Pj4+IFRoZSBwcm9wb3NhbCBoZXJlIG9ubHkgY2hhbmdlcyB0aGUgMToxIGRlcGVu ZGVuY3kgb2YgcnRlX2Zsb3cgYW5kDQo+ID4gPj4+PiBydGVfc2VjdXJpdHkgc2Vzc2lvbi4NCj4g PiA+Pj4NCj4gPiA+Pj4gSSBkb24ndCBzZWUgdGhpcyBkZXBlbmRlbmN5IGZvciBydGVfZmxvdyBh bmQgc2VjdXJpdHkgc2Vzc2lvbi4NCj4gPiA+Pj4gTXVsdGlwbGUgZmxvd3MgY2FuIGJlIGNvbmZp Z3VyZWQgdG8gdXNlIHRoZSBzYW1lIHNlY3VyaXR5IHNlc3Npb24uDQo+ID4gPj4+DQo+ID4gPj4+ Pg0KPiA+ID4+Pj4gVGhlIGgvdyBjb3VsZCB1c2UgU1BJIGZpZWxkIGluIHRoZSByZWNlaXZlZCBw YWNrZXQgdG8gaWRlbnRpZnkNCj4gPiA+Pj4+IFNBKGllLCBydGVfc2VjdXJpdHkgc2Vzc2lvbiku IElmIHRoZSBoL3cgYWxsb3dzIHRvIGluZGV4IGludG8gYQ0KPiA+ID4+Pj4gdGFibGUgd2hpY2gg aG9sZHMgU0EgaW5mb3JtYXRpb24sIHRoZW4gcGVyIFNQSSBydGVfZmxvdyBpcyBub3QNCj4gPiA+ Pj4+IHJlcXVpcmVkLiBUaGlzIGlzIGluIGZhY3Qgb3VyIGNhc2UuIEFuZCBmb3IgUE1EcyB3aGlj aCBkb2Vzbid0IGRvDQo+ID4gPj4+PiBpdCB0aGlzIHdheSwNCj4gPiA+Pj4+IHJ0ZV9mbG93X3Zh bGlkYXRlKCkgd291bGQgZmFpbCBhbmQgdGhlbiBwZXIgU1BJIHJ0ZV9mbG93IHdvdWxkDQo+ID4g Pj4+PiByZXF1aXJlIHRvDQo+ID4gPj4+IGJlIGNyZWF0ZWQuDQo+ID4gPj4+DQo+ID4gPj4+IEkg YW0gbm90IGFibGUgdG8gdW5kZXJzdGFuZCB0aGUgaXNzdWUgaGVyZS4gRmxvdyBhcmUgdmFsaWRh dGVkDQo+ID4gPj4+IGJhc2VkIG9uIHNvbWUgcGF0dGVybiwgWW91IGNhbiBpZGVudGlmeSB0aGUg ZmxvdyBiYXNlZCBvbiBzb21lDQo+ID4gPj4+IHBhcmFtZXRlcihjdXJyZW50bHkgaXQgaXMgc3Bp IGluIGNhc2Ugb2YgaW5saW5lIGNyeXB0byBhbmQgYWxzbyB5b3VyIGNhc2UpLg0KPiA+ID4+PiBZ b3UgY2FuIHBlcmZvcm0gc29tZSBhY3Rpb24gYmFzZWQgb24gdGhlIHNlY3VyaXR5IHNlc3Npb24g dGhhdCB5b3UNCj4gPiA+Pj4gaGF2ZSBjcmVhdGVkIGJlZm9yZSB2YWxpZGF0aW5nIHRoZSBmbG93 IEFuZCB0aGF0IHNlc3Npb24gY3JlYXRpb24NCj4gPiA+Pj4gaXMgbm93aGVyZSBsaW5rZWQgdG8g dGhlIHR5cGUgb2YgZmxvdy4gWW91IGNhbiB1c2UgdGhlIHNhbWUNCj4gPiA+Pj4gc2Vzc2lvbiBm b3IgYXMgbWFueSBmbG93cyB5b3Ugd2FudC4NCj4gPiA+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBJ biB0aGUgcHJlc2VudCBtb2RlbCwgYSBzZWN1cml0eSBzZXNzaW9uIGlzIGNyZWF0ZWQsIGFuZCB0 aGVuDQo+ID4gPj4+PiBydGVfZmxvdyB3aWxsIGNvbm5lY3QgRVNQIHBhY2tldHMgd2l0aCBvbmUg U1BJIHRvIG9uZSBzZWN1cml0eSBzZXNzaW9uLg0KPiA+ID4+Pj4gSW5zdGVhZCwgd2hlbiB3ZSBj cmVhdGUgdGhlIHNlY3VyaXR5IHNlc3Npb24sIGgvdyBjYW4gcG9wdWxhdGUNCj4gPiA+Pj4+IGVu dHJpZXMgaW4gYSBEQiB0aGF0IHdvdWxkIGJlIGFjY2Vzc2VkIGR1cmluZyBkYXRhIHBhdGggaGFu ZGxpbmcuDQo+ID4gPj4+PiBBbmQgdGhlIHJ0ZV9mbG93IGNvdWxkIHNheSwgYWxsIFNQSSBpbiBz b21lIHJhbmdlIGdldHMgaW5saW5lDQo+ID4gPj4+PiBwcm9jZXNzZWQgd2l0aCB0aGUNCj4gPiA+ Pj4gc2VjdXJpdHkgc2Vzc2lvbiBpZGVudGlmaWVkIHdpdGggaXRzIFNQSS4NCj4gPiA+Pj4+DQo+ ID4gPj4+PiBPdXIgUE1EIHN1cHBvcnRzIGxpbWl0ZWQgbnVtYmVyIG9mIGZsb3cgZW50cmllcyBi dXQgb3VyIGgvdyBjYW4NCj4gPiA+Pj4+IGRvIFNBIGxvb2t1cCB3aXRob3V0IGZsb3cgZW50cmll cyh1c2luZyBTUEkgaW5zdGVhZCkuIFNvIHRoZQ0KPiA+ID4+Pj4gY3VycmVudCBhcHByb2FjaCBv ZiBvbmUgZmxvdyBwZXIgc2Vzc2lvbiBpcyBjcmVhdGluZyBhbg0KPiA+ID4+Pj4gYXJ0aWZpY2lh bCBsaW1pdCB0byB0aGUgbnVtYmVyDQo+ID4gPj4+IG9mIFNBcyB0aGF0IGNhbiBiZSBzdXBwb3J0 ZWQuDQo+ID4gPj4+DQo+ID4gPj4+IE9rIG5vdyBJIGdvdCBpdC4gWW91IHdhbnQgdG8gY29uZmln dXJlIGEgc2luZ2xlIGZsb3cgd2l0aCBtdWx0aXBsZQ0KPiA+ID4+PiBzZXNzaW9ucyBpbiBpdC4N Cj4gPiA+Pj4gQnV0IGRlZmluaW5nIGEgcmFuZ2UgaW4gU1BJIGFuZCB0dW5uZWwgSVAgYWRkcmVz c2VzIGRvZXMgbm90IG1ha2UNCj4gPiA+Pj4gc2Vuc2UuIEluIHJlYWwgd29ybGQgYXBwbGljYXRp b25zLCBTZXNzaW9ucyBjYW4gYmUgY3JlYXRlZCBhbmQNCj4gPiA+Pj4gZGVzdHJveWVkIGF0IGFu eSB0aW1lIHdpdGggdmFyaWVkIHZhbHVlcyBvZiBTUEkgYW5kIHR1bm5lbCBJUHMuDQo+ID4gPj4+ IEhvdyBjYW4gT25lDQo+ID4gcHV0IGEgcmFuZ2UgdG8gdGhhdC4NCj4gPiA+Pj4NCj4gPiA+Pj4g SSB3b3VsZCByYXRoZXIgc2F5LCB5b3UgYWN0dWFsbHkgZG8gbm90IG5lZWQgdGhlIHJ0ZV9mbG93 cyB0byBiZQ0KPiA+ID4+PiBjb25maWd1cmVkIGZvciBJbmxpbmUgcHJvdG9jb2wgcHJvY2Vzc2lu Zy4gWW91IGhhdmUgY29uZmlndXJlZCBhbGwNCj4gPiA+Pj4gdGhlIHNlc3Npb24gaW5mbyBpbiB0 aGUgaHcgd2hpbGUgQ3JlYXRpbmcgdGhlIHNlc3Npb24gYW5kIHlvdXIgSC9XDQo+ID4gPj4+IHdp bGwgYmUgYWJsZSB0byBpZGVudGlmeSBvbiB0aGUgYmFzaXMgb2YgU1BJIHZhbHVlIHdoaWNoIEl0 IGhhcw0KPiA+ID4+PiBzdG9yZWQgaW4gdGhlIERCDQo+ID4gYW5kIGRvIGFsbCB0aGUgcHJvY2Vz c2luZy4NCj4gPiA+Pg0KPiA+ID4+IFtBbm9vYl0gWWVzLiBUaGF0IGlzIHRoZSBtb2RlbCBiZWlu ZyBmb2xsb3dlZCByaWdodCBub3cuIENvbmNlcm4NCj4gPiA+PiBpcywgd2hldGhlciB0aGlzIHdv dWxkIGJlIGRldmlhdGluZyBmcm9tIHRoZSBzcGVjLiBJbiBvdGhlciB3b3JkcywNCj4gPiA+PiB3 ZSBjb3VsZCBoYXZlIGRldmljZXMgd2hpY2ggd291bGQgbmVlZCBydGVfZmxvdyBmb3IgZXZlcnkN Cj4gPiA+PiBydGVfc2VjdXJpdHkgc2Vzc2lvbiAoaXhnYmUgbmVlZHMgZm9yIGlubGluZSBjcnlw dG8pLCBhbmQgdGhlbiB3ZQ0KPiA+ID4+IGNvdWxkIGhhdmUgZGV2aWNlcyB3aGljaCBkb2Vzbid0 IG5lZWQgcGVyIHNlc3Npb24gcnRlX2Zsb3cgKHdoaWNoIGlzIG91cg0KPiBjYXNlKS4NCj4gPiA+ PiBXaGF0IGRvIHlvdSB0aGluayBpcyB0aGUgcmlnaHQgYXBwcm9hY2ggZm9yIHN1cHBvcnRpbmcg Ym90aCBraW5kcyBvZg0KPiBkZXZpY2VzPw0KPiA+ID4NCj4gPiA+IElubGluZSBwcm90byBjYXNl IGlzIG5vdCB1c2luZyBydGVfZmxvdyBhdCB0aGUgbW9tZW50Lg0KPiA+ID4gQW5kIGFzIGZhciBh cyBJIHVuZGVyc3RhbmQsIHlvdSBhbHNvIGRvIG5vdCBuZWVkIHJ0ZV9mbG93IHRvIGJlIGNvbmZp Z3VyZWQuDQo+ID4gPiBJbmxpbmUgY3J5cHRvIGNhc2VzIGFyZSBtYWlubHkgZm9yIEludGVsIGFu ZCBNZWxsYW5veCBjYXNlcyB3aGljaA0KPiA+ID4gb25seSBzdXBwb3J0ZWQgSW5saW5lIGNyeXB0 by4gRm9yIFByb3RvY29sIG9mZmxvYWQgY2FzZXMsIEkgZG9uJ3QNCj4gPiA+IGZlZWwgd2UgbmVl ZCBydGVfZmxvdyBhcyBhbGwgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBpcHNlYyBpcyBhbHJlYWR5 DQo+ID4gPiB0aGVyZSB3aGVuIHdlIGNhbGwgdGhlIHNlc3Npb24gY3JlYXRlLiBSdGVfZmxvd3Mg YXJlIHVzZWQgRm9yDQo+ID4gPiBzZWdyZWdhdGlvbiBvZiBldGhlcm5ldCB0cmFmZmljIGZvciBj bGFzc2lmaWNhdGlvbiB3aGljaCBjYW4gYmUNCj4gPiA+IGNvbmZpZ3VyZWQgZm9yIHZhcmlvdXMg ZmFjdG9ycw0KPiA+IGFzIHdlbGwuDQo+ID4gPg0KPiA+ID4+DQo+ID4gPj4+DQo+ID4gPj4+IFdo YXQgYXJlIHRoZSBjaGFuZ2VzIHRoYXQgeW91IG5lZWQgaW4gdGhlIGlwc2VjLXNlY2d3IGZvciBp bmxpbmUNCj4gPiA+Pj4gcHJvdG8gdG8gd29yaywgdGhlcmUgaXMgTm8gZmxvdyBwcm9jZXNzaW5n IGN1cnJlbnRseSBpbiB0aGUgaW5saW5lDQo+ID4gPj4+IHByb3RvIGNhc2UuIFdpbGwgaXQgbm90 IHdvcmsgYXMgaXMgZm9yIHlvdT8NCj4gPiA+Pg0KPiA+ID4+IFtBbm9vYl0gSW4gaXBzZWMtc2Vj Z3csIGEgZGVmYXVsdCBmbG93IHdvdWxkIGJlIGNyZWF0ZWQgcGVyDQo+ID4gPj4gc2VjdXJpdHkg ZW5hYmxlZCBwb3J0IHdpdGggJ2NvbmY9TlVMTCcgJiBTUEkgPSAnQU5ZJy4gRmxvdyB2YWxpZGF0 ZQ0KPiA+ID4+IHdvdWxkIGJlIGRvbmUgdG8gbWFrZSBzdXJlIHRoZSB1bmRlcmx5aW5nIFBNRCBz dXBwb3J0cyBpdC4gRm9yIFBNRHMNCj4gPiA+PiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgdGhpcyBt b2RlbCwgcGVyIFNBIGZsb3cgd291bGQgYmUgY3JlYXRlZC4NCj4gPiA+DQo+ID4gPiBXaHkgZG8g eW91IG5lZWQgdGhhdCBmbG93IGFzIHdlbGwuIFlvdSBoYXZlIGFsbCB0aGUgaW5mb3JtYXRpb24g aW4NCj4gPiA+IHRoZSBzZXNzaW9uDQo+ID4gYWxyZWFkeS4NCj4gPiA+IFlvdSBjYW4gcHJvY2Vz cyB0aGUgcGFja2V0cyBiYXNlZCBvbiB0aGF0IGluZm9ybWF0aW9uLiBJc24ndCBpdD8NCj4gPiA+ IEN1cnJlbnQgaW1wbGVtZW50YXRpb24gaW4gYXBwbGljYXRpb24gaXMgZ29vZCBlbm91Z2ggaW4g bXkgb3Bpbmlvbi4NCj4gPiA+DQo+ID4gPj4NCj4gPiA+Pj4gQXRsZWFzdCBmb3IgTlhQIGRldmlj ZXMgd2UgYXJlIGFibGUgdG8gd29yayBhcyBpcyB3aXRob3V0IGFueSBpc3N1ZS4NCj4gPiA+Pg0K PiA+ID4+IFtBbm9vYl0gSnVzdCBjdXJpb3VzLCB3b3VsZCBoYXZpbmcgc3VjaCBhIGRlcGVuZGVu Y3kgb24gcnRlX2Zsb3cgYmUNCj4gPiA+PiBhbiBpc3N1ZSBmb3IgTlhQIGRldmljZXM/DQo+ID4g Pg0KPiA+ID4gQXMgb2Ygbm93IEkgZG8gbm90IGhhdmUgYW55IGNvbW1lbnQgb24gdGhpcy4gV2Ug YXJlIG5vdCB1c2luZw0KPiA+ID4gcnRlX2Zsb3cgaW4NCj4gPiBvdXIgd29yayBhcyBvZiBub3cu DQo+ID4gPiBJdCBpcyBraW5kIG9mIFBPQyBmb3IgdXMsIHdlIG1heSBub3QgdXBzdHJlYW0gaXQu DQo+ID4gPiBUaGlzIHdpbGwgZGVwZW5kIG9uIHRoZSBjaGFuZ2VzIHRoYXQgd2lsbCBiZSBkb25l Lg0KPiANCj4gW0Fub29iXSBGb3IgaW5saW5lIGNyeXB0by9wcm90b2NvbCBwcm9jZXNzaW5nLCBh IGgvdyBsb29rdXAgaXMgcmVxdWlyZWQuDQo+IFdoZXRoZXIgd2UgbmVlZCBvbmUgcGVyIFNQSSBp cyB0aGUgcXVlc3Rpb24gaGVyZS4NCj4gDQo+IFRoZSBjdXJyZW50IGFwcHJvYWNoIGluIGlubGlu ZSBjcnlwdG8gYXNzdW1lcyBwZXIgc2Vzc2lvbiwgcnRlX2Zsb3cgd291bGQgYmUNCj4gY3JlYXRl ZC4gQnV0IGZvciBpbmxpbmUgcHJvdG9jb2wsIGlwc2VjLXNlY2d3IGRvZXNuJ3QgY3JlYXRlIGFu eSBydGVfZmxvdywgd2hpY2gNCj4gYWxzbyBjb3VsZCB3b3JrIGlmIHdlIGNhbiBoYXZlIHN0YXRp YyBydWxlcyB0byBlbmFibGUgU0VDVVJJVFkgcHJvY2Vzc2luZyBmb3IgYWxsDQo+IEVTUCBwYWNr ZXRzLg0KPiANCj4gVGhlIHByb2JsZW0gaXMsIGluIHRoYXQgY2FzZSBhbnkgb3RoZXIgYWN0aW9u IG9uIEVTUCBwYWNrZXRzIGNvdWxkIHJlc3VsdCBpbiBhDQo+IGNvbmZsaWN0LiBPciBpZiB0aGUg YXBwbGljYXRpb25zIHdhbnRzIHRvIGVuYWJsZSBTRUNVUklUWSBwcm9jZXNzaW5nIG9ubHkgZm9y DQo+IHNwZWNpZmljIGZsb3dzLCB0aGUgY3VycmVudCB1c2FnZSBtb2RlbCB3b3VsZG4ndCBhbGxv dyB0aGF0Lg0KPiANCj4gTWF5IGJlIEknbGwgc3VtbWFyaXplIG15IGNvbmNlcm5zLA0KPiAxLiBy dGVfZmxvdyBTRUNVUklUWSBhY3Rpb24gdHlwZSByZXF1aXJlcyBhIHNlY3VyaXR5IHNlc3Npb24u DQo+IEZyb20gdGhlIHNwZWMgb2YgcnRlX2Zsb3csICJGb3IgSU5MSU5FX1BST1RPQ09MLCB0aGUg c2VjdXJpdHkgcHJvdG9jb2wgaXMgZnVsbHkNCj4gb2ZmbG9hZGVkIHRvIEhXLCBwcm92aWRpbmcg ZnVsbCBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uIG9mIHBhY2tldHMgaW4NCj4gc2Vj dXJpdHkgcHJvdG9jb2xzLiBUaGUgZmxvdyBwYXR0ZXJuIHNwZWNpZmllcyBib3RoIHRoZSBvdXRl ciBzZWN1cml0eSBoZWFkZXINCj4gZmllbGRzIGFuZCB0aGUgaW5uZXIgcGFja2V0IGZpZWxkcy4g VGhlIHNlY3VyaXR5IHNlc3Npb24gc3BlY2lmaWVkIGluIHRoZSBhY3Rpb24NCj4gbXVzdCBtYXRj aCB0aGUgcGF0dGVybiBwYXJhbWV0ZXJzLiINCj4gDQo+IElzc3VlOiBJZiBvbmx5IHRoaXMgaXMg YWxsb3dlZCwgdGhlbiB0aGUgbnVtYmVycyBvZiAgU0FzIHN1cHBvcnRlZCB3aWxsIGJlIGxpbWl0 ZWQNCj4gYnkgbWF4IG51bWJlciBvZiBmbG93cyBzdXBwb3J0ZWQuIFtDdXJyZW50IGlwc2VjLXNl Y2d3IGlzIGluIHZpb2xhdGlvbiBvZiB0aGUNCj4gYWJvdmVdDQo+IA0KPiAyLiBBIHN0YXRpYyBy dWxlIHRvIGVuYWJsZSBzZWN1cml0eSBwcm9jZXNzaW5nIG9uIGFsbCBFU1AgcGFja2V0cyBjYW4g YmUgZW5hYmxlZC4NCj4gV2l0aCB0aGlzLCBhcHBsaWNhdGlvbiB3b24ndCBiZSByZXF1aXJlZCB0 byBjcmVhdGUgcnRlX2Zsb3cgcGVyIGZsb3cgYW5kIHdpbGwgYmUNCj4gYWJsZSB0byB1c2UgU1BJ IGZpZWxkIHRvIGlkZW50aWZ5IHRoZSBzZWN1cml0eSBwcm9jZXNzaW5nIHRvIGJlIGRvbmUgb24g dGhlIHBhY2tldC4NCj4gDQo+IElzc3VlOiBJZiB0aGVyZSBhcmUgYW55IGNvbmZsaWN0aW5nIHJ0 ZV9mbG93IGVudHJpZXMgZm9yIEVTUCBwYWNrZXRzLCB0aGUgYmVoYXZpb3INCj4gaXMgbm90IGRl ZmluZWQuIEFsc28sIGlmIGFwcGxpY2F0aW9uIHdhbnRzIHRvIGNvbnRyb2wgdGhlIGZsb3dzIG9u IHdoaWNoIFNFQ1VSSVRZDQo+IHByb2Nlc3NpbmcgaXMgZG9uZSAoYXMgaW4gU0VDVVJJVFkgaXMg ZW5hYmxlZCBvbmx5IGZvciBzZWxlY3RlZCBTUEkgdmFsdWVzKSwgdGhlbg0KPiBpdCBpcyBub3Qg cG9zc2libGUuDQo+IA0KPiBJIGJlbGlldmUgaXQgaXMgb2theSB0byBoYXZlIGVpdGhlciBvZiB0 aGVtIGluIGlwc2VjLXNlY2d3LCBidXQgYXMgYSBzcGVjIHdlIHNob3VsZA0KPiBhbGxvdyBib3Ro IHVzZSBjYXNlcy4gQWxzbywgYWxsIHRoZXNlIGNhbiBiZSBwcm90ZWN0ZWQgYnkgY2FwYWJpbGl0 eQ0KPiBjaGVjay9ydGVfZmxvd192YWxpZGF0ZSgpLiBTbyBpZiBhbnkgUE1EIGRvZXNuJ3Qgc3Vw cG9ydCB0aGVzZSBtb2RlcywgYW4NCj4gYWx0ZXJuYXRlIHBhdGggY2FuIGJlIHRha2VuLiBXaGF0 IGRvIHlvdSB0aGluaz8NCj4gDQo+ID4NCj4gPiBJcyB0aGVyZSBhbnkgZm9sbG93IHVwIHRvIHRo ZSBSRkM/IElzIGl0IHN0aWxsIHZhbGlkPw0KPiA+DQo+ID4gPg0KPiA+ID4+DQo+ID4gPj4+DQo+ ID4gPj4+Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+PiBBcHBsaWNhdGlv biBzaG91bGQgZG8gYW4gcnRlX2Zsb3dfdmFsaWRhdGUoKSB0byBtYWtlIHN1cmUgdGhlDQo+ID4g Pj4+Pj4+Pj4gZmxvdyBpcyBzdXBwb3J0ZWQgb24gdGhlIFBNRC4NCj4gPiA+Pj4+Pj4+Pg0KPiA+ ID4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEFub29iIEpvc2VwaCA8YW5vb2JqQG1hcnZlbGwuY29t Pg0KPiA+ID4+Pj4+Pj4+IC0tLQ0KPiA+ID4+Pj4+Pj4+ICBsaWIvbGlicnRlX2V0aGRldi9ydGVf Zmxvdy5oIHwgNiArKysrKysNCj4gPiA+Pj4+Pj4+PiAgMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0 aW9ucygrKQ0KPiA+ID4+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9saWJy dGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gPiA+Pj4+Pj4+PiBiL2xpYi9saWJydGVfZXRoZGV2L3J0 ZV9mbG93LmggaW5kZXggZjNhOGZiMS4uNDk3N2QzYyAxMDA2NDQNCj4gPiA+Pj4+Pj4+PiAtLS0g YS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ID4gPj4+Pj4+Pj4gKysrIGIvbGliL2xp YnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ID4+Pj4+Pj4+IEBAIC0xODc5LDYgKzE4NzksMTIg QEAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9tZXRlciB7DQo+ID4gPj4+Pj4+Pj4gICAqIGRpcmVj dGlvbi4NCj4gPiA+Pj4+Pj4+PiAgICoNCj4gPiA+Pj4+Pj4+PiAgICogTXVsdGlwbGUgZmxvd3Mg Y2FuIGJlIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBzYW1lIHNlY3VyaXR5DQo+ID4gPj4+IHNlc3Np b24uDQo+ID4gPj4+Pj4+Pj4gKyAqDQo+ID4gPj4+Pj4+Pj4gKyAqIFRoZSBOVUxMIHZhbHVlIGlz IGFsbG93ZWQgZm9yIHNlY3VyaXR5IHNlc3Npb24uIElmDQo+ID4gPj4+Pj4+Pj4gKyBzZWN1cml0 eSBzZXNzaW9uIGlzIE5VTEwsDQo+ID4gPj4+Pj4+Pj4gKyAqIHRoZW4gU1BJIGZpZWxkIGluIEVT UCBmbG93IGl0ZW0gYW5kIElQIGFkZHJlc3NlcyBpbiBmbG93DQo+ID4gPj4+Pj4+Pj4gKyBpdGVt cyAnSVB2NCcgYW5kDQo+ID4gPj4+Pj4+Pj4gKyAqICdJUHY2JyB3aWxsIGJlIGFsbG93ZWQgdG8g YmUgYSByYW5nZS4gVGhlIHJ1bGUgdGh1cw0KPiA+ID4+Pj4+Pj4+ICsgY3JlYXRlZCBjYW4gZW5h YmxlDQo+ID4gPj4+Pj4+Pj4gKyAqIFNFQ1VSSVRZIHByb2Nlc3Npbmcgb24gbXVsdGlwbGUgZmxv d3MuDQo+ID4gPj4+DQo+ID4gPj4+IFdoYXQgeW91IGludGVudCBoZXJlIGlzICIgVGhlIHJ1bGUg dGh1cyBjcmVhdGVkIGNhbiBlbmFibGUNCj4gPiA+Pj4gbXVsdGlwbGUgc2VjdXJpdHkgc2Vzc2lv bnMgb24gYSBzaW5nbGUgcnRlIGZsb3ciDQo+ID4gPj4+DQo+ID4gPj4+DQo+ID4gPj4+IFJlZ2Fy ZHMsDQo+ID4gPj4+IEFraGlsDQoNCg==