From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v5] x86/altp2m: Aggregate get entry and populate into common funcs Date: Tue, 23 Apr 2019 12:44:57 +0100 Message-ID: References: <20190416084531.5084-1-aisaila@bitdefender.com> <51aac97d-3773-f3df-204d-55912f5915db@citrix.com> <73576bc2-5ab2-b5ef-ca0b-fb50b4cd7775@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hItrH-00040O-RA for xen-devel@lists.xenproject.org; Tue, 23 Apr 2019 11:45:07 +0000 In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Alexandru Stefan ISAILA , Tamas K Lengyel Cc: "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , "jbeulich@suse.com" , "xen-devel@lists.xenproject.org" , "roger.pau@citrix.com" List-Id: xen-devel@lists.xenproject.org T24gNC8xOS8xOSA5OjMyIEFNLCBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQSB3cm90ZToKPiAKPiAK PiBPbiAxOC4wNC4yMDE5IDIxOjQyLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4+IE9uIFRodSwg QXByIDE4LCAyMDE5IGF0IDExOjAyIEFNIEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gT24gNC8xOC8xOSAyOjU5IFBNLCBUYW1hcyBLIExlbmd5 ZWwgd3JvdGU6Cj4+Pj4gT24gVGh1LCBBcHIgMTgsIDIwMTkgYXQgMzo1MyBBTSBHZW9yZ2UgRHVu bGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+IHdyb3RlOgo+Pj4+Pgo+Pj4+PiBPbiA0LzE3 LzE5IDc6MjIgUE0sIFRhbWFzIEsgTGVuZ3llbCB3cm90ZToKPj4+Pj4+IE9uIFdlZCwgQXByIDE3 LCAyMDE5IGF0IDE6MTUgQU0gQWxleGFuZHJ1IFN0ZWZhbiBJU0FJTEEKPj4+Pj4+IDxhaXNhaWxh QGJpdGRlZmVuZGVyLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4g T24gMTYuMDQuMjAxOSAxODowNywgR2VvcmdlIER1bmxhcCB3cm90ZToKPj4+Pj4+Pj4gT24gNC8x Ni8xOSAzOjE5IFBNLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4+Pj4+Pj4+PiBPbiBUdWUsIEFw ciAxNiwgMjAxOSBhdCA4OjAyIEFNIEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4 LmNvbT4gd3JvdGU6Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBPbiA0LzE2LzE5IDI6NDQgUE0sIFRh bWFzIEsgTGVuZ3llbCB3cm90ZToKPj4+Pj4+Pj4+Pj4gT24gVHVlLCBBcHIgMTYsIDIwMTkgYXQg Mjo0NSBBTSBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQQo+Pj4+Pj4+Pj4+PiA8YWlzYWlsYUBiaXRk ZWZlbmRlci5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IFRoZSBjb2RlIGZv ciBnZXR0aW5nIHRoZSBlbnRyeSBhbmQgdGhlbiBwb3B1bGF0aW5nIHdhcyByZXBlYXRlZCBpbgo+ Pj4+Pj4+Pj4+Pj4gcDJtX2NoYW5nZV9hbHRwMm1fZ2ZuKCkgYW5kIGluIHAybV9zZXRfYWx0cDJt X21lbV9hY2Nlc3MoKS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBUaGUgY29kZSBpcyBub3cg aW4gb25lIHBsYWNlIHdpdGggYSBib29sIHBhcmFtIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGNob29z ZQo+Pj4+Pj4+Pj4+Pj4gaWYgaXQgcG9wdWxhdGVzIGFmdGVyIGdldF9lbnRyeSgpLgo+Pj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IElmIHJlbWFwcGluZyBpcyBiZWluZyBkb25lIHRoZW4gYm90aCB0 aGUgb2xkIGFuZCBuZXcgZ2ZuJ3Mgc2hvdWxkIGJlCj4+Pj4+Pj4+Pj4+PiB1bnNoYXJlZCBpbiB0 aGUgaG9zdHAybSBmb3Iga2VlcGluZyB0aGluZ3MgY29uc2lzdGVudC4gVGhlIHBhZ2UgdHlwZQo+ Pj4+Pj4+Pj4+Pj4gb2Ygb2xkX2dmbiB3YXMgYWxyZWFkeSBjaGVja2VkIHdoZXRoZXIgaXQncyBw Mm1fcmFtX3J3IGFuZCBiYWlsIGlmIGl0Cj4+Pj4+Pj4+Pj4+PiB3YXNuJ3Qgc28gZnVuY3Rpb25h bGl0eS13aXNlIHRoaXMganVzdCBzaW1wbGlmaWVzIHRoaW5ncyBhcyBhIHVzZXIKPj4+Pj4+Pj4+ Pj4+IGRvZXNuJ3QgaGF2ZSB0byByZXF1ZXN0IHVuc2hhcmluZyBtYW51YWxseSBiZWZvcmUgcmVt YXBwaW5nLgo+Pj4+Pj4+Pj4+Pj4gTm93LCBpZiB0aGUgbmV3X2dmbiBpcyBpbnZhbGlkIGl0IHNo b3VsZG4ndCBxdWVyeSB0aGUgaG9zdHAybSBhcwo+Pj4+Pj4+Pj4+Pj4gdGhhdCBpcyBlZmZlY3Rp dmVseSBhIHJlcXVlc3QgdG8gcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBhbHRwMm0uCj4+Pj4+ Pj4+Pj4+PiBCdXQgcHJvdmlkZWQgdGhhdCBzY2VuYXJpbyBpcyB1c2VkIG9ubHkgd2hlbiByZW1v dmluZyBlbnRyaWVzIHRoYXQKPj4+Pj4+Pj4+Pj4+IHdlcmUgcHJldmlvdXNseSByZW1hcHBlZC9j b3BpZWQgdG8gdGhlIGFsdHAybSwgdGhvc2UgZW50cmllcyBhbHJlYWR5Cj4+Pj4+Pj4+Pj4+PiB3 ZW50IHRocm91Z2ggUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUgYmVmb3JlLCBzbyBpdCB3b24ndCBo YXZlIGFuCj4+Pj4+Pj4+Pj4+PiBhZmZlY3Qgc28gdGhlIGNvcmUgZnVuY3Rpb24gZ2V0X2FsdHAy bV9lbnRyeSgpIGlzIGNhbGxpbmcKPj4+Pj4+Pj4+Pj4+IF9fZ2V0X2dmbl90eXBlX2FjY2Vzcygp IHdpdGggUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4g YWx0cDJtX2dldF9lbnRyeV9kaXJlY3QoKSBpcyBhbHNvIGNhbGxlZCBpbiBwMm1fc2V0X3N1cHBy ZXNzX3ZlKCkKPj4+Pj4+Pj4+Pj4+IGJlY2F1c2Ugb24gYSBuZXcgYWx0cDJtIHZpZXcgdGhlIGZ1 bmN0aW9uIHdpbGwgZmFpbCB3aXRoIGludmFsaWQgbWZuIGlmCj4+Pj4+Pj4+Pj4+PiBwMm0tPnNl dF9lbnRyeSgpIHdhcyBub3QgY2FsbGVkIGJlZm9yZS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgSXNhaWxhIDxhaXNhaWxhQGJpdGRlZmVuZGVyLmNv bT4KPj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5s YXBAY2l0cml4LmNvbT4KPj4+Pj4+Pj4+Pj4+IFJldmlld2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxn ZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gLS0tCj4+ Pj4+Pj4+Pj4+PiBDaGFuZ2VzIHNpbmNlIFY0Ogo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgIC0gQWRk IGFsdHAybSB0byBwYXRjaCBuYW1lCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgLSBDaGFuZ2UgZnVu YyBuYW1lIGZyb20gZ2V0X2FsdHAybV9lbnRyeSgpIHRvCj4+Pj4+Pj4+Pj4+PiBhbHRwMm1fZ2V0 X2VudHJ5KCkuCj4+Pj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pj4+ICAgIHhlbi9hcmNoL3g4Ni9t bS9tZW1fYWNjZXNzLmMgfCAzMCArKy0tLS0tLS0tLS0tCj4+Pj4+Pj4+Pj4+PiAgICB4ZW4vYXJj aC94ODYvbW0vcDJtLmMgICAgICAgIHwgODQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tCj4+Pj4+Pj4+Pj4+PiAgICB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgIHwgMTcg KysrKysrKysKPj4+Pj4+Pj4+Pj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygr KSwgNjUgZGVsZXRpb25zKC0pCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vz cy5jCj4+Pj4+Pj4+Pj4+PiBpbmRleCBhMTQ0YmIwY2U0Li5kZGZlMDE2OWMwIDEwMDY0NAo+Pj4+ Pj4+Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYwo+Pj4+Pj4+Pj4+Pj4g KysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYwo+Pj4+Pj4+Pj4+Pj4gQEAgLTI2Miwz NSArMjYyLDExIEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1fYWNjZXNzKHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAo+Pj4+Pj4+Pj4+Pj4gICAgICAgIG1mbl90IG1m bjsKPj4+Pj4+Pj4+Pj4+ICAgICAgICBwMm1fdHlwZV90IHQ7Cj4+Pj4+Pj4+Pj4+PiAgICAgICAg cDJtX2FjY2Vzc190IG9sZF9hOwo+Pj4+Pj4+Pj4+Pj4gLSAgICB1bnNpZ25lZCBpbnQgcGFnZV9v cmRlcjsKPj4+Pj4+Pj4+Pj4+IC0gICAgdW5zaWduZWQgbG9uZyBnZm5fbCA9IGdmbl94KGdmbik7 Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgaW50IHJjOwo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IC0g ICAgbWZuID0gYXAybS0+Z2V0X2VudHJ5KGFwMm0sIGdmbiwgJnQsICZvbGRfYSwgMCwgTlVMTCwg TlVMTCk7Cj4+Pj4+Pj4+Pj4+PiAtCj4+Pj4+Pj4+Pj4+PiAtICAgIC8qIENoZWNrIGhvc3QgcDJt IGlmIG5vIHZhbGlkIGVudHJ5IGluIGFsdGVybmF0ZSAqLwo+Pj4+Pj4+Pj4+Pj4gLSAgICBpZiAo ICFtZm5fdmFsaWQobWZuKSApCj4+Pj4+Pj4+Pj4+PiAtICAgIHsKPj4+Pj4+Pj4+Pj4+IC0KPj4+ Pj4+Pj4+Pj4+IC0gICAgICAgIG1mbiA9IF9fZ2V0X2dmbl90eXBlX2FjY2VzcyhocDJtLCBnZm5f bCwgJnQsICZvbGRfYSwKPj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQMk1fQUxMT0MgfCBQMk1fVU5TSEFSRSwgJnBhZ2Vfb3JkZXIsIDApOwo+Pj4+Pj4+ Pj4+Pj4gLQo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgcmMgPSAtRVNSQ0g7Cj4+Pj4+Pj4+Pj4+PiAt ICAgICAgICBpZiAoICFtZm5fdmFsaWQobWZuKSB8fCB0ICE9IHAybV9yYW1fcncgKQo+Pj4+Pj4+ Pj4+Pj4gLSAgICAgICAgICAgIHJldHVybiByYzsKPj4+Pj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4+Pj4+ IC0gICAgICAgIC8qIElmIHRoaXMgaXMgYSBzdXBlcnBhZ2UsIGNvcHkgdGhhdCBmaXJzdCAqLwo+ Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgaWYgKCBwYWdlX29yZGVyICE9IFBBR0VfT1JERVJfNEsgKQo+ Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgewo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbWFzayA9IH4oKDFVTCA8PCBwYWdlX29yZGVyKSAtIDEpOwo+Pj4+Pj4+Pj4+Pj4gLSAg ICAgICAgICAgIGdmbl90IGdmbjIgPSBfZ2ZuKGdmbl9sICYgbWFzayk7Cj4+Pj4+Pj4+Pj4+PiAt ICAgICAgICAgICAgbWZuX3QgbWZuMiA9IF9tZm4obWZuX3gobWZuKSAmIG1hc2spOwo+Pj4+Pj4+ Pj4+Pj4gLQo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgIHJjID0gYXAybS0+c2V0X2VudHJ5KGFw Mm0sIGdmbjIsIG1mbjIsIHBhZ2Vfb3JkZXIsIHQsIG9sZF9hLCAxKTsKPj4+Pj4+Pj4+Pj4+IC0g ICAgICAgICAgICBpZiAoIHJjICkKPj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgcmV0dXJu IHJjOwo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgfQo+Pj4+Pj4+Pj4+Pj4gLSAgICB9Cj4+Pj4+Pj4+ Pj4+PiArICAgIHJjID0gYWx0cDJtX2dldF9lbnRyeV9wcmVwb3B1bGF0ZShhcDJtLCBnZm4sICZt Zm4sICZ0LCAmb2xkX2EpOwo+Pj4+Pj4+Pj4+Pj4gKyAgICBpZiAoIHJjICkKPj4+Pj4+Pj4+Pj4+ ICsgICAgICAgIHJldHVybiByYzsKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgLyoK Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgKiBJbmhlcml0IHRoZSBvbGQgc3VwcHJlc3MgI1ZFIGJpdCB2 YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldCwgb3Igc2V0IGl0Cj4+Pj4+Pj4+Pj4+PiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4+Pj4+ Pj4+Pj4+PiBpbmRleCA5ZTgxYTMwY2M0Li43YmVkZmQ1OTNiIDEwMDY0NAo+Pj4+Pj4+Pj4+Pj4g LS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCj4+Pj4+Pj4+Pj4+PiArKysgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLmMKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gV291bGRuJ3QgaXQgbWFrZSBtb3Jl IHNlbnNlIHRvIHN0YXJ0IGFkZGluZyBuZXcgYWx0cDJtIGZ1bmN0aW9ucyB0bwo+Pj4+Pj4+Pj4+ PiBtbS9hbHRwMm0uYyBpbnN0ZWFkPyBQcm9iYWJseSB0aGUgYWx0cDJtIGZ1bmN0aW9ucyBmcm9t IG1tL3AybS5jIGNvdWxkCj4+Pj4+Pj4+Pj4+IGFsc28gYmUgcmVsb2NhdGVkIHRoZXJlIGF0IHNv bWUgcG9pbnQgaW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IEBAIC00Nzgs NiArNDc4LDQzIEBAIHZvaWQgcDJtX3VubG9ja19hbmRfdGxiX2ZsdXNoKHN0cnVjdCBwMm1fZG9t YWluICpwMm0pCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgIG1tX3dyaXRlX3VubG9jaygmcDJtLT5s b2NrKTsKPj4+Pj4+Pj4+Pj4+ICAgIH0KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiAraW50IGFs dHAybV9nZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKmFwMm0sCj4+Pj4+Pj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdmbiwgbWZuX3QgKm1mbiwgcDJtX3R5cGVf dCAqdCwKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX2FjY2Vz c190ICphLCBib29sIHByZXBvcHVsYXRlKQo+Pj4+Pj4+Pj4+Pj4gK3sKPj4+Pj4+Pj4+Pj4+ICsg ICAgKm1mbiA9IGFwMm0tPmdldF9lbnRyeShhcDJtLCBnZm4sIHQsIGEsIDAsIE5VTEwsIE5VTEwp Owo+Pj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+Pj4gKyAgICAvKiBDaGVjayBob3N0IHAybSBpZiBu byB2YWxpZCBlbnRyeSBpbiBhbHRlcm5hdGUgKi8KPj4+Pj4+Pj4+Pj4+ICsgICAgaWYgKCAhbWZu X3ZhbGlkKCptZm4pICYmICFwMm1faXNfaG9zdHAybShhcDJtKSApCj4+Pj4+Pj4+Pj4+PiArICAg IHsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpocDJtID0gcDJtX2dl dF9ob3N0cDJtKGFwMm0tPmRvbWFpbik7Cj4+Pj4+Pj4+Pj4+PiArICAgICAgICB1bnNpZ25lZCBp bnQgcGFnZV9vcmRlcjsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgIGludCByYzsKPj4+Pj4+Pj4+Pj4+ ICsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICptZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MoaHAy bSwgZ2ZuX3goZ2ZuKSwgdCwgYSwKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUsICZwYWdlX29yZGVyLCAwKTsK Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU28gZGVzcGl0ZSB0aGUgbmFtZSBiZWluZyBhbHRwMm1f Z2V0X2VudHJ5IHlvdSBub3cgcmV0dXJuIGFuIGVudHJ5Cj4+Pj4+Pj4+Pj4+IGZyb20gdGhlIGhv c3RwMm0sIGV2ZW4gaWYgcHJlcG9wdWxhdGUgaXMgZmFsc2UuIElmIHRoZSBjYWxsZXIga25vd3Mg aXQKPj4+Pj4+Pj4+Pj4gZG9lc24ndCB3YW50IHRoYXQgZW50cnkgdG8gYmUgY29waWVkIGludG8g dGhlIGFsdHAybSwgd2h5IG5vdCBoYXZlIGl0Cj4+Pj4+Pj4+Pj4+IGNhbGwgX19nZXRfZ2ZuX3R5 cGVfYWNjZXNzIGl0c2VsZiBmb3IgdGhlIGhvc3RwMm0/IElNSE8gdGhpcyBpcyBqdXN0Cj4+Pj4+ Pj4+Pj4+IGNvbmZ1c2luZyBhbmQgZG9lc24ndCBoZWxwIHJlYWRhYmlsaXR5IG9mIHRoZSBhbHRw Mm0gY29kZS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFlvdSByZXR1cm4gdGhlIGFwMm0gZW50cnkg aWYgaXQncyBwcmVzZW50LCBvciB0aGUgaHAybSBlbnRyeSBpZiBpdCdzCj4+Pj4+Pj4+Pj4gbm90 LiAgSXQncyBub3QgYSBsb3Qgb2YgZHVwbGljYXRpb24sIGJ1dCBpdCBtYWtlcyB0aGUgbG9naWMg Y2xlYW5lciBJCj4+Pj4+Pj4+Pj4gdGhpbms7IHdoeSBub3QgZGVkdXBsaWNhdGUgaXQ/Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gSSBoYXZlIG5vIHByb2JsZW0gd2l0aCBtYWtpbmcgdGhlIGNvZGUgbW9y ZSBzdHJlYW1saW5lZC4gVGhlIHByb2JsZW0gSQo+Pj4+Pj4+Pj4gaGF2ZSBpcyB0aGF0IHRoZSBm dW5jdGlvbidzIG5hbWUgZG9lc24ndCBzdWdnZXN0IGl0IHdvdWxkIGdldCB5b3UKPj4+Pj4+Pj4+ IGFueXRoaW5nIGJ1dCB0aGUgZW50cnkgZnJvbSB0aGUgc3BlY2lmaWVkIGFsdHAybS4gU28geW91 IGNvdWxkIGJlCj4+Pj4+Pj4+PiByZWFkaW5nIHRoZSBjb2RlIGFzc3VtaW5nIHlvdSBhcmUgZGVh bGluZyB3aXRoIGFuIGVudHJ5IGZyb20gdGhhdAo+Pj4+Pj4+Pj4gc3BlY2lmaWVkIHRhYmxlIHdo ZW4gaW4gZmFjdCB5b3UgYXJlIG5vdC4gVGhhdCBpcyBub3QgYW4gZXhwZWN0ZWQKPj4+Pj4+Pj4+ IGJlaGF2aW9yIGJhc2VkIG9uIGp1c3QgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLiBUaGlzIGlz IGdvaW5nIHRvIG1ha2UKPj4+Pj4+Pj4+IHJlYWRpbmcgdGhlIGFsdHAybSBjb2RlIHRoYXQgbXVj aCBoYXJkZXIgaW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gUmlnaHQgLS0gSSB3YXNu J3QgYSBodWdlIGZhbiBvZiAnZGlyZWN0JyBlaXRoZXI7IGl0IGRpZG4ndCByZWFsbHkgY29udmV5 Cj4+Pj4+Pj4+IHRvIG1lIDEwMCUgd2hhdCB0aGUgZnVuY3Rpb24gZGlkLiAgTXkgUG9DIGhhZCAi c2VldGhyb3VnaCIsIGJ1dCB0aGF0Cj4+Pj4+Pj4+IHdhc24ndCB0aGF0IGdyZWF0IGVpdGhlci4g ICJQZWVrIj8gIEFueSBvdGhlciBzdWdnZXN0aW9ucz8KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT3RoZXIg b3B0aW9uczoKPj4+Pj4+Pj4KPj4+Pj4+Pj4gKiBJZiB3ZSBoYXZlIGEgc2luZ2xlIGZ1bmN0aW9u IHdpdGggYSAjZGVmaW5lLCB0aGlzIG1pZ2h0IGdldCBhIGJpdAo+Pj4+Pj4+PiBlYXNpZXI7ICB3 ZSBjb3VsZCBoYXZlIG9uZSBiZSBBUDJNR0VUX2RvbnRfcHJlcG9wdWxhdGUgb3Igc29tZXRoaW5n Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAoIFdlIGNvdWxkIGhhdmUgdGhlICJjb3JlIiBmdW5jdGlvbiBu YW1lZCBfYWx0cDJtX2dldF9lbnRyeSwgYW5kIGhhdmUKPj4+Pj4+Pj4gYWx0cDJtX2dldF9lbnRy eSgpIGNhbGwgd2l0aCBwcmVwb3B1bGF0ZSA9IGZhbHNlLCBhbmQKPj4+Pj4+Pj4gYWx0cDJtX2dl dF9lbnRyeV9wcmVwb3B1bGF0ZSgpIGNhbGwgaXQgd2l0aCBwcmVwb3B1bGF0ZSA9IHRydWUuCj4+ Pj4+Pj4KPj4+Pj4+PiBUaGlzIG9wdGlvbiB3aXRoIG5vIGRlZmluZXMgc2VlbXMgdG8gc29sdmUg bW9yZSBvZiB0aGUgbmFtaW5nIHByb2JsZW1zCj4+Pj4+Pj4gYnV0IGl0IHdpbGwgc3RpbGwgaW50 cm9kdWNlIHRoZSBzcGFnaGV0dGkgY29kZS4gSSB2b3RlIGZvciB0aGlzIG9uZSBhbmQKPj4+Pj4+ PiBpZiBUYW1hcyBhZ3JlZXMgSSB3aWxsIGhhdmUgaXQgdGhpcyB3YXkgaW4gdGhlIG5leHQgdmVy c2lvbi4KPj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEhhdmluZyBhbHRwMm1fZ2V0X2VudHJ5IGFuZCBh bHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRlIHNlZW0gdG8gYmUgYQo+Pj4+Pj4gYmV0dGVyIG5h bWUgZm9yIHRoZW0sIGFzIGxvbmcgYXMgYWx0cDJtX2dldF9lbnRyeSBkb2Vzbid0IHJldHVybiBh bgo+Pj4+Pj4gZW50cnkgZnJvbSB0aGUgaG9zdHAybSBpZiB0aGVyZSBpc24ndCBvbmUgaW4gdGhl IGFsdHAybSwgYW5kCj4+Pj4+PiBhbHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRlIHJldHVybnMg YW4gZW50cnkgb25seSBpZiBwcmVwb3B1bGF0aW9uCj4+Pj4+PiBhY3R1YWxseSB3b3JrZWQuIElu IGJvdGggb2YgdGhvc2UgY2FzZXMgdGhlIGZ1bmN0aW9ucyB3b3VsZCBvbmx5Cj4+Pj4+PiByZXR1 cm4gZW50cmllcyBmcm9tIHRoZSBhbHRwMm0sIGFzIHRoZWlyIG5hbWUgYWN0dWFsbHkgc3VnZ2Vz dHMuCj4+Pj4+Cj4+Pj4+IFlvdSBzZWVtIHRvIGhhdmUgbWlzc2VkIHRoZSB3aG9sZSBwb2ludCBv ZiB0aGlzIHBhdGNoIHRoZW4uCj4+Pj4KPj4+PiBGb3JnaXZlIG1lIGJ1dCB0aGVuIEkgZG9uJ3Qg c2VlIGFueXdoZXJlIGluIHRoZSBwYXRjaCBkZXNjcmlwdGlvbiB0aGF0Cj4+Pj4gZXhwbGFpbiB3 aHkgdGhlc2UgZnVuY3Rpb25zIF9oYXZlIHRvXyBwZXJmb3JtIGEgZmFsbC1iYWNrIGFuZCByZXR1 cm4KPj4+PiBhbiBlbnRyeSBmcm9tIHRoZSBob3N0cDJtIGF0IGFsbCBjb3N0Lgo+Pj4KPj4+IFRo ZSBwcmltYXJ5IGVmZmVjdCBvZiB0aGlzIHBhdGNoIGlzIHRvIG1vdmUgZHVwbGljYXRlZCBjb2Rl IGludG8gYQo+Pj4gc2luZ2xlIGNvbW1vbiBmdW5jdGlvbi4gIFRoZSBjb2RlIGJlaW5nIGRlLWR1 cGxpY2F0ZWQ6Cj4+PiAgIDEuIFRyaWVzIHRvIHJlYWQgdGhlIGFsdHAybSBlbnRyeTsgaWYgaXQn cyB0aGVyZSBpdCB1c2VzIGl0Cj4+PiAgIDIuIElmIGl0J3Mgbm90IHRoZXJlLCBpdCB0cmllcyB0 byByZWFkIHRoZSBob3N0IHAybSBlbnRyeQo+Pj4gICAzLiBJbiBtb3N0IGNhc2VzIGl0IHRoZW4g cHJvcGFnYXRlcyB0aGUgaG9zdHAybSBlbnRyeSB0byB0aGUgYWx0cDJtIGVudHJ5Lgo+Pj4KPj4+ IE9idmlvdXNseSB0aGUgbmV3ICJjb21tb24iIGZ1bmN0aW9uIGhhcyB0byBkbyBpdCBiZWNhdXNl IHRoYXQncyB3aGF0IHRoZQo+Pj4gb3JpZ2luYWwgY29kZSBkb2VzLiAgVGhlIG9yaWdpbmFsIGNv ZGUgZG9lcyBpdCBiZWNhdXNlIHRoYXQncyB3aGF0Cj4+PiBhbHRwMm0gaXMgLS0gYSAicGF0Y2gi IG92ZXIgdGhlIGhvc3QgcDJtLCBzdWNoIHRoYXQgeW91IHVzZSB0aGUgYWx0cDJtCj4+PiBpZiBl bnRyaWVzIGFyZSBwcmVzZW50LCBidXQgdXNlIHRoZSBob3N0cDJtIG90aGVyd2lzZS4KPj4+Cj4+ Pj4+IEluc3RlYWQgb2Ygc2F5aW5nLCAiSSBkb24ndCBsaWtlIHRoZXNlIG5hbWVzIiAoYnV0IG5v dCBvZmZlcmluZwo+Pj4+PiBhbHRlcm5hdGl2ZSksIG9yIHNheWluZywgIklmIHlvdSB1c2UgdGhl c2UgbmFtZXMsIHRoZSBmdW5jdGlvbnMgaGF2ZSB0bwo+Pj4+PiBkbyB0aGUgZXhhY3Qgb3Bwb3Np dGUgb2Ygd2hhdCB0aGV5IGRvIGluIHRoaXMgcGF0Y2giLCBpdCB3b3VsZCBiZSBtb3JlCj4+Pj4+ IGNvbnN0cnVjdGl2ZSBpZiB5b3UgcHJvcG9zZWQgbmFtZXMgd2hpY2ggeW91IHdvdWxkIHByZWZl ciBmb3IgdGhlCj4+Pj4+IGZ1bmN0aW9uYWxpdHkgYWN0dWFsbHkgaW4gdGhpcyBwYXRjaC4KPj4+ Pj4KPj4+Pgo+Pj4+IEknbSBub3QgdGhlIG1haW50YWluZXIgb2YgdGhpcyBjb2RlIHNvIGZlZWwg ZnJlZSB0byBpZ25vcmUgbXkKPj4+PiBjb21tZW50cy4gSSBqdXN0IHNlZSB3YXkgdG9vIG1hbnkg ZnVuY3Rpb25zIGluIFhlbiB0aGF0IGFyZSAiZG9feCgpIgo+Pj4+IGJ1dCBpbiBpbiBmYWN0IHR1 cm4gb3V0IHRvIGJlICJkb194X2FuZF95X2FuZF96KCkiIHdoaWNoIGRvZXMgbm90IGhlbHAKPj4+ PiByZWFkYWJpbGl0eSBvciBldmVuIHJlYWxseSB1bmRlcnN0YW5kaW5nIHdoYXQgaXMgaGFwcGVu aW5nLiBJIGd1ZXNzIGF0Cj4+Pj4gbGVhc3QgYWRkaW5nIGNvbW1lbnRzIGRlc2NyaWJpbmcgdGhl c2UgYWRkaXRpb25hbCBhbmQgc29tZXRpbWVzCj4+Pj4gdW5leHBlY3RlZCBiZWhhdmlvcnMgd291 bGQgYmUgYW4gaW1wcm92ZW1lbnQuCj4+Pgo+Pj4gWW91IGFyZSBhIG1haW50YWluZXIgZm9yIG1l bV9hY2Nlc3MuYywgd2hpY2ggaGFzIGEgbm9uLXRyaXZpYWwgY2hhbmdlIGluCj4+PiB0aGlzIHBh dGNoLiAgSXQgY2FuIGdvIGluIHdpdGggUmF6dmFuJ3MgYWNrLCBidXQgbm90IHdoaWxlIHlvdSBo YXZlIG9wZW4KPj4+IG9iamVjdGlvbnMuCj4+Cj4+IFllcywgSSBtZWFudCB0aGF0IHdoZXJlIHRo aXMgY29kZSBpcyBiZWluZyByZWxvY2F0ZWQgdG8gaXMgbm8gbG9uZ2VyCj4+IHVuZGVyIG91ciBt ZW1fYWNjZXNzIHVtYnJlbGxhIHNvIEknbSBub3QgZ29pbmcgdG8gYmUgdGhlIG1haW50YWluZXIg b2YKPj4gaXQuIElmIHRoZSBuZXcgbWFpbnRhaW5lcnMgb2YgdGhpcyBjb2RlIGFyZSBPSyB3aXRo IGhvdyBpdCBpcywgdGhhbgo+PiB0aGF0J3MgdGhhdC4gVGhlIGNoYW5nZXMgYmVpbmcgbWFkZSBp biB0aGlzIHBhdGNoIHRvIG1lbV9hY2Nlc3MgSSBoYXZlCj4+IG5vIG9iamVjdGlvbiB0by4gVGhl cmUgYXQgbGVhc3QgaXRzIGltcGxpZWQgdGhhdCBhIGNvcHkgd2lsbCBoYXBwZW4KPj4gZnJvbSB0 aGUgaG9zdHAybSBvciBhbiBlcnJvciBpcyByZXR1cm5lZCBzbyB0aGUgZW50cnkgdGhhdCBfaXNf Cj4+IHJldHVybmVkIHNob3VsZCBub3QgYmUgdXNlZC4gQWx0aG91Z2ggaXQgd291bGQgYmUgYmV0 dGVyIGlmICptZm4gaXMKPj4gbm90IGNoYW5nZWQgdW50aWwgdGhlIGZpbmFsIHJldHVybiB3aXRo IG5vIGVycm9yLCBidXQgaXQncyBhIG1pbm9yCj4+IGVub3VnaCBpc3N1ZSB0aGF0IEkgd291bGQg bm90IGJsb2NrIHRoaXMgcGF0Y2ggYmVjYXVzZSBvZiBpdC4KPj4KPj4+Cj4+PiBJIGZlZWwgeW91 ciBwYWluIHdpdGggZnVuY3Rpb24gbmFtaW5nOyBJJ3ZlIGJlZW4gZGlnZ2luZyB0aHJvdWdoCj4+ PiB4ODYvbW0uYyByZWNlbnRseSBhbmQgdGhlIGZ1bmN0aW9uIG5hbWVzIGFyZSB1bm5lY2Vzc2Fy aWx5IGNvbmZ1c2luZy4gIEkKPj4+IGFsc28gYWdyZWUgdGhhdCAiYWx0cDJtX2dldF9lbnRyeSIg aXNuJ3QgdGVycmlibHkgaW5mb3JtYXRpdmUgKGFsdGhvdWdoCj4+PiBpdCdzIGEgYml0IG1vcmUg b2J2aW91cyBpZiB5b3Uga25vdyBob3cgYWx0cDJtIGlzIG1lYW50IHRvIHdvcmspLiAgSSdtCj4+ PiBqdXN0IHRyeWluZyB0byBtYWtlIHN1cmUgdGhhdCB0aGVyZSdzIGEgY2xlYXIgd2F5IGZvciBB bGV4YW5kcnUgdG8gbW92ZQo+Pj4gdGhpcyBwYXRjaCBmb3J3YXJkLiAgSSBkb24ndCBtaW5kIHRy eWluZyB0byBjb21lIHVwIHdpdGggYSBiZXR0ZXIgbmFtZSwKPj4+IGJ1dCB0aGUgcGF0Y2ggc2hv dWxkbid0IGJlIGJsb2NrZWQgaWYgd2UgY2FuJ3QuCj4+Pgo+Pj4gSSBhZ3JlZSB0aGF0IHRoZSBm dW5jdGlvbiBzaG91bGQgaGF2ZSBhIGNvbW1lbnQgdGhhdCBkZXNjcmliZXMgaXRzIHB1cnBvc2Uu Cj4+Pgo+Pj4gV2hhdCBhYm91dCAiYWx0cDJtX3Jlc29sdmVfZW50cnkoKSI/ICAiYWx0cDJtX2dl dF9lZmZlY3RpdmVfZW50cnkiPwo+Pgo+PiBQZXJoYXBzIGdldF9lZmZlY3RpdmVfZW50cnkgaXMg dGhlIGJlc3Qgc28gZmFyIGJ1dCBldmVuIHRoYXQgSSB3b3VsZAo+PiBoYXZlIG5vIGlkZWEgd2hh dCBpdCBtZWFucyB3aXRob3V0IHJlYWRpbmcgdGhlIGNvZGUgb3IgcmVhZGluZyB0aGUKPj4gY29t bWVudCBkZXNjcmliaW5nIHRoZSBmdW5jdGlvbi4gSG93IGFib3V0Cj4+ICJwMm1fc2VhcmNoX2Fs dHAybV90aGVuX2hvc3RwMm0iIHdpdGggYSBjb21tZW50IHNheWluZyBob3N0cDJtIGlzIGEKPj4g ZmFsbGJhY2s/Cj4+Cj4gCj4gSSBndWVzcyBwMm1fc2VhcmNoX2FsdHAybV90aGVuX2hvc3RwMm0g aXMgYSBiaXQgbG9uZyBidXQgaXQgc29sdmVzIHRoZSAKPiBwcm9ibGVtLiBJZiBHb2VyZ2UgaXMg b2sgd2l0aCB0aGlzIEkgd2lsbCBwdXQgaXQgaW4uCj4gCj4gSnVzdCB0byBjbGFyaWZ5LCBhbHRw Mm1fZ2V0X2VudHJ5IHdpbGwgY2hhbmdlIHRvIAo+IHAybV9zZWFyY2hfYWx0cDJtX3RoZW5faG9z dHAybSBhbmQgdGhlbiB0aGUgcmVzdCB3aWxsIHJlbWFpbiB0aGUgc2FtZSAKPiAoYWx0cDJtX2dl dF9lbnRyeV9kaXJlY3QsIGFsdHAybV9nZXRfZW50cnlfcHJlcG9wdWxhdGUpPyBBbmQgdGhlbiBh ZGQgYSAKPiBjb21tZW50IGZvciB0aGUgbWFpbiBmdW5jdGlvbi4KPiAKPiBIb3BlIEkndmUgZ290 IHRoYXQgcmlnaHQgZm9ybSB0aGUgbG9uZyBuYW1lIGNoYW5naW5nIGNvbnZlcnNhdGlvbi4KClVu Zm9ydHVuYXRlbHksIGl0IGxvb2tzIGxpa2UgeW91IGhhdmVuJ3QuIDotKSAgVGFtYXMnIGluaXRp YWwgb2JqZWN0aW9uLAphcyBJIHVuZGVyc3RhbmQgdGhlbSwgd2VyZSBzcGVjaWZpY2FsbHkgdGhh dCBhbHRwMm1fZ2V0X2VudHJ5X2RpcmVjdCgpCnNvdW5kcyB0byBoaW0gbGlrZSBpdCBzaG91bGQg ImRpcmVjdGx5IiBnZXQgdGhlIGJhY2tpbmcgdmFsdWUgZnJvbSB0aGUKaG9zdHAybSBhbHdheXMs IGFuZCBuZXZlciBnZXQgdGhlICJwYXRjaGVkIiB2YWx1ZSBmcm9tIHRoZSBhbHRwMm0uCgpCdXQg cDJtX3NlYXJjaF9hbHRwMm1fdGhlbl9ob3N0cDJtKCkgaXNuJ3QgYmV0dGVyLCBiZWNhdXNlIGl0 IGRvZXNuJ3QKbWVudGlvbiB0aGF0IHlvdSBzdG9wIHNlYXJjaGluZyB0aGUgYWx0cDJtIGlmIHlv dSBmb3VuZCB3aGF0IHlvdSB3ZXJlCmxvb2tpbmcgZm9yLCBub3Igd2hhdCB5b3UncmUgc2VhcmNo aW5nIGZvciwgbm9yIHdoeS4KCkkgdGhpbmsgYWx0cDJtX2dldF9lZmZlY3RpdmVfZW50cnkoKSBp cyB0aGUgYmVzdC4gICJFZmZlY3RpdmUiIGluIENTIGlzCmNvbW1vbmx5IHVzZWQgdG8gbWVhbiwg InRoZSBlbmQgcmVzdWx0IGFmdGVyIGNvbWJpbmluZyBzZXZlcmFsIGlucHV0cyIKKGUuZy4sICJl ZmZlY3RpdmUgYWRkcmVzcyIgaXMgb2Z0ZW4gYmFzZSArIG9mZnNldCk7IElmIHlvdSBrbm93IHdo YXQKYWx0cDJtIGlzLCB0aGVuIGl0J3MgcHJldHR5IG9idmlvdXMgd2hhdCB0aGUgaW5wdXRzIHdv dWxkIGJlIGFuZCBob3cKaXQncyB1c2VkLiAgSWYgeW91ICpkb24ndCoga25vdyB3aGF0IGFsdHAy bSBpcywgdGhlbgoicDJtX3NlYXJjaF9hbHRwMm1fdGhlbl9ob3N0cDJtKCkiIGlzIHByb2JhYmx5 IGdvaW5nIHRvIGJlIGp1c3QgYXMKbXlzdGlmeWluZy4KClByb2JhYmx5IGp1c3QgaGF2ZSBhIHNp bmdsZSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgJ3ByZXBvcHVsYXRlIGFyZ3VtZW50OwphbmQgbWFr ZSBzb21lICNkZWZpbmVzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZvbGxvdzsgcHJvYmFibHkgc29t ZXRoaW5nCmxpa2UgJ0FQMk1HRVRfcHJlcG9wdWxhdGUnIGFuZCAnQVAyTUdFVF9xdWVyeScuCgpB bmQgbWFrZSBzdXJlIHRvIGhhdmUgYSBjb21tZW50IGRlc2NyaWJpbmcgd2hhdCB0aGUgZnVuY3Rp b24gZG9lcy4KClRoYW5rcywKCiAtR2VvcmdlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 439B4C10F14 for ; Tue, 23 Apr 2019 11:45:29 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0CFD120811 for ; Tue, 23 Apr 2019 11:45:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0CFD120811 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hItrJ-00040T-LH; Tue, 23 Apr 2019 11:45:09 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hItrH-00040O-RA for xen-devel@lists.xenproject.org; Tue, 23 Apr 2019 11:45:07 +0000 X-Inumbo-ID: 3a79b9ac-65bd-11e9-9b70-334e98c472ca Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 3a79b9ac-65bd-11e9-9b70-334e98c472ca; Tue, 23 Apr 2019 11:45:02 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.60,385,1549929600"; d="scan'208";a="84178403" To: Alexandru Stefan ISAILA , Tamas K Lengyel References: <20190416084531.5084-1-aisaila@bitdefender.com> <51aac97d-3773-f3df-204d-55912f5915db@citrix.com> <73576bc2-5ab2-b5ef-ca0b-fb50b4cd7775@citrix.com> From: George Dunlap Openpgp: preference=signencrypt Autocrypt: addr=george.dunlap@citrix.com; prefer-encrypt=mutual; keydata= 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 rIFfe2Dk+lD9A9BVd2rfoHA= Message-ID: Date: Tue, 23 Apr 2019 12:44:57 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v5] x86/altp2m: Aggregate get entry and populate into common funcs X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , "jbeulich@suse.com" , "xen-devel@lists.xenproject.org" , "roger.pau@citrix.com" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190423114457.yNGW0jRKpD8uvMTt7SbgrYaOpLC8n1Ied69e5YsDVMI@z> T24gNC8xOS8xOSA5OjMyIEFNLCBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQSB3cm90ZToKPiAKPiAK PiBPbiAxOC4wNC4yMDE5IDIxOjQyLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4+IE9uIFRodSwg QXByIDE4LCAyMDE5IGF0IDExOjAyIEFNIEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gT24gNC8xOC8xOSAyOjU5IFBNLCBUYW1hcyBLIExlbmd5 ZWwgd3JvdGU6Cj4+Pj4gT24gVGh1LCBBcHIgMTgsIDIwMTkgYXQgMzo1MyBBTSBHZW9yZ2UgRHVu bGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+IHdyb3RlOgo+Pj4+Pgo+Pj4+PiBPbiA0LzE3 LzE5IDc6MjIgUE0sIFRhbWFzIEsgTGVuZ3llbCB3cm90ZToKPj4+Pj4+IE9uIFdlZCwgQXByIDE3 LCAyMDE5IGF0IDE6MTUgQU0gQWxleGFuZHJ1IFN0ZWZhbiBJU0FJTEEKPj4+Pj4+IDxhaXNhaWxh QGJpdGRlZmVuZGVyLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4g T24gMTYuMDQuMjAxOSAxODowNywgR2VvcmdlIER1bmxhcCB3cm90ZToKPj4+Pj4+Pj4gT24gNC8x Ni8xOSAzOjE5IFBNLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4+Pj4+Pj4+PiBPbiBUdWUsIEFw ciAxNiwgMjAxOSBhdCA4OjAyIEFNIEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4 LmNvbT4gd3JvdGU6Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBPbiA0LzE2LzE5IDI6NDQgUE0sIFRh bWFzIEsgTGVuZ3llbCB3cm90ZToKPj4+Pj4+Pj4+Pj4gT24gVHVlLCBBcHIgMTYsIDIwMTkgYXQg Mjo0NSBBTSBBbGV4YW5kcnUgU3RlZmFuIElTQUlMQQo+Pj4+Pj4+Pj4+PiA8YWlzYWlsYUBiaXRk ZWZlbmRlci5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IFRoZSBjb2RlIGZv ciBnZXR0aW5nIHRoZSBlbnRyeSBhbmQgdGhlbiBwb3B1bGF0aW5nIHdhcyByZXBlYXRlZCBpbgo+ Pj4+Pj4+Pj4+Pj4gcDJtX2NoYW5nZV9hbHRwMm1fZ2ZuKCkgYW5kIGluIHAybV9zZXRfYWx0cDJt X21lbV9hY2Nlc3MoKS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiBUaGUgY29kZSBpcyBub3cg aW4gb25lIHBsYWNlIHdpdGggYSBib29sIHBhcmFtIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGNob29z ZQo+Pj4+Pj4+Pj4+Pj4gaWYgaXQgcG9wdWxhdGVzIGFmdGVyIGdldF9lbnRyeSgpLgo+Pj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IElmIHJlbWFwcGluZyBpcyBiZWluZyBkb25lIHRoZW4gYm90aCB0 aGUgb2xkIGFuZCBuZXcgZ2ZuJ3Mgc2hvdWxkIGJlCj4+Pj4+Pj4+Pj4+PiB1bnNoYXJlZCBpbiB0 aGUgaG9zdHAybSBmb3Iga2VlcGluZyB0aGluZ3MgY29uc2lzdGVudC4gVGhlIHBhZ2UgdHlwZQo+ Pj4+Pj4+Pj4+Pj4gb2Ygb2xkX2dmbiB3YXMgYWxyZWFkeSBjaGVja2VkIHdoZXRoZXIgaXQncyBw Mm1fcmFtX3J3IGFuZCBiYWlsIGlmIGl0Cj4+Pj4+Pj4+Pj4+PiB3YXNuJ3Qgc28gZnVuY3Rpb25h bGl0eS13aXNlIHRoaXMganVzdCBzaW1wbGlmaWVzIHRoaW5ncyBhcyBhIHVzZXIKPj4+Pj4+Pj4+ Pj4+IGRvZXNuJ3QgaGF2ZSB0byByZXF1ZXN0IHVuc2hhcmluZyBtYW51YWxseSBiZWZvcmUgcmVt YXBwaW5nLgo+Pj4+Pj4+Pj4+Pj4gTm93LCBpZiB0aGUgbmV3X2dmbiBpcyBpbnZhbGlkIGl0IHNo b3VsZG4ndCBxdWVyeSB0aGUgaG9zdHAybSBhcwo+Pj4+Pj4+Pj4+Pj4gdGhhdCBpcyBlZmZlY3Rp dmVseSBhIHJlcXVlc3QgdG8gcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBhbHRwMm0uCj4+Pj4+ Pj4+Pj4+PiBCdXQgcHJvdmlkZWQgdGhhdCBzY2VuYXJpbyBpcyB1c2VkIG9ubHkgd2hlbiByZW1v dmluZyBlbnRyaWVzIHRoYXQKPj4+Pj4+Pj4+Pj4+IHdlcmUgcHJldmlvdXNseSByZW1hcHBlZC9j b3BpZWQgdG8gdGhlIGFsdHAybSwgdGhvc2UgZW50cmllcyBhbHJlYWR5Cj4+Pj4+Pj4+Pj4+PiB3 ZW50IHRocm91Z2ggUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUgYmVmb3JlLCBzbyBpdCB3b24ndCBo YXZlIGFuCj4+Pj4+Pj4+Pj4+PiBhZmZlY3Qgc28gdGhlIGNvcmUgZnVuY3Rpb24gZ2V0X2FsdHAy bV9lbnRyeSgpIGlzIGNhbGxpbmcKPj4+Pj4+Pj4+Pj4+IF9fZ2V0X2dmbl90eXBlX2FjY2Vzcygp IHdpdGggUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUuCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4g YWx0cDJtX2dldF9lbnRyeV9kaXJlY3QoKSBpcyBhbHNvIGNhbGxlZCBpbiBwMm1fc2V0X3N1cHBy ZXNzX3ZlKCkKPj4+Pj4+Pj4+Pj4+IGJlY2F1c2Ugb24gYSBuZXcgYWx0cDJtIHZpZXcgdGhlIGZ1 bmN0aW9uIHdpbGwgZmFpbCB3aXRoIGludmFsaWQgbWZuIGlmCj4+Pj4+Pj4+Pj4+PiBwMm0tPnNl dF9lbnRyeSgpIHdhcyBub3QgY2FsbGVkIGJlZm9yZS4KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+ PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgSXNhaWxhIDxhaXNhaWxhQGJpdGRlZmVuZGVyLmNv bT4KPj4+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5s YXBAY2l0cml4LmNvbT4KPj4+Pj4+Pj4+Pj4+IFJldmlld2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxn ZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gLS0tCj4+ Pj4+Pj4+Pj4+PiBDaGFuZ2VzIHNpbmNlIFY0Ogo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgIC0gQWRk IGFsdHAybSB0byBwYXRjaCBuYW1lCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgLSBDaGFuZ2UgZnVu YyBuYW1lIGZyb20gZ2V0X2FsdHAybV9lbnRyeSgpIHRvCj4+Pj4+Pj4+Pj4+PiBhbHRwMm1fZ2V0 X2VudHJ5KCkuCj4+Pj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+Pj4+ICAgIHhlbi9hcmNoL3g4Ni9t bS9tZW1fYWNjZXNzLmMgfCAzMCArKy0tLS0tLS0tLS0tCj4+Pj4+Pj4+Pj4+PiAgICB4ZW4vYXJj aC94ODYvbW0vcDJtLmMgICAgICAgIHwgODQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tCj4+Pj4+Pj4+Pj4+PiAgICB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgIHwgMTcg KysrKysrKysKPj4+Pj4+Pj4+Pj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygr KSwgNjUgZGVsZXRpb25zKC0pCj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vz cy5jCj4+Pj4+Pj4+Pj4+PiBpbmRleCBhMTQ0YmIwY2U0Li5kZGZlMDE2OWMwIDEwMDY0NAo+Pj4+ Pj4+Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYwo+Pj4+Pj4+Pj4+Pj4g KysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3MuYwo+Pj4+Pj4+Pj4+Pj4gQEAgLTI2Miwz NSArMjYyLDExIEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1fYWNjZXNzKHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAo+Pj4+Pj4+Pj4+Pj4gICAgICAgIG1mbl90IG1m bjsKPj4+Pj4+Pj4+Pj4+ICAgICAgICBwMm1fdHlwZV90IHQ7Cj4+Pj4+Pj4+Pj4+PiAgICAgICAg cDJtX2FjY2Vzc190IG9sZF9hOwo+Pj4+Pj4+Pj4+Pj4gLSAgICB1bnNpZ25lZCBpbnQgcGFnZV9v cmRlcjsKPj4+Pj4+Pj4+Pj4+IC0gICAgdW5zaWduZWQgbG9uZyBnZm5fbCA9IGdmbl94KGdmbik7 Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgaW50IHJjOwo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IC0g ICAgbWZuID0gYXAybS0+Z2V0X2VudHJ5KGFwMm0sIGdmbiwgJnQsICZvbGRfYSwgMCwgTlVMTCwg TlVMTCk7Cj4+Pj4+Pj4+Pj4+PiAtCj4+Pj4+Pj4+Pj4+PiAtICAgIC8qIENoZWNrIGhvc3QgcDJt IGlmIG5vIHZhbGlkIGVudHJ5IGluIGFsdGVybmF0ZSAqLwo+Pj4+Pj4+Pj4+Pj4gLSAgICBpZiAo ICFtZm5fdmFsaWQobWZuKSApCj4+Pj4+Pj4+Pj4+PiAtICAgIHsKPj4+Pj4+Pj4+Pj4+IC0KPj4+ Pj4+Pj4+Pj4+IC0gICAgICAgIG1mbiA9IF9fZ2V0X2dmbl90eXBlX2FjY2VzcyhocDJtLCBnZm5f bCwgJnQsICZvbGRfYSwKPj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQMk1fQUxMT0MgfCBQMk1fVU5TSEFSRSwgJnBhZ2Vfb3JkZXIsIDApOwo+Pj4+Pj4+ Pj4+Pj4gLQo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgcmMgPSAtRVNSQ0g7Cj4+Pj4+Pj4+Pj4+PiAt ICAgICAgICBpZiAoICFtZm5fdmFsaWQobWZuKSB8fCB0ICE9IHAybV9yYW1fcncgKQo+Pj4+Pj4+ Pj4+Pj4gLSAgICAgICAgICAgIHJldHVybiByYzsKPj4+Pj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4+Pj4+ IC0gICAgICAgIC8qIElmIHRoaXMgaXMgYSBzdXBlcnBhZ2UsIGNvcHkgdGhhdCBmaXJzdCAqLwo+ Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgaWYgKCBwYWdlX29yZGVyICE9IFBBR0VfT1JERVJfNEsgKQo+ Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgewo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbWFzayA9IH4oKDFVTCA8PCBwYWdlX29yZGVyKSAtIDEpOwo+Pj4+Pj4+Pj4+Pj4gLSAg ICAgICAgICAgIGdmbl90IGdmbjIgPSBfZ2ZuKGdmbl9sICYgbWFzayk7Cj4+Pj4+Pj4+Pj4+PiAt ICAgICAgICAgICAgbWZuX3QgbWZuMiA9IF9tZm4obWZuX3gobWZuKSAmIG1hc2spOwo+Pj4+Pj4+ Pj4+Pj4gLQo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgIHJjID0gYXAybS0+c2V0X2VudHJ5KGFw Mm0sIGdmbjIsIG1mbjIsIHBhZ2Vfb3JkZXIsIHQsIG9sZF9hLCAxKTsKPj4+Pj4+Pj4+Pj4+IC0g ICAgICAgICAgICBpZiAoIHJjICkKPj4+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgcmV0dXJu IHJjOwo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgfQo+Pj4+Pj4+Pj4+Pj4gLSAgICB9Cj4+Pj4+Pj4+ Pj4+PiArICAgIHJjID0gYWx0cDJtX2dldF9lbnRyeV9wcmVwb3B1bGF0ZShhcDJtLCBnZm4sICZt Zm4sICZ0LCAmb2xkX2EpOwo+Pj4+Pj4+Pj4+Pj4gKyAgICBpZiAoIHJjICkKPj4+Pj4+Pj4+Pj4+ ICsgICAgICAgIHJldHVybiByYzsKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgLyoK Pj4+Pj4+Pj4+Pj4+ICAgICAgICAgKiBJbmhlcml0IHRoZSBvbGQgc3VwcHJlc3MgI1ZFIGJpdCB2 YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldCwgb3Igc2V0IGl0Cj4+Pj4+Pj4+Pj4+PiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCj4+Pj4+ Pj4+Pj4+PiBpbmRleCA5ZTgxYTMwY2M0Li43YmVkZmQ1OTNiIDEwMDY0NAo+Pj4+Pj4+Pj4+Pj4g LS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCj4+Pj4+Pj4+Pj4+PiArKysgYi94ZW4vYXJjaC94 ODYvbW0vcDJtLmMKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gV291bGRuJ3QgaXQgbWFrZSBtb3Jl IHNlbnNlIHRvIHN0YXJ0IGFkZGluZyBuZXcgYWx0cDJtIGZ1bmN0aW9ucyB0bwo+Pj4+Pj4+Pj4+ PiBtbS9hbHRwMm0uYyBpbnN0ZWFkPyBQcm9iYWJseSB0aGUgYWx0cDJtIGZ1bmN0aW9ucyBmcm9t IG1tL3AybS5jIGNvdWxkCj4+Pj4+Pj4+Pj4+IGFsc28gYmUgcmVsb2NhdGVkIHRoZXJlIGF0IHNv bWUgcG9pbnQgaW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IEBAIC00Nzgs NiArNDc4LDQzIEBAIHZvaWQgcDJtX3VubG9ja19hbmRfdGxiX2ZsdXNoKHN0cnVjdCBwMm1fZG9t YWluICpwMm0pCj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgIG1tX3dyaXRlX3VubG9jaygmcDJtLT5s b2NrKTsKPj4+Pj4+Pj4+Pj4+ICAgIH0KPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiAraW50IGFs dHAybV9nZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKmFwMm0sCj4+Pj4+Pj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdmbiwgbWZuX3QgKm1mbiwgcDJtX3R5cGVf dCAqdCwKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX2FjY2Vz c190ICphLCBib29sIHByZXBvcHVsYXRlKQo+Pj4+Pj4+Pj4+Pj4gK3sKPj4+Pj4+Pj4+Pj4+ICsg ICAgKm1mbiA9IGFwMm0tPmdldF9lbnRyeShhcDJtLCBnZm4sIHQsIGEsIDAsIE5VTEwsIE5VTEwp Owo+Pj4+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4+Pj4gKyAgICAvKiBDaGVjayBob3N0IHAybSBpZiBu byB2YWxpZCBlbnRyeSBpbiBhbHRlcm5hdGUgKi8KPj4+Pj4+Pj4+Pj4+ICsgICAgaWYgKCAhbWZu X3ZhbGlkKCptZm4pICYmICFwMm1faXNfaG9zdHAybShhcDJtKSApCj4+Pj4+Pj4+Pj4+PiArICAg IHsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpocDJtID0gcDJtX2dl dF9ob3N0cDJtKGFwMm0tPmRvbWFpbik7Cj4+Pj4+Pj4+Pj4+PiArICAgICAgICB1bnNpZ25lZCBp bnQgcGFnZV9vcmRlcjsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgIGludCByYzsKPj4+Pj4+Pj4+Pj4+ ICsKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICptZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MoaHAy bSwgZ2ZuX3goZ2ZuKSwgdCwgYSwKPj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUsICZwYWdlX29yZGVyLCAwKTsK Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gU28gZGVzcGl0ZSB0aGUgbmFtZSBiZWluZyBhbHRwMm1f Z2V0X2VudHJ5IHlvdSBub3cgcmV0dXJuIGFuIGVudHJ5Cj4+Pj4+Pj4+Pj4+IGZyb20gdGhlIGhv c3RwMm0sIGV2ZW4gaWYgcHJlcG9wdWxhdGUgaXMgZmFsc2UuIElmIHRoZSBjYWxsZXIga25vd3Mg aXQKPj4+Pj4+Pj4+Pj4gZG9lc24ndCB3YW50IHRoYXQgZW50cnkgdG8gYmUgY29waWVkIGludG8g dGhlIGFsdHAybSwgd2h5IG5vdCBoYXZlIGl0Cj4+Pj4+Pj4+Pj4+IGNhbGwgX19nZXRfZ2ZuX3R5 cGVfYWNjZXNzIGl0c2VsZiBmb3IgdGhlIGhvc3RwMm0/IElNSE8gdGhpcyBpcyBqdXN0Cj4+Pj4+ Pj4+Pj4+IGNvbmZ1c2luZyBhbmQgZG9lc24ndCBoZWxwIHJlYWRhYmlsaXR5IG9mIHRoZSBhbHRw Mm0gY29kZS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFlvdSByZXR1cm4gdGhlIGFwMm0gZW50cnkg aWYgaXQncyBwcmVzZW50LCBvciB0aGUgaHAybSBlbnRyeSBpZiBpdCdzCj4+Pj4+Pj4+Pj4gbm90 LiAgSXQncyBub3QgYSBsb3Qgb2YgZHVwbGljYXRpb24sIGJ1dCBpdCBtYWtlcyB0aGUgbG9naWMg Y2xlYW5lciBJCj4+Pj4+Pj4+Pj4gdGhpbms7IHdoeSBub3QgZGVkdXBsaWNhdGUgaXQ/Cj4+Pj4+ Pj4+Pgo+Pj4+Pj4+Pj4gSSBoYXZlIG5vIHByb2JsZW0gd2l0aCBtYWtpbmcgdGhlIGNvZGUgbW9y ZSBzdHJlYW1saW5lZC4gVGhlIHByb2JsZW0gSQo+Pj4+Pj4+Pj4gaGF2ZSBpcyB0aGF0IHRoZSBm dW5jdGlvbidzIG5hbWUgZG9lc24ndCBzdWdnZXN0IGl0IHdvdWxkIGdldCB5b3UKPj4+Pj4+Pj4+ IGFueXRoaW5nIGJ1dCB0aGUgZW50cnkgZnJvbSB0aGUgc3BlY2lmaWVkIGFsdHAybS4gU28geW91 IGNvdWxkIGJlCj4+Pj4+Pj4+PiByZWFkaW5nIHRoZSBjb2RlIGFzc3VtaW5nIHlvdSBhcmUgZGVh bGluZyB3aXRoIGFuIGVudHJ5IGZyb20gdGhhdAo+Pj4+Pj4+Pj4gc3BlY2lmaWVkIHRhYmxlIHdo ZW4gaW4gZmFjdCB5b3UgYXJlIG5vdC4gVGhhdCBpcyBub3QgYW4gZXhwZWN0ZWQKPj4+Pj4+Pj4+ IGJlaGF2aW9yIGJhc2VkIG9uIGp1c3QgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLiBUaGlzIGlz IGdvaW5nIHRvIG1ha2UKPj4+Pj4+Pj4+IHJlYWRpbmcgdGhlIGFsdHAybSBjb2RlIHRoYXQgbXVj aCBoYXJkZXIgaW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gUmlnaHQgLS0gSSB3YXNu J3QgYSBodWdlIGZhbiBvZiAnZGlyZWN0JyBlaXRoZXI7IGl0IGRpZG4ndCByZWFsbHkgY29udmV5 Cj4+Pj4+Pj4+IHRvIG1lIDEwMCUgd2hhdCB0aGUgZnVuY3Rpb24gZGlkLiAgTXkgUG9DIGhhZCAi c2VldGhyb3VnaCIsIGJ1dCB0aGF0Cj4+Pj4+Pj4+IHdhc24ndCB0aGF0IGdyZWF0IGVpdGhlci4g ICJQZWVrIj8gIEFueSBvdGhlciBzdWdnZXN0aW9ucz8KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT3RoZXIg b3B0aW9uczoKPj4+Pj4+Pj4KPj4+Pj4+Pj4gKiBJZiB3ZSBoYXZlIGEgc2luZ2xlIGZ1bmN0aW9u IHdpdGggYSAjZGVmaW5lLCB0aGlzIG1pZ2h0IGdldCBhIGJpdAo+Pj4+Pj4+PiBlYXNpZXI7ICB3 ZSBjb3VsZCBoYXZlIG9uZSBiZSBBUDJNR0VUX2RvbnRfcHJlcG9wdWxhdGUgb3Igc29tZXRoaW5n Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAoIFdlIGNvdWxkIGhhdmUgdGhlICJjb3JlIiBmdW5jdGlvbiBu YW1lZCBfYWx0cDJtX2dldF9lbnRyeSwgYW5kIGhhdmUKPj4+Pj4+Pj4gYWx0cDJtX2dldF9lbnRy eSgpIGNhbGwgd2l0aCBwcmVwb3B1bGF0ZSA9IGZhbHNlLCBhbmQKPj4+Pj4+Pj4gYWx0cDJtX2dl dF9lbnRyeV9wcmVwb3B1bGF0ZSgpIGNhbGwgaXQgd2l0aCBwcmVwb3B1bGF0ZSA9IHRydWUuCj4+ Pj4+Pj4KPj4+Pj4+PiBUaGlzIG9wdGlvbiB3aXRoIG5vIGRlZmluZXMgc2VlbXMgdG8gc29sdmUg bW9yZSBvZiB0aGUgbmFtaW5nIHByb2JsZW1zCj4+Pj4+Pj4gYnV0IGl0IHdpbGwgc3RpbGwgaW50 cm9kdWNlIHRoZSBzcGFnaGV0dGkgY29kZS4gSSB2b3RlIGZvciB0aGlzIG9uZSBhbmQKPj4+Pj4+ PiBpZiBUYW1hcyBhZ3JlZXMgSSB3aWxsIGhhdmUgaXQgdGhpcyB3YXkgaW4gdGhlIG5leHQgdmVy c2lvbi4KPj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEhhdmluZyBhbHRwMm1fZ2V0X2VudHJ5IGFuZCBh bHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRlIHNlZW0gdG8gYmUgYQo+Pj4+Pj4gYmV0dGVyIG5h bWUgZm9yIHRoZW0sIGFzIGxvbmcgYXMgYWx0cDJtX2dldF9lbnRyeSBkb2Vzbid0IHJldHVybiBh bgo+Pj4+Pj4gZW50cnkgZnJvbSB0aGUgaG9zdHAybSBpZiB0aGVyZSBpc24ndCBvbmUgaW4gdGhl IGFsdHAybSwgYW5kCj4+Pj4+PiBhbHRwMm1fZ2V0X2VudHJ5X3ByZXBvcHVsYXRlIHJldHVybnMg YW4gZW50cnkgb25seSBpZiBwcmVwb3B1bGF0aW9uCj4+Pj4+PiBhY3R1YWxseSB3b3JrZWQuIElu IGJvdGggb2YgdGhvc2UgY2FzZXMgdGhlIGZ1bmN0aW9ucyB3b3VsZCBvbmx5Cj4+Pj4+PiByZXR1 cm4gZW50cmllcyBmcm9tIHRoZSBhbHRwMm0sIGFzIHRoZWlyIG5hbWUgYWN0dWFsbHkgc3VnZ2Vz dHMuCj4+Pj4+Cj4+Pj4+IFlvdSBzZWVtIHRvIGhhdmUgbWlzc2VkIHRoZSB3aG9sZSBwb2ludCBv ZiB0aGlzIHBhdGNoIHRoZW4uCj4+Pj4KPj4+PiBGb3JnaXZlIG1lIGJ1dCB0aGVuIEkgZG9uJ3Qg c2VlIGFueXdoZXJlIGluIHRoZSBwYXRjaCBkZXNjcmlwdGlvbiB0aGF0Cj4+Pj4gZXhwbGFpbiB3 aHkgdGhlc2UgZnVuY3Rpb25zIF9oYXZlIHRvXyBwZXJmb3JtIGEgZmFsbC1iYWNrIGFuZCByZXR1 cm4KPj4+PiBhbiBlbnRyeSBmcm9tIHRoZSBob3N0cDJtIGF0IGFsbCBjb3N0Lgo+Pj4KPj4+IFRo ZSBwcmltYXJ5IGVmZmVjdCBvZiB0aGlzIHBhdGNoIGlzIHRvIG1vdmUgZHVwbGljYXRlZCBjb2Rl IGludG8gYQo+Pj4gc2luZ2xlIGNvbW1vbiBmdW5jdGlvbi4gIFRoZSBjb2RlIGJlaW5nIGRlLWR1 cGxpY2F0ZWQ6Cj4+PiAgIDEuIFRyaWVzIHRvIHJlYWQgdGhlIGFsdHAybSBlbnRyeTsgaWYgaXQn cyB0aGVyZSBpdCB1c2VzIGl0Cj4+PiAgIDIuIElmIGl0J3Mgbm90IHRoZXJlLCBpdCB0cmllcyB0 byByZWFkIHRoZSBob3N0IHAybSBlbnRyeQo+Pj4gICAzLiBJbiBtb3N0IGNhc2VzIGl0IHRoZW4g cHJvcGFnYXRlcyB0aGUgaG9zdHAybSBlbnRyeSB0byB0aGUgYWx0cDJtIGVudHJ5Lgo+Pj4KPj4+ IE9idmlvdXNseSB0aGUgbmV3ICJjb21tb24iIGZ1bmN0aW9uIGhhcyB0byBkbyBpdCBiZWNhdXNl IHRoYXQncyB3aGF0IHRoZQo+Pj4gb3JpZ2luYWwgY29kZSBkb2VzLiAgVGhlIG9yaWdpbmFsIGNv ZGUgZG9lcyBpdCBiZWNhdXNlIHRoYXQncyB3aGF0Cj4+PiBhbHRwMm0gaXMgLS0gYSAicGF0Y2gi IG92ZXIgdGhlIGhvc3QgcDJtLCBzdWNoIHRoYXQgeW91IHVzZSB0aGUgYWx0cDJtCj4+PiBpZiBl bnRyaWVzIGFyZSBwcmVzZW50LCBidXQgdXNlIHRoZSBob3N0cDJtIG90aGVyd2lzZS4KPj4+Cj4+ Pj4+IEluc3RlYWQgb2Ygc2F5aW5nLCAiSSBkb24ndCBsaWtlIHRoZXNlIG5hbWVzIiAoYnV0IG5v dCBvZmZlcmluZwo+Pj4+PiBhbHRlcm5hdGl2ZSksIG9yIHNheWluZywgIklmIHlvdSB1c2UgdGhl c2UgbmFtZXMsIHRoZSBmdW5jdGlvbnMgaGF2ZSB0bwo+Pj4+PiBkbyB0aGUgZXhhY3Qgb3Bwb3Np dGUgb2Ygd2hhdCB0aGV5IGRvIGluIHRoaXMgcGF0Y2giLCBpdCB3b3VsZCBiZSBtb3JlCj4+Pj4+ IGNvbnN0cnVjdGl2ZSBpZiB5b3UgcHJvcG9zZWQgbmFtZXMgd2hpY2ggeW91IHdvdWxkIHByZWZl ciBmb3IgdGhlCj4+Pj4+IGZ1bmN0aW9uYWxpdHkgYWN0dWFsbHkgaW4gdGhpcyBwYXRjaC4KPj4+ Pj4KPj4+Pgo+Pj4+IEknbSBub3QgdGhlIG1haW50YWluZXIgb2YgdGhpcyBjb2RlIHNvIGZlZWwg ZnJlZSB0byBpZ25vcmUgbXkKPj4+PiBjb21tZW50cy4gSSBqdXN0IHNlZSB3YXkgdG9vIG1hbnkg ZnVuY3Rpb25zIGluIFhlbiB0aGF0IGFyZSAiZG9feCgpIgo+Pj4+IGJ1dCBpbiBpbiBmYWN0IHR1 cm4gb3V0IHRvIGJlICJkb194X2FuZF95X2FuZF96KCkiIHdoaWNoIGRvZXMgbm90IGhlbHAKPj4+ PiByZWFkYWJpbGl0eSBvciBldmVuIHJlYWxseSB1bmRlcnN0YW5kaW5nIHdoYXQgaXMgaGFwcGVu aW5nLiBJIGd1ZXNzIGF0Cj4+Pj4gbGVhc3QgYWRkaW5nIGNvbW1lbnRzIGRlc2NyaWJpbmcgdGhl c2UgYWRkaXRpb25hbCBhbmQgc29tZXRpbWVzCj4+Pj4gdW5leHBlY3RlZCBiZWhhdmlvcnMgd291 bGQgYmUgYW4gaW1wcm92ZW1lbnQuCj4+Pgo+Pj4gWW91IGFyZSBhIG1haW50YWluZXIgZm9yIG1l bV9hY2Nlc3MuYywgd2hpY2ggaGFzIGEgbm9uLXRyaXZpYWwgY2hhbmdlIGluCj4+PiB0aGlzIHBh dGNoLiAgSXQgY2FuIGdvIGluIHdpdGggUmF6dmFuJ3MgYWNrLCBidXQgbm90IHdoaWxlIHlvdSBo YXZlIG9wZW4KPj4+IG9iamVjdGlvbnMuCj4+Cj4+IFllcywgSSBtZWFudCB0aGF0IHdoZXJlIHRo aXMgY29kZSBpcyBiZWluZyByZWxvY2F0ZWQgdG8gaXMgbm8gbG9uZ2VyCj4+IHVuZGVyIG91ciBt ZW1fYWNjZXNzIHVtYnJlbGxhIHNvIEknbSBub3QgZ29pbmcgdG8gYmUgdGhlIG1haW50YWluZXIg b2YKPj4gaXQuIElmIHRoZSBuZXcgbWFpbnRhaW5lcnMgb2YgdGhpcyBjb2RlIGFyZSBPSyB3aXRo IGhvdyBpdCBpcywgdGhhbgo+PiB0aGF0J3MgdGhhdC4gVGhlIGNoYW5nZXMgYmVpbmcgbWFkZSBp biB0aGlzIHBhdGNoIHRvIG1lbV9hY2Nlc3MgSSBoYXZlCj4+IG5vIG9iamVjdGlvbiB0by4gVGhl cmUgYXQgbGVhc3QgaXRzIGltcGxpZWQgdGhhdCBhIGNvcHkgd2lsbCBoYXBwZW4KPj4gZnJvbSB0 aGUgaG9zdHAybSBvciBhbiBlcnJvciBpcyByZXR1cm5lZCBzbyB0aGUgZW50cnkgdGhhdCBfaXNf Cj4+IHJldHVybmVkIHNob3VsZCBub3QgYmUgdXNlZC4gQWx0aG91Z2ggaXQgd291bGQgYmUgYmV0 dGVyIGlmICptZm4gaXMKPj4gbm90IGNoYW5nZWQgdW50aWwgdGhlIGZpbmFsIHJldHVybiB3aXRo IG5vIGVycm9yLCBidXQgaXQncyBhIG1pbm9yCj4+IGVub3VnaCBpc3N1ZSB0aGF0IEkgd291bGQg bm90IGJsb2NrIHRoaXMgcGF0Y2ggYmVjYXVzZSBvZiBpdC4KPj4KPj4+Cj4+PiBJIGZlZWwgeW91 ciBwYWluIHdpdGggZnVuY3Rpb24gbmFtaW5nOyBJJ3ZlIGJlZW4gZGlnZ2luZyB0aHJvdWdoCj4+ PiB4ODYvbW0uYyByZWNlbnRseSBhbmQgdGhlIGZ1bmN0aW9uIG5hbWVzIGFyZSB1bm5lY2Vzc2Fy aWx5IGNvbmZ1c2luZy4gIEkKPj4+IGFsc28gYWdyZWUgdGhhdCAiYWx0cDJtX2dldF9lbnRyeSIg aXNuJ3QgdGVycmlibHkgaW5mb3JtYXRpdmUgKGFsdGhvdWdoCj4+PiBpdCdzIGEgYml0IG1vcmUg b2J2aW91cyBpZiB5b3Uga25vdyBob3cgYWx0cDJtIGlzIG1lYW50IHRvIHdvcmspLiAgSSdtCj4+ PiBqdXN0IHRyeWluZyB0byBtYWtlIHN1cmUgdGhhdCB0aGVyZSdzIGEgY2xlYXIgd2F5IGZvciBB bGV4YW5kcnUgdG8gbW92ZQo+Pj4gdGhpcyBwYXRjaCBmb3J3YXJkLiAgSSBkb24ndCBtaW5kIHRy eWluZyB0byBjb21lIHVwIHdpdGggYSBiZXR0ZXIgbmFtZSwKPj4+IGJ1dCB0aGUgcGF0Y2ggc2hv dWxkbid0IGJlIGJsb2NrZWQgaWYgd2UgY2FuJ3QuCj4+Pgo+Pj4gSSBhZ3JlZSB0aGF0IHRoZSBm dW5jdGlvbiBzaG91bGQgaGF2ZSBhIGNvbW1lbnQgdGhhdCBkZXNjcmliZXMgaXRzIHB1cnBvc2Uu Cj4+Pgo+Pj4gV2hhdCBhYm91dCAiYWx0cDJtX3Jlc29sdmVfZW50cnkoKSI/ICAiYWx0cDJtX2dl dF9lZmZlY3RpdmVfZW50cnkiPwo+Pgo+PiBQZXJoYXBzIGdldF9lZmZlY3RpdmVfZW50cnkgaXMg dGhlIGJlc3Qgc28gZmFyIGJ1dCBldmVuIHRoYXQgSSB3b3VsZAo+PiBoYXZlIG5vIGlkZWEgd2hh dCBpdCBtZWFucyB3aXRob3V0IHJlYWRpbmcgdGhlIGNvZGUgb3IgcmVhZGluZyB0aGUKPj4gY29t bWVudCBkZXNjcmliaW5nIHRoZSBmdW5jdGlvbi4gSG93IGFib3V0Cj4+ICJwMm1fc2VhcmNoX2Fs dHAybV90aGVuX2hvc3RwMm0iIHdpdGggYSBjb21tZW50IHNheWluZyBob3N0cDJtIGlzIGEKPj4g ZmFsbGJhY2s/Cj4+Cj4gCj4gSSBndWVzcyBwMm1fc2VhcmNoX2FsdHAybV90aGVuX2hvc3RwMm0g aXMgYSBiaXQgbG9uZyBidXQgaXQgc29sdmVzIHRoZSAKPiBwcm9ibGVtLiBJZiBHb2VyZ2UgaXMg b2sgd2l0aCB0aGlzIEkgd2lsbCBwdXQgaXQgaW4uCj4gCj4gSnVzdCB0byBjbGFyaWZ5LCBhbHRw Mm1fZ2V0X2VudHJ5IHdpbGwgY2hhbmdlIHRvIAo+IHAybV9zZWFyY2hfYWx0cDJtX3RoZW5faG9z dHAybSBhbmQgdGhlbiB0aGUgcmVzdCB3aWxsIHJlbWFpbiB0aGUgc2FtZSAKPiAoYWx0cDJtX2dl dF9lbnRyeV9kaXJlY3QsIGFsdHAybV9nZXRfZW50cnlfcHJlcG9wdWxhdGUpPyBBbmQgdGhlbiBh ZGQgYSAKPiBjb21tZW50IGZvciB0aGUgbWFpbiBmdW5jdGlvbi4KPiAKPiBIb3BlIEkndmUgZ290 IHRoYXQgcmlnaHQgZm9ybSB0aGUgbG9uZyBuYW1lIGNoYW5naW5nIGNvbnZlcnNhdGlvbi4KClVu Zm9ydHVuYXRlbHksIGl0IGxvb2tzIGxpa2UgeW91IGhhdmVuJ3QuIDotKSAgVGFtYXMnIGluaXRp YWwgb2JqZWN0aW9uLAphcyBJIHVuZGVyc3RhbmQgdGhlbSwgd2VyZSBzcGVjaWZpY2FsbHkgdGhh dCBhbHRwMm1fZ2V0X2VudHJ5X2RpcmVjdCgpCnNvdW5kcyB0byBoaW0gbGlrZSBpdCBzaG91bGQg ImRpcmVjdGx5IiBnZXQgdGhlIGJhY2tpbmcgdmFsdWUgZnJvbSB0aGUKaG9zdHAybSBhbHdheXMs IGFuZCBuZXZlciBnZXQgdGhlICJwYXRjaGVkIiB2YWx1ZSBmcm9tIHRoZSBhbHRwMm0uCgpCdXQg cDJtX3NlYXJjaF9hbHRwMm1fdGhlbl9ob3N0cDJtKCkgaXNuJ3QgYmV0dGVyLCBiZWNhdXNlIGl0 IGRvZXNuJ3QKbWVudGlvbiB0aGF0IHlvdSBzdG9wIHNlYXJjaGluZyB0aGUgYWx0cDJtIGlmIHlv dSBmb3VuZCB3aGF0IHlvdSB3ZXJlCmxvb2tpbmcgZm9yLCBub3Igd2hhdCB5b3UncmUgc2VhcmNo aW5nIGZvciwgbm9yIHdoeS4KCkkgdGhpbmsgYWx0cDJtX2dldF9lZmZlY3RpdmVfZW50cnkoKSBp cyB0aGUgYmVzdC4gICJFZmZlY3RpdmUiIGluIENTIGlzCmNvbW1vbmx5IHVzZWQgdG8gbWVhbiwg InRoZSBlbmQgcmVzdWx0IGFmdGVyIGNvbWJpbmluZyBzZXZlcmFsIGlucHV0cyIKKGUuZy4sICJl ZmZlY3RpdmUgYWRkcmVzcyIgaXMgb2Z0ZW4gYmFzZSArIG9mZnNldCk7IElmIHlvdSBrbm93IHdo YXQKYWx0cDJtIGlzLCB0aGVuIGl0J3MgcHJldHR5IG9idmlvdXMgd2hhdCB0aGUgaW5wdXRzIHdv dWxkIGJlIGFuZCBob3cKaXQncyB1c2VkLiAgSWYgeW91ICpkb24ndCoga25vdyB3aGF0IGFsdHAy bSBpcywgdGhlbgoicDJtX3NlYXJjaF9hbHRwMm1fdGhlbl9ob3N0cDJtKCkiIGlzIHByb2JhYmx5 IGdvaW5nIHRvIGJlIGp1c3QgYXMKbXlzdGlmeWluZy4KClByb2JhYmx5IGp1c3QgaGF2ZSBhIHNp bmdsZSBmdW5jdGlvbiB0aGF0IHRha2VzIGEgJ3ByZXBvcHVsYXRlIGFyZ3VtZW50OwphbmQgbWFr ZSBzb21lICNkZWZpbmVzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGZvbGxvdzsgcHJvYmFibHkgc29t ZXRoaW5nCmxpa2UgJ0FQMk1HRVRfcHJlcG9wdWxhdGUnIGFuZCAnQVAyTUdFVF9xdWVyeScuCgpB bmQgbWFrZSBzdXJlIHRvIGhhdmUgYSBjb21tZW50IGRlc2NyaWJpbmcgd2hhdCB0aGUgZnVuY3Rp b24gZG9lcy4KClRoYW5rcywKCiAtR2VvcmdlCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs