From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id BCA9121EA35C4 for ; Thu, 7 Sep 2017 04:13:19 -0700 (PDT) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Sep 2017 04:16:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,358,1500966000"; d="scan'208,217";a="146525496" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 07 Sep 2017 04:16:10 -0700 Received: from fmsmsx124.amr.corp.intel.com (10.18.125.39) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Sep 2017 04:16:09 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx124.amr.corp.intel.com (10.18.125.39) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Sep 2017 04:16:09 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.93]) with mapi id 14.03.0319.002; Thu, 7 Sep 2017 19:16:07 +0800 From: "Yao, Jiewen" To: Laszlo Ersek , "Wang, Jian J" , "Justen, Jordan L" CC: "edk2-devel@lists.01.org" , "Kinney, Michael D" Thread-Topic: ASSERT in QemuVideoDxe driver during reset Thread-Index: AdMm3ucKp6vfV+HORTuJKz09A23e7P//r6sA//9sBlD//fzdUP/75WXQAQnSeQD//3U/cA== Date: Thu, 7 Sep 2017 11:16:06 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503A9A9161@shsmsx102.ccr.corp.intel.com> References: <130779a4-f1c8-bf07-8b85-8125d466aed3@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C503A9A8802@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503A9A8C97@shsmsx102.ccr.corp.intel.com> <61da5c08-751f-5826-cd86-11fba3f230c9@redhat.com> In-Reply-To: <61da5c08-751f-5826-cd86-11fba3f230c9@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: ASSERT in QemuVideoDxe driver during reset X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Sep 2017 11:13:20 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWdyZWUuIFdlIHNob3VsZCBub3QgYnJlYWsgV2luZG93Ny4NCkxldOKAmXMgc2VlIHRoZSByZXN1 bHQuDQoNClRoYW5rIHlvdQ0KWWFvIEppZXdlbg0KDQpGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0 bzpsZXJzZWtAcmVkaGF0LmNvbV0NClNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywgMjAxNyA2 OjU4IFBNDQpUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5q dXN0ZW5AaW50ZWwuY29tPg0KQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBLaW5uZXksIE1p Y2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQpTdWJqZWN0OiBSZTogQVNTRVJU IGluIFFlbXVWaWRlb0R4ZSBkcml2ZXIgZHVyaW5nIHJlc2V0DQoNCk9uIDA5LzA3LzE3IDAzOjI4 LCBZYW8sIEppZXdlbiB3cm90ZToNCj4gT0suIEdvdCB5b3UuDQo+DQo+IEkgdGhpbmsgd2UgY2Fu IG1vdmUgdGhlIHplcm8gbWVtb3J5IHRvIER4ZUlwbC4NCj4gVGhlIER4ZUlwbCBjYW4gY2hlY2sg aWYgdGhlIDAgaXMgYWxsb2NhdGVkIGluIE1lbW9yeUFsbG9jYXRpb25Ib2IsIGFuZCB6ZXJvIGl0 IGlmIGl0IGlzIG5vdCBhbGxvY2F0ZWQuDQoNClJlZ2FyZGluZyB0aGUgemVyb2luZyBvdXQgb2Yg cGFnZSAwLCB0aGlzIHNvbHV0aW9uIHNlZW1zIGdvb2QgdG8gbWUgYXMNCndlbGwuIChJIGFncmVl IHRoYXQgcGFnZSAwIHNob3VsZCBiZSB6ZXJvZWQgb3V0IGV2ZW4gaWYgdGhlIG51bGwgcG9pbnRl cg0KZGV0ZWN0aW9uIGlzIGVuYWJsZWQuKQ0KDQpSZWdhcmRpbmcgdGhlIHF1ZXN0aW9uIHdoZXRo ZXIgUWVtdVZpZGVvRHhlIHNob3VsZCwgb3Igc2hvdWxkIG5vdCwNCm1hbnVhbGx5IGNoYW5nZSB0 aGUgYWNjZXNzIHBlcm1pc3Npb25zIHRvIHBhZ2UgMCwgYmVmb3JlIGFuZCBhZnRlcg0Kc2V0dGlu ZyB1cCB0aGUgSW50MHgxMCB2ZWN0b3IsIGlmIG51bGwgcG9pbnRlciBkZXRlY3Rpb24gaXMgZW5h YmxlZDoNCg0KVGhpcyBkZXBlbmRzIG9uIFdpbmRvd3MgNy4gSWYgV2luZG93cyA3IGNhbiBib290 IGZpbmUgd2l0aCB0aGUgbnVsbA0KcG9pbnRlciBkZXRlY3Rpb24gZW5hYmxlZCwgdGhlbiBJIGFn cmVlIFFlbXVWaWRlb0R4ZSBzaG91bGQgYmUgdXBkYXRlZA0KYXMgZGVzY3JpYmVkIGFib3ZlLiAo Rm9yIG1hc3NhZ2luZyB0aGUgcGFnZSBwcm90ZWN0aW9uLCBpdCBzaG91bGQgdXNlDQpEWEUgc2Vy dmljZXMsIG5vdCBDcHVBcmNoIHNlcnZpY2VzLikgSW4gdGhpcyBjYXNlIGl0IGlzIGFsc28gZmlu ZSBmb3INCk9WTUYgdG8gaW5oZXJpdCB0aGUgZGVmYXVsdCBUUlVFIHNldHRpbmcgZm9yIHRoZSBQ Q0QuDQoNCklmIFdpbmRvd3MgNyBjYW5ub3QgYm9vdCB3aXRoIG51bGwgcG9pbnRlciBkZXRlY3Rp b24gZW5hYmxlZCwgdGhlbiBPVk1GDQpzaG91bGQgc2V0IHRoZSBQQ0QgdG8gRkFMU0UsIGFuZCBR ZW11VmlkZW9EeGUgc2hvdWxkIGJlIGNoYW5nZWQgdG8gbm90DQpjYWxsIEluc3RhbGxWYmVTaGlt KCkgYXQgYWxsIGlmIHRoZSBQQ0QgaXMgVFJVRS4NCg0KVGhhbmtzDQpMYXN6bG8NCg0KPiBGcm9t OiBXYW5nLCBKaWFuIEoNCj4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDE3IDg6NDEg QU0NCj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2Vu Lnlhb0BpbnRlbC5jb20+PjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86 bGVyc2VrQHJlZGhhdC5jb20+PjsgSnVzdGVuLCBKb3JkYW4gTCA8am9yZGFuLmwuanVzdGVuQGlu dGVsLmNvbTxtYWlsdG86am9yZGFuLmwuanVzdGVuQGludGVsLmNvbT4+DQo+IENjOiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+OyBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPj4NCj4gU3ViamVjdDogUkU6IEFTU0VSVCBpbiBRZW11VmlkZW9EeGUg ZHJpdmVyIGR1cmluZyByZXNldA0KPg0KPiBIaSBKaWV3ZW4gYW5kIExhc3psbywNCj4NCj4gQWNj b3JkaW5nIHRvIGJvdGggb2YgeW91ciBjb21tZW50czoNCj4NCj4NCj4gMS4gICAgICAgVkJFIFNI SU0gbXVzdCBiZSBpbnN0YWxsZWQgdG8gYXZvaWQgYm9vdCBmYWlsdXJlIG9mIFdpbmRvd3MgNy4N Cj4NCj4gMi4gICAgICAgRW5hYmxpbmcgTlVMTCBkZXRlY3Rpb24gc2hvdWxkIG5vdCBicmVhayBl eGlzdGluZyBwbGF0Zm9ybXMuDQo+DQo+IExldCBtZSBjbGFyaWZ5IGEgZmV3IHRoaW5ncyBpbiBh ZHZhbmNlLiBJIHRoaW5rIHRoZXJl4oCZcyBhIGxpdHRsZSBtaXN1bmRlcnN0YW5kaW5nIG9uIHRo aXMgaXNzdWUgKFNvcnJ5IGZvciBteSBwb29yIGRlc2NyaXB0aW9uIG9yaWdpbmFsbHkpLg0KPg0K PiAxLiAgICAgICBOVUxMIGRldGVjdGlvbiBpcyBpbXBsZW1lbnRlZCBieSBkaXNhYmxlIGZpcnN0 IDRLIHBhZ2UgKDAtNDA5NSkuIExldCBtZSBjYWxsIGl0IHBhZ2UgMC4NCj4NCj4gMi4gICAgICAg VGhlIEFTU0VSVCB3YXMgbm90IGNhdXNlZCBieSBhY2Nlc3NpbmcgcGFnZSAwLiBJIGRvIGVuYWJs aW5nIHBhZ2UgMCBiZWZvcmUgYWNjZXNzIGludDEwIHZlY3RvciBpbiBRZW11VmlkZW9EeGUgZHJp dmVyIHdoaWxlIE5VTEwgZGV0ZWN0aW9uIGlzIGVuYWJsZWQuDQo+DQo+IDMuICBUaGUgQVNTRVJU IHdpbGwgb25seSBiZSB0cmlnZ2VyZWQgYnkgcmVzZXQgYmVjYXVzZSBRZW11VmlkZW9EeGUgd2ls bCB3cml0ZSBpbnQxMCB2ZWN0b3IgYW5kIG1lbW9yeSBhdCB0aGF0IHBsYWNlIGtlZXBzIGludGFj dCBkdXJpbmcgcmVzZXQuDQo+DQo+IDQuICBUaGUgcm9vdCBjYXVzZSBvZiBBU1NFUlQgaXMgdGhl IGZhY3QgdGhhdCBwYWdlIDAgaXMgYWx3YXlzIGNsZWFyZWQgaW4gRFhFIGNvcmUgZXhjZXB0IHRv IE5VTEwgZGV0ZWN0aW9uIGVuYWJsZWQuIEkgY2hhbmdlZCBDb3JlQWRkUmFuZ2UoKSBpbiBwYWdl LmMgaW4gRFhDIGNvcmUgbGlrZSBiZWxvdyB0byBhdm9pZCBwYWdlIGZhdWx0IGluIGNvcmUuDQo+ IC8vDQo+ICAgLy8gSWYgbWVtb3J5IG9mIHR5cGUgRWZpQ29udmVudGlvbmFsTWVtb3J5IGlzIGJl aW5nIGFkZGVkIHRoYXQgaW5jbHVkZXMgdGhlIHBhZ2UNCj4gICAvLyBzdGFydGluZyBhdCBhZGRy ZXNzIDAsIHRoZW4gemVybyB0aGUgcGFnZSBzdGFydGluZyBhdCBhZGRyZXNzIDAuICBUaGlzIGhh cw0KPiAgIC8vIHR3byBiZW5pZml0cy4gIEl0IGhlbHBzIGZpbmQgTlVMTCBwb2ludGVyIGJ1Z3Mg YW5kIGl0IGFsc28gbWF4aW1pemVzDQo+ICAgLy8gY29tcGF0aWJpbGl0eSB3aXRoIG9wZXJhdGlu ZyBzeXN0ZW1zIHRoYXQgbWF5IGV2YWx1YXRlIG1lbW9yeSBpbiB0aGlzIHBhZ2UNCj4gICAvLyBm b3IgbGVnYWN5IGRhdGEgc3RydWN0dXJlcy4gIElmIG1lbW9yeSBvZiBhbnkgb3RoZXIgdHlwZSBp cyBhZGRlZCBzdGFydGluZw0KPiAgIC8vIGF0IGFkZHJlc3MgMCwgdGhlbiBkbyBub3QgemVybyB0 aGUgcGFnZSBhdCBhZGRyZXNzIDAgYmVjYXVzZSB0aGUgcGFnZSBpcyBiZWluZw0KPiAgIC8vIHVz ZWQgZm9yIG90aGVyIHB1cnBvc2VzLg0KPiAgIC8vDQo+ICAgaWYgKFR5cGUgPT0gRWZpQ29udmVu dGlvbmFsTWVtb3J5ICYmIFN0YXJ0ID09IDAgJiYgKEVuZCA+PSBFRklfUEFHRV9TSVpFIC0gMSkp IHsNCj4gICAgIGlmICgoUGNkR2V0OChQY2ROdWxsUG9pbnRlckRldGVjdGlvblByb3BlcnR5TWFz aykgJiBCSVQwKSA9PSAwKSB7DQo+ICAgICAgIFNldE1lbSAoKFZPSUQgKikoVUlOVE4pU3RhcnQs IEVGSV9QQUdFX1NJWkUsIDApOw0KPiAgICAgfQ0KPiAgIH0NCj4NCj4gSSB0aGluayB0aGUgYmVz dCBzb2x1dGlvbiBhdCBwcmVzZW50IGlzIHRvIHVwZGF0ZSBhYm92ZSBjb2RlIHRvIG1ha2Ugc3Vy ZSBwYWdlIDAgaXMgYWx3YXlzIGNsZWFyZWQgbm8gbWF0dGVyIE5VTEwgZGV0ZWN0aW9uIGlzIGVu YWJsZSBvciBub3QuIFRvIG1ha2UgaXQgcG9zc2libGUsIEkgaGF2ZSB0byBlbmFibGUgcGFnZSAw IGJlZm9yZSBtZW1vcnkgY2xlYXJpbmcgYW5kIGRpc2FibGUgaXQgYWdhaW4gYWZ0ZXIgdGhlbi4g TXkgY29uY2VybiBpcyB0aGF0IEkgY2Fubm90IHVzZSBDUFUgYXJjaCBwcm90b2NvbCB0byBkbyBz byBpbiBDb3JlQWRkUmFuZ2UoKSBmdW5jdGlvbiBiZWNhdXNlIGl04oCZcyBub3QgcmVhZHkgYXQg dGhhdCB0aW1lLiBUaGVyZeKAmXJlIHR3byBvcHRpb25zIGhlcmUuIE9uZSBpcyDigJxtYW51YWxs eeKAnSBkaXNhYmxpbmcgcGFnZSAwIChyZWFkIGNyMywgdGhlbiBwbTRsLCB0aGVuIHBkZeKApikg aW4gYWJvdmUgY29kZTsgYW5vdGhlciBpcyBtb3ZpbmcgYWJvdmUgY29kZSB0byBhbm90aGVyIHBs YWNlIHdoZXJlIHBhZ2luZyBvcGVyYXRpb24gaXMgYXQgaGFuZCwgbGlrZSBEeGVJcGwgb3IgQ1BV IGRyaXZlci4gTXkgcGVyc29uYWwgb3BpbmlvbiBpcyBzZWNvbmQgb25lIHdvdWxkIGJlIGJldHRl ci4gV2hhdOKAmXMgeW91ciBvcGluaW9ucz8gT3IgYW55IGJldHRlciBpZGVhcz8NCj4NCj4gVGhh bmtzLA0KPiBXYW5nLCBKaWFuIEoNCj4NCj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4gU2VudDogV2Vk bmVzZGF5LCBTZXB0ZW1iZXIgMDYsIDIwMTcgNzoxNyBQTQ0KPiBUbzogTGFzemxvIEVyc2VrIDxs ZXJzZWtAcmVkaGF0LmNvbTxtYWlsdG86bGVyc2VrQHJlZGhhdC5jb208bWFpbHRvOmxlcnNla0By ZWRoYXQuY29tJTNjbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tPj4+OyBXYW5nLCBKaWFuIEogPGpp YW4uai53YW5nQGludGVsLmNvbTxtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPG1haWx0bzpq aWFuLmoud2FuZ0BpbnRlbC5jb20lM2NtYWlsdG86amlhbi5qLndhbmdAaW50ZWwuY29tPj4+OyBK dXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPG1haWx0bzpqb3JkYW4u bC5qdXN0ZW5AaW50ZWwuY29tPG1haWx0bzpqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tJTNjbWFp bHRvOmpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+Pj4NCj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBs aXN0cy4wMS5vcmclM2NtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+PjsgS2lubmV5LCBN aWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20lM2NtYWlsdG86 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Pj4NCj4gU3ViamVjdDogUkU6IEFTU0VSVCBpbiBR ZW11VmlkZW9EeGUgZHJpdmVyIGR1cmluZyByZXNldA0KPg0KPiBISQ0KPiBJIHRoaW5rIHRoZSBO VUxMIGRldGVjdGlvbiBmZWF0dXJlIHNob3VsZCAqbmV2ZXIqIGJyZWFrIGFueSBleGlzdGluZyBw bGF0Zm9ybS4NCj4gTm8gcmVhbCBmdW5jdGlvbiBzaG91bGQgYmUgc2tpcHBlZCBmb3IgUGNkTnVs bERldGVjdGlvbi4NCj4NCj4gSWYgSW5zdGFsbFZiZVNoaW0gKCkgaXMgbmVlZGVkIGZvciBDU00s IHdlIHNob3VsZCBhbHdheXMgY2FsbCBJbnN0YWxsVmJlU2hpbSgpIGZvciBDU00uDQo+DQo+IEkg c3VnZ2VzdCBiZWxvdyBvcHRpb25zOg0KPg0KPiAxKSAgICAgICBJbiBPVk1GLCBpZiBDU00gaXMg ZW5hYmxlZCwgZGlzYWJsZSBQY2ROdWxsRGV0ZWN0aW9uLg0KPg0KPiAyKSAgICAgICBJbiBPVk1G LCBpZiBhbnkgZHJpdmVyIG5lZWQgYWNjZXNzIGZpcnN0IDRLIHBhZ2UsIHRoZSBjb2RlIHNob3Vs ZCBleHBsaWNpdCBjYWxsIFNldEF0dHJpYnV0ZSgwLCA0SywgUkVBRHxXUklURSksIGlmIFBjZE51 bGxEZXRlY3Rpb24gaXMgZW5hYmxlZC4NCj4NCj4gRWl0aGVyICMxIG9yICMyIGlzIE9LLg0KPiAj MSBpcyBzaW1wbGUsIGFuZCAjMiBjYW4gaGVscCBkZXRlY3QgbW9yZSBwb3RlbnRpYWwgaXNzdWUu DQo+DQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+DQo+IEZyb206IExhc3psbyBFcnNlayBb bWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciA2 LCAyMDE3IDY6MjEgUE0NCj4gVG86IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29t PG1haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb208bWFpbHRvOmppYW4uai53YW5nQGludGVsLmNv bSUzY21haWx0bzpqaWFuLmoud2FuZ0BpbnRlbC5jb20+Pj47IEp1c3RlbiwgSm9yZGFuIEwgPGpv cmRhbi5sLmp1c3RlbkBpbnRlbC5jb208bWFpbHRvOmpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb208 bWFpbHRvOmpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20lM2NtYWlsdG86am9yZGFuLmwuanVzdGVu QGludGVsLmNvbT4+PjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpq aWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20lM2NtYWlsdG86 amlld2VuLnlhb0BpbnRlbC5jb20+Pj4NCj4gQ2M6IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1h aWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmclM2NtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+PjsgS2lubmV5LCBNaWNoYWVsIEQg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGludGVs LmNvbTxtYWlsdG86bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20lM2NtYWlsdG86bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+Pj4NCj4gU3ViamVjdDogUmU6IEFTU0VSVCBpbiBRZW11VmlkZW9E eGUgZHJpdmVyIGR1cmluZyByZXNldA0KPg0KPiBPbiAwOS8wNi8xNyAxMDoxNSwgV2FuZywgSmlh biBKIHdyb3RlOg0KPj4gSGkgZ3V5cywNCj4+DQo+PiBJIGZvdW5kIGFuIEFTU0VSVCBpc3N1ZSBp biBmdW5jdGlvbiBJbnN0YWxsVmJlU2hpbSgpIGluIFFlbXVWaWRlb0R4ZQ0KPj4gZHJpdmVyIGR1 cmluZyByZXNldC4gVGhlIGFzc2VydCBzdGF0ZW1lbnQgaXMgbGlrZSBiZWxvdy4NCj4+DQo+PiAg ICAgQVNTRVJUIChJbnQweDEwLT5TZWdtZW50ID09IDB4MDAwMCk7DQo+PiAgICAgQVNTRVJUIChJ bnQweDEwLT5PZmZzZXQgID09IDB4MDAwMCk7DQo+Pg0KPj4gVGhpcyBoYXBwZW5lZCBhZnRlciBJ IGhhdmUgZW5hYmxlZCBOVUxMIHBvaW50ZXIgYWNjZXNzIGRldGVjdGlvbg0KPj4gZmVhdHVyZSwg aW4gd2hpY2ggcGFnZSAwICg0SykgIGlzIGRpc2FibGVkLg0KPg0KPiBUaGUgTlVMTCBwb2ludGVy IGFjY2VzcyBkZXRlY3Rpb24gY29uZmxpY3RzIHdpdGggdGhlIFZCRSBzaGltLiBGb3INCj4gaW5z dGFsbGluZyB0aGUgVkJFIHNoaW0sIE9WTUYgaGFzIHRvIHdyaXRlIHRvIHBhZ2UgMCwgb24gcHVy cG9zZS4NCj4NCj4gUGxlYXNlIHNlZSBjb21taXQgOTA4MDMzNDJiMWI2ICgiT3ZtZlBrZzogUWVt dVZpZGVvRHhlOiBJbnQxMGggc3R1YiBmb3INCj4gV2luZG93cyA3ICYgMjAwOCAoc3RkdmdhLCBR WEwpIiwgMjAxNC0wNS0yMCkuDQo+DQo+PiBBbmQgYmVjYXVzZSBvZiBwYWdlIDAgZGlzYWJsZWQs IEkgaGF2ZSB0byBza2lwIHRoZSBtZW1vcnkgY2xlYXJpbmcgZm9yDQo+PiBwYWdlIDAgaW4gRFhF IGNvcmUuDQo+DQo+IEJ5IGRvaW5nIHRoYXQsIHlvdSBpbnZhbGlkYXRlIHRoZSBmb2xsb3dpbmcg Y29tbWVudCBpbiBzYWlkIE9WTUYgY29tbWl0Og0KPg0KPiArICAgIC8vDQo+ICsgICAgLy8gV2Ug bWFuYWdlZCB0byBhbGxvY2F0ZSB0aGUgcGFnZSBhdCB6ZXJvLiBTVk4gcjE0MjE4IGd1YXJhbnRl ZXMgdGhhdCBpdA0KPiArICAgIC8vIGlzIE5VTC1maWxsZWQuDQo+ICsgICAgLy8NCj4gKyAgICBB U1NFUlQgKEludDB4MTAtPlNlZ21lbnQgPT0gMHgwMDAwKTsNCj4gKyAgICBBU1NFUlQgKEludDB4 MTAtPk9mZnNldCAgPT0gMHgwMDAwKTsNCj4NCj4gQmVjYXVzZSBTVk4gcjE0MjE4IHdhcyB3aGF0 IGFkZGVkIHRoZSBjbGVhcmluZyBvZiBwYWdlIDAgdG8gdGhlIERYRQ0KPiBjb3JlLiAoRXhwcmVz c2VkIGFzIGEgZ2l0IGNvbW1pdDogZDQzNmQ1Y2EwOTM2LikNCj4NCj4+IE90aGVyd2lzZSBpdCB3 aWxsIGNhdXNlIHBhZ2UgZmF1bHQgZXhjZXB0aW9uIHRoZXJlLiBJdCBzZWVtcyB0aGF0IFFFTVUN Cj4+IG1heSBjbGVhciBhbGwgaXRzIG1lbW9yeSBhdCBzdGFydHVwLiBTa2lwcGluZyB0aGUgYWN0 aW9uIG9mIGNsZWFyaW5nDQo+PiBwYWdlIDAgaW4gY29yZSB3b24ndCBjYXVzZSBBU1NFUlQgaXNz dWUgaW4gUWVtdVZpZGVvRHhlLCBmb3IgdGhlIGZpcnN0DQo+PiB0aW1lIGJvb3QuIEJ1dCBRZW11 VmlkZW9EeGUgd2lsbCB3cml0ZSBpbnQxMCB2ZWN0b3IgYXQgbWVtb3J5IDB4MTAgYW5kDQo+PiBR RU1VIHdpbGwgbm90IGNsZWFyIGFsbCBpdHMgbWVtb3J5IGR1cmluZyB3YXJtIGJvb3QuIEFTU0VS VCB3aWxsIGJlDQo+PiB0cmlnZ2VyZWQgYWZ0ZXIgcmVzZXQuDQo+DQo+IFFFTVUgZG9lcyBub3Qg Y2xlYXIgZ3Vlc3QgUkFNIGF0IHJlYm9vdCAob3IgUzMgcmVzdW1lKS4NCj4NCj4+IEl0J3MgZWFz eSB0byBmaXggdGhpcyBpc3N1ZSBidXQgdGhlcmUncmUgc29tZSBzdWJ0bGUgc2l0dWF0aW9ucyB3 aGljaA0KPj4gSSdtIG5vdCBxdWl0ZSBjZXJ0YWluLiBJJ2QgbGlrZSB5b3VyIG9waW5pb25zIGZv ciB0aGVtLg0KPj4NCj4+IEhlcmUncmUgbXkgdGhvdWdodHMgb24gc2V2ZXJhbCBzb2x1dGlvbnM6 DQo+PiBhKSBSZW1vdmUgdGhlIEFTU0VSVCBzdGF0ZW1lbnQgaW4gSW5zdGFsbFZiZVNoaW0oKS4N Cj4NCj4gTm90IGEgZ29vZCBpZGVhLg0KPg0KPj4gQnV0IEknbSBzdXJlIGlmIGl0IGlzIHNhZmUg dG8gZG8gc28gYmVjYXVzZSBJIGRvbid0IHF1aXRlIHVuZGVyc3RhbmQNCj4+IHRoZSBwdXJwb3Nl IG9mIHRoZSBBU1NFUlQuDQo+DQo+IFRoZSBBU1NFUlQgZXhwcmVzc2VzIG91ciBiZWxpZWYgdGhh dCwgYWZ0ZXIgd2UgbWFuYWdlIHRvICphbGxvY2F0ZSogcGFnZQ0KPiAwLCB3ZSBjYW4gZnJlZWx5 IHdyaXRlIHRoZSByZWFsIG1vZGUgSW50MHgxMCB2ZWN0b3IgdGhlcmUsIHdpdGhvdXQNCj4gb3Zl cndyaXRpbmcgYW55dGhpbmcgZWxzZS4NCj4NCj4+IGIpIEluc3RlYWQgb2Ygc2tpcHBpbmcgY2xl YXJpbmcgcGFnZSAwLCBlbmFibGUgaXQsIGRvIGNsZWFyaW5nIGFuZA0KPj4gdGhlbiBkaXNhYmxl IGl0LiBUaGUgcHJvYmxlbSBoZXJlIGlzIHRoYXQgQ1BVIGFyY2ggcHJvdG9jb2wgaXMgbm90DQo+ PiByZWFkeSBhdCB0aGF0IHRpbWUuIEkgaGF2ZSB0byAibWFudWFsbHkiIGRvIHBhZ2Ugb3BlcmF0 aW9uLCB3aGljaA0KPj4gbWlnaHQgYmUgbm9uLXBvcnRhYmxlIGFuZCBhIGxpdHRsZSBiaXQgb2Rk IGluIERYRSBjb3JlLg0KPj4gYykgTW92ZSBjb2RlIGNsZWFyaW5nIHBhZ2UgMCBmcm9tIERYRSBj b3JlIHRvIGFub3RoZXIgcGxhY2Ugd2hlcmV2ZXINCj4+IGFwcHJvcHJpYXRlLCBsaWtlIER4ZUlw bCBvciBjcHUgZHJpdmVyLiBCdXQgSSB0aGluayB0aGVyZSdzIGEgZ29vZA0KPj4gcmVhc29uIHRv IHB1dCBjb2RlIHRoZXJlIGJlZm9yZS4NCj4NCj4gSSdtIG5vdCBzdXJlIGhvdyB0aGUgTlVMTCBw b2ludGVyIGFjY2VzcyBkZXRlY3Rpb24gaXMgZW5hYmxlZC4gSXMgaXQNCj4gZW5hYmxlZCBieSBh IFBDRD8NCj4NCj4gSG0sIHllcywgaXQgc2VlbXMsIGZyb20geW91ciBwYXRjaA0KPg0KPiAgIFtl ZGsyXSBbUEFUQ0ggMS8yXSBJbXBsZW1lbnQgTlVMTCBwb2ludGVyIGRldGVjdGlvbiBmb3IgRURL LUlJIENvcmUNCj4NCj4gdGhhdCB0aGUgUENEIGlzIGNhbGxlZA0KPg0KPiAgIGdFZmlNZGVNb2R1 bGVQa2dUb2tlblNwYWNlR3VpZC5QY2ROdWxsUG9pbnRlckRldGVjdGlvbg0KPg0KPiBJIGNhbiBz ZWUgaW4gdGhhdCBwYXRjaCB0aGF0IHRoZSBEWEUgY29yZSBpcyB1cGRhdGVkICpub3QqIHRvIGNs ZWFyIHBhZ2UNCj4gMCBpZiB0aGUgUENEIGlzIHNldCB0byBUUlVFLiBUaGF0IG1ha2VzIHNlbnNl Lg0KPg0KPiBIb3dldmVyLCBPVk1GIHNob3VsZCBhbHNvIGJlIHVwZGF0ZWQgdG8gc2tpcCB0aGUg VkJFIHNoaW0gaW5zdGFsbGF0aW9uDQo+IGlmIHRoZSBQQ0QgaXMgc2V0IHRvIFRSVUUuIE5hbWVs eSwgaWYgdGhlIFBDRCBpcyBzZXQgdG8gVFJVRSwgdGhlbiB3ZQ0KPiBzaW1wbHkgY2Fubm90IHB1 dCB0aGUgbGVnYWN5IEludDB4MTAgdmVjdG9yIGluIHBsYWNlLCBzbyB3ZSBzaG91bGRuJ3QNCj4g ZXZlbiB0cnkuDQo+DQo+IFBsZWFzZSBleHRlbmQgeW91ciBvcmlnaW5hbCBwYXRjaCBzZXQgd2l0 aCBhIHBhdGNoIGZvciBPdm1mUGtnLiBJbiB0aGUNCj4gZmlsZSAiT3ZtZlBrZy9RZW11VmlkZW9E eGUvRHJpdmVyLmMiLCBsb2NhdGUgdGhlIEluc3RhbGxWYmVTaGltKCkgY2FsbA0KPiBzaXRlOg0K Pg0KPj4gI2lmIGRlZmluZWQgTURFX0NQVV9JQTMyIHx8IGRlZmluZWQgTURFX0NQVV9YNjQNCj4+ ICAgaWYgKFByaXZhdGUtPlZhcmlhbnQgPT0gUUVNVV9WSURFT19CT0NIU19NTUlPIHx8DQo+PiAg ICAgICBQcml2YXRlLT5WYXJpYW50ID09IFFFTVVfVklERU9fQk9DSFMpIHsNCj4+ICAgICBJbnN0 YWxsVmJlU2hpbSAoQ2FyZC0+TmFtZSwgUHJpdmF0ZS0+R3JhcGhpY3NPdXRwdXQuTW9kZS0+RnJh bWVCdWZmZXJCYXNlKTsNCj4+ICAgfQ0KPj4gI2VuZGlmDQo+DQo+IGFuZCBwbGVhc2Ugc2tpcCB0 aGUgY2FsbCBpZiB0aGUgUENEIGlzIHNldCB0byBUUlVFOg0KPg0KPj4gI2lmIGRlZmluZWQgTURF X0NQVV9JQTMyIHx8IGRlZmluZWQgTURFX0NQVV9YNjQNCj4+ICAgaWYgKCFGZWF0dXJlUGNkR2V0 IChQY2ROdWxsUG9pbnRlckRldGVjdGlvbikgJiYNCj4+ICAgICAgIChQcml2YXRlLT5WYXJpYW50 ID09IFFFTVVfVklERU9fQk9DSFNfTU1JTyB8fA0KPj4gICAgICAgIFByaXZhdGUtPlZhcmlhbnQg PT0gUUVNVV9WSURFT19CT0NIUykpIHsNCj4+ICAgICBJbnN0YWxsVmJlU2hpbSAoQ2FyZC0+TmFt ZSwgUHJpdmF0ZS0+R3JhcGhpY3NPdXRwdXQuTW9kZS0+RnJhbWVCdWZmZXJCYXNlKTsNCj4+ICAg fQ0KPj4gI2VuZGlmDQo+DQo+IE5vdywgdGhlIGNvbnNlcXVlbmNlIG9mIHRoaXMgd291bGQgYmUg YSB3b3JraW5nIE9WTUYgYnVpbGQsIGJ1dCBpdCB3b3VsZA0KPiBhbHNvIGJyZWFrIGJvb3Rpbmcg VUVGSSBXaW5kb3dzIDcgb24gT1ZNRi4gVGhlcmVmb3JlLCBwbGVhc2UgYXBwZW5kDQo+ICphbm90 aGVyKiBwYXRjaCB0byB5b3VyIHBhdGNoIHNldCwgc2V0dGluZyB0aGUgRmVhdHVyZSBQQ0QgdG8g RkFMU0UgaW4NCj4gYWxsIHRocmVlIE9WTUYgRFNDIGZpbGVzOg0KPg0KPiAtIE92bWZQa2cvT3Zt ZlBrZ0lhMzIuZHNjDQo+IC0gT3ZtZlBrZy9Pdm1mUGtnSWEzMlg2NC5kc2MNCj4gLSBPdm1mUGtn L092bWZQa2dYNjQuZHNjDQo+DQo+IFdlIGNhbm5vdCBicmVhayBXaW5kb3dzIDcgYm9vdGluZyBp biB1cHN0cmVhbSBPVk1GLiBJZiBzb21lb25lIHJlYWxseQ0KPiB3YW50cyB0aGUgbnVsbCBwb2lu dGVyIGRldGVjdGlvbiBpbiBPVk1GIChhbmQgZG9lc24ndCBuZWVkIFdpbmRvd3MgNyBmb3INCj4g c3VyZSksIHRoZXkgY2FuIHBhdGNoIHRoZSBEU0MgZmlsZXMsIG9yIGVsc2UgcGFzcyB0aGUNCj4N Cj4gICAtLXBjZD1nRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTnVsbFBvaW50ZXJE ZXRlY3Rpb249VFJVRQ0KPg0KPiBvcHRpb24gdG8gdGhlICJidWlsZCIgdXRpbGl0eS4NCj4NCj4g Li4uIEknbSBub3cgc2VlaW5nIGluIHRoZSBvcmlnaW5hbCBkaXNjdXNzaW9uIHRoYXQgcGVyaGFw cyB5b3Ugd2lsbA0KPiBpbnRyb2R1Y2UgYSBiaXRtYXAgaW5zdGVhZCAob25lIGJpdCBwZXIgZmly bXdhcmUgcGhhc2UpLiBUaGF0J3MgT0sgd2l0aA0KPiBtZTsgcGxlYXNlIHJlaW50ZXJwcmV0IGFs bCBvZiB0aGUgYWJvdmUgd2l0aCB0aGUgIkRYRSBiaXQiIHRoZW4uDQo+DQo+IFdoZW4geW91IHBv c3QgdGhlIG5leHQgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggc2V0LCBwbGVhc2UgQ0MgSm9yZGFuIGFu ZA0KPiBteXNlbGYgb24gdGhlIE92bWZQa2cgcGF0Y2hlcy4NCj4NCj4gVGhhbmsgeW91IQ0KPiBM YXN6bG8NCj4NCg==