From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.498.1675386975309649580 for ; Thu, 02 Feb 2023 17:16:15 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ayivdg1b; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675386975; x=1706922975; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=pgrLARTeCVxFPpcOUAAZ4OLMSMFmPfndIhLMN54Ip7g=; b=ayivdg1byeet/Oz8V9wskM03hN463DjsjSp4w089CXC20tyciLUGvnP/ pPULW70OAt4khKxEIVHY/ftdLiulBU1QYY5bgB+uaqna+uiDOUHi/4qtL UMkMKhkEYbmjaoVYYNkriLC0UHsenZyuYxkQgf3Ne7tvIQ5KbhSMk46z0 4n5Y6JGpjpQBHJeBkosAJczLFySelkEuwW1/ufdev+g1NSQOvA3e8Nq+1 Rf2F9/fFzy+du0beIbBNQNiZ+313mPkhj8WTP/K9hFOloO/oinaahJIbc US5WCV/Zumc9+HoWj59VYssgKDJN8eROg0CKW9o5hfNdjIcWRGMlxPZ+9 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="326320169" X-IronPort-AV: E=Sophos;i="5.97,269,1669104000"; d="scan'208";a="326320169" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Feb 2023 17:16:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="754290494" X-IronPort-AV: E=Sophos;i="5.97,269,1669104000"; d="scan'208";a="754290494" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by FMSMGA003.fm.intel.com with ESMTP; 02 Feb 2023 17:16:13 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.16; Thu, 2 Feb 2023 17:16:13 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 2 Feb 2023 17:16:13 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Thu, 2 Feb 2023 17:16:13 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Thu, 2 Feb 2023 17:16:12 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IEI5YKcubToaCF6vcZjEsaJVGmnFk1JTQb0bfp8EepacOw4zmwnQzQmEn+95jubov/t+8oPGwcExUbJm4ZVIs4TqxaDwwTWbqeI7yp1M2lXKpmNbDXpoWk+Aj/WqQN+KLTO34TAVe0N5m7i+qB37zHecT27mfwmgPR3PNasqh/PvCrHmWC9l9to+u1MZD6uaReSl7ltN7fdSgdHMMtDsO7yjnejRfz9xXghsIwlLiv2reRcH9tDWU1hlBaxOzubxmxbuwTRFnFUn/O+IlfZLBDeT5CYpw+P/PRhqvsAHHsy9hExPKsMDl51hYlPGJtNiJKi2Uj0IiaSQkkLWcn1luA== 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=pgrLARTeCVxFPpcOUAAZ4OLMSMFmPfndIhLMN54Ip7g=; b=YnQNMQEYryLmZXpS25LM3z+M3hvRwmhYU9pKI40fP0EXFsIfi8HkbjEUauCfHFFfzXM22+xicX6o2qrVieNulIOHzhWMlzGc0TC7WeZ+iOO0ldRsKHOWd58UyMv7ud2HkZmAeIdABZwCa1/0tEqmvFOlc5AyqI8Mlzh6tpykCyKcwitcxkWBWn563L3vgHhCthjuOP8VJDOMbDv7XlAtdsp6NlLzXYF/Modr/dc+avnGHbBW3QdqybHjxDhOpLIN/i0QRRjxm0Oo9o5Mm9c2MSMgxLUpaTXG3ZgnEhbnxhDmp7gw4ewJ5L1WBsnUDl3qJMX7ZBjYCMqcqkGmOj8YhQ== 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 MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by DM4PR11MB5969.namprd11.prod.outlook.com (2603:10b6:8:5c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.29; Fri, 3 Feb 2023 01:16:09 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::96f4:ad8:3fb9:b60d]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::96f4:ad8:3fb9:b60d%3]) with mapi id 15.20.6064.023; Fri, 3 Feb 2023 01:16:09 +0000 From: "Yao, Jiewen" To: Michael Kubacki , "devel@edk2.groups.io" , "ardb@kernel.org" , "Kinney, Michael D" CC: "Gao, Liming" , "Kubacki, Michael" , Sean Brogan , Rebecca Cran , Leif Lindholm , Sami Mujawar , "Taylor Beebe" Subject: Re: [edk2-devel] [RFC PATCH 2/3] MdeModulePkg: Enable forward edge CFI in mem attributes table Thread-Topic: [edk2-devel] [RFC PATCH 2/3] MdeModulePkg: Enable forward edge CFI in mem attributes table Thread-Index: AQHZNzEnDKZLE01tG0y1vGlgAljmPq67/6EAgAADUQCAAFpSAIAAC7KQ Date: Fri, 3 Feb 2023 01:16:09 +0000 Message-ID: References: <20230202180335.2256160-1-ardb@kernel.org> <20230202180335.2256160-3-ardb@kernel.org> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: MW4PR11MB5872:EE_|DM4PR11MB5969:EE_ x-ms-office365-filtering-correlation-id: 8c5c3f01-86fa-4f54-3994-08db05843b8b x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nhb+v69f7p3t13BdX2fFSo3OeVbS+jQo1obOy9HgAXfTeZSJFDarn1o0wfHZO2hQ9ZxpWd064yki7oHSHWGwRBGlfhcb27HCzktz955Zgz17yG45d6sl3bGZIteSUI8Ijzh3VSDHz0S/n4+/ZZBYytkVjGNEZBczVHBM8TglZwUN7C6jufTYBVJgy1XU3QeEclo2F7l+OZz09bg7EH1DuslYes8vMElAn74ktqjNCs8q3wbAWVepb39b6UnptAMch4p3KYfhUQMupBx+tDkDJEvxONnts8tjn//HTVTFjFPZO/Gc8bGZRRXXgnoYqoFDYe2Yl0cS0C+S+IhLrQEatU5dPBdlfUOQOTEI2WC+NhYmpyTOS6KuEFmdjjRsI/k3IZr2FFbzog4OCD2J+gI47P0Z/ugh0Csvgout4qWOe+3bSWoTvHbiS5bVvY0J9hahaiXRsgJh5DsHTJm/8fo5O/wi0WBdE9UUpjzwt98yKPIFORRtoZXLsz3B+93rT0ZC1vdzQZDyatWxOgzRzC2Zqcu59/D86ZDF7WlAYSVti/5Xql+6LIGzhOT3rcGEr2Y+Gd3ZJhzGuwRGqS6T/OGeWWarW7EgWteOWdvQzBdrDbqXMFCV7qa81zf7RNQCLF/E+TRhakVwQadrG0tGMJ5aRCNhG9RraUHTT8W5PJESs2z7Ax6W6hF359//fZXA9hHYod9S3ufZJrniXqlGigh3C5YDq+NZzbwMcYtSC9mAAFPhyaKstnNIgfaM5SUtzfcI7uB4q8IAKBiqsFuzvyGkjQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(39860400002)(346002)(136003)(376002)(366004)(396003)(451199018)(66899018)(38100700002)(122000001)(33656002)(82960400001)(38070700005)(9686003)(186003)(26005)(83380400001)(53546011)(6506007)(86362001)(7696005)(8676002)(71200400001)(2906002)(478600001)(66946007)(66556008)(66476007)(66446008)(64756008)(966005)(8936002)(5660300002)(7416002)(52536014)(41300700001)(4326008)(55016003)(76116006)(316002)(54906003)(6636002)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bUFYa0dNQWFMcXJBR0RxOFEyWEVUM1RrU3c5YVdjdk9PcTc3UVhVcU5UQjdl?= =?utf-8?B?QkZ1dFcrMUxuZ0hvTmVCY3RCbWFVMXREVnIrNzB3SFV5OStLOWdNcllWWXMy?= =?utf-8?B?MmlHSlE4WTc2UWx5d2g2UE4vZEg3eURFcklEUXVFUHQvNjhyYmZ3UmZBUzdj?= =?utf-8?B?b0lxWFZxQzJTRXZpaWl6b2dNN3pPSmZtWFNLamZ6dWg3cGRreGlMbmdnd09E?= =?utf-8?B?ZzR6RjhmelBmamRUZGc1OVkzTW5teW5uZFN3TzNWcSt5dFZLdlB1aHIxTTkz?= =?utf-8?B?TUxtMCsxQTExYm43UExmekdzVXYyWmhNYis3Q0NrS01SNHkvci9EM1VWR2lh?= =?utf-8?B?N1ZjMjBIV2ZzcDdqM1BZd2VDQmJVRDEwMXQ4dmxQN1l4SURlSnBleVprN0s2?= =?utf-8?B?d3FRV1pSQnRvQTdsOXpGRlUydXRMdjJtYUlORmo1NW5nT1JSNkNJVHIxWHVs?= =?utf-8?B?Rko1TmVTMkZYY2pGZzdGelVWZnl0MU5obnMvL29OcnN0Vk9kN0xNRjFHZUVk?= =?utf-8?B?aE1DOHZOSTlCV2ZoYko1V1pQSkl3RkxubmptYVgyaUt1eGtsUFUrcStKLy9E?= =?utf-8?B?UFlmWG4vVng1bWpLUWk5bVNxNlg4UCtIQXV2RFRnUmdzRy9SdVFoWHZLWTVq?= =?utf-8?B?RXhTY3E0MGxSSnNxaGtzMVZ6c1AxY0d5QUZZVnRBd2VjUktyWXprdENQcE5W?= =?utf-8?B?VTJUQ1phaFd1dXFwOVRNa2pON1pjK1BjMzFOVzBLV1p5TnFtYng4R2pjWFNx?= =?utf-8?B?dXExWmJNdFRCbzFOZVlBQnZSSmhvYmVDQ0puZmhmR3duemJNemIyZU1DZ2dI?= =?utf-8?B?NDNwbGdNSFFoSUZ3bEJlS0tFNW9yY0xLMXRhRlV1T3JiN1RqN05VaWpBaEpj?= =?utf-8?B?WFE4WTZNNXpVbHhxYU11cGxrM1VQUnc2a0Z2MExMU1NRMGphTGJDOXUvRE15?= =?utf-8?B?dkkwZmgrQmNkRS9iQ2RGWklkd2pXdFdZeHAwRHJ0aERLUHdQNXBHdGFpWnFk?= =?utf-8?B?RVZaSnpxSnUyWnU4VmJzUkVyYzJxYkNmSlcwUFZCc2JEVkNiYzZVM3RoWmNh?= =?utf-8?B?QjJ2NTBOODkrZHoydVhJd2xoTlc3WE5BYTZmejBqSm10ZHlNVGlqVUQ0eTZZ?= =?utf-8?B?ZWt3cmV0c0xqVFpLYlpvcTRyc1RETCttVW1YdEpPMXlvaFpJTGRkcm5iUCtD?= =?utf-8?B?b2FXKzU2d294NWFwNldGdWJGOGsrSlZWenIzMEo1RCt2cnRCeXVmd1l4MW1F?= =?utf-8?B?b0FJSzdGeDBOMjJSV0k0cy9EUUJDZWRHUzhHa2JpSDk5amp5L0NxWTRsSndD?= =?utf-8?B?a2FPSFlWSnI4bWZCU0F1REZuOUt3NkIzNE9xOEd6Zjl6ZE00RElEc3ZVbSt5?= =?utf-8?B?eWpyVE5GOHpBUGJtS3I0ZElBYzc1OWNTdi8wU1IzZ0UvRWlra1ZhWEFWOGJW?= =?utf-8?B?ZmFSU1VqdkZNall5UG1VMlVSV3krN0lmMHh6bEtFMGpXdllmWlA5bmtPa1p4?= =?utf-8?B?ckFQeVV1T2ZDS090aEVNblp4SGVlZ1lyVWU0NjFjWkw4TFNTeUtJQ3AwdXpq?= =?utf-8?B?QTJqS2wxZi9nYU5GSjZFSUozVnROWVpvbnVLNm9oRkRpYm9JblFiTEtHMXpL?= =?utf-8?B?NVdNTWZuUnVuMkVsQ3ZER0lyUzlCOWwzK1NDbzdWOHVLWjNIbERFbGZnUHhN?= =?utf-8?B?MW1TOGtydk84MHByeEc4K2lnVkZFenExQjVLTWdrQ01LelNNVk1LamFQZ0N1?= =?utf-8?B?RTJ3NlRHMm9McFJ0b2h2MWdpR0svWkVYb1Y3eFdSZGFHZUVKZFlSR0FvV200?= =?utf-8?B?aStELzVmb0tVZDRaU1gzQlQyTTN4U1kxRmRaRUJGVGNYYjFUQmNXKzlCaUxi?= =?utf-8?B?UURHRGtKYm1WTlZYUE1wTnhjeW05RDdlMW9uTTRnU0g0c2pYWmRMYjl3Qi9M?= =?utf-8?B?ajZCVllNN1kzckg4Z3dXVGNZamRmU0VBRVg2dEVXUnFuMk43SjFUeHg2UGpZ?= =?utf-8?B?UGc1OVJhL0VPb1cyR1hOVWs0eE9LTW9nekRLZFBxWGJhRWkzaGxmaDNYQ0F1?= =?utf-8?B?NXhoUFNyWjdrakxmZkp3UDR2aXFCQ1ZLdzBBcjkvNWVJZ01PWUttZjk3b0k3?= =?utf-8?Q?lZbuk8O8mF21e0vu2hnS5fjo8?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c5c3f01-86fa-4f54-3994-08db05843b8b X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Feb 2023 01:16:09.5234 (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: KCUTAuNmt3l/coTQJCye11KEA5RdZlyj9xgT9MQar8C2nwWIT7VZZlIOY+5bGbNzau3cTxyVQY4i7gBu0ryUrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5969 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGVsbG8NCkNhbiB3ZSBhc3N1bWUgdGhhdCB0aGUgZW50cnlwb2ludCBvZiBQRS9DT0ZGIGltYWdl IGlzIGFsd2F5cyBFTkRCUjY0LCBpZiB0aGUgUEUvQ09GRiBpbWFnZSBpcyBlbmxpZ2h0ZW5lZCB0 byBzdXBwb3J0IElCVD8NCg0KSSBiZWxpZXZlIHRoZSBjb21waWxlciBzaG91bGQgZG8gdGhhdCwg YmVjYXVzZSB0aGUgbG9hZGVyIG5lZWQgdXNlIGluZGlyZWN0IGNhbGwgdG8gdGhlIFBFL0NPRkYg ZW50cnlwb2ludC4NCg0KV2UgbmVlZCBtb3JlIGNvZGUgdG8gZGV0ZWN0ICphbGwqIHJ1bnRpbWUg aW1hZ2VzLiBUaGUgbG9naWMgY291bGQgYmU6DQoxKSBQRS9DT0ZGIGxvYWRlciAoWDg2LCBBUk0p IGRldGVjdHMgSUJUIGNhcGFiaWxpdHkgZm9yIGFsbCBydW50aW1lIGltYWdlcywgYW5kIHJlcG9y dCBpdC4NCjIpIERYRSBDb3JlIGNvbGxlY3RzIHN1Y2ggaW5mby4NCjIuMSkgSWYgQUxMIHJ1bnRp bWUgaW1hZ2Ugc3VwcG9ydHMgSUJULCB0aGVuIGdNZW1vcnlBdHRyaWJ1dGVzVGFibGVGb3J3YXJk Q2ZpID0gVFJVRQ0KMi4yKSBFbHNlLCBnTWVtb3J5QXR0cmlidXRlc1RhYmxlRm9yd2FyZENmaSA9 IEZBTFNFLg0KDQpUaGUgYmVuZWZpdCBpcyB0aGF0IGl0IGlzIG1vcmUgcmVsaWFibGUgdG8gc3Vw cG9ydCBiaW5hcnkgUEUgaW1hZ2UgdXNlIGNhc2UuIEhhcmQgdG8gdXNlIGJ1aWxkIHRpbWUgZmxh ZyBmb3IgZXh0ZXJuYWwgYmluYXJ5IFBFIC4uLg0KDQpUaGFuayB5b3UNCllhbywgSmlld2VuDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWljaGFlbCBLdWJhY2tpIDxt aWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPg0KPiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDMs IDIwMjMgODoyNCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGFyZGJAa2VybmVsLm9y ZzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBD YzogR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj47IFlhbywgSmlld2VuDQo+ IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEt1YmFja2ksIE1pY2hhZWwgPG1pY2hhZWwua3ViYWNr aUBtaWNyb3NvZnQuY29tPjsNCj4gU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5j b20+OyBSZWJlY2NhIENyYW4NCj4gPHF1aWNfcmNyYW5AcXVpY2luYy5jb20+OyBMZWlmIExpbmRo b2xtIDxxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPjsgU2FtaQ0KPiBNdWphd2FyIDxzYW1pLm11 amF3YXJAYXJtLmNvbT47IFRheWxvciBCZWViZSA8dEB0YXlsb3JiZWViZS5jb20+DQo+IFN1Ympl Y3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1JGQyBQQVRDSCAyLzNdIE1kZU1vZHVsZVBrZzogRW5hYmxl IGZvcndhcmQgZWRnZQ0KPiBDRkkgaW4gbWVtIGF0dHJpYnV0ZXMgdGFibGUNCj4gDQo+IEFyZCwg SSBhbSBzdGlsbCBhY3RpdmVseSB0cmFja2luZyB0aGlzIGZvciB0aGUgUEUvQ09GRiBzcGVjLg0K PiANCj4gVW5mb3J0dW5hdGVseSwgSSBkb24ndCBoYXZlIG1vcmUgZmlybSBpbmZvIHJpZ2h0IG5v dyBidXQgSSBzdWdnZXN0DQo+IGhvbGRpbmcgb2ZmIG9uIGFsdGVybmF0aXZlcyBmb3IgdGhlIHRp bWUgYmVpbmcgYW5kIEkgd2lsbCByZXBseSBiYWNrIGFzDQo+IHNvb24gYXMgdGhlIG5leHQgc3Rl cHMgYXJlIGtub3duLg0KPiANCj4gVGhhbmtzLA0KPiBNaWNoYWVsDQo+IA0KPiBPbiAyLzIvMjAy MyAyOjAwIFBNLCBBcmQgQmllc2hldXZlbCB3cm90ZToNCj4gPiBPbiBUaHUsIDIgRmViIDIwMjMg YXQgMTk6NDksIEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPiB3cm90ZToNCj4gPj4NCj4gPj4gSGkgQXJkLA0KPiA+Pg0KPiA+PiBTaW5jZSB0aGUgUEUv Q09GRiBpbWFnZSBkb2VzIG5vdCBjb250YWluIHRoaXMgaW5mb3JtYXRpb24sIGlzIHRoZXJlIGFu DQo+IG9wdGlvbg0KPiA+PiB0byBhZGQgdGhlIGluZm9ybWF0aW9uIHRvIGFuIEZGUyBmaWxlLiBF aXRoZXIgYXMgYSBuZXcgYml0IGluIGEgc3RhbmRhcmQgaGVhZGVyDQo+ID4+IG9yIGFzIGEgR1VJ RGVkIHNlY3Rpb24gZGVmaW5lZCBieSBFREsgSUk/DQo+ID4+DQo+ID4+IFNpbmNlIGFuIEZWIG1h eSBjb250YWluIGNvbnRlbnQgYnVpbGQgZnJvbSBzb3VyY2UgYW5kIGFkZGl0aW9uYWwgY29udGVu dA0KPiA+PiBJbnRlZ3JhdGVkIGFzIGJpbmFyaWVzIGZyb20gb3RoZXIgdmVuZG9ycywgaGF2aW5n IGEgUENEIHRoYXQgc2NvcGVzIHRoaXMNCj4gPj4gYXR0cmlidXRlIHRvIGFsbCBGVnMgbWFueSBv bmx5IHdvcmsgZm9yIEZXIGJ1aWxkcyB0aGF0IGFyZSAxMDAlIGZyb20gc291cmNlcy4NCj4gPj4N Cj4gPg0KPiA+IEkgZGlkbid0IHF1aXRlIGNvbnNpZGVyIHRoYXQgc2NlbmFyaW8gdGJoLg0KPiA+ DQo+ID4gSXQgd291bGQgYmUgbmljZSBpZiB3ZSBjb3VsZCBhdm9pZCBhbm90aGVyIFBJIHNwZWMg ZGFuY2UgZm9yIHRoaXMsIGFuZA0KPiA+IGdldCBzb21lIGtpbmQgb2YgSUJUL0JUSSBhbm5vdGF0 aW9uIGFkZGVkIHRvIHRoZSBQRS9DT0ZGIHNwZWMuIFRoYXQNCj4gPiB3YXksIHdlIGNvdmVyIHRo aXMgaXNzdWUsIGFzIHdlbGwgYXMgY2xlYXIgdGhlIHdheSBmb3IgdGhlIHVzZSBpZg0KPiA+IElC VC9CVEkgd2hlbiBydW5uaW5nIHVuZGVyIHRoZSBmaXJtd2FyZS4NCj4gPg0KPiA+IEFyZSBURSBp bWFnZXMgYSBjb25jZXJuIGhlcmUgYXMgd2VsbD8gSS5lLiwgYXJlIHRob3NlIGxpa2VseSB0byBi ZQ0KPiA+IHVzZWQgZm9yIHJ1bnRpbWUgRFhFIGltYWdlcyBpbiBmaXJtd2FyZSB2b2x1bWVzPw0K PiA+DQo+ID4NCj4gPj4NCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBG cm9tOiBBcmQgQmllc2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPg0KPiA+Pj4gU2VudDogVGh1cnNk YXksIEZlYnJ1YXJ5IDIsIDIwMjMgMTA6MDQgQU0NCj4gPj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vw cy5pbw0KPiA+Pj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmRiQGtlcm5lbC5vcmc+OyBLaW5uZXks IE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8 Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgWWFvLA0KPiA+Pj4gSmlld2VuIDxqaWV3ZW4ueWFv QGludGVsLmNvbT47IEt1YmFja2ksIE1pY2hhZWwNCj4gPG1pY2hhZWwua3ViYWNraUBtaWNyb3Nv ZnQuY29tPjsgU2VhbiBCcm9nYW4NCj4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+OyBSZWJl Y2NhDQo+ID4+PiBDcmFuIDxxdWljX3JjcmFuQHF1aWNpbmMuY29tPjsgTGVpZiBMaW5kaG9sbQ0K PiA8cXVpY19sbGluZGhvbEBxdWljaW5jLmNvbT47IFNhbWkgTXVqYXdhciA8c2FtaS5tdWphd2Fy QGFybS5jb20+Ow0KPiBUYXlsb3IgQmVlYmUNCj4gPj4+IDx0QHRheWxvcmJlZWJlLmNvbT4NCj4g Pj4+IFN1YmplY3Q6IFtSRkMgUEFUQ0ggMi8zXSBNZGVNb2R1bGVQa2c6IEVuYWJsZSBmb3J3YXJk IGVkZ2UgQ0ZJIGluIG1lbQ0KPiBhdHRyaWJ1dGVzIHRhYmxlDQo+ID4+Pg0KPiA+Pj4gVGhlIG1l bW9yeSBhdHRyaWJ1dGVzIHRhYmxlIGhhcyBiZWVuIGV4dGVuZGVkIHdpdGggYSBmbGFnIHRoYXQg aW5kaWNhdGVzDQo+ID4+PiB3aGV0aGVyIG9yIG5vdCB0aGUgT1MgaXMgcGVybWl0dGVkIHRvIG1h cCB0aGUgRUZJIHJ1bnRpbWUgY29kZSByZWdpb25zDQo+ID4+PiB3aXRoIHN0cmljdCBlbmZvcmNl bWVudCBmb3IgSUJUL0JUSSBsYW5kaW5nIHBhZCBpbnN0cnVjdGlvbnMuDQo+ID4+Pg0KPiA+Pj4g VGhpcyBpcyBnZW5lcmFsbHkgYSBwcm9wZXJ0eSBvZiB0aGUgZmlybXdhcmUgYnVpbGQsIGFuZCBz byB3ZSBjYW4gcGVybWl0DQo+ID4+PiBhIHBsYXRmb3JtIHRvIHNldCB0aGlzIHByb3BlcnR5IHVz aW5nIGEgUENELCBhbmQgcHV0IHRoZSBidXJkZW4gb24gdGhlDQo+ID4+PiBwbGF0Zm9ybSBkZWZp bml0aW9uIHRvIHNldCB0aGUgdG9vbGNoYWluIG9wdGlvbnMgYWNjb3JkaW5nbHkuDQo+ID4+Pg0K PiA+Pj4gVGhlcmUgaXMgb25lIHNuYWcsIGhvd2V2ZXI6IFBFL0NPRkYgZG9lcyBub3QgZXhwb3Nl IHdoZXRoZXIgb3Igbm90IHRoZQ0KPiA+Pj4gY29kZSB3YXMgZ2VuZXJhdGVkIHdpdGggbGFuZGlu ZyBwYWRzLCBzbyBpZiBhbnkgcnVudGltZSBEWEUgZHJpdmVycyB3ZXJlDQo+ID4+PiBsb2FkZWQg ZnJvbSBzdG9yYWdlIG90aGVyIHRoYW4gdGhlIGZpcm13YXJlIHZvbHVtZXMsIHdlIG11c3QgYXNz dW1lDQo+IHRoYXQNCj4gPj4+IHNldHRpbmcgdGhlIENGSSBmbGFnIGluIHRoZSBtZW1vcnkgYXR0 cmlidXRlcyB0YWJsZSBpcyB1bnNhZmUuDQo+ID4+Pg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTogQXJk IEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVsLm9yZz4NCj4gPj4+IC0tLQ0KPiA+Pj4gICBNZGVNb2R1 bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5oICAgICAgICAgICAgICAgICAgICB8ICAyICsrDQo+ID4+ PiAgIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9EeGVNYWluLmluZiAgICAgICAgICAgICAgICAgIHwg IDEgKw0KPiA+Pj4gICBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSW1hZ2UvSW1hZ2UuYyAgICAgICAg ICAgICAgICB8IDExICsrKysrKysrKysrDQo+ID4+PiAgIE1kZU1vZHVsZVBrZy9Db3JlL0R4ZS9N aXNjL01lbW9yeUF0dHJpYnV0ZXNUYWJsZS5jIHwgIDcgKysrKysrLQ0KPiA+Pj4gICBNZGVNb2R1 bGVQa2cvTWRlTW9kdWxlUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysrKysr DQo+ID4+PiAgIDUgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQ0KPiA+Pj4NCj4gPj4+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFp bi5oDQo+IGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0R4ZU1haW4uaA0KPiA+Pj4gaW5kZXggODE1 YTZiNGJkODQ0Li40MjdhNWZjNzhmNzIgMTAwNjQ0DQo+ID4+PiAtLS0gYS9NZGVNb2R1bGVQa2cv Q29yZS9EeGUvRHhlTWFpbi5oDQo+ID4+PiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhl TWFpbi5oDQo+ID4+PiBAQCAtMjgwLDYgKzI4MCw4IEBAIGV4dGVybiBFRklfTUVNT1JZX1RZUEVf SU5GT1JNQVRJT04NCj4gZ01lbW9yeVR5cGVJbmZvcm1hdGlvbltFZmlNYXhNZW1vcnlUeXBlICsg MV0NCj4gPj4+ICAgZXh0ZXJuIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgIGdEaXNwYXRjaGVy UnVubmluZzsNCj4gPj4+DQo+ID4+PiAgIGV4dGVybiBFRklfUlVOVElNRV9BUkNIX1BST1RPQ09M ICBnUnVudGltZVRlbXBsYXRlOw0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gK2V4dGVybiBC T09MRUFOICAgICAgICAgICAgICAgICAgICBnTWVtb3J5QXR0cmlidXRlc1RhYmxlRm9yd2FyZENm aTsNCj4gPj4+DQo+ID4+PiArDQo+ID4+Pg0KPiA+Pj4gICBleHRlcm4gRUZJX0xPQURfRklYRURf QUREUkVTU19DT05GSUdVUkFUSU9OX1RBQkxFDQo+IGdMb2FkTW9kdWxlQXRGaXhBZGRyZXNzQ29u ZmlndXJhdGlvblRhYmxlOw0KPiA+Pj4NCj4gPj4+ICAgZXh0ZXJuIEJPT0xFQU4NCj4gZ0xvYWRG aXhlZEFkZHJlc3NDb2RlTWVtb3J5UmVhZHk7DQo+ID4+Pg0KPiA+Pj4gICAvLw0KPiA+Pj4NCj4g Pj4+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5pbmYNCj4gYi9N ZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5pbmYNCj4gPj4+IGluZGV4IDM1ZDViZjBkZWU2 Zi4uZTZmZjY3NzczYTY5IDEwMDY0NA0KPiA+Pj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhl L0R4ZU1haW4uaW5mDQo+ID4+PiArKysgYi9NZGVNb2R1bGVQa2cvQ29yZS9EeGUvRHhlTWFpbi5p bmYNCj4gPj4+IEBAIC0xODcsNiArMTg3LDcgQEAgW1BjZF0NCj4gPj4+ICAgICBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkSGVhcEd1YXJkUHJvcGVydHlNYXNrDQo+ICMjIENPTlNV TUVTDQo+ID4+Pg0KPiA+Pj4gICAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RD cHVTdGFja0d1YXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCj4gQ09OU1VNRVMNCj4g Pj4+DQo+ID4+Pg0KPiBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRndWb2xEeGVN YXhFbmNhcHN1bGF0aW9uRGVwdGgNCj4gIyMgQ09OU1VNRVMNCj4gPj4+DQo+ID4+PiArDQo+IGdF ZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNZW1vcnlBdHRyaWJ1dGVzVGFibGVGb3J3 YXJkQ2ZpDQo+ICMjIENPTlNVTUVTDQo+ID4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiAgICMgW0hv Yl0NCj4gPj4+DQo+ID4+PiAgICMgUkVTT1VSQ0VfREVTQ1JJUFRPUiAgICMjIENPTlNVTUVTDQo+ ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9JbWFnZS9JbWFn ZS5jDQo+IGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL0ltYWdlL0ltYWdlLmMNCj4gPj4+IGluZGV4 IDA2Y2M2NzQ0YjhjNi4uMTgxZmVmZGI2NjU3IDEwMDY0NA0KPiA+Pj4gLS0tIGEvTWRlTW9kdWxl UGtnL0NvcmUvRHhlL0ltYWdlL0ltYWdlLmMNCj4gPj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3Jl L0R4ZS9JbWFnZS9JbWFnZS5jDQo+ID4+PiBAQCAtMTM5OCw2ICsxMzk4LDE3IEBAIENvcmVMb2Fk SW1hZ2VDb21tb24gKA0KPiA+Pj4gICAgICAgQ29yZU5ld0RlYnVnSW1hZ2VJbmZvRW50cnkNCj4g KEVGSV9ERUJVR19JTUFHRV9JTkZPX1RZUEVfTk9STUFMLCAmSW1hZ2UtPkluZm8sIEltYWdlLT5I YW5kbGUpOw0KPiA+Pj4NCj4gPj4+ICAgICB9DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiAr ICAvLw0KPiA+Pj4NCj4gPj4+ICsgIC8vIElmIHdlIGxvYWRlZCBhIHJ1bnRpbWUgRFhFIGRyaXZl ciBmcm9tIHNvbWV0aGluZyBvdGhlciB0aGFuIGEgRlYsIGl0DQo+ID4+Pg0KPiA+Pj4gKyAgLy8g d2FzIG5vdCBidWlsdCBhcyBwYXJ0IG9mIHRoZSBmaXJtd2FyZSBpbWFnZSwgYW5kIHNvIHdlIGNh bm5vdCBhc3N1bWUNCj4gPj4+DQo+ID4+PiArICAvLyB0aGF0IGl0IHdhcyBidWlsdCB3aXRoIElC VC9CVEkgbGFuZGluZyBwYWRzIGZvciBmb3J3YXJkIGVkZ2UgY29udHJvbA0KPiA+Pj4NCj4gPj4+ ICsgIC8vIGZsb3cgaW50ZWdyaXR5Lg0KPiA+Pj4NCj4gPj4+ICsgIC8vDQo+ID4+Pg0KPiA+Pj4g KyAgaWYgKCFJbWFnZUlzRnJvbUZ2ICYmDQo+ID4+Pg0KPiA+Pj4gKyAgICAgIChJbWFnZS0+SW1h Z2VDb250ZXh0LkltYWdlQ29kZU1lbW9yeVR5cGUgPT0NCj4gRWZpUnVudGltZVNlcnZpY2VzQ29k ZSkpIHsNCj4gPj4+DQo+ID4+PiArICAgIGdNZW1vcnlBdHRyaWJ1dGVzVGFibGVGb3J3YXJkQ2Zp ID0gRkFMU0U7DQo+ID4+Pg0KPiA+Pj4gKyAgfQ0KPiA+Pj4NCj4gPj4+ICsNCj4gPj4+DQo+ID4+ PiAgICAgLy8NCj4gPj4+DQo+ID4+PiAgICAgLy8gUmVpbnN0YWxsIGxvYWRlZCBpbWFnZSBwcm90 b2NvbCB0byBmaXJlIGFueSBub3RpZmljYXRpb25zDQo+ID4+Pg0KPiA+Pj4gICAgIC8vDQo+ID4+ Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NaXNjL01lbW9yeUF0 dHJpYnV0ZXNUYWJsZS5jDQo+IGIvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL01pc2MvTWVtb3J5QXR0 cmlidXRlc1RhYmxlLmMNCj4gPj4+IGluZGV4IGUwNzkyMTM3MTE4Ny4uY2RkMzVhZGUwYThhIDEw MDY0NA0KPiA+Pj4gLS0tIGEvTWRlTW9kdWxlUGtnL0NvcmUvRHhlL01pc2MvTWVtb3J5QXR0cmli dXRlc1RhYmxlLmMNCj4gPj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9NaXNjL01lbW9y eUF0dHJpYnV0ZXNUYWJsZS5jDQo+ID4+PiBAQCAtODksNiArODksNyBAQCBCT09MRUFOICAgICAg ICAgICAgICAgICAgICAgIG1NZW1vcnlBdHRyaWJ1dGVzVGFibGVFbmFibGUNCj4gPSBUUlVFOw0K PiA+Pj4gICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgIG1NZW1vcnlBdHRyaWJ1dGVzVGFi bGVFbmRPZkR4ZSAgICA9IEZBTFNFOw0KPiA+Pj4NCj4gPj4+ICAgRUZJX01FTU9SWV9BVFRSSUJV VEVTX1RBQkxFICAqbU1lbW9yeUF0dHJpYnV0ZXNUYWJsZSAgICAgICAgICAgPQ0KPiBOVUxMOw0K PiA+Pj4NCj4gPj4+ICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICBtTWVtb3J5QXR0cmli dXRlc1RhYmxlUmVhZHlUb0Jvb3QgPSBGQUxTRTsNCj4gPj4+DQo+ID4+PiArQk9PTEVBTiAgICAg ICAgICAgICAgICAgICAgICBnTWVtb3J5QXR0cmlidXRlc1RhYmxlRm9yd2FyZENmaSAgPQ0KPiBG aXhlZFBjZEdldEJvb2wgKFBjZE1lbW9yeUF0dHJpYnV0ZXNUYWJsZUZvcndhcmRDZmkpOw0KPiA+ Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gICAvKioNCj4gPj4+DQo+ID4+PiAgICAgSW5zdGFsbCBN ZW1vcnlBdHRyaWJ1dGVzVGFibGUuDQo+ID4+Pg0KPiA+Pj4gQEAgLTE4Miw3ICsxODMsMTEgQEAg SW5zdGFsbE1lbW9yeUF0dHJpYnV0ZXNUYWJsZSAoDQo+ID4+PiAgICAgTWVtb3J5QXR0cmlidXRl c1RhYmxlLT5WZXJzaW9uICAgICAgICAgPQ0KPiBFRklfTUVNT1JZX0FUVFJJQlVURVNfVEFCTEVf VkVSU0lPTjsNCj4gPj4+DQo+ID4+PiAgICAgTWVtb3J5QXR0cmlidXRlc1RhYmxlLT5OdW1iZXJP ZkVudHJpZXMgPSBSdW50aW1lRW50cnlDb3VudDsNCj4gPj4+DQo+ID4+PiAgICAgTWVtb3J5QXR0 cmlidXRlc1RhYmxlLT5EZXNjcmlwdG9yU2l6ZSAgPSAoVUlOVDMyKURlc2NyaXB0b3JTaXplOw0K PiA+Pj4NCj4gPj4+IC0gIE1lbW9yeUF0dHJpYnV0ZXNUYWJsZS0+UmVzZXJ2ZWQgICAgICAgID0g MDsNCj4gPj4+DQo+ID4+PiArICBpZiAoZ01lbW9yeUF0dHJpYnV0ZXNUYWJsZUZvcndhcmRDZmkp IHsNCj4gPj4+DQo+ID4+PiArICAgIE1lbW9yeUF0dHJpYnV0ZXNUYWJsZS0+RmxhZ3MgICAgICAg ICA9DQo+IEVGSV9NRU1PUllfQVRUUklCVVRFU19GTEFHU19SVF9GT1JXQVJEX0NPTlRST0xfRkxP V19HVUFSRDsNCj4gPj4+DQo+ID4+PiArICB9IGVsc2Ugew0KPiA+Pj4NCj4gPj4+ICsgICAgTWVt b3J5QXR0cmlidXRlc1RhYmxlLT5GbGFncyAgICAgICAgID0gMDsNCj4gPj4+DQo+ID4+PiArICB9 DQo+ID4+Pg0KPiA+Pj4gICAgIERFQlVHICgoREVCVUdfVkVSQk9TRSwgIk1lbW9yeUF0dHJpYnV0 ZXNUYWJsZTpcbiIpKTsNCj4gPj4+DQo+ID4+PiAgICAgREVCVUcgKChERUJVR19WRVJCT1NFLCAi ICBWZXJzaW9uICAgICAgICAgICAgICAtIDB4JTA4eFxuIiwNCj4gTWVtb3J5QXR0cmlidXRlc1Rh YmxlLT5WZXJzaW9uKSk7DQo+ID4+Pg0KPiA+Pj4gICAgIERFQlVHICgoREVCVUdfVkVSQk9TRSwg IiAgTnVtYmVyT2ZFbnRyaWVzICAgICAgLSAweCUwOHhcbiIsDQo+IE1lbW9yeUF0dHJpYnV0ZXNU YWJsZS0+TnVtYmVyT2ZFbnRyaWVzKSk7DQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL01kZU1v ZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+IGIvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5k ZWMNCj4gPj4+IGluZGV4IDk2MDVjNjE3YjdhOC4uZDMzNmEzODY1NWEzIDEwMDY0NA0KPiA+Pj4g LS0tIGEvTWRlTW9kdWxlUGtnL01kZU1vZHVsZVBrZy5kZWMNCj4gPj4+ICsrKyBiL01kZU1vZHVs ZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4+PiBAQCAtMTA5Myw2ICsxMDkzLDE0IEBAIFtQY2Rz Rml4ZWRBdEJ1aWxkXQ0KPiA+Pj4gICAgICMgQFByb21wdCBFbmFibGUgVUVGSSBTdGFjayBHdWFy ZC4NCj4gPj4+DQo+ID4+Pg0KPiBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1 U3RhY2tHdWFyZHxGQUxTRXxCT09MRUFOfDB4MzANCj4gMDAxMDU1DQo+ID4+Pg0KPiA+Pj4NCj4g Pj4+DQo+ID4+PiArICAjIyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgRUZJIG1lbW9yeSBhdHRyaWJ1 dGVzIHRhYmxlIHdpbGwgaW5mb3JtIHRoZSBPUw0KPiB0aGF0DQo+ID4+Pg0KPiA+Pj4gKyAgIyAg Zm9yd2FyZCBlZGdlIGNvbnRyb2wgZmxvdyBndWFyZHMgaGF2ZSBiZWVuIGluc2VydGVkIGludG8g dGhlIHJ1bnRpbWUNCj4gc2VydmljZXMNCj4gPj4+DQo+ID4+PiArICAjICBjb2RlIHJlZ2lvbnMu DQo+ID4+Pg0KPiA+Pj4gKyAgIyAgIFRSVUUgIC0gUnVudGltZSBjb2RlIGhhcyBmb3J3YXJkIGNv bnRyb2wgZmxvdyBndWFyZHMuPEJSPg0KPiA+Pj4NCj4gPj4+ICsgICMgICBGQUxTRSAtIFJ1bnRp bWUgY29kZSBkb2VzIG5vdCBoYXZlIGZvcndhcmQgY29udHJvbCBmbG93IGd1YXJkcy48QlI+DQo+ ID4+Pg0KPiA+Pj4gKyAgIyBAUHJvbXB0IEVuYWJsZSBmb3J3YXJkIGNvbnRyb2wgZmxvdyBndWFy ZHMgaW4gRUZJIG1lbW9yeSBhdHRyaWJ1dGVzDQo+IHRhYmxlDQo+ID4+Pg0KPiA+Pj4gKw0KPiBn RWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWVtb3J5QXR0cmlidXRlc1RhYmxlRm9y d2FyZENmaXxGQUwNCj4gU0V8Qk9PTEVBTnwweDMwMDAxMDU2DQo+ID4+Pg0KPiA+Pj4gKw0KPiA+ Pj4NCj4gPj4+ICAgW1BjZHNGaXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZV0NCj4g Pj4+DQo+ID4+PiAgICAgIyMgRHluYW1pYyB0eXBlIFBDRCBjYW4gYmUgcmVnaXN0ZXJlZCBjYWxs YmFjayBmdW5jdGlvbiBmb3IgUGNkIHNldHRpbmcNCj4gYWN0aW9uLg0KPiA+Pj4NCj4gPj4+ICAg ICAjICBQY2RNYXhQZWlQY2RDYWxsQmFja051bWJlclBlclBjZEVudHJ5IGluZGljYXRlcyB0aGUg bWF4aW11bQ0KPiBudW1iZXIgb2YgY2FsbGJhY2sgZnVuY3Rpb24NCj4gPj4+DQo+ID4+PiAtLQ0K PiA+Pj4gMi4zOS4xDQo+ID4+DQo+ID4NCj4gPg0KPiA+IA0KPiA+DQo=