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=-15.2 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 703BEC433E0 for ; Tue, 2 Feb 2021 15:17:11 +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 1AA5D64F5E for ; Tue, 2 Feb 2021 15:17:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1AA5D64F5E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.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 5030C6E197; Tue, 2 Feb 2021 15:17:10 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2054.outbound.protection.outlook.com [40.107.237.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9FF006E197 for ; Tue, 2 Feb 2021 15:17:08 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YwuqpvANDcvlQrngNpKdzGK63vHPHBnZ+9o5xMPLINIucUlotxMvDBAiEUqv7gEXxin3qh0qJ5NRwnQiJaeG1A2wqWu5YrzlTsqX9EgYqDvKoEFRPyJB4JvDNx3sSnRT1j0coNksKXFZ/7GGRROyRW2gHDy8Cs5L3YHBA2s2cvgQ1qzcMdaK2E4KOS48za1Fnfe/K+m9tiWM0vTzqzyIPpLOMVq1gNOK2pQ+Dppq2lgM/VAqzQR/K6sHjGzAqMwFLm2DYUMVb/e2CvSAXbfoLDB/TDMTAkeXdpMWqIhlMJjd5Ym3DkQXnL2q1MM3pTSyGBTDXPRo1AYGEBquk21BcA== 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=k/JRltUbNogTw5rWMbjEzLx53DUSXxd9jX/1p34wtu8=; b=Bu/HJVws9ugOXAODVtm6DwlAtSOSq9CxIue5dx09l1g+FKIJQxpGj8VpVXxe7hWmIQU68B7f+xLtODHSkdZz6xuSKI4p1vpNfWCuPuk+UCYCrS0tvz0ichjBkhsRj+T/JyclPwslLqnylZIgjD9KAGZ2mGvJ3jkUscr+8Y2c6yop1j9VyOXJjnBdaXwQuIsChVaerPzuuFGqBWRWmCYOfkr5QPbIWYuqeRQVhCwNAimcmMDf60RzPhvw8DnmlOUcIFYtg/y5EyQsYzNQWFIziig5OQkT+bXlC55xclY96eT+B50wWMvvXjFmdXV14lTW1gAU8gaZ0QPkRMGvCrR8EA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k/JRltUbNogTw5rWMbjEzLx53DUSXxd9jX/1p34wtu8=; b=aUyW21ApVtnOlQsbU9rZ0YfHb6HDHo2WSI7LlSG4WgMJtRx46b1L6cTfJQM5A/H1lZAKcGb9FQWqsc9tAmmpWJWaeevmxDKTu1RkI3aLolwc/UzFpaYTre51HiROW1zh71GT595Q11rc5KWhgRp8k8NTZP0fcNdfoC1G0R3jKS4= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by BL0PR12MB2385.namprd12.prod.outlook.com (2603:10b6:207:4d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.19; Tue, 2 Feb 2021 15:17:05 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5%3]) with mapi id 15.20.3805.024; Tue, 2 Feb 2021 15:17:05 +0000 Subject: Re: [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v3 To: Zack Rusin References: <20210128131604.149660-1-christian.koenig@amd.com> <20210128131604.149660-2-christian.koenig@amd.com> <071AC444-2B1A-4333-83FA-CA1A53E35C1C@vmware.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <003b1e64-2510-5d96-be62-f8f45843023b@amd.com> Date: Tue, 2 Feb 2021 16:16:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <071AC444-2B1A-4333-83FA-CA1A53E35C1C@vmware.com> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM3PR07CA0139.eurprd07.prod.outlook.com (2603:10a6:207:8::25) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by AM3PR07CA0139.eurprd07.prod.outlook.com (2603:10a6:207:8::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.8 via Frontend Transport; Tue, 2 Feb 2021 15:17:03 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 36466bd8-abe7-46da-93c0-08d8c78d98da X-MS-TrafficTypeDiagnostic: BL0PR12MB2385: 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: KsincFUiSU16wOZ3PupnVemD0XxB2GTEbKBC+YexYKzcigxCKaa5Z5JCVfQJuYFwCWjgaleVPJfKEAI7RmbqLTnn7GUmkziMt9LU+vxxeNLbSy8uChug6e1t5sgxLrgKf6wI8wSHpzlWzceUwKFDyPzU+BJB8xq0RnmbyslLz8Q/Buvvlim7P3VbiWd7CJrxAqhGqPP+Xjs+gfm7Aw4DnLDQqtwO7ckZ8U3wT7nqXDJw7wbogFJ5Yuu0dNs3IP1093s636qRmoO5YIl73CXWS3Apze6hr3aav1paBYfylT5F6azOx7Ndx0cW3R5Rbg9CsQ/IxnLWEIHT/jXc7j50YLW17D1rfKZGObuPx40DOX90NCN5a0dM/TlwVlBZH5mRwcVUphBwYYmnVMVvbn1Z861fyjLKCNaW3lDeSkqNtg6Mn35S1naoc6pY8FZt+yLRNaapBaPgpJ/eTq+uE/ljBcUAOpaVeO0c0TrWTqGi0BfL3sAfmHjtLrYaza/WXe0vXRZKeUupnEFGLSv9+Hs9EfshPCNklakSiMG6xfwIsc5YO2Oq4uHmC1k9GtFTV7zrR4dghgru57mcVefK1+JfS4kSmOUfClHtOs4/SFQDrJr9nNAQLCu7Q4vULNXHbtkJ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(136003)(346002)(376002)(39860400002)(2906002)(54906003)(31686004)(6486002)(8936002)(15650500001)(316002)(4326008)(66556008)(66476007)(2616005)(53546011)(52116002)(478600001)(66946007)(30864003)(6916009)(16526019)(186003)(66574015)(36756003)(86362001)(6666004)(83380400001)(8676002)(5660300002)(31696002)(40753002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?bHdXRXd1c1ZTdGwyai9qYzNhUzFMN0l4cW9uQVhUZHlQYjk5YWpzQ2JXT2hx?= =?utf-8?B?RVowaWVWK29naXNlaXJ1VkZwdXpLS2M5TWRSRU8xYnVxbjQrQTNuK0oxb2hW?= =?utf-8?B?cUxwZjFlVm9iVVNzVlY2cnpKaTl1YzAyTTIreUF4N2EwRzhpUDJkY0s4K05K?= =?utf-8?B?UEllQmxRdHJSclVxajUvNHFJckdhajZLUXdVSzRQMXZEeXg1UTdZOFBGcUli?= =?utf-8?B?Rms3M3NTRHJ6d2NETGc4bTVMOXdxVy9rWW9TNmtIaGJGT3pRS1BVSGdkcW5Y?= =?utf-8?B?S0dwU3FMMW44YVdLalNGVWkwUDhRdUorL0VpdmlnU1FtV3lHSzk1VXZiNkt3?= =?utf-8?B?K25XWEdtMXdlWE5RcUhSVU5TRExNazJFL0QrM0ZBUmkyZUNiNFpxWVJBQmtX?= =?utf-8?B?aVV2QmhqcllkcGw0ZlVTdUxXeUsvOTRtSDdkK3JEOHJtUGF5blFjQXFudExX?= =?utf-8?B?S09TdWRURGlxbXJtT0VLdURqTG5KMHRzYzNtY3dmcUdLakhIWmRWaWxGTmlr?= =?utf-8?B?OW9rN08vSWxKZ3I1VHpLbnJRS24yUGFhekQ2YkVrRUJ0M0NIRlFnaGdtaGNj?= =?utf-8?B?TGd3OHNhUGpreU4xOU43RUExSWdtRTJlRXBRWVJTa0RraHNFUTY5eVN2cTZl?= =?utf-8?B?WHJKZVNDTlJOR3VrcUhQeTZ0YnpXODBYVjNKWlZkSGNBZFJBaVRibm1TNUZY?= =?utf-8?B?QTJNTEZBdFJlaFM4ZUhkZitUWXlpZzZYUHZKRGRYQzRDREo3YmJpTDJLd1A0?= =?utf-8?B?b3JNczFTYmtDT1oxWWt3aTRCSUZtclVPMmlFaER5UFZhMHNacXZmRWdMQ3pP?= =?utf-8?B?MG9GSUJTWEVLWlpFU2x3Y1c5c0VQZ0FWdmhXMnFOOHVpekZ6SE82T2V3eStZ?= =?utf-8?B?SEJmMzkyOEJwQ3d6QjdrZkNVeis0TWovcU5oUDVEeG82YnphalpWWW8xSmdR?= =?utf-8?B?dllnb1BnMzc5UEhlVEdqVVdyNzNRYWllaVYzS01HSDJLdnB5VGNNOUJGOW9l?= =?utf-8?B?V0N0Wm8rSjM5YjE5a28wdjVjY0RUOGQraEJoTStsSkdrWmdudDdtaUhtTG4z?= =?utf-8?B?MkpaYWpOa2VVSnE4MkFxOVFkVUNVcThKZDA4c0NvelVQTHBvd3dBWUxvOUx1?= =?utf-8?B?dFB2WXJ5YWNJTlhycldqTUZySmhxTnVNSU91dGliUlVUUkRYdXhBN21pdWds?= =?utf-8?B?RmgyOU5lWnBqM3p3NUhoTUYreU9xTUFnTmM3cENraFkrZFdZSkYyZHVBMm15?= =?utf-8?B?cFdqNHUvaXpDTmhWc0VjZDA0MnlLaXVSamM0Yis4YjExaDBFUVVvd1NKV05C?= =?utf-8?B?QnlIdXYvcmZ6TlEyQlFwSm5CQUgrdk5mSkt6TkNCZnZpanIzMjFuc2xQRUh5?= =?utf-8?B?N0ZOblo1dG8zN1Bra09neEMwUXpFa3pzdTdrSk5MVHBqWUVGSGJBVGV1U214?= =?utf-8?B?WGEzUEtrRzJFOVJpMlc4bzQxeDl6YXlUWWxvUGEzaytGNkJWTWYydlZ1K2dC?= =?utf-8?B?eXJta2tna3ZJYmhVYTMyUklTWTlQTlhsd1Z1WFQvZkZ0WjZaSXFyNHVrTGxZ?= =?utf-8?B?Smtmdz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36466bd8-abe7-46da-93c0-08d8c78d98da X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2021 15:17:04.9278 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dJxicwIi/O9hr4U80QBPHV9wHhpTal7+Am/KZ5MXOz4FN9cqJ1RFA/5UHJQdXykI X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB2385 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgWmFjaywKCmNhbiB5b3UgYWxzbyBnaXZlIGl0IGEgcXVpY2sgc21va2UgdGVzdD8KCkknbSBu b3Qgc3VyZSBpZiBJIHdpcmVkIHVwIGFsbCB0aGUgc3lzZnMgbWFnaWMgY29ycmVjdGx5IGluc2lk ZSB2bXdnZngsIApidXQgSSBjdXJyZW50bHkgZG9uJ3QgaGF2ZSBhIHNldHVwIHdoZXJlIEkgY2Fu IHRlc3QgdGhpcy4KClRoYW5rcywKQ2hyaXN0aWFuLgoKQW0gMDIuMDIuMjEgdW0gMTY6MTQgc2No cmllYiBaYWNrIFJ1c2luOgo+IExvb2tzIGdvb2QuIFRoZXJl4oCZcyBwcm9iYWJseSBub3QgbXVj aCByZWFzb24gdG8gY2FsbCBpdCB0dG1fbWVtb3J5IGFueW1vcmUgYXMgaXQgb25seSBkZWFscyB3 aXRoIHR0bV9tZW1fZ2xvYiwgd2XigJlsbCBsaWtlbHkgZm9sZCBpdCBpbiBhZnRlciB5b3Ugc3Vi bWl0LiBUaGFua3MuCj4KPiBSZXZpZXdlZC1ieTogWmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNv bT4KPgo+IHoKPgo+PiBPbiBGZWIgMiwgMjAyMSwgYXQgMDg6MDQsIENocmlzdGlhbiBLw7ZuaWcg PGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4+Cj4+IFBpbmc/Cj4+Cj4+IEVzcGVj aWFsbHkgUm9sYW5kIGFuZCBaYWNrIGRvIHlvdSBoYXZlIGFueSBvYmplY3Rpb25zIHRvIHRoaXM/ Cj4+Cj4+IFJlZ2FyZHMsCj4+IENocmlzdGlhbi4KPj4KPj4gQW0gMjguMDEuMjEgdW0gMTQ6MTYg c2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+Pj4gVGhpcyBpcyBqdXN0IGFub3RoZXIgZmVhdHVy ZSB3aGljaCBpcyBvbmx5IHVzZWQgYnkgVk1XR0ZYLCBzbyBtb3ZlCj4+PiBpdCBpbnRvIHRoZSBk cml2ZXIgaW5zdGVhZC4KPj4+Cj4+PiBJJ3ZlIHRyaWVkIHRvIGFkZCB0aGUgYWNjb3VudGluZyBz eXNmcyBmaWxlIHRvIHRoZSBrb2JqZWN0IG9mIHRoZSBkcm0KPj4+IG1pbm9yLCBidXQgSSdtIG5v dCAxMDAlIHN1cmUgaWYgdGhpcyB3b3JrcyBhcyBleHBlY3RlZC4KPj4+Cj4+PiB2MjogZml4IHR5 cG8gaW4gS0ZEIGFuZCBhdm9pZCA2NGJpdCBkaXZpZGUKPj4+IHYzOiBmaXggaW5pdCBvcmRlciBp biBWTVdHRlgKPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3Rp YW4ua29lbmlnQGFtZC5jb20+Cj4+PiAtLS0KPj4+ICAgLi4uL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkX2dwdXZtLmMgIHwgMTYgKysrKysrLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyAgICB8ICA4ICsrLS0tCj4+PiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICAgICB8ICA2ICsrLS0KPj4+ICAgZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jICAgICAgICAgIHwgIDcgKystLQo+Pj4g ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oICAgICAgICAgfCAgMSAtCj4+ PiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5jICAgICAgICAgICAgICB8ICA0ICst LQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyAgICAgICAgfCAg OCArKy0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgfCAgNyArKy0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAg ICAgICAgICB8IDMzICstLS0tLS0tLS0tLS0tLS0tLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwgIDEgLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9kZXZpY2UuYyAgICAgICAgICAgICAgfCAyMiArKysrKysrKysrLS0tCj4+PiAgIGRy aXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyAgICAgICAgICAgICAgICB8IDEzICstLS0tLS0t Cj4+PiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAy ICstCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS97dHRtID0+IHZtd2dmeH0vdHRtX21lbW9yeS5jICB8 IDE5ICsrKystLS0tLS0tCj4+PiAgIC4uLi9ncHUvZHJtL3Ztd2dmeH0vdHRtX21lbW9yeS5oICAg ICAgICAgICAgICB8ICA1ICstLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmpl Y3QuaCAgICAgICAgICAgfCAgMyArLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9iby5jICAgICAgICAgICAgfCAyMiArKysrKysrKysrLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5jICAgICAgICAgICB8ICA1ICsrKwo+Pj4gICBkcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMgICAgfCAyOCArKysrKysrKysrKysrKyst Cj4+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggICAgICAgICAgICAgICAgICB8IDEz ICsrLS0tLS0tCj4+PiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAg ICAgICB8ICAxIC0KPj4+ICAgaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oICAgICAgICAgICAgICAg ICAgICAgIHwgIDEgKwo+Pj4gICAyMiBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwg MTE1IGRlbGV0aW9ucygtKQo+Pj4gICByZW5hbWUgZHJpdmVycy9ncHUvZHJtL3t0dG0gPT4gdm13 Z2Z4fS90dG1fbWVtb3J5LmMgKDk3JSkKPj4+ICAgcmVuYW1lIHtpbmNsdWRlL2RybS90dG0gPT4g ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeH0vdHRtX21lbW9yeS5oICg5NyUpCj4+Pgo+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+Pj4gaW5k ZXggMDg0OWI2OGU3ODRmLi5lNDQwYWYzN2RkZTggMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMKPj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+Pj4gQEAgLTExOCw2ICsx MTgsMTYgQEAgdm9pZCBhbWRncHVfYW1ka2ZkX2dwdXZtX2luaXRfbWVtX2xpbWl0cyh2b2lkKQo+ Pj4gICAgKi8KPj4+ICAgI2RlZmluZSBFU1RJTUFURV9QVF9TSVpFKG1lbV9zaXplKSAoKG1lbV9z aXplKSA+PiAxNCkKPj4+ICAgK3N0YXRpYyBzaXplX3QgYW1kZ3B1X2FtZGtmZF9hY2Nfc2l6ZSh1 aW50NjRfdCBzaXplKQo+Pj4gK3sKPj4+ICsJc2l6ZSA+Pj0gUEFHRV9TSElGVDsKPj4+ICsJc2l6 ZSAqPSBzaXplb2YoZG1hX2FkZHJfdCkgKyBzaXplb2Yodm9pZCAqKTsKPj4+ICsKPj4+ICsJcmV0 dXJuIF9fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSkgKwo+Pj4g KwkJX19yb3VuZHVwX3Bvd19vZl90d28oc2l6ZW9mKHN0cnVjdCB0dG1fdHQpKSArCj4+PiArCQlQ QUdFX0FMSUdOKHNpemUpOwo+Pj4gK30KPj4+ICsKPj4+ICAgc3RhdGljIGludCBhbWRncHVfYW1k a2ZkX3Jlc2VydmVfbWVtX2xpbWl0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gICAJ CXVpbnQ2NF90IHNpemUsIHUzMiBkb21haW4sIGJvb2wgc2cpCj4+PiAgIHsKPj4+IEBAIC0xMjYs OCArMTM2LDcgQEAgc3RhdGljIGludCBhbWRncHVfYW1ka2ZkX3Jlc2VydmVfbWVtX2xpbWl0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gICAJc2l6ZV90IGFjY19zaXplLCBzeXN0ZW1f bWVtX25lZWRlZCwgdHRtX21lbV9uZWVkZWQsIHZyYW1fbmVlZGVkOwo+Pj4gICAJaW50IHJldCA9 IDA7Cj4+PiAgIC0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXplKCZhZGV2LT5tbWFuLmJk ZXYsIHNpemUsCj4+PiAtCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IGFtZGdwdV9ibykpOwo+Pj4g KwlhY2Nfc2l6ZSA9IGFtZGdwdV9hbWRrZmRfYWNjX3NpemUoc2l6ZSk7Cj4+PiAgICAgCXZyYW1f bmVlZGVkID0gMDsKPj4+ICAgCWlmIChkb21haW4gPT0gQU1ER1BVX0dFTV9ET01BSU5fR1RUKSB7 Cj4+PiBAQCAtMTc0LDggKzE4Myw3IEBAIHN0YXRpYyB2b2lkIHVucmVzZXJ2ZV9tZW1fbGltaXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+PiAgIHsKPj4+ICAgCXNpemVfdCBhY2Nfc2l6 ZTsKPj4+ICAgLQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRl diwgc2l6ZSwKPj4+IC0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSk7Cj4+PiAr CWFjY19zaXplID0gYW1kZ3B1X2FtZGtmZF9hY2Nfc2l6ZShzaXplKTsKPj4+ICAgICAJc3Bpbl9s b2NrKCZrZmRfbWVtX2xpbWl0Lm1lbV9saW1pdF9sb2NrKTsKPj4+ICAgCWlmIChkb21haW4gPT0g QU1ER1BVX0dFTV9ET01BSU5fR1RUKSB7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X29iamVjdC5jCj4+PiBpbmRleCA2Y2M5OTE5YjEyY2MuLjU5OWM5YTEzMmViNiAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+PiBA QCAtNTIzLDcgKzUyMyw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX2RvX2NyZWF0ZShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ICAgCX07Cj4+PiAgIAlzdHJ1Y3QgYW1kZ3B1X2JvICpi bzsKPj4+ICAgCXVuc2lnbmVkIGxvbmcgcGFnZV9hbGlnbiwgc2l6ZSA9IGJwLT5zaXplOwo+Pj4g LQlzaXplX3QgYWNjX3NpemU7Cj4+PiAgIAlpbnQgcjsKPj4+ICAgICAJLyogTm90ZSB0aGF0IEdE Uy9HV1MvT0EgYWxsb2NhdGVzIDEgcGFnZSBwZXIgYnl0ZS9yZXNvdXJjZS4gKi8KPj4+IEBAIC01 NDYsOSArNTQ1LDYgQEAgc3RhdGljIGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAo+Pj4gICAgIAkqYm9fcHRyID0gTlVMTDsKPj4+ICAgLQlhY2Nfc2l6 ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwKPj4+IC0JCQkJ ICAgICAgIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSk7Cj4+PiAtCj4+PiAgIAlibyA9IGt6YWxs b2Moc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pLCBHRlBfS0VSTkVMKTsKPj4+ICAgCWlmIChibyA9 PSBOVUxMKQo+Pj4gICAJCXJldHVybiAtRU5PTUVNOwo+Pj4gQEAgLTU3Nyw4ICs1NzMsOCBAQCBz dGF0aWMgaW50IGFtZGdwdV9ib19kb19jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4+PiAgIAkJYm8tPnRiby5wcmlvcml0eSA9IDE7Cj4+PiAgICAgCXIgPSB0dG1fYm9faW5pdF9y ZXNlcnZlZCgmYWRldi0+bW1hbi5iZGV2LCAmYm8tPnRibywgc2l6ZSwgYnAtPnR5cGUsCj4+PiAt CQkJCSAmYm8tPnBsYWNlbWVudCwgcGFnZV9hbGlnbiwgJmN0eCwgYWNjX3NpemUsCj4+PiAtCQkJ CSBOVUxMLCBicC0+cmVzdiwgJmFtZGdwdV9ib19kZXN0cm95KTsKPj4+ICsJCQkJICZiby0+cGxh Y2VtZW50LCBwYWdlX2FsaWduLCAmY3R4LCAgTlVMTCwKPj4+ICsJCQkJIGJwLT5yZXN2LCAmYW1k Z3B1X2JvX2Rlc3Ryb3kpOwo+Pj4gICAJaWYgKHVubGlrZWx5KHIgIT0gMCkpCj4+PiAgIAkJcmV0 dXJuIHI7Cj4+PiAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwo+Pj4gaW5kZXgg MGIxM2M4NTA3Njg4Li5hMDk5MmYwYjhhZmQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bV92cmFtX2hlbHBlci5jCj4+PiBAQCAtMTg5LDcgKzE4OSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3Zy YW1fb2JqZWN0ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ PiAgIAlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IGRldi0+dnJhbV9tbTsKPj4+ICAgCXN0cnVj dCB0dG1fZGV2aWNlICpiZGV2Owo+Pj4gICAJaW50IHJldDsKPj4+IC0Jc2l6ZV90IGFjY19zaXpl Owo+Pj4gICAgIAlpZiAoV0FSTl9PTkNFKCF2bW0sICJWUkFNIE1NIG5vdCBpbml0aWFsaXplZCIp KQo+Pj4gICAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+Pj4gQEAgLTIxNiw3ICsyMTUsNiBA QCBzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZHJtX2dlbV92cmFtX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+Pj4gICAJfQo+Pj4gICAgIAliZGV2ID0gJnZtbS0+YmRldjsKPj4+ IC0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXplKGJkZXYsIHNpemUsIHNpemVvZigqZ2Jv KSk7Cj4+PiAgICAgCWdiby0+Ym8uYmRldiA9IGJkZXY7Cj4+PiAgIAlkcm1fZ2VtX3ZyYW1fcGxh Y2VtZW50KGdibywgRFJNX0dFTV9WUkFNX1BMX0ZMQUdfU1lTVEVNKTsKPj4+IEBAIC0yMjYsOCAr MjI0LDggQEAgc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmRybV9nZW1fdnJhbV9jcmVhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ICAgCSAqIHRvIHJlbGVhc2UgZ2JvLT5iby5iYXNl IGFuZCBrZnJlZSBnYm8uCj4+PiAgIAkgKi8KPj4+ICAgCXJldCA9IHR0bV9ib19pbml0KGJkZXYs ICZnYm8tPmJvLCBzaXplLCB0dG1fYm9fdHlwZV9kZXZpY2UsCj4+PiAtCQkJICAmZ2JvLT5wbGFj ZW1lbnQsIHBnX2FsaWduLCBmYWxzZSwgYWNjX3NpemUsCj4+PiAtCQkJICBOVUxMLCBOVUxMLCB0 dG1fYnVmZmVyX29iamVjdF9kZXN0cm95KTsKPj4+ICsJCQkgICZnYm8tPnBsYWNlbWVudCwgcGdf YWxpZ24sIGZhbHNlLCBOVUxMLCBOVUxMLAo+Pj4gKwkJCSAgdHRtX2J1ZmZlcl9vYmplY3RfZGVz dHJveSk7Cj4+PiAgIAlpZiAocmV0KQo+Pj4gICAJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4+PiAg IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKPj4+IGluZGV4IGMxNzc5NDBkNmUyYy4u Y2EyYThhZTE5MzhlIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV9iby5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMK Pj4+IEBAIC0zMDAsMTggKzMwMCwxNSBAQCBub3V2ZWF1X2JvX2luaXQoc3RydWN0IG5vdXZlYXVf Ym8gKm52Ym8sIHU2NCBzaXplLCBpbnQgYWxpZ24sIHUzMiBkb21haW4sCj4+PiAgIAkJc3RydWN0 IHNnX3RhYmxlICpzZywgc3RydWN0IGRtYV9yZXN2ICpyb2JqKQo+Pj4gICB7Cj4+PiAgIAlpbnQg dHlwZSA9IHNnID8gdHRtX2JvX3R5cGVfc2cgOiB0dG1fYm9fdHlwZV9kZXZpY2U7Cj4+PiAtCXNp emVfdCBhY2Nfc2l6ZTsKPj4+ICAgCWludCByZXQ7Cj4+PiAgIC0JYWNjX3NpemUgPSB0dG1fYm9f ZG1hX2FjY19zaXplKG52Ym8tPmJvLmJkZXYsIHNpemUsIHNpemVvZigqbnZibykpOwo+Pj4gLQo+ Pj4gICAJbnZiby0+Ym8ubWVtLm51bV9wYWdlcyA9IHNpemUgPj4gUEFHRV9TSElGVDsKPj4+ICAg CW5vdXZlYXVfYm9fcGxhY2VtZW50X3NldChudmJvLCBkb21haW4sIDApOwo+Pj4gICAJSU5JVF9M SVNUX0hFQUQoJm52Ym8tPmlvX3Jlc2VydmVfbHJ1KTsKPj4+ICAgICAJcmV0ID0gdHRtX2JvX2lu aXQobnZiby0+Ym8uYmRldiwgJm52Ym8tPmJvLCBzaXplLCB0eXBlLAo+Pj4gLQkJCSAgJm52Ym8t PnBsYWNlbWVudCwgYWxpZ24gPj4gUEFHRV9TSElGVCwgZmFsc2UsCj4+PiAtCQkJICBhY2Nfc2l6 ZSwgc2csIHJvYmosIG5vdXZlYXVfYm9fZGVsX3R0bSk7Cj4+PiArCQkJICAmbnZiby0+cGxhY2Vt ZW50LCBhbGlnbiA+PiBQQUdFX1NISUZULCBmYWxzZSwgc2csCj4+PiArCQkJICByb2JqLCBub3V2 ZWF1X2JvX2RlbF90dG0pOwo+Pj4gICAJaWYgKHJldCkgewo+Pj4gICAJCS8qIHR0bSB3aWxsIGNh bGwgbm91dmVhdV9ib19kZWxfdHRtIGlmIGl0IGZhaWxzLi4gKi8KPj4+ICAgCQlyZXR1cm4gcmV0 Owo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4+PiBpbmRleCBlZGY5ZDFl ZTlkNTguLmE0OTFjMmMxYzU2ZSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfZHJ2LmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZHJ2LmgKPj4+IEBAIC01NCw3ICs1NCw2IEBACj4+PiAgICNpbmNsdWRlIDxkcm0vdHRtL3R0 bV9ib19hcGkuaD4KPj4+ICAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgo+Pj4g ICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Cj4+PiAtI2luY2x1ZGUgPGRybS90 dG0vdHRtX21lbW9yeS5oPgo+Pj4gICAgICNpbmNsdWRlIDxkcm0vZHJtX2F1ZGlvX2NvbXBvbmVu dC5oPgo+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuYwo+Pj4gaW5kZXggY2VlYmM1ODgxZjY4 Li43MDViNTE1MzU0OTIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9v YmplY3QuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKPj4+IEBA IC0xMzgsOCArMTM4LDggQEAgaW50IHF4bF9ib19jcmVhdGUoc3RydWN0IHF4bF9kZXZpY2UgKnFk ZXYsCj4+PiAgIAlxeGxfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywgZG9tYWluKTsKPj4+ ICAgICAJciA9IHR0bV9ib19pbml0X3Jlc2VydmVkKCZxZGV2LT5tbWFuLmJkZXYsICZiby0+dGJv LCBzaXplLCB0eXBlLAo+Pj4gLQkJCQkgJmJvLT5wbGFjZW1lbnQsIDAsICZjdHgsIHNpemUsCj4+ PiAtCQkJCSBOVUxMLCBOVUxMLCAmcXhsX3R0bV9ib19kZXN0cm95KTsKPj4+ICsJCQkJICZiby0+ cGxhY2VtZW50LCAwLCAmY3R4LCBOVUxMLCBOVUxMLAo+Pj4gKwkJCQkgJnF4bF90dG1fYm9fZGVz dHJveSk7Cj4+PiAgIAlpZiAodW5saWtlbHkociAhPSAwKSkgewo+Pj4gICAJCWlmIChyICE9IC1F UkVTVEFSVFNZUykKPj4+ICAgCQkJZGV2X2VycihxZGV2LT5kZGV2LmRldiwKPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4+PiBpbmRleCA2YTMzNjI4NDQ2NmYuLjgwNGY3 YTQyN2JlNyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29i amVjdC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+ Pj4gQEAgLTE1OSw3ICsxNTksNiBAQCBpbnQgcmFkZW9uX2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwKPj4+ICAgCXN0cnVjdCByYWRlb25fYm8gKmJvOwo+Pj4gICAJZW51bSB0 dG1fYm9fdHlwZSB0eXBlOwo+Pj4gICAJdW5zaWduZWQgbG9uZyBwYWdlX2FsaWduID0gcm91bmR1 cChieXRlX2FsaWduLCBQQUdFX1NJWkUpID4+IFBBR0VfU0hJRlQ7Cj4+PiAtCXNpemVfdCBhY2Nf c2l6ZTsKPj4+ICAgCWludCByOwo+Pj4gICAgIAlzaXplID0gQUxJR04oc2l6ZSwgUEFHRV9TSVpF KTsKPj4+IEBAIC0xNzMsOSArMTcyLDYgQEAgaW50IHJhZGVvbl9ib19jcmVhdGUoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsCj4+PiAgIAl9Cj4+PiAgIAkqYm9fcHRyID0gTlVMTDsKPj4+ICAg LQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJnJkZXYtPm1tYW4uYmRldiwgc2l6ZSwK Pj4+IC0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgcmFkZW9uX2JvKSk7Cj4+PiAtCj4+PiAgIAli byA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCByYWRlb25fYm8pLCBHRlBfS0VSTkVMKTsKPj4+ICAg CWlmIChibyA9PSBOVUxMKQo+Pj4gICAJCXJldHVybiAtRU5PTUVNOwo+Pj4gQEAgLTIzMCw4ICsy MjYsOCBAQCBpbnQgcmFkZW9uX2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwK Pj4+ICAgCS8qIEtlcm5lbCBhbGxvY2F0aW9uIGFyZSB1bmludGVycnVwdGlibGUgKi8KPj4+ICAg CWRvd25fcmVhZCgmcmRldi0+cG0ubWNsa19sb2NrKTsKPj4+ICAgCXIgPSB0dG1fYm9faW5pdCgm cmRldi0+bW1hbi5iZGV2LCAmYm8tPnRibywgc2l6ZSwgdHlwZSwKPj4+IC0JCQkmYm8tPnBsYWNl bWVudCwgcGFnZV9hbGlnbiwgIWtlcm5lbCwgYWNjX3NpemUsCj4+PiAtCQkJc2csIHJlc3YsICZy YWRlb25fdHRtX2JvX2Rlc3Ryb3kpOwo+Pj4gKwkJCSZiby0+cGxhY2VtZW50LCBwYWdlX2FsaWdu LCAha2VybmVsLCBzZywgcmVzdiwKPj4+ICsJCQkmcmFkZW9uX3R0bV9ib19kZXN0cm95KTsKPj4+ ICAgCXVwX3JlYWQoJnJkZXYtPnBtLm1jbGtfbG9jayk7Cj4+PiAgIAlpZiAodW5saWtlbHkociAh PSAwKSkgewo+Pj4gICAJCXJldHVybiByOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCj4+PiBpbmRleCA4 ZTY0MzdlYWRhYmUuLjQwZTVlOWRhNzk1MyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vTWFrZWZpbGUKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUKPj4+ IEBAIC0yLDEwICsyLDkgQEAKPj4+ICAgIwo+Pj4gICAjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRl dmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKPj4+ICAg LXR0bS15IDo9IHR0bV9tZW1vcnkubyB0dG1fdHQubyB0dG1fYm8ubyBcCj4+PiAtCXR0bV9ib191 dGlsLm8gdHRtX2JvX3ZtLm8gdHRtX21vZHVsZS5vIFwKPj4+IC0JdHRtX2V4ZWNidWZfdXRpbC5v IHR0bV9yYW5nZV9tYW5hZ2VyLm8gXAo+Pj4gLQl0dG1fcmVzb3VyY2UubyB0dG1fcG9vbC5vIHR0 bV9kZXZpY2Uubwo+Pj4gK3R0bS15IDo9IHR0bV90dC5vIHR0bV9iby5vIHR0bV9ib191dGlsLm8g dHRtX2JvX3ZtLm8gdHRtX21vZHVsZS5vIFwKPj4+ICsJdHRtX2V4ZWNidWZfdXRpbC5vIHR0bV9y YW5nZV9tYW5hZ2VyLm8gdHRtX3Jlc291cmNlLm8gdHRtX3Bvb2wubyBcCj4+PiArCXR0bV9kZXZp Y2Uubwo+Pj4gICB0dG0tJChDT05GSUdfQUdQKSArPSB0dG1fYWdwX2JhY2tlbmQubwo+Pj4gICAg IG9iai0kKENPTkZJR19EUk1fVFRNKSArPSB0dG0ubwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+PiBp bmRleCA2NDNiZWZjMWE2ZjIuLmUzODEwMjI4MmZkNSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2Jv LmMKPj4+IEBAIC00MjUsNyArNDI1LDYgQEAgc3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3Ry dWN0IGtyZWYgKmtyZWYpCj4+PiAgIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0KPj4+ ICAgCSAgICBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0LCBrcmVm KTsKPj4+ICAgCXN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4+PiAtCXNpemVf dCBhY2Nfc2l6ZSA9IGJvLT5hY2Nfc2l6ZTsKPj4+ICAgCWludCByZXQ7Cj4+PiAgICAgCWlmICgh Ym8tPmRlbGV0ZWQpIHsKPj4+IEBAIC00ODUsNyArNDg0LDYgQEAgc3RhdGljIHZvaWQgdHRtX2Jv X3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4+PiAgIAlpZiAoIXR0bV9ib191c2VzX2VtYmVk ZGVkX2dlbV9vYmplY3QoYm8pKQo+Pj4gICAJCWRtYV9yZXN2X2ZpbmkoJmJvLT5iYXNlLl9yZXN2 KTsKPj4+ICAgCWJvLT5kZXN0cm95KGJvKTsKPj4+IC0JdHRtX21lbV9nbG9iYWxfZnJlZSgmdHRt X21lbV9nbG9iLCBhY2Nfc2l6ZSk7Cj4+PiAgIH0KPj4+ICAgICB2b2lkIHR0bV9ib19wdXQoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPj4+IEBAIC0xMDQ2LDI1ICsxMDQ0LDEzIEBAIGlu dCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgCQkJ IHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+PiAgIAkJCSB1aW50MzJfdCBwYWdl X2FsaWdubWVudCwKPj4+ICAgCQkJIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+Pj4g LQkJCSBzaXplX3QgYWNjX3NpemUsCj4+PiAgIAkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnNnLAo+Pj4g ICAJCQkgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4gICAJCQkgdm9pZCAoKmRlc3Ryb3kpIChz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpCj4+PiAgIHsKPj4+IC0Jc3RydWN0IHR0bV9tZW1f Z2xvYmFsICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7Cj4+PiAgIAlib29sIGxvY2tlZDsKPj4+ ICAgCWludCByZXQgPSAwOwo+Pj4gICAtCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKG1lbV9n bG9iLCBhY2Nfc2l6ZSwgY3R4KTsKPj4+IC0JaWYgKHJldCkgewo+Pj4gLQkJcHJfZXJyKCJPdXQg b2Yga2VybmVsIG1lbW9yeVxuIik7Cj4+PiAtCQlpZiAoZGVzdHJveSkKPj4+IC0JCQkoKmRlc3Ry b3kpKGJvKTsKPj4+IC0JCWVsc2UKPj4+IC0JCQlrZnJlZShibyk7Cj4+PiAtCQlyZXR1cm4gLUVO T01FTTsKPj4+IC0JfQo+Pj4gLQo+Pj4gICAJYm8tPmRlc3Ryb3kgPSBkZXN0cm95ID8gZGVzdHJv eSA6IHR0bV9ib19kZWZhdWx0X2Rlc3Ryb3k7Cj4+PiAgICAgCWtyZWZfaW5pdCgmYm8tPmtyZWYp Owo+Pj4gQEAgLTEwODEsNyArMTA2Nyw2IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgCWJvLT5tZW0uYnVzLmFkZHIgPSBOVUxMOwo+Pj4g ICAJYm8tPm1vdmluZyA9IE5VTEw7Cj4+PiAgIAliby0+bWVtLnBsYWNlbWVudCA9IDA7Cj4+PiAt CWJvLT5hY2Nfc2l6ZSA9IGFjY19zaXplOwo+Pj4gICAJYm8tPnBpbl9jb3VudCA9IDA7Cj4+PiAg IAliby0+c2cgPSBzZzsKPj4+ICAgCWlmIChyZXN2KSB7Cj4+PiBAQCAtMTE0Miw3ICsxMTI3LDYg QEAgaW50IHR0bV9ib19pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAJCXN0cnVj dCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+PiAgIAkJdWludDMyX3QgcGFnZV9hbGlnbm1l bnQsCj4+PiAgIAkJYm9vbCBpbnRlcnJ1cHRpYmxlLAo+Pj4gLQkJc2l6ZV90IGFjY19zaXplLAo+ Pj4gICAJCXN0cnVjdCBzZ190YWJsZSAqc2csCj4+PiAgIAkJc3RydWN0IGRtYV9yZXN2ICpyZXN2 LAo+Pj4gICAJCXZvaWQgKCpkZXN0cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopKQo+ Pj4gQEAgLTExNTEsOCArMTEzNSw3IEBAIGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2Rldmlj ZSAqYmRldiwKPj4+ICAgCWludCByZXQ7Cj4+PiAgICAgCXJldCA9IHR0bV9ib19pbml0X3Jlc2Vy dmVkKGJkZXYsIGJvLCBzaXplLCB0eXBlLCBwbGFjZW1lbnQsCj4+PiAtCQkJCSAgIHBhZ2VfYWxp Z25tZW50LCAmY3R4LCBhY2Nfc2l6ZSwKPj4+IC0JCQkJICAgc2csIHJlc3YsIGRlc3Ryb3kpOwo+ Pj4gKwkJCQkgICBwYWdlX2FsaWdubWVudCwgJmN0eCwgc2csIHJlc3YsIGRlc3Ryb3kpOwo+Pj4g ICAJaWYgKHJldCkKPj4+ICAgCQlyZXR1cm4gcmV0Owo+Pj4gICBAQCAtMTE2MywyMCArMTE0Niw2 IEBAIGludCB0dG1fYm9faW5pdChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgfQo+Pj4g ICBFWFBPUlRfU1lNQk9MKHR0bV9ib19pbml0KTsKPj4+ICAgLXNpemVfdCB0dG1fYm9fZG1hX2Fj Y19zaXplKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gLQkJCSAgIHVuc2lnbmVkIGxvbmcg Ym9fc2l6ZSwKPj4+IC0JCQkgICB1bnNpZ25lZCBzdHJ1Y3Rfc2l6ZSkKPj4+IC17Cj4+PiAtCXVu c2lnbmVkIG5wYWdlcyA9IChQQUdFX0FMSUdOKGJvX3NpemUpKSA+PiBQQUdFX1NISUZUOwo+Pj4g LQlzaXplX3Qgc2l6ZSA9IDA7Cj4+PiAtCj4+PiAtCXNpemUgKz0gdHRtX3JvdW5kX3BvdChzdHJ1 Y3Rfc2l6ZSk7Cj4+PiAtCXNpemUgKz0gdHRtX3JvdW5kX3BvdChucGFnZXMgKiAoMipzaXplb2Yo dm9pZCAqKSArIHNpemVvZihkbWFfYWRkcl90KSkpOwo+Pj4gLQlzaXplICs9IHR0bV9yb3VuZF9w b3Qoc2l6ZW9mKHN0cnVjdCB0dG1fdHQpKTsKPj4+IC0JcmV0dXJuIHNpemU7Cj4+PiAtfQo+Pj4g LUVYUE9SVF9TWU1CT0wodHRtX2JvX2RtYV9hY2Nfc2l6ZSk7Cj4+PiAtCj4+PiAgIC8qCj4+PiAg ICAqIGJ1ZmZlciBvYmplY3Qgdm0gZnVuY3Rpb25zLgo+Pj4gICAgKi8KPj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9ib191dGlsLmMKPj4+IGluZGV4IGRiMGYyNjYxZDUwNC4uMDMxZTU4MTlmZWM0IDEwMDY0 NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPj4+IEBAIC0zMDksNyArMzA5LDYgQEAg c3RhdGljIGludCB0dG1fYnVmZmVyX29iamVjdF90cmFuc2ZlcihzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAo+Pj4gICAgIAlrcmVmX2luaXQoJmZiby0+YmFzZS5rcmVmKTsKPj4+ICAgCWZi by0+YmFzZS5kZXN0cm95ID0gJnR0bV90cmFuc2ZlcmVkX2Rlc3Ryb3k7Cj4+PiAtCWZiby0+YmFz ZS5hY2Nfc2l6ZSA9IDA7Cj4+PiAgIAlmYm8tPmJhc2UucGluX2NvdW50ID0gMDsKPj4+ICAgCWlm IChiby0+dHlwZSAhPSB0dG1fYm9fdHlwZV9zZykKPj4+ICAgCQlmYm8tPmJhc2UuYmFzZS5yZXN2 ID0gJmZiby0+YmFzZS5iYXNlLl9yZXN2Owo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+ IGluZGV4IGFjMDkwM2M5ZTYwYS4uNmJkZTM0NGU1ZGE3IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2RldmljZS5jCj4+PiBAQCAtMjcsOSArMjcsMTIgQEAKPj4+ICAgICAjZGVmaW5lIHByX2Zt dChmbXQpICJbVFRNIERFVklDRV0gIiBmbXQKPj4+ICAgKyNpbmNsdWRlIDxsaW51eC9tbS5oPgo+ Pj4gKwo+Pj4gICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fZGV2aWNlLmg+Cj4+PiAtI2luY2x1ZGUg PGRybS90dG0vdHRtX21lbW9yeS5oPgo+Pj4gKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5oPgo+ Pj4gICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+Cj4+PiArI2luY2x1ZGUgPGRy bS90dG0vdHRtX2JvX2FwaS5oPgo+Pj4gICAgICNpbmNsdWRlICJ0dG1fbW9kdWxlLmgiCj4+PiAg IEBAIC00OSw5ICs1MiwxMSBAQCBzdGF0aWMgdm9pZCB0dG1fZ2xvYmFsX3JlbGVhc2Uodm9pZCkK Pj4+ICAgCWlmICgtLXR0bV9nbG9iX3VzZV9jb3VudCA+IDApCj4+PiAgIAkJZ290byBvdXQ7Cj4+ PiAgICsJdHRtX3Bvb2xfbWdyX2ZpbmkoKTsKPj4+ICsJdHRtX3R0X21ncl9maW5pKCk7Cj4+PiAr Cj4+PiAgIAlrb2JqZWN0X2RlbCgmZ2xvYi0+a29iaik7Cj4+PiAgIAlrb2JqZWN0X3B1dCgmZ2xv Yi0+a29iaik7Cj4+PiAtCXR0bV9tZW1fZ2xvYmFsX3JlbGVhc2UoJnR0bV9tZW1fZ2xvYik7Cj4+ PiAgIAlfX2ZyZWVfcGFnZShnbG9iLT5kdW1teV9yZWFkX3BhZ2UpOwo+Pj4gICAJbWVtc2V0KGds b2IsIDAsIHNpemVvZigqZ2xvYikpOwo+Pj4gICBvdXQ6Cj4+PiBAQCAtNjEsNiArNjYsOCBAQCBz dGF0aWMgdm9pZCB0dG1fZ2xvYmFsX3JlbGVhc2Uodm9pZCkKPj4+ICAgc3RhdGljIGludCB0dG1f Z2xvYmFsX2luaXQodm9pZCkKPj4+ICAgewo+Pj4gICAJc3RydWN0IHR0bV9nbG9iYWwgKmdsb2Ig PSAmdHRtX2dsb2I7Cj4+PiArCXVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzOwo+Pj4gKwlzdHJ1Y3Qg c3lzaW5mbyBzaTsKPj4+ICAgCWludCByZXQgPSAwOwo+Pj4gICAJdW5zaWduZWQgaTsKPj4+ICAg QEAgLTY4LDkgKzc1LDE0IEBAIHN0YXRpYyBpbnQgdHRtX2dsb2JhbF9pbml0KHZvaWQpCj4+PiAg IAlpZiAoKyt0dG1fZ2xvYl91c2VfY291bnQgPiAxKQo+Pj4gICAJCWdvdG8gb3V0Owo+Pj4gICAt CXJldCA9IHR0bV9tZW1fZ2xvYmFsX2luaXQoJnR0bV9tZW1fZ2xvYik7Cj4+PiAtCWlmIChyZXQp Cj4+PiAtCQlnb3RvIG91dDsKPj4+ICsJc2lfbWVtaW5mbygmc2kpOwo+Pj4gKwo+Pj4gKwkvKiBM aW1pdCB0aGUgbnVtYmVyIG9mIHBhZ2VzIGluIHRoZSBwb29sIHRvIGFib3V0IDUwJSBvZiB0aGUg dG90YWwKPj4+ICsJICogc3lzdGVtIG1lbW9yeS4KPj4+ICsJICovCj4+PiArCW51bV9wYWdlcyA9 ICgodTY0KXNpLnRvdGFscmFtICogc2kubWVtX3VuaXQpID4+IFBBR0VfU0hJRlQ7Cj4+PiArCXR0 bV9wb29sX21ncl9pbml0KG51bV9wYWdlcyAqIDUwIC8gMTAwKTsKPj4+ICsJdHRtX3R0X21ncl9p bml0KCk7Cj4+PiAgICAgCXNwaW5fbG9ja19pbml0KCZnbG9iLT5scnVfbG9jayk7Cj4+PiAgIAln bG9iLT5kdW1teV9yZWFkX3BhZ2UgPSBhbGxvY19wYWdlKF9fR0ZQX1pFUk8gfCBHRlBfRE1BMzIp Owo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyBiL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYwo+Pj4gaW5kZXggZTA2MTc3MTcxMTNmLi42YjBmOTU3 ZDYzZDUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYwo+Pj4gQEAgLTQwNCwxNiArNDA0 LDEwIEBAIGludCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsIHN0cnVjdCB0 dG1fdHQgKnR0LAo+Pj4gICAJCQljYWNoaW5nID0gcGFnZXMgKyAoMSA8PCBvcmRlcik7Cj4+PiAg IAkJfQo+Pj4gICAtCQlyID0gdHRtX21lbV9nbG9iYWxfYWxsb2NfcGFnZSgmdHRtX21lbV9nbG9i LCBwLAo+Pj4gLQkJCQkJICAgICAgKDEgPDwgb3JkZXIpICogUEFHRV9TSVpFLAo+Pj4gLQkJCQkJ ICAgICAgY3R4KTsKPj4+IC0JCWlmIChyKQo+Pj4gLQkJCWdvdG8gZXJyb3JfZnJlZV9wYWdlOwo+ Pj4gLQo+Pj4gICAJCWlmIChkbWFfYWRkcikgewo+Pj4gICAJCQlyID0gdHRtX3Bvb2xfbWFwKHBv b2wsIG9yZGVyLCBwLCAmZG1hX2FkZHIpOwo+Pj4gICAJCQlpZiAocikKPj4+IC0JCQkJZ290byBl cnJvcl9nbG9iYWxfZnJlZTsKPj4+ICsJCQkJZ290byBlcnJvcl9mcmVlX3BhZ2U7Cj4+PiAgIAkJ fQo+Pj4gICAgIAkJbnVtX3BhZ2VzIC09IDEgPDwgb3JkZXI7Cj4+PiBAQCAtNDI3LDkgKzQyMSw2 IEBAIGludCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsIHN0cnVjdCB0dG1f dHQgKnR0LAo+Pj4gICAgIAlyZXR1cm4gMDsKPj4+ICAgLWVycm9yX2dsb2JhbF9mcmVlOgo+Pj4g LQl0dG1fbWVtX2dsb2JhbF9mcmVlX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwgKDEgPDwgb3JkZXIp ICogUEFHRV9TSVpFKTsKPj4+IC0KPj4+ICAgZXJyb3JfZnJlZV9wYWdlOgo+Pj4gICAJdHRtX3Bv b2xfZnJlZV9wYWdlKHBvb2wsIHR0LT5jYWNoaW5nLCBvcmRlciwgcCk7Cj4+PiAgIEBAIC00NjQs OCArNDU1LDYgQEAgdm9pZCB0dG1fcG9vbF9mcmVlKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgc3Ry dWN0IHR0bV90dCAqdHQpCj4+PiAgICAgCQlvcmRlciA9IHR0bV9wb29sX3BhZ2Vfb3JkZXIocG9v bCwgcCk7Cj4+PiAgIAkJbnVtX3BhZ2VzID0gMVVMTCA8PCBvcmRlcjsKPj4+IC0JCXR0bV9tZW1f Z2xvYmFsX2ZyZWVfcGFnZSgmdHRtX21lbV9nbG9iLCBwLAo+Pj4gLQkJCQkJIG51bV9wYWdlcyAq IFBBR0VfU0laRSk7Cj4+PiAgIAkJaWYgKHR0LT5kbWFfYWRkcmVzcykKPj4+ICAgCQkJdHRtX3Bv b2xfdW5tYXAocG9vbCwgdHQtPmRtYV9hZGRyZXNzW2ldLCBudW1fcGFnZXMpOwo+Pj4gICBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvTWFrZWZpbGUKPj4+IGluZGV4IGNjNGNkY2E3MTc2ZS4uOGMwMmZhNTg1MmU3IDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZQo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9NYWtlZmlsZQo+Pj4gQEAgLTksNyArOSw3IEBAIHZtd2dm eC15IDo9IHZtd2dmeF9leGVjYnVmLm8gdm13Z2Z4X2dtci5vIHZtd2dmeF9rbXMubyB2bXdnZnhf ZHJ2Lm8gXAo+Pj4gICAJICAgIHZtd2dmeF9jb3RhYmxlLm8gdm13Z2Z4X3NvLm8gdm13Z2Z4X2Jp bmRpbmcubyB2bXdnZnhfbXNnLm8gXAo+Pj4gICAJICAgIHZtd2dmeF9zaW1wbGVfcmVzb3VyY2Uu byB2bXdnZnhfdmEubyB2bXdnZnhfYmxpdC5vIFwKPj4+ICAgCSAgICB2bXdnZnhfdmFsaWRhdGlv bi5vIHZtd2dmeF9wYWdlX2RpcnR5Lm8gdm13Z2Z4X3N0cmVhbW91dHB1dC5vIFwKPj4+IC0JICAg IHR0bV9vYmplY3QubyB0dG1fbG9jay5vCj4+PiArCSAgICB0dG1fb2JqZWN0Lm8gdHRtX2xvY2su byB0dG1fbWVtb3J5Lm8KPj4+ICAgICB2bXdnZngtJChDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBB R0UpICs9IHZtd2dmeF90aHAubwo+Pj4gICBvYmotJChDT05GSUdfRFJNX1ZNV0dGWCkgOj0gdm13 Z2Z4Lm8KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5jCj4+PiBzaW1pbGFyaXR5IGluZGV4 IDk3JQo+Pj4gcmVuYW1lIGZyb20gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5LmMKPj4+ IHJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYwo+Pj4gaW5kZXgg NjM0YTg1YzJkYzRjLi4xMzA2ZDllMGYwOTUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdHRtL3R0bV9tZW1vcnkuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1f bWVtb3J5LmMKPj4+IEBAIC0yOCw3ICsyOCw2IEBACj4+PiAgICAgI2RlZmluZSBwcl9mbXQoZm10 KSAiW1RUTV0gIiBmbXQKPj4+ICAgLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tZW1vcnkuaD4KPj4+ ICAgI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Cj4+PiAgICNpbmNsdWRlIDxsaW51eC9zY2hl ZC5oPgo+Pj4gICAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgo+Pj4gQEAgLTM2LDEwICszNSwxMSBA QAo+Pj4gICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+PiAgICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+Cj4+PiAgICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+Cj4+PiAtI2luY2x1ZGUgPGRybS90 dG0vdHRtX3Bvb2wuaD4KPj4+IC0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fdHQuaD4KPj4+ICAgLSNp bmNsdWRlICJ0dG1fbW9kdWxlLmgiCj4+PiArI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Cj4+ PiArI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5oPgo+Pj4gKwo+Pj4gKyNpbmNsdWRlICJ0dG1fbWVt b3J5LmgiCj4+PiAgICAgI2RlZmluZSBUVE1fTUVNT1JZX0FMTE9DX1JFVFJJRVMgNAo+Pj4gICBA QCAtNDE0LDcgKzQxNCw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9pbml0X2RtYTMyX3pvbmUoc3Ry dWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAo+Pj4gICB9Cj4+PiAgICNlbmRpZgo+Pj4gICAtaW50 IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQo+Pj4gK2lu dCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPj4+ICAgewo+Pj4gICAJc3RydWN0IHN5c2luZm8gc2k7Cj4+PiAg IAlpbnQgcmV0Owo+Pj4gQEAgLTQyNSw3ICs0MjUsOCBAQCBpbnQgdHRtX21lbV9nbG9iYWxfaW5p dChzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IpCj4+PiAgIAlnbG9iLT5zd2FwX3F1ZXVlID0g Y3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoInR0bV9zd2FwIik7Cj4+PiAgIAlJTklUX1dP UksoJmdsb2ItPndvcmssIHR0bV9zaHJpbmtfd29yayk7Cj4+PiAgIAlyZXQgPSBrb2JqZWN0X2lu aXRfYW5kX2FkZCgKPj4+IC0JCSZnbG9iLT5rb2JqLCAmdHRtX21lbV9nbG9iX2tvYmpfdHlwZSwg dHRtX2dldF9rb2JqKCksICJtZW1vcnlfYWNjb3VudGluZyIpOwo+Pj4gKwkJJmdsb2ItPmtvYmos ICZ0dG1fbWVtX2dsb2Jfa29ial90eXBlLCAmZGV2LT5wcmltYXJ5LT5rZGV2LT5rb2JqLAo+Pj4g KwkJIm1lbW9yeV9hY2NvdW50aW5nIik7Cj4+PiAgIAlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7 Cj4+PiAgIAkJa29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwo+Pj4gICAJCXJldHVybiByZXQ7Cj4+ PiBAQCAtNDUzLDggKzQ1NCw2IEBAIGludCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1f bWVtX2dsb2JhbCAqZ2xvYikKPj4+ICAgCQlwcl9pbmZvKCJab25lICU3czogQXZhaWxhYmxlIGdy YXBoaWNzIG1lbW9yeTogJWxsdSBLaUJcbiIsCj4+PiAgIAkJCXpvbmUtPm5hbWUsICh1bnNpZ25l ZCBsb25nIGxvbmcpem9uZS0+bWF4X21lbSA+PiAxMCk7Cj4+PiAgIAl9Cj4+PiAtCXR0bV9wb29s X21ncl9pbml0KGdsb2ItPnpvbmVfa2VybmVsLT5tYXhfbWVtLygyKlBBR0VfU0laRSkpOwo+Pj4g LQl0dG1fdHRfbWdyX2luaXQoKTsKPj4+ICAgCXJldHVybiAwOwo+Pj4gICBvdXRfbm9fem9uZToK Pj4+ICAgCXR0bV9tZW1fZ2xvYmFsX3JlbGVhc2UoZ2xvYik7Cj4+PiBAQCAtNDY2LDEwICs0NjUs NiBAQCB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpn bG9iKQo+Pj4gICAJc3RydWN0IHR0bV9tZW1fem9uZSAqem9uZTsKPj4+ICAgCXVuc2lnbmVkIGlu dCBpOwo+Pj4gICAtCS8qIGxldCB0aGUgcGFnZSBhbGxvY2F0b3IgZmlyc3Qgc3RvcCB0aGUgc2hy aW5rIHdvcmsuICovCj4+PiAtCXR0bV9wb29sX21ncl9maW5pKCk7Cj4+PiAtCXR0bV90dF9tZ3Jf ZmluaSgpOwo+Pj4gLQo+Pj4gICAJZmx1c2hfd29ya3F1ZXVlKGdsb2ItPnN3YXBfcXVldWUpOwo+ Pj4gICAJZGVzdHJveV93b3JrcXVldWUoZ2xvYi0+c3dhcF9xdWV1ZSk7Cj4+PiAgIAlnbG9iLT5z d2FwX3F1ZXVlID0gTlVMTDsKPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX21l bW9yeS5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmgKPj4+IHNpbWlsYXJp dHkgaW5kZXggOTclCj4+PiByZW5hbWUgZnJvbSBpbmNsdWRlL2RybS90dG0vdHRtX21lbW9yeS5o Cj4+PiByZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmgKPj4+IGlu ZGV4IGMxZjE2Nzg4MWUzMy4uODUwZWU2Yzg2N2RhIDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9tZW1vcnkuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1f bWVtb3J5LmgKPj4+IEBAIC0zNSw3ICszNSw4IEBACj4+PiAgICNpbmNsdWRlIDxsaW51eC9lcnJu by5oPgo+Pj4gICAjaW5jbHVkZSA8bGludXgva29iamVjdC5oPgo+Pj4gICAjaW5jbHVkZSA8bGlu dXgvbW0uaD4KPj4+IC0jaW5jbHVkZSAidHRtX2JvX2FwaS5oIgo+Pj4gKwo+Pj4gKyNpbmNsdWRl IDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KPj4+ICAgICAvKioKPj4+ICAgICogc3RydWN0IHR0bV9t ZW1fZ2xvYmFsIC0gR2xvYmFsIG1lbW9yeSBhY2NvdW50aW5nIHN0cnVjdHVyZS4KPj4+IEBAIC03 OSw3ICs4MCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgewo+Pj4gICAjZW5kaWYK Pj4+ICAgfSB0dG1fbWVtX2dsb2I7Cj4+PiAgIC1pbnQgdHRtX21lbV9nbG9iYWxfaW5pdChzdHJ1 Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IpOwo+Pj4gK2ludCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0 cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiAg IHZvaWQgdHRtX21lbV9nbG9iYWxfcmVsZWFzZShzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2Ip Owo+Pj4gICBpbnQgdHRtX21lbV9nbG9iYWxfYWxsb2Moc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpn bG9iLCB1aW50NjRfdCBtZW1vcnksCj4+PiAgIAkJCSBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHgg KmN0eCk7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0 LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaAo+Pj4gaW5kZXggZWRlMjZk Zjg3YzkzLi40OWIwNjRmMGNiMTkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3R0bV9vYmplY3QuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2Jq ZWN0LmgKPj4+IEBAIC00Myw3ICs0Myw4IEBACj4+PiAgICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0 ZS5oPgo+Pj4gICAgICNpbmNsdWRlIDxkcm0vZHJtX2hhc2h0YWIuaD4KPj4+IC0jaW5jbHVkZSA8 ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Cj4+PiArCj4+PiArI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIK Pj4+ICAgICAvKioKPj4+ICAgICogZW51bSB0dG1fcmVmX3R5cGUKPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfYm8uYwo+Pj4gaW5kZXggNmIzYmZkOGM2NzhhLi41MGU1MjlhMDE2NzcgMTAwNjQ0 Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4+PiBAQCAtNTA3LDExICs1MDcsMTYg QEAgaW50IHZtd19ib19jcmVhdGVfa2VybmVsKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs IHVuc2lnbmVkIGxvbmcgc2l6ZSwKPj4+ICAgCWFjY19zaXplID0gdHRtX3JvdW5kX3BvdChzaXpl b2YoKmJvKSk7Cj4+PiAgIAlhY2Nfc2l6ZSArPSB0dG1fcm91bmRfcG90KG5wYWdlcyAqIHNpemVv Zih2b2lkICopKTsKPj4+ICAgCWFjY19zaXplICs9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0cnVj dCB0dG1fdHQpKTsKPj4+ICsKPj4+ICsJcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2MoJnR0bV9t ZW1fZ2xvYiwgYWNjX3NpemUsICZjdHgpOwo+Pj4gKwlpZiAodW5saWtlbHkocmV0KSkKPj4+ICsJ CWdvdG8gZXJyb3JfZnJlZTsKPj4+ICsKPj4+ICAgCXJldCA9IHR0bV9ib19pbml0X3Jlc2VydmVk KCZkZXZfcHJpdi0+YmRldiwgYm8sIHNpemUsCj4+PiAgIAkJCQkgICB0dG1fYm9fdHlwZV9kZXZp Y2UsIHBsYWNlbWVudCwgMCwKPj4+IC0JCQkJICAgJmN0eCwgYWNjX3NpemUsIE5VTEwsIE5VTEws IE5VTEwpOwo+Pj4gKwkJCQkgICAmY3R4LCBOVUxMLCBOVUxMLCBOVUxMKTsKPj4+ICAgCWlmICh1 bmxpa2VseShyZXQpKQo+Pj4gLQkJZ290byBlcnJvcl9mcmVlOwo+Pj4gKwkJZ290byBlcnJvcl9h Y2NvdW50Owo+Pj4gICAgIAl0dG1fYm9fcGluKGJvKTsKPj4+ICAgCXR0bV9ib191bnJlc2VydmUo Ym8pOwo+Pj4gQEAgLTUxOSw2ICs1MjQsOSBAQCBpbnQgdm13X2JvX2NyZWF0ZV9rZXJuZWwoc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgbG9uZyBzaXplLAo+Pj4gICAgIAly ZXR1cm4gMDsKPj4+ICAgK2Vycm9yX2FjY291bnQ6Cj4+PiArCXR0bV9tZW1fZ2xvYmFsX2ZyZWUo JnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUpOwo+Pj4gKwo+Pj4gICBlcnJvcl9mcmVlOgo+Pj4gICAJ a2ZyZWUoYm8pOwo+Pj4gICAJcmV0dXJuIHJldDsKPj4+IEBAIC01NTgsMTEgKzU2NiwxNyBAQCBp bnQgdm13X2JvX2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAgCXZtd19i by0+YmFzZS5wcmlvcml0eSA9IDM7Cj4+PiAgIAl2bXdfYm8tPnJlc190cmVlID0gUkJfUk9PVDsK Pj4+ICAgKwlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYygmdHRtX21lbV9nbG9iLCBhY2Nfc2l6 ZSwgJmN0eCk7Cj4+PiArCWlmICh1bmxpa2VseShyZXQpKQo+Pj4gKwkJcmV0dXJuIHJldDsKPj4+ ICsKPj4+ICAgCXJldCA9IHR0bV9ib19pbml0X3Jlc2VydmVkKGJkZXYsICZ2bXdfYm8tPmJhc2Us IHNpemUsCj4+PiAgIAkJCQkgICB0dG1fYm9fdHlwZV9kZXZpY2UsIHBsYWNlbWVudCwKPj4+IC0J CQkJICAgMCwgJmN0eCwgYWNjX3NpemUsIE5VTEwsIE5VTEwsIGJvX2ZyZWUpOwo+Pj4gLQlpZiAo dW5saWtlbHkocmV0KSkKPj4+ICsJCQkJICAgMCwgJmN0eCwgTlVMTCwgTlVMTCwgYm9fZnJlZSk7 Cj4+PiArCWlmICh1bmxpa2VseShyZXQpKSB7Cj4+PiArCQl0dG1fbWVtX2dsb2JhbF9mcmVlKCZ0 dG1fbWVtX2dsb2IsIGFjY19zaXplKTsKPj4+ICAgCQlyZXR1cm4gcmV0Owo+Pj4gKwl9Cj4+PiAg ICAgCWlmIChwaW4pCj4+PiAgIAkJdHRtX2JvX3Bpbigmdm13X2JvLT5iYXNlKTsKPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCj4+PiBpbmRleCA3MTBiYTUxNjlhNzQuLjZjMGNhMTAx MTYyOSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5j Cj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwo+Pj4gQEAgLTEy NjgsNiArMTI2OCw3IEBAIHN0YXRpYyB2b2lkIHZtd19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYpCj4+PiAgIHsKPj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwY2lfZ2V0X2RydmRh dGEocGRldik7Cj4+PiAgICsJdHRtX21lbV9nbG9iYWxfcmVsZWFzZSgmdHRtX21lbV9nbG9iKTsK Pj4+ICAgCWRybV9kZXZfdW5yZWdpc3RlcihkZXYpOwo+Pj4gICAJdm13X2RyaXZlcl91bmxvYWQo ZGV2KTsKPj4+ICAgfQo+Pj4gQEAgLTE1MTgsNiArMTUxOSwxMCBAQCBzdGF0aWMgaW50IHZtd19w cm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVu dCkKPj4+ICAgICAJcGNpX3NldF9kcnZkYXRhKHBkZXYsICZ2bXctPmRybSk7Cj4+PiAgICsJcmV0 ID0gdHRtX21lbV9nbG9iYWxfaW5pdCgmdHRtX21lbV9nbG9iLCAmdm13LT5kcm0pOwo+Pj4gKwlp ZiAocmV0KQo+Pj4gKwkJcmV0dXJuIHJldDsKPj4+ICsKPj4+ICAgCXJldCA9IHZtd19kcml2ZXJf bG9hZCh2bXcsIGVudC0+ZGV2aWNlKTsKPj4+ICAgCWlmIChyZXQpCj4+PiAgIAkJcmV0dXJuIHJl dDsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVm ZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPj4+IGlu ZGV4IGQxYmZhNTk1NzlmMS4uNjNmMTBjODY1MDYxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKPj4+IEBAIC01NzYsMTEgKzU3NiwzMSBAQCBz dGF0aWMgdm9pZCB2bXdfdHRtX2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVj dCB0dG1fdHQgKnR0bSkKPj4+ICAgc3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0 dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAJCQkgICAgc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPj4+ICAgewo+Pj4gKwl1bnNpZ25lZCBpbnQgaTsKPj4+ ICsJaW50IHJldDsKPj4+ICsKPj4+ICAgCS8qIFRPRE86IG1heWJlIGNvbXBsZXRlbHkgZHJvcCB0 aGlzID8gKi8KPj4+ICAgCWlmICh0dG1fdHRfaXNfcG9wdWxhdGVkKHR0bSkpCj4+PiAgIAkJcmV0 dXJuIDA7Cj4+PiAgIC0JcmV0dXJuIHR0bV9wb29sX2FsbG9jKCZiZGV2LT5wb29sLCB0dG0sIGN0 eCk7Cj4+PiArCXJldCA9IHR0bV9wb29sX2FsbG9jKCZiZGV2LT5wb29sLCB0dG0sIGN0eCk7Cj4+ PiArCWlmIChyZXQpCj4+PiArCQlyZXR1cm4gcmV0Owo+Pj4gKwo+Pj4gKwlmb3IgKGkgPSAwOyBp IDwgdHRtLT5udW1fcGFnZXM7ICsraSkgewo+Pj4gKwkJcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxs b2NfcGFnZSgmdHRtX21lbV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAo+Pj4gKwkJCQkJCVBBR0VfU0la RSwgY3R4KTsKPj4+ICsJCWlmIChyZXQpCj4+PiArCQkJZ290byBlcnJvcjsKPj4+ICsJfQo+Pj4g KwlyZXR1cm4gMDsKPj4+ICsKPj4+ICtlcnJvcjoKPj4+ICsJd2hpbGUgKGktLSkKPj4+ICsJCXR0 bV9tZW1fZ2xvYmFsX2ZyZWVfcGFnZSgmdHRtX21lbV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAo+Pj4g KwkJCQkJIFBBR0VfU0laRSk7Cj4+PiArCXR0bV9wb29sX2ZyZWUoJmJkZXYtPnBvb2wsIHR0bSk7 Cj4+PiArCXJldHVybiByZXQ7Cj4+PiAgIH0KPj4+ICAgICBzdGF0aWMgdm9pZCB2bXdfdHRtX3Vu cG9wdWxhdGUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiBAQCAtNTg4LDYgKzYwOCw3IEBA IHN0YXRpYyB2b2lkIHZtd190dG1fdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwK Pj4+ICAgewo+Pj4gICAJc3RydWN0IHZtd190dG1fdHQgKnZtd190dCA9IGNvbnRhaW5lcl9vZih0 dG0sIHN0cnVjdCB2bXdfdHRtX3R0LAo+Pj4gICAJCQkJCQkgZG1hX3R0bSk7Cj4+PiArCXVuc2ln bmVkIGludCBpOwo+Pj4gICAgIAlpZiAodm13X3R0LT5tb2IpIHsKPj4+ICAgCQl2bXdfbW9iX2Rl c3Ryb3kodm13X3R0LT5tb2IpOwo+Pj4gQEAgLTU5NSw2ICs2MTYsMTEgQEAgc3RhdGljIHZvaWQg dm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAJfQo+Pj4g ICAgIAl2bXdfdHRtX3VubWFwX2RtYSh2bXdfdHQpOwo+Pj4gKwo+Pj4gKwlmb3IgKGkgPSAwOyBp IDwgdHRtLT5udW1fcGFnZXM7ICsraSkKPj4+ICsJCXR0bV9tZW1fZ2xvYmFsX2ZyZWVfcGFnZSgm dHRtX21lbV9nbG9iLCB0dG0tPnBhZ2VzW2ldLAo+Pj4gKwkJCQkJIFBBR0VfU0laRSk7Cj4+PiAr Cj4+PiAgIAl0dG1fcG9vbF9mcmVlKCZiZGV2LT5wb29sLCB0dG0pOwo+Pj4gICB9Cj4+PiAgIGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oIGIvaW5jbHVkZS9kcm0vdHRt L3R0bV9ib19hcGkuaAo+Pj4gaW5kZXggMTI5N2E4ZmI3Y2NiLi40ZmI1MjNkZmFiMzIgMTAwNjQ0 Cj4+PiAtLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCj4+PiArKysgYi9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2FwaS5oCj4+PiBAQCAtODgsNyArODgsNiBAQCBzdHJ1Y3QgdHRtX3R0 Owo+Pj4gICAgKiBAdHlwZTogVGhlIGJvIHR5cGUuCj4+PiAgICAqIEBkZXN0cm95OiBEZXN0cnVj dGlvbiBmdW5jdGlvbi4gSWYgTlVMTCwga2ZyZWUgaXMgdXNlZC4KPj4+ICAgICogQG51bV9wYWdl czogQWN0dWFsIG51bWJlciBvZiBwYWdlcy4KPj4+IC0gKiBAYWNjX3NpemU6IEFjY291bnRlZCBz aXplIGZvciB0aGlzIG9iamVjdC4KPj4+ICAgICogQGtyZWY6IFJlZmVyZW5jZSBjb3VudCBvZiB0 aGlzIGJ1ZmZlciBvYmplY3QuIFdoZW4gdGhpcyByZWZjb3VudCByZWFjaGVzCj4+PiAgICAqIHpl cm8sIHRoZSBvYmplY3QgaXMgZGVzdHJveWVkIG9yIHB1dCBvbiB0aGUgZGVsYXllZCBkZWxldGUg bGlzdC4KPj4+ICAgICogQG1lbTogc3RydWN0dXJlIGRlc2NyaWJpbmcgY3VycmVudCBwbGFjZW1l bnQuCj4+PiBAQCAtMTI1LDcgKzEyNCw2IEBAIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCB7Cj4+ PiAgIAlzdHJ1Y3QgdHRtX2RldmljZSAqYmRldjsKPj4+ICAgCWVudW0gdHRtX2JvX3R5cGUgdHlw ZTsKPj4+ICAgCXZvaWQgKCpkZXN0cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopOwo+ Pj4gLQlzaXplX3QgYWNjX3NpemU7Cj4+PiAgICAgCS8qKgo+Pj4gICAJKiBNZW1iZXJzIG5vdCBu ZWVkaW5nIHByb3RlY3Rpb24uCj4+PiBAQCAtMzU3LDEwICszNTUsNiBAQCB2b2lkIHR0bV9ib191 bmxvY2tfZGVsYXllZF93b3JrcXVldWUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIGludCByZXNj aGVkKTsKPj4+ICAgYm9vbCB0dG1fYm9fZXZpY3Rpb25fdmFsdWFibGUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4+ICAgCQkJICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxh Y2UpOwo+Pj4gICAtc2l6ZV90IHR0bV9ib19kbWFfYWNjX3NpemUoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsCj4+PiAtCQkJICAgdW5zaWduZWQgbG9uZyBib19zaXplLAo+Pj4gLQkJCSAgIHVuc2ln bmVkIHN0cnVjdF9zaXplKTsKPj4+IC0KPj4+ICAgLyoqCj4+PiAgICAqIHR0bV9ib19pbml0X3Jl c2VydmVkCj4+PiAgICAqCj4+PiBAQCAtMzcxLDcgKzM2NSw2IEBAIHNpemVfdCB0dG1fYm9fZG1h X2FjY19zaXplKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAo+Pj4gICAgKiBAZmxhZ3M6IEluaXRp YWwgcGxhY2VtZW50IGZsYWdzLgo+Pj4gICAgKiBAcGFnZV9hbGlnbm1lbnQ6IERhdGEgYWxpZ25t ZW50IGluIHBhZ2VzLgo+Pj4gICAgKiBAY3R4OiBUVE0gb3BlcmF0aW9uIGNvbnRleHQgZm9yIG1l bW9yeSBhbGxvY2F0aW9uLgo+Pj4gLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRo aXMgb2JqZWN0Lgo+Pj4gICAgKiBAcmVzdjogUG9pbnRlciB0byBhIGRtYV9yZXN2LCBvciBOVUxM IHRvIGxldCB0dG0gYWxsb2NhdGUgb25lLgo+Pj4gICAgKiBAZGVzdHJveTogRGVzdHJveSBmdW5j dGlvbi4gVXNlIE5VTEwgZm9yIGtmcmVlKCkuCj4+PiAgICAqCj4+PiBAQCAtNDAyLDggKzM5NSw3 IEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ ICAgCQkJIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCj4+PiAgIAkJCSB1aW50MzJf dCBwYWdlX2FsaWdubWVudCwKPj4+ICAgCQkJIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4 LAo+Pj4gLQkJCSBzaXplX3QgYWNjX3NpemUsIHN0cnVjdCBzZ190YWJsZSAqc2csCj4+PiAtCQkJ IHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKPj4+ICsJCQkgc3RydWN0IHNnX3RhYmxlICpzZywgc3Ry dWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4gICAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKikpOwo+Pj4gICAgIC8qKgo+Pj4gQEAgLTQyMSw3ICs0MTMsNiBAQCBp bnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCj4+PiAgICAq IGhvbGRzIGEgcG9pbnRlciB0byBhIHBlcnNpc3RlbnQgc2htZW0gb2JqZWN0LiBUeXBpY2FsbHks IHRoaXMgd291bGQKPj4+ICAgICogcG9pbnQgdG8gdGhlIHNobWVtIG9iamVjdCBiYWNraW5nIGEg R0VNIG9iamVjdCBpZiBUVE0gaXMgdXNlZCB0byBiYWNrIGEKPj4+ICAgICogR0VNIHVzZXIgaW50 ZXJmYWNlLgo+Pj4gLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2JqZWN0 Lgo+Pj4gICAgKiBAcmVzdjogUG9pbnRlciB0byBhIGRtYV9yZXN2LCBvciBOVUxMIHRvIGxldCB0 dG0gYWxsb2NhdGUgb25lLgo+Pj4gICAgKiBAZGVzdHJveTogRGVzdHJveSBmdW5jdGlvbi4gVXNl IE5VTEwgZm9yIGtmcmVlKCkuCj4+PiAgICAqCj4+PiBAQCAtNDQ2LDcgKzQzNyw3IEBAIGludCB0 dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4+ICAgaW50IHR0 bV9ib19pbml0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAo+Pj4gICAJCXNpemVfdCBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUsCj4+PiAg IAkJc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKPj4+IC0JCXVpbnQzMl90IHBhZ2Vf YWxpZ25tZW50LCBib29sIGludGVycnVidGlibGUsIHNpemVfdCBhY2Nfc2l6ZSwKPj4+ICsJCXVp bnQzMl90IHBhZ2VfYWxpZ25tZW50LCBib29sIGludGVycnVidGlibGUsCj4+PiAgIAkJc3RydWN0 IHNnX3RhYmxlICpzZywgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAo+Pj4gICAJCXZvaWQgKCpkZXN0 cm95KSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopKTsKPj4+ICAgZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCj4+PiBpbmRleCAxYzliZjk5M2UyNTIuLjg5NTljMDA3NWNmZCAxMDA2NDQKPj4+IC0t LSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+ICsrKyBiL2luY2x1ZGUvZHJt L3R0bS90dG1fYm9fZHJpdmVyLmgKPj4+IEBAIC00MCw3ICs0MCw2IEBACj4+PiAgICNpbmNsdWRl IDxkcm0vdHRtL3R0bV9kZXZpY2UuaD4KPj4+ICAgICAjaW5jbHVkZSAidHRtX2JvX2FwaS5oIgo+ Pj4gLSNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiCj4+PiAgICNpbmNsdWRlICJ0dG1fcGxhY2VtZW50 LmgiCj4+PiAgICNpbmNsdWRlICJ0dG1fdHQuaCIKPj4+ICAgI2luY2x1ZGUgInR0bV9wb29sLmgi Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV90dC5oIGIvaW5jbHVkZS9kcm0v dHRtL3R0bV90dC5oCj4+PiBpbmRleCBjY2U1N2ZiNDllMmMuLjA2OWY4MTMwMjQxYSAxMDA2NDQK Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0v dHRtL3R0bV90dC5oCj4+PiBAQCAtMzAsNiArMzAsNyBAQAo+Pj4gICAjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KPj4+ICAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2NhY2hpbmcuaD4KPj4+ICAgK3N0 cnVjdCB0dG1fYm9fZGV2aWNlOwo+Pj4gICBzdHJ1Y3QgdHRtX3R0Owo+Pj4gICBzdHJ1Y3QgdHRt X3Jlc291cmNlOwo+Pj4gICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Q7CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK