From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH V2] vm_event: Allow subscribing to write events for specific MSR-s Date: Wed, 13 Apr 2016 05:47:26 -0400 Message-ID: <20160413094726.GA2133@localhost.localdomain> References: <1460524280-6902-1-git-send-email-rcojocaru@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1460524280-6902-1-git-send-email-rcojocaru@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Razvan Cojocaru Cc: kevin.tian@intel.com, tamas@tklengyel.com, wei.liu2@citrix.com, jbeulich@suse.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, jun.nakajima@intel.com, keir@xen.org List-Id: xen-devel@lists.xenproject.org PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21vbml0b3IuYyBiL3hlbi9hcmNoL3g4Ni9tb25p dG9yLmMKPiBpbmRleCAxZmVjNDEyLi40Yzk2OTY4IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9tb25pdG9yLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbW9uaXRvci5jCj4gQEAgLTIyLDYgKzIy LDU4IEBACj4gICNpbmNsdWRlIDxhc20vbW9uaXRvci5oPgo+ICAjaW5jbHVkZSA8cHVibGljL3Zt X2V2ZW50Lmg+Cj4gIAo+ICtzdGF0aWMgaW50IGFyY2hfbW9uaXRvcl9lbmFibGVfbXNyKHN0cnVj dCBkb21haW4gKmQsIHUzMiBtc3IpCj4gK3sKPiArICAgIGlmICggIWQtPmFyY2gubW9uaXRvcl9t c3JfYml0bWFwICkKPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsKCkkgdGhpcyB3YXMgbm90IHNl dCB3b3VsZG4ndCB3ZSBmYWlsIGluIHZtX2V2ZW50X2VuYWJsZSB3aXRoIC1FTk9NRU0/CgpJIHBy ZXN1bWUgdGhlIHVzZXIgY2FuIHN0aWxsIG1ha2UgdGhpcyBoeXBlcmNhbGwuLiAgQWggeWVzLgoK UGVyaGFwcyAtRU5YSU8/Cj4gKwo+ICsgICAgaWYgKCBtc3IgPD0gMHgxZmZmICkKPiArICAgICAg ICBzZXRfYml0KG1zciwgZC0+YXJjaC5tb25pdG9yX21zcl9iaXRtYXAgKyAweDAwMC9CWVRFU19Q RVJfTE9ORyk7CgpUaGUgMHgwMDAvQllURVJfUEVSX0xPTkcgbG9va3Mgb2RkLiBJcyBpdCBldmVu IG5lZWRlZD8KCj4gKyAgICBlbHNlIGlmICggKG1zciA+PSAweGMwMDAwMDAwKSAmJiAobXNyIDw9 IDB4YzAwMDFmZmYpICkKPiArICAgIHsKPiArICAgICAgICBtc3IgJj0gMHgxZmZmOwo+ICsgICAg ICAgIHNldF9iaXQobXNyLCBkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCArIDB4NDAwL0JZVEVT X1BFUl9MT05HKTsKPiArICAgIH0KPiArCj4gKyAgICBodm1fZW5hYmxlX21zcl9pbnRlcmNlcHRp b24oZCwgbXNyKTsKCkFuZCBmb3IgTVNScyBhYm92ZSAweGMwMDAxZmZmIGl0IGlzIE9LIHRvIGVu YWJsZSB0aGUgaW50ZXJjZXB0aW9uPwpPciBiZXR3ZWVuIDB4MWZmZiBhbmQgMHhjMDAwMDAwMD8K Ck5vIG5lZWQgdG8gZmlsdGVyIHRoZW0gb3V0PyBPciBlcnJvciBvbiB0aGVtPwo+ICsKPiArICAg IHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGFyY2hfbW9uaXRvcl9kaXNhYmxlX21z cihzdHJ1Y3QgZG9tYWluICpkLCB1MzIgbXNyKQo+ICt7Cj4gKyAgICBpZiAoICFkLT5hcmNoLm1v bml0b3JfbXNyX2JpdG1hcCApCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsgICAg aWYgKCBtc3IgPD0gMHgxZmZmICkKPiArICAgICAgICBjbGVhcl9iaXQobXNyLCBkLT5hcmNoLm1v bml0b3JfbXNyX2JpdG1hcCArIDB4MDAwL0JZVEVTX1BFUl9MT05HKTsKPiArICAgIGVsc2UgaWYg KCAobXNyID49IDB4YzAwMDAwMDApICYmIChtc3IgPD0gMHhjMDAwMWZmZikgKQo+ICsgICAgewo+ ICsgICAgICAgIG1zciAmPSAweDFmZmY7Cj4gKyAgICAgICAgY2xlYXJfYml0KG1zciwgZC0+YXJj aC5tb25pdG9yX21zcl9iaXRtYXAgKyAweDQwMC9CWVRFU19QRVJfTE9ORyk7Cj4gKyAgICB9Cj4g Kwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK2Jvb2xfdCBhcmNoX21vbml0b3JfaXNfbXNy X2VuYWJsZWQoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgdTMyIG1zcikKPiArewo+ICsgICAgYm9v bF90IHJjID0gMDsKPiArCj4gKyAgICBpZiAoICFkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCAp Cj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKwo+ICsgICAgaWYgKCBtc3IgPD0gMHgxZmZmICkKPiAr ICAgICAgICByYyA9IHRlc3RfYml0KG1zciwgZC0+YXJjaC5tb25pdG9yX21zcl9iaXRtYXAgKyAw eDAwMC9CWVRFU19QRVJfTE9ORyk7Cj4gKyAgICBlbHNlIGlmICggKG1zciA+PSAweGMwMDAwMDAw KSAmJiAobXNyIDw9IDB4YzAwMDFmZmYpICkKPiArICAgIHsKPiArICAgICAgICBtc3IgJj0gMHgx ZmZmOwo+ICsgICAgICAgIHJjID0gdGVzdF9iaXQobXNyLCBkLT5hcmNoLm1vbml0b3JfbXNyX2Jp dG1hcCArIDB4NDAwL0JZVEVTX1BFUl9MT05HKTsKPiArICAgIH0KCkFuZCB3aGF0IGlmIG1zciBy ZXF1ZXN0ZWQgaXMgYWJvdmUgMHhjMDAwMWZmZiA/IFdoYXQgdGhlbj8KCj4gKwo+ICsgICAgcmV0 dXJuIHJjOwo+ICt9Cj4gKwo+ICBpbnQgYXJjaF9tb25pdG9yX2RvbWN0bF9ldmVudChzdHJ1Y3Qg ZG9tYWluICpkLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2Rv bWN0bF9tb25pdG9yX29wICptb3ApCj4gIHsKPiBAQCAtNzcsMjUgKzEyOSwyOCBAQCBpbnQgYXJj aF9tb25pdG9yX2RvbWN0bF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLAo+ICAKPiAgICAgIGNhc2Ug WEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX01PVl9UT19NU1I6CgpTaG91bGQgdGhpcyBiZSByZW5h bWVkPwo+ICAgICAgewo+IC0gICAgICAgIGJvb2xfdCBvbGRfc3RhdHVzID0gYWQtPm1vbml0b3Iu bW92X3RvX21zcl9lbmFibGVkOwo+ICsgICAgICAgIGJvb2xfdCBvbGRfc3RhdHVzOwo+ICsgICAg ICAgIGludCByYzsKPiArICAgICAgICB1MzIgbXNyID0gbW9wLT51Lm1vdl90b19tc3IubXNyOwo+ ICAKPiAtICAgICAgICBpZiAoIHVubGlrZWx5KG9sZF9zdGF0dXMgPT0gcmVxdWVzdGVkX3N0YXR1 cykgKQo+IC0gICAgICAgICAgICByZXR1cm4gLUVFWElTVDsKPiArICAgICAgICBkb21haW5fcGF1 c2UoZCk7Cj4gIAo+IC0gICAgICAgIGlmICggcmVxdWVzdGVkX3N0YXR1cyAmJiBtb3AtPnUubW92 X3RvX21zci5leHRlbmRlZF9jYXB0dXJlICYmCj4gLSAgICAgICAgICAgICAhaHZtX2VuYWJsZV9t c3JfZXhpdF9pbnRlcmNlcHRpb24oZCkgKQo+IC0gICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNV UFA7Cj4gKyAgICAgICAgb2xkX3N0YXR1cyA9IGFyY2hfbW9uaXRvcl9pc19tc3JfZW5hYmxlZChk LCBtc3IpOwo+ICAKPiAtICAgICAgICBkb21haW5fcGF1c2UoZCk7Cj4gKyAgICAgICAgaWYgKCB1 bmxpa2VseShvbGRfc3RhdHVzID09IHJlcXVlc3RlZF9zdGF0dXMpICkKPiArICAgICAgICB7Cj4g KyAgICAgICAgICAgIGRvbWFpbl91bnBhdXNlKGQpOwo+ICsgICAgICAgICAgICByZXR1cm4gLUVF WElTVDsKPiArICAgICAgICB9Cj4gIAo+IC0gICAgICAgIGlmICggcmVxdWVzdGVkX3N0YXR1cyAm JiBtb3AtPnUubW92X3RvX21zci5leHRlbmRlZF9jYXB0dXJlICkKPiAtICAgICAgICAgICAgYWQt Pm1vbml0b3IubW92X3RvX21zcl9leHRlbmRlZCA9IDE7Cj4gKyAgICAgICAgaWYgKCByZXF1ZXN0 ZWRfc3RhdHVzICkKPiArICAgICAgICAgICAgcmMgPSBhcmNoX21vbml0b3JfZW5hYmxlX21zcihk LCBtc3IpOwo+ICAgICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgYWQtPm1vbml0b3IubW92X3Rv X21zcl9leHRlbmRlZCA9IDA7Cj4gKyAgICAgICAgICAgIHJjID0gYXJjaF9tb25pdG9yX2Rpc2Fi bGVfbXNyKGQsIG1zcik7Cj4gIAo+IC0gICAgICAgIGFkLT5tb25pdG9yLm1vdl90b19tc3JfZW5h YmxlZCA9IHJlcXVlc3RlZF9zdGF0dXM7Cj4gICAgICAgICAgZG9tYWluX3VucGF1c2UoZCk7Cj4g LSAgICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgICAgIHJldHVybiByYzsKPiAgICAgIH0KPiAgCj4g ICAgICBjYXNlIFhFTl9ET01DVExfTU9OSVRPUl9FVkVOVF9TSU5HTEVTVEVQOgo+IGRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCj4g aW5kZXggNTYzNTYwMy4uOWI0MjY3ZSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvdm1fZXZl bnQuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCj4gQEAgLTI3LDYgKzI3LDEzIEBA IGludCB2bV9ldmVudF9pbml0X2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQo+ICB7Cj4gICAgICBz dHJ1Y3QgdmNwdSAqdjsKPiAgCj4gKyAgICBkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCA9IGFs bG9jX3hlbmhlYXBfcGFnZSgpOwoKSG93IGFib3V0IHVzaW5nIHZ6YWxsb2M/Cj4gKwo+ICsgICAg aWYgKCAhZC0+YXJjaC5tb25pdG9yX21zcl9iaXRtYXAgKQo+ICsgICAgICAgIHJldHVybiAtRU5P TUVNOwo+ICsKPiArICAgIG1lbXNldChkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCwgMCwgUEFH RV9TSVpFKTsKClRoZW4geW91IGRvbid0IGhhdmUgdG8gZG8gdGhhdC4KCj4gKwo+ICAgICAgZm9y X2VhY2hfdmNwdSAoIGQsIHYgKQo+ICAgICAgewo+ICAgICAgICAgIGlmICggdi0+YXJjaC52bV9l dmVudCApCj4gQEAgLTU1LDYgKzYyLDkgQEAgdm9pZCB2bV9ldmVudF9jbGVhbnVwX2RvbWFpbihz dHJ1Y3QgZG9tYWluICpkKQo+ICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQgPSBOVUxMOwo+ICAg ICAgfQo+ICAKPiArICAgIGZyZWVfeGVuaGVhcF9wYWdlKGQtPmFyY2gubW9uaXRvcl9tc3JfYml0 bWFwKTsKCkFuZCB0aGlzIHdvdWxkIGJlIHZmcmVlLgoKPiArICAgIGQtPmFyY2gubW9uaXRvcl9t c3JfYml0bWFwID0gTlVMTDsKPiArCj4gICAgICBkLT5hcmNoLm1lbV9hY2Nlc3NfZW11bGF0ZV9l YWNoX3JlcCA9IDA7Cj4gICAgICBtZW1zZXQoJmQtPmFyY2gubW9uaXRvciwgMCwgc2l6ZW9mKGQt PmFyY2gubW9uaXRvcikpOwo+ICAgICAgbWVtc2V0KCZkLT5tb25pdG9yLCAwLCBzaXplb2YoZC0+ bW9uaXRvcikpOwo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAo+IGluZGV4IGQzOTNlZDIuLmQ4ZDkxYzIgMTAw NjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAo+ICsrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvZG9tYWluLmgKPiBAQCAtMzk4LDEyICszOTgsMTIgQEAgc3RydWN0IGFyY2hf ZG9tYWluCj4gICAgICAgICAgdW5zaWduZWQgaW50IHdyaXRlX2N0cmxyZWdfZW5hYmxlZCAgICAg ICA6IDQ7Cj4gICAgICAgICAgdW5zaWduZWQgaW50IHdyaXRlX2N0cmxyZWdfc3luYyAgICAgICAg ICA6IDQ7Cj4gICAgICAgICAgdW5zaWduZWQgaW50IHdyaXRlX2N0cmxyZWdfb25jaGFuZ2Vvbmx5 ICA6IDQ7Cj4gLSAgICAgICAgdW5zaWduZWQgaW50IG1vdl90b19tc3JfZW5hYmxlZCAgICAgICAg ICA6IDE7Cj4gLSAgICAgICAgdW5zaWduZWQgaW50IG1vdl90b19tc3JfZXh0ZW5kZWQgICAgICAg ICA6IDE7Cj4gICAgICAgICAgdW5zaWduZWQgaW50IHNpbmdsZXN0ZXBfZW5hYmxlZCAgICAgICAg ICA6IDE7Cj4gICAgICAgICAgdW5zaWduZWQgaW50IHNvZnR3YXJlX2JyZWFrcG9pbnRfZW5hYmxl ZCA6IDE7Cj4gICAgICB9IG1vbml0b3I7Cj4gIAo+ICsgICAgdW5zaWduZWQgbG9uZyAqbW9uaXRv cl9tc3JfYml0bWFwOwo+ICsKPiAgICAgIC8qIE1lbV9hY2Nlc3MgZW11bGF0aW9uIGNvbnRyb2wg Ki8KPiAgICAgIGJvb2xfdCBtZW1fYWNjZXNzX2VtdWxhdGVfZWFjaF9yZXA7Cj4gIAo+IGRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL2h2bS5oCj4gaW5kZXggN2I3ZmYzZi4uOWQxYzBlZiAxMDA2NDQKPiAtLS0gYS94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L2h2bS5oCj4gQEAgLTIxMSw3ICsyMTEsNyBAQCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIHsK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICplYXgsIHVpbnQz Ml90ICplYngsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAq ZWN4LCB1aW50MzJfdCAqZWR4KTsKPiAgCj4gLSAgICB2b2lkICgqZW5hYmxlX21zcl9leGl0X2lu dGVyY2VwdGlvbikoc3RydWN0IGRvbWFpbiAqZCk7Cj4gKyAgICB2b2lkICgqZW5hYmxlX21zcl9p bnRlcmNlcHRpb24pKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1zcik7Cj4gICAgICBib29s X3QgKCppc19zaW5nbGVzdGVwX3N1cHBvcnRlZCkodm9pZCk7Cj4gICAgICBpbnQgKCpzZXRfbW9k ZSkoc3RydWN0IHZjcHUgKnYsIGludCBtb2RlKTsKPiAgCj4gQEAgLTU2NSwxMSArNTY1LDExIEBA IHN0YXRpYyBpbmxpbmUgZW51bSBodm1faW50YmxrIG5odm1faW50ZXJydXB0X2Jsb2NrZWQoc3Ry dWN0IHZjcHUgKnYpCj4gICAgICByZXR1cm4gaHZtX2Z1bmNzLm5odm1faW50cl9ibG9ja2VkKHYp Owo+ICB9Cj4gIAo+IC1zdGF0aWMgaW5saW5lIGJvb2xfdCBodm1fZW5hYmxlX21zcl9leGl0X2lu dGVyY2VwdGlvbihzdHJ1Y3QgZG9tYWluICpkKQo+ICtzdGF0aWMgaW5saW5lIGJvb2xfdCBodm1f ZW5hYmxlX21zcl9pbnRlcmNlcHRpb24oc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbXNyKQo+ ICB7Cj4gLSAgICBpZiAoIGh2bV9mdW5jcy5lbmFibGVfbXNyX2V4aXRfaW50ZXJjZXB0aW9uICkK PiArICAgIGlmICggaHZtX2Z1bmNzLmVuYWJsZV9tc3JfaW50ZXJjZXB0aW9uICkKPiAgICAgIHsK PiAtICAgICAgICBodm1fZnVuY3MuZW5hYmxlX21zcl9leGl0X2ludGVyY2VwdGlvbihkKTsKPiAr ICAgICAgICBodm1fZnVuY3MuZW5hYmxlX21zcl9pbnRlcmNlcHRpb24oZCwgbXNyKTsKPiAgICAg ICAgICByZXR1cm4gMTsKPiAgICAgIH0KPiAgCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3ZteC92bWNzLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgvdm1jcy5o Cj4gaW5kZXggYjU0ZjUyZi4uN2JmNTMyNiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS92bXgvdm1jcy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3Zt Y3MuaAo+IEBAIC01NjIsMTMgKzU2Miw2IEBAIGVudW0gdm1jc19maWVsZCB7Cj4gICAgICBIT1NU X1JJUCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwNmMxNiwKPiAgfTsKPiAgCj4gLS8q Cj4gLSAqIEEgc2V0IG9mIE1TUi1zIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBtZW1vcnkg aW50cm9zcGVjdGlvbgo+IC0gKiB0byB3b3JrLgo+IC0gKi8KPiAtZXh0ZXJuIGNvbnN0IHUzMiB2 bXhfaW50cm9zcGVjdGlvbl9mb3JjZV9lbmFibGVkX21zcnNbXTsKPiAtZXh0ZXJuIGNvbnN0IHVu c2lnbmVkIGludCB2bXhfaW50cm9zcGVjdGlvbl9mb3JjZV9lbmFibGVkX21zcnNfc2l6ZTsKPiAt Cj4gICNkZWZpbmUgVk1DU19WUElEX1dJRFRIIDE2Cj4gIAo+ICAjZGVmaW5lIE1TUl9UWVBFX1Ig MQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21vbml0b3IuaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvbW9uaXRvci5oCj4gaW5kZXggMDk1NGI1OS4uNzRlNWIxYiAxMDA2NDQKPiAt LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L21vbml0b3IuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvbW9uaXRvci5oCj4gQEAgLTUwLDQgKzUwLDYgQEAgaW50IGFyY2hfbW9uaXRvcl9kb21j dGxfb3Aoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCAqbW9w KQo+ICBpbnQgYXJjaF9tb25pdG9yX2RvbWN0bF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLAo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29w ICptb3ApOwo+ICAKPiArYm9vbF90IGFyY2hfbW9uaXRvcl9pc19tc3JfZW5hYmxlZChjb25zdCBz dHJ1Y3QgZG9tYWluICpkLCB1MzIgbXNyKTsKPiArCj4gICNlbmRpZiAvKiBfX0FTTV9YODZfTU9O SVRPUl9IX18gKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIv eGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCj4gaW5kZXggMjQ1NzY5OC4uODc1YzA5YSAxMDA2 NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKPiArKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvZG9tY3RsLmgKPiBAQCAtMTEwNyw4ICsxMTA3LDcgQEAgc3RydWN0IHhlbl9kb21j dGxfbW9uaXRvcl9vcCB7Cj4gICAgICAgICAgfSBtb3ZfdG9fY3I7Cj4gIAo+ICAgICAgICAgIHN0 cnVjdCB7Cj4gLSAgICAgICAgICAgIC8qIEVuYWJsZSB0aGUgY2FwdHVyZSBvZiBhbiBleHRlbmRl ZCBzZXQgb2YgTVNScyAqLwo+IC0gICAgICAgICAgICB1aW50OF90IGV4dGVuZGVkX2NhcHR1cmU7 Cj4gKyAgICAgICAgICAgIHVpbnQzMl90IG1zcjsKCldob2EgdGhlcmUuIElzbid0IGl0IGV4cGFu ZGluZyB0aGUgc3RydWN0dXJlPyBXaWxsIHRoaXMgYmUgYmFja3dhcmRzCmNvbXBhdGlibGU/IFdo YXQgaWYgc29tZWJvZHkgaXMgdXNpbmcgYW4gb2xkZXIgdmVyc2lvbiBvZiB4ZW4tYWNjZXNzCmFn YWluc3QgdGhpcyBoeXBlcnZpc29yPyBXaWxsIHRoZXkgd29yaz8KClBlcmhhcHMgdGhpcyBzaG91 bGQgaGF2ZSBhIG5ldyBzdHJ1Y3QgLyBzdWItb3BzPyBBbmQgdGhlIG9sZAonbW92X3RvX21zcicg d2lsbCBqdXN0IHJlLXVzZSB0aGlzIG5ldyBmYW5nbGVkIGNvZGU/CgoKPiAgICAgICAgICB9IG1v dl90b19tc3I7Cj4gIAo+ICAgICAgICAgIHN0cnVjdCB7Cj4gLS0gCj4gMS45LjEKPiAKPiAKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKPiBYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+IGh0dHA6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK