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 4CBF8CCF9E0 for ; Fri, 24 Oct 2025 18:35:20 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E7BC710E220; Fri, 24 Oct 2025 18:35:19 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="EId3QvVh"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id E21EE10E220 for ; Fri, 24 Oct 2025 18:35:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1761330918; x=1792866918; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=XmU1mzpGfzYJAJatDCG4WlenrhByciSDbCYV467G06o=; b=EId3QvVhZDsMXPMzRVC8ubNUk8dakHiyOuMP07NPE+yvtstCOJfzjyJb s9CYpt2tYjiWVpgUFSpY0ZjW8eiMty6bW3/uUW2RpH3mQ9S3bSOyn7VjU L6wJ+IVy3e7560Ks7NBXlgyjxVSv8NngH4RZC3aZBgXmcq9RsmNR78yAk uVuq3l41H976czphv8aaA5YEnU+0OpbCbKCcWfc3jixBzg3XSyYP9IP3f UXtJPtc8GiQARnIZZaepQvSNE8t7uzalkGbQMRyT7rYM+nDrv2dBIF6vh w2fySqlo9YNRnoZcz3gVVjQ5t13anE0JpQjPamuoIU5KWtV6C9Z0Snkzd Q==; X-CSE-ConnectionGUID: dOlyq/v1Q4Wc1dIlbFEJUw== X-CSE-MsgGUID: SVu2pWQQQROVgP6vRY2j8A== X-IronPort-AV: E=McAfee;i="6800,10657,11586"; a="74862621" X-IronPort-AV: E=Sophos;i="6.19,253,1754982000"; d="scan'208";a="74862621" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Oct 2025 11:35:17 -0700 X-CSE-ConnectionGUID: usERnps6TT2Y03wkMYt5lw== X-CSE-MsgGUID: pTa+20l4TcGSVAEQCkoLXw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,253,1754982000"; d="scan'208";a="188558139" Received: from fmsmsx902.amr.corp.intel.com ([10.18.126.91]) by orviesa003.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Oct 2025 11:35:17 -0700 Received: from FMSMSX903.amr.corp.intel.com (10.18.126.92) by fmsmsx902.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Fri, 24 Oct 2025 11:35:16 -0700 Received: from fmsedg903.ED.cps.intel.com (10.1.192.145) by FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27 via Frontend Transport; Fri, 24 Oct 2025 11:35:16 -0700 Received: from CY7PR03CU001.outbound.protection.outlook.com (40.93.198.23) by edgegateway.intel.com (192.55.55.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Fri, 24 Oct 2025 11:35:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pbx8uvRhcGqbeGM7jSDYGKDHWTYObgGxiQvk9emphWHX3MVW+niOt+A9K//RxzalfF06jmmZcRLiM0bf1Ayjpw+//NI2GOUdYXbgwP9xAqsnnE128fYx7brGN8AOmOF2pObulf3730LC4IZkqi2TBfz2MaSCQOodK/Fu+Y66TtP7lWU3EdWgkfe7DUgt+3BdOEOdHunpHm22rjZCjbwrMU7Ylx5ylpywmOX8AQXMWrlcoNA4QaMZNNqiXCxOj9p5ef0q4Eqk+Yko50fjfD4rkzmlLQbHy+bMpL4qKCG7hSjybPoOljN5ewuhqXlvJDOyyfrPMVEu1gn2kmTZ6/6bBQ== 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=XmU1mzpGfzYJAJatDCG4WlenrhByciSDbCYV467G06o=; b=b196xpS6lsyD8hNdP4Cv+o83j16CLlw9hx9DQjtq/6cgsOWslB+1mtxuKpqFYkH32Hjv6YZaxvm5Alm4mRip6lW+ylMonDJOJyy8lGWuH0qeiOjSTR5o6LVQX/GSbgOivMiU61HQQMOiFQEBri5a5VvrLpwJfwCJPSIpH7YMEW5/Q7rwdpBRWuwbejEekPDrINstQ84+zGrULgH8Jqg4UinVL4rYCToFpq31Du73JrfuEv5GH7owjAo9u1Q8i+bdAvVKrHDEEo/ujevx8VqOJKZ6mYTTn//iN58Gok3QGE48wYH3ZqzDBBqDQtF38+z3QGuYD+8Ce4ziPJafdrRDRw== 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 DM8PR11MB5573.namprd11.prod.outlook.com (2603:10b6:8:3b::7) by DS0PR11MB6422.namprd11.prod.outlook.com (2603:10b6:8:c6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.13; Fri, 24 Oct 2025 18:35:12 +0000 Received: from DM8PR11MB5573.namprd11.prod.outlook.com ([fe80::3f64:5280:3eb4:775b]) by DM8PR11MB5573.namprd11.prod.outlook.com ([fe80::3f64:5280:3eb4:775b%5]) with mapi id 15.20.9253.011; Fri, 24 Oct 2025 18:35:12 +0000 From: "Summers, Stuart" To: "intel-xe@lists.freedesktop.org" , "Brost, Matthew" CC: "Dugast, Francois" Subject: Re: [PATCH v2 1/7] drm/xe: Stub out new pagefault layer Thread-Topic: [PATCH v2 1/7] drm/xe: Stub out new pagefault layer Thread-Index: AQHcRRCkqG/K9OaCKEGYdTBjTH8RnLTRn7kA Date: Fri, 24 Oct 2025 18:35:12 +0000 Message-ID: <4ef590d14eccd4d962b3ab70338c597f05aec645.camel@intel.com> References: <20251024180414.1379284-1-matthew.brost@intel.com> <20251024180414.1379284-2-matthew.brost@intel.com> In-Reply-To: <20251024180414.1379284-2-matthew.brost@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 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: DM8PR11MB5573:EE_|DS0PR11MB6422:EE_ x-ms-office365-filtering-correlation-id: 779396c8-0a6d-47c0-fac0-08de132c1177 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?NS9WY3V6dGlueGFDOU5pRDVHUXdyRkNOTFlvbGtjbDBMNW4wOEtoTFNXcUNQ?= =?utf-8?B?c1N2V2dTMi81YXNhaUFaeTNrVXBwT3lqcXZ1MHNueVRRaWR5NEJ4a2RPNEo4?= =?utf-8?B?aTVNa2dGaU82NjllZk5aVjVkTHF2WWo3SlRFcVliUldLM1RoK1FTZk9YUU5K?= =?utf-8?B?NnBaM3FKVmpzSFNhSjlKSW1RT3hsL0ZKNThPRWlEMU1LTjMybUhLMnBqVzI3?= =?utf-8?B?U29QOXA1UXBVWTZoTTZ1aTMwbjNuT25RR3k0OUgyNElqckRxTzJSUVhTOVRZ?= =?utf-8?B?azBlY0RKMWFJQmhUQzZmc2RuOGo5d1ZxckVuemhOMEVGcHZqV1M5dXU0YVlk?= =?utf-8?B?eUUxUHBYWXZJOTltYXRGdk9qcU0weDJMSUZBSEtncEFZV3A0MXBwUEFacXBu?= =?utf-8?B?cUtpbHF2Y1RqYlFwemtNQXhYd1lkV1hQL1kxZUROOUZNZmJqbDFPVmFzYklj?= =?utf-8?B?RjdIaE1lU3ppZnRVUGFiUFB1Vk5CZm5OVCtMWEg3clFHSU9kcDVwU1RzR0Fs?= =?utf-8?B?MjhTQTdTenAyU1c2Q0gwY1NOOVJCNm94OHIwa3NNWmwzR2FmM2JYSWRjbis1?= =?utf-8?B?cXlwb0oyTjY5enE0Q0xvQ243WWRYeGlHZGFkUDhPcEVvczJmRDdnbmZkWFBr?= =?utf-8?B?OTZSUWh1dFhZaVVYY21UNGt3L3pOaThodDkrL0E4d1RBWEIwWGRjeGFtU1Br?= =?utf-8?B?OWU0Z3lzMVFqK1YvMmZvTzVyektLUlVDcWtaejdHekNRVXJoUGNCbXRkMkh6?= =?utf-8?B?dk5FTnJuRVdFak5ZdnYrZlNBWGdYV0d6ekVOVjFGcnk3RGl4cnp2ZWxkUTdV?= =?utf-8?B?ak9ZQTFWTDM2bWpFaStPZDM5a0ExclNKZlNINDBBL1J1MDV1RW9Nek9BeGhQ?= =?utf-8?B?NXYvazRyem45V3ovRjU3d29tK2UzbWJSc25lQnBHSEMrUnk1QVF4MEFMTUti?= =?utf-8?B?VHpaODdVK21WOHRJOVRaMTltTTJLVElmV2Z0ZVFpVmhqd0JwYVdvQWRvanFl?= =?utf-8?B?RG5YQ1FwbHlHbG45aG9zRG5xQlpyRHEzTjgyNlNVWEMvVkM1TUN4S0JCYllQ?= =?utf-8?B?RllmYmlyQUF4RFRCT1VvWVhIMjAzb1JvNG5HbjBmdDlBSlo4WG9hZStYclJh?= =?utf-8?B?Mlg0N1crSFFobjdkdXB4bUw3ZjJic0ZuTEFXU0lUSWlzOU1USW5xcFB1VkVY?= =?utf-8?B?VDlaNkExcXNYSjBTeXpSWTNkalIzUy9VdW5vd3ZKa1plRjZXRUdHYmlOWE5D?= =?utf-8?B?S3puVG9BMHQ3amVQSDF5V3R0aEw5b25maW90OG5YbzFoY2VJbVpsWlN1L01W?= =?utf-8?B?ek1yOWFSNU9WV2JVL3lTdzh6d2hsODdsNmRZSjFyQjJNOXNNVHVOOXRzcWF0?= =?utf-8?B?c2JsV2hwYUNVQWU1NmFhTE5Fc1JPS0liN1dJZXY4Q1dBeEhZYllDRVRHNEdK?= =?utf-8?B?NmRrYXFGbnRCcjkzSWt6NTJxQ1RFKzYvQWNWMktkdVl5dUpMQ21UZHJMY1NB?= =?utf-8?B?YldYY3ZFeFNGaS80WUhKcWhveXFMbjR6OExxYzY5bmFLSGEyek1NdjBxNUFY?= =?utf-8?B?R0lpMHNpUXNaTU5yNk1yUmhKSmNMWWN3ZkVFQTE0M0FqUndxalF4b3FrT3B0?= =?utf-8?B?dGhoRXE2cWtHY2pESEYzUS90RGVUR04rc1N1Z2lpTjQ5VzVUWC80NGdXQjhj?= =?utf-8?B?NjFTNk1JZXBNWDdoUkZUdUNVUGJxNjRzSXc1MFdHSFZPTDQzWVgwd3poUUJu?= =?utf-8?B?YlMyZ2V1aFJ6ZHhoTndHZHo0c3BIajU5YXpOYS91U2JseXUxUzBuK1FQK3dX?= =?utf-8?B?ZU1zbDZRVFdlTkI0YU53OTVVcktra3lic2VRTlhveDE5Um9oVWRSK0FjdGFF?= =?utf-8?B?WHg3OWJ1Y0w4TkZsbnN1emxOcVM0b0tXbklQcWRlZUhpTzU2N2dGZUdScnh1?= =?utf-8?B?cWg1VDd1UXV6WHp0Z1VzRmtKRWxFdEVGRWpKWnJMUmtIeHdnUXIyTnhCbHZX?= =?utf-8?B?OTNVbzBnQVIxdnlWYnF4RkV1UE5SOS9aMjYrQ0VXL2RDMmJaY3NadGE4MzAy?= =?utf-8?Q?P8Twq2?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5573.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K3R0ckJXY1FPdkFEdHJlRU1IdVlnUFVGS2pGVmZDWCtpNEpuZnF2d1pQamYv?= =?utf-8?B?bldzaVJjTUFTZWVTZTdsOURDZ3pkQlZTWDBodHRhL1BDbWRUU0VTWCtDWkZQ?= =?utf-8?B?NE9xbzhUYUhkREl6VGFoSXA2NjFqeE5EMWtrTnlsTG5XaXgwK1RTNTVHczV2?= =?utf-8?B?SXJwb2xKTTd2WkpiNGJNdVFqcXJPbnRFQ0NLUktHTnRpSENUbWJsS3B2Rk5K?= =?utf-8?B?ZUZzMUpUSHhXSVJEZzdIQjhBMTFlZG5JMlRjdi9ITStGZkgwSVl6ZEw1eEZ4?= =?utf-8?B?S1F3b0gzUStLTzZ4bVl0QnUxWHdRSGNCYk5KU2ZaTXBiQUFLbkZJYzUwQkRR?= =?utf-8?B?SzZ2TExjRW1LSTZQaEsweEdTVXJLbjZjT1RLYkNqRHFJc0NHWjN6QWhPK3pK?= =?utf-8?B?T1F3VHpCTXdyVG9yU3dLWnlxRlBpNk5wVGhCNWIwREtNbmYzWnhzYVIvQytw?= =?utf-8?B?WTZiVkNWa0VUQXhXL0xiVTF2ajJBZFhGNGU2a1EyaVB0WU5zQ1RsVmlyMkV2?= =?utf-8?B?azVrblh4TXZlQzBWR1lSOTFIZit1akRydVVicG40ODFlSTNHYlZ4amk1TVcr?= =?utf-8?B?UDV3Q0lqVkNoZjY3SHE2NU4xa2czejdGd0pJaFlDazVuRnE0em1mRm5kZzgw?= =?utf-8?B?VjRETXNqQjk3ei9JRGNQaFJidE1xZ3puRHhXeGVHbkg2VTh4OWZ4N0lUdDRw?= =?utf-8?B?LzBYY0M0QW5HM2ZRM1hyMk15SGExU0RTN2JmamhoUWdXR0dHdWlmOW5uekNi?= =?utf-8?B?aDZSQVN3L1JjWW9mNWJPcm1OdTlwYkhVdlNzWWoxb3RxRE03ZmJPcE5NTlUw?= =?utf-8?B?ZHlpakRLR3ZKa0pVUk9MKzNlOUlMbVdlOEZoRUpXUzltZnhyTkExV01YNkNB?= =?utf-8?B?REIwMnVCaCtsbHEveUVTTjBFbitsL0VSMGhyT3hsVmJkYmdEc3JMd0QyTHY1?= =?utf-8?B?VW1mNlJqcFJ4TW5zTmx5TnBLamhoTU5tb0M1ZzVyYWRYNW9IcURDdGZEQUhJ?= =?utf-8?B?QVMwS21Obldoa3VRL3ZlS29OZDlFb1g1c2lUQnBTU2w5Q0FxMjJYT2ZJSGR5?= =?utf-8?B?YlBUUzh6U1pwYWEvNnBZZG1UYUtGUDJNSTBCWEY0WHR2WktOQVROenl5WStX?= =?utf-8?B?S205TmJNbUw5eGo5c3RjRGhKNTJzY0x1WmtCbGhPbUJDUGpPZUxzbE4rMkww?= =?utf-8?B?dnkzc3ZEL0lxT3J3S1lNRWtXbm8rNE5zdEJtUzdtRko0QTZKSnNLd3k5N3Vr?= =?utf-8?B?YmorTTE5VUhHN2tEMzNTZWNCd3hNSXlGZjIvcUNENkpGWmc5ckc1UERqMkEz?= =?utf-8?B?YzRYc3kxemlLNjN3aDFNNFV5eWt5K05seGhCZzBoSGtKUzY1U1BOVjRtWHBw?= =?utf-8?B?cWUza2FlNnBlcUl3bXQ4dk1iMnVMTlU3TFFGMGJxRnozUE9Bc0tBVUNuSTJN?= =?utf-8?B?VUZ2WCs0UDhBSTVocGdkMlIxWGtxT3FlRm9lUG5oeFltd2xVSmoyR3NkZkNY?= =?utf-8?B?U1V0VnJsbWR3RW14VzczQ2oySHJSVDhjYWJlaU1KTUM0eVhOVFN5azBWalVQ?= =?utf-8?B?ck1ITk1mQnAzNDRyK0U2YjVaQ0VoNFB4bzlTWW5ub21FU05FaDMyN09IdXJi?= =?utf-8?B?ZHk3ay9qdWczQVBSQlhhbEtZUjh6SjcweTVpc2JjaEZZMDJsR1p6c1hNcE5Y?= =?utf-8?B?RGhzbGJReGErT3FuYXJjYjFlY2RjaGlQd3ZjNU1NelBiYW9qQjhrTUUxQThn?= =?utf-8?B?R2VzOHpGQmxFUk51QWk1SVh6UThFVms1ZlFEbXViamZJcm1JdGtvK1Q0V3Zw?= =?utf-8?B?ZWNiVXE2ODdlWE9oazg1Z1dRd1JzaGl5UTIzb2JqME50M2pkSnZXOWR5THFK?= =?utf-8?B?Yk01RXJmbFlJbGM4VU85WXMvWFlBeVEwV2N2enlWQTU4dEQyd3kyVWJyY1ZY?= =?utf-8?B?OFV2clV6dUtWVUlMYTB5U0IrNWNRR1BnWE45dmlNL2RPTS9VczZFbTltdElN?= =?utf-8?B?QUhjdzQzVmxPZjAwUTJtV3IyRDd5Ym1PcWxNUjl6SUxEaGJpM1NPT1A2R3FG?= =?utf-8?B?blZCZTJaeWVmU0ZYeThtaWZrcjhRKzJJS3RvZFpNSFlLTUxxSHY3UXNLVmNZ?= =?utf-8?B?NHpEMlhxQmZVREprcEhvaW1kT21QM2k1ZDEzLzkwbFlSWWhSMWdNZGFPQUwz?= =?utf-8?B?OFE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <9881B3FBF425604BA7771546EB31379E@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5573.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 779396c8-0a6d-47c0-fac0-08de132c1177 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2025 18:35:12.5370 (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: aBXJ2rN8ileeCm0WQIRMx0Wi5rRgRJIbv8d7uvFJVrXWxdVJvtQhhQodYngcPN5yrw9I0DhiuVj7byCGlyqMYCphtWjscN6FBaWHwkaO3pI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6422 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" T24gRnJpLCAyMDI1LTEwLTI0IGF0IDExOjA0IC0wNzAwLCBNYXR0aGV3IEJyb3N0IHdyb3RlOgo+ IFN0dWIgb3V0IHRoZSBuZXcgcGFnZSBmYXVsdCBsYXllciBhbmQgYWRkIGtlcm5lbCBkb2N1bWVu dGF0aW9uLiBUaGlzCj4gaXMKPiBpbnRlbmRlZCBhcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgR1Qg cGFnZSBmYXVsdCBsYXllciwgZW5hYmxpbmcKPiBtdWx0aXBsZQo+IHByb2R1Y2VycyB0byBob29r IGludG8gYSBzaGFyZWQgcGFnZSBmYXVsdCBjb25zdW1lciBpbnRlcmZhY2UuCj4gCj4gU2lnbmVk LW9mZi1ieTogTWF0dGhldyBCcm9zdCA8bWF0dGhldy5icm9zdEBpbnRlbC5jb20+Cj4gCj4gLS0t Cj4gdjI6Cj4gwqAtIEZpeCBrZXJuZWwgZG9jIHR5cG8gKGNoZWNrcGF0Y2gpCj4gwqAtIFJlbW92 ZSBjb21tZW50IGFyb3VuZCBHVCAoU3R1YXJ0KQo+IMKgLSBBZGQgZXhwbGFpbmF0aW9uIGFyb3Vu ZCByZWNsYWltIChGcmFuY29pcykKPiDCoC0gQWRkIGNvbW1lbnQgYXJvdW5kIHU4IHZzIGVudW0g KEZyYW5jb2lzKQo+IMKgLSBJbmNsdWRlIGVuZ2luZSBpbnN0YW5jZSAoU3R1YXJ0KQo+IC0tLQo+ IMKgZHJpdmVycy9ncHUvZHJtL3hlL01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oMKgIDEgKwo+IMKgZHJpdmVycy9ncHUvZHJtL3hlL3hlX3BhZ2VmYXVsdC5jwqDCoMKgwqDCoMKg IHzCoCA2NSArKysrKysrKysrKwo+IMKgZHJpdmVycy9ncHUvZHJtL3hlL3hlX3BhZ2VmYXVsdC5o wqDCoMKgwqDCoMKgIHzCoCAxOSArKysrCj4gwqBkcml2ZXJzL2dwdS9kcm0veGUveGVfcGFnZWZh dWx0X3R5cGVzLmggfCAxMzYKPiArKysrKysrKysrKysrKysrKysrKysrKysKPiDCoDQgZmlsZXMg Y2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKykKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0veGUveGVfcGFnZWZhdWx0LmMKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0veGUveGVfcGFnZWZhdWx0LmgKPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0veGUveGVfcGFnZWZhdWx0X3R5cGVzLmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3hlL01ha2VmaWxlCj4gYi9kcml2ZXJzL2dwdS9kcm0veGUvTWFrZWZpbGUKPiBp bmRleCA4MmM2YjNkMjk2NzYuLmIzNTAyMWU1YjllYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0veGUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUvTWFrZWZpbGUKPiBA QCAtOTQsNiArOTQsNyBAQCB4ZS15ICs9IHhlX2JiLm8gXAo+IMKgwqDCoMKgwqDCoMKgwqB4ZV9u dm0ubyBcCj4gwqDCoMKgwqDCoMKgwqDCoHhlX29hLm8gXAo+IMKgwqDCoMKgwqDCoMKgwqB4ZV9v YnNlcnZhdGlvbi5vIFwKPiArwqDCoMKgwqDCoMKgwqB4ZV9wYWdlZmF1bHQubyBcCj4gwqDCoMKg wqDCoMKgwqDCoHhlX3BhdC5vIFwKPiDCoMKgwqDCoMKgwqDCoMKgeGVfcGNpLm8gXAo+IMKgwqDC oMKgwqDCoMKgwqB4ZV9wY29kZS5vIFwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hl L3hlX3BhZ2VmYXVsdC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfcGFnZWZhdWx0LmMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDUwOWE4MGNiMWYzCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9wYWdlZmF1bHQuYwo+ IEBAIC0wLDAgKzEsNjUgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsv Kgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4g KyNpbmNsdWRlICJ4ZV9wYWdlZmF1bHQuaCIKPiArI2luY2x1ZGUgInhlX3BhZ2VmYXVsdF90eXBl cy5oIgo+ICsKPiArLyoqCj4gKyAqIERPQzogWGUgcGFnZSBmYXVsdHMKPiArICoKPiArICogWGUg cGFnZSBmYXVsdHMgYXJlIGhhbmRsZWQgaW4gdHdvIGxheWVycy4gVGhlIHByb2R1Y2VyIGxheWVy Cj4gaW50ZXJhY3RzIHdpdGgKPiArICogaGFyZHdhcmUgb3IgZmlybXdhcmUgdG8gcmVjZWl2ZSBh bmQgcGFyc2UgZmF1bHRzIGludG8gc3RydWN0Cj4geGVfcGFnZWZhdWx0LAo+ICsgKiB0aGVuIGZv cndhcmRzIHRoZW0gdG8gdGhlIGNvbnN1bWVyLiBUaGUgY29uc3VtZXIgbGF5ZXIgc2VydmljZXMK PiB0aGUgZmF1bHRzCj4gKyAqIChlLmcuLCBtZW1vcnkgbWlncmF0aW9uLCBwYWdlIHRhYmxlIHVw ZGF0ZXMpIGFuZCBhY2tub3dsZWRnZXMgdGhlCj4gcmVzdWx0IGJhY2sKPiArICogdG8gdGhlIHBy b2R1Y2VyLCB3aGljaCB0aGVuIGZvcndhcmRzIHRoZSByZXN1bHRzIHRvIHRoZSBoYXJkd2FyZQo+ IG9yIGZpcm13YXJlLgo+ICsgKiBUaGUgY29uc3VtZXIgdXNlcyBhIHBhZ2UgZmF1bHQgcXVldWUg c2l6ZWQgdG8gYWJzb3JiIGFsbAo+IHBvdGVudGlhbCBmYXVsdHMgYW5kCj4gKyAqIGEgbXVsdGkt dGhyZWFkZWQgd29ya2VyIHRvIHByb2Nlc3MgdGhlbS4gTXVsdGlwbGUgcHJvZHVjZXJzIGFyZQo+ IHN1cHBvcnRlZCwKPiArICogd2l0aCBhIHNpbmdsZSBzaGFyZWQgY29uc3VtZXIuCj4gKyAqCj4g KyAqIHhlX3BhZ2VmYXVsdC5jIGltcGxlbWVudHMgdGhlIGNvbnN1bWVyIGxheWVyLgo+ICsgKi8K PiArCj4gKy8qKgo+ICsgKiB4ZV9wYWdlZmF1bHRfaW5pdCgpIC0gUGFnZSBmYXVsdCBpbml0Cj4g KyAqIEB4ZTogeGUgZGV2aWNlIGluc3RhbmNlCj4gKyAqCj4gKyAqIEluaXRpYWxpemUgWGUgcGFn ZSBmYXVsdCBzdGF0ZS4gTXVzdCBiZSBkb25lIGFmdGVyIHJlYWRpbmcgZnVzZXMuCj4gKyAqCj4g KyAqIFJldHVybjogMCBvbiBTdWNjZXNzLCBlcnJubyBvbiBmYWlsdXJlCj4gKyAqLwo+ICtpbnQg eGVfcGFnZWZhdWx0X2luaXQoc3RydWN0IHhlX2RldmljZSAqeGUpCj4gK3sKPiArwqDCoMKgwqDC oMKgwqAvKiBUT0RPIC0gaW1wbGVtZW50ICovCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4g K30KPiArCj4gKy8qKgo+ICsgKiB4ZV9wYWdlZmF1bHRfcmVzZXQoKSAtIFBhZ2UgZmF1bHQgcmVz ZXQgZm9yIGEgR1QKPiArICogQHhlOiB4ZSBkZXZpY2UgaW5zdGFuY2UKPiArICogQGd0OiBHVCBi ZWluZyByZXNldAo+ICsgKgo+ICsgKiBSZXNldCB0aGUgWGUgcGFnZSBmYXVsdCBzdGF0ZSBmb3Ig YSBHVDsgdGhhdCBpcywgc3F1YXNoIGFueQo+IHBlbmRpbmcgZmF1bHRzIG9uCj4gKyAqIHRoZSBH VC4KPiArICovCj4gK3ZvaWQgeGVfcGFnZWZhdWx0X3Jlc2V0KHN0cnVjdCB4ZV9kZXZpY2UgKnhl LCBzdHJ1Y3QgeGVfZ3QgKmd0KQo+ICt7Cj4gK8KgwqDCoMKgwqDCoMKgLyogVE9ETyAtIGltcGxl bWVudCAqLwo+ICt9Cj4gKwo+ICsvKioKPiArICogeGVfcGFnZWZhdWx0X2hhbmRsZXIoKSAtIFBh Z2UgZmF1bHQgaGFuZGxlcgo+ICsgKiBAeGU6IHhlIGRldmljZSBpbnN0YW5jZQo+ICsgKiBAcGY6 IFBhZ2UgZmF1bHQKPiArICoKPiArICogU2luayB0aGUgcGFnZSBmYXVsdCB0byBhIHF1ZXVlIChp LmUuLCBhIG1lbW9yeSBidWZmZXIpIGFuZCBxdWV1ZQo+IGEgd29ya2VyIHRvCj4gKyAqIHNlcnZp Y2UgaXQuIFNhZmUgdG8gYmUgY2FsbGVkIGZyb20gSVJRIG9yIHByb2Nlc3MgY29udGV4dC4KPiBS ZWNsYWltIHNhZmUuCj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCBlcnJubyBvbiBm YWlsdXJlCj4gKyAqLwo+ICtpbnQgeGVfcGFnZWZhdWx0X2hhbmRsZXIoc3RydWN0IHhlX2Rldmlj ZSAqeGUsIHN0cnVjdCB4ZV9wYWdlZmF1bHQKPiAqcGYpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqAv KiBUT0RPIC0gaW1wbGVtZW50ICovCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIDA7Cj4gK30KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3BhZ2VmYXVsdC5oCj4gYi9kcml2ZXJz L2dwdS9kcm0veGUveGVfcGFnZWZhdWx0LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uYmQwY2RmOWVkMzdmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS94ZS94ZV9wYWdlZmF1bHQuaAo+IEBAIC0wLDAgKzEsMTkgQEAKPiArLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAy NSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgX1hFX1BBR0VGQVVMVF9I Xwo+ICsjZGVmaW5lIF9YRV9QQUdFRkFVTFRfSF8KPiArCj4gK3N0cnVjdCB4ZV9kZXZpY2U7Cj4g K3N0cnVjdCB4ZV9ndDsKPiArc3RydWN0IHhlX3BhZ2VmYXVsdDsKPiArCj4gK2ludCB4ZV9wYWdl ZmF1bHRfaW5pdChzdHJ1Y3QgeGVfZGV2aWNlICp4ZSk7Cj4gKwo+ICt2b2lkIHhlX3BhZ2VmYXVs dF9yZXNldChzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwgc3RydWN0IHhlX2d0ICpndCk7Cj4gKwo+ICtp bnQgeGVfcGFnZWZhdWx0X2hhbmRsZXIoc3RydWN0IHhlX2RldmljZSAqeGUsIHN0cnVjdCB4ZV9w YWdlZmF1bHQKPiAqcGYpOwo+ICsKPiArI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS94ZS94ZV9wYWdlZmF1bHRfdHlwZXMuaAo+IGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3Bh Z2VmYXVsdF90eXBlcy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAw MDAuLjMyYmMzMzQ4YjMxNAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v eGUveGVfcGFnZWZhdWx0X3R5cGVzLmgKPiBAQCAtMCwwICsxLDEzNiBAQAo+ICsvKiBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDI1IElu dGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfWEVfUEFHRUZBVUxUX1RZUEVT X0hfCj4gKyNkZWZpbmUgX1hFX1BBR0VGQVVMVF9UWVBFU19IXwo+ICsKPiArI2luY2x1ZGUgPGxp bnV4L3dvcmtxdWV1ZS5oPgo+ICsKPiArc3RydWN0IHhlX2d0Owo+ICtzdHJ1Y3QgeGVfcGFnZWZh dWx0Owo+ICsKPiArLyoqIGVudW0geGVfcGFnZWZhdWx0X2FjY2Vzc190eXBlIC0gWGUgcGFnZSBm YXVsdCBhY2Nlc3MgdHlwZSAqLwo+ICtlbnVtIHhlX3BhZ2VmYXVsdF9hY2Nlc3NfdHlwZSB7Cj4g K8KgwqDCoMKgwqDCoMKgLyoqIEBYRV9QQUdFRkFVTFRfQUNDRVNTX1RZUEVfUkVBRDogUmVhZCBh Y2Nlc3MgdHlwZSAqLwo+ICvCoMKgwqDCoMKgwqDCoFhFX1BBR0VGQVVMVF9BQ0NFU1NfVFlQRV9S RUFEwqDCoMKgPSAwLAo+ICvCoMKgwqDCoMKgwqDCoC8qKiBAWEVfUEFHRUZBVUxUX0FDQ0VTU19U WVBFX1dSSVRFOiBXcml0ZSBhY2Nlc3MgdHlwZSAqLwo+ICvCoMKgwqDCoMKgwqDCoFhFX1BBR0VG QVVMVF9BQ0NFU1NfVFlQRV9XUklURcKgwqA9IDEsCj4gK8KgwqDCoMKgwqDCoMKgLyoqIEBYRV9Q QUdFRkFVTFRfQUNDRVNTX1RZUEVfQVRPTUlDOiBBdG9taWMgYWNjZXNzIHR5cGUgKi8KPiArwqDC oMKgwqDCoMKgwqBYRV9QQUdFRkFVTFRfQUNDRVNTX1RZUEVfQVRPTUlDwqA9IDIsCj4gK307Cj4g Kwo+ICsvKiogZW51bSB4ZV9wYWdlZmF1bHRfdHlwZSAtIFhlIHBhZ2UgZmF1bHQgdHlwZSAqLwo+ ICtlbnVtIHhlX3BhZ2VmYXVsdF90eXBlIHsKPiArwqDCoMKgwqDCoMKgwqAvKiogQFhFX1BBR0VG QVVMVF9UWVBFX05PVF9QUkVTRU5UOiBOb3QgcHJlc2VudCAqLwo+ICvCoMKgwqDCoMKgwqDCoFhF X1BBR0VGQVVMVF9UWVBFX05PVF9QUkVTRU5UwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqA9IDAsCj4gK8KgwqDCoMKgwqDCoMKgLyoqIEBYRV9QQUdFRkFVTFRfVFlQRV9XUklU RV9BQ0NFU1NfVklPTEFUSU9OOiBXcml0ZSBhY2Nlc3MKPiB2aW9sYXRpb24gKi8KPiArwqDCoMKg wqDCoMKgwqBYRV9QQUdFRkFVTFRfVFlQRV9XUklURV9BQ0NFU1NfVklPTEFUSU9OwqDCoMKgwqDC oMKgwqDCoD0gMSwKPiArwqDCoMKgwqDCoMKgwqAvKiogQFhFX1BBR0VGQVVMVF9UWVBFX1dSSVRF X0FDQ0VTU19WSU9MQVRJT046IEF0b21pYyBhY2Nlc3MKCkNvbW1lbnQgaGVyZSBkb2Vzbid0IG1h dGNoIHRoZSB2YXJpYWJsZSBuYW1lLCBzaG91bGQgYmUKIlhFX1BBR0VGQVVMVF9UWVBFX0FUT01J Q19BQ0NFU1NfVklPTEFUSU9OIi4KClRoYW5rcywKU3R1YXJ0Cgo+IHZpb2xhdGlvbiAqLwo+ICvC oMKgwqDCoMKgwqDCoFhFX1BBR0VGQVVMVF9UWVBFX0FUT01JQ19BQ0NFU1NfVklPTEFUSU9OwqDC oMKgwqDCoMKgwqA9IDIsCj4gK307Cj4gKwo+ICsvKiogc3RydWN0IHhlX3BhZ2VmYXVsdF9vcHMg LSBYZSBwYWdlZmF1bHQgb3BzIChwcm9kdWNlcikgKi8KPiArc3RydWN0IHhlX3BhZ2VmYXVsdF9v cHMgewo+ICvCoMKgwqDCoMKgwqDCoC8qKgo+ICvCoMKgwqDCoMKgwqDCoCAqIEBhY2tfZmF1bHQ6 IEFjayBmYXVsdAo+ICvCoMKgwqDCoMKgwqDCoCAqIEBwZjogUGFnZSBmYXVsdAo+ICvCoMKgwqDC oMKgwqDCoCAqIEBlcnI6IEVycm9yIHN0YXRlIG9mIGZhdWx0Cj4gK8KgwqDCoMKgwqDCoMKgICoK PiArwqDCoMKgwqDCoMKgwqAgKiBQYWdlIGZhdWx0IHByb2R1Y2VyIHJlY2VpdmVzIGFja25vd2xl ZGdtZW50IGZyb20gdGhlCj4gY29uc3VtZXIgYW5kCj4gK8KgwqDCoMKgwqDCoMKgICogc2VuZHMg dGhlIHJlc3VsdCB0byB0aGUgSFcvRlcgaW50ZXJmYWNlLgo+ICvCoMKgwqDCoMKgwqDCoCAqLwo+ ICvCoMKgwqDCoMKgwqDCoHZvaWQgKCphY2tfZmF1bHQpKHN0cnVjdCB4ZV9wYWdlZmF1bHQgKnBm LCBpbnQgZXJyKTsKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgeGVfcGFnZWZhdWx0IC0g WGUgcGFnZSBmYXVsdAo+ICsgKgo+ICsgKiBHZW5lcmljIHBhZ2UgZmF1bHQgc3RydWN0dXJlIGZv ciBjb21tdW5pY2F0aW9uIGJldHdlZW4gcHJvZHVjZXIKPiBhbmQgY29uc3VtZXIuCj4gKyAqIENh cmVmdWxseSBzaXplZCB0byBiZSA2NCBieXRlcy4gVXBvbiBhIGRldmljZSBwYWdlIGZhdWx0LCB0 aGUKPiBwcm9kdWNlcgo+ICsgKiBwb3B1bGF0ZXMgdGhpcyBzdHJ1Y3R1cmUsIGFuZCB0aGUgY29u c3VtZXIgY29waWVzIGl0IGludG8gdGhlCj4gcGFnZS1mYXVsdAo+ICsgKiBxdWV1ZSBmb3IgZGVm ZXJyZWQgaGFuZGxpbmcuCj4gKyAqLwo+ICtzdHJ1Y3QgeGVfcGFnZWZhdWx0IHsKPiArwqDCoMKg wqDCoMKgwqAvKioKPiArwqDCoMKgwqDCoMKgwqAgKiBAZ3Q6IEdUIG9mIGZhdWx0Cj4gK8KgwqDC oMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDCoMKgc3RydWN0IHhlX2d0ICpndDsKPiArwqDCoMKg wqDCoMKgwqAvKioKPiArwqDCoMKgwqDCoMKgwqAgKiBAY29uc3VtZXI6IFN0YXRlIGZvciB0aGUg c29mdHdhcmUgaGFuZGxpbmcgdGhlIGZhdWx0Lgo+IFBvcHVsYXRlZCBieQo+ICvCoMKgwqDCoMKg wqDCoCAqIHRoZSBwcm9kdWNlciBhbmQgbWF5IGJlIG1vZGlmaWVkIGJ5IHRoZSBjb25zdW1lciB0 bwo+IGNvbW11bmljYXRlCj4gK8KgwqDCoMKgwqDCoMKgICogaW5mb3JtYXRpb24gYmFjayB0byB0 aGUgcHJvZHVjZXIgdXBvbiBmYXVsdAo+IGFja25vd2xlZGdtZW50Lgo+ICvCoMKgwqDCoMKgwqDC oCAqLwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC8qKiBAY29uc3VtZXIucGFnZV9hZGRyOiBhZGRyZXNzIG9mIHBhZ2UgZmF1bHQgKi8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTY0IHBhZ2VfYWRkcjsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoqIEBjb25zdW1lci5hc2lkOiBhZGRyZXNzIHNwYWNl IElEICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHUzMiBhc2lkOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKioKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICogQGNvbnN1bWVyLmFjY2Vzc190eXBlOiBhY2Nlc3MgdHlwZSwgdTggcmF0aGVyIHRo YW4KPiBlbnVtIHRvCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGtlZXAgc2l6 ZSBjb21wYWN0Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1OCBhY2Nlc3NfdHlwZTsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgLyoqCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIEBj b25zdW1lci5mYXVsdF90eXBlOiBmYXVsdCB0eXBlLCB1OCByYXRoZXIgdGhhbgo+IGVudW0gdG8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICoga2VlcCBzaXplIGNvbXBhY3QKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHU4IGZhdWx0X3R5cGU7Cj4gKyNkZWZpbmUgWEVfUEFHRUZBVUxUX0xFVkVMX05B Q0vCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDB4ZmbCoMKgwqDCoC8qIFByb2R1Y2Vy Cj4gaW5kaWNhdGVzIG5hY2sgZmF1bHQgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgLyoqIEBjb25zdW1lci5mYXVsdF9sZXZlbDogZmF1bHQgbGV2ZWwgKi8KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgdTggZmF1bHRfbGV2ZWw7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoC8qKiBAY29uc3VtZXIuZW5naW5lX2NsYXNzOiBlbmdpbmUgY2xhc3MgKi8K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTggZW5naW5lX2NsYXNzOwo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiogQGNvbnN1bWVyLmVuZ2luZV9pbnN0YW5jZTog ZW5naW5lIGluc3RhbmNlICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHU4IGVu Z2luZV9pbnN0YW5jZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgLyoqIGNvbnN1 bWVyLnJlc2VydmVkOiByZXNlcnZlZCBiaXRzIGZvciBmdXR1cmUKPiBleHBhbnNpb24gKi8KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTggcmVzZXJ2ZWRbN107Cj4gK8KgwqDCoMKg wqDCoMKgfSBjb25zdW1lcjsKPiArwqDCoMKgwqDCoMKgwqAvKioKPiArwqDCoMKgwqDCoMKgwqAg KiBAcHJvZHVjZXI6IFN0YXRlIGZvciB0aGUgcHJvZHVjZXIgKGkuZS4sIEhXL0ZXIGludGVyZmFj ZSkuCj4gUG9wdWxhdGVkCj4gK8KgwqDCoMKgwqDCoMKgICogYnkgdGhlIHByb2R1Y2VyIGFuZCBz aG91bGQgbm90IGJlIG1vZGlmaWVk4oCUb3IgZXZlbgo+IGluc3BlY3RlZOKAlGJ5IHRoZQo+ICvC oMKgwqDCoMKgwqDCoCAqIGNvbnN1bWVyLCBleGNlcHQgZm9yIGNhbGxpbmcgb3BlcmF0aW9ucy4K PiArwqDCoMKgwqDCoMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qgewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiogQHByb2R1Y2VyLnByaXZhdGU6IHByaXZhdGUgcG9p bnRlciAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB2b2lkICpwcml2YXRlOwo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiogQHByb2R1Y2VyLm9wczogb3BlcmF0 aW9ucyAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjb25zdCBzdHJ1Y3QgeGVf cGFnZWZhdWx0X29wcyAqb3BzOwo+ICsjZGVmaW5lIFhFX1BBR0VGQVVMVF9QUk9EVUNFUl9NU0df TEVOX0RXwqDCoMKgwqDCoMKgwqA0Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8q Kgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBAcHJvZHVjZXIubXNnOiBwYWdl IGZhdWx0IG1lc3NhZ2UsIHVzZWQgYnkKPiBwcm9kdWNlciBpbiBmYXVsdAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBhY2tub3dsZWRnbWVudCB0byBmb3JtdWxhdGUgcmVzcG9u c2UgdG8gSFcvRlcKPiBpbnRlcmZhY2UuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqIEluY2x1ZGVkIGluIHRoZSBwYWdlLWZhdWx0IG1lc3NhZ2UgYmVjYXVzZSB0aGUKPiBwcm9k dWNlcgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiB0eXBpY2FsbHkgcmVjZWl2 ZXMgdGhlIGZhdWx0IGluIGEgY29udGV4dCB3aGVyZQo+IG1lbW9yeSBjYW5ub3QKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogYmUgYWxsb2NhdGVkIChlLmcuLCBhdG9taWMgY29u dGV4dCBvciB0aGUgcmVjbGFpbQo+IHBhdGgpLgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIG1zZ1tYRV9QQUdF RkFVTFRfUFJPRFVDRVJfTVNHX0xFTl9EV107Cj4gK8KgwqDCoMKgwqDCoMKgfSBwcm9kdWNlcjsK PiArfTsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgeGVfcGFnZWZhdWx0X3F1ZXVlOiBYZSBwYWdl ZmF1bHQgcXVldWUgKGNvbnN1bWVyKQo+ICsgKgo+ICsgKiBVc2VkIHRvIGNhcHR1cmUgYWxsIGRl dmljZSBwYWdlIGZhdWx0cyBmb3IgZGVmZXJyZWQgcHJvY2Vzc2luZy4KPiBTaXplIHRoaXMKPiAr ICogcXVldWUgdG8gYWJzb3JiIHRoZSBkZXZpY2XigJlzIHdvcnN0LWNhc2UgbnVtYmVyIG9mIG91 dHN0YW5kaW5nCj4gZmF1bHRzLgo+ICsgKi8KPiArc3RydWN0IHhlX3BhZ2VmYXVsdF9xdWV1ZSB7 Cj4gK8KgwqDCoMKgwqDCoMKgLyoqCj4gK8KgwqDCoMKgwqDCoMKgICogQGRhdGE6IERhdGEgaW4g cXVldWUgY29udGFpbmluZyBzdHJ1Y3QgeGVfcGFnZWZhdWx0LAo+IHByb3RlY3RlZCBieQo+ICvC oMKgwqDCoMKgwqDCoCAqIEBsb2NrCj4gK8KgwqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDC oMKgdm9pZCAqZGF0YTsKPiArwqDCoMKgwqDCoMKgwqAvKiogQHNpemU6IFNpemUgb2YgcXVldWUg aW4gYnl0ZXMgKi8KPiArwqDCoMKgwqDCoMKgwqB1MzIgc2l6ZTsKPiArwqDCoMKgwqDCoMKgwqAv KiogQGhlYWQ6IEhlYWQgcG9pbnRlciBpbiBieXRlcywgbW92ZWQgYnkgcHJvZHVjZXIsCj4gcHJv dGVjdGVkIGJ5IEBsb2NrICovCj4gK8KgwqDCoMKgwqDCoMKgdTMyIGhlYWQ7Cj4gK8KgwqDCoMKg wqDCoMKgLyoqIEB0YWlsOiBUYWlsIHBvaW50ZXIgaW4gYnl0ZXMsIG1vdmVkIGJ5IGNvbnN1bWVy LAo+IHByb3RlY3RlZCBieSBAbG9jayAqLwo+ICvCoMKgwqDCoMKgwqDCoHUzMiB0YWlsOwo+ICvC oMKgwqDCoMKgwqDCoC8qKiBAbG9jazogcHJvdGVjdHMgcGFnZSBmYXVsdCBxdWV1ZSAqLwo+ICvC oMKgwqDCoMKgwqDCoHNwaW5sb2NrX3QgbG9jazsKPiArwqDCoMKgwqDCoMKgwqAvKiogQHdvcmtl cjogdG8gcHJvY2VzcyBwYWdlIGZhdWx0cyAqLwo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCB3b3Jr X3N0cnVjdCB3b3JrZXI7Cj4gK307Cj4gKwo+ICsjZW5kaWYKCg==