From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013031.outbound.protection.outlook.com [40.93.201.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3577A146593 for ; Sat, 8 Nov 2025 03:26:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.31 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762572390; cv=fail; b=P14pH4tbkzsQv8ZuaPDxkuo3aIb9JlTJhDhrfYUgsqQn7ChBZtv1QX2LF9ywd9vkkwBm1BV6wIYhtGJOtBtYMEg4OyANHQV8K0nLwbvCvHWK7Smv/Q6E2EogVVvyNCDMmjP0BvFbUg9JN7gQaA+sVPkx6Fc8vEsf/Zhvnmy5008= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762572390; c=relaxed/simple; bh=/W2/PITX2YdEaQLwMLdmS3EA+LMesMsKF/yFTbIyGtI=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=huL5BQoetw7uvbbtOWZ36IRZfrOhHmX+48spq4ubpJQ0vzDMMt+D12ok4cZgSHHbhwUvXkStMb8InOMsZqRaHc2FwYClssJdg3wf8tktOd36rNVjMPKY/l6QkTrx7qc/fgNwyorwqW1bKkHcIkO18j8e9bMPVfzjwhpt5OhV5oM= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=tPDDbdIS; arc=fail smtp.client-ip=40.93.201.31 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="tPDDbdIS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ppktuF4pJJT85swlZVmymOjfJSQtMWKu0HuLWe9JEM5pEzGwkUFhrAUfSYzQYaGWrEcXVIVyt7sYrxxX7mlnRuqufKowmk/PGtSotywDNIAVpalRdmUoqcdZ/Ac//4/8LZErleCxv/R/uruOvmFgii9EF8VGRVAueAVuJwu7sqs8CRMyIXpHZxgYrNzZgL7UNL+abVuCBmfjaZgd7bUu+IfQP64mZx6llBoxSiQ9+0n6TSScqQX8KTuNcI+/V38TD2mhp4IT5a67GaGqUFOIXrUD4F7ncDf3riTKEFR3XJkNLBSJwiS0kl57owd9LTzO1u0BQu32C/soBekBPmfA1w== 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=/W2/PITX2YdEaQLwMLdmS3EA+LMesMsKF/yFTbIyGtI=; b=urby7vQvLfMthD2VwYlhISN7VzS8Q0qq0FItjztK0b6FLfqu5q2UfSsMgJRmvjsy9pSMtw+F6SD3mV8vpq4RK9No+GAlZ6JedchmyRAMmH5f+7nVdSOBqW069XFwCeXCtynriGYZQ4JHG8W4VVq4GCUZJWbtwKQmSt3NKi3M/+jTrx2ezCikT22rzsV+gOk0hWFK8sp0f/ZFFcfLtvpezY6PtzjCVlw8SNk+cOWDv8+EtZs+RVD0QK2N0L+U5k9Qfo+ZuQfPY2bdfDi0ZmZH4PijdTVPjjmwunuYT7c7atZBK6e8ZlR4mTj+b+sJKrXtnq1GFVbgL4Fb664XoBC+CA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/W2/PITX2YdEaQLwMLdmS3EA+LMesMsKF/yFTbIyGtI=; b=tPDDbdIShGJd7p8YmOwFBvAyCF8Oxe3ALyLyflhiQ2U36mt4qSD81SHycByKphsgA4lAAKysvPbRsBFPSgJL9NtzsLtL6shmNbQJe/g6RBHsY3kt41qq58zlO950KgtyS9nSQ8/SC3WFD5tW610+7ynQdzTKHbTu+zi3C6bceO//vV+2rIJb1kC1bQ11j8jmEP9K725IC6qKwxonMBC0E1weLudsYBuxdhOR2gxqY5ICFMXYBQeZpkxXTveo95pW4xUo06mXQ1oSzXhiOMbIuDV0NIvdsq8BmR1hqePRwguf2p9HeNFuFO4GU7sctxjwpP6R6zAcB3OIHVQ/Y5tGcg== Received: from CYXPR12MB9386.namprd12.prod.outlook.com (2603:10b6:930:de::20) by LV8PR12MB9619.namprd12.prod.outlook.com (2603:10b6:408:2a1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.13; Sat, 8 Nov 2025 03:26:21 +0000 Received: from CYXPR12MB9386.namprd12.prod.outlook.com ([fe80::bd89:c3a2:6aba:1788]) by CYXPR12MB9386.namprd12.prod.outlook.com ([fe80::bd89:c3a2:6aba:1788%5]) with mapi id 15.20.9298.012; Sat, 8 Nov 2025 03:26:21 +0000 From: Chaitanya Kulkarni To: Keith Busch , "linux-block@vger.kernel.org" , "hch@lst.de" , "shinichiro.kawasaki@wdc.com" CC: Keith Busch Subject: Re: [PATCH blktests] io_uring user metadata offset test Thread-Topic: [PATCH blktests] io_uring user metadata offset test Thread-Index: AQHcUDzy/ODWzWGg+0qDQ1lOwDgeJbToHmwA Date: Sat, 8 Nov 2025 03:26:20 +0000 Message-ID: <6de276d4-ef64-48db-b756-284bf66ec420@nvidia.com> References: <20251107231836.1280881-1-kbusch@meta.com> In-Reply-To: <20251107231836.1280881-1-kbusch@meta.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla Thunderbird authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CYXPR12MB9386:EE_|LV8PR12MB9619:EE_ x-ms-office365-filtering-correlation-id: d7d806e9-bbbe-4488-1208-08de1e769655 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|10070799003|366016|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?MW40akVrbm02ajVoZk1jS1JIb1VveUo5b2JXY0cvbWlMTDQ4UzUxWUlmWE1D?= =?utf-8?B?am8rbCs3ajVTTElPWldvN2s1NHAwMllhV2dnaXpjbWR5U1BvU1VqdGtKdWFL?= =?utf-8?B?S2U3dU40VG9qREM1dVlFUmhlZUtia1lVbUpOVTI0dWlUZHJXbEx6eFdsWEwy?= =?utf-8?B?MDFBNVJiTFJRN1lzNkVSMzRVSjdIbGp4eGFmNzlXVjJvak9USEI0Um8wbmVF?= =?utf-8?B?eFFIaFV6KzR0akZIT1krVndFTy9OYnJ2R0RlSTgxb3pNc2lQZE1id2lqemdV?= =?utf-8?B?STBSd1dJM2Nxa0xuOE56dThKc01DaEtnU05xeVczOWQ1UGM1RlZLenBSR3I5?= =?utf-8?B?UlUya0dVeWhDcFUxYTNlMVl3S3lIU0dSOXlCajc3S2xwem5jb0NmSFRHY0xp?= =?utf-8?B?blExK0pYY0ZMREZKanF5MEV6N285ZzJ4Vm5SKzZjZVl0T2EyMmo5UFJ5bitT?= =?utf-8?B?WXN0MEkzTDNYNXdWRjl5MFdzQzdoM2FRbUU1UUhIWWt4eS9KYi8ybUdQYnc2?= =?utf-8?B?ZC9wcTZ3Sno3V043L0p2OUw2UGJFaWFQeTczSjlnT0dYeEx4SzR0dkFYc2wy?= =?utf-8?B?YlgvdDZCYkdEVEd3VG5WajVYbU03YWN0YVd6bkVBSWRNODhZcWVCT0tzS3Q1?= =?utf-8?B?d0pwUlJkZ0tOYnFPZVN0NGZ3UXdub0lwN2JXQTF1QzdEMVBlMW5kWkZlSVND?= =?utf-8?B?aUl3bjVBVExGZm5GS0tIYnp6M05NRXdDKzA1dXBJbFJlaTZzOExLczRLRHZZ?= =?utf-8?B?RThOTkJPczNwT3pyNHpXbkQvSnBMQXgvU0dGRUhJeTVXejQ3ZXYyaUZXMjFz?= =?utf-8?B?NUJoUmtyRkppbTBxejByS2gxL2d2azlKU0NvbHJkQmFNWFVpUHRua3lhVWJ6?= =?utf-8?B?RDJLS1FOQ0RyT2FMZHA5MGdlS1hDdENKWk5kd0cvTWkyRXU5bVFsMC92cEFk?= =?utf-8?B?L2pMczhCa0ZJODdzd3JPR0ZUanE0NytJbUdpZzJwbUNveU9lMDJTd1ZzdW92?= =?utf-8?B?c0cwTnBZSnlIT0N1cDRZeTh4K0dEcmw1MnV6WXRqT0dSQldZL3ByaGhQbkQ2?= =?utf-8?B?VFFMOWdlMWk1U2IvZkdPcjZkUlpocUYvRVhqczFpVXlRM09JaFdUMHpNV05X?= =?utf-8?B?dXhGYkFKMDFKbHVKS3k0cys4d2ZWaUt0NVQ3U2R1K080bit1TDVZdmk3Vlo3?= =?utf-8?B?eUE4UTR6SGJkRHVjbFFObjN5cTFpek9TeEdjWDFDcWQ2MWsvd1NGVVpZYm5H?= =?utf-8?B?QTJsSTAvNlRUdWJOS0h4RWE0dVk5MTRuazlwWWpHaWJ6NHIxK1hacTNFbkNx?= =?utf-8?B?Z0dQSDAyMzZCcllESllZbjVTQU9QMW5ML2lzL3NzM2ZMTVl1K01QeFJzcko4?= =?utf-8?B?SGpRbkxQaFhzbStETnEyS1M0MHNCTXN0M25icUFRcHJZZDRQYkxsT05FQjF3?= =?utf-8?B?dnpMV2gzUzk5YmdMeEYrTmVpRjMxRmJsQ1lYYXZFUHk5MGR6bWhnZGVvNS9O?= =?utf-8?B?NkMxQ2k2ZndUeC9oNXBKTUFBcDJrV24vc0V5dndWS0VSbjFZTHg5czNaaklv?= =?utf-8?B?QWtPOVdOUnNzZDhBUlpwaXlmUnpJSkFYdmJhUjdhd01HNXlWOHFYTlplcmFL?= =?utf-8?B?Z2l0eEl4eDJKaUIxZGNFR3BJTi96OTNEM1hJWkpDUG1zelpOejBTVjl6Q1l3?= =?utf-8?B?SGt4UnQ1T1pNSEx5RDFQOEV6Q3ZtRWxSQUs4Mmx4ODdaNjJnREpYMTdDeVVh?= =?utf-8?B?RzREOGo4SFFJaHUyb2pVWVBDZDJHZkxlRjlWc1gxUlV0MHV4bittQmhSMU1J?= =?utf-8?B?OWQ4Mnl6UTRmbXZNTnByWm5jTyszNCt3MXhkbDJ5YVNXWllVZmlPM1JLd1I5?= =?utf-8?B?MGdGTUplTHZycFhLZUdJcWFDRjBkcmZ0Tk9sdEdwZDJ0NHArVkhxRGhIdnBH?= =?utf-8?B?aW9leDFGNVVSYnl1dDU1c0JuTXplSTZOZXRwOUl6V2cyZzdHYjh0aVdHTTVS?= =?utf-8?B?ZUl1TzZtY1lYNmZXSGZXZkJ1Ti9qWVJhZjl5UUM3TVUzYlZVOFJVTjhxa2Fy?= =?utf-8?Q?GOafB/?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CYXPR12MB9386.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(10070799003)(366016)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MjNQVW05WXB3RjdBRTZqR281WUhjVGZmMXp0dEp2KzVzRkpXUDdJNXp5Mmdy?= =?utf-8?B?S04vcEE1b09DOHJXdEc5dkRBcE1nNGNicEkxblZrOVdKelVqaStNdDRUeGZX?= =?utf-8?B?bmcxK1Nyc0o2WEZRVmdBTzdLbUhST2Y5TkdhSGpDZjd6Q3ZIZFNMUXcybFdI?= =?utf-8?B?K3RNVUgxT1RSckRCUnFoNmdCN1Q2WHg2T3hBNkx0bWRNMSsvRjZ6bVdrVXBj?= =?utf-8?B?QnUyUDZKZ0ltWFRvaUc5ZGhtd3RqRWcrRFVZclZtZjJ4d3ZnM043bU15bXA0?= =?utf-8?B?bnRmUGl3SXdiUWVQQklaVjFVZUN3TUsxdkdBVVJSQnFKaERENDVWaW04QkpR?= =?utf-8?B?Qnpia2MyOFlDRVNNZVhJM1QzdlVRSHhjN0ZMSzZHK0hRSDJBc2gzNWwyZkpv?= =?utf-8?B?d2tKMTVmUjBZekI3RG9XV0lvckdwV29jZy9xOERZTG82eEw3MkJQdEJ5alBz?= =?utf-8?B?WXJsS3lBbmFNQ2l3QUpOU0RTSFdTdlZ2VlZiM0RESDg5UlpPOGtxQk44LzRo?= =?utf-8?B?NCt6K0g2ZFVwaDh2QWdVZm1yc0pmUFdPYjdiNzZ5bDdoYVF1aFRxYWx0TVhq?= =?utf-8?B?M3NlUExzUEZFQUFsL3JDc0dNaEpMUVVra1VUWmVBVnlqbTgxeFVrY1VzNEc2?= =?utf-8?B?T0FHd25iUVNPMnZqQnQzNVMwS1A1a1lvTkdXN1hNUC9Zb2plUVhkblB5Vnl0?= =?utf-8?B?WUF6S0FhVVhEbmY4NGY3Wmt6K0pnbTlQZTlMTUM2b2ZBL1FaM1o0V0hwajNJ?= =?utf-8?B?ZjZETkpBWHNiNkR5cmNKREpqUW9VMGpxNHNHOWpPRXl3VUp0SmsyVUlMODNm?= =?utf-8?B?MEtIdGgrUkpLcTA4WUZTblpsM21UR1kyaEhEUmlqbGFMU2ZObWJkcU9iM2Zh?= =?utf-8?B?Nm5oWGhMa1YrUFBBUXVuM0JtR29CdWFvd0xaN00wM3Rib0lDUFJqcHg0SWlN?= =?utf-8?B?cCtVcnJiL21yZ2VWT3RjWVhQak90ZjlhOEExdHZkU1RBanB5WDM5UnFjUWE3?= =?utf-8?B?S3V3U25kVldoVHZRQytYMWlaUnQyZGdUUEtLejZ1YmVadXU4ODljVUg0Zi8r?= =?utf-8?B?YS9mTDQ5NnVIV0lKajY1d3pPRFFKeDM1ZUxocHdsM1lKZU9ybkhZalN3VVlv?= =?utf-8?B?aXpBdVFWNmNQZ2FBTEM0cDBXbTFneXpFZ0lxeDdHdHBiRm9RT0NWWUFPUmc4?= =?utf-8?B?V0d5TURVcUFIdGtwQkR3S1hSKzdXejVDakdJUWRGbzdlM2N6VktnWTVXK2JG?= =?utf-8?B?WkcwR1VLa3Z2Nm4vL2lnZURlRWsranc2TTAyeTFCK2doU1RVWng2OEw3KytI?= =?utf-8?B?ak9malQrZTh1RGtrTDFMNGxCZ1NyaFhDcGxZK2prd2Fxc3RjR1U3d012dlVx?= =?utf-8?B?OHllblFZam5NSWs1UXJTLzR2dFRsajJ5TndnR0E1Z2hlRVZBV2hxcFRRa0lT?= =?utf-8?B?a2JCdEhpK1pEYmhlYksvbmV3ejhXcTZmdHd5UlBmYUZyb3VqcmxXeGhoZ0VJ?= =?utf-8?B?bjZCSnVsT1RkNXd6aW1CTndTWFJlQlFzUndxamlOdXZGck1EV3ZwVEZkVkxJ?= =?utf-8?B?SFErVEdNQTlhbXVvdWN1M2xjMk9FV042Rkx0L0d5dmZKd0VUQlFWT2JEUDRi?= =?utf-8?B?RkEvekY3eVZYQzJESnpxaXVpR3gwa1lZTnNDOTdFWmZ4RDdaQVg4Zkgxb1F4?= =?utf-8?B?YURIQzUxc3E4UnZYeUUvZmNnU2xzNEFJWHBBR1NFSVJpVUNmaS9RcDdocm9R?= =?utf-8?B?bDJDMlk4dDFLa1hvNml6MkNXV2dsZlFoN2ZERncxbFZPenFoY2xURnJVOUlV?= =?utf-8?B?dnd0dWQ5enF3c25aS3ZnaStGT0tHd2Q0bGVXSDNUTGtUTTRMMXUvWXRocjFY?= =?utf-8?B?a2pkaUdzN25RY1ZaK3ZvOS9JVXhCNlNNc3Exck8vMWk2TERBbWlLMWdTRGhQ?= =?utf-8?B?azJFcTJ4bTZ4Smg0alhyS2lEM2duK1R1bk96NkNZSHFtSGZIbEJzSmxCZnVI?= =?utf-8?B?RjJ2Qkg4YnZHbmIwK085NWxUMDVycXJNbHhzTS9ZTk5XWlp3a0N1U200bzhU?= =?utf-8?B?MFV3RVVHaEpnaFNucHJJYW1YTHExNTFSZUo2NEk5MjZUdHUxZUhyWXZHSjdm?= =?utf-8?B?MFByblFkVkRNNkxhWndQb3dCbXJEdjA1VzFxWENBczVzbVd1RGtKTTZpeldT?= =?utf-8?Q?+FNrXstP4JuoZdu3z+Em18wObBsp29kWtSO/ZWtoQiVt?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-block@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CYXPR12MB9386.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7d806e9-bbbe-4488-1208-08de1e769655 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2025 03:26:20.9947 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZQXyp+Ez+y0P+tbkl7pRQOUUmP5N2c7g/2JXCpISdHoAYgNJ5t+YTJrpVa7DracFwLIcYWHyVhIYhNKXGo/HVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9619 T24gMTEvNy8yNSAxNToxOCwgS2VpdGggQnVzY2ggd3JvdGU6DQo+IEZyb206IEtlaXRoIEJ1c2No IDxrYnVzY2hAa2VybmVsLm9yZz4NCj4NCj4gRm9yIGRldmljZXMgd2l0aCBtZXRhZGF0YSwgdGVz dHMgdmFyaW91cyB1c2Vyc3BhY2Ugb2Zmc2V0cyB3aXRoDQo+IGlvX3VyaW5nIGNhcGFiaWxpdGll cy4gSWYgdGhlIG1ldGFkYXRhIGlzIGZvcm1hdHRlZCB3aXRoIHJlZiB0YWcNCj4gcHJvdGVjdGlv biBpbmZvcm1hdGlvbiwgdGVzdCB2YXJpb3VzIHNlZWQgb2Zmc2V0cyBhcyB3ZWxsLg0KPg0KPiBT aWduZWQtb2ZmLWJ5OiBLZWl0aCBCdXNjaCA8a2J1c2NoQGtlcm5lbC5vcmc+DQo+IC0tLQ0KPiAg IHNyYy8uZ2l0aWdub3JlICAgICAgfCAgIDEgKw0KPiAgIHNyYy9NYWtlZmlsZSAgICAgICAgfCAg IDcgKy0NCj4gICBzcmMvbWV0YWRhdGEuYyAgICAgIHwgNDgxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+ICAgdGVzdHMvYmxvY2svMDQzICAgICB8ICAyNyAr KysNCj4gICB0ZXN0cy9ibG9jay8wNDMub3V0IHwgICAyICsNCj4gICA1IGZpbGVzIGNoYW5nZWQs IDUxNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvbWV0YWRhdGEuYw0KPiAgIGNyZWF0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9ibG9jay8wNDMN Cj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvYmxvY2svMDQzLm91dA0KPg0KPiBkaWZmIC0t Z2l0IGEvc3JjLy5naXRpZ25vcmUgYi9zcmMvLmdpdGlnbm9yZQ0KPiBpbmRleCA4NjU2NzVjLi5l NmM2YzM4IDEwMDY0NA0KPiAtLS0gYS9zcmMvLmdpdGlnbm9yZQ0KPiArKysgYi9zcmMvLmdpdGln bm9yZQ0KPiBAQCAtMyw2ICszLDcgQEANCj4gICAvbG9ibGtzaXplDQo+ICAgL2xvb3BfY2hhbmdl X2ZkDQo+ICAgL2xvb3BfZ2V0X3N0YXR1c19udWxsDQo+ICsvbWV0YWRhdGENCj4gICAvbW91bnRf Y2xlYXJfc29jaw0KPiAgIC9uYmRzZXRzaXplDQo+ICAgL29wZW5jbG9zZQ0KPiBkaWZmIC0tZ2l0 IGEvc3JjL01ha2VmaWxlIGIvc3JjL01ha2VmaWxlDQo+IGluZGV4IDE3OWE2NzMuLjcxNDZkYjAg MTAwNjQ0DQo+IC0tLSBhL3NyYy9NYWtlZmlsZQ0KPiArKysgYi9zcmMvTWFrZWZpbGUNCj4gQEAg LTIyLDcgKzIyLDggQEAgQ19UQVJHRVRTIDo9IFwNCj4gICAJc2cvc3l6a2FsbGVyMSBcDQo+ICAg CXpiZGlvY3RsDQo+ICAgDQo+IC1DX01JTklVQkxLIDo9IG1pbml1YmxrDQo+ICtDX01JTklVQkxL IDo9IG1pbml1YmxrIFwNCj4gKwkJbWV0YWRhdGENCj4gICANCj4gICBIQVZFX0xJQlVSSU5HIDo9 ICQoY2FsbCBIQVZFX0NfTUFDUk8sbGlidXJpbmcuaCxJT1JJTkdfT1BfVVJJTkdfQ01EKQ0KPiAg IEhBVkVfVUJMS19IRUFERVIgOj0gJChjYWxsIEhBVkVfQ19IRUFERVIsbGludXgvdWJsa19jbWQu aCwxKQ0KPiBAQCAtNjEsOCArNjIsOCBAQCAkKENfVEFSR0VUUyk6ICU6ICUuYw0KPiAgICQoQ1hY X1RBUkdFVFMpOiAlOiAlLmNwcA0KPiAgIAkkKENYWCkgJChDUFBGTEFHUykgJChDWFhGTEFHUykg JChMREZMQUdTKSAtbyAkQCAkXg0KPiAgIA0KPiAtJChDX01JTklVQkxLKTogJTogbWluaXVibGsu Yw0KPiAtCSQoQ0MpICQoQ0ZMQUdTKSAkKExERkxBR1MpICQoTUlOSVVCTEtfRkxBR1MpIC1vICRA IG1pbml1YmxrLmMgXA0KPiArJChDX01JTklVQkxLKTogJTogJS5jDQo+ICsJJChDQykgJChDRkxB R1MpICQoTERGTEFHUykgJChNSU5JVUJMS19GTEFHUykgLW8gJEAgJF4gXA0KPiAgIAkJJChNSU5J VUJMS19MSUJTKQ0KPiAgIA0KPiAgIC5QSE9OWTogYWxsIGNsZWFuIGluc3RhbGwNCj4gZGlmZiAt LWdpdCBhL3NyYy9tZXRhZGF0YS5jIGIvc3JjL21ldGFkYXRhLmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMC4uNDYyODI5OQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L3NyYy9tZXRhZGF0YS5jDQo+IEBAIC0wLDAgKzEsNDgxIEBADQo+ICsvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMA0KPiArLyoNCj4gKyAqIERlc2NyaXB0aW9uOiB0ZXN0IHVzZXJz cGFjZSBtZXRhZGF0YQ0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX0dOVV9TT1VSQ0UNCj4gKyNk ZWZpbmUgX0dOVV9TT1VSQ0UNCj4gKyNlbmRpZg0KPiArI2luY2x1ZGUgPHN0ZGlvLmg+DQo+ICsj aW5jbHVkZSA8c3RkbGliLmg+DQo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+DQo+ICsjaW5jbHVkZSA8 ZmNudGwuaD4NCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4NCj4gKyNpbmNsdWRlIDxlcnJuby5oPg0K PiArI2luY2x1ZGUgPHN5cy9pb2N0bC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2ZzLmg+DQo+ICsj aW5jbHVkZSA8bGlidXJpbmcuaD4NCj4gKw0KPiArI2lmbmRlZiBJT1JJTkdfUldfQVRUUl9GTEFH X1BJDQo+ICsjZGVmaW5lIFBJX1VSSU5HX0NPTVBBVA0KPiArI2RlZmluZSBJT1JJTkdfUldfQVRU Ul9GTEFHX1BJICAoMVUgPDwgMCkNCj4gKy8qIFBJIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiAqLw0K PiArc3RydWN0IGlvX3VyaW5nX2F0dHJfcGkgew0KPiArCV9fdTE2ICAgZmxhZ3M7DQo+ICsJX191 MTYgICBhcHBfdGFnOw0KPiArCV9fdTMyICAgbGVuOw0KPiArCV9fdTY0ICAgYWRkcjsNCj4gKwlf X3U2NCAgIHNlZWQ7DQo+ICsJX191NjQgICByc3ZkOw0KPiArfTsNCj4gKyNlbmRpZg0KPiArDQo+ ICsjaWZuZGVmIEZTX0lPQ19HRVRMQk1EX0NBUA0KPiArLyogUHJvdGVjdGlvbiBpbmZvIGNhcGFi aWxpdHkgZmxhZ3MgKi8NCj4gKyNkZWZpbmUgTEJNRF9QSV9DQVBfSU5URUdSSVRZICAgICAgICAg ICAoMSA8PCAwKQ0KPiArI2RlZmluZSBMQk1EX1BJX0NBUF9SRUZUQUcgICAgICAgICAgICAgICgx IDw8IDEpDQo+ICsNCj4gKy8qIENoZWNrc3VtIHR5cGVzIGZvciBQcm90ZWN0aW9uIEluZm9ybWF0 aW9uICovDQo+ICsjZGVmaW5lIExCTURfUElfQ1NVTV9OT05FICAgICAgICAgICAgICAgMA0KPiAr I2RlZmluZSBMQk1EX1BJX0NTVU1fSVAgICAgICAgICAgICAgICAgIDENCj4gKyNkZWZpbmUgTEJN RF9QSV9DU1VNX0NSQzE2X1QxMERJRiAgICAgICAyDQo+ICsjZGVmaW5lIExCTURfUElfQ1NVTV9D UkM2NF9OVk1FICAgICAgICAgNA0KPiArDQo+ICsvKg0KPiArICogTG9naWNhbCBibG9jayBtZXRh ZGF0YSBjYXBhYmlsaXR5IGRlc2NyaXB0b3INCj4gKyAqIElmIHRoZSBkZXZpY2UgZG9lcyBub3Qg c3VwcG9ydCBtZXRhZGF0YSwgYWxsIHRoZSBmaWVsZHMgd2lsbCBiZSB6ZXJvLg0KPiArICogQXBw bGljYXRpb25zIG11c3QgY2hlY2sgbGJtZF9mbGFncyB0byBkZXRlcm1pbmUgd2hldGhlciBtZXRh ZGF0YSBpcw0KPiArICogc3VwcG9ydGVkIG9yIG5vdC4NCj4gKyAqLw0KPiArc3RydWN0IGxvZ2lj YWxfYmxvY2tfbWV0YWRhdGFfY2FwIHsNCj4gKwkvKiBCaXRtYXNrIG9mIGxvZ2ljYWwgYmxvY2sg bWV0YWRhdGEgY2FwYWJpbGl0eSBmbGFncyAqLw0KPiArCV9fdTMyCWxibWRfZmxhZ3M7DQo+ICsJ LyoNCj4gKwkgKiBUaGUgYW1vdW50IG9mIGRhdGEgZGVzY3JpYmVkIGJ5IGVhY2ggdW5pdCBvZiBs b2dpY2FsIGJsb2NrDQo+ICsJICogbWV0YWRhdGENCj4gKwkgKi8NCj4gKwlfX3UxNglsYm1kX2lu dGVydmFsOw0KPiArCS8qDQo+ICsJICogU2l6ZSBpbiBieXRlcyBvZiB0aGUgbG9naWNhbCBibG9j ayBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggZWFjaA0KPiArCSAqIGludGVydmFsDQo+ICsJICov DQo+ICsJX191OAlsYm1kX3NpemU7DQo+ICsJLyoNCj4gKwkgKiBTaXplIGluIGJ5dGVzIG9mIHRo ZSBvcGFxdWUgYmxvY2sgdGFnIGFzc29jaWF0ZWQgd2l0aCBlYWNoDQo+ICsJICogaW50ZXJ2YWwN Cj4gKwkgKi8NCj4gKwlfX3U4CWxibWRfb3BhcXVlX3NpemU7DQo+ICsJLyoNCj4gKwkgKiBPZmZz ZXQgaW4gYnl0ZXMgb2YgdGhlIG9wYXF1ZSBibG9jayB0YWcgd2l0aGluIHRoZSBsb2dpY2FsIGJs b2NrDQo+ICsJICogbWV0YWRhdGENCj4gKwkgKi8NCj4gKwlfX3U4CWxibWRfb3BhcXVlX29mZnNl dDsNCj4gKwkvKiBTaXplIGluIGJ5dGVzIG9mIHRoZSBUMTAgUEkgdHVwbGUgYXNzb2NpYXRlZCB3 aXRoIGVhY2ggaW50ZXJ2YWwgKi8NCj4gKwlfX3U4CWxibWRfcGlfc2l6ZTsNCj4gKwkvKiBPZmZz ZXQgaW4gYnl0ZXMgb2YgVDEwIFBJIHR1cGxlIHdpdGhpbiB0aGUgbG9naWNhbCBibG9jayBtZXRh ZGF0YSAqLw0KPiArCV9fdTgJbGJtZF9waV9vZmZzZXQ7DQo+ICsJLyogVDEwIFBJIGd1YXJkIHRh ZyB0eXBlICovDQo+ICsJX191OAlsYm1kX2d1YXJkX3RhZ190eXBlOw0KPiArCS8qIFNpemUgaW4g Ynl0ZXMgb2YgdGhlIFQxMCBQSSBhcHBsaWNhdGlvbiB0YWcgKi8NCj4gKwlfX3U4CWxibWRfYXBw X3RhZ19zaXplOw0KPiArCS8qIFNpemUgaW4gYnl0ZXMgb2YgdGhlIFQxMCBQSSByZWZlcmVuY2Ug dGFnICovDQo+ICsJX191OAlsYm1kX3JlZl90YWdfc2l6ZTsNCj4gKwkvKiBTaXplIGluIGJ5dGVz IG9mIHRoZSBUMTAgUEkgc3RvcmFnZSB0YWcgKi8NCj4gKwlfX3U4CWxibWRfc3RvcmFnZV90YWdf c2l6ZTsNCj4gKwlfX3U4CXBhZDsNCj4gK307DQo+ICsNCj4gKyNkZWZpbmUgRlNfSU9DX0dFVExC TURfQ0FQICAgICAgICAgICAgICAgICAgICAgIF9JT1dSKDB4MTUsIDIsIHN0cnVjdCBsb2dpY2Fs X2Jsb2NrX21ldGFkYXRhX2NhcCkNCj4gKyNlbmRpZiAvKiBGU19JT0NfR0VUTEJNRF9DQVAgKi8N Cj4gKw0KPiArI2lmbmRlZiBJT19JTlRFR1JJVFlfQ0hLX0dVQVJEDQo+ICsvKiBmbGFncyBmb3Ig aW50ZWdyaXR5IG1ldGEgKi8NCj4gKyNkZWZpbmUgSU9fSU5URUdSSVRZX0NIS19HVUFSRCAgICAg ICAgICAoMVUgPDwgMCkgLyogZW5mb3JjZSBndWFyZCBjaGVjayAqLw0KPiArI2RlZmluZSBJT19J TlRFR1JJVFlfQ0hLX1JFRlRBRyAgICAgICAgICgxVSA8PCAxKSAvKiBlbmZvcmNlIHJlZiBjaGVj ayAqLw0KPiArI2RlZmluZSBJT19JTlRFR1JJVFlfQ0hLX0FQUFRBRyAgICAgICAgICgxVSA8PCAy KSAvKiBlbmZvcmNlIGFwcCBjaGVjayAqLw0KPiArI2VuZGlmIC8qIElPX0lOVEVHUklUWV9DSEtf R1VBUkQgKi8NCj4gKw0KPiArLyogVGhpcyBzaXplIHNob3VsZCBndWFyYW50ZWUgYXQgbGVhc3Qg b25lIHNwbGl0ICovDQo+ICsjZGVmaW5lIERBVEFfU0laRSAoOCAqIDEwMjQgKiAxMDI0KQ0KPiAr DQo+ICtzdGF0aWMgdW5zaWduZWQgc2hvcnQgbGJhX3NpemU7DQo+ICtzdGF0aWMgdW5zaWduZWQg Y2hhciBtZXRhZGF0YV9zaXplOw0KPiArc3RhdGljIHVuc2lnbmVkIGNoYXIgcGlfc2l6ZTsNCj4g K3N0YXRpYyB1bnNpZ25lZCBjaGFyIHBpX29mZnNldDsNCg0Kbml0Oi0gZG8geW91IHJlYWxseSBu ZWVkIGFib3ZlIGdsb2JhbCBkdXBsaWNhdGlvbiA/DQp5b3UgY2FuIGp1c3QgZGVjbGFyZSBzdHJ1 Y3QgbG9naWNhbF9ibG9ja19tZXRhZGF0YV9jYXAgbWRfY2FwDQpnbG9iYWxseSB1c2UgbWRfY2Fw Lnh4eCA/DQoNCj4gK3N0YXRpYyBib29sIHJlZnRhZ19lbmFibGVkOw0KPiArDQo+ICtzdGF0aWMg bG9uZyBwYWdlc2l6ZTsNCj4gKw0KPiArc3RydWN0IHQxMF9waV90dXBsZSB7DQo+ICsgICAgICAg IF9fYmUxNiBndWFyZF90YWc7ICAgICAgIC8qIENoZWNrc3VtICovDQo+ICsgICAgICAgIF9fYmUx NiBhcHBfdGFnOyAgICAgICAgIC8qIE9wYXF1ZSBzdG9yYWdlICovDQo+ICsgICAgICAgIF9fYmUz MiByZWZfdGFnOyAgICAgICAgIC8qIFRhcmdldCBMQkEgb3IgaW5kaXJlY3QgTEJBICovDQo+ICt9 Ow0KPiArDQo+ICtzdHJ1Y3QgY3JjNjRfcGlfdHVwbGUgew0KPiArICAgICAgICBfX2JlNjQgZ3Vh cmRfdGFnOw0KPiArICAgICAgICBfX2JlMTYgYXBwX3RhZzsNCj4gKyAgICAgICAgX191OCAgIHJl Zl90YWdbNl07DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IGluaXRfY2FwYWJpbGl0aWVzKGlu dCBmZCkNCj4gK3sNCj4gKwlzdHJ1Y3QgbG9naWNhbF9ibG9ja19tZXRhZGF0YV9jYXAgbWRfY2Fw Ow0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlyZXQgPSBpb2N0bChmZCwgRlNfSU9DX0dFVExCTURf Q0FQLCAmbWRfY2FwKTsNCj4gKwlpZiAocmV0IDwgMCkNCj4gKwkJcmV0dXJuIHJldDsNCg0KZnBy aW50ZihzdGRlcnIsICJGU19JT0NfR0VUTEJNRF9DQVAgZmFpbGVkOiAlc1xuIiwgc3RyZXJyb3Io ZXJybm8pKTsgPw0KDQo+ICsNCj4gKwlsYmFfc2l6ZSA9IG1kX2NhcC5sYm1kX2ludGVydmFsOw0K PiArCW1ldGFkYXRhX3NpemUgPSBtZF9jYXAubGJtZF9zaXplOw0KPiArCXBpX3NpemUgPSBtZF9j YXAubGJtZF9waV9zaXplOw0KPiArCXBpX29mZnNldCA9IG1kX2NhcC5sYm1kX3BpX29mZnNldDsN Cj4gKwlyZWZ0YWdfZW5hYmxlZCA9IG1kX2NhcC5sYm1kX2ZsYWdzICYgTEJNRF9QSV9DQVBfUkVG VEFHOw0KPiArDQo+ICsJcGFnZXNpemUgPSBzeXNjb25mKF9TQ19QQUdFX1NJWkUpOw0KPiArCXJl dHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdW5zaWduZWQgaW50IHN3YXAodW5zaWduZWQg aW50IHZhbHVlKQ0KPiArew0KPiArCXJldHVybiAoKHZhbHVlID4+IDI0KSAmIDB4MDAwMDAwZmYp IHwNCj4gKwkJKCh2YWx1ZSA+PiA4KSAgJiAweDAwMDBmZjAwKSB8DQo+ICsJCSgodmFsdWUgPDwg OCkgICYgMHgwMGZmMDAwMCkgfA0KPiArCQkoKHZhbHVlIDw8IDI0KSAmIDB4ZmYwMDAwMDApOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgX19wdXRfdW5hbGlnbmVkX2JlNDgoY29u c3QgX191NjQgdmFsLCBfX3U4ICpwKQ0KPiArew0KPiArCSpwKysgPSAodmFsID4+IDQwKSAmIDB4 ZmY7DQo+ICsJKnArKyA9ICh2YWwgPj4gMzIpICYgMHhmZjsNCj4gKwkqcCsrID0gKHZhbCA+PiAy NCkgJiAweGZmOw0KPiArCSpwKysgPSAodmFsID4+IDE2KSAmIDB4ZmY7DQo+ICsJKnArKyA9ICh2 YWwgPj4gOCkgJiAweGZmOw0KPiArCSpwKysgPSB2YWwgJiAweGZmOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgaW5saW5lIHZvaWQgcHV0X3VuYWxpZ25lZF9iZTQ4KGNvbnN0IF9fdTY0IHZhbCwgdm9p ZCAqcCkNCj4gK3sNCj4gKwlfX3B1dF91bmFsaWduZWRfYmU0OCh2YWwsIHApOw0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgaW5saW5lIF9fdTY0IF9fZ2V0X3VuYWxpZ25lZF9iZTQ4KGNvbnN0IF9fdTgg KnApDQo+ICt7DQo+ICsJcmV0dXJuIChfX3U2NClwWzBdIDw8IDQwIHwgKF9fdTY0KXBbMV0gPDwg MzIgfCAoX191NjQpcFsyXSA8PCAyNCB8DQo+ICsJCXBbM10gPDwgMTYgfCBwWzRdIDw8IDggfCBw WzVdOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW5saW5lIF9fdTY0IGdldF91bmFsaWduZWRfYmU0 OChjb25zdCB2b2lkICpwKQ0KPiArew0KPiArCXJldHVybiBfX2dldF91bmFsaWduZWRfYmU0OChw KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgaW5pdF9tZXRhZGF0YSh2b2lkICpwLCBpbnQg aW50ZXJ2YWxzLCBpbnQgcmVmKQ0KPiArew0KPiArCWludCBpLCBqOw0KPiArDQo+ICsJZm9yIChp ID0gMDsgaSA8IGludGVydmFsczsgaSsrLCByZWYrKykgew0KPiArCQlpbnQgcmVtYWluaW5nID0g bWV0YWRhdGFfc2l6ZSAtIHBpX29mZnNldDsNCj4gKwkJdW5zaWduZWQgY2hhciAqbSA9IHA7DQo+ ICsNCj4gKwkJZm9yIChqID0gMDsgaiA8IHBpX29mZnNldDsgaisrKQ0KPiArCQkJbVtqXSA9ICh1 bnNpZ25lZCBjaGFyKShyZWYgKyBqICsgaSk7DQo+ICsNCj4gKwkJcCArPSBwaV9vZmZzZXQ7DQo+ ICsJCWlmIChyZWZ0YWdfZW5hYmxlZCkgew0KPiArCQkJaWYgKHBpX3NpemUgPT0gOCkgew0KPiAr CQkJCXN0cnVjdCB0MTBfcGlfdHVwbGUgKnR1cGxlID0gcDsNCj4gKw0KPiArCQkJCXR1cGxlLT5y ZWZfdGFnID0gc3dhcChyZWYpOw0KPiArCQkJCXJlbWFpbmluZyAtPSBzaXplb2YoKnR1cGxlKTsN Cj4gKwkJCQlwICs9IHNpemVvZigqdHVwbGUpOw0KPiArCQkJfSBlbHNlIGlmIChwaV9zaXplID09 IDE2KSB7DQo+ICsJCQkJc3RydWN0IGNyYzY0X3BpX3R1cGxlICp0dXBsZSA9IHA7DQo+ICsNCj4g KwkJCQlfX3B1dF91bmFsaWduZWRfYmU0OChyZWYsIHR1cGxlLT5yZWZfdGFnKTsNCj4gKwkJCQly ZW1haW5pbmcgLT0gc2l6ZW9mKCp0dXBsZSk7DQo+ICsJCQkJcCArPSBzaXplb2YoKnR1cGxlKTsN Cj4gKwkJCX0NCj4gKwkJfQ0KPiArDQo+ICsJCW0gPSBwOw0KPiArCQlmb3IgKGogPSAwOyBqIDwg cmVtYWluaW5nOyBqKyspDQo+ICsJCQltW2pdID0gKHVuc2lnbmVkIGNoYXIpfihyZWYgKyBqICsg aSk7DQo+ICsNCj4gKwkJcCArPSByZW1haW5pbmc7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgaW50IGNoZWNrX21ldGFkYXRhKHZvaWQgKnAsIGludCBpbnRlcnZhbHMsIGludCByZWYpDQo+ ICt7DQo+ICsJaW50IGksIGo7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgaW50ZXJ2YWxzOyBp KyssIHJlZisrKSB7DQo+ICsJCWludCByZW1haW5pbmcgPSBtZXRhZGF0YV9zaXplIC0gcGlfb2Zm c2V0Ow0KPiArCQl1bnNpZ25lZCBjaGFyICptID0gcDsNCj4gKw0KPiArCQlmb3IgKGogPSAwOyBq IDwgcGlfb2Zmc2V0OyBqKyspIHsNCj4gKwkJCWlmIChtW2pdICE9ICh1bnNpZ25lZCBjaGFyKShy ZWYgKyBqICsgaSkpIHsNCj4gKwkJCQlmcHJpbnRmKHN0ZGVyciwgIihwcmUpaW50ZXJ2YWw6JWQg Ynl0ZTolZCBleHBlY3RlZDoleCBnb3Q6JXhcbiIsDQo+ICsJCQkJCWksIGosICh1bnNpZ25lZCBj aGFyKShyZWYgKyBqICsgaSksIG1bal0pOw0KPiArCQkJCXJldHVybiAtMTsNCj4gKwkJCX0NCj4g KwkJfQ0KPiArDQo+ICsJCXAgKz0gcGlfb2Zmc2V0Ow0KPiArCQlpZiAocmVmdGFnX2VuYWJsZWQp IHsNCj4gKwkJCWlmIChwaV9zaXplID09IDgpIHsNCj4gKwkJCQlzdHJ1Y3QgdDEwX3BpX3R1cGxl ICp0dXBsZSA9IHA7DQo+ICsNCj4gKwkJCQlpZiAoc3dhcCh0dXBsZS0+cmVmX3RhZykgIT0gcmVm KSB7DQo+ICsJCQkJCWZwcmludGYoc3RkZXJyLCAicmVmdGFnIGludGVydmFsOiVkIGV4cGVjdGVk OiV4IGdvdDoleFxuIiwNCj4gKwkJCQkJCWksIHJlZiwgc3dhcCh0dXBsZS0+cmVmX3RhZykpOw0K PiArCQkJCQlyZXR1cm4gLTE7DQo+ICsJCQkJfQ0KPiArDQo+ICsJCQkJcmVtYWluaW5nIC09IHNp emVvZigqdHVwbGUpOw0KPiArCQkJCXAgKz0gc2l6ZW9mKCp0dXBsZSk7DQo+ICsJCQl9IGVsc2Ug aWYgKHBpX3NpemUgPT0gMTYpIHsNCj4gKwkJCQlzdHJ1Y3QgY3JjNjRfcGlfdHVwbGUgKnR1cGxl ID0gcDsNCj4gKwkJCQlfX3U2NCB2ID0gZ2V0X3VuYWxpZ25lZF9iZTQ4KHR1cGxlLT5yZWZfdGFn KTsNCj4gKw0KPiArCQkJCWlmICh2ICE9IHJlZikgew0KPiArCQkJCQlmcHJpbnRmKHN0ZGVyciwg InJlZnRhZyBpbnRlcnZhbDolZCBleHBlY3RlZDoleCBnb3Q6JWxseFxuIiwNCj4gKwkJCQkJCWks IHJlZiwgdik7DQo+ICsJCQkJCXJldHVybiAtMTsNCj4gKwkJCQl9DQo+ICsJCQkJcmVtYWluaW5n IC09IHNpemVvZigqdHVwbGUpOw0KPiArCQkJCXAgKz0gc2l6ZW9mKCp0dXBsZSk7DQo+ICsJCQl9 DQo+ICsJCX0NCj4gKw0KPiArCQltID0gcDsNCj4gKwkJZm9yIChqID0gMDsgaiA8IHJlbWFpbmlu ZzsgaisrKSB7DQo+ICsJCQlpZiAobVtqXSAhPSAodW5zaWduZWQgY2hhcil+KHJlZiArIGogKyBp KSkgew0KPiArCQkJCWZwcmludGYoc3RkZXJyLCAiKHBvc3QpaW50ZXJ2YWw6JWQgYnl0ZTolZCBl eHBlY3RlZDoleCBnb3Q6JXhcbiIsDQo+ICsJCQkJCWksIGosICh1bnNpZ25lZCBjaGFyKX4ocmVm ICsgaiArIGkpLCBtW2pdKTsNCj4gKwkJCQlyZXR1cm4gLTE7DQo+ICsJCQl9DQo+ICsJCX0NCj4g Kw0KPiArCQlwICs9IHJlbWFpbmluZzsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30N Cj4gKw0KPiArc3RhdGljIGludCBpbml0X2RhdGEodm9pZCAqZGF0YSwgaW50IG9mZnNldCkNCj4g K3sNCj4gKwl1bnNpZ25lZCBjaGFyICpkID0gZGF0YTsNCj4gKwlpbnQgaTsNCj4gKw0KPiArCWZv ciAoaSA9IDA7IGkgPCBEQVRBX1NJWkU7IGkrKykNCj4gKwkJZFtpXSA9ICh1bnNpZ25lZCBjaGFy KSgweGFhICsgb2Zmc2V0ICsgaSk7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0KDQpp dCBzaG91bGQgYmUgOi0NCg0Kc3RhdGljIGludCBpbml0X2RhdGEodm9pZCAqZGF0YSwgaW50IG9m ZnNldCkNCnsNCgl1bnNpZ25lZCBjaGFyICpkID0gZGF0YTsNCglpbnQgaTsNCg0KCWZvciAoaSA9 IDA7IGkgPCBEQVRBX1NJWkU7IGkrKykNCgkJZFtpXSA9ICh1bnNpZ25lZCBjaGFyKSgweGFhICsg b2Zmc2V0ICsgaSk7DQoNCn0NCiAgDQoNCj4gK3N0YXRpYyBpbnQgY2hlY2tfZGF0YSh2b2lkICpk YXRhLCBpbnQgb2Zmc2V0KQ0KPiArew0KPiArCXVuc2lnbmVkIGNoYXIgKmQgPSBkYXRhOw0KPiAr CWludCBpOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IERBVEFfU0laRTsgaSsrKQ0KPiArCQlp ZiAoZFtpXSAhPSAodW5zaWduZWQgY2hhcikoMHhhYSArIG9mZnNldCArIGkpKQ0KPiArCQkJcmV0 dXJuIC0xOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK2ludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pDQo+ICt7DQo+ICsJaW50IGZkLCByZXQsIG9mZnNldCwgaW50ZXJ2 YWxzLCBtZXRhYnVmZmVyX3NpemUsIG1ldGFidWZmZXJfdHhfc2l6ZTsNCj4gKwl2b2lkICpvcmln X2RhdGFfYnVmLCAqb3JpZ19waV9idWYsICpkYXRhX2J1ZjsNCj4gKwlzdHJ1Y3QgaW9fdXJpbmdf c3FlICpzcWU7DQo+ICsJc3RydWN0IGlvX3VyaW5nX2NxZSAqY3FlOw0KPiArCXN0cnVjdCBpb191 cmluZyByaW5nOw0KPiArDQo+ICsJaWYgKGFyZ2MgPCAyKSB7DQo+ICsJCWZwcmludGYoc3RkZXJy LCAiVXNhZ2U6ICVzIDxkZXY+XG4iLCBhcmd2WzBdKTsNCj4gKwkJcmV0dXJuIDE7DQo+ICsJfQ0K PiArDQo+ICsJZmQgPSBvcGVuKGFyZ3ZbMV0sIE9fUkRXUiB8IE9fRElSRUNUKTsNCj4gKwlpZiAo ZmQgPCAwKSB7DQo+ICsJCXBlcnJvcigiRmFpbGVkIHRvIG9wZW4gZGV2aWNlIHdpdGggT19ESVJF Q1QiKTsNCj4gKwkJcmV0dXJuIDE7DQo+ICsJfQ0KPiArDQo+ICsJcmV0ID0gaW5pdF9jYXBhYmls aXRpZXMoZmQpOw0KPiArCWlmIChyZXQgPCAwKQ0KPiArCQlyZXR1cm4gMTsNCj4gKwlpZiAobGJh X3NpemUgPT0gMCB8fCBtZXRhZGF0YV9zaXplID09IDApDQo+ICsJCXJldHVybiAxOw0KPiArDQo+ ICsJaW50ZXJ2YWxzID0gREFUQV9TSVpFIC8gbGJhX3NpemU7DQo+ICsJbWV0YWJ1ZmZlcl90eF9z aXplID0gaW50ZXJ2YWxzICogbWV0YWRhdGFfc2l6ZTsNCj4gKwltZXRhYnVmZmVyX3NpemUgPSBt ZXRhYnVmZmVyX3R4X3NpemUgKiAyOw0KPiArDQo+ICsJaWYgKHBvc2l4X21lbWFsaWduKCZvcmln X2RhdGFfYnVmLCBwYWdlc2l6ZSwgREFUQV9TSVpFKSkgew0KPiArCQlwZXJyb3IoInBvc2l4X21l bWFsaWduIGZhaWxlZCBmb3IgZGF0YSBidWZmZXIiKTsNCj4gKwkJcmV0ID0gMTsNCj4gKwkJZ290 byBjbG9zZTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAocG9zaXhfbWVtYWxpZ24oJm9yaWdfcGlfYnVm LCBwYWdlc2l6ZSwgbWV0YWJ1ZmZlcl9zaXplKSkgew0KPiArCQlwZXJyb3IoInBvc2l4X21lbWFs aWduIGZhaWxlZCBmb3IgbWV0YWRhdGEgYnVmZmVyIik7DQo+ICsJCXJldCA9IDE7DQo+ICsJCWdv dG8gZnJlZTsNCj4gKwl9DQo+ICsNCj4gKwlyZXQgPSBpb191cmluZ19xdWV1ZV9pbml0KDgsICZy aW5nLCAwKTsNCj4gKwlpZiAocmV0IDwgMCkgew0KPiArCQlwZXJyb3IoImlvX3VyaW5nX3F1ZXVl X2luaXQgZmFpbGVkIik7DQo+ICsJCWdvdG8gY2xlYW51cDsNCj4gKwl9DQo+ICsNCj4gKwlkYXRh X2J1ZiA9IG9yaWdfZGF0YV9idWY7DQoNCmJvdGggYXJlIG5vdCBtb2RpZmllZCBhZnRlciBhYm92 ZSBhc3NpZ25tZW50IHRpbGwgcHJvZ3JhbSBleGl0DQp3aHkgY2FuJ3Qgd2UganVzdCB1c2Ugb25l IGluc3RlYWQgb2YgYm90aCA/DQoNCi1jaw0KDQoNCg==