Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp1181246imc; Mon, 11 Mar 2019 08:09:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqw3G0RBSRafcG5qSgZhj9Mmf9IUjdzSHye5dIto/mk/heTnvKhaeyV8rgmqplevInLKPDw4 X-Received: by 2002:a62:45da:: with SMTP id n87mr27051672pfi.160.1552316945852; Mon, 11 Mar 2019 08:09:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552316945; cv=none; d=google.com; s=arc-20160816; b=yibS/1n94OPOS/imqLvBTugMcmDVQNIH2T7HRFb+xa3C8U5AcOZ8RTZbKZeqE3VV+R DLyavunVxl5FK3ydDVtsm+WrTFoVgPwZ+Qv4Yo6GI6WdM4RYgmZlxZz1K1AYU7D83UxF 5LpAQP7V0MDsrZGq4rfw6y27kldS+KjG5YIsde9FZ7LIGOhVV6RUmaFu0EoiV9Wip3Ad dmqxPFQY8R0vplFunlpv0O3XPVqDupRJY+ze2HGc0KawfWmrWPKC7n0ewrqvrqacSe34 TedWEYoy2iaaZVaSTCb1Lmhq/JUu3pthr83o5B3nHL/GxIQD3jN3vq+1ipBX0c3ev36c ks8g== ARC-Message-Signature: i=1; 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:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:to:from :dkim-signature; bh=ZGiz0DFQKpr08wr/tjTIzwEJy/tKtxPy5+9XDbwIWo8=; b=06KbsMWyOXsq5GbzJNTKK7RNhEO2Em3ejYzGS25vbpfn1g3Aitgd3fLhJv0+8Uiq2S Mvx4/O7D+R83s5JZbtDp3dLz3KDs+ydII1PZBB9+DAwTMsBzBkxzw+RMI1q48JLYyzW+ Xd8N60yXT7TiUXuV526dS42SXF1aPUPyKZOBpXyrcdZ5tFc9m8jVmJkDroNcbz/EjuZp SINIVylIYlr8anr9ZDQ+0p6KEC/GcFskYXBGEJkzUea3WFv0k+mqpwWSKTOltOUBdxUS Cml3imjDlF4SnxBiGYSv9y2tqnDBpMLJOp7sswYVu3YAhqdCcEzab8/VZW1WZerjzAvv 4LmQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector1-microchiptechnology-onmicrosoft-com header.b=MoCJMMoO; 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 j13si5786473pgb.37.2019.03.11.08.08.48; Mon, 11 Mar 2019 08:09:05 -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=@microchiptechnology.onmicrosoft.com header.s=selector1-microchiptechnology-onmicrosoft-com header.b=MoCJMMoO; 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 S1727459AbfCKPHA (ORCPT + 99 others); Mon, 11 Mar 2019 11:07:00 -0400 Received: from esa2.microchip.iphmx.com ([68.232.149.84]:48696 "EHLO esa2.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726546AbfCKPG7 (ORCPT ); Mon, 11 Mar 2019 11:06:59 -0400 X-IronPort-AV: E=Sophos;i="5.58,468,1544511600"; d="scan'208";a="27811808" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa2.microchip.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 11 Mar 2019 08:06:54 -0700 Received: from NAM01-BN3-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.76.38) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 11 Mar 2019 08:05:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector1-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZGiz0DFQKpr08wr/tjTIzwEJy/tKtxPy5+9XDbwIWo8=; b=MoCJMMoObiWBPX/6A7aod2eTG2v8QBb9PZAhgf/ts/3t1SYpHpucV/9PiOohQONqSM0L/Yyn2+efMudBVqRo+g2mSsTG9JlpAuKq4DSBSAqjmc+kClGsZTYBEwQG1UGJliRSgsfDiNMkoG3T1QV+2ZVfJ8xWH0gzNGF+p8WnwTg= Received: from DM5PR11MB1242.namprd11.prod.outlook.com (10.168.108.8) by DM5PR11MB0025.namprd11.prod.outlook.com (10.164.155.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.18; Mon, 11 Mar 2019 15:05:53 +0000 Received: from DM5PR11MB1242.namprd11.prod.outlook.com ([fe80::e8b6:2ae9:9b9c:2ca8]) by DM5PR11MB1242.namprd11.prod.outlook.com ([fe80::e8b6:2ae9:9b9c:2ca8%3]) with mapi id 15.20.1686.021; Mon, 11 Mar 2019 15:05:52 +0000 From: To: , , , , , , , Subject: Re: [PATCH] media: atmel: atmel-isc: reworked driver and formats Thread-Topic: [PATCH] media: atmel: atmel-isc: reworked driver and formats Thread-Index: AQHUxQm2DhFZfyQ1n0i/a5kxwOkcZ6YGpYOAgAAHA4A= Date: Mon, 11 Mar 2019 15:05:52 +0000 Message-ID: <41770958-338f-7249-ad11-c1edf677ccfa@microchip.com> References: <1550219467-9532-1-git-send-email-eugen.hristev@microchip.com> <6eaea987-e87f-2b8c-f347-c67ccc8148f2@xs4all.nl> In-Reply-To: <6eaea987-e87f-2b8c-f347-c67ccc8148f2@xs4all.nl> Accept-Language: ro-RO, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: VI1PR0902CA0029.eurprd09.prod.outlook.com (2603:10a6:802:1::18) To DM5PR11MB1242.namprd11.prod.outlook.com (2603:10b6:3:14::8) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Eugen.Hristev@microchip.com; x-ms-exchange-messagesentrepresentingtype: 1 x-tagtoolbar-keys: D20190311170127869 x-originating-ip: [94.177.32.154] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fb7b6b2c-4f0b-4a70-33b2-08d6a6330d84 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020);SRVR:DM5PR11MB0025; x-ms-traffictypediagnostic: DM5PR11MB0025: x-microsoft-exchange-diagnostics: =?utf-8?B?MTtETTVQUjExTUIwMDI1OzIzOlp6WDFwdnlIUEV2a0FUbWIxM1JnMVhHREdF?= =?utf-8?B?eUI5TGNiSmorZ2lPMERuT1I4bkh0OFl4Sm9HWEhQZktvbTVVcnpBSFBYcVZt?= =?utf-8?B?OTdGNG9mOENSK3VDQjdXaG9CLzNpVlRRUkdHaURJYUNuNk5mZnB2NDNxalNO?= =?utf-8?B?cDdrMzQwaDE0cU01SlNDaE90Zk9GOG50b2ROWFE5OERoSGJzYkRoblY1dUdX?= =?utf-8?B?dTYxNnBFWVdobWozeUZXU3gyWEtqN0NkbStGN051SENYMm9LM3BlVS9NdmFT?= =?utf-8?B?Z29qaVg0eFhqSDBnQzVpczFzeWpkNzBMYW5rKzFpTmVlTm9mSzY4QTRSNy9o?= =?utf-8?B?UVpLTXB2MFo3TUJkR1REbnljODQxa2oyMWJRTjVWbDJPeTBqTHFmdjZsZ2VG?= =?utf-8?B?R0F4SXEzZm0xMGVtc3R2aGZUblQzQXZ6TG01R0V0VEFzNXpjMGJyZVl3KzVK?= =?utf-8?B?WUNqdVVDclczSm1pemNmQUdZS2R6TXh3UUExRDQ2cGxRcEJ1UE1YcFpTZ3RL?= =?utf-8?B?VU8vOGwzUk4wSzUveXVIUHM2ckwyMFE5ZWF1WHlWdEM3a2xyalovZWttdDJP?= =?utf-8?B?ZFAzWUpGbHJtTzQrcUJhSW9OUXJRT3JXRkdNYXpNdFVxdGNvRVp2VHRkN0lM?= =?utf-8?B?cmR4VXBKQlloRlVJSlRhalBEZWg1TW41dUJOWTRXWGlYNHJPQ2l5US8zSjUy?= =?utf-8?B?OFdUNjZ2aTlCbEFOL3ZzZjdCUFBmbURRT3FBK08zYWhuMGx0MGtKcXdTbm1W?= =?utf-8?B?MC84S0hDZ1ZRQjJrRnQvMGgyVmlTcUZEcExVRXhkOHVxaHpUMjMwVkxnak1z?= =?utf-8?B?R0V2NU05ZmdsNnJrZFZvYmwxZUp6RHJiQ0RURTNCNlpkZWUvR3d2QjFUS0s4?= =?utf-8?B?dVlXODFzWXBBSEw5dFF2MXA3a0sxVklqaTUxVDUyMWdxdUFHK0lwd2grOE1R?= =?utf-8?B?L1RPaFliM3I4SDN6NnlEeTdoVDhlSG1OaVVSa0k5eGFnbnJ2TzdYVFlXS1lz?= =?utf-8?B?VXlkKzRjQTJzL1h4Y214akp6akgwZnM4R1RJWkpQcUMraHI5bHQ0aUkxdjFi?= =?utf-8?B?Vy96MmUyUlE2Z3kyOUIwc3BnbTRjaWozYW9vVVVIalBkQyt1cmxzY0VtbFE0?= =?utf-8?B?YWt6TC9SQmtrNUNWOHN3endqbFRXUnNGNlVucWcwUVVIVWlnS01WbXIxcUQv?= =?utf-8?B?TnhjTVdKeXM1L2dPR1ZBVFFhSDdDR25jeGt0NGx6eG9leE1VaGVubzNQSWhW?= =?utf-8?B?c085UjFJanl4bWVUeXNHZ3M1L0NvTXBaZng0bVNqY1hQMnBqWitoUFRQNWZs?= =?utf-8?B?YXNxSHdPWHUzRXd5UjlWLzY4R1p0NzVZb0NZZm51R1pGSUoxQ2diZ0F0RG43?= =?utf-8?B?ZVBUVWZKUXplQmlJTEZNeTVpY3lkUWFqTnNBbW93YUhpMFJOSDJLZjZXTUtF?= =?utf-8?B?ZkszZkgyYk9zREhiSG5GK3NSZzRneENEZUF6dHMzVlR6eDl5MzRsTWJsRlA3?= =?utf-8?B?ZzEyZjdtc1ZibWFXdFgwa1VoNkpTWHdTU0grNmdmZVFxeEptcFZyNXk0cUc5?= =?utf-8?B?K1RVMzEvS2RQN1o1U1ZqOXNsRG43RWdUa0hnd1JlNE5icmVHc1piZStYYTlz?= =?utf-8?B?TW9OeXdFMjMvYTRpbmdiRFpxOG1jclN6b2xnSXpVNklMTzFmdWhKSVdCM0tV?= =?utf-8?B?RkRuOVJaL1FJYW5uSVdiZWtDM2JTQ0hlNEcrYkFZc1ZNNzdseHRiMDhnY2JC?= =?utf-8?B?WjNqZWcvRFFTSEpsVjJ3N0RWL1B1SDZ5SkozRDgvbFJtUldra3VTOW5nallY?= =?utf-8?B?b1pNekpNNStuanc2S21ZQlR3L2tXdVVIaDFZczV1eG4zcWVMZ2NVR3ZJdS9D?= =?utf-8?B?elhMSUNuK1NDYjc3SWRxaVlIckNscXQ5Q0JkMW51WHVESmxNaEg5ZXZ3T3pB?= =?utf-8?Q?nNNnlyfG2wplRfActV8uRdY4BdT1XU=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09730BD177 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(39860400002)(346002)(376002)(366004)(136003)(189003)(199004)(106356001)(68736007)(52116002)(8676002)(6246003)(53946003)(6512007)(11346002)(30864003)(53936002)(476003)(99286004)(36756003)(186003)(105586002)(5660300002)(5024004)(25786009)(446003)(256004)(14444005)(26005)(305945005)(31686004)(486006)(81166006)(6116002)(2201001)(3846002)(2616005)(478600001)(229853002)(97736004)(86362001)(6486002)(2501003)(7736002)(71200400001)(386003)(6506007)(8936002)(31696002)(316002)(81156014)(2906002)(76176011)(71190400001)(53546011)(102836004)(72206003)(110136005)(6436002)(66066001)(14454004)(461764006)(579004)(559001)(569006);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR11MB0025;H:DM5PR11MB1242.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: microchip.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: F/3OwbjXpUutPDioKcQFs3bawB/nmu37wxHqsu/YZjrM/Mp6Bo3T7hrYsRsP753lHiWhzJ2tAcPPH1bjbSzlXeqlc9J43lmlB+yxYQKMPs9aoQtzZQnBvHJXlgfMZuoPQO5qARYUJc1nqxDhy1rHWiDXU0OQZjqmP7SIX1sJBTXKR/k/oKtLJXuJYZoyURSzGPAmEEVcEGH4fhhy/BLeX0zBnVucfmHQuNObOtNaxPVOeQi44E5gUOKX5qwyzo9vqVncgqLYrtgkDHI7UU7o2U26Z+c0pVxC8sPF58OerKjIS+3wlSU8M98dMAWntGwkv5Io6pQk/tobLTvcdwOVlhrXyXO08GpZ+9OQ5snTOalaCn9E5oGgk5ycgHctSAYgnbyf72RSkU8qkd4nLTdgEvMs6RBo4n5MbqnNEpslUX4= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: fb7b6b2c-4f0b-4a70-33b2-08d6a6330d84 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Mar 2019 15:05:52.6099 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB0025 X-OriginatorOrg: microchip.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCk9uIDExLjAzLjIwMTkgMTY6MzYsIEhhbnMgVmVya3VpbCB3cm90ZToNCj4gSGkgRXVnZW4s DQo+IA0KPiBPbiAyLzE1LzE5IDk6MzcgQU0sIEV1Z2VuLkhyaXN0ZXZAbWljcm9jaGlwLmNvbSB3 cm90ZToNCj4+IEZyb206IEV1Z2VuIEhyaXN0ZXYgPGV1Z2VuLmhyaXN0ZXZAbWljcm9jaGlwLmNv bT4NCj4+DQo+PiBUaGlzIGNoYW5nZSBpcyBhIHJlZGVzaWduIGluIHRoZSBmb3JtYXRzIGFuZCB0 aGUgd2F5IHRoZSBJU0MgaXMNCj4+IGNvbmZpZ3VyZWQgdy5yLnQuIHNlbnNvciBmb3JtYXQgYW5k IHRoZSBvdXRwdXQgZm9ybWF0IGZyb20gdGhlIElTQy4NCj4+IEkgaGF2ZSBjaGFuZ2VkIHRoZSBz cGxpdHRpbmcgYmV0d2VlbiBzZW5zb3Igb3V0cHV0ICh3aGljaCBpcyBhbHNvIElTQyBpbnB1dCkN Cj4+IGFuZCBJU0Mgb3V0cHV0Lg0KPj4gVGhlIHNlbnNvciBmb3JtYXQgcmVwcmVzZW50cyB0aGUg d2F5IHRoZSBzZW5zb3IgaXMgY29uZmlndXJlZCwgYW5kIHdoYXQgSVNDDQo+PiBpcyByZWNlaXZp bmcuDQo+PiBUaGUgZm9ybWF0IGNvbmZpZ3VyYXRpb24gcmVwcmVzZW50cyB0aGUgd2F5IElTQyBp cyBpbnRlcnByZXRpbmcgdGhlIGRhdGEgYW5kDQo+PiBmb3JtYXR0aW5nIHRoZSBvdXRwdXQgdG8g dGhlIHN1YnN5c3RlbS4NCj4+IE5vdyBpdCdzIG11Y2ggZWFzaWVyIHRvIGZpZ3VyZSBvdXQgd2hh dCBpcyB0aGUgSVNDIGNvbmZpZ3VyYXRpb24gZm9yIGlucHV0LCBhbmQNCj4+IHdoYXQgaXMgdGhl IGNvbmZpZ3VyYXRpb24gZm9yIG91dHB1dC4NCj4+IFRoZSBub24tcmF3IGZvcm1hdCBjYW4gYmUg b2J0YWluZWQgZGlyZWN0bHkgZnJvbSBzZW5zb3Igb3IgaXQgY2FuIGJlIGRvbmUNCj4+IGluc2lk ZSB0aGUgSVNDLiBUaGUgY29udHJvbGxlciBmb3JtYXQgbGlzdCB3aWxsIGluY2x1ZGUgYSBjb25m aWd1cmF0aW9uIGZvcg0KPj4gZWFjaCBmb3JtYXQuDQo+PiBUaGUgb2xkIHN1cHBvcnRlZCBmb3Jt YXRzIGFyZSBzdGlsbCBpbiBwbGFjZSwgaWYgd2Ugd2FudCB0byBkdW1wIHRoZSBzZW5zb3INCj4+ IGZvcm1hdCBkaXJlY3RseSB0byB0aGUgb3V0cHV0LCB0aGUgdHJ5IGZvcm1hdCByb3V0aW5lIHdp bGwgZGV0ZWN0IGFuZA0KPj4gY29uZmlndXJlIHRoZSBwaXBlbGluZSBhY2NvcmRpbmdseS4NCj4+ IFRoaXMgYWxzbyBmaXhlcyB0aGUgcHJldmlvdXMgaXNzdWVzIHdoZW4gdGhlIHJhdyBmb3JtYXQg d2FzIE5VTEwgd2hpY2gNCj4+IHJlc3VsdGVkIGluIG1hbnkgY3Jhc2hlcyBmb3Igc2Vuc29ycyB3 aGljaCBkaWQgbm90IGhhdmUgdGhlIGV4cGVjdGVkL3Rlc3RlZA0KPj4gZm9ybWF0cy4NCj4gDQo+ IFRoaXMgaXMgcXVpdGUgYSBiaWcgY2hhbmdlLCBzbyBJIHdvdWxkIGxpa2UgdG8gc2VlIHRoZSB2 NGwyLWNvbXBsaWFuY2UNCj4gb3V0cHV0IGJlZm9yZSBJIGFjY2VwdCB0aGlzLg0KPiANCj4gTWFr ZSBzdXJlIHlvdSBjb21waWxlIHRoZSB2ZXJ5IGxhdGVzdCB2NGwyLWNvbXBsaWFuY2UgZGlyZWN0 IGZyb20gdGhlDQo+IHY0bC11dGlscyBnaXQgcmVwbyENCg0KSGVsbG8gSGFucywNCg0KVGhhbmsg eW91IGZvciB5b3VyIHJldmlldy4gSSB3aWxsIGF0dGFjaCB0aGUgY29tcGxpYW5jZSB0byB0aGUg djIgcGF0Y2gsIA0KYWZ0ZXIgSSBmaXggeW91ciBjb21tZW50IGJlbG93IGFuZCByZXNlbmQuDQoN CllvdSBhcmUgcmlnaHQsIHRoZSB0cnkgZm9ybWF0IGhhcyBzaWRlIGVmZmVjdHMsIGFuZCBJIHdp bGwgY2hhbmdlIA0KYWNjb3JkaW5nbHkNCg0KRXVnZW4NCg0KPiANCj4gU2VlIGFsc28gYSBjb21t ZW50IGJlbG93Og0KPiANCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBFdWdlbiBIcmlzdGV2IDxldWdl bi5ocmlzdGV2QG1pY3JvY2hpcC5jb20+DQo+PiAtLS0NCj4+IEhlbGxvIEtlbiBhbmQgcG9zc2li bHkgb3RoZXJzIHVzaW5nIElTQyBkcml2ZXIsDQo+Pg0KPj4gSSB3b3VsZCBhcHByZWNpYXRlIGlm IHlvdSBjb3VsZCB0ZXN0IHRoaXMgcGF0Y2ggd2l0aCB5b3VyIHNlbnNvciwNCj4+IGJlY2F1c2Ug SSBkbyBub3Qgd2lzaCB0byBicmVhayBhbnl0aGluZyBpbiB5b3VyIHNldHVwcy4NCj4+IEZlZWRi YWNrIGlzIGFwcHJlY2lhdGVkIGlmIGFueSBlcnJvcnMgYXBwZWFyLCBzbyBJIGNhbiBmaXggdGhl bS4NCj4+IEkgdGVzdGVkIHdpdGggb3Y1NjQwLCBvdjc2NzAsIG92Nzc0MChvbmx5IGluIDQuMTkg YmVjYXVzZSBvbiBsYXRlc3QgaXQncyBicm9rZW4NCj4+IGZvciBtZS4uLikNCj4+IFJlYmFzZWQg dGhpcyBwYXRjaCBvbiB0b3Agb2YgbWVkaWF0cmVlLmdpdC9tYXN0ZXINCj4+IFRoYW5rcyENCj4+ DQo+PiBFdWdlbg0KPj4NCj4+ICAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1p c2MuYyB8IDg4MiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+PiAgIDEgZmlsZSBj aGFuZ2VkLCA0NjUgaW5zZXJ0aW9ucygrKSwgNDE3IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5jIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MuYw0KPj4gaW5kZXggNTAxNzg5Ni4uN2Yw YTZjYyAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwt aXNjLmMNCj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLmMN Cj4+IEBAIC04OSwzNSArODksMjUgQEAgc3RydWN0IGlzY19zdWJkZXZfZW50aXR5IHsNCj4+ICAg CXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4+ICAgfTsNCj4+ICAgDQo+PiAtLyogSW5kaWNhdGUg dGhlIGZvcm1hdCBpcyBnZW5lcmF0ZWQgYnkgdGhlIHNlbnNvciAqLw0KPj4gLSNkZWZpbmUgRk1U X0ZMQUdfRlJPTV9TRU5TT1IJCUJJVCgwKQ0KPj4gLS8qIEluZGljYXRlIHRoZSBmb3JtYXQgaXMg cHJvZHVjZWQgYnkgSVNDIGl0c2VsZiAqLw0KPj4gLSNkZWZpbmUgRk1UX0ZMQUdfRlJPTV9DT05U Uk9MTEVSCUJJVCgxKQ0KPj4gLS8qIEluZGljYXRlIGEgUmF3IEJheWVyIGZvcm1hdCAqLw0KPj4g LSNkZWZpbmUgRk1UX0ZMQUdfUkFXX0ZPUk1BVAkJQklUKDIpDQo+PiAtDQo+PiAtI2RlZmluZSBG TVRfRkxBR19SQVdfRlJPTV9TRU5TT1IJKEZNVF9GTEFHX0ZST01fU0VOU09SIHwgXA0KPj4gLQkJ CQkJIEZNVF9GTEFHX1JBV19GT1JNQVQpDQo+PiAtDQo+PiAgIC8qDQo+PiAgICAqIHN0cnVjdCBp c2NfZm9ybWF0IC0gSVNDIG1lZGlhIGJ1cyBmb3JtYXQgaW5mb3JtYXRpb24NCj4+ICsJCQlUaGlz IHN0cnVjdHVyZSByZXByZXNlbnRzIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgSVNDDQo+PiAr CQkJYW5kIHRoZSBzZW5zb3IuIEl0J3MgdGhlIGlucHV0IGZvcm1hdCByZWNlaXZlZCBieQ0KPj4g KwkJCXRoZSBJU0MuDQo+PiAgICAqIEBmb3VyY2M6CQlGb3VyY2MgY29kZSBmb3IgdGhpcyBmb3Jt YXQNCj4+ICAgICogQG1idXNfY29kZToJCVY0TDIgbWVkaWEgYnVzIGZvcm1hdCBjb2RlLg0KPj4g LSAqIGZsYWdzOgkJSW5kaWNhdGUgZm9ybWF0IGZyb20gc2Vuc29yIG9yIGNvbnZlcnRlZCBieSBj b250cm9sbGVyDQo+PiAtICogQGJwcDoJCUJpdHMgcGVyIHBpeGVsICh3aGVuIHN0b3JlZCBpbiBt ZW1vcnkpDQo+PiAtICoJCQkod2hlbiB0cmFuc2ZlcnJlZCBvdmVyIGEgYnVzKQ0KPj4gLSAqIEBz ZF9zdXBwb3J0OgkJU3ViZGV2IHN1cHBvcnRzIHRoaXMgZm9ybWF0DQo+PiAtICogQGlzY19zdXBw b3J0OglJU0MgY2FuIGNvbnZlcnQgcmF3IGZvcm1hdCB0byB0aGlzIGZvcm1hdA0KPj4gKyAqIEBj ZmFfYmF5Y2ZnOgkJSWYgdGhpcyBmb3JtYXQgaXMgUkFXIEJBWUVSLCBpbmRpY2F0ZSB0aGUgdHlw ZSBvZiBiYXllci4NCj4+ICsJCQl0aGlzIGlzIGVpdGhlciBCR0JHLCBSR1JHLCBldGMuDQo+PiAr ICogQHBmZV9jZmcwX2JwczoJTnVtYmVyIG9mIGhhcmR3YXJlIGRhdGEgbGluZXMgY29ubmVjdGVk IHRvIHRoZSBJU0MNCj4+ICAgICovDQo+PiAgIA0KPj4gICBzdHJ1Y3QgaXNjX2Zvcm1hdCB7DQo+ PiAgIAl1MzIJZm91cmNjOw0KPj4gICAJdTMyCW1idXNfY29kZTsNCj4+IC0JdTMyCWZsYWdzOw0K Pj4gLQl1OAlicHA7DQo+PiArCXUzMgljZmFfYmF5Y2ZnOw0KPj4gICANCj4+ICAgCWJvb2wJc2Rf c3VwcG9ydDsNCj4+IC0JYm9vbAlpc2Nfc3VwcG9ydDsNCj4+ICsJdTMyCXBmZV9jZmcwX2JwczsN Cj4+ICAgfTsNCj4+ICAgDQo+PiAgIC8qIFBpcGVsaW5lIGJpdG1hcCAqLw0KPj4gQEAgLTEzNSwx NiArMTI1LDMxIEBAIHN0cnVjdCBpc2NfZm9ybWF0IHsNCj4+ICAgDQo+PiAgICNkZWZpbmUgR0FN X0VOQUJMRVMJKEdBTV9SRU5BQkxFIHwgR0FNX0dFTkFCTEUgfCBHQU1fQkVOQUJMRSB8IEdBTV9F TkFCTEUpDQo+PiAgIA0KPj4gKy8qDQo+PiArICogc3RydWN0IGZtdF9jb25maWcgLSBJU0MgZm9y bWF0IGNvbmZpZ3VyYXRpb24gYW5kIGludGVybmFsIHBpcGVsaW5lDQo+PiArCQkJVGhpcyBzdHJ1 Y3R1cmUgcmVwcmVzZW50cyB0aGUgaW50ZXJuYWwgY29uZmlndXJhdGlvbg0KPj4gKwkJCW9mIHRo ZSBJU0MuDQo+PiArCQkJSXQgYWxzbyBob2xkcyB0aGUgZm9ybWF0IHRoYXQgSVNDIHdpbGwgcHJl c2VudCB0byB2NGwyLg0KPj4gKyAqIEBzZF9mb3JtYXQ6CQlQb2ludGVyIHRvIGFuIGlzY19mb3Jt YXQgc3RydWN0IHRoYXQgaG9sZHMgdGhlIHNlbnNvcg0KPj4gKwkJCWNvbmZpZ3VyYXRpb24uDQo+ PiArICogQGZvdXJjYzoJCUZvdXJjYyBjb2RlIGZvciB0aGlzIGZvcm1hdC4NCj4+ICsgKiBAYnBw OgkJQnl0ZXMgcGVyIHBpeGVsIGluIHRoZSBjdXJyZW50IGZvcm1hdC4NCj4+ICsgKiBAcmxwX2Nm Z19tb2RlOglDb25maWd1cmF0aW9uIG9mIHRoZSBSTFAgKHJvdW5kaW5nLCBsaW1pdGluZyBwYWNr YWdpbmcpDQo+PiArICogQGRjZmdfaW1vZGU6CQlDb25maWd1cmF0aW9uIG9mIHRoZSBpbnB1dCBv ZiB0aGUgRE1BIG1vZHVsZQ0KPj4gKyAqIEBkY3RybF9kdmlldzoJQ29uZmlndXJhdGlvbiBvZiB0 aGUgb3V0cHV0IG9mIHRoZSBETUEgbW9kdWxlDQo+PiArICogQGJpdHNfcGlwZWxpbmU6CUNvbmZp Z3VyYXRpb24gb2YgdGhlIHBpcGVsaW5lLCB3aGljaCBtb2R1bGVzIGFyZSBlbmFibGVkDQo+PiAr ICovDQo+PiAgIHN0cnVjdCBmbXRfY29uZmlnIHsNCj4+IC0JdTMyCWZvdXJjYzsNCj4+ICsJc3Ry dWN0IGlzY19mb3JtYXQJKnNkX2Zvcm1hdDsNCj4+ICAgDQo+PiAtCXUzMglwZmVfY2ZnMF9icHM7 DQo+PiAtCXUzMgljZmFfYmF5Y2ZnOw0KPj4gLQl1MzIJcmxwX2NmZ19tb2RlOw0KPj4gLQl1MzIJ ZGNmZ19pbW9kZTsNCj4+IC0JdTMyCWRjdHJsX2R2aWV3Ow0KPj4gKwl1MzIJCQlmb3VyY2M7DQo+ PiArCXU4CQkJYnBwOw0KPj4gICANCj4+IC0JdTMyCWJpdHNfcGlwZWxpbmU7DQo+PiArCXUzMgkJ CXJscF9jZmdfbW9kZTsNCj4+ICsJdTMyCQkJZGNmZ19pbW9kZTsNCj4+ICsJdTMyCQkJZGN0cmxf ZHZpZXc7DQo+PiArDQo+PiArCXUzMgkJCWJpdHNfcGlwZWxpbmU7DQo+PiAgIH07DQo+PiAgIA0K Pj4gICAjZGVmaW5lIEhJU1RfRU5UUklFUwkJNTEyDQo+PiBAQCAtMTk2LDggKzIwMSw3IEBAIHN0 cnVjdCBpc2NfZGV2aWNlIHsNCj4+ICAgCXN0cnVjdCB2NGwyX2Zvcm1hdAlmbXQ7DQo+PiAgIAlz dHJ1Y3QgaXNjX2Zvcm1hdAkqKnVzZXJfZm9ybWF0czsNCj4+ICAgCXVuc2lnbmVkIGludAkJbnVt X3VzZXJfZm9ybWF0czsNCj4+IC0JY29uc3Qgc3RydWN0IGlzY19mb3JtYXQJKmN1cnJlbnRfZm10 Ow0KPj4gLQljb25zdCBzdHJ1Y3QgaXNjX2Zvcm1hdAkqcmF3X2ZtdDsNCj4+ICsJc3RydWN0IGZt dF9jb25maWcJY29uZmlnOw0KPj4gICANCj4+ICAgCXN0cnVjdCBpc2NfY3RybHMJY3RybHM7DQo+ PiAgIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QJYXdiX3dvcms7DQo+PiBAQCAtMjEwLDMxOSArMjE0LDEy MiBAQCBzdHJ1Y3QgaXNjX2RldmljZSB7DQo+PiAgIAlzdHJ1Y3QgbGlzdF9oZWFkCQlzdWJkZXZf ZW50aXRpZXM7DQo+PiAgIH07DQo+PiAgIA0KPj4gLXN0YXRpYyBzdHJ1Y3QgaXNjX2Zvcm1hdCBm b3JtYXRzX2xpc3RbXSA9IHsNCj4+ICsvKiBUaGlzIGlzIGEgbGlzdCBvZiB0aGUgZm9ybWF0cyB0 aGF0IHRoZSBJU0MgY2FuICpvdXRwdXQqICovDQo+PiArc3RhdGljIHN0cnVjdCBpc2NfZm9ybWF0 IGNvbnRyb2xsZXJfZm9ybWF0c1tdID0gew0KPj4gICAJew0KPj4gLQkJLmZvdXJjYwkJPSBWNEwy X1BJWF9GTVRfU0JHR1I4LA0KPj4gLQkJLm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRfU0JHR1I4 XzFYOCwNCj4+IC0JCS5mbGFncwkJPSBGTVRfRkxBR19SQVdfRlJPTV9TRU5TT1IsDQo+PiAtCQku YnBwCQk9IDgsDQo+PiAtCX0sDQo+PiAtCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1U X1NHQlJHOCwNCj4+IC0JCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1UX1NHQlJHOF8xWDgsDQo+ PiAtCQkuZmxhZ3MJCT0gRk1UX0ZMQUdfUkFXX0ZST01fU0VOU09SLA0KPj4gLQkJLmJwcAkJPSA4 LA0KPj4gLQl9LA0KPj4gLQl7DQo+PiAtCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9TR1JCRzgs DQo+PiAtCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9TR1JCRzhfMVg4LA0KPj4gLQkJLmZs YWdzCQk9IEZNVF9GTEFHX1JBV19GUk9NX1NFTlNPUiwNCj4+IC0JCS5icHAJCT0gOCwNCj4+IC0J fSwNCj4+IC0Jew0KPj4gLQkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfU1JHR0I4LA0KPj4gLQkJ Lm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRfU1JHR0I4XzFYOCwNCj4+IC0JCS5mbGFncwkJPSBG TVRfRkxBR19SQVdfRlJPTV9TRU5TT1IsDQo+PiAtCQkuYnBwCQk9IDgsDQo+PiAtCX0sDQo+PiAt CXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NCR0dSMTAsDQo+PiAtCQkubWJ1c19j b2RlCT0gTUVESUFfQlVTX0ZNVF9TQkdHUjEwXzFYMTAsDQo+PiAtCQkuZmxhZ3MJCT0gRk1UX0ZM QUdfUkFXX0ZST01fU0VOU09SLA0KPj4gLQkJLmJwcAkJPSAxNiwNCj4+IC0JfSwNCj4+IC0Jew0K Pj4gLQkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfU0dCUkcxMCwNCj4+IC0JCS5tYnVzX2NvZGUJ PSBNRURJQV9CVVNfRk1UX1NHQlJHMTBfMVgxMCwNCj4+IC0JCS5mbGFncwkJPSBGTVRfRkxBR19S QVdfRlJPTV9TRU5TT1IsDQo+PiAtCQkuYnBwCQk9IDE2LA0KPj4gLQl9LA0KPj4gLQl7DQo+PiAt CQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9TR1JCRzEwLA0KPj4gLQkJLm1idXNfY29kZQk9IE1F RElBX0JVU19GTVRfU0dSQkcxMF8xWDEwLA0KPj4gLQkJLmZsYWdzCQk9IEZNVF9GTEFHX1JBV19G Uk9NX1NFTlNPUiwNCj4+IC0JCS5icHAJCT0gMTYsDQo+PiAtCX0sDQo+PiAtCXsNCj4+IC0JCS5m b3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NSR0dCMTAsDQo+PiAtCQkubWJ1c19jb2RlCT0gTUVESUFf QlVTX0ZNVF9TUkdHQjEwXzFYMTAsDQo+PiAtCQkuZmxhZ3MJCT0gRk1UX0ZMQUdfUkFXX0ZST01f U0VOU09SLA0KPj4gLQkJLmJwcAkJPSAxNiwNCj4+ICsJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1U X0FSR0I0NDQsDQo+PiAgIAl9LA0KPj4gICAJew0KPj4gLQkJLmZvdXJjYwkJPSBWNEwyX1BJWF9G TVRfU0JHR1IxMiwNCj4+IC0JCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1UX1NCR0dSMTJfMVgx MiwNCj4+IC0JCS5mbGFncwkJPSBGTVRfRkxBR19SQVdfRlJPTV9TRU5TT1IsDQo+PiAtCQkuYnBw CQk9IDE2LA0KPj4gKwkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfQVJHQjU1NSwNCj4+ICAgCX0s DQo+PiAgIAl7DQo+PiAtCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9TR0JSRzEyLA0KPj4gLQkJ Lm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRfU0dCUkcxMl8xWDEyLA0KPj4gLQkJLmZsYWdzCQk9 IEZNVF9GTEFHX1JBV19GUk9NX1NFTlNPUiwNCj4+IC0JCS5icHAJCT0gMTYsDQo+PiArCQkuZm91 cmNjCQk9IFY0TDJfUElYX0ZNVF9SR0I1NjUsDQo+PiAgIAl9LA0KPj4gICAJew0KPj4gLQkJLmZv dXJjYwkJPSBWNEwyX1BJWF9GTVRfU0dSQkcxMiwNCj4+IC0JCS5tYnVzX2NvZGUJPSBNRURJQV9C VVNfRk1UX1NHUkJHMTJfMVgxMiwNCj4+IC0JCS5mbGFncwkJPSBGTVRfRkxBR19SQVdfRlJPTV9T RU5TT1IsDQo+PiAtCQkuYnBwCQk9IDE2LA0KPj4gKwkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRf QVJHQjMyLA0KPj4gICAJfSwNCj4+ICAgCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1U X1NSR0dCMTIsDQo+PiAtCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9TUkdHQjEyXzFYMTIs DQo+PiAtCQkuZmxhZ3MJCT0gRk1UX0ZMQUdfUkFXX0ZST01fU0VOU09SLA0KPj4gLQkJLmJwcAkJ PSAxNiwNCj4+ICsJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1lVVjQyMCwNCj4+ICAgCX0sDQo+ PiAgIAl7DQo+PiAtCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVY0MjAsDQo+PiAtCQkubWJ1 c19jb2RlCT0gMHgwLA0KPj4gLQkJLmZsYWdzCQk9IEZNVF9GTEFHX0ZST01fQ09OVFJPTExFUiwN Cj4+IC0JCS5icHAJCT0gMTIsDQo+PiArCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVlWLA0K Pj4gICAJfSwNCj4+ICAgCXsNCj4+ICAgCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVY0MjJQ LA0KPj4gLQkJLm1idXNfY29kZQk9IDB4MCwNCj4+IC0JCS5mbGFncwkJPSBGTVRfRkxBR19GUk9N X0NPTlRST0xMRVIsDQo+PiAtCQkuYnBwCQk9IDE2LA0KPj4gICAJfSwNCj4+ICAgCXsNCj4+ICAg CQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9HUkVZLA0KPj4gLQkJLm1idXNfY29kZQk9IE1FRElB X0JVU19GTVRfWThfMVg4LA0KPj4gLQkJLmZsYWdzCQk9IEZNVF9GTEFHX0ZST01fQ09OVFJPTExF UiB8DQo+PiAtCQkJCSAgRk1UX0ZMQUdfRlJPTV9TRU5TT1IsDQo+PiAtCQkuYnBwCQk9IDgsDQo+ PiAtCX0sDQo+PiAtCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX0FSR0I0NDQsDQo+ PiAtCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9SR0I0NDRfMlg4X1BBREhJX0xFLA0KPj4g LQkJLmZsYWdzCQk9IEZNVF9GTEFHX0ZST01fQ09OVFJPTExFUiwNCj4+IC0JCS5icHAJCT0gMTYs DQo+PiAtCX0sDQo+PiAtCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX0FSR0I1NTUs DQo+PiAtCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9SR0I1NTVfMlg4X1BBREhJX0xFLA0K Pj4gLQkJLmZsYWdzCQk9IEZNVF9GTEFHX0ZST01fQ09OVFJPTExFUiwNCj4+IC0JCS5icHAJCT0g MTYsDQo+PiAtCX0sDQo+PiAtCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1JHQjU2 NSwNCj4+IC0JCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1UX1JHQjU2NV8yWDhfTEUsDQo+PiAt CQkuZmxhZ3MJCT0gRk1UX0ZMQUdfRlJPTV9DT05UUk9MTEVSLA0KPj4gLQkJLmJwcAkJPSAxNiwN Cj4+IC0JfSwNCj4+IC0Jew0KPj4gLQkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfQVJHQjMyLA0K Pj4gLQkJLm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRfQVJHQjg4ODhfMVgzMiwNCj4+IC0JCS5m bGFncwkJPSBGTVRfRkxBR19GUk9NX0NPTlRST0xMRVIsDQo+PiAtCQkuYnBwCQk9IDMyLA0KPj4g LQl9LA0KPj4gLQl7DQo+PiAtCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVlWLA0KPj4gLQkJ Lm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRfWVVZVjhfMlg4LA0KPj4gLQkJLmZsYWdzCQk9IEZN VF9GTEFHX0ZST01fQ09OVFJPTExFUiB8DQo+PiAtCQkJCSAgRk1UX0ZMQUdfRlJPTV9TRU5TT1Is DQo+PiAtCQkuYnBwCQk9IDE2LA0KPj4gICAJfSwNCj4+ICAgfTsNCj4+ICAgDQo+PiAtc3RhdGlj IHN0cnVjdCBmbXRfY29uZmlnIGZtdF9jb25maWdzX2xpc3RbXSA9IHsNCj4+ICsvKiBUaGlzIGlz IGEgbGlzdCBvZiBmb3JtYXRzIHRoYXQgdGhlIElTQyBjYW4gcmVjZWl2ZSBhcyAqaW5wdXQqICov DQo+PiArc3RhdGljIHN0cnVjdCBpc2NfZm9ybWF0IGZvcm1hdHNfbGlzdFtdID0gew0KPj4gICAJ ew0KPj4gICAJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NCR0dSOCwNCj4+ICsJCS5tYnVzX2Nv ZGUJPSBNRURJQV9CVVNfRk1UX1NCR0dSOF8xWDgsDQo+PiAgIAkJLnBmZV9jZmcwX2Jwcwk9IElT Q19QRkVfQ0ZHMF9CUFNfRUlHSFQsDQo+PiAgIAkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19C R0JHLA0KPj4gLQkJLnJscF9jZmdfbW9kZQk9IElTQ19STFBfQ0ZHX01PREVfREFUOCwNCj4+IC0J CS5kY2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfUEFDS0VEOCwNCj4+IC0JCS5kY3RybF9kdmll dwk9IElTQ19EQ1RSTF9EVklFV19QQUNLRUQsDQo+PiAtCQkuYml0c19waXBlbGluZQk9IDB4MCwN Cj4+ICAgCX0sDQo+PiAgIAl7DQo+PiAgIAkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfU0dCUkc4 LA0KPj4gKwkJLm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRfU0dCUkc4XzFYOCwNCj4+ICAgCQku cGZlX2NmZzBfYnBzCT0gSVNDX1BGRV9DRkcwX0JQU19FSUdIVCwNCj4+ICAgCQkuY2ZhX2JheWNm Zwk9IElTQ19CQVlfQ0ZHX0dCR0IsDQo+PiAtCQkucmxwX2NmZ19tb2RlCT0gSVNDX1JMUF9DRkdf TU9ERV9EQVQ4LA0KPj4gLQkJLmRjZmdfaW1vZGUJPSBJU0NfRENGR19JTU9ERV9QQUNLRUQ4LA0K Pj4gLQkJLmRjdHJsX2R2aWV3CT0gSVNDX0RDVFJMX0RWSUVXX1BBQ0tFRCwNCj4+IC0JCS5iaXRz X3BpcGVsaW5lCT0gMHgwLA0KPj4gICAJfSwNCj4+ICAgCXsNCj4+ICAgCQkuZm91cmNjCQk9IFY0 TDJfUElYX0ZNVF9TR1JCRzgsDQo+PiArCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9TR1JC RzhfMVg4LA0KPj4gICAJCS5wZmVfY2ZnMF9icHMJPSBJU0NfUEZFX0NGRzBfQlBTX0VJR0hULA0K Pj4gICAJCS5jZmFfYmF5Y2ZnCT0gSVNDX0JBWV9DRkdfR1JHUiwNCj4+IC0JCS5ybHBfY2ZnX21v ZGUJPSBJU0NfUkxQX0NGR19NT0RFX0RBVDgsDQo+PiAtCQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZH X0lNT0RFX1BBQ0tFRDgsDQo+PiAtCQkuZGN0cmxfZHZpZXcJPSBJU0NfRENUUkxfRFZJRVdfUEFD S0VELA0KPj4gLQkJLmJpdHNfcGlwZWxpbmUJPSAweDAsDQo+PiAgIAl9LA0KPj4gICAJew0KPj4g ICAJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NSR0dCOCwNCj4+ICsJCS5tYnVzX2NvZGUJPSBN RURJQV9CVVNfRk1UX1NSR0dCOF8xWDgsDQo+PiAgIAkJLnBmZV9jZmcwX2Jwcwk9IElTQ19QRkVf Q0ZHMF9CUFNfRUlHSFQsDQo+PiAgIAkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19SR1JHLA0K Pj4gLQkJLnJscF9jZmdfbW9kZQk9IElTQ19STFBfQ0ZHX01PREVfREFUOCwNCj4+IC0JCS5kY2Zn X2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfUEFDS0VEOCwNCj4+IC0JCS5kY3RybF9kdmlldwk9IElT Q19EQ1RSTF9EVklFV19QQUNLRUQsDQo+PiAtCQkuYml0c19waXBlbGluZQk9IDB4MCwNCj4+ICAg CX0sDQo+PiAgIAl7DQo+PiAgIAkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfU0JHR1IxMCwNCj4+ ICsJCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1UX1NCR0dSMTBfMVgxMCwNCj4+ICAgCQkucGZl X2NmZzBfYnBzCT0gSVNDX1BGR19DRkcwX0JQU19URU4sDQo+PiAtCQkuY2ZhX2JheWNmZwk9IElT Q19CQVlfQ0ZHX0JHQkcsDQo+PiAtCQkucmxwX2NmZ19tb2RlCT0gSVNDX1JMUF9DRkdfTU9ERV9E QVQxMCwNCj4+IC0JCS5kY2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfUEFDS0VEMTYsDQo+PiAt CQkuZGN0cmxfZHZpZXcJPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VELA0KPj4gLQkJLmJpdHNfcGlw ZWxpbmUJPSAweDAsDQo+PiArCQkuY2ZhX2JheWNmZwk9IElTQ19CQVlfQ0ZHX1JHUkcsDQo+PiAg IAl9LA0KPj4gICAJew0KPj4gICAJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NHQlJHMTAsDQo+ PiArCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9TR0JSRzEwXzFYMTAsDQo+PiAgIAkJLnBm ZV9jZmcwX2Jwcwk9IElTQ19QRkdfQ0ZHMF9CUFNfVEVOLA0KPj4gICAJCS5jZmFfYmF5Y2ZnCT0g SVNDX0JBWV9DRkdfR0JHQiwNCj4+IC0JCS5ybHBfY2ZnX21vZGUJPSBJU0NfUkxQX0NGR19NT0RF X0RBVDEwLA0KPj4gLQkJLmRjZmdfaW1vZGUJPSBJU0NfRENGR19JTU9ERV9QQUNLRUQxNiwNCj4+ IC0JCS5kY3RybF9kdmlldwk9IElTQ19EQ1RSTF9EVklFV19QQUNLRUQsDQo+PiAtCQkuYml0c19w aXBlbGluZQk9IDB4MCwNCj4+ICAgCX0sDQo+PiAgIAl7DQo+PiAgIAkJLmZvdXJjYwkJPSBWNEwy X1BJWF9GTVRfU0dSQkcxMCwNCj4+ICsJCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1UX1NHUkJH MTBfMVgxMCwNCj4+ICAgCQkucGZlX2NmZzBfYnBzCT0gSVNDX1BGR19DRkcwX0JQU19URU4sDQo+ PiAgIAkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19HUkdSLA0KPj4gLQkJLnJscF9jZmdfbW9k ZQk9IElTQ19STFBfQ0ZHX01PREVfREFUMTAsDQo+PiAtCQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZH X0lNT0RFX1BBQ0tFRDE2LA0KPj4gLQkJLmRjdHJsX2R2aWV3CT0gSVNDX0RDVFJMX0RWSUVXX1BB Q0tFRCwNCj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gMHgwLA0KPj4gICAJfSwNCj4+ICAgCXsNCj4+ ICAgCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9TUkdHQjEwLA0KPj4gKwkJLm1idXNfY29kZQk9 IE1FRElBX0JVU19GTVRfU1JHR0IxMF8xWDEwLA0KPj4gICAJCS5wZmVfY2ZnMF9icHMJPSBJU0Nf UEZHX0NGRzBfQlBTX1RFTiwNCj4+ICAgCQkuY2ZhX2JheWNmZwk9IElTQ19CQVlfQ0ZHX1JHUkcs DQo+PiAtCQkucmxwX2NmZ19tb2RlCT0gSVNDX1JMUF9DRkdfTU9ERV9EQVQxMCwNCj4+IC0JCS5k Y2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfUEFDS0VEMTYsDQo+PiAtCQkuZGN0cmxfZHZpZXcJ PSBJU0NfRENUUkxfRFZJRVdfUEFDS0VELA0KPj4gLQkJLmJpdHNfcGlwZWxpbmUJPSAweDAsDQo+ PiAgIAl9LA0KPj4gICAJew0KPj4gICAJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NCR0dSMTIs DQo+PiArCQkubWJ1c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9TQkdHUjEyXzFYMTIsDQo+PiAgIAkJ LnBmZV9jZmcwX2Jwcwk9IElTQ19QRkdfQ0ZHMF9CUFNfVFdFTFZFLA0KPj4gICAJCS5jZmFfYmF5 Y2ZnCT0gSVNDX0JBWV9DRkdfQkdCRywNCj4+IC0JCS5ybHBfY2ZnX21vZGUJPSBJU0NfUkxQX0NG R19NT0RFX0RBVDEyLA0KPj4gLQkJLmRjZmdfaW1vZGUJPSBJU0NfRENGR19JTU9ERV9QQUNLRUQx NiwNCj4+IC0JCS5kY3RybF9kdmlldwk9IElTQ19EQ1RSTF9EVklFV19QQUNLRUQsDQo+PiAtCQku Yml0c19waXBlbGluZQk9IDB4MCwNCj4+ICAgCX0sDQo+PiAgIAl7DQo+PiAgIAkJLmZvdXJjYwkJ PSBWNEwyX1BJWF9GTVRfU0dCUkcxMiwNCj4+ICsJCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1U X1NHQlJHMTJfMVgxMiwNCj4+ICAgCQkucGZlX2NmZzBfYnBzCT0gSVNDX1BGR19DRkcwX0JQU19U V0VMVkUsDQo+PiAgIAkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19HQkdCLA0KPj4gLQkJLnJs cF9jZmdfbW9kZQk9IElTQ19STFBfQ0ZHX01PREVfREFUMTIsDQo+PiAtCQkuZGNmZ19pbW9kZQk9 IElTQ19EQ0ZHX0lNT0RFX1BBQ0tFRDE2LA0KPj4gLQkJLmRjdHJsX2R2aWV3CT0gSVNDX0RDVFJM X0RWSUVXX1BBQ0tFRCwNCj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gMHgwDQo+PiAgIAl9LA0KPj4g ICAJew0KPj4gICAJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1NHUkJHMTIsDQo+PiArCQkubWJ1 c19jb2RlCT0gTUVESUFfQlVTX0ZNVF9TR1JCRzEyXzFYMTIsDQo+PiAgIAkJLnBmZV9jZmcwX2Jw cwk9IElTQ19QRkdfQ0ZHMF9CUFNfVFdFTFZFLA0KPj4gICAJCS5jZmFfYmF5Y2ZnCT0gSVNDX0JB WV9DRkdfR1JHUiwNCj4+IC0JCS5ybHBfY2ZnX21vZGUJPSBJU0NfUkxQX0NGR19NT0RFX0RBVDEy LA0KPj4gLQkJLmRjZmdfaW1vZGUJPSBJU0NfRENGR19JTU9ERV9QQUNLRUQxNiwNCj4+IC0JCS5k Y3RybF9kdmlldwk9IElTQ19EQ1RSTF9EVklFV19QQUNLRUQsDQo+PiAtCQkuYml0c19waXBlbGlu ZQk9IDB4MCwNCj4+ICAgCX0sDQo+PiAgIAl7DQo+PiAgIAkJLmZvdXJjYwkJPSBWNEwyX1BJWF9G TVRfU1JHR0IxMiwNCj4+ICsJCS5tYnVzX2NvZGUJPSBNRURJQV9CVVNfRk1UX1NSR0dCMTJfMVgx MiwNCj4+ICAgCQkucGZlX2NmZzBfYnBzCT0gSVNDX1BGR19DRkcwX0JQU19UV0VMVkUsDQo+PiAg IAkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19SR1JHLA0KPj4gLQkJLnJscF9jZmdfbW9kZQk9 IElTQ19STFBfQ0ZHX01PREVfREFUMTIsDQo+PiAtCQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZHX0lN T0RFX1BBQ0tFRDE2LA0KPj4gLQkJLmRjdHJsX2R2aWV3CT0gSVNDX0RDVFJMX0RWSUVXX1BBQ0tF RCwNCj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gMHgwLA0KPj4gLQl9LA0KPj4gLQl7DQo+PiAtCQku Zm91cmNjID0gVjRMMl9QSVhfRk1UX1lVVjQyMCwNCj4+IC0JCS5wZmVfY2ZnMF9icHMJPSBJU0Nf UEZFX0NGRzBfQlBTX0VJR0hULA0KPj4gLQkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19CR0JH LA0KPj4gLQkJLnJscF9jZmdfbW9kZQk9IElTQ19STFBfQ0ZHX01PREVfWVlDQywNCj4+IC0JCS5k Y2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfWUM0MjBQLA0KPj4gLQkJLmRjdHJsX2R2aWV3CT0g SVNDX0RDVFJMX0RWSUVXX1BMQU5BUiwNCj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gU1VCNDIwX0VO QUJMRSB8IFNVQjQyMl9FTkFCTEUgfA0KPj4gLQkJCQkgIENCQ19FTkFCTEUgfCBDU0NfRU5BQkxF IHwNCj4+IC0JCQkJICBHQU1fRU5BQkxFUyB8DQo+PiAtCQkJCSAgQ0ZBX0VOQUJMRSB8IFdCX0VO QUJMRSwNCj4+IC0JfSwNCj4+IC0Jew0KPj4gLQkJLmZvdXJjYwkJPSBWNEwyX1BJWF9GTVRfWVVW NDIyUCwNCj4+IC0JCS5wZmVfY2ZnMF9icHMJPSBJU0NfUEZFX0NGRzBfQlBTX0VJR0hULA0KPj4g LQkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19CR0JHLA0KPj4gLQkJLnJscF9jZmdfbW9kZQk9 IElTQ19STFBfQ0ZHX01PREVfWVlDQywNCj4+IC0JCS5kY2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1P REVfWUM0MjJQLA0KPj4gLQkJLmRjdHJsX2R2aWV3CT0gSVNDX0RDVFJMX0RWSUVXX1BMQU5BUiwN Cj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gU1VCNDIyX0VOQUJMRSB8DQo+PiAtCQkJCSAgQ0JDX0VO QUJMRSB8IENTQ19FTkFCTEUgfA0KPj4gLQkJCQkgIEdBTV9FTkFCTEVTIHwNCj4+IC0JCQkJICBD RkFfRU5BQkxFIHwgV0JfRU5BQkxFLA0KPj4gICAJfSwNCj4+ICAgCXsNCj4+ICAgCQkuZm91cmNj CQk9IFY0TDJfUElYX0ZNVF9HUkVZLA0KPj4gKwkJLm1idXNfY29kZQk9IE1FRElBX0JVU19GTVRf WThfMVg4LA0KPj4gICAJCS5wZmVfY2ZnMF9icHMJPSBJU0NfUEZFX0NGRzBfQlBTX0VJR0hULA0K Pj4gLQkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19CR0JHLA0KPj4gLQkJLnJscF9jZmdfbW9k ZQk9IElTQ19STFBfQ0ZHX01PREVfREFUWTgsDQo+PiAtCQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZH X0lNT0RFX1BBQ0tFRDgsDQo+PiAtCQkuZGN0cmxfZHZpZXcJPSBJU0NfRENUUkxfRFZJRVdfUEFD S0VELA0KPj4gLQkJLmJpdHNfcGlwZWxpbmUJPSBDQkNfRU5BQkxFIHwgQ1NDX0VOQUJMRSB8DQo+ PiAtCQkJCSAgR0FNX0VOQUJMRVMgfA0KPj4gLQkJCQkgIENGQV9FTkFCTEUgfCBXQl9FTkFCTEUs DQo+PiAtCX0sDQo+PiAtCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX0FSR0I0NDQs DQo+PiAtCQkucGZlX2NmZzBfYnBzCT0gSVNDX1BGRV9DRkcwX0JQU19FSUdIVCwNCj4+IC0JCS5j ZmFfYmF5Y2ZnCT0gSVNDX0JBWV9DRkdfQkdCRywNCj4+IC0JCS5ybHBfY2ZnX21vZGUJPSBJU0Nf UkxQX0NGR19NT0RFX0FSR0I0NDQsDQo+PiAtCQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZHX0lNT0RF X1BBQ0tFRDE2LA0KPj4gLQkJLmRjdHJsX2R2aWV3CT0gSVNDX0RDVFJMX0RWSUVXX1BBQ0tFRCwN Cj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gR0FNX0VOQUJMRVMgfCBDRkFfRU5BQkxFIHwgV0JfRU5B QkxFLA0KPj4gICAJfSwNCj4+ICAgCXsNCj4+IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX0FS R0I1NTUsDQo+PiArCQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVlWLA0KPj4gKwkJLm1idXNf Y29kZQk9IE1FRElBX0JVU19GTVRfWVVZVjhfMlg4LA0KPj4gICAJCS5wZmVfY2ZnMF9icHMJPSBJ U0NfUEZFX0NGRzBfQlBTX0VJR0hULA0KPj4gLQkJLmNmYV9iYXljZmcJPSBJU0NfQkFZX0NGR19C R0JHLA0KPj4gLQkJLnJscF9jZmdfbW9kZQk9IElTQ19STFBfQ0ZHX01PREVfQVJHQjU1NSwNCj4+ IC0JCS5kY2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfUEFDS0VEMTYsDQo+PiAtCQkuZGN0cmxf ZHZpZXcJPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VELA0KPj4gLQkJLmJpdHNfcGlwZWxpbmUJPSBH QU1fRU5BQkxFUyB8IENGQV9FTkFCTEUgfCBXQl9FTkFCTEUsDQo+PiAgIAl9LA0KPj4gICAJew0K Pj4gICAJCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1JHQjU2NSwNCj4+ICsJCS5tYnVzX2NvZGUJ PSBNRURJQV9CVVNfRk1UX1JHQjU2NV8yWDhfTEUsDQo+PiAgIAkJLnBmZV9jZmcwX2Jwcwk9IElT Q19QRkVfQ0ZHMF9CUFNfRUlHSFQsDQo+PiAtCQkuY2ZhX2JheWNmZwk9IElTQ19CQVlfQ0ZHX0JH QkcsDQo+PiAtCQkucmxwX2NmZ19tb2RlCT0gSVNDX1JMUF9DRkdfTU9ERV9SR0I1NjUsDQo+PiAt CQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZHX0lNT0RFX1BBQ0tFRDE2LA0KPj4gLQkJLmRjdHJsX2R2 aWV3CT0gSVNDX0RDVFJMX0RWSUVXX1BBQ0tFRCwNCj4+IC0JCS5iaXRzX3BpcGVsaW5lCT0gR0FN X0VOQUJMRVMgfCBDRkFfRU5BQkxFIHwgV0JfRU5BQkxFLA0KPj4gLQl9LA0KPj4gLQl7DQo+PiAt CQkuZm91cmNjCQk9IFY0TDJfUElYX0ZNVF9BUkdCMzIsDQo+PiAtCQkucGZlX2NmZzBfYnBzCT0g SVNDX1BGRV9DRkcwX0JQU19FSUdIVCwNCj4+IC0JCS5jZmFfYmF5Y2ZnCT0gSVNDX0JBWV9DRkdf QkdCRywNCj4+IC0JCS5ybHBfY2ZnX21vZGUJPSBJU0NfUkxQX0NGR19NT0RFX0FSR0IzMiwNCj4+ IC0JCS5kY2ZnX2ltb2RlCT0gSVNDX0RDRkdfSU1PREVfUEFDS0VEMzIsDQo+PiAtCQkuZGN0cmxf ZHZpZXcJPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VELA0KPj4gLQkJLmJpdHNfcGlwZWxpbmUJPSBH QU1fRU5BQkxFUyB8IENGQV9FTkFCTEUgfCBXQl9FTkFCTEUsDQo+PiAtCX0sDQo+PiAtCXsNCj4+ IC0JCS5mb3VyY2MJCT0gVjRMMl9QSVhfRk1UX1lVWVYsDQo+PiAtCQkucGZlX2NmZzBfYnBzCT0g SVNDX1BGRV9DRkcwX0JQU19FSUdIVCwNCj4+IC0JCS5jZmFfYmF5Y2ZnCT0gSVNDX0JBWV9DRkdf QkdCRywNCj4+IC0JCS5ybHBfY2ZnX21vZGUJPSBJU0NfUkxQX0NGR19NT0RFX0RBVDgsDQo+PiAt CQkuZGNmZ19pbW9kZQk9IElTQ19EQ0ZHX0lNT0RFX1BBQ0tFRDgsDQo+PiAtCQkuZGN0cmxfZHZp ZXcJPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VELA0KPj4gLQkJLmJpdHNfcGlwZWxpbmUJPSAweDAN Cj4+ICAgCX0sDQo+PiAgIH07DQo+PiAgIA0KPj4gQEAgLTU3MSw2ICszNzgsMTMgQEAgc3RhdGlj IGNvbnN0IHUzMiBpc2NfZ2FtbWFfdGFibGVbR0FNTUFfTUFYICsgMV1bR0FNTUFfRU5UUklFU10g PSB7DQo+PiAgIAkgIDB4M0UyMDAwNywgMHgzRTkwMDA3LCAweDNGMDAwMDgsIDB4M0Y4MDAwNyB9 LA0KPj4gICB9Ow0KPj4gICANCj4+ICsjZGVmaW5lIElTQ19JU19TRU5TT1JfUkFXX01PREUoaXNj KSBcDQo+PiArCSgoKGlzYyktPmNvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZSAmIDB4ZjAwMCkg PT0gMHgzMDAwKQ0KPj4gKw0KPj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgZGVidWc7DQo+PiArbW9k dWxlX3BhcmFtKGRlYnVnLCBpbnQsIDA2NDQpOw0KPj4gK01PRFVMRV9QQVJNX0RFU0MoZGVidWcs ICJkZWJ1ZyBsZXZlbCAoMC0yKSIpOw0KPj4gKw0KPj4gICBzdGF0aWMgdW5zaWduZWQgaW50IHNl bnNvcl9wcmVmZXJyZWQgPSAxOw0KPj4gICBtb2R1bGVfcGFyYW0oc2Vuc29yX3ByZWZlcnJlZCwg dWludCwgMDY0NCk7DQo+PiAgIE1PRFVMRV9QQVJNX0RFU0Moc2Vuc29yX3ByZWZlcnJlZCwNCj4+ IEBAIC04OTYsNDAgKzcxMCwxNyBAQCBzdGF0aWMgaW50IGlzY19idWZmZXJfcHJlcGFyZShzdHJ1 Y3QgdmIyX2J1ZmZlciAqdmIpDQo+PiAgIAlyZXR1cm4gMDsNCj4+ICAgfQ0KPj4gICANCj4+IC1z dGF0aWMgaW5saW5lIGJvb2wgc2Vuc29yX2lzX3ByZWZlcnJlZChjb25zdCBzdHJ1Y3QgaXNjX2Zv cm1hdCAqaXNjX2ZtdCkNCj4+IC17DQo+PiAtCXJldHVybiAoc2Vuc29yX3ByZWZlcnJlZCAmJiBp c2NfZm10LT5zZF9zdXBwb3J0KSB8fA0KPj4gLQkJIWlzY19mbXQtPmlzY19zdXBwb3J0Ow0KPj4g LX0NCj4+IC0NCj4+IC1zdGF0aWMgc3RydWN0IGZtdF9jb25maWcgKmdldF9mbXRfY29uZmlnKHUz MiBmb3VyY2MpDQo+PiAtew0KPj4gLQlzdHJ1Y3QgZm10X2NvbmZpZyAqY29uZmlnOw0KPj4gLQlp bnQgaTsNCj4+IC0NCj4+IC0JY29uZmlnID0gJmZtdF9jb25maWdzX2xpc3RbMF07DQo+PiAtCWZv ciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGZtdF9jb25maWdzX2xpc3QpOyBpKyspIHsNCj4+IC0J CWlmIChjb25maWctPmZvdXJjYyA9PSBmb3VyY2MpDQo+PiAtCQkJcmV0dXJuIGNvbmZpZzsNCj4+ IC0NCj4+IC0JCWNvbmZpZysrOw0KPj4gLQl9DQo+PiAtCXJldHVybiBOVUxMOw0KPj4gLX0NCj4+ IC0NCj4+ICAgc3RhdGljIHZvaWQgaXNjX3N0YXJ0X2RtYShzdHJ1Y3QgaXNjX2RldmljZSAqaXNj KQ0KPj4gICB7DQo+PiAgIAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXAgPSBpc2MtPnJlZ21hcDsNCj4+ IC0Jc3RydWN0IHY0bDJfcGl4X2Zvcm1hdCAqcGl4Zm10ID0gJmlzYy0+Zm10LmZtdC5waXg7DQo+ PiAtCXUzMiBzaXplaW1hZ2UgPSBwaXhmbXQtPnNpemVpbWFnZTsNCj4+IC0Jc3RydWN0IGZtdF9j b25maWcgKmNvbmZpZyA9IGdldF9mbXRfY29uZmlnKGlzYy0+Y3VycmVudF9mbXQtPmZvdXJjYyk7 DQo+PiArCXUzMiBzaXplaW1hZ2UgPSBpc2MtPmZtdC5mbXQucGl4LnNpemVpbWFnZTsNCj4+ICAg CXUzMiBkY3RybF9kdmlldzsNCj4+ICAgCWRtYV9hZGRyX3QgYWRkcjA7DQo+PiAgIA0KPj4gICAJ YWRkcjAgPSB2YjJfZG1hX2NvbnRpZ19wbGFuZV9kbWFfYWRkcigmaXNjLT5jdXJfZnJtLT52Yi52 YjJfYnVmLCAwKTsNCj4+ICAgCXJlZ21hcF93cml0ZShyZWdtYXAsIElTQ19EQUQwLCBhZGRyMCk7 DQo+PiAgIA0KPj4gLQlzd2l0Y2ggKHBpeGZtdC0+cGl4ZWxmb3JtYXQpIHsNCj4+ICsJc3dpdGNo IChpc2MtPmNvbmZpZy5mb3VyY2MpIHsNCj4+ICAgCWNhc2UgVjRMMl9QSVhfRk1UX1lVVjQyMDoN Cj4+ICAgCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBJU0NfREFEMSwgYWRkcjAgKyAoc2l6ZWltYWdl ICogMikgLyAzKTsNCj4+ICAgCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBJU0NfREFEMiwgYWRkcjAg KyAoc2l6ZWltYWdlICogNSkgLyA2KTsNCj4+IEBAIC05NDIsMTAgKzczMyw3IEBAIHN0YXRpYyB2 b2lkIGlzY19zdGFydF9kbWEoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICAgCQlicmVhazsN Cj4+ICAgCX0NCj4+ICAgDQo+PiAtCWlmIChzZW5zb3JfaXNfcHJlZmVycmVkKGlzYy0+Y3VycmVu dF9mbXQpKQ0KPj4gLQkJZGN0cmxfZHZpZXcgPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VEOw0KPj4g LQllbHNlDQo+PiAtCQlkY3RybF9kdmlldyA9IGNvbmZpZy0+ZGN0cmxfZHZpZXc7DQo+PiArCWRj dHJsX2R2aWV3ID0gaXNjLT5jb25maWcuZGN0cmxfZHZpZXc7DQo+PiAgIA0KPj4gICAJcmVnbWFw X3dyaXRlKHJlZ21hcCwgSVNDX0RDVFJMLCBkY3RybF9kdmlldyB8IElTQ19EQ1RSTF9JRV9JUyk7 DQo+PiAgIAlyZWdtYXBfd3JpdGUocmVnbWFwLCBJU0NfQ1RSTEVOLCBJU0NfQ1RSTF9DQVBUVVJF KTsNCj4+IEBAIC05NTUsNyArNzQzLDYgQEAgc3RhdGljIHZvaWQgaXNjX3NldF9waXBlbGluZShz dHJ1Y3QgaXNjX2RldmljZSAqaXNjLCB1MzIgcGlwZWxpbmUpDQo+PiAgIHsNCj4+ICAgCXN0cnVj dCByZWdtYXAgKnJlZ21hcCA9IGlzYy0+cmVnbWFwOw0KPj4gICAJc3RydWN0IGlzY19jdHJscyAq Y3RybHMgPSAmaXNjLT5jdHJsczsNCj4+IC0Jc3RydWN0IGZtdF9jb25maWcgKmNvbmZpZyA9IGdl dF9mbXRfY29uZmlnKGlzYy0+cmF3X2ZtdC0+Zm91cmNjKTsNCj4+ICAgCXUzMiB2YWwsIGJheV9j Zmc7DQo+PiAgIAljb25zdCB1MzIgKmdhbW1hOw0KPj4gICAJdW5zaWduZWQgaW50IGk7DQo+PiBA QCAtOTY5LDcgKzc1Niw3IEBAIHN0YXRpYyB2b2lkIGlzY19zZXRfcGlwZWxpbmUoc3RydWN0IGlz Y19kZXZpY2UgKmlzYywgdTMyIHBpcGVsaW5lKQ0KPj4gICAJaWYgKCFwaXBlbGluZSkNCj4+ICAg CQlyZXR1cm47DQo+PiAgIA0KPj4gLQliYXlfY2ZnID0gY29uZmlnLT5jZmFfYmF5Y2ZnOw0KPj4g KwliYXlfY2ZnID0gaXNjLT5jb25maWcuc2RfZm9ybWF0LT5jZmFfYmF5Y2ZnOw0KPj4gICANCj4+ ICAgCXJlZ21hcF93cml0ZShyZWdtYXAsIElTQ19XQl9DRkcsIGJheV9jZmcpOw0KPj4gICAJcmVn bWFwX3dyaXRlKHJlZ21hcCwgSVNDX1dCX09fUkdSLCAweDApOw0KPj4gQEAgLTEwMTEsMjQgKzc5 OCwyNCBAQCBzdGF0aWMgaW50IGlzY191cGRhdGVfcHJvZmlsZShzdHJ1Y3QgaXNjX2RldmljZSAq aXNjKQ0KPj4gICAJfQ0KPj4gICANCj4+ICAgCWlmIChjb3VudGVyIDwgMCkgew0KPj4gLQkJdjRs Ml93YXJuKCZpc2MtPnY0bDJfZGV2LCAiVGltZSBvdXQgdG8gdXBkYXRlIHByb2ZpZVxuIik7DQo+ PiArCQl2NGwyX3dhcm4oJmlzYy0+djRsMl9kZXYsICJUaW1lIG91dCB0byB1cGRhdGUgcHJvZmls ZVxuIik7DQo+PiAgIAkJcmV0dXJuIC1FVElNRURPVVQ7DQo+PiAgIAl9DQo+PiAgIA0KPj4gICAJ cmV0dXJuIDA7DQo+PiAgIH0NCj4+ICAgDQo+PiAtc3RhdGljIHZvaWQgaXNjX3NldF9oaXN0b2dy YW0oc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICtzdGF0aWMgdm9pZCBpc2Nfc2V0X2hpc3Rv Z3JhbShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCBib29sIGVuYWJsZSkNCj4+ICAgew0KPj4gICAJ c3RydWN0IHJlZ21hcCAqcmVnbWFwID0gaXNjLT5yZWdtYXA7DQo+PiAgIAlzdHJ1Y3QgaXNjX2N0 cmxzICpjdHJscyA9ICZpc2MtPmN0cmxzOw0KPj4gLQlzdHJ1Y3QgZm10X2NvbmZpZyAqY29uZmln ID0gZ2V0X2ZtdF9jb25maWcoaXNjLT5yYXdfZm10LT5mb3VyY2MpOw0KPj4gICANCj4+IC0JaWYg KGN0cmxzLT5hd2IgJiYgKGN0cmxzLT5oaXN0X3N0YXQgIT0gSElTVF9FTkFCTEVEKSkgew0KPj4g KwlpZiAoZW5hYmxlKSB7DQo+PiAgIAkJcmVnbWFwX3dyaXRlKHJlZ21hcCwgSVNDX0hJU19DRkcs DQo+PiAgIAkJCSAgICAgSVNDX0hJU19DRkdfTU9ERV9SIHwNCj4+IC0JCQkgICAgIChjb25maWct PmNmYV9iYXljZmcgPDwgSVNDX0hJU19DRkdfQkFZU0VMX1NISUZUKSB8DQo+PiAtCQkJICAgICBJ U0NfSElTX0NGR19SQVIpOw0KPj4gKwkJCSAgICAgKGlzYy0+Y29uZmlnLnNkX2Zvcm1hdC0+Y2Zh X2JheWNmZw0KPj4gKwkJCQkJPDwgSVNDX0hJU19DRkdfQkFZU0VMX1NISUZUKSB8DQo+PiArCQkJ CQlJU0NfSElTX0NGR19SQVIpOw0KPj4gICAJCXJlZ21hcF93cml0ZShyZWdtYXAsIElTQ19ISVNf Q1RSTCwgSVNDX0hJU19DVFJMX0VOKTsNCj4+ICAgCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBJU0Nf SU5URU4sIElTQ19JTlRfSElTRE9ORSk7DQo+PiAgIAkJY3RybHMtPmhpc3RfaWQgPSBJU0NfSElT X0NGR19NT0RFX1I7DQo+PiBAQCAtMTAzNiw3ICs4MjMsNyBAQCBzdGF0aWMgdm9pZCBpc2Nfc2V0 X2hpc3RvZ3JhbShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4gICAJCXJlZ21hcF93cml0ZShy ZWdtYXAsIElTQ19DVFJMRU4sIElTQ19DVFJMX0hJU1JFUSk7DQo+PiAgIA0KPj4gICAJCWN0cmxz LT5oaXN0X3N0YXQgPSBISVNUX0VOQUJMRUQ7DQo+PiAtCX0gZWxzZSBpZiAoIWN0cmxzLT5hd2Ig JiYgKGN0cmxzLT5oaXN0X3N0YXQgIT0gSElTVF9ESVNBQkxFRCkpIHsNCj4+ICsJfSBlbHNlIHsN Cj4+ICAgCQlyZWdtYXBfd3JpdGUocmVnbWFwLCBJU0NfSU5URElTLCBJU0NfSU5UX0hJU0RPTkUp Ow0KPj4gICAJCXJlZ21hcF93cml0ZShyZWdtYXAsIElTQ19ISVNfQ1RSTCwgSVNDX0hJU19DVFJM X0RJUyk7DQo+PiAgIA0KPj4gQEAgLTEwNDQsNTMgKzgzMSwxOCBAQCBzdGF0aWMgdm9pZCBpc2Nf c2V0X2hpc3RvZ3JhbShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4gICAJfQ0KPj4gICB9DQo+ PiAgIA0KPj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpc2NfZ2V0X3BhcmFtKGNvbnN0IHN0cnVjdCBp c2NfZm9ybWF0ICpmbXQsDQo+PiAtCQkJCSB1MzIgKnJscF9tb2RlLCB1MzIgKmRjZmcpDQo+PiAt ew0KPj4gLQlzdHJ1Y3QgZm10X2NvbmZpZyAqY29uZmlnID0gZ2V0X2ZtdF9jb25maWcoZm10LT5m b3VyY2MpOw0KPj4gLQ0KPj4gLQkqZGNmZyA9IElTQ19EQ0ZHX1lNQlNJWkVfQkVBVFM4Ow0KPj4g LQ0KPj4gLQlzd2l0Y2ggKGZtdC0+Zm91cmNjKSB7DQo+PiAtCWNhc2UgVjRMMl9QSVhfRk1UX1NC R0dSMTA6DQo+PiAtCWNhc2UgVjRMMl9QSVhfRk1UX1NHQlJHMTA6DQo+PiAtCWNhc2UgVjRMMl9Q SVhfRk1UX1NHUkJHMTA6DQo+PiAtCWNhc2UgVjRMMl9QSVhfRk1UX1NSR0dCMTA6DQo+PiAtCWNh c2UgVjRMMl9QSVhfRk1UX1NCR0dSMTI6DQo+PiAtCWNhc2UgVjRMMl9QSVhfRk1UX1NHQlJHMTI6 DQo+PiAtCWNhc2UgVjRMMl9QSVhfRk1UX1NHUkJHMTI6DQo+PiAtCWNhc2UgVjRMMl9QSVhfRk1U X1NSR0dCMTI6DQo+PiAtCQkqcmxwX21vZGUgPSBjb25maWctPnJscF9jZmdfbW9kZTsNCj4+IC0J CSpkY2ZnIHw9IGNvbmZpZy0+ZGNmZ19pbW9kZTsNCj4+IC0JCWJyZWFrOw0KPj4gLQlkZWZhdWx0 Og0KPj4gLQkJKnJscF9tb2RlID0gSVNDX1JMUF9DRkdfTU9ERV9EQVQ4Ow0KPj4gLQkJKmRjZmcg fD0gSVNDX0RDRkdfSU1PREVfUEFDS0VEODsNCj4+IC0JCWJyZWFrOw0KPj4gLQl9DQo+PiAtfQ0K Pj4gLQ0KPj4gICBzdGF0aWMgaW50IGlzY19jb25maWd1cmUoc3RydWN0IGlzY19kZXZpY2UgKmlz YykNCj4+ICAgew0KPj4gICAJc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gaXNjLT5yZWdtYXA7DQo+ PiAtCWNvbnN0IHN0cnVjdCBpc2NfZm9ybWF0ICpjdXJyZW50X2ZtdCA9IGlzYy0+Y3VycmVudF9m bXQ7DQo+PiAtCXN0cnVjdCBmbXRfY29uZmlnICpjdXJmbXRfY29uZmlnID0gZ2V0X2ZtdF9jb25m aWcoY3VycmVudF9mbXQtPmZvdXJjYyk7DQo+PiAtCXN0cnVjdCBmbXRfY29uZmlnICpyYXdmbXRf Y29uZmlnID0gZ2V0X2ZtdF9jb25maWcoaXNjLT5yYXdfZm10LT5mb3VyY2MpOw0KPj4gLQlzdHJ1 Y3QgaXNjX3N1YmRldl9lbnRpdHkgKnN1YmRldiA9IGlzYy0+Y3VycmVudF9zdWJkZXY7DQo+PiAg IAl1MzIgcGZlX2NmZzAsIHJscF9tb2RlLCBkY2ZnLCBtYXNrLCBwaXBlbGluZTsNCj4+ICsJc3Ry dWN0IGlzY19zdWJkZXZfZW50aXR5ICpzdWJkZXYgPSBpc2MtPmN1cnJlbnRfc3ViZGV2Ow0KPj4g ICANCj4+IC0JaWYgKHNlbnNvcl9pc19wcmVmZXJyZWQoY3VycmVudF9mbXQpKSB7DQo+PiAtCQlw ZmVfY2ZnMCA9IGN1cmZtdF9jb25maWctPnBmZV9jZmcwX2JwczsNCj4+IC0JCXBpcGVsaW5lID0g MHgwOw0KPj4gLQkJaXNjX2dldF9wYXJhbShjdXJyZW50X2ZtdCwgJnJscF9tb2RlLCAmZGNmZyk7 DQo+PiAtCQlpc2MtPmN0cmxzLmhpc3Rfc3RhdCA9IEhJU1RfSU5JVDsNCj4+IC0JfSBlbHNlIHsN Cj4+IC0JCXBmZV9jZmcwID0gcmF3Zm10X2NvbmZpZy0+cGZlX2NmZzBfYnBzOw0KPj4gLQkJcGlw ZWxpbmUgPSBjdXJmbXRfY29uZmlnLT5iaXRzX3BpcGVsaW5lOw0KPj4gLQkJcmxwX21vZGUgPSBj dXJmbXRfY29uZmlnLT5ybHBfY2ZnX21vZGU7DQo+PiAtCQlkY2ZnID0gY3VyZm10X2NvbmZpZy0+ ZGNmZ19pbW9kZSB8DQo+PiArCXBmZV9jZmcwID0gaXNjLT5jb25maWcuc2RfZm9ybWF0LT5wZmVf Y2ZnMF9icHM7DQo+PiArCXJscF9tb2RlID0gaXNjLT5jb25maWcucmxwX2NmZ19tb2RlOw0KPj4g KwlwaXBlbGluZSA9IGlzYy0+Y29uZmlnLmJpdHNfcGlwZWxpbmU7DQo+PiArDQo+PiArCWRjZmcg PSBpc2MtPmNvbmZpZy5kY2ZnX2ltb2RlIHwNCj4+ICAgCQkgICAgICAgSVNDX0RDRkdfWU1CU0la RV9CRUFUUzggfCBJU0NfRENGR19DTUJTSVpFX0JFQVRTODsNCj4+IC0JfQ0KPj4gICANCj4+ICAg CXBmZV9jZmcwICB8PSBzdWJkZXYtPnBmZV9jZmcwIHwgSVNDX1BGRV9DRkcwX01PREVfUFJPR1JF U1NJVkU7DQo+PiAgIAltYXNrID0gSVNDX1BGRV9DRkcwX0JQU19NQVNLIHwgSVNDX1BGRV9DRkcw X0hQT0xfTE9XIHwNCj4+IEBAIC0xMTA3LDggKzg1OSwxNiBAQCBzdGF0aWMgaW50IGlzY19jb25m aWd1cmUoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+ICAgCS8qIFNldCB0aGUgcGlwZWxpbmUg Ki8NCj4+ICAgCWlzY19zZXRfcGlwZWxpbmUoaXNjLCBwaXBlbGluZSk7DQo+PiAgIA0KPj4gLQlp ZiAocGlwZWxpbmUpDQo+PiAtCQlpc2Nfc2V0X2hpc3RvZ3JhbShpc2MpOw0KPj4gKwkvKg0KPj4g KwkgKiBUaGUgY3VycmVudCBpbXBsZW1lbnRlZCBoaXN0b2dyYW0gaXMgYXZhaWxhYmxlIGZvciBS QVcgUiwgQiwgR0INCj4+ICsJICogY2hhbm5lbHMuIEhlbmNlIHdlIGNhbiB1c2UgaXQgaWYgQ0ZB IGlzIGRpc2FibGVkIGFuZCBDU0MgaXMgZGlzYWJsZWQNCj4+ICsJICogYW5kIHRoZSBzZW5zb3Ig b3V0cHV0cyBSQVcgbW9kZS4NCj4+ICsJICovDQo+PiArCWlmIChpc2MtPmN0cmxzLmF3YiAmJiAo KHBpcGVsaW5lICYgKENGQV9FTkFCTEUgfCBDU0NfRU5BQkxFKSkgPT0gMCkNCj4+ICsJICAgICYm IElTQ19JU19TRU5TT1JfUkFXX01PREUoaXNjKSkNCj4+ICsJCWlzY19zZXRfaGlzdG9ncmFtKGlz YywgdHJ1ZSk7DQo+PiArCWVsc2UNCj4+ICsJCWlzY19zZXRfaGlzdG9ncmFtKGlzYywgZmFsc2Up Ow0KPj4gICANCj4+ICAgCS8qIFVwZGF0ZSBwcm9maWxlICovDQo+PiAgIAlyZXR1cm4gaXNjX3Vw ZGF0ZV9wcm9maWxlKGlzYyk7DQo+PiBAQCAtMTEyNSw3ICs4ODUsOCBAQCBzdGF0aWMgaW50IGlz Y19zdGFydF9zdHJlYW1pbmcoc3RydWN0IHZiMl9xdWV1ZSAqdnEsIHVuc2lnbmVkIGludCBjb3Vu dCkNCj4+ICAgCS8qIEVuYWJsZSBzdHJlYW0gb24gdGhlIHN1YiBkZXZpY2UgKi8NCj4+ICAgCXJl dCA9IHY0bDJfc3ViZGV2X2NhbGwoaXNjLT5jdXJyZW50X3N1YmRldi0+c2QsIHZpZGVvLCBzX3N0 cmVhbSwgMSk7DQo+PiAgIAlpZiAocmV0ICYmIHJldCAhPSAtRU5PSU9DVExDTUQpIHsNCj4+IC0J CXY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAic3RyZWFtIG9uIGZhaWxlZCBpbiBzdWJkZXZcbiIp Ow0KPj4gKwkJdjRsMl9lcnIoJmlzYy0+djRsMl9kZXYsICJzdHJlYW0gb24gZmFpbGVkIGluIHN1 YmRldiAlZFxuIiwNCj4+ICsJCQkgcmV0KTsNCj4+ICAgCQlnb3RvIGVycl9zdGFydF9zdHJlYW07 DQo+PiAgIAl9DQo+PiAgIA0KPj4gQEAgLTEyMjMsNiArOTg0LDIyIEBAIHN0YXRpYyB2b2lkIGlz Y19idWZmZXJfcXVldWUoc3RydWN0IHZiMl9idWZmZXIgKnZiKQ0KPj4gICAJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmaXNjLT5kbWFfcXVldWVfbG9jaywgZmxhZ3MpOw0KPj4gICB9DQo+PiAgIA0K Pj4gK3N0YXRpYyBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZmluZF9mb3JtYXRfYnlfZm91cmNjKHN0cnVj dCBpc2NfZGV2aWNlICppc2MsDQo+PiArCQkJCQkJIHVuc2lnbmVkIGludCBmb3VyY2MpDQo+PiAr ew0KPj4gKwl1bnNpZ25lZCBpbnQgbnVtX2Zvcm1hdHMgPSBpc2MtPm51bV91c2VyX2Zvcm1hdHM7 DQo+PiArCXN0cnVjdCBpc2NfZm9ybWF0ICpmbXQ7DQo+PiArCXVuc2lnbmVkIGludCBpOw0KPj4g Kw0KPj4gKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2Zvcm1hdHM7IGkrKykgew0KPj4gKwkJZm10ID0g aXNjLT51c2VyX2Zvcm1hdHNbaV07DQo+PiArCQlpZiAoZm10LT5mb3VyY2MgPT0gZm91cmNjKQ0K Pj4gKwkJCXJldHVybiBmbXQ7DQo+PiArCX0NCj4+ICsNCj4+ICsJcmV0dXJuIE5VTEw7DQo+PiAr fQ0KPj4gKw0KPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHZiMl9vcHMgaXNjX3ZiMl9vcHMgPSB7 DQo+PiAgIAkucXVldWVfc2V0dXAJCT0gaXNjX3F1ZXVlX3NldHVwLA0KPj4gICAJLndhaXRfcHJl cGFyZQkJPSB2YjJfb3BzX3dhaXRfcHJlcGFyZSwNCj4+IEBAIC0xMjQ5LDE1ICsxMDI2LDMxIEBA IHN0YXRpYyBpbnQgaXNjX3F1ZXJ5Y2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LA0K Pj4gICBzdGF0aWMgaW50IGlzY19lbnVtX2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2 b2lkICpwcml2LA0KPj4gICAJCQkJIHN0cnVjdCB2NGwyX2ZtdGRlc2MgKmYpDQo+PiAgIHsNCj4+ IC0Jc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9IHZpZGVvX2RydmRhdGEoZmlsZSk7DQo+PiAgIAl1 MzIgaW5kZXggPSBmLT5pbmRleDsNCj4+ICsJdTMyIGksIHN1cHBvcnRlZF9pbmRleDsNCj4+ICAg DQo+PiAtCWlmIChpbmRleCA+PSBpc2MtPm51bV91c2VyX2Zvcm1hdHMpDQo+PiAtCQlyZXR1cm4g LUVJTlZBTDsNCj4+ICsJaWYgKGluZGV4IDwgQVJSQVlfU0laRShjb250cm9sbGVyX2Zvcm1hdHMp KSB7DQo+PiArCQlmLT5waXhlbGZvcm1hdCA9IGNvbnRyb2xsZXJfZm9ybWF0c1tpbmRleF0uZm91 cmNjOw0KPj4gKwkJcmV0dXJuIDA7DQo+PiArCX0NCj4+ICAgDQo+PiAtCWYtPnBpeGVsZm9ybWF0 ID0gaXNjLT51c2VyX2Zvcm1hdHNbaW5kZXhdLT5mb3VyY2M7DQo+PiArCWluZGV4IC09IEFSUkFZ X1NJWkUoY29udHJvbGxlcl9mb3JtYXRzKTsNCj4+ICAgDQo+PiAtCXJldHVybiAwOw0KPj4gKwlp ID0gMDsNCj4+ICsJc3VwcG9ydGVkX2luZGV4ID0gMDsNCj4+ICsNCj4+ICsJZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUoZm9ybWF0c19saXN0KTsgaSsrKSB7DQo+PiArCQlpZiAoKChmb3JtYXRz X2xpc3RbaV0ubWJ1c19jb2RlICYgMHhmMDAwKSAhPSAweDMwMDApIHx8DQo+PiArCQkgICAgIWZv cm1hdHNfbGlzdFtpXS5zZF9zdXBwb3J0KQ0KPj4gKwkJCWNvbnRpbnVlOw0KPj4gKwkJaWYgKHN1 cHBvcnRlZF9pbmRleCA9PSBpbmRleCkgew0KPj4gKwkJCWYtPnBpeGVsZm9ybWF0ID0gZm9ybWF0 c19saXN0W2ldLmZvdXJjYzsNCj4+ICsJCQlyZXR1cm4gMDsNCj4+ICsJCX0NCj4+ICsJCXN1cHBv cnRlZF9pbmRleCsrOw0KPj4gKwl9DQo+PiArDQo+PiArCXJldHVybiAtRUlOVkFMOw0KPj4gICB9 DQo+PiAgIA0KPj4gICBzdGF0aWMgaW50IGlzY19nX2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpm aWxlLCB2b2lkICpwcml2LA0KPj4gQEAgLTEyNzAsMjYgKzEwNjMsMjMwIEBAIHN0YXRpYyBpbnQg aXNjX2dfZm10X3ZpZF9jYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsDQo+PiAgIAly ZXR1cm4gMDsNCj4+ICAgfQ0KPj4gICANCj4+IC1zdGF0aWMgc3RydWN0IGlzY19mb3JtYXQgKmZp bmRfZm9ybWF0X2J5X2ZvdXJjYyhzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4gLQkJCQkJCSB1 bnNpZ25lZCBpbnQgZm91cmNjKQ0KPj4gKy8qDQo+PiArICogQ2hlY2tzIHRoZSBjdXJyZW50IGNv bmZpZ3VyZWQgZm9ybWF0LCBpZiBJU0MgY2FuIG91dHB1dCBpdCwNCj4+ICsgKiBjb25zaWRlcmlu ZyB3aGljaCB0eXBlIG9mIGZvcm1hdCB0aGUgSVNDIHJlY2VpdmVzIGZyb20gdGhlIHNlbnNvcg0K Pj4gKyAqLw0KPj4gK3N0YXRpYyBpbnQgaXNjX3ZhbGlkYXRlX2Zvcm1hdHMoc3RydWN0IGlzY19k ZXZpY2UgKmlzYykNCj4+ICAgew0KPj4gLQl1bnNpZ25lZCBpbnQgbnVtX2Zvcm1hdHMgPSBpc2Mt Pm51bV91c2VyX2Zvcm1hdHM7DQo+PiAtCXN0cnVjdCBpc2NfZm9ybWF0ICpmbXQ7DQo+PiAtCXVu c2lnbmVkIGludCBpOw0KPj4gKwlpbnQgcmV0Ow0KPj4gKwlib29sIGJheWVyID0gZmFsc2UsIHl1 diA9IGZhbHNlLCByZ2IgPSBmYWxzZSwgZ3JleSA9IGZhbHNlOw0KPj4gKw0KPj4gKwkvKiBhbGwg Zm9ybWF0cyBzdXBwb3J0ZWQgYnkgdGhlIFJMUCBtb2R1bGUgYXJlIE9LICovDQo+PiArCXN3aXRj aCAoaXNjLT5jb25maWcuZm91cmNjKSB7DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1NCR0dSODoN Cj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfU0dCUkc4Og0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9T R1JCRzg6DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1NSR0dCODoNCj4+ICsJY2FzZSBWNEwyX1BJ WF9GTVRfU0JHR1IxMDoNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfU0dCUkcxMDoNCj4+ICsJY2Fz ZSBWNEwyX1BJWF9GTVRfU0dSQkcxMDoNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfU1JHR0IxMDoN Cj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfU0JHR1IxMjoNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRf U0dCUkcxMjoNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfU0dSQkcxMjoNCj4+ICsJY2FzZSBWNEwy X1BJWF9GTVRfU1JHR0IxMjoNCj4+ICsJCXJldCA9IDA7DQo+PiArCQliYXllciA9IHRydWU7DQo+ PiArCQlicmVhazsNCj4+ICAgDQo+PiAtCWZvciAoaSA9IDA7IGkgPCBudW1fZm9ybWF0czsgaSsr KSB7DQo+PiAtCQlmbXQgPSBpc2MtPnVzZXJfZm9ybWF0c1tpXTsNCj4+IC0JCWlmIChmbXQtPmZv dXJjYyA9PSBmb3VyY2MpDQo+PiAtCQkJcmV0dXJuIGZtdDsNCj4+ICsJY2FzZSBWNEwyX1BJWF9G TVRfWVVWNDIwOg0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9ZVVY0MjJQOg0KPj4gKwljYXNlIFY0 TDJfUElYX0ZNVF9ZVVlWOg0KPj4gKwkJcmV0ID0gMDsNCj4+ICsJCXl1diA9IHRydWU7DQo+PiAr CQlicmVhazsNCj4+ICsNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfUkdCNTY1Og0KPj4gKwljYXNl IFY0TDJfUElYX0ZNVF9BUkdCMzI6DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX0FSR0I0NDQ6DQo+ PiArCWNhc2UgVjRMMl9QSVhfRk1UX0FSR0I1NTU6DQo+PiArCQlyZXQgPSAwOw0KPj4gKwkJcmdi ID0gdHJ1ZTsNCj4+ICsJCWJyZWFrOw0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9HUkVZOg0KPj4g KwkJcmV0ID0gMDsNCj4+ICsJCWdyZXkgPSB0cnVlOw0KPj4gKwkJYnJlYWs7DQo+PiArCWRlZmF1 bHQ6DQo+PiArCS8qIGFueSBvdGhlciBkaWZmZXJlbnQgZm9ybWF0cyBhcmUgbm90IHN1cHBvcnRl ZCAqLw0KPj4gKwkJcmV0ID0gLUVJTlZBTDsNCj4+ICAgCX0NCj4+ICAgDQo+PiAtCXJldHVybiBO VUxMOw0KPj4gKwkvKiB3ZSBjYW5ub3Qgb3V0cHV0IFJBVy9HcmV5IGlmIHdlIGRvIG5vdCByZWNl aXZlIFJBVyAqLw0KPj4gKwlpZiAoKGJheWVyIHx8IGdyZXkpICYmICFJU0NfSVNfU0VOU09SX1JB V19NT0RFKGlzYykpDQo+PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4+ICsNCj4+ICsJcmV0dXJuIHJl dDsNCj4+ICt9DQo+PiArDQo+PiArLyoNCj4+ICsgKiBDb25maWd1cmVzIHRoZSBSTFAgYW5kIERN QSBtb2R1bGVzLCBkZXBlbmRpbmcgb24gdGhlIG91dHB1dCBmb3JtYXQNCj4+ICsgKiBjb25maWd1 cmVkIGZvciB0aGUgSVNDLg0KPj4gKyAqIElmIGRpcmVjdF9kdW1wID09IHRydWUsIGp1c3QgZHVt cCByYXcgZGF0YSA4IGJpdHMuDQo+PiArICovDQo+PiArc3RhdGljIGludCBpc2NfY29uZmlndXJl X3JscF9kbWEoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgYm9vbCBkaXJlY3RfZHVtcCkNCj4+ICt7 DQo+PiArCWlmIChkaXJlY3RfZHVtcCkgew0KPj4gKwkJaXNjLT5jb25maWcucmxwX2NmZ19tb2Rl ID0gSVNDX1JMUF9DRkdfTU9ERV9EQVQ4Ow0KPj4gKwkJaXNjLT5jb25maWcuZGNmZ19pbW9kZSA9 IElTQ19EQ0ZHX0lNT0RFX1BBQ0tFRDg7DQo+PiArCQlpc2MtPmNvbmZpZy5kY3RybF9kdmlldyA9 IElTQ19EQ1RSTF9EVklFV19QQUNLRUQ7DQo+PiArCQlpc2MtPmNvbmZpZy5icHAgPSAxNjsNCj4+ ICsJCXJldHVybiAwOw0KPj4gKwl9DQo+PiArDQo+PiArCXN3aXRjaCAoaXNjLT5jb25maWcuZm91 cmNjKSB7DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1NCR0dSODoNCj4+ICsJY2FzZSBWNEwyX1BJ WF9GTVRfU0dCUkc4Og0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9TR1JCRzg6DQo+PiArCWNhc2Ug VjRMMl9QSVhfRk1UX1NSR0dCODoNCj4+ICsJCWlzYy0+Y29uZmlnLnJscF9jZmdfbW9kZSA9IElT Q19STFBfQ0ZHX01PREVfREFUODsNCj4+ICsJCWlzYy0+Y29uZmlnLmRjZmdfaW1vZGUgPSBJU0Nf RENGR19JTU9ERV9QQUNLRUQ4Ow0KPj4gKwkJaXNjLT5jb25maWcuZGN0cmxfZHZpZXcgPSBJU0Nf RENUUkxfRFZJRVdfUEFDS0VEOw0KPj4gKwkJaXNjLT5jb25maWcuYnBwID0gODsNCj4+ICsJCWJy ZWFrOw0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9TQkdHUjEwOg0KPj4gKwljYXNlIFY0TDJfUElY X0ZNVF9TR0JSRzEwOg0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9TR1JCRzEwOg0KPj4gKwljYXNl IFY0TDJfUElYX0ZNVF9TUkdHQjEwOg0KPj4gKwkJaXNjLT5jb25maWcucmxwX2NmZ19tb2RlID0g SVNDX1JMUF9DRkdfTU9ERV9EQVQxMDsNCj4+ICsJCWlzYy0+Y29uZmlnLmRjZmdfaW1vZGUgPSBJ U0NfRENGR19JTU9ERV9QQUNLRUQxNjsNCj4+ICsJCWlzYy0+Y29uZmlnLmRjdHJsX2R2aWV3ID0g SVNDX0RDVFJMX0RWSUVXX1BBQ0tFRDsNCj4+ICsJCWlzYy0+Y29uZmlnLmJwcCA9IDE2Ow0KPj4g KwkJYnJlYWs7DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1NCR0dSMTI6DQo+PiArCWNhc2UgVjRM Ml9QSVhfRk1UX1NHQlJHMTI6DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1NHUkJHMTI6DQo+PiAr CWNhc2UgVjRMMl9QSVhfRk1UX1NSR0dCMTI6DQo+PiArCQlpc2MtPmNvbmZpZy5ybHBfY2ZnX21v ZGUgPSBJU0NfUkxQX0NGR19NT0RFX0RBVDEyOw0KPj4gKwkJaXNjLT5jb25maWcuZGNmZ19pbW9k ZSA9IElTQ19EQ0ZHX0lNT0RFX1BBQ0tFRDE2Ow0KPj4gKwkJaXNjLT5jb25maWcuZGN0cmxfZHZp ZXcgPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VEOw0KPj4gKwkJaXNjLT5jb25maWcuYnBwID0gMTY7 DQo+PiArCQlicmVhazsNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfUkdCNTY1Og0KPj4gKwkJaXNj LT5jb25maWcucmxwX2NmZ19tb2RlID0gSVNDX1JMUF9DRkdfTU9ERV9SR0I1NjU7DQo+PiArCQlp c2MtPmNvbmZpZy5kY2ZnX2ltb2RlID0gSVNDX0RDRkdfSU1PREVfUEFDS0VEMTY7DQo+PiArCQlp c2MtPmNvbmZpZy5kY3RybF9kdmlldyA9IElTQ19EQ1RSTF9EVklFV19QQUNLRUQ7DQo+PiArCQlp c2MtPmNvbmZpZy5icHAgPSAxNjsNCj4+ICsJCWJyZWFrOw0KPj4gKwljYXNlIFY0TDJfUElYX0ZN VF9BUkdCNDQ0Og0KPj4gKwkJaXNjLT5jb25maWcucmxwX2NmZ19tb2RlID0gSVNDX1JMUF9DRkdf TU9ERV9BUkdCNDQ0Ow0KPj4gKwkJaXNjLT5jb25maWcuZGNmZ19pbW9kZSA9IElTQ19EQ0ZHX0lN T0RFX1BBQ0tFRDE2Ow0KPj4gKwkJaXNjLT5jb25maWcuZGN0cmxfZHZpZXcgPSBJU0NfRENUUkxf RFZJRVdfUEFDS0VEOw0KPj4gKwkJaXNjLT5jb25maWcuYnBwID0gMTY7DQo+PiArCQlicmVhazsN Cj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfQVJHQjU1NToNCj4+ICsJCWlzYy0+Y29uZmlnLnJscF9j ZmdfbW9kZSA9IElTQ19STFBfQ0ZHX01PREVfQVJHQjU1NTsNCj4+ICsJCWlzYy0+Y29uZmlnLmRj ZmdfaW1vZGUgPSBJU0NfRENGR19JTU9ERV9QQUNLRUQxNjsNCj4+ICsJCWlzYy0+Y29uZmlnLmRj dHJsX2R2aWV3ID0gSVNDX0RDVFJMX0RWSUVXX1BBQ0tFRDsNCj4+ICsJCWlzYy0+Y29uZmlnLmJw cCA9IDE2Ow0KPj4gKwkJYnJlYWs7DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX0FSR0IzMjoNCj4+ ICsJCWlzYy0+Y29uZmlnLnJscF9jZmdfbW9kZSA9IElTQ19STFBfQ0ZHX01PREVfQVJHQjMyOw0K Pj4gKwkJaXNjLT5jb25maWcuZGNmZ19pbW9kZSA9IElTQ19EQ0ZHX0lNT0RFX1BBQ0tFRDMyOw0K Pj4gKwkJaXNjLT5jb25maWcuZGN0cmxfZHZpZXcgPSBJU0NfRENUUkxfRFZJRVdfUEFDS0VEOw0K Pj4gKwkJaXNjLT5jb25maWcuYnBwID0gMzI7DQo+PiArCQlicmVhazsNCj4+ICsJY2FzZSBWNEwy X1BJWF9GTVRfWVVWNDIwOg0KPj4gKwkJaXNjLT5jb25maWcucmxwX2NmZ19tb2RlID0gSVNDX1JM UF9DRkdfTU9ERV9ZWUNDOw0KPj4gKwkJaXNjLT5jb25maWcuZGNmZ19pbW9kZSA9IElTQ19EQ0ZH X0lNT0RFX1lDNDIwUDsNCj4+ICsJCWlzYy0+Y29uZmlnLmRjdHJsX2R2aWV3ID0gSVNDX0RDVFJM X0RWSUVXX1BMQU5BUjsNCj4+ICsJCWlzYy0+Y29uZmlnLmJwcCA9IDEyOw0KPj4gKwkJYnJlYWs7 DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1lVVjQyMlA6DQo+PiArCQlpc2MtPmNvbmZpZy5ybHBf Y2ZnX21vZGUgPSBJU0NfUkxQX0NGR19NT0RFX1lZQ0M7DQo+PiArCQlpc2MtPmNvbmZpZy5kY2Zn X2ltb2RlID0gSVNDX0RDRkdfSU1PREVfWUM0MjJQOw0KPj4gKwkJaXNjLT5jb25maWcuZGN0cmxf ZHZpZXcgPSBJU0NfRENUUkxfRFZJRVdfUExBTkFSOw0KPj4gKwkJaXNjLT5jb25maWcuYnBwID0g MTY7DQo+PiArCQlicmVhazsNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfWVVZVjoNCj4+ICsJCWlz Yy0+Y29uZmlnLnJscF9jZmdfbW9kZSA9IElTQ19STFBfQ0ZHX01PREVfWVlDQzsNCj4+ICsJCWlz Yy0+Y29uZmlnLmRjZmdfaW1vZGUgPSBJU0NfRENGR19JTU9ERV9QQUNLRUQzMjsNCj4+ICsJCWlz Yy0+Y29uZmlnLmRjdHJsX2R2aWV3ID0gSVNDX0RDVFJMX0RWSUVXX1BBQ0tFRDsNCj4+ICsJCWlz Yy0+Y29uZmlnLmJwcCA9IDE2Ow0KPj4gKwkJYnJlYWs7DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1U X0dSRVk6DQo+PiArCQlpc2MtPmNvbmZpZy5ybHBfY2ZnX21vZGUgPSBJU0NfUkxQX0NGR19NT0RF X0RBVFk4Ow0KPj4gKwkJaXNjLT5jb25maWcuZGNmZ19pbW9kZSA9IElTQ19EQ0ZHX0lNT0RFX1BB Q0tFRDg7DQo+PiArCQlpc2MtPmNvbmZpZy5kY3RybF9kdmlldyA9IElTQ19EQ1RSTF9EVklFV19Q QUNLRUQ7DQo+PiArCQlpc2MtPmNvbmZpZy5icHAgPSA4Ow0KPj4gKwkJYnJlYWs7DQo+PiArCWRl ZmF1bHQ6DQo+PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4+ICsJfQ0KPj4gKwlyZXR1cm4gMDsNCj4+ ICt9DQo+PiArDQo+PiArLyoNCj4+ICsgKiBDb25maWd1cmluZyBwaXBlbGluZSBtb2R1bGVzLCBk ZXBlbmRpbmcgb24gd2hpY2ggZm9ybWF0IHRoZSBJU0Mgb3V0cHV0cw0KPj4gKyAqIGFuZCBjb25z aWRlcmluZyB3aGljaCBmb3JtYXQgaXQgaGFzIGFzIGlucHV0IGZyb20gdGhlIHNlbnNvci4NCj4+ ICsgKi8NCj4+ICtzdGF0aWMgaW50IGlzY19jb25maWd1cmVfcGlwZWxpbmUoc3RydWN0IGlzY19k ZXZpY2UgKmlzYykNCj4+ICt7DQo+PiArCXN3aXRjaCAoaXNjLT5jb25maWcuZm91cmNjKSB7DQo+ PiArCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjU2NToNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfQVJH QjU1NToNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfQVJHQjQ0NDoNCj4+ICsJY2FzZSBWNEwyX1BJ WF9GTVRfQVJHQjMyOg0KPj4gKwkJLyogaWYgc2Vuc29yIGZvcm1hdCBpcyBSQVcsIHdlIGNvbnZl cnQgaW5zaWRlIElTQyAqLw0KPj4gKwkJaWYgKElTQ19JU19TRU5TT1JfUkFXX01PREUoaXNjKSkg ew0KPj4gKwkJCWlzYy0+Y29uZmlnLmJpdHNfcGlwZWxpbmUgPSBDRkFfRU5BQkxFIHwNCj4+ICsJ CQkJV0JfRU5BQkxFIHwgR0FNX0VOQUJMRVM7DQo+PiArCQl9IGVsc2Ugew0KPj4gKwkJCWlzYy0+ Y29uZmlnLmJpdHNfcGlwZWxpbmUgPSAweDA7DQo+PiArCQl9DQo+PiArCQlicmVhazsNCj4+ICsJ Y2FzZSBWNEwyX1BJWF9GTVRfWVVWNDIwOg0KPj4gKwkJLyogaWYgc2Vuc29yIGZvcm1hdCBpcyBS QVcsIHdlIGNvbnZlcnQgaW5zaWRlIElTQyAqLw0KPj4gKwkJaWYgKElTQ19JU19TRU5TT1JfUkFX X01PREUoaXNjKSkgew0KPj4gKwkJCWlzYy0+Y29uZmlnLmJpdHNfcGlwZWxpbmUgPSBDRkFfRU5B QkxFIHwNCj4+ICsJCQkJQ1NDX0VOQUJMRSB8IFdCX0VOQUJMRSB8IEdBTV9FTkFCTEVTIHwNCj4+ ICsJCQkJU1VCNDIwX0VOQUJMRSB8IFNVQjQyMl9FTkFCTEUgfCBDQkNfRU5BQkxFOw0KPj4gKwkJ fSBlbHNlIHsNCj4+ICsJCQlpc2MtPmNvbmZpZy5iaXRzX3BpcGVsaW5lID0gMHgwOw0KPj4gKwkJ fQ0KPj4gKwkJYnJlYWs7DQo+PiArCWNhc2UgVjRMMl9QSVhfRk1UX1lVVjQyMlA6DQo+PiArCQkv KiBpZiBzZW5zb3IgZm9ybWF0IGlzIFJBVywgd2UgY29udmVydCBpbnNpZGUgSVNDICovDQo+PiAr CQlpZiAoSVNDX0lTX1NFTlNPUl9SQVdfTU9ERShpc2MpKSB7DQo+PiArCQkJaXNjLT5jb25maWcu Yml0c19waXBlbGluZSA9IENGQV9FTkFCTEUgfA0KPj4gKwkJCQlDU0NfRU5BQkxFIHwgV0JfRU5B QkxFIHwgR0FNX0VOQUJMRVMgfA0KPj4gKwkJCQlTVUI0MjJfRU5BQkxFIHwgQ0JDX0VOQUJMRTsN Cj4+ICsJCX0gZWxzZSB7DQo+PiArCQkJaXNjLT5jb25maWcuYml0c19waXBlbGluZSA9IDB4MDsN Cj4+ICsJCX0NCj4+ICsJCWJyZWFrOw0KPj4gKwljYXNlIFY0TDJfUElYX0ZNVF9ZVVlWOg0KPj4g KwkJLyogaWYgc2Vuc29yIGZvcm1hdCBpcyBSQVcsIHdlIGNvbnZlcnQgaW5zaWRlIElTQyAqLw0K Pj4gKwkJaWYgKElTQ19JU19TRU5TT1JfUkFXX01PREUoaXNjKSkgew0KPj4gKwkJCWlzYy0+Y29u ZmlnLmJpdHNfcGlwZWxpbmUgPSBDRkFfRU5BQkxFIHwNCj4+ICsJCQkJQ1NDX0VOQUJMRSB8IFdC X0VOQUJMRSB8IEdBTV9FTkFCTEVTIHwNCj4+ICsJCQkJU1VCNDIyX0VOQUJMRSB8IENCQ19FTkFC TEU7DQo+PiArCQl9IGVsc2Ugew0KPj4gKwkJCWlzYy0+Y29uZmlnLmJpdHNfcGlwZWxpbmUgPSAw eDA7DQo+PiArCQl9DQo+PiArCQlicmVhazsNCj4+ICsJY2FzZSBWNEwyX1BJWF9GTVRfR1JFWToN Cj4+ICsJCS8qIGlmIHNlbnNvciBmb3JtYXQgaXMgUkFXLCB3ZSBjb252ZXJ0IGluc2lkZSBJU0Mg Ki8NCj4+ICsJCWlmIChJU0NfSVNfU0VOU09SX1JBV19NT0RFKGlzYykpIHsNCj4+ICsJCQlpc2Mt PmNvbmZpZy5iaXRzX3BpcGVsaW5lID0gQ0ZBX0VOQUJMRSB8DQo+PiArCQkJCUNTQ19FTkFCTEUg fCBXQl9FTkFCTEUgfCBHQU1fRU5BQkxFUyB8DQo+PiArCQkJCUNCQ19FTkFCTEU7DQo+PiArCQl9 IGVsc2Ugew0KPj4gKwkJCWlzYy0+Y29uZmlnLmJpdHNfcGlwZWxpbmUgPSAweDA7DQo+PiArCQl9 DQo+PiArCQlicmVhazsNCj4+ICsJZGVmYXVsdDoNCj4+ICsJCWlzYy0+Y29uZmlnLmJpdHNfcGlw ZWxpbmUgPSAweDA7DQo+PiArCX0NCj4+ICsJcmV0dXJuIDA7DQo+PiAgIH0NCj4+ICAgDQo+PiAg IHN0YXRpYyBpbnQgaXNjX3RyeV9mbXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgc3RydWN0IHY0 bDJfZm9ybWF0ICpmLA0KPj4gLQkJCXN0cnVjdCBpc2NfZm9ybWF0ICoqY3VycmVudF9mbXQsIHUz MiAqY29kZSkNCj4+ICsJCQl1MzIgKmNvZGUpDQo+PiAgIHsNCj4+IC0Jc3RydWN0IGlzY19mb3Jt YXQgKmlzY19mbXQ7DQo+PiArCWludCBpOw0KPj4gKwlzdHJ1Y3QgaXNjX2Zvcm1hdCAqc2RfZm10 ID0gTlVMTCwgKmRpcmVjdF9mbXQgPSBOVUxMOw0KPj4gICAJc3RydWN0IHY0bDJfcGl4X2Zvcm1h dCAqcGl4Zm10ID0gJmYtPmZtdC5waXg7DQo+PiAgIAlzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX2Nv bmZpZyBwYWRfY2ZnOw0KPj4gICAJc3RydWN0IHY0bDJfc3ViZGV2X2Zvcm1hdCBmb3JtYXQgPSB7 DQo+PiBAQCAtMTI5Nyw0OCArMTI5NCwxMTQgQEAgc3RhdGljIGludCBpc2NfdHJ5X2ZtdChzdHJ1 Y3QgaXNjX2RldmljZSAqaXNjLCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYsDQo+PiAgIAl9Ow0KPj4g ICAJdTMyIG1idXNfY29kZTsNCj4+ICAgCWludCByZXQ7DQo+PiArCWJvb2wgcmxwX2RtYV9kaXJl Y3RfZHVtcCA9IGZhbHNlOw0KPj4gICANCj4+ICAgCWlmIChmLT50eXBlICE9IFY0TDJfQlVGX1RZ UEVfVklERU9fQ0FQVFVSRSkNCj4+ICAgCQlyZXR1cm4gLUVJTlZBTDsNCj4+ICAgDQo+PiAtCWlz Y19mbXQgPSBmaW5kX2Zvcm1hdF9ieV9mb3VyY2MoaXNjLCBwaXhmbXQtPnBpeGVsZm9ybWF0KTsN Cj4+IC0JaWYgKCFpc2NfZm10KSB7DQo+PiAtCQl2NGwyX3dhcm4oJmlzYy0+djRsMl9kZXYsICJG b3JtYXQgMHgleCBub3QgZm91bmRcbiIsDQo+PiAtCQkJICBwaXhmbXQtPnBpeGVsZm9ybWF0KTsN Cj4+IC0JCWlzY19mbXQgPSBpc2MtPnVzZXJfZm9ybWF0c1tpc2MtPm51bV91c2VyX2Zvcm1hdHMg LSAxXTsNCj4+IC0JCXBpeGZtdC0+cGl4ZWxmb3JtYXQgPSBpc2NfZm10LT5mb3VyY2M7DQo+PiAr CS8qIFN0ZXAgMTogZmluZCBhIFJBVyBmb3JtYXQgdGhhdCBpcyBzdXBwb3J0ZWQgKi8NCj4+ICsJ Zm9yIChpID0gMDsgaSA8IGlzYy0+bnVtX3VzZXJfZm9ybWF0czsgaSsrKSB7DQo+PiArCQlpZiAo KGlzYy0+dXNlcl9mb3JtYXRzW2ldLT5tYnVzX2NvZGUgJiAweGYwMDApID09IDB4MzAwMCkgew0K Pj4gKwkJCXNkX2ZtdCA9IGlzYy0+dXNlcl9mb3JtYXRzW2ldOw0KPj4gKwkJCWJyZWFrOw0KPj4g KwkJfQ0KPj4gKwl9DQo+PiArCS8qIFN0ZXAgMjogV2UgY2FuIGNvbnRpbnVlIHdpdGggdGhpcyBS QVcgZm9ybWF0LCBvciB3ZSBjYW4gbG9vaw0KPj4gKwkgKiBmb3IgYmV0dGVyOiBtYXliZSBzZW5z b3Igc3VwcG9ydHMgZGlyZWN0bHkgd2hhdCB3ZSBuZWVkLg0KPj4gKwkgKi8NCj4+ICsJZGlyZWN0 X2ZtdCA9IGZpbmRfZm9ybWF0X2J5X2ZvdXJjYyhpc2MsIHBpeGZtdC0+cGl4ZWxmb3JtYXQpOw0K Pj4gKw0KPj4gKwkvKiBTdGVwIDM6IFdlIGhhdmUgYm90aC4gV2UgZGVjaWRlIGdpdmVuIHRoZSBt b2R1bGUgcGFyYW1ldGVyIHdoaWNoDQo+PiArCSAqIG9uZSB0byB1c2UuDQo+PiArCSAqLw0KPj4g KwlpZiAoZGlyZWN0X2ZtdCAmJiBzZF9mbXQgJiYgc2Vuc29yX3ByZWZlcnJlZCkNCj4+ICsJCXNk X2ZtdCA9IGRpcmVjdF9mbXQ7DQo+PiArDQo+PiArCS8qIFN0ZXAgNDogd2UgZG8gbm90IGhhdmUg UkFXIGJ1dCB3ZSBoYXZlIGEgZGlyZWN0IGZvcm1hdC4gVXNlIGl0LiAqLw0KPj4gKwlpZiAoZGly ZWN0X2ZtdCAmJiAhc2RfZm10KQ0KPj4gKwkJc2RfZm10ID0gZGlyZWN0X2ZtdDsNCj4+ICsNCj4+ ICsJLyogU3RlcCA1OiBpZiB3ZSBhcmUgdXNpbmcgYSBkaXJlY3QgZm9ybWF0LCB3ZSBuZWVkIHRv IHBhY2thZ2UNCj4+ICsJICogZXZlcnl0aGluZyBhcyA4IGJpdCBkYXRhIGFuZCBqdXN0IGR1bXAg aXQNCj4+ICsJICovDQo+PiArCWlmIChzZF9mbXQgPT0gZGlyZWN0X2ZtdCkNCj4+ICsJCXJscF9k bWFfZGlyZWN0X2R1bXAgPSB0cnVlOw0KPj4gKw0KPj4gKwkvKiBTdGVwIDY6IFdlIGhhdmUgbm8g Zm9ybWF0LiBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHVzZXJzcGFjZQ0KPj4gKwkgKiByZXF1ZXN0 cyBzb21lIHdlaXJkL2ludmFsaWQgZm9ybWF0Lg0KPj4gKwkgKiBJbiB0aGlzIGNhc2UsIGRlZmF1 bHQgdG8gd2hhdGV2ZXIgd2UgaGF2ZQ0KPj4gKwkgKi8NCj4+ICsJaWYgKCFzZF9mbXQgJiYgIWRp cmVjdF9mbXQpIHsNCj4+ICsJCXNkX2ZtdCA9IGlzYy0+dXNlcl9mb3JtYXRzW2lzYy0+bnVtX3Vz ZXJfZm9ybWF0cyAtIDFdOw0KPj4gKwkJdjRsMl9kYmcoMSwgZGVidWcsICZpc2MtPnY0bDJfZGV2 LA0KPj4gKwkJCSAiU2Vuc29yIG5vdCBzdXBwb3J0aW5nICUuNHMsIHVzaW5nICUuNHNcbiIsDQo+ PiArCQkJIChjaGFyICopJnBpeGZtdC0+cGl4ZWxmb3JtYXQsIChjaGFyICopJnNkX2ZtdC0+Zm91 cmNjKTsNCj4+ICAgCX0NCj4+ICAgDQo+PiArCS8qIFN0ZXAgNzogUHJpbnQgb3V0IHdoYXQgd2Ug ZGVjaWRlZCBmb3IgZGVidWdnaW5nICovDQo+PiArCXY0bDJfZGJnKDEsIGRlYnVnLCAmaXNjLT52 NGwyX2RldiwNCj4+ICsJCSAiUHJlZmVycmluZyB0byBoYXZlIHNlbnNvciB1c2luZyBmb3JtYXQg JS40c1xuIiwNCj4+ICsJCSAoY2hhciAqKSZzZF9mbXQtPmZvdXJjYyk7DQo+PiArDQo+PiArCS8q IFN0ZXAgODogYXQgdGhpcyBtb21lbnQgd2UgZGVjaWRlZCB3aGljaCBmb3JtYXQgdGhlIHN1YmRl diB3aWxsIHVzZSAqLw0KPj4gKwlpc2MtPmNvbmZpZy5zZF9mb3JtYXQgPSBzZF9mbXQ7DQo+IA0K PiBUaGlzIGlzIHRyeV9mbXQoKSwgaS5lLiBpdCBvbmx5IHZhbGlkYXRlcyBhbmQgZG9lcyBub3Qg YWN0dWFsbHkgbWFrZQ0KPiBhbnkgY2hhbmdlcy4gQnV0IHRoaXMgbGluZSBzdWdnZXN0cyB0aGF0 IHNvbWV0aGluZyBpcyBhY3R1YWxseSBjaGFuZ2VkLg0KPiANCj4gQXJlIHlvdSBzdXJlIHRoaXMg aXMgY29ycmVjdD8gVFJZX0ZNVCBtdXN0IG5vdCBoYXZlIGFueSBzaWRlLWVmZmVjdHMsIGFuZA0K PiBpdCBjYW4gYWxzbyBiZSBjYWxsZWQgd2hpbGUgc3RyZWFtaW5nLg0KPiANCj4gSWYgbm90aGlu ZyBlbHNlIGl0IHdvdWxkIG5lZWQgc29tZSBjb21tZW50cyBleHBsYWluaW5nIHdoeSB0aGlzIGlz IHNhZmUuDQo+IA0KPj4gKw0KPj4gICAJLyogTGltaXQgdG8gQXRtZWwgSVNDIGhhcmR3YXJlIGNh cGFiaWxpdGllcyAqLw0KPj4gICAJaWYgKHBpeGZtdC0+d2lkdGggPiBJU0NfTUFYX1NVUFBPUlRf V0lEVEgpDQo+PiAgIAkJcGl4Zm10LT53aWR0aCA9IElTQ19NQVhfU1VQUE9SVF9XSURUSDsNCj4+ ICAgCWlmIChwaXhmbXQtPmhlaWdodCA+IElTQ19NQVhfU1VQUE9SVF9IRUlHSFQpDQo+PiAgIAkJ cGl4Zm10LT5oZWlnaHQgPSBJU0NfTUFYX1NVUFBPUlRfSEVJR0hUOw0KPj4gICANCj4+IC0JaWYg KHNlbnNvcl9pc19wcmVmZXJyZWQoaXNjX2ZtdCkpDQo+PiAtCQltYnVzX2NvZGUgPSBpc2NfZm10 LT5tYnVzX2NvZGU7DQo+PiAtCWVsc2UNCj4+IC0JCW1idXNfY29kZSA9IGlzYy0+cmF3X2ZtdC0+ bWJ1c19jb2RlOw0KPj4gKwkvKg0KPj4gKwkgKiBUaGUgbWJ1cyBmb3JtYXQgaXMgdGhlIG9uZSB0 aGUgc3ViZGV2IG91dHB1dHMuDQo+PiArCSAqIFRoZSBwaXhlbHMgd2lsbCBiZSB0cmFuc2ZlcnJl ZCBpbiB0aGlzIGZvcm1hdCBTZW5zb3IgLT4gSVNDDQo+PiArCSAqLw0KPj4gKwltYnVzX2NvZGUg PSBzZF9mbXQtPm1idXNfY29kZTsNCj4+ICsNCj4+ICsJLyoNCj4+ICsJICogVmFsaWRhdGUgZm9y bWF0cy4gSWYgdGhlIHJlcXVpcmVkIGZvcm1hdCBpcyBub3QgT0ssIGRlZmF1bHQgdG8gcmF3Lg0K Pj4gKwkgKi8NCj4+ICsNCj4+ICsJaXNjLT5jb25maWcuZm91cmNjID0gcGl4Zm10LT5waXhlbGZv cm1hdDsNCj4+ICsNCj4+ICsJaWYgKGlzY192YWxpZGF0ZV9mb3JtYXRzKGlzYykpIHsNCj4+ICsJ CXBpeGZtdC0+cGl4ZWxmb3JtYXQgPSBpc2MtPmNvbmZpZy5mb3VyY2MgPSBzZF9mbXQtPmZvdXJj YzsNCj4+ICsJCS8qIFRoaXMgc2hvdWxkIGJlIHJlZHVuZGFudCwgZm9ybWF0IHNob3VsZCBiZSBz dXBwb3J0ZWQgKi8NCj4+ICsJCXJldCA9IGlzY192YWxpZGF0ZV9mb3JtYXRzKGlzYyk7DQo+PiAr CQlpZiAocmV0KQ0KPj4gKwkJCWdvdG8gaXNjX3RyeV9mbXRfZXJyOw0KPj4gKwl9DQo+PiArDQo+ PiArCXJldCA9IGlzY19jb25maWd1cmVfcmxwX2RtYShpc2MsIHJscF9kbWFfZGlyZWN0X2R1bXAp Ow0KPj4gKwlpZiAocmV0KQ0KPj4gKwkJZ290byBpc2NfdHJ5X2ZtdF9lcnI7DQo+PiArDQo+PiAr CXJldCA9IGlzY19jb25maWd1cmVfcGlwZWxpbmUoaXNjKTsNCj4+ICsJaWYgKHJldCkNCj4+ICsJ CWdvdG8gaXNjX3RyeV9mbXRfZXJyOw0KPj4gICANCj4+ICAgCXY0bDJfZmlsbF9tYnVzX2Zvcm1h dCgmZm9ybWF0LmZvcm1hdCwgcGl4Zm10LCBtYnVzX2NvZGUpOw0KPj4gICAJcmV0ID0gdjRsMl9z dWJkZXZfY2FsbChpc2MtPmN1cnJlbnRfc3ViZGV2LT5zZCwgcGFkLCBzZXRfZm10LA0KPj4gICAJ CQkgICAgICAgJnBhZF9jZmcsICZmb3JtYXQpOw0KPj4gICAJaWYgKHJldCA8IDApDQo+PiAtCQly ZXR1cm4gcmV0Ow0KPj4gKwkJZ290byBpc2NfdHJ5X2ZtdF9lcnI7DQo+PiAgIA0KPj4gICAJdjRs Ml9maWxsX3BpeF9mb3JtYXQocGl4Zm10LCAmZm9ybWF0LmZvcm1hdCk7DQo+PiAgIA0KPj4gICAJ cGl4Zm10LT5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsNCj4+IC0JcGl4Zm10LT5ieXRlc3Blcmxp bmUgPSAocGl4Zm10LT53aWR0aCAqIGlzY19mbXQtPmJwcCkgPj4gMzsNCj4+ICsJcGl4Zm10LT5i eXRlc3BlcmxpbmUgPSAocGl4Zm10LT53aWR0aCAqIGlzYy0+Y29uZmlnLmJwcCkgPj4gMzsNCj4+ ICAgCXBpeGZtdC0+c2l6ZWltYWdlID0gcGl4Zm10LT5ieXRlc3BlcmxpbmUgKiBwaXhmbXQtPmhl aWdodDsNCj4+ICAgDQo+PiAtCWlmIChjdXJyZW50X2ZtdCkNCj4+IC0JCSpjdXJyZW50X2ZtdCA9 IGlzY19mbXQ7DQo+PiAtDQo+PiAgIAlpZiAoY29kZSkNCj4+ICAgCQkqY29kZSA9IG1idXNfY29k ZTsNCj4+ICAgDQo+PiAgIAlyZXR1cm4gMDsNCj4+ICsNCj4+ICtpc2NfdHJ5X2ZtdF9lcnI6DQo+ PiArCXY0bDJfZXJyKCZpc2MtPnY0bDJfZGV2LCAiQ291bGQgbm90IGZpbmQgYW55IHBvc3NpYmxl IGZvcm1hdCBmb3IgYSB3b3JraW5nIHBpcGVsaW5lXG4iKTsNCj4+ICsJbWVtc2V0KCZpc2MtPmNv bmZpZywgMCwgc2l6ZW9mKGlzYy0+Y29uZmlnKSk7DQo+PiArDQo+PiArCXJldHVybiByZXQ7DQo+ PiAgIH0NCj4+ICAgDQo+PiAgIHN0YXRpYyBpbnQgaXNjX3NldF9mbXQoc3RydWN0IGlzY19kZXZp Y2UgKmlzYywgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KPj4gQEAgLTEzNDYsMTEgKzE0MDksMTAg QEAgc3RhdGljIGludCBpc2Nfc2V0X2ZtdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCBzdHJ1Y3Qg djRsMl9mb3JtYXQgKmYpDQo+PiAgIAlzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0IGZvcm1hdCA9 IHsNCj4+ICAgCQkud2hpY2ggPSBWNEwyX1NVQkRFVl9GT1JNQVRfQUNUSVZFLA0KPj4gICAJfTsN Cj4+IC0Jc3RydWN0IGlzY19mb3JtYXQgKmN1cnJlbnRfZm10Ow0KPj4gLQl1MzIgbWJ1c19jb2Rl Ow0KPj4gKwl1MzIgbWJ1c19jb2RlID0gMDsNCj4+ICAgCWludCByZXQ7DQo+PiAgIA0KPj4gLQly ZXQgPSBpc2NfdHJ5X2ZtdChpc2MsIGYsICZjdXJyZW50X2ZtdCwgJm1idXNfY29kZSk7DQo+PiAr CXJldCA9IGlzY190cnlfZm10KGlzYywgZiwgJm1idXNfY29kZSk7DQo+PiAgIAlpZiAocmV0KQ0K Pj4gICAJCXJldHVybiByZXQ7DQo+PiAgIA0KPj4gQEAgLTEzNjEsNyArMTQyMyw2IEBAIHN0YXRp YyBpbnQgaXNjX3NldF9mbXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYywgc3RydWN0IHY0bDJfZm9y bWF0ICpmKQ0KPj4gICAJCXJldHVybiByZXQ7DQo+PiAgIA0KPj4gICAJaXNjLT5mbXQgPSAqZjsN Cj4+IC0JaXNjLT5jdXJyZW50X2ZtdCA9IGN1cnJlbnRfZm10Ow0KPj4gICANCj4+ICAgCXJldHVy biAwOw0KPj4gICB9DQo+PiBAQCAtMTM4Miw3ICsxNDQzLDcgQEAgc3RhdGljIGludCBpc2NfdHJ5 X2ZtdF92aWRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LA0KPj4gICB7DQo+PiAg IAlzdHJ1Y3QgaXNjX2RldmljZSAqaXNjID0gdmlkZW9fZHJ2ZGF0YShmaWxlKTsNCj4+ICAgDQo+ PiAtCXJldHVybiBpc2NfdHJ5X2ZtdChpc2MsIGYsIE5VTEwsIE5VTEwpOw0KPj4gKwlyZXR1cm4g aXNjX3RyeV9mbXQoaXNjLCBmLCBOVUxMKTsNCj4+ICAgfQ0KPj4gICANCj4+ICAgc3RhdGljIGlu dCBpc2NfZW51bV9pbnB1dChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwNCj4+IEBAIC0x NDMxLDI3ICsxNDkyLDMxIEBAIHN0YXRpYyBpbnQgaXNjX2VudW1fZnJhbWVzaXplcyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgdm9pZCAqZmgsDQo+PiAgIAkJCSAgICAgICBzdHJ1Y3QgdjRsMl9mcm1zaXpl ZW51bSAqZnNpemUpDQo+PiAgIHsNCj4+ICAgCXN0cnVjdCBpc2NfZGV2aWNlICppc2MgPSB2aWRl b19kcnZkYXRhKGZpbGUpOw0KPj4gLQljb25zdCBzdHJ1Y3QgaXNjX2Zvcm1hdCAqaXNjX2ZtdDsN Cj4+ICAgCXN0cnVjdCB2NGwyX3N1YmRldl9mcmFtZV9zaXplX2VudW0gZnNlID0gew0KPj4gICAJ CS5pbmRleCA9IGZzaXplLT5pbmRleCwNCj4+ICAgCQkud2hpY2ggPSBWNEwyX1NVQkRFVl9GT1JN QVRfQUNUSVZFLA0KPj4gICAJfTsNCj4+IC0JaW50IHJldDsNCj4+ICsJaW50IHJldCA9IC1FSU5W QUw7DQo+PiArCWludCBpOw0KPj4gICANCj4+IC0JaXNjX2ZtdCA9IGZpbmRfZm9ybWF0X2J5X2Zv dXJjYyhpc2MsIGZzaXplLT5waXhlbF9mb3JtYXQpOw0KPj4gLQlpZiAoIWlzY19mbXQpDQo+PiAt CQlyZXR1cm4gLUVJTlZBTDsNCj4+ICsJZm9yIChpID0gMDsgaSA8IGlzYy0+bnVtX3VzZXJfZm9y bWF0czsgaSsrKQ0KPj4gKwkJaWYgKGlzYy0+dXNlcl9mb3JtYXRzW2ldLT5mb3VyY2MgPT0gZnNp emUtPnBpeGVsX2Zvcm1hdCkNCj4+ICsJCQlyZXQgPSAwOw0KPj4gICANCj4+IC0JaWYgKHNlbnNv cl9pc19wcmVmZXJyZWQoaXNjX2ZtdCkpDQo+PiAtCQlmc2UuY29kZSA9IGlzY19mbXQtPm1idXNf Y29kZTsNCj4+IC0JZWxzZQ0KPj4gLQkJZnNlLmNvZGUgPSBpc2MtPnJhd19mbXQtPm1idXNfY29k ZTsNCj4+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29udHJvbGxlcl9mb3JtYXRzKTsg aSsrKQ0KPj4gKwkJaWYgKGNvbnRyb2xsZXJfZm9ybWF0c1tpXS5mb3VyY2MgPT0gZnNpemUtPnBp eGVsX2Zvcm1hdCkNCj4+ICsJCQlyZXQgPSAwOw0KPj4gKw0KPj4gKwlpZiAocmV0KQ0KPj4gKwkJ cmV0dXJuIHJldDsNCj4+ICAgDQo+PiAgIAlyZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3Vy cmVudF9zdWJkZXYtPnNkLCBwYWQsIGVudW1fZnJhbWVfc2l6ZSwNCj4+ICAgCQkJICAgICAgIE5V TEwsICZmc2UpOw0KPj4gICAJaWYgKHJldCkNCj4+ICAgCQlyZXR1cm4gcmV0Ow0KPj4gICANCj4+ ICsJZnNlLmNvZGUgPSBpc2MtPmNvbmZpZy5zZF9mb3JtYXQtPm1idXNfY29kZTsNCj4+ICsNCj4+ ICAgCWZzaXplLT50eXBlID0gVjRMMl9GUk1TSVpFX1RZUEVfRElTQ1JFVEU7DQo+PiAgIAlmc2l6 ZS0+ZGlzY3JldGUud2lkdGggPSBmc2UubWF4X3dpZHRoOw0KPj4gICAJZnNpemUtPmRpc2NyZXRl LmhlaWdodCA9IGZzZS5tYXhfaGVpZ2h0Ow0KPj4gQEAgLTE0NjMsMjkgKzE1MjgsMzIgQEAgc3Rh dGljIGludCBpc2NfZW51bV9mcmFtZWludGVydmFscyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAq ZmgsDQo+PiAgIAkJCQkgICAgc3RydWN0IHY0bDJfZnJtaXZhbGVudW0gKmZpdmFsKQ0KPj4gICB7 DQo+PiAgIAlzdHJ1Y3QgaXNjX2RldmljZSAqaXNjID0gdmlkZW9fZHJ2ZGF0YShmaWxlKTsNCj4+ IC0JY29uc3Qgc3RydWN0IGlzY19mb3JtYXQgKmlzY19mbXQ7DQo+PiAgIAlzdHJ1Y3QgdjRsMl9z dWJkZXZfZnJhbWVfaW50ZXJ2YWxfZW51bSBmaWUgPSB7DQo+PiAgIAkJLmluZGV4ID0gZml2YWwt PmluZGV4LA0KPj4gICAJCS53aWR0aCA9IGZpdmFsLT53aWR0aCwNCj4+ICAgCQkuaGVpZ2h0ID0g Zml2YWwtPmhlaWdodCwNCj4+ICAgCQkud2hpY2ggPSBWNEwyX1NVQkRFVl9GT1JNQVRfQUNUSVZF LA0KPj4gICAJfTsNCj4+IC0JaW50IHJldDsNCj4+ICsJaW50IHJldCA9IC1FSU5WQUw7DQo+PiAr CWludCBpOw0KPj4gICANCj4+IC0JaXNjX2ZtdCA9IGZpbmRfZm9ybWF0X2J5X2ZvdXJjYyhpc2Ms IGZpdmFsLT5waXhlbF9mb3JtYXQpOw0KPj4gLQlpZiAoIWlzY19mbXQpDQo+PiAtCQlyZXR1cm4g LUVJTlZBTDsNCj4+ICsJZm9yIChpID0gMDsgaSA8IGlzYy0+bnVtX3VzZXJfZm9ybWF0czsgaSsr KQ0KPj4gKwkJaWYgKGlzYy0+dXNlcl9mb3JtYXRzW2ldLT5mb3VyY2MgPT0gZml2YWwtPnBpeGVs X2Zvcm1hdCkNCj4+ICsJCQlyZXQgPSAwOw0KPj4gICANCj4+IC0JaWYgKHNlbnNvcl9pc19wcmVm ZXJyZWQoaXNjX2ZtdCkpDQo+PiAtCQlmaWUuY29kZSA9IGlzY19mbXQtPm1idXNfY29kZTsNCj4+ IC0JZWxzZQ0KPj4gLQkJZmllLmNvZGUgPSBpc2MtPnJhd19mbXQtPm1idXNfY29kZTsNCj4+ICsJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29udHJvbGxlcl9mb3JtYXRzKTsgaSsrKQ0KPj4g KwkJaWYgKGNvbnRyb2xsZXJfZm9ybWF0c1tpXS5mb3VyY2MgPT0gZml2YWwtPnBpeGVsX2Zvcm1h dCkNCj4+ICsJCQlyZXQgPSAwOw0KPj4gKw0KPj4gKwlpZiAocmV0KQ0KPj4gKwkJcmV0dXJuIHJl dDsNCj4+ICAgDQo+PiAgIAlyZXQgPSB2NGwyX3N1YmRldl9jYWxsKGlzYy0+Y3VycmVudF9zdWJk ZXYtPnNkLCBwYWQsDQo+PiAgIAkJCSAgICAgICBlbnVtX2ZyYW1lX2ludGVydmFsLCBOVUxMLCAm ZmllKTsNCj4+ICAgCWlmIChyZXQpDQo+PiAgIAkJcmV0dXJuIHJldDsNCj4+ICAgDQo+PiArCWZp ZS5jb2RlID0gaXNjLT5jb25maWcuc2RfZm9ybWF0LT5tYnVzX2NvZGU7DQo+PiAgIAlmaXZhbC0+ dHlwZSA9IFY0TDJfRlJNSVZBTF9UWVBFX0RJU0NSRVRFOw0KPj4gICAJZml2YWwtPmRpc2NyZXRl ID0gZmllLmludGVydmFsOw0KPj4gICANCj4+IEBAIC0xNjY4LDcgKzE3MzYsNiBAQCBzdGF0aWMg dm9pZCBpc2NfYXdiX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KQ0KPj4gICAJc3RydWN0IGlz Y19kZXZpY2UgKmlzYyA9DQo+PiAgIAkJY29udGFpbmVyX29mKHcsIHN0cnVjdCBpc2NfZGV2aWNl LCBhd2Jfd29yayk7DQo+PiAgIAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXAgPSBpc2MtPnJlZ21hcDsN Cj4+IC0Jc3RydWN0IGZtdF9jb25maWcgKmNvbmZpZyA9IGdldF9mbXRfY29uZmlnKGlzYy0+cmF3 X2ZtdC0+Zm91cmNjKTsNCj4+ICAgCXN0cnVjdCBpc2NfY3RybHMgKmN0cmxzID0gJmlzYy0+Y3Ry bHM7DQo+PiAgIAl1MzIgaGlzdF9pZCA9IGN0cmxzLT5oaXN0X2lkOw0KPj4gICAJdTMyIGJheXNl bDsNCj4+IEBAIC0xNjg2LDcgKzE3NTMsNyBAQCBzdGF0aWMgdm9pZCBpc2NfYXdiX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3KQ0KPj4gICAJfQ0KPj4gICANCj4+ICAgCWN0cmxzLT5oaXN0X2lk ID0gaGlzdF9pZDsNCj4+IC0JYmF5c2VsID0gY29uZmlnLT5jZmFfYmF5Y2ZnIDw8IElTQ19ISVNf Q0ZHX0JBWVNFTF9TSElGVDsNCj4+ICsJYmF5c2VsID0gaXNjLT5jb25maWcuc2RfZm9ybWF0LT5j ZmFfYmF5Y2ZnIDw8IElTQ19ISVNfQ0ZHX0JBWVNFTF9TSElGVDsNCj4+ICAgDQo+PiAgIAlwbV9y dW50aW1lX2dldF9zeW5jKGlzYy0+ZGV2KTsNCj4+ICAgDQo+PiBAQCAtMTc1NCw3ICsxODIxLDYg QEAgc3RhdGljIGludCBpc2NfY3RybF9pbml0KHN0cnVjdCBpc2NfZGV2aWNlICppc2MpDQo+PiAg IAlyZXR1cm4gMDsNCj4+ICAgfQ0KPj4gICANCj4+IC0NCj4+ICAgc3RhdGljIGludCBpc2NfYXN5 bmNfYm91bmQoc3RydWN0IHY0bDJfYXN5bmNfbm90aWZpZXIgKm5vdGlmaWVyLA0KPj4gICAJCQkg ICAgc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsDQo+PiAgIAkJCSAgICBzdHJ1Y3QgdjRsMl9h c3luY19zdWJkZXYgKmFzZCkNCj4+IEBAIC0xODEyLDM1ICsxODc4LDIwIEBAIHN0YXRpYyBpbnQg aXNjX2Zvcm1hdHNfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0KPj4gICAJCS53aGljaCA9 IFY0TDJfU1VCREVWX0ZPUk1BVF9BQ1RJVkUsDQo+PiAgIAl9Ow0KPj4gICANCj4+ICsJbnVtX2Zt dHMgPSAwOw0KPj4gICAJd2hpbGUgKCF2NGwyX3N1YmRldl9jYWxsKHN1YmRldiwgcGFkLCBlbnVt X21idXNfY29kZSwNCj4+ICAgCSAgICAgICBOVUxMLCAmbWJ1c19jb2RlKSkgew0KPj4gICAJCW1i dXNfY29kZS5pbmRleCsrOw0KPj4gICANCj4+ICAgCQlmbXQgPSBmaW5kX2Zvcm1hdF9ieV9jb2Rl KG1idXNfY29kZS5jb2RlLCAmaSk7DQo+PiAtCQlpZiAoKCFmbXQpIHx8ICghKGZtdC0+ZmxhZ3Mg JiBGTVRfRkxBR19GUk9NX1NFTlNPUikpKQ0KPj4gKwkJaWYgKCFmbXQpIHsNCj4+ICsJCQl2NGwy X3dhcm4oJmlzYy0+djRsMl9kZXYsICJNYnVzIGNvZGUgJXggbm90IHN1cHBvcnRlZFxuIiwNCj4+ ICsJCQkJICBtYnVzX2NvZGUuY29kZSk7DQo+PiAgIAkJCWNvbnRpbnVlOw0KPj4gKwkJfQ0KPj4g ICANCj4+ICAgCQlmbXQtPnNkX3N1cHBvcnQgPSB0cnVlOw0KPj4gLQ0KPj4gLQkJaWYgKGZtdC0+ ZmxhZ3MgJiBGTVRfRkxBR19SQVdfRk9STUFUKQ0KPj4gLQkJCWlzYy0+cmF3X2ZtdCA9IGZtdDsN Cj4+IC0JfQ0KPj4gLQ0KPj4gLQlmbXQgPSAmZm9ybWF0c19saXN0WzBdOw0KPj4gLQlmb3IgKGkg PSAwOyBpIDwgbGlzdF9zaXplOyBpKyspIHsNCj4+IC0JCWlmIChmbXQtPmZsYWdzICYgRk1UX0ZM QUdfRlJPTV9DT05UUk9MTEVSKQ0KPj4gLQkJCWZtdC0+aXNjX3N1cHBvcnQgPSB0cnVlOw0KPj4g LQ0KPj4gLQkJZm10Kys7DQo+PiAtCX0NCj4+IC0NCj4+IC0JZm10ID0gJmZvcm1hdHNfbGlzdFsw XTsNCj4+IC0JbnVtX2ZtdHMgPSAwOw0KPj4gLQlmb3IgKGkgPSAwOyBpIDwgbGlzdF9zaXplOyBp KyspIHsNCj4+IC0JCWlmIChmbXQtPmlzY19zdXBwb3J0IHx8IGZtdC0+c2Rfc3VwcG9ydCkNCj4+ IC0JCQludW1fZm10cysrOw0KPj4gLQ0KPj4gLQkJZm10Kys7DQo+PiArCQludW1fZm10cysrOw0K Pj4gICAJfQ0KPj4gICANCj4+ICAgCWlmICghbnVtX2ZtdHMpDQo+PiBAQCAtMTg1NSw5ICsxOTA2 LDggQEAgc3RhdGljIGludCBpc2NfZm9ybWF0c19pbml0KHN0cnVjdCBpc2NfZGV2aWNlICppc2Mp DQo+PiAgIA0KPj4gICAJZm10ID0gJmZvcm1hdHNfbGlzdFswXTsNCj4+ICAgCWZvciAoaSA9IDAs IGogPSAwOyBpIDwgbGlzdF9zaXplOyBpKyspIHsNCj4+IC0JCWlmIChmbXQtPmlzY19zdXBwb3J0 IHx8IGZtdC0+c2Rfc3VwcG9ydCkNCj4+ICsJCWlmIChmbXQtPnNkX3N1cHBvcnQpDQo+PiAgIAkJ CWlzYy0+dXNlcl9mb3JtYXRzW2orK10gPSBmbXQ7DQo+PiAtDQo+PiAgIAkJZm10Kys7DQo+PiAg IAl9DQo+PiAgIA0KPj4gQEAgLTE4NzcsMTMgKzE5MjcsMTEgQEAgc3RhdGljIGludCBpc2Nfc2V0 X2RlZmF1bHRfZm10KHN0cnVjdCBpc2NfZGV2aWNlICppc2MpDQo+PiAgIAl9Ow0KPj4gICAJaW50 IHJldDsNCj4+ICAgDQo+PiAtCXJldCA9IGlzY190cnlfZm10KGlzYywgJmYsIE5VTEwsIE5VTEwp Ow0KPj4gKwlyZXQgPSBpc2NfdHJ5X2ZtdChpc2MsICZmLCBOVUxMKTsNCj4+ICAgCWlmIChyZXQp DQo+PiAgIAkJcmV0dXJuIHJldDsNCj4+ICAgDQo+PiAtCWlzYy0+Y3VycmVudF9mbXQgPSBpc2Mt PnVzZXJfZm9ybWF0c1swXTsNCj4+ICAgCWlzYy0+Zm10ID0gZjsNCj4+IC0NCj4+ICAgCXJldHVy biAwOw0KPj4gICB9DQo+PiAgIA0KPj4NCj4gDQo+IFJlZ2FyZHMsDQo+IA0KPiAJSGFucw0KPiAN Cg==