From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v2 23/25] arm/altp2m: Extend libxl to activate altp2m on ARM. Date: Tue, 2 Aug 2016 12:59:27 +0100 Message-ID: <20160802115927.GI22419@citrix.com> References: <20160801171028.11615-1-proskurin@sec.in.tum.de> <20160801171028.11615-24-proskurin@sec.in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUYM8-0003Ml-3m for xen-devel@lists.xenproject.org; Tue, 02 Aug 2016 11:59:32 +0000 Content-Disposition: inline In-Reply-To: <20160801171028.11615-24-proskurin@sec.in.tum.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Sergej Proskurin Cc: xen-devel@lists.xenproject.org, Ian Jackson , Wei Liu List-Id: xen-devel@lists.xenproject.org T24gTW9uLCBBdWcgMDEsIDIwMTYgYXQgMDc6MTA6MjZQTSArMDIwMCwgU2VyZ2VqIFByb3NrdXJp biB3cm90ZToKPiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbGxvd3MgdG8gc2V0IHRoZSBw YXJhbWV0ZXIgSFZNX1BBUkFNX0FMVFAyTS4KPiBUaGlzIHBhcmFtZXRlciBhbGxvd3MgZnVydGhl ciB1c2FnZSBvZiBhbHRwMm0gb24gQVJNLiBGb3IgdGhpcywgd2UKPiBkZWZpbmUgYW4gYWRkaXRp b25hbCwgY29tbW9uIGFsdHAybSBmaWVsZCBhcyBwYXJ0IG9mIHRoZQo+IGxpYnhsX2RvbWFpbl90 eXBlIHN0cnVjdC4gVGhpcyBmaWVsZCBjYW4gYmUgc2V0IG9uIHg4NiBhbmQgb24gQVJNIHN5c3Rl bXMKPiB0aHJvdWdoIHRoZSAiYWx0cDJtIiBzd2l0Y2ggaW4gdGhlIGRvbWFpbidzIGNvbmZpZ3Vy YXRpb24gZmlsZSAoaS5lLgo+IHNldCBhbHRwMm09MSkuCj4gCj4gTm90ZSwgdGhhdCB0aGUgb2xk IHBhcmFtZXRlciAiYWx0cDJtaHZtIiBpcyBzdGlsbCB2YWxpZCBmb3IgeDg2LiBTaW5jZQo+IHRo aXMgY29tbWl0IGRlZmluZXMgdGhpcyBvbGQgcGFyYW1ldGVyIGFzIGRlcHJlY2F0ZWQsIGxpYnhs IHdpbGwKPiBnZW5lcmF0ZSBhIHdhcm5pbmcgZHVyaW5nIHByb2Nlc3NpbmcuCj4gCj4gU2lnbmVk LW9mZi1ieTogU2VyZ2VqIFByb3NrdXJpbiA8cHJvc2t1cmluQHNlYy5pbi50dW0uZGU+Cj4gLS0t Cj4gQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgo+IENjOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgo+IC0tLQo+IHYyOiBUaGUgbWFjcm8gTElCWExfSEFW RV9BTFRQMk0gaXMgbm93IHZhbGlkIGZvciB4ODYgYW5kIEFSTS4KPiAKPiAgICAgTW92ZWQgdGhl IGZpZWxkIGFsdHAybSBvdXQgb2YgaW5mby0+dS5wdi5hbHRwMm0gaW50byB0aGUgY29tbW9uCj4g ICAgIGZpZWxkIGluZm8tPmFsdHAybSwgd2hlcmUgaXQgY2FuIGJlIGFjY2Vzc2VkIGluZGVwZW5k ZW50IGJ5IHRoZQo+ICAgICB1bmRlcmx5aW5nIGFyY2hpdGVjdHVyZSAoeDg2IG9yIEFSTSkuIE5v dywgYWx0cDJtIGNhbiBiZSBhY3RpdmF0ZWQKPiAgICAgYnkgdGhlIGd1ZXN0IGNvbnRyb2wgcGFy YW1ldGVyICJhbHRwMm0iLgo+IAo+ICAgICBBZG9wdGVkIGluaXRpYWxpemF0aW9uIHJvdXRpbmVz IGFjY29yZGluZ2x5Lgo+IC0tLQo+ICB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgfCAgMyAr Ky0KPiAgdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgIHwgIDggKysrKystLS0KPiAgdG9vbHMv bGlieGwvbGlieGxfZG9tLmMgICAgIHwgIDQgKystLQo+ICB0b29scy9saWJ4bC9saWJ4bF90eXBl cy5pZGwgfCAgNCArKystCj4gIHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyAgICB8IDI2ICsrKysr KysrKysrKysrKysrKysrKysrKystCj4gIDUgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuaCBi L3Rvb2xzL2xpYnhsL2xpYnhsLmgKPiBpbmRleCA0OGE0M2NlLi5hMmNiZDM0IDEwMDY0NAo+IC0t LSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmgKPiArKysgYi90b29scy9saWJ4bC9saWJ4bC5oCj4gQEAg LTgzOSw3ICs4MzksOCBAQCB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fY3R4IGxpYnhsX2N0eDsKPiAg Cj4gIC8qCj4gICAqIExJQlhMX0hBVkVfQUxUUDJNCj4gLSAqIElmIHRoaXMgaXMgZGVmaW5lZCwg dGhlbiBsaWJ4bCBzdXBwb3J0cyBhbHRlcm5hdGUgcDJtIGZ1bmN0aW9uYWxpdHkuCj4gKyAqIElm IHRoaXMgaXMgZGVmaW5lZCwgdGhlbiBsaWJ4bCBzdXBwb3J0cyBhbHRlcm5hdGUgcDJtIGZ1bmN0 aW9uYWxpdHkgZm9yCj4gKyAqIHg4NiBIVk0gYW5kIEFSTSBQViBndWVzdHMuCj4gICAqLwo+ICAj ZGVmaW5lIExJQlhMX0hBVkVfQUxUUDJNIDEKCkVpdGhlciB5b3UgbWlzdW5kZXJzdG9vZCBvciBJ IHNhaWQgc29tZXRoaW5nIHdyb25nLgoKVGhlc2UgbWFjcm9zIGhhdmUgZGVmaW5lZCBzZW1hbnRp Y3MgdGhhdCBzaG91bGRuJ3QgYmUgY2hhbmdlZCBiZWNhdXNlCmFwcGxpY2F0aW9uIGNvZGUgdXNl cyB0aGVtIHRvIGRldGVjdCB0aGUgcHJlc2VuY2UgLyBhYnNlbmNlIG9mIGNlcnRhaW4KdGhpbmdz LgoKV2UgbmVlZCBhIG5ldyBtYWNybyBmb3IgQVJNIGFsdHAybS4gSSB0aGluawoKICAgTElCWExf SEFWRV9BUk1fQUxUUDJNCgp3b3VsZCBkby4KCj4gIAo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCj4gaW5kZXggZDdk YjllOS4uMTZkM2I1MiAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwo+ ICsrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCj4gQEAgLTMxOSw3ICszMTksNiBAQCBp bnQgbGlieGxfX2RvbWFpbl9idWlsZF9pbmZvX3NldGRlZmF1bHQobGlieGxfX2djICpnYywKPiAg ICAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+dS5odm0uaHBldCwgICAg ICAgICAgICAgICB0cnVlKTsKPiAgICAgICAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJf aW5mby0+dS5odm0udnB0X2FsaWduLCAgICAgICAgICB0cnVlKTsKPiAgICAgICAgICBsaWJ4bF9k ZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+dS5odm0ubmVzdGVkX2h2bSwgICAgICAgICBmYWxz ZSk7Cj4gLSAgICAgICAgbGlieGxfZGVmYm9vbF9zZXRkZWZhdWx0KCZiX2luZm8tPnUuaHZtLmFs dHAybSwgICAgICAgICAgICAgZmFsc2UpOwo+ICAgICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVm YXVsdCgmYl9pbmZvLT51Lmh2bS51c2IsICAgICAgICAgICAgICAgIGZhbHNlKTsKPiAgICAgICAg ICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQoJmJfaW5mby0+dS5odm0ueGVuX3BsYXRmb3JtX3Bj aSwgICB0cnVlKTsKPiAgCj4gQEAgLTQwNiw2ICs0MDUsOSBAQCBpbnQgbGlieGxfX2RvbWFpbl9i dWlsZF9pbmZvX3NldGRlZmF1bHQobGlieGxfX2djICpnYywKPiAgICAgICAgICAgICAgbGlieGxf ZG9tYWluX3R5cGVfdG9fc3RyaW5nKGJfaW5mby0+dHlwZSkpOwo+ICAgICAgICAgIHJldHVybiBF UlJPUl9JTlZBTDsKPiAgICAgIH0KPiArCj4gKyAgICBsaWJ4bF9kZWZib29sX3NldGRlZmF1bHQo JmJfaW5mby0+YWx0cDJtLCBmYWxzZSk7Cj4gKwo+ICAgICAgcmV0dXJuIDA7Cj4gIH0KPiAgCj4g QEAgLTkwMSw4ICs5MDMsOCBAQCBzdGF0aWMgdm9pZCBpbml0aWF0ZV9kb21haW5fY3JlYXRlKGxp YnhsX19lZ2MgKmVnYywKPiAgCj4gICAgICBpZiAoZF9jb25maWctPmNfaW5mby50eXBlID09IExJ QlhMX0RPTUFJTl9UWVBFX0hWTSAmJgo+ICAgICAgICAgIChsaWJ4bF9kZWZib29sX3ZhbChkX2Nv bmZpZy0+Yl9pbmZvLnUuaHZtLm5lc3RlZF9odm0pICYmCj4gLSAgICAgICAgIGxpYnhsX2RlZmJv b2xfdmFsKGRfY29uZmlnLT5iX2luZm8udS5odm0uYWx0cDJtKSkpIHsKPiAtICAgICAgICBMT0co RVJST1IsICJuZXN0ZWRodm0gYW5kIGFsdHAybWh2bSBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIp Owo+ICsgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChkX2NvbmZpZy0+Yl9pbmZvLmFsdHAybSkp KSB7Cj4gKyAgICAgICAgTE9HKEVSUk9SLCAibmVzdGVkaHZtIGFuZCBhbHRwMm0gY2Fubm90IGJl IHVzZWQgdG9nZXRoZXIiKTsKPiAgICAgICAgICBnb3RvIGVycm9yX291dDsKPiAgICAgIH0KPiAg Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGli eGxfZG9tLmMKPiBpbmRleCBlYzI5MDYwLi4xNTUwZWY4IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2RvbS5jCj4gKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKPiBAQCAtMjkx LDggKzI5MSw2IEBAIHN0YXRpYyB2b2lkIGh2bV9zZXRfY29uZl9wYXJhbXMoeGNfaW50ZXJmYWNl ICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLAo+ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rl ZmJvb2xfdmFsKGluZm8tPnUuaHZtLnZwdF9hbGlnbikpOwo+ICAgICAgeGNfaHZtX3BhcmFtX3Nl dChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fTkVTVEVESFZNLAo+ICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLm5lc3RlZF9odm0pKTsKPiAtICAgIHhj X2h2bV9wYXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX0FMVFAyTSwKPiAtICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT51Lmh2bS5hbHRwMm0pKTsKPiAg fQo+ICAKPiAgaW50IGxpYnhsX19idWlsZF9wcmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9t aWQsCj4gQEAgLTQzNCw2ICs0MzIsOCBAQCBpbnQgbGlieGxfX2J1aWxkX3ByZShsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKPiAgI2VuZGlmCj4gICAgICB9Cj4gIAo+ICsgICAgeGNfaHZt X3BhcmFtX3NldChjdHgtPnhjaCwgZG9taWQsIEhWTV9QQVJBTV9BTFRQMk0sIGxpYnhsX2RlZmJv b2xfdmFsKGluZm8tPmFsdHAybSkpOwo+ICsKCkFuZCB0aGUgcmVhc29uIGZvciBtb3ZpbmcgdGhp cyBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gaXM/Cgo+ICAgICAgcmMgPSBsaWJ4bF9fYXJjaF9kb21h aW5fY3JlYXRlKGdjLCBkX2NvbmZpZywgZG9taWQpOwo+ICAKPiAgICAgIHJldHVybiByYzsKPiBk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGli eGxfdHlwZXMuaWRsCj4gaW5kZXggZWY2MTRiZS4uNDJlN2M5NSAxMDA2NDQKPiAtLS0gYS90b29s cy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKPiArKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5p ZGwKPiBAQCAtNTEyLDcgKzUxMiw2IEBAIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0 KCJkb21haW5fYnVpbGRfaW5mbyIsWwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoIm1taW9faG9sZV9tZW1rYiIsICBNZW1LQiksCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgidGltZXJfbW9kZSIsICAgICAgIGxpYnhsX3RpbWVyX21v ZGUpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIm5lc3RlZF9o dm0iLCAgICAgICBsaWJ4bF9kZWZib29sKSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCJhbHRwMm0iLCAgICAgICAgICAgbGlieGxfZGVmYm9vbCksCgpObywgeW91 IGNhbid0IHJlbW92ZSBleGlzdGluZyBmaWVsZCAtLSB0aGF0IHdvdWxkIGJyZWFrIG9sZAphcHBs aWNhdGlvbnMgd2hpY2ggdXNlIHRoZSBvbGQgZmllbGQuCgpBbmQgcGxlYXNlIGhhbmRsZSBjb21w YXRpYmlsaXR5IGluIGxpYnhsIHdpdGggb2xkIGFwcGxpY2F0aW9ucyBpbiBtaW5kLgoKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJzbWJpb3NfZmlybXdhcmUiLCAg c3RyaW5nKSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJhY3Bp X2Zpcm13YXJlIiwgICAgc3RyaW5nKSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCJoZHR5cGUiLCAgICAgICAgICAgbGlieGxfaGR0eXBlKSwKPiBAQCAtNTYxLDYg KzU2MCw5IEBAIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0KCJkb21haW5fYnVpbGRf aW5mbyIsWwo+ICAKPiAgICAgICgiYXJjaF9hcm0iLCBTdHJ1Y3QoTm9uZSwgWygiZ2ljX3ZlcnNp b24iLCBsaWJ4bF9naWNfdmVyc2lvbiksCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF0pKSwKPiArICAgICMgQWx0ZXJuYXRlIHAybSBpcyBub3QgYm91bmQgdG8gYW55IGFyY2hpdGVj dHVyZSBvciBndWVzdCB0eXBlLCBhcyBpdCBpcwo+ICsgICAgIyBzdXBwb3J0ZWQgYnkgeDg2IEhW TSBhbmQgQVJNIFBWIGd1ZXN0cy4KCkp1c3QgIkFSTSBndWVzdHMiIHdvdWxkIGRvLiBBUk0gZG9l c24ndCBoYXZlIG5vdGlvbiBvZiBQViB2cyBIVk0uCgo+ICsgICAgKCJhbHRwMm0iLCBsaWJ4bF9k ZWZib29sKSwKPiAgCj4gICAgICBdLCBkaXI9RElSX0lOCj4gICkKPiBkaWZmIC0tZ2l0IGEvdG9v bHMvbGlieGwveGxfY21kaW1wbC5jIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCj4gaW5kZXgg NTFkYzdhMC4uZjRhNDllZSAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMK PiArKysgYi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKPiBAQCAtMTY2Nyw3ICsxNjY3LDEyIEBA IHN0YXRpYyB2b2lkIHBhcnNlX2NvbmZpZ19kYXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2Us Cj4gIAo+ICAgICAgICAgIHhsdV9jZmdfZ2V0X2RlZmJvb2woY29uZmlnLCAibmVzdGVkaHZtIiwg JmJfaW5mby0+dS5odm0ubmVzdGVkX2h2bSwgMCk7Cj4gIAo+IC0gICAgICAgIHhsdV9jZmdfZ2V0 X2RlZmJvb2woY29uZmlnLCAiYWx0cDJtaHZtIiwgJmJfaW5mby0+dS5odm0uYWx0cDJtLCAwKTsK PiArICAgICAgICAvKiBUaGUgY29uZmlnIHBhcmFtZXRlciAiYWx0cDJtaHZtIiBpcyBjb25zaWRl cmVkIGRlcHJlY2F0ZWQsIGhvd2V2ZXIKPiArICAgICAgICAgKiBmdXJ0aGVyIGNvbnNpZGVyZWQg YmVjYXVzZSBvZiBsZWdhY3kgcmVhc29ucy4gVGhlIGNvbmZpZyBwYXJhbWV0ZXIKPiArICAgICAg ICAgKiAiYWx0cDJtIiBzaGFsbCBiZSB1c2VkIGluc3RlYWQuICovCj4gKyAgICAgICAgaWYgKCF4 bHVfY2ZnX2dldF9kZWZib29sKGNvbmZpZywgImFsdHAybWh2bSIsICZiX2luZm8tPmFsdHAybSwg MCkpCj4gKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiV0FSTklORzogU3BlY2lmeWluZyBc ImFsdHAybWh2bVwiIGlzIGRlcHJlY2F0ZWQuICIKPiArICAgICAgICAgICAgICAgICAgICAiUGxl YXNlIHVzZSBhIFwiYWx0cDJtXCIgaW5zdGVhZC5cbiIpOwoKSW4gdGhpcyBjYXNlIHlvdSBzaG91 bGQ6CgogaWYgYm90aCBhbHRwMm1odm0gYW5kIGFsdHAybSBhcmUgcHJlc2VudCwgdXNlIHRoZSBs YXR0ZXIuCiBpZiBvbmx5IGFsdHAybWh2bSBpcyBwcmVzZW50LCBob25vdXIgaXQuCgpOb3RlIHRo YXQgd2UgaGF2ZSBub3QgeWV0IHJlbW92ZWQgdGhlIG9sZCBvcHRpb24uIElkZWFsbHkgd2Ugd291 bGQgZ2l2ZQp1c2VycyBhIHRyYW5zaXRpb24gcGVyaW9kIGJlZm9yZSByZW1vdmluZyB0aGUgb3B0 aW9uLgoKQWxzbyB5b3UgbmVlZCB0byBwYXRjaCBkb2NzL21hbi94bC5wb2QuMS5pbiBmb3IgdGhl IG5ldyBvcHRpb24uCgo+ICAKPiAgICAgICAgICB4bHVfY2ZnX3JlcGxhY2Vfc3RyaW5nKGNvbmZp ZywgInNtYmlvc19maXJtd2FyZSIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm Yl9pbmZvLT51Lmh2bS5zbWJpb3NfZmlybXdhcmUsIDApOwo+IEBAIC0xNzI3LDYgKzE3MzIsMjUg QEAgc3RhdGljIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJj ZSwKPiAgICAgICAgICBhYm9ydCgpOwo+ICAgICAgfQo+ICAKPiArICAgIGJvb2wgYWx0cDJtX3N1 cHBvcnQgPSBmYWxzZTsKPiArI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZf NjRfXykKPiArICAgIC8qIEFsdGVybmF0ZSBwMm0gc3VwcG9ydCBvbiB4ODYgaXMgYXZhaWxhYmxl IG9ubHkgZm9yIEhWTSBndWVzdHMuICovCj4gKyAgICBpZiAoYl9pbmZvLT50eXBlID09IExJQlhM X0RPTUFJTl9UWVBFX0hWTSkKPiArICAgICAgICBhbHRwMm1fc3VwcG9ydCA9IHRydWU7Cj4gKyNl bGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKPiArICAgIC8qIEFs dGVybmF0ZSBwMm0gc3VwcG9ydCBvbiBBUk0gaXMgYXZhaWxhYmxlIGZvciBhbGwgZ3Vlc3RzLiAq Lwo+ICsgICAgYWx0cDJtX3N1cHBvcnQgPSB0cnVlOwo+ICsjZW5kaWYKPiArCgpJIGRvbid0IHRo aW5rIHlvdSBuZWVkIHRvIGNhcmUgdG9vIG11Y2ggYWJvdXQgZGVhZCBvcHRpb24gaGVyZS4KWGwg c2hvdWxkIGJlIGFibGUgdG8gc2V0IGFsdHAybSBmaWVsZCBhbGwgdGhlIHRpbWUuIEFuZCB0aGVy ZSBzaG91bGQgYmUKY29kZSBpbiBsaWJ4bCB0byBoYW5kbGUgc2l0dWF0aW9uIHdoZW4gYWx0cDJt IGlzIG5vdCBhdmFpbGFibGUuCgo+ICsgICAgaWYgKGFsdHAybV9zdXBwb3J0KSB7Cj4gKyAgICAg ICAgLyogVGhlIGNvbmZpZyBwYXJhbWV0ZXIgImFsdHAybSIgcmVwbGFjZXMgdGhlIHBhcmFtZXRl ciAiYWx0cDJtaHZtIi4KPiArICAgICAgICAgKiBGb3IgbGVnYWN5IHJlYXNvbnMsIGJvdGggcGFy YW1ldGVycyBhcmUgYWNjZXB0ZWQgb24geDg2IEhWTSBndWVzdHMKPiArICAgICAgICAgKiAob25s eSAiYWx0cDJtIiBpcyBhY2NlcHRlZCBvbiBBUk0gZ3Vlc3RzKS4gSWYgYm90aCBwYXJhbWV0ZXJz IGFyZQo+ICsgICAgICAgICAqIGdpdmVuLCBpdCBtdXN0IGJlIGNvbnNpZGVyZWQgdGhhdCB0aGUg Y29uZmlnIHBhcmFtZXRlciAiYWx0cDJtIiB3aWxsCj4gKyAgICAgICAgICogYWx3YXlzIGhhdmUg cHJpb3JpdHkgb3ZlciAiYWx0cDJtaHZtIi4gKi8KPiArICAgICAgICB4bHVfY2ZnX2dldF9kZWZi b29sKGNvbmZpZywgImFsdHAybSIsICZiX2luZm8tPmFsdHAybSwgMCk7Cj4gKyAgICB9Cj4gKwoK QXMgYWx3YXlzLCBpZiB3aGF0IEkgc2FpZCBhYm92ZSBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8geW91 LCBmZWVsIGZyZWUgdG8KYXNrLgoKV2VpLgoKPiAgICAgIGlmICgheGx1X2NmZ19nZXRfbGlzdChj b25maWcsICJpb3BvcnRzIiwgJmlvcG9ydHMsICZudW1faW9wb3J0cywgMCkpIHsKPiAgICAgICAg ICBiX2luZm8tPm51bV9pb3BvcnRzID0gbnVtX2lvcG9ydHM7Cj4gICAgICAgICAgYl9pbmZvLT5p b3BvcnRzID0gY2FsbG9jKG51bV9pb3BvcnRzLCBzaXplb2YoKmJfaW5mby0+aW9wb3J0cykpOwo+ IC0tIAo+IDIuOS4wCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK