Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp168866pxb; Thu, 13 Jan 2022 04:26:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJxRe/5rGrO5P2GnSbAmw43W/uNRmaYxaLCMZCS/Tf6s6thqs11LFPwOEnM2FRFlR+9GKpf1 X-Received: by 2002:a17:902:f550:b0:14a:87f6:30bd with SMTP id h16-20020a170902f55000b0014a87f630bdmr406116plf.52.1642076763382; Thu, 13 Jan 2022 04:26:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1642076763; cv=pass; d=google.com; s=arc-20160816; b=w1DK17jYb/7QaQfEd2KqHh2u0XAL72nGlWf2dWW40T9ajl3Ad40b4VlmK0BVpnwoqK P7qDGHkF3OgXIdmwhswHMhUS/zBc9bh8wQzZgiuO/oFLFKWDPKraOOImNxbF05WTl79m Xiqfq/dcuW4JVupkGuTfn015MIdneraIxuahz5d1nRj5fJ8/1KNF6pmgOZhctlyiI8Z8 ipouoZVTcB76h72wYTCdNGw/RAxRn+/fqk7xfxoQziGs4KrKYz7Eh0nalJ7byahbiCLc LKiLtLEDV5qdPO0+lPjtBgeFmOzLU1GxRAq6JKKTvLstb9+gcWlL3QAIZxCCUm1wCscL QYIQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=PJFGAXUSKQ6VnacN19l4jg/RG2DR7GhGcU0SNdtk25o=; b=SmYDIUKxG0JbJS+T1IntCMHtSULd4cXzpwo/sntiwZGNcJLHEx6S1kB5FL8sD//ie5 dRf/PAK23qtGKhvqU4Pybi008PzuudXtyHsEwoEaSrCFn86knowzRHkP8UfJX5jd5eSP QoEyKVIMZK2L75CVDP0lp4DV8oRwYGLq+AjYA6KLsyiVWAgUvD3z5Qv3XJxq0qsbSH10 CaTFY4YmrsCASiLBbKd4E10Qdp6cfUvhY4FrmwNhhERmr6ve3nCutvaS1g4PTvYFjLhP uKKjxgq35Ot4pK7hbhF4i06Na4s7h1s6YyoFDqdU2U1J3wIBJ8RD3I+2qgnjH4078mCd UgJg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=nfEdVW7B; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o5si2485443pll.238.2022.01.13.04.25.54; Thu, 13 Jan 2022 04:26:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=nfEdVW7B; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232362AbiAMI4s (ORCPT + 71 others); Thu, 13 Jan 2022 03:56:48 -0500 Received: from mail-dm6nam11on2085.outbound.protection.outlook.com ([40.107.223.85]:34208 "EHLO NAM11-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232119AbiAMI4a (ORCPT ); Thu, 13 Jan 2022 03:56:30 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XV3M+ql9PCYNDsC6amPKPKPObAntNNYkg4HZ4OAvaf+QoT72Q0/IzM1hfrv0EbqeLi/VE7zAu7jXy+jf7TabOrUz+Cu6IB9/9iKhvebJBvcspRgB2/3Lb2BjUobleUrV1JArgvoQVS61aBSBT/0qQadxA1ZrssHTvXyUfI5Q8qJbN24pgBkVBevaggohipYQyfMKa+Z1IGpH3Ll/fwcBwwk8xM/uVaqRCdmhHuV4L+e5+l3lM03LcuXlAHjzhBbaZWWLbjuKeMp+IftyJ5ZLvkzj4h2MRHEuaOtHADSudKRKdyNVGK3OmYK1dQxLeqXL8So8yYUDl4zytAfpch6kBg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PJFGAXUSKQ6VnacN19l4jg/RG2DR7GhGcU0SNdtk25o=; b=BHgCsD+7Cpnp1im+IHbJQ4rYNl81zJQGEA6RC+5WhiODM79xgI/eBTKF4slZt8n5bfneIpXKjPac/6jHLsTD0FfZQ2LE5R64Og9tWZdCE/JR9qSClBroJk0tFed+aqJrjtGV0wpvN7vPEmUrt6lb5F8p8s/4GFvhDnwoGj2P9/lW6simgtvC02902xVgRrVkK+f23uHXOg6tpQP+1NFqcsMPQ2nYmhQOA+fHKwbtlNZllWy+XFfXQaHekuxiJAcYvr+GK6rzV7YWKlAvY+K7JFPrzoHG3WOaE522o/vcl7ZhSnN7IWg0TOUFIrNwOd5PnkLxrxwx4eL1CdGKNh0aEA== 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=PJFGAXUSKQ6VnacN19l4jg/RG2DR7GhGcU0SNdtk25o=; b=nfEdVW7B9W9jf/1pDEbTtHAr05MCO5R32YCxAzSYQe0toLSzHnfRkEGz0yHBTVt7pfQDJwVKR4ou/wIezyF5+PNjbywRmsBJ9ixReAdhGWdx0MVvN2Y2zL5UjT0TYAhK5T7350vwP8q8aIopVJrnuhMmMbOvv6IeLrTMI9hPlmY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=silabs.com; Received: from PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) by CY4PR1101MB2071.namprd11.prod.outlook.com (2603:10b6:910:1a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.9; Thu, 13 Jan 2022 08:56:13 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4%5]) with mapi id 15.20.4888.011; Thu, 13 Jan 2022 08:56:13 +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 18/31] staging: wfx: prefix structs hif_* with wfx_ Date: Thu, 13 Jan 2022 09:55:11 +0100 Message-Id: <20220113085524.1110708-19-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> References: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: SA0PR11CA0117.namprd11.prod.outlook.com (2603:10b6:806:d1::32) To PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 349a081d-3224-4eae-d0ad-08d9d6728d19 X-MS-TrafficTypeDiagnostic: CY4PR1101MB2071:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:113; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0odCqEvn2vZrAnstHWDBlsIrfm/87RCakxSq6uDzXFvAmED5dbUSQc0iGoZILplbMzzJh+InUJNUtFA8OOBS9hXdFY/ne8bCfdGS2tB1okNZMY1iuCBz/k8SjUACfjsnVR4riegPWzuiAWIROoDqzIlVIDgc8CeZ9MMdgQ/ZmhtZpGlodZX0EdeRK5jSEc+0H51oserG+mLHW2kpyCTQxJRld8JG6hR/RKkpsXAKrU7Rydnhtok8u4OCQ4Rm4WR7+dwjNQu5Elqp51xRUVmgAt0WMS7oRKIyvF9KNqM0yfeE4MEbr7aM+mRSiBaulpVZPEN8jW6wevCpcKa6w+uBVYK1s+cIEXAqTmkjKpbNATEHo0a/6Z/dcwjorfRVaDYY9CDpYBvP/AaM7l9uqLiCMhW0Ju+Wx7GVr6o92U0AgsVW5X0C5u451avU/wt+2KM7DZQdKnQVrgx9qaaSs/CEUtty2IZ3u66JqtYPBSsSgVtYbnoU14sIwzT3rFy0mO0M8qZcdAirXP0BrG8EXsFK98vUM6u+qrg/xB8HsjFgxV0m4qy3v9F9wq0p52icMpPeYyHbP0i4SoRvwLEeEsJ2ja+EPXdZZSzGSmbmo2iMChe+yHQ5uGIJlb3/KYvjZqfAD1Rkk5QNwiVrR8S+wPh1kA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(2616005)(66476007)(52116002)(8676002)(6486002)(4326008)(66574015)(38100700002)(8936002)(83380400001)(6506007)(107886003)(66556008)(36756003)(508600001)(2906002)(30864003)(5660300002)(6512007)(1076003)(86362001)(186003)(316002)(66946007)(54906003)(559001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WEdFUTZWcllRYVdaN2dHNS9kbVIxdzBKNXVGcVdxSC92emMrNWpkUE85Smdp?= =?utf-8?B?UXZKdHlPNlQ0MGNZUEp5TDNrRkd5YkxPVE5rdG5JaHR5OGYzdy9ZNDVjSHEw?= =?utf-8?B?aDJtdmhtQjZMdm10c0ZwKy95a0Zsd3l4b2RFdmNBV0piR3FhKzIrOGJ1RUgw?= =?utf-8?B?UEdwb0J3ejEzdnNKaDVMYXU0VGkwUTNnZW5vV2JRUDZuQUtLWXJXQnRMay9B?= =?utf-8?B?MjY5WFRGVTg5SVdJalJ2TWEwV3drc3AwUm9aRDlPUVZlY29za0RWRFNYVlMw?= =?utf-8?B?N1JkNkNtbUIxakRoaUVXSjRqVm5jcWJoa2Z0RXBYNVZrUVAwUEdrelBxWkhO?= =?utf-8?B?dEw1VERWY3J1VVBZbTY0bGlpSW9lU1c2cHRVL1RzTVIzSGxkU29VMXVxVEkr?= =?utf-8?B?OUErR3M1bFVERlFLa2NIWitiMEZnVzZkQk9YY3BQUHhNRlFJVzVRRXVYbEdE?= =?utf-8?B?cHVSSlVObVBVdGhVUUpqTUdwY3F6ck1ybUZMTDRDRmZ2aHFCOU41UkVyb0cy?= =?utf-8?B?YWk4d0RaVW82ZVZJcksrSUgxNlZlN3VBMkJZcnBoSXhpSHVkQVRWQkxFWm1m?= =?utf-8?B?d2NDeDVHVkR1WmN0WmVvQXRkVVc3Ujg1WjVRTDkwSlNNL1JadCsySmp3Zlc3?= =?utf-8?B?M1BiTzIrSWY0T0owWS95Z1MrR1k2M1N6QU1seGtUd3pMRWtFcGRBbUgrR0pP?= =?utf-8?B?YjA4VHBPQkNrWkJaMmFXYVVWWHlmcUZJWHFOUGR1UlYyZldETkFjN2RTU2Ro?= =?utf-8?B?TVBSQmxzRDAyWjBZMHZ4RUUzd211QjlrYkdwNkEzeXE5NEJaVDFsMnk0eXBw?= =?utf-8?B?SS8xbU9Ka1R2bmRJWTJQdThMZ1J0YjQxU0pZakx6eGFCaUM4V2FtOU53VzJC?= =?utf-8?B?UmxUZVpWSUEyRzVoank1cmFBekJ6MGV6d0FsMTIxTzg2VU1nREZpSkdUdUIr?= =?utf-8?B?RnBQZE52YVVXZGNBMHdsdWNLUENWNStVYzVNRmh1bThHNkZiY1lhTjFKOWxr?= =?utf-8?B?eWMwUnR4TFFvTDVrSkpCdGZZalJacTBqL3EvWVc2bGR6QTRSU3A1TXovV2dV?= =?utf-8?B?dytzdXJNT1c5VWM2aXMvQzhUQzgzcENDTXMrekhvVW04aGxtS0IzbkRxQXM1?= =?utf-8?B?aHJya280NjJNZTBoTXhpSEZpUHNuSjhZaDVibzVwSFcyMTR1ZDNyYk5vUGs2?= =?utf-8?B?dUFwQVJZK1pnMXI5UnRUQjd5ZUIyV20yVWdqSXMvRnNLK2JUb3VRMkdFSGIy?= =?utf-8?B?SWx2V3F5VFZzQi9GVmFmaWVUREg3emorbGZoeXFMaG9nVURDdjR6ckoyRnB1?= =?utf-8?B?RkxYYVdWSlplWVNaVW0rQzNqeFBiM3p1aGM5b2U5bVpjV3dreE1UNWF3bndW?= =?utf-8?B?V0JsNVZvMU9ENTBnMmtXQ2h1SHNoNCtNd01wQUZtY2RsNWdKUGlhL05MNklt?= =?utf-8?B?bzY1WGRPWjBtQVRuejFTOTNENWNpd2hjMlkveTVlOUVMcWRLVU9tU2lJQmxR?= =?utf-8?B?dy8rYjVJampNVmpKd3NCeVYrNXhqOTNQU3hnZEFmY2dJMU1paGNPOEpiUlVT?= =?utf-8?B?Ly94a3ptR3kyYnV1dVJDVzM0ZU5JMmRHcS9udU4rVGkyRnNNajIvbisrQU90?= =?utf-8?B?dFRTMFFLOXVjVldEZDFMTVIxd2ZadXBVa05wZ1AyV3M3b3E2OWhBYjdleVFs?= =?utf-8?B?YlcrSkNpWkJUTlpRUDNySWpIb05rQjdzVFZ2emNuRmZsOUV3L3hDSG5TSkk0?= =?utf-8?B?QlJvZmZ5U0cxU3lOZTR2d2NHbDZnRDk1MWsyb2pDWTBBempQTVZPM3g3dXlu?= =?utf-8?B?WVlsTUtrYWN0WXN0UHQ4UUZ4VWhqTVVJYSsrQlIzR0pqRDRlTkpLWWdXUVJl?= =?utf-8?B?ZWtOSit4UGR3ejh3dlZVdXNidUJ0KzJRQUdKRW1SZ2JOVkloVitNWmhNajhK?= =?utf-8?B?VWZIK1dtV0J3Q1BuZVluVmg0ZHhDa2REZVhDWU93Z2NMOURpWjN5cXNzYnpj?= =?utf-8?B?ckh3V3MrT1U2UWcwSlpmTnpSenhmTExIY21vbFRGSnpsQTVPRklGa3htY202?= =?utf-8?B?OXM2aDAyOXpabjlCM24rRDZKcEdPNGlIcmtrckhsMlVrSjBTdlBSQnNXWGFX?= =?utf-8?B?K0NVQUdobVRtS3NmRXVzbFRXOFNmREVaSUtRL0xYeW04bkg0d29oaktYVm5X?= =?utf-8?B?QzUwWEUxc0Q1Q1BWYnZhVnlaK0ljOWl6dEJwRXRNUDFhK2QzcWxnRkFKbU1y?= =?utf-8?Q?wxfVg2WROQ11GEE/TN7LuoOJMZnkr93yLZzVLw+azQ=3D?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 349a081d-3224-4eae-d0ad-08d9d6728d19 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 08:56:13.6217 (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: j/02OVKS77tCg9E/vCPEPFVBmxqQG86LzfVm0obf3pJX+SBUthX3LOAsdNYg068fSuPx4m+1nNab5GrWvJ+gJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1101MB2071 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKQWxs IHRoZSB0eXBlcyByZWxhdGVkIHRvIGEgZHJpdmVyIHNob3VsZCB1c2UgdGhlIHNhbWUgcHJlZml4 LgoKU2lnbmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxh YnMuY29tPgotLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvYmguYyAgICAgICAgICAgICAgfCAgMTIg Ky0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYyAgICAgICAgIHwgICAyICstCiBkcml2 ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguaCAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL3N0YWdp bmcvd2Z4L2RhdGFfdHguYyAgICAgICAgIHwgIDMwICsrKy0tLQogZHJpdmVycy9zdGFnaW5nL3dm eC9kYXRhX3R4LmggICAgICAgICB8ICAgOCArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5j ICAgICAgICAgICB8ICAxMCArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfYXBpX2NtZC5oICAg ICB8IDE0MiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9zdGFnaW5nL3dmeC9o aWZfYXBpX2dlbmVyYWwuaCB8ICA0NCArKysrLS0tLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf YXBpX21pYi5oICAgICB8ICA2NiArKysrKystLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaGlm X3J4LmMgICAgICAgICAgfCAgNTcgKysrKysrLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaGlm X3R4LmMgICAgICAgICAgfCAgOTUgKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93 ZngvaGlmX3R4LmggICAgICAgICAgfCAgMjAgKystLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf dHhfbWliLmMgICAgICB8ICA1NCArKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90 eF9taWIuaCAgICAgIHwgIDEwICstCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2tleS5jICAgICAgICAg ICAgIHwgIDIwICsrLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jICAgICAgICAgICAgfCAg IDQgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuYyAgICAgICAgICAgfCAgMjIgKystLQog ZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5oICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9z dGFnaW5nL3dmeC9zdGEuYyAgICAgICAgICAgICB8ICAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dm eC90cmFjZXMuaCAgICAgICAgICB8ICAxMCArLQogZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaCAg ICAgICAgICAgICB8ICAgNiArLQogMjEgZmlsZXMgY2hhbmdlZCwgMzExIGluc2VydGlvbnMoKyks IDMwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMg Yi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMKaW5kZXggYjdmYTBhZWFmZDc4Li44NzJmMzI5OGRj ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYworKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2JoLmMKQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGV2aWNlX3JlbGVh c2Uoc3RydWN0IHdmeF9kZXYgKndkZXYpCiBzdGF0aWMgaW50IHJ4X2hlbHBlcihzdHJ1Y3Qgd2Z4 X2RldiAqd2Rldiwgc2l6ZV90IHJlYWRfbGVuLCBpbnQgKmlzX2NuZikKIHsKIAlzdHJ1Y3Qgc2tf YnVmZiAqc2tiOwotCXN0cnVjdCBoaWZfbXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfbXNnICpo aWY7CiAJc2l6ZV90IGFsbG9jX2xlbjsKIAlzaXplX3QgY29tcHV0ZWRfbGVuOwogCWludCByZWxl YXNlX2NvdW50OwpAQCAtODgsOSArODgsOSBAQCBzdGF0aWMgaW50IHJ4X2hlbHBlcihzdHJ1Y3Qg d2Z4X2RldiAqd2Rldiwgc2l6ZV90IHJlYWRfbGVuLCBpbnQgKmlzX2NuZikKIAlwaWdneWJhY2sg PSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKShza2ItPmRhdGEgKyBhbGxvY19sZW4gLSAyKSk7CiAJ X3RyYWNlX3BpZ2d5YmFjayhwaWdneWJhY2ssIGZhbHNlKTsKIAotCWhpZiA9IChzdHJ1Y3QgaGlm X21zZyAqKXNrYi0+ZGF0YTsKKwloaWYgPSAoc3RydWN0IHdmeF9oaWZfbXNnICopc2tiLT5kYXRh OwogCVdBUk4oaGlmLT5lbmNyeXB0ZWQgJiAweDMsICJlbmNyeXB0aW9uIGlzIHVuc3VwcG9ydGVk Iik7Ci0JaWYgKFdBUk4ocmVhZF9sZW4gPCBzaXplb2Yoc3RydWN0IGhpZl9tc2cpLCAiY29ycnVw dGVkIHJlYWQiKSkKKwlpZiAoV0FSTihyZWFkX2xlbiA8IHNpemVvZihzdHJ1Y3Qgd2Z4X2hpZl9t c2cpLCAiY29ycnVwdGVkIHJlYWQiKSkKIAkJZ290byBlcnI7CiAJY29tcHV0ZWRfbGVuID0gbGUx Nl90b19jcHUoaGlmLT5sZW4pOwogCWNvbXB1dGVkX2xlbiA9IHJvdW5kX3VwKGNvbXB1dGVkX2xl biwgMik7CkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIGludCByeF9oZWxwZXIoc3RydWN0IHdm eF9kZXYgKndkZXYsIHNpemVfdCByZWFkX2xlbiwgaW50ICppc19jbmYpCiAJaWYgKCEoaGlmLT5p ZCAmIEhJRl9JRF9JU19JTkRJQ0FUSU9OKSkgewogCQkoKmlzX2NuZikrKzsKIAkJaWYgKGhpZi0+ aWQgPT0gSElGX0NORl9JRF9NVUxUSV9UUkFOU01JVCkKLQkJCXJlbGVhc2VfY291bnQgPSAoKHN0 cnVjdCBoaWZfY25mX211bHRpX3RyYW5zbWl0ICopaGlmLT5ib2R5KS0+bnVtX3R4X2NvbmZzOwor CQkJcmVsZWFzZV9jb3VudCA9ICgoc3RydWN0IHdmeF9oaWZfY25mX211bHRpX3RyYW5zbWl0ICop aGlmLT5ib2R5KS0+bnVtX3R4X2NvbmZzOwogCQllbHNlCiAJCQlyZWxlYXNlX2NvdW50ID0gMTsK IAkJV0FSTih3ZGV2LT5oaWYudHhfYnVmZmVyc191c2VkIDwgcmVsZWFzZV9jb3VudCwgImNvcnJ1 cHRlZCBidWZmZXIgY291bnRlciIpOwpAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyBpbnQgYmhf d29ya19yeChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IG1heF9tc2csIGludCAqbnVtX2NuZikK IAlyZXR1cm4gaTsKIH0KIAotc3RhdGljIHZvaWQgdHhfaGVscGVyKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LCBzdHJ1Y3QgaGlmX21zZyAqaGlmKQorc3RhdGljIHZvaWQgdHhfaGVscGVyKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZikKIHsKIAlpbnQgcmV0OwogCXZv aWQgKmRhdGE7CkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHZvaWQgdHhfaGVscGVyKHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3QgaGlmX21zZyAqaGlmKQogCiBzdGF0aWMgaW50IGJoX3dv cmtfdHgoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBtYXhfbXNnKQogewotCXN0cnVjdCBoaWZf bXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CiAJaW50IGk7CiAKIAlmb3IgKGkg PSAwOyBpIDwgbWF4X21zZzsgaSsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4 L2RhdGFfcnguYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV9yeC5jCmluZGV4IGJmYzM5NjFi N2I4OS4uM2ZlNjdjNDgxNWU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFf cnguYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYwpAQCAtMzUsNyArMzUsNyBA QCBzdGF0aWMgdm9pZCB3ZnhfcnhfaGFuZGxlX2JhKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1 Y3QgaWVlZTgwMjExX21nbXQgKm1nbXQpCiB9CiAKIHZvaWQgd2Z4X3J4X2NiKHN0cnVjdCB3Znhf dmlmICp3dmlmLAotCSAgICAgICBjb25zdCBzdHJ1Y3QgaGlmX2luZF9yeCAqYXJnLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQorCSAgICAgICBjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9pbmRfcnggKmFyZywg c3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExX3J4X3N0YXR1cyAqaGRy ID0gSUVFRTgwMjExX1NLQl9SWENCKHNrYik7CiAJc3RydWN0IGllZWU4MDIxMV9oZHIgKmZyYW1l ID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyICopc2tiLT5kYXRhOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL3dmeC9kYXRhX3J4LmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguaApp bmRleCA4NGQwZTNjMDUwN2IuLjdkNzdjZGJiYzMxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL3dmeC9kYXRhX3J4LmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3J4LmgKQEAg LTEwLDkgKzEwLDkgQEAKIAogc3RydWN0IHdmeF92aWY7CiBzdHJ1Y3Qgc2tfYnVmZjsKLXN0cnVj dCBoaWZfaW5kX3J4Oworc3RydWN0IHdmeF9oaWZfaW5kX3J4OwogCiB2b2lkIHdmeF9yeF9jYihz dHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKLQkgICAgICAgY29uc3Qgc3RydWN0IGhpZl9pbmRfcnggKmFy Zywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CisJICAgICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX2lu ZF9yeCAqYXJnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90 eC5jCmluZGV4IGMzZWZiY2RjYzhjMy4uYzAwNGY0NTViYjQ3IDEwMDY0NAotLS0gYS9kcml2ZXJz L3N0YWdpbmcvd2Z4L2RhdGFfdHguYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHgu YwpAQCAtMzI5LDE2ICszMjksMTYgQEAgc3RhdGljIGludCB3ZnhfdHhfZ2V0X2ljdl9sZW4oc3Ry dWN0IGllZWU4MDIxMV9rZXlfY29uZiAqaHdfa2V5KQogc3RhdGljIGludCB3ZnhfdHhfaW5uZXIo c3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsCiAJCQlzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogewotCXN0cnVjdCBoaWZfbXNnICpoaWZfbXNnOwotCXN0cnVjdCBo aWZfcmVxX3R4ICpyZXE7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWZfbXNnOworCXN0cnVjdCB3 ZnhfaGlmX3JlcV90eCAqcmVxOwogCXN0cnVjdCB3ZnhfdHhfcHJpdiAqdHhfcHJpdjsKIAlzdHJ1 Y3QgaWVlZTgwMjExX3R4X2luZm8gKnR4X2luZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7CiAJ c3RydWN0IGllZWU4MDIxMV9rZXlfY29uZiAqaHdfa2V5ID0gdHhfaW5mby0+Y29udHJvbC5od19r ZXk7CiAJc3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9IChzdHJ1Y3QgaWVlZTgwMjExX2hkciAq KXNrYi0+ZGF0YTsKIAlpbnQgcXVldWVfaWQgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTsK IAlzaXplX3Qgb2Zmc2V0ID0gKHNpemVfdClza2ItPmRhdGEgJiAzOwotCWludCB3bXNnX2xlbiA9 IHNpemVvZihzdHJ1Y3QgaGlmX21zZykgKwotCQkJc2l6ZW9mKHN0cnVjdCBoaWZfcmVxX3R4KSAr IG9mZnNldDsKKwlpbnQgd21zZ19sZW4gPSBzaXplb2Yoc3RydWN0IHdmeF9oaWZfbXNnKSArCisJ CQlzaXplb2Yoc3RydWN0IHdmeF9oaWZfcmVxX3R4KSArIG9mZnNldDsKIAogCVdBUk4ocXVldWVf aWQgPj0gSUVFRTgwMjExX05VTV9BQ1MsICJ1bnN1cHBvcnRlZCBxdWV1ZV9pZCIpOwogCXdmeF90 eF9maXh1cF9yYXRlcyh0eF9pbmZvLT5kcml2ZXJfcmF0ZXMpOwpAQCAtMzU1LDcgKzM1NSw3IEBA IHN0YXRpYyBpbnQgd2Z4X3R4X2lubmVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgaWVl ZTgwMjExX3N0YSAqc3RhLAogCXNrYl9wdXQoc2tiLCB0eF9wcml2LT5pY3Zfc2l6ZSk7CiAJc2ti X3B1c2goc2tiLCB3bXNnX2xlbik7CiAJbWVtc2V0KHNrYi0+ZGF0YSwgMCwgd21zZ19sZW4pOwot CWhpZl9tc2cgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7CisJaGlmX21zZyA9IChzdHJ1 Y3Qgd2Z4X2hpZl9tc2cgKilza2ItPmRhdGE7CiAJaGlmX21zZy0+bGVuID0gY3B1X3RvX2xlMTYo c2tiLT5sZW4pOwogCWhpZl9tc2ctPmlkID0gSElGX1JFUV9JRF9UWDsKIAloaWZfbXNnLT5pbnRl cmZhY2UgPSB3dmlmLT5pZDsKQEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0aWMgaW50IHdmeF90eF9p bm5lcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwKIAl9 CiAKIAkvKiBGaWxsIHR4IHJlcXVlc3QgKi8KLQlyZXEgPSAoc3RydWN0IGhpZl9yZXFfdHggKilo aWZfbXNnLT5ib2R5OworCXJlcSA9IChzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdHggKiloaWZfbXNnLT5i b2R5OwogCS8qIHBhY2tldF9pZCBqdXN0IG5lZWQgdG8gYmUgdW5pcXVlIG9uIGRldmljZS4gMzJi aXRzIGFyZSBtb3JlIHRoYW4KIAkgKiBuZWNlc3NhcnkgZm9yIHRoYXQgdGFzaywgc28gd2UgdGFl IGFkdmFudGFnZSBvZiBpdCB0byBhZGQgc29tZSBleHRyYQogCSAqIGRhdGEgZm9yIGRlYnVnLgpA QCAtNDM1LDEwICs0MzUsMTAgQEAgdm9pZCB3ZnhfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcs IHN0cnVjdCBpZWVlODAyMTFfdHhfY29udHJvbCAqY29udHJvbCwKIAogc3RhdGljIHZvaWQgd2Z4 X3NrYl9kdG9yKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewot CXN0cnVjdCBoaWZfbXNnICpoaWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7Ci0Jc3Ry dWN0IGhpZl9yZXFfdHggKnJlcSA9IChzdHJ1Y3QgaGlmX3JlcV90eCAqKWhpZi0+Ym9keTsKLQl1 bnNpZ25lZCBpbnQgb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBoaWZfbXNnKSArCi0JCQkgICAgICBz aXplb2Yoc3RydWN0IGhpZl9yZXFfdHgpICsKKwlzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiA9IChz dHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0YTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdHggKnJlcSA9 IChzdHJ1Y3QgaGlmX3JlcV90eCAqKWhpZi0+Ym9keTsKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0ID0g c2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX21zZykgKworCQkJICAgICAgc2l6ZW9mKHN0cnVjdCB3Znhf aGlmX3JlcV90eCkgKwogCQkJICAgICAgcmVxLT5mY19vZmZzZXQ7CiAKIAlpZiAoIXd2aWYpIHsK QEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCB3Znhfc2tiX2R0b3Ioc3RydWN0IHdmeF92 aWYgKnd2aWYsIHN0cnVjdCBza19idWZmICpza2IpCiAKIHN0YXRpYyB2b2lkIHdmeF90eF9maWxs X3JhdGVzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAogCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV90 eF9pbmZvICp0eF9pbmZvLAotCQkJICAgICAgY29uc3Qgc3RydWN0IGhpZl9jbmZfdHggKmFyZykK KwkJCSAgICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX2NuZl90eCAqYXJnKQogewogCXN0cnVjdCBp ZWVlODAyMTFfdHhfcmF0ZSAqcmF0ZTsKIAlpbnQgdHhfY291bnQ7CkBAIC00ODgsNyArNDg4LDcg QEAgc3RhdGljIHZvaWQgd2Z4X3R4X2ZpbGxfcmF0ZXMoc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJ CWRldl9kYmcod2Rldi0+ZGV2LCAiJWQgbW9yZSByZXRyaWVzIHRoYW4gZXhwZWN0ZWRcbiIsIHR4 X2NvdW50KTsKIH0KIAotdm9pZCB3ZnhfdHhfY29uZmlybV9jYihzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwgY29uc3Qgc3RydWN0IGhpZl9jbmZfdHggKmFyZykKK3ZvaWQgd2Z4X3R4X2NvbmZpcm1fY2Io c3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX2NuZl90eCAqYXJnKQog ewogCWNvbnN0IHN0cnVjdCB3ZnhfdHhfcHJpdiAqdHhfcHJpdjsKIAlzdHJ1Y3QgaWVlZTgwMjEx X3R4X2luZm8gKnR4X2luZm87CkBAIC01MDMsNyArNTAzLDcgQEAgdm9pZCB3ZnhfdHhfY29uZmly bV9jYihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgc3RydWN0IGhpZl9jbmZfdHggKmFyZykK IAl9CiAJdHhfaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTsKIAl0eF9wcml2ID0gd2Z4X3Nr Yl90eF9wcml2KHNrYik7Ci0Jd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2LCAoKHN0cnVjdCBoaWZf bXNnICopc2tiLT5kYXRhKS0+aW50ZXJmYWNlKTsKKwl3dmlmID0gd2Rldl90b193dmlmKHdkZXYs ICgoc3RydWN0IHdmeF9oaWZfbXNnICopc2tiLT5kYXRhKS0+aW50ZXJmYWNlKTsKIAlXQVJOX09O KCF3dmlmKTsKIAlpZiAoIXd2aWYpCiAJCXJldHVybjsKQEAgLTU3Miw3ICs1NzIsNyBAQCB2b2lk IHdmeF9mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYg KnZpZiwKIAlzdHJ1Y3Qgd2Z4X2RldiAqd2RldiA9IGh3LT5wcml2OwogCXN0cnVjdCBza19idWZm X2hlYWQgZHJvcHBlZDsKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZjsKLQlzdHJ1Y3QgaGlmX21zZyAq aGlmOworCXN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmOwogCXN0cnVjdCBza19idWZmICpza2I7CiAK IAlza2JfcXVldWVfaGVhZF9pbml0KCZkcm9wcGVkKTsKQEAgLTU4OCw3ICs1ODgsNyBAQCB2b2lk IHdmeF9mbHVzaChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYg KnZpZiwKIAlpZiAod2Rldi0+Y2hpcF9mcm96ZW4pCiAJCXdmeF9wZW5kaW5nX2Ryb3Aod2Rldiwg JmRyb3BwZWQpOwogCXdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoJmRyb3BwZWQpKSAhPSBOVUxM KSB7Ci0JCWhpZiA9IChzdHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0YTsKKwkJaGlmID0gKHN0cnVj dCB3ZnhfaGlmX21zZyAqKXNrYi0+ZGF0YTsKIAkJd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2LCBo aWYtPmludGVyZmFjZSk7CiAJCWllZWU4MDIxMV90eF9pbmZvX2NsZWFyX3N0YXR1cyhJRUVFODAy MTFfU0tCX0NCKHNrYikpOwogCQl3Znhfc2tiX2R0b3Iod3ZpZiwgc2tiKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRh X3R4LmgKaW5kZXggMTU1OTBhOGZhZWZlLi5jOTAxYTAzZWU0ZDggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3RhZ2luZy93ZngvZGF0YV90eC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90 eC5oCkBAIC00Myw3ICs0Myw3IEBAIHZvaWQgd2Z4X3R4X3BvbGljeV91cGxvYWRfd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogCiB2b2lkIHdmeF90eChzdHJ1Y3QgaWVlZTgwMjExX2h3 ICpodywgc3RydWN0IGllZWU4MDIxMV90eF9jb250cm9sICpjb250cm9sLAogCSAgICBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKTsKLXZvaWQgd2Z4X3R4X2NvbmZpcm1fY2Ioc3RydWN0IHdmeF9kZXYgKndk ZXYsIGNvbnN0IHN0cnVjdCBoaWZfY25mX3R4ICphcmcpOwordm9pZCB3ZnhfdHhfY29uZmlybV9j YihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgc3RydWN0IHdmeF9oaWZfY25mX3R4ICphcmcp Owogdm9pZCB3ZnhfZmx1c2goc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAy MTFfdmlmICp2aWYsCiAJICAgICAgIHUzMiBxdWV1ZXMsIGJvb2wgZHJvcCk7CiAKQEAgLTU3LDEw ICs1NywxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCB3ZnhfdHhfcHJpdiAqd2Z4X3NrYl90eF9w cml2KHN0cnVjdCBza19idWZmICpza2IpCiAJcmV0dXJuIChzdHJ1Y3Qgd2Z4X3R4X3ByaXYgKil0 eF9pbmZvLT5yYXRlX2RyaXZlcl9kYXRhOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBoaWZf cmVxX3R4ICp3Znhfc2tiX3R4cmVxKHN0cnVjdCBza19idWZmICpza2IpCitzdGF0aWMgaW5saW5l IHN0cnVjdCB3ZnhfaGlmX3JlcV90eCAqd2Z4X3NrYl90eHJlcShzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogewotCXN0cnVjdCBoaWZfbXNnICpoaWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7 Ci0Jc3RydWN0IGhpZl9yZXFfdHggKnJlcSA9IChzdHJ1Y3QgaGlmX3JlcV90eCAqKWhpZi0+Ym9k eTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiA9IChzdHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0 YTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdHggKnJlcSA9IChzdHJ1Y3QgaGlmX3JlcV90eCAqKWhp Zi0+Ym9keTsKIAogCXJldHVybiByZXE7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv d2Z4L2RlYnVnLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVnLmMKaW5kZXggOTMyNDI0OGIx ZDIwLi5mMDc5NmViMmFmZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZGVidWcu YworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVnLmMKQEAgLTYzLDcgKzYzLDcgQEAgc3Rh dGljIGludCB3ZnhfY291bnRlcnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdikK IHsKIAlpbnQgcmV0LCBpOwogCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gc2VxLT5wcml2YXRlOwot CXN0cnVjdCBoaWZfbWliX2V4dGVuZGVkX2NvdW50X3RhYmxlIGNvdW50ZXJzWzNdOworCXN0cnVj dCB3ZnhfaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZSBjb3VudGVyc1szXTsKIAogCWZvciAo aSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNvdW50ZXJzKTsgaSsrKSB7CiAJCXJldCA9IHdmeF9oaWZf Z2V0X2NvdW50ZXJzX3RhYmxlKHdkZXYsIGksIGNvdW50ZXJzICsgaSk7CkBAIC0xNTMsNyArMTUz LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjaGFubmVsX25hbWVzW10gPSB7CiBzdGF0 aWMgaW50IHdmeF9yeF9zdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQog ewogCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gc2VxLT5wcml2YXRlOwotCXN0cnVjdCBoaWZfcnhf c3RhdHMgKnN0ID0gJndkZXYtPnJ4X3N0YXRzOworCXN0cnVjdCB3ZnhfaGlmX3J4X3N0YXRzICpz dCA9ICZ3ZGV2LT5yeF9zdGF0czsKIAlpbnQgaTsKIAogCW11dGV4X2xvY2soJndkZXYtPnJ4X3N0 YXRzX2xvY2spOwpAQCAtMTg1LDcgKzE4NSw3IEBAIERFRklORV9TSE9XX0FUVFJJQlVURSh3Znhf cnhfc3RhdHMpOwogc3RhdGljIGludCB3ZnhfdHhfcG93ZXJfbG9vcF9zaG93KHN0cnVjdCBzZXFf ZmlsZSAqc2VxLCB2b2lkICp2KQogewogCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gc2VxLT5wcml2 YXRlOwotCXN0cnVjdCBoaWZfdHhfcG93ZXJfbG9vcF9pbmZvICpzdCA9ICZ3ZGV2LT50eF9wb3dl cl9sb29wX2luZm87CisJc3RydWN0IHdmeF9oaWZfdHhfcG93ZXJfbG9vcF9pbmZvICpzdCA9ICZ3 ZGV2LT50eF9wb3dlcl9sb29wX2luZm87CiAJaW50IHRtcDsKIAogCW11dGV4X2xvY2soJndkZXYt PnR4X3Bvd2VyX2xvb3BfaW5mb19sb2NrKTsKQEAgLTI0NywxMyArMjQ3LDEzIEBAIHN0YXRpYyBz c2l6ZV90IHdmeF9zZW5kX2hpZl9tc2dfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCiB7CiAJc3Ry dWN0IGRiZ2ZzX2hpZl9tc2cgKmNvbnRleHQgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0 IHdmeF9kZXYgKndkZXYgPSBjb250ZXh0LT53ZGV2OwotCXN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0 OworCXN0cnVjdCB3ZnhfaGlmX21zZyAqcmVxdWVzdDsKIAogCWlmIChjb21wbGV0aW9uX2RvbmUo JmNvbnRleHQtPmNvbXBsZXRlKSkgewogCQlkZXZfZGJnKHdkZXYtPmRldiwgInJlYWQgcHJldmlv dXMgcmVzdWx0IGJlZm9yZSBzdGFydCBhIG5ldyBvbmVcbiIpOwogCQlyZXR1cm4gLUVCVVNZOwog CX0KLQlpZiAoY291bnQgPCBzaXplb2Yoc3RydWN0IGhpZl9tc2cpKQorCWlmIChjb3VudCA8IHNp emVvZihzdHJ1Y3Qgd2Z4X2hpZl9tc2cpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIHdmeF9j bWRfc2VuZCgpIGNoZWNrcyB0aGF0IHJlcGx5IGJ1ZmZlciBpcyB3aWRlIGVub3VnaCwgYnV0IGRv ZXMgbm90CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfY21kLmggYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfY21kLmgKaW5kZXggYjE4MjlkMDFhNWQ5Li40NjM1 MzJiMjU5MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9jbWQuaAor KysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfY21kLmgKQEAgLTEyLDcgKzEyLDcgQEAK IAogI2luY2x1ZGUgImhpZl9hcGlfZ2VuZXJhbC5oIgogCi1lbnVtIGhpZl9yZXF1ZXN0c19pZHMg eworZW51bSB3ZnhfaGlmX3JlcXVlc3RzX2lkcyB7CiAJSElGX1JFUV9JRF9SRVNFVCAgICAgICAg ICAgICAgICA9IDB4MGEsCiAJSElGX1JFUV9JRF9SRUFEX01JQiAgICAgICAgICAgICA9IDB4MDUs CiAJSElGX1JFUV9JRF9XUklURV9NSUIgICAgICAgICAgICA9IDB4MDYsCkBAIC0zMSw3ICszMSw3 IEBAIGVudW0gaGlmX3JlcXVlc3RzX2lkcyB7CiAJSElGX1JFUV9JRF9NQVBfTElOSyAgICAgICAg ICAgICA9IDB4MWMsCiB9OwogCi1lbnVtIGhpZl9jb25maXJtYXRpb25zX2lkcyB7CitlbnVtIHdm eF9oaWZfY29uZmlybWF0aW9uc19pZHMgewogCUhJRl9DTkZfSURfUkVTRVQgICAgICAgICAgICAg ICAgPSAweDBhLAogCUhJRl9DTkZfSURfUkVBRF9NSUIgICAgICAgICAgICAgPSAweDA1LAogCUhJ Rl9DTkZfSURfV1JJVEVfTUlCICAgICAgICAgICAgPSAweDA2LApAQCAtNTEsNyArNTEsNyBAQCBl bnVtIGhpZl9jb25maXJtYXRpb25zX2lkcyB7CiAJSElGX0NORl9JRF9NQVBfTElOSyAgICAgICAg ICAgICA9IDB4MWMsCiB9OwogCi1lbnVtIGhpZl9pbmRpY2F0aW9uc19pZHMgeworZW51bSB3Znhf aGlmX2luZGljYXRpb25zX2lkcyB7CiAJSElGX0lORF9JRF9SWCAgICAgICAgICAgICAgICAgICA9 IDB4ODQsCiAJSElGX0lORF9JRF9TQ0FOX0NNUEwgICAgICAgICAgICA9IDB4ODYsCiAJSElGX0lO RF9JRF9KT0lOX0NPTVBMRVRFICAgICAgICA9IDB4OGYsCkBAIC02MCw0MCArNjAsNDAgQEAgZW51 bSBoaWZfaW5kaWNhdGlvbnNfaWRzIHsKIAlISUZfSU5EX0lEX0VWRU5UICAgICAgICAgICAgICAg ID0gMHg4NQogfTsKIAotc3RydWN0IGhpZl9yZXFfcmVzZXQgeworc3RydWN0IHdmeF9oaWZfcmVx X3Jlc2V0IHsKIAl1OCAgICAgcmVzZXRfc3RhdDoxOwogCXU4ICAgICByZXNldF9hbGxfaW50OjE7 CiAJdTggICAgIHJlc2VydmVkMTo2OwogCXU4ICAgICByZXNlcnZlZDJbM107CiB9IF9fcGFja2Vk OwogCi1zdHJ1Y3QgaGlmX2NuZl9yZXNldCB7CitzdHJ1Y3Qgd2Z4X2hpZl9jbmZfcmVzZXQgewog CV9fbGUzMiBzdGF0dXM7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX3JlcV9yZWFkX21pYiB7 CitzdHJ1Y3Qgd2Z4X2hpZl9yZXFfcmVhZF9taWIgewogCV9fbGUxNiBtaWJfaWQ7CiAJX19sZTE2 IHJlc2VydmVkOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9jbmZfcmVhZF9taWIgeworc3Ry dWN0IHdmeF9oaWZfY25mX3JlYWRfbWliIHsKIAlfX2xlMzIgc3RhdHVzOwogCV9fbGUxNiBtaWJf aWQ7CiAJX19sZTE2IGxlbmd0aDsKIAl1OCAgICAgbWliX2RhdGFbXTsKIH0gX19wYWNrZWQ7CiAK LXN0cnVjdCBoaWZfcmVxX3dyaXRlX21pYiB7CitzdHJ1Y3Qgd2Z4X2hpZl9yZXFfd3JpdGVfbWli IHsKIAlfX2xlMTYgbWliX2lkOwogCV9fbGUxNiBsZW5ndGg7CiAJdTggICAgIG1pYl9kYXRhW107 CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2NuZl93cml0ZV9taWIgeworc3RydWN0IHdmeF9o aWZfY25mX3dyaXRlX21pYiB7CiAJX19sZTMyIHN0YXR1czsKIH0gX19wYWNrZWQ7CiAKLXN0cnVj dCBoaWZfcmVxX3VwZGF0ZV9pZSB7CitzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdXBkYXRlX2llIHsKIAl1 OCAgICAgYmVhY29uOjE7CiAJdTggICAgIHByb2JlX3Jlc3A6MTsKIAl1OCAgICAgcHJvYmVfcmVx OjE7CkBAIC0xMDMsMTEgKzEwMywxMSBAQCBzdHJ1Y3QgaGlmX3JlcV91cGRhdGVfaWUgewogCXU4 ICAgICBpZVtdOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9jbmZfdXBkYXRlX2llIHsKK3N0 cnVjdCB3ZnhfaGlmX2NuZl91cGRhdGVfaWUgewogCV9fbGUzMiBzdGF0dXM7CiB9IF9fcGFja2Vk OwogCi1zdHJ1Y3QgaGlmX3NzaWRfZGVmIHsKK3N0cnVjdCB3ZnhfaGlmX3NzaWRfZGVmIHsKIAlf X2xlMzIgc3NpZF9sZW5ndGg7CiAJdTggICAgIHNzaWRbSUVFRTgwMjExX01BWF9TU0lEX0xFTl07 CiB9IF9fcGFja2VkOwpAQCAtMTE1LDcgKzExNSw3IEBAIHN0cnVjdCBoaWZfc3NpZF9kZWYgewog I2RlZmluZSBISUZfQVBJX01BWF9OQl9TU0lEUyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIK ICNkZWZpbmUgSElGX0FQSV9NQVhfTkJfQ0hBTk5FTFMgICAgICAgICAgICAgICAgICAgICAgIDE0 CiAKLXN0cnVjdCBoaWZfcmVxX3N0YXJ0X3NjYW5fYWx0IHsKK3N0cnVjdCB3ZnhfaGlmX3JlcV9z dGFydF9zY2FuX2FsdCB7CiAJdTggICAgIGJhbmQ7CiAJdTggICAgIG1haW50YWluX2N1cnJlbnRf YnNzOjE7CiAJdTggICAgIHBlcmlvZGljOjE7CkBAIC0xMzUsNDUgKzEzNSw0NSBAQCBzdHJ1Y3Qg aGlmX3JlcV9zdGFydF9zY2FuX2FsdCB7CiAJX19sZTMyIG1pbl9jaGFubmVsX3RpbWU7CiAJX19s ZTMyIG1heF9jaGFubmVsX3RpbWU7CiAJX19sZTMyIHR4X3Bvd2VyX2xldmVsOyAvKiBzaWduZWQg dmFsdWUgKi8KLQlzdHJ1Y3QgaGlmX3NzaWRfZGVmIHNzaWRfZGVmW0hJRl9BUElfTUFYX05CX1NT SURTXTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9zc2lkX2RlZiBzc2lkX2RlZltISUZfQVBJX01BWF9OQl9T U0lEU107CiAJdTggICAgIGNoYW5uZWxfbGlzdFtdOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhp Zl9jbmZfc3RhcnRfc2NhbiB7CitzdHJ1Y3Qgd2Z4X2hpZl9jbmZfc3RhcnRfc2NhbiB7CiAJX19s ZTMyIHN0YXR1czsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfY25mX3N0b3Bfc2NhbiB7Citz dHJ1Y3Qgd2Z4X2hpZl9jbmZfc3RvcF9zY2FuIHsKIAlfX2xlMzIgc3RhdHVzOwogfSBfX3BhY2tl ZDsKIAotZW51bSBoaWZfcG1fbW9kZV9zdGF0dXMgeworZW51bSB3ZnhfaGlmX3BtX21vZGVfc3Rh dHVzIHsKIAlISUZfUE1fTU9ERV9BQ1RJVkUgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAs CiAJSElGX1BNX01PREVfUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxLAogCUhJ Rl9QTV9NT0RFX1VOREVURVJNSU5FRCAgICAgICAgICAgICAgICAgICA9IDB4MgogfTsKIAotc3Ry dWN0IGhpZl9pbmRfc2Nhbl9jbXBsIHsKK3N0cnVjdCB3ZnhfaGlmX2luZF9zY2FuX2NtcGwgewog CV9fbGUzMiBzdGF0dXM7CiAJdTggICAgIHBtX21vZGU7CiAJdTggICAgIG51bV9jaGFubmVsc19j b21wbGV0ZWQ7CiAJX19sZTE2IHJlc2VydmVkOwogfSBfX3BhY2tlZDsKIAotZW51bSBoaWZfcXVl dWVfaWQgeworZW51bSB3ZnhfaGlmX3F1ZXVlX2lkIHsKIAlISUZfUVVFVUVfSURfQkFDS0dST1VO RCAgICAgICAgICAgICAgICAgICAgPSAweDAsCiAJSElGX1FVRVVFX0lEX0JFU1RFRkZPUlQgICAg ICAgICAgICAgICAgICAgID0gMHgxLAogCUhJRl9RVUVVRV9JRF9WSURFTyAgICAgICAgICAgICAg ICAgICAgICAgICA9IDB4MiwKIAlISUZfUVVFVUVfSURfVk9JQ0UgICAgICAgICAgICAgICAgICAg ICAgICAgPSAweDMKIH07CiAKLWVudW0gaGlmX2ZyYW1lX2Zvcm1hdCB7CitlbnVtIHdmeF9oaWZf ZnJhbWVfZm9ybWF0IHsKIAlISUZfRlJBTUVfRk9STUFUX05PTl9IVCAgICAgICAgICAgICAgICAg ICAgPSAweDAsCiAJSElGX0ZSQU1FX0ZPUk1BVF9NSVhFRF9GT1JNQVRfSFQgICAgICAgICAgID0g MHgxLAogCUhJRl9GUkFNRV9GT1JNQVRfR0ZfSFRfMTFOICAgICAgICAgICAgICAgICA9IDB4Mgog fTsKIAotc3RydWN0IGhpZl9yZXFfdHggeworc3RydWN0IHdmeF9oaWZfcmVxX3R4IHsKIAkvKiBw YWNrZXRfaWQgaXMgbm90IGludGVycHJldGVkIGJ5IHRoZSBkZXZpY2UsIHNvIGl0IGlzIG5vdCBu ZWNlc3NhcnkgdG8KIAkgKiBkZWNsYXJlIGl0IGxpdHRsZSBlbmRpYW4KIAkgKi8KQEAgLTIwMywx NiArMjAzLDE2IEBAIHN0cnVjdCBoaWZfcmVxX3R4IHsKIAl1OCAgICAgZnJhbWVbXTsKIH0gX19w YWNrZWQ7CiAKLWVudW0gaGlmX3Fvc19hY2twbGN5IHsKK2VudW0gd2Z4X2hpZl9xb3NfYWNrcGxj eSB7CiAJSElGX1FPU19BQ0tQTENZX05PUk1BTCAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4 MCwKIAlISUZfUU9TX0FDS1BMQ1lfVFhOT0FDSyAgICAgICAgICAgICAgICAgICAgICAgID0gMHgx LAogCUhJRl9RT1NfQUNLUExDWV9OT0VYUEFDSyAgICAgICAgICAgICAgICAgICAgICAgPSAweDIs CiAJSElGX1FPU19BQ0tQTENZX0JMQ0tBQ0sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4Mwog fTsKIAotc3RydWN0IGhpZl9jbmZfdHggeworc3RydWN0IHdmeF9oaWZfY25mX3R4IHsKIAlfX2xl MzIgc3RhdHVzOwotCS8qIHBhY2tldF9pZCBpcyBjb3BpZWQgZnJvbSBzdHJ1Y3QgaGlmX3JlcV90 eCB3aXRob3V0IGJlZW4gaW50ZXJwcmV0ZWQKKwkvKiBwYWNrZXRfaWQgaXMgY29waWVkIGZyb20g c3RydWN0IHdmeF9oaWZfcmVxX3R4IHdpdGhvdXQgYmVlbiBpbnRlcnByZXRlZAogCSAqIGJ5IHRo ZSBkZXZpY2UsIHNvIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSBpdCBsaXR0bGUgZW5k aWFuCiAJICovCiAJdTMyICAgIHBhY2tldF9pZDsKQEAgLTIyOCwxMyArMjI4LDEzIEBAIHN0cnVj dCBoaWZfY25mX3R4IHsKIAlfX2xlMzIgdHhfcXVldWVfZGVsYXk7CiB9IF9fcGFja2VkOwogCi1z dHJ1Y3QgaGlmX2NuZl9tdWx0aV90cmFuc21pdCB7CitzdHJ1Y3Qgd2Z4X2hpZl9jbmZfbXVsdGlf dHJhbnNtaXQgewogCXU4ICAgICBudW1fdHhfY29uZnM7CiAJdTggICAgIHJlc2VydmVkWzNdOwot CXN0cnVjdCBoaWZfY25mX3R4IHR4X2NvbmZfcGF5bG9hZFtdOworCXN0cnVjdCB3ZnhfaGlmX2Nu Zl90eCB0eF9jb25mX3BheWxvYWRbXTsKIH0gX19wYWNrZWQ7CiAKLWVudW0gaGlmX3JpX2ZsYWdz X2VuY3J5cHQgeworZW51bSB3ZnhfaGlmX3JpX2ZsYWdzX2VuY3J5cHQgewogCUhJRl9SSV9GTEFH U19VTkVOQ1JZUFRFRCAgICAgICAgICAgICAgICAgICA9IDB4MCwKIAlISUZfUklfRkxBR1NfV0VQ X0VOQ1JZUFRFRCAgICAgICAgICAgICAgICAgPSAweDEsCiAJSElGX1JJX0ZMQUdTX1RLSVBfRU5D UllQVEVEICAgICAgICAgICAgICAgID0gMHgyLApAQCAtMjQyLDcgKzI0Miw3IEBAIGVudW0gaGlm X3JpX2ZsYWdzX2VuY3J5cHQgewogCUhJRl9SSV9GTEFHU19XQVBJX0VOQ1JZUFRFRCAgICAgICAg ICAgICAgICA9IDB4NAogfTsKIAotc3RydWN0IGhpZl9pbmRfcnggeworc3RydWN0IHdmeF9oaWZf aW5kX3J4IHsKIAlfX2xlMzIgc3RhdHVzOwogCXU4ICAgICBjaGFubmVsX251bWJlcjsKIAl1OCAg ICAgcmVzZXJ2ZWQxOwpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0cnVjdCBoaWZfaW5kX3J4IHsKIAl1 OCAgICAgZnJhbWVbXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfcmVxX2VkY2FfcXVldWVf cGFyYW1zIHsKK3N0cnVjdCB3ZnhfaGlmX3JlcV9lZGNhX3F1ZXVlX3BhcmFtcyB7CiAJdTggICAg IHF1ZXVlX2lkOwogCXU4ICAgICByZXNlcnZlZDE7CiAJdTggICAgIGFpZnNuOwpAQCAtMjg2LDEx ICsyODYsMTEgQEAgc3RydWN0IGhpZl9yZXFfZWRjYV9xdWV1ZV9wYXJhbXMgewogCV9fbGUzMiBy ZXNlcnZlZDM7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2NuZl9lZGNhX3F1ZXVlX3BhcmFt cyB7CitzdHJ1Y3Qgd2Z4X2hpZl9jbmZfZWRjYV9xdWV1ZV9wYXJhbXMgewogCV9fbGUzMiBzdGF0 dXM7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX3JlcV9qb2luIHsKK3N0cnVjdCB3ZnhfaGlm X3JlcV9qb2luIHsKIAl1OCAgICAgaW5mcmFzdHJ1Y3R1cmVfYnNzX21vZGU6MTsKIAl1OCAgICAg cmVzZXJ2ZWQxOjc7CiAJdTggICAgIGJhbmQ7CkBAIC0zMTIsMTUgKzMxMiwxNSBAQCBzdHJ1Y3Qg aGlmX3JlcV9qb2luIHsKIAlfX2xlMzIgYmFzaWNfcmF0ZV9zZXQ7CiB9IF9fcGFja2VkOwogCi1z dHJ1Y3QgaGlmX2NuZl9qb2luIHsKK3N0cnVjdCB3ZnhfaGlmX2NuZl9qb2luIHsKIAlfX2xlMzIg c3RhdHVzOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9pbmRfam9pbl9jb21wbGV0ZSB7Citz dHJ1Y3Qgd2Z4X2hpZl9pbmRfam9pbl9jb21wbGV0ZSB7CiAJX19sZTMyIHN0YXR1czsKIH0gX19w YWNrZWQ7CiAKLXN0cnVjdCBoaWZfcmVxX3NldF9ic3NfcGFyYW1zIHsKK3N0cnVjdCB3ZnhfaGlm X3JlcV9zZXRfYnNzX3BhcmFtcyB7CiAJdTggICAgIGxvc3RfY291bnRfb25seToxOwogCXU4ICAg ICByZXNlcnZlZDo3OwogCXU4ICAgICBiZWFjb25fbG9zdF9jb3VudDsKQEAgLTMyOCwxMSArMzI4 LDExIEBAIHN0cnVjdCBoaWZfcmVxX3NldF9ic3NfcGFyYW1zIHsKIAlfX2xlMzIgb3BlcmF0aW9u YWxfcmF0ZV9zZXQ7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2NuZl9zZXRfYnNzX3BhcmFt cyB7CitzdHJ1Y3Qgd2Z4X2hpZl9jbmZfc2V0X2Jzc19wYXJhbXMgewogCV9fbGUzMiBzdGF0dXM7 CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX3JlcV9zZXRfcG1fbW9kZSB7CitzdHJ1Y3Qgd2Z4 X2hpZl9yZXFfc2V0X3BtX21vZGUgewogCXU4ICAgICBlbnRlcl9wc206MTsKIAl1OCAgICAgcmVz ZXJ2ZWQ6NjsKIAl1OCAgICAgZmFzdF9wc206MTsKQEAgLTM0MSwxNyArMzQxLDE3IEBAIHN0cnVj dCBoaWZfcmVxX3NldF9wbV9tb2RlIHsKIAl1OCAgICAgbWluX2F1dG9fcHNfcG9sbF9wZXJpb2Q7 CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2NuZl9zZXRfcG1fbW9kZSB7CitzdHJ1Y3Qgd2Z4 X2hpZl9jbmZfc2V0X3BtX21vZGUgewogCV9fbGUzMiBzdGF0dXM7CiB9IF9fcGFja2VkOwogCi1z dHJ1Y3QgaGlmX2luZF9zZXRfcG1fbW9kZV9jbXBsIHsKK3N0cnVjdCB3ZnhfaGlmX2luZF9zZXRf cG1fbW9kZV9jbXBsIHsKIAlfX2xlMzIgc3RhdHVzOwogCXU4ICAgICBwbV9tb2RlOwogCXU4ICAg ICByZXNlcnZlZFszXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfcmVxX3N0YXJ0IHsKK3N0 cnVjdCB3ZnhfaGlmX3JlcV9zdGFydCB7CiAJdTggICAgIG1vZGU7CiAJdTggICAgIGJhbmQ7CiAJ dTggICAgIGNoYW5uZWxfbnVtYmVyOwpAQCAtMzY3LDIzICszNjcsMjMgQEAgc3RydWN0IGhpZl9y ZXFfc3RhcnQgewogCV9fbGUzMiBiYXNpY19yYXRlX3NldDsKIH0gX19wYWNrZWQ7CiAKLXN0cnVj dCBoaWZfY25mX3N0YXJ0IHsKK3N0cnVjdCB3ZnhfaGlmX2NuZl9zdGFydCB7CiAJX19sZTMyIHN0 YXR1czsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfcmVxX2JlYWNvbl90cmFuc21pdCB7Citz dHJ1Y3Qgd2Z4X2hpZl9yZXFfYmVhY29uX3RyYW5zbWl0IHsKIAl1OCAgICAgZW5hYmxlX2JlYWNv bmluZzsKIAl1OCAgICAgcmVzZXJ2ZWRbM107CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2Nu Zl9iZWFjb25fdHJhbnNtaXQgeworc3RydWN0IHdmeF9oaWZfY25mX2JlYWNvbl90cmFuc21pdCB7 CiAJX19sZTMyIHN0YXR1czsKIH0gX19wYWNrZWQ7CiAKICNkZWZpbmUgSElGX0xJTktfSURfTUFY ICAgICAgICAgICAgMTQKICNkZWZpbmUgSElGX0xJTktfSURfTk9UX0FTU09DSUFURUQgKEhJRl9M SU5LX0lEX01BWCArIDEpCiAKLXN0cnVjdCBoaWZfcmVxX21hcF9saW5rIHsKK3N0cnVjdCB3Znhf aGlmX3JlcV9tYXBfbGluayB7CiAJdTggICAgIG1hY19hZGRyW0VUSF9BTEVOXTsKIAl1OCAgICAg dW5tYXA6MTsKIAl1OCAgICAgbWZwYzoxOwpAQCAtMzkxLDExICszOTEsMTEgQEAgc3RydWN0IGhp Zl9yZXFfbWFwX2xpbmsgewogCXU4ICAgICBwZWVyX3N0YV9pZDsKIH0gX19wYWNrZWQ7CiAKLXN0 cnVjdCBoaWZfY25mX21hcF9saW5rIHsKK3N0cnVjdCB3ZnhfaGlmX2NuZl9tYXBfbGluayB7CiAJ X19sZTMyIHN0YXR1czsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfaW5kX3N1c3BlbmRfcmVz dW1lX3R4IHsKK3N0cnVjdCB3ZnhfaGlmX2luZF9zdXNwZW5kX3Jlc3VtZV90eCB7CiAJdTggICAg IHJlc3VtZToxOwogCXU4ICAgICByZXNlcnZlZDE6MjsKIAl1OCAgICAgYmNfbWNfb25seToxOwpA QCAtNDE3LDcgKzQxNyw3IEBAIHN0cnVjdCBoaWZfaW5kX3N1c3BlbmRfcmVzdW1lX3R4IHsKICNk ZWZpbmUgSElGX0FQSV9SWF9TRVFVRU5DRV9DT1VOVEVSX1NJWkUgICAgICAgICAgICAgICAgOAog I2RlZmluZSBISUZfQVBJX0lQTl9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4 CiAKLWVudW0gaGlmX2tleV90eXBlIHsKK2VudW0gd2Z4X2hpZl9rZXlfdHlwZSB7CiAJSElGX0tF WV9UWVBFX1dFUF9ERUZBVUxUICAgICAgICAgICAgICAgICAgID0gMHgwLAogCUhJRl9LRVlfVFlQ RV9XRVBfUEFJUldJU0UgICAgICAgICAgICAgICAgICA9IDB4MSwKIAlISUZfS0VZX1RZUEVfVEtJ UF9HUk9VUCAgICAgICAgICAgICAgICAgICAgPSAweDIsCkBAIC00MzAsMjEgKzQzMCwyMSBAQCBl bnVtIGhpZl9rZXlfdHlwZSB7CiAJSElGX0tFWV9UWVBFX05PTkUgICAgICAgICAgICAgICAgICAg ICAgICAgID0gMHg5CiB9OwogCi1zdHJ1Y3QgaGlmX3dlcF9wYWlyd2lzZV9rZXkgeworc3RydWN0 IHdmeF9oaWZfd2VwX3BhaXJ3aXNlX2tleSB7CiAJdTggICAgIHBlZXJfYWRkcmVzc1tFVEhfQUxF Tl07CiAJdTggICAgIHJlc2VydmVkOwogCXU4ICAgICBrZXlfbGVuZ3RoOwogCXU4ICAgICBrZXlf ZGF0YVtISUZfQVBJX1dFUF9LRVlfREFUQV9TSVpFXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBo aWZfd2VwX2dyb3VwX2tleSB7CitzdHJ1Y3Qgd2Z4X2hpZl93ZXBfZ3JvdXBfa2V5IHsKIAl1OCAg ICAga2V5X2lkOwogCXU4ICAgICBrZXlfbGVuZ3RoOwogCXU4ICAgICByZXNlcnZlZFsyXTsKIAl1 OCAgICAga2V5X2RhdGFbSElGX0FQSV9XRVBfS0VZX0RBVEFfU0laRV07CiB9IF9fcGFja2VkOwog Ci1zdHJ1Y3QgaGlmX3RraXBfcGFpcndpc2Vfa2V5IHsKK3N0cnVjdCB3ZnhfaGlmX3RraXBfcGFp cndpc2Vfa2V5IHsKIAl1OCAgICAgcGVlcl9hZGRyZXNzW0VUSF9BTEVOXTsKIAl1OCAgICAgcmVz ZXJ2ZWRbMl07CiAJdTggICAgIHRraXBfa2V5X2RhdGFbSElGX0FQSV9US0lQX0tFWV9EQVRBX1NJ WkVdOwpAQCAtNDUyLDcgKzQ1Miw3IEBAIHN0cnVjdCBoaWZfdGtpcF9wYWlyd2lzZV9rZXkgewog CXU4ICAgICB0eF9taWNfa2V5W0hJRl9BUElfVFhfTUlDX0tFWV9TSVpFXTsKIH0gX19wYWNrZWQ7 CiAKLXN0cnVjdCBoaWZfdGtpcF9ncm91cF9rZXkgeworc3RydWN0IHdmeF9oaWZfdGtpcF9ncm91 cF9rZXkgewogCXU4ICAgICB0a2lwX2tleV9kYXRhW0hJRl9BUElfVEtJUF9LRVlfREFUQV9TSVpF XTsKIAl1OCAgICAgcnhfbWljX2tleVtISUZfQVBJX1JYX01JQ19LRVlfU0laRV07CiAJdTggICAg IGtleV9pZDsKQEAgLTQ2MCwyMCArNDYwLDIwIEBAIHN0cnVjdCBoaWZfdGtpcF9ncm91cF9rZXkg ewogCXU4ICAgICByeF9zZXF1ZW5jZV9jb3VudGVyW0hJRl9BUElfUlhfU0VRVUVOQ0VfQ09VTlRF Ul9TSVpFXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfYWVzX3BhaXJ3aXNlX2tleSB7Citz dHJ1Y3Qgd2Z4X2hpZl9hZXNfcGFpcndpc2Vfa2V5IHsKIAl1OCAgICAgcGVlcl9hZGRyZXNzW0VU SF9BTEVOXTsKIAl1OCAgICAgcmVzZXJ2ZWRbMl07CiAJdTggICAgIGFlc19rZXlfZGF0YVtISUZf QVBJX0FFU19LRVlfREFUQV9TSVpFXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfYWVzX2dy b3VwX2tleSB7CitzdHJ1Y3Qgd2Z4X2hpZl9hZXNfZ3JvdXBfa2V5IHsKIAl1OCAgICAgYWVzX2tl eV9kYXRhW0hJRl9BUElfQUVTX0tFWV9EQVRBX1NJWkVdOwogCXU4ICAgICBrZXlfaWQ7CiAJdTgg ICAgIHJlc2VydmVkWzNdOwogCXU4ICAgICByeF9zZXF1ZW5jZV9jb3VudGVyW0hJRl9BUElfUlhf U0VRVUVOQ0VfQ09VTlRFUl9TSVpFXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfd2FwaV9w YWlyd2lzZV9rZXkgeworc3RydWN0IHdmeF9oaWZfd2FwaV9wYWlyd2lzZV9rZXkgewogCXU4ICAg ICBwZWVyX2FkZHJlc3NbRVRIX0FMRU5dOwogCXU4ICAgICBrZXlfaWQ7CiAJdTggICAgIHJlc2Vy dmVkOwpAQCAtNDgxLDUzICs0ODEsNTMgQEAgc3RydWN0IGhpZl93YXBpX3BhaXJ3aXNlX2tleSB7 CiAJdTggICAgIG1pY19rZXlfZGF0YVtISUZfQVBJX01JQ19LRVlfREFUQV9TSVpFXTsKIH0gX19w YWNrZWQ7CiAKLXN0cnVjdCBoaWZfd2FwaV9ncm91cF9rZXkgeworc3RydWN0IHdmeF9oaWZfd2Fw aV9ncm91cF9rZXkgewogCXU4ICAgICB3YXBpX2tleV9kYXRhW0hJRl9BUElfV0FQSV9LRVlfREFU QV9TSVpFXTsKIAl1OCAgICAgbWljX2tleV9kYXRhW0hJRl9BUElfTUlDX0tFWV9EQVRBX1NJWkVd OwogCXU4ICAgICBrZXlfaWQ7CiAJdTggICAgIHJlc2VydmVkWzNdOwogfSBfX3BhY2tlZDsKIAot c3RydWN0IGhpZl9pZ3RrX2dyb3VwX2tleSB7CitzdHJ1Y3Qgd2Z4X2hpZl9pZ3RrX2dyb3VwX2tl eSB7CiAJdTggICAgIGlndGtfa2V5X2RhdGFbSElGX0FQSV9JR1RLX0tFWV9EQVRBX1NJWkVdOwog CXU4ICAgICBrZXlfaWQ7CiAJdTggICAgIHJlc2VydmVkWzNdOwogCXU4ICAgICBpcG5bSElGX0FQ SV9JUE5fU0laRV07CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX3JlcV9hZGRfa2V5IHsKK3N0 cnVjdCB3ZnhfaGlmX3JlcV9hZGRfa2V5IHsKIAl1OCAgICAgdHlwZTsKIAl1OCAgICAgZW50cnlf aW5kZXg7CiAJdTggICAgIGludF9pZDoyOwogCXU4ICAgICByZXNlcnZlZDE6NjsKIAl1OCAgICAg cmVzZXJ2ZWQyOwogCXVuaW9uIHsKLQkJc3RydWN0IGhpZl93ZXBfcGFpcndpc2Vfa2V5ICB3ZXBf cGFpcndpc2Vfa2V5OwotCQlzdHJ1Y3QgaGlmX3dlcF9ncm91cF9rZXkgICAgIHdlcF9ncm91cF9r ZXk7Ci0JCXN0cnVjdCBoaWZfdGtpcF9wYWlyd2lzZV9rZXkgdGtpcF9wYWlyd2lzZV9rZXk7Ci0J CXN0cnVjdCBoaWZfdGtpcF9ncm91cF9rZXkgICAgdGtpcF9ncm91cF9rZXk7Ci0JCXN0cnVjdCBo aWZfYWVzX3BhaXJ3aXNlX2tleSAgYWVzX3BhaXJ3aXNlX2tleTsKLQkJc3RydWN0IGhpZl9hZXNf Z3JvdXBfa2V5ICAgICBhZXNfZ3JvdXBfa2V5OwotCQlzdHJ1Y3QgaGlmX3dhcGlfcGFpcndpc2Vf a2V5IHdhcGlfcGFpcndpc2Vfa2V5OwotCQlzdHJ1Y3QgaGlmX3dhcGlfZ3JvdXBfa2V5ICAgIHdh cGlfZ3JvdXBfa2V5OwotCQlzdHJ1Y3QgaGlmX2lndGtfZ3JvdXBfa2V5ICAgIGlndGtfZ3JvdXBf a2V5OworCQlzdHJ1Y3Qgd2Z4X2hpZl93ZXBfcGFpcndpc2Vfa2V5ICB3ZXBfcGFpcndpc2Vfa2V5 OworCQlzdHJ1Y3Qgd2Z4X2hpZl93ZXBfZ3JvdXBfa2V5ICAgICB3ZXBfZ3JvdXBfa2V5OworCQlz dHJ1Y3Qgd2Z4X2hpZl90a2lwX3BhaXJ3aXNlX2tleSB0a2lwX3BhaXJ3aXNlX2tleTsKKwkJc3Ry dWN0IHdmeF9oaWZfdGtpcF9ncm91cF9rZXkgICAgdGtpcF9ncm91cF9rZXk7CisJCXN0cnVjdCB3 ZnhfaGlmX2Flc19wYWlyd2lzZV9rZXkgIGFlc19wYWlyd2lzZV9rZXk7CisJCXN0cnVjdCB3Znhf aGlmX2Flc19ncm91cF9rZXkgICAgIGFlc19ncm91cF9rZXk7CisJCXN0cnVjdCB3ZnhfaGlmX3dh cGlfcGFpcndpc2Vfa2V5IHdhcGlfcGFpcndpc2Vfa2V5OworCQlzdHJ1Y3Qgd2Z4X2hpZl93YXBp X2dyb3VwX2tleSAgICB3YXBpX2dyb3VwX2tleTsKKwkJc3RydWN0IHdmeF9oaWZfaWd0a19ncm91 cF9rZXkgICAgaWd0a19ncm91cF9rZXk7CiAJfSBrZXk7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3Qg aGlmX2NuZl9hZGRfa2V5IHsKK3N0cnVjdCB3ZnhfaGlmX2NuZl9hZGRfa2V5IHsKIAlfX2xlMzIg c3RhdHVzOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9yZXFfcmVtb3ZlX2tleSB7CitzdHJ1 Y3Qgd2Z4X2hpZl9yZXFfcmVtb3ZlX2tleSB7CiAJdTggICAgIGVudHJ5X2luZGV4OwogCXU4ICAg ICByZXNlcnZlZFszXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfY25mX3JlbW92ZV9rZXkg eworc3RydWN0IHdmeF9oaWZfY25mX3JlbW92ZV9rZXkgewogCV9fbGUzMiBzdGF0dXM7CiB9IF9f cGFja2VkOwogCi1lbnVtIGhpZl9ldmVudF9pbmQgeworZW51bSB3ZnhfaGlmX2V2ZW50X2luZCB7 CiAJSElGX0VWRU5UX0lORF9CU1NMT1NUICAgICAgICAgICAgICAgICAgICAgID0gMHgxLAogCUhJ Rl9FVkVOVF9JTkRfQlNTUkVHQUlORUQgICAgICAgICAgICAgICAgICA9IDB4MiwKIAlISUZfRVZF TlRfSU5EX1JDUElfUlNTSSAgICAgICAgICAgICAgICAgICAgPSAweDMsCkBAIC01MzUsNyArNTM1 LDcgQEAgZW51bSBoaWZfZXZlbnRfaW5kIHsKIAlISUZfRVZFTlRfSU5EX0lOQUNUSVZJVFkgICAg ICAgICAgICAgICAgICAgPSAweDUKIH07CiAKLWVudW0gaGlmX3BzX21vZGVfZXJyb3IgeworZW51 bSB3ZnhfaGlmX3BzX21vZGVfZXJyb3IgewogCUhJRl9QU19FUlJPUl9OT19FUlJPUiAgICAgICAg ICAgICAgICAgICAgICA9IDAsCiAJSElGX1BTX0VSUk9SX0FQX05PVF9SRVNQX1RPX1BPTEwgICAg ICAgICAgID0gMSwKIAlISUZfUFNfRVJST1JfQVBfTk9UX1JFU1BfVE9fVUFQU0RfVFJJR0dFUiAg PSAyLApAQCAtNTQzLDcgKzU0Myw3IEBAIGVudW0gaGlmX3BzX21vZGVfZXJyb3IgewogCUhJRl9Q U19FUlJPUl9BUF9OT19EQVRBX0FGVEVSX1RJTSAgICAgICAgICA9IDQKIH07CiAKLXN0cnVjdCBo aWZfaW5kX2V2ZW50IHsKK3N0cnVjdCB3ZnhfaGlmX2luZF9ldmVudCB7CiAJX19sZTMyIGV2ZW50 X2lkOwogCXVuaW9uIHsKIAkJdTggICAgIHJjcGlfcnNzaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3RhZ2luZy93ZngvaGlmX2FwaV9nZW5lcmFsLmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9h cGlfZ2VuZXJhbC5oCmluZGV4IGE1Nzc4OWNlYjIwOS4uNGQ0MDBmZGMyMjUyIDEwMDY0NAotLS0g YS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfZ2VuZXJhbC5oCisrKyBiL2RyaXZlcnMvc3Rh Z2luZy93ZngvaGlmX2FwaV9nZW5lcmFsLmgKQEAgLTE0LDcgKzE0LDcgQEAKICNkZWZpbmUgSElG X0lEX0lTX0lORElDQVRJT04gICAgICAweDgwCiAjZGVmaW5lIEhJRl9DT1VOVEVSX01BWCAgICAg ICAgICAgNwogCi1zdHJ1Y3QgaGlmX21zZyB7CitzdHJ1Y3Qgd2Z4X2hpZl9tc2cgewogCV9fbGUx NiBsZW47CiAJdTggICAgIGlkOwogCXU4ICAgICByZXNlcnZlZDoxOwpAQCAtMjQsNyArMjQsNyBA QCBzdHJ1Y3QgaGlmX21zZyB7CiAJdTggICAgIGJvZHlbXTsKIH0gX19wYWNrZWQ7CiAKLWVudW0g aGlmX2dlbmVyYWxfcmVxdWVzdHNfaWRzIHsKK2VudW0gd2Z4X2hpZl9nZW5lcmFsX3JlcXVlc3Rz X2lkcyB7CiAJSElGX1JFUV9JRF9DT05GSUdVUkFUSU9OICAgICAgICA9IDB4MDksCiAJSElGX1JF UV9JRF9DT05UUk9MX0dQSU8gICAgICAgICA9IDB4MjYsCiAJSElGX1JFUV9JRF9TRVRfU0xfTUFD X0tFWSAgICAgICA9IDB4MjcsCkBAIC0zNyw3ICszNyw3IEBAIGVudW0gaGlmX2dlbmVyYWxfcmVx dWVzdHNfaWRzIHsKIAlISUZfUkVRX0lEX1NIVVRfRE9XTiAgICAgICAgICAgID0gMHgzMiwKIH07 CiAKLWVudW0gaGlmX2dlbmVyYWxfY29uZmlybWF0aW9uc19pZHMgeworZW51bSB3ZnhfaGlmX2dl bmVyYWxfY29uZmlybWF0aW9uc19pZHMgewogCUhJRl9DTkZfSURfQ09ORklHVVJBVElPTiAgICAg ICAgPSAweDA5LAogCUhJRl9DTkZfSURfQ09OVFJPTF9HUElPICAgICAgICAgPSAweDI2LAogCUhJ Rl9DTkZfSURfU0VUX1NMX01BQ19LRVkgICAgICAgPSAweDI3LApAQCAtNTAsNyArNTAsNyBAQCBl bnVtIGhpZl9nZW5lcmFsX2NvbmZpcm1hdGlvbnNfaWRzIHsKIAlISUZfQ05GX0lEX1NIVVRfRE9X TiAgICAgICAgICAgID0gMHgzMiwKIH07CiAKLWVudW0gaGlmX2dlbmVyYWxfaW5kaWNhdGlvbnNf aWRzIHsKK2VudW0gd2Z4X2hpZl9nZW5lcmFsX2luZGljYXRpb25zX2lkcyB7CiAJSElGX0lORF9J RF9FWENFUFRJT04gICAgICAgICAgICA9IDB4ZTAsCiAJSElGX0lORF9JRF9TVEFSVFVQICAgICAg ICAgICAgICA9IDB4ZTEsCiAJSElGX0lORF9JRF9XQUtFVVAgICAgICAgICAgICAgICA9IDB4ZTIs CkBAIC04MSw3ICs4MSw3IEBAIGVudW0gaGlmX2dlbmVyYWxfaW5kaWNhdGlvbnNfaWRzIHsKICNk ZWZpbmUgSElGX1NUQVRVU19ST0xMQkFDS19TVUNDRVNTICAgICAgICAgICAgICAgIChjcHVfdG9f bGUzMigweDEyMzQpKQogI2RlZmluZSBISUZfU1RBVFVTX1JPTExCQUNLX0ZBSUwgICAgICAgICAg ICAgICAgICAgKGNwdV90b19sZTMyKDB4MTI1NikpCiAKLWVudW0gaGlmX2FwaV9yYXRlX2luZGV4 IHsKK2VudW0gd2Z4X2hpZl9hcGlfcmF0ZV9pbmRleCB7CiAJQVBJX1JBVEVfSU5ERVhfQl8xTUJQ UyAgICAgPSAwLAogCUFQSV9SQVRFX0lOREVYX0JfMk1CUFMgICAgID0gMSwKIAlBUElfUkFURV9J TkRFWF9CXzVQNU1CUFMgICA9IDIsCkBAIC0xMDcsNyArMTA3LDcgQEAgZW51bSBoaWZfYXBpX3Jh dGVfaW5kZXggewogCUFQSV9SQVRFX05VTV9FTlRSSUVTICAgICAgID0gMjIKIH07CiAKLXN0cnVj dCBoaWZfaW5kX3N0YXJ0dXAgeworc3RydWN0IHdmeF9oaWZfaW5kX3N0YXJ0dXAgewogCV9fbGUz MiBzdGF0dXM7CiAJX19sZTE2IGhhcmR3YXJlX2lkOwogCXU4ICAgICBvcG5bMTRdOwpAQCAtMTM4 LDE5ICsxMzgsMTkgQEAgc3RydWN0IGhpZl9pbmRfc3RhcnR1cCB7CiAJdTggICAgIGZpcm13YXJl X2xhYmVsWzEyOF07CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2luZF93YWtldXAgeworc3Ry dWN0IHdmeF9oaWZfaW5kX3dha2V1cCB7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX3JlcV9j b25maWd1cmF0aW9uIHsKK3N0cnVjdCB3ZnhfaGlmX3JlcV9jb25maWd1cmF0aW9uIHsKIAlfX2xl MTYgbGVuZ3RoOwogCXU4ICAgICBwZHNfZGF0YVtdOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhp Zl9jbmZfY29uZmlndXJhdGlvbiB7CitzdHJ1Y3Qgd2Z4X2hpZl9jbmZfY29uZmlndXJhdGlvbiB7 CiAJX19sZTMyIHN0YXR1czsKIH0gX19wYWNrZWQ7CiAKLWVudW0gaGlmX2dwaW9fbW9kZSB7Citl bnVtIHdmeF9oaWZfZ3Bpb19tb2RlIHsKIAlISUZfR1BJT19NT0RFX0QwICAgICAgID0gMHgwLAog CUhJRl9HUElPX01PREVfRDEgICAgICAgPSAweDEsCiAJSElGX0dQSU9fTU9ERV9PRDAgICAgICA9 IDB4MiwKQEAgLTE2MCwyNCArMTYwLDI0IEBAIGVudW0gaGlmX2dwaW9fbW9kZSB7CiAJSElGX0dQ SU9fTU9ERV9SRUFEICAgICA9IDB4NgogfTsKIAotc3RydWN0IGhpZl9yZXFfY29udHJvbF9ncGlv IHsKK3N0cnVjdCB3ZnhfaGlmX3JlcV9jb250cm9sX2dwaW8gewogCXU4ICAgICBncGlvX2xhYmVs OwogCXU4ICAgICBncGlvX21vZGU7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX2NuZl9jb250 cm9sX2dwaW8geworc3RydWN0IHdmeF9oaWZfY25mX2NvbnRyb2xfZ3BpbyB7CiAJX19sZTMyIHN0 YXR1czsKIAlfX2xlMzIgdmFsdWU7CiB9IF9fcGFja2VkOwogCi1lbnVtIGhpZl9nZW5lcmljX2lu ZGljYXRpb25fdHlwZSB7CitlbnVtIHdmeF9oaWZfZ2VuZXJpY19pbmRpY2F0aW9uX3R5cGUgewog CUhJRl9HRU5FUklDX0lORElDQVRJT05fVFlQRV9SQVcgICAgICAgICAgICAgICAgPSAweDAsCiAJ SElGX0dFTkVSSUNfSU5ESUNBVElPTl9UWVBFX1NUUklORyAgICAgICAgICAgICA9IDB4MSwKIAlI SUZfR0VORVJJQ19JTkRJQ0FUSU9OX1RZUEVfUlhfU1RBVFMgICAgICAgICAgID0gMHgyLAogCUhJ Rl9HRU5FUklDX0lORElDQVRJT05fVFlQRV9UWF9QT1dFUl9MT09QX0lORk8gPSAweDMsCiB9Owog Ci1zdHJ1Y3QgaGlmX3J4X3N0YXRzIHsKK3N0cnVjdCB3ZnhfaGlmX3J4X3N0YXRzIHsKIAlfX2xl MzIgbmJfcnhfZnJhbWU7CiAJX19sZTMyIG5iX2NyY19mcmFtZTsKIAlfX2xlMzIgcGVyX3RvdGFs OwpAQCAtMTkzLDcgKzE5Myw3IEBAIHN0cnVjdCBoaWZfcnhfc3RhdHMgewogCXM4ICAgICBjdXJy ZW50X3RlbXA7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX3R4X3Bvd2VyX2xvb3BfaW5mbyB7 CitzdHJ1Y3Qgd2Z4X2hpZl90eF9wb3dlcl9sb29wX2luZm8gewogCV9fbGUxNiB0eF9nYWluX2Rp ZzsKIAlfX2xlMTYgdHhfZ2Fpbl9wYTsKIAlfX2xlMTYgdGFyZ2V0X3BvdXQ7IC8qIHNpZ25lZCB2 YWx1ZSAqLwpAQCAtMjAzLDE1ICsyMDMsMTUgQEAgc3RydWN0IGhpZl90eF9wb3dlcl9sb29wX2lu Zm8gewogCXU4ICAgICByZXNlcnZlZDsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfaW5kX2dl bmVyaWMgeworc3RydWN0IHdmeF9oaWZfaW5kX2dlbmVyaWMgewogCV9fbGUzMiB0eXBlOwogCXVu aW9uIHsKLQkJc3RydWN0IGhpZl9yeF9zdGF0cyByeF9zdGF0czsKLQkJc3RydWN0IGhpZl90eF9w b3dlcl9sb29wX2luZm8gdHhfcG93ZXJfbG9vcF9pbmZvOworCQlzdHJ1Y3Qgd2Z4X2hpZl9yeF9z dGF0cyByeF9zdGF0czsKKwkJc3RydWN0IHdmeF9oaWZfdHhfcG93ZXJfbG9vcF9pbmZvIHR4X3Bv d2VyX2xvb3BfaW5mbzsKIAl9IGRhdGE7CiB9IF9fcGFja2VkOwogCi1lbnVtIGhpZl9lcnJvciB7 CitlbnVtIHdmeF9oaWZfZXJyb3IgewogCUhJRl9FUlJPUl9GSVJNV0FSRV9ST0xMQkFDSyAgICAg ICAgICAgPSAweDAwLAogCUhJRl9FUlJPUl9GSVJNV0FSRV9ERUJVR19FTkFCTEVEICAgICAgPSAw eDAxLAogCUhJRl9FUlJPUl9TTEtfT1VUREFURURfU0VTU0lPTl9LRVkgICAgPSAweDAyLApAQCAt MjMyLDE3ICsyMzIsMTcgQEAgZW51bSBoaWZfZXJyb3IgewogCUhJRl9FUlJPUl9TTEtfVU5DT05G SUdVUkVEICAgICAgICAgICAgPSAweDExLAogfTsKIAotc3RydWN0IGhpZl9pbmRfZXJyb3Igewor c3RydWN0IHdmeF9oaWZfaW5kX2Vycm9yIHsKIAlfX2xlMzIgdHlwZTsKIAl1OCAgICAgZGF0YVtd OwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9pbmRfZXhjZXB0aW9uIHsKK3N0cnVjdCB3Znhf aGlmX2luZF9leGNlcHRpb24gewogCV9fbGUzMiB0eXBlOwogCXU4ICAgICBkYXRhW107CiB9IF9f cGFja2VkOwogCi1lbnVtIGhpZl9zZWN1cmVfbGlua19zdGF0ZSB7CitlbnVtIHdmeF9oaWZfc2Vj dXJlX2xpbmtfc3RhdGUgewogCVNFQ19MSU5LX1VOQVZBSUxBQkxFID0gMHgwLAogCVNFQ19MSU5L X1JFU0VSVkVEICAgID0gMHgxLAogCVNFQ19MSU5LX0VWQUwgICAgICAgID0gMHgyLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfYXBpX21pYi5oIGIvZHJpdmVycy9zdGFnaW5n L3dmeC9oaWZfYXBpX21pYi5oCmluZGV4IGJlNzZlMjc2Njg4MC4uN2I2OGI4Mzg2NmM5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfbWliLmgKKysrIGIvZHJpdmVycy9z dGFnaW5nL3dmeC9oaWZfYXBpX21pYi5oCkBAIC0xMyw3ICsxMyw3IEBACiAjZGVmaW5lIEhJRl9B UElfSVBWNF9BRERSRVNTX1NJWkUgNAogI2RlZmluZSBISUZfQVBJX0lQVjZfQUREUkVTU19TSVpF IDE2CiAKLWVudW0gaGlmX21pYl9pZHMgeworZW51bSB3ZnhfaGlmX21pYl9pZHMgewogCUhJRl9N SUJfSURfR0xfT1BFUkFUSU9OQUxfUE9XRVJfTU9ERSAgICAgICAgPSAweDIwMDAsCiAJSElGX01J Ql9JRF9HTF9CTE9DS19BQ0tfSU5GTyAgICAgICAgICAgICAgICA9IDB4MjAwMSwKIAlISUZfTUlC X0lEX0dMX1NFVF9NVUxUSV9NU0cgICAgICAgICAgICAgICAgID0gMHgyMDAyLApAQCAtNjMsMzkg KzYzLDM5IEBAIGVudW0gaGlmX21pYl9pZHMgewogCUhJRl9NSUJfSURfQkVBQ09OX1NUQVRTICAg ICAgICAgICAgICAgICAgICAgPSAweDIwNTYsCiB9OwogCi1lbnVtIGhpZl9vcF9wb3dlcl9tb2Rl IHsKK2VudW0gd2Z4X2hpZl9vcF9wb3dlcl9tb2RlIHsKIAlISUZfT1BfUE9XRVJfTU9ERV9BQ1RJ VkUgICAgPSAweDAsCiAJSElGX09QX1BPV0VSX01PREVfRE9aRSAgICAgID0gMHgxLAogCUhJRl9P UF9QT1dFUl9NT0RFX1FVSUVTQ0VOVCA9IDB4MgogfTsKIAotc3RydWN0IGhpZl9taWJfZ2xfb3Bl cmF0aW9uYWxfcG93ZXJfbW9kZSB7CitzdHJ1Y3Qgd2Z4X2hpZl9taWJfZ2xfb3BlcmF0aW9uYWxf cG93ZXJfbW9kZSB7CiAJdTggICAgIHBvd2VyX21vZGU6NDsKIAl1OCAgICAgcmVzZXJ2ZWQxOjM7 CiAJdTggICAgIHd1cF9pbmRfYWN0aXZhdGlvbjoxOwogCXU4ICAgICByZXNlcnZlZDJbM107CiB9 IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX21pYl9nbF9zZXRfbXVsdGlfbXNnIHsKK3N0cnVjdCB3 ZnhfaGlmX21pYl9nbF9zZXRfbXVsdGlfbXNnIHsKIAl1OCAgICAgZW5hYmxlX211bHRpX3R4X2Nv bmY6MTsKIAl1OCAgICAgcmVzZXJ2ZWQxOjc7CiAJdTggICAgIHJlc2VydmVkMlszXTsKIH0gX19w YWNrZWQ7CiAKLWVudW0gaGlmX2FycF9uc19mcmFtZV90cmVhdG1lbnQgeworZW51bSB3ZnhfaGlm X2FycF9uc19mcmFtZV90cmVhdG1lbnQgewogCUhJRl9BUlBfTlNfRklMVEVSSU5HX0RJU0FCTEUg PSAweDAsCiAJSElGX0FSUF9OU19GSUxURVJJTkdfRU5BQkxFICA9IDB4MSwKIAlISUZfQVJQX05T X1JFUExZX0VOQUJMRSAgICAgID0gMHgyCiB9OwogCi1zdHJ1Y3QgaGlmX21pYl9hcnBfaXBfYWRk cl90YWJsZSB7CitzdHJ1Y3Qgd2Z4X2hpZl9taWJfYXJwX2lwX2FkZHJfdGFibGUgewogCXU4ICAg ICBjb25kaXRpb25faWR4OwogCXU4ICAgICBhcnBfZW5hYmxlOwogCXU4ICAgICByZXNlcnZlZFsy XTsKIAl1OCAgICAgaXB2NF9hZGRyZXNzW0hJRl9BUElfSVBWNF9BRERSRVNTX1NJWkVdOwogfSBf X3BhY2tlZDsKIAotc3RydWN0IGhpZl9taWJfcnhfZmlsdGVyIHsKK3N0cnVjdCB3ZnhfaGlmX21p Yl9yeF9maWx0ZXIgewogCXU4ICAgICByZXNlcnZlZDE6MTsKIAl1OCAgICAgYnNzaWRfZmlsdGVy OjE7CiAJdTggICAgIHJlc2VydmVkMjoxOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHN0cnVjdCBoaWZf bWliX3J4X2ZpbHRlciB7CiAJdTggICAgIHJlc2VydmVkNFszXTsKIH0gX19wYWNrZWQ7CiAKLXN0 cnVjdCBoaWZfaWVfdGFibGVfZW50cnkgeworc3RydWN0IHdmeF9oaWZfaWVfdGFibGVfZW50cnkg ewogCXU4ICAgICBpZV9pZDsKIAl1OCAgICAgaGFzX2NoYW5nZWQ6MTsKIAl1OCAgICAgbm9fbG9u Z2VyOjE7CkBAIC0xMTYsMjMgKzExNiwyMyBAQCBzdHJ1Y3QgaGlmX2llX3RhYmxlX2VudHJ5IHsK IAl1OCAgICAgbWF0Y2hfZGF0YVszXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfbWliX2Jj bl9maWx0ZXJfdGFibGUgeworc3RydWN0IHdmeF9oaWZfbWliX2Jjbl9maWx0ZXJfdGFibGUgewog CV9fbGUzMiBudW1fb2ZfaW5mb19lbG10czsKLQlzdHJ1Y3QgaGlmX2llX3RhYmxlX2VudHJ5IGll X3RhYmxlW107CisJc3RydWN0IHdmeF9oaWZfaWVfdGFibGVfZW50cnkgaWVfdGFibGVbXTsKIH0g X19wYWNrZWQ7CiAKLWVudW0gaGlmX2JlYWNvbl9maWx0ZXIgeworZW51bSB3ZnhfaGlmX2JlYWNv bl9maWx0ZXIgewogCUhJRl9CRUFDT05fRklMVEVSX0RJU0FCTEUgID0gMHgwLAogCUhJRl9CRUFD T05fRklMVEVSX0VOQUJMRSAgID0gMHgxLAogCUhJRl9CRUFDT05fRklMVEVSX0FVVE9fRVJQID0g MHgyCiB9OwogCi1zdHJ1Y3QgaGlmX21pYl9iY25fZmlsdGVyX2VuYWJsZSB7CitzdHJ1Y3Qgd2Z4 X2hpZl9taWJfYmNuX2ZpbHRlcl9lbmFibGUgewogCV9fbGUzMiBlbmFibGU7CiAJX19sZTMyIGJj bl9jb3VudDsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfbWliX2V4dGVuZGVkX2NvdW50X3Rh YmxlIHsKK3N0cnVjdCB3ZnhfaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZSB7CiAJX19sZTMy IGNvdW50X2Ryb3BfcGxjcDsKIAlfX2xlMzIgY291bnRfZHJvcF9mY3M7CiAJX19sZTMyIGNvdW50 X3R4X2ZyYW1lczsKQEAgLTE2NCw3ICsxNjQsNyBAQCBzdHJ1Y3QgaGlmX21pYl9leHRlbmRlZF9j b3VudF90YWJsZSB7CiAJX19sZTMyIHJlc2VydmVkWzEyXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVj dCBoaWZfbWliX2NvdW50X3RhYmxlIHsKK3N0cnVjdCB3ZnhfaGlmX21pYl9jb3VudF90YWJsZSB7 CiAJX19sZTMyIGNvdW50X2Ryb3BfcGxjcDsKIAlfX2xlMzIgY291bnRfZHJvcF9mY3M7CiAJX19s ZTMyIGNvdW50X3R4X2ZyYW1lczsKQEAgLTE5MCwzNSArMTkwLDM1IEBAIHN0cnVjdCBoaWZfbWli X2NvdW50X3RhYmxlIHsKIAlfX2xlMzIgY291bnRfZHJvcF9iaXBfbWljOwogfSBfX3BhY2tlZDsK IAotc3RydWN0IGhpZl9taWJfbWFjX2FkZHJlc3Mgeworc3RydWN0IHdmeF9oaWZfbWliX21hY19h ZGRyZXNzIHsKIAl1OCAgICAgbWFjX2FkZHJbRVRIX0FMRU5dOwogCV9fbGUxNiByZXNlcnZlZDsK IH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfbWliX3dlcF9kZWZhdWx0X2tleV9pZCB7CitzdHJ1 Y3Qgd2Z4X2hpZl9taWJfd2VwX2RlZmF1bHRfa2V5X2lkIHsKIAl1OCAgICAgd2VwX2RlZmF1bHRf a2V5X2lkOwogCXU4ICAgICByZXNlcnZlZFszXTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZf bWliX2RvdDExX3J0c190aHJlc2hvbGQgeworc3RydWN0IHdmeF9oaWZfbWliX2RvdDExX3J0c190 aHJlc2hvbGQgewogCV9fbGUzMiB0aHJlc2hvbGQ7CiB9IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlm X21pYl9zbG90X3RpbWUgeworc3RydWN0IHdmeF9oaWZfbWliX3Nsb3RfdGltZSB7CiAJX19sZTMy IHNsb3RfdGltZTsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfbWliX2N1cnJlbnRfdHhfcG93 ZXJfbGV2ZWwgeworc3RydWN0IHdmeF9oaWZfbWliX2N1cnJlbnRfdHhfcG93ZXJfbGV2ZWwgewog CV9fbGUzMiBwb3dlcl9sZXZlbDsgLyogc2lnbmVkIHZhbHVlICovCiB9IF9fcGFja2VkOwogCi1z dHJ1Y3QgaGlmX21pYl9ub25fZXJwX3Byb3RlY3Rpb24geworc3RydWN0IHdmeF9oaWZfbWliX25v bl9lcnBfcHJvdGVjdGlvbiB7CiAJdTggICAgIHVzZV9jdHNfdG9fc2VsZjoxOwogCXU4ICAgICBy ZXNlcnZlZDE6NzsKIAl1OCAgICAgcmVzZXJ2ZWQyWzNdOwogfSBfX3BhY2tlZDsKIAotZW51bSBo aWZfdG1wbHQgeworZW51bSB3ZnhfaGlmX3RtcGx0IHsKIAlISUZfVE1QTFRfUFJCUkVRID0gMHgw LAogCUhJRl9UTVBMVF9CQ04gICAgPSAweDEsCiAJSElGX1RNUExUX05VTEwgICA9IDB4MiwKQEAg LTIzMSw3ICsyMzEsNyBAQCBlbnVtIGhpZl90bXBsdCB7CiAKICNkZWZpbmUgSElGX0FQSV9NQVhf VEVNUExBVEVfRlJBTUVfU0laRSA3MDAKIAotc3RydWN0IGhpZl9taWJfdGVtcGxhdGVfZnJhbWUg eworc3RydWN0IHdmeF9oaWZfbWliX3RlbXBsYXRlX2ZyYW1lIHsKIAl1OCAgICAgZnJhbWVfdHlw ZTsKIAl1OCAgICAgaW5pdF9yYXRlOjc7CiAJdTggICAgIG1vZGU6MTsKQEAgLTIzOSw3ICsyMzks NyBAQCBzdHJ1Y3QgaGlmX21pYl90ZW1wbGF0ZV9mcmFtZSB7CiAJdTggICAgIGZyYW1lW107CiB9 IF9fcGFja2VkOwogCi1zdHJ1Y3QgaGlmX21pYl9iZWFjb25fd2FrZV91cF9wZXJpb2Qgeworc3Ry dWN0IHdmeF9oaWZfbWliX2JlYWNvbl93YWtlX3VwX3BlcmlvZCB7CiAJdTggICAgIHdha2V1cF9w ZXJpb2RfbWluOwogCXU4ICAgICByZWNlaXZlX2R0aW06MTsKIAl1OCAgICAgcmVzZXJ2ZWQxOjc7 CkBAIC0yNDcsNyArMjQ3LDcgQEAgc3RydWN0IGhpZl9taWJfYmVhY29uX3dha2VfdXBfcGVyaW9k IHsKIAl1OCAgICAgcmVzZXJ2ZWQyOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9taWJfcmNw aV9yc3NpX3RocmVzaG9sZCB7CitzdHJ1Y3Qgd2Z4X2hpZl9taWJfcmNwaV9yc3NpX3RocmVzaG9s ZCB7CiAJdTggICAgIGRldGVjdGlvbjoxOwogCXU4ICAgICByY3BpX3Jzc2k6MTsKIAl1OCAgICAg dXBwZXJ0aHJlc2g6MTsKQEAgLTI2MCwxNCArMjYwLDE0IEBAIHN0cnVjdCBoaWZfbWliX3JjcGlf cnNzaV90aHJlc2hvbGQgewogCiAjZGVmaW5lIERFRkFVTFRfQkFfTUFYX1JYX0JVRkZFUl9TSVpF IDE2CiAKLXN0cnVjdCBoaWZfbWliX2Jsb2NrX2Fja19wb2xpY3kgeworc3RydWN0IHdmeF9oaWZf bWliX2Jsb2NrX2Fja19wb2xpY3kgewogCXU4ICAgICBibG9ja19hY2tfdHhfdGlkX3BvbGljeTsK IAl1OCAgICAgcmVzZXJ2ZWQxOwogCXU4ICAgICBibG9ja19hY2tfcnhfdGlkX3BvbGljeTsKIAl1 OCAgICAgYmxvY2tfYWNrX3J4X21heF9idWZmZXJfc2l6ZTsKIH0gX19wYWNrZWQ7CiAKLWVudW0g aGlmX21wZHVfc3RhcnRfc3BhY2luZyB7CitlbnVtIHdmeF9oaWZfbXBkdV9zdGFydF9zcGFjaW5n IHsKIAlISUZfTVBEVV9TVEFSVF9TUEFDSU5HX05PX1JFU1RSSUMgPSAweDAsCiAJSElGX01QRFVf U1RBUlRfU1BBQ0lOR19RVUFSVEVSICAgID0gMHgxLAogCUhJRl9NUERVX1NUQVJUX1NQQUNJTkdf SEFMRiAgICAgICA9IDB4MiwKQEAgLTI3OCw3ICsyNzgsNyBAQCBlbnVtIGhpZl9tcGR1X3N0YXJ0 X3NwYWNpbmcgewogCUhJRl9NUERVX1NUQVJUX1NQQUNJTkdfU0lYVEVFTiAgICA9IDB4NwogfTsK IAotc3RydWN0IGhpZl9taWJfc2V0X2Fzc29jaWF0aW9uX21vZGUgeworc3RydWN0IHdmeF9oaWZf bWliX3NldF9hc3NvY2lhdGlvbl9tb2RlIHsKIAl1OCAgICAgcHJlYW1idHlwZV91c2U6MTsKIAl1 OCAgICAgbW9kZToxOwogCXU4ICAgICByYXRlc2V0OjE7CkBAIC0yOTIsNyArMjkyLDcgQEAgc3Ry dWN0IGhpZl9taWJfc2V0X2Fzc29jaWF0aW9uX21vZGUgewogCV9fbGUzMiBiYXNpY19yYXRlX3Nl dDsKIH0gX19wYWNrZWQ7CiAKLXN0cnVjdCBoaWZfbWliX3NldF91YXBzZF9pbmZvcm1hdGlvbiB7 CitzdHJ1Y3Qgd2Z4X2hpZl9taWJfc2V0X3VhcHNkX2luZm9ybWF0aW9uIHsKIAl1OCAgICAgdHJp Z19iY2tncm5kOjE7CiAJdTggICAgIHRyaWdfYmU6MTsKIAl1OCAgICAgdHJpZ192aWRlbzoxOwpA QCAtMzA4LDcgKzMwOCw3IEBAIHN0cnVjdCBoaWZfbWliX3NldF91YXBzZF9pbmZvcm1hdGlvbiB7 CiAJX19sZTE2IGF1dG9fdHJpZ2dlcl9zdGVwOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl90 eF9yYXRlX3JldHJ5X3BvbGljeSB7CitzdHJ1Y3Qgd2Z4X2hpZl90eF9yYXRlX3JldHJ5X3BvbGlj eSB7CiAJdTggICAgIHBvbGljeV9pbmRleDsKIAl1OCAgICAgc2hvcnRfcmV0cnlfY291bnQ7CiAJ dTggICAgIGxvbmdfcmV0cnlfY291bnQ7CkBAIC0zMjQsMTMgKzMyNCwxMyBAQCBzdHJ1Y3QgaGlm X3R4X3JhdGVfcmV0cnlfcG9saWN5IHsKICNkZWZpbmUgSElGX1RYX1JFVFJZX1BPTElDWV9NQVgg ICAgIDE1CiAjZGVmaW5lIEhJRl9UWF9SRVRSWV9QT0xJQ1lfSU5WQUxJRCBISUZfVFhfUkVUUllf UE9MSUNZX01BWAogCi1zdHJ1Y3QgaGlmX21pYl9zZXRfdHhfcmF0ZV9yZXRyeV9wb2xpY3kgewor c3RydWN0IHdmeF9oaWZfbWliX3NldF90eF9yYXRlX3JldHJ5X3BvbGljeSB7CiAJdTggICAgIG51 bV90eF9yYXRlX3BvbGljaWVzOwogCXU4ICAgICByZXNlcnZlZFszXTsKLQlzdHJ1Y3QgaGlmX3R4 X3JhdGVfcmV0cnlfcG9saWN5IHR4X3JhdGVfcmV0cnlfcG9saWN5W107CisJc3RydWN0IHdmeF9o aWZfdHhfcmF0ZV9yZXRyeV9wb2xpY3kgdHhfcmF0ZV9yZXRyeV9wb2xpY3lbXTsKIH0gX19wYWNr ZWQ7CiAKLXN0cnVjdCBoaWZfbWliX3Byb3RlY3RlZF9tZ210X3BvbGljeSB7CitzdHJ1Y3Qgd2Z4 X2hpZl9taWJfcHJvdGVjdGVkX21nbXRfcG9saWN5IHsKIAl1OCAgICAgcG1mX2VuYWJsZToxOwog CXU4ICAgICB1bnBtZl9hbGxvd2VkOjE7CiAJdTggICAgIGhvc3RfZW5jX2F1dGhfZnJhbWVzOjE7 CkBAIC0zMzgsNyArMzM4LDcgQEAgc3RydWN0IGhpZl9taWJfcHJvdGVjdGVkX21nbXRfcG9saWN5 IHsKIAl1OCAgICAgcmVzZXJ2ZWQyWzNdOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGhpZl9taWJf a2VlcF9hbGl2ZV9wZXJpb2Qgeworc3RydWN0IHdmeF9oaWZfbWliX2tlZXBfYWxpdmVfcGVyaW9k IHsKIAlfX2xlMTYga2VlcF9hbGl2ZV9wZXJpb2Q7CiAJdTggICAgIHJlc2VydmVkWzJdOwogfSBf X3BhY2tlZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3J4LmMgYi9kcml2 ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCmluZGV4IDdhMmEzMmUzY2ViOS4uZjI1NjRhMjBiZGNm IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCisrKyBiL2RyaXZlcnMv c3RhZ2luZy93ZngvaGlmX3J4LmMKQEAgLTE3LDcgKzE3LDcgQEAKICNpbmNsdWRlICJoaWZfYXBp X2NtZC5oIgogCiBzdGF0aWMgaW50IHdmeF9oaWZfZ2VuZXJpY19jb25maXJtKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LAotCQkJCSAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQg KmJ1ZikKKwkJCQkgICBjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwgY29uc3Qgdm9pZCAq YnVmKQogewogCS8qIEFsbCBjb25maXJtIG1lc3NhZ2VzIHN0YXJ0IHdpdGggc3RhdHVzICovCiAJ aW50IHN0YXR1cyA9IGxlMzJfdG9fY3B1cCgoX19sZTMyICopYnVmKTsKQEAgLTUxLDE4ICs1MSwx OCBAQCBzdGF0aWMgaW50IHdmeF9oaWZfZ2VuZXJpY19jb25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LAogfQogCiBzdGF0aWMgaW50IHdmeF9oaWZfdHhfY29uZmlybShzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1 ZikKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpi dWYpCiB7Ci0JY29uc3Qgc3RydWN0IGhpZl9jbmZfdHggKmJvZHkgPSBidWY7CisJY29uc3Qgc3Ry dWN0IHdmeF9oaWZfY25mX3R4ICpib2R5ID0gYnVmOwogCiAJd2Z4X3R4X2NvbmZpcm1fY2Iod2Rl diwgYm9keSk7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgd2Z4X2hpZl9tdWx0aV90eF9j b25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgaGlmX21z ZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCisJCQkJICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX21z ZyAqaGlmLCBjb25zdCB2b2lkICpidWYpCiB7Ci0JY29uc3Qgc3RydWN0IGhpZl9jbmZfbXVsdGlf dHJhbnNtaXQgKmJvZHkgPSBidWY7CisJY29uc3Qgc3RydWN0IHdmeF9oaWZfY25mX211bHRpX3Ry YW5zbWl0ICpib2R5ID0gYnVmOwogCWludCBpOwogCiAJV0FSTihib2R5LT5udW1fdHhfY29uZnMg PD0gMCwgImNvcnJ1cHRlZCBtZXNzYWdlIik7CkBAIC03MiwyMiArNzIsMjMgQEAgc3RhdGljIGlu dCB3ZnhfaGlmX211bHRpX3R4X2NvbmZpcm0oc3RydWN0IHdmeF9kZXYgKndkZXYsCiB9CiAKIHN0 YXRpYyBpbnQgd2Z4X2hpZl9zdGFydHVwX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYs Ci0JCQkJICAgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKKwkJCQkgICAgICBjb25zdCBz dHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwKIAkJCQkgICAgICBjb25zdCB2b2lkICpidWYpCiB7Ci0J Y29uc3Qgc3RydWN0IGhpZl9pbmRfc3RhcnR1cCAqYm9keSA9IGJ1ZjsKKwljb25zdCBzdHJ1Y3Qg d2Z4X2hpZl9pbmRfc3RhcnR1cCAqYm9keSA9IGJ1ZjsKIAogCWlmIChib2R5LT5zdGF0dXMgfHwg Ym9keS0+ZmlybXdhcmVfdHlwZSA+IDQpIHsKIAkJZGV2X2Vycih3ZGV2LT5kZXYsICJyZWNlaXZl ZCBpbnZhbGlkIHN0YXJ0dXAgaW5kaWNhdGlvbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0J bWVtY3B5KCZ3ZGV2LT5od19jYXBzLCBib2R5LCBzaXplb2Yoc3RydWN0IGhpZl9pbmRfc3RhcnR1 cCkpOworCW1lbWNweSgmd2Rldi0+aHdfY2FwcywgYm9keSwgc2l6ZW9mKHN0cnVjdCB3ZnhfaGlm X2luZF9zdGFydHVwKSk7CiAJY29tcGxldGUoJndkZXYtPmZpcm13YXJlX3JlYWR5KTsKIAlyZXR1 cm4gMDsKIH0KIAogc3RhdGljIGludCB3ZnhfaGlmX3dha2V1cF9pbmRpY2F0aW9uKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LAotCQkJCSAgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwgY29uc3Qg dm9pZCAqYnVmKQorCQkJCSAgICAgY29uc3Qgc3RydWN0IHdmeF9oaWZfbXNnICpoaWYsCisJCQkJ ICAgICBjb25zdCB2b2lkICpidWYpCiB7CiAJaWYgKCF3ZGV2LT5wZGF0YS5ncGlvX3dha2V1cCB8 fAogCSAgICBncGlvZF9nZXRfdmFsdWUod2Rldi0+cGRhdGEuZ3Bpb193YWtldXApID09IDApIHsK QEAgLTk4LDI4ICs5OSwyOCBAQCBzdGF0aWMgaW50IHdmeF9oaWZfd2FrZXVwX2luZGljYXRpb24o c3RydWN0IHdmeF9kZXYgKndkZXYsCiB9CiAKIHN0YXRpYyBpbnQgd2Z4X2hpZl9yZWNlaXZlX2lu ZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCi0JCQkJICAgICAgY29uc3Qgc3RydWN0IGhp Zl9tc2cgKmhpZiwKKwkJCQkgICAgICBjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwKIAkJ CQkgICAgICBjb25zdCB2b2lkICpidWYsIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0 IHdmeF92aWYgKnd2aWYgPSB3ZGV2X3RvX3d2aWYod2RldiwgaGlmLT5pbnRlcmZhY2UpOwotCWNv bnN0IHN0cnVjdCBoaWZfaW5kX3J4ICpib2R5ID0gYnVmOworCWNvbnN0IHN0cnVjdCB3ZnhfaGlm X2luZF9yeCAqYm9keSA9IGJ1ZjsKIAogCWlmICghd3ZpZikgewogCQlkZXZfd2Fybih3ZGV2LT5k ZXYsICIlczogaWdub3JlIHJ4IGRhdGEgZm9yIG5vbi1leGlzdGVudCB2aWYgJWRcbiIsCiAJCQkg X19mdW5jX18sIGhpZi0+aW50ZXJmYWNlKTsKIAkJcmV0dXJuIC1FSU87CiAJfQotCXNrYl9wdWxs KHNrYiwgc2l6ZW9mKHN0cnVjdCBoaWZfbXNnKSArIHNpemVvZihzdHJ1Y3QgaGlmX2luZF9yeCkp OworCXNrYl9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX21zZykgKyBzaXplb2Yoc3Ry dWN0IGhpZl9pbmRfcngpKTsKIAl3ZnhfcnhfY2Iod3ZpZiwgYm9keSwgc2tiKTsKIAogCXJldHVy biAwOwogfQogCiBzdGF0aWMgaW50IHdmeF9oaWZfZXZlbnRfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwKLQkJCQkgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwgY29uc3Qgdm9p ZCAqYnVmKQorCQkJCSAgICBjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwgY29uc3Qgdm9p ZCAqYnVmKQogewogCXN0cnVjdCB3ZnhfdmlmICp3dmlmID0gd2Rldl90b193dmlmKHdkZXYsIGhp Zi0+aW50ZXJmYWNlKTsKLQljb25zdCBzdHJ1Y3QgaGlmX2luZF9ldmVudCAqYm9keSA9IGJ1ZjsK Kwljb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9pbmRfZXZlbnQgKmJvZHkgPSBidWY7CiAJaW50IHR5cGUg PSBsZTMyX3RvX2NwdShib2R5LT5ldmVudF9pZCk7CiAKIAlpZiAoIXd2aWYpIHsKQEAgLTE1MSw3 ICsxNTIsNyBAQCBzdGF0aWMgaW50IHdmeF9oaWZfZXZlbnRfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwKIH0KIAogc3RhdGljIGludCB3ZnhfaGlmX3BtX21vZGVfY29tcGxldGVfaW5k aWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKLQkJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBo aWZfbXNnICpoaWYsCisJCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwK IAkJCQkJICAgICAgIGNvbnN0IHZvaWQgKmJ1ZikKIHsKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9 IHdkZXZfdG9fd3ZpZih3ZGV2LCBoaWYtPmludGVyZmFjZSk7CkBAIC0xNjYsMTEgKzE2NywxMSBA QCBzdGF0aWMgaW50IHdmeF9oaWZfcG1fbW9kZV9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LAogfQogCiBzdGF0aWMgaW50IHdmeF9oaWZfc2Nhbl9jb21wbGV0ZV9pbmRp Y2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCQkgICAgY29uc3Qgc3RydWN0IGhpZl9t c2cgKmhpZiwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmLAogCQkJCQkg ICAgY29uc3Qgdm9pZCAqYnVmKQogewogCXN0cnVjdCB3ZnhfdmlmICp3dmlmID0gd2Rldl90b193 dmlmKHdkZXYsIGhpZi0+aW50ZXJmYWNlKTsKLQljb25zdCBzdHJ1Y3QgaGlmX2luZF9zY2FuX2Nt cGwgKmJvZHkgPSBidWY7CisJY29uc3Qgc3RydWN0IHdmeF9oaWZfaW5kX3NjYW5fY21wbCAqYm9k eSA9IGJ1ZjsKIAogCWlmICghd3ZpZikgewogCQlkZXZfd2Fybih3ZGV2LT5kZXYsICIlczogcmVj ZWl2ZWQgZXZlbnQgZm9yIG5vbi1leGlzdGVudCB2aWZcbiIsIF9fZnVuY19fKTsKQEAgLTE4Myw3 ICsxODQsNyBAQCBzdGF0aWMgaW50IHdmeF9oaWZfc2Nhbl9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LAogfQogCiBzdGF0aWMgaW50IHdmeF9oaWZfam9pbl9jb21wbGV0 ZV9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCQkgICAgY29uc3Qgc3RydWN0 IGhpZl9tc2cgKmhpZiwKKwkJCQkJICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmLAog CQkJCQkgICAgY29uc3Qgdm9pZCAqYnVmKQogewogCXN0cnVjdCB3ZnhfdmlmICp3dmlmID0gd2Rl dl90b193dmlmKHdkZXYsIGhpZi0+aW50ZXJmYWNlKTsKQEAgLTE5OCwxMCArMTk5LDEwIEBAIHN0 YXRpYyBpbnQgd2Z4X2hpZl9qb2luX2NvbXBsZXRlX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYg KndkZXYsCiB9CiAKIHN0YXRpYyBpbnQgd2Z4X2hpZl9zdXNwZW5kX3Jlc3VtZV9pbmRpY2F0aW9u KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCQkgICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpo aWYsCisJCQkJCSAgICAgY29uc3Qgc3RydWN0IHdmeF9oaWZfbXNnICpoaWYsCiAJCQkJCSAgICAg Y29uc3Qgdm9pZCAqYnVmKQogewotCWNvbnN0IHN0cnVjdCBoaWZfaW5kX3N1c3BlbmRfcmVzdW1l X3R4ICpib2R5ID0gYnVmOworCWNvbnN0IHN0cnVjdCB3ZnhfaGlmX2luZF9zdXNwZW5kX3Jlc3Vt ZV90eCAqYm9keSA9IGJ1ZjsKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZjsKIAogCWlmIChib2R5LT5i Y19tY19vbmx5KSB7CkBAIC0yMjcsMTAgKzIyOCwxMCBAQCBzdGF0aWMgaW50IHdmeF9oaWZfc3Vz cGVuZF9yZXN1bWVfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIH0KIAogc3RhdGlj IGludCB3ZnhfaGlmX2dlbmVyaWNfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKLQkJ CQkgICAgICBjb25zdCBzdHJ1Y3QgaGlmX21zZyAqaGlmLAorCQkJCSAgICAgIGNvbnN0IHN0cnVj dCB3ZnhfaGlmX21zZyAqaGlmLAogCQkJCSAgICAgIGNvbnN0IHZvaWQgKmJ1ZikKIHsKLQljb25z dCBzdHJ1Y3QgaGlmX2luZF9nZW5lcmljICpib2R5ID0gYnVmOworCWNvbnN0IHN0cnVjdCB3Znhf aGlmX2luZF9nZW5lcmljICpib2R5ID0gYnVmOwogCWludCB0eXBlID0gbGUzMl90b19jcHUoYm9k eS0+dHlwZSk7CiAKIAlzd2l0Y2ggKHR5cGUpIHsKQEAgLTMwOCw5ICszMDksOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHsKIH07CiAKIHN0YXRpYyBpbnQgd2Z4X2hpZl9lcnJvcl9pbmRpY2F0aW9u KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCSAgICBjb25zdCBzdHJ1Y3QgaGlmX21zZyAqaGlm LCBjb25zdCB2b2lkICpidWYpCisJCQkJICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlm LCBjb25zdCB2b2lkICpidWYpCiB7Ci0JY29uc3Qgc3RydWN0IGhpZl9pbmRfZXJyb3IgKmJvZHkg PSBidWY7CisJY29uc3Qgc3RydWN0IHdmeF9oaWZfaW5kX2Vycm9yICpib2R5ID0gYnVmOwogCWlu dCB0eXBlID0gbGUzMl90b19jcHUoYm9keS0+dHlwZSk7CiAJaW50IHBhcmFtID0gKHM4KWJvZHkt PmRhdGFbMF07CiAJaW50IGk7CkBAIC0zMzUsMTAgKzMzNiwxMCBAQCBzdGF0aWMgaW50IHdmeF9o aWZfZXJyb3JfaW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIH07CiAKIHN0YXRpYyBp bnQgd2Z4X2hpZl9leGNlcHRpb25faW5kaWNhdGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKLQkJ CQkJY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwKKwkJCQkJY29uc3Qgc3RydWN0IHdmeF9oaWZf bXNnICpoaWYsCiAJCQkJCWNvbnN0IHZvaWQgKmJ1ZikKIHsKLQljb25zdCBzdHJ1Y3QgaGlmX2lu ZF9leGNlcHRpb24gKmJvZHkgPSBidWY7CisJY29uc3Qgc3RydWN0IHdmeF9oaWZfaW5kX2V4Y2Vw dGlvbiAqYm9keSA9IGJ1ZjsKIAlpbnQgdHlwZSA9IGxlMzJfdG9fY3B1KGJvZHktPnR5cGUpOwog CiAJaWYgKHR5cGUgPT0gNCkKQEAgLTM1Niw3ICszNTcsNyBAQCBzdGF0aWMgaW50IHdmeF9oaWZf ZXhjZXB0aW9uX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsCiBzdGF0aWMgY29uc3Qg c3RydWN0IHsKIAlpbnQgbXNnX2lkOwogCWludCAoKmhhbmRsZXIpKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LAotCQkgICAgICAgY29uc3Qgc3RydWN0IGhpZl9tc2cgKmhpZiwgY29uc3Qgdm9pZCAqYnVm KTsKKwkJICAgICAgIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpi dWYpOwogfSBoaWZfaGFuZGxlcnNbXSA9IHsKIAkvKiBDb25maXJtYXRpb25zICovCiAJeyBISUZf Q05GX0lEX1RYLCAgICAgICAgICAgICAgICB3ZnhfaGlmX3R4X2NvbmZpcm0gfSwKQEAgLTM3OSw3 ICszODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIHZvaWQgd2Z4X2hhbmRsZV9yeChzdHJ1 Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlpbnQgaTsKLQljb25z dCBzdHJ1Y3QgaGlmX21zZyAqaGlmID0gKGNvbnN0IHN0cnVjdCBoaWZfbXNnICopc2tiLT5kYXRh OworCWNvbnN0IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmID0gKGNvbnN0IHN0cnVjdCBoaWZfbXNn ICopc2tiLT5kYXRhOwogCWludCBoaWZfaWQgPSBoaWYtPmlkOwogCiAJaWYgKGhpZl9pZCA9PSBI SUZfSU5EX0lEX1JYKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5j IGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYwppbmRleCA2N2YxODQ3YzFmYzEuLjQyOWM3 MGI5OTFlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYworKysgYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5jCkBAIC0yMiw3ICsyMiw3IEBAIHZvaWQgd2Z4X2lu aXRfaGlmX2NtZChzdHJ1Y3Qgd2Z4X2hpZl9jbWQgKmhpZl9jbWQpCiAJbXV0ZXhfaW5pdCgmaGlm X2NtZC0+bG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIHdmeF9maWxsX2hlYWRlcihzdHJ1Y3QgaGlm X21zZyAqaGlmLCBpbnQgaWZfaWQsCitzdGF0aWMgdm9pZCB3ZnhfZmlsbF9oZWFkZXIoc3RydWN0 IHdmeF9oaWZfbXNnICpoaWYsIGludCBpZl9pZCwKIAkJCSAgICB1bnNpZ25lZCBpbnQgY21kLCBz aXplX3Qgc2l6ZSkKIHsKIAlpZiAoaWZfaWQgPT0gLTEpCkBAIC0zNywxNiArMzcsMTYgQEAgc3Rh dGljIHZvaWQgd2Z4X2ZpbGxfaGVhZGVyKHN0cnVjdCBoaWZfbXNnICpoaWYsIGludCBpZl9pZCwK IAloaWYtPmludGVyZmFjZSA9IGlmX2lkOwogfQogCi1zdGF0aWMgdm9pZCAqd2Z4X2FsbG9jX2hp ZihzaXplX3QgYm9keV9sZW4sIHN0cnVjdCBoaWZfbXNnICoqaGlmKQorc3RhdGljIHZvaWQgKndm eF9hbGxvY19oaWYoc2l6ZV90IGJvZHlfbGVuLCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKipoaWYpCiB7 Ci0JKmhpZiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBoaWZfbXNnKSArIGJvZHlfbGVuLCBHRlBf S0VSTkVMKTsKKwkqaGlmID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHdmeF9oaWZfbXNnKSArIGJv ZHlfbGVuLCBHRlBfS0VSTkVMKTsKIAlpZiAoKmhpZikKIAkJcmV0dXJuICgqaGlmKS0+Ym9keTsK IAllbHNlCiAJCXJldHVybiBOVUxMOwogfQogCi1pbnQgd2Z4X2NtZF9zZW5kKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LCBzdHJ1Y3QgaGlmX21zZyAqcmVxdWVzdCwKK2ludCB3ZnhfY21kX3NlbmQoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCB3ZnhfaGlmX21zZyAqcmVxdWVzdCwKIAkJIHZvaWQg KnJlcGx5LCBzaXplX3QgcmVwbHlfbGVuLCBib29sIG5vX3JlcGx5KQogewogCWNvbnN0IGNoYXIg Km1pYl9uYW1lID0gIiI7CkBAIC0xMjUsNyArMTI1LDcgQEAgaW50IHdmeF9jbWRfc2VuZChzdHJ1 Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IGhpZl9tc2cgKnJlcXVlc3QsCiBpbnQgd2Z4X2hpZl9z aHV0ZG93bihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCBoaWZf bXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CiAKIAl3ZnhfYWxsb2NfaGlmKDAs ICZoaWYpOwogCWlmICghaGlmKQpAQCAtMTQzLDkgKzE0Myw5IEBAIGludCB3ZnhfaGlmX3NodXRk b3duKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogaW50IHdmeF9oaWZfY29uZmlndXJhdGlvbihzdHJ1 Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3QgdTggKmNvbmYsIHNpemVfdCBsZW4pCiB7CiAJaW50IHJl dDsKLQlzaXplX3QgYnVmX2xlbiA9IHNpemVvZihzdHJ1Y3QgaGlmX3JlcV9jb25maWd1cmF0aW9u KSArIGxlbjsKLQlzdHJ1Y3QgaGlmX21zZyAqaGlmOwotCXN0cnVjdCBoaWZfcmVxX2NvbmZpZ3Vy YXRpb24gKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKGJ1Zl9sZW4sICZoaWYpOworCXNpemVfdCBidWZf bGVuID0gc2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX3JlcV9jb25maWd1cmF0aW9uKSArIGxlbjsKKwlz dHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZjsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfY29uZmlndXJhdGlv biAqYm9keSA9IHdmeF9hbGxvY19oaWYoYnVmX2xlbiwgJmhpZik7CiAKIAlpZiAoIWhpZikKIAkJ cmV0dXJuIC1FTk9NRU07CkBAIC0xNjAsOCArMTYwLDggQEAgaW50IHdmeF9oaWZfY29uZmlndXJh dGlvbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3QgdTggKmNvbmYsIHNpemVfdCBsZW4pCiBp bnQgd2Z4X2hpZl9yZXNldChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCByZXNldF9zdGF0KQog ewogCWludCByZXQ7Ci0Jc3RydWN0IGhpZl9tc2cgKmhpZjsKLQlzdHJ1Y3QgaGlmX3JlcV9yZXNl dCAqYm9keSA9IHdmeF9hbGxvY19oaWYoc2l6ZW9mKCpib2R5KSwgJmhpZik7CisJc3RydWN0IHdm eF9oaWZfbXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfcmVxX3Jlc2V0ICpib2R5ID0gd2Z4X2Fs bG9jX2hpZihzaXplb2YoKmJvZHkpLCAmaGlmKTsKIAogCWlmICghaGlmKQogCQlyZXR1cm4gLUVO T01FTTsKQEAgLTE3NiwxMCArMTc2LDEwIEBAIGludCB3ZnhfaGlmX3JlYWRfbWliKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCBpbnQgdmlmX2lkLCB1MTYgbWliX2lkLAogCQkgICAgIHZvaWQgKnZhbCwg c2l6ZV90IHZhbF9sZW4pCiB7CiAJaW50IHJldDsKLQlzdHJ1Y3QgaGlmX21zZyAqaGlmOwotCWlu dCBidWZfbGVuID0gc2l6ZW9mKHN0cnVjdCBoaWZfY25mX3JlYWRfbWliKSArIHZhbF9sZW47Ci0J c3RydWN0IGhpZl9yZXFfcmVhZF9taWIgKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKHNpemVvZigqYm9k eSksICZoaWYpOwotCXN0cnVjdCBoaWZfY25mX3JlYWRfbWliICpyZXBseSA9IGttYWxsb2MoYnVm X2xlbiwgR0ZQX0tFUk5FTCk7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CisJaW50IGJ1Zl9s ZW4gPSBzaXplb2Yoc3RydWN0IHdmeF9oaWZfY25mX3JlYWRfbWliKSArIHZhbF9sZW47CisJc3Ry dWN0IHdmeF9oaWZfcmVxX3JlYWRfbWliICpib2R5ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJv ZHkpLCAmaGlmKTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9jbmZfcmVhZF9taWIgKnJlcGx5ID0ga21hbGxv YyhidWZfbGVuLCBHRlBfS0VSTkVMKTsKIAogCWlmICghYm9keSB8fCAhcmVwbHkpIHsKIAkJcmV0 ID0gLUVOT01FTTsKQEAgLTIxMiw5ICsyMTIsOSBAQCBpbnQgd2Z4X2hpZl93cml0ZV9taWIoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQsIHUxNiBtaWJfaWQsCiAJCSAgICAgIHZvaWQg KnZhbCwgc2l6ZV90IHZhbF9sZW4pCiB7CiAJaW50IHJldDsKLQlzdHJ1Y3QgaGlmX21zZyAqaGlm OwotCWludCBidWZfbGVuID0gc2l6ZW9mKHN0cnVjdCBoaWZfcmVxX3dyaXRlX21pYikgKyB2YWxf bGVuOwotCXN0cnVjdCBoaWZfcmVxX3dyaXRlX21pYiAqYm9keSA9IHdmeF9hbGxvY19oaWYoYnVm X2xlbiwgJmhpZik7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CisJaW50IGJ1Zl9sZW4gPSBz aXplb2Yoc3RydWN0IHdmeF9oaWZfcmVxX3dyaXRlX21pYikgKyB2YWxfbGVuOworCXN0cnVjdCB3 ZnhfaGlmX3JlcV93cml0ZV9taWIgKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKGJ1Zl9sZW4sICZoaWYp OwogCiAJaWYgKCFoaWYpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMjMxLDEwICsyMzEsMTAgQEAg aW50IHdmeF9oaWZfc2NhbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgc3RydWN0IGNmZzgwMjExX3Nj YW5fcmVxdWVzdCAqcmVxLAogCQkgaW50IGNoYW5fc3RhcnRfaWR4LCBpbnQgY2hhbl9udW0pCiB7 CiAJaW50IHJldCwgaTsKLQlzdHJ1Y3QgaGlmX21zZyAqaGlmOwotCXNpemVfdCBidWZfbGVuID0K LQkJc2l6ZW9mKHN0cnVjdCBoaWZfcmVxX3N0YXJ0X3NjYW5fYWx0KSArIGNoYW5fbnVtICogc2l6 ZW9mKHU4KTsKLQlzdHJ1Y3QgaGlmX3JlcV9zdGFydF9zY2FuX2FsdCAqYm9keSA9IHdmeF9hbGxv Y19oaWYoYnVmX2xlbiwgJmhpZik7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CisJc2l6ZV90 IGJ1Zl9sZW4gPSBzaXplb2Yoc3RydWN0IHdmeF9oaWZfcmVxX3N0YXJ0X3NjYW5fYWx0KSArCisJ CQkgY2hhbl9udW0gKiBzaXplb2YodTgpOworCXN0cnVjdCB3ZnhfaGlmX3JlcV9zdGFydF9zY2Fu X2FsdCAqYm9keSA9IHdmeF9hbGxvY19oaWYoYnVmX2xlbiwgJmhpZik7CiAKIAlXQVJOKGNoYW5f bnVtID4gSElGX0FQSV9NQVhfTkJfQ0hBTk5FTFMsICJpbnZhbGlkIHBhcmFtcyIpOwogCVdBUk4o cmVxLT5uX3NzaWRzID4gSElGX0FQSV9NQVhfTkJfU1NJRFMsICJpbnZhbGlkIHBhcmFtcyIpOwpA QCAtMjc5LDcgKzI3OSw3IEBAIGludCB3ZnhfaGlmX3NjYW4oc3RydWN0IHdmeF92aWYgKnd2aWYs IHN0cnVjdCBjZmc4MDIxMV9zY2FuX3JlcXVlc3QgKnJlcSwKIGludCB3ZnhfaGlmX3N0b3Bfc2Nh bihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCBoaWZfbXNnICpo aWY7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CiAJLyogYm9keSBhc3NvY2lhdGVkIHRvIEhJ Rl9SRVFfSURfU1RPUF9TQ0FOIGlzIGVtcHR5ICovCiAJd2Z4X2FsbG9jX2hpZigwLCAmaGlmKTsK IApAQCAtMjk1LDggKzI5NSw4IEBAIGludCB3ZnhfaGlmX2pvaW4oc3RydWN0IHdmeF92aWYgKnd2 aWYsIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmNvbmYsCiAJCSBzdHJ1Y3QgaWVl ZTgwMjExX2NoYW5uZWwgKmNoYW5uZWwsIGNvbnN0IHU4ICpzc2lkLCBpbnQgc3NpZGxlbikKIHsK IAlpbnQgcmV0OwotCXN0cnVjdCBoaWZfbXNnICpoaWY7Ci0Jc3RydWN0IGhpZl9yZXFfam9pbiAq Ym9keSA9IHdmeF9hbGxvY19oaWYoc2l6ZW9mKCpib2R5KSwgJmhpZik7CisJc3RydWN0IHdmeF9o aWZfbXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfcmVxX2pvaW4gKmJvZHkgPSB3ZnhfYWxsb2Nf aGlmKHNpemVvZigqYm9keSksICZoaWYpOwogCiAJV0FSTl9PTighY29uZi0+YmVhY29uX2ludCk7 CiAJV0FSTl9PTighY29uZi0+YmFzaWNfcmF0ZXMpOwpAQCAtMzI1LDkgKzMyNSw5IEBAIGludCB3 ZnhfaGlmX2pvaW4oc3RydWN0IHdmeF92aWYgKnd2aWYsIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFf YnNzX2NvbmYgKmNvbmYsCiBpbnQgd2Z4X2hpZl9zZXRfYnNzX3BhcmFtcyhzdHJ1Y3Qgd2Z4X3Zp ZiAqd3ZpZiwgaW50IGFpZCwgaW50IGJlYWNvbl9sb3N0X2NvdW50KQogewogCWludCByZXQ7Ci0J c3RydWN0IGhpZl9tc2cgKmhpZjsKLQlzdHJ1Y3QgaGlmX3JlcV9zZXRfYnNzX3BhcmFtcyAqYm9k eSA9Ci0JCXdmeF9hbGxvY19oaWYoc2l6ZW9mKCpib2R5KSwgJmhpZik7CisJc3RydWN0IHdmeF9o aWZfbXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfcmVxX3NldF9ic3NfcGFyYW1zICpib2R5ID0g d2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLAorCQkJCQkJCQkmaGlmKTsKIAogCWlmICghaGlm KQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTM0MCwxMiArMzQwLDEyIEBAIGludCB3ZnhfaGlmX3Nl dF9ic3NfcGFyYW1zKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgYWlkLCBpbnQgYmVhY29uX2xv c3RfY291bnQpCiAJcmV0dXJuIHJldDsKIH0KIAotaW50IHdmeF9oaWZfYWRkX2tleShzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgY29uc3Qgc3RydWN0IGhpZl9yZXFfYWRkX2tleSAqYXJnKQoraW50IHdm eF9oaWZfYWRkX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgc3RydWN0IHdmeF9oaWZf cmVxX2FkZF9rZXkgKmFyZykKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCBoaWZfbXNnICpoaWY7CisJ c3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CiAJLyogRklYTUU6IG9ubHkgc2VuZCBuZWNlc3Nhcnkg Yml0cyAqLwotCXN0cnVjdCBoaWZfcmVxX2FkZF9rZXkgKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKHNp emVvZigqYm9keSksICZoaWYpOworCXN0cnVjdCB3ZnhfaGlmX3JlcV9hZGRfa2V5ICpib2R5ID0g d2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLCAmaGlmKTsKIAogCWlmICghaGlmKQogCQlyZXR1 cm4gLUVOT01FTTsKQEAgLTM2Nyw4ICszNjcsOCBAQCBpbnQgd2Z4X2hpZl9hZGRfa2V5KHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCBzdHJ1Y3QgaGlmX3JlcV9hZGRfa2V5ICphcmcpCiBpbnQg d2Z4X2hpZl9yZW1vdmVfa2V5KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgaWR4KQogewogCWlu dCByZXQ7Ci0Jc3RydWN0IGhpZl9tc2cgKmhpZjsKLQlzdHJ1Y3QgaGlmX3JlcV9yZW1vdmVfa2V5 ICpib2R5ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLCAmaGlmKTsKKwlzdHJ1Y3Qgd2Z4 X2hpZl9tc2cgKmhpZjsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfcmVtb3ZlX2tleSAqYm9keSA9IHdm eF9hbGxvY19oaWYoc2l6ZW9mKCpib2R5KSwgJmhpZik7CiAKIAlpZiAoIWhpZikKIAkJcmV0dXJu IC1FTk9NRU07CkBAIC0zODMsOSArMzgzLDkgQEAgaW50IHdmeF9oaWZfc2V0X2VkY2FfcXVldWVf cGFyYW1zKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCB1MTYgcXVldWUsCiAJCQkJICBjb25zdCBzdHJ1 Y3QgaWVlZTgwMjExX3R4X3F1ZXVlX3BhcmFtcyAqYXJnKQogewogCWludCByZXQ7Ci0Jc3RydWN0 IGhpZl9tc2cgKmhpZjsKLQlzdHJ1Y3QgaGlmX3JlcV9lZGNhX3F1ZXVlX3BhcmFtcyAqYm9keSA9 IHdmeF9hbGxvY19oaWYoc2l6ZW9mKCpib2R5KSwKLQkJCQkJCQkgICAgICAgJmhpZik7CisJc3Ry dWN0IHdmeF9oaWZfbXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfcmVxX2VkY2FfcXVldWVfcGFy YW1zICpib2R5ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLAorCQkJCQkJCQkgICAmaGlm KTsKIAogCWlmICghYm9keSkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC00MTMsOCArNDEzLDkgQEAg aW50IHdmeF9oaWZfc2V0X2VkY2FfcXVldWVfcGFyYW1zKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCB1 MTYgcXVldWUsCiBpbnQgd2Z4X2hpZl9zZXRfcG0oc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wg cHMsIGludCBkeW5hbWljX3BzX3RpbWVvdXQpCiB7CiAJaW50IHJldDsKLQlzdHJ1Y3QgaGlmX21z ZyAqaGlmOwotCXN0cnVjdCBoaWZfcmVxX3NldF9wbV9tb2RlICpib2R5ID0gd2Z4X2FsbG9jX2hp ZihzaXplb2YoKmJvZHkpLCAmaGlmKTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZjsKKwlzdHJ1 Y3Qgd2Z4X2hpZl9yZXFfc2V0X3BtX21vZGUgKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKHNpemVvZigq Ym9keSksCisJCQkJCQkJICAgICAmaGlmKTsKIAogCWlmICghYm9keSkKIAkJcmV0dXJuIC1FTk9N RU07CkBAIC00MzgsOCArNDM5LDggQEAgaW50IHdmeF9oaWZfc3RhcnQoc3RydWN0IHdmeF92aWYg Knd2aWYsIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmNvbmYsCiAJCSAgY29uc3Qg c3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFubmVsKQogewogCWludCByZXQ7Ci0Jc3RydWN0 IGhpZl9tc2cgKmhpZjsKLQlzdHJ1Y3QgaGlmX3JlcV9zdGFydCAqYm9keSA9IHdmeF9hbGxvY19o aWYoc2l6ZW9mKCpib2R5KSwgJmhpZik7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CisJc3Ry dWN0IHdmeF9oaWZfcmVxX3N0YXJ0ICpib2R5ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkp LCAmaGlmKTsKIAogCVdBUk5fT04oIWNvbmYtPmJlYWNvbl9pbnQpOwogCWlmICghaGlmKQpAQCAt NDYxLDkgKzQ2Miw5IEBAIGludCB3ZnhfaGlmX3N0YXJ0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBj b25zdCBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpjb25mLAogaW50IHdmeF9oaWZfYmVhY29u X3RyYW5zbWl0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGVuYWJsZSkKIHsKIAlpbnQgcmV0 OwotCXN0cnVjdCBoaWZfbXNnICpoaWY7Ci0Jc3RydWN0IGhpZl9yZXFfYmVhY29uX3RyYW5zbWl0 ICpib2R5ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLAotCQkJCQkJCSAgICAgJmhpZik7 CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfcmVxX2JlYWNvbl90 cmFuc21pdCAqYm9keSA9IHdmeF9hbGxvY19oaWYoc2l6ZW9mKCpib2R5KSwKKwkJCQkJCQkJICZo aWYpOwogCiAJaWYgKCFoaWYpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNDc5LDggKzQ4MCw4IEBA IGludCB3ZnhfaGlmX21hcF9saW5rKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIHVubWFwLCB1 OCAqbWFjX2FkZHIsIGludCBzdGFfaWQsCiAJCSAgICAgYm9vbCBtZnApCiB7CiAJaW50IHJldDsK LQlzdHJ1Y3QgaGlmX21zZyAqaGlmOwotCXN0cnVjdCBoaWZfcmVxX21hcF9saW5rICpib2R5ID0g d2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLCAmaGlmKTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9tc2cg KmhpZjsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfbWFwX2xpbmsgKmJvZHkgPSB3ZnhfYWxsb2NfaGlm KHNpemVvZigqYm9keSksICZoaWYpOwogCiAJaWYgKCFoaWYpCiAJCXJldHVybiAtRU5PTUVNOwpA QCAtNDk5LDkgKzUwMCw5IEBAIGludCB3ZnhfaGlmX3VwZGF0ZV9pZV9iZWFjb24oc3RydWN0IHdm eF92aWYgKnd2aWYsCiAJCQkgICAgIGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKQogewog CWludCByZXQ7Ci0Jc3RydWN0IGhpZl9tc2cgKmhpZjsKLQlpbnQgYnVmX2xlbiA9IHNpemVvZihz dHJ1Y3QgaGlmX3JlcV91cGRhdGVfaWUpICsgaWVzX2xlbjsKLQlzdHJ1Y3QgaGlmX3JlcV91cGRh dGVfaWUgKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKGJ1Zl9sZW4sICZoaWYpOworCXN0cnVjdCB3Znhf aGlmX21zZyAqaGlmOworCWludCBidWZfbGVuID0gc2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX3JlcV91 cGRhdGVfaWUpICsgaWVzX2xlbjsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdXBkYXRlX2llICpib2R5 ID0gd2Z4X2FsbG9jX2hpZihidWZfbGVuLCAmaGlmKTsKIAogCWlmICghaGlmKQogCQlyZXR1cm4g LUVOT01FTTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4LmggYi9kcml2 ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5oCmluZGV4IGIyOGEyZWU1MzUwYS4uMzZjYWZmYTRkMWVi IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5oCisrKyBiL2RyaXZlcnMv c3RhZ2luZy93ZngvaGlmX3R4LmgKQEAgLTE4LDIyICsxOCwyMiBAQCBzdHJ1Y3QgaWVlZTgwMjEx X2NoYW5uZWw7CiBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mOwogc3RydWN0IGllZWU4MDIxMV90 eF9xdWV1ZV9wYXJhbXM7CiBzdHJ1Y3QgY2ZnODAyMTFfc2Nhbl9yZXF1ZXN0Owotc3RydWN0IGhp Zl9yZXFfYWRkX2tleTsKK3N0cnVjdCB3ZnhfaGlmX3JlcV9hZGRfa2V5Owogc3RydWN0IHdmeF9k ZXY7CiBzdHJ1Y3Qgd2Z4X3ZpZjsKIAogc3RydWN0IHdmeF9oaWZfY21kIHsKLQlzdHJ1Y3QgbXV0 ZXggICAgICBsb2NrOwotCXN0cnVjdCBjb21wbGV0aW9uIHJlYWR5OwotCXN0cnVjdCBjb21wbGV0 aW9uIGRvbmU7Ci0Jc3RydWN0IGhpZl9tc2cgICAgKmJ1Zl9zZW5kOwotCXZvaWQgICAgICAgICAg ICAgICpidWZfcmVjdjsKLQlzaXplX3QgICAgICAgICAgICBsZW5fcmVjdjsKLQlpbnQgICAgICAg ICAgICAgICByZXQ7CisJc3RydWN0IG11dGV4ICAgICAgIGxvY2s7CisJc3RydWN0IGNvbXBsZXRp b24gIHJlYWR5OworCXN0cnVjdCBjb21wbGV0aW9uICBkb25lOworCXN0cnVjdCB3ZnhfaGlmX21z ZyAqYnVmX3NlbmQ7CisJdm9pZCAgICAgICAgICAgICAgICpidWZfcmVjdjsKKwlzaXplX3QgICAg ICAgICAgICAgbGVuX3JlY3Y7CisJaW50ICAgICAgICAgICAgICAgIHJldDsKIH07CiAKIHZvaWQg d2Z4X2luaXRfaGlmX2NtZChzdHJ1Y3Qgd2Z4X2hpZl9jbWQgKndmeF9oaWZfY21kKTsKLWludCB3 ZnhfY21kX3NlbmQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0 LAoraW50IHdmeF9jbWRfc2VuZChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IHdmeF9oaWZf bXNnICpyZXF1ZXN0LAogCQkgdm9pZCAqcmVwbHksIHNpemVfdCByZXBseV9sZW4sIGJvb2wgYXN5 bmMpOwogCiBpbnQgd2Z4X2hpZl9yZWFkX21pYihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHZp Zl9pZCwgdTE2IG1pYl9pZCwKQEAgLTQ3LDcgKzQ3LDcgQEAgaW50IHdmeF9oaWZfam9pbihzdHJ1 Y3Qgd2Z4X3ZpZiAqd3ZpZiwgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqY29uZiwK IAkJIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbm5lbCwgY29uc3QgdTggKnNzaWQsIGlu dCBzc2lkbGVuKTsKIGludCB3ZnhfaGlmX21hcF9saW5rKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAog CQkgICAgIGJvb2wgdW5tYXAsIHU4ICptYWNfYWRkciwgaW50IHN0YV9pZCwgYm9vbCBtZnApOwot aW50IHdmeF9oaWZfYWRkX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgc3RydWN0IGhp Zl9yZXFfYWRkX2tleSAqYXJnKTsKK2ludCB3ZnhfaGlmX2FkZF9rZXkoc3RydWN0IHdmeF9kZXYg KndkZXYsIGNvbnN0IHN0cnVjdCB3ZnhfaGlmX3JlcV9hZGRfa2V5ICphcmcpOwogaW50IHdmeF9o aWZfcmVtb3ZlX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGlkeCk7CiBpbnQgd2Z4X2hp Zl9zZXRfcG0oc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgcHMsIGludCBkeW5hbWljX3BzX3Rp bWVvdXQpOwogaW50IHdmeF9oaWZfc2V0X2Jzc19wYXJhbXMoc3RydWN0IHdmeF92aWYgKnd2aWYs IGludCBhaWQsIGludCBiZWFjb25fbG9zdF9jb3VudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2hpZl90eF9taWIuYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4X21pYi5j CmluZGV4IGI3OWZmZGY2ZmNkMi4uZGFmOTY2NjkzZjY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2hpZl90eF9taWIuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9t aWIuYwpAQCAtMTYsNyArMTYsNyBAQAogCiBpbnQgd2Z4X2hpZl9zZXRfb3V0cHV0X3Bvd2VyKHN0 cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgdmFsKQogewotCXN0cnVjdCBoaWZfbWliX2N1cnJlbnRf dHhfcG93ZXJfbGV2ZWwgYXJnID0geworCXN0cnVjdCB3ZnhfaGlmX21pYl9jdXJyZW50X3R4X3Bv d2VyX2xldmVsIGFyZyA9IHsKIAkJLnBvd2VyX2xldmVsID0gY3B1X3RvX2xlMzIodmFsICogMTAp LAogCX07CiAKQEAgLTI5LDcgKzI5LDcgQEAgaW50IHdmeF9oaWZfc2V0X2JlYWNvbl93YWtldXBf cGVyaW9kKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogCQkJCSAgICAgdW5zaWduZWQgaW50IGR0aW1f aW50ZXJ2YWwsCiAJCQkJICAgICB1bnNpZ25lZCBpbnQgbGlzdGVuX2ludGVydmFsKQogewotCXN0 cnVjdCBoaWZfbWliX2JlYWNvbl93YWtlX3VwX3BlcmlvZCBhcmcgPSB7CisJc3RydWN0IHdmeF9o aWZfbWliX2JlYWNvbl93YWtlX3VwX3BlcmlvZCBhcmcgPSB7CiAJCS53YWtldXBfcGVyaW9kX21p biA9IGR0aW1faW50ZXJ2YWwsCiAJCS5yZWNlaXZlX2R0aW0gPSAwLAogCQkud2FrZXVwX3Blcmlv ZF9tYXggPSBsaXN0ZW5faW50ZXJ2YWwsCkBAIC00NSw3ICs0NSw3IEBAIGludCB3ZnhfaGlmX3Nl dF9iZWFjb25fd2FrZXVwX3BlcmlvZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKIGludCB3ZnhfaGlm X3NldF9yY3BpX3Jzc2lfdGhyZXNob2xkKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogCQkJCSAgICBp bnQgcnNzaV90aG9sZCwgaW50IHJzc2lfaHlzdCkKIHsKLQlzdHJ1Y3QgaGlmX21pYl9yY3BpX3Jz c2lfdGhyZXNob2xkIGFyZyA9IHsKKwlzdHJ1Y3Qgd2Z4X2hpZl9taWJfcmNwaV9yc3NpX3RocmVz aG9sZCBhcmcgPSB7CiAJCS5yb2xsaW5nX2F2ZXJhZ2VfY291bnQgPSA4LAogCQkuZGV0ZWN0aW9u ID0gMSwKIAl9OwpAQCAtNjYsMjMgKzY2LDIzIEBAIGludCB3ZnhfaGlmX3NldF9yY3BpX3Jzc2lf dGhyZXNob2xkKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogfQogCiBpbnQgd2Z4X2hpZl9nZXRfY291 bnRlcnNfdGFibGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQsCi0JCQkgICAgICAg c3RydWN0IGhpZl9taWJfZXh0ZW5kZWRfY291bnRfdGFibGUgKmFyZykKKwkJCSAgICAgICBzdHJ1 Y3Qgd2Z4X2hpZl9taWJfZXh0ZW5kZWRfY291bnRfdGFibGUgKmFyZykKIHsKIAlpZiAod2Z4X2Fw aV9vbGRlcl90aGFuKHdkZXYsIDEsIDMpKSB7CiAJCS8qIGV4dGVuZGVkX2NvdW50X3RhYmxlIGlz IHdpZGVyIHRoYW4gY291bnRfdGFibGUgKi8KIAkJbWVtc2V0KGFyZywgMHhGRiwgc2l6ZW9mKCph cmcpKTsKIAkJcmV0dXJuIHdmeF9oaWZfcmVhZF9taWIod2RldiwgdmlmX2lkLCBISUZfTUlCX0lE X0NPVU5URVJTX1RBQkxFLAotCQkJCSAgICBhcmcsIHNpemVvZihzdHJ1Y3QgaGlmX21pYl9jb3Vu dF90YWJsZSkpOworCQkJCSAgICBhcmcsIHNpemVvZihzdHJ1Y3Qgd2Z4X2hpZl9taWJfY291bnRf dGFibGUpKTsKIAl9IGVsc2UgewogCQlyZXR1cm4gd2Z4X2hpZl9yZWFkX21pYih3ZGV2LCB2aWZf aWQsCiAJCQkJICAgIEhJRl9NSUJfSURfRVhURU5ERURfQ09VTlRFUlNfVEFCTEUsIGFyZywKLQkJ CQkgICAgc2l6ZW9mKHN0cnVjdCBoaWZfbWliX2V4dGVuZGVkX2NvdW50X3RhYmxlKSk7CisJCQkJ ICAgIHNpemVvZihzdHJ1Y3Qgd2Z4X2hpZl9taWJfZXh0ZW5kZWRfY291bnRfdGFibGUpKTsKIAl9 CiB9CiAKIGludCB3ZnhfaGlmX3NldF9tYWNhZGRyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCB1OCAq bWFjKQogewotCXN0cnVjdCBoaWZfbWliX21hY19hZGRyZXNzIGFyZyA9IHsgfTsKKwlzdHJ1Y3Qg d2Z4X2hpZl9taWJfbWFjX2FkZHJlc3MgYXJnID0geyB9OwogCiAJaWYgKG1hYykKIAkJZXRoZXJf YWRkcl9jb3B5KGFyZy5tYWNfYWRkciwgbWFjKTsKQEAgLTk0LDcgKzk0LDcgQEAgaW50IHdmeF9o aWZfc2V0X21hY2FkZHIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHU4ICptYWMpCiBpbnQgd2Z4X2hp Zl9zZXRfcnhfZmlsdGVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogCQkJICBib29sIGZpbHRlcl9i c3NpZCwgYm9vbCBmaWx0ZXJfcHJicmVxKQogewotCXN0cnVjdCBoaWZfbWliX3J4X2ZpbHRlciBh cmcgPSB7IH07CisJc3RydWN0IHdmeF9oaWZfbWliX3J4X2ZpbHRlciBhcmcgPSB7IH07CiAKIAlp ZiAoZmlsdGVyX2Jzc2lkKQogCQlhcmcuYnNzaWRfZmlsdGVyID0gMTsKQEAgLTEwNSwxMCArMTA1 LDEwIEBAIGludCB3ZnhfaGlmX3NldF9yeF9maWx0ZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsCiB9 CiAKIGludCB3ZnhfaGlmX3NldF9iZWFjb25fZmlsdGVyX3RhYmxlKHN0cnVjdCB3ZnhfdmlmICp3 dmlmLCBpbnQgdGJsX2xlbiwKLQkJCQkgICAgY29uc3Qgc3RydWN0IGhpZl9pZV90YWJsZV9lbnRy eSAqdGJsKQorCQkJCSAgICBjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9pZV90YWJsZV9lbnRyeSAqdGJs KQogewogCWludCByZXQ7Ci0Jc3RydWN0IGhpZl9taWJfYmNuX2ZpbHRlcl90YWJsZSAqYXJnOwor CXN0cnVjdCB3ZnhfaGlmX21pYl9iY25fZmlsdGVyX3RhYmxlICphcmc7CiAJaW50IGJ1Zl9sZW4g PSBzdHJ1Y3Rfc2l6ZShhcmcsIGllX3RhYmxlLCB0YmxfbGVuKTsKIAogCWFyZyA9IGt6YWxsb2Mo YnVmX2xlbiwgR0ZQX0tFUk5FTCk7CkBAIC0xMjUsNyArMTI1LDcgQEAgaW50IHdmeF9oaWZfc2V0 X2JlYWNvbl9maWx0ZXJfdGFibGUoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB0YmxfbGVuLAog aW50IHdmeF9oaWZfYmVhY29uX2ZpbHRlcl9jb250cm9sKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAog CQkJCSAgaW50IGVuYWJsZSwgaW50IGJlYWNvbl9jb3VudCkKIHsKLQlzdHJ1Y3QgaGlmX21pYl9i Y25fZmlsdGVyX2VuYWJsZSBhcmcgPSB7CisJc3RydWN0IHdmeF9oaWZfbWliX2Jjbl9maWx0ZXJf ZW5hYmxlIGFyZyA9IHsKIAkJLmVuYWJsZSA9IGNwdV90b19sZTMyKGVuYWJsZSksCiAJCS5iY25f Y291bnQgPSBjcHVfdG9fbGUzMihiZWFjb25fY291bnQpLAogCX07CkBAIC0xMzUsOSArMTM1LDkg QEAgaW50IHdmeF9oaWZfYmVhY29uX2ZpbHRlcl9jb250cm9sKHN0cnVjdCB3ZnhfdmlmICp3dmlm LAogfQogCiBpbnQgd2Z4X2hpZl9zZXRfb3BlcmF0aW9uYWxfbW9kZShzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwKLQkJCQkgZW51bSBoaWZfb3BfcG93ZXJfbW9kZSBtb2RlKQorCQkJCSBlbnVtIHdmeF9o aWZfb3BfcG93ZXJfbW9kZSBtb2RlKQogewotCXN0cnVjdCBoaWZfbWliX2dsX29wZXJhdGlvbmFs X3Bvd2VyX21vZGUgYXJnID0geworCXN0cnVjdCB3ZnhfaGlmX21pYl9nbF9vcGVyYXRpb25hbF9w b3dlcl9tb2RlIGFyZyA9IHsKIAkJLnBvd2VyX21vZGUgPSBtb2RlLAogCQkud3VwX2luZF9hY3Rp dmF0aW9uID0gMSwKIAl9OwpAQCAtMTQ5LDExICsxNDksMTEgQEAgaW50IHdmeF9oaWZfc2V0X29w ZXJhdGlvbmFsX21vZGUoc3RydWN0IHdmeF9kZXYgKndkZXYsCiBpbnQgd2Z4X2hpZl9zZXRfdGVt cGxhdGVfZnJhbWUoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBza19idWZmICpza2IsCiAJ CQkgICAgICAgdTggZnJhbWVfdHlwZSwgaW50IGluaXRfcmF0ZSkKIHsKLQlzdHJ1Y3QgaGlmX21p Yl90ZW1wbGF0ZV9mcmFtZSAqYXJnOworCXN0cnVjdCB3ZnhfaGlmX21pYl90ZW1wbGF0ZV9mcmFt ZSAqYXJnOwogCiAJV0FSTihza2ItPmxlbiA+IEhJRl9BUElfTUFYX1RFTVBMQVRFX0ZSQU1FX1NJ WkUsICJmcmFtZSBpcyB0b28gYmlnIik7CiAJc2tiX3B1c2goc2tiLCA0KTsKLQlhcmcgPSAoc3Ry dWN0IGhpZl9taWJfdGVtcGxhdGVfZnJhbWUgKilza2ItPmRhdGE7CisJYXJnID0gKHN0cnVjdCB3 ZnhfaGlmX21pYl90ZW1wbGF0ZV9mcmFtZSAqKXNrYi0+ZGF0YTsKIAlza2JfcHVsbChza2IsIDQp OwogCWFyZy0+aW5pdF9yYXRlID0gaW5pdF9yYXRlOwogCWFyZy0+ZnJhbWVfdHlwZSA9IGZyYW1l X3R5cGU7CkBAIC0xNjQsNyArMTY0LDcgQEAgaW50IHdmeF9oaWZfc2V0X3RlbXBsYXRlX2ZyYW1l KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiBpbnQgd2Z4X2hp Zl9zZXRfbWZwKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGNhcGFibGUsIGJvb2wgcmVxdWly ZWQpCiB7Ci0Jc3RydWN0IGhpZl9taWJfcHJvdGVjdGVkX21nbXRfcG9saWN5IGFyZyA9IHsgfTsK KwlzdHJ1Y3Qgd2Z4X2hpZl9taWJfcHJvdGVjdGVkX21nbXRfcG9saWN5IGFyZyA9IHsgfTsKIAog CVdBUk4ocmVxdWlyZWQgJiYgIWNhcGFibGUsICJpbmNvaGVyZW50IGFyZ3VtZW50cyIpOwogCWlm IChjYXBhYmxlKSB7CkBAIC0xODEsNyArMTgxLDcgQEAgaW50IHdmeF9oaWZfc2V0X21mcChzdHJ1 Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCBjYXBhYmxlLCBib29sIHJlcXVpcmVkKQogaW50IHdmeF9o aWZfc2V0X2Jsb2NrX2Fja19wb2xpY3koc3RydWN0IHdmeF92aWYgKnd2aWYsCiAJCQkJIHU4IHR4 X3RpZF9wb2xpY3ksIHU4IHJ4X3RpZF9wb2xpY3kpCiB7Ci0Jc3RydWN0IGhpZl9taWJfYmxvY2tf YWNrX3BvbGljeSBhcmcgPSB7CisJc3RydWN0IHdmeF9oaWZfbWliX2Jsb2NrX2Fja19wb2xpY3kg YXJnID0gewogCQkuYmxvY2tfYWNrX3R4X3RpZF9wb2xpY3kgPSB0eF90aWRfcG9saWN5LAogCQku YmxvY2tfYWNrX3J4X3RpZF9wb2xpY3kgPSByeF90aWRfcG9saWN5LAogCX07CkBAIC0xOTQsNyAr MTk0LDcgQEAgaW50IHdmeF9oaWZfc2V0X2Jsb2NrX2Fja19wb2xpY3koc3RydWN0IHdmeF92aWYg Knd2aWYsCiBpbnQgd2Z4X2hpZl9zZXRfYXNzb2NpYXRpb25fbW9kZShzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwgaW50IGFtcGR1X2RlbnNpdHksCiAJCQkJIGJvb2wgZ3JlZW5maWVsZCwgYm9vbCBzaG9y dF9wcmVhbWJsZSkKIHsKLQlzdHJ1Y3QgaGlmX21pYl9zZXRfYXNzb2NpYXRpb25fbW9kZSBhcmcg PSB7CisJc3RydWN0IHdmeF9oaWZfbWliX3NldF9hc3NvY2lhdGlvbl9tb2RlIGFyZyA9IHsKIAkJ LnByZWFtYnR5cGVfdXNlID0gMSwKIAkJLm1vZGUgPSAxLAogCQkuc3BhY2luZyA9IDEsCkBAIC0y MTEsNyArMjExLDcgQEAgaW50IHdmeF9oaWZfc2V0X2Fzc29jaWF0aW9uX21vZGUoc3RydWN0IHdm eF92aWYgKnd2aWYsIGludCBhbXBkdV9kZW5zaXR5LAogaW50IHdmeF9oaWZfc2V0X3R4X3JhdGVf cmV0cnlfcG9saWN5KHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogCQkJCSAgICAgaW50IHBvbGljeV9p bmRleCwgdTggKnJhdGVzKQogewotCXN0cnVjdCBoaWZfbWliX3NldF90eF9yYXRlX3JldHJ5X3Bv bGljeSAqYXJnOworCXN0cnVjdCB3ZnhfaGlmX21pYl9zZXRfdHhfcmF0ZV9yZXRyeV9wb2xpY3kg KmFyZzsKIAlzaXplX3Qgc2l6ZSA9IHN0cnVjdF9zaXplKGFyZywgdHhfcmF0ZV9yZXRyeV9wb2xp Y3ksIDEpOwogCWludCByZXQ7CiAKQEAgLTIzNiw3ICsyMzYsNyBAQCBpbnQgd2Z4X2hpZl9zZXRf dHhfcmF0ZV9yZXRyeV9wb2xpY3koc3RydWN0IHdmeF92aWYgKnd2aWYsCiAKIGludCB3ZnhfaGlm X2tlZXBfYWxpdmVfcGVyaW9kKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgcGVyaW9kKQogewot CXN0cnVjdCBoaWZfbWliX2tlZXBfYWxpdmVfcGVyaW9kIGFyZyA9IHsKKwlzdHJ1Y3Qgd2Z4X2hp Zl9taWJfa2VlcF9hbGl2ZV9wZXJpb2QgYXJnID0gewogCQkua2VlcF9hbGl2ZV9wZXJpb2QgPSBj cHVfdG9fbGUxNihwZXJpb2QpLAogCX07CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBpbnQgd2Z4X2hp Zl9rZWVwX2FsaXZlX3BlcmlvZChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IHBlcmlvZCkKIAog aW50IHdmeF9oaWZfc2V0X2FycF9pcHY0X2ZpbHRlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50 IGlkeCwgX19iZTMyICphZGRyKQogewotCXN0cnVjdCBoaWZfbWliX2FycF9pcF9hZGRyX3RhYmxl IGFyZyA9IHsKKwlzdHJ1Y3Qgd2Z4X2hpZl9taWJfYXJwX2lwX2FkZHJfdGFibGUgYXJnID0gewog CQkuY29uZGl0aW9uX2lkeCA9IGlkeCwKIAkJLmFycF9lbmFibGUgPSBISUZfQVJQX05TX0ZJTFRF UklOR19ESVNBQkxFLAogCX07CkBAIC0yNjQsNyArMjY0LDcgQEAgaW50IHdmeF9oaWZfc2V0X2Fy cF9pcHY0X2ZpbHRlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IGlkeCwgX19iZTMyICphZGRy KQogCiBpbnQgd2Z4X2hpZl91c2VfbXVsdGlfdHhfY29uZihzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg Ym9vbCBlbmFibGUpCiB7Ci0Jc3RydWN0IGhpZl9taWJfZ2xfc2V0X211bHRpX21zZyBhcmcgPSB7 CisJc3RydWN0IHdmeF9oaWZfbWliX2dsX3NldF9tdWx0aV9tc2cgYXJnID0gewogCQkuZW5hYmxl X211bHRpX3R4X2NvbmYgPSBlbmFibGUsCiAJfTsKIApAQCAtMjc0LDcgKzI3NCw3IEBAIGludCB3 ZnhfaGlmX3VzZV9tdWx0aV90eF9jb25mKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBib29sIGVuYWJs ZSkKIAogaW50IHdmeF9oaWZfc2V0X3VhcHNkX2luZm8oc3RydWN0IHdmeF92aWYgKnd2aWYsIHVu c2lnbmVkIGxvbmcgdmFsKQogewotCXN0cnVjdCBoaWZfbWliX3NldF91YXBzZF9pbmZvcm1hdGlv biBhcmcgPSB7IH07CisJc3RydWN0IHdmeF9oaWZfbWliX3NldF91YXBzZF9pbmZvcm1hdGlvbiBh cmcgPSB7IH07CiAKIAlpZiAodmFsICYgQklUKElFRUU4MDIxMV9BQ19WTykpCiAJCWFyZy50cmln X3ZvaWNlID0gMTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBpbnQgd2Z4X2hpZl9zZXRfdWFwc2RfaW5m byhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgdW5zaWduZWQgbG9uZyB2YWwpCiAKIGludCB3ZnhfaGlm X2VycF91c2VfcHJvdGVjdGlvbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCBlbmFibGUpCiB7 Ci0Jc3RydWN0IGhpZl9taWJfbm9uX2VycF9wcm90ZWN0aW9uIGFyZyA9IHsKKwlzdHJ1Y3Qgd2Z4 X2hpZl9taWJfbm9uX2VycF9wcm90ZWN0aW9uIGFyZyA9IHsKIAkJLnVzZV9jdHNfdG9fc2VsZiA9 IGVuYWJsZSwKIAl9OwogCkBAIC0zMDIsNyArMzAyLDcgQEAgaW50IHdmeF9oaWZfZXJwX3VzZV9w cm90ZWN0aW9uKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGVuYWJsZSkKIAogaW50IHdmeF9o aWZfc2xvdF90aW1lKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBpbnQgdmFsKQogewotCXN0cnVjdCBo aWZfbWliX3Nsb3RfdGltZSBhcmcgPSB7CisJc3RydWN0IHdmeF9oaWZfbWliX3Nsb3RfdGltZSBh cmcgPSB7CiAJCS5zbG90X3RpbWUgPSBjcHVfdG9fbGUzMih2YWwpLAogCX07CiAKQEAgLTMxMiw3 ICszMTIsNyBAQCBpbnQgd2Z4X2hpZl9zbG90X3RpbWUoc3RydWN0IHdmeF92aWYgKnd2aWYsIGlu dCB2YWwpCiAKIGludCB3ZnhfaGlmX3dlcF9kZWZhdWx0X2tleV9pZChzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwgaW50IHZhbCkKIHsKLQlzdHJ1Y3QgaGlmX21pYl93ZXBfZGVmYXVsdF9rZXlfaWQgYXJn ID0geworCXN0cnVjdCB3ZnhfaGlmX21pYl93ZXBfZGVmYXVsdF9rZXlfaWQgYXJnID0gewogCQku d2VwX2RlZmF1bHRfa2V5X2lkID0gdmFsLAogCX07CiAKQEAgLTMyMyw3ICszMjMsNyBAQCBpbnQg d2Z4X2hpZl93ZXBfZGVmYXVsdF9rZXlfaWQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB2YWwp CiAKIGludCB3ZnhfaGlmX3J0c190aHJlc2hvbGQoc3RydWN0IHdmeF92aWYgKnd2aWYsIGludCB2 YWwpCiB7Ci0Jc3RydWN0IGhpZl9taWJfZG90MTFfcnRzX3RocmVzaG9sZCBhcmcgPSB7CisJc3Ry dWN0IHdmeF9oaWZfbWliX2RvdDExX3J0c190aHJlc2hvbGQgYXJnID0gewogCQkudGhyZXNob2xk ID0gY3B1X3RvX2xlMzIodmFsID49IDAgPyB2YWwgOiAweEZGRkYpLAogCX07CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4X21pYi5oIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9oaWZfdHhfbWliLmgKaW5kZXggOWI0YzE2YWQ1ZWNmLi5lN2U1NTZiMDVjOWEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4X21pYi5oCisrKyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvaGlmX3R4X21pYi5oCkBAIC0xNCw4ICsxNCw4IEBACiBzdHJ1Y3Qgc2tfYnVmZjsKIHN0 cnVjdCB3ZnhfdmlmOwogc3RydWN0IHdmeF9kZXY7Ci1zdHJ1Y3QgaGlmX2llX3RhYmxlX2VudHJ5 Owotc3RydWN0IGhpZl9taWJfZXh0ZW5kZWRfY291bnRfdGFibGU7CitzdHJ1Y3Qgd2Z4X2hpZl9p ZV90YWJsZV9lbnRyeTsKK3N0cnVjdCB3ZnhfaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZTsK IAogaW50IHdmeF9oaWZfc2V0X291dHB1dF9wb3dlcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50 IHZhbCk7CiBpbnQgd2Z4X2hpZl9zZXRfYmVhY29uX3dha2V1cF9wZXJpb2Qoc3RydWN0IHdmeF92 aWYgKnd2aWYsCkBAIC0yNCwxNiArMjQsMTYgQEAgaW50IHdmeF9oaWZfc2V0X2JlYWNvbl93YWtl dXBfcGVyaW9kKHN0cnVjdCB3ZnhfdmlmICp3dmlmLAogaW50IHdmeF9oaWZfc2V0X3JjcGlfcnNz aV90aHJlc2hvbGQoc3RydWN0IHdmeF92aWYgKnd2aWYsCiAJCQkJICAgIGludCByc3NpX3Rob2xk LCBpbnQgcnNzaV9oeXN0KTsKIGludCB3ZnhfaGlmX2dldF9jb3VudGVyc190YWJsZShzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgaW50IHZpZl9pZCwKLQkJCSAgICAgICBzdHJ1Y3QgaGlmX21pYl9leHRl bmRlZF9jb3VudF90YWJsZSAqYXJnKTsKKwkJCSAgICAgICBzdHJ1Y3Qgd2Z4X2hpZl9taWJfZXh0 ZW5kZWRfY291bnRfdGFibGUgKmFyZyk7CiBpbnQgd2Z4X2hpZl9zZXRfbWFjYWRkcihzdHJ1Y3Qg d2Z4X3ZpZiAqd3ZpZiwgdTggKm1hYyk7CiBpbnQgd2Z4X2hpZl9zZXRfcnhfZmlsdGVyKHN0cnVj dCB3ZnhfdmlmICp3dmlmLAogCQkJICBib29sIGZpbHRlcl9ic3NpZCwgYm9vbCBmd2RfcHJvYmVf cmVxKTsKIGludCB3ZnhfaGlmX3NldF9iZWFjb25fZmlsdGVyX3RhYmxlKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBpbnQgdGJsX2xlbiwKLQkJCQkgICAgY29uc3Qgc3RydWN0IGhpZl9pZV90YWJsZV9l bnRyeSAqdGJsKTsKKwkJCQkgICAgY29uc3Qgc3RydWN0IHdmeF9oaWZfaWVfdGFibGVfZW50cnkg KnRibCk7CiBpbnQgd2Z4X2hpZl9iZWFjb25fZmlsdGVyX2NvbnRyb2woc3RydWN0IHdmeF92aWYg Knd2aWYsCiAJCQkJICBpbnQgZW5hYmxlLCBpbnQgYmVhY29uX2NvdW50KTsKIGludCB3ZnhfaGlm X3NldF9vcGVyYXRpb25hbF9tb2RlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAotCQkJCSBlbnVtIGhp Zl9vcF9wb3dlcl9tb2RlIG1vZGUpOworCQkJCSBlbnVtIHdmeF9oaWZfb3BfcG93ZXJfbW9kZSBt b2RlKTsKIGludCB3ZnhfaGlmX3NldF90ZW1wbGF0ZV9mcmFtZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3Zp Ziwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgICB1OCBmcmFtZV90eXBlLCBpbnQgaW5p dF9yYXRlKTsKIGludCB3ZnhfaGlmX3NldF9tZnAoc3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wg Y2FwYWJsZSwgYm9vbCByZXF1aXJlZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4 L2tleS5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9rZXkuYwppbmRleCA2MDY5YmUxNjExNTQuLmRl YTgyMzhmOTkxNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9rZXkuYworKysgYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L2tleS5jCkBAIC0zMCw3ICszMCw3IEBAIHN0YXRpYyB2b2lkIHdm eF9mcmVlX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGlkeCkKIAl3ZGV2LT5rZXlfbWFw ICY9IH5CSVQoaWR4KTsKIH0KIAotc3RhdGljIHU4IGZpbGxfd2VwX3BhaXIoc3RydWN0IGhpZl93 ZXBfcGFpcndpc2Vfa2V5ICptc2csCitzdGF0aWMgdTggZmlsbF93ZXBfcGFpcihzdHJ1Y3Qgd2Z4 X2hpZl93ZXBfcGFpcndpc2Vfa2V5ICptc2csCiAJCQlzdHJ1Y3QgaWVlZTgwMjExX2tleV9jb25m ICprZXksIHU4ICpwZWVyX2FkZHIpCiB7CiAJV0FSTihrZXktPmtleWxlbiA+IHNpemVvZihtc2ct PmtleV9kYXRhKSwgImluY29uc2lzdGVudCBkYXRhIik7CkBAIC00MCw3ICs0MCw3IEBAIHN0YXRp YyB1OCBmaWxsX3dlcF9wYWlyKHN0cnVjdCBoaWZfd2VwX3BhaXJ3aXNlX2tleSAqbXNnLAogCXJl dHVybiBISUZfS0VZX1RZUEVfV0VQX1BBSVJXSVNFOwogfQogCi1zdGF0aWMgdTggZmlsbF93ZXBf Z3JvdXAoc3RydWN0IGhpZl93ZXBfZ3JvdXBfa2V5ICptc2csCitzdGF0aWMgdTggZmlsbF93ZXBf Z3JvdXAoc3RydWN0IHdmeF9oaWZfd2VwX2dyb3VwX2tleSAqbXNnLAogCQkJIHN0cnVjdCBpZWVl ODAyMTFfa2V5X2NvbmYgKmtleSkKIHsKIAlXQVJOKGtleS0+a2V5bGVuID4gc2l6ZW9mKG1zZy0+ a2V5X2RhdGEpLCAiaW5jb25zaXN0ZW50IGRhdGEiKTsKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGlj IHU4IGZpbGxfd2VwX2dyb3VwKHN0cnVjdCBoaWZfd2VwX2dyb3VwX2tleSAqbXNnLAogCXJldHVy biBISUZfS0VZX1RZUEVfV0VQX0RFRkFVTFQ7CiB9CiAKLXN0YXRpYyB1OCBmaWxsX3RraXBfcGFp cihzdHJ1Y3QgaGlmX3RraXBfcGFpcndpc2Vfa2V5ICptc2csCitzdGF0aWMgdTggZmlsbF90a2lw X3BhaXIoc3RydWN0IHdmeF9oaWZfdGtpcF9wYWlyd2lzZV9rZXkgKm1zZywKIAkJCSBzdHJ1Y3Qg aWVlZTgwMjExX2tleV9jb25mICprZXksIHU4ICpwZWVyX2FkZHIpCiB7CiAJdTggKmtleWJ1ZiA9 IGtleS0+a2V5OwpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdTggZmlsbF90a2lwX3BhaXIoc3Ry dWN0IGhpZl90a2lwX3BhaXJ3aXNlX2tleSAqbXNnLAogCXJldHVybiBISUZfS0VZX1RZUEVfVEtJ UF9QQUlSV0lTRTsKIH0KIAotc3RhdGljIHU4IGZpbGxfdGtpcF9ncm91cChzdHJ1Y3QgaGlmX3Rr aXBfZ3JvdXBfa2V5ICptc2csCitzdGF0aWMgdTggZmlsbF90a2lwX2dyb3VwKHN0cnVjdCB3Znhf aGlmX3RraXBfZ3JvdXBfa2V5ICptc2csCiAJCQkgIHN0cnVjdCBpZWVlODAyMTFfa2V5X2NvbmYg KmtleSwKIAkJCSAgc3RydWN0IGllZWU4MDIxMV9rZXlfc2VxICpzZXEsCiAJCQkgIGVudW0gbmw4 MDIxMV9pZnR5cGUgaWZ0eXBlKQpAQCAtOTIsNyArOTIsNyBAQCBzdGF0aWMgdTggZmlsbF90a2lw X2dyb3VwKHN0cnVjdCBoaWZfdGtpcF9ncm91cF9rZXkgKm1zZywKIAlyZXR1cm4gSElGX0tFWV9U WVBFX1RLSVBfR1JPVVA7CiB9CiAKLXN0YXRpYyB1OCBmaWxsX2NjbXBfcGFpcihzdHJ1Y3QgaGlm X2Flc19wYWlyd2lzZV9rZXkgKm1zZywKK3N0YXRpYyB1OCBmaWxsX2NjbXBfcGFpcihzdHJ1Y3Qg d2Z4X2hpZl9hZXNfcGFpcndpc2Vfa2V5ICptc2csCiAJCQkgc3RydWN0IGllZWU4MDIxMV9rZXlf Y29uZiAqa2V5LCB1OCAqcGVlcl9hZGRyKQogewogCVdBUk4oa2V5LT5rZXlsZW4gIT0gc2l6ZW9m KG1zZy0+YWVzX2tleV9kYXRhKSwgImluY29uc2lzdGVudCBkYXRhIik7CkBAIC0xMDEsNyArMTAx LDcgQEAgc3RhdGljIHU4IGZpbGxfY2NtcF9wYWlyKHN0cnVjdCBoaWZfYWVzX3BhaXJ3aXNlX2tl eSAqbXNnLAogCXJldHVybiBISUZfS0VZX1RZUEVfQUVTX1BBSVJXSVNFOwogfQogCi1zdGF0aWMg dTggZmlsbF9jY21wX2dyb3VwKHN0cnVjdCBoaWZfYWVzX2dyb3VwX2tleSAqbXNnLAorc3RhdGlj IHU4IGZpbGxfY2NtcF9ncm91cChzdHJ1Y3Qgd2Z4X2hpZl9hZXNfZ3JvdXBfa2V5ICptc2csCiAJ CQkgIHN0cnVjdCBpZWVlODAyMTFfa2V5X2NvbmYgKmtleSwKIAkJCSAgc3RydWN0IGllZWU4MDIx MV9rZXlfc2VxICpzZXEpCiB7CkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIHU4IGZpbGxfY2Nt cF9ncm91cChzdHJ1Y3QgaGlmX2Flc19ncm91cF9rZXkgKm1zZywKIAlyZXR1cm4gSElGX0tFWV9U WVBFX0FFU19HUk9VUDsKIH0KIAotc3RhdGljIHU4IGZpbGxfc21zNF9wYWlyKHN0cnVjdCBoaWZf d2FwaV9wYWlyd2lzZV9rZXkgKm1zZywKK3N0YXRpYyB1OCBmaWxsX3NtczRfcGFpcihzdHJ1Y3Qg d2Z4X2hpZl93YXBpX3BhaXJ3aXNlX2tleSAqbXNnLAogCQkJIHN0cnVjdCBpZWVlODAyMTFfa2V5 X2NvbmYgKmtleSwgdTggKnBlZXJfYWRkcikKIHsKIAl1OCAqa2V5YnVmID0ga2V5LT5rZXk7CkBA IC0xMjgsNyArMTI4LDcgQEAgc3RhdGljIHU4IGZpbGxfc21zNF9wYWlyKHN0cnVjdCBoaWZfd2Fw aV9wYWlyd2lzZV9rZXkgKm1zZywKIAlyZXR1cm4gSElGX0tFWV9UWVBFX1dBUElfUEFJUldJU0U7 CiB9CiAKLXN0YXRpYyB1OCBmaWxsX3NtczRfZ3JvdXAoc3RydWN0IGhpZl93YXBpX2dyb3VwX2tl eSAqbXNnLAorc3RhdGljIHU4IGZpbGxfc21zNF9ncm91cChzdHJ1Y3Qgd2Z4X2hpZl93YXBpX2dy b3VwX2tleSAqbXNnLAogCQkJICBzdHJ1Y3QgaWVlZTgwMjExX2tleV9jb25mICprZXkpCiB7CiAJ dTggKmtleWJ1ZiA9IGtleS0+a2V5OwpAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyB1OCBmaWxs X3NtczRfZ3JvdXAoc3RydWN0IGhpZl93YXBpX2dyb3VwX2tleSAqbXNnLAogCXJldHVybiBISUZf S0VZX1RZUEVfV0FQSV9HUk9VUDsKIH0KIAotc3RhdGljIHU4IGZpbGxfYWVzX2NtYWNfZ3JvdXAo c3RydWN0IGhpZl9pZ3RrX2dyb3VwX2tleSAqbXNnLAorc3RhdGljIHU4IGZpbGxfYWVzX2NtYWNf Z3JvdXAoc3RydWN0IHdmeF9oaWZfaWd0a19ncm91cF9rZXkgKm1zZywKIAkJCSAgICAgIHN0cnVj dCBpZWVlODAyMTFfa2V5X2NvbmYgKmtleSwKIAkJCSAgICAgIHN0cnVjdCBpZWVlODAyMTFfa2V5 X3NlcSAqc2VxKQogewpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBpbnQgd2Z4X2FkZF9rZXko c3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsCiAJCSAgICAg ICBzdHJ1Y3QgaWVlZTgwMjExX2tleV9jb25mICprZXkpCiB7CiAJaW50IHJldDsKLQlzdHJ1Y3Qg aGlmX3JlcV9hZGRfa2V5IGsgPSB7IH07CisJc3RydWN0IHdmeF9oaWZfcmVxX2FkZF9rZXkgayA9 IHsgfTsKIAlzdHJ1Y3QgaWVlZTgwMjExX2tleV9zZXEgc2VxOwogCXN0cnVjdCB3ZnhfZGV2ICp3 ZGV2ID0gd3ZpZi0+d2RldjsKIAlpbnQgaWR4ID0gd2Z4X2FsbG9jX2tleSh3dmlmLT53ZGV2KTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jIGIvZHJpdmVycy9zdGFnaW5n L3dmeC9tYWluLmMKaW5kZXggNDM5NDdmOGYyZTBjLi5mMzRjZmVkNTAzZDQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFp bi5jCkBAIC0yODgsOCArMjg4LDggQEAgc3RydWN0IHdmeF9kZXYgKndmeF9pbml0X2NvbW1vbihz dHJ1Y3QgZGV2aWNlICpkZXYsCiAJaHctPnF1ZXVlcyA9IDQ7CiAJaHctPm1heF9yYXRlcyA9IDg7 CiAJaHctPm1heF9yYXRlX3RyaWVzID0gODsKLQlody0+ZXh0cmFfdHhfaGVhZHJvb20gPSBzaXpl b2Yoc3RydWN0IGhpZl9tc2cpCi0JCQkJKyBzaXplb2Yoc3RydWN0IGhpZl9yZXFfdHgpCisJaHct PmV4dHJhX3R4X2hlYWRyb29tID0gc2l6ZW9mKHN0cnVjdCB3ZnhfaGlmX21zZykKKwkJCQkrIHNp emVvZihzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdHgpCiAJCQkJKyA0IC8qIGFsaWdubWVudCAqLyArIDgg LyogVEtJUCBJViAqLzsKIAlody0+d2lwaHktPmludGVyZmFjZV9tb2RlcyA9IEJJVChOTDgwMjEx X0lGVFlQRV9TVEFUSU9OKSB8CiAJCQkJICAgICBCSVQoTkw4MDIxMV9JRlRZUEVfQURIT0MpIHwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuYyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvcXVldWUuYwppbmRleCA3YTNiYTNjMzg5MjUuLjcxYzZlZjk0YTkwNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv cXVldWUuYwpAQCAtMTI3LDEzICsxMjcsMTMgQEAgdm9pZCB3ZnhfcGVuZGluZ19kcm9wKHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpkcm9wcGVkKQogewogCXN0cnVj dCB3ZnhfcXVldWUgKnF1ZXVlOwogCXN0cnVjdCB3ZnhfdmlmICp3dmlmOwotCXN0cnVjdCBoaWZf bXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CiAJc3RydWN0IHNrX2J1ZmYgKnNr YjsKIAogCVdBUk4oIXdkZXYtPmNoaXBfZnJvemVuLCAiJXMgc2hvdWxkIG9ubHkgYmUgdXNlZCB0 byByZWNvdmVyIGEgZnJvemVuIGRldmljZSIsCiAJICAgICBfX2Z1bmNfXyk7CiAJd2hpbGUgKChz a2IgPSBza2JfZGVxdWV1ZSgmd2Rldi0+dHhfcGVuZGluZykpICE9IE5VTEwpIHsKLQkJaGlmID0g KHN0cnVjdCBoaWZfbXNnICopc2tiLT5kYXRhOworCQloaWYgPSAoc3RydWN0IHdmeF9oaWZfbXNn ICopc2tiLT5kYXRhOwogCQl3dmlmID0gd2Rldl90b193dmlmKHdkZXYsIGhpZi0+aW50ZXJmYWNl KTsKIAkJaWYgKHd2aWYpIHsKIAkJCXF1ZXVlID0gJnd2aWYtPnR4X3F1ZXVlW3NrYl9nZXRfcXVl dWVfbWFwcGluZyhza2IpXTsKQEAgLTE0OCwxNSArMTQ4LDE1IEBAIHZvaWQgd2Z4X3BlbmRpbmdf ZHJvcChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqZHJvcHBlZCkK IHN0cnVjdCBza19idWZmICp3ZnhfcGVuZGluZ19nZXQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUz MiBwYWNrZXRfaWQpCiB7CiAJc3RydWN0IHdmeF9xdWV1ZSAqcXVldWU7Ci0Jc3RydWN0IGhpZl9y ZXFfdHggKnJlcTsKKwlzdHJ1Y3Qgd2Z4X2hpZl9yZXFfdHggKnJlcTsKIAlzdHJ1Y3Qgd2Z4X3Zp ZiAqd3ZpZjsKLQlzdHJ1Y3QgaGlmX21zZyAqaGlmOworCXN0cnVjdCB3ZnhfaGlmX21zZyAqaGlm OwogCXN0cnVjdCBza19idWZmICpza2I7CiAKIAlzcGluX2xvY2tfYmgoJndkZXYtPnR4X3BlbmRp bmcubG9jayk7CiAJc2tiX3F1ZXVlX3dhbGsoJndkZXYtPnR4X3BlbmRpbmcsIHNrYikgewotCQlo aWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7Ci0JCXJlcSA9IChzdHJ1Y3QgaGlmX3Jl cV90eCAqKWhpZi0+Ym9keTsKKwkJaGlmID0gKHN0cnVjdCB3ZnhfaGlmX21zZyAqKXNrYi0+ZGF0 YTsKKwkJcmVxID0gKHN0cnVjdCB3ZnhfaGlmX3JlcV90eCAqKWhpZi0+Ym9keTsKIAkJaWYgKHJl cS0+cGFja2V0X2lkICE9IHBhY2tldF9pZCkKIAkJCWNvbnRpbnVlOwogCQlzcGluX3VubG9ja19i aCgmd2Rldi0+dHhfcGVuZGluZy5sb2NrKTsKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIHdmeF9w ZW5kaW5nX2R1bXBfb2xkX2ZyYW1lcyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdW5zaWduZWQgaW50 IGxpbWl0X21zKQogewogCWt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAJc3RydWN0IHdmeF90 eF9wcml2ICp0eF9wcml2OwotCXN0cnVjdCBoaWZfcmVxX3R4ICpyZXE7CisJc3RydWN0IHdmeF9o aWZfcmVxX3R4ICpyZXE7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAlib29sIGZpcnN0ID0gdHJ1 ZTsKIApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqd2Z4X3R4X3F1 ZXVlc19nZXRfc2tiKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCXN0cnVjdCB3ZnhfcXVldWUgKnF1 ZXVlc1tJRUVFODAyMTFfTlVNX0FDUyAqIEFSUkFZX1NJWkUod2Rldi0+dmlmKV07CiAJaW50IGks IGosIG51bV9xdWV1ZXMgPSAwOwogCXN0cnVjdCB3ZnhfdmlmICp3dmlmOwotCXN0cnVjdCBoaWZf bXNnICpoaWY7CisJc3RydWN0IHdmeF9oaWZfbXNnICpoaWY7CiAJc3RydWN0IHNrX2J1ZmYgKnNr YjsKIAogCS8qIHNvcnQgdGhlIHF1ZXVlcyAqLwpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBz dHJ1Y3Qgc2tfYnVmZiAqd2Z4X3R4X3F1ZXVlc19nZXRfc2tiKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 KQogCQkJICogYW5kIG9ubHkgb25lIHZpZiBjYW4gYmUgQVAsIGFsbCBxdWV1ZWQgZnJhbWVzIGhh cwogCQkJICogc2FtZSBpbnRlcmZhY2UgaWQKIAkJCSAqLwotCQkJaGlmID0gKHN0cnVjdCBoaWZf bXNnICopc2tiLT5kYXRhOworCQkJaGlmID0gKHN0cnVjdCB3ZnhfaGlmX21zZyAqKXNrYi0+ZGF0 YTsKIAkJCVdBUk5fT04oaGlmLT5pbnRlcmZhY2UgIT0gd3ZpZi0+aWQpOwogCQkJV0FSTl9PTihx dWV1ZXNbaV0gIT0KIAkJCQkmd3ZpZi0+dHhfcXVldWVbc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNr YildKTsKQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKndmeF90eF9x dWV1ZXNfZ2V0X3NrYihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAlyZXR1cm4gTlVMTDsKIH0KIAot c3RydWN0IGhpZl9tc2cgKndmeF90eF9xdWV1ZXNfZ2V0KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQor c3RydWN0IHdmeF9oaWZfbXNnICp3ZnhfdHhfcXVldWVzX2dldChzdHJ1Y3Qgd2Z4X2RldiAqd2Rl dikKIHsKIAlzdHJ1Y3Qgd2Z4X3R4X3ByaXYgKnR4X3ByaXY7CiAJc3RydWN0IHNrX2J1ZmYgKnNr YjsKQEAgLTMwMyw1ICszMDMsNSBAQCBzdHJ1Y3QgaGlmX21zZyAqd2Z4X3R4X3F1ZXVlc19nZXQo c3RydWN0IHdmeF9kZXYgKndkZXYpCiAJd2FrZV91cCgmd2Rldi0+dHhfZGVxdWV1ZSk7CiAJdHhf cHJpdiA9IHdmeF9za2JfdHhfcHJpdihza2IpOwogCXR4X3ByaXYtPnhtaXRfdGltZXN0YW1wID0g a3RpbWVfZ2V0KCk7Ci0JcmV0dXJuIChzdHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0YTsKKwlyZXR1 cm4gKHN0cnVjdCB3ZnhfaGlmX21zZyAqKXNrYi0+ZGF0YTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy93ZngvcXVldWUuaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuaAppbmRl eCBlZGQwZDAxOGIxOTguLjY2NTk2YTlhYmUzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5n L3dmeC9xdWV1ZS5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuaApAQCAtMzAsNyAr MzAsNyBAQCB2b2lkIHdmeF90eF9xdWV1ZXNfaW5pdChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZik7CiB2 b2lkIHdmeF90eF9xdWV1ZXNfY2hlY2tfZW1wdHkoc3RydWN0IHdmeF92aWYgKnd2aWYpOwogYm9v bCB3ZnhfdHhfcXVldWVzX2hhc19jYWIoc3RydWN0IHdmeF92aWYgKnd2aWYpOwogdm9pZCB3Znhf dHhfcXVldWVzX3B1dChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7 Ci1zdHJ1Y3QgaGlmX21zZyAqd2Z4X3R4X3F1ZXVlc19nZXQoc3RydWN0IHdmeF9kZXYgKndkZXYp Oworc3RydWN0IHdmeF9oaWZfbXNnICp3ZnhfdHhfcXVldWVzX2dldChzdHJ1Y3Qgd2Z4X2RldiAq d2Rldik7CiAKIGJvb2wgd2Z4X3R4X3F1ZXVlX2VtcHR5KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBz dHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSk7CiB2b2lkIHdmeF90eF9xdWV1ZV9kcm9wKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy93Zngvc3RhLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jCmluZGV4IGQz ODRmMmRmMzI5Yy4uNjIwZDhjOTEyZjk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4 L3N0YS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMKQEAgLTYzLDcgKzYzLDcgQEAg dm9pZCB3Znhfc3VzcGVuZF9ob3RfZGV2KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBlbnVtIHN0YV9u b3RpZnlfY21kIGNtZCkKIAogc3RhdGljIHZvaWQgd2Z4X2ZpbHRlcl9iZWFjb24oc3RydWN0IHdm eF92aWYgKnd2aWYsIGJvb2wgZmlsdGVyX2JlYWNvbikKIHsKLQlzdGF0aWMgY29uc3Qgc3RydWN0 IGhpZl9pZV90YWJsZV9lbnRyeSBmaWx0ZXJfaWVzW10gPSB7CisJc3RhdGljIGNvbnN0IHN0cnVj dCB3ZnhfaGlmX2llX3RhYmxlX2VudHJ5IGZpbHRlcl9pZXNbXSA9IHsKIAkJewogCQkJLmllX2lk ICAgICAgICA9IFdMQU5fRUlEX1ZFTkRPUl9TUEVDSUZJQywKIAkJCS5oYXNfY2hhbmdlZCAgPSAx LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC90cmFjZXMuaCBiL2RyaXZlcnMvc3Rh Z2luZy93ZngvdHJhY2VzLmgKaW5kZXggZTkwZGM3M2M0YjAxLi45OWJkMTgwODExMWUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvdHJhY2VzLmgKKysrIGIvZHJpdmVycy9zdGFnaW5n L3dmeC90cmFjZXMuaApAQCAtMTU4LDcgKzE1OCw3IEBAIGhpZl9taWJfbGlzdF9lbnVtCiAjZGVm aW5lIGhpZl9taWJfbGlzdCBoaWZfbWliX2xpc3RfZW51bSB7IC0xLCBOVUxMIH0KIAogREVDTEFS RV9FVkVOVF9DTEFTUyhoaWZfZGF0YSwKLQlUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgaGlmX21zZyAq aGlmLCBpbnQgdHhfZmlsbF9sZXZlbCwgYm9vbCBpc19yZWN2KSwKKwlUUF9QUk9UTyhjb25zdCBz dHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwgaW50IHR4X2ZpbGxfbGV2ZWwsIGJvb2wgaXNfcmVjdiks CiAJVFBfQVJHUyhoaWYsIHR4X2ZpbGxfbGV2ZWwsIGlzX3JlY3YpLAogCVRQX1NUUlVDVF9fZW50 cnkoCiAJCV9fZmllbGQoaW50LCB0eF9maWxsX2xldmVsKQpAQCAtMTkyLDcgKzE5Miw3IEBAIERF Q0xBUkVfRVZFTlRfQ0xBU1MoaGlmX2RhdGEsCiAJCX0KIAkJX19lbnRyeS0+YnVmX2xlbiA9IG1p bl90KGludCwgX19lbnRyeS0+bXNnX2xlbiwKIAkJCQkJIHNpemVvZihfX2VudHJ5LT5idWYpKQot CQkJCSAgIC0gc2l6ZW9mKHN0cnVjdCBoaWZfbXNnKSAtIGhlYWRlcl9sZW47CisJCQkJICAgLSBz aXplb2Yoc3RydWN0IHdmeF9oaWZfbXNnKSAtIGhlYWRlcl9sZW47CiAJCW1lbWNweShfX2VudHJ5 LT5idWYsIGhpZi0+Ym9keSArIGhlYWRlcl9sZW4sIF9fZW50cnktPmJ1Zl9sZW4pOwogCSksCiAJ VFBfcHJpbnRrKCIlZDolZDolc18lcyVzJXM6ICVzJXMgKCVkIGJ5dGVzKSIsCkBAIC0yMDgsMTIg KzIwOCwxMiBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKGhpZl9kYXRhLAogCSkKICk7CiBERUZJTkVf RVZFTlQoaGlmX2RhdGEsIGhpZl9zZW5kLAotCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBoaWZfbXNn ICpoaWYsIGludCB0eF9maWxsX2xldmVsLCBib29sIGlzX3JlY3YpLAorCVRQX1BST1RPKGNvbnN0 IHN0cnVjdCB3ZnhfaGlmX21zZyAqaGlmLCBpbnQgdHhfZmlsbF9sZXZlbCwgYm9vbCBpc19yZWN2 KSwKIAlUUF9BUkdTKGhpZiwgdHhfZmlsbF9sZXZlbCwgaXNfcmVjdikpOwogI2RlZmluZSBfdHJh Y2VfaGlmX3NlbmQoaGlmLCB0eF9maWxsX2xldmVsKVwKIAl0cmFjZV9oaWZfc2VuZChoaWYsIHR4 X2ZpbGxfbGV2ZWwsIGZhbHNlKQogREVGSU5FX0VWRU5UKGhpZl9kYXRhLCBoaWZfcmVjdiwKLQlU UF9QUk9UTyhjb25zdCBzdHJ1Y3QgaGlmX21zZyAqaGlmLCBpbnQgdHhfZmlsbF9sZXZlbCwgYm9v bCBpc19yZWN2KSwKKwlUUF9QUk9UTyhjb25zdCBzdHJ1Y3Qgd2Z4X2hpZl9tc2cgKmhpZiwgaW50 IHR4X2ZpbGxfbGV2ZWwsIGJvb2wgaXNfcmVjdiksCiAJVFBfQVJHUyhoaWYsIHR4X2ZpbGxfbGV2 ZWwsIGlzX3JlY3YpKTsKICNkZWZpbmUgX3RyYWNlX2hpZl9yZWN2KGhpZiwgdHhfZmlsbF9sZXZl bClcCiAJdHJhY2VfaGlmX3JlY3YoaGlmLCB0eF9maWxsX2xldmVsLCB0cnVlKQpAQCAtMzY0LDcg KzM2NCw3IEBAIFRSQUNFX0VWRU5UKGJoX3N0YXRzLAogCXRyYWNlX2JoX3N0YXRzKGluZCwgcmVx LCBjbmYsIGJ1c3ksIHJlbGVhc2UpCiAKIFRSQUNFX0VWRU5UKHR4X3N0YXRzLAotCVRQX1BST1RP KGNvbnN0IHN0cnVjdCBoaWZfY25mX3R4ICp0eF9jbmYsIGNvbnN0IHN0cnVjdCBza19idWZmICpz a2IsCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IHdmeF9oaWZfY25mX3R4ICp0eF9jbmYsIGNvbnN0 IHN0cnVjdCBza19idWZmICpza2IsCiAJCSBpbnQgZGVsYXkpLAogCVRQX0FSR1ModHhfY25mLCBz a2IsIGRlbGF5KSwKIAlUUF9TVFJVQ1RfX2VudHJ5KApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFn aW5nL3dmeC93ZnguaCBiL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmgKaW5kZXggZjhkZjU5YWQx NjM5Li4xYzA2NDMwZTU5OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmgK KysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaApAQCAtMzgsNyArMzgsNyBAQCBzdHJ1Y3Qg d2Z4X2RldiB7CiAKIAl1OAkJCWtleXNldDsKIAlzdHJ1Y3QgY29tcGxldGlvbglmaXJtd2FyZV9y ZWFkeTsKLQlzdHJ1Y3QgaGlmX2luZF9zdGFydHVwCWh3X2NhcHM7CisJc3RydWN0IHdmeF9oaWZf aW5kX3N0YXJ0dXAgaHdfY2FwczsKIAlzdHJ1Y3Qgd2Z4X2hpZgkJaGlmOwogCXN0cnVjdCBkZWxh eWVkX3dvcmsJY29vbGluZ190aW1lb3V0X3dvcms7CiAJYm9vbAkJCXBvbGxfaXJxOwpAQCAtNTMs OSArNTMsOSBAQCBzdHJ1Y3Qgd2Z4X2RldiB7CiAJYXRvbWljX3QJCXBhY2tldF9pZDsKIAl1MzIJ CQlrZXlfbWFwOwogCi0Jc3RydWN0IGhpZl9yeF9zdGF0cwlyeF9zdGF0czsKKwlzdHJ1Y3Qgd2Z4 X2hpZl9yeF9zdGF0cwlyeF9zdGF0czsKIAlzdHJ1Y3QgbXV0ZXgJCXJ4X3N0YXRzX2xvY2s7Ci0J c3RydWN0IGhpZl90eF9wb3dlcl9sb29wX2luZm8gdHhfcG93ZXJfbG9vcF9pbmZvOworCXN0cnVj dCB3ZnhfaGlmX3R4X3Bvd2VyX2xvb3BfaW5mbyB0eF9wb3dlcl9sb29wX2luZm87CiAJc3RydWN0 IG11dGV4CQl0eF9wb3dlcl9sb29wX2luZm9fbG9jazsKIAlpbnQJCQlmb3JjZV9wc190aW1lb3V0 OwogfTsKLS0gCjIuMzQuMQoK