From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38403) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBvsc-0004Fu-JB for qemu-devel@nongnu.org; Tue, 20 Aug 2013 20:02:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VBvsY-0007xc-TF for qemu-devel@nongnu.org; Tue, 20 Aug 2013 20:02:30 -0400 From: Ben Guthro Date: Wed, 21 Aug 2013 00:02:13 +0000 Message-ID: References: <33183CC9F5247A488A2544077AF190207EF6BEC3@szxeml538-mbx.china.huawei.com> <33183CC9F5247A488A2544077AF190207EF6BF06@szxeml538-mbx.china.huawei.com> <51F24949.4070109@suse.de> <51F24D24.4020201@redhat.com> <20130727115118.GM2924@reaktio.net> <33183CC9F5247A488A2544077AF190207EF6F2CC@szxeml538-mbs.china.huawei.com> <20130729105810.GR2924@reaktio.net> <33183CC9F5247A488A2544077AF19020815935E0@SZXEMA503-MBS.china.huawei.com> <20130820194526.GK12037@phenom.dumpdata.com> In-Reply-To: <20130820194526.GK12037@phenom.dumpdata.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <83D90632647B2B4DBD90C0C431A9E9A5@citrix.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] [Xen-devel] Cirrus VGA slow screen update, show blank screen last 13s or so for windows XP guest List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Konrad Rzeszutek Wilk Cc: "ggrebus@virtualiron.com" , Yangxiaowei , Hanweidong , "vgabios-developers@nongnu.org" , Yanqiangjun , Ian Jackson , "qemu-devel@nongnu.org" , =?utf-8?B?UGFzaSBLw6Rya2vDpGluZW4=?= , Ben Guthro , "bguthro@virtualron.com" , "Gonglei (Arei)" , Gerd Hoffmann , Anthony Liguori , Luonengjun , "keir.fraser@citrix.com" , "xen-devel@lists.xen.org" , =?utf-8?B?QW5kcmVhcyBGw6RyYmVy?= , "Huangweidong (Hardware)" DQpPbiBBdWcgMjAsIDIwMTMsIGF0IDM6NDUgUE0sIEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4NCiB3cm90ZToNCg0KPiBPbiBTYXQsIEF1ZyAxNywgMjAxMyBh dCAwOTowNDoyOUFNICswMDAwLCBHb25nbGVpIChBcmVpKSB3cm90ZToNCj4+IEhpLA0KPj4gVGhl IGZ1bmRhbWVudGFsIHJlYXNvbiBpcyB0cmFkaXRpb25hbCBxZW11LWRtIGFuZCB1cHN0cmVhbSBx ZW11IHVzaW5nIGEgZGlmZmVyZW50IHZnYWJpb3MtY2lycnVzLmJpbiwNCj4+IHFlbXUtZG0gaXMg dXNpbmcgeGVuLTQuMS4yL3Rvb2xzL2Zpcm13YXJlL3ZnYWJpb3MvIFZHQUJJT1MtbGdwbC1sYXRl c3QuY2lycnVzLmJpbiwgDQo+PiBidXQgdXBzdHJlYW0gcWVtdSBpcyB1c2luZyBxZW11LTEuMi4y L3BjLWJpb3MvdmdhYmlvcy1jaXJydXMuYmluDQo+PiANCj4+IHRoZSBwaXZvdGFsIHBhdGNoIGlz IDoNCj4+IA0KPj4gIyBIRyBjaGFuZ2VzZXQgcGF0Y2gNCj4+ICMgVXNlciBLZWlyIEZyYXNlciA8 a2VpckB4ZW5zb3VyY2UuY29tPg0KPj4gIyBEYXRlIDExOTMzOTE2NjcgLTM2MDANCj4+ICMgTm9k ZSBJRCBkMzFmNjNkYjVmMWU4OGRlYWRjNTQ2MWFkZGEwN2I3N2MyMjg3M2Q3DQo+PiAjIFBhcmVu dCAgNDEzMTA3ZmE0OWE1MGU1YzYxYWMzOTBkYzE4NzBkODk5NWIyYTAxMg0KPj4gDQo+PiB4ODYs IGh2bTogQWxsb3cgQ2lycnVzIFZHQSBCSU9TIHRvIGNsZWFyIGZyYW1lYnVmZmVyIHdpdGggbWlu aW1hbCBQSU8gd3JpdGVzLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZW4gR3V0aHJvIDxiZ3V0 aHJvQHZpcnR1YWxyb24uY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogR2FyeSBHcmVidXMgPGdncmVi dXNAdmlydHVhbGlyb24uY29tPg0KPiANCj4gQmVuJ3MgbmV3IGFkZHJlc3MgaXMgPGJlbmphbWlu Lmd1dGhyb0BjaXRyaXguY29tPi4gQ0MtaW5nIGhpbSBoZXJlLg0KDQpGV0lXLCBJIHRvb2sgR2Fy eSdzIHBhdGNoLCBhbmQgbWFkZSBpdCBhcHBseSB0byB1bnN0YWJsZSwgYXQgdGhhdCB0aW1lLg0K SGUgd2FzIHRoZSBwcmltYXJ5IGRldmVsb3BlciwgaW4gdGhhdCBjYXNlLg0KDQpUaGF0J3MgaG93 IEkgcmVjYWxsIGl0LCBhbnlob3cuLi5mcm9tIDYgeWVhcnMgYWdvLg0KDQpJIGRvbid0IGhhdmUg R2FyeSdzIG5ldyBjb250YWN0IGluZm8uDQoNClJlZ2FyZHMsDQpCZW4NCg0KPiANCj4+IA0KPj4g ZGlmZiAtciA0MTMxMDdmYTQ5YTUgLXIgZDMxZjYzZGI1ZjFlIHRvb2xzL2Zpcm13YXJlL3ZnYWJp b3MvY2xleHQuYw0KPj4gLS0tIGEvdG9vbHMvZmlybXdhcmUvdmdhYmlvcy9jbGV4dC5jCUZyaSBP Y3QgMjYgMTA6MzM6MTIgMjAwNyArMDEwMA0KPj4gKysrIGIvdG9vbHMvZmlybXdhcmUvdmdhYmlv cy9jbGV4dC5jCUZyaSBPY3QgMjYgMTA6NDE6MDcgMjAwNyArMDEwMA0KPj4gQEAgLTE0ODksMTQg KzE0ODksMjYgQEANCj4+ICAgbW92IGR4LCAjMHgzY2UNCj4+ICAgb3V0IGR4LCBheA0KPj4gICBw dXNoIGF4DQo+PiAtICBtb3YgY3gsICMweGEwMDANCj4+IC0gIG1vdiBlcywgY3gNCj4+IC0gIHhv ciBkaSwgZGkNCj4+ICsNCj4+ICs7OyBXaW5kb3dzIFZpc3RhIGFwcGVhcnMgdG8gYmUgZW11bGF0 aW5nIHRoaXMgc2VxdWVuY2UgYXMgcGFydCBvZiBjaGFuZ2luZyANCj4+ICs7OyBzY3JlZW4gcmVz b2x1dGlvbiwgYnV0IGl0IGdlbmVyYXRlcyA0MDk2IHdyaXRlcyBwZXIgaXRlcmF0aW9uLg0KPj4g Kzs7IEluc3RlYWQsIHVzZSBhIG1hZ2ljIHJlZ2lzdGVyIHNlcXVlbmNlIHRvIHdyaXRlIHRoZSB3 aG9sZSBiYW5rLg0KPj4gKzs7bW92IGN4LCAjMHhhMDAwDQo+PiArOzttb3YgZXMsIGN4DQo+PiAr Ozt4b3IgZGksIGRpDQo+PiArOzttb3YgYXgsIHNpDQo+PiArOzttb3YgY3gsICM4MTkyDQo+PiAr OztjbGQNCj4+ICs7O3JlcA0KPj4gKzs7ICAgIHN0b3N3DQo+PiAgIG1vdiBheCwgc2kNCj4+IC0g IG1vdiBjeCwgIzgxOTINCj4+IC0gIGNsZA0KPj4gLSAgcmVwDQo+PiAtICAgICAgc3Rvc3cNCj4+ ICsgIHNobCBheCwgIzgNCj4+ICsgIG1vdiBhbCwgIzB4ZmUNCj4+ICsgIG91dCBkeCwgYXgJOzsg TG93IGJ5dGUgb2YgdmFsdWUgdG8gYmUgd3JpdHRlbiB0byB0aGUgYmFuaw0KPj4gKyAgbW92IGF4 LCBzaQ0KPj4gKyAgbW92IGFsLCAjMHhmZiAgDQo+PiArICBvdXQgZHgsIGF4ICAgIDs7IEhpZ2gg Ynl0ZSBhbmQgdHJpZ2dlciB0aGUgd3JpdGUNCj4+ICsNCj4+ICAgcG9wIGF4DQo+PiAgIGluYyBh aA0KPj4gICBjbXAgYWgsIGJsDQo+PiBkaWZmIC1yIDQxMzEwN2ZhNDlhNSAtciBkMzFmNjNkYjVm MWUgdG9vbHMvaW9lbXUvaHcvY2lycnVzX3ZnYS5jDQo+PiAtLS0gYS90b29scy9pb2VtdS9ody9j aXJydXNfdmdhLmMJRnJpIE9jdCAyNiAxMDozMzoxMiAyMDA3ICswMTAwDQo+PiArKysgYi90b29s cy9pb2VtdS9ody9jaXJydXNfdmdhLmMJRnJpIE9jdCAyNiAxMDo0MTowNyAyMDA3ICswMTAwDQo+ PiBAQCAtMjk0LDYgKzI5NCw3IEBADQo+PiANCj4+IHN0YXRpYyB2b2lkIGNpcnJ1c19iaXRibHRf cmVzZXQoQ2lycnVzVkdBU3RhdGUgKnMpOw0KPj4gc3RhdGljIHZvaWQgY2lycnVzX3VwZGF0ZV9t ZW1vcnlfYWNjZXNzKENpcnJ1c1ZHQVN0YXRlICpzKTsNCj4+ICtzdGF0aWMgdm9pZCBjaXJydXNf dmdhX21lbV93cml0ZXcodm9pZCAqb3BhcXVlLCB0YXJnZXRfcGh5c19hZGRyX3QgYWRkciwgdWlu dDMyX3QgdmFsKTsNCj4+IA0KPj4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKg0KPj4gICoNCj4+IEBAIC0xNDk3LDYgKzE0OTgsMTcgQEANCj4+ICAgICBjYXNlIDB4MzE6 CQkJLy8gQkxUIFNUQVRVUy9TVEFSVA0KPj4gCWNpcnJ1c193cml0ZV9iaXRibHQocywgcmVnX3Zh bHVlKTsNCj4+IAlicmVhazsNCj4+ICsNCj4+ICsJLy8gRXh0ZW5zaW9uIHRvIGFsbG93IEJJT1Mg dG8gY2xlYXIgMTZLIFZSQU0gYmFuayBpbiBvbmUgb3BlcmF0aW9uDQo+PiArICAgIGNhc2UgMHhG RToNCj4+ICsJcy0+Z3JbcmVnX2luZGV4XSA9IHJlZ192YWx1ZTsgIC8vIExvd2VyIGJ5dGUgb2Yg dmFsdWUgdG8gYmUgd3JpdHRlbg0KPj4gKwlicmVhazsNCj4+ICsgICAgY2FzZSAweEZGOiB7DQo+ PiArCXRhcmdldF9waHlzX2FkZHJfdCBhZGRyOw0KPj4gKwlmb3IgKGFkZHIgPSAweGEwMDAwOyBh ZGRyIDwgMHhhNDAwMDsgYWRkciArPSAyKQ0KPj4gKwkgICAgY2lycnVzX3ZnYV9tZW1fd3JpdGV3 KHMsIGFkZHIsIChyZWdfdmFsdWUgPDwgOCkgfCBzLT5nclsweEZFXSk7DQo+PiArCX0NCj4+ICsJ YnJlYWs7DQo+PiAgICAgZGVmYXVsdDoNCj4+ICNpZmRlZiBERUJVR19DSVJSVVMNCj4+IAlwcmlu dGYoImNpcnJ1czogb3V0cG9ydCBncl9pbmRleCAlMDJ4LCBncl92YWx1ZSAlMDJ4XG4iLCByZWdf aW5kZXgsDQo+PiANCj4+IEJ5IHJlcGxhY2luZyB0aGUgdmdhYmlvcy1jaXJydXMuYmluLCB0aGUg d2luZG93cyBYUCBndWVzdCBzY3JlZW4gdXBkYXRpbmcgaXMgZmFzdCB3aXRoIHVwc3RyZWFtIHFl bXUuDQo+PiANCj4+IEFuZCBJIHRlc3QgdGhlIGxhdGVzdCB2Z2FiaW9zLTAuN2EgY29tZSBmcm9t IA0KPj4gaHR0cDovL3d3dy5ub25nbnUub3JnL3ZnYWJpb3MvI0RPV05MT0FEDQo+PiBidXQgdGhl IHByb2JsZW0gb2YgYmxhbmsgc2NyZWVuIHJlbWFpbi4NCj4+IA0KPj4gQmVzdCBSZWdhcmRzIQ0K Pj4gLUdvbmdsZWkNCj4+IA0KPj4gDQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ PiBGcm9tOiBHb25nbGVpIChBcmVpKQ0KPj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDE2LCAyMDEz IDU6MTAgUE0NCj4+PiBUbzogR29uZ2xlaSAoQXJlaSk7ICdQYXNpIEvDpHJra8OkaW5lbicNCj4+ PiBDYzogJ0dlcmQgSG9mZm1hbm4nOyAnQW5kcmVhcyBGw6RyYmVyJzsgSGFud2VpZG9uZzsgTHVv bmVuZ2p1bjsNCj4+PiAncWVtdS1kZXZlbEBub25nbnUub3JnJzsgJ3hlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnJzsgJ0FudGhvbnkgTGlndW9yaSc7DQo+Pj4gSHVhbmd3ZWlkb25nIChIYXJkd2FyZSk7 ICdJYW4uSmFja3NvbkBldS5jaXRyaXguY29tJzsgJ0FudGhvbnkgTGlndW9yaSc7DQo+Pj4gWWFu cWlhbmdqdW47IFlhbmd4aWFvd2VpDQo+Pj4gU3ViamVjdDogUkU6IFtYZW4tZGV2ZWxdIFtRZW11 LWRldmVsXSBDaXJydXMgVkdBIHNsb3cgc2NyZWVuIHVwZGF0ZSwgc2hvdw0KPj4+IGJsYW5rIHNj cmVlbiBsYXN0IDEzcyBvciBzbyBmb3Igd2luZG93cyBYUCBndWVzdA0KPj4+IA0KPj4+IEhpLCBh bGwNCj4+PiBJIGNvbXBhcmVkIHRoZSB0cmFkaXRpb25hbCBxZW11LWRtIGFuZCB1cHN0cmVhbSBx ZW11LA0KPj4+IGFuZCBJIGZvdW5kIHRoZSB1cHN0cmVhbSBxZW11IHdpbGwgY3JlYXRlIHRoZSBl eHBhbnNpb24gUk9NIGF0IGYzMDAwMDAwLA0KPj4+IGJ1dCBxZW11LWRtIGRvbid0Lg0KPj4+IHRo ZSBkZXRhaWxzIGFzIGJlbG93IChieSAibHNwY2kgLXZubm4iKToNCj4+PiANCj4+PiAxKSB0cmFk aXRpb25hbCBxZW11LWRtOg0KPj4+IDAwOjAyLjAgVkdBIGNvbXBhdGlibGUgY29udHJvbGxlciBb MDMwMF06IENpcnJ1cyBMb2dpYyBHRCA1NDQ2IFsxMDEzOjAwYjhdDQo+Pj4gKHByb2ctaWYgMDAg W1ZHQSBjb250cm9sbGVyXSkNCj4+PiAJU3Vic3lzdGVtOiBYZW5Tb3VyY2UsIEluYy4gRGV2aWNl IFs1ODUzOjAwMDFdDQo+Pj4gCUZsYWdzOiBidXMgbWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5j eSAwLCBJUlEgMTENCj4+PiAJTWVtb3J5IGF0IGYwMDAwMDAwICgzMi1iaXQsIHByZWZldGNoYWJs ZSkgW3NpemU9MzJNXQ0KPj4+IAlNZW1vcnkgYXQgZjMwMDAwMDAgKDMyLWJpdCwgbm9uLXByZWZl dGNoYWJsZSkgW3NpemU9NEtdDQo+Pj4gCUtlcm5lbCBtb2R1bGVzOiBjaXJydXNmYg0KPj4+IA0K Pj4+IDIpIHVwc3RyZWFtIHFlbXU6DQo+Pj4gMDA6MDIuMCBWR0EgY29tcGF0aWJsZSBjb250cm9s bGVyIFswMzAwXTogQ2lycnVzIExvZ2ljIEdEIDU0NDYgWzEwMTM6MDBiOF0NCj4+PiAocHJvZy1p ZiAwMCBbVkdBIGNvbnRyb2xsZXJdKQ0KPj4+IAlTdWJzeXN0ZW06IFhlblNvdXJjZSwgSW5jLiBE ZXZpY2UgWzU4NTM6MDAwMV0NCj4+PiAJUGh5c2ljYWwgU2xvdDogMg0KPj4+IAlGbGFnczogYnVz IG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDExDQo+Pj4gCU1lbW9yeSBhdCBm MDAwMDAwMCAoMzItYml0LCBwcmVmZXRjaGFibGUpIFtzaXplPTMyTV0NCj4+PiAJTWVtb3J5IGF0 IGYzMDIwMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTRLXQ0KPj4+IAlFeHBh bnNpb24gUk9NIGF0IGYzMDAwMDAwIFtkaXNhYmxlZF0gW3NpemU9NjRLXQ0KPj4+IAlLZXJuZWwg bW9kdWxlczogY2lycnVzZmINCj4+PiANCj4+PiBJIHRyaWVkIHRvIHNpbXBseSBkZWxldGUgdGhl IGV4cGFuc2lvbiBST00gYXQgZnVuY3Rpb24gcGNpX2FkZF9vcHRpb25fcm9tLA0KPj4+IHN1Y2gg YXMNCj4+PiANCj4+PiAgLy9wY2lfcmVnaXN0ZXJfYmFyKHBkZXYsIFBDSV9ST01fU0xPVCwgMCwg JnBkZXYtPnJvbSk7DQo+Pj4gDQo+Pj4gYnV0IHRoZSBWTkMgdmlld2VyIG9ubHkgY2FuIHNlZSBi bGFjayBzY3JlZW4sIGJ1dCBSRFAgd29ya3Mgd2VsbC4NCj4+PiBBbnkgaWRlYXMgYWJvdXQgdGhl IGNpcnJ1cydzIGV4cGFuc2lvbiBST00/DQo+Pj4gU2xvdyBzY3JlZW4gcmVmcmVzaCBoYXMgYW55 IHJlbGF0aW9uc2hpcCB3aXRoIGNpcnJ1cydzIGV4cGFuc2lvbiBST00/DQo+Pj4gVGhhbmsgeW91 IGluIGFkdmFuY2XvvIENCj4+PiANCj4+PiBCVFcsIEkgYWRkZWQgc29tZSBsb2cgaW4gc3Rkdmdh LmMoeGVuLTQuMS4yL3hlbi9hcmNoL3g4Ni9odm0pOg0KPj4+IHN0YXRpYyBpbnQgc3RkdmdhX2lu dGVyY2VwdF9tbWlvKGlvcmVxX3QgKnApDQo+Pj4gew0KPj4+ICAgIHN0cnVjdCBkb21haW4gKmQg PSBjdXJyZW50LT5kb21haW47DQo+Pj4gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+ YXJjaC5odm1fZG9tYWluLnN0ZHZnYTsNCj4+PiAgICBpbnQgYnVmID0gMCwgcmM7DQo+Pj4gICAg c3RhdGljIGludCBjb3VudF8xID0gMDsNCj4+PiAgICBzdGF0aWMgaW50IGNvdW50XzIgPSAwOw0K Pj4+IA0KPj4+ICAgIGlmICggcC0+c2l6ZSA+IDggKQ0KPj4+ICAgIHsNCj4+PiAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsICJpbnZhbGlkIG1taW8gc2l6ZSAlZFxuIiwgKGludClwLT5z aXplKTsNCj4+PiAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOw0KPj4+ICAgIH0N Cj4+PiANCj4+PiAgICBzcGluX2xvY2soJnMtPmxvY2spOw0KPj4+IA0KPj4+ICAgIGlmICggcy0+ c3RkdmdhICYmIHMtPmNhY2hlICkNCj4+PiAgICB7DQo+Pj4gICAgICAgIHN3aXRjaCAoIHAtPnR5 cGUgKQ0KPj4+ICAgICAgICB7DQo+Pj4gICAgICAgIGNhc2UgSU9SRVFfVFlQRV9DT1BZOg0KPj4+ ICAgICAgICAgICAgYnVmID0gbW1pb19tb3ZlKHMsIHApOw0KPj4+ICAgICAgICAgICAgY291bnRf MSsrOw0KPj4+ICAgICAgICAgICAgaWYgKGNvdW50XzEgJSAxMDAwID09IDApDQo+Pj4gICAgICAg ICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICIgPXV2cD0gZW50ZXIgbW1pb19tb3Zl LA0KPj4+IGNvdW50XzE9JWRcbiIsIGNvdW50XzEpOw0KPj4+ICAgICAgICAgICAgaWYgKCAhYnVm ICkNCj4+PiAgICAgICAgICAgICAgICBzLT5jYWNoZSA9IDA7DQo+Pj4gICAgICAgICAgICBicmVh azsNCj4+PiAgICAgICAgZGVmYXVsdDoNCj4+PiAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19X QVJOSU5HLCAidW5zdXBwb3J0ZWQgbW1pbyByZXF1ZXN0DQo+Pj4gdHlwZTolZCAiDQo+Pj4gICAg ICAgICAgICAgICAgICAgICAiYWRkcjoweCUwNHggZGF0YToweCUwNHggc2l6ZTolZCBjb3VudDol ZA0KPj4+IHN0YXRlOiVkICINCj4+PiAgICAgICAgICAgICAgICAgICAgICJpc3B0cjolZCBkaXI6 JWQgZGY6JWRcbiIsDQo+Pj4gICAgICAgICAgICAgICAgICAgICBwLT50eXBlLCAoaW50KXAtPmFk ZHIsIChpbnQpcC0+ZGF0YSwgKGludClwLT5zaXplLA0KPj4+ICAgICAgICAgICAgICAgICAgICAg KGludClwLT5jb3VudCwgcC0+c3RhdGUsDQo+Pj4gICAgICAgICAgICAgICAgICAgICBwLT5kYXRh X2lzX3B0ciwgcC0+ZGlyLCBwLT5kZik7DQo+Pj4gICAgICAgICAgICBzLT5jYWNoZSA9IDA7DQo+ Pj4gICAgICAgIH0NCj4+PiAgICB9DQo+Pj4gICAgZWxzZQ0KPj4+ICAgIHsNCj4+PiAgICAgICAg YnVmID0gKHAtPmRpciA9PSBJT1JFUV9XUklURSk7DQo+Pj4gICAgICAgIGNvdW50XzIrKzsNCj4+ PiAgICAgICAgaWYgKGNvdW50XzIgJSA1MDAwID09IDApDQo+Pj4gICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfV0FSTklORywgIiA+Pj4gdmdhIG1taW8gY291bnRfMj0lZFxuIiwNCj4+PiBjb3Vu dF8yKTsNCj4+PiAgICB9DQo+Pj4gDQo+Pj4gICAgcmMgPSAoYnVmICYmIGh2bV9idWZmZXJlZF9p b19zZW5kKHApKTsNCj4+PiANCj4+PiAgICBzcGluX3VubG9jaygmcy0+bG9jayk7DQo+Pj4gDQo+ Pj4gICAgcmV0dXJuIHJjID8gWDg2RU1VTF9PS0FZIDogWDg2RU1VTF9VTkhBTkRMRUFCTEU7DQo+ Pj4gfQ0KPj4+IA0KPj4+IGFuZCBJIGdvdCB0aGUgYmVsb3cgcmVzdWx0IHdpdGggdXBzdHJlYW0g cWVtdSBhbmQgdHJhbmRpdGlvbmFsIHFlbXUtZG06DQo+Pj4gDQo+Pj4gMSkgdHJhZGl0aW9uYWwg cWVtdS1kbToNCj4+PiAoWEVOKSBzdGR2Z2EuYzoxNTI6ZDIgZW50ZXJpbmcgc3RkdmdhIGFuZCBj YWNoaW5nIG1vZGVzDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlv X21vdmUsIGNvdW50XzE9NDYwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBl bnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYxMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQy ICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYyMDAwDQo+Pj4gKFhFTikgc3Rkdmdh LmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYzMDAwDQo+Pj4gKFhF Tikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY0MDAw DQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50 XzE9NDY1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21v dmUsIGNvdW50XzE9NDY2MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRl ciBtbWlvX21vdmUsIGNvdW50XzE9NDY3MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9 dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY4MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6 NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY5MDAwDQo+Pj4gKFhFTikg c3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDcwMDAwDQo+ Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9 NDcxMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUs IGNvdW50XzE9NDcyMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBt bWlvX21vdmUsIGNvdW50XzE9NDczMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZw PSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDc0MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3 OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDc1MDAwDQo+Pj4gKFhFTikgc3Rk dmdhLmM6MTU2OmQyIGxlYXZpbmcgc3RkdmdhDQo+Pj4gDQo+Pj4gMikgdXBzdHJlYW0gcWVtdToN Cj4+PiAoWEVOKSBzdGR2Z2EuYzoxNTI6ZDEgZW50ZXJpbmcgc3RkdmdhIGFuZCBjYWNoaW5nIG1v ZGVzDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNv dW50XzE9MjMzMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlv X21vdmUsIGNvdW50XzE9MjM0MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBl bnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQx ICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM2MDAwDQo+Pj4gKFhFTikgc3Rkdmdh LmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM3MDAwDQo+Pj4gKFhF Tikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM4MDAw DQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50 XzE9MjM5MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21v dmUsIGNvdW50XzE9MjQwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRl ciBtbWlvX21vdmUsIGNvdW50XzE9MjQxMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9 dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQyMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6 NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQzMDAwDQo+Pj4gKFhFTikg c3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ0MDAwDQo+ Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9 MjQ1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUs IGNvdW50XzE9MjQ2MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBt bWlvX21vdmUsIGNvdW50XzE9MjQ3MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZw PSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ4MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3 OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ5MDAwDQo+Pj4gKFhFTikgc3Rk dmdhLmM6MTU2OmQxIGxlYXZpbmcgc3RkdmdhDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDAwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDA1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDEwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDE1MDAwDQo+Pj4gIC4uLiAuLi4gLy9PbWl0IHNvbWUgc2lt aWxhcg0KPj4+IChYRU4pIHN0ZHZnYS5jOjU5NjpkMSAgPj4+IHZnYSBtbWlvIGNvdW50XzI9MTI1 NzAwMDANCj4+PiAoWEVOKSBzdGR2Z2EuYzo1OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8yPTEy NTc1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+Pj4gdmdhIG1taW8gY291bnRfMj0x MjU4MDAwMA0KPj4+IChYRU4pIHN0ZHZnYS5jOjU5NjpkMSAgPj4+IHZnYSBtbWlvIGNvdW50XzI9 MTI1ODUwMDANCj4+PiAoWEVOKSBzdGR2Z2EuYzo1OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8y PTEyNTkwMDAwDQo+Pj4gDQo+Pj4gVXBzdHJlYW0gcWVtdSBoYXMgbG90J3Mgb2YgTU1JTyBhY2Nl c3MgTWVtb3J5IHJlZ2lvbiAweGEwMDAwfjB4YzAwMDANCj4+PiB0aGFuIHRyYWRpdGlvbmFsIHFl bXUtZG0uDQo+Pj4gDQo+Pj4gQmVzdCBSZWdhcmRzIQ0KPj4+IA0KPj4+IC1Hb25nbGVpDQo+Pj4g DQo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4g WGVuLWRldmVsIG1haWxpbmcgbGlzdA0KPj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCj4+IGh0 dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbA0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Guthro Subject: Re: [Qemu-devel] Cirrus VGA slow screen update, show blank screen last 13s or so for windows XP guest Date: Wed, 21 Aug 2013 00:02:13 +0000 Message-ID: References: <33183CC9F5247A488A2544077AF190207EF6BEC3@szxeml538-mbx.china.huawei.com> <33183CC9F5247A488A2544077AF190207EF6BF06@szxeml538-mbx.china.huawei.com> <51F24949.4070109@suse.de> <51F24D24.4020201@redhat.com> <20130727115118.GM2924@reaktio.net> <33183CC9F5247A488A2544077AF190207EF6F2CC@szxeml538-mbs.china.huawei.com> <20130729105810.GR2924@reaktio.net> <33183CC9F5247A488A2544077AF19020815935E0@SZXEMA503-MBS.china.huawei.com> <20130820194526.GK12037@phenom.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20130820194526.GK12037@phenom.dumpdata.com> Content-Language: en-US Content-ID: <83D90632647B2B4DBD90C0C431A9E9A5@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Konrad Rzeszutek Wilk Cc: "ggrebus@virtualiron.com" , Yangxiaowei , Hanweidong , "vgabios-developers@nongnu.org" , Yanqiangjun , Ian Jackson , "qemu-devel@nongnu.org" , Ben Guthro , "bguthro@virtualron.com" , "Gonglei (Arei)" , Gerd Hoffmann , Anthony Liguori , Luonengjun , "keir.fraser@citrix.com" , "xen-devel@lists.xen.org" , =?utf-8?B?QW5kcmVhcyBGw6RyYmVy?= , "Huangweidong (Hardware)" List-Id: xen-devel@lists.xenproject.org DQpPbiBBdWcgMjAsIDIwMTMsIGF0IDM6NDUgUE0sIEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4NCiB3cm90ZToNCg0KPiBPbiBTYXQsIEF1ZyAxNywgMjAxMyBh dCAwOTowNDoyOUFNICswMDAwLCBHb25nbGVpIChBcmVpKSB3cm90ZToNCj4+IEhpLA0KPj4gVGhl IGZ1bmRhbWVudGFsIHJlYXNvbiBpcyB0cmFkaXRpb25hbCBxZW11LWRtIGFuZCB1cHN0cmVhbSBx ZW11IHVzaW5nIGEgZGlmZmVyZW50IHZnYWJpb3MtY2lycnVzLmJpbiwNCj4+IHFlbXUtZG0gaXMg dXNpbmcgeGVuLTQuMS4yL3Rvb2xzL2Zpcm13YXJlL3ZnYWJpb3MvIFZHQUJJT1MtbGdwbC1sYXRl c3QuY2lycnVzLmJpbiwgDQo+PiBidXQgdXBzdHJlYW0gcWVtdSBpcyB1c2luZyBxZW11LTEuMi4y L3BjLWJpb3MvdmdhYmlvcy1jaXJydXMuYmluDQo+PiANCj4+IHRoZSBwaXZvdGFsIHBhdGNoIGlz IDoNCj4+IA0KPj4gIyBIRyBjaGFuZ2VzZXQgcGF0Y2gNCj4+ICMgVXNlciBLZWlyIEZyYXNlciA8 a2VpckB4ZW5zb3VyY2UuY29tPg0KPj4gIyBEYXRlIDExOTMzOTE2NjcgLTM2MDANCj4+ICMgTm9k ZSBJRCBkMzFmNjNkYjVmMWU4OGRlYWRjNTQ2MWFkZGEwN2I3N2MyMjg3M2Q3DQo+PiAjIFBhcmVu dCAgNDEzMTA3ZmE0OWE1MGU1YzYxYWMzOTBkYzE4NzBkODk5NWIyYTAxMg0KPj4gDQo+PiB4ODYs IGh2bTogQWxsb3cgQ2lycnVzIFZHQSBCSU9TIHRvIGNsZWFyIGZyYW1lYnVmZmVyIHdpdGggbWlu aW1hbCBQSU8gd3JpdGVzLg0KPj4gDQo+PiBTaWduZWQtb2ZmLWJ5OiBCZW4gR3V0aHJvIDxiZ3V0 aHJvQHZpcnR1YWxyb24uY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogR2FyeSBHcmVidXMgPGdncmVi dXNAdmlydHVhbGlyb24uY29tPg0KPiANCj4gQmVuJ3MgbmV3IGFkZHJlc3MgaXMgPGJlbmphbWlu Lmd1dGhyb0BjaXRyaXguY29tPi4gQ0MtaW5nIGhpbSBoZXJlLg0KDQpGV0lXLCBJIHRvb2sgR2Fy eSdzIHBhdGNoLCBhbmQgbWFkZSBpdCBhcHBseSB0byB1bnN0YWJsZSwgYXQgdGhhdCB0aW1lLg0K SGUgd2FzIHRoZSBwcmltYXJ5IGRldmVsb3BlciwgaW4gdGhhdCBjYXNlLg0KDQpUaGF0J3MgaG93 IEkgcmVjYWxsIGl0LCBhbnlob3cuLi5mcm9tIDYgeWVhcnMgYWdvLg0KDQpJIGRvbid0IGhhdmUg R2FyeSdzIG5ldyBjb250YWN0IGluZm8uDQoNClJlZ2FyZHMsDQpCZW4NCg0KPiANCj4+IA0KPj4g ZGlmZiAtciA0MTMxMDdmYTQ5YTUgLXIgZDMxZjYzZGI1ZjFlIHRvb2xzL2Zpcm13YXJlL3ZnYWJp b3MvY2xleHQuYw0KPj4gLS0tIGEvdG9vbHMvZmlybXdhcmUvdmdhYmlvcy9jbGV4dC5jCUZyaSBP Y3QgMjYgMTA6MzM6MTIgMjAwNyArMDEwMA0KPj4gKysrIGIvdG9vbHMvZmlybXdhcmUvdmdhYmlv cy9jbGV4dC5jCUZyaSBPY3QgMjYgMTA6NDE6MDcgMjAwNyArMDEwMA0KPj4gQEAgLTE0ODksMTQg KzE0ODksMjYgQEANCj4+ICAgbW92IGR4LCAjMHgzY2UNCj4+ICAgb3V0IGR4LCBheA0KPj4gICBw dXNoIGF4DQo+PiAtICBtb3YgY3gsICMweGEwMDANCj4+IC0gIG1vdiBlcywgY3gNCj4+IC0gIHhv ciBkaSwgZGkNCj4+ICsNCj4+ICs7OyBXaW5kb3dzIFZpc3RhIGFwcGVhcnMgdG8gYmUgZW11bGF0 aW5nIHRoaXMgc2VxdWVuY2UgYXMgcGFydCBvZiBjaGFuZ2luZyANCj4+ICs7OyBzY3JlZW4gcmVz b2x1dGlvbiwgYnV0IGl0IGdlbmVyYXRlcyA0MDk2IHdyaXRlcyBwZXIgaXRlcmF0aW9uLg0KPj4g Kzs7IEluc3RlYWQsIHVzZSBhIG1hZ2ljIHJlZ2lzdGVyIHNlcXVlbmNlIHRvIHdyaXRlIHRoZSB3 aG9sZSBiYW5rLg0KPj4gKzs7bW92IGN4LCAjMHhhMDAwDQo+PiArOzttb3YgZXMsIGN4DQo+PiAr Ozt4b3IgZGksIGRpDQo+PiArOzttb3YgYXgsIHNpDQo+PiArOzttb3YgY3gsICM4MTkyDQo+PiAr OztjbGQNCj4+ICs7O3JlcA0KPj4gKzs7ICAgIHN0b3N3DQo+PiAgIG1vdiBheCwgc2kNCj4+IC0g IG1vdiBjeCwgIzgxOTINCj4+IC0gIGNsZA0KPj4gLSAgcmVwDQo+PiAtICAgICAgc3Rvc3cNCj4+ ICsgIHNobCBheCwgIzgNCj4+ICsgIG1vdiBhbCwgIzB4ZmUNCj4+ICsgIG91dCBkeCwgYXgJOzsg TG93IGJ5dGUgb2YgdmFsdWUgdG8gYmUgd3JpdHRlbiB0byB0aGUgYmFuaw0KPj4gKyAgbW92IGF4 LCBzaQ0KPj4gKyAgbW92IGFsLCAjMHhmZiAgDQo+PiArICBvdXQgZHgsIGF4ICAgIDs7IEhpZ2gg Ynl0ZSBhbmQgdHJpZ2dlciB0aGUgd3JpdGUNCj4+ICsNCj4+ICAgcG9wIGF4DQo+PiAgIGluYyBh aA0KPj4gICBjbXAgYWgsIGJsDQo+PiBkaWZmIC1yIDQxMzEwN2ZhNDlhNSAtciBkMzFmNjNkYjVm MWUgdG9vbHMvaW9lbXUvaHcvY2lycnVzX3ZnYS5jDQo+PiAtLS0gYS90b29scy9pb2VtdS9ody9j aXJydXNfdmdhLmMJRnJpIE9jdCAyNiAxMDozMzoxMiAyMDA3ICswMTAwDQo+PiArKysgYi90b29s cy9pb2VtdS9ody9jaXJydXNfdmdhLmMJRnJpIE9jdCAyNiAxMDo0MTowNyAyMDA3ICswMTAwDQo+ PiBAQCAtMjk0LDYgKzI5NCw3IEBADQo+PiANCj4+IHN0YXRpYyB2b2lkIGNpcnJ1c19iaXRibHRf cmVzZXQoQ2lycnVzVkdBU3RhdGUgKnMpOw0KPj4gc3RhdGljIHZvaWQgY2lycnVzX3VwZGF0ZV9t ZW1vcnlfYWNjZXNzKENpcnJ1c1ZHQVN0YXRlICpzKTsNCj4+ICtzdGF0aWMgdm9pZCBjaXJydXNf dmdhX21lbV93cml0ZXcodm9pZCAqb3BhcXVlLCB0YXJnZXRfcGh5c19hZGRyX3QgYWRkciwgdWlu dDMyX3QgdmFsKTsNCj4+IA0KPj4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKg0KPj4gICoNCj4+IEBAIC0xNDk3LDYgKzE0OTgsMTcgQEANCj4+ICAgICBjYXNlIDB4MzE6 CQkJLy8gQkxUIFNUQVRVUy9TVEFSVA0KPj4gCWNpcnJ1c193cml0ZV9iaXRibHQocywgcmVnX3Zh bHVlKTsNCj4+IAlicmVhazsNCj4+ICsNCj4+ICsJLy8gRXh0ZW5zaW9uIHRvIGFsbG93IEJJT1Mg dG8gY2xlYXIgMTZLIFZSQU0gYmFuayBpbiBvbmUgb3BlcmF0aW9uDQo+PiArICAgIGNhc2UgMHhG RToNCj4+ICsJcy0+Z3JbcmVnX2luZGV4XSA9IHJlZ192YWx1ZTsgIC8vIExvd2VyIGJ5dGUgb2Yg dmFsdWUgdG8gYmUgd3JpdHRlbg0KPj4gKwlicmVhazsNCj4+ICsgICAgY2FzZSAweEZGOiB7DQo+ PiArCXRhcmdldF9waHlzX2FkZHJfdCBhZGRyOw0KPj4gKwlmb3IgKGFkZHIgPSAweGEwMDAwOyBh ZGRyIDwgMHhhNDAwMDsgYWRkciArPSAyKQ0KPj4gKwkgICAgY2lycnVzX3ZnYV9tZW1fd3JpdGV3 KHMsIGFkZHIsIChyZWdfdmFsdWUgPDwgOCkgfCBzLT5nclsweEZFXSk7DQo+PiArCX0NCj4+ICsJ YnJlYWs7DQo+PiAgICAgZGVmYXVsdDoNCj4+ICNpZmRlZiBERUJVR19DSVJSVVMNCj4+IAlwcmlu dGYoImNpcnJ1czogb3V0cG9ydCBncl9pbmRleCAlMDJ4LCBncl92YWx1ZSAlMDJ4XG4iLCByZWdf aW5kZXgsDQo+PiANCj4+IEJ5IHJlcGxhY2luZyB0aGUgdmdhYmlvcy1jaXJydXMuYmluLCB0aGUg d2luZG93cyBYUCBndWVzdCBzY3JlZW4gdXBkYXRpbmcgaXMgZmFzdCB3aXRoIHVwc3RyZWFtIHFl bXUuDQo+PiANCj4+IEFuZCBJIHRlc3QgdGhlIGxhdGVzdCB2Z2FiaW9zLTAuN2EgY29tZSBmcm9t IA0KPj4gaHR0cDovL3d3dy5ub25nbnUub3JnL3ZnYWJpb3MvI0RPV05MT0FEDQo+PiBidXQgdGhl IHByb2JsZW0gb2YgYmxhbmsgc2NyZWVuIHJlbWFpbi4NCj4+IA0KPj4gQmVzdCBSZWdhcmRzIQ0K Pj4gLUdvbmdsZWkNCj4+IA0KPj4gDQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ PiBGcm9tOiBHb25nbGVpIChBcmVpKQ0KPj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDE2LCAyMDEz IDU6MTAgUE0NCj4+PiBUbzogR29uZ2xlaSAoQXJlaSk7ICdQYXNpIEvDpHJra8OkaW5lbicNCj4+ PiBDYzogJ0dlcmQgSG9mZm1hbm4nOyAnQW5kcmVhcyBGw6RyYmVyJzsgSGFud2VpZG9uZzsgTHVv bmVuZ2p1bjsNCj4+PiAncWVtdS1kZXZlbEBub25nbnUub3JnJzsgJ3hlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnJzsgJ0FudGhvbnkgTGlndW9yaSc7DQo+Pj4gSHVhbmd3ZWlkb25nIChIYXJkd2FyZSk7 ICdJYW4uSmFja3NvbkBldS5jaXRyaXguY29tJzsgJ0FudGhvbnkgTGlndW9yaSc7DQo+Pj4gWWFu cWlhbmdqdW47IFlhbmd4aWFvd2VpDQo+Pj4gU3ViamVjdDogUkU6IFtYZW4tZGV2ZWxdIFtRZW11 LWRldmVsXSBDaXJydXMgVkdBIHNsb3cgc2NyZWVuIHVwZGF0ZSwgc2hvdw0KPj4+IGJsYW5rIHNj cmVlbiBsYXN0IDEzcyBvciBzbyBmb3Igd2luZG93cyBYUCBndWVzdA0KPj4+IA0KPj4+IEhpLCBh bGwNCj4+PiBJIGNvbXBhcmVkIHRoZSB0cmFkaXRpb25hbCBxZW11LWRtIGFuZCB1cHN0cmVhbSBx ZW11LA0KPj4+IGFuZCBJIGZvdW5kIHRoZSB1cHN0cmVhbSBxZW11IHdpbGwgY3JlYXRlIHRoZSBl eHBhbnNpb24gUk9NIGF0IGYzMDAwMDAwLA0KPj4+IGJ1dCBxZW11LWRtIGRvbid0Lg0KPj4+IHRo ZSBkZXRhaWxzIGFzIGJlbG93IChieSAibHNwY2kgLXZubm4iKToNCj4+PiANCj4+PiAxKSB0cmFk aXRpb25hbCBxZW11LWRtOg0KPj4+IDAwOjAyLjAgVkdBIGNvbXBhdGlibGUgY29udHJvbGxlciBb MDMwMF06IENpcnJ1cyBMb2dpYyBHRCA1NDQ2IFsxMDEzOjAwYjhdDQo+Pj4gKHByb2ctaWYgMDAg W1ZHQSBjb250cm9sbGVyXSkNCj4+PiAJU3Vic3lzdGVtOiBYZW5Tb3VyY2UsIEluYy4gRGV2aWNl IFs1ODUzOjAwMDFdDQo+Pj4gCUZsYWdzOiBidXMgbWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5j eSAwLCBJUlEgMTENCj4+PiAJTWVtb3J5IGF0IGYwMDAwMDAwICgzMi1iaXQsIHByZWZldGNoYWJs ZSkgW3NpemU9MzJNXQ0KPj4+IAlNZW1vcnkgYXQgZjMwMDAwMDAgKDMyLWJpdCwgbm9uLXByZWZl dGNoYWJsZSkgW3NpemU9NEtdDQo+Pj4gCUtlcm5lbCBtb2R1bGVzOiBjaXJydXNmYg0KPj4+IA0K Pj4+IDIpIHVwc3RyZWFtIHFlbXU6DQo+Pj4gMDA6MDIuMCBWR0EgY29tcGF0aWJsZSBjb250cm9s bGVyIFswMzAwXTogQ2lycnVzIExvZ2ljIEdEIDU0NDYgWzEwMTM6MDBiOF0NCj4+PiAocHJvZy1p ZiAwMCBbVkdBIGNvbnRyb2xsZXJdKQ0KPj4+IAlTdWJzeXN0ZW06IFhlblNvdXJjZSwgSW5jLiBE ZXZpY2UgWzU4NTM6MDAwMV0NCj4+PiAJUGh5c2ljYWwgU2xvdDogMg0KPj4+IAlGbGFnczogYnVz IG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDExDQo+Pj4gCU1lbW9yeSBhdCBm MDAwMDAwMCAoMzItYml0LCBwcmVmZXRjaGFibGUpIFtzaXplPTMyTV0NCj4+PiAJTWVtb3J5IGF0 IGYzMDIwMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTRLXQ0KPj4+IAlFeHBh bnNpb24gUk9NIGF0IGYzMDAwMDAwIFtkaXNhYmxlZF0gW3NpemU9NjRLXQ0KPj4+IAlLZXJuZWwg bW9kdWxlczogY2lycnVzZmINCj4+PiANCj4+PiBJIHRyaWVkIHRvIHNpbXBseSBkZWxldGUgdGhl IGV4cGFuc2lvbiBST00gYXQgZnVuY3Rpb24gcGNpX2FkZF9vcHRpb25fcm9tLA0KPj4+IHN1Y2gg YXMNCj4+PiANCj4+PiAgLy9wY2lfcmVnaXN0ZXJfYmFyKHBkZXYsIFBDSV9ST01fU0xPVCwgMCwg JnBkZXYtPnJvbSk7DQo+Pj4gDQo+Pj4gYnV0IHRoZSBWTkMgdmlld2VyIG9ubHkgY2FuIHNlZSBi bGFjayBzY3JlZW4sIGJ1dCBSRFAgd29ya3Mgd2VsbC4NCj4+PiBBbnkgaWRlYXMgYWJvdXQgdGhl IGNpcnJ1cydzIGV4cGFuc2lvbiBST00/DQo+Pj4gU2xvdyBzY3JlZW4gcmVmcmVzaCBoYXMgYW55 IHJlbGF0aW9uc2hpcCB3aXRoIGNpcnJ1cydzIGV4cGFuc2lvbiBST00/DQo+Pj4gVGhhbmsgeW91 IGluIGFkdmFuY2XvvIENCj4+PiANCj4+PiBCVFcsIEkgYWRkZWQgc29tZSBsb2cgaW4gc3Rkdmdh LmMoeGVuLTQuMS4yL3hlbi9hcmNoL3g4Ni9odm0pOg0KPj4+IHN0YXRpYyBpbnQgc3RkdmdhX2lu dGVyY2VwdF9tbWlvKGlvcmVxX3QgKnApDQo+Pj4gew0KPj4+ICAgIHN0cnVjdCBkb21haW4gKmQg PSBjdXJyZW50LT5kb21haW47DQo+Pj4gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmZC0+ YXJjaC5odm1fZG9tYWluLnN0ZHZnYTsNCj4+PiAgICBpbnQgYnVmID0gMCwgcmM7DQo+Pj4gICAg c3RhdGljIGludCBjb3VudF8xID0gMDsNCj4+PiAgICBzdGF0aWMgaW50IGNvdW50XzIgPSAwOw0K Pj4+IA0KPj4+ICAgIGlmICggcC0+c2l6ZSA+IDggKQ0KPj4+ICAgIHsNCj4+PiAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsICJpbnZhbGlkIG1taW8gc2l6ZSAlZFxuIiwgKGludClwLT5z aXplKTsNCj4+PiAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOw0KPj4+ICAgIH0N Cj4+PiANCj4+PiAgICBzcGluX2xvY2soJnMtPmxvY2spOw0KPj4+IA0KPj4+ICAgIGlmICggcy0+ c3RkdmdhICYmIHMtPmNhY2hlICkNCj4+PiAgICB7DQo+Pj4gICAgICAgIHN3aXRjaCAoIHAtPnR5 cGUgKQ0KPj4+ICAgICAgICB7DQo+Pj4gICAgICAgIGNhc2UgSU9SRVFfVFlQRV9DT1BZOg0KPj4+ ICAgICAgICAgICAgYnVmID0gbW1pb19tb3ZlKHMsIHApOw0KPj4+ICAgICAgICAgICAgY291bnRf MSsrOw0KPj4+ICAgICAgICAgICAgaWYgKGNvdW50XzEgJSAxMDAwID09IDApDQo+Pj4gICAgICAg ICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICIgPXV2cD0gZW50ZXIgbW1pb19tb3Zl LA0KPj4+IGNvdW50XzE9JWRcbiIsIGNvdW50XzEpOw0KPj4+ICAgICAgICAgICAgaWYgKCAhYnVm ICkNCj4+PiAgICAgICAgICAgICAgICBzLT5jYWNoZSA9IDA7DQo+Pj4gICAgICAgICAgICBicmVh azsNCj4+PiAgICAgICAgZGVmYXVsdDoNCj4+PiAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19X QVJOSU5HLCAidW5zdXBwb3J0ZWQgbW1pbyByZXF1ZXN0DQo+Pj4gdHlwZTolZCAiDQo+Pj4gICAg ICAgICAgICAgICAgICAgICAiYWRkcjoweCUwNHggZGF0YToweCUwNHggc2l6ZTolZCBjb3VudDol ZA0KPj4+IHN0YXRlOiVkICINCj4+PiAgICAgICAgICAgICAgICAgICAgICJpc3B0cjolZCBkaXI6 JWQgZGY6JWRcbiIsDQo+Pj4gICAgICAgICAgICAgICAgICAgICBwLT50eXBlLCAoaW50KXAtPmFk ZHIsIChpbnQpcC0+ZGF0YSwgKGludClwLT5zaXplLA0KPj4+ICAgICAgICAgICAgICAgICAgICAg KGludClwLT5jb3VudCwgcC0+c3RhdGUsDQo+Pj4gICAgICAgICAgICAgICAgICAgICBwLT5kYXRh X2lzX3B0ciwgcC0+ZGlyLCBwLT5kZik7DQo+Pj4gICAgICAgICAgICBzLT5jYWNoZSA9IDA7DQo+ Pj4gICAgICAgIH0NCj4+PiAgICB9DQo+Pj4gICAgZWxzZQ0KPj4+ICAgIHsNCj4+PiAgICAgICAg YnVmID0gKHAtPmRpciA9PSBJT1JFUV9XUklURSk7DQo+Pj4gICAgICAgIGNvdW50XzIrKzsNCj4+ PiAgICAgICAgaWYgKGNvdW50XzIgJSA1MDAwID09IDApDQo+Pj4gICAgICAgICAgICBnZHByaW50 ayhYRU5MT0dfV0FSTklORywgIiA+Pj4gdmdhIG1taW8gY291bnRfMj0lZFxuIiwNCj4+PiBjb3Vu dF8yKTsNCj4+PiAgICB9DQo+Pj4gDQo+Pj4gICAgcmMgPSAoYnVmICYmIGh2bV9idWZmZXJlZF9p b19zZW5kKHApKTsNCj4+PiANCj4+PiAgICBzcGluX3VubG9jaygmcy0+bG9jayk7DQo+Pj4gDQo+ Pj4gICAgcmV0dXJuIHJjID8gWDg2RU1VTF9PS0FZIDogWDg2RU1VTF9VTkhBTkRMRUFCTEU7DQo+ Pj4gfQ0KPj4+IA0KPj4+IGFuZCBJIGdvdCB0aGUgYmVsb3cgcmVzdWx0IHdpdGggdXBzdHJlYW0g cWVtdSBhbmQgdHJhbmRpdGlvbmFsIHFlbXUtZG06DQo+Pj4gDQo+Pj4gMSkgdHJhZGl0aW9uYWwg cWVtdS1kbToNCj4+PiAoWEVOKSBzdGR2Z2EuYzoxNTI6ZDIgZW50ZXJpbmcgc3RkdmdhIGFuZCBj YWNoaW5nIG1vZGVzDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlv X21vdmUsIGNvdW50XzE9NDYwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBl bnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYxMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQy ICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYyMDAwDQo+Pj4gKFhFTikgc3Rkdmdh LmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYzMDAwDQo+Pj4gKFhF Tikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY0MDAw DQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50 XzE9NDY1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21v dmUsIGNvdW50XzE9NDY2MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRl ciBtbWlvX21vdmUsIGNvdW50XzE9NDY3MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9 dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY4MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6 NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY5MDAwDQo+Pj4gKFhFTikg c3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDcwMDAwDQo+ Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9 NDcxMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUs IGNvdW50XzE9NDcyMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBt bWlvX21vdmUsIGNvdW50XzE9NDczMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZw PSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDc0MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3 OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDc1MDAwDQo+Pj4gKFhFTikgc3Rk dmdhLmM6MTU2OmQyIGxlYXZpbmcgc3RkdmdhDQo+Pj4gDQo+Pj4gMikgdXBzdHJlYW0gcWVtdToN Cj4+PiAoWEVOKSBzdGR2Z2EuYzoxNTI6ZDEgZW50ZXJpbmcgc3RkdmdhIGFuZCBjYWNoaW5nIG1v ZGVzDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNv dW50XzE9MjMzMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlv X21vdmUsIGNvdW50XzE9MjM0MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBl bnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQx ICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM2MDAwDQo+Pj4gKFhFTikgc3Rkdmdh LmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM3MDAwDQo+Pj4gKFhF Tikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM4MDAw DQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50 XzE9MjM5MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21v dmUsIGNvdW50XzE9MjQwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRl ciBtbWlvX21vdmUsIGNvdW50XzE9MjQxMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9 dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQyMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6 NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQzMDAwDQo+Pj4gKFhFTikg c3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ0MDAwDQo+ Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9 MjQ1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUs IGNvdW50XzE9MjQ2MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBt bWlvX21vdmUsIGNvdW50XzE9MjQ3MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZw PSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ4MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTc3 OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ5MDAwDQo+Pj4gKFhFTikgc3Rk dmdhLmM6MTU2OmQxIGxlYXZpbmcgc3RkdmdhDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDAwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDA1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDEwMDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+ Pj4gdmdhIG1taW8gY291bnRfMj04NDE1MDAwDQo+Pj4gIC4uLiAuLi4gLy9PbWl0IHNvbWUgc2lt aWxhcg0KPj4+IChYRU4pIHN0ZHZnYS5jOjU5NjpkMSAgPj4+IHZnYSBtbWlvIGNvdW50XzI9MTI1 NzAwMDANCj4+PiAoWEVOKSBzdGR2Z2EuYzo1OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8yPTEy NTc1MDAwDQo+Pj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+Pj4gdmdhIG1taW8gY291bnRfMj0x MjU4MDAwMA0KPj4+IChYRU4pIHN0ZHZnYS5jOjU5NjpkMSAgPj4+IHZnYSBtbWlvIGNvdW50XzI9 MTI1ODUwMDANCj4+PiAoWEVOKSBzdGR2Z2EuYzo1OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8y PTEyNTkwMDAwDQo+Pj4gDQo+Pj4gVXBzdHJlYW0gcWVtdSBoYXMgbG90J3Mgb2YgTU1JTyBhY2Nl c3MgTWVtb3J5IHJlZ2lvbiAweGEwMDAwfjB4YzAwMDANCj4+PiB0aGFuIHRyYWRpdGlvbmFsIHFl bXUtZG0uDQo+Pj4gDQo+Pj4gQmVzdCBSZWdhcmRzIQ0KPj4+IA0KPj4+IC1Hb25nbGVpDQo+Pj4g DQo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4g WGVuLWRldmVsIG1haWxpbmcgbGlzdA0KPj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCj4+IGh0 dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=