From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.1.2-34 Date: Mon, 29 Jun 2026 12:23:30 GMT Message-ID: <178273581028.1.945459046393028466.rpms-gcc-d8d9cbe2d6d6@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: d8d9cbe2d6d6e7334c0d406c21500ec005ef6537 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogZDhkOWNiZTJkNmQ2ZTczMzRjMGQ0MDZjMjE1MDBlYzAw NWVmNjUzNwpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwNy0xMS0yNVQyMDoyOTo0MSswMDowMApTdGF0cyAgOiArNTI2My8tODYgaW4g MzYgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dj Yy9jL2Q4ZDljYmUyZDZkNmU3MzM0YzBkNDA2YzIxNTAwZWMwMDVlZjY1Mzc/YnJhbmNoPXJoZWwt ZjQxLWJhc2UKCkxvZzoKNC4xLjItMzQKCi0tLQpkaWZmIC0tZ2l0IGEvLmN2c2lnbm9yZSBiLy5j dnNpZ25vcmUKaW5kZXggMDQxNTBlYi4uZDc0MjczNSAxMDA2NDQKLS0tIGEvLmN2c2lnbm9yZQor KysgYi8uY3ZzaWdub3JlCkBAIC0xICsxIEBACi1nY2MtNC4xLjItMjAwNzA5MjUudGFyLmJ6Mgor Z2NjLTQuMS4yLTIwMDcxMTI0LnRhci5iejIKCmRpZmYgLS1naXQgYS9nY2M0MS1jKystZ3VhcmQt dmlzaWJpbGl0eS5wYXRjaCBiL2djYzQxLWMrKy1ndWFyZC12aXNpYmlsaXR5LnBhdGNoCmluZGV4 IGI5ZWQwNzkuLjk3MTEwMGIgMTAwNjQ0Ci0tLSBhL2djYzQxLWMrKy1ndWFyZC12aXNpYmlsaXR5 LnBhdGNoCisrKyBiL2djYzQxLWMrKy1ndWFyZC12aXNpYmlsaXR5LnBhdGNoCkBAIC0xLDE4ICsx LDcgQEAKIDIwMDctMDktMDYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgogCi0J KiBkZWNsMi5jIChnZXRfZ3VhcmQpOiBDb3B5IHZpc2liaWxpdHkgZnJvbSB0aGUgZ3VhcmRlZCB2 YXJpYWJsZS4KKwkqIGcrKy5kZy9leHQvdmlzaWJpbGl0eS9ndWFyZDEuQzogTmV3IHRlc3QuCiAK LS0tLSBnY2MvY3AvZGVjbDIuYwkocmV2aXNpb24gMTI4MjI1KQotKysrIGdjYy9jcC9kZWNsMi5j CShyZXZpc2lvbiAxMjgyMjYpCi1AQCAtMjIxNSw2ICsyMjE1LDggQEAgZ2V0X2d1YXJkICh0cmVl IGRlY2wpCi0gICAgICAgREVDTF9PTkVfT05MWSAoZ3VhcmQpID0gREVDTF9PTkVfT05MWSAoZGVj bCk7Ci0gICAgICAgaWYgKFRSRUVfUFVCTElDIChkZWNsKSkKLSAJREVDTF9XRUFLIChndWFyZCkg PSBERUNMX1dFQUsgKGRlY2wpOwotKyAgICAgIERFQ0xfVklTSUJJTElUWSAoZ3VhcmQpID0gREVD TF9WSVNJQklMSVRZIChkZWNsKTsKLSsgICAgICBERUNMX1ZJU0lCSUxJVFlfU1BFQ0lGSUVEIChn dWFyZCkgPSBERUNMX1ZJU0lCSUxJVFlfU1BFQ0lGSUVEIChkZWNsKTsKLSAKLSAgICAgICBERUNM X0FSVElGSUNJQUwgKGd1YXJkKSA9IDE7Ci0gICAgICAgREVDTF9JR05PUkVEX1AgKGd1YXJkKSA9 IDE7CiAtLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Zpc2liaWxpdHkvZ3VhcmQxLkMJKHJl dmlzaW9uIDApCiArKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Zpc2liaWxpdHkvZ3VhcmQx LkMJKHJldmlzaW9uIDEyODIyNikKIEBAIC0wLDAgKzEsMjkgQEAKCmRpZmYgLS1naXQgYS9nY2M0 MS1qYXZhLWFybTEucGF0Y2ggYi9nY2M0MS1qYXZhLWFybTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ4NThlYgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLWph dmEtYXJtMS5wYXRjaApAQCAtMCwwICsxLDk1NyBAQAorMjAwNy0wNS0xOCAgQXVyZWxpZW4gSmFy bm8gIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KKworCSogc3JjL2FybS9mZmkuYyAoZmZpX3ByZXBf Y2xvc3VyZV9sb2MpOiBSZW5hbWVkIGFuZCBhanVzdGVkCisJZnJvbSAoZmZpX3ByZXBfY2xvc3Vy ZSk6IC4uLiB0aGlzLgorCShGRklfSU5JVF9UUkFNUE9MSU5FKTogQWRqdXN0LgorCisyMDA1LTEy LTMxICBQaGlsIEJsdW5kZWxsICA8cGJAcmVjaXZhLmNvbT4KKworCSogc3JjL2FybS9mZmkuYyAo ZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWLCAKKyAgICAgICAgZmZpX2Nsb3N1cmVfU1lTVl9p bm5lciwgZmZpX3ByZXBfY2xvc3VyZSk6IE5ldywgYWRkIGNsb3N1cmUgc3VwcG9ydC4KKwkqIHNy Yy9hcm0vc3lzdi5TKGZmaV9jbG9zdXJlX1NZU1YpOiBMaWtld2lzZS4KKwkqIHNyYy9hcm0vZmZp dGFyZ2V0LmggKEZGSV9UUkFNUE9MSU5FX1NJWkUpOiBMaWtld2lzZS4KKwkoRkZJX0NMT1NVUkVT KTogRW5hYmxlIGNsb3N1cmUgc3VwcG9ydC4KKworMjAwNy0wNy0wMyAgQW5kcmV3IEhhbGV5ICA8 YXBoQGhlZGdlcy5iaWxsZ2F0bGlmZi5jb20+CisKKyAgICAgICAgKiB0ZXN0c3VpdGUvbGliZmZp LmNhbGwvY2xzX211bHRpX3VzaG9ydC5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwv Y2xzX2FsaWduX3VpbnQxNi5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVk X3N0cnVjdDEuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Qz LmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfN18xX2J5dGUuYywKKyAgICAg ICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kb3VibGUuYywKKyAgICAgICAgdGVzdHN1aXRl L2xpYmZmaS5jYWxsL2Nsc19zaW50LmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9j bHNfMjBieXRlMS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX211bHRpX3Nz aG9ydGNoYXIuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50 NjQuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTIuYywKKyAgICAg ICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19tdWx0aV9zY2hhci5jLAorICAgICAgICB0ZXN0 c3VpdGUvbGliZmZpLmNhbGwvY2xzX211bHRpX3VjaGFyLmMsCisgICAgICAgIHRlc3RzdWl0ZS9s aWJmZmkuY2FsbC9jbHNfMTlieXRlLmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9j bHNfOWJ5dGUxLmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fZmxv YXQuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm4xLmMsCisgICAg ICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9wcm9ibGVtMS5jLAorICAgICAgICB0ZXN0c3VpdGUv bGliZmZpLmNhbGwvY2xvc3VyZV9mbjMuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxs L2Nsc19zc2hvcnQuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm41 LmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fZG91YmxlLmMsCisg ICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMmJ5dGUuYywKKyAgICAgICAgdGVzdHN1 aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc180Ynl0ZS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZi eXRlLmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOGJ5dGUuYywKKyAgICAg ICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19tdWx0aV9zc2hvcnQuYywKKyAgICAgICAgdGVz dHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MzIuYywKKyAgICAgICAgdGVzdHN1aXRl L2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MTYuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc19mbG9hdC5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzIw Ynl0ZS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzVfMV9ieXRlLmMsCisg ICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Mi5jLAorICAgICAgICB0 ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzI0Ynl0ZS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGli ZmZpLmNhbGwvY2xzXzY0Ynl0ZS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xz X3VpbnQuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19tdWx0aV91c2hvcnRj aGFyLmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfc2NoYXIuYywKKyAgICAg ICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc191Y2hhci5jLAorICAgICAgICB0ZXN0c3VpdGUv bGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQ2NC5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZp LmNhbGwvY2xzX3Vsb25nbG9uZy5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xz X2FsaWduX2xvbmdkb3VibGUuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18x XzFieXRlLmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTJieXRlLmMsCisg ICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfM18xYnl0ZS5jLAorICAgICAgICB0ZXN0 c3VpdGUvbGliZmZpLmNhbGwvY2xzXzNieXRlMS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZp LmNhbGwvY2xzXzRfMWJ5dGUuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182 XzFfYnl0ZS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE2Ynl0ZS5jLAor ICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE4Ynl0ZS5jLAorICAgICAgICB0ZXN0 c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV9mbjAuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc185Ynl0ZTIuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1 cmVfZm4yLmMsCisgICAgICAgIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX2ZuNC5jLAor ICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX3VzaG9ydC5jLAorICAgICAgICB0ZXN0 c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV9mbjYuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc181Ynl0ZS5jLAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2Fs aWduX3BvaW50ZXIuYywKKyAgICAgICAgdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc183Ynl0ZS5j LAorICAgICAgICB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQzMi5jLAorICAg ICAgICB0ZXN0c3VpdGUvbGliZmZpLnNwZWNpYWwvdW53aW5kdGVzdC5jYzogRW5hYmxlIGZvciBB Uk0uCisKKy0tLSBsaWJmZmkvc3JjL2FybS9mZml0YXJnZXQuaC5qagkyMDA3LTA5LTA2IDE0OjA1 OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS9zcmMvYXJtL2ZmaXRhcmdldC5oCTIwMDct MDktMDYgMTQ6MDc6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtNDAsNyArNDAsOCBAQCB0eXBlZGVm IGVudW0gZmZpX2FiaSB7CisgCisgLyogLS0tLSBEZWZpbml0aW9ucyBmb3IgY2xvc3VyZXMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAKKy0jZGVmaW5lIEZG SV9DTE9TVVJFUyAwCisrI2RlZmluZSBGRklfQ0xPU1VSRVMgMQorKyNkZWZpbmUgRkZJX1RSQU1Q T0xJTkVfU0laRSAyMAorICNkZWZpbmUgRkZJX05BVElWRV9SQVdfQVBJIDAKKyAKKyAjZW5kaWYK Ky0tLSBsaWJmZmkvc3JjL2FybS9mZmkuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAw MCArMDIwMAorKysrIGxpYmZmaS9zcmMvYXJtL2ZmaS5jCTIwMDctMDktMDYgMTQ6MDc6MzAuMDAw MDAwMDAwICswMjAwCitAQCAtMTY4LDMgKzE2OCwxMjIgQEAgdm9pZCBmZmlfY2FsbChmZmlfY2lm ICpjaWYsIHZvaWQgKCpmbikoKQorICAgICAgIGJyZWFrOworICAgICB9CisgfQorKworKy8qKiBw cml2YXRlIG1lbWJlcnMgKiovCisrCisrc3RhdGljIHZvaWQgZmZpX3ByZXBfaW5jb21pbmdfYXJn c19TWVNWIChjaGFyICpzdGFjaywgdm9pZCAqKnJldCwKKysJCQkJCSB2b2lkKiogYXJncywgZmZp X2NpZiogY2lmKTsKKysKKyt2b2lkIGZmaV9jbG9zdXJlX1NZU1YgKGZmaV9jbG9zdXJlICopOwor KworKy8qIFRoaXMgZnVuY3Rpb24gaXMganVtcGVkIHRvIGJ5IHRoZSB0cmFtcG9saW5lICovCisr CisrdW5zaWduZWQgaW50CisrZmZpX2Nsb3N1cmVfU1lTVl9pbm5lciAoY2xvc3VyZSwgcmVzcHAs IGFyZ3MpCisrICAgICBmZmlfY2xvc3VyZSAqY2xvc3VyZTsKKysgICAgIHZvaWQgKipyZXNwcDsK KysgICAgIHZvaWQgKmFyZ3M7CisreworKyAgLy8gb3VyIHZhcmlvdXMgdGhpbmdzLi4uCisrICBm ZmlfY2lmICAgICAgICpjaWY7CisrICB2b2lkICAgICAgICAgKiphcmdfYXJlYTsKKysKKysgIGNp ZiAgICAgICAgID0gY2xvc3VyZS0+Y2lmOworKyAgYXJnX2FyZWEgICAgPSAodm9pZCoqKSBhbGxv Y2EgKGNpZi0+bmFyZ3MgKiBzaXplb2YgKHZvaWQqKSk7ICAKKysKKysgIC8qIHRoaXMgY2FsbCB3 aWxsIGluaXRpYWxpemUgQVJHX0FSRUEsIHN1Y2ggdGhhdCBlYWNoCisrICAgKiBlbGVtZW50IGlu IHRoYXQgYXJyYXkgcG9pbnRzIHRvIHRoZSBjb3JyZXNwb25kaW5nIAorKyAgICogdmFsdWUgb24g dGhlIHN0YWNrOyBhbmQgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMKKysgICAqIGEgc3RydWN0dXJl LCBpdCB3aWxsIHJlLXNldCBSRVNQIHRvIHBvaW50IHRvIHRoZQorKyAgICogc3RydWN0dXJlIHJl dHVybiBhZGRyZXNzLiAgKi8KKysKKysgIGZmaV9wcmVwX2luY29taW5nX2FyZ3NfU1lTVihhcmdz LCByZXNwcCwgYXJnX2FyZWEsIGNpZik7CisrCisrICAoY2xvc3VyZS0+ZnVuKSAoY2lmLCAqcmVz cHAsIGFyZ19hcmVhLCBjbG9zdXJlLT51c2VyX2RhdGEpOworKworKyAgcmV0dXJuIGNpZi0+Zmxh Z3M7CisrfQorKworKy8qQC1leHBvcnRoZWFkZXJAKi8KKytzdGF0aWMgdm9pZCAKKytmZmlfcHJl cF9pbmNvbWluZ19hcmdzX1NZU1YoY2hhciAqc3RhY2ssIHZvaWQgKipydmFsdWUsCisrCQkJICAg IHZvaWQgKiphdmFsdWUsIGZmaV9jaWYgKmNpZikKKysvKkA9ZXhwb3J0aGVhZGVyQCovCisrewor KyAgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGk7CisrICByZWdpc3RlciB2b2lkICoqcF9hcmd2Owor KyAgcmVnaXN0ZXIgY2hhciAqYXJncDsKKysgIHJlZ2lzdGVyIGZmaV90eXBlICoqcF9hcmc7Cisr CisrICBhcmdwID0gc3RhY2s7CisrCisrICBpZiAoIGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfU1RS VUNUICkgeworKyAgICAqcnZhbHVlID0gKih2b2lkICoqKSBhcmdwOworKyAgICBhcmdwICs9IDQ7 CisrICB9CisrCisrICBwX2FyZ3YgPSBhdmFsdWU7CisrCisrICBmb3IgKGkgPSBjaWYtPm5hcmdz LCBwX2FyZyA9IGNpZi0+YXJnX3R5cGVzOyAoaSAhPSAwKTsgaS0tLCBwX2FyZysrKQorKyAgICB7 CisrICAgICAgc2l6ZV90IHo7CisrCisrICAgICAgLyogQWxpZ24gaWYgbmVjZXNzYXJ5ICovCisr ICAgICAgaWYgKChzaXplb2YoaW50KSAtIDEpICYgKHVuc2lnbmVkKSBhcmdwKSB7CisrCWFyZ3Ag PSAoY2hhciAqKSBBTElHTihhcmdwLCBzaXplb2YoaW50KSk7CisrICAgICAgfQorKworKyAgICAg IHogPSAoKnBfYXJnKS0+c2l6ZTsKKysKKysgICAgICAvKiBiZWNhdXNlIHdlJ3JlIGxpdHRsZSBl bmRpYW4sIHRoaXMgaXMgd2hhdCBpdCB0dXJucyBpbnRvLiAgICovCisrCisrICAgICAgKnBfYXJn diA9ICh2b2lkKikgYXJncDsKKysKKysgICAgICBwX2FyZ3YrKzsKKysgICAgICBhcmdwICs9IHo7 CisrICAgIH0KKysgIAorKyAgcmV0dXJuOworK30KKysKKysvKiBIb3cgdG8gbWFrZSBhIHRyYW1w b2xpbmUuICAqLworKworKyNkZWZpbmUgRkZJX0lOSVRfVFJBTVBPTElORShUUkFNUCxGVU4sQ1RY KSBcCisrKHsgdW5zaWduZWQgY2hhciAqX190cmFtcCA9ICh1bnNpZ25lZCBjaGFyKikoVFJBTVAp OyBcCisrICAgdW5zaWduZWQgaW50ICBfX2Z1biA9ICh1bnNpZ25lZCBpbnQpKEZVTik7IFwKKysg ICB1bnNpZ25lZCBpbnQgIF9fY3R4ID0gKHVuc2lnbmVkIGludCkoQ1RYKTsgXAorKyAgICoodW5z aWduZWQgaW50KikgJl9fdHJhbXBbMF0gPSAweGU5MmQwMDBmOyAvKiBzdG1mZCBzcCEsIHtyMC1y M30gKi8JXAorKyAgICoodW5zaWduZWQgaW50KikgJl9fdHJhbXBbNF0gPSAweGU1OWYwMDAwOyAv KiBsZHIgcjAsIFtwY10gKi8gXAorKyAgICoodW5zaWduZWQgaW50KikgJl9fdHJhbXBbOF0gPSAw eGU1OWZmMDAwOyAvKiBsZHIgcGMsIFtwY10gKi8gXAorKyAgICoodW5zaWduZWQgaW50KikgJl9f dHJhbXBbMTJdID0gX19jdHg7IFwKKysgICAqKHVuc2lnbmVkIGludCopICZfX3RyYW1wWzE2XSA9 IF9fZnVuOyBcCisrICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBfYmVnIF9fYXNtICgiYTEiKSA9 ICh1bnNpZ25lZCBsb25nKSAoJl9fdHJhbXBbMF0pOwlcCisrICAgcmVnaXN0ZXIgdW5zaWduZWQg bG9uZyBfZW5kIF9fYXNtICgiYTIiKSA9ICh1bnNpZ25lZCBsb25nKSAoJl9fdHJhbXBbMTldKTsJ XAorKyAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgX2ZsZyBfX2FzbSAoImEzIikgPSAwOwkJCVwK KysgICBfX2FzbSBfX3ZvbGF0aWxlICgic3dpIDB4OWYwMDAyCQlAIHN5c19jYWNoZWZsdXNoIglc CisrCSAgIAkJICAgIDogIj1yIiAoX2JlZykJCQkJXAorKwkgICAJCSAgICA6ICIwIiAoX2JlZyks ICJyIiAoX2VuZCksICJyIiAoX2ZsZykpOwlcCisrIH0pCisrCisrCisrLyogdGhlIGNpZiBtdXN0 IGFscmVhZHkgYmUgcHJlcCdlZCAqLworKworK2ZmaV9zdGF0dXMKKytmZmlfcHJlcF9jbG9zdXJl X2xvYyAoZmZpX2Nsb3N1cmUqIGNsb3N1cmUsCisrCQkgICAgICBmZmlfY2lmKiBjaWYsCisrCQkg ICAgICB2b2lkICgqZnVuKShmZmlfY2lmKix2b2lkKix2b2lkKiosdm9pZCopLAorKwkJICAgICAg dm9pZCAqdXNlcl9kYXRhLAorKwkJICAgICAgdm9pZCAqY29kZWxvYykKKyt7CisrICBGRklfQVNT RVJUIChjaWYtPmFiaSA9PSBGRklfU1lTVik7CisrCisrICBGRklfSU5JVF9UUkFNUE9MSU5FICgm Y2xvc3VyZS0+dHJhbXBbMF0sIFwKKysJCSAgICAgICAmZmZpX2Nsb3N1cmVfU1lTViwgIFwKKysJ CSAgICAgICBjb2RlbG9jKTsKKysgICAgCisrICBjbG9zdXJlLT5jaWYgID0gY2lmOworKyAgY2xv c3VyZS0+dXNlcl9kYXRhID0gdXNlcl9kYXRhOworKyAgY2xvc3VyZS0+ZnVuICA9IGZ1bjsKKysK KysgIHJldHVybiBGRklfT0s7CisrfQorLS0tIGxpYmZmaS9zcmMvYXJtL3N5c3YuUy5qagkyMDA3 LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS9zcmMvYXJtL3N5c3Yu UwkyMDA3LTA5LTA2IDE0OjA4OjI2LjAwMDAwMDAwMCArMDIwMAorQEAgLTIwNyw2ICsyMDcsNTQg QEAgTFNZTShMZXBpbG9ndWUpOgorIC5mZmlfY2FsbF9TWVNWX2VuZDoKKyAgICAgICAgIC5zaXpl ICAgIENOQU1FKGZmaV9jYWxsX1NZU1YpLC5mZmlfY2FsbF9TWVNWX2VuZC1DTkFNRShmZmlfY2Fs bF9TWVNWKQorIAorKy8qCisrCXVuc2lnbmVkIGludCBGRklfSElEREVOCisrCWZmaV9jbG9zdXJl X1NZU1ZfaW5uZXIgKGNsb3N1cmUsIHJlc3BwLCBhcmdzKQorKwkgICAgIGZmaV9jbG9zdXJlICpj bG9zdXJlOworKwkgICAgIHZvaWQgKipyZXNwcDsKKysgIAkgICAgIHZvaWQgKmFyZ3M7CisrKi8K KysKKytBUk1fRlVOQ19TVEFSVCBmZmlfY2xvc3VyZV9TWVNWCisrCWFkZAlpcCwgc3AsICMxNgor KwlzdG1mZAlzcCEsIHtpcCwgbHJ9CisrCWFkZAlyMiwgc3AsICM4CisrCXN1YglzcCwgc3AsICMx NgorKwlzdHIJc3AsIFtzcCwgIzhdCisrCWFkZAlyMSwgc3AsICM4CisrCWJsCWZmaV9jbG9zdXJl X1NZU1ZfaW5uZXIKKysJY21wCXIwLCAjRkZJX1RZUEVfSU5UCisrCWJlcQkuTHJldGludAorKwlj bXAJcjAsICNGRklfVFlQRV9GTE9BVAorKwliZXEJLkxyZXRmbG9hdAorKwljbXAJcjAsICNGRklf VFlQRV9ET1VCTEUKKysJYmVxCS5McmV0ZG91YmxlCisrCWNtcAlyMCwgI0ZGSV9UWVBFX0xPTkdE T1VCTEUKKysJYmVxCS5McmV0bG9uZ2RvdWJsZQorKwljbXAJcjAsICNGRklfVFlQRV9TSU5UNjQK KysJYmVxCS5McmV0bG9uZ2xvbmcKKysuTGNsb3N1cmVfZXBpbG9ndWU6CisrCWFkZAlzcCwgc3As ICMxNgorKwlsZG1mZAlzcCwge3NwLCBwY30KKysuTHJldGludDoKKysJbGRyCXIwLCBbc3BdCisr CWIJLkxjbG9zdXJlX2VwaWxvZ3VlCisrLkxyZXRsb25nbG9uZzoKKysJbGRyCXIwLCBbc3BdCisr CWxkcglyMSwgW3NwLCAjNF0KKysJYgkuTGNsb3N1cmVfZXBpbG9ndWUKKysuTHJldGZsb2F0Ogor KwlsZGZzCWYwLCBbc3BdCisrCWIJLkxjbG9zdXJlX2VwaWxvZ3VlCisrLkxyZXRkb3VibGU6Cisr CWxkZmQJZjAsIFtzcF0KKysJYgkuTGNsb3N1cmVfZXBpbG9ndWUKKysuTHJldGxvbmdkb3VibGU6 CisrCWxkZmQJZjAsIFtzcF0KKysJYgkuTGNsb3N1cmVfZXBpbG9ndWUKKysuZmZpX2Nsb3N1cmVf U1lTVl9lbmQ6CisrICAgICAgICAuc2l6ZSAgICBDTkFNRShmZmlfY2xvc3VyZV9TWVNWKSwuZmZp X2Nsb3N1cmVfU1lTVl9lbmQtQ05BTUUoZmZpX2Nsb3N1cmVfU1lTVikKKysKKyAjaWYgZGVmaW5l ZCBfX0VMRl9fICYmIGRlZmluZWQgX19saW51eF9fCisgCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFj aywiIixAcHJvZ2JpdHMKKyAjZW5kaWYKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxs L2Nsc19tdWx0aV91c2hvcnQuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIw MAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX211bHRpX3VzaG9ydC5jCTIw MDctMDktMDYgMTQ6MDc6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0LDcgQEAKKyAgICBQ UjoJCVBSMTMyMjEuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAz MTEyOSAgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0q IHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZh aWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB1bnNpZ25l ZCBzaG9ydCB0ZXN0X2Z1bmNfZm4odW5zaWduZWQgc2hvcnQgYTEsIHVuc2lnbmVkIHNob3J0IGEy KQorLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQxNi5jLmpq CTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0 ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDE2LmMJMjAwNy0wOS0wNiAxNDowNzozMC4wMDAw MDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBPcmlnaW5h dG9yOgk8aG9zQHRhbWFuZWdpLm9yZz4gMjAwMzEyMDMJICovCisgCistLyogeyBkZy1kbyBydW4g eyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9 IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNs dWRlICJmZml0ZXN0LmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiB7Cist LS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0MS5jLmpqCTIwMDct MDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJm ZmkuY2FsbC9uZXN0ZWRfc3RydWN0MS5jCTIwMDctMDktMDYgMTQ6MDc6MzAuMDAwMDAwMDAwICsw MjAwCitAQCAtNSw3ICs1LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFu ZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhm YWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAq LworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUg ImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZTEgeworLS0t IGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDMuYy5qagkyMDA3LTA5 LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZp LmNhbGwvbmVzdGVkX3N0cnVjdDMuYwkyMDA3LTA5LTA2IDE0OjA3OjMwLjAwMDAwMDAwMCArMDIw MAorQEAgLTYsNyArNiw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRy ZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA5MTEJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFp bCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8K KysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJm Zml0ZXN0LmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgQSB7CistLS0gbGliZmZpL3Rlc3RzdWl0ZS9s aWJmZmkuY2FsbC9jbHNfN18xX2J5dGUuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAw MCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmMJ MjAwNy0wOS0wNiAxNDowNzozMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC01LDcgKzUsNyBAQAorICAg IFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDUw NzA4CSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSog c3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFp bCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVkZWYg c3RydWN0IGNsc19zdHJ1Y3RfN2J5dGUgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNh bGwvY2xzX2RvdWJsZS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisr KysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZG91YmxlLmMJMjAwNy0wOS0wNiAx NDowNzozMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBAQAorICAgIFBSOgkJbm9uZS4K KyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwODI4CSAqLworIAor LS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0q LSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSot KiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHN0YXRpYyB2b2lkIGNsc19yZXRf ZG91YmxlX2ZuKGZmaV9jaWYqIGNpZiBfX1VOVVNFRF9fLCB2b2lkKiByZXNwLCB2b2lkKiogYXJn cywKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19zaW50LmMuamoJMjAwNy0w OS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc19zaW50LmMJMjAwNy0wOS0wNiAxNDowNzozMy4wMDAwMDAwMDAgKzAyMDAKK0BA IC00LDcgKzQsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RA Z2NjLmdudS5vcmc+IDIwMDMxMTA4CSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlw czY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyog eyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVz dC5oIgorIAorIHN0YXRpYyB2b2lkIGNsc19yZXRfc2ludF9mbihmZmlfY2lmKiBjaWYgX19VTlVT RURfXywgdm9pZCogcmVzcCwgdm9pZCoqIGFyZ3MsCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJm ZmkuY2FsbC9jbHNfMjBieXRlMS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjBieXRlMS5jCTIwMDct MDktMDYgMTQ6MDc6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtNSw3ICs1LDkgQEAKKyAgICBQUjoJ CW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkg Ki8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9u Z2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKworKworKy8qIHsgZGctZG8gcnVuIHsgeGZh aWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVm IHN0cnVjdCBjbHNfc3RydWN0XzIwYnl0ZSB7CistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmku Y2FsbC9jbHNfbXVsdGlfc3Nob3J0Y2hhci5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAw MDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbXVsdGlfc3No b3J0Y2hhci5jCTIwMDctMDktMDYgMTQ6MDc6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0 LDcgQEAKKyAgICBQUjoJCVBSMTMyMjEuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5n bnUub3JnPiAyMDAzMTEyOSAgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCot Ki0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGct ZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIK KyAKKyBzaWduZWQgc2hvcnQgdGVzdF9mdW5jX2ZuKHNpZ25lZCBjaGFyIGExLCBzaWduZWQgc2hv cnQgYTIsCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDY0 LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVz dHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50NjQuYwkyMDA3LTA5LTA2IDE0OjA3OjM0 LjAwMDAwMDAwMCArMDIwMAorQEAgLTQsNyArNCw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9y aWdpbmF0b3I6CTxob3NAdGFtYW5lZ2kub3JnPiAyMDAzMTIwMwkgKi8KKyAKKy0vKiB7IGRnLWRv IHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSot Ki0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisg I2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0X2FsaWdu IHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTIuYy5qagkyMDA3 LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGli ZmZpLmNhbGwvY2xzXzNieXRlMi5jCTIwMDctMDktMDYgMTQ6MDc6MzQuMDAwMDAwMDAwICswMjAw CitAQCAtNiw3ICs2LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJl YXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWls IG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLwor Ky8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZm aXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzNieXRlXzEgeworLS0tIGxp YmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX211bHRpX3NjaGFyLmMuamoJMjAwNy0wOS0w NiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5j YWxsL2Nsc19tdWx0aV9zY2hhci5jCTIwMDctMDktMDYgMTQ6MDc6MzQuMDAwMDAwMDAwICswMjAw CitAQCAtNCw3ICs0LDcgQEAKKyAgICBQUjoJCVBSMTMyMjEuCisgICAgT3JpZ2luYXRvcjoJPGhv c0B0YW1hbmVnaS5vcmc+IDIwMDMxMTI5ICAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwg bWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisr LyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZp dGVzdC5oIgorIAorIHNpZ25lZCBjaGFyIHRlc3RfZnVuY19mbihzaWduZWQgY2hhciBhMSwgc2ln bmVkIGNoYXIgYTIpCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbXVsdGlf dWNoYXIuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZm aS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX211bHRpX3VjaGFyLmMJMjAwNy0wOS0wNiAxNDow NzozNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBAQAorICAgIFBSOgkJUFIxMzIyMS4K KyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMxMTI5ICAqLworIAor LS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0q LSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSot KiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHVuc2lnbmVkIGNoYXIgdGVzdF9m dW5jX2ZuKHVuc2lnbmVkIGNoYXIgYTEsIHVuc2lnbmVkIGNoYXIgYTIsCistLS0gbGliZmZpL3Rl c3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTlieXRlLmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4w MDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xOWJ5 dGUuYwkyMDA3LTA5LTA2IDE0OjA3OjM0LjAwMDAwMDAwMCArMDIwMAorQEAgLTUsNyArNSw3IEBA CisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4g MjAwMzA5MTUJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0q LSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7 IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCisgdHlw ZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF8xOWJ5dGUgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGli ZmZpLmNhbGwvY2xzXzlieXRlMS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOWJ5dGUxLmMJMjAwNy0w OS0wNiAxNDowNzozNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC03LDcgKzcsNyBAQAorICAgIFBSOgkJ bm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwOTE0CSAq LworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25n YXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBz NjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVkZWYgc3RydWN0 IGNsc19zdHJ1Y3RfOWJ5dGUgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xz X2FsaWduX2Zsb2F0LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysr KyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9mbG9hdC5jCTIwMDctMDkt MDYgMTQ6MDc6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0LDcgQEAKKyAgICBQUjoJCW5v bmUuCisgICAgT3JpZ2luYXRvcjoJPGhvc0B0YW1hbmVnaS5vcmc+IDIwMDMxMjAzCSAqLworIAor LS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0q LSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSot KiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVkZWYgc3RydWN0IGNsc19z dHJ1Y3RfYWxpZ24geworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV9m bjEuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS90 ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV9mbjEuYwkyMDA3LTA5LTA2IDE0OjA3OjM0LjAw MDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdp bmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA4MjgJICovCisgCistLyogeyBkZy1k byBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUq LSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLwor ICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCisgCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmku Y2FsbC9wcm9ibGVtMS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisr KysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9wcm9ibGVtMS5jCTIwMDctMDktMDYgMTQ6 MDc6MzQuMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0LDcgQEAKKyAgICBQUjoJCW5vbmUuCisg ICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkgKi8KKyAKKy0v KiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0q IHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSog fSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBteV9mZmlf c3RydWN0IHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm4zLmMu amoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1 aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm4zLmMJMjAwNy0wOS0wNiAxNDowNzozNC4wMDAwMDAw MDAgKzAyMDAKK0BAIC02LDcgKzYsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9y Ogk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwODI4CSAqLworIAorLS8qIHsgZGctZG8gcnVu IHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSog fSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5j bHVkZSAiZmZpdGVzdC5oIgorIAorIHN0YXRpYyB2b2lkIGNsb3N1cmVfdGVzdF9mbjMoZmZpX2Np ZiogY2lmIF9fVU5VU0VEX18sIHZvaWQqIHJlc3AsIHZvaWQqKiBhcmdzLAorLS0tIGxpYmZmaS90 ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX3NzaG9ydC5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDku MDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfc3No b3J0LmMJMjAwNy0wOS0wNiAxNDowNzozNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBA QAorICAgIFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+ IDIwMDMxMTA4CSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJt Ki0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4g eyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHN0 YXRpYyB2b2lkIGNsc19yZXRfc3Nob3J0X2ZuKGZmaV9jaWYqIGNpZiBfX1VOVVNFRF9fLCB2b2lk KiByZXNwLCB2b2lkKiogYXJncywKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Ns b3N1cmVfZm41LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBs aWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm41LmMJMjAwNy0wOS0wNiAxNDow NzozNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDcgKzYsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAg ICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMxMDI2CSAqLworIAorLS8q IHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSog eHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9 IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHN0YXRpYyB2b2lkCistLS0gbGliZmZp L3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fZG91YmxlLmMuamoJMjAwNy0wOS0wNiAx NDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxs L2Nsc19hbGlnbl9kb3VibGUuYwkyMDA3LTA5LTA2IDE0OjA3OjM0LjAwMDAwMDAwMCArMDIwMAor QEAgLTQsNyArNCw5IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxob3NAdGFt YW5lZ2kub3JnPiAyMDAzMTIwMwkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2 NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKworKwor Ky8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZm aXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHsKKy0tLSBsaWJm ZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yYnl0ZS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6 MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNf MmJ5dGUuYwkyMDA3LTA5LTA2IDE0OjA3OjM0LjAwMDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiw3 IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9y Zz4gMjAwMzA4MjgJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBh cm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1 biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCisg dHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF8yYnl0ZSB7CistLS0gbGliZmZpL3Rlc3RzdWl0ZS9s aWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAw MDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Qu YwkyMDA3LTA5LTA2IDE0OjA3OjM0LjAwMDAwMDAwMCArMDIwMAorQEAgLTUsNyArNSw3IEBACisg ICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAw MzA4MjgJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSot KiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhm YWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCisgdHlwZWRl ZiBzdHJ1Y3QgY2xzX3N0cnVjdF8xNmJ5dGUxIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc180Ynl0ZS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAw CisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNGJ5dGUuYwkyMDA3LTA5LTA2 IDE0OjA3OjM1LjAwMDAwMDAwMCArMDIwMAorQEAgLTUsNyArNSw3IEBACisgICAgUFI6CQlub25l LgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA4MjgJICovCisg CistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0q LSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCot Ki0qIH0gfSAqLworIAorICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCistLS0gbGliZmZpL3Rlc3Rz dWl0ZS9saWJmZmkuY2FsbC9jbHNfNmJ5dGUuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAw MDAwMCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZieXRlLmMJ MjAwNy0wOS0wNiAxNDowNzozNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC01LDcgKzUsOCBAQAorICAg IFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMw ODI4CSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSog c3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrCisrLyogeyBkZy1kbyBydW4geyB4 ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVk ZWYgc3RydWN0IGNsc19zdHJ1Y3RfNmJ5dGUgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZp LmNhbGwvY2xzXzhieXRlLmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAK KysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc184Ynl0ZS5jCTIwMDctMDktMDYg MTQ6MDc6MzUuMDAwMDAwMDAwICswMjAwCitAQCAtNSw3ICs1LDcgQEAKKyAgICBQUjoJCW5vbmUu CisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkgKi8KKyAK Ky0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSot Ki0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0q LSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNf c3RydWN0XzhieXRlIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19tdWx0 aV9zc2hvcnQuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxp YmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX211bHRpX3NzaG9ydC5jCTIwMDctMDktMDYg MTQ6MDc6MzUuMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0LDcgQEAKKyAgICBQUjoJCVBSMTMy MjEuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMTEyOSAgKi8K KyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2Fy bSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0 Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyBzaWduZWQgc2hvcnQgdGVz dF9mdW5jX2ZuKHNpZ25lZCBzaG9ydCBhMSwgc2lnbmVkIHNob3J0IGEyKQorLS0tIGxpYmZmaS90 ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQzMi5jLmpqCTIwMDctMDktMDYgMTQ6 MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9j bHNfYWxpZ25fdWludDMyLmMJMjAwNy0wOS0wNiAxNDowNzozNS4wMDAwMDAwMDAgKzAyMDAKK0BA IC00LDcgKzQsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8aG9zQHRhbWFu ZWdpLm9yZz4gMjAwMzEyMDMJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQq LSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRn LWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0Lmgi CisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiB7CistLS0gbGliZmZpL3Rlc3Rz dWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDE2LmMuamoJMjAwNy0wOS0wNiAxNDowNTow OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19h bGlnbl9zaW50MTYuYwkyMDA3LTA5LTA2IDE0OjA3OjM1LjAwMDAwMDAwMCArMDIwMAorQEAgLTQs NyArNCw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxob3NAdGFtYW5lZ2ku b3JnPiAyMDAzMTIwMwkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0q IGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8g cnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAK KyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRl L2xpYmZmaS5jYWxsL2Nsc19mbG9hdC5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAw ICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZmxvYXQuYwkyMDA3 LTA5LTA2IDE0OjA3OjM1LjAwMDAwMDAwMCArMDIwMAorQEAgLTQsNyArNCw3IEBACisgICAgUFI6 CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA4MjgJ ICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJv bmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1p cHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCisgc3RhdGljIHZvaWQg Y2xzX3JldF9mbG9hdF9mbihmZmlfY2lmKiBjaWYgX19VTlVTRURfXywgdm9pZCogcmVzcCwgdm9p ZCoqIGFyZ3MsCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjBieXRlLmMu amoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1 aXRlL2xpYmZmaS5jYWxsL2Nsc18yMGJ5dGUuYwkyMDA3LTA5LTA2IDE0OjA3OjM1LjAwMDAwMDAw MCArMDIwMAorQEAgLTUsNyArNSw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6 CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA4MjgJICovCisgCistLyogeyBkZy1kbyBydW4g eyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9 IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNs dWRlICJmZml0ZXN0LmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF8yMGJ5dGUgewor LS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzVfMV9ieXRlLmMuamoJMjAwNy0w OS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc181XzFfYnl0ZS5jCTIwMDctMDktMDYgMTQ6MDc6MzUuMDAwMDAwMDAwICswMjAw CitAQCAtNSw3ICs1LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJl YXN0QGdjYy5nbnUub3JnPiAyMDA1MDcwOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWls IG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLwor Ky8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZm aXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzVieXRlIHsKKy0tLSBsaWJm ZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QyLmMuamoJMjAwNy0wOS0wNiAx NDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxs L25lc3RlZF9zdHJ1Y3QyLmMJMjAwNy0wOS0wNiAxNDowNzozNS4wMDAwMDAwMDAgKzAyMDAKK0BA IC02LDcgKzYsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RA Z2NjLmdudS5vcmc+IDIwMDMwOTExCSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlw czY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyog eyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVz dC5oIgorIAorIHR5cGVkZWYgc3RydWN0IEEgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZp LmNhbGwvY2xzXzI0Ynl0ZS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAw CisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjRieXRlLmMJMjAwNy0wOS0w NiAxNDowNzozNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC01LDcgKzUsNyBAQAorICAgIFBSOgkJbm9u ZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwODI4CSAqLwor IAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJt Ki0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQq LSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVkZWYgc3RydWN0IGNs c19zdHJ1Y3RfMjRieXRlIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182 NGJ5dGUuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZm aS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzY0Ynl0ZS5jCTIwMDctMDktMDYgMTQ6MDc6Mzcu MDAwMDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3Jp Z2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkgKi8KKyAKKy0vKiB7IGRn LWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2Fs ZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICov CisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzY0 Ynl0ZSB7CistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfdWludC5jLmpqCTIw MDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9s aWJmZmkuY2FsbC9jbHNfdWludC5jCTIwMDctMDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAw CitAQCAtNCw3ICs0LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJl YXN0QGdjYy5nbnUub3JnPiAyMDAzMDgyOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWls IG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLwor Ky8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZm aXRlc3QuaCIKKyAKKyBzdGF0aWMgdm9pZCBjbHNfcmV0X3VpbnRfZm4oZmZpX2NpZiogY2lmIF9f VU5VU0VEX18sIHZvaWQqIHJlc3AsIHZvaWQqKiBhcmdzLAorLS0tIGxpYmZmaS90ZXN0c3VpdGUv bGliZmZpLmNhbGwvY2xzX211bHRpX3VzaG9ydGNoYXIuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5 LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX211 bHRpX3VzaG9ydGNoYXIuYwkyMDA3LTA5LTA2IDE0OjA3OjM3LjAwMDAwMDAwMCArMDIwMAorQEAg LTQsNyArNCw3IEBACisgICAgUFI6CQlQUjEzMjIxLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFz dEBnY2MuZ251Lm9yZz4gMjAwMzExMjkgICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBt aXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysv KiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0 ZXN0LmgiCisgCisgdW5zaWduZWQgc2hvcnQgdGVzdF9mdW5jX2ZuKHVuc2lnbmVkIGNoYXIgYTEs IHVuc2lnbmVkIHNob3J0IGEyLAorLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xz X3NjaGFyLmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJm ZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19zY2hhci5jCTIwMDctMDktMDYgMTQ6MDc6Mzcu MDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0LDkgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3Jp Z2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMTEwOAkgKi8KKyAKKy0vKiB7IGRn LWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2Fs ZSotKi0qIH0gfSAqLworKworKworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSog fSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyBzdGF0aWMgdm9pZCBjbHNfcmV0X3Nj aGFyX2ZuKGZmaV9jaWYqIGNpZiBfX1VOVVNFRF9fLCB2b2lkKiByZXNwLCB2b2lkKiogYXJncywK Ky0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc191Y2hhci5jLmpqCTIwMDctMDkt MDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmku Y2FsbC9jbHNfdWNoYXIuYwkyMDA3LTA5LTA2IDE0OjA3OjM3LjAwMDAwMDAwMCArMDIwMAorQEAg LTQsNyArNCw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBn Y2MuZ251Lm9yZz4gMjAwMzA4MjgJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBz NjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7 IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0 LmgiCisgCisgc3RhdGljIHZvaWQgY2xzX3JldF91Y2hhcl9mbihmZmlfY2lmKiBjaWYgX19VTlVT RURfXywgdm9pZCogcmVzcCwgdm9pZCoqIGFyZ3MsCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJm ZmkuY2FsbC9jbHNfYWxpZ25fdWludDY0LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAw MDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50 NjQuYwkyMDA3LTA5LTA2IDE0OjA3OjM3LjAwMDAwMDAwMCArMDIwMAorQEAgLTQsNyArNCw4IEBA CisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxob3NAdGFtYW5lZ2kub3JnPiAyMDAz MTIwMwkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0q IHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKworKy8qIHsgZGctZG8gcnVuIHsg eGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBl ZGVmIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZm aS5jYWxsL2Nsc191bG9uZ2xvbmcuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCAr MDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX3Vsb25nbG9uZy5jCTIw MDctMDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0LDcgQEAKKyAgICBQ UjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDgy OAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0 cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZhaWwg bWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyBzdGF0aWMgdm9p ZCBjbHNfcmV0X3Vsb25nbG9uZ19mbihmZmlfY2lmKiBjaWYgX19VTlVTRURfXywgdm9pZCogcmVz cCwKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91Ymxl LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVz dHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlLmMJMjAwNy0wOS0wNiAxNDow NzozNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAg ICBPcmlnaW5hdG9yOgk8aG9zQHRhbWFuZWdpLm9yZz4gMjAwMzEyMDMJICovCisgCistLyogeyBk Zy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2Nh bGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAq LworIAorICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJm ZmkuY2FsbC9jbHNfMV8xYnl0ZS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMV8xYnl0ZS5jCTIwMDct MDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDkgQEAKKyAgICBQUjoJ CW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAzMDkwMgkg Ki8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0qIHN0cm9u Z2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKworKworKy8qIHsgZGctZG8gcnVuIHsgeGZh aWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVm IHN0cnVjdCBjbHNfc3RydWN0XzFfMWJ5dGUgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZp LmNhbGwvY2xzXzEyYnl0ZS5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAw CisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTJieXRlLmMJMjAwNy0wOS0w NiAxNDowNzozNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBAQAorICAgIFBSOgkJbm9u ZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwODI4CSAqLwor IAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJt Ki0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQq LSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVkZWYgc3RydWN0IGNs c19zdHJ1Y3RfMTJieXRlIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18z XzFieXRlLmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJm ZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zXzFieXRlLmMJMjAwNy0wOS0wNiAxNDowNzoz Ny4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDcgKzYsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBP cmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwOTAyCSAqLworIAorLS8qIHsg ZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNj YWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0g Ki8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5cGVkZWYgc3RydWN0IGNsc19zdHJ1Y3Rf M18xYnl0ZSB7CistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfM2J5dGUxLmMu amoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1 aXRlL2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTEuYwkyMDA3LTA5LTA2IDE0OjA3OjM3LjAwMDAwMDAw MCArMDIwMAorQEAgLTYsNyArNiw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6 CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA4MjgJICovCisgCistLyogeyBkZy1kbyBydW4g eyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9 IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNs dWRlICJmZml0ZXN0LmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF8zYnl0ZSB7Cist LS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNF8xYnl0ZS5jLmpqCTIwMDctMDkt MDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmku Y2FsbC9jbHNfNF8xYnl0ZS5jCTIwMDctMDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAwCitA QCAtNiw3ICs2LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0 QGdjYy5nbnUub3JnPiAyMDAzMDkwMgkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1p cHM2NCotKi0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8q IHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRl c3QuaCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzRfMWJ5dGUgeworLS0tIGxpYmZm aS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZfMV9ieXRlLmMuamoJMjAwNy0wOS0wNiAxNDow NTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Ns c182XzFfYnl0ZS5jCTIwMDctMDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtNSw3 ICs1LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5n bnUub3JnPiAyMDA1MDcwOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCot Ki0qIGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGct ZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIK KyAKKyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzZieXRlIHsKKy0tLSBsaWJmZmkvdGVzdHN1 aXRlL2xpYmZmaS5jYWxsL2Nsc18xNmJ5dGUuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAw MDAwMCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE2Ynl0ZS5j CTIwMDctMDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtNSw3ICs1LDcgQEAKKyAg ICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAyMDAz MDgyOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSotKi0q IHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsgeGZh aWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyB0eXBlZGVm IHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZSB7CistLS0gbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmku Y2FsbC9jbHNfMThieXRlLmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAK KysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xOGJ5dGUuYwkyMDA3LTA5LTA2 IDE0OjA3OjM3LjAwMDAwMDAwMCArMDIwMAorQEAgLTUsNyArNSw3IEBACisgICAgUFI6CQlub25l LgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA5MTUJICovCisg CistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0q LSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCot Ki0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0LmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xz X3N0cnVjdF8xOGJ5dGUgeworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xvc3Vy ZV9mbjAuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZm aS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV9mbjAuYwkyMDA3LTA5LTA2IDE0OjA3OjM3 LjAwMDAwMDAwMCArMDIwMAorQEAgLTYsNyArNiwxMCBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBP cmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwODI4CSAqLworIAorLS8qIHsg ZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNj YWxlKi0qLSogfSB9ICovCisrCisrCisrCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQq LSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHN0YXRpYyB2b2lkCistLS0g bGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOWJ5dGUyLmMuamoJMjAwNy0wOS0wNiAx NDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxs L2Nsc185Ynl0ZTIuYwkyMDA3LTA5LTA2IDE0OjA3OjM3LjAwMDAwMDAwMCArMDIwMAorQEAgLTcs NyArNyw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxhbmRyZWFzdEBnY2Mu Z251Lm9yZz4gMjAwMzA5MTQJICovCisgCistLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQq LSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KKysvKiB7IGRn LWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRlICJmZml0ZXN0Lmgi CisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF85Ynl0ZSB7CistLS0gbGliZmZpL3Rlc3Rz dWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX2ZuMi5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAw MDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX2Zu Mi5jCTIwMDctMDktMDYgMTQ6MDc6MzcuMDAwMDAwMDAwICswMjAwCitAQCAtNiw3ICs2LDcgQEAK KyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUub3JnPiAy MDAzMDgyOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSot Ki0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsg eGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAKKyBzdGF0 aWMgdm9pZCBjbG9zdXJlX3Rlc3RfZm4yKGZmaV9jaWYqIGNpZiBfX1VOVVNFRF9fLCB2b2lkKiBy ZXNwLCB2b2lkKiogYXJncywKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1 cmVfZm40LmMuamoJMjAwNy0wOS0wNiAxNDowNTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJm ZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm40LmMJMjAwNy0wOS0wNiAxNDowNzoz Ny4wMDAwMDAwMDAgKzAyMDAKK0BAIC02LDcgKzYsNyBAQAorICAgIFBSOgkJbm9uZS4KKyAgICBP cmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMxMDI2CSAqLworIAorLS8qIHsg ZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNj YWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0g Ki8KKyAKKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGli ZmZpLmNhbGwvY2xzX3VzaG9ydC5jLmpqCTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICsw MjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfdXNob3J0LmMJMjAwNy0w OS0wNiAxNDowNzozNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC00LDcgKzQsNyBAQAorICAgIFBSOgkJ bm9uZS4KKyAgICBPcmlnaW5hdG9yOgk8YW5kcmVhc3RAZ2NjLmdudS5vcmc+IDIwMDMwODI4CSAq LworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25n YXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBz NjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHN0YXRpYyB2b2lkIGNs c19yZXRfdXNob3J0X2ZuKGZmaV9jaWYqIGNpZiBfX1VOVVNFRF9fLCB2b2lkKiByZXNwLCB2b2lk KiogYXJncywKKy0tLSBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jLmpq CTIwMDctMDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0 ZS9saWJmZmkuY2FsbC9jbHNfNWJ5dGUuYwkyMDA3LTA5LTA2IDE0OjA3OjM4LjAwMDAwMDAwMCAr MDIwMAorQEAgLTUsNyArNSw3IEBACisgICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CTxh bmRyZWFzdEBnY2MuZ251Lm9yZz4gMjAwMzA4MjgJICovCisgCistLyogeyBkZy1kbyBydW4geyB4 ZmFpbCBtaXBzNjQqLSotKiBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0g Ki8KKysvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIH0gfSAqLworICNpbmNsdWRl ICJmZml0ZXN0LmgiCisgCisgdHlwZWRlZiBzdHJ1Y3QgY2xzX3N0cnVjdF81Ynl0ZSB7CistLS0g bGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fcG9pbnRlci5jLmpqCTIwMDct MDktMDYgMTQ6MDU6MDkuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3Rlc3RzdWl0ZS9saWJm ZmkuY2FsbC9jbHNfYWxpZ25fcG9pbnRlci5jCTIwMDctMDktMDYgMTQ6MDc6MzguMDAwMDAwMDAw ICswMjAwCitAQCAtNCw3ICs0LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJ PGhvc0B0YW1hbmVnaS5vcmc+IDIwMDMxMjAzCSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZh aWwgbWlwczY0Ki0qLSogYXJtKi0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICov CisrLyogeyBkZy1kbyBydW4geyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAi ZmZpdGVzdC5oIgorIAorIHR5cGVkZWYgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24geworLS0tIGxp YmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdieXRlLmMuamoJMjAwNy0wOS0wNiAxNDow NTowOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Ns c183Ynl0ZS5jCTIwMDctMDktMDYgMTQ6MDc6MzguMDAwMDAwMDAwICswMjAwCitAQCAtNSw3ICs1 LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGFuZHJlYXN0QGdjYy5nbnUu b3JnPiAyMDAzMDgyOAkgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0q IGFybSotKi0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8g cnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3QuaCIKKyAK KyB0eXBlZGVmIHN0cnVjdCBjbHNfc3RydWN0XzdieXRlIHsKKy0tLSBsaWJmZmkvdGVzdHN1aXRl L2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MzIuYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAw MDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWdu X3NpbnQzMi5jCTIwMDctMDktMDYgMTQ6MDc6MzguMDAwMDAwMDAwICswMjAwCitAQCAtNCw3ICs0 LDcgQEAKKyAgICBQUjoJCW5vbmUuCisgICAgT3JpZ2luYXRvcjoJPGhvc0B0YW1hbmVnaS5vcmc+ IDIwMDMxMjAzCSAqLworIAorLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgbWlwczY0Ki0qLSogYXJt Ki0qLSogc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCisrLyogeyBkZy1kbyBydW4g eyB4ZmFpbCBtaXBzNjQqLSotKiB9IH0gKi8KKyAjaW5jbHVkZSAiZmZpdGVzdC5oIgorIAorIHR5 cGVkZWYgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24geworLS0tIGxpYmZmaS90ZXN0c3VpdGUvbGli ZmZpLnNwZWNpYWwvdW53aW5kdGVzdC5jYy5qagkyMDA3LTA5LTA2IDE0OjA1OjA5LjAwMDAwMDAw MCArMDIwMAorKysrIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLnNwZWNpYWwvdW53aW5kdGVzdC5j YwkyMDA3LTA5LTA2IDE0OjA3OjM5LjAwMDAwMDAwMCArMDIwMAorQEAgLTQsNyArNCw3IEBACisg ICAgUFI6CQlub25lLgorICAgIE9yaWdpbmF0b3I6CUplZmYgU3R1cm0gPGpzdHVybUBvbmUtcG9p bnQuY29tPiAgKi8KKyAKKy0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsIG1pcHM2NCotKi0qIGFybSot Ki0qIHN0cm9uZ2FybSotKi0qIHhzY2FsZSotKi0qIH0gfSAqLworKy8qIHsgZGctZG8gcnVuIHsg eGZhaWwgbWlwczY0Ki0qLSogfSB9ICovCisgI2luY2x1ZGUgImZmaXRlc3RjeHguaCIKKyAKKyB2 b2lkCgpkaWZmIC0tZ2l0IGEvZ2NjNDEtamF2YS1hcm0yLnBhdGNoIGIvZ2NjNDEtamF2YS1hcm0y LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZmZjY2MKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2M0MS1qYXZhLWFybTIucGF0Y2gKQEAgLTAsMCArMSwxMTQgQEAKKzIw MDctMDctMTMgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgorCisJKiBsaWJnY2oudmVy OiBBZGQgX19nY2pfcGVyc29uYWxpdHlfc2owLgorCisyMDA3LTA3LTExICBBbmRyZXcgSGFsZXkg IDxhcGhAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmhvc3QgKGFybSotbGludXgtZ251KTog TmV3LgorCSogc3lzZGVwL2FybS9sb2Nrcy5oOiBOZXcuCisKKy0tLSBsaWJqYXZhL2NvbmZpZ3Vy ZS5ob3N0CShyZXZpc2lvbiAxMjY2MjEpCisrKysgbGliamF2YS9jb25maWd1cmUuaG9zdAkocmV2 aXNpb24gMTI2NjIzKQorQEAgLTgyLDYgKzgyLDEwIEBAIGNhc2UgIiR7aG9zdH0iIGluCisgCWVu YWJsZV9nZXRlbnZfcHJvcGVydGllc19kZWZhdWx0PW5vCisgCWVuYWJsZV9tYWluX2FyZ3NfZGVm YXVsdD1ubworIAk7OworKyAgYXJtKi1saW51eC1nbnUpCisrCWxpYmdjal9pbnRlcnByZXRlcj15 ZXMKKysJc3lzZGVwc19kaXI9YXJtCisrCTs7CisgICBtaXBzLXR4MzktKnxtaXBzdHgzOS11bmtu b3duLSopCisgCWxpYmdjal9mbGFncz0iJHtsaWJnY2pfZmxhZ3N9IC1HIDAiCisgCUxERkxBR1M9 IiRMREZMQUdTIC1Uam1yMzkwNGRyYW0ubGQiCistLS0gbGliamF2YS9saWJnY2oudmVyCShyZXZp c2lvbiAxMjY2MjEpCisrKysgbGliamF2YS9saWJnY2oudmVyCShyZXZpc2lvbiAxMjY2MjMpCitA QCAtMiw2ICsyLDYgQEAKKyAjIHN5bWJvbHMgaW4gbGliZ2NqLnNvLgorIAorIHsKKy0gIGdsb2Jh bDogSnYqOyBfSnZfKjsgX19nY2pfcGVyc29uYWxpdHlfdjA7IF9aKjsKKysgIGdsb2JhbDogSnYq OyBfSnZfKjsgX19nY2pfcGVyc29uYWxpdHlfdjA7IF9fZ2NqX3BlcnNvbmFsaXR5X3NqMDsgX1oq OworICAgbG9jYWw6ICo7CisgfTsKKy0tLSBsaWJqYXZhL3N5c2RlcC9hcm0vbG9ja3MuaAkocmV2 aXNpb24gMCkKKysrKyBsaWJqYXZhL3N5c2RlcC9hcm0vbG9ja3MuaAkocmV2aXNpb24gMTI2NjIz KQorQEAgLTAsMCArMSw3OSBAQAorKy8vIGxvY2tzLmggLSBUaHJlYWQgc3luY2hyb25pemF0aW9u IHByaW1pdGl2ZXMuIEFSTSBpbXBsZW1lbnRhdGlvbi4KKysKKysvKiBDb3B5cmlnaHQgKEMpIDIw MDcgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IGxpYmdjai4KKysKKytUaGlzIHNvZnR3YXJlIGlzIGNvcHlyaWdodGVkIHdvcmsgbGljZW5zZWQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZQorK0xpYmdjaiBMaWNlbnNlLiAgUGxlYXNlIGNvbnN1bHQg dGhlIGZpbGUgIkxJQkdDSl9MSUNFTlNFIiBmb3IKKytkZXRhaWxzLiAgKi8KKysKKysjaWZuZGVm IF9fU1lTREVQX0xPQ0tTX0hfXworKyNkZWZpbmUgX19TWVNERVBfTE9DS1NfSF9fCisrCisrdHlw ZWRlZiBzaXplX3Qgb2JqX2FkZHJfdDsJLyogSW50ZWdlciB0eXBlIGJpZyBlbm91Z2ggZm9yIG9i amVjdAkqLworKwkJCQkvKiBhZGRyZXNzLgkJCQkqLworKworKy8qIEF0b21pYyBjb21wYXJlIGFu ZCBleGNoYW5nZS4gIFRoZXNlIHNlcXVlbmNlcyBhcmUgbm90IGFjdHVhbGx5CisrICAgYXRvbWlj OyB0aGVyZSBpcyBhIHJhY2UgaWYgKkFERFIgIT0gT0xEX1ZBTCBhbmQgd2UgYXJlIHByZWVtcHRl ZAorKyAgIGJldHdlZW4gdGhlIHR3byBzd2Fwcy4gIEhvd2V2ZXIsIHRoZXkgYXJlIHZlcnkgY2xv c2UgdG8gYXRvbWljLCBhbmQKKysgICBhcmUgdGhlIGJlc3QgdGhhdCBhIHByZS1BUk12NiBpbXBs ZW1lbnRhdGlvbiBjYW4gZG8gd2l0aG91dAorKyAgIG9wZXJhdGluZyBzeXN0ZW0gc3VwcG9ydC4g IExpbnV4VGhyZWFkcyBoYXMgYmVlbiB1c2luZyB0aGVzZQorKyAgIHNlcXVlbmNlcyBmb3IgbWFu eSB5ZWFycy4gICovCisrCisraW5saW5lIHN0YXRpYyBib29sCisrY29tcGFyZV9hbmRfc3dhcCh2 b2xhdGlsZSBvYmpfYWRkcl90ICphZGRyLAorKwkJIG9ial9hZGRyX3Qgb2xkX3ZhbCwKKysJCSBv YmpfYWRkcl90IG5ld192YWwpCisreworKyAgdm9sYXRpbGUgb2JqX2FkZHJfdCByZXN1bHQsIHRt cDsKKysgIF9fYXNtX18gKCJcbiIKKysJICAgIjA6CWxkcgklW3RtcF0sWyVbYWRkcl1dXG4iCisr CSAgICIJY21wCSVbdG1wXSwlW29sZF92YWxdXG4iCisrCSAgICIJbW92bmUJJVtyZXN1bHRdLCMw XG4iCisrCSAgICIJYm5lCTFmXG4iCisrCSAgICIJc3dwCSVbcmVzdWx0XSwlW25ld192YWxdLFsl W2FkZHJdXVxuIgorKwkgICAiCWNtcAklW3RtcF0sJVtyZXN1bHRdXG4iCisrCSAgICIJc3dwbmUJ JVt0bXBdLCVbcmVzdWx0XSxbJVthZGRyXV1cbiIKKysJICAgIglibmUJMGJcbiIKKysJICAgIglt b3YJJVtyZXN1bHRdLCMxXG4iCisrCSAgICIxOiIKKysJICAgOiBbcmVzdWx0XSAiPSZyIiAocmVz dWx0KSwgW3RtcF0gIj0mciIgKHRtcCkKKysJICAgOiBbYWRkcl0gInIiIChhZGRyKSwgW25ld192 YWxdICJyIiAobmV3X3ZhbCksIFtvbGRfdmFsXSAiciIgKG9sZF92YWwpCisrCSAgIDogImNjIiwg Im1lbW9yeSIpOworKworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisraW5saW5lIHN0YXRpYyB2 b2lkCisrcmVsZWFzZV9zZXQodm9sYXRpbGUgb2JqX2FkZHJfdCAqYWRkciwgb2JqX2FkZHJfdCBu ZXdfdmFsKQorK3sKKysgIF9fYXNtX18gX192b2xhdGlsZV9fKCIiIDogOiA6ICJtZW1vcnkiKTsK KysgICooYWRkcikgPSBuZXdfdmFsOworK30KKysKKytpbmxpbmUgc3RhdGljIGJvb2wKKytjb21w YXJlX2FuZF9zd2FwX3JlbGVhc2Uodm9sYXRpbGUgb2JqX2FkZHJfdCAqYWRkciwKKysJCSAgCQkJ CSAgICAgb2JqX2FkZHJfdCBvbGQsCisrCQkJCQkJICAgICBvYmpfYWRkcl90IG5ld192YWwpCisr eworKyAgcmV0dXJuIGNvbXBhcmVfYW5kX3N3YXAoYWRkciwgb2xkLCBuZXdfdmFsKTsKKyt9Cisr CisrLy8gRW5zdXJlIHRoYXQgc3Vic2VxdWVudCBpbnN0cnVjdGlvbnMgZG8gbm90IGV4ZWN1dGUg b24gc3RhbGUKKysvLyBkYXRhIHRoYXQgd2FzIGxvYWRlZCBmcm9tIG1lbW9yeSBiZWZvcmUgdGhl IGJhcnJpZXIuCisraW5saW5lIHN0YXRpYyB2b2lkCisrcmVhZF9iYXJyaWVyKCkKKyt7CisrICBf X2FzbV9fIF9fdm9sYXRpbGVfXygiIiA6IDogOiAibWVtb3J5Iik7CisrfQorKworKy8vIEVuc3Vy ZSB0aGF0IHByaW9yIHN0b3JlcyB0byBtZW1vcnkgYXJlIGNvbXBsZXRlZCB3aXRoIHJlc3BlY3Qg dG8gb3RoZXIKKysvLyBwcm9jZXNzb3JzLgorK2lubGluZSBzdGF0aWMgdm9pZAorK3dyaXRlX2Jh cnJpZXIoKQorK3sKKysgIF9fYXNtX18gX192b2xhdGlsZV9fKCIiIDogOiA6ICJtZW1vcnkiKTsK Kyt9CisrCisrI2VuZGlmCgpkaWZmIC0tZ2l0IGEvZ2NjNDEtamF2YS1hcm0zLnBhdGNoIGIvZ2Nj NDEtamF2YS1hcm0zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFj MTJjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1qYXZhLWFybTMucGF0Y2gKQEAgLTAsMCAr MSwzMyBAQAorMjAwNy0wNy0xNSAgQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CisKKwkq IHVud2luZC1zamxqLmMgKF9VbndpbmRfR2V0SVBJbmZvKTogQ2hlY2sgZm9yIGNvbnRleHQtPmZj ICE9IE5VTEwKKwliZWZvcmUgbG9va2luZyBpbiB0aGUgY29udGV4dC4KKworCSogY29uZmlndXJl Lmhvc3Q6IAorCWFybSotbGludXgtZ251IC0+IGFybSotbGludXgqLgorCistLS0gZ2NjL3Vud2lu ZC1zamxqLmMJKHJldmlzaW9uIDEyNjY1NykKKysrKyBnY2MvdW53aW5kLXNqbGouYwkocmV2aXNp b24gMTI2NjU5KQorQEAgLTIyMiw3ICsyMjIsMTAgQEAgX1Vud2luZF9QdHIKKyBfVW53aW5kX0dl dElQSW5mbyAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqY29udGV4dCwgaW50ICppcF9iZWZvcmVf aW5zbikKKyB7CisgICAqaXBfYmVmb3JlX2luc24gPSAwOworLSAgcmV0dXJuIGNvbnRleHQtPmZj LT5jYWxsX3NpdGUgKyAxOworKyAgaWYgKGNvbnRleHQtPmZjICE9IE5VTEwpCisrICAgIHJldHVy biBjb250ZXh0LT5mYy0+Y2FsbF9zaXRlICsgMTsKKysgIGVsc2UKKysgICAgcmV0dXJuIDA7Cisg fQorIAorIC8qIFNldCB0aGUgcmV0dXJuIGxhbmRpbmcgcGFkIGluZGV4IGluIENPTlRFWFQuICAq LworLS0tIGxpYmphdmEvY29uZmlndXJlLmhvc3QJKHJldmlzaW9uIDEyNjY1NykKKysrKyBsaWJq YXZhL2NvbmZpZ3VyZS5ob3N0CShyZXZpc2lvbiAxMjY2NTkpCitAQCAtODIsNyArODIsNyBAQCBj YXNlICIke2hvc3R9IiBpbgorIAllbmFibGVfZ2V0ZW52X3Byb3BlcnRpZXNfZGVmYXVsdD1ubwor IAllbmFibGVfbWFpbl9hcmdzX2RlZmF1bHQ9bm8KKyAJOzsKKy0gIGFybSotbGludXgtZ251KQor KyAgYXJtKi1saW51eCopCisgCWxpYmdjal9pbnRlcnByZXRlcj15ZXMKKyAJc3lzZGVwc19kaXI9 YXJtCisgCTs7CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtamF2YS1hcm00LnBhdGNoIGIvZ2NjNDEtamF2 YS1hcm00LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ZTI5NDcK LS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1qYXZhLWFybTQucGF0Y2gKQEAgLTAsMCArMSwxMzgg QEAKKzIwMDctMDktMDQgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgorCisJKiBkZWNs LmMgKGphdmFfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBDYWxsICJfX2N4YV9lbmRfY2xlYW51cCIK Kwl3aGVuIHVzaW5nIHRoZSBBUk0gRUFCSS4KKworMjAwNy0wOC0yOSAgQW5kcmV3IEhhbGV5ICA8 YXBoQHJlZGhhdC5jb20+CisKKyAgICAgICAgKiBjb25maWcvYXJtL2xpYmdjYy1icGFiaS52ZXI6 IEFkZCBfVW53aW5kX0JhY2t0cmFjZSBhcyBHQ0NfNC4zLjAuCisKKzIwMDctMDgtMDggIEFuZHJl dyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgorCisJKiBjb25maWcvYXJtL2xpYnVud2luZC5TIChV TldJTkRfV1JBUFBFUiBfVW53aW5kX0JhY2t0cmFjZSk6IE5ldy4KKwkqIGNvbmZpZy9hcm0vdW53 aW5kLWFybS5oIChfX2dudV9VbndpbmRfQmFja3RyYWNlKTogTmV3LgorCSogY29uZmlnL2FybS91 bndpbmQtYXJtLmMgKF9fZ251X1Vud2luZF9CYWNrdHJhY2UpOiBOZXcuCisKKy0tLSBnY2MvamF2 YS9kZWNsLmMJKHJldmlzaW9uIDEyODA4NSkKKysrKyBnY2MvamF2YS9kZWNsLmMJKHJldmlzaW9u IDEyODA4OCkKK0BAIC0xMDc1LDcgKzEwNzUsMTAgQEAgamF2YV9pbml0X2RlY2xfcHJvY2Vzc2lu ZyAodm9pZCkKKyAgIGVoX3BlcnNvbmFsaXR5X2xpYmZ1bmMgPSBpbml0X29uZV9saWJmdW5jIChV U0lOR19TSkxKX0VYQ0VQVElPTlMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA/ICJfX2djal9wZXJzb25hbGl0eV9zajAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiX19nY2pfcGVyc29uYWxpdHlfdjAiKTsKKy0g IGRlZmF1bHRfaW5pdF91bndpbmRfcmVzdW1lX2xpYmZ1bmMgKCk7CisrICBpZiAodGFyZ2V0bS5h cm1fZWFiaV91bndpbmRlcikKKysgICAgdW53aW5kX3Jlc3VtZV9saWJmdW5jID0gaW5pdF9vbmVf bGliZnVuYyAoIl9fY3hhX2VuZF9jbGVhbnVwIik7CisrICBlbHNlCisrICAgIGRlZmF1bHRfaW5p dF91bndpbmRfcmVzdW1lX2xpYmZ1bmMgKCk7CisgCisgICBsYW5nX2VoX3J1bnRpbWVfdHlwZSA9 IGRvX25vdGhpbmc7CisgCistLS0gZ2NjL2NvbmZpZy9hcm0vbGlidW53aW5kLlMJKHJldmlzaW9u IDEyODA4NSkKKysrKyBnY2MvY29uZmlnL2FybS9saWJ1bndpbmQuUwkocmV2aXNpb24gMTI4MDg4 KQorQEAgLTIzNyw1ICsyMzcsNiBAQCBVTldJTkRfV1JBUFBFUiBfVW53aW5kX1JhaXNlRXhjZXB0 aW9uIDEKKyBVTldJTkRfV1JBUFBFUiBfVW53aW5kX1Jlc3VtZSAxCisgVU5XSU5EX1dSQVBQRVIg X1Vud2luZF9SZXN1bWVfb3JfUmV0aHJvdyAxCisgVU5XSU5EX1dSQVBQRVIgX1Vud2luZF9Gb3Jj ZWRVbndpbmQgMworK1VOV0lORF9XUkFQUEVSIF9VbndpbmRfQmFja3RyYWNlIDIKKyAKKy0jZW5k aWYgIC8qIF9fc3ltYmlhbl9fICovCisrI2VuZGlmICAvKiBuZGVmIF9fc3ltYmlhbl9fICovCist LS0gZ2NjL2NvbmZpZy9hcm0vbGliZ2NjLWJwYWJpLnZlcgkocmV2aXNpb24gMTI4MDg1KQorKysr IGdjYy9jb25maWcvYXJtL2xpYmdjYy1icGFiaS52ZXIJKHJldmlzaW9uIDEyODA4OCkKK0BAIC04 MSwzICs4MSwxMSBAQCBHQ0NfMy41IHsKKyAgICMgR05VLXNwZWNpZmljIGVudHJ5IHBvaW50Lgor ICAgX19nbnVfdW53aW5kX2ZyYW1lCisgfQorKworKyVleGNsdWRlIHsKKysgIF9VbndpbmRfQmFj a3RyYWNlCisrfQorKyVpbmhlcml0IEdDQ180LjMuMCBHQ0NfNC4yLjAKKytHQ0NfNC4zLjAgewor KyAgX1Vud2luZF9CYWNrdHJhY2UKKyt9CistLS0gZ2NjL2NvbmZpZy9hcm0vdW53aW5kLWFybS5j CShyZXZpc2lvbiAxMjgwODUpCisrKysgZ2NjL2NvbmZpZy9hcm0vdW53aW5kLWFybS5jCShyZXZp c2lvbiAxMjgwODgpCitAQCAtOTUwLDYgKzk1MCw2NiBAQCBfVW53aW5kX0RlbGV0ZUV4Y2VwdGlv biAoX1Vud2luZF9FeGNlcHRpCisgfQorIAorIAorKy8qIFBlcmZvcm0gc3RhY2sgYmFja3RyYWNl IHRocm91Z2ggdW53aW5kIGRhdGEuICAqLworK19VbndpbmRfUmVhc29uX0NvZGUKKytfX2dudV9V bndpbmRfQmFja3RyYWNlKF9VbndpbmRfVHJhY2VfRm4gdHJhY2UsIHZvaWQgKiB0cmFjZV9hcmd1 bWVudCwKKysJCSAgICAgICBwaGFzZTJfdnJzICogZW50cnlfdnJzKTsKKytfVW53aW5kX1JlYXNv bl9Db2RlCisrX19nbnVfVW53aW5kX0JhY2t0cmFjZShfVW53aW5kX1RyYWNlX0ZuIHRyYWNlLCB2 b2lkICogdHJhY2VfYXJndW1lbnQsCisrCQkgICAgICAgcGhhc2UyX3ZycyAqIGVudHJ5X3ZycykK Kyt7CisrICBwaGFzZTFfdnJzIHNhdmVkX3ZyczsKKysgIF9VbndpbmRfUmVhc29uX0NvZGUgY29k ZTsKKysKKysgIF9VbndpbmRfQ29udHJvbF9CbG9jayB1Y2I7CisrICBfVW53aW5kX0NvbnRyb2xf QmxvY2sgKnVjYnAgPSAmdWNiOworKworKyAgLyogU2V0IHRoZSBwYyB0byB0aGUgY2FsbCBzaXRl LiAgKi8KKysgIGVudHJ5X3Zycy0+Y29yZS5yW1JfUENdID0gZW50cnlfdnJzLT5jb3JlLnJbUl9M Ul07CisrCisrICAvKiBTYXZlIHRoZSBjb3JlIHJlZ2lzdGVycy4gICovCisrICBzYXZlZF92cnMu Y29yZSA9IGVudHJ5X3Zycy0+Y29yZTsKKysgIC8qIFNldCBkZW1hbmQtc2F2ZSBmbGFncy4gICov CisrICBzYXZlZF92cnMuZGVtYW5kX3NhdmVfZmxhZ3MgPSB+KF91dykgMDsKKysgIAorKyAgZG8K KysgICAgeworKyAgICAgIC8qIEZpbmQgdGhlIGVudHJ5IGZvciB0aGlzIHJvdXRpbmUuICAqLwor KyAgICAgIGlmIChnZXRfZWl0X2VudHJ5ICh1Y2JwLCBzYXZlZF92cnMuY29yZS5yW1JfUENdKSAh PSBfVVJDX09LKQorKwl7CisrCSAgY29kZSA9IF9VUkNfRkFJTFVSRTsKKysJICBicmVhazsKKysJ fQorKworKyAgICAgIC8qIFRoZSBkd2FyZiB1bndpbmRlciBhc3N1bWVzIHRoZSBjb250ZXh0IHN0 cnVjdHVyZSBob2xkcyB0aGluZ3MKKysJIGxpa2UgdGhlIGZ1bmN0aW9uIGFuZCBMU0RBIHBvaW50 ZXJzLiAgVGhlIEFSTSBpbXBsZW1lbnRhdGlvbgorKwkgY2FjaGVzIHRoZXNlIGluIHRoZSBleGNl cHRpb24gaGVhZGVyIChVQ0IpLiAgVG8gYXZvaWQKKysJIHJld3JpdGluZyBldmVyeXRoaW5nIHdl IG1ha2UgdGhlIHZpcnR1YWwgSVAgcmVnaXN0ZXIgcG9pbnQgYXQKKysJIHRoZSBVQ0IuICAqLwor KyAgICAgIF9VbndpbmRfU2V0R1IoKF9VbndpbmRfQ29udGV4dCAqKSZzYXZlZF92cnMsIDEyLCAo X1Vud2luZF9QdHIpIHVjYnApOworKworKyAgICAgIC8qIENhbGwgdHJhY2UgZnVuY3Rpb24uICAq LworKyAgICAgIGlmICgoKnRyYWNlKSAoKF9VbndpbmRfQ29udGV4dCAqKSAmc2F2ZWRfdnJzLCB0 cmFjZV9hcmd1bWVudCkgCisrCSAgIT0gX1VSQ19OT19SRUFTT04pCisrCXsKKysJICBjb2RlID0g X1VSQ19GQUlMVVJFOworKwkgIGJyZWFrOworKwl9CisrCisrICAgICAgLyogQ2FsbCB0aGUgcHIg dG8gZGVjaWRlIHdoYXQgdG8gZG8uICAqLworKyAgICAgIGNvZGUgPSAoKHBlcnNvbmFsaXR5X3Jv dXRpbmUpIFVDQl9QUl9BRERSICh1Y2JwKSkKKysJKF9VU19WSVJUVUFMX1VOV0lORF9GUkFNRSB8 IF9VU19GT1JDRV9VTldJTkQsIAorKwkgdWNicCwgKHZvaWQgKikgJnNhdmVkX3Zycyk7CisrICAg IH0KKysgIHdoaWxlIChjb2RlICE9IF9VUkNfRU5EX09GX1NUQUNLCisrCSAmJiBjb2RlICE9IF9V UkNfRkFJTFVSRSk7CisrCisrIGZpbmlzaDoKKysgIHJlc3RvcmVfbm9uX2NvcmVfcmVncyAoJnNh dmVkX3Zycyk7CisrICByZXR1cm4gY29kZTsKKyt9CisrCisrCisgLyogQ29tbW9uIGltcGxlbWVu dGF0aW9uIGZvciBBUk0gQUJJIGRlZmluZWQgcGVyc29uYWxpdHkgcm91dGluZXMuCisgICAgSUQg aXMgdGhlIGluZGV4IG9mIHRoZSBwZXJzb25hbGl0eSByb3V0aW5lLCBvdGhlciBhcmd1bWVudHMg YXJlIGFzIGRlZmluZWQKKyAgICBieSBfX2FlYWJpX3Vud2luZF9jcHBfcHJ7MCwxLDJ9LiAgKi8K Ky0tLSBnY2MvY29uZmlnL2FybS91bndpbmQtYXJtLmgJKHJldmlzaW9uIDEyODA4NSkKKysrKyBn Y2MvY29uZmlnL2FybS91bndpbmQtYXJtLmgJKHJldmlzaW9uIDEyODA4OCkKK0BAIC0yMDUsNiAr MjA1LDEzIEBAIGV4dGVybiAiQyIgeworIAlfVW53aW5kX0NvbnRyb2xfQmxvY2sgKiwgc3RydWN0 IF9VbndpbmRfQ29udGV4dCAqLCB2b2lkICopOworICAgX1Vud2luZF9SZWFzb25fQ29kZSBfVW53 aW5kX0ZvcmNlZFVud2luZCAoX1Vud2luZF9Db250cm9sX0Jsb2NrICosCisgCQkJCQkgICAgX1Vu d2luZF9TdG9wX0ZuLCB2b2lkICopOworKyAgLyogQEBAIFVzZSB1bndpbmQgZGF0YSB0byBwZXJm b3JtIGEgc3RhY2sgYmFja3RyYWNlLiAgVGhlIHRyYWNlIGNhbGxiYWNrCisrICAgICBpcyBjYWxs ZWQgZm9yIGV2ZXJ5IHN0YWNrIGZyYW1lIGluIHRoZSBjYWxsIGNoYWluLCBidXQgbm8gY2xlYW51 cAorKyAgICAgYWN0aW9ucyBhcmUgcGVyZm9ybWVkLiAgKi8KKysgIHR5cGVkZWYgX1Vud2luZF9S ZWFzb25fQ29kZSAoKl9VbndpbmRfVHJhY2VfRm4pIChfVW53aW5kX0NvbnRleHQgKiwgdm9pZCAq KTsKKysgIF9VbndpbmRfUmVhc29uX0NvZGUgX1Vud2luZF9CYWNrdHJhY2UoX1Vud2luZF9UcmFj ZV9GbiwKKysJCQkJCXZvaWQqKTsKKysKKyAgIF9VbndpbmRfV29yZCBfVW53aW5kX0dldENGQSAo c3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKKyAgIHZvaWQgX1Vud2luZF9Db21wbGV0ZShfVW53 aW5kX0NvbnRyb2xfQmxvY2sgKnVjYnApOworICAgdm9pZCBfVW53aW5kX0RlbGV0ZUV4Y2VwdGlv biAoX1Vud2luZF9FeGNlcHRpb24gKik7CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtamF2YS1hcm01LnBh dGNoIGIvZ2NjNDEtamF2YS1hcm01LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmM1YzViNzMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1qYXZhLWFybTUucGF0Y2gK QEAgLTAsMCArMSwyODAgQEAKKzIwMDctMDktMDQgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQu Y29tPgorCisJKiBzcmMvYXJtL3N5c3YuUyAoVU5XSU5EKTogTmV3LgorCShXaG9sZSBmaWxlKTog Q29uZGl0aW9uYWxseSBjb21waWxlIHVud2luZGVyIGRpcmVjdGl2ZXMuCisJKiBzcmMvYXJtL3N5 c3YuUzogQWRkIHVud2luZGVyIGRpcmVjdGl2ZXMuCisKKwkqIHNyYy9hcm0vZmZpLmMgKGZmaV9w cmVwX2FyZ3MpOiBBbGlnbiBzdHJ1Y3RzIGJ5IGF0IGxlYXN0IDQgYnl0ZXMuCisJT25seSB0cmVh dCByMCBhcyBhIHN0cnVjdCBhZGRyZXNzIGlmIHdlJ3JlIGFjdHVhbGx5IHJldHVybmluZyBhCisJ c3RydWN0IGJ5IGFkZHJlc3MuCisJT25seSBjb3B5IHRoZSBieXRlcyB0aGF0IGFyZSBhY3R1YWxs eSB3aXRoaW4gYSBzdHJ1Y3QuCisJKGZmaV9wcmVwX2NpZl9tYWNoZGVwKTogQSBDb21wb3NpdGUg VHlwZSBub3QgbGFyZ2VyIHRoYW4gNCBieXRlcworCWlzIHJldHVybmVkIGluIHIwLCBub3QgcGFz c2VkIGJ5IGFkZHJlc3MuCisJKGZmaV9jYWxsKTogQWxsb2NhdGUgYSB3b3JkLXNpemVkIHRlbXBv cmFyeSBmb3IgdGhlIGNhc2Ugd2hlcmUKKwlhIGNvbXBvc2l0ZSBpcyByZXR1cm5lZCBpbiByMC4K KwkoZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWKTogQWxpZ24gYXMgbmVjZXNzYXJ5LgorCisy MDA3LTA4LTA1ICBTdGV2ZW4gTmV3YnVyeSAgPHNfal9uZXdidXJ5QHlhaG9vLmNvLnVrPgorCisJ KiBzcmMvYXJtL2ZmaS5jIChGRklfSU5JVF9UUkFNUE9MSU5FKTogVXNlIF9fY2xlYXJfY2FjaGUg aW5zdGVhZCBvZiAKKwlkaXJlY3RseSB1c2luZyB0aGUgc3lzX2NhY2hlZmx1c2ggc3lzY2FsbC4K KworMjAwNy0wNy0yNyAgQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CisKKwkqIHNyYy9h cm0vc3lzdi5TIChmZmlfY2xvc3VyZV9TWVNWKTogQWRkIHNvZnQtZmxvYXQuCisKKy0tLSBsaWJm Zmkvc3JjL2FybS9mZmkuYwkocmV2aXNpb24gMTI4MDkyKQorKysrIGxpYmZmaS9zcmMvYXJtL2Zm aS5jCShyZXZpc2lvbiAxMjgwOTMpCitAQCAtNDAsNyArNDAsNyBAQCB2b2lkIGZmaV9wcmVwX2Fy Z3MoY2hhciAqc3RhY2ssIGV4dGVuZGVkCisgCisgICBhcmdwID0gc3RhY2s7CisgCistICBpZiAo IGVjaWYtPmNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUICkgeworKyAgaWYgKCBl Y2lmLT5jaWYtPmZsYWdzID09IEZGSV9UWVBFX1NUUlVDVCApIHsKKyAgICAgKih2b2lkICoqKSBh cmdwID0gZWNpZi0+cnZhbHVlOworICAgICBhcmdwICs9IDQ7CisgICB9CitAQCAtNTgsNiArNTgs OSBAQCB2b2lkIGZmaV9wcmVwX2FyZ3MoY2hhciAqc3RhY2ssIGV4dGVuZGVkCisgCWFyZ3AgPSAo Y2hhciAqKSBBTElHTihhcmdwLCAoKnBfYXJnKS0+YWxpZ25tZW50KTsKKyAgICAgICB9CisgCisr ICAgICAgaWYgKCgqcF9hcmcpLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKysJYXJncCA9IChj aGFyICopIEFMSUdOKGFyZ3AsIDQpOworKworIAkgIHogPSAoKnBfYXJnKS0+c2l6ZTsKKyAJICBp ZiAoeiA8IHNpemVvZihpbnQpKQorIAkgICAgeworQEAgLTgxLDcgKzg0LDcgQEAgdm9pZCBmZmlf cHJlcF9hcmdzKGNoYXIgKnN0YWNrLCBleHRlbmRlZAorIAkJICBicmVhazsKKyAJCSAgCisgCQlj YXNlIEZGSV9UWVBFX1NUUlVDVDoKKy0JCSAgKih1bnNpZ25lZCBpbnQgKikgYXJncCA9ICh1bnNp Z25lZCBpbnQpKihVSU5UMzIgKikoKiBwX2FyZ3YpOworKwkJICBtZW1jcHkoYXJncCwgKnBfYXJn diwgKCpwX2FyZyktPnNpemUpOworIAkJICBicmVhazsKKyAKKyAJCWRlZmF1bHQ6CitAQCAtMTE1 LDcgKzExOCw2IEBAIGZmaV9zdGF0dXMgZmZpX3ByZXBfY2lmX21hY2hkZXAoZmZpX2NpZiAKKyAg IHN3aXRjaCAoY2lmLT5ydHlwZS0+dHlwZSkKKyAgICAgeworICAgICBjYXNlIEZGSV9UWVBFX1ZP SUQ6CistICAgIGNhc2UgRkZJX1RZUEVfU1RSVUNUOgorICAgICBjYXNlIEZGSV9UWVBFX0ZMT0FU OgorICAgICBjYXNlIEZGSV9UWVBFX0RPVUJMRToKKyAgICAgICBjaWYtPmZsYWdzID0gKHVuc2ln bmVkKSBjaWYtPnJ0eXBlLT50eXBlOworQEAgLTEyNiw2ICsxMjgsMTcgQEAgZmZpX3N0YXR1cyBm ZmlfcHJlcF9jaWZfbWFjaGRlcChmZmlfY2lmIAorICAgICAgIGNpZi0+ZmxhZ3MgPSAodW5zaWdu ZWQpIEZGSV9UWVBFX1NJTlQ2NDsKKyAgICAgICBicmVhazsKKyAKKysgICAgY2FzZSBGRklfVFlQ RV9TVFJVQ1Q6CisrICAgICAgaWYgKGNpZi0+cnR5cGUtPnNpemUgPD0gNCkKKysJLyogQSBDb21w b3NpdGUgVHlwZSBub3QgbGFyZ2VyIHRoYW4gNCBieXRlcyBpcyByZXR1cm5lZCBpbiByMC4gICov CisrCWNpZi0+ZmxhZ3MgPSAodW5zaWduZWQpRkZJX1RZUEVfSU5UOworKyAgICAgIGVsc2UKKysJ LyogQSBDb21wb3NpdGUgVHlwZSBsYXJnZXIgdGhhbiA0IGJ5dGVzLCBvciB3aG9zZSBzaXplIGNh bm5vdAorKwkgICBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkgLi4uIGlzIHN0b3JlZCBpbiBtZW1v cnkgYXQgYW4KKysJICAgYWRkcmVzcyBwYXNzZWQgW2luIHIwXS4gICovCisrCWNpZi0+ZmxhZ3Mg PSAodW5zaWduZWQpRkZJX1RZUEVfU1RSVUNUOworKyAgICAgIGJyZWFrOworKworICAgICBkZWZh dWx0OgorICAgICAgIGNpZi0+ZmxhZ3MgPSBGRklfVFlQRV9JTlQ7CisgICAgICAgYnJlYWs7CitA QCAtMTQxLDIxICsxNTQsMjcgQEAgdm9pZCBmZmlfY2FsbChmZmlfY2lmICpjaWYsIHZvaWQgKCpm bikoKQorIHsKKyAgIGV4dGVuZGVkX2NpZiBlY2lmOworIAorKyAgaW50IHNtYWxsX3N0cnVjdCA9 IChjaWYtPmZsYWdzID09IEZGSV9UWVBFX0lOVCAKKysJCSAgICAgICYmIGNpZi0+cnR5cGUtPnR5 cGUgPT0gRkZJX1RZUEVfU1RSVUNUKTsKKysKKyAgIGVjaWYuY2lmID0gY2lmOworICAgZWNpZi5h dmFsdWUgPSBhdmFsdWU7CisrCisrICB1bnNpZ25lZCBpbnQgdGVtcDsKKyAgIAorICAgLyogSWYg dGhlIHJldHVybiB2YWx1ZSBpcyBhIHN0cnVjdCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHJldHVybgkq LworICAgLyogdmFsdWUgYWRkcmVzcyB0aGVuIHdlIG5lZWQgdG8gbWFrZSBvbmUJCSAgICAgICAg Ki8KKyAKKyAgIGlmICgocnZhbHVlID09IE5VTEwpICYmIAorLSAgICAgIChjaWYtPnJ0eXBlLT50 eXBlID09IEZGSV9UWVBFX1NUUlVDVCkpCisrICAgICAgKGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVf U1RSVUNUKSkKKyAgICAgeworICAgICAgIGVjaWYucnZhbHVlID0gYWxsb2NhKGNpZi0+cnR5cGUt PnNpemUpOworICAgICB9CisrICBlbHNlIGlmIChzbWFsbF9zdHJ1Y3QpCisrICAgIGVjaWYucnZh bHVlID0gJnRlbXA7CisgICBlbHNlCisgICAgIGVjaWYucnZhbHVlID0gcnZhbHVlOworLSAgICAK Ky0gIAorKworICAgc3dpdGNoIChjaWYtPmFiaSkgCisgICAgIHsKKyAgICAgY2FzZSBGRklfU1lT VjoKK0BAIC0xNjcsNiArMTg2LDggQEAgdm9pZCBmZmlfY2FsbChmZmlfY2lmICpjaWYsIHZvaWQg KCpmbikoKQorICAgICAgIEZGSV9BU1NFUlQoMCk7CisgICAgICAgYnJlYWs7CisgICAgIH0KKysg IGlmIChzbWFsbF9zdHJ1Y3QpCisrICAgIG1lbWNweSAocnZhbHVlLCAmdGVtcCwgY2lmLT5ydHlw ZS0+c2l6ZSk7CisgfQorIAorIC8qKiBwcml2YXRlIG1lbWJlcnMgKiovCitAQCAtMjI4LDkgKzI0 OSwxMiBAQCBmZmlfcHJlcF9pbmNvbWluZ19hcmdzX1NZU1YoY2hhciAqc3RhY2ssCisgICAgIHsK KyAgICAgICBzaXplX3QgejsKKyAKKysgICAgICBzaXplX3QgYWxpZ25tZW50ID0gKCpwX2FyZykt PmFsaWdubWVudDsKKysgICAgICBpZiAoYWxpZ25tZW50IDwgNCkKKysJYWxpZ25tZW50ID0gNDsK KyAgICAgICAvKiBBbGlnbiBpZiBuZWNlc3NhcnkgKi8KKy0gICAgICBpZiAoKHNpemVvZihpbnQp IC0gMSkgJiAodW5zaWduZWQpIGFyZ3ApIHsKKy0JYXJncCA9IChjaGFyICopIEFMSUdOKGFyZ3As IHNpemVvZihpbnQpKTsKKysgICAgICBpZiAoKGFsaWdubWVudCAtIDEpICYgKHVuc2lnbmVkKSBh cmdwKSB7CisrCWFyZ3AgPSAoY2hhciAqKSBBTElHTihhcmdwLCBhbGlnbm1lbnQpOworICAgICAg IH0KKyAKKyAgICAgICB6ID0gKCpwX2FyZyktPnNpemU7CitAQCAtMjQ4LDIxICsyNzIsMTYgQEAg ZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWKGNoYXIgKnN0YWNrLAorIAorIC8qIEhvdyB0byBt YWtlIGEgdHJhbXBvbGluZS4gICovCisgCistI2RlZmluZSBGRklfSU5JVF9UUkFNUE9MSU5FKFRS QU1QLEZVTixDVFgpIFwKKy0oeyB1bnNpZ25lZCBjaGFyICpfX3RyYW1wID0gKHVuc2lnbmVkIGNo YXIqKShUUkFNUCk7IFwKKy0gICB1bnNpZ25lZCBpbnQgIF9fZnVuID0gKHVuc2lnbmVkIGludCko RlVOKTsgXAorLSAgIHVuc2lnbmVkIGludCAgX19jdHggPSAodW5zaWduZWQgaW50KShDVFgpOyBc CisrI2RlZmluZSBGRklfSU5JVF9UUkFNUE9MSU5FKFRSQU1QLEZVTixDVFgpCQkJCVwKKysoeyB1 bnNpZ25lZCBjaGFyICpfX3RyYW1wID0gKHVuc2lnbmVkIGNoYXIqKShUUkFNUCk7CQkJXAorKyAg IHVuc2lnbmVkIGludCAgX19mdW4gPSAodW5zaWduZWQgaW50KShGVU4pOwkJCQlcCisrICAgdW5z aWduZWQgaW50ICBfX2N0eCA9ICh1bnNpZ25lZCBpbnQpKENUWCk7CQkJCVwKKyAgICAqKHVuc2ln bmVkIGludCopICZfX3RyYW1wWzBdID0gMHhlOTJkMDAwZjsgLyogc3RtZmQgc3AhLCB7cjAtcjN9 ICovCVwKKy0gICAqKHVuc2lnbmVkIGludCopICZfX3RyYW1wWzRdID0gMHhlNTlmMDAwMDsgLyog bGRyIHIwLCBbcGNdICovIFwKKy0gICAqKHVuc2lnbmVkIGludCopICZfX3RyYW1wWzhdID0gMHhl NTlmZjAwMDsgLyogbGRyIHBjLCBbcGNdICovIFwKKy0gICAqKHVuc2lnbmVkIGludCopICZfX3Ry YW1wWzEyXSA9IF9fY3R4OyBcCistICAgKih1bnNpZ25lZCBpbnQqKSAmX190cmFtcFsxNl0gPSBf X2Z1bjsgXAorLSAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgX2JlZyBfX2FzbSAoImExIikgPSAo dW5zaWduZWQgbG9uZykgKCZfX3RyYW1wWzBdKTsJXAorLSAgIHJlZ2lzdGVyIHVuc2lnbmVkIGxv bmcgX2VuZCBfX2FzbSAoImEyIikgPSAodW5zaWduZWQgbG9uZykgKCZfX3RyYW1wWzE5XSk7CVwK Ky0gICByZWdpc3RlciB1bnNpZ25lZCBsb25nIF9mbGcgX19hc20gKCJhMyIpID0gMDsJCQlcCist ICAgX19hc20gX192b2xhdGlsZSAoInN3aSAweDlmMDAwMgkJQCBzeXNfY2FjaGVmbHVzaCIJXAor LQkgICAJCSAgICA6ICI9ciIgKF9iZWcpCQkJCVwKKy0JICAgCQkgICAgOiAiMCIgKF9iZWcpLCAi ciIgKF9lbmQpLCAiciIgKF9mbGcpKTsJXAorKyAgICoodW5zaWduZWQgaW50KikgJl9fdHJhbXBb NF0gPSAweGU1OWYwMDAwOyAvKiBsZHIgcjAsIFtwY10gKi8JXAorKyAgICoodW5zaWduZWQgaW50 KikgJl9fdHJhbXBbOF0gPSAweGU1OWZmMDAwOyAvKiBsZHIgcGMsIFtwY10gKi8JXAorKyAgICoo dW5zaWduZWQgaW50KikgJl9fdHJhbXBbMTJdID0gX19jdHg7CQkJCVwKKysgICAqKHVuc2lnbmVk IGludCopICZfX3RyYW1wWzE2XSA9IF9fZnVuOwkJCQlcCisrICAgX19jbGVhcl9jYWNoZSgoJl9f dHJhbXBbMF0pLCAoJl9fdHJhbXBbMTldKSk7CQkJXAorICB9KQorIAorIAorLS0tIGxpYmZmaS9z cmMvYXJtL3N5c3YuUwkocmV2aXNpb24gMTI4MDkyKQorKysrIGxpYmZmaS9zcmMvYXJtL3N5c3Yu UwkocmV2aXNpb24gMTI4MDkzKQorQEAgLTgyLDYgKzgyLDE0IEBACisgIyBkZWZpbmUgY2FsbF9y ZWcoeCkJbW92CWxyLCBwYyA7IG1vdglwYywgeAorICNlbmRpZgorIAorKy8qIENvbmRpdGlvbmFs bHkgY29tcGlsZSB1bndpbmRlciBkaXJlY3RpdmVzLiAgKi8KKysjaWZkZWYgX19BUk1fRUFCSV9f CisrI2RlZmluZSBVTldJTkQKKysjZWxzZQorKyNkZWZpbmUgVU5XSU5EIEAKKysjZW5kaWYJCisr CisrCQorICNpZiBkZWZpbmVkKF9fdGh1bWJfXykgJiYgIWRlZmluZWQoX19USFVNQl9JTlRFUldP UktfXykKKyAubWFjcm8JQVJNX0ZVTkNfU1RBUlQgbmFtZQorIAkudGV4dAorQEAgLTkyLDYgKzEw MCw3IEBACisgCWJ4CXBjCisgCW5vcAorIAkuYXJtCisrCVVOV0lORCAuZm5zdGFydAorIC8qIEEg aG9vayB0byB0ZWxsIGdkYiB0aGF0IHdlJ3ZlIHN3aXRjaGVkIHRvIEFSTSBtb2RlLiAgQWxzbyB1 c2VkIHRvIGNhbGwKKyAgICBkaXJlY3RseSBmcm9tIG90aGVyIGxvY2FsIGFybSByb3V0aW5lcy4g ICovCisgX0xfX1xuYW1lOgkJCitAQCAtMTAyLDYgKzExMSw3IEBAIF9MX19cbmFtZToJCQorIAku YWxpZ24gMAorIAkuYXJtCisgCUVOVFJZKFxuYW1lKQorKwlVTldJTkQgLmZuc3RhcnQKKyAuZW5k bQorICNlbmRpZgorIAorQEAgLTEzNCw4ICsxNDQsMTEgQEAgX0xfX1xuYW1lOgkJCisgQVJNX0ZV TkNfU1RBUlQgZmZpX2NhbGxfU1lTVgorIAlAIFNhdmUgcmVnaXN0ZXJzCisgICAgICAgICBzdG1m ZAlzcCEsIHtyMC1yMywgZnAsIGxyfQorKwlVTldJTkQgLnNhdmUJe3IwLXIzLCBmcCwgbHJ9Cisg CW1vdglmcCwgc3AKKyAKKysJVU5XSU5EIC5zZXRmcAlmcCwgc3AKKysKKyAJQCBNYWtlIHJvb20g Zm9yIGFsbCBvZiB0aGUgbmV3IGFyZ3MuCisgCXN1YglzcCwgZnAsIHIyCisgCitAQCAtMjA1LDYg KzIxOCw3IEBAIExTWU0oTGVwaWxvZ3VlKToKKyAJUkVUTERNCSJyMC1yMyxmcCIKKyAKKyAuZmZp X2NhbGxfU1lTVl9lbmQ6CisrCVVOV0lORCAuZm5lbmQKKyAgICAgICAgIC5zaXplICAgIENOQU1F KGZmaV9jYWxsX1NZU1YpLC5mZmlfY2FsbF9TWVNWX2VuZC1DTkFNRShmZmlfY2FsbF9TWVNWKQor IAorIC8qCitAQCAtMjE2LDIxICsyMzAsNDAgQEAgTFNZTShMZXBpbG9ndWUpOgorICovCisgCisg QVJNX0ZVTkNfU1RBUlQgZmZpX2Nsb3N1cmVfU1lTVgorKwlVTldJTkQgLnBhZCAjMTYKKyAJYWRk CWlwLCBzcCwgIzE2CisgCXN0bWZkCXNwISwge2lwLCBscn0KKysJVU5XSU5EIC5zYXZlCXtyMCwg bHJ9CisgCWFkZAlyMiwgc3AsICM4CisrCS5wYWQgIzE2CisgCXN1YglzcCwgc3AsICMxNgorIAlz dHIJc3AsIFtzcCwgIzhdCisgCWFkZAlyMSwgc3AsICM4CisgCWJsCWZmaV9jbG9zdXJlX1NZU1Zf aW5uZXIKKyAJY21wCXIwLCAjRkZJX1RZUEVfSU5UCisgCWJlcQkuTHJldGludAorKworIAljbXAJ cjAsICNGRklfVFlQRV9GTE9BVAorKyNpZmRlZiBfX1NPRlRGUF9fCisrCWJlcQkuTHJldGludAor KyNlbHNlCisgCWJlcQkuTHJldGZsb2F0CisrI2VuZGlmCisrCisgCWNtcAlyMCwgI0ZGSV9UWVBF X0RPVUJMRQorKyNpZmRlZiBfX1NPRlRGUF9fCisrCWJlcQkuTHJldGxvbmdsb25nCisrI2Vsc2UK KyAJYmVxCS5McmV0ZG91YmxlCisrI2VuZGlmCisrCisgCWNtcAlyMCwgI0ZGSV9UWVBFX0xPTkdE T1VCTEUKKysjaWZkZWYgX19TT0ZURlBfXworKwliZXEJLkxyZXRsb25nbG9uZworKyNlbHNlCisg CWJlcQkuTHJldGxvbmdkb3VibGUKKysjZW5kaWYKKysKKyAJY21wCXIwLCAjRkZJX1RZUEVfU0lO VDY0CisgCWJlcQkuTHJldGxvbmdsb25nCisgLkxjbG9zdXJlX2VwaWxvZ3VlOgorQEAgLTI0Myw2 ICsyNzYsOCBAQCBBUk1fRlVOQ19TVEFSVCBmZmlfY2xvc3VyZV9TWVNWCisgCWxkcglyMCwgW3Nw XQorIAlsZHIJcjEsIFtzcCwgIzRdCisgCWIJLkxjbG9zdXJlX2VwaWxvZ3VlCisrCisrI2lmbmRl ZiBfX1NPRlRGUF9fCisgLkxyZXRmbG9hdDoKKyAJbGRmcwlmMCwgW3NwXQorIAliCS5MY2xvc3Vy ZV9lcGlsb2d1ZQorQEAgLTI1Miw2ICsyODcsOSBAQCBBUk1fRlVOQ19TVEFSVCBmZmlfY2xvc3Vy ZV9TWVNWCisgLkxyZXRsb25nZG91YmxlOgorIAlsZGZkCWYwLCBbc3BdCisgCWIJLkxjbG9zdXJl X2VwaWxvZ3VlCisrI2VuZGlmCisrCisgLmZmaV9jbG9zdXJlX1NZU1ZfZW5kOgorKwlVTldJTkQg LmZuZW5kCisgICAgICAgICAuc2l6ZSAgICBDTkFNRShmZmlfY2xvc3VyZV9TWVNWKSwuZmZpX2Ns b3N1cmVfU1lTVl9lbmQtQ05BTUUoZmZpX2Nsb3N1cmVfU1lTVikKKyAKCmRpZmYgLS1naXQgYS9n Y2M0MS1qYXZhLWFybTYucGF0Y2ggYi9nY2M0MS1qYXZhLWFybTYucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIxYjFhYgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQx LWphdmEtYXJtNi5wYXRjaApAQCAtMCwwICsxLDkzMiBAQAorMjAwNy0wOS0wNCAgQW5kcmV3IEhh bGV5ICA8YXBoQHJlZGhhdC5jb20+CisKKwlQUiBqYXZhLzI3OTA4CisJKiB0ZXN0c3VpdGUvbGli amF2YS5sYW5nL1BSMjc5MDguamF2YQorCSh7cnVuMSxydW4yLHJ1bjN9LmlzUnVubmluZyk6IE5l dyBNZXRob2QuCisJKG1haW4pOiBGaXggcmFjZSBjb25kaXRpb24uCisKKzIwMDctMDgtMjkgIEFu ZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgorCisJKiBnbnUvY2xhc3NwYXRoL25hdFZNU3Rh Y2tXYWxrZXIuY2MgKFZNU3RhY2tXYWxrZXI6OmdldENhbGxpbmdDbGFzcyk6CisJTWFrZSBzdXJl IHdlJ3JlIG5vdCBzaWJjYWxsZWQuCisJKEdFVF9DQUxMSU5HX0NMQVNTKTogRGVmaW5lIGZvciBB Uk0gRUFCSS4KKworMjAwNy0wOC0yMiAgQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CisK KwkqIGNvbmZpZ3VyZS5ob3N0IChCQUNLVFJBQ0VTUEVDKTogQWRkIGFybSotbGludXgqLgorCisy MDA3LTA4LTIyICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJl LmFjIChMSUJTVERDWFhTUEVDKTogTmV3LgorCSogY29uZmlndXJlLmhvc3Q6IEFkZCBhcm0qLWxp bnV4KiB0byBwdGhyZWFkIHRlc3QuCisJKiBjb25maWd1cmUuYWMgKExJQkdDSlRFU1RTUEVDKTog QWRkIHBhdGggdG8gbGlic3RkYysrIGZvciBBUk0KKwlFQUJJLgorCSogdGVzdHN1aXRlL2xpYmph dmEuam5pL2puaS5leHAgKGdjal9qbmlfY29tcGlsZV9jX3RvX3NvKTogVXNlCisJLWZleGNlcHRp b25zIGZvciBBUk0gRUFCSS4KKwkqIHRlc3RzdWl0ZS9saWIvbGliamF2YS5leHAgKGxpYmphdmFf YXJndW1lbnRzKTogQWRkIGxpYmdjai10ZXN0LnNwZWMuCisJKGxpYmphdmFfaW52b2tlKTogTG9n IHRoZSBpbnZvY2F0aW9uLgorCisyMDA3LTA4LTE1ICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0 LmNvbT4KKworCSogY29uZmlndXJlLmFjIChleHRyYV9sZGZsYWdzKTogRGVmaW5lLgorCSogTWFr ZWZpbGUuYW06IFVzZSBleHRyYV9sZGZsYWdzIGZvciBhbGwgZXhlY3V0YWJsZXMuCisKKzIwMDct MDgtMTQgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgorCisJKiBzeXNkZXAvYXJtL2Jh Y2t0cmFjZS5oOiBSZW1vdmUgc3R1YnMgZm9yIF9VbndpbmRfR2V0SVBJbmZvLAorCV9VbndpbmRf R2V0UmVnaW9uU3RhcnQsIGFuZCBfVW53aW5kX0JhY2t0cmFjZS4KKworMjAwNy0wNy0yNyAgQW5k cmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CisKKwkqIGdudS9jbGFzc3BhdGgvbmF0Vk1TdGFj a1dhbGtlci5jYyAoR0VUX0NBTExJTkdfQ0xBU1MpOiBTdHViIGZvcgorCUFSTSBFQUJJLgorCSog ZXhjZXB0aW9uLmNjIChnZXRfZXhjZXB0aW9uX2hlYWRlcl9mcm9tX3VlKTogTmV3LgorCShnZXRf dHR5cGVfZW50cnkpOiBBUk0gRUFCSSB2ZXJzaW9uLgorCShQRVJTT05BTElUWV9GVU5DVElPTik6 IEFkZCBBUk0gRUFCSSBjb2RlLgorCSogc3lzZGVwL2FybS9iYWNrdHJhY2UuaDogTmV3IGZpbGUu CisJKiBzdGFja3RyYWNlLmNjIChfVVJDX05PUk1BTF9TVE9QKTogTmV3LgorCSogY29uZmlndXJl LmFjIChleHRyYV9sZGZsYWdzX2xpYmphdmEpOiBBZGQgbGlic3VwYysrLmxhIGZvciBBUk0KKwlF QUJJLgorCSogY29uZmlndXJlLmhvc3QgKEJBQ0tUUkFDRVNQRUMpOiBBZGQgYXJtL2JhY2t0cmFj ZS5oLgorCistLS0gbGliamF2YS90ZXN0c3VpdGUvTWFrZWZpbGUuaW4uamoJMjAwNy0wOS0wNiAx NDowNjoxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJqYXZhL3Rlc3RzdWl0ZS9NYWtlZmlsZS5p bgkyMDA3LTA5LTA2IDE3OjIwOjQyLjAwMDAwMDAwMCArMDIwMAorQEAgLTE2MCw2ICsxNjAsNyBA QCBMSUJMVERMID0gQExJQkxURExACisgTElCTUFHSUMgPSBATElCTUFHSUNACisgTElCT0JKUyA9 IEBMSUJPQkpTQAorIExJQlMgPSBATElCU0AKKytMSUJTVERDWFhTUEVDID0gQExJQlNURENYWFNQ RUNACisgTElCVE9PTCA9IEBMSUJUT09MQAorIExOX1MgPSBATE5fU0AKKyBMVExJQklDT05WID0g QExUTElCSUNPTlZACitAQCAtMjY0LDYgKzI2NSw3IEBAIGJ1aWxkX3ZlbmRvciA9IEBidWlsZF92 ZW5kb3JACisgZGF0YWRpciA9IEBkYXRhZGlyQAorIGRiZXhlY2RpciA9IEBkYmV4ZWNkaXJACisg ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisrZXh0cmFfbGRmbGFncyA9IEBleHRyYV9sZGZs YWdzQAorIGV4dHJhX2xkZmxhZ3NfbGliamF2YSA9IEBleHRyYV9sZGZsYWdzX2xpYmphdmFACisg Z3h4X2luY2x1ZGVfZGlyID0gQGd4eF9pbmNsdWRlX2RpckAKKyBoZXJlID0gQGhlcmVACistLS0g bGliamF2YS90ZXN0c3VpdGUvbGliamF2YS5qbmkvam5pLmV4cC5qagkyMDA3LTA5LTA2IDE0OjA2 OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvdGVzdHN1aXRlL2xpYmphdmEuam5pL2pu aS5leHAJMjAwNy0wOS0wNiAxNzoyMDo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yOSw2ICsyOSwx MCBAQCBwcm9jIGdjal9qbmlfY29tcGlsZV9jX3RvX3NvIHtmaWxlIHtvcHRpCisgICBzZXQgbmFt ZSBbZmlsZSByb290bmFtZSAkZmlsZW5hbWVdCisgICBzZXQgc29uYW1lIGxpYiR7bmFtZX0uJHtz b19leHRlbnNpb259CisgCisrICBpZiB7IFtpc3RhcmdldCAiKmFybS0qZWFiaSoiXSB9IHsKKysg ICAgICBsYXBwZW5kIG9wdGlvbnMgImFkZGl0aW9uYWxfZmxhZ3M9LWZleGNlcHRpb25zIgorKyAg fQorKworICAgbGFwcGVuZCBvcHRpb25zICJhZGRpdGlvbmFsX2ZsYWdzPSR7c29fZmxhZ30gLWZQ SUMiCisgICAjIEZpbmQgdGhlIGdlbmVyYXRlZCBoZWFkZXIuCisgICBsYXBwZW5kIG9wdGlvbnMg ImFkZGl0aW9uYWxfZmxhZ3M9LUkuIC1JLi4gLUkkc3JjZGlyLyRzdWJkaXIiCistLS0gbGliamF2 YS90ZXN0c3VpdGUvbGliL2xpYmphdmEuZXhwLmpqCTIwMDctMDktMDYgMTQ6MDY6MTMuMDAwMDAw MDAwICswMjAwCisrKysgbGliamF2YS90ZXN0c3VpdGUvbGliL2xpYmphdmEuZXhwCTIwMDctMDkt MDYgMTc6MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtMzc5LDYgKzM3OSw3IEBAIHByb2MgbGli amF2YV9hcmd1bWVudHMge3ttb2RlIGNvbXBpbGV9fSAKKyAgICAgaWYgeyRtb2RlID09ICJsaW5r In0geworIAlnbG9iYWwgd3JhcHBlcl9maWxlIHdyYXBfY29tcGlsZV9mbGFncworIAlsYXBwZW5k IGFyZ3MgImFkZGl0aW9uYWxfZmxhZ3M9JHdyYXBfY29tcGlsZV9mbGFncyIKKysJbGFwcGVuZCBh cmdzICJhZGRpdGlvbmFsX2ZsYWdzPS1zcGVjcz1saWJnY2otdGVzdC5zcGVjIgorIAlsYXBwZW5k IGFyZ3MgImxpYnM9JHdyYXBwZXJfZmlsZSIKKyAJbGFwcGVuZCBhcmdzICJsaWJzPSRsaWJqYXZh IgorIAlsYXBwZW5kIGFyZ3MgZGVidWcKKy0tLSBsaWJqYXZhL2NvbmZpZ3VyZS5qagkyMDA3LTA5 LTA2IDE0OjA2OjE1LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvY29uZmlndXJlCTIwMDct MDktMDYgMTc6Mjc6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtMzEwLDcgKzMxMCw3IEBAIGFjX2lu Y2x1ZGVzX2RlZmF1bHQ9IlwKKyAjIGluY2x1ZGUgPHVuaXN0ZC5oPgorICNlbmRpZiIKKyAKKy1h Y19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9U QVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBl eGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBs aWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGly IGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxp YXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJT IGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92ZW5kb3IgYnVpbGRfb3MgYnVpbGRfc3ViZGlyIGhvc3Rf c3ViZGlyIHRhcmdldF9zdWJkaXIgbGliZ2NqX2Jhc2VkaXIgaG9zdCBob3N0X2NwdSBob3N0X3Zl bmRvciBob3N0X29zIHRhcmdldCB0YXJnZXRfY3B1IHRhcmdldF92ZW5kb3IgdGFyZ2V0X29zIHRh cmdldF9ub25jYW5vbmljYWwgTE5fUyBta2luc3RhbGxkaXJzIEpBVkFfTUFJTlRBSU5FUl9NT0RF X1RSVUUgSkFWQV9NQUlOVEFJTkVSX01PREVfRkFMU0UgQ0MgYWNfY3RfQ0MgRVhFRVhUIE9CSkVY VCBDWFggYWNfY3RfQ1hYIENGTEFHUyBDWFhGTEFHUyBMREZMQUdTIElOU1RBTExfUFJPR1JBTSBJ TlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFBBQ0tBR0UgVkVSU0lPTiBBQ0xP Q0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8gaW5zdGFsbF9zaCBTVFJJ UCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJfcCBBV0sgU0VUX01BS0Ug YW1fX2xlYWRpbmdfZG90IEFNVEFSIGFtX190YXIgYW1fX3VudGFyIERFUERJUiBhbV9faW5jbHVk ZSBhbV9fcXVvdGUgQU1ERVBfVFJVRSBBTURFUF9GQUxTRSBBTURFUEJBQ0tTTEFTSCBDQ0RFUE1P REUgYW1fX2Zhc3RkZXBDQ19UUlVFIGFtX19mYXN0ZGVwQ0NfRkFMU0UgQ1hYREVQTU9ERSBhbV9f ZmFzdGRlcENYWF9UUlVFIGFtX19mYXN0ZGVwQ1hYX0ZBTFNFIEFTIGFjX2N0X0FTIExEIGFjX2N0 X0xEIEFSIGFjX2N0X0FSIFJBTkxJQiBhY19jdF9SQU5MSUIgSkFSIFpJUCBVTlpJUCBNQUlOVEFJ TkVSX01PREVfVFJVRSBNQUlOVEFJTkVSX01PREVfRkFMU0UgTUFJTlQgTElCR0NKX0NGTEFHUyBM SUJHQ0pfQ1hYRkxBR1MgTElCR0NKX0pBVkFGTEFHUyBMSUJHQ0pfTERfU1lNQk9MSUMgTElCR0NK REVCVUcgVE9PTEtJVCBYTElCX0FXVF9UUlVFIFhMSUJfQVdUX0ZBTFNFIFhfQVdUX1RSVUUgWF9B V1RfRkFMU0UgR0NKX0ZPUl9FQ0pYIEdDSkggaG9zdF9leGVleHQgSU5DTFRETCBMSUJMVERMIERJ UkxUREwgTElCVE9PTCBDWFhDUFAgQ1BQRkxBR1MgR0NKIEdDSkZMQUdTIEdDSkRFUE1PREUgYW1f X2Zhc3RkZXBHQ0pfVFJVRSBhbV9fZmFzdGRlcEdDSl9GQUxTRSBzdWJkaXJzIFRFU1RTVUJESVJf VFJVRSBURVNUU1VCRElSX0ZBTFNFIEVDSl9CVUlMRF9KQVIgRUNKX0pBUiBCVUlMRF9FQ0oxX1RS VUUgQlVJTERfRUNKMV9GQUxTRSBJTlNUQUxMX0VDSl9KQVJfVFJVRSBJTlNUQUxMX0VDSl9KQVJf RkFMU0UgSkFWQV9IT01FX1NFVF9UUlVFIEpBVkFfSE9NRV9TRVRfRkFMU0UgSkFWQV9IT01FIElO VEVSUFJFVEVSIExJQkZGSSBMSUJGRklJTkNTIFBMQVRGT1JNIENQUCBFR1JFUCBVU0lOR19XSU4z Ml9QTEFURk9STV9UUlVFIFVTSU5HX1dJTjMyX1BMQVRGT1JNX0ZBTFNFIFVTSU5HX1BPU0lYX1BM QVRGT1JNX1RSVUUgVVNJTkdfUE9TSVhfUExBVEZPUk1fRkFMU0UgVVNJTkdfREFSV0lOX0NSVF9U UlVFIFVTSU5HX0RBUldJTl9DUlRfRkFMU0UgU1lTVEVNU1BFQyBMSUJHQ0pURVNUU1BFQyBaTElC U1BFQyBaTElCVEVTVFNQRUMgWF9DRkxBR1MgWF9QUkVfTElCUyBYX0xJQlMgWF9FWFRSQV9MSUJT IGV4dHJhX2xkZmxhZ3NfbGliamF2YSBHQ0xJQlMgR0NJTkNTIEdDREVQUyBHQ1NQRUMgSkMxR0NT UEVDIEdDVEVTVFNQRUMgVVNJTkdfQk9FSE1HQ19UUlVFIFVTSU5HX0JPRUhNR0NfRkFMU0UgVVNJ TkdfTk9HQ19UUlVFIFVTSU5HX05PR0NfRkFMU0UgVEhSRUFETElCUyBUSFJFQURJTkNTIFRIUkVB RERFUFMgVEhSRUFEU1BFQyBUSFJFQURTVEFSVEZJTEVTUEVDIFRIUkVBRExERkxBR1MgVEhSRUFE Q1hYRkxBR1MgVVNJTkdfUE9TSVhfVEhSRUFEU19UUlVFIFVTSU5HX1BPU0lYX1RIUkVBRFNfRkFM U0UgVVNJTkdfV0lOMzJfVEhSRUFEU19UUlVFIFVTSU5HX1dJTjMyX1RIUkVBRFNfRkFMU0UgVVNJ TkdfTk9fVEhSRUFEU19UUlVFIFVTSU5HX05PX1RIUkVBRFNfRkFMU0UgVVNFX0xJQkdDSl9CQ19U UlVFIFVTRV9MSUJHQ0pfQkNfRkFMU0UgTElCR0NKX1NQRUMgSEFTSF9TWU5DX1NQRUMgVVNJTkdf R0NDX1RSVUUgVVNJTkdfR0NDX0ZBTFNFIExJQklDT05WIExUTElCSUNPTlYgTElCTUFHSUMgUEtH X0NPTkZJRyBHVEtfQ0ZMQUdTIEdUS19MSUJTIEdMSUJfQ0ZMQUdTIEdMSUJfTElCUyBMSUJBUlRf Q0ZMQUdTIExJQkFSVF9MSUJTIENMQVNTUEFUSF9TRVBBUkFUT1IgYWNfY3RfR0NKIFpMSUJTIFNZ U19aTElCUyBaSU5DUyBESVZJREVTUEVDIENIRUNLUkVGU1BFQyBFWENFUFRJT05TUEVDIEJBQ0tU UkFDRVNQRUMgSUVFRVNQRUMgTkFUSVZFX1RSVUUgTkFUSVZFX0ZBTFNFIEVOQUJMRV9TSEFSRURf VFJVRSBFTkFCTEVfU0hBUkVEX0ZBTFNFIE5FRURTX0RBVEFfU1RBUlRfVFJVRSBORUVEU19EQVRB X1NUQVJUX0ZBTFNFIEdDQ19VTldJTkRfSU5DTFVERSB0b29sZXhlY2RpciB0b29sZXhlY21haW5s aWJkaXIgdG9vbGV4ZWNsaWJkaXIgZGJleGVjZGlyIEdDSlZFUlNJT04gZ3h4X2luY2x1ZGVfZGly IGxpYnN0ZGN4eF9pbmNkaXIgQUxMT0NBIFBFUkwgU1lTREVQX1NPVVJDRVMgQU5PTlZFUlNDUklQ VF9UUlVFIEFOT05WRVJTQ1JJUFRfRkFMU0UgTERfU1RBUlRfU1RBVElDX1NQRUMgTERfRklOSVNI X1NUQVRJQ19TUEVDIGhlcmUgTElCT0JKUyBMVExJQk9CSlMnCisrYWNfc3Vic3RfdmFycz0nU0hF TEwgUEFUSF9TRVBBUkFUT1IgUEFDS0FHRV9OQU1FIFBBQ0tBR0VfVEFSTkFNRSBQQUNLQUdFX1ZF UlNJT04gUEFDS0FHRV9TVFJJTkcgUEFDS0FHRV9CVUdSRVBPUlQgZXhlY19wcmVmaXggcHJlZml4 IHByb2dyYW1fdHJhbnNmb3JtX25hbWUgYmluZGlyIHNiaW5kaXIgbGliZXhlY2RpciBkYXRhZGly IHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBsaWJkaXIgaW5jbHVkZWRp ciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyIGJ1aWxkX2FsaWFzIGhvc3RfYWxpYXMgdGFy Z2V0X2FsaWFzIERFRlMgRUNIT19DIEVDSE9fTiBFQ0hPX1QgTElCUyBidWlsZCBidWlsZF9jcHUg YnVpbGRfdmVuZG9yIGJ1aWxkX29zIGJ1aWxkX3N1YmRpciBob3N0X3N1YmRpciB0YXJnZXRfc3Vi ZGlyIGxpYmdjal9iYXNlZGlyIGhvc3QgaG9zdF9jcHUgaG9zdF92ZW5kb3IgaG9zdF9vcyB0YXJn ZXQgdGFyZ2V0X2NwdSB0YXJnZXRfdmVuZG9yIHRhcmdldF9vcyB0YXJnZXRfbm9uY2Fub25pY2Fs IExOX1MgbWtpbnN0YWxsZGlycyBKQVZBX01BSU5UQUlORVJfTU9ERV9UUlVFIEpBVkFfTUFJTlRB SU5FUl9NT0RFX0ZBTFNFIENDIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgQ1hYIGFjX2N0X0NYWCBD RkxBR1MgQ1hYRkxBR1MgTERGTEFHUyBJTlNUQUxMX1BST0dSQU0gSU5TVEFMTF9TQ1JJUFQgSU5T VEFMTF9EQVRBIENZR1BBVEhfVyBQQUNLQUdFIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09ORiBBVVRP TUFLRSBBVVRPSEVBREVSIE1BS0VJTkZPIGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RSSVAgSU5T VEFMTF9TVFJJUF9QUk9HUkFNIG1rZGlyX3AgQVdLIFNFVF9NQUtFIGFtX19sZWFkaW5nX2RvdCBB TVRBUiBhbV9fdGFyIGFtX191bnRhciBERVBESVIgYW1fX2luY2x1ZGUgYW1fX3F1b3RlIEFNREVQ X1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggQ0NERVBNT0RFIGFtX19mYXN0ZGVwQ0Nf VFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIENYWERFUE1PREUgYW1fX2Zhc3RkZXBDWFhfVFJVRSBh bV9fZmFzdGRlcENYWF9GQUxTRSBBUyBhY19jdF9BUyBMRCBhY19jdF9MRCBBUiBhY19jdF9BUiBS QU5MSUIgYWNfY3RfUkFOTElCIEpBUiBaSVAgVU5aSVAgTUFJTlRBSU5FUl9NT0RFX1RSVUUgTUFJ TlRBSU5FUl9NT0RFX0ZBTFNFIE1BSU5UIExJQkdDSl9DRkxBR1MgTElCR0NKX0NYWEZMQUdTIExJ QkdDSl9KQVZBRkxBR1MgTElCR0NKX0xEX1NZTUJPTElDIExJQkdDSkRFQlVHIFRPT0xLSVQgWExJ Ql9BV1RfVFJVRSBYTElCX0FXVF9GQUxTRSBYX0FXVF9UUlVFIFhfQVdUX0ZBTFNFIEdDSl9GT1Jf RUNKWCBHQ0pIIGhvc3RfZXhlZXh0IElOQ0xUREwgTElCTFRETCBESVJMVERMIExJQlRPT0wgQ1hY Q1BQIENQUEZMQUdTIEdDSiBHQ0pGTEFHUyBHQ0pERVBNT0RFIGFtX19mYXN0ZGVwR0NKX1RSVUUg YW1fX2Zhc3RkZXBHQ0pfRkFMU0Ugc3ViZGlycyBURVNUU1VCRElSX1RSVUUgVEVTVFNVQkRJUl9G QUxTRSBFQ0pfQlVJTERfSkFSIEVDSl9KQVIgQlVJTERfRUNKMV9UUlVFIEJVSUxEX0VDSjFfRkFM U0UgSU5TVEFMTF9FQ0pfSkFSX1RSVUUgSU5TVEFMTF9FQ0pfSkFSX0ZBTFNFIEpBVkFfSE9NRV9T RVRfVFJVRSBKQVZBX0hPTUVfU0VUX0ZBTFNFIEpBVkFfSE9NRSBJTlRFUlBSRVRFUiBMSUJGRkkg TElCRkZJSU5DUyBQTEFURk9STSBDUFAgRUdSRVAgVVNJTkdfV0lOMzJfUExBVEZPUk1fVFJVRSBV U0lOR19XSU4zMl9QTEFURk9STV9GQUxTRSBVU0lOR19QT1NJWF9QTEFURk9STV9UUlVFIFVTSU5H X1BPU0lYX1BMQVRGT1JNX0ZBTFNFIFVTSU5HX0RBUldJTl9DUlRfVFJVRSBVU0lOR19EQVJXSU5f Q1JUX0ZBTFNFIFNZU1RFTVNQRUMgWkxJQlNQRUMgWkxJQlRFU1RTUEVDIFhfQ0ZMQUdTIFhfUFJF X0xJQlMgWF9MSUJTIFhfRVhUUkFfTElCUyBleHRyYV9sZGZsYWdzX2xpYmphdmEgZXh0cmFfbGRm bGFncyBMSUJTVERDWFhTUEVDIExJQkdDSlRFU1RTUEVDIEdDTElCUyBHQ0lOQ1MgR0NERVBTIEdD U1BFQyBKQzFHQ1NQRUMgR0NURVNUU1BFQyBVU0lOR19CT0VITUdDX1RSVUUgVVNJTkdfQk9FSE1H Q19GQUxTRSBVU0lOR19OT0dDX1RSVUUgVVNJTkdfTk9HQ19GQUxTRSBUSFJFQURMSUJTIFRIUkVB RElOQ1MgVEhSRUFEREVQUyBUSFJFQURTUEVDIFRIUkVBRFNUQVJURklMRVNQRUMgVEhSRUFETERG TEFHUyBUSFJFQURDWFhGTEFHUyBVU0lOR19QT1NJWF9USFJFQURTX1RSVUUgVVNJTkdfUE9TSVhf VEhSRUFEU19GQUxTRSBVU0lOR19XSU4zMl9USFJFQURTX1RSVUUgVVNJTkdfV0lOMzJfVEhSRUFE U19GQUxTRSBVU0lOR19OT19USFJFQURTX1RSVUUgVVNJTkdfTk9fVEhSRUFEU19GQUxTRSBVU0Vf TElCR0NKX0JDX1RSVUUgVVNFX0xJQkdDSl9CQ19GQUxTRSBMSUJHQ0pfU1BFQyBIQVNIX1NZTkNf U1BFQyBVU0lOR19HQ0NfVFJVRSBVU0lOR19HQ0NfRkFMU0UgTElCSUNPTlYgTFRMSUJJQ09OViBM SUJNQUdJQyBQS0dfQ09ORklHIEdUS19DRkxBR1MgR1RLX0xJQlMgR0xJQl9DRkxBR1MgR0xJQl9M SUJTIExJQkFSVF9DRkxBR1MgTElCQVJUX0xJQlMgQ0xBU1NQQVRIX1NFUEFSQVRPUiBhY19jdF9H Q0ogWkxJQlMgU1lTX1pMSUJTIFpJTkNTIERJVklERVNQRUMgQ0hFQ0tSRUZTUEVDIEVYQ0VQVElP TlNQRUMgQkFDS1RSQUNFU1BFQyBJRUVFU1BFQyBOQVRJVkVfVFJVRSBOQVRJVkVfRkFMU0UgRU5B QkxFX1NIQVJFRF9UUlVFIEVOQUJMRV9TSEFSRURfRkFMU0UgTkVFRFNfREFUQV9TVEFSVF9UUlVF IE5FRURTX0RBVEFfU1RBUlRfRkFMU0UgR0NDX1VOV0lORF9JTkNMVURFIHRvb2xleGVjZGlyIHRv b2xleGVjbWFpbmxpYmRpciB0b29sZXhlY2xpYmRpciBkYmV4ZWNkaXIgR0NKVkVSU0lPTiBneHhf aW5jbHVkZV9kaXIgbGlic3RkY3h4X2luY2RpciBBTExPQ0EgUEVSTCBTWVNERVBfU09VUkNFUyBB Tk9OVkVSU0NSSVBUX1RSVUUgQU5PTlZFUlNDUklQVF9GQUxTRSBMRF9TVEFSVF9TVEFUSUNfU1BF QyBMRF9GSU5JU0hfU1RBVElDX1NQRUMgaGVyZSBMSUJPQkpTIExUTElCT0JKUycKKyBhY19zdWJz dF9maWxlcz0nJworIAorICMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9u cy4KK0BAIC03NjQwLDkgKzc2NDAsNiBAQCBjYXNlICIke2hvc3R9IiBpbgorIGVzYWMKKyAKKyAK Ky1MSUJHQ0pURVNUU1BFQz0iLUxgJHtQV0RDTUQtcHdkfWAvLmxpYnMgLXJwYXRoIGAke1BXRENN RC1wd2R9YC8ubGlicyIKKy0KKy0KKyAKKyAjIENoZWNrIHdoZXRoZXIgLS13aXRoLXN5c3RlbS16 bGliIG9yIC0td2l0aG91dC1zeXN0ZW0temxpYiB3YXMgZ2l2ZW4uCisgaWYgdGVzdCAiJHt3aXRo X3N5c3RlbV96bGliK3NldH0iID0gc2V0OyB0aGVuCitAQCAtOTEyNiw2ICs5MTIzLDkgQEAgZmkK KyAjIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBfbGlicyBvbiBzb21lIGhvc3RzLgorIGxpYnN1YmRp cj0ubGlicworIAorK0xJQkdDSlRFU1RTUEVDPSItTGAke1BXRENNRC1wd2R9YC8ubGlicyAtcnBh dGggYCR7UFdEQ01ELXB3ZH1gLy5saWJzIgorKworK0xJQlNURENYWFNQRUM9CisgIyBleHRyYSBM RCBGbGFncyB3aGljaCBhcmUgcmVxdWlyZWQgZm9yIHRhcmdldHMKKyBjYXNlICIke2hvc3R9IiBp bgorICotKi1kYXJ3aW5bMC03XS4qKQorQEAgLTkxMzQsOSArOTEzNCwyMSBAQCBjYXNlICIke2hv c3R9IiBpbgorICAgICAjIG9uIERhcndpbiAtc2luZ2xlX21vZHVsZSBzcGVlZHMgdXAgbG9hZGlu ZyBvZiB0aGUgZHluYW1pYyBsaWJyYXJpZXMuCisgICAgIGV4dHJhX2xkZmxhZ3NfbGliamF2YT0t V2wsLXNpbmdsZV9tb2R1bGUKKyAgICAgOzsKKythcm0qbGludXgqZWFiaSkKKysgICAgIyBTb21l IG9mIHRoZSBBUk0gdW53aW5kZXIgY29kZSBpcyBhY3R1YWxseSBpbiBsaWJzdGRjKysuICBXZQor KyAgICAjIGNvdWxkIGluIHByaW5jaXBsZSByZXBsaWNhdGUgaXQgaW4gbGliZ2NqLCBidXQgaXQn cyBiZXR0ZXIgdG8KKysgICAgIyBoYXZlIGEgZGVwZW5kZW5jeSBvbiBsaWJzdGRjKysuCisrICAg IGV4dHJhX2xkZmxhZ3M9Jy1MJChoZXJlKS8uLi9saWJzdGRjKystdjMvc3JjIC1sc3RkYysrJwor KyAgICBMSUJTVERDWFhTUEVDPS1sc3RkYysrCisrICAgIExJQkdDSlRFU1RTUEVDPSItTGAke1BX RENNRC1wd2R9YC8ubGlicyAtTGAke1BXRENNRC1wd2R9YC8uLi9saWJzdGRjKystdjMvc3JjLy5s aWJzIC1ycGF0aCBgJHtQV0RDTUQtcHdkfWAvLmxpYnM6YCR7UFdEQ01ELXB3ZH1gLy4uL2xpYnN0 ZGMrKy12My9zcmMvLmxpYnMgLWxzdGRjKysiCisrICAgIDs7CisgZXNhYworIAorIAorKworKwor KworKworICMgQWxsb3cgdGhlIEdDIHRvIGJlIGRpc2FibGVkLiAgQ2FuIGJlIHVzZWZ1bCB3aGVu IGRlYnVnZ2luZy4KKyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGdhcmJhZ2Ug Y29sbGVjdG9yIHRvIHVzZSIgPiY1CisgZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZ2FyYmFn ZSBjb2xsZWN0b3IgdG8gdXNlLi4uICRFQ0hPX0MiID4mNgorQEAgLTE4MDI0LDcgKzE4MDM2LDYg QEAgcyxAVVNJTkdfUE9TSVhfUExBVEZPUk1fRkFMU0VALCRVU0lOR19QTworIHMsQFVTSU5HX0RB UldJTl9DUlRfVFJVRUAsJFVTSU5HX0RBUldJTl9DUlRfVFJVRSw7dCB0CisgcyxAVVNJTkdfREFS V0lOX0NSVF9GQUxTRUAsJFVTSU5HX0RBUldJTl9DUlRfRkFMU0UsO3QgdAorIHMsQFNZU1RFTVNQ RUNALCRTWVNURU1TUEVDLDt0IHQKKy1zLEBMSUJHQ0pURVNUU1BFQ0AsJExJQkdDSlRFU1RTUEVD LDt0IHQKKyBzLEBaTElCU1BFQ0AsJFpMSUJTUEVDLDt0IHQKKyBzLEBaTElCVEVTVFNQRUNALCRa TElCVEVTVFNQRUMsO3QgdAorIHMsQFhfQ0ZMQUdTQCwkWF9DRkxBR1MsO3QgdAorQEAgLTE4MDMy LDYgKzE4MDQzLDkgQEAgcyxAWF9QUkVfTElCU0AsJFhfUFJFX0xJQlMsO3QgdAorIHMsQFhfTElC U0AsJFhfTElCUyw7dCB0CisgcyxAWF9FWFRSQV9MSUJTQCwkWF9FWFRSQV9MSUJTLDt0IHQKKyBz LEBleHRyYV9sZGZsYWdzX2xpYmphdmFALCRleHRyYV9sZGZsYWdzX2xpYmphdmEsO3QgdAorK3Ms QGV4dHJhX2xkZmxhZ3NALCRleHRyYV9sZGZsYWdzLDt0IHQKKytzLEBMSUJTVERDWFhTUEVDQCwk TElCU1REQ1hYU1BFQyw7dCB0CisrcyxATElCR0NKVEVTVFNQRUNALCRMSUJHQ0pURVNUU1BFQyw7 dCB0CisgcyxAR0NMSUJTQCwkR0NMSUJTLDt0IHQKKyBzLEBHQ0lOQ1NALCRHQ0lOQ1MsO3QgdAor IHMsQEdDREVQU0AsJEdDREVQUyw7dCB0CistLS0gbGliamF2YS9NYWtlZmlsZS5pbi5qagkyMDA3 LTA5LTA2IDE0OjA2OjE1LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvTWFrZWZpbGUuaW4J MjAwNy0wOS0wNiAxNzoyODo1MS4wMDAwMDAwMDAgKzAyMDAKK0BAIC02MjcsNiArNjI3LDcgQEAg TElCTFRETCA9IEBMSUJMVERMQAorIExJQk1BR0lDID0gQExJQk1BR0lDQAorIExJQk9CSlMgPSBA TElCT0JKU0AKKyBMSUJTID0gQExJQlNACisrTElCU1REQ1hYU1BFQyA9IEBMSUJTVERDWFhTUEVD QAorIExJQlRPT0wgPSBATElCVE9PTEAKKyBMTl9TID0gQExOX1NACisgTFRMSUJJQ09OViA9IEBM VExJQklDT05WQAorQEAgLTczMSw2ICs3MzIsNyBAQCBidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVu ZG9yQAorIGRhdGFkaXIgPSBAZGF0YWRpckAKKyBkYmV4ZWNkaXIgPSBAZGJleGVjZGlyQAorIGV4 ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAorK2V4dHJhX2xkZmxhZ3MgPSBAZXh0cmFfbGRmbGFn c0AKKyBleHRyYV9sZGZsYWdzX2xpYmphdmEgPSBAZXh0cmFfbGRmbGFnc19saWJqYXZhQCAkKGFt X19hcHBlbmRfNSkKKyBneHhfaW5jbHVkZV9kaXIgPSBAZ3h4X2luY2x1ZGVfZGlyQAorIGhlcmUg PSBAaGVyZUAKK0BAIC04MTIsNyArODE0LDcgQEAgR0NKTElOSyA9ICQoTElCVE9PTCkgLS10YWc9 R0NKIC0tbW9kZT1saQorIAorIEdDSl9GT1JfRUNKWF9MSU5LID0gJChHQ0pfRk9SX0VDSlgpIC1v ICRACisgTElCTElOSyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYIC0tbW9kZT1saW5rICQoQ1hYKSAt TCQoaGVyZSkgJChKQzFGTEFHUykgXAorLSAgICAgICAgICAkKExERkxBR1MpICQoZXh0cmFfbGRm bGFnc19saWJqYXZhKSAtbyAkQAorKyAgICAgICAgICAkKExERkxBR1MpICQoZXh0cmFfbGRmbGFn c19saWJqYXZhKSAkKGV4dHJhX2xkZmxhZ3MpIC1vICRACisgCisgV0FSTklOR1MgPSAtV2V4dHJh IC1XYWxsCisgQU1fQ1hYRkxBR1MgPSBcCitAQCAtODcyLDcgKzg3NCw3IEBAIHhsaWJfbmF0X2Zp bGVzID0gJCh4bGliX25hdF9zb3VyY2VfZmlsZXMKKyAKKyAjIEluY2x1ZGUgVEhSRUFETElCUyBo ZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IHZlcnNpb24gb2YKKyAjIGNlcnRhaW4gbGlu dXh0aHJlYWQgZnVuY3Rpb25zIGdldCBsaW5rZWQ6CistbGliZ2NqX2xhX0xERkxBR1MgPSAtcnBh dGggJCh0b29sZXhlY2xpYmRpcikgJChUSFJFQURMREZMQUdTKSAkKFRIUkVBRExJQlMpIFwKKyts aWJnY2pfbGFfTERGTEFHUyA9IC1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAkKFRIUkVBRExERkxB R1MpICQoZXh0cmFfbGRmbGFncykgJChUSFJFQURMSUJTKSBcCisgCSQoTElCTFRETCkgJChTWVNf WkxJQlMpIFwKKyAJLXZlcnNpb24taW5mbyBgZ3JlcCAtdiAnXlwjJyAkKHNyY2RpcikvbGlidG9v bC12ZXJzaW9uYAorIAorQEAgLTc3ODQsNyArNzc4Niw3IEBAIE5NID0gbm0KKyAKKyBqdl9jb252 ZXJ0X1NPVVJDRVMgPSAKKyBqdl9jb252ZXJ0X0xERkxBR1MgPSAtLW1haW49Z251Lmdjai5jb252 ZXJ0LkNvbnZlcnQgXAorLQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2Mg JChUSFJFQURMREZMQUdTKQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJn Y2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgCisganZfY29udmVydF9MSU5L ID0gJChHQ0pMSU5LKQorIGp2X2NvbnZlcnRfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2Nq LmxhCitAQCAtNzgwMCw3ICs3ODAyLDcgQEAgZ2NqX2RidG9vbF9MREFERCA9IGdudS9nY2ovdG9v bHMvZ2NqX2RidAorIGdjal9kYnRvb2xfREVQRU5ERU5DSUVTID0gZ251L2djai90b29scy9nY2pf ZGJ0b29sLmxvIGxpYmdjai5sYSBsaWJnY2ouc3BlYworIGdpal9TT1VSQ0VTID0gCisgZ2lqX0xE RkxBR1MgPSAtcnBhdGggJChsaWJkaXIpL2djai0kKGdjY192ZXJzaW9uKSAtcnBhdGggJCh0b29s ZXhlY2xpYmRpcikgXAorLQktc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1zaGFy ZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykgJChleHRyYV9sZGZsYWdzKQorIAorIGdpal9MSU5L ID0gJChHQ0pMSU5LKQorIGdpal9MREFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnaWoubGEKK0BA IC03ODIwLDkxICs3ODIyLDkxIEBAIEVDSlhfQkFTRV9GTEFHUyA9IC1maW5kaXJlY3QtZGlzcGF0 Y2ggXAorIEBOQVRJVkVfVFJVRUBlY2p4X0RFUEVOREVOQ0lFUyA9IGxpYmdjai5sYSBsaWJnY2ou c3BlYworIGdhcHBsZXR2aWV3ZXJfU09VUkNFUyA9IAorIGdhcHBsZXR2aWV3ZXJfTERGTEFHUyA9 IC0tbWFpbj1nbnUuY2xhc3NwYXRoLnRvb2xzLmFwcGxldHZpZXdlci5NYWluIFwKKy0JLXJwYXRo ICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykKKysJLXJw YXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykgJChl eHRyYV9sZGZsYWdzKQorIAorIGdhcHBsZXR2aWV3ZXJfTElOSyA9ICQoR0NKTElOSykKKyBnYXBw bGV0dmlld2VyX0xEQUREID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai10b29scy5sYQorIGdhcHBs ZXR2aWV3ZXJfREVQRU5ERU5DSUVTID0gbGliZ2NqLXRvb2xzLmxhCisgZ2phcnNpZ25lcl9TT1VS Q0VTID0gCisgZ2phcnNpZ25lcl9MREZMQUdTID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9vbHMu amFyc2lnbmVyLk1haW4gXAorLQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJn Y2MgJChUSFJFQURMREZMQUdTKQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1s aWJnY2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgCisgZ2phcnNpZ25lcl9M SU5LID0gJChHQ0pMSU5LKQorIGdqYXJzaWduZXJfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGli Z2NqLXRvb2xzLmxhCisgZ2phcnNpZ25lcl9ERVBFTkRFTkNJRVMgPSBsaWJnY2otdG9vbHMubGEK KyBna2V5dG9vbF9TT1VSQ0VTID0gCisgZ2tleXRvb2xfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xh c3NwYXRoLnRvb2xzLmtleXRvb2wuTWFpbiBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAt c2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGly KSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyAKKyBn a2V5dG9vbF9MSU5LID0gJChHQ0pMSU5LKQorIGdrZXl0b29sX0xEQUREID0gLUwkKGhlcmUpLy5s aWJzIGxpYmdjai10b29scy5sYQorIGdrZXl0b29sX0RFUEVOREVOQ0lFUyA9IGxpYmdjai10b29s cy5sYQorIGdqYXJfU09VUkNFUyA9IAorIGdqYXJfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3Nw YXRoLnRvb2xzLmphci5NYWluIFwKKy0JLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQt bGliZ2NjICQoVEhSRUFETERGTEFHUykKKysJLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFy ZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykgJChleHRyYV9sZGZsYWdzKQorIAorIGdqYXJfTElO SyA9ICQoR0NKTElOSykKKyBnamFyX0xEQUREID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai10b29s cy5sYQorIGdqYXJfREVQRU5ERU5DSUVTID0gbGliZ2NqLXRvb2xzLmxhCisgZ2phdmFoX1NPVVJD RVMgPSAKKyBnamF2YWhfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3NwYXRoLnRvb2xzLmphdmFo Lk1haW4gXAorLQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJF QURMREZMQUdTKQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChU SFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgCisgZ2phdmFoX0xJTksgPSAkKEdDSkxJ TkspCisgZ2phdmFoX0xEQUREID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai10b29scy5sYQorIGdq YXZhaF9ERVBFTkRFTkNJRVMgPSBsaWJnY2otdG9vbHMubGEKKyBnY2poX1NPVVJDRVMgPSAKKyBn Y2poX0xERkxBR1MgPSAtLW1haW49Z251LmNsYXNzcGF0aC50b29scy5qYXZhaC5HY2poTWFpbiBc CistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxB R1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExE RkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyAKKyBnY2poX0xJTksgPSAkKEdDSkxJTkspCisgZ2Nq aF9MREFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnY2otdG9vbHMubGEKKyBnY2poX0RFUEVOREVO Q0lFUyA9IGxpYmdjai10b29scy5sYQorIGduYXRpdmUyYXNjaWlfU09VUkNFUyA9IAorIGduYXRp dmUyYXNjaWlfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3NwYXRoLnRvb2xzLm5hdGl2ZTJhc2Np aS5OYXRpdmUyQVNDSUkgXAorLQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJn Y2MgJChUSFJFQURMREZMQUdTKQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1s aWJnY2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgCisgZ25hdGl2ZTJhc2Np aV9MSU5LID0gJChHQ0pMSU5LKQorIGduYXRpdmUyYXNjaWlfTERBREQgPSAtTCQoaGVyZSkvLmxp YnMgbGliZ2NqLXRvb2xzLmxhCisgZ25hdGl2ZTJhc2NpaV9ERVBFTkRFTkNJRVMgPSBsaWJnY2ot dG9vbHMubGEKKyBnb3JiZF9TT1VSQ0VTID0gCisgZ29yYmRfTERGTEFHUyA9IC0tbWFpbj1nbnUu Y2xhc3NwYXRoLnRvb2xzLm9yYmQuTWFpbiBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAt c2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGly KSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyAKKyBn b3JiZF9MSU5LID0gJChHQ0pMSU5LKQorIGdvcmJkX0xEQUREID0gLUwkKGhlcmUpLy5saWJzIGxp Ymdjai10b29scy5sYQorIGdvcmJkX0RFUEVOREVOQ0lFUyA9IGxpYmdjai10b29scy5sYQorIGdy bWlkX1NPVVJDRVMgPSAKKyBncm1pZF9MREZMQUdTID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9v bHMucm1pZC5NYWluIFwKKy0JLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2Nj ICQoVEhSRUFETERGTEFHUykKKysJLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGli Z2NjICQoVEhSRUFETERGTEFHUykgJChleHRyYV9sZGZsYWdzKQorIAorIGdybWlkX0xJTksgPSAk KEdDSkxJTkspCisgZ3JtaWRfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLXRvb2xzLmxh CisgZ3JtaWRfREVQRU5ERU5DSUVTID0gbGliZ2NqLXRvb2xzLmxhCisgZ3NlcmlhbHZlcl9TT1VS Q0VTID0gCisgZ3NlcmlhbHZlcl9MREZMQUdTID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9vbHMu c2VyaWFsdmVyLlNlcmlhbFZlciBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVk LWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hh cmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyAKKyBnc2VyaWFs dmVyX0xJTksgPSAkKEdDSkxJTkspCisgZ3NlcmlhbHZlcl9MREFERCA9IC1MJChoZXJlKS8ubGli cyBsaWJnY2otdG9vbHMubGEKKyBnc2VyaWFsdmVyX0RFUEVOREVOQ0lFUyA9IGxpYmdjai10b29s cy5sYQorIGd0bmFtZXNlcnZfU09VUkNFUyA9IAorIGd0bmFtZXNlcnZfTERGTEFHUyA9IC0tbWFp bj1nbnUuY2xhc3NwYXRoLnRvb2xzLnRuYW1lc2Vydi5NYWluIFwKKy0JLXJwYXRoICQodG9vbGV4 ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykKKysJLXJwYXRoICQodG9v bGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykgJChleHRyYV9sZGZs YWdzKQorIAorIGd0bmFtZXNlcnZfTElOSyA9ICQoR0NKTElOSykKKyBndG5hbWVzZXJ2X0xEQURE ID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai10b29scy5sYQorIGd0bmFtZXNlcnZfREVQRU5ERU5D SUVTID0gbGliZ2NqLXRvb2xzLmxhCisgZ3JtaWNfU09VUkNFUyA9IAorIGdybWljX0xERkxBR1Mg PSAtLW1haW49Z251LmNsYXNzcGF0aC50b29scy5ybWljLk1haW4gXAorLQktcnBhdGggJCh0b29s ZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdTKQorKwktcnBhdGggJCh0 b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xk ZmxhZ3MpCisgCisgZ3JtaWNfTElOSyA9ICQoR0NKTElOSykKKyBncm1pY19MREFERCA9IC1MJCho ZXJlKS8ubGlicyBsaWJnY2otdG9vbHMubGEKKyBncm1pY19ERVBFTkRFTkNJRVMgPSBsaWJnY2ot dG9vbHMubGEKKyBncm1pcmVnaXN0cnlfU09VUkNFUyA9IAorIGdybWlyZWdpc3RyeV9MREZMQUdT ID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9vbHMucm1pcmVnaXN0cnkuTWFpbiBcCistCS1ycGF0 aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1y cGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQo ZXh0cmFfbGRmbGFncykKKyAKKyBncm1pcmVnaXN0cnlfTElOSyA9ICQoR0NKTElOSykKKyBncm1p cmVnaXN0cnlfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLXRvb2xzLmxhCistLS0gbGli amF2YS9nY2ovTWFrZWZpbGUuaW4uamoJMjAwNy0wOS0wNiAxNDowNjoxNS4wMDAwMDAwMDAgKzAy MDAKKysrKyBsaWJqYXZhL2djai9NYWtlZmlsZS5pbgkyMDA3LTA5LTA2IDE3OjIwOjQyLjAwMDAw MDAwMCArMDIwMAorQEAgLTE3Miw2ICsxNzIsNyBAQCBMSUJMVERMID0gQExJQkxURExACisgTElC TUFHSUMgPSBATElCTUFHSUNACisgTElCT0JKUyA9IEBMSUJPQkpTQAorIExJQlMgPSBATElCU0AK KytMSUJTVERDWFhTUEVDID0gQExJQlNURENYWFNQRUNACisgTElCVE9PTCA9IEBMSUJUT09MQAor IExOX1MgPSBATE5fU0AKKyBMVExJQklDT05WID0gQExUTElCSUNPTlZACitAQCAtMjc2LDYgKzI3 Nyw3IEBAIGJ1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACisgZGF0YWRpciA9IEBkYXRhZGly QAorIGRiZXhlY2RpciA9IEBkYmV4ZWNkaXJACisgZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhA CisrZXh0cmFfbGRmbGFncyA9IEBleHRyYV9sZGZsYWdzQAorIGV4dHJhX2xkZmxhZ3NfbGliamF2 YSA9IEBleHRyYV9sZGZsYWdzX2xpYmphdmFACisgZ3h4X2luY2x1ZGVfZGlyID0gQGd4eF9pbmNs dWRlX2RpckAKKyBoZXJlID0gQGhlcmVACistLS0gbGliamF2YS9pbmNsdWRlL01ha2VmaWxlLmlu LmpqCTIwMDctMDktMDYgMTQ6MDY6MTUuMDAwMDAwMDAwICswMjAwCisrKysgbGliamF2YS9pbmNs dWRlL01ha2VmaWxlLmluCTIwMDctMDktMDYgMTc6MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAt MTcxLDYgKzE3MSw3IEBAIExJQkxUREwgPSBATElCTFRETEAKKyBMSUJNQUdJQyA9IEBMSUJNQUdJ Q0AKKyBMSUJPQkpTID0gQExJQk9CSlNACisgTElCUyA9IEBMSUJTQAorK0xJQlNURENYWFNQRUMg PSBATElCU1REQ1hYU1BFQ0AKKyBMSUJUT09MID0gQExJQlRPT0xACisgTE5fUyA9IEBMTl9TQAor IExUTElCSUNPTlYgPSBATFRMSUJJQ09OVkAKK0BAIC0yNzUsNiArMjc2LDcgQEAgYnVpbGRfdmVu ZG9yID0gQGJ1aWxkX3ZlbmRvckAKKyBkYXRhZGlyID0gQGRhdGFkaXJACisgZGJleGVjZGlyID0g QGRiZXhlY2RpckAKKyBleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKKytleHRyYV9sZGZsYWdz ID0gQGV4dHJhX2xkZmxhZ3NACisgZXh0cmFfbGRmbGFnc19saWJqYXZhID0gQGV4dHJhX2xkZmxh Z3NfbGliamF2YUAKKyBneHhfaW5jbHVkZV9kaXIgPSBAZ3h4X2luY2x1ZGVfZGlyQAorIGhlcmUg PSBAaGVyZUAKKy0tLSBsaWJqYXZhL2NvbmZpZ3VyZS5hYy5qagkyMDA3LTA5LTA2IDE0OjA2OjE1 LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvY29uZmlndXJlLmFjCTIwMDctMDktMDYgMTc6 MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtNzc3LDkgKzc3Nyw2IEBAIGNhc2UgIiR7aG9zdH0i IGluCisgZXNhYworIEFDX1NVQlNUKFNZU1RFTVNQRUMpCisgCistTElCR0NKVEVTVFNQRUM9Ii1M YCR7UFdEQ01ELXB3ZH1gLy5saWJzIC1ycGF0aCBgJHtQV0RDTUQtcHdkfWAvLmxpYnMiCistQUNf U1VCU1QoTElCR0NKVEVTVFNQRUMpCistCisgQUNfQVJHX1dJVEgoc3lzdGVtLXpsaWIsCisgICBB U19IRUxQX1NUUklORyhbLS13aXRoLXN5c3RlbS16bGliXSwKKyAgICAgICAgICAgICAgICAgIFt1 c2UgaW5zdGFsbGVkIGxpYnpdKSkKK0BAIC03OTMsNiArNzkwLDkgQEAgQUNfUEFUSF9YVFJBCisg IyBGSVhNRTogdGhpcyBzaG91bGQgYmUgX2xpYnMgb24gc29tZSBob3N0cy4KKyBsaWJzdWJkaXI9 LmxpYnMKKyAKKytMSUJHQ0pURVNUU1BFQz0iLUxgJHtQV0RDTUQtcHdkfWAvLmxpYnMgLXJwYXRo IGAke1BXRENNRC1wd2R9YC8ubGlicyIKKysKKytMSUJTVERDWFhTUEVDPQorICMgZXh0cmEgTEQg RmxhZ3Mgd2hpY2ggYXJlIHJlcXVpcmVkIGZvciB0YXJnZXRzCisgY2FzZSAiJHtob3N0fSIgaW4K KyAqLSotZGFyd2luW1swLTddXS4qKQorQEAgLTgwMSw4ICs4MDEsMjAgQEAgY2FzZSAiJHtob3N0 fSIgaW4KKyAgICAgIyBvbiBEYXJ3aW4gLXNpbmdsZV9tb2R1bGUgc3BlZWRzIHVwIGxvYWRpbmcg b2YgdGhlIGR5bmFtaWMgbGlicmFyaWVzLgorICAgICBleHRyYV9sZGZsYWdzX2xpYmphdmE9LVds LC1zaW5nbGVfbW9kdWxlCisgICAgIDs7CisrYXJtKmxpbnV4KmVhYmkpCisrICAgICMgU29tZSBv ZiB0aGUgQVJNIHVud2luZGVyIGNvZGUgaXMgYWN0dWFsbHkgaW4gbGlic3RkYysrLiAgV2UKKysg ICAgIyBjb3VsZCBpbiBwcmluY2lwbGUgcmVwbGljYXRlIGl0IGluIGxpYmdjaiwgYnV0IGl0J3Mg YmV0dGVyIHRvCisrICAgICMgaGF2ZSBhIGRlcGVuZGVuY3kgb24gbGlic3RkYysrLgorKyAgICBl eHRyYV9sZGZsYWdzPSctTCQoaGVyZSkvLi4vbGlic3RkYysrLXYzL3NyYyAtbHN0ZGMrKycKKysg ICAgTElCU1REQ1hYU1BFQz0tbHN0ZGMrKworKyAgICBMSUJHQ0pURVNUU1BFQz0iLUxgJHtQV0RD TUQtcHdkfWAvLmxpYnMgLUxgJHtQV0RDTUQtcHdkfWAvLi4vbGlic3RkYysrLXYzL3NyYy8ubGli cyAtcnBhdGggYCR7UFdEQ01ELXB3ZH1gLy5saWJzOmAke1BXRENNRC1wd2R9YC8uLi9saWJzdGRj KystdjMvc3JjLy5saWJzIC1sc3RkYysrIgorKyAgICA7OworIGVzYWMKKyBBQ19TVUJTVChleHRy YV9sZGZsYWdzX2xpYmphdmEpCisrQUNfU1VCU1QoZXh0cmFfbGRmbGFncykKKytBQ19TVUJTVChM SUJTVERDWFhTUEVDKQorKworK0FDX1NVQlNUKExJQkdDSlRFU1RTUEVDKQorIAorICMgQWxsb3cg dGhlIEdDIHRvIGJlIGRpc2FibGVkLiAgQ2FuIGJlIHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy4KKyBB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBnYXJiYWdlIGNvbGxlY3RvciB0byB1c2VdKQorLS0tIGxpYmph dmEvbGliZ2NqLnNwZWMuaW4uamoJMjAwNy0wOS0wNiAxNDowNjoxNS4wMDAwMDAwMDAgKzAyMDAK KysrKyBsaWJqYXZhL2xpYmdjai5zcGVjLmluCTIwMDctMDktMDYgMTc6MjA6NDIuMDAwMDAwMDAw ICswMjAwCitAQCAtNyw2ICs3LDYgQEAKKyAqc3RhcnRmaWxlOiBAVEhSRUFEU1RBUlRGSUxFU1BF Q0AgJShzdGFydGZpbGVvcmlnKQorIAorICVyZW5hbWUgbGliIGxpYm9yaWcKKy0qbGliOiBATERf U1RBUlRfU1RBVElDX1NQRUNAIEBMSUJHQ0pfU1BFQ0AgQExEX0ZJTklTSF9TVEFUSUNfU1BFQ0Ag LWxtIEBMSUJJQ09OVkAgQEdDU1BFQ0AgQFRIUkVBRFNQRUNAIEBaTElCU1BFQ0AgQFNZU1RFTVNQ RUNAICUobGliZ2NjKSAlKGxpYm9yaWcpCisrKmxpYjogQExEX1NUQVJUX1NUQVRJQ19TUEVDQCBA TElCR0NKX1NQRUNAIEBMRF9GSU5JU0hfU1RBVElDX1NQRUNAIC1sbSBATElCSUNPTlZAIEBHQ1NQ RUNAIEBUSFJFQURTUEVDQCBAWkxJQlNQRUNAIEBTWVNURU1TUEVDQCAlKGxpYmdjYykgQExJQlNU RENYWFNQRUNAICUobGlib3JpZykKKyAKKyAqamMxOiBASEFTSF9TWU5DX1NQRUNAIEBESVZJREVT UEVDQCBAQ0hFQ0tSRUZTUEVDQCBASkMxR0NTUEVDQCBARVhDRVBUSU9OU1BFQ0AgQEJBQ0tUUkFD RVNQRUNAIEBJRUVFU1BFQ0AgLWZrZWVwLWlubGluZS1mdW5jdGlvbnMKKy0tLSBsaWJqYXZhL3N0 YWNrdHJhY2UuY2MuamoJMjAwNy0wOS0wNiAxNDowNjoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBs aWJqYXZhL3N0YWNrdHJhY2UuY2MJMjAwNy0wOS0wNiAxNzoyMDo0Mi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0zOSw2ICszOSwxMCBAQCB1c2luZyBuYW1lc3BhY2UgamF2YTo6bGFuZzo6cmVmbGVjdDsK KyB1c2luZyBuYW1lc3BhY2UgamF2YTo6dXRpbDsKKyB1c2luZyBuYW1lc3BhY2UgZ251OjpnY2o6 OnJ1bnRpbWU7CisgCisrI2lmZGVmIF9fQVJNX0VBQklfVU5XSU5ERVJfXworKyNkZWZpbmUgX1VS Q19OT1JNQUxfU1RPUCBfVVJDX0ZBSUxVUkUKKysjZW5kaWYKKysKKyAvLyBNYXBzIG5jb2RlIHZh bHVlcyB0byB0aGVpciBjb250YWluaW5nIG5hdGl2ZSBjbGFzcy4KKyAvLyBOT1RFOiBDdXJyZW50 bHkgdGhpcyBNYXAgY29udHJhZGljdHMgY2xhc3MgR0MgZm9yIG5hdGl2ZSBjbGFzc2VzLiBUaGlz IG1hcAorIC8vIChhbmQgdGhlICJuZXcgY2xhc3Mgc3RhY2siKSB3aWxsIG5lZWQgdG8gdXNlIFdl YWtSZWZlcmVuY2VzIGluIG9yZGVyIHRvIAorLS0tIGxpYmphdmEvY29uZmlndXJlLmhvc3QuamoJ MjAwNy0wOS0wNiAxNzoxMTowNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJqYXZhL2NvbmZpZ3Vy ZS5ob3N0CTIwMDctMDktMDYgMTc6MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtODUsNiArODUs NyBAQCBjYXNlICIke2hvc3R9IiBpbgorICAgYXJtKi1saW51eCopCisgCWxpYmdjal9pbnRlcnBy ZXRlcj15ZXMKKyAJc3lzZGVwc19kaXI9YXJtCisrCWZhbGxiYWNrX2JhY2t0cmFjZV9oPXN5c2Rl cC9hcm0vYmFja3RyYWNlLmgKKyAJOzsKKyAgIG1pcHMtdHgzOS0qfG1pcHN0eDM5LXVua25vd24t KikKKyAJbGliZ2NqX2ZsYWdzPSIke2xpYmdjal9mbGFnc30gLUcgMCIKK0BAIC0yNTgsNiArMjU5 LDEyIEBAIEVPRgorIAlzeXNkZXBzX2Rpcj14ODYtNjQKKyAJRElWSURFU1BFQz0tZiV7bTMyOm5v LX0leyFtMzI6JXshbTY0Om5vLX19JXttNjQ6fXVzZS1kaXZpZGUtc3Vicm91dGluZQorIAk7Owor KyAgYXJtKi1saW51eCogKQorKwlzbG93X3B0aHJlYWRfc2VsZj1ubworKwljYW5fdW53aW5kX3Np Z25hbD1ubworKwlDSEVDS1JFRlNQRUM9LWZjaGVjay1yZWZlcmVuY2VzCisrCURJVklERVNQRUM9 LWZ1c2UtZGl2aWRlLXN1YnJvdXRpbmUKKysJOzsKKyAgIG1pcHMqLSotbGludXgqICkKKyAgIAlz eXNkZXBzX2Rpcj1taXBzCisgICAJY2FuX3Vud2luZF9zaWduYWw9eWVzCistLS0gbGliamF2YS9N YWtlZmlsZS5hbS5qagkyMDA3LTA5LTA2IDE0OjA2OjE2LjAwMDAwMDAwMCArMDIwMAorKysrIGxp YmphdmEvTWFrZWZpbGUuYW0JMjAwNy0wOS0wNiAxNzoyODoyNy4wMDAwMDAwMDAgKzAyMDAKK0BA IC0xMDAsNiArMTAwLDcgQEAgZW5kaWYKKyBHQ0pfV0lUSF9GTEFHUyA9ICQoR0NKKSAtLWVuY29k aW5nPVVURi04IC1Xbm8tZGVwcmVjYXRlZAorIAorIGV4dHJhX2xkZmxhZ3NfbGliamF2YSA9IEBl eHRyYV9sZGZsYWdzX2xpYmphdmFACisrZXh0cmFfbGRmbGFncyA9IEBleHRyYV9sZGZsYWdzQAor IAorIGlmIEFOT05WRVJTQ1JJUFQKKyBleHRyYV9sZGZsYWdzX2xpYmphdmEgKz0gLVdsLC0tdmVy c2lvbi1zY3JpcHQ9JChzcmNkaXIpL2xpYmdjai52ZXIKK0BAIC0xMTAsNyArMTExLDcgQEAgR0NK TElOSyA9ICQoTElCVE9PTCkgLS10YWc9R0NKIC0tbW9kZT1saQorIEdDSl9GT1JfRUNKWCA9IEBH Q0pfRk9SX0VDSlhACisgR0NKX0ZPUl9FQ0pYX0xJTksgPSAkKEdDSl9GT1JfRUNKWCkgLW8gJEAK KyBMSUJMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggLS1tb2RlPWxpbmsgJChDWFgpIC1MJCho ZXJlKSAkKEpDMUZMQUdTKSBcCistICAgICAgICAgICQoTERGTEFHUykgJChleHRyYV9sZGZsYWdz X2xpYmphdmEpIC1vICRACisrICAgICAgICAgICQoTERGTEFHUykgJChleHRyYV9sZGZsYWdzX2xp YmphdmEpICQoZXh0cmFfbGRmbGFncykgLW8gJEAKKyAKKyBHQ0NfVU5XSU5EX0lOQ0xVREUgPSBA R0NDX1VOV0lORF9JTkNMVURFQAorIAorQEAgLTIzMiw3ICsyMzMsNyBAQCB4bGliX25hdF9maWxl cyA9ICQoeGxpYl9uYXRfc291cmNlX2ZpbGVzCisgIyBJbmNsdWRlIFRIUkVBRExJQlMgaGVyZSB0 byBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mCisgIyBjZXJ0YWluIGxpbnV4dGhy ZWFkIGZ1bmN0aW9ucyBnZXQgbGlua2VkOgorICMjIFRoZSBteXN0ZXJpb3VzIGJhY2tzbGFzaCBp biB0aGUgZ3JlcCBwYXR0ZXJuIGlzIGNvbnN1bWVkIGJ5IG1ha2UuCistbGliZ2NqX2xhX0xERkxB R1MgPSAtcnBhdGggJCh0b29sZXhlY2xpYmRpcikgJChUSFJFQURMREZMQUdTKSAkKFRIUkVBRExJ QlMpIFwKKytsaWJnY2pfbGFfTERGTEFHUyA9IC1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAkKFRI UkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykgJChUSFJFQURMSUJTKSBcCisgCSQoTElCTFRE TCkgJChTWVNfWkxJQlMpIFwKKyAJLXZlcnNpb24taW5mbyBgZ3JlcCAtdiAnXlwjJyAkKHNyY2Rp cikvbGlidG9vbC12ZXJzaW9uYAorIGxpYmdjal9sYV9MSUJBREQgPSBcCitAQCAtNjE0LDcgKzYx NSw3IEBAIGp2X2NvbnZlcnRfU09VUkNFUyA9CisgIyMgbmVlZCB0aGlzIGJlY2F1c2Ugd2UgYXJl IGV4cGxpY2l0bHkgdXNpbmcgbGlidG9vbCB0byBsaW5rIHVzaW5nIHRoZQorICMjIGAubGEnIGZp bGUuCisganZfY29udmVydF9MREZMQUdTID0gLS1tYWluPWdudS5nY2ouY29udmVydC5Db252ZXJ0 IFwKKy0JLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERG TEFHUykKKysJLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFE TERGTEFHUykgJChleHRyYV9sZGZsYWdzKQorIGp2X2NvbnZlcnRfTElOSyA9ICQoR0NKTElOSykK KyAjIyBXZSBkb24ndCBleHBsaWNpdGx5IGxpbmsgaW4gdGhlIGxpYnJhcmllcyB3ZSBuZWVkOyBs aWJnY2oubGEgYnJpbmdzCisgIyMgaW4gYWxsIGRlcGVuZGVuY2llcy4gIFdlIG5lZWQgdGhlIC1M IHNvIHRoYXQgZ2NqIGNhbiBmaW5kIGxpYmdjagorQEAgLTYzNSw3ICs2MzYsNyBAQCBnbnUvZ2Nq L3Rvb2xzL2djal9kYnRvb2wvbmF0TWFpbi5jYworICMjIG5lZWQgdGhpcyBiZWNhdXNlIHdlIGFy ZSBleHBsaWNpdGx5IHVzaW5nIGxpYnRvb2wgdG8gbGluayB1c2luZyB0aGUKKyAjIyBgLmxhJyBm aWxlLgorIGdjal9kYnRvb2xfTERGTEFHUyA9IC0tbWFpbj1nbnUuZ2NqLnRvb2xzLmdjal9kYnRv b2wuTWFpbiBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRI UkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAk KFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyBnY2pfZGJ0b29sX0xJTksgPSAkKEdD SkxJTkspCisgIyMgV2UgZG9uJ3QgZXhwbGljaXRseSBsaW5rIGluIHRoZSBsaWJyYXJpZXMgd2Ug bmVlZDsgbGliZ2NqLmxhIGJyaW5ncworICMjIGluIGFsbCBkZXBlbmRlbmNpZXMuICBXZSBuZWVk IHRoZSAtTCBzbyB0aGF0IGdjaiBjYW4gZmluZCBsaWJnY2oKK0BAIC02NTQsNyArNjU1LDcgQEAg Z2lqX1NPVVJDRVMgPSAKKyAjIyBuZWVkIHRoaXMgYmVjYXVzZSB3ZSBhcmUgZXhwbGljaXRseSB1 c2luZyBsaWJ0b29sIHRvIGxpbmsgdXNpbmcgdGhlCisgIyMgYC5sYScgZmlsZS4KKyBnaWpfTERG TEFHUyA9IC1ycGF0aCAkKGxpYmRpcikvZ2NqLSQoZ2NjX3ZlcnNpb24pIC1ycGF0aCAkKHRvb2xl eGVjbGliZGlyKSBcCistCS1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykKKysJLXNoYXJl ZC1saWJnY2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgZ2lqX0xJTksgPSAk KEdDSkxJTkspCisgIyMgU2VlIGp2X2NvbnZlcnRfTERBREQuCisgZ2lqX0xEQUREID0gLUwkKGhl cmUpLy5saWJzIGxpYmdpai5sYQorQEAgLTY5OCw3ICs2OTksNyBAQCBlbmRpZiAhTkFUSVZFCisg IyMgVGhpcyBpcyBhIGR1bW15IGRlZmluaXRpb24uCisgZ2FwcGxldHZpZXdlcl9TT1VSQ0VTID0K KyBnYXBwbGV0dmlld2VyX0xERkxBR1MgPSAtLW1haW49Z251LmNsYXNzcGF0aC50b29scy5hcHBs ZXR2aWV3ZXIuTWFpbiBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdj YyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxp YmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyBnYXBwbGV0dmlld2VyX0xJ TksgPSAkKEdDSkxJTkspCisgIyMgU2VlIGp2X2NvbnZlcnRfTERBREQuCisgZ2FwcGxldHZpZXdl cl9MREFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnY2otdG9vbHMubGEKK0BAIC03MDcsNyArNzA4 LDcgQEAgZ2FwcGxldHZpZXdlcl9ERVBFTkRFTkNJRVMgPSBsaWJnY2otdG9vbAorICMjIFRoaXMg aXMgYSBkdW1teSBkZWZpbml0aW9uLgorIGdqYXJzaWduZXJfU09VUkNFUyA9CisgZ2phcnNpZ25l cl9MREZMQUdTID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9vbHMuamFyc2lnbmVyLk1haW4gXAor LQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdT KQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZM QUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgZ2phcnNpZ25lcl9MSU5LID0gJChHQ0pMSU5LKQorICMj IFNlZSBqdl9jb252ZXJ0X0xEQURELgorIGdqYXJzaWduZXJfTERBREQgPSAtTCQoaGVyZSkvLmxp YnMgbGliZ2NqLXRvb2xzLmxhCitAQCAtNzE2LDcgKzcxNyw3IEBAIGdqYXJzaWduZXJfREVQRU5E RU5DSUVTID0gbGliZ2NqLXRvb2xzLmwKKyAjIyBUaGlzIGlzIGEgZHVtbXkgZGVmaW5pdGlvbi4K KyBna2V5dG9vbF9TT1VSQ0VTID0KKyBna2V5dG9vbF9MREZMQUdTID0gLS1tYWluPWdudS5jbGFz c3BhdGgudG9vbHMua2V5dG9vbC5NYWluIFwKKy0JLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1z aGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykKKysJLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIp IC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykgJChleHRyYV9sZGZsYWdzKQorIGdrZXl0 b29sX0xJTksgPSAkKEdDSkxJTkspCisgIyMgU2VlIGp2X2NvbnZlcnRfTERBREQuCisgZ2tleXRv b2xfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLXRvb2xzLmxhCitAQCAtNzI1LDcgKzcy Niw3IEBAIGdrZXl0b29sX0RFUEVOREVOQ0lFUyA9IGxpYmdjai10b29scy5sYQorICMjIFRoaXMg aXMgYSBkdW1teSBkZWZpbml0aW9uLgorIGdqYXJfU09VUkNFUyA9CisgZ2phcl9MREZMQUdTID0g LS1tYWluPWdudS5jbGFzc3BhdGgudG9vbHMuamFyLk1haW4gXAorLQktcnBhdGggJCh0b29sZXhl Y2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdTKQorKwktcnBhdGggJCh0b29s ZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxh Z3MpCisgZ2phcl9MSU5LID0gJChHQ0pMSU5LKQorICMjIFNlZSBqdl9jb252ZXJ0X0xEQURELgor IGdqYXJfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLXRvb2xzLmxhCitAQCAtNzM0LDcg KzczNSw3IEBAIGdqYXJfREVQRU5ERU5DSUVTID0gbGliZ2NqLXRvb2xzLmxhCisgIyMgVGhpcyBp cyBhIGR1bW15IGRlZmluaXRpb24uCisgZ2phdmFoX1NPVVJDRVMgPQorIGdqYXZhaF9MREZMQUdT ID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9vbHMuamF2YWguTWFpbiBcCistCS1ycGF0aCAkKHRv b2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAk KHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFf bGRmbGFncykKKyBnamF2YWhfTElOSyA9ICQoR0NKTElOSykKKyAjIyBTZWUganZfY29udmVydF9M REFERC4KKyBnamF2YWhfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLXRvb2xzLmxhCitA QCAtNzQzLDcgKzc0NCw3IEBAIGdqYXZhaF9ERVBFTkRFTkNJRVMgPSBsaWJnY2otdG9vbHMubGEK KyAjIyBUaGlzIGlzIGEgZHVtbXkgZGVmaW5pdGlvbi4KKyBnY2poX1NPVVJDRVMgPQorIGdjamhf TERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3NwYXRoLnRvb2xzLmphdmFoLkdjamhNYWluIFwKKy0J LXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykK KysJLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFH UykgJChleHRyYV9sZGZsYWdzKQorIGdjamhfTElOSyA9ICQoR0NKTElOSykKKyAjIyBTZWUganZf Y29udmVydF9MREFERC4KKyBnY2poX0xEQUREID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai10b29s cy5sYQorQEAgLTc1Miw3ICs3NTMsNyBAQCBnY2poX0RFUEVOREVOQ0lFUyA9IGxpYmdjai10b29s cy5sYQorICMjIFRoaXMgaXMgYSBkdW1teSBkZWZpbml0aW9uLgorIGduYXRpdmUyYXNjaWlfU09V UkNFUyA9CisgZ25hdGl2ZTJhc2NpaV9MREZMQUdTID0gLS1tYWluPWdudS5jbGFzc3BhdGgudG9v bHMubmF0aXZlMmFzY2lpLk5hdGl2ZTJBU0NJSSBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGly KSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGli ZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyBn bmF0aXZlMmFzY2lpX0xJTksgPSAkKEdDSkxJTkspCisgIyMgU2VlIGp2X2NvbnZlcnRfTERBREQu CisgZ25hdGl2ZTJhc2NpaV9MREFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnY2otdG9vbHMubGEK K0BAIC03NjEsNyArNzYyLDcgQEAgZ25hdGl2ZTJhc2NpaV9ERVBFTkRFTkNJRVMgPSBsaWJnY2ot dG9vbAorICMjIFRoaXMgaXMgYSBkdW1teSBkZWZpbml0aW9uLgorIGdvcmJkX1NPVVJDRVMgPQor IGdvcmJkX0xERkxBR1MgPSAtLW1haW49Z251LmNsYXNzcGF0aC50b29scy5vcmJkLk1haW4gXAor LQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdT KQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRpcikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZM QUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgZ29yYmRfTElOSyA9ICQoR0NKTElOSykKKyAjIyBTZWUg anZfY29udmVydF9MREFERC4KKyBnb3JiZF9MREFERCA9IC1MJChoZXJlKS8ubGlicyBsaWJnY2ot dG9vbHMubGEKK0BAIC03NzAsNyArNzcxLDcgQEAgZ29yYmRfREVQRU5ERU5DSUVTID0gbGliZ2Nq LXRvb2xzLmxhCisgIyMgVGhpcyBpcyBhIGR1bW15IGRlZmluaXRpb24uCisgZ3JtaWRfU09VUkNF UyA9CisgZ3JtaWRfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3NwYXRoLnRvb2xzLnJtaWQuTWFp biBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVBRExE RkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hhcmVkLWxpYmdjYyAkKFRIUkVB RExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyBncm1pZF9MSU5LID0gJChHQ0pMSU5LKQorICMj IFNlZSBqdl9jb252ZXJ0X0xEQURELgorIGdybWlkX0xEQUREID0gLUwkKGhlcmUpLy5saWJzIGxp Ymdjai10b29scy5sYQorQEAgLTc3OSw3ICs3ODAsNyBAQCBncm1pZF9ERVBFTkRFTkNJRVMgPSBs aWJnY2otdG9vbHMubGEKKyAjIyBUaGlzIGlzIGEgZHVtbXkgZGVmaW5pdGlvbi4KKyBnc2VyaWFs dmVyX1NPVVJDRVMgPQorIGdzZXJpYWx2ZXJfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3NwYXRo LnRvb2xzLnNlcmlhbHZlci5TZXJpYWxWZXIgXAorLQktcnBhdGggJCh0b29sZXhlY2xpYmRpcikg LXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdTKQorKwktcnBhdGggJCh0b29sZXhlY2xpYmRp cikgLXNoYXJlZC1saWJnY2MgJChUSFJFQURMREZMQUdTKSAkKGV4dHJhX2xkZmxhZ3MpCisgZ3Nl cmlhbHZlcl9MSU5LID0gJChHQ0pMSU5LKQorICMjIFNlZSBqdl9jb252ZXJ0X0xEQURELgorIGdz ZXJpYWx2ZXJfTERBREQgPSAtTCQoaGVyZSkvLmxpYnMgbGliZ2NqLXRvb2xzLmxhCitAQCAtNzg4 LDcgKzc4OSw3IEBAIGdzZXJpYWx2ZXJfREVQRU5ERU5DSUVTID0gbGliZ2NqLXRvb2xzLmwKKyAj IyBUaGlzIGlzIGEgZHVtbXkgZGVmaW5pdGlvbi4KKyBndG5hbWVzZXJ2X1NPVVJDRVMgPQorIGd0 bmFtZXNlcnZfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xhc3NwYXRoLnRvb2xzLnRuYW1lc2Vydi5N YWluIFwKKy0JLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFE TERGTEFHUykKKysJLXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhS RUFETERGTEFHUykgJChleHRyYV9sZGZsYWdzKQorIGd0bmFtZXNlcnZfTElOSyA9ICQoR0NKTElO SykKKyAjIyBTZWUganZfY29udmVydF9MREFERC4KKyBndG5hbWVzZXJ2X0xEQUREID0gLUwkKGhl cmUpLy5saWJzIGxpYmdjai10b29scy5sYQorQEAgLTc5Nyw3ICs3OTgsNyBAQCBndG5hbWVzZXJ2 X0RFUEVOREVOQ0lFUyA9IGxpYmdjai10b29scy5sCisgIyMgVGhpcyBpcyBhIGR1bW15IGRlZmlu aXRpb24uCisgZ3JtaWNfU09VUkNFUyA9CisgZ3JtaWNfTERGTEFHUyA9IC0tbWFpbj1nbnUuY2xh c3NwYXRoLnRvb2xzLnJtaWMuTWFpbiBcCistCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAtc2hh cmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpCisrCS1ycGF0aCAkKHRvb2xleGVjbGliZGlyKSAt c2hhcmVkLWxpYmdjYyAkKFRIUkVBRExERkxBR1MpICQoZXh0cmFfbGRmbGFncykKKyBncm1pY19M SU5LID0gJChHQ0pMSU5LKQorICMjIFNlZSBqdl9jb252ZXJ0X0xEQURELgorIGdybWljX0xEQURE ID0gLUwkKGhlcmUpLy5saWJzIGxpYmdjai10b29scy5sYQorQEAgLTgwNiw3ICs4MDcsNyBAQCBn cm1pY19ERVBFTkRFTkNJRVMgPSBsaWJnY2otdG9vbHMubGEKKyAjIyBUaGlzIGlzIGEgZHVtbXkg ZGVmaW5pdGlvbi4KKyBncm1pcmVnaXN0cnlfU09VUkNFUyA9CisgZ3JtaXJlZ2lzdHJ5X0xERkxB R1MgPSAtLW1haW49Z251LmNsYXNzcGF0aC50b29scy5ybWlyZWdpc3RyeS5NYWluIFwKKy0JLXJw YXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykKKysJ LXJwYXRoICQodG9vbGV4ZWNsaWJkaXIpIC1zaGFyZWQtbGliZ2NjICQoVEhSRUFETERGTEFHUykg JChleHRyYV9sZGZsYWdzKQorIGdybWlyZWdpc3RyeV9MSU5LID0gJChHQ0pMSU5LKQorICMjIFNl ZSBqdl9jb252ZXJ0X0xEQURELgorIGdybWlyZWdpc3RyeV9MREFERCA9IC1MJChoZXJlKS8ubGli cyBsaWJnY2otdG9vbHMubGEKKy0tLSBsaWJqYXZhL2V4Y2VwdGlvbi5jYy5qagkyMDA3LTA5LTA2 IDE0OjA2OjE1LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvZXhjZXB0aW9uLmNjCTIwMDct MDktMDYgMTc6MjA6NDIuMDAwMDAwMDAwICswMjAwCitAQCAtNTgsNiArNTgsMjEgQEAgc3RydWN0 IGphdmFfZXhjZXB0aW9uX2hlYWRlcgorICAgX1Vud2luZF9FeGNlcHRpb24gdW53aW5kSGVhZGVy OworIH07CisgCisrI2lmZGVmIF9fQVJNX0VBQklfVU5XSU5ERVJfXworKy8vIFRoaXMgaXMgdGhl IGV4Y2VwdGlvbiBjbGFzcyB3ZSByZXBvcnQgLS0gIkdOVUNKQVZBIi4KKysKKytjb25zdCBfVW53 aW5kX0V4Y2VwdGlvbl9DbGFzcyBfX2djal9leGNlcHRpb25fY2xhc3MKKysgID0geydHJywgJ04n LCAnVScsICdDJywgJ0onLCAnQScsICdWJywgJ0EnfTsKKysKKytzdGF0aWMgaW5saW5lIGphdmFf ZXhjZXB0aW9uX2hlYWRlciAqCisrZ2V0X2V4Y2VwdGlvbl9oZWFkZXJfZnJvbV91ZSAoX1Vud2lu ZF9FeGNlcHRpb24gKmV4YykKKyt7CisrICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxqYXZhX2V4 Y2VwdGlvbl9oZWFkZXIgKj4oZXhjICsgMSkgLSAxOworK30KKysKKytleHRlcm4gIkMiIHZvaWQg X19jeGFfYmVnaW5fY2xlYW51cCAoX1Vud2luZF9FeGNlcHRpb24qKTsKKysKKysjZWxzZSAvLyAh X19BUk1fRUFCSV9VTldJTkRFUl9fCisgLy8gVGhpcyBpcyB0aGUgZXhjZXB0aW9uIGNsYXNzIHdl IHJlcG9ydCAtLSAiR05VQ0pBVkEiLgorIGNvbnN0IF9VbndpbmRfRXhjZXB0aW9uX0NsYXNzIF9f Z2NqX2V4Y2VwdGlvbl9jbGFzcworID0gKCgoKCgoKChfVW53aW5kX0V4Y2VwdGlvbl9DbGFzcykg J0cnIAorQEAgLTc1LDYgKzkwLDcgQEAgZ2V0X2V4Y2VwdGlvbl9oZWFkZXJfZnJvbV91ZSAoX1Vu d2luZF9FeAorIHsKKyAgIHJldHVybiByZWludGVycHJldF9jYXN0PGphdmFfZXhjZXB0aW9uX2hl YWRlciAqPihleGMgKyAxKSAtIDE7CisgfQorKyNlbmRpZiAvLyAhX19BUk1fRUFCSV9VTldJTkRF Ul9fCisgCisgLyogUGVyZm9ybSBhIHRocm93LCBKYXZhIHN0eWxlLiBUaHJvdyB3aWxsIHVud2lu ZCB0aHJvdWdoIHRoaXMgY2FsbCwKKyAgICBzbyB0aGVyZSBiZXR0ZXIgbm90IGJlIGFueSBoYW5k bGVycyBvciBleGNlcHRpb24gdGhyb3duIGhlcmUuICovCitAQCAtODksNyArMTA1LDggQEAgX0p2 X1Rocm93IChqdGhyb3dhYmxlIHZhbHVlKQorICAgICB2YWx1ZSA9IG5ldyBqYXZhOjpsYW5nOjpO dWxsUG9pbnRlckV4Y2VwdGlvbiAoKTsKKyAgIHhoLT52YWx1ZSA9IHZhbHVlOworIAorLSAgeGgt PnVud2luZEhlYWRlci5leGNlcHRpb25fY2xhc3MgPSBfX2djal9leGNlcHRpb25fY2xhc3M7Cisr ICBtZW1jcHkgKCZ4aC0+dW53aW5kSGVhZGVyLmV4Y2VwdGlvbl9jbGFzcywgJl9fZ2NqX2V4Y2Vw dGlvbl9jbGFzcywKKysJICBzaXplb2YgeGgtPnVud2luZEhlYWRlci5leGNlcHRpb25fY2xhc3Mp OworICAgeGgtPnVud2luZEhlYWRlci5leGNlcHRpb25fY2xlYW51cCA9IE5VTEw7CisgCisgICAv KiBXZSdyZSBoYXBweSB3aXRoIHNldGptcC9sb25nam1wIGV4Y2VwdGlvbnMgb3IgcmVnaW9uLWJh c2VkCitAQCAtMTU5LDYgKzE3NiwyMSBAQCBwYXJzZV9sc2RhX2hlYWRlciAoX1Vud2luZF9Db250 ZXh0ICpjb250CisgICByZXR1cm4gcDsKKyB9CisgCisrI2lmZGVmIF9fQVJNX0VBQklfVU5XSU5E RVJfXworKworK3N0YXRpYyB2b2lkICoqCisrZ2V0X3R0eXBlX2VudHJ5KF9VbndpbmRfQ29udGV4 dCAqLCBsc2RhX2hlYWRlcl9pbmZvKiBpbmZvLCBfVW53aW5kX1dvcmQgaSkKKyt7CisrICBfVW53 aW5kX1B0ciBwdHI7CisrCisrICBwdHIgPSAoX1Vud2luZF9QdHIpIChpbmZvLT5UVHlwZSAtIChp ICogNCkpOworKyAgcHRyID0gX1Vud2luZF9kZWNvZGVfdGFyZ2V0MihwdHIpOworKyAgCisrICBy ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkICoqPihwdHIpOworK30KKysKKysjZWxzZQorKwor IHN0YXRpYyB2b2lkICoqCisgZ2V0X3R0eXBlX2VudHJ5IChfVW53aW5kX0NvbnRleHQgKmNvbnRl eHQsIGxzZGFfaGVhZGVyX2luZm8gKmluZm8sIGxvbmcgaSkKKyB7CitAQCAtMTcwLDYgKzIwMiw3 IEBAIGdldF90dHlwZV9lbnRyeSAoX1Vud2luZF9Db250ZXh0ICpjb250ZXgKKyAgIHJldHVybiBy ZWludGVycHJldF9jYXN0PHZvaWQgKio+KHB0cik7CisgfQorIAorKyNlbmRpZgorIAorIC8vIFVz aW5nIGEgZGlmZmVyZW50IHBlcnNvbmFsaXR5IGZ1bmN0aW9uIG5hbWUgY2F1c2VzIGxpbmsgZmFp bHVyZXMKKyAvLyB3aGVuIHRyeWluZyB0byBtaXggY29kZSB1c2luZyBkaWZmZXJlbnQgZXhjZXB0 aW9uIGhhbmRsaW5nIG1vZGVscy4KK0BAIC0xODAsMTIgKzIxMywzMyBAQCBnZXRfdHR5cGVfZW50 cnkgKF9VbndpbmRfQ29udGV4dCAqY29udGV4CisgI2RlZmluZSBQRVJTT05BTElUWV9GVU5DVElP TglfX2djal9wZXJzb25hbGl0eV92MAorICNlbmRpZgorIAorKyNpZmRlZiBfX0FSTV9FQUJJX1VO V0lOREVSX18KKysKKysjZGVmaW5lIENPTlRJTlVFX1VOV0lORElORyBcCisrICBkbwkJCQkJCQkJ XAorKyAgICB7CQkJCQkJCQlcCisrICAgICAgaWYgKF9fZ251X3Vud2luZF9mcmFtZSh1ZV9oZWFk ZXIsIGNvbnRleHQpICE9IF9VUkNfT0spCVwKKysJcmV0dXJuIF9VUkNfRkFJTFVSRTsJCQkJCVwK KysgICAgICByZXR1cm4gX1VSQ19DT05USU5VRV9VTldJTkQ7CQkJCVwKKysgICAgfQkJCQkJCQkJ XAorKyAgd2hpbGUgKDApCisrCisrZXh0ZXJuICJDIiBfVW53aW5kX1JlYXNvbl9Db2RlCisrUEVS U09OQUxJVFlfRlVOQ1RJT04gKF9VbndpbmRfU3RhdGUgc3RhdGUsCisrCQkgICAgICBzdHJ1Y3Qg X1Vud2luZF9FeGNlcHRpb24qIHVlX2hlYWRlciwKKysJCSAgICAgIHN0cnVjdCBfVW53aW5kX0Nv bnRleHQqIGNvbnRleHQpCisrI2Vsc2UKKysKKysjZGVmaW5lIENPTlRJTlVFX1VOV0lORElORyBy ZXR1cm4gX1VSQ19DT05USU5VRV9VTldJTkQKKysKKyBleHRlcm4gIkMiIF9VbndpbmRfUmVhc29u X0NvZGUKKyBQRVJTT05BTElUWV9GVU5DVElPTiAoaW50IHZlcnNpb24sCisgCQkgICAgICBfVW53 aW5kX0FjdGlvbiBhY3Rpb25zLAorIAkJICAgICAgX1Vud2luZF9FeGNlcHRpb25fQ2xhc3MgZXhj ZXB0aW9uX2NsYXNzLAorIAkJICAgICAgc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uICp1ZV9oZWFk ZXIsCisgCQkgICAgICBzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpjb250ZXh0KQorKworKyNlbmRp ZgorIHsKKyAgIGphdmFfZXhjZXB0aW9uX2hlYWRlciAqeGggPSBnZXRfZXhjZXB0aW9uX2hlYWRl cl9mcm9tX3VlICh1ZV9oZWFkZXIpOworIAorQEAgLTE5NywxNiArMjUxLDU2IEBAIFBFUlNPTkFM SVRZX0ZVTkNUSU9OIChpbnQgdmVyc2lvbiwKKyAgIGludCBoYW5kbGVyX3N3aXRjaF92YWx1ZTsK KyAgIGJvb2wgc2F3X2NsZWFudXA7CisgICBib29sIHNhd19oYW5kbGVyOworKyAgYm9vbCBmb3Jl aWduX2V4Y2VwdGlvbjsKKyAgIGludCBpcF9iZWZvcmVfaW5zbiA9IDA7CisgCisrI2lmZGVmIF9f QVJNX0VBQklfVU5XSU5ERVJfXworKyAgX1Vud2luZF9BY3Rpb24gYWN0aW9uczsKKysKKysgIHN3 aXRjaCAoc3RhdGUgJiBfVVNfQUNUSU9OX01BU0spCisrICAgIHsKKysgICAgY2FzZSBfVVNfVklS VFVBTF9VTldJTkRfRlJBTUU6CisrICAgICAgYWN0aW9ucyA9IF9VQV9TRUFSQ0hfUEhBU0U7Cisr ICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgX1VTX1VOV0lORF9GUkFNRV9TVEFSVElORzoKKysg ICAgICBhY3Rpb25zID0gX1VBX0NMRUFOVVBfUEhBU0U7CisrICAgICAgaWYgKCEoc3RhdGUgJiBf VVNfRk9SQ0VfVU5XSU5EKQorKwkgICYmIHVlX2hlYWRlci0+YmFycmllcl9jYWNoZS5zcCA9PSBf VW53aW5kX0dldEdSKGNvbnRleHQsIDEzKSkKKysJYWN0aW9ucyB8PSBfVUFfSEFORExFUl9GUkFN RTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBfVVNfVU5XSU5EX0ZSQU1FX1JFU1VNRToK KysgICAgICBDT05USU5VRV9VTldJTkRJTkc7CisrICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1 bHQ6CisrICAgICAgc3RkOjphYm9ydCgpOworKyAgICB9CisrICBhY3Rpb25zIHw9IHN0YXRlICYg X1VTX0ZPUkNFX1VOV0lORDsKKysKKysgIC8vIFdlIGRvbid0IGtub3cgd2hpY2ggcnVudGltZSB3 ZSdyZSB3b3JraW5nIHdpdGgsIHNvIGNhbid0IGNoZWNrIHRoaXMuCisrICAvLyBIb3dldmVyIHRo ZSBBQkkgcm91dGluZXMgaGlkZSB0aGlzIGZyb20gdXMsIGFuZCB3ZSBkb24ndCBhY3R1YWxseSBu ZWVkCisrICAvLyB0byBrbm93LgorKyAgZm9yZWlnbl9leGNlcHRpb24gPSBmYWxzZTsKKysKKysg IC8vIFRoZSBkd2FyZiB1bndpbmRlciBhc3N1bWVzIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBob2xk cyB0aGluZ3MgbGlrZSB0aGUKKysgIC8vIGZ1bmN0aW9uIGFuZCBMU0RBIHBvaW50ZXJzLiAgVGhl IEFSTSBpbXBsZW1lbnRhdGlvbiBjYWNoZXMgdGhlc2UgaW4KKysgIC8vIHRoZSBleGNlcHRpb24g aGVhZGVyIChVQ0IpLiAgVG8gYXZvaWQgcmV3cml0aW5nIGV2ZXJ5dGhpbmcgd2UgbWFrZSB0aGUK KysgIC8vIHZpcnR1YWwgSVAgcmVnaXN0ZXIgcG9pbnQgYXQgdGhlIFVDQi4KKysgIGlwID0gKF9V bndpbmRfUHRyKSB1ZV9oZWFkZXI7CisrICBfVW53aW5kX1NldEdSKGNvbnRleHQsIDEyLCBpcCk7 CisgCisrI2Vsc2UKKyAgIC8vIEludGVyZmFjZSB2ZXJzaW9uIGNoZWNrLgorICAgaWYgKHZlcnNp b24gIT0gMSkKKyAgICAgcmV0dXJuIF9VUkNfRkFUQUxfUEhBU0UxX0VSUk9SOworKyAgZm9yZWln bl9leGNlcHRpb24gPSBleGNlcHRpb25fY2xhc3MgIT0gX19nY2pfZXhjZXB0aW9uX2NsYXNzOwor KyNlbmRpZgorIAorICAgLy8gU2hvcnRjdXQgZm9yIHBoYXNlIDIgZm91bmQgaGFuZGxlciBmb3Ig ZG9tZXN0aWMgZXhjZXB0aW9uLgorICAgaWYgKGFjdGlvbnMgPT0gKF9VQV9DTEVBTlVQX1BIQVNF IHwgX1VBX0hBTkRMRVJfRlJBTUUpCistICAgICAgJiYgZXhjZXB0aW9uX2NsYXNzID09IF9fZ2Nq X2V4Y2VwdGlvbl9jbGFzcykKKysgICAgICAmJiAhZm9yZWlnbl9leGNlcHRpb24pCisgICAgIHsK KyAgICAgICBoYW5kbGVyX3N3aXRjaF92YWx1ZSA9IHhoLT5oYW5kbGVyU3dpdGNoVmFsdWU7Cisg ICAgICAgbGFuZGluZ19wYWQgPSB4aC0+bGFuZGluZ1BhZDsKK0BAIC0yMjcsMTcgKzMyMSwxNyBA QCBQRVJTT05BTElUWV9GVU5DVElPTiAoaW50IHZlcnNpb24sCisgCisgICAvLyBJZiBubyBMU0RB LCB0aGVuIHRoZXJlIGFyZSBubyBoYW5kbGVycyBvciBjbGVhbnVwcy4KKyAgIGlmICghIGxhbmd1 YWdlX3NwZWNpZmljX2RhdGEpCistICAgIHJldHVybiBfVVJDX0NPTlRJTlVFX1VOV0lORDsKKysg ICAgQ09OVElOVUVfVU5XSU5ESU5HOworIAorICAgLy8gUGFyc2UgdGhlIExTREEgaGVhZGVyLgor ICAgcCA9IHBhcnNlX2xzZGFfaGVhZGVyIChjb250ZXh0LCBsYW5ndWFnZV9zcGVjaWZpY19kYXRh LCAmaW5mbyk7CisgI2lmZGVmIEhBVkVfR0VUSVBJTkZPCisgICBpcCA9IF9VbndpbmRfR2V0SVBJ bmZvIChjb250ZXh0LCAmaXBfYmVmb3JlX2luc24pOworLSAgaWYgKCEgaXBfYmVmb3JlX2luc24p CistICAgIC0taXA7CisgI2Vsc2UKKyAgIGlwID0gX1Vud2luZF9HZXRJUCAoY29udGV4dCkgLSAx OworICNlbmRpZgorKyAgaWYgKCEgaXBfYmVmb3JlX2luc24pCisrICAgIC0taXA7CisgICBsYW5k aW5nX3BhZCA9IDA7CisgICBhY3Rpb25fcmVjb3JkID0gMDsKKyAgIGhhbmRsZXJfc3dpdGNoX3Zh bHVlID0gMDsKK0BAIC0yOTYsNyArMzkwLDcgQEAgUEVSU09OQUxJVFlfRlVOQ1RJT04gKGludCB2 ZXJzaW9uLAorICAgLy8gSWYgaXAgaXMgbm90IHByZXNlbnQgaW4gdGhlIHRhYmxlLCBDKysgd291 bGQgY2FsbCB0ZXJtaW5hdGUuCisgICAvLyA/Pz8gSXQgaXMgcGVyaGFwcyBiZXR0ZXIgdG8gdHdl ZWsgdGhlIExTREEgc28gdGhhdCBuby1hY3Rpb24KKyAgIC8vIGlzIG1hcHBlZCB0byBuby1lbnRy eSBmb3IgSmF2YS4KKy0gIHJldHVybiBfVVJDX0NPTlRJTlVFX1VOV0lORDsKKysgIENPTlRJTlVF X1VOV0lORElORzsKKyAKKyAgZm91bmRfc29tZXRoaW5nOgorICAgc2F3X2NsZWFudXAgPSBmYWxz ZTsKK0BAIC0zMzQsNyArNDI4LDcgQEAgUEVSU09OQUxJVFlfRlVOQ1RJT04gKGludCB2ZXJzaW9u LAorIAkgIC8vIER1cmluZyBmb3JjZWQgdW53aW5kaW5nLCB3ZSBvbmx5IHJ1biBjbGVhbnVwcy4g IFdpdGggYQorIAkgIC8vIGZvcmVpZ24gZXhjZXB0aW9uIGNsYXNzLCB3ZSBoYXZlIG5vIGNsYXNz IGluZm8gdG8gbWF0Y2guCisgCSAgZWxzZSBpZiAoKGFjdGlvbnMgJiBfVUFfRk9SQ0VfVU5XSU5E KQorLQkgICAgICB8fCBleGNlcHRpb25fY2xhc3MgIT0gX19nY2pfZXhjZXB0aW9uX2NsYXNzKQor KwkJICAgfHwgZm9yZWlnbl9leGNlcHRpb24pCisgCSAgICA7CisgCisgCSAgZWxzZSBpZiAoYXJf ZmlsdGVyID4gMCkKK0BAIC0zNzQsMTUgKzQ2OCwxNSBAQCBQRVJTT05BTElUWV9GVU5DVElPTiAo aW50IHZlcnNpb24sCisgICAgIH0KKyAKKyAgIGlmICghIHNhd19oYW5kbGVyICYmICEgc2F3X2Ns ZWFudXApCistICAgIHJldHVybiBfVVJDX0NPTlRJTlVFX1VOV0lORDsKKysJQ09OVElOVUVfVU5X SU5ESU5HOworIAorICAgaWYgKGFjdGlvbnMgJiBfVUFfU0VBUkNIX1BIQVNFKQorICAgICB7Cisg ICAgICAgaWYgKCEgc2F3X2hhbmRsZXIpCistCXJldHVybiBfVVJDX0NPTlRJTlVFX1VOV0lORDsK KysJQ09OVElOVUVfVU5XSU5ESU5HOworIAorICAgICAgIC8vIEZvciBkb21lc3RpYyBleGNlcHRp b25zLCB3ZSBjYWNoZSBkYXRhIGZyb20gcGhhc2UgMSBmb3IgcGhhc2UgMi4KKy0gICAgICBpZiAo ZXhjZXB0aW9uX2NsYXNzID09IF9fZ2NqX2V4Y2VwdGlvbl9jbGFzcykKKysgICAgICBpZiAoISBm b3JlaWduX2V4Y2VwdGlvbikKKyAgICAgICAgIHsKKyAgICAgICAgICAgeGgtPmhhbmRsZXJTd2l0 Y2hWYWx1ZSA9IGhhbmRsZXJfc3dpdGNoX3ZhbHVlOworICAgICAgICAgICB4aC0+bGFuZGluZ1Bh ZCA9IGxhbmRpbmdfcGFkOworQEAgLTM5Niw1ICs0OTAsOSBAQCBQRVJTT05BTElUWV9GVU5DVElP TiAoaW50IHZlcnNpb24sCisgICBfVW53aW5kX1NldEdSIChjb250ZXh0LCBfX2J1aWx0aW5fZWhf cmV0dXJuX2RhdGFfcmVnbm8gKDEpLAorIAkJIGhhbmRsZXJfc3dpdGNoX3ZhbHVlKTsKKyAgIF9V bndpbmRfU2V0SVAgKGNvbnRleHQsIGxhbmRpbmdfcGFkKTsKKysjaWZkZWYgX19BUk1fRUFCSV9V TldJTkRFUl9fCisrICBpZiAoc2F3X2NsZWFudXApCisrICAgIF9fY3hhX2JlZ2luX2NsZWFudXAo dWVfaGVhZGVyKTsKKysjZW5kaWYKKyAgIHJldHVybiBfVVJDX0lOU1RBTExfQ09OVEVYVDsKKyB9 CistLS0gbGliamF2YS9nbnUvY2xhc3NwYXRoL25hdFZNU3RhY2tXYWxrZXIuY2MuamoJMjAwNy0w OS0wNiAxNDowNjoxNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJqYXZhL2dudS9jbGFzc3BhdGgv bmF0Vk1TdGFja1dhbGtlci5jYwkyMDA3LTA5LTA2IDE3OjIwOjQyLjAwMDAwMDAwMCArMDIwMAor QEAgLTE5LDYgKzE5LDcgQEAgZGV0YWlscy4gICovCisgI2luY2x1ZGUgPGphdmEvbGFuZy9DbGFz c0xvYWRlci5oPgorICNpbmNsdWRlIDxqYXZhL2xhbmcvQ2xhc3MuaD4KKyAKKysjaWZuZGVmIF9f QVJNX0VBQklfVU5XSU5ERVJfXworIC8vIFJldHVybiB0aGUgY2xhc3Mgb2YgdGhlIG1ldGhvZCB0 aGF0IGNvbnRhaW5zIFBDLgorIC8vIFRoaXMgaXMgYSBtYWNybyBub3QgYSBmdW5jdGlvbiwgc2lu Y2UgZGVmaW5pbmcgaXQgYXMgb25lIHdvdWxkCisgLy8gaW50cm9kdWNlIGFuIGV4dHJhIGZyYW1l IG9uIHRoZSBzdGFjay4gICovCitAQCAtNDQsNiArNDUsMTEgQEAgZGV0YWlscy4gICovCisgCQkJ CQkJCQkJXAorICAga2xhc3M7CQkJCQkJCQlcCisgIH0pCisrI2Vsc2UgLy8gX19BUk1fRUFCSV9V TldJTkRFUl9fCisrLy8gQVJNIEVBQkkgZG9lc24ndCBzdXBwb3J0IF9VbndpbmRfRmluZEVuY2xv c2luZ0Z1bmN0aW9uLgorKyNkZWZpbmUgR0VUX0NBTExJTkdfQ0xBU1MoUEMpCQkJCVwKKysgIChf SnZfU3RhY2tUcmFjZTo6R2V0U3RhY2tXYWxrZXJDYWxsaW5nQ2xhc3MgKCkpCisrI2VuZGlmCisg CisgSkFycmF5PGpjbGFzcz4gKgorIGdudTo6Y2xhc3NwYXRoOjpWTVN0YWNrV2Fsa2VyOjpnZXRD bGFzc0NvbnRleHQodm9pZCkKK0BAIC01OSwxNCArNjUsMTggQEAgamNsYXNzCisgZ251OjpjbGFz c3BhdGg6OlZNU3RhY2tXYWxrZXI6OmdldENhbGxpbmdDbGFzcyh2b2lkKQorIHsKKyAgIF9Kdl9J bml0Q2xhc3MgKCY6OmdudTo6Y2xhc3NwYXRoOjpWTVN0YWNrV2Fsa2VyOjpjbGFzcyQpOworLSAg cmV0dXJuIF9Kdl9TdGFja1RyYWNlOjpHZXRTdGFja1dhbGtlckNhbGxpbmdDbGFzcyAoKTsKKysg IGpjbGFzcyByZXN1bHQgPSBfSnZfU3RhY2tUcmFjZTo6R2V0U3RhY2tXYWxrZXJDYWxsaW5nQ2xh c3MgKCk7CisrICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6ICJnIiAocmVzdWx0KSk7Cisr ICByZXR1cm4gcmVzdWx0OworIH0KKyAKKyBqY2xhc3MKKyBnbnU6OmNsYXNzcGF0aDo6Vk1TdGFj a1dhbGtlcjo6Z2V0Q2FsbGluZ0NsYXNzKDo6Z251OjpnY2o6OlJhd0RhdGEgKnBjKQorIHsKKyAg IF9Kdl9Jbml0Q2xhc3MgKCY6OmdudTo6Y2xhc3NwYXRoOjpWTVN0YWNrV2Fsa2VyOjpjbGFzcyQp OworLSAgcmV0dXJuIEdFVF9DQUxMSU5HX0NMQVNTKHBjKTsKKysgIGpjbGFzcyByZXN1bHQgPSBH RVRfQ0FMTElOR19DTEFTUyhwYyk7CisrICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6ICJn IiAocmVzdWx0KSk7CisrICByZXR1cm4gcmVzdWx0OworIH0KKyAKKyA6OmphdmE6Omxhbmc6OkNs YXNzTG9hZGVyICoKKy0tLSBsaWJqYXZhL3N5c2RlcC9hcm0vYmFja3RyYWNlLmguamoJMjAwNy0w OS0wNiAxNzoyMDo0Mi4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJqYXZhL3N5c2RlcC9hcm0vYmFj a3RyYWNlLmgJMjAwNy0wOS0wNiAxNzoyMDo0Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs MzUgQEAKKysvLyBiYWNrdHJhY2UuaCAtIEZhbGxiYWNrIGJhY2t0cmFjZSBpbXBsZW1lbnRhdGlv bi4gQVJNIGltcGxlbWVudGF0aW9uLgorKworKy8qIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgbGli Z2NqLgorKworK1RoaXMgc29mdHdhcmUgaXMgY29weXJpZ2h0ZWQgd29yayBsaWNlbnNlZCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlCisrTGliZ2NqIExpY2Vuc2UuICBQbGVhc2UgY29uc3VsdCB0aGUg ZmlsZSAiTElCR0NKX0xJQ0VOU0UiIGZvcgorK2RldGFpbHMuICAqLworKworKyNpZm5kZWYgX19T WVNERVBfQkFDS1RSQUNFX0hfXworKyNkZWZpbmUgX19TWVNERVBfQkFDS1RSQUNFX0hfXworKwor KyNpbmNsdWRlIDxqYXZhLXN0YWNrLmg+CisrCisrZXh0ZXJuICJDIgorK3sKKysvKiBVbndpbmQg dGhyb3VnaCB0aGUgY2FsbCBzdGFjayBjYWxsaW5nIFRSQUNFX0ZOIHdpdGggU1RBVEUgZm9yIGV2 ZXJ5IHN0YWNrCisrICAgZnJhbWUuICBSZXR1cm5zIHRoZSByZWFzb24gd2h5IHRoZSB1bndpbmRp bmcgd2FzIHN0b3BwZWQuICAqLworKyNpZmRlZiBfX0FSTV9FQUJJX1VOV0lOREVSX18KKysKKysj ZGVmaW5lIF9VbndpbmRfRmluZEVuY2xvc2luZ0Z1bmN0aW9uKFBDKSBcCisrICAoUEMpCisrCisr X1Vud2luZF9SZWFzb25fQ29kZQorK2ZhbGxiYWNrX2JhY2t0cmFjZSAoX1Vud2luZF9SZWFzb25f Q29kZSAoKikoc3RydWN0IF9VbndpbmRfQ29udGV4dCosIHZvaWQqKSwgX0p2X1Vud2luZFN0YXRl ICopCisrI2Vsc2UKKytfVW53aW5kX1JlYXNvbl9Db2RlCisrZmFsbGJhY2tfYmFja3RyYWNlIChf VW53aW5kX1RyYWNlX0ZuLCBfSnZfVW53aW5kU3RhdGUgKikKKysjZW5kaWYKKyt7CisrICByZXR1 cm4gX1VSQ19OT19SRUFTT047CisrfQorK30KKysjZW5kaWYKCmRpZmYgLS1naXQgYS9nY2M0MS1q YXZhLWFybTcucGF0Y2ggYi9nY2M0MS1qYXZhLWFybTcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNGNjZTUzMAotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLWphdmEt YXJtNy5wYXRjaApAQCAtMCwwICsxLDMyIEBACisyMDA3LTA5LTA3ICBBbmRyZXcgSGFsZXkgIDxh cGhAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmluIChub2NvbmZpZ2RpcnMpOiBSZW1vdmUg dGFyZ2V0LWxpYmZmaSBhbmQKKwl0YXJnZXQtbGliamF2YS4KKwkqIGNvbmZpZ3VyZTogUmVnZW5l cmF0ZS4KKworLS0tIGNvbmZpZ3VyZS5pbgkocmV2aXNpb24gMTI4MjQ5KQorKysrIGNvbmZpZ3Vy ZS5pbgkocmV2aXNpb24gMTI4MjUwKQorQEAgLTUwMSw4ICs1MDEsOCBAQCBjYXNlICIke3Rhcmdl dH0iIGluCisgICAgIG5vY29uZmlnZGlycz0iJG5vY29uZmlnZGlycyB0YXJnZXQtbGliZmZpIHRh cmdldC1xdGhyZWFkcyIKKyAgICAgOzsKKyAgIGFybSotKi1saW51eC1nbnVlYWJpKQorLSAgICBu b2NvbmZpZ2RpcnM9IiRub2NvbmZpZ2RpcnMgdGFyZ2V0LWxpYmZmaSB0YXJnZXQtcXRocmVhZHMi CistICAgIG5vY29uZmlnZGlycz0iJG5vY29uZmlnZGlycyB0YXJnZXQtbGliamF2YSB0YXJnZXQt bGlib2JqYyIKKysgICAgbm9jb25maWdkaXJzPSIkbm9jb25maWdkaXJzIHRhcmdldC1xdGhyZWFk cyIKKysgICAgbm9jb25maWdkaXJzPSIkbm9jb25maWdkaXJzIHRhcmdldC1saWJvYmpjIgorICAg ICA7OworICAgYXJtKi0qLXN5bWJpYW5lbGYqKQorICAgICBub2NvbmZpZ2RpcnM9IiRub2NvbmZp Z2RpcnMgJHtsaWJnY2p9IHRhcmdldC1saWJpYmVydHkiCistLS0gY29uZmlndXJlCShyZXZpc2lv biAxMjgyNDkpCisrKysgY29uZmlndXJlCShyZXZpc2lvbiAxMjgyNTApCitAQCAtMTI5Myw4ICsx MjkzLDggQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorICAgICBub2NvbmZpZ2RpcnM9IiRub2NvbmZp Z2RpcnMgdGFyZ2V0LWxpYmZmaSB0YXJnZXQtcXRocmVhZHMiCisgICAgIDs7CisgICBhcm0qLSot bGludXgtZ251ZWFiaSkKKy0gICAgbm9jb25maWdkaXJzPSIkbm9jb25maWdkaXJzIHRhcmdldC1s aWJmZmkgdGFyZ2V0LXF0aHJlYWRzIgorLSAgICBub2NvbmZpZ2RpcnM9IiRub2NvbmZpZ2RpcnMg dGFyZ2V0LWxpYmphdmEgdGFyZ2V0LWxpYm9iamMiCisrICAgIG5vY29uZmlnZGlycz0iJG5vY29u ZmlnZGlycyB0YXJnZXQtcXRocmVhZHMiCisrICAgIG5vY29uZmlnZGlycz0iJG5vY29uZmlnZGly cyB0YXJnZXQtbGlib2JqYyIKKyAgICAgOzsKKyAgIGFybSotKi1zeW1iaWFuZWxmKikKKyAgICAg bm9jb25maWdkaXJzPSIkbm9jb25maWdkaXJzICR7bGliZ2NqfSB0YXJnZXQtbGliaWJlcnR5IgoK ZGlmZiAtLWdpdCBhL2djYzQxLWphdmEtYXJtOC5wYXRjaCBiL2djYzQxLWphdmEtYXJtOC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODIwNzMxCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjNDEtamF2YS1hcm04LnBhdGNoCkBAIC0wLDAgKzEsNjUgQEAKKzIwMDctMDct MTMgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgorCisJKiB0ZXN0c3VpdGUvbGliamF2 YS5qdm10aS9qdm10aS1pbnRlcnAuZXhwOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJqYXZh LmpuaS9qbmkuZXhwOiBVc2UgLWZkb2xsYXJzLWluLWlkZW50aWZpZXJzLgorCSogdGVzdHN1aXRl L2xpYmphdmEuam5pL2NuaS5leHA6IFVzZSAtZmRvbGxhcnMtaW4taWRlbnRpZmllcnMuCisJKiB0 ZXN0c3VpdGUvbGliamF2YS5qdm10aS9qdm10aS5leHAgKGdjal9qdm10aV9jb21waWxlX2N4eF90 b19vKTogTGlrZXdpc2UuCisKKy0tLSBsaWJqYXZhL3Rlc3RzdWl0ZS9saWJqYXZhLmNuaS9jbmku ZXhwCShyZXZpc2lvbiAxMjY2MjEpCisrKysgbGliamF2YS90ZXN0c3VpdGUvbGliamF2YS5jbmkv Y25pLmV4cAkocmV2aXNpb24gMTI2NjIyKQorQEAgLTEwLDcgKzEwLDcgQEAKKyAgIHNldCBvbmFt ZSAke25hbWV9Lm8KKyAKKyAgICMgRmluZCB0aGUgZ2VuZXJhdGVkIGhlYWRlci4KKy0gIGxhcHBl bmQgb3B0aW9ucyAiYWRkaXRpb25hbF9mbGFncz0tSS4gLUkuLiAtSSRzcmNkaXIvJHN1YmRpciIK KysgIGxhcHBlbmQgb3B0aW9ucyAiYWRkaXRpb25hbF9mbGFncz0tSS4gLUkuLiAtSSRzcmNkaXIv JHN1YmRpciAtZmRvbGxhcnMtaW4taWRlbnRpZmllcnMiCisgICAjIEZpbmQgbGliZ2NqIGhlYWRl cnMuCisgICBsYXBwZW5kIG9wdGlvbnMgImFkZGl0aW9uYWxfZmxhZ3M9LUkkc3JjZGlyLy4uIgor IAorLS0tIGxpYmphdmEvdGVzdHN1aXRlL2xpYmphdmEuanZtdGkvanZtdGktaW50ZXJwLmV4cAko cmV2aXNpb24gMTI2NjIxKQorKysrIGxpYmphdmEvdGVzdHN1aXRlL2xpYmphdmEuanZtdGkvanZt dGktaW50ZXJwLmV4cAkocmV2aXNpb24gMTI2NjIyKQorQEAgLTQ3LDcgKzQ3LDcgQEAKKyAKKyAg ICMgRmluZCBqbmkuaCBhbmQgam5pX21kLmguCisgICBsYXBwZW5kIG9wdGlvbnMgImFkZGl0aW9u YWxfZmxhZ3M9LUkkc3JjZGlyLy4uL2luY2x1ZGUgIFwKKy0gICAgICAgICAgICAgICAgICAgLUkk c3JjZGlyLy4uL2NsYXNzcGF0aC9pbmNsdWRlIgorKyAgICAgICAgICAgICAgICAgICAtSSRzcmNk aXIvLi4vY2xhc3NwYXRoL2luY2x1ZGUgLWZkb2xsYXJzLWluLWlkZW50aWZpZXJzIgorIAorICAg IyBBcHBlbmQgQysrIG9wdGlvbnMKKyAgIGxhcHBlbmQgb3B0aW9ucyAiYWRkaXRpb25hbF9mbGFn cz0kb3B0aW9uc19jeHgiCistLS0gbGliamF2YS90ZXN0c3VpdGUvbGliamF2YS5qdm10aS9qdm10 aS5leHAJKHJldmlzaW9uIDEyNjYyMSkKKysrKyBsaWJqYXZhL3Rlc3RzdWl0ZS9saWJqYXZhLmp2 bXRpL2p2bXRpLmV4cAkocmV2aXNpb24gMTI2NjIyKQorQEAgLTExLDExICsxMSwxMSBAQAorICAg c2V0IG9uYW1lICR7bmFtZX0ubworIAorICAgIyBGaW5kIHRoZSBnZW5lcmF0ZWQgaGVhZGVyLgor LSAgbGFwcGVuZCBvcHRpb25zICJhZGRpdGlvbmFsX2ZsYWdzPS1nIC1JLiAtSS4uIgorKyAgbGFw cGVuZCBvcHRpb25zICJhZGRpdGlvbmFsX2ZsYWdzPS1nIC1JLiAtSS4uIC1mZG9sbGFycy1pbi1p ZGVudGlmaWVycyIKKyAgICMgRmluZCBsaWJnY2ogaGVhZGVycy4KKyAgIGxhcHBlbmQgb3B0aW9u cyAiYWRkaXRpb25hbF9mbGFncz0tSSRzcmNkaXIvLi4iCisgICAjIEZpbmQganZtdGkuaCwganZt dGlfbWQuaCwganZtdGktaW50LmgsIGp2bS5oIHJlcXVpcmVtZW50cworLSAgbGFwcGVuZCBvcHRp b25zICJhZGRpdGlvbmFsX2ZsYWdzPS1JJHNyY2Rpci8uLi9pbmNsdWRlIC1JJHNyY2Rpci8uLi9j bGFzc3BhdGgvaW5jbHVkZSAtSSRvYmpkaXIvLi4vaW5jbHVkZSAtSSRvYmpkaXIvLi4vLi4vYm9l aG0tZ2MvaW5jbHVkZSIKKysgIGxhcHBlbmQgb3B0aW9ucyAiYWRkaXRpb25hbF9mbGFncz0tSSRz cmNkaXIvLi4vaW5jbHVkZSAtSSRzcmNkaXIvLi4vY2xhc3NwYXRoL2luY2x1ZGUgLUkkb2JqZGly Ly4uL2luY2x1ZGUgLUkkb2JqZGlyLy4uLy4uL2JvZWhtLWdjL2luY2x1ZGUgIgorIAorICAgc2V0 IHggW2xpYmphdmFfcHJ1bmVfd2FybmluZ3MgXAorIAkgICBbdGFyZ2V0X2NvbXBpbGUgJGZpbGUg JG9uYW1lIG9iamVjdCAkb3B0aW9uc11dCistLS0gbGliamF2YS90ZXN0c3VpdGUvbGliamF2YS5q bmkvam5pLmV4cAkocmV2aXNpb24gMTI2NjIxKQorKysrIGxpYmphdmEvdGVzdHN1aXRlL2xpYmph dmEuam5pL2puaS5leHAJKHJldmlzaW9uIDEyNjYyMikKK0BAIC0zMSw3ICszMSw3IEBACisgCisg ICBsYXBwZW5kIG9wdGlvbnMgImFkZGl0aW9uYWxfZmxhZ3M9JHtzb19mbGFnfSAtZlBJQyIKKyAg ICMgRmluZCB0aGUgZ2VuZXJhdGVkIGhlYWRlci4KKy0gIGxhcHBlbmQgb3B0aW9ucyAiYWRkaXRp b25hbF9mbGFncz0tSS4gLUkuLiAtSSRzcmNkaXIvJHN1YmRpciIKKysgIGxhcHBlbmQgb3B0aW9u cyAiYWRkaXRpb25hbF9mbGFncz0tSS4gLUkuLiAtSSRzcmNkaXIvJHN1YmRpciAtZmRvbGxhcnMt aW4taWRlbnRpZmllcnMiCisgCisgICAjIEVuc3VyZSB0aGF0IHRoZSBnZW5lcmF0ZWQgaGVhZGVy IGhhcyBjb3JyZWN0IHByb3RvdHlwZXMuCisgICBzZXQgY2ZpbGUgW2ZpbGUgcm9vdG5hbWUgJGZp bGVdLmMKK0BAIC0yMTksNyArMjE5LDcgQEAKKyAgIGxhcHBlbmQgb3B0aW9ucyAiYWRkaXRpb25h bF9mbGFncz0tSS4gLUkuLiAtSSRzcmNkaXIvJHN1YmRpciIKKyAKKyAgICMgRmluZCBqbmkuaCBh bmQgam5pX21kLmguCistICBsYXBwZW5kIG9wdGlvbnMgImFkZGl0aW9uYWxfZmxhZ3M9LUkkc3Jj ZGlyLy4uL2luY2x1ZGUgLUkkc3JjZGlyLy4uL2NsYXNzcGF0aC9pbmNsdWRlIgorKyAgbGFwcGVu ZCBvcHRpb25zICJhZGRpdGlvbmFsX2ZsYWdzPS1JJHNyY2Rpci8uLi9pbmNsdWRlIC1JJHNyY2Rp ci8uLi9jbGFzc3BhdGgvaW5jbHVkZSAtZmRvbGxhcnMtaW4taWRlbnRpZmllcnMiCisgCisgICAj IEFwcGVuZCBDKysgb3B0aW9ucworICAgbGFwcGVuZCBvcHRpb25zICJhZGRpdGlvbmFsX2ZsYWdz PSRvcHRpb25zX2N4eCIKCmRpZmYgLS1naXQgYS9nY2M0MS1wcjIzODQ4LnBhdGNoIGIvZ2NjNDEt cHIyMzg0OC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmVmNTc5 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDEtcHIyMzg0OC5wYXRjaApAQCAtMCwwICsxLDIyNSBA QAorMjAwNy0xMS0xNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBt aWRkbGUtZW5kLzIzODQ4CisJKiB0cmVlLXNzYS1jY3AuYyAob3B0aW1pemVfc3RhY2tfcmVzdG9y ZSk6IE5ldyBmdW5jdGlvbi4KKwkoZXhlY3V0ZV9mb2xkX2FsbF9idWlsdGlucyk6IENhbGwgb3B0 aW1pemVfc3RhY2tfcmVzdG9yZSBmb3IKKwlCVUlMVF9JTl9TVEFDS19SRVNUT1JFLgorCisJKiBn Y2MuZGcvdHJlZS1zc2EvcHIyMzg0OC0xLmM6IE5ldyB0ZXN0LgorCSogZ2NjLmRnL3RyZWUtc3Nh L3ByMjM4NDgtMi5jOiBOZXcgdGVzdC4KKwkqIGdjYy5kZy90cmVlLXNzYS9wcjIzODQ4LTMuYzog TmV3IHRlc3QuCisJKiBnY2MuZGcvdHJlZS1zc2EvcHIyMzg0OC00LmM6IE5ldyB0ZXN0LgorCist LS0gZ2NjL3RyZWUtc3NhLWNjcC5jCShyZXZpc2lvbiAxMzAyMDUpCisrKysgZ2NjL3RyZWUtc3Nh LWNjcC5jCShyZXZpc2lvbiAxMzAyMDYpCitAQCAtMjM5NCw2ICsyMzk0LDc1IEBAIGZvbGRfc3Rt dF9pbnBsYWNlICh0cmVlIHN0bXQpCisgICByZXR1cm4gY2hhbmdlZDsKKyB9CisgDAorKy8qIFRy eSB0byBvcHRpbWl6ZSBvdXQgX19idWlsdGluX3N0YWNrX3Jlc3RvcmUuICBPcHRpbWl6ZSBpdCBv dXQKKysgICBpZiB0aGVyZSBpcyBhbm90aGVyIF9fYnVpbHRpbl9zdGFja19yZXN0b3JlIGluIHRo ZSBzYW1lIGJhc2ljCisrICAgYmxvY2sgYW5kIG5vIGNhbGxzIG9yIEFTTV9FWFBScyBhcmUgaW4g YmV0d2Vlbiwgb3IgaWYgdGhpcyBibG9jaydzCisrICAgb25seSBvdXRnb2luZyBlZGdlIGlzIHRv IEVYSVRfQkxPQ0sgYW5kIHRoZXJlIGFyZSBubyBjYWxscyBvcgorKyAgIEFTTV9FWFBScyBhZnRl ciB0aGlzIF9fYnVpbHRpbl9zdGFja19yZXN0b3JlLiAgKi8KKysKKytzdGF0aWMgdHJlZQorK29w dGltaXplX3N0YWNrX3Jlc3RvcmUgKGJhc2ljX2Jsb2NrIGJiLCB0cmVlIGNhbGwsIGJsb2NrX3N0 bXRfaXRlcmF0b3IgaSkKKyt7CisrICB0cmVlIHN0YWNrX3NhdmUsIHN0bXQsIGNhbGxlZTsKKysK KysgIGlmIChUUkVFX0NPREUgKGNhbGwpICE9IENBTExfRVhQUgorKyAgICAgIHx8IFRSRUVfT1BF UkFORCAoY2FsbCwgMSkgPT0gTlVMTF9UUkVFCisrICAgICAgfHwgVFJFRV9DSEFJTiAoVFJFRV9P UEVSQU5EIChjYWxsLCAxKSkgIT0gTlVMTF9UUkVFCisrICAgICAgfHwgVFJFRV9DT0RFIChUUkVF X1ZBTFVFIChUUkVFX09QRVJBTkQgKGNhbGwsIDEpKSkgIT0gU1NBX05BTUUKKysgICAgICB8fCAh UE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoVFJFRV9WQUxVRSAoVFJFRV9PUEVSQU5EIChjYWxs LCAxKSkpKSkKKysgICAgcmV0dXJuIE5VTExfVFJFRTsKKysKKysgIGZvciAoYnNpX25leHQgKCZp KTsgIWJzaV9lbmRfcCAoaSk7IGJzaV9uZXh0ICgmaSkpCisrICAgIHsKKysgICAgICB0cmVlIGNh bGw7CisrCisrICAgICAgc3RtdCA9IGJzaV9zdG10IChpKTsKKysgICAgICBpZiAoVFJFRV9DT0RF IChzdG10KSA9PSBBU01fRVhQUikKKysJcmV0dXJuIE5VTExfVFJFRTsKKysgICAgICBjYWxsID0g Z2V0X2NhbGxfZXhwcl9pbiAoc3RtdCk7CisrICAgICAgaWYgKGNhbGwgPT0gTlVMTCkKKysJY29u dGludWU7CisrCisrICAgICAgY2FsbGVlID0gZ2V0X2NhbGxlZV9mbmRlY2wgKGNhbGwpOworKyAg ICAgIGlmICghY2FsbGVlIHx8IERFQ0xfQlVJTFRfSU5fQ0xBU1MgKGNhbGxlZSkgIT0gQlVJTFRf SU5fTk9STUFMKQorKwlyZXR1cm4gTlVMTF9UUkVFOworKworKyAgICAgIGlmIChERUNMX0ZVTkNU SU9OX0NPREUgKGNhbGxlZSkgPT0gQlVJTFRfSU5fU1RBQ0tfUkVTVE9SRSkKKysJYnJlYWs7Cisr ICAgIH0KKysKKysgIGlmIChic2lfZW5kX3AgKGkpCisrICAgICAgJiYgKCEgc2luZ2xlX3N1Y2Nf cCAoYmIpCisrCSAgfHwgc2luZ2xlX3N1Y2NfZWRnZSAoYmIpLT5kZXN0ICE9IEVYSVRfQkxPQ0tf UFRSKSkKKysgICAgcmV0dXJuIE5VTExfVFJFRTsKKysKKysgIHN0YWNrX3NhdmUgPSBTU0FfTkFN RV9ERUZfU1RNVCAoVFJFRV9WQUxVRSAoVFJFRV9PUEVSQU5EIChjYWxsLCAxKSkpOworKyAgaWYg KFRSRUVfQ09ERSAoc3RhY2tfc2F2ZSkgIT0gTU9ESUZZX0VYUFIKKysgICAgICB8fCBUUkVFX09Q RVJBTkQgKHN0YWNrX3NhdmUsIDApCisrCSAhPSBUUkVFX1ZBTFVFIChUUkVFX09QRVJBTkQgKGNh bGwsIDEpKQorKyAgICAgIHx8IFRSRUVfQ09ERSAoVFJFRV9PUEVSQU5EIChzdGFja19zYXZlLCAx KSkgIT0gQ0FMTF9FWFBSCisrICAgICAgfHwgdHJlZV9jb3VsZF90aHJvd19wIChzdGFja19zYXZl KQorKyAgICAgIHx8ICFoYXNfc2luZ2xlX3VzZSAoVFJFRV9WQUxVRSAoVFJFRV9PUEVSQU5EIChj YWxsLCAxKSkpKQorKyAgICByZXR1cm4gTlVMTF9UUkVFOworKworKyAgY2FsbGVlID0gZ2V0X2Nh bGxlZV9mbmRlY2wgKFRSRUVfT1BFUkFORCAoc3RhY2tfc2F2ZSwgMSkpOworKyAgaWYgKCFjYWxs ZWUKKysgICAgICB8fCBERUNMX0JVSUxUX0lOX0NMQVNTIChjYWxsZWUpICE9IEJVSUxUX0lOX05P Uk1BTAorKyAgICAgIHx8IERFQ0xfRlVOQ1RJT05fQ09ERSAoY2FsbGVlKSAhPSBCVUlMVF9JTl9T VEFDS19TQVZFCisrICAgICAgfHwgVFJFRV9PUEVSQU5EIChUUkVFX09QRVJBTkQgKHN0YWNrX3Nh dmUsIDEpLCAxKSAhPSBOVUxMX1RSRUUpCisrICAgIHJldHVybiBOVUxMX1RSRUU7CisrCisrICBz dG10ID0gc3RhY2tfc2F2ZTsKKysgIGlmICghc2V0X3JocyAoJnN0bXQsCisrCQlidWlsZF9pbnRf Y3N0IChUUkVFX1RZUEUgKFRSRUVfVkFMVUUgKFRSRUVfT1BFUkFORCAoY2FsbCwKKysJCQkJCQkJ CSAgICAxKSkpLCAwKSkpCisrICAgIHJldHVybiBOVUxMX1RSRUU7CisrICBnY2NfYXNzZXJ0IChz dG10ID09IHN0YWNrX3NhdmUpOworKyAgbWFya19uZXdfdmFyc190b19yZW5hbWUgKHN0bXQpOwor KworKyAgcmV0dXJuIGludGVnZXJfemVyb19ub2RlOworK30KKysMCisgLyogQ29udmVydCBFWFBS IGludG8gYSBHSU1QTEUgdmFsdWUgc3VpdGFibGUgZm9yIHN1YnN0aXR1dGlvbiBvbiB0aGUKKyAg ICBSSFMgb2YgYW4gYXNzaWdubWVudC4gIEluc2VydCB0aGUgbmVjZXNzYXJ5IHN0YXRlbWVudHMg YmVmb3JlCisgICAgaXRlcmF0b3IgKlNJX1AuICAqLworQEAgLTI0NjksNiArMjUzOCwxMiBAQCBl eGVjdXRlX2ZvbGRfYWxsX2J1aWx0aW5zICh2b2lkKQorIAkJcmVzdWx0ID0gaW50ZWdlcl96ZXJv X25vZGU7CisgCQlicmVhazsKKyAKKysJICAgICAgY2FzZSBCVUlMVF9JTl9TVEFDS19SRVNUT1JF OgorKwkJcmVzdWx0ID0gb3B0aW1pemVfc3RhY2tfcmVzdG9yZSAoYmIsICpzdG10cCwgaSk7Cisr CQlpZiAocmVzdWx0KQorKwkJICBicmVhazsKKysJCS8qIEZBTExUSFJVICovCisrCisgCSAgICAg IGRlZmF1bHQ6CisgCQlic2lfbmV4dCAoJmkpOworIAkJY29udGludWU7CistLS0gZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHIyMzg0OC0xLmMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHIyMzg0OC0xLmMJKHJldmlzaW9uIDEzMDIwNikKK0BA IC0wLDAgKzEsMzIgQEAKKysvKiBQUiBtaWRkbGUtZW5kLzIzODQ4ICovCisrLyogeyBkZy1kbyBj b21waWxlIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQi IH0gKi8KKysKKyt2b2lkIGJhcjEgKGNoYXIgKiwgaW50KTsKKyt2b2lkIGZvbzEgKGludCBzaXpl KQorK3sKKysgIGNoYXIgdGVtcFtzaXplXTsKKysgIHRlbXBbc2l6ZS0xXSA9ICdcMCc7CisrICBi YXIxICh0ZW1wLCBzaXplKTsKKyt9CisrCisrdm9pZCBiYXIyIChjaGFyICosIGNoYXIgKiwgY2hh ciAqLCBjaGFyICosIGludCk7Cisrdm9pZCBmb28yIChpbnQgc2l6ZSkKKyt7CisrICBjaGFyIHRl bXBbc2l6ZV07CisrICB0ZW1wW3NpemUtMV0gPSAnXDAnOworKyAgeworKyAgICBjaGFyIHRlbXAy W3NpemVdOworKyAgICB7CisrICAgICAgY2hhciB0ZW1wM1tzaXplXTsKKysgICAgICB7CisrCWNo YXIgdGVtcDRbc2l6ZV07CisrCWJhcjIgKHRlbXAsIHRlbXAyLCB0ZW1wMywgdGVtcDQsIHNpemUp OworKyAgICAgIH0KKysgICAgfQorKyAgfQorK30KKysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtbm90ICJfX2J1aWx0aW5fc3RhY2tfc2F2ZSIgIm9wdGltaXplZCJ9IH0gKi8KKysv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJfX2J1aWx0aW5fc3RhY2tfcmVzdG9y ZSIgIm9wdGltaXplZCJ9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAg Im9wdGltaXplZCIgfSB9ICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHIy Mzg0OC0yLmMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Ev cHIyMzg0OC0yLmMJKHJldmlzaW9uIDEzMDIwNikKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiBQUiBt aWRkbGUtZW5kLzIzODQ4ICovCisrLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysvKiB7IGRnLW9w dGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQiIH0gKi8KKysKKyt2b2lkIGJhciAoY2hh ciAqLCBjaGFyICosIGNoYXIgKiwgY2hhciAqLCBpbnQpOworK3ZvaWQgZm9vIChpbnQgc2l6ZSkK Kyt7CisrICBjaGFyIHRlbXBbc2l6ZV07CisrICB0ZW1wW3NpemUtMV0gPSAnXDAnOworKyAgewor KyAgICBjaGFyIHRlbXAyW3NpemVdOworKyAgICB7CisrICAgICAgY2hhciB0ZW1wM1tzaXplXTsK KysgICAgICB7CisrCWNoYXIgdGVtcDRbc2l6ZV07CisrCWJhciAodGVtcCwgdGVtcDIsIHRlbXAz LCB0ZW1wNCwgc2l6ZSk7CisrICAgICAgfQorKyAgICB9CisrICAgIGJhciAodGVtcCwgdGVtcDIs IChjaGFyICopIDAsIChjaGFyICopIDAsIHNpemUpOworKyAgfQorK30KKysKKysvKiB7IGRnLWZp bmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRpbl9zdGFja19zYXZlIiAxICJvcHRp bWl6ZWQifSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1 aWx0aW5fc3RhY2tfcmVzdG9yZSIgMSAib3B0aW1pemVkIn0gfSAqLworKy8qIHsgZGctZmluYWwg eyBjbGVhbnVwLXRyZWUtZHVtcCAib3B0aW1pemVkIiB9IH0gKi8KKy0tLSBnY2MvdGVzdHN1aXRl L2djYy5kZy90cmVlLXNzYS9wcjIzODQ4LTMuYwkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1 aXRlL2djYy5kZy90cmVlLXNzYS9wcjIzODQ4LTMuYwkocmV2aXNpb24gMTMwMjA2KQorQEAgLTAs MCArMSwyOCBAQAorKy8qIFBSIG1pZGRsZS1lbmQvMjM4NDggKi8KKysvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mZHVtcC10cmVlLW9wdGltaXplZCIgfSAq LworKworK3ZvaWQgYmFyIChpbnQsIGNoYXIgKiwgY2hhciAqLCBjaGFyICosIGNoYXIgKiwgaW50 KTsKKyt2b2lkIGZvbyAoaW50IHNpemUpCisreworKyAgaW50IGk7CisrICBmb3IgKGkgPSAwOyBp IDwgc2l6ZTsgaSsrKQorKyAgICB7CisrICAgICAgY2hhciB0ZW1wW3NpemVdOworKyAgICAgIHRl bXBbc2l6ZS0xXSA9ICdcMCc7CisrICAgICAgeworKwljaGFyIHRlbXAyW3NpemVdOworKwl7Cisr CSAgY2hhciB0ZW1wM1tzaXplXTsKKysJICB7CisrCSAgICBjaGFyIHRlbXA0W3NpemVdOworKwkg ICAgYmFyIChpLCB0ZW1wLCB0ZW1wMiwgdGVtcDMsIHRlbXA0LCBzaXplKTsKKysJICB9CisrCX0K KysgICAgICB9CisrICAgIH0KKyt9CisrCisrLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w LXRpbWVzICJfX2J1aWx0aW5fc3RhY2tfc2F2ZSIgMSAib3B0aW1pemVkIn0gfSAqLworKy8qIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiX19idWlsdGluX3N0YWNrX3Jlc3RvcmUi IDEgIm9wdGltaXplZCJ9IH0gKi8KKysvKiB7IGRnLWZpbmFsIHsgY2xlYW51cC10cmVlLWR1bXAg Im9wdGltaXplZCIgfSB9ICovCistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHIy Mzg0OC00LmMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Ev cHIyMzg0OC00LmMJKHJldmlzaW9uIDEzMDIwNikKK0BAIC0wLDAgKzEsMjUgQEAKKysvKiBQUiBt aWRkbGUtZW5kLzIzODQ4ICovCisrLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKysvKiB7IGRnLW9w dGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQiIH0gKi8KKysKKyt2b2lkIGJhciAoY2hh ciAqLCBjaGFyICosIGNoYXIgKiwgY2hhciAqLCBpbnQpOworK3ZvaWQgZm9vIChpbnQgc2l6ZSkK Kyt7CisrICBjaGFyIHRlbXBbc2l6ZV07CisrICB0ZW1wW3NpemUtMV0gPSAnXDAnOworKyAgewor KyAgICBjaGFyIHRlbXAyW3NpemVdOworKyAgICB7CisrICAgICAgY2hhciB0ZW1wM1tzaXplXTsK KysgICAgICB7CisrCWNoYXIgdGVtcDRbc2l6ZV07CisrCWJhciAodGVtcCwgdGVtcDIsIHRlbXAz LCB0ZW1wNCwgc2l6ZSk7CisrICAgICAgfQorKyAgICB9CisrICAgIF9fYXNtIF9fdm9sYXRpbGUg KCIiIDogOiAiciIgKCZ0ZW1wWzBdKSwgInIiICgmdGVtcDJbMF0pIDogIm1lbW9yeSIpOworKyAg fQorK30KKysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIl9fYnVpbHRp bl9zdGFja19zYXZlIiAxICJvcHRpbWl6ZWQifSB9ICovCisrLyogeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fc3RhY2tfcmVzdG9yZSIgMSAib3B0aW1pemVkIn0g fSAqLworKy8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAib3B0aW1pemVkIiB9IH0g Ki8KCmRpZmYgLS1naXQgYS9nY2M0MS1wcjI5MjI1LnBhdGNoIGIvZ2NjNDEtcHIyOTIyNS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTVjZDhjCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjNDEtcHIyOTIyNS5wYXRjaApAQCAtMCwwICsxLDUwIEBACisyMDA3LTExLTEz ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIGMrKy8yOTIyNQorCSog Y2FsbC5jIChidWlsZF9uZXdfb3ApOiBDYWxsIHJlc29sdmVfYXJncyBiZWZvcmUgY2FsbGluZwor CWJ1aWxkX292ZXJfY2FsbC4KKworCSogZysrLmRnL3RlbXBsYXRlL2NyYXNoNzIuQzogTmV3IHRl c3QuCisKKy0tLSBnY2MvY3AvY2FsbC5jCShyZXZpc2lvbiAxMzAxMjUpCisrKysgZ2NjL2NwL2Nh bGwuYwkocmV2aXNpb24gMTMwMTI2KQorQEAgLTM5MTgsNyArMzkxOCwxMCBAQCBidWlsZF9uZXdf b3AgKGVudW0gdHJlZV9jb2RlIGNvZGUsIGludCBmCisgCSAgaWYgKG92ZXJsb2FkZWRfcCkKKyAJ ICAgICpvdmVybG9hZGVkX3AgPSB0cnVlOworIAorLQkgIHJlc3VsdCA9IGJ1aWxkX292ZXJfY2Fs bCAoY2FuZCwgTE9PS1VQX05PUk1BTCk7CisrCSAgaWYgKHJlc29sdmVfYXJncyAoYXJnbGlzdCkg PT0gZXJyb3JfbWFya19ub2RlKQorKwkgICAgcmVzdWx0ID0gZXJyb3JfbWFya19ub2RlOworKwkg IGVsc2UKKysJICAgIHJlc3VsdCA9IGJ1aWxkX292ZXJfY2FsbCAoY2FuZCwgTE9PS1VQX05PUk1B TCk7CisgCX0KKyAgICAgICBlbHNlCisgCXsKKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1w bGF0ZS9jcmFzaDcyLkMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvdGVt cGxhdGUvY3Jhc2g3Mi5DCShyZXZpc2lvbiAxMzAxMjYpCitAQCAtMCwwICsxLDI1IEBACisrLy8g UFIgYysrLzI5MjI1CisrLy8geyBkZy1kbyBjb21waWxlIH0KKysKKyt0ZW1wbGF0ZSA8dHlwZW5h bWUgTCwgdHlwZW5hbWUgUj4gYm9vbCBvcGVyYXRvcjwgKEwgeCwgUiB5KTsKKytzdHJ1Y3QgVCB7 IGludCB0ICgpOyB9OworK2NsYXNzIFMge307CisrCisrc3RydWN0IFUKKyt7CisrICAgdHlwZWRl ZiBpbnQgKFQ6OiogTSkgKCk7CisrICAgTSBtOworKworKyAgIGJvb2wgb3BlcmF0b3IoKSAoUyAm eCkKKysgICB7CisrICAgICBUIGE7CisrICAgICByZXR1cm4gKGEuKm0pIDwgeDsJLy8geyBkZy1l cnJvciAiaW52YWxpZCB1c2Ugb2Ygbm9uLXN0YXRpYyBtZW1iZXIiIH0KKysgICB9CisrfTsKKysK Kyt2b2lkIGZvbyAoUyAmeCkKKyt7CisrICBVIG07CisrICBtLm0gPSAmVDo6dDsKKysgIG0gKHgp OworK30KCmRpZmYgLS1naXQgYS9nY2M0MS1wcjI5NzEyLnBhdGNoIGIvZ2NjNDEtcHIyOTcxMi5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTEzMGM4Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2NjNDEtcHIyOTcxMi5wYXRjaApAQCAtMCwwICsxLDU1IEBACisyMDA3LTAx LTE1ICBQYXVsIFRob21hcyAgPHBhdWx0QGdjYy5nbnUub3JnPgorCisJUFIgZm9ydHJhbi8yOTcx MgorCSogcmVzb2x2ZS5jIChyZXNvbHZlX2Z1bmN0aW9uKTogT25seSBhIHJlZmVyZW5jZSB0byB0 aGUgZmluYWwKKwlkaW1lbnNpb24gb2YgYW4gYXNzdW1lZCBzaXplIGFycmF5IGlzIGFuIGVycm9y IGluIGFuIGlucXVpcnkKKwlmdW5jdGlvbi4KKworCSogZ2ZvcnRyYW4uZGcvYm91bmRfMi5mOTA6 IFJlaW5zdGF0ZSBjb21tZW50ZWQgb3V0IGxpbmUuCisJKiBnZm9ydHJhbi5kZy9pbml0aWFsaXph dGlvbl8xLmY5MDogQ2hhbmdlIHdhcm5pbmcuCisKKy0tLSBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJ KHJldmlzaW9uIDEyMDc4OSkKKysrKyBnY2MvZm9ydHJhbi9yZXNvbHZlLmMJKHJldmlzaW9uIDEy MDc5MCkKK0BAIC0xNDk4LDEwICsxNDk4LDE2IEBAIHJlc29sdmVfZnVuY3Rpb24gKGdmY19leHBy ICogZXhwcikKKyAJICAgIAorICAgICAgIGZvciAoYXJnID0gZXhwci0+dmFsdWUuZnVuY3Rpb24u YWN0dWFsOyBhcmc7IGFyZyA9IGFyZy0+bmV4dCkKKyAJeworLQkgIGlmIChpbnF1aXJ5ICYmIGFy Zy0+bmV4dCAhPSBOVUxMICYmIGFyZy0+bmV4dC0+ZXhwcgorLQkJJiYgYXJnLT5uZXh0LT5leHBy LT5leHByX3R5cGUgIT0gRVhQUl9DT05TVEFOVCkKKy0JICAgIGJyZWFrOworLQkgIAorKwkgIGlm IChpbnF1aXJ5ICYmIGFyZy0+bmV4dCAhPSBOVUxMICYmIGFyZy0+bmV4dC0+ZXhwcikKKysJICAg IHsKKysJICAgICAgaWYgKGFyZy0+bmV4dC0+ZXhwci0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RB TlQpCisrCQlicmVhazsKKysKKysJICAgICAgaWYgKChpbnQpbXB6X2dldF9zaSAoYXJnLT5uZXh0 LT5leHByLT52YWx1ZS5pbnRlZ2VyKQorKwkJCTwgYXJnLT5leHByLT5yYW5rKQorKwkJYnJlYWs7 CisrCSAgICB9CisrCisgCSAgaWYgKGFyZy0+ZXhwciAhPSBOVUxMCisgCQkmJiBhcmctPmV4cHIt PnJhbmsgPiAwCisgCQkmJiByZXNvbHZlX2Fzc3VtZWRfc2l6ZV9hY3R1YWwgKGFyZy0+ZXhwcikp CistLS0gZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9pbml0aWFsaXphdGlvbl8xLmY5MAkocmV2 aXNpb24gMTIwNzg5KQorKysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvaW5pdGlhbGl6YXRp b25fMS5mOTAJKHJldmlzaW9uIDEyMDc5MCkKK0BAIC0yNyw3ICsyNyw3IEBAIGNvbnRhaW5zCisg ICAgIGludGVnZXIgOjogbDEgPSBsZW4gKGNoMSkgICAgICEgeyBkZy13YXJuaW5nICJhc3N1bWVk IGNoYXJhY3RlciBsZW5ndGggdmFyaWFibGUiIH0KKyAKKyAhIFRoZXNlIGFyZSB3YXJuaW5ncyBi ZWNhdXNlIHRoZXkgYXJlIGdmb3J0cmFuIGV4dGVuc2lvbnMuCistICAgIGludGVnZXIgOjogbTMg PSBzaXplICh4LCAxKSAgICEgeyBkZy13YXJuaW5nICJ1cHBlciBib3VuZCBpbiB0aGUgbGFzdCBk aW1lbnNpb24iIH0KKysgICAgaW50ZWdlciA6OiBtMyA9IHNpemUgKHgsIDEpICAgISB7IGRnLXdh cm5pbmcgIkV2YWx1YXRpb24gb2Ygbm9uc3RhbmRhcmQgaW5pdGlhbGl6YXRpb24iIH0KKyAgICAg aW50ZWdlciA6OiBtNCgyKSA9IHNoYXBlICh6KSAgISB7IGRnLXdhcm5pbmcgIkV2YWx1YXRpb24g b2Ygbm9uc3RhbmRhcmQgaW5pdGlhbGl6YXRpb24iIH0KKyAKKyAhIFRoaXMgZG9lcyBub3QgZGVw ZW5kIG9uIG5vbi1jb25zdGFudCBwcm9wZXJ0aWVzLgorLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvYm91bmRfMi5mOTAJKHJldmlzaW9uIDEyMDc4OSkKKysrKyBnY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2JvdW5kXzIuZjkwCShyZXZpc2lvbiAxMjA3OTApCitAQCAtMTk0LDcgKzE5NCw3 IEBAIGNvbnRhaW5zCisgICBzdWJyb3V0aW5lIGZvbyAoeCxuKQorICAgICBpbnRlZ2VyIDo6IHgo NyxuLDIsKiksIG4KKyAKKy0gICAgIWlmICh1Ym91bmQoeCwxKSAvPSA3IC5vci4gdWJvdW5kKHgs MikgLz0gNCAub3IuIHVib3VuZCh4LDMpIC89IDIpIGNhbGwgYWJvcnQKKysgICAgaWYgKHVib3Vu ZCh4LDEpIC89IDcgLm9yLiB1Ym91bmQoeCwyKSAvPSA0IC5vci4gdWJvdW5kKHgsMykgLz0gMikg Y2FsbCBhYm9ydAorICAgZW5kIHN1YnJvdXRpbmUgZm9vCisgCisgICBzdWJyb3V0aW5lIGphY2th bCAoYiwgYykKCmRpZmYgLS1naXQgYS9nY2M0MS1wcjMwMjkzLnBhdGNoIGIvZ2NjNDEtcHIzMDI5 My5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjg1NDlhCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjNDEtcHIzMDI5My5wYXRjaApAQCAtMCwwICsxLDE4MCBAQAorMjAw Ny0xMS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBjKysvMzAy OTMKKwlQUiBjKysvMzAyOTQKKwkqIGRlY2wuYyAoY3BfZmluaXNoX2RlY2wpOiBEaXNhbGxvdyB2 YXJpYWJsZSBvciBmaWVsZAorCWRlZmluaXRpb25zIGlmIGV4dGVybiAiSmF2YSIgYWdncmVnYXRl cy4KKwkoZ3Jva3Bhcm1zKTogRGlzYWxsb3cgcGFyYW1ldGVycyB3aXRoIGV4dGVybiAiSmF2YSIK KwlhZ2dyZWdhdGVzLgorCShjaGVja19mdW5jdGlvbl90eXBlKTogRGlzYWxsb3cgZnVuY3Rpb24g cmV0dXJuIHZhbHVlcworCXdpdGggZXh0ZXJuICJKYXZhIiBhZ2dyZWdhdGVzLgorCSogaW5pdC5j IChidWlsZF9uZXdfMSk6IERpc2FsbG93IHBsYWNlbWVudCBuZXcgd2l0aAorCWV4dGVybiAiSmF2 YSIgYWdncmVnYXRlcy4KKworCSogZysrLmRnL2V4dC9qYXZhLTIuQzogTmV3IHRlc3QuCisKKy0t LSBnY2MvY3AvZGVjbC5jLmpqCTIwMDctMTEtMTkgMTc6NDY6NDEuMDAwMDAwMDAwICswMTAwCisr KysgZ2NjL2NwL2RlY2wuYwkyMDA3LTExLTIyIDEzOjM0OjUyLjAwMDAwMDAwMCArMDEwMAorQEAg LTUzNDksNiArNTM0OSwyMCBAQCBjcF9maW5pc2hfZGVjbCAodHJlZSBkZWNsLCB0cmVlIGluaXQs IGJvCisgCSAgICAgaXMgKm5vdCogZGVmaW5lZC4gICovCisgCSAgJiYgKCFERUNMX0VYVEVSTkFM IChkZWNsKSB8fCBpbml0KSkKKyAJeworKwkgIGlmIChUWVBFX0ZPUl9KQVZBICh0eXBlKSAmJiBJ U19BR0dSX1RZUEUgKHR5cGUpKQorKwkgICAgeworKwkgICAgICB0cmVlIGpjbGFzcworKwkJPSBJ REVOVElGSUVSX0dMT0JBTF9WQUxVRSAoZ2V0X2lkZW50aWZpZXIgKCJqY2xhc3MiKSk7CisrCSAg ICAgIC8qIEFsbG93IGxpYmphdmEvcHJpbXMuY2MgZGVmaW5lIHByaW1pdGl2ZSBjbGFzc2VzLiAg Ki8KKysJICAgICAgaWYgKGluaXQgIT0gTlVMTF9UUkVFCisrCQkgIHx8IGpjbGFzcyA9PSBOVUxM X1RSRUUKKysJCSAgfHwgVFJFRV9DT0RFIChqY2xhc3MpICE9IFRZUEVfREVDTAorKwkJICB8fCAh UE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoamNsYXNzKSkKKysJCSAgfHwgIXNhbWVfdHlwZV9p Z25vcmluZ190b3BfbGV2ZWxfcXVhbGlmaWVyc19wCisrCQkJCQkodHlwZSwgVFJFRV9UWVBFIChU UkVFX1RZUEUgKGpjbGFzcykpKSkKKysJCWVycm9yICgiSmF2YSBvYmplY3QgJXFEIG5vdCBhbGxv Y2F0ZWQgd2l0aCAlPG5ldyU+IiwgZGVjbCk7CisrCSAgICAgIGluaXQgPSBOVUxMX1RSRUU7Cisr CSAgICB9CisgCSAgaWYgKGluaXQpCisgCSAgICB7CisgCSAgICAgIERFQ0xfTk9OVFJJVklBTExZ X0lOSVRJQUxJWkVEX1AgKGRlY2wpID0gMTsKK0BAIC01NDE5LDYgKzU0MzMsOSBAQCBjcF9maW5p c2hfZGVjbCAodHJlZSBkZWNsLCB0cmVlIGluaXQsIGJvCisgICAgICAgZWxzZSBpZiAoVFJFRV9D T0RFICh0eXBlKSA9PSBBUlJBWV9UWVBFKQorIAlsYXlvdXRfdHlwZSAodHlwZSk7CisgICAgIH0K KysgIGVsc2UgaWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gRklFTERfREVDTAorKwkgICAmJiBUWVBF X0ZPUl9KQVZBICh0eXBlKSAmJiBJU19BR0dSX1RZUEUgKHR5cGUpKQorKyAgICBlcnJvciAoIm5v bi1zdGF0aWMgZGF0YSBtZW1iZXIgJXFEIGhhcyBKYXZhIGNsYXNzIHR5cGUiLCBkZWNsKTsKKyAK KyAgIC8qIEFkZCB0aGlzIGRlY2xhcmF0aW9uIHRvIHRoZSBzdGF0ZW1lbnQtdHJlZS4gIFRoaXMg bmVlZHMgdG8gaGFwcGVuCisgICAgICBhZnRlciB0aGUgY2FsbCB0byBjaGVja19pbml0aWFsaXpl ciBzbyB0aGF0IHRoZSBERUNMX0VYUFIgZm9yIGEKK0BAIC04OTkzLDYgKzkwMTAsMTYgQEAgZ3Jv a3Bhcm1zIChjcF9wYXJhbWV0ZXJfZGVjbGFyYXRvciAqZmlycworIAkgIFRSRUVfVFlQRSAoZGVj bCkgPSBlcnJvcl9tYXJrX25vZGU7CisgCX0KKyAKKysgICAgICBpZiAodHlwZSAhPSBlcnJvcl9t YXJrX25vZGUKKysJICAmJiBUWVBFX0ZPUl9KQVZBICh0eXBlKQorKwkgICYmIElTX0FHR1JfVFlQ RSAodHlwZSkpCisrCXsKKysJICBlcnJvciAoInBhcmFtZXRlciAlcUQgaGFzIEphdmEgY2xhc3Mg dHlwZSIsIGRlY2wpOworKwkgIHR5cGUgPSBlcnJvcl9tYXJrX25vZGU7CisrCSAgVFJFRV9UWVBF IChkZWNsKSA9IGVycm9yX21hcmtfbm9kZTsKKysJICBpbml0ID0gTlVMTF9UUkVFOworKwl9Cisr CisgICAgICAgaWYgKHR5cGUgIT0gZXJyb3JfbWFya19ub2RlKQorIAl7CisgCSAgLyogVG9wLWxl dmVsIHF1YWxpZmllcnMgb24gdGhlIHBhcmFtZXRlcnMgYXJlCitAQCAtMTA0NjUsMTEgKzEwNDky LDE1IEBAIGNoZWNrX2Z1bmN0aW9uX3R5cGUgKHRyZWUgZGVjbCwgdHJlZSBjdXIKKyAKKyAgIGlm IChkZXBlbmRlbnRfdHlwZV9wIChyZXR1cm5fdHlwZSkpCisgICAgIHJldHVybjsKKy0gIGlmICgh Q09NUExFVEVfT1JfVk9JRF9UWVBFX1AgKHJldHVybl90eXBlKSkKKysgIGlmICghQ09NUExFVEVf T1JfVk9JRF9UWVBFX1AgKHJldHVybl90eXBlKQorKyAgICAgIHx8IChUWVBFX0ZPUl9KQVZBIChy ZXR1cm5fdHlwZSkgJiYgSVNfQUdHUl9UWVBFIChyZXR1cm5fdHlwZSkpKQorICAgICB7CisgICAg ICAgdHJlZSBhcmdzID0gVFlQRV9BUkdfVFlQRVMgKGZudHlwZSk7CistCSAgCistICAgICAgZXJy b3IgKCJyZXR1cm4gdHlwZSAlcSNUIGlzIGluY29tcGxldGUiLCByZXR1cm5fdHlwZSk7CisrCisr ICAgICAgaWYgKCFDT01QTEVURV9PUl9WT0lEX1RZUEVfUCAocmV0dXJuX3R5cGUpKQorKwllcnJv ciAoInJldHVybiB0eXBlICVxI1QgaXMgaW5jb21wbGV0ZSIsIHJldHVybl90eXBlKTsKKysgICAg ICBlbHNlCisrCWVycm9yICgicmV0dXJuIHR5cGUgaGFzIEphdmEgY2xhc3MgdHlwZSAlcSNUIiwg cmV0dXJuX3R5cGUpOworIAorICAgICAgIC8qIE1ha2UgaXQgcmV0dXJuIHZvaWQgaW5zdGVhZC4g ICovCisgICAgICAgaWYgKFRSRUVfQ09ERSAoZm50eXBlKSA9PSBNRVRIT0RfVFlQRSkKKy0tLSBn Y2MvY3AvaW5pdC5jLmpqCTIwMDctMDktMjAgMjE6MjY6NDguMDAwMDAwMDAwICswMjAwCisrKysg Z2NjL2NwL2luaXQuYwkyMDA3LTExLTIyIDEwOjQ5OjQ3LjAwMDAwMDAwMCArMDEwMAorQEAgLTE3 ODYsNiArMTc4NiwxMSBAQCBidWlsZF9uZXdfMSAodHJlZSBwbGFjZW1lbnQsIHRyZWUgdHlwZSwg CisgCQkgICAgKGFsbG9jX2ZuLAorIAkJICAgICBidWlsZF90cmVlX2xpc3QgKE5VTExfVFJFRSwg Y2xhc3NfYWRkcikpKTsKKyAgICAgfQorKyAgZWxzZSBpZiAoVFlQRV9GT1JfSkFWQSAoZWx0X3R5 cGUpKQorKyAgICB7CisrICAgICAgZXJyb3IgKCJKYXZhIGNsYXNzICVxI1Qgb2JqZWN0IGFsbG9j YXRlZCB1c2luZyBwbGFjZW1lbnQgbmV3IiwgZWx0X3R5cGUpOworKyAgICAgIHJldHVybiBlcnJv cl9tYXJrX25vZGU7CisrICAgIH0KKyAgIGVsc2UKKyAgICAgeworICAgICAgIHRyZWUgZm5uYW1l OworLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9qYXZhLTIuQy5qagkyMDA3LTExLTIyIDEw OjU1OjEwLjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9qYXZh LTIuQwkyMDA3LTExLTIyIDEwOjU0OjU5LjAwMDAwMDAwMCArMDEwMAorQEAgLTAsMCArMSw3OSBA QAorKy8vIFBSIGMrKy8zMDI5MworKy8vIFBSIGMrKy8zMDI5NAorKy8vIHsgZGctZG8gY29tcGls ZSB9CisrLy8geyBkZy1vcHRpb25zICIiIH0KKysKKytleHRlcm4gIkphdmEiIHsKKyt0eXBlZGVm IF9famF2YV9ieXRlIGpieXRlOworK25hbWVzcGFjZSBqYXZhIHsKKytuYW1lc3BhY2UgbGFuZyB7 CisrICBjbGFzcyBPYmplY3Qge307CisrICBjbGFzcyBDbGFzcyB7fTsKKyt9CisrfQorK3R5cGVk ZWYgc3RydWN0IGphdmE6Omxhbmc6Ok9iamVjdCogam9iamVjdDsKKyt0eXBlZGVmIGphdmE6Omxh bmc6OkNsYXNzICpqY2xhc3M7CisrfQorK2V4dGVybiAiQyIgam9iamVjdCBfSnZfQWxsb2NPYmpl Y3QgKGpjbGFzcyk7CisrCisrZXh0ZXJuICJKYXZhIiB7CisrICBzdHJ1Y3QgQSB7IHN0YXRpYyBq YXZhOjpsYW5nOjpDbGFzcyBjbGFzcyQ7IH07CisrfQorKworK3N0cnVjdCBCIHsKKysgIEEgYTsJ CS8vIHsgZGctZXJyb3IgImhhcyBKYXZhIGNsYXNzIHR5cGUiIH0KKyt9OworKworK3ZvaWQqIG9w ZXJhdG9yIG5ldyAoX19TSVpFX1RZUEVfXywgdm9pZCopIHRocm93KCk7CisrY2hhciBidWZbMTAy NF07CisrCisrQSBhOwkJLy8geyBkZy1lcnJvciAibm90IGFsbG9jYXRlZCB3aXRoIiB9CisrQSBi ID0gQSAoKTsJLy8geyBkZy1lcnJvciAibm90IGFsbG9jYXRlZCB3aXRoIiB9CisrQSAqYyA9IG5l dyAoKHZvaWQgKikgYnVmKSBBICgpOwkvLyB7IGRnLWVycm9yICJ1c2luZyBwbGFjZW1lbnQgbmV3 IiB9CisrQSAqZCA9IG5ldyBBICgpOworK2pieXRlIGUgPSA2OworKworK2NvbnN0IEEgZm4xICgp CS8vIHsgZGctZXJyb3IgInJldHVybiB0eXBlIGhhcyBKYXZhIGNsYXNzIHR5cGUiIH0KKyt7Cisr ICBBIGE7CQkvLyB7IGRnLWVycm9yICJub3QgYWxsb2NhdGVkIHdpdGgiIH0KKysgIHJldHVybiBh OworK30KKysKKytBIGZuMiAoKQkvLyB7IGRnLWVycm9yICJyZXR1cm4gdHlwZSBoYXMgSmF2YSBj bGFzcyB0eXBlIiB9CisreworKyAgQSBhOwkJLy8geyBkZy1lcnJvciAibm90IGFsbG9jYXRlZCB3 aXRoIiB9CisrICByZXR1cm4gYTsKKyt9CisrCisrQSAqZm4zICgpCisreworKyAgcmV0dXJuIG5l dyBBICgpOworK30KKysKKytBICZmbjQgKCkKKyt7CisrICByZXR1cm4gKmM7CisrfQorKworK2pi eXRlIGZuNSAoKQorK3sKKysgIHJldHVybiA3OworK30KKysKKyt2b2lkIGZuNiAoQSB4KQkvLyB7 IGRnLWVycm9yICJoYXMgSmF2YSBjbGFzcyB0eXBlIiB9CisreworK30KKysKKyt2b2lkIGZuNyAo Y29uc3QgQSB4KQkvLyB7IGRnLWVycm9yICJoYXMgSmF2YSBjbGFzcyB0eXBlIiB9CisreworK30K KysKKyt2b2lkIGZuOCAoQSAqeCkKKyt7CisrICAodm9pZCkgeDsKKyt9CisrCisrdm9pZCBmbjkg KGpieXRlIHgpCisreworKyAgKHZvaWQpIHg7CisrfQoKZGlmZiAtLWdpdCBhL2djYzQxLXByMzA5 ODgucGF0Y2ggYi9nY2M0MS1wcjMwOTg4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmZjMjY2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1wcjMwOTg4LnBhdGNo CkBAIC0wLDAgKzEsMTAzIEBACisyMDA3LTExLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVk aGF0LmNvbT4KKworCVBSIGMrKy8zMDk4OAorCSogc2VtYW50aWNzLmMgKGZpbmlzaF9jYWxsX2V4 cHIpOiBTZXQKKwljdXJyZW50X2Z1bmN0aW9uX3JldHVybnNfYWJub3JtYWxseSBpZiBmbiBpcyBu b3JldHVybiBGVU5DVElPTl9ERUNMCisJb3IgT1ZFUkxPQUQgd2l0aCBhbGwgbm9yZXR1cm4gZnVu Y3Rpb25zLgorCisJKiBnKysuZGcvd2Fybi9ub3JldHVybi00LkM6IE5ldyB0ZXN0LgorCSogZysr LmRnL3dhcm4vbm9yZXR1cm4tNS5DOiBOZXcgdGVzdC4KKwkqIGcrKy5kZy93YXJuL25vcmV0dXJu LTYuQzogTmV3IHRlc3QuCisJKiBnKysuZGcvd2Fybi9ub3JldHVybi03LkM6IE5ldyB0ZXN0Lgor CistLS0gZ2NjL2NwL3NlbWFudGljcy5jCShyZXZpc2lvbiAxMzAyNzkpCisrKysgZ2NjL2NwL3Nl bWFudGljcy5jCShyZXZpc2lvbiAxMzAyODApCitAQCAtMTg0Niw2ICsxODQ2LDIwIEBAIGZpbmlz aF9jYWxsX2V4cHIgKHRyZWUgZm4sIHRyZWUgYXJncywgYm8KKyAJeworIAkgIHJlc3VsdCA9IGJ1 aWxkX250X2NhbGxfbGlzdCAoZm4sIGFyZ3MpOworIAkgIEtPRU5JR19MT09LVVBfUCAocmVzdWx0 KSA9IGtvZW5pZ19wOworKwkgIGlmIChjZnVuKQorKwkgICAgeworKwkgICAgICBkbworKwkJewor KwkJICB0cmVlIGZuZGVjbCA9IE9WTF9DVVJSRU5UIChmbik7CisrCQkgIGlmIChUUkVFX0NPREUg KGZuZGVjbCkgIT0gRlVOQ1RJT05fREVDTAorKwkJICAgICAgfHwgIVRSRUVfVEhJU19WT0xBVElM RSAoZm5kZWNsKSkKKysJCSAgICBicmVhazsKKysJCSAgZm4gPSBPVkxfTkVYVCAoZm4pOworKwkJ fQorKwkgICAgICB3aGlsZSAoZm4pOworKwkgICAgICBpZiAoIWZuKQorKwkJY3VycmVudF9mdW5j dGlvbl9yZXR1cm5zX2Fibm9ybWFsbHkgPSAxOworKwkgICAgfQorIAkgIHJldHVybiByZXN1bHQ7 CisgCX0KKyAgICAgICBpZiAoIUJBU0VMSU5LX1AgKGZuKQorLS0tIGdjYy90ZXN0c3VpdGUvZysr LmRnL3dhcm4vbm9yZXR1cm4tNC5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZysr LmRnL3dhcm4vbm9yZXR1cm4tNC5DCShyZXZpc2lvbiAxMzAyODApCitAQCAtMCwwICsxLDEzIEBA CisrLy8gUFIgYysrLzMwOTg4CisrLy8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7IGRnLW9wdGlv bnMgIi1PMiAtV2FsbCIgfQorKworK3ZvaWQgZiAoY29uc3QgY2hhciAqKSBfX2F0dHJpYnV0ZV9f ICgobm9yZXR1cm4pKTsKKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IEEKKyt7Cisr ICBpbnQgZyAoKQorKyAgeworKyAgICBmIChfX0ZVTkNUSU9OX18pOworKyAgfQorK307CistLS0g Z2NjL3Rlc3RzdWl0ZS9nKysuZGcvd2Fybi9ub3JldHVybi01LkMJKHJldmlzaW9uIDApCisrKysg Z2NjL3Rlc3RzdWl0ZS9nKysuZGcvd2Fybi9ub3JldHVybi01LkMJKHJldmlzaW9uIDEzMDI4MCkK K0BAIC0wLDAgKzEsMTUgQEAKKysvLyBQUiBjKysvMzA5ODgKKysvLyB7IGRnLWRvIGNvbXBpbGUg fQorKy8vIHsgZGctb3B0aW9ucyAiLU8yIC1XYWxsIiB9CisrCisrdm9pZCBmIChjb25zdCBjaGFy ICopIF9fYXR0cmlidXRlX18gKChub3JldHVybikpOworK3ZvaWQgZiAoaW50KSBfX2F0dHJpYnV0 ZV9fICgobm9yZXR1cm4pKTsKKyt2b2lkIGYgKGRvdWJsZSkgX19hdHRyaWJ1dGVfXyAoKG5vcmV0 dXJuKSk7CisrCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBBCisreworKyAgaW50IGcg KCkKKysgIHsKKysgICAgZiAoKFQpIDApOworKyAgfQorK307CistLS0gZ2NjL3Rlc3RzdWl0ZS9n KysuZGcvd2Fybi9ub3JldHVybi02LkMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9n KysuZGcvd2Fybi9ub3JldHVybi02LkMJKHJldmlzaW9uIDEzMDI4MCkKK0BAIC0wLDAgKzEsMTMg QEAKKysvLyBQUiBjKysvMzA5ODgKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKy8vIHsgZGctb3B0 aW9ucyAiLU8yIC1XYWxsIiB9CisrCisrdm9pZCBmIChjb25zdCBjaGFyICopOworKworK3RlbXBs YXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgQQorK3sKKysgIGludCBnICgpCisrICB7CisrICAgIGYg KF9fRlVOQ1RJT05fXyk7CisrICB9CS8vIHsgZGctd2FybmluZyAibm8gcmV0dXJuIHN0YXRlbWVu dCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQiIH0KKyt9OworLS0tIGdjYy90ZXN0c3Vp dGUvZysrLmRnL3dhcm4vbm9yZXR1cm4tNy5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3Vp dGUvZysrLmRnL3dhcm4vbm9yZXR1cm4tNy5DCShyZXZpc2lvbiAxMzAyODApCitAQCAtMCwwICsx LDE1IEBACisrLy8gUFIgYysrLzMwOTg4CisrLy8geyBkZy1kbyBjb21waWxlIH0KKysvLyB7IGRn LW9wdGlvbnMgIi1PMiAtV2FsbCIgfQorKworK3ZvaWQgZiAoY29uc3QgY2hhciAqKSBfX2F0dHJp YnV0ZV9fICgobm9yZXR1cm4pKTsKKyt2b2lkIGYgKGludCk7Cisrdm9pZCBmIChkb3VibGUpIF9f YXR0cmlidXRlX18gKChub3JldHVybikpOworKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1 Y3QgQQorK3sKKysgIGludCBnICgpCisrICB7CisrICAgIGYgKChUKSAwKTsKKysgIH0JLy8geyBk Zy13YXJuaW5nICJubyByZXR1cm4gc3RhdGVtZW50IGluIGZ1bmN0aW9uIHJldHVybmluZyBub24t dm9pZCIgfQorK307CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcHIzMjI0MS5wYXRjaCBiL2djYzQxLXBy MzIyNDEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNkZmUzYwot LS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXByMzIyNDEucGF0Y2gKQEAgLTAsMCArMSw5MSBAQAor MjAwNy0xMS0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBjKysv MzIyNDEKKwkqIHB0LmMgKHRzdWJzdF9jb3B5X2FuZF9idWlsZCkgPGNhc2UgQ09NUE9ORU5UX1JF Rj46IElmIG9iamVjdF90eXBlCisJaXMgbm90IHNjYWxhciB0eXBlLCBsZXQgZmluaXNoX2NsYXNz X21lbWJlcl9hY2Nlc3NfZXhwciBoYW5kbGUKKwlkaWFnbm9zdGljcy4gIFBhc3MgQklUX05PVF9F WFBSIGFyZ3VtZW50IHRvCisJZmluaXNoX3BzZXVkb19kZXN0cnVjdG9yX2V4cHIuICBIYW5kbGUg U0NPUEVfUkVGIHByb3Blcmx5LgorCisJKiBnKysuZGcvdGVtcGxhdGUvcHNldWRvZHRvcjMuQzog TmV3IHRlc3QuCisKKy0tLSBnY2MvY3AvcHQuYwkocmV2aXNpb24gMTMwMDY1KQorKysrIGdjYy9j cC9wdC5jCShyZXZpc2lvbiAxMzAwNjYpCitAQCAtMTEwMDQsMTUgKzExMDA0LDIzIEBAIHRzdWJz dF9jb3B5X2FuZF9idWlsZCAodHJlZSB0LAorIAorIAlpZiAob2JqZWN0X3R5cGUgJiYgIUNMQVNT X1RZUEVfUCAob2JqZWN0X3R5cGUpKQorIAkgIHsKKy0JICAgIGlmIChUUkVFX0NPREUgKG1lbWJl cikgPT0gQklUX05PVF9FWFBSKQorLQkgICAgICByZXR1cm4gZmluaXNoX3BzZXVkb19kZXN0cnVj dG9yX2V4cHIgKG9iamVjdCwKKy0JCQkJCQkgICAgTlVMTF9UUkVFLAorLQkJCQkJCSAgICBvYmpl Y3RfdHlwZSk7CistCSAgICBlbHNlIGlmIChUUkVFX0NPREUgKG1lbWJlcikgPT0gU0NPUEVfUkVG CistCQkgICAgICYmIChUUkVFX0NPREUgKFRSRUVfT1BFUkFORCAobWVtYmVyLCAxKSkgPT0gQklU X05PVF9FWFBSKSkKKy0JICAgICAgcmV0dXJuIGZpbmlzaF9wc2V1ZG9fZGVzdHJ1Y3Rvcl9leHBy IChvYmplY3QsCistCQkJCQkJICAgIG9iamVjdCwKKy0JCQkJCQkgICAgb2JqZWN0X3R5cGUpOwor KwkgICAgaWYgKFNDQUxBUl9UWVBFX1AgKG9iamVjdF90eXBlKSkKKysJICAgICAgeworKwkJdHJl ZSBzID0gTlVMTF9UUkVFOworKwkJdHJlZSBkdG9yID0gbWVtYmVyOworKworKwkJaWYgKFRSRUVf Q09ERSAoZHRvcikgPT0gU0NPUEVfUkVGKQorKwkJICB7CisrCQkgICAgcyA9IFRSRUVfT1BFUkFO RCAoZHRvciwgMCk7CisrCQkgICAgZHRvciA9IFRSRUVfT1BFUkFORCAoZHRvciwgMSk7CisrCQkg IH0KKysJCWlmIChUUkVFX0NPREUgKGR0b3IpID09IEJJVF9OT1RfRVhQUikKKysJCSAgeworKwkJ ICAgIGR0b3IgPSBUUkVFX09QRVJBTkQgKGR0b3IsIDApOworKwkJICAgIGlmIChUWVBFX1AgKGR0 b3IpKQorKwkJICAgICAgcmV0dXJuIGZpbmlzaF9wc2V1ZG9fZGVzdHJ1Y3Rvcl9leHByIChvYmpl Y3QsIHMsIGR0b3IpOworKwkJICB9CisrCSAgICAgIH0KKyAJICB9CisgCWVsc2UgaWYgKFRSRUVf Q09ERSAobWVtYmVyKSA9PSBTQ09QRV9SRUYKKyAJCSAmJiBUUkVFX0NPREUgKFRSRUVfT1BFUkFO RCAobWVtYmVyLCAxKSkgPT0gVEVNUExBVEVfSURfRVhQUikKKy0tLSBnY2MvdGVzdHN1aXRlL2cr Ky5kZy90ZW1wbGF0ZS9wc2V1ZG9kdG9yMy5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3Vp dGUvZysrLmRnL3RlbXBsYXRlL3BzZXVkb2R0b3IzLkMJKHJldmlzaW9uIDEzMDA2NikKK0BAIC0w LDAgKzEsNDMgQEAKKysvLyBQUiBjKysvMzIyNDEKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKwor K3N0cnVjdCBBCisreworKyAgdHlwZWRlZiBpbnQgVDsKKysgIFQgJmZvbyAoKTsKKysgIEEgKCkg eyBmb28uflQgKCk7IH0JLy8geyBkZy1lcnJvciAiZG9lcyBub3QgaGF2ZSBjbGFzcyB0eXBlfGV4 cGVjdGVkIiB9CisrfTsKKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IEIKKyt7Cisr ICBUICZmb28gKCk7CisrICBCICgpIHsgZm9vLn5UICgpOyB9CS8vIHsgZGctZXJyb3IgImludmFs aWQgdXNlIG9mIG1lbWJlciIgfQorK307CisrCisrQjxpbnQ+IGI7CisrCisrdGVtcGxhdGUgPHR5 cGVuYW1lIFQsIHR5cGVuYW1lIFM+IHN0cnVjdCBDCisreworKyAgVCB0OworKyAgQyAoKSB7IHQu flMgKCk7IH0JLy8geyBkZy1lcnJvciAiaXMgbm90IG9mIHR5cGUiIH0KKyt9OworKworK0M8aW50 LCBsb25nIGludD4gYzsKKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IEQKKyt7Cisr ICBUIHQ7CisrICB0eXBlZGVmIGxvbmcgaW50IFU7CisrICBEICgpIHsgdC5+VSAoKTsgfQkvLyB7 IGRnLWVycm9yICJpcyBub3Qgb2YgdHlwZSIgfQorK307CisrCisrRDxpbnQ+IGQ7CisrCisrdGVt cGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBFCisreworKyAgVCAmZm9vICgpOworKyAgdHlwZWRl ZiBsb25nIGludCBVOworKyAgRSAoKSB7IGZvby5+VSAoKTsgfQkvLyB7IGRnLWVycm9yICJpcyBu b3Qgb2YgdHlwZSIgfQorK307CisrCisrRTxpbnQ+IGU7CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcHIz MjM4NC5wYXRjaCBiL2djYzQxLXByMzIzODQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uOTgzMDY4ZgotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXByMzIzODQucGF0 Y2gKQEAgLTAsMCArMSwxMDggQEAKKzIwMDctMTEtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkBy ZWRoYXQuY29tPgorCisJUFIgYysrLzMyMzg0CisJKiBwYXJzZXIuYyAoY3BfcGFyc2VyX3Bvc3Rm aXhfZG90X2RlcmVmX2V4cHJlc3Npb24pOiBJZgorCVBPU1RGSVhfRVhQUkVTU0lPTiBpcyB0eXBl IGRlcGVuZGVudCwgdHJ5IHRvIHBhcnNlIGl0IGFzIHBzZXVkbyBkdG9yCisJZmlyc3QgYW5kIGlm IHRoYXQgc3VjY2VlZHMgYW5kIHR5cGUgaXMgU0NBTEFSX1RZUEVfUCwgY3JlYXRlCisJUFNFVURP X0RUT1JfRVhQUi4KKworCSogZysrLmRnL3RlbXBsYXRlL3BzZXVkb2R0b3IxLkM6IE5ldyB0ZXN0 LgorCSogZysrLmRnL3RlbXBsYXRlL3BzZXVkb2R0b3IyLkM6IE5ldyB0ZXN0LgorCistLS0gZ2Nj L2NwL3BhcnNlci5jCShyZXZpc2lvbiAxMjk4MzUpCisrKysgZ2NjL2NwL3BhcnNlci5jCShyZXZp c2lvbiAxMjk4MzYpCitAQCAtNDg1MCw4ICs0ODUwLDEwIEBAIGNwX3BhcnNlcl9wb3N0Zml4X2Rv dF9kZXJlZl9leHByZXNzaW9uICgKKyAgIHBzZXVkb19kZXN0cnVjdG9yX3AgPSBmYWxzZTsKKyAK KyAgIC8qIElmIHRoZSBTQ09QRSBpcyBhIHNjYWxhciB0eXBlLCB0aGVuLCBpZiB0aGlzIGlzIGEg dmFsaWQgcHJvZ3JhbSwKKy0gICAgIHdlIG11c3QgYmUgbG9va2luZyBhdCBhIHBzZXVkby1kZXN0 cnVjdG9yLW5hbWUuICAqLworLSAgaWYgKHNjb3BlICYmIFNDQUxBUl9UWVBFX1AgKHNjb3BlKSkK KysgICAgIHdlIG11c3QgYmUgbG9va2luZyBhdCBhIHBzZXVkby1kZXN0cnVjdG9yLW5hbWUuICBJ ZiBQT1NURklYX0VYUFJFU1NJT04KKysgICAgIGlzIHR5cGUgZGVwZW5kZW50LCBpdCBjYW4gYmUg cHNldWRvLWRlc3RydWN0b3ItbmFtZSBvciBzb21ldGhpbmcgZWxzZS4KKysgICAgIFRyeSB0byBw YXJzZSBpdCBhcyBwc2V1ZG8tZGVzdHJ1Y3Rvci1uYW1lIGZpcnN0LiAgKi8KKysgIGlmICgoc2Nv cGUgJiYgU0NBTEFSX1RZUEVfUCAoc2NvcGUpKSB8fCBkZXBlbmRlbnRfcCkKKyAgICAgeworICAg ICAgIHRyZWUgczsKKyAgICAgICB0cmVlIHR5cGU7CitAQCAtNDg2MCw3ICs0ODYyLDEyIEBAIGNw X3BhcnNlcl9wb3N0Zml4X2RvdF9kZXJlZl9leHByZXNzaW9uICgKKyAgICAgICAvKiBQYXJzZSB0 aGUgcHNldWRvLWRlc3RydWN0b3ItbmFtZS4gICovCisgICAgICAgcyA9IE5VTExfVFJFRTsKKyAg ICAgICBjcF9wYXJzZXJfcHNldWRvX2Rlc3RydWN0b3JfbmFtZSAocGFyc2VyLCAmcywgJnR5cGUp OworLSAgICAgIGlmIChjcF9wYXJzZXJfcGFyc2VfZGVmaW5pdGVseSAocGFyc2VyKSkKKysgICAg ICBpZiAoZGVwZW5kZW50X3AKKysJICAmJiAoY3BfcGFyc2VyX2Vycm9yX29jY3VycmVkIChwYXJz ZXIpCisrCSAgICAgIHx8IFRSRUVfQ09ERSAodHlwZSkgIT0gVFlQRV9ERUNMCisrCSAgICAgIHx8 ICFTQ0FMQVJfVFlQRV9QIChUUkVFX1RZUEUgKHR5cGUpKSkpCisrCWNwX3BhcnNlcl9hYm9ydF90 ZW50YXRpdmVfcGFyc2UgKHBhcnNlcik7CisrICAgICAgZWxzZSBpZiAoY3BfcGFyc2VyX3BhcnNl X2RlZmluaXRlbHkgKHBhcnNlcikpCisgCXsKKyAJICBwc2V1ZG9fZGVzdHJ1Y3Rvcl9wID0gdHJ1 ZTsKKyAJICBwb3N0Zml4X2V4cHJlc3Npb24KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1w bGF0ZS9wc2V1ZG9kdG9yMS5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRn L3RlbXBsYXRlL3BzZXVkb2R0b3IxLkMJKHJldmlzaW9uIDEyOTgzNikKK0BAIC0wLDAgKzEsNDQg QEAKKysvLyBQUiBjKysvMzIzODQKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKworK3N0cnVjdCBB CisreworKyAgdHlwZWRlZiBpbnQgVDsKKysgIFQgZm9vICgpOworKworKyAgQSAoKSB7IGZvbyAo KS5+VCAoKTsgfQorK307CisrCisrdGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBCCisreworKyAg dHlwZWRlZiBpbnQgVDsKKysgIFQgZm9vICgpOworKworKyAgQiAoKSB7IGZvbyAoKS5+VCAoKTsg fQorK307CisrCisrdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEMKKyt7CisrICBUIHQ7Cisr ICBDICgpIHsgdC5+VCAoKTsgfQorK307CisrCisrdGVtcGxhdGU8dHlwZW5hbWUgUz4gc3RydWN0 IEQKKyt7CisrICB0eXBlZGVmIGludCBUOworKyAgUyBmb28gKCk7CisrCisrICBEICgpIHsgZm9v ICgpLn5UKCk7IH0KKyt9OworKworK3N0cnVjdCBaCisreworKyAgWiAoKSB7fQorKyAgflogKCkg e30KKyt9OworKworK0EgYTsKKytCPGludD4gYjsKKytDPGludD4gYzE7CisrQzxaPiBjMjsKKytE PGludD4gZDsKKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1wbGF0ZS9wc2V1ZG9kdG9yMi5D CShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3RlbXBsYXRlL3BzZXVkb2R0 b3IyLkMJKHJldmlzaW9uIDEyOTgzNikKK0BAIC0wLDAgKzEsMTggQEAKKysvLyBQUiBjKysvMzIz ODQKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKworK3RlbXBsYXRlPHR5cGVuYW1lIFM+IHN0cnVj dCBECisreworKyAgdHlwZWRlZiBpbnQgVDsKKysgIFMgZm9vICgpOworKworKyAgRCAoKSB7IGZv byAoKS5+VCgpOyB9CQkvLyB7IGRnLWVycm9yICJpcyBub3Qgb2YgdHlwZSIgfQorK307CisrCisr c3RydWN0IFoKKyt7CisrICBaICgpIHt9CisrICB+WiAoKSB7fQorK307CisrCisrRDxaPiBkOwoK ZGlmZiAtLWdpdCBhL2djYzQxLXByMzM1MDEucGF0Y2ggYi9nY2M0MS1wcjMzNTAxLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYWI3MDEKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M0MS1wcjMzNTAxLnBhdGNoCkBAIC0wLDAgKzEsNzcgQEAKKzIwMDctMTEtMDcgIEph a3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgYysrLzMzNTAxCisJKiBjYWxs LmMgKGJ1aWxkX292ZXJfY2FsbCk6IERvbid0IGNoZWNrIFRSRUVfQUREUkVTU0FCTEUKKwlvbiBp bmNvbXBsZXRlIHR5cGUuCisKKwkqIGcrKy5kZy93YXJuL2luY29tcGxldGUyLkM6IE5ldyB0ZXN0 LgorCSogZysrLmRnL3RlbXBsYXRlL2luY29tcGxldGU0LkM6IE5ldyB0ZXN0LgorCSogZysrLmRn L3RlbXBsYXRlL2luY29tcGxldGU1LkM6IE5ldyB0ZXN0LgorCistLS0gZ2NjL2NwL2NhbGwuYwko cmV2aXNpb24gMTI5OTY3KQorKysrIGdjYy9jcC9jYWxsLmMJKHJldmlzaW9uIDEyOTk2OCkKK0BA IC00OTkzLDcgKzQ5OTMsOCBAQCBidWlsZF9vdmVyX2NhbGwgKHN0cnVjdCB6X2NhbmRpZGF0ZSAq Y2FuCisgCisgICAgICAgLyogRG9uJ3QgbWFrZSBhIGNvcHkgaGVyZSBpZiBidWlsZF9jYWxsIGlz IGdvaW5nIHRvLiAgKi8KKyAgICAgICBpZiAoY29udi0+a2luZCA9PSBja19ydmFsdWUKKy0JICAm JiAhVFJFRV9BRERSRVNTQUJMRSAoY29tcGxldGVfdHlwZSAodHlwZSkpKQorKwkgICYmIENPTVBM RVRFX1RZUEVfUCAoY29tcGxldGVfdHlwZSAodHlwZSkpCisrCSAgJiYgIVRSRUVfQUREUkVTU0FC TEUgKHR5cGUpKQorIAljb252ID0gY29udi0+dS5uZXh0OworIAorICAgICAgIHZhbCA9IGNvbnZl cnRfbGlrZV93aXRoX2NvbnRleHQKKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy93YXJuL2luY29t cGxldGUyLkMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvd2Fybi9pbmNv bXBsZXRlMi5DCShyZXZpc2lvbiAxMjk5NjgpCitAQCAtMCwwICsxLDEzIEBACisrLy8gUFIgYysr LzMzNTAxCisrLy8geyBkZy1kbyBjb21waWxlIH0KKysKKytjbGFzcyBBOwkvLyB7IGRnLWVycm9y ICJmb3J3YXJkIGRlY2xhcmF0aW9uIiB9CisrCisraW50IGYgKEEpOworK2NvbnN0IEEgJm1ha2Ug KCk7CisrCisraW50CisrbWFpbiAoKQorK3sKKysgIHJldHVybiBmIChtYWtlICgpKTsJLy8geyBk Zy1lcnJvciAiaW52YWxpZCB1c2Ugb2YgdW5kZWZpbmVkIHR5cGV8aW5pdGlhbGl6aW5nIGFyZ3Vt ZW50IiB9CisrfQorLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL3RlbXBsYXRlL2luY29tcGxldGU1 LkMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvdGVtcGxhdGUvaW5jb21w bGV0ZTUuQwkocmV2aXNpb24gMTI5OTY4KQorQEAgLTAsMCArMSwxNyBAQAorKy8vIFBSIGMrKy8z MzUwMQorKy8vIHsgZGctZG8gY29tcGlsZSB9CisrCisrY2xhc3MgQTsJLy8geyBkZy1lcnJvciAi Zm9yd2FyZCBkZWNsYXJhdGlvbiIgfQorKworK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3Qg WAorK3sKKysgIHN0YXRpYyBpbnQgZiAoVCk7CisrICBzdGF0aWMgY29uc3QgVCAmbWFrZSAoKTsK KysgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mIChmIChtYWtlICgpKSkgPT0gc2l6 ZW9mIChpbnQpOwkvLyB7IGRnLWVycm9yICJpbnZhbGlkIHVzZSBvZiB1bmRlZmluZWQgdHlwZXxp bml0aWFsaXppbmcgYXJndW1lbnQiIH0KKyt9OworKworK2ludAorK21haW4gKCkKKyt7CisrICBy ZXR1cm4gWCA8QT46OnZhbHVlOworK30KKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1wbGF0 ZS9pbmNvbXBsZXRlNC5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL3Rl bXBsYXRlL2luY29tcGxldGU0LkMJKHJldmlzaW9uIDEyOTk2OCkKK0BAIC0wLDAgKzEsMTYgQEAK KysvLyBQUiBjKysvMzM1MDEKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKworK2NsYXNzIEE7CS8v IHsgZGctZXJyb3IgImZvcndhcmQgZGVjbGFyYXRpb24iIH0KKysKKyt0ZW1wbGF0ZSA8dHlwZW5h bWUgVD4gc3RydWN0IFgKKyt7CisrICBzdGF0aWMgaW50IGYgKFQpOworKyAgc3RhdGljIGNvbnN0 IFQgJm1ha2UgKCk7CisrfTsKKysKKytpbnQKKyttYWluICgpCisreworKyAgcmV0dXJuIFg8QT46 OmYgKFg8QT46Om1ha2UgKCkpOwkvLyB7IGRnLWVycm9yICJpbnZhbGlkIHVzZSBvZiB1bmRlZmlu ZWQgdHlwZXxpbml0aWFsaXppbmcgYXJndW1lbnQiIH0KKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDEt cHIzMzUxNi5wYXRjaCBiL2djYzQxLXByMzM1MTYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMjQ5MWUxMQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXByMzM1MTYu cGF0Y2gKQEAgLTAsMCArMSw2MyBAQAorMjAwNy0xMS0wMiAgSmFrdWIgSmVsaW5layAgPGpha3Vi QHJlZGhhdC5jb20+CisKKwlQUiBjKysvMzM1MTYKKwkqIHBhcnNlci5jIChjcF9wYXJzZXJfbmVz dGVkX25hbWVfc3BlY2lmaWVyX29wdCk6IFVzZQorCVRZUEVfTUFJTl9WQVJJQU5UIChuZXdfc2Nv cGUpIGFzIHNjb3BlIGlmIG5ld19zY29wZSBpcyBhbiBpbmNvbXBsZXRlCisJdHlwZWRlZiBvZiBj dXJyZW50bHkgb3BlbiBjbGFzcy4KKworCSogZysrLmRnL2xvb2t1cC90eXBlZGVmMS5DOiBOZXcg dGVzdC4KKworLS0tIGdjYy9jcC9wYXJzZXIuYwkocmV2aXNpb24gMTI5ODYxKQorKysrIGdjYy9j cC9wYXJzZXIuYwkocmV2aXNpb24gMTI5ODYyKQorQEAgLTQwODUsNyArNDA4NSwxNSBAQCBjcF9w YXJzZXJfbmVzdGVkX25hbWVfc3BlY2lmaWVyX29wdCAoY3BfCisgCSAgJiYgIUNPTVBMRVRFX1RZ UEVfUCAobmV3X3Njb3BlKQorIAkgIC8qIERvIG5vdCB0cnkgdG8gY29tcGxldGUgZGVwZW5kZW50 IHR5cGVzLiAgKi8KKyAJICAmJiAhZGVwZW5kZW50X3R5cGVfcCAobmV3X3Njb3BlKSkKKy0JbmV3 X3Njb3BlID0gY29tcGxldGVfdHlwZSAobmV3X3Njb3BlKTsKKysJeworKwkgIG5ld19zY29wZSA9 IGNvbXBsZXRlX3R5cGUgKG5ld19zY29wZSk7CisrCSAgLyogSWYgaXQgaXMgYSB0eXBlZGVmIHRv IGN1cnJlbnQgY2xhc3MsIHVzZSB0aGUgY3VycmVudAorKwkgICAgIGNsYXNzIGluc3RlYWQsIGFz IHRoZSB0eXBlZGVmIHdvbid0IGhhdmUgYW55IG5hbWVzIGluc2lkZQorKwkgICAgIGl0IHlldC4g ICovCisrCSAgaWYgKCFDT01QTEVURV9UWVBFX1AgKG5ld19zY29wZSkKKysJICAgICAgJiYgY3Vy cmVudGx5X29wZW5fY2xhc3MgKG5ld19zY29wZSkpCisrCSAgICBuZXdfc2NvcGUgPSBUWVBFX01B SU5fVkFSSUFOVCAobmV3X3Njb3BlKTsKKysJfQorICAgICAgIC8qIE1ha2Ugc3VyZSB3ZSBsb29r IGluIHRoZSByaWdodCBzY29wZSB0aGUgbmV4dCB0aW1lIHRocm91Z2gKKyAJIHRoZSBsb29wLiAg Ki8KKyAgICAgICBwYXJzZXItPnNjb3BlID0gbmV3X3Njb3BlOworLS0tIGdjYy90ZXN0c3VpdGUv ZysrLmRnL2xvb2t1cC90eXBlZGVmMS5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUv ZysrLmRnL2xvb2t1cC90eXBlZGVmMS5DCShyZXZpc2lvbiAxMjk4NjIpCitAQCAtMCwwICsxLDMy IEBACisrLy8gUFIgYysrLzMzNTE2CisrLy8geyBkZy1kbyBjb21waWxlIH0KKysKKytzdHJ1Y3Qg UzE7CisrdHlwZWRlZiBTMSBUMTsKKytzdHJ1Y3QgUzEgeworKyAgdHlwZWRlZiBpbnQgVTsKKysg IFQxOjpVIGk7CisrfTsKKytzdHJ1Y3QgUzI7CisrdHlwZWRlZiBTMiBUMjsKKytzdHJ1Y3QgUzIg eworKyAgdHlwZWRlZiBpbnQgVTsKKyt9OworK1QyOjpVIGo7Cisrc3RydWN0IFMzOworK3R5cGVk ZWYgUzMgVDM7Cisrc3RydWN0IFMzIHsKKysgIHR5cGVkZWYgaW50IFU7CisrICBTMzo6VSBpOwor K307CisrCisrdm9pZAorK2ZvbyAoKQorK3sKKysgIFMxIHMxOworKyAgUzIgczI7CisrICBTMyBz MzsKKysgIHMxLmkgPSA2OworKyAgaiA9IDc7CisrICBzMy5pID0gODsKKyt9CgpkaWZmIC0tZ2l0 IGEvZ2NjNDEtcHIzMzUzNy5wYXRjaCBiL2djYzQxLXByMzM1MzcucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDNmZDUwMAotLS0gL2Rldi9udWxsCisrKyBiL2djYzQx LXByMzM1MzcucGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorMjAwNy0xMS0wMSAgSmFrdWIgSmVsaW5l ayAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBkZWJ1Zy8zMzUzNworCSogZHdhcmYyb3V0LmMg KGdlbl9mb3JtYWxfcGFyYW1ldGVyX2RpZSwgZ2VuX3ZhcmlhYmxlX2RpZSwKKwlnZW5fZGVjbF9k aWUpOiBVc2UgVFJFRV9UWVBFIChUUkVFX1RZUEUgKGRlY2wpKSBhcyB0eXBlCisJcmF0aGVyIHRo YW4gVFJFRV9UWVBFIChkZWNsKSBpZiBERUNMX0JZX1JFRkVSRU5DRSAoZGVjbCkuCisKKy0tLSBn Y2MvZHdhcmYyb3V0LmMJKHJldmlzaW9uIDEyOTgxOSkKKysrKyBnY2MvZHdhcmYyb3V0LmMJKHJl dmlzaW9uIDEyOTgyMCkKK0BAIC0xMTgzMiw4ICsxMTgzMiwxMSBAQCBnZW5fZm9ybWFsX3BhcmFt ZXRlcl9kaWUgKHRyZWUgbm9kZSwgZHdfCisgCWFkZF9hYnN0cmFjdF9vcmlnaW5fYXR0cmlidXRl IChwYXJtX2RpZSwgb3JpZ2luKTsKKyAgICAgICBlbHNlCisgCXsKKysJICB0cmVlIHR5cGUgPSBU UkVFX1RZUEUgKG5vZGUpOworIAkgIGFkZF9uYW1lX2FuZF9zcmNfY29vcmRzX2F0dHJpYnV0ZXMg KHBhcm1fZGllLCBub2RlKTsKKy0JICBhZGRfdHlwZV9hdHRyaWJ1dGUgKHBhcm1fZGllLCBUUkVF X1RZUEUgKG5vZGUpLAorKwkgIGlmIChERUNMX0JZX1JFRkVSRU5DRSAobm9kZSkpCisrCSAgICB0 eXBlID0gVFJFRV9UWVBFICh0eXBlKTsKKysJICBhZGRfdHlwZV9hdHRyaWJ1dGUgKHBhcm1fZGll LCB0eXBlLAorIAkJCSAgICAgIFRSRUVfUkVBRE9OTFkgKG5vZGUpLAorIAkJCSAgICAgIFRSRUVf VEhJU19WT0xBVElMRSAobm9kZSksCisgCQkJICAgICAgY29udGV4dF9kaWUpOworQEAgLTEyNDM3 LDggKzEyNDQwLDE0IEBAIGdlbl92YXJpYWJsZV9kaWUgKHRyZWUgZGVjbCwgZHdfZGllX3JlZiAK KyAgICAgfQorICAgZWxzZQorICAgICB7CisrICAgICAgdHJlZSB0eXBlID0gVFJFRV9UWVBFIChk ZWNsKTsKKysgICAgICBpZiAoKFRSRUVfQ09ERSAoZGVjbCkgPT0gUEFSTV9ERUNMCisrCSAgIHx8 IFRSRUVfQ09ERSAoZGVjbCkgPT0gUkVTVUxUX0RFQ0wpCisrCSAgJiYgREVDTF9CWV9SRUZFUkVO Q0UgKGRlY2wpKQorKwl0eXBlID0gVFJFRV9UWVBFICh0eXBlKTsKKysKKyAgICAgICBhZGRfbmFt ZV9hbmRfc3JjX2Nvb3Jkc19hdHRyaWJ1dGVzICh2YXJfZGllLCBkZWNsKTsKKy0gICAgICBhZGRf dHlwZV9hdHRyaWJ1dGUgKHZhcl9kaWUsIFRSRUVfVFlQRSAoZGVjbCksIFRSRUVfUkVBRE9OTFkg KGRlY2wpLAorKyAgICAgIGFkZF90eXBlX2F0dHJpYnV0ZSAodmFyX2RpZSwgdHlwZSwgVFJFRV9S RUFET05MWSAoZGVjbCksCisgCQkJICBUUkVFX1RISVNfVk9MQVRJTEUgKGRlY2wpLCBjb250ZXh0 X2RpZSk7CisgCisgICAgICAgaWYgKFRSRUVfUFVCTElDIChkZWNsKSkKK0BAIC0xMzY5NCw3ICsx MzcwMywxMCBAQCBnZW5fZGVjbF9kaWUgKHRyZWUgZGVjbCwgZHdfZGllX3JlZiBjb250CisgCisg ICAgICAgLyogT3V0cHV0IGFueSBESUVzIHRoYXQgYXJlIG5lZWRlZCB0byBzcGVjaWZ5IHRoZSB0 eXBlIG9mIHRoaXMgZGF0YQorIAkgb2JqZWN0LiAgKi8KKy0gICAgICBnZW5fdHlwZV9kaWUgKFRS RUVfVFlQRSAoZGVjbCksIGNvbnRleHRfZGllKTsKKysgICAgICBpZiAoVFJFRV9DT0RFIChkZWNs KSA9PSBSRVNVTFRfREVDTCAmJiBERUNMX0JZX1JFRkVSRU5DRSAoZGVjbCkpCisrCWdlbl90eXBl X2RpZSAoVFJFRV9UWVBFIChUUkVFX1RZUEUgKGRlY2wpKSwgY29udGV4dF9kaWUpOworKyAgICAg IGVsc2UKKysJZ2VuX3R5cGVfZGllIChUUkVFX1RZUEUgKGRlY2wpLCBjb250ZXh0X2RpZSk7Cisg CisgICAgICAgLyogQW5kIGl0cyBjb250YWluaW5nIHR5cGUuICAqLworICAgICAgIG9yaWdpbiA9 IGRlY2xfY2xhc3NfY29udGV4dCAoZGVjbCk7CitAQCAtMTM3MjgsNyArMTM3NDAsMTAgQEAgZ2Vu X2RlY2xfZGllICh0cmVlIGRlY2wsIGR3X2RpZV9yZWYgY29udAorICAgICAgIGJyZWFrOworIAor ICAgICBjYXNlIFBBUk1fREVDTDoKKy0gICAgICBnZW5fdHlwZV9kaWUgKFRSRUVfVFlQRSAoZGVj bCksIGNvbnRleHRfZGllKTsKKysgICAgICBpZiAoREVDTF9CWV9SRUZFUkVOQ0UgKGRlY2wpKQor KwlnZW5fdHlwZV9kaWUgKFRSRUVfVFlQRSAoVFJFRV9UWVBFIChkZWNsKSksIGNvbnRleHRfZGll KTsKKysgICAgICBlbHNlCisrCWdlbl90eXBlX2RpZSAoVFJFRV9UWVBFIChkZWNsKSwgY29udGV4 dF9kaWUpOworICAgICAgIGdlbl9mb3JtYWxfcGFyYW1ldGVyX2RpZSAoZGVjbCwgY29udGV4dF9k aWUpOworICAgICAgIGJyZWFrOworIAoKZGlmZiAtLWdpdCBhL2djYzQxLXByMzM2MTYucGF0Y2gg Yi9nY2M0MS1wcjMzNjE2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu Ljc4MTdmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1wcjMzNjE2LnBhdGNoCkBAIC0wLDAg KzEsNzQgQEAKKzIwMDctMTAtMzAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgor CisJUFIgYysrLzMzNjE2CisJKiBkZWNsMi5jIChidWlsZF9vZmZzZXRfcmVmX2NhbGxfZnJvbV90 cmVlKTogQ2FsbAorCWJ1aWxkX25vbl9kZXBlbmRlbnRfZXhwciBvbiBvYmplY3QgcHJpb3IgdG8g YnVpbGRpbmcgQUREUl9FWFBSIGZyb20gaXQKKwlpZiBGTiBpcyBET1RTVEFSX0VYUFIuCisKKwkq IGcrKy5kZy90ZW1wbGF0ZS9wdHJtZW0xOC5DOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jcC9kZWNs Mi5jCShyZXZpc2lvbiAxMjk3ODMpCisrKysgZ2NjL2NwL2RlY2wyLmMJKHJldmlzaW9uIDEyOTc4 NCkKK0BAIC0zNDk5LDkgKzM0OTksOSBAQCBidWlsZF9vZmZzZXRfcmVmX2NhbGxfZnJvbV90cmVl ICh0cmVlIGZuCisgCSBwYXJhbWV0ZXIuICBUaGF0IG11c3QgYmUgZG9uZSBiZWZvcmUgdGhlIEZO IGlzIHRyYW5zZm9ybWVkCisgCSBiZWNhdXNlIHdlIGRlcGVuZCBvbiB0aGUgZm9ybSBvZiBGTi4g ICovCisgICAgICAgYXJncyA9IGJ1aWxkX25vbl9kZXBlbmRlbnRfYXJncyAoYXJncyk7CisrICAg ICAgb2JqZWN0ID0gYnVpbGRfbm9uX2RlcGVuZGVudF9leHByIChvYmplY3QpOworICAgICAgIGlm IChUUkVFX0NPREUgKGZuKSA9PSBET1RTVEFSX0VYUFIpCisgCW9iamVjdCA9IGJ1aWxkX3VuYXJ5 X29wIChBRERSX0VYUFIsIG9iamVjdCwgMCk7CistICAgICAgb2JqZWN0ID0gYnVpbGRfbm9uX2Rl cGVuZGVudF9leHByIChvYmplY3QpOworICAgICAgIGFyZ3MgPSB0cmVlX2NvbnMgKE5VTExfVFJF RSwgb2JqZWN0LCBhcmdzKTsKKyAgICAgICAvKiBOb3cgdGhhdCB0aGUgYXJndW1lbnRzIGFyZSBk b25lLCB0cmFuc2Zvcm0gRk4uICAqLworICAgICAgIGZuID0gYnVpbGRfbm9uX2RlcGVuZGVudF9l eHByIChmbik7CistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvdGVtcGxhdGUvcHRybWVtMTguQwko cmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1wbGF0ZS9wdHJtZW0xOC5D CShyZXZpc2lvbiAxMjk3ODQpCitAQCAtMCwwICsxLDQ5IEBACisrLy8gUFIgYysrLzMzNjE2Cisr Ly8geyBkZy1kbyBydW4gfQorKy8vIHsgZGctb3B0aW9ucyAiLU8yIiB9CisrCisrZXh0ZXJuICJD IiB2b2lkIGFib3J0ICgpOworKworK3N0cnVjdCBTIHsKKysgIGludCBjOworKyAgUyAoKSA6IGMg KDApIHt9CisrICB2aXJ0dWFsIHZvaWQgZjEgKCkgeyBjICs9IDE7IH0KKysgIHZpcnR1YWwgdm9p ZCBmMiAoKSB7IGMgKz0gMTY7IH0KKyt9OworKworK3N0cnVjdCBUIHsKKysgIFMgczsKKyt9Owor KworK3R5cGVkZWYgdm9pZCAoUzo6KlEpICgpOworKworK3RlbXBsYXRlIDxRIFA+Cisrdm9pZCB0 ZXN0MSAoVCAqdCkKKyt7CisrICAodC0+cy4qUCkoKTsKKyt9CisrCisrdGVtcGxhdGUgPFEgUD4K Kyt2b2lkIHRlc3QyIChUICp0KQorK3sKKysgIFMgJnMgPSB0LT5zOworKyAgKHMuKlApKCk7Cisr fQorKworK2ludAorK21haW4gKCkKKyt7CisrICBUIHQ7CisrICB0ZXN0MSA8JlM6OmYxPiAoJnQp OworKyAgaWYgKHQucy5jICE9IDEpCisrICAgIGFib3J0ICgpOworKyAgdGVzdDEgPCZTOjpmMj4g KCZ0KTsKKysgIGlmICh0LnMuYyAhPSAxNykKKysgICAgYWJvcnQgKCk7CisrICB0ZXN0MiA8JlM6 OmYxPiAoJnQpOworKyAgaWYgKHQucy5jICE9IDE4KQorKyAgICBhYm9ydCAoKTsKKysgIHRlc3Qy IDwmUzo6ZjI+ICgmdCk7CisrICBpZiAodC5zLmMgIT0gMzQpCisrICAgIGFib3J0ICgpOworK30K CmRpZmYgLS1naXQgYS9nY2M0MS1wcjMzNzIzLnBhdGNoIGIvZ2NjNDEtcHIzMzcyMy5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDNlNzQ2Ci0tLSAvZGV2L251bGwK KysrIGIvZ2NjNDEtcHIzMzcyMy5wYXRjaApAQCAtMCwwICsxLDE4OSBAQAorMjAwNy0xMC0yOSAg SmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiB0cmVlLW9wdGltaXphdGlv bi8zMzcyMworCSogYy1naW1wbGlmeS5jIChjX2dpbXBsaWZ5X2V4cHIpOiBPcHRpbWl6ZSBJTklU X0VYUFIgb3IKKwlNT0RJRllfRVhQUiB3aXRoIG5vbi1hZGRyZXNzYWJsZSBDT01QT1VORF9MSVRF UkFMX0VYUFIgYXMgc291cmNlLgorCisyMDA3LTExLTIwICBKYWt1YiBKZWxpbmVrICA8amFrdWJA cmVkaGF0LmNvbT4KKworCVBSIHRlc3RzdWl0ZS8zMzk3OAorCSogZ2NjLmRnL3RyZWUtc3NhL3By MzM3MjMuYzogQWRqdXN0IHNjYW4gcGF0dGVybiB0byBtYWtlIGl0IGxlc3MKKwlkZXBlbmRlbnQg b24gdGFyZ2V0IHNldHRpbmdzIGxpa2UgbW92ZV9ieV9waWVjZXMgZXRjLgorCisyMDA3LTEwLTMw ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIHRyZWUtb3B0aW1pemF0 aW9uLzMzNzIzCisJKiBnY2MuZGcvdHJlZS1zc2EvcHIzMzcyMy5jIChUKTogRGVjcmVhc2Ugc2l6 ZSBvZiBmaWVsZCBzLgorCisyMDA3LTEwLTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0 LmNvbT4KKworCVBSIHRyZWUtb3B0aW1pemF0aW9uLzMzNzIzCisJKiBnY2MuYy10b3J0dXJlL2V4 ZWN1dGUvMjAwNzEwMjktMS5jOiBOZXcgdGVzdC4KKwkqIGdjYy5kZy90cmVlLXNzYS9wcjMzNzIz LmM6IE5ldyB0ZXN0LgorCistLS0gZ2NjL2MtZ2ltcGxpZnkuYwkocmV2aXNpb24gMTI5NzQyKQor KysrIGdjYy9jLWdpbXBsaWZ5LmMJKHJldmlzaW9uIDEyOTc0MykKK0BAIC0yMzMsNiArMjMzLDI5 IEBAIGNfZ2ltcGxpZnlfZXhwciAodHJlZSAqZXhwcl9wLCB0cmVlICpwcmUKKyAgICAgY2FzZSBD T01QT1VORF9MSVRFUkFMX0VYUFI6CisgICAgICAgcmV0dXJuIGdpbXBsaWZ5X2NvbXBvdW5kX2xp dGVyYWxfZXhwciAoZXhwcl9wLCBwcmVfcCk7CisgCisrICAgIGNhc2UgSU5JVF9FWFBSOgorKyAg ICBjYXNlIE1PRElGWV9FWFBSOgorKyAgICAgIGlmIChUUkVFX0NPREUgKFRSRUVfT1BFUkFORCAo KmV4cHJfcCwgMSkpID09IENPTVBPVU5EX0xJVEVSQUxfRVhQUikKKysJeworKwkgIHRyZWUgY29t cGxpdCA9IFRSRUVfT1BFUkFORCAoKmV4cHJfcCwgMSk7CisrCSAgdHJlZSBkZWNsX3MgPSBDT01Q T1VORF9MSVRFUkFMX0VYUFJfREVDTF9TVE1UIChjb21wbGl0KTsKKysJICB0cmVlIGRlY2wgPSBE RUNMX0VYUFJfREVDTCAoZGVjbF9zKTsKKysJICB0cmVlIGluaXQgPSBERUNMX0lOSVRJQUwgKGRl Y2wpOworKworKwkgIC8qIHN0cnVjdCBUIHggPSAoc3RydWN0IFQpIHsgMCwgMSwgMiB9IGNhbiBi ZSBvcHRpbWl6ZWQKKysJICAgICBpbnRvIHN0cnVjdCBUIHggPSB7IDAsIDEsIDIgfSBpZiB0aGUg YWRkcmVzcyBvZiB0aGUKKysJICAgICBjb21wb3VuZCBsaXRlcmFsIGhhcyBuZXZlciBiZWVuIHRh a2VuLiAgKi8KKysJICBpZiAoIVRSRUVfQUREUkVTU0FCTEUgKGNvbXBsaXQpCisrCSAgICAgICYm ICFUUkVFX0FERFJFU1NBQkxFIChkZWNsKQorKwkgICAgICAmJiBpbml0KQorKwkgICAgeworKwkg ICAgICAqZXhwcl9wID0gY29weV9ub2RlICgqZXhwcl9wKTsKKysJICAgICAgVFJFRV9PUEVSQU5E ICgqZXhwcl9wLCAxKSA9IGluaXQ7CisrCSAgICAgIHJldHVybiBHU19PSzsKKysJICAgIH0KKysJ fQorKyAgICAgIHJldHVybiBHU19VTkhBTkRMRUQ7CisrCisgICAgIGRlZmF1bHQ6CisgICAgICAg cmV0dXJuIEdTX1VOSEFORExFRDsKKyAgICAgfQorLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9y dHVyZS9leGVjdXRlLzIwMDcxMDI5LTEuYwkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRl L2djYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA3MTAyOS0xLmMJKHJldmlzaW9uIDEyOTc0MykKK0BA IC0wLDAgKzEsNTYgQEAKKytleHRlcm4gdm9pZCBleGl0IChpbnQpOworK2V4dGVybiB2b2lkIGFi b3J0ICh2b2lkKTsKKysKKyt0eXBlZGVmIHVuaW9uCisreworKyAgc3RydWN0CisrICB7CisrICAg IGludCBmMSwgZjIsIGYzLCBmNCwgZjUsIGY2LCBmNywgZjg7CisrICAgIGxvbmcgaW50IGY5LCBm MTA7CisrICAgIGludCBmMTE7CisrICB9IGY7CisrICBjaGFyIHNbNTZdOworKyAgbG9uZyBpbnQg YTsKKyt9IFQ7CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQorK3ZvaWQKKyt0ZXN0IChU ICp0KQorK3sKKysgIHN0YXRpYyBpbnQgaSA9IDExOworKyAgaWYgKHQtPmYuZjEgIT0gaSsrKQor KyAgICBhYm9ydCAoKTsKKysgIGlmICh0LT5mLmYyIHx8IHQtPmYuZjMgfHwgdC0+Zi5mNCB8fCB0 LT5mLmY1IHx8IHQtPmYuZjYKKysgICAgICB8fCB0LT5mLmY3IHx8IHQtPmYuZjggfHwgdC0+Zi5m OSB8fCB0LT5mLmYxMCB8fCB0LT5mLmYxMSkKKysgICAgYWJvcnQgKCk7CisrICBpZiAoaSA9PSAy MCkKKysgICAgZXhpdCAoMCk7CisrfQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkKKyt2 b2lkCisrZm9vIChpbnQgaSkKKyt7CisrICBUIHQ7CisrYWdhaW46CisrICB0ID0gKFQpIHsgeyAr K2ksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfSB9OworKyAgdGVzdCAoJnQpOworKyAg Z290byBhZ2FpbjsKKyt9CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBUICp0MSwgKnQy OworKyAgaW50IGNudCA9IDA7CisrICB0MSA9IChUICopIDA7CisrbG9vcDoKKysgIHQyID0gdDE7 CisrICB0MSA9ICYgKFQpIHsgLmYuZjkgPSBjbnQrKyB9OworKyAgaWYgKGNudCA8IDMpCisrICAg IGdvdG8gbG9vcDsKKysgIGlmICh0MSAhPSB0MiB8fCB0MS0+Zi5mOSAhPSAyKQorKyAgICBhYm9y dCAoKTsKKysgIGZvbyAoMTApOworKyAgcmV0dXJuIDA7CisrfQorLS0tIGdjYy90ZXN0c3VpdGUv Z2NjLmRnL3RyZWUtc3NhL3ByMzM3MjMuYwkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRl L2djYy5kZy90cmVlLXNzYS9wcjMzNzIzLmMJKHJldmlzaW9uIDEyOTc0MykKK0BAIC0wLDAgKzEs NzIgQEAKKysvKiBQUiB0cmVlLW9wdGltaXphdGlvbi8zMzcyMyAqLworKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCisrLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUtZ2ltcGxlIiB9ICov CisrCisrdHlwZWRlZiB1bmlvbgorK3sKKysgIHN0cnVjdAorKyAgeworKyAgICBpbnQgZjEsIGYy LCBmMywgZjQsIGY1LCBmNiwgZjcsIGY4OworKyAgICBsb25nIGludCBmOSwgZjEwOworKyAgICBp bnQgZjExOworKyAgfSBmOworKyAgY2hhciBzWzRdOworKyAgbG9uZyBpbnQgYTsKKyt9IFQ7Cisr Cisrdm9pZAorK2ZvbzEgKHZvaWQpCisreworKyAgVCB0OworKyAgdCA9IChUKSB7IHsgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9IH07CisrICB0ZXN0ICgmdCk7CisrfQorKworK3Zv aWQKKytiYXIxICh2b2lkKQorK3sKKysgIFQgdCA9IHsgeyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwIH0gfTsKKysgIHRlc3QgKCZ0KTsKKyt9CisrCisrdm9pZAorK2JhejEgKHZvaWQp CisreworKyAgVCB0OworKyAgdCA9IChjb25zdCBUKSB7IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCB9IH07CisrICB0ZXN0ICgmdCk7CisrfQorKworK3ZvaWQKKytmb28yICh2b2lk KQorK3sKKysgIFQgdDsKKysgIHQgPSAoVCkgeyB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDks IDEwLCAxMSB9IH07CisrICB0ZXN0ICgmdCk7CisrfQorKworK3ZvaWQKKytiYXIyICh2b2lkKQor K3sKKysgIFQgdCA9IHsgeyAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEgfSB9Owor KyAgdGVzdCAoJnQpOworK30KKysKKyt2b2lkCisrYmF6MiAodm9pZCkKKyt7CisrICBUIHQ7Cisr ICB0ID0gKGNvbnN0IFQpIHsgeyAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEgfSB9 OworKyAgdGVzdCAoJnQpOworK30KKysKKyt2b2lkCisrYmF6MyAodm9pZCkKKyt7CisrICBUIHQ7 CisrICB0ID0gKGNvbnN0IFQpIChUKSB7IHsgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAs IDExIH0gfTsKKysgIHRlc3QgKCZ0KTsKKyt9CisrCisrLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLW5vdCAidCA9IEQiICJnaW1wbGUifSB9ICovCisrLyogeyBkZy1maW5hbCB7IGNsZWFu dXAtdHJlZS1kdW1wICJnaW1wbGUiIH0gfSAqLwoKZGlmZiAtLWdpdCBhL2djYzQxLXByMzM3NDQu cGF0Y2ggYi9nY2M0MS1wcjMzNzQ0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA1OTRmZDRkLi4wMDAwMDAwCi0tLSBhL2djYzQxLXByMzM3NDQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw2NyArMCwwIEBACi0yMDA3LTEwLTE1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVk aGF0LmNvbT4KLQotCVBSIGMrKy8zMzc0NAotCSogcGFyc2VyLmMgKGNwX3BhcnNlcl9wYXJlbnRo ZXNpemVkX2V4cHJlc3Npb25fbGlzdCk6IFNldAotCWdyZWF0ZXJfdGhhbl9pc19vcGVyYXRvcl9w IHRvIHRydWUgaW4gYmV0d2VlbiB0aGUgcGFyZW5zLgotCi0JKiBnKysuZGcvdGVtcGxhdGUvYXJn Ni5DOiBOZXcgdGVzdC4KLQotLS0tIGdjYy9jcC9wYXJzZXIuYy5qagkyMDA3LTEwLTEyIDAwOjI4 OjI0LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jcC9wYXJzZXIuYwkyMDA3LTEwLTE1IDE0OjUy OjAyLjAwMDAwMDAwMCArMDIwMAotQEAgLTQ5NzYsNiArNDk3Niw3IEBAIGNwX3BhcnNlcl9wYXJl bnRoZXNpemVkX2V4cHJlc3Npb25fbGlzdCAKLSAgIHRyZWUgZXhwcmVzc2lvbl9saXN0ID0gTlVM TF9UUkVFOwotICAgYm9vbCBmb2xkX2V4cHJfcCA9IGlzX2F0dHJpYnV0ZV9saXN0OwotICAgdHJl ZSBpZGVudGlmaWVyID0gTlVMTF9UUkVFOwotKyAgYm9vbCBzYXZlZF9ncmVhdGVyX3RoYW5faXNf b3BlcmF0b3JfcDsKLSAKLSAgIC8qIEFzc3VtZSBhbGwgdGhlIGV4cHJlc3Npb25zIHdpbGwgYmUg Y29uc3RhbnQuICAqLwotICAgaWYgKG5vbl9jb25zdGFudF9wKQotQEAgLTQ5ODQsNiArNDk4NSwx MiBAQCBjcF9wYXJzZXJfcGFyZW50aGVzaXplZF9leHByZXNzaW9uX2xpc3QgCi0gICBpZiAoIWNw X3BhcnNlcl9yZXF1aXJlIChwYXJzZXIsIENQUF9PUEVOX1BBUkVOLCAiYCgnIikpCi0gICAgIHJl dHVybiBlcnJvcl9tYXJrX25vZGU7Ci0gCi0rICAvKiBXaXRoaW4gYSBwYXJlbnRoZXNpemVkIGV4 cHJlc3Npb24sIGEgYD4nIHRva2VuIGlzIGFsd2F5cwotKyAgICAgdGhlIGdyZWF0ZXItdGhhbiBv cGVyYXRvci4gICovCi0rICBzYXZlZF9ncmVhdGVyX3RoYW5faXNfb3BlcmF0b3JfcAotKyAgICA9 IHBhcnNlci0+Z3JlYXRlcl90aGFuX2lzX29wZXJhdG9yX3A7Ci0rICBwYXJzZXItPmdyZWF0ZXJf dGhhbl9pc19vcGVyYXRvcl9wID0gdHJ1ZTsKLSsKLSAgIC8qIENvbnN1bWUgZXhwcmVzc2lvbnMg dW50aWwgdGhlcmUgYXJlIG5vIG1vcmUuICAqLwotICAgaWYgKGNwX2xleGVyX25leHRfdG9rZW5f aXNfbm90IChwYXJzZXItPmxleGVyLCBDUFBfQ0xPU0VfUEFSRU4pKQotICAgICB3aGlsZSAodHJ1 ZSkKLUBAIC01MDY5LDkgKzUwNzYsMTYgQEAgY3BfcGFyc2VyX3BhcmVudGhlc2l6ZWRfZXhwcmVz c2lvbl9saXN0IAotICAgICAgIGlmIChlbmRpbmcgPCAwKQotIAlnb3RvIGdldF9jb21tYTsKLSAg ICAgICBpZiAoIWVuZGluZykKLS0JcmV0dXJuIGVycm9yX21hcmtfbm9kZTsKLSsJewotKwkgIHBh cnNlci0+Z3JlYXRlcl90aGFuX2lzX29wZXJhdG9yX3AKLSsJICAgID0gc2F2ZWRfZ3JlYXRlcl90 aGFuX2lzX29wZXJhdG9yX3A7Ci0rCSAgcmV0dXJuIGVycm9yX21hcmtfbm9kZTsKLSsJfQotICAg ICB9Ci0gCi0rICBwYXJzZXItPmdyZWF0ZXJfdGhhbl9pc19vcGVyYXRvcl9wCi0rICAgID0gc2F2 ZWRfZ3JlYXRlcl90aGFuX2lzX29wZXJhdG9yX3A7Ci0rCi0gICAvKiBXZSBidWlsdCB1cCB0aGUg bGlzdCBpbiByZXZlcnNlIG9yZGVyIHNvIHdlIG11c3QgcmV2ZXJzZSBpdCBub3cuICAqLwotICAg ZXhwcmVzc2lvbl9saXN0ID0gbnJldmVyc2UgKGV4cHJlc3Npb25fbGlzdCk7Ci0gICBpZiAoaWRl bnRpZmllcikKLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1wbGF0ZS9hcmc2LkMuamoJMjAw Ny0xMC0xNSAxNDo1OToxMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5k Zy90ZW1wbGF0ZS9hcmc2LkMJMjAwNy0xMC0xNSAxNDo1NzozMS4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsMTUgQEAKLSsvLyBQUiBjKysvMzM3NDQKLSsvLyB7IGRnLWRvIHJ1biB9Ci0rCi0r dGVtcGxhdGUgPGJvb2wgQj4gc3RydWN0IEEgeyBib29sIGI7IEEoKSA6IGIoQikge307IH07Ci0r QTxib29sKDEpPiBhOwotK0E8Ym9vbCgxPDIpPiBiOwotK0E8KGJvb2wpKDI+MSk+IGM7Ci0rQTxi b29sKCgyPjEpKT4gZDsKLStBPGJvb2woMj4xKT4gZTsKLSsKLStpbnQKLSttYWluICgpCi0rewot KyAgcmV0dXJuIChhLmIgJiYgYi5iICYmIGMuYiAmJiBkLmIgJiYgZS5iKSA/IDAgOiAxOwotK30K CmRpZmYgLS1naXQgYS9nY2M0MS1wcjMzODM2LnBhdGNoIGIvZ2NjNDEtcHIzMzgzNi5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTFlMTI4Ci0tLSAvZGV2L251bGwK KysrIGIvZ2NjNDEtcHIzMzgzNi5wYXRjaApAQCAtMCwwICsxLDUxIEBACisyMDA3LTExLTA1ICBK YWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIGMrKy8zMzgzNgorCSogcGFy c2VyLmMgKGNwX3BhcnNlcl91bmFyeV9leHByZXNzaW9uKTogRm9yICYmbGFiZWwgY2FsbAorCWNw X3BhcnNlcl9ub25faW50ZWdyYWxfY29uc3RhbnRfZXhwcmVzc2lvbiBhbmQgcmV0dXJuIGVycm9y X21hcmtfbm9kZQorCWlmIGl0IHJldHVybmVkIHRydWUuCisKKwkqIGcrKy5kZy9leHQvbGFiZWwx MC5DOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jcC9wYXJzZXIuYwkocmV2aXNpb24gMTI5ODk1KQor KysrIGdjYy9jcC9wYXJzZXIuYwkocmV2aXNpb24gMTI5ODk2KQorQEAgLTUzMjksMTMgKzUzMjks MTggQEAgY3BfcGFyc2VyX3VuYXJ5X2V4cHJlc3Npb24gKGNwX3BhcnNlciAqcAorIAkgICAgICAg JiYgdG9rZW4tPnR5cGUgPT0gQ1BQX0FORF9BTkQpCisgCXsKKyAJICB0cmVlIGlkZW50aWZpZXI7 CisrCSAgdHJlZSBleHByZXNzaW9uOworIAorIAkgIC8qIENvbnN1bWUgdGhlICcmJicgdG9rZW4u ICAqLworIAkgIGNwX2xleGVyX2NvbnN1bWVfdG9rZW4gKHBhcnNlci0+bGV4ZXIpOworIAkgIC8q IExvb2sgZm9yIHRoZSBpZGVudGlmaWVyLiAgKi8KKyAJICBpZGVudGlmaWVyID0gY3BfcGFyc2Vy X2lkZW50aWZpZXIgKHBhcnNlcik7CisgCSAgLyogQ3JlYXRlIGFuIGV4cHJlc3Npb24gcmVwcmVz ZW50aW5nIHRoZSBhZGRyZXNzLiAgKi8KKy0JICByZXR1cm4gZmluaXNoX2xhYmVsX2FkZHJlc3Nf ZXhwciAoaWRlbnRpZmllcik7CisrCSAgZXhwcmVzc2lvbiA9IGZpbmlzaF9sYWJlbF9hZGRyZXNz X2V4cHIgKGlkZW50aWZpZXIpOworKwkgIGlmIChjcF9wYXJzZXJfbm9uX2ludGVncmFsX2NvbnN0 YW50X2V4cHJlc3Npb24gKHBhcnNlciwKKysJCQkJCQkidGhlIGFkZHJlc3Mgb2YgYSBsYWJlbCIp KQorKwkgICAgZXhwcmVzc2lvbiA9IGVycm9yX21hcmtfbm9kZTsKKysJICByZXR1cm4gZXhwcmVz c2lvbjsKKyAJfQorICAgICB9CisgICBpZiAodW5hcnlfb3BlcmF0b3IgIT0gRVJST1JfTUFSSykK Ky0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9leHQvbGFiZWwxMC5DCShyZXZpc2lvbiAwKQorKysr IGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9sYWJlbDEwLkMJKHJldmlzaW9uIDEyOTg5NikKK0BA IC0wLDAgKzEsMTcgQEAKKysvLyBQUiBjKysvMzM4MzYKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQor Ky8vIHsgZGctb3B0aW9ucyAiLXN0ZD1nbnUrKzk4IiB9CisrCisrdGVtcGxhdGU8aW50IE4+IHN0 cnVjdCBBCisreworKyAgZW51bSB7IE0gPSAmJiBOIH07CS8vIHsgZGctZXJyb3IgInJlZmVyZW5j ZWQgb3V0c2lkZXxjYW5ub3QgYXBwZWFyIGluIiB9CisrfTsKKysKKytBPDA+IGE7CisrCisrdm9p ZCBmb28gKCkKKyt7CisrICBfX2xhYmVsX18gUDsKKysgIGVudW0geyBPID0gJiYgUCB9OwkvLyB7 IGRnLWVycm9yICJjYW5ub3QgYXBwZWFyIGluIiB9CisrICBQOjsKKyt9CgpkaWZmIC0tZ2l0IGEv Z2NjNDEtcHIzMzg0Mi5wYXRjaCBiL2djYzQxLXByMzM4NDIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMTk4MDNmMQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXBy MzM4NDIucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKKzIwMDctMTAtMjcgIEpha3ViIEplbGluZWsg IDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgYysrLzMzODQyCisJKiBjeHgtcHJldHR5LXByaW50 LmggKHBwX2N4eF9vZmZzZXRvZl9leHByZXNzaW9uKTogTmV3IHByb3RvdHlwZS4KKwkqIGN4eC1w cmV0dHktcHJpbnQuYyAocHBfY3h4X3ByaW1hcnlfZXhwcmVzc2lvbik6IEhhbmRsZQorCU9GRlNF VE9GX0VYUFIuCisJKHBwX2N4eF9vZmZzZXRvZl9leHByZXNzaW9uXzEsIHBwX2N4eF9vZmZzZXRv Zl9leHByZXNzaW9uKTogTmV3CisJZnVuY3Rpb25zLgorCSogZXJyb3IuYyAoZHVtcF9leHByKTog SGFuZGxlIE9GRlNFVE9GX0VYUFIuCisKKwkqIGcrKy5kZy90ZW1wbGF0ZS9lcnJvcjM0LkM6IE5l dyB0ZXN0LgorCistLS0gZ2NjL2NwL2Vycm9yLmMJKHJldmlzaW9uIDEyOTY3NikKKysrKyBnY2Mv Y3AvZXJyb3IuYwkocmV2aXNpb24gMTI5Njc3KQorQEAgLTE4ODcsNiArMTg4NywxMCBAQCBkdW1w X2V4cHIgKHRyZWUgdCwgaW50IGZsYWdzKQorICAgICAgIGR1bXBfZXhwciAoVFJFRV9PUEVSQU5E ICh0LCAwKSwgZmxhZ3MpOworICAgICAgIGJyZWFrOworIAorKyAgICBjYXNlIE9GRlNFVE9GX0VY UFI6CisrICAgICAgcHBfY3h4X29mZnNldG9mX2V4cHJlc3Npb24gKGN4eF9wcCwgdCk7CisrICAg ICAgYnJlYWs7CisrCisgICAgICAgLyogIFRoaXMgbGlzdCBpcyBpbmNvbXBsZXRlLCBidXQgc2hv dWxkIHN1ZmZpY2UgZm9yIG5vdy4KKyAJICBJdCBpcyB2ZXJ5IGltcG9ydGFudCB0aGF0IGBzb3Jy eScgZG9lcyBub3QgY2FsbAorIAkgIGByZXBvcnRfZXJyb3JfZnVuY3Rpb24nLiAgVGhhdCBjb3Vs ZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLiAgKi8KKy0tLSBnY2MvY3AvY3h4LXByZXR0eS1wcmlu dC5jCShyZXZpc2lvbiAxMjk2NzYpCisrKysgZ2NjL2NwL2N4eC1wcmV0dHktcHJpbnQuYwkocmV2 aXNpb24gMTI5Njc3KQorQEAgLTM1Niw2ICszNTYsMTAgQEAgcHBfY3h4X3ByaW1hcnlfZXhwcmVz c2lvbiAoY3h4X3ByZXR0eV9wcgorICAgICAgIHBwX2N4eF9yaWdodF9wYXJlbiAocHApOworICAg ICAgIGJyZWFrOworIAorKyAgICBjYXNlIE9GRlNFVE9GX0VYUFI6CisrICAgICAgcHBfY3h4X29m ZnNldG9mX2V4cHJlc3Npb24gKHBwLCB0KTsKKysgICAgICBicmVhazsKKysKKyAgICAgZGVmYXVs dDoKKyAgICAgICBwcF9jX3ByaW1hcnlfZXhwcmVzc2lvbiAocHBfY19iYXNlIChwcCksIHQpOwor ICAgICAgIGJyZWFrOworQEAgLTE5NDQsNiArMTk0OCw0OSBAQCB0eXBlZGVmIGNfcHJldHR5X3By aW50X2ZuIHBwX2Z1bjsKKyAKKyAvKiBJbml0aWFsaXphdGlvbiBvZiBhIEMrKyBwcmV0dHktcHJp bnRlciBvYmplY3QuICAqLworIAorK3N0YXRpYyBib29sCisrcHBfY3h4X29mZnNldG9mX2V4cHJl c3Npb25fMSAoY3h4X3ByZXR0eV9wcmludGVyICpwcCwgdHJlZSB0KQorK3sKKysgIHN3aXRjaCAo VFJFRV9DT0RFICh0KSkKKysgICAgeworKyAgICBjYXNlIEFSUk9XX0VYUFI6CisrICAgICAgaWYg KFRSRUVfQ09ERSAoVFJFRV9PUEVSQU5EICh0LCAwKSkgPT0gU1RBVElDX0NBU1RfRVhQUgorKwkg ICYmIFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAodCwgMCkpKSkKKysJ eworKwkgIHBwX2N4eF90eXBlX2lkIChwcCwgVFJFRV9UWVBFIChUUkVFX1RZUEUgKFRSRUVfT1BF UkFORCAodCwgMCkpKSk7CisrCSAgcHBfY3h4X3NlcGFyYXRlX3dpdGggKHBwLCAnLCcpOworKwkg IHJldHVybiB0cnVlOworKwl9CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICBjYXNlIENPTVBP TkVOVF9SRUY6CisrICAgICAgaWYgKCFwcF9jeHhfb2Zmc2V0b2ZfZXhwcmVzc2lvbl8xIChwcCwg VFJFRV9PUEVSQU5EICh0LCAwKSkpCisrCXJldHVybiBmYWxzZTsKKysgICAgICBpZiAoVFJFRV9D T0RFIChUUkVFX09QRVJBTkQgKHQsIDApKSAhPSBBUlJPV19FWFBSKQorKwlwcF9jeHhfZG90IChw cCk7CisrICAgICAgcHBfY3h4X2V4cHJlc3Npb24gKHBwLCBUUkVFX09QRVJBTkQgKHQsIDEpKTsK KysgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgY2FzZSBBUlJBWV9SRUY6CisrICAgICAgaWYgKCFw cF9jeHhfb2Zmc2V0b2ZfZXhwcmVzc2lvbl8xIChwcCwgVFJFRV9PUEVSQU5EICh0LCAwKSkpCisr CXJldHVybiBmYWxzZTsKKysgICAgICBwcF9sZWZ0X2JyYWNrZXQgKHBwKTsKKysgICAgICBwcF9j eHhfZXhwcmVzc2lvbiAocHAsIFRSRUVfT1BFUkFORCAodCwgMSkpOworKyAgICAgIHBwX3JpZ2h0 X2JyYWNrZXQgKHBwKTsKKysgICAgICByZXR1cm4gdHJ1ZTsKKysgICAgZGVmYXVsdDoKKysgICAg ICByZXR1cm4gZmFsc2U7CisrICAgIH0KKyt9CisrCisrdm9pZAorK3BwX2N4eF9vZmZzZXRvZl9l eHByZXNzaW9uIChjeHhfcHJldHR5X3ByaW50ZXIgKnBwLCB0cmVlIHQpCisreworKyAgcHBfY3h4 X2lkZW50aWZpZXIgKHBwLCAib2Zmc2V0b2YiKTsKKysgIHBwX2N4eF9sZWZ0X3BhcmVuIChwcCk7 CisrICBpZiAoIXBwX2N4eF9vZmZzZXRvZl9leHByZXNzaW9uXzEgKHBwLCBUUkVFX09QRVJBTkQg KHQsIDApKSkKKysgICAgcHBfY3h4X2V4cHJlc3Npb24gKHBwLCBUUkVFX09QRVJBTkQgKHQsIDAp KTsKKysgIHBwX2N4eF9yaWdodF9wYXJlbiAocHApOworK30KKysKKyB2b2lkCisgcHBfY3h4X3By ZXR0eV9wcmludGVyX2luaXQgKGN4eF9wcmV0dHlfcHJpbnRlciAqcHApCisgeworLS0tIGdjYy9j cC9jeHgtcHJldHR5LXByaW50LmgJKHJldmlzaW9uIDEyOTY3NikKKysrKyBnY2MvY3AvY3h4LXBy ZXR0eS1wcmludC5oCShyZXZpc2lvbiAxMjk2NzcpCitAQCAtNzAsNiArNzAsNiBAQCB2b2lkIHBw X2N4eF9zZXBhcmF0ZV93aXRoIChjeHhfcHJldHR5X3ByCisgCisgdm9pZCBwcF9jeHhfZGVjbGFy YXRpb24gKGN4eF9wcmV0dHlfcHJpbnRlciAqLCB0cmVlKTsKKyB2b2lkIHBwX2N4eF9jYW5vbmlj YWxfdGVtcGxhdGVfcGFyYW1ldGVyIChjeHhfcHJldHR5X3ByaW50ZXIgKiwgdHJlZSk7CistCisr dm9pZCBwcF9jeHhfb2Zmc2V0b2ZfZXhwcmVzc2lvbiAoY3h4X3ByZXR0eV9wcmludGVyICosIHRy ZWUpOworIAorICNlbmRpZiAvKiBHQ0NfQ1hYX1BSRVRUWV9QUklOVF9IICovCistLS0gZ2NjL3Rl c3RzdWl0ZS9nKysuZGcvdGVtcGxhdGUvZXJyb3IzNC5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90 ZXN0c3VpdGUvZysrLmRnL3RlbXBsYXRlL2Vycm9yMzQuQwkocmV2aXNpb24gMTI5Njc3KQorQEAg LTAsMCArMSwyOSBAQAorKy8vIFBSIGMrKy8zMzg0MgorKy8vIHsgZGctZG8gY29tcGlsZSB9Cisr CisrdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEEKKyt7CisrICBBPF9fYnVpbHRpbl9vZmZz ZXRvZihULCB4KT4oKTsJLy8geyBkZy1lcnJvciAidHlwZS92YWx1ZSBtaXNtYXRjaHxvZmZzZXRv ZlxcKFQsIHhcXCkiIH0KKyt9OworKworK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBCCisr eworKyAgQjxfX2J1aWx0aW5fb2Zmc2V0b2YoVCwgeC55KT4oKTsJLy8geyBkZy1lcnJvciAidHlw ZS92YWx1ZSBtaXNtYXRjaHxvZmZzZXRvZlxcKFQsIHgueVxcKSIgfQorK307CisrCisrdGVtcGxh dGU8dHlwZW5hbWUgVD4gc3RydWN0IEMKKyt7CisrICBDPF9fYnVpbHRpbl9vZmZzZXRvZihULCB4 WzZdKT4oKTsJLy8geyBkZy1lcnJvciAidHlwZS92YWx1ZSBtaXNtYXRjaHxvZmZzZXRvZlxcKFQs IHhcXFxbNlxcXF1cXCkiIH0KKyt9OworKworK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBE CisreworKyAgRDxfX2J1aWx0aW5fb2Zmc2V0b2YoVCwgeC55WzZdLnopPigpOwkvLyB7IGRnLWVy cm9yICJ0eXBlL3ZhbHVlIG1pc21hdGNofG9mZnNldG9mXFwoVCwgeC55XFxcWzZcXFxdLnpcXCki IH0KKyt9OworKworK3N0cnVjdCBFIHsgaW50IHg7IH07CisrCisrdGVtcGxhdGU8dHlwZW5hbWUg VD4gc3RydWN0IEYKKyt7CisrICBGPF9fYnVpbHRpbl9vZmZzZXRvZihFLCB4KT4oKTsJLy8geyBk Zy1lcnJvciAidHlwZS92YWx1ZSBtaXNtYXRjaHxvZmZzZXRvZlxcKEUsIHhcXCkiIH0KKyt9OwoK ZGlmZiAtLWdpdCBhL2djYzQxLXByMzM4NDQucGF0Y2ggYi9nY2M0MS1wcjMzODQ0LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkNWQ4ODMKLS0tIC9kZXYvbnVsbAor KysgYi9nY2M0MS1wcjMzODQ0LnBhdGNoCkBAIC0wLDAgKzEsNTYgQEAKKzIwMDctMTAtMjcgIEph a3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgYysrLzMzODQ0CisJKiBjeHgt cHJldHR5LXByaW50LmMgKHBwX2N4eF9wbV9leHByZXNzaW9uKSA8Y2FzZSBNRU1CRVJfUkVGPjog UHJpbnQKKwktPiogcmF0aGVyIHRoYW4gLiouCisJKiBlcnJvci5jIChkdW1wX2V4cHIpOiBIYW5k bGUgTUVNQkVSX1JFRiBhbmQgRE9UU1RBUl9FWFBSLgorCisJKiBnKysuZGcvb3RoZXIvcHRybWVt OC5DOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jcC9lcnJvci5jCShyZXZpc2lvbiAxMjk2ODEpCisr KysgZ2NjL2NwL2Vycm9yLmMJKHJldmlzaW9uIDEyOTY4MikKK0BAIC0xODkxLDYgKzE4OTEsMTEg QEAgZHVtcF9leHByICh0cmVlIHQsIGludCBmbGFncykKKyAgICAgICBwcF9jeHhfb2Zmc2V0b2Zf ZXhwcmVzc2lvbiAoY3h4X3BwLCB0KTsKKyAgICAgICBicmVhazsKKyAKKysgICAgY2FzZSBNRU1C RVJfUkVGOgorKyAgICBjYXNlIERPVFNUQVJfRVhQUjoKKysgICAgICBwcF9tdWx0aXBsaWNhdGl2 ZV9leHByZXNzaW9uIChjeHhfcHAsIHQpOworKyAgICAgIGJyZWFrOworKworICAgICAgIC8qICBU aGlzIGxpc3QgaXMgaW5jb21wbGV0ZSwgYnV0IHNob3VsZCBzdWZmaWNlIGZvciBub3cuCisgCSAg SXQgaXMgdmVyeSBpbXBvcnRhbnQgdGhhdCBgc29ycnknIGRvZXMgbm90IGNhbGwKKyAJICBgcmVw b3J0X2Vycm9yX2Z1bmN0aW9uJy4gIFRoYXQgY291bGQgY2F1c2UgYW4gaW5maW5pdGUgbG9vcC4g ICovCistLS0gZ2NjL2NwL2N4eC1wcmV0dHktcHJpbnQuYwkocmV2aXNpb24gMTI5NjgxKQorKysr IGdjYy9jcC9jeHgtcHJldHR5LXByaW50LmMJKHJldmlzaW9uIDEyOTY4MikKK0BAIC04MTQsNyAr ODE0LDEwIEBAIHBwX2N4eF9wbV9leHByZXNzaW9uIChjeHhfcHJldHR5X3ByaW50ZXIKKyAgICAg Y2FzZSBNRU1CRVJfUkVGOgorICAgICBjYXNlIERPVFNUQVJfRVhQUjoKKyAgICAgICBwcF9jeHhf cG1fZXhwcmVzc2lvbiAocHAsIFRSRUVfT1BFUkFORCAodCwgMCkpOworLSAgICAgIHBwX2N4eF9k b3QgKHBwKTsKKysgICAgICBpZiAoVFJFRV9DT0RFICh0KSA9PSBNRU1CRVJfUkVGKQorKwlwcF9j eHhfYXJyb3cgKHBwKTsKKysgICAgICBlbHNlCisrCXBwX2N4eF9kb3QgKHBwKTsKKyAgICAgICBw cF9zdGFyKHBwKTsKKyAgICAgICBwcF9jeHhfY2FzdF9leHByZXNzaW9uIChwcCwgVFJFRV9PUEVS QU5EICh0LCAxKSk7CisgICAgICAgYnJlYWs7CistLS0gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3Ro ZXIvcHRybWVtOC5DCShyZXZpc2lvbiAwKQorKysrIGdjYy90ZXN0c3VpdGUvZysrLmRnL290aGVy L3B0cm1lbTguQwkocmV2aXNpb24gMTI5NjgyKQorQEAgLTAsMCArMSwxNiBAQAorKy8vIFBSIGMr Ky8zMzg0NAorKy8vIHsgZGctZG8gY29tcGlsZSB9CisrCisrc3RydWN0IEEge307CisrCisrdGVt cGxhdGU8aW50PiB2b2lkIGZvbyh2b2lkIChBOjoqIGYpKCkpCisreworKyAgQSBhOworKyAgJihh LipmKTsJLy8geyBkZy1lcnJvciAiaW52YWxpZCB1c2Ugb2ZcW15cblxdKlxcLlxcKlxbXlxuXF0q dG8gZm9ybXxxdWFsaWZpZWQtaWQgaXMgcmVxdWlyZWQiIH0KKyt9CisrCisrdGVtcGxhdGU8aW50 PiB2b2lkIGJhcih2b2lkIChBOjoqIGYpKCkpCisreworKyAgQSAqcDsKKysgICYocC0+KmYpOwkv LyB7IGRnLWVycm9yICJpbnZhbGlkIHVzZSBvZlxbXlxuXF0qLT5cXCpcW15cblxdKnRvIGZvcm18 cXVhbGlmaWVkLWlkIGlzIHJlcXVpcmVkIiB9CisrfQoKZGlmZiAtLWdpdCBhL2djYzQxLXByMzM5 NjIucGF0Y2ggYi9nY2M0MS1wcjMzOTYyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmVjZDgzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1wcjMzOTYyLnBhdGNo CkBAIC0wLDAgKzEsMzkgQEAKKzIwMDctMTEtMjAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRo YXQuY29tPgorCisJUFIgYysrLzMzOTYyCisJKiBwdC5jIChtb3JlX3NwZWNpYWxpemVkX2ZuKTog RG9uJ3Qgc2VnZmF1bHQgaWYgb25lIG9yCisJYm90aCBhcmd1bWVudCBsaXN0IGVuZCB3aXRoIGVs bGlwc2lzLgorCisJKiBnKysuZGcvb3ZlcmxvYWQvdGVtcGxhdGUzLkM6IE5ldyB0ZXN0LgorCist LS0gZ2NjL2NwL3B0LmMJKHJldmlzaW9uIDEzMDMwNykKKysrKyBnY2MvY3AvcHQuYwkocmV2aXNp b24gMTMwMzA4KQorQEAgLTEzNTIzLDYgKzEzNTIzLDEwIEBAIG1vcmVfc3BlY2lhbGl6ZWRfZm4g KHRyZWUgcGF0MSwgdHJlZSBwYXQKKyAKKyAgICAgICBhcmdzMSA9IFRSRUVfQ0hBSU4gKGFyZ3Mx KTsKKyAgICAgICBhcmdzMiA9IFRSRUVfQ0hBSU4gKGFyZ3MyKTsKKysKKysgICAgICAvKiBTdG9w IHdoZW4gYW4gZWxsaXBzaXMgaXMgc2Vlbi4gICovCisrICAgICAgaWYgKGFyZ3MxID09IE5VTExf VFJFRSB8fCBhcmdzMiA9PSBOVUxMX1RSRUUpCisrCWJyZWFrOworICAgICB9CisgCisgICBwcm9j ZXNzaW5nX3RlbXBsYXRlX2RlY2wtLTsKKy0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdmVybG9h ZC90ZW1wbGF0ZTMuQwkocmV2aXNpb24gMCkKKysrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdmVy bG9hZC90ZW1wbGF0ZTMuQwkocmV2aXNpb24gMTMwMzA4KQorQEAgLTAsMCArMSwxNSBAQAorKy8v IFBSIGMrKy8zMzk2MgorKy8vIHsgZGctZG8gY29tcGlsZSB9CisrCisrdGVtcGxhdGUgPGNsYXNz IFQ+IHN0cnVjdCBBOworKworK3RlbXBsYXRlIDxjbGFzcyBVPiB2b2lkIGZvbyAoY29uc3QgVSAm eCwgLi4uKTsKKyt0ZW1wbGF0ZSA8Y2xhc3MgVD4gdm9pZCBmb28gKGNvbnN0IEE8VD4gJngsIC4u Lik7CisrCisrdm9pZCBiYXIgKGNvbnN0IEE8aW50PiAmeCwgY29uc3QgY2hhciAqeSkKKyt7Cisr ICBmb28gKHgsIHkpOworK30KKysKKysvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIl9a M2Zvb0lpRXZSSzFBSVRfRXoiIH0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3QgIl9aM2Zvb0kxQUlpRUV2UktUX3oiIH0gfSAqLwoKZGlmZiAtLWdpdCBhL2djYzQxLXBy MzQwNzAucGF0Y2ggYi9nY2M0MS1wcjM0MDcwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmI4YjFmNmEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2M0MS1wcjM0MDcwLnBh dGNoCkBAIC0wLDAgKzEsNjIgQEAKKzIwMDctMTEtMTIgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3Vl bnRoZXJAc3VzZS5kZT4KKworCVBSIG1pZGRsZS1lbmQvMzQwNzAKKwkqIGZvbGQtY29uc3QuYyAo Zm9sZF9iaW5hcnkpOiBJZiB0ZXN0aW5nIGZvciBub24tbmVnYXRpdmUKKwlvcGVyYW5kcyB3aXRo IHRyZWVfZXhwcl9ub25uZWdhdGl2ZV93YXJudl9wIG1ha2Ugc3VyZSB0bworCXVzZSBvcDAgd2hp Y2ggaGFzIGFsbCAoc2lnbikgY29udmVyc2lvbnMgcmV0YWluZWQuCisKKwkqIGdjYy5jLXRvcnR1 cmUvZXhlY3V0ZS9wcjM0MDcwLTEuYzogTmV3IHRlc3RjYXNlLgorCSogZ2NjLmMtdG9ydHVyZS9l eGVjdXRlL3ByMzQwNzAtMi5jOiBMaWtld2lzZS4KKworLS0tIGdjYy9mb2xkLWNvbnN0LmMJKHJl dmlzaW9uIDEzMDA5NykKKysrKyBnY2MvZm9sZC1jb25zdC5jCShyZXZpc2lvbiAxMzAwOTgpCitA QCAtODUwOSw3ICs4NTA5LDcgQEAgZm9sZF9iaW5hcnkgKGVudW0gdHJlZV9jb2RlIGNvZGUsIHRy ZWUgdAorICAgICAgIC8qIFNpbXBsaWZ5IEEgLyAoQiA8PCBOKSB3aGVyZSBBIGFuZCBCIGFyZSBw b3NpdGl2ZSBhbmQgQiBpcworIAkgYSBwb3dlciBvZiAyLCB0byBBID4+IChOICsgbG9nMihCKSku ICAqLworICAgICAgIGlmIChUUkVFX0NPREUgKGFyZzEpID09IExTSElGVF9FWFBSCistCSAgJiYg KFRZUEVfVU5TSUdORUQgKHR5cGUpIHx8IHRyZWVfZXhwcl9ub25uZWdhdGl2ZV9wIChhcmcwKSkp CisrCSAgJiYgKFRZUEVfVU5TSUdORUQgKHR5cGUpIHx8IHRyZWVfZXhwcl9ub25uZWdhdGl2ZV9w IChvcDApKSkKKyAJeworIAkgIHRyZWUgc3ZhbCA9IFRSRUVfT1BFUkFORCAoYXJnMSwgMCk7Cisg CSAgaWYgKGludGVnZXJfcG93MnAgKHN2YWwpICYmIHRyZWVfaW50X2NzdF9zZ24gKHN2YWwpID4g MCkKK0BAIC04NTg0LDcgKzg1ODQsNyBAQCBmb2xkX2JpbmFyeSAoZW51bSB0cmVlX2NvZGUgY29k ZSwgdHJlZSB0CisgICAgICAgLyogT3B0aW1pemUgVFJVTkNfTU9EX0VYUFIgYnkgYSBwb3dlciBv ZiB0d28gaW50byBhIEJJVF9BTkRfRVhQUiwKKyAgICAgICAgICBpLmUuICJYICUgQyIgaW50byAi WCAmIChDIC0gMSkiLCBpZiBYIGFuZCBDIGFyZSBwb3NpdGl2ZS4gICovCisgICAgICAgaWYgKChj b2RlID09IFRSVU5DX01PRF9FWFBSIHx8IGNvZGUgPT0gRkxPT1JfTU9EX0VYUFIpCistCSAgJiYg KFRZUEVfVU5TSUdORUQgKHR5cGUpIHx8IHRyZWVfZXhwcl9ub25uZWdhdGl2ZV9wIChhcmcwKSkp CisrCSAgJiYgKFRZUEVfVU5TSUdORUQgKHR5cGUpIHx8IHRyZWVfZXhwcl9ub25uZWdhdGl2ZV9w IChvcDApKSkKKyAJeworIAkgIHRyZWUgYyA9IGFyZzE7CisgCSAgLyogQWxzbyBvcHRpbWl6ZSBB ICUgKEMgPDwgTikgIHdoZXJlIEMgaXMgYSBwb3dlciBvZiAyLAorLS0tIGdjYy90ZXN0c3VpdGUv Z2NjLmMtdG9ydHVyZS9leGVjdXRlL3ByMzQwNzAtMS5jCShyZXZpc2lvbiAwKQorKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlL3ByMzQwNzAtMS5jCShyZXZpc2lvbiAxMzAw OTgpCitAQCAtMCwwICsxLDEzIEBACisrZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOworKworK2lu dCBmKHVuc2lnbmVkIGludCB4KQorK3sKKysgICAgcmV0dXJuICgoaW50KXgpICUgNDsKKyt9Cisr CisraW50IG1haW4oKQorK3sKKysgIGlmIChmKC0xKSAhPSAtMSkKKysgICAgYWJvcnQgKCk7Cisr ICByZXR1cm4gMDsKKyt9CistLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUv cHIzNDA3MC0yLmMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJl L2V4ZWN1dGUvcHIzNDA3MC0yLmMJKHJldmlzaW9uIDEzMDA5OCkKK0BAIC0wLDAgKzEsMTMgQEAK KytleHRlcm4gdm9pZCBhYm9ydCAodm9pZCk7CisrCisraW50IGYodW5zaWduZWQgaW50IHgsIGlu dCBuKQorK3sKKysgICAgcmV0dXJuICgoaW50KXgpIC8gKDEgPDwgbik7CisrfQorKworK2ludCBt YWluKCkKKyt7CisrICBpZiAoZigtMSwgMSkgIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICByZXR1 cm4gMDsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcHIzNDA4OS5wYXRjaCBiL2djYzQxLXByMzQw ODkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZmZjljZgotLS0g L2Rldi9udWxsCisrKyBiL2djYzQxLXByMzQwODkucGF0Y2gKQEAgLTAsMCArMSwzOSBAQAorMjAw Ny0xMS0yMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBjKysvMzQw ODkKKwkqIHBhcnNlci5jIChjcF9wYXJzZXJfY2xhc3NfaGVhZCk6IFJlamVjdCBmdW5jdGlvbiB0 ZW1wbGF0ZSBpZHMuCisKKwkqIGcrKy5kZy90ZW1wbGF0ZS9jcmFzaDc0LkM6IE5ldyB0ZXN0Lgor CistLS0gZ2NjL2NwL3BhcnNlci5jCShyZXZpc2lvbiAxMzAzMTUpCisrKysgZ2NjL2NwL3BhcnNl ci5jCShyZXZpc2lvbiAxMzAzMTYpCitAQCAtMTQ1MzYsOCArMTQ1MzYsMTggQEAgY3BfcGFyc2Vy X2NsYXNzX2hlYWQgKGNwX3BhcnNlciogcGFyc2VyLAorICAgLyogTG9vayB1cCB0aGUgdHlwZS4g ICovCisgICBpZiAodGVtcGxhdGVfaWRfcCkKKyAgICAgeworLSAgICAgIHR5cGUgPSBUUkVFX1RZ UEUgKGlkKTsKKy0gICAgICB0eXBlID0gbWF5YmVfcHJvY2Vzc19wYXJ0aWFsX3NwZWNpYWxpemF0 aW9uICh0eXBlKTsKKysgICAgICBpZiAoVFJFRV9DT0RFIChpZCkgPT0gVEVNUExBVEVfSURfRVhQ UgorKwkgICYmIChERUNMX0ZVTkNUSU9OX1RFTVBMQVRFX1AgKFRSRUVfT1BFUkFORCAoaWQsIDAp KQorKwkgICAgICB8fCBUUkVFX0NPREUgKFRSRUVfT1BFUkFORCAoaWQsIDApKSA9PSBPVkVSTE9B RCkpCisrCXsKKysJICBlcnJvciAoImZ1bmN0aW9uIHRlbXBsYXRlICVxRCByZWRlY2xhcmVkIGFz IGEgY2xhc3MgdGVtcGxhdGUiLCBpZCk7CisrCSAgdHlwZSA9IGVycm9yX21hcmtfbm9kZTsKKysJ fQorKyAgICAgIGVsc2UKKysJeworKwkgIHR5cGUgPSBUUkVFX1RZUEUgKGlkKTsKKysJICB0eXBl ID0gbWF5YmVfcHJvY2Vzc19wYXJ0aWFsX3NwZWNpYWxpemF0aW9uICh0eXBlKTsKKysJfQorICAg ICAgIGlmIChuZXN0ZWRfbmFtZV9zcGVjaWZpZXIpCisgCXB1c2hlZF9zY29wZSA9IHB1c2hfc2Nv cGUgKG5lc3RlZF9uYW1lX3NwZWNpZmllcik7CisgICAgIH0KKy0tLSBnY2MvdGVzdHN1aXRlL2cr Ky5kZy90ZW1wbGF0ZS9jcmFzaDc0LkMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9n KysuZGcvdGVtcGxhdGUvY3Jhc2g3NC5DCShyZXZpc2lvbiAxMzAzMTYpCitAQCAtMCwwICsxLDYg QEAKKysvLyBQUiBjKysvMzQwODkKKysvLyB7IGRnLWRvIGNvbXBpbGUgfQorKy8vIHsgZGctb3B0 aW9ucyAiIiB9CisrCisrdGVtcGxhdGU8dHlwZW5hbWUgRj4gdm9pZCBmb28gKCkgeyB9CisrdGVt cGxhdGU8dHlwZW5hbWUgRj4gc3RydWN0IGZvbzxGPiB7IH07CS8vIHsgZGctZXJyb3IgInJlZGVj bGFyZWQgYXMiIH0KCmRpZmYgLS1naXQgYS9nY2M0MS1wcjM0MDk0LnBhdGNoIGIvZ2NjNDEtcHIz NDA5NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDRhMzhjCi0t LSAvZGV2L251bGwKKysrIGIvZ2NjNDEtcHIzNDA5NC5wYXRjaApAQCAtMCwwICsxLDYwIEBACisy MDA3LTExLTIyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIGMrKy8z NDA5NAorCSogZGVjbDIuYyAoY3Bfd3JpdGVfZ2xvYmFsX2RlY2xhcmF0aW9ucyk6IElzc3VlIGVy cm9yIGFib3V0IHN0YXRpYworCWRhdGEgbWVtYmVycyBpbiBhbm9ueW1vdXMgbmFtZXNwYWNlIHdo aWNoIGFyZSBkZWNsYXJlZCBhbmQgdXNlZCwKKwlidXQgbm90IGRlZmluZWQuCisKKwkqIGcrKy5k Zy9leHQvdmlzaWJpbGl0eS9hbm9uNy5DOiBOZXcgdGVzdC4KKworLS0tIGdjYy9jcC9kZWNsMi5j CShyZXZpc2lvbiAxMzAzNTApCisrKysgZ2NjL2NwL2RlY2wyLmMJKHJldmlzaW9uIDEzMDM1MSkK K0BAIC0zMzY1LDcgKzMzNjUsMjEgQEAgY3Bfd3JpdGVfZ2xvYmFsX2RlY2xhcmF0aW9ucyAodm9p ZCkKKyAJICAvKiBJZiB0aGlzIHN0YXRpYyBkYXRhIG1lbWJlciBpcyBuZWVkZWQsIHByb3ZpZGUg aXQgdG8gdGhlCisgCSAgICAgYmFjayBlbmQuICAqLworIAkgIGlmIChERUNMX05PVF9SRUFMTFlf RVhURVJOIChkZWNsKSAmJiBkZWNsX25lZWRlZF9wIChkZWNsKSkKKy0JICAgIERFQ0xfRVhURVJO QUwgKGRlY2wpID0gMDsKKysJICAgIHsKKysJICAgICAgLyogRXJyb3Igb24KKysJCSBuYW1lc3Bh Y2UgeyBzdHJ1Y3QgQSB7IHN0YXRpYyBpbnQgaTsgfTsgfQorKwkJIGludCBmb28gKCkgeyByZXR1 cm4gQTo6aTsgfQorKwkJIHdpdGhvdXQgQTo6aSBkZWZpbml0aW9uICh3aGljaCBjYW4ndCBiZSBk ZWZpbmVkIGluCisrCQkgYSBkaWZmZXJlbnQgQ1UgYmVjYXVzZSBvZiB0aGUgYW5vbnltb3VzIG5h bWVzcGFjZSkuCisrCQkgRG9uJ3QgZG8gdGhpcyBpZiBERUNMX0lOSVRJQUwgaXMgc2V0LCBiZWNh dXNlIGZvcgorKwkJIG5hbWVzcGFjZSB7IHN0cnVjdCBBIHsgc3RhdGljIGNvbnN0IGludCBpID0g NDsgfSB9OworKwkJIGRlY2xfbmVlZGVkX3Agd29uJ3QgcmVsaWFibHkgZGV0ZWN0IHdoZXRoZXIg aXQgd2FzCisrCQkgcmVhbGx5IG5lZWRlZC4gICovCisrCSAgICAgIGlmIChERUNMX0lOX0FHR1Jf UCAoZGVjbCkgJiYgREVDTF9JTklUSUFMIChkZWNsKSA9PSBOVUxMX1RSRUUpCisrCQllcnJvciAo IiVKc3RhdGljIGRhdGEgbWVtYmVyICVxRCB1c2VkLCBidXQgbm90IGRlZmluZWQiLAorKwkJICAg ICAgIGRlY2wsIGRlY2wpOworKwkgICAgICBERUNMX0VYVEVSTkFMIChkZWNsKSA9IDA7CisrCSAg ICB9CisgCX0KKyAgICAgICBpZiAoVkVDX2xlbmd0aCAodHJlZSwgcGVuZGluZ19zdGF0aWNzKSAh PSAwCisgCSAgJiYgd3JhcHVwX2dsb2JhbF9kZWNsYXJhdGlvbnMgKFZFQ19hZGRyZXNzICh0cmVl LCBwZW5kaW5nX3N0YXRpY3MpLAorLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC92aXNpYmls aXR5L2Fub243LkMJKHJldmlzaW9uIDApCisrKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Zp c2liaWxpdHkvYW5vbjcuQwkocmV2aXNpb24gMTMwMzUxKQorQEAgLTAsMCArMSwyMyBAQAorKy8v IFBSIGMrKy8zNDA5NAorKy8vIHsgZGctZG8gY29tcGlsZSB9CisrCisrbmFtZXNwYWNlCisrewor KyAgc3RydWN0IEEgeworKyAgICBzdGF0aWMgaW50IGJhciAoKTsKKysgICAgc3RhdGljIGludCBp OwkJLy8geyBkZy1lcnJvciAidXNlZCwgYnV0IG5vdCBkZWZpbmVkIiB9CisrICAgIHN0YXRpYyBp bnQgajsKKysgICAgc3RhdGljIGludCBrOworKyAgICBzdGF0aWMgaW50IGw7CisrICAgIHN0YXRp YyBjb25zdCBpbnQgbSA9IDE2OworKyAgICBzdGF0aWMgY29uc3QgaW50IG4gPSAxNzsKKysgIH07 CisrICBpbnQgQTo6aiA9IDQ7CisrICBpbnQgQTo6azsKKysgIGNvbnN0IGludCBBOjptOworK30K KysKKytpbnQgZm9vICh2b2lkKQorK3sKKysgIHJldHVybiBBOjppICsgQTo6aiArIEE6OmsgKyBB OjptICsgQTo6biArIEE6OmJhciAoKTsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcHIzNDEzMC5w YXRjaCBiL2djYzQxLXByMzQxMzAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZjY3ZjhhZQotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXByMzQxMzAucGF0Y2gKQEAg LTAsMCArMSwzNSBAQAorMjAwNy0xMS0xNyAgUmljaGFyZCBHdWVudGhlciAgPHJndWVudGhlckBz dXNlLmRlPgorCisJUFIgbWlkZGxlLWVuZC8zNDEzMAorCSogZm9sZC1jb25zdC5jIChleHRyYWN0 X211bGRpdl8xKTogRG8gbm90IG1vdmUgbmVnYXRpdmUKKwljb25zdGFudHMgaW5zaWRlIEFCU19F WFBSLgorCisJKiBnY2MuYy10b3J0dXJlL2V4ZWN1dGUvcHIzNDEzMC5jOiBOZXcgdGVzdGNhc2Uu CisKKy0tLSBnY2MvZm9sZC1jb25zdC5jCShyZXZpc2lvbiAxMzAyNTcpCisrKysgZ2NjL2ZvbGQt Y29uc3QuYwkocmV2aXNpb24gMTMwMjU4KQorQEAgLTYwOTUsNiArNjA5NSw5IEBAIGV4dHJhY3Rf bXVsZGl2XzEgKHRyZWUgdCwgdHJlZSBjLCBlbnVtIHQKKyAgICAgICAgICAgICB9CisgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgfQorKyAgICAgIC8qIElmIHRoZSBjb25zdGFudCBpcyBuZWdh dGl2ZSwgd2UgY2Fubm90IHNpbXBsaWZ5IHRoaXMuICAqLworKyAgICAgIGlmICh0cmVlX2ludF9j c3Rfc2duIChjKSA9PSAtMSkKKysgICAgICAgIGJyZWFrOworICAgICAgIC8qIEZBTExUSFJPVUdI ICovCisgICAgIGNhc2UgTkVHQVRFX0VYUFI6CisgICAgICAgaWYgKCh0MSA9IGV4dHJhY3RfbXVs ZGl2IChvcDAsIGMsIGNvZGUsIHdpZGVfdHlwZSwgc3RyaWN0X292ZXJmbG93X3ApKQorLS0tIGdj Yy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlL3ByMzQxMzAuYwkocmV2aXNpb24gMCkK KysrKyBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS9wcjM0MTMwLmMJKHJldmlz aW9uIDEzMDI1OCkKK0BAIC0wLDAgKzEsMTIgQEAKKytleHRlcm4gdm9pZCBhYm9ydCAodm9pZCk7 CisraW50IGZvbyAoaW50IGkpCisreworKyAgcmV0dXJuIC0yICogX19idWlsdGluX2FicyhpIC0g Mik7CisrfQorK2ludCBtYWluKCkKKyt7CisrICBpZiAoZm9vKDEpICE9IC0yCisrICAgICAgfHwg Zm9vKDMpICE9IC0yKQorKyAgICBhYm9ydCAoKTsKKysgIHJldHVybiAwOworK30KCmRpZmYgLS1n aXQgYS9nY2M0MS1wcjM0MTQ2LnBhdGNoIGIvZ2NjNDEtcHIzNDE0Ni5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDgzMGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Nj NDEtcHIzNDE0Ni5wYXRjaApAQCAtMCwwICsxLDEzMyBAQAorMjAwNy0xMS0yMCAgSmFrdWIgSmVs aW5layAgPGpha3ViQHJlZGhhdC5jb20+CisKKwlQUiBjLzM0MTQ2CisJKiBjLWdpbXBsaWZ5LmMg KG9wdGltaXplX2NvbXBvdW5kX2xpdGVyYWxzX2luX2N0b3IpOiBOZXcgZnVuY3Rpb24uCisJKGNf Z2ltcGxpZnlfZXhwcik6IFVzZSBpdC4KKworCSogZ2NjLmRnL3RyZWUtc3NhL3ByMzQxNDYuYzog TmV3IHRlc3QuCisgCistLS0gZ2NjL2MtZ2ltcGxpZnkuYwkocmV2aXNpb24gMTMwMzEwKQorKysr IGdjYy9jLWdpbXBsaWZ5LmMJKHJldmlzaW9uIDEzMDMxMSkKK0BAIC0yMDgsNiArMjA4LDQ3IEBA IGdpbXBsaWZ5X2NvbXBvdW5kX2xpdGVyYWxfZXhwciAodHJlZSAqZXgKKyAgIHJldHVybiBHU19P SzsKKyB9CisgCisrLyogT3B0aW1pemUgZW1iZWRkZWQgQ09NUE9VTkRfTElURVJBTF9FWFBScyB3 aXRoaW4gYSBDT05TVFJVQ1RPUiwKKysgICByZXR1cm4gYSBuZXcgQ09OU1RSVUNUT1IgaWYgc29t ZXRoaW5nIGNoYW5nZWQuICAqLworKworK3N0YXRpYyB0cmVlCisrb3B0aW1pemVfY29tcG91bmRf bGl0ZXJhbHNfaW5fY3RvciAodHJlZSBvcmlnX2N0b3IpCisreworKyAgdHJlZSBjdG9yID0gb3Jp Z19jdG9yOworKyAgVkVDKGNvbnN0cnVjdG9yX2VsdCxnYykgKmVsdHMgPSBDT05TVFJVQ1RPUl9F TFRTIChjdG9yKTsKKysgIHVuc2lnbmVkIGludCBpZHgsIG51bSA9IFZFQ19sZW5ndGggKGNvbnN0 cnVjdG9yX2VsdCwgZWx0cyk7CisrCisrICBmb3IgKGlkeCA9IDA7IGlkeCA8IG51bTsgaWR4Kysp CisrICAgIHsKKysgICAgICB0cmVlIHZhbHVlID0gVkVDX2luZGV4IChjb25zdHJ1Y3Rvcl9lbHQs IGVsdHMsIGlkeCktPnZhbHVlOworKyAgICAgIHRyZWUgbmV3dmFsID0gdmFsdWU7CisrICAgICAg aWYgKFRSRUVfQ09ERSAodmFsdWUpID09IENPTlNUUlVDVE9SKQorKwluZXd2YWwgPSBvcHRpbWl6 ZV9jb21wb3VuZF9saXRlcmFsc19pbl9jdG9yICh2YWx1ZSk7CisrICAgICAgZWxzZSBpZiAoVFJF RV9DT0RFICh2YWx1ZSkgPT0gQ09NUE9VTkRfTElURVJBTF9FWFBSKQorKwl7CisrCSAgdHJlZSBk ZWNsX3MgPSBDT01QT1VORF9MSVRFUkFMX0VYUFJfREVDTF9TVE1UICh2YWx1ZSk7CisrCSAgdHJl ZSBkZWNsID0gREVDTF9FWFBSX0RFQ0wgKGRlY2xfcyk7CisrCSAgdHJlZSBpbml0ID0gREVDTF9J TklUSUFMIChkZWNsKTsKKysKKysJICBpZiAoIVRSRUVfQUREUkVTU0FCTEUgKHZhbHVlKQorKwkg ICAgICAmJiAhVFJFRV9BRERSRVNTQUJMRSAoZGVjbCkKKysJICAgICAgJiYgaW5pdCkKKysJICAg IG5ld3ZhbCA9IGluaXQ7CisrCX0KKysgICAgICBpZiAobmV3dmFsID09IHZhbHVlKQorKwljb250 aW51ZTsKKysKKysgICAgICBpZiAoY3RvciA9PSBvcmlnX2N0b3IpCisrCXsKKysJICBjdG9yID0g Y29weV9ub2RlIChvcmlnX2N0b3IpOworKwkgIENPTlNUUlVDVE9SX0VMVFMgKGN0b3IpID0gVkVD X2NvcHkgKGNvbnN0cnVjdG9yX2VsdCwgZ2MsIGVsdHMpOworKwkgIGVsdHMgPSBDT05TVFJVQ1RP Ul9FTFRTIChjdG9yKTsKKysJfQorKyAgICAgIFZFQ19pbmRleCAoY29uc3RydWN0b3JfZWx0LCBl bHRzLCBpZHgpLT52YWx1ZSA9IG5ld3ZhbDsKKysgICAgfQorKyAgcmV0dXJuIGN0b3I7CisrfQor KworIC8qIERvIEMtc3BlY2lmaWMgZ2ltcGxpZmljYXRpb24uICBBcmdzIGFyZSBhcyBmb3IgZ2lt cGxpZnlfZXhwci4gICovCisgCisgaW50CitAQCAtMjU0LDYgKzI5NSwxOCBAQCBjX2dpbXBsaWZ5 X2V4cHIgKHRyZWUgKmV4cHJfcCwgdHJlZSAqcHJlCisgCSAgICAgIHJldHVybiBHU19PSzsKKyAJ ICAgIH0KKyAJfQorKyAgICAgIGVsc2UgaWYgKFRSRUVfQ09ERSAoVFJFRV9PUEVSQU5EICgqZXhw cl9wLCAxKSkgPT0gQ09OU1RSVUNUT1IpCisrCXsKKysJICB0cmVlIGN0b3IKKysJICAgID0gb3B0 aW1pemVfY29tcG91bmRfbGl0ZXJhbHNfaW5fY3RvciAoVFJFRV9PUEVSQU5EICgqZXhwcl9wLCAx KSk7CisrCisrCSAgaWYgKGN0b3IgIT0gVFJFRV9PUEVSQU5EICgqZXhwcl9wLCAxKSkKKysJICAg IHsKKysJICAgICAgKmV4cHJfcCA9IGNvcHlfbm9kZSAoKmV4cHJfcCk7CisrCSAgICAgIFRSRUVf T1BFUkFORCAoKmV4cHJfcCwgMSkgPSBjdG9yOworKwkgICAgICByZXR1cm4gR1NfT0s7CisrCSAg ICB9CisrCX0KKyAgICAgICByZXR1cm4gR1NfVU5IQU5ETEVEOworIAorICAgICBkZWZhdWx0Ogor LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByMzQxNDYuYwkocmV2aXNpb24gMCkK KysrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wcjM0MTQ2LmMJKHJldmlzaW9uIDEz MDMxMSkKK0BAIC0wLDAgKzEsNTMgQEAKKysvKiBQUiBjLzM0MTQ2ICovCisrLyogeyBkZy1kbyBj b21waWxlIH0gKi8KKysvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZmR1bXAtdHJlZS1naW1wbGUiIH0g Ki8KKysKKytzdHJ1Y3QgQQorK3sKKysgIGludCBmMSwgZjIsIGYzOworK307CisrCisrc3RydWN0 IEIKKyt7CisrICBzdHJ1Y3QgQSBnMSwgZzI7CisrfTsKKysKKytzdHJ1Y3QgQworK3sKKysgIHN0 cnVjdCBCIGgxLCBoMjsKKyt9OworKworK3R5cGVkZWYgdW5pb24KKyt7CisrICBzdHJ1Y3QgQyBj OworKyAgY2hhciBzWzRdOworKyAgbG9uZyBpbnQgYTsKKyt9IFQ7CisrCisrdm9pZAorK2ZvbyAo dm9pZCkKKyt7CisrICBUIHQgPSB7IHsgeyB7IDAsIDAsIDAgfSwgeyAwLCAwLCAwIH0gfSwgeyB7 IDAsIDAsIDAgfSwgeyAwLCAwLCAwIH0gfSB9IH07CisrICB0ZXN0ICgmdCk7CisrfQorKworK3Zv aWQKKytiYXIgKHZvaWQpCisreworKyAgVCB0ID0geyB7IHsgeyAwLCAwLCAwIH0sIChzdHJ1Y3Qg QSkgeyAwLCAwLCAwIH0gfSwKKysJICAgIChzdHJ1Y3QgQikgeyAoc3RydWN0IEEpIHsgMCwgMCwg MCB9LCB7IDAsIDAsIDAgfSB9IH0gfTsKKysgIHRlc3QgKCZ0KTsKKyt9CisrCisrdm9pZAorK2Jh eiAodm9pZCkKKyt7CisrICBUIHQgPSB7IHsgeyB7IDAsIDAsIDAgfSwgKHN0cnVjdCBBKSB7IDEs IDEsIDEgfSB9LAorKwkgICAgKHN0cnVjdCBCKSB7IChzdHJ1Y3QgQSkgeyAwLCAwLCAwIH0sIHsg MSwgMSwgMSB9IH0gfSB9OworKyAgdGVzdCAoJnQpOworK30KKysKKysvKiB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtbm90ICJ0ID0gRCIgImdpbXBsZSJ9IH0gKi8KKysvKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtbm90ICJ0XC5jXC5oXFsxMlxdID0gRCIgImdpbXBsZSJ9IH0gKi8K KysvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJcLmdcWzEyXF0gPSBEIiAiZ2lt cGxlIn0gfSAqLworKy8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAiZ2ltcGxlIiB9 IH0gKi8KCmRpZmYgLS1naXQgYS9nY2M0MS1yaDM0MTIyMS5wYXRjaCBiL2djYzQxLXJoMzQxMjIx LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NjE1NGYKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2M0MS1yaDM0MTIyMS5wYXRjaApAQCAtMCwwICsxLDI4IEBACisyMDA3 LTEwLTIxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogZG9jL01ha2Vm aWxlLmFtIChQT0QyTUFOKTogU2V0IGRhdGUgZnJvbSBjcC10b29scy50ZXhpbmZvCisJdGltZXN0 YW1wIHJhdGhlciB0aGFuIGZyb20gY3VycmVudCBkYXRlLgorCSogZG9jL01ha2VmaWxlLmluOiBS ZWdlbmVyYXRlZC4KKworLS0tIGxpYmphdmEvY2xhc3NwYXRoL2RvYy9NYWtlZmlsZS5hbS5qagky MDA3LTAzLTI5IDEyOjIzOjA1LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvY2xhc3NwYXRo L2RvYy9NYWtlZmlsZS5hbQkyMDA3LTEwLTIxIDEzOjIzOjE3LjAwMDAwMDAwMCArMDIwMAorQEAg LTMxLDcgKzMxLDcgQEAgVE9PTFNfTUFORklMRVMgPSBcCisgQkFTRVZFUiA9ICQodG9wX3NyY2Rp cikvLi4vLi4vZ2NjL0JBU0UtVkVSCisgREVWUEhBU0UgPSAkKHRvcF9zcmNkaXIpLy4uLy4uL2dj Yy9ERVYtUEhBU0UKKyAKKy1QT0QyTUFOID0gcG9kMm1hbiAtLWNlbnRlcj0iR05VIiAtLXJlbGVh c2U9ImdjYy0kKHNoZWxsIGNhdCAkKEJBU0VWRVIpKSIKKytQT0QyTUFOID0gcG9kMm1hbiAtLWNl bnRlcj0iR05VIiAtLXJlbGVhc2U9ImdjYy0kKHNoZWxsIGNhdCAkKEJBU0VWRVIpKSIgLS1kYXRl PSIkKHNoZWxsIGxzIC0tdGltZS1zdHlsZT0rJUYgLWwgJChzcmNkaXIpL2NwLXRvb2xzLnRleGlu Zm8gfCBhd2sgJ3twcmludCAkJDZ9JykiCisgVEVYSTJQT0QgPSBwZXJsICQodG9wX3NyY2Rpcikv Li4vLi4vY29udHJpYi90ZXhpMnBvZC5wbAorIFNUQU1QID0gZWNobyB0aW1lc3RhbXAgPgorIAor LS0tIGxpYmphdmEvY2xhc3NwYXRoL2RvYy9NYWtlZmlsZS5pbi5qagkyMDA3LTAzLTI5IDEyOjIz OjA1LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmphdmEvY2xhc3NwYXRoL2RvYy9NYWtlZmlsZS5p bgkyMDA3LTEwLTIxIDEzOjI0OjAwLjAwMDAwMDAwMCArMDIwMAorQEAgLTMxNyw3ICszMTcsNyBA QCBUT09MU19NQU5GSUxFUyA9IFwKKyAKKyBCQVNFVkVSID0gJCh0b3Bfc3JjZGlyKS8uLi8uLi9n Y2MvQkFTRS1WRVIKKyBERVZQSEFTRSA9ICQodG9wX3NyY2RpcikvLi4vLi4vZ2NjL0RFVi1QSEFT RQorLVBPRDJNQU4gPSBwb2QybWFuIC0tY2VudGVyPSJHTlUiIC0tcmVsZWFzZT0iZ2NjLSQoc2hl bGwgY2F0ICQoQkFTRVZFUikpIgorK1BPRDJNQU4gPSBwb2QybWFuIC0tY2VudGVyPSJHTlUiIC0t cmVsZWFzZT0iZ2NjLSQoc2hlbGwgY2F0ICQoQkFTRVZFUikpIiAtLWRhdGU9IiQoc2hlbGwgbHMg LS10aW1lLXN0eWxlPSslRiAtbCAkKHNyY2RpcikvY3AtdG9vbHMudGV4aW5mbyB8IGF3ayAne3By aW50ICQkNn0nKSIKKyBURVhJMlBPRCA9IHBlcmwgJCh0b3Bfc3JjZGlyKS8uLi8uLi9jb250cmli L3RleGkycG9kLnBsCisgU1RBTVAgPSBlY2hvIHRpbWVzdGFtcCA+CisgYWxsOiBhbGwtcmVjdXJz aXZlCgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcmgzNjQwMDEucGF0Y2ggYi9nY2M0MS1yaDM2NDAwMS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNThjOTU4Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2NjNDEtcmgzNjQwMDEucGF0Y2gKQEAgLTAsMCArMSw2NzYgQEAKKzIwMDct MTEtMTYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgZm9ydHJhbi8y MjI0NAorCSogbGFuZ2hvb2tzLWRlZi5oIChMQU5HX0hPT0tTX0dFVF9BUlJBWV9ERVNDUl9JTkZP KTogRGVmaW5lLgorCShMQU5HX0hPT0tTX0ZPUl9UWVBFU19JTklUSUFMSVpFUik6IEFkZCBpdC4K KwkqIGxhbmdob29rcy5oIChzdHJ1Y3QgYXJyYXlfZGVzY3JfaW5mbyk6IEZvcndhcmQgZGVjbGFy YXRpb24uCisJKHN0cnVjdCBsYW5nX2hvb2tzX2Zvcl90eXBlcyk6IEFkZCBnZXRfYXJyYXlfZGVz Y3JfaW5mbyBmaWVsZC4KKwkqIGR3YXJmMi5oIChEV19BVF9iaXRfc3RyaWRlLCBEV19BVF9ieXRl X3N0cmlkZSk6IE5ldy4KKwkoRFdfQVRfc3RyaWRlX3NpemUsIERXX0FUX3N0cmlkZSk6IEtlZXAg YXJvdW5kIGZvciBEd2FyZjIKKwljb21wYXRpYmlsaXR5LgorCSogZHdhcmYyb3V0LmggKHN0cnVj dCBhcnJheV9kZXNjcl9pbmZvKTogTmV3IHR5cGUuCisJKiBkd2FyZjJvdXQuYyAoZHdhcmZfYXR0 cl9uYW1lKTogUmVuYW1lIERXX0FUX3N0cmlkZSB0bworCURXX0FUX2J5dGVfc3RyaWRlIGFuZCBE V19BVF9zdHJpZGVfc2l6ZSB0byBEV19BVF9iaXRfc2l6ZS4KKwkoZGVzY3JfaW5mb19sb2MsIGFk ZF9kZXNjcl9pbmZvX2ZpZWxkLCBnZW5fZGVzY3JfYXJyYXlfdHlwZV9kaWUpOgorCU5ldyBmdW5j dGlvbnMuCisJKGdlbl90eXBlX2RpZV93aXRoX3VzYWdlKTogQ2FsbCBsYW5nX2hvb2tzLnR5cGVz LmdldF9hcnJheV9kZXNjcl9pbmZvCisJYW5kIGdlbl9kZXNjcl9hcnJheV90eXBlX2RpZS4KKwor CSogdHJhbnMuaCAoc3RydWN0IGFycmF5X2Rlc2NyX2luZm8pOiBGb3J3YXJkIGRlY2xhcmF0aW9u LgorCShnZmNfZ2V0X2FycmF5X2Rlc2NyX2luZm8pOiBOZXcgcHJvdG90eXBlLgorCShlbnVtIGdm Y19hcnJheV9raW5kKTogTmV3IHR5cGUuCisJKHN0cnVjdCBsYW5nX3R5cGUpOiBBZGQgYWtpbmQg ZmllbGQuCisJKEdGQ19UWVBFX0FSUkFZX0FLSU5EKTogRGVmaW5lLgorCSogdHJhbnMtdHlwZXMu YzogSW5jbHVkZSBkd2FyZjJvdXQuaC4KKwkoZ2ZjX2J1aWxkX2FycmF5X3R5cGUpOiBBZGQgYWtp bmQgYXJndW1lbnQuICBBZGp1c3QKKwlnZmNfZ2V0X2FycmF5X3R5cGVfYm91bmRzIGNhbGwuCisJ KGdmY19nZXRfbm9kZXNjX2FycmF5X3R5cGUpOiBJbmNsdWRlIHByb3BlciBkZWJ1ZyBpbmZvIGV2 ZW4gZm9yCisJYXNzdW1lZC1zaXplIGFycmF5cy4KKwkoZ2ZjX2dldF9hcnJheV90eXBlX2JvdW5k cyk6IEFkZCBha2luZCBhcmd1bWVudCwgc2V0CisJR0ZDX1RZUEVfQVJSQVlfQUtJTkQgdG8gaXQu CisJKGdmY19zeW1fdHlwZSwgZ2ZjX2dldF9kZXJpdmVkX3R5cGUpOiBBZGp1c3QgZ2ZjX2J1aWxk X2FycmF5X3R5cGUKKwljYWxsZXJzLgorCShnZmNfZ2V0X2FycmF5X2Rlc2NyX2luZm8pOiBOZXcg ZnVuY3Rpb24uCisJKiB0cmFucy1hcnJheS5jIChnZmNfdHJhbnNfY3JlYXRlX3RlbXBfYXJyYXks CisJZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yKTogQWRqdXN0IGdmY19nZXRfYXJyYXlfdHlwZV9i b3VuZHMKKwljYWxsZXJzLgorCSogdHJhbnMtc3RtdC5jIChnZmNfdHJhbnNfcG9pbnRlcl9hc3Np Z25fbmVlZF90ZW1wKTogTGlrZXdpc2UuCisJKiB0cmFucy10eXBlcy5oIChnZmNfZ2V0X2FycmF5 X3R5cGVfYm91bmRzKTogQWRqdXN0IHByb3RvdHlwZS4KKwkqIE1ha2UtbGFuZy5pbiAoZm9ydHJh bi90cmFucy10eXBlcy5vKTogRGVwZW5kIG9uIGR3YXJmMm91dC5oLgorCSogZjk1LWxhbmcuYyAo TEFOR19IT09LU19HRVRfQVJSQVlfREVTQ1JfSU5GTyk6IERlZmluZS4KKworLS0tIGdjYy9mb3J0 cmFuL3RyYW5zLmguamoJMjAwNy0wNy0yMyAxMjoyNDoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBn Y2MvZm9ydHJhbi90cmFucy5oCTIwMDctMTEtMjQgMTU6MDQ6NTEuMDAwMDAwMDAwICswMTAwCitA QCAtNDUzLDYgKzQ1Myw4IEBAIHRyZWUgZ2V0ZGVjbHMgKHZvaWQpOworIHRyZWUgZ2ZjX3RydXRo dmFsdWVfY29udmVyc2lvbiAodHJlZSk7CisgdHJlZSBidWlsdGluX2Z1bmN0aW9uIChjb25zdCBj aGFyICosIHRyZWUsIGludCwgZW51bSBidWlsdF9pbl9jbGFzcywKKyAJCSAgICAgICBjb25zdCBj aGFyICosIHRyZWUpOworK3N0cnVjdCBhcnJheV9kZXNjcl9pbmZvOworK2Jvb2wgZ2ZjX2dldF9h cnJheV9kZXNjcl9pbmZvICh0cmVlLCBzdHJ1Y3QgYXJyYXlfZGVzY3JfaW5mbyAqKTsKKyAKKyAv KiBJbiB0cmFucy1vcGVubXAuYyAqLworIGJvb2wgZ2ZjX29tcF9wcml2YXRpemVfYnlfcmVmZXJl bmNlICh0cmVlKTsKK0BAIC01NDEsMTAgKzU0MywxOSBAQCBleHRlcm4gR1RZKCgpKSB0cmVlIGdm b3JfZm5kZWNsX3NyX2tpbmQ7CisgCisgLyogRzk1LXNwZWNpZmljIGRlY2xhcmF0aW9uIGluZm9y bWF0aW9uLiAgKi8KKyAKKytlbnVtIGdmY19hcnJheV9raW5kCisreworKyAgR0ZDX0FSUkFZX1VO S05PV04sCisrICBHRkNfQVJSQVlfQVNTVU1FRF9TSEFQRSwKKysgIEdGQ19BUlJBWV9BTExPQ0FU QUJMRSwKKysgIEdGQ19BUlJBWV9QT0lOVEVSCisrfTsKKysKKyAvKiBBcnJheSB0eXBlcyBvbmx5 LiAgKi8KKyBzdHJ1Y3QgbGFuZ190eXBlCQlHVFkoKCkpCisgeworICAgaW50IHJhbms7CisrICBl bnVtIGdmY19hcnJheV9raW5kIGFraW5kOworICAgdHJlZSBsYm91bmRbR0ZDX01BWF9ESU1FTlNJ T05TXTsKKyAgIHRyZWUgdWJvdW5kW0dGQ19NQVhfRElNRU5TSU9OU107CisgICB0cmVlIHN0cmlk ZVtHRkNfTUFYX0RJTUVOU0lPTlNdOworQEAgLTU5NSw3ICs2MDYsOCBAQCBzdHJ1Y3QgbGFuZ19k ZWNsCQlHVFkoKCkpCisgI2RlZmluZSBHRkNfVFlQRV9BUlJBWV9SQU5LKG5vZGUpIChUWVBFX0xB TkdfU1BFQ0lGSUMobm9kZSktPnJhbmspCisgI2RlZmluZSBHRkNfVFlQRV9BUlJBWV9TSVpFKG5v ZGUpIChUWVBFX0xBTkdfU1BFQ0lGSUMobm9kZSktPnNpemUpCisgI2RlZmluZSBHRkNfVFlQRV9B UlJBWV9PRkZTRVQobm9kZSkgKFRZUEVfTEFOR19TUEVDSUZJQyhub2RlKS0+b2Zmc2V0KQorLS8q IENvZGUgc2hvdWxkIHVzZSBnZmNfZ2V0X2R0eXBlIGluc3RlYWQgb2YgYWNjZXNpZyB0aGlzIGRp cmVjdGx5LiAgSXQgbWF5CisrI2RlZmluZSBHRkNfVFlQRV9BUlJBWV9BS0lORChub2RlKSAoVFlQ RV9MQU5HX1NQRUNJRklDKG5vZGUpLT5ha2luZCkKKysvKiBDb2RlIHNob3VsZCB1c2UgZ2ZjX2dl dF9kdHlwZSBpbnN0ZWFkIG9mIGFjY2VzaW5nIHRoaXMgZGlyZWN0bHkuICBJdCBtYXkKKyAgICBu b3QgYmUga25vd24gd2hlbiB0aGUgdHlwZSBpcyBjcmVhdGVkLiAgKi8KKyAjZGVmaW5lIEdGQ19U WVBFX0FSUkFZX0RUWVBFKG5vZGUpIChUWVBFX0xBTkdfU1BFQ0lGSUMobm9kZSktPmR0eXBlKQor ICNkZWZpbmUgR0ZDX1RZUEVfQVJSQVlfREFUQVBUUl9UWVBFKG5vZGUpIFwKKy0tLSBnY2MvZm9y dHJhbi90cmFucy1zdG10LmMuamoJMjAwNy0wMy0xMiAwODoyODoxNS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnY2MvZm9ydHJhbi90cmFucy1zdG10LmMJMjAwNy0xMS0yNCAxNDo1ODoyMC4wMDAwMDAw MDAgKzAxMDAKK0BAIC0yMzEzLDcgKzIzMTMsOCBAQCBnZmNfdHJhbnNfcG9pbnRlcl9hc3NpZ25f bmVlZF90ZW1wIChnZmNfCisgICAgICAgLyogTWFrZSBhIG5ldyBkZXNjcmlwdG9yLiAgKi8KKyAg ICAgICBwYXJtdHlwZSA9IGdmY19nZXRfZWxlbWVudF90eXBlIChUUkVFX1RZUEUgKGRlc2MpKTsK KyAgICAgICBwYXJtdHlwZSA9IGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMgKHBhcm10eXBlLCBs b29wLmRpbWVuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bG9vcC5mcm9tLCBsb29wLnRvLCAxKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxvb3AuZnJvbSwgbG9vcC50bywgMSwKKysJCQkJCSAgICBHRkNfQVJSQVlf VU5LTk9XTik7CisgCisgICAgICAgLyogQWxsb2NhdGUgdGVtcG9yYXJ5IGZvciBuZXN0ZWQgZm9y YWxsIGNvbnN0cnVjdC4gICovCisgICAgICAgdG1wMSA9IGFsbG9jYXRlX3RlbXBfZm9yX2ZvcmFs bF9uZXN0IChuZXN0ZWRfZm9yYWxsX2luZm8sIHBhcm10eXBlLAorLS0tIGdjYy9mb3J0cmFuL2Y5 NS1sYW5nLmMuamoJMjAwNy0wMi0yMCAyMjozODoyMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2Mv Zm9ydHJhbi9mOTUtbGFuZy5jCTIwMDctMTEtMjQgMTU6MDM6MTkuMDAwMDAwMDAwICswMTAwCitA QCAtMTI0LDYgKzEyNCw3IEBAIHN0YXRpYyBIT1NUX1dJREVfSU5UIGdmY19nZXRfYWxpYXNfc2V0 ICgKKyAjdW5kZWYgTEFOR19IT09LU19PTVBfRElTUkVHQVJEX1ZBTFVFX0VYUFIKKyAjdW5kZWYg TEFOR19IT09LU19PTVBfUFJJVkFURV9ERUJVR19DTEFVU0UKKyAjdW5kZWYgTEFOR19IT09LU19P TVBfRklSU1RQUklWQVRJWkVfVFlQRV9TSVpFUworKyN1bmRlZiBMQU5HX0hPT0tTX0dFVF9BUlJB WV9ERVNDUl9JTkZPCisgCisgLyogRGVmaW5lIGxhbmcgaG9va3MuICAqLworICNkZWZpbmUgTEFO R19IT09LU19OQU1FICAgICAgICAgICAgICAgICAiR05VIEY5NSIKK0BAIC0xNTAsNiArMTUxLDcg QEAgc3RhdGljIEhPU1RfV0lERV9JTlQgZ2ZjX2dldF9hbGlhc19zZXQgKAorICNkZWZpbmUgTEFO R19IT09LU19PTVBfUFJJVkFURV9ERUJVR19DTEFVU0UJZ2ZjX29tcF9wcml2YXRlX2RlYnVnX2Ns YXVzZQorICNkZWZpbmUgTEFOR19IT09LU19PTVBfRklSU1RQUklWQVRJWkVfVFlQRV9TSVpFUyBc CisgICBnZmNfb21wX2ZpcnN0cHJpdmF0aXplX3R5cGVfc2l6ZXMKKysjZGVmaW5lIExBTkdfSE9P S1NfR0VUX0FSUkFZX0RFU0NSX0lORk8JCWdmY19nZXRfYXJyYXlfZGVzY3JfaW5mbworIAorIGNv bnN0IHN0cnVjdCBsYW5nX2hvb2tzIGxhbmdfaG9va3MgPSBMQU5HX0hPT0tTX0lOSVRJQUxJWkVS OworIAorLS0tIGdjYy9mb3J0cmFuL01ha2UtbGFuZy5pbi5qagkyMDA3LTA5LTI1IDExOjMyOjE3 LjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9mb3J0cmFuL01ha2UtbGFuZy5pbgkyMDA3LTExLTI0 IDE1OjAyOjM2LjAwMDAwMDAwMCArMDEwMAorQEAgLTI5Miw3ICsyOTIsNyBAQCBmb3J0cmFuL3Ry YW5zLWRlY2wubzogJChHRk9SVFJBTl9UUkFOU19ECisgICBjZ3JhcGguaCAkKFRBUkdFVF9IKSBm dW5jdGlvbi5oICQoRkxBR1NfSCkgJChSVExfSCkgdHJlZS1naW1wbGUuaCBcCisgICB0cmVlLWR1 bXAuaAorIGZvcnRyYW4vdHJhbnMtdHlwZXMubzogJChHRk9SVFJBTl9UUkFOU19ERVBTKSBndC1m b3J0cmFuLXRyYW5zLXR5cGVzLmggXAorLSAgcmVhbC5oIHRvcGxldi5oICQoVEFSR0VUX0gpICQo RkxBR1NfSCkKKysgIHJlYWwuaCB0b3BsZXYuaCAkKFRBUkdFVF9IKSAkKEZMQUdTX0gpIGR3YXJm Mm91dC5oCisgZm9ydHJhbi90cmFucy1jb25zdC5vOiAkKEdGT1JUUkFOX1RSQU5TX0RFUFMpCisg Zm9ydHJhbi90cmFucy1leHByLm86ICQoR0ZPUlRSQU5fVFJBTlNfREVQUykgZm9ydHJhbi9kZXBl bmRlbmN5LmgKKyBmb3J0cmFuL3RyYW5zLXN0bXQubzogJChHRk9SVFJBTl9UUkFOU19ERVBTKSBm b3J0cmFuL2RlcGVuZGVuY3kuaAorLS0tIGdjYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmMuamoJMjAw Ny0wOS0yNSAxMTozMjoxNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZm9ydHJhbi90cmFucy10 eXBlcy5jCTIwMDctMTEtMjQgMTU6MDY6NTkuMDAwMDAwMDAwICswMTAwCitAQCAtMzYsNiArMzYs NyBAQCBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1MSBGcmFua2xpbiBTdHJlZXQsCisgI2luY2x1ZGUg InRyYW5zLWNvbnN0LmgiCisgI2luY2x1ZGUgInJlYWwuaCIKKyAjaW5jbHVkZSAiZmxhZ3MuaCIK KysjaW5jbHVkZSAiZHdhcmYyb3V0LmgiCisgDAorIAorICNpZiAoR0ZDX01BWF9ESU1FTlNJT05T IDwgMTApCitAQCAtODIxLDcgKzgyMiw4IEBAIGdmY19pc19ub2Rlc2NfYXJyYXkgKGdmY19zeW1i b2wgKiBzeW0pCisgLyogQ3JlYXRlIGFuIGFycmF5IGRlc2NyaXB0b3IgdHlwZS4gICovCisgCisg c3RhdGljIHRyZWUKKy1nZmNfYnVpbGRfYXJyYXlfdHlwZSAodHJlZSB0eXBlLCBnZmNfYXJyYXlf c3BlYyAqIGFzKQorK2dmY19idWlsZF9hcnJheV90eXBlICh0cmVlIHR5cGUsIGdmY19hcnJheV9z cGVjICogYXMsCisrCQkgICAgICBlbnVtIGdmY19hcnJheV9raW5kIGFraW5kKQorIHsKKyAgIHRy ZWUgbGJvdW5kW0dGQ19NQVhfRElNRU5TSU9OU107CisgICB0cmVlIHVib3VuZFtHRkNfTUFYX0RJ TUVOU0lPTlNdOworQEAgLTgzNyw3ICs4MzksOSBAQCBnZmNfYnVpbGRfYXJyYXlfdHlwZSAodHJl ZSB0eXBlLCBnZmNfYXJyCisgICAgICAgdWJvdW5kW25dID0gZ2ZjX2NvbnZfYXJyYXlfYm91bmQg KGFzLT51cHBlcltuXSk7CisgICAgIH0KKyAKKy0gIHJldHVybiBnZmNfZ2V0X2FycmF5X3R5cGVf Ym91bmRzICh0eXBlLCBhcy0+cmFuaywgbGJvdW5kLCB1Ym91bmQsIDApOworKyAgaWYgKGFzLT50 eXBlID09IEFTX0FTU1VNRURfU0hBUEUpCisrICAgIGFraW5kID0gR0ZDX0FSUkFZX0FTU1VNRURf U0hBUEU7CisrICByZXR1cm4gZ2ZjX2dldF9hcnJheV90eXBlX2JvdW5kcyAodHlwZSwgYXMtPnJh bmssIGxib3VuZCwgdWJvdW5kLCAwLCBha2luZCk7CisgfQorIAwKKyAvKiBSZXR1cm5zIHRoZSBz dHJ1Y3QgZGVzY3JpcHRvcl9kaW1lbnNpb24gdHlwZS4gICovCitAQCAtMTAxNSw3ICsxMDE5LDcg QEAgZ2ZjX2dldF9ub2Rlc2NfYXJyYXlfdHlwZSAodHJlZSBldHlwZSwgZworICAgICAgIGlmIChl eHByLT5leHByX3R5cGUgPT0gRVhQUl9DT05TVEFOVCkKKyAgICAgICAgIHsKKyAgICAgICAgICAg dG1wID0gZ2ZjX2NvbnZfbXB6X3RvX3RyZWUgKGV4cHItPnZhbHVlLmludGVnZXIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmY19pbmRleF9pbnRlZ2VyX2tpbmQpOworKwkJ CQkgICAgICBnZmNfaW5kZXhfaW50ZWdlcl9raW5kKTsKKyAgICAgICAgIH0KKyAgICAgICBlbHNl CisgICAgICAgICB7CitAQCAtMTEwNyw3ICsxMTExLDcgQEAgZ2ZjX2dldF9ub2Rlc2NfYXJyYXlf dHlwZSAodHJlZSBldHlwZSwgZworICAgLyogSW4gZGVidWcgaW5mbyByZXByZXNlbnQgcGFja2Vk IGFycmF5cyBhcyBtdWx0aS1kaW1lbnNpb25hbAorICAgICAgaWYgdGhleSBoYXZlIHJhbmsgPiAx IGFuZCB3aXRoIHByb3BlciBib3VuZHMsIGluc3RlYWQgb2YgZmxhdAorICAgICAgYXJyYXlzLiAg Ki8KKy0gIGlmIChrbm93bl9zdHJpZGUgJiYgd3JpdGVfc3ltYm9scyAhPSBOT19ERUJVRykKKysg IGlmIChrbm93bl9vZmZzZXQgJiYgd3JpdGVfc3ltYm9scyAhPSBOT19ERUJVRykKKyAgICAgewor ICAgICAgIHRyZWUgZ3R5cGUgPSBldHlwZSwgcnR5cGUsIHR5cGVfZGVjbDsKKyAKK0BAIC0xMTkz LDcgKzExOTcsOCBAQCBnZmNfZ2V0X2FycmF5X2Rlc2NyaXB0b3JfYmFzZSAoaW50IGRpbWVuCisg CisgdHJlZQorIGdmY19nZXRfYXJyYXlfdHlwZV9ib3VuZHMgKHRyZWUgZXR5cGUsIGludCBkaW1l biwgdHJlZSAqIGxib3VuZCwKKy0JCQkgICB0cmVlICogdWJvdW5kLCBpbnQgcGFja2VkKQorKwkJ CSAgIHRyZWUgKiB1Ym91bmQsIGludCBwYWNrZWQsCisrCQkJICAgZW51bSBnZmNfYXJyYXlfa2lu ZCBha2luZCkKKyB7CisgICBjaGFyIG5hbWVbOCArIEdGQ19SQU5LX0RJR0lUUyArIEdGQ19NQVhf U1lNQk9MX0xFTl07CisgICB0cmVlIGZhdF90eXBlLCBiYXNlX3R5cGUsIGFycmF5dHlwZSwgbG93 ZXIsIHVwcGVyLCBzdHJpZGUsIHRtcDsKK0BAIC0xMjIwLDYgKzEyMjUsNyBAQCBnZmNfZ2V0X2Fy cmF5X3R5cGVfYm91bmRzICh0cmVlIGV0eXBlLCBpCisgCisgICBHRkNfVFlQRV9BUlJBWV9SQU5L IChmYXRfdHlwZSkgPSBkaW1lbjsKKyAgIEdGQ19UWVBFX0FSUkFZX0RUWVBFIChmYXRfdHlwZSkg PSBOVUxMX1RSRUU7CisrICBHRkNfVFlQRV9BUlJBWV9BS0lORCAoZmF0X3R5cGUpID0gYWtpbmQ7 CisgCisgICAvKiBCdWlsZCBhbiBhcnJheSBkZXNjcmlwdG9yIHJlY29yZCB0eXBlLiAgKi8KKyAg IGlmIChwYWNrZWQgIT0gMCkKK0BAIC0xMzM3LDcgKzEzNDMsMTQgQEAgZ2ZjX3N5bV90eXBlIChn ZmNfc3ltYm9sICogc3ltKQorIAkgICAgfQorICAgICAgICAgfQorICAgICAgIGVsc2UKKy0JdHlw ZSA9IGdmY19idWlsZF9hcnJheV90eXBlICh0eXBlLCBzeW0tPmFzKTsKKysJeworKwkgIGVudW0g Z2ZjX2FycmF5X2tpbmQgYWtpbmQgPSBHRkNfQVJSQVlfVU5LTk9XTjsKKysJICBpZiAoc3ltLT5h dHRyLnBvaW50ZXIpCisrCSAgICBha2luZCA9IEdGQ19BUlJBWV9QT0lOVEVSOworKwkgIGVsc2Ug aWYgKHN5bS0+YXR0ci5hbGxvY2F0YWJsZSkKKysJICAgIGFraW5kID0gR0ZDX0FSUkFZX0FMTE9D QVRBQkxFOworKwkgIHR5cGUgPSBnZmNfYnVpbGRfYXJyYXlfdHlwZSAodHlwZSwgc3ltLT5hcywg YWtpbmQpOworKwl9CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworQEAgLTE1NTAsNyArMTU2Myw4 IEBAIGdmY19nZXRfZGVyaXZlZF90eXBlIChnZmNfc3ltYm9sICogZGVyaXYKKyAJICAgIHsKKyAJ ICAgICAgLyogUG9pbnRlcnMgdG8gYXJyYXlzIGFyZW4ndCBhY3R1YWxseSBwb2ludGVyIHR5cGVz LiAgVGhlCisgCSAgICAgICAgIGRlc2NyaXB0b3JzIGFyZSBzZXBhcmF0ZSwgYnV0IHRoZSBkYXRh IGlzIGNvbW1vbi4gICovCistCSAgICAgIGZpZWxkX3R5cGUgPSBnZmNfYnVpbGRfYXJyYXlfdHlw ZSAoZmllbGRfdHlwZSwgYy0+YXMpOworKwkgICAgICBmaWVsZF90eXBlID0gZ2ZjX2J1aWxkX2Fy cmF5X3R5cGUgKGZpZWxkX3R5cGUsIGMtPmFzLAorKwkJCQkJCSBHRkNfQVJSQVlfUE9JTlRFUik7 CisgCSAgICB9CisgCSAgZWxzZQorIAkgICAgZmllbGRfdHlwZSA9IGdmY19nZXRfbm9kZXNjX2Fy cmF5X3R5cGUgKGZpZWxkX3R5cGUsIGMtPmFzLCAzKTsKK0BAIC0xODkzLDQgKzE5MDcsMTI0IEBA IGdmY19zaWduZWRfdHlwZSAodHJlZSB0eXBlKQorICAgcmV0dXJuIGdmY19zaWduZWRfb3JfdW5z aWduZWRfdHlwZSAoMCwgdHlwZSk7CisgfQorIAorKy8qIFJldHVybiBUUlVFIGlmIFRZUEUgaXMg YSB0eXBlIHdpdGggYSBoaWRkZW4gZGVzY3JpcHRvciwgZmlsbCBpbiBJTkZPCisrICAgaW4gdGhh dCBjYXNlLiAgKi8KKysKKytib29sCisrZ2ZjX2dldF9hcnJheV9kZXNjcl9pbmZvICh0cmVlIHR5 cGUsIHN0cnVjdCBhcnJheV9kZXNjcl9pbmZvICppbmZvKQorK3sKKysgIGludCByYW5rLCBkaW07 CisrICBib29sIGluZGlyZWN0ID0gZmFsc2U7CisrICB0cmVlIGV0eXBlLCBwdHlwZSwgZmllbGQs IHQsIGJhc2VfZGVjbDsKKysgIHRyZWUgZGF0YV9vZmYsIG9mZnNldF9vZmYsIGRpbV9vZmYsIGRp bV9zaXplLCBlbGVtX3NpemU7CisrICB0cmVlIGxvd2VyX3N1Ym9mZiwgdXBwZXJfc3Vib2ZmLCBz dHJpZGVfc3Vib2ZmOworKworKyAgaWYgKCEgR0ZDX0RFU0NSSVBUT1JfVFlQRV9QICh0eXBlKSkK KysgICAgeworKyAgICAgIGlmICghIFBPSU5URVJfVFlQRV9QICh0eXBlKSkKKysJcmV0dXJuIGZh bHNlOworKyAgICAgIHR5cGUgPSBUUkVFX1RZUEUgKHR5cGUpOworKyAgICAgIGlmICghIEdGQ19E RVNDUklQVE9SX1RZUEVfUCAodHlwZSkpCisrCXJldHVybiBmYWxzZTsKKysgICAgICBpbmRpcmVj dCA9IHRydWU7CisrICAgIH0KKysKKysgIHJhbmsgPSBHRkNfVFlQRV9BUlJBWV9SQU5LICh0eXBl KTsKKysgIGlmIChyYW5rID49IChpbnQpIChzaXplb2YgKGluZm8tPmRpbWVuKSAvIHNpemVvZiAo aW5mby0+ZGltZW5bMF0pKSkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAgZXR5cGUgPSBHRkNf VFlQRV9BUlJBWV9EQVRBUFRSX1RZUEUgKHR5cGUpOworKyAgZ2NjX2Fzc2VydCAoUE9JTlRFUl9U WVBFX1AgKGV0eXBlKSk7CisrICBldHlwZSA9IFRSRUVfVFlQRSAoZXR5cGUpOworKyAgZ2NjX2Fz c2VydCAoVFJFRV9DT0RFIChldHlwZSkgPT0gQVJSQVlfVFlQRSk7CisrICBldHlwZSA9IFRSRUVf VFlQRSAoZXR5cGUpOworKyAgLyogQ2FuJ3QgaGFuZGxlIHZhcmlhYmxlIHNpemVkIGVsZW1lbnRz IHlldC4gICovCisrICBpZiAoaW50X3NpemVfaW5fYnl0ZXMgKGV0eXBlKSA8PSAwKQorKyAgICBy ZXR1cm4gZmFsc2U7CisrICAvKiBOb3Igbm9uLWNvbnN0YW50IGxvd2VyIGJvdW5kcyBpbiBhc3N1 bWVkIHNoYXBlIGFycmF5cy4gICovCisrICBpZiAoR0ZDX1RZUEVfQVJSQVlfQUtJTkQgKHR5cGUp ID09IEdGQ19BUlJBWV9BU1NVTUVEX1NIQVBFKQorKyAgICB7CisrICAgICAgZm9yIChkaW0gPSAw OyBkaW0gPCByYW5rOyBkaW0rKykKKysJaWYgKEdGQ19UWVBFX0FSUkFZX0xCT1VORCAodHlwZSwg ZGltKSA9PSBOVUxMX1RSRUUKKysJICAgIHx8IFRSRUVfQ09ERSAoR0ZDX1RZUEVfQVJSQVlfTEJP VU5EICh0eXBlLCBkaW0pKSAhPSBJTlRFR0VSX0NTVCkKKysJICByZXR1cm4gZmFsc2U7CisrICAg IH0KKysKKysgIG1lbXNldCAoaW5mbywgJ1wwJywgc2l6ZW9mICgqaW5mbykpOworKyAgaW5mby0+ bmRpbWVuc2lvbnMgPSByYW5rOworKyAgaW5mby0+ZWxlbWVudF90eXBlID0gZXR5cGU7CisrICBw dHlwZSA9IGJ1aWxkX3BvaW50ZXJfdHlwZSAoZ2ZjX2FycmF5X2luZGV4X3R5cGUpOworKyAgaWYg KGluZGlyZWN0KQorKyAgICB7CisrICAgICAgaW5mby0+YmFzZV9kZWNsID0gYnVpbGRfZGVjbCAo VkFSX0RFQ0wsIE5VTExfVFJFRSwKKysJCQkJICAgIGJ1aWxkX3BvaW50ZXJfdHlwZSAocHR5cGUp KTsKKysgICAgICBiYXNlX2RlY2wgPSBidWlsZDEgKElORElSRUNUX1JFRiwgcHR5cGUsIGluZm8t PmJhc2VfZGVjbCk7CisrICAgIH0KKysgIGVsc2UKKysgICAgaW5mby0+YmFzZV9kZWNsID0gYmFz ZV9kZWNsID0gYnVpbGRfZGVjbCAoVkFSX0RFQ0wsIE5VTExfVFJFRSwgcHR5cGUpOworKworKyAg ZWxlbV9zaXplID0gZm9sZF9jb252ZXJ0IChnZmNfYXJyYXlfaW5kZXhfdHlwZSwgVFlQRV9TSVpF X1VOSVQgKGV0eXBlKSk7CisrICBmaWVsZCA9IFRZUEVfRklFTERTIChUWVBFX01BSU5fVkFSSUFO VCAodHlwZSkpOworKyAgZGF0YV9vZmYgPSBieXRlX3Bvc2l0aW9uIChmaWVsZCk7CisrICBmaWVs ZCA9IFRSRUVfQ0hBSU4gKGZpZWxkKTsKKysgIG9mZnNldF9vZmYgPSBieXRlX3Bvc2l0aW9uIChm aWVsZCk7CisrICBmaWVsZCA9IFRSRUVfQ0hBSU4gKGZpZWxkKTsKKysgIGZpZWxkID0gVFJFRV9D SEFJTiAoZmllbGQpOworKyAgZGltX29mZiA9IGJ5dGVfcG9zaXRpb24gKGZpZWxkKTsKKysgIGRp bV9zaXplID0gVFlQRV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAoVFJFRV9UWVBFIChmaWVsZCkpKTsK KysgIGZpZWxkID0gVFlQRV9GSUVMRFMgKFRSRUVfVFlQRSAoVFJFRV9UWVBFIChmaWVsZCkpKTsK KysgIHN0cmlkZV9zdWJvZmYgPSBieXRlX3Bvc2l0aW9uIChmaWVsZCk7CisrICBmaWVsZCA9IFRS RUVfQ0hBSU4gKGZpZWxkKTsKKysgIGxvd2VyX3N1Ym9mZiA9IGJ5dGVfcG9zaXRpb24gKGZpZWxk KTsKKysgIGZpZWxkID0gVFJFRV9DSEFJTiAoZmllbGQpOworKyAgdXBwZXJfc3Vib2ZmID0gYnl0 ZV9wb3NpdGlvbiAoZmllbGQpOworKworKyAgdCA9IGJhc2VfZGVjbDsKKysgIGlmICghaW50ZWdl cl96ZXJvcCAoZGF0YV9vZmYpKQorKyAgICB0ID0gYnVpbGQyIChQTFVTX0VYUFIsIHB0eXBlLCB0 LCBkYXRhX29mZik7CisrICB0ID0gYnVpbGQxIChOT1BfRVhQUiwgYnVpbGRfcG9pbnRlcl90eXBl IChwdHJfdHlwZV9ub2RlKSwgdCk7CisrICBpbmZvLT5kYXRhX2xvY2F0aW9uID0gYnVpbGQxIChJ TkRJUkVDVF9SRUYsIHB0cl90eXBlX25vZGUsIHQpOworKyAgaWYgKEdGQ19UWVBFX0FSUkFZX0FL SU5EICh0eXBlKSA9PSBHRkNfQVJSQVlfQUxMT0NBVEFCTEUpCisrICAgIGluZm8tPmFsbG9jYXRl ZCA9IGJ1aWxkMiAoTkVfRVhQUiwgYm9vbGVhbl90eXBlX25vZGUsCisrCQkJICAgICAgaW5mby0+ ZGF0YV9sb2NhdGlvbiwgbnVsbF9wb2ludGVyX25vZGUpOworKyAgZWxzZSBpZiAoR0ZDX1RZUEVf QVJSQVlfQUtJTkQgKHR5cGUpID09IEdGQ19BUlJBWV9QT0lOVEVSKQorKyAgICBpbmZvLT5hc3Nv Y2lhdGVkID0gYnVpbGQyIChORV9FWFBSLCBib29sZWFuX3R5cGVfbm9kZSwKKysJCQkgICAgICAg aW5mby0+ZGF0YV9sb2NhdGlvbiwgbnVsbF9wb2ludGVyX25vZGUpOworKworKyAgZm9yIChkaW0g PSAwOyBkaW0gPCByYW5rOyBkaW0rKykKKysgICAgeworKyAgICAgIHQgPSBidWlsZDIgKFBMVVNf RVhQUiwgcHR5cGUsIGJhc2VfZGVjbCwKKysJCSAgc2l6ZV9iaW5vcCAoUExVU19FWFBSLCBkaW1f b2ZmLCBsb3dlcl9zdWJvZmYpKTsKKysgICAgICB0ID0gYnVpbGQxIChJTkRJUkVDVF9SRUYsIGdm Y19hcnJheV9pbmRleF90eXBlLCB0KTsKKysgICAgICBpbmZvLT5kaW1lbltkaW1dLmxvd2VyX2Jv dW5kID0gdDsKKysgICAgICB0ID0gYnVpbGQyIChQTFVTX0VYUFIsIHB0eXBlLCBiYXNlX2RlY2ws CisrCQkgIHNpemVfYmlub3AgKFBMVVNfRVhQUiwgZGltX29mZiwgdXBwZXJfc3Vib2ZmKSk7Cisr ICAgICAgdCA9IGJ1aWxkMSAoSU5ESVJFQ1RfUkVGLCBnZmNfYXJyYXlfaW5kZXhfdHlwZSwgdCk7 CisrICAgICAgaW5mby0+ZGltZW5bZGltXS51cHBlcl9ib3VuZCA9IHQ7CisrICAgICAgaWYgKEdG Q19UWVBFX0FSUkFZX0FLSU5EICh0eXBlKSA9PSBHRkNfQVJSQVlfQVNTVU1FRF9TSEFQRSkKKysJ eworKwkgIC8qIEFzc3VtZWQgc2hhcGUgYXJyYXlzIGhhdmUga25vd24gbG93ZXIgYm91bmRzLiAg Ki8KKysJICBpbmZvLT5kaW1lbltkaW1dLnVwcGVyX2JvdW5kCisrCSAgICA9IGJ1aWxkMiAoTUlO VVNfRVhQUiwgZ2ZjX2FycmF5X2luZGV4X3R5cGUsCisrCQkgICAgICBpbmZvLT5kaW1lbltkaW1d LnVwcGVyX2JvdW5kLAorKwkJICAgICAgaW5mby0+ZGltZW5bZGltXS5sb3dlcl9ib3VuZCk7Cisr CSAgaW5mby0+ZGltZW5bZGltXS5sb3dlcl9ib3VuZAorKwkgICAgPSBmb2xkX2NvbnZlcnQgKGdm Y19hcnJheV9pbmRleF90eXBlLAorKwkJCSAgICBHRkNfVFlQRV9BUlJBWV9MQk9VTkQgKHR5cGUs IGRpbSkpOworKwkgIGluZm8tPmRpbWVuW2RpbV0udXBwZXJfYm91bmQKKysJICAgID0gYnVpbGQy IChQTFVTX0VYUFIsIGdmY19hcnJheV9pbmRleF90eXBlLAorKwkJICAgICAgaW5mby0+ZGltZW5b ZGltXS5sb3dlcl9ib3VuZCwKKysJCSAgICAgIGluZm8tPmRpbWVuW2RpbV0udXBwZXJfYm91bmQp OworKwl9CisrICAgICAgdCA9IGJ1aWxkMiAoUExVU19FWFBSLCBwdHlwZSwgYmFzZV9kZWNsLAor KwkJICBzaXplX2Jpbm9wIChQTFVTX0VYUFIsIGRpbV9vZmYsIHN0cmlkZV9zdWJvZmYpKTsKKysg ICAgICB0ID0gYnVpbGQxIChJTkRJUkVDVF9SRUYsIGdmY19hcnJheV9pbmRleF90eXBlLCB0KTsK KysgICAgICB0ID0gYnVpbGQyIChNVUxUX0VYUFIsIGdmY19hcnJheV9pbmRleF90eXBlLCB0LCBl bGVtX3NpemUpOworKyAgICAgIGluZm8tPmRpbWVuW2RpbV0uc3RyaWRlID0gdDsKKysgICAgICBk aW1fb2ZmID0gc2l6ZV9iaW5vcCAoUExVU19FWFBSLCBkaW1fb2ZmLCBkaW1fc2l6ZSk7CisrICAg IH0KKysKKysgIHJldHVybiB0cnVlOworK30KKysKKyAjaW5jbHVkZSAiZ3QtZm9ydHJhbi10cmFu cy10eXBlcy5oIgorLS0tIGdjYy9mb3J0cmFuL3RyYW5zLWFycmF5LmMuamoJMjAwNy0wNC0wMyAx MzoxMDowMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnY2MvZm9ydHJhbi90cmFucy1hcnJheS5jCTIw MDctMTEtMjQgMTQ6NTg6MjAuMDAwMDAwMDAwICswMTAwCitAQCAtNjEyLDcgKzYxMiw4IEBAIGdm Y190cmFuc19hbGxvY2F0ZV90ZW1wX2FycmF5IChzdG10YmxvY2sKKyAKKyAgIC8qIEluaXRpYWxp emUgdGhlIGRlc2NyaXB0b3IuICAqLworICAgdHlwZSA9CistICAgIGdmY19nZXRfYXJyYXlfdHlw ZV9ib3VuZHMgKGVsdHlwZSwgaW5mby0+ZGltZW4sIGxvb3AtPmZyb20sIGxvb3AtPnRvLCAxKTsK KysgICAgZ2ZjX2dldF9hcnJheV90eXBlX2JvdW5kcyAoZWx0eXBlLCBpbmZvLT5kaW1lbiwgbG9v cC0+ZnJvbSwgbG9vcC0+dG8sIDEsCisrCQkJICAgICAgIEdGQ19BUlJBWV9VTktOT1dOKTsKKyAg IGRlc2MgPSBnZmNfY3JlYXRlX3ZhciAodHlwZSwgImF0bXAiKTsKKyAgIEdGQ19ERUNMX1BBQ0tF RF9BUlJBWSAoZGVzYykgPSAxOworIAorQEAgLTQzNDUsNyArNDM0Niw4IEBAIGdmY19jb252X2V4 cHJfZGVzY3JpcHRvciAoZ2ZjX3NlICogc2UsIGcKKyAJICAvKiBPdGhlcndpc2UgbWFrZSBhIG5l dyBvbmUuICAqLworIAkgIHBhcm10eXBlID0gZ2ZjX2dldF9lbGVtZW50X3R5cGUgKFRSRUVfVFlQ RSAoZGVzYykpOworIAkgIHBhcm10eXBlID0gZ2ZjX2dldF9hcnJheV90eXBlX2JvdW5kcyAocGFy bXR5cGUsIGxvb3AuZGltZW4sCistCQkJCQkJbG9vcC5mcm9tLCBsb29wLnRvLCAwKTsKKysJCQkJ CQlsb29wLmZyb20sIGxvb3AudG8sIDAsCisrCQkJCQkJR0ZDX0FSUkFZX1VOS05PV04pOworIAkg IHBhcm0gPSBnZmNfY3JlYXRlX3ZhciAocGFybXR5cGUsICJwYXJtIik7CisgCX0KKyAKKy0tLSBn Y2MvZm9ydHJhbi90cmFucy10eXBlcy5oLmpqCTIwMDctMDItMjAgMjI6Mzg6MjAuMDAwMDAwMDAw ICswMTAwCisrKysgZ2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMuaAkyMDA3LTExLTI0IDE1OjAzOjU4 LjAwMDAwMDAwMCArMDEwMAorQEAgLTc5LDcgKzc5LDggQEAgdHJlZSBnZmNfc2lnbmVkX3R5cGUg KHRyZWUpOworIHRyZWUgZ2ZjX3NpZ25lZF9vcl91bnNpZ25lZF90eXBlIChpbnQsIHRyZWUpOwor IAorIHRyZWUgZ2ZjX2dldF9lbGVtZW50X3R5cGUgKHRyZWUpOworLXRyZWUgZ2ZjX2dldF9hcnJh eV90eXBlX2JvdW5kcyAodHJlZSwgaW50LCB0cmVlICosIHRyZWUgKiwgaW50KTsKKyt0cmVlIGdm Y19nZXRfYXJyYXlfdHlwZV9ib3VuZHMgKHRyZWUsIGludCwgdHJlZSAqLCB0cmVlICosIGludCwK KysJCQkJZW51bSBnZmNfYXJyYXlfa2luZCk7CisgdHJlZSBnZmNfZ2V0X25vZGVzY19hcnJheV90 eXBlICh0cmVlLCBnZmNfYXJyYXlfc3BlYyAqLCBpbnQpOworIAorIC8qIEFkZCBhIGZpZWxkIG9m IGdpdmVuIG5hbWUgYW5kIHR5cGUgdG8gYSBVTklPTl9UWVBFIG9yIFJFQ09SRF9UWVBFLiAgKi8K Ky0tLSBnY2MvZHdhcmYyLmguamoJMjAwNy0wMi0yMCAyMjozOToxMi4wMDAwMDAwMDAgKzAxMDAK KysrKyBnY2MvZHdhcmYyLmgJMjAwNy0xMS0yNCAxNDo1ODoyMC4wMDAwMDAwMDAgKzAxMDAKK0BA IC0yNzUsNyArMjc1LDggQEAgZW51bSBkd2FyZl9hdHRyaWJ1dGUKKyAgICAgRFdfQVRfcHJvdG90 eXBlZCA9IDB4MjcsCisgICAgIERXX0FUX3JldHVybl9hZGRyID0gMHgyYSwKKyAgICAgRFdfQVRf c3RhcnRfc2NvcGUgPSAweDJjLAorLSAgICBEV19BVF9zdHJpZGVfc2l6ZSA9IDB4MmUsCisrICAg IERXX0FUX2JpdF9zdHJpZGUgPSAweDJlLAorKyAgICBEV19BVF9zdHJpZGVfc2l6ZSA9IERXX0FU X2JpdF9zdHJpZGUsCisgICAgIERXX0FUX3VwcGVyX2JvdW5kID0gMHgyZiwKKyAgICAgRFdfQVRf YWJzdHJhY3Rfb3JpZ2luID0gMHgzMSwKKyAgICAgRFdfQVRfYWNjZXNzaWJpbGl0eSA9IDB4MzIs CitAQCAtMzEwLDcgKzMxMSw4IEBAIGVudW0gZHdhcmZfYXR0cmlidXRlCisgICAgIERXX0FUX2Fs bG9jYXRlZCAgICAgPSAweDRlLAorICAgICBEV19BVF9hc3NvY2lhdGVkICAgID0gMHg0ZiwKKyAg ICAgRFdfQVRfZGF0YV9sb2NhdGlvbiA9IDB4NTAsCistICAgIERXX0FUX3N0cmlkZSAgICAgICAg PSAweDUxLAorKyAgICBEV19BVF9ieXRlX3N0cmlkZSAgID0gMHg1MSwKKysgICAgRFdfQVRfc3Ry aWRlICAgICAgICA9IERXX0FUX2J5dGVfc3RyaWRlLAorICAgICBEV19BVF9lbnRyeV9wYyAgICAg ID0gMHg1MiwKKyAgICAgRFdfQVRfdXNlX1VURjggICAgICA9IDB4NTMsCisgICAgIERXX0FUX2V4 dGVuc2lvbiAgICAgPSAweDU0LAorLS0tIGdjYy9sYW5naG9va3MuaC5qagkyMDA3LTExLTIzIDE3 OjQxOjE1LjAwMDAwMDAwMCArMDEwMAorKysrIGdjYy9sYW5naG9va3MuaAkyMDA3LTExLTI0IDE1 OjAxOjMyLjAwMDAwMDAwMCArMDEwMAorQEAgLTI4LDYgKzI4LDggQEAgc3RydWN0IGRpYWdub3N0 aWNfaW5mbzsKKyAKKyBzdHJ1Y3QgZ2ltcGxpZnlfb21wX2N0eDsKKyAKKytzdHJ1Y3QgYXJyYXlf ZGVzY3JfaW5mbzsKKysKKyAvKiBBIHByaW50IGhvb2sgZm9yIHByaW50X3RyZWUgKCkuICAqLwor IHR5cGVkZWYgdm9pZCAoKmxhbmdfcHJpbnRfdHJlZV9ob29rKSAoRklMRSAqLCB0cmVlLCBpbnQg aW5kZW50KTsKKyAKK0BAIC0xNTMsNiArMTU1LDEwIEBAIHN0cnVjdCBsYW5nX2hvb2tzX2Zvcl90 eXBlcworICAgICAgQ2FsbGVkIG9ubHkgYWZ0ZXIgZG9pbmcgYWxsIGxhbmd1YWdlIGluZGVwZW5k ZW50IGNoZWNrcy4gICovCisgICBib29sICgqdHlwZV9oYXNoX2VxKSAodHJlZSwgdHJlZSk7Cisg CisrICAvKiBSZXR1cm4gVFJVRSBpZiBUWVBFIHVzZXMgYSBoaWRkZW4gZGVzY3JpcHRvciBhbmQg ZmlsbHMgaW4gaW5mb3JtYXRpb24KKysgICAgIGZvciB0aGUgZGVidWdnZXIgYWJvdXQgdGhlIGFy cmF5IGJvdW5kcywgc3RyaWRlcywgZXRjLiAgKi8KKysgIGJvb2wgKCpnZXRfYXJyYXlfZGVzY3Jf aW5mbykgKHRyZWUsIHN0cnVjdCBhcnJheV9kZXNjcl9pbmZvICopOworKworICAgLyogTm9uemVy byBpZiB0eXBlcyB0aGF0IGFyZSBpZGVudGljYWwgYXJlIHRvIGJlIGhhc2hlZCBzbyB0aGF0IG9u bHkKKyAgICAgIG9uZSBjb3B5IGlzIGtlcHQuICBJZiBhIGxhbmd1YWdlIHJlcXVpcmVzIHVuaXF1 ZSB0eXBlcyBmb3IgZWFjaAorICAgICAgdXNlci1zcGVjaWZpZWQgdHlwZSwgc3VjaCBhcyBBZGEs IHRoaXMgc2hvdWxkIGJlIHNldCB0byBUUlVFLiAgKi8KKy0tLSBnY2MvbGFuZ2hvb2tzLWRlZi5o LmpqCTIwMDctMTEtMjMgMTc6NDE6MTUuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2xhbmdob29r cy1kZWYuaAkyMDA3LTExLTI0IDE1OjAwOjQ3LjAwMDAwMDAwMCArMDEwMAorQEAgLTIyMyw2ICsy MjMsNyBAQCBleHRlcm4gdHJlZSBsaGRfbWFrZV9ub2RlIChlbnVtIHRyZWVfY29kCisgI2RlZmlu ZSBMQU5HX0hPT0tTX09NUF9GSVJTVFBSSVZBVElaRV9UWVBFX1NJWkVTIFwKKyAgIGxoZF9vbXBf Zmlyc3Rwcml2YXRpemVfdHlwZV9zaXplcworICNkZWZpbmUgTEFOR19IT09LU19UWVBFX0hBU0hf RVEJCWxoZF90eXBlX2hhc2hfZXEKKysjZGVmaW5lIExBTkdfSE9PS1NfR0VUX0FSUkFZX0RFU0NS X0lORk8JTlVMTAorICNkZWZpbmUgTEFOR19IT09LU19IQVNIX1RZUEVTCQl0cnVlCisgCisgI2Rl ZmluZSBMQU5HX0hPT0tTX0ZPUl9UWVBFU19JTklUSUFMSVpFUiB7IFwKK0BAIC0yMzgsNiArMjM5 LDcgQEAgZXh0ZXJuIHRyZWUgbGhkX21ha2Vfbm9kZSAoZW51bSB0cmVlX2NvZAorICAgTEFOR19I T09LU19UWVBFX01BWF9TSVpFLCBcCisgICBMQU5HX0hPT0tTX09NUF9GSVJTVFBSSVZBVElaRV9U WVBFX1NJWkVTLCBcCisgICBMQU5HX0hPT0tTX1RZUEVfSEFTSF9FUSwgXAorKyAgTEFOR19IT09L U19HRVRfQVJSQVlfREVTQ1JfSU5GTywgXAorICAgTEFOR19IT09LU19IQVNIX1RZUEVTIFwKKyB9 CisgCistLS0gZ2NjL2R3YXJmMm91dC5jLmpqCTIwMDctMTEtMjMgMTg6MTA6MjAuMDAwMDAwMDAw ICswMTAwCisrKysgZ2NjL2R3YXJmMm91dC5jCTIwMDctMTEtMjQgMTQ6NTg6MjAuMDAwMDAwMDAw ICswMTAwCitAQCAtNDE0Niw2ICs0MTQ2LDcgQEAgc3RhdGljIHRyZWUgbWVtYmVyX2RlY2xhcmVk X3R5cGUgKHRyZWUpOworIHN0YXRpYyBjb25zdCBjaGFyICpkZWNsX3N0YXJ0X2xhYmVsICh0cmVl KTsKKyAjZW5kaWYKKyBzdGF0aWMgdm9pZCBnZW5fYXJyYXlfdHlwZV9kaWUgKHRyZWUsIGR3X2Rp ZV9yZWYpOworK3N0YXRpYyB2b2lkIGdlbl9kZXNjcl9hcnJheV90eXBlX2RpZSAodHJlZSwgc3Ry dWN0IGFycmF5X2Rlc2NyX2luZm8gKiwgZHdfZGllX3JlZik7CisgI2lmIDAKKyBzdGF0aWMgdm9p ZCBnZW5fZW50cnlfcG9pbnRfZGllICh0cmVlLCBkd19kaWVfcmVmKTsKKyAjZW5kaWYKK0BAIC00 NTUyLDggKzQ1NTMsOCBAQCBkd2FyZl9hdHRyX25hbWUgKHVuc2lnbmVkIGludCBhdHRyKQorICAg ICAgIHJldHVybiAiRFdfQVRfcmV0dXJuX2FkZHIiOworICAgICBjYXNlIERXX0FUX3N0YXJ0X3Nj b3BlOgorICAgICAgIHJldHVybiAiRFdfQVRfc3RhcnRfc2NvcGUiOworLSAgICBjYXNlIERXX0FU X3N0cmlkZV9zaXplOgorLSAgICAgIHJldHVybiAiRFdfQVRfc3RyaWRlX3NpemUiOworKyAgICBj YXNlIERXX0FUX2JpdF9zdHJpZGU6CisrICAgICAgcmV0dXJuICJEV19BVF9iaXRfc3RyaWRlIjsK KyAgICAgY2FzZSBEV19BVF91cHBlcl9ib3VuZDoKKyAgICAgICByZXR1cm4gIkRXX0FUX3VwcGVy X2JvdW5kIjsKKyAgICAgY2FzZSBEV19BVF9hYnN0cmFjdF9vcmlnaW46CitAQCAtNDYyMSw4ICs0 NjIyLDggQEAgZHdhcmZfYXR0cl9uYW1lICh1bnNpZ25lZCBpbnQgYXR0cikKKyAgICAgICByZXR1 cm4gIkRXX0FUX2Fzc29jaWF0ZWQiOworICAgICBjYXNlIERXX0FUX2RhdGFfbG9jYXRpb246Cisg ICAgICAgcmV0dXJuICJEV19BVF9kYXRhX2xvY2F0aW9uIjsKKy0gICAgY2FzZSBEV19BVF9zdHJp ZGU6CistICAgICAgcmV0dXJuICJEV19BVF9zdHJpZGUiOworKyAgICBjYXNlIERXX0FUX2J5dGVf c3RyaWRlOgorKyAgICAgIHJldHVybiAiRFdfQVRfYnl0ZV9zdHJpZGUiOworICAgICBjYXNlIERX X0FUX2VudHJ5X3BjOgorICAgICAgIHJldHVybiAiRFdfQVRfZW50cnlfcGMiOworICAgICBjYXNl IERXX0FUX3VzZV9VVEY4OgorQEAgLTExMTY5LDYgKzExMTcwLDE1OSBAQCBnZW5fYXJyYXlfdHlw ZV9kaWUgKHRyZWUgdHlwZSwgZHdfZGllX3JlCisgICBhZGRfdHlwZV9hdHRyaWJ1dGUgKGFycmF5 X2RpZSwgZWxlbWVudF90eXBlLCAwLCAwLCBjb250ZXh0X2RpZSk7CisgfQorIAorK3N0YXRpYyBk d19sb2NfZGVzY3JfcmVmCisrZGVzY3JfaW5mb19sb2MgKHRyZWUgdmFsLCB0cmVlIGJhc2VfZGVj bCkKKyt7CisrICBIT1NUX1dJREVfSU5UIHNpemU7CisrICBkd19sb2NfZGVzY3JfcmVmIGxvYywg bG9jMjsKKysgIGVudW0gZHdhcmZfbG9jYXRpb25fYXRvbSBvcDsKKysKKysgIGlmICh2YWwgPT0g YmFzZV9kZWNsKQorKyAgICByZXR1cm4gbmV3X2xvY19kZXNjciAoRFdfT1BfcHVzaF9vYmplY3Rf YWRkcmVzcywgMCwgMCk7CisrCisrICBzd2l0Y2ggKFRSRUVfQ09ERSAodmFsKSkKKysgICAgewor KyAgICBjYXNlIE5PUF9FWFBSOgorKyAgICBjYXNlIENPTlZFUlRfRVhQUjoKKysgICAgICByZXR1 cm4gZGVzY3JfaW5mb19sb2MgKFRSRUVfT1BFUkFORCAodmFsLCAwKSwgYmFzZV9kZWNsKTsKKysg ICAgY2FzZSBJTlRFR0VSX0NTVDoKKysgICAgICBpZiAoaG9zdF9pbnRlZ2VycCAodmFsLCAwKSkK KysJcmV0dXJuIGludF9sb2NfZGVzY3JpcHRvciAodHJlZV9sb3dfY3N0ICh2YWwsIDApKTsKKysg ICAgICBicmVhazsKKysgICAgY2FzZSBJTkRJUkVDVF9SRUY6CisrICAgICAgc2l6ZSA9IGludF9z aXplX2luX2J5dGVzIChUUkVFX1RZUEUgKHZhbCkpOworKyAgICAgIGlmIChzaXplIDwgMCkKKysJ YnJlYWs7CisrICAgICAgbG9jID0gZGVzY3JfaW5mb19sb2MgKFRSRUVfT1BFUkFORCAodmFsLCAw KSwgYmFzZV9kZWNsKTsKKysgICAgICBpZiAoIWxvYykKKysJYnJlYWs7CisrICAgICAgaWYgKHNp emUgPT0gRFdBUkYyX0FERFJfU0laRSkKKysJYWRkX2xvY19kZXNjciAoJmxvYywgbmV3X2xvY19k ZXNjciAoRFdfT1BfZGVyZWYsIDAsIDApKTsKKysgICAgICBlbHNlCisrCWFkZF9sb2NfZGVzY3Ig KCZsb2MsIG5ld19sb2NfZGVzY3IgKERXX09QX2RlcmVmX3NpemUsIHNpemUsIDApKTsKKysgICAg ICByZXR1cm4gbG9jOworKyAgICBjYXNlIFBMVVNfRVhQUjoKKysgICAgICBpZiAoaG9zdF9pbnRl Z2VycCAoVFJFRV9PUEVSQU5EICh2YWwsIDEpLCAxKQorKwkgICYmICh1bnNpZ25lZCBIT1NUX1dJ REVfSU5UKSB0cmVlX2xvd19jc3QgKFRSRUVfT1BFUkFORCAodmFsLCAxKSwgMSkKKysJICAgICA8 IDE2Mzg0KQorKwl7CisrCSAgbG9jID0gZGVzY3JfaW5mb19sb2MgKFRSRUVfT1BFUkFORCAodmFs LCAwKSwgYmFzZV9kZWNsKTsKKysJICBpZiAoIWxvYykKKysJICAgIGJyZWFrOworKwkgIGFkZF9s b2NfZGVzY3IgKCZsb2MsCisrCQkJIG5ld19sb2NfZGVzY3IgKERXX09QX3BsdXNfdWNvbnN0LAor KwkJCQkJdHJlZV9sb3dfY3N0IChUUkVFX09QRVJBTkQgKHZhbCwgMSksCisrCQkJCQkJICAgICAg MSksIDApKTsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIG9wID0gRFdfT1BfcGx1czsKKysJ ZG9fYmlub3A6CisrCSAgbG9jID0gZGVzY3JfaW5mb19sb2MgKFRSRUVfT1BFUkFORCAodmFsLCAw KSwgYmFzZV9kZWNsKTsKKysJICBpZiAoIWxvYykKKysJICAgIGJyZWFrOworKwkgIGxvYzIgPSBk ZXNjcl9pbmZvX2xvYyAoVFJFRV9PUEVSQU5EICh2YWwsIDEpLCBiYXNlX2RlY2wpOworKwkgIGlm ICghbG9jMikKKysJICAgIGJyZWFrOworKwkgIGFkZF9sb2NfZGVzY3IgKCZsb2MsIGxvYzIpOwor KwkgIGFkZF9sb2NfZGVzY3IgKCZsb2MyLCBuZXdfbG9jX2Rlc2NyIChvcCwgMCwgMCkpOworKwl9 CisrICAgICAgcmV0dXJuIGxvYzsKKysgICAgY2FzZSBNSU5VU19FWFBSOgorKyAgICAgIG9wID0g RFdfT1BfbWludXM7CisrICAgICAgZ290byBkb19iaW5vcDsKKysgICAgY2FzZSBNVUxUX0VYUFI6 CisrICAgICAgb3AgPSBEV19PUF9tdWw7CisrICAgICAgZ290byBkb19iaW5vcDsKKysgICAgY2Fz ZSBFUV9FWFBSOgorKyAgICAgIG9wID0gRFdfT1BfZXE7CisrICAgICAgZ290byBkb19iaW5vcDsK KysgICAgY2FzZSBORV9FWFBSOgorKyAgICAgIG9wID0gRFdfT1BfbmU7CisrICAgICAgZ290byBk b19iaW5vcDsKKysgICAgZGVmYXVsdDoKKysgICAgICBicmVhazsKKysgICAgfQorKyAgcmV0dXJu IE5VTEw7CisrfQorKworK3N0YXRpYyB2b2lkCisrYWRkX2Rlc2NyX2luZm9fZmllbGQgKGR3X2Rp ZV9yZWYgZGllLCBlbnVtIGR3YXJmX2F0dHJpYnV0ZSBhdHRyLAorKwkJICAgICAgdHJlZSB2YWws IHRyZWUgYmFzZV9kZWNsKQorK3sKKysgIGR3X2xvY19kZXNjcl9yZWYgbG9jOworKworKyAgaWYg KGhvc3RfaW50ZWdlcnAgKHZhbCwgMCkpCisrICAgIHsKKysgICAgICBhZGRfQVRfdW5zaWduZWQg KGRpZSwgYXR0ciwgdHJlZV9sb3dfY3N0ICh2YWwsIDApKTsKKysgICAgICByZXR1cm47CisrICAg IH0KKysKKysgIGxvYyA9IGRlc2NyX2luZm9fbG9jICh2YWwsIGJhc2VfZGVjbCk7CisrICBpZiAo IWxvYykKKysgICAgcmV0dXJuOworKworKyAgYWRkX0FUX2xvYyAoZGllLCBhdHRyLCBsb2MpOwor K30KKysKKysvKiBUaGlzIHJvdXRpbmUgZ2VuZXJhdGVzIERJRSBmb3IgYXJyYXkgd2l0aCBoaWRk ZW4gZGVzY3JpcHRvciwgZGV0YWlscworKyAgIGFyZSBmaWxsZWQgaW50byAqaW5mbyBieSBhIGxh bmdob29rLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK2dlbl9kZXNjcl9hcnJheV90eXBlX2RpZSAo dHJlZSB0eXBlLCBzdHJ1Y3QgYXJyYXlfZGVzY3JfaW5mbyAqaW5mbywKKysJCQkgIGR3X2RpZV9y ZWYgY29udGV4dF9kaWUpCisreworKyAgZHdfZGllX3JlZiBzY29wZV9kaWUgPSBzY29wZV9kaWVf Zm9yICh0eXBlLCBjb250ZXh0X2RpZSk7CisrICBkd19kaWVfcmVmIGFycmF5X2RpZTsKKysgIGlu dCBkaW07CisrCisrICBhcnJheV9kaWUgPSBuZXdfZGllIChEV19UQUdfYXJyYXlfdHlwZSwgc2Nv cGVfZGllLCB0eXBlKTsKKysgIGFkZF9uYW1lX2F0dHJpYnV0ZSAoYXJyYXlfZGllLCB0eXBlX3Rh ZyAodHlwZSkpOworKyAgZXF1YXRlX3R5cGVfbnVtYmVyX3RvX2RpZSAodHlwZSwgYXJyYXlfZGll KTsKKysKKysgIGlmIChpbmZvLT5kYXRhX2xvY2F0aW9uKQorKyAgICBhZGRfZGVzY3JfaW5mb19m aWVsZCAoYXJyYXlfZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBpbmZvLT5kYXRhX2xvY2F0aW9u LAorKwkJCSAgaW5mby0+YmFzZV9kZWNsKTsKKysgIGlmIChpbmZvLT5hc3NvY2lhdGVkKQorKyAg ICBhZGRfZGVzY3JfaW5mb19maWVsZCAoYXJyYXlfZGllLCBEV19BVF9hc3NvY2lhdGVkLCBpbmZv LT5hc3NvY2lhdGVkLAorKwkJCSAgaW5mby0+YmFzZV9kZWNsKTsKKysgIGlmIChpbmZvLT5hbGxv Y2F0ZWQpCisrICAgIGFkZF9kZXNjcl9pbmZvX2ZpZWxkIChhcnJheV9kaWUsIERXX0FUX2FsbG9j YXRlZCwgaW5mby0+YWxsb2NhdGVkLAorKwkJCSAgaW5mby0+YmFzZV9kZWNsKTsKKysKKysgIGZv ciAoZGltID0gMDsgZGltIDwgaW5mby0+bmRpbWVuc2lvbnM7IGRpbSsrKQorKyAgICB7CisrICAg ICAgZHdfZGllX3JlZiBzdWJyYW5nZV9kaWUKKysJPSBuZXdfZGllIChEV19UQUdfc3VicmFuZ2Vf dHlwZSwgYXJyYXlfZGllLCBOVUxMKTsKKysKKysgICAgICBpZiAoaW5mby0+ZGltZW5bZGltXS5s b3dlcl9ib3VuZCkKKysJeworKwkgIC8qIElmIGl0IGlzIHRoZSBkZWZhdWx0IHZhbHVlLCBvbWl0 IGl0LiAgKi8KKysJICBpZiAoKGlzX2NfZmFtaWx5ICgpIHx8IGlzX2phdmEgKCkpCisrCSAgICAg ICYmIGludGVnZXJfemVyb3AgKGluZm8tPmRpbWVuW2RpbV0ubG93ZXJfYm91bmQpKQorKwkgICAg OworKwkgIGVsc2UgaWYgKGlzX2ZvcnRyYW4gKCkKKysJCSAgICYmIGludGVnZXJfb25lcCAoaW5m by0+ZGltZW5bZGltXS5sb3dlcl9ib3VuZCkpCisrCSAgICA7CisrCSAgZWxzZQorKwkgICAgYWRk X2Rlc2NyX2luZm9fZmllbGQgKHN1YnJhbmdlX2RpZSwgRFdfQVRfbG93ZXJfYm91bmQsCisrCQkJ CSAgaW5mby0+ZGltZW5bZGltXS5sb3dlcl9ib3VuZCwKKysJCQkJICBpbmZvLT5iYXNlX2RlY2wp OworKwl9CisrICAgICAgaWYgKGluZm8tPmRpbWVuW2RpbV0udXBwZXJfYm91bmQpCisrCWFkZF9k ZXNjcl9pbmZvX2ZpZWxkIChzdWJyYW5nZV9kaWUsIERXX0FUX3VwcGVyX2JvdW5kLAorKwkJCSAg ICAgIGluZm8tPmRpbWVuW2RpbV0udXBwZXJfYm91bmQsCisrCQkJICAgICAgaW5mby0+YmFzZV9k ZWNsKTsKKysgICAgICBpZiAoaW5mby0+ZGltZW5bZGltXS5zdHJpZGUpCisrCWFkZF9kZXNjcl9p bmZvX2ZpZWxkIChzdWJyYW5nZV9kaWUsIERXX0FUX2J5dGVfc3RyaWRlLAorKwkJCSAgICAgIGlu Zm8tPmRpbWVuW2RpbV0uc3RyaWRlLAorKwkJCSAgICAgIGluZm8tPmJhc2VfZGVjbCk7CisrICAg IH0KKysKKysgIGdlbl90eXBlX2RpZSAoaW5mby0+ZWxlbWVudF90eXBlLCBjb250ZXh0X2RpZSk7 CisrICBhZGRfdHlwZV9hdHRyaWJ1dGUgKGFycmF5X2RpZSwgaW5mby0+ZWxlbWVudF90eXBlLCAw LCAwLCBjb250ZXh0X2RpZSk7CisrfQorKworICNpZiAwCisgc3RhdGljIHZvaWQKKyBnZW5fZW50 cnlfcG9pbnRfZGllICh0cmVlIGRlY2wsIGR3X2RpZV9yZWYgY29udGV4dF9kaWUpCitAQCAtMTI0 NzgsNiArMTI2MzIsNyBAQCBzdGF0aWMgdm9pZAorIGdlbl90eXBlX2RpZSAodHJlZSB0eXBlLCBk d19kaWVfcmVmIGNvbnRleHRfZGllKQorIHsKKyAgIGludCBuZWVkX3BvcDsKKysgIHN0cnVjdCBh cnJheV9kZXNjcl9pbmZvIGluZm87CisgCisgICBpZiAodHlwZSA9PSBOVUxMX1RSRUUgfHwgdHlw ZSA9PSBlcnJvcl9tYXJrX25vZGUpCisgICAgIHJldHVybjsKK0BAIC0xMjQ5Niw2ICsxMjY1MSwx NiBAQCBnZW5fdHlwZV9kaWUgKHRyZWUgdHlwZSwgZHdfZGllX3JlZiBjb250CisgICAgICAgcmV0 dXJuOworICAgICB9CisgCisrICAvKiBJZiB0aGlzIGlzIGFuIGFycmF5IHR5cGUgd2l0aCBoaWRk ZW4gZGVzY3JpcHRvciwgaGFuZGxlIGl0IGZpcnN0LiAgKi8KKysgIGlmICghVFJFRV9BU01fV1JJ VFRFTiAodHlwZSkKKysgICAgICAmJiBsYW5nX2hvb2tzLnR5cGVzLmdldF9hcnJheV9kZXNjcl9p bmZvCisrICAgICAgJiYgbGFuZ19ob29rcy50eXBlcy5nZXRfYXJyYXlfZGVzY3JfaW5mbyAodHlw ZSwgJmluZm8pKQorKyAgICB7CisrICAgICAgZ2VuX2Rlc2NyX2FycmF5X3R5cGVfZGllICh0eXBl LCAmaW5mbywgY29udGV4dF9kaWUpOworKyAgICAgIFRSRUVfQVNNX1dSSVRURU4gKHR5cGUpID0g MTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysKKyAgIC8qIFdlIGFyZSBnb2luZyB0byBvdXRw dXQgYSBESUUgdG8gcmVwcmVzZW50IHRoZSB1bnF1YWxpZmllZCB2ZXJzaW9uCisgICAgICBvZiB0 aGlzIHR5cGUgKGkuZS4gd2l0aG91dCBhbnkgY29uc3Qgb3Igdm9sYXRpbGUgcXVhbGlmaWVycykg c28KKyAgICAgIGdldCB0aGUgbWFpbiB2YXJpYW50IChpLmUuIHRoZSB1bnF1YWxpZmllZCB2ZXJz aW9uKSBvZiB0aGlzIHR5cGUKKy0tLSBnY2MvZHdhcmYyb3V0LmguamoJMjAwNy0wMi0yMCAyMjoz OToxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvZHdhcmYyb3V0LmgJMjAwNy0xMS0yNCAxNTow MDoxNC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yNywzICsyNywxOSBAQCBzdHJ1Y3QgZGllX3N0cnVj dDsKKyBleHRlcm4gdm9pZCBkZWJ1Z19kd2FyZl9kaWUgKHN0cnVjdCBkaWVfc3RydWN0ICopOwor IGV4dGVybiB2b2lkIGR3YXJmMm91dF9zZXRfZGVtYW5nbGVfbmFtZV9mdW5jIChjb25zdCBjaGFy ICooKikgKGNvbnN0IGNoYXIgKikpOworIGV4dGVybiB2b2lkIGR3YXJmMm91dF9hZGRfbGlicmFy eV91bml0X2luZm8gKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKKysKKytzdHJ1Y3QgYXJy YXlfZGVzY3JfaW5mbworK3sKKysgIGludCBuZGltZW5zaW9uczsKKysgIHRyZWUgZWxlbWVudF90 eXBlOworKyAgdHJlZSBiYXNlX2RlY2w7CisrICB0cmVlIGRhdGFfbG9jYXRpb247CisrICB0cmVl IGFsbG9jYXRlZDsKKysgIHRyZWUgYXNzb2NpYXRlZDsKKysgIHN0cnVjdCBhcnJheV9kZXNjcl9k aW1lbgorKyAgICB7CisrICAgICAgdHJlZSBsb3dlcl9ib3VuZDsKKysgICAgICB0cmVlIHVwcGVy X2JvdW5kOworKyAgICAgIHRyZWUgc3RyaWRlOworKyAgICB9IGRpbWVuWzEwXTsKKyt9OwoKZGlm ZiAtLWdpdCBhL2djYzQxLnNwZWMgYi9nY2M0MS5zcGVjCmluZGV4IDkwNGUxNTAuLmYzN2JjZmMg MTAwNjQ0Ci0tLSBhL2djYzQxLnNwZWMKKysrIGIvZ2NjNDEuc3BlYwpAQCAtMSw2ICsxLDYgQEAK LSVkZWZpbmUgREFURSAyMDA3MDkyNQorJWRlZmluZSBEQVRFIDIwMDcxMTI0CiAlZGVmaW5lIGdj Y192ZXJzaW9uIDQuMS4yCi0lZGVmaW5lIGdjY19yZWxlYXNlIDMyCislZGVmaW5lIGdjY19yZWxl YXNlIDM0CiAlZGVmaW5lIF91bnBhY2thZ2VkX2ZpbGVzX3Rlcm1pbmF0ZV9idWlsZCAwCiAlZGVm aW5lIG11bHRpbGliXzY0X2FyY2hzIHNwYXJjNjQgcHBjNjQgczM5MHggeDg2XzY0CiAlZGVmaW5l IGluY2x1ZGVfZ2FwcGxldHZpZXdlciAxCkBAIC0xMCw2ICsxMCwxMiBAQAogJWRlZmluZSBidWls ZF9hZGEgMAogJWVuZGlmCiAlZGVmaW5lIGJ1aWxkX2phdmEgMQorIyBJZiB5b3UgZG9uJ3QgaGF2 ZSBhbHJlYWR5IGEgdXNhYmxlIGdjYy1qYXZhIGFuZCBsaWJnY2ogZm9yIHlvdXIgYXJjaCwKKyMg ZG8gb24gc29tZSBhcmNoIHdoaWNoIGhhcyBpdCBycG1idWlsZCAtYmMgLS13aXRoIGphdmFfdGFy IGdjYzQxLnNwZWMKKyMgd2hpY2ggY3JlYXRlcyBsaWJqYXZhLWNsYXNzZXMtJXt2ZXJzaW9ufS0l e3JlbGVhc2V9LnRhci5iejIKKyMgV2l0aCB0aGlzIHRoZW4gb24gdGhlIG5ldyBhcmNoIGRvIHJw bWJ1aWxkIC1iYSAtdiAtLXdpdGggamF2YV9ib290c3RyYXAgZ2NjNDEuc3BlYworJWRlZmluZSBi b290c3RyYXBfamF2YSAlez9fd2l0aF9qYXZhX2Jvb3RzdHJhcDole2J1aWxkX2phdmF9fSV7IT9f d2l0aF9qYXZhX2Jvb3RzdHJhcDowfQorJWRlZmluZSBidWlsZF9qYXZhX3RhciAlez9fd2l0aF9q YXZhX3Rhcjole2J1aWxkX2phdmF9fSV7IT9fd2l0aF9qYXZhX3RhcjowfQogJWlmYXJjaCBzMzkw eAogJWRlZmluZSBtdWx0aWxpYl8zMl9hcmNoIHMzOTAKICVlbmRpZgpAQCAtNDcsNyArNTMsMTIg QEAgQnVpbGRSb290OiAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1y b290CiBCdWlsZFJlcXVpcmVzOiBiaW51dGlscyA+PSAyLjE3LjUwLjAuMTctMwogQnVpbGRSZXF1 aXJlczogemxpYi1kZXZlbCwgZ2V0dGV4dCwgZGVqYWdudSwgYmlzb24sIGZsZXgsIHRleGluZm8s IHNoYXJ1dGlscwogJWlmICV7YnVpbGRfamF2YX0KLUJ1aWxkUmVxdWlyZXM6IGdjYy1qYXZhLCBs aWJnY2osIC91c3Ivc2hhcmUvamF2YS9lY2xpcHNlLWVjai5qYXIsIHppcCwgdW56aXAKK0J1aWxk UmVxdWlyZXM6IC91c3Ivc2hhcmUvamF2YS9lY2xpcHNlLWVjai5qYXIsIHppcCwgdW56aXAKKyVp ZiAle2Jvb3RzdHJhcF9qYXZhfQorU291cmNlMTA6IGxpYmphdmEtY2xhc3Nlcy0le3ZlcnNpb259 LSV7cmVsZWFzZX0udGFyLmJ6MgorJWVsc2UKK0J1aWxkUmVxdWlyZXM6IGdjYy1qYXZhLCBsaWJn Y2oKKyVlbmRpZgogJWVuZGlmCiAjIE1ha2Ugc3VyZSBwdGhyZWFkLmggZG9lc24ndCBjb250YWlu IF9fdGhyZWFkIHRva2VucwogIyBNYWtlIHN1cmUgZ2xpYmMgc3VwcG9ydHMgc3RhY2sgcHJvdGVj dG9yCkBAIC0xNTQsMTAgKzE2NSw0MCBAQCBQYXRjaDM3OiBnY2M0MS1wcjMzMTM2LnBhdGNoCiBQ YXRjaDM4OiBnY2M0MS1wcjMzMjM4LnBhdGNoCiBQYXRjaDM5OiBnY2M0MS1wcjMzNjE5LnBhdGNo CiBQYXRjaDQwOiBnY2M0MS1wcjMzNjM5LnBhdGNoCi1QYXRjaDQxOiBnY2M0MS1wcjMzNzQ0LnBh dGNoCiBQYXRjaDQyOiBnY2M0MS1wcjMzNzYzLnBhdGNoCiBQYXRjaDQzOiBnY2M0MS1yaDMxNzA1 MS5wYXRjaAogUGF0Y2g0NDogZ2NjNDEtcmgzMzA3NzEucGF0Y2gKK1BhdGNoNDU6IGdjYzQxLXJo MzQxMjIxLnBhdGNoCitQYXRjaDQ3OiBnY2M0MS1qYXZhLWFybTEucGF0Y2gKK1BhdGNoNDg6IGdj YzQxLWphdmEtYXJtMi5wYXRjaAorUGF0Y2g0OTogZ2NjNDEtamF2YS1hcm0zLnBhdGNoCitQYXRj aDUwOiBnY2M0MS1qYXZhLWFybTQucGF0Y2gKK1BhdGNoNTE6IGdjYzQxLWphdmEtYXJtNS5wYXRj aAorUGF0Y2g1MjogZ2NjNDEtamF2YS1hcm02LnBhdGNoCitQYXRjaDUzOiBnY2M0MS1qYXZhLWFy bTcucGF0Y2gKK1BhdGNoNTQ6IGdjYzQxLWphdmEtYXJtOC5wYXRjaAorUGF0Y2g1NTogZ2NjNDEt cHIyMzg0OC5wYXRjaAorUGF0Y2g1NjogZ2NjNDEtcHIyOTIyNS5wYXRjaAorUGF0Y2g1NzogZ2Nj NDEtcHIyOTcxMi5wYXRjaAorUGF0Y2g1ODogZ2NjNDEtcHIzMDI5My5wYXRjaAorUGF0Y2g1OTog Z2NjNDEtcHIzMDk4OC5wYXRjaAorUGF0Y2g2MDogZ2NjNDEtcHIzMjI0MS5wYXRjaAorUGF0Y2g2 MTogZ2NjNDEtcHIzMjM4NC5wYXRjaAorUGF0Y2g2MjogZ2NjNDEtcHIzMzUwMS5wYXRjaAorUGF0 Y2g2MzogZ2NjNDEtcHIzMzUxNi5wYXRjaAorUGF0Y2g2NDogZ2NjNDEtcHIzMzUzNy5wYXRjaAor UGF0Y2g2NTogZ2NjNDEtcHIzMzYxNi5wYXRjaAorUGF0Y2g2NjogZ2NjNDEtcHIzMzcyMy5wYXRj aAorUGF0Y2g2NzogZ2NjNDEtcHIzMzgzNi5wYXRjaAorUGF0Y2g2ODogZ2NjNDEtcHIzMzg0Mi5w YXRjaAorUGF0Y2g2OTogZ2NjNDEtcHIzMzg0NC5wYXRjaAorUGF0Y2g3MDogZ2NjNDEtcHIzMzk2 Mi5wYXRjaAorUGF0Y2g3MTogZ2NjNDEtcHIzNDA3MC5wYXRjaAorUGF0Y2g3MjogZ2NjNDEtcHIz NDA4OS5wYXRjaAorUGF0Y2g3MzogZ2NjNDEtcHIzNDA5NC5wYXRjaAorUGF0Y2g3NDogZ2NjNDEt cHIzNDEzMC5wYXRjaAorUGF0Y2g3NTogZ2NjNDEtcHIzNDE0Ni5wYXRjaAorUGF0Y2g3NjogZ2Nj NDEtcmgzNjQwMDEucGF0Y2gKIAogIyBPbiBBUk0gRUFCSSBzeXN0ZW1zLCB3ZSBkbyB3YW50IC1n bnVlYWJpIHRvIGJlIHBhcnQgb2YgdGhlCiAjIHRhcmdldCB0cmlwbGUuCkBAIC00ODEsMTAgKzUy Miw0NCBAQCB3aGljaCBhcmUgcmVxdWlyZWQgdG8gcnVuIHByb2dyYW1zIGNvbXBpbGVkIHdpdGgg dGhlIEdOQVQuCiAlcGF0Y2gzOCAtcDAgLWIgLnByMzMyMzh+CiAlcGF0Y2gzOSAtcDAgLWIgLnBy MzM2MTl+CiAlcGF0Y2g0MCAtcDAgLWIgLnByMzM2Mzl+Ci0lcGF0Y2g0MSAtcDAgLWIgLnByMzM3 NDR+CiAlcGF0Y2g0MiAtcDAgLWIgLnByMzM3NjN+CiAlcGF0Y2g0MyAtcDAgLWIgLnJoMzE3MDUx fgogJXBhdGNoNDQgLXAwIC1iIC5yaDMzMDc3MX4KKyVwYXRjaDQ1IC1wMCAtYiAucmgzNDEyMjF+ CislcGF0Y2g0NyAtcDAgLWIgLmphdmEtYXJtMX4KKyVwYXRjaDQ4IC1wMCAtYiAuamF2YS1hcm0y fgorJXBhdGNoNDkgLXAwIC1iIC5qYXZhLWFybTN+CislcGF0Y2g1MCAtcDAgLWIgLmphdmEtYXJt NH4KKyVwYXRjaDUxIC1wMCAtYiAuamF2YS1hcm01fgorJXBhdGNoNTIgLXAwIC1iIC5qYXZhLWFy bTZ+CislcGF0Y2g1MyAtcDAgLWIgLmphdmEtYXJtN34KKyVwYXRjaDU0IC1wMCAtYiAuamF2YS1h cm04fgorJXBhdGNoNTUgLXAwIC1iIC5wcjIzODQ4fgorJXBhdGNoNTYgLXAwIC1iIC5wcjI5MjI1 fgorJXBhdGNoNTcgLXAwIC1iIC5wcjI5NzEyfgorJXBhdGNoNTggLXAwIC1iIC5wcjMwMjkzfgor JXBhdGNoNTkgLXAwIC1iIC5wcjMwOTg4fgorJXBhdGNoNjAgLXAwIC1iIC5wcjMyMjQxfgorJXBh dGNoNjEgLXAwIC1iIC5wcjMyMzg0fgorJXBhdGNoNjIgLXAwIC1iIC5wcjMzNTAxfgorJXBhdGNo NjMgLXAwIC1iIC5wcjMzNTE2fgorJXBhdGNoNjQgLXAwIC1iIC5wcjMzNTM3fgorJXBhdGNoNjUg LXAwIC1iIC5wcjMzNjE2fgorJXBhdGNoNjYgLXAwIC1iIC5wcjMzNzIzfgorJXBhdGNoNjcgLXAw IC1iIC5wcjMzODM2fgorJXBhdGNoNjggLXAwIC1iIC5wcjMzODQyfgorJXBhdGNoNjkgLXAwIC1i IC5wcjMzODQ0fgorJXBhdGNoNzAgLXAwIC1iIC5wcjMzOTYyfgorJXBhdGNoNzEgLXAwIC1iIC5w cjM0MDcwfgorJXBhdGNoNzIgLXAwIC1iIC5wcjM0MDg5fgorJXBhdGNoNzMgLXAwIC1iIC5wcjM0 MDk0fgorJXBhdGNoNzQgLXAwIC1iIC5wcjM0MTMwfgorJXBhdGNoNzUgLXAwIC1iIC5wcjM0MTQ2 fgorJXBhdGNoNzYgLXAwIC1iIC5yaDM2NDAwMX4KKworJWlmICV7Ym9vdHN0cmFwX2phdmF9Cit0 YXIgeGpmICV7U09VUkNFMTB9CislZW5kaWYKIAogc2VkIC1pIC1lICdzLzRcLjFcLjMvNC4xLjIv JyBnY2MvQkFTRS1WRVIgZ2NjL3ZlcnNpb24uYwogc2VkIC1pIC1lICdzLyIgKFJlZCBIYXRbXild KikiLyIgKFJlZCBIYXQgJXt2ZXJzaW9ufS0le2djY19yZWxlYXNlfSkiLycgZ2NjL3ZlcnNpb24u YwpAQCAtNTMxLDYgKzYwNiw3IEBAIGlmIFsgISAtZiAvdXNyL2xpYi9sb2NhbGUvZGVfREUvTENf Q1RZUEUgXTsgdGhlbgogZmkKIAogJWlmICV7YnVpbGRfamF2YX0KKyVpZiAhJXtib290c3RyYXBf amF2YX0KICMgSWYgd2UgZG9uJ3QgaGF2ZSBnamF2YWggaW4gJFBBVEgsIHRyeSB0byBidWlsZCBp dCB3aXRoIHRoZSBvbGQgZ2lqCiBta2RpciBqYXZhX2hhY2tzCiBjZCBqYXZhX2hhY2tzCkBAIC01 NTcsNiArNjMzLDcgQEAgY2htb2QgK3ggYHB3ZGAvZWNqMQogZXhwb3J0IFBBVEg9YHB3ZGAke1BB VEg6KzokUEFUSH0KIGNkIC4uCiAlZW5kaWYKKyVlbmRpZgogCiBDQz1nY2MKIE9QVF9GTEFHUz1g ZWNobyAkUlBNX09QVF9GTEFHU3xzZWQgLWUgJ3MvXCgtV3AsXClcPy1EX0ZPUlRJRllfU09VUkNF PVsxMl0vL2cnYApAQCAtNjA3LDYgKzY4NCw5IEBAIENDPSIkQ0MiIENGTEFHUz0iJE9QVF9GTEFH UyIgQ1hYRkxBR1M9IiRPUFRfRkxBR1MiIFhDRkxBR1M9IiRPUFRfRkxBR1MiIFRDRkxBR1M9CiAJ LS1lbmFibGUtbGliZ2NqLW11bHRpZmlsZSAtLWVuYWJsZS1qYXZhLW1haW50YWluZXItbW9kZSBc CiAJLS13aXRoLWVjai1qYXI9L3Vzci9zaGFyZS9qYXZhL2VjbGlwc2UtZWNqLmphciBcCiAlZW5k aWYKKyVpZmFyY2ggJXthcm19CisJLS1kaXNhYmxlLXNqbGotZXhjZXB0aW9ucyBcCislZW5kaWYK ICVpZmFyY2ggcHBjIHBwYzY0CiAJLS1lbmFibGUtc2VjdXJlcGx0IFwKICVlbmRpZgpAQCAtNzA3 LDYgKzc4NywxMyBAQCBjcCAtcCBsaWJqYXZhL0xJQkdDSl9MSUNFTlNFIHJwbS5kb2MvbGliamF2 YS8KIHJtIC1mIHJwbS5kb2MvY2hhbmdlbG9ncy9nY2MvQ2hhbmdlTG9nLlsxLTldCiBmaW5kIHJw bS5kb2MgLW5hbWUgXCpDaGFuZ2VMb2dcKiB8IHhhcmdzIGJ6aXAyIC05CiAKKyVpZiAle2J1aWxk X2phdmFfdGFyfQorZmluZCBsaWJqYXZhIC1uYW1lIFwqLmggLXR5cGUgZiB8IHhhcmdzIGdyZXAg LWwgJy8vIERPIE5PVCBFRElUIFRISVMgRklMRSAtIGl0IGlzIG1hY2hpbmUgZ2VuZXJhdGVkJyA+ IGxpYmphdmEtY2xhc3Nlcy5saXN0CitmaW5kIGxpYmphdmEgLW5hbWUgXCouY2xhc3MgLXR5cGUg ZiA+PiBsaWJqYXZhLWNsYXNzZXMubGlzdAorZmluZCBsaWJqYXZhL3Rlc3RzdWl0ZSAtbmFtZSBc Ki5qYXIgLXR5cGUgZiA+PiBsaWJqYXZhLWNsYXNzZXMubGlzdAordGFyIGNmIC0gLVQgbGliamF2 YS1jbGFzc2VzLmxpc3QgfCBiemlwMiAtOSA+ICRSUE1fU09VUkNFX0RJUi9saWJqYXZhLWNsYXNz ZXMtJXt2ZXJzaW9ufS0le3JlbGVhc2V9LnRhci5iejIKKyVlbmRpZgorCiAlaW5zdGFsbAogcm0g LWZyICRSUE1fQlVJTERfUk9PVAogCkBAIC03MjIsOCArODA5LDEwIEBAIGlmIFsgISAtZiAvdXNy L2xpYi9sb2NhbGUvZGVfREUvTENfQ1RZUEUgXTsgdGhlbgogZmkKIAogJWlmICV7YnVpbGRfamF2 YX0KKyVpZiAhJXtib290c3RyYXBfamF2YX0KIGV4cG9ydCBQQVRIPWBwd2RgL2phdmFfaGFja3Mk e1BBVEg6KzokUEFUSH0KICVlbmRpZgorJWVuZGlmCiAKIFRBUkdFVF9QTEFURk9STT0le2djY190 YXJnZXRfcGxhdGZvcm19CiAKQEAgLTE2MzksNiArMTcyOCwzNSBAQCBmaQogJWRvYyBycG0uZG9j L2NoYW5nZWxvZ3MvbGlibXVkZmxhcC9DaGFuZ2VMb2cqCiAKICVjaGFuZ2Vsb2cKKyogU2F0IE5v diAyNCAyMDA3IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMS4yLTM0CistIHVw ZGF0ZSBmcm9tIGdjYy00XzEtYnJhbmNoICgtcjEyODczNjoxMzAzODcpCisgIC0gUFJzIG1pZGRs ZS1lbmQvMzQwMzAsIHJ0bC1vcHRpbWl6YXRpb24vMjgwNjIsIHJ0bC1vcHRpbWl6YXRpb24vMzM4 MjIKKyAgLSBmaXggaWYtY29udmVyc2lvbiB0byBhdm9pZCBpbnRyb2R1Y2luZyByYWNlcyBpbnRv IHRocmVhZGVkIGNvZGUKKyAgICAoSWFuIExhbmNlIFRheWxvciwgIzM5MTczMSkKKy0gc29tZSBD KysgdmlzaWJpbGl0eSBmaXhlcyAoSmFzb24gTWVycmlsbCwgUFJzIGMrKy8zMjQ3MCwgYysrLzMz MDk0LAorICBjKysvMjkzNjUpCistIGFybSBKYXZhIHN1cHBvcnQgKEFuZHJldyBIYWxleSwgIzI0 NjgwMCkKKy0gYWRkIHBvc3NpYmlsaXR5IHRvIGJvb3RzdHJhcCBnY2ogb24gYXJjaGl0ZWN0dXJl cyB3aGVyZSBsaWJnY2oKKyAgaXNuJ3QgYWxyZWFkeSBhdmFpbGFibGUgb3IgaXMgdG9vIG9sZCAt IGJ1aWxkIG9uIHNvbWUgYWxyZWFkeQorICBzdXBwb3J0ZWQgYXJjaCB0aGUgcnBtIHdpdGggLS13 aXRoIGphdmFfdGFyIGFuZCB0aGUgY3JlYXRlZAorICB0YXJiYWxsIGJyaW5nIHRvIHRoZSBuZXcg YXJjaCBhbmQgYnVpbGQgLS13aXRoIGphdmFfYm9vdHN0cmFwCistIGJhY2twb3J0IGEgYnVuY2gg b2YgYnVnZml4ZXMgZnJvbSBHQ0MgdHJ1bmsKKyAgLSBQUnMgYysrLzI5MjI1LCBjKysvMzAyOTMs IGMrKy8zMDI5NCwgYysrLzMwOTg4LCBjKysvMzIyNDEsCisJYysrLzMyMzg0LCBjKysvMzM1MDEs IGMrKy8zMzUxNiwgYysrLzMzNjE2LCBjKysvMzM4MzYsCisJYysrLzMzODQyLCBjKysvMzM4NDQs IGMrKy8zMzk2MiwgYysrLzM0MDg5LCBjKysvMzQwOTQsCisJYy8zNDE0NiwgZGVidWcvMzM1Mzcs IG1pZGRsZS1lbmQvMjM4NDgsIG1pZGRsZS1lbmQvMzQwNzAsCisJdGVzdHN1aXRlLzMzOTc4LCB0 cmVlLW9wdGltaXphdGlvbi8zMzcyMworLSBmaXggYWJzIG9wdGltaXphdGlvbiAoUmljaGFyZCBH dWVudGhlciwgIzM5NDI3MSwgUFIgbWlkZGxlLWVuZC8zNDEzMCkKKy0gZm9ydHJhbiBsYm91bmQv dWJvdW5kIGZpeCAoUGF1bCBUaG9tYXMsICMzOTExNTEsIFBSIGZvcnRyYW4vMjk3MTIpCistIGdl bmVyYXRlIHByb3BlciBmb3J0cmFuIGRlYnVnaW5mbyBmb3IgYXNzdW1lZC1zaXplLCBhc3N1bWVk LXNoYXBlCisgIGFuZCBkZWZlcnJlZCBhcnJheXMgKCMzNjQwMDEpCisKKyogU3VuIE9jdCAyMSAy MDA3IEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+IDQuMS4yLTMzCistIHJlYnVpbGQg dG8gZml4IG11bHRpbGliIGNvbmZsaWN0IGJldHdlZW4gaTM4NiBhbmQgeDg2XzY0IGxpYmdjaiwK KyAgc2V0IGphdmEgbWFuIHBhZ2UgdGltZXN0YW1wIGZyb20gdGhlIHRpbWVzdGFtcCBvZiAqLnRl eGluZm8gcmF0aGVyCisgIHRoYW4gY3VycmVudCBkYXRlIHRvIGF2b2lkIHRoaXMgcHJvYmxlbSBp biB0aGUgZnV0dXJlICgjMzQxMjIxKQorLSBmaXggcHBjNjQgdW53aW5kaW5nIG9mIGNyMiByZWdp c3RlciBpZiB2ZHNvPTAKKwogKiBUdWUgT2N0IDE2IDIwMDcgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC4xLjItMzIKIC0gb25seSBhbGxvdyBfX2xhYmVsX18gYXQgdGhlIHN0YXJ0 IG9mIGEgYmxvY2sgKFBSIGMrKy8zMjEyMSkKIC0gZGlzYWJsZSAtZmlwYS10eXBlLWVzY2FwZSBi eSBkZWZhdWx0IChQUiB0cmVlLW9wdGltaXphdGlvbi8zMzEzNikKCmRpZmYgLS1naXQgYS9zb3Vy Y2VzIGIvc291cmNlcwppbmRleCA2NGVlZDQwLi41ZmVlMTFmIDEwMDY0NAotLS0gYS9zb3VyY2Vz CisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLTU2MmFiMjQ0NmM2MGE5MTQ1ZGEzODVhYzU2Y2Y3 NzE1ICBnY2MtNC4xLjItMjAwNzA5MjUudGFyLmJ6MgorYjBlMzMyZjFiZTY4MGMxMzYwOGUxMjdj NmVkOWFjZjkgIGdjYy00LjEuMi0yMDA3MTEyNC50YXIuYnoyCg==