From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on060e.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe48::60e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 41D4A81AD1 for ; Mon, 9 Jan 2017 06:30:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ES9TLJ08IyzVtQi0iG3j+Jr1spBmd8GGLRU7pioOzvM=; b=kLtkn8FYi8oUeWAVmrhumKaH6X0KhcENM66lHZ1XbBnvhJoIROmryy6O/NKehOMbv/PuL9hFjEwG/8VzMzM5PItEXl2bwL+pbDkLBb+Uiwk6y/C3bUT3gRMQU/XfZsSBOJn4S6AJ7DSZ+oqHHpfDIsQuQBnFyi15TRcrXBYoSMw= Received: from DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) by SN1PR12MB0670.namprd12.prod.outlook.com (10.163.208.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.817.10; Mon, 9 Jan 2017 14:30:52 +0000 Received: from DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) by DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) with mapi id 15.01.0829.013; Mon, 9 Jan 2017 14:30:51 +0000 From: "Duran, Leo" To: "'Gao, Liming'" , "'Justen, Jordan L'" , 'Laszlo Ersek' , "'edk2-devel@lists.01.org'" CC: "Singh, Brijesh" , "'Fan, Jeff'" , "'Kinney, Michael D'" , "'Ma, Maurice'" , "'Agyeman, Prince'" , "'Ni, Ruiyu'" , "'Steele, Kelly'" , "'Wei, David'" , "'Guo, Mang'" Thread-Topic: [PATCH v3 0/4] BaseIoFifoLib Thread-Index: AQHSZ52cOmPc+CcC30G0SQfvf+/kGaEq9c2AgABWXgCAAEV48IAAnvoAgAERYuCAAjq6gIAAuKcQgAAEgyA= Date: Mon, 9 Jan 2017 14:30:51 +0000 Message-ID: References: <1483652965-14357-1-git-send-email-leo.duran@amd.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CA2BD@shsmsx102.ccr.corp.intel.com> <9bf84287-cdec-b5c0-26c6-16f5cd1e453f@redhat.com> <148375017874.13659.3185969071926290103@jljusten-ivb> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CAC20@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [165.204.77.1] x-microsoft-exchange-diagnostics: 1; SN1PR12MB0670; 7:rHLOkfbdWfRp100lny7DUZWJZguPAChs1cpsrTvOLTGNJ+43a/ATOVLK55Uglbc+gaZ8dHG0g29tYPwjS870oVFRIP2YnCIjqlY6jTeLrG6nwu1FYpOCSJVpysLs7iNbV3aaouZOBIP2+o9EUcYppUyzMMhUlo14ERJGb7y7rr4pciqueyW0g4MurM+ZQcRwIt1QWuqKR4F0HlsPpqKhkpzce0oRC6TMiq/40mRRaQO8utTHJ56WyHkXJYBTMinM5LhEGt+EU98ERe/vkBpq1mmmOMjmzenbMfxsxE72TOy3k2sbha/YnmS7p5qm4PMG8VYB2nvF8oXEzEbHadhpPx/WR4H/4ZPOMep5GBS/xu4quIIvhNoQCoWe4ymdFGiFehd0lqDx27JtaTcj3QQKVYJmjCwX4zj8aFrtkWVCVGelDwASQwawUdhiWQBlgG2hFY1tvI5DrhoD/pE7NTvKsA==; 20:VX1bA5f2l61n0V28SO3YtDd2Bl3IR5KWu6b3PiJPYv+C2t3uj4FBh+qMtcyyaYwVo592+2weFAHtNXFtX9uTcMSkcAzNAarmKq4aOG8jTF02g+IgeDvxZVj1h6XPibTqjKZGkU/ApIZKZ2lPdGIbSj6jDKxPrmFiRStpYhue2Yj0xe4aoldUh5npH2Eeiw8kjXNBlaQ3DInYID9kUqNTCSIOCrrFu5S9GPLZVI/4tISZn908CzzaWCoRE6U5/4cX x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10009020)(6029001)(6009001)(7916002)(39450400003)(39860400002)(39840400002)(39410400002)(39850400002)(24454002)(377454003)(199003)(13464003)(189002)(377424004)(2950100002)(106356001)(106116001)(102836003)(3846002)(6116002)(3900700001)(33656002)(92566002)(3660700001)(189998001)(2900100001)(3280700002)(97736004)(105586002)(55016002)(8676002)(68736007)(8936002)(9686003)(81166006)(25786008)(81156014)(229853002)(2906002)(76176999)(54356999)(50986999)(74316002)(5001770100001)(86362001)(6506006)(6436002)(77096006)(99286003)(101416001)(7736002)(7416002)(38730400001)(54906002)(122556002)(93886004)(66066001)(5660300001)(7696004)(305945005)(4326007)(491001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB0670; H:DM5PR12MB1243.namprd12.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; x-ms-office365-filtering-correlation-id: d09a6ec3-cb51-4fc3-4963-08d4389c1cab x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR12MB0670; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(767451399110)(162533806227266)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123558021)(20161123555025)(20161123562025)(20161123564025)(6072148); SRVR:SN1PR12MB0670; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB0670; x-forefront-prvs: 0182DBBB05 received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2017 14:30:51.1612 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0670 Subject: Re: [PATCH v3 0/4] BaseIoFifoLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2017 14:30:54 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QlRXLA0KSSBhbHNvIHlvdSBzaG91bGQgaGF2ZSBtZW50aW9uZWQgdGhhdCB0aGUgcHJvcG9zZWQg SW9GaWZvTGliIGlzIGludGVuZGVkIHRvIHN1cHBvcnQganVzdCB4ODYgKElBMzIgKyBYNjQpLi4u IFdoZXJlYXMgSW9MSWIgaXMgdW5pdmVyc2FsLg0KTGVvLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IER1cmFuLCBMZW8NCj4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDA5 LCAyMDE3IDg6MjMgQU0NCj4gVG86ICdHYW8sIExpbWluZycgPGxpbWluZy5nYW9AaW50ZWwuY29t PjsgSnVzdGVuLCBKb3JkYW4gTA0KPiA8am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT47ICdMYXN6 bG8gRXJzZWsnIDxsZXJzZWtAcmVkaGF0LmNvbT47IGVkazItDQo+IGRldmVsQGxpc3RzLjAxLm9y Zw0KPiBDYzogU2luZ2gsIEJyaWplc2ggPGJyaWplc2guc2luZ2hAYW1kLmNvbT47IEZhbiwgSmVm ZiA8amVmZi5mYW5AaW50ZWwuY29tPjsNCj4gS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsgTWEsIE1hdXJpY2UNCj4gPG1hdXJpY2UubWFAaW50ZWwuY29tPjsg QWd5ZW1hbiwgUHJpbmNlIDxwcmluY2UuYWd5ZW1hbkBpbnRlbC5jb20+Ow0KPiBOaSwgUnVpeXUg PHJ1aXl1Lm5pQGludGVsLmNvbT47IFN0ZWVsZSwgS2VsbHkgPGtlbGx5LnN0ZWVsZUBpbnRlbC5j b20+OyBXZWksDQo+IERhdmlkIDxkYXZpZC53ZWlAaW50ZWwuY29tPjsgR3VvLCBNYW5nIDxtYW5n Lmd1b0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjMgMC80XSBCYXNlSW9GaWZv TGliDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEdh bywgTGltaW5nIFttYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb21dDQo+ID4gU2VudDogU3VuZGF5 LCBKYW51YXJ5IDA4LCAyMDE3IDk6MTEgUE0NCj4gPiBUbzogRHVyYW4sIExlbyA8bGVvLmR1cmFu QGFtZC5jb20+OyBKdXN0ZW4sIEpvcmRhbiBMDQo+ID4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5j b20+OyAnTGFzemxvIEVyc2VrJyA8bGVyc2VrQHJlZGhhdC5jb20+OyBlZGsyLQ0KPiA+IGRldmVs QGxpc3RzLjAxLm9yZw0KPiA+IENjOiBTaW5naCwgQnJpamVzaCA8YnJpamVzaC5zaW5naEBhbWQu Y29tPjsgRmFuLCBKZWZmDQo+ID4gPGplZmYuZmFuQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFl bCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+ID4gTWEsIE1hdXJpY2UgPG1hdXJp Y2UubWFAaW50ZWwuY29tPjsgQWd5ZW1hbiwgUHJpbmNlDQo+ID4gPHByaW5jZS5hZ3llbWFuQGlu dGVsLmNvbT47IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgU3RlZWxlLA0KPiA+IEtl bGx5IDxrZWxseS5zdGVlbGVAaW50ZWwuY29tPjsgV2VpLCBEYXZpZCA8ZGF2aWQud2VpQGludGVs LmNvbT47IEd1bywNCj4gPiBNYW5nIDxtYW5nLmd1b0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDog UkU6IFtQQVRDSCB2MyAwLzRdIEJhc2VJb0ZpZm9MaWINCj4gPg0KPiA+IExlbzoNCj4gPiAgIElv TGliIExpYnJhcnkgY2xhc3MgaXMgZGVzaWduZWQgZnJvbSB0aGUgZnVuY3Rpb25hbGl0eSwgbm90 IGNvZGUNCj4gPiBpbXBsZW1lbnRhdGlvbi4gU28sIG1hbnkgSU8gb3BlcmF0aW9ucyBhcmUgaW5j bHVkZWQgaW4gdGhpcyBsaWJyYXJ5DQo+ID4gY2xhc3MuIElmIGRldmVsb3BlcnMgd2FudCB0byB1 c2UgSU8gQVBJLCB0aGV5IG9ubHkgbmVlZCB0byBjaGVjayBJb0xpYiBsaWJyYXJ5DQo+IGNsYXNz Lg0KPiA+IEFmdGVyIGFkZCBuZXcgQVBJcywgd2UgbmVlZCB0byB1cGRhdGUgYWxsIElvTGliIGxp YnJhcnkgaW5zdGFuY2VzIHRvDQo+ID4gaW1wbGVtZW50IHRoZW0uIEFuZCwgaWYgYW55IGxpYnJh cnkgQVBJIGltcGxlbWVudGF0aW9uIGhhcyB0aGUNCj4gPiBkaWZmZXJlbnQgdmVyc2lvbiwgdGhl IGZ1bGwgbGlicmFyeSBpbnN0YW5jZSB3aWxsIGhhdmUgdG8gYmUgY29waWVkIHRvDQo+ID4gYW5v dGhlciBpbnN0YW5jZS4gSSBrbm93IHlvdXIgY29uY2VybiBpcyB0byBkdXBsaWNhdGUgdGhlIGxp YnJhcnkNCj4gPiBpbXBsZW1lbnRhdGlvbi4gQnV0LCBJIHRoaW5rIHRoaXMgaXMgdGhlIHNlcGFy YXRlIHRvcGljIHRvIG9wdGltaXplDQo+ID4gdGhlIGxpYnJhcnkgaW1wbGVtZW50YXRpb24gYW5k IHJldXNlIHRoZSBzYW1lIHNvdXJjZSBmaWxlLiBPdGhlcg0KPiA+IGxpYnJhcnkgaW5zdGFuY2Vz IG1heSBoYXZlIHRoZSBzYW1lIGlzc3VlLiBTbywgSSBzdWdnZXN0IHlvdSBzdWJtaXQNCj4gPiBi dWd6aWxsYSBmb3IgdGhpcyBvcHRpbWl6YXRpb24gcmVxdWVzdC4gV2Ugd2lsbCBmaWd1cmUgb3V0 IHRoZSBzb2x1dGlvbiBhbmQNCj4gcmV2aWV3IGl0IGluIHRoaXMgbWFpbCBsaXN0Lg0KPiA+DQo+ ID4gVGhhbmtzDQo+ID4gTGltaW5nDQo+IFtEdXJhbiwgTGVvXQ0KPiBIaSBMaW1pbmcsDQo+IA0K PiBJJ20gbm90IHN1cmUgSSBmb2xsb3cgd2hhdCB5b3UgbWVhbiBieSBhbiAnb3B0aW1pemF0aW9u IHJlcXVlc3QnLg0KPiBBdCBwcmVzZW50IElvTEliIGRvZXMgKm5vdCogaW5jbHVkZSB0aGUgRmlm byByb3V0aW5lcyB0aGF0IEkndmUgcmVmZXJyZWQgdG8sIHNvDQo+IEknbSBzaW1wbHkgcHJvcG9z aW5nIHRvIHdyYXAgdGhlIEZpZm8gcm91dGluZXMgaW50byBpbiBhIGxpYnJhcnkuDQo+IE1vcmVv dmVyLCBhcyB5b3UganVzdCBzYWlkLCBJ4oCZbSBhbHNvIHByb3Bvc2luZyBub3QgdXNpbmcgSW9M aWIgdG8gYXZvaWQgaGF2aW5nDQo+IHRvIGR1cGxpY2F0ZSBhbGwgb2YgdGhlIGZ1bmN0aW9uYWxp dHkgaW4gSW9MaWIuDQo+IA0KPiBDYW4geW91IHBsZWFzZSBnaXZlIG1lIGEgYml0IG1vcmUgZGV0 YWlsIGFzIHRvIHdoYXQgdGhlICdvcHRpbWl6YXRpb24NCj4gcmVxdWVzdCcgd291bGQgYmU/DQo+ IChpLmUuLCBzaG91bGQgdGhhdCByZXF1ZXN0IHJlYWQgZXhhY3RseSBhcyBJJ3ZlIHByb3Bvc2Vk IHNvIGZhciwgcHJvcG9zaW5nIHRoZQ0KPiBjcmVhdGlvbiBvZiBhbiBJb0ZpZm9MaWI/KSBJJ2xs IHN1Ym1pdCBCdWd6aWxsYSBvbmNlIEkgYmV0dGVyIHVuZGVyc3RhbmQgd2hhdA0KPiBuZWVkcyB0 byBiZSBpbiBpdC4NCj4gDQo+IFRoYW5rcywNCj4gTGVvDQo+IA0KPiANCj4gDQo+ID4gPi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPkZyb206IER1cmFuLCBMZW8gW21haWx0bzpsZW8u ZHVyYW5AYW1kLmNvbV0NCj4gPiA+U2VudDogU3VuZGF5LCBKYW51YXJ5IDA4LCAyMDE3IDE6MTcg QU0NCj4gPiA+VG86IEp1c3RlbiwgSm9yZGFuIEwgPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+ OyAnTGFzemxvIEVyc2VrJw0KPiA+ID48bGVyc2VrQHJlZGhhdC5jb20+OyBHYW8sIExpbWluZyA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBlZGsyLQ0KPiA+ID5kZXZlbEBsaXN0cy4wMS5vcmcNCj4g PiA+Q2M6IFNpbmdoLCBCcmlqZXNoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBGYW4sIEplZmYN Cj4gPiA+PGplZmYuZmFuQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47DQo+ID4gPk1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNv bT47IEFneWVtYW4sIFByaW5jZQ0KPiA+ID48cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPjsgTmks IFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBTdGVlbGUsDQo+ID4gPktlbGx5IDxrZWxseS5z dGVlbGVAaW50ZWwuY29tPjsgV2VpLCBEYXZpZCA8ZGF2aWQud2VpQGludGVsLmNvbT47DQo+ID4g Pkd1bywgTWFuZyA8bWFuZy5ndW9AaW50ZWwuY29tPg0KPiA+ID5TdWJqZWN0OiBSRTogW1BBVENI IHYzIDAvNF0gQmFzZUlvRmlmb0xpYg0KPiA+ID4NCj4gPiA+Sm9yZGFuLCBMaW1pbmcsIGV0IGFs LA0KPiA+ID4NCj4gPiA+SXQgdHVybnMgb3V0IHRoYXQgdGhlIHJ1bnRpbWUgZW5hYmxlbWVudCBv ZiBTRVYgZmVhdHVyZSB0aGF0IEkNCj4gPiA+cmVmZXJyZWQgdG8gY2FuIGJlIGRldGVjdGVkIGlu IGhhcmR3YXJlOyBzbyBpbnN0ZWFkIG9mIHJlcXVpcmluZw0KPiA+ID4nZHJpdmVyJyBjb2RlIHRv IHNldCBhIGR5bmFtaWMgUENELCB0aGUgb3ZlcnJpZGUgRmlmbyByb3V0aW5lcyBjb3VsZA0KPiA+ ID5kbyBhIHJ1bnRpbWUgY2hlY2sgbGlrZSB0aGlzOg0KPiA+ID4NCj4gPiA+Ly8gSW4gb3ZlcnJp ZGUgdmVyc2lvbiBvZiB0aGUgRmlmbyBsaWJyYXJ5DQo+ID4gPmZpZm9fZm9vKCkNCj4gPiA+ew0K PiA+ID4JSWYgKFNFVl9FbmFibGVkKCkpIHsNCj4gPiA+CQkvLyBkb24ndCB1c2UgUkVQIGlucy9v dXRzDQo+ID4gPgl9IGVsc2Ugew0KPiA+ID4JCS8vIHVzZSBSRVAgaW5zL291dHMNCj4gPiA+CX0N Cj4gPiA+fQ0KPiA+ID5JbiBlc3NlbmNlIHdlIGFscmVhZHkgaGF2ZSBhIGhhcmR3YXJlLWJhc2Vk IGR5bmFtaWMgUENELCBzbyB0aGUgaWRlYQ0KPiA+ID5pcyB0byBsZXZlcmFnZSBpdC4NCj4gPiA+ DQo+ID4gPkFuZCBzaW5jZSB3ZSdyZSBpbnRlcmVzdGVkIGluIG92ZXJyaWRpbmcganVzdCB0aGUg RmlmbyByb3V0aW5lcywgaXQNCj4gPiA+d291bGQgbWFrZSBiZXR0ZXIgc2Vuc2UgdG8ga2VlcCB0 aGVtIGluIGEgc2VwYXJhdGUgbGlicmFyeSAoYXMNCj4gPiA+cHJvcG9zZWQgaW4NCj4gPiB0aGUg cGF0Y2ggc2V0KS4NCj4gPiA+TGVvLg0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4+IEZyb206IEpvcmRhbiBKdXN0ZW4gW21haWx0bzpqb3JkYW4ubC5qdXN0 ZW5AaW50ZWwuY29tXQ0KPiA+ID4+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAwNiwgMjAxNyA2OjUw IFBNDQo+ID4gPj4gVG86IER1cmFuLCBMZW8gPGxlby5kdXJhbkBhbWQuY29tPjsgJ0xhc3psbyBF cnNlaycNCj4gPiA+PiA8bGVyc2VrQHJlZGhhdC5jb20+OyBHYW8sIExpbWluZyA8bGltaW5nLmdh b0BpbnRlbC5jb20+Ow0KPiA+ID4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPj4gQ2M6 IFNpbmdoLCBCcmlqZXNoIDxicmlqZXNoLnNpbmdoQGFtZC5jb20+OyBGYW4sIEplZmYNCj4gPiA+ PiA8amVmZi5mYW5AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA+PiA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+OyBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5jb20+ Ow0KPiA+ID4+IEFneWVtYW4sIFByaW5jZSA8cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPjsgTmks IFJ1aXl1DQo+ID4gPj4gPHJ1aXl1Lm5pQGludGVsLmNvbT47IFN0ZWVsZSwgS2VsbHkgPGtlbGx5 LnN0ZWVsZUBpbnRlbC5jb20+OyBXZWksDQo+ID4gPj4gRGF2aWQgPGRhdmlkLndlaUBpbnRlbC5j b20+OyBHdW8sIE1hbmcgPG1hbmcuZ3VvQGludGVsLmNvbT4NCj4gPiA+PiBTdWJqZWN0OiBSRTog W1BBVENIIHYzIDAvNF0gQmFzZUlvRmlmb0xpYg0KPiA+ID4+DQo+ID4gPj4gT24gMjAxNy0wMS0w NiAwNzoyMzo0NywgRHVyYW4sIExlbyB3cm90ZToNCj4gPiA+PiA+DQo+ID4gPj4gPg0KPiA+ID4+ ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+ID4gPiBGcm9tOiBMYXN6bG8g RXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0NCj4gPiA+PiA+ID4gU2VudDogRnJpZGF5 LCBKYW51YXJ5IDA2LCAyMDE3IDU6MTIgQU0NCj4gPiA+PiA+ID4gVG86IEdhbywgTGltaW5nIDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IER1cmFuLCBMZW8NCj4gPiA+PiA+ID4gPGxlby5kdXJhbkBh bWQuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+PiA+ID4gPGVkazItZGV2ZWxA bWwwMS4wMS5vcmc+DQo+ID4gPj4gPiA+IENjOiBTaW5naCwgQnJpamVzaCA8YnJpamVzaC5zaW5n aEBhbWQuY29tPjsgSnVzdGVuLCBKb3JkYW4gTA0KPiA+ID4+ID4gPiA8am9yZGFuLmwuanVzdGVu QGludGVsLmNvbT47IEZhbiwgSmVmZiA8amVmZi5mYW5AaW50ZWwuY29tPjsNCj4gPiA+PiA+ID4g S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTWEsIE1hdXJp Y2UNCj4gPiA+PiA+ID4gPG1hdXJpY2UubWFAaW50ZWwuY29tPjsgQWd5ZW1hbiwgUHJpbmNlDQo+ ID4gPj4gPHByaW5jZS5hZ3llbWFuQGludGVsLmNvbT47DQo+ID4gPj4gPiA+IE5pLCBSdWl5dSA8 cnVpeXUubmlAaW50ZWwuY29tPjsgU3RlZWxlLCBLZWxseQ0KPiA+ID4+ID4gPiA8a2VsbHkuc3Rl ZWxlQGludGVsLmNvbT47IFdlaSwgRGF2aWQgPGRhdmlkLndlaUBpbnRlbC5jb20+Ow0KPiA+ID4+ ID4gPiBHdW8sIE1hbmcgPG1hbmcuZ3VvQGludGVsLmNvbT4NCj4gPiA+PiA+ID4gU3ViamVjdDog UmU6IFtQQVRDSCB2MyAwLzRdIEJhc2VJb0ZpZm9MaWINCj4gPiA+PiA+ID4NCj4gPiA+PiA+ID4g T24gMDEvMDYvMTcgMDc6MDIsIEdhbywgTGltaW5nIHdyb3RlOg0KPiA+ID4+ID4gPiA+IExlbzoN Cj4gPiA+PiA+ID4gPiBGaWZvSW8gaXMgb25lIHdpZHRoIHR5cGUgb2YgRUZJX0NQVV9JT19QUk9U T0NPTF9XSURUSC4gU28sDQo+ID4gPj4gPiA+ID4gaG93IGFib3V0IGFkZCBuZXcgQVBJcyBpbnRv IElvTGliIHRvZ2V0aGVyIHdpdGggb3RoZXIgSW8NCj4gPiA+PiA+ID4gPiBBUElzPyBJZiBzbywg bm8gbmV3IGxpYnJhcnkgY2xhc3MgaXMgcmVxdWlyZWQuIFBsYXRmb3JtIERTQw0KPiA+ID4+ID4g PiA+IGZpbGVzIGFyZSBub3QgcmVxdWlyZWQgdG8gYmUgY2hhbmdlZC4NCj4gPiA+PiA+ID4NCj4g PiA+PiA+ID4gQnV0IHRoZW4gYWxsIG9mIHRoZSBJb0xpYiBpbnN0YW5jZXMgd2lsbCBoYXZlIHRv IGJlIGV4dGVuZGVkIHRvbzoNCj4gPiA+PiA+ID4NCj4gPiA+PiA+ID4gSW50ZWxGcmFtZXdvcmtQ a2cvTGlicmFyeS9EeGVJb0xpYkNwdUlvL0R4ZUlvTGliQ3B1SW8uaW5mDQo+ID4gPj4gPiA+IE1k ZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNpYy9CYXNlSW9MaWJJbnRyaW5zaWMuaW5mDQo+ ID4gPj4gPiA+IE1kZVBrZy9MaWJyYXJ5L0R4ZUlvTGliQ3B1SW8yL0R4ZUlvTGliQ3B1SW8yLmlu Zg0KPiA+ID4+ID4gPiBNZGVQa2cvTGlicmFyeS9EeGVJb0xpYkVzYWwvRHhlSW9MaWJFc2FsLmlu Zg0KPiA+ID4+ID4gPiBNZGVQa2cvTGlicmFyeS9QZWlJb0xpYkNwdUlvL1BlaUlvTGliQ3B1SW8u aW5mDQo+ID4gPj4gPiA+IE1kZVBrZy9MaWJyYXJ5L1NtbUlvTGliU21tQ3B1SW8yL1NtbUlvTGli U21tQ3B1SW8yLmluZg0KPiA+ID4+ID4gPg0KPiA+ID4+ID4gPiBUaGFua3MsDQo+ID4gPj4gPiA+ IExhc3psbw0KPiA+ID4+ID4gPg0KPiA+ID4+ID4gW0R1cmFuLCBMZW9dIENvcnJlY3QuDQo+ID4g Pj4gPiBBcyBJIG1lbnRpb25lZCwgb25lIG9mIHRoZSByZWFzb25zIGZvciB0aGUgbmV3IElvRmlm byBsaWJyYXJ5IGlzDQo+ID4gPj4gPiB0byBiZSBhYmxlIHRvIG92ZXJyaWRlIGl0IHdpdGhvdXQg aGF2aW5nIHRvIGR1cGxpY2F0ZSB0aGUgY29tcGxldGUNCj4gSW9MaWIuDQo+ID4gPj4gPg0KPiA+ ID4+DQo+ID4gPj4gSSBhZ3JlZSB3aXRoIExpbWluZyBhYm91dCBhZGRpbmcgdGhlIGZ1bmN0aW9u cyB0byBJb0xpYiBpbnN0ZWFkLg0KPiA+ID4+DQo+ID4gPj4gUGVyaGFwcyBhIFBDRCBjb3VsZCBi ZSBhZGRlZCB0byBjb250cm9sIGlmIHJlcCBpL28gaW5zdHJ1Y3Rpb25zIGFyZQ0KPiA+ID4+IHVz ZWQuDQo+ID4gPj4NCj4gPiA+PiAtSm9yZGFuDQo=