From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: QEMU-TRAD Re: [PATCH] Fixed building with newer GNUTLS versions. Date: Tue, 3 May 2016 12:18:42 -0400 Message-ID: <20160503161842.GA3435@char.us.oracle.com> References: <1459457899-24651-1-git-send-email-sfjuocekr@gmail.com> <20160401135145.GC906@char.us.oracle.com> <20160401164526.GC10820@char.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160401164526.GC10820@char.us.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Sjoer van der Ploeg , xen-devel@lists.xensource.com, ian.jackson@citrix.com, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBBcHIgMDEsIDIwMTYgYXQgMTI6NDU6MjZQTSAtMDQwMCwgS29ucmFkIFJ6ZXN6dXRl ayBXaWxrIHdyb3RlOgoKSGV5IFdlaSwgSWFuLAoKV2UgcmVhbGx5IG5lZWQgdGhpcyBmb3IgWGVu IDQuNyAtIG90aGVyd2lzZSB5b3UgY2Fubm90IGJ1aWxkIHFlbXUtdHJhZCB1bmRlcgpGZWRvcmEg Q29yZSAyMzoKCmhvbWUva29ucmFkL3NzZC9rb25yYWQveGVuL3Rvb2xzL3FlbXUteGVuLXRyYWRp dGlvbmFsLWRpci9ody91c2ItbmV0LmM6IEluIGZ1bmN0aW9uIOKAmHVzYm5ldF9yZWNlaXZl4oCZ OgovaG9tZS9rb25yYWQvc3NkL2tvbnJhZC94ZW4vdG9vbHMvcWVtdS14ZW4tdHJhZGl0aW9uYWwt ZGlyL2h3L3VzYi1uZXQuYzoxMzc5OjI5OiB3YXJuaW5nOiBjb21wYXJpc29uIG9mIGNvbnN0YW50 IOKAmDLigJkgd2l0aCBib29sZWFuIGV4cHJlc3Npb24gaXMgYWx3YXlzIGZhbHNlIFstV2Jvb2wt Y29tcGFyZV0KICAgICAgICAgaWYgKCFzLT5ybmRpc19zdGF0ZSA9PSBSTkRJU19EQVRBX0lOSVRJ QUxJWkVEKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUva29ucmFkL3NzZC9r b25yYWQveGVuL3Rvb2xzL3FlbXUteGVuLXRyYWRpdGlvbmFsLWRpci9ody91c2ItbmV0LmM6MTM3 OToyOTogd2FybmluZzogbG9naWNhbCBub3QgaXMgb25seSBhcHBsaWVkIHRvIHRoZSBsZWZ0IGhh bmQgc2lkZSBvZiBjb21wYXJpc29uIFstV2xvZ2ljYWwtbm90LXBhcmVudGhlc2VzXQovaG9tZS9r b25yYWQvc3NkL2tvbnJhZC94ZW4vdG9vbHMvcWVtdS14ZW4tdHJhZGl0aW9uYWwtZGlyL2h3L3Vz Yi1uZXQuYzogSW4gZnVuY3Rpb24g4oCYdXNibmV0X2Nhbl9yZWNlaXZl4oCZOgovaG9tZS9rb25y YWQvc3NkL2tvbnJhZC94ZW4vdG9vbHMvcWVtdS14ZW4tdHJhZGl0aW9uYWwtZGlyL2h3L3VzYi1u ZXQuYzoxNDEyOjM3OiB3YXJuaW5nOiBjb21wYXJpc29uIG9mIGNvbnN0YW50IOKAmDLigJkgd2l0 aCBib29sZWFuIGV4cHJlc3Npb24gaXMgYWx3YXlzIGZhbHNlIFstV2Jvb2wtY29tcGFyZV0KICAg ICBpZiAocy0+cm5kaXMgJiYgIXMtPnJuZGlzX3N0YXRlID09IFJORElTX0RBVEFfSU5JVElBTEla RUQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL2tvbnJhZC9z c2Qva29ucmFkL3hlbi90b29scy9xZW11LXhlbi10cmFkaXRpb25hbC1kaXIvaHcvdXNiLW5ldC5j OjE0MTI6Mzc6IHdhcm5pbmc6IGxvZ2ljYWwgbm90IGlzIG9ubHkgYXBwbGllZCB0byB0aGUgbGVm dCBoYW5kIHNpZGUgb2YgY29tcGFyaXNvbiBbLVdsb2dpY2FsLW5vdC1wYXJlbnRoZXNlc10KYXVk aW8vc2RsYXVkaW8uYzogSW4gZnVuY3Rpb24g4oCYc2RsX2luaXRfb3V04oCZOgphdWRpby9zZGxh dWRpby5jOjMzNzoxMTogd2FybmluZzog4oCYc2hpZnTigJkgaXMgdXNlZCB1bmluaXRpYWxpemVk IGluIHRoaXMgZnVuY3Rpb24gWy1XdW5pbml0aWFsaXplZF0KICAgICBzaGlmdCA8PD0gYXMtPm5j aGFubmVscyA9PSAyOwogICAgICAgICAgIF4Kdm5jLmM6MTkyOToxOiB3YXJuaW5nOiDigJhnbnV0 bHNfYW5vbl9zZXJ2ZXJfY3JlZGVudGlhbHPigJkgaXMgZGVwcmVjYXRlZCBbLVdkZXByZWNhdGVk LWRlY2xhcmF0aW9uc10KIHsKIF4Kdm5jLmM6IEluIGZ1bmN0aW9uIOKAmHZuY190bHNfaW5pdGlh bGl6ZV9hbm9uX2NyZWTigJk6CnZuYy5jOjE5MzA6NTogd2FybmluZzog4oCYZ251dGxzX2Fub25f c2VydmVyX2NyZWRlbnRpYWxz4oCZIGlzIGRlcHJlY2F0ZWQgWy1XZGVwcmVjYXRlZC1kZWNsYXJh dGlvbnNdCiAgICAgZ251dGxzX2Fub25fc2VydmVyX2NyZWRlbnRpYWxzIGFub25fY3JlZDsKICAg ICBeCnZuYy5jOiBJbiBmdW5jdGlvbiDigJh2bmNfc3RhcnRfdGxz4oCZOgp2bmMuYzoyMTgwOjY6 IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGdudXRsc19reF9z ZXRfcHJpb3JpdHnigJkgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgaWYgKGdu dXRsc19reF9zZXRfcHJpb3JpdHkodnMtPnRsc19zZXNzaW9uLCBORUVEX1g1MDlfQVVUSCh2cykg PyBreF94NTA5IDoga3hfYW5vbikgPCAwKSB7CiAgICAgIF4Kdm5jLmM6MjE4Nzo2OiB3YXJuaW5n OiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhnbnV0bHNfY2VydGlmaWNhdGVf dHlwZV9zZXRfcHJpb3JpdHnigJkgWy1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAg aWYgKGdudXRsc19jZXJ0aWZpY2F0ZV90eXBlX3NldF9wcmlvcml0eSh2cy0+dGxzX3Nlc3Npb24s IGNlcnRfdHlwZV9wcmlvcml0eSkgPCAwKSB7CgoKClRoYW5rcy4KCj4gT24gRnJpLCBBcHIgMDEs IDIwMTYgYXQgMDY6MzE6MDBQTSArMDIwMCwgU2pvZXIgdmFuIGRlciBQbG9lZyB3cm90ZToKPiA+ IERlYXIgS29ucmFkLAo+ID4gCj4gPiAKPiA+IFRoZSBwYXRjaCB3YXMgdGVzdGVkIG9uIG15IHRl c3RiZWQsIGFmdGVyIGRpc2NvdmVyaW5nIHRoYXQgdGhlIGJ1aWxkCj4gPiBmYWlsZWQuIEkgaGFk IG5vIG5lZWQgZm9yIHFlbXUtdHJhZGl0aW9uYWwgYW5kIGZvcmdvdCB0byBkaXNhYmxlIGl0LCBi dXQgSQo+ID4gaGF0ZSBidWlsZCBlcnJvcnMgIDspCj4gPiAKPiA+IEkgZG8gbm90IHRoaW5rIHRo ZXJlIHNob3VsZCBiZSBhbnkgaXNzdWVzIHdpdGggdGhlIGNlcnRzLCBhcyB0aGUgdXNlZAo+ID4g ZnVuY3Rpb25zIHdlcmUgZGVwcmVjYXRlZCBhcyBleHBsYWluZWQgaGVyZToKPiA+IAo+ID4gaHR0 cHM6Ly93d3cuZ251dGxzLm9yZy9tYW51YWwvaHRtbF9ub2RlL1VwZ3JhZGluZy1mcm9tLXByZXZp b3VzLXZlcnNpb25zLmh0bWwKPiAKPiBUaGFuayB5b3UgZm9yIHRoZSBleHBsYW5hdGlvbi4KPiAK PiBSZS1hZGRpbmcgeGVuLWRldmVsIGFuZCBJYW4gYXMgdGhhdCBpbmZvcm1hdGlvbiBpcyBtb3N0 IGhlbGtwdWwgaW4gdGhlIGNvbW1pdAo+IGRlc2NyaXB0aW9uIQo+IAo+IFRoYW5rIHlvdS4KPiA+ IAo+ID4gCj4gPiBZb3VycywKPiA+IAo+ID4gU2pvZXIgdmFuIGRlciBQbG9lZwo+ID4gCj4gPiBP biBGcmksIEFwciAxLCAyMDE2IGF0IDM6NTEgUE0sIEtvbnJhZCBSemVzenV0ZWsgV2lsayA8Cj4g PiBrb25yYWQud2lsa0BvcmFjbGUuY29tPiB3cm90ZToKPiA+IAo+ID4gPiBPbiBUaHUsIE1hciAz MSwgMjAxNiBhdCAxMDo1ODoxOVBNICswMjAwLCBTam9lciB2YW4gZGVyIFBsb2VnIHdyb3RlOgo+ ID4gPgo+ID4gPiBIZXlhIQo+ID4gPgo+ID4gPiBUaGFuayB5b3UgZm9yIHBvc3RpbmcgdGhpcyBh bmQgYWxzbyBhZGRpbmcgdGhlICNpZmRlZiBmb3Igb2xkZXIKPiA+ID4gdmVyc2lvbnMhCj4gPiA+ Cj4gPiA+IFdhcyB3b25kZXJpbmcgdGhvdWdodCAtIGhhZCB5b3UgZG91YmxlLWNoZWNrZWQgdGhh dCB0aGUgbmV3Cj4gPiA+IGNvZGUgcGF0aCB3b3JrcyB3aXRoIHRoZSBjZXJ0cz8KPiA+ID4KPiA+ ID4gVGhhbmtzIQo+ID4gPgo+ID4gPiBQLlMuCj4gPiA+IENDLWluZyBJYW4gd2hvIGlzIHRoZSBR RU1VLXRyYWRpdGlvbmFsIG1haW50YWluZXIuCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogU2pvZXIg dmFuIGRlciBQbG9lZyA8c2ZqdW9jZWtyQGdtYWlsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAg dm5jLmMgfCA3MQo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA0OCBp bnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKPiA+ID4gPgo+ID4gPiA+IGRpZmYgLS1naXQg YS92bmMuYyBiL3ZuYy5jCj4gPiA+ID4gaW5kZXggNTczYWYzYi4uNjFkMTU1NSAxMDA2NDQKPiA+ ID4gPiAtLS0gYS92bmMuYwo+ID4gPiA+ICsrKyBiL3ZuYy5jCj4gPiA+ID4gQEAgLTE5MjUsOSAr MTkyNSw5IEBAIHN0YXRpYyBpbnQgdm5jX3Rsc19pbml0aWFsaXplKHZvaWQpCj4gPiA+ID4gICAg ICByZXR1cm4gMTsKPiA+ID4gPiAgfQo+ID4gPiA+Cj4gPiA+ID4gLXN0YXRpYyBnbnV0bHNfYW5v bl9zZXJ2ZXJfY3JlZGVudGlhbHMgdm5jX3Rsc19pbml0aWFsaXplX2Fub25fY3JlZCh2b2lkKQo+ ID4gPiA+ICtzdGF0aWMgZ251dGxzX2Fub25fc2VydmVyX2NyZWRlbnRpYWxzX3QKPiA+ID4gdm5j X3Rsc19pbml0aWFsaXplX2Fub25fY3JlZCh2b2lkKQo+ID4gPiA+ICB7Cj4gPiA+ID4gLSAgICBn bnV0bHNfYW5vbl9zZXJ2ZXJfY3JlZGVudGlhbHMgYW5vbl9jcmVkOwo+ID4gPiA+ICsgICAgZ251 dGxzX2Fub25fc2VydmVyX2NyZWRlbnRpYWxzX3QgYW5vbl9jcmVkOwo+ID4gPiA+ICAgICAgaW50 IHJldDsKPiA+ID4gPgo+ID4gPiA+ICAgICAgaWYgKChyZXQgPSBnbnV0bHNfYW5vbl9hbGxvY2F0 ZV9zZXJ2ZXJfY3JlZGVudGlhbHMoJmFub25fY3JlZCkpIDwKPiA+ID4gMCkgewo+ID4gPiA+IEBA IC0yMTUxLDEzICsyMTUxLDUyIEBAIHN0YXRpYyB2b2lkIHZuY19oYW5kc2hha2VfaW8odm9pZCAq b3BhcXVlKSB7Cj4gPiA+ID4gICAgICAgKHZzKS0+c3ViYXV0aCA9PSBWTkNfQVVUSF9WRU5DUllQ VF9YNTA5Vk5DIHx8ICAgIFwKPiA+ID4gPiAgICAgICAodnMpLT5zdWJhdXRoID09IFZOQ19BVVRI X1ZFTkNSWVBUX1g1MDlQTEFJTikKPiA+ID4gPgo+ID4gPiA+ICsjaWYgZGVmaW5lZChHTlVUTFNf VkVSU0lPTl9OVU1CRVIpICYmIFwKPiA+ID4gPiArICAgIEdOVVRMU19WRVJTSU9OX05VTUJFUiA+ PSAweDAyMDIwMCAvKiAyLjIuMCAqLwo+ID4gPiA+ICtzdGF0aWMgaW50IHZuY19zZXRfZ251dGxz X3ByaW9yaXR5KGdudXRsc19zZXNzaW9uX3QgcywgaW50IHg1MDkpCj4gPiA+ID4gK3sKPiA+ID4g PiArICAgIGNvbnN0IGNoYXIgKnByaW9yaXR5ID0geDUwOSA/ICJOT1JNQUwiIDogIk5PUk1BTDor QU5PTi1ESCI7Cj4gPiA+ID4gKyAgICBpbnQgcmM7Cj4gPiA+ID4KPiA+ID4gPiAtc3RhdGljIGlu dCB2bmNfc3RhcnRfdGxzKHN0cnVjdCBWbmNTdGF0ZSAqdnMpIHsKPiA+ID4gPiAtICAgIHN0YXRp YyBjb25zdCBpbnQgY2VydF90eXBlX3ByaW9yaXR5W10gPSB7IEdOVVRMU19DUlRfWDUwOSwgMCB9 Owo+ID4gPiA+IC0gICAgc3RhdGljIGNvbnN0IGludCBwcm90b2NvbF9wcmlvcml0eVtdPSB7IEdO VVRMU19UTFMxXzEsCj4gPiA+IEdOVVRMU19UTFMxXzAsIEdOVVRMU19TU0wzLCAwIH07Cj4gPiA+ ID4gLSAgICBzdGF0aWMgY29uc3QgaW50IGt4X2Fub25bXSA9IHtHTlVUTFNfS1hfQU5PTl9ESCwg MH07Cj4gPiA+ID4gLSAgICBzdGF0aWMgY29uc3QgaW50IGt4X3g1MDlbXSA9IHtHTlVUTFNfS1hf REhFX0RTUywgR05VVExTX0tYX1JTQSwKPiA+ID4gR05VVExTX0tYX0RIRV9SU0EsIEdOVVRMU19L WF9TUlAsIDB9Owo+ID4gPiA+ICsgICAgcmMgPSBnbnV0bHNfcHJpb3JpdHlfc2V0X2RpcmVjdChz LCBwcmlvcml0eSwgTlVMTCk7Cj4gPiA+ID4gKyAgICBpZiAocmMgIT0gR05VVExTX0VfU1VDQ0VT Uykgewo+ID4gPiA+ICsgICAgICAgIHJldHVybiAtMTsKPiA+ID4gPiArICAgIH0KPiA+ID4gPiAr ICAgIHJldHVybiAwOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKyNlbHNlCj4gPiA+ID4gK3N0YXRpYyBp bnQgdm5jX3NldF9nbnV0bHNfcHJpb3JpdHkoZ251dGxzX3Nlc3Npb25fdCBzLCBpbnQgeDUwOSkK PiA+ID4gPiArewo+ID4gPiA+ICsgICAgc3RhdGljIGNvbnN0IGludCBjZXJ0X3R5cGVzW10gPSB7 IEdOVVRMU19DUlRfWDUwOSwgMCB9Owo+ID4gPiA+ICsgICAgc3RhdGljIGNvbnN0IGludCBwcm90 b2NvbHNbXSA9IHsKPiA+ID4gPiArICAgICAgICBHTlVUTFNfVExTMV8xLCBHTlVUTFNfVExTMV8w LCBHTlVUTFNfU1NMMywgMAo+ID4gPiA+ICsgICAgfTsKPiA+ID4gPiArICAgIHN0YXRpYyBjb25z dCBpbnQga3hfYW5vbltdID0geyBHTlVUTFNfS1hfQU5PTl9ESCwgMCB9Owo+ID4gPiA+ICsgICAg c3RhdGljIGNvbnN0IGludCBreF94NTA5W10gPSB7Cj4gPiA+ID4gKyAgICAgICAgR05VVExTX0tY X0RIRV9EU1MsIEdOVVRMU19LWF9SU0EsCj4gPiA+ID4gKyAgICAgICAgR05VVExTX0tYX0RIRV9S U0EsIEdOVVRMU19LWF9TUlAsIDAKPiA+ID4gPiArICAgIH07Cj4gPiA+ID4gKyAgICBpbnQgcmM7 Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgcmMgPSBnbnV0bHNfa3hfc2V0X3ByaW9yaXR5KHMsIHg1 MDkgPyBreF94NTA5IDoga3hfYW5vbik7Cj4gPiA+ID4gKyAgICBpZiAocmMgIT0gR05VVExTX0Vf U1VDQ0VTUykgewo+ID4gPiA+ICsgICAgICAgIHJldHVybiAtMTsKPiA+ID4gPiArICAgIH0KPiA+ ID4gPiArCj4gPiA+ID4gKyAgICByYyA9IGdudXRsc19jZXJ0aWZpY2F0ZV90eXBlX3NldF9wcmlv cml0eShzLCBjZXJ0X3R5cGVzKTsKPiA+ID4gPiArICAgIGlmIChyYyAhPSBHTlVUTFNfRV9TVUND RVNTKSB7Cj4gPiA+ID4gKyAgICAgICAgcmV0dXJuIC0xOwo+ID4gPiA+ICsgICAgfQo+ID4gPiA+ Cj4gPiA+ID4gKyAgICByYyA9IGdudXRsc19wcm90b2NvbF9zZXRfcHJpb3JpdHkocywgcHJvdG9j b2xzKTsKPiA+ID4gPiArICAgIGlmIChyYyAhPSBHTlVUTFNfRV9TVUNDRVNTKSB7Cj4gPiA+ID4g KyAgICAgICAgcmV0dXJuIC0xOwo+ID4gPiA+ICsgICAgfQo+ID4gPiA+ICsgICAgcmV0dXJuIDA7 Cj4gPiA+ID4gK30KPiA+ID4gPiArI2VuZGlmCj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgaW50 IHZuY19zdGFydF90bHMoc3RydWN0IFZuY1N0YXRlICp2cykgewo+ID4gPiA+ICAgICAgVk5DX0RF QlVHKCJEbyBUTFMgc2V0dXBcbiIpOwo+ID4gPiA+ICAgICAgaWYgKHZuY190bHNfaW5pdGlhbGl6 ZSgpIDwgMCkgewo+ID4gPiA+ICAgICAgIFZOQ19ERUJVRygiRmFpbGVkIHRvIGluaXQgVExTXG4i KTsKPiA+ID4gPiBAQCAtMjE3NywyMSArMjIxNiw3IEBAIHN0YXRpYyBpbnQgdm5jX3N0YXJ0X3Rs cyhzdHJ1Y3QgVm5jU3RhdGUgKnZzKSB7Cj4gPiA+ID4gICAgICAgICAgIHJldHVybiAtMTsKPiA+ ID4gPiAgICAgICB9Cj4gPiA+ID4KPiA+ID4gPiAtICAgICBpZiAoZ251dGxzX2t4X3NldF9wcmlv cml0eSh2cy0+dGxzX3Nlc3Npb24sIE5FRURfWDUwOV9BVVRIKHZzKSA/Cj4gPiA+IGt4X3g1MDkg OiBreF9hbm9uKSA8IDApIHsKPiA+ID4gPiAtICAgICAgICAgZ251dGxzX2RlaW5pdCh2cy0+dGxz X3Nlc3Npb24pOwo+ID4gPiA+IC0gICAgICAgICB2cy0+dGxzX3Nlc3Npb24gPSBOVUxMOwo+ID4g PiA+IC0gICAgICAgICB2bmNfY2xpZW50X2Vycm9yKHZzKTsKPiA+ID4gPiAtICAgICAgICAgcmV0 dXJuIC0xOwo+ID4gPiA+IC0gICAgIH0KPiA+ID4gPiAtCj4gPiA+ID4gLSAgICAgaWYgKGdudXRs c19jZXJ0aWZpY2F0ZV90eXBlX3NldF9wcmlvcml0eSh2cy0+dGxzX3Nlc3Npb24sCj4gPiA+IGNl cnRfdHlwZV9wcmlvcml0eSkgPCAwKSB7Cj4gPiA+ID4gLSAgICAgICAgIGdudXRsc19kZWluaXQo dnMtPnRsc19zZXNzaW9uKTsKPiA+ID4gPiAtICAgICAgICAgdnMtPnRsc19zZXNzaW9uID0gTlVM TDsKPiA+ID4gPiAtICAgICAgICAgdm5jX2NsaWVudF9lcnJvcih2cyk7Cj4gPiA+ID4gLSAgICAg ICAgIHJldHVybiAtMTsKPiA+ID4gPiAtICAgICB9Cj4gPiA+ID4gLQo+ID4gPiA+IC0gICAgIGlm IChnbnV0bHNfcHJvdG9jb2xfc2V0X3ByaW9yaXR5KHZzLT50bHNfc2Vzc2lvbiwKPiA+ID4gcHJv dG9jb2xfcHJpb3JpdHkpIDwgMCkgewo+ID4gPiA+ICsgICAgIGlmICh2bmNfc2V0X2dudXRsc19w cmlvcml0eSh2cy0+dGxzX3Nlc3Npb24sICEhTkVFRF9YNTA5X0FVVEgodnMpKQo+ID4gPiA8IDAp IHsKPiA+ID4gPiAgICAgICAgICAgZ251dGxzX2RlaW5pdCh2cy0+dGxzX3Nlc3Npb24pOwo+ID4g PiA+ICAgICAgICAgICB2cy0+dGxzX3Nlc3Npb24gPSBOVUxMOwo+ID4gPiA+ICAgICAgICAgICB2 bmNfY2xpZW50X2Vycm9yKHZzKTsKPiA+ID4gPiBAQCAtMjIxOSw3ICsyMjQ0LDcgQEAgc3RhdGlj IGludCB2bmNfc3RhcnRfdGxzKHN0cnVjdCBWbmNTdGF0ZSAqdnMpIHsKPiA+ID4gPiAgICAgICAg ICAgfQo+ID4gPiA+Cj4gPiA+ID4gICAgICAgfSBlbHNlIHsKPiA+ID4gPiAtICAgICAgICAgZ251 dGxzX2Fub25fc2VydmVyX2NyZWRlbnRpYWxzIGFub25fY3JlZCA9Cj4gPiA+IHZuY190bHNfaW5p dGlhbGl6ZV9hbm9uX2NyZWQoKTsKPiA+ID4gPiArICAgICAgICAgZ251dGxzX2Fub25fc2VydmVy X2NyZWRlbnRpYWxzX3QgYW5vbl9jcmVkID0KPiA+ID4gdm5jX3Rsc19pbml0aWFsaXplX2Fub25f Y3JlZCgpOwo+ID4gPiA+ICAgICAgICAgICBpZiAoIWFub25fY3JlZCkgewo+ID4gPiA+ICAgICAg ICAgICAgICAgZ251dGxzX2RlaW5pdCh2cy0+dGxzX3Nlc3Npb24pOwo+ID4gPiA+ICAgICAgICAg ICAgICAgdnMtPnRsc19zZXNzaW9uID0gTlVMTDsKPiA+ID4gPiAtLQo+ID4gPiA+IDIuOC4wLnJj Mwo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gPiA+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+ID4gPiBY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+ID4gPiA+IGh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo+ID4gPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK