From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 10/22] mini-os: make p2m related code depend on CONFIG_PARAVIRT Date: Tue, 23 Aug 2016 17:15:56 +0200 Message-ID: <1471965368-6159-11-git-send-email-jgross@suse.com> References: <1471965368-6159-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1471965368-6159-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org Cc: Juergen Gross , samuel.thibault@ens-lyon.org, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org QWxsIGhhbmRsaW5nIHJlbGF0ZWQgdG8gcDJtIGlzIG5lZWRlZCBmb3IgcGFyYXZpcnR1YWxpemVk IGVudmlyb25tZW50Cm9ubHkuIFNvIHB1dCBhbGwgZnVuY3Rpb25zIG9wZXJhdGluZyBvbiBwMm0g bGlzdCBpbiAjaWZkZWYKQ09ORklHX1BBUkFWSVJUIHNlY3Rpb25zLiBBZGQgYSBwYXJhdmlydC5o IGhlYWRlciBkZWZpbmluZyBkdW1teQpmdW5jdGlvbnMgZm9yIG5vbi1wYXJhdmlydHVhbGl6ZWQg ZW52aXJvbm1lbnRzLiBJbnN0ZWFkIG9mIHVzaW5nCnJlZmVyZW5jZXMgdG8gc3RhcnRfaW5mbyB1 c2UgZGVkaWNhdGVkIHZhcmlhYmxlcyBpbml0aWFsaXplZCBmcm9tCnN0YXJ0X2luZm8gb24gYm9v dC4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tCiBh cmNoL2FybS9iYWxsb29uLmMgICAgICAgICAgICAgICAgfCAgNSAtLS0KIGFyY2gvYXJtL21tLmMg ICAgICAgICAgICAgICAgICAgICB8ICA0IC0tLQogYXJjaC94ODYvYmFsbG9vbi5jICAgICAgICAg ICAgICAgIHwgMTMgKysrKysrKysKIGFyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgICB8 IDY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogYXJjaC94ODYvc2V0 dXAuYyAgICAgICAgICAgICAgICAgIHwgIDYgKystLQogYXJjaC94ODYvdHJhcHMuYyAgICAgICAg ICAgICAgICAgIHwgIDYgKystLQogYmFsbG9vbi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDEgKwogaW5jbHVkZS9hcm0vYXJjaF9tbS5oICAgICAgICAgICAgIHwgIDMgLS0KIGluY2x1ZGUv YmFsbG9vbi5oICAgICAgICAgICAgICAgICB8ICAzIC0tCiBpbmNsdWRlL21tLmggICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9wYXJhdmlydC5oICAgICAgICAgICAgICAgIHwg NDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ODYvYXJjaF9tbS5oICAg ICAgICAgICAgIHwgNDAgKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUveGVuL2FyY2gt eDg2L3hlbi14ODZfMzIuaCB8ICAyICsrCiBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0 LmggfCAgMiArKwogbW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogMTUg ZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2FyY2gvYXJtL2JhbGxvb24uYyBiL2FyY2gvYXJtL2JhbGxvb24uYwppbmRleCA3ZjM1 MzI4Li45NThlY2JhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9iYWxsb29uLmMKKysrIGIvYXJjaC9h cm0vYmFsbG9vbi5jCkBAIC0yNywxMSArMjcsNiBAQAogCiB1bnNpZ25lZCBsb25nIHZpcnRfa2Vy bmVsX2FyZWFfZW5kOyAgIC8qIFRPRE86IGZpbmQgYSB2aXJ0dWFsIGFyZWEgKi8KIAotaW50IGFy Y2hfZXhwYW5kX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pCi17Ci0gICAgcmV0dXJuIDA7Ci19 Ci0KIHZvaWQgYXJjaF9wZm5fYWRkKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1m bikKIHsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tLmMgYi9hcmNoL2FybS9tbS5jCmluZGV4 IGZjOGQ0YmMuLjRmNThmYzcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tLmMKKysrIGIvYXJjaC9h cm0vbW0uYwpAQCAtNzIsMTAgKzcyLDYgQEAgdm9pZCBhcmNoX2luaXRfbW0odW5zaWduZWQgbG9u ZyAqc3RhcnRfcGZuX3AsIHVuc2lnbmVkIGxvbmcgKm1heF9wZm5fcCkKICAgICAqbWF4X3Bmbl9w ID0gdG9fcGh5cyhuZXdfZGV2aWNlX3RyZWUpID4+IFBBR0VfU0hJRlQ7CiB9CiAKLXZvaWQgYXJj aF9pbml0X3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pCi17Ci19Ci0KIHZvaWQgYXJjaF9pbml0 X2RlbWFuZF9tYXBwaW5nX2FyZWEodm9pZCkKIHsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jh bGxvb24uYyBiL2FyY2gveDg2L2JhbGxvb24uYwppbmRleCA0MjM4OWU0Li4xNmFhYWU0IDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9iYWxsb29uLmMKKysrIGIvYXJjaC94ODYvYmFsbG9vbi5jCkBAIC0y NiwxMSArMjYsMTMgQEAKICNpbmNsdWRlIDxtaW5pLW9zL2Vycm5vLmg+CiAjaW5jbHVkZSA8bWlu aS1vcy9saWIuaD4KICNpbmNsdWRlIDxtaW5pLW9zL21tLmg+CisjaW5jbHVkZSA8bWluaS1vcy9w YXJhdmlydC5oPgogCiAjaWZkZWYgQ09ORklHX0JBTExPT04KIAogdW5zaWduZWQgbG9uZyB2aXJ0 X2tlcm5lbF9hcmVhX2VuZCA9IFZJUlRfS0VSTkVMX0FSRUE7CiAKKyNpZmRlZiBDT05GSUdfUEFS QVZJUlQKIHN0YXRpYyB2b2lkIHAybV9pbnZhbGlkYXRlKHVuc2lnbmVkIGxvbmcgKmxpc3QsIHVu c2lnbmVkIGxvbmcgc3RhcnRfaWR4KQogewogICAgIHVuc2lnbmVkIGxvbmcgaWR4OwpAQCAtMTQz LDUgKzE0NSwxNiBAQCB2b2lkIGFyY2hfcGZuX2FkZCh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWdu ZWQgbG9uZyBtZm4pCiAgICAgICAgIGRvX2V4aXQoKTsKICAgICB9CiB9CisjZWxzZQordm9pZCBh cmNoX3Bmbl9hZGQodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKQoreworICAg IHBnZW50cnlfdCAqcGd0OworCisgICAgcGd0ID0gbmVlZF9wZ3QoKHVuc2lnbmVkIGxvbmcpcGZu X3RvX3ZpcnQocGZuKSk7CisgICAgQVNTRVJUKHBndCk7CisgICAgaWYgKCAhKCpwZ3QgJiBfUEFH RV9QU0UpICkKKyAgICAgICAgKnBndCA9IChwZ2VudHJ5X3QpKG1mbiA8PCBQQUdFX1NISUZUKSB8 IF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVzsKK30KKyNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2FyY2gveDg2L21tLmMgYi9hcmNoL3g4Ni9tbS5jCmluZGV4IGZlMThmNTMuLjA1NDMwMTcg MTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tLmMKKysrIGIvYXJjaC94ODYvbW0uYwpAQCAtMzksNiAr MzksNyBAQAogI2luY2x1ZGUgPG1pbmktb3MvaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPG1pbmkt b3MvYmFsbG9vbi5oPgogI2luY2x1ZGUgPG1pbmktb3MvbW0uaD4KKyNpbmNsdWRlIDxtaW5pLW9z L3BhcmF2aXJ0Lmg+CiAjaW5jbHVkZSA8bWluaS1vcy90eXBlcy5oPgogI2luY2x1ZGUgPG1pbmkt b3MvbGliLmg+CiAjaW5jbHVkZSA8bWluaS1vcy94bWFsbG9jLmg+CkBAIC01MywxMCArNTQsMjQg QEAKIAogdW5zaWduZWQgbG9uZyAqcGh5c190b19tYWNoaW5lX21hcHBpbmc7CiB1bnNpZ25lZCBs b25nIG1mbl96ZXJvOworcGdlbnRyeV90ICpwdF9iYXNlOworc3RhdGljIHVuc2lnbmVkIGxvbmcg Zmlyc3RfZnJlZV9wZm47CitzdGF0aWMgdW5zaWduZWQgbG9uZyBsYXN0X2ZyZWVfcGZuOworCiBl eHRlcm4gY2hhciBzdGFja1tdOwogZXh0ZXJuIHZvaWQgcGFnZV93YWxrKHVuc2lnbmVkIGxvbmcg dmEpOwogCi0jaWZuZGVmIENPTkZJR19QQVJBVklSVAorI2lmZGVmIENPTkZJR19QQVJBVklSVAor dm9pZCBhcmNoX21tX3ByZWluaXQodm9pZCAqcCkKK3sKKyAgICBzdGFydF9pbmZvX3QgKnNpID0g cDsKKworICAgIHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nID0gKHVuc2lnbmVkIGxvbmcgKilzaS0+ bWZuX2xpc3Q7CisgICAgcHRfYmFzZSA9IChwZ2VudHJ5X3QgKilzaS0+cHRfYmFzZTsKKyAgICBm aXJzdF9mcmVlX3BmbiA9IFBGTl9VUCh0b19waHlzKHB0X2Jhc2UpKSArIHNpLT5ucl9wdF9mcmFt ZXM7CisgICAgbGFzdF9mcmVlX3BmbiA9IHNpLT5ucl9wYWdlczsKK30KKyNlbHNlCiAjaW5jbHVk ZSA8bWluaS1vcy9kZXNjLmg+CiB1c2VyX2Rlc2MgZ2R0W05SX0dEVF9FTlRSSUVTXSA9CiB7CkBA IC04NSw2ICsxMDAsMjIgQEAgZGVzY19wdHIgaWR0X3B0ciA9CiAgICAgLmxpbWl0ID0gc2l6ZW9m KGlkdCkgLSAxLAogICAgIC5iYXNlID0gKHVuc2lnbmVkIGxvbmcpJmlkdCwKIH07CisKK3ZvaWQg YXJjaF9tbV9wcmVpbml0KHZvaWQgKnApCit7CisgICAgbG9uZyByZXQ7CisgICAgZG9taWRfdCBk b21pZCA9IERPTUlEX1NFTEY7CisKKyAgICBwdF9iYXNlID0gcGFnZV90YWJsZV9iYXNlOworICAg IGZpcnN0X2ZyZWVfcGZuID0gUEZOX1VQKHRvX3BoeXMoJl9lbmQpKTsKKyAgICByZXQgPSBIWVBF UlZJU09SX21lbW9yeV9vcChYRU5NRU1fY3VycmVudF9yZXNlcnZhdGlvbiwgJmRvbWlkKTsKKyAg ICBpZiAoIHJldCA8IDAgKQorICAgIHsKKyAgICAgICAgeHByaW50aygiY291bGQgbm90IGdldCBt ZW1vcnkgc2l6ZVxuIik7CisgICAgICAgIGRvX2V4aXQoKTsKKyAgICB9CisgICAgbGFzdF9mcmVl X3BmbiA9IHJldDsKK30KICNlbmRpZgogCiAvKgpAQCAtOTUsNyArMTI2LDcgQEAgZGVzY19wdHIg aWR0X3B0ciA9CiBzdGF0aWMgdm9pZCBuZXdfcHRfZnJhbWUodW5zaWduZWQgbG9uZyAqcHRfcGZu LCB1bnNpZ25lZCBsb25nIHByZXZfbF9tZm4sIAogICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIGxldmVsKQogeyAgIAotICAgIHBnZW50 cnlfdCAqdGFiID0gKHBnZW50cnlfdCAqKXN0YXJ0X2luZm8ucHRfYmFzZTsKKyAgICBwZ2VudHJ5 X3QgKnRhYiA9IHB0X2Jhc2U7CiAgICAgdW5zaWduZWQgbG9uZyBwdF9wYWdlID0gKHVuc2lnbmVk IGxvbmcpcGZuX3RvX3ZpcnQoKnB0X3Bmbik7IAogICAgIHBnZW50cnlfdCBwcm90X2UsIHByb3Rf dDsKICAgICBtbXVfdXBkYXRlX3QgbW11X3VwZGF0ZXNbMV07CkBAIC0xNzIsOCArMjAzLDggQEAg c3RhdGljIHZvaWQgYnVpbGRfcGFnZXRhYmxlKHVuc2lnbmVkIGxvbmcgKnN0YXJ0X3BmbiwgdW5z aWduZWQgbG9uZyAqbWF4X3BmbikKICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHJlc3MsIGVu ZF9hZGRyZXNzOwogICAgIHVuc2lnbmVkIGxvbmcgcGZuX3RvX21hcCwgcHRfcGZuID0gKnN0YXJ0 X3BmbjsKICAgICBzdGF0aWMgbW11X3VwZGF0ZV90IG1tdV91cGRhdGVzW0wxX1BBR0VUQUJMRV9F TlRSSUVTICsgMV07Ci0gICAgcGdlbnRyeV90ICp0YWIgPSAocGdlbnRyeV90ICopc3RhcnRfaW5m by5wdF9iYXNlLCBwYWdlOwotICAgIHVuc2lnbmVkIGxvbmcgcHRfbWZuID0gcGZuX3RvX21mbih2 aXJ0X3RvX3BmbihzdGFydF9pbmZvLnB0X2Jhc2UpKTsKKyAgICBwZ2VudHJ5X3QgKnRhYiA9IHB0 X2Jhc2UsIHBhZ2U7CisgICAgdW5zaWduZWQgbG9uZyBwdF9tZm4gPSBwZm5fdG9fbWZuKHZpcnRf dG9fcGZuKHB0X2Jhc2UpKTsKICAgICB1bnNpZ25lZCBsb25nIG9mZnNldDsKICAgICBpbnQgY291 bnQgPSAwOwogICAgIGludCByYzsKQEAgLTE4Miw2ICsyMTMsNyBAQCBzdGF0aWMgdm9pZCBidWls ZF9wYWdldGFibGUodW5zaWduZWQgbG9uZyAqc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nICptYXhf cGZuKQogICAgICAgIG1hcHBlZCwgc3RhcnQgdGhlIGxvb3AgYXQgdGhlIHZlcnkgYmVnaW5uaW5n LiAqLwogICAgIHBmbl90b19tYXAgPSAqc3RhcnRfcGZuOwogCisjaWZkZWYgQ09ORklHX1BBUkFW SVJUCiAgICAgaWYgKCAqbWF4X3BmbiA+PSB2aXJ0X3RvX3BmbihIWVBFUlZJU09SX1ZJUlRfU1RB UlQpICkKICAgICB7CiAgICAgICAgIHByaW50aygiV0FSTklORzogTWluaS1PUyB0cnlpbmcgdG8g dXNlIFhlbiB2aXJ0dWFsIHNwYWNlLiAiCkBAIC0xOTMsNiArMjI1LDcgQEAgc3RhdGljIHZvaWQg YnVpbGRfcGFnZXRhYmxlKHVuc2lnbmVkIGxvbmcgKnN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyAq bWF4X3BmbikKICAgICAgICAgICAgICAgICgodW5zaWduZWQgbG9uZylwZm5fdG9fdmlydCgqbWF4 X3BmbikgLSAKICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZykmX3RleHQpPj4yMCk7CiAg ICAgfQorI2VuZGlmCiAKICAgICBzdGFydF9hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpcGZuX3Rv X3ZpcnQocGZuX3RvX21hcCk7CiAgICAgZW5kX2FkZHJlc3MgPSAodW5zaWduZWQgbG9uZylwZm5f dG9fdmlydCgqbWF4X3Bmbik7CkBAIC0yMDIsOCArMjM1LDggQEAgc3RhdGljIHZvaWQgYnVpbGRf cGFnZXRhYmxlKHVuc2lnbmVkIGxvbmcgKnN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyAqbWF4X3Bm bikKIAogICAgIHdoaWxlICggc3RhcnRfYWRkcmVzcyA8IGVuZF9hZGRyZXNzICkKICAgICB7Ci0g ICAgICAgIHRhYiA9IChwZ2VudHJ5X3QgKilzdGFydF9pbmZvLnB0X2Jhc2U7Ci0gICAgICAgIHB0 X21mbiA9IHBmbl90b19tZm4odmlydF90b19wZm4oc3RhcnRfaW5mby5wdF9iYXNlKSk7CisgICAg ICAgIHRhYiA9IHB0X2Jhc2U7CisgICAgICAgIHB0X21mbiA9IHBmbl90b19tZm4odmlydF90b19w Zm4ocHRfYmFzZSkpOwogCiAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQogICAgICAgICBvZmZzZXQg PSBsNF90YWJsZV9vZmZzZXQoc3RhcnRfYWRkcmVzcyk7CkBAIC0yNzAsOCArMzAzLDggQEAgc3Rh dGljIHZvaWQgc2V0X3JlYWRvbmx5KHZvaWQgKnRleHQsIHZvaWQgKmV0ZXh0KQogICAgICAgICAo KHVuc2lnbmVkIGxvbmcpIHRleHQgKyBQQUdFX1NJWkUgLSAxKSAmIFBBR0VfTUFTSzsKICAgICB1 bnNpZ25lZCBsb25nIGVuZF9hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpIGV0ZXh0OwogICAgIHN0 YXRpYyBtbXVfdXBkYXRlX3QgbW11X3VwZGF0ZXNbTDFfUEFHRVRBQkxFX0VOVFJJRVMgKyAxXTsK LSAgICBwZ2VudHJ5X3QgKnRhYiA9IChwZ2VudHJ5X3QgKilzdGFydF9pbmZvLnB0X2Jhc2UsIHBh Z2U7Ci0gICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwZm5fdG9fbWZuKHZpcnRfdG9fcGZuKHN0YXJ0 X2luZm8ucHRfYmFzZSkpOworICAgIHBnZW50cnlfdCAqdGFiID0gcHRfYmFzZSwgcGFnZTsKKyAg ICB1bnNpZ25lZCBsb25nIG1mbiA9IHBmbl90b19tZm4odmlydF90b19wZm4ocHRfYmFzZSkpOwog ICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0OwogICAgIGludCBjb3VudCA9IDA7CiAgICAgaW50IHJj OwpAQCAtMjgwLDggKzMxMyw4IEBAIHN0YXRpYyB2b2lkIHNldF9yZWFkb25seSh2b2lkICp0ZXh0 LCB2b2lkICpldGV4dCkKIAogICAgIHdoaWxlICggc3RhcnRfYWRkcmVzcyArIFBBR0VfU0laRSA8 PSBlbmRfYWRkcmVzcyApCiAgICAgewotICAgICAgICB0YWIgPSAocGdlbnRyeV90ICopc3RhcnRf aW5mby5wdF9iYXNlOwotICAgICAgICBtZm4gPSBwZm5fdG9fbWZuKHZpcnRfdG9fcGZuKHN0YXJ0 X2luZm8ucHRfYmFzZSkpOworICAgICAgICB0YWIgPSBwdF9iYXNlOworICAgICAgICBtZm4gPSBw Zm5fdG9fbWZuKHZpcnRfdG9fcGZuKHB0X2Jhc2UpKTsKIAogI2lmIGRlZmluZWQoX194ODZfNjRf XykKICAgICAgICAgb2Zmc2V0ID0gbDRfdGFibGVfb2Zmc2V0KHN0YXJ0X2FkZHJlc3MpOwpAQCAt MzQzLDggKzM3Niw4IEBAIHN0YXRpYyBwZ2VudHJ5X3QgKmdldF9wZ3QodW5zaWduZWQgbG9uZyB2 YSkKICAgICBwZ2VudHJ5X3QgKnRhYjsKICAgICB1bnNpZ25lZCBvZmZzZXQ7CiAKLSAgICB0YWIg PSAocGdlbnRyeV90ICopc3RhcnRfaW5mby5wdF9iYXNlOwotICAgIG1mbiA9IHZpcnRfdG9fbWZu KHN0YXJ0X2luZm8ucHRfYmFzZSk7CisgICAgdGFiID0gcHRfYmFzZTsKKyAgICBtZm4gPSB2aXJ0 X3RvX21mbihwdF9iYXNlKTsKIAogI2lmIGRlZmluZWQoX194ODZfNjRfXykKICAgICBvZmZzZXQg PSBsNF90YWJsZV9vZmZzZXQodmEpOwpAQCAtMzc5LDggKzQxMiw4IEBAIHBnZW50cnlfdCAqbmVl ZF9wZ3QodW5zaWduZWQgbG9uZyB2YSkKICAgICB1bnNpZ25lZCBsb25nIHB0X3BmbjsKICAgICB1 bnNpZ25lZCBvZmZzZXQ7CiAKLSAgICB0YWIgPSAocGdlbnRyeV90ICopc3RhcnRfaW5mby5wdF9i YXNlOwotICAgIHB0X21mbiA9IHZpcnRfdG9fbWZuKHN0YXJ0X2luZm8ucHRfYmFzZSk7CisgICAg dGFiID0gcHRfYmFzZTsKKyAgICBwdF9tZm4gPSB2aXJ0X3RvX21mbihwdF9iYXNlKTsKIAogI2lm IGRlZmluZWQoX194ODZfNjRfXykKICAgICBvZmZzZXQgPSBsNF90YWJsZV9vZmZzZXQodmEpOwpA QCAtNjM5LDYgKzY3Miw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyX2Jvb3RzdHJhcCh2b2lkKQogICAg ICAgICBwcmludGsoIlVuYWJsZSB0byB1bm1hcCBOVUxMIHBhZ2UuIHJjPSVkXG4iLCByYyk7CiB9 CiAKKyNpZmRlZiBDT05GSUdfUEFSQVZJUlQKIHZvaWQgcDJtX2Noa19wZm4odW5zaWduZWQgbG9u ZyBwZm4pCiB7CiAgICAgaWYgKCAocGZuID4+IEwzX1AyTV9TSElGVCkgPiAwICkKQEAgLTY3MCw2 ICs3MDQsNyBAQCB2b2lkIGFyY2hfaW5pdF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKQogCiAg ICAgYXJjaF9yZW1hcF9wMm0obWF4X3Bmbik7CiB9CisjZW5kaWYKIAogdm9pZCBhcmNoX2luaXRf bW0odW5zaWduZWQgbG9uZyogc3RhcnRfcGZuX3AsIHVuc2lnbmVkIGxvbmcqIG1heF9wZm5fcCkK IHsKQEAgLTY4Myw4ICs3MTgsOCBAQCB2b2lkIGFyY2hfaW5pdF9tbSh1bnNpZ25lZCBsb25nKiBz dGFydF9wZm5fcCwgdW5zaWduZWQgbG9uZyogbWF4X3Bmbl9wKQogICAgIHByaW50aygiICAgICAg IF9lbmQ6ICVwKFZBKVxuIiwgJl9lbmQpOwogCiAgICAgLyogRmlyc3QgcGFnZSBmb2xsb3dzIHBh Z2UgdGFibGUgcGFnZXMuICovCi0gICAgc3RhcnRfcGZuID0gUEZOX1VQKHRvX3BoeXMoc3RhcnRf aW5mby5wdF9iYXNlKSkgKyBzdGFydF9pbmZvLm5yX3B0X2ZyYW1lczsKLSAgICBtYXhfcGZuID0g c3RhcnRfaW5mby5ucl9wYWdlczsKKyAgICBzdGFydF9wZm4gPSBmaXJzdF9mcmVlX3BmbjsKKyAg ICBtYXhfcGZuID0gbGFzdF9mcmVlX3BmbjsKIAogICAgIGlmICggbWF4X3BmbiA+PSBNQVhfTUVN X1NJWkUgLyBQQUdFX1NJWkUgKQogICAgICAgICBtYXhfcGZuID0gTUFYX01FTV9TSVpFIC8gUEFH RV9TSVpFIC0gMTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3NldHVwLmMgYi9hcmNoL3g4Ni9zZXR1 cC5jCmluZGV4IGVmZWNlZmIuLjhiNmJiNmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3NldHVwLmMK KysrIGIvYXJjaC94ODYvc2V0dXAuYwpAQCAtMTMxLDYgKzEzMSw5IEBAIGFyY2hfaW5pdCh2b2lk ICpwYXIpCiAJLyogSW5pdGlhbGl6ZSBTU0UgKi8KIAlzc2VfaW5pdCgpOwogCisJLyogU2V0dXAg bWVtb3J5IG1hbmFnZW1lbnQgaW5mbyBmcm9tIHN0YXJ0X2luZm8uICovCisJYXJjaF9tbV9wcmVp bml0KHBhcik7CisKIAkvKiBDb3B5IHRoZSBzdGFydF9pbmZvIHN0cnVjdCB0byBhIGdsb2JhbGx5 LWFjY2Vzc2libGUgYXJlYS4gKi8KIAkvKiBXQVJOOiBkb24ndCBkbyBwcmludGsgYmVmb3JlIGhl cmUsIGl0IHVzZXMgaW5mb3JtYXRpb24gZnJvbQogCSAgIHNoYXJlZF9pbmZvLiBVc2UgeHByaW50 ayBpbnN0ZWFkLiAqLwpAQCAtMTUyLDkgKzE1NSw2IEBAIGFyY2hfaW5pdCh2b2lkICpwYXIpCiAJ CQlzaS0+Y21kX2xpbmUgPyAoY29uc3QgY2hhciAqKXNpLT5jbWRfbGluZSA6ICJOVUxMIik7CiAJ cHJpbnRrKCIgICAgICAgc3RhY2s6ICVwLSVwXG4iLCBzdGFjaywgc3RhY2sgKyBzaXplb2Yoc3Rh Y2spKTsKIAotCS8qIHNldCB1cCBtaW5pbWFsIG1lbW9yeSBpbmZvcyAqLwotCXBoeXNfdG9fbWFj aGluZV9tYXBwaW5nID0gKHVuc2lnbmVkIGxvbmcgKilzdGFydF9pbmZvLm1mbl9saXN0OwotCiAJ LyogR3JhYiB0aGUgc2hhcmVkX2luZm8gcG9pbnRlciBhbmQgcHV0IGl0IGluIGEgc2FmZSBwbGFj ZS4gKi8KIAlIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gbWFwX3NoYXJlZF9pbmZvKHN0YXJ0X2lu Zm8uc2hhcmVkX2luZm8pOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni90cmFwcy5jIGIvYXJjaC94 ODYvdHJhcHMuYwppbmRleCAwYjNkODViLi4yZDMyMjJkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni90 cmFwcy5jCisrKyBiL2FyY2gveDg2L3RyYXBzLmMKQEAgLTk3LDkgKzk3LDkgQEAgRE9fRVJST1Io MTgsICJtYWNoaW5lIGNoZWNrIiwgbWFjaGluZV9jaGVjaykKIAogdm9pZCBwYWdlX3dhbGsodW5z aWduZWQgbG9uZyB2aXJ0X2FkZHJlc3MpCiB7Ci0gICAgICAgIHBnZW50cnlfdCAqdGFiID0gKHBn ZW50cnlfdCAqKXN0YXJ0X2luZm8ucHRfYmFzZSwgcGFnZTsKKyAgICAgICAgcGdlbnRyeV90ICp0 YWIgPSBwdF9iYXNlLCBwYWdlOwogICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIgPSB2aXJ0X2Fk ZHJlc3M7Ci0gICAgICAgIHByaW50aygiUGFnZXRhYmxlIHdhbGsgZnJvbSB2aXJ0ICVseCwgYmFz ZSAlbHg6XG4iLCB2aXJ0X2FkZHJlc3MsIHN0YXJ0X2luZm8ucHRfYmFzZSk7CisgICAgICAgIHBy aW50aygiUGFnZXRhYmxlIHdhbGsgZnJvbSB2aXJ0ICVseCwgYmFzZSAlcDpcbiIsIHZpcnRfYWRk cmVzcywgcHRfYmFzZSk7CiAgICAgCiAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQogICAgICAgICBw YWdlID0gdGFiW2w0X3RhYmxlX29mZnNldChhZGRyKV07CkBAIC0xMTksNyArMTE5LDcgQEAgdm9p ZCBwYWdlX3dhbGsodW5zaWduZWQgbG9uZyB2aXJ0X2FkZHJlc3MpCiB9CiAKIHN0YXRpYyBpbnQg aGFuZGxlX2Nvdyh1bnNpZ25lZCBsb25nIGFkZHIpIHsKLSAgICAgICAgcGdlbnRyeV90ICp0YWIg PSAocGdlbnRyeV90ICopc3RhcnRfaW5mby5wdF9iYXNlLCBwYWdlOworICAgICAgICBwZ2VudHJ5 X3QgKnRhYiA9IHB0X2Jhc2UsIHBhZ2U7CiAJdW5zaWduZWQgbG9uZyBuZXdfcGFnZTsKIAlpbnQg cmM7CiAKZGlmZiAtLWdpdCBhL2JhbGxvb24uYyBiL2JhbGxvb24uYwppbmRleCA2MDg0OTJhLi44 ZDJmMTUxIDEwMDY0NAotLS0gYS9iYWxsb29uLmMKKysrIGIvYmFsbG9vbi5jCkBAIC0yNSw2ICsy NSw3IEBACiAjaW5jbHVkZSA8bWluaS1vcy9iYWxsb29uLmg+CiAjaW5jbHVkZSA8bWluaS1vcy9l cnJuby5oPgogI2luY2x1ZGUgPG1pbmktb3MvbGliLmg+CisjaW5jbHVkZSA8bWluaS1vcy9wYXJh dmlydC5oPgogI2luY2x1ZGUgPHhlbi94ZW4uaD4KICNpbmNsdWRlIDx4ZW4vbWVtb3J5Lmg+CiAK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXJtL2FyY2hfbW0uaCBiL2luY2x1ZGUvYXJtL2FyY2hfbW0u aAppbmRleCBmNDY4NWQ4Li43OWQ5ZTA1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FybS9hcmNoX21t LmgKKysrIGIvaW5jbHVkZS9hcm0vYXJjaF9tbS5oCkBAIC0yOSw5ICsyOSw2IEBAIGV4dGVybiB1 aW50MzJfdCBwaHlzaWNhbF9hZGRyZXNzX29mZnNldDsJLyogQWRkIHRoaXMgdG8gYSB2aXJ0dWFs IGFkZHJlc3MgdG8gZ2V0CiAjZGVmaW5lIG1mbl90b192aXJ0KF9tZm4pICAgICAgICAgICh0b192 aXJ0KFBGTl9QSFlTKF9tZm4pKSkKICNkZWZpbmUgcGZuX3RvX3ZpcnQoX3BmbikgICAgICAgICAg KHRvX3ZpcnQoUEZOX1BIWVMoX3BmbikpKQogCi0jZGVmaW5lIG1mbl90b19wZm4oeCkgKHgpCi0j ZGVmaW5lIHBmbl90b19tZm4oeCkgKHgpCi0KICNkZWZpbmUgdmlydHVhbF90b19tZm4oX3ZpcnQp CSAgIHZpcnRfdG9fbWZuKF92aXJ0KQogCiAvLyBGSVhNRQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9i YWxsb29uLmggYi9pbmNsdWRlL2JhbGxvb24uaAppbmRleCBkODcxMGFkLi44Y2Q0MWFmIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2JhbGxvb24uaAorKysgYi9pbmNsdWRlL2JhbGxvb24uaApAQCAtMzks MTYgKzM5LDEzIEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX21lbV9wYWdlczsKIHZvaWQgZ2V0 X21heF9wYWdlcyh2b2lkKTsKIGludCBiYWxsb29uX3VwKHVuc2lnbmVkIGxvbmcgbl9wYWdlcyk7 CiAKLXZvaWQgYXJjaF9yZW1hcF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKTsKIHZvaWQgbW1f YWxsb2NfYml0bWFwX3JlbWFwKHZvaWQpOwotaW50IGFyY2hfZXhwYW5kX3AybSh1bnNpZ25lZCBs b25nIG1heF9wZm4pOwogdm9pZCBhcmNoX3Bmbl9hZGQodW5zaWduZWQgbG9uZyBwZm4sIHVuc2ln bmVkIGxvbmcgbWZuKTsKIGludCBjaGtfZnJlZV9wYWdlcyh1bnNpZ25lZCBsb25nIG5lZWRlZCk7 CiAKICNlbHNlIC8qIENPTkZJR19CQUxMT09OICovCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBnZXRf bWF4X3BhZ2VzKHZvaWQpIHsgfQotc3RhdGljIGlubGluZSB2b2lkIGFyY2hfcmVtYXBfcDJtKHVu c2lnbmVkIGxvbmcgbWF4X3BmbikgeyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgbW1fYWxsb2NfYml0 bWFwX3JlbWFwKHZvaWQpIHsgfQogc3RhdGljIGlubGluZSBpbnQgY2hrX2ZyZWVfcGFnZXModW5z aWduZWQgbG9uZyBuZWVkZWQpCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL21tLmggYi9pbmNsdWRl L21tLmgKaW5kZXggZmMzMTI4Yi4uOTUzNTcwYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tbS5oCisr KyBiL2luY2x1ZGUvbW0uaApAQCAtMzYsNiArMzYsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSA8eGVu L3hlbi5oPgogCisjaW5jbHVkZSA8bWluaS1vcy9wYXJhdmlydC5oPgogI2luY2x1ZGUgPG1pbmkt b3MvYXJjaF9saW1pdHMuaD4KICNpbmNsdWRlIDxtaW5pLW9zL2FyY2hfbW0uaD4KIApAQCAtNjcs NyArNjgsNiBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQgZ2V0X29yZGVyKHVuc2lnbmVkIGxvbmcg c2l6ZSkKIAogdm9pZCBhcmNoX2luaXRfZGVtYW5kX21hcHBpbmdfYXJlYSh2b2lkKTsKIHZvaWQg YXJjaF9pbml0X21tKHVuc2lnbmVkIGxvbmcqIHN0YXJ0X3Bmbl9wLCB1bnNpZ25lZCBsb25nKiBt YXhfcGZuX3ApOwotdm9pZCBhcmNoX2luaXRfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3Bmbl9wKTsK IAogdW5zaWduZWQgbG9uZyBhbGxvY2F0ZV9vbmRlbWFuZCh1bnNpZ25lZCBsb25nIG4sIHVuc2ln bmVkIGxvbmcgYWxpZ25tZW50KTsKIC8qIG1hcCBmW2kqc3RyaWRlXStpKmluY3JlbWVudCBmb3Ig aSBpbiAwLi5uLTEsIGFsaWduZWQgb24gYWxpZ25tZW50IHBhZ2VzICovCmRpZmYgLS1naXQgYS9p bmNsdWRlL3BhcmF2aXJ0LmggYi9pbmNsdWRlL3BhcmF2aXJ0LmgKaW5kZXggNzg1MmUxNi4uMTUw NzZiZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wYXJhdmlydC5oCisrKyBiL2luY2x1ZGUvcGFyYXZp cnQuaApAQCAtMjYsNyArMjYsNTUgQEAKIAogI2lmIGRlZmluZWQoQ09ORklHX1BBUkFWSVJUKQog CisjZGVmaW5lIG1mbl90b19wZm4oX21mbikgKG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nWyhfbWZu KV0pCisjZGVmaW5lIHBmbl90b19tZm4oX3BmbikgKHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nWyhf cGZuKV0pCisKKy8qIGZvciBQMk0gKi8KKyNpZmRlZiBfX3g4Nl82NF9fCisjZGVmaW5lIFAyTV9T SElGVCAgICAgICA5CiAjZWxzZQorI2RlZmluZSBQMk1fU0hJRlQgICAgICAgMTAKKyNlbmRpZgor I2RlZmluZSBQMk1fRU5UUklFUyAgICAgKDFVTCA8PCBQMk1fU0hJRlQpCisjZGVmaW5lIFAyTV9N QVNLICAgICAgICAoUDJNX0VOVFJJRVMgLSAxKQorI2RlZmluZSBMMV9QMk1fU0hJRlQgICAgUDJN X1NISUZUCisjZGVmaW5lIEwyX1AyTV9TSElGVCAgICAoMiAqIFAyTV9TSElGVCkKKyNkZWZpbmUg TDNfUDJNX1NISUZUICAgICgzICogUDJNX1NISUZUKQorI2RlZmluZSBMMV9QMk1fSURYKHBmbikg KChwZm4pICYgUDJNX01BU0spCisjZGVmaW5lIEwyX1AyTV9JRFgocGZuKSAoKChwZm4pID4+IEwx X1AyTV9TSElGVCkgJiBQMk1fTUFTSykKKyNkZWZpbmUgTDNfUDJNX0lEWChwZm4pICgoKHBmbikg Pj4gTDJfUDJNX1NISUZUKSAmIFAyTV9NQVNLKQorI2RlZmluZSBJTlZBTElEX1AyTV9FTlRSWSAo fjBVTCkKKwordm9pZCBwMm1fY2hrX3Bmbih1bnNpZ25lZCBsb25nIHBmbik7CisKK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyBwMm1fcGFnZXModW5zaWduZWQgbG9uZyBwYWdlcykKK3sKKyAg ICByZXR1cm4gKHBhZ2VzICsgUDJNX0VOVFJJRVMgLSAxKSA+PiBMMV9QMk1fU0hJRlQ7Cit9CisK K3ZvaWQgYXJjaF9pbml0X3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm5fcCk7CisKKyNlbHNlCisK KyNkZWZpbmUgbWZuX3RvX3BmbihfbWZuKSAoKHVuc2lnbmVkIGxvbmcpKF9tZm4pKQorI2RlZmlu ZSBwZm5fdG9fbWZuKF9wZm4pICgodW5zaWduZWQgbG9uZykoX3BmbikpCisKK3N0YXRpYyBpbmxp bmUgdm9pZCBhcmNoX2luaXRfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3Bmbl9wKSB7IH0KKworI2Vu ZGlmCisKKyNpZiBkZWZpbmVkKENPTkZJR19QQVJBVklSVCkgJiYgZGVmaW5lZChDT05GSUdfQkFM TE9PTikKKwordm9pZCBhcmNoX3JlbWFwX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pOworaW50 IGFyY2hfZXhwYW5kX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pOworCisjZWxzZQorCitzdGF0 aWMgaW5saW5lIHZvaWQgYXJjaF9yZW1hcF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKSB7IH0K K3N0YXRpYyBpbmxpbmUgaW50IGFyY2hfZXhwYW5kX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4p Cit7CisgICAgcmV0dXJuIDA7Cit9CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3g4 Ni9hcmNoX21tLmggYi9pbmNsdWRlL3g4Ni9hcmNoX21tLmgKaW5kZXggMmIxOGIzNC4uMjhhYjQw NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ODYvYXJjaF9tbS5oCisrKyBiL2luY2x1ZGUveDg2L2Fy Y2hfbW0uaApAQCAtMTg0LDMxICsxODQsNiBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgcGdlbnRy eV90OwogI2RlZmluZSBJT19QUk9UIChMMV9QUk9UKQogI2RlZmluZSBJT19QUk9UX05PQ0FDSEUg KEwxX1BST1QgfCBfUEFHRV9QQ0QpCiAKLS8qIGZvciBQMk0gKi8KLSNpZmRlZiBfX3g4Nl82NF9f Ci0jZGVmaW5lIFAyTV9TSElGVCAgICAgICA5Ci0jZWxzZQotI2RlZmluZSBQMk1fU0hJRlQgICAg ICAgMTAKLSNlbmRpZgotI2RlZmluZSBQMk1fRU5UUklFUyAgICAgKDFVTCA8PCBQMk1fU0hJRlQp Ci0jZGVmaW5lIFAyTV9NQVNLICAgICAgICAoUDJNX0VOVFJJRVMgLSAxKQotI2RlZmluZSBMMV9Q Mk1fU0hJRlQgICAgUDJNX1NISUZUCi0jZGVmaW5lIEwyX1AyTV9TSElGVCAgICAoMiAqIFAyTV9T SElGVCkKLSNkZWZpbmUgTDNfUDJNX1NISUZUICAgICgzICogUDJNX1NISUZUKQotI2RlZmluZSBM MV9QMk1fSURYKHBmbikgKChwZm4pICYgUDJNX01BU0spCi0jZGVmaW5lIEwyX1AyTV9JRFgocGZu KSAoKChwZm4pID4+IEwxX1AyTV9TSElGVCkgJiBQMk1fTUFTSykKLSNkZWZpbmUgTDNfUDJNX0lE WChwZm4pICgoKHBmbikgPj4gTDJfUDJNX1NISUZUKSAmIFAyTV9NQVNLKQotI2RlZmluZSBJTlZB TElEX1AyTV9FTlRSWSAofjBVTCkKLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLXZvaWQgcDJtX2No a19wZm4odW5zaWduZWQgbG9uZyBwZm4pOwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcg cDJtX3BhZ2VzKHVuc2lnbmVkIGxvbmcgcGFnZXMpCi17Ci0gICAgcmV0dXJuIChwYWdlcyArIFAy TV9FTlRSSUVTIC0gMSkgPj4gTDFfUDJNX1NISUZUOwotfQotI2VuZGlmCi0KICNpbmNsdWRlICJh cmNoX2xpbWl0cy5oIgogI2RlZmluZSBQQUdFX1NJWkUgICAgICAgX19QQUdFX1NJWkUKICNkZWZp bmUgUEFHRV9TSElGVCAgICAgIF9fUEFHRV9TSElGVApAQCAtMjMyLDEwICsyMDcsMTQgQEAgdHlw ZWRlZiB1bnNpZ25lZCBsb25nIHBhZGRyX3Q7CiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbWFkZHJf dDsKICNlbmRpZgogCitleHRlcm4gcGdlbnRyeV90ICpwdF9iYXNlOworI2lmZGVmIENPTkZJR19Q QVJBVklSVAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKnBoeXNfdG9fbWFjaGluZV9tYXBwaW5nOwor I2Vsc2UKK2V4dGVybiBwZ2VudHJ5X3QgcGFnZV90YWJsZV9iYXNlW107CisjZW5kaWYKIGV4dGVy biBjaGFyIF90ZXh0LCBfZXRleHQsIF9lcm9kYXRhLCBfZWRhdGEsIF9lbmQ7CiBleHRlcm4gdW5z aWduZWQgbG9uZyBtZm5femVybzsKLSNkZWZpbmUgcGZuX3RvX21mbihfcGZuKSAocGh5c190b19t YWNoaW5lX21hcHBpbmdbKF9wZm4pXSkKIHN0YXRpYyBfX2lubGluZV9fIG1hZGRyX3QgcGh5c190 b19tYWNoaW5lKHBhZGRyX3QgcGh5cykKIHsKIAltYWRkcl90IG1hY2hpbmUgPSBwZm5fdG9fbWZu KHBoeXMgPj4gUEFHRV9TSElGVCk7CkBAIC0yNDMsNyArMjIyLDYgQEAgc3RhdGljIF9faW5saW5l X18gbWFkZHJfdCBwaHlzX3RvX21hY2hpbmUocGFkZHJfdCBwaHlzKQogCXJldHVybiBtYWNoaW5l OwogfQogCi0jZGVmaW5lIG1mbl90b19wZm4oX21mbikgKG1hY2hpbmVfdG9fcGh5c19tYXBwaW5n WyhfbWZuKV0pCiBzdGF0aWMgX19pbmxpbmVfXyBwYWRkcl90IG1hY2hpbmVfdG9fcGh5cyhtYWRk cl90IG1hY2hpbmUpCiB7CiAJcGFkZHJfdCBwaHlzID0gbWZuX3RvX3BmbihtYWNoaW5lID4+IFBB R0VfU0hJRlQpOwpAQCAtMjY3LDEzICsyNDUsMTAgQEAgc3RhdGljIF9faW5saW5lX18gcGFkZHJf dCBtYWNoaW5lX3RvX3BoeXMobWFkZHJfdCBtYWNoaW5lKQogI2RlZmluZSBwdGVfdG9fbWZuKF9w dGUpICAgICAgICAgICAoKChfcHRlKSAmIChQQUREUl9NQVNLJlBBR0VfTUFTSykpID4+IEwxX1BB R0VUQUJMRV9TSElGVCkKICNkZWZpbmUgcHRlX3RvX3ZpcnQoX3B0ZSkgICAgICAgICAgdG9fdmly dChtZm5fdG9fcGZuKHB0ZV90b19tZm4oX3B0ZSkpIDw8IFBBR0VfU0hJRlQpCiAKLQotI2RlZmlu ZSBQVF9CQVNFCQkJICAgKChwZ2VudHJ5X3QgKilzdGFydF9pbmZvLnB0X2Jhc2UpCi0KICNpZmRl ZiBfX3g4Nl82NF9fCi0jZGVmaW5lIHZpcnR1YWxfdG9fbDMoX3ZpcnQpCSAgICgocGdlbnRyeV90 ICopcHRlX3RvX3ZpcnQoUFRfQkFTRVtsNF90YWJsZV9vZmZzZXQoX3ZpcnQpXSkpCisjZGVmaW5l IHZpcnR1YWxfdG9fbDMoX3ZpcnQpCSAgICgocGdlbnRyeV90ICopcHRlX3RvX3ZpcnQocHRfYmFz ZVtsNF90YWJsZV9vZmZzZXQoX3ZpcnQpXSkpCiAjZWxzZQotI2RlZmluZSB2aXJ0dWFsX3RvX2wz KF92aXJ0KQkgICBQVF9CQVNFCisjZGVmaW5lIHZpcnR1YWxfdG9fbDMoX3ZpcnQpCSAgIHB0X2Jh c2UKICNlbmRpZgogCiAjZGVmaW5lIHZpcnR1YWxfdG9fbDIoX3ZpcnQpCSAgICh7IFwKQEAgLTI5 Nyw2ICsyNzIsNyBAQCBzdGF0aWMgX19pbmxpbmVfXyBwYWRkcl90IG1hY2hpbmVfdG9fcGh5cyht YWRkcl90IG1hY2hpbmUpCiAjZGVmaW5lIGRvX21hcF96ZXJvKHN0YXJ0LCBuKSBkb19tYXBfZnJh bWVzKHN0YXJ0LCAmbWZuX3plcm8sIG4sIDAsIDAsIERPTUlEX1NFTEYsIE5VTEwsIEwxX1BST1Rf Uk8pCiAKIHBnZW50cnlfdCAqbmVlZF9wZ3QodW5zaWduZWQgbG9uZyBhZGRyKTsKK3ZvaWQgYXJj aF9tbV9wcmVpbml0KHZvaWQgKnApOwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94 ZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl8z Mi5oCmluZGV4IDE1MDQxOTEuLjYzMzk3MjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2FyY2gt eDg2L3hlbi14ODZfMzIuaAorKysgYi9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzMyLmgK QEAgLTU1LDYgKzU1LDcgQEAKICNkZWZpbmUgRkxBVF9VU0VSX0RTICAgIEZMQVRfUklORzNfRFMK ICNkZWZpbmUgRkxBVF9VU0VSX1NTICAgIEZMQVRfUklORzNfU1MKIAorI2lmZGVmIENPTkZJR19Q QVJBVklSVAogI2RlZmluZSBfX0hZUEVSVklTT1JfVklSVF9TVEFSVF9QQUUgICAgMHhGNTgwMDAw MAogI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSAgICAgMHhGNTgwMDAwMAogI2Rl ZmluZSBfX01BQ0gyUEhZU19WSVJUX0VORF9QQUUgICAgICAgMHhGNjgwMDAwMApAQCAtOTAsNiAr OTEsNyBAQAogI2lmbmRlZiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZwogI2RlZmluZSBtYWNoaW5l X3RvX3BoeXNfbWFwcGluZyAoKHVuc2lnbmVkIGxvbmcgKilNQUNIMlBIWVNfVklSVF9TVEFSVCkK ICNlbmRpZgorI2VuZGlmCiAKIC8qIDMyLS82NC1iaXQgaW52YXJpYWJpbGl0eSBmb3IgY29udHJv bCBpbnRlcmZhY2VzIChkb21jdGwvc3lzY3RsKS4gKi8KICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8 IGRlZmluZWQoX19YRU5fVE9PTFNfXykKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gteDg2 L3hlbi14ODZfNjQuaCBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfNjQuaAppbmRleCAx YzRlMTU5Li4yYzAwMTExIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2 XzY0LmgKKysrIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oCkBAIC03MCw2ICs3 MCw3IEBACiAjZGVmaW5lIEZMQVRfVVNFUl9TUzMyIEZMQVRfUklORzNfU1MzMgogI2RlZmluZSBG TEFUX1VTRVJfU1MgICBGTEFUX1VTRVJfU1M2NAogCisjaWZkZWYgQ09ORklHX1BBUkFWSVJUCiAj ZGVmaW5lIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUIDB4RkZGRjgwMDAwMDAwMDAwMAogI2RlZmlu ZSBfX0hZUEVSVklTT1JfVklSVF9FTkQgICAweEZGRkY4ODAwMDAwMDAwMDAKICNkZWZpbmUgX19N QUNIMlBIWVNfVklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCkBAIC04Niw2ICs4Nyw3IEBA CiAjaWZuZGVmIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nCiAjZGVmaW5lIG1hY2hpbmVfdG9fcGh5 c19tYXBwaW5nICgodW5zaWduZWQgbG9uZyAqKUhZUEVSVklTT1JfVklSVF9TVEFSVCkKICNlbmRp ZgorI2VuZGlmCiAKIC8qCiAgKiBpbnQgSFlQRVJWSVNPUl9zZXRfc2VnbWVudF9iYXNlKHVuc2ln bmVkIGludCB3aGljaCwgdW5zaWduZWQgbG9uZyBiYXNlKQpkaWZmIC0tZ2l0IGEvbW0uYyBiL21t LmMKaW5kZXggY2EwYjliZS4uYzc2YmU3ZiAxMDA2NDQKLS0tIGEvbW0uYworKysgYi9tbS5jCkBA IC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgogI2luY2x1ZGUgPG1pbmkt b3MvbW0uaD4KICNpbmNsdWRlIDxtaW5pLW9zL2JhbGxvb24uaD4KKyNpbmNsdWRlIDxtaW5pLW9z L3BhcmF2aXJ0Lmg+CiAjaW5jbHVkZSA8bWluaS1vcy90eXBlcy5oPgogI2luY2x1ZGUgPG1pbmkt b3MvbGliLmg+CiAjaW5jbHVkZSA8bWluaS1vcy94bWFsbG9jLmg+Ci0tIAoyLjYuNgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=