From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Dyasli Subject: Re: [PATCH 1/2] VMX: fix VMCS race on context-switch paths Date: Wed, 15 Feb 2017 10:27:13 +0000 Message-ID: <1487154433.3588.1.camel@citrix.com> References: <58A2E8B70200007800139946@prv-mh.provo.novell.com> <58A2E9F9020000780013995D@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdwoF-0003uu-2T for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 10:27:39 +0000 In-Reply-To: <58A2E9F9020000780013995D@prv-mh.provo.novell.com> Content-Language: en-US Content-ID: <76C337918EF87C44BEBB270D21AB9F69@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "JBeulich@suse.com" , "xen-devel@lists.xenproject.org" Cc: Sergey Dyasli , Kevin Tian , "Kevin.Mayer@gdata.de" , Andrew Cooper , Anshul Makkar , "jun.nakajima@intel.com" List-Id: xen-devel@lists.xenproject.org T24gVHVlLCAyMDE3LTAyLTE0IGF0IDAzOjI4IC0wNzAwLCBKYW4gQmV1bGljaCB3cm90ZToNCj4g V2hlbiBfX2NvbnRleHRfc3dpdGNoKCkgaXMgYmVpbmcgYnlwYXNzZWQgZHVyaW5nIG9yaWdpbmFs IGNvbnRleHQNCj4gc3dpdGNoIGhhbmRsaW5nLCB0aGUgdkNQVSAib3duaW5nIiB0aGUgVk1DUyBw YXJ0aWFsbHkgbG9zZXMgY29udHJvbCBvZg0KPiBpdDogSXQgd2lsbCBhcHBlYXIgbm9uLXJ1bm5p bmcgdG8gcmVtb3RlIENQVXMsIGFuZCBoZW5jZSB0aGVpciBhdHRlbXB0DQo+IHRvIHBhdXNlIHRo ZSBvd25pbmcgdkNQVSB3aWxsIGhhdmUgbm8gZWZmZWN0IG9uIGl0IChhcyBpdCBhbHJlYWR5DQo+ IGxvb2tzIHRvIGJlIHBhdXNlZCkuIEF0IHRoZSBzYW1lIHRpbWUgdGhlICJvd25pbmciIENQVSB3 aWxsIHJlLWVuYWJsZQ0KPiBpbnRlcnJ1cHRzIGV2ZW50dWFsbHkgKHRoZSBsYXN0ZXN0IHdoZW4g ZW50ZXJpbmcgdGhlIGlkbGUgbG9vcCkgYW5kDQo+IGhlbmNlIGJlY29tZXMgc3ViamVjdCB0byBJ UElzIGZyb20gb3RoZXIgQ1BVcyByZXF1ZXN0aW5nIGFjY2VzcyB0byB0aGUNCj4gVk1DUy4gQXMg YSByZXN1bHQsIHdoZW4gX19jb250ZXh0X3N3aXRjaCgpIGZpbmFsbHkgZ2V0cyBydW4sIHRoZSBD UFUNCj4gbWF5IG5vIGxvbmdlciBoYXZlIHRoZSBWTUNTIGxvYWRlZCwgYW5kIGhlbmNlIGFueSBh Y2Nlc3NlcyB0byBpdCB3b3VsZA0KPiBmYWlsLiBIZW5jZSB3ZSBtYXkgbmVlZCB0byByZS1sb2Fk IHRoZSBWTUNTIGluIHZteF9jdHh0X3N3aXRjaF9mcm9tKCkuDQo+IA0KPiBTaW1pbGFybHksIHdo ZW4gX19jb250ZXh0X3N3aXRjaCgpIGlzIGJlaW5nIGJ5cGFzc2VkIGFsc28gb24gdGhlIHNlY29u ZA0KPiAoc3dpdGNoLWluKSBwYXRoLCBWTUNTIG93bmVyc2hpcCBtYXkgaGF2ZSBiZWVuIGxvc3Qg YW5kIGhlbmNlIG5lZWRzDQo+IHJlLWVzdGFibGlzaGluZy4gU2luY2UgdGhlcmUncyBubyBleGlz dGluZyBob29rIHRvIHB1dCB0aGlzIGluLCBhZGQgYQ0KPiBuZXcgb25lLg0KPiANCj4gUmVwb3J0 ZWQtYnk6IEtldmluIE1heWVyIDxLZXZpbi5NYXllckBnZGF0YS5kZT4NCj4gUmVwb3J0ZWQtYnk6 IEFuc2h1bCBNYWtrYXIgPGFuc2h1bC5tYWtrYXJAY2l0cml4LmNvbT4NCj4gU2lnbmVkLW9mZi1i eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiANCj4gLS0tIGEveGVuL2FyY2gv eDg2L2RvbWFpbi5jDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYw0KPiBAQCAtMjA5OCwx MSArMjA5OCwxNCBAQCB2b2lkIGNvbnRleHRfc3dpdGNoKHN0cnVjdCB2Y3B1ICpwcmV2LCBzDQo+ ICANCj4gICAgICBzZXRfY3VycmVudChuZXh0KTsNCj4gIA0KPiAtICAgIGlmICggKHBlcl9jcHUo Y3Vycl92Y3B1LCBjcHUpID09IG5leHQpIHx8DQo+IC0gICAgICAgICAoaXNfaWRsZV9kb21haW4o bmV4dGQpICYmIGNwdV9vbmxpbmUoY3B1KSkgKQ0KPiArICAgIGlmICggKHBlcl9jcHUoY3Vycl92 Y3B1LCBjcHUpID09IG5leHQpICkNCj4gICAgICB7DQo+ICsgICAgICAgIGlmICggbmV4dC0+YXJj aC5jdHh0X3N3aXRjaF9zYW1lICkNCj4gKyAgICAgICAgICAgIG5leHQtPmFyY2guY3R4dF9zd2l0 Y2hfc2FtZShuZXh0KTsNCj4gICAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOw0KPiAgICAgIH0N Cj4gKyAgICBlbHNlIGlmICggaXNfaWRsZV9kb21haW4obmV4dGQpICYmIGNwdV9vbmxpbmUoY3B1 KSApDQo+ICsgICAgICAgIGxvY2FsX2lycV9lbmFibGUoKTsNCj4gICAgICBlbHNlDQo+ICAgICAg ew0KPiAgICAgICAgICBfX2NvbnRleHRfc3dpdGNoKCk7DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3ZtY3MuYw0KPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMNCj4gQEAg LTU1Miw2ICs1NTIsMjcgQEAgc3RhdGljIHZvaWQgdm14X2xvYWRfdm1jcyhzdHJ1Y3QgdmNwdSAq dg0KPiAgICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsNCj4gIH0NCj4gIA0KPiArdm9pZCB2 bXhfdm1jc19yZWxvYWQoc3RydWN0IHZjcHUgKnYpDQo+ICt7DQo+ICsgICAgLyoNCj4gKyAgICAg KiBBcyB3ZSdyZSBydW5uaW5nIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCwgd2UgY2FuJ3QgYWNx dWlyZQ0KPiArICAgICAqIHYtPmFyY2guaHZtX3ZteC52bWNzX2xvY2sgaGVyZS4gSG93ZXZlciwg d2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkDQo+ICsgICAgICogdGhlIFZNQ1MgY2FuJ3QgYmUgdGFr ZW4gYXdheSBmcm9tIHVzIGFueW1vcmUgaWYgd2Ugc3RpbGwgb3duIGl0Lg0KPiArICAgICAqLw0K PiArICAgIEFTU0VSVCghbG9jYWxfaXJxX2lzX2VuYWJsZWQoKSk7DQo+ICsgICAgaWYgKCB2LT5h cmNoLmh2bV92bXgudm1jc19wYSA9PSB0aGlzX2NwdShjdXJyZW50X3ZtY3MpICkNCj4gKyAgICAg ICAgcmV0dXJuOw0KPiArICAgIEFTU0VSVCghdGhpc19jcHUoY3VycmVudF92bWNzKSk7DQo+ICsN Cj4gKyAgICAvKg0KPiArICAgICAqIFdhaXQgZm9yIHRoZSByZW1vdGUgc2lkZSB0byBiZSBkb25l IHdpdGggdGhlIFZNQ1MgYmVmb3JlIGxvYWRpbmcNCj4gKyAgICAgKiBpdCBoZXJlLg0KPiArICAg ICAqLw0KPiArICAgIHdoaWxlICggdi0+YXJjaC5odm1fdm14LmFjdGl2ZV9jcHUgIT0gLTEgKQ0K PiArICAgICAgICBjcHVfcmVsYXgoKTsNCj4gKyAgICB2bXhfbG9hZF92bWNzKHYpOw0KPiArfQ0K PiArDQo+ICBpbnQgdm14X2NwdV91cF9wcmVwYXJlKHVuc2lnbmVkIGludCBjcHUpDQo+ICB7DQo+ ICAgICAgLyoNCj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMNCj4gKysrIGIveGVu L2FyY2gveDg2L2h2bS92bXgvdm14LmMNCj4gQEAgLTI5OCw2ICsyOTgsNyBAQCBzdGF0aWMgaW50 IHZteF92Y3B1X2luaXRpYWxpc2Uoc3RydWN0IHZjDQo+ICAgICAgdi0+YXJjaC5zY2hlZHVsZV90 YWlsICAgID0gdm14X2RvX3Jlc3VtZTsNCj4gICAgICB2LT5hcmNoLmN0eHRfc3dpdGNoX2Zyb20g PSB2bXhfY3R4dF9zd2l0Y2hfZnJvbTsNCj4gICAgICB2LT5hcmNoLmN0eHRfc3dpdGNoX3RvICAg PSB2bXhfY3R4dF9zd2l0Y2hfdG87DQo+ICsgICAgdi0+YXJjaC5jdHh0X3N3aXRjaF9zYW1lID0g dm14X3ZtY3NfcmVsb2FkOw0KPiAgDQo+ICAgICAgaWYgKCAocmMgPSB2bXhfY3JlYXRlX3ZtY3Mo dikpICE9IDAgKQ0KPiAgICAgIHsNCj4gQEAgLTkzNiw2ICs5MzcsMTggQEAgc3RhdGljIHZvaWQg dm14X2N0eHRfc3dpdGNoX2Zyb20oc3RydWN0DQo+ICAgICAgaWYgKCB1bmxpa2VseSghdGhpc19j cHUodm14b24pKSApDQo+ICAgICAgICAgIHJldHVybjsNCj4gIA0KPiArICAgIGlmICggIXYtPmlz X3J1bm5pbmcgKQ0KPiArICAgIHsNCj4gKyAgICAgICAgLyoNCj4gKyAgICAgICAgICogV2hlbiB0 aGlzIHZDUFUgaXNuJ3QgbWFya2VkIGFzIHJ1bm5pbmcgYW55bW9yZSwgYSByZW1vdGUgcENQVSdz DQo+ICsgICAgICAgICAqIGF0dGVtcHQgdG8gcGF1c2UgdXMgKGZyb20gdm14X3ZtY3NfZW50ZXIo KSkgd29uJ3QgaGF2ZSBhIHJlYXNvbg0KPiArICAgICAgICAgKiB0byBzcGluIGluIHZjcHVfc2xl ZXBfc3luYygpLCBhbmQgaGVuY2UgdGhhdCBwQ1BVIG1pZ2h0IGhhdmUgdGFrZW4NCj4gKyAgICAg ICAgICogYXdheSB0aGUgVk1DUyBmcm9tIHVzLiBBcyB3ZSdyZSBydW5uaW5nIHdpdGggaW50ZXJy dXB0cyBkaXNhYmxlZCwNCj4gKyAgICAgICAgICogd2UgYWxzbyBjYW4ndCBjYWxsIHZteF92bWNz X2VudGVyKCkuDQo+ICsgICAgICAgICAqLw0KPiArICAgICAgICB2bXhfdm1jc19yZWxvYWQodik7 DQo+ICsgICAgfQ0KPiArDQo+ICAgICAgdm14X2ZwdV9sZWF2ZSh2KTsNCj4gICAgICB2bXhfc2F2 ZV9ndWVzdF9tc3JzKHYpOw0KPiAgICAgIHZteF9yZXN0b3JlX2hvc3RfbXNycygpOw0KPiAtLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvZG9tYWluLmgNCj4gQEAgLTUxNCw2ICs1MTQsNyBAQCBzdHJ1Y3QgYXJjaF92Y3B1DQo+ICAN Cj4gICAgICB2b2lkICgqY3R4dF9zd2l0Y2hfZnJvbSkgKHN0cnVjdCB2Y3B1ICopOw0KPiAgICAg IHZvaWQgKCpjdHh0X3N3aXRjaF90bykgKHN0cnVjdCB2Y3B1ICopOw0KPiArICAgIHZvaWQgKCpj dHh0X3N3aXRjaF9zYW1lKSAoc3RydWN0IHZjcHUgKik7DQo+ICANCj4gICAgICBzdHJ1Y3QgdnBt dV9zdHJ1Y3QgdnBtdTsNCj4gIA0KPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgv dm1jcy5oDQo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgNCj4gQEAg LTE3NCw2ICsxNzQsNyBAQCB2b2lkIHZteF9kZXN0cm95X3ZtY3Moc3RydWN0IHZjcHUgKnYpOw0K PiAgdm9pZCB2bXhfdm1jc19lbnRlcihzdHJ1Y3QgdmNwdSAqdik7DQo+ICBib29sX3QgX19tdXN0 X2NoZWNrIHZteF92bWNzX3RyeV9lbnRlcihzdHJ1Y3QgdmNwdSAqdik7DQo+ICB2b2lkIHZteF92 bWNzX2V4aXQoc3RydWN0IHZjcHUgKnYpOw0KPiArdm9pZCB2bXhfdm1jc19yZWxvYWQoc3RydWN0 IHZjcHUgKnYpOw0KPiAgDQo+ICAjZGVmaW5lIENQVV9CQVNFRF9WSVJUVUFMX0lOVFJfUEVORElO RyAgICAgICAgMHgwMDAwMDAwNA0KPiAgI2RlZmluZSBDUFVfQkFTRURfVVNFX1RTQ19PRkZTRVRJ TkcgICAgICAgICAgIDB4MDAwMDAwMDgNCj4gDQo+IA0KDQpVc2luZyB0aGUgYWJvdmUgcGF0Y2gg d2l0aCB0aGUgZm9sbG93aW5nIGNoYW5nZSBmb3IgWGVuLTQuNi4xOg0KDQotwqDCoMKgwqBpZiAo IHYtPmFyY2guaHZtX3ZteC52bWNzX3BhID09IHRoaXNfY3B1KGN1cnJlbnRfdm1jcykgKQ0KK8Kg wqDCoMKgaWYgKCB2LT5hcmNoLmh2bV92bXgudm1jcyA9PSB0aGlzX2NwdShjdXJyZW50X3ZtY3Mp ICkNCg0KVGhpcyBpcyB3aGF0IEknbSBnZXR0aW5nIGR1cmluZyB0aGUgb3JpZ2luYWwgdGVzdCBj YXNlICgzMiBWTXMgcmVib290KToNCg0KKFhFTikgWyAxNDA3Ljc4OTMyOV0gV2F0Y2hkb2cgdGlt ZXIgZGV0ZWN0cyB0aGF0IENQVTEyIGlzIHN0dWNrIQ0KKFhFTikgWyAxNDA3Ljc5NTcyNl0gLS0t LVsgWGVuLTQuNi4xLXhzLWxvY2FswqDCoHg4Nl82NMKgwqBkZWJ1Zz1uwqDCoE5vdCB0YWludGVk IF0tLS0tDQooWEVOKSBbIDE0MDcuODAzNzc0XSBDUFU6wqDCoMKgwqAxMg0KKFhFTikgWyAxNDA3 LjgwNjk3NV0gUklQOsKgwqDCoMKgZTAwODpbPGZmZmY4MmQwODAxZWEyYTI+XSB2bXhfdm1jc19y ZWxvYWQrMHgzMi8weDUwDQooWEVOKSBbIDE0MDcuODE0OTI2XSBSRkxBR1M6IDAwMDAwMDAwMDAw MDAwMTPCoMKgwqBDT05URVhUOiBoeXBlcnZpc29yIChkMjMwdjApDQooWEVOKSBbIDE0MDcuODIy NDg2XSByYXg6IDAwMDAwMDAwMDAwMDAwMDDCoMKgwqByYng6IGZmZmY4MzAwNzllZTcwMDDCoMKg wqByY3g6IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsgMTQwNy44MzE0MDddIHJkeDogMDAwMDAw NmY4ZjcyY2UwMMKgwqDCoHJzaTogZmZmZjgzMjliM2VmYmZlOMKgwqDCoHJkaTogZmZmZjgzMDA3 OWVlNzAwMA0KKFhFTikgWyAxNDA3Ljg0MDMyNl0gcmJwOiBmZmZmODMwMDdiYWI3MDAwwqDCoMKg cnNwOiBmZmZmODM0MDBmYWI3ZGM4wqDCoMKgcjg6wqDCoDAwMDAwMTQ2OGU5ZTNjY2MNCihYRU4p IFsgMTQwNy44NDkyNDZdIHI5OsKgwqBmZmZmODM0MDNmZmU3MDAwwqDCoMKgcjEwOiAwMDAwMDE0 NmM5MWMxNzM3wqDCoMKgcjExOiBmZmZmODMzYTk1NThjMzEwDQooWEVOKSBbIDE0MDcuODU4MTY2 XSByMTI6IGZmZmY4MzNhOTU1OGMwMDDCoMKgwqByMTM6IDAwMDAwMDAwMDAwMDAwMGPCoMKgwqBy MTQ6IGZmZmY4MzQwM2ZmZTcwMDANCihYRU4pIFsgMTQwNy44NjcwODVdIHIxNTogZmZmZjgyZDA4 MDM2NDY0MMKgwqDCoGNyMDogMDAwMDAwMDA4MDA1MDAzM8KgwqDCoGNyNDogMDAwMDAwMDAwMDM1 MjZlMA0KKFhFTikgWyAxNDA3Ljg3NjAwNV0gY3IzOiAwMDAwMDAyOTRiMDc0MDAwwqDCoMKgY3Iy OiAwMDAwMDdmZWZkN2NlMTUwDQooWEVOKSBbIDE0MDcuODgyNTk5XSBkczogMDAwMMKgwqDCoGVz OiAwMDAwwqDCoMKgZnM6IDAwMDDCoMKgwqBnczogMDAwMMKgwqDCoHNzOiAwMDAwwqDCoMKgY3M6 IGUwMDgNCihYRU4pIFsgMTQwNy44OTA5MzhdIFhlbiBjb2RlIGFyb3VuZCA8ZmZmZjgyZDA4MDFl YTJhMj4gKHZteF92bWNzX3JlbG9hZCsweDMyLzB4NTApOg0KKFhFTikgWyAxNDA3Ljg5OTI3N13C oMKgODQgMDAgMDAgMDAgMDAgMDAgZjMgOTAgPDgzPiBiZiBlOCAwNSAwMCAwMCBmZiA3NSBmNSBl OSBhMCBmYSBmZiBmZiBmMyBjMw0KKFhFTikgWyAxNDA3LjkwODY3OV0gWGVuIHN0YWNrIHRyYWNl IGZyb20gcnNwPWZmZmY4MzQwMGZhYjdkYzg6DQooWEVOKSBbIDE0MDcuOTE0OTgyXcKgwqDCoMKg ZmZmZjgyZDA4MDE2YzU4ZCAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw MDAwMDAwMDAwMA0KKFhFTikgWyAxNDA3LjkyMzk5OF3CoMKgwqDCoDAwMDAwMDAwMDAwMDAyMDYg MDAwMDAwMDAwMDAwMDA4NiAwMDAwMDAwMDAwMDAwMjg2IDAwMDAwMDAwMDAwMDAwMGMNCihYRU4p IFsgMTQwNy45MzMwMTddwqDCoMKgwqBmZmZmODMwMDdiYWI3MDU4IGZmZmY4MmQwODAzNjQ2NDAg ZmZmZjgzMDA3YmFiNzAwMCAwMDAwMDE0NmE3ZjI2NDk1DQooWEVOKSBbIDE0MDcuOTQyMDMyXcKg wqDCoMKgZmZmZjgzMDA3OWVlNzAwMCBmZmZmODMzYTk1NThjZjg0IGZmZmY4MzNhOTU1OGMwMDAg ZmZmZjgyZDA4MDM2NDY0MA0KKFhFTikgWyAxNDA3Ljk1MTA0OF3CoMKgwqDCoGZmZmY4MmQwODAx MmZiOGUgZmZmZjgzNDAwZmFiZGE5OCBmZmZmODM0MDBmYWJhMTQ4IGZmZmY4MzQwM2ZmZTcwMDAN CihYRU4pIFsgMTQwNy45NjAwNjddwqDCoMKgwqBmZmZmODM0MDBmYWJhMTYwIGZmZmY4MzQwMGZh YmRhNDAgZmZmZjgyZDA4MDE2NDMwNSAwMDAwMDAwMDAwMDAwMDBjDQooWEVOKSBbIDE0MDcuOTY5 MDgzXcKgwqDCoMKgZmZmZjgzMDA3OWVlNzAwMCAwMDAwMDAwMDAxYzljMzgwIGZmZmY4MmQwODAx MzY0MDAgMDAwMDAwNDQwMDAwMDExZA0KKFhFTikgWyAxNDA3Ljk3ODEwMV3CoMKgwqDCoDAwMDAw MDAwZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmODM0MDBmYWIwMDAwIGZmZmY4MmQwODAz NDhkMDANCihYRU4pIFsgMTQwNy45ODcxMTZdwqDCoMKgwqBmZmZmODMzYTk1NThjMDAwIGZmZmY4 MmQwODAzNjQ2NDAgZmZmZjgyZDA4MDEzMzExYyBmZmZmODMwMDc5ZWU3MDAwDQooWEVOKSBbIDE0 MDcuOTk2MTM0XcKgwqDCoMKgZmZmZjgzNDAwZmFiMDAwMCBmZmZmODMwMDc5ZWU3MDAwIGZmZmY4 MzQwM2ZmZTcwMDAgMDAwMDAwMDBmZmZmZmZmZg0KKFhFTikgWyAxNDA4LjAwNTE1MV3CoMKgwqDC oGZmZmY4MmQwODAxNjdkMzUgZmZmZjgzMDA3YmFiNzAwMCAwMDAwMDAwMDAwMDAwMDAxIGZmZmZm YTgwMDc3Zjk3MDANCihYRU4pIFsgMTQwOC4wMTQxNjddwqDCoMKgwqBmZmZmZmE4MDA3NWJmOTAw IGZmZmZmYTgwMDc3Zjk4MjAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwDQooWEVO KSBbIDE0MDguMDIzMTg0XcKgwqDCoMKgZmZmZmZhODAwODg4OWMwMCAwMDAwMDAwMDAyZmExZTc4 IDAwMDAwMDNiNmVkMThkNzggMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWyAxNDA4LjAzMjIwMl3C oMKgwqDCoDAwMDAwMDAwMDY4ZTc3ODAgZmZmZmZhODAwNzViYTc5MCBmZmZmZmE4MDA3N2Y5ODQ4 IGZmZmZmODAwMDI3ZjllODANCihYRU4pIFsgMTQwOC4wNDEyMjBdwqDCoMKgwqAwMDAwMDAwMDAw MDAwMDAxIDAwMDAwMGZjMDAwMDAwMDAgZmZmZmY4ODAwNDI0OTljMiAwMDAwMDAwMDAwMDAwMDAw DQooWEVOKSBbIDE0MDguMDUwMjM1XcKgwqDCoMKgMDAwMDAwMDAwMDAwMDI0NiBmZmZmZjgwMDAw YjljYjU4IDAwMDAwMDAwMDAwMDAwMDAgODAyNDhlMDBlMDA4ZTFmMA0KKFhFTikgWyAxNDA4LjA1 OTI1M13CoMKgwqDCoDAwMDAwMDAwZmZmZjgyZDAgODAyNDhlMDBlMDA4ZTIwMCAwMDAwMDAwMGZm ZmY4MmQwIDgwMjQ4ZTAwMDAwMDAwMGMNCihYRU4pIFsgMTQwOC4wNjgyNjhdwqDCoMKgwqBmZmZm ODMwMDc5ZWU3MDAwIDAwMDAwMDZmOGY3MmNlMDAgMDAwMDAwMDBmZmZmODJkMA0KKFhFTikgWyAx NDA4LjA3NTYzOF0gWGVuIGNhbGwgdHJhY2U6DQooWEVOKSBbIDE0MDguMDc5MzIyXcKgwqDCoMKg WzxmZmZmODJkMDgwMWVhMmEyPl0gdm14X3ZtY3NfcmVsb2FkKzB4MzIvMHg1MA0KKFhFTikgWyAx NDA4LjA4NjMwM13CoMKgwqDCoFs8ZmZmZjgyZDA4MDE2YzU4ZD5dIGNvbnRleHRfc3dpdGNoKzB4 ODVkLzB4ZWIwDQooWEVOKSBbIDE0MDguMDkzMzgwXcKgwqDCoMKgWzxmZmZmODJkMDgwMTJmYjhl Pl0gc2NoZWR1bGUuYyNzY2hlZHVsZSsweDQ2ZS8weDdkMA0KKFhFTikgWyAxNDA4LjEwMDk0Ml3C oMKgwqDCoFs8ZmZmZjgyZDA4MDE2NDMwNT5dIHJlcHJvZ3JhbV90aW1lcisweDc1LzB4ZTANCihY RU4pIFsgMTQwOC4xMDc5MjVdwqDCoMKgwqBbPGZmZmY4MmQwODAxMzY0MDA+XSB0aW1lci5jI3Rp bWVyX3NvZnRpcnFfYWN0aW9uKzB4OTAvMHgyMTANCihYRU4pIFsgMTQwOC4xMTYyNjNdwqDCoMKg wqBbPGZmZmY4MmQwODAxMzMxMWM+XSBzb2Z0aXJxLmMjX19kb19zb2Z0aXJxKzB4NWMvMHg5MA0K KFhFTikgWyAxNDA4LjEyMzkyMV3CoMKgwqDCoFs8ZmZmZjgyZDA4MDE2N2QzNT5dIGRvbWFpbi5j I2lkbGVfbG9vcCsweDI1LzB4NjANCg0KQ3VycmVudGx5IEknbSB0ZXN0aW5nIHRoZSBmb2xsb3dp bmcgcGF0Y2ggdGhhdCBmaXhlcyBhdCBsZWFzdCBvbmUgcG9zc2libGUgc2NlbmFyaW86DQoNCmNv bW1pdCBmNzZkYzgzMmMyZGU0OTUwODcyZmMyNzk2MmM1NmM2MDljZmYxMTYwDQpBdXRob3I6IFNl cmdleSBEeWFzbGkgPHNlcmdleS5keWFzbGlAY2l0cml4LmNvbT4NCkRhdGU6wqDCoMKgVHVlIEZl YiAxNCAxNToyMzo1NCAyMDE3ICswMDAwDQoNCsKgwqDCoMKgeDg2L3ZteDogdXNlIGN1cnJfdmNw dSBpbiB2bXhfdm1jc19leGl0KCkNCsKgwqDCoMKgDQrCoMKgwqDCoER1cmluZyBjb250ZXh0X3N3 aXRjaCgpIGZyb20gYSBIVk0gdkNQVSB0byB0aGUgaWRsZSB2Q1BVLCBjdXJyZW50IGlzDQrCoMKg wqDCoHVwZGF0ZWQgYnV0IGN1cnJfdmNwdSByZXRhaW5zIHRoZSBITVYgdkNQVSdzIHZhbHVlLsKg wqBJZiBhZnRlciB0aGF0LA0KwqDCoMKgwqBmb3Igc29tZSByZWFzb24sIHZteF92bWNzX2VudGVy KCkgKyB2bXhfdm1jc19leGl0KCkgcGFpciB3aWxsIGJlDQrCoMKgwqDCoGV4ZWN1dGVkLCB0aGUg dGVzdCBmb3IgaGFzX2h2bV9jb250YWluZXJfdmNwdShjdXJyZW50KSB3aWxsIGZhaWwgYW5kDQrC oMKgwqDCoHZtY3MgZm9yIGN1cnJfdmNwdSB3aWxsIG5vdCBiZSBsb2FkZWQuDQrCoMKgwqDCoA0K wqDCoMKgwqBUaGlzIHdpbGwgbGVhZCB0byBCVUcoKSBkdXJpbmcgdGhlIG5leHQgX19jb250ZXh0 X3N3aXRjaCgpIHdoZW4NCsKgwqDCoMKgdm14X2N0eHRfc3dpdGNoX2Zyb20oKSB3aWxsIGJlIGV4 ZWN1dGVkIGFuZCBfX3Ztd3JpdGUoKSB3aWxsIGZhaWwuDQrCoMKgwqDCoA0KwqDCoMKgwqBGaXgg dGhpcyBieSB0ZXN0aW5nIGhhc19odm1fY29udGFpbmVyX3ZjcHUoKSBhZ2FpbnN0IGN1cnJfdmNw dS4NCsKgwqDCoMKgDQrCoMKgwqDCoFNpZ25lZC1vZmYtYnk6IFNlcmdleSBEeWFzbGkgPHNlcmdl eS5keWFzbGlAY2l0cml4LmNvbT4NCg0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZtY3MuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYw0KaW5kZXggODhkYjdlZS4uZjBk NzFhZSAxMDA2NDQNCi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYw0KKysrIGIveGVu L2FyY2gveDg2L2h2bS92bXgvdm1jcy5jDQpAQCAtNzQyLDYgKzc0Miw4IEBAIHZvaWQgdm14X3Zt Y3NfZW50ZXIoc3RydWN0IHZjcHUgKnYpDQrCoHZvaWQgdm14X3ZtY3NfZXhpdChzdHJ1Y3QgdmNw dSAqdikNCsKgew0KwqDCoMKgwqDCoHN0cnVjdCBmb3JlaWduX3ZtY3MgKmZ2Ow0KK8KgwqDCoMKg dW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsNCivCoMKgwqDCoHN0cnVjdCB2 Y3B1ICpwID0gcGVyX2NwdShjdXJyX3ZjcHUsIGNwdSk7DQrCoA0KwqDCoMKgwqDCoGlmICggbGlr ZWx5KHYgPT0gY3VycmVudCkgKQ0KwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOw0KQEAgLTc1NCw4 ICs3NTYsOCBAQCB2b2lkIHZteF92bWNzX2V4aXQoc3RydWN0IHZjcHUgKnYpDQrCoMKgwqDCoMKg ew0KwqDCoMKgwqDCoMKgwqDCoMKgLyogRG9uJ3QgY29uZnVzZSB2bXhfZG9fcmVzdW1lIChmb3Ig QHYgb3IgQGN1cnJlbnQhKSAqLw0KwqDCoMKgwqDCoMKgwqDCoMKgdm14X2NsZWFyX3ZtY3Modik7 DQotwqDCoMKgwqDCoMKgwqDCoGlmICggaGFzX2h2bV9jb250YWluZXJfdmNwdShjdXJyZW50KSAp DQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdm14X2xvYWRfdm1jcyhjdXJyZW50KTsNCivCoMKg wqDCoMKgwqDCoMKgaWYgKCBoYXNfaHZtX2NvbnRhaW5lcl92Y3B1KHApICkNCivCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB2bXhfbG9hZF92bWNzKHApOw0KwqANCsKgwqDCoMKgwqDCoMKgwqDCoHNw aW5fdW5sb2NrKCZ2LT5hcmNoLmh2bV92bXgudm1jc19sb2NrKTsNCsKgwqDCoMKgwqDCoMKgwqDC oHZjcHVfdW5wYXVzZSh2KTsNCsKgwqDCoMKgwqDCoMKgwqDCoA0KU28gZmFyIG5vIGNyYXNoZXMg b2JzZXJ2ZWQgYnV0IHRlc3RpbmcgY29udGludWVzLg0KDQotLSANClRoYW5rcywNClNlcmdleQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK