From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ni, Ruiyu" Subject: Re: [edk2] OVMF broken under Xen (in PCI initialisation) Date: Wed, 27 Apr 2016 09:50:15 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D0DA291E5__35997.6051877767$1461750694$gmane$org@SHSMSX103.ccr.corp.intel.com> References: <20160422144736.GD1885@perard.uk.xensource.com> <734D49CCEBEEF84792F5B80ED585239D0DA25884@SHSMSX103.ccr.corp.intel.com> <20160426073529.GC3109@GaryWorkstation> <734D49CCEBEEF84792F5B80ED585239D0DA25B98@SHSMSX103.ccr.corp.intel.com> <20160426084000.GD3109@GaryWorkstation> <734D49CCEBEEF84792F5B80ED585239D0DA25D38@SHSMSX103.ccr.corp.intel.com> <20160427042907.GH3109@GaryWorkstation> <734D49CCEBEEF84792F5B80ED585239D0DA27D1E@SHSMSX103.ccr.corp.intel.com> <20160427065428.GJ3109@GaryWorkstation> <734D49CCEBEEF84792F5B80ED585239D0DA27F59@SHSMSX103.ccr.corp.intel.com> <20160427082641.GK3109@GaryWorkstation> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Gary Lin Cc: "Kinney, Michael D" , "edk2-devel@lists.01.org" , Laszlo Ersek , Xen Devel List-Id: xen-devel@lists.xenproject.org Q29weWluZyBNaWtlLgoKUmVnYXJkcywKUmF5Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K PkZyb206IE5pLCBSdWl5dQo+U2VudDogV2VkbmVzZGF5LCBBcHJpbCAyNywgMjAxNiA1OjQ5IFBN Cj5UbzogJ0dhcnkgTGluJyA8Z2xpbkBzdXNlLmNvbT4KPkNjOiBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZzsgWGVuIERldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZz47IExhc3psbyBFcnNlayA8 bGVyc2VrQHJlZGhhdC5jb20+Cj5TdWJqZWN0OiBSRTogW2VkazJdIE9WTUYgYnJva2VuIHVuZGVy IFhlbiAoaW4gUENJIGluaXRpYWxpc2F0aW9uKQo+Cj5HYXJ5LAo+VGhhbmtzIGZvciB0aGUgdHJ5 Lgo+Cj5JIG5vdyB1bmRlcnN0YW5kIHdoeSB0aGUgaXNzdWUgaGFwcGVucy4KPjEuIFBjaUVudW1l cmF0b3JMaWdodCgpIGRlcGVuZHMgb24gdGhlIE1pbkJ1cyByZXR1cm5lZCBmcm9tCj5QY2lSb290 QnJpZGdlSW8uQ29uZmlndXJhdGlvbigpLgo+Mi4gUGNpUm9vdEJyaWRnZUlvLkNvbmZpZ3VyYXRp b24oKSByZXR1cm5zIHRoZSByZXNvdXJjZSBkZXNjcmlwdG9ycwo+aW5pdGlhbGl6ZWQgYnkgUGNp SG9zdEJyaWRnZS5Ob3RpZnlQaGFzZShFZmlQY2lIb3N0QnJpZGdlQWxsb2NhdGVSZXNvdXJjZXMp Lgo+My4gUGNpSG9zdEJyaWRnZS5Ob3RpZnlQaGFzZShFZmlQY2lIb3N0QnJpZGdlQWxsb2NhdGVS ZXNvdXJjZXMpCj5pcyBub3QgY2FsbGVkIHdoZW4gUGNkUGNpRGlzYWJsZUJ1c0VudW1lcmF0aW9u IGlzIFRSVUUKPgo+SSBhbSB0aGlua2luZyBhYm91dCBsZXQgUGNpUm9vdEJyaWRnZUlvLkNvbmZp Z3VyYXRpb24oKSByZXR1cm5zCj50aGUgY29ycmVjdCByZXNvdXJjZSBjb25zdW1wdGlvbiBpbmZv cm1hdGlvbiBldmVuIHdoZW4KPlBjZFBjaURpc2FibGVCdXNFbnVtZXJhdGlvbiBpcyBUUlVFLgo+ Cj5JIGNhbiBhZGQgYSBuZXcgZmllbGQgdG8gUENJX1JPT1RfQlJJREdFIHN0cnVjdHVyZSBkZWZp bmVkIGluCj5NZGVNb2R1bGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1BjaUhvc3RCcmlkZ2VMaWIuaCB0 byBpbmRpY2F0ZQo+dGhhdCB0aGUgcmVzb3VyY2VzIGZpbGxlZCBpbiBQQ0lfUk9PVF9CUklER0Uu QnVzL0lvL01lbS8KPk1lbUFib3ZlNEcvUE1lbS9QTWVtQWJvdmU0RyBhcmUgYWxyZWFkeSBhc3Np Z25lZAo+dG8gUENJIGJ1cy4gU28gdGhhdCBQY2lSb290QnJpZGdlSW8uQ29uZmlndXJhdGlvbigp IGNhbiByZXR1cm4KPnRoZXNlIHZhbHVlIGV2ZW4gd2hlbgo+UGNpSG9zdEJyaWRnZS5Ob3RpZnlQ aGFzZShFZmlQY2lIb3N0QnJpZGdlQWxsb2NhdGVSZXNvdXJjZXMpCj5pcyBub3QgY2FsbGVkIGR1 ZSB0byBQY2RQY2lEaXNhYmxlQnVzRW51bWVyYXRpb24gaXMgVFJVRS4KPgo+RG8geW91IGtub3cg d2hldGhlciBYZW4gcGFzc2VzIHRoZSBQQ0kgZGV2aWNlIHJlc291cmNlCj5pbmZvcm1hdGlvbiB0 byBmaXJtd2FyZT8KPgo+Q29weWluZyBMYXN6bG8uCj4KPlJlZ2FyZHMsCj5SYXkKPgo+Pi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+RnJvbTogR2FyeSBMaW4gW21haWx0bzpnbGluQHN1c2Uu Y29tXQo+PlNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMjcsIDIwMTYgNDoyNyBQTQo+PlRvOiBOaSwg UnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT4KPj5DYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7 IFhlbiBEZXZlbCA8eGVuLWRldmVsQGxpc3RzLnhlbi5vcmc+Cj4+U3ViamVjdDogUmU6IFtlZGsy XSBPVk1GIGJyb2tlbiB1bmRlciBYZW4gKGluIFBDSSBpbml0aWFsaXNhdGlvbikKPj4KPj5PbiBX ZWQsIEFwciAyNywgMjAxNiBhdCAwNzoxODoyMUFNICswMDAwLCBOaSwgUnVpeXUgd3JvdGU6Cj4+ PiBHYXJ5LAo+Pj4gSW4gUGNpRW51bWVyYXRvckxpZ2h0KCksIHBsZWFzZSBkaXJlY3RseSBhc3Np Z24gMCB0byBNaW5CdXMgd2hlbgo+Pj4gQ29uZmlndXJhdGlvbigpIHJldHVybnMgZXJyb3IsIGlu c3RlYWQgb2YgY2FsbGluZyBQY2lHZXRCdXNSYW5nZSgpIHRvCj4+PiBleHRyYWN0IE1pbkJ1cyBm cm9tIHRoZSBkZXNjcmlwdG9ycyByZXR1cm5lZCBmcm9tIENvbmZpZ3VyYXRpb24oKS4KPj4+Cj4+ T0ssIEkgaWdub3JlZCBQY2lHZXRCdXNSYW5nZSgpIGFuZCB0aGUgY2hlY2sgb2YgdGhlIHJldHVy biBzdGF0dXMgb2YKPj5Db25maWd1cmF0aW9uKCkuIFNpbmNlIE1pbkJ1cyBpcyBhbHJlYWR5IGlu aXRpYWxpemVkLCBJIGRvbid0IGJvdGhlciB0bwo+PmNoYW5nZSB0aGUgdmFsdWUgYW55d2F5LiBU aGUgY2hhbmdlIGlzIGF0dGFjaGVkLgo+Pgo+PkFuZCB5ZXMsIHRoaXMgdGltZSB0aGUgc2hlbGwg c2hvd2VkLgo+Pgo+PlRoYW5rcywKPj4KPj5HYXJ5IExpbgo+Pgo+Pj4gUmVnYXJkcywKPj4+IFJh eQo+Pj4KPj4+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4gPkZyb206IEdhcnkgTGlu IFttYWlsdG86Z2xpbkBzdXNlLmNvbV0KPj4+ID5TZW50OiBXZWRuZXNkYXksIEFwcmlsIDI3LCAy MDE2IDI6NTQgUE0KPj4+ID5UbzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+Cj4+PiA+ Q2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBYZW4gRGV2ZWwgPHhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnPgo+Pj4gPlN1YmplY3Q6IFJlOiBbZWRrMl0gT1ZNRiBicm9rZW4gdW5kZXIgWGVuIChp biBQQ0kgaW5pdGlhbGlzYXRpb24pCj4+PiA+Cj4+PiA+T24gV2VkLCBBcHIgMjcsIDIwMTYgYXQg MDU6Mzk6NDBBTSArMDAwMCwgTmksIFJ1aXl1IHdyb3RlOgo+Pj4gPj4KPj4+ID4+Cj4+PiA+PiBS ZWdhcmRzLAo+Pj4gPj4gUmF5Cj4+PiA+Pgo+Pj4gPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tCj4+PiA+PiA+RnJvbTogR2FyeSBMaW4gW21haWx0bzpnbGluQHN1c2UuY29tXQo+Pj4gPj4g PlNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMjcsIDIwMTYgMTI6MjkgUE0KPj4+ID4+ID5UbzogTmks IFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+Cj4+PiA+PiA+Q2M6IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnOyBYZW4gRGV2ZWwgPHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnPgo+Pj4gPj4gPlN1Ympl Y3Q6IFJlOiBbZWRrMl0gT1ZNRiBicm9rZW4gdW5kZXIgWGVuIChpbiBQQ0kgaW5pdGlhbGlzYXRp b24pCj4+PiA+PiA+Cj4+PiA+PiA+T24gVHVlLCBBcHIgMjYsIDIwMTYgYXQgMDk6NDA6NDJBTSAr MDAwMCwgTmksIFJ1aXl1IHdyb3RlOgo+Pj4gPj4gPj4gR2FyeSwKPj4+ID4+ID4+IEkgY2FuIHJl cHJvZHVjZSB0aGUgaXNzdWUgYW5kIGhhdmUgZGVidWdnZWQgdG8gZ2V0IHRoZSByZWFzb24uCj4+ PiA+PiA+PiBJbiBNZGVNb2R1bGVQa2cvQnVzL1BjaS9QY2lCdXNEeGUvUGNpRW51bWVyYXRvclN1 cHBvcnQuYzoKPj4+ID4+ID4+IFBjaUVudW1lcmF0b3JMaWdodCgpIGNhbGxzIFBjaVJvb3RCcmlk Z2VJby0+Q29uZmlndXJhdGlvbigpCj4+PiA+PiA+PiB3aGlsZSB0aGUgQ29uZmlndXJhdGlvbiBy ZXR1cm5zIEVGSV9VTlNVUFBPUlRFRCByZXN1bHRpbmcKPj4+ID4+ID4+IHRoZSBQY2lCdXMgZHJp dmVyIGV4aXRzIGVhcmxpZXIuCj4+PiA+PiA+PiBZb3UgY291bGQgdHJ5IHRvIG1hbnVhbGx5IHNl dCBNaW5CdXMgdG8gMCBhbmQgTWF4QnVzIHRvIDB4RkYuCj4+PiA+PiA+Pgo+Pj4gPj4gPkRvIHlv dSBtZWFuIHRvIHNldCBNaW5CdXMgYW5kIE1heEJ1cyBpbiBQY2lHZXRCdXNSYW5nZSgpID8KPj4+ ID4+ID5TaG91bGQgSSBhbHNvIGtlZXAgdGhlIEVGSV9VTlNVUFBPUlRFRCBjb2RlIGluIENvbmZp Z3VyYXRpb24oKSA/Cj4+PiA+PiBLZWVwIHJldHVybmluZyBFRklfVU5TVVBQT1JURUQgaW4gQ29u ZmlndXJhdGlvbigpIGFuZCBzZXQKPj4+ID4+IE1pbkJ1cy9NYXhCdXMgaW4gUGNpR2V0QnVzUmFu Z2UoKS4KPj4+ID4+Cj4+PiA+PiA+Cj4+PiA+PiA+PiBUaGUgc2Vjb25kIGNoYW5nZSB5b3UgbmVl ZCB0byBtYWtlIGlzIGluIFBjaUlvLmM6Cj4+PiA+PiA+PiBDaGFuZ2UgR2V0TW1pb0FkZHJlc3NU cmFuc2xhdGlvbk9mZnNldCgpIHRvIHJldHVybiAwIGluc3RlYWQKPj4+ID4+ID4+IG9mIC0xIHdo ZW4gZXJyb3Igb2NjdXJzCj4+PiA+PiA+Pgo+Pj4gPj4gPgo+Pj4gPj4gPlNob3VsZCBJIGFsc28g cmVtb3ZlICJBU1NFUlQgKEZBTFNFKTsiID8KPj4+ID4+Cj4+PiA+Pgo+Pj4gPj4gQVNTRVJUKCkg d29uJ3QgYmUgaGl0Lgo+Pj4gPj4KPj4+ID5JdCBkaWRuJ3Qgd29yayAoc2VlIG15IGF0dGFjaGVk IHBhdGNoKSA6KAo+Pj4gPkJUVywgaWYgQ29uZmlndXJhdGlvbigpIGFscmVhZHkgcmV0dXJucyBF RklfVU5TVVBQT1JURUQsIHRoZW4gdGhlcmUgaXMKPj4+ID5ubyB3YXkgdG8gaW52b2tlIFBjaUdl dEJ1c1JhbmdlKCkuIEJlc2lkZXMsIE1heEJ1cyB3YXMgbmV2ZXIgdXNlZCBpbgo+Pj4gPlBjaUVu dW1lcmF0b3JMaWdodCgpLCBzbyBpdCdzIG1lYW5pbmdsZXNzIHRvIGFzc2lnbiBhbnkgdmFsdWUg dG8gaXQuCj4+PiA+Cj4+PiA+Q2hlZXJzLAo+Pj4gPgo+Pj4gPkdhcnkgTGluCj4+PiA+Cj4+PiA+ PiA+Cj4+PiA+PiA+Q2hlZXJzLAo+Pj4gPj4gPgo+Pj4gPj4gPkdhcnkgTGluCj4+PiA+PiA+Cj4+ PiA+PiA+PiBXaXRoIHRoZSBhYm92ZSAyIGNoYW5nZXMsIGNhbiB5b3UgY2hlY2sgd2hldGhlciB0 aGUgc3lzdGVtIGNhbgo+Pj4gPj4gPj4gYm9vdD8KPj4+ID4+ID4+Cj4+PiA+PiA+PiBJZiBpdCBj YW4gYm9vdCwgdGhlbiB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IHdoYXQgdGhlIHByb3BlciBmaXgg aXMuCj4+PiA+PiA+PiBGb3IgT1ZNRiBhYm92ZSBYZW4sIHRoZSBQQ0kgcmVzb3VyY2VzIGFyZSBh c3NpZ25lZCBieSBYZW4gb3RoZXIgdGhhbgo+Pj4gPj4gPj4gUGNpQnVzIGRyaXZlci4gU28gUGNp Um9vdEJyaWRnZUlvLT5Db25maWd1cmF0aW9uKCkgZG9lc24ndCBrbm93Cj4+PiA+PiA+PiB0aGUg cmVzb3VyY2UgYXNzaWdubWVudCBpbmZvcm1hdGlvbi4KPj4+ID4+ID4+IFdpdGggb2xkIFBjaUhv c3RCcmlkZ2UgZHJpdmVyLCB0aGUgQ29uZmlndXJhdGlvbigpIHJldHVybnMgQlVTIHJlc291cmNl Cj4+PiA+PiA+PiBkZXNjcmlwdG9yIHdpdGggTWluQnVzID0gTWF4QnVzID0gMCAoZGVmYXVsdCB2 YWx1ZSksIHNvIHRoYXQgdGhlIFBjaUJ1cwo+Pj4gPj4gPj4gZHJpdmVyIGNhbiBkZXRlY3QgYWxs IGRldmljZXMgaW4gQlVTIDAsIGJ1dCBJIGd1ZXNzIGRldmljZXMgaW4gQlVTIDErIGNhbm5vdAo+ Pj4gPj4gPj4gYmUgZGV0ZWN0ZWQuCj4+PiA+PiA+Pgo+Pj4gPj4gPj4gRG9lcyBYZW4gcGFzcyB0 aGUgcmVzb3VyY2UgYXNzaWdubWVudCBpbmZvcm1hdGlvbiB0aHJvdWdoIHNvbWUgbWVtb3J5Cj4+ PiA+PiA+PiBibG9iIHRvIGZpcm13YXJlPyBJZiB5ZXMsIHdlIGNvdWxkIHRoaW5rIGFib3V0IGxl dCBQY2lIb3N0QnJpZGdlTGliIHBhc3MgdGhhdAo+Pj4gPj4gPj4gaW5mb3JtYXRpb24gdG8gUGNp SG9zdEJyaWRnZSBkcml2ZXIuIElmIG5vLCB3ZSBhbHNvIGNvdWxkIGxldCBQY2lIb3N0QnJpZGdl TGliCj4+PiA+PiA+PiBjb2xsZWN0IHRoZSBpbmZvcm1hdGlvbiAoSU8vTUVNL0JVUyByZXNvdXJj ZSBhc3NpZ25tZW50KSBhbmQgcGFzcyB0aGF0Cj4+PiA+PiA+PiB0byBQY2lIb3N0QnJpZGdlRHhl IGRyaXZlci4KPj4+ID4+ID4+Cj4+PiA+PiA+PiBBbmQgd2UgbmVlZCB0byBoYXZlIGEgd2F5IHRv IHRlbGwgUGNpSG9zdEJyaWRnZUR4ZSB0aGUgcmVzb3VyY2UgaW5mb3JtYXRpb24KPj4+ID4+ID4+ IHBhc3NlZCBmcm9tIFBjaUhvc3RCcmlkZ2VMaWIgaXMgYXZhaWxhYmxlIHJlc291cmNlIHRvIGFz c2lnbiwgb3IgYWxyZWFkeSBhbGxvY2F0ZWQuCj4+PiA+PiA+PiBNYXliZSBqdXN0IGRlcGVuZHMg b24gdGhlIFBjZFBjaUJ1c0Rpc2FibGVFbnVtZXJhdGlvbi4gc3RpbGwgdGhpbmtpbmcuCj4+PiA+ PiA+Pgo+Pj4gPj4gPj4KPj4+ID4+ID4+IFJlZ2FyZHMsCj4+PiA+PiA+PiBSYXkKPj4+ID4+ID4+ Cj4+PiA+PiA+PiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+ID4+ID4+ID5Gcm9tOiBH YXJ5IExpbiBbbWFpbHRvOmdsaW5Ac3VzZS5jb21dCj4+PiA+PiA+PiA+U2VudDogVHVlc2RheSwg QXByaWwgMjYsIDIwMTYgNDo0MCBQTQo+Pj4gPj4gPj4gPlRvOiBOaSwgUnVpeXUgPHJ1aXl1Lm5p QGludGVsLmNvbT4KPj4+ID4+ID4+ID5DYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IFhlbiBE ZXZlbCA8eGVuLWRldmVsQGxpc3RzLnhlbi5vcmc+Cj4+PiA+PiA+PiA+U3ViamVjdDogUmU6IFtl ZGsyXSBPVk1GIGJyb2tlbiB1bmRlciBYZW4gKGluIFBDSSBpbml0aWFsaXNhdGlvbikKPj4+ID4+ ID4+ID4KPj4+ID4+ID4+ID5PbiBUdWUsIEFwciAyNiwgMjAxNiBhdCAwODoxOTo0OUFNICswMDAw LCBOaSwgUnVpeXUgd3JvdGU6Cj4+PiA+PiA+PiA+PiBHYXJ5LAo+Pj4gPj4gPj4gPj4gTWF5YmUg dGhlIHN5c3RlbSBib290cyB0byBTaGVsbCB3ZWxsIGJ1dCB0aGUgdmlkZW8gaXNuJ3QgaW5pdGlh bGl6ZWQgcHJvcGVybHkuCj4+PiA+PiA+PiA+PiBDYW4geW91IGJ1aWxkIHRoZSBmaXJtd2FyZSB1 c2luZyAiLUQgREVCVUdfT05fU0VSSUFMX1BPUlQiIHN3aXRjaCBhbmQKPj4+ID4+ID4+ID4+IGdp dmUgbWUgdGhlIGJvb3QgbG9nPwo+Pj4gPj4gPj4gPj4KPj4+ID4+ID4+ID5IaSBSYXksCj4+PiA+ PiA+PiA+Cj4+PiA+PiA+PiA+SSBhbHJlYWR5IGRpZCBhbmQgaXQncyBob3cgSSBtYWtlIHRoZSBm aXJtd2FyZSBzcGl0IHRoZSBsb2cgOi0oCj4+PiA+PiA+PiA+Cj4+PiA+PiA+PiA+VGhhbmtzLAo+ Pj4gPj4gPj4gPgo+Pj4gPj4gPj4gPkdhcnkgTGluCj4+PiA+PiA+PiA+Cj4+PiA+PiA+PiA+PiBS ZWdhcmRzLAo+Pj4gPj4gPj4gPj4gUmF5Cj4+PiA+PiA+PiA+Pgo+Pj4gPj4gPj4gPj4gRnJvbTog R2FyeSBMaW4gW21haWx0bzpnbGluQHN1c2UuY29tXQo+Pj4gPj4gPj4gPj4gU2VudDogVHVlc2Rh eSwgQXByaWwgMjYsIDIwMTYgMzozNSBQTQo+Pj4gPj4gPj4gPj4gVG86IE5pLCBSdWl5dSA8cnVp eXUubmlAaW50ZWwuY29tPgo+Pj4gPj4gPj4gPj4gQ2M6IEFudGhvbnkgUEVSQVJEIDxhbnRob255 LnBlcmFyZEBjaXRyaXguY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IFhlbiBEZXZlbAo+ Pjx4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZz4KPj4+ID4+ID4+ID4+IFN1YmplY3Q6IFJlOiBbZWRr Ml0gT1ZNRiBicm9rZW4gdW5kZXIgWGVuIChpbiBQQ0kgaW5pdGlhbGlzYXRpb24pCj4+PiA+PiA+ PiA+Pgo+Pj4gPj4gPj4gPj4gT24gVHVlLCBBcHIgMjYsIDIwMTYgYXQgMDY6NDM6NTZBTSArMDAw MCwgTmksIFJ1aXl1IHdyb3RlOgo+Pj4gPj4gPj4gPj4gPgo+Pj4gPj4gPj4gPj4gPgo+Pj4gPj4g Pj4gPj4gPiBSZWdhcmRzLAo+Pj4gPj4gPj4gPj4gPiBSYXkKPj4+ID4+ID4+ID4+ID4KPj4+ID4+ ID4+ID4+ID4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+PiA+PiA+PiA+PiA+ID5Gcm9t OiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24g QmVoYWxmIE9mIEFudGhvbnkgUEVSQVJECj4+PiA+PiA+PiA+PiA+ID5TZW50OiBGcmlkYXksIEFw cmlsIDIyLCAyMDE2IDEwOjQ4IFBNCj4+PiA+PiA+PiA+PiA+ID5UbzogZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPgo+Pj4gPj4gPj4gPj4gPiA+ Q2M6IFhlbiBEZXZlbCA8eGVuLWRldmVsQGxpc3RzLnhlbi5vcmc8bWFpbHRvOnhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnPj4KPj4+ID4+ID4+ID4+ID4gPlN1YmplY3Q6IFtlZGsyXSBPVk1GIGJyb2tl biB1bmRlciBYZW4gKGluIFBDSSBpbml0aWFsaXNhdGlvbikKPj4+ID4+ID4+ID4+ID4gPgo+Pj4g Pj4gPj4gPj4gPiA+SGksCj4+PiA+PiA+PiA+PiA+ID4KPj4+ID4+ID4+ID4+ID4gPkZvbGxvd2lu ZyB0aGUgc3dpdGNoIHRvIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1BjaUhvc3RCcmlkZ2VEeGUsIHRo ZSBwY2kgcm9vdAo+Pj4gPj4gPj4gPj4gPiA+YnJpZGdlIGRvZXMgbm90IGZpbmlzaCB0byBpbml0 aWFsaXplIGFuZCBicmVha3MgdW5kZXIgWGVuLgo+Pj4gPj4gPj4gPj4gPiA+Cj4+PiA+PiA+PiA+ PiA+ID5UaGVyZSBhcmUgc2V2ZXJhbCBpc3N1ZSBwcm9iYWJseSBkdWUgdG8gdGhlIHVzZSBvZgo+ Pj4gPj4gPj4gPj4gPiA+UGNkUGNpRGlzYWJsZUJ1c0VudW1lcmF0aW9uPVRSVUUuCj4+PiA+PiA+ PiA+PiA+ID4KPj4+ID4+ID4+ID4+ID4gPkZpcnN0IG9uZToKPj4+ID4+ID4+ID4+ID4gPkFTU0VS VCBNZGVNb2R1bGVQa2cvQnVzL1BjaS9QY2lIb3N0QnJpZGdlRHhlL1BjaVJvb3RCcmlkZ2VJby5j KDk5KTogQnJpZGdlLT5NZW0uTGltaXQgPAo+Pj4gPj4gPj4gPjB4MDAwMDAwMDEwMDAwMDAwMFVM TAo+Pj4gPj4gPj4gPj4gPiA+Cj4+PiA+PiA+PiA+PiA+ID5UaGlzIHBhdGNoIHdvdWxkIGZpeCB0 aGUgZmlyc3QgYXNzZXJ0Ogo+Pj4gPj4gPj4gPj4gPiA+ZGlmZiAtLWdpdCBhL092bWZQa2cvUGxh dGZvcm1QZWkvWGVuLmMgYi9Pdm1mUGtnL1BsYXRmb3JtUGVpL1hlbi5jCj4+PiA+PiA+PiA+PiA+ ID5pbmRleCA3ZmE5MDE5Li4xNWVjN2E3IDEwMDY0NAo+Pj4gPj4gPj4gPj4gPiA+LS0tIGEvT3Zt ZlBrZy9QbGF0Zm9ybVBlaS9YZW4uYwo+Pj4gPj4gPj4gPj4gPiA+KysrIGIvT3ZtZlBrZy9QbGF0 Zm9ybVBlaS9YZW4uYwo+Pj4gPj4gPj4gPj4gPiA+QEAgLTIyNyw1ICsyMjcsMTEgQEAgSW5pdGlh bGl6ZVhlbiAoCj4+PiA+PiA+PiA+PiA+ID4KPj4+ID4+ID4+ID4+ID4gPiAgIFBjZFNldEJvb2wg KFBjZFBjaURpc2FibGVCdXNFbnVtZXJhdGlvbiwgVFJVRSk7Cj4+PiA+PiA+PiA+PiA+ID4KPj4+ ID4+ID4+ID4+ID4gPisgIC8vIFZhbHVlcyBmcm9tIGh2bWxvYWRlcgo+Pj4gPj4gPj4gPj4gPiA+ KyNkZWZpbmUgUENJX01FTV9FTkQgICAgICAgICAweEZDMDAwMDAwCj4+PiA+PiA+PiA+PiA+ID4r I2RlZmluZSBIVk1fQkVMT1dfNEdfTU1JT19TVEFSVCAweEYwMDAwMDAwCj4+PiA+PiA+PiA+PiA+ ID4rICBQY2RTZXQ2NCAoUGNkUGNpTW1pbzMyQmFzZSwgSFZNX0JFTE9XXzRHX01NSU9fU1RBUlQp Owo+Pj4gPj4gPj4gPj4gPiA+KyAgUGNkU2V0NjQgKFBjZFBjaU1taW8zMlNpemUsIFBDSV9NRU1f RU5EIC0gSFZNX0JFTE9XXzRHX01NSU9fU1RBUlQpOwo+Pj4gPj4gPj4gPj4gPiA+Kwo+Pj4gPj4g Pj4gPj4gPiA+ICAgcmV0dXJuIEVGSV9TVUNDRVNTOwo+Pj4gPj4gPj4gPj4gPiA+IH0KPj4+ID4+ ID4+ID4+ID4gPgo+Pj4gPj4gPj4gPj4gPiA+Cj4+PiA+PiA+PiA+PiA+ID5CdXQgdGhhdCBub3Qg ZW5vdWdoLCBuZXh0IGFzc2VydCBpczoKPj4+ID4+ID4+ID4+ID4gPkFTU0VSVCBNZGVNb2R1bGVQ a2cvQnVzL1BjaS9QY2lCdXNEeGUvUGNpRGV2aWNlU3VwcG9ydC5jKDgwNyk6IFJvb3RCcmlkZ2Ug IT0gKCh2b2lkICopIDApCj4+PiA+PiA+PiA+PiA+ID4KPj4+ID4+ID4+ID4+ID4gPkkgaGF2ZSB3 b3JrZWQgYXJvdW5kIHRoaXMgb25lIHdpdGggdGhlIGZvbGxvd2luZyBwYXRjaC4gVGhhdCB3b3Vs ZAo+Pj4gPj4gPj4gPj4gPiA+Y29ycmVzcG9uZCB0byBob3cgdGhlIGZvcm1lciBpbXBsZW1lbnRh dGlvbiBpbiBPdm1mUGtnIHdhcyBpbml0aWFsaXppbmcgdGhlCj4+PiA+PiA+PiA+PiA+ID5zdHJ1 Y3QuIE1heWJlIGEgYmV0dGVyIHdheSB3b3VsZCBiZSB0byBmaWxsIFJlc0FsbG9jYXRlZCB1bmRl ciBYZW4sCj4+PiA+PiA+PiA+PiA+ID5zb21laG93LiBVbmRlciBYZW4sIHRoZSBSZXNBbGxvY05v ZGUgc3RhdHVzIGlzIG5vdCBhbGxvY2F0ZWQsIHNvIG5vCj4+PiA+PiA+PiA+PiA+ID5EZXNjcmlw dG9yIGFyZSBjcmVhdGVkLgo+Pj4gPj4gPj4gPj4gPiA+Cj4+PiA+PiA+PiA+PiA+ID5kaWZmIC0t Z2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGNpSG9zdEJyaWRnZUR4ZS9QY2lSb290QnJpZGdl SW8uYwo+Pj4gPj4gPj4gPj4gPiA+Yi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9QY2lIb3N0QnJpZGdl RHhlL1BjaVJvb3RCcmlkZ2VJby5jCj4+PiA+PiA+PiA+PiA+ID5pbmRleCBjZGE5YjQ5Li5lZGE5 MmI2IDEwMDY0NAo+Pj4gPj4gPj4gPj4gPiA+LS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGNp SG9zdEJyaWRnZUR4ZS9QY2lSb290QnJpZGdlSW8uYwo+Pj4gPj4gPj4gPj4gPiA+KysrIGIvTWRl TW9kdWxlUGtnL0J1cy9QY2kvUGNpSG9zdEJyaWRnZUR4ZS9QY2lSb290QnJpZGdlSW8uYwo+Pj4g Pj4gPj4gPj4gPiA+QEAgLTE1MDksMTUgKzE1MDksMTMgQEAgUm9vdEJyaWRnZUlvQ29uZmlndXJh dGlvbiAoCj4+PiA+PiA+PiA+PiA+ID4KPj4+ID4+ID4+ID4+ID4gPiAgICAgUmVzQWxsb2NOb2Rl ID0gJlJvb3RCcmlkZ2UtPlJlc0FsbG9jTm9kZVtJbmRleF07Cj4+PiA+PiA+PiA+PiA+ID4KPj4+ ID4+ID4+ID4+ID4gPi0gICAgaWYgKFJlc0FsbG9jTm9kZS0+U3RhdHVzICE9IFJlc0FsbG9jYXRl ZCkgewo+Pj4gPj4gPj4gPj4gPiA+LSAgICAgIGNvbnRpbnVlOwo+Pj4gPj4gPj4gPj4gPiA+LSAg ICB9Cj4+PiA+PiA+PiA+PiA+ID4tCj4+PiA+PiA+PiA+PiA+ID4gICAgIERlc2NyaXB0b3ItPkRl c2MgPSBBQ1BJX0FERFJFU1NfU1BBQ0VfREVTQ1JJUFRPUjsKPj4+ID4+ID4+ID4+ID4gPiAgICAg RGVzY3JpcHRvci0+TGVuICA9IHNpemVvZiAoRUZJX0FDUElfQUREUkVTU19TUEFDRV9ERVNDUklQ VE9SKSAtIDM7Cj4+PiA+PiA+PiA+PiA+ID4rICAgIGlmIChSZXNBbGxvY05vZGUtPlN0YXR1cyAh PSBSZXNBbGxvY2F0ZWQpIHsKPj4+ID4+ID4+ID4+ID4gPiAgICAgRGVzY3JpcHRvci0+QWRkclJh bmdlTWluICA9IFJlc0FsbG9jTm9kZS0+QmFzZTsKPj4+ID4+ID4+ID4+ID4gPiAgICAgRGVzY3Jp cHRvci0+QWRkclJhbmdlTWF4ICA9IFJlc0FsbG9jTm9kZS0+QmFzZSArIFJlc0FsbG9jTm9kZS0+ TGVuZ3RoIC0gMTsKPj4+ID4+ID4+ID4+ID4gPiAgICAgRGVzY3JpcHRvci0+QWRkckxlbiAgICAg ICA9IFJlc0FsbG9jTm9kZS0+TGVuZ3RoOwo+Pj4gPj4gPj4gPj4gPiA+KyAgICB9Cj4+PiA+PiA+ PiA+PiA+ID4gICAgIHN3aXRjaCAoUmVzQWxsb2NOb2RlLT5UeXBlKSB7Cj4+PiA+PiA+PiA+PiA+ ID4KPj4+ID4+ID4+ID4+ID4gSSB0aGluayBhIG1vcmUgcHJvcGVyIGZpeCBpcyB0byByZXR1cm4g RUZJX1VOU1VQUE9SVEVEIHdpdGhvdXQgcmV0dXJuaW5nIGFueQo+Pj4gPj4gPj4gPj4gPiBkZXNj cmlwdG9ycyB3aGVuIHRoZSBQY2RQY2lEaXNhYmxlQnVzRW51bWVyYXRpb24gaXMgVFJVRS4KPj4+ ID4+ID4+ID4+ID4gUGVyIFVFRkkgU3BlYywgRUZJX1VOU1VQUE9SVEVEIG1lYW5zICJUaGUgY3Vy cmVudCBjb25maWd1cmF0aW9uIG9mIHRoaXMgUENJCj4+PiA+PiA+PiA+PiA+IHJvb3QgYnJpZGdl IGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQuIiBJdCdzIHRydWUgd2hlbiB0aGUgUENEIGlzIHRydWUu Cj4+PiA+PiA+PiA+PiA+Cj4+PiA+PiA+PiA+PiA+ID4KPj4+ID4+ID4+ID4+ID4gPlRoYXQgbGVh ZHMgdG8gb25lIGxhc3QgYXNzZXJ0Ogo+Pj4gPj4gPj4gPj4gPiA+PiBRZW11VmlkZW86IENpcnJ1 cyA1NDQ2IGRldGVjdGVkCj4+PiA+PiA+PiA+PiA+ID4+IEluc3RhbGxQcm90b2NvbEludGVyZmFj ZTogMDk1NzZFOTEtNkQzRi0xMUQyLThFMzktMDBBMEM5Njk3MjNCIDdCOUVGNTk4Cj4+PiA+PiA+ PiA+PiA+ID4+IEFkZGluZyBNb2RlIDAgYXMgQ2lycnVzIEludGVybmFsIE1vZGUgMDogNjQweDQ4 MCwgMzItYml0LCA2MCBIego+Pj4gPj4gPj4gPj4gPiA+PiBBZGRpbmcgTW9kZSAxIGFzIENpcnJ1 cyBJbnRlcm5hbCBNb2RlIDE6IDgwMHg2MDAsIDMyLWJpdCwgNjAgSHoKPj4+ID4+ID4+ID4+ID4g Pj4gQWRkaW5nIE1vZGUgMiBhcyBDaXJydXMgSW50ZXJuYWwgTW9kZSAyOiAxMDI0eDc2OCwgMjQt Yml0LCA2MCBIego+Pj4gPj4gPj4gPj4gPiA+PiBQaXhlbEJsdWVHcmVlblJlZFJlc2VydmVkOEJp dFBlckNvbG9yCj4+PiA+PiA+PiA+PiA+ID4+IEFTU0VSVCAvbG9jYWwvaG9tZS9zaGVlcC93b3Jr L292bWYvTWRlTW9kdWxlUGtnL0J1cy9QY2kvUGNpQnVzRHhlL1BjaUlvLmMoMTc4OSk6Cj4+KChC T09MRUFOKSgwPT0xKSkKPj4+ID4+ID4+ID4+ID4gPkZvciB0aGlzIG9uZSwgSSd2ZSB3b3JrYXJv dW5kIGJ5IHJldmVydGluZyBwYXRjaCA3YjBhMWVhCj4+PiA+PiA+PiA+PiA+ID4oTWRlTW9kdWVs UGtnL1BjaUJ1czogUmV0dXJuIEFkZHJUcmFuc2xhdGlvbk9mZnNldCBpbiBHZXRCYXJBdHRyaWJ1 dGVzKS4KPj4+ID4+ID4+ID4+ID4gPlRoYXQgaXNzdWUgd2FzIGludHJvZHVjZSB3aGlsZSBzdGls bCB1c2luZyB0aGUgVVNFX09MRF9QQ0lfSE9TVC4KPj4+ID4+ID4+ID4+ID4gPgo+Pj4gPj4gPj4g Pj4gPiA+QW55IGlkZWUgb3IgcG9pbnRlciBvbiBob3cgdG8gZml4IHRob3NlIGlzc3VlcyA/Cj4+ PiA+PiA+PiA+PiA+Cj4+PiA+PiA+PiA+PiA+IFdoZW4gdGhlIFBjaVJvb3RCcmlkZ2VJby5Db25m aWd1cmF0aW9uKCkgcmV0dXJucyBFRklfVU5TVVBQT1JURUQsIHRoaXMgYXNzZXJ0aW9uCj4+PiA+ PiA+PiA+PiA+IGNhbiBiZSBmaXhlZCBhcyB3ZWxsLiBDb3JyZWN0Pwo+Pj4gPj4gPj4gPj4KPj4+ ID4+ID4+ID4+IEkgdHJpZWQgdG8gbWFrZSBSb290QnJpZGdlSW9Db25maWd1cmF0aW9uKCkgcmV0 dXJuIEVGSV9VTlNVUFBPUlRFRAo+Pj4gPj4gPj4gPj4gKHNlZSB0aGUgYXR0YWNobWVudCksIGFu ZCB0aG9zZSBhc3NlcnRzIHdlcmUgZ29uZS4gSG93ZXZlciwgdGhlIHN5c3RlbQo+Pj4gPj4gPj4g Pj4gc3R1Y2sgc29tZXdoZXJlIGFmdGVyIGxvYWRpbmcgc2hlbGwuZWZpLiBIZXJlIGFyZSB0aGUg bWVzc2FnZXMgZnJvbSB0aGUKPj4+ID4+ID4+ID4+IGRlYnVnIGxvZzoKPj4+ID4+ID4+ID4+Cj4+ PiA+PiA+PiA+PiBCZHNMaWJDb25uZWN0QWxsCj4+PiA+PiA+PiA+PiBTZWxlY3QgSXRlbTogMHhF Cj4+PiA+PiA+PiA+PiBNZW1vcnkgIFByZXZpb3VzICBDdXJyZW50ICAgIE5leHQKPj4+ID4+ID4+ ID4+ICBUeXBlICAgIFBhZ2VzICAgICBQYWdlcyAgICAgUGFnZXMKPj4+ID4+ID4+ID4+ID09PT09 PSAgPT09PT09PT0gID09PT09PT09ICA9PT09PT09PQo+Pj4gPj4gPj4gPj4gICAwQSAgICAwMDAw MDAwNCAgMDAwMDAwMDEgIDAwMDAwMDA0Cj4+PiA+PiA+PiA+PiAgIDA5ICAgIDAwMDAwMDA4ICAw MDAwMDAxMSAgMDAwMDAwMTUKPj4+ID4+ID4+ID4+ICAgMDAgICAgMDAwMDAwMDQgIDAwMDAwMDAx ICAwMDAwMDAwNAo+Pj4gPj4gPj4gPj4gICAwNiAgICAwMDAwMDAyNCAgMDAwMDAwNTcgIDAwMDAw MDZDCj4+PiA+PiA+PiA+PiAgIDA1ICAgIDAwMDAwMDMwICAwMDAwMDA2MyAgMDAwMDAwN0IKPj4+ ID4+ID4+ID4+ICAgMDMgICAgMDAwMDAxODAgIDAwMDAwNDhEICAwMDAwMDVCMAo+Pj4gPj4gPj4g Pj4gICAwNCAgICAwMDAwMEYwMCAgMDAwMDBCNjUgIDAwMDAwRjAwCj4+PiA+PiA+PiA+PiBCb290 aW5nIEVGSSBJbnRlcm5hbCBTaGVsbAo+Pj4gPj4gPj4gPj4gSW5zdGFsbFByb3RvY29sSW50ZXJm YWNlOiA1QjFCMzFBMS05NTYyLTExRDItOEUzRi0wMEEwQzk2OTcyM0IgM0VBNTgwQzAKPj4+ID4+ ID4+ID4+IExvYWRpbmcgZHJpdmVyIGF0IDB4MDAwM0UwM0YwMDAgRW50cnlQb2ludD0weDAwMDNF MDNGMjQwIFNoZWxsLmVmaQo+Pj4gPj4gPj4gPj4gSW5zdGFsbFByb3RvY29sSW50ZXJmYWNlOiBC QzYyMTU3RS0zRTMzLTRGRUMtOTkyMC0yRDNCMzZENzUwREYgM0VBNThCOTgKPj4+ID4+ID4+ID4+ IEluc3RhbGxQcm90b2NvbEludGVyZmFjZTogMzg3NDc3QzItNjlDNy0xMUQyLThFMzktMDBBMEM5 Njk3MjNCIDNFQTU0MzIwCj4+PiA+PiA+PiA+PiBJbnN0YWxsUHJvdG9jb2xJbnRlcmZhY2U6IDc1 MkYzMTM2LTRFMTYtNEZEQy1BMjJBLUU1RjQ2ODEyRjRDQSAzRUE1M0NEOAo+Pj4gPj4gPj4gPj4g SW5zdGFsbFByb3RvY29sSW50ZXJmYWNlOiA2MzAyRDAwOC03RjlCLTRGMzAtODdBQy02MEM5RkVG NURBNEUgM0UxNkI1ODAKPj4+ID4+ID4+ID4+Cj4+PiA+PiA+PiA+PiBJIGNvdWxkbid0IGZpbmQg b3V0IHdoZXJlIGl0IHN0dWNrIHVubGVzcyB0aGVyZSBpcyBhIHdheSB0byBhdHRhY2ggZ2RiCj4+ PiA+PiA+PiA+PiB0byBYZW4gSFZNIGZvciBzb3VyY2UgbGV2ZWwgZGVidWdnaW5nIDotKAo+Pj4g Pj4gPj4gPj4KPj4+ID4+ID4+ID4+IFRoYW5rcywKPj4+ID4+ID4+ID4+Cj4+PiA+PiA+PiA+PiBH YXJ5IExpbgo+Pj4gPj4gPj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPj4+ID4+ID4+ID4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiA+PiA+ PiA+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZwo+Pj4gPj4gPj4gPj4gaHR0cHM6Ly9saXN0cy4w MS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsCj4+PiA+PiA+PiA+Pgo+Pj4gPj4gPj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+ID4+ID4+ IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiA+PiA+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9y Zwo+Pj4gPj4gPj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRl dmVsCj4+PiA+PiA+Pgo+Pj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPj4+ID4+IGVkazItZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiA+PiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZwo+Pj4gPj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0 aW5mby9lZGsyLWRldmVsCj4+PiA+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK