From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Gonglei (Arei)" Subject: Re: [Qemu-devel] Cirrus VGA slow screen update, show blank screen last 13s or so for windows XP guest Date: Sat, 17 Aug 2013 09:04:29 +0000 Message-ID: <33183CC9F5247A488A2544077AF19020815935E0__33357.3999269449$1376730461$gmane$org@SZXEMA503-MBS.china.huawei.com> References: <33183CC9F5247A488A2544077AF190207EF6A7E6@szxeml538-mbx.china.huawei.com> <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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: zh-CN List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Gonglei (Arei)" , =?utf-8?B?UGFzaSBLw6Rya2vDpGluZW4=?= , "vgabios-developers@nongnu.org" Cc: "ggrebus@virtualiron.com" , "bguthro@virtualron.com" , Hanweidong , "Ian.Jackson@eu.citrix.com" , Yanqiangjun , Luonengjun , "qemu-devel@nongnu.org" , "xen-devel@lists.xen.org" , Yangxiaowei , Gerd Hoffmann , Anthony Liguori , "keir.fraser@citrix.com" , =?utf-8?B?QW5kcmVhcyBGw6RyYmVy?= , "Huangweidong (Hardware)" List-Id: xen-devel@lists.xenproject.org SGksDQpUaGUgZnVuZGFtZW50YWwgcmVhc29uIGlzIHRyYWRpdGlvbmFsIHFlbXUtZG0gYW5kIHVw c3RyZWFtIHFlbXUgdXNpbmcgYSBkaWZmZXJlbnQgdmdhYmlvcy1jaXJydXMuYmluLA0KcWVtdS1k bSBpcyB1c2luZyB4ZW4tNC4xLjIvdG9vbHMvZmlybXdhcmUvdmdhYmlvcy8gVkdBQklPUy1sZ3Bs LWxhdGVzdC5jaXJydXMuYmluLCANCmJ1dCB1cHN0cmVhbSBxZW11IGlzIHVzaW5nIHFlbXUtMS4y LjIvcGMtYmlvcy92Z2FiaW9zLWNpcnJ1cy5iaW4NCg0KdGhlIHBpdm90YWwgcGF0Y2ggaXMgOg0K DQojIEhHIGNoYW5nZXNldCBwYXRjaA0KIyBVc2VyIEtlaXIgRnJhc2VyIDxrZWlyQHhlbnNvdXJj ZS5jb20+DQojIERhdGUgMTE5MzM5MTY2NyAtMzYwMA0KIyBOb2RlIElEIGQzMWY2M2RiNWYxZTg4 ZGVhZGM1NDYxYWRkYTA3Yjc3YzIyODczZDcNCiMgUGFyZW50ICA0MTMxMDdmYTQ5YTUwZTVjNjFh YzM5MGRjMTg3MGQ4OTk1YjJhMDEyDQoNCng4NiwgaHZtOiBBbGxvdyBDaXJydXMgVkdBIEJJT1Mg dG8gY2xlYXIgZnJhbWVidWZmZXIgd2l0aCBtaW5pbWFsIFBJTyB3cml0ZXMuDQoNClNpZ25lZC1v ZmYtYnk6IEJlbiBHdXRocm8gPGJndXRocm9AdmlydHVhbHJvbi5jb20+DQpTaWduZWQtb2ZmLWJ5 OiBHYXJ5IEdyZWJ1cyA8Z2dyZWJ1c0B2aXJ0dWFsaXJvbi5jb20+DQoNCmRpZmYgLXIgNDEzMTA3 ZmE0OWE1IC1yIGQzMWY2M2RiNWYxZSB0b29scy9maXJtd2FyZS92Z2FiaW9zL2NsZXh0LmMNCi0t LSBhL3Rvb2xzL2Zpcm13YXJlL3ZnYWJpb3MvY2xleHQuYwlGcmkgT2N0IDI2IDEwOjMzOjEyIDIw MDcgKzAxMDANCisrKyBiL3Rvb2xzL2Zpcm13YXJlL3ZnYWJpb3MvY2xleHQuYwlGcmkgT2N0IDI2 IDEwOjQxOjA3IDIwMDcgKzAxMDANCkBAIC0xNDg5LDE0ICsxNDg5LDI2IEBADQogICBtb3YgZHgs ICMweDNjZQ0KICAgb3V0IGR4LCBheA0KICAgcHVzaCBheA0KLSAgbW92IGN4LCAjMHhhMDAwDQot ICBtb3YgZXMsIGN4DQotICB4b3IgZGksIGRpDQorDQorOzsgV2luZG93cyBWaXN0YSBhcHBlYXJz IHRvIGJlIGVtdWxhdGluZyB0aGlzIHNlcXVlbmNlIGFzIHBhcnQgb2YgY2hhbmdpbmcgDQorOzsg c2NyZWVuIHJlc29sdXRpb24sIGJ1dCBpdCBnZW5lcmF0ZXMgNDA5NiB3cml0ZXMgcGVyIGl0ZXJh dGlvbi4NCis7OyBJbnN0ZWFkLCB1c2UgYSBtYWdpYyByZWdpc3RlciBzZXF1ZW5jZSB0byB3cml0 ZSB0aGUgd2hvbGUgYmFuay4NCis7O21vdiBjeCwgIzB4YTAwMA0KKzs7bW92IGVzLCBjeA0KKzs7 eG9yIGRpLCBkaQ0KKzs7bW92IGF4LCBzaQ0KKzs7bW92IGN4LCAjODE5Mg0KKzs7Y2xkDQorOzty ZXANCis7OyAgICBzdG9zdw0KICAgbW92IGF4LCBzaQ0KLSAgbW92IGN4LCAjODE5Mg0KLSAgY2xk DQotICByZXANCi0gICAgICBzdG9zdw0KKyAgc2hsIGF4LCAjOA0KKyAgbW92IGFsLCAjMHhmZQ0K KyAgb3V0IGR4LCBheAk7OyBMb3cgYnl0ZSBvZiB2YWx1ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBi YW5rDQorICBtb3YgYXgsIHNpDQorICBtb3YgYWwsICMweGZmICANCisgIG91dCBkeCwgYXggICAg OzsgSGlnaCBieXRlIGFuZCB0cmlnZ2VyIHRoZSB3cml0ZQ0KKw0KICAgcG9wIGF4DQogICBpbmMg YWgNCiAgIGNtcCBhaCwgYmwNCmRpZmYgLXIgNDEzMTA3ZmE0OWE1IC1yIGQzMWY2M2RiNWYxZSB0 b29scy9pb2VtdS9ody9jaXJydXNfdmdhLmMNCi0tLSBhL3Rvb2xzL2lvZW11L2h3L2NpcnJ1c192 Z2EuYwlGcmkgT2N0IDI2IDEwOjMzOjEyIDIwMDcgKzAxMDANCisrKyBiL3Rvb2xzL2lvZW11L2h3 L2NpcnJ1c192Z2EuYwlGcmkgT2N0IDI2IDEwOjQxOjA3IDIwMDcgKzAxMDANCkBAIC0yOTQsNiAr Mjk0LDcgQEANCiANCiBzdGF0aWMgdm9pZCBjaXJydXNfYml0Ymx0X3Jlc2V0KENpcnJ1c1ZHQVN0 YXRlICpzKTsNCiBzdGF0aWMgdm9pZCBjaXJydXNfdXBkYXRlX21lbW9yeV9hY2Nlc3MoQ2lycnVz VkdBU3RhdGUgKnMpOw0KK3N0YXRpYyB2b2lkIGNpcnJ1c192Z2FfbWVtX3dyaXRldyh2b2lkICpv cGFxdWUsIHRhcmdldF9waHlzX2FkZHJfdCBhZGRyLCB1aW50MzJfdCB2YWwpOw0KIA0KIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgKg0KQEAgLTE0OTcsNiArMTQ5 OCwxNyBAQA0KICAgICBjYXNlIDB4MzE6CQkJLy8gQkxUIFNUQVRVUy9TVEFSVA0KIAljaXJydXNf d3JpdGVfYml0Ymx0KHMsIHJlZ192YWx1ZSk7DQogCWJyZWFrOw0KKw0KKwkvLyBFeHRlbnNpb24g dG8gYWxsb3cgQklPUyB0byBjbGVhciAxNksgVlJBTSBiYW5rIGluIG9uZSBvcGVyYXRpb24NCisg ICAgY2FzZSAweEZFOg0KKwlzLT5ncltyZWdfaW5kZXhdID0gcmVnX3ZhbHVlOyAgLy8gTG93ZXIg Ynl0ZSBvZiB2YWx1ZSB0byBiZSB3cml0dGVuDQorCWJyZWFrOw0KKyAgICBjYXNlIDB4RkY6IHsN CisJdGFyZ2V0X3BoeXNfYWRkcl90IGFkZHI7DQorCWZvciAoYWRkciA9IDB4YTAwMDA7IGFkZHIg PCAweGE0MDAwOyBhZGRyICs9IDIpDQorCSAgICBjaXJydXNfdmdhX21lbV93cml0ZXcocywgYWRk ciwgKHJlZ192YWx1ZSA8PCA4KSB8IHMtPmdyWzB4RkVdKTsNCisJfQ0KKwlicmVhazsNCiAgICAg ZGVmYXVsdDoNCiAjaWZkZWYgREVCVUdfQ0lSUlVTDQogCXByaW50ZigiY2lycnVzOiBvdXRwb3J0 IGdyX2luZGV4ICUwMngsIGdyX3ZhbHVlICUwMnhcbiIsIHJlZ19pbmRleCwNCg0KQnkgcmVwbGFj aW5nIHRoZSB2Z2FiaW9zLWNpcnJ1cy5iaW4sIHRoZSB3aW5kb3dzIFhQIGd1ZXN0IHNjcmVlbiB1 cGRhdGluZyBpcyBmYXN0IHdpdGggdXBzdHJlYW0gcWVtdS4NCg0KQW5kIEkgdGVzdCB0aGUgbGF0 ZXN0IHZnYWJpb3MtMC43YSBjb21lIGZyb20gDQpodHRwOi8vd3d3Lm5vbmdudS5vcmcvdmdhYmlv cy8jRE9XTkxPQUQNCmJ1dCB0aGUgcHJvYmxlbSBvZiBibGFuayBzY3JlZW4gcmVtYWluLg0KDQpC ZXN0IFJlZ2FyZHMhDQotR29uZ2xlaQ0KIA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IEdvbmdsZWkgKEFyZWkpDQo+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDE2LCAyMDEz IDU6MTAgUE0NCj4gVG86IEdvbmdsZWkgKEFyZWkpOyAnUGFzaSBLw6Rya2vDpGluZW4nDQo+IENj OiAnR2VyZCBIb2ZmbWFubic7ICdBbmRyZWFzIEbDpHJiZXInOyBIYW53ZWlkb25nOyBMdW9uZW5n anVuOw0KPiAncWVtdS1kZXZlbEBub25nbnUub3JnJzsgJ3hlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn JzsgJ0FudGhvbnkgTGlndW9yaSc7DQo+IEh1YW5nd2VpZG9uZyAoSGFyZHdhcmUpOyAnSWFuLkph Y2tzb25AZXUuY2l0cml4LmNvbSc7ICdBbnRob255IExpZ3VvcmknOw0KPiBZYW5xaWFuZ2p1bjsg WWFuZ3hpYW93ZWkNCj4gU3ViamVjdDogUkU6IFtYZW4tZGV2ZWxdIFtRZW11LWRldmVsXSBDaXJy dXMgVkdBIHNsb3cgc2NyZWVuIHVwZGF0ZSwgc2hvdw0KPiBibGFuayBzY3JlZW4gbGFzdCAxM3Mg b3Igc28gZm9yIHdpbmRvd3MgWFAgZ3Vlc3QNCj4gDQo+IEhpLCBhbGwNCj4gSSBjb21wYXJlZCB0 aGUgdHJhZGl0aW9uYWwgcWVtdS1kbSBhbmQgdXBzdHJlYW0gcWVtdSwNCj4gYW5kIEkgZm91bmQg dGhlIHVwc3RyZWFtIHFlbXUgd2lsbCBjcmVhdGUgdGhlIGV4cGFuc2lvbiBST00gYXQgZjMwMDAw MDAsDQo+IGJ1dCBxZW11LWRtIGRvbid0Lg0KPiB0aGUgZGV0YWlscyBhcyBiZWxvdyAoYnkgImxz cGNpIC12bm5uIik6DQo+IA0KPiAxKSB0cmFkaXRpb25hbCBxZW11LWRtOg0KPiAwMDowMi4wIFZH QSBjb21wYXRpYmxlIGNvbnRyb2xsZXIgWzAzMDBdOiBDaXJydXMgTG9naWMgR0QgNTQ0NiBbMTAx MzowMGI4XQ0KPiAocHJvZy1pZiAwMCBbVkdBIGNvbnRyb2xsZXJdKQ0KPiAJU3Vic3lzdGVtOiBY ZW5Tb3VyY2UsIEluYy4gRGV2aWNlIFs1ODUzOjAwMDFdDQo+IAlGbGFnczogYnVzIG1hc3Rlciwg ZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDExDQo+IAlNZW1vcnkgYXQgZjAwMDAwMDAgKDMy LWJpdCwgcHJlZmV0Y2hhYmxlKSBbc2l6ZT0zMk1dDQo+IAlNZW1vcnkgYXQgZjMwMDAwMDAgKDMy LWJpdCwgbm9uLXByZWZldGNoYWJsZSkgW3NpemU9NEtdDQo+IAlLZXJuZWwgbW9kdWxlczogY2ly cnVzZmINCj4gDQo+IDIpIHVwc3RyZWFtIHFlbXU6DQo+IDAwOjAyLjAgVkdBIGNvbXBhdGlibGUg Y29udHJvbGxlciBbMDMwMF06IENpcnJ1cyBMb2dpYyBHRCA1NDQ2IFsxMDEzOjAwYjhdDQo+IChw cm9nLWlmIDAwIFtWR0EgY29udHJvbGxlcl0pDQo+IAlTdWJzeXN0ZW06IFhlblNvdXJjZSwgSW5j LiBEZXZpY2UgWzU4NTM6MDAwMV0NCj4gCVBoeXNpY2FsIFNsb3Q6IDINCj4gCUZsYWdzOiBidXMg bWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5jeSAwLCBJUlEgMTENCj4gCU1lbW9yeSBhdCBmMDAw MDAwMCAoMzItYml0LCBwcmVmZXRjaGFibGUpIFtzaXplPTMyTV0NCj4gCU1lbW9yeSBhdCBmMzAy MDAwMCAoMzItYml0LCBub24tcHJlZmV0Y2hhYmxlKSBbc2l6ZT00S10NCj4gCUV4cGFuc2lvbiBS T00gYXQgZjMwMDAwMDAgW2Rpc2FibGVkXSBbc2l6ZT02NEtdDQo+IAlLZXJuZWwgbW9kdWxlczog Y2lycnVzZmINCj4gDQo+IEkgdHJpZWQgdG8gc2ltcGx5IGRlbGV0ZSB0aGUgZXhwYW5zaW9uIFJP TSBhdCBmdW5jdGlvbiBwY2lfYWRkX29wdGlvbl9yb20sDQo+IHN1Y2ggYXMNCj4gDQo+ICAgLy9w Y2lfcmVnaXN0ZXJfYmFyKHBkZXYsIFBDSV9ST01fU0xPVCwgMCwgJnBkZXYtPnJvbSk7DQo+IA0K PiBidXQgdGhlIFZOQyB2aWV3ZXIgb25seSBjYW4gc2VlIGJsYWNrIHNjcmVlbiwgYnV0IFJEUCB3 b3JrcyB3ZWxsLg0KPiBBbnkgaWRlYXMgYWJvdXQgdGhlIGNpcnJ1cydzIGV4cGFuc2lvbiBST00/ DQo+IFNsb3cgc2NyZWVuIHJlZnJlc2ggaGFzIGFueSByZWxhdGlvbnNoaXAgd2l0aCBjaXJydXMn cyBleHBhbnNpb24gUk9NPw0KPiBUaGFuayB5b3UgaW4gYWR2YW5jZe+8gQ0KPiANCj4gQlRXLCBJ IGFkZGVkIHNvbWUgbG9nIGluIHN0ZHZnYS5jKHhlbi00LjEuMi94ZW4vYXJjaC94ODYvaHZtKToN Cj4gc3RhdGljIGludCBzdGR2Z2FfaW50ZXJjZXB0X21taW8oaW9yZXFfdCAqcCkNCj4gew0KPiAg ICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsNCj4gICAgIHN0cnVjdCBodm1f aHdfc3RkdmdhICpzID0gJmQtPmFyY2guaHZtX2RvbWFpbi5zdGR2Z2E7DQo+ICAgICBpbnQgYnVm ID0gMCwgcmM7DQo+ICAgICBzdGF0aWMgaW50IGNvdW50XzEgPSAwOw0KPiAgICAgc3RhdGljIGlu dCBjb3VudF8yID0gMDsNCj4gDQo+ICAgICBpZiAoIHAtPnNpemUgPiA4ICkNCj4gICAgIHsNCj4g ICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgImludmFsaWQgbW1pbyBzaXplICVkXG4i LCAoaW50KXAtPnNpemUpOw0KPiAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsN Cj4gICAgIH0NCj4gDQo+ICAgICBzcGluX2xvY2soJnMtPmxvY2spOw0KPiANCj4gICAgIGlmICgg cy0+c3RkdmdhICYmIHMtPmNhY2hlICkNCj4gICAgIHsNCj4gICAgICAgICBzd2l0Y2ggKCBwLT50 eXBlICkNCj4gICAgICAgICB7DQo+ICAgICAgICAgY2FzZSBJT1JFUV9UWVBFX0NPUFk6DQo+ICAg ICAgICAgICAgIGJ1ZiA9IG1taW9fbW92ZShzLCBwKTsNCj4gICAgICAgICAgICAgY291bnRfMSsr Ow0KPiAgICAgICAgICAgICBpZiAoY291bnRfMSAlIDEwMDAgPT0gMCkNCj4gICAgICAgICAgICAg ICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiID11dnA9IGVudGVyIG1taW9fbW92ZSwNCj4g Y291bnRfMT0lZFxuIiwgY291bnRfMSk7DQo+ICAgICAgICAgICAgIGlmICggIWJ1ZiApDQo+ICAg ICAgICAgICAgICAgICBzLT5jYWNoZSA9IDA7DQo+ICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAg ICAgIGRlZmF1bHQ6DQo+ICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAidW5z dXBwb3J0ZWQgbW1pbyByZXF1ZXN0DQo+IHR5cGU6JWQgIg0KPiAgICAgICAgICAgICAgICAgICAg ICAiYWRkcjoweCUwNHggZGF0YToweCUwNHggc2l6ZTolZCBjb3VudDolZA0KPiBzdGF0ZTolZCAi DQo+ICAgICAgICAgICAgICAgICAgICAgICJpc3B0cjolZCBkaXI6JWQgZGY6JWRcbiIsDQo+ICAg ICAgICAgICAgICAgICAgICAgIHAtPnR5cGUsIChpbnQpcC0+YWRkciwgKGludClwLT5kYXRhLCAo aW50KXAtPnNpemUsDQo+ICAgICAgICAgICAgICAgICAgICAgIChpbnQpcC0+Y291bnQsIHAtPnN0 YXRlLA0KPiAgICAgICAgICAgICAgICAgICAgICBwLT5kYXRhX2lzX3B0ciwgcC0+ZGlyLCBwLT5k Zik7DQo+ICAgICAgICAgICAgIHMtPmNhY2hlID0gMDsNCj4gICAgICAgICB9DQo+ICAgICB9DQo+ ICAgICBlbHNlDQo+ICAgICB7DQo+ICAgICAgICAgYnVmID0gKHAtPmRpciA9PSBJT1JFUV9XUklU RSk7DQo+ICAgICAgICAgY291bnRfMisrOw0KPiAgICAgICAgIGlmIChjb3VudF8yICUgNTAwMCA9 PSAwKQ0KPiAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywgIiA+Pj4gdmdhIG1t aW8gY291bnRfMj0lZFxuIiwNCj4gY291bnRfMik7DQo+ICAgICB9DQo+IA0KPiAgICAgcmMgPSAo YnVmICYmIGh2bV9idWZmZXJlZF9pb19zZW5kKHApKTsNCj4gDQo+ICAgICBzcGluX3VubG9jaygm cy0+bG9jayk7DQo+IA0KPiAgICAgcmV0dXJuIHJjID8gWDg2RU1VTF9PS0FZIDogWDg2RU1VTF9V TkhBTkRMRUFCTEU7DQo+IH0NCj4gDQo+IGFuZCBJIGdvdCB0aGUgYmVsb3cgcmVzdWx0IHdpdGgg dXBzdHJlYW0gcWVtdSBhbmQgdHJhbmRpdGlvbmFsIHFlbXUtZG06DQo+IA0KPiAgMSkgdHJhZGl0 aW9uYWwgcWVtdS1kbToNCj4gKFhFTikgc3RkdmdhLmM6MTUyOmQyIGVudGVyaW5nIHN0ZHZnYSBh bmQgY2FjaGluZyBtb2Rlcw0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDIgID11dnA9IGVudGVyIG1t aW9fbW92ZSwgY291bnRfMT00NjAwMDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBl bnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDYxMDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU3NzpkMiAg PXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8xPTQ2MjAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1 Nzc6ZDIgID11dnA9IGVudGVyIG1taW9fbW92ZSwgY291bnRfMT00NjMwMDANCj4gKFhFTikgc3Rk dmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDY0MDAwDQo+IChY RU4pIHN0ZHZnYS5jOjU3NzpkMiAgPXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8xPTQ2NTAw MA0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDIgID11dnA9IGVudGVyIG1taW9fbW92ZSwgY291bnRf MT00NjYwMDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUs IGNvdW50XzE9NDY3MDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU3NzpkMiAgPXV2cD0gZW50ZXIgbW1p b19tb3ZlLCBjb3VudF8xPTQ2ODAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDIgID11dnA9IGVu dGVyIG1taW9fbW92ZSwgY291bnRfMT00NjkwMDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQyICA9 dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDcwMDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU3 NzpkMiAgPXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8xPTQ3MTAwMA0KPiAoWEVOKSBzdGR2 Z2EuYzo1Nzc6ZDIgID11dnA9IGVudGVyIG1taW9fbW92ZSwgY291bnRfMT00NzIwMDANCj4gKFhF Tikgc3RkdmdhLmM6NTc3OmQyICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9NDczMDAw DQo+IChYRU4pIHN0ZHZnYS5jOjU3NzpkMiAgPXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8x PTQ3NDAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDIgID11dnA9IGVudGVyIG1taW9fbW92ZSwg Y291bnRfMT00NzUwMDANCj4gKFhFTikgc3RkdmdhLmM6MTU2OmQyIGxlYXZpbmcgc3RkdmdhDQo+ IA0KPiAgMikgdXBzdHJlYW0gcWVtdToNCj4gKFhFTikgc3RkdmdhLmM6MTUyOmQxIGVudGVyaW5n IHN0ZHZnYSBhbmQgY2FjaGluZyBtb2Rlcw0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDEgID11dnA9 IGVudGVyIG1taW9fbW92ZSwgY291bnRfMT0yMzMwMDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQx ICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM0MDAwDQo+IChYRU4pIHN0ZHZnYS5j OjU3NzpkMSAgPXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8xPTIzNTAwMA0KPiAoWEVOKSBz dGR2Z2EuYzo1Nzc6ZDEgID11dnA9IGVudGVyIG1taW9fbW92ZSwgY291bnRfMT0yMzYwMDANCj4g KFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjM3 MDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU3NzpkMSAgPXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3Vu dF8xPTIzODAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDEgID11dnA9IGVudGVyIG1taW9fbW92 ZSwgY291bnRfMT0yMzkwMDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBt bWlvX21vdmUsIGNvdW50XzE9MjQwMDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU3NzpkMSAgPXV2cD0g ZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8xPTI0MTAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDEg ID11dnA9IGVudGVyIG1taW9fbW92ZSwgY291bnRfMT0yNDIwMDANCj4gKFhFTikgc3RkdmdhLmM6 NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQzMDAwDQo+IChYRU4pIHN0 ZHZnYS5jOjU3NzpkMSAgPXV2cD0gZW50ZXIgbW1pb19tb3ZlLCBjb3VudF8xPTI0NDAwMA0KPiAo WEVOKSBzdGR2Z2EuYzo1Nzc6ZDEgID11dnA9IGVudGVyIG1taW9fbW92ZSwgY291bnRfMT0yNDUw MDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBlbnRlciBtbWlvX21vdmUsIGNvdW50 XzE9MjQ2MDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU3NzpkMSAgPXV2cD0gZW50ZXIgbW1pb19tb3Zl LCBjb3VudF8xPTI0NzAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1Nzc6ZDEgID11dnA9IGVudGVyIG1t aW9fbW92ZSwgY291bnRfMT0yNDgwMDANCj4gKFhFTikgc3RkdmdhLmM6NTc3OmQxICA9dXZwPSBl bnRlciBtbWlvX21vdmUsIGNvdW50XzE9MjQ5MDAwDQo+IChYRU4pIHN0ZHZnYS5jOjE1NjpkMSBs ZWF2aW5nIHN0ZHZnYQ0KPiAoWEVOKSBzdGR2Z2EuYzo1OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3Vu dF8yPTg0MDAwMDANCj4gKFhFTikgc3RkdmdhLmM6NTk2OmQxICA+Pj4gdmdhIG1taW8gY291bnRf Mj04NDA1MDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU5NjpkMSAgPj4+IHZnYSBtbWlvIGNvdW50XzI9 ODQxMDAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8yPTg0 MTUwMDANCj4gICAuLi4gLi4uIC8vT21pdCBzb21lIHNpbWlsYXINCj4gKFhFTikgc3RkdmdhLmM6 NTk2OmQxICA+Pj4gdmdhIG1taW8gY291bnRfMj0xMjU3MDAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1 OTY6ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8yPTEyNTc1MDAwDQo+IChYRU4pIHN0ZHZnYS5jOjU5 NjpkMSAgPj4+IHZnYSBtbWlvIGNvdW50XzI9MTI1ODAwMDANCj4gKFhFTikgc3RkdmdhLmM6NTk2 OmQxICA+Pj4gdmdhIG1taW8gY291bnRfMj0xMjU4NTAwMA0KPiAoWEVOKSBzdGR2Z2EuYzo1OTY6 ZDEgID4+PiB2Z2EgbW1pbyBjb3VudF8yPTEyNTkwMDAwDQo+IA0KPiBVcHN0cmVhbSBxZW11IGhh cyBsb3QncyBvZiBNTUlPIGFjY2VzcyBNZW1vcnkgcmVnaW9uIDB4YTAwMDB+MHhjMDAwMA0KPiB0 aGFuIHRyYWRpdGlvbmFsIHFlbXUtZG0uDQo+IA0KPiBCZXN0IFJlZ2FyZHMhDQo+IA0KPiAtR29u Z2xlaQ0KPiANCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==