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=-16.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable 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 245E4C433F5 for ; Fri, 10 Sep 2021 16:10:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EBCA461221 for ; Fri, 10 Sep 2021 16:10:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232020AbhIJQLy (ORCPT ); Fri, 10 Sep 2021 12:11:54 -0400 Received: from mail-bn1nam07on2058.outbound.protection.outlook.com ([40.107.212.58]:45861 "EHLO NAM02-BN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S233856AbhIJQJv (ORCPT ); Fri, 10 Sep 2021 12:09:51 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L/skNFDBN1KdqdGwwkkZpFSJFNY80qwovmJx9DZl3RNo1DaG4j9P+l6sPnRtJ3LcNvXOHU16J/9c9NlQAQVmkPdWw7ycs1Ps74sWKsQS4oIJgwQGAYRKgSegMQCsfgjXJD9Xz5anKS0FTaLfC4H9jliePT7qBDc4UQrs1z6GB6R3EKwz+iUCqbtr1kflMmfWucnFkcnNjqNbBlecdVt1zA5M/dq0DArC4vW5zhjcuzXmtQJZSIz0Grv0iEozchmYu3ykUyj1T/whKPvv82TL/MfCcEl1c0VupiBnJOFxbNg6Zi0pu/TkyNFuvKNH85vwLhhbjEI81HA7GJ68jgSkUw== 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; bh=oCDs5eK6eh5i8LQWueh3oJHLaXxgsEestqcBKXRNfek=; b=bCb8hII9fpgS8EqsOyCW04qiYw9+Sj3Nbp1S2itV6a/wuWV1d5Z61x7iRELVaUxmlKFi5yRxQkpqVkxc1NLBeoLYelPl3BPeGZ+EofYWjZgDq6StYf7Xb3scjSubWEMSlgU+IeBnKkg9pr+h+tlyHm/4nzlsHuZy/lbdgyuS8S9uqQT4ZI4Kh3TMt/nUsupseFOd2Qx5JdvWNSJdLryE4TEyqazsHBktA2yE9Ft1Ge/lHi9sP+c9nKQUaX6oUXa5u34K1rU8JzFvl1kr/rbocAzOVNKMlTr37E/y7BPht/6168kgNsdBU3ckLfRXxm+inxjj96+M5irwWBG9qZb1tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oCDs5eK6eh5i8LQWueh3oJHLaXxgsEestqcBKXRNfek=; b=DeBsN9YmWEn9HGdESfzGT+ebCInGbAOHByZngsfMPUZovOr9GkeY34MoU3O1fPSQeL4WmpqRngmXuPwGzgX6PD9CPrYRg3pxfPyMwEOvCfj5mdYAnnkc8J01ZVswqULWpxdiYWW/ldFcTlf8aNBWmHZQrr/catUbn0P0rFx7mKY= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SA2PR11MB5002.namprd11.prod.outlook.com (2603:10b6:806:fb::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4478.25; Fri, 10 Sep 2021 16:06:24 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::7050:a0a:415:2ccd]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::7050:a0a:415:2ccd%7]) with mapi id 15.20.4500.017; Fri, 10 Sep 2021 16:06:24 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH 27/31] staging: wfx: avoid c99 comments Date: Fri, 10 Sep 2021 18:05:00 +0200 Message-Id: <20210910160504.1794332-28-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210910160504.1794332-1-Jerome.Pouiller@silabs.com> References: <20210910160504.1794332-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: SN4PR0601CA0006.namprd06.prod.outlook.com (2603:10b6:803:2f::16) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 Received: from pc-42.silabs.com (2a01:e34:ecb5:66a0:9876:e1d7:65be:d294) by SN4PR0601CA0006.namprd06.prod.outlook.com (2603:10b6:803:2f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.15 via Frontend Transport; Fri, 10 Sep 2021 16:06:22 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 884a83d0-b195-4ac0-190f-08d97474ef96 X-MS-TrafficTypeDiagnostic: SA2PR11MB5002: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ae3aWcbtKOE94p7zdrzWKoy/mdX2whS8jP+dK11KNTQ1RV3VC+rMBJp8vU+f39xJVWMvVd3IwDGGTC3hxo04pIPl4W1tPbgamf0VHmkprRq1PFkP+nXTObmX6uaH1iPS9en8rArrZEKe5wNi4PpMLyLDenCGaDUAX32b4CsmgDsqttMXvzc/0dIR1z/YO2wZr0T5jOyLj7+4YX3RFeDBMOFytMu7dd7pv4J+/w5VtPoVEhvFheAgXnFSDeeBY5nHaiYv9zTMqvbmqE9jexmj3VVFP0zjfgmtkIqgxWsJjImubZFdDQ1KnG8HgO410dv5luvTd6DxzqhdRuQlxzNfzZFdRCNXCUHB8PeZz/Jd3zmz87g6mSQgHyaxs7X7qkvbfi3+8LTI5vrkJrZYZsNp36ZjAOJwF6YRsvDzLOmnC0q0ggmnptBke0/4wKttCgdUAQE9SJhjejckPERL/f3+r8Lqi3TkI9zZgAnzq+W1cr81z4JbjSEdoB2XGYNWy+fpDwfskqqoEFAvD1gvcbF3pHFCYjas55WXcmPZW2ZuemWVISrkODgFCGR2wT7WaDJ8BorwnBjrjn8Ak+lFpJHZeaj58GEDsduG7vbqp+v4wIDTYEThH6Nli62de4RnKNUeYsjYV7ZPq8Pws+WSRD/d9Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6486002)(52116002)(86362001)(38100700002)(8936002)(186003)(66574015)(7696005)(4326008)(508600001)(8676002)(36756003)(2616005)(6666004)(66556008)(316002)(66476007)(83380400001)(54906003)(66946007)(30864003)(2906002)(1076003)(107886003)(5660300002)(559001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eSs2dnkzRERBZEc5MHUrOWtxNWg1ZHdDNSsxRjQzZ3labFZ6N3ZMRUlqZ3Fo?= =?utf-8?B?QXoyYzJyZ05TblNoaDlaVlZReHZPSzViYy9TY1lGQk82ZGVIMDJWRTE1N2lF?= =?utf-8?B?M0QwSHMrSkhMTisrUUtNTlZwelFBNUUrR2ZZZXZUb2VKVXd1Q0xHdzQyK0dv?= =?utf-8?B?aDRnQ2xMZXRKbjl1K25JV1hyd3dkYmt2em9VUVZ1elhOa2R3ZHNuK05Nc2Fx?= =?utf-8?B?YUd4L2lKZlpBWm52eC8yd3EzR0x2bmNiaTJGMGVVVXhHRk9UM1ZqN2p3clZq?= =?utf-8?B?dGV6ZllJUWJSMFQwZGZ2SzVUYldRWUM3QUVFVWJ2MG9Nd2h0WFAxb1NZOHFP?= =?utf-8?B?OFhwWUEyc0tQbzl2aWhJU1lJaCsyeVdHQWIvUy9DQzU0ODlhZjZGQlF5TC81?= =?utf-8?B?dDExbkVMbkczeGhNcTBTYTVxOTFDUnBjQ1VhbWpaUFNxMHJRay8vd1RuUWU0?= =?utf-8?B?UlNkSXQ5S2lRbEs5UzdDbklnUDhBZytmVngvZTNSKzZVeDhRd05DRnY5TDFE?= =?utf-8?B?c00rSE0veUlMTjNGK3kyc01TSzhJZzBUcEtQRnl4bC8wQmx1cFV5c3RDblVk?= =?utf-8?B?NnNKc09hSzI1OFVKRFhjVGVJS2E4alN2QjVWbTlPdXM3cEhiSURYM1RPOURS?= =?utf-8?B?T2YwZWxHM3FQR0pudEhuN0t0czFqdGZaUjBuUUJGbXFOZ0o5YzUzMFVWL2gx?= =?utf-8?B?V3FnaXNPZCtiTG9Ja3lVZDBKU043dGNyWEFOOUl0VENTOXJzNVh4cm1EQ0Zv?= =?utf-8?B?dDZWcnpqYjhybUdzVnB5dFVDbFMyU3BJSm9BNCtYT3VxcjZnQ0EvOWJCbW1n?= =?utf-8?B?Z0lIYkhLVzQ3NDEwNXBUOTNONFc5Ujk4dkpmaG5YNXdXUnl5MXl3MS9MNTBS?= =?utf-8?B?dEN5QVptSGNpVVFsUkZXNFZHUW0zTjZ3bmlJcXlVNFpzMTduYkVGK0s1OWlo?= =?utf-8?B?UjZIQ3c4SlJpSU9tNHpBUUtoTzQzS0Q5eHo1RFJrbS96Snp5YUtRYUF6UUc1?= =?utf-8?B?K2MvbmlMVEtZc1kwM1ZlMHNXSU00dkdZbjdpTys1RW5SYkFUbGMxeU1ueHlr?= =?utf-8?B?VkkvbWlxSmRQclQ1K0dxRk91bjZhSFNEL3hwa0JWeS9Ja3RRMEdhaEhQenhj?= =?utf-8?B?aHBPZ0FwS0RvZ0JnY05rVVhJdHcwbnVRV0thQlRkVGJuQWorbzBYallaeWgx?= =?utf-8?B?b0YreUJmaXgxdlhSaFdjdG00TE0xcklkREtRcTZlaXlCRmloVmF5VnZBSmJo?= =?utf-8?B?NGUvSi9sb3RkTEk2L3NwWWdpMzVaeTFyT294aUxUUGx6N3lDZTlCR2JYWTYy?= =?utf-8?B?K0JNMDFVaEFGWVl5TUNPRkczZUJYL0V2Q0cvTk9kUVdlNVlwRzNSNFJLWmpW?= =?utf-8?B?eGtHKzJGYXFOS0FCck1vT25Pc1FvV2Fqc1ZqTWJVTEhwZzBQWUV0TXRmK3By?= =?utf-8?B?SnlRSGxydm5meWVOcnRQamVLN1lXMVpKcmpxcEg0R093WGRBdGFqNzdPUk5D?= =?utf-8?B?SjJlbzlPVktUTVRPcU9FTm01eXdzeUVHQVhHeUNTWFd4RkZTWVNSaWZmVDBF?= =?utf-8?B?WjB3TlBtU1YxM1JMNS82V1FrNEpNTGg0RGJicDdQQ2xxaUVDRmx2ZXcwMHdN?= =?utf-8?B?TzFTbHRuc0QreFNOdzdyOXJXSGxuQ3pSSm1nOXVHNW9JMklYTWwvaVZvbVJv?= =?utf-8?B?TEZySXArYjIvRERvL1Nac1N5c05GR2lBR1lQNzZQNDFRdjEyZXNuRStNZVpp?= =?utf-8?B?U3JYU0tTbGpiNW8xd2dqdFllSTBTa29ZVmhEOUh3bXlrbzF5Yy8wNjRvTXB6?= =?utf-8?B?eHpycDJ0S2RDcHJzbytleTMyM0p2cDZNUjFoRDNiOG1ZNTByY3RJaWt3MXl1?= =?utf-8?Q?hNgkhARsNJHep?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 884a83d0-b195-4ac0-190f-08d97474ef96 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2021 16:06:24.0362 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VBOLx+x0Nm09RrfvQdLnM+51HTwQzdPnxhzruJ1pfmdDfGXlAr79ZFumHG4X9Ogzzb6lPl/SmK3ZXiZUg60LhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5002 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKVGhl IHdmeCBkcml2ZXIgaXMgYSBuZXR3b3JrIGRyaXZlci4gQzk5IGNvbW1lbnRzIGFyZSBwcm9oaWJp dGVkIGluIHRoaXMKcGFydCBvZiB0aGUga2VybmVsLgoKU2lnbmVkLW9mZi1ieTogSsOpcsO0bWUg UG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgotLS0KIGRyaXZlcnMvc3RhZ2lu Zy93ZngvYmguYyAgICAgICAgICAgICAgfCAxOCArKystLS0KIGRyaXZlcnMvc3RhZ2luZy93Zngv YnVzX3NkaW8uYyAgICAgICAgfCAgOCArLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5j ICAgICAgICAgfCAxMiArKy0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYyAgICAgICAg IHwgIDUgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5jICAgICAgICAgfCA1NiArKysr KysrKystLS0tLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5oICAgICAgICAgfCAg MiArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jICAgICAgICAgICB8IDEyICsrLS0KIGRy aXZlcnMvc3RhZ2luZy93ZngvZndpby5jICAgICAgICAgICAgfCAyMyArKysrLS0tLQogZHJpdmVy cy9zdGFnaW5nL3dmeC9oaWZfYXBpX2NtZC5oICAgICB8IDEyICsrLS0KIGRyaXZlcnMvc3RhZ2lu Zy93ZngvaGlmX2FwaV9nZW5lcmFsLmggfCAxNyArKystLS0KIGRyaXZlcnMvc3RhZ2luZy93Zngv aGlmX2FwaV9taWIuaCAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYyAg ICAgICAgICB8IDE3ICsrKy0tLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyAgICAgICAg ICB8IDMyICsrKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuYyAgICAg IHwgIDQgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5jICAgICAgICAgICAgfCAgNiArLQog ZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmggICAgICAgICAgICB8IDE2ICsrKy0tLQogZHJpdmVy cy9zdGFnaW5nL3dmeC9rZXkuYyAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL3N0YWdpbmcv d2Z4L21haW4uYyAgICAgICAgICAgIHwgMTMgKysrLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvcXVl dWUuYyAgICAgICAgICAgfCAyNyArKysrKy0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUu aCAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuYyAgICAgICAgICAg ICB8IDgzICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9zdGFnaW5nL3dmeC9z dGEuaCAgICAgICAgICAgICB8ICA2ICstCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3RyYWNlcy5oICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmggICAgICAgICAgICAgfCAg MiArLQogMjQgZmlsZXMgY2hhbmdlZCwgMjA2IGluc2VydGlvbnMoKyksIDE3NSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMgYi9kcml2ZXJzL3N0YWdp bmcvd2Z4L2JoLmMKaW5kZXggNzhmYTgxZDgyNTE3Li5lMmQyYTY0Y2U2NmUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMK QEAgLTMyLDE4ICszMiwyMCBAQCBzdGF0aWMgdm9pZCBkZXZpY2Vfd2FrZXVwKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2KQogCX0KIAlmb3IgKDs7KSB7CiAJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcCh3 ZGV2LT5wZGF0YS5ncGlvX3dha2V1cCwgMSk7Ci0JCS8vIGNvbXBsZXRpb24uaCBkb2VzIG5vdCBw cm92aWRlIGFueSBmdW5jdGlvbiB0byB3YWl0Ci0JCS8vIGNvbXBsZXRpb24gd2l0aG91dCBjb25z dW1lIGl0IChhIGtpbmQgb2YKLQkJLy8gd2FpdF9mb3JfY29tcGxldGlvbl9kb25lX3RpbWVvdXQo KSkuIFNvIHdlIGhhdmUgdG8gZW11bGF0ZQotCQkvLyBpdC4KKwkJLyogY29tcGxldGlvbi5oIGRv ZXMgbm90IHByb3ZpZGUgYW55IGZ1bmN0aW9uIHRvIHdhaXQKKwkJICogY29tcGxldGlvbiB3aXRo b3V0IGNvbnN1bWUgaXQgKGEga2luZCBvZgorCQkgKiB3YWl0X2Zvcl9jb21wbGV0aW9uX2RvbmVf dGltZW91dCgpKS4gU28gd2UgaGF2ZSB0byBlbXVsYXRlCisJCSAqIGl0LgorCQkgKi8KIAkJaWYg KHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmd2Rldi0+aGlmLmN0cmxfcmVhZHksCiAJCQkJ CQltc2Vjc190b19qaWZmaWVzKDIpKSkgewogCQkJY29tcGxldGUoJndkZXYtPmhpZi5jdHJsX3Jl YWR5KTsKIAkJCXJldHVybjsKIAkJfSBlbHNlIGlmIChtYXhfcmV0cnktLSA+IDApIHsKLQkJCS8v IE9sZGVyIGZpcm13YXJlcyBoYXZlIGEgcmFjZSBpbiBzbGVlcC93YWtlLXVwIHByb2Nlc3MuCi0J CQkvLyBSZWRvIHRoZSBwcm9jZXNzIGlzIHN1ZmZpY2llbnQgdG8gdW5mcmVlemUgdGhlCi0JCQkv LyBjaGlwLgorCQkJLyogT2xkZXIgZmlybXdhcmVzIGhhdmUgYSByYWNlIGluIHNsZWVwL3dha2Ut dXAgcHJvY2Vzcy4KKwkJCSAqIFJlZG8gdGhlIHByb2Nlc3MgaXMgc3VmZmljaWVudCB0byB1bmZy ZWV6ZSB0aGUKKwkJCSAqIGNoaXAuCisJCQkgKi8KIAkJCWRldl9lcnIod2Rldi0+ZGV2LCAidGlt ZW91dCB3aGlsZSB3YWtlIHVwIGNoaXBcbiIpOwogCQkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVw KHdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwLCAwKTsKIAkJCXVzbGVlcF9yYW5nZSgyMDAwLCAyNTAw KTsKQEAgLTc0LDcgKzc2LDcgQEAgc3RhdGljIGludCByeF9oZWxwZXIoc3RydWN0IHdmeF9kZXYg KndkZXYsIHNpemVfdCByZWFkX2xlbiwgaW50ICppc19jbmYpCiAJV0FSTihyZWFkX2xlbiA+IHJv dW5kX2Rvd24oMHhGRkYsIDIpICogc2l6ZW9mKHUxNiksCiAJICAgICAiJXM6IHJlcXVlc3QgZXhj ZWVkIHRoZSBjaGlwIGNhcGFiaWxpdHkiLCBfX2Z1bmNfXyk7CiAKLQkvLyBBZGQgMiB0byB0YWtl IGludG8gYWNjb3VudCBwaWdneWJhY2sgc2l6ZQorCS8qIEFkZCAyIHRvIHRha2UgaW50byBhY2Nv dW50IHBpZ2d5YmFjayBzaXplICovCiAJYWxsb2NfbGVuID0gd2Rldi0+aHdidXNfb3BzLT5hbGln bl9zaXplKHdkZXYtPmh3YnVzX3ByaXYsIHJlYWRfbGVuICsgMik7CiAJc2tiID0gZGV2X2FsbG9j X3NrYihhbGxvY19sZW4pOwogCWlmICghc2tiKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n L3dmeC9idXNfc2Rpby5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc2Rpby5jCmluZGV4IGUw NmQ3ZTFlYmU5Yy4uZWI3MGJlZjZiZDZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4 L2J1c19zZGlvLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc2Rpby5jCkBAIC02Nyw3 ICs2Nyw3IEBAIHN0YXRpYyBpbnQgd2Z4X3NkaW9fY29weV90b19pbyh2b2lkICpwcml2LCB1bnNp Z25lZCBpbnQgcmVnX2lkLAogCS8qIFVzZSBxdWV1ZSBtb2RlIGJ1ZmZlcnMgKi8KIAlpZiAocmVn X2lkID09IFdGWF9SRUdfSU5fT1VUX1FVRVVFKQogCQlzZGlvX2FkZHIgfD0gYnVzLT5idWZfaWRf dHggPDwgNzsKLQkvLyBGSVhNRTogZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZm9yIHNyYwor CS8qIEZJWE1FOiBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmb3Igc3JjICovCiAJcmV0ID0g c2Rpb19tZW1jcHlfdG9pbyhidXMtPmZ1bmMsIHNkaW9fYWRkciwgKHZvaWQgKilzcmMsIGNvdW50 KTsKIAlpZiAoIXJldCAmJiByZWdfaWQgPT0gV0ZYX1JFR19JTl9PVVRfUVVFVUUpCiAJCWJ1cy0+ YnVmX2lkX3R4ID0gKGJ1cy0+YnVmX2lkX3R4ICsgMSkgJSAzMjsKQEAgLTE5OCw3ICsxOTgsNyBA QCBzdGF0aWMgaW50IHdmeF9zZGlvX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsCiAJfSBl bHNlIHsKIAkJZGV2X3dhcm4oJmZ1bmMtPmRldiwKIAkJCSAiZGV2aWNlIGlzIG5vdCBkZWNsYXJl ZCBpbiBEVCwgZmVhdHVyZXMgd2lsbCBiZSBsaW1pdGVkXG4iKTsKLQkJLy8gRklYTUU6IGlnbm9y ZSBWSUQvUElEIGFuZCBvbmx5IHJlbHkgb24gZGV2aWNlIHRyZWUKKwkJLyogRklYTUU6IGlnbm9y ZSBWSUQvUElEIGFuZCBvbmx5IHJlbHkgb24gZGV2aWNlIHRyZWUgKi8KIAkJLy8gcmV0dXJuIC1F Tk9ERVY7CiAJfQogCkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIGludCB3Znhfc2Rpb19wcm9i ZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLAogCiAJc2Rpb19jbGFpbV9ob3N0KGZ1bmMpOwogCXJl dCA9IHNkaW9fZW5hYmxlX2Z1bmMoZnVuYyk7Ci0JLy8gQmxvY2sgb2YgNjQgYnl0ZXMgaXMgbW9y ZSBlZmZpY2llbnQgdGhhbiA1MTJCIGZvciBmcmFtZSBzaXplcyA8IDRrCisJLyogQmxvY2sgb2Yg NjQgYnl0ZXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiA1MTJCIGZvciBmcmFtZSBzaXplcyA8IDRr ICovCiAJc2Rpb19zZXRfYmxvY2tfc2l6ZShmdW5jLCA2NCk7CiAJc2Rpb19yZWxlYXNlX2hvc3Qo ZnVuYyk7CiAJaWYgKHJldCkKQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgdm9pZCB3Znhfc2Rp b19yZW1vdmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYykKICNkZWZpbmUgU0RJT19ERVZJQ0VfSURf U0lMQUJTX1dGMjAwICAweDEwMDAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb19kZXZpY2VfaWQg d2Z4X3NkaW9faWRzW10gPSB7CiAJeyBTRElPX0RFVklDRShTRElPX1ZFTkRPUl9JRF9TSUxBQlMs IFNESU9fREVWSUNFX0lEX1NJTEFCU19XRjIwMCkgfSwKLQkvLyBGSVhNRTogaWdub3JlIFZJRC9Q SUQgYW5kIG9ubHkgcmVseSBvbiBkZXZpY2UgdHJlZQorCS8qIEZJWE1FOiBpZ25vcmUgVklEL1BJ RCBhbmQgb25seSByZWx5IG9uIGRldmljZSB0cmVlICovCiAJLy8geyBTRElPX0RFVklDRShTRElP X0FOWV9JRCwgU0RJT19BTllfSUQpIH0sCiAJeyB9LAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3RhZ2luZy93ZngvYnVzX3NwaS5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc3BpLmMKaW5k ZXggNzU5ZTA4NTA0OGMzLi42MWY3M2IzZWJjODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy93ZngvYnVzX3NwaS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5jCkBAIC04 Niw3ICs4Niw3IEBAIHN0YXRpYyBpbnQgd2Z4X3NwaV9jb3B5X3RvX2lvKHZvaWQgKnByaXYsIHVu c2lnbmVkIGludCBhZGRyLAogewogCXN0cnVjdCB3Znhfc3BpX3ByaXYgKmJ1cyA9IHByaXY7CiAJ dTE2IHJlZ2FkZHIgPSAoYWRkciA8PCAxMikgfCAoY291bnQgLyAyKTsKLQkvLyBGSVhNRTogdXNl IGEgYm91bmNlIGJ1ZmZlcgorCS8qIEZJWE1FOiB1c2UgYSBib3VuY2UgYnVmZmVyICovCiAJdTE2 ICpzcmMxNiA9ICh2b2lkICopc3JjOwogCWludCByZXQsIGk7CiAJc3RydWN0IHNwaV9tZXNzYWdl ICAgICAgbTsKQEAgLTEwNCw4ICsxMDQsOSBAQCBzdGF0aWMgaW50IHdmeF9zcGlfY29weV90b19p byh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgYWRkciwKIAogCWNwdV90b19sZTE2cygmcmVnYWRk cik7CiAKLQkvLyBSZWdpc3RlciBhZGRyZXNzIGFuZCBDT05GSUcgY29udGVudCBhbHdheXMgdXNl IDE2Yml0IGJpZyBlbmRpYW4KLQkvLyAoIkJBREMiIG9yZGVyKQorCS8qIFJlZ2lzdGVyIGFkZHJl c3MgYW5kIENPTkZJRyBjb250ZW50IGFsd2F5cyB1c2UgMTZiaXQgYmlnIGVuZGlhbgorCSAqICgi QkFEQyIgb3JkZXIpCisJICovCiAJaWYgKGJ1cy0+bmVlZF9zd2FiKQogCQlzd2FiMTZzKCZyZWdh ZGRyKTsKIAlpZiAoYnVzLT5uZWVkX3N3YWIgJiYgYWRkciA9PSBXRlhfUkVHX0NPTkZJRykKQEAg LTE2Myw3ICsxNjQsOCBAQCBzdGF0aWMgaW50IHdmeF9zcGlfaXJxX3Vuc3Vic2NyaWJlKHZvaWQg KnByaXYpCiAKIHN0YXRpYyBzaXplX3Qgd2Z4X3NwaV9hbGlnbl9zaXplKHZvaWQgKnByaXYsIHNp emVfdCBzaXplKQogewotCS8vIE1vc3Qgb2YgU1BJIGNvbnRyb2xsZXJzIGF2b2lkIERNQSBpZiBi dWZmZXIgc2l6ZSBpcyBub3QgMzJiaXQgYWxpZ25lZAorCS8qIE1vc3Qgb2YgU1BJIGNvbnRyb2xs ZXJzIGF2b2lkIERNQSBpZiBidWZmZXIgc2l6ZSBpcyBub3QgMzJiaXQgYWxpZ25lZAorCSAqLwog CXJldHVybiBBTElHTihzaXplLCA0KTsKIH0KIApAQCAtMTg3LDcgKzE4OSw3IEBAIHN0YXRpYyBp bnQgd2Z4X3NwaV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqZnVuYykKIAlyZXQgPSBzcGlfc2V0 dXAoZnVuYyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLQkvLyBUcmFjZSBiZWxvdyBpcyBh bHNvIGRpc3BsYXllZCBieSBzcGlfc2V0dXAoKSBpZiBjb21waWxlZCB3aXRoIERFQlVHCisJLyog VHJhY2UgYmVsb3cgaXMgYWxzbyBkaXNwbGF5ZWQgYnkgc3BpX3NldHVwKCkgaWYgY29tcGlsZWQg d2l0aCBERUJVRyAqLwogCWRldl9kYmcoJmZ1bmMtPmRldiwgIlNQSSBwYXJhbXM6IENTPSVkLCBt b2RlPSVkIGJpdHMvd29yZD0lZCBzcGVlZD0lZFxuIiwKIAkJZnVuYy0+Y2hpcF9zZWxlY3QsIGZ1 bmMtPm1vZGUsIGZ1bmMtPmJpdHNfcGVyX3dvcmQsCiAJCWZ1bmMtPm1heF9zcGVlZF9oeik7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvZGF0YV9yeC5jCmluZGV4IDUwOWY0NWNkYmFiOS4uYmZjMzk2MWI3Yjg5IDEwMDY0NAot LS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYworKysgYi9kcml2ZXJzL3N0YWdpbmcv d2Z4L2RhdGFfcnguYwpAQCAtNzYsOCArNzYsOSBAQCB2b2lkIHdmeF9yeF9jYihzdHJ1Y3Qgd2Z4 X3ZpZiAqd3ZpZiwKIAlpZiAoYXJnLT5lbmNyeXApCiAJCWhkci0+ZmxhZyB8PSBSWF9GTEFHX0RF Q1JZUFRFRDsKIAotCS8vIEJsb2NrIGFjayBuZWdvdGlhdGlvbiBpcyBvZmZsb2FkZWQgYnkgdGhl IGZpcm13YXJlLiBIb3dldmVyLAotCS8vIHJlLW9yZGVyaW5nIG11c3QgYmUgZG9uZSBieSB0aGUg bWFjODAyMTEuCisJLyogQmxvY2sgYWNrIG5lZ290aWF0aW9uIGlzIG9mZmxvYWRlZCBieSB0aGUg ZmlybXdhcmUuIEhvd2V2ZXIsCisJICogcmUtb3JkZXJpbmcgbXVzdCBiZSBkb25lIGJ5IHRoZSBt YWM4MDIxMS4KKwkgKi8KIAlpZiAoaWVlZTgwMjExX2lzX2FjdGlvbihmcmFtZS0+ZnJhbWVfY29u dHJvbCkgJiYKIAkgICAgbWdtdC0+dS5hY3Rpb24uY2F0ZWdvcnkgPT0gV0xBTl9DQVRFR09SWV9C QUNLICYmCiAJICAgIHNrYi0+bGVuID4gSUVFRTgwMjExX01JTl9BQ1RJT05fU0laRSkgewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMgYi9kcml2ZXJzL3N0YWdpbmcv d2Z4L2RhdGFfdHguYwppbmRleCAwNDI0MTQyMmVkYzguLjA1MmExOTE2MWRjNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9kYXRhX3R4LmMKQEAgLTMxLDggKzMxLDkgQEAgc3RhdGljIGludCB3ZnhfZ2V0X2h3X3JhdGUo c3RydWN0IHdmeF9kZXYgKndkZXYsCiAJCX0KIAkJcmV0dXJuIHJhdGUtPmlkeCArIDE0OwogCX0K LQkvLyBUaGUgZGV2aWNlIG9ubHkgc3VwcG9ydCAyR0h6LCBlbHNlIGJhbmQgaW5mb3JtYXRpb24g c2hvdWxkIGJlCi0JLy8gcmV0cmlldmVkIGZyb20gaWVlZTgwMjExX3R4X2luZm8KKwkvKiBUaGUg ZGV2aWNlIG9ubHkgc3VwcG9ydCAyR0h6LCBlbHNlIGJhbmQgaW5mb3JtYXRpb24gc2hvdWxkIGJl CisJICogcmV0cmlldmVkIGZyb20gaWVlZTgwMjExX3R4X2luZm8KKwkgKi8KIAliYW5kID0gd2Rl di0+aHctPndpcGh5LT5iYW5kc1tOTDgwMjExX0JBTkRfMkdIWl07CiAJaWYgKHJhdGUtPmlkeCA+ PSBiYW5kLT5uX2JpdHJhdGVzKSB7CiAJCVdBUk4oMSwgIndyb25nIHJhdGUtPmlkeCB2YWx1ZTog JWQiLCByYXRlLT5pZHgpOwpAQCAtNTcsNyArNTgsNyBAQCBzdGF0aWMgdm9pZCB3ZnhfdHhfcG9s aWN5X2J1aWxkKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgdHhfcG9saWN5ICpwb2xpY3ks CiAJCQlicmVhazsKIAkJV0FSTl9PTihyYXRlc1tpXS5jb3VudCA+IDE1KTsKIAkJcmF0ZWlkID0g d2Z4X2dldF9od19yYXRlKHdkZXYsICZyYXRlc1tpXSk7Ci0JCS8vIFBhY2sgdHdvIHZhbHVlcyBp biBlYWNoIGJ5dGUgb2YgcG9saWN5LT5yYXRlcworCQkvKiBQYWNrIHR3byB2YWx1ZXMgaW4gZWFj aCBieXRlIG9mIHBvbGljeS0+cmF0ZXMgKi8KIAkJY291bnQgPSByYXRlc1tpXS5jb3VudDsKIAkJ aWYgKHJhdGVpZCAlIDIpCiAJCQljb3VudCA8PD0gNDsKQEAgLTIzOCw3ICsyMzksNyBAQCBzdGF0 aWMgdm9pZCB3ZnhfdHhfZml4dXBfcmF0ZXMoc3RydWN0IGllZWU4MDIxMV90eF9yYXRlICpyYXRl cykKIAlpbnQgaTsKIAlib29sIGZpbmlzaGVkOwogCi0JLy8gRmlybXdhcmUgaXMgbm90IGFibGUg dG8gbWl4IHJhdGVzIHdpdGggZGlmZmVyZW50IGZsYWdzCisJLyogRmlybXdhcmUgaXMgbm90IGFi bGUgdG8gbWl4IHJhdGVzIHdpdGggZGlmZmVyZW50IGZsYWdzICovCiAJZm9yIChpID0gMDsgaSA8 IElFRUU4MDIxMV9UWF9NQVhfUkFURVM7IGkrKykgewogCQlpZiAocmF0ZXNbMF0uZmxhZ3MgJiBJ RUVFODAyMTFfVFhfUkNfU0hPUlRfR0kpCiAJCQlyYXRlc1tpXS5mbGFncyB8PSBJRUVFODAyMTFf VFhfUkNfU0hPUlRfR0k7CkBAIC0yNDgsNyArMjQ5LDcgQEAgc3RhdGljIHZvaWQgd2Z4X3R4X2Zp eHVwX3JhdGVzKHN0cnVjdCBpZWVlODAyMTFfdHhfcmF0ZSAqcmF0ZXMpCiAJCQlyYXRlc1tpXS5m bGFncyAmPSB+SUVFRTgwMjExX1RYX1JDX1VTRV9SVFNfQ1RTOwogCX0KIAotCS8vIFNvcnQgcmF0 ZXMgYW5kIHJlbW92ZSBkdXBsaWNhdGVzCisJLyogU29ydCByYXRlcyBhbmQgcmVtb3ZlIGR1cGxp Y2F0ZXMgKi8KIAlkbyB7CiAJCWZpbmlzaGVkID0gdHJ1ZTsKIAkJZm9yIChpID0gMDsgaSA8IElF RUU4MDIxMV9UWF9NQVhfUkFURVMgLSAxOyBpKyspIHsKQEAgLTI2OCwxOSArMjY5LDE5IEBAIHN0 YXRpYyB2b2lkIHdmeF90eF9maXh1cF9yYXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3R4X3JhdGUgKnJh dGVzKQogCQkJfQogCQl9CiAJfSB3aGlsZSAoIWZpbmlzaGVkKTsKLQkvLyBFbnN1cmUgdGhhdCBN Q1MwIG9yIDFNYnBzIGlzIHByZXNlbnQgYXQgdGhlIGVuZCBvZiB0aGUgcmV0cnkgbGlzdAorCS8q IEVuc3VyZSB0aGF0IE1DUzAgb3IgMU1icHMgaXMgcHJlc2VudCBhdCB0aGUgZW5kIG9mIHRoZSBy ZXRyeSBsaXN0ICovCiAJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9UWF9NQVhfUkFURVM7IGkr KykgewogCQlpZiAocmF0ZXNbaV0uaWR4ID09IDApCiAJCQlicmVhazsKIAkJaWYgKHJhdGVzW2ld LmlkeCA9PSAtMSkgewogCQkJcmF0ZXNbaV0uaWR4ID0gMDsKLQkJCXJhdGVzW2ldLmNvdW50ID0g ODsgLy8gPT0gaHctPm1heF9yYXRlX3RyaWVzCisJCQlyYXRlc1tpXS5jb3VudCA9IDg7IC8qID09 IGh3LT5tYXhfcmF0ZV90cmllcyAqLwogCQkJcmF0ZXNbaV0uZmxhZ3MgPSByYXRlc1tpIC0gMV0u ZmxhZ3MgJgogCQkJCQkgSUVFRTgwMjExX1RYX1JDX01DUzsKIAkJCWJyZWFrOwogCQl9CiAJfQot CS8vIEFsbCByZXRyaWVzIHVzZSBsb25nIEdJCisJLyogQWxsIHJldHJpZXMgdXNlIGxvbmcgR0kg Ki8KIAlmb3IgKGkgPSAxOyBpIDwgSUVFRTgwMjExX1RYX01BWF9SQVRFUzsgaSsrKQogCQlyYXRl c1tpXS5mbGFncyAmPSB+SUVFRTgwMjExX1RYX1JDX1NIT1JUX0dJOwogfQpAQCAtMzQyLDEzICsz NDMsMTMgQEAgc3RhdGljIGludCB3ZnhfdHhfaW5uZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0 cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsCiAJV0FSTihxdWV1ZV9pZCA+PSBJRUVFODAyMTFfTlVN X0FDUywgInVuc3VwcG9ydGVkIHF1ZXVlX2lkIik7CiAJd2Z4X3R4X2ZpeHVwX3JhdGVzKHR4X2lu Zm8tPmRyaXZlcl9yYXRlcyk7CiAKLQkvLyBGcm9tIG5vdyB0eF9pbmZvLT5jb250cm9sIGlzIHVu dXNhYmxlCisJLyogRnJvbSBub3cgdHhfaW5mby0+Y29udHJvbCBpcyB1bnVzYWJsZSAqLwogCW1l bXNldCh0eF9pbmZvLT5yYXRlX2RyaXZlcl9kYXRhLCAwLCBzaXplb2Yoc3RydWN0IHdmeF90eF9w cml2KSk7Ci0JLy8gRmlsbCB0eF9wcml2CisJLyogRmlsbCB0eF9wcml2ICovCiAJdHhfcHJpdiA9 IChzdHJ1Y3Qgd2Z4X3R4X3ByaXYgKil0eF9pbmZvLT5yYXRlX2RyaXZlcl9kYXRhOwogCXR4X3By aXYtPmljdl9zaXplID0gd2Z4X3R4X2dldF9pY3ZfbGVuKGh3X2tleSk7CiAKLQkvLyBGaWxsIGhp Zl9tc2cKKwkvKiBGaWxsIGhpZl9tc2cgKi8KIAlXQVJOKHNrYl9oZWFkcm9vbShza2IpIDwgd21z Z19sZW4sICJub3QgZW5vdWdoIHNwYWNlIGluIHNrYiIpOwogCVdBUk4ob2Zmc2V0ICYgMSwgImF0 dGVtcHQgdG8gdHJhbnNtaXQgYW4gdW5hbGlnbmVkIGZyYW1lIik7CiAJc2tiX3B1dChza2IsIHR4 X3ByaXYtPmljdl9zaXplKTsKQEAgLTM2NiwxNyArMzY3LDE4IEBAIHN0YXRpYyBpbnQgd2Z4X3R4 X2lubmVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLAog CQlyZXR1cm4gLUVJTzsKIAl9CiAKLQkvLyBGaWxsIHR4IHJlcXVlc3QKKwkvKiBGaWxsIHR4IHJl cXVlc3QgKi8KIAlyZXEgPSAoc3RydWN0IGhpZl9yZXFfdHggKiloaWZfbXNnLT5ib2R5OwotCS8v IHBhY2tldF9pZCBqdXN0IG5lZWQgdG8gYmUgdW5pcXVlIG9uIGRldmljZS4gMzJiaXRzIGFyZSBt b3JlIHRoYW4KLQkvLyBuZWNlc3NhcnkgZm9yIHRoYXQgdGFzaywgc28gd2UgdGFlIGFkdmFudGFn ZSBvZiBpdCB0byBhZGQgc29tZSBleHRyYQotCS8vIGRhdGEgZm9yIGRlYnVnLgorCS8qIHBhY2tl dF9pZCBqdXN0IG5lZWQgdG8gYmUgdW5pcXVlIG9uIGRldmljZS4gMzJiaXRzIGFyZSBtb3JlIHRo YW4KKwkgKiBuZWNlc3NhcnkgZm9yIHRoYXQgdGFzaywgc28gd2UgdGFlIGFkdmFudGFnZSBvZiBp dCB0byBhZGQgc29tZSBleHRyYQorCSAqIGRhdGEgZm9yIGRlYnVnLgorCSAqLwogCXJlcS0+cGFj a2V0X2lkID0gYXRvbWljX2FkZF9yZXR1cm4oMSwgJnd2aWYtPndkZXYtPnBhY2tldF9pZCkgJiAw eEZGRkY7CiAJcmVxLT5wYWNrZXRfaWQgfD0gSUVFRTgwMjExX1NFUV9UT19TTihsZTE2X3RvX2Nw dShoZHItPnNlcV9jdHJsKSkgPDwgMTY7CiAJcmVxLT5wYWNrZXRfaWQgfD0gcXVldWVfaWQgPDwg Mjg7CiAKIAlyZXEtPmZjX29mZnNldCA9IG9mZnNldDsKLQkvLyBRdWV1ZSBpbmRleCBhcmUgaW52 ZXJ0ZWQgYmV0d2VlbiBmaXJtd2FyZSBhbmQgTGludXgKKwkvKiBRdWV1ZSBpbmRleCBhcmUgaW52 ZXJ0ZWQgYmV0d2VlbiBmaXJtd2FyZSBhbmQgTGludXggKi8KIAlyZXEtPnF1ZXVlX2lkID0gMyAt IHF1ZXVlX2lkOwogCXJlcS0+cGVlcl9zdGFfaWQgPSB3ZnhfdHhfZ2V0X2xpbmtfaWQod3ZpZiwg c3RhLCBoZHIpOwogCXJlcS0+cmV0cnlfcG9saWN5X2luZGV4ID0gd2Z4X3R4X2dldF9yZXRyeV9w b2xpY3lfaWQod3ZpZiwgdHhfaW5mbyk7CkBAIC0zODYsNyArMzg4LDcgQEAgc3RhdGljIGludCB3 ZnhfdHhfaW5uZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpz dGEsCiAJaWYgKHR4X2luZm8tPmZsYWdzICYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RU SU0pCiAJCXJlcS0+YWZ0ZXJfZHRpbSA9IDE7CiAKLQkvLyBBdXhpbGlhcnkgb3BlcmF0aW9ucwor CS8qIEF1eGlsaWFyeSBvcGVyYXRpb25zICovCiAJd2Z4X3R4X3F1ZXVlc19wdXQod3ZpZiwgc2ti KTsKIAlpZiAodHhfaW5mby0+ZmxhZ3MgJiBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJ TSkKIAkJc2NoZWR1bGVfd29yaygmd3ZpZi0+dXBkYXRlX3RpbV93b3JrKTsKQEAgLTQwOCwxNSAr NDEwLDE2IEBAIHZvaWQgd2Z4X3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVl ZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsCiAJY29tcGlsZXRpbWVfYXNzZXJ0KHNpemVvZihz dHJ1Y3Qgd2Z4X3R4X3ByaXYpIDw9IGRyaXZlcl9kYXRhX3Jvb20sCiAJCQkgICAic3RydWN0IHR4 X3ByaXYgaXMgdG9vIGxhcmdlIik7CiAJV0FSTihza2ItPm5leHQgfHwgc2tiLT5wcmV2LCAic2ti IGlzIGFscmVhZHkgbWVtYmVyIG9mIGEgbGlzdCIpOwotCS8vIGNvbnRyb2wudmlmIGNhbiBiZSBO VUxMIGZvciBpbmplY3RlZCBmcmFtZXMKKwkvKiBjb250cm9sLnZpZiBjYW4gYmUgTlVMTCBmb3Ig aW5qZWN0ZWQgZnJhbWVzICovCiAJaWYgKHR4X2luZm8tPmNvbnRyb2wudmlmKQogCQl3dmlmID0g KHN0cnVjdCB3ZnhfdmlmICopdHhfaW5mby0+Y29udHJvbC52aWYtPmRydl9wcml2OwogCWVsc2UK IAkJd3ZpZiA9IHd2aWZfaXRlcmF0ZSh3ZGV2LCBOVUxMKTsKIAlpZiAoV0FSTl9PTighd3ZpZikp CiAJCWdvdG8gZHJvcDsKLQkvLyBCZWNhdXNlIG9mIFRYX0FNUERVX1NFVFVQX0lOX0hXLCBtYWM4 MDIxMSBkb2VzIG5vdCB0cnkgdG8gc2VuZCBhbnkKLQkvLyBCbG9ja0FjayBzZXNzaW9uIG1hbmFn ZW1lbnQgZnJhbWUuIFRoZSBjaGVjayBiZWxvdyBleGlzdCBqdXN0IGluIGNhc2UuCisJLyogQmVj YXVzZSBvZiBUWF9BTVBEVV9TRVRVUF9JTl9IVywgbWFjODAyMTEgZG9lcyBub3QgdHJ5IHRvIHNl bmQgYW55CisJICogQmxvY2tBY2sgc2Vzc2lvbiBtYW5hZ2VtZW50IGZyYW1lLiBUaGUgY2hlY2sg YmVsb3cgZXhpc3QganVzdCBpbiBjYXNlLgorCSAqLwogCWlmIChpZWVlODAyMTFfaXNfYWN0aW9u X2JhY2soaGRyKSkgewogCQlkZXZfaW5mbyh3ZGV2LT5kZXYsICJkcm9wIEJBIGFjdGlvblxuIik7 CiAJCWdvdG8gZHJvcDsKQEAgLTQ1Nyw3ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCB3ZnhfdHhfZmls bF9yYXRlcyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIAogCXR4X2NvdW50ID0gYXJnLT5hY2tfZmFp bHVyZXM7CiAJaWYgKCFhcmctPnN0YXR1cyB8fCBhcmctPmFja19mYWlsdXJlcykKLQkJdHhfY291 bnQgKz0gMTsgLy8gQWxzbyByZXBvcnQgc3VjY2VzcworCQl0eF9jb3VudCArPSAxOyAvKiBBbHNv IHJlcG9ydCBzdWNjZXNzICovCiAJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9UWF9NQVhfUkFU RVM7IGkrKykgewogCQlyYXRlID0gJnR4X2luZm8tPnN0YXR1cy5yYXRlc1tpXTsKIAkJaWYgKHJh dGUtPmlkeCA8IDApCkBAIC01MDUsMTQgKzUwOCwxNSBAQCB2b2lkIHdmeF90eF9jb25maXJtX2Ni KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCBzdHJ1Y3QgaGlmX2NuZl90eCAqYXJnKQogCWlm ICghd3ZpZikKIAkJcmV0dXJuOwogCi0JLy8gTm90ZSB0aGF0IHdmeF9wZW5kaW5nX2dldF9wa3Rf dXNfZGVsYXkoKSBnZXQgZGF0YSBmcm9tIHR4X2luZm8KKwkvKiBOb3RlIHRoYXQgd2Z4X3BlbmRp bmdfZ2V0X3BrdF91c19kZWxheSgpIGdldCBkYXRhIGZyb20gdHhfaW5mbyAqLwogCV90cmFjZV90 eF9zdGF0cyhhcmcsIHNrYiwgd2Z4X3BlbmRpbmdfZ2V0X3BrdF91c19kZWxheSh3ZGV2LCBza2Ip KTsKIAl3ZnhfdHhfZmlsbF9yYXRlcyh3ZGV2LCB0eF9pbmZvLCBhcmcpOwogCXNrYl90cmltKHNr Yiwgc2tiLT5sZW4gLSB0eF9wcml2LT5pY3Zfc2l6ZSk7CiAKLQkvLyBGcm9tIG5vdywgeW91IGNh biB0b3VjaCB0byB0eF9pbmZvLT5zdGF0dXMsIGJ1dCBkbyBub3QgdG91Y2ggdG8KLQkvLyB0eF9w cml2IGFueW1vcmUKLQkvLyBGSVhNRTogdXNlIGllZWU4MDIxMV90eF9pbmZvX2NsZWFyX3N0YXR1 cygpCisJLyogRnJvbSBub3csIHlvdSBjYW4gdG91Y2ggdG8gdHhfaW5mby0+c3RhdHVzLCBidXQg ZG8gbm90IHRvdWNoIHRvCisJICogdHhfcHJpdiBhbnltb3JlCisJICovCisJLyogRklYTUU6IHVz ZSBpZWVlODAyMTFfdHhfaW5mb19jbGVhcl9zdGF0dXMoKSAqLwogCW1lbXNldCh0eF9pbmZvLT5y YXRlX2RyaXZlcl9kYXRhLCAwLCBzaXplb2YodHhfaW5mby0+cmF0ZV9kcml2ZXJfZGF0YSkpOwog CW1lbXNldCh0eF9pbmZvLT5wYWQsIDAsIHNpemVvZih0eF9pbmZvLT5wYWQpKTsKIApAQCAtNTI3 LDcgKzUzMSw3IEBAIHZvaWQgd2Z4X3R4X2NvbmZpcm1fY2Ioc3RydWN0IHdmeF9kZXYgKndkZXYs IGNvbnN0IHN0cnVjdCBoaWZfY25mX3R4ICphcmcpCiAJfSBlbHNlIGlmIChhcmctPnN0YXR1cyA9 PSBISUZfU1RBVFVTX1RYX0ZBSUxfUkVRVUVVRSkgewogCQlXQVJOKCFhcmctPnJlcXVldWUsICJp bmNvaGVyZW50IHN0YXR1cyBhbmQgcmVzdWx0X2ZsYWdzIik7CiAJCWlmICh0eF9pbmZvLT5mbGFn cyAmIElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKSB7Ci0JCQl3dmlmLT5hZnRlcl9k dGltX3R4X2FsbG93ZWQgPSBmYWxzZTsgLy8gRFRJTSBwZXJpb2QgZWxhcHNlZAorCQkJd3ZpZi0+ YWZ0ZXJfZHRpbV90eF9hbGxvd2VkID0gZmFsc2U7IC8qIERUSU0gcGVyaW9kIGVsYXBzZWQgKi8K IAkJCXNjaGVkdWxlX3dvcmsoJnd2aWYtPnVwZGF0ZV90aW1fd29yayk7CiAJCX0KIAkJdHhfaW5m by0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX1NUQVRfVFhfRklMVEVSRUQ7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90 eC5oCmluZGV4IDdkY2M5MTMyZDdjZC4uZGFmZDhmZWY0NGNmIDEwMDY0NAotLS0gYS9kcml2ZXJz L3N0YWdpbmcvd2Z4L2RhdGFfdHguaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHgu aApAQCAtMjcsNyArMjcsNyBAQCBzdHJ1Y3QgdHhfcG9saWN5IHsKIAogc3RydWN0IHR4X3BvbGlj eV9jYWNoZSB7CiAJc3RydWN0IHR4X3BvbGljeSBjYWNoZVtISUZfVFhfUkVUUllfUE9MSUNZX01B WF07Ci0JLy8gRklYTUU6IHVzZSBhIHRyZWVzIGFuZCBkcm9wIGhhc2ggZnJvbSB0eF9wb2xpY3kK KwkvKiBGSVhNRTogdXNlIGEgdHJlZXMgYW5kIGRyb3AgaGFzaCBmcm9tIHR4X3BvbGljeSAqLwog CXN0cnVjdCBsaXN0X2hlYWQgdXNlZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGZyZWU7CiAJc3Bpbmxv Y2tfdCBsb2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jIGIvZHJp dmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jCmluZGV4IDE2YzNmNTVmMWEzZC4uOWY5MzI2OGEzMjAy IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVnLmMKKysrIGIvZHJpdmVycy9z dGFnaW5nL3dmeC9kZWJ1Zy5jCkBAIC0yNTYsOSArMjU2LDEwIEBAIHN0YXRpYyBzc2l6ZV90IHdm eF9zZW5kX2hpZl9tc2dfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiAJaWYgKGNvdW50IDwgc2l6 ZW9mKHN0cnVjdCBoaWZfbXNnKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQkvLyB3ZnhfY21kX3Nl bmQoKSBjaGVja3MgdGhhdCByZXBseSBidWZmZXIgaXMgd2lkZSBlbm91Z2gsIGJ1dCBkb2VzIG5v dAotCS8vIHJldHVybiBwcmVjaXNlIGxlbmd0aCByZWFkLiBVc2VyIGhhdmUgdG8ga25vdyBob3cg bWFueSBieXRlcyBzaG91bGQKLQkvLyBiZSByZWFkLiBGaWxsaW5nIHJlcGx5IGJ1ZmZlciB3aXRo IGEgbWVtb3J5IHBhdHRlcm4gbWF5IGhlbHAgdXNlci4KKwkvKiB3ZnhfY21kX3NlbmQoKSBjaGVj a3MgdGhhdCByZXBseSBidWZmZXIgaXMgd2lkZSBlbm91Z2gsIGJ1dCBkb2VzIG5vdAorCSAqIHJl dHVybiBwcmVjaXNlIGxlbmd0aCByZWFkLiBVc2VyIGhhdmUgdG8ga25vdyBob3cgbWFueSBieXRl cyBzaG91bGQKKwkgKiBiZSByZWFkLiBGaWxsaW5nIHJlcGx5IGJ1ZmZlciB3aXRoIGEgbWVtb3J5 IHBhdHRlcm4gbWF5IGhlbHAgdXNlci4KKwkgKi8KIAltZW1zZXQoY29udGV4dC0+cmVwbHksIDB4 RkYsIHNpemVvZihjb250ZXh0LT5yZXBseSkpOwogCXJlcXVlc3QgPSBtZW1kdXBfdXNlcih1c2Vy X2J1ZiwgY291bnQpOwogCWlmIChJU19FUlIocmVxdWVzdCkpCkBAIC0yODgsOCArMjg5LDkgQEAg c3RhdGljIHNzaXplX3Qgd2Z4X3NlbmRfaGlmX21zZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBj aGFyIF9fdXNlciAqdXNlcl9idWYsCiAJCXJldHVybiByZXQ7CiAJaWYgKGNvbnRleHQtPnJldCA8 IDApCiAJCXJldHVybiBjb250ZXh0LT5yZXQ7Ci0JLy8gQmUgY2FyZWZ1bCwgd3JpdGUoKSBpcyB3 YWl0aW5nIGZvciBhIGZ1bGwgbWVzc2FnZSB3aGlsZSByZWFkKCkKLQkvLyBvbmx5IHJldHVybnMg YSBwYXlsb2FkCisJLyogQmUgY2FyZWZ1bCwgd3JpdGUoKSBpcyB3YWl0aW5nIGZvciBhIGZ1bGwg bWVzc2FnZSB3aGlsZSByZWFkKCkKKwkgKiBvbmx5IHJldHVybnMgYSBwYXlsb2FkCisJICovCiAJ aWYgKGNvcHlfdG9fdXNlcih1c2VyX2J1ZiwgY29udGV4dC0+cmVwbHksIGNvdW50KSkKIAkJcmV0 dXJuIC1FRkFVTFQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZndpby5jIGIv ZHJpdmVycy9zdGFnaW5nL3dmeC9md2lvLmMKaW5kZXggN2I5MWFjNjE1ZjRhLi5jNWJhMGE1MGI0 NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZndpby5jCisrKyBiL2RyaXZlcnMv c3RhZ2luZy93ZngvZndpby5jCkBAIC0xNCwxMSArMTQsMTEgQEAKICNpbmNsdWRlICJ3ZnguaCIK ICNpbmNsdWRlICJod2lvLmgiCiAKLS8vIEFkZHJlc3NlcyBiZWxvdyBhcmUgaW4gU1JBTSBhcmVh CisvKiBBZGRyZXNzZXMgYmVsb3cgYXJlIGluIFNSQU0gYXJlYSAqLwogI2RlZmluZSBXRlhfRE5M RF9GSUZPICAgICAgICAgICAgIDB4MDkwMDQwMDAKICNkZWZpbmUgICAgIEROTERfQkxPQ0tfU0la RSAgICAgICAgICAgMHgwNDAwCi0jZGVmaW5lICAgICBETkxEX0ZJRk9fU0laRSAgICAgICAgICAg IDB4ODAwMCAvLyAoMzIgKiBETkxEX0JMT0NLX1NJWkUpCi0vLyBEb3dubG9hZCBDb250cm9sIEFy ZWEgKERDQSkKKyNkZWZpbmUgICAgIEROTERfRklGT19TSVpFICAgICAgICAgICAgMHg4MDAwIC8q ICgzMiAqIEROTERfQkxPQ0tfU0laRSkgKi8KKy8qIERvd25sb2FkIENvbnRyb2wgQXJlYSAoRENB KSAqLwogI2RlZmluZSBXRlhfRENBX0lNQUdFX1NJWkUgICAgICAgIDB4MDkwMEMwMDAKICNkZWZp bmUgV0ZYX0RDQV9QVVQgICAgICAgICAgICAgICAweDA5MDBDMDA0CiAjZGVmaW5lIFdGWF9EQ0Ff R0VUICAgICAgICAgICAgICAgMHgwOTAwQzAwOApAQCAtNTgsOCArNTgsOCBAQAogI2RlZmluZSAg ICAgRVJSX0VDQ19QVUJfS0VZICAgICAgICAgICAweDExCiAjZGVmaW5lICAgICBFUlJfTUFDX0tF WSAgICAgICAgICAgICAgIDB4MTgKIAotI2RlZmluZSBEQ0FfVElNRU9VVCAgNTAgLy8gbWlsbGlz ZWNvbmRzCi0jZGVmaW5lIFdBS0VVUF9USU1FT1VUIDIwMCAvLyBtaWxsaXNlY29uZHMKKyNkZWZp bmUgRENBX1RJTUVPVVQgIDUwIC8qIG1pbGxpc2Vjb25kcyAqLworI2RlZmluZSBXQUtFVVBfVElN RU9VVCAyMDAgLyogbWlsbGlzZWNvbmRzICovCiAKIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg Zndpb19lcnJvcnNbXSA9IHsKIAlbRVJSX0lOVkFMSURfU0VDX1RZUEVdID0gIkludmFsaWQgc2Vj dGlvbiB0eXBlIG9yIHdyb25nIGVuY3J5cHRpb24iLApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRp YyBpbnQgZ2V0X2Zpcm13YXJlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIga2V5c2V0X2NoaXAs CiAKIAlkYXRhID0gKCpmdyktPmRhdGE7CiAJaWYgKG1lbWNtcChkYXRhLCAiS0VZU0VUIiwgNikg IT0gMCkgewotCQkvLyBMZWdhY3kgZmlybXdhcmUgZm9ybWF0CisJCS8qIExlZ2FjeSBmaXJtd2Fy ZSBmb3JtYXQgKi8KIAkJKmZpbGVfb2Zmc2V0ID0gMDsKIAkJa2V5c2V0X2ZpbGUgPSAweDkwOwog CX0gZWxzZSB7CkBAIC0yMDcsOCArMjA3LDkgQEAgc3RhdGljIGludCB1cGxvYWRfZmlybXdhcmUo c3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHU4ICpkYXRhLCBzaXplX3QgbGVuKQogCQlpZiAo cmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CiAKLQkJLy8gVGhlIGRldmljZSBzZWVtcyB0byBub3Qg c3VwcG9ydCB3cml0aW5nIDAgaW4gdGhpcyByZWdpc3RlcgotCQkvLyBkdXJpbmcgZmlyc3QgbG9v cAorCQkvKiBUaGUgZGV2aWNlIHNlZW1zIHRvIG5vdCBzdXBwb3J0IHdyaXRpbmcgMCBpbiB0aGlz IHJlZ2lzdGVyCisJCSAqIGR1cmluZyBmaXJzdCBsb29wCisJCSAqLwogCQlvZmZzICs9IEROTERf QkxPQ0tfU0laRTsKIAkJcmV0ID0gc3JhbV9yZWdfd3JpdGUod2RldiwgV0ZYX0RDQV9QVVQsIG9m ZnMpOwogCQlpZiAocmV0IDwgMCkKQEAgLTI2NSw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IGxvYWRf ZmlybXdhcmVfc2VjdXJlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCWlmIChyZXQpCiAJCWdvdG8g ZXJyb3I7CiAKLQlzcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRE5MRF9GSUZPLCAweEZGRkZGRkZG KTsgLy8gRmlmbyBpbml0CisJc3JhbV9yZWdfd3JpdGUod2RldiwgV0ZYX0ROTERfRklGTywgMHhG RkZGRkZGRik7IC8qIEZpZm8gaW5pdCAqLwogCXNyYW1fd3JpdGVfZG1hX3NhZmUod2RldiwgV0ZY X0RDQV9GV19WRVJTSU9OLCAiXHgwMVx4MDBceDAwXHgwMCIsCiAJCQkgICAgRldfVkVSU0lPTl9T SVpFKTsKIAlzcmFtX3dyaXRlX2RtYV9zYWZlKHdkZXYsIFdGWF9EQ0FfRldfU0lHTkFUVVJFLCBm dy0+ZGF0YSArIGZ3X29mZnNldCwKQEAgLTI4OSw3ICsyOTAsNyBAQCBzdGF0aWMgaW50IGxvYWRf ZmlybXdhcmVfc2VjdXJlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCiAJc3JhbV9yZWdfd3JpdGUo d2RldiwgV0ZYX0RDQV9IT1NUX1NUQVRVUywgSE9TVF9VUExPQURfQ09NUExFVEUpOwogCXJldCA9 IHdhaXRfbmNwX3N0YXR1cyh3ZGV2LCBOQ1BfQVVUSF9PSyk7Ci0JLy8gTGVnYWN5IFJPTSBzdXBw b3J0CisJLyogTGVnYWN5IFJPTSBzdXBwb3J0ICovCiAJaWYgKHJldCA8IDApCiAJCXJldCA9IHdh aXRfbmNwX3N0YXR1cyh3ZGV2LCBOQ1BfUFVCX0tFWV9SRFkpOwogCWlmIChyZXQgPCAwKQpAQCAt MzM0LDcgKzMzNSw3IEBAIGludCB3ZnhfaW5pdF9kZXZpY2Uoc3RydWN0IHdmeF9kZXYgKndkZXYp CiB7CiAJaW50IHJldDsKIAlpbnQgaHdfcmV2aXNpb24sIGh3X3R5cGU7Ci0JaW50IHdha2V1cF90 aW1lb3V0ID0gNTA7IC8vIG1zCisJaW50IHdha2V1cF90aW1lb3V0ID0gNTA7IC8qIG1zICovCiAJ a3RpbWVfdCBub3csIHN0YXJ0OwogCXUzMiByZWc7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy93ZngvaGlmX2FwaV9jbWQuaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9jbWQu aAppbmRleCA1NTNkYzQ1MTQyZjIuLmIwYWExM2IyM2E1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9z dGFnaW5nL3dmeC9oaWZfYXBpX2NtZC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX2Fw aV9jbWQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHN0cnVjdCBoaWZfcmVxX3N0YXJ0X3NjYW5fYWx0 IHsKIAl1OCAgICAgbnVtX29mX2NoYW5uZWxzOwogCV9fbGUzMiBtaW5fY2hhbm5lbF90aW1lOwog CV9fbGUzMiBtYXhfY2hhbm5lbF90aW1lOwotCV9fbGUzMiB0eF9wb3dlcl9sZXZlbDsgLy8gc2ln bmVkIHZhbHVlCisJX19sZTMyIHR4X3Bvd2VyX2xldmVsOyAvKiBzaWduZWQgdmFsdWUgKi8KIAlz dHJ1Y3QgaGlmX3NzaWRfZGVmIHNzaWRfZGVmW0hJRl9BUElfTUFYX05CX1NTSURTXTsKIAl1OCAg ICAgY2hhbm5lbF9saXN0W107CiB9IF9fcGFja2VkOwpAQCAtMTc0LDggKzE3NCw5IEBAIGVudW0g aGlmX2ZyYW1lX2Zvcm1hdCB7CiB9OwogCiBzdHJ1Y3QgaGlmX3JlcV90eCB7Ci0JLy8gcGFja2V0 X2lkIGlzIG5vdCBpbnRlcnByZXRlZCBieSB0aGUgZGV2aWNlLCBzbyBpdCBpcyBub3QgbmVjZXNz YXJ5IHRvCi0JLy8gZGVjbGFyZSBpdCBsaXR0bGUgZW5kaWFuCisJLyogcGFja2V0X2lkIGlzIG5v dCBpbnRlcnByZXRlZCBieSB0aGUgZGV2aWNlLCBzbyBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvCisJ ICogZGVjbGFyZSBpdCBsaXR0bGUgZW5kaWFuCisJICovCiAJdTMyICAgIHBhY2tldF9pZDsKIAl1 OCAgICAgbWF4X3R4X3JhdGU7CiAJdTggICAgIHF1ZXVlX2lkOjI7CkBAIC0yMTEsOCArMjEyLDkg QEAgZW51bSBoaWZfcW9zX2Fja3BsY3kgewogCiBzdHJ1Y3QgaGlmX2NuZl90eCB7CiAJX19sZTMy IHN0YXR1czsKLQkvLyBwYWNrZXRfaWQgaXMgY29waWVkIGZyb20gc3RydWN0IGhpZl9yZXFfdHgg d2l0aG91dCBiZWVuIGludGVycHJldGVkCi0JLy8gYnkgdGhlIGRldmljZSwgc28gaXQgaXMgbm90 IG5lY2Vzc2FyeSB0byBkZWNsYXJlIGl0IGxpdHRsZSBlbmRpYW4KKwkvKiBwYWNrZXRfaWQgaXMg Y29waWVkIGZyb20gc3RydWN0IGhpZl9yZXFfdHggd2l0aG91dCBiZWVuIGludGVycHJldGVkCisJ ICogYnkgdGhlIGRldmljZSwgc28gaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIGl0IGxp dHRsZSBlbmRpYW4KKwkgKi8KIAl1MzIgICAgcGFja2V0X2lkOwogCXU4ICAgICB0eGVkX3JhdGU7 CiAJdTggICAgIGFja19mYWlsdXJlczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93Zngv aGlmX2FwaV9nZW5lcmFsLmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfZ2VuZXJhbC5o CmluZGV4IDcxNGUxZGQ4MDhlNi4uNWY3NGY4MjliN2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2hpZl9hcGlfZ2VuZXJhbC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlm X2FwaV9nZW5lcmFsLmgKQEAgLTExNCw5ICsxMTQsMTAgQEAgZW51bSBoaWZfYXBpX3JhdGVfaW5k ZXggewogfTsKIAogc3RydWN0IGhpZl9pbmRfc3RhcnR1cCB7Ci0JLy8gQXMgdGhlIG90aGVycywg dGhpcyBzdHJ1Y3QgaXMgaW50ZXJwcmV0ZWQgYXMgbGl0dGxlIGVuZGlhbiBieSB0aGUKLQkvLyBk ZXZpY2UuIEhvd2V2ZXIsIHRoaXMgc3RydWN0IGlzIGFsc28gdXNlZCBieSB0aGUgZHJpdmVyLiBX ZSBwcmVmZXIgdG8KLQkvLyBkZWNsYXJlIGl0IGluIG5hdGl2ZSBvcmRlciBhbmQgZG9pbmcgYnl0 ZSBzd2FwIG9uIHJlY2VwdGlvbi4KKwkvKiBBcyB0aGUgb3RoZXJzLCB0aGlzIHN0cnVjdCBpcyBp bnRlcnByZXRlZCBhcyBsaXR0bGUgZW5kaWFuIGJ5IHRoZQorCSAqIGRldmljZS4gSG93ZXZlciwg dGhpcyBzdHJ1Y3QgaXMgYWxzbyB1c2VkIGJ5IHRoZSBkcml2ZXIuIFdlIHByZWZlciB0bworCSAq IGRlY2xhcmUgaXQgaW4gbmF0aXZlIG9yZGVyIGFuZCBkb2luZyBieXRlIHN3YXAgb24gcmVjZXB0 aW9uLgorCSAqLwogCV9fbGUzMiBzdGF0dXM7CiAJdTE2ICAgIGhhcmR3YXJlX2lkOwogCXU4ICAg ICBvcG5bMTRdOwpAQCAtMTkzLDkgKzE5NCw5IEBAIHN0cnVjdCBoaWZfcnhfc3RhdHMgewogCV9f bGUzMiB0aHJvdWdocHV0OwogCV9fbGUzMiBuYl9yeF9ieV9yYXRlW0FQSV9SQVRFX05VTV9FTlRS SUVTXTsKIAlfX2xlMTYgcGVyW0FQSV9SQVRFX05VTV9FTlRSSUVTXTsKLQlfX2xlMTYgc25yW0FQ SV9SQVRFX05VTV9FTlRSSUVTXTsgIC8vIHNpZ25lZCB2YWx1ZQotCV9fbGUxNiByc3NpW0FQSV9S QVRFX05VTV9FTlRSSUVTXTsgLy8gc2lnbmVkIHZhbHVlCi0JX19sZTE2IGNmb1tBUElfUkFURV9O VU1fRU5UUklFU107ICAvLyBzaWduZWQgdmFsdWUKKwlfX2xlMTYgc25yW0FQSV9SQVRFX05VTV9F TlRSSUVTXTsgIC8qIHNpZ25lZCB2YWx1ZSAqLworCV9fbGUxNiByc3NpW0FQSV9SQVRFX05VTV9F TlRSSUVTXTsgLyogc2lnbmVkIHZhbHVlICovCisJX19sZTE2IGNmb1tBUElfUkFURV9OVU1fRU5U UklFU107ICAvKiBzaWduZWQgdmFsdWUgKi8KIAlfX2xlMzIgZGF0ZTsKIAlfX2xlMzIgcHdyX2Ns a19mcmVxOwogCXU4ICAgICBpc19leHRfcHdyX2NsazsKQEAgLTIwNSw4ICsyMDYsOCBAQCBzdHJ1 Y3QgaGlmX3J4X3N0YXRzIHsKIHN0cnVjdCBoaWZfdHhfcG93ZXJfbG9vcF9pbmZvIHsKIAlfX2xl MTYgdHhfZ2Fpbl9kaWc7CiAJX19sZTE2IHR4X2dhaW5fcGE7Ci0JX19sZTE2IHRhcmdldF9wb3V0 OyAvLyBzaWduZWQgdmFsdWUKLQlfX2xlMTYgcF9lc3RpbWF0aW9uOyAvLyBzaWduZWQgdmFsdWUK KwlfX2xlMTYgdGFyZ2V0X3BvdXQ7IC8qIHNpZ25lZCB2YWx1ZSAqLworCV9fbGUxNiBwX2VzdGlt YXRpb247IC8qIHNpZ25lZCB2YWx1ZSAqLwogCV9fbGUxNiB2cGRldDsKIAl1OCAgICAgbWVhc3Vy ZW1lbnRfaW5kZXg7CiAJdTggICAgIHJlc2VydmVkOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFn aW5nL3dmeC9oaWZfYXBpX21pYi5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfYXBpX21pYi5o CmluZGV4IGI3NmYxOTIyNGI1YS4uZGE1MzRmMjQ0NzU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2hpZl9hcGlfbWliLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfYXBp X21pYi5oCkBAIC0yMDksNyArMjA5LDcgQEAgc3RydWN0IGhpZl9taWJfc2xvdF90aW1lIHsKIH0g X19wYWNrZWQ7CiAKIHN0cnVjdCBoaWZfbWliX2N1cnJlbnRfdHhfcG93ZXJfbGV2ZWwgewotCV9f bGUzMiBwb3dlcl9sZXZlbDsgLy8gc2lnbmVkIHZhbHVlCisJX19sZTMyIHBvd2VyX2xldmVsOyAv KiBzaWduZWQgdmFsdWUgKi8KIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBoaWZfbWliX25vbl9lcnBf cHJvdGVjdGlvbiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jIGIv ZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYwppbmRleCBmY2ZkNWNjYzlmMDEuLjY5NjNiNTRk NTU5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYworKysgYi9kcml2 ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCkBAIC0xOSwxMCArMTksMTAgQEAKIHN0YXRpYyBpbnQg aGlmX2dlbmVyaWNfY29uZmlybShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIAkJCSAgICAgICBjb25z dCBzdHJ1Y3QgaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCiB7Ci0JLy8gQWxsIGNvbmZp cm0gbWVzc2FnZXMgc3RhcnQgd2l0aCBzdGF0dXMKKwkvKiBBbGwgY29uZmlybSBtZXNzYWdlcyBz dGFydCB3aXRoIHN0YXR1cyAqLwogCWludCBzdGF0dXMgPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAq KWJ1Zik7CiAJaW50IGNtZCA9IGhpZi0+aWQ7Ci0JaW50IGxlbiA9IGxlMTZfdG9fY3B1KGhpZi0+ bGVuKSAtIDQ7IC8vIGRyb3AgaGVhZGVyCisJaW50IGxlbiA9IGxlMTZfdG9fY3B1KGhpZi0+bGVu KSAtIDQ7IC8qIGRyb3AgaGVhZGVyICovCiAKIAlXQVJOKCFtdXRleF9pc19sb2NrZWQoJndkZXYt PmhpZl9jbWQubG9jayksICJkYXRhIGxvY2tpbmcgZXJyb3IiKTsKIApAQCAtMjQ0LDcgKzI0NCw3 IEBAIHN0YXRpYyBpbnQgaGlmX2dlbmVyaWNfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwKIAkJcmV0dXJuIDA7CiAJY2FzZSBISUZfR0VORVJJQ19JTkRJQ0FUSU9OX1RZUEVfUlhfU1RB VFM6CiAJCW11dGV4X2xvY2soJndkZXYtPnJ4X3N0YXRzX2xvY2spOwotCQkvLyBPbGRlciBmaXJt d2FyZSBzZW5kIGEgZ2VuZXJpYyBpbmRpY2F0aW9uIGJlc2lkZSBSeFN0YXRzCisJCS8qIE9sZGVy IGZpcm13YXJlIHNlbmQgYSBnZW5lcmljIGluZGljYXRpb24gYmVzaWRlIFJ4U3RhdHMgKi8KIAkJ aWYgKCF3ZnhfYXBpX29sZGVyX3RoYW4od2RldiwgMSwgNCkpCiAJCQlkZXZfaW5mbyh3ZGV2LT5k ZXYsICJSeCB0ZXN0IG9uZ29pbmcuIFRlbXBlcmF0dXJlOiAlZCBkZWdyZWVzIENcbiIsCiAJCQkJ IGJvZHktPmRhdGEucnhfc3RhdHMuY3VycmVudF90ZW1wKTsKQEAgLTI5Nyw3ICsyOTcsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHsKIAkJImJ1cyBjbG9jayBpcyB0b28gc2xvdyAoPDFrSHopIiB9 LAogCXsgSElGX0VSUk9SX0hJRl9SWF9EQVRBX1RPT19MQVJHRSwKIAkJIkhJRiBtZXNzYWdlIHRv byBsYXJnZSIgfSwKLQkvLyBGb2xsb3dpbmcgZXJyb3JzIG9ubHkgZXhpc3RzIGluIG9sZCBmaXJt d2FyZSB2ZXJzaW9uczoKKwkvKiBGb2xsb3dpbmcgZXJyb3JzIG9ubHkgZXhpc3RzIGluIG9sZCBm aXJtd2FyZSB2ZXJzaW9uczogKi8KIAl7IEhJRl9FUlJPUl9ISUZfVFhfUVVFVUVfRlVMTCwKIAkJ IkhJRiBtZXNzYWdlcyBxdWV1ZSBpcyBmdWxsIiB9LAogCXsgSElGX0VSUk9SX0hJRl9CVVMsCkBA IC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAJeyBISUZfSU5EX0lEX0dF TkVSSUMsICAgICAgICAgICAgICBoaWZfZ2VuZXJpY19pbmRpY2F0aW9uIH0sCiAJeyBISUZfSU5E X0lEX0VSUk9SLCAgICAgICAgICAgICAgICBoaWZfZXJyb3JfaW5kaWNhdGlvbiB9LAogCXsgSElG X0lORF9JRF9FWENFUFRJT04sICAgICAgICAgICAgaGlmX2V4Y2VwdGlvbl9pbmRpY2F0aW9uIH0s Ci0JLy8gRklYTUU6IGFsbG9jYXRlIHNrYl9wIGZyb20gaGlmX3JlY2VpdmVfaW5kaWNhdGlvbiBh bmQgbWFrZSBpdCBnZW5lcmljCisJLyogRklYTUU6IGFsbG9jYXRlIHNrYl9wIGZyb20gaGlmX3Jl Y2VpdmVfaW5kaWNhdGlvbiBhbmQgbWFrZSBpdCBnZW5lcmljICovCiAJLy97IEhJRl9JTkRfSURf UlgsICAgICAgICAgICAgICAgICBoaWZfcmVjZWl2ZV9pbmRpY2F0aW9uIH0sCiB9OwogCkBAIC0z ODUsMTIgKzM4NSwxMyBAQCB2b2lkIHdmeF9oYW5kbGVfcngoc3RydWN0IHdmeF9kZXYgKndkZXYs IHN0cnVjdCBza19idWZmICpza2IpCiAJaW50IGhpZl9pZCA9IGhpZi0+aWQ7CiAKIAlpZiAoaGlm X2lkID09IEhJRl9JTkRfSURfUlgpIHsKLQkJLy8gaGlmX3JlY2VpdmVfaW5kaWNhdGlvbiB0YWtl IGNhcmUgb2Ygc2tiIGxpZmV0aW1lCisJCS8qIGhpZl9yZWNlaXZlX2luZGljYXRpb24gdGFrZSBj YXJlIG9mIHNrYiBsaWZldGltZSAqLwogCQloaWZfcmVjZWl2ZV9pbmRpY2F0aW9uKHdkZXYsIGhp ZiwgaGlmLT5ib2R5LCBza2IpOwogCQlyZXR1cm47CiAJfQotCS8vIE5vdGU6IG11dGV4X2lzX2xv Y2sgY2F1c2UgYW4gaW1wbGljaXQgbWVtb3J5IGJhcnJpZXIgdGhhdCBwcm90ZWN0Ci0JLy8gYnVm X3NlbmQKKwkvKiBOb3RlOiBtdXRleF9pc19sb2NrIGNhdXNlIGFuIGltcGxpY2l0IG1lbW9yeSBi YXJyaWVyIHRoYXQgcHJvdGVjdAorCSAqIGJ1Zl9zZW5kCisJICovCiAJaWYgKG11dGV4X2lzX2xv Y2tlZCgmd2Rldi0+aGlmX2NtZC5sb2NrKSAmJgogCSAgICB3ZGV2LT5oaWZfY21kLmJ1Zl9zZW5k ICYmCiAJICAgIHdkZXYtPmhpZl9jbWQuYnVmX3NlbmQtPmlkID09IGhpZl9pZCkgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv aGlmX3R4LmMKaW5kZXggOTdkYTgyYjU0NDFmLi5kMzkzNjZjMTcxYmEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf dHguYwpAQCAtNTUsMTUgKzU1LDE2IEBAIGludCB3ZnhfY21kX3NlbmQoc3RydWN0IHdmeF9kZXYg KndkZXYsIHN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0LAogCWludCB2aWYgPSByZXF1ZXN0LT5pbnRl cmZhY2U7CiAJaW50IHJldDsKIAotCS8vIERvIG5vdCB3YWl0IGZvciBhbnkgcmVwbHkgaWYgY2hp cCBpcyBmcm96ZW4KKwkvKiBEbyBub3Qgd2FpdCBmb3IgYW55IHJlcGx5IGlmIGNoaXAgaXMgZnJv emVuICovCiAJaWYgKHdkZXYtPmNoaXBfZnJvemVuKQogCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAog CW11dGV4X2xvY2soJndkZXYtPmhpZl9jbWQubG9jayk7CiAJV0FSTih3ZGV2LT5oaWZfY21kLmJ1 Zl9zZW5kLCAiZGF0YSBsb2NraW5nIGVycm9yIik7CiAKLQkvLyBOb3RlOiBjYWxsIHRvIGNvbXBs ZXRlKCkgYmVsb3cgaGFzIGFuIGltcGxpY2l0IG1lbW9yeSBiYXJyaWVyIHRoYXQKLQkvLyBob3Bl ZnVsbHkgcHJvdGVjdCBidWZfc2VuZAorCS8qIE5vdGU6IGNhbGwgdG8gY29tcGxldGUoKSBiZWxv dyBoYXMgYW4gaW1wbGljaXQgbWVtb3J5IGJhcnJpZXIgdGhhdAorCSAqIGhvcGVmdWxseSBwcm90 ZWN0IGJ1Zl9zZW5kCisJICovCiAJd2Rldi0+aGlmX2NtZC5idWZfc2VuZCA9IHJlcXVlc3Q7CiAJ d2Rldi0+aGlmX2NtZC5idWZfcmVjdiA9IHJlcGx5OwogCXdkZXYtPmhpZl9jbWQubGVuX3JlY3Yg PSByZXBseV9sZW47CkBAIC03Miw4ICs3Myw5IEBAIGludCB3ZnhfY21kX3NlbmQoc3RydWN0IHdm eF9kZXYgKndkZXYsIHN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0LAogCXdmeF9iaF9yZXF1ZXN0X3R4 KHdkZXYpOwogCiAJaWYgKG5vX3JlcGx5KSB7Ci0JCS8vIENoaXAgd29uJ3QgcmVwbHkuIEdpdmUg ZW5vdWdoIHRpbWUgdG8gdGhlIHdxIHRvIHNlbmQgdGhlCi0JCS8vIGJ1ZmZlci4KKwkJLyogQ2hp cCB3b24ndCByZXBseS4gR2l2ZSBlbm91Z2ggdGltZSB0byB0aGUgd3EgdG8gc2VuZCB0aGUKKwkJ ICogYnVmZmVyLgorCQkgKi8KIAkJbXNsZWVwKDEwMCk7CiAJCXdkZXYtPmhpZl9jbWQuYnVmX3Nl bmQgPSBOVUxMOwogCQltdXRleF91bmxvY2soJndkZXYtPmhpZl9jbWQubG9jayk7CkBAIC0xMTcs OCArMTE5LDkgQEAgaW50IHdmeF9jbWRfc2VuZChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0 IGhpZl9tc2cgKnJlcXVlc3QsCiAJcmV0dXJuIHJldDsKIH0KIAotLy8gVGhpcyBmdW5jdGlvbiBp cyBzcGVjaWFsLiBBZnRlciBISUZfUkVRX0lEX1NIVVRfRE9XTiwgY2hpcCB3b24ndCByZXBseSB0 byBhbnkKLS8vIHJlcXVlc3QgYW55bW9yZS4gT2J2aW91c2x5LCBvbmx5IGNhbGwgdGhpcyBmdW5j dGlvbiBkdXJpbmcgZGV2aWNlIHVucmVnaXN0ZXIuCisvKiBUaGlzIGZ1bmN0aW9uIGlzIHNwZWNp YWwuIEFmdGVyIEhJRl9SRVFfSURfU0hVVF9ET1dOLCBjaGlwIHdvbid0IHJlcGx5IHRvIGFueQor ICogcmVxdWVzdCBhbnltb3JlLiBPYnZpb3VzbHksIG9ubHkgY2FsbCB0aGlzIGZ1bmN0aW9uIGR1 cmluZyBkZXZpY2UgdW5yZWdpc3Rlci4KKyAqLwogaW50IGhpZl9zaHV0ZG93bihzdHJ1Y3Qgd2Z4 X2RldiAqd2RldikKIHsKIAlpbnQgcmV0OwpAQCAtMjc3LDcgKzI4MCw3IEBAIGludCBoaWZfc3Rv cF9zY2FuKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogewogCWludCByZXQ7CiAJc3RydWN0IGhpZl9t c2cgKmhpZjsKLQkvLyBib2R5IGFzc29jaWF0ZWQgdG8gSElGX1JFUV9JRF9TVE9QX1NDQU4gaXMg ZW1wdHkKKwkvKiBib2R5IGFzc29jaWF0ZWQgdG8gSElGX1JFUV9JRF9TVE9QX1NDQU4gaXMgZW1w dHkgKi8KIAl3ZnhfYWxsb2NfaGlmKDAsICZoaWYpOwogCiAJaWYgKCFoaWYpCkBAIC0zNDIsMTYg KzM0NSwxNyBAQCBpbnQgaGlmX2FkZF9rZXkoc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHN0 cnVjdCBoaWZfcmVxX2FkZF9rZXkgKmFyZykKIHsKIAlpbnQgcmV0OwogCXN0cnVjdCBoaWZfbXNn ICpoaWY7Ci0JLy8gRklYTUU6IG9ubHkgc2VuZCBuZWNlc3NhcnkgYml0cworCS8qIEZJWE1FOiBv bmx5IHNlbmQgbmVjZXNzYXJ5IGJpdHMgKi8KIAlzdHJ1Y3QgaGlmX3JlcV9hZGRfa2V5ICpib2R5 ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLCAmaGlmKTsKIAogCWlmICghaGlmKQogCQly ZXR1cm4gLUVOT01FTTsKLQkvLyBGSVhNRTogc3dhcCBieXRlcyBhcyBuZWNlc3NhcnkgaW4gYm9k eQorCS8qIEZJWE1FOiBzd2FwIGJ5dGVzIGFzIG5lY2Vzc2FyeSBpbiBib2R5ICovCiAJbWVtY3B5 KGJvZHksIGFyZywgc2l6ZW9mKCpib2R5KSk7CiAJaWYgKHdmeF9hcGlfb2xkZXJfdGhhbih3ZGV2 LCAxLCA1KSkKLQkJLy8gTGVnYWN5IGZpcm13YXJlcyBleHBlY3QgdGhhdCBhZGRfa2V5IHRvIGJl IHNlbnQgb24gcmlnaHQKLQkJLy8gaW50ZXJmYWNlLgorCQkvKiBMZWdhY3kgZmlybXdhcmVzIGV4 cGVjdCB0aGF0IGFkZF9rZXkgdG8gYmUgc2VudCBvbiByaWdodAorCQkgKiBpbnRlcmZhY2UuCisJ CSAqLwogCQl3ZnhfZmlsbF9oZWFkZXIoaGlmLCBhcmctPmludF9pZCwgSElGX1JFUV9JRF9BRERf S0VZLAogCQkJCXNpemVvZigqYm9keSkpOwogCWVsc2UKQEAgLTM5NSw3ICszOTksNyBAQCBpbnQg aGlmX3NldF9lZGNhX3F1ZXVlX3BhcmFtcyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdTE2IHF1ZXVl LAogCWJvZHktPmN3X21heCA9IGNwdV90b19sZTE2KGFyZy0+Y3dfbWF4KTsKIAlib2R5LT50eF9v cF9saW1pdCA9IGNwdV90b19sZTE2KGFyZy0+dHhvcCAqIFVTRUNfUEVSX1RYT1ApOwogCWJvZHkt PnF1ZXVlX2lkID0gMyAtIHF1ZXVlOwotCS8vIEFQSSAyLjAgaGFzIGNoYW5nZWQgcXVldWUgSURz IHZhbHVlcworCS8qIEFQSSAyLjAgaGFzIGNoYW5nZWQgcXVldWUgSURzIHZhbHVlcyAqLwogCWlm ICh3ZnhfYXBpX29sZGVyX3RoYW4od3ZpZi0+d2RldiwgMiwgMCkgJiYgcXVldWUgPT0gSUVFRTgw MjExX0FDX0JFKQogCQlib2R5LT5xdWV1ZV9pZCA9IEhJRl9RVUVVRV9JRF9CQUNLR1JPVU5EOwog CWlmICh3ZnhfYXBpX29sZGVyX3RoYW4od3ZpZi0+d2RldiwgMiwgMCkgJiYgcXVldWUgPT0gSUVF RTgwMjExX0FDX0JLKQpAQCAtNDIwLDcgKzQyNCw3IEBAIGludCBoaWZfc2V0X3BtKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLCBib29sIHBzLCBpbnQgZHluYW1pY19wc190aW1lb3V0KQogCQlyZXR1cm4g LUVOT01FTTsKIAlpZiAocHMpIHsKIAkJYm9keS0+ZW50ZXJfcHNtID0gMTsKLQkJLy8gRmlybXdh cmUgZG9lcyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4gMTI4bXMKKwkJLyogRmlybXdhcmUgZG9lcyBu b3Qgc3VwcG9ydCBtb3JlIHRoYW4gMTI4bXMgKi8KIAkJYm9keS0+ZmFzdF9wc21faWRsZV9wZXJp b2QgPSBtaW4oZHluYW1pY19wc190aW1lb3V0ICogMiwgMjU1KTsKIAkJaWYgKGJvZHktPmZhc3Rf cHNtX2lkbGVfcGVyaW9kKQogCQkJYm9keS0+ZmFzdF9wc20gPSAxOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zdGFnaW5nL3dmeC9oaWZfdHhfbWliLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90 eF9taWIuYwppbmRleCBjNzQ1MjcxOTQ0ZTkuLjQ1ZTUzMWQ5OTZiZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9zdGFnaW5nL3dmeC9oaWZfdHhfbWliLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9o aWZfdHhfbWliLmMKQEAgLTY4LDcgKzY4LDcgQEAgaW50IGhpZl9nZXRfY291bnRlcnNfdGFibGUo c3RydWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQsCiAJCQkgICBzdHJ1Y3QgaGlmX21pYl9l eHRlbmRlZF9jb3VudF90YWJsZSAqYXJnKQogewogCWlmICh3ZnhfYXBpX29sZGVyX3RoYW4od2Rl diwgMSwgMykpIHsKLQkJLy8gZXh0ZW5kZWRfY291bnRfdGFibGUgaXMgd2lkZXIgdGhhbiBjb3Vu dF90YWJsZQorCQkvKiBleHRlbmRlZF9jb3VudF90YWJsZSBpcyB3aWRlciB0aGFuIGNvdW50X3Rh YmxlICovCiAJCW1lbXNldChhcmcsIDB4RkYsIHNpemVvZigqYXJnKSk7CiAJCXJldHVybiBoaWZf cmVhZF9taWIod2RldiwgdmlmX2lkLCBISUZfTUlCX0lEX0NPVU5URVJTX1RBQkxFLAogCQkJCSAg ICBhcmcsIHNpemVvZihzdHJ1Y3QgaGlmX21pYl9jb3VudF90YWJsZSkpOwpAQCAtMjQ2LDcgKzI0 Niw3IEBAIGludCBoaWZfc2V0X2FycF9pcHY0X2ZpbHRlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwg aW50IGlkeCwgX19iZTMyICphZGRyKQogCX07CiAKIAlpZiAoYWRkcikgewotCQkvLyBDYXV0aW9u OiB0eXBlIG9mIGFkZHIgaXMgX19iZTMyCisJCS8qIENhdXRpb246IHR5cGUgb2YgYWRkciBpcyBf X2JlMzIgKi8KIAkJbWVtY3B5KGFyZy5pcHY0X2FkZHJlc3MsIGFkZHIsIHNpemVvZihhcmcuaXB2 NF9hZGRyZXNzKSk7CiAJCWFyZy5hcnBfZW5hYmxlID0gSElGX0FSUF9OU19GSUxURVJJTkdfRU5B QkxFOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5jIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9od2lvLmMKaW5kZXggMzZmYmM1YjVkNjRjLi4zMGViODg4ODMwZDIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5jCisrKyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvaHdpby5jCkBAIC0zMSw3ICszMSw3IEBAIHN0YXRpYyBpbnQgcmVhZDMyKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgKnZhbCkKIAlpbnQgcmV0OwogCV9fbGUzMiAqdG1w ID0ga21hbGxvYyhzaXplb2YodTMyKSwgR0ZQX0tFUk5FTCk7CiAKLQkqdmFsID0gfjA7IC8vIE5l dmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUKKwkqdmFsID0gfjA7IC8qIE5ldmVyIHJldHVybiB1 bmRlZmluZWQgdmFsdWUgKi8KIAlpZiAoIXRtcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAJcmV0ID0g d2Rldi0+aHdidXNfb3BzLT5jb3B5X2Zyb21faW8od2Rldi0+aHdidXNfcHJpdiwgcmVnLCB0bXAs CkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIGludCBpbmRpcmVjdF9yZWFkKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgYWRkciwKIAogZXJyOgogCWlmIChyZXQgPCAwKQotCQlt ZW1zZXQoYnVmLCAweEZGLCBsZW4pOyAvLyBOZXZlciByZXR1cm4gdW5kZWZpbmVkIHZhbHVlCisJ CW1lbXNldChidWYsIDB4RkYsIGxlbik7IC8qIE5ldmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUg Ki8KIAlyZXR1cm4gcmV0OwogfQogCkBAIC0zMzUsNyArMzM1LDcgQEAgaW50IGlncHJfcmVnX3Jl YWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwgdTMyICp2YWwpCiB7CiAJaW50IHJl dDsKIAotCSp2YWwgPSB+MDsgLy8gTmV2ZXIgcmV0dXJuIHVuZGVmaW5lZCB2YWx1ZQorCSp2YWwg PSB+MDsgLyogTmV2ZXIgcmV0dXJuIHVuZGVmaW5lZCB2YWx1ZSAqLwogCXJldCA9IHdyaXRlMzJf bG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9SX1csIElHUFJfUlcgfCBpbmRleCA8PCAyNCk7 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93 ZngvaHdpby5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmgKaW5kZXggNWU0Mzk5M2IxNGQ4 Li45YTM2MWVkOTVlY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5oCisr KyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5oCkBAIC0yNywzMCArMjcsMzAgQEAgaW50IHNy YW1fcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyIHZhbCk7CiBp bnQgYWhiX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdTMyICp2YWwp OwogaW50IGFoYl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIg dmFsKTsKIAotI2RlZmluZSBDRkdfRVJSX1NQSV9GUkFNRSAgICAgICAgICAweDAwMDAwMDAxIC8v IG9ubHkgd2l0aCBTUEkKLSNkZWZpbmUgQ0ZHX0VSUl9TRElPX0JVRl9NSVNNQVRDSCAgMHgwMDAw MDAwMSAvLyBvbmx5IHdpdGggU0RJTworI2RlZmluZSBDRkdfRVJSX1NQSV9GUkFNRSAgICAgICAg ICAweDAwMDAwMDAxIC8qIG9ubHkgd2l0aCBTUEkgKi8KKyNkZWZpbmUgQ0ZHX0VSUl9TRElPX0JV Rl9NSVNNQVRDSCAgMHgwMDAwMDAwMSAvKiBvbmx5IHdpdGggU0RJTyAqLwogI2RlZmluZSBDRkdf RVJSX0JVRl9VTkRFUlJVTiAgICAgICAweDAwMDAwMDAyCiAjZGVmaW5lIENGR19FUlJfREFUQV9J Tl9UT09fTEFSR0UgIDB4MDAwMDAwMDQKICNkZWZpbmUgQ0ZHX0VSUl9IT1NUX05PX09VVF9RVUVV RSAgMHgwMDAwMDAwOAogI2RlZmluZSBDRkdfRVJSX0JVRl9PVkVSUlVOICAgICAgICAweDAwMDAw MDEwCiAjZGVmaW5lIENGR19FUlJfREFUQV9PVVRfVE9PX0xBUkdFIDB4MDAwMDAwMjAKICNkZWZp bmUgQ0ZHX0VSUl9IT1NUX05PX0lOX1FVRVVFICAgMHgwMDAwMDA0MAotI2RlZmluZSBDRkdfRVJS X0hPU1RfQ1JDX01JU1MgICAgICAweDAwMDAwMDgwIC8vIG9ubHkgd2l0aCBTRElPCi0jZGVmaW5l IENGR19TUElfSUdOT1JFX0NTICAgICAgICAgIDB4MDAwMDAwODAgLy8gb25seSB3aXRoIFNQSQot I2RlZmluZSBDRkdfQllURV9PUkRFUl9NQVNLICAgICAgICAweDAwMDAwMzAwIC8vIG9ubHkgd3Jp dGFibGUgd2l0aCBTUEkKKyNkZWZpbmUgQ0ZHX0VSUl9IT1NUX0NSQ19NSVNTICAgICAgMHgwMDAw MDA4MCAvKiBvbmx5IHdpdGggU0RJTyAqLworI2RlZmluZSBDRkdfU1BJX0lHTk9SRV9DUyAgICAg ICAgICAweDAwMDAwMDgwIC8qIG9ubHkgd2l0aCBTUEkgKi8KKyNkZWZpbmUgQ0ZHX0JZVEVfT1JE RVJfTUFTSyAgICAgICAgMHgwMDAwMDMwMCAvKiBvbmx5IHdyaXRhYmxlIHdpdGggU1BJICovCiAj ZGVmaW5lICAgICBDRkdfQllURV9PUkRFUl9CQURDICAgIDB4MDAwMDAwMDAKICNkZWZpbmUgICAg IENGR19CWVRFX09SREVSX0RDQkEgICAgMHgwMDAwMDEwMAotI2RlZmluZSAgICAgQ0ZHX0JZVEVf T1JERVJfQUJDRCAgICAweDAwMDAwMjAwIC8vIFNESU8gYWx3YXlzIHVzZSB0aGlzIHZhbHVlCisj ZGVmaW5lICAgICBDRkdfQllURV9PUkRFUl9BQkNEICAgIDB4MDAwMDAyMDAgLyogU0RJTyBhbHdh eXMgdXNlIHRoaXMgdmFsdWUgKi8KICNkZWZpbmUgQ0ZHX0RJUkVDVF9BQ0NFU1NfTU9ERSAgICAg MHgwMDAwMDQwMAogI2RlZmluZSBDRkdfUFJFRkVUQ0hfQUhCICAgICAgICAgICAweDAwMDAwODAw CiAjZGVmaW5lIENGR19ESVNBQkxFX0NQVV9DTEsgICAgICAgIDB4MDAwMDEwMDAKICNkZWZpbmUg Q0ZHX1BSRUZFVENIX1NSQU0gICAgICAgICAgMHgwMDAwMjAwMAogI2RlZmluZSBDRkdfQ1BVX1JF U0VUICAgICAgICAgICAgICAweDAwMDA0MDAwCi0jZGVmaW5lIENGR19TRElPX0RJU0FCTEVfSVJR ICAgICAgIDB4MDAwMDgwMDAgLy8gb25seSB3aXRoIFNESU8KKyNkZWZpbmUgQ0ZHX1NESU9fRElT QUJMRV9JUlEgICAgICAgMHgwMDAwODAwMCAvKiBvbmx5IHdpdGggU0RJTyAqLwogI2RlZmluZSBD RkdfSVJRX0VOQUJMRV9EQVRBICAgICAgICAweDAwMDEwMDAwCiAjZGVmaW5lIENGR19JUlFfRU5B QkxFX1dSRFkgICAgICAgIDB4MDAwMjAwMDAKICNkZWZpbmUgQ0ZHX0NMS19SSVNFX0VER0UgICAg ICAgICAgMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfU0RJT19ESVNBQkxFX0NSQ19DSEsgICAweDAw MDgwMDAwIC8vIG9ubHkgd2l0aCBTRElPCisjZGVmaW5lIENGR19TRElPX0RJU0FCTEVfQ1JDX0NI SyAgIDB4MDAwODAwMDAgLyogb25seSB3aXRoIFNESU8gKi8KICNkZWZpbmUgQ0ZHX1JFU0VSVkVE ICAgICAgICAgICAgICAgMHgwMEYwMDAwMAogI2RlZmluZSBDRkdfREVWSUNFX0lEX01BSk9SICAg ICAgICAweDA3MDAwMDAwCiAjZGVmaW5lIENGR19ERVZJQ0VfSURfUkVTRVJWRUQgICAgIDB4Nzgw MDAwMDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93Zngva2V5LmMgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2tleS5jCmluZGV4IDJhYjgyYmVkNGMxYi4uNTFhNTI4MTAyMDE2IDEwMDY0NAot LS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2tleS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv a2V5LmMKQEAgLTg0LDEwICs4NCwxMCBAQCBzdGF0aWMgdTggZmlsbF90a2lwX2dyb3VwKHN0cnVj dCBoaWZfdGtpcF9ncm91cF9rZXkgKm1zZywKIAltZW1jcHkobXNnLT50a2lwX2tleV9kYXRhLCBr ZXlidWYsIHNpemVvZihtc2ctPnRraXBfa2V5X2RhdGEpKTsKIAlrZXlidWYgKz0gc2l6ZW9mKG1z Zy0+dGtpcF9rZXlfZGF0YSk7CiAJaWYgKGlmdHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUCkKLQkJ Ly8gVXNlIFR4IE1JQyBLZXkKKwkJLyogVXNlIFR4IE1JQyBLZXkgKi8KIAkJbWVtY3B5KG1zZy0+ cnhfbWljX2tleSwga2V5YnVmICsgMCwgc2l6ZW9mKG1zZy0+cnhfbWljX2tleSkpOwogCWVsc2UK LQkJLy8gVXNlIFJ4IE1JQyBLZXkKKwkJLyogVXNlIFJ4IE1JQyBLZXkgKi8KIAkJbWVtY3B5KG1z Zy0+cnhfbWljX2tleSwga2V5YnVmICsgOCwgc2l6ZW9mKG1zZy0+cnhfbWljX2tleSkpOwogCXJl dHVybiBISUZfS0VZX1RZUEVfVEtJUF9HUk9VUDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy93ZngvbWFpbi5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmMKaW5kZXggMzY0MmQ0 ZWJiMDE4Li44MzI5MjU0NGIxMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFp bi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jCkBAIC05Miw3ICs5Miw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kIHdmeF9iYW5kXzJnaHog PSB7CiAJLmJpdHJhdGVzID0gd2Z4X3JhdGVzLAogCS5uX2JpdHJhdGVzID0gQVJSQVlfU0laRSh3 ZnhfcmF0ZXMpLAogCS5odF9jYXAgPSB7Ci0JCS8vIFJlY2VpdmUgY2FwcworCQkvKiBSZWNlaXZl IGNhcHMgKi8KIAkJLmNhcCA9IElFRUU4MDIxMV9IVF9DQVBfR1JOX0ZMRCB8IElFRUU4MDIxMV9I VF9DQVBfU0dJXzIwIHwKIAkJICAgICAgIElFRUU4MDIxMV9IVF9DQVBfTUFYX0FNU0RVIHwKIAkJ ICAgICAgICgxIDw8IElFRUU4MDIxMV9IVF9DQVBfUlhfU1RCQ19TSElGVCksCkBAIC0xMDAsNyAr MTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgd2Z4 X2JhbmRfMmdoeiA9IHsKIAkJLmFtcGR1X2ZhY3RvciA9IElFRUU4MDIxMV9IVF9NQVhfQU1QRFVf MTZLLAogCQkuYW1wZHVfZGVuc2l0eSA9IElFRUU4MDIxMV9IVF9NUERVX0RFTlNJVFlfTk9ORSwK IAkJLm1jcyA9IHsKLQkJCS5yeF9tYXNrID0geyAweEZGIH0sIC8vIE1DUzAgdG8gTUNTNworCQkJ LnJ4X21hc2sgPSB7IDB4RkYgfSwgLyogTUNTMCB0byBNQ1M3ICovCiAJCQkucnhfaGlnaGVzdCA9 IGNwdV90b19sZTE2KDcyKSwKIAkJCS50eF9wYXJhbXMgPSBJRUVFODAyMTFfSFRfTUNTX1RYX0RF RklORUQsCiAJCX0sCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RydWN0IHdmeF9kZXYgKndmeF9pbml0 X2NvbW1vbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaHctPndpcGh5LT5uX2lmYWNlX2NvbWJpbmF0 aW9ucyA9IEFSUkFZX1NJWkUod2Z4X2lmYWNlX2NvbWJpbmF0aW9ucyk7CiAJaHctPndpcGh5LT5p ZmFjZV9jb21iaW5hdGlvbnMgPSB3ZnhfaWZhY2VfY29tYmluYXRpb25zOwogCWh3LT53aXBoeS0+ YmFuZHNbTkw4MDIxMV9CQU5EXzJHSFpdID0gZGV2bV9rbWFsbG9jKGRldiwgc2l6ZW9mKHdmeF9i YW5kXzJnaHopLCBHRlBfS0VSTkVMKTsKLQkvLyBGSVhNRTogYWxzbyBjb3B5IHdmeF9yYXRlcyBh bmQgd2Z4XzJnaHpfY2hhbnRhYmxlCisJLyogRklYTUU6IGFsc28gY29weSB3ZnhfcmF0ZXMgYW5k IHdmeF8yZ2h6X2NoYW50YWJsZSAqLwogCW1lbWNweShody0+d2lwaHktPmJhbmRzW05MODAyMTFf QkFORF8yR0haXSwgJndmeF9iYW5kXzJnaHosCiAJICAgICAgIHNpemVvZih3ZnhfYmFuZF8yZ2h6 KSk7CiAKQEAgLTMzNiw4ICszMzYsOSBAQCBpbnQgd2Z4X3Byb2JlKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2KQogCWludCBlcnI7CiAJc3RydWN0IGdwaW9fZGVzYyAqZ3Bpb19zYXZlZDsKIAotCS8vIER1 cmluZyBmaXJzdCBwYXJ0IG9mIGJvb3QsIGdwaW9fd2FrZXVwIGNhbm5vdCB5ZXQgYmVlbiB1c2Vk LiBTbwotCS8vIHByZXZlbnQgYmgoKSB0byB0b3VjaCBpdC4KKwkvKiBEdXJpbmcgZmlyc3QgcGFy dCBvZiBib290LCBncGlvX3dha2V1cCBjYW5ub3QgeWV0IGJlZW4gdXNlZC4gU28KKwkgKiBwcmV2 ZW50IGJoKCkgdG8gdG91Y2ggaXQuCisJICovCiAJZ3Bpb19zYXZlZCA9IHdkZXYtPnBkYXRhLmdw aW9fd2FrZXVwOwogCXdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwID0gTlVMTDsKIAl3ZGV2LT5wb2xs X2lycSA9IHRydWU7CkBAIC0zNjAsNyArMzYxLDcgQEAgaW50IHdmeF9wcm9iZShzdHJ1Y3Qgd2Z4 X2RldiAqd2RldikKIAkJZ290byBlcnIwOwogCX0KIAotCS8vIEZJWE1FOiBmaWxsIHdpcGh5Ojpo d192ZXJzaW9uCisJLyogRklYTUU6IGZpbGwgd2lwaHk6Omh3X3ZlcnNpb24gKi8KIAlkZXZfaW5m byh3ZGV2LT5kZXYsICJzdGFydGVkIGZpcm13YXJlICVkLiVkLiVkIFwiJXNcIiAoQVBJOiAlZC4l ZCwga2V5c2V0OiAlMDJYLCBjYXBzOiAweCUuOFgpXG4iLAogCQkgd2Rldi0+aHdfY2Fwcy5maXJt d2FyZV9tYWpvciwgd2Rldi0+aHdfY2Fwcy5maXJtd2FyZV9taW5vciwKIAkJIHdkZXYtPmh3X2Nh cHMuZmlybXdhcmVfYnVpbGQsIHdkZXYtPmh3X2NhcHMuZmlybXdhcmVfbGFiZWwsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3F1 ZXVlLmMKaW5kZXggZTVlNzU5NTU2NWVlLi43YTNiYTNjMzg5MjUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3RhZ2luZy93ZngvcXVldWUuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmMK QEAgLTMyLDcgKzMyLDcgQEAgdm9pZCB3ZnhfdHhfZmx1c2goc3RydWN0IHdmeF9kZXYgKndkZXYp CiB7CiAJaW50IHJldDsKIAotCS8vIERvIG5vdCB3YWl0IGZvciBhbnkgcmVwbHkgaWYgY2hpcCBp cyBmcm96ZW4KKwkvKiBEbyBub3Qgd2FpdCBmb3IgYW55IHJlcGx5IGlmIGNoaXAgaXMgZnJvemVu ICovCiAJaWYgKHdkZXYtPmNoaXBfZnJvemVuKQogCQlyZXR1cm47CiAKQEAgLTQ1LDcgKzQ1LDcg QEAgdm9pZCB3ZnhfdHhfZmx1c2goc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJCWRldl93YXJuKHdk ZXYtPmRldiwgImNhbm5vdCBmbHVzaCB0eCBidWZmZXJzICglZCBzdGlsbCBidXN5KVxuIiwKIAkJ CSB3ZGV2LT5oaWYudHhfYnVmZmVyc191c2VkKTsKIAkJd2Z4X3BlbmRpbmdfZHVtcF9vbGRfZnJh bWVzKHdkZXYsIDMwMDApOwotCQkvLyBGSVhNRTogZHJvcCBwZW5kaW5nIGZyYW1lcyBoZXJlCisJ CS8qIEZJWE1FOiBkcm9wIHBlbmRpbmcgZnJhbWVzIGhlcmUgKi8KIAkJd2Rldi0+Y2hpcF9mcm96 ZW4gPSB0cnVlOwogCX0KIAltdXRleF91bmxvY2soJndkZXYtPmhpZl9jbWQubG9jayk7CkBAIC02 MCw5ICs2MCwxMCBAQCB2b2lkIHdmeF90eF9sb2NrX2ZsdXNoKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 KQogCiB2b2lkIHdmeF90eF9xdWV1ZXNfaW5pdChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIHsKLQkv LyBUaGUgZGV2aWNlIGlzIGluIGNoYXJnZSB0byByZXNwZWN0IHRoZSBkZXRhaWxzIG9mIHRoZSBR b1MgcGFyYW1ldGVycy4KLQkvLyBUaGUgZHJpdmVyIGp1c3QgZW5zdXJlIHRoYXQgaXQgcm91Z2h0 bHkgcmVzcGVjdCB0aGUgcHJpb3JpdGllcyB0bwotCS8vIGF2b2lkIGFueSBzaG9ydGFnZS4KKwkv KiBUaGUgZGV2aWNlIGlzIGluIGNoYXJnZSB0byByZXNwZWN0IHRoZSBkZXRhaWxzIG9mIHRoZSBR b1MgcGFyYW1ldGVycy4KKwkgKiBUaGUgZHJpdmVyIGp1c3QgZW5zdXJlIHRoYXQgaXQgcm91Z2h0 bHkgcmVzcGVjdCB0aGUgcHJpb3JpdGllcyB0bworCSAqIGF2b2lkIGFueSBzaG9ydGFnZS4KKwkg Ki8KIAljb25zdCBpbnQgcHJpb3JpdGllc1tJRUVFODAyMTFfTlVNX0FDU10gPSB7IDEsIDIsIDY0 LCAxMjggfTsKIAlpbnQgaTsKIApAQCAtMjE3LDggKzIxOCw5IEBAIGJvb2wgd2Z4X3R4X3F1ZXVl c19oYXNfY2FiKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogCWlmICh3dmlmLT52aWYtPnR5cGUgIT0g Tkw4MDIxMV9JRlRZUEVfQVApCiAJCXJldHVybiBmYWxzZTsKIAlmb3IgKGkgPSAwOyBpIDwgSUVF RTgwMjExX05VTV9BQ1M7ICsraSkKLQkJLy8gTm90ZTogc2luY2Ugb25seSBBUCBjYW4gaGF2ZSBt Y2FzdCBmcmFtZXMgaW4gcXVldWUgYW5kIG9ubHkKLQkJLy8gb25lIHZpZiBjYW4gYmUgQVAsIGFs bCBxdWV1ZWQgZnJhbWVzIGhhcyBzYW1lIGludGVyZmFjZSBpZAorCQkvKiBOb3RlOiBzaW5jZSBv bmx5IEFQIGNhbiBoYXZlIG1jYXN0IGZyYW1lcyBpbiBxdWV1ZSBhbmQgb25seQorCQkgKiBvbmUg dmlmIGNhbiBiZSBBUCwgYWxsIHF1ZXVlZCBmcmFtZXMgaGFzIHNhbWUgaW50ZXJmYWNlIGlkCisJ CSAqLwogCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygmd3ZpZi0+dHhfcXVldWVbaV0u Y2FiKSkKIAkJCXJldHVybiB0cnVlOwogCXJldHVybiBmYWxzZTsKQEAgLTIzNyw3ICsyMzksNyBA QCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKndmeF90eF9xdWV1ZXNfZ2V0X3NrYihzdHJ1Y3Qgd2Z4 X2RldiAqd2RldikKIAlzdHJ1Y3QgaGlmX21zZyAqaGlmOwogCXN0cnVjdCBza19idWZmICpza2I7 CiAKLQkvLyBzb3J0IHRoZSBxdWV1ZXMKKwkvKiBzb3J0IHRoZSBxdWV1ZXMgKi8KIAl3dmlmID0g TlVMTDsKIAl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0ZXJhdGUod2Rldiwgd3ZpZikpICE9IE5VTEwp IHsKIAkJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyBpKyspIHsKQEAgLTI1OSw5 ICsyNjEsMTAgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp3ZnhfdHhfcXVldWVzX2dldF9za2Io c3RydWN0IHdmeF9kZXYgKndkZXYpCiAJCQlza2IgPSBza2JfZGVxdWV1ZSgmcXVldWVzW2ldLT5j YWIpOwogCQkJaWYgKCFza2IpCiAJCQkJY29udGludWU7Ci0JCQkvLyBOb3RlOiBzaW5jZSBvbmx5 IEFQIGNhbiBoYXZlIG1jYXN0IGZyYW1lcyBpbiBxdWV1ZQotCQkJLy8gYW5kIG9ubHkgb25lIHZp ZiBjYW4gYmUgQVAsIGFsbCBxdWV1ZWQgZnJhbWVzIGhhcwotCQkJLy8gc2FtZSBpbnRlcmZhY2Ug aWQKKwkJCS8qIE5vdGU6IHNpbmNlIG9ubHkgQVAgY2FuIGhhdmUgbWNhc3QgZnJhbWVzIGluIHF1 ZXVlCisJCQkgKiBhbmQgb25seSBvbmUgdmlmIGNhbiBiZSBBUCwgYWxsIHF1ZXVlZCBmcmFtZXMg aGFzCisJCQkgKiBzYW1lIGludGVyZmFjZSBpZAorCQkJICovCiAJCQloaWYgPSAoc3RydWN0IGhp Zl9tc2cgKilza2ItPmRhdGE7CiAJCQlXQVJOX09OKGhpZi0+aW50ZXJmYWNlICE9IHd2aWYtPmlk KTsKIAkJCVdBUk5fT04ocXVldWVzW2ldICE9CkBAIC0yNzAsNyArMjczLDcgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICp3ZnhfdHhfcXVldWVzX2dldF9za2Ioc3RydWN0IHdmeF9kZXYgKndkZXYp CiAJCQl0cmFjZV9xdWV1ZXNfc3RhdHMod2RldiwgcXVldWVzW2ldKTsKIAkJCXJldHVybiBza2I7 CiAJCX0KLQkJLy8gTm8gbW9yZSBtdWx0aWNhc3QgdG8gc2VudAorCQkvKiBObyBtb3JlIG11bHRp Y2FzdCB0byBzZW50ICovCiAJCXd2aWYtPmFmdGVyX2R0aW1fdHhfYWxsb3dlZCA9IGZhbHNlOwog CQlzY2hlZHVsZV93b3JrKCZ3dmlmLT51cGRhdGVfdGltX3dvcmspOwogCX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUu aAppbmRleCAyNGI2MDgzMzg2NGIuLjU0YjVkZWYyZTI0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9z dGFnaW5nL3dmeC9xdWV1ZS5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuaApAQCAt MTYsNyArMTYsNyBAQCBzdHJ1Y3Qgd2Z4X3ZpZjsKIAogc3RydWN0IHdmeF9xdWV1ZSB7CiAJc3Ry dWN0IHNrX2J1ZmZfaGVhZAlub3JtYWw7Ci0Jc3RydWN0IHNrX2J1ZmZfaGVhZAljYWI7IC8vIENv bnRlbnQgQWZ0ZXIgKERUSU0pIEJlYWNvbgorCXN0cnVjdCBza19idWZmX2hlYWQJY2FiOyAvKiBD b250ZW50IEFmdGVyIChEVElNKSBCZWFjb24gKi8KIAlhdG9taWNfdAkJcGVuZGluZ19mcmFtZXM7 CiAJaW50CQkJcHJpb3JpdHk7CiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9z dGEuYyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMKaW5kZXggMGY0OGRhYjEwNWU5Li5hY2Vi MThhMWY1NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMKKysrIGIvZHJp dmVycy9zdGFnaW5nL3dmeC9zdGEuYwpAQCAtMjQsNyArMjQsNyBAQCB1MzIgd2Z4X3JhdGVfbWFz a190b19odyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIHJhdGVzKQogewogCWludCBpOwogCXUz MiByZXQgPSAwOwotCS8vIFRoZSBkZXZpY2Ugb25seSBzdXBwb3J0cyAyR0h6CisJLyogVGhlIGRl dmljZSBvbmx5IHN1cHBvcnRzIDJHSHogKi8KIAlzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9i YW5kICpzYmFuZCA9IHdkZXYtPmh3LT53aXBoeS0+YmFuZHNbTkw4MDIxMV9CQU5EXzJHSFpdOwog CiAJZm9yIChpID0gMDsgaSA8IHNiYW5kLT5uX2JpdHJhdGVzOyBpKyspIHsKQEAgLTUxLDExICs1 MSwxMSBAQCB2b2lkIHdmeF9jb29saW5nX3RpbWVvdXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3Qg KndvcmspCiB2b2lkIHdmeF9zdXNwZW5kX2hvdF9kZXYoc3RydWN0IHdmeF9kZXYgKndkZXYsIGVu dW0gc3RhX25vdGlmeV9jbWQgY21kKQogewogCWlmIChjbWQgPT0gU1RBX05PVElGWV9BV0FLRSkg ewotCQkvLyBEZXZpY2UgcmVjb3ZlciBub3JtYWwgdGVtcGVyYXR1cmUKKwkJLyogRGV2aWNlIHJl Y292ZXIgbm9ybWFsIHRlbXBlcmF0dXJlICovCiAJCWlmIChjYW5jZWxfZGVsYXllZF93b3JrKCZ3 ZGV2LT5jb29saW5nX3RpbWVvdXRfd29yaykpCiAJCQl3ZnhfdHhfdW5sb2NrKHdkZXYpOwogCX0g ZWxzZSB7Ci0JCS8vIERldmljZSBpcyB0b28gaG90CisJCS8qIERldmljZSBpcyB0b28gaG90ICov CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmd2Rldi0+Y29vbGluZ190aW1lb3V0X3dvcmssIDEw ICogSFopOwogCQl3ZnhfdHhfbG9jayh3ZGV2KTsKIAl9CkBAIC0xMDMsMTMgKzEwMywxNCBAQCB2 b2lkIHdmeF9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1bnNpZ25l ZCBpbnQgY2hhbmdlZF9mbGFncywKIAlzdHJ1Y3Qgd2Z4X2RldiAqd2RldiA9IGh3LT5wcml2Owog CWJvb2wgZmlsdGVyX2Jzc2lkLCBmaWx0ZXJfcHJicmVxLCBmaWx0ZXJfYmVhY29uOwogCi0JLy8g Tm90ZXM6Ci0JLy8gICAtIFByb2JlIHJlc3BvbnNlcyAoRklGX0JDTl9QUkJSRVNQX1BST01JU0Mp IGFyZSBuZXZlciBmaWx0ZXJlZAotCS8vICAgLSBQUy1Qb2xsIChGSUZfUFNQT0xMKSBhcmUgbmV2 ZXIgZmlsdGVyZWQKLQkvLyAgIC0gUlRTLCBDVFMgYW5kIEFjayAoRklGX0NPTlRST0wpIGFyZSBh bHdheXMgZmlsdGVyZWQKLQkvLyAgIC0gQnJva2VuIGZyYW1lcyAoRklGX0ZDU0ZBSUwgYW5kIEZJ Rl9QTENQRkFJTCkgYXJlIGFsd2F5cyBmaWx0ZXJlZAotCS8vICAgLSBGaXJtd2FyZSBkb2VzICh5 ZXQpIGFsbG93IHRvIGZvcndhcmQgdW5pY2FzdCB0cmFmZmljIHNlbnQgdG8KLQkvLyAgICAgb3Ro ZXIgc3RhdGlvbnMgKGFrYS4gcHJvbWlzY3VvdXMgbW9kZSkKKwkvKiBOb3RlczoKKwkgKiAgIC0g UHJvYmUgcmVzcG9uc2VzIChGSUZfQkNOX1BSQlJFU1BfUFJPTUlTQykgYXJlIG5ldmVyIGZpbHRl cmVkCisJICogICAtIFBTLVBvbGwgKEZJRl9QU1BPTEwpIGFyZSBuZXZlciBmaWx0ZXJlZAorCSAq ICAgLSBSVFMsIENUUyBhbmQgQWNrIChGSUZfQ09OVFJPTCkgYXJlIGFsd2F5cyBmaWx0ZXJlZAor CSAqICAgLSBCcm9rZW4gZnJhbWVzIChGSUZfRkNTRkFJTCBhbmQgRklGX1BMQ1BGQUlMKSBhcmUg YWx3YXlzIGZpbHRlcmVkCisJICogICAtIEZpcm13YXJlIGRvZXMgKHlldCkgYWxsb3cgdG8gZm9y d2FyZCB1bmljYXN0IHRyYWZmaWMgc2VudCB0bworCSAqICAgICBvdGhlciBzdGF0aW9ucyAoYWth LiBwcm9taXNjdW91cyBtb2RlKQorCSAqLwogCSp0b3RhbF9mbGFncyAmPSBGSUZfQkNOX1BSQlJF U1BfUFJPTUlTQyB8IEZJRl9BTExNVUxUSSB8IEZJRl9PVEhFUl9CU1MgfAogCQkJRklGX1BST0JF X1JFUSB8IEZJRl9QU1BPTEw7CiAKQEAgLTExNyw4ICsxMTgsOSBAQCB2b2lkIHdmeF9jb25maWd1 cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1bnNpZ25lZCBpbnQgY2hhbmdlZF9m bGFncywKIAl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0ZXJhdGUod2Rldiwgd3ZpZikpICE9IE5VTEwp IHsKIAkJbXV0ZXhfbG9jaygmd3ZpZi0+c2Nhbl9sb2NrKTsKIAotCQkvLyBOb3RlOiBGSUZfQkNO X1BSQlJFU1BfUFJPTUlTQyBjb3ZlcnMgcHJvYmUgcmVzcG9uc2UgYW5kCi0JCS8vIGJlYWNvbnMg ZnJvbSBvdGhlciBCU1MKKwkJLyogTm90ZTogRklGX0JDTl9QUkJSRVNQX1BST01JU0MgY292ZXJz IHByb2JlIHJlc3BvbnNlIGFuZAorCQkgKiBiZWFjb25zIGZyb20gb3RoZXIgQlNTCisJCSAqLwog CQlpZiAoKnRvdGFsX2ZsYWdzICYgRklGX0JDTl9QUkJSRVNQX1BST01JU0MpCiAJCQlmaWx0ZXJf YmVhY29uID0gZmFsc2U7CiAJCWVsc2UKQEAgLTEzMCw3ICsxMzIsNyBAQCB2b2lkIHdmeF9jb25m aWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1bnNpZ25lZCBpbnQgY2hhbmdl ZF9mbGFncywKIAkJZWxzZQogCQkJZmlsdGVyX2Jzc2lkID0gdHJ1ZTsKIAotCQkvLyBJbiBBUCBt b2RlLCBjaGlwIGNhbiByZXBseSB0byBwcm9iZSByZXF1ZXN0IGl0c2VsZgorCQkvKiBJbiBBUCBt b2RlLCBjaGlwIGNhbiByZXBseSB0byBwcm9iZSByZXF1ZXN0IGl0c2VsZiAqLwogCQlpZiAoKnRv dGFsX2ZsYWdzICYgRklGX1BST0JFX1JFUSAmJgogCQkgICAgd3ZpZi0+dmlmLT50eXBlID09IE5M ODAyMTFfSUZUWVBFX0FQKSB7CiAJCQlkZXZfZGJnKHdkZXYtPmRldiwgImRvIG5vdCBmb3J3YXJk IHByb2JlIHJlcXVlc3QgaW4gQVAgbW9kZVxuIik7CkBAIC0xNjEsMTUgKzE2MywxNiBAQCBzdGF0 aWMgaW50IHdmeF9nZXRfcHNfdGltZW91dChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCAqZW5h YmxlX3BzKQogCQljaGFuMSA9IHdkZXZfdG9fd3ZpZih3dmlmLT53ZGV2LCAxKS0+dmlmLT5ic3Nf Y29uZi5jaGFuZGVmLmNoYW47CiAJaWYgKGNoYW4wICYmIGNoYW4xICYmIHd2aWYtPnZpZi0+dHlw ZSAhPSBOTDgwMjExX0lGVFlQRV9BUCkgewogCQlpZiAoY2hhbjAtPmh3X3ZhbHVlID09IGNoYW4x LT5od192YWx1ZSkgewotCQkJLy8gSXQgaXMgdXNlbGVzcyB0byBlbmFibGUgUFMgaWYgY2hhbm5l bHMgYXJlIHRoZSBzYW1lLgorCQkJLyogSXQgaXMgdXNlbGVzcyB0byBlbmFibGUgUFMgaWYgY2hh bm5lbHMgYXJlIHRoZSBzYW1lLiAqLwogCQkJaWYgKGVuYWJsZV9wcykKIAkJCQkqZW5hYmxlX3Bz ID0gZmFsc2U7CiAJCQlpZiAod3ZpZi0+dmlmLT5ic3NfY29uZi5hc3NvYyAmJiB3dmlmLT52aWYt PmJzc19jb25mLnBzKQogCQkJCWRldl9pbmZvKHd2aWYtPndkZXYtPmRldiwgImlnbm9yaW5nIHJl cXVlc3RlZCBQUyBtb2RlIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0gZWxzZSB7Ci0JCQkvLyBJdCBp cyBuZWNlc3NhcnkgdG8gZW5hYmxlIFBTIGlmIGNoYW5uZWxzCi0JCQkvLyBhcmUgZGlmZmVyZW50 LgorCQkJLyogSXQgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBQUyBpZiBjaGFubmVscworCQkJICog YXJlIGRpZmZlcmVudC4KKwkJCSAqLwogCQkJaWYgKGVuYWJsZV9wcykKIAkJCQkqZW5hYmxlX3Bz ID0gdHJ1ZTsKIAkJCWlmICh3dmlmLT53ZGV2LT5mb3JjZV9wc190aW1lb3V0ID4gLTEpCkBAIC0z MDUsNyArMzA4LDcgQEAgaW50IHdmeF9zdGFfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBz dHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAogCWlmICh2aWYtPnR5cGUgPT0gTkw4MDIxMV9JRlRZ UEVfU1RBVElPTikKIAkJaGlmX3NldF9tZnAod3ZpZiwgc3RhLT5tZnAsIHN0YS0+bWZwKTsKIAot CS8vIEluIHN0YXRpb24gbW9kZSwgdGhlIGZpcm13YXJlIGludGVycHJldHMgbmV3IGxpbmstaWQg YXMgYSBURExTIHBlZXIuCisJLyogSW4gc3RhdGlvbiBtb2RlLCB0aGUgZmlybXdhcmUgaW50ZXJw cmV0cyBuZXcgbGluay1pZCBhcyBhIFRETFMgcGVlciAqLwogCWlmICh2aWYtPnR5cGUgPT0gTkw4 MDIxMV9JRlRZUEVfU1RBVElPTiAmJiAhc3RhLT50ZGxzKQogCQlyZXR1cm4gMDsKIAlzdGFfcHJp di0+bGlua19pZCA9IGZmeih3dmlmLT5saW5rX2lkX21hcCk7CkBAIC0zMjMsMTAgKzMyNiwxMCBA QCBpbnQgd2Z4X3N0YV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVl ODAyMTFfdmlmICp2aWYsCiAJc3RydWN0IHdmeF92aWYgKnd2aWYgPSAoc3RydWN0IHdmeF92aWYg Kil2aWYtPmRydl9wcml2OwogCXN0cnVjdCB3Znhfc3RhX3ByaXYgKnN0YV9wcml2ID0gKHN0cnVj dCB3Znhfc3RhX3ByaXYgKikmc3RhLT5kcnZfcHJpdjsKIAotCS8vIFNlZSBub3RlIGluIHdmeF9z dGFfYWRkKCkKKwkvKiBTZWUgbm90ZSBpbiB3Znhfc3RhX2FkZCgpICovCiAJaWYgKCFzdGFfcHJp di0+bGlua19pZCkKIAkJcmV0dXJuIDA7Ci0JLy8gRklYTUUgYWRkIGEgbXV0ZXg/CisJLyogRklY TUUgYWRkIGEgbXV0ZXg/ICovCiAJaGlmX21hcF9saW5rKHd2aWYsIHRydWUsIHN0YS0+YWRkciwg c3RhX3ByaXYtPmxpbmtfaWQsIGZhbHNlKTsKIAl3dmlmLT5saW5rX2lkX21hcCAmPSB+QklUKHN0 YV9wcml2LT5saW5rX2lkKTsKIAlyZXR1cm4gMDsKQEAgLTQyMSw3ICs0MjQsNyBAQCBzdGF0aWMg dm9pZCB3Znhfam9pbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAkJcmV0dXJuOwogCX0KIAotCXJj dV9yZWFkX2xvY2soKTsgLy8gcHJvdGVjdCBzc2lkaWUKKwlyY3VfcmVhZF9sb2NrKCk7IC8qIHBy b3RlY3Qgc3NpZGllICovCiAJaWYgKGJzcykKIAkJc3NpZGllID0gaWVlZTgwMjExX2Jzc19nZXRf aWUoYnNzLCBXTEFOX0VJRF9TU0lEKTsKIAlpZiAoc3NpZGllKSB7CkBAIC00NTcsNyArNDYwLDcg QEAgc3RhdGljIHZvaWQgd2Z4X2pvaW5fZmluYWxpemUoc3RydWN0IHdmeF92aWYgKnd2aWYsCiAJ aW50IGFtcGR1X2RlbnNpdHkgPSAwOwogCWJvb2wgZ3JlZW5maWVsZCA9IGZhbHNlOwogCi0JcmN1 X3JlYWRfbG9jaygpOyAvLyBwcm90ZWN0IHN0YQorCXJjdV9yZWFkX2xvY2soKTsgLyogcHJvdGVj dCBzdGEgKi8KIAlpZiAoaW5mby0+YnNzaWQgJiYgIWluZm8tPmlic3Nfam9pbmVkKQogCQlzdGEg PSBpZWVlODAyMTFfZmluZF9zdGEod3ZpZi0+dmlmLCBpbmZvLT5ic3NpZCk7CiAJaWYgKHN0YSAm JiBzdGEtPmh0X2NhcC5odF9zdXBwb3J0ZWQpCkBAIC00NzEsOCArNDc0LDkgQEAgc3RhdGljIHZv aWQgd2Z4X2pvaW5fZmluYWxpemUoc3RydWN0IHdmeF92aWYgKnd2aWYsCiAJaGlmX3NldF9hc3Nv Y2lhdGlvbl9tb2RlKHd2aWYsIGFtcGR1X2RlbnNpdHksIGdyZWVuZmllbGQsCiAJCQkJIGluZm8t PnVzZV9zaG9ydF9wcmVhbWJsZSk7CiAJaGlmX2tlZXBfYWxpdmVfcGVyaW9kKHd2aWYsIDApOwot CS8vIGJlYWNvbl9sb3NzX2NvdW50IGlzIGRlZmluZWQgdG8gNyBpbiBuZXQvbWFjODAyMTEvbWxt ZS5jLiBMZXQncyB1c2UKLQkvLyB0aGUgc2FtZSB2YWx1ZS4KKwkvKiBiZWFjb25fbG9zc19jb3Vu dCBpcyBkZWZpbmVkIHRvIDcgaW4gbmV0L21hYzgwMjExL21sbWUuYy4gTGV0J3MgdXNlCisJICog dGhlIHNhbWUgdmFsdWUuCisJICovCiAJaGlmX3NldF9ic3NfcGFyYW1zKHd2aWYsIGluZm8tPmFp ZCwgNyk7CiAJaGlmX3NldF9iZWFjb25fd2FrZXVwX3BlcmlvZCh3dmlmLCAxLCAxKTsKIAl3Znhf dXBkYXRlX3BtKHd2aWYpOwpAQCAtNDk2LDEwICs1MDAsMTEgQEAgdm9pZCB3ZnhfbGVhdmVfaWJz cyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZikKIAog c3RhdGljIHZvaWQgd2Z4X2VuYWJsZV9iZWFjb24oc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wg ZW5hYmxlKQogewotCS8vIERyaXZlciBoYXMgQ29udGVudCBBZnRlciBEVElNIEJlYWNvbiBpbiBx dWV1ZS4gRHJpdmVyIGlzIHdhaXRpbmcgZm9yCi0JLy8gYSBzaWduYWwgZnJvbSB0aGUgZmlybXdh cmUuIFNpbmNlIHdlIGFyZSBnb2luZyB0byBzdG9wIHRvIHNlbmQKLQkvLyBiZWFjb25zLCB0aGlz IHNpZ25hbCB3aWxsIG5ldmVyIGhhcHBlbnMuIFNlZSBhbHNvCi0JLy8gd2Z4X3N1c3BlbmRfcmVz dW1lX21jKCkKKwkvKiBEcml2ZXIgaGFzIENvbnRlbnQgQWZ0ZXIgRFRJTSBCZWFjb24gaW4gcXVl dWUuIERyaXZlciBpcyB3YWl0aW5nIGZvcgorCSAqIGEgc2lnbmFsIGZyb20gdGhlIGZpcm13YXJl LiBTaW5jZSB3ZSBhcmUgZ29pbmcgdG8gc3RvcCB0byBzZW5kCisJICogYmVhY29ucywgdGhpcyBz aWduYWwgd2lsbCBuZXZlciBoYXBwZW5zLiBTZWUgYWxzbworCSAqIHdmeF9zdXNwZW5kX3Jlc3Vt ZV9tYygpCisJICovCiAJaWYgKCFlbmFibGUgJiYgd2Z4X3R4X3F1ZXVlc19oYXNfY2FiKHd2aWYp KSB7CiAJCXd2aWYtPmFmdGVyX2R0aW1fdHhfYWxsb3dlZCA9IHRydWU7CiAJCXdmeF9iaF9yZXF1 ZXN0X3R4KHd2aWYtPndkZXYpOwpAQCAtNTM5LDggKzU0NCw5IEBAIHZvaWQgd2Z4X2Jzc19pbmZv X2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2 aWYsCiAJCQkJIF9fZnVuY19fKTsKIAkJaGlmX3NldF9iZWFjb25fd2FrZXVwX3BlcmlvZCh3dmlm LCBpbmZvLT5kdGltX3BlcmlvZCwKIAkJCQkJICAgICBpbmZvLT5kdGltX3BlcmlvZCk7Ci0JCS8v IFdlIHRlbXBvcmFyeSBmb3J3YXJkZWQgYmVhY29uIGZvciBqb2luIHByb2Nlc3MuIEl0IGlzIG5v dyBubwotCQkvLyBtb3JlIG5lY2Vzc2FyeS4KKwkJLyogV2UgdGVtcG9yYXJ5IGZvcndhcmRlZCBi ZWFjb24gZm9yIGpvaW4gcHJvY2Vzcy4gSXQgaXMgbm93IG5vCisJCSAqIG1vcmUgbmVjZXNzYXJ5 LgorCQkgKi8KIAkJd2Z4X2ZpbHRlcl9iZWFjb24od3ZpZiwgdHJ1ZSk7CiAJfQogCkBAIC02NDMs OCArNjQ5LDkgQEAgdm9pZCB3Znhfc3VzcGVuZF9yZXN1bWVfbWMoc3RydWN0IHdmeF92aWYgKnd2 aWYsIGVudW0gc3RhX25vdGlmeV9jbWQgbm90aWZ5X2NtZCkKIAlpZiAobm90aWZ5X2NtZCAhPSBT VEFfTk9USUZZX0FXQUtFKQogCQlyZXR1cm47CiAKLQkvLyBEZXZpY2Ugd29uJ3QgYmUgYWJsZSB0 byBob25vciBDQUIgaWYgYSBzY2FuIGlzIGluIHByb2dyZXNzIG9uIGFueQotCS8vIGludGVyZmFj ZS4gUHJlZmVyIHRvIHNraXAgdGhpcyBEVElNIGFuZCB3YWl0IGZvciB0aGUgbmV4dCBvbmUuCisJ LyogRGV2aWNlIHdvbid0IGJlIGFibGUgdG8gaG9ub3IgQ0FCIGlmIGEgc2NhbiBpcyBpbiBwcm9n cmVzcyBvbiBhbnkKKwkgKiBpbnRlcmZhY2UuIFByZWZlciB0byBza2lwIHRoaXMgRFRJTSBhbmQg d2FpdCBmb3IgdGhlIG5leHQgb25lLgorCSAqLwogCXd2aWZfaXQgPSBOVUxMOwogCXdoaWxlICgo d3ZpZl9pdCA9IHd2aWZfaXRlcmF0ZSh3dmlmLT53ZGV2LCB3dmlmX2l0KSkgIT0gTlVMTCkKIAkJ aWYgKG11dGV4X2lzX2xvY2tlZCgmd3ZpZl9pdC0+c2Nhbl9sb2NrKSkKQEAgLTY2MSwxNCArNjY4 LDE0IEBAIGludCB3ZnhfYW1wZHVfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAogCQkg ICAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCiAJCSAgICAgc3RydWN0IGllZWU4MDIxMV9h bXBkdV9wYXJhbXMgKnBhcmFtcykKIHsKLQkvLyBBZ2dyZWdhdGlvbiBpcyBpbXBsZW1lbnRlZCBm dWxseSBpbiBmaXJtd2FyZQorCS8qIEFnZ3JlZ2F0aW9uIGlzIGltcGxlbWVudGVkIGZ1bGx5IGlu IGZpcm13YXJlICovCiAJc3dpdGNoIChwYXJhbXMtPmFjdGlvbikgewogCWNhc2UgSUVFRTgwMjEx X0FNUERVX1JYX1NUQVJUOgogCWNhc2UgSUVFRTgwMjExX0FNUERVX1JYX1NUT1A6Ci0JCS8vIEp1 c3QgYWNrbm93bGVkZ2UgaXQgdG8gZW5hYmxlIGZyYW1lIHJlLW9yZGVyaW5nCisJCS8qIEp1c3Qg YWNrbm93bGVkZ2UgaXQgdG8gZW5hYmxlIGZyYW1lIHJlLW9yZGVyaW5nICovCiAJCXJldHVybiAw OwogCWRlZmF1bHQ6Ci0JCS8vIExlYXZlIHRoZSBmaXJtd2FyZSBkb2luZyBpdHMgYnVzaW5lc3Mg Zm9yIHR4IGFnZ3JlZ2F0aW9uCisJCS8qIExlYXZlIHRoZSBmaXJtd2FyZSBkb2luZyBpdHMgYnVz aW5lc3MgZm9yIHR4IGFnZ3JlZ2F0aW9uICovCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiB9 CkBAIC03NDAsMTEgKzc0NywxMSBAQCBpbnQgd2Z4X2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4 MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpCiAJCXJldHVybiAtRU9QTk9U U1VQUDsKIAl9CiAKLQkvLyBGSVhNRTogcHJlZmVyIHVzZSBvZiBjb250YWluZXJfb2YoKSB0byBn ZXQgdmlmCisJLyogRklYTUU6IHByZWZlciB1c2Ugb2YgY29udGFpbmVyX29mKCkgdG8gZ2V0IHZp ZiAqLwogCXd2aWYtPnZpZiA9IHZpZjsKIAl3dmlmLT53ZGV2ID0gd2RldjsKIAotCXd2aWYtPmxp bmtfaWRfbWFwID0gMTsgLy8gbGluay1pZCAwIGlzIHJlc2VydmVkIGZvciBtdWx0aWNhc3QKKwl3 dmlmLT5saW5rX2lkX21hcCA9IDE7IC8qIGxpbmstaWQgMCBpcyByZXNlcnZlZCBmb3IgbXVsdGlj YXN0ICovCiAJSU5JVF9XT1JLKCZ3dmlmLT51cGRhdGVfdGltX3dvcmssIHdmeF91cGRhdGVfdGlt X3dvcmspOwogCUlOSVRfREVMQVlFRF9XT1JLKCZ3dmlmLT5iZWFjb25fbG9zc193b3JrLCB3Znhf YmVhY29uX2xvc3Nfd29yayk7CiAKQEAgLTc3NCw3ICs3ODEsNyBAQCBpbnQgd2Z4X2FkZF9pbnRl cmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYp CiAKIAl3dmlmID0gTlVMTDsKIAl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0ZXJhdGUod2Rldiwgd3Zp ZikpICE9IE5VTEwpIHsKLQkJLy8gQ29tYm8gbW9kZSBkb2VzIG5vdCBzdXBwb3J0IEJsb2NrIEFj a3MuIFdlIGNhbiByZS1lbmFibGUgdGhlbQorCQkvKiBDb21ibyBtb2RlIGRvZXMgbm90IHN1cHBv cnQgQmxvY2sgQWNrcy4gV2UgY2FuIHJlLWVuYWJsZSB0aGVtICovCiAJCWlmICh3dmlmX2NvdW50 KHdkZXYpID09IDEpCiAJCQloaWZfc2V0X2Jsb2NrX2Fja19wb2xpY3kod3ZpZiwgMHhGRiwgMHhG Rik7CiAJCWVsc2UKQEAgLTgwNiw3ICs4MTMsNyBAQCB2b2lkIHdmeF9yZW1vdmVfaW50ZXJmYWNl KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKQogCiAJ d3ZpZiA9IE5VTEw7CiAJd2hpbGUgKCh3dmlmID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAh PSBOVUxMKSB7Ci0JCS8vIENvbWJvIG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBCbG9jayBBY2tzLiBX ZSBjYW4gcmUtZW5hYmxlIHRoZW0KKwkJLyogQ29tYm8gbW9kZSBkb2VzIG5vdCBzdXBwb3J0IEJs b2NrIEFja3MuIFdlIGNhbiByZS1lbmFibGUgdGhlbSAqLwogCQlpZiAod3ZpZl9jb3VudCh3ZGV2 KSA9PSAxKQogCQkJaGlmX3NldF9ibG9ja19hY2tfcG9saWN5KHd2aWYsIDB4RkYsIDB4RkYpOwog CQllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5oIGIvZHJpdmVycy9z dGFnaW5nL3dmeC9zdGEuaAppbmRleCAwNTZlZDUyNjdhYmEuLmYzNTlmMzc1Y2M1NiAxMDA2NDQK LS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4 L3N0YS5oCkBAIC0xOCw3ICsxOCw3IEBAIHN0cnVjdCB3Znhfc3RhX3ByaXYgewogCWludCB2aWZf aWQ7CiB9OwogCi0vLyBtYWM4MDIxMSBpbnRlcmZhY2UKKy8qIG1hYzgwMjExIGludGVyZmFjZSAq LwogaW50IHdmeF9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7CiB2b2lkIHdmeF9zdG9w KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KTsKIGludCB3ZnhfY29uZmlnKHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LCB1MzIgY2hhbmdlZCk7CkBAIC01OSwxNCArNTksMTQgQEAgdm9pZCB3ZnhfdW5h c3NpZ25fdmlmX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJCQkgICAgICBzdHJ1 Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAogCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV9jaGFuY3R4 X2NvbmYgKmNvbmYpOwogCi0vLyBIYXJkd2FyZSBBUEkgQ2FsbGJhY2tzCisvKiBIYXJkd2FyZSBB UEkgQ2FsbGJhY2tzICovCiB2b2lkIHdmeF9jb29saW5nX3RpbWVvdXRfd29yayhzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspOwogdm9pZCB3Znhfc3VzcGVuZF9ob3RfZGV2KHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2LCBlbnVtIHN0YV9ub3RpZnlfY21kIGNtZCk7CiB2b2lkIHdmeF9zdXNwZW5kX3Jlc3Vt ZV9tYyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgZW51bSBzdGFfbm90aWZ5X2NtZCBjbWQpOwogdm9p ZCB3ZnhfZXZlbnRfcmVwb3J0X3Jzc2koc3RydWN0IHdmeF92aWYgKnd2aWYsIHU4IHJhd19yY3Bp X3Jzc2kpOwogaW50IHdmeF91cGRhdGVfcG0oc3RydWN0IHdmeF92aWYgKnd2aWYpOwogCi0vLyBP dGhlciBIZWxwZXJzCisvKiBPdGhlciBIZWxwZXJzICovCiB2b2lkIHdmeF9yZXNldChzdHJ1Y3Qg d2Z4X3ZpZiAqd3ZpZik7CiB1MzIgd2Z4X3JhdGVfbWFza190b19odyhzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgdTMyIHJhdGVzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC90cmFj ZXMuaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvdHJhY2VzLmgKaW5kZXggZTM0YzdhNTM4YzY1Li5l OTBkYzczYzRiMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvdHJhY2VzLmgKKysr IGIvZHJpdmVycy9zdGFnaW5nL3dmeC90cmFjZXMuaApAQCAtMzc4LDcgKzM3OCw3IEBAIFRSQUNF X0VWRU5UKHR4X3N0YXRzLAogCQlfX2FycmF5KGludCwgdHhfY291bnQsIDQpCiAJKSwKIAlUUF9m YXN0X2Fzc2lnbigKLQkJLy8gS2VlcCBzeW5jIHdpdGggd2Z4X3JhdGVzIGRlZmluaXRpb24gaW4g bWFpbi5jCisJCS8qIEtlZXAgc3luYyB3aXRoIHdmeF9yYXRlcyBkZWZpbml0aW9uIGluIG1haW4u YyAqLwogCQlzdGF0aWMgY29uc3QgaW50IGh3X3JhdGVbXSA9IHsgMCwgMSwgMiwgMywgNiwgNywg OCwgOSwKIAkJCQkJICAgICAgIDEwLCAxMSwgMTIsIDEzIH07CiAJCWNvbnN0IHN0cnVjdCBpZWVl ODAyMTFfdHhfaW5mbyAqdHhfaW5mbyA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4 L3dmeC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaAppbmRleCA1NjM3ZjlhZjc5YzAuLmE0 NzcwZjU5ZjdkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaAorKysgYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSAicXVl dWUuaCIKICNpbmNsdWRlICJoaWZfdHguaCIKIAotI2RlZmluZSBVU0VDX1BFUl9UWE9QIDMyIC8v IHNlZSBzdHJ1Y3QgaWVlZTgwMjExX3R4X3F1ZXVlX3BhcmFtcworI2RlZmluZSBVU0VDX1BFUl9U WE9QIDMyIC8qIHNlZSBzdHJ1Y3QgaWVlZTgwMjExX3R4X3F1ZXVlX3BhcmFtcyAqLwogI2RlZmlu ZSBVU0VDX1BFUl9UVSAxMDI0CiAKIHN0cnVjdCBod2J1c19vcHM7Ci0tIAoyLjMzLjAKCg==