Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp4097245ybl; Tue, 20 Aug 2019 07:01:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqzPKJ6K0sYY3UPp61f1AsG/1MjO8IdtAq3Zr8lTB/xCbcIW2S2zitUGjiIzsirx80ELcMXD X-Received: by 2002:a17:90a:9f4b:: with SMTP id q11mr106324pjv.105.1566309669085; Tue, 20 Aug 2019 07:01:09 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1566309669; cv=pass; d=google.com; s=arc-20160816; b=g6x0eTOGoQHB9NTaBYBibRhLhEEa+JORFqC7cqsZ9oOm7GkSfiTcXbG28RikHXLSzZ N2GSxDEXT8n/fsl7U5JcIoi6d3FQeAjCjilX/F/+5V5admsrAhcB1nFbv8165qdB8vg0 HujbyL3J9U3wLDF7LWfFFqzoJSkmIvLKH1sWpCfTsGusZDZ4B+Wa8PXqGxl9s7aNshUx 86BVqEytKZKLI8/dJXEcECJMbSoj3KWUExM3tWBtmZGyixaoqzfykzsjoghIhXB35IQT Rg/++f6nMdjqCZILQxbsuMAUaD1mcCnf2vuUHQDSE+sBu9ebQn7wcqEUajarMCz3H1kk kWmg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:reply-to:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=S7iVMnCnAqX4A2jimTZ9nN9ksEdV86gazooCG51TFA4=; b=kbbUU7AXSSxO6hHXGjM/tNSxXv9oh+DU7QWSoLVu8B5FJ9/U1mhLUmrmrJeZ1Zm346 mtcWe7cgoRWI4AvHz1sV3skA6T4Pu+djhAJmPNbW7flAV9ylwyHRFK1lRx6HyP1lT6x6 BQ5Dm18RrnO32CPb1EmthZ5ZGdZLUDb5N6kpBZ7+64K4cL4tiwiCaRmsXt8ZIi32NWzQ tQIWG8lAuJ2WFxcLVZZVpqdSKvMnRnVWblDgjx+ND/cr4juSQyDhEoxTB9keplO63BKY SFZcNBma34EVmSpVw7lIFHfrPvYrvhHK2eHfguFqEVsZrDEuwtf28yEAb7XoF6K6EbWH zGqQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@SILICOMLTD.onmicrosoft.com header.s=selector2-SILICOMLTD-onmicrosoft-com header.b=XpOwzay1; arc=pass (i=1 spf=pass spfdomain=silicom-usa.com dkim=pass dkdomain=silicom-usa.com dmarc=pass fromdomain=silicom-usa.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w2si12107825pgs.463.2019.08.20.07.00.53; Tue, 20 Aug 2019 07:01:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@SILICOMLTD.onmicrosoft.com header.s=selector2-SILICOMLTD-onmicrosoft-com header.b=XpOwzay1; arc=pass (i=1 spf=pass spfdomain=silicom-usa.com dkim=pass dkdomain=silicom-usa.com dmarc=pass fromdomain=silicom-usa.com); spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730239AbfHTOAE (ORCPT + 99 others); Tue, 20 Aug 2019 10:00:04 -0400 Received: from mail-eopbgr60091.outbound.protection.outlook.com ([40.107.6.91]:25734 "EHLO EUR04-DB3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729965AbfHTOAD (ORCPT ); Tue, 20 Aug 2019 10:00:03 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SMYCGpA4l3mvvl1Ffkcqz4COsep1Vrid383ovmrNKrH0zpHcxl3ot9tusW7+xu/xa3RiukbTL578/nQOV26zRUH1rvJooKovRzf9iGs0qLVBh0K5LT14/v3ZlsJmHCIab+jY7srMTEwv1XNePft//gOi9bTzwItlSGIdKnHlamJa7yfCyno8lK/K/vzknoYU3+9FnNlvM/lvQy4tjaHsVMQdPYtOOHwF7OCNDx2HhNVQN4cBKFQ8YbUJ/Xf4TtHjiAY20I1oCakJNPMvu63FisvBqmREUtjqtb47amLytktX7VtiiU9tOf3A72LLQHaemXJY8J6oJf5MZiZgdd14Fw== 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=S7iVMnCnAqX4A2jimTZ9nN9ksEdV86gazooCG51TFA4=; b=GRuq7opksupu1HICwbuwV/iMEMZhY62v1UhA4DaOSxr07DDINauwVc6YoO75UpYFGl6UO1Vvf2BNopwAxEm1GTq4KHriWeeZmEDERzBCIRdoMWidvFPkLbmviM0UVbnTQj3dyveoA/v4ROX33fNWdoS63M/a5h94uoMBgCSmX+HlbJY8X5jKz1sYE9Rd0ttlfgkWSl07pyTh9nsHVSchmXI4eJS2Lpm+NYktbIWZyscjqUG6KoiZmRMhkITZIH4VOhFxj+OVdXU5GWuNC+5QIaVCK1EjTwbPiiiHiuwT1auoR+MguyRdZJ4h7CRO6/StbqLeGKCz7yApBoZ9+A4pcw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silicom-usa.com; dmarc=pass action=none header.from=silicom-usa.com; dkim=pass header.d=silicom-usa.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=SILICOMLTD.onmicrosoft.com; s=selector2-SILICOMLTD-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S7iVMnCnAqX4A2jimTZ9nN9ksEdV86gazooCG51TFA4=; b=XpOwzay1iqFN9j906I+WqCfO1gHolKeLTF73uggLmV3g9hBdBnM0Vlz5jV/Jadi/vYoyKnx+AkMi9u4vSyKB571v66mzCb/1P0NJou3Ax+ShoPe1y4AVZRz/X9n1B72LFLkc5L2qG8ds9z1VPeRGhOwOE37O1qUmrEw9y9c1P+c= Received: from VI1PR0402MB2717.eurprd04.prod.outlook.com (10.175.22.139) by VI1SPR00MB01.eurprd04.prod.outlook.com (10.173.78.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Tue, 20 Aug 2019 13:59:54 +0000 Received: from VI1PR0402MB2717.eurprd04.prod.outlook.com ([fe80::cd07:8767:22f6:28f5]) by VI1PR0402MB2717.eurprd04.prod.outlook.com ([fe80::cd07:8767:22f6:28f5%12]) with mapi id 15.20.2178.018; Tue, 20 Aug 2019 13:59:54 +0000 From: Stephen Douthit To: Dan Williams CC: Christoph Hellwig , Jens Axboe , "linux-ide@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] ata: ahci: Lookup PCS register offset based on PCI device ID Thread-Topic: [PATCH] ata: ahci: Lookup PCS register offset based on PCI device ID Thread-Index: AQHVTidIVfq9W1HbR0i2bNtry39Joab0Aj2AgAN9ywCAADnOgIAAFmOAgAAEuYCAABfagIAAyLIAgAD1I4CAAROyAIAAGoqAgAAMi4CAAAaeAIAHzoiAgACkDYCAAMQegA== Date: Tue, 20 Aug 2019 13:59:53 +0000 Message-ID: References: <20190808202415.25166-1-stephend@silicom-usa.com> <20190810074317.GA18582@infradead.org> <051cb164-19d5-9241-2941-0d866e565339@silicom-usa.com> <20190812180613.GA18377@infradead.org> <20190813072954.GA23417@infradead.org> <40ef7e71-2c87-9853-fcbd-1510b97647f0@silicom-usa.com> In-Reply-To: Reply-To: Stephen Douthit Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BN6PR02CA0075.namprd02.prod.outlook.com (2603:10b6:405:60::16) To VI1PR0402MB2717.eurprd04.prod.outlook.com (2603:10a6:800:b4::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=stephend@silicom-usa.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [96.82.2.57] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 68558828-0c97-46ad-2cc9-08d72576acee x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600148)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:VI1SPR00MB01; x-ms-traffictypediagnostic: VI1SPR00MB01: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 013568035E x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(136003)(376002)(39850400004)(396003)(346002)(189003)(199004)(316002)(86362001)(36756003)(66946007)(53936002)(386003)(11346002)(446003)(478600001)(6486002)(5660300002)(486006)(186003)(6506007)(53546011)(8936002)(81156014)(66446008)(64756008)(66556008)(66476007)(81166006)(14454004)(4326008)(102836004)(26005)(25786009)(31686004)(6246003)(14444005)(6436002)(8676002)(476003)(2616005)(30864003)(229853002)(31696002)(54906003)(6512007)(2906002)(66066001)(43066004)(52116002)(3450700001)(256004)(53946003)(71190400001)(71200400001)(3846002)(6116002)(76176011)(305945005)(7736002)(99286004)(6916009)(3714002)(579004);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1SPR00MB01;H:VI1PR0402MB2717.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: silicom-usa.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: t0zbzpI8rNa8wWNVobYLGlg3G2PnwgPIrNwYXvE/6bOfuSVDR9hfHfCQBZKvVduh36WeFBQBdEpOfaPr0Manu26cruCKl0+rwVvnih/JnX8CMrrMe3LGwZRfq0/Gmp4R1AddEuazY2ME7xzMoeWVEJU4sTagrpgXAT0Mw7YRK5Okvck0jbeK5ycEtFYElMGqqvdRdouwi/WdQiIde5YIP2dP1sxUMy3mfoYQvCTkUwecVTqxqBwUB3GEZn7Z3psbClqDHp5gohbUEoflbufpMHcybYRhcp5blIZO/ZKOqQynBOW96mDDDaWtJJtp5xM4BCdag7N+M3FC0Qd3uyWPZVb6KuPW/GPimHM71jNUxwfCk+Q2lrUcP9MjVfHGHCB2Zhwz2t8cfsLaZfNDSndfHBAVw71KpSIc+5MJoSpEV5U= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: silicom-usa.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68558828-0c97-46ad-2cc9-08d72576acee X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2019 13:59:53.7491 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c9e326d8-ce47-4930-8612-cc99d3c87ad1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QO1p5AZLHqStilWpnziFBBSH080GKDzB+Ojyz4SwmYuO3C4qhz5KH07mIxAtu+pZ/3uo0YKgoiDwsMCfb31ajX6P8dF1DjJ0ouHW7Br+7uc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1SPR00MB01 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gOC8xOS8xOSAxMDoxNyBQTSwgRGFuIFdpbGxpYW1zIHdyb3RlOg0KPiBPbiBNb24sIEF1ZyAx OSwgMjAxOSBhdCA5OjMwIEFNIFN0ZXBoZW4gRG91dGhpdA0KPiA8c3RlcGhlbmRAc2lsaWNvbS11 c2EuY29tPiB3cm90ZToNCj4+DQo+PiBPbiA4LzE0LzE5IDE6MTcgUE0sIERhbiBXaWxsaWFtcyB3 cm90ZToNCj4+Pj4gQ2FuIHlvdSBnZXQgc29tZW9uZSBmcm9tIHRoZSBjb250cm9sbGVyIGRlc2ln biB0ZWFtIHRvIGdpdmUgdXMgYSBjbGVhcg0KPj4+PiBhbnN3ZXIgb24gYSByZXZpc2lvbiB3aGVy ZSB0aGlzIFBDUyBjaGFuZ2UgaGFwcGVuZWQ/DQo+Pj4+DQo+Pj4+IEl0IHdvdWxkIGJlIG5pY2Ug aWYgd2UgY291bGQganVzdCBjaGVjayBQQ0lfUkVWSVNJT05fSUQgb3Igc29tZXRoaW5nDQo+Pj4+ IHNpbWlsYXIuDQo+Pj4NCj4+PiBJIGRvbid0IHRoaW5rIHN1Y2ggYSByZWxpYWJsZSBhc3NvY2lh dGlvbiB3aXRoIHJldi1pZCBleGlzdHMsIHRoZT4gaW50ZW50IHdhcyB0aGF0IHRoZSBPUyBuZWVk IG5ldmVyIGNvbnNpZGVyIFBDUy4NCj4+DQo+PiBDYW4geW91IHBsZWFzZSBhc2sgdG8gY29uZmly bT8gIEl0IHdvdWxkIGJlIGEgbXVjaCBzaW1wbGVyIGNoZWNrIGlmIGl0DQo+PiBpcyBwb3NzaWJs ZS4NCj4gDQo+IE5vLiBFdmVuIGlmIGl0IHdlcmUgYWNjaWRlbnRhbGx5IHRoZSBjYXNlIHRvZGF5 IHRoZSBMaW51eCBkcml2ZXIgY2FuJ3QNCj4gdHJ1c3QgdGhhdCByZXYtaWQgYWNyb3NzIHRoZSBk aWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIHdpbGwgYmUNCj4gbWFpbnRhaW5lZCBmb3IgdGhpcyBw dXJwb3NlIGJlY2F1c2UgdGhlIE9TIGRyaXZlciBpcyBub3QgbWVhbnQgdG8NCj4gdG91Y2ggdGhp cyByZWdpc3Rlci4gSnVzdCBsb29rIGF0IGEgc2FtcGxpbmcgb2YgcmV2LWlkIGZyb20gYSBmZXcN Cj4gZGlmZmVyZW50IHN5c3RlbXMsIGFuZCBub3RlIHRoYXQgcmV2LWlkIGFwcGxpZXMgdG8gdGhl IGNoaXBzZXQgbm90DQo+IGp1c3QgdGhlIGFoY2kgY29udHJvbGxlci4NCj4gDQo+ICAgICAgcmV2 IDA4DQo+ICAgICAgcmV2IDExDQo+ICAgICAgcmV2IDMxDQo+IA0KPiAuLi53aGljaCBvbmUgb2Yg dGhvc2UgaXMgRGVudmVydG9uPw0KPiANCj4gVGhlIGludGVudCBpcyB0aGF0IFBDUyBpcyBhIHBs YXRmb3JtLWZpcm13YXJlIGNvbmNlcm4gYW5kIHRoYXQgYW55DQo+IHNvZnR3YXJlIHRoYXQgY2Fy ZXMgYWJvdXQgUENTIGlzIGNhcmluZyBhYm91dCBpdCBieSBleHBsaWNpdA0KPiBpZGVudGlmaWNh dGlvbi4NCg0KVW5kZXJzdG9vZC4NCg0KTXkgaG9wZSB3YXMgdGhhdCB0aGVyZSB3YXMgYSBndWFy YW50ZWVkIHJlbGF0aW9uLCBidXQgbm8gc3VjaCBsdWNrLg0KDQo+Pj4gVGhlIHdheSBMaW51eCBp cyB1c2luZw0KPj4+IGl0IGlzIGFscmVhZHkgYnJva2VuIHdpdGggdGhlIGFzc3VtcHRpb24gdGhh dCBpdCBpcyBwZXJmb3JtZWQgYWZ0ZXINCj4+PiBldmVyeSBIT1NUX0NUTCBiYXNlZCByZXNldCB3 aGljaCBvbmx5IHJlc2V0cyBtbWlvIHNwYWNlLiBBdCBtb3N0IGl0DQo+Pj4gc2hvdWxkIG9ubHkg YmUgcmVxdWlyZWQgYXQgaW5pdGlhbCBQQ0kgZGlzY292ZXJ5IGlmZiBwbGF0Zm9ybSBmaXJtd2Fy ZQ0KPj4+IGZhaWxlZCB0byBydW4uDQo+Pg0KPj4gVGhpcyBpcyBhIHNlcGFyYXRlIGlzc3VlLg0K Pj4NCj4+IEl0J3MgYnJva2VuIGluIHRoZSBzZW5zZSB0aGF0IHRoZSBjb2RlIGlzIGNhbGxlZCBt b3JlIG9mdGVuIHRoYXQgaXQNCj4+IG5lZWRzIHRvIGJlLCBidXQgcmVzZXQgaXNuJ3QgYSBob3Qg cGF0aCwgYW5kIHRoZXJlIGFyZSBubyBzaWRlIGVmZmVjdHMNCj4+IHRvIGRvaW5nIHRoaXMgbXVs dGlwbGUgdGltZXMgdGhhdCBJIGNhbiBzZWUuDQo+IA0KPiBUaGUgcHJvYmxlbSBpcyB0aGF0IHRo ZXJlIGlzIG5vIGtub3duIG5lZWQgdG8gZG8gaXQgZm9yIERlbnZlcnRvbiwgYW5kDQo+IGxpa2Vs eSBtb3JlIHBsYXRmb3JtIGltcGxlbWVudGF0aW9ucy4NCj4gDQo+PiAgIEFuZCBhcyB5b3UgcG9p bnQgb3V0LCBubw0KPj4gYnVnIHJlcG9ydHMsIHNvIHByZXR0eSBiZW5pZ24gYWxsIHRoaW5ncyBj b25zaWRlcmVkLg0KPj4NCj4+IFdlIGNvdWxkIG1vdmUgdGhlIFBDUyBxdWlyayBjb2RlIHRvIGFo Y2lfaW5pdF9vbmUoKSB0byBhZGRyZXNzIHRoaXMNCj4+IGNvbmNlcm4gb25jZSB0aGVyZSdzIGFn cmVlbWVudCBvbiB3aGF0IHRoZSBjcml0ZXJpYSBpcyB0byBydW4vbm90LXJ1bg0KPj4gdGhpcyBj b2RlLg0KPj4NCj4+PiBUaGVyZSBhcmUgbm8gYnVnIHJlcG9ydHMgd2l0aCB0aGUgY3VycmVudA0K Pj4+IGltcGxlbWVudGF0aW9uIHRoYXQgb25seSBhdHRlbXB0cyB0byBlbmFibGUgYml0cyBiYXNl ZCBvbiBQT1JUU19JTVBMLA0KPj4+IHNvIEkgdGhpbmsgd2UgYXJlIGZpcm1lciBncm91bmQgdHJ5 aW5nIHRvIGRyYXcgYSBsaW5lIHdoZXJlIHRoZSBkcml2ZXINCj4+PiBqdXN0IHN0b3BzIHdvcnJ5 aW5nIGFib3V0IFBDUyByYXRoZXIgdGhhbiB0cnkgdG8gZGV0ZWN0IHRoZSBsYXlvdXQuDQo+Pg0K Pj4gU29tZW9uZSBhdCBJbnRlbCBpcyBnb2luZyB0byBuZWVkIHRvIGRlY2lkZSB3aGVyZS9ob3cg dG8gZHJhdyB0aGlzIGxpbmUuDQo+IA0KPiBUaGlzIGlzIGEgY2FzZSBvZiBMaW51eCB0b3VjaGlu ZyBhICJCSU9TIG9ubHkiIHJlZ2lzdGVyIGFuZCBhc3N1bWluZw0KPiB0aGF0IHRoZSBxdWlyayBp cyB3aWRlbHkgYXBwbGljYWJsZS4gSSB0aGluayBhIHJlYXNvbmFibGUgZml4IGlzIHRvDQo+IGp1 c3Qgd2hpdGVsaXN0IGFsbCB0aGUga25vd24gSW50ZWwgaWRzLCBhcHBseSB0aGUgUENTIGZpeHVw IGFzc3VtaW5nDQo+IHRoZSBsZWdhY3kgY29uZmlndXJhdGlvbiByZWdpc3RlciBsb2NhdGlvbiwg YW5kIHN0b3AgYXBwbHlpbmcgdGhlDQo+IHF1aXJrIGJ5IGRlZmF1bHQuDQo+IA0KPiBIZXJlIGlz IGEgcHJvcG9zZWQgcGF0Y2ggYWxvbmcgdGhlc2UgbGluZXMuIEkgY2FuIHNlbmQgYQ0KPiBub24t d2hpdGVzcGFjZSBkYW1hZ2VkIHZlcnNpb24gaWYgdGhpcyBhcHByb2FjaCBsb29rcyBhY2NlcHRh YmxlOg0KPiANCj4gLS0tDQo+IA0KPiAgRnJvbSBmNDBhN2YyODdjOTdjZmJhNzEzOTNjY2I1OTJi YTUyMWU0M2Q4MDdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KPiBGcm9tOiBEYW4gV2lsbGlh bXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4NCj4gRGF0ZTogTW9uLCAxOSBBdWcgMjAxOSAx MTozMDozNyAtMDcwMA0KPiBTdWJqZWN0OiBbUEFUQ0hdIGxpYmF0YS9haGNpOiBEcm9wIFBDUyBx dWlyayBmb3IgRGVudmVydG9uIGFuZCBiZXlvbmQNCj4gDQo+IFRoZSBMaW51eCBhaGNpIGRyaXZl ciBoYXMgaGlzdG9yaWNhbGx5IGltcGxlbWVudGVkIGEgY29uZmlndXJhdGlvbiBmaXh1cA0KPiBm b3IgcGxhdGZvcm1zIC8gcGxhdGZvcm0tZmlybXdhcmUgdGhhdCBmYWlscyB0byBlbmFibGUgdGhl IHBvcnRzIHByaW9yDQo+IHRvIE9TIGhhbmQtb2ZmIGF0IGJvb3QuIFRoZSBmaXh1cCB3YXMgb3Jp Z2luYWxseSBpbXBsZW1lbnRlZCB3YXkgYmFjaw0KPiBiZWZvcmUgYWhjaSBtb3ZlZCBmcm9tIGRy aXZlcnMvc2NzaS8gdG8gZHJpdmVycy9hdGEvLCBhbmQgd2FzIHVwZGF0ZWQgaW4NCj4gMjAwNyB2 aWEgY29tbWl0IDQ5ZjI5MDkwMzkzNSAiYWhjaTogdXBkYXRlIFBDUyBwcm9ncmFtbWluZyIuIFRo ZSBxdWlyaw0KPiBzZXRzIGEgcG9ydC1lbmFibGUgYml0bWFwIGluIHRoZSBQQ1MgcmVnaXN0ZXIg YXQgb2Zmc2V0IDB4OTIuDQo+IA0KPiBUaGlzIHF1aXJrIGNvdWxkIGJlIGFwcGxpZWQgZ2VuZXJp Y2FsbHkgdXAgdW50aWwgdGhlIGFycml2YWwgb2YgdGhlDQo+IERlbnZlcnRvbiAoRE5WKSBwbGF0 Zm9ybS4gVGhlIEROViBBSENJIGNvbnRyb2xsZXIgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzDQo+IG1v cmUgdGhhbiA2IHBvcnRzIGFuZCBhbG9uZyB3aXRoIHRoYXQgdGhlIFBDUyByZWdpc3RlciBsb2Nh dGlvbiBhbmQNCj4gZm9ybWF0IHdlcmUgdXBkYXRlZCB0byBhbGxvdyBmb3IgbW9yZSBwb3NzaWJs ZSBwb3J0cyBpbiB0aGUgYml0bWFwLiBETlYNCj4gQUhDSSBleHBhbmRzIHRoZSByZWdpc3RlciB0 byAzMi1iaXRzIGFuZCBtb3ZlcyBpdCB0byBvZmZzZXQgMHg5NC4NCj4gDQo+IEFzIGl0IHN0YW5k cyB0aGVyZSBhcmUgbm8ga25vd24gcHJvYmxlbSByZXBvcnRzIHdpdGggZXhpc3RpbmcgTGludXgN Cj4gdHJ5aW5nIHRvIHNldCBiaXRzIGF0IG9mZnNldCAweDkyIHdoaWNoIGluZGljYXRlcyB0aGF0 IHRoZSBxdWlyayBpcyBub3QNCj4gYXBwbGljYWJsZS4gTGlrZWx5IGl0IGlzIG5vdCBhcHBsaWNh YmxlIG9uIGEgd2lkZXIgcmFuZ2Ugb2YgcGxhdGZvcm1zLA0KPiBidXQgaXQgaXMgZGlmZmljdWx0 IHRvIGRpc2Nlcm4gd2hpY2ggcGxhdGZvcm1zIGlmIGFueSBzdGlsbCBkZXBlbmQgb24NCj4gdGhl IHF1aXJrLg0KPiANCj4gUmF0aGVyIHRoYW4gdHJ5IHRvIGZpeCB0aGUgUENTIHF1aXJrIHRvIGNv bnNpZGVyIHRoZSBETlYgcmVnaXN0ZXIgbGF5b3V0DQo+IGluc3RlYWQgcmVxdWlyZSBleHBsaWNp dCBvcHQtaW4uIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIE9TIGRyaXZlcg0KPiBuZWVkIG5v dCB0b3VjaCB0aGlzIHJlZ2lzdGVyLCBhbmQgcGxhdGZvcm1zIGNhbiBiZSBhZGRlZCB0byBhIHdo aXRlbGlzdA0KPiB3aGVuIC8gaWYgcHJvYmxlbWF0aWMgcGxhdGZvcm1zIGFyZSBmb3VuZCBpbiB0 aGUgZnV0dXJlLiBUaGUgbGlzdCBpbg0KPiBhaGNpX2ludGVsX3Bjc19xdWlyaygpIGlzIHBvcHVs YXRlZCB3aXRoIGFsbCB0aGUgY3VycmVudCBleHBsaWNpdA0KPiBkZXZpY2UtaWRzIHdpdGggdGhl IGV4cGVjdGF0aW9uIHRoYXQgY2xhc3MtY29kZSBiYXNlZCBkZXRlY3Rpb24gbmVlZCBub3QNCj4g YXBwbHkgdGhlIHF1aXJrLg0KPiANCj4gUmVwb3J0ZWQtYnk6IFN0ZXBoZW4gRG91dGhpdCA8c3Rl cGhlbmRAc2lsaWNvbS11c2EuY29tPg0KPiBDYzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBpbmZy YWRlYWQub3JnPg0KPiBTaWduZWQtb2ZmLWJ5OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1z QGludGVsLmNvbT4NCj4gLS0tDQo+ICAgZHJpdmVycy9hdGEvYWhjaS5jIHwgMjExICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiAgIDEgZmlsZSBjaGFuZ2Vk LCAxODQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9hdGEvYWhjaS5jIGIvZHJpdmVycy9hdGEvYWhjaS5jDQo+IGluZGV4IGY3NjUyYmFh NjMzNy4uY2ViMzhkMjA1ZTFiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2F0YS9haGNpLmMNCj4g KysrIGIvZHJpdmVycy9hdGEvYWhjaS5jDQo+IEBAIC02MjMsMzAgKzYyMyw2IEBAIHN0YXRpYyB2 b2lkIGFoY2lfcGNpX3NhdmVfaW5pdGlhbF9jb25maWcoc3RydWN0DQo+IHBjaV9kZXYgKnBkZXYs DQo+ICAgICAgICAgIGFoY2lfc2F2ZV9pbml0aWFsX2NvbmZpZygmcGRldi0+ZGV2LCBocHJpdik7 DQo+ICAgfQ0KPiANCj4gLXN0YXRpYyBpbnQgYWhjaV9wY2lfcmVzZXRfY29udHJvbGxlcihzdHJ1 Y3QgYXRhX2hvc3QgKmhvc3QpDQo+IC17DQo+IC0gICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYg PSB0b19wY2lfZGV2KGhvc3QtPmRldik7DQo+IC0gICAgICAgaW50IHJjOw0KPiAtDQo+IC0gICAg ICAgcmMgPSBhaGNpX3Jlc2V0X2NvbnRyb2xsZXIoaG9zdCk7DQo+IC0gICAgICAgaWYgKHJjKQ0K PiAtICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0KPiAtDQo+IC0gICAgICAgaWYgKHBkZXYtPnZl bmRvciA9PSBQQ0lfVkVORE9SX0lEX0lOVEVMKSB7DQo+IC0gICAgICAgICAgICAgICBzdHJ1Y3Qg YWhjaV9ob3N0X3ByaXYgKmhwcml2ID0gaG9zdC0+cHJpdmF0ZV9kYXRhOw0KPiAtICAgICAgICAg ICAgICAgdTE2IHRtcDE2Ow0KPiAtDQo+IC0gICAgICAgICAgICAgICAvKiBjb25maWd1cmUgUENT ICovDQo+IC0gICAgICAgICAgICAgICBwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCAweDkyLCAm dG1wMTYpOw0KPiAtICAgICAgICAgICAgICAgaWYgKCh0bXAxNiAmIGhwcml2LT5wb3J0X21hcCkg IT0gaHByaXYtPnBvcnRfbWFwKSB7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIHRtcDE2IHw9 IGhwcml2LT5wb3J0X21hcDsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgcGNpX3dyaXRlX2Nv bmZpZ193b3JkKHBkZXYsIDB4OTIsIHRtcDE2KTsNCj4gLSAgICAgICAgICAgICAgIH0NCj4gLSAg ICAgICB9DQo+IC0NCj4gLSAgICAgICByZXR1cm4gMDsNCj4gLX0NCj4gLQ0KPiAgIHN0YXRpYyB2 b2lkIGFoY2lfcGNpX2luaXRfY29udHJvbGxlcihzdHJ1Y3QgYXRhX2hvc3QgKmhvc3QpDQo+ICAg ew0KPiAgICAgICAgICBzdHJ1Y3QgYWhjaV9ob3N0X3ByaXYgKmhwcml2ID0gaG9zdC0+cHJpdmF0 ZV9kYXRhOw0KPiBAQCAtODQ5LDcgKzgyNSw3IEBAIHN0YXRpYyBpbnQgYWhjaV9wY2lfZGV2aWNl X3J1bnRpbWVfcmVzdW1lKHN0cnVjdA0KPiBkZXZpY2UgKmRldikNCj4gICAgICAgICAgc3RydWN0 IGF0YV9ob3N0ICpob3N0ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOw0KPiAgICAgICAgICBpbnQg cmM7DQo+IA0KPiAtICAgICAgIHJjID0gYWhjaV9wY2lfcmVzZXRfY29udHJvbGxlcihob3N0KTsN Cj4gKyAgICAgICByYyA9IGFoY2lfcmVzZXRfY29udHJvbGxlcihob3N0KTsNCj4gICAgICAgICAg aWYgKHJjKQ0KPiAgICAgICAgICAgICAgICAgIHJldHVybiByYzsNCj4gICAgICAgICAgYWhjaV9w Y2lfaW5pdF9jb250cm9sbGVyKGhvc3QpOw0KPiBAQCAtODg0LDcgKzg2MCw3IEBAIHN0YXRpYyBp bnQgYWhjaV9wY2lfZGV2aWNlX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICAgICAgICAg ICAgICAgICAgYWhjaV9tY3A4OV9hcHBsZV9lbmFibGUocGRldik7DQo+IA0KPiAgICAgICAgICBp ZiAocGRldi0+ZGV2LnBvd2VyLnBvd2VyX3N0YXRlLmV2ZW50ID09IFBNX0VWRU5UX1NVU1BFTkQp IHsNCj4gLSAgICAgICAgICAgICAgIHJjID0gYWhjaV9wY2lfcmVzZXRfY29udHJvbGxlcihob3N0 KTsNCj4gKyAgICAgICAgICAgICAgIHJjID0gYWhjaV9yZXNldF9jb250cm9sbGVyKGhvc3QpOw0K PiAgICAgICAgICAgICAgICAgIGlmIChyYykNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiByYzsNCj4gDQo+IEBAIC0xNjE5LDYgKzE1OTUsMTgxIEBAIHN0YXRpYyB2b2lkDQo+IGFo Y2lfdXBkYXRlX2luaXRpYWxfbHBtX3BvbGljeShzdHJ1Y3QgYXRhX3BvcnQgKmFwLA0KPiAgICAg ICAgICAgICAgICAgIGFwLT50YXJnZXRfbHBtX3BvbGljeSA9IHBvbGljeTsNCj4gICB9DQo+IA0K PiArc3RhdGljIHZvaWQgYWhjaV9pbnRlbF9wY3NfcXVpcmsoc3RydWN0IHBjaV9kZXYgKnBkZXYs IHN0cnVjdA0KPiBhaGNpX2hvc3RfcHJpdiAqaHByaXYpDQo+ICt7DQo+ICsgICAgICAgc3RhdGlj IGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNzX2lkc1tdID0gew0KPiArICAgICAg ICAgICAgICAgLyogSGlzdG9yaWNhbCBpZHMsIGFtYmlndW91cyBpZiB0aGUgUENTIHF1aXJrIGlz IG5lZWRlZC4uLiAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgy NjUyKSwgfSwgLyogSUNINiAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRF TCwgMHgyNjUzKSwgfSwgLyogSUNINk0gKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4MjdjMSksIH0sIC8qIElDSDcgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4MjdjNSksIH0sIC8qIElDSDdNICovDQo+ICsgICAgICAgICAgICAg ICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDI3YzMpLCB9LCAvKiBJQ0g3UiAqLw0KPiArICAgICAg ICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyNjgxKSwgfSwgLyogRVNCMiAqLw0KPiAr ICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyNjgyKSwgfSwgLyogRVNCMiAq Lw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyNjgzKSwgfSwgLyog RVNCMiAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyN2M2KSwg fSwgLyogSUNINy1NIERIICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVM LCAweDI4MjEpLCB9LCAvKiBJQ0g4ICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNF KElOVEVMLCAweDI4MjIpLCB9LCAvKiBJQ0g4ICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9W REVWSUNFKElOVEVMLCAweDI4MjQpLCB9LCAvKiBJQ0g4ICovDQo+ICsgICAgICAgICAgICAgICB7 IFBDSV9WREVWSUNFKElOVEVMLCAweDI4MjkpLCB9LCAvKiBJQ0g4TSAqLw0KPiArICAgICAgICAg ICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyODJhKSwgfSwgLyogSUNIOE0gKi8NCj4gKyAg ICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjkyMiksIH0sIC8qIElDSDkgKi8N Cj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjkyMyksIH0sIC8qIElD SDkgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjkyNCksIH0s IC8qIElDSDkgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4Mjky NSksIH0sIC8qIElDSDkgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUws IDB4MjkyNyksIH0sIC8qIElDSDkgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4MjkyOSksIH0sIC8qIElDSDlNICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9W REVWSUNFKElOVEVMLCAweDI5MmEpLCB9LCAvKiBJQ0g5TSAqLw0KPiArICAgICAgICAgICAgICAg eyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyOTJiKSwgfSwgLyogSUNIOU0gKi8NCj4gKyAgICAgICAg ICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjkyYyksIH0sIC8qIElDSDlNICovDQo+ICsg ICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDI5MmYpLCB9LCAvKiBJQ0g5TSAq Lw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyOTRkKSwgfSwgLyog SUNIOSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyOTRlKSwg fSwgLyogSUNIOU0gKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 NTAyYSksIH0sIC8qIFRvbGFwYWkgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4NTAyYiksIH0sIC8qIFRvbGFwYWkgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4M2EwNSksIH0sIC8qIElDSDEwICovDQo+ICsgICAgICAgICAgICAg ICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDNhMjIpLCB9LCAvKiBJQ0gxMCAqLw0KPiArICAgICAg ICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgzYTI1KSwgfSwgLyogSUNIMTAgKi8NCj4g KyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4M2IyMiksIH0sIC8qIFBDSCBB SENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDNiMjMpLCB9 LCAvKiBQQ0ggQUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwg MHgzYjI0KSwgfSwgLyogUENIIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4M2IyNSksIH0sIC8qIFBDSCBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7 IFBDSV9WREVWSUNFKElOVEVMLCAweDNiMjkpLCB9LCAvKiBQQ0ggTSBBSENJICovDQo+ICsgICAg ICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDNiMmIpLCB9LCAvKiBQQ0ggUkFJRCAq Lw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgzYjJjKSwgfSwgLyog UENIIE0gUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgz YjJmKSwgfSwgLyogUENIIEFIQ0kgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4MWMwMiksIH0sIC8qIENQVCBBSENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBD SV9WREVWSUNFKElOVEVMLCAweDFjMDMpLCB9LCAvKiBDUFQgTSBBSENJICovDQo+ICsgICAgICAg ICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDFjMDQpLCB9LCAvKiBDUFQgUkFJRCAqLw0K PiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxYzA1KSwgfSwgLyogQ1BU IE0gUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxYzA2 KSwgfSwgLyogQ1BUIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5U RUwsIDB4MWMwNyksIH0sIC8qIENQVCBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9W REVWSUNFKElOVEVMLCAweDFkMDIpLCB9LCAvKiBQQkcgQUhDSSAqLw0KPiArICAgICAgICAgICAg ICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZDA0KSwgfSwgLyogUEJHIFJBSUQgKi8NCj4gKyAg ICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWQwNiksIH0sIC8qIFBCRyBSQUlE ICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDI4MjYpLCB9LCAv KiBQQkcgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgy MzIzKSwgfSwgLyogREg4OXh4Q0MgQUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRF VklDRShJTlRFTCwgMHgxZTAyKSwgfSwgLyogUGFudGhlciBQb2ludCBBSENJICovDQo+ICsgICAg ICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDFlMDMpLCB9LCAvKiBQYW50aGVyIE0g QUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZTA0KSwg fSwgLyogUGFudGhlciBQb2ludCBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVW SUNFKElOVEVMLCAweDFlMDUpLCB9LCAvKiBQYW50aGVyIFBvaW50IFJBSUQgKi8NCj4gKyAgICAg ICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWUwNiksIH0sIC8qIFBhbnRoZXIgUG9p bnQgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZTA3 KSwgfSwgLyogUGFudGhlciBNIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4MWUwZSksIH0sIC8qIFBhbnRoZXIgUG9pbnQgUkFJRCAqLw0KPiArICAgICAg ICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzAyKSwgfSwgLyogTHlueCBQb2ludCBB SENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjMDMpLCB9 LCAvKiBMeW54IE0gQUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRF TCwgMHg4YzA0KSwgfSwgLyogTHlueCBQb2ludCBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7 IFBDSV9WREVWSUNFKElOVEVMLCAweDhjMDUpLCB9LCAvKiBMeW54IE0gUkFJRCAqLw0KPiArICAg ICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzA2KSwgfSwgLyogTHlueCBQb2lu dCBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjMDcp LCB9LCAvKiBMeW54IE0gUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJ TlRFTCwgMHg4YzBlKSwgfSwgLyogTHlueCBQb2ludCBSQUlEICovDQo+ICsgICAgICAgICAgICAg ICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjMGYpLCB9LCAvKiBMeW54IE0gUkFJRCAqLw0KPiAr ICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5YzAyKSwgfSwgLyogTHlueCBM UCBBSENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDljMDMp LCB9LCAvKiBMeW54IExQIEFIQ0kgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4OWMwNCksIH0sIC8qIEx5bnggTFAgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAg eyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5YzA1KSwgfSwgLyogTHlueCBMUCBSQUlEICovDQo+ICsg ICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDljMDYpLCB9LCAvKiBMeW54IExQ IFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWMwNyks IH0sIC8qIEx5bnggTFAgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJ TlRFTCwgMHg5YzBlKSwgfSwgLyogTHlueCBMUCBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7 IFBDSV9WREVWSUNFKElOVEVMLCAweDljMGYpLCB9LCAvKiBMeW54IExQIFJBSUQgKi8NCj4gKyAg ICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWRkMyksIH0sIC8qIENhbm5vbiBM YWtlIFBDSC1MUCBBSENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVM LCAweDFmMjIpLCB9LCAvKiBBdm90b24gQUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lf VkRFVklDRShJTlRFTCwgMHgxZjIzKSwgfSwgLyogQXZvdG9uIEFIQ0kgKi8NCj4gKyAgICAgICAg ICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYyNCksIH0sIC8qIEF2b3RvbiBSQUlEICov DQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMjUpLCB9LCAvKiBB dm90b24gUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgx ZjI2KSwgfSwgLyogQXZvdG9uIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4MWYyNyksIH0sIC8qIEF2b3RvbiBSQUlEICovDQo+ICsgICAgICAgICAgICAg ICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMmUpLCB9LCAvKiBBdm90b24gUkFJRCAqLw0KPiAr ICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjJmKSwgfSwgLyogQXZvdG9u IFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYzMiks IH0sIC8qIEF2b3RvbiBBSENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElO VEVMLCAweDFmMzMpLCB9LCAvKiBBdm90b24gQUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQ Q0lfVkRFVklDRShJTlRFTCwgMHgxZjM0KSwgfSwgLyogQXZvdG9uIFJBSUQgKi8NCj4gKyAgICAg ICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYzNSksIH0sIC8qIEF2b3RvbiBSQUlE ICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMzYpLCB9LCAv KiBBdm90b24gUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwg MHgxZjM3KSwgfSwgLyogQXZvdG9uIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4MWYzZSksIH0sIC8qIEF2b3RvbiBSQUlEICovDQo+ICsgICAgICAgICAg ICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmM2YpLCB9LCAvKiBBdm90b24gUkFJRCAqLw0K PiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyODIzKSwgfSwgLyogV2Vs bHNidXJnIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 MjgyNyksIH0sIC8qIFdlbGxzYnVyZyBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9W REVWSUNFKElOVEVMLCAweDhkMDIpLCB9LCAvKiBXZWxsc2J1cmcgQUhDSSAqLw0KPiArICAgICAg ICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4ZDA0KSwgfSwgLyogV2VsbHNidXJnIFJB SUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGQwNiksIH0s IC8qIFdlbGxzYnVyZyBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElO VEVMLCAweDhkMGUpLCB9LCAvKiBXZWxsc2J1cmcgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAg eyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4ZDYyKSwgfSwgLyogV2VsbHNidXJnIEFIQ0kgKi8NCj4g KyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGQ2NCksIH0sIC8qIFdlbGxz YnVyZyBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDhk NjYpLCB9LCAvKiBXZWxsc2J1cmcgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRF VklDRShJTlRFTCwgMHg4ZDZlKSwgfSwgLyogV2VsbHNidXJnIFJBSUQgKi8NCj4gKyAgICAgICAg ICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MjNhMyksIH0sIC8qIENvbGV0byBDcmVlayBB SENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDljODMpLCB9 LCAvKiBXaWxkY2F0IExQIEFIQ0kgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4OWM4NSksIH0sIC8qIFdpbGRjYXQgTFAgUkFJRCAqLw0KPiArICAgICAgICAgICAg ICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg5Yzg3KSwgfSwgLyogV2lsZGNhdCBMUCBSQUlEICov DQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDljOGYpLCB9LCAvKiBX aWxkY2F0IExQIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUws IDB4OGM4MiksIH0sIC8qIDkgU2VyaWVzIEFIQ0kgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4OGM4MyksIH0sIC8qIDkgU2VyaWVzIE0gQUhDSSAqLw0KPiArICAg ICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4Yzg0KSwgfSwgLyogOSBTZXJpZXMg UkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4Yzg1KSwg fSwgLyogOSBTZXJpZXMgTSBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNF KElOVEVMLCAweDhjODYpLCB9LCAvKiA5IFNlcmllcyBSQUlEICovDQo+ICsgICAgICAgICAgICAg ICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjODcpLCB9LCAvKiA5IFNlcmllcyBNIFJBSUQgKi8N Cj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM4ZSksIH0sIC8qIDkg U2VyaWVzIFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 OGM4ZiksIH0sIC8qIDkgU2VyaWVzIE0gUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lf VkRFVklDRShJTlRFTCwgMHg5ZDAzKSwgfSwgLyogU3VucmlzZSBMUCBBSENJICovDQo+ICsgICAg ICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDlkMDUpLCB9LCAvKiBTdW5yaXNlIExQ IFJBSUQgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWQwNyks IH0sIC8qIFN1bnJpc2UgTFAgUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklD RShJTlRFTCwgMHhhMTAyKSwgfSwgLyogU3VucmlzZSBQb2ludC1IIEFIQ0kgKi8NCj4gKyAgICAg ICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTEwMyksIH0sIC8qIFN1bnJpc2UgTSBB SENJICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweGExMDUpLCB9 LCAvKiBTdW5yaXNlIFBvaW50LUggUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRF VklDRShJTlRFTCwgMHhhMTA2KSwgfSwgLyogU3VucmlzZSBQb2ludC1IIFJBSUQgKi8NCj4gKyAg ICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4YTEwNyksIH0sIC8qIFN1bnJpc2Ug TSBSQUlEICovDQo+ICsgICAgICAgICAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweGExMGYp LCB9LCAvKiBTdW5yaXNlIFBvaW50LUggUkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lf VkRFVklDRShJTlRFTCwgMHgyODIyKSwgfSwgLyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAg ICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyODIzKSwgfSwgLyogTGV3aXNidXJnIEFI Q0kqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyODI2KSwgfSwg LyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRF TCwgMHgyODI3KSwgfSwgLyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAgICAgICAgICAgeyBQ Q0lfVkRFVklDRShJTlRFTCwgMHhhMTgyKSwgfSwgLyogTGV3aXNidXJnIEFIQ0kqLw0KPiArICAg ICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTg2KSwgfSwgLyogTGV3aXNidXJn IFJBSUQqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMWQyKSwg fSwgLyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJ TlRFTCwgMHhhMWQ2KSwgfSwgLyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAgICAgICAgICAg eyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMjAyKSwgfSwgLyogTGV3aXNidXJnIEFIQ0kqLw0KPiAr ICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMjA2KSwgfSwgLyogTGV3aXNi dXJnIFJBSUQqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMjUy KSwgfSwgLyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklD RShJTlRFTCwgMHhhMjU2KSwgfSwgLyogTGV3aXNidXJnIFJBSUQqLw0KPiArICAgICAgICAgICAg ICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMzU2KSwgfSwgLyogQ2Fubm9uIExha2UgUENILUgg UkFJRCAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgwZjIyKSwg fSwgLyogQmF5IFRyYWlsIEFIQ0kgKi8NCj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4MGYyMyksIH0sIC8qIEJheSBUcmFpbCBBSENJICovDQo+ICsgICAgICAgICAgICAg ICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDIyYTMpLCB9LCAvKiBDaGVycnkgVHIuIEFIQ0kgKi8N Cj4gKyAgICAgICAgICAgICAgIHsgUENJX1ZERVZJQ0UoSU5URUwsIDB4NWFlMyksIH0sIC8qIEFw b2xsb0xha2UgQUhDSSAqLw0KPiArICAgICAgICAgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwg MHgzNGQzKSwgfSwgLyogSWNlIExha2UgTFAgQUhDSSAqLw0KDQpJbnN0ZWFkIG9mIHJlcHJvZHVj aW5nIGEgY2h1bmsgb2YgYWhjaV9wY2lfdGJsIGhlcmUgY291bGQgd2UgYWRkIGEgYm9hcmQNCmlk L2hvc3QgZmxhZyBmb3IgdGhpcyBxdWlyaz8NCg0KU29tZXRoaW5nIGxpa2U6DQoNCi0tLSBhL2Ry aXZlcnMvYXRhL2FoY2kuYw0KKysrIGIvZHJpdmVycy9hdGEvYWhjaS5jDQpAQCAtNTMsNiArNTMs NyBAQCBlbnVtIGJvYXJkX2lkcyB7DQogICAgICAgICBib2FyZF9haGNpX25vbXNpLA0KICAgICAg ICAgYm9hcmRfYWhjaV9ub25jcSwNCiAgICAgICAgIGJvYXJkX2FoY2lfbm9zbnRmLA0KKyAgICAg ICBib2FyZF9haGNpX3BjcywNCiAgICAgICAgIGJvYXJkX2FoY2lfeWVzX2ZicywNCiAgDQogICAg ICAgICAvKiBib2FyZCBJRHMgZm9yIHNwZWNpZmljIGNoaXBzZXRzIGluIGFscGhhYmV0aWNhbCBv cmRlciAqLw0KQEAgLTE1Myw2ICsxNTQsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGFfcG9y dF9pbmZvIGFoY2lfcG9ydF9pbmZvW10gPSB7DQogICAgICAgICAgICAgICAgIC51ZG1hX21hc2sg ICAgICA9IEFUQV9VRE1BNiwNCiAgICAgICAgICAgICAgICAgLnBvcnRfb3BzICAgICAgID0gJmFo Y2lfb3BzLA0KICAgICAgICAgfSwNCisgICAgICAgW2JvYXJkX2FoY2lfcGNzXSA9IHsNCisgICAg ICAgICAgICAgICBBSENJX0hGTEFHUyAgICAgKEFIQ0lfSEZMQUdfUENTKSwNCisgICAgICAgICAg ICAgICAuZmxhZ3MgICAgICAgICAgPSBBSENJX0ZMQUdfQ09NTU9OLA0KKyAgICAgICAgICAgICAg IC5waW9fbWFzayAgICAgICA9IEFUQV9QSU80LA0KKyAgICAgICAgICAgICAgIC51ZG1hX21hc2sg ICAgICA9IEFUQV9VRE1BNiwNCisgICAgICAgICAgICAgICAucG9ydF9vcHMgICAgICAgPSAmYWhj aV9vcHMsDQorICAgICAgIH0sDQogICAgICAgICBbYm9hcmRfYWhjaV95ZXNfZmJzXSA9IHsNCiAg ICAgICAgICAgICAgICAgQUhDSV9IRkxBR1MgICAgIChBSENJX0hGTEFHX1lFU19GQlMpLA0KICAg ICAgICAgICAgICAgICAuZmxhZ3MgICAgICAgICAgPSBBSENJX0ZMQUdfQ09NTU9OLA0KQEAgLTE2 Miw2ICsxNzAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0YV9wb3J0X2luZm8gYWhjaV9wb3J0 X2luZm9bXSA9IHsNCiAgICAgICAgIH0sDQogICAgICAgICAvKiBieSBjaGlwc2V0cyAqLw0KICAg ICAgICAgW2JvYXJkX2FoY2lfYXZuXSA9IHsNCisgICAgICAgICAgICAgICBBSENJX0hGTEFHUyAg ICAgKEFIQ0lfSEZMQUdfUENTKSwNCiAgICAgICAgICAgICAgICAgLmZsYWdzICAgICAgICAgID0g QUhDSV9GTEFHX0NPTU1PTiwNCiAgICAgICAgICAgICAgICAgLnBpb19tYXNrICAgICAgID0gQVRB X1BJTzQsDQogICAgICAgICAgICAgICAgIC51ZG1hX21hc2sgICAgICA9IEFUQV9VRE1BNiwNCkBA IC0yMjQsOSArMjMzLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdGFfcG9ydF9pbmZvIGFoY2lf cG9ydF9pbmZvW10gPSB7DQogIA0KICBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQg YWhjaV9wY2lfdGJsW10gPSB7DQogICAgICAgICAvKiBJbnRlbCAqLw0KLSAgICAgICB7IFBDSV9W REVWSUNFKElOVEVMLCAweDI2NTIpLCBib2FyZF9haGNpIH0sIC8qIElDSDYgKi8NCi0gICAgICAg eyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyNjUzKSwgYm9hcmRfYWhjaSB9LCAvKiBJQ0g2TSAqLw0K LSAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDI3YzEpLCBib2FyZF9haGNpIH0sIC8qIElD SDcgKi8NCisgICAgICAgeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyNjUyKSwgYm9hcmRfYWhjaV9w Y3MgfSwgLyogSUNINiAqLw0KKyAgICAgICB7IFBDSV9WREVWSUNFKElOVEVMLCAweDI2NTMpLCBi b2FyZF9haGNpX3BjcyB9LCAvKiBJQ0g2TSAqLw0KKyAgICAgICB7IFBDSV9WREVWSUNFKElOVEVM LCAweDI3YzEpLCBib2FyZF9haGNpX3BjcyB9LCAvKiBJQ0g3ICovDQpbc25pcF0NCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2F0YS9haGNpLmggYi9kcml2ZXJzL2F0YS9haGNpLmgNCmluZGV4IDA1NzA2 MjlkNzE5ZC4uZmY5YzQxYmM4ZDhkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvYWhjaS5oDQor KysgYi9kcml2ZXJzL2F0YS9haGNpLmgNCkBAIC0yNDAsNiArMjQwLDcgQEAgZW51bSB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBk ZWZhdWx0IGxwbV9wb2xpY3kgKi8NCiAgICAgICAgIEFIQ0lfSEZMQUdfU1VTUEVORF9QSFlTICAg ICAgICAgPSAoMSA8PCAyNiksIC8qIGhhbmRsZSBQSFlzIGR1cmluZw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VzcGVuZC9yZXN1bWUg Ki8NCisgICAgICAgQUhDSV9IRkxBR19QQ1MgICAgICAgICAgICAgICAgICA9ICgxIDw8IDI3KSwg LyogYXBwbHkgSW50ZWwgUENTIHF1aXJrICovDQogIA0KICAgICAgICAgLyogYXAtPmZsYWdzIGJp dHMgKi8NCg0KPiArICAgICAgICAgICAgICAgLyoNCj4gKyAgICAgICAgICAgICAgICAqIEtub3du IGlkcyB3aGVyZSBQQ1MgZml4dXAgaXMgbmVlZGVkLCBiZSBjYXJlZnVsIHRvDQo+ICsgICAgICAg ICAgICAgICAgKiBjaGVjayB0aGUgZm9ybWF0IGFuZCBsb2NhdGlvbiBvZiBQQ1Mgd2hlbiBhZGRp bmcgaWRzDQo+ICsgICAgICAgICAgICAgICAgKiB0byB0aGlzIGxpc3QuIEZvciBleGFtcGxlIERl bnZlcnRvbiBzdXBwb3J0cyBtb3JlDQo+ICsgICAgICAgICAgICAgICAgKiB0aGFuIDYgcG9ydHMg YW5kIGNoYW5nZXMgdGhlIGZvcm1hdCBvZiBQQ1MsIGJ1dA0KPiArICAgICAgICAgICAgICAgICog ZGVwbG95ZWQgcGxhdGZvcm1zIGFyZSBub3Qga25vd24gdG8gcmVxdWlyZSBhIFBDUw0KPiArICAg ICAgICAgICAgICAgICogZml4dXAuDQo+ICsgICAgICAgICAgICAgICAgKi8NCj4gKyAgICAgICAg ICAgICAgIHsgfSwNCj4gKyAgICAgICB9Ow0KPiArICAgICAgIHUxNiB0bXAxNjsNCj4gKw0KPiAr ICAgICAgIGlmICghcGNpX21hdGNoX2lkKGFoY2lfcGNzX2lkcywgcGRldikpDQo+ICsgICAgICAg ICAgICAgICByZXR1cm47DQoNClRoZW4gaGVyZSB3ZSBjYW4ganVzdCBjaGVjayBpZiB0aGUgQUhD SV9IRkxBR19QQ1MgZmxhZyBpcyBzZXQuDQoNCkVpdGhlciB3YXkgd29ya3MgZm9yIG1lLCBzbzoN Cg0KUmV2aWV3ZWQtYnk6IFN0ZXBoZW4gRG91dGhpdCA8c3RlcGhlbmRAc2lsaWNvbS11c2EuY29t Pg0KDQo+ICsgICAgICAgLyoNCj4gKyAgICAgICAgKiBwb3J0X21hcCBpcyBkZXRlcm1pbmVkIGZy b20gUE9SVFNfSU1QTCBQQ0kgcmVnaXN0ZXIgd2hpY2ggaXMNCj4gKyAgICAgICAgKiBpbXBsZW1l bnRlZCBhcyB3cml0ZSBvciB3cml0ZS1vbmNlIHJlZ2lzdGVyLiAgSWYgdGhlIHJlZ2lzdGVyDQo+ ICsgICAgICAgICogaXNuJ3QgcHJvZ3JhbW1lZCwgYWhjaSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRl cyBpdCBmcm9tIG51bWJlcg0KPiArICAgICAgICAqIG9mIHBvcnRzLCB3aGljaCBpcyBnb29kIGVu b3VnaCBmb3IgUENTIHByb2dyYW1taW5nLiBJdCBpcw0KPiArICAgICAgICAqIG90aGVyd2lzZSBl eHBlY3RlZCB0aGF0IHBsYXRmb3JtIGZpcm13YXJlIGVuYWJsZXMgdGhlIHBvcnRzDQo+ICsgICAg ICAgICogYmVmb3JlIHRoZSBPUyBib290cy4NCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBwY2lf cmVhZF9jb25maWdfd29yZChwZGV2LCAweDkyLCAmdG1wMTYpOw0KPiArICAgICAgIGlmICgodG1w MTYgJiBocHJpdi0+cG9ydF9tYXApICE9IGhwcml2LT5wb3J0X21hcCkgew0KPiArICAgICAgICAg ICAgICAgdG1wMTYgfD0gaHByaXYtPnBvcnRfbWFwOw0KPiArICAgICAgICAgICAgICAgcGNpX3dy aXRlX2NvbmZpZ193b3JkKHBkZXYsIDB4OTIsIHRtcDE2KTsNCg0KVGhpcyBpcyBhIG5pdCwgYnV0 IHNpbmNlIGl0IGNhbWUgdXAgZWFybGllciBkbyB3ZSB3YW50IHRvIG5hbWUgdGhlIFBDUw0Kb2Zm c2V0IGhlcmUgaW5zdGVhZCBvZiB1c2luZyBhIG1hZ2ljIG51bWJlcj8NCg0KPiArICAgICAgIH0N Cj4gK30NCj4gKw0KPiAgIHN0YXRpYyBpbnQgYWhjaV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAq cGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCj4gICB7DQo+ICAgICAgICAg IHVuc2lnbmVkIGludCBib2FyZF9pZCA9IGVudC0+ZHJpdmVyX2RhdGE7DQo+IEBAIC0xNzMxLDYg KzE4ODIsMTIgQEAgc3RhdGljIGludCBhaGNpX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LA0KPiBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQ0KPiAgICAgICAgICAvKiBzYXZl IGluaXRpYWwgY29uZmlnICovDQo+ICAgICAgICAgIGFoY2lfcGNpX3NhdmVfaW5pdGlhbF9jb25m aWcocGRldiwgaHByaXYpOw0KPiANCj4gKyAgICAgICAvKg0KPiArICAgICAgICAqIElmIHBsYXRm b3JtIGZpcm13YXJlIGZhaWxlZCB0byBlbmFibGUgcG9ydHMsIHRyeSB0byBlbmFibGUNCj4gKyAg ICAgICAgKiB0aGVtIGhlcmUuDQo+ICsgICAgICAgICovDQo+ICsgICAgICAgYWhjaV9pbnRlbF9w Y3NfcXVpcmsocGRldiwgaHByaXYpOw0KPiArDQo+ICAgICAgICAgIC8qIHByZXBhcmUgaG9zdCAq Lw0KPiAgICAgICAgICBpZiAoaHByaXYtPmNhcCAmIEhPU1RfQ0FQX05DUSkgew0KPiAgICAgICAg ICAgICAgICAgIHBpLmZsYWdzIHw9IEFUQV9GTEFHX05DUTsNCj4gQEAgLTE4NDAsNyArMTk5Nyw3 IEBAIHN0YXRpYyBpbnQgYWhjaV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCj4gY29u c3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCj4gICAgICAgICAgaWYgKHJjKQ0KPiAgICAg ICAgICAgICAgICAgIHJldHVybiByYzsNCj4gDQo+IC0gICAgICAgcmMgPSBhaGNpX3BjaV9yZXNl dF9jb250cm9sbGVyKGhvc3QpOw0KPiArICAgICAgIHJjID0gYWhjaV9yZXNldF9jb250cm9sbGVy KGhvc3QpOw0KPiAgICAgICAgICBpZiAocmMpDQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJj Ow0KPiANCg0K