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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Drop ia64 patches and .spec support. Date: Thu, 23 Jul 2026 18:31:04 GMT Message-ID: <178483146401.1.15928612108576579420.rpms-gdb-b6e7beb35ce0@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: b6e7beb35ce00e9b49646c5a0f2a0269df3d1a58 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogYjZlN2JlYjM1Y2UwMGU5YjQ5NjQ2YzVhMGYyYTAyNjlk ZjNkMWE1OApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxMy0wOC0wMlQyMjo0OTo1NiswMjowMApTdGF0cyAgOiArOC8tNjg5IGlu IDggZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dk Yi9jL2I2ZTdiZWIzNWNlMDBlOWI0OTY0NmM1YTBmMmEwMjY5ZGYzZDFhNTg/YnJhbmNoPWZpeC1k dXAtcGF0Y2gKCkxvZzoKRHJvcCBpYTY0IHBhdGNoZXMgYW5kIC5zcGVjIHN1cHBvcnQuCgotLS0K ZGlmZiAtLWdpdCBhL2dkYi02LjMtZ2NvcmUtdGhyZWFkLTIwMDUwMjA0LnBhdGNoIGIvZ2RiLTYu My1nY29yZS10aHJlYWQtMjAwNTAyMDQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDMxZWNiYmEuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1nY29yZS10aHJlYWQtMjAwNTAyMDQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0yMDA1LTAyLTA3ICBKZWZmIEpv aG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KLQotICAgICAgICAqIGxpbnV4LW5hdC5jIChs aW51eF9uYXRfeGZlcl9tZW1vcnkpOiBEb24ndCB1c2UKLSAgICAgICAgbGludXhfcHJvY194ZmVy X21lbW9yeSBmb3IgaWE2NC4KLQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpbnV4 LW5hdC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9saW51 eC1uYXQuYwkyMDA5LTA4LTA0IDA2OjI5OjQ3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL2xpbnV4LW5hdC5jCTIwMDktMDgtMDQgMDY6Mjk6NTUuMDAwMDAwMDAw ICswMjAwCi1AQCAtNDQ5NSwxMCArNDQ5NSwxNSBAQCBsaW51eF94ZmVyX3BhcnRpYWwgKHN0cnVj dCB0YXJnZXRfb3BzICpvCi0gCW9mZnNldCAmPSAoKFVMT05HRVNUKSAxIDw8IGFkZHJfYml0KSAt IDE7Ci0gICAgIH0KLSAKLSsjaWZuZGVmIE5BVElWRV9YRkVSX1VOV0lORF9UQUJMRQotKyAgLyog RklYTUU6IEZvciBpYTY0LCB3ZSBjYW5ub3QgY3VycmVudGx5IHVzZSBsaW51eF9wcm9jX3hmZXJf bWVtb3J5Ci0rCSAgICBmb3IgYWNjZXNzaW5nIHRocmVhZCBzdG9yYWdlLiAgUmV2ZXJ0IHdoZW4g QnVnemlsbGEgMTQ3NDM2Ci0rCSAgICBpcyBmaXhlZC4gICovCi0gICB4ZmVyID0gbGludXhfcHJv Y194ZmVyX3BhcnRpYWwgKG9wcywgb2JqZWN0LCBhbm5leCwgcmVhZGJ1Ziwgd3JpdGVidWYsCi0g CQkJCSAgb2Zmc2V0LCBsZW4pOwotICAgaWYgKHhmZXIgIT0gMCkKLSAgICAgcmV0dXJuIHhmZXI7 Ci0rI2VuZGlmCi0gCi0gICByZXR1cm4gc3VwZXJfeGZlcl9wYXJ0aWFsIChvcHMsIG9iamVjdCwg YW5uZXgsIHJlYWRidWYsIHdyaXRlYnVmLAotIAkJCSAgICAgb2Zmc2V0LCBsZW4pOwoKZGlmZiAt LWdpdCBhL2dkYi02LjMtaWE2NC1nY29yZS1wYWdlMC0yMDA1MDQyMS5wYXRjaCBiL2dkYi02LjMt aWE2NC1nY29yZS1wYWdlMC0yMDA1MDQyMS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYzJjMDAyNi4uMDAwMDAwMAotLS0gYS9nZGItNi4zLWlhNjQtZ2NvcmUtcGFnZTAtMjAw NTA0MjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1JbmRleDogZ2RiLTcu NS41MC4yMDEzMDExOC9nZGIvZ2NvcmUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAx MzAxMTgub3JpZy9nZGIvZ2NvcmUuYwkyMDEzLTAxLTE4IDIzOjUwOjU2LjY5ODU3MzE4NiArMDEw MAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2djb3JlLmMJMjAxMy0wMS0xOCAyMzo1Mjoy OS42MzY3MDUwNDAgKzAxMDAKLUBAIC01NDksOCArNTQ5LDE0IEBAIGdjb3JlX2NvcHlfY2FsbGJh Y2sgKGJmZCAqb2JmZCwgYXNlY3Rpb24KLSAgICAgICBpZiAoc2l6ZSA+IHRvdGFsX3NpemUpCi0g CXNpemUgPSB0b3RhbF9zaXplOwotIAotKyAgICAgIC8qIFdhcm4gaWYgcmVhZCBlcnJvciBvY2N1 cnMgZXhjZXB0IGlmIHdlIHdlcmUgdHJ5aW5nIHRvIHJlYWQgdGhlCi0rCSBmaXJzdCBwYWdlIGZv ciBpYTY0LiAgVGhlIGZpcnN0IHBhZ2UgaXMgbWFya2VkIHJlYWRhYmxlLCBidXQgaXQgY2Fubm90 Ci0rCSBiZSByZWFkLiAgKi8KLSAgICAgICBpZiAodGFyZ2V0X3JlYWRfbWVtb3J5IChiZmRfc2Vj dGlvbl92bWEgKG9iZmQsIG9zZWMpICsgb2Zmc2V0LAotLQkJCSAgICAgIG1lbWh1bmssIHNpemUp ICE9IDApCi0rCQkJICAgICAgbWVtaHVuaywgc2l6ZSkgIT0gMAotKwkgICYmIChzdHJjbXAgKGdk YmFyY2hfYmZkX2FyY2hfaW5mbyAodGFyZ2V0X2dkYmFyY2ggKCkpLT5hcmNoX25hbWUsCi0rCQkg ICAgICAiaWE2NCIpCi0rCSAgICAgIHx8IGJmZF9zZWN0aW9uX3ZtYSAob2JmZCwgb3NlYykgIT0g MCkpCi0gCXsKLSAJICB3YXJuaW5nIChfKCJNZW1vcnkgcmVhZCBmYWlsZWQgZm9yIGNvcmVmaWxl ICIKLSAJCSAgICAgInNlY3Rpb24sICVzIGJ5dGVzIGF0ICVzLiIpLAoKZGlmZiAtLWdpdCBhL2dk Yi02LjMtaWE2NC1nY29yZS1zcGVlZHVwLTIwMDUwNzE0LnBhdGNoIGIvZ2RiLTYuMy1pYTY0LWdj b3JlLXNwZWVkdXAtMjAwNTA3MTQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGY5MDJlNjIuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1pYTY0LWdjb3JlLXNwZWVkdXAtMjAwNTA3 MTQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAsMCBAQAotMjAwNS0wNy0xNCAgSmVm ZiBKb2huc290biAgPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4LW5hdC5jIChsaW51 eF9uYXRfeGZlcl9tZW1vcnkpOiBJbmNvcnBvcmF0ZSBGdWppdHN1Ci0Jd29yay1hcm91bmQgdG8g dXNlIC9wcm9jL21lbSBmb3Igc3RvcmFnZSwgYnV0IHRvIGZhbGwtYmFjawotCXRvIFBUUkFDRSBm b3IgaWE2NCByc2UgcmVnaXN0ZXIgYXJlYXMuCi0JKiBpYTY0LWxpbnV4LW5hdC5jIChpYTY0X3Jz ZV9zbG90X251bSk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCi0JKGlhNjRfcnNlX3NraXBfcmVncyk6 IERpdHRvLgotCShpYTY0X2xpbnV4X2NoZWNrX3N0YWNrX3JlZ2lvbik6IE5ldyBmdW5jdGlvbi4K LQkKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9saW51eC1uYXQuYwotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvbGludXgtbmF0LmMJMjAwOS0wOC0w NCAwNjoyOTo1NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9s aW51eC1uYXQuYwkyMDA5LTA4LTA0IDA2OjMwOjUzLjAwMDAwMDAwMCArMDIwMAotQEAgLTQ0OTUs MTUgKzQ0OTUsMzggQEAgbGludXhfeGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X29wcyAqbwot IAlvZmZzZXQgJj0gKChVTE9OR0VTVCkgMSA8PCBhZGRyX2JpdCkgLSAxOwotICAgICB9Ci0gCi0t I2lmbmRlZiBOQVRJVkVfWEZFUl9VTldJTkRfVEFCTEUKLS0gIC8qIEZJWE1FOiBGb3IgaWE2NCwg d2UgY2Fubm90IGN1cnJlbnRseSB1c2UgbGludXhfcHJvY194ZmVyX21lbW9yeQotLQkgICAgZm9y IGFjY2Vzc2luZyB0aHJlYWQgc3RvcmFnZS4gIFJldmVydCB3aGVuIEJ1Z3ppbGxhIDE0NzQzNgot LQkgICAgaXMgZml4ZWQuICAqLwotICAgeGZlciA9IGxpbnV4X3Byb2NfeGZlcl9wYXJ0aWFsIChv cHMsIG9iamVjdCwgYW5uZXgsIHJlYWRidWYsIHdyaXRlYnVmLAotIAkJCQkgIG9mZnNldCwgbGVu KTsKLSAgIGlmICh4ZmVyICE9IDApCi0tICAgIHJldHVybiB4ZmVyOwotKyAgICB7Ci0rI2lmZGVm IE5BVElWRV9YRkVSX1VOV0lORF9UQUJMRQotKyAgICAgIHN0cnVjdCBtZW1fcmVnaW9uIHJhbmdl OwotKyAgICAgIHJhbmdlLmxvID0gbWVtYWRkcjsKLSsgICAgICByYW5nZS5oaSA9IG1lbWFkZHIg KyBsZW47Ci0rCi0rICAgICAgLyogRklYTUU6IEZvciBpYTY0LCB3ZSBjYW5ub3QgY3VycmVudGx5 IHVzZQotKwkgbGludXhfcHJvY194ZmVyX3BhcnRpYWwgZm9yIGFjY2Vzc2luZyByc2UgcmVnaXN0 ZXIgc3RvcmFnZS4KLSsJIFJldmVydCB3aGVuIEJ1Z3ppbGxhIDE0NzQzNiBpcyBmaXhlZC4gICov Ci0rI2lmZGVmIE5BVElWRV9YRkVSX1VOV0lORF9UQUJMRQotKyAgICAgIGV4dGVybiBpbnQgaWE2 NF9saW51eF9jaGVja19zdGFja19yZWdpb24gKHN0cnVjdCBsd3BfaW5mbyAqbHdwLAotKwkJCQkJ CXZvaWQgKnJhbmdlKTsKLSsjZW5kaWYKLSsgICAgICBpZiAoaXRlcmF0ZV9vdmVyX2x3cHMgKGlh NjRfbGludXhfY2hlY2tfc3RhY2tfcmVnaW9uLCAmcmFuZ2UpICE9IE5VTEwpCi0rCXsgLyogVGhp cyByZWdpb24gY29udGFpbnMgaWE2NCByc2UgcmVnaXN0ZXJzLCB3ZSBoYXZlIHRvIHJlLXJlYWQu ICAqLwotKwkgIGludCB4eGZlcjsKLSsKLSsJICAvKiBSZS1yZWFkIHJlZ2lzdGVyIHN0YWNrIGFy ZWEuICAqLwotKwkgIHh4ZmVyID0gc3VwZXJfeGZlcl9wYXJ0aWFsIChvcHMsIG9iamVjdCwgYW5u ZXgsCi0rCQkJCSAgICAgIHJlYWRidWYgKyAocmFuZ2UubG8gLSBtZW1hZGRyKSwKLSsJCQkJICAg ICAgd3JpdGVidWYgKyAocmFuZ2UubG8gLSBtZW1hZGRyKSwKLSsJCQkJICAgICAgb2Zmc2V0ICsg KHJhbmdlLmxvIC0gbWVtYWRkciksCi0rCQkJCSAgICAgIHJhbmdlLmhpIC0gcmFuZ2UubG8pOwot KwkgIGlmICh4eGZlciA9PSAwKQotKwkgICAgeGZlciA9IDA7Ci0rCX0KLSAjZW5kaWYKLSsgICAg ICByZXR1cm4geGZlcjsKLSsgICAgfQotIAotICAgcmV0dXJuIHN1cGVyX3hmZXJfcGFydGlhbCAo b3BzLCBvYmplY3QsIGFubmV4LCByZWFkYnVmLCB3cml0ZWJ1ZiwKLSAJCQkgICAgIG9mZnNldCwg bGVuKTsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pYTY0LWxpbnV4LW5hdC5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9pYTY0LWxpbnV4LW5h dC5jCTIwMDktMDItMjMgMDE6MDM6NDkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvaWE2NC1saW51eC1uYXQuYwkyMDA5LTA4LTA0IDA2OjMwOjUzLjAwMDAwMDAw MCArMDIwMAotQEAgLTgwOSw2ICs4MDksNjQgQEAgaWE2NF9saW51eF94ZmVyX3BhcnRpYWwgKHN0 cnVjdCB0YXJnZXRfbwotIAotIHZvaWQgX2luaXRpYWxpemVfaWE2NF9saW51eF9uYXQgKHZvaWQp OwotIAotKy8qCi0rICogTm90ZTogdGFrZW4gZnJvbSBpYTY0X3RkZXAuYwotKyAqCi0rICovCi0r Ci0rc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwotK2lhNjRfcnNlX3Nsb3RfbnVtICh1 bnNpZ25lZCBsb25nIGFkZHIpCi0rewotKyAgcmV0dXJuIChhZGRyID4+IDMpICYgMHgzZjsKLSt9 Ci0rCi0rLyogU2tpcCBvdmVyIGEgZGVzaWduYXRlZCBudW1iZXIgb2YgcmVnaXN0ZXJzIGluIHRo ZSBiYWNraW5nCi0rICAgc3RvcmUsIHJlbWVtYmVyaW5nIGV2ZXJ5IDY0dGggcG9zaXRpb24gaXMg Zm9yIE5BVC4gICovCi0rc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwotK2lhNjRfcnNl X3NraXBfcmVncyAodW5zaWduZWQgbG9uZyAgYWRkciwgbG9uZyBudW1fcmVncykKLSt7Ci0rICBs b25nIGRlbHRhID0gaWE2NF9yc2Vfc2xvdF9udW0oYWRkcikgKyBudW1fcmVnczsKLSsKLSsgIGlm IChudW1fcmVncyA8IDApCi0rICAgIGRlbHRhIC09IDB4M2U7Ci0rICByZXR1cm4gYWRkciArICgo bnVtX3JlZ3MgKyBkZWx0YS8weDNmKSA8PCAzKTsKLSt9Ci0rCi0rLyoKLSsgKiBDaGVjayBtZW1f cmVnaW9uIGlzIHN0YWNrIG9yIG5vdC4gSWYgc3RhY2ssIC9wcm9jLzxwaWQ+L21lbSBjYW5ub3Qg cmV0dXJuIAotKyAqIGV4cGVjdGVkIHZhbHVlLgotKyAqLwotK2ludCBpYTY0X2xpbnV4X2NoZWNr X3N0YWNrX3JlZ2lvbihzdHJ1Y3QgbHdwX2luZm8gKnRpLCBzdHJ1Y3QgbWVtX3JlZ2lvbiAqcmFu Z2UpCi0rewotKwlDT1JFX0FERFIgYWRkcjsKLSsJaW50IGVycm9yOwotKwl1bnNpZ25lZCBsb25n IGJzcCwgY2ZtLCBic3BzdG9yZTsKLSsJbG9uZyBzb2Y7Ci0rCXBpZF90IHBpZCA9IHB0aWRfZ2V0 X2x3cCh0aS0+cHRpZCk7Ci0rCWJzcCA9IHB0cmFjZShQVFJBQ0VfUEVFS1VTRVIsIHBpZCwgUFRf QVJfQlNQICxOVUxMKTsKLSsJaWYgKGJzcCA9PSAodW5zaWduZWQgbG9uZyktMSkgewotKwkJcmV0 dXJuIDE7Ci0rCX0KLSsJLyogc3RhY2sgaXMgYWxsb2NhdGVkIGJ5IG9uZS1zZWdtZW50LCBub3Qg c2VwYXJhdGVkIGludG8gc2V2ZXJhbCBzZWdtZW50cy4KLSsJICAgU28sIHdlIG9ubHkgaGF2ZSB0 byBjaGVjayB3aGV0aGVyIGJzcCBpcyBpbiAqcmFuZ2UqIG9yIG5vdC4gKi8gCQkKLSsJaWYoKHJh bmdlLT5sbyA8PSBic3ApICYmIChic3AgPD0gcmFuZ2UtPmhpKSkgewotKwkJYnNwc3RvcmUgPSBw dHJhY2UoUFRSQUNFX1BFRUtVU0VSLCBwaWQsIFBUX0FSX0JTUFNUT1JFLCBOVUxMKTsKLSsJCWNm bSA9IHB0cmFjZShQVFJBQ0VfUEVFS1VTRVIsIHBpZCwgUFRfQ0ZNLCBOVUxMKTsKLSsJCXNvZiA9 IGNmbSAmIDB4M2Y7Ci0rCQlic3AgPSBpYTY0X3JzZV9za2lwX3JlZ3MoYnNwLCAtc29mKTsKLSsJ CXJhbmdlLT5sbyA9IGJzcHN0b3JlOwotKwkJcmFuZ2UtPmhpID0gYnNwOwotKwkJLyogd2UgaGF2 ZSB0byBjaGVjayB0aGUgc2l6ZSBvZiBkaXJ0eSByZWdpc3RlciBzdGFjayBhcmVhICovCi0rCQkv KgotKwkJZnByaW50Zl91bmZpbHRlcmVkKGdkYl9zdGRsb2csICI8JWQ+IDwlcD4gIDwlbHg+IDwl cD4gPCVwPlxuIiwKLSsJCQkJICAgcGlkLCBic3AsIHNvZiwgcmFuZ2UtPmxvLCByYW5nZS0+aGkp OwotKwkJKi8KLSsJCXJldHVybiAxOwotKwl9Ci0rCQotKwlyZXR1cm4gMDsKLSt9Ci0rCi0gdm9p ZAotIF9pbml0aWFsaXplX2lhNjRfbGludXhfbmF0ICh2b2lkKQotIHsKCmRpZmYgLS1naXQgYS9n ZGItNi4zLWlhNjQtaW5mby1mcmFtZS1maXgtMjAwNTA3MjUucGF0Y2ggYi9nZGItNi4zLWlhNjQt aW5mby1mcmFtZS1maXgtMjAwNTA3MjUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDJlYmFiOWUuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1pYTY0LWluZm8tZnJhbWUtZml4LTIw MDUwNzI1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLTIwMDUtMDctMjUg IEplZmYgSm9obnN0bm8gIDxqam9obnN0bkByZWRoYXQuY29tPgotCi0JKiBsaWJ1bndpbmQtZnJh bWUuYyAobGlidW53aW5kX2ZyYW1lX3ByZXZfcmVnaXN0ZXIpOiBDaGVjayB2YWx1ZXAKLQlpcyBu b3QgTlVMTCBiZWZvcmUgY29weWluZyBjdXJzb3IgYWRkcmVzcyBpbnRvIGl0LgotCQotdGVzdHN1 aXRlOgotMjAwNS0wNy0yNSAgSmVmZiBKb2huc3RubyAgPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0K LQkqIGdkYi5hcmNoL2lhNjQtc2lndHJhbXAuZXhwOiBOZXcgdGVzdC4KLQkqIGdkYi5hcmNoL2lh NjQtc2lndHJhbXAuYzogRGl0dG8uCi0KLTIwMDgtMDItMjQgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBvcnQgdG8gR0RCLTYuOHByZS4gIChPbmx5IHRo ZSB0ZXN0Y2FzZSBoYXMgcmVtYWluZWQuKQotCi0tLS0gZ2RiLTYuMy9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL2lhNjQtc2lndHJhbXAuYy5maXgJMjAwNS0wNy0yNSAxNjo0Mjo0Ni4wMDAwMDAwMDAg LTA0MDAKLSsrKyBnZGItNi4zL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaWE2NC1zaWd0cmFtcC5j CTIwMDUtMDctMjUgMTY6NDI6MDguMDAwMDAwMDAwIC0wNDAwCi1AQCAtMCwwICsxLDIzIEBACi0r I2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHNpZ25hbC5oPgotKwotK2ludCAqbDsKLSsK LSt2b2lkIHggKGludCBzaWcpCi0rewotKyAgcHJpbnRmICgiaW4gc2lnbmFsIGhhbmRsZXIgZm9y IHNpZ25hbCAlZFxuIiwgc2lnKTsKLSt9Ci0rCi0raW50IG1haW4oKQotK3sKLSsgIGludCBrOwot KwotKyAgc2lnbmFsIChTSUdTRUdWLCAmeCk7Ci0rCi0rICBrID0gKmw7Ci0rCi0rICBwcmludGYg KCJrIGlzICVkXG4iLCBrKTsKLSsgCi0rICByZXR1cm4gMDsKLSt9Ci0rCi0tLS0gZ2RiLTYuMy9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtc2lndHJhbXAuZXhwLmZpeAkyMDA1LTA3LTI1IDE2 OjQyOjUwLjAwMDAwMDAwMCAtMDQwMAotKysrIGdkYi02LjMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC9pYTY0LXNpZ3RyYW1wLmV4cAkyMDA1LTA3LTI1IDE2OjQyOjAxLjAwMDAwMDAwMCAtMDQwMAot QEAgLTAsMCArMSw2MyBAQAotKyMgICBDb3B5cmlnaHQgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIyAKLSsjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rIyAKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5j LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT QS4gIAotKwotKyMgUGxlYXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywgYW5kL29yIGFkZGl0 aW9ucyB0byB0aGlzIGZpbGUgdG86Ci0rIyBidWctZ2RiQHByZXAuYWkubWl0LmVkdQotKwotKyMg VGhpcyBmaWxlIHdhcyB3cml0dGVuIGJ5IEplZmYgSm9obnN0b24gKGpqb2huc3RuQHJlZGhhdC5j b20pCi0rCi0raWYgIVtpc3RhcmdldCAiaWE2NC0qLSoiXSB0aGVuIHsKLSsgICAgcmV0dXJuCi0r fQotKwotK3NldCB0ZXN0ZmlsZSAiaWE2NC1zaWd0cmFtcCIKLStzZXQgc3JjZmlsZSAke3Rlc3Rm aWxlfS5jCi0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQotKwot K2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHti aW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWcgYWRkaXRpb25hbF9mbGFncz0td31dICE9ICIiIH0g ewotKyAgICBnZGJfc3VwcHJlc3NfZW50aXJlX2ZpbGUgIlRlc3RjYXNlIGNvbXBpbGUgZmFpbGVk LCBzbyBhbGwgdGVzdHMgaW4gdGhpcyBmaWxlIHdpbGwgYXV0b21hdGljYWxseSBmYWlsLiIKLSt9 Ci0rCi0raWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKLSsgICAgcmV0dXJuIC0x Ci0rfQotKwotK2dkYl9leGl0Ci0rc2V0IG1hdGNoX21heF9vbGQgW21hdGNoX21heF0KLSttYXRj aF9tYXggLWQgMTAwMDAwMAotK2dkYl9zdGFydAotK21hdGNoX21heCAtZCAkbWF0Y2hfbWF4X29s ZAotK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgotK2dkYl9sb2FkICR7Ymlu ZmlsZX0KLSsKLStpZiAhW3J1bnRvX21haW5dIHRoZW4gewotKyAgICBmYWlsICJDYW4ndCBydW4g dG8gbWFpbiIKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rZ2RiX3Rlc3QgImhhbmRsZSBTSUdTRUdW IiAiU0lHU0VHVi4qWWVzLipZZXMuKlllcy4qU2VnbWVudGF0aW9uIGZhdWx0IgotK2dkYl90ZXN0 ICJuZXh0IiAiIiAiZmlyc3QgbmV4dCIKLStnZGJfdGVzdCAibmV4dCIgIlByb2dyYW0gcmVjZWl2 ZWQgc2lnbmFsIFNJR1NFR1YuKiIgImdldHRpbmcgU0lHU0VHViIKLStnZGJfYnJlYWtwb2ludCAi eCIKLStnZGJfdGVzdCAiY29udGludWUiICJCcmVha3BvaW50Lip4LioiICJjb250aW51ZSB0byB4 IgotKwotK2dkYl90ZXN0ICJmIDEiICIuKnNpZ25hbCBoYW5kbGVyIGNhbGxlZC4qIiAiZnJhbWUg MSIKLSsKLSsjIGdkYi03LjArIG5vIGxvbmdlciBwcmludHMgdGhlIHBzZXVkbyByZWdpc3RlcnMg YXMgdGhleSBhcmUgY29tcHV0ZWQuCi0rIyBmcmFtZV9pbmZvIHNheXM6IC8qIEZvciBtb21lbnQs IG9ubHkgZGlzcGxheSByZWdpc3RlcnMgdGhhdCB3ZXJlIHNhdmVkIG9uIHRoZQotKyMgICAgICAg ICAgICAgICAgICAgICBzdGFjay4gICovCi0rZ2RiX3Rlc3QgInNldCBkZWJ1ZyBmcmFtZSAxIgot K2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiU3RhY2sgbGV2ZWwgMSwgLipmcmFtZV91bndpbmRfcmVn aXN0ZXJfdmFsdWUgXFwoZnJhbWU9MSxyZWdudW09NzUwXFwocDYzXFwpLFxbXlxyXG5cXSpcclxu XFteXHJcblxdKi0+IGNvbXB1dGVkIGJ5dGVzPS4qIiAiaW5mbyBzaWd0cmFtcCBmcmFtZSIKCmRp ZmYgLS1naXQgYS9nZGItNi4zLWlhNjQtc2lnaWxsLTIwMDUxMTE1LnBhdGNoIGIvZ2RiLTYuMy1p YTY0LXNpZ2lsbC0yMDA1MTExNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg YmY4YTFmMS4uMDAwMDAwMAotLS0gYS9nZGItNi4zLWlhNjQtc2lnaWxsLTIwMDUxMTE1LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotMjAwNS0xMS0xNSAgSmVmZiBKb2huc3Rv biAgPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0KLQkqIGxpbnV4LXRocmVhZC1kYi5jICh0aHJlYWRf ZGJfd2FpdCk6IERvbid0IGJvdGhlciBjb250aW51aW5nIGlmCi0JdGhlIHdhaXQgcmVzdWx0IGlu ZGljYXRlcyB0aGUgcHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggYSBzaWduYWwuCi0JKiBsaW51eC1u YXQuYyAobGludXhfbmF0X3dhaXQpOiBGb3IgU0lHSUxMIGFuZCBTSUdUUkFQLCBkb24ndAotCXRo cm93IGF3YXkgdGhlIGV2ZW50IGlmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQgbm9zdG9wIG5vcHJp bnQuCi0KLWdkYi90ZXN0c3VpdGU6Ci0KLTIwMDUtMTEtMTUgIEplZmYgSm9obnN0b24gIDxqam9o bnN0bkByZWRoYXQuY29tPgotCi0JKiBnZGIuYXJjaC9pYTY0LXNpZ2lsbC5jOiBOZXcgdGVzdC4K LQkqIGdkYi5hcmNoL2lhNjQtc2lnaWxsLmV4cDogRGl0dG8uCi0KLUluZGV4OiBnZGItNy4zLjUw LjIwMTEwNzIyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaWE2NC1zaWdpbGwuZXhwCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuMy41MC4yMDExMDcyMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtc2lnaWxs LmV4cAkyMDExLTA3LTIyIDE5OjE2OjEzLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0OSBA QAotKyMgICBDb3B5cmlnaHQgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsK LSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIyAKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0r IyAKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs YWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gIAotKwotKyMgUGxl YXNlIGVtYWlsIGFueSBidWdzLCBjb21tZW50cywgYW5kL29yIGFkZGl0aW9ucyB0byB0aGlzIGZp bGUgdG86Ci0rIyBidWctZ2RiQHByZXAuYWkubWl0LmVkdQotKwotKyMgVGhpcyBmaWxlIHdhcyB3 cml0dGVuIGJ5IEplZmYgSm9obnN0b24gKGpqb2huc3RuQHJlZGhhdC5jb20pCi0rCi0raWYgIVtp c3RhcmdldCAiaWE2NC0qLSoiXSB0aGVuIHsKLSsgICAgcmV0dXJuCi0rfQotKwotK3NldCB0ZXN0 ZmlsZSAiaWE2NC1zaWdpbGwiCi0rc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotK3NldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLSsKLSsjIERlbGliZXJhdGVseSBj b21waWxlIHdpdGggcHRocmVhZHMsIGV2ZW4gdGhvdWdoIHRlc3QgaXMgc2luZ2xlLXRocmVhZGVk LgotKyMgV2Ugd2FudCB0byBmb3JjZSBnZGIgdGhyZWFkIGNvZGUgdG8gYmUgZXhlcmNpc2VkLgot K2lmICB7IFtnZGJfY29tcGlsZV9wdGhyZWFkcyAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2Zp bGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWcgYWRkaXRpb25hbF9mbGFncz0td31d ICE9ICIiIH0gewotKyAgICBnZGJfc3VwcHJlc3NfZW50aXJlX2ZpbGUgIlRlc3RjYXNlIGNvbXBp bGUgZmFpbGVkLCBzbyBhbGwgdGVzdHMgaW4gdGhpcyBmaWxlIHdpbGwgYXV0b21hdGljYWxseSBm YWlsLiIKLSt9Ci0rCi0raWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKLSsgICAg cmV0dXJuIC0xCi0rfQotKwotK2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rZ2RiX3JlaW5pdGlhbGl6 ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCi0rZ2RiX2xvYWQgJHtiaW5maWxlfQotKwotKyMgV2Ugc2V0 IHVwIFNJR0lMTCBub3N0b3AsIG5vcHJpbnQsIHBhc3MgYW5kIHRoZW4gcnVuIHRoZSBwcm9ncmFt LgotKyMgV2UgZXhwZWN0IHRvIGp1c3Qgc2VlIGEgbm9ybWFsIHJ1bi4KLStnZGJfdGVzdCAiaGFu ZGxlIFNJR0lMTCBub3N0b3Agbm9wcmludCIgIlNJR0lMTC4qTm8uKk5vLipZZXMuKiIgImhhbmRs ZSBzaWdpbGwiCi0rZ2RiX3Rlc3QgInJ1biIgIlN0YXJ0aW5nIHByb2dyYW0uKmlhNjQtc2lnaWxs LipcW05ldyB0aHJlYWQuKlxdLipoZWxsbyB3b3JsZC4qUHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHku IiAicnVuIHRvIGV4aXQiCi0rIAotSW5kZXg6IGdkYi03LjMuNTAuMjAxMTA3MjIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9pYTY0LXNpZ2lsbC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMy41MC4yMDExMDcy Mi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtc2lnaWxsLmMJMjAxMS0wNy0yMiAxOToxNjox My4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsOCBAQAotKyNpbmNsdWRlIDxzdGRpby5oPgot KwotK2ludCBtYWluKCkKLSt7Ci0rICBwcmludGYgKCJoZWxsbyB3b3JsZFxuIik7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rCi1JbmRleDogZ2RiLTcuMy41MC4yMDExMDcyMi9nZGIvbGludXgtbmF0LmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4zLjUwLjIwMTEwNzIyLm9yaWcvZ2RiL2xpbnV4LW5hdC5j CTIwMTEtMDctMjIgMTk6MTU6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMy41MC4yMDEx MDcyMi9nZGIvbGludXgtbmF0LmMJMjAxMS0wNy0yMiAxOToxNjoxMy4wMDAwMDAwMDAgKzAyMDAK LUBAIC0zNzMzLDcgKzM3MzMsOCBAQCByZXRyeToKLSAgICAgIHRocmVhZHMgY2FuIGJlIGEgYml0 IHRpbWUtY29uc3VtaW5nIHNvIGlmIHdlIHdhbnQgZGVjZW50Ci0gICAgICBwZXJmb3JtYW5jZSB3 aXRoIGhlYXZpbHkgbXVsdGktdGhyZWFkZWQgcHJvZ3JhbXMsIGVzcGVjaWFsbHkgd2hlbgotICAg ICAgdGhleSdyZSB1c2luZyBhIGhpZ2ggZnJlcXVlbmN5IHRpbWVyLCB3ZSdkIGJldHRlciBhdm9p ZCBpdCBpZiB3ZQotLSAgICAgY2FuLiAgKi8KLSsgICAgIGNhbi4gIEZvciBwb3NzaWJsZSB0cmFw IHNpZ25hbHMgbGlrZSBTSUdUUkFQIGFuZCBTSUdJTEwsIGRvbid0Ci0rICAgICBhdm9pZCByZXBv cnRpbmcuICAqLwotIAotICAgaWYgKFdJRlNUT1BQRUQgKHN0YXR1cykpCi0gICAgIHsKCmRpZmYg LS1naXQgYS9nZGItNi4zLWlhNjQtc2lndHJhbXAtZnJhbWUtMjAwNTA3MDgucGF0Y2ggYi9nZGIt Ni4zLWlhNjQtc2lndHJhbXAtZnJhbWUtMjAwNTA3MDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGM2YTc3ODkuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuMy1pYTY0LXNpZ3RyYW1w LWZyYW1lLTIwMDUwNzA4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTU4ICswLDAgQEAKLTIw MDUtMDctMDggIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgotCi0JKiBpYTY0 LXRkZXAuYyAoaWE2NF9zaWd0cmFtcF9mcmFtZV9wcmV2X3JlZ2lzdGVyKTogQnVpbGQKLQlwc2V1 ZG8tcmVnaXN0ZXJzIHRoZSBzYW1lIGFzIGlhNjRfcHNldWRvX3JlZ2lzdGVyX3JlYWQuCi0KLTIw MDgtMDQtMTYgIFlpIFpoYW4gIDx5aS56aGFuQGludGVsLmNvbT4KLQotCSogaWE2NC10ZGVwLmMg KGlhNjRfc2lndHJhbXBfZnJhbWVfcHJldl9yZWdpc3Rlcik6IEZpeCBhbgotCUlTTyBDIGNvbXBs aWFuY2UgY29tcGlsYXRpb24gZXJyb3IuCi0KLTIwMDgtMDItMTIgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBvcnQgdG8gZ2RiLTYuOC41MC4yMDA4MTEy OCwgZm9sbG93IHRoZSB1cHN0cmVhbSBjaGFuZ2U6Ci0JaHR0cDovL3NvdXJjZXdhcmUub3JnL2Nn aS1iaW4vY3Zzd2ViLmNnaS9zcmMvZ2RiL2lhNjQtdGRlcC5jLmRpZmY/Y3Zzcm9vdD1zcmMmcjE9 MS4xNzYmcjI9MS4xNzcKLQotSW5kZXg6IGdkYi02LjguNTAuMjAwODExMjgvZ2RiL2lhNjQtdGRl cC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA4MTEyOC5vcmlnL2dkYi9pYTY0LXRk ZXAuYwkyMDA4LTExLTI2IDA2OjI3OjQ4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAu MjAwODExMjgvZ2RiL2lhNjQtdGRlcC5jCTIwMDgtMTItMDIgMTk6MDQ6MzIuMDAwMDAwMDAwICsw MTAwCi1AQCAtMjEwNyw2ICsyMTA3LDk0IEBAIGlhNjRfc2lndHJhbXBfZnJhbWVfcHJldl9yZWdp c3RlciAoc3RydWMKLSAgICAgICByZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9jb25zdGFudCAodGhp c19mcmFtZSwgcmVnbnVtLCBwYyk7Ci0gICAgIH0KLSAKLSsgIC8qIFJlZCBIYXQgcGF0Y2ggYmVn aW4uICAqLwotKyAgZWxzZSBpZiAoSUE2NF9OQVQwX1JFR05VTSA8PSByZWdudW0gJiYgcmVnbnVt IDw9IElBNjRfTkFUMzFfUkVHTlVNKQotKyAgICB7Ci0rICAgICAgLyogTkFUIHBzZXVkbyByZWdp c3RlcnMgMC0zMTogZ2V0IHRoZW0gZnJvbSBVTkFULgotKyAgICAgICAqICJjb3BpZWQiIGZyb20g aWE2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCgpICovCi0rICAgICAgVUxPTkdFU1QgdW5hdE5fdmFs OwotKyAgICAgIFVMT05HRVNUIHVuYXQ7Ci0rICAgICAgcmVhZF9tZW1vcnkgKGNhY2hlLT5zYXZl ZF9yZWdzW0lBNjRfVU5BVF9SRUdOVU1dLCAoY2hhciAqKSAmdW5hdCwKLSsJCSAgIHJlZ2lzdGVy X3NpemUgKHRhcmdldF9nZGJhcmNoLCBJQTY0X1VOQVRfUkVHTlVNKSk7Ci0rICAgICAgdW5hdE5f dmFsID0gKHVuYXQgJiAoMUxMIDw8IChyZWdudW0gLSBJQTY0X05BVDBfUkVHTlVNKSkpICE9IDA7 Ci0rICAgICAgcmV0dXJuIGZyYW1lX3Vud2luZF9nb3RfY29uc3RhbnQgKHRoaXNfZnJhbWUsIHJl Z251bSwgdW5hdE5fdmFsKTsKLSsgICAgfQotKyAgZWxzZSBpZiAoSUE2NF9OQVQzMl9SRUdOVU0g PD0gcmVnbnVtICYmIHJlZ251bSA8PSBJQTY0X05BVDEyN19SRUdOVU0pCi0rICAgIHsKLSsgICAg ICAvKiBOQVQgcHNldWRvIHJlZ2lzdGVycyAzMi0xMjcuCi0rICAgICAgICogImNvcGllZCIgZnJv bSBpYTY0X3BzZXVkb19yZWdpc3Rlcl9yZWFkKCkKLSsgICAgICAgKiBGSVhNRTogTm90IGN1cnJl bnRseSB0ZXN0ZWQgLS0gY2Fubm90IGdldCB0aGUgZnJhbWUgdG8gaW5jbHVkZQotKyAgICAgICAq ICAgICAgICBOQVQzMi1OQVQxMjcuICAqLwotKyAgICAgIFVMT05HRVNUIGJzcDsKLSsgICAgICBV TE9OR0VTVCBjZm07Ci0rICAgICAgVUxPTkdFU1QgbmF0Tl92YWwgPSAwOwotKyAgICAgIENPUkVf QUREUiBncl9hZGRyID0gMCwgbmF0X2FkZHIgPSAwOwotKwotKyAgICAgIHJlYWRfbWVtb3J5IChj YWNoZS0+c2F2ZWRfcmVnc1tJQTY0X0JTUF9SRUdOVU1dLCAoY2hhciAqKSAmYnNwLAotKwkJICAg cmVnaXN0ZXJfc2l6ZSAodGFyZ2V0X2dkYmFyY2gsIElBNjRfQlNQX1JFR05VTSkpOwotKyAgICAg IHJlYWRfbWVtb3J5IChjYWNoZS0+c2F2ZWRfcmVnc1tJQTY0X0NGTV9SRUdOVU1dLCAoY2hhciAq KSAmY2ZtLAotKwkJICAgcmVnaXN0ZXJfc2l6ZSAodGFyZ2V0X2dkYmFyY2gsIElBNjRfQ0ZNX1JF R05VTSkpOwotKwotKyAgICAgIC8qIFRoZSBic3AgcG9pbnRzIGF0IHRoZSBlbmQgb2YgdGhlIHJl Z2lzdGVyIGZyYW1lIHNvIHdlCi0rCSBzdWJ0cmFjdCB0aGUgc2l6ZSBvZiBmcmFtZSBmcm9tIGl0 IHRvIGdldCBzdGFydCBvZiByZWdpc3RlciBmcmFtZS4gICovCi0rICAgICAgYnNwID0gcnNlX2Fk ZHJlc3NfYWRkIChic3AsIC0oY2ZtICYgMHg3ZikpOwotKwotKyAgICAgIGlmICgoY2ZtICYgMHg3 ZikgPiByZWdudW0gLSBWMzJfUkVHTlVNKQotKwlncl9hZGRyID0gcnNlX2FkZHJlc3NfYWRkIChi c3AsIChyZWdudW0gLSBWMzJfUkVHTlVNKSk7Ci0rCi0rICAgICAgaWYgKGdyX2FkZHIgIT0gMCkK LSsJewotKwkgIC8qIENvbXB1dGUgYWRkcmVzcyBvZiBuYXQgY29sbGVjdGlvbiBiaXRzICovCi0r CSAgQ09SRV9BRERSIG5hdF9jb2xsZWN0aW9uOwotKwkgIGludCBuYXRfYml0OwotKwkgIG5hdF9h ZGRyID0gZ3JfYWRkciB8IDB4MWY4OwotKwkgIC8qIElmIG91ciBuYXQgY29sbGVjdGlvbiBhZGRy ZXNzIGlzIGJpZ2dlciB0aGFuIGJzcCwgd2UgaGF2ZSB0byBnZXQKLSsJICAgICB0aGUgbmF0IGNv bGxlY3Rpb24gZnJvbSBybmF0LiAgT3RoZXJ3aXNlLCB3ZSBmZXRjaCB0aGUgbmF0Ci0rCSAgICAg Y29sbGVjdGlvbiBmcm9tIHRoZSBjb21wdXRlZCBhZGRyZXNzLiBGSVhNRTogRG8gbm90IGtub3cg aWYKLSsJICAgICBSTkFUIGNhbiBiZSBub3Qgc3RvcmVkIGluIHRoZSBmcmFtZS0tYmVpbmcgZXh0 cmEgY2F1dGlvdXMuICovCi0rCSAgaWYgKG5hdF9hZGRyID49IGJzcCkKLSsJICAgIHsKLSsJICAg ICAgbmF0X2FkZHIgPSBjYWNoZS0+c2F2ZWRfcmVnc1tJQTY0X1JOQVRfUkVHTlVNXTsKLSsJICAg ICAgaWYgKG5hdF9hZGRyICE9IDApCi0rCQlyZWFkX21lbW9yeSAobmF0X2FkZHIsIChjaGFyICop ICZuYXRfY29sbGVjdGlvbiwKLSsJCQkgICAgIHJlZ2lzdGVyX3NpemUgKHRhcmdldF9nZGJhcmNo LCBJQTY0X1JOQVRfUkVHTlVNKSk7Ci0rCSAgICB9Ci0rCSAgZWxzZQotKwkgICAgbmF0X2NvbGxl Y3Rpb24gPSByZWFkX21lbW9yeV9pbnRlZ2VyIChuYXRfYWRkciwgOCwgQkZEX0VORElBTl9MSVRU TEUpOwotKwkgIGlmIChuYXRfYWRkciAhPSAwKQotKwkgICAgewotKwkgICAgICBuYXRfYml0ID0g KGdyX2FkZHIgPj4gMykgJiAweDNmOwotKwkgICAgICBuYXROX3ZhbCA9IChuYXRfY29sbGVjdGlv biA+PiBuYXRfYml0KSAmIDE7Ci0rCSAgICAgIHJldHVybiBmcmFtZV91bndpbmRfZ290X2NvbnN0 YW50ICh0aGlzX2ZyYW1lLCByZWdudW0sIG5hdE5fdmFsKTsKLSsJICAgIH0KLSsJfQotKyAgICAg IHdhcm5pbmcgKF8oImlhNjRfc2lndHJhbXBfZnJhbWVfcHJldl9yZWdpc3RlcjogdW5oYW5kbGVk IHJlZ2lzdGVyICVkIiksCi0rCSAgICAgICByZWdudW0pOwotKyAgICB9Ci0rICBlbHNlIGlmIChy ZWdudW0gPT0gVkJPRl9SRUdOVU0pCi0rICAgIHsKLSsgICAgICAvKiBCT0YgcHNldWRvIHJlZ2lz dGVyLgotKyAgICAgICAqICJjb3BpZWQiIGZyb20gaWE2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCgp Ci0rICAgICAgICoKLSsgICAgICAgKiBBIHZpcnR1YWwgcmVnaXN0ZXIgZnJhbWUgc3RhcnQgaXMg cHJvdmlkZWQgZm9yIHVzZXIgY29udmVuaWVuY2UuCi0rICAgICAgICogSXQgY2FuIGJlIGNhbGN1 bGF0ZWQgYXMgdGhlIGJzcCAtIHNvZiAoc2l6ZW9mIGZyYW1lKS4gKi8KLSsgICAgICBVTE9OR0VT VCBic3A7Ci0rICAgICAgVUxPTkdFU1QgY2ZtOwotKyAgICAgIFVMT05HRVNUIGJvZjsKLSsKLSsg ICAgICByZWFkX21lbW9yeSAoY2FjaGUtPnNhdmVkX3JlZ3NbSUE2NF9CU1BfUkVHTlVNXSwgKGNo YXIgKikgJmJzcCwKLSsJCSAgIHJlZ2lzdGVyX3NpemUgKHRhcmdldF9nZGJhcmNoLCBJQTY0X0JT UF9SRUdOVU0pKTsKLSsgICAgICByZWFkX21lbW9yeSAoY2FjaGUtPnNhdmVkX3JlZ3NbSUE2NF9D Rk1fUkVHTlVNXSwgKGNoYXIgKikgJmNmbSwKLSsJCSAgIHJlZ2lzdGVyX3NpemUgKHRhcmdldF9n ZGJhcmNoLCBJQTY0X0NGTV9SRUdOVU0pKTsKLSsKLSsgICAgICAvKiBUaGUgYnNwIHBvaW50cyBh dCB0aGUgZW5kIG9mIHRoZSByZWdpc3RlciBmcmFtZSBzbyB3ZQotKwkgc3VidHJhY3QgdGhlIHNp emUgb2YgZnJhbWUgZnJvbSBpdCB0byBnZXQgYmVnaW5uaW5nIG9mIGZyYW1lLiAgKi8KLSsgICAg ICBib2YgPSByc2VfYWRkcmVzc19hZGQgKGJzcCwgLShjZm0gJiAweDdmKSk7Ci0rCi0rICAgICAg cmV0dXJuIGZyYW1lX3Vud2luZF9nb3RfY29uc3RhbnQgKHRoaXNfZnJhbWUsIHJlZ251bSwgYm9m KTsKLSsgICAgfQotKyAgLyogUmVkIEhhdCBwYXRjaCBlbmQuICAqLwotKwotICAgZWxzZSBpZiAo KHJlZ251bSA+PSBJQTY0X0dSMzJfUkVHTlVNICYmIHJlZ251bSA8PSBJQTY0X0dSMTI3X1JFR05V TSkKLSAgICAgICAgICAgIHx8IChyZWdudW0gPj0gVjMyX1JFR05VTSAmJiByZWdudW0gPD0gVjEy N19SRUdOVU0pKQotICAgICB7Ci1AQCAtMjEyMSw3ICsyMjA5LDQyIEBAIGlhNjRfc2lndHJhbXBf ZnJhbWVfcHJldl9yZWdpc3RlciAoc3RydWMKLSAgICAgICByZXR1cm4gZnJhbWVfdW53aW5kX2dv dF9jb25zdGFudCAodGhpc19mcmFtZSwgcmVnbnVtLCAwKTsKLSAgICAgfQotIAotLSAgZWxzZSAg LyogQWxsIG90aGVyIHJlZ2lzdGVycyBub3QgbGlzdGVkIGFib3ZlLiAgKi8KLSsgIC8qIFJlZCBI YXQgcGF0Y2ggYmVnaW4uICAqLwotKyAgZWxzZSBpZiAoVlAwX1JFR05VTSA8PSByZWdudW0gJiYg cmVnbnVtIDw9IFZQNjNfUkVHTlVNKQotKyAgICB7Ci0rICAgICAgLyogVlAgMC02My4KLSsgICAg ICAgKiAiY29waWVkIiBmcm9tIGlhNjRfcHNldWRvX3JlZ2lzdGVyX3JlYWQoKQotKyAgICAgICAq Ci0rICAgICAgICogRklYTUU6IE5vdCBjdXJyZW50bHkgdGVzdGVkLS1jYW5ub3QgZ2V0IHRoZSBm cmFtZSB0byBpbmNsdWRlIFBSLiAqLwotKyAgICAgIENPUkVfQUREUiBwcl9hZGRyID0gMDsKLSsK LSsgICAgICBwcl9hZGRyID0gY2FjaGUtPnNhdmVkX3JlZ3NbSUE2NF9QUl9SRUdOVU1dOwotKyAg ICAgIGlmIChwcl9hZGRyICE9IDApCi0rCXsKLSsJICBVTE9OR0VTVCBwcjsKLSsJICBVTE9OR0VT VCBjZm07Ci0rCSAgVUxPTkdFU1QgcHJOX3ZhbDsKLSsJICByZWFkX21lbW9yeSAocHJfYWRkciwg KGNoYXIgKikgJnByLAotKwkJICAgICAgIHJlZ2lzdGVyX3NpemUgKHRhcmdldF9nZGJhcmNoLCBJ QTY0X1BSX1JFR05VTSkpOwotKwkgIHJlYWRfbWVtb3J5IChjYWNoZS0+c2F2ZWRfcmVnc1tJQTY0 X0NGTV9SRUdOVU1dLCAoY2hhciAqKSAmY2ZtLAotKwkJICAgICAgIHJlZ2lzdGVyX3NpemUgKHRh cmdldF9nZGJhcmNoLCBJQTY0X0NGTV9SRUdOVU0pKTsKLSsKLSsJICAvKiBHZXQgdGhlIHJlZ2lz dGVyIHJlbmFtZSBiYXNlIGZvciB0aGlzIGZyYW1lIGFuZCBhZGp1c3QgdGhlCi0rCSAgICogcmVn aXN0ZXIgbmFtZSB0byB0YWtlIHJvdGF0aW9uIGludG8gYWNjb3VudC4gKi8KLSsJICBpZiAoVlAx Nl9SRUdOVU0gPD0gcmVnbnVtICYmIHJlZ251bSA8PSBWUDYzX1JFR05VTSkKLSsJICAgIHsKLSsJ ICAgICAgaW50IHJyYl9wciA9IChjZm0gPj4gMzIpICYgMHgzZjsKLSsJICAgICAgcmVnbnVtID0g VlAxNl9SRUdOVU0gKyAoKHJlZ251bSAtIFZQMTZfUkVHTlVNKSArIHJyYl9wcikgJSA0ODsKLSsJ ICAgIH0KLSsJICBwck5fdmFsID0gKHByICYgKDFMTCA8PCAocmVnbnVtIC0gVlAwX1JFR05VTSkp KSAhPSAwOwotKwkgIHJldHVybiBmcmFtZV91bndpbmRfZ290X2NvbnN0YW50ICh0aGlzX2ZyYW1l LCByZWdudW0sIHByTl92YWwpOwotKwl9Ci0rICAgICAgd2FybmluZyAoXygiaWE2NF9zaWd0cmFt cF9mcmFtZV9wcmV2X3JlZ2lzdGVyOiB1bmhhbmRsZWQgcmVnaXN0ZXIgJWQiKSwKLSsJICAgICAg IHJlZ251bSk7Ci0rICAgIH0KLSsgIC8qIFJlZCBIYXQgcGF0Y2ggZW5kLiAgKi8KLSsKLSsgIC8q IEFsbCBvdGhlciByZWdpc3RlcnMgbm90IGxpc3RlZCBhYm92ZS4gICovCi0gICAgIHsKLSAgICAg ICBDT1JFX0FERFIgYWRkciA9IGNhY2hlLT5zYXZlZF9yZWdzW3JlZ251bV07Ci0gCgpkaWZmIC0t Z2l0IGEvZ2RiLTYuMy1yaC10ZXN0bGlidW53aW5kLTIwMDQxMjAyLnBhdGNoIGIvZ2RiLTYuMy1y aC10ZXN0bGlidW53aW5kLTIwMDQxMjAyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwYTEyMWMzLi4wMDAwMDAwCi0tLSBhL2dkYi02LjMtcmgtdGVzdGxpYnVud2luZC0yMDA0 MTIwMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0yMDAzLTExLTE3ICBF bGVuYSBaYW5ub25pICA8ZXphbm5vbmlAcmVkaGF0LmNvbT4KLSAgIAotICAgICAgICBGcm9tIEpl ZmYgSm9obnN0b24gPGpqb2huc3RuQHJlZGhhdC5jb20+Ci0gICAgICAgICogZ2RiLmFyY2gvaWE2 NC1saWJ1bndpbmQuZXhwOiBOZXcgZmlsZS4KLSAgICAgICAgKiBnZGIuYXJjaC9pYTY0LWxpYnVu d2luZC5jOiBOZXcgZmlsZS4KLQotMjAwNC0wOC0wMyAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3Ru QHJlZGhhdC5jb20+Ci0gICAKLSAgICAgICAgKiBnZGIuYXJjaC9pYTY0LWxpYnVud2luZC5leHA6 IEZpeCB0ZXN0IHN0cmluZyB0byBtYXRjaAotCWN1cnJlbnQgY29kZSBiYXNlLgotCi0JWyBhY3F1 aXJlX3Vud2luZF9pbmZvIC0+IGlhNjRfZmluZF9wcm9jX2luZm9feCBdCi0KLTIwMDktMDQtMzAg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVJlbW92ZSBh IHJhY2UgZnJvbSBzZW5kX2dkYiAiQ09NTUFORFxuIi4KLQlDbGVhbnVwLgotCU1lcmdlIGluOiBQ YXRjaDQ6IGdkYi02LjMtcmgtdGVzdGxpYnVud2luZDFmaXgtMjAwNDEyMDIucGF0Y2gKLSAKLS0t LSAvZGV2L251bGwJMjAwOS0wNC0xOSAwODo1Mjo1NC40OTkwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaWE2NC1saWJ1bndpbmQuYwkyMDA5LTA0LTMwIDE5 OjE1OjE2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyNiBAQAotKy8qIENvcHlyaWdodCAy MDAzLCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCi0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsg IHByaW50ZiAoImhlbGxvIHdvcmxkXG4iKTsKLSsgCi0rICByZXR1cm4gMDsKLSt9Ci0tLS0gL2Rl di9udWxsCTIwMDktMDQtMTkgMDg6NTI6NTQuNDk5MDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC9n ZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2lhNjQtbGlidW53aW5kLmV4cAkyMDA5LTA0LTMwIDE5OjE5 OjIyLjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1MiBAQAotKyMgQ29weXJpZ2h0IDIwMDMs IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQot KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgotKyMgCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMgCi0rIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQot KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m dHdhcmUKLSsjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwg Qm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAKLSsKLSsjIFBsZWFzZSBlbWFpbCBhbnkgYnVn cywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRvOgotKyMgYnVnLWdk YkBwcmVwLmFpLm1pdC5lZHUKLSsKLSsjIFRoaXMgZmlsZSB3YXMgd3JpdHRlbiBieSBKZWZmIEpv aG5zdG9uIChqam9obnN0bkByZWRoYXQuY29tKQotKwotK2lmICFbaXN0YXJnZXQgImlhNjQtKi0q Il0gdGhlbiB7Ci0rICAgIHJldHVybgotK30KLSsKLStzZXQgdGVzdGZpbGUgImlhNjQtbGlidW53 aW5kIgotK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKLStzZXQgYmluZmlsZSAke29iamRpcn0v JHtzdWJkaXJ9LyR7dGVzdGZpbGV9Ci0rCi0raWYgIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0v JHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1ZyBhZGRp dGlvbmFsX2ZsYWdzPS13fV0gIT0gIiIgfSB7Ci0rICAgIGdkYl9zdXBwcmVzc19lbnRpcmVfZmls ZSAiVGVzdGNhc2UgY29tcGlsZSBmYWlsZWQsIHNvIGFsbCB0ZXN0cyBpbiB0aGlzIGZpbGUgd2ls bCBhdXRvbWF0aWNhbGx5IGZhaWwuIgotK30KLSsKLStpZiBbZ2V0X2NvbXBpbGVyX2luZm8gJHti aW5maWxlfV0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rZ2RiX2V4aXQKLStnZGJfc3RhcnQK LStnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKLStnZGJfbG9hZCAke2JpbmZp bGV9Ci0rCi0rZ2RiX3Rlc3QgInNldCBkZWJ1ZyBhcmNoIDEiCi0rZ2RiX2JyZWFrcG9pbnQgIm1h aW4iCi0rZ2RiX3J1bl9jbWQKLSsKLStzZXQgdGVzdCAibGlidW53aW5kIG1lc3NhZ2UiCi0rZ2Ri X3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgewotKyAgICAtcmUgImlhNjRfZmluZF9wcm9jX2luZm9f eC4qJGdkYl9wcm9tcHQgJCIgewotKwlwYXNzICR0ZXN0Ci0rICAgIH0KLSt9CgpkaWZmIC0tZ2l0 IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA0NzFlMDBlLi41YmU0YzJhIDEwMDY0NAotLS0g YS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMzcsNyArMzcsNyBAQCBWZXJzaW9uOiA3LjYu NTAuJXtzbmFwfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVz ZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQg b2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0 aGUgdGVzdGluZy4KLVJlbGVhc2U6IDElez9kaXN0fQorUmVsZWFzZTogMiV7P2Rpc3R9CiAKIExp Y2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBH UEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1 YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTkwLDcgKzkwLDYg QEAgUHJvdmlkZXM6IGJ1bmRsZWQobWQ1LWdjYykgPSAle3NuYXBzcmN9CiAjcHVzaD1TaG91bGQg YmUgcHVzaGVkIHVwc3RyZWFtLgogI21heWJlcHVzaD1TaG91bGQgYmUgcHVzaGVkIHVwc3RyZWFt IHVubGVzcyBpdCBnb3Qgb2Jzb2xldGVkIHRoZXJlLgogI2ZlZG9yYT1TaG91bGQgc3RheSBhcyBh IEZlZG9yYSBwYXRjaC4KLSNpYTY0PURyb3AgYWZ0ZXIgUkhFTC01IHJlYmFzZXMgYW5kIHJlYnVp bGRzIGFyZSBubyBsb25nZXIgbWVhbmluZ2Z1bC4KICNmZWRvcmF0ZXN0PUtlZXAgaXQgaW4gRmVk b3JhIG9ubHkgYXMgYSByZWdyZXNzaW9uIHRlc3Qgc2FmZXR5LgogIytwcGM9U3BlY2lmaWMgZm9y IHBwYzMyL3BwYzY0L3BwYyoKICMrd29yaz1SZXF1aXJlcyBzb21lIG5vbnRyaXZpYWwgd29yay4K QEAgLTEyMiwxMCArMTIxLDYgQEAgUGF0Y2gxOiBnZGItNi4zLXJoLWR1bW15a2ZhaWwtMjAwNDEy MDIucGF0Y2gKICM9ZmVkb3JhCiBQYXRjaDI6IGdkYi02LjMtcmgtdGVzdHZlcnNpb24tMjAwNDEy MDIucGF0Y2gKIAotIyBDaGVjayB0aGF0IGxpYnVud2luZCB3b3JrcyAtIG5ldyB0ZXN0IHRoZW4g Zml4Ci0jPWlhNjQKLVBhdGNoMzogZ2RiLTYuMy1yaC10ZXN0bGlidW53aW5kLTIwMDQxMjAyLnBh dGNoCi0KICMgQmV0dGVyIHBhcnNlIDY0LWJpdCBQUEMgc3lzdGVtIGNhbGwgcHJvbG9ndWVzLgog Iz1tYXliZXB1c2grcHBjOiBXcml0ZSBuZXcgdGVzdGNhc2UuCiBQYXRjaDEwNTogZ2RiLTYuMy1w cGM2NHN5c2NhbGwtMjAwNDA2MjIucGF0Y2gKQEAgLTE2NywzNCArMTYyLDE0IEBAIFBhdGNoMTMz OiBnZGItNi4zLXRlc3QtZHRvcmZpeC0yMDA1MDEyMS5wYXRjaAogIz1mZWRvcmF0ZXN0CiBQYXRj aDEzNjogZ2RiLTYuMy10ZXN0LW1vdmVkaXItMjAwNTAxMjUucGF0Y2gKIAotIyBGaXggZ2NvcmUg Zm9yIHRocmVhZHMKLSM9aWE2NAotUGF0Y2gxNDA6IGdkYi02LjMtZ2NvcmUtdGhyZWFkLTIwMDUw MjA0LnBhdGNoCi0KICMgVGVzdCBzaWJsaW5nIHRocmVhZHMgdG8gc2V0IHRocmVhZGVkIHdhdGNo cG9pbnRzIGZvciB4ODYgYW5kIHg4Ni02NAogIz1mZWRvcmF0ZXN0CiBQYXRjaDE0NTogZ2RiLTYu My10aHJlYWRlZC13YXRjaHBvaW50czItMjAwNTAyMjUucGF0Y2gKIAotIyBEbyBub3QgaXNzdWUg d2FybmluZyBtZXNzYWdlIGFib3V0IGZpcnN0IHBhZ2Ugb2Ygc3RvcmFnZSBmb3IgaWE2NCBnY29y ZQotIz1pYTY0Ci1QYXRjaDE1MzogZ2RiLTYuMy1pYTY0LWdjb3JlLXBhZ2UwLTIwMDUwNDIxLnBh dGNoCi0KLSMgSUE2NCBzaWd0cmFtcCBwcmV2IHJlZ2lzdGVyIHBhdGNoCi0jPWlhNjQKLVBhdGNo MTU4OiBnZGItNi4zLWlhNjQtc2lndHJhbXAtZnJhbWUtMjAwNTA3MDgucGF0Y2gKLQotIyBJQTY0 IGdjb3JlIHNwZWVkLXVwIHBhdGNoCi0jPWlhNjQKLVBhdGNoMTYwOiBnZGItNi4zLWlhNjQtZ2Nv cmUtc3BlZWR1cC0yMDA1MDcxNC5wYXRjaAotCiAjIE5vdGlmeSBvYnNlcnZlcnMgdGhhdCB0aGUg aW5mZXJpb3IgaGFzIGJlZW4gY3JlYXRlZAogIz1mZWRvcmF0ZXN0CiBQYXRjaDE2MTogZ2RiLTYu My1pbmZlcmlvci1ub3RpZmljYXRpb24tMjAwNTA3MjEucGF0Y2gKIAotIyBGaXggaWE2NCBpbmZv IGZyYW1lIGJ1ZwotIz1pYTY0Ci1QYXRjaDE2MjogZ2RiLTYuMy1pYTY0LWluZm8tZnJhbWUtZml4 LTIwMDUwNzI1LnBhdGNoCi0KICMgVmVyaWZ5IHByaW50aW5nIG9mIGluaGVyaXRlZCBtZW1iZXJz IHRlc3QKICM9ZmVkb3JhdGVzdAogUGF0Y2gxNjM6IGdkYi02LjMtaW5oZXJpdGFuY2V0ZXN0LTIw MDUwNzI2LnBhdGNoCkBAIC0yMDMsMTAgKzE3OCw2IEBAIFBhdGNoMTYzOiBnZGItNi4zLWluaGVy aXRhbmNldGVzdC0yMDA1MDcyNi5wYXRjaAogIz1wdXNoCiBQYXRjaDE2NDogZ2RiLTYuMy1yZWFk bmV2ZXItMjAwNTA5MDcucGF0Y2gKIAotIyBGaXggaWE2NCBnZGIgcHJvYmxlbSB3aXRoIHVzZXIt c3BlY2lmaWVkIFNJR0lMTCBoYW5kbGluZwotIz1pYTY0Ci1QYXRjaDE2OTogZ2RiLTYuMy1pYTY0 LXNpZ2lsbC0yMDA1MTExNS5wYXRjaAotCiAjIEZpeCBkZWJ1Z2luZm8gYWRkcmVzc2VzIHJlc29s dmluZyBmb3IgLS1lbWl0LXJlbG9jcyBMaW51eCBrZXJuZWxzIChCWiAyMDM2NjEpLgogIz1wdXNo K3dvcms6IFRoZXJlIHdhcyBzb21lIG1haWwgdGhyZWFkIGFib3V0IGl0LCB0aGlzIHBhdGNoIG1h eSBiZSBhIGhhY2suCiBQYXRjaDE4ODogZ2RiLTYuNS1iejIwMzY2MS1lbWl0LXJlbG9jcy5wYXRj aApAQCAtNTkxLDcgKzU2Miw3IEBAIEJ1aWxkUmVxdWlyZXM6IHRleGxpdmUtZWMgdGV4bGl2ZS1j bS1zdXBlcgogCiAjIEJ1aWxkQXJjaCB3b3VsZCBicmVhayBSSEVMLTUgYnkgb3ZlcnJpZGluZyBh cmNoIGFuZCBub3QgYnVpbGRpbmcgbm9hcmNoLgogJWlmIDAlez9lbDU6MX0KLUV4Y2x1c2l2ZUFy Y2g6IG5vYXJjaCBpMzg2IHg4Nl82NCBwcGMgcHBjNjQgaWE2NCBzMzkwIHMzOTB4CitFeGNsdXNp dmVBcmNoOiBub2FyY2ggaTM4NiB4ODZfNjQgcHBjIHBwYzY0IHMzOTAgczM5MHgKICVlbmRpZiAj IDAlez9lbDU6MX0KIAogJWlmIDAlez9fd2l0aF90ZXN0c3VpdGU6MX0KQEAgLTYzOCw3ICs2MDks NyBAQCBCdWlsZFJlcXVpcmVzOiBmcGMKIEJ1aWxkUmVxdWlyZXM6IGdjYzQ0IGdjYzQ0LWdmb3J0 cmFuCiAlZW5kaWYKICMgQ29waWVkIGZyb20gZ2NjLTQuMS4yLTMyLgotJWlmYXJjaCAle2l4ODZ9 IHg4Nl82NCBpYTY0IHBwYyBhbHBoYQorJWlmYXJjaCAle2l4ODZ9IHg4Nl82NCBwcGMgYWxwaGEK IEJ1aWxkUmVxdWlyZXM6IGdjYy1nbmF0CiBCdWlsZFJlcXVpcmVzOiBsaWJnbmF0JXtiaXRzX2xv Y2FsfSBsaWJnbmF0JXtiaXRzX290aGVyfQogJWVuZGlmCkBAIC02NjcsMTYgKzYzOCw2IEBAIEJ1 aWxkUmVxdWlyZXM6IHh6CiAKICVlbmRpZiAjIDAlez9fd2l0aF90ZXN0c3VpdGU6MX0KIAotJWlm YXJjaCBpYTY0Ci0laWYgMCV7IT9lbDU6MX0KLUJ1aWxkUmVxdWlyZXM6IGxpYnVud2luZC1kZXZl bCA+PSAwLjk5LTAuMS5mcnlzazIwMDcwNDA1Y3ZzCi1SZXF1aXJlczogbGlidW53aW5kID49IDAu OTktMC4xLmZyeXNrMjAwNzA0MDVjdnMKLSVlbHNlCi1CdWlsZFJlcXVpcmVzOiBsaWJ1bndpbmQg Pj0gMC45Ni0zCi1SZXF1aXJlczogbGlidW53aW5kID49IDAuOTYtMwotJWVuZGlmCi0lZW5kaWYK LQogJXs/c2NsOlJlcXVpcmVzOiVzY2xfcnVudGltZX0KIAogJWRlc2NyaXB0aW9uCkBAIC03NTYs NyArNzE3LDYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDM0OSAt cDEKICNwYXRjaDIzMiAtcDEKICVwYXRjaDEgLXAxCi0lcGF0Y2gzIC1wMQogCiAlcGF0Y2gxMDUg LXAxCiAlcGF0Y2gxMTEgLXAxCkBAIC03NjYsMTYgKzcyNiwxMCBAQCBmaW5kIC1uYW1lICIqLmlu Zm8qInx4YXJncyBybSAtZgogJXBhdGNoMTI1IC1wMQogJXBhdGNoMTMzIC1wMQogJXBhdGNoMTM2 IC1wMQotJXBhdGNoMTQwIC1wMQogJXBhdGNoMTQ1IC1wMQotJXBhdGNoMTUzIC1wMQotJXBhdGNo MTU4IC1wMQotJXBhdGNoMTYwIC1wMQogJXBhdGNoMTYxIC1wMQotJXBhdGNoMTYyIC1wMQogJXBh dGNoMTYzIC1wMQogJXBhdGNoMTY0IC1wMQotJXBhdGNoMTY5IC1wMQogJXBhdGNoMTg4IC1wMQog JXBhdGNoMTk0IC1wMQogJXBhdGNoMTk2IC1wMQpAQCAtOTM2LDcgKzg5MCw3IEBAIGV4cG9ydCBM REZMQUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSIKIAktLXdpdGgtc3lzdGVtLWdkYmluaXQ9JXtf c3lzY29uZmRpcn0vZ2RiaW5pdAkJXAogCS0td2l0aC1nZGItZGF0YWRpcj0le19kYXRhZGlyfS9n ZGIJCQlcCiAJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzPSwtV25vLXVudXNlZAkJXAotJWlm bmFyY2ggJXtpeDg2fSBhbHBoYSBpYTY0IHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2NCBzcGFy YyBzcGFyY3Y5IHNwYXJjNjQKKyVpZm5hcmNoICV7aXg4Nn0gYWxwaGEgcHBjIHMzOTAgczM5MHgg eDg2XzY0IHBwYzY0IHNwYXJjIHNwYXJjdjkgc3BhcmM2NAogCS0tZGlzYWJsZS13ZXJyb3IJCQkJ CVwKICVlbHNlCiAJLS1lbmFibGUtd2Vycm9yCQkJCQkJXApAQCAtOTc0LDExICs5MjgsNyBAQCAk KDogUkhFTC01IGxpYnJwbSBoYXMgaW5jb21wYXRpYmxlIEFQSS4gKQkJCVwKICVlbHNlCiAJLS13 aXRob3V0LWx6bWEJCQkJCQlcCiAlZW5kaWYKLSVpZmFyY2ggaWE2NAotCS0td2l0aC1saWJ1bndp bmQJCQkJCVwKLSVlbHNlCiAJLS13aXRob3V0LWxpYnVud2luZAkJCQkJXAotJWVuZGlmCiAlaWZh cmNoIHNwYXJjIHNwYXJjdjkgc3BhcmM2NAogCS0td2l0aG91dC1tbWFwCQkJCQkJXAogJWVuZGlm CkBAIC0xMzYwLDggKzEzMTAsMTEgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190 YXJnZXRfY3B1fSIgPT0gIm5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBGcmkgQXVnICAyIDIwMTMg SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy42LjUwLjIwMTMw NzMxLTIuZmMyMAorLSBEcm9wIGlhNjQgcGF0Y2hlcyBhbmQgLnNwZWMgc3VwcG9ydC4KKwogKiBG cmkgQXVnICAyIDIwMTMgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ IC0gNy42LjUwLjIwMTMwNzMxLTEuZmMyMAotLSBSZWJhc2UgdG8gRlNGIEdEQiA3LjYuNTAuMjAx MzA3MzEgKHByZS03LjYgc25hcHNob3QpLgorLSBSZWJhc2UgdG8gRlNGIEdEQiA3LjYuNTAuMjAx MzA3MzEgKHNuYXBzaG90IGJldHdlZW4gNy42IGFuZCBmdXR1cmUgNy43KS4KIAogKiBNb24gSnVs IDI5IDIwMTMgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy42 LTM2LmZjMjAKIC0gUmVtb3ZlICUle2dkYl9kb2NkaXJ9LCByZWJ1aWxkIGZvciB1bnZlcnNpb25l ZCBkb2NkaXJzIChmb3IgQlogOTg2ODcxKS4K