From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH 3/4] tools/xenalyze: Get rid of extraneous data structure Date: Mon, 8 Aug 2016 10:54:30 +0100 Message-ID: <1470650071-1157-3-git-send-email-george.dunlap@citrix.com> References: <1470650071-1157-1-git-send-email-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bWhHK-0008W5-F4 for xen-devel@lists.xenproject.org; Mon, 08 Aug 2016 09:55:26 +0000 In-Reply-To: <1470650071-1157-1-git-send-email-george.dunlap@citrix.com> 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: Ian Jackson , Dario Faggioli , Wei Liu , George Dunlap , Anshul Makkar List-Id: xen-devel@lists.xenproject.org VGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIGV2ZW50X2N5Y2xlX3N1bW1hcnkgYW5kIGN5Y2xl X3N1bW1hcnkgd2FzCnRoYXQgdGhlIGZvcm1lciBoYXMgYSBzZXBhcmF0ZSBjb3VudGVyIGZvciAi ZXZlbnRzIiB3aGljaCBoYWQKemVyby1jeWNsZSBldmVudHMuICBCdXQgYSBsb3Qgb2YgdGhlIGNv ZGUgZGVhbGluZyB3aXRoIHRoZW0gaGFkIHRvIGJlCmR1cGxpY2F0ZWQgd2l0aCBzbGlnaHRseSBk aWZmZXJlbnQgZmllbGRzLgoKUmVtb3ZlIGV2ZW50X2N5Y2xlX3N1bW1hcnksIGFkZCBhbiAiZXZl bnRfY291bnQiIGZpZWxkIHRvCmN5Y2xlX3N5bW1hcnksIGFuZCB1c2UgY3ljbGVfc3VtbWFyeSBm b3IgZXZlcnl0aGluZy4KClNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5s YXBAY2l0cml4LmNvbT4KLS0tCkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AY2l0cml4LmNv bT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBEYXJpbyBGYWdnaW9saSA8 ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KQ0M6IEFuc2h1bCBNYWtrYXIgPGFuc2h1bC5tYWtr YXJAY2l0cml4LmNvbT4KLS0tCiB0b29scy94ZW50cmFjZS94ZW5hbHl6ZS5jIHwgMjA4ICsrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA4MSBpbnNlcnRpb25zKCspLCAxMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMv eGVudHJhY2UveGVuYWx5emUuYyBiL3Rvb2xzL3hlbnRyYWNlL3hlbmFseXplLmMKaW5kZXggZDQ1 NWE1Mi4uNDU1Y2JkZiAxMDA2NDQKLS0tIGEvdG9vbHMveGVudHJhY2UveGVuYWx5emUuYworKysg Yi90b29scy94ZW50cmFjZS94ZW5hbHl6ZS5jCkBAIC0yNzQsMTUgKzI3NCw4IEBAIHN0cnVjdCBp bnRlcnZhbF9lbGVtZW50IHsKICAgICBsb25nIGxvbmcgaW5zdHJ1Y3Rpb25zOwogfTsKIAotc3Ry dWN0IGV2ZW50X2N5Y2xlX3N1bW1hcnkgewotICAgIGludCBjb3VudCwgY3ljbGVzX2NvdW50Owot ICAgIGxvbmcgbG9uZyBjeWNsZXM7Ci0gICAgbG9uZyBsb25nICpjeWNsZXNfc2FtcGxlOwotICAg IHN0cnVjdCBpbnRlcnZhbF9lbGVtZW50IGludGVydmFsOwotfTsKLQogc3RydWN0IGN5Y2xlX3N1 bW1hcnkgewotICAgIGludCBjb3VudDsKKyAgICBpbnQgZXZlbnRfY291bnQsIGNvdW50OwogICAg IHVuc2lnbmVkIGxvbmcgbG9uZyBjeWNsZXM7CiAgICAgbG9uZyBsb25nICpzYW1wbGU7CiAgICAg c3RydWN0IGludGVydmFsX2VsZW1lbnQgaW50ZXJ2YWw7CkBAIC0zOTcsNyArMzkwLDcgQEAgZW51 bSB7CiBzdHJ1Y3QgZWlwX2xpc3Rfc3RydWN0IHsKICAgICBzdHJ1Y3QgZWlwX2xpc3Rfc3RydWN0 ICpuZXh0OwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBlaXA7Ci0gICAgc3RydWN0IGV2ZW50X2N5 Y2xlX3N1bW1hcnkgc3VtbWFyeTsKKyAgICBzdHJ1Y3QgY3ljbGVfc3VtbWFyeSBzdW1tYXJ5Owog ICAgIGludCB0eXBlOwogICAgIHZvaWQgKiBleHRyYTsKIH07CkBAIC0xMzE0LDIxICsxMzA3LDIx IEBAIHN0cnVjdCBodm1fZGF0YSB7CiAKICAgICAvKiBJbmZvcm1hdGlvbiBhYm91dCBwYXJ0aWN1 bGFyIGV4aXQgcmVhc29ucyAqLwogICAgIHN0cnVjdCB7Ci0gICAgICAgIHN0cnVjdCBldmVudF9j eWNsZV9zdW1tYXJ5IGV4aXRfcmVhc29uW0hWTV9FWElUX1JFQVNPTl9NQVhdOworICAgICAgICBz dHJ1Y3QgY3ljbGVfc3VtbWFyeSBleGl0X3JlYXNvbltIVk1fRVhJVF9SRUFTT05fTUFYXTsKICAg ICAgICAgaW50IGV4dGludFtFWFRFUk5BTF9JTlRFUlJVUFRfTUFYKzFdOwogICAgICAgICBpbnQg KmV4dGludF9oaXN0b2dyYW07Ci0gICAgICAgIHN0cnVjdCBldmVudF9jeWNsZV9zdW1tYXJ5IHRy YXBbSFZNX1RSQVBfTUFYXTsKLSAgICAgICAgc3RydWN0IGV2ZW50X2N5Y2xlX3N1bW1hcnkgcGZf eGVuW1BGX1hFTl9NQVhdOwotICAgICAgICBzdHJ1Y3QgZXZlbnRfY3ljbGVfc3VtbWFyeSBwZl94 ZW5fZW11bFtQRl9YRU5fRU1VTF9NQVhdOwotICAgICAgICBzdHJ1Y3QgZXZlbnRfY3ljbGVfc3Vt bWFyeSBwZl94ZW5fZW11bF9lYXJseV91bnNoYWRvd1s1XTsKLSAgICAgICAgc3RydWN0IGV2ZW50 X2N5Y2xlX3N1bW1hcnkgcGZfeGVuX25vbl9lbXVsW1BGX1hFTl9OT05fRU1VTF9NQVhdOwotICAg ICAgICBzdHJ1Y3QgZXZlbnRfY3ljbGVfc3VtbWFyeSBwZl94ZW5fZml4dXBbUEZfWEVOX0ZJWFVQ X01BWF07Ci0gICAgICAgIHN0cnVjdCBldmVudF9jeWNsZV9zdW1tYXJ5IHBmX3hlbl9maXh1cF91 bnN5bmNfcmVzeW5jW1BGX1hFTl9GSVhVUF9VTlNZTkNfUkVTWU5DX01BWCsxXTsKLSAgICAgICAg c3RydWN0IGV2ZW50X2N5Y2xlX3N1bW1hcnkgY3Jfd3JpdGVbQ1JfTUFYXTsKLSAgICAgICAgc3Ry dWN0IGV2ZW50X2N5Y2xlX3N1bW1hcnkgY3IzX3dyaXRlX3Jlc3luY3NbUkVTWU5DU19NQVgrMV07 Ci0gICAgICAgIHN0cnVjdCBldmVudF9jeWNsZV9zdW1tYXJ5IHZtY2FsbFtIWVBFUkNBTExfTUFY KzFdOwotICAgICAgICBzdHJ1Y3QgZXZlbnRfY3ljbGVfc3VtbWFyeSBnZW5lcmljW0hWTV9FVkVO VF9IQU5ETEVSX01BWF07Ci0gICAgICAgIHN0cnVjdCBldmVudF9jeWNsZV9zdW1tYXJ5IG1taW9b Tk9OUEZfTU1JT19NQVhdOworICAgICAgICBzdHJ1Y3QgY3ljbGVfc3VtbWFyeSB0cmFwW0hWTV9U UkFQX01BWF07CisgICAgICAgIHN0cnVjdCBjeWNsZV9zdW1tYXJ5IHBmX3hlbltQRl9YRU5fTUFY XTsKKyAgICAgICAgc3RydWN0IGN5Y2xlX3N1bW1hcnkgcGZfeGVuX2VtdWxbUEZfWEVOX0VNVUxf TUFYXTsKKyAgICAgICAgc3RydWN0IGN5Y2xlX3N1bW1hcnkgcGZfeGVuX2VtdWxfZWFybHlfdW5z aGFkb3dbNV07CisgICAgICAgIHN0cnVjdCBjeWNsZV9zdW1tYXJ5IHBmX3hlbl9ub25fZW11bFtQ Rl9YRU5fTk9OX0VNVUxfTUFYXTsKKyAgICAgICAgc3RydWN0IGN5Y2xlX3N1bW1hcnkgcGZfeGVu X2ZpeHVwW1BGX1hFTl9GSVhVUF9NQVhdOworICAgICAgICBzdHJ1Y3QgY3ljbGVfc3VtbWFyeSBw Zl94ZW5fZml4dXBfdW5zeW5jX3Jlc3luY1tQRl9YRU5fRklYVVBfVU5TWU5DX1JFU1lOQ19NQVgr MV07CisgICAgICAgIHN0cnVjdCBjeWNsZV9zdW1tYXJ5IGNyX3dyaXRlW0NSX01BWF07CisgICAg ICAgIHN0cnVjdCBjeWNsZV9zdW1tYXJ5IGNyM193cml0ZV9yZXN5bmNzW1JFU1lOQ1NfTUFYKzFd OworICAgICAgICBzdHJ1Y3QgY3ljbGVfc3VtbWFyeSB2bWNhbGxbSFlQRVJDQUxMX01BWCsxXTsK KyAgICAgICAgc3RydWN0IGN5Y2xlX3N1bW1hcnkgZ2VuZXJpY1tIVk1fRVZFTlRfSEFORExFUl9N QVhdOworICAgICAgICBzdHJ1Y3QgY3ljbGVfc3VtbWFyeSBtbWlvW05PTlBGX01NSU9fTUFYXTsK ICAgICAgICAgc3RydWN0IGh2bV9naV9zdHJ1Y3QgewogICAgICAgICAgICAgaW50IGNvdW50Owog ICAgICAgICAgICAgc3RydWN0IGN5Y2xlX3N1bW1hcnkgcnVudGltZVtHVUVTVF9JTlRFUlJVUFRf Q0FTRV9NQVhdOwpAQCAtMTMzNyw3ICsxMzMwLDcgQEAgc3RydWN0IGh2bV9kYXRhIHsKICAgICAg ICAgICAgIHRzY190IHN0YXJ0X3RzYzsKICAgICAgICAgfSBndWVzdF9pbnRlcnJ1cHRbR1VFU1Rf SU5URVJSVVBUX01BWCArIDFdOwogICAgICAgICAvKiBJUEkgTGF0ZW5jeSAqLwotICAgICAgICBz dHJ1Y3QgZXZlbnRfY3ljbGVfc3VtbWFyeSBpcGlfbGF0ZW5jeTsKKyAgICAgICAgc3RydWN0IGN5 Y2xlX3N1bW1hcnkgaXBpX2xhdGVuY3k7CiAgICAgICAgIGludCBpcGlfY291bnRbMjU2XTsKICAg ICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIHN0cnVjdCBpb19hZGRyZXNzICptbWlvLCAqcGlv OwpAQCAtMjIwMCw2MiArMjE5MywyOCBAQCBzdGF0aWMgaW5saW5lIGRvdWJsZSBfX2N5Y2xlc19w ZXJjZW50KGxvbmcgbG9uZyBjeWNsZXMsIGxvbmcgbG9uZyB0b3RhbCkgewogICAgIHJldHVybiAo ZG91YmxlKShjeWNsZXMqMTAwKSAvIHRvdGFsOwogfQogCi1zdGF0aWMgaW5saW5lIGRvdWJsZSBf X3N1bW1hcnlfcGVyY2VudChzdHJ1Y3QgZXZlbnRfY3ljbGVfc3VtbWFyeSAqcywKK3N0YXRpYyBp bmxpbmUgZG91YmxlIF9fc3VtbWFyeV9wZXJjZW50KHN0cnVjdCBjeWNsZV9zdW1tYXJ5ICpzLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGN5Y2xlX2ZyYW1l d29yayAqZikgewogICAgIHJldHVybiBfX2N5Y2xlc19wZXJjZW50KHMtPmN5Y2xlcywgZi0+dG90 YWxfY3ljbGVzKTsKIH0KIAotc3RhdGljIGlubGluZSBkb3VibGUgc3VtbWFyeV9wZXJjZW50X2ds b2JhbChzdHJ1Y3QgZXZlbnRfY3ljbGVfc3VtbWFyeSAqcykgeworc3RhdGljIGlubGluZSBkb3Vi bGUgc3VtbWFyeV9wZXJjZW50X2dsb2JhbChzdHJ1Y3QgY3ljbGVfc3VtbWFyeSAqcykgewogICAg IHJldHVybiBfX3N1bW1hcnlfcGVyY2VudChzLCAmUC5mKTsKIH0KIAotc3RhdGljIGlubGluZSB2 b2lkIHVwZGF0ZV9zdW1tYXJ5KHN0cnVjdCBldmVudF9jeWNsZV9zdW1tYXJ5ICpzLCBsb25nIGxv bmcgYykgewotLyogV2UgZG9uJ3Qga25vdyBhaGVhZCBvZiB0aW1lIGhvdyBtYW55IHNhbXBsZXMg dGhlcmUgYXJlLCBhbmQgd29ya2luZwotICogd2l0aCBkeW5hbWljIHN0dWZmIGlzIGEgcGFpbiwg YW5kIHVubmVjZXNzYXJ5LiAgVGhpcyBhbGdvcml0aG0gd2lsbAotICogZ2VuZXJhdGUgYSBzYW1w bGUgc2V0IHRoYXQgYXBwcm94aW1hdGVzIGFuIGV2ZW4gc2FtcGxlLiAgV2UgY2FuCi0gKiB0aGVu IHRha2UgdGhlIHBlcmNlbnRpbGVzIG9uIHRoaXMsIGFuZCBnZXQgYW4gYXBwcm94aW1hdGUgdmFs dWUuICovCi0gICAgaWYoYykgewotICAgICAgICBpZihvcHQuc2FtcGxlX3NpemUpIHsKLSAgICAg ICAgICAgIGludCBsYXAgPSAocy0+Y3ljbGVzX2NvdW50L29wdC5zYW1wbGVfc2l6ZSkrMSwKLSAg ICAgICAgICAgICAgICBpbmRleCA9cy0+Y3ljbGVzX2NvdW50ICUgb3B0LnNhbXBsZV9zaXplOwot ICAgICAgICAgICAgaWYoKGluZGV4IC0gKGxhcC8zKSklbGFwID09IDApIHsKLSAgICAgICAgICAg ICAgICBpZighcy0+Y3ljbGVzX3NhbXBsZSkgewotICAgICAgICAgICAgICAgICAgICBzLT5jeWNs ZXNfc2FtcGxlID0gbWFsbG9jKHNpemVvZigqcy0+Y3ljbGVzX3NhbXBsZSkgKiBvcHQuc2FtcGxl X3NpemUpOwotICAgICAgICAgICAgICAgICAgICBpZighcy0+Y3ljbGVzX3NhbXBsZSkgewotICAg ICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogbWFsbG9jIGZhaWxlZCFc biIsIF9fZnVuY19fKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKEVSUl9TWVNURU0s IE5VTEwpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgIHMtPmN5Y2xlc19zYW1wbGVbaW5kZXhdPWM7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgIH0KLSAgICAgICAgcy0+Y3ljbGVzX2NvdW50Kys7Ci0gICAgICAgIHMtPmN5Y2xlcyArPSBj OwotCi0gICAgICAgIHMtPmludGVydmFsLmNvdW50Kys7Ci0gICAgICAgIHMtPmludGVydmFsLmN5 Y2xlcyArPSBjOwotICAgIH0KLSAgICBzLT5jb3VudCsrOwotfQotCiBzdGF0aWMgaW5saW5lIHZv aWQgdXBkYXRlX2N5Y2xlcyhzdHJ1Y3QgY3ljbGVfc3VtbWFyeSAqcywgbG9uZyBsb25nIGMpIHsK IC8qIFdlIGRvbid0IGtub3cgYWhlYWQgb2YgdGltZSBob3cgbWFueSBzYW1wbGVzIHRoZXJlIGFy ZSwgYW5kIHdvcmtpbmcKICAqIHdpdGggZHluYW1pYyBzdHVmZiBpcyBhIHBhaW4sIGFuZCB1bm5l Y2Vzc2FyeS4gIFRoaXMgYWxnb3JpdGhtIHdpbGwKICAqIGdlbmVyYXRlIGEgc2FtcGxlIHNldCB0 aGF0IGFwcHJveGltYXRlcyBhbiBldmVuIHNhbXBsZS4gIFdlIGNhbgogICogdGhlbiB0YWtlIHRo ZSBwZXJjZW50aWxlcyBvbiB0aGlzLCBhbmQgZ2V0IGFuIGFwcHJveGltYXRlIHZhbHVlLiAqLwot ICAgIGludCBsYXAsIGluZGV4OworICAgIHMtPmV2ZW50X2NvdW50Kys7CiAKLSAgICBpZiAoIGMg PT0gMCApCi0gICAgewotICAgICAgICBmcHJpbnRmKHdhcm4sICIlczogY3ljbGVzIDAhIE5vdCB1 cGRhdGluZy4uLlxuIiwKLSAgICAgICAgICAgICAgICBfX2Z1bmNfXyk7CisgICAgaWYgKCFjKQog ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCBvcHQuc2FtcGxlX3NpemUgKSB7Ci0g ICAgICAgIGxhcCA9IChzLT5jb3VudC9vcHQuc2FtcGxlX3NpemUpKzE7Ci0gICAgICAgIGluZGV4 ID1zLT5jb3VudCAlIG9wdC5zYW1wbGVfc2l6ZTsKLQorICAgICAgICAgICAgCisgICAgaWYob3B0 LnNhbXBsZV9zaXplKSB7CisgICAgICAgIGludCBsYXAgPSAocy0+Y291bnQvb3B0LnNhbXBsZV9z aXplKSsxLAorICAgICAgICAgICAgaW5kZXggPXMtPmNvdW50ICUgb3B0LnNhbXBsZV9zaXplOwog ICAgICAgICBpZigoaW5kZXggLSAobGFwLzMpKSVsYXAgPT0gMCkgewogICAgICAgICAgICAgaWYo IXMtPnNhbXBsZSkgewogICAgICAgICAgICAgICAgIHMtPnNhbXBsZSA9IG1hbGxvYyhzaXplb2Yo KnMtPnNhbXBsZSkgKiBvcHQuc2FtcGxlX3NpemUpOwpAQCAtMjI2NCwxOSArMjIyMywxNCBAQCBz dGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX2N5Y2xlcyhzdHJ1Y3QgY3ljbGVfc3VtbWFyeSAqcywg bG9uZyBsb25nIGMpIHsKICAgICAgICAgICAgICAgICAgICAgZXJyb3IoRVJSX1NZU1RFTSwgTlVM TCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgcy0+c2Ft cGxlW2luZGV4XSA9IGM7CisgICAgICAgICAgICBzLT5zYW1wbGVbaW5kZXhdPWM7CiAgICAgICAg IH0KICAgICB9Ci0KLSAgICBpZihjID4gMCkgewotICAgICAgICBzLT5jeWNsZXMgKz0gYzsKLSAg ICAgICAgcy0+aW50ZXJ2YWwuY3ljbGVzICs9IGM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcy0+ Y3ljbGVzICs9IC1jOwotICAgICAgICBzLT5pbnRlcnZhbC5jeWNsZXMgKz0gLWM7Ci0gICAgfQog ICAgIHMtPmNvdW50Kys7CisgICAgcy0+Y3ljbGVzICs9IGM7CisgICAgCiAgICAgcy0+aW50ZXJ2 YWwuY291bnQrKzsKKyAgICBzLT5pbnRlcnZhbC5jeWNsZXMgKz0gYzsKIH0KIAogc3RhdGljIGlu bGluZSB2b2lkIGNsZWFyX2ludGVydmFsX2N5Y2xlcyhzdHJ1Y3QgaW50ZXJ2YWxfZWxlbWVudCAq ZSkgewpAQCAtMjM3NywyOSArMjMzMSwyOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHJpbnRfY3lj bGVfc3VtbWFyeShzdHJ1Y3QgY3ljbGVfc3VtbWFyeSAqcywgY2hhciAqcCkgewogCiAjZGVmaW5l IFBSSU5UX1NVTU1BUlkoX3MsIF9wLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCiAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmKChfcykuY291bnQpIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlm KChfcykuZXZlbnRfY291bnQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCiAgICAgICAgICAgICBpZiAoIG9wdC5zYW1wbGVfc2l6ZSApIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBs b25nIHA1LCBwNTAsIHA5NTsgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAg ICAgaW50IGRhdGFfc2l6ZT0oX3MpLmN5Y2xlc19jb3VudDsgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICAgICAgaW50IGRhdGFfc2l6ZT0oX3MpLmNvdW50OyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgaWYoZGF0YV9zaXplID4gb3B0 LnNhbXBsZV9zaXplKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAg ICAgIGRhdGFfc2l6ZT1vcHQuc2FtcGxlX3NpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgICAgICAgICAgICAgcDUwPXBlcmNlbnRpbGUoKF9zKS5jeWNsZXNfc2FtcGxlLCBkYXRh X3NpemUsIDUwKTsgICAgICBcCi0gICAgICAgICAgICAgICAgcDU9cGVyY2VudGlsZSgoX3MpLmN5 Y2xlc19zYW1wbGUsIGRhdGFfc2l6ZSwgNSk7ICAgICAgICBcCi0gICAgICAgICAgICAgICAgcDk1 PXBlcmNlbnRpbGUoKF9zKS5jeWNsZXNfc2FtcGxlLCBkYXRhX3NpemUsIDk1KTsgICAgICBcCisg ICAgICAgICAgICAgICAgcDUwPXBlcmNlbnRpbGUoKF9zKS5zYW1wbGUsIGRhdGFfc2l6ZSwgNTAp OyAgICAgIFwKKyAgICAgICAgICAgICAgICBwNT1wZXJjZW50aWxlKChfcykuc2FtcGxlLCBkYXRh X3NpemUsIDUpOyAgICAgICAgXAorICAgICAgICAgICAgICAgIHA5NT1wZXJjZW50aWxlKChfcyku c2FtcGxlLCBkYXRhX3NpemUsIDk1KTsgICAgICBcCiAgICAgICAgICAgICAgICAgcHJpbnRmKF9w KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg ICAgICAgICAgcHJpbnRmKCIgJTdkICU1LjJsZnMgJTUuMmxmJSUgJTVsbGQgY3ljIHslNWxsZHwl NWxsZHwlNWxsZH1cbiIsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgKF9zKS5jb3VudCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgKF9zKS5ldmVudF9jb3VudCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgICAgICAgICAgICAgICAgKChkb3VibGUpKF9zKS5jeWNsZXMpL29wdC5jcHVfaHosICAg ICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeV9wZXJjZW50X2ds b2JhbCgmKF9zKSksICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAg KF9zKS5jeWNsZXNfY291bnQgPyAoX3MpLmN5Y2xlcyAvIChfcykuY3ljbGVzX2NvdW50OjAsIFwK KyAgICAgICAgICAgICAgICAgICAgICAgKF9zKS5jb3VudCA/IChfcykuY3ljbGVzIC8gKF9zKS5j b3VudDowLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgcDUsIHA1MCwgcDk1KTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIH0gZWxzZSB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgICAgICAgICBwcmludGYoX3ApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICBwcmludGYoIiAlN2QgJTUuMmxmcyAlNS4y bGYlJSAlNWxsZCBjeWNcbiIsICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAg KF9zKS5jb3VudCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgKF9zKS5ldmVudF9jb3VudCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgKChkb3VibGUpKF9zKS5jeWNsZXMp L29wdC5jcHVfaHosICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgc3Vt bWFyeV9wZXJjZW50X2dsb2JhbCgmKF9zKSksICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg ICAgICAgICAgICAgICAgKF9zKS5jeWNsZXNfY291bnQgPyAoX3MpLmN5Y2xlcyAvIChfcykuY3lj bGVzX2NvdW50OjApOyBcCisgICAgICAgICAgICAgICAgICAgICAgIChfcykuY291bnQgPyAoX3Mp LmN5Y2xlcyAvIChfcykuY291bnQ6MCk7ICAgICAgICBcCiAgICAgICAgICAgICB9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgfSB3aGlsZSgwKQpAQCAtMjg1NSw3ICsyODA5LDcgQEAgdm9pZCB1 cGRhdGVfZWlwKHN0cnVjdCBlaXBfbGlzdF9zdHJ1Y3QgKipoZWFkLCB1bnNpZ25lZCBsb25nIGxv bmcgZWlwLAogICAgICAgICBlaXBfbGlzdF90eXBlW3R5cGVdLnVwZGF0ZShwLCBleHRyYSk7CiAg ICAgfQogCi0gICAgdXBkYXRlX3N1bW1hcnkoJnAtPnN1bW1hcnksIGN5Y2xlcyk7CisgICAgdXBk YXRlX2N5Y2xlcygmcC0+c3VtbWFyeSwgY3ljbGVzKTsKIH0KIAogaW50IGVpcF9jb21wYXJlKGNv bnN0IHZvaWQgKl9hLCBjb25zdCB2b2lkICpfYikgewpAQCAtMzMwNiw3ICszMjYwLDcgQEAgdm9p ZCBodm1fcGZfeGVuX3Bvc3Rwcm9jZXNzKHN0cnVjdCBodm1fZGF0YSAqaCkgewogCiAgICAgaWYo b3B0LnN1bW1hcnlfaW5mbykgewogICAgICAgICBpZihlLT5wZl9jYXNlKQotICAgICAgICAgICAg dXBkYXRlX3N1bW1hcnkoJmgtPnN1bW1hcnkucGZfeGVuW2UtPnBmX2Nhc2VdLAorICAgICAgICAg ICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5bZS0+cGZfY2FzZV0sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgZWxzZQogICAgICAg ICAgICAgZnByaW50Zih3YXJuLCAiU3RyYW5nZSwgcGZfY2FzZSAwIVxuIik7CkBAIC0zMzIwLDE3 ICszMjc0LDE3IEBAIHZvaWQgaHZtX3BmX3hlbl9wb3N0cHJvY2VzcyhzdHJ1Y3QgaHZtX2RhdGEg KmgpIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFBGX1hFTl9OT05fRU1VTEFU RToKICAgICAgICAgICAgIGlmKGlzX2tlcm5lbChoLT52LT5ndWVzdF9wYWdpbmdfbGV2ZWxzLCBo LT5yaXApKQotICAgICAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hl bl9ub25fZW11bFtQRl9YRU5fTk9OX0VNVUxfRUlQX0tFUk5FTF0sCisgICAgICAgICAgICAgICAg dXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fbm9uX2VtdWxbUEZfWEVOX05PTl9FTVVM X0VJUF9LRVJORUxdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgtPmFyY19jeWNs ZXMpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZo LT5zdW1tYXJ5LnBmX3hlbl9ub25fZW11bFtQRl9YRU5fTk9OX0VNVUxfRUlQX1VTRVJdLAorICAg ICAgICAgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkucGZfeGVuX25vbl9lbXVsW1BG X1hFTl9OT05fRU1VTF9FSVBfVVNFUl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgICAgICBpZihpc19rZXJuZWwoaC0+di0+Z3Vlc3RfcGFn aW5nX2xldmVscywgZS0+dmEpKQotICAgICAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5z dW1tYXJ5LnBmX3hlbl9ub25fZW11bFtQRl9YRU5fTk9OX0VNVUxfVkFfS0VSTkVMXSwKKyAgICAg ICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl9ub25fZW11bFtQRl9Y RU5fTk9OX0VNVUxfVkFfS0VSTkVMXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo LT5hcmNfY3ljbGVzKTsKIAogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHVwZGF0 ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hlbl9ub25fZW11bFtQRl9YRU5fTk9OX0VNVUxfVkFf VVNFUl0sCisgICAgICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5f bm9uX2VtdWxbUEZfWEVOX05PTl9FTVVMX1ZBX1VTRVJdLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGgtPmFyY19jeWNsZXMpOwogICAgICAgICB9CiAKQEAgLTM0MTEsNyArMzM2NSw3 IEBAIHZvaWQgaHZtX3ZsYXBpY192bWVudHJ5X2NsZWFudXAoc3RydWN0IHZjcHVfZGF0YSAqdiwg dHNjX3QgdHNjKQogICAgICAgICAvKiBGSVhNRTogbWFrZSBnZW5lcmFsIHNvbWVob3cgKi8KICAg ICAgICAgaWYob3B0LnN1bW1hcnlfaW5mbykKICAgICAgICAgewotICAgICAgICAgICAgdXBkYXRl X3N1bW1hcnkoJmgtPnN1bW1hcnkuaXBpX2xhdGVuY3ksIGxhdCk7CisgICAgICAgICAgICB1cGRh dGVfY3ljbGVzKCZoLT5zdW1tYXJ5LmlwaV9sYXRlbmN5LCBsYXQpOwogICAgICAgICAgICAgaC0+ c3VtbWFyeS5pcGlfY291bnRbdmxhLT5vdXRzdGFuZGluZ19pcGlzXSsrOwogICAgICAgICB9CiAj ZW5kaWYKQEAgLTM2NTEsNyArMzYwNSw3IEBAIHZvaWQgaHZtX21taW9fYXNzaXN0X3Bvc3Rwcm9j ZXNzKHN0cnVjdCBodm1fZGF0YSAqaCkKIAogICAgIGlmKG9wdC5zdW1tYXJ5X2luZm8pCiAgICAg ewotICAgICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5tbWlvW3JlYXNvbl0sCisgICAg ICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkubW1pb1tyZWFzb25dLAogICAgICAgICAgICAg ICAgICAgICAgICBoLT5hcmNfY3ljbGVzKTsKICAgICB9CiAKQEAgLTM3ODcsNyArMzc0MSw3IEBA IHN0cnVjdCBpb19hZGRyZXNzIHsKICAgICBzdHJ1Y3QgaW9fYWRkcmVzcyAqbmV4dDsKICAgICB1 bnNpZ25lZCBpbnQgcGE7CiAgICAgdW5zaWduZWQgaW50IHZhOwotICAgIHN0cnVjdCBldmVudF9j eWNsZV9zdW1tYXJ5IHN1bW1hcnlbMl07CisgICAgc3RydWN0IGN5Y2xlX3N1bW1hcnkgc3VtbWFy eVsyXTsKIH07CiAKIHZvaWQgdXBkYXRlX2lvX2FkZHJlc3Moc3RydWN0IGlvX2FkZHJlc3MgKiog bGlzdCwgdW5zaWduZWQgaW50IHBhLCBpbnQgZGlyLApAQCAtMzgxOSw3ICszNzczLDcgQEAgdm9p ZCB1cGRhdGVfaW9fYWRkcmVzcyhzdHJ1Y3QgaW9fYWRkcmVzcyAqKiBsaXN0LCB1bnNpZ25lZCBp bnQgcGEsIGludCBkaXIsCiAgICAgICAgICAgICAqbGlzdCA9IHA7CiAgICAgICAgIH0KICAgICB9 Ci0gICAgdXBkYXRlX3N1bW1hcnkoJnAtPnN1bW1hcnlbZGlyXSwgYXJjX2N5Y2xlcyk7CisgICAg dXBkYXRlX2N5Y2xlcygmcC0+c3VtbWFyeVtkaXJdLCBhcmNfY3ljbGVzKTsKIH0KIAogdm9pZCBo dm1faW9fYWRkcmVzc19zdW1tYXJ5KHN0cnVjdCBpb19hZGRyZXNzICpsaXN0LCBjaGFyICogcykg ewpAQCAtNDEzOSwxMCArNDA5MywxMCBAQCB2b2lkIGh2bV9jcl93cml0ZV9wb3N0cHJvY2Vzcyhz dHJ1Y3QgaHZtX2RhdGEgKmgpCiAgICAgICAgICAgICBpZihyZXN5bmNzID4gUkVTWU5DU19NQVgp CiAgICAgICAgICAgICAgICAgcmVzeW5jcyA9IFJFU1lOQ1NfTUFYOwogCi0gICAgICAgICAgICB1 cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5jcjNfd3JpdGVfcmVzeW5jc1tyZXN5bmNzXSwKKyAg ICAgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkuY3IzX3dyaXRlX3Jlc3luY3NbcmVz eW5jc10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLT5hcmNfY3ljbGVzKTsKIAotICAg ICAgICAgICAgdXBkYXRlX3N1bW1hcnkoJmgtPnN1bW1hcnkuY3Jfd3JpdGVbM10sCisgICAgICAg ICAgICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LmNyX3dyaXRlWzNdLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaC0+YXJjX2N5Y2xlcyk7CiAKICAgICAgICAgICAgIGh2bV91cGRhdGVf c2hvcnRfc3VtbWFyeShoLCBIVk1fU0hPUlRfU1VNTUFSWV9DUjMpOwpAQCAtNDE1NCw3ICs0MTA4 LDcgQEAgdm9pZCBodm1fY3Jfd3JpdGVfcG9zdHByb2Nlc3Moc3RydWN0IGh2bV9kYXRhICpoKQog ICAgICAgICBpZihvcHQuc3VtbWFyeV9pbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiho LT5pbmZsaWdodC5jcl93cml0ZS5jciA8IENSX01BWCkKLSAgICAgICAgICAgICAgICB1cGRhdGVf c3VtbWFyeSgmaC0+c3VtbWFyeS5jcl93cml0ZVtoLT5pbmZsaWdodC5jcl93cml0ZS5jcl0sCisg ICAgICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5jcl93cml0ZVtoLT5pbmZs aWdodC5jcl93cml0ZS5jcl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0+YXJj X2N5Y2xlcyk7CiAKICAgICAgICAgfQpAQCAtNDMzOSwxMCArNDI5MywxMCBAQCB2b2lkIGh2bV92 bWNhbGxfcG9zdHByb2Nlc3Moc3RydWN0IGh2bV9kYXRhICpoKQogICAgIGlmKG9wdC5zdW1tYXJ5 KQogICAgIHsKICAgICAgICAgaWYgKCBlYXggPCBIWVBFUkNBTExfTUFYICkKLSAgICAgICAgICAg IHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LnZtY2FsbFtlYXhdLAorICAgICAgICAgICAgdXBk YXRlX2N5Y2xlcygmaC0+c3VtbWFyeS52bWNhbGxbZWF4XSwKICAgICAgICAgICAgICAgICAgICAg ICAgaC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHVwZGF0ZV9zdW1t YXJ5KCZoLT5zdW1tYXJ5LnZtY2FsbFtIWVBFUkNBTExfTUFYXSwKKyAgICAgICAgICAgIHVwZGF0 ZV9jeWNsZXMoJmgtPnN1bW1hcnkudm1jYWxsW0hZUEVSQ0FMTF9NQVhdLAogICAgICAgICAgICAg ICAgICAgICAgICBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgaHZtX3NldF9zdW1tYXJ5X2hhbmRs ZXIoaCwgaHZtX3ZtY2FsbF9zdW1tYXJ5LCBOVUxMKTsKICAgICB9CkBAIC00NjgzLDcgKzQ2Mzcs NyBAQCB2b2lkIGh2bV9nZW5lcmljX3Bvc3Rwcm9jZXNzKHN0cnVjdCBodm1fZGF0YSAqaCkKICAg ICB9CiAKICAgICBpZihvcHQuc3VtbWFyeV9pbmZvKSB7Ci0gICAgICAgIHVwZGF0ZV9zdW1tYXJ5 KCZoLT5zdW1tYXJ5LmdlbmVyaWNbZXZ0XSwKKyAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3Vt bWFyeS5nZW5lcmljW2V2dF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGgtPmFyY19jeWNsZXMp OwogCiAgICAgICAgIC8qIE5CIHRoYXQgaC0+ZXhpdF9yZWFzb24gbWF5IGJlIDAsIHNvIHdlIG9m ZnNldCBieSAxICovCkBAIC01MTcwLDcgKzUxMjQsNyBAQCB2b2lkIGh2bV9jbG9zZV92bWV4aXQo c3RydWN0IGh2bV9kYXRhICpoLCB0c2NfdCB0c2MpIHsKICAgICAgICAgICAgIGgtPmFyY19jeWNs ZXMgPSB0c2MgLSBoLT5leGl0X3RzYzsKIAogICAgICAgICAgICAgaWYob3B0LnN1bW1hcnlfaW5m bykgewotICAgICAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LmV4aXRfcmVh c29uW2gtPmV4aXRfcmVhc29uXSwKKyAgICAgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5z dW1tYXJ5LmV4aXRfcmVhc29uW2gtPmV4aXRfcmVhc29uXSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgICAgICAgICBoLT5zdW1tYXJ5X2lu Zm8gPSAxOwogICAgICAgICAgICAgfQpAQCAtNTQ0NSwyNiArNTM5OSwyNiBAQCB2b2lkIHNoYWRv d19lbXVsYXRlX3Bvc3Rwcm9jZXNzKHN0cnVjdCBodm1fZGF0YSAqaCkKICAgICAgICAgICAgICAg ICAgICBoLT5yaXAsCiAgICAgICAgICAgICAgICAgICAgaC0+YXJjX2N5Y2xlcywKICAgICAgICAg ICAgICAgICAgICAwLCBOVUxMKTsKLSAgICAgICAgdXBkYXRlX3N1bW1hcnkoJmgtPnN1bW1hcnku cGZfeGVuW1BGX1hFTl9FTVVMQVRFXSwgaC0+YXJjX2N5Y2xlcyk7Ci0gICAgICAgIHVwZGF0ZV9z dW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hlbl9lbXVsW2UtPnB0X2xldmVsXSwgaC0+YXJjX2N5Y2xl cyk7CisgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkucGZfeGVuW1BGX1hFTl9FTVVM QVRFXSwgaC0+YXJjX2N5Y2xlcyk7CisgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnku cGZfeGVuX2VtdWxbZS0+cHRfbGV2ZWxdLCBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgaWYoaC0+ cHJlYWxsb2NfdW5waW4pCi0gICAgICAgICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5w Zl94ZW5fZW11bFtQRl9YRU5fRU1VTF9QUkVBTExPQ19VTlBJTl0sIGgtPmFyY19jeWNsZXMpOwor ICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fZW11bFtQRl9YRU5f RU1VTF9QUkVBTExPQ19VTlBJTl0sIGgtPmFyY19jeWNsZXMpOwogICAgICAgICBpZihlLT5mbGFn X3ByZWFsbG9jX3VuaG9vaykKLSAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5 LnBmX3hlbl9lbXVsW1BGX1hFTl9FTVVMX1BSRUFMTE9DX1VOSE9PS10sIGgtPmFyY19jeWNsZXMp OworICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fZW11bFtQRl9Y RU5fRU1VTF9QUkVBTExPQ19VTkhPT0tdLCBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgaWYoZS0+ ZmxhZ19lYXJseV91bnNoYWRvdykKLSAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1t YXJ5LnBmX3hlbl9lbXVsW1BGX1hFTl9FTVVMX0VBUkxZX1VOU0hBRE9XXSwgaC0+YXJjX2N5Y2xl cyk7CisgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl9lbXVsW1BG X1hFTl9FTVVMX0VBUkxZX1VOU0hBRE9XXSwgaC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgIGlmKGUt PmZsYWdfc2V0X2NoYW5nZWQpCi0gICAgICAgICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFy eS5wZl94ZW5fZW11bFtQRl9YRU5fRU1VTF9TRVRfQ0hBTkdFRF0sIGgtPmFyY19jeWNsZXMpOwor ICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fZW11bFtQRl9YRU5f RU1VTF9TRVRfQ0hBTkdFRF0sIGgtPmFyY19jeWNsZXMpOwogICAgICAgICBlbHNlCi0gICAgICAg ICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94ZW5fZW11bFtQRl9YRU5fRU1VTF9T RVRfVU5DSEFOR0VEXSwgaC0+YXJjX2N5Y2xlcyk7CisgICAgICAgICAgICB1cGRhdGVfY3ljbGVz KCZoLT5zdW1tYXJ5LnBmX3hlbl9lbXVsW1BGX1hFTl9FTVVMX1NFVF9VTkNIQU5HRURdLCBoLT5h cmNfY3ljbGVzKTsKICAgICAgICAgaWYoZS0+ZmxhZ19zZXRfZmx1c2gpCi0gICAgICAgICAgICB1 cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94ZW5fZW11bFtQRl9YRU5fRU1VTF9TRVRfRkxV U0hdLCBoLT5hcmNfY3ljbGVzKTsKKyAgICAgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1h cnkucGZfeGVuX2VtdWxbUEZfWEVOX0VNVUxfU0VUX0ZMVVNIXSwgaC0+YXJjX2N5Y2xlcyk7CiAg ICAgICAgIGlmKGUtPmZsYWdfc2V0X2Vycm9yKQotICAgICAgICAgICAgdXBkYXRlX3N1bW1hcnko JmgtPnN1bW1hcnkucGZfeGVuX2VtdWxbUEZfWEVOX0VNVUxfU0VUX0VSUk9SXSwgaC0+YXJjX2N5 Y2xlcyk7CisgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl9lbXVs W1BGX1hFTl9FTVVMX1NFVF9FUlJPUl0sIGgtPmFyY19jeWNsZXMpOwogICAgICAgICBpZihlLT5m bGFnX3Byb21vdGUpCi0gICAgICAgICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94 ZW5fZW11bFtQRl9YRU5fRU1VTF9QUk9NT1RFXSwgaC0+YXJjX2N5Y2xlcyk7CisgICAgICAgICAg ICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl9lbXVsW1BGX1hFTl9FTVVMX1BST01P VEVdLCBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgaWYoZS0+ZmxhZ19kZW1vdGUpCi0gICAgICAg ICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94ZW5fZW11bFtQRl9YRU5fRU1VTF9E RU1PVEVdLCBoLT5hcmNfY3ljbGVzKTsKKyAgICAgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1 bW1hcnkucGZfeGVuX2VtdWxbUEZfWEVOX0VNVUxfREVNT1RFXSwgaC0+YXJjX2N5Y2xlcyk7CiAg ICAgICAgIC8qIG1vcmUgc3VtbWFyeSBpbmZvICovCiAKICAgICAgICAgaHZtX3VwZGF0ZV9zaG9y dF9zdW1tYXJ5KGgsIEhWTV9TSE9SVF9TVU1NQVJZX0VNVUxBVEUpOwpAQCAtNTY3NywxMCArNTYz MSwxMCBAQCB2b2lkIHNoYWRvd191bnN5bmNfcG9zdHByb2Nlc3Moc3RydWN0IGh2bV9kYXRhICpo KQogICAgICAgICAgICAgICAgIGgtPnJlc3luY3MpOwogCiAgICAgaWYob3B0LnN1bW1hcnlfaW5m bykgewotICAgICAgICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94ZW5bUEZfWEVOX0VN VUxBVEVfVU5TWU5DXSwKKyAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5b UEZfWEVOX0VNVUxBVEVfVU5TWU5DXSwKICAgICAgICAgICAgICAgICAgICAgICAgaC0+YXJjX2N5 Y2xlcyk7CiAgICAgICAgIGlmKGgtPnJlc3luY3MgPD0gMSkKLSAgICAgICAgICAgIHVwZGF0ZV9z dW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hlbl91bnN5bmNbaC0+cmVzeW5jc10sCisgICAgICAgICAg ICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl91bnN5bmNbaC0+cmVzeW5jc10sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBoLT5hcmNfY3ljbGVzKTsKICAgICB9CiB9CkBAIC01 NzQ0LDM2ICs1Njk4LDM2IEBAIHZvaWQgc2hhZG93X2ZpeHVwX3Bvc3Rwcm9jZXNzKHN0cnVjdCBo dm1fZGF0YSAqaCkKIAogICAgIGlmICggb3B0LnN1bW1hcnlfaW5mbyApCiAgICAgewotICAgICAg ICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94ZW5bUEZfWEVOX0ZJWFVQXSwgaC0+YXJj X2N5Y2xlcyk7CisgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkucGZfeGVuW1BGX1hF Tl9GSVhVUF0sIGgtPmFyY19jeWNsZXMpOwogICAgICAgICBpZihoLT5wcmVhbGxvY191bnBpbikg ewotICAgICAgICAgICAgdXBkYXRlX3N1bW1hcnkoJmgtPnN1bW1hcnkucGZfeGVuX2ZpeHVwW1BG X1hFTl9GSVhVUF9QUkVBTExPQ19VTlBJTl0sIGgtPmFyY19jeWNsZXMpOworICAgICAgICAgICAg dXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fZml4dXBbUEZfWEVOX0ZJWFVQX1BSRUFM TE9DX1VOUElOXSwgaC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgIH0KICAgICAgICAgaWYoZS0+Zmxh Z191bnN5bmMpIHsKLSAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hl bl9maXh1cFtQRl9YRU5fRklYVVBfVU5TWU5DXSwgaC0+YXJjX2N5Y2xlcyk7CisgICAgICAgICAg ICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl9maXh1cFtQRl9YRU5fRklYVVBfVU5T WU5DXSwgaC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgICAgICBpZihoLT5yZXN5bmNzIDwgUEZfWEVO X0ZJWFVQX1VOU1lOQ19SRVNZTkNfTUFYKQotICAgICAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5 KCZoLT5zdW1tYXJ5LnBmX3hlbl9maXh1cF91bnN5bmNfcmVzeW5jW2gtPnJlc3luY3NdLAorICAg ICAgICAgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkucGZfeGVuX2ZpeHVwX3Vuc3lu Y19yZXN5bmNbaC0+cmVzeW5jc10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0+ YXJjX2N5Y2xlcyk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdXBkYXRlX3N1 bW1hcnkoJmgtPnN1bW1hcnkucGZfeGVuX2ZpeHVwX3Vuc3luY19yZXN5bmNbUEZfWEVOX0ZJWFVQ X1VOU1lOQ19SRVNZTkNfTUFYXSwKKyAgICAgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5z dW1tYXJ5LnBmX3hlbl9maXh1cF91bnN5bmNfcmVzeW5jW1BGX1hFTl9GSVhVUF9VTlNZTkNfUkVT WU5DX01BWF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0+YXJjX2N5Y2xlcyk7 CiAgICAgICAgIH0KICAgICAgICAgaWYoZS0+ZmxhZ19vb3NfZml4dXBfYWRkKQotICAgICAgICAg ICAgdXBkYXRlX3N1bW1hcnkoJmgtPnN1bW1hcnkucGZfeGVuX2ZpeHVwW1BGX1hFTl9GSVhVUF9P T1NfQUREXSwgaC0+YXJjX2N5Y2xlcyk7CisgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5z dW1tYXJ5LnBmX3hlbl9maXh1cFtQRl9YRU5fRklYVVBfT09TX0FERF0sIGgtPmFyY19jeWNsZXMp OwogICAgICAgICBpZihlLT5mbGFnX29vc19maXh1cF9ldmljdCkKLSAgICAgICAgICAgIHVwZGF0 ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hlbl9maXh1cFtQRl9YRU5fRklYVVBfT09TX0VWSUNU XSwgaC0+YXJjX2N5Y2xlcyk7CisgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5 LnBmX3hlbl9maXh1cFtQRl9YRU5fRklYVVBfT09TX0VWSUNUXSwgaC0+YXJjX2N5Y2xlcyk7CiAg ICAgICAgIGlmKGUtPmZsYWdfcHJvbW90ZSkKLSAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZo LT5zdW1tYXJ5LnBmX3hlbl9maXh1cFtQRl9YRU5fRklYVVBfUFJPTU9URV0sIGgtPmFyY19jeWNs ZXMpOworICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fZml4dXBb UEZfWEVOX0ZJWFVQX1BST01PVEVdLCBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAgaWYoZS0+Zmxh Z193cm1hcCkgewotICAgICAgICAgICAgdXBkYXRlX3N1bW1hcnkoJmgtPnN1bW1hcnkucGZfeGVu X2ZpeHVwW1BGX1hFTl9GSVhVUF9XUk1BUF0sIGgtPmFyY19jeWNsZXMpOworICAgICAgICAgICAg dXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5wZl94ZW5fZml4dXBbUEZfWEVOX0ZJWFVQX1dSTUFQ XSwgaC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgICAgICBpZihlLT5mbGFnX3dybWFwX2JydXRlX2Zv cmNlIHx8IGgtPndybWFwX2JmKQotICAgICAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5z dW1tYXJ5LnBmX3hlbl9maXh1cFtQRl9YRU5fRklYVVBfQlJVVEVfRk9SQ0VdLCBoLT5hcmNfY3lj bGVzKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVfY3ljbGVzKCZoLT5zdW1tYXJ5LnBmX3hlbl9m aXh1cFtQRl9YRU5fRklYVVBfQlJVVEVfRk9SQ0VdLCBoLT5hcmNfY3ljbGVzKTsKICAgICAgICAg fSBlbHNlIGlmKGUtPmZsYWdfd3JtYXBfYnJ1dGVfZm9yY2UgfHwgaC0+d3JtYXBfYmYpIHsKICAg ICAgICAgICAgIGZwcmludGYod2FybiwgIlN0cmFuZ2U6IHdybWFwX2JmIGJ1dCBub3Qgd3JtYXAh XG4iKTsKICAgICAgICAgfQogCiAKICAgICAgICAgaWYoIShlLT5mbGFnX3Byb21vdGUgfHwgaC0+ cHJlYWxsb2NfdW5waW4gfHwgZS0+ZmxhZ191bnN5bmMpKQotICAgICAgICAgICAgdXBkYXRlX3N1 bW1hcnkoJmgtPnN1bW1hcnkucGZfeGVuX2ZpeHVwW1BGX1hFTl9GSVhVUF9VUERBVEVfT05MWV0s IGgtPmFyY19jeWNsZXMpOworICAgICAgICAgICAgdXBkYXRlX2N5Y2xlcygmaC0+c3VtbWFyeS5w Zl94ZW5fZml4dXBbUEZfWEVOX0ZJWFVQX1VQREFURV9PTkxZXSwgaC0+YXJjX2N5Y2xlcyk7CiAg ICAgICAgIC8qIG1vcmUgc3VtbWFyeSBpbmZvICovCiAKICAgICAgICAgaWYoZS0+ZmxhZ191bnN5 bmMpCkBAIC01ODk0LDcgKzU4NDgsNyBAQCB2b2lkIHNoYWRvd19tbWlvX3Bvc3Rwcm9jZXNzKHN0 cnVjdCBodm1fZGF0YSAqaCkKICAgICBpZiAoIG9wdC5zdW1tYXJ5X2luZm8gKQogICAgIHsKICAg ICAgICAgaWYoZS0+cGZfY2FzZSkKLSAgICAgICAgICAgIHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1t YXJ5LnBmX3hlbltlLT5wZl9jYXNlXSwKKyAgICAgICAgICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1 bW1hcnkucGZfeGVuW2UtPnBmX2Nhc2VdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0+ YXJjX2N5Y2xlcyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZwcmludGYod2FybiwgIlN0 cmFuZ2UsIHBmX2Nhc2UgMCFcbiIpOwpAQCAtNTk3NCw3ICs1OTI4LDcgQEAgdm9pZCBzaGFkb3df cHJvcGFnYXRlX3Bvc3Rwcm9jZXNzKHN0cnVjdCBodm1fZGF0YSAqaCkKICAgICBpZiAoIG9wdC5z dW1tYXJ5X2luZm8gKQogICAgIHsKICAgICAgICAgaWYoZS0+cGZfY2FzZSkKLSAgICAgICAgICAg IHVwZGF0ZV9zdW1tYXJ5KCZoLT5zdW1tYXJ5LnBmX3hlbltlLT5wZl9jYXNlXSwKKyAgICAgICAg ICAgIHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkucGZfeGVuW2UtPnBmX2Nhc2VdLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgaC0+YXJjX2N5Y2xlcyk7CiAgICAgICAgIGVsc2UKICAgICAg ICAgICAgIGZwcmludGYod2FybiwgIlN0cmFuZ2UsIHBmX2Nhc2UgMCFcbiIpOwpAQCAtNjEwNiw3 ICs2MDYwLDcgQEAgdm9pZCBzaGFkb3dfZmF1bHRfZ2VuZXJpY19wb3N0cHJvY2VzcyhzdHJ1Y3Qg aHZtX2RhdGEgKmgpCiAgICAgfQogCiAgICAgaWYob3B0LnN1bW1hcnlfaW5mbykgewotICAgICAg ICB1cGRhdGVfc3VtbWFyeSgmaC0+c3VtbWFyeS5wZl94ZW5bZS0+cGZfY2FzZV0sCisgICAgICAg IHVwZGF0ZV9jeWNsZXMoJmgtPnN1bW1hcnkucGZfeGVuW2UtPnBmX2Nhc2VdLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgaC0+YXJjX2N5Y2xlcyk7CiAKICAgICAgICAgaHZtX3VwZGF0ZV9z aG9ydF9zdW1tYXJ5KGgsIEhWTV9TSE9SVF9TVU1NQVJZX1BST1BBR0FURSk7Ci0tIAoyLjEuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=