From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D1AB9C02198 for ; Mon, 10 Feb 2025 12:15:33 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8064610E191; Mon, 10 Feb 2025 12:15:33 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="CKEV054Z"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4EFB210E191; Mon, 10 Feb 2025 12:15:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1739189732; x=1770725732; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=rszQfMu8038qoMYkNpI5oOzkVoqHow0PSJcIWmCWpk8=; b=CKEV054Z3j9Zvl1aCypL3GPSsgvXDHv867/akEy8TUFAH+KAnLN9v5eV Zge74c1Jl6K0vlYK4ug+cLtzO/FDRgcWIkv4DwgVvYzziafPowncVOA/S 38k9skQ0qReE5jumHvq38ZdaYAVhgJMKwox6yeO8qv3SICxl4PK5uIQpg SRvkSE8Xn9YOAufqdORf6Enp+c+jwUF8KxOvXbtC+n24OSrfFkPaU6Rns uRPM7AvEm6MT/3+qChQvtZpXOsG98XyrnmgAZ8x68EifLXg5sPurzPQ4e fVBH9nNK+YN4BhJZFE8X3jAEHGaPRSibl3oVuGUYPuGxIk+Zlm5uf1Nj6 Q==; X-CSE-ConnectionGUID: jSv1fmSyQGSXnwTKN5BoGg== X-CSE-MsgGUID: SRg7Q56fSmK2cXycuVOonA== X-IronPort-AV: E=McAfee;i="6700,10204,11341"; a="50751261" X-IronPort-AV: E=Sophos;i="6.13,274,1732608000"; d="scan'208";a="50751261" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2025 04:15:32 -0800 X-CSE-ConnectionGUID: 4w0yfA2lTpGUfQy5SZmhIA== X-CSE-MsgGUID: /C6Ab8h1RoW+mFjP19B5gQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="112615386" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 10 Feb 2025 04:15:32 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Mon, 10 Feb 2025 04:15:31 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44 via Frontend Transport; Mon, 10 Feb 2025 04:15:31 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.46) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Mon, 10 Feb 2025 04:15:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H5o5eh1DnISU1IgowUI5kaOzr4WV/FtIp3YTKAD/H3/N5IuHXO7/b91WwLwKRBs/NLzhpE2z3/1UxxIDYBBHhw0SeDfD8WE2FRLaG6IO+kjM6hLwhAAo3uuhXEj/aptD1ARap2FVEzCLm0CbQW3no+CXFB9Z4ysoMSTRBda3prNnQ0QaQStMFyfAoCBbPWIzFTJN6W0iOQhuSvt8YiWtD9aaE52ccHy+G9XDcGQELu0PSLngTfiSUuWw21RMqOwG7YhQAxomessIg4YYRC5s3OzQUmMq5rszIdT1o+or8SsIN8HVsu66xEy2M/rleHD7vWfbvdDJ0PSsKGG135ggww== 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=rszQfMu8038qoMYkNpI5oOzkVoqHow0PSJcIWmCWpk8=; b=UnpV9r49WrSpgRBicNycQWyDWjR4Jnwjd5/KmI7HsBcaWzZUnIVhthYdu7vts/i3C5fqzq/BjDlH4P52yqC5KAMnnWA8QJKW2z7ecyQ+WiY+U04xtJo2cfSq5Q6mD8h+8zFg6FpOj/OX6nh84LqBzptHzhrXJTvGnBdKLRSG5Jq34nNQXKX8ko25DaMhXtIEzF37HLQ+QghNHPJiJ7qQiMGvqEuvhuFZsXXribFtXJzf3n31n9HfM3NVYfe25v16A4nHtFsIAZgvbTAbrP5PK6SOO51nfP6HKe9hCrzenEDV0TPZyWP3YlAqaztDCneGiJfgEW2+feTpP6KVDz5QVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CY8PR11MB7777.namprd11.prod.outlook.com (2603:10b6:930:71::14) by SN7PR11MB6947.namprd11.prod.outlook.com (2603:10b6:806:2aa::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.18; Mon, 10 Feb 2025 12:15:24 +0000 Received: from CY8PR11MB7777.namprd11.prod.outlook.com ([fe80::60a1:eab8:65ee:6bb8]) by CY8PR11MB7777.namprd11.prod.outlook.com ([fe80::60a1:eab8:65ee:6bb8%4]) with mapi id 15.20.8422.015; Mon, 10 Feb 2025 12:15:24 +0000 From: "Govindapillai, Vinod" To: "ville.syrjala@linux.intel.com" CC: "intel-xe@lists.freedesktop.org" , "Saarinen, Jani" , "Reddy Guddati, Santhosh" , "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" Subject: Re: [PATCH v6 5/7] drm/i915/xe3: dirty rect support for FBC Thread-Topic: [PATCH v6 5/7] drm/i915/xe3: dirty rect support for FBC Thread-Index: AQHbc1oo9eYELXjTr0uoxgEkvwoRPrM4vckAgAAV5QCAAA+ZgIAHoO4A Date: Mon, 10 Feb 2025 12:15:23 +0000 Message-ID: <9582ca6159188bdeefed88e0412c56016e08a993.camel@intel.com> References: <20250130210027.591927-1-vinod.govindapillai@intel.com> <20250130210027.591927-6-vinod.govindapillai@intel.com> <844e0a6875c675b6eacbb51e9d657fbea1a87751.camel@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.52.3-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY8PR11MB7777:EE_|SN7PR11MB6947:EE_ x-ms-office365-filtering-correlation-id: 14e07be7-7de5-4a83-fc7d-08dd49cc98a8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?cnhTNTdodk1ab1UrbFdwblQ3YnRBdFNTMk41dC9TUndSeHVxTEgxOExsZERl?= =?utf-8?B?YnBvY3BmUkZPVExYaFo3cHdLczd1elFBYm1PUmQ1TWo3c2lncE5JZmV0THBz?= =?utf-8?B?WEsvWTBYK0JidHBlWGJIa0VudmZHc3RVbUVsckdVSXBoWWlUL3BlWWpOMTJU?= =?utf-8?B?aFZwbE95dVhucDF4YklZUUNtcEpMZHdwRmNlOFpKdVhUWlY5SG41VmNaRklz?= =?utf-8?B?M29iTTBzRXNBY0YvdjBUVzlLZURlYU5rT3hDckt6VmNRRnp3UmRZMGZWZVE5?= =?utf-8?B?NzA2eGFRUTFuT0ROM0pJM1JHc21hVXMwcUpveDJwM2xhVTVGalk2eWZwWUFz?= =?utf-8?B?VmpsNEZjZzdiZmZOQWpjOUpvc0x5WHBjRkpJU214ODE3eituZU5ZM3IvdFVV?= =?utf-8?B?MnZzZU0vRk90NUhlcmhBeEhkVGwvblI1R1VSckRtTFd5ejczWlVoYStkUE9k?= =?utf-8?B?bXVZVE56NGFTeGFXbTVOaUo2K08raXlUNmNqY2czS2ZCNEd5Ry8yVTN2eTJM?= =?utf-8?B?THpIVTRkemlHTXVWRVBNZEJpYm5rL1lEQmxCaGJOUWVNdGpPRVREMWNmTzBp?= =?utf-8?B?RkNWcmtSTHJ2dE9nMk1iNWJrMFBCSStFYjY2QWFKTlQ3eVhHMDVkZCtIZ0pQ?= =?utf-8?B?Y0JUS1YxSXlzRDA1Z3kwSUhJUVl6K1pEM2Y3bkxKSE9CRlZleHVaUVltZWxs?= =?utf-8?B?YVMrejIwMzhWS2tXSXdUa0FWaTIyeWh0d0hPTnNBc21aQ0FNMnV3bStDK216?= =?utf-8?B?NG0wUUJ6bisrVEZhQzgwS3hYYytzeHFuNE9qMGpYdms3TXdzOVlrdWtWUFNO?= =?utf-8?B?aEpza3lHOXdoS01zckpDZEpUakJXbW5yZDh5cE1rVnFhRU9tcWhjWUdPL1NG?= =?utf-8?B?WTJaMTJvM0d4WjRlOGxnaC9lZUc4STE0enBiQ3JnSUw5b1hDVXRQa2lHM3dV?= =?utf-8?B?aUJjSzNQV2pPSHM4YmhSczlSazJTSkhJRSs1ZnRlNUorK0xON2dlSlEwTW0v?= =?utf-8?B?bllOV3RjZjZINkRua2wxTkZaUU9oUVB6Rk54VzBHU0YrcFdFalhzZElxZC9s?= =?utf-8?B?MjhKYmo0TDJiUURlYy84dWtadFh5WmRiMmFQaWRkbDcwK1g5QjBVc1lQMmpS?= =?utf-8?B?cjYxWTFaRmdUaEF6Y090eXZrTlk5eno0SUl1MVBDRGFVaUFFSFlPV0hPdVZW?= =?utf-8?B?MkttQWJFZFhQNUwxdTdFblRuNUg2NmhOTUZRQmFsdmxORzFCOUdXdjgyNmh5?= =?utf-8?B?ZEVlanBxOFNZcWtVRWlXYXVzY2lmaWt2cjYwZWJ2elQvYStqd2s5Q0xMQkFj?= =?utf-8?B?Y2UzQldtZTluVVRMNTZvK25KZS8zRVF2L1Z3OGorSDBGMTU4TjBORWNaczBT?= =?utf-8?B?VldjUDl1Mm9lOFdSZkdQYWNUMTBlRXZma053OS9yMWFlZ1NOOTFVb3JsVmY4?= =?utf-8?B?TUdXYW5nb2MrWFBaUUxMcFZISGlqWmcrRHBEcndqWTJWclV3YklqVEd3TUh1?= =?utf-8?B?b2gyem80bDdibDlCTUdmamNaaVEyNUpZOWpCQmhoRE8xcVEyTFp3Rmk2WERy?= =?utf-8?B?S2pNb2pnUkhqNkhGcXRyeGZId2x6QWtCOFZURlFhV21LRE0yL3dpSUM4enJ1?= =?utf-8?B?Z09pM1hOVnF5cW1Qd3d4bmhjd0pESE9QUDBtdlllaWdTU0NRU0g0MUN6T2Nt?= =?utf-8?B?VjZXajFGQy9zYm9iWktUL090ejhmVE50c09ZdzlORlJXVmJGSzdBZmIrWVBC?= =?utf-8?B?UGpOcGpTY05XdW5uNC84MFlURmp6eWVmQ0ZxaUpSSDdFWmZUc2xCVGp2S2J2?= =?utf-8?B?cml5UGF3czJSNk5SdHhmTHpQeEtLMVlPcmZEYi8xVVpEcTJWVkpTODZqNG56?= =?utf-8?B?cGw0djNpNTNrVnhNd0JCWGZNaDJTTG5tUm5IempZcjEvYXNSVm82aHczejNq?= =?utf-8?Q?3+ZiO725N7Fd9xYkFnIvYhn123Y0v/DX?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CY8PR11MB7777.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dENrTlYyZmNNcThWd0FucWE0TlBIOGZwNmYvUklFbUsxYUFTWEZSYnFRN1VE?= =?utf-8?B?SVBReDN6UUJydEViY3hpYXlKZ2pjSVl6dWVSdDhuZTFhSjA3WkZFOXVZMUla?= =?utf-8?B?cHBtUkpzeTBoR2lYcm84YktMeEQxdi9FMXJGZCswdVo3N0hPejEvakFmOWJt?= =?utf-8?B?WlVGTG1RbnRLc0lBcmVZMng3K1czVk82OURKcnJxaWVvTUVHcE5tdlgzNFUr?= =?utf-8?B?ZHprMGRsaGRxMEhqUnp1dmZrdkRoSURFTG4rajB5NW5BWmZHZEdoeVpYYzNN?= =?utf-8?B?S0laTGhtaHpRbENucmRLUy9sZXN2aXdRTE4yWGoxeGdpS1NuSHJ6L2hQdytU?= =?utf-8?B?YlBvcm9xdXVxa0VJeEM4Q0xHOERxQ3hIa2k4aUkrUGpMQU03eGwyOHBnMkNk?= =?utf-8?B?YjVsY0N0K3QzQVF4clMxY2QvUExCOC8xb1ZyVGgvUDB5bGRMYVNFVFViSTFp?= =?utf-8?B?Q3hyWnBOWDBoU2piQXF2RXBMdWhpYXNvYkw1TzhiTmN6QkRXTDFSR2hGYWNz?= =?utf-8?B?Z012ZTlNRzIvWUFDdENmeTREVzlCenFGTGx6OGFBVCtkbXZXMkUyYzYxUDNi?= =?utf-8?B?Y1pSL3VLWHdHRUMvS2hyRiswb050dHZkN3o4SHl2OUZaZ1VuZHpkakRlQ3Rx?= =?utf-8?B?MGtlN1c2QVFmVjJMZHpHUllrbys5RzhVd3lWNG9NUVRMZmpZZzlQYXpNcmNl?= =?utf-8?B?cFN6VkF3eEtYSWkyM2k2WCt6WXRjZjliZlMxZFgrVVVhNlRQV2pBZi9OZnhG?= =?utf-8?B?VEZEdkNRTWV3TWtRQ29sRStyWGVKK1NXaWtFM1JQUHZqTEhOQW1OVWVYTGVG?= =?utf-8?B?Q2JoeXBpd3EzdWlodzlHQ2Q4L1JGSThHMFV3RnJFRTZ5bDNrQm1kTUpsbkNC?= =?utf-8?B?a2tzM2U3dmVBQ2hISmlJdkhPUTgvWXVPaGxIQkRiaFlraVdSWFJ3Qi8yUHFp?= =?utf-8?B?S3JQb1JVVTBEZnFEYkMxbWtaNHBXZUlpcFZydmdDZjhnd3hnL0c2dXV5amVO?= =?utf-8?B?SmJSYWoxL053T3dvNUVDSWlFWjVPZzR3UTVGeGtyckZzTXpSK3FjY1hDM05D?= =?utf-8?B?cVllaFQ2SHROMEFjckxlWUN6Sm0vcHhyaDgwTnl4MmdVa2hiMXRHckFHYzFK?= =?utf-8?B?emNRT3M0WWE1R1k0RDBOS3QxOFhDWWlNa3JyZkVlS0FtY3JyOFNoaVg2endq?= =?utf-8?B?N0tseVVCUmVtWHhLOWlJZ05ibEIvMzZLM212bjlaS2JsNCtVQzJaajdETEF1?= =?utf-8?B?aWpoQW5EdDRJdytDdDkyUWUzaUhxdlhUR3pXOU5oTUt5OCtwOTBTQzkxUFJl?= =?utf-8?B?aG5Oc2kxdHFzVElFWTQrekRxMnd2V2J5Y2EyVXNIcFg5d0IrQnM2RGVhUTBq?= =?utf-8?B?WG4wQS9pNk9YVjB3L0JlejVPV0JYWDZCVDdpS1F6eHIvZWNHUjkxdHJpYXZR?= =?utf-8?B?ang2SkdzRFd1U3JpNmdnUldhOVhsNk10dndhN2dXUFZWb1MyaHN6S1EvUlJx?= =?utf-8?B?OFhaMWdna3puS1RMSFNvRXZlWmZyL3N3aXdpY21WcFFkWEtOYVhYM1ZOeWE4?= =?utf-8?B?VzcvNGJJZjBqcm9jazEzQmV0YVRPZmwva1kvQ0JYcDQ3WFN6QUhjSng5Z0hR?= =?utf-8?B?RnJOdmRhWHFpQmt2a0ZuSXh5eWxWR0d3M0grVHlVRXFITDFDMkZ0SDB2dkov?= =?utf-8?B?WkxGalozbDJXY0cyUTdacXBMOFBEeWtwenJLRGhkcW1mRjM0bnRselNYSzdZ?= =?utf-8?B?cTdjdFE4bHFYRjIvd0d0L1BZQjBQQzlnSWVSakhOUnFlMHhINXVOZXNqdnRF?= =?utf-8?B?OHU3RWd4VmFzb3RQRFduZFZsV3MvNy9zZzBLZ1QzdmNrRmpjNEFQZVRkSEg3?= =?utf-8?B?ZytQYStUQk4vaGszaWFWUlpiQldLOERIbjNST2d5ckQ0Um1yRE03dml6RmRM?= =?utf-8?B?WWZYbVVNdjhSSEJVczVST2dKSi9PbStzT3pXMjljYW1jMkFLZDVISU0zODVE?= =?utf-8?B?dTA1ZzdpWmRabkI5eGljNUIvYnAxOHVTVnhIQjlBNytPbTRMTVRVUUNaSXNr?= =?utf-8?B?dGJoeWVlcmp6eFg2R2hMN3ExSGdwRlRRS0c3L3FyWjFuTXpjbjJKQWo2SXBs?= =?utf-8?B?WVFDVnc3dkxPZzNWbzdlRzVWanNSOGo0TWJpYUs2Mkh1RDN2dnhtMkwyNURv?= =?utf-8?Q?ATCNxvJV1ZDhRi7IfMwxKqE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <32504EEE47ADCA41A88EA91E40B5595D@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY8PR11MB7777.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14e07be7-7de5-4a83-fc7d-08dd49cc98a8 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2025 12:15:23.9567 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mCpMWmrI+vuMl7R9lDZzGvaYGJyOUzFhOFiUUrF2K8ORzFdLAzk1x9/n6YNDnuywckJ0b3uHB8Qmf5raRFqLyW+bh35DPSf2fDKzw/blBjQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6947 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" SGkgVmlsbGUsDQoNCkkgbmVlZCB0byBjaGVjayB0aGUgYXN5bmMgZmxpcCB0ZXN0cyBmb3IgZGly dHkgcmVjdCBjYXNlcy4NCg0KQnV0IGNvdWxkIHlvdSBwbGVhc2UgY2xhcmlmeSBzb21lIG9mIHlv dXIgY29tbWVudHMgYmVmb3JlIGkgc2VuZCBhbm90aGVyIHZlcnNpb24uLiANCg0KT24gV2VkLCAy MDI1LTAyLTA1IGF0IDE3OjQ1ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6DQo+IE9uIFdl ZCwgRmViIDA1LCAyMDI1IGF0IDAyOjQ5OjQ2UE0gKzAwMDAsIEdvdmluZGFwaWxsYWksIFZpbm9k IHdyb3RlOg0KPiA+IFNvIGJhc2VkIG9uIHlvdXIgY29tbWVudHMgb24gdGhlIHByZXZpb3VzIHBh dGNoIGFuZCB0aGlzIG9uZSwgbGV0IG1lIGNvbmNsdWRlIHRoZSBjaGFuZ2VzIHRvIGJlDQo+ID4g ZG9uZQ0KPiA+IGhlcmUhDQo+ID4gDQo+ID4gMS4gQXMgcGFydCBvZiB0aGUgcHJldmlvdXMgcGF0 Y2gsIHdlIGNvbGxlY3QgdGhlIGZiY19kaXJ0eSByZWN0IGZyb20gdGhlIGRhbWFnZV9oZWxwZXIg Y2FsbC4NCj4gPiBNYWtlDQo+ID4gZGFtYWdlIGVtcHR5IGlmIHRoZSBwbGFuZSBub3QgdmlzaWJs ZS4gDQo+ID4gDQo+ID4gMi4gVXBkYXRlIHRoZSBGQkMgZGlydHkgcmVjdCByZWdpc3Rlcy4gVGhp cyBkbyB0d28gdGhpbmdzDQo+ID4gCTIuMSBQcmVwYXJlIHRoZSBjb2xsZWN0ZWQgRkJDIGRpcnR5 IGFuZCBjb3B5IGl0IHRvIHRoZSBjb3JyZWN0IGZiY19zdGF0ZSAtDQo+ID4gwqAJwqDCoAkNCj4g PiBpbnRlbF9mYmNfcHJlcGFyZV9kaXJ0eV9yZWN0KCkNCj4gPiANCj4gPiAJMi4yIFdyaXRlIHRv IHRoZSByZWdpc3RlcnMgLSBpbnRlbF9mYmNfZGlydHlfcmVjdF91cGRhdGVfbm9hcm0oKQ0KPiA+ IA0KPiA+IDIuMSBBVCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhdG9taWNfY29tbWl0X3RhaWwoKSB3 aXRoaW4gdGhlIERTQiBibG9jayBoYW5kbGluZywgY2FsbHMNCj4gPiBpbnRlbF9mYmNfcHJlcGFy ZV9kaXJ0eV9yZWN0KCkgdG8gcG9wdWxhdGUgZmJjX3N0YXRlJ3MgZmJjX2RpcnR5X3JlY3Qgc3Ry dWN0cw0KPiA+IA0KPiA+IEluIHRoZSBpbnRlbF9mYmNfcHJlcGFyZV9kaXJ0eV9yZWN0KCksIA0K PiA+IAlpdGVyYXRlIHRocm91Z2ggZWFjaCBwbGFuZSBpbiB0aGUgYXRvbWljX3N0YXRlDQo+ID4g wqDCoMKgwqDCoMKgwqAgY2hlY2sgdGhlIGNvcnJlY3QgcGxhbmUsIHBpcGUgZXRjLiBUaGVuLA0K PiA+IA0KPiA+IAlpZiAoZHJtX3JlY3RfdmlzaWJsZShkYW1hZ2VfbWVyZ2VkKQ0KPiA+IAkJdXBk YXRlIGZiY19zdGF0ZSdzIGZiYyBkaXJ0eSByZWN0IA0KPiA+IMKgwqDCoMKgwqDCoMKgIGVsc2UN Cj4gPiAJCU1ha2UgYXQgaXQgYXRsZWFzdCBvbmUgc2NhbiBsaW5lIGFuZCB1cGRhdGUgdGhlIGZi Y19zdGF0ZSdzIGZiY19kaXJ0eSByZWN0IA0KPiA+IA0KPiA+IDIuMiBUaGVuIGNhbGwgaW50ZWxf ZmJjX2RpcnR5X3JlY3RfdXBkYXRlX25vYXJtKCkgZm9ybSBpbnRlbF9wbGFuZV91cGRhdGVfbm9h cm0oKQ0KPiA+IAlBbmQgd2l0aGluIGluIGludGVsX2ZiY19kaXJ0eV9yZWN0X3VwZGF0ZV9ub2Fy bSgpIGp1c3QgdXBkYXRlIHRoZSBGQkMgZGlydHkgcmVnaXN0ZXJzDQo+ID4gd2l0aA0KPiA+IHRo ZSB2YWx1ZXMgZnJvbSBjb3JyZXNwb25kaW5nIGZiY19zdGF0ZS0+ZmJjX2RpcnR5IA0KPiA+IA0K PiA+IA0KPiA+IEkgdGhpbmsgbGFzdCB0aW1lIHdoZW4gd2UgZGlzY3Vzc2VkLCB3ZSBkZWNpZGVk IGtlZXAgdGhhdCB2YWxpZCBmbGFnIHRvIHRyYWNrDQo+ID4gaW50ZWxfZmJjX2Nhbl9mbGlwX251 a2UoKSBjYXNlLiBTbyBJIGd1ZXNzIHRoYXQgaXMgbm90IHJlcXVpcmVkIGFueW1vcmUNCj4gPiAN Cj4gPiBSZWdhcmRpbmcgdGhlIGFzeW5jIGZsaXAgY2FzZXMsIEkgdGhvdWdodCBub3RoaW5nIHNw ZWNpZmljIG5lZWQgdG8gYmUgZG9uZSBmb3IgdGhlIGZiYyBkaXJ0eQ0KPiA+IHJlY3QuDQo+ID4g QXRsZWFzdCB0aGUgc29tZSB0aGUgdGVzdHMgSSB0cmllZCB3ZXJlIHBhc3Npbmcgd2l0aCBkaXJ0 eSByZWN0IGVuYWJsZWQuDQo+ID4gDQo+ID4gSSB3aWxsIGFkZCB0aGUgbG9ja3MgaW4gdGhlc2Ug bmV3IGZ1bmN0aW9ucy4NCj4gPiANCj4gPiBCUg0KPiA+IFZpbm9kDQo+ID4gDQo+ID4gDQo+ID4g T24gV2VkLCAyMDI1LTAyLTA1IGF0IDE1OjMxICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+ID4gPiBPbiBUaHUsIEphbiAzMCwgMjAyNSBhdCAxMTowMDoyNFBNICswMjAwLCBWaW5vZCBH b3ZpbmRhcGlsbGFpIHdyb3RlOg0KPiA+ID4gPiBEaXJ0eSByZWN0YW5nbGUgZmVhdHVyZSBhbGxv d3MgRkJDIHRvIHJlY29tcHJlc3MgYSBzdWJzZWN0aW9uDQo+ID4gPiA+IG9mIGEgZnJhbWUuIFdo ZW4gdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQsIGRpc3BsYXkgd2lsbCByZWFkDQo+ID4gPiA+IHRo ZSBzY2FuIGxpbmVzIGJldHdlZW4gZGlydHkgcmVjdGFuZ2xlIHN0YXJ0IGxpbmUgYW5kIGRpcnR5 DQo+ID4gPiA+IHJlY3RhbmdsZSBlbmQgbGluZSBpbiBzdWJzZXF1ZW50IGZyYW1lcy4NCj4gPiA+ ID4gDQo+ID4gPiA+IFVzZSB0aGUgbWVyZ2VkIGRhbWFnZSBjbGlwIHN0b3JlZCBpbiB0aGUgcGxh bmUgc3RhdGUgdG8NCj4gPiA+ID4gY29uZmlndXJlIHRoZSBGQkMgZGlydHkgcmVjdCBhcmVhcy4N Cj4gPiA+ID4gDQo+ID4gPiA+IHYyOiAtIE1vdmUgZGlydHkgcmVjdCBoYW5kbGluZyB0byBmYmMg c3RhdGUgKFZpbGxlKQ0KPiA+ID4gPiANCj4gPiA+ID4gdjM6IC0gVXNlIGludGVsX2ZiY19kaXJ0 eV9yZWN0X3VwZGF0ZV9ub2FybSAoVmlsbGUpDQo+ID4gPiA+IMKgwqDCoCAtIFNwbGl0IHBsYW5l IGRhbWFnZSBjb2xsZWN0aW9uIGFuZCBkaXJ0eSByZWN0IHByZXBhcmF0aW9uDQo+ID4gPiA+IMKg wqDCoCAtIEhhbmRsZSBjYXNlIHdoZXJlIGRpcnR5IHJlY3QgZmFsbCBvdXRzaWRlIHRoZSB2aXNp YmxlIHJlZ2lvbg0KPiA+ID4gPiANCj4gPiA+ID4gdjQ6IC0gQSBzdGF0ZSB2YXJpYWJsZSB0byBj aGVjayBpZiB3ZSBuZWVkIHRvIHVwZGF0ZSBkaXJ0eSByZWN0DQo+ID4gPiA+IMKgwqDCoCByZWdp c3RlcnMgaW4gY2FzZSBpbnRlbF9mYmNfY2FuX2ZsaXBfbnVrZSgpIChWaWxsZSkNCj4gPiA+ID4g DQo+ID4gPiA+IEJzcGVjOiA2ODg4MSwgNzE2NzUsIDczNDI0DQo+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IFZpbm9kIEdvdmluZGFwaWxsYWkgPHZpbm9kLmdvdmluZGFwaWxsYWlAaW50ZWwuY29tPg0K PiA+ID4gPiAtLS0NCj4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYyB8wqDCoCA3ICsNCj4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2ZiYy5jwqDCoMKgwqAgfCAxMzIgKysrKysrKysrKysrKysrKysrKw0KPiA+ID4g PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmjCoMKgwqDCoCB8wqDC oCA2ICsNCj4gPiA+ID4gwqAzIGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspDQo+ID4g PiA+IA0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMNCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYw0KPiA+ID4gPiBpbmRleCA3ZDY4ZDY1MmMxYmMuLjMzMjc3Zjg5MjI3OSAx MDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMNCj4gPiA+ID4gQEAgLTcyNjMsNiArNzI2Myw4IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiA+ID4g PiDCoA0KPiA+ID4gPiDCoAkJY29tbWl0X3BpcGVfcHJlX3BsYW5lcyhzdGF0ZSwgY3J0Yyk7DQo+ ID4gPiA+IMKgDQo+ID4gPiA+ICsJCWludGVsX2ZiY19kaXJ0eV9yZWN0X3VwZGF0ZV9ub2FybShO VUxMLCBzdGF0ZSwgY3J0Yyk7DQo+ID4gPiA+ICsNCj4gPiA+IA0KPiA+ID4gVGhhdCBpcyBub3Qg dGhlIHJpZ2h0IHBsYWNlIGZvciBfbm9hcm0oKSBzdHVmZi4NCj4gPiA+IA0KPiA+ID4gSG1tLCBt YXliZSB3ZSBzaG91bGQganVzdCBkbyB0aGlzIGFzIHBhcnQgb2YgaW50ZWxfcGxhbmVfdXBkYXRl X25vYXJtKCk/DQo+ID4gPiBIb3cgZG9lcyB0aGUgZGlydHkgcmVjdCBpbnRlcmFjdCB3aXRoIGFz eW5jIGZsaXBzPw0KPiA+IA0KPiA+IE9rLg0KPiA+IA0KPiA+IEkgdGhvdWdodCBubyBuZWVkIHRv IGhhbmRsZSBhbnl0aGluZyBzcGVjaWZpYyB0byBkaXJ0eV9yZWN0IGluIGNhc2Ugb2YgYXN5bmMg ZmxpcHMuDQo+ID4gQXRsZWFzdCB0aGUgdGhlIHRlc3RzIHRoYXQgSSB0cmllZCB3ZXJlIG9rISAN Cj4gPiANCj4gDQo+IFRoZSBxdWVzdGlvbiBpcyB3aGV0aGVyIGFzeW5jIGZsaXA6DQo+IC0gcmVz dWx0cyBpbiBmdWxsIG51a2Ugb3IgZG9lcyBpdCB1c2UgdGhlIGRpcnR5IHJlY3Q/DQo+IC0gaWYg aXQgdXNlcyB0aGUgZGlydHkgcmVjdCBkb2VzIHRoYXQgbWVhbiB0aGUgbmV3DQo+IMKgIGRpcnR5 IHJlY3QgKCopIHRha2VzIGVmZmVjdCBhbG9uZ3NpZGUgdGhlIHRoZSBhc3luYyBmbGlwDQo+IMKg IG9yIGlzIGl0IHN0aWxsIHVzaW5nIGEgcHJldmlvdXNseSBsYXRjaGVkIGRpcnR5IHJlY3Q/DQo+ IA0KPiAoKikgaWUuIG9uZSB0aGF0IHdhcyB3cml0dGVuIGludG8gdGhlIHJlZ2lzdGVyIGp1c3Qg YmVmb3JlDQo+IMKgwqDCoCB0aGUgc3VyZmFjZSByZWdpc3RlciB3cml0ZSwgd2l0aG91dCB0aGVy ZSBiZWluZyBhIHN0YXJ0DQo+IMKgwqDCoCBvZiB2YmxhbmsgaW4gYmV0d2VlbiB0aGUgdHdvIHdy aXRlcw0KPiANCj4gU2hvdWxkIGJlIGVhc3kgdG8gY29uZmlybSB3aXRoIHNvbWV0aGluZyBsaWtl Og0KPiAxLiBzZXQgdXAgYSBmcmFtZWJ1ZmZlciB3aXRoIHNvbWUgY29sb3INCj4gMi4gc2NhbiBv dXQgZnJvbSBzYWlkIGZyYW1lYnVmZmVyDQo+IDMuIHdyaXRlIHRoZSBkaXJ0eSByZWN0IHJlZ2lz dGVyIHdpdGggc29tZSBzbWFsbCBhcmVhIG9mIHRoZSBzY3JlZW4NCj4gNC4gd3JpdGUgU1VSRiB0 byB0cmlnZ2VyIGEgc3luYyBmbGlwDQo+IDUuIHdhaXQgZm9yIHZibGFuaw0KPiA2LiByZXdyaXRl IHRoZSBmYiB3aXRoIHNvbWUgb3RoZXIgY29sb3INCj4gNy4gc2V0IHRoZSBhc3luYyBmbGlwIGJp dCBvbiBQTEFORV9DVEwNCj4gOC4gcmVhZCB0aGUgZnJhbWUgY291bnRlcg0KPiA5LiB3cml0ZSB0 aGUgZGlydHkgcmVjdCByZWdpc3RlciB3aXRoIHNvbWUgb3RoZXIgc21hbGwgYXJlYQ0KPiAxMC4g d3JpdGUgU1VSRiB0byB0cmlnZ2VyIGFuIGFzeW5jIGZsaXANCj4gMTEuIHJlLXJlYWQgZnJhbWUg Y291bnRlciBhbmQgY29uZmlybSBpdCBpcyBzdGlsbCB0aGUgc2FtZSB2YWx1ZQ0KPiDCoMKgwqAg YXMgaW4gc3RlcCA4Lg0KPiAxMi4gb2JzZXJ2ZSB2aXN1YWxseSB3aGljaCBhcmVhIG9mIHRoZSBz Y3JlZW4gY2hhbmdlZA0KPiANCj4gVGhhdCBzaG91bGQgYXQgbGVhc3QgdGVsbCB1cyB3aGV0aGVy IHRoZSBuZXcgZGlydHkgcmVjdCBnZXRzIGxhdGNoZWQgZHVlDQo+IHRvIGFuIGFzeW5jIGZsaXAg b3Igbm90LCBhbmQgd2hldGhlciB3ZSBnZXQgYSBmdWxsIG51a2Ugb3Igbm90Lg0KPiANCj4gQW5k IGlmIHRoZSBuZXcgZGlydHkgcmVjdCBkb2VzIGdldCBsYXRjaGVkIEkgc3VwcG9zZSB3ZSBjYW4g dGhlbg0KPiByaW5zZSBhbiByZXBlYXQgdGhpc8KgIHdpdGggYSBmdWxsIHNjcmVlbiBkaXJ0eSBy ZWN0YW5nbGUsIGFuZCB0aGVuDQo+IHdlIHNob3VsZCBiZSBhYmxlIHRvIHRlbGwgd2hldGhlciB0 aGUgZGlydHkgcmVjdCBnZXRzIGxhdGNoZWQgYWxvbmdzaWRlDQo+IFNVUkYgZHVyaW5nIHRoZSBh c3luYyBmbGlwICh0ZWFyaW5nIHNob3VsZCBiZSB2aXNpYmxlKSwgb3IgaWYgaXQgZ2V0cw0KPiBk ZWxheWVkIHVudGlsIHRoZSBuZXh0IHZibGFuayAobm8gdGVhcmluZyBzaG91bGQgYmUgdmlzaWJs ZSwgYXNzdW1pbmcNCj4gdGhlIGVudGlyZSBmYiBkaWQgZ2V0IGNvbXByZXNzZWQsIHdoaWNoIHNo b3VsZCBob3BlZnVsbHkgYmUgdGhlIGNhc2UNCj4gZm9yIGEgc29saWQgY29sb3IgZmIpLg0KPiAN Cj4gwqA+IA0KPiA+ID4gPiDCoAkJaW50ZWxfY3J0Y19wbGFuZXNfdXBkYXRlX2FybShOVUxMLCBz dGF0ZSwgY3J0Yyk7DQo+ID4gPiA+IMKgDQo+ID4gPiA+IMKgCQljb21taXRfcGlwZV9wb3N0X3Bs YW5lcyhzdGF0ZSwgY3J0Yyk7DQo+ID4gPiA+IEBAIC03NzIzLDYgKzc3MjUsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9hdG9taWNfZHNiX2ZpbmlzaChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwNCj4gPiA+ID4gwqAJCQkJCQkgbmV3X2NydGNfc3RhdGUpOw0KPiA+ID4gPiDCoAkJaW50 ZWxfY3J0Y19wbGFuZXNfdXBkYXRlX25vYXJtKG5ld19jcnRjX3N0YXRlLT5kc2JfY29tbWl0LA0K PiA+ID4gPiDCoAkJCQkJwqDCoMKgwqDCoMKgIHN0YXRlLCBjcnRjKTsNCj4gPiA+ID4gKwkJaW50 ZWxfZmJjX2RpcnR5X3JlY3RfdXBkYXRlX25vYXJtKG5ld19jcnRjX3N0YXRlLT5kc2JfY29tbWl0 LA0KPiA+ID4gPiArCQkJCQkJwqAgc3RhdGUsIGNydGMpOw0KPiA+ID4gPiDCoA0KPiA+ID4gPiDC oAkJaW50ZWxfZHNiX3ZibGFua19ldmFkZShzdGF0ZSwgbmV3X2NydGNfc3RhdGUtPmRzYl9jb21t aXQpOw0KPiA+ID4gPiDCoA0KPiA+ID4gPiBAQCAtNzc2OSw2ICs3NzczLDkgQEAgc3RhdGljIHZv aWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlKQ0KPiA+ID4gPiDCoA0KPiA+ID4gPiDCoAlpbnRlbF9hdG9taWNfcHJlcGFyZV9wbGFuZV9j bGVhcl9jb2xvcnMoc3RhdGUpOw0KPiA+ID4gPiDCoA0KPiA+ID4gPiArCWZvcl9lYWNoX25ld19p bnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkNCj4gPiA+ ID4gKwkJaW50ZWxfZmJjX3ByZXBhcmVfZGlydHlfcmVjdChzdGF0ZSwgY3J0Yyk7DQo+ID4gPiA+ ICsNCj4gPiA+ID4gwqAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNy dGMsIG5ld19jcnRjX3N0YXRlLCBpKQ0KPiA+ID4gPiDCoAkJaW50ZWxfYXRvbWljX2RzYl9maW5p c2goc3RhdGUsIGNydGMpOw0KPiA+ID4gPiDCoA0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYw0KPiA+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMNCj4gPiA+ID4gaW5kZXggZGYwNTkwNGJhYzhh Li4yNDczNmM3YTc5YTYgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZmJjLmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9mYmMuYw0KPiA+ID4gPiBAQCAtODgsNiArODgsMTAgQEAgc3RydWN0IGlu dGVsX2ZiY19zdGF0ZSB7DQo+ID4gPiA+IMKgCXUxNiBvdmVycmlkZV9jZmJfc3RyaWRlOw0KPiA+ ID4gPiDCoAl1MTYgaW50ZXJ2YWw7DQo+ID4gPiA+IMKgCXM4IGZlbmNlX2lkOw0KPiA+ID4gPiAr CXN0cnVjdCB7DQo+ID4gPiA+ICsJCXN0cnVjdCBkcm1fcmVjdCByZWN0Ow0KPiA+ID4gPiArCQli b29sIHZhbGlkOw0KPiA+ID4gPiArCX0gZmJjX2RpcnR5X3JlY3Q7DQo+ID4gPiA+IMKgfTsNCj4g PiA+ID4gwqANCj4gPiA+ID4gwqBzdHJ1Y3QgaW50ZWxfZmJjIHsNCj4gPiA+ID4gQEAgLTUyNyw2 ICs1MzEsOSBAQCBzdGF0aWMgdm9pZCBpbGtfZmJjX2RlYWN0aXZhdGUoc3RydWN0IGludGVsX2Zi YyAqZmJjKQ0KPiA+ID4gPiDCoAlzdHJ1Y3QgaW50ZWxfZGlzcGxheSAqZGlzcGxheSA9IGZiYy0+ ZGlzcGxheTsNCj4gPiA+ID4gwqAJdTMyIGRwZmNfY3RsOw0KPiA+ID4gPiDCoA0KPiA+ID4gPiAr CWlmIChIQVNfRkJDX0RJUlRZX1JFQ1QoZGlzcGxheSkpDQo+ID4gPiA+ICsJCWludGVsX2RlX3dy aXRlKGRpc3BsYXksIFhFM19GQkNfRElSVFlfQ1RMKGZiYy0+aWQpLCAwKTsNCj4gPiA+ID4gKw0K PiA+ID4gPiDCoAkvKiBEaXNhYmxlIGNvbXByZXNzaW9uICovDQo+ID4gPiA+IMKgCWRwZmNfY3Rs ID0gaW50ZWxfZGVfcmVhZChkaXNwbGF5LCBJTEtfRFBGQ19DT05UUk9MKGZiYy0+aWQpKTsNCj4g PiA+ID4gwqAJaWYgKGRwZmNfY3RsICYgRFBGQ19DVExfRU4pIHsNCj4gPiA+ID4gQEAgLTY3MCw2 ICs2NzcsMTAgQEAgc3RhdGljIHZvaWQgaXZiX2ZiY19hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZmJj ICpmYmMpDQo+ID4gPiA+IMKgCWlmIChESVNQTEFZX1ZFUihkaXNwbGF5KSA+PSAyMCkNCj4gPiA+ ID4gwqAJCWludGVsX2RlX3dyaXRlKGRpc3BsYXksIElMS19EUEZDX0NPTlRST0woZmJjLT5pZCks IGRwZmNfY3RsKTsNCj4gPiA+ID4gwqANCj4gPiA+ID4gKwlpZiAoSEFTX0ZCQ19ESVJUWV9SRUNU KGRpc3BsYXkpKQ0KPiA+ID4gPiArCQlpbnRlbF9kZV93cml0ZShkaXNwbGF5LCBYRTNfRkJDX0RJ UlRZX0NUTChmYmMtPmlkKSwNCj4gPiA+ID4gKwkJCcKgwqDCoMKgwqDCoCBGQkNfRElSVFlfUkVD VF9FTik7DQo+ID4gPiA+ICsNCj4gPiA+ID4gwqAJaW50ZWxfZGVfd3JpdGUoZGlzcGxheSwgSUxL X0RQRkNfQ09OVFJPTChmYmMtPmlkKSwNCj4gPiA+ID4gwqAJCcKgwqDCoMKgwqDCoCBEUEZDX0NU TF9FTiB8IGRwZmNfY3RsKTsNCj4gPiA+ID4gwqB9DQo+ID4gPiA+IEBAIC0xMjAzLDYgKzEyMTQs MTI3IEBAIHN0YXRpYyBib29sIHRpbGluZ19pc192YWxpZChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUNCj4gPiA+ID4gKnBsYW5lX3N0YXRlKQ0KPiA+ID4gPiDCoAkJcmV0dXJuIGk4eHhf ZmJjX3RpbGluZ192YWxpZChwbGFuZV9zdGF0ZSk7DQo+ID4gPiA+IMKgfQ0KPiA+ID4gPiDCoA0K PiA+ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9mbGlwX251a2Uoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+ID4gPiA+ICsJCQkJwqDCoMKgIHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLA0KPiA+ID4gPiArCQkJCcKgwqDCoCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l KTsNCj4gPiA+IA0KPiA+ID4gWW91IHNob3VsZCBwdXQgdGhlIGNvZGUgaW50byBhIHBsYWNlIHRo YXQgZG9lc24ndCBuZWVkIHRoaXMgZXh0cmENCj4gPiA+IGRlY2xhcmF0aW9uLg0KPiA+ID4gDQo+ ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyB2b2lkDQo+ID4gPiA+ICtpbnRlbF9mYmNfZGlydHlf cmVjdF91cGRhdGUoc3RydWN0IGludGVsX2RzYiAqZHNiLCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lKQ0KPiA+ID4gPiArew0KPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9kaXNwbGF5ICpkaXNwbGF5 ID0gdG9faW50ZWxfZGlzcGxheShwbGFuZSk7DQo+ID4gPiA+ICsJc3RydWN0IGludGVsX2ZiYyAq ZmJjID0gcGxhbmUtPmZiYzsNCj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZmJjX3N0YXRlICpmYmNf c3RhdGUgPSAmZmJjLT5zdGF0ZTsNCj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX3JlY3QgKmZiY19kaXJ0 eV9yZWN0ID0gJmZiY19zdGF0ZS0+ZmJjX2RpcnR5X3JlY3QucmVjdDsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArCWlmIChmYmNfc3RhdGUtPnBsYW5lICE9IHBsYW5lKQ0KPiA+ID4gPiArCQlyZXR1cm47 DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlpZiAoIWZiY19zdGF0ZS0+ZmJjX2RpcnR5X3JlY3QudmFs aWQpDQo+ID4gPiA+ICsJCXJldHVybjsNCj4gPiA+IA0KPiA+ID4gSSB0aGluayB0aGF0IGV4dHJh IGZsYWcgY2FuIGJlIHRocm93biBvdXQgYW5kIHlvdSBjYW4ganVzdA0KPiA+ID4gY2hlY2sgaWYg dGhlIHJlY3QgaXMgdmlzaWJsZSBoZXJlLg0KDQpIQVMgcmVjb21tZW5kcyB0byBwcm9ncmFtIG9u ZSBsaW5lIGluIGNhc2UgZGFtYWdlIGFyZWEgcmVjdCBpcyBub3QgdmlzaWJsZSEgU28gbm90IHN1 cmUgaG93IGNhbiB3ZQ0KdXNlIHJlY3QgaXMgdmlzaWJsZSBoZXJlLg0KDQpFYXJsaWVyIGluIG91 ciBkaXNjdXNzaW9ucywgeW91IG1lbnRpb25lZCB3ZSBtaWdodCBuZWVkIHRvIGNoZWNrICJpbnRl bF9mYmNfY2FuX2ZsaXBfbnVrZSgpIiBiZWZvcmUNCnVwZGF0aW5nIHRoZSBkaXJ0eV9yZWN0LiBT byB0aGF0IGV4dHJhIGZsYWcgd2FzIG1haW5seSB0cmFja2luZyBpbnRlbF9mYmNfY2FuX2ZsaXBf bnVrZSgpIQ0KDQpJIHNlZSBtYWlubHkgdHdvIGNhc2VzIHdoZXJlICJpbnRlbF9mYmNfY2FuX2Zs aXBfbnVrZSIgY2FuIGhhdmUgYSBpbXBhY3QgLSBhdCB0aGUgdGltZSBvZiBlbmFibGluZw0KRkJD IGFuZCBkaXNhYmxpbmcgRkJDLiBJbiBjYXNlIG9mIGVuYWJsaW5nIEZCQywgSFcgaWdub3JlcyB3 aGF0IGlzIHByb2dyYW1tZWQgaW4gZGlydHkgcmVjdA0KcmVnaXN0ZXJzIGZvciB0aGUgZmlyc3Qg ZnJhbWUgYWZ0ZXIgRkJDIGlzIGVuYWJsZWQuIEl0IGZldGNoZXMgdGhlIGVudGlyZSBmcmFtZS4g QW5kIGluIGNhc2Ugb2YNCkRpc2FibGluZyBGQkMsIGFueXdheSBkaXJ0eSByZWN0IHJlZ2lzdGVy cyB3aWxsIGJlIGlnbm9yZWQgYXMgRkJDIHdpbGwgYmUgZGlzYWJsZWQuIA0KDQpJbiBpbnRlbF9m YmNfcHJlcGFyZV9kaXJ0eV9yZWN0KCkgd2hpY2ggaXMgY2FsbGVkIGZyb20gY29tbWl0IHRhaWwu Lg0KDQogaWYgKGZiYyAmJiBwbGFuZS0+cGlwZSA9PSBjcnRjLT5waXBlICYmIGZiYy0+c3RhdGUu cGxhbmUgIT0gcGxhbmUpIHsNCglmYmNfZGlydHlfcmVjdC0+eTEgPSBkcm1fcmVjdF92aXNpYmxl KGRhbWFnZSkgPyBkYW1hZ2UtPnkxIDogeV9vZmZzZXQ7DQoJZmJjX2RpcnR5X3JlY3QtPnkyID0g ZHJtX3JlY3RfdmlzaWJsZShkYW1hZ2UpID8gZGFtYWdlLT55MiA6IHlfb2Zmc2V0Ow0KCWZiY19k aXJ0eV9yZWN0LT54MSA9IGRhbWFnZS0+eDE7DQoJZmJjX2RpcnR5X3JlY3QtPngyID0gZGFtYWdl LT54MjsNCn0NCg0KQW5kIGluIGludGVsX2ZiY19kaXJ0eV9yZWN0X3VwZGF0ZV9ub2FybSgpIHdo aWNoIGlzIGNhbGxlZCBmcm9tIGludGVsX3BsYW5lX3VwZGF0ZV9ub2FybSgpDQoNCmlmIChmYmMg JiYgZmJjLT5zdGF0ZS5wbGFuZSAhPSBwbGFuZSkgew0KCWludGVsX2RlX3dyaXRlX2RzYihkaXNw bGF5LCBkc2IsIFhFM19GQkNfRElSVFlfUkVDVChmYmMtPmlkKSwNCgkJCSAgIEZCQ19ESVJUWV9S RUNUX1NUQVJUX0xJTkUoZmJjX2RpcnR5X3JlY3QtPnkxKSB8DQoJCQkgICBGQkNfRElSVFlfUkVD VF9FTkRfTElORShmYmNfZGlydHlfcmVjdC0+eTIpKTsNCn0NCg0KPiA+ID4gPiArDQo+ID4gPiA+ ICsJaW50ZWxfZGVfd3JpdGVfZHNiKGRpc3BsYXksIGRzYiwgWEUzX0ZCQ19ESVJUWV9SRUNUKGZi Yy0+aWQpLA0KPiA+ID4gPiArCQkJwqDCoCBGQkNfRElSVFlfUkVDVF9TVEFSVF9MSU5FKGZiY19k aXJ0eV9yZWN0LT55MSkgfA0KPiA+ID4gPiArCQkJwqDCoCBGQkNfRElSVFlfUkVDVF9FTkRfTElO RShmYmNfZGlydHlfcmVjdC0+eTIpKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCWZiY19zdGF0ZS0+ ZmJjX2RpcnR5X3JlY3QudmFsaWQgPSBmYWxzZTsNCj4gPiA+IA0KPiA+ID4gV2h5Pw0KPiA+ID4g DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3ZvaWQNCj4gPiA+ID4gK2ludGVsX2Zi Y19kaXJ0eV9yZWN0X3VwZGF0ZV9ub2FybShzdHJ1Y3QgaW50ZWxfZHNiICpkc2IsDQo+ID4gPiA+ ICsJCQkJwqAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+ID4gPiA+ICsJCQkJ wqAgc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsJc3RydWN0 IGludGVsX2Rpc3BsYXkgKmRpc3BsYXkgPSB0b19pbnRlbF9kaXNwbGF5KHN0YXRlKTsNCj4gPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOw0KPiA+ID4gDQo+ID4g PiBjb25zdCwgYWx0aG91Z2ggaXQgc2VlbXMgdG8gbWUgd2UgY2FuIGp1c3QgcmVseSBvbiB0aGUg cmVjdCBiZWluZyB2YWxpZA0KPiA+ID4gb3Igbm90IGFuZCB0aGVuIHRoZSBwbGFuZSB2aXNpYmxp bGl0eSBpcyBhbHNvIGFscmVhZHkgY292ZXJlZC4NCj4gPiA+IA0KPiA+ID4gPiArCXN0cnVjdCBp bnRlbF9wbGFuZSAqcGxhbmU7DQo+ID4gPiA+ICsJaW50IGk7DQo+ID4gPiA+ICsNCj4gPiA+ID4g KwlpZiAoIUhBU19GQkNfRElSVFlfUkVDVChkaXNwbGF5KSkNCj4gPiA+ID4gKwkJcmV0dXJuOw0K PiA+ID4gPiArDQo+ID4gPiA+ICsJZm9yX2VhY2hfbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsNCj4gPiA+ID4gKwkJc3RydWN0IGludGVsX2Zi YyAqZmJjID0gcGxhbmUtPmZiYzsNCj4gPiA+ID4gKw0KPiA+ID4gPiArCQlpZiAoIWZiYyB8fCBw bGFuZS0+cGlwZSAhPSBjcnRjLT5waXBlKQ0KPiA+ID4gPiArCQkJY29udGludWU7DQo+ID4gPiA+ ICsNCj4gPiA+ID4gKwkJaWYgKCFwbGFuZV9zdGF0ZS0+dWFwaS52aXNpYmxlKQ0KPiA+ID4gPiAr CQkJY29udGludWU7DQo+ID4gPiANCj4gPiA+IFRoYXQgY2hlY2sgd291bGQgYWxzbyBkaXNhcHBl YXIuDQo+ID4gPiANCj4gPiA+IFRoaXMgZG9lcyBuZWVkIHRvIGNoZWNrIGlmIHRoZSBwbGFuZSBp cyB0aGUgb25lIHVzaW5nIEZCQw0KPiA+ID4gY3VycmVudGx5LiBPaCwgSSBzZWUgeW91IHB1dCB0 aGF0IGNoZWNrIGluc2lkZQ0KPiA+ID4gaW50ZWxfZmJjX2RpcnR5X3JlY3RfdXBkYXRlKCkuIEkg dGhpbmsgdGhlIGNoZWNrIGJlbG9uZ3MNCj4gPiA+IGhlcmUgYmVjYXVzZSB0aGF0IGlzIGhvdyB3 ZSBkbyBpdCBldmVyd2hlcmUgZWxzZS4NCj4gPiA+IA0KPiA+ID4gSSB3YXMgcG9uZGVyaW5nIGlm IHdlIG5lZWQgdG8ga2VlcCB0aGlzIGxvY2tsZXNzIG9yIG5vdC4NCj4gPiA+IEkgZ3Vlc3Mgd2Ug ZG9uJ3Qgc2luY2Ugd2UgYXJlIGRvaW5nIGl0IGZyb20gdGhlIG5vYXJtKCkNCj4gPiA+IHNlY3Rp b24gKGFzc3VtaW5nIHdlJ3JlIG5vdCBwbGFuaW5nIHRvIGltcGxlbWVudCBtYWlsYm94DQo+ID4g PiBmbGlwcyB0b21vcnJvdykuIFNvIGZvciBub3cgSSB0aGluayB3ZSBjYW4ganVzdCBkbyB0aGUg cHJvcGVyDQo+ID4gPiBsb2NraW5nIGhlcmUgdG9vLiBJZiB3ZSBkbyBuZWVkIHRvIG1ha2UgdGhp cyBsb2NrbGVzcyBpbg0KPiA+ID4gdGhlbiB3ZSBuZWVkIHRvIGV4cGxhaW4gd2hhdCBtYWtlcyBp dCBzYWZlL2NvcnJlY3QuDQo+ID4gPiANCj4gPiA+ID4gKw0KPiA+ID4gPiArCQlpbnRlbF9mYmNf ZGlydHlfcmVjdF91cGRhdGUoZHNiLCBwbGFuZSk7DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiArfQ0K PiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMgdm9pZA0KPiA+ID4gPiArdmFsaWRhdGVfYW5kX2Ns aXBfZGlydHlfcmVjdChzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLA0KPiA+ ID4gPiArCQkJwqDCoMKgwqAgc3RydWN0IGRybV9yZWN0ICpkaXJ0eV9yZWN0KQ0KPiA+ID4gPiAr ew0KPiA+ID4gPiArCWludCB5X29mZnNldCA9IHBsYW5lX3N0YXRlLT52aWV3LmNvbG9yX3BsYW5l WzBdLnk7DQo+ID4gPiA+ICsJaW50IHBsYW5lX2hlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmcGxh bmVfc3RhdGUtPnVhcGkuc3JjKSA+PiAxNjsNCj4gPiA+ID4gKwlpbnQgbWF4X2VuZGxpbmUgPSB5 X29mZnNldCArIHBsYW5lX2hlaWdodCAtIDE7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlkaXJ0eV9y ZWN0LT55MSA9IGNsYW1wKGRpcnR5X3JlY3QtPnkxLCB5X29mZnNldCwgbWF4X2VuZGxpbmUpOw0K PiA+ID4gPiArCWRpcnR5X3JlY3QtPnkyID0gY2xhbXAoZGlydHlfcmVjdC0+eTIsIGRpcnR5X3Jl Y3QtPnkxLCBtYXhfZW5kbGluZSk7DQo+ID4gPiA+ICt9DQo+ID4gPiANCj4gPiA+IFRoaXMgaXMg bm90IG5lZWRlZC4NCg0KQnV0IEkgbm90aWNlZCB0aGF0IGZyb20gb25lIG9mIHRoZSB0ZXN0IGNh c2VzIGNyZWF0ZWQsIGlmIHRoZSBkYW1hZ2UgYXJlYSBzZXQgYXMgKDAsIDApDQoocGxhbmVfd2lk dGgsIHBsYW5lX2hlaWdodCksIHdpdGhvdXQgdGhhdCBjbGlwcGluZywgd2Ugd2lsbCBzZXTCoA0K ZGlydHlfcmVjdC0+eTEgPSAwIGFuZCBkaXJ0eV9yZWN0LT55MiA9IGhlaWdodC7CoA0KV2l0aCB0 aGlzIHNjcmVlbiBpcyBub3QgdXBkYXRlZCBjb3JyZWN0bHkuDQpUbyBnZXQgdGhpcyB3b3JraW5n IGNvcnJlY3RseSBJIGhhZCB0byBtYWtlIGRpcnR5X3JlY3QtPnkyIGFzIHBsYW5lX2hlaWdodCAt MS4NCg0KV29uZGVyIGlmIEkgYW0gSSBtaXNzaW5nIGFueXRoaW5nIGhlcmU/DQoNCkJSDQpWaW5v ZA0KDQo+ID4gPiANCj4gPiA+ID4gKw0KPiA+ID4gPiArc3RhdGljIHZvaWQNCj4gPiA+ID4gK19f aW50ZWxfZmJjX3ByZXBhcmVfZGlydHlfcmVjdChzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLA0K PiA+ID4gPiArCQkJwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGUsDQo+ID4gPiA+ICsJCQnCoMKgwqDCoMKgwqAgYm9vbCBmYmNfZGlydHlfcmVjdF92YWxp ZCkNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZmJjX3N0YXRlICpmYmNfc3Rh dGUgPSAmcGxhbmUtPmZiYy0+c3RhdGU7DQo+ID4gPiA+ICsJc3RydWN0IGRybV9yZWN0ICpmYmNf ZGlydHlfcmVjdCA9ICZmYmNfc3RhdGUtPmZiY19kaXJ0eV9yZWN0LnJlY3Q7DQo+ID4gPiA+ICsJ c3RydWN0IGRybV9yZWN0ICpkYW1hZ2VfbWVyZ2VkID0gJnBsYW5lX3N0YXRlLT5kYW1hZ2VfbWVy Z2VkOw0KPiA+ID4gPiArCWludCB5X29mZnNldCA9IHBsYW5lX3N0YXRlLT52aWV3LmNvbG9yX3Bs YW5lWzBdLnk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlmYmNfc3RhdGUtPmZiY19kaXJ0eV9yZWN0 LnZhbGlkID0gZmJjX2RpcnR5X3JlY3RfdmFsaWQ7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwlpZiAo ZHJtX3JlY3RfdmlzaWJsZShkYW1hZ2VfbWVyZ2VkKSkgew0KPiA+ID4gPiArCQlmYmNfZGlydHlf cmVjdC0+eTEgPSBkYW1hZ2VfbWVyZ2VkLT55MTsNCj4gPiA+ID4gKwkJZmJjX2RpcnR5X3JlY3Qt PnkyID0gZGFtYWdlX21lcmdlZC0+eTI7DQo+ID4gPiA+ICsJfSBlbHNlIHsNCj4gPiA+ID4gKwkJ LyogSWYgbm90IHZpc2libGUsIHdlIG5lZWQgdG8gc2V0IG9uZSBzaW5nbGUgbGluZSAqLw0KPiA+ ID4gPiArCQlmYmNfZGlydHlfcmVjdC0+eTEgPSB5X29mZnNldDsNCj4gPiA+ID4gKwkJZmJjX2Rp cnR5X3JlY3QtPnkyID0geV9vZmZzZXQ7DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiArCWZiY19kaXJ0 eV9yZWN0LT54MSA9IGRhbWFnZV9tZXJnZWQtPngxOw0KPiA+ID4gPiArCWZiY19kaXJ0eV9yZWN0 LT54MiA9IGRhbWFnZV9tZXJnZWQtPngyOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJdmFsaWRhdGVf YW5kX2NsaXBfZGlydHlfcmVjdChwbGFuZV9zdGF0ZSwgZmJjX2RpcnR5X3JlY3QpOw0KPiA+ID4g PiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICt2b2lkDQo+ID4gPiA+ICtpbnRlbF9mYmNfcHJlcGFy ZV9kaXJ0eV9yZWN0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiA+ID4gPiAr CQkJwqDCoMKgwqAgc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ ICsJc3RydWN0IGludGVsX2Rpc3BsYXkgKmRpc3BsYXkgPSB0b19pbnRlbF9kaXNwbGF5KHN0YXRl KTsNCj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOw0KPiA+ ID4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7DQo+ID4gPiA+ICsJaW50IGk7DQo+ID4g PiA+ICsNCj4gPiA+ID4gKwlpZiAoIUhBU19GQkNfRElSVFlfUkVDVChkaXNwbGF5KSkNCj4gPiA+ ID4gKwkJcmV0dXJuOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsJZm9yX2VhY2hfbmV3X2ludGVsX3Bs YW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsNCj4gPiA+ID4gKwkJ c3RydWN0IGludGVsX2ZiYyAqZmJjID0gcGxhbmUtPmZiYzsNCj4gPiA+ID4gKw0KPiA+ID4gPiAr CQlpZiAoIWZiYyB8fCBwbGFuZS0+cGlwZSAhPSBjcnRjLT5waXBlKQ0KPiA+ID4gPiArCQkJY29u dGludWU7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKwkJaWYgKCFmYmMtPnN0YXRlLnBsYW5lKQ0KPiA+ ID4gPiArCQkJY29udGludWU7DQo+ID4gPiANCj4gPiA+IGZiYy0+c3RhdGUucGxhbmUgIT0gcGxh bmUNCj4gPiA+IA0KPiA+ID4gQWxzbyBuZWVkcyBsb2NraW5nLg0KPiA+ID4gDQo+ID4gPiA+ICsN Cj4gPiA+ID4gKwkJLyogSWYgcGxhbmUgbm90IHZpc2libGUsIGRpcnR5IHJlY3QgbWlnaHQgaGF2 ZSBpbnZhbGlkIGNvb3JkaW5hdGVzICovDQo+ID4gPiA+ICsJCWlmICghcGxhbmVfc3RhdGUtPnVh cGkudmlzaWJsZSkNCj4gPiA+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ID4gDQo+ID4gPiBTZWVtcyBs aWtlIGEgcmVkdW5kYW50IGNoZWNrLg0KPiA+ID4gDQo+ID4gPiA+ICsNCj4gPiA+ID4gKwkJX19p bnRlbF9mYmNfcHJlcGFyZV9kaXJ0eV9yZWN0KHBsYW5lLCBwbGFuZV9zdGF0ZSwNCj4gPiA+ID4g KwkJCQkJwqDCoMKgwqDCoMKgIGludGVsX2ZiY19jYW5fZmxpcF9udWtlKHN0YXRlLA0KPiA+ID4g PiArCQkJCQkJCQnCoMKgwqDCoMKgwqAgY3J0YywNCj4gPiA+ID4gKwkJCQkJCQkJwqDCoMKgwqDC oMKgIHBsYW5lKSk7DQo+ID4gPiA+ICsJfQ0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ IMKgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwNCj4gPiA+ID4gwqAJCQkJwqDCoCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywNCj4gPiA+ID4gwqAJCQkJwqDCoCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQ0KPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuaA0K PiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmgNCj4gPiA+ ID4gaW5kZXggY2VhZTU1NDU4ZTE0Li44ZjFiMTFjNmY0ZDIgMTAwNjQ0DQo+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmgNCj4gPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuaA0KPiA+ID4gPiBAQCAtMTQs NiArMTQsNyBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlOw0KPiA+ID4gPiDCoHN0cnVjdCBp bnRlbF9jcnRjOw0KPiA+ID4gPiDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOw0KPiA+ID4gPiDC oHN0cnVjdCBpbnRlbF9kaXNwbGF5Ow0KPiA+ID4gPiArc3RydWN0IGludGVsX2RzYjsNCj4gPiA+ ID4gwqBzdHJ1Y3QgaW50ZWxfZmJjOw0KPiA+ID4gPiDCoHN0cnVjdCBpbnRlbF9wbGFuZTsNCj4g PiA+ID4gwqBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGU7DQo+ID4gPiA+IEBAIC00OCw1ICs0OSwx MCBAQCB2b2lkIGludGVsX2ZiY19oYW5kbGVfZmlmb191bmRlcnJ1bl9pcnEoc3RydWN0IGludGVs X2Rpc3BsYXkgKmRpc3BsYXkpOw0KPiA+ID4gPiDCoHZvaWQgaW50ZWxfZmJjX3Jlc2V0X3VuZGVy cnVuKHN0cnVjdCBpbnRlbF9kaXNwbGF5ICpkaXNwbGF5KTsNCj4gPiA+ID4gwqB2b2lkIGludGVs X2ZiY19jcnRjX2RlYnVnZnNfYWRkKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsNCj4gPiA+ID4g wqB2b2lkIGludGVsX2ZiY19kZWJ1Z2ZzX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9kaXNwbGF5ICpk aXNwbGF5KTsNCj4gPiA+ID4gK3ZvaWQgaW50ZWxfZmJjX3ByZXBhcmVfZGlydHlfcmVjdChzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwNCj4gPiA+ID4gKwkJCQnCoCBzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0Yyk7DQo+ID4gPiA+ICt2b2lkIGludGVsX2ZiY19kaXJ0eV9yZWN0X3VwZGF0 ZV9ub2FybShzdHJ1Y3QgaW50ZWxfZHNiICpkc2IsDQo+ID4gPiA+ICsJCQkJwqDCoMKgwqDCoMKg IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiA+ID4gPiArCQkJCcKgwqDCoMKg wqDCoCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7DQo+ID4gPiA+IMKgDQo+ID4gPiA+IMKgI2Vu ZGlmIC8qIF9fSU5URUxfRkJDX0hfXyAqLw0KPiA+ID4gPiAtLSANCj4gPiA+ID4gMi40My4wDQo+ ID4gPiANCj4gPiANCj4gDQoNCg==