From: marko.makela Date: February 2 2012 10:47am Subject: bzr push into mysql-5.5 branch (marko.makela:3695 to 3697) Bug#13651627 List-Archive: http://lists.mysql.com/commits/142712 X-Bug: 13651627 Message-Id: <201202021047.q12AlhZD031256@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM2OTcgTWFya28gTcOka2Vsw6QJMjAxMi0wMi0wMgogICAgICBCdWcgIzEzNjUxNjI3IE1vdmUg dXRfYWQoMCkgZnJvbSB0aGUgYmVnaW5uaW5nIHRvIHRoZSBlbmQgb2YgYnVmX3BhZ2VfcHJpbnQo KSwKICAgICAgcHJpbnQgcGFnZSBkdW1wCiAgICAgIAogICAgICBidWZfcGFnZV9wcmludCgpOiBS ZW1vdmUgdGhlIHV0X2FkKDApIGZyb20gdGhlIGJlZ2lubmluZy4gQWRkIHR3byBmbGFncwogICAg ICAoZW51bSBidWZfcGFnZV9wcmludF9mbGFncykgdGhhdCBjYW4gYmUgYml0d2lzZS1PUmVkIHRv Z2V0aGVyOgogICAgICAKICAgICAgQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0g6CiAgICAgICAgRG8g bm90IGNyYXNoIGRlYnVnIGJ1aWxkcyBhdCB0aGUgZW5kIG9mIGJ1Zl9wYWdlX3ByaW50KCkuCiAg ICAgIEJVRl9QQUdFX1BSSU5UX05PX0ZVTEw6CiAgICAgICAgRG8gbm90IHByaW50IHRoZSBmdWxs IHBhZ2UgZHVtcC4gVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gYWRkaW5nCiAgICAgICAgZGlhZ25v c3RpYyBwcmludG91dCB0byBmbHVzaGluZyBvciB0byB0aGUgZG91Ymxld3JpdGUgYnVmZmVyLgog ICAgICAKICAgICAgdHJ4X3N5c19kb3VibGV3cml0ZV9pbml0X29yX3Jlc3RvcmVfcGFnZSgpOiBS ZXBsYWNlIGV4aXQoMSkgd2l0aCB1dF9lcnJvciwKICAgICAgc28gdGhhdCB3ZSBjYW4gZ2V0IGEg Y29yZSBkdW1wIGlmIHRoaXMgZXh0cmFvcmRpbmFyeSBjb25kaXRpb24gaGFwcGVucy4KICAgICAg CiAgICAgIHJiOjkyNCBhcHByb3ZlZCBieSBTdW5ueSBCYWlucwoKICAgIG1vZGlmaWVkOgogICAg ICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9i dHIvYnRyMHNlYS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwogICAgICBz dG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwZmx1LmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pYnVm L2lidWYwaWJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmljCiAg ICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwYnVmLmgKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL3BhZ2UwcGFnZS5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2xvY2svbG9j azBsb2NrLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmMKICAgICAgc3Rv cmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwcGFnZS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93 L3JvdzBzZWwuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwc3lzLmMKIDM2OTYgTWFy a28gTcOka2Vsw6QJMjAxMi0wMi0wMiBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3FsLTUuMSB0byBt eXNxbC01LjUuCgogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Qv aW5ub2RiX2J1ZzM0MzAwLnRlc3QKIDM2OTUgQXNoaXNoIEFnYXJ3YWwJMjAxMi0wMi0wMiBbbWVy Z2VdCiAgICAgIEJVRyMxMTc1Njg2OTogTWVyZ2UgZnJvbSBteXNxbC01LjEgdG8gbXlzcWwtNS41 CgogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvci9teWlzYW0ucmVzdWx0CiAgICAgIG15 c3FsLXRlc3QvdC9teWlzYW0udGVzdAogICAgICBzdG9yYWdlL215aXNhbS9taV9jaGVjay5jCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWczNDMw MC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWczNDMwMC50 ZXN0CXJldmlkOmFzaGlzaC55LmFnYXJ3YWxAb3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1tNWFn bDUweW94OXc5c3BlCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzM0 MzAwLnRlc3QJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjAyMDIxMDMxNTctcjhq ZG90ZnFibnQ5NnRndgpAQCAtOCw2ICs4LDggQEAKIC0tIGRpc2FibGVfcXVlcnlfbG9nCiAtLSBk aXNhYmxlX3Jlc3VsdF9sb2cKIAorY2FsbCBtdHIuYWRkX3N1cHByZXNzaW9uKCJJbm5vREI6IFdh cm5pbmc6IGEgbG9uZyBzZW1hcGhvcmUgd2FpdDoiKTsKKwogIyBzZXQgcGFja2V0IHNpemUgYW5k IHJlY29ubmVjdCAKIGxldCAkbWF4X3BhY2tldD1gc2VsZWN0IEBAZ2xvYmFsLm1heF9hbGxvd2Vk X3BhY2tldGA7CiBTRVQgQEBnbG9iYWwubWF4X2FsbG93ZWRfcGFja2V0PTE2Nzc3MjE2OwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBidHIuYycKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jCXJldmlkOmFzaGlzaC55LmFnYXJ3YWxAb3JhY2xl LmNvbS0yMDEyMDIwMjA4NTU0My1tNWFnbDUweW94OXc5c3BlCisrKyBiL3N0b3JhZ2UvaW5ub2Jh c2UvYnRyL2J0cjBidHIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDIwMjEw MzE1Ny1yOGpkb3RmcWJudDk2dGd2CkBAIC01NiwxMSArNTYsMTIgQEAgYnRyX2NvcnJ1cHRpb25f cmVwb3J0KAogCQkodW5zaWduZWQpIGJ1Zl9ibG9ja19nZXRfc3BhY2UoYmxvY2spLAogCQkodW5z aWduZWQpIGJ1Zl9ibG9ja19nZXRfcGFnZV9ubyhibG9jayksCiAJCWluZGV4LT5uYW1lLCBpbmRl eC0+dGFibGVfbmFtZSk7Ci0JYnVmX3BhZ2VfcHJpbnQoYnVmX2Jsb2NrX2dldF9mcmFtZShibG9j ayksIDApOwogCWlmIChibG9jay0+cGFnZS56aXAuZGF0YSkgewogCQlidWZfcGFnZV9wcmludChi bG9jay0+cGFnZS56aXAuZGF0YSwKLQkJCSAgICAgICBidWZfYmxvY2tfZ2V0X3ppcF9zaXplKGJs b2NrKSk7CisJCQkgICAgICAgYnVmX2Jsb2NrX2dldF96aXBfc2l6ZShibG9jayksCisJCQkgICAg ICAgQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCX0KKwlidWZfcGFnZV9wcmludChidWZfYmxv Y2tfZ2V0X2ZyYW1lKGJsb2NrKSwgMCwgMCk7CiB9CiAKICNpZmRlZiBVTklWX0JMT0JfREVCVUcK QEAgLTEyMTUsOSArMTIxNiwxMSBAQCBidHJfcGFnZV9nZXRfZmF0aGVyX25vZGVfcHRyX2Z1bmMo CiAJCQkgICE9IHBhZ2Vfbm8pKSB7CiAJCXJlY190KglwcmludF9yZWM7CiAJCWZwdXRzKCJJbm5v REI6IER1bXAgb2YgdGhlIGNoaWxkIHBhZ2U6XG4iLCBzdGRlcnIpOwotCQlidWZfcGFnZV9wcmlu dChwYWdlX2FsaWduKHVzZXJfcmVjKSwgMCk7CisJCWJ1Zl9wYWdlX3ByaW50KHBhZ2VfYWxpZ24o dXNlcl9yZWMpLCAwLAorCQkJICAgICAgIEJVRl9QQUdFX1BSSU5UX05PX0NSQVNIKTsKIAkJZnB1 dHMoIklubm9EQjogRHVtcCBvZiB0aGUgcGFyZW50IHBhZ2U6XG4iLCBzdGRlcnIpOwotCQlidWZf cGFnZV9wcmludChwYWdlX2FsaWduKG5vZGVfcHRyKSwgMCk7CisJCWJ1Zl9wYWdlX3ByaW50KHBh Z2VfYWxpZ24obm9kZV9wdHIpLCAwLAorCQkJICAgICAgIEJVRl9QQUdFX1BSSU5UX05PX0NSQVNI KTsKIAogCQlmcHV0cygiSW5ub0RCOiBDb3JydXB0aW9uIG9mIGFuIGluZGV4IHRyZWU6IHRhYmxl ICIsIHN0ZGVycik7CiAJCXV0X3ByaW50X25hbWUoc3RkZXJyLCBOVUxMLCBUUlVFLCBpbmRleC0+ dGFibGVfbmFtZSk7CkBAIC0xNjU0LDggKzE2NTcsOCBAQCBidHJfcGFnZV9yZW9yZ2FuaXplX2xv dygKIAogCWlmIChVTklWX1VOTElLRUxZKGRhdGFfc2l6ZTEgIT0gZGF0YV9zaXplMikKIAkgICAg fHwgVU5JVl9VTkxJS0VMWShtYXhfaW5zX3NpemUxICE9IG1heF9pbnNfc2l6ZTIpKSB7Ci0JCWJ1 Zl9wYWdlX3ByaW50KHBhZ2UsIDApOwotCQlidWZfcGFnZV9wcmludCh0ZW1wX3BhZ2UsIDApOwor CQlidWZfcGFnZV9wcmludChwYWdlLCAwLCBCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CisJCWJ1 Zl9wYWdlX3ByaW50KHRlbXBfcGFnZSwgMCwgQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCQlm cHJpbnRmKHN0ZGVyciwKIAkJCSJJbm5vREI6IEVycm9yOiBwYWdlIG9sZCBkYXRhIHNpemUgJWx1 IgogCQkJIiBuZXcgZGF0YSBzaXplICVsdVxuIgpAQCAtMTY2Niw2ICsxNjY5LDcgQEAgYnRyX3Bh Z2VfcmVvcmdhbml6ZV9sb3coCiAJCQkodW5zaWduZWQgbG9uZykgZGF0YV9zaXplMSwgKHVuc2ln bmVkIGxvbmcpIGRhdGFfc2l6ZTIsCiAJCQkodW5zaWduZWQgbG9uZykgbWF4X2luc19zaXplMSwK IAkJCSh1bnNpZ25lZCBsb25nKSBtYXhfaW5zX3NpemUyKTsKKwkJdXRfYWQoMCk7CiAJfSBlbHNl IHsKIAkJc3VjY2VzcyA9IFRSVUU7CiAJfQpAQCAtMzg2Nyw3ICszODcxLDcgQEAgYnRyX2luZGV4 X3JlY192YWxpZGF0ZSgKIAkJCSh1bG9uZykgcmVjX2dldF9uX2ZpZWxkc19vbGQocmVjKSwgKHVs b25nKSBuKTsKIAogCQlpZiAoZHVtcF9vbl9lcnJvcikgewotCQkJYnVmX3BhZ2VfcHJpbnQocGFn ZSwgMCk7CisJCQlidWZfcGFnZV9wcmludChwYWdlLCAwLCBCVUZfUEFHRV9QUklOVF9OT19DUkFT SCk7CiAKIAkJCWZwdXRzKCJJbm5vREI6IGNvcnJ1cHQgcmVjb3JkICIsIHN0ZGVycik7CiAJCQly ZWNfcHJpbnRfb2xkKHN0ZGVyciwgcmVjKTsKQEAgLTM5MDUsNyArMzkwOSw4IEBAIGJ0cl9pbmRl eF9yZWNfdmFsaWRhdGUoCiAJCQkJKHVsb25nKSBpLCAodWxvbmcpIGxlbiwgKHVsb25nKSBmaXhl ZF9zaXplKTsKIAogCQkJaWYgKGR1bXBfb25fZXJyb3IpIHsKLQkJCQlidWZfcGFnZV9wcmludChw YWdlLCAwKTsKKwkJCQlidWZfcGFnZV9wcmludChwYWdlLCAwLAorCQkJCQkgICAgICAgQlVGX1BB R0VfUFJJTlRfTk9fQ1JBU0gpOwogCiAJCQkJZnB1dHMoIklubm9EQjogY29ycnVwdCByZWNvcmQg Iiwgc3RkZXJyKTsKIAkJCQlyZWNfcHJpbnRfbmV3KHN0ZGVyciwgcmVjLCBvZmZzZXRzKTsKQEAg LTQxMTUsOCArNDEyMCw4IEBAIGxvb3A6CiAJCQlidHJfdmFsaWRhdGVfcmVwb3J0MihpbmRleCwg bGV2ZWwsIGJsb2NrLCByaWdodF9ibG9jayk7CiAJCQlmcHV0cygiSW5ub0RCOiBicm9rZW4gRklM X1BBR0VfTkVYVCIKIAkJCSAgICAgICIgb3IgRklMX1BBR0VfUFJFViBsaW5rc1xuIiwgc3RkZXJy KTsKLQkJCWJ1Zl9wYWdlX3ByaW50KHBhZ2UsIDApOwotCQkJYnVmX3BhZ2VfcHJpbnQocmlnaHRf cGFnZSwgMCk7CisJCQlidWZfcGFnZV9wcmludChwYWdlLCAwLCBCVUZfUEFHRV9QUklOVF9OT19D UkFTSCk7CisJCQlidWZfcGFnZV9wcmludChyaWdodF9wYWdlLCAwLCBCVUZfUEFHRV9QUklOVF9O T19DUkFTSCk7CiAKIAkJCXJldCA9IEZBTFNFOwogCQl9CkBAIC00MTI1LDggKzQxMzAsOCBAQCBs b29wOgogCQkJCSAgIT0gcGFnZV9pc19jb21wKHBhZ2UpKSkgewogCQkJYnRyX3ZhbGlkYXRlX3Jl cG9ydDIoaW5kZXgsIGxldmVsLCBibG9jaywgcmlnaHRfYmxvY2spOwogCQkJZnB1dHMoIklubm9E QjogJ2NvbXBhY3QnIGZsYWcgbWlzbWF0Y2hcbiIsIHN0ZGVycik7Ci0JCQlidWZfcGFnZV9wcmlu dChwYWdlLCAwKTsKLQkJCWJ1Zl9wYWdlX3ByaW50KHJpZ2h0X3BhZ2UsIDApOworCQkJYnVmX3Bh Z2VfcHJpbnQocGFnZSwgMCwgQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOworCQkJYnVmX3BhZ2Vf cHJpbnQocmlnaHRfcGFnZSwgMCwgQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCiAJCQlyZXQg PSBGQUxTRTsKIApAQCAtNDE0OSw4ICs0MTU0LDggQEAgbG9vcDoKIAkJCWZwdXRzKCJJbm5vREI6 IHJlY29yZHMgaW4gd3Jvbmcgb3JkZXIiCiAJCQkgICAgICAiIG9uIGFkamFjZW50IHBhZ2VzXG4i LCBzdGRlcnIpOwogCi0JCQlidWZfcGFnZV9wcmludChwYWdlLCAwKTsKLQkJCWJ1Zl9wYWdlX3By aW50KHJpZ2h0X3BhZ2UsIDApOworCQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCwgQlVGX1BBR0Vf UFJJTlRfTk9fQ1JBU0gpOworCQkJYnVmX3BhZ2VfcHJpbnQocmlnaHRfcGFnZSwgMCwgQlVGX1BB R0VfUFJJTlRfTk9fQ1JBU0gpOwogCiAJCQlmcHV0cygiSW5ub0RCOiByZWNvcmQgIiwgc3RkZXJy KTsKIAkJCXJlYyA9IHBhZ2VfcmVjX2dldF9wcmV2KHBhZ2VfZ2V0X3N1cHJlbXVtX3JlYyhwYWdl KSk7CkBAIC00MTk5LDggKzQyMDQsOCBAQCBsb29wOgogCQkJZnB1dHMoIklubm9EQjogbm9kZSBw b2ludGVyIHRvIHRoZSBwYWdlIGlzIHdyb25nXG4iLAogCQkJICAgICAgc3RkZXJyKTsKIAotCQkJ YnVmX3BhZ2VfcHJpbnQoZmF0aGVyX3BhZ2UsIDApOwotCQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwg MCk7CisJCQlidWZfcGFnZV9wcmludChmYXRoZXJfcGFnZSwgMCwgQlVGX1BBR0VfUFJJTlRfTk9f Q1JBU0gpOworCQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCwgQlVGX1BBR0VfUFJJTlRfTk9fQ1JB U0gpOwogCiAJCQlmcHV0cygiSW5ub0RCOiBub2RlIHB0ciAiLCBzdGRlcnIpOwogCQkJcmVjX3By aW50KHN0ZGVyciwgbm9kZV9wdHIsIGluZGV4KTsKQEAgLTQyMzIsOCArNDIzNywxMCBAQCBsb29w OgogCiAJCQkJYnRyX3ZhbGlkYXRlX3JlcG9ydDEoaW5kZXgsIGxldmVsLCBibG9jayk7CiAKLQkJ CQlidWZfcGFnZV9wcmludChmYXRoZXJfcGFnZSwgMCk7Ci0JCQkJYnVmX3BhZ2VfcHJpbnQocGFn ZSwgMCk7CisJCQkJYnVmX3BhZ2VfcHJpbnQoZmF0aGVyX3BhZ2UsIDAsCisJCQkJCSAgICAgICBC VUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CisJCQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCwKKwkJ CQkJICAgICAgIEJVRl9QQUdFX1BSSU5UX05PX0NSQVNIKTsKIAogCQkJCWZwdXRzKCJJbm5vREI6 IEVycm9yOiBub2RlIHB0cnMgZGlmZmVyIgogCQkJCSAgICAgICIgb24gbGV2ZWxzID4gMFxuIgpA QCAtNDI3OCw5ICs0Mjg1LDE1IEBAIGxvb3A6CiAJCQkJCWJ0cl92YWxpZGF0ZV9yZXBvcnQxKGlu ZGV4LCBsZXZlbCwKIAkJCQkJCQkgICAgIGJsb2NrKTsKIAotCQkJCQlidWZfcGFnZV9wcmludChm YXRoZXJfcGFnZSwgMCk7Ci0JCQkJCWJ1Zl9wYWdlX3ByaW50KHBhZ2UsIDApOwotCQkJCQlidWZf cGFnZV9wcmludChyaWdodF9wYWdlLCAwKTsKKwkJCQkJYnVmX3BhZ2VfcHJpbnQoCisJCQkJCQlm YXRoZXJfcGFnZSwgMCwKKwkJCQkJCUJVRl9QQUdFX1BSSU5UX05PX0NSQVNIKTsKKwkJCQkJYnVm X3BhZ2VfcHJpbnQoCisJCQkJCQlwYWdlLCAwLAorCQkJCQkJQlVGX1BBR0VfUFJJTlRfTk9fQ1JB U0gpOworCQkJCQlidWZfcGFnZV9wcmludCgKKwkJCQkJCXJpZ2h0X3BhZ2UsIDAsCisJCQkJCQlC VUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CiAJCQkJfQogCQkJfSBlbHNlIHsKIAkJCQlwYWdlX3Qq CXJpZ2h0X2ZhdGhlcl9wYWdlCkBAIC00Mjk4LDEwICs0MzExLDE4IEBAIGxvb3A6CiAJCQkJCWJ0 cl92YWxpZGF0ZV9yZXBvcnQxKGluZGV4LCBsZXZlbCwKIAkJCQkJCQkgICAgIGJsb2NrKTsKIAot CQkJCQlidWZfcGFnZV9wcmludChmYXRoZXJfcGFnZSwgMCk7Ci0JCQkJCWJ1Zl9wYWdlX3ByaW50 KHJpZ2h0X2ZhdGhlcl9wYWdlLCAwKTsKLQkJCQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCk7Ci0J CQkJCWJ1Zl9wYWdlX3ByaW50KHJpZ2h0X3BhZ2UsIDApOworCQkJCQlidWZfcGFnZV9wcmludCgK KwkJCQkJCWZhdGhlcl9wYWdlLCAwLAorCQkJCQkJQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwor CQkJCQlidWZfcGFnZV9wcmludCgKKwkJCQkJCXJpZ2h0X2ZhdGhlcl9wYWdlLCAwLAorCQkJCQkJ QlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOworCQkJCQlidWZfcGFnZV9wcmludCgKKwkJCQkJCXBh Z2UsIDAsCisJCQkJCQlCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CisJCQkJCWJ1Zl9wYWdlX3By aW50KAorCQkJCQkJcmlnaHRfcGFnZSwgMCwKKwkJCQkJCUJVRl9QQUdFX1BSSU5UX05PX0NSQVNI KTsKIAkJCQl9CiAKIAkJCQlpZiAocGFnZV9nZXRfcGFnZV9ubyhyaWdodF9mYXRoZXJfcGFnZSkK QEAgLTQzMTUsMTAgKzQzMzYsMTggQEAgbG9vcDoKIAkJCQkJYnRyX3ZhbGlkYXRlX3JlcG9ydDEo aW5kZXgsIGxldmVsLAogCQkJCQkJCSAgICAgYmxvY2spOwogCi0JCQkJCWJ1Zl9wYWdlX3ByaW50 KGZhdGhlcl9wYWdlLCAwKTsKLQkJCQkJYnVmX3BhZ2VfcHJpbnQocmlnaHRfZmF0aGVyX3BhZ2Us IDApOwotCQkJCQlidWZfcGFnZV9wcmludChwYWdlLCAwKTsKLQkJCQkJYnVmX3BhZ2VfcHJpbnQo cmlnaHRfcGFnZSwgMCk7CisJCQkJCWJ1Zl9wYWdlX3ByaW50KAorCQkJCQkJZmF0aGVyX3BhZ2Us IDAsCisJCQkJCQlCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CisJCQkJCWJ1Zl9wYWdlX3ByaW50 KAorCQkJCQkJcmlnaHRfZmF0aGVyX3BhZ2UsIDAsCisJCQkJCQlCVUZfUEFHRV9QUklOVF9OT19D UkFTSCk7CisJCQkJCWJ1Zl9wYWdlX3ByaW50KAorCQkJCQkJcGFnZSwgMCwKKwkJCQkJCUJVRl9Q QUdFX1BSSU5UX05PX0NSQVNIKTsKKwkJCQkJYnVmX3BhZ2VfcHJpbnQoCisJCQkJCQlyaWdodF9w YWdlLCAwLAorCQkJCQkJQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCQkJCX0KIAkJCX0KIAkJ fQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBzZWEuYycKLS0t IGEvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMHNlYS5jCXJldmlkOmFzaGlzaC55LmFnYXJ3YWxA b3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1tNWFnbDUweW94OXc5c3BlCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvYnRyL2J0cjBzZWEuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEy MDIwMjEwMzE1Ny1yOGpkb3RmcWJudDk2dGd2CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMg YWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykgMTk5NiwgMjAx MiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIENv cHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4KIAogUG9ydGlvbnMgb2YgdGhpcyBmaWxlIGNv bnRhaW4gbW9kaWZpY2F0aW9ucyBjb250cmlidXRlZCBhbmQgY29weXJpZ2h0ZWQgYnkKQEAgLTEx NzYsNyArMTE3Niw3IEBAIGNsZWFudXA6CiAJCQlpbmRleC0+bmFtZSwgKHVsb25nKSBibG9jay0+ bl9wb2ludGVycyk7CiAJCXJ3X2xvY2tfeF91bmxvY2soJmJ0cl9zZWFyY2hfbGF0Y2gpOwogCi0J CWJ0cl9zZWFyY2hfdmFsaWRhdGUoKTsKKwkJdXRfYWQoYnRyX3NlYXJjaF92YWxpZGF0ZSgpKTsK IAl9IGVsc2UgewogCQlyd19sb2NrX3hfdW5sb2NrKCZidHJfc2VhcmNoX2xhdGNoKTsKIAl9CkBA IC0xOTA4LDcgKzE5MDgsOSBAQCBidHJfc2VhcmNoX3ZhbGlkYXRlKHZvaWQpCiAJCQkJCSh1bG9u ZykgYmxvY2stPmN1cnJfbGVmdF9zaWRlKTsKIAogCQkJCWlmIChuX3BhZ2VfZHVtcHMgPCAyMCkg ewotCQkJCQlidWZfcGFnZV9wcmludChwYWdlLCAwKTsKKwkJCQkJYnVmX3BhZ2VfcHJpbnQoCisJ CQkJCQlwYWdlLCAwLAorCQkJCQkJQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCQkJCQluX3Bh Z2VfZHVtcHMrKzsKIAkJCQl9CiAJCQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9idWYvYnVmMGJ1Zi5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVmLmMJ cmV2aWQ6YXNoaXNoLnkuYWdhcndhbEBvcmFjbGUuY29tLTIwMTIwMjAyMDg1NTQzLW01YWdsNTB5 b3g5dzlzcGUKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGJ1Zi5jCXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwMjAyMTAzMTU3LXI4amRvdGZxYm50OTZ0Z3YKQEAgLTYw NSw4ICs2MDUsMTIgQEAgdm9pZAogYnVmX3BhZ2VfcHJpbnQoCiAvKj09PT09PT09PT09Ki8KIAlj b25zdCBieXRlKglyZWFkX2J1ZiwJLyohPCBpbjogYSBkYXRhYmFzZSBwYWdlICovCi0JdWxpbnQJ CXppcF9zaXplKQkvKiE8IGluOiBjb21wcmVzc2VkIHBhZ2Ugc2l6ZSwgb3IKLQkJCQkwIGZvciB1 bmNvbXByZXNzZWQgcGFnZXMgKi8KKwl1bGludAkJemlwX3NpemUsCS8qITwgaW46IGNvbXByZXNz ZWQgcGFnZSBzaXplLCBvcgorCQkJCQkwIGZvciB1bmNvbXByZXNzZWQgcGFnZXMgKi8KKwl1bGlu dAkJZmxhZ3MpCQkvKiE8IGluOiAwIG9yCisJCQkJCUJVRl9QQUdFX1BSSU5UX05PX0NSQVNIIG9y CisJCQkJCUJVRl9QQUdFX1BSSU5UX05PX0ZVTEwgKi8KKwogewogI2lmbmRlZiBVTklWX0hPVEJB Q0tVUAogCWRpY3RfaW5kZXhfdCoJaW5kZXg7CkBAIC02MTUsMTcgKzYxOSwxOCBAQCBidWZfcGFn ZV9wcmludCgKIAl1bGludAkJb2xkX2NoZWNrc3VtOwogCXVsaW50CQlzaXplCT0gemlwX3NpemU7 CiAKLQl1dF9hZCgwKTsKLQogCWlmICghc2l6ZSkgewogCQlzaXplID0gVU5JVl9QQUdFX1NJWkU7 CiAJfQogCi0JdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7Ci0JZnByaW50ZihzdGRlcnIsICIg IElubm9EQjogUGFnZSBkdW1wIGluIGFzY2lpIGFuZCBoZXggKCVsdSBieXRlcyk6XG4iLAotCQko dWxvbmcpIHNpemUpOwotCXV0X3ByaW50X2J1ZihzdGRlcnIsIHJlYWRfYnVmLCBzaXplKTsKLQlm cHV0cygiXG5Jbm5vREI6IEVuZCBvZiBwYWdlIGR1bXBcbiIsIHN0ZGVycik7CisJaWYgKCEoZmxh Z3MgJiBCVUZfUEFHRV9QUklOVF9OT19GVUxMKSkgeworCQl1dF9wcmludF90aW1lc3RhbXAoc3Rk ZXJyKTsKKwkJZnByaW50ZihzdGRlcnIsCisJCQkiICBJbm5vREI6IFBhZ2UgZHVtcCBpbiBhc2Np aSBhbmQgaGV4ICglbHUgYnl0ZXMpOlxuIiwKKwkJCSh1bG9uZykgc2l6ZSk7CisJCXV0X3ByaW50 X2J1ZihzdGRlcnIsIHJlYWRfYnVmLCBzaXplKTsKKwkJZnB1dHMoIlxuSW5ub0RCOiBFbmQgb2Yg cGFnZSBkdW1wXG4iLCBzdGRlcnIpOworCX0KIAogCWlmICh6aXBfc2l6ZSkgewogCQkvKiBQcmlu dCBjb21wcmVzc2VkIHBhZ2UuICovCkBAIC03OTcsNiArODAyLDggQEAgYnVmX3BhZ2VfcHJpbnQo CiAJCSAgICAgIHN0ZGVycik7CiAJCWJyZWFrOwogCX0KKworCXV0X2FkKGZsYWdzICYgQlVGX1BB R0VfUFJJTlRfTk9fQ1JBU0gpOwogfQogCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCkBAIC0zNTU3 LDcgKzM1NjQsOCBAQCBjb3JydXB0OgogCQkJCSJJbm5vREI6IFlvdSBtYXkgaGF2ZSB0byByZWNv dmVyIgogCQkJCSIgZnJvbSBhIGJhY2t1cC5cbiIsCiAJCQkJKHVsb25nKSBicGFnZS0+b2Zmc2V0 KTsKLQkJCWJ1Zl9wYWdlX3ByaW50KGZyYW1lLCBidWZfcGFnZV9nZXRfemlwX3NpemUoYnBhZ2Up KTsKKwkJCWJ1Zl9wYWdlX3ByaW50KGZyYW1lLCBidWZfcGFnZV9nZXRfemlwX3NpemUoYnBhZ2Up LAorCQkJCSAgICAgICBCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CiAJCQlmcHJpbnRmKHN0ZGVy ciwKIAkJCQkiSW5ub0RCOiBEYXRhYmFzZSBwYWdlIGNvcnJ1cHRpb24gb24gZGlzayIKIAkJCQki IG9yIGEgZmFpbGVkXG4iCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idWYv YnVmMGZsdS5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwZmx1LmMJcmV2aWQ6YXNo aXNoLnkuYWdhcndhbEBvcmFjbGUuY29tLTIwMTIwMjAyMDg1NTQzLW01YWdsNTB5b3g5dzlzcGUK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGZsdS5jCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTIwMjAyMTAzMTU3LXI4amRvdGZxYm50OTZ0Z3YKQEAgLTc1Nyw3ICs3NTcs OCBAQCBidWZfZmx1c2hfYnVmZmVyZWRfd3JpdGVzKHZvaWQpCiAJCQlpZiAoVU5JVl9VTkxJS0VM WQogCQkJICAgICghcGFnZV9zaW1wbGVfdmFsaWRhdGVfbmV3KGJsb2NrLT5mcmFtZSkpKSB7CiBj b3JydXB0ZWRfcGFnZToKLQkJCQlidWZfcGFnZV9wcmludChibG9jay0+ZnJhbWUsIDApOworCQkJ CWJ1Zl9wYWdlX3ByaW50KGJsb2NrLT5mcmFtZSwgMCwKKwkJCQkJICAgICAgIEJVRl9QQUdFX1BS SU5UX05PX0NSQVNIKTsKIAogCQkJCXV0X3ByaW50X3RpbWVzdGFtcChzdGRlcnIpOwogCQkJCWZw cmludGYoc3RkZXJyLAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9p YnVmMGlidWYuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlk OmFzaGlzaC55LmFnYXJ3YWxAb3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1tNWFnbDUweW94OXc5 c3BlCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEyMDIwMjEwMzE1Ny1yOGpkb3RmcWJudDk2dGd2CkBAIC0zOTMx LDkgKzM5MzEsMTAgQEAgaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZSgKIAkJICAgICAgIklubm9E QjogYnV0IHRoZSBudW1iZXIgb2YgZmllbGRzIGRvZXMgbm90IG1hdGNoIVxuIiwKIAkJICAgICAg c3RkZXJyKTsKIGR1bXA6Ci0JCWJ1Zl9wYWdlX3ByaW50KHBhZ2UsIDApOworCQlidWZfcGFnZV9w cmludChwYWdlLCAwLCBCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CiAKIAkJZHR1cGxlX3ByaW50 KHN0ZGVyciwgZW50cnkpOworCQl1dF9hZCgwKTsKIAogCQlmcHV0cygiSW5ub0RCOiBUaGUgdGFi bGUgd2hlcmUgd2hlcmUiCiAJCSAgICAgICIgdGhpcyBpbmRleCByZWNvcmQgYmVsb25nc1xuIgpA QCAtNDUwNiwxMiArNDUwNywxNCBAQCBpYnVmX21lcmdlX29yX2RlbGV0ZV9mb3JfcGFnZSgKIAog CQkJYml0bWFwX3BhZ2UgPSBpYnVmX2JpdG1hcF9nZXRfbWFwX3BhZ2Uoc3BhY2UsIHBhZ2Vfbm8s CiAJCQkJCQkJICAgICAgIHppcF9zaXplLCAmbXRyKTsKLQkJCWJ1Zl9wYWdlX3ByaW50KGJpdG1h cF9wYWdlLCAwKTsKKwkJCWJ1Zl9wYWdlX3ByaW50KGJpdG1hcF9wYWdlLCAwLAorCQkJCSAgICAg ICBCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CiAJCQlpYnVmX210cl9jb21taXQoJm10cik7CiAK IAkJCWZwdXRzKCJcbklubm9EQjogRHVtcCBvZiB0aGUgcGFnZTpcbiIsIHN0ZGVycik7CiAKLQkJ CWJ1Zl9wYWdlX3ByaW50KGJsb2NrLT5mcmFtZSwgMCk7CisJCQlidWZfcGFnZV9wcmludChibG9j ay0+ZnJhbWUsIDAsCisJCQkJICAgICAgIEJVRl9QQUdFX1BSSU5UX05PX0NSQVNIKTsKIAogCQkJ ZnByaW50ZihzdGRlcnIsCiAJCQkJIklubm9EQjogRXJyb3I6IGNvcnJ1cHRpb24gaW4gdGhlIHRh Ymxlc3BhY2UuIgpAQCAtNDUzMSw2ICs0NTM0LDcgQEAgaWJ1Zl9tZXJnZV9vcl9kZWxldGVfZm9y X3BhZ2UoCiAJCQkJKHVsb25nKSBwYWdlX25vLAogCQkJCSh1bG9uZykKIAkJCQlmaWxfcGFnZV9n ZXRfdHlwZShibG9jay0+ZnJhbWUpKTsKKwkJCXV0X2FkKDApOwogCQl9CiAJfQogCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaWMnCi0tLSBhL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmljCXJldmlkOmFzaGlzaC55LmFnYXJ3YWxA b3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1tNWFnbDUweW94OXc5c3BlCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29t LTIwMTIwMjAyMTAzMTU3LXI4amRvdGZxYm50OTZ0Z3YKQEAgLTI3Nyw3ICsyNzcsNyBAQCBidHJf bm9kZV9wdHJfZ2V0X2NoaWxkX3BhZ2Vfbm8oCiAJCQkiSW5ub0RCOiBhIG5vbnNlbnNpY2FsIHBh Z2UgbnVtYmVyIDAiCiAJCQkiIGluIGEgbm9kZSBwdHIgcmVjb3JkIGF0IG9mZnNldCAlbHVcbiIs CiAJCQkodWxvbmcpIHBhZ2Vfb2Zmc2V0KHJlYykpOwotCQlidWZfcGFnZV9wcmludChwYWdlX2Fs aWduKHJlYyksIDApOworCQlidWZfcGFnZV9wcmludChwYWdlX2FsaWduKHJlYyksIDAsIDApOwog CX0KIAogCXJldHVybihwYWdlX25vKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9i YXNlL2luY2x1ZGUvYnVmMGJ1Zi5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnVm MGJ1Zi5oCXJldmlkOmFzaGlzaC55LmFnYXJ3YWxAb3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1t NWFnbDUweW94OXc5c3BlCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwYnVmLmgJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjAyMDIxMDMxNTctcjhqZG90ZnFibnQ5 NnRndgpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQg KGMpIDE5OTUsIDIwMTAsIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJp Z2h0IChjKSAxOTk1LCAyMDEyLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmln aHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUKQEAgLTY4MCw2ICs2ODAsMTMgQEAgYnVmX3ByaW50KHZvaWQpOwogLyo9PT09PT09PT09PT0q LwogI2VuZGlmIC8qIFVOSVZfREVCVUdfUFJJTlQgfHwgVU5JVl9ERUJVRyB8fCBVTklWX0JVRl9E RUJVRyAqLwogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLworZW51bSBidWZfcGFnZV9wcmlu dF9mbGFncyB7CisJLyoqIERvIG5vdCBjcmFzaCBhdCB0aGUgZW5kIG9mIGJ1Zl9wYWdlX3ByaW50 KCkuICovCisJQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gJPSAxLAorCS8qKiBEbyBub3QgcHJpbnQg dGhlIGZ1bGwgcGFnZSBkdW1wLiAqLworCUJVRl9QQUdFX1BSSU5UX05PX0ZVTEwgPSAyCit9Owor CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovLyoqCiBQcmludHMgYSBwYWdlIHRvIHN0ZGVyci4gKi8KIFVOSVZfSU5U RVJOCkBAIC02ODcsOCArNjk0LDEyIEBAIHZvaWQKIGJ1Zl9wYWdlX3ByaW50KAogLyo9PT09PT09 PT09PSovCiAJY29uc3QgYnl0ZSoJcmVhZF9idWYsCS8qITwgaW46IGEgZGF0YWJhc2UgcGFnZSAq LwotCXVsaW50CQl6aXBfc2l6ZSk7CS8qITwgaW46IGNvbXByZXNzZWQgcGFnZSBzaXplLCBvcgor CXVsaW50CQl6aXBfc2l6ZSwJLyohPCBpbjogY29tcHJlc3NlZCBwYWdlIHNpemUsIG9yCiAJCQkJ CTAgZm9yIHVuY29tcHJlc3NlZCBwYWdlcyAqLworCXVsaW50CQlmbGFncykJCS8qITwgaW46IDAg b3IKKwkJCQkJQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0ggb3IKKwkJCQkJQlVGX1BBR0VfUFJJTlRf Tk9fRlVMTCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK IERlY29tcHJlc3MgYSBibG9jay4KIEByZXR1cm4JVFJVRSBpZiBzdWNjZXNzZnVsICovCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3BhZ2UwcGFnZS5pYycKLS0t IGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3BhZ2UwcGFnZS5pYwlyZXZpZDphc2hpc2gueS5h Z2Fyd2FsQG9yYWNsZS5jb20tMjAxMjAyMDIwODU1NDMtbTVhZ2w1MHlveDl3OXNwZQorKysgYi9z dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcGFnZTBwYWdlLmljCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTIwMjAyMTAzMTU3LXI4amRvdGZxYm50OTZ0Z3YKQEAgLTcxMCw3ICs3MTAs NyBAQCBwYWdlX3JlY19nZXRfbmV4dF9sb3coCiAJCQkodm9pZCopIHJlYywKIAkJCSh1bG9uZykg cGFnZV9nZXRfc3BhY2VfaWQocGFnZSksCiAJCQkodWxvbmcpIHBhZ2VfZ2V0X3BhZ2Vfbm8ocGFn ZSkpOwotCQlidWZfcGFnZV9wcmludChwYWdlLCAwKTsKKwkJYnVmX3BhZ2VfcHJpbnQocGFnZSwg MCwgMCk7CiAKIAkJdXRfZXJyb3I7CiAJfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5u b2Jhc2UvbG9jay9sb2NrMGxvY2suYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9sb2NrL2xvY2sw bG9jay5jCXJldmlkOmFzaGlzaC55LmFnYXJ3YWxAb3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1t NWFnbDUweW94OXc5c3BlCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvbG9jay9sb2NrMGxvY2suYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDIwMjEwMzE1Ny1yOGpkb3RmcWJudDk2 dGd2CkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBsb2NrX3NlY19yZWNfc29tZV9oYXNfaW1wbF9vZmZf a2VybmVsKAogCiAJaWYgKCFsb2NrX2NoZWNrX3RyeF9pZF9zYW5pdHkocGFnZV9nZXRfbWF4X3Ry eF9pZChwYWdlKSwKIAkJCQkgICAgICByZWMsIGluZGV4LCBvZmZzZXRzLCBUUlVFKSkgewotCQli dWZfcGFnZV9wcmludChwYWdlLCAwKTsKKwkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCwgMCk7CiAK IAkJLyogVGhlIHBhZ2UgaXMgY29ycnVwdDogdHJ5IHRvIGF2b2lkIGEgY3Jhc2ggYnkgcmV0dXJu aW5nCiAJCU5VTEwgKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3BhZ2Uv cGFnZTBjdXIuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmMJcmV2aWQ6 YXNoaXNoLnkuYWdhcndhbEBvcmFjbGUuY29tLTIwMTIwMjAyMDg1NTQzLW01YWdsNTB5b3g5dzlz cGUKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwY3VyLmMJcmV2aWQ6bWFya28ubWFr ZWxhQG9yYWNsZS5jb20tMjAxMjAyMDIxMDMxNTctcjhqZG90ZnFibnQ5NnRndgpAQCAtOTAwLDcg KzkwMCw3IEBAIHBhZ2VfY3VyX3BhcnNlX2luc2VydF9yZWMoCiAJCXV0X3ByaW50X2J1ZihzdGRl cnIsIHB0cjIsIDMwMCk7CiAJCXB1dGMoJ1xuJywgc3RkZXJyKTsKIAotCQlidWZfcGFnZV9wcmlu dChwYWdlLCAwKTsKKwkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCwgMCk7CiAKIAkJdXRfZXJyb3I7 CiAJfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdlMHBhZ2Uu YycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwcGFnZS5jCXJldmlkOmFzaGlzaC55 LmFnYXJ3YWxAb3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0My1tNWFnbDUweW94OXc5c3BlCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvcGFnZS9wYWdlMHBhZ2UuYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEyMDIwMjEwMzE1Ny1yOGpkb3RmcWJudDk2dGd2CkBAIC0xNDgsNyArMTQ4LDcg QEAgcGFnZV9kaXJfZmluZF9vd25lcl9zbG90KAogCQkJZnB1dHMoIlxuIgogCQkJICAgICAgIklu bm9EQjogb24gdGhhdCBwYWdlIVxuIiwgc3RkZXJyKTsKIAotCQkJYnVmX3BhZ2VfcHJpbnQocGFn ZSwgMCk7CisJCQlidWZfcGFnZV9wcmludChwYWdlLCAwLCAwKTsKIAogCQkJdXRfZXJyb3I7CiAJ CX0KQEAgLTU2OSw4ICs1NjksMTAgQEAgcGFnZV9jb3B5X3JlY19saXN0X2VuZF9ub19sb2NrcygK IAkJCS8qIFRyYWNrIGFuIGFzc2VydGlvbiBmYWlsdXJlIHJlcG9ydGVkIG9uIHRoZSBtYWlsaW5n CiAJCQlsaXN0IG9uIEp1bmUgMTh0aCwgMjAwMyAqLwogCi0JCQlidWZfcGFnZV9wcmludChuZXdf cGFnZSwgMCk7Ci0JCQlidWZfcGFnZV9wcmludChwYWdlX2FsaWduKHJlYyksIDApOworCQkJYnVm X3BhZ2VfcHJpbnQobmV3X3BhZ2UsIDAsCisJCQkJICAgICAgIEJVRl9QQUdFX1BSSU5UX05PX0NS QVNIKTsKKwkJCWJ1Zl9wYWdlX3ByaW50KHBhZ2VfYWxpZ24ocmVjKSwgMCwKKwkJCQkgICAgICAg QlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCQkJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7 CiAKIAkJCWZwcmludGYoc3RkZXJyLApAQCAtMTgzNCw3ICsxODM2LDcgQEAgcGFnZV9jaGVja19k aXIoCiAJCWZwcmludGYoc3RkZXJyLAogCQkJIklubm9EQjogUGFnZSBkaXJlY3RvcnkgY29ycnVw dGlvbjoiCiAJCQkiIGluZmltdW0gbm90IHBvaW50ZWQgdG9cbiIpOwotCQlidWZfcGFnZV9wcmlu dChwYWdlLCAwKTsKKwkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCwgMCk7CiAJfQogCiAJaWYgKFVO SVZfVU5MSUtFTFkoIXBhZ2VfcmVjX2lzX3N1cHJlbXVtX2xvdyhzdXByZW11bV9vZmZzKSkpIHsK QEAgLTE4NDIsNyArMTg0NCw3IEBAIHBhZ2VfY2hlY2tfZGlyKAogCQlmcHJpbnRmKHN0ZGVyciwK IAkJCSJJbm5vREI6IFBhZ2UgZGlyZWN0b3J5IGNvcnJ1cHRpb246IgogCQkJIiBzdXByZW11bSBu b3QgcG9pbnRlZCB0b1xuIik7Ci0JCWJ1Zl9wYWdlX3ByaW50KHBhZ2UsIDApOworCQlidWZfcGFn ZV9wcmludChwYWdlLCAwLCAwKTsKIAl9CiB9CiAjZW5kaWYgLyogIVVOSVZfSE9UQkFDS1VQICov CkBAIC0yNTQ2LDcgKzI1NDgsNyBAQCBmdW5jX2V4aXQyOgogCQkJKHVsb25nKSBwYWdlX2dldF9z cGFjZV9pZChwYWdlKSwKIAkJCSh1bG9uZykgcGFnZV9nZXRfcGFnZV9ubyhwYWdlKSwKIAkJCWlu ZGV4LT5uYW1lKTsKLQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwgMCk7CisJCWJ1Zl9wYWdlX3ByaW50 KHBhZ2UsIDAsIDApOwogCX0KIAogCXJldHVybihyZXQpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBzZWwuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MHNlbC5jCXJldmlkOmFzaGlzaC55LmFnYXJ3YWxAb3JhY2xlLmNvbS0yMDEyMDIwMjA4NTU0 My1tNWFnbDUweW94OXc5c3BlCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBzZWwuYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDIwMjEwMzE1Ny1yOGpkb3RmcWJudDk2 dGd2CkBAIC0zOTk4LDcgKzM5OTgsOCBAQCByZWNfbG9vcDoKIHdyb25nX29mZnM6CiAJCWlmIChz cnZfZm9yY2VfcmVjb3ZlcnkgPT0gMCB8fCBtb3Zlc191cCA9PSBGQUxTRSkgewogCQkJdXRfcHJp bnRfdGltZXN0YW1wKHN0ZGVycik7Ci0JCQlidWZfcGFnZV9wcmludChwYWdlX2FsaWduKHJlYyks IDApOworCQkJYnVmX3BhZ2VfcHJpbnQocGFnZV9hbGlnbihyZWMpLCAwLAorCQkJCSAgICAgICBC VUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CiAJCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQkiXG5Jbm5v REI6IHJlYyBhZGRyZXNzICVwLCIKIAkJCQkiIGJ1ZiBibG9jayBmaXggY291bnQgJWx1XG4iLApA QCAtNDAxNyw3ICs0MDE4LDcgQEAgd3Jvbmdfb2ZmczoKIAkJCSAgICAgICJJbm5vREI6IHJlc3Rv cmUgZnJvbSBhIGJhY2t1cCwgb3IiCiAJCQkgICAgICAiIGR1bXAgKyBkcm9wICsgcmVpbXBvcnQg dGhlIHRhYmxlLlxuIiwKIAkJCSAgICAgIHN0ZGVycik7Ci0KKwkJCXV0X2FkKDApOwogCQkJZXJy ID0gREJfQ09SUlVQVElPTjsKIAogCQkJZ290byBsb2NrX3dhaXRfb3JfZXJyb3I7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHN5cy5jJwotLS0gYS9zdG9yYWdl L2lubm9iYXNlL3RyeC90cngwc3lzLmMJcmV2aWQ6YXNoaXNoLnkuYWdhcndhbEBvcmFjbGUuY29t LTIwMTIwMjAyMDg1NTQzLW01YWdsNTB5b3g5dzlzcGUKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS90 cngvdHJ4MHN5cy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwMjAyMTAzMTU3 LXI4amRvdGZxYm50OTZ0Z3YKQEAgLTU4NiwxMiArNTg2LDE2IEBAIHRyeF9zeXNfZG91Ymxld3Jp dGVfaW5pdF9vcl9yZXN0b3JlX3BhZ2UKIAkJCQlpZiAoYnVmX3BhZ2VfaXNfY29ycnVwdGVkKHBh Z2UsIHppcF9zaXplKSkgewogCQkJCQlmcHJpbnRmKHN0ZGVyciwKIAkJCQkJCSJJbm5vREI6IER1 bXAgb2YgdGhlIHBhZ2U6XG4iKTsKLQkJCQkJYnVmX3BhZ2VfcHJpbnQocmVhZF9idWYsIHppcF9z aXplKTsKKwkJCQkJYnVmX3BhZ2VfcHJpbnQoCisJCQkJCQlyZWFkX2J1ZiwgemlwX3NpemUsCisJ CQkJCQlCVUZfUEFHRV9QUklOVF9OT19DUkFTSCk7CiAJCQkJCWZwcmludGYoc3RkZXJyLAogCQkJ CQkJIklubm9EQjogRHVtcCBvZiIKIAkJCQkJCSIgY29ycmVzcG9uZGluZyBwYWdlIgogCQkJCQkJ IiBpbiBkb3VibGV3cml0ZSBidWZmZXI6XG4iKTsKLQkJCQkJYnVmX3BhZ2VfcHJpbnQocGFnZSwg emlwX3NpemUpOworCQkJCQlidWZfcGFnZV9wcmludCgKKwkJCQkJCXBhZ2UsIHppcF9zaXplLAor CQkJCQkJQlVGX1BBR0VfUFJJTlRfTk9fQ1JBU0gpOwogCiAJCQkJCWZwcmludGYoc3RkZXJyLAog CQkJCQkJIklubm9EQjogQWxzbyB0aGUgcGFnZSBpbiB0aGUiCkBAIC02MDUsNyArNjA5LDcgQEAg dHJ4X3N5c19kb3VibGV3cml0ZV9pbml0X29yX3Jlc3RvcmVfcGFnZQogCQkJCQkJIklubm9EQjog b3B0aW9uOlxuIgogCQkJCQkJIklubm9EQjoiCiAJCQkJCQkiIGlubm9kYl9mb3JjZV9yZWNvdmVy eT02XG4iKTsKLQkJCQkJZXhpdCgxKTsKKwkJCQkJdXRfZXJyb3I7CiAJCQkJfQogCiAJCQkJLyog V3JpdGUgdGhlIGdvb2QgcGFnZSBmcm9tIHRoZQoKTm8gYnVuZGxlIChyZWFzb246IHVzZWxlc3Mg Zm9yIHB1c2ggZW1haWxzKS4=