From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43533) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c2WSY-0003jk-1B for qemu-devel@nongnu.org; Fri, 04 Nov 2016 00:50:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c2WSU-0005AA-RS for qemu-devel@nongnu.org; Fri, 04 Nov 2016 00:50:34 -0400 Received: from mga11.intel.com ([192.55.52.93]:58910) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1c2WSU-00059m-F6 for qemu-devel@nongnu.org; Fri, 04 Nov 2016 00:50:30 -0400 From: "Li, Liang Z" Date: Fri, 4 Nov 2016 04:50:22 +0000 Message-ID: References: <5feb15.7e53.1576070ae2d.Coremail.lichunguang@hust.edu.cn> <20160926112349.GF2029@work-vm> <13289d.86da.15766fdf27c.Coremail.lichunguang@hust.edu.cn> <20160930054610.GA1429@amit-lp.rh> <1401177.991b.157a34a9dea.Coremail.lichunguang@hust.edu.cn> <20161014111548.GD2030@work-vm> <1fce900.7b41.158294afd28.Coremail.lichunguang@hust.edu.cn> <484431.8261.1582d4e1433.Coremail.lichunguang@hust.edu.cn> In-Reply-To: <484431.8261.1582d4e1433.Coremail.lichunguang@hust.edu.cn> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] Migration dirty bitmap: should only mark pages as dirty after they have been sent List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chunguang Li Cc: "Dr. David Alan Gilbert" , Amit Shah , "pbonzini@redhat.com" , "qemu-devel@nongnu.org" , "stefanha@redhat.com" , "quintela@redhat.com" PiA+ID4gPiA+ID4gPiBJIHRoaW5rIHRoaXMgaXMgInZlcnkiIHdhc3RlZnVsLiBBc3N1bWUgdGhl IHdvcmtsb2FkIHdyaXRlcw0KPiA+ID4gPiA+ID4gPiB0aGUgcGFnZXMNCj4gPiA+IGRpcnR5IHJh bmRvbWx5IHdpdGhpbiB0aGUgZ3Vlc3QgYWRkcmVzcyBzcGFjZSwgYW5kIHRoZSB0cmFuc2Zlcg0K PiA+ID4gc3BlZWQgaXMgY29uc3RhbnQuIEludHVpdGl2ZWx5LCBJIHRoaW5rIG5lYXJseSBoYWxm IG9mIHRoZSBkaXJ0eQ0KPiA+ID4gcGFnZXMgcHJvZHVjZWQgaW4gSXRlcmF0aW9uIDEgaXMgbm90 IHJlYWxseSBkaXJ0eS4gVGhpcyBtZWFucyB0aGUNCj4gPiA+IHRpbWUgb2YgSXRlcmF0aW9uIDIg aXMgZG91YmxlIG9mIHRoYXQgdG8gc2VuZCBvbmx5IHJlYWxseSBkaXJ0eSBwYWdlcy4NCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBJdCBtYWtlcyBzZW5zZSwgY2FuIHlvdSBnZXQgc29tZSBwZXJm IG51bWJlcnMgdG8gc2hvdyB3aGF0DQo+ID4gPiA+ID4gPiBraW5kcyBvZiB3b3JrbG9hZHMgZ2V0 IGltcGFjdGVkIHRoZSBtb3N0PyAgVGhhdCB3b3VsZCBhbHNvDQo+ID4gPiA+ID4gPiBoZWxwIHVz IHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kcyBvZiBzcGVlZCBpbXByb3ZlbWVudHMgd2UgY2FuDQo+ IGV4cGVjdC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gCQlBbWl0DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBJIGhhdmUgcGlja2VkIHVwIDYgd29ya2xvYWRzIGFuZCBnb3Qg dGhlIGZvbGxvd2luZyBzdGF0aXN0aWNzDQo+ID4gPiA+ID4gbnVtYmVycyBvZiBldmVyeSBpdGVy YXRpb24gKGV4Y2VwdCB0aGUgbGFzdCBzdG9wLWNvcHkgb25lKSBkdXJpbmcNCj4gcHJlY29weS4N Cj4gPiA+ID4gPiBUaGVzZSBudW1iZXJzIGFyZSBvYnRhaW5lZCB3aXRoIHRoZSBiYXNpYyBwcmVj b3B5IG1pZ3JhdGlvbiwNCj4gPiA+ID4gPiB3aXRob3V0IHRoZSBjYXBhYmlsaXRpZXMgbGlrZSB4 YnpybGUgb3IgY29tcHJlc3Npb24sIGV0Yy4gVGhlDQo+ID4gPiA+ID4gbmV0d29yayBmb3IgdGhl IG1pZ3JhdGlvbiBpcyBleGNsdXNpdmUsIHdpdGggYSBzZXBhcmF0ZSBuZXR3b3JrIGZvcg0KPiB0 aGUgd29ya2xvYWRzLg0KPiA+ID4gPiA+IFRoZXkgYXJlIGJvdGggZ2lnYWJpdCBldGhlcm5ldC4g SSB1c2UgcWVtdS0yLjUuMS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRocmVlIChib290aW5nLCBp ZGxlLCB3ZWIgc2VydmVyKSBvZiB0aGVtIGNvbnZlcmdlZCB0byB0aGUNCj4gPiA+ID4gPiBzdG9w LWNvcHkNCj4gPiA+IHBoYXNlLA0KPiA+ID4gPiA+IHdpdGggdGhlIGdpdmVuIGJhbmR3aWR0aCBh bmQgZGVmYXVsdCBkb3dudGltZSAoMzAwbXMpLCB3aGlsZSB0aGUNCj4gPiA+ID4gPiBvdGhlciB0 aHJlZSAoa2VybmVsIGNvbXBpbGF0aW9uLCB6ZXVzbXAsIG1lbWNhY2hlZCkgZGlkIG5vdC4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IE9uZSBwYWdlIGlzICJub3QtcmVhbGx5LWRpcnR5IiwgaWYgaXQg aXMgd3JpdHRlbiBmaXJzdCBhbmQgaXMNCj4gPiA+ID4gPiBzZW50IGxhdGVyIChhbmQgbm90IHdy aXR0ZW4gYWdhaW4gYWZ0ZXIgdGhhdCkgZHVyaW5nIG9uZQ0KPiA+ID4gPiA+IGl0ZXJhdGlvbi4g SSBndWVzcyB0aGlzIHdvdWxkIG5vdCBoYXBwZW4gc28gb2Z0ZW4gZHVyaW5nIHRoZQ0KPiA+ID4g PiA+IG90aGVyIGl0ZXJhdGlvbnMgYXMgZHVyaW5nIHRoZSAxc3QgaXRlcmF0aW9uLiBCZWNhdXNl IGFsbCB0aGUNCj4gPiA+ID4gPiBwYWdlcyBvZiB0aGUgVk0gYXJlIHNlbnQgdG8gdGhlIGRlc3Qg bm9kZQ0KPiA+ID4gZHVyaW5nDQo+ID4gPiA+ID4gdGhlIDFzdCBpdGVyYXRpb24sIHdoaWxlIGR1 cmluZyB0aGUgb3RoZXJzLCBvbmx5IHBhcnQgb2YgdGhlIHBhZ2VzIGFyZQ0KPiBzZW50Lg0KPiA+ ID4gPiA+IFNvIEkgdGhpbmsgdGhlICJub3QtcmVhbGx5LWRpcnR5IiBwYWdlcyBzaG91bGQgYmUg cHJvZHVjZWQNCj4gPiA+ID4gPiBtYWlubHkgZHVyaW5nIHRoZSAxc3QgaXRlcmF0aW9uICwgYW5k IG1heWJlIHZlcnkgbGl0dGxlIGR1cmluZyB0aGUgb3RoZXINCj4gaXRlcmF0aW9ucy4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IElmIHdlIGNvdWxkIGF2b2lkIHJlc2VuZGluZyB0aGUgIm5vdC1yZWFs bHktZGlydHkiIHBhZ2VzLA0KPiA+ID4gPiA+IGludHVpdGl2ZWx5LCBJIHRoaW5rIHRoZSB0aW1l IHNwZW50IG9uIEl0ZXJhdGlvbiAyIHdvdWxkIGJlDQo+ID4gPiA+ID4gaGFsdmVkLiBUaGlzIGlz IGEgY2hhaW4NCj4gPiA+IHJlYWN0aW9uLA0KPiA+ID4gPiA+IGJlY2F1c2UgdGhlIGRpcnR5IHBh Z2VzIHByb2R1Y2VkIGR1cmluZyBJdGVyYXRpb24gMiBpcyBoYWx2ZWQsDQo+ID4gPiA+ID4gd2hp Y2gNCj4gPiA+IGluY3Vycw0KPiA+ID4gPiA+IHRoYXQgdGhlIHRpbWUgc3BlbnQgb24gSXRlcmF0 aW9uIDMgaXMgaGFsdmVkLCB0aGVuIEl0ZXJhdGlvbiA0LCA1Li4uDQo+ID4gPiA+DQo+ID4gPiA+ IFllczsgdGhlc2UgbnVtYmVycyBkb24ndCBzaG93IGhvdyBtYW55IG9mIHRoZW0gYXJlIGZhbHNl IGRpcnR5DQo+IHRob3VnaC4NCj4gPiA+ID4NCj4gPiA+ID4gT25lIHByb2JsZW0gaXMgdGhpbmtp bmcgYWJvdXQgcGFnZXMgdGhhdCBoYXZlIGJlZW4gcmVkaXJ0aWVkLCBpZg0KPiA+ID4gPiB0aGUg cGFnZSBpcw0KPiA+ID4gZGlydGllZA0KPiA+ID4gPiBhZnRlciB0aGUgc3luYyBidXQgYmVmb3Jl IHRoZSBuZXR3b3JrIHdyaXRlIHRoZW4gaXQncyB0aGUNCj4gPiA+ID4gZmFsc2UtZGlydHkgdGhh dCB5b3UncmUgZGVzY3JpYmluZy4NCj4gPiA+ID4NCj4gPiA+ID4gSG93ZXZlciwgaWYgdGhlIHBh Z2UgaXMgYmVpbmcgd3JpdHRlbiBhIGZldyB0aW1lcywgYW5kIHNvIGl0IHdvdWxkDQo+ID4gPiA+ IGhhdmUNCj4gPiA+IGJlZW4gd3JpdHRlbg0KPiA+ID4gPiBhZnRlciB0aGUgbmV0d29yayB3cml0 ZSB0aGVuIGl0IGlzbid0IGEgZmFsc2UtZGlydHkuDQo+ID4gPiA+DQo+ID4gPiA+IFlvdSBtaWdo dCBiZSBhYmxlIHRvIGZpZ3VyZSB0aGF0IG91dCB3aXRoIHNvbWUga2VybmVsIHRyYWNpbmcgb2YN Cj4gPiA+ID4gd2hlbiB0aGUNCj4gPiA+IGRpcnR5aW5nDQo+ID4gPiA+IGhhcHBlbnMsIGJ1dCBp dCBtaWdodCBiZSBlYXNpZXIgdG8gd3JpdGUgdGhlIGZpeCENCj4gPiA+ID4NCj4gPiA+ID4gRGF2 ZQ0KPiA+ID4NCj4gPiA+IEhpLCBJIGhhdmUgbWFkZSBzb21lIG5ldyBwcm9ncmVzcyBub3cuDQo+ ID4gPg0KPiA+ID4gVG8gdGVsbCBob3cgbWFueSBmYWxzZSBkaXJ0eSBwYWdlcyB0aGVyZSBhcmUg ZXhhY3RseSBpbiBlYWNoDQo+ID4gPiBpdGVyYXRpb24sIEkgbWFsbG9jIGEgYnVmZmVyIGluIG1l bW9yeSBhcyBiaWcgYXMgdGhlIHNpemUgb2YgdGhlDQo+ID4gPiB3aG9sZSBWTSBtZW1vcnkuIFdo ZW4gYSBwYWdlIGlzIHRyYW5zZmVycmVkIHRvIHRoZSBkZXN0IG5vZGUsIGl0IGlzDQo+ID4gPiBj b3BpZWQgdG8gdGhlIGJ1ZmZlcjsgRHVyaW5nIHRoZSBuZXh0IGl0ZXJhdGlvbiwgaWYgb25lIHBh Z2UgaXMNCj4gPiA+IHRyYW5zZmVycmVkLCBpdCBpcyBjb21wYXJlZCB0byB0aGUgb2xkIG9uZSBp biB0aGUgYnVmZmVyLCBhbmQgdGhlDQo+ID4gPiBvbGQgb25lIHdpbGwgYmUgcmVwbGFjZWQgZm9y IG5leHQgY29tcGFyaXNvbiBpZiBpdCBpcyByZWFsbHkgZGlydHkuDQo+ID4gPiBUaHVzLCB3ZSBh cmUgbm93IGFibGUgdG8gZ2V0IHRoZSBleGFjdCBudW1iZXIgb2YgZmFsc2UgZGlydHkgcGFnZXMu DQo+ID4gPg0KPiA+ID4gVGhpcyB0aW1lLCBJIHVzZSAxNSB3b3JrbG9hZHMgdG8gZ2V0IHRoZSBz dGF0aXN0aWMgbnVtYmVyLiBUaGV5IGFyZToNCj4gPiA+DQo+ID4gPiAgIDEuIDExIGJlbmNobWFy a3MgcGlja2VkIHVwIGZyb20gY3B1MjAwNiBiZW5jaG1hcmsgc3VpdC4gVGhleSBhcmUNCj4gPiA+ IGFsbCBzY2llbnRpZmljDQo+ID4gPiAgICAgIGNvbXB1dGluZyB3b3JrbG9hZHMgbGlrZSBRdWFu dHVtIENocm9tb2R5bmFtaWNzLCBGbHVpZCBEeW5hbWljcywNCj4gZXRjLg0KPiA+ID4gSSBwaWNr DQo+ID4gPiAgICAgIHVwIHRoZXNlIDExIGJlbmNobWFya3MgYmVjYXVzZSBjb21wYXJlZCB0byBv dGhlcnMsIHRoZXkgaGF2ZQ0KPiA+ID4gYmlnZ2VyIG1lbW9yeQ0KPiA+ID4gICAgICBvY2N1cGF0 aW9uIGFuZCBoaWdoZXIgbWVtb3J5IGRpcnR5IHJhdGUuIFRodXMgbW9zdCBvZiB0aGVtDQo+ID4g PiBjb3VsZCBub3QgY29udmVyZ2UNCj4gPiA+ICAgICAgdG8gc3RvcC1hbmQtY29weSB1c2luZyB0 aGUgZGVmYXVsdCBtaWdyYXRpb24gc3BlZWQgKDMyTUIvcykuDQo+ID4gPiAgIDIuIGtlcm5lbCBj b21waWxhdGlvbg0KPiA+ID4gICAzLiBpZGxlIFZNDQo+ID4gPiAgIDQuIEFwYWNoZSB3ZWIgc2Vy dmVyIHdoaWNoIHNlcnZlcyBzdGF0aWMgY29udGVudA0KPiA+ID4NCj4gPiA+ICAgKHRoZSBhYm92 ZSB3b3JrbG9hZHMgYXJlIGFsbCBydW5uaW5nIGluIFZNIHdpdGggMSB2Y3B1IGFuZCAxR0INCj4g PiA+IG1lbW9yeSwgYW5kIHRoZQ0KPiA+ID4gICAgbWlncmF0aW9uIHNwZWVkIGlzIHRoZSBkZWZh dWx0IDMyTUIvcykNCj4gPiA+DQo+ID4gPiAgIDUuIE1lbWNhY2hlZC4gVGhlIFZNIGhhcyA2IGNw dSBjb3JlcyBhbmQgNkdCIG1lbW9yeSwgYW5kIDRHQiBhcmUNCj4gPiA+IHVzZWQgYXMgdGhlIGNh Y2hlLg0KPiA+ID4gICAgICBBZnRlciBmaWxsaW5nIHVwIHRoZSA0R0IgY2FjaGUsIGEgY2xpZW50 IHdyaXRlcyB0aGUgY2FjaGUgYXQgYSBjb25zdGFudA0KPiBzcGVlZA0KPiA+ID4gICAgICBkdXJp bmcgbWlncmF0aW9uLiBUaGlzIHRpbWUsIG1pZ3JhdGlvbiBzcGVlZCBoYXMgbm8gbGltaXQsIGFu ZCBpcyB1cCB0bw0KPiB0aGUNCj4gPiA+ICAgICAgY2FwYWJpbGl0eSBvZiAxR2JwcyBFdGhlcm5l dC4NCj4gPiA+DQo+ID4gPiBTdW1tYXJpemUgdGhlIHJlc3VsdHMgZmlyc3Q6IChhbmQgeW91IGNh biByZWFkIHRoZSBwcmVjaXNlIG51bWJlcg0KPiA+ID4gYmVsb3cpDQo+ID4gPg0KPiA+ID4gICAx LiA0IG9mIHRoZXNlIDE1IHdvcmtsb2FkcyBoYXZlIGEgYmlnIHByb3BvcnRpb24gKD42MCUsIGV2 ZW4gPjgwJQ0KPiA+ID4gZHVyaW5nIHNvbWUgaXRlcmF0aW9ucykNCj4gPiA+ICAgICAgb2YgZmFs c2UgZGlydHkgcGFnZXMgb3V0IG9mIGFsbCB0aGUgZGlydHkgcGFnZXMgc2luY2UgaXRlcmF0aW9u IDIgKGFuZCB0aGUNCj4gYmlnDQo+ID4gPiAgICAgIHByb3BvcnRpb24gbGFzdHMgZHVyaW5nIHRo ZSBmb2xsb3dpbmcgaXRlcmF0aW9ucykuIFRoZXkgYXJlDQo+IGNwdTIwMDYuemV1c21wLA0KPiA+ ID4gICAgICBjcHUyMDA2LmJ6aXAyLCBjcHUyMDA2Lm1jZiwgYW5kIG1lbWNhY2hlZC4NCj4gPiA+ ICAgMi4gMiB3b3JrbG9hZHMgKGlkbGUsIHdlYnNlcnZlcikgc3BlbmQgbW9zdCBvZiB0aGUgbWln cmF0aW9uIHRpbWUNCj4gPiA+IG9uIGl0ZXJhdGlvbiAxLCBldmVuDQo+ID4gPiAgICAgIHRob3Vn aCB0aGUgcHJvcG9ydGlvbiBvZiBmYWxzZSBkaXJ0eSBwYWdlcyBpcyBiaWcgc2luY2UNCj4gPiA+ IGl0ZXJhdGlvbiAyLCB0aGUgc3BhY2UgdG8NCj4gPiA+ICAgICAgb3B0aW1pemUgaXMgc21hbGwu DQo+ID4gPiAgIDMuIDEgd29ya2xvYWQgKGtlcm5lbCBjb21waWxhdGlvbikgb25seSBoYXZlIGEg YmlnIHByb3BvcnRpb24NCj4gPiA+IGR1cmluZyBpdGVyYXRpb24gMiwgbm90DQo+ID4gPiAgICAg IGluIHRoZSBvdGhlciBpdGVyYXRpb25zLg0KPiA+ID4gICA0LiA4IHdvcmtsb2FkcyAodGhlIG90 aGVyIDggYmVuY2htYXJrcyBvZiBjcHUyMDA2KSBoYXZlIGxpdHRsZQ0KPiA+ID4gcHJvcG9ydGlv biBvZiBmYWxzZQ0KPiA+ID4gICAgICBkaXJ0eSBwYWdlcyBzaW5jZSBpdGVyYXRpb24gMi4gU28g dGhlIHNwYWNlcyB0byBvcHRpbWl6ZSBmb3IgdGhlbSBhcmUNCj4gc21hbGwuDQo+ID4gPg0KPiA+ ID4gTm93IEkgd2FudCB0byB0YWxrIGEgbGl0dGxlIG1vcmUgYWJvdXQgdGhlIHJlYXNvbnMgd2h5 IGZhbHNlIGRpcnR5DQo+ID4gPiBwYWdlcyBhcmUgcHJvZHVjZWQuDQo+ID4gPiBUaGUgZmlyc3Qg cmVhc29uIGlzIHdoYXQgd2UgaGF2ZSBkaXNjdXNzZWQgYmVmb3JlLS0tdGhlIG1lY2hhbmlzbSB0 bw0KPiA+ID4gdHJhY2sgdGhlIGRpcnR5IHBhZ2VzLg0KPiA+ID4gQW5kIHRoZW4gSSBjb21lIHVw IHdpdGggYW5vdGhlciByZWFzb24uIEhlcmUgaXMgdGhlIHNpdHVhdGlvbjogYQ0KPiA+ID4gd3Jp dGUgb3BlcmF0aW9uIHRvIG9uZSBtZW1vcnkgcGFnZSBoYXBwZW5zLCBidXQgaXQgZG9lc24ndCBj aGFuZ2UNCj4gPiA+IGFueSBjb250ZW50IG9mIHRoZSBwYWdlLiBTbyBpdCdzICJ3cml0ZSBidXQg bm90IGRpcnR5IiwgYW5kIGtlcm5lbA0KPiA+ID4gc3RpbGwgbWFya3MgaXQgYXMgZGlydHkuIE9u ZSBndXkgaW4gb3VyIGxhYiBoYXMgZG9uZSBzb21lDQo+ID4gPiBleHBlcmltZW50cyB0byBmaWd1 cmUgb3V0IHRoZSBwcm9wb3J0aW9uIG9mICJ3cml0ZSBidXQgbm90IGRpcnR5Ig0KPiA+ID4gb3Bl cmF0aW9ucywgYW5kIGhlIHVzZXMgdGhlIGNwdTIwMDYgYmVuY2htYXJrIHN1aXQuIEFjY29yZGlu ZyB0byBoaXMNCj4gPiA+IHJlc3VsdHMsIGdlbmVyYWwgd29ya2xvYWRzIGhhcyBhIGxpdHRsZSBw cm9wb3J0aW9uICg8MTAlKSBvZiAid3JpdGUNCj4gPiA+IGJ1dCBub3QgZGlydHkiIG91dCBvZiBh bGwgdGhlIHdyaXRlIG9wZXJhdGlvbnMsIHdoaWxlIGZldyB3b3JrbG9hZHMNCj4gPiA+IGhhdmUg aGlnaGVyIHByb3BvcnRpb24gKG9uZSBldmVuIGFzIGhpZ2ggYXMgNTAlKS4gTm93IHdlIGFyZSBu b3QNCj4gPiA+IHN1cmUgd2h5ICJ3cml0ZSBidXQgbm90IGRpcnR5IiB3b3VsZCBoYXBwZW4sIGl0 IGp1c3QgaGFwcGVuZWQuDQo+ID4gPg0KPiA+ID4gU28gdGhlc2UgdHdvIHJlYXNvbnMgY29udHJp YnV0ZSB0byB0aGUgZmFsc2UgZGlydHkgcGFnZXMuIFRvDQo+ID4gPiBvcHRpbWl6ZSwgSSBjb21w dXRlIGFuZCBzdG9yZSB0aGUgU0hBMSBoYXNoIGJlZm9yZSB0cmFuc2ZlcnJpbmcgZWFjaA0KPiA+ ID4gcGFnZS4gTmV4dCB0aW1lLCBpZiBvbmUgcGFnZSBuZWVkcyByZXRyYW5zbWlzc2lvbiwgaXRz DQo+ID4gPiBTSEExIGhhc2ggaXMgY29tcHV0ZWQgYWdhaW4sIGFuZCBjb21wYXJlZCB0byB0aGUg b2xkIGhhc2guIElmIHRoZQ0KPiA+ID4gaGFzaCBpcyB0aGUgc2FtZSwgaXQncyBhIGZhbHNlIGRp cnR5IHBhZ2UsIGFuZCB3ZSBqdXN0IHNraXAgdGhpcw0KPiA+ID4gcGFnZTsgT3RoZXJ3aXNlLCB0 aGUgcGFnZSBpcyB0cmFuc2ZlcnJlZCwgYW5kIHRoZSBuZXcgaGFzaCByZXBsYWNlcw0KPiA+ID4g dGhlIG9sZCBvbmUgZm9yIG5leHQgY29tcGFyaXNvbi4NCj4gPiA+IFRoZSByZWFzb24gdG8gdXNl IFNIQTEgaGFzaCBidXQgbm90IGJ5dGUtYnktYnl0ZSBjb21wYXJpc29uIGlzIHRoZQ0KPiA+ID4g bWVtb3J5IG92ZXJoZWFkcy4gT25lIFNIQTEgaGFzaCBpcyAyMCBieXRlcy4gU28gd2UgbmVlZCBl eHRyYQ0KPiA+ID4gMjAvNDA5NiAoPDEvMjAwKSBtZW1vcnkgc3BhY2Ugb2YgdGhlIHdob2xlIFZN IG1lbW9yeSwgd2hpY2ggaXMNCj4gPiA+IHJlbGF0aXZlbHkgc21hbGwuDQo+ID4gPiBBcyBmYXIg YXMgSSBrbm93LCBTSEExIGhhc2ggaXMgd2lkZWx5IHVzZWQgaW4gdGhlIHNjZW5lcyBvZg0KPiA+ ID4gZGVkdXBsaWNhdGlvbiBmb3IgYmFja3VwIHN5c3RlbXMuDQo+ID4gPiBUaGV5IGhhdmUgcHJv dmVuIHRoYXQgdGhlIHByb2JhYmlsaXR5IG9mIGhhc2ggY29sbGlzaW9uIGlzIGZhcg0KPiA+ID4g c21hbGxlciB0aGFuIGRpc2sgaGFyZHdhcmUgZmF1bHQsIHNvIGl0J3Mgc2VjdXJlIGhhc2gsIHRo YXQgaXMsIGlmDQo+ID4gPiB0aGUgaGFzaGVzIG9mIHR3byBjaHVua3MgYXJlIHRoZSBzYW1lLCB0 aGUgY29udGVudCBtdXN0IGJlIHRoZSBzYW1lLg0KPiA+ID4gU28gSSB0aGluayB0aGUgU0hBMSBo YXNoIGNvdWxkIHJlcGxhY2UgYnl0ZS10by1ieXRlIGNvbXBhcmlzb24gaW4NCj4gPiA+IHRoZSBW TSBtZW1vcnkgc2NlbmVyeS4NCj4gPiA+DQo+ID4gPiBUaGVuIEkgZG8gdGhlIHNhbWUgbWlncmF0 aW9uIGV4cGVyaW1lbnRzIHVzaW5nIHRoZSBTSEExIGhhc2guIEZvcg0KPiA+ID4gdGhlIDQgd29y a2xvYWRzIHdoaWNoIGhhdmUgYmlnIHByb3BvcnRpb25zIG9mIGZhbHNlIGRpcnR5IHBhZ2VzLCB0 aGUNCj4gPiA+IGltcHJvdmVtZW50IGlzIHJlbWFya2FibGUuIFdpdGhvdXQgb3B0aW1pemF0aW9u LCB0aGV5IGVpdGhlciBjYW4gbm90DQo+ID4gPiBjb252ZXJnZSB0byBzdG9wLWFuZC1jb3B5LCBv ciB0YWtlIGEgdmVyeSBsb25nIHRpbWUgdG8gY29tcGxldGUuDQo+ID4gPiBXaXRoIHRoZQ0KPiA+ ID4gU0hBMSBoYXNoIG1ldGhvZCwgYWxsIG9mIHRoZW0gbm93IGNvbXBsZXRlIGluIGEgcmVsYXRp dmVseSBzaG9ydCB0aW1lLg0KPiA+ID4gRm9yIHRoZSByZWFzb24gSSBoYXZlIHRhbGtlZCBhYm92 ZSwgdGhlIG90aGVyIHdvcmtsb2FkcyBkb24ndCBnZXQNCj4gPiA+IG5vdGFibGUgaW1wcm92ZW1l bnRzIGZyb20gdGhlIG9wdGltaXphdGlvbi4gU28gYmVsb3csIEkgb25seSBzaG93DQo+ID4gPiB0 aGUgZXhhY3QgbnVtYmVyIGFmdGVyIG9wdGltaXphdGlvbiBmb3IgdGhlIDQgd29ya2xvYWRzIHdp dGgNCj4gPiA+IHJlbWFya2FibGUgaW1wcm92ZW1lbnRzLg0KPiA+ID4NCj4gPiA+IEFueSBjb21t ZW50cyBvciBzdWdnZXN0aW9ucz8NCj4gPg0KPiA+IE1heWJlIHlvdSBjYW4gY29tcGFyZSB0aGUg cGVyZm9ybWFuY2Ugb2YgeW91ciBzb2x1dGlvbiBhcyB0aGF0IG9mDQo+IFhCWlJMRSB0byBzZWUg d2hpY2ggb25lIGlzIGJldHRlci4NCj4gPiBUaGUgbWVyaXQgb2YgdXNpbmcgU0hBMSBpcyB0aGF0 IGl0IGNhbiBhdm9pZCBkYXRhIGNvcHkgYXMgdGhhdCBpbiBYQlpSTEUsIGFuZA0KPiBuZWVkIGxl c3MgYnVmZmVyLg0KPiA+IEhvdyBhYm91dCB0aGUgb3ZlcmhlYWQgb2YgY2FsY3VsYXRpbmcgdGhl IFNIQTE/IElzIGl0IGZhc3RlciB0aGFuIGNvcHlpbmcgYQ0KPiBwYWdlPw0KPiA+DQo+ID4gTGlh bmcNCj4gPg0KPiA+DQo+IA0KPiBZZXMsIFhCWlJMRSBpcyBhYmxlIHRvIGhhbmRsZSB0aGUgZmFs c2UgZGlydHkgcGFnZXMuIEhvd2V2ZXIsIGlmIHdlIHdhbnQgdG8NCj4gYXZvaWQgdHJhbnNmZXJy aW5nIGFsbCBvZiB0aGUgZmFsc2UgZGlydHkgcGFnZXMgdXNpbmcgWEJaUkxFLCB3ZSBuZWVkIGEg YnVmZmVyDQo+IGFzIGJpZyBhcyB0aGUgd2hvbGUgVk0gbWVtb3J5LCB3aGlsZSBTSEExIG5lZWRz IGEgbXVjaCBzbWFsbCBidWZmZXIuIE9mDQo+IGNvdXJzZSwgaWYgd2UgaGF2ZSBhIGJ1ZmZlciBh cyBiaWcgYXMgdGhlIHdob2xlIFZNIG1lbW9yeSB1c2luZyBYQlpSTEUsIHdlDQo+IGNvdWxkIHRy YW5zZmVyIGxlc3MgZGF0YSBvbiBuZXR3b3JrIHRoYW4gU0hBMSwgYmVjYXVzZSBYQlpSTEUgaXMg YWJsZSB0bw0KPiBjb21wcmVzcyBzaW1pbGFyIHBhZ2VzLiBJbiBhIHdvcmQsIHllcywgdGhlIG1l cml0IG9mIHVzaW5nIFNIQTEgaXMgdGhhdCBpdA0KPiBuZWVkcyBtdWNoIGxlc3MgYnVmZmVyLCBh bmQgbGVhZHMgdG8gbmljZSBpbXByb3ZlbWVudCBpZiB0aGVyZSBhcmUgbWFueQ0KPiBmYWxzZSBk aXJ0eSBwYWdlcy4NCj4gDQoNClRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIFhCWlJMRSBi ZWdpbnMgdG8gYnVmZmVyIHBhZ2UgZnJvbSB0aGUgc2Vjb25kIGl0ZXJhdGlvbiwNCk1heWJlIGl0 J3Mgd29ydGggdG8gbWFrZSBpdCBzdGFydCB0byB3b3JrIGZyb20gdGhlIGZpcnN0IGl0ZXJhdGlv biBiYXNlZCBvbiB5b3VyIGZpbmRpbmcuDQoNCj4gSW4gdGVybXMgb2YgdGhlIG92ZXJoZWFkIG9m IGNhbGN1bGF0aW5nIHRoZSBTSEExIGNvbXBhcmVkIHdpdGggdHJhbnNmZXJyaW5nDQo+IGEgcGFn ZSwgaXQncyByZWxhdGVkIHRvIHRoZSBDUFUgYW5kIG5ldHdvcmsgcGVyZm9ybWFuY2UuIEluIG15 IHRlc3QNCj4gZW52aXJvbm1lbnQoSW50ZWwgWGVvbg0KPiBFNTYyMCBAMi40R0h6LCAxR2JwcyBF dGhlcm5ldCksIEkgZGlkbid0IG9ic2VydmUgb2J2aW91cyBleHRyYSBjb21wdXRpbmcNCj4gb3Zl cmhlYWQgY2F1c2VkIGJ5IGNhbGN1bGF0aW5nIHRoZSBTSEExLCBiZWNhdXNlIHRoZSB0aHJvdWdo cHV0IG9mDQo+IG5ldHdvcmsgKGdvdCBieSAiaW5mbyBtaWdyYXRlIikgcmVtYWlucyBhbG1vc3Qg dGhlIHNhbWUuDQoNCllvdSBjYW4gY2hlY2sgdGhlIENQVSB1c2FnZSwgb3IgdG8gbWVhc3VyZSB0 aGUgdGltZSBzcGVuZCBvbiBhIGxvY2FsIGxpdmUgbWlncmF0aW9uDQogd2hpY2ggdXNlIFNIQTEv IFhCWlJMRS4NCg0KTGlhbmcNCg0KDQo=