From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 53B78941499 for ; Tue, 6 Feb 2024 07:00:33 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=fvIIQZkoQzkJz9DF6jbvARmwwETwbcS0/1U3UlABREA=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1707202831; v=1; b=caxyjCQyv4p48ZPb+nC0EyYtNmvASoDDSPrgKNTw/yg26NtHlmFJROj+nqUxf4YvbsWoqZqf pRgQ6sMkRrBPizHZmmtnkY0G5xoXwFHxXEzrLgDAeKXH0eS3vSEZqPCg1luk7paOWKPgclqmrzO H/8LZSItXDogYu8blnRuE8jk= X-Received: by 127.0.0.2 with SMTP id pB9QYY7687511xCJT0a7hBc1; Mon, 05 Feb 2024 23:00:31 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by mx.groups.io with SMTP id smtpd.web10.16462.1707202830974090435 for ; Mon, 05 Feb 2024 23:00:31 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10975"; a="581534" X-IronPort-AV: E=Sophos;i="6.05,246,1701158400"; d="scan'208";a="581534" X-Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2024 23:00:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,246,1701158400"; d="scan'208";a="5566947" X-Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa003.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 05 Feb 2024 23:00:29 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 5 Feb 2024 23:00:28 -0800 X-Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Mon, 5 Feb 2024 23:00:28 -0800 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Mon, 5 Feb 2024 23:00:28 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b80qBN6IQQ6MXWEaUJQ4ThpR3GDXLnpteWiBm0JJlanPASbKULqeJu2zLn99/qd5G+6oJ/sD/YUeQRQy1X2iIS4NSWFz9HwpCcQY531Cf/xRGuZ0V/HlJFX7N+5qGEGvyq4WxwyIvcQBT/Nwq5aDEttJipPOGFWh9uKly3Utr1mJkUWyXaWYn7sz+JkTP+OLI/kWiRYgAGcBPdzV+dKDgjpZx9HVtgK3k+f2oeVQId9Wp7RJ9xChTnfXe1n+fWFuqpqxyURbaziUg+/2/gGhP4m8+1jrZSt8YgqiFIHeWsMDX1nN8MffuWcp07IMB+v2bmGX2wlCjtOk8WJ0+aEvlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EqKccgNQ7R9l2vPxZWkXIgHfpC+iORy3glWPCxeTjCU=; b=KY9py5rUF8O9APZ7c7qGvcdxwZFMpHF27UphlNwCpsCQSAl8WFZ4MuDIKDXwVsLjmB2wY6lOLBLIEfXa9shl1cym4heS4dbcSYWGEv6/SIUMBhW07ALGpiB28imb0ulA4jpBYNIQlmTx3PS0zINnkpbIU/AOCjVlrbht5t+CIHAAfjL166CkFJvF7e+0TmeodbrXgM9s7TJcFoMo/ExTk0aN7WX/NajGMWNIJjBsndYtdot5lVYw/Sh6C4rcWMJSeA93Ro3IWFl2qb7eGmuKuV+CZ7/XifOyA/dCG5hVRzl5td9WqHwUrujtlWRR+LOFGjdKD8o9JbizKH4/TX0N2g== 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 X-Received: from MN0PR11MB6158.namprd11.prod.outlook.com (2603:10b6:208:3ca::18) by MW3PR11MB4553.namprd11.prod.outlook.com (2603:10b6:303:2c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.36; Tue, 6 Feb 2024 07:00:22 +0000 X-Received: from MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::42f0:90db:da46:71a5]) by MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::42f0:90db:da46:71a5%4]) with mapi id 15.20.7249.035; Tue, 6 Feb 2024 07:00:22 +0000 From: "Wu, Jiaxin" To: "Johnson, Brian" , "devel@edk2.groups.io" CC: "Ni, Ray" , Laszlo Ersek , "Dong, Eric" , "Zeng, Star" , "Gerd Hoffmann" , "Kumar, Rahul R" Subject: Re: [edk2-devel] [PATCH v2 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Execute CET and XD check only on BSP Thread-Topic: [edk2-devel] [PATCH v2 1/2] UefiCpuPkg/PiSmmCpuDxeSmm: Execute CET and XD check only on BSP Thread-Index: AQHaWFSvPR2svcmD6kSJUEjMSmQL/LD83p8A Date: Tue, 6 Feb 2024 07:00:22 +0000 Message-ID: References: <20240204084744.16464-1-jiaxin.wu@intel.com> <20240204084744.16464-2-jiaxin.wu@intel.com> <1ed25187-0700-4ac3-b3cd-792d7b6de7f5@hpe.com> In-Reply-To: <1ed25187-0700-4ac3-b3cd-792d7b6de7f5@hpe.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN0PR11MB6158:EE_|MW3PR11MB4553:EE_ x-ms-office365-filtering-correlation-id: befd7689-a6c2-4b26-67fe-08dc26e149b1 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: k+WSTQrpILHCQcWbZuVCEcfXZTDwm2OTz9Nz1z5Meo5EPqmTPPqlckWpT0dh6fvf/paBh25hELZ8e7Y3xUq83Db1vSy5v4gQOVZI7/OqZGppjjsslkx7ag+7k9+7T8UdRQ5jpyW9Q5y8i1WPuvIy/AiR6Fx8QWc6xgk4+T4v7VT+yVw+/gI5sfFUKq2c98UCF9gLSF4eQdMtMHMrfBBXPAKO1gN3iFmNlthaDQhfWk+NjkK3Vue7UcM7fnx6r2TXMj4bq5EjkYgGkOcY5dK+CrdXcjTC2ieEBcVwB2mG97jnSFoxrSBQjf1xqdESfGYTF4FjtODLApbmHGzrPjGGvKRUg+xWExsxXXI0JGb3ntDCi78oLRv9yLn0OmgSzV1pH4G/vr3jpZqYtjqW3P5XF+Y2/boy4JfnmufNof34Xn5Wh2pfs7JoXJJBKUeYvPLDU4nJGxvIF+xmBCYYmKfXvWkn6F8GpfKfhcjnCm6pehCxFMZ3NO62xl8+mlwgSS6v22eM2B1OVrCTbvq5RqP165F1Pc6ekGb3Rd33ts0U6dTsOpwhu5qBO5u95dGToA8evpG0ByQ7DxcKne1vh8ceRR4GBjxeu5pX2oYJJKlF7qrbtBDlPUkCcwOqnaDjdFmw x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UG5iUnhqZU5iaG0rMG9aZVRTR0VvYTZWQjJMNUY0RGkwY2JYMm5CRlBWWUY1?= =?utf-8?B?RE52aWVjVlRWWlBCc2lKNkV2N1VQZCtaMXZGcUt5MUZiZFBxOTYwM25jNnlE?= =?utf-8?B?b3RuRlMzWkhyQWtKcGU5WDhCaCtRSXRoSDFEM2RZSGFqTDhhWkk5SzRjU3lH?= =?utf-8?B?ZzlzSFl1Yy9jVGdMZU9xb2VabFdBcXNqOHlpc0NUL2RiK3IzNXVlTFZzQVNL?= =?utf-8?B?eEc1UlZQWDdxR3FyVHZLYzVwNkV4UFM5KzlIYUtPOEFWRW0zU0xmVFI0QkpV?= =?utf-8?B?SUtNNGZaNTdjQ3FvbU5DTkRwbXB4WWVROG5uZW5CVzlsMThjRjJUS1lrV1VL?= =?utf-8?B?L1NoWlcxN3oxRzVSc2JNQThkV2o3UWZQQ1BQL1c1TSt2WWhERXI3Q1RSeFln?= =?utf-8?B?Zlo0Q1kyTWszZURRREdQOUxXN283T0pmSXQwZ0xHSmoySEU1WjZyWVFQY0JC?= =?utf-8?B?WHZCaENndE5SQ2Z3TSttVnV5bm9PK3JrbFpjU2lMK09abUxoRmFGUkFTemNr?= =?utf-8?B?alVBbXl0WlFPZ05aanVNYXNTRWg4U1o5TVhUaGZ0RjNiR1BQdnovZVZ4TnFN?= =?utf-8?B?UDRIMVJ6bW5rWkZHeklnSWx3YTZrQnlOTVNoZ1dXeWNuNTJNWHdGY2laWWtP?= =?utf-8?B?N2ZkUTZ5VEV2NGZGZXBhdVZBTlB0VVNUN1hjWTFQSHZnTUhWM2dYQ2pHbGk5?= =?utf-8?B?dWV6NVE3dmh0UnlUeTlpcExjTGhSSWdMTGxCc1Voc2ZxTjJ3UU1TSzFuVFpC?= =?utf-8?B?UXpOK1gyVkRObUVvVGJkU0pJWVlOSk1IOXpodFpmQ05sSTJ3N05tdklIR1JQ?= =?utf-8?B?QVphelB2dkZiYmxtKzZsNnVpQkVpUldEUitEeXlKSGNJZFZkQ256Tk1hRlVL?= =?utf-8?B?TGJ2OUhHblRDS3Q1Q1FVYW9VUUd6RzNLYnVxR080ejdzTmViM3N5MWZmSEgv?= =?utf-8?B?K1IwczJtUncxM29FeEhkQVpsZlFpVnBjbTh4bHp2RmU4MGp0NmlBOVFnUXpE?= =?utf-8?B?N2F6WENlZ0swRk1sV21PNVFFOVVrZ1dDRm5lR01uUzF6MXFJNi90aVl0UmYv?= =?utf-8?B?dlNxejVXY2JKendxcHBUVEdLQ1hPcEhzQ2NYVG1DSm1UR1AvbWJRb3FKMlRq?= =?utf-8?B?eExYRWZ2YVhDL1c4RDZIRFlrWVVmRHl1ZERGR0gzeUFCK1VDenlvWk1MREE1?= =?utf-8?B?Qy9FNis3d0l5YUNhVjVFSnlVdG5TeUZxK0dsTXNiSXVmdFF5K0o0dkdNWWpt?= =?utf-8?B?REZ1a1gzMWVuMUdsZnNneWp4aHhYU2xqQjQ3bXN5L2w1ZFlqUGhVWkNIYzIz?= =?utf-8?B?Y00zb08rNXBORWpQTGswcHBOT21VSFBWTXF0SEl1Nm5nbDFhUGd6RzhzSGhI?= =?utf-8?B?QWhiMmZFS0d2anBWYlhodFZHYUNXRlh0cmsxeEZ4dVlZRWhNRE5qYUNZb0Qw?= =?utf-8?B?TXozY0VYdHlwSmRWQW1NQ0lJcW0wOU10cHlsWDNPQ1VZbkhqbEdnbHlGSDI4?= =?utf-8?B?b2ZGL2ZFZit2WDQrL1g3QmtkQXpVcEhXTUl4QmVqdnRRR2Z3VDN5OUpSWXdS?= =?utf-8?B?WitnOVRwYWxha3p2aVE4WFFKMXFqdUVtUHp4QjZvenFKT2NrN1dKeFBuMzdB?= =?utf-8?B?QUlJTWViS1Bsa1ZMbU80QmNZQTVINmEzRnByZHFPNUN3cm9TOHREVFJYYkJH?= =?utf-8?B?VDlXV3FqbVIxOUZ6aExWVnBrVlRmRy9McmZyYnJFVWJFb1kyRFRkT24yeXJJ?= =?utf-8?B?YW9HaEs1eVlwVm9aSTZVdEJaYUFoSzFnQkgzQ0J6M2F5Q0RMekpHWGVveXRN?= =?utf-8?B?Q09yblE1WWhUbWZJMUZMUzBDdzdrZEVoR1V5UHFNRzRhZDIwZElXSTRxQTF2?= =?utf-8?B?MWtFSGRzakU3UUQyY1ZYQXByNXVoMWlwL0hGZENWYzBSYlZhMzVlNlozZ0dx?= =?utf-8?B?R3hhUW9vN3dya3JEcHFOeDRsaTd2ZXROLy9BakpzWXc2VFZkV2o4N0RtVG9M?= =?utf-8?B?VGFnSEk2dGNpamJyRjdnWFVSTUlCRmdVV0owMk9oSXJ5QWxScFQ1L0I2MTY5?= =?utf-8?B?WnB5TTlKcWRLc240SDNXVkRqRHcwK3B3TTlBZWpSckJzRU5Sb0ZFUVhWOGxI?= =?utf-8?Q?nQJms6e09/zanGZ2u2dBP6sj2?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN0PR11MB6158.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: befd7689-a6c2-4b26-67fe-08dc26e149b1 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2024 07:00:22.5096 (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: guyWHftXUrulQYE0/Sz/0NNijWwOP6UrX5JcglnEWecjHxRl3L7Sp11qgH8BOTY6iS83STbwXXx9fp/xNdr/Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4553 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,jiaxin.wu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: dHyDczLUatTZqP9vcJPe0EQvx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=caxyjCQy; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io SGkgQnJpYW4sDQoNCllvdSByYWlzZWQgYSBnb29kIG9wZW4gaGVyZTogIA0KDQpDYW4gd2UgZ3Vh cmFudGVlIGFsbCBmZWF0dXJlcyB2YWx1ZSB1cGRhdGVkIGJlZm9yZSB1c2UgdGhlbT8gQWN0dWFs bHksIGl0J3Mgbm90IHJlbGF0ZWQgdG8gbXkgcGF0Y2ggaGVyZSwgSSdtIHRoaW5raW5nIGFib3V0 IHRob3NlIGZlYXR1cmVzIGZsYWcgdXNhZ2UgKmV2ZW4gYmVmb3JlKiBleGVjdXRpbmcgQ2hlY2tG ZWF0dXJlU3VwcG9ydGVkKCkuDQptQ2V0U3VwcG9ydGVkICYgbVBhdGNoQ2V0U3VwcG9ydGVkLA0K bVhkU3VwcG9ydGVkICYgZ1BhdGNoWGRTdXBwb3J0ZWQsIA0KbUJ0c1N1cHBvcnRlZA0KDQpBZnRl ciBpbnZlc3RpZ2F0aW9uLCB0aGUgYW5zd2VyIGlzIG5vLCB0aGF0IG1lYW5zIGV4aXN0aW5nIHdv cmsgZmxvdyBoYXMgdGhlIHBvdGVudGlhbCBwcm9ibGVtIHVzaW5nIHRob3NlIGZlYXR1cmVzIGZs YWcgYmVmb3JlIGNhbGxpbmcgQ2hlY2tGZWF0dXJlU3VwcG9ydGVkLiBUaGUgZWFzeSB3YXkgdG8g Zml4IGl0IGlzIHRvIG1vdmUgdGhvc2UgZmVhdHVyZXMgZmxhZyBjaGVjayBpbiBlYXJseSBkcml2 ZXIgZW50cnkgcG9pbnQuIEJ1dCBiZWZvcmUgdGhhdCwgd2UgbmVlZCBjb25maXJtIHRoZSBDRVQg JiBYRCAmIEJUUyBmZWF0dXJlcyBhcmUgc2FtZSBpbiBub24tc21tICYgc21tIGVudmlyb25tZW50 LiBBZnRlciB0aGF0LCBJIHdpbGwgY3JlYXRlIGFub3RoZXIgcGF0Y2ggdG8gZG8gdGhpcyBtb3Zl bWVudCwgdGhlbiB3ZSBjYW4gdG90YWxseSByZXNvbHZlIHRoaXMgcHJvYmxlbS4NCg0KU28sIGN1 cnJlbnRseSwgbGV0J3MgaWdub3JlIHRoaXMgcGF0Y2guDQoNClRoYW5rcywNCkppYXhpbiANCg0K DQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCcmlhbiBKLiBKb2hu c29uIDxicmlhbi5qb2huc29uQGhwZS5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDYs IDIwMjQgMTowMCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBKaWF4aW4gPGpp YXhpbi53dUBpbnRlbC5jb20+DQo+IENjOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgTGFz emxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IERvbmcsIEVyaWMNCj4gPGVyaWMuZG9uZ0Bp bnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgR2VyZCBIb2ZmbWFu bg0KPiA8a3JheGVsQHJlZGhhdC5jb20+OyBLdW1hciwgUmFodWwgUiA8cmFodWwuci5rdW1hckBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMl0gVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbToNCj4gRXhlY3V0ZSBDRVQgYW5kIFhEIGNoZWNrIG9ubHkg b24gQlNQDQo+IA0KPiBBcyBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCwgc2V0dGluZyBCT09MRUFO IHZhbHVlcyBmcm9tIFRSVUUgdG8gRkFMU0Ugb24NCj4gbXVsdGlwbGUgQ1BVcyBhdCBvbmNlICJz aG91bGQiIGJlIHNhZmUsIGluIHRoYXQgdGhlIGZpbmFsIHZhbHVlcyBvZiB0aGUNCj4gdmFyaWFi bGVzIGFyZSB0aGUgc2FtZSBubyBtYXR0ZXIgd2hhdCBvcmRlciB0aGUgQ1BVcyB3cml0ZSB0aGUg ZGF0YS4NCj4gDQo+IE5vdyB0aGF0IG9ubHkgdGhlIEJTUCBpcyB3cml0aW5nIHRoZXNlIHZhbHVl cywgd2hhdCBndWFyYW50ZWVzIHRoYXQgdGhleQ0KPiBhcmUgd3JpdHRlbiBiZWZvcmUgdGhlIEFQ cyBuZWVkIHRvIHJlYWQgdGhlbT8gIFRoZSBjb21taXQgbWVzc2FnZSBkaWRuJ3QNCj4gbWVudGlv biBpdCwgYW5kIEkgaGF2ZW4ndCB0cmFjZWQgdGhyb3VnaCB0aGUgU01NIGluaXRpYWxpemF0aW9u IGZsb3cuDQo+IA0KPiBCcmlhbiBKLiBKb2huc29uDQo+IA0KPiAtLS0tLS0tLSBPcmlnaW5hbCBN ZXNzYWdlIC0tLS0tLS0tDQo+IEZyb206IFd1LCBKaWF4aW4gW21haWx0bzpqaWF4aW4ud3VAaW50 ZWwuY29tXQ0KPiBTZW50OiBTdW5kYXksIEZlYnJ1YXJ5IDQsIDIwMjQgYXQgMjo0NyBBTQ0KPiBU bzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4s IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+LCBFcmljDQo+IERvbmcgPGVyaWMuZG9u Z0BpbnRlbC5jb20+LCBaZW5nIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+LCBHZXJkDQo+IEhv ZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4sIFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50 ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMl0gVWVmaUNwdVBr Zy9QaVNtbUNwdUR4ZVNtbToNCj4gRXhlY3V0ZQ0KPiBDRVQgYW5kIFhEIGNoZWNrIG9ubHkgb24g QlNQDQo+IA0KPiBFeGlzdGluZyBDaGVja0ZlYXR1cmVTdXBwb3J0ZWQgZnVuY3Rpb24gd2lsbCBj aGVjayBDRVQgJiBYRA0KPiBmZWF0dXJlcyBvbiBlYWNoIHByb2Nlc3Nvci4NCj4gDQo+IFRoZSBD UFVJRHMgZm9yIENFVCAmIFhEIGZlYXR1cmVzIGFyZSBzb2Z0d2FyZSB2aXNpYmxlIGRvbWFpbiwN Cj4gd2hpY2ggbWVhbnMgYSBwcm9wZXJseSBjb25maWd1cmVkIHBsYXRmb3JtIHdpbGwgaGF2ZSBj b25zaXN0ZW50DQo+IHZhbHVlcyBmb3IgdGhlc2UgQ1BVSUQgTGVhZnMvU3ViTGVhZnMvRmllbGRz IG9uIGVhY2ggbG9naWNhbA0KPiBwcm9jZXNzb3IuIFNvLCBleGVjdXRlIEV4ZWN1dGUgQ0VUIGFu ZCBYRCBjaGVjayBvbmx5IG9uIEJTUC5UaGlzDQo+IGJlbG9uZ3MgdG8gdGhlIG9wdGltaXphdGlv biwgd2hpY2ggY2FuIGF2b2lkIHVubmVjZXNzYXJ5IGFuZA0KPiBkdXBsaWNhdGUgY2hlY2sgb24g bXVsdGlwbGUgcHJvY2Vzc29ycy4NCj4gDQo+IE5vdGUgMTogd2UgZG9uJ3Qgc3BsaXQgdGhvc2Ug ZnVuY3Rpb25hbGl0eSBjaGVjayBvdXQgb2YgdGhlDQo+IFNtbUluaXRIYW5kbGVyLiBCZWNhdXNl IHRoZSBDRVQgJiBYRCAmIEJUUyBmZWF0dXJlcyBtaWdodCBiZQ0KPiBkaWZmZXJlbnQgaW4gbm9u LXNtbSAmIHNtbSBlbnZpcm9ubWVudC4gS2VlcCBpbiBTTU0gaXMgbW9yZSBzYWZlci4NCj4gDQo+ IEFzIGZvciBNU1JfSUEzMl9NSVNDX0VOQUJMRS5CVFMsIGl0J3MgY29yZSBzY29wZSBhY2NvcmRp bmcgU0RNLg0KPiBTbywgc3RpbGwga2VlcCBpdCBjaGVjayBvbiBlYWNoIHByb2Nlc3Nvci4NCj4g DQo+IE5vdGUgMjogRm9yIEJUUywgdXNpbmcgZ2xvYmFsIHZhcmlhYmxlIHRvIGluZGljYXRlIGZl YXR1cmUNCj4gc3VwcG9ydGVkIG9yIG5vdCAobUJ0c1N1cHBvcnRlZCksIHRoZSBmdW5jdGlvbiBv bmx5IHBlcmZvcm1zDQo+IHZhcmlhYmxlIG1vZGlmaWNhdGlvbiBmcm9tIFRSVUUgdG8gRkFMU0Uu IFNvIGV2ZW4gdGhlIGNvZGUgcnVucw0KPiBpbiBwYXJhbGxlbCwgaXQncyBzYWZlLg0KPiANCj4g Q2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+DQo+IENjOiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+IENj OiBaZW5nIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IENjOiBHZXJkIEhvZmZtYW5uIDxr cmF4ZWxAcmVkaGF0LmNvbT4NCj4gQ2M6IFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50ZWwu Y29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBKaWF4aW4gV3UgPGppYXhpbi53dUBpbnRlbC5jb20+DQo+ IFJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBJbnRlbC5jb20+DQo+IC0tLQ0KPiAgICBVZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmMgfCAgNiArLS0NCj4gICAgVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1Qcm9maWxlLmMgICAgIHwgNzgNCj4gKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tDQo+ICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21t UHJvZmlsZS5oICAgICB8ICA2ICsrLQ0KPiAgICAzIGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlv bnMoKyksIDM4IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvUGlT bW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uYw0KPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVT bW0vUGlTbW1DcHVEeGVTbW0uYw0KPiBpbmRleCBjZDM5NDgyNmZmLi4xNWQyNmRkODhmIDEwMDY0 NA0KPiAtLS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmMNCj4g KysrIGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5jDQo+IEBAIC0x LDkgKzEsOSBAQA0KPiAgICAvKiogQGZpbGUNCj4gICAgQWdlbnQgTW9kdWxlIHRvIGxvYWQgb3Ro ZXIgbW9kdWxlcyB0byBkZXBsb3kgU01NIEVudHJ5IFZlY3RvciBmb3IgWDg2DQo+IENQVS4NCj4g DQo+IC1Db3B5cmlnaHQgKGMpIDIwMDkgLSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+DQo+ICtDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDI0LCBJbnRlbCBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHlyaWdodCAoYykg MjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENv cHlyaWdodCAoQykgMjAyMyBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KPiANCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gDQo+IEBAIC0zNzUsMTMgKzM3NSwxMyBAQCBTbW1Jbml0SGFuZGxlciAo DQo+ICAgICAgICAgICAgJm1DcHVIb3RQbHVnRGF0YQ0KPiAgICAgICAgICAgICk7DQo+IA0KPiAg ICAgICAgICBpZiAoIW1TbW1TM0ZsYWcpIHsNCj4gICAgICAgICAgICAvLw0KPiAtICAgICAgICAv LyBDaGVjayBYRCBhbmQgQlRTIGZlYXR1cmVzIG9uIGVhY2ggcHJvY2Vzc29yIG9uIG5vcm1hbCBi b290DQo+ICsgICAgICAgIC8vIENoZWNrIENFVCAmIFhEICYgQlRTIGZlYXR1cmVzIG9uIGVhY2gg cHJvY2Vzc29yIG9uIG5vcm1hbCBib290DQo+ICAgICAgICAgICAgLy8NCj4gLSAgICAgICAgQ2hl Y2tGZWF0dXJlU3VwcG9ydGVkICgpOw0KPiArICAgICAgICBDaGVja0ZlYXR1cmVTdXBwb3J0ZWQg KElzQnNwKTsNCj4gICAgICAgICAgfSBlbHNlIGlmIChJc0JzcCkgew0KPiAgICAgICAgICAgIC8v DQo+ICAgICAgICAgICAgLy8gQlNQIHJlYmFzZSBpcyBhbHJlYWR5IGRvbmUgYWJvdmUuDQo+ICAg ICAgICAgICAgLy8gSW5pdGlhbGl6ZSBwcml2YXRlIGRhdGEgZHVyaW5nIFMzIHJlc3VtZQ0KPiAg ICAgICAgICAgIC8vDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1Nt bVByb2ZpbGUuYw0KPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tUHJvZmlsZS5jDQo+ IGluZGV4IDgxNDJkM2NlYWMuLjQ0YzM1MmFkOTggMTAwNjQ0DQo+IC0tLSBhL1VlZmlDcHVQa2cv UGlTbW1DcHVEeGVTbW0vU21tUHJvZmlsZS5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvUGlTbW1DcHVE eGVTbW0vU21tUHJvZmlsZS5jDQo+IEBAIC0xLDkgKzEsOSBAQA0KPiAgICAvKiogQGZpbGUNCj4g ICAgRW5hYmxlIFNNTSBwcm9maWxlLg0KPiANCj4gLUNvcHlyaWdodCAoYykgMjAxMiAtIDIwMjMs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK0NvcHlyaWdo dCAoYykgMjAxMiAtIDIwMjQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCj4gICAgQ29weXJpZ2h0IChjKSAyMDE3IC0gMjAyMCwgQU1EIEluY29ycG9yYXRlZC4g QWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+IA0KPiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiANCj4gICAgKiovDQo+IEBAIC04OTIsNjIgKzg5Miw3 NCBAQCBJbml0U21tUHJvZmlsZUludGVybmFsICgNCj4gICAgfQ0KPiANCj4gICAgLyoqDQo+ICAg ICAgQ2hlY2sgaWYgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgYnkgYSBwcm9jZXNzb3IuDQo+IA0KPiAr ICBAcGFyYW1baW5dIElzQnNwICAgSW5kaWNhdGUgaXQncyBjYWxsZWQgYnkgQlNQIG9yIG5vdC4N Cj4gKw0KPiAgICAqKi8NCj4gICAgVk9JRA0KPiAgICBDaGVja0ZlYXR1cmVTdXBwb3J0ZWQgKA0K PiAtICBWT0lEDQo+ICsgIElOIEJPT0xFQU4gIElzQnNwDQo+ICAgICAgKQ0KPiAgICB7DQo+ICAg ICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ0VheDsNCj4gICAgICBVSU5UMzIg ICAgICAgICAgICAgICAgICAgICAgICAgUmVnRWN4Ow0KPiAgICAgIFVJTlQzMiAgICAgICAgICAg ICAgICAgICAgICAgICBSZWdFZHg7DQo+ICAgICAgTVNSX0lBMzJfTUlTQ19FTkFCTEVfUkVHSVNU RVIgIE1pc2NFbmFibGVNc3I7DQo+IA0KPiAtICBpZiAoKFBjZEdldDMyIChQY2RDb250cm9sRmxv d0VuZm9yY2VtZW50UHJvcGVydHlNYXNrKSAhPSAwKSAmJg0KPiBtQ2V0U3VwcG9ydGVkKSB7DQo+ IC0gICAgQXNtQ3B1aWQgKENQVUlEX1NJR05BVFVSRSwgJlJlZ0VheCwgTlVMTCwgTlVMTCwgTlVM TCk7DQo+IC0gICAgaWYgKFJlZ0VheCA+PSBDUFVJRF9TVFJVQ1RVUkVEX0VYVEVOREVEX0ZFQVRV UkVfRkxBR1MpIHsNCj4gLSAgICAgIEFzbUNwdWlkRXggKENQVUlEX1NUUlVDVFVSRURfRVhURU5E RURfRkVBVFVSRV9GTEFHUywNCj4gQ1BVSURfU1RSVUNUVVJFRF9FWFRFTkRFRF9GRUFUVVJFX0ZM QUdTX1NVQl9MRUFGX0lORk8sIE5VTEwsDQo+IE5VTEwsDQo+ICZSZWdFY3gsIE5VTEwpOw0KPiAt ICAgICAgaWYgKChSZWdFY3ggJiBDUFVJRF9DRVRfU1MpID09IDApIHsNCj4gKyAgLy8NCj4gKyAg Ly8gVGhlIGZlYXR1cmUgc2NvcGUgaXMgc29mdHdhcmUgdmlzaWJsZSBkb21haW4uDQo+ICsgIC8v IE9ubHkgbmVlZCBjaGVjayBvbiBCU1AuDQo+ICsgIC8vDQo+ICsgIGlmIChJc0JzcCkgew0KPiAr ICAgIGlmICgoUGNkR2V0MzIgKFBjZENvbnRyb2xGbG93RW5mb3JjZW1lbnRQcm9wZXJ0eU1hc2sp ICE9IDApICYmDQo+IG1DZXRTdXBwb3J0ZWQpIHsNCj4gKyAgICAgIEFzbUNwdWlkIChDUFVJRF9T SUdOQVRVUkUsICZSZWdFYXgsIE5VTEwsIE5VTEwsIE5VTEwpOw0KPiArICAgICAgaWYgKFJlZ0Vh eCA+PSBDUFVJRF9TVFJVQ1RVUkVEX0VYVEVOREVEX0ZFQVRVUkVfRkxBR1MpIHsNCj4gKyAgICAg ICAgQXNtQ3B1aWRFeCAoQ1BVSURfU1RSVUNUVVJFRF9FWFRFTkRFRF9GRUFUVVJFX0ZMQUdTLA0K PiBDUFVJRF9TVFJVQ1RVUkVEX0VYVEVOREVEX0ZFQVRVUkVfRkxBR1NfU1VCX0xFQUZfSU5GTywg TlVMTCwNCj4gTlVMTCwNCj4gJlJlZ0VjeCwgTlVMTCk7DQo+ICsgICAgICAgIGlmICgoUmVnRWN4 ICYgQ1BVSURfQ0VUX1NTKSA9PSAwKSB7DQo+ICsgICAgICAgICAgbUNldFN1cHBvcnRlZCA9IEZB TFNFOw0KPiArICAgICAgICAgIFBhdGNoSW5zdHJ1Y3Rpb25YODYgKG1QYXRjaENldFN1cHBvcnRl ZCwgbUNldFN1cHBvcnRlZCwgMSk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgIH0gZWxzZSB7DQo+ ICAgICAgICAgICAgbUNldFN1cHBvcnRlZCA9IEZBTFNFOw0KPiAgICAgICAgICAgIFBhdGNoSW5z dHJ1Y3Rpb25YODYgKG1QYXRjaENldFN1cHBvcnRlZCwgbUNldFN1cHBvcnRlZCwgMSk7DQo+ICAg ICAgICAgIH0NCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgbUNldFN1cHBvcnRlZCA9IEZBTFNF Ow0KPiAtICAgICAgUGF0Y2hJbnN0cnVjdGlvblg4NiAobVBhdGNoQ2V0U3VwcG9ydGVkLCBtQ2V0 U3VwcG9ydGVkLCAxKTsNCj4gICAgICAgIH0NCj4gLSAgfQ0KPiANCj4gLSAgaWYgKG1YZFN1cHBv cnRlZCkgew0KPiAtICAgIEFzbUNwdWlkIChDUFVJRF9FWFRFTkRFRF9GVU5DVElPTiwgJlJlZ0Vh eCwgTlVMTCwgTlVMTCwgTlVMTCk7DQo+IC0gICAgaWYgKFJlZ0VheCA8PSBDUFVJRF9FWFRFTkRF RF9GVU5DVElPTikgew0KPiAtICAgICAgLy8NCj4gLSAgICAgIC8vIEV4dGVuZGVkIENQVUlEIGZ1 bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHByb2Nlc3Nvci4NCj4gLSAgICAgIC8v DQo+IC0gICAgICBtWGRTdXBwb3J0ZWQgPSBGQUxTRTsNCj4gLSAgICAgIFBhdGNoSW5zdHJ1Y3Rp b25YODYgKGdQYXRjaFhkU3VwcG9ydGVkLCBtWGRTdXBwb3J0ZWQsIDEpOw0KPiAtICAgIH0NCj4g KyAgICBpZiAobVhkU3VwcG9ydGVkKSB7DQo+ICsgICAgICBBc21DcHVpZCAoQ1BVSURfRVhURU5E RURfRlVOQ1RJT04sICZSZWdFYXgsIE5VTEwsIE5VTEwsIE5VTEwpOw0KPiArICAgICAgaWYgKFJl Z0VheCA8PSBDUFVJRF9FWFRFTkRFRF9GVU5DVElPTikgew0KPiArICAgICAgICAvLw0KPiArICAg ICAgICAvLyBFeHRlbmRlZCBDUFVJRCBmdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgb24gdGhp cyBwcm9jZXNzb3IuDQo+ICsgICAgICAgIC8vDQo+ICsgICAgICAgIG1YZFN1cHBvcnRlZCA9IEZB TFNFOw0KPiArICAgICAgICBQYXRjaEluc3RydWN0aW9uWDg2IChnUGF0Y2hYZFN1cHBvcnRlZCwg bVhkU3VwcG9ydGVkLCAxKTsNCj4gKyAgICAgIH0NCj4gDQo+IC0gICAgQXNtQ3B1aWQgKENQVUlE X0VYVEVOREVEX0NQVV9TSUcsIE5VTEwsIE5VTEwsIE5VTEwsICZSZWdFZHgpOw0KPiAtICAgIGlm ICgoUmVnRWR4ICYgQ1BVSUQxX0VEWF9YRF9TVVBQT1JUKSA9PSAwKSB7DQo+IC0gICAgICAvLw0K PiAtICAgICAgLy8gRXhlY3V0ZSBEaXNhYmxlIEJpdCBmZWF0dXJlIGlzIG5vdCBzdXBwb3J0ZWQg b24gdGhpcyBwcm9jZXNzb3IuDQo+IC0gICAgICAvLw0KPiAtICAgICAgbVhkU3VwcG9ydGVkID0g RkFMU0U7DQo+IC0gICAgICBQYXRjaEluc3RydWN0aW9uWDg2IChnUGF0Y2hYZFN1cHBvcnRlZCwg bVhkU3VwcG9ydGVkLCAxKTsNCj4gLSAgICB9DQo+ICsgICAgICBBc21DcHVpZCAoQ1BVSURfRVhU RU5ERURfQ1BVX1NJRywgTlVMTCwgTlVMTCwgTlVMTCwgJlJlZ0VkeCk7DQo+ICsgICAgICBpZiAo KFJlZ0VkeCAmIENQVUlEMV9FRFhfWERfU1VQUE9SVCkgPT0gMCkgew0KPiArICAgICAgICAvLw0K PiArICAgICAgICAvLyBFeGVjdXRlIERpc2FibGUgQml0IGZlYXR1cmUgaXMgbm90IHN1cHBvcnRl ZCBvbiB0aGlzIHByb2Nlc3Nvci4NCj4gKyAgICAgICAgLy8NCj4gKyAgICAgICAgbVhkU3VwcG9y dGVkID0gRkFMU0U7DQo+ICsgICAgICAgIFBhdGNoSW5zdHJ1Y3Rpb25YODYgKGdQYXRjaFhkU3Vw cG9ydGVkLCBtWGRTdXBwb3J0ZWQsIDEpOw0KPiArICAgICAgfQ0KPiANCj4gLSAgICBpZiAoU3Rh bmRhcmRTaWduYXR1cmVJc0F1dGhlbnRpY0FNRCAoKSkgew0KPiAtICAgICAgLy8NCj4gLSAgICAg IC8vIEFNRCBwcm9jZXNzb3JzIGRvIG5vdCBzdXBwb3J0IE1TUl9JQTMyX01JU0NfRU5BQkxFDQo+ IC0gICAgICAvLw0KPiAtICAgICAgUGF0Y2hJbnN0cnVjdGlvblg4NiAoZ1BhdGNoTXNySWEzMk1p c2NFbmFibGVTdXBwb3J0ZWQsIEZBTFNFLCAxKTsNCj4gKyAgICAgIGlmIChTdGFuZGFyZFNpZ25h dHVyZUlzQXV0aGVudGljQU1EICgpKSB7DQo+ICsgICAgICAgIC8vDQo+ICsgICAgICAgIC8vIEFN RCBwcm9jZXNzb3JzIGRvIG5vdCBzdXBwb3J0IE1TUl9JQTMyX01JU0NfRU5BQkxFDQo+ICsgICAg ICAgIC8vDQo+ICsgICAgICAgIFBhdGNoSW5zdHJ1Y3Rpb25YODYgKGdQYXRjaE1zcklhMzJNaXNj RW5hYmxlU3VwcG9ydGVkLCBGQUxTRSwgMSk7DQo+ICsgICAgICB9DQo+ICAgICAgICB9DQo+ICAg ICAgfQ0KPiANCj4gKyAgLy8NCj4gKyAgLy8gVGhlIGZlYXR1cmUgc2NvcGUgaXMgY29yZS4NCj4g KyAgLy8gTmVlZCBjaGVjayBvbiBlYWNoIHByb2Nlc3Nvci4NCj4gKyAgLy8NCj4gICAgICBpZiAo bUJ0c1N1cHBvcnRlZCkgew0KPiAgICAgICAgQXNtQ3B1aWQgKENQVUlEX1ZFUlNJT05fSU5GTywg TlVMTCwgTlVMTCwgTlVMTCwgJlJlZ0VkeCk7DQo+ICAgICAgICBpZiAoKFJlZ0VkeCAmIENQVUlE MV9FRFhfQlRTX0FWQUlMQUJMRSkgIT0gMCkgew0KPiAgICAgICAgICAvLw0KPiAgICAgICAgICAv LyBQZXIgSUEzMiBtYW51YWxzOg0KPiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4 ZVNtbS9TbW1Qcm9maWxlLmgNCj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbVByb2Zp bGUuaA0KPiBpbmRleCAxYTgyYWMwNWNlLi4wMjU1NGE5OTgzIDEwMDY0NA0KPiAtLS0gYS9VZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbVByb2ZpbGUuaA0KPiArKysgYi9VZWZpQ3B1UGtnL1Bp U21tQ3B1RHhlU21tL1NtbVByb2ZpbGUuaA0KPiBAQCAtMSw5ICsxLDkgQEANCj4gICAgLyoqIEBm aWxlDQo+ICAgIFNNTSBwcm9maWxlIGhlYWRlciBmaWxlLg0KPiANCj4gLUNvcHlyaWdodCAoYykg MjAxMiAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4N Cj4gK0NvcHlyaWdodCAoYykgMjAxMiAtIDIwMjQsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gDQo+ICAgICoqLw0KPiANCj4gICAgI2lmbmRlZiBfU01NX1BST0ZJTEVf SF8NCj4gQEAgLTgxLDE0ICs4MSwxNiBAQCBQYWdlRmF1bHRJZHRIYW5kbGVyU21tUHJvZmlsZSAo DQo+ICAgICAgKTsNCj4gDQo+ICAgIC8qKg0KPiAgICAgIENoZWNrIGlmIGZlYXR1cmUgaXMgc3Vw cG9ydGVkIGJ5IGEgcHJvY2Vzc29yLg0KPiANCj4gKyAgQHBhcmFtW2luXSBJc0JzcCAgIEluZGlj YXRlIGl0J3MgY2FsbGVkIGJ5IEJTUCBvciBub3QuDQo+ICsNCj4gICAgKiovDQo+ICAgIFZPSUQN Cj4gICAgQ2hlY2tGZWF0dXJlU3VwcG9ydGVkICgNCj4gLSAgVk9JRA0KPiArICBJTiBCT09MRUFO ICBJc0JzcA0KPiAgICAgICk7DQo+IA0KPiAgICAvKioNCj4gICAgICBVcGRhdGUgcGFnZSB0YWJs ZSBhY2NvcmRpbmcgdG8gcHJvdGVjdGVkIG1lbW9yeSByYW5nZXMgYW5kIHRoZQ0KPiA0S0ItcGFn ZSBtYXBwZWQgbWVtb3J5IHJhbmdlcy4NCj4gDQo+IA0KPiAtLQ0KPiBCcmlhbiBKLiBKb2huc29u DQo+IEVudGVycHJpc2UgWDg2IExhYg0KPiBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZQ0KDQoK LT0tPS09LT0tPS09LT0tPS09LT0tPS0KR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwg bWVzc2FnZXMgc2VudCB0byB0aGlzIGdyb3VwLgpWaWV3L1JlcGx5IE9ubGluZSAoIzExNTE0Nik6 IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzExNTE0NgpNdXRlIFRoaXMg VG9waWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210LzEwNDE1MzQ4OC83Njg2MTc2Ckdyb3VwIE93bmVy OiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbwpVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdy b3Vwcy5pby9nL2RldmVsL3Vuc3ViIFtyZWJlY2NhQG9wZW5mdy5pb10KLT0tPS09LT0tPS09LT0t PS09LT0tPS0KCg0K