From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web09.1286.1604538514110027246 for ; Wed, 04 Nov 2020 17:08:34 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=iq25IqA3; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: heng.luo@intel.com) IronPort-SDR: nYWwn2B6ef+DZp8xZ4/Px8bLKjOSNqRgjct9f7CbQ/dmhzvRqN0LmGVj1rOdaP3djHsxBkFeu3 Lh/sk9Kzf//Q== X-IronPort-AV: E=McAfee;i="6000,8403,9795"; a="157086646" X-IronPort-AV: E=Sophos;i="5.77,451,1596524400"; d="scan'208";a="157086646" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Nov 2020 17:08:31 -0800 IronPort-SDR: ifC6xl6sIUxzhza/0t8WoqAf1z1BkA2CS8s++8cwYejfh/V8brkltMKLSh4OmkHY0MPcDajpi0 Of0bnWYrUwFg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,451,1596524400"; d="scan'208";a="529156136" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga005.fm.intel.com with ESMTP; 04 Nov 2020 17:08:31 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 4 Nov 2020 17:08:31 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 4 Nov 2020 17:08:30 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) 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.1713.5 via Frontend Transport; Wed, 4 Nov 2020 17:08:30 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.103) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 4 Nov 2020 17:08:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ilPADgx2IchXo+GB4eAi4mMFAKwdILXjZKvZoYV6x4Gj3zq81t1jHMQvXMyOQy0nYhGUnGF99JalLfvCJmxkRz70gU9+9oadRiP42/I5ETb/LtERq7hMCUX+IXYE0UTqbzDKrvUTIzbJ3hHhxNJHKBY5aFj3lS/vYmpoNcucGtTZ2HT/8kk5UvAgA+bpVNNlh2gKZEzRdQCqJ7sXV7ngHK4npwDrP3NLgHTtW4C/VH1aiXxlKEvf3I/m1uLUvKgBidsCFXyQO0xep/V+uxlenz0ZM7p2OUj56/9lTNoTUB7PI93yeKBjMYERGXsq6QQHw6ceTRCcmqp6GbZ9ZVQxsw== 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-SenderADCheck; bh=a3Yzrh8SzejiWjalzYWMeYqskn40+On7ktsMKV4KH7o=; b=eqWQP/8YT1MGtpMgAB76jsTxRnUF4AyCuz5+AWfiBsmnVnmlF/GQM7g3sBbBxVFbAsURYEtUtQ3bwrufjboysuaJ5XA2KkQn+C0t9lMaHSnNK2GKzImAWfdLzbeoUySL66IeUryXtusUKVZw1UPXNYrYKhecXtU524wEPqsWRNXpItmhwJ4GwfqvBr3Yvneuiah0+18gPTdvhHqz2P3Esw1Ucws/DwG42U2yuvRhr+mgULZxgMWjisjRxiGyH9STr6cirTjfjRUlfaHPKRNgbInepGWcht/Fx9skL0MJIcUlmGRv911BBAFOZOmm++BBykznWiAdehIez073dUO4pw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a3Yzrh8SzejiWjalzYWMeYqskn40+On7ktsMKV4KH7o=; b=iq25IqA353BlWiENhdk+dbdNPkNBfbR9BaWoc3XZRwyVmeY3wRp77UIGx3yArD5D21RhImFYekGsjRtHwsjnO9UNfgt2ytB70BgKVA0HNk09zOVb24W9a8QsQRv1yRV/PExYJI5ksQQ2bHE3ep7zl7wAaZCZW8LmW+g/WBCey1Q= Received: from MWHPR11MB1805.namprd11.prod.outlook.com (2603:10b6:300:114::14) by MWHPR1101MB2158.namprd11.prod.outlook.com (2603:10b6:301:59::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.29; Thu, 5 Nov 2020 01:08:28 +0000 Received: from MWHPR11MB1805.namprd11.prod.outlook.com ([fe80::bd78:5a79:d875:65e4]) by MWHPR11MB1805.namprd11.prod.outlook.com ([fe80::bd78:5a79:d875:65e4%12]) with mapi id 15.20.3499.032; Thu, 5 Nov 2020 01:08:28 +0000 From: "Heng Luo" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: "Dong, Eric" , "Chiu, Chasel" , "Desimone, Nathaniel L" Subject: Re: [edk2-devel] [Patch V4] MinPlatformPkg: console redirect after the shell is loaded Thread-Topic: [edk2-devel] [Patch V4] MinPlatformPkg: console redirect after the shell is loaded Thread-Index: AQEd+XYAKpYg6UWjIi1sxHSaCEvBNqsqKWtggAACioA= Date: Thu, 5 Nov 2020 01:08:28 +0000 Message-ID: References: <20201104080544.515-1-heng.luo@intel.com> <001701d6b30e$46e25380$d4a6fa80$@byosoft.com.cn> In-Reply-To: <001701d6b30e$46e25380$d4a6fa80$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.198] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 271cf06a-c518-4aec-e4a2-08d881274dd0 x-ms-traffictypediagnostic: MWHPR1101MB2158: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IlsdOLgP5dVWzwjKmMbkmd2R1fRZyOHmFFEt4MUTxNiNjM8j8vAqJ4dixDmP8RCNlArIUtzw9VARgsWr77H0Ap0MmOqFQ4kDd6TgKqIBDtKIHh09FPFt49m8m3TLVO5z5xHp0rraJGVFyEhrl6VL4qPioI1cfdF0PoBTW/brdog9aNRln5eoGfpHbsknj0p01LxlKErTnnvMeTYTPpsD7MtsRJ20NiSoShTCguGXHOasRX/s2Dn0WvI33XEeSpVTwq2uUAPpnqFcOmysnFoDFHga6ran9JxGp0rsy8p63hE8O5l6XRNIwq4P1oQY9IFOO08Xer4Arw6IiYuMujPYDO2pSvqdnaJBnI7MJvvOXBwUziqpms+DR1JCtrIUwRtrs4leRYmfRqlFVXsJxgv46w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1805.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(39860400002)(396003)(376002)(366004)(136003)(5660300002)(66446008)(83380400001)(26005)(8676002)(478600001)(52536014)(8936002)(66946007)(33656002)(76116006)(2906002)(54906003)(19627235002)(66476007)(64756008)(186003)(86362001)(53546011)(30864003)(66556008)(71200400001)(55016002)(107886003)(110136005)(316002)(4326008)(9686003)(7696005)(6506007)(966005)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: mGUCX2YpzQ4RqfupjRhJUS4NRY31JZK6PFHZ992p8S21kI67rEL8rywljsM0/i3r1rE23xafXjBzvC2uzUDJKfK9Zh0pjlc4XC41gB2gOXeSHcukcPiBOxZiyP59ydWjJ22Kiq6H5JAqSoKHSfhKuqVtV4EVsq6O3CbjxDzmDJ7qFD2jxrzuQsSwXN14WnZUuGMcdNqLTMnwmXPMeX7H4OwtR42viMudQ1bnH+aYA5B6J/5DdJlwsTq7yelVgtW0t90mzIbD/+E40E03iCpTs8J3SkRA8BqJivu3M+5xpfBFlO1k/MENAr1K/SHusde9xN9y32KjvJJZU/pnrdYKcCfi1v3DN46fISydPV6NwNadNEqLLHVwGT23Nnf1LPMF7kFCUxdtOaSOzytS2g4YiyFOQ9ara69nBrHNZ2GdVN5/0120rxGzvCZpWRY30EfvCbZKH4Z1utWj0u89ZIfqcyVLAVEixy4kCwiIBuvjjKvR4YQT41AfGTGhtLtGwyB7m8XaUETzQvt6o1Za+YtxdHP81uvrqfKltYwRT8TfjxR9FjqJCBUlRvGdWb9PC/U8z7yXFgnLWOSwvR6ak7XF12ErfzfjMq5BTOk2cuYrJH7TzGM6J8d4jQNwIuh2Tc8FEfQwpYdn2XLxE3V73Qlqgg== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1805.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 271cf06a-c518-4aec-e4a2-08d881274dd0 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2020 01:08:28.1378 (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: pVkn7KCDi5e0nYfMK5T1tYXEBSGFxiMSKX3GKBpB9lbs2B5lGN7xp7l/nZZfo04pGQd9f8q6VacOoKGNPXPBSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2158 Return-Path: heng.luo@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpJIHRoaW5rIG5vdCwgaWYgSSBzZXBhcmF0ZSBpdCBpbnRvIDIgcGF0Y2gg Zm9yIE1pblBsYXRmb3JtUGtnIGFuZCBPcGVuQm9hcmRQa2dQY2QsIGl0IHdpbGwgY2F1c2UgT3Bl bkJvYXJkIHBsYXRmb3JtIGJ1aWxkIGVycm9yIGlmIGl0IGFwcGx5cyBNaW5QbGF0Zm9ybVBrZyBw YXRjaCBvbmx5IGJlY2F1c2UgUGNkU2VyaWFsVGVybWluYWxFbmFibGUgaXMgIG5vdCBkZWZpbmVk Lg0KDQoNClRoYW5rcywNCkhlbmcNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFs ZiBPZg0KPiBnYW9saW1pbmcNCj4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDUsIDIwMjAgODo1 NSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEx1bywgSGVuZyA8aGVuZy5sdW9AaW50 ZWwuY29tPg0KPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IENoaXUsIENo YXNlbCA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPjsNCj4gRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxu YXRoYW5pZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6ILvYuLQ6IFtlZGsyLWRl dmVsXSBbUGF0Y2ggVjRdIE1pblBsYXRmb3JtUGtnOiBjb25zb2xlIHJlZGlyZWN0IGFmdGVyDQo+ IHRoZSBzaGVsbCBpcyBsb2FkZWQNCj4gDQo+IEhlbmc6DQo+ICBDYW4geW91IHNlcGFyYXRlIHRo ZSBwYXRjaCBmb3IgdGhlIGRpZmZlcmVudCBwYWNrYWdlcz8gSWYgc28sIGl0IHdpbGwgYmUgZWFz aWx5DQo+IHRvIGJlIHJldmlld2VkLg0KPiANCj4gVGhhbmtzDQo+IExpbWluZw0KPiA+IC0tLS0t 08q8/tStvP4tLS0tLQ0KPiA+ILeivP7IyzogYm91bmNlKzI3OTUyKzY2OTczKzQ5MDU5NTMrODc2 MTA0NUBncm91cHMuaW8NCj4gPiA8Ym91bmNlKzI3OTUyKzY2OTczKzQ5MDU5NTMrODc2MTA0NUBn cm91cHMuaW8+ILT6se0gSGVuZyBMdW8NCj4gPiC3osvNyrG85DogMjAyMMTqMTHUwjTI1SAxNjow Ng0KPiA+IMrVvP7IyzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiCzrcvNOiBFcmljIERvbmcg PGVyaWMuZG9uZ0BpbnRlbC5jb20+OyBDaGFzZWwgQ2hpdQ0KPiA+IDxjaGFzZWwuY2hpdUBpbnRl bC5jb20+OyBOYXRlIERlU2ltb25lDQo+ID4gPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNv bT4NCj4gPiDW98ziOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFY0XSBNaW5QbGF0Zm9ybVBrZzogY29u c29sZSByZWRpcmVjdCBhZnRlciB0aGUNCj4gPiBzaGVsbCBpcyBsb2FkZWQNCj4gPg0KPiA+IFJF RjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDE0DQo+ ID4NCj4gPiBVc2UgU2VyaWFsUG9ydFRlcm1pbmFsTGliIHRvIGdldCBjb25zb2xlIHJlZGlyZWN0 IGFmdGVyIHRoZSBzaGVsbCBpcw0KPiA+IGxvYWRlZDoNCj4gPiAxLiBBZGQgU2VyaWFsUG9ydFRl cm1pbmFsTGliIHRvIE1pblBsYXRmb3JtUGtnL0xpYnJhcnksIGFkZCBQQ0RzIHRvDQo+ID4gY29u ZmlndXJlIHNlcmlhbCBwb3J0Lg0KPiA+IDIuIEFkZCBTZXJpYWxQb3J0VGVybWluYWxMaWIgdG8g QmRzRHhlIGRyaXZlciwgdG8gYWRkIHRoZSBzZXJpYWwNCj4gPiBkZXZpY2UgdG8gIENvbkluIGFu ZCBDb25PdXQgdmFyaWFibGVzIDMuIEluY2x1ZGUgU2VyaWFsRHhlIGFuZA0KPiA+IFRlcm1pbmFs RHhlIHRvIENvcmVEeGVJbmNsdWRlLmRzYyBhbmQgIENvcmVVZWZpQm9vdEluY2x1ZGUuZmRmLg0K PiA+IDQuIFVzZSBQY2RTZXJpYWxUZXJtaW5hbEVuYWJsZSB0byBlbmFibGUvZGlzYWJsZSB0aGlz IGZlYXR1cmUuDQo+ID4gNS4gRW5hYmxlIGZlYXR1cmUgZm9yIFVwWHRyZW1lLCBhbmQgZGlzYWJs ZSBpdCBmb3Igb3RoZXIgcGxhdGZvcm0gYnkNCj4gZGVmYXVsdC4NCj4gPg0KPiA+IENjOiBFcmlj IERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IENoYXNlbCBDaGl1IDxjaGFzZWwu Y2hpdUBpbnRlbC5jb20+DQo+ID4gQ2M6IE5hdGUgRGVTaW1vbmUgPG5hdGhhbmllbC5sLmRlc2lt b25lQGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBIZW5nIEx1byA8aGVuZy5sdW9AaW50 ZWwuY29tPg0KPiA+IC0tLQ0KPiA+DQo+ID4NCj4gUGxhdGZvcm0vSW50ZWwvQ29tZXRsYWtlT3Bl bkJvYXJkUGtnL0NvbWV0bGFrZVVSdnAvT3BlbkJvYXJkUGtnUGNkDQo+ID4gLmRzYyAgICAgICAg ICAgICAgICB8ICAgMSArDQo+ID4gIFBsYXRmb3JtL0ludGVsL0thYnlsYWtlT3BlbkJvYXJkUGtn L0dhbGFnb1BybzMvT3BlbkJvYXJkUGtnUGNkLmRzYw0KPiA+IHwgICAxICsNCj4gPg0KPiA+DQo+ IFBsYXRmb3JtL0ludGVsL0thYnlsYWtlT3BlbkJvYXJkUGtnL0thYnlsYWtlUnZwMy9PcGVuQm9h cmRQa2dQY2QuZHNjDQo+ID4gfCAgIDEgKw0KPiA+ICBQbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9y bVBrZy9JbmNsdWRlL0RzYy9Db3JlRHhlSW5jbHVkZS5kc2MNCj4gPiB8ICAxNSArKysrKysrKysr KysrLS0NCj4gPiAgUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvSW5jbHVkZS9GZGYvQ29y ZVVlZmlCb290SW5jbHVkZS5mZGYNCj4gPiB8ICAgOCArKysrKysrLQ0KPiA+DQo+ID4NCj4gUGxh dGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvTGlicmFyeS9TZXJpYWxQb3J0VGVybWluYWxMaWIv U2VyaWFsUG9ydFRlcm0NCj4gaQ0KPiA+IG5hbExpYi5jICAgfCAxMDINCj4gPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPg0KPiA+DQo+IFBs YXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0xpYnJhcnkvU2VyaWFsUG9ydFRlcm1pbmFsTGli L1NlcmlhbFBvcnRUZXJtDQo+IGkNCj4gPiBuYWxMaWIuaCAgIHwgIDQ4DQo+ID4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4NCj4gPg0KPiBQbGF0 Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9MaWJyYXJ5L1NlcmlhbFBvcnRUZXJtaW5hbExpYi9T ZXJpYWxQb3J0VGVybQ0KPiBpDQo+ID4gbmFsTGliLmluZiB8ICA0MCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIFBsYXRmb3JtL0ludGVsL01pblBsYXRmb3Jt UGtnL01pblBsYXRmb3JtUGtnLmRlYw0KPiA+IHwgIDI1ICsrKysrKysrKysrKysrKysrKysrKysr KysNCj4gPiAgUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvTWluUGxhdGZvcm1Qa2cuZHNj DQo+ID4gfCAgIDMgKystDQo+ID4gIFBsYXRmb3JtL0ludGVsL1NpbWljc09wZW5Cb2FyZFBrZy9C b2FyZFg1OEljaDEwL09wZW5Cb2FyZFBrZ1BjZC5kc2MNCj4gPiB8ICAgMSArDQo+ID4NCj4gPg0K PiBQbGF0Zm9ybS9JbnRlbC9XaGlza2V5bGFrZU9wZW5Cb2FyZFBrZy9VcFh0cmVtZS9PcGVuQm9h cmRQa2dQY2QuZHNjDQo+ID4gfCAgIDEgKw0KPiA+DQo+ID4NCj4gUGxhdGZvcm0vSW50ZWwvV2hp c2tleWxha2VPcGVuQm9hcmRQa2cvV2hpc2tleWxha2VVUnZwL09wZW5Cb2FyZFBrZw0KPiA+IFBj ZC5kc2MgICAgICAgICAgICB8ICAgMSArDQo+ID4gIDEzIGZpbGVzIGNoYW5nZWQsIDI0MyBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+DQo+IGEv UGxhdGZvcm0vSW50ZWwvQ29tZXRsYWtlT3BlbkJvYXJkUGtnL0NvbWV0bGFrZVVSdnAvT3BlbkJv YXJkUGtnUA0KPiA+IGNkLmRzYw0KPiA+DQo+IGIvUGxhdGZvcm0vSW50ZWwvQ29tZXRsYWtlT3Bl bkJvYXJkUGtnL0NvbWV0bGFrZVVSdnAvT3BlbkJvYXJkUGtnUA0KPiA+IGNkLmRzYw0KPiA+IGlu ZGV4IGQ2MTFlOTlmYzEuLjU4OWIwMDJkMDYgMTAwNjQ0DQo+ID4gLS0tDQo+ID4NCj4gYS9QbGF0 Zm9ybS9JbnRlbC9Db21ldGxha2VPcGVuQm9hcmRQa2cvQ29tZXRsYWtlVVJ2cC9PcGVuQm9hcmRQ a2dQDQo+ID4gY2QuZHNjDQo+ID4gKysrDQo+ID4NCj4gYi9QbGF0Zm9ybS9JbnRlbC9Db21ldGxh a2VPcGVuQm9hcmRQa2cvQ29tZXRsYWtlVVJ2cC9PcGVuQm9hcmRQa2dQDQo+ID4gY2QuZHNjDQo+ ID4gQEAgLTEzMSw2ICsxMzEsNyBAQA0KPiA+ICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFBlcmZvcm1hbmNlRW5hYmxlfEZBTFNFDQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Q a2dUb2tlblNwYWNlR3VpZC5QY2RUcG0yRW5hYmxlfEZBTFNFDQo+ID4NCj4gPiAgICBnTWluUGxh dGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5QY2RVZWZpU2VjdXJlQm9vdEVuYWJsZXxGQUxTRQ0KPiA+ DQo+ID4gKyAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VyaWFsVGVybWluYWxF bmFibGV8RkFMU0UNCj4gPg0KPiA+DQo+ID4NCj4gPiAgIWlmIGdNaW5QbGF0Zm9ybVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZEJvb3RTdGFnZSA+PSAxDQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dU b2tlblNwYWNlR3VpZC5QY2RTdG9wQWZ0ZXJEZWJ1Z0luaXR8VFJVRQ0KPiA+DQo+ID4gZGlmZiAt LWdpdA0KPiA+DQo+IGEvUGxhdGZvcm0vSW50ZWwvS2FieWxha2VPcGVuQm9hcmRQa2cvR2FsYWdv UHJvMy9PcGVuQm9hcmRQa2dQY2QuZHNjDQo+ID4NCj4gYi9QbGF0Zm9ybS9JbnRlbC9LYWJ5bGFr ZU9wZW5Cb2FyZFBrZy9HYWxhZ29Qcm8zL09wZW5Cb2FyZFBrZ1BjZC5kc2MNCj4gPiBpbmRleCAz NTI0MTZhNDg5Li40NGRhY2RmMDgyIDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvUGxhdGZvcm0v SW50ZWwvS2FieWxha2VPcGVuQm9hcmRQa2cvR2FsYWdvUHJvMy9PcGVuQm9hcmRQa2dQY2QuZHNj DQo+ID4gKysrDQo+ID4NCj4gYi9QbGF0Zm9ybS9JbnRlbC9LYWJ5bGFrZU9wZW5Cb2FyZFBrZy9H YWxhZ29Qcm8zL09wZW5Cb2FyZFBrZ1BjZC5kc2MNCj4gPiBAQCAtMTMwLDYgKzEzMCw3IEBADQo+ ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkUGVyZm9ybWFuY2VFbmFibGV8 RkFMU0UNCj4gPg0KPiA+ICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFRwbTJF bmFibGV8RkFMU0UNCj4gPg0KPiA+ICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFVlZmlTZWN1cmVCb290RW5hYmxlfEZBTFNFDQo+ID4NCj4gPiArICBnTWluUGxhdGZvcm1Qa2dU b2tlblNwYWNlR3VpZC5QY2RTZXJpYWxUZXJtaW5hbEVuYWJsZXxGQUxTRQ0KPiA+DQo+ID4NCj4g Pg0KPiA+ICAhaWYgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkQm9vdFN0YWdlID49 IDENCj4gPg0KPiA+ICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN0b3BBZnRl ckRlYnVnSW5pdHxUUlVFDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4NCj4gYS9QbGF0Zm9ybS9J bnRlbC9LYWJ5bGFrZU9wZW5Cb2FyZFBrZy9LYWJ5bGFrZVJ2cDMvT3BlbkJvYXJkUGtnUGNkLmQN Cj4gPiBzYw0KPiA+DQo+IGIvUGxhdGZvcm0vSW50ZWwvS2FieWxha2VPcGVuQm9hcmRQa2cvS2Fi eWxha2VSdnAzL09wZW5Cb2FyZFBrZ1BjZC5kDQo+ID4gc2MNCj4gPiBpbmRleCA5ZThiMTQ4NzUz Li43MjU1OTZjYmY3IDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvUGxhdGZvcm0vSW50ZWwvS2Fi eWxha2VPcGVuQm9hcmRQa2cvS2FieWxha2VSdnAzL09wZW5Cb2FyZFBrZ1BjZC5kDQo+ID4gc2MN Cj4gPiArKysNCj4gPg0KPiBiL1BsYXRmb3JtL0ludGVsL0thYnlsYWtlT3BlbkJvYXJkUGtnL0th YnlsYWtlUnZwMy9PcGVuQm9hcmRQa2dQY2QuZA0KPiA+IHNjDQo+ID4gQEAgLTE2OCw2ICsxNjgs NyBAQA0KPiA+ICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFBlcmZvcm1hbmNl RW5hYmxlfEZBTFNFDQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5Q Y2RUcG0yRW5hYmxlfEZBTFNFDQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNl R3VpZC5QY2RVZWZpU2VjdXJlQm9vdEVuYWJsZXxGQUxTRQ0KPiA+DQo+ID4gKyAgZ01pblBsYXRm b3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VyaWFsVGVybWluYWxFbmFibGV8RkFMU0UNCj4gPg0K PiA+DQo+ID4NCj4gPiAgIWlmIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEJvb3RT dGFnZSA+PSAxDQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5QY2RT dG9wQWZ0ZXJEZWJ1Z0luaXR8VFJVRQ0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+IGEvUGxhdGZv cm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvSW5jbHVkZS9Ec2MvQ29yZUR4ZUluY2x1ZGUuZHNjDQo+ ID4gYi9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9JbmNsdWRlL0RzYy9Db3JlRHhlSW5j bHVkZS5kc2MNCj4gPiBpbmRleCBmMGU1NzhmOGNjLi4yYTRhNTc0Y2RmIDEwMDY0NA0KPiA+IC0t LSBhL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0luY2x1ZGUvRHNjL0NvcmVEeGVJbmNs dWRlLmRzYw0KPiA+ICsrKyBiL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0luY2x1ZGUv RHNjL0NvcmVEeGVJbmNsdWRlLmRzYw0KPiA+IEBAIC0xLDcgKzEsNyBAQA0KPiA+ICAjIyBAZmls ZQ0KPiA+DQo+ID4gICMgIFBsYXRmb3JtIGRlc2NyaXB0aW9uLg0KPiA+DQo+ID4gICMNCj4gPg0K PiA+IC0jIENvcHlyaWdodCAoYykgMjAxNyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzDQo+ID4gcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKyMgQ29weXJpZ2h0IChjKSAyMDE3 IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4gPiArcmVzZXJ2ZWQuPEJS Pg0KPiA+DQo+ID4gICMNCj4gPg0KPiA+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+ID4NCj4gPiAgIw0KPiA+DQo+ID4gQEAgLTQ2LDcgKzQ2LDE4IEBA DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Nb25vdG9uaWND b3VudGVyUnVudGltZUR4ZS9Nb25vdG9uaWNDb3VudA0KPiBlDQo+ID4gclJ1bnRpbWVEeGUuaW5m DQo+ID4NCj4gPg0KPiA+DQo+ID4gLSAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRz RHhlLmluZg0KPiA+DQo+ID4gKyAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9CZHNEeGUvQmRzRHhl LmluZnsNCj4gPg0KPiA+ICsgICAgPExpYnJhcnlDbGFzc2VzPg0KPiA+DQo+ID4gKyFpZiBnTWlu UGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5QY2RTZXJpYWxUZXJtaW5hbEVuYWJsZSA9PSBUUlVF DQo+ID4NCj4gPiArDQo+ID4gTlVMTHxTZXJpYWxUZXJtaW5hbEZlYXR1cmVQa2cvTGlicmFyeS9T ZXJpYWxQb3J0VGVybWluYWxMaWIvU2VyaWFsUG9ydA0KPiA+IE5VTEx8VGVybQ0KPiA+IGluYWxM aWIuaW5mDQo+ID4NCj4gPiArIWVuZGlmDQo+ID4NCj4gPiArICB9DQo+ID4NCj4gPiArDQo+ID4N Cj4gPiArIWlmIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRlcm1pbmFs RW5hYmxlID09IFRSVUUNCj4gPg0KPiA+ICsgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvU2VyaWFs RHhlL1NlcmlhbER4ZS5pbmYNCj4gPg0KPiA+ICsgIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ29u c29sZS9UZXJtaW5hbER4ZS9UZXJtaW5hbER4ZS5pbmYNCj4gPg0KPiA+ICshZW5kaWYNCj4gPg0K PiA+ICsNCj4gPg0KPiA+DQo+ID4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Ecml2ZXJIZWFs dGhNYW5hZ2VyRHhlL0RyaXZlckhlYWx0aE1hbmFnZXJEDQo+ID4geGUuaW5mDQo+ID4NCj4gPiAg ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1NlY3VyaXR5U3R1YkR4ZS9TZWN1cml0eVN0dWJEeGUu aW5mIHsNCj4gPg0KPiA+ICAgICAgPExpYnJhcnlDbGFzc2VzPg0KPiA+DQo+ID4gZGlmZiAtLWdp dA0KPiA+IGEvUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvSW5jbHVkZS9GZGYvQ29yZVVl ZmlCb290SW5jbHVkZS5mZGYNCj4gPiBiL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0lu Y2x1ZGUvRmRmL0NvcmVVZWZpQm9vdEluY2x1ZGUuZmRmDQo+ID4gaW5kZXggNzg1OWMwYjFhNS4u ZWY0NTc2ZWVkZiAxMDA2NDQNCj4gPiAtLS0NCj4gPiBhL1BsYXRmb3JtL0ludGVsL01pblBsYXRm b3JtUGtnL0luY2x1ZGUvRmRmL0NvcmVVZWZpQm9vdEluY2x1ZGUuZmRmDQo+ID4gKysrIGIvUGxh dGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvSW5jbHVkZS9GZGYvQ29yZVVlZmlCb290SW5jbHVk ZS5mZA0KPiA+ICsrKyBmDQo+ID4gQEAgLTEsNyArMSw3IEBADQo+ID4gICMjIEBmaWxlDQo+ID4N Cj4gPiAgIyAgRkRGIGZpbGUgb2YgUGxhdGZvcm0uDQo+ID4NCj4gPiAgIw0KPiA+DQo+ID4gLSMg Q29weXJpZ2h0IChjKSAyMDE3IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMN Cj4gPiByZXNlcnZlZC48QlI+DQo+ID4NCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDIw LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+ICtyZXNlcnZlZC48QlI+DQo+ID4N Cj4gPiAgIw0KPiA+DQo+ID4gICMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz ZS1QYXRlbnQNCj4gPg0KPiA+ICAjDQo+ID4NCj4gPiBAQCAtMjYsNiArMjYsMTIgQEAgSU5GDQo+ ID4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUnVu dGltZUR4ZS5pbmYNCj4gPiAgSU5GDQo+ID4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Nb25v dG9uaWNDb3VudGVyUnVudGltZUR4ZS9Nb25vdG9uaWNDb3VudA0KPiBlDQo+ID4gclJ1bnRpbWVE eGUuaW5mDQo+ID4NCj4gPg0KPiA+DQo+ID4gIElORiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9C ZHNEeGUvQmRzRHhlLmluZg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyFpZiBnTWluUGxhdGZvcm1Q a2dUb2tlblNwYWNlR3VpZC5QY2RTZXJpYWxUZXJtaW5hbEVuYWJsZSA9PSBUUlVFDQo+ID4NCj4g PiArSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1NlcmlhbER4ZS9TZXJpYWxEeGUuaW5mDQo+ ID4NCj4gPiArSU5GICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NvbnNvbGUvVGVybWluYWxEeGUv VGVybWluYWxEeGUuaW5mDQo+ID4NCj4gPiArIWVuZGlmDQo+ID4NCj4gPiArDQo+ID4NCj4gPiAg SU5GDQo+ID4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9Ecml2ZXJIZWFsdGhNYW5hZ2VyRHhl L0RyaXZlckhlYWx0aE1hbmFnZXJEDQo+ID4geGUuaW5mDQo+ID4NCj4gPiAgSU5GICBNZGVNb2R1 bGVQa2cvVW5pdmVyc2FsL1NlY3VyaXR5U3R1YkR4ZS9TZWN1cml0eVN0dWJEeGUuaW5mDQo+ID4N Cj4gPiAgSU5GDQo+ID4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9DYXBzdWxlUnVudGltZUR4ZS9D YXBzdWxlUnVudGltZUR4ZS5pbmYNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPg0KPiBhL1BsYXRm b3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0xpYnJhcnkvU2VyaWFsUG9ydFRlcm1pbmFsTGliL1Nl cmlhbFBvcnRUZXINCj4gPiBtaW5hbExpYi5jDQo+ID4NCj4gYi9QbGF0Zm9ybS9JbnRlbC9NaW5Q bGF0Zm9ybVBrZy9MaWJyYXJ5L1NlcmlhbFBvcnRUZXJtaW5hbExpYi9TZXJpYWxQb3J0VGVyDQo+ ID4gbWluYWxMaWIuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAw MDAwMC4uOTRkZTQ3NTE3Mw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysNCj4gPg0KPiBiL1Bs YXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL0xpYnJhcnkvU2VyaWFsUG9ydFRlcm1pbmFsTGli L1NlcmlhbFBvcnRUZXINCj4gPiBtaW5hbExpYi5jDQo+ID4gQEAgLTAsMCArMSwxMDIgQEANCj4g PiArLyoqIEBmaWxlDQo+ID4NCj4gPiArICBNYWluIGZpbGUgZm9yIE5VTEwgbmFtZWQgbGlicmFy eSBmb3IgU2VyaWFsIFBvcnQgVGVybWluYWwNCj4gPiArIFJlZGlyZWN0aW9uDQo+ID4gbGlicmFy eS4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMCwgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+DQo+ID4gKyAgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ ICsqKi8NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjaW5jbHVkZSAiU2VyaWFsUG9ydFRlcm1pbmFs TGliLmgiDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArR0xPQkFMX1JFTU9WRV9JRl9VTlJFRkVSRU5D RUQgU0VSSUFMX0RFVklDRV9QQVRIDQo+ID4gbVNlcmlhbERldmljZVBhdGggPSB7DQo+ID4NCj4g PiArICB7DQo+ID4NCj4gPiArICAgIHsNCj4gPg0KPiA+ICsgICAgICBIQVJEV0FSRV9ERVZJQ0Vf UEFUSCwNCj4gPg0KPiA+ICsgICAgICBIV19WRU5ET1JfRFAsDQo+ID4NCj4gPiArICAgICAgew0K PiA+DQo+ID4gKyAgICAgICAgKFVJTlQ4KSBzaXplb2YgKFZFTkRPUl9ERVZJQ0VfUEFUSCksDQo+ ID4NCj4gPiArICAgICAgICAoVUlOVDgpICgoc2l6ZW9mIChWRU5ET1JfREVWSUNFX1BBVEgpKSA+ PiA4KQ0KPiA+DQo+ID4gKyAgICAgIH0NCj4gPg0KPiA+ICsgICAgfSwNCj4gPg0KPiA+ICsgICAg RURLSUlfU0VSSUFMX1BPUlRfTElCX1ZFTkRPUl9HVUlEDQo+ID4NCj4gPiArICB9LA0KPiA+DQo+ ID4gKyAgew0KPiA+DQo+ID4gKyAgICB7DQo+ID4NCj4gPiArICAgICAgTUVTU0FHSU5HX0RFVklD RV9QQVRILA0KPiA+DQo+ID4gKyAgICAgIE1TR19VQVJUX0RQLA0KPiA+DQo+ID4gKyAgICAgIHsN Cj4gPg0KPiA+ICsgICAgICAgIChVSU5UOCkgc2l6ZW9mIChVQVJUX0RFVklDRV9QQVRIKSwNCj4g Pg0KPiA+ICsgICAgICAgIChVSU5UOCkgKChzaXplb2YgKFVBUlRfREVWSUNFX1BBVEgpKSA+PiA4 KQ0KPiA+DQo+ID4gKyAgICAgIH0NCj4gPg0KPiA+ICsgICAgfSwNCj4gPg0KPiA+ICsgICAgMCwg ICAgICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KPiA+DQo+ID4gKyAgICAwLCAgICAgICAgICAg ICAgICAgIC8vIEJhdWRSYXRlDQo+ID4NCj4gPiArICAgIDAsICAgICAgICAgICAgICAgICAgLy8g RGF0YUJpdHMNCj4gPg0KPiA+ICsgICAgMCwgICAgICAgICAgICAgICAgICAvLyBQYXJpdHkNCj4g Pg0KPiA+ICsgICAgMCAgICAgICAgICAgICAgICAgICAvLyBTdG9wQml0cw0KPiA+DQo+ID4gKyAg fSwNCj4gPg0KPiA+ICsgIHsNCj4gPg0KPiA+ICsgICAgew0KPiA+DQo+ID4gKyAgICAgIE1FU1NB R0lOR19ERVZJQ0VfUEFUSCwNCj4gPg0KPiA+ICsgICAgICBNU0dfVkVORE9SX0RQLA0KPiA+DQo+ ID4gKyAgICAgIHsNCj4gPg0KPiA+ICsgICAgICAgIChVSU5UOCkgKHNpemVvZiAoVkVORE9SX0RF VklDRV9QQVRIKSksDQo+ID4NCj4gPiArICAgICAgICAoVUlOVDgpICgoc2l6ZW9mIChWRU5ET1Jf REVWSUNFX1BBVEgpKSA+PiA4KSwNCj4gPg0KPiA+ICsgICAgICB9DQo+ID4NCj4gPiArICAgIH0s DQo+ID4NCj4gPiArICAgIERFVklDRV9QQVRIX01FU1NBR0lOR19QQ19BTlNJDQo+ID4NCj4gPiAr ICB9LA0KPiA+DQo+ID4gKyAgZ0VuZEVudGlyZQ0KPiA+DQo+ID4gK307DQo+ID4NCj4gPiArDQo+ ID4NCj4gPiArLyoqDQo+ID4NCj4gPiArICBVcGRhdGVzIHRoZSBDb25PdXQsIENvbkluLCBFcnJP dXQgdmFyaWFibGVzIHdpdGggdGhlIHNlcmlhbA0KPiA+ICsgdGVybWluYWwNCj4gPiBkZXZpY2Ug cGF0aA0KPiA+DQo+ID4gKyAgQHBhcmFtICAgICAgICAgICAgICAgICAgICAgICAgbm9uZQ0KPiA+ DQo+ID4gKyAgQHJldHZhbCAgICAgICAgICAgICAgICAgICAgICAgbm9uZQ0KPiA+DQo+ID4gKyoq Lw0KPiA+DQo+ID4gK1ZPSUQNCj4gPg0KPiA+ICtBZGRTZXJpYWxUZXJtaW5hbCAoDQo+ID4NCj4g PiArICBWT0lEDQo+ID4NCj4gPiArICApDQo+ID4NCj4gPiArew0KPiA+DQo+ID4gKyAgREVCVUcg KChERUJVR19JTkZPLCAiW0FkZFNlcmlhbFBvcnRUZXJtaW5hbF1cbiIpKTsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgIC8vDQo+ID4NCj4gPiArICAvLyBBcHBlbmQgU2VyaWFsIFRlcm1pbmFsIGlu dG8gIkNvbkluIg0KPiA+DQo+ID4gKyAgLy8NCj4gPg0KPiA+ICsgIEVmaUJvb3RNYW5hZ2VyVXBk YXRlQ29uc29sZVZhcmlhYmxlIChDb25PdXQsDQo+ID4gKEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NP TCAqKSAmbVNlcmlhbERldmljZVBhdGgsIE5VTEwpOw0KPiA+DQo+ID4gKyAgRWZpQm9vdE1hbmFn ZXJVcGRhdGVDb25zb2xlVmFyaWFibGUgKENvbkluLA0KPiA+IChFRklfREVWSUNFX1BBVEhfUFJP VE9DT0wgKikgJm1TZXJpYWxEZXZpY2VQYXRoLCBOVUxMKTsNCj4gPg0KPiA+ICsgIEVmaUJvb3RN YW5hZ2VyVXBkYXRlQ29uc29sZVZhcmlhYmxlIChFcnJPdXQsDQo+ID4gKEVGSV9ERVZJQ0VfUEFU SF9QUk9UT0NPTCAqKSAmbVNlcmlhbERldmljZVBhdGgsIE5VTEwpOw0KPiA+DQo+ID4gK30NCj4g Pg0KPiA+ICsNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvKioNCj4gPg0KPiA+ICsgIENvbnN0cnVj dG9yIGZvciB0aGUgU2VyaWFsIFBvcnQgRGV2aWNlIGNvbnRyb2xsZXIgbGlicmFyeS4NCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgIEBwYXJhbSBJbWFnZUhhbmRsZSAgICB0aGUgaW1hZ2UgaGFuZGxl IG9mIHRoZSBwcm9jZXNzDQo+ID4NCj4gPiArICBAcGFyYW0gU3lzdGVtVGFibGUgICAgdGhlIEVG SSBTeXN0ZW0gVGFibGUgcG9pbnRlcg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQHJldHZhbCBF RklfU1VDQ0VTUyAgICAgICAgdGhlIHNoZWxsIGNvbW1hbmQgaGFuZGxlcnMgd2VyZQ0KPiA+IGlu c3RhbGxlZCBzdWNlc3NmdWxseQ0KPiA+DQo+ID4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQg ICAgdGhlIHNoZWxsIGxldmVsIHJlcXVpcmVkIHdhcyBub3QgZm91bmQuDQo+ID4NCj4gPiArKiov DQo+ID4NCj4gPiArRUZJX1NUQVRVUw0KPiA+DQo+ID4gK0VGSUFQSQ0KPiA+DQo+ID4gK1Nlcmlh bFBvcnRUZXJtaW5hbExpYkNvbnN0cnVjdG9yICgNCj4gPg0KPiA+ICsgIElOIEVGSV9IQU5ETEUg ICAgICAgIEltYWdlSGFuZGxlLA0KPiA+DQo+ID4gKyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgKlN5 c3RlbVRhYmxlDQo+ID4NCj4gPiArICApDQo+ID4NCj4gPiArew0KPiA+DQo+ID4gKyAgbVNlcmlh bERldmljZVBhdGguVWFydC5CYXVkUmF0ZSA9DQo+ID4gUGNkR2V0NjQoUGNkU2VyaWFsVGVybWlu YWxCYXVkUmF0ZSk7DQo+ID4NCj4gPiArICBtU2VyaWFsRGV2aWNlUGF0aC5VYXJ0LkRhdGFCaXRz ID0NCj4gPiArIFBjZEdldDgoUGNkU2VyaWFsVGVybWluYWxEYXRhQml0cyk7DQo+ID4NCj4gPiAr ICBtU2VyaWFsRGV2aWNlUGF0aC5VYXJ0LlBhcml0eSAgID0gUGNkR2V0OChQY2RTZXJpYWxUZXJt aW5hbFBhcml0eSk7DQo+ID4NCj4gPiArICBtU2VyaWFsRGV2aWNlUGF0aC5VYXJ0LlN0b3BCaXRz ID0NCj4gPiArIFBjZEdldDgoUGNkU2VyaWFsVGVybWluYWxTdG9wQml0cyk7DQo+ID4NCj4gPiAr ICBERUJVRyAoKERFQlVHX0lORk8sICJbU2VyaWFsUG9ydFRlcm1pbmFsTGliQ29uc3RydWN0b3Jd DQo+ID4gWyVkLCAlZCwgJWQsICVkXVxuIiwNCj4gPg0KPiA+ICsgICAgICBtU2VyaWFsRGV2aWNl UGF0aC5VYXJ0LkJhdWRSYXRlLA0KPiA+DQo+ID4gKyAgICAgIG1TZXJpYWxEZXZpY2VQYXRoLlVh cnQuRGF0YUJpdHMsDQo+ID4NCj4gPiArICAgICAgbVNlcmlhbERldmljZVBhdGguVWFydC5QYXJp dHksDQo+ID4NCj4gPiArICAgICAgbVNlcmlhbERldmljZVBhdGguVWFydC5TdG9wQml0cykpOw0K PiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQWRkU2VyaWFsVGVybWluYWwoKTsNCj4gPg0KPiA+ICsN Cj4gPg0KPiA+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPg0KPiA+ICt9DQo+ID4NCj4gPiBk aWZmIC0tZ2l0DQo+ID4NCj4gYS9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9MaWJyYXJ5 L1NlcmlhbFBvcnRUZXJtaW5hbExpYi9TZXJpYWxQb3J0VGVyDQo+ID4gbWluYWxMaWIuaA0KPiA+ DQo+IGIvUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvTGlicmFyeS9TZXJpYWxQb3J0VGVy bWluYWxMaWIvU2VyaWFsUG9ydFRlcg0KPiA+IG1pbmFsTGliLmgNCj4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAuLjBhMmVhYWU4YjgNCj4gPiAtLS0gL2Rldi9u dWxsDQo+ID4gKysrDQo+ID4NCj4gYi9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9MaWJy YXJ5L1NlcmlhbFBvcnRUZXJtaW5hbExpYi9TZXJpYWxQb3J0VGVyDQo+ID4gbWluYWxMaWIuaA0K PiA+IEBAIC0wLDAgKzEsNDggQEANCj4gPiArLyoqIEBmaWxlDQo+ID4NCj4gPiArICBIZWFkZXIg ZmlsZSBmb3IgTlVMTCBuYW1lZCBsaWJyYXJ5IGZvciBmb3IgU2VyaWFsIFBvcnQgVGVybWluYWwN Cj4gUmVkaXJlY3Rpb24NCj4gPiBsaWJyYXJ5Lg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgQ29w eXJpZ2h0IChjKSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQo+ID4NCj4gPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyoqLw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNp Zm5kZWYgX1NFUklBTF9QT1JUX1RFUk1JTkFMX0xJQl9IXw0KPiA+DQo+ID4gKyNkZWZpbmUgX1NF UklBTF9QT1JUX1RFUk1JTkFMX0xJQl9IXw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNpbmNsdWRl IDxVZWZpLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPEd1aWQvU2VyaWFsUG9ydExpYlZlbmRvci5o Pg0KPiA+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlMaWIuaD4NCj4gPg0KPiA+ICsjaW5j bHVkZSA8TGlicmFyeS9EZXZpY2VQYXRoTGliLmg+DQo+ID4NCj4gPiArI2luY2x1ZGUgPExpYnJh cnkvRGVidWdMaWIuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9VZWZpQm9vdE1hbmFn ZXJMaWIuaD4NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsvLw0KPiA+DQo+ID4gKy8vIEJlbG93IGlz IHRoZSBwbGF0Zm9ybSBjb25zb2xlIGRldmljZSBwYXRoDQo+ID4NCj4gPiArLy8NCj4gPg0KPiA+ ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4NCj4gPiArICBWRU5ET1JfREVWSUNFX1BBVEggICAgICAg IEd1aWQ7DQo+ID4NCj4gPiArICBVQVJUX0RFVklDRV9QQVRIICAgICAgICAgIFVhcnQ7DQo+ID4N Cj4gPiArICBWRU5ET1JfREVWSUNFX1BBVEggICAgICAgIFRlcm1pbmFsVHlwZTsNCj4gPg0KPiA+ ICsgIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgRW5kOw0KPiA+DQo+ID4gK30gU0VSSUFMX0RF VklDRV9QQVRIOw0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyNkZWZpbmUgZ1BjaVJvb3RCcmlkZ2Ug XA0KPiA+DQo+ID4gKyAgeyBcDQo+ID4NCj4gPiArICAgIHsgXA0KPiA+DQo+ID4gKyAgICAgIEFD UElfREVWSUNFX1BBVEgsIFwNCj4gPg0KPiA+ICsgICAgICBBQ1BJX0RQLCBcDQo+ID4NCj4gPiAr ICAgICAgeyBcDQo+ID4NCj4gPiArICAgICAgICAoVUlOVDgpIChzaXplb2YgKEFDUElfSElEX0RF VklDRV9QQVRIKSksIFwNCj4gPg0KPiA+ICsgICAgICAgIChVSU5UOCkgKChzaXplb2YgKEFDUElf SElEX0RFVklDRV9QQVRIKSkgPj4gOCkgXA0KPiA+DQo+ID4gKyAgICAgIH0sIFwNCj4gPg0KPiA+ ICsgICAgfSwgXA0KPiA+DQo+ID4gKyAgICBFSVNBX1BOUF9JRCAoMHgwQTAzKSwgXA0KPiA+DQo+ ID4gKyAgICAwIFwNCj4gPg0KPiA+ICsgIH0NCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsjZGVmaW5l IGdFbmRFbnRpcmUgXA0KPiA+DQo+ID4gKyAgeyBcDQo+ID4NCj4gPiArICAgIEVORF9ERVZJQ0Vf UEFUSF9UWVBFLCBFTkRfRU5USVJFX0RFVklDRV9QQVRIX1NVQlRZUEUsDQo+ID4geyBFTkRfREVW SUNFX1BBVEhfTEVOR1RILCAwIH0gXA0KPiA+DQo+ID4gKyAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ ID4gKyNlbmRpZg0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+DQo+IGEvUGxhdGZvcm0vSW50ZWwv TWluUGxhdGZvcm1Qa2cvTGlicmFyeS9TZXJpYWxQb3J0VGVybWluYWxMaWIvU2VyaWFsUG9ydFRl cg0KPiA+IG1pbmFsTGliLmluZg0KPiA+DQo+IGIvUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Q a2cvTGlicmFyeS9TZXJpYWxQb3J0VGVybWluYWxMaWIvU2VyaWFsUG9ydFRlcg0KPiA+IG1pbmFs TGliLmluZg0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4u YjBhOTMyNmIxYg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysNCj4gPg0KPiBiL1BsYXRmb3Jt L0ludGVsL01pblBsYXRmb3JtUGtnL0xpYnJhcnkvU2VyaWFsUG9ydFRlcm1pbmFsTGliL1Nlcmlh bFBvcnRUZXINCj4gPiBtaW5hbExpYi5pbmYNCj4gPiBAQCAtMCwwICsxLDQwIEBADQo+ID4gKyMj IEBmaWxlDQo+ID4NCj4gPiArIyBDb21wb25lbnQgaW5mb3JtYXRpb24gZmlsZSBmb3IgU2VyaWFs IFBvcnQgVGVybWluYWwgUmVkaXJlY3Rpb24NCj4gPiArTGlicmFyeQ0KPiA+DQo+ID4gKyMNCj4g Pg0KPiA+ICsjIElOVEVMIENPTkZJREVOVElBTA0KPiA+DQo+ID4gKyMgQ29weXJpZ2h0IChjKSAy MDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4NCj4g PiArIw0KPiA+DQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCj4gPg0KPiA+ICsjDQo+ID4NCj4gPiArIyMNCj4gPg0KPiA+ICtbRGVmaW5lc10NCj4g Pg0KPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDYNCj4g Pg0KPiA+ICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9IFNlcmlhbFBvcnRUZXJt aW5hbExpYg0KPiA+DQo+ID4gKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0NCj4g PiBFMTJCRkE0Ni05NUYyLTRBREMtOTc3NC03RTM4REU3ODc0MUUNCj4gPg0KPiA+ICsgIE1PRFVM RV9UWVBFICAgICAgICAgICAgICAgICAgICA9IFVFRklfRFJJVkVSDQo+ID4NCj4gPiArICBWRVJT SU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjINCj4gPg0KPiA+ICsgIExJQlJBUllfQ0xB U1MgICAgICAgICAgICAgICAgICA9IE5VTEx8VUVGSV9EUklWRVIgRFhFX0RSSVZFUg0KPiA+IERY RV9SVU5USU1FX0RSSVZFUg0KPiA+DQo+ID4gKyAgQ09OU1RSVUNUT1IgICAgICAgICAgICAgICAg ICAgID0NCj4gPiBTZXJpYWxQb3J0VGVybWluYWxMaWJDb25zdHJ1Y3Rvcg0KPiA+DQo+ID4gKw0K PiA+DQo+ID4gK1tQYWNrYWdlc10NCj4gPg0KPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4N Cj4gPiArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+DQo+ID4gKyAgQm9hcmRN b2R1bGVQa2cvQm9hcmRNb2R1bGVQa2cuZGVjDQo+ID4NCj4gPiArICBNaW5QbGF0Zm9ybVBrZy9N aW5QbGF0Zm9ybVBrZy5kZWMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICtbU291cmNlc10NCj4gPg0K PiA+ICsgIFNlcmlhbFBvcnRUZXJtaW5hbExpYi5jDQo+ID4NCj4gPiArICBTZXJpYWxQb3J0VGVy bWluYWxMaWIuaA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4gPg0K PiA+ICsgIERldmljZVBhdGhMaWINCj4gPg0KPiA+ICsgIERlYnVnTGliDQo+ID4NCj4gPiArICBV ZWZpRHJpdmVyRW50cnlQb2ludA0KPiA+DQo+ID4gKyAgVWVmaUJvb3RNYW5hZ2VyTGliDQo+ID4N Cj4gPiArICBVZWZpTGliDQo+ID4NCj4gPiArDQo+ID4NCj4gPiArW1BjZF0NCj4gPg0KPiA+ICsg IGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRlcm1pbmFsQmF1ZFJhdGUN Cj4gPg0KPiA+ICsgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRlcm1p bmFsRGF0YUJpdHMNCj4gPg0KPiA+ICsgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFNlcmlhbFRlcm1pbmFsUGFyaXR5DQo+ID4NCj4gPiArICBnTWluUGxhdGZvcm1Qa2dUb2tlblNw YWNlR3VpZC5QY2RTZXJpYWxUZXJtaW5hbFN0b3BCaXRzDQo+ID4gXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlDQo+ID4gZGlmZiAtLWdpdCBhL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtn L01pblBsYXRmb3JtUGtnLmRlYw0KPiA+IGIvUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cv TWluUGxhdGZvcm1Qa2cuZGVjDQo+ID4gaW5kZXggN2VmMTg5ZGFjOC4uMzYwNTBhYTFhOCAxMDA2 NDQNCj4gPiAtLS0gYS9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9NaW5QbGF0Zm9ybVBr Zy5kZWMNCj4gPiArKysgYi9QbGF0Zm9ybS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9NaW5QbGF0Zm9y bVBrZy5kZWMNCj4gPiBAQCAtMjA1LDYgKzIwNSwzMCBAQA0KPiA+ICBbUGNkc0R5bmFtaWMsIFBj ZHNEeW5hbWljRXhdDQo+ID4NCj4gPg0KPiA+DQo+IGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFBjSW9BcGljRW5hYmxlfDB4MHxVSU5UMzJ8MHg5MDAwMDANCj4gPiAxOQ0KPiA+DQo+ ID4NCj4gPg0KPiA+ICsgICMgVGhlIGJhdWQgcmF0ZSBzZXR0aW5nIGZvciB0aGUgVUFSVCBzdHls ZSBkZXZpY2UuIEEgdmFsdWUgb2YgMA0KPiA+DQo+ID4gKyAgIyBtZWFucyB0aGF0IHRoZSBkZXZp Y2UncyBkZWZhdWx0IGJhdWQgcmF0ZSB3aWxsIGJlIHVzZWQuDQo+ID4NCj4gPiArDQo+ID4NCj4g Z01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VyaWFsVGVybWluYWxCYXVkUmF0ZXwx MTUyMDB8VUlOVDYNCj4gPiA0fDB4OTAwMDAwMUENCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICMg VGhlIG51bWJlciBvZiBkYXRhIGJpdHMgZm9yIHRoZSBVQVJUIHN0eWxlIGRldmljZS4gQSB2YWx1 ZQ0KPiA+DQo+ID4gKyAgIyBvZiAwIG1lYW5zIHRoYXQgdGhlIGRldmljZSdzIGRlZmF1bHQgbnVt YmVyIG9mIGRhdGEgYml0cyB3aWxsIGJlDQo+IHVzZWQuDQo+ID4NCj4gPiArDQo+ID4NCj4gZ01p blBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VyaWFsVGVybWluYWxEYXRhQml0c3wweDh8 VUlOVDh8MHg5DQo+ID4gMDAwMDAxQg0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgIyBUaGUgcGFy aXR5IHNldHRpbmcgZm9yIHRoZSBVQVJUIHN0eWxlIGRldmljZS4NCj4gPg0KPiA+ICsgICMgUGFy aXR5IDB4MDAgLSBEZWZhdWx0IFBhcml0eS4NCj4gPg0KPiA+ICsgICMgUGFyaXR5IDB4MDEgLSBO byBQYXJpdHkuDQo+ID4NCj4gPiArICAjIFBhcml0eSAweDAyIC0gRXZlbiBQYXJpdHkuDQo+ID4N Cj4gPiArICAjIFBhcml0eSAweDAzIC0gT2RkIFBhcml0eS4NCj4gPg0KPiA+ICsgICMgUGFyaXR5 IDB4MDQgLSBNYXJrIFBhcml0eS4NCj4gPg0KPiA+ICsgICMgUGFyaXR5IDB4MDUgLSBTcGFjZSBQ YXJpdHkuDQo+ID4NCj4gPiArDQo+ID4NCj4gZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQu UGNkU2VyaWFsVGVybWluYWxQYXJpdHl8MHgxfFVJTlQ4fDB4OTAwDQo+ID4gMDAwMUMNCj4gPg0K PiA+ICsNCj4gPg0KPiA+ICsgICMgVGhlIG51bWJlciBvZiBzdG9wIGJpdHMgZm9yIHRoZSBVQVJU IHN0eWxlIGRldmljZS4NCj4gPg0KPiA+ICsgICMgU3RvcCBCaXRzIDB4MDAgLSBEZWZhdWx0IFN0 b3AgQml0cy4NCj4gPg0KPiA+ICsgICMgU3RvcCBCaXRzIDB4MDEgLSAxIFN0b3AgQml0Lg0KPiA+ DQo+ID4gKyAgIyBTdG9wIEJpdHMgMHgwMiAtIDEuNSBTdG9wIEJpdHMuDQo+ID4NCj4gPiArICAj IFN0b3AgQml0cyAweDAzIC0gMiBTdG9wIEJpdHMuDQo+ID4NCj4gPiArDQo+ID4NCj4gZ01pblBs YXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VyaWFsVGVybWluYWxTdG9wQml0c3wweDF8VUlO VDh8MHg5DQo+ID4gMDAwMDAxRA0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gIFtQY2RzRml4ZWRBdEJ1 aWxkLCBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGUsIFBjZHNEeW5hbWljLCBQY2RzRHluYW1pY0V4XQ0K PiA+DQo+ID4NCj4gPg0KPiA+ICAgICMjDQo+ID4NCj4gPiBAQCAtMzE4LDMgKzM0Miw0IEBADQo+ ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkVHBtMkVuYWJsZQ0KPiA+IHxG QUxTRXxCT09MRUFOfDB4RjAwMDAwQTUNCj4gPg0KPiA+DQo+ID4NCj4gZ01pblBsYXRmb3JtUGtn VG9rZW5TcGFjZUd1aWQuUGNkU21pSGFuZGxlclByb2ZpbGVFbmFibGV8RkFMU0V8Qk9PTEUNCj4g PiBBTnwweEYwMDAwMEE2DQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3Vp ZC5QY2RQZXJmb3JtYW5jZUVuYWJsZQ0KPiA+IHxGQUxTRXxCT09MRUFOfDB4RjAwMDAwQTcNCj4g Pg0KPiA+ICsgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRlcm1pbmFs RW5hYmxlDQo+ID4gfEZBTFNFfEJPT0xFQU58MHhGMDAwMDBCMA0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL1BsYXRmb3JtL0ludGVsL01pblBsYXRmb3JtUGtnL01pblBsYXRmb3JtUGtnLmRzYw0KPiA+ IGIvUGxhdGZvcm0vSW50ZWwvTWluUGxhdGZvcm1Qa2cvTWluUGxhdGZvcm1Qa2cuZHNjDQo+ID4g aW5kZXggMTEyZGRmZjdkOS4uZDBiNTU5MzgxNyAxMDA2NDQNCj4gPiAtLS0gYS9QbGF0Zm9ybS9J bnRlbC9NaW5QbGF0Zm9ybVBrZy9NaW5QbGF0Zm9ybVBrZy5kc2MNCj4gPiArKysgYi9QbGF0Zm9y bS9JbnRlbC9NaW5QbGF0Zm9ybVBrZy9NaW5QbGF0Zm9ybVBrZy5kc2MNCj4gPiBAQCAtMSw3ICsx LDcgQEANCj4gPiAgIyMgQGZpbGUNCj4gPg0KPiA+ICAjICBQbGF0Zm9ybSBkZXNjcmlwdGlvbi4N Cj4gPg0KPiA+ICAjDQo+ID4NCj4gPiAtIyBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDE5LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiA+IHJlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICsj IENvcHlyaWdodCAoYykgMjAxNyAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz DQo+ID4gK3Jlc2VydmVkLjxCUj4NCj4gPg0KPiA+ICAjDQo+ID4NCj4gPiAgIyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+DQo+ID4gICMNCj4gPg0KPiA+ IEBAIC00NCw2ICs0NCw3IEBADQo+ID4gICAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3Vp ZC5QY2RUcG0yRW5hYmxlfEZBTFNFDQo+ID4NCj4gPiAgICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2Vu U3BhY2VHdWlkLlBjZFBlcmZvcm1hbmNlRW5hYmxlfEZBTFNFDQo+ID4NCj4gPiAgICAgIGdNaW5Q bGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNtaUhhbmRsZXJQcm9maWxlRW5hYmxlfEZBTFNF DQo+ID4NCj4gPiArICAgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRl cm1pbmFsRW5hYmxlfEZBTFNFDQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KPiA+ICMj IyMjIyMjIyMjIyMjIyMjIw0KPiA+DQo+ID4gICMNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPg0K PiBhL1BsYXRmb3JtL0ludGVsL1NpbWljc09wZW5Cb2FyZFBrZy9Cb2FyZFg1OEljaDEwL09wZW5C b2FyZFBrZ1BjZC5kcw0KPiA+IGMNCj4gPg0KPiBiL1BsYXRmb3JtL0ludGVsL1NpbWljc09wZW5C b2FyZFBrZy9Cb2FyZFg1OEljaDEwL09wZW5Cb2FyZFBrZ1BjZC5kcw0KPiA+IGMNCj4gPiBpbmRl eCA1MmNkZjllYzBmLi4yNTFmNDZmODEyIDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvUGxhdGZv cm0vSW50ZWwvU2ltaWNzT3BlbkJvYXJkUGtnL0JvYXJkWDU4SWNoMTAvT3BlbkJvYXJkUGtnUGNk LmRzDQo+ID4gYw0KPiA+ICsrKw0KPiA+DQo+IGIvUGxhdGZvcm0vSW50ZWwvU2ltaWNzT3BlbkJv YXJkUGtnL0JvYXJkWDU4SWNoMTAvT3BlbkJvYXJkUGtnUGNkLmRzDQo+ID4gYw0KPiA+IEBAIC01 MCw2ICs1MCw3IEBADQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU3Rv cEFmdGVyTWVtSW5pdHxGQUxTRQ0KPiA+DQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFj ZUd1aWQuUGNkVHBtMkVuYWJsZXxGQUxTRQ0KPiA+DQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9r ZW5TcGFjZUd1aWQuUGNkVWVmaVNlY3VyZUJvb3RFbmFibGV8RkFMU0UNCj4gPg0KPiA+ICsgIGdN aW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRlcm1pbmFsRW5hYmxlfEZBTFNF DQo+ID4NCj4gPg0KPiA+DQo+ID4gICFpZiBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5Q Y2RCb290U3RhZ2UgPj0gMQ0KPiA+DQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1 aWQuUGNkU3RvcEFmdGVyRGVidWdJbml0fFRSVUUNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPg0K PiBhL1BsYXRmb3JtL0ludGVsL1doaXNrZXlsYWtlT3BlbkJvYXJkUGtnL1VwWHRyZW1lL09wZW5C b2FyZFBrZ1BjZC5kDQo+ID4gc2MNCj4gPg0KPiBiL1BsYXRmb3JtL0ludGVsL1doaXNrZXlsYWtl T3BlbkJvYXJkUGtnL1VwWHRyZW1lL09wZW5Cb2FyZFBrZ1BjZC5kDQo+ID4gc2MNCj4gPiBpbmRl eCBkNzk3YWU5ZDk0Li5lMTYxYmYwNmY0IDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvUGxhdGZv cm0vSW50ZWwvV2hpc2tleWxha2VPcGVuQm9hcmRQa2cvVXBYdHJlbWUvT3BlbkJvYXJkUGtnUGNk LmQNCj4gPiBzYw0KPiA+ICsrKw0KPiA+DQo+IGIvUGxhdGZvcm0vSW50ZWwvV2hpc2tleWxha2VP cGVuQm9hcmRQa2cvVXBYdHJlbWUvT3BlbkJvYXJkUGtnUGNkLmQNCj4gPiBzYw0KPiA+IEBAIC0x MjcsNiArMTI3LDcgQEANCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5QY2RQ ZXJmb3JtYW5jZUVuYWJsZXxGQUxTRQ0KPiA+DQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5T cGFjZUd1aWQuUGNkVHBtMkVuYWJsZXxGQUxTRQ0KPiA+DQo+ID4gICAgZ01pblBsYXRmb3JtUGtn VG9rZW5TcGFjZUd1aWQuUGNkVWVmaVNlY3VyZUJvb3RFbmFibGV8RkFMU0UNCj4gPg0KPiA+ICsg IGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNlcmlhbFRlcm1pbmFsRW5hYmxlfFRS VUUNCj4gPg0KPiA+DQo+ID4NCj4gPiAgIWlmIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VHdWlk LlBjZEJvb3RTdGFnZSA+PSAxDQo+ID4NCj4gPiAgICBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNl R3VpZC5QY2RTdG9wQWZ0ZXJEZWJ1Z0luaXR8VFJVRQ0KPiA+DQo+ID4gZGlmZiAtLWdpdA0KPiA+ DQo+IGEvUGxhdGZvcm0vSW50ZWwvV2hpc2tleWxha2VPcGVuQm9hcmRQa2cvV2hpc2tleWxha2VV UnZwL09wZW5Cb2FyZFANCj4gPiBrZ1BjZC5kc2MNCj4gPg0KPiBiL1BsYXRmb3JtL0ludGVsL1do aXNrZXlsYWtlT3BlbkJvYXJkUGtnL1doaXNrZXlsYWtlVVJ2cC9PcGVuQm9hcmRQDQo+ID4ga2dQ Y2QuZHNjDQo+ID4gaW5kZXggNWQ3NjllODE1My4uODNhZGEzYzk1YyAxMDA2NDQNCj4gPiAtLS0N Cj4gPg0KPiBhL1BsYXRmb3JtL0ludGVsL1doaXNrZXlsYWtlT3BlbkJvYXJkUGtnL1doaXNrZXls YWtlVVJ2cC9PcGVuQm9hcmRQDQo+ID4ga2dQY2QuZHNjDQo+ID4gKysrDQo+ID4NCj4gYi9QbGF0 Zm9ybS9JbnRlbC9XaGlza2V5bGFrZU9wZW5Cb2FyZFBrZy9XaGlza2V5bGFrZVVSdnAvT3BlbkJv YXJkUA0KPiA+IGtnUGNkLmRzYw0KPiA+IEBAIC0xMjcsNiArMTI3LDcgQEANCj4gPiAgICBnTWlu UGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5QY2RQZXJmb3JtYW5jZUVuYWJsZXxGQUxTRQ0KPiA+ DQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkVHBtMkVuYWJsZXxGQUxT RQ0KPiA+DQo+ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWVmaVNlY3Vy ZUJvb3RFbmFibGV8RkFMU0UNCj4gPg0KPiA+ICsgIGdNaW5QbGF0Zm9ybVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFNlcmlhbFRlcm1pbmFsRW5hYmxlfEZBTFNFDQo+ID4NCj4gPg0KPiA+DQo+ID4gICFp ZiBnTWluUGxhdGZvcm1Qa2dUb2tlblNwYWNlR3VpZC5QY2RCb290U3RhZ2UgPj0gMQ0KPiA+DQo+ ID4gICAgZ01pblBsYXRmb3JtUGtnVG9rZW5TcGFjZUd1aWQuUGNkU3RvcEFmdGVyRGVidWdJbml0 fFRSVUUNCj4gPg0KPiA+IC0tDQo+ID4gMi4yNC4wLndpbmRvd3MuMg0KPiA+DQo+ID4NCj4gPg0K PiA+IC09LT0tPS09LT0tPQ0KPiA+IEdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1l c3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4NCj4gPiBWaWV3L1JlcGx5IE9ubGluZSAoIzY2OTcz KToNCj4gPiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS82Njk3Mw0KPiA+ IE11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvNzgwMjQ3OTQvNDkwNTk1Mw0K PiA+IEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPiA+IFVuc3Vic2Ny aWJlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWINCj4gPiBbZ2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuXQ0KPiA+IC09LT0tPS09LT0tPQ0KPiA+DQo+IA0KPiANCj4gDQo+IA0K PiANCj4gDQo+IA0KDQo=