From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Nuernberger, Stefan" Subject: Re: [PATCH RFC 17/55] x86/mm: drop lXe_to_lYe invocations in map_pages_to_xen Date: Mon, 18 Mar 2019 21:14:25 +0000 Message-ID: <1552943665.6788.99.camel@amazon.de> References: <20190207164456.9260-1-wei.liu2@citrix.com> <20190207164456.9260-18-wei.liu2@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 1h5zaa-0007rN-VV for xen-devel@lists.xenproject.org; Mon, 18 Mar 2019 21:14:33 +0000 In-Reply-To: <20190207164456.9260-18-wei.liu2@citrix.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: "xen-devel@lists.xenproject.org" , "wei.liu2@citrix.com" Cc: "andrew.cooper3@citrix.com" , "jbeulich@suse.com" , "roger.pau@citrix.com" List-Id: xen-devel@lists.xenproject.org T24gVGh1LCAyMDE5LTAyLTA3IGF0IDE2OjQ0ICswMDAwLCBXZWkgTGl1IHdyb3RlOg0KPiBNYXAg YW5kIHVubWFwIHBhZ2UgdGFibGVzIHdoZXJlIG5lY2Vzc2FyeS4NCj4gDQo+IFNpZ25lZC1vZmYt Ynk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+DQo+IC0tLQ0KPiDCoHhlbi9hcmNoL3g4 Ni9tbS5jIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KPiDC oDEgZmlsZSBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4gDQo+ IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jDQo+IGlu ZGV4IGM0Y2I2ZmJiNjAuLjFlYTI5NzRjMWYgMTAwNjQ0DQo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9t bS5jDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jDQo+IEBAIC01MDE0LDggKzUwMTQsMTAgQEAg aW50IG1hcF9wYWdlc190b194ZW4oDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBlbHNlDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB7DQo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGwyX3BnZW50cnlfdCAqbDJ0Ow0KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1mbl90IGwydF9tZm4gPSBs M2VfZ2V0X21mbihvbDNlKTsNCj4gKw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGwydCA9IG1hcF94ZW5fcGFnZXRhYmxlX25ldyhsMnRfbWZuKTsNCj4gwqANCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsMnQgPSBsM2VfdG9fbDJl KG9sM2UpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3Ig KCBpID0gMDsgaSA8IEwyX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQ0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgb2wyZSA9IGwydFtpXTsNCj4gQEAgLTUwMjcsMTAg KzUwMjksMTIgQEAgaW50IG1hcF9wYWdlc190b194ZW4oDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgew0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IGo7DQo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBs MV9wZ2VudHJ5X3QgKmwxdDsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgbWZuX3QgbDF0X21mbiA9IGwyZV9nZXRfbWZuKG9sMmUpOw0K PiDCoA0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBsMXQgPSBsMmVfdG9fbDFlKG9sMmUpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBsMXQgPSBtYXBfeGVuX3BhZ2V0YWJs ZV9uZXcobDF0X21mbik7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmb3IgKCBqID0gMDsgaiA8IEwxX1BBR0VUQUJMRV9FTlRSSUVT Ow0KPiBqKysgKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbHVzaF9mbGFncyhsMWVfZ2V0X2ZsYWdzKGwxdFtqXSkp Ow0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBVTk1BUF9YRU5fUEFHRVRBQkxFX05FVyhsMXQpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0NCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmbHVzaF9hcmVhKHZpcnQsIGZsdXNoX2ZsYWdzKTsNCj4gQEAgLTUwMzksOSAr NTA0Myw5IEBAIGludCBtYXBfcGFnZXNfdG9feGVuKA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG9sMmUgPSBsMnRbaV07DQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCAobDJlX2dldF9mbGFn cyhvbDJlKSAmIF9QQUdFX1BSRVNFTlQpDQo+ICYmDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCEobDJlX2dldF9mbGFncyhvbDJl KSAmIF9QQUdFX1BTRSkgKQ0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmcmVlX3hlbl9wYWdldGFibGUobDJlX3RvX2wxZShvbDJlKSk7 DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZyZWVfeGVuX3BhZ2V0YWJsZV9uZXcobDJlX2dldF9tZm4ob2wyZSkNCj4gKTsNCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZyZWVfeGVuX3BhZ2V0YWJsZShsMnQpOw0KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZyZWVfeGVuX3BhZ2V0YWJs ZV9uZXcobDJ0X21mbik7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiDCoA0KPiBAQCAtNTE0NiwxMiArNTE1MCwx NCBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGVsc2UNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsNCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbDFfcGdlbnRyeV90ICpsMXQ7 DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWZuX3QgbDF0X21m biA9IGwyZV9nZXRfbWZuKG9sMmUpOw0KPiDCoA0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoGwxdCA9IGwyZV90b19sMWUob2wyZSk7DQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbDF0ID0gbWFwX3hlbl9wYWdldGFibGVfbmV3KGwx dF9tZm4pOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3Ig KCBpID0gMDsgaSA8IEwxX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQ0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZsdXNoX2ZsYWdzKGwxZV9nZXRf ZmxhZ3MobDF0W2ldKSk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGZsdXNoX2FyZWEodmlydCwgZmx1c2hfZmxhZ3MpOw0KPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoGZyZWVfeGVuX3BhZ2V0YWJsZShsMXQpOw0KPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVX KGwxdCk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZnJlZV94 ZW5fcGFnZXRhYmxlX25ldyhsMXRfbWZuKTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoH0NCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+IMKgDQo+IEBAIC01MTY1 LDEyICs1MTcxLDE0IEBAIGludCBtYXBfcGFnZXNfdG9feGVuKA0KPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoC8qIE5vcm1hbCBwYWdlIG1hcHBpbmcuICovDQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgKQ0K PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgLyogWFhYIFRoaXMgZm9yY2VzIHBhZ2UgdGFibGUgdG8gYmUgcG9wdWxhdGVkICov DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwbDFlID0gdmlydF90b194ZW5f bDFlKHZpcnQpOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCBwbDFl ID09IE5VTEwgKQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgew0KPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBBU1NFUlQocmMgPT0gLUVOT01F TSk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gb3V0 Ow0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBVTk1BUF9YRU5fUEFHRVRBQkxFX05FVyhwbDFlKTsNCg0KVGhp cyBzaG91bGQgYmUgcGFydCBvZiBwYXRjaCAxNS81NSAieDg2L21tOiByZXdyaXRlIHZpcnRfdG9f eGVuX2wxZSINCndoZXJlIHlvdSBhZGFwdCB0aGUgY2FsbGVycyBvZiB2aXJ0X3RvX3hlbl9sMWUg dG8gZnJlZSB0aGUgcmV0dXJuZWQNCnBvaW50ZXIuDQoNCi0gU3RlZmFuDQoNCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB9DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZSBpZiAo IGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFNFICkNCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqB7DQo+IEBAIC01MjM0LDkgKzUyNDIsMTEgQEAgaW50IG1hcF9wYWdlc190b194ZW4o DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9DQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgfQ0KPiDCoA0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGwxZcKgwqA9 IGwyZV90b19sMWUoKnBsMmUpICsgbDFfdGFibGVfb2Zmc2V0KHZpcnQpOw0KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgcGwxZcKgwqA9IG1hcF94ZW5fcGFnZXRhYmxlX25ldyhsMmVfZ2V0X21m bigoKnBsMmUpKSk7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwbDFlICs9IGwxX3RhYmxl X29mZnNldCh2aXJ0KTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBvbDFlwqDCoD0gKnBs MWU7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbDFlX3dyaXRlX2F0b21pYyhwbDFlLCBs MWVfZnJvbV9tZm4obWZuLCBmbGFncykpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgVU5N QVBfWEVOX1BBR0VUQUJMRV9ORVcocGwxZSk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKCAobDFlX2dldF9mbGFncyhvbDFlKSAmIF9QQUdFX1BSRVNFTlQpICkNCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqB7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1 bnNpZ25lZCBpbnQgZmx1c2hfZmxhZ3MgPSBGTFVTSF9UTEIgfA0KPiBGTFVTSF9PUkRFUigwKTsN Cj4gQEAgLTUyNTcsNiArNTI2Nyw3IEBAIGludCBtYXBfcGFnZXNfdG9feGVuKA0KPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHVuc2lnbmVkIGxvbmcgYmFzZV9tZm47DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBsMV9wZ2VudHJ5X3QgKmwxdDsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgbWZuX3QgbDF0X21mbjsNCj4gwqANCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlmICggbG9ja2luZyApDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHNwaW5fbG9jaygmbWFwX3BnZGlyX2xvY2spOw0KPiBAQCAtNTI4MCwxMiArNTI5MSwx NSBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZ290byBjaGVja19sMzsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoH0NCj4gwqANCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbDF0 ID0gbDJlX3RvX2wxZShvbDJlKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg bDF0X21mbiA9IGwyZV9nZXRfbWZuKG9sMmUpOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBsMXQgPSBtYXBfeGVuX3BhZ2V0YWJsZV9uZXcobDF0X21mbik7DQo+ICsNCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJhc2VfbWZuID0gbDFlX2dldF9wZm4obDF0 WzBdKSAmDQo+IH4oTDFfUEFHRVRBQkxFX0VOVFJJRVMgLSAxKTsNCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGZvciAoIGkgPSAwOyBpIDwgTDFfUEFHRVRBQkxFX0VOVFJJRVM7 IGkrKyApDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgg KGwxZV9nZXRfcGZuKGwxdFtpXSkgIT0gKGJhc2VfbWZuICsgaSkpIHx8DQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAobDFlX2dldF9mbGFncyhs MXRbaV0pICE9IGZsYWdzKSApDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgYnJlYWs7DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oFVOTUFQX1hFTl9QQUdFVEFCTEVfTkVXKGwxdCk7DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZiAoIGkgPT0gTDFfUEFHRVRBQkxFX0VOVFJJRVMgKQ0KPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgew0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBsMmVfd3JpdGVfYXRvbWljKHBsMmUsIGwyZV9mcm9tX3BmbihiYXNlX21m biwNCj4gQEAgLTUyOTUsNyArNTMwOSw3IEBAIGludCBtYXBfcGFnZXNfdG9feGVuKA0KPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbHVzaF9hcmVhKHZpcnQgLSBQ QUdFX1NJWkUsDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBGTFVTSF9UTEJfR0xPQkFMIHwNCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoEZMVVNIX09S REVSKFBBR0VUQUJMRV9PUkRFUikpOw0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGZyZWVfeGVuX3BhZ2V0YWJsZShsMmVfdG9fbDFlKG9sMmUpKTsNCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmcmVlX3hlbl9wYWdldGFibGVfbmV3 KGwxdF9tZm4pOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfQ0KPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZWxzZSBpZiAoIGxvY2tpbmcgKQ0KPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzcGluX3VubG9jaygmbWFwX3Bn ZGlyX2xvY2spOw0KPiBAQCAtNTMxMSw2ICs1MzI1LDcgQEAgaW50IG1hcF9wYWdlc190b194ZW4o DQo+IMKgwqDCoMKgwqDCoMKgwqDCoHsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1bnNp Z25lZCBsb25nIGJhc2VfbWZuOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGwyX3BnZW50 cnlfdCAqbDJ0Ow0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWZuX3QgbDJ0X21mbjsNCj4g wqANCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoIGxvY2tpbmcgKQ0KPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl9sb2NrKCZtYXBfcGdkaXJfbG9jayk7DQo+ IEBAIC01MzI4LDcgKzUzNDMsOSBAQCBpbnQgbWFwX3BhZ2VzX3RvX3hlbigNCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdvdG8gZW5kX29mX2xvb3A7DQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfQ0KPiDCoA0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbDJ0ID0g bDNlX3RvX2wyZShvbDNlKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGwydF9tZm4gPSBs M2VfZ2V0X21mbihvbDNlKTsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGwydCA9IG1hcF94 ZW5fcGFnZXRhYmxlX25ldyhsMnRfbWZuKTsNCj4gKw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGJhc2VfbWZuID0gbDJlX2dldF9wZm4obDJ0WzBdKSAmIH4oTDJfUEFHRVRBQkxFX0VOVFJJ RVMNCj4gKg0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgTDFfUEFHRVRB QkxFX0VOVFJJRVMgLQ0KPiAxKTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3IgKCBp ID0gMDsgaSA8IEwyX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQ0KPiBAQCAtNTMzNiw2ICs1MzUz LDcgQEAgaW50IG1hcF9wYWdlc190b194ZW4oDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAoYmFzZV9tZm4gKyAoaSA8PCBQQUdFVEFCTEVfT1JERVIpKSkg fHwNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAobDJlX2dl dF9mbGFncyhsMnRbaV0pICE9IGwxZl90b19sTmYoZmxhZ3MpKSApDQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOw0KPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgVU5NQVBfWEVOX1BBR0VUQUJMRV9ORVcobDJ0KTsNCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoIGkgPT0gTDJfUEFHRVRBQkxFX0VOVFJJRVMgKQ0KPiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoHsNCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGwzZV93 cml0ZV9hdG9taWMocGwzZSwgbDNlX2Zyb21fcGZuKGJhc2VfbWZuLA0KPiBAQCAtNTM0NSw3ICs1 MzYzLDcgQEAgaW50IG1hcF9wYWdlc190b194ZW4oDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBmbHVzaF9hcmVhKHZpcnQgLSBQQUdFX1NJWkUsDQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgRkxVU0hfVExCX0dMT0JB TCB8DQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgRkxVU0hfT1JERVIoMipQQUdFVEFCTEVfT1JERVIpKTsNCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgZnJlZV94ZW5fcGFnZXRhYmxlKGwzZV90b19sMmUob2wzZSkpOw0K PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmcmVlX3hlbl9wYWdldGFibGVfbmV3 KGwydF9tZm4pOw0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0NCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBlbHNlIGlmICggbG9ja2luZyApDQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBzcGluX3VubG9jaygmbWFwX3BnZGlyX2xvY2spOwoKCgpBbWF6b24gRGV2 ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkgR21iSApLcmF1c2Vuc3RyLiAzOAoxMDExNyBCZXJsaW4K R2VzY2hhZWZ0c2Z1ZWhyZXI6IENocmlzdGlhbiBTY2hsYWVnZXIsIFJhbGYgSGVyYnJpY2gKVXN0 LUlEOiBERSAyODkgMjM3IDg3OQpFaW5nZXRyYWdlbiBhbSBBbXRzZ2VyaWNodCBDaGFybG90dGVu YnVyZyBIUkIgMTQ5MTczIEIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=