From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v6] x86/hvm: add vcpu parameter to guest memory copy function Date: Wed, 08 Feb 2017 06:36:48 -0700 Message-ID: <589B2D000200007800137BD4@prv-mh.provo.novell.com> References: <20170207173553.52375-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbSQW-0002fd-VY for xen-devel@lists.xenproject.org; Wed, 08 Feb 2017 13:36:53 +0000 In-Reply-To: <20170207173553.52375-1-roger.pau@citrix.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Roger Pau Monne Cc: xen-devel@lists.xenproject.org, Kevin Tian , Paul Durrant , Jun Nakajima List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDA3LjAyLjE3IGF0IDE4OjM1LCA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOgo+ IEN1cnJlbnQgX19odm1fY29weSBhc3N1bWVzIHRoYXQgdGhlIGRlc3RpbmF0aW9uIG1lbW9yeSBi ZWxvbmdzIHRvIHRoZSBjdXJyZW50Cj4gdmNwdSwgYnV0IHRoaXMgaXMgbm90IGFsd2F5cyB0aGUg Y2FzZSBzaW5jZSBmb3IgUFZIdjIgRG9tMCBidWlsZCBodm0gY29weQo+IGZ1bmN0aW9ucyBhcmUg dXNlZCB3aXRoIGN1cnJlbnQgYmVpbmcgdGhlIGlkbGUgdmNwdS4gQWRkIGEgbmV3IHZjcHUgCj4g cGFyYW1ldGVyCj4gdG8gaHZtIGNvcHkgaW4gb3JkZXIgdG8gc29sdmUgdGhhdC4gTm90ZSB0aGF0 IG9ubHkgaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyBpcwo+IGNoYW5nZWQgdG8gdGFrZSBhIHZjcHUg cGFyYW1ldGVyLCBiZWNhdXNlIHRoYXQncyB0aGUgb25seSBvbmUgYXQgdGhlIG1vbWVudAo+IHRo YXQncyByZXF1aXJlZCBpbiBvcmRlciB0byBidWlsZCBhIFBWSHYyIERvbTAuCj4gCj4gV2hpbGUg dGhlcmUsIGFsc28gYXNzZXJ0IHRoYXQgdGhlIHBhc3NlZCB2Y3B1IGJlbG9uZ3MgdG8gYSBIVk0g Z3Vlc3QuCj4gCj4gU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNp dHJpeC5jb20+CgpWYXJpb3VzIENjLXMgbWlzc2luZyBoZXJlLCBidHcuCgpKYW4KCj4gLS0tCj4g Q2hhbmdlcyBzaW5jZSB2NToKPiAgLSBOYW1lIHZjcHUgcGFyYW0gJ3YnIGluIF9faHZtX2NvcHkg YW5kIG1vdmUgaXQncyBwb3NpdGlvbiBpbiB0aGUgcGFyYW1ldGVyCj4gICAgbGlzdC4KPiAgLSBE byBub3QgY2FsbCBodm1fbW1pb19pbnRlcm5hbCBpZiB2ICE9IGN1cnJlbnQuCj4gIC0gUmVtb3Zl IGh2bV9jb3B5X3RvX2d1ZXN0X3BoeXNfdmNwdSBhbmQgaW5zdGVhZCBtb2RpZnkgaHZtX2NvcHlf dG9fZ3Vlc3RfcGh5cwo+ICAgIHRvIHRha2UgYSB2Y3B1IHBhcmFtZXRlci4KPiAgLSBGaXggcGFy YW1ldGVyIHBhc3NlZCB0byAlcHYgcHJpbnRrIG1vZGlmaWVyLgo+IAo+IENoYW5nZXMgc2luY2Ug djQ6Cj4gIC0gTmV3IGluIHRoZSBzZXJpZXMuCj4gLS0tCj4gIHhlbi9hcmNoL3g4Ni9odm0vZW11 bGF0ZS5jICAgICAgICB8ICA0ICsrLS0KPiAgeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAg ICAgIHwgMzUgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiAgeGVuL2FyY2gv eDg2L2h2bS9pbnRlcmNlcHQuYyAgICAgIHwgIDIgKy0KPiAgeGVuL2FyY2gveDg2L2h2bS92bXgv cmVhbG1vZGUuYyAgIHwgIDIgKy0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5o IHwgIDIgKy0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4v YXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+IGluZGV4IDBkMjFmZTEuLmZlZDg4MDEgMTAwNjQ0Cj4g LS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZt L2VtdWxhdGUuYwo+IEBAIC0xMjk0LDcgKzEyOTQsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVw X21vdnMoCj4gICAgICAgICAgcmMgPSBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoYnVmLCBzZ3Bh LCBieXRlcyk7Cj4gIAo+ICAgICAgaWYgKCByYyA9PSBIVk1DT1BZX29rYXkgKQo+IC0gICAgICAg IHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyhkZ3BhLCBidWYsIGJ5dGVzKTsKPiArICAgICAg ICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X3BoeXMoZGdwYSwgYnVmLCBieXRlcywgY3VycmVudCk7 Cj4gIAo+ICAgICAgeGZyZWUoYnVmKTsKPiAgCj4gQEAgLTE0MDUsNyArMTQwNSw3IEBAIHN0YXRp YyBpbnQgaHZtZW11bF9yZXBfc3RvcygKPiAgICAgICAgICBpZiAoIGRmICkKPiAgICAgICAgICAg ICAgZ3BhIC09IGJ5dGVzIC0gYnl0ZXNfcGVyX3JlcDsKPiAgCj4gLSAgICAgICAgcmMgPSBodm1f Y29weV90b19ndWVzdF9waHlzKGdwYSwgYnVmLCBieXRlcyk7Cj4gKyAgICAgICAgcmMgPSBodm1f Y29weV90b19ndWVzdF9waHlzKGdwYSwgYnVmLCBieXRlcywgY3VycmVudCk7Cj4gIAo+ICAgICAg ICAgIGlmICggYnVmICE9IHBfZGF0YSApCj4gICAgICAgICAgICAgIHhmcmVlKGJ1Zik7Cj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5j Cj4gaW5kZXggMjFhMTY0OS4uNDJmZjlmZiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZt L2h2bS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwo+IEBAIC0zMDgyLDE2ICszMDgy LDE3IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAo+ICAjZGVmaW5lIEhWTUNPUFlfcGh5cyAgICAg ICAoMHU8PDIpCj4gICNkZWZpbmUgSFZNQ09QWV9saW5lYXIgICAgICgxdTw8MikKPiAgc3RhdGlj IGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCj4gLSAgICB2b2lkICpidWYsIHBhZGRy X3QgYWRkciwgaW50IHNpemUsIHVuc2lnbmVkIGludCBmbGFncywgdWludDMyX3QgcGZlYywKPiAt ICAgIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKPiArICAgIHZvaWQgKmJ1ZiwgcGFkZHJfdCBh ZGRyLCBpbnQgc2l6ZSwgc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBmbGFncywKPiArICAg IHVpbnQzMl90IHBmZWMsIHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKPiAgewo+IC0gICAgc3Ry dWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50Owo+ICAgICAgdW5zaWduZWQgbG9uZyBnZm47Cj4gICAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwo+ICAgICAgcDJtX3R5cGVfdCBwMm10Owo+ICAgICAg Y2hhciAqcDsKPiAgICAgIGludCBjb3VudCwgdG9kbyA9IHNpemU7Cj4gIAo+ICsgICAgQVNTRVJU KGhhc19odm1fY29udGFpbmVyX3ZjcHUodikpOwo+ICsKPiAgICAgIC8qCj4gICAgICAgKiBYWFgg RGlzYWJsZSBmb3IgNC4xLjA6IFBWLW9uLUhWTSBkcml2ZXJzIHdpbGwgZG8gZ3JhbnQtdGFibGUg b3BzCj4gICAgICAgKiBzdWNoIGFzIHF1ZXJ5X3NpemUuIEdyYW50LXRhYmxlIGNvZGUgY3VycmVu dGx5IGRvZXMgCj4gY29weV90by9mcm9tX2d1ZXN0Cj4gQEAgLTMxMTYsNyArMzExNyw3IEBAIHN0 YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBfX2h2bV9jb3B5KAo+ICAKPiAgICAgICAgICBpZiAo IGZsYWdzICYgSFZNQ09QWV9saW5lYXIgKQo+ICAgICAgICAgIHsKPiAtICAgICAgICAgICAgZ2Zu ID0gcGFnaW5nX2d2YV90b19nZm4oY3VyciwgYWRkciwgJnBmZWMpOwo+ICsgICAgICAgICAgICBn Zm4gPSBwYWdpbmdfZ3ZhX3RvX2dmbih2LCBhZGRyLCAmcGZlYyk7Cj4gICAgICAgICAgICAgIGlm ICggZ2ZuID09IGdmbl94KElOVkFMSURfR0ZOKSApCj4gICAgICAgICAgICAgIHsKPiAgICAgICAg ICAgICAgICAgIGlmICggcGZlYyAmIFBGRUNfcGFnZV9wYWdlZCApCj4gQEAgLTMxNDMsMTIgKzMx NDQsMTIgQEAgc3RhdGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCj4gICAgICAg ICAgICogLSAzMi1iaXQgV2luWFAgKCYgb2xkZXIgV2luZG93cykgb24gQU1EIENQVXMgZm9yIExB UElDIGFjY2Vzc2VzLAo+ICAgICAgICAgICAqIC0gbmV3ZXIgV2luZG93cyAobGlrZSBTZXJ2ZXIg MjAxMikgZm9yIEhQRVQgYWNjZXNzZXMuCj4gICAgICAgICAgICovCj4gLSAgICAgICAgaWYgKCAh bmVzdGVkaHZtX3ZjcHVfaW5fZ3Vlc3Rtb2RlKGN1cnIpCj4gLSAgICAgICAgICAgICAmJiBpc19o dm1fdmNwdShjdXJyKQo+ICsgICAgICAgIGlmICggIW5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9k ZSh2KQo+ICsgICAgICAgICAgICAgJiYgaXNfaHZtX3ZjcHUodikgJiYgdiA9PSBjdXJyZW50Cj4g ICAgICAgICAgICAgICAmJiBodm1fbW1pb19pbnRlcm5hbChncGEpICkKPiAgICAgICAgICAgICAg cmV0dXJuIEhWTUNPUFlfYmFkX2dmbl90b19tZm47Cj4gIAo+IC0gICAgICAgIHBhZ2UgPSBnZXRf cGFnZV9mcm9tX2dmbihjdXJyLT5kb21haW4sIGdmbiwgJnAybXQsIFAyTV9VTlNIQVJFKTsKPiAr ICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4odi0+ZG9tYWluLCBnZm4sICZwMm10LCBQ Mk1fVU5TSEFSRSk7Cj4gIAo+ICAgICAgICAgIGlmICggIXBhZ2UgKQo+ICAgICAgICAgICAgICBy ZXR1cm4gSFZNQ09QWV9iYWRfZ2ZuX3RvX21mbjsKPiBAQCAtMzE1Niw3ICszMTU3LDcgQEAgc3Rh dGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCj4gICAgICAgICAgaWYgKCBwMm1f aXNfcGFnaW5nKHAybXQpICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIHB1dF9wYWdlKHBh Z2UpOwo+IC0gICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShjdXJyLT5kb21haW4s IGdmbik7Cj4gKyAgICAgICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKHYtPmRvbWFpbiwg Z2ZuKTsKPiAgICAgICAgICAgICAgcmV0dXJuIEhWTUNPUFlfZ2ZuX3BhZ2VkX291dDsKPiAgICAg ICAgICB9Cj4gICAgICAgICAgaWYgKCBwMm1faXNfc2hhcmVkKHAybXQpICkKPiBAQCAtMzE3OCw5 ICszMTc5LDkgQEAgc3RhdGljIGVudW0gaHZtX2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCj4gICAg ICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxhc3Rw YWdlOwo+ICAgICAgICAgICAgICAgICAgaWYgKCB4Y2hnKCZsYXN0cGFnZSwgZ2ZuKSAhPSBnZm4g KQo+IC0gICAgICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19ERUJVRywgImd1ZXN0IGF0 dGVtcHRlZCB3cml0ZSB0byAKPiByZWFkLW9ubHkiCj4gKyAgICAgICAgICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19ERUJVRywgIiVwdiBndWVzdCBhdHRlbXB0ZWQgd3JpdGUgdG8gCj4gcmVhZC1v bmx5Igo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgbWVtb3J5IHBhZ2UuIGdmbj0l I2x4LCBtZm49JSNseFxuIiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm4sIHBh Z2VfdG9fbWZuKHBhZ2UpKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LCBnZm4s IHBhZ2VfdG9fbWZuKHBhZ2UpKTsKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICBlbHNl Cj4gICAgICAgICAgICAgIHsKPiBAQCAtMzE4OCw3ICszMTg5LDcgQEAgc3RhdGljIGVudW0gaHZt X2NvcHlfcmVzdWx0IF9faHZtX2NvcHkoCj4gICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHAs IGJ1ZiwgY291bnQpOwo+ICAgICAgICAgICAgICAgICAgZWxzZQo+ICAgICAgICAgICAgICAgICAg ICAgIG1lbXNldChwLCAwLCBjb3VudCk7Cj4gLSAgICAgICAgICAgICAgICBwYWdpbmdfbWFya19k aXJ0eShjdXJyLT5kb21haW4sIF9tZm4ocGFnZV90b19tZm4ocGFnZSkpKTsKPiArICAgICAgICAg ICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHYtPmRvbWFpbiwgX21mbihwYWdlX3RvX21mbihwYWdl KSkpOwo+ICAgICAgICAgICAgICB9Cj4gICAgICAgICAgfQo+ICAgICAgICAgIGVsc2UKPiBAQCAt MzIwOSwxNiArMzIxMCwxNiBAQCBzdGF0aWMgZW51bSBodm1fY29weV9yZXN1bHQgX19odm1fY29w eSgKPiAgfQo+ICAKPiAgZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5 cygKPiAtICAgIHBhZGRyX3QgcGFkZHIsIHZvaWQgKmJ1ZiwgaW50IHNpemUpCj4gKyAgICBwYWRk cl90IHBhZGRyLCB2b2lkICpidWYsIGludCBzaXplLCBzdHJ1Y3QgdmNwdSAqdikKPiAgewo+IC0g ICAgcmV0dXJuIF9faHZtX2NvcHkoYnVmLCBwYWRkciwgc2l6ZSwKPiArICAgIHJldHVybiBfX2h2 bV9jb3B5KGJ1ZiwgcGFkZHIsIHNpemUsIHYsCj4gICAgICAgICAgICAgICAgICAgICAgICBIVk1D T1BZX3RvX2d1ZXN0IHwgSFZNQ09QWV9waHlzLCAwLCBOVUxMKTsKPiAgfQo+ICAKPiAgZW51bSBo dm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF9waHlzKAo+ICAgICAgdm9pZCAqYnVm LCBwYWRkcl90IHBhZGRyLCBpbnQgc2l6ZSkKPiAgewo+IC0gICAgcmV0dXJuIF9faHZtX2NvcHko YnVmLCBwYWRkciwgc2l6ZSwKPiArICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgcGFkZHIsIHNp emUsIGN1cnJlbnQsCj4gICAgICAgICAgICAgICAgICAgICAgICBIVk1DT1BZX2Zyb21fZ3Vlc3Qg fCBIVk1DT1BZX3BoeXMsIDAsIE5VTEwpOwo+ICB9Cj4gIAo+IEBAIC0zMjI2LDcgKzMyMjcsNyBA QCBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV90b19ndWVzdF9saW5lYXIoCj4gICAgICB1 bnNpZ25lZCBsb25nIGFkZHIsIHZvaWQgKmJ1ZiwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCj4g ICAgICBwYWdlZmF1bHRfaW5mb190ICpwZmluZm8pCj4gIHsKPiAtICAgIHJldHVybiBfX2h2bV9j b3B5KGJ1ZiwgYWRkciwgc2l6ZSwKPiArICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgYWRkciwg c2l6ZSwgY3VycmVudCwKPiAgICAgICAgICAgICAgICAgICAgICAgIEhWTUNPUFlfdG9fZ3Vlc3Qg fCBIVk1DT1BZX2xpbmVhciwKPiAgICAgICAgICAgICAgICAgICAgICAgIFBGRUNfcGFnZV9wcmVz ZW50IHwgUEZFQ193cml0ZV9hY2Nlc3MgfCBwZmVjLCAKPiBwZmluZm8pOwo+ICB9Cj4gQEAgLTMy MzUsNyArMzIzNiw3IEBAIGVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3Rf bGluZWFyKAo+ICAgICAgdm9pZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCBzaXplLCB1 aW50MzJfdCBwZmVjLAo+ICAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKQo+ICB7Cj4gLSAg ICByZXR1cm4gX19odm1fY29weShidWYsIGFkZHIsIHNpemUsCj4gKyAgICByZXR1cm4gX19odm1f Y29weShidWYsIGFkZHIsIHNpemUsIGN1cnJlbnQsCj4gICAgICAgICAgICAgICAgICAgICAgICBI Vk1DT1BZX2Zyb21fZ3Vlc3QgfCBIVk1DT1BZX2xpbmVhciwKPiAgICAgICAgICAgICAgICAgICAg ICAgIFBGRUNfcGFnZV9wcmVzZW50IHwgcGZlYywgcGZpbmZvKTsKPiAgfQo+IEBAIC0zMjQ0LDcg KzMyNDUsNyBAQCBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5l YXIoCj4gICAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IHNpemUsIHVpbnQz Ml90IHBmZWMsCj4gICAgICBwYWdlZmF1bHRfaW5mb190ICpwZmluZm8pCj4gIHsKPiAtICAgIHJl dHVybiBfX2h2bV9jb3B5KGJ1ZiwgYWRkciwgc2l6ZSwKPiArICAgIHJldHVybiBfX2h2bV9jb3B5 KGJ1ZiwgYWRkciwgc2l6ZSwgY3VycmVudCwKPiAgICAgICAgICAgICAgICAgICAgICAgIEhWTUNP UFlfZnJvbV9ndWVzdCB8IEhWTUNPUFlfbGluZWFyLAo+ICAgICAgICAgICAgICAgICAgICAgICAg UEZFQ19wYWdlX3ByZXNlbnQgfCBQRkVDX2luc25fZmV0Y2ggfCBwZmVjLCBwZmluZm8pOwo+ICB9 Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMgYi94ZW4vYXJjaC94 ODYvaHZtL2ludGVyY2VwdC5jCj4gaW5kZXggNzIxZmIzOC4uNTE1N2U5ZSAxMDA2NDQKPiAtLS0g YS94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9p bnRlcmNlcHQuYwo+IEBAIC0xMzUsNyArMTM1LDcgQEAgaW50IGh2bV9wcm9jZXNzX2lvX2ludGVy Y2VwdChjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgCj4gKmhhbmRsZXIsCj4gICAgICAgICAg ICAgIGlmICggcC0+ZGF0YV9pc19wdHIgKQo+ICAgICAgICAgICAgICB7Cj4gICAgICAgICAgICAg ICAgICBzd2l0Y2ggKCBodm1fY29weV90b19ndWVzdF9waHlzKHAtPmRhdGEgKyBzdGVwICogaSwK PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEs IHAtPnNpemUpICkKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmRhdGEsIHAtPnNpemUsIGN1cnJlbnQpICkKPiAgICAgICAgICAgICAgICAgIHsKPiAg ICAgICAgICAgICAgICAgIGNhc2UgSFZNQ09QWV9va2F5Ogo+ICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jIAo+ IGIveGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYwo+IGluZGV4IDdlZjRlNDUuLjQwZWZh ZDIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYwo+ICsrKyBi L3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMKPiBAQCAtNzcsNyArNzcsNyBAQCBzdGF0 aWMgdm9pZCByZWFsbW9kZV9kZWxpdmVyX2V4Y2VwdGlvbigKPiAgICAgICAgICBwc3RrID0gcmVn cy0+c3AgLT0gNjsKPiAgCj4gICAgICBwc3RrICs9IGh2bWVtdWxfZ2V0X3NlZ19yZWcoeDg2X3Nl Z19zcywgaHZtZW11bF9jdHh0KS0+YmFzZTsKPiAtICAgICh2b2lkKWh2bV9jb3B5X3RvX2d1ZXN0 X3BoeXMocHN0aywgZnJhbWUsIHNpemVvZihmcmFtZSkpOwo+ICsgICAgKHZvaWQpaHZtX2NvcHlf dG9fZ3Vlc3RfcGh5cyhwc3RrLCBmcmFtZSwgc2l6ZW9mKGZyYW1lKSwgY3VycmVudCk7Cj4gIAo+ ICAgICAgY3NyLT5zZWwgID0gY3NfZWlwID4+IDE2Owo+ICAgICAgY3NyLT5iYXNlID0gKHVpbnQz Ml90KWNzci0+c2VsIDw8IDQ7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3N1cHBvcnQuaCAKPiBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQuaAo+IGluZGV4 IGJhNTg5OWMuLjE2NTUwYzUgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v c3VwcG9ydC5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oCj4gQEAg LTY4LDcgKzY4LDcgQEAgZW51bSBodm1fY29weV9yZXN1bHQgewo+ICAgKiBhZGRyZXNzIHJhbmdl IGRvZXMgbm90IG1hcCBlbnRpcmVseSBvbnRvIG9yZGluYXJ5IG1hY2hpbmUgbWVtb3J5Lgo+ICAg Ki8KPiAgZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cygKPiAtICAg IHBhZGRyX3QgcGFkZHIsIHZvaWQgKmJ1ZiwgaW50IHNpemUpOwo+ICsgICAgcGFkZHJfdCBwYWRk ciwgdm9pZCAqYnVmLCBpbnQgc2l6ZSwgc3RydWN0IHZjcHUgKnYpOwo+ICBlbnVtIGh2bV9jb3B5 X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoCj4gICAgICB2b2lkICpidWYsIHBhZGRy X3QgcGFkZHIsIGludCBzaXplKTsKPiAgCj4gLS0gCj4gMi4xMC4xIChBcHBsZSBHaXQtNzgpCj4g Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcgCj4gaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbCAKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==