From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id yHOjJdc+QGiCsgAAWB0awg (envelope-from ) for ; Wed, 04 Jun 2025 08:40:55 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=htecgroup.com header.i=@htecgroup.com header.a=rsa-sha256 header.s=selector1 header.b=HpmStwn2; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 9488E1E11C; Wed, 4 Jun 2025 08:40:55 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-9.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL, RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id CCE101E100 for ; Wed, 4 Jun 2025 08:40:52 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 72DB73858C54 for ; Wed, 4 Jun 2025 12:40:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 72DB73858C54 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=htecgroup.com header.i=@htecgroup.com header.a=rsa-sha256 header.s=selector1 header.b=HpmStwn2 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::3]) by sourceware.org (Postfix) with ESMTPS id E86D63858D34 for ; Wed, 4 Jun 2025 12:39:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E86D63858D34 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=htecgroup.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=htecgroup.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E86D63858D34 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c200::3 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1749040745; cv=pass; b=hF7BFDEc7EHLOIT0oAefHDfOuep6xyFGT4PiZGJcbyPPZtclEqf7pop2Wfwx7L0If6Ad+ElEfG3siZZyVXKBilPg7lCXW0JP6rPj8RinsNqptkqzWL5cnqdeLhbyXX9zvqw5cOyNpGUhWNyc5S1NiMAN195y5XFoGBLkF2XM1GU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1749040745; c=relaxed/simple; bh=67/3SIdO301y0XMVn5U1wp9WuRJbFMMJQXrjwN0Raw8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=U4XE+drUGzYluarQsT5lTG7zHVxKaWROycsqcAdKCgrkBc/bw5/SwOaa9qCcFbmI/aZLnE+zoef2G4A3VB/2QZTBbkuqcw702o6/gEz8PWaI8g0zrLDQqJE80anTPO+MiIKBs0wcbhBp0L+avpFkmAAD54RHHLfIVcZRsPcFJ3E= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E86D63858D34 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yrSC6zgu6URnannC5AZ9ElczlZM51yZviH+QYLWFS91dqmifbdf4eT68cEc262A83akhXAFmhKGKo020RkJHIpfJdWSjzRpWWxHYED7qsjW4Z803AII+oEAwFKAvhNs0rCN55h1TtFWyZWh9cIS/o4tFlGS9kCow7NSdRPtG+B6ay9gkdpbE2EUzAKcVYX9mT1x692lGxzwW7X0AVvDjojGDnLqW4KjSF+dFj6LZcpM4I+3MTZ66ItpDF75p0ZTxfxo0dJ4us9/4oeOfteAjxxSyLDA57YwS3zHfnsVCwr4XYDRCejHoTWQcyFNiZIXsRFBsHifs9uKC5+hqxzvv2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=67/3SIdO301y0XMVn5U1wp9WuRJbFMMJQXrjwN0Raw8=; b=hFvGFKJTxGkHylF/ZWkw6gLhOet8iTHmj3G8Kenggg5S3Xbubbl5WZM/NY0B8xNG5gn1OepBMHUT0/6mg4HBFYlTiOKkh++QYL7l47HTfvwjyH/6Mcelu6t0k1/Q9Vk7hRyuTjII9Vhx2mAoaeJeuYtOVAb/o3Rr4Arro0hNRy/Q2obRYZSsH74QwqaySRttSuaNHYWvfjw15et2ZR8jYJXl7Rsx0U1zgNybpKbyZ0rBMJTwMU7sSwxvSYxuiwt/1TS8JvxJzXt6AcYJ8JtIH9ch21ak/mL3tlrL34+cfbVKNK4s/MwmOYBtjCQ0iMk2sFiWqdYFztGwnX2vcGTLcw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=67/3SIdO301y0XMVn5U1wp9WuRJbFMMJQXrjwN0Raw8=; b=HpmStwn2Zo1iRvyWyAX5i4KBNRAX9uRTmT6POxgtZMLhOblqPhd9+i94D6iwcKHqt2HfXxs7dA/SZaTkmL0GG1sh6OeP57MDZy5NPOFO5UmFtE8w7FA776jLDesuqbz2wJ4bqRYpv9VIUjgr5z6stBt5nEWsD55KfNkWC8sOFkkwXzOqM1uAaxi0uuk8pwnXVGrFBwAqxVEgXThfmzzojAEgcrH3J0q1GM+XEoZed9GvTFINzfz2Ktcyk1Yt6J8VszBFzjxaDPUonTmWPrqHPWJfeWwO1DyVtBsxcPq/cKjbOQRh4wHhQ7y6ka5P18YZOTVsAGqXuxtsK2mFe7i2DA== Received: from PAVPR09MB6451.eurprd09.prod.outlook.com (2603:10a6:102:304::13) by AM8PR09MB5413.eurprd09.prod.outlook.com (2603:10a6:20b:328::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.37; Wed, 4 Jun 2025 12:39:02 +0000 Received: from PAVPR09MB6451.eurprd09.prod.outlook.com ([fe80::4569:9af3:a4cf:48d]) by PAVPR09MB6451.eurprd09.prod.outlook.com ([fe80::4569:9af3:a4cf:48d%5]) with mapi id 15.20.8769.031; Wed, 4 Jun 2025 12:39:01 +0000 From: Jovan Dmitrovic To: "gdb-patches@sourceware.org" CC: Djordje Todorovic , Milica Matic , "Maciej W . Rozycki" , Jovan Dmitrovic Subject: [PATCH v13 1/2] gdb: mips: Apply coding guidelines Thread-Topic: [PATCH v13 1/2] gdb: mips: Apply coding guidelines Thread-Index: AQHb1U2mTxUeXrYVI06W2AUgxblrIA== Date: Wed, 4 Jun 2025 12:39:01 +0000 Message-ID: <20250604123838.501596-2-jovan.dmitrovic@htecgroup.com> References: <20250604123838.501596-1-jovan.dmitrovic@htecgroup.com> In-Reply-To: <20250604123838.501596-1-jovan.dmitrovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR09MB6451:EE_|AM8PR09MB5413:EE_ x-ms-office365-filtering-correlation-id: 09016b19-8df1-43bf-8061-08dda364c8c2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?cWp0Ri8xbm1mS2hVU3VRdUpremROaE96dXRpUDFtVDVDSzkrV1B6MzIzanZN?= =?utf-8?B?T05xOXpaQmZpNGJsNGRVNXJSNE13OWZOMnoxZ1M5SXpSeXJqNityZjh5QW9T?= =?utf-8?B?WFZ3RWRhUXg4VkNscGdiUVZqNGF0TU1YaGJJT2RGTjN4aXhVVS9OOGg1M1NF?= =?utf-8?B?bHBsdXYxWmx4bWdGQms3MEUzR3U5anNvTmNHa2p1cGR4ZXhUU1ZBMU5EWEgr?= =?utf-8?B?eUVWY1dleWhwNGRndUJ4M2FPUGt2dE5OaEZNVGFGZUhoa1ZKaTFHNHp1MHY1?= =?utf-8?B?Zi9pNUdZbW0zTnNhK3VibzdnNU5CemZsSktjN0hxUzl6MFEzVUhkNndiK3la?= =?utf-8?B?WTJnUmJ1UzY3RERzSURZVWQvWElISWZrSzFGYi96clBLMjk2RFozbTBLd0ln?= =?utf-8?B?WlJZOGIyV3BHbU5lditjZ3BISWNIMlg2dlVtUUhZWXp2S2F0cDdBdzNOaUR0?= =?utf-8?B?VHZrRkNaYXFPTjlsTnhKanNmRkVGU2RYaDBmZjNObGpQVUVkNzlKeklPOEZJ?= =?utf-8?B?aGV2MlBFN1V0SVJiT0JKekJEUlA1b0E5V3V0VGVueC9iL1R6MXpya2xTd05Y?= =?utf-8?B?eUZ2d3dURnhSK0JVSGs5RmEzY0N1Qit6ZWJJeDdSY0YxcTFpVjJhT0J3c05U?= =?utf-8?B?Z3FuVGdENytKVHZUY29aeVhMMVZLMWh5bUhvcnZuS3ZKbVZJSlRlemc3U3d2?= =?utf-8?B?V3IrZ2ZjZDNsVzdXcEkxcUFvaCtBVVkxT0tDYWhPSWs1ZmxMeHdXK0hOS3RV?= =?utf-8?B?dVVQRVJrNDBWYkIwR0g5M2NUcWJ6RlNYcUlzYXpna0FScW13TmppWWFGSGdq?= =?utf-8?B?SGZ1TDk0N0V0YXFhd3RNR3pBNGxlNkl0cXVWVDRLZnN3eVVudWpRMFBCR1lE?= =?utf-8?B?czEwaFlMZURnRWx0UllwVzRtRnZFSTArbURlQUpWblpUU2U4Q05neStGTk1M?= =?utf-8?B?SWUzUGxFWEVWbkpTT2RHWUNydit1NTc2WHZiNUVkeFZEWitycGRRcm40dWMw?= =?utf-8?B?Mmc5elZmVmMrWHNHSDhLbmdpcURMdVFNdCtCRW03WnFJK25rVE5xREFVYnlG?= =?utf-8?B?K1E0VjNNKytJMkQwUitWUEw1WDZQOXQrMmZZMzZxZjBmUC90S3N2a2tBUlIz?= =?utf-8?B?a3FWSnVOVkJoZGpYbkFBY2Qzc0hhc3pEVHZkWWNwb2JRYXRXT2ltOWFTTmk4?= =?utf-8?B?SWtpWTdiRFROQzRhTzlBN2hndGRqYlA5M3BRRUhiRlpxcUZuT3ZyOTZTbU1w?= =?utf-8?B?YzdjQVhxM2UwRi9uWVJQTVdGRWJYZ2VBbGhtZEdVMVByQ2ZtQlorTXdIZG9J?= =?utf-8?B?ZlVRbWFubGlPRDVQemdRTGNROVg1MUN3OTFJa24zcW1mN0VNSlFod0wxL3BO?= =?utf-8?B?OEpZRVlaczkrajRIbzdjQldiajJXcUtZYk9QNEJPdmFxZWNyREVVdURrWmZo?= =?utf-8?B?UG1TaUxualBWUHZNdEJyd1pqeEhUOFBwSWZ4ejhuK09QOGorVmdKWmkyRThV?= =?utf-8?B?b1l2U01aZVZPOERRd1M1bGNITWE4a2dteTR4ZEt0elFIcnRkYUgyZjFOc2dp?= =?utf-8?B?djZxZGI0L3dHc0lDZFc4Yld3Mms1ZUR0ZVRPeUROWTJqdEZDb1E5SUJ2NldT?= =?utf-8?B?cTJZUldOQUFJdFlsbmRVYkxvMW1KZEl3bmRiME8vdWZPbWpweXhsazFubkVw?= =?utf-8?B?Ukc5NThSR2RwS2hKWDNyb1QvcVU1YU1uRmd6MytGalhjU0txUUVyT3o5dm5Z?= =?utf-8?B?NU5GWDY5Y3gxS09WZ3BJS1o4WTEyRDZyaXZGZ0dKNXg4b2ZEOVV6bmc5cWhE?= =?utf-8?B?S29BS25kMFQyclpveEU5K0FRWVdSZGxURkEzd251L0haZWtqVVFEMmlyZjMx?= =?utf-8?B?VW9KcEhJOVZmRU1ldTBlaFpYSUxlb3p5aU8yRTF3Tlg2YnJjRnhYenA1TThK?= =?utf-8?Q?NooXXQ1cILA=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAVPR09MB6451.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WlE3Uk1jdnhVZkdNeUJON0RkZTlzZEhNL3E1TlNTTGpTdmc0TVh4QmVSVmh0?= =?utf-8?B?UjZyMDk1SFFhZElyT21uWDFLYjlUZStGelhESzN4Vlg0WC9rUUdmcEpGdHFE?= =?utf-8?B?WVdSR1dxVmdBZHA3ZjY1bUJLbXNiMUR4QUIyZlI5QW81K05MSDA4SlkxQUdq?= =?utf-8?B?RzlqL3g3dm02TjduMGtYWWxLVDhjRUpSeE9sbEs1T2dXSkRlakhIcDQ5QnIz?= =?utf-8?B?NkpjN0p1VG9POWtIWlIrNEJpNndBcWV2NUszbU9EbjVPeFF1dnU4cXpOVWZZ?= =?utf-8?B?UkYrR0xQM1ljdHRPTEpTTUlLdkg2RFArdy9FTDlTKytBODYxV2dnYmZFZVJ6?= =?utf-8?B?ZXhpbVh3b3JHM0VObFRkVHlZVEc2cmpwbFJMOU0yRFlQOXlCcGN2MnVDZ0ZB?= =?utf-8?B?TC9vV2NFR0J2Z1UycDF6anJlTE1DVnlFa1p0TmxVWUlFT3d2UzZpRDJWYXlP?= =?utf-8?B?YjY3cTdqMDJ6NU1KRW5aby92K1ppM3lhYWdTa2l3OUErNnJuSTZlTkFibWZp?= =?utf-8?B?M1JORUF3L1phTFJZdDBaWHdscjlYVXhqcTNtK0ZEdnM1TDFjRjZFQnFxRXF0?= =?utf-8?B?TCt6R01rYU1ES2FpdVdnUTlESzBkOU9vMVhjbG1aY0o5Slh3dUdkZnJjYlpH?= =?utf-8?B?ZFNJVXYxSnFGZms5dEVWVzFhNUovcURjUEQ2UnlpaHhUMndFdnN1WVBBMHlo?= =?utf-8?B?R3lqTjdCQ0ovQmR3Z0Y4alVDaDRhcFp5QmJ3M0NxaldiUmpPZXh3WGNWWHNO?= =?utf-8?B?N0xsVnBHN1I2VGdjbEs1K21HWkc2YnhVdnVHSUtpclJCVGhWbkR4c2NuZklI?= =?utf-8?B?aTNKR2dWeEQrRHJkVmNDYkNWM2puelh0ZTVtVkVGZS9QN1ViUU9veG5vMFNN?= =?utf-8?B?Qm1yczV3N0lhZEMzcjJOa1g1ZkpoYUc2QlpERFQvN0I4NTlKeWZSWjIvK3dw?= =?utf-8?B?SnNEVVEvMnM4OFRrMUFFQWRHRk5HeUZLNmhIbEJ5YUtJOEhFckxvZjlpQVBi?= =?utf-8?B?aDhza0JUSGdZczA0dTNZNmo5dm9uMGZHdTZXY0FEVksvQmdESFgwd3FjaC9a?= =?utf-8?B?N01yRzZ6U2cvSnRRTTR1NStBaVEzMXZjM3BsVGhNYmxqbFJMbzB4ZjNFcHgw?= =?utf-8?B?M3YyVFordG81cmIzOHhmYUt3T1cyS2lMd0VVSjlFK3NYUDFqdUxOU0FieTgz?= =?utf-8?B?VmVKamxWdXNpbEk0S1hwWlFTb084MzdLVXcrUnJ0SE4xc1haRUVTSHNyV21Z?= =?utf-8?B?ejlkVDA1RDBnN3QzWDVmRkNYTHFPUTBIZGpMaGlHekdqWmZWK3YyaW9uQURw?= =?utf-8?B?QlFSeW5lbmtKaDJIaThpWG9WRUoydU5sU0ozOE1lKzNONUlLSmNTaG1zbm1G?= =?utf-8?B?VVhxbDJQTGI0d3NiWlBDd0ZXZ0dIUnV4Y2ZranpBSEZEZzlPZEErdGJRVkVF?= =?utf-8?B?YXNxK2pzQW5xSmRicEx2M0g5VCs1N1BaTUhpajl6RlNSbnZyVkdoZ3R3a0sx?= =?utf-8?B?bUd1SjcyaGVTZVZYbCtEOXlHaFJqSWVlekpnbWNQN3FhQUpaclMyZitrOGQ2?= =?utf-8?B?OXdXcXdUaHZhWnpNT0wxcG1CbndrV3dIRUdESk5GcVRoWmpvQzU5TlIvK1ZX?= =?utf-8?B?MTFUaGtvcVdnd0VUTzRjdVR4YlY2Y0trOUdWS1NNOEdLdDdkaDVqZHRWUCtN?= =?utf-8?B?K0lTYi9sdW5ZVHV6Qk5VT3M1YXpDZFhkTXJ4RFY5eUtpU1dzQlY0Y0lLOHlk?= =?utf-8?B?MkdXK1I4bHZ1NXJkMElLSHNhTmFwSUcyRjhiMUlWUDFkZWpPa0tPakhBYzRD?= =?utf-8?B?SnEzSjVUelRUdGNuVWRISmpMMTFOWFhTbFBpd2svNGpIdXpWVDlkdlBzZjZJ?= =?utf-8?B?VXRqMEFZeDhmUi8zTXZOMTJiT0JTVVJGTDZFbDBNS0czN1NUaEgwUFBaaFNB?= =?utf-8?B?aERlTW1DY0gzcUY2YkNPNjl4d1hQL3c0Q3Ayd2o0NTJvUklXYU04THFYeHBh?= =?utf-8?B?ZmFveE5BUEVTcTZmSi9MdGhZeEcrb3ZQdklOaWtyWnVRQkgzSytYT1Q1RFZ2?= =?utf-8?B?MG4ycG5TNVFLSE9KZEpBVVV2TWZJeERhZmxHRFprQ3RTRUNTN1N4dkswSHFh?= =?utf-8?B?MTR5WjhqNU9GbFVJdGVRdTlLeEpxaWJLNEhJc252UFYxVGdCb1ByY3Z3aWVB?= =?utf-8?Q?1fYtgj8HzrCh4kOZP7sWSfI=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <86F84DB8D213CE41AA22743364F353DA@eurprd09.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR09MB6451.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09016b19-8df1-43bf-8061-08dda364c8c2 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2025 12:39:01.6546 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +FFP/92c0euRU4Y9bBdOJoy3vL8QFy1M3yBIvCcPmiZXX7O9LyVJFMjtlceEJEeGowRS9krX3ZtoKZW/JLU3+RwQdQoulUlwfDMO1x5ehug= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR09MB5413 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org RnJvbTogTWlsaWNhIE1hdGljIDxtaWxpY2EubWF0aWNAaHRlY2dyb3VwLmNvbT4NCg0KRm9ybWF0 IG1pcHMtdGRlcC5jIGNvZGUgYXMgZGVzY3JpYmVkIG9uIGxpbmtzOg0KaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9nZGIvd2lraS9JbnRlcm5hbHMlMjBHREItQy1Db2RpbmctU3RhbmRhcmRzDQpodHRw czovL3d3dy5nbnUub3JnL3ByZXAvc3RhbmRhcmRzL3N0YW5kYXJkcy5odG1sI0NvbW1lbnRzDQoN ClNpZ25lZC1vZmYtYnk6IE1pbGljYSBNYXRpYyA8bWlsaWNhLm1hdGljQGh0ZWNncm91cC5jb20+ DQpTaWduZWQtb2ZmLWJ5OiBKb3ZhbiBEbWl0cm92acSHIDxqb3Zhbi5kbWl0cm92aWNAaHRlY2dy b3VwLmNvbT4NCi0tLQ0KIGdkYi9taXBzLXRkZXAuYyB8IDMxNSArKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAxIGZpbGUgY2hhbmdlZCwgMTg0IGluc2Vy dGlvbnMoKyksIDEzMSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2dkYi9taXBzLXRkZXAu YyBiL2dkYi9taXBzLXRkZXAuYw0KaW5kZXggYzY0Y2Q0N2M4YjYuLjQ4Mjg0YWJkZDczIDEwMDY0 NA0KLS0tIGEvZ2RiL21pcHMtdGRlcC5jDQorKysgYi9nZGIvbWlwcy10ZGVwLmMNCkBAIC03Niw4 ICs3Niw4IEBAIHN0YXRpYyBpbnQgbWlwczE2X2luc25fYXRfcGNfaGFzX2RlbGF5X3Nsb3QgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KIHN0YXRpYyB2b2lkIG1pcHNfcHJpbnRfZmxvYXRfaW5m byAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IHVpX2ZpbGUgKiwNCiAJCQkJICAgY29uc3QgZnJh bWVfaW5mb19wdHIgJiwgY29uc3QgY2hhciAqKTsNCiANCi0vKiBBIHVzZWZ1bCBiaXQgaW4gdGhl IENQMCBzdGF0dXMgcmVnaXN0ZXIgKE1JUFNfUFNfUkVHTlVNKS4gICovDQotLyogVGhpcyBiaXQg aXMgc2V0IGlmIHdlIGFyZSBlbXVsYXRpbmcgMzItYml0IEZQUnMgb24gYSA2NC1iaXQgY2hpcC4g ICovDQorLyogQSB1c2VmdWwgYml0IGluIHRoZSBDUDAgc3RhdHVzIHJlZ2lzdGVyIChNSVBTX1BT X1JFR05VTSkuDQorICAgVGhpcyBiaXQgaXMgc2V0IGlmIHdlIGFyZSBlbXVsYXRpbmcgMzItYml0 IEZQUnMgb24gYSA2NC1iaXQgY2hpcC4gICovDQogI2RlZmluZSBTVDBfRlIgKDEgPDwgMjYpDQog DQogLyogVGhlIHNpemVzIG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4gICovDQpAQCAtMTA3 NiwyMSArMTA3NiwyOSBAQCBtaXBzX3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBpbnQgcmVnbnVtKQ0KICAgICAgIGVsc2UgaWYgKGdkYmFyY2hfb3NhYmkgKGdkYmFyY2gp ICE9IEdEQl9PU0FCSV9MSU5VWA0KIAkgICAgICAgJiYgcmF3bnVtID49IE1JUFNfRklSU1RfRU1C RURfUkVHTlVNDQogCSAgICAgICAmJiByYXdudW0gPD0gTUlQU19MQVNUX0VNQkVEX1JFR05VTSkN Ci0JLyogVGhlIHBzZXVkby9jb29rZWQgdmlldyBvZiB0aGUgZW1iZWRkZWQgcmVnaXN0ZXJzIGlz IGFsd2F5cw0KLQkgICAzMi1iaXQuICBUaGUgcmF3IHZpZXcgaXMgaGFuZGxlZCBiZWxvdy4gICov DQotCXJldHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDMyOw0KKwl7DQor CSAgLyogVGhlIHBzZXVkby9jb29rZWQgdmlldyBvZiB0aGUgZW1iZWRkZWQgcmVnaXN0ZXJzIGlz IGFsd2F5cw0KKwkgICAgIDMyLWJpdC4gIFRoZSByYXcgdmlldyBpcyBoYW5kbGVkIGJlbG93LiAg Ki8NCisJICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQzMjsNCisJ fQ0KICAgICAgIGVsc2UgaWYgKHRkZXAtPm1pcHM2NF90cmFuc2ZlcnNfMzJiaXRfcmVnc19wKQ0K LQkvKiBUaGUgdGFyZ2V0LCB3aGlsZSBwb3NzaWJseSB1c2luZyBhIDY0LWJpdCByZWdpc3RlciBi dWZmZXIsDQotCSAgIGlzIG9ubHkgdHJhbnNmZXJyaW5nIDMyLWJpdHMgb2YgZWFjaCBpbnRlZ2Vy IHJlZ2lzdGVyLg0KLQkgICBSZWZsZWN0IHRoaXMgaW4gdGhlIGNvb2tlZC9wc2V1ZG8gKEFCSSkg cmVnaXN0ZXIgdmFsdWUuICAqLw0KLQlyZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVp bHRpbl9pbnQzMjsNCisJew0KKwkgIC8qIFRoZSB0YXJnZXQsIHdoaWxlIHBvc3NpYmx5IHVzaW5n IGEgNjQtYml0IHJlZ2lzdGVyIGJ1ZmZlciwNCisJICAgICBpcyBvbmx5IHRyYW5zZmVycmluZyAz Mi1iaXRzIG9mIGVhY2ggaW50ZWdlciByZWdpc3Rlci4NCisJICAgICBSZWZsZWN0IHRoaXMgaW4g dGhlIGNvb2tlZC9wc2V1ZG8gKEFCSSkgcmVnaXN0ZXIgdmFsdWUuICAqLw0KKwkgIHJldHVybiBi dWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDMyOw0KKwl9DQogICAgICAgZWxzZSBp ZiAobWlwc19hYmlfcmVnc2l6ZSAoZ2RiYXJjaCkgPT0gNCkNCi0JLyogVGhlIEFCSSBpcyByZXN0 cmljdGVkIHRvIDMyLWJpdCByZWdpc3RlcnMgKHRoZSBJU0EgY291bGQgYmUNCi0JICAgMzItIG9y IDY0LWJpdCkuICAqLw0KLQlyZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9p bnQzMjsNCisJew0KKwkgIC8qIFRoZSBBQkkgaXMgcmVzdHJpY3RlZCB0byAzMi1iaXQgcmVnaXN0 ZXJzICh0aGUgSVNBIGNvdWxkIGJlDQorCSAgICAgMzItIG9yIDY0LWJpdCkuICAqLw0KKwkgIHJl dHVybiBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDMyOw0KKwl9DQogICAgICAg ZWxzZQ0KLQkvKiA2NC1iaXQgQUJJLiAgKi8NCi0JcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJj aCktPmJ1aWx0aW5faW50NjQ7DQorCXsNCisJICAvKiA2NC1iaXQgQUJJLiAgKi8NCisJICByZXR1 cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsNCisJfQ0KICAgICB9DQog fQ0KIA0KQEAgLTE1OTgsOCArMTYwNiwxMCBAQCBtaXBzMzJfYmMxX3BjIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwNCiAgIGludCBjb25kOw0KIA0K ICAgaWYgKGZjc3IgPT0gLTEpDQotICAgIC8qIE5vIHdheSB0byBoYW5kbGU7IGl0J2xsIG1vc3Qg bGlrZWx5IHRyYXAgYW55d2F5LiAgKi8NCi0gICAgcmV0dXJuIHBjOw0KKyAgICB7DQorICAgICAg LyogTm8gd2F5IHRvIGhhbmRsZTsgaXQnbGwgbW9zdCBsaWtlbHkgdHJhcCBhbnl3YXkuICAqLw0K KyAgICAgIHJldHVybiBwYzsNCisgICAgfQ0KIA0KICAgZmNzID0gcmVnY2FjaGVfcmF3X2dldF91 bnNpZ25lZCAocmVnY2FjaGUsIGZjc3IpOw0KICAgY29uZCA9ICgoZmNzID4+IDI0KSAmIDB4ZmUp IHwgKChmY3MgPj4gMjMpICYgMHgwMSk7DQpAQCAtMTYzMSwxMCArMTY0MSwxMCBAQCBpc19vY3Rl b25fYmJpdF9vcCAoaW50IG9wLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkNCiB7DQogICBpZiAo IWlzX29jdGVvbiAoZ2RiYXJjaCkpDQogICAgIHJldHVybiAwOw0KLSAgLyogQkJJVDAgaXMgZW5j b2RlZCBhcyBMV0MyOiAxMTAgMDEwLiAgKi8NCi0gIC8qIEJCSVQwMzIgaXMgZW5jb2RlZCBhcyBM REMyOiAxMTAgMTEwLiAgKi8NCi0gIC8qIEJCSVQxIGlzIGVuY29kZWQgYXMgU1dDMjogMTExIDAx MC4gICovDQotICAvKiBCQklUMTMyIGlzIGVuY29kZWQgYXMgU0RDMjogMTExIDExMC4gICovDQor ICAvKiBCQklUMCBpcyBlbmNvZGVkIGFzIExXQzI6IDExMCAwMTAuDQorICAgICBCQklUMDMyIGlz IGVuY29kZWQgYXMgTERDMjogMTEwIDExMC4NCisgICAgIEJCSVQxIGlzIGVuY29kZWQgYXMgU1dD MjogMTExIDAxMC4NCisgICAgIEJCSVQxMzIgaXMgZW5jb2RlZCBhcyBTREMyOiAxMTEgMTEwLiAg Ki8NCiAgIGlmIChvcCA9PSA1MCB8fCBvcCA9PSA1NCB8fCBvcCA9PSA1OCB8fCBvcCA9PSA2MikN CiAgICAgcmV0dXJuIDE7DQogICByZXR1cm4gMDsNCkBAIC0xNjUyLDEyICsxNjYyLDExIEBAIG1p cHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQog ICBpbnQgb3A7DQogICBpbnN0ID0gbWlwc19mZXRjaF9pbnN0cnVjdGlvbiAoZ2RiYXJjaCwgSVNB X01JUFMsIHBjLCBOVUxMKTsNCiAgIG9wID0gaXR5cGVfb3AgKGluc3QpOw0KLSAgaWYgKChpbnN0 ICYgMHhlMDAwMDAwMCkgIT0gMCkJCS8qIE5vdCBhIHNwZWNpYWwsIGp1bXAgb3IgYnJhbmNoDQot CQkJCQkgICBpbnN0cnVjdGlvbi4gICovDQorICBpZiAoKGluc3QgJiAweGUwMDAwMDAwKSAhPSAw KSAvKiBOb3QgYSBzcGVjaWFsLCBqdW1wIG9yIGJyYW5jaCBpbnN0cnVjdGlvbi4gICovDQogICAg IHsNCiAgICAgICBpZiAob3AgPj4gMiA9PSA1KQ0KLQkvKiBCRVFMLCBCTkVMLCBCTEVaTCwgQkdU Wkw6IGJpdHMgMDEwMXh4ICovDQogCXsNCisJICAvKiBCRVFMLCBCTkVMLCBCTEVaTCwgQkdUWkw6 IGJpdHMgMDEwMXh4ICovDQogCSAgc3dpdGNoIChvcCAmIDB4MDMpDQogCSAgICB7DQogCSAgICBj YXNlIDA6CQkvKiBCRVFMICovDQpAQCAtMTY3MywyMCArMTY4MiwyNiBAQCBtaXBzMzJfbmV4dF9w YyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkgICAgfQ0KIAl9 DQogICAgICAgZWxzZSBpZiAob3AgPT0gMTcgJiYgaXR5cGVfcnMgKGluc3QpID09IDgpDQotCS8q IEJDMUYsIEJDMUZMLCBCQzFULCBCQzFUTDogMDEwMDAxIDAxMDAwICovDQotCXBjID0gbWlwczMy X2JjMV9wYyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluc3QsIHBjICsgNCwgMSk7DQorCXsNCisJICAv KiBCQzFGLCBCQzFGTCwgQkMxVCwgQkMxVEw6IDAxMDAwMSAwMTAwMCAqLw0KKwkgIHBjID0gbWlw czMyX2JjMV9wYyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluc3QsIHBjICsgNCwgMSk7DQorCX0NCiAg ICAgICBlbHNlIGlmIChvcCA9PSAxNyAmJiBpdHlwZV9ycyAoaW5zdCkgPT0gOQ0KIAkgICAgICAg JiYgKGl0eXBlX3J0IChpbnN0KSAmIDIpID09IDApDQotCS8qIEJDMUFOWTJGLCBCQzFBTlkyVDog MDEwMDAxIDAxMDAxIHh4eDB4ICovDQotCXBjID0gbWlwczMyX2JjMV9wYyAoZ2RiYXJjaCwgcmVn Y2FjaGUsIGluc3QsIHBjICsgNCwgMik7DQorCXsNCisJICAvKiBCQzFBTlkyRiwgQkMxQU5ZMlQ6 IDAxMDAwMSAwMTAwMSB4eHgweCAqLw0KKwkgIHBjID0gbWlwczMyX2JjMV9wYyAoZ2RiYXJjaCwg cmVnY2FjaGUsIGluc3QsIHBjICsgNCwgMik7DQorCX0NCiAgICAgICBlbHNlIGlmIChvcCA9PSAx NyAmJiBpdHlwZV9ycyAoaW5zdCkgPT0gMTANCiAJICAgICAgICYmIChpdHlwZV9ydCAoaW5zdCkg JiAyKSA9PSAwKQ0KLQkvKiBCQzFBTlk0RiwgQkMxQU5ZNFQ6IDAxMDAwMSAwMTAxMCB4eHgweCAq Lw0KLQlwYyA9IG1pcHMzMl9iYzFfcGMgKGdkYmFyY2gsIHJlZ2NhY2hlLCBpbnN0LCBwYyArIDQs IDQpOw0KKwl7DQorCSAgLyogQkMxQU5ZNEYsIEJDMUFOWTRUOiAwMTAwMDEgMDEwMTAgeHh4MHgg Ki8NCisJICBwYyA9IG1pcHMzMl9iYzFfcGMgKGdkYmFyY2gsIHJlZ2NhY2hlLCBpbnN0LCBwYyAr IDQsIDQpOw0KKwl9DQogICAgICAgZWxzZSBpZiAob3AgPT0gMjkpDQotCS8qIEpBTFg6IDAxMTEw MSAqLw0KLQkvKiBUaGUgbmV3IFBDIHdpbGwgYmUgYWx0ZXJuYXRlIG1vZGUuICAqLw0KIAl7DQor CSAgLyogSkFMWDogMDExMTAxDQorCSAgICAgVGhlIG5ldyBQQyB3aWxsIGJlIGFsdGVybmF0ZSBt b2RlLiAgKi8NCiAJICB1bnNpZ25lZCBsb25nIHJlZzsNCiANCiAJICByZWcgPSBqdHlwZV90YXJn ZXQgKGluc3QpIDw8IDI7DQpAQCAtMTcwMCwyNyArMTcxNSwzMyBAQCBtaXBzMzJfbmV4dF9wYyAo c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkgIGJyYW5jaF9pZiA9 IG9wID09IDU4IHx8IG9wID09IDYyOw0KIAkgIGJpdCA9IGl0eXBlX3J0IChpbnN0KTsNCiANCi0J ICAvKiBUYWtlIGludG8gYWNjb3VudCB0aGUgKjMyIGluc3RydWN0aW9ucy4gICovDQogCSAgaWYg KG9wID09IDU0IHx8IG9wID09IDYyKQ0KLQkgICAgYml0ICs9IDMyOw0KKwkgICAgew0KKwkgICAg ICAvKiBUYWtlIGludG8gYWNjb3VudCB0aGUgKjMyIGluc3RydWN0aW9ucy4gICovDQorCSAgICAg IGJpdCArPSAzMjsNCisJICAgIH0NCiANCiAJICBpZiAoKChyZWdjYWNoZV9yYXdfZ2V0X3NpZ25l ZCAocmVnY2FjaGUsDQogCQkJCQkgaXR5cGVfcnMgKGluc3QpKSA+PiBiaXQpICYgMSkNCiAJICAg ICAgPT0gYnJhbmNoX2lmKQ0KIAkgICAgcGMgKz0gbWlwczMyX3JlbGF0aXZlX29mZnNldCAoaW5z dCkgKyA0Ow0KIAkgIGVsc2UNCi0JICAgIHBjICs9IDg7CQkvKiBBZnRlciB0aGUgZGVsYXkgc2xv dC4gICovDQorCSAgICB7DQorCSAgICAgIC8qIEFmdGVyIHRoZSBkZWxheSBzbG90LiAgKi8NCisJ ICAgICAgcGMgKz0gODsNCisJICAgIH0NCiAJfQ0KKw0KICAgICAgIGVsc2UNCiAJcGMgKz0gNDsJ CS8qIE5vdCBhIGJyYW5jaCwgbmV4dCBpbnN0cnVjdGlvbiBpcyBlYXN5LiAgKi8NCiAgICAgfQ0K ICAgZWxzZQ0KLSAgICB7CQkJCS8qIFRoaXMgZ2V0cyB3YXkgbWVzc3kuICAqLw0KLQ0KLSAgICAg IC8qIEZ1cnRoZXIgc3ViZGl2aWRlIGludG8gU1BFQ0lBTCwgUkVHSU1NIGFuZCBvdGhlci4gICov DQorICAgIHsNCisgICAgICAvKiBUaGlzIGdldHMgd2F5IG1lc3N5Lg0KKwkgRnVydGhlciBzdWJk aXZpZGUgaW50byBTUEVDSUFMLCBSRUdJTU0gYW5kIG90aGVyLiAgKi8NCiAgICAgICBzd2l0Y2gg KG9wICYgMHgwNykJLyogRXh0cmFjdCBiaXRzIDI4LDI3LDI2LiAgKi8NCiAJew0KLQljYXNlIDA6 CQkvKiBTUEVDSUFMICovDQorCWNhc2UgMDogIC8qIFNQRUNJQUwgKi8NCiAJICBvcCA9IHJ0eXBl X2Z1bmN0IChpbnN0KTsNCiAJICBzd2l0Y2ggKG9wKQ0KIAkgICAgew0KQEAgLTE3MjksNyArMTc1 MCw3IEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FE RFIgcGMpDQogCSAgICAgIC8qIFNldCBQQyB0byB0aGF0IGFkZHJlc3MuICAqLw0KIAkgICAgICBw YyA9IHJlZ2NhY2hlX3Jhd19nZXRfc2lnbmVkIChyZWdjYWNoZSwgcnR5cGVfcnMgKGluc3QpKTsN CiAJICAgICAgYnJlYWs7DQotCSAgICBjYXNlIDEyOgkJLyogU1lTQ0FMTCAqLw0KKwkgICAgY2Fz ZSAxMjoJICAgIC8qIFNZU0NBTEwgKi8NCiAJICAgICAgew0KIAkJbWlwc19nZGJhcmNoX3RkZXAg KnRkZXANCiAJCSAgPSBnZGJhcmNoX3RkZXA8bWlwc19nZGJhcmNoX3RkZXA+IChnZGJhcmNoKTsN CkBAIC0xNzQ0LDEwICsxNzY1LDEwIEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCSAgICAgIHBjICs9IDQ7DQogCSAgICB9DQogDQot CSAgYnJlYWs7CS8qIGVuZCBTUEVDSUFMICovDQotCWNhc2UgMToJCS8qIFJFR0lNTSAqLw0KKwkg IGJyZWFrOyAgLyogZW5kIFNQRUNJQUwgKi8NCisJY2FzZSAxOiAgLyogUkVHSU1NICovDQogCSAg ew0KLQkgICAgb3AgPSBpdHlwZV9ydCAoaW5zdCk7CS8qIEJyYW5jaCBjb25kaXRpb24uICAqLw0K KwkgICAgb3AgPSBpdHlwZV9ydCAoaW5zdCk7ICAvKiBicmFuY2ggY29uZGl0aW9uICovDQogCSAg ICBzd2l0Y2ggKG9wKQ0KIAkgICAgICB7DQogCSAgICAgIGNhc2UgMDoJCS8qIEJMVFogKi8NCkBA IC0xNzU4LDcgKzE3NzksNyBAQCBtaXBzMzJfbmV4dF9wYyAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkJaWYgKHJlZ2NhY2hlX3Jhd19nZXRfc2lnbmVkIChyZWdj YWNoZSwgaXR5cGVfcnMgKGluc3QpKSA8IDApDQogCQkgIHBjICs9IG1pcHMzMl9yZWxhdGl2ZV9v ZmZzZXQgKGluc3QpICsgNDsNCiAJCWVsc2UNCi0JCSAgcGMgKz0gODsJLyogQWZ0ZXIgdGhlIGRl bGF5IHNsb3QuICAqLw0KKwkJICBwYyArPSA4OwkvKiBhZnRlciB0aGUgZGVsYXkgc2xvdCAqLw0K IAkJYnJlYWs7DQogCSAgICAgIGNhc2UgMToJCS8qIEJHRVogKi8NCiAJICAgICAgY2FzZSAzOgkJ LyogQkdFWkwgKi8NCkBAIC0xNzY3LDcgKzE3ODgsNyBAQCBtaXBzMzJfbmV4dF9wYyAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkJaWYgKHJlZ2NhY2hlX3Jhd19n ZXRfc2lnbmVkIChyZWdjYWNoZSwgaXR5cGVfcnMgKGluc3QpKSA+PSAwKQ0KIAkJICBwYyArPSBt aXBzMzJfcmVsYXRpdmVfb2Zmc2V0IChpbnN0KSArIDQ7DQogCQllbHNlDQotCQkgIHBjICs9IDg7 CS8qIEFmdGVyIHRoZSBkZWxheSBzbG90LiAgKi8NCisJCSAgcGMgKz0gODsJLyogYWZ0ZXIgdGhl IGRlbGF5IHNsb3QgKi8NCiAJCWJyZWFrOw0KIAkgICAgICBjYXNlIDB4MWM6CS8qIEJQT1NHRTMy ICovDQogCSAgICAgIGNhc2UgMHgxZToJLyogQlBPU0dFNjQgKi8NCkBAIC0xNzc4LDggKzE3OTks MTAgQEAgbWlwczMyX25leHRfcGMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQURE UiBwYykNCiAJCSAgICBpbnQgZHNwY3RsID0gbWlwc19yZWdudW0gKGdkYmFyY2gpLT5kc3BjdGw7 DQogDQogCQkgICAgaWYgKGRzcGN0bCA9PSAtMSkNCi0JCSAgICAgIC8qIE5vIHdheSB0byBoYW5k bGU7IGl0J2xsIG1vc3QgbGlrZWx5IHRyYXAgYW55d2F5LiAgKi8NCi0JCSAgICAgIGJyZWFrOw0K KwkJICAgICAgew0KKwkJCS8qIE5vIHdheSB0byBoYW5kbGU7IGl0J2xsIG1vc3QgbGlrZWx5IHRy YXAgYW55d2F5LiAgKi8NCisJCQlicmVhazsNCisJCSAgICAgIH0NCiANCiAJCSAgICBpZiAoKHJl Z2NhY2hlX3Jhd19nZXRfdW5zaWduZWQgKHJlZ2NhY2hlLA0KIAkJCQkJCSAgICBkc3BjdGwpICYg MHg3ZikgPj0gcG9zKQ0KQEAgLTE3OTMsNyArMTgxNiw3IEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCQlwYyArPSA0Ow0KIAkgICAg ICB9DQogCSAgfQ0KLQkgIGJyZWFrOwkvKiBlbmQgUkVHSU1NICovDQorCSAgYnJlYWs7ICAvKiBl bmQgUkVHSU1NICovDQogCWNhc2UgMjoJCS8qIEogKi8NCiAJY2FzZSAzOgkJLyogSkFMICovDQog CSAgew0KQEAgLTE4MjcsNyArMTg1MCw3IEBAIG1pcHMzMl9uZXh0X3BjIChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCSAgYnJlYWs7DQogCWNhc2UgNzoNCiAJZGVm YXVsdDoNCi0JZ3JlYXRlcl9icmFuY2g6CS8qIEJHVFosIEJHVFpMICovDQorCWdyZWF0ZXJfYnJh bmNoOiAvKiBCR1RaLCBCR1RaTCAqLw0KIAkgIGlmIChyZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAo cmVnY2FjaGUsIGl0eXBlX3JzIChpbnN0KSkgPiAwKQ0KIAkgICAgcGMgKz0gbWlwczMyX3JlbGF0 aXZlX29mZnNldCAoaW5zdCkgKyA0Ow0KIAkgIGVsc2UNCkBAIC0xODkzLDggKzE5MTYsMTAgQEAg bWljcm9taXBzX2JjMV9wYyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsDQogICBpbnQgY29uZDsNCiANCiAgIGlmIChmY3NyID09IC0xKQ0KLSAgICAv KiBObyB3YXkgdG8gaGFuZGxlOyBpdCdsbCBtb3N0IGxpa2VseSB0cmFwIGFueXdheS4gICovDQot ICAgIHJldHVybiBwYzsNCisgICAgew0KKyAgICAgIC8qIE5vIHdheSB0byBoYW5kbGU7IGl0J2xs IG1vc3QgbGlrZWx5IHRyYXAgYW55d2F5LiAgKi8NCisgICAgICByZXR1cm4gcGM7DQorICAgIH0N CiANCiAgIGZjcyA9IHJlZ2NhY2hlX3Jhd19nZXRfdW5zaWduZWQgKHJlZ2NhY2hlLCBmY3NyKTsN CiAgIGNvbmQgPSAoKGZjcyA+PiAyNCkgJiAweGZlKSB8ICgoZmNzID4+IDIzKSAmIDB4MDEpOw0K QEAgLTIwMDgsOCArMjAzMywxMCBAQCBtaWNyb21pcHNfbmV4dF9wYyAoc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkgICAgY2FzZSAweDE0OiAvKiBCQzJGOiBiaXRz IDAxMDAwMCAxMDEwMCB4eHgwMCAqLw0KIAkgICAgY2FzZSAweDE1OiAvKiBCQzJUOiBiaXRzIDAx MDAwMCAxMDEwMSB4eHgwMCAqLw0KIAkgICAgICBpZiAoKChpbnNuID4+IDE2KSAmIDB4MykgPT0g MHgwKQ0KLQkJLyogQkMyRiwgQkMyVDogZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIHRoZXNlLiAg Ki8NCi0JCWJyZWFrOw0KKwkJew0KKwkJICAvKiBCQzJGLCBCQzJUOiBkb24ndCBrbm93IGhvdyB0 byBoYW5kbGUgdGhlc2UuICAqLw0KKwkJICBicmVhazsNCisJCX0NCiAJICAgICAgYnJlYWs7DQog DQogCSAgICBjYXNlIDB4MWE6IC8qIEJQT1NHRTY0OiBiaXRzIDAxMDAwMCAxMTAxMCAqLw0KQEAg LTIwMTksOCArMjA0NiwxMCBAQCBtaWNyb21pcHNfbmV4dF9wYyAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgQ09SRV9BRERSIHBjKQ0KIAkJaW50IGRzcGN0bCA9IG1pcHNfcmVnbnVtIChnZGJh cmNoKS0+ZHNwY3RsOw0KIA0KIAkJaWYgKGRzcGN0bCA9PSAtMSkNCi0JCSAgLyogTm8gd2F5IHRv IGhhbmRsZTsgaXQnbGwgbW9zdCBsaWtlbHkgdHJhcCBhbnl3YXkuICAqLw0KLQkJICBicmVhazsN CisJCSAgew0KKwkJICAgIC8qIE5vIHdheSB0byBoYW5kbGU7IGl0J2xsIG1vc3QgbGlrZWx5IHRy YXAgYW55d2F5LiAgKi8NCisJCSAgICBicmVhazsNCisJCSAgfQ0KIA0KIAkJaWYgKChyZWdjYWNo ZV9yYXdfZ2V0X3Vuc2lnbmVkIChyZWdjYWNoZSwNCiAJCQkJCQlkc3BjdGwpICYgMHg3ZikgPj0g cG9zKQ0KQEAgLTIwNTUsNyArMjA4NCw3IEBAIG1pY3JvbWlwc19uZXh0X3BjIChzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogDQogCWNhc2UgMHgyNTogLyogQkVROiBi aXRzIDEwMDEwMSAqLw0KIAkgIGlmIChyZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUs IGIwczVfcmVnIChpbnNuID4+IDE2KSkNCi0JICAgICAgPT0gcmVnY2FjaGVfcmF3X2dldF9zaWdu ZWQgKHJlZ2NhY2hlLCBiNXM1X3JlZyAoaW5zbiA+PiAxNikpKQ0KKwkJPT0gcmVnY2FjaGVfcmF3 X2dldF9zaWduZWQgKHJlZ2NhY2hlLCBiNXM1X3JlZyAoaW5zbiA+PiAxNikpKQ0KIAkgICAgcGMg Kz0gbWljcm9taXBzX3JlbGF0aXZlX29mZnNldDE2IChpbnNuKTsNCiAJICBlbHNlDQogCSAgICBw YyArPSBtaWNyb21pcHNfcGNfaW5zbl9zaXplIChnZGJhcmNoLCBwYyk7DQpAQCAtMjA2Myw3ICsy MDkyLDcgQEAgbWljcm9taXBzX25leHRfcGMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENP UkVfQUREUiBwYykNCiANCiAJY2FzZSAweDJkOiAvKiBCTkU6IGJpdHMgMTAxMTAxICovDQogCSAg aWYgKHJlZ2NhY2hlX3Jhd19nZXRfc2lnbmVkIChyZWdjYWNoZSwgYjBzNV9yZWcgKGluc24gPj4g MTYpKQ0KLQkgICAgICAhPSByZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVnY2FjaGUsIGI1czVf cmVnIChpbnNuID4+IDE2KSkpDQorCQkhPSByZWdjYWNoZV9yYXdfZ2V0X3NpZ25lZCAocmVnY2Fj aGUsIGI1czVfcmVnIChpbnNuID4+IDE2KSkpDQogCSAgICBwYyArPSBtaWNyb21pcHNfcmVsYXRp dmVfb2Zmc2V0MTYgKGluc24pOw0KIAkgIGVsc2UNCiAJICAgIHBjICs9IG1pY3JvbWlwc19wY19p bnNuX3NpemUgKGdkYmFyY2gsIHBjKTsNCkBAIC0yMDgxLDExICsyMTEwLDE1IEBAIG1pY3JvbWlw c19uZXh0X3BjIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBDT1JFX0FERFIgcGMpDQogCXsN CiAJY2FzZSAweDExOiAvKiBQT09MMTZDOiBiaXRzIDAxMDAwMSAqLw0KIAkgIGlmICgoYjVzNV9v cCAoaW5zbikgJiAweDFjKSA9PSAweGMpDQotCSAgICAvKiBKUjE2LCBKUkMsIEpBTFIxNiwgSkFM UlMxNjogMDEwMDAxIDAxMXh4ICovDQotCSAgICBwYyA9IHJlZ2NhY2hlX3Jhd19nZXRfc2lnbmVk IChyZWdjYWNoZSwgYjBzNV9yZWcgKGluc24pKTsNCisJICAgIHsNCisJICAgICAgLyogSlIxNiwg SlJDLCBKQUxSMTYsIEpBTFJTMTY6IDAxMDAwMSAwMTF4eCAqLw0KKwkgICAgICBwYyA9IHJlZ2Nh Y2hlX3Jhd19nZXRfc2lnbmVkIChyZWdjYWNoZSwgYjBzNV9yZWcgKGluc24pKTsNCisJICAgIH0N CiAJICBlbHNlIGlmIChiNXM1X29wIChpbnNuKSA9PSAweDE4KQ0KLQkgICAgLyogSlJBRERJVVNQ OiBiaXRzIDAxMDAwMSAxMTAwMCAqLw0KLQkgICAgcGMgPSByZWdjYWNoZV9yYXdfZ2V0X3NpZ25l ZCAocmVnY2FjaGUsIE1JUFNfUkFfUkVHTlVNKTsNCisJICAgIHsNCisJICAgICAgLyogSlJBRERJ VVNQOiBiaXRzIDAxMDAwMSAxMTAwMCAqLw0KKwkgICAgICBwYyA9IHJlZ2NhY2hlX3Jhd19nZXRf c2lnbmVkIChyZWdjYWNoZSwgTUlQU19SQV9SRUdOVU0pOw0KKwkgICAgfQ0KIAkgIGJyZWFrOw0K IA0KIAljYXNlIDB4MjM6IC8qIEJFUVoxNjogYml0cyAxMDAwMTEgKi8NCkBAIC0yNTQwLDEwICsy NTczLDEwIEBAIG1pcHMxNl9zY2FuX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwN CiAgIGxvbmcgZnJhbWVfb2Zmc2V0ID0gMDsJLyogU2l6ZSBvZiBzdGFjayBmcmFtZS4gICovDQog ICBsb25nIGZyYW1lX2FkanVzdCA9IDA7CS8qIE9mZnNldCBvZiBGUCBmcm9tIFNQLiAgKi8NCiAg IGludCBmcmFtZV9yZWcgPSBNSVBTX1NQX1JFR05VTTsNCi0gIHVuc2lnbmVkIHNob3J0IHByZXZf aW5zdCA9IDA7CS8qIFNhdmVkIGNvcHkgb2YgcHJldmlvdXMgaW5zdHJ1Y3Rpb24uICAqLw0KLSAg dW5zaWduZWQgaW5zdCA9IDA7CQkvKiBDdXJyZW50IGluc3RydWN0aW9uLiAgKi8NCi0gIHVuc2ln bmVkIGVudHJ5X2luc3QgPSAwOwkvKiBUaGUgZW50cnkgaW5zdHJ1Y3Rpb24uICAqLw0KLSAgdW5z aWduZWQgc2F2ZV9pbnN0ID0gMDsJLyogVGhlIHNhdmUgaW5zdHJ1Y3Rpb24uICAqLw0KKyAgdW5z aWduZWQgc2hvcnQgcHJldl9pbnN0ID0gMDsJLyogc2F2ZWQgY29weSBvZiBwcmV2aW91cyBpbnN0 cnVjdGlvbi4gICovDQorICB1bnNpZ25lZCBpbnN0ID0gMDsJCS8qIGN1cnJlbnQgaW5zdHJ1Y3Rp b24gKi8NCisgIHVuc2lnbmVkIGVudHJ5X2luc3QgPSAwOwkvKiB0aGUgZW50cnkgaW5zdHJ1Y3Rp b24gKi8NCisgIHVuc2lnbmVkIHNhdmVfaW5zdCA9IDA7CS8qIHRoZSBzYXZlIGluc3RydWN0aW9u ICovDQogICBpbnQgcHJldl9kZWxheV9zbG90ID0gMDsNCiAgIGludCBpbl9kZWxheV9zbG90Ow0K ICAgaW50IHJlZywgb2Zmc2V0Ow0KQEAgLTI2MDIsMTAgKzI2MzUsMTIgQEAgbWlwczE2X3NjYW5f cHJvbG9ndWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KIAkgIGlmIChvZmZzZXQgPCAwKQkv KiBOZWdhdGl2ZSBzdGFjayBhZGp1c3RtZW50PyAgKi8NCiAJICAgIGZyYW1lX29mZnNldCAtPSBv ZmZzZXQ7DQogCSAgZWxzZQ0KLQkgICAgLyogRXhpdCBsb29wIGlmIGEgcG9zaXRpdmUgc3RhY2sg YWRqdXN0bWVudCBpcyBmb3VuZCwgd2hpY2gNCi0JICAgICAgIHVzdWFsbHkgbWVhbnMgdGhhdCB0 aGUgc3RhY2sgY2xlYW51cCBjb2RlIGluIHRoZSBmdW5jdGlvbg0KLQkgICAgICAgZXBpbG9ndWUg aXMgcmVhY2hlZC4gICovDQotCSAgICBicmVhazsNCisJICAgIHsNCisJICAgICAgLyogRXhpdCBs b29wIGlmIGEgcG9zaXRpdmUgc3RhY2sgYWRqdXN0bWVudCBpcyBmb3VuZCwgd2hpY2gNCisJCSB1 c3VhbGx5IG1lYW5zIHRoYXQgdGhlIHN0YWNrIGNsZWFudXAgY29kZSBpbiB0aGUgZnVuY3Rpb24N CisJCSBlcGlsb2d1ZSBpcyByZWFjaGVkLiAgKi8NCisJICAgICAgYnJlYWs7DQorCSAgICB9DQog CX0NCiAgICAgICBlbHNlIGlmICgoaW5zdCAmIDB4ZjgwMCkgPT0gMHhkMDAwKQkvKiBzdyByZWcs bigkc3ApICovDQogCXsNCkBAIC0zNTAxLDEwICszNTM2LDEyIEBAIG1pcHMzMl9zY2FuX3Byb2xv Z3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCiAJICBpZiAob2Zmc2V0IDwgMCkJCS8qIE5l Z2F0aXZlIHN0YWNrIGFkanVzdG1lbnQ/ICAqLw0KIAkgICAgZnJhbWVfb2Zmc2V0IC09IG9mZnNl dDsNCiAJICBlbHNlDQotCSAgICAvKiBFeGl0IGxvb3AgaWYgYSBwb3NpdGl2ZSBzdGFjayBhZGp1 c3RtZW50IGlzIGZvdW5kLCB3aGljaA0KLQkgICAgICAgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBz dGFjayBjbGVhbnVwIGNvZGUgaW4gdGhlIGZ1bmN0aW9uDQotCSAgICAgICBlcGlsb2d1ZSBpcyBy ZWFjaGVkLiAgKi8NCi0JICAgIGJyZWFrOw0KKwkgICAgew0KKwkgICAgICAvKiBFeGl0IGxvb3Ag aWYgYSBwb3NpdGl2ZSBzdGFjayBhZGp1c3RtZW50IGlzIGZvdW5kLCB3aGljaA0KKwkJIHVzdWFs bHkgbWVhbnMgdGhhdCB0aGUgc3RhY2sgY2xlYW51cCBjb2RlIGluIHRoZSBmdW5jdGlvbg0KKwkJ IGVwaWxvZ3VlIGlzIHJlYWNoZWQuICAqLw0KKwkgICAgICBicmVhazsNCisJICAgIH0NCiAJICBz ZWVuX3NwX2FkanVzdCA9IDE7DQogCX0NCiAgICAgICBlbHNlIGlmICgoKGhpZ2hfd29yZCAmIDB4 RkZFMCkgPT0gMHhhZmEwKSAvKiBzdyByZWcsb2Zmc2V0KCRzcCkgKi8NCkBAIC0zNTc4LDcgKzM2 MTUsNyBAQCBtaXBzMzJfc2Nhbl9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQog CQl9DQogCSAgICB9DQogCX0NCi0gICAgICBlbHNlIGlmICgoaGlnaF93b3JkICYgMHhGRkUwKSA9 PSAweGFmYzAJLyogc3cgcmVnLG9mZnNldCgkMzApICovDQorICAgICAgZWxzZSBpZiAoKGhpZ2hf d29yZCAmIDB4RkZFMCkgPT0gMHhhZmMwCQkvKiBzdyByZWcsb2Zmc2V0KCQzMCkgKi8NCiAJICAg ICAgICYmICFyZWdzaXplX2lzXzY0X2JpdHMpDQogCXsNCiAJICBzZXRfcmVnX29mZnNldCAoZ2Ri YXJjaCwgdGhpc19jYWNoZSwgcmVnLCBmcmFtZV9hZGRyICsgb2Zmc2V0KTsNCkBAIC0zOTA2LDIy ICszOTQzLDI0IEBAIG1pcHNfYWRkcl9iaXRzX3JlbW92ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIENPUkVfQUREUiBhZGRyKQ0KICAgbWlwc19nZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNo X3RkZXA8bWlwc19nZGJhcmNoX3RkZXA+IChnZGJhcmNoKTsNCiANCiAgIGlmIChtaXBzX21hc2tf YWRkcmVzc19wICh0ZGVwKSAmJiAoKChVTE9OR0VTVCkgYWRkcikgPj4gMzIgPT0gMHhmZmZmZmZm ZlVMKSkNCi0gICAgLyogVGhpcyBoYWNrIGlzIGEgd29yay1hcm91bmQgZm9yIGV4aXN0aW5nIGJv YXJkcyB1c2luZyBQTU9OLCB0aGUNCi0gICAgICAgc2ltdWxhdG9yLCBhbmQgYW55IG90aGVyIDY0 LWJpdCB0YXJnZXRzIHRoYXQgZG9lc24ndCBoYXZlIHRydWUNCi0gICAgICAgNjQtYml0IGFkZHJl c3NpbmcuICBPbiB0aGVzZSB0YXJnZXRzLCB0aGUgdXBwZXIgMzIgYml0cyBvZg0KLSAgICAgICBh ZGRyZXNzZXMgYXJlIGlnbm9yZWQgYnkgdGhlIGhhcmR3YXJlLiAgVGh1cywgdGhlIFBDIG9yIFNQ IGFyZQ0KLSAgICAgICBsaWtlbHkgdG8gaGF2ZSBiZWVuIHNpZ24gZXh0ZW5kZWQgdG8gYWxsIDFz IGJ5IGluc3RydWN0aW9uDQotICAgICAgIHNlcXVlbmNlcyB0aGF0IGxvYWQgMzItYml0IGFkZHJl c3Nlcy4gIEZvciBleGFtcGxlLCBhIHR5cGljYWwNCi0gICAgICAgcGllY2Ugb2YgY29kZSB0aGF0 IGxvYWRzIGFuIGFkZHJlc3MgaXMgdGhpczoNCi0NCi0gICAgICAgbHVpICRyMiwgPHVwcGVyIDE2 IGJpdHM+DQotICAgICAgIG9yaSAkcjIsIDxsb3dlciAxNiBiaXRzPg0KLQ0KLSAgICAgICBCdXQg dGhlIGx1aSBzaWduLWV4dGVuZHMgdGhlIHZhbHVlIHN1Y2ggdGhhdCB0aGUgdXBwZXIgMzIgYml0 cw0KLSAgICAgICBtYXkgYmUgYWxsIDFzLiAgVGhlIHdvcmthcm91bmQgaXMgc2ltcGx5IHRvIG1h c2sgb2ZmIHRoZXNlDQotICAgICAgIGJpdHMuICBJbiB0aGUgZnV0dXJlLCBnY2MgbWF5IGJlIGNo YW5nZWQgdG8gc3VwcG9ydCB0cnVlIDY0LWJpdA0KLSAgICAgICBhZGRyZXNzaW5nLCBhbmQgdGhp cyBtYXNraW5nIHdpbGwgaGF2ZSB0byBiZSBkaXNhYmxlZC4gICovDQotICAgIHJldHVybiBhZGRy ICY9IDB4ZmZmZmZmZmZVTDsNCisgICAgew0KKyAgICAgIC8qIFRoaXMgaGFjayBpcyBhIHdvcmst YXJvdW5kIGZvciBleGlzdGluZyBib2FyZHMgdXNpbmcgUE1PTiwgdGhlDQorCSBzaW11bGF0b3Is IGFuZCBhbnkgb3RoZXIgNjQtYml0IHRhcmdldHMgdGhhdCBkb2Vzbid0IGhhdmUgdHJ1ZQ0KKwkg NjQtYml0IGFkZHJlc3NpbmcuICBPbiB0aGVzZSB0YXJnZXRzLCB0aGUgdXBwZXIgMzIgYml0cyBv Zg0KKwkgYWRkcmVzc2VzIGFyZSBpZ25vcmVkIGJ5IHRoZSBoYXJkd2FyZS4gIFRodXMsIHRoZSBQ QyBvciBTUCBhcmUNCisJIGxpa2VseSB0byBoYXZlIGJlZW4gc2lnbiBleHRlbmRlZCB0byBhbGwg MXMgYnkgaW5zdHJ1Y3Rpb24NCisJIHNlcXVlbmNlcyB0aGF0IGxvYWQgMzItYml0IGFkZHJlc3Nl cy4gIEZvciBleGFtcGxlLCBhIHR5cGljYWwNCisJIHBpZWNlIG9mIGNvZGUgdGhhdCBsb2FkcyBh biBhZGRyZXNzIGlzIHRoaXM6DQorDQorCSBsdWkgJHIyLCA8dXBwZXIgMTYgYml0cz4NCisJIG9y aSAkcjIsIDxsb3dlciAxNiBiaXRzPg0KKw0KKwkgQnV0IHRoZSBsdWkgc2lnbi1leHRlbmRzIHRo ZSB2YWx1ZSBzdWNoIHRoYXQgdGhlIHVwcGVyIDMyIGJpdHMNCisJIG1heSBiZSBhbGwgMXMuICBU aGUgd29ya2Fyb3VuZCBpcyBzaW1wbHkgdG8gbWFzayBvZmYgdGhlc2UNCisJIGJpdHMuICBJbiB0 aGUgZnV0dXJlLCBnY2MgbWF5IGJlIGNoYW5nZWQgdG8gc3VwcG9ydCB0cnVlIDY0LWJpdA0KKwkg YWRkcmVzc2luZywgYW5kIHRoaXMgbWFza2luZyB3aWxsIGhhdmUgdG8gYmUgZGlzYWJsZWQuICAq Lw0KKyAgICAgIHJldHVybiBhZGRyICY9IDB4ZmZmZmZmZmZVTDsNCisgICAgfQ0KICAgZWxzZQ0K ICAgICByZXR1cm4gYWRkcjsNCiB9DQpAQCAtNjcyMiw3ICs2NzYxLDcgQEAgbWlwc19za2lwX3By b2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBjKQ0KICAgICAgdGhh dCBib3VuZCwgdGhlbiB1c2UgYW4gYXJiaXRyYXJ5IGxhcmdlIG51bWJlciBhcyB0aGUgdXBwZXIg Ym91bmQuICAqLw0KICAgbGltaXRfcGMgPSBza2lwX3Byb2xvZ3VlX3VzaW5nX3NhbCAoZ2RiYXJj aCwgcGMpOw0KICAgaWYgKGxpbWl0X3BjID09IDApDQotICAgIGxpbWl0X3BjID0gcGMgKyAxMDA7 CS8qIE1hZ2ljLiAgKi8NCisgICAgbGltaXRfcGMgPSBwYyArIDEwMDsJICAvKiBNYWdpYy4gICov DQogDQogICBpZiAobWlwc19wY19pc19taXBzMTYgKGdkYmFyY2gsIHBjKSkNCiAgICAgcmV0dXJu IG1pcHMxNl9zY2FuX3Byb2xvZ3VlIChnZGJhcmNoLCBwYywgbGltaXRfcGMsIE5VTEwsIE5VTEwp Ow0KQEAgLTcwMjcsNyArNzA2Niw3IEBAIGdkYl9wcmludF9pbnNuX21pcHMgKGJmZF92bWEgbWVt YWRkciwgc3RydWN0IGRpc2Fzc2VtYmxlX2luZm8gKmluZm8pDQogDQogICAvKiBGSVhNRTogY2Fn bmV5LzIwMDMtMDYtMjY6IElzIHRoaXMgZXZlbiBuZWNlc3Nhcnk/ICBUaGUNCiAgICAgIGRpc2Fz c2VtYmxlciBuZWVkcyB0byBiZSBhYmxlIHRvIGxvY2FsbHkgZGV0ZXJtaW5lIHRoZSBJU0EsIGFu ZA0KLSAgICAgbm90IHJlbHkgb24gR0RCLiAgT3RoZXJ3aXNlIHRoZSBzdGFuZC1hbG9uZSAnb2Jq ZHVtcCAtZCcgd2lsbCBub3QNCisgICAgIG5vdCByZWx5IG9uIEdEQi4gIE90aGVyd2l6ZSB0aGUg c3RhbmQtYWxvbmUgJ29iamR1bXAgLWQnIHdpbGwgbm90DQogICAgICB3b3JrLiAgKi8NCiAgIGlm IChtaXBzX3BjX2lzX21pcHMxNiAoZ2RiYXJjaCwgbWVtYWRkcikpDQogICAgIGluZm8tPm1hY2gg PSBiZmRfbWFjaF9taXBzMTY7DQpAQCAtNzQzNSwzNiArNzQ3NCw0MiBAQCBtaXBzX2FkanVzdF9i cmVha3BvaW50X2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYnBh ZGRyKQ0KIAkgICAgYnJlYWs7DQogCSAgYWRkciAtPSBNSVBTX0lOU04xNl9TSVpFOw0KIAkgIGlm IChpID09IDEgJiYgaW5zbl9hdF9wY19oYXNfZGVsYXlfc2xvdCAoZ2RiYXJjaCwgYWRkciwgMCkp DQotCSAgICAvKiBMb29rcyBsaWtlIGEgSlIvSkFMUiBhdCBbdGFyZ2V0LTFdLCBidXQgaXQgY291 bGQgYmUNCi0JICAgICAgIHRoZSBzZWNvbmQgd29yZCBvZiBhIHByZXZpb3VzIEpBTC9KQUxYLCBz byByZWNvcmQgaXQNCi0JICAgICAgIGFuZCBjaGVjayBiYWNrIG9uZSBtb3JlLiAgKi8NCi0JICAg IGptcGFkZHIgPSBhZGRyOw0KKwkgICAgew0KKwkgICAgICAvKiBMb29rcyBsaWtlIGEgSlIvSkFM UiBhdCBbdGFyZ2V0LTFdLCBidXQgaXQgY291bGQgYmUNCisJCSB0aGUgc2Vjb25kIHdvcmQgb2Yg YSBwcmV2aW91cyBKQUwvSkFMWCwgc28gcmVjb3JkIGl0DQorCQkgYW5kIGNoZWNrIGJhY2sgb25l IG1vcmUuICAqLw0KKwkgICAgICBqbXBhZGRyID0gYWRkcjsNCisJICAgIH0NCiAJICBlbHNlIGlm IChpID4gMSAmJiBpbnNuX2F0X3BjX2hhc19kZWxheV9zbG90IChnZGJhcmNoLCBhZGRyLCAxKSkN CiAJICAgIHsNCiAJICAgICAgaWYgKGkgPT0gMikNCi0JCS8qIExvb2tzIGxpa2UgYSBKQUwvSkFM WCBhdCBbdGFyZ2V0LTJdLCBidXQgaXQgY291bGQgYWxzbw0KLQkJICAgYmUgdGhlIHNlY29uZCB3 b3JkIG9mIGEgcHJldmlvdXMgSkFML0pBTFgsIHJlY29yZCBpdCwNCi0JCSAgIGFuZCBjaGVjayBi YWNrIG9uZSBtb3JlLiAgKi8NCi0JCWptcGFkZHIgPSBhZGRyOw0KKwkJew0KKwkJICAvKiBMb29r cyBsaWtlIGEgSkFML0pBTFggYXQgW3RhcmdldC0yXSwgYnV0IGl0IGNvdWxkIGFsc28NCisJCSAg ICAgYmUgdGhlIHNlY29uZCB3b3JkIG9mIGEgcHJldmlvdXMgSkFML0pBTFgsIHJlY29yZCBpdCwN CisJCSAgICAgYW5kIGNoZWNrIGJhY2sgb25lIG1vcmUuICAqLw0KKwkJICBqbXBhZGRyID0gYWRk cjsNCisJCX0NCiAJICAgICAgZWxzZQ0KLQkJLyogTG9va3MgbGlrZSBhIEpBTC9KQUxYIGF0IFt0 YXJnZXQtM10sIHNvIGFueSBwcmV2aW91c2x5DQotCQkgICByZWNvcmRlZCBKQUwvSkFMWCBvciBK Ui9KQUxSIG11c3QgYmUgd3JvbmcsIGJlY2F1c2U6DQotDQotCQkgICA+LTM6IEpBTA0KLQkJICAg IC0yOiBKQUwtZXh0IChjYW4ndCBiZSBKQUwvSkFMWCkNCi0JCSAgICAtMTogYmRzbG90IChjYW4n dCBiZSBKUi9KQUxSKQ0KLQkJICAgICAwOiB0YXJnZXQgaW5zbg0KLQ0KLQkJICAgT2YgY291cnNl IGl0IGNvdWxkIGJlIGFub3RoZXIgSkFMLWV4dCB3aGljaCBsb29rcw0KLQkJICAgbGlrZSBhIEpB TCwgYnV0IGluIHRoYXQgY2FzZSB3ZSdkIGhhdmUgYnJva2VuIG91dA0KLQkJICAgb2YgdGhpcyBs b29wIGF0IFt0YXJnZXQtMl06DQotDQotCQkgICAgLTQ6IEpBTA0KLQkJICAgPi0zOiBKQUwtZXh0 DQotCQkgICAgLTI6IGJkc2xvdCAoY2FuJ3QgYmUgam1wKQ0KLQkJICAgIC0xOiBKUi9KQUxSDQot CQkgICAgIDA6IHRhcmdldCBpbnNuICAqLw0KLQkJam1wYWRkciA9IDA7DQorCQl7DQorCQkgIC8q IExvb2tzIGxpa2UgYSBKQUwvSkFMWCBhdCBbdGFyZ2V0LTNdLCBzbyBhbnkgcHJldmlvdXNseQ0K KwkJICAgICByZWNvcmRlZCBKQUwvSkFMWCBvciBKUi9KQUxSIG11c3QgYmUgd3JvbmcsIGJlY2F1 c2U6DQorDQorCQkgICAgICAgPi0zOiBKQUwNCisJCQktMjogSkFMLWV4dCAoY2FuJ3QgYmUgSkFM L0pBTFgpDQorCQkJLTE6IGJkc2xvdCAoY2FuJ3QgYmUgSlIvSkFMUikNCisJCQkgMDogdGFyZ2V0 IGluc24NCisNCisJCSAgICAgT2YgY291cnNlIGl0IGNvdWxkIGJlIGFub3RoZXIgSkFMLWV4dCB3 aGljaCBsb29rcw0KKwkJICAgICBsaWtlIGEgSkFMLCBidXQgaW4gdGhhdCBjYXNlIHdlJ2QgaGF2 ZSBicm9rZW4gb3V0DQorCQkgICAgIG9mIHRoaXMgbG9vcCBhdCBbdGFyZ2V0LTJdOg0KKw0KKwkJ CS00OiBKQUwNCisJCSAgICAgICA+LTM6IEpBTC1leHQNCisJCQktMjogYmRzbG90IChjYW4ndCBi ZSBqbXApDQorCQkJLTE6IEpSL0pBTFINCisJCQkgMDogdGFyZ2V0IGluc24gICovDQorCQkgIGpt cGFkZHIgPSAwOw0KKwkJfQ0KIAkgICAgfQ0KIAkgIGVsc2UNCiAJICAgIHsNCkBAIC03NzMxLDE1 ICs3Nzc2LDE5IEBAIG1pcHNfc2tpcF9taXBzMTZfdHJhbXBvbGluZV9jb2RlIChjb25zdCBmcmFt ZV9pbmZvX3B0ciAmZnJhbWUsIENPUkVfQUREUiBwYykNCiAJICAgICAgICYmIG1pcHNfaXNfc3R1 Yl9zdWZmaXggKG5hbWUgKyBwcmVmaXhsZW4gKyAzLCAwKSkNCiAJew0KIAkgIGlmIChwYyA9PSBz dGFydF9hZGRyKQ0KLQkgICAgLyogVGhpcyBpcyB0aGUgJ2NhbGwnIHBhcnQgb2YgYSBjYWxsIHN0 dWIuICBUaGUgcmV0dXJuDQotCSAgICAgICBhZGRyZXNzIGlzIGluICQyLiAgKi8NCi0JICAgIHJl dHVybiBnZXRfZnJhbWVfcmVnaXN0ZXJfc2lnbmVkDQorCSAgICB7DQorCSAgICAgIC8qIFRoaXMg aXMgdGhlICdjYWxsJyBwYXJ0IG9mIGEgY2FsbCBzdHViLiAgVGhlIHJldHVybg0KKwkJIGFkZHJl c3MgaXMgaW4gJDIuICAqLw0KKwkgICAgICByZXR1cm4gZ2V0X2ZyYW1lX3JlZ2lzdGVyX3NpZ25l ZA0KIAkJICAgICAoZnJhbWUsIGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgTUlQU19WMF9S RUdOVU0pOw0KKwkgICAgfQ0KIAkgIGVsc2UNCi0JICAgIC8qIFRoaXMgaXMgdGhlICdyZXR1cm4n IHBhcnQgb2YgYSBjYWxsIHN0dWIuICBUaGUgcmV0dXJuDQotCSAgICAgICBhZGRyZXNzIGlzIGlu ICQxOC4gICovDQotCSAgICByZXR1cm4gZ2V0X2ZyYW1lX3JlZ2lzdGVyX3NpZ25lZA0KKwkgICAg ew0KKwkgICAgICAvKiBUaGlzIGlzIHRoZSAncmV0dXJuJyBwYXJ0IG9mIGEgY2FsbCBzdHViLiAg VGhlIHJldHVybg0KKwkJIGFkZHJlc3MgaXMgaW4gJDE4LiAgKi8NCisJICAgICAgcmV0dXJuIGdl dF9mcmFtZV9yZWdpc3Rlcl9zaWduZWQNCiAJCSAgICAgKGZyYW1lLCBnZGJhcmNoX251bV9yZWdz IChnZGJhcmNoKSArIE1JUFNfUzJfUkVHTlVNKTsNCisJICAgIH0NCiAJfQ0KICAgICAgIGVsc2UN CiAJcmV0dXJuIDA7CQkvKiBOb3QgYSBzdHViLiAgKi8NCkBAIC03NzUxLDE1ICs3ODAwLDE5IEBA IG1pcHNfc2tpcF9taXBzMTZfdHJhbXBvbGluZV9jb2RlIChjb25zdCBmcmFtZV9pbmZvX3B0ciAm ZnJhbWUsIENPUkVfQUREUiBwYykNCiAgICAgICB8fCBzdGFydHN3aXRoIChuYW1lLCBtaXBzX3N0 cl9jYWxsX3N0dWIpKQ0KICAgICB7DQogICAgICAgaWYgKHBjID09IHN0YXJ0X2FkZHIpDQotCS8q IFRoaXMgaXMgdGhlICdjYWxsJyBwYXJ0IG9mIGEgY2FsbCBzdHViLiAgQ2FsbCB0aGlzIGhlbHBl cg0KLQkgICB0byBzY2FuIHRocm91Z2ggdGhpcyBjb2RlIGZvciBpbnRlcmVzdGluZyBpbnN0cnVj dGlvbnMNCi0JICAgYW5kIGRldGVybWluZSB0aGUgZmluYWwgUEMuICAqLw0KLQlyZXR1cm4gbWlw c19nZXRfbWlwczE2X2ZuX3N0dWJfcGMgKGZyYW1lLCBwYyk7DQorCXsNCisJICAvKiBUaGlzIGlz IHRoZSAnY2FsbCcgcGFydCBvZiBhIGNhbGwgc3R1Yi4gIENhbGwgdGhpcyBoZWxwZXINCisJICAg ICB0byBzY2FuIHRocm91Z2ggdGhpcyBjb2RlIGZvciBpbnRlcmVzdGluZyBpbnN0cnVjdGlvbnMN CisJICAgICBhbmQgZGV0ZXJtaW5lIHRoZSBmaW5hbCBQQy4gICovDQorCSAgcmV0dXJuIG1pcHNf Z2V0X21pcHMxNl9mbl9zdHViX3BjIChmcmFtZSwgcGMpOw0KKwl9DQogICAgICAgZWxzZQ0KLQkv KiBUaGlzIGlzIHRoZSAncmV0dXJuJyBwYXJ0IG9mIGEgY2FsbCBzdHViLiAgVGhlIHJldHVybiBh ZGRyZXNzDQotCSAgIGlzIGluICQxOC4gICovDQotCXJldHVybiBnZXRfZnJhbWVfcmVnaXN0ZXJf c2lnbmVkDQorCXsNCisJICAvKiBUaGlzIGlzIHRoZSAncmV0dXJuJyBwYXJ0IG9mIGEgY2FsbCBz dHViLiAgVGhlIHJldHVybiBhZGRyZXNzDQorCSAgICAgaXMgaW4gJDE4LiAgKi8NCisJICByZXR1 cm4gZ2V0X2ZyYW1lX3JlZ2lzdGVyX3NpZ25lZA0KIAkJIChmcmFtZSwgZ2RiYXJjaF9udW1fcmVn cyAoZ2RiYXJjaCkgKyBNSVBTX1MyX1JFR05VTSk7DQorCX0NCiAgICAgfQ0KIA0KICAgcmV0dXJu IDA7CQkJLyogTm90IGEgc3R1Yi4gICovDQpAQCAtNzk3NCw3ICs4MDI3LDcgQEAgbWlwc19pbnRl Z2VyX3RvX2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KICAgIGFuIGFzc2VydGlv biBmYWlsdXJlLiAgKi8NCiANCiBzdGF0aWMgdm9pZA0KLW1pcHNfdmlydHVhbF9mcmFtZV9wb2lu dGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwNCittaXBzX3ZpcnR1YWxfZnJhbWVfcG9pbnRl ciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIA0KIAkJCSAgICBDT1JFX0FERFIgcGMsIGludCAq cmVnLCBMT05HRVNUICpvZmZzZXQpDQogew0KICAgKnJlZyA9IE1JUFNfU1BfUkVHTlVNOw0KLS0g DQoyLjM0LjENCg==