From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v7.1 07/24] x86/mm: Introduce modify_xen_mappings() Date: Mon, 11 Apr 2016 16:21:18 +0100 Message-ID: <570BC0EE.8070100@citrix.com> References: <1460383444-4492-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460383444-4492-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andrew Cooper , Xen-devel Cc: George Dunlap , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMTEvMDQvMTYgMTU6MDQsIEFuZHJldyBDb29wZXIgd3JvdGU6Cj4gVG8gc2ltcGx5IGNoYW5n ZSB0aGUgcGVybWlzc2lvbnMgb24gZXhpc3RpbmcgWGVuIG1hcHBpbmdzLiAgVGhlIGV4aXN0aW5n Cj4gZGVzdHJveV94ZW5fbWFwcGluZ3MoKSBpcyBhbHRlcmVkIHRvIHN1cHBvcnQgYSBjaGFuZ2Ug dGhlIFBURSBwZXJtaXNzaW9ucy4KPiAKPiBBIG5ldyBkZXN0cm95X3hlbl9tYXBwaW5ncygpIGlz IGludHJvZHVjZWQsIGFzIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygbm90IHBhc3NpbmcKPiBfUEFHRV9Q UkVTRU5UIHRvIG1vZGlmeV94ZW5fbWFwcGluZ3MoKS4KPiAKPiBBcyBjbGVhbnVwIChhbmQgYW4g aWRlYWwgZnVuY3Rpb25hbCB0ZXN0KSwgdGhlIGJvb3QgbG9naWMgd2hpY2ggcmVtYXBzIFhlbidz Cj4gY29kZSBhbmQgZGF0YSB3aXRoIHJlZHVjZWQgcGVybWlzc2lvbnMgaXMgYWx0ZXJlZCB0byB1 c2UKPiBtb2RpZnlfeGVuX21hcHBpbmdzKCksIHJhdGhlciB0aGFuIG1hcF9wYWdlc190b194ZW4o KSBwYXNzaW5nIHRoZSBzYW1lIG1mbidzCj4gYmFjayBpbi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBB bmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKTG9va3MgZ29vZCB0byBt ZSwgdGhhbmtzOgoKUmV2aWV3ZWQtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbT4KCj4gLS0tCj4gQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KPiBD QzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgo+IAo+IENoYW5n ZXM6Cj4gICogQWxsb3cgY2FsbGVycyB0byBwYXNzIFBBR0VfSFlQRVJWSVNPUl94eHggY29uc3Rh bnRzLCBmb3IgY29uc2lzdGVudGx5IHdpdGgKPiAgICBzaW1pbGFyIGZ1bmN0aW9ucy4KPiAgKiBS ZXBsYWNlIG9uZSBvcGVuY29kZWQgMCB3aXRoIGl0cyBsb2dpY2FsIGVxdWl2YWxlbnQsIF9QQUdF X05PTkUuCj4gLS0tCj4gIHhlbi9hcmNoL3g4Ni9tbS5jICAgIHwgNzEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ICB4ZW4vYXJjaC94ODYvc2V0 dXAuYyB8IDIyICsrKysrKystLS0tLS0tLS0KPiAgeGVuL2luY2x1ZGUveGVuL21tLmggfCAgMiAr Kwo+ICAzIGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCj4g aW5kZXggYmNhNzUzMi4uZGJlOWM0ZiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvbW0uYwo+ ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCj4gQEAgLTU5NTYsNyArNTk1NiwxOSBAQCBpbnQgcG9w dWxhdGVfcHRfcmFuZ2UodW5zaWduZWQgbG9uZyB2aXJ0LCB1bnNpZ25lZCBsb25nIG1mbiwKPiAg ICAgIHJldHVybiBtYXBfcGFnZXNfdG9feGVuKHZpcnQsIG1mbiwgbnJfbWZucywgTUFQX1NNQUxM X1BBR0VTKTsKPiAgfQo+ICAKPiAtdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBs b25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKPiArLyoKPiArICogQWx0ZXIgdGhlIHBlcm1pc3Npb25z IG9mIGEgcmFuZ2Ugb2YgWGVuIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4KPiArICoKPiArICogRG9l cyBub3QgY3JlYXRlIG5ldyBtYXBwaW5ncywgYW5kIGRvZXMgbm90IG1vZGlmeSB0aGUgbWZuIGlu IGV4aXN0aW5nCj4gKyAqIG1hcHBpbmdzLCBidXQgd2lsbCBzaGF0dGVyIHN1cGVycGFnZXMgaWYg bmVjZXNzYXJ5LCBhbmQgd2lsbCBkZXN0cm95Cj4gKyAqIG1hcHBpbmdzIGlmIG5vdCBwYXNzZWQg X1BBR0VfUFJFU0VOVC4KPiArICoKPiArICogVGhlIG9ubHkgZmxhZ3MgY29uc2lkZXJlZCBhcmUg TlgsIFJXIGFuZCBQUkVTRU5ULiAgQWxsIG90aGVyIGlucHV0IGZsYWdzCj4gKyAqIGFyZSBpZ25v cmVkLgo+ICsgKgo+ICsgKiBJdCBpcyBhbiBlcnJvciB0byBjYWxsIHdpdGggcHJlc2VudCBmbGFn cyBvdmVyIGFuIHVucG9wdWxhdGVkIHJhbmdlLgo+ICsgKi8KPiArdm9pZCBtb2RpZnlfeGVuX21h cHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB1bnNpZ25lZCBpbnQgbmYp Cj4gIHsKPiAgICAgIGJvb2xfdCBsb2NraW5nID0gc3lzdGVtX3N0YXRlID4gU1lTX1NUQVRFX2Jv b3Q7Cj4gICAgICBsMl9wZ2VudHJ5X3QgKnBsMmU7Cj4gQEAgLTU5NjQsNiArNTk3NiwxMCBAQCB2 b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBl KQo+ICAgICAgdW5zaWduZWQgaW50ICBpOwo+ICAgICAgdW5zaWduZWQgbG9uZyB2ID0gczsKPiAg Cj4gKyAgICAvKiBTZXQgb2YgdmFsaWQgUFRFIGJpdHMgd2hpY2ggbWF5IGJlIGFsdGVyZWQuICov Cj4gKyNkZWZpbmUgRkxBR1NfTUFTSyAoX1BBR0VfTlh8X1BBR0VfUld8X1BBR0VfUFJFU0VOVCkK PiArICAgIG5mICY9IEZMQUdTX01BU0s7Cj4gKwo+ICAgICAgQVNTRVJUKElTX0FMSUdORUQocywg UEFHRV9TSVpFKSk7Cj4gICAgICBBU1NFUlQoSVNfQUxJR05FRChlLCBQQUdFX1NJWkUpKTsKPiAg Cj4gQEAgLTU5NzMsNiArNTk4OSw5IEBAIHZvaWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWdu ZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCj4gIAo+ICAgICAgICAgIGlmICggIShsM2VfZ2V0 X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BSRVNFTlQpICkKPiAgICAgICAgICB7Cj4gKyAgICAgICAg ICAgIC8qIENvbmZpcm0gdGhlIGNhbGxlciBpc24ndCB0cnlpbmcgdG8gY3JlYXRlIG5ldyBtYXBw aW5ncy4gKi8KPiArICAgICAgICAgICAgQVNTRVJUKCEobmYgJiBfUEFHRV9QUkVTRU5UKSk7Cj4g Kwo+ICAgICAgICAgICAgICB2ICs9IDFVTCA8PCBMM19QQUdFVEFCTEVfU0hJRlQ7Cj4gICAgICAg ICAgICAgIHYgJj0gfigoMVVMIDw8IEwzX1BBR0VUQUJMRV9TSElGVCkgLSAxKTsKPiAgICAgICAg ICAgICAgY29udGludWU7Cj4gQEAgLTU5ODQsOCArNjAwMywxMiBAQCB2b2lkIGRlc3Ryb3lfeGVu X21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQo+ICAgICAgICAgICAg ICAgICAgIGwxX3RhYmxlX29mZnNldCh2KSA9PSAwICYmCj4gICAgICAgICAgICAgICAgICAgKChl IC0gdikgPj0gKDFVTCA8PCBMM19QQUdFVEFCTEVfU0hJRlQpKSApCj4gICAgICAgICAgICAgIHsK PiAtICAgICAgICAgICAgICAgIC8qIFBBR0UxR0I6IHdob2xlIHN1cGVycGFnZSBpcyBkZXN0cm95 ZWQuICovCj4gLSAgICAgICAgICAgICAgICBsM2Vfd3JpdGVfYXRvbWljKHBsM2UsIGwzZV9lbXB0 eSgpKTsKPiArICAgICAgICAgICAgICAgIC8qIFBBR0UxR0I6IHdob2xlIHN1cGVycGFnZSBpcyBt b2RpZmllZC4gKi8KPiArICAgICAgICAgICAgICAgIGwzX3BnZW50cnlfdCBubDNlID0gIShuZiAm IF9QQUdFX1BSRVNFTlQpID8gbDNlX2VtcHR5KCkKPiArICAgICAgICAgICAgICAgICAgICA6IGwz ZV9mcm9tX3BmbihsM2VfZ2V0X3BmbigqcGwzZSksCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgfkZMQUdTX01BU0spIHwgbmYpOwo+ ICsKPiArICAgICAgICAgICAgICAgIGwzZV93cml0ZV9hdG9taWMocGwzZSwgbmwzZSk7Cj4gICAg ICAgICAgICAgICAgICB2ICs9IDFVTCA8PCBMM19QQUdFVEFCTEVfU0hJRlQ7Cj4gICAgICAgICAg ICAgICAgICBjb250aW51ZTsKPiAgICAgICAgICAgICAgfQo+IEBAIC02MDE2LDYgKzYwMzksOSBA QCB2b2lkIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9u ZyBlKQo+ICAKPiAgICAgICAgICBpZiAoICEobDJlX2dldF9mbGFncygqcGwyZSkgJiBfUEFHRV9Q UkVTRU5UKSApCj4gICAgICAgICAgewo+ICsgICAgICAgICAgICAvKiBDb25maXJtIHRoZSBjYWxs ZXIgaXNuJ3QgdHJ5aW5nIHRvIGNyZWF0ZSBuZXcgbWFwcGluZ3MuICovCj4gKyAgICAgICAgICAg IEFTU0VSVCghKG5mICYgX1BBR0VfUFJFU0VOVCkpOwo+ICsKPiAgICAgICAgICAgICAgdiArPSAx VUwgPDwgTDJfUEFHRVRBQkxFX1NISUZUOwo+ICAgICAgICAgICAgICB2ICY9IH4oKDFVTCA8PCBM Ml9QQUdFVEFCTEVfU0hJRlQpIC0gMSk7Cj4gICAgICAgICAgICAgIGNvbnRpbnVlOwo+IEBAIC02 MDI2LDggKzYwNTIsMTIgQEAgdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25n IHMsIHVuc2lnbmVkIGxvbmcgZSkKPiAgICAgICAgICAgICAgaWYgKCAobDFfdGFibGVfb2Zmc2V0 KHYpID09IDApICYmCj4gICAgICAgICAgICAgICAgICAgKChlLXYpID49ICgxVUwgPDwgTDJfUEFH RVRBQkxFX1NISUZUKSkgKQo+ICAgICAgICAgICAgICB7Cj4gLSAgICAgICAgICAgICAgICAvKiBQ U0U6IHdob2xlIHN1cGVycGFnZSBpcyBkZXN0cm95ZWQuICovCj4gLSAgICAgICAgICAgICAgICBs MmVfd3JpdGVfYXRvbWljKHBsMmUsIGwyZV9lbXB0eSgpKTsKPiArICAgICAgICAgICAgICAgIC8q IFBTRTogd2hvbGUgc3VwZXJwYWdlIGlzIG1vZGlmaWVkLiAqLwo+ICsgICAgICAgICAgICAgICAg bDJfcGdlbnRyeV90IG5sMmUgPSAhKG5mICYgX1BBR0VfUFJFU0VOVCkgPyBsMmVfZW1wdHkoKQo+ ICsgICAgICAgICAgICAgICAgICAgIDogbDJlX2Zyb21fcGZuKGwyZV9nZXRfcGZuKCpwbDJlKSwK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDJlX2dldF9mbGFncygqcGwy ZSkgJiB+RkxBR1NfTUFTSykgfCBuZik7Cj4gKwo+ICsgICAgICAgICAgICAgICAgbDJlX3dyaXRl X2F0b21pYyhwbDJlLCBubDJlKTsKPiAgICAgICAgICAgICAgICAgIHYgKz0gMVVMIDw8IEwyX1BB R0VUQUJMRV9TSElGVDsKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICBlbHNlCj4gQEAg LTYwNTUsMTMgKzYwODUsMjMgQEAgdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBs b25nIHMsIHVuc2lnbmVkIGxvbmcgZSkKPiAgICAgICAgICB9Cj4gICAgICAgICAgZWxzZQo+ICAg ICAgICAgIHsKPiArICAgICAgICAgICAgbDFfcGdlbnRyeV90IG5sMWU7Cj4gKwo+ICAgICAgICAg ICAgICAvKiBPcmRpbmFyeSA0a0IgbWFwcGluZy4gKi8KPiAgICAgICAgICAgICAgcGwxZSA9IGwy ZV90b19sMWUoKnBsMmUpICsgbDFfdGFibGVfb2Zmc2V0KHYpOwo+IC0gICAgICAgICAgICBsMWVf d3JpdGVfYXRvbWljKHBsMWUsIGwxZV9lbXB0eSgpKTsKPiArCj4gKyAgICAgICAgICAgIG5sMWUg PSAhKG5mICYgX1BBR0VfUFJFU0VOVCkgPyBsMWVfZW1wdHkoKQo+ICsgICAgICAgICAgICAgICAg OiBsMWVfZnJvbV9wZm4obDFlX2dldF9wZm4oKnBsMWUpLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGwxZV9nZXRfZmxhZ3MoKnBsMWUpICYgfkZMQUdTX01BU0spIHwgbmYpOwo+ ICsKPiArICAgICAgICAgICAgbDFlX3dyaXRlX2F0b21pYyhwbDFlLCBubDFlKTsKPiAgICAgICAg ICAgICAgdiArPSBQQUdFX1NJWkU7Cj4gIAo+IC0gICAgICAgICAgICAvKiBJZiB3ZSBhcmUgZG9u ZSB3aXRoIHRoZSBMMkUsIGNoZWNrIGlmIGl0IGlzIG5vdyBlbXB0eS4gKi8KPiAtICAgICAgICAg ICAgaWYgKCAodiAhPSBlKSAmJiAobDFfdGFibGVfb2Zmc2V0KHYpICE9IDApICkKPiArICAgICAg ICAgICAgLyoKPiArICAgICAgICAgICAgICogSWYgd2UgYXJlIGRlc3Ryb3lpbmcgbWFwcGluZ3Mg YW5kIGRvbmUgd2l0aCB0aGUgTDJFLCBjaGVjayBpZgo+ICsgICAgICAgICAgICAgKiBpdCBpcyBu b3cgZW1wdHkuCj4gKyAgICAgICAgICAgICAqLwo+ICsgICAgICAgICAgICBpZiAoIChuZiAmIF9Q QUdFX1BSRVNFTlQpICYmICh2ICE9IGUpICYmIChsMV90YWJsZV9vZmZzZXQodikgIT0gMCkgKQo+ ICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gICAgICAgICAgICAgIHBsMWUgPSBsMmVfdG9f bDFlKCpwbDJlKTsKPiAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBMMV9QQUdFVEFCTEVf RU5UUklFUzsgaSsrICkKPiBAQCAtNjA3Niw4ICs2MTE2LDEyIEBAIHZvaWQgZGVzdHJveV94ZW5f bWFwcGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUpCj4gICAgICAgICAgICAg IH0KPiAgICAgICAgICB9Cj4gIAo+IC0gICAgICAgIC8qIElmIHdlIGFyZSBkb25lIHdpdGggdGhl IEwzRSwgY2hlY2sgaWYgaXQgaXMgbm93IGVtcHR5LiAqLwo+IC0gICAgICAgIGlmICggKHYgIT0g ZSkgJiYgKGwyX3RhYmxlX29mZnNldCh2KSArIGwxX3RhYmxlX29mZnNldCh2KSAhPSAwKSApCj4g KyAgICAgICAgLyoKPiArICAgICAgICAgKiBJZiB3ZSBhcmUgZGVzdHJveWluZyBtYXBwaW5ncyBh bmQgZG9uZSB3aXRoIHRoZSBMM0UsIGNoZWNrIGlmIGl0IGlzCj4gKyAgICAgICAgICogbm93IGVt cHR5Lgo+ICsgICAgICAgICAqLwo+ICsgICAgICAgIGlmICggKG5mICYgX1BBR0VfUFJFU0VOVCkg JiYgKHYgIT0gZSkgJiYKPiArICAgICAgICAgICAgIChsMl90YWJsZV9vZmZzZXQodikgKyBsMV90 YWJsZV9vZmZzZXQodikgIT0gMCkgKQo+ICAgICAgICAgICAgICBjb250aW51ZTsKPiAgICAgICAg ICBwbDJlID0gbDNlX3RvX2wyZSgqcGwzZSk7Cj4gICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBM Ml9QQUdFVEFCTEVfRU5UUklFUzsgaSsrICkKPiBAQCAtNjA5MywxMCArNjEzNywxNyBAQCB2b2lk IGRlc3Ryb3lfeGVuX21hcHBpbmdzKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQo+ ICAgICAgfQo+ICAKPiAgICAgIGZsdXNoX2FyZWEoTlVMTCwgRkxVU0hfVExCX0dMT0JBTCk7Cj4g Kwo+ICsjdW5kZWYgRkxBR1NfTUFTSwo+ICB9Cj4gIAo+ICAjdW5kZWYgZmx1c2hfYXJlYQo+ICAK PiArdm9pZCBkZXN0cm95X3hlbl9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHMsIHVuc2lnbmVkIGxv bmcgZSkKPiArewo+ICsgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncyhzLCBlLCBfUEFHRV9OT05FKTsK PiArfQo+ICsKPiAgdm9pZCBfX3NldF9maXhtYXAoCj4gICAgICBlbnVtIGZpeGVkX2FkZHJlc3Nl cyBpZHgsIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ICB7Cj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKPiBp bmRleCAzNjk2YzMxLi4xYTIyM2Q0IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5j Cj4gKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKPiBAQCAtMTIxNCwyMyArMTIxNCwxOSBAQCB2 b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQo+ICAg ICAgaWYgKCAhdXNpbmdfMk1fbWFwcGluZygpICkKPiAgICAgIHsKPiAgICAgICAgICAvKiBNYXJr IC50ZXh0IGFzIFJYIChhdm9pZGluZyB0aGUgZmlyc3QgMk0gc3VwZXJwYWdlKS4gKi8KPiAtICAg ICAgICBtYXBfcGFnZXNfdG9feGVuKFhFTl9WSVJUX1NUQVJUICsgTUIoMiksCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgICBQRk5fRE9XTihfX3BhKFhFTl9WSVJUX1NUQVJUICsgTUIoMikpKSwK PiAtICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKF9fMk1fdGV4dF9lbmQgLQo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKikoWEVOX1ZJUlRf U1RBUlQgKyBNQigyKSkpLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJ U09SX1JYKTsKPiArICAgICAgICBtb2RpZnlfeGVuX21hcHBpbmdzKFhFTl9WSVJUX1NUQVJUICsg TUIoMiksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZykmX18y TV90ZXh0X2VuZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNP Ul9SWCk7Cj4gIAo+ICAgICAgICAgIC8qIE1hcmsgLnJvZGF0YSBhcyBSTy4gKi8KPiAtICAgICAg ICBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKSZfXzJNX3JvZGF0YV9zdGFydCwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKF9fcGEoX18yTV9yb2RhdGFfc3RhcnQp KSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dOKF9fMk1fcm9kYXRhX2VuZCAt IF9fMk1fcm9kYXRhX3N0YXJ0KSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfSFlQ RVJWSVNPUl9STyk7Cj4gKyAgICAgICAgbW9kaWZ5X3hlbl9tYXBwaW5ncygodW5zaWduZWQgbG9u ZykmX18yTV9yb2RhdGFfc3RhcnQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5z aWduZWQgbG9uZykmX18yTV9yb2RhdGFfZW5kLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUEFHRV9IWVBFUlZJU09SX1JPKTsKPiAgCj4gICAgICAgICAgLyogTWFyayAuZGF0YSBhbmQg LmJzcyBhcyBSVy4gKi8KPiAtICAgICAgICBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25n KSZfXzJNX3J3ZGF0YV9zdGFydCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9ET1dO KF9fcGEoX18yTV9yd2RhdGFfc3RhcnQpKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgIFBG Tl9ET1dOKF9fMk1fcndkYXRhX2VuZCAtIF9fMk1fcndkYXRhX3N0YXJ0KSwKPiAtICAgICAgICAg ICAgICAgICAgICAgICAgIFBBR0VfSFlQRVJWSVNPUl9SVyk7Cj4gKyAgICAgICAgbW9kaWZ5X3hl bl9tYXBwaW5ncygodW5zaWduZWQgbG9uZykmX18yTV9yd2RhdGFfc3RhcnQsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZykmX18yTV9yd2RhdGFfZW5kLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SX1JXKTsKPiAgCj4gICAg ICAgICAgLyogRHJvcCB0aGUgcmVtYWluaW5nIG1hcHBpbmdzIGluIHRoZSBzaGF0dGVyZWQgc3Vw ZXJwYWdlLiAqLwo+ICAgICAgICAgIGRlc3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25n KSZfXzJNX3J3ZGF0YV9lbmQsCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oIGIv eGVuL2luY2x1ZGUveGVuL21tLmgKPiBpbmRleCBkNjIzOTRmLi5kNDcyMWZjIDEwMDY0NAo+IC0t LSBhL3hlbi9pbmNsdWRlL3hlbi9tbS5oCj4gKysrIGIveGVuL2luY2x1ZGUveGVuL21tLmgKPiBA QCAtMTAzLDYgKzEwMyw4IEBAIGludCBtYXBfcGFnZXNfdG9feGVuKAo+ICAgICAgdW5zaWduZWQg bG9uZyBtZm4sCj4gICAgICB1bnNpZ25lZCBsb25nIG5yX21mbnMsCj4gICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MpOwo+ICsvKiBBbHRlciB0aGUgcGVybWlzc2lvbnMgb2YgYSByYW5nZSBvZiBYZW4g dmlydHVhbCBhZGRyZXNzIHNwYWNlLiAqLwo+ICt2b2lkIG1vZGlmeV94ZW5fbWFwcGluZ3ModW5z aWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUsIHVuc2lnbmVkIGludCBmbGFncyk7Cj4gIHZv aWQgZGVzdHJveV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9uZyB2LCB1bnNpZ25lZCBsb25nIGUp Owo+ICAvKgo+ICAgKiBDcmVhdGUgb25seSBub24tbGVhZiBwYWdlIHRhYmxlIGVudHJpZXMgZm9y IHRoZQo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==