From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wen Congyang Subject: Re: [RFC Patch 25/25] sync mmu before resuming secondary vm Date: Fri, 25 Jul 2014 13:46:26 +0800 Message-ID: <53D1EF32.4000505@cn.fujitsu.com> References: <1405683551-12579-1-git-send-email-wency@cn.fujitsu.com> <1405683551-12579-26-git-send-email-wency@cn.fujitsu.com> <20140724105910.GE1817@deinos.phlegethon.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20140724105910.GE1817@deinos.phlegethon.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Tim Deegan Cc: Ian Campbell , Ian Jackson , Jiang Yunhong , Dong Eddie , xen devel , Yang Hongyang , Lai Jiangshan List-Id: xen-devel@lists.xenproject.org QXQgMDcvMjQvMjAxNCAwNjo1OSBQTSwgVGltIERlZWdhbiBXcml0ZToKPiBBdCAxOTozOSArMDgw MCBvbiAxOCBKdWwgKDE0MDU3MDg3NTApLCBXZW4gQ29uZ3lhbmcgd3JvdGU6Cj4+IEluIG91dCB0 ZXN0LCB3ZSBmaW5kIHNlY29uZGFyeSB2bSB3aWxsIGJlIGJsdWVzY3JlZW4gZHVlIHRvIG1lbW9y eQo+PiByZWxhdGVkIHByb2JsZW0uIElmIHdlIHN5bmMgbW11LCB0aGUgcHJvYmxlbSB3aWxsIGRp c2FwcGVhci4KPiAKPiBFcmsuICBEbyB5b3UgdW5kZXJzdGFuZCBfd2h5XyB0aGlzIGhhcHBlbnM/ ICBEbyB5b3UgbmVlZCBib3RoIHRoZSBUTEIKPiBmbHVzaCBhbmQgdGhlIEVQVCBmbHVzaCB0byBm aXggaXQ/ICAKPiAKPiBUaGUgVExCIGZsdXNoIHNvdW5kcyBwbGF1c2libGUgYmVjYXVzZSB0aGUg bWlncmF0aW9uIG1heSBoYXZlIGNoYW5nZWQKPiBzb21lIHBhZ2V0YWJsZXMgYW5kIHlvdSd2ZSBl bGlkZWQgYW55IFRMQiBmbHVzaGVzIHRoYXQgaGFwcGVuZWQgb24gdGhlCj4gc291cmNlLiAgRm9y IHRoYXQgY2FzZSBJIHRoaW5rIEknZCBwcmVmZXIgdG8gbWFrZSB0aGUgVExCIGZsdXNoCj4gaW1w bGljaXQgaW4gdGhlIEhWTSBsb2FkIG9wZXJhdGlvbiwgZS5nLiwgYnkgcHV0dGluZyBhIGNhbGwg dG8KPiBodm1fYXNpZF9mbHVzaF92Y3B1KHYpIGludG8gaHZtX2xvYWRfY3B1X2N0eHQoKSAob24g dGhlIGdyb3VuZHMgdGhhdCB0aGUKPiBUTEIgaXMgcGFydCBvZiB0aGUgdmNwdSBzdGF0ZSkuCgpI bW0sIEkgZG9uJ3QgaW52ZXN0aWdhdGUgdGhpcyBwcm9ibGVtIGRlZXBseS4gSSB3aWxsIHRyeSB5 b3Ugc3VnZ2VzdGlvbi4KClRoYW5rcwpXZW4gQ29uZ3lhbmcKCj4gCj4gQ2hlZXJzLAo+IAo+IFRp bS4KPiAKPj4gVE9ETzogb25seSB2bXgrZXB0IGlzIGRvbmUuCj4+IFNpZ25lZC1vZmYtYnk6IFdl biBDb25neWFuZyA8d2VuY3lAY24uZnVqaXRzdS5jb20+Cj4+IC0tLQo+PiAgdG9vbHMvbGlieGMv eGNfZG9tYWluLmMgICAgICAgICAgICB8ICA5ICsrKysrKysrKwo+PiAgdG9vbHMvbGlieGMveGVu Y3RybC5oICAgICAgICAgICAgICB8ICAyICsrCj4+ICB0b29scy9saWJ4bC9saWJ4bF9jb2xvX3Jl c3RvcmUuYyAgIHwgIDYgKysrKystCj4+ICB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAgICAg ICAgIHwgMTUgKysrKysrKysrKysrKysrCj4+ICB4ZW4vYXJjaC94ODYvaHZtL3NhdmUuYyAgICAg ICAgICAgIHwgIDYgKysrKysrCj4+ICB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgICAgICAg IHwgIDggKysrKysrKysKPj4gIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICAgfCAg MSArCj4+ICB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCAgICAgIHwgIDEgKwo+PiAgeGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCB8ICAxICsKPj4gIHhlbi9pbmNsdWRlL3B1 YmxpYy9kb21jdGwuaCAgICAgICAgfCAgMSArCj4+ICB4ZW4vaW5jbHVkZS94ZW4vaHZtL3NhdmUu aCAgICAgICAgIHwgIDIgKysKPj4gIDExIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5j IGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKPj4gaW5kZXggMDIzMGM2Yy4uMGI0N2JkZCAxMDA2 NDQKPj4gLS0tIGEvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKPj4gKysrIGIvdG9vbHMvbGlieGMv eGNfZG9tYWluLmMKPj4gQEAgLTIxMjMsNiArMjEyMywxNSBAQCBpbnQgeGNfZG9tYWluX3NldF9t YXhfZXZ0Y2huKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCwKPj4gICAgICByZXR1 cm4gZG9fZG9tY3RsKHhjaCwgJmRvbWN0bCk7Cj4+ICB9Cj4+ICAKPj4gK2ludCB4Y19kb21haW5f aHZtX3N5bmNfbW11KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50MzJfdCBkb21pZCkKPj4gK3sKPj4g KyAgICBERUNMQVJFX0RPTUNUTDsKPj4gKwo+PiArICAgIGRvbWN0bC5jbWQgPSBYRU5fRE9NQ1RM X2h2bV9zeW5jX21tdTsKPj4gKyAgICBkb21jdGwuZG9tYWluID0gZG9taWQ7Cj4+ICsgICAgcmV0 dXJuIGRvX2RvbWN0bCh4Y2gsICZkb21jdGwpOwo+PiArfQo+PiArCj4+ICAvKgo+PiAgICogTG9j YWwgdmFyaWFibGVzOgo+PiAgICogbW9kZTogQwo+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMv eGVuY3RybC5oIGIvdG9vbHMvbGlieGMveGVuY3RybC5oCj4+IGluZGV4IDM1NzhiMDkuLmE4MzM2 NGEgMTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL2xpYnhjL3hlbmN0cmwuaAo+PiArKysgYi90b29scy9s aWJ4Yy94ZW5jdHJsLmgKPj4gQEAgLTk2MSw2ICs5NjEsOCBAQCBpbnQgeGNfZG9tYWluX3NldF92 aXJxX2hhbmRsZXIoeGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbWlkLCBpbnQgdmlycSk7 Cj4+ICBpbnQgeGNfZG9tYWluX3NldF9tYXhfZXZ0Y2huKHhjX2ludGVyZmFjZSAqeGNoLCB1aW50 MzJfdCBkb21pZCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWF4 X3BvcnQpOwo+PiAgCj4+ICtpbnQgeGNfZG9tYWluX2h2bV9zeW5jX21tdSh4Y19pbnRlcmZhY2Ug KnhjaCwgdWludDMyX3QgZG9taWQpOwo+PiArCj4+ICAvKgo+PiAgICogQ1BVUE9PTCBNQU5BR0VN RU5UIEZVTkNUSU9OUwo+PiAgICovCj4+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9j b2xvX3Jlc3RvcmUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcmVzdG9yZS5jCj4+IGluZGV4 IGFlYTNmZWIuLjczMGI0OTIgMTAwNjQ0Cj4+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9f cmVzdG9yZS5jCj4+ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcmVzdG9yZS5jCj4+IEBA IC0xMjQsMTEgKzEyNCwxNSBAQCBzdGF0aWMgdm9pZCBjb2xvX3Jlc3VtZV92bShsaWJ4bF9fZWdj ICplZ2MsCj4+ICAgICAgU1RBVEVfQU9fR0MoY3JzLT5hbyk7Cj4+ICAKPj4gICAgICBpZiAoIWNy cy0+c2F2ZWRfY2IpIHsKPj4gLSAgICAgICAgLyogVE9ETzogc3luYyBtbXUgZm9yIGh2bT8gKi8K Pj4gKyAgICAgICAgcmMgPSB4Y19kb21haW5faHZtX3N5bmNfbW11KENUWC0+eGNoLCBjcnMtPmRv bWlkKTsKPj4gKyAgICAgICAgaWYgKHJjKQo+PiArICAgICAgICAgICAgZ290byBmYWlsOwo+PiAr Cj4+ICAgICAgICAgIHJjID0gbGlieGxfX2RvbWFpbl9yZXN1bWUoZ2MsIGNycy0+ZG9taWQsIDAs IDEpOwo+PiAgICAgICAgICBpZiAocmMpCj4+ICAgICAgICAgICAgICBMT0coRVJST1IsICJjYW5u b3QgcmVzdW1lIHNlY29uZGFyeSB2bSIpOwo+PiAgCj4+ICtmYWlsOgo+PiAgICAgICAgICBjcmNz LT5jYWxsYmFjayhlZ2MsIGNyY3MsIHJjKTsKPj4gICAgICAgICAgcmV0dXJuOwo+PiAgICAgIH0K Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21j dGwuYwo+PiBpbmRleCBkNjJjNzE1Li5kMGRmYWQ3IDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC94 ODYvZG9tY3RsLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCj4+IEBAIC0xMzk1LDYg KzEzOTUsMjEgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKPj4gICAgICB9Cj4+ICAgICAgYnJlYWs7 Cj4+ICAKPj4gKyAgICBjYXNlIFhFTl9ET01DVExfaHZtX3N5bmNfbW11Ogo+PiArICAgIHsKPj4g KyAgICAgICAgc3RydWN0IGRvbWFpbiAqZDsKPj4gKwo+PiArICAgICAgICByZXQgPSAtRVNSQ0g7 Cj4+ICsgICAgICAgIGQgPSByY3VfbG9ja19kb21haW5fYnlfaWQoZG9tY3RsLT5kb21haW4pOwo+ PiArICAgICAgICBpZiAoIGQgIT0gTlVMTCApCj4+ICsgICAgICAgIHsKPj4gKyAgICAgICAgICAg IGFyY2hfaHZtX3N5bmNfbW11KGQpOwo+PiArICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4o ZCk7Cj4+ICsgICAgICAgICAgICByZXQgPSAwOwo+PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiAr ICAgIGJyZWFrOwo+PiArCj4+ICAgICAgZGVmYXVsdDoKPj4gICAgICAgICAgcmV0ID0gaW9tbXVf ZG9fZG9tY3RsKGRvbWN0bCwgZCwgdV9kb21jdGwpOwo+PiAgICAgICAgICBicmVhazsKPj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vc2F2ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9zYXZl LmMKPj4gaW5kZXggNmFmMTliZS4uN2EwN2ViZiAxMDA2NDQKPj4gLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9zYXZlLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKPj4gQEAgLTc5LDYg Kzc5LDEyIEBAIGludCBhcmNoX2h2bV9sb2FkKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1f c2F2ZV9oZWFkZXIgKmhkcikKPj4gICAgICByZXR1cm4gMDsKPj4gIH0KPj4gIAo+PiArdm9pZCBh cmNoX2h2bV9zeW5jX21tdShzdHJ1Y3QgZG9tYWluICpkKQo+PiArewo+PiArICAgIGlmIChodm1f ZnVuY3Muc3luY19tbXUpCj4+ICsgICAgICAgIGh2bV9mdW5jcy5zeW5jX21tdShkKTsKPj4gK30K Pj4gKwo+PiAgLyoKPj4gICAqIExvY2FsIHZhcmlhYmxlczoKPj4gICAqIG1vZGU6IEMKPj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyBiL3hlbi9hcmNoL3g4Ni9odm0v dm14L3ZtY3MuYwo+PiBpbmRleCA4ZmZjNTYyLi40YmU5YjRkIDEwMDY0NAo+PiAtLS0gYS94ZW4v YXJjaC94ODYvaHZtL3ZteC92bWNzLmMKPj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1j cy5jCj4+IEBAIC01OTYsNiArNTk2LDE0IEBAIHZvaWQgdm14X2NwdV9kb3duKHZvaWQpCj4+ICAg ICAgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwo+PiAgfQo+PiAgCj4+ICt2b2lkIHZteF9zeW5j X21tdShzdHJ1Y3QgZG9tYWluICpkKQo+PiArewo+PiArICAgIGVwdF9zeW5jX2RvbWFpbihwMm1f Z2V0X2hvc3RwMm0oZCkpOwo+PiArCj4+ICsgICAgLyogZmx1c2ggdGxiICovCj4+ICsgICAgZmx1 c2hfYWxsKEZMVVNIX1RMQl9HTE9CQUwpOwo+PiArfQo+PiArCj4+ICBzdHJ1Y3QgZm9yZWlnbl92 bWNzIHsKPj4gICAgICBzdHJ1Y3QgdmNwdSAqdjsKPj4gICAgICB1bnNpZ25lZCBpbnQgY291bnQ7 Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4 Ni9odm0vdm14L3ZteC5jCj4+IGluZGV4IGViNzM0MTIuLmI0NmI0ZGQgMTAwNjQ0Cj4+IC0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jCj4+IEBAIC0xNzE5LDYgKzE3MTksNyBAQCBzdGF0aWMgc3RydWN0IGh2bV9mdW5jdGlv bl90YWJsZSBfX2luaXRkYXRhIHZteF9mdW5jdGlvbl90YWJsZSA9IHsKPj4gICAgICAuZXZlbnRf cGVuZGluZyAgICAgICAgPSB2bXhfZXZlbnRfcGVuZGluZywKPj4gICAgICAuY3B1X3VwICAgICAg ICAgICAgICAgPSB2bXhfY3B1X3VwLAo+PiAgICAgIC5jcHVfZG93biAgICAgICAgICAgICA9IHZt eF9jcHVfZG93biwKPj4gKyAgICAuc3luY19tbXUgICAgICAgICAgICAgPSB2bXhfc3luY19tbXUs Cj4+ICAgICAgLmNwdWlkX2ludGVyY2VwdCAgICAgID0gdm14X2NwdWlkX2ludGVyY2VwdCwKPj4g ICAgICAud2JpbnZkX2ludGVyY2VwdCAgICAgPSB2bXhfd2JpbnZkX2ludGVyY2VwdCwKPj4gICAg ICAuZnB1X2RpcnR5X2ludGVyY2VwdCAgPSB2bXhfZnB1X2RpcnR5X2ludGVyY2VwdCwKPj4gZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9odm0vaHZtLmgKPj4gaW5kZXggMGViZDQ3OC4uYjRmODlhNyAxMDA2NDQKPj4gLS0tIGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vaHZtLmgKPj4gQEAgLTE1MSw2ICsxNTEsNyBAQCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3Rh YmxlIHsKPj4gIAo+PiAgICAgIGludCAgKCpjcHVfdXApKHZvaWQpOwo+PiAgICAgIHZvaWQgKCpj cHVfZG93bikodm9pZCk7Cj4+ICsgICAgdm9pZCAoKnN5bmNfbW11KShzdHJ1Y3QgZG9tYWluICpk KTsKPj4gIAo+PiAgICAgIC8qIENvcHkgdXAgdG8gMTUgYnl0ZXMgZnJvbSBjYWNoZWQgaW5zdHJ1 Y3Rpb24gYnl0ZXMgYXQgY3VycmVudCBySVAuICovCj4+ICAgICAgdW5zaWduZWQgaW50ICgqZ2V0 X2luc25fYnl0ZXMpKHN0cnVjdCB2Y3B1ICp2LCB1aW50OF90ICpidWYpOwo+PiBkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL3ZteC92bWNzLmgKPj4gaW5kZXggMjE1ZDkzYy4uNjY0NzQxYSAxMDA2NDQKPj4gLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaAo+PiArKysgYi94ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS92bXgvdm1jcy5oCj4+IEBAIC0yOSw2ICsyOSw3IEBAIGV4dGVybiBpbnQg IHZteF9jcHVfdXBfcHJlcGFyZSh1bnNpZ25lZCBpbnQgY3B1KTsKPj4gIGV4dGVybiB2b2lkIHZt eF9jcHVfZGVhZCh1bnNpZ25lZCBpbnQgY3B1KTsKPj4gIGV4dGVybiBpbnQgIHZteF9jcHVfdXAo dm9pZCk7Cj4+ICBleHRlcm4gdm9pZCB2bXhfY3B1X2Rvd24odm9pZCk7Cj4+ICtleHRlcm4gdm9p ZCB2bXhfc3luY19tbXUoc3RydWN0IGRvbWFpbiAqZCk7Cj4+ICBleHRlcm4gdm9pZCB2bXhfc2F2 ZV9ob3N0X21zcnModm9pZCk7Cj4+ICAKPj4gIHN0cnVjdCB2bWNzX3N0cnVjdCB7Cj4+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMv ZG9tY3RsLmgKPj4gaW5kZXggNWIxMWJiZi4uMTFlNWEyNiAxMDA2NDQKPj4gLS0tIGEveGVuL2lu Y2x1ZGUvcHVibGljL2RvbWN0bC5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwu aAo+PiBAQCAtMTAwOCw2ICsxMDA4LDcgQEAgc3RydWN0IHhlbl9kb21jdGwgewo+PiAgI2RlZmlu ZSBYRU5fRE9NQ1RMX2NhY2hlZmx1c2ggICAgICAgICAgICAgICAgICAgIDcxCj4+ICAjZGVmaW5l IFhFTl9ET01DVExfZ2V0X3ZjcHVfbXNycyAgICAgICAgICAgICAgICAgNzIKPj4gICNkZWZpbmUg WEVOX0RPTUNUTF9zZXRfdmNwdV9tc3JzICAgICAgICAgICAgICAgICA3Mwo+PiArI2RlZmluZSBY RU5fRE9NQ1RMX2h2bV9zeW5jX21tdSAgICAgICAgICAgICAgICAgIDc0Cj4+ICAjZGVmaW5lIFhF Tl9ET01DVExfZ2Ric3hfZ3Vlc3RtZW1pbyAgICAgICAgICAgIDEwMDAKPj4gICNkZWZpbmUgWEVO X0RPTUNUTF9nZGJzeF9wYXVzZXZjcHUgICAgICAgICAgICAgMTAwMQo+PiAgI2RlZmluZSBYRU5f RE9NQ1RMX2dkYnN4X3VucGF1c2V2Y3B1ICAgICAgICAgICAxMDAyCj4+IGRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS94ZW4vaHZtL3NhdmUuaCBiL3hlbi9pbmNsdWRlL3hlbi9odm0vc2F2ZS5oCj4+ IGluZGV4IGFlNmYwYmIuLjA0OWZkYjggMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9o dm0vc2F2ZS5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9odm0vc2F2ZS5oCj4+IEBAIC0xMzUs NCArMTM1LDYgQEAgc3RydWN0IGh2bV9zYXZlX2hlYWRlcjsKPj4gIHZvaWQgYXJjaF9odm1fc2F2 ZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgaHZtX3NhdmVfaGVhZGVyICpoZHIpOwo+PiAgaW50 IGFyY2hfaHZtX2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9zYXZlX2hlYWRlciAq aGRyKTsKPj4gIAo+PiArdm9pZCBhcmNoX2h2bV9zeW5jX21tdShzdHJ1Y3QgZG9tYWluICpkKTsK Pj4gKwo+PiAgI2VuZGlmIC8qIF9fWEVOX0hWTV9TQVZFX0hfXyAqLwo+PiAtLSAKPj4gMS45LjMK Pj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K Pj4gWGVuLWRldmVsIG1haWxpbmcgbGlzdAo+PiBYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+PiBo dHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKPiAuCj4gCgoKLS0gCsOSw5TDicOPwqTDh8Kk wrkKwqTDqMKkw63CpMK3wqTCr8KkwqrDrsKKwqTCpMKkwrfCpMOewqTCuQrDjsOCwo/CvsORw7MK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KV2VuIENv bmd5YW5nCkRldmVsb3BtZW50IERlcHQuSQpOYW5qaW5nIEZ1aml0c3UgTmFuZGEgU29mdHdhcmUg VGVjaC4gQ28uLCBMdGQuKEZOU1QpCk5vLiA2IFdlbnpodSBSb2FkLCBOYW5qaW5nLCAyMTAwMTIs IENoaW5hClBvc3Rjb2RlOiAyMTAwMTIKVEVMwqPCuis4NisyNS04NjYzMDU2Ni04NTAzCkZVSklU U1UgSU5URVJOQUzCo8K6Nzk5NTUtODUwMwpGQVjCo8K6Kzg2KzI1LTgzMzE3Njg1Ck1haWzCo8K6 d2VuY3lAY24uZnVqaXRzdS5jb20KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KVGhpcyBjb21tdW5pY2F0aW9uIGlzIGZvciB1c2UgYnkgdGhlIGludGVu ZGVkIHJlY2lwaWVudChzKSBvbmx5IGFuZAptYXkgY29udGFpbiBpbmZvcm1hdGlvbiB0aGF0IGlz IHByaXZpbGVnZWQsIGNvbmZpZGVudGlhbCBhbmQKZXhlbXB0IGZyb20gZGlzY2xvc3VyZSB1bmRl ciBhcHBsaWNhYmxlIGxhdy4KSWYgeW91IGFyZSBub3QgYW4gaW50ZW5kZWQgcmVjaXBpZW50IG9m IHRoaXMgY29tbXVuaWNhdGlvbiwKeW91IGFyZSBoZXJlYnkgbm90aWZpZWQgdGhhdCBhbnkgZGlz c2VtaW5hdGlvbiwKZGlzdHJpYnV0aW9uIG9yIGNvcHlpbmcgaGVyZW9mIGlzIHN0cmljdGx5IHBy b2hpYml0ZWQuCklmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgY29tbXVuaWNhdGlvbiBpbiBlcnJv ciwKcGxlYXNlIG5vdGlmeSBtZSBieSByZXBseSBlLW1haWwsCnBlcm1hbmVudGx5IGRlbGV0ZSB0 aGlzIGNvbW11bmljYXRpb24gZnJvbSB5b3VyIHN5c3RlbSwKYW5kIGRlc3Ryb3kgYW55IGhhcmQg Y29waWVzIHlvdSBtYXkgaGF2ZSBwcmludGVkLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK