From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web09.1440.1610586157683775699 for ; Wed, 13 Jan 2021 17:02:38 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=cpUavaw7; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: hao.a.wu@intel.com) IronPort-SDR: q9d+B68NFtOJNjIX5FnNnTWZXnhprOps+6GXI4/0eY4szL2T5tIOiKBPMMfc555DDfoBYOzmQR RkPqjxTFcSwA== X-IronPort-AV: E=McAfee;i="6000,8403,9863"; a="158065902" X-IronPort-AV: E=Sophos;i="5.79,345,1602572400"; d="scan'208";a="158065902" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2021 17:02:35 -0800 IronPort-SDR: igtqm5xiYavXpZ8RzBxbgIpbwjW0II57Img0+h0Bzn2UMrl75uR6rfU9YWoD301UaGqRK4Canx ojTRw+wJtDdQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,345,1602572400"; d="scan'208";a="364064174" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga002.jf.intel.com with ESMTP; 13 Jan 2021 17:02:34 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 13 Jan 2021 17:02:34 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx607.amr.corp.intel.com (10.22.229.20) 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, 13 Jan 2021 17:02:34 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.56) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 13 Jan 2021 17:01:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YruWlDQE9ZHy12tNeMX0cAWCU1BjMgfLTG0olbuZ7JalP5GnD8F1KGGzjosYkcaEHrfVj82mVGdXrtdPzCzxc883Afy7YF3PDACrt/BJHfWOQVn1UsprLnw3LYH2VxBy1WzzXCwZ6GJ93unSh8YBS38v1bdPfHwe/IW1lpNClhZvdiNbadjfuPqfkWmP3jN7L5HoJAfUTH23NAFt5ENJdNxgcaPV6uSJoDfXIc59WJ+RbR/r41QLuRh/VAeJ6tTFwj0sfkLjyzAr/7khGPbneY68AR4bCyhrBbRV+WC8oHRV1vVxJtRmAjBuIvH0I+fQeO+IkscY2YmXCvQ/5LG9kg== 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=ZfCn6wjjdrQTbKSqLyN6x5X7gxwuofBxa3FIf5G5H8M=; b=EZh4+1bSoAbIzqwoj9idK1QGQr5cd8g3P1SP49393IWdN6bzZDbf6aIVFdG0ypOxDsG52iQLZ+Vh3CSLVJ8kO0O/gxf43+fOLtZsR8MoZuQvGdJnruOwkdhwIChL6bKKX+4lyJffdcpGav4mXcI1sCnm3sjX03X0veMihiCEgHEgSQMm1aRcv7joApJgLbk3Ovdc6w2XdmpYasIFe+2ckZocOTMU14U3iceXfRf2B+MMTdWtsbnFF0y/oyT3YG24v8/7IXYAS+7hKvvtMcC78X3D+vzEwubjxgjTsLO/Bk6p2YNEYVpWpWszoScYoHA34pIqIn5MYJcCer/8Cf0vsA== 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=ZfCn6wjjdrQTbKSqLyN6x5X7gxwuofBxa3FIf5G5H8M=; b=cpUavaw7yTSByC6A3gQvGV4leCZ9jWwVo0usZoy1AEfCZbIWU/W7jAMd+xl+n1dOCIXZHfHFFErNRltz26ymeVLnaiO3EJXuE6ULt40jIKzPQsi2+yAPCD/2qczVQ8lI3bgWzqbUwQHEq+/nM23fYmCAfGo2gZ9LCfjyAA37Re0= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR11MB3908.namprd11.prod.outlook.com (2603:10b6:405:7d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.9; Thu, 14 Jan 2021 01:01:49 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::d11e:3b2:e34f:7f0f]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::d11e:3b2:e34f:7f0f%5]) with mapi id 15.20.3763.011; Thu, 14 Jan 2021 01:01:49 +0000 From: "Wu, Hao A" To: "Luo, Heng" , "devel@edk2.groups.io" , "lersek@redhat.com" , "Ni, Ray" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [Patch V3 2/2] MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability Thread-Topic: [edk2-devel] [Patch V3 2/2] MdeModulePkg/Bus/Pci/PciBusDxe: Support PCIe Resizable BAR Capability Thread-Index: AQHW4mc//McFRNhEhkScVihm5VCAFKoi3byAgABymwCAAcxw0IAAAv8AgAACX4CAADB1gIABBYiAgAAEoEA= Date: Thu, 14 Jan 2021 01:01:49 +0000 Message-ID: References: <20210104065954.3901-1-heng.luo@intel.com> <20210104065954.3901-2-heng.luo@intel.com> <9a081622-94c8-d921-1631-b595f189c807@redhat.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 86355473-f1ea-440b-d275-08d8b827f940 x-ms-traffictypediagnostic: BN6PR11MB3908: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LXL/PxhlNWQEMGldqs+7FEvec8FU+z35QErzuX+9eoGwoIwsHAtIb0Roa0G05zuzBgDd1KYgxC3r0lOeAiEormmADJ651Xq/C+itvYxoFdR6jBqGapCgwDFm6ekLHyFuy4JM/CdEj7XGTSs8EFdZ8e8xJLMeIK3YtjUwslhJCGWK5jNEK8jDFzmrWiz6G8bZ5BZVBXsuELQwM9H/1Htgd45BDmf4lM3tuw5VWE0movDErUcRusARpmxADmX8rXFNHdacoMkE0JeYJvwex4DPN4jyTGSuRvKTh4ipsNtJQ544ryT+hA+e1UTMMpH7fpKMrbt7UUJmHTaauXm3fV7hEkiZbEp05DPArPxTA7ZnwJnm2pCiQa4CrWEdr9xqgJ3Uw6EO4gYFDtf7nRNM52/w8UdMYcepplggBxiYcZX3RSLesBhFgjaxTPtxfqraqt7taChc5LbsmZTlGFtUYg5aLw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(346002)(366004)(396003)(136003)(39860400002)(6506007)(107886003)(76116006)(53546011)(110136005)(52536014)(8676002)(33656002)(7696005)(26005)(966005)(316002)(66446008)(66476007)(71200400001)(55016002)(186003)(4326008)(9686003)(66946007)(478600001)(83380400001)(86362001)(6636002)(64756008)(8936002)(2906002)(5660300002)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?NENHd3czNG91UE1hT2RjbzRuWC9Wc3NocEdJNmRlVE5SYW03MDAwRWxLRWhZ?= =?utf-8?B?NXB3K3JYUmFzREZRVHN1eEN3VU9lQjFVcG1hOFJVT1hkamxsVy8ycjZkRnhE?= =?utf-8?B?R1oxcGhMZTN0V2FsUmVwOVlxazkweS91aWJZcEtNdjRvcDBnZDFYUklpRXZn?= =?utf-8?B?Z2x1UEtFUFYwVVJYZDd6SStBZXM2QXZ3N0llMDFvdVV4dGdiN1ZCNDNxZ2t6?= =?utf-8?B?R201WG5NZkdGT0ZrcmlxR1RrdkFBOFg3bGtrTzR4ck5PZFhNZ3JkNDI5VWxH?= =?utf-8?B?VDcrSmFNUGxyWUxxNWc2TlZJOXdTeDhOSmVRSU43UUwzUjJrcjIxbmQ3OXJw?= =?utf-8?B?MEhVcEJFWkpyZFcybWRtNWJaUm9wOWdYeG1vODVJWm8yK21WZ3pxTDFEUVkz?= =?utf-8?B?dG9XWXQwUXdTUHdEbHlmNnUxNFlNMWlZL3Fscm1zam01eWc3dmtpNEpSbitx?= =?utf-8?B?RVpoNFk5SzN5bTRmaFdleWFINjJOTlpFT3NUZlFRNGg3MHZpSnlLNkZsU1U1?= =?utf-8?B?QjhRNTFlZkpBOS8wb1R6Y09QbUtlai9xS1MwR3BodmFvQmZpSWZXZUZSMmEv?= =?utf-8?B?NGVURlMzQ1kzaEFCRVlCWnV2cU9GZUptcXhMUHhSV1R1MWszVnpuOTNMQlho?= =?utf-8?B?REdoaGZGV3lnYW5iamVMdzlFbFBtQlNXbnQzdU5Od3RsbERXbnpiS29BTHRu?= =?utf-8?B?QVA5VUc5bWRkc3FWeHlRTzlsWnIxWXZDZWJtREtjUk9XSFVjdFQwWkxRYStK?= =?utf-8?B?THJYMHhCNDhTcGxSaUIzTnB3aG43ZGdYT2lEYWdaZXdXU0lmTUJPZ0pCMzBu?= =?utf-8?B?WldCU1h1ZHhWZHFBVXNiTUNRYXM0QVJwVGNEZWthQWZxem5uRkhZU2Q2R0V6?= =?utf-8?B?UE1QUDEwNFhzaWZUcUhqWjFZSzF6Qm0yVy9XZW81VHplZXZYMU82cVZCRzEx?= =?utf-8?B?b2NDWWZtNXoyRDlXeFM5SERwdkw4R1NFWFB1ZjVWeXdSTDNJbktFc042RWtF?= =?utf-8?B?OXlsRWwrSTRQNUxNcGlDOHczMDZmTFQ2T2ZzbENxZTlXVi9KNnc4ZFh5MkNq?= =?utf-8?B?QzNwbGFSY25PaWNIMjZZK2JFb2VHQksxbWVDcG9wTUNGVnlBQ0Izb3VnNmdT?= =?utf-8?B?eUh4MVJXRmFJdmZ6RkFuMHZNWUh2ZnU0NnhWUUdmMEVzUG91MFBTcEpIYjJV?= =?utf-8?B?Z1hYclp1ZjlhSDdNOEJzRGhHdFp6ZU1TVksyeWNYQmd2bWdtN3ZhTFJBSUJX?= =?utf-8?B?empaSW4wQWQ0UHdHYjQ2bW0wak00ZitUNTd6bGwzL0RhN05vbHUrNFhyQ0hE?= =?utf-8?Q?jUz2in2kR8Ik4=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86355473-f1ea-440b-d275-08d8b827f940 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2021 01:01:49.6206 (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: /J0VYWOdgiyLIITT8k8TUKEOVXHL0s+San58rfz0ZcXcB+OXopD1lXHG5KZ7OXAr/28/qxyrLnrSKUOPPGPbAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3908 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VyZSwgSSB3aWxsIGNyZWF0ZSBQUiB0byBtZXJnZSB0aGUgc2VyaWVzLg0KDQpCZXN0IFJlZ2Fy ZHMsDQpIYW8gV3UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMdW8s IEhlbmcgPGhlbmcubHVvQGludGVsLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMTQs IDIwMjEgODo0NSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxlcnNla0ByZWRoYXQu Y29tOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsNCj4gV3UsIEhhbyBBIDxoYW8uYS53dUBp bnRlbC5jb20+DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYzIDIvMl0gTWRlTW9k dWxlUGtnL0J1cy9QY2kvUGNpQnVzRHhlOg0KPiBTdXBwb3J0IFBDSWUgUmVzaXphYmxlIEJBUiBD YXBhYmlsaXR5DQo+IA0KPiBIaSBMYXN6bG8sDQo+IFNvcnJ5IGZvciB0aGUgZGVsYXkuIEkgaGF2 ZSBnb3R0ZW4gdGhlIGZlZWRiYWNrLCB3ZSBjYW4gbWVyZ2VkIHRoZW0gbm93Lg0KPiANCj4gSGkg SGFvLA0KPiBDb3VsZCB5b3UgaGVscCB0byBtZXJnZSB0aGUgcGF0Y2hlcy4NCj4gDQo+IFRoYW5r cywNCj4gSGVuZw0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m IExhc3psbw0KPiA+IEVyc2VrDQo+ID4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDEzLCAyMDIx IDU6MDkgUE0NCj4gPiBUbzogTHVvLCBIZW5nIDxoZW5nLmx1b0BpbnRlbC5jb20+OyBOaSwgUmF5 IDxyYXkubmlAaW50ZWwuY29tPjsgV3UsDQo+ID4gSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQYXRj aCBWMyAyLzJdDQo+IE1kZU1vZHVsZVBrZy9CdXMvUGNpL1BjaUJ1c0R4ZToNCj4gPiBTdXBwb3J0 IFBDSWUgUmVzaXphYmxlIEJBUiBDYXBhYmlsaXR5DQo+ID4NCj4gPiBPbiAwMS8xMy8yMSAwNzox NSwgTHVvLCBIZW5nIHdyb3RlOg0KPiA+ID4gSGkgSGFvLA0KPiA+ID4gUGxlYXNlIGhvbGQgb24g bWVyZ2luZyBwYXRjaCBub3csIHdlIGFyZSBzdGlsbCB3YWl0aW5nIGZvciBzb21lDQo+ID4gPiBp bnB1dHMsIEkNCj4gPiB3aWxsIGxldCB5b3Uga25vdyB3aGVuIHdlIHJlYWNoIGFncmVlbWVudC4N Cj4gPg0KPiA+IEkgZGlzYWdyZWUgd2l0aCB3YWl0aW5nLiBUaGUgb3JpZ2luYWwgcGF0Y2ggY2F1 c2VkIGEgcmVncmVzc2lvbi4gVGhlDQo+ID4gY3VycmVudGx5IHBlbmRpbmcgcGF0Y2ggZml4ZXMg dGhlIHJlZ3Jlc3Npb24uIEFueSBmdXJ0aGVyIGlucHV0DQo+ID4gKCJhZ3JlZW1lbnQiKSBzaG91 bGQgYmUgcHJvY2Vzc2VkICphZnRlciogd2UgaGF2ZSBtaXRpZ2F0ZWQgdGhlDQo+IHJlZ3Jlc3Np b24uDQo+ID4NCj4gPiBUaGUgdHJlZSBpcyBjdXJyZW50bHkgaW4gYSB3cm9uZyBzdGF0ZS4gVGhl IGZpeCBoYXMgYmVlbiByZXZpZXdlZC4NCj4gPiBIYW8sIHBsZWFzZSBwcm9jZWVkIHdpdGggbWVy Z2luZyB0aGUgZml4IGFzIHNvb24gYXMgeW91IGNhbi4NCj4gPg0KPiA+IFRoYW5rcw0KPiA+IExh c3psbw0KPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gSGVuZw0KPiA+ID4NCj4gPiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20+DQo+ID4gPj4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDEzLCAyMDIxIDI6 MDcgUE0NCj4gPiA+PiBUbzogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBMYXN6bG8g RXJzZWsNCj4gPiA+PiA8bGVyc2VrQHJlZGhhdC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsg THVvLCBIZW5nDQo+ID4gPj4gPGhlbmcubHVvQGludGVsLmNvbT4NCj4gPiA+PiBDYzogS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4+IFN1YmplY3Q6 IFJFOiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYzIDIvMl0NCj4gPiBNZGVNb2R1bGVQa2cvQnVzL1Bj aS9QY2lCdXNEeGU6DQo+ID4gPj4gU3VwcG9ydCBQQ0llIFJlc2l6YWJsZSBCQVIgQ2FwYWJpbGl0 eQ0KPiA+ID4+DQo+ID4gPj4gSSd2ZSBnaXZlbiBSLWIgdG8gdGhlIHR3byBwYXRjaGVzLiBObyBj b21tZW50cyBmcm9tIG15IHNpZGUuDQo+ID4gPj4NCj4gPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+Pj4gRnJvbTogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ ID4gPj4+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAxMywgMjAyMSAyOjAwIFBNDQo+ID4gPj4+ IFRvOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVk aGF0LmNvbT47DQo+ID4gPj4+IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMdW8sIEhlbmcgPGhlbmcu bHVvQGludGVsLmNvbT4NCj4gPiA+Pj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiA+Pj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUGF0 Y2ggVjMgMi8yXQ0KPiA+IE1kZU1vZHVsZVBrZy9CdXMvUGNpL1BjaUJ1c0R4ZToNCj4gPiA+Pj4g U3VwcG9ydCBQQ0llIFJlc2l6YWJsZSBCQVIgQ2FwYWJpbGl0eQ0KPiA+ID4+Pg0KPiA+ID4+Pj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+IEZyb206IE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20+DQo+ID4gPj4+PiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDEyLCAyMDIxIDEw OjI4IEFNDQo+ID4gPj4+PiBUbzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBMdW8sDQo+ID4gPj4+PiBIZW5nIDxoZW5nLmx1b0BpbnRlbC5j b20+DQo+ID4gPj4+PiBDYzogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBLaW5uZXks IE1pY2hhZWwgRA0KPiA+ID4+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4+ Pj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUGF0Y2ggVjMgMi8yXQ0KPiA+ID4+IE1kZU1v ZHVsZVBrZy9CdXMvUGNpL1BjaUJ1c0R4ZToNCj4gPiA+Pj4+IFN1cHBvcnQgUENJZSBSZXNpemFi bGUgQkFSIENhcGFiaWxpdHkNCj4gPiA+Pj4+DQo+ID4gPj4+Pj4+IEl0IHNlZW1zIGxpa2UgdGhl IG1heCBCQVIgc2l6ZSBpcyBzZWxlY3RlZCBmaXJzdCwgYnV0IGlmDQo+ID4gPj4+Pj4+IHRoZXJl J3MgYSAicmVzb3VyY2UgY29uZmxpY3QiIChydW5uaW5nIG91dCBvZiBhIHBhcnRpY3VsYXINCj4g PiA+Pj4+Pj4gcmVzb3VyY2UgdHlwZSBhcGVydHVyZSksIHRoZW4gdGhlIG1pbmltdW0gQkFSIHNp emUgaXMgc2VsZWN0ZWQuDQo+ID4gPj4+Pj4+IEkgZG9uJ3Qga25vdyB3aGF0IHNldCBvZiBkZXZp Y2VzIGFuZC9vciByZXNpemFibGUgQkFScyB0aGlzDQo+ID4gPj4+Pj4+IGxvZ2ljIGFwcGxpZXMg dG8sIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBvZiB0aGVtLg0KPiA+ID4+Pj4NCj4gPiA+Pj4+Pj4g UGVyIHRoZSBQQ0llIHNwZWNpZmljYXRpb24gKHJldmlzaW9uIDUuMCwgdmVyc2lvbiAwLjkpIDcu OC42Og0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiAgIFNvZnR3YXJlIGRldGVybWluZXMsIHRocm91 Z2ggYSBwcm9wcmlldGFyeSBtZWNoYW5pc20sIHdoYXQNCj4gdGhlDQo+ID4gPj4+Pj4+ICAgb3B0 aW1hbCBzaXplIGlzIGZvciB0aGUgcmVzb3VyY2UsIGFuZCBwcm9ncmFtcyB0aGF0IHNpemUgdmlh IHRoZQ0KPiBCQVINCj4gPiA+Pj4+Pj4gICBTaXplIGZpZWxkIG9mIHRoZSBSZXNpemFibGUgQkFS IENvbnRyb2wgcmVnaXN0ZXIuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEZ1cnRoZXJtb3JlLCBU YWJsZSA3LTExNCBkZWZpbmVzIHRoZSBCYXIgU2l6ZSBmaWVsZCBvZiB0aGUNCj4gPiA+Pj4+Pj4g Y29udHJvbCByZWdpc3RlciBzdGF0aW5nOg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiAgIFRoZSBk ZWZhdWx0IHZhbHVlIG9mIHRoaXMgZmllbGQgaXMgZXF1YWwgdG8gdGhlIGRlZmF1bHQgc2l6ZSBv ZiB0aGUNCj4gPiA+Pj4+Pj4gICBhZGRyZXNzIHNwYWNlIHRoYXQgdGhlIEJBUiByZXNvdXJjZSBp cyByZXF1ZXN0aW5nIHZpYSB0aGUgQkFSJ3MNCj4gPiA+Pj4+Pj4gICByZWFkLW9ubHkgYml0cy4N Cj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gVGhlcmVmb3JlIHRoZSBtYXhpbXVtIHNpemUgaXMgbm90 IG5lY2Vzc2FyaWx5IG9wdGltYWwsIG5vcg0KPiA+ID4+Pj4+PiBzaG91bGQgdGhlIG1pbmltdW0g c2l6ZSBiZSBjb25zaWRlcmVkIHRoZSBkZWZhdWx0LiAgSW4gZmFjdCwNCj4gPiA+Pj4+Pj4gW3dl XSB0ZXN0ZWQgdmFyaW91cyBoYW5kb2ZmIEJBUiBzaXplcyBmb3IgW2EgcGFydGljdWxhcl0gR1BV DQo+ID4gPj4+Pj4+IGFuZCBmb3VuZCB0aGF0IFdpbmRvd3MgZGlkbid0IGxpa2UgdGhlIG1heGlt dW0gQkFSIHNpemUuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEVsc2V3aGVyZSBpbiB0aGUgZGlz Y3Vzc2lvbiBbMV0gdGhlIEFNRCBhdXRob3Igb2YgdGhlIGtlcm5lbA0KPiA+ID4+Pj4+PiBzdXBw b3J0IGZvciByZXNpemVhYmxlIEJBUnMgaW5kaWNhdGVzIHRoYXQgRlBHQSBkZXZpY2VzIG1pZ2h0 DQo+ID4gPj4+Pj4+IGltcGxlbWVudCB0aGUgUkVCQVIgY2FwYWJpbGl0eSBhcyBwYXJ0IG9mIHRo ZWlyIHN0YW5kYXJkIFBDSQ0KPiA+ID4+Pj4+PiB3cmFwcGVyIChbb3VyXSBpbnRlcnByZXRhdGlv biksIGJ1dCB0aGUgQkFSIHVzYWdlIHdvdWxkIGJlDQo+ID4gPj4+Pj4+IGRldGVybWluZWQgYnkg dGhlIGFjdHVhbCBiaXRzdHJlYW0gd3JpdHRlbiB0byB0aGUgZGV2aWNlLA0KPiA+ID4+Pj4+PiB0 aGVyZWZvcmUgdGhlcmUgbWlnaHQgYmUgYSBmdWxsIGJpdG1hc2sgZm9yIHRoZSBCQVIgc2l6ZXMN Cj4gPiA+Pj4+Pj4gc3VwcG9ydGVkDQo+ID4gPj4gYnkgdGhlIGRldmljZS4NCj4gPiA+Pj4+Pj4N Cj4gPiA+Pj4+Pj4gWzFdDQo+ID4gPj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L2FyY2hpdmVzL2RyaS1kZXZlbC8yMDIxLUphbnVhcnkvdA0KPiA+ID4+Pj4+PiBoDQo+ID4gPj4+ Pj4+IHJlYWQNCj4gPiA+Pj4+Pj4gLmh0bWwNCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gSXQgd291 bGQgY2VydGFpbmx5IG1ha2Ugc2Vuc2UgZm9yIHRoZSBmaXJtd2FyZSB0byB0YWtlIFJFQkFSDQo+ ID4gPj4+Pj4+IGNhcGFiaWxpdGllcyBpbnRvIGFjY291bnQgd2hlbiBzaXppbmcgYnJpZGdlIGFw ZXJ0dXJlcywgYnV0IHRvDQo+ID4gPj4+Pj4+IGdlbmVyaWNhbGx5IGVuYWJsZSBleHRlbmRlZCBC QVIgc2l6ZXMgd291bGQgbWFrZSBsb3RzIG9mDQo+ID4gPj4+Pj4+IGFzc3VtcHRpb25zIGFib3V0 IHRoZSBkZXZpY2UgdXNhZ2UgYW5kIGNvbXBhdGliaWxpdHkuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+ Pj4+IFsuLi5dIEF0IGxlYXN0IGZvciBHUFVzIHRoZSBleHBlY3RhdGlvbiB3b3VsZCBiZSBhIGRl ZmF1bHQsDQo+ID4gPj4+Pj4+IHNtYWxsZXIgY29tcGF0aWJpbGl0eSBzaXplIGV4cGFuZGluZyB0 byBzb21lIHJlcHJlc2VudGF0aW9uDQo+ID4gPj4+Pj4+IHRoYXQgYWxsb3dzIGRpcmVjdCBETUEg dG8gdGhlIGVudGlyZSBtZW1vcnkgb2YgdGhlIGNhcmQuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBT byB0aGlzIHBhdGNoIHNob3VsZCBlaXRoZXIgYmUgcmV2ZXJ0ZWQ7IG9yIG1pbmltYWxseSwgdGhl DQo+ID4gPj4+Pj4gZGVmYXVsdCB2YWx1ZSBvZiAiUGNkUGNpZVJlc2l6YWJsZUJhclN1cHBvcnQi IHNob3VsZCBiZSBzZXQgdG8NCj4gPiA+Pj4+PiBGQUxTRSwgYXMgdGhlIHBvbGljeSBmb3IgQkFS IHNpemluZyBkb2Vzbid0IGxvb2sgcm9idXN0IG9yIHBvcnRhYmxlLg0KPiA+ID4+Pj4+DQo+ID4g Pj4+Pj4NCj4gPiA+Pj4+PiBHZW5lcmFsIHJlcXVlc3QgZm9yIHRoZSBmdXR1cmU6IGlmIHlvdSBp bXBsZW1lbnQgc29tZSBraW5kIG9mDQo+ID4gPj4+Pj4gcG9saWN5IGluIGNvcmUgZWRrMiwgcGxl YXNlIGF0IGxlYXN0ICpkb2N1bWVudCogdGhlIHBvbGljeQ0KPiA+ID4+Pj4+IHNvbWV3aGVyZS4g SXQncyB1bmFjY2VwdGFibGUgdG8gaGF2ZSB0byBkZWNpcGhlciB0aGUgc291cmNlIGNvZGUNCj4g PiA+Pj4+PiBmb3Igc3VjaCBhIHBvc3NpYmx5IGltcGFjdGZ1bCBjaGFuZ2UgaW4gdGhlIGNvcmUu IFRoZXJlIGlzIG5vDQo+ID4gPj4+Pj4gbmVlZCBmb3IgYSB3aWtpIHBhZ2Ugb3IgYW4gUkZDLCBi dXQgYSBzYW5lIGJ1Z3ppbGxhIHRpY2tldCBhbmQgYQ0KPiA+ID4+Pj4+IHNhbmUgY29tbWl0DQo+ ID4gPj4gbWVzc2FnZSBhcmUgcmVxdWlyZWQuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAoVGhlIGRv Y3VtZW50YXRpb24gb2YgdGhlIFBDRCBpbiB0aGUgIk1kZU1vZHVsZVBrZy5kZWMiIGZpbGUgaXMN Cj4gPiA+Pj4+PiB1bnNhdGlzZmFjdG9yeSB0b28sIGFuZCB0aGUgVU5JIGZpbGUgaGFzIG5vdCBi ZWVuIHVwZGF0ZWQgYXQNCj4gPiA+Pj4+PiBhbGwuKQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ ID4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBZb3VyIHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdC4g T3JpZ2luYWwgaWRlYSBpcyB0byBsZXQgcGxhdGZvcm0NCj4gPiA+Pj4+IHN1cHBseSB0aGUNCj4g PiA+Pj4gcG9saWN5DQo+ID4gPj4+PiBhYm91dCB3aGF0IHRoZSBvcHRpbWFsIEJBUiBzaXplIGlz IGZvciBlYWNoIHJlc2l6YWJsZSBCQVIuDQo+ID4gPj4+PiBUaGUgY3VycmVudCBpbXBsZW1lbnRh dGlvbiBpcyBhIHRyeSB0byBhdm9pZCBhc2tpbmcgcGxhdGZvcm0gY29kZQ0KPiA+ID4+Pj4gZm9y IHN1Y2ggcG9saWN5IGJlY2F1c2Ugd2UgdGhvdWdodCBpdCdzIGEgYnVyZGVuIGZvciBwbGF0Zm9y bSB0bw0KPiA+ID4+Pj4gc3VwcGx5DQo+ID4gPj4gdGhlIHBvbGljeSBkYXRhLg0KPiA+ID4+Pj4N Cj4gPiA+Pj4+IEkgYWdyZWUgdGhhdCB3ZSBzZXQgdGhlIFBDRCBkZWZhdWx0IHZhbHVlIGFzIGRp c2FibGVkIGFuZCBhZnRlciBhDQo+ID4gPj4+PiBwZXJpb2Qgb2Ygc3R1ZHksIHdlIHdpbGwgdW5k ZXJzdGFuZCB3aGV0aGVyIGEgcGxhdGZvcm0gcG9saWN5IGlzDQo+ID4gPj4+PiByZWFsbHkNCj4g PiA+PiBuZWVkZWQuDQo+ID4gPj4+DQo+ID4gPj4+DQo+ID4gPj4+IEhlbGxvIExhc3psbyBhbmQg UmF5LA0KPiA+ID4+Pg0KPiA+ID4+PiBJIHNhdyBIZW5nJ3MgcGF0Y2ggc2VyaWVzIHRvDQo+ID4g Pj4+ICAgMSkgU2V0IHRoZSBQQ0QgZGVmYXVsdCB2YWx1ZSB0byBGQUxTRToNCj4gPiA+Pj4gaHR0 cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNzAxMzkNCj4gPiA+Pj4gICAyKSBV cGRhdGUgdGhlIFVOSSBmaWxlOg0KPiA+ID4+PiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2 ZWwvbWVzc2FnZS83MDE0MA0KPiA+ID4+PiBoYXMgZ290IFJldmlld2VkLWJ5L0Fja2VkLWJ5IHRh Z3MgZnJvbSByZXZpZXdlcnMuDQo+ID4gPj4+DQo+ID4gPj4+IERvIHlvdSBoYXZlIGZ1cnRoZXIg Y29tbWVudHMgZm9yIHRoZSBzZXJpZXM/DQo+ID4gPj4+IElmIG5vdCwgSSB3aWxsIG1lcmdlIHRo aXMgY2hhbmdlIGluIHRoZSBuZXh0IDI0IGhvdXJzLg0KPiA+ID4+Pg0KPiA+ID4+PiBUaGFua3Mg aW4gYWR2YW5jZS4NCj4gPiA+Pj4NCj4gPiA+Pj4gQmVzdCBSZWdhcmRzLA0KPiA+ID4+PiBIYW8g V3UNCj4gPiA+Pj4NCj4gPiA+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+PiBUaGFua3MsDQo+ID4gPj4+ PiBSYXkNCj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KDQo=