From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergej Proskurin Subject: [PATCH v3 38/38] arm/p2m: Add test of xc_altp2m_change_gfn Date: Wed, 17 Aug 2016 00:17:14 +0200 Message-ID: <20160816221714.22041-39-proskurin@sec.in.tum.de> References: <20160816221714.22041-1-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZmmK-0003Sa-LA for xen-devel@lists.xenproject.org; Tue, 16 Aug 2016 22:24:12 +0000 In-Reply-To: <20160816221714.22041-1-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: xen-devel@lists.xenproject.org Cc: Sergej Proskurin , Tamas K Lengyel , Ian Jackson , Wei Liu , Razvan Cojocaru List-Id: xen-devel@lists.xenproject.org VGhpcyBjb21taXQgZXh0ZW5kcyB4ZW4tYWNjZXNzIGJ5IGEgc2ltcGxlIHRlc3Qgb2YgdGhlIGZ1 bmN0aW9uYWxpdHkKcHJvdmlkZWQgYnkgInhjX2FsdHAybV9jaGFuZ2VfZ2ZuIi4gVGhlIGlkZWEg aXMgdG8gZHluYW1pY2FsbHkgcmVtYXAgYQp0cmFwcGluZyBnZm4gdG8gYW5vdGhlciBtZm4sIHdo aWNoIGhvbGRzIHRoZSBzYW1lIGNvbnRlbnQgYXMgdGhlCm9yaWdpbmFsIG1mbi4gT24gc3VjY2Vz cywgdGhlIGd1ZXN0IHdpbGwgY29udGludWUgdG8gcnVuLiBTdWJzZXF1ZW50CmFsdHAybSBhY2Nl c3MgdmlvbGF0aW9ucyB3aWxsIHRyYXAgaW50byBYZW4gYW5kIGJlIGZvcmNlZCBieSB4ZW4tYWNj ZXNzCnRvIHN3aXRjaCB0byB0aGUgZGVmYXVsdCB2aWV3IChhbHRwMm1bMF0pIGFzIGJlZm9yZS4g VGhlIGludHJvZHVjZWQgdGVzdApjYW4gYmUgaW52b2tlZCBieSBwcm92aWRpbmcgdGhlIGFyZ3Vt ZW50ICJhbHRwMm1fcmVtYXAiLgoKU2lnbmVkLW9mZi1ieTogU2VyZ2VqIFByb3NrdXJpbiA8cHJv c2t1cmluQHNlYy5pbi50dW0uZGU+Ci0tLQpDYzogUmF6dmFuIENvam9jYXJ1IDxyY29qb2NhcnVA Yml0ZGVmZW5kZXIuY29tPgpDYzogVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29t PgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KdjM6IENvc21ldGljIGZpeGVzIGluICJ4ZW5hY2Nl c3NfY29weV9nZm4iIGFuZCAieGVuYWNjZXNzX2NoYW5nZV9nZm4iLgoKICAgIEFkZGVkIG11bm1h cCBpbiAiY29weV9nZm4iIGluIHRoZSBzZWNvbmQgZXJyb3IgY2FzZS4KCiAgICBBZGRlZCBvcHRp b24gImFsdHAybV9yZW1hcCIgc2VsZWN0aW5nIHRoZSBhbHRwMm0tcmVtYXAgdGVzdC4KLS0tCiB0 b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1hY2Nlc3MuYyB8IDE2MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1h Y2Nlc3MuYyBiL3Rvb2xzL3Rlc3RzL3hlbi1hY2Nlc3MveGVuLWFjY2Vzcy5jCmluZGV4IGVhZmQ3 ZDYuLjU5MDlhOGEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3RzL3hlbi1hY2Nlc3MveGVuLWFjY2Vz cy5jCisrKyBiL3Rvb2xzL3Rlc3RzL3hlbi1hY2Nlc3MveGVuLWFjY2Vzcy5jCkBAIC0zOCw2ICsz OCw3IEBACiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KICNpbmNsdWRlIDxzeXMvcG9sbC5oPgogCisj ZGVmaW5lIFhDX1dBTlRfQ09NUEFUX01BUF9GT1JFSUdOX0FQSQogI2luY2x1ZGUgPHhlbmN0cmwu aD4KICNpbmNsdWRlIDx4ZW5ldnRjaG4uaD4KICNpbmNsdWRlIDx4ZW4vdm1fZXZlbnQuaD4KQEAg LTQ5LDYgKzUwLDggQEAKICNkZWZpbmUgU1RBUlRfUEZOIDBVTEwKICNlbmRpZgogCisjZGVmaW5l IElOVkFMSURfR0ZOIH4oMFVMKQorCiAjZGVmaW5lIERQUklOVEYoYSwgYi4uLikgZnByaW50Zihz dGRlcnIsIGEsICMjIGIpCiAjZGVmaW5lIEVSUk9SKGEsIGIuLi4pIGZwcmludGYoc3RkZXJyLCBh ICJcbiIsICMjIGIpCiAjZGVmaW5lIFBFUlJPUihhLCBiLi4uKSBmcHJpbnRmKHN0ZGVyciwgYSAi OiAlc1xuIiwgIyMgYiwgc3RyZXJyb3IoZXJybm8pKQpAQCAtNzIsOSArNzUsMTQgQEAgdHlwZWRl ZiBzdHJ1Y3QgeGVuYWNjZXNzIHsKICAgICB4ZW5fcGZuX3QgbWF4X2dwZm47CiAKICAgICB2bV9l dmVudF90IHZtX2V2ZW50OworCisgICAgdW5zaWduZWQgaW50IGFwMm1faWR4OworICAgIHhlbl9w Zm5fdCBnZm5fb2xkOworICAgIHhlbl9wZm5fdCBnZm5fbmV3OwogfSB4ZW5hY2Nlc3NfdDsKIAog c3RhdGljIGludCBpbnRlcnJ1cHRlZDsKK3N0YXRpYyBpbnQgZ2ZuX2NoYW5nZWQgPSAwOwogYm9v bCBldnRjaG5fYmluZCA9IDAsIGV2dGNobl9vcGVuID0gMCwgbWVtX2FjY2Vzc19lbmFibGUgPSAw OwogCiBzdGF0aWMgdm9pZCBjbG9zZV9oYW5kbGVyKGludCBzaWcpCkBAIC04Miw2ICs5MCwxMDAg QEAgc3RhdGljIHZvaWQgY2xvc2VfaGFuZGxlcihpbnQgc2lnKQogICAgIGludGVycnVwdGVkID0g c2lnOwogfQogCitzdGF0aWMgaW50IHhlbmFjY2Vzc19jb3B5X2dmbih4Y19pbnRlcmZhY2UgKnhj aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9tYWluX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bmbl90IGRzdF9nZm4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4ZW5fcGZuX3Qgc3JjX2dmbikKK3sKKyAgICB2b2lkICpzcmNf dmFkZHIgPSBOVUxMOworICAgIHZvaWQgKmRzdF92YWRkciA9IE5VTEw7CisKKyAgICBzcmNfdmFk ZHIgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSh4Y2gsIGRvbWFpbl9pZCwgWENfUEFHRV9TSVpFLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCwgc3JjX2dmbik7 CisgICAgaWYgKCBzcmNfdmFkZHIgPT0gTUFQX0ZBSUxFRCB8fCBzcmNfdmFkZHIgPT0gTlVMTCkK KyAgICAgICAgcmV0dXJuIC0xOworCisgICAgZHN0X3ZhZGRyID0geGNfbWFwX2ZvcmVpZ25fcmFu Z2UoeGNoLCBkb21haW5faWQsIFhDX1BBR0VfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQUk9UX1dSSVRFLCBkc3RfZ2ZuKTsKKyAgICBpZiAoIGRzdF92YWRkciA9 PSBNQVBfRkFJTEVEIHx8IGRzdF92YWRkciA9PSBOVUxMKQorICAgIHsKKyAgICAgICAgbXVubWFw KHNyY192YWRkciwgWENfUEFHRV9TSVpFKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKwor ICAgIG1lbWNweShkc3RfdmFkZHIsIHNyY192YWRkciwgWENfUEFHRV9TSVpFKTsKKworICAgIG11 bm1hcChzcmNfdmFkZHIsIFhDX1BBR0VfU0laRSk7CisgICAgbXVubWFwKGRzdF92YWRkciwgWENf UEFHRV9TSVpFKTsKKworICAgIHJldHVybiAwOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBh bGxvY2F0ZXMgYW5kIHBvcHVsYXRlcyBhIHBhZ2UgaW4gdGhlIGd1ZXN0J3MgcGh5c21hcCB0aGF0 IGlzCisgKiBzdWJzZXF1ZW50bHkgZmlsbGVkIHdpdGggY29udGVudHMgb2YgdGhlIHRyYXBwaW5n IGFkZHJlc3MuIEZpbmFsbHksIHRocm91Z2gKKyAqIHRoZSBpbnZvY2F0aW9uIG9mIHhjX2FsdHAy bV9jaGFuZ2VfZ2ZuLCB0aGUgYWx0cDJtIHN1YnN5c3RlbSBjaGFuZ2VzIHRoZSBnZm4KKyAqIHRv IG1mbiBtYXBwaW5nIG9mIHRoZSB0YXJnZXQgYWx0cDJtIHZpZXcuCisgKi8KK3N0YXRpYyBpbnQg eGVuYWNjZXNzX2NoYW5nZV9nZm4oeGNfaW50ZXJmYWNlICp4Y2gsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgYXAybV9pZHgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHhlbl9wZm5fdCBnZm5fb2xkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4ZW5fcGZuX3QgKmdmbl9uZXcpCit7CisgICAgaW50IHJjOworCisgICAgLyoKKyAgICAg KiBXZSBwZXJmb3JtIHRoaXMgZnVuY3Rpb24gb25seSBvbmNlIGFzIGl0IGlzIGludGVuZGVkIHRv IGJlIHVzZWQgZm9yCisgICAgICogdGVzdGluZyBhbmQgZGVtb25zdHJhdGlvbiBwdXJwb3Nlcy4g VGh1cywgd2Ugc2lnbmFsaXplIHRoYXQgZnVydGhlcgorICAgICAqIGFsdHAybS1yZWxhdGVkIHRy YXBzIHdpbGwgbm90IGNoYW5nZSB0cmFwcGluZyBnZm4ncy4KKyAgICAgKi8KKyAgICBnZm5fY2hh bmdlZCA9IDE7CisKKyAgICByYyA9IHhjX2RvbWFpbl9pbmNyZWFzZV9yZXNlcnZhdGlvbl9leGFj dCh4Y2gsIGRvbWFpbl9pZCwgMSwgMCwgMCwgZ2ZuX25ldyk7CisgICAgaWYgKCByYyA8IDAgKQor ICAgICAgICByZXR1cm4gLTE7CisKKyAgICByYyA9IHhjX2RvbWFpbl9wb3B1bGF0ZV9waHlzbWFw X2V4YWN0KHhjaCwgZG9tYWluX2lkLCAxLCAwLCAwLCBnZm5fbmV3KTsKKyAgICBpZiAoIHJjIDwg MCApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgLyogQ29weSBjb250ZW50IG9mIHRoZSBvbGQg Z2ZuIGludG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBnZm4gKi8KKyAgICByYyA9IHhlbmFjY2Vzc19j b3B5X2dmbih4Y2gsIGRvbWFpbl9pZCwgKmdmbl9uZXcsIGdmbl9vbGQpOworICAgIGlmICggcmMg PCAwICkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICB4Y19hbHRwMm1fY2hhbmdlX2dmbih4Y2gs IGRvbWFpbl9pZCwgYXAybV9pZHgsIGdmbl9vbGQsICpnZm5fbmV3KTsKKworICAgIHJldHVybiAw OworCitlcnI6CisgICAgeGNfZG9tYWluX2RlY3JlYXNlX3Jlc2VydmF0aW9uX2V4YWN0KHhjaCwg ZG9tYWluX2lkLCAxLCAwLCBnZm5fbmV3KTsKKworICAgIHJldHVybiAtMTsKK30KKworc3RhdGlj IGludCB4ZW5hY2Nlc3NfcmVzZXRfZ2ZuKHhjX2ludGVyZmFjZSAqeGNoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBhcDJtX2lkeCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB4ZW5fcGZuX3QgZ2ZuX29sZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB4ZW5fcGZuX3QgZ2ZuX25ldykKK3sKKyAgICBpbnQgcmM7CisKKyAgICAvKiBSZXNldCBw cmV2aW91cyBzdGF0ZSAqLworICAgIHhjX2FsdHAybV9jaGFuZ2VfZ2ZuKHhjaCwgZG9tYWluX2lk LCBhcDJtX2lkeCwgZ2ZuX29sZCwgSU5WQUxJRF9HRk4pOworCisgICAgLyogSW52YWxpZGF0ZSB0 aGUgbmV3IGdmbiAqLworICAgIHhjX2FsdHAybV9jaGFuZ2VfZ2ZuKHhjaCwgZG9tYWluX2lkLCBh cDJtX2lkeCwgZ2ZuX25ldywgSU5WQUxJRF9HRk4pOworCisgICAgcmMgPSB4Y19kb21haW5fZGVj cmVhc2VfcmVzZXJ2YXRpb25fZXhhY3QoeGNoLCBkb21haW5faWQsIDEsIDAsICZnZm5fbmV3KTsK KyAgICBpZiAoIHJjIDwgMCApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHJldHVybiAwOwor fQorCiBpbnQgeGNfd2FpdF9mb3JfZXZlbnRfb3JfdGltZW91dCh4Y19pbnRlcmZhY2UgKnhjaCwg eGVuZXZ0Y2huX2hhbmRsZSAqeGNlLCB1bnNpZ25lZCBsb25nIG1zKQogewogICAgIHN0cnVjdCBw b2xsZmQgZmQgPSB7IC5mZCA9IHhlbmV2dGNobl9mZCh4Y2UpLCAuZXZlbnRzID0gUE9MTElOIHwg UE9MTEVSUiB9OwpAQCAtMjI3LDYgKzMyOSwxMCBAQCB4ZW5hY2Nlc3NfdCAqeGVuYWNjZXNzX2lu aXQoeGNfaW50ZXJmYWNlICoqeGNoX3IsIGRvbWlkX3QgZG9tYWluX2lkKQogICAgIH0KICAgICBt ZW1fYWNjZXNzX2VuYWJsZSA9IDE7CiAKKyAgICB4ZW5hY2Nlc3MtPmFwMm1faWR4ID0gfigwKTsK KyAgICB4ZW5hY2Nlc3MtPmdmbl9vbGQgPSBJTlZBTElEX0dGTjsKKyAgICB4ZW5hY2Nlc3MtPmdm bl9uZXcgPSBJTlZBTElEX0dGTjsKKwogICAgIC8qIE9wZW4gZXZlbnQgY2hhbm5lbCAqLwogICAg IHhlbmFjY2Vzcy0+dm1fZXZlbnQueGNlX2hhbmRsZSA9IHhlbmV2dGNobl9vcGVuKE5VTEwsIDAp OwogICAgIGlmICggeGVuYWNjZXNzLT52bV9ldmVudC54Y2VfaGFuZGxlID09IE5VTEwgKQpAQCAt MzM5LDcgKzQ0NSw3IEBAIHZvaWQgdXNhZ2UoY2hhciogcHJvZ25hbWUpCiAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQogICAgICAgICAgICAgZnByaW50ZihzdGRl cnIsICJ8YnJlYWtwb2ludHxkZWJ1Z3xjcHVpZCIpOwogI2VuZGlmCi0gICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgInxhbHRwMm1fd3JpdGV8YWx0cDJtX2V4ZWMiKTsKKyAgICAgICAgICAgIGZw cmludGYoc3RkZXJyLCAifGFsdHAybV93cml0ZXxhbHRwMm1fZXhlY3xhbHRwMm1fcmVtYXAiKTsK ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAogICAgICAgICAgICAgIlxuIgogICAgICAgICAg ICAgIkxvZ3MgZmlyc3QgcGFnZSB3cml0ZXMsIGV4ZWNzLCBvciBicmVha3BvaW50IHRyYXBzIHRo YXQgb2NjdXIgb24gdGhlIGRvbWFpbi5cbiIKQEAgLTM2NCw2ICs0NzAsNyBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIGludCBicmVha3BvaW50ID0gMDsKICAgICBpbnQg c2h1dHRpbmdfZG93biA9IDA7CiAgICAgaW50IGFsdHAybSA9IDA7CisgICAgaW50IGFsdHAybV9y ZW1hcCA9IDA7CiAgICAgaW50IGRlYnVnID0gMDsKICAgICBpbnQgY3B1aWQgPSAwOwogICAgIHVp bnQxNl90IGFsdHAybV92aWV3X2lkID0gMDsKQEAgLTQzMyw2ICs1NDAsMTMgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgYWx0cDJtID0gMTsKICAgICAgICAgbWVt YWNjZXNzID0gMTsKICAgICB9CisgICAgZWxzZSBpZiAoICFzdHJjbXAoYXJndlswXSwgImFsdHAy bV9yZW1hcCIpICkKKyAgICB7CisgICAgICAgIGRlZmF1bHRfYWNjZXNzID0gWEVOTUVNX2FjY2Vz c19ydzsKKyAgICAgICAgYWx0cDJtID0gMTsKKyAgICAgICAgYWx0cDJtX3JlbWFwID0gMTsKKyAg ICAgICAgbWVtYWNjZXNzID0gMTsKKyAgICB9CiAgICAgZWxzZQogICAgIHsKICAgICAgICAgdXNh Z2UoYXJndlswXSk7CkBAIC01ODksNiArNzAzLDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQog ICAgICAgICAgICAgICAgIHJjID0geGNfbW9uaXRvcl9zaW5nbGVzdGVwKHhjaCwgZG9tYWluX2lk LCAwKTsKICNlbmRpZgorCisgICAgICAgICAgICAgICAgLyogUmVzZXQgcmVtYXBwZWQgZ2ZuLiAq LworICAgICAgICAgICAgICAgIGlmICggYWx0cDJtX3JlbWFwICYmIHhlbmFjY2Vzcy0+Z2ZuX25l dyAhPSBJTlZBTElEX0dGTiApCisgICAgICAgICAgICAgICAgICAgIHJjID0geGVuYWNjZXNzX3Jl c2V0X2dmbih4ZW5hY2Nlc3MtPnhjX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHhlbmFjY2Vzcy0+dm1fZXZlbnQuZG9tYWluX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuYWNjZXNzLT5hcDJtX2lk eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbmFjY2Vz cy0+Z2ZuX29sZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHhlbmFjY2Vzcy0+Z2ZuX25ldyk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg ICAgIHJjID0geGNfc2V0X21lbV9hY2Nlc3MoeGNoLCBkb21haW5faWQsIFhFTk1FTV9hY2Nlc3Nf cnd4LCB+MHVsbCwgMCk7CiAgICAgICAgICAgICAgICAgcmMgPSB4Y19zZXRfbWVtX2FjY2Vzcyh4 Y2gsIGRvbWFpbl9pZCwgWEVOTUVNX2FjY2Vzc19yd3gsIFNUQVJUX1BGTiwKQEAgLTY2MiwxMCAr Nzg0LDQyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAKICAgICAgICAgICAg ICAgICBpZiAoIGFsdHAybSAmJiByZXEuZmxhZ3MgJiBWTV9FVkVOVF9GTEFHX0FMVEVSTkFURV9Q Mk0pCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBEUFJJTlRGKCJcdFN3 aXRjaGluZyBiYWNrIHRvIGRlZmF1bHQgdmlldyFcbiIpOwotCiAgICAgICAgICAgICAgICAgICAg IHJzcC5mbGFncyB8PSAoVk1fRVZFTlRfRkxBR19BTFRFUk5BVEVfUDJNIHwgVk1fRVZFTlRfRkxB R19UT0dHTEVfU0lOR0xFU1RFUCk7Ci0gICAgICAgICAgICAgICAgICAgIHJzcC5hbHRwMm1faWR4 ID0gMDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIGFsdHAybV9yZW1hcCApCisgICAgICAg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIWdmbl9jaGFuZ2Vk ICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBTdG9yZSB0cmFwcGluZyBnZm4gYW5kIGFwMm0gaW5kZXggZm9yIGNsZWFudXAuICovCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuYWNjZXNzLT5nZm5fb2xkID0gcmVxLnUubWVt X2FjY2Vzcy5nZm47CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuYWNjZXNzLT5hcDJt X2lkeCA9IHJlcS5hbHRwMm1faWR4OworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog Tm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgb25jZS4gKi8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICByYyA9IHhlbmFjY2Vzc19jaGFuZ2VfZ2ZuKHhlbmFjY2Vzcy0+ eGNfaGFuZGxlLCBkb21haW5faWQsIHJlcS5hbHRwMm1faWR4LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuYWNjZXNzLT5nZm5fb2xkLCAm eGVuYWNjZXNzLT5nZm5fbmV3KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmMg PCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRVJST1IoIkVycm9yIHJlbWFwcGluZyBnZm49JSJQUkl4NjQiXG4iLCB4ZW5h Y2Nlc3MtPmdmbl9vbGQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnJ1 cHRlZCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBEbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50bHkgYWN0aXZlIGFsdHAybSB2aWV3LCB5ZXQu ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwLmFsdHAybV9pZHggPSByZXEuYWx0 cDJtX2lkeDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEUFJJTlRGKCJcdFN3aXRjaGluZyBiYWNrIHRvIGRlZmF1bHQgdmlldyFcbiIpOwor CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNwLmFsdHAybV9pZHggPSAwOworICAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg ICAgRFBSSU5URigiXHRTd2l0Y2hpbmcgYmFjayB0byBkZWZhdWx0IHZpZXchXG4iKTsKKworICAg ICAgICAgICAgICAgICAgICAgICAgcnNwLmFsdHAybV9pZHggPSAwOworICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UgaWYgKCBkZWZh dWx0X2FjY2VzcyAhPSBhZnRlcl9maXJzdF9hY2Nlc3MgKQogICAgICAgICAgICAgICAgIHsKLS0g CjIuOS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==