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 02646A00C2; Wed, 22 Apr 2020 18:35:18 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AE71F1C2F8; Wed, 22 Apr 2020 18:35:17 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id C13741C2F0 for ; Wed, 22 Apr 2020 18:35:16 +0200 (CEST) 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 03MGVamn016101; Wed, 22 Apr 2020 09:35:16 -0700 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=7Z3Xah5pmEXEYVemmyT4+LOGriB+sYjzO8PKpaMBlco=; b=LHogHG5B+B2jIvpuR0XQw83/Ei1lz9oj1qYDTiopQSJ4pEvcdpi1wyrM5EeswSu43gXy 9gGRoCnXROWxnVQcMvK6v0gspaoU0CcCg975DKwOwVg3Bj4iXpY/Dq+1EAB8XjgbXaEq DAtF7qbtVbw3kY+2zNEHA1wYsxH6Qzck/SeYI4SHadbIkFQwmtnpH6FBi6Xfr/hA7kEm eXy/EQ37mXI/WjwPv/28tdWPDwk36mJmnwsETgge32ocIxNQPblr9ICMFqdROgK7fwAp d5N9I6J61h2HC0eZW3ycL1oOwPOuwFMHD3s8U35T2ZMsO0Qo79RdS0DFHq6qef13L9AR nA== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 30jd012y9p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 22 Apr 2020 09:35:15 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 22 Apr 2020 09:35:13 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Wed, 22 Apr 2020 09:35:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oedxUYbKLVmRcw8cjCCGayrfZd8jOcwu/CDzAta2eS47+/tgITAiHBN0aJwEFzTcbeJuJgokKdWc5DiJ3psdDp71izcnbEIrIg5dNomavrfib+4cEEyzioWZZS5q6EutLsn1KyP5H1vqDFlC39IA+ysqgksgxFrDtnU4FONLEg6RGS90uZLlzjTVjs1LRsbSZxaEBe8CTP13vEKcnjcPKgfDydCEwPNk1e+PnIxS7npePArwGS3aOsfS0IS11bpbSZ7ryy3N1AEzj5zZjPerSYTumpv2BEN4PE7OrGJgWIykgBkCYR+WhrIaWeNgkc9P182d3T8KNAxPTwgmn89c7Q== 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=7Z3Xah5pmEXEYVemmyT4+LOGriB+sYjzO8PKpaMBlco=; b=eiuGs6KxeTg0AQsAPu3gsfLvw6oinGCCEqlic7Ar7bLVZQQyHj18UciXUc9dlbM9OE4p+++djOJYm5ctGkfk+yH2tF8jGKH9zU7KjSCLkpYA/8sXKmh8qSlewQ4CzHMru+EMHappqZUwHshmMA5OEzAZmAl0QBRSW9tFaA/eRN2Y7y971NMiKF67K76Hn7iZ3LcqAjNdlnGvsIRWYgTPz2he2We9pc+uYRVhXURJWrxXSJKA1qR50PEIz6VmKXUKY/HGL0jtAKWaCzWLRHBzvVO3P4C75WHBr1xcxZPB+2IqH7M9G576q5irZck9uEVASG3MvcKSEO3veQHU34kWOA== 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=7Z3Xah5pmEXEYVemmyT4+LOGriB+sYjzO8PKpaMBlco=; b=QLlwKJ9ZVvUJeDzHT2rMM7VBn9lj1V4cuWNFkJmXzud3etWaurBLW8PJTM3JNcpDnTuYZdrrTIu6dc7zSfe8pS1nHtpt21Lfe9VEAhglTKhCBAOMZ2J4AaLPzvo1ZHx4G4cxEPMmamsg7FobsFH35WeiXEolXZM0wqn9B9oNMqA= Received: from MN2PR18MB2877.namprd18.prod.outlook.com (2603:10b6:208:3b::26) by MN2PR18MB3008.namprd18.prod.outlook.com (2603:10b6:208:10a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Wed, 22 Apr 2020 16:35:12 +0000 Received: from MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::648f:e7fa:f95e:191b]) by MN2PR18MB2877.namprd18.prod.outlook.com ([fe80::648f:e7fa:f95e:191b%2]) with mapi id 15.20.2921.030; Wed, 22 Apr 2020 16:35:12 +0000 From: Anoob Joseph To: "Ananyev, Konstantin" , "Lukas Bartosik [C]" CC: "akhil.goyal@nxp.com" , "Nicolau, Radu" , Narayana Prasad Raju Athreya , "dev@dpdk.org" , "orika@mellanox.com" , "Doherty, Declan" Thread-Topic: [dpdk-dev] [EXT] RE: [PATCH] examples/ipsec-secgw: fix dropping of initial IPsec pkts Thread-Index: AQHWF+P6mavo3sqEaUyJ/nwp9IcJ6KiDsFwAgAGXrnA= Date: Wed, 22 Apr 2020 16:35:11 +0000 Message-ID: References: <1586345520-3205-1-git-send-email-lbartosik@marvell.com> <139b63ab-6ce0-1657-2754-37e1347143bc@marvell.com> <9bde6651-8dc2-30df-036e-a0670327b6a8@marvell.com> <97c667bb-e6fa-808b-107a-c94b5917aabc@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: [27.34.246.85] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b8f398a6-d318-4883-0d23-08d7e6db20e5 x-ms-traffictypediagnostic: MN2PR18MB3008: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 03818C953D x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR18MB2877.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(366004)(396003)(39850400004)(376002)(346002)(136003)(33656002)(6636002)(9686003)(316002)(19627235002)(186003)(8676002)(966005)(52536014)(81156014)(8936002)(5660300002)(66446008)(66476007)(64756008)(66556008)(478600001)(76116006)(86362001)(2906002)(66946007)(54906003)(30864003)(4326008)(55016002)(7696005)(110136005)(26005)(6506007)(71200400001)(53546011); DIR:OUT; SFP:1101; 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: H1ABChHLKutDMBvu96PG16wx3kDU69WblYB+Zta7C/CrcBxGiLrCM4DG+QMLFCN51wkYQ7FvevkPgZ11VvaHmrIGmGTpLR4s5r8cBTJVEXpedSqX4Z5Tjiak0DsQ0IHzsQi0Id1Gjswln+bRzkb/zQtzG30ys6WxWhjaOzuEOn8+0x2NrSEBXL3fgNQBF8GASB1OWNx5CaLwqIO/by2gPjTFs6QL/X35rEh3ehr6tY0/cCY2gckjDlQTJywger+rEdqUcB4nsvUqn1ZGKKkhPa5OBxyoGi23l3Q5yCQ4GSJDdZwn7mNRjBuE8Wo7b2rRMU3tc3uitGyIQiPipG0SYvw8vVRbzE1t23iGApYaKkxoDayPX8dhxEGNjrn3yoWIV3xer5D4vs767dDuic0uuwijcHpmjYiRlH00TwKQj1h6urNOeRVoRCetEPGm3biu1MNrv3J0v/ZiWGMBd8vQgoGwabc1yPA/dPDauecUPKvDVXFwi0AY2lmFw+Emvoa7Vec4x87Zrc9bDRWpBAlQvw== x-ms-exchange-antispam-messagedata: SHS7AFGJj4mTrpFnfJvgS8jy1ZQmPNC5xg3XE0KW2Hbg65TG5tCNcFic3byhRp4SL2rOnIPuo6VlOzlx6Qdhd8zP4dgnCoL+dAxPx+0loPVXdyy5f05sM7jNhS9/S9+6jpiZQjuGPui1NmHx+1b0Aw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: b8f398a6-d318-4883-0d23-08d7e6db20e5 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Apr 2020 16:35:11.8673 (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: dqV0rP1afV3mwOCeBmtw7PHRpKYdx4Lw/ZnLzI8houmH8CCRw2UJYszRBtXHuPrL9jkRBplHwWtz6fjXQ2gU9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3008 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-22_06:2020-04-22, 2020-04-22 signatures=0 Subject: Re: [dpdk-dev] [EXT] RE: [PATCH] examples/ipsec-secgw: fix dropping of initial IPsec pkts 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" SGkgS29uc3RhbnRpbiwNCg0KUGxlYXNlIHNlZSBpbmxpbmUuDQoNClRoYW5rcywNCkFub29iDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5hbnlldiwgS29uc3RhbnRp biA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4NCj4gU2VudDogVHVlc2RheSwgQXByaWwg MjEsIDIwMjAgODo0OCBQTQ0KPiBUbzogTHVrYXMgQmFydG9zaWsgW0NdIDxsYmFydG9zaWtAbWFy dmVsbC5jb20+DQo+IENjOiBha2hpbC5nb3lhbEBueHAuY29tOyBOaWNvbGF1LCBSYWR1IDxyYWR1 Lm5pY29sYXVAaW50ZWwuY29tPjsgQW5vb2INCj4gSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+ OyBOYXJheWFuYSBQcmFzYWQgUmFqdSBBdGhyZXlhDQo+IDxwYXRocmV5YUBtYXJ2ZWxsLmNvbT47 IGRldkBkcGRrLm9yZzsgb3Jpa2FAbWVsbGFub3guY29tOyBEb2hlcnR5LA0KPiBEZWNsYW4gPGRl Y2xhbi5kb2hlcnR5QGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtkcGRrLWRldl0gW0VYVF0g UkU6IFtQQVRDSF0gZXhhbXBsZXMvaXBzZWMtc2VjZ3c6IGZpeCBkcm9wcGluZw0KPiBvZiBpbml0 aWFsIElQc2VjIHBrdHMNCj4gDQo+IA0KPiBIaSBMdWthcywNCj4gDQo+IEFwb2xvZ2llcyBmb3Ig ZGVsYXkgd2l0aCByZXNwb25zZS4NCj4gDQo+ID4gRG8geW91IGhhdmUgYW55IHRob3VnaHRzIGhv dyBib3RoIGNhc2VzIGNvdWxkIGJlIGNvdmVyZWQ6DQo+ID4gMS4gSW5saW5lIG5vdCBhcHBsaWVk IHRvIGluYm91bmQgSVBzZWMgcGt0cyBmb3Igc2hvcnQgZHVyYXRpb24gb2YgdGltZQ0KPiA+IGFm dGVyIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgYnV0IGJlZm9yZSBzYV9pbml0KCkgaXMgZXhlY3V0ZWQg KHdoaWNoIGNyZWF0ZXMgU0FzKS4NCj4gPiAyLiBTQXMgbm90IHN1cnZpdmluZyBydGVfZXRoX2Rl dl9zdGFydCgpIG9uIGl4Z2JlIGRyaXZlci4NCj4gDQo+IE5vLCByaWdodCBub3cgSSBkb24ndCBo YXZlIGFuIGlkZWEgaG93IGJvdGggY2FuIGJlIHNhdGlzZmllZC4NCj4gQWJvdXQgMSkgLSB3aHkg ZG8geW91IGNvbnNpZGVyIHRoYXQgYXMgcHJvYmxlbT8NCj4gQXMgSSB1bmRlcnN0YW5kIHdoZW4g aW5saW5lIGRldmljZSBpcyBzdGFydGVkIGJ5IG5vdCBwcm9wZXJseSBwcm9ncmFtbWVkIHlldCwN Cj4gdGhlc2UgcGFja2V0cyB3aWxsIGJlIHRyZWF0ZWQgYnkgZGV2aWNlIGFzIG5vbi1pcHNlYyBv bmVzIChqdXN0IHBsYWluLXRleHQNCj4gcGFja2V0cykuDQo+IFRoZW4gbGF0ZXIgaW4gaXBzZWMt c2VjZ3cgUlggcGF0aCB0aGV5IHdpbGwgcHJvYmFibHkgYmUganVzdCBkcm9wcGVkLg0KPiBTbyBu byBoYXJtIGhlcmUsIG5vPw0KDQpbQW5vb2JdIFllcywgd2hlbiBTQXMgYXJlIG5vdCB5ZXQgY3Jl YXRlZCBhbmQgZGV2aWNlIGlzIHN0YXJ0ZWQgdGhlbiBIVyB0cmVhdHMgSVBzZWMgcGFja2V0cyBh cyBjbGVhciBwYWNrZXRzIGFuZCBkb2VzIG5vdCBhcHBseSBpbmxpbmUgdG8gdGhlbS4gVGhlIElQ c2VjIHBhY2tldHMgYXJyaXZlIGF0IGFwcGxpY2F0aW9uIGxldmVsLiBUaGlzIHBvaW50cyBhdCBh IHNlcmlvdXMgaGFyZHdhcmUgaXNzdWUgYXMgYSBwYWNrZXQgaW50ZW5kZWQgZm9yIElQc2VjIGhh cyByZWFjaGVkIGFwcGxpY2F0aW9uIHdpdGhvdXQgYmVpbmcgSVBzZWMgcHJvY2Vzc2VkLiBBcHBs aWNhdGlvbiB3b3VsZCBjaGVjayBpZiBzZXNzaW9uIGlzIGNyZWF0ZWQgYW5kIHNpbmNlIHRoZSBz ZXNzaW9uIGlzIGF2YWlsYWJsZSBhdCB0aGUgdGltZSBvZiBwcm9jZXNzaW5nIHRoZSBwYWNrZXQg KGluIHRoZSBhcHBsaWNhdGlvbiksIGl0IHdvdWxkIGxvb2sgbGlrZSBhIGhhcmR3YXJlIGlzc3Vl IHdoZW4gaXQgaXMganVzdCBhIGZhbHNlIHBvc2l0aXZlLg0KDQo+IA0KPiBBYm91dCAyKSAtIGxv b2tpbmcgYXQgaXhnYmUgY29kZSwgSSB0aGluayBpdCBjYW4gYmUgY2hhbmdlZCB0byBtYWtlIGlw c2VjIGZsb3dzIHRvDQo+IHN1cnZpdmUgZGV2aWNlIHN0YXJ0L3N0b3AgKHRob3VnaCBtb3N0IGxp a2VseSBub3QgaW4gMjAuMDUgdGltZWZyYW1lKS4NCj4gU28gSSBhbSBub3Qgc3VyZSBzaG91bGQg d2UgZG8gaXQgYXQgYWxsLg0KPiBPYnZpb3VzbHkgZm9yIGl4Z2JlICh3aXRoIDFLIG1heCBTQSkg aXQgaXMgbm90IGEgcHJvYmxlbSB0byBzYXZlIGV4dHJhIGluZm8gYWJvdXQNCj4gSFcgZmxvd3Mg YW5kIHJlc3RvcmUgdGhlbSBhZnRlciBzdG9wL3N0YXJ0Lg0KPiBUaG91Z2ggZm9yIG1vZGVybiBk ZXZpY2VzIHRoYXQgbWlnaHQgaGF2ZSBtaWxsaW9ucyBvZiBmbG93cyBtYWludGFpbmluZyBzdWNo DQo+IGluZm8gaW4gUE1EIG1pZ2h0IGJlY29tZSBhIHNpZ25pZmljYW50IG92ZXJoZWFkLg0KPiBB cyBnZW5lcmljIHF1ZXN0aW9uIC0gaG93IFBNRCBzaG91bGQgYmVoYXZlIGluIHN1Y2ggc2l0dWF0 aW9uPw0KPiBTaG91bGQgaXQgc3VwcG9ydCBmbG93cyBzdXJ2aXZhbCB0aHJvdWdoIGRldl9zdGFy dC9kZXZfc3RvcCwgb3Igc2hvdWxkIGl0IGJlIGFwcA0KPiByZXNwb25zaWJpbGl0eSB0byByZXBy b2dyYW0gZmxvd3MgYWZ0ZXIgZGV2LXN0YXJ0L2Rldl9zdG9wLg0KDQpbQW5vb2JdIEkgYmVsaWV2 ZSB0aGUgc3BlYyB0YWxrcyBhYm91dCB0aGUgYmVoYXZpb3IgZHVyaW5nIHN0YXJ0L3N0b3AgYW5k IGluaXRpYWxpemF0aW9uLg0KDQoiRmxvdyBydWxlcyBhcmUgbm90IG1haW50YWluZWQgYmV0d2Vl biBzdWNjZXNzaXZlIHBvcnQgaW5pdGlhbGl6YXRpb25zLiBBbiBhcHBsaWNhdGlvbiBleGl0aW5n IHdpdGhvdXQgcmVsZWFzaW5nIHRoZW0gYW5kIHJlc3RhcnRpbmcgbXVzdCByZS1jcmVhdGUgdGhl bSBmcm9tIHNjcmF0Y2guIg0KDQoiUE1Ecywgbm90IGFwcGxpY2F0aW9ucywgYXJlIHJlc3BvbnNp YmxlIGZvciBtYWludGFpbmluZyBmbG93IHJ1bGVzIGNvbmZpZ3VyYXRpb24gd2hlbiBzdG9wcGlu ZyBhbmQgcmVzdGFydGluZyBhIHBvcnQgb3IgcGVyZm9ybWluZyBvdGhlciBhY3Rpb25zIHdoaWNo IG1heSBhZmZlY3QgdGhlbS4iDQoNCkZyb20gdGhlIGFib3ZlIHR3bywgZm9sbG93aW5nIGlzIHdo YXQgSSBjb3VsZCBjb25jbHVkZSwNCjEuIEFjcm9zcyBpbml0aWFsaXphdGlvbnMgcnRlX2Zsb3cg cnVsZXMgYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZXRhaW5lZC4NCjIuIEFjcm9zcyByZXN0YXJ0 cyAoZGV2IHN0YXJ0L3N0b3ApLCBQTURzIGhhdmUgdG8gZW5zdXJlIHJ0ZV9mbG93IHJ1bGVzIHN1 cnZpdmUuDQoNCkkgaGF2ZW4ndCBsb29rZWQgYXQgdGhlIGl4Z2JlIFBNRCB5ZXQsIGJ1dCB0ZWNo bmljYWxseSBzdGFydC9zdG9wIHNob3VsZCBvbmx5IGJlIGFib3V0IHdoZXRoZXIgdGhlIGRldmlj ZSBpcyBydW5uaW5nLiBJIGJlbGlldmUgdGhlcmUgYXJlIG90aGVyIHNldHRpbmdzIGFsc28gd2hp Y2ggbmVlZCB0byBiZSByZXRhaW5lZCBiZXR3ZWVuIHN0YXJ0L3N0b3AuDQoNCkZyb20gaHR0cHM6 Ly9kb2MuZHBkay5vcmcvYXBpL3J0ZV9fZXRoZGV2XzhoLmh0bWwNCg0KUGxlYXNlIG5vdGUgdGhh dCBzb21lIGNvbmZpZ3VyYXRpb24gaXMgbm90IHN0b3JlZCBiZXR3ZWVuIGNhbGxzIHRvIHJ0ZV9l dGhfZGV2X3N0b3AoKS9ydGVfZXRoX2Rldl9zdGFydCgpLiBUaGUgZm9sbG93aW5nIGNvbmZpZ3Vy YXRpb24gd2lsbCBiZSByZXRhaW5lZDoNCg0KLSBNVFUNCi0gZmxvdyBjb250cm9sIHNldHRpbmdz DQotIHJlY2VpdmUgbW9kZSBjb25maWd1cmF0aW9uIChwcm9taXNjdW91cyBtb2RlLCBhbGwtbXVs dGljYXN0IG1vZGUsDQogIGhhcmR3YXJlIGNoZWNrc3VtIG1vZGUsIFJTUy9WTURRIHNldHRpbmdz IGV0Yy4pDQotIFZMQU4gZmlsdGVyaW5nIGNvbmZpZ3VyYXRpb24NCi0gZGVmYXVsdCBNQUMgYWRk cmVzcw0KLSBNQUMgYWRkcmVzc2VzIHN1cHBsaWVkIHRvIE1BQyBhZGRyZXNzIGFycmF5DQotIGZs b3cgZGlyZWN0b3IgZmlsdGVyaW5nIG1vZGUgKGJ1dCBub3QgZmlsdGVyaW5nIHJ1bGVzKQ0KLSBO SUMgcXVldWUgc3RhdGlzdGljcyBtYXBwaW5ncw0KDQpGbG93IGRpcmVjdG9yIHJlZmVycyB0byBy dGVfZmxvdywgcmlnaHQ/IA0KDQo+IEkgbG9va2VkIHRocm91Z2ggUEcgZm9yIHJ0ZV9mbG93LCBh bmQgaXQgc2VlbXMgYSBiaXQgY29udmVyc2lvbmFsIGhlcmUgKGF0IGxlYXN0DQo+IGZvciBtZSk6 DQo+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0NCj4g M0FfX2RvYy5kcGRrLm9yZ19ndWlkZXNfcHJvZy01Rmd1aWRlX3J0ZS0NCj4gNUZmbG93Lmh0bWwm ZD1Ed0lHYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9alBmQjhyd3d2aVJTeHlMV3MNCj4g Mm42Qi0NCj4gV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09cFVhNlhIendWQTJJUDdVRWU1Yjk4aG9z SG1IanhsTE9tbjNJeEgNCj4gaFpRQUEmcz0yQk00aXlTTnlTMHN2ekcyNkIwUGlHOGhRb0FUMmNs QXRreGlKcnl0ZGFJJmU9ICAoMTEuNyk6DQo+IEZvcm0gb25lIHNpZGU6DQo+IC0gRFBESyBkb2Vz IG5vdCBrZWVwIHRyYWNrIG9mIGZsb3cgcnVsZXMgZGVmaW5pdGlvbnMgb3IgZmxvdyBydWxlIG9i amVjdHMNCj4gYXV0b21hdGljYWxseS4NCj4gICBBcHBsaWNhdGlvbnMgbWF5IGtlZXAgdHJhY2sg b2YgdGhlIGZvcm1lciBhbmQgbXVzdCBrZWVwIHRyYWNrIG9mIHRoZSBsYXR0ZXIuDQo+ICAgUE1E cyBtYXkgYWxzbyBkbyBpdCBmb3IgaW50ZXJuYWwgbmVlZHMsIGhvd2V2ZXIgdGhpcyBtdXN0IG5v dCBiZSByZWxpZWQgb24gYnkNCj4gYXBwbGljYXRpb25zLg0KPiBCdXQgYSBiaXQgYmVsb3c6DQo+ IC0gUE1Ecywgbm90IGFwcGxpY2F0aW9ucywgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmlu ZyBmbG93IHJ1bGVzDQo+IGNvbmZpZ3VyYXRpb24NCj4gICAgd2hlbiBzdG9wcGluZyBhbmQgcmVz dGFydGluZyBhIHBvcnQgb3IgcGVyZm9ybWluZyBvdGhlciBhY3Rpb25zIHdoaWNoIG1heQ0KPiBh ZmZlY3QgdGhlbS4NCj4gICBUaGV5IGNhbiBvbmx5IGJlIGRlc3Ryb3llZCBleHBsaWNpdGx5IGJ5 IGFwcGxpY2F0aW9ucy4NCj4gDQo+IFdvdWxkIGxpa2UgdG8ga25vdyB3aGF0IHJ0ZV9mbG93IG1h aW50YWluZXJzIGFuZCBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMgdGhpbmsNCj4gYWJvdXQgaXQ/ DQoNCltBbm9vYl0gSSBkbyBhZ3JlZSB0aGF0IHRoZSBhYm92ZSB0d28gcG9pbnRzIGNhbiBiZSBt aXNsZWFkaW5nLiBCdXQgaXQgYWN0dWFsbHkgZGVzY3JpYmVzIHRoZSB1c2FnZSBvZiBydGVfZmxv dyBBUEkuDQoNCjEuICJEUERLIGRvZXMgbm90IGtlZXAgdHJhY2sgb2YgZmxvdyBydWxlcyBkZWZp bml0aW9ucyBvciBmbG93IHJ1bGUgb2JqZWN0cyBhdXRvbWF0aWNhbGx5LiBBcHBsaWNhdGlvbnMg bWF5IGtlZXAgdHJhY2sgb2YgdGhlIGZvcm1lciBhbmQgbXVzdCBrZWVwIHRyYWNrIG9mIHRoZSBs YXR0ZXIuIg0KRFBESyBydGVfZmxvdyBzcGVjIGRvZXNuJ3QgcHJvdmlkZSBhbiBBUEkgdG8gY2hl Y2sgaWYgYSBydWxlIGlzIGFscmVhZHkgY3JlYXRlZC4gQXBwbGljYXRpb24gaXMgY29uZmlndXJp bmcgaGFyZHdhcmUgcmVzb3VyY2VzIHVzaW5nIHJ0ZV9mbG93IGFuZCBpdCBoYXMgdG8ga2VlcCB0 cmFjayBvZiB3aGF0IGlzIGNvbmZpZ3VyZWQuIA0KDQoyLiAiUE1Ecywgbm90IGFwcGxpY2F0aW9u cywgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyBmbG93IHJ1bGVzIGNvbmZpZ3VyYXRp b24gd2hlbiBzdG9wcGluZyBhbmQgcmVzdGFydGluZyBhIHBvcnQgb3IgcGVyZm9ybWluZyBvdGhl ciBhY3Rpb25zIHdoaWNoIG1heSBhZmZlY3QgdGhlbS4iDQpJbiB0aGlzIGNhc2UsIHdlIGFyZSB0 YWxraW5nIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgaGFyZHdhcmUuIE9uY2UgdGhlIHJ1bGVzIGFy ZSBjb25maWd1cmVkLCBpdCBzaG91bGQgc3Vydml2ZSBhY3Jvc3Mgc3RvcC1zdGFydC4gQXBwbGlj YXRpb24gaXMgbm90IHJlcXVpcmVkIHRvIGRlc3Ryb3kgYW5kIGNyZWF0ZSBydGVfZmxvd3MgaW4g c3VjaCBjYXNlLg0KDQpJbiBmaXJzdCBjYXNlLCB3ZSBhcmUgdGFsa2luZyBhYm91dCBydGVfZmxv dyBvYmplY3RzICYgcnVsZXMgKGxpa2Ugc2Vzc2lvbiBpbiBjYXNlIG9mIHJ0ZV9zZWN1cml0eSkg YW5kIGluIHRoZSBzZWNvbmQgd2UgYXJlIHRhbGtpbmcgYWJvdXQgaGFyZHdhcmUgc3RhdGUuDQoN CkkgdGhpbmsgdGhpcyBwYXRjaCBjYW4gYmUgZGVsYXllZCB0aWxsIGl4Z2JlIGNhbiBiZSBmaXhl ZC4gSGF2aW5nIGl0IGluIDIwLjA4IHRpbWVmcmFtZSBzaG91bGQgYmUgZmluZS4NCg0KPiANCj4g S29uc3RhbnRpbg0KPiANCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBMdWthc3oNCj4gPg0KPiA+IE9u IDE2LjA0LjIwMjAgMTQ6MjgsIEx1a2FzIEJhcnRvc2lrIFtDXSB3cm90ZToNCj4gPiA+IEhpIEtv bnN0YW50aW4sDQo+ID4gPg0KPiA+ID4gUGxlYXNlIHNlZSBteSBhbnN3ZXIgYmVsb3cuDQo+ID4g Pg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gTHVrYXN6DQo+ID4gPg0KPiA+ID4gT24gMTYuMDQuMjAy MCAwMTo0NywgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToNCj4gPiA+PiBFeHRlcm5hbCBFbWFp bA0KPiA+ID4+DQo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4+IC0tLQ0KPiA+ID4+DQo+ID4gPj4N Cj4gPiA+PiBIaSBMdWthc3osDQo+ID4gPj4NCj4gPiA+Pj4gSGkgS29uc3RhbnRpbiwNCj4gPiA+ Pj4NCj4gPiA+Pj4gSW4gdGhpcyBwYXRjaCBJIG1vdmVkIHRoZSBzYV9pbml0KCkgYmVmb3JlIHJ0 ZV9ldGhfZGV2X3N0YXJ0KCkgaW4NCj4gPiA+Pj4gb3JkZXIgdG8gYXZvaWQgZHJvcHBpbmcgb2Yg SVBzZWMgcGt0cyB3aGVuIGEgdHJhZmZpYyBmbG93cyBhbmQgdGhlIGlwc2VjLQ0KPiBzZWNndyBh cHBsaWNhdGlvbiBpcyBzdGFydGVkLg0KPiA+ID4+Pg0KPiA+ID4+PiBIb3dldmVyIEkgcmVtZW1i ZXIgdGhhdCBkdXJpbmcgcmV2aWV3IG9mIGV2ZW50IG1vZGUgcGF0Y2hlcyB5b3UNCj4gPiA+Pj4g bWVudGlvbmVkIHRoYXQgbW92aW5nIHNhX2luaXQoKSBiZWZvcmUgcnRlX2V0aF9kZXZfc3RhcnQo KSBpcyBhbg0KPiA+ID4+PiBpc3N1ZSBmb3Igb25lIG9mIHRoZSBJbnRlbCBkcml2ZXJzLg0KPiA+ ID4+DQo+ID4gPj4gWWVzLCBJIHRoaW5rIHNvLg0KPiA+ID4+IGh0dHBzOi8vdXJsZGVmZW5zZS5w cm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwLTNBX19tYWlscy5kcGRrLm9yZ18NCj4gPiA+PiBh cmNoaXZlc19kZXZfMjAxOS0NCj4gPg0KPiAyRERlY2VtYmVyXzE1MzkwOC5odG1sJmQ9RHdJR2FR JmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPVNjaFINCj4gSGhFN0dMQw0KPiA+IGpFWTRpMmEx YnlqQ19GcFdnUkx0cTQtDQo+ID4ga0x2S3AzXzg0Jm09dzN4aDk0T3g0eEloYWJmRS0NCj4gbkQy VmJFV2JoMkpUbWlzY1ZNYjZwSlpjWW8mcz05ckR0UlBHSzJRQkQNCj4gPiBBY1k4VlFmMEhRelhJ TnRRenVjd0l4VTdEQjJORDVzJmU9DQo+ID4gPj4gTW92aW5nIHRoYXQgcGllY2Ugb2YgY29kZSAo ZGV2X3N0YXJ0KSBhZnRlciBzYV9pbml0KCkgYnJlYWtzIGl4Z2JlIGlubGluZS0NCj4gY3J5cHRv IHN1cHBvcnQuDQo+ID4gPj4gQXMgSSB1bmRlcnN0YW5kLCBiZWNhdXNlIGNvbmZpZ3VyZWQgaXBz ZWMgZmxvd3MgZG9uJ3QgcGVyc2lzdCBkZXZfc3RhcnQoKS4NCj4gPiA+PiBBdCBsZWFzdCBmb3Ig aXhnYmUgUE1ELg0KPiA+ID4+IEFueSByZWFzb24gd2h5IHRvIG1vdmUgdGhhdCBjb2RlIGF0IGFs bD8NCj4gPiA+Pg0KPiA+ID4NCj4gPiA+IFtMdWthc3pdIFdlJ3JlIG9ic2VydmluZyBpc3N1ZSBp biBpbmxpbmUgbW9kZS4gV2hlbiB0cmFmZmljIGZsb3dzDQo+ID4gPiBhbmQgaXBzZWMtc2VjZ3cg YXBwbGljYXRpb24gaXMgc3RhcnRlZCB0aGVuIGZvciBzaG9ydCBwZXJpb2Qgb2YgdGltZQ0KPiA+ ID4gaW5saW5lIGlzIG5vdCBhcHBsaWVkIGJ5IEhXIGFuZCBJUHNlYyBwYWNrZXRzIHJlYWNoIHRo ZSBhcHBsaWNhdGlvbi4NCj4gPiA+IFRoaXMgaXMgYmVjYXVzZQ0KPiA+ID4gc2FfaW5pdCgpICh3 aGljaCBjcmVhdGVzIHNlY3VyaXR5IGFzc29jaWF0aW9ucyBTQXMgZm9yIEhXKSBpcyBleGVjdXRl ZCBhZnRlcg0KPiBydGVfZXRoX2Rldl9zdGFydCgpLg0KPiA+ID4gVGhhdCdzIHRoZSByZWFzb24g SSBtb3ZlZCB0aGUgY29kZS4gQW5kIHRoYXQgbW92ZW1lbnQgZml4ZXMgdGhlDQo+ID4gPiBpc3N1 ZSBiZWNhdXNlIG5vdyBTQXMgYXJlIGFscmVhZHkgY3JlYXRlZCB3aGVuIGV0aCBwb3J0cyBhcmUg c3RhcnRlZC4NCj4gPiA+DQo+ID4gPiBXb3VsZCBpdCBiZSBwb3NzaWJsZSB0byBmaXggdGhlIGl4 Z2JlIHNvIHRoYXQgU0FzIHdvdWxkIHN1cnZpdmUNCj4gcnRlX2V0aF9kZXZfc3RhcnQoKSA/DQo+ ID4gPiBEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgaWRlYSBob3cgd2UgY291bGQgY292ZXIgYm90aCBj YXNlcyA/DQo+ID4gPg0KPiA+ID4+ICA+IElzIHRoaXMgc3RpbGwgdGhlIGNhc2UgPw0KPiA+ID4+ DQo+ID4gPj4gQUZBSUssIHllcy4NCj4gPiA+PiBUaGFua3MgZm9yIGJyaW5naW5nIGl0IHRvIGF0 dGVudGlvbi4NCj4gPiA+PiBLb25zdGFudGluDQo+ID4gPj4NCj4gPiA+Pg0KPiA+ID4+Pg0KPiA+ ID4+PiBUaGFua3MsDQo+ID4gPj4+IEx1a2Fzeg0KPiA+ID4+Pg0KPiA+ID4+PiBPbiAwOC4wNC4y MDIwIDEzOjMyLCBMdWthc3ogQmFydG9zaWsgd3JvdGU6DQo+ID4gPj4+PiBJbiBpbmxpbmUgZXZl bnQgbW9kZSB3aGVuIHRyYWZmaWMgZmxvd3MgYW5kIHRoZSBpcHNlYy1zZWNndyBhcHANCj4gPiA+ Pj4+IGlzIHN0YXJ0ZWQgdGhlbiBmb3Igc2hvcnQgcGVyaW9kIG9mIHRpbWUgSVBzZWMgcGFja2V0 cyBhcnJpdmUgYXQNCj4gPiA+Pj4+IGFwcGxpY2F0aW9uIHdpdGhvdXQgYmVpbmcgZGVjcnlwdGVk IGFuZCBhcmUgZHJvcHBlZCBieSB0aGUNCj4gPiA+Pj4+IGFwcGxpY2F0aW9uLiBUaGlzIGhhcHBl bnMgYmVjYXVzZSBldGggcG9ydHMgYXJlIHN0YXJ0ZWQgYmVmb3JlDQo+ID4gPj4+PiBjcmVhdGlv biBvZiBpbmxpbmUgc2Vzc2lvbnMgYW5kIElQc2VjIGZsb3dzLiBUaGlzIGZpeCByZWFycmFuZ2Vz DQo+ID4gPj4+PiB0aGUgY29kZSBpbiBzdWNoIGEgd2F5IHRoYXQgZXRoIHBvcnRzIGFyZSBhbHdh eXMgc3RhcnRlZCBhZnRlcg0KPiA+ID4+Pj4gY3JlYXRpb24gb2YgaW5saW5lIHNlc3Npb25zIGFu ZCBJUHNlYyBmbG93cy4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBDaGFuZ2UtSWQ6IElmZGRjNDQ2MDgy ZmIyODk3ZjgxNTU5NTE3ZjkwZTFlZTYwM2UxM2YzDQo+ID4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBM dWthc3ogQmFydG9zaWsgPGxiYXJ0b3Npa0BtYXJ2ZWxsLmNvbT4NCj4gPiA+Pj4+IC0tLQ0KPiA+ ID4+Pj4gIGV4YW1wbGVzL2lwc2VjLXNlY2d3L2V2ZW50X2hlbHBlci5jIHwgMjYNCj4gPiA+Pj4+ IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy1z ZWNndy5jICB8DQo+ID4gPj4+PiAyNiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiA+ID4+ Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pDQo+ ID4gPj4+Pg0KPiA+ID4+Pj4gZGlmZiAtLWdpdCBhL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2V2ZW50 X2hlbHBlci5jDQo+ID4gPj4+PiBiL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2V2ZW50X2hlbHBlci5j DQo+ID4gPj4+PiBpbmRleCAwNzZmMWYyLi5kYTg2MWU0IDEwMDY0NA0KPiA+ID4+Pj4gLS0tIGEv ZXhhbXBsZXMvaXBzZWMtc2VjZ3cvZXZlbnRfaGVscGVyLmMNCj4gPiA+Pj4+ICsrKyBiL2V4YW1w bGVzL2lwc2VjLXNlY2d3L2V2ZW50X2hlbHBlci5jDQo+ID4gPj4+PiBAQCAtMTUyNiw3ICsxNTI2 LDYgQEAgaW50MzJfdA0KPiA+ID4+Pj4gIGVoX2RldnNfaW5pdChzdHJ1Y3QgZWhfY29uZiAqY29u ZikgIHsNCj4gPiA+Pj4+ICAJc3RydWN0IGV2ZW50bW9kZV9jb25mICplbV9jb25mOw0KPiA+ID4+ Pj4gLQl1aW50MTZfdCBwb3J0X2lkOw0KPiA+ID4+Pj4gIAlpbnQgcmV0Ow0KPiA+ID4+Pj4NCj4g PiA+Pj4+ICAJaWYgKGNvbmYgPT0gTlVMTCkgew0KPiA+ID4+Pj4gQEAgLTE1NTgsMTYgKzE1NTcs NiBAQCBlaF9kZXZzX2luaXQoc3RydWN0IGVoX2NvbmYgKmNvbmYpDQo+ID4gPj4+PiAgCS8qIERp c3BsYXkgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiAqLw0KPiA+ID4+Pj4gIAllaF9kaXNwbGF5 X2NvbmYoY29uZik7DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gLQkvKiBTdG9wIGV0aCBkZXZpY2VzIGJl Zm9yZSBzZXR0aW5nIHVwIGFkYXB0ZXIgKi8NCj4gPiA+Pj4+IC0JUlRFX0VUSF9GT1JFQUNIX0RF Vihwb3J0X2lkKSB7DQo+ID4gPj4+PiAtDQo+ID4gPj4+PiAtCQkvKiBVc2Ugb25seSB0aGUgcG9y dHMgZW5hYmxlZCAqLw0KPiA+ID4+Pj4gLQkJaWYgKChjb25mLT5ldGhfcG9ydG1hc2sgJiAoMSA8 PCBwb3J0X2lkKSkgPT0gMCkNCj4gPiA+Pj4+IC0JCQljb250aW51ZTsNCj4gPiA+Pj4+IC0NCj4g PiA+Pj4+IC0JCXJ0ZV9ldGhfZGV2X3N0b3AocG9ydF9pZCk7DQo+ID4gPj4+PiAtCX0NCj4gPiA+ Pj4+IC0NCj4gPiA+Pj4+ICAJLyogU2V0dXAgZXZlbnRkZXYgKi8NCj4gPiA+Pj4+ICAJcmV0ID0g ZWhfaW5pdGlhbGl6ZV9ldmVudGRldihlbV9jb25mKTsNCj4gPiA+Pj4+ICAJaWYgKHJldCA8IDAp IHsNCj4gPiA+Pj4+IEBAIC0xNTg5LDIxICsxNTc4LDYgQEAgZWhfZGV2c19pbml0KHN0cnVjdCBl aF9jb25mICpjb25mKQ0KPiA+ID4+Pj4gIAkJcmV0dXJuIHJldDsNCj4gPiA+Pj4+ICAJfQ0KPiA+ ID4+Pj4NCj4gPiA+Pj4+IC0JLyogU3RhcnQgZXRoIGRldmljZXMgYWZ0ZXIgc2V0dGluZyB1cCBh ZGFwdGVyICovDQo+ID4gPj4+PiAtCVJURV9FVEhfRk9SRUFDSF9ERVYocG9ydF9pZCkgew0KPiA+ ID4+Pj4gLQ0KPiA+ID4+Pj4gLQkJLyogVXNlIG9ubHkgdGhlIHBvcnRzIGVuYWJsZWQgKi8NCj4g PiA+Pj4+IC0JCWlmICgoY29uZi0+ZXRoX3BvcnRtYXNrICYgKDEgPDwgcG9ydF9pZCkpID09IDAp DQo+ID4gPj4+PiAtCQkJY29udGludWU7DQo+ID4gPj4+PiAtDQo+ID4gPj4+PiAtCQlyZXQgPSBy dGVfZXRoX2Rldl9zdGFydChwb3J0X2lkKTsNCj4gPiA+Pj4+IC0JCWlmIChyZXQgPCAwKSB7DQo+ ID4gPj4+PiAtCQkJRUhfTE9HX0VSUigiRmFpbGVkIHRvIHN0YXJ0IGV0aCBkZXYgJWQsICVkIiwN Cj4gPiA+Pj4+IC0JCQkJICAgcG9ydF9pZCwgcmV0KTsNCj4gPiA+Pj4+IC0JCQlyZXR1cm4gcmV0 Ow0KPiA+ID4+Pj4gLQkJfQ0KPiA+ID4+Pj4gLQl9DQo+ID4gPj4+PiAtDQo+ID4gPj4+PiAgCXJl dHVybiAwOw0KPiA+ID4+Pj4gIH0NCj4gPiA+Pj4+DQo+ID4gPj4+PiBkaWZmIC0tZ2l0IGEvZXhh bXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiA+ID4+Pj4gYi9leGFtcGxlcy9pcHNl Yy1zZWNndy9pcHNlYy1zZWNndy5jDQo+ID4gPj4+PiBpbmRleCA1ZmRlNGY3Li5lMDNiZDg5IDEw MDY0NA0KPiA+ID4+Pj4gLS0tIGEvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0K PiA+ID4+Pj4gKysrIGIvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiA+ID4+ Pj4gQEAgLTI4MjksNiArMjgyOSwxOSBAQCBtYWluKGludDMyX3QgYXJnYywgY2hhciAqKmFyZ3Yp DQo+ID4gPj4+PiAgCWlmIChyZXQgPCAwKQ0KPiA+ID4+Pj4gIAkJcnRlX2V4aXQoRVhJVF9GQUlM VVJFLCAiZWhfZGV2c19pbml0IGZhaWxlZCwgZXJyPSVkXG4iLCByZXQpOw0KPiA+ID4+Pj4NCj4g PiA+Pj4+ICsJLyogUmVwbGljYXRlIGVhY2ggY29udGV4dCBwZXIgc29ja2V0ICovDQo+ID4gPj4+ PiArCWZvciAoaSA9IDA7IGkgPCBOQl9TT0NLRVRTICYmIGkgPCBydGVfc29ja2V0X2NvdW50KCk7 IGkrKykgew0KPiA+ID4+Pj4gKwkJc29ja2V0X2lkID0gcnRlX3NvY2tldF9pZF9ieV9pZHgoaSk7 DQo+ID4gPj4+PiArCQlpZiAoKHNvY2tldF9jdHhbc29ja2V0X2lkXS5tYnVmX3Bvb2wgIT0gTlVM TCkgJiYNCj4gPiA+Pj4+ICsJCQkoc29ja2V0X2N0eFtzb2NrZXRfaWRdLnNhX2luID09IE5VTEwp ICYmDQo+ID4gPj4+PiArCQkJKHNvY2tldF9jdHhbc29ja2V0X2lkXS5zYV9vdXQgPT0gTlVMTCkp IHsNCj4gPiA+Pj4+ICsJCQlzYV9pbml0KCZzb2NrZXRfY3R4W3NvY2tldF9pZF0sIHNvY2tldF9p ZCk7DQo+ID4gPj4+PiArCQkJc3A0X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwgc29ja2V0 X2lkKTsNCj4gPiA+Pj4+ICsJCQlzcDZfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRdLCBzb2Nr ZXRfaWQpOw0KPiA+ID4+Pj4gKwkJCXJ0X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwgc29j a2V0X2lkKTsNCj4gPiA+Pj4+ICsJCX0NCj4gPiA+Pj4+ICsJfQ0KPiA+ID4+Pj4gKw0KPiA+ID4+ Pj4gIAkvKiBzdGFydCBwb3J0cyAqLw0KPiA+ID4+Pj4gIAlSVEVfRVRIX0ZPUkVBQ0hfREVWKHBv cnRpZCkgew0KPiA+ID4+Pj4gIAkJaWYgKChlbmFibGVkX3BvcnRfbWFzayAmICgxIDw8IHBvcnRp ZCkpID09IDApIEBAIC0yODY2LDE5DQo+ID4gPj4+PiArMjg3OSw2IEBAIG1haW4oaW50MzJfdCBh cmdjLCBjaGFyICoqYXJndikNCj4gPiA+Pj4+ICAJCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJm YWlsZWQgYXQgcmVhc3NlbWJsZSBpbml0Iik7DQo+ID4gPj4+PiAgCX0NCj4gPiA+Pj4+DQo+ID4g Pj4+PiAtCS8qIFJlcGxpY2F0ZSBlYWNoIGNvbnRleHQgcGVyIHNvY2tldCAqLw0KPiA+ID4+Pj4g LQlmb3IgKGkgPSAwOyBpIDwgTkJfU09DS0VUUyAmJiBpIDwgcnRlX3NvY2tldF9jb3VudCgpOyBp KyspIHsNCj4gPiA+Pj4+IC0JCXNvY2tldF9pZCA9IHJ0ZV9zb2NrZXRfaWRfYnlfaWR4KGkpOw0K PiA+ID4+Pj4gLQkJaWYgKChzb2NrZXRfY3R4W3NvY2tldF9pZF0ubWJ1Zl9wb29sICE9IE5VTEwp ICYmDQo+ID4gPj4+PiAtCQkJKHNvY2tldF9jdHhbc29ja2V0X2lkXS5zYV9pbiA9PSBOVUxMKSAm Jg0KPiA+ID4+Pj4gLQkJCShzb2NrZXRfY3R4W3NvY2tldF9pZF0uc2Ffb3V0ID09IE5VTEwpKSB7 DQo+ID4gPj4+PiAtCQkJc2FfaW5pdCgmc29ja2V0X2N0eFtzb2NrZXRfaWRdLCBzb2NrZXRfaWQp Ow0KPiA+ID4+Pj4gLQkJCXNwNF9pbml0KCZzb2NrZXRfY3R4W3NvY2tldF9pZF0sIHNvY2tldF9p ZCk7DQo+ID4gPj4+PiAtCQkJc3A2X2luaXQoJnNvY2tldF9jdHhbc29ja2V0X2lkXSwgc29ja2V0 X2lkKTsNCj4gPiA+Pj4+IC0JCQlydF9pbml0KCZzb2NrZXRfY3R4W3NvY2tldF9pZF0sIHNvY2tl dF9pZCk7DQo+ID4gPj4+PiAtCQl9DQo+ID4gPj4+PiAtCX0NCj4gPiA+Pj4+IC0NCj4gPiA+Pj4+ ICAJY2hlY2tfYWxsX3BvcnRzX2xpbmtfc3RhdHVzKGVuYWJsZWRfcG9ydF9tYXNrKTsNCj4gPiA+ Pj4+DQo+ID4gPj4+PiAgCS8qIGxhdW5jaCBwZXItbGNvcmUgaW5pdCBvbiBldmVyeSBsY29yZSAq Lw0KPiA+ID4+PiA+DQo=