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 45310AC0A37 for ; Mon, 6 Nov 2023 02:47:24 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=/jQXcDITTnq4mTnW/6OlOF0fDq909Nm9YbXH4y0l4TU=; 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=1699238842; v=1; b=wc+w+jeGq6sPSJsLW+qHCtm7RmAnD/KErF5dP7+2ux8S6C/KJ04Lv3uYe65FtityX5ndh6w6 E5CpkgHTHfEKvK5rd63qO9zQhOh8U2eEjfWs+Ws2raWllSSHeNHKggtp6HCsENGR0VsEQPeCGWN ESFgcr1Q/zr8pRCRhQTJ3S0I= X-Received: by 127.0.0.2 with SMTP id bvieYY7687511x81MOPzSIpd; Sun, 05 Nov 2023 18:47:22 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.45924.1699238841823980194 for ; Sun, 05 Nov 2023 18:47:22 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10885"; a="392063946" X-IronPort-AV: E=Sophos;i="6.03,280,1694761200"; d="scan'208";a="392063946" X-Received: from orviesa001.jf.intel.com ([10.64.159.141]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2023 18:47:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.03,280,1694761200"; d="scan'208";a="9944302" X-Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orviesa001.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 05 Nov 2023 18:47:21 -0800 X-Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sun, 5 Nov 2023 18:47:20 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sun, 5 Nov 2023 18:47:19 -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.34 via Frontend Transport; Sun, 5 Nov 2023 18:47:19 -0800 X-Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.40) 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.34; Sun, 5 Nov 2023 18:47:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XSFr9vu0vDsu9+/GYW5hyh44xJoMy0Mt9odr4EtFNvR0vZxJyE+2MeC07k0UmQSv2AWnPHYfZaLaxMT/SI0MKF5h0H8TNyt+u/VDRbOY/dvn5ERSS1w+M8/2pspfqEzt3kzZgKaqpEG2p7B5iQMjC+GlZAj6Q1x5NC+thVmFj4XK/CixXh9gK8x/HlrDppdvebaedS/xErtUAclH/vVZpo8jefss1VoccWlJTqgXdfdHH3n0dkib9QG8IpUd/5j2LNlmGmYtWQuZlpul9jjAXp9jqmmalhrWX9jWIk24I56fasFce670NoqWW5Eu/3KanFi9fTlSnO2Z2tDklke88w== 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=OdyLoLrwJzhc9Miw7cXwXWxdlwjtjlIBfaXBQnWZEJ8=; b=NyE+cmgaKwsFQotcCiPN2BhRE4cr53jZyn6/+zAQqQg94l3Y6cyghe6Y9XrtvtxERmBwDYgf0h48W/asXGayqafMlFZ7Vse6v7naiNyZ7pazZxCyOBl1BTU7QS9ZcDYZcjjI12NJmshyZZMvujjJQbjT5gu81DXemII10mZyiV9jdqXO8fiNjTCjWKtfmNytngWG+Lq17PhYrMDJXEwxfpxPNv4FR3QXkYMSy4FGyt5MYTwow59cVjsdeuvPx/PqnEjNgzcp2KPYvuJRsyIiVBqlmOMWcZ1WTIM+UFS1EG3mWYjBxsp2TTQi9STqRHZBY6m7KRidjhdhtBkTvlOt8g== 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 DS7PR11MB7860.namprd11.prod.outlook.com (2603:10b6:8:e9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.27; Mon, 6 Nov 2023 02:47:12 +0000 X-Received: from MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::6e7f:8903:fdc6:9833]) by MN0PR11MB6158.namprd11.prod.outlook.com ([fe80::6e7f:8903:fdc6:9833%7]) with mapi id 15.20.6954.021; Mon, 6 Nov 2023 02:47:12 +0000 From: "Wu, Jiaxin" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Dong, Eric" , "Ni, Ray" , "Zeng, Star" , Gerd Hoffmann , "Kumar, Rahul R" Subject: Re: [edk2-devel] [PATCH v2] UefiCpuPkg/PiSmmCpuDxeSmm: Fix CP Exception when CET enable Thread-Topic: [PATCH v2] UefiCpuPkg/PiSmmCpuDxeSmm: Fix CP Exception when CET enable Thread-Index: AQHaD9dkBwJrIEnldkCYbNUZx8J91LBsl0bw Date: Mon, 6 Nov 2023 02:47:11 +0000 Message-ID: References: <20231103183743.17308-1-jiaxin.wu@intel.com> <9dffc6c9-af88-23fb-42ef-8e4ede2002b1@redhat.com> In-Reply-To: <9dffc6c9-af88-23fb-42ef-8e4ede2002b1@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN0PR11MB6158:EE_|DS7PR11MB7860:EE_ x-ms-office365-filtering-correlation-id: 9e9ccf5b-5248-499a-c1a6-08dbde72ad2e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: NqDOjuo68HC9qk0FnAV15pYKTxJN9vpQqVKz0vV2R1FHoFnOIKAh7pwcrl431720fvI8pCcLwy9qSsSVnvoJLaR28P58M6ESZn0hx/g6AQn0+xSIsO2g5EvLdqgL7VkZSyuGihrnhCMCVM7w4l12o2BJte8BXYjQwLotM+ONr7llbhFs+nydAZF7rSSSQLpyQhg+k2/Qp/eaZCcvGarrTioEX0zp5C34lX8kaTWOxbJ3r/k+g4/PRwCgkpyDLzGCcu8NXyfo6cFArHMo+ZC8Jokg9jqkiRcFCv4U7yfqbKBJt7SFJqXnENU6SJPSse6bbecy8H07g6f0GNV1t3BzEinA/L6Rpllt8hXhs/Bd2CogA9kzrfOodiPGi6gIaZiSIHNQd+6lPkJFtZ8rIIV14a4B9XdyZKcRPUwmJcb2j5rd7rmV5KI0fqRbS/YDj/Py4xykyrtjr3ecF5T4/qHAt+67WUoCpLG9yNcgCOeiYJuEzo7dQUgIBRjVkL7Djtqvey3xDXKX9ISQOohNSU37YfCnAnKMHP96MFSfMJeuFGsDUpnOP6jLnrTaFYaxOg5IL5Hj7RRFwRNrW5HnwWZOPIPVVR/Yi+PqRZeTgamqWGo0kvyoCO7a28fJhWtyYLRL x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U3MzQXM1TFJOSFY5M1BZU0VPZWdmcTBrM0g1L1BwME5TWEk3WStMZS9LY3B0?= =?utf-8?B?YUd0T3p6enBzS3cyelMzVExlQUZYVFRxb0R1b3J0M3hLSkZERE1hdDg4Z1Rz?= =?utf-8?B?SWRWWTVLUjNRdzZ4UFpUMkFRRmxnOUt3ajJFRmVDaTBQTGMrZ0cwaHBNVDVO?= =?utf-8?B?VTJqdGc5N0RvbFdSVlkrck1NazhvWkFBMXJrWitEdnY4QVBFaFVNZDhUV2JG?= =?utf-8?B?ZHoxMmJkTkhlaVFWS1BOeHIxNk8wQ0twS2NwKzF4WVBuRWRSQUhycTI2MGRR?= =?utf-8?B?a3B1bXgrN1lMbVdkRlZmQnlNbVY1NFAveGZBcHlFNmF6aU9udjE5d3NQQm5O?= =?utf-8?B?dXFleWZsT3psWUh6VUdBcFpHVGNCZHY0bVZ0dlhVa2FrbytZcksxMm05NEtM?= =?utf-8?B?VDd4aThpTGhOUXBaMndTcmZFRkNoOVI3anJXdHRRbkZ5SUtKN2kxR0QvcE9K?= =?utf-8?B?Sm9CWW1ybkVTNXg3dElaaEJENjE2Wk1vdHpwYzRLWGxLeGlrVTM2dFJDamVM?= =?utf-8?B?UHB3dzN4c2NNMHgxSGg3Wlg4SFhnVDNZNHlWeXlJamVWUUdJeWhlaUdOZktM?= =?utf-8?B?YzQvdWF0NFZSMXFDbEErWEtGelY5cWw3bW1qVGdxNUVsV1dCK0tWSWlndGd5?= =?utf-8?B?YklJeHFiZDhidGd3RCt6aUhKaG5hWGRzd2x3eEE4OGVQamNrZ2hLYktDUnov?= =?utf-8?B?c2prSFVQem5IVEJ0UXFGT0hBUzRWdkRDR1ljVDRuNjh2dnEvUzZpZTNCendo?= =?utf-8?B?T1MwMFNiS1JCMVlMMS9OblBSSzduZVpTaTlFbDdDUzhpZjluWjhaMU12ako0?= =?utf-8?B?eStCVWptR3U1TDFGaFgrUWU0SlZ2dVJoUTBXQjQzWWFwQlZkRHZlK3duZThy?= =?utf-8?B?NE1LNFRFajhBNnpWcHRxWTJmemZlZ3R3YWYwMC9zSnFyT0Q3dEoxZzM5b1Bi?= =?utf-8?B?L0V6Z0NxRy9idVgrbjJQWFBRSExhN0dtOU5GSHVuK3dacEFtRXVSR1RnVFBo?= =?utf-8?B?cS84V2U1VjI1OERLNCtHT1pLU2hWdnRLWFVlaGwwNFJIbTZIWXU1T0dndC8z?= =?utf-8?B?ZjJXSEVZakhnQmZReDgvK1p6L0VDaXMzdWkwc2tBRUI1UWg4SHordmdTa0Qz?= =?utf-8?B?ZTNrSkdaN0I4SGZQcER0ckZ5MHp6RExUc09VOHVaMk9lenczYTFma0lDbG5x?= =?utf-8?B?dVdoaHFWOXAwQXUzWEQ5THUyMkVKenh1akg3Q3dXZzV1WFVPWU1uYlZicEpR?= =?utf-8?B?Y284bm1mYkkxcGVMQ2JlSEVwa1hTSEwzcFN2TTYzT3lrNWpRWXJaaXFKVWV4?= =?utf-8?B?c1lPRGQ4QXMyc0dsTUx2ank5V2l1QzhxWXc3RWh6WjdNdXdQbWsvWWYwRnpT?= =?utf-8?B?MjAyckFlRHkrcDgwcUk0b01WVGRQSXIrd3ZzWXdCa3hocm4wREdDa012ZFdj?= =?utf-8?B?cWczbk4vSFhCekpRMkZYVVF5Q1QvRmJtUmpmNU1BNEVGY09lVWdsNDI0d2hB?= =?utf-8?B?a3E2Qy8rMzZ5bHZoM1dsSHRpelFCZTFhTHJKenliQVkzUGxRZnZuUUN2eXZ0?= =?utf-8?B?N2xIVnlSLzNXVXUzZ1UxL3IzcDFtdDlPQXc5T2Nkd3pmK1ZjaTRjRS9IRi9B?= =?utf-8?B?N0poZUZXaVVhL1dkVFZOc21EcHR6MnhmbXdDUnhMRGRpaDJCL3NmSm02TTRO?= =?utf-8?B?Y1BSNkNmdThhVjhqdVNZYmZkQWRyekZoNHhJWUNYS2lNVHV4NDNqOFNkQ1BI?= =?utf-8?B?UDdiNzJWd1ZXbFRiQ29ZZVNETWdqRW9pQjZ5YnRWTy9wWFVVQ092S0FOeXg2?= =?utf-8?B?K2dWRklTZUY2MWNBWDgwNDJvMWtyQWRCVC9uMzRjTVVtWFVMc1dWTXkzSjhk?= =?utf-8?B?d014ZmlTN0hoU1NzRGFQV20wYU85UTNLcXBPc0VYWEtOTHFtV3E2S1U3Z1Ny?= =?utf-8?B?YXVlWWU3VDBJOXAzN2J6QWpwNEltU1R4MUVWNVdXbGNnZFUyc2tHaHJLdEFG?= =?utf-8?B?WlN0cUsrQVNIcXUxbjAzak1ueDFBWFZ1b2tNMFZIZHJMY3lFejMySXozcHlH?= =?utf-8?B?MWtBdUhYVmRReFMrL1Q0UjExcDF4eDhWcU1mSXVUNFhZQUsxZkcxcWZhZjFN?= =?utf-8?Q?fT7g17ezlrj9ZNUBJZj06s2kJ?= 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: 9e9ccf5b-5248-499a-c1a6-08dbde72ad2e X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2023 02:47:11.5604 (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: SUPHZDgts11Iz+Xz9kZefRVvNhGV+7TmGjanQeG/yLRF7BD60j7kNDxQn7ouZnVstPyOioTOBzh1UPnzDyhuxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7860 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: XKKTkRz7RKnRZygr8xYYwxqfx7686176AA= 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=wc+w+jeG; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); 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 VGhhbmtzIExhc3psbywgYWxsIGZpeGVkIGluIHZlcnNpb24gMy4NCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0K PiBTZW50OiBTdW5kYXksIE5vdmVtYmVyIDUsIDIwMjMgNzowMSBQTQ0KPiBUbzogV3UsIEppYXhp biA8amlheGluLnd1QGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBEb25n LCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IFplbmcsIFN0YXINCj4gPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBHZXJkIEhvZmZtYW5uIDxrcmF4 ZWxAcmVkaGF0LmNvbT47IEt1bWFyLCBSYWh1bCBSDQo+IDxyYWh1bC5yLmt1bWFyQGludGVsLmNv bT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0gVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbTog Rml4IENQIEV4Y2VwdGlvbg0KPiB3aGVuIENFVCBlbmFibGUNCj4gDQo+IEhpIEppYXhpbiwNCj4g DQo+IGxvb2tzIGdyZWF0OyBub3cgSSdtIG9ubHkgYXNraW5nIGZvciBhIGZldyBsaWdodCB0b3Vj aC11cHM6DQo+IA0KPiBPbiAxMS8zLzIzIDE5OjM3LCBKaWF4aW4gV3Ugd3JvdGU6DQo+ID4gU2hh ZG93IHN0YWNrIHdpbGwgc3RvcCB1cGRhdGUgYWZ0ZXIgQ0VUIGRpc2FibGUgKERpc2FibGVDZXQg aW4NCj4gPiBEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0KSwgYnV0IG5vcm1hbCBzbWkg c3RhY2sgd2lsbCBiZQ0KPiA+IGNvbnRpbnVlIHVwZGF0ZWQgd2l0aCB0aGUgZnVuY3Rpb24gcmV0 dXJuIGFuZCBlbnRlcg0KPiA+IChEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICYgRW5h YmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0KSwNCj4gPiB0aHVzIGxlYWRpbmcgc3RhY2sgbWlz bWF0Y2ggYWZ0ZXIgQ0VUIHJlLWVuYWJsZWQgKEVuYWJsZUNldCBpbg0KPiA+IEVuYWJsZVJlYWRP bmx5UGFnZVdyaXRlUHJvdGVjdCkuDQo+ID4NCj4gPiBOb3JtYWwgc21pIHN0YWNrIGFuZCBzaGFk b3cgc3RhY2sgbXVzdCBiZSBtYXRjaGVkIHdoZW4gQ0VUIGVuYWJsZSwNCj4gPiBvdGhlcndpc2Ug Q1AgRXhjZXB0aW9uIHdpbGwgaGFwcGVuLCB3aGljaCBpcyBjYXVzZWQgYnkgYSBuZWFyIFJFVA0K PiA+IGluc3RydWN0aW9uIChTZWUgU0RNIFZvbCAzLCA2LjE1LUNvbnRyb2wgUHJvdGVjdGlvbiBF eGNlcHRpb24pLg0KPiA+DQo+ID4gV2l0aCBhYm92ZSByZXF1aXJlbWVudCwgZGVmaW5lIGJlbG93 IDIgbWFjcm9zIGluc3RlYWQgb2YgZnVuY3Rpb25zDQo+ID4gZm9yIFdQICYgQ0VUIG9wZXJhdGlv bjoNCj4gPiBXUklURV9VTlBST1RFQ1RfUk9fUEFHRVMgKFdwLCBDZXQpDQo+ID4gV1JJVEVfUFJP VEVDVF9ST19QQUdFUyAoV3AsIENldCkNCj4gPiBCZWNhdXNlICJDRVQiIGZlYXR1cmUgZGlzYWJs ZSAmIGVuYWJsZSBtdXN0IGJlIGluIHRoZSBzYW1lDQo+ID4gZnVuY3Rpb24gdG8gYXZvaWQgc2hh ZG93IHN0YWNrIGFuZCBub3JtYWwgU01JIHN0YWNrIG1pc21hdGNoLg0KPiA+DQo+ID4gTm90ZTog V1JJVEVfVU5QUk9URUNUX1JPX1BBR0VTICgpIG11c3QgYmUgY2FsbGVkIHBhaXIgd2l0aA0KPiA+ IFdSSVRFX1BST1RFQ1RfUk9fUEFHRVMgKCkgaW4gc2FtZSBmdW5jdGlvbi4NCj4gPg0KPiA+IENo YW5nZS1JZDogSTRlMTI2Njk3ZWZjZDhkYmZiNDg4N2RhMDM0ZDg2OTFiZmNhOTY5ZTMNCj4gDQo+ ICgxKSBQbGVhc2UgZHJvcCB0aGUgQ2hhbmdlLUlkIGxpbmU7IGl0IGlzIG5vdCBtZWFuaW5nZnVs IGluIHRoZSB1cHN0cmVhbQ0KPiByZXBvLg0KPiANCj4gPiBDYzogRXJpYyBEb25nIDxlcmljLmRv bmdAaW50ZWwuY29tPg0KPiA+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4gQ2M6 IFplbmcgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT4NCj4gPiBDYzogR2VyZCBIb2ZmbWFubiA8 a3JheGVsQHJlZGhhdC5jb20+DQo+ID4gQ2M6IFJhaHVsIEt1bWFyIDxyYWh1bDEua3VtYXJAaW50 ZWwuY29tPg0KPiA+IENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+IFNp Z25lZC1vZmYtYnk6IEppYXhpbiBXdSA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPiAtLS0NCj4g PiAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9QaVNtbUNwdUR4ZVNtbS5oICAgICAgICAgfCA0 Ng0KPiArKysrKysrKy0tLQ0KPiA+ICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNwdU1l bW9yeU1hbmFnZW1lbnQuYyB8IDk2DQo+ICsrKysrKysrKysrLS0tLS0tLS0tLS0NCj4gPiAgVWVm aUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1Qcm9maWxlLmMgICAgICAgICAgICAgfCAxMyArKy0N Cj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA5NCBpbnNlcnRpb25zKCspLCA2MSBkZWxldGlvbnMoLSkN Cj4gPg0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1 RHhlU21tLmgNCj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmgN Cj4gPiBpbmRleCA2NTQ5MzVkYzc2Li41ZDE2Nzg5OWZmIDEwMDY0NA0KPiA+IC0tLSBhL1VlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPiA+ICsrKyBiL1VlZmlDcHVQ a2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaA0KPiA+IEBAIC0xNTUxLDI5ICsxNTUx LDUxIEBAIFZPSUQNCj4gPiAgU21tV2FpdEZvckFwQXJyaXZhbCAoDQo+ID4gICAgVk9JRA0KPiA+ ICAgICk7DQo+ID4NCj4gPiAgLyoqDQo+ID4gLSAgRGlzYWJsZSBXcml0ZSBQcm90ZWN0IG9uIHBh Z2VzIG1hcmtlZCBhcyByZWFkLW9ubHkgaWYgQ3IwLkJpdHMuV1AgaXMgMS4NCj4gPiArICBXcml0 ZSB1bnByb3RlY3QgcmVhZC1vbmx5IHBhZ2VzIGlmIENyMC5CaXRzLldQIGlzIDEuDQo+ID4gKw0K PiA+ICsgIEBwYXJhbVtvdXRdICBXcml0ZVByb3RlY3QgICAgICBJZiBDcjAuV1AgaXMgZW5hYmxl ZC4NCj4gDQo+ICgyKSBUaGUgY29tbWVudCByZWZlcmVuY2VzIHRvIHRoZSBXUCBiaXQgYXJlIG5v dCBjb25zaXN0ZW50LiBXZSBzaG91bGQNCj4gZWl0aGVyIHN0aWNrIHdpdGggQ3IwLldQIG9yIENy MC5CaXRzLldQLCBidXQgbm90IG1peCB0aGVtLg0KPiANCj4gSSB1bmRlcnN0YW5kIHRoaXMgaW5j b25zaXN0ZW5jeSBleGlzdHMgcHJlLXBhdGNoLCBidXQgYmVjYXVzZSB3ZSdyZQ0KPiBtb2RpZnlp bmcgdGhlIHNhbWUgc2VudGVuY2VzLCBJIHRoaW5rIGl0IHdvdWxkIGJlIE9LIHRvIGNsZWFuIHVw IHRoZSBXUA0KPiBiaXQgcmVmZXJlbmNlcyBhcyB3ZWxsLCBhdCB0aGUgc2FtZSB0aW1lLg0KPiAN Cj4gPg0KPiA+IC0gIEBwYXJhbVtvdXRdICBXcEVuYWJsZWQgICAgICBJZiBDcjAuV1AgaXMgZW5h YmxlZC4NCj4gPiAtICBAcGFyYW1bb3V0XSAgQ2V0RW5hYmxlZCAgICAgSWYgQ0VUIGlzIGVuYWJs ZWQuDQo+ID4gICoqLw0KPiA+ICBWT0lEDQo+ID4gLURpc2FibGVSZWFkT25seVBhZ2VXcml0ZVBy b3RlY3QgKA0KPiA+IC0gIE9VVCBCT09MRUFOICAqV3BFbmFibGVkLA0KPiA+IC0gIE9VVCBCT09M RUFOICAqQ2V0RW5hYmxlZA0KPiA+ICtTbW1Xcml0ZVVucHJvdGVjdFJlYWRPbmx5UGFnZSAoDQo+ ID4gKyAgT1VUIEJPT0xFQU4gICpXcml0ZVByb3RlY3QNCj4gPiAgICApOw0KPiA+DQo+ID4gIC8q Kg0KPiA+IC0gIEVuYWJsZSBXcml0ZSBQcm90ZWN0IG9uIHBhZ2VzIG1hcmtlZCBhcyByZWFkLW9u bHkuDQo+ID4gKyAgV3JpdGUgcHJvdGVjdCByZWFkLW9ubHkgcGFnZXMuDQo+ID4gKw0KPiA+ICsg IEBwYXJhbVtvdXRdICBXcml0ZVByb3RlY3QgICAgICBJZiBDcjAuV1Agc2hvdWxkIGJlIGVuYWJs ZWQuDQo+ID4NCj4gPiAtICBAcGFyYW1bb3V0XSAgV3BFbmFibGVkICAgICAgSWYgQ3IwLldQIHNo b3VsZCBiZSBlbmFibGVkLg0KPiA+IC0gIEBwYXJhbVtvdXRdICBDZXRFbmFibGVkICAgICBJZiBD RVQgc2hvdWxkIGJlIGVuYWJsZWQuDQo+ID4gICoqLw0KPiA+ICBWT0lEDQo+ID4gLUVuYWJsZVJl YWRPbmx5UGFnZVdyaXRlUHJvdGVjdCAoDQo+ID4gLSAgQk9PTEVBTiAgV3BFbmFibGVkLA0KPiA+ IC0gIEJPT0xFQU4gIENldEVuYWJsZWQNCj4gPiArU21tV3JpdGVQcm90ZWN0UmVhZE9ubHlQYWdl ICgNCj4gPiArICBJTiAgQk9PTEVBTiAgV3JpdGVQcm90ZWN0DQo+ID4gICAgKTsNCj4gDQo+ICgz KSBJZiwgdW5kZXIgKDIpLCB5b3Ugb3B0IGZvciBwcmVzZXJ2aW5nICJDcjAuQml0cy5XUCIsIHRo ZW4gcGxlYXNlIHVzZQ0KPiB0aGF0IHRlcm0gaGVyZSB0b28uDQo+IA0KPiA+DQo+ID4gKy8vLw0K PiA+ICsvLy8gQmVsb3cgcGllY2VzIG9mIGxvZ2ljIGFyZSBkZWZpbmVkIGFzIG1hY3JvcyBhbmQg bm90IGZ1bmN0aW9ucw0KPiA+ICsvLy8gYmVjYXVzZSAiQ0VUIiBmZWF0dXJlIGRpc2FibGUgJiBl bmFibGUgbXVzdCBiZSBpbiB0aGUgc2FtZQ0KPiA+ICsvLy8gZnVuY3Rpb24gdG8gYXZvaWQgc2hh ZG93IHN0YWNrIGFuZCBub3JtYWwgU01JIHN0YWNrIG1pc21hdGNoLA0KPiA+ICsvLy8gdGh1cyBX UklURV9VTlBST1RFQ1RfUk9fUEFHRVMgKCkgbXVzdCBiZSBjYWxsZWQgcGFpciB3aXRoDQo+ID4g Ky8vLyBXUklURV9QUk9URUNUX1JPX1BBR0VTICgpIGluIHNhbWUgZnVuY3Rpb24uDQo+ID4gKy8v Lw0KPiA+ICsjZGVmaW5lIFdSSVRFX1VOUFJPVEVDVF9ST19QQUdFUyhXcCwgQ2V0KSBcDQo+ID4g K3sgXA0KPiA+ICsgIENldCA9ICgoQXNtUmVhZENyNCAoKSAmIENSNF9DRVRfRU5BQkxFKSAhPSAw KTsgXA0KPiA+ICsgIGlmIChDZXQpIHsgXA0KPiA+ICsgICAgRGlzYWJsZUNldCAoKTsgXA0KPiA+ ICsgIH0gXA0KPiA+ICsgIFNtbVdyaXRlVW5wcm90ZWN0UmVhZE9ubHlQYWdlKCZXcCk7IFwNCj4g PiArfQ0KPiA+ICsNCj4gPiArI2RlZmluZSBXUklURV9QUk9URUNUX1JPX1BBR0VTKFdwLCBDZXQp IFwNCj4gPiAreyBcDQo+ID4gKyAgU21tV3JpdGVQcm90ZWN0UmVhZE9ubHlQYWdlKFdwKTsgXA0K PiA+ICsgIGlmIChDZXQpIHsgXA0KPiA+ICsgICAgRW5hYmxlQ2V0ICgpOyBcDQo+ID4gKyAgfSBc DQo+ID4gK30NCj4gPiArDQo+ID4gICNlbmRpZg0KPiANCj4gKDQpIEFzc3VtaW5nIHRoZSBFQ0Mg Q2hlY2sgUGx1Z2luIHRvbGVyYXRlcyBpdCwgSSByZWNvbW1lbmQgYWRkaW5nIHR3bw0KPiBlbnRy aWVzIHRvIHRoZSBkb2N1bWVudGF0aW9uIGhlcmU6DQo+IA0KPiAvLy8gQHBhcmFtW2luLG91dF0g V3AgICBBIEJPT0xFQU4gdmFyaWFibGUgbG9jYWwgdG8gdGhlIGNvbnRhaW5pbmcNCj4gLy8vICAg ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24sIGNhcnJ5aW5nIHdyaXRlIHByb3RlY3Rpb24gc3Rh dHVzIGZyb20NCj4gLy8vICAgICAgICAgICAgICAgICAgICAgV1JJVEVfVU5QUk9URUNUX1JPX1BB R0VTKCkgdG8NCj4gLy8vICAgICAgICAgICAgICAgICAgICAgV1JJVEVfUFJPVEVDVF9ST19QQUdF UygpLg0KPiAvLy8NCj4gLy8vIEBwYXJhbVtpbixvdXRdIENldCAgQSBCT09MRUFOIHZhcmlhYmxl IGxvY2FsIHRvIHRoZSBjb250YWluaW5nDQo+IC8vLyAgICAgICAgICAgICAgICAgICAgIGZ1bmN0 aW9uLCBjYXJyeWluZyBjb250cm9sIGZsb3cgaW50ZWdyaXR5DQo+IC8vLyAgICAgICAgICAgICAg ICAgICAgIGVuZm9yY2VtZW50IHN0YXR1cyBmcm9tDQo+IC8vLyAgICAgICAgICAgICAgICAgICAg IFdSSVRFX1VOUFJPVEVDVF9ST19QQUdFUygpIHRvDQo+IC8vLyAgICAgICAgICAgICAgICAgICAg IFdSSVRFX1BST1RFQ1RfUk9fUEFHRVMoKS4NCj4gDQo+IEkgcmVjb21tZW5kIHRoaXMgYmVjYXVz ZSBpdCBjbGFyaWZpZXMgdGhhdCBuZWl0aGVyIFdwIG5vciBDZXQgYXJlDQo+IHN1cHBvc2VkIHRv IGhhdmUgc2lkZSBlZmZlY3RzIChmb3IgZXhhbXBsZSwgIkNldCIgaXMgZXZhbHVhdGVkIG11bHRp cGxlDQo+IHRpbWVzIGluIFdSSVRFX1VOUFJPVEVDVF9ST19QQUdFUygpLCBzbyBjYWxsaW5nIHRo ZSBtYWNybyB3aXRoDQo+IHNvbWV0aGluZw0KPiBsaWtlICpDZXRWYXJpYWJsZSsrIHdvdWxkIG5v dCB3b3JrIHdlbGwpLg0KPiANCj4gDQo+ICg1KSBBIHNwYWNlIGNoYXJhY3RlciBpcyBtaXNzaW5n IHJpZ2h0IGFmdGVyIGVhY2ggb2YNCj4gIlNtbVdyaXRlVW5wcm90ZWN0UmVhZE9ubHlQYWdlIiBh bmQgIlNtbVdyaXRlUHJvdGVjdFJlYWRPbmx5UGFnZSIsDQo+IGJlZm9yZSB0aGUgcGFyZW5zLg0K PiANCj4gDQo+ICg2KSBJdCB3b3VsZCBiZSBtb3JlIGlkaW9tYXRpYyB0byAjZGVmaW5lIHRoZXNl IG1hY3JvcyBhczoNCj4gDQo+IGRvIHsgXA0KPiAgIC4uLiBcDQo+IH0gd2hpbGUgKEZBTFNFKQ0K PiANCj4gYmVjYXVzZSB0aGlzIHJlcGxhY2VtZW50IHRleHQgaXMgbW9yZSBzdWl0YWJsZSB0byBi ZSBmb2xsb3dlZCBieSBhDQo+IHNlbWljb2xvbiAiOyIuDQo+IA0KPiANCj4gPiBkaWZmIC0tZ2l0 DQo+IGEvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMN Cj4gYi9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQuYw0K PiA+IGluZGV4IDZmNDk4NjY2MTUuLjhlZGZkZGQzZWEgMTAwNjQ0DQo+ID4gLS0tIGEvVWVmaUNw dVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMNCj4gPiArKysgYi9V ZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbUNwdU1lbW9yeU1hbmFnZW1lbnQuYw0KPiA+IEBA IC0zOSw2NCArMzksNDcgQEAgUEFHRV9UQUJMRV9QT09MICAqbVBhZ2VUYWJsZVBvb2wgPSBOVUxM Ow0KPiA+ICAvLyBJZiBtZW1vcnkgdXNlZCBieSBTTU0gcGFnZSB0YWJsZSBoYXMgYmVlbiBtYXJl a2VkIGFzIFJlYWRPbmx5Lg0KPiA+ICAvLw0KPiA+ICBCT09MRUFOICBtSXNSZWFkT25seVBhZ2VU YWJsZSA9IEZBTFNFOw0KPiA+DQo+ID4gIC8qKg0KPiA+IC0gIERpc2FibGUgV3JpdGUgUHJvdGVj dCBvbiBwYWdlcyBtYXJrZWQgYXMgcmVhZC1vbmx5IGlmIENyMC5CaXRzLldQIGlzIDEuDQo+ID4g KyAgV3JpdGUgdW5wcm90ZWN0IHJlYWQtb25seSBwYWdlcyBpZiBDcjAuQml0cy5XUCBpcyAxLg0K PiA+ICsNCj4gPiArICBAcGFyYW1bb3V0XSAgV3JpdGVQcm90ZWN0ICAgICAgSWYgQ3IwLldQIGlz IGVuYWJsZWQuDQo+ID4NCj4gPiAtICBAcGFyYW1bb3V0XSAgV3BFbmFibGVkICAgICAgSWYgQ3Iw LldQIGlzIGVuYWJsZWQuDQo+ID4gLSAgQHBhcmFtW291dF0gIENldEVuYWJsZWQgICAgIElmIENF VCBpcyBlbmFibGVkLg0KPiA+ICAqKi8NCj4gPiAgVk9JRA0KPiANCj4gKDcpIElmIHlvdSBkZWNp ZGUgdG8gdG91Y2ggdXAgdGhlIGZ1bmN0aW9uIGNvbW1lbnQgaW4gdGhlIGhlYWRlciBmaWxlLA0K PiB0aGVuIHBsZWFzZSBrZWVwIHRoaXMgaW4gc3luYy4NCj4gDQo+IA0KPiA+IC1EaXNhYmxlUmVh ZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgNCj4gPiAtICBPVVQgQk9PTEVBTiAgKldwRW5hYmxlZCwN Cj4gPiAtICBPVVQgQk9PTEVBTiAgKkNldEVuYWJsZWQNCj4gPiArU21tV3JpdGVVbnByb3RlY3RS ZWFkT25seVBhZ2UgKA0KPiA+ICsgIE9VVCBCT09MRUFOICAqV3JpdGVQcm90ZWN0DQo+ID4gICAg KQ0KPiA+ICB7DQo+ID4gICAgSUEzMl9DUjAgIENyMDsNCj4gPg0KPiA+IC0gICpDZXRFbmFibGVk ID0gKChBc21SZWFkQ3I0ICgpICYgQ1I0X0NFVF9FTkFCTEUpICE9IDApID8gVFJVRSA6IEZBTFNF Ow0KPiA+IC0gIENyMC5VaW50TiAgID0gQXNtUmVhZENyMCAoKTsNCj4gPiAtICAqV3BFbmFibGVk ICA9IChDcjAuQml0cy5XUCAhPSAwKSA/IFRSVUUgOiBGQUxTRTsNCj4gPiAtICBpZiAoKldwRW5h YmxlZCkgew0KPiA+IC0gICAgaWYgKCpDZXRFbmFibGVkKSB7DQo+ID4gLSAgICAgIC8vDQo+ID4g LSAgICAgIC8vIENFVCBtdXN0IGJlIGRpc2FibGVkIGlmIFdQIGlzIGRpc2FibGVkLiBEaXNhYmxl IENFVCBiZWZvcmUgY2xlYXJpbmcNCj4gQ1IwLldQLg0KPiA+IC0gICAgICAvLw0KPiA+IC0gICAg ICBEaXNhYmxlQ2V0ICgpOw0KPiA+IC0gICAgfQ0KPiA+IC0NCj4gPiArICBDcjAuVWludE4gICAg ID0gQXNtUmVhZENyMCAoKTsNCj4gPiArICAqV3JpdGVQcm90ZWN0ID0gKENyMC5CaXRzLldQICE9 IDApID8gVFJVRSA6IEZBTFNFOw0KPiANCj4gKDgpIENhbiB5b3UgcmVtb3ZlIHRoZSAiID8gVFJV RSA6IEZBTFNFIiBwYXJ0Pw0KPiANCj4gDQo+ID4gKyAgaWYgKCpXcml0ZVByb3RlY3QpIHsNCj4g PiAgICAgIENyMC5CaXRzLldQID0gMDsNCj4gPiAgICAgIEFzbVdyaXRlQ3IwIChDcjAuVWludE4p Ow0KPiA+ICAgIH0NCj4gPiAgfQ0KPiA+DQo+ID4gIC8qKg0KPiA+IC0gIEVuYWJsZSBXcml0ZSBQ cm90ZWN0IG9uIHBhZ2VzIG1hcmtlZCBhcyByZWFkLW9ubHkuDQo+ID4gKyAgV3JpdGUgcHJvdGVj dCByZWFkLW9ubHkgcGFnZXMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtvdXRdICBXcml0ZVByb3Rl Y3QgICAgICBJZiBDcjAuV1Agc2hvdWxkIGJlIGVuYWJsZWQuDQo+ID4NCj4gPiAtICBAcGFyYW1b b3V0XSAgV3BFbmFibGVkICAgICAgSWYgQ3IwLldQIHNob3VsZCBiZSBlbmFibGVkLg0KPiA+IC0g IEBwYXJhbVtvdXRdICBDZXRFbmFibGVkICAgICBJZiBDRVQgc2hvdWxkIGJlIGVuYWJsZWQuDQo+ ID4gICoqLw0KPiANCj4gKDkpIElmIHlvdSBkZWNpZGUgdG8gdG91Y2ggdXAgdGhlIGZ1bmN0aW9u IGNvbW1lbnQgaW4gdGhlIGhlYWRlciBmaWxlLA0KPiB0aGVuIHBsZWFzZSBrZWVwIHRoaXMgaW4g c3luYy4NCj4gDQo+ID4gIFZPSUQNCj4gPiAtRW5hYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0 ICgNCj4gPiAtICBCT09MRUFOICBXcEVuYWJsZWQsDQo+ID4gLSAgQk9PTEVBTiAgQ2V0RW5hYmxl ZA0KPiA+ICtTbW1Xcml0ZVByb3RlY3RSZWFkT25seVBhZ2UgKA0KPiA+ICsgIElOICBCT09MRUFO ICBXcml0ZVByb3RlY3QNCj4gPiAgICApDQo+ID4gIHsNCj4gPiAgICBJQTMyX0NSMCAgQ3IwOw0K PiA+DQo+ID4gLSAgaWYgKFdwRW5hYmxlZCkgew0KPiA+ICsgIGlmIChXcml0ZVByb3RlY3QpIHsN Cj4gPiAgICAgIENyMC5VaW50TiAgID0gQXNtUmVhZENyMCAoKTsNCj4gPiAgICAgIENyMC5CaXRz LldQID0gMTsNCj4gPiAgICAgIEFzbVdyaXRlQ3IwIChDcjAuVWludE4pOw0KPiA+IC0NCj4gPiAt ICAgIGlmIChDZXRFbmFibGVkKSB7DQo+ID4gLSAgICAgIC8vDQo+ID4gLSAgICAgIC8vIHJlLWVu YWJsZSBDRVQuDQo+ID4gLSAgICAgIC8vDQo+ID4gLSAgICAgIEVuYWJsZUNldCAoKTsNCj4gPiAt ICAgIH0NCj4gPiAgICB9DQo+ID4gIH0NCj4gPg0KPiA+ICAvKioNCj4gPiAgICBJbml0aWFsaXpl IGEgYnVmZmVyIHBvb2wgZm9yIHBhZ2UgdGFibGUgdXNlIG9ubHkuDQo+ID4gQEAgLTExOSwxMSAr MTAyLDExIEBAIEJPT0xFQU4NCj4gPiAgSW5pdGlhbGl6ZVBhZ2VUYWJsZVBvb2wgKA0KPiA+ICAg IElOIFVJTlROICBQb29sUGFnZXMNCj4gPiAgICApDQo+ID4gIHsNCj4gPiAgICBWT0lEICAgICAq QnVmZmVyOw0KPiA+IC0gIEJPT0xFQU4gIFdwRW5hYmxlZDsNCj4gPiArICBCT09MRUFOICBXcml0 ZVByb3RlY3Q7DQo+ID4gICAgQk9PTEVBTiAgQ2V0RW5hYmxlZDsNCj4gPg0KPiA+ICAgIC8vDQo+ ID4gICAgLy8gQWx3YXlzIHJlc2VydmUgYXQgbGVhc3QgUEFHRV9UQUJMRV9QT09MX1VOSVRfUEFH RVMsIGluY2x1ZGluZyBvbmUNCj4gcGFnZSBmb3INCj4gPiAgICAvLyBoZWFkZXIuDQo+ID4gQEAg LTE1NywxMyArMTQwLDIxIEBAIEluaXRpYWxpemVQYWdlVGFibGVQb29sICgNCj4gPg0KPiA+ICAg IC8vDQo+ID4gICAgLy8gSWYgcGFnZSB0YWJsZSBtZW1vcnkgaGFzIGJlZW4gbWFya2VkIGFzIFJP LCBtYXJrIHRoZSBuZXcgcG9vbCBwYWdlcw0KPiBhcyByZWFkLW9ubHkuDQo+ID4gICAgLy8NCj4g PiAgICBpZiAobUlzUmVhZE9ubHlQYWdlVGFibGUpIHsNCj4gPiAtICAgIERpc2FibGVSZWFkT25s eVBhZ2VXcml0ZVByb3RlY3QgKCZXcEVuYWJsZWQsICZDZXRFbmFibGVkKTsNCj4gPiArICAgIC8v DQo+ID4gKyAgICAvLyBDRVQgbXVzdCBiZSBkaXNhYmxlZCBpZiBXUCBpcyBkaXNhYmxlZC4NCj4g PiArICAgIC8vDQo+ID4gKyAgICBXUklURV9VTlBST1RFQ1RfUk9fUEFHRVMgKFdyaXRlUHJvdGVj dCwgQ2V0RW5hYmxlZCk7DQo+ID4gKw0KPiA+ICAgICAgU21tU2V0TWVtb3J5QXR0cmlidXRlcyAo KEVGSV9QSFlTSUNBTF9BRERSRVNTKShVSU5UTilCdWZmZXIsDQo+IEVGSV9QQUdFU19UT19TSVpF IChQb29sUGFnZXMpLCBFRklfTUVNT1JZX1JPKTsNCj4gPiAtICAgIEVuYWJsZVJlYWRPbmx5UGFn ZVdyaXRlUHJvdGVjdCAoV3BFbmFibGVkLCBDZXRFbmFibGVkKTsNCj4gPiArDQo+ID4gKyAgICAv Lw0KPiA+ICsgICAgLy8gRW5hYmxlIHRoZSBXUCBhbmQgcmVzdG9yZSBDRVQgdG8gZW5hYmxlDQo+ ID4gKyAgICAvLw0KPiA+ICsgICAgV1JJVEVfUFJPVEVDVF9ST19QQUdFUyAoV3JpdGVQcm90ZWN0 LCBDZXRFbmFibGVkKTsNCj4gPiAgICB9DQo+ID4NCj4gPiAgICByZXR1cm4gVFJVRTsNCj4gPiAg fQ0KPiA+DQo+IA0KPiAoMTApIEhlcmUgb24gdGhlIG90aGVyIGhhbmQgSSBzdWdnZXN0ICpyZW1v dmluZyogdGhlc2UgY29tbWVudHMuIFRoZQ0KPiBtYWNyb3MgYXJlIHJlYWxseSB3ZWxsIGRlZmlu ZWQgYXQgdGhpcyBwb2ludCwgc28gSSB0aGluayBqdXN0IGludm9raW5nDQo+IHRoZSBtYWNyb3Mg c2hvdWxkIHN1ZmZpY2UuIFVwIHRvIHlvdSwgYW55d2F5OyBpZiB5b3UnZCBsaWtlIHRvIGtlZXAg dGhlDQo+IGNvbW1lbnRzLCBJIHdvbid0IGluc2lzdC4gOikNCj4gDQo+IElmIHlvdSBkZWNpZGUg dG8gcmVtb3ZlIHRoZSBjb21tZW50cywgdGhlbiBwbGVhc2Uga2VlcCB0aGUgcmVzdCBvZiB0aGUN Cj4gcGF0Y2ggKGJlbG93KSBjb25zaXN0ZW50IGFzIHdlbGwuDQo+IA0KPiA+IEBAIC0xMDA5LDEx ICsxMDAwLDExIEBAIFNldE1lbU1hcEF0dHJpYnV0ZXMgKA0KPiA+ICAgIFVJTlROICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUGFnZVRhYmxlOw0KPiA+ICAgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICAgIElBMzJfTUFQX0VOVFJZICAg ICAgICAgICAgICAgICAgICAgICAgKk1hcDsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENvdW50Ow0KPiA+ICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWVtb3J5QXR0cmlidXRlOw0KPiA+IC0gIEJPT0xFQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV3BFbmFibGVkOw0KPiA+ICsgIEJPT0xFQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV3JpdGVQcm90ZWN0Ow0KPiA+ICAgIEJPT0xFQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2V0RW5hYmxlZDsNCj4gPg0KPiA+ICAgIFNtbUdldFN5c3Rl bUNvbmZpZ3VyYXRpb25UYWJsZQ0KPiAoJmdFZGtpaVBpU21tTWVtb3J5QXR0cmlidXRlc1RhYmxl R3VpZCwgKFZPSUQNCj4gKiopJk1lbW9yeUF0dHJpYnV0ZXNUYWJsZSk7DQo+ID4gICAgaWYgKE1l bW9yeUF0dHJpYnV0ZXNUYWJsZSA9PSBOVUxMKSB7DQo+ID4gICAgICBERUJVRyAoKERFQlVHX0lO Rk8sICJNZW1vcnlBdHRyaWJ1dGVzVGFibGUgLSBOVUxMXG4iKSk7DQo+ID4gQEAgLTEwNTUsMTEg KzEwNDYsMTQgQEAgU2V0TWVtTWFwQXR0cmlidXRlcyAoDQo+ID4gICAgICBTdGF0dXMgPSBQYWdl VGFibGVQYXJzZSAoUGFnZVRhYmxlLCBtUGFnaW5nTW9kZSwgTWFwLCAmQ291bnQpOw0KPiA+ICAg IH0NCj4gPg0KPiA+ICAgIEFTU0VSVF9SRVRVUk5fRVJST1IgKFN0YXR1cyk7DQo+ID4NCj4gPiAt ICBEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkLCAmQ2V0RW5hYmxl ZCk7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBDRVQgbXVzdCBiZSBkaXNhYmxlZCBpZiBXUCBpcyBk aXNhYmxlZC4NCj4gPiArICAvLw0KPiA+ICsgIFdSSVRFX1VOUFJPVEVDVF9ST19QQUdFUyAoV3Jp dGVQcm90ZWN0LCBDZXRFbmFibGVkKTsNCj4gPg0KPiA+ICAgIE1lbW9yeU1hcCA9IE1lbW9yeU1h cFN0YXJ0Ow0KPiA+ICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE1lbW9yeU1hcEVudHJ5Q291 bnQ7IEluZGV4KyspIHsNCj4gPiAgICAgIERFQlVHICgoREVCVUdfVkVSQk9TRSwgIlNldEF0dHJp YnV0ZTogTWVtb3J5IEVudHJ5IC0gMHglbHgsDQo+IDB4JXhcbiIsIE1lbW9yeU1hcC0+UGh5c2lj YWxTdGFydCwgTWVtb3J5TWFwLT5OdW1iZXJPZlBhZ2VzKSk7DQo+ID4gICAgICBpZiAoTWVtb3J5 TWFwLT5UeXBlID09IEVmaVJ1bnRpbWVTZXJ2aWNlc0NvZGUpIHsNCj4gPiBAQCAtMTA4NSwxMSAr MTA3OSwxNSBAQCBTZXRNZW1NYXBBdHRyaWJ1dGVzICgNCj4gPiAgICAgICAgKTsNCj4gPg0KPiA+ ICAgICAgTWVtb3J5TWFwID0gTkVYVF9NRU1PUllfREVTQ1JJUFRPUiAoTWVtb3J5TWFwLA0KPiBE ZXNjcmlwdG9yU2l6ZSk7DQo+ID4gICAgfQ0KPiA+DQo+ID4gLSAgRW5hYmxlUmVhZE9ubHlQYWdl V3JpdGVQcm90ZWN0IChXcEVuYWJsZWQsIENldEVuYWJsZWQpOw0KPiA+ICsgIC8vDQo+ID4gKyAg Ly8gRW5hYmxlIHRoZSBXUCBhbmQgcmVzdG9yZSBDRVQgdG8gZW5hYmxlDQo+ID4gKyAgLy8NCj4g PiArICBXUklURV9QUk9URUNUX1JPX1BBR0VTIChXcml0ZVByb3RlY3QsIENldEVuYWJsZWQpOw0K PiA+ICsNCj4gPiAgICBGcmVlUG9vbCAoTWFwKTsNCj4gPg0KPiA+ICAgIFBhdGNoU21tU2F2ZVN0 YXRlTWFwICgpOw0KPiA+ICAgIFBhdGNoR2R0SWR0TWFwICgpOw0KPiA+DQo+ID4gQEAgLTEzOTIs MTggKzEzOTAsMjEgQEAgU2V0VWVmaU1lbU1hcEF0dHJpYnV0ZXMgKA0KPiA+ICAgIEVGSV9TVEFU VVMgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICAgIEVGSV9NRU1PUllfREVTQ1JJUFRPUiAgKk1l bW9yeU1hcDsNCj4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgIE1lbW9yeU1hcEVudHJ5Q291 bnQ7DQo+ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgICBJbmRleDsNCj4gPiAgICBFRklfTUVN T1JZX0RFU0NSSVBUT1IgICpFbnRyeTsNCj4gPiAtICBCT09MRUFOICAgICAgICAgICAgICAgIFdw RW5hYmxlZDsNCj4gPiArICBCT09MRUFOICAgICAgICAgICAgICAgIFdyaXRlUHJvdGVjdDsNCj4g PiAgICBCT09MRUFOICAgICAgICAgICAgICAgIENldEVuYWJsZWQ7DQo+ID4NCj4gPiAgICBQRVJG X0ZVTkNUSU9OX0JFR0lOICgpOw0KPiA+DQo+ID4gICAgREVCVUcgKChERUJVR19JTkZPLCAiU2V0 VWVmaU1lbU1hcEF0dHJpYnV0ZXNcbiIpKTsNCj4gPg0KPiA+IC0gIERpc2FibGVSZWFkT25seVBh Z2VXcml0ZVByb3RlY3QgKCZXcEVuYWJsZWQsICZDZXRFbmFibGVkKTsNCj4gPiArICAvLw0KPiA+ ICsgIC8vIENFVCBtdXN0IGJlIGRpc2FibGVkIGlmIFdQIGlzIGRpc2FibGVkLg0KPiA+ICsgIC8v DQo+ID4gKyAgV1JJVEVfVU5QUk9URUNUX1JPX1BBR0VTIChXcml0ZVByb3RlY3QsIENldEVuYWJs ZWQpOw0KPiA+DQo+ID4gICAgaWYgKG1VZWZpTWVtb3J5TWFwICE9IE5VTEwpIHsNCj4gPiAgICAg IE1lbW9yeU1hcEVudHJ5Q291bnQgPSBtVWVmaU1lbW9yeU1hcFNpemUvbVVlZmlEZXNjcmlwdG9y U2l6ZTsNCj4gPiAgICAgIE1lbW9yeU1hcCAgICAgICAgICAgPSBtVWVmaU1lbW9yeU1hcDsNCj4g PiAgICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IE1lbW9yeU1hcEVudHJ5Q291bnQ7IEluZGV4 KyspIHsNCj4gPiBAQCAtMTQ3OSwxMSArMTQ4MCwxNCBAQCBTZXRVZWZpTWVtTWFwQXR0cmlidXRl cyAoDQo+ID4NCj4gPiAgICAgICAgRW50cnkgPSBORVhUX01FTU9SWV9ERVNDUklQVE9SIChFbnRy eSwNCj4gbVVlZmlNZW1vcnlBdHRyaWJ1dGVzVGFibGUtPkRlc2NyaXB0b3JTaXplKTsNCj4gPiAg ICAgIH0NCj4gPiAgICB9DQo+ID4NCj4gPiAtICBFbmFibGVSZWFkT25seVBhZ2VXcml0ZVByb3Rl Y3QgKFdwRW5hYmxlZCwgQ2V0RW5hYmxlZCk7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBFbmFibGUg dGhlIFdQIGFuZCByZXN0b3JlIENFVCB0byBlbmFibGUNCj4gPiArICAvLw0KPiA+ICsgIFdSSVRF X1BST1RFQ1RfUk9fUEFHRVMgKFdyaXRlUHJvdGVjdCwgQ2V0RW5hYmxlZCk7DQo+ID4NCj4gPiAg ICAvLw0KPiA+ICAgIC8vIERvIG5vdCBmcmVlIG1VZWZpTWVtb3J5QXR0cmlidXRlc1RhYmxlLCBp dCB3aWxsIGJlIGNoZWNrZWQgaW4NCj4gSXNTbW1Db21tQnVmZmVyRm9yYmlkZGVuQWRkcmVzcygp Lg0KPiA+ICAgIC8vDQo+ID4NCj4gPiBAQCAtMTg3MCwzNCArMTg3NCwzNCBAQCBJZlJlYWRPbmx5 UGFnZVRhYmxlTmVlZGVkICgNCj4gPiAgVk9JRA0KPiA+ICBTZXRQYWdlVGFibGVBdHRyaWJ1dGVz ICgNCj4gPiAgICBWT0lEDQo+ID4gICAgKQ0KPiA+ICB7DQo+ID4gLSAgQk9PTEVBTiAgV3BFbmFi bGVkOw0KPiA+ICsgIEJPT0xFQU4gIFdyaXRlUHJvdGVjdDsNCj4gPiAgICBCT09MRUFOICBDZXRF bmFibGVkOw0KPiA+DQo+ID4gICAgaWYgKCFJZlJlYWRPbmx5UGFnZVRhYmxlTmVlZGVkICgpKSB7 DQo+ID4gICAgICByZXR1cm47DQo+ID4gICAgfQ0KPiA+DQo+ID4gICAgUEVSRl9GVU5DVElPTl9C RUdJTiAoKTsNCj4gPiAgICBERUJVRyAoKERFQlVHX0lORk8sICJTZXRQYWdlVGFibGVBdHRyaWJ1 dGVzXG4iKSk7DQo+ID4NCj4gPiAgICAvLw0KPiA+IC0gIC8vIERpc2FibGUgd3JpdGUgcHJvdGVj dGlvbiwgYmVjYXVzZSB3ZSBuZWVkIG1hcmsgcGFnZSB0YWJsZSB0byBiZSB3cml0ZQ0KPiBwcm90 ZWN0ZWQuDQo+ID4gLSAgLy8gV2UgbmVlZCAqd3JpdGUqIHBhZ2UgdGFibGUgbWVtb3J5LCB0byBt YXJrIGl0c2VsZiB0byBiZSAqcmVhZCBvbmx5Ki4NCj4gDQo+ICgxMSkgVGhlc2UgdHdvIGNvbW1l bnQgbGluZXMgc2VlbSBpbXBvcnRhbnQsIGFuZCBub3QgcmVsYXRlZCB0byB0aGUNCj4gcGF0Y2gg LS0gdGhleSBleHBsYWluICp3aHkqIHdlIGFyZSBkb2luZyB0aGUgV1AgLyBDRVQgdHdpZGRsaW5n LiBTbyBJDQo+IHJlY29tbWVuZCBrZWVwaW5nIHRoZXNlIChhbmQgb25seSByZW1vdmluZyB0aGUg Y29tbWVudCBsaW5lIGJlbG93KSENCj4gDQo+ID4gKyAgLy8gQ0VUIG11c3QgYmUgZGlzYWJsZWQg aWYgV1AgaXMgZGlzYWJsZWQuDQo+ID4gICAgLy8NCj4gPiAtICBEaXNhYmxlUmVhZE9ubHlQYWdl V3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkLCAmQ2V0RW5hYmxlZCk7DQo+ID4gKyAgV1JJVEVfVU5Q Uk9URUNUX1JPX1BBR0VTIChXcml0ZVByb3RlY3QsIENldEVuYWJsZWQpOw0KPiA+DQo+ID4gICAg Ly8gU2V0IG1lbW9yeSB1c2VkIGJ5IHBhZ2UgdGFibGUgYXMgUmVhZCBPbmx5Lg0KPiA+ICAgIERF QlVHICgoREVCVUdfSU5GTywgIlN0YXJ0Li4uXG4iKSk7DQo+ID4gICAgRW5hYmxlUGFnZVRhYmxl UHJvdGVjdGlvbiAoKTsNCj4gPg0KPiA+ICAgIC8vDQo+ID4gLSAgLy8gRW5hYmxlIHdyaXRlIHBy b3RlY3Rpb24sIGFmdGVyIHBhZ2UgdGFibGUgYXR0cmlidXRlIHVwZGF0ZWQuDQo+ID4gKyAgLy8g RW5hYmxlIHRoZSBXUCBhbmQgcmVzdG9yZSBDRVQgdG8gZW5hYmxlDQo+IA0KPiAoMTIpIHNhbWUg YXMgKDExKSBoZXJlLg0KPiANCj4gPiAgICAvLw0KPiA+IC0gIEVuYWJsZVJlYWRPbmx5UGFnZVdy aXRlUHJvdGVjdCAoVFJVRSwgQ2V0RW5hYmxlZCk7DQo+ID4gKyAgV1JJVEVfUFJPVEVDVF9ST19Q QUdFUyAoV3JpdGVQcm90ZWN0LCBDZXRFbmFibGVkKTsNCj4gPiArDQo+IA0KPiAoMTMpIFdob2Es IHRoZSAqb3JpZ2luYWwqIEVuYWJsZVJlYWRPbmx5UGFnZVdyaXRlUHJvdGVjdCgpIGNhbGwgcGFz c2VzDQo+IHRoZSBUUlVFIGNvbnN0YW50LCBub3QgV3BFbmFibGVkIQ0KPiANCj4gV2FzIHRoYXQg aW50ZW50aW9uYWwsIG9yIGFuIGluZGVwZW5kZW50IG92ZXJzaWdodD8NCj4gDQo+IElmIGl0IHdh cyBhbiBpbmRlcGVuZGVudCBvdmVyc2lnaHQgaW4gdGhlIG9yaWdpbmFsIGNvZGUsIHRoZW4gSSBh Z3JlZSB3ZQ0KPiBjYW4gZml4IGl0LCBhbmQgSSdtIG5vdCBldmVuIGFza2luZyBmb3IgYSBzZXBh cmF0ZSBwYXRjaCwgYnV0IHBsZWFzZQ0KPiBtZW50aW9uIGl0IGluIHRoZSBjb21taXQgbWVzc2Fn ZS4NCj4gDQo+ID4gICAgbUlzUmVhZE9ubHlQYWdlVGFibGUgPSBUUlVFOw0KPiA+DQo+ID4gICAg Ly8NCj4gPiAgICAvLyBGbHVzaCBUTEIgYWZ0ZXIgbWFyayBhbGwgcGFnZSB0YWJsZSBwb29sIGFz IHJlYWQgb25seS4NCj4gPiAgICAvLw0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21t Q3B1RHhlU21tL1NtbVByb2ZpbGUuYw0KPiBiL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21t UHJvZmlsZS5jDQo+ID4gaW5kZXggN2FjM2M2NmY5MS4uOGY2YTJkNDQwZSAxMDA2NDQNCj4gPiAt LS0gYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbVByb2ZpbGUuYw0KPiA+ICsrKyBiL1Vl ZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vU21tUHJvZmlsZS5jDQo+ID4gQEAgLTU5MiwxMSArNTky LDExIEBAIEluaXRQYWdpbmcgKA0KPiA+ICAgIFVJTlQ2NCAgICAgICAgIEJhc2U7DQo+ID4gICAg VUlOVDY0ICAgICAgICAgTGVuZ3RoOw0KPiA+ICAgIFVJTlQ2NCAgICAgICAgIExpbWl0Ow0KPiA+ ICAgIFVJTlQ2NCAgICAgICAgIFByZXZpb3VzQWRkcmVzczsNCj4gPiAgICBVSU5UNjQgICAgICAg ICBNZW1vcnlBdHRyTWFzazsNCj4gPiAtICBCT09MRUFOICAgICAgICBXcEVuYWJsZWQ7DQo+ID4g KyAgQk9PTEVBTiAgICAgICAgV3JpdGVQcm90ZWN0Ow0KPiA+ICAgIEJPT0xFQU4gICAgICAgIENl dEVuYWJsZWQ7DQo+ID4NCj4gPiAgICBQRVJGX0ZVTkNUSU9OX0JFR0lOICgpOw0KPiA+DQo+ID4g ICAgUGFnZVRhYmxlID0gQXNtUmVhZENyMyAoKTsNCj4gPiBAQCAtNjA0LDExICs2MDQsMTUgQEAg SW5pdFBhZ2luZyAoDQo+ID4gICAgICBMaW1pdCA9IEJBU0VfNEdCOw0KPiA+ICAgIH0gZWxzZSB7 DQo+ID4gICAgICBMaW1pdCA9IChJc1Jlc3RyaWN0ZWRNZW1vcnlBY2Nlc3MgKCkpID8gTFNoaWZ0 VTY0ICgxLA0KPiBtUGh5c2ljYWxBZGRyZXNzQml0cykgOiBCQVNFXzRHQjsNCj4gPiAgICB9DQo+ ID4NCj4gPiAtICBEaXNhYmxlUmVhZE9ubHlQYWdlV3JpdGVQcm90ZWN0ICgmV3BFbmFibGVkLCAm Q2V0RW5hYmxlZCk7DQo+ID4gKyAgLy8NCj4gPiArICAvLyBDRVQgbXVzdCBiZSBkaXNhYmxlZCBp ZiBXUCBpcyBkaXNhYmxlZC4NCj4gPiArICAvLw0KPiA+ICsgIFdSSVRFX1VOUFJPVEVDVF9ST19Q QUdFUyAoV3JpdGVQcm90ZWN0LCBDZXRFbmFibGVkKTsNCj4gPiArDQo+ID4gICAgLy8NCj4gPiAg ICAvLyBbMCwgNGtdIG1heSBiZSBub24tcHJlc2VudC4NCj4gPiAgICAvLw0KPiA+ICAgIFByZXZp b3VzQWRkcmVzcyA9ICgoUGNkR2V0OCAoUGNkTnVsbFBvaW50ZXJEZXRlY3Rpb25Qcm9wZXJ0eU1h c2spICYNCj4gQklUMSkgIT0gMCkgPyBCQVNFXzRLQiA6IDA7DQo+ID4NCj4gPiBAQCAtNjcwLDEx ICs2NzQsMTQgQEAgSW5pdFBhZ2luZyAoDQo+ID4gICAgICAvLw0KPiA+ICAgICAgU3RhdHVzID0g Q29udmVydE1lbW9yeVBhZ2VBdHRyaWJ1dGVzIChQYWdlVGFibGUsIG1QYWdpbmdNb2RlLA0KPiBQ cmV2aW91c0FkZHJlc3MsIExpbWl0IC0gUHJldmlvdXNBZGRyZXNzLCBNZW1vcnlBdHRyTWFzaywg VFJVRSwgTlVMTCk7DQo+ID4gICAgICBBU1NFUlRfUkVUVVJOX0VSUk9SIChTdGF0dXMpOw0KPiA+ ICAgIH0NCj4gPg0KPiA+IC0gIEVuYWJsZVJlYWRPbmx5UGFnZVdyaXRlUHJvdGVjdCAoV3BFbmFi bGVkLCBDZXRFbmFibGVkKTsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEVuYWJsZSB0aGUgV1AgYW5k IHJlc3RvcmUgQ0VUIHRvIGVuYWJsZQ0KPiA+ICsgIC8vDQo+ID4gKyAgV1JJVEVfUFJPVEVDVF9S T19QQUdFUyAoV3JpdGVQcm90ZWN0LCBDZXRFbmFibGVkKTsNCj4gPg0KPiA+ICAgIC8vDQo+ID4g ICAgLy8gRmx1c2ggVExCDQo+ID4gICAgLy8NCj4gPiAgICBDcHVGbHVzaFRsYiAoKTsNCj4gDQo+ IFRoYW5rcyENCj4gTGFzemxvDQoNCg0KCi09LT0tPS09LT0tPS09LT0tPS09LT0tCkdyb3Vwcy5p byBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4KVmll dy9SZXBseSBPbmxpbmUgKCMxMTA2OTYpOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwv bWVzc2FnZS8xMTA2OTYKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dyb3Vwcy5pby9tdC8xMDIz NzA0NjUvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5z dWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBv cGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==