From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 485D5C433DB for ; Tue, 2 Feb 2021 17:43:03 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 050A864F6C for ; Tue, 2 Feb 2021 17:43:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 050A864F6C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=vmware.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 71B886E201; Tue, 2 Feb 2021 17:43:02 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2064.outbound.protection.outlook.com [40.107.244.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE5196E201 for ; Tue, 2 Feb 2021 17:43:00 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M535+zJH26O5ldrSpcO/bQobPg2TTgsyh1nnqTvaQgbr+CVvkYEcD9IdB/cLBAtrdZTx8GPezlJ58ceCBmEkzB/G4g/kpPWGWfZwNRejb8zHJZif/gcWQO/r81REUt0u5Q/5gN2FHbQt66jsl42owWorWoVIRHfVoZWweryNnAfKqFVPzlTRsgGP8l5dE+AAhZqmAVpli1NArbevl++BHSd3ZC899j8BzqjFF+ABFj+QoE9kdzIW+ARovXHBr0ESIbIOISNsK2+KnEf1idN6VgWp0RLuXJdFJbjqkdQG/kG0ja9utfsvNKyAt1pNzxRISkqM+YSoiET5IE1l99tYYw== 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=DVoiH7F64FAqlgCYUV0kKPw+j3R1KnowKrI/eTd5VMI=; b=ZsnEjq3T+iIlmFZ2Dz2JWSyqaQye7GtOVyBFuKLvqxIh2u/FmwsArFlfxh78aJN0x4EfzlbwWwa9IgarCrmAhXYmsHU6HK0mdupOvm2rzLZOGNZVx/GsLC35H3/TOOTQNpq/NTGVCd/RHYRw1DHFp8IyCGNO9VH4eUbwD3wQG/vxUziZ/VPbterRcRDyIFjiCX8PEpD3ZYmnW5gxxq4V0w7loJSJ/sbIZ4+UsyOjny3cSwwTFDMhmc+MRkYTjYmGOPs8/XTe75J3/lw3lMGH4gCORc+VM7k43j5ki7GajmXhBjk9NkVwiIi0a0q9V01bkNSrTAs4EZpY+DoNL3cVVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DVoiH7F64FAqlgCYUV0kKPw+j3R1KnowKrI/eTd5VMI=; b=uzZJ+8JRXFzD2wBR1Tj8/C6VglZH3gIO+NumgEj6IGafQ+AOUmmKGIq7SQfCsdhH6jHOn75V/cAjWmBIAzX1WtifBdD6LxBumWEcdwhzDfZhJgps56ltZp/ra/Z3K0tdHmVSK/qSCXlv6sKirl1+sfoaN+evG7JYkJSmKYck1aU= Received: from (2603:10b6:208:8f::18) by BLAPR05MB7489.namprd05.prod.outlook.com (2603:10b6:208:287::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.8; Tue, 2 Feb 2021 17:42:58 +0000 Received: from BL0PR05MB5186.namprd05.prod.outlook.com ([fe80::856b:10f9:d35c:cde1]) by BL0PR05MB5186.namprd05.prod.outlook.com ([fe80::856b:10f9:d35c:cde1%4]) with mapi id 15.20.3825.019; Tue, 2 Feb 2021 17:42:58 +0000 From: Zack Rusin To: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v3 Thread-Topic: [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v3 Thread-Index: AQHW9XfBkpcT/oPrmEKFnhCJHT7UAqpE3OGAgAAkdQCAAACfAIAAKMqA Date: Tue, 2 Feb 2021 17:42:57 +0000 Message-ID: <5CBDA1F3-5801-45BA-B84A-A5B83FA95BEB@vmware.com> References: <20210128131604.149660-1-christian.koenig@amd.com> <20210128131604.149660-2-christian.koenig@amd.com> <071AC444-2B1A-4333-83FA-CA1A53E35C1C@vmware.com> <003b1e64-2510-5d96-be62-f8f45843023b@amd.com> In-Reply-To: <003b1e64-2510-5d96-be62-f8f45843023b@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3654.40.0.2.32) authentication-results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=vmware.com; x-originating-ip: [71.175.59.246] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0ef96ef8-ce5d-4763-c2e4-08d8c7a1faa4 x-ms-traffictypediagnostic: BLAPR05MB7489: x-ld-processed: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VLGeUaE7h+dQg3MykYdhpmKprT70pEhP6DT0nrv7JGLujOPTfM1G4moBiPo3CIhLbk1FuWFKD6M7EiwJsxjZO9ZpgTuZcyk/LOW4zaPJ6Oy45/eY8yH3ws0X+zp4FhQgcInHLgH14JumFUebc0bdK5dtGSEjPYusnhLqUuCb1+nmo7Kzx9pSmGvJXj2da/nNGThfaKP6wcHFeR+NGnNDW2IRyzenuXJzsSNjCwRLVUH30yamucO3vIuwTOqPwmNlS4Vnxf3asNjdgsiA9IHZsDICqgyQ2UdEjIYVtfNPZTQYZkll8+xMYKwTgkIbBTyW4nnp402r6pcT7vGNvB4apcUz/yyICbQYFaaKYAjci3s2HPSpYmtPrKjNWzp6pN1JNW8d/VJm6dAcGZv778LBDI5oM88yufcKS6lBQCXLbdLEx66u/gQuWC2/bN+G9aLYcVbG0gaXT7g5gpp8m7rQ534X+WYbxgQMfHMEXBwX8vlg7x5TdkpYVEQvElo3NPgW06JEYJoCjsG0OWs0bULXgH4SmwEGpLvM++i0FH3pacx+dAgr9+h0XGrDRbI3ZS5N0eKrRVs2n+WF1nrR1pvYE6CAevoLt66DRhr79UUl1gA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL0PR05MB5186.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(346002)(396003)(136003)(39860400002)(30864003)(478600001)(2906002)(36756003)(6506007)(8676002)(53546011)(6512007)(6486002)(33656002)(83380400001)(66446008)(26005)(66946007)(71200400001)(15650500001)(86362001)(4326008)(54906003)(6916009)(8936002)(66476007)(5660300002)(64756008)(66556008)(186003)(316002)(66574015)(2616005)(76116006)(40753002)(45980500001)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?NEU3by9aVk5RQzhBU0c1MmhIdTVDRm8rZ0dhVEIrOStsbGdYK3IvVzE3ZFdD?= =?utf-8?B?dmpJNkVvWWduSmF0bit1VkN0emFCdG1ib0hVYWFoRlcxRENiZXlyQ1Uycnpm?= =?utf-8?B?YmFrS3JkcjZGbk9wRHpid2NxQU1sR21odGsvVU1yNnZFQm80TEtHakU4V29y?= =?utf-8?B?bU1ueVFNZ09seHpzNzEza3ZYUHU0TnBHcXIxSzVIbnF6U1B0QlphWDh4Q3VC?= =?utf-8?B?UnQwR241V3oxb2JRQlpMMTJIdnZOcFJaa3VUK0M1cmJWY2FlZklPN21WWVo4?= =?utf-8?B?TWhZZklLakFseFRnQWg5S1Foa1lLdXRmMFdJWTZEY09VQnk3UW9aNnBkU0lu?= =?utf-8?B?Ymwra3VtL3dMODMrRllwUHpYdk8raDJ0M2RZbncvV2RGUXR3NXM5Mk4wak56?= =?utf-8?B?cjFzdUt4OGVnaG1RMWt3R1lCaTZBQjNJSXYvR3VYSHRnclpsa1dxNjR6OFlY?= =?utf-8?B?UDVpcXFmT2h4OUV0N3FzcjdzVG5wN0Z2cVExQ0xYK1lCb3lUZW5VTUVvU2F0?= =?utf-8?B?VVAzbDZUQnFWZVdvcjY4VndsYXhNRXl6KzBSUUhjZXhaY0dITTJ4NW1Qc1VE?= =?utf-8?B?VTJ2WW9tbUlCdTc0UHdXSGtPYmlWdWM1NlkzamhjWXEzM2s0TlJUR09HNktZ?= =?utf-8?B?UGJERklhYVpTTGFKR0EzYlJGTXlGZXRHbTVINjNhbC9NaFVBK04wbUhsa21j?= =?utf-8?B?MnRIOFNwTS9NUXZiVTl2a0VSTDZmdis2Z25FbWNtSFlESWhGWWV1UHliajh2?= =?utf-8?B?bDE3aHpKL3JWemJYRXVEWHdSdWFSQWRweEVkTkg3R1lwNWNaWFRUVjRjRzZJ?= =?utf-8?B?aVBTYzY3VSs0VFh6VWlQT21kLzI0Q1dLM3NyOTdmaUxkRk1NamloWHFVU3dY?= =?utf-8?B?V2c3UTc4QXdZR1JndU40dEpNODg5YW5yU1lqS24vQ2VSNFp1djNEWk9lNzBJ?= =?utf-8?B?NjgrNUhuN0pmQVg5OHNuclpPOWxuNXNscWdJYXk3aGZYQ1J1Rmd6MWd1Rm9B?= =?utf-8?B?WDA5QzR4MG5Bc3BUWUNVSiszQ1BHV3YrUzdud2VaMDVicXNDUlJZaHZuYS9m?= =?utf-8?B?enZyMFZxN2ZDQ00raUE5UGwwOXdrMzdPSGdvMHJLcEdHc2lvaCtIeWZ4WW81?= =?utf-8?B?N1N1S3puQUNlWFpPc0JEeUUrSGoxY3hFZy9yTTgvQkhUNkZtb3JBUFlxdWtE?= =?utf-8?B?T29VQTB4b0NiNTI5K2tNQ3l0RVVqWUlzdEtuRzZIRnRkekl0dDdmSUpjMm9I?= =?utf-8?B?cWhzRTNkSWsvTWpJYzFUMm8zZEtFNXJDbVFqUm5mL3ZsUmplWnA2S3hYbUtx?= =?utf-8?B?emgvVVp2UG5FckZOYTMrN1o1TDRldEI0YkdnN0dpRWRwSEo2Rm9uNlBGbi9Q?= =?utf-8?B?bnliVDBsWkY0RnRINk9xTjhDaUJvQm5aQWR6aEZSVVNxNldYams1c3hpdDNL?= =?utf-8?B?NFptajB5SWpvYkNONHNzL0NjZy9nU2E0R0xITHlRPT0=?= Content-ID: <165903B016843743A93971BE735C5D8C@namprd05.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL0PR05MB5186.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ef96ef8-ce5d-4763-c2e4-08d8c7a1faa4 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2021 17:42:58.0309 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: O49I1s4cNuyhNE4h83ocGIX5mEkploHnTqONTkuFGVPAo8gKAFvF31H5lLIwdW8Hp8CuuboxfAyzpQL3jZV2JQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLAPR05MB7489 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linux-graphics-maintainer , Roland Scheidegger , "dri-devel@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QWgsIHllcywgc29ycnksIEkgbWlzc2VkIHRoYXQuIEkganVzdCBkb3VibGUgY2hlY2tlZCBhbmQg aXQgZmFpbHMgd2l0aDoNCg0Ka29iamVjdF9hZGRfaW50ZXJuYWwgZmFpbGVkIGZvciBtZW1vcnlf YWNjb3VudGluZyAoZXJyb3I6IC0yIHBhcmVudDogY2FyZDApDQoNCndoaWNoIGJyZWFrcyB0aGUg cHJvYmUgYW5kIHRoZSBkcml2ZXIgd29u4oCZdCBsb2FkLiBJIHdvbuKAmXQgaGF2ZSB0aW1lIHRv IGxvb2sgaW50byBpdCB1bnRpbCB0b21vcnJvdyB0aG91Z2guDQoNCnoNCg0KPiBPbiBGZWIgMiwg MjAyMSwgYXQgMTA6MTYsIENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNv bT4gd3JvdGU6DQo+IA0KPiBIaSBaYWNrLA0KPiANCj4gY2FuIHlvdSBhbHNvIGdpdmUgaXQgYSBx dWljayBzbW9rZSB0ZXN0Pw0KPiANCj4gSSdtIG5vdCBzdXJlIGlmIEkgd2lyZWQgdXAgYWxsIHRo ZSBzeXNmcyBtYWdpYyBjb3JyZWN0bHkgaW5zaWRlIHZtd2dmeCwgYnV0IEkgY3VycmVudGx5IGRv bid0IGhhdmUgYSBzZXR1cCB3aGVyZSBJIGNhbiB0ZXN0IHRoaXMuDQo+IA0KPiBUaGFua3MsDQo+ IENocmlzdGlhbi4NCj4gDQo+IEFtIDAyLjAyLjIxIHVtIDE2OjE0IHNjaHJpZWIgWmFjayBSdXNp bjoNCj4+IExvb2tzIGdvb2QuIFRoZXJl4oCZcyBwcm9iYWJseSBub3QgbXVjaCByZWFzb24gdG8g Y2FsbCBpdCB0dG1fbWVtb3J5IGFueW1vcmUgYXMgaXQgb25seSBkZWFscyB3aXRoIHR0bV9tZW1f Z2xvYiwgd2XigJlsbCBsaWtlbHkgZm9sZCBpdCBpbiBhZnRlciB5b3Ugc3VibWl0LiBUaGFua3Mu DQo+PiANCj4+IFJldmlld2VkLWJ5OiBaYWNrIFJ1c2luIDx6YWNrckB2bXdhcmUuY29tPg0KPj4g DQo+PiB6DQo+PiANCj4+PiBPbiBGZWIgMiwgMjAyMSwgYXQgMDg6MDQsIENocmlzdGlhbiBLw7Zu aWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gUGluZz8NCj4+ PiANCj4+PiBFc3BlY2lhbGx5IFJvbGFuZCBhbmQgWmFjayBkbyB5b3UgaGF2ZSBhbnkgb2JqZWN0 aW9ucyB0byB0aGlzPw0KPj4+IA0KPj4+IFJlZ2FyZHMsDQo+Pj4gQ2hyaXN0aWFuLg0KPj4+IA0K Pj4+IEFtIDI4LjAxLjIxIHVtIDE0OjE2IHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoNCj4+Pj4g VGhpcyBpcyBqdXN0IGFub3RoZXIgZmVhdHVyZSB3aGljaCBpcyBvbmx5IHVzZWQgYnkgVk1XR0ZY LCBzbyBtb3ZlDQo+Pj4+IGl0IGludG8gdGhlIGRyaXZlciBpbnN0ZWFkLg0KPj4+PiANCj4+Pj4g SSd2ZSB0cmllZCB0byBhZGQgdGhlIGFjY291bnRpbmcgc3lzZnMgZmlsZSB0byB0aGUga29iamVj dCBvZiB0aGUgZHJtDQo+Pj4+IG1pbm9yLCBidXQgSSdtIG5vdCAxMDAlIHN1cmUgaWYgdGhpcyB3 b3JrcyBhcyBleHBlY3RlZC4NCj4+Pj4gDQo+Pj4+IHYyOiBmaXggdHlwbyBpbiBLRkQgYW5kIGF2 b2lkIDY0Yml0IGRpdmlkZQ0KPj4+PiB2MzogZml4IGluaXQgb3JkZXIgaW4gVk1XR0ZYDQo+Pj4+ IA0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmln QGFtZC5jb20+DQo+Pj4+IC0tLQ0KPj4+PiAgLi4uL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf YW1ka2ZkX2dwdXZtLmMgIHwgMTYgKysrKysrLS0tDQo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgICAgfCAgOCArKy0tLQ0KPj4+PiAgZHJpdmVycy9ncHUv ZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyAgICAgICAgIHwgIDYgKystLQ0KPj4+PiAgZHJpdmVy cy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jICAgICAgICAgIHwgIDcgKystLQ0KPj4+PiAg ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaCAgICAgICAgIHwgIDEgLQ0KPj4+ PiAgZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMgICAgICAgICAgICAgIHwgIDQgKy0t DQo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyAgICAgICAgfCAg OCArKy0tLQ0KPj4+PiAgZHJpdmVycy9ncHUvZHJtL3R0bS9NYWtlZmlsZSAgICAgICAgICAgICAg ICAgIHwgIDcgKystLQ0KPj4+PiAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyAgICAgICAg ICAgICAgICAgIHwgMzMgKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiAgZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwgIDEgLQ0KPj4+PiAgZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fZGV2aWNlLmMgICAgICAgICAgICAgIHwgMjIgKysrKysrKysrKy0tLQ0KPj4+ PiAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jICAgICAgICAgICAgICAgIHwgMTMgKy0t LS0tLS0NCj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUgICAgICAgICAgICAg ICB8ICAyICstDQo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0ve3R0bSA9PiB2bXdnZnh9L3R0bV9tZW1v cnkuYyAgfCAxOSArKysrLS0tLS0tLQ0KPj4+PiAgLi4uL2dwdS9kcm0vdm13Z2Z4fS90dG1fbWVt b3J5LmggICAgICAgICAgICAgIHwgIDUgKy0tDQo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3R0bV9vYmplY3QuaCAgICAgICAgICAgfCAgMyArLQ0KPj4+PiAgZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYm8uYyAgICAgICAgICAgIHwgMjIgKysrKysrKysrKy0tLQ0KPj4+PiAgZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAgIHwgIDUgKysrDQo+Pj4+ ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMgICAgfCAyOCArKysr KysrKysrKysrKystDQo+Pj4+ICBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAg ICAgICAgICAgfCAxMyArKy0tLS0tLQ0KPj4+PiAgaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2 ZXIuaCAgICAgICAgICAgICAgIHwgIDEgLQ0KPj4+PiAgaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5o ICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPj4+PiAgMjIgZmlsZXMgY2hhbmdlZCwgMTEw IGluc2VydGlvbnMoKyksIDExNSBkZWxldGlvbnMoLSkNCj4+Pj4gIHJlbmFtZSBkcml2ZXJzL2dw dS9kcm0ve3R0bSA9PiB2bXdnZnh9L3R0bV9tZW1vcnkuYyAoOTclKQ0KPj4+PiAgcmVuYW1lIHtp bmNsdWRlL2RybS90dG0gPT4gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeH0vdHRtX21lbW9yeS5oICg5 NyUpDQo+Pj4+IA0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2FtZGtmZF9ncHV2bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2FtZGtmZF9ncHV2bS5jDQo+Pj4+IGluZGV4IDA4NDliNjhlNzg0Zi4uZTQ0MGFmMzdkZGU4IDEw MDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2Zk X2dwdXZtLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Ft ZGtmZF9ncHV2bS5jDQo+Pj4+IEBAIC0xMTgsNiArMTE4LDE2IEBAIHZvaWQgYW1kZ3B1X2FtZGtm ZF9ncHV2bV9pbml0X21lbV9saW1pdHModm9pZCkNCj4+Pj4gICAqLw0KPj4+PiAgI2RlZmluZSBF U1RJTUFURV9QVF9TSVpFKG1lbV9zaXplKSAoKG1lbV9zaXplKSA+PiAxNCkNCj4+Pj4gICtzdGF0 aWMgc2l6ZV90IGFtZGdwdV9hbWRrZmRfYWNjX3NpemUodWludDY0X3Qgc2l6ZSkNCj4+Pj4gK3sN Cj4+Pj4gKwlzaXplID4+PSBQQUdFX1NISUZUOw0KPj4+PiArCXNpemUgKj0gc2l6ZW9mKGRtYV9h ZGRyX3QpICsgc2l6ZW9mKHZvaWQgKik7DQo+Pj4+ICsNCj4+Pj4gKwlyZXR1cm4gX19yb3VuZHVw X3Bvd19vZl90d28oc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKSArDQo+Pj4+ICsJCV9fcm91bmR1 cF9wb3dfb2ZfdHdvKHNpemVvZihzdHJ1Y3QgdHRtX3R0KSkgKw0KPj4+PiArCQlQQUdFX0FMSUdO KHNpemUpOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICBzdGF0aWMgaW50IGFtZGdwdV9hbWRrZmRf cmVzZXJ2ZV9tZW1fbGltaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+Pj4+ICAJCXVp bnQ2NF90IHNpemUsIHUzMiBkb21haW4sIGJvb2wgc2cpDQo+Pj4+ICB7DQo+Pj4+IEBAIC0xMjYs OCArMTM2LDcgQEAgc3RhdGljIGludCBhbWRncHVfYW1ka2ZkX3Jlc2VydmVfbWVtX2xpbWl0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPj4+PiAgCXNpemVfdCBhY2Nfc2l6ZSwgc3lzdGVt X21lbV9uZWVkZWQsIHR0bV9tZW1fbmVlZGVkLCB2cmFtX25lZWRlZDsNCj4+Pj4gIAlpbnQgcmV0 ID0gMDsNCj4+Pj4gIC0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXplKCZhZGV2LT5tbWFu LmJkZXYsIHNpemUsDQo+Pj4+IC0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSk7 DQo+Pj4+ICsJYWNjX3NpemUgPSBhbWRncHVfYW1ka2ZkX2FjY19zaXplKHNpemUpOw0KPj4+PiAg ICAJdnJhbV9uZWVkZWQgPSAwOw0KPj4+PiAgCWlmIChkb21haW4gPT0gQU1ER1BVX0dFTV9ET01B SU5fR1RUKSB7DQo+Pj4+IEBAIC0xNzQsOCArMTgzLDcgQEAgc3RhdGljIHZvaWQgdW5yZXNlcnZl X21lbV9saW1pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+Pj4gIHsNCj4+Pj4gIAlz aXplX3QgYWNjX3NpemU7DQo+Pj4+ICAtCWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZSgm YWRldi0+bW1hbi5iZGV2LCBzaXplLA0KPj4+PiAtCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IGFt ZGdwdV9ibykpOw0KPj4+PiArCWFjY19zaXplID0gYW1kZ3B1X2FtZGtmZF9hY2Nfc2l6ZShzaXpl KTsNCj4+Pj4gICAgCXNwaW5fbG9jaygma2ZkX21lbV9saW1pdC5tZW1fbGltaXRfbG9jayk7DQo+ Pj4+ICAJaWYgKGRvbWFpbiA9PSBBTURHUFVfR0VNX0RPTUFJTl9HVFQpIHsNCj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYw0KPj4+PiBpbmRleCA2Y2M5OTE5 YjEyY2MuLjU5OWM5YTEzMmViNiAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jDQo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9vYmplY3QuYw0KPj4+PiBAQCAtNTIzLDcgKzUyMyw2IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2JvX2RvX2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+Pj4g IAl9Ow0KPj4+PiAgCXN0cnVjdCBhbWRncHVfYm8gKmJvOw0KPj4+PiAgCXVuc2lnbmVkIGxvbmcg cGFnZV9hbGlnbiwgc2l6ZSA9IGJwLT5zaXplOw0KPj4+PiAtCXNpemVfdCBhY2Nfc2l6ZTsNCj4+ Pj4gIAlpbnQgcjsNCj4+Pj4gICAgCS8qIE5vdGUgdGhhdCBHRFMvR1dTL09BIGFsbG9jYXRlcyAx IHBhZ2UgcGVyIGJ5dGUvcmVzb3VyY2UuICovDQo+Pj4+IEBAIC01NDYsOSArNTQ1LDYgQEAgc3Rh dGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0K Pj4+PiAgICAJKmJvX3B0ciA9IE5VTEw7DQo+Pj4+ICAtCWFjY19zaXplID0gdHRtX2JvX2RtYV9h Y2Nfc2l6ZSgmYWRldi0+bW1hbi5iZGV2LCBzaXplLA0KPj4+PiAtCQkJCSAgICAgICBzaXplb2Yo c3RydWN0IGFtZGdwdV9ibykpOw0KPj4+PiAtDQo+Pj4+ICAJYm8gPSBremFsbG9jKHNpemVvZihz dHJ1Y3QgYW1kZ3B1X2JvKSwgR0ZQX0tFUk5FTCk7DQo+Pj4+ICAJaWYgKGJvID09IE5VTEwpDQo+ Pj4+ICAJCXJldHVybiAtRU5PTUVNOw0KPj4+PiBAQCAtNTc3LDggKzU3Myw4IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2JvX2RvX2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+Pj4g IAkJYm8tPnRiby5wcmlvcml0eSA9IDE7DQo+Pj4+ICAgIAlyID0gdHRtX2JvX2luaXRfcmVzZXJ2 ZWQoJmFkZXYtPm1tYW4uYmRldiwgJmJvLT50Ym8sIHNpemUsIGJwLT50eXBlLA0KPj4+PiAtCQkJ CSAmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgJmN0eCwgYWNjX3NpemUsDQo+Pj4+IC0JCQkJ IE5VTEwsIGJwLT5yZXN2LCAmYW1kZ3B1X2JvX2Rlc3Ryb3kpOw0KPj4+PiArCQkJCSAmYm8tPnBs YWNlbWVudCwgcGFnZV9hbGlnbiwgJmN0eCwgIE5VTEwsDQo+Pj4+ICsJCQkJIGJwLT5yZXN2LCAm YW1kZ3B1X2JvX2Rlc3Ryb3kpOw0KPj4+PiAgCWlmICh1bmxpa2VseShyICE9IDApKQ0KPj4+PiAg CQlyZXR1cm4gcjsNCj4+Pj4gIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92 cmFtX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYw0KPj4+ PiBpbmRleCAwYjEzYzg1MDc2ODguLmEwOTkyZjBiOGFmZCAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYw0KPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jDQo+Pj4+IEBAIC0xODksNyArMTg5LDYgQEAgc3Ry dWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmRybV9nZW1fdnJhbV9jcmVhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwNCj4+Pj4gIAlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IGRldi0+dnJhbV9t bTsNCj4+Pj4gIAlzdHJ1Y3QgdHRtX2RldmljZSAqYmRldjsNCj4+Pj4gIAlpbnQgcmV0Ow0KPj4+ PiAtCXNpemVfdCBhY2Nfc2l6ZTsNCj4+Pj4gICAgCWlmIChXQVJOX09OQ0UoIXZtbSwgIlZSQU0g TU0gbm90IGluaXRpYWxpemVkIikpDQo+Pj4+ICAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOw0K Pj4+PiBAQCAtMjE2LDcgKzIxNSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpkcm1f Z2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQo+Pj4+ICAJfQ0KPj4+PiAg ICAJYmRldiA9ICZ2bW0tPmJkZXY7DQo+Pj4+IC0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19z aXplKGJkZXYsIHNpemUsIHNpemVvZigqZ2JvKSk7DQo+Pj4+ICAgIAlnYm8tPmJvLmJkZXYgPSBi ZGV2Ow0KPj4+PiAgCWRybV9nZW1fdnJhbV9wbGFjZW1lbnQoZ2JvLCBEUk1fR0VNX1ZSQU1fUExf RkxBR19TWVNURU0pOw0KPj4+PiBAQCAtMjI2LDggKzIyNCw4IEBAIHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQo+ Pj4+ICAJICogdG8gcmVsZWFzZSBnYm8tPmJvLmJhc2UgYW5kIGtmcmVlIGdiby4NCj4+Pj4gIAkg Ki8NCj4+Pj4gIAlyZXQgPSB0dG1fYm9faW5pdChiZGV2LCAmZ2JvLT5ibywgc2l6ZSwgdHRtX2Jv X3R5cGVfZGV2aWNlLA0KPj4+PiAtCQkJICAmZ2JvLT5wbGFjZW1lbnQsIHBnX2FsaWduLCBmYWxz ZSwgYWNjX3NpemUsDQo+Pj4+IC0JCQkgIE5VTEwsIE5VTEwsIHR0bV9idWZmZXJfb2JqZWN0X2Rl c3Ryb3kpOw0KPj4+PiArCQkJICAmZ2JvLT5wbGFjZW1lbnQsIHBnX2FsaWduLCBmYWxzZSwgTlVM TCwgTlVMTCwNCj4+Pj4gKwkJCSAgdHRtX2J1ZmZlcl9vYmplY3RfZGVzdHJveSk7DQo+Pj4+ICAJ aWYgKHJldCkNCj4+Pj4gIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsNCj4+Pj4gIGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2JvLmMNCj4+Pj4gaW5kZXggYzE3Nzk0MGQ2ZTJjLi5jYTJhOGFlMTkz OGUgMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8u Yw0KPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMNCj4+Pj4g QEAgLTMwMCwxOCArMzAwLDE1IEBAIG5vdXZlYXVfYm9faW5pdChzdHJ1Y3Qgbm91dmVhdV9ibyAq bnZibywgdTY0IHNpemUsIGludCBhbGlnbiwgdTMyIGRvbWFpbiwNCj4+Pj4gIAkJc3RydWN0IHNn X3RhYmxlICpzZywgc3RydWN0IGRtYV9yZXN2ICpyb2JqKQ0KPj4+PiAgew0KPj4+PiAgCWludCB0 eXBlID0gc2cgPyB0dG1fYm9fdHlwZV9zZyA6IHR0bV9ib190eXBlX2RldmljZTsNCj4+Pj4gLQlz aXplX3QgYWNjX3NpemU7DQo+Pj4+ICAJaW50IHJldDsNCj4+Pj4gIC0JYWNjX3NpemUgPSB0dG1f Ym9fZG1hX2FjY19zaXplKG52Ym8tPmJvLmJkZXYsIHNpemUsIHNpemVvZigqbnZibykpOw0KPj4+ PiAtDQo+Pj4+ICAJbnZiby0+Ym8ubWVtLm51bV9wYWdlcyA9IHNpemUgPj4gUEFHRV9TSElGVDsN Cj4+Pj4gIAlub3V2ZWF1X2JvX3BsYWNlbWVudF9zZXQobnZibywgZG9tYWluLCAwKTsNCj4+Pj4g IAlJTklUX0xJU1RfSEVBRCgmbnZiby0+aW9fcmVzZXJ2ZV9scnUpOw0KPj4+PiAgICAJcmV0ID0g dHRtX2JvX2luaXQobnZiby0+Ym8uYmRldiwgJm52Ym8tPmJvLCBzaXplLCB0eXBlLA0KPj4+PiAt CQkJICAmbnZiby0+cGxhY2VtZW50LCBhbGlnbiA+PiBQQUdFX1NISUZULCBmYWxzZSwNCj4+Pj4g LQkJCSAgYWNjX3NpemUsIHNnLCByb2JqLCBub3V2ZWF1X2JvX2RlbF90dG0pOw0KPj4+PiArCQkJ ICAmbnZiby0+cGxhY2VtZW50LCBhbGlnbiA+PiBQQUdFX1NISUZULCBmYWxzZSwgc2csDQo+Pj4+ ICsJCQkgIHJvYmosIG5vdXZlYXVfYm9fZGVsX3R0bSk7DQo+Pj4+ICAJaWYgKHJldCkgew0KPj4+ PiAgCQkvKiB0dG0gd2lsbCBjYWxsIG5vdXZlYXVfYm9fZGVsX3R0bSBpZiBpdCBmYWlscy4uICov DQo+Pj4+ICAJCXJldHVybiByZXQ7DQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9k cnYuaA0KPj4+PiBpbmRleCBlZGY5ZDFlZTlkNTguLmE0OTFjMmMxYzU2ZSAxMDA2NDQNCj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaA0KPj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oDQo+Pj4+IEBAIC01NCw3ICs1NCw2 IEBADQo+Pj4+ICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+DQo+Pj4+ICAjaW5jbHVk ZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+DQo+Pj4+ICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1f cGxhY2VtZW50Lmg+DQo+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+DQo+Pj4+ ICAgICNpbmNsdWRlIDxkcm0vZHJtX2F1ZGlvX2NvbXBvbmVudC5oPg0KPj4+PiAgZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfb2JqZWN0LmMNCj4+Pj4gaW5kZXggY2VlYmM1ODgxZjY4Li43MDViNTE1MzU0OTIgMTAw NjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jDQo+Pj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jDQo+Pj4+IEBAIC0xMzgsOCArMTM4 LDggQEAgaW50IHF4bF9ib19jcmVhdGUoc3RydWN0IHF4bF9kZXZpY2UgKnFkZXYsDQo+Pj4+ICAJ cXhsX3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4oYm8sIGRvbWFpbik7DQo+Pj4+ICAgIAlyID0g dHRtX2JvX2luaXRfcmVzZXJ2ZWQoJnFkZXYtPm1tYW4uYmRldiwgJmJvLT50Ym8sIHNpemUsIHR5 cGUsDQo+Pj4+IC0JCQkJICZiby0+cGxhY2VtZW50LCAwLCAmY3R4LCBzaXplLA0KPj4+PiAtCQkJ CSBOVUxMLCBOVUxMLCAmcXhsX3R0bV9ib19kZXN0cm95KTsNCj4+Pj4gKwkJCQkgJmJvLT5wbGFj ZW1lbnQsIDAsICZjdHgsIE5VTEwsIE5VTEwsDQo+Pj4+ICsJCQkJICZxeGxfdHRtX2JvX2Rlc3Ry b3kpOw0KPj4+PiAgCWlmICh1bmxpa2VseShyICE9IDApKSB7DQo+Pj4+ICAJCWlmIChyICE9IC1F UkVTVEFSVFNZUykNCj4+Pj4gIAkJCWRldl9lcnIocWRldi0+ZGRldi5kZXYsDQo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jDQo+Pj4+IGluZGV4IDZhMzM2Mjg0NDY2Zi4u ODA0ZjdhNDI3YmU3IDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9vYmplY3QuYw0KPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuYw0KPj4+PiBAQCAtMTU5LDcgKzE1OSw2IEBAIGludCByYWRlb25fYm9fY3JlYXRlKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LA0KPj4+PiAgCXN0cnVjdCByYWRlb25fYm8gKmJvOw0K Pj4+PiAgCWVudW0gdHRtX2JvX3R5cGUgdHlwZTsNCj4+Pj4gIAl1bnNpZ25lZCBsb25nIHBhZ2Vf YWxpZ24gPSByb3VuZHVwKGJ5dGVfYWxpZ24sIFBBR0VfU0laRSkgPj4gUEFHRV9TSElGVDsNCj4+ Pj4gLQlzaXplX3QgYWNjX3NpemU7DQo+Pj4+ICAJaW50IHI7DQo+Pj4+ICAgIAlzaXplID0gQUxJ R04oc2l6ZSwgUEFHRV9TSVpFKTsNCj4+Pj4gQEAgLTE3Myw5ICsxNzIsNiBAQCBpbnQgcmFkZW9u X2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCj4+Pj4gIAl9DQo+Pj4+ICAJ KmJvX3B0ciA9IE5VTEw7DQo+Pj4+ICAtCWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZSgm cmRldi0+bW1hbi5iZGV2LCBzaXplLA0KPj4+PiAtCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IHJh ZGVvbl9ibykpOw0KPj4+PiAtDQo+Pj4+ICAJYm8gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmFk ZW9uX2JvKSwgR0ZQX0tFUk5FTCk7DQo+Pj4+ICAJaWYgKGJvID09IE5VTEwpDQo+Pj4+ICAJCXJl dHVybiAtRU5PTUVNOw0KPj4+PiBAQCAtMjMwLDggKzIyNiw4IEBAIGludCByYWRlb25fYm9fY3Jl YXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LA0KPj4+PiAgCS8qIEtlcm5lbCBhbGxvY2F0 aW9uIGFyZSB1bmludGVycnVwdGlibGUgKi8NCj4+Pj4gIAlkb3duX3JlYWQoJnJkZXYtPnBtLm1j bGtfbG9jayk7DQo+Pj4+ICAJciA9IHR0bV9ib19pbml0KCZyZGV2LT5tbWFuLmJkZXYsICZiby0+ dGJvLCBzaXplLCB0eXBlLA0KPj4+PiAtCQkJJmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxpZ24sICFr ZXJuZWwsIGFjY19zaXplLA0KPj4+PiAtCQkJc2csIHJlc3YsICZyYWRlb25fdHRtX2JvX2Rlc3Ry b3kpOw0KPj4+PiArCQkJJmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxpZ24sICFrZXJuZWwsIHNnLCBy ZXN2LA0KPj4+PiArCQkJJnJhZGVvbl90dG1fYm9fZGVzdHJveSk7DQo+Pj4+ICAJdXBfcmVhZCgm cmRldi0+cG0ubWNsa19sb2NrKTsNCj4+Pj4gIAlpZiAodW5saWtlbHkociAhPSAwKSkgew0KPj4+ PiAgCQlyZXR1cm4gcjsNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlDQo+Pj4+IGluZGV4IDhlNjQzN2Vh ZGFiZS4uNDBlNWU5ZGE3OTUzIDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRt L01ha2VmaWxlDQo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUNCj4+Pj4g QEAgLTIsMTAgKzIsOSBAQA0KPj4+PiAgIw0KPj4+PiAgIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBk ZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlDQo+Pj4+ ICAtdHRtLXkgOj0gdHRtX21lbW9yeS5vIHR0bV90dC5vIHR0bV9iby5vIFwNCj4+Pj4gLQl0dG1f Ym9fdXRpbC5vIHR0bV9ib192bS5vIHR0bV9tb2R1bGUubyBcDQo+Pj4+IC0JdHRtX2V4ZWNidWZf dXRpbC5vIHR0bV9yYW5nZV9tYW5hZ2VyLm8gXA0KPj4+PiAtCXR0bV9yZXNvdXJjZS5vIHR0bV9w b29sLm8gdHRtX2RldmljZS5vDQo+Pj4+ICt0dG0teSA6PSB0dG1fdHQubyB0dG1fYm8ubyB0dG1f Ym9fdXRpbC5vIHR0bV9ib192bS5vIHR0bV9tb2R1bGUubyBcDQo+Pj4+ICsJdHRtX2V4ZWNidWZf dXRpbC5vIHR0bV9yYW5nZV9tYW5hZ2VyLm8gdHRtX3Jlc291cmNlLm8gdHRtX3Bvb2wubyBcDQo+ Pj4+ICsJdHRtX2RldmljZS5vDQo+Pj4+ICB0dG0tJChDT05GSUdfQUdQKSArPSB0dG1fYWdwX2Jh Y2tlbmQubw0KPj4+PiAgICBvYmotJChDT05GSUdfRFJNX1RUTSkgKz0gdHRtLm8NCj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9iby5jDQo+Pj4+IGluZGV4IDY0M2JlZmMxYTZmMi4uZTM4MTAyMjgyZmQ1IDEwMDY0 NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jDQo+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMNCj4+Pj4gQEAgLTQyNSw3ICs0MjUsNiBAQCBzdGF0 aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqa3JlZikNCj4+Pj4gIAlzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvID0NCj4+Pj4gIAkgICAgY29udGFpbmVyX29mKGtyZWYsIHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCwga3JlZik7DQo+Pj4+ICAJc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYgPSBiby0+YmRldjsNCj4+Pj4gLQlzaXplX3QgYWNjX3NpemUgPSBiby0+YWNjX3NpemU7 DQo+Pj4+ICAJaW50IHJldDsNCj4+Pj4gICAgCWlmICghYm8tPmRlbGV0ZWQpIHsNCj4+Pj4gQEAg LTQ4NSw3ICs0ODQsNiBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAq a3JlZikNCj4+Pj4gIAlpZiAoIXR0bV9ib191c2VzX2VtYmVkZGVkX2dlbV9vYmplY3QoYm8pKQ0K Pj4+PiAgCQlkbWFfcmVzdl9maW5pKCZiby0+YmFzZS5fcmVzdik7DQo+Pj4+ICAJYm8tPmRlc3Ry b3koYm8pOw0KPj4+PiAtCXR0bV9tZW1fZ2xvYmFsX2ZyZWUoJnR0bV9tZW1fZ2xvYiwgYWNjX3Np emUpOw0KPj4+PiAgfQ0KPj4+PiAgICB2b2lkIHR0bV9ib19wdXQoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykNCj4+Pj4gQEAgLTEwNDYsMjUgKzEwNDQsMTMgQEAgaW50IHR0bV9ib19pbml0 X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LA0KPj4+PiAgCQkJIHN0cnVjdCB0dG1f cGxhY2VtZW50ICpwbGFjZW1lbnQsDQo+Pj4+ICAJCQkgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQs DQo+Pj4+ICAJCQkgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsDQo+Pj4+IC0JCQkgc2l6 ZV90IGFjY19zaXplLA0KPj4+PiAgCQkJIHN0cnVjdCBzZ190YWJsZSAqc2csDQo+Pj4+ICAJCQkg c3RydWN0IGRtYV9yZXN2ICpyZXN2LA0KPj4+PiAgCQkJIHZvaWQgKCpkZXN0cm95KSAoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICopKQ0KPj4+PiAgew0KPj4+PiAtCXN0cnVjdCB0dG1fbWVtX2ds b2JhbCAqbWVtX2dsb2IgPSAmdHRtX21lbV9nbG9iOw0KPj4+PiAgCWJvb2wgbG9ja2VkOw0KPj4+ PiAgCWludCByZXQgPSAwOw0KPj4+PiAgLQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhtZW1f Z2xvYiwgYWNjX3NpemUsIGN0eCk7DQo+Pj4+IC0JaWYgKHJldCkgew0KPj4+PiAtCQlwcl9lcnIo Ik91dCBvZiBrZXJuZWwgbWVtb3J5XG4iKTsNCj4+Pj4gLQkJaWYgKGRlc3Ryb3kpDQo+Pj4+IC0J CQkoKmRlc3Ryb3kpKGJvKTsNCj4+Pj4gLQkJZWxzZQ0KPj4+PiAtCQkJa2ZyZWUoYm8pOw0KPj4+ PiAtCQlyZXR1cm4gLUVOT01FTTsNCj4+Pj4gLQl9DQo+Pj4+IC0NCj4+Pj4gIAliby0+ZGVzdHJv eSA9IGRlc3Ryb3kgPyBkZXN0cm95IDogdHRtX2JvX2RlZmF1bHRfZGVzdHJveTsNCj4+Pj4gICAg CWtyZWZfaW5pdCgmYm8tPmtyZWYpOw0KPj4+PiBAQCAtMTA4MSw3ICsxMDY3LDYgQEAgaW50IHR0 bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LA0KPj4+PiAgCWJvLT5t ZW0uYnVzLmFkZHIgPSBOVUxMOw0KPj4+PiAgCWJvLT5tb3ZpbmcgPSBOVUxMOw0KPj4+PiAgCWJv LT5tZW0ucGxhY2VtZW50ID0gMDsNCj4+Pj4gLQliby0+YWNjX3NpemUgPSBhY2Nfc2l6ZTsNCj4+ Pj4gIAliby0+cGluX2NvdW50ID0gMDsNCj4+Pj4gIAliby0+c2cgPSBzZzsNCj4+Pj4gIAlpZiAo cmVzdikgew0KPj4+PiBAQCAtMTE0Miw3ICsxMTI3LDYgQEAgaW50IHR0bV9ib19pbml0KHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LA0KPj4+PiAgCQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2Vt ZW50LA0KPj4+PiAgCQl1aW50MzJfdCBwYWdlX2FsaWdubWVudCwNCj4+Pj4gIAkJYm9vbCBpbnRl cnJ1cHRpYmxlLA0KPj4+PiAtCQlzaXplX3QgYWNjX3NpemUsDQo+Pj4+ICAJCXN0cnVjdCBzZ190 YWJsZSAqc2csDQo+Pj4+ICAJCXN0cnVjdCBkbWFfcmVzdiAqcmVzdiwNCj4+Pj4gIAkJdm9pZCAo KmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpDQo+Pj4+IEBAIC0xMTUxLDgg KzExMzUsNyBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsDQo+Pj4+ ICAJaW50IHJldDsNCj4+Pj4gICAgCXJldCA9IHR0bV9ib19pbml0X3Jlc2VydmVkKGJkZXYsIGJv LCBzaXplLCB0eXBlLCBwbGFjZW1lbnQsDQo+Pj4+IC0JCQkJICAgcGFnZV9hbGlnbm1lbnQsICZj dHgsIGFjY19zaXplLA0KPj4+PiAtCQkJCSAgIHNnLCByZXN2LCBkZXN0cm95KTsNCj4+Pj4gKwkJ CQkgICBwYWdlX2FsaWdubWVudCwgJmN0eCwgc2csIHJlc3YsIGRlc3Ryb3kpOw0KPj4+PiAgCWlm IChyZXQpDQo+Pj4+ICAJCXJldHVybiByZXQ7DQo+Pj4+ICBAQCAtMTE2MywyMCArMTE0Niw2IEBA IGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwNCj4+Pj4gIH0NCj4+Pj4g IEVYUE9SVF9TWU1CT0wodHRtX2JvX2luaXQpOw0KPj4+PiAgLXNpemVfdCB0dG1fYm9fZG1hX2Fj Y19zaXplKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LA0KPj4+PiAtCQkJICAgdW5zaWduZWQgbG9u ZyBib19zaXplLA0KPj4+PiAtCQkJICAgdW5zaWduZWQgc3RydWN0X3NpemUpDQo+Pj4+IC17DQo+ Pj4+IC0JdW5zaWduZWQgbnBhZ2VzID0gKFBBR0VfQUxJR04oYm9fc2l6ZSkpID4+IFBBR0VfU0hJ RlQ7DQo+Pj4+IC0Jc2l6ZV90IHNpemUgPSAwOw0KPj4+PiAtDQo+Pj4+IC0Jc2l6ZSArPSB0dG1f cm91bmRfcG90KHN0cnVjdF9zaXplKTsNCj4+Pj4gLQlzaXplICs9IHR0bV9yb3VuZF9wb3QobnBh Z2VzICogKDIqc2l6ZW9mKHZvaWQgKikgKyBzaXplb2YoZG1hX2FkZHJfdCkpKTsNCj4+Pj4gLQlz aXplICs9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0cnVjdCB0dG1fdHQpKTsNCj4+Pj4gLQlyZXR1 cm4gc2l6ZTsNCj4+Pj4gLX0NCj4+Pj4gLUVYUE9SVF9TWU1CT0wodHRtX2JvX2RtYV9hY2Nfc2l6 ZSk7DQo+Pj4+IC0NCj4+Pj4gIC8qDQo+Pj4+ICAgKiBidWZmZXIgb2JqZWN0IHZtIGZ1bmN0aW9u cy4NCj4+Pj4gICAqLw0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym9fdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jDQo+Pj4+IGluZGV4 IGRiMGYyNjYxZDUwNC4uMDMxZTU4MTlmZWM0IDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib191dGlsLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm9fdXRpbC5jDQo+Pj4+IEBAIC0zMDksNyArMzA5LDYgQEAgc3RhdGljIGludCB0dG1fYnVm ZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPj4+PiAg ICAJa3JlZl9pbml0KCZmYm8tPmJhc2Uua3JlZik7DQo+Pj4+ICAJZmJvLT5iYXNlLmRlc3Ryb3kg PSAmdHRtX3RyYW5zZmVyZWRfZGVzdHJveTsNCj4+Pj4gLQlmYm8tPmJhc2UuYWNjX3NpemUgPSAw Ow0KPj4+PiAgCWZiby0+YmFzZS5waW5fY291bnQgPSAwOw0KPj4+PiAgCWlmIChiby0+dHlwZSAh PSB0dG1fYm9fdHlwZV9zZykNCj4+Pj4gIAkJZmJvLT5iYXNlLmJhc2UucmVzdiA9ICZmYm8tPmJh c2UuYmFzZS5fcmVzdjsNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMNCj4+Pj4gaW5kZXgg YWMwOTAzYzllNjBhLi42YmRlMzQ0ZTVkYTcgMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2RldmljZS5jDQo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2RldmljZS5jDQo+Pj4+IEBAIC0yNyw5ICsyNywxMiBAQA0KPj4+PiAgICAjZGVmaW5lIHByX2Zt dChmbXQpICJbVFRNIERFVklDRV0gIiBmbXQNCj4+Pj4gICsjaW5jbHVkZSA8bGludXgvbW0uaD4N Cj4+Pj4gKw0KPj4+PiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2RldmljZS5oPg0KPj4+PiAtI2lu Y2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPg0KPj4+PiArI2luY2x1ZGUgPGRybS90dG0vdHRt X3R0Lmg+DQo+Pj4+ICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+DQo+Pj4+ICsj aW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+DQo+Pj4+ICAgICNpbmNsdWRlICJ0dG1fbW9k dWxlLmgiDQo+Pj4+ICBAQCAtNDksOSArNTIsMTEgQEAgc3RhdGljIHZvaWQgdHRtX2dsb2JhbF9y ZWxlYXNlKHZvaWQpDQo+Pj4+ICAJaWYgKC0tdHRtX2dsb2JfdXNlX2NvdW50ID4gMCkNCj4+Pj4g IAkJZ290byBvdXQ7DQo+Pj4+ICArCXR0bV9wb29sX21ncl9maW5pKCk7DQo+Pj4+ICsJdHRtX3R0 X21ncl9maW5pKCk7DQo+Pj4+ICsNCj4+Pj4gIAlrb2JqZWN0X2RlbCgmZ2xvYi0+a29iaik7DQo+ Pj4+ICAJa29iamVjdF9wdXQoJmdsb2ItPmtvYmopOw0KPj4+PiAtCXR0bV9tZW1fZ2xvYmFsX3Jl bGVhc2UoJnR0bV9tZW1fZ2xvYik7DQo+Pj4+ICAJX19mcmVlX3BhZ2UoZ2xvYi0+ZHVtbXlfcmVh ZF9wYWdlKTsNCj4+Pj4gIAltZW1zZXQoZ2xvYiwgMCwgc2l6ZW9mKCpnbG9iKSk7DQo+Pj4+ICBv dXQ6DQo+Pj4+IEBAIC02MSw2ICs2Niw4IEBAIHN0YXRpYyB2b2lkIHR0bV9nbG9iYWxfcmVsZWFz ZSh2b2lkKQ0KPj4+PiAgc3RhdGljIGludCB0dG1fZ2xvYmFsX2luaXQodm9pZCkNCj4+Pj4gIHsN Cj4+Pj4gIAlzdHJ1Y3QgdHRtX2dsb2JhbCAqZ2xvYiA9ICZ0dG1fZ2xvYjsNCj4+Pj4gKwl1bnNp Z25lZCBsb25nIG51bV9wYWdlczsNCj4+Pj4gKwlzdHJ1Y3Qgc3lzaW5mbyBzaTsNCj4+Pj4gIAlp bnQgcmV0ID0gMDsNCj4+Pj4gIAl1bnNpZ25lZCBpOw0KPj4+PiAgQEAgLTY4LDkgKzc1LDE0IEBA IHN0YXRpYyBpbnQgdHRtX2dsb2JhbF9pbml0KHZvaWQpDQo+Pj4+ICAJaWYgKCsrdHRtX2dsb2Jf dXNlX2NvdW50ID4gMSkNCj4+Pj4gIAkJZ290byBvdXQ7DQo+Pj4+ICAtCXJldCA9IHR0bV9tZW1f Z2xvYmFsX2luaXQoJnR0bV9tZW1fZ2xvYik7DQo+Pj4+IC0JaWYgKHJldCkNCj4+Pj4gLQkJZ290 byBvdXQ7DQo+Pj4+ICsJc2lfbWVtaW5mbygmc2kpOw0KPj4+PiArDQo+Pj4+ICsJLyogTGltaXQg dGhlIG51bWJlciBvZiBwYWdlcyBpbiB0aGUgcG9vbCB0byBhYm91dCA1MCUgb2YgdGhlIHRvdGFs DQo+Pj4+ICsJICogc3lzdGVtIG1lbW9yeS4NCj4+Pj4gKwkgKi8NCj4+Pj4gKwludW1fcGFnZXMg PSAoKHU2NClzaS50b3RhbHJhbSAqIHNpLm1lbV91bml0KSA+PiBQQUdFX1NISUZUOw0KPj4+PiAr CXR0bV9wb29sX21ncl9pbml0KG51bV9wYWdlcyAqIDUwIC8gMTAwKTsNCj4+Pj4gKwl0dG1fdHRf bWdyX2luaXQoKTsNCj4+Pj4gICAgCXNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7DQo+ Pj4+ICAJZ2xvYi0+ZHVtbXlfcmVhZF9wYWdlID0gYWxsb2NfcGFnZShfX0dGUF9aRVJPIHwgR0ZQ X0RNQTMyKTsNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wu YyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYw0KPj4+PiBpbmRleCBlMDYxNzcxNzEx M2YuLjZiMGY5NTdkNjNkNSAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fcG9vbC5jDQo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYw0KPj4+ PiBAQCAtNDA0LDE2ICs0MDQsMTAgQEAgaW50IHR0bV9wb29sX2FsbG9jKHN0cnVjdCB0dG1fcG9v bCAqcG9vbCwgc3RydWN0IHR0bV90dCAqdHQsDQo+Pj4+ICAJCQljYWNoaW5nID0gcGFnZXMgKyAo MSA8PCBvcmRlcik7DQo+Pj4+ICAJCX0NCj4+Pj4gIC0JCXIgPSB0dG1fbWVtX2dsb2JhbF9hbGxv Y19wYWdlKCZ0dG1fbWVtX2dsb2IsIHAsDQo+Pj4+IC0JCQkJCSAgICAgICgxIDw8IG9yZGVyKSAq IFBBR0VfU0laRSwNCj4+Pj4gLQkJCQkJICAgICAgY3R4KTsNCj4+Pj4gLQkJaWYgKHIpDQo+Pj4+ IC0JCQlnb3RvIGVycm9yX2ZyZWVfcGFnZTsNCj4+Pj4gLQ0KPj4+PiAgCQlpZiAoZG1hX2FkZHIp IHsNCj4+Pj4gIAkJCXIgPSB0dG1fcG9vbF9tYXAocG9vbCwgb3JkZXIsIHAsICZkbWFfYWRkcik7 DQo+Pj4+ICAJCQlpZiAocikNCj4+Pj4gLQkJCQlnb3RvIGVycm9yX2dsb2JhbF9mcmVlOw0KPj4+ PiArCQkJCWdvdG8gZXJyb3JfZnJlZV9wYWdlOw0KPj4+PiAgCQl9DQo+Pj4+ICAgIAkJbnVtX3Bh Z2VzIC09IDEgPDwgb3JkZXI7DQo+Pj4+IEBAIC00MjcsOSArNDIxLDYgQEAgaW50IHR0bV9wb29s X2FsbG9jKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgc3RydWN0IHR0bV90dCAqdHQsDQo+Pj4+ICAg IAlyZXR1cm4gMDsNCj4+Pj4gIC1lcnJvcl9nbG9iYWxfZnJlZToNCj4+Pj4gLQl0dG1fbWVtX2ds b2JhbF9mcmVlX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwgKDEgPDwgb3JkZXIpICogUEFHRV9TSVpF KTsNCj4+Pj4gLQ0KPj4+PiAgZXJyb3JfZnJlZV9wYWdlOg0KPj4+PiAgCXR0bV9wb29sX2ZyZWVf cGFnZShwb29sLCB0dC0+Y2FjaGluZywgb3JkZXIsIHApOw0KPj4+PiAgQEAgLTQ2NCw4ICs0NTUs NiBAQCB2b2lkIHR0bV9wb29sX2ZyZWUoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRt X3R0ICp0dCkNCj4+Pj4gICAgCQlvcmRlciA9IHR0bV9wb29sX3BhZ2Vfb3JkZXIocG9vbCwgcCk7 DQo+Pj4+ICAJCW51bV9wYWdlcyA9IDFVTEwgPDwgb3JkZXI7DQo+Pj4+IC0JCXR0bV9tZW1fZ2xv YmFsX2ZyZWVfcGFnZSgmdHRtX21lbV9nbG9iLCBwLA0KPj4+PiAtCQkJCQkgbnVtX3BhZ2VzICog UEFHRV9TSVpFKTsNCj4+Pj4gIAkJaWYgKHR0LT5kbWFfYWRkcmVzcykNCj4+Pj4gIAkJCXR0bV9w b29sX3VubWFwKHBvb2wsIHR0LT5kbWFfYWRkcmVzc1tpXSwgbnVtX3BhZ2VzKTsNCj4+Pj4gIGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC9NYWtlZmlsZQ0KPj4+PiBpbmRleCBjYzRjZGNhNzE3NmUuLjhjMDJmYTU4NTJl NyAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZQ0KPj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlDQo+Pj4+IEBAIC05LDcgKzks NyBAQCB2bXdnZngteSA6PSB2bXdnZnhfZXhlY2J1Zi5vIHZtd2dmeF9nbXIubyB2bXdnZnhfa21z Lm8gdm13Z2Z4X2Rydi5vIFwNCj4+Pj4gIAkgICAgdm13Z2Z4X2NvdGFibGUubyB2bXdnZnhfc28u byB2bXdnZnhfYmluZGluZy5vIHZtd2dmeF9tc2cubyBcDQo+Pj4+ICAJICAgIHZtd2dmeF9zaW1w bGVfcmVzb3VyY2UubyB2bXdnZnhfdmEubyB2bXdnZnhfYmxpdC5vIFwNCj4+Pj4gIAkgICAgdm13 Z2Z4X3ZhbGlkYXRpb24ubyB2bXdnZnhfcGFnZV9kaXJ0eS5vIHZtd2dmeF9zdHJlYW1vdXRwdXQu byBcDQo+Pj4+IC0JICAgIHR0bV9vYmplY3QubyB0dG1fbG9jay5vDQo+Pj4+ICsJICAgIHR0bV9v YmplY3QubyB0dG1fbG9jay5vIHR0bV9tZW1vcnkubw0KPj4+PiAgICB2bXdnZngtJChDT05GSUdf VFJBTlNQQVJFTlRfSFVHRVBBR0UpICs9IHZtd2dmeF90aHAubw0KPj4+PiAgb2JqLSQoQ09ORklH X0RSTV9WTVdHRlgpIDo9IHZtd2dmeC5vDQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9tZW1vcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5j DQo+Pj4+IHNpbWlsYXJpdHkgaW5kZXggOTclDQo+Pj4+IHJlbmFtZSBmcm9tIGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX21lbW9yeS5jDQo+Pj4+IHJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3R0bV9tZW1vcnkuYw0KPj4+PiBpbmRleCA2MzRhODVjMmRjNGMuLjEzMDZkOWUwZjA5NSAx MDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5LmMNCj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmMNCj4+Pj4gQEAgLTI4LDcg KzI4LDYgQEANCj4+Pj4gICAgI2RlZmluZSBwcl9mbXQoZm10KSAiW1RUTV0gIiBmbXQNCj4+Pj4g IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+DQo+Pj4+ICAjaW5jbHVkZSA8bGludXgv c3BpbmxvY2suaD4NCj4+Pj4gICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPg0KPj4+PiAgI2luY2x1 ZGUgPGxpbnV4L3dhaXQuaD4NCj4+Pj4gQEAgLTM2LDEwICszNSwxMSBAQA0KPj4+PiAgI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPg0KPj4+PiAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCj4+Pj4g ICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+DQo+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fcG9v bC5oPg0KPj4+PiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+DQo+Pj4+ICAtI2luY2x1ZGUg InR0bV9tb2R1bGUuaCINCj4+Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPg0KPj4+PiAr I2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPg0KPj4+PiArDQo+Pj4+ICsjaW5jbHVkZSAidHRtX21l bW9yeS5oIg0KPj4+PiAgICAjZGVmaW5lIFRUTV9NRU1PUllfQUxMT0NfUkVUUklFUyA0DQo+Pj4+ ICBAQCAtNDE0LDcgKzQxNCw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9pbml0X2RtYTMyX3pvbmUo c3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLA0KPj4+PiAgfQ0KPj4+PiAgI2VuZGlmDQo+Pj4+ ICAtaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQ0K Pj4+PiAraW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9i LCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPj4+PiAgew0KPj4+PiAgCXN0cnVjdCBzeXNpbmZv IHNpOw0KPj4+PiAgCWludCByZXQ7DQo+Pj4+IEBAIC00MjUsNyArNDI1LDggQEAgaW50IHR0bV9t ZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQ0KPj4+PiAgCWdsb2It PnN3YXBfcXVldWUgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSgidHRtX3N3YXAiKTsN Cj4+Pj4gIAlJTklUX1dPUksoJmdsb2ItPndvcmssIHR0bV9zaHJpbmtfd29yayk7DQo+Pj4+ICAJ cmV0ID0ga29iamVjdF9pbml0X2FuZF9hZGQoDQo+Pj4+IC0JCSZnbG9iLT5rb2JqLCAmdHRtX21l bV9nbG9iX2tvYmpfdHlwZSwgdHRtX2dldF9rb2JqKCksICJtZW1vcnlfYWNjb3VudGluZyIpOw0K Pj4+PiArCQkmZ2xvYi0+a29iaiwgJnR0bV9tZW1fZ2xvYl9rb2JqX3R5cGUsICZkZXYtPnByaW1h cnktPmtkZXYtPmtvYmosDQo+Pj4+ICsJCSJtZW1vcnlfYWNjb3VudGluZyIpOw0KPj4+PiAgCWlm ICh1bmxpa2VseShyZXQgIT0gMCkpIHsNCj4+Pj4gIAkJa29iamVjdF9wdXQoJmdsb2ItPmtvYmop Ow0KPj4+PiAgCQlyZXR1cm4gcmV0Ow0KPj4+PiBAQCAtNDUzLDggKzQ1NCw2IEBAIGludCB0dG1f bWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYikNCj4+Pj4gIAkJcHJf aW5mbygiWm9uZSAlN3M6IEF2YWlsYWJsZSBncmFwaGljcyBtZW1vcnk6ICVsbHUgS2lCXG4iLA0K Pj4+PiAgCQkJem9uZS0+bmFtZSwgKHVuc2lnbmVkIGxvbmcgbG9uZyl6b25lLT5tYXhfbWVtID4+ IDEwKTsNCj4+Pj4gIAl9DQo+Pj4+IC0JdHRtX3Bvb2xfbWdyX2luaXQoZ2xvYi0+em9uZV9rZXJu ZWwtPm1heF9tZW0vKDIqUEFHRV9TSVpFKSk7DQo+Pj4+IC0JdHRtX3R0X21ncl9pbml0KCk7DQo+ Pj4+ICAJcmV0dXJuIDA7DQo+Pj4+ICBvdXRfbm9fem9uZToNCj4+Pj4gIAl0dG1fbWVtX2dsb2Jh bF9yZWxlYXNlKGdsb2IpOw0KPj4+PiBAQCAtNDY2LDEwICs0NjUsNiBAQCB2b2lkIHR0bV9tZW1f Z2xvYmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQ0KPj4+PiAgCXN0cnVj dCB0dG1fbWVtX3pvbmUgKnpvbmU7DQo+Pj4+ICAJdW5zaWduZWQgaW50IGk7DQo+Pj4+ICAtCS8q IGxldCB0aGUgcGFnZSBhbGxvY2F0b3IgZmlyc3Qgc3RvcCB0aGUgc2hyaW5rIHdvcmsuICovDQo+ Pj4+IC0JdHRtX3Bvb2xfbWdyX2ZpbmkoKTsNCj4+Pj4gLQl0dG1fdHRfbWdyX2ZpbmkoKTsNCj4+ Pj4gLQ0KPj4+PiAgCWZsdXNoX3dvcmtxdWV1ZShnbG9iLT5zd2FwX3F1ZXVlKTsNCj4+Pj4gIAlk ZXN0cm95X3dvcmtxdWV1ZShnbG9iLT5zd2FwX3F1ZXVlKTsNCj4+Pj4gIAlnbG9iLT5zd2FwX3F1 ZXVlID0gTlVMTDsNCj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5 LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaA0KPj4+PiBzaW1pbGFyaXR5 IGluZGV4IDk3JQ0KPj4+PiByZW5hbWUgZnJvbSBpbmNsdWRlL2RybS90dG0vdHRtX21lbW9yeS5o DQo+Pj4+IHJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuaA0KPj4+ PiBpbmRleCBjMWYxNjc4ODFlMzMuLjg1MGVlNmM4NjdkYSAxMDA2NDQNCj4+Pj4gLS0tIGEvaW5j bHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaA0KPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3R0bV9tZW1vcnkuaA0KPj4+PiBAQCAtMzUsNyArMzUsOCBAQA0KPj4+PiAgI2luY2x1ZGUg PGxpbnV4L2Vycm5vLmg+DQo+Pj4+ICAjaW5jbHVkZSA8bGludXgva29iamVjdC5oPg0KPj4+PiAg I2luY2x1ZGUgPGxpbnV4L21tLmg+DQo+Pj4+IC0jaW5jbHVkZSAidHRtX2JvX2FwaS5oIg0KPj4+ PiArDQo+Pj4+ICsjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+DQo+Pj4+ICAgIC8qKg0K Pj4+PiAgICogc3RydWN0IHR0bV9tZW1fZ2xvYmFsIC0gR2xvYmFsIG1lbW9yeSBhY2NvdW50aW5n IHN0cnVjdHVyZS4NCj4+Pj4gQEAgLTc5LDcgKzgwLDcgQEAgZXh0ZXJuIHN0cnVjdCB0dG1fbWVt X2dsb2JhbCB7DQo+Pj4+ICAjZW5kaWYNCj4+Pj4gIH0gdHRtX21lbV9nbG9iOw0KPj4+PiAgLWlu dCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYik7DQo+Pj4+ ICtpbnQgdHRtX21lbV9nbG9iYWxfaW5pdChzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOw0KPj4+PiAgdm9pZCB0dG1fbWVtX2dsb2JhbF9yZWxlYXNl KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYik7DQo+Pj4+ICBpbnQgdHRtX21lbV9nbG9iYWxf YWxsb2Moc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCB1aW50NjRfdCBtZW1vcnksDQo+Pj4+ ICAJCQkgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpOw0KPj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3R0bV9vYmplY3QuaA0KPj4+PiBpbmRleCBlZGUyNmRmODdjOTMuLjQ5YjA2NGYwY2IxOSAx MDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgNCj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0LmgNCj4+Pj4gQEAgLTQz LDcgKzQzLDggQEANCj4+Pj4gICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPg0KPj4+PiAgICAj aW5jbHVkZSA8ZHJtL2RybV9oYXNodGFiLmg+DQo+Pj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1f bWVtb3J5Lmg+DQo+Pj4+ICsNCj4+Pj4gKyNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiDQo+Pj4+ICAg IC8qKg0KPj4+PiAgICogZW51bSB0dG1fcmVmX3R5cGUNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9iby5jDQo+Pj4+IGluZGV4IDZiM2JmZDhjNjc4YS4uNTBlNTI5YTAxNjc3IDEwMDY0NA0K Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jDQo+Pj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMNCj4+Pj4gQEAgLTUwNywxMSArNTA3 LDE2IEBAIGludCB2bXdfYm9fY3JlYXRlX2tlcm5lbChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2LCB1bnNpZ25lZCBsb25nIHNpemUsDQo+Pj4+ICAJYWNjX3NpemUgPSB0dG1fcm91bmRfcG90 KHNpemVvZigqYm8pKTsNCj4+Pj4gIAlhY2Nfc2l6ZSArPSB0dG1fcm91bmRfcG90KG5wYWdlcyAq IHNpemVvZih2b2lkICopKTsNCj4+Pj4gIAlhY2Nfc2l6ZSArPSB0dG1fcm91bmRfcG90KHNpemVv ZihzdHJ1Y3QgdHRtX3R0KSk7DQo+Pj4+ICsNCj4+Pj4gKwlyZXQgPSB0dG1fbWVtX2dsb2JhbF9h bGxvYygmdHRtX21lbV9nbG9iLCBhY2Nfc2l6ZSwgJmN0eCk7DQo+Pj4+ICsJaWYgKHVubGlrZWx5 KHJldCkpDQo+Pj4+ICsJCWdvdG8gZXJyb3JfZnJlZTsNCj4+Pj4gKw0KPj4+PiAgCXJldCA9IHR0 bV9ib19pbml0X3Jlc2VydmVkKCZkZXZfcHJpdi0+YmRldiwgYm8sIHNpemUsDQo+Pj4+ICAJCQkJ ICAgdHRtX2JvX3R5cGVfZGV2aWNlLCBwbGFjZW1lbnQsIDAsDQo+Pj4+IC0JCQkJICAgJmN0eCwg YWNjX3NpemUsIE5VTEwsIE5VTEwsIE5VTEwpOw0KPj4+PiArCQkJCSAgICZjdHgsIE5VTEwsIE5V TEwsIE5VTEwpOw0KPj4+PiAgCWlmICh1bmxpa2VseShyZXQpKQ0KPj4+PiAtCQlnb3RvIGVycm9y X2ZyZWU7DQo+Pj4+ICsJCWdvdG8gZXJyb3JfYWNjb3VudDsNCj4+Pj4gICAgCXR0bV9ib19waW4o Ym8pOw0KPj4+PiAgCXR0bV9ib191bnJlc2VydmUoYm8pOw0KPj4+PiBAQCAtNTE5LDYgKzUyNCw5 IEBAIGludCB2bXdfYm9fY3JlYXRlX2tlcm5lbChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LCB1bnNpZ25lZCBsb25nIHNpemUsDQo+Pj4+ICAgIAlyZXR1cm4gMDsNCj4+Pj4gICtlcnJvcl9h Y2NvdW50Og0KPj4+PiArCXR0bV9tZW1fZ2xvYmFsX2ZyZWUoJnR0bV9tZW1fZ2xvYiwgYWNjX3Np emUpOw0KPj4+PiArDQo+Pj4+ICBlcnJvcl9mcmVlOg0KPj4+PiAgCWtmcmVlKGJvKTsNCj4+Pj4g IAlyZXR1cm4gcmV0Ow0KPj4+PiBAQCAtNTU4LDExICs1NjYsMTcgQEAgaW50IHZtd19ib19pbml0 KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+Pj4+ICAJdm13X2JvLT5iYXNlLnByaW9y aXR5ID0gMzsNCj4+Pj4gIAl2bXdfYm8tPnJlc190cmVlID0gUkJfUk9PVDsNCj4+Pj4gICsJcmV0 ID0gdHRtX21lbV9nbG9iYWxfYWxsb2MoJnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUsICZjdHgpOw0K Pj4+PiArCWlmICh1bmxpa2VseShyZXQpKQ0KPj4+PiArCQlyZXR1cm4gcmV0Ow0KPj4+PiArDQo+ Pj4+ICAJcmV0ID0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQoYmRldiwgJnZtd19iby0+YmFzZSwgc2l6 ZSwNCj4+Pj4gIAkJCQkgICB0dG1fYm9fdHlwZV9kZXZpY2UsIHBsYWNlbWVudCwNCj4+Pj4gLQkJ CQkgICAwLCAmY3R4LCBhY2Nfc2l6ZSwgTlVMTCwgTlVMTCwgYm9fZnJlZSk7DQo+Pj4+IC0JaWYg KHVubGlrZWx5KHJldCkpDQo+Pj4+ICsJCQkJICAgMCwgJmN0eCwgTlVMTCwgTlVMTCwgYm9fZnJl ZSk7DQo+Pj4+ICsJaWYgKHVubGlrZWx5KHJldCkpIHsNCj4+Pj4gKwkJdHRtX21lbV9nbG9iYWxf ZnJlZSgmdHRtX21lbV9nbG9iLCBhY2Nfc2l6ZSk7DQo+Pj4+ICAJCXJldHVybiByZXQ7DQo+Pj4+ ICsJfQ0KPj4+PiAgICAJaWYgKHBpbikNCj4+Pj4gIAkJdHRtX2JvX3Bpbigmdm13X2JvLT5iYXNl KTsNCj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMNCj4+Pj4gaW5kZXggNzEwYmE1 MTY5YTc0Li42YzBjYTEwMTE2MjkgMTAwNjQ0DQo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5jDQo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5jDQo+Pj4+IEBAIC0xMjY4LDYgKzEyNjgsNyBAQCBzdGF0aWMgdm9pZCB2bXdfcmVt b3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KPj4+PiAgew0KPj4+PiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7DQo+Pj4+ICArCXR0bV9tZW1fZ2xvYmFs X3JlbGVhc2UoJnR0bV9tZW1fZ2xvYik7DQo+Pj4+ICAJZHJtX2Rldl91bnJlZ2lzdGVyKGRldik7 DQo+Pj4+ICAJdm13X2RyaXZlcl91bmxvYWQoZGV2KTsNCj4+Pj4gIH0NCj4+Pj4gQEAgLTE1MTgs NiArMTUxOSwxMCBAQCBzdGF0aWMgaW50IHZtd19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwg Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCj4+Pj4gICAgCXBjaV9zZXRfZHJ2ZGF0 YShwZGV2LCAmdm13LT5kcm0pOw0KPj4+PiAgKwlyZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0KCZ0 dG1fbWVtX2dsb2IsICZ2bXctPmRybSk7DQo+Pj4+ICsJaWYgKHJldCkNCj4+Pj4gKwkJcmV0dXJu IHJldDsNCj4+Pj4gKw0KPj4+PiAgCXJldCA9IHZtd19kcml2ZXJfbG9hZCh2bXcsIGVudC0+ZGV2 aWNlKTsNCj4+Pj4gIAlpZiAocmV0KQ0KPj4+PiAgCQlyZXR1cm4gcmV0Ow0KPj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jDQo+Pj4+IGluZGV4IGQxYmZhNTk1 NzlmMS4uNjNmMTBjODY1MDYxIDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfdHRtX2J1ZmZlci5jDQo+Pj4+IEBAIC01NzYsMTEgKzU3NiwzMSBAQCBzdGF0aWMg dm9pZCB2bXdfdHRtX2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f dHQgKnR0bSkNCj4+Pj4gIHN0YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2Rl dmljZSAqYmRldiwNCj4+Pj4gIAkJCSAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCAqY3R4KQ0KPj4+PiAgew0KPj4+PiArCXVuc2lnbmVkIGludCBpOw0KPj4+ PiArCWludCByZXQ7DQo+Pj4+ICsNCj4+Pj4gIAkvKiBUT0RPOiBtYXliZSBjb21wbGV0ZWx5IGRy b3AgdGhpcyA/ICovDQo+Pj4+ICAJaWYgKHR0bV90dF9pc19wb3B1bGF0ZWQodHRtKSkNCj4+Pj4g IAkJcmV0dXJuIDA7DQo+Pj4+ICAtCXJldHVybiB0dG1fcG9vbF9hbGxvYygmYmRldi0+cG9vbCwg dHRtLCBjdHgpOw0KPj4+PiArCXJldCA9IHR0bV9wb29sX2FsbG9jKCZiZGV2LT5wb29sLCB0dG0s IGN0eCk7DQo+Pj4+ICsJaWYgKHJldCkNCj4+Pj4gKwkJcmV0dXJuIHJldDsNCj4+Pj4gKw0KPj4+ PiArCWZvciAoaSA9IDA7IGkgPCB0dG0tPm51bV9wYWdlczsgKytpKSB7DQo+Pj4+ICsJCXJldCA9 IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgdHRtLT5wYWdlc1tpXSwN Cj4+Pj4gKwkJCQkJCVBBR0VfU0laRSwgY3R4KTsNCj4+Pj4gKwkJaWYgKHJldCkNCj4+Pj4gKwkJ CWdvdG8gZXJyb3I7DQo+Pj4+ICsJfQ0KPj4+PiArCXJldHVybiAwOw0KPj4+PiArDQo+Pj4+ICtl cnJvcjoNCj4+Pj4gKwl3aGlsZSAoaS0tKQ0KPj4+PiArCQl0dG1fbWVtX2dsb2JhbF9mcmVlX3Bh Z2UoJnR0bV9tZW1fZ2xvYiwgdHRtLT5wYWdlc1tpXSwNCj4+Pj4gKwkJCQkJIFBBR0VfU0laRSk7 DQo+Pj4+ICsJdHRtX3Bvb2xfZnJlZSgmYmRldi0+cG9vbCwgdHRtKTsNCj4+Pj4gKwlyZXR1cm4g cmV0Ow0KPj4+PiAgfQ0KPj4+PiAgICBzdGF0aWMgdm9pZCB2bXdfdHRtX3VucG9wdWxhdGUoc3Ry dWN0IHR0bV9kZXZpY2UgKmJkZXYsDQo+Pj4+IEBAIC01ODgsNiArNjA4LDcgQEAgc3RhdGljIHZv aWQgdm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LA0KPj4+PiAgew0K Pj4+PiAgCXN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQgPSBjb250YWluZXJfb2YodHRtLCBzdHJ1 Y3Qgdm13X3R0bV90dCwNCj4+Pj4gIAkJCQkJCSBkbWFfdHRtKTsNCj4+Pj4gKwl1bnNpZ25lZCBp bnQgaTsNCj4+Pj4gICAgCWlmICh2bXdfdHQtPm1vYikgew0KPj4+PiAgCQl2bXdfbW9iX2Rlc3Ry b3kodm13X3R0LT5tb2IpOw0KPj4+PiBAQCAtNTk1LDYgKzYxNiwxMSBAQCBzdGF0aWMgdm9pZCB2 bXdfdHRtX3VucG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsDQo+Pj4+ICAJfQ0KPj4+ PiAgICAJdm13X3R0bV91bm1hcF9kbWEodm13X3R0KTsNCj4+Pj4gKw0KPj4+PiArCWZvciAoaSA9 IDA7IGkgPCB0dG0tPm51bV9wYWdlczsgKytpKQ0KPj4+PiArCQl0dG1fbWVtX2dsb2JhbF9mcmVl X3BhZ2UoJnR0bV9tZW1fZ2xvYiwgdHRtLT5wYWdlc1tpXSwNCj4+Pj4gKwkJCQkJIFBBR0VfU0la RSk7DQo+Pj4+ICsNCj4+Pj4gIAl0dG1fcG9vbF9mcmVlKCZiZGV2LT5wb29sLCB0dG0pOw0KPj4+ PiAgfQ0KPj4+PiAgZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggYi9p bmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oDQo+Pj4+IGluZGV4IDEyOTdhOGZiN2NjYi4uNGZi NTIzZGZhYjMyIDEwMDY0NA0KPj4+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5o DQo+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgNCj4+Pj4gQEAgLTg4LDcg Kzg4LDYgQEAgc3RydWN0IHR0bV90dDsNCj4+Pj4gICAqIEB0eXBlOiBUaGUgYm8gdHlwZS4NCj4+ Pj4gICAqIEBkZXN0cm95OiBEZXN0cnVjdGlvbiBmdW5jdGlvbi4gSWYgTlVMTCwga2ZyZWUgaXMg dXNlZC4NCj4+Pj4gICAqIEBudW1fcGFnZXM6IEFjdHVhbCBudW1iZXIgb2YgcGFnZXMuDQo+Pj4+ IC0gKiBAYWNjX3NpemU6IEFjY291bnRlZCBzaXplIGZvciB0aGlzIG9iamVjdC4NCj4+Pj4gICAq IEBrcmVmOiBSZWZlcmVuY2UgY291bnQgb2YgdGhpcyBidWZmZXIgb2JqZWN0LiBXaGVuIHRoaXMg cmVmY291bnQgcmVhY2hlcw0KPj4+PiAgICogemVybywgdGhlIG9iamVjdCBpcyBkZXN0cm95ZWQg b3IgcHV0IG9uIHRoZSBkZWxheWVkIGRlbGV0ZSBsaXN0Lg0KPj4+PiAgICogQG1lbTogc3RydWN0 dXJlIGRlc2NyaWJpbmcgY3VycmVudCBwbGFjZW1lbnQuDQo+Pj4+IEBAIC0xMjUsNyArMTI0LDYg QEAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHsNCj4+Pj4gIAlzdHJ1Y3QgdHRtX2RldmljZSAq YmRldjsNCj4+Pj4gIAllbnVtIHR0bV9ib190eXBlIHR5cGU7DQo+Pj4+ICAJdm9pZCAoKmRlc3Ry b3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKik7DQo+Pj4+IC0Jc2l6ZV90IGFjY19zaXpl Ow0KPj4+PiAgICAJLyoqDQo+Pj4+ICAJKiBNZW1iZXJzIG5vdCBuZWVkaW5nIHByb3RlY3Rpb24u DQo+Pj4+IEBAIC0zNTcsMTAgKzM1NSw2IEBAIHZvaWQgdHRtX2JvX3VubG9ja19kZWxheWVkX3dv cmtxdWV1ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgaW50IHJlc2NoZWQpOw0KPj4+PiAgYm9v bCB0dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywN Cj4+Pj4gIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlKTsNCj4+Pj4gIC1z aXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwNCj4+Pj4g LQkJCSAgIHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwNCj4+Pj4gLQkJCSAgIHVuc2lnbmVkIHN0cnVj dF9zaXplKTsNCj4+Pj4gLQ0KPj4+PiAgLyoqDQo+Pj4+ICAgKiB0dG1fYm9faW5pdF9yZXNlcnZl ZA0KPj4+PiAgICoNCj4+Pj4gQEAgLTM3MSw3ICszNjUsNiBAQCBzaXplX3QgdHRtX2JvX2RtYV9h Y2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwNCj4+Pj4gICAqIEBmbGFnczogSW5pdGlh bCBwbGFjZW1lbnQgZmxhZ3MuDQo+Pj4+ICAgKiBAcGFnZV9hbGlnbm1lbnQ6IERhdGEgYWxpZ25t ZW50IGluIHBhZ2VzLg0KPj4+PiAgICogQGN0eDogVFRNIG9wZXJhdGlvbiBjb250ZXh0IGZvciBt ZW1vcnkgYWxsb2NhdGlvbi4NCj4+Pj4gLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9y IHRoaXMgb2JqZWN0Lg0KPj4+PiAgICogQHJlc3Y6IFBvaW50ZXIgdG8gYSBkbWFfcmVzdiwgb3Ig TlVMTCB0byBsZXQgdHRtIGFsbG9jYXRlIG9uZS4NCj4+Pj4gICAqIEBkZXN0cm95OiBEZXN0cm95 IGZ1bmN0aW9uLiBVc2UgTlVMTCBmb3Iga2ZyZWUoKS4NCj4+Pj4gICAqDQo+Pj4+IEBAIC00MDIs OCArMzk1LDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpi ZGV2LA0KPj4+PiAgCQkJIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsDQo+Pj4+ICAJ CQkgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsDQo+Pj4+ICAJCQkgc3RydWN0IHR0bV9vcGVyYXRp b25fY3R4ICpjdHgsDQo+Pj4+IC0JCQkgc2l6ZV90IGFjY19zaXplLCBzdHJ1Y3Qgc2dfdGFibGUg KnNnLA0KPj4+PiAtCQkJIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwNCj4+Pj4gKwkJCSBzdHJ1Y3Qg c2dfdGFibGUgKnNnLCBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsDQo+Pj4+ICAJCQkgdm9pZCAoKmRl c3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpOw0KPj4+PiAgICAvKioNCj4+Pj4g QEAgLTQyMSw3ICs0MTMsNiBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsDQo+Pj4+ICAgKiBob2xkcyBhIHBvaW50ZXIgdG8gYSBwZXJzaXN0ZW50IHNo bWVtIG9iamVjdC4gVHlwaWNhbGx5LCB0aGlzIHdvdWxkDQo+Pj4+ICAgKiBwb2ludCB0byB0aGUg c2htZW0gb2JqZWN0IGJhY2tpbmcgYSBHRU0gb2JqZWN0IGlmIFRUTSBpcyB1c2VkIHRvIGJhY2sg YQ0KPj4+PiAgICogR0VNIHVzZXIgaW50ZXJmYWNlLg0KPj4+PiAtICogQGFjY19zaXplOiBBY2Nv dW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3QuDQo+Pj4+ICAgKiBAcmVzdjogUG9pbnRlciB0byBh IGRtYV9yZXN2LCBvciBOVUxMIHRvIGxldCB0dG0gYWxsb2NhdGUgb25lLg0KPj4+PiAgICogQGRl c3Ryb3k6IERlc3Ryb3kgZnVuY3Rpb24uIFVzZSBOVUxMIGZvciBrZnJlZSgpLg0KPj4+PiAgICoN Cj4+Pj4gQEAgLTQ0Niw3ICs0MzcsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0 IHR0bV9kZXZpY2UgKmJkZXYsDQo+Pj4+ICBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sDQo+Pj4+ICAJCXNpemVfdCBz aXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsDQo+Pj4+ICAJCXN0cnVjdCB0dG1fcGxhY2VtZW50 ICpwbGFjZW1lbnQsDQo+Pj4+IC0JCXVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LCBib29sIGludGVy cnVidGlibGUsIHNpemVfdCBhY2Nfc2l6ZSwNCj4+Pj4gKwkJdWludDMyX3QgcGFnZV9hbGlnbm1l bnQsIGJvb2wgaW50ZXJydWJ0aWJsZSwNCj4+Pj4gIAkJc3RydWN0IHNnX3RhYmxlICpzZywgc3Ry dWN0IGRtYV9yZXN2ICpyZXN2LA0KPj4+PiAgCQl2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqKSk7DQo+Pj4+ICBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgNCj4+Pj4gaW5k ZXggMWM5YmY5OTNlMjUyLi44OTU5YzAwNzVjZmQgMTAwNjQ0DQo+Pj4+IC0tLSBhL2luY2x1ZGUv ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgNCj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaA0KPj4+PiBAQCAtNDAsNyArNDAsNiBAQA0KPj4+PiAgI2luY2x1ZGUgPGRybS90 dG0vdHRtX2RldmljZS5oPg0KPj4+PiAgICAjaW5jbHVkZSAidHRtX2JvX2FwaS5oIg0KPj4+PiAt I2luY2x1ZGUgInR0bV9tZW1vcnkuaCINCj4+Pj4gICNpbmNsdWRlICJ0dG1fcGxhY2VtZW50Lmgi DQo+Pj4+ICAjaW5jbHVkZSAidHRtX3R0LmgiDQo+Pj4+ICAjaW5jbHVkZSAidHRtX3Bvb2wuaCIN Cj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaCBiL2luY2x1ZGUvZHJt L3R0bS90dG1fdHQuaA0KPj4+PiBpbmRleCBjY2U1N2ZiNDllMmMuLjA2OWY4MTMwMjQxYSAxMDA2 NDQNCj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oDQo+Pj4+ICsrKyBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fdHQuaA0KPj4+PiBAQCAtMzAsNiArMzAsNyBAQA0KPj4+PiAgI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+DQo+Pj4+ICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fY2FjaGluZy5o Pg0KPj4+PiAgK3N0cnVjdCB0dG1fYm9fZGV2aWNlOw0KPj4+PiAgc3RydWN0IHR0bV90dDsNCj4+ Pj4gIHN0cnVjdCB0dG1fcmVzb3VyY2U7DQo+Pj4+ICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Q7 DQo+IA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK