From: marko.makela Date: January 26 2012 12:01pm Subject: bzr push into mysql-5.5 branch (marko.makela:3710 to 3711) Bug#13413535 List-Archive: http://lists.mysql.com/commits/142575 X-Bug: 13413535 Message-Id: <201201261201.q0QC1Uem027420@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM3MTEgTWFya28gTcOka2Vsw6QJMjAxMi0wMS0yNgogICAgICBCdWcgIzEzNDEzNTM1IDYxMTA0 OiBJTk5PREI6IEZBSUxJTkcgQVNTRVJUSU9OOiBQQUdFX0dFVF9OX1JFQ1MoUEFHRSkgPiAxCiAg ICAgIAogICAgICBUaGlzIGZpeCBkb2VzIG5vdCByZW1vdmUgdGhlIHVuZGVybHlpbmcgY2F1c2Ug b2YgdGhlIGFzc2VydGlvbgogICAgICBmYWlsdXJlLiBJdCBqdXN0IHdvcmtzIGFyb3VuZCB0aGUg cHJvYmxlbSwgYWxsb3dpbmcgYSBjb3JydXB0ZWQKICAgICAgc2Vjb25kYXJ5IGluZGV4IHRvIGJl IGZpeGVkIGJ5IERST1AgSU5ERVggYW5kIENSRUFURSBJTkRFWCAob3IgaW4gdGhlCiAgICAgIHdv cnN0IGNhc2UsIGJ5IHJlLWNyZWF0aW5nIHRoZSB0YWJsZSkuCiAgICAgIAogICAgICBpYnVmX2Rl bGV0ZSgpOiBJZiB0aGUgcmVjb3JkIHRvIGJlIHB1cmdlZCBpcyB0aGUgbGFzdCBvbmUgaW4gdGhl IHBhZ2UKICAgICAgb3IgaXQgaXMgbm90IGRlbGV0ZS1tYXJrZWQsIHJlZnVzZSB0byBwdXJnZSBp dC4gSW5zdGVhZCwgd3JpdGUgYW4KICAgICAgZXJyb3IgbWVzc2FnZSB0byB0aGUgZXJyb3IgbG9n IGFuZCBsZXQgYSBkZWJ1ZyBhc3NlcnRpb24gZmFpbC4KICAgICAgCiAgICAgIGlidWZfc2V0X2Rl bF9tYXJrKCk6IElmIHRoZSByZWNvcmQgdG8gYmUgZGVsZXRlLW1hcmtlZCBpcyBub3QgZm91bmQs CiAgICAgIGRpc3BsYXkgc29tZSBtb3JlIGluZm9ybWF0aW9uIGluIHRoZSBlcnJvciBsb2cgYW5k IGxldCBhIGRlYnVnCiAgICAgIGFzc2VydGlvbiBmYWlsLgogICAgICAKICAgICAgcm93X3VuZG9f bW9kX2RlbF91bm1hcmtfc2VjX2FuZF91bmRvX3VwZGF0ZSgpLAogICAgICByb3dfdXBkX3NlY19p bmRleF9lbnRyeSgpOiBMZXQgYSBkZWJ1ZyBhc3NlcnRpb24gZmFpbCB3aGVuIHRoZSByZWNvcmQK ICAgICAgdG8gYmUgZGVsZXRlLW1hcmtlZCBpcyBub3QgZm91bmQuCiAgICAgIAogICAgICBidWZf cGFnZV9wcmludCgpOiBBZGQgdXRfYWQoMCkgc28gdGhhdCBjb3JydXB0aW9uIHdpbGwgYmUgbW9y ZQogICAgICBwcm9taW5lbnQgaW4gc3RyZXNzIHRlc3Rpbmcgd2l0aCBkZWJ1ZyBiaW5hcmllcy4g QWRkIHV0X2FkKDApIGhlcmUgYW5kCiAgICAgIHRoZXJlIHdoZXJlIGNvcnJ1cHRpb24gaXMgbm90 aWNlZC4KICAgICAgCiAgICAgIGJ0cl9jb3JydXB0aW9uX3JlcG9ydCgpOiBEaXNwbGF5IHNvbWUg ZGF0YSBvbiBwYWdlX2lzX2NvbXAoKSBtaXNtYXRjaC4KICAgICAgCiAgICAgIGJ0cl9hc3NlcnRf bm90X2NvcnJ1cHRlZCgpOiBBIHdyYXBwZXIgYXJvdW5kIGJ0cl9jb3JydXB0aW9uX3JlcG9ydCgp LgogICAgICBBc3NlcnQgdGhhdCBwYWdlX2lzX2NvbXAoKSBhZ3JlZXMgd2l0aCB0aGUgdGFibGUg ZmxhZ3MuCiAgICAgIAogICAgICByYjo5MTEgYXBwcm92ZWQgYnkgSW5hYW0gUmFuYQoKICAgIG1v ZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmMKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBi dWYuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmMKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBidHIuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvbXRyMGxvZy5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2xvY2svbG9jazBsb2NrLmMKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3BhZ2UwcGFnZS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2Uvcm93L3JvdzBpbnMuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVtb2QuYwogICAgICBzdG9yYWdlL2lubm9iYXNl L3Jvdy9yb3cwdXBkLmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9zcnYvc3J2MHNydi5jCiAgICAg IHN0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDBwdXJnZS5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv dHJ4L3RyeDByZWMuYwogMzcxMCBHdWlsaGVtIEJpY2hvdAkyMDEyLTAxLTI2IFttZXJnZV0KICAg ICAgbWVyZ2UgZnJvbSA1LjEKCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9yL3Jhbmdl LnJlc3VsdAogICAgICBteXNxbC10ZXN0L3QvcmFuZ2UudGVzdAogICAgICBzcWwvaXRlbS5jYwo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGJ0ci5jJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL2J0ci9idHIwYnRyLmMJcmV2aWQ6Z3VpbGhlbS5iaWNob3RAb3JhY2xl LmNvbS0yMDEyMDEyNjA5MzgyOC0zbmI0MHdocmhrcDJjejExCisrKyBiL3N0b3JhZ2UvaW5ub2Jh c2UvYnRyL2J0cjBidHIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDEyNjEx MjQwMC1sbW5pMmg1ZnJ2djV2NTR6CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCiAKLUNvcHlyaWdodCAoYykgMTk5NCwgMjAxMCwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMg UmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTQsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFm ZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtNDIsNiArNDIsMjcgQEAgQ3JlYXRlZCA2LzIvMTk5NCBI ZWlra2kgVHV1cmkKICNpbmNsdWRlICJpYnVmMGlidWYuaCIKICNpbmNsdWRlICJ0cngwdHJ4Lmgi CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKK1JlcG9ydCB0aGF0IGFuIGluZGV4IHBhZ2UgaXMgY29ycnVwdGVkLiAq LworVU5JVl9JTlRFUk4KK3ZvaWQKK2J0cl9jb3JydXB0aW9uX3JlcG9ydCgKKy8qPT09PT09PT09 PT09PT09PT09Ki8KKwljb25zdCBidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW46IGNvcnJ1cHRl ZCBibG9jayAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwgaW46IGluZGV4IHRy ZWUgKi8KK3sKKwlmcHJpbnRmKHN0ZGVyciwgIklubm9EQjogZmxhZyBtaXNtYXRjaCBpbiBzcGFj ZSAldSBwYWdlICV1IgorCQkiIGluZGV4ICVzIG9mIHRhYmxlICVzXG4iLAorCQkodW5zaWduZWQp IGJ1Zl9ibG9ja19nZXRfc3BhY2UoYmxvY2spLAorCQkodW5zaWduZWQpIGJ1Zl9ibG9ja19nZXRf cGFnZV9ubyhibG9jayksCisJCWluZGV4LT5uYW1lLCBpbmRleC0+dGFibGVfbmFtZSk7CisJYnVm X3BhZ2VfcHJpbnQoYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayksIDApOworCWlmIChibG9jay0+ cGFnZS56aXAuZGF0YSkgeworCQlidWZfcGFnZV9wcmludChibG9jay0+cGFnZS56aXAuZGF0YSwK KwkJCSAgICAgICBidWZfYmxvY2tfZ2V0X3ppcF9zaXplKGJsb2NrKSk7CisJfQorfQorCiAjaWZk ZWYgVU5JVl9CTE9CX0RFQlVHCiAjIGluY2x1ZGUgInNydjBzcnYuaCIKICMgaW5jbHVkZSAidXQw cmJ0LmgiCkBAIC02OTIsOCArNzEzLDcgQEAgYnRyX3Jvb3RfYmxvY2tfZ2V0KAogCiAJYmxvY2sg PSBidHJfYmxvY2tfZ2V0KHNwYWNlLCB6aXBfc2l6ZSwgcm9vdF9wYWdlX25vLCBSV19YX0xBVENI LAogCQkJICAgICAgaW5kZXgsIG10cik7Ci0JdXRfYSgoaWJvb2wpISFwYWdlX2lzX2NvbXAoYnVm X2Jsb2NrX2dldF9mcmFtZShibG9jaykpCi0JICAgICA9PSBkaWN0X3RhYmxlX2lzX2NvbXAoaW5k ZXgtPnRhYmxlKSk7CisJYnRyX2Fzc2VydF9ub3RfY29ycnVwdGVkKGJsb2NrLCBpbmRleCk7CiAj aWZkZWYgVU5JVl9CVFJfREVCVUcKIAlpZiAoIWRpY3RfaW5kZXhfaXNfaWJ1ZihpbmRleCkpIHsK IAkJY29uc3QgcGFnZV90Kglyb290ID0gYnVmX2Jsb2NrX2dldF9mcmFtZShibG9jayk7CkBAIC0x NTMyLDcgKzE1NTIsNyBAQCBidHJfcGFnZV9yZW9yZ2FuaXplX2xvdygKIAlpYm9vbAkJc3VjY2Vz cwkJPSBGQUxTRTsKIAogCXV0X2FkKG10cl9tZW1vX2NvbnRhaW5zKG10ciwgYmxvY2ssIE1UUl9N RU1PX1BBR0VfWF9GSVgpKTsKLQl1dF9hZCghIXBhZ2VfaXNfY29tcChwYWdlKSA9PSBkaWN0X3Rh YmxlX2lzX2NvbXAoaW5kZXgtPnRhYmxlKSk7CisJYnRyX2Fzc2VydF9ub3RfY29ycnVwdGVkKGJs b2NrLCBpbmRleCk7CiAjaWZkZWYgVU5JVl9aSVBfREVCVUcKIAl1dF9hKCFwYWdlX3ppcCB8fCBw YWdlX3ppcF92YWxpZGF0ZShwYWdlX3ppcCwgcGFnZSkpOwogI2VuZGlmIC8qIFVOSVZfWklQX0RF QlVHICovCkBAIC0zMTY0LDcgKzMxODQsOCBAQCBidHJfY29tcHJlc3MoCiAJYmxvY2sgPSBidHJf Y3VyX2dldF9ibG9jayhjdXJzb3IpOwogCXBhZ2UgPSBidHJfY3VyX2dldF9wYWdlKGN1cnNvcik7 CiAJaW5kZXggPSBidHJfY3VyX2dldF9pbmRleChjdXJzb3IpOwotCXV0X2EoKGlib29sKSAhIXBh Z2VfaXNfY29tcChwYWdlKSA9PSBkaWN0X3RhYmxlX2lzX2NvbXAoaW5kZXgtPnRhYmxlKSk7CisK KwlidHJfYXNzZXJ0X25vdF9jb3JydXB0ZWQoYmxvY2ssIGluZGV4KTsKIAogCXV0X2FkKG10cl9t ZW1vX2NvbnRhaW5zKG10ciwgZGljdF9pbmRleF9nZXRfbG9jayhpbmRleCksCiAJCQkJTVRSX01F TU9fWF9MT0NLKSk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRy MGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMJcmV2aWQ6Z3VpbGhl bS5iaWNob3RAb3JhY2xlLmNvbS0yMDEyMDEyNjA5MzgyOC0zbmI0MHdocmhrcDJjejExCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEyMDEyNjExMjQwMC1sbW5pMmg1ZnJ2djV2NTR6CkBAIC0xLDYgKzEsNiBAQAogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NCwgMjAxMSwgT3JhY2xlIGFu ZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykg MTk5NCwgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNl cnZlZC4KIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4KIAogUG9ydGlvbnMgb2YgdGhp cyBmaWxlIGNvbnRhaW4gbW9kaWZpY2F0aW9ucyBjb250cmlidXRlZCBhbmQgY29weXJpZ2h0ZWQg YnkKQEAgLTc2MiwxMSArNzYyLDExIEBAIHJldHJ5X3BhZ2VfZ2V0OgogCiAJaWYgKGxldmVsICE9 IDApIHsKIAkJLyogeC1sYXRjaCB0aGUgcGFnZSAqLwotCQlwYWdlID0gYnRyX3BhZ2VfZ2V0KAor CQlidWZfYmxvY2tfdCoJY2hpbGRfYmxvY2sgPSBidHJfYmxvY2tfZ2V0KAogCQkJc3BhY2UsIHpp cF9zaXplLCBwYWdlX25vLCBSV19YX0xBVENILCBpbmRleCwgbXRyKTsKIAotCQl1dF9hKChpYm9v bCkhIXBhZ2VfaXNfY29tcChwYWdlKQotCQkgICAgID09IGRpY3RfdGFibGVfaXNfY29tcChpbmRl eC0+dGFibGUpKTsKKwkJcGFnZSA9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoY2hpbGRfYmxvY2spOwor CQlidHJfYXNzZXJ0X25vdF9jb3JydXB0ZWQoY2hpbGRfYmxvY2ssIGluZGV4KTsKIAl9IGVsc2Ug ewogCQljdXJzb3ItPmxvd19tYXRjaCA9IGxvd19tYXRjaDsKIAkJY3Vyc29yLT5sb3dfYnl0ZXMg PSBsb3dfYnl0ZXM7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVm MGJ1Zi5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVmLmMJcmV2aWQ6Z3VpbGhl bS5iaWNob3RAb3JhY2xlLmNvbS0yMDEyMDEyNjA5MzgyOC0zbmI0MHdocmhrcDJjejExCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEyMDEyNjExMjQwMC1sbW5pMmg1ZnJ2djV2NTR6CkBAIC0xLDYgKzEsNiBAQAogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NSwgMjAxMSwgT3JhY2xlIGFu ZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykg MTk5NSwgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNl cnZlZC4KIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4KIAogUG9ydGlvbnMgb2YgdGhp cyBmaWxlIGNvbnRhaW4gbW9kaWZpY2F0aW9ucyBjb250cmlidXRlZCBhbmQgY29weXJpZ2h0ZWQg YnkKQEAgLTYxNSw2ICs2MTUsOCBAQCBidWZfcGFnZV9wcmludCgKIAl1bGludAkJb2xkX2NoZWNr c3VtOwogCXVsaW50CQlzaXplCT0gemlwX3NpemU7CiAKKwl1dF9hZCgwKTsKKwogCWlmICghc2l6 ZSkgewogCQlzaXplID0gVU5JVl9QQUdFX1NJWkU7CiAJfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9p YnVmL2lidWYwaWJ1Zi5jCXJldmlkOmd1aWxoZW0uYmljaG90QG9yYWNsZS5jb20tMjAxMjAxMjYw OTM4MjgtM25iNDB3aHJoa3AyY3oxMQorKysgYi9zdG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBp YnVmLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjAxMjYxMTI0MDAtbG1uaTJo NWZydnY1djU0egpAQCAtMzg4MCw2ICszODgwLDcgQEAgaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFn ZV9sb3coCiAKIAlmcHV0cygiSW5ub0RCOiBTdWJtaXQgYSBkZXRhaWxlZCBidWcgcmVwb3J0Igog CSAgICAgICIgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tXG4iLCBzdGRlcnIpOworCXV0X2FkKDAp OwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCkBAIC00MDczLDYgKzQwNzQsMTEgQEAgaWJ1Zl9zZXRf ZGVsX21hcmsoCiAJCQkJCQkJICBUUlVFLCBtdHIpOwogCQl9CiAJfSBlbHNlIHsKKwkJY29uc3Qg cGFnZV90KgkJcGFnZQorCQkJPSBwYWdlX2N1cl9nZXRfcGFnZSgmcGFnZV9jdXIpOworCQljb25z dCBidWZfYmxvY2tfdCoJYmxvY2sKKwkJCT0gcGFnZV9jdXJfZ2V0X2Jsb2NrKCZwYWdlX2N1cik7 CisKIAkJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7CiAJCWZwdXRzKCIgIElubm9EQjogdW5h YmxlIHRvIGZpbmQgYSByZWNvcmQgdG8gZGVsZXRlLW1hcmtcbiIsCiAJCSAgICAgIHN0ZGVycik7 CkBAIC00MDgxLDEwICs0MDg3LDE0IEBAIGlidWZfc2V0X2RlbF9tYXJrKAogCQlmcHV0cygiXG4i CiAJCSAgICAgICJJbm5vREI6IHJlY29yZCAiLCBzdGRlcnIpOwogCQlyZWNfcHJpbnQoc3RkZXJy LCBwYWdlX2N1cl9nZXRfcmVjKCZwYWdlX2N1ciksIGluZGV4KTsKLQkJcHV0YygnXG4nLCBzdGRl cnIpOwotCQlmcHV0cygiXG4iCi0JCSAgICAgICJJbm5vREI6IFN1Ym1pdCBhIGRldGFpbGVkIGJ1 ZyByZXBvcnQiCi0JCSAgICAgICIgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tXG4iLCBzdGRlcnIp OworCQlmcHJpbnRmKHN0ZGVyciwgIlxuc3BhY2UgJXUgb2Zmc2V0ICV1IgorCQkJIiAoJXUgcmVj b3JkcywgaW5kZXggaWQgJWxsdSlcbiIKKwkJCSJJbm5vREI6IFN1Ym1pdCBhIGRldGFpbGVkIGJ1 ZyByZXBvcnQiCisJCQkiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwKKwkJCSh1bnNpZ25l ZCkgYnVmX2Jsb2NrX2dldF9zcGFjZShibG9jayksCisJCQkodW5zaWduZWQpIGJ1Zl9ibG9ja19n ZXRfcGFnZV9ubyhibG9jayksCisJCQkodW5zaWduZWQpIHBhZ2VfZ2V0X25fcmVjcyhwYWdlKSwK KwkJCWJ0cl9wYWdlX2dldF9pbmRleF9pZChwYWdlKSk7CiAJCXV0X2FkKDApOwogCX0KIH0KQEAg LTQxMjgsMTIgKzQxMzgsMzEgQEAgaWJ1Zl9kZWxldGUoCiAJCW9mZnNldHMgPSByZWNfZ2V0X29m ZnNldHMoCiAJCQlyZWMsIGluZGV4LCBvZmZzZXRzLCBVTElOVF9VTkRFRklORUQsICZoZWFwKTsK IAotCQkvKiBSZWZ1c2UgdG8gZGVsZXRlIHRoZSBsYXN0IHJlY29yZC4gKi8KLQkJdXRfYShwYWdl X2dldF9uX3JlY3MocGFnZSkgPiAxKTsKKwkJaWYgKHBhZ2VfZ2V0X25fcmVjcyhwYWdlKSA8PSAx CisJCSAgICB8fCAhKFJFQ19JTkZPX0RFTEVURURfRkxBRworCQkJICYgcmVjX2dldF9pbmZvX2Jp dHMocmVjLCBwYWdlX2lzX2NvbXAocGFnZSkpKSkgeworCQkJLyogUmVmdXNlIHRvIHB1cmdlIHRo ZSBsYXN0IHJlY29yZCBvciBhCisJCQlyZWNvcmQgdGhhdCBoYXMgbm90IGJlZW4gbWFya2VkIGZv ciBkZWxldGlvbi4gKi8KKwkJCXV0X3ByaW50X3RpbWVzdGFtcChzdGRlcnIpOworCQkJZnB1dHMo IiAgSW5ub0RCOiB1bmFibGUgdG8gcHVyZ2UgYSByZWNvcmRcbiIsCisJCQkgICAgICBzdGRlcnIp OworCQkJZnB1dHMoIklubm9EQjogdHVwbGUgIiwgc3RkZXJyKTsKKwkJCWR0dXBsZV9wcmludChz dGRlcnIsIGVudHJ5KTsKKwkJCWZwdXRzKCJcbiIKKwkJCSAgICAgICJJbm5vREI6IHJlY29yZCAi LCBzdGRlcnIpOworCQkJcmVjX3ByaW50X25ldyhzdGRlcnIsIHJlYywgb2Zmc2V0cyk7CisJCQlm cHJpbnRmKHN0ZGVyciwgIlxuc3BhY2UgJXUgb2Zmc2V0ICV1IgorCQkJCSIgKCV1IHJlY29yZHMs IGluZGV4IGlkICVsbHUpXG4iCisJCQkJIklubm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJl cG9ydCIKKwkJCQkiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwKKwkJCQkodW5zaWduZWQp IGJ1Zl9ibG9ja19nZXRfc3BhY2UoYmxvY2spLAorCQkJCSh1bnNpZ25lZCkgYnVmX2Jsb2NrX2dl dF9wYWdlX25vKGJsb2NrKSwKKwkJCQkodW5zaWduZWQpIHBhZ2VfZ2V0X25fcmVjcyhwYWdlKSwK KwkJCQlidHJfcGFnZV9nZXRfaW5kZXhfaWQocGFnZSkpOwogCi0JCS8qIFRoZSByZWNvcmQgc2hv dWxkIGhhdmUgYmVlbiBtYXJrZWQgZm9yIGRlbGV0aW9uLiAqLwotCQl1dF9hZChSRUNfSU5GT19E RUxFVEVEX0ZMQUcKLQkJICAgICAgJiByZWNfZ2V0X2luZm9fYml0cyhyZWMsIHBhZ2VfaXNfY29t cChwYWdlKSkpOworCQkJdXRfYWQoMCk7CisJCQlyZXR1cm47CisJCX0KIAogCQlsb2NrX3VwZGF0 ZV9kZWxldGUoYmxvY2ssIHJlYyk7CiAKQEAgLTQyMTksNiArNDI0OCw3IEBAIGlidWZfcmVzdG9y ZV9wb3MoCiAKIAkJZnByaW50ZihzdGRlcnIsICJJbm5vREI6IGlidWYgdHJlZSBva1xuIik7CiAJ CWZmbHVzaChzdGRlcnIpOworCQl1dF9hZCgwKTsKIAl9CiAKIAlyZXR1cm4oRkFMU0UpOwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6Z3VpbGhlbS5iaWNob3RA b3JhY2xlLmNvbS0yMDEyMDEyNjA5MzgyOC0zbmI0MHdocmhrcDJjejExCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20t MjAxMjAxMjYxMTI0MDAtbG1uaTJoNWZydnY1djU0egpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTQsIDIwMTAsIElubm9iYXNlIE95LiBB bGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk0LCAyMDEyLCBPcmFjbGUgYW5k L29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAgLTkyLDYgKzkyLDI2IEBAIGluc2VydC9k ZWxldGUgYnVmZmVyIHdoZW4gdGhlIHJlY29yZCBpcwogYnVmZmVyIHdoZW4gdGhlIHJlY29yZCBp cyBub3QgaW4gdGhlIGJ1ZmZlciBwb29sLiAqLwogI2RlZmluZSBCVFJfREVMRVRFCQk4MTkyCiAK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8vKioKK1JlcG9ydCB0aGF0IGFuIGluZGV4IHBhZ2UgaXMgY29ycnVwdGVkLiAqLwor VU5JVl9JTlRFUk4KK3ZvaWQKK2J0cl9jb3JydXB0aW9uX3JlcG9ydCgKKy8qPT09PT09PT09PT09 PT09PT09Ki8KKwljb25zdCBidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW46IGNvcnJ1cHRlZCBi bG9jayAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwgaW46IGluZGV4IHRyZWUg Ki8KKwlVTklWX0NPTEQgX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworCisvKiogQXNzZXJ0IHRo YXQgYSBCLXRyZWUgcGFnZSBpcyBub3QgY29ycnVwdGVkLgorQHBhcmFtIGJsb2NrIGJ1ZmZlciBi bG9jayBjb250YWluaW5nIGEgQi10cmVlIHBhZ2UKK0BwYXJhbSBpbmRleCB0aGUgQi10cmVlIGlu ZGV4ICovCisjZGVmaW5lIGJ0cl9hc3NlcnRfbm90X2NvcnJ1cHRlZChibG9jaywgaW5kZXgpCQkJ XAorCWlmICgoaWJvb2wpICEhcGFnZV9pc19jb21wKGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2sp KQlcCisJICAgICE9IGRpY3RfdGFibGVfaXNfY29tcCgoaW5kZXgpLT50YWJsZSkpIHsJCVwKKwkJ YnRyX2NvcnJ1cHRpb25fcmVwb3J0KGJsb2NrLCBpbmRleCk7CQlcCisJCXV0X2Vycm9yOwkJCQkJ XAorCX0KKwogI2lmZGVmIFVOSVZfQkxPQl9ERUJVRwogIyBpbmNsdWRlICJ1dDByYnQuaCIKIC8q KiBBbiBpbmRleC0+YmxvYnMgZW50cnkgZm9yIGtlZXBpbmcgdHJhY2sgb2Ygb2ZmLXBhZ2UgY29s dW1uIHJlZmVyZW5jZXMgKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvbXRyMGxvZy5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL210cjBsb2cu aWMJcmV2aWQ6Z3VpbGhlbS5iaWNob3RAb3JhY2xlLmNvbS0yMDEyMDEyNjA5MzgyOC0zbmI0MHdo cmhrcDJjejExCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9tdHIwbG9nLmljCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwMTI2MTEyNDAwLWxtbmkyaDVmcnZ2NXY1NHoK QEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotQ29weXJpZ2h0IChjKSAx OTk1LCAyMDA5LCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAo YykgMTk5NSwgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBS ZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkBA IC0yMTYsNiArMjE2LDcgQEAgbWxvZ193cml0ZV9pbml0aWFsX2xvZ19yZWNvcmRfZmFzdCgKIAkJ CQkiUGxlYXNlIHBvc3QgYSBidWcgcmVwb3J0IHRvICIKIAkJCQkiYnVncy5teXNxbC5jb20uXG4i LAogCQkJCXR5cGUsIG9mZnNldCwgc3BhY2UpOworCQkJdXRfYWQoMCk7CiAJCX0KIAl9CiAKCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2xvY2svbG9jazBsb2NrLmMnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvbG9jay9sb2NrMGxvY2suYwlyZXZpZDpndWlsaGVtLmJpY2hvdEBv cmFjbGUuY29tLTIwMTIwMTI2MDkzODI4LTNuYjQwd2hyaGtwMmN6MTEKKysrIGIvc3RvcmFnZS9p bm5vYmFzZS9sb2NrL2xvY2swbG9jay5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwMTI2MTEyNDAwLWxtbmkyaDVmcnZ2NXY1NHoKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIAotQ29weXJpZ2h0IChjKSAxOTk2LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxs IFJpZ2h0cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykgMTk5NiwgMjAxMiwgT3JhY2xlIGFuZC9v ciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQg dW5kZXIKIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkBAIC0xNjkwLDcgKzE2OTAsNyBAQCBsb2NrX3Jl Y19jcmVhdGUoCiAJcGFnZV9ubwk9IGJ1Zl9ibG9ja19nZXRfcGFnZV9ubyhibG9jayk7CiAJcGFn ZSA9IGJsb2NrLT5mcmFtZTsKIAotCXV0X2FkKCEhcGFnZV9pc19jb21wKHBhZ2UpID09IGRpY3Rf dGFibGVfaXNfY29tcChpbmRleC0+dGFibGUpKTsKKwlidHJfYXNzZXJ0X25vdF9jb3JydXB0ZWQo YmxvY2ssIGluZGV4KTsKIAogCS8qIElmIHJlYyBpcyB0aGUgc3VwcmVtdW0gcmVjb3JkLCB0aGVu IHdlIHJlc2V0IHRoZSBnYXAgYW5kCiAJTE9DS19SRUNfTk9UX0dBUCBiaXRzLCBhcyBhbGwgbG9j a3Mgb24gdGhlIHN1cHJlbXVtIGFyZQpAQCAtMTc5NSw2ICsxNzk1LDcgQEAgbG9ja19yZWNfZW5x dWV1ZV93YWl0aW5nKAogCQkgICAgICAiSW5ub0RCOiBTdWJtaXQgYSBkZXRhaWxlZCBidWcgcmVw b3J0IgogCQkgICAgICAiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwKIAkJICAgICAgc3Rk ZXJyKTsKKwkJdXRfYWQoMCk7CiAJfQogCiAJLyogRW5xdWV1ZSB0aGUgbG9jayByZXF1ZXN0IHRo YXQgd2lsbCB3YWl0IHRvIGJlIGdyYW50ZWQgKi8KQEAgLTM3OTUsNiArMzc5Niw3IEBAIGxvY2tf dGFibGVfZW5xdWV1ZV93YWl0aW5nKAogCQkgICAgICAiSW5ub0RCOiBTdWJtaXQgYSBkZXRhaWxl ZCBidWcgcmVwb3J0IgogCQkgICAgICAiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwKIAkJ ICAgICAgc3RkZXJyKTsKKwkJdXRfYWQoMCk7CiAJfQogCiAJLyogRW5xdWV1ZSB0aGUgbG9jayBy ZXF1ZXN0IHRoYXQgd2lsbCB3YWl0IHRvIGJlIGdyYW50ZWQgKi8KCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL3BhZ2UvcGFnZTBwYWdlLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jh c2UvcGFnZS9wYWdlMHBhZ2UuYwlyZXZpZDpndWlsaGVtLmJpY2hvdEBvcmFjbGUuY29tLTIwMTIw MTI2MDkzODI4LTNuYjQwd2hyaGtwMmN6MTEKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9wYWdlL3Bh Z2UwcGFnZS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwMTI2MTEyNDAwLWxt bmkyaDVmcnZ2NXY1NHoKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAot Q29weXJpZ2h0IChjKSAxOTk0LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZl ZC4KK0NvcHlyaWdodCAoYykgMTk5NCwgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRl cy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlCkBAIC01NDksOCArNTQ5LDcgQEAgcGFnZV9jb3B5X3JlY19saXN0X2VuZF9u b19sb2NrcygKIAkJcGFnZV9jdXJfbW92ZV90b19uZXh0KCZjdXIxKTsKIAl9CiAKLQl1dF9hKChp Ym9vbCkhIXBhZ2VfaXNfY29tcChuZXdfcGFnZSkKLQkgICAgID09IGRpY3RfdGFibGVfaXNfY29t cChpbmRleC0+dGFibGUpKTsKKwlidHJfYXNzZXJ0X25vdF9jb3JydXB0ZWQobmV3X2Jsb2NrLCBp bmRleCk7CiAJdXRfYShwYWdlX2lzX2NvbXAobmV3X3BhZ2UpID09IHBhZ2VfcmVjX2lzX2NvbXAo cmVjKSk7CiAJdXRfYShtYWNoX3JlYWRfZnJvbV8yKG5ld19wYWdlICsgVU5JVl9QQUdFX1NJWkUg LSAxMCkgPT0gKHVsaW50KQogCSAgICAgKHBhZ2VfaXNfY29tcChuZXdfcGFnZSkgPyBQQUdFX05F V19JTkZJTVVNIDogUEFHRV9PTERfSU5GSU1VTSkpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvaW5ub2Jhc2Uvcm93L3JvdzBpbnMuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93 MGlucy5jCXJldmlkOmd1aWxoZW0uYmljaG90QG9yYWNsZS5jb20tMjAxMjAxMjYwOTM4MjgtM25i NDB3aHJoa3AyY3oxMQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwaW5zLmMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjAxMjYxMTI0MDAtbG1uaTJoNWZydnY1djU0egpA QCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5 OTYsIDIwMTAsIElubm9iYXNlIE95LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChj KSAxOTk2LCAyMDEyLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJl c2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAg LTk1MCw3ICs5NTAsNyBAQCByb3dfaW5zX2ZvcmVpZ25fY2hlY2tfb25fY29uc3RyYWludCgKIAkJ CWZwdXRzKCJcbiIKIAkJCSAgICAgICJJbm5vREI6IFN1Ym1pdCBhIGRldGFpbGVkIGJ1ZyByZXBv cnQgdG8iCiAJCQkgICAgICAiIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwgc3RkZXJyKTsKLQor CQkJdXRfYWQoMCk7CiAJCQllcnIgPSBEQl9TVUNDRVNTOwogCiAJCQlnb3RvIG5vbnN0YW5kYXJk X2V4aXRfZnVuYzsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw c2VsLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBzZWwuYwlyZXZpZDpndWlsaGVt LmJpY2hvdEBvcmFjbGUuY29tLTIwMTIwMTI2MDkzODI4LTNuYjQwd2hyaGtwMmN6MTEKKysrIGIv c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHNlbC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTIwMTI2MTEyNDAwLWxtbmkyaDVmcnZ2NXY1NHoKQEAgLTEsNiArMSw2IEBACiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKIAotQ29weXJpZ2h0IChjKSAxOTk3LCAyMDExLCBPcmFjbGUgYW5k L29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAx OTk3LCAyMDEyLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgogQ29weXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLgogCiBQb3J0aW9ucyBvZiB0aGlz IGZpbGUgY29udGFpbiBtb2RpZmljYXRpb25zIGNvbnRyaWJ1dGVkIGFuZCBjb3B5cmlnaHRlZCBi eQpAQCAtMjk2Myw2ICsyOTYzLDcgQEAgcm93X3NlbF9nZXRfY2x1c3RfcmVjX2Zvcl9teXNxbCgK IAkJCWZwdXRzKCJcbiIKIAkJCSAgICAgICJJbm5vREI6IFN1Ym1pdCBhIGRldGFpbGVkIGJ1ZyBy ZXBvcnQiCiAJCQkgICAgICAiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwgc3RkZXJyKTsK KwkJCXV0X2FkKDApOwogCQl9CiAKIAkJY2x1c3RfcmVjID0gTlVMTDsKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdW1vZC5jJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL3Jvdy9yb3cwdW1vZC5jCXJldmlkOmd1aWxoZW0uYmljaG90QG9yYWNsZS5jb20tMjAxMjAx MjYwOTM4MjgtM25iNDB3aHJoa3AyY3oxMQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw dW1vZC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwMTI2MTEyNDAwLWxtbmky aDVmcnZ2NXY1NHoKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotQ29w eXJpZ2h0IChjKSAxOTk3LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K K0NvcHlyaWdodCAoYykgMTk5NywgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4g QWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlCkBAIC01MDksNiArNTA5LDcgQEAgcm93X3VuZG9fbW9kX2RlbF91bm1hcmtfc2Vj X2FuZF91bmRvX3VwZAogCQlmcHV0cygiXG4iCiAJCSAgICAgICJJbm5vREI6IFN1Ym1pdCBhIGRl dGFpbGVkIGJ1ZyByZXBvcnQiCiAJCSAgICAgICIgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tXG4i LCBzdGRlcnIpOworCQl1dF9hZCgwKTsKIAkJYnJlYWs7CiAJY2FzZSBST1dfRk9VTkQ6CiAJCWJ0 cl9jdXIgPSBidHJfcGN1cl9nZXRfYnRyX2N1cigmcGN1cik7Cgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwdXBkLmMJcmV2aWQ6Z3VpbGhlbS5iaWNob3RAb3JhY2xlLmNvbS0yMDEyMDEyNjA5Mzgy OC0zbmI0MHdocmhrcDJjejExCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDEyNjExMjQwMC1sbW5pMmg1ZnJ2djV2 NTR6CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAo YykgMTk5NiwgMjAxMCwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmln aHQgKGMpIDE5OTYsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdo dHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZQpAQCAtMTYxNyw2ICsxNjE3LDcgQEAgcm93X3VwZF9zZWNfaW5kZXhfZW50cnkoCiAJCWZwdXRz KCJcbiIKIAkJICAgICAgIklubm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJlcG9ydCIKIAkJ ICAgICAgIiB0byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsIHN0ZGVycik7CisJCXV0X2FkKDAp OwogCQlicmVhazsKIAljYXNlIFJPV19GT1VORDoKIAkJLyogRGVsZXRlIG1hcmsgdGhlIG9sZCBp bmRleCByZWNvcmQ7IGl0IGNhbiBhbHJlYWR5IGJlCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9zcnYvc3J2MHNydi5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYw c3J2LmMJcmV2aWQ6Z3VpbGhlbS5iaWNob3RAb3JhY2xlLmNvbS0yMDEyMDEyNjA5MzgyOC0zbmI0 MHdocmhrcDJjejExCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvc3J2L3NydjBzcnYuYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDEyNjExMjQwMC1sbW5pMmg1ZnJ2djV2NTR6CkBA IC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5 NSwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZl ZC4KK0NvcHlyaWdodCAoYykgMTk5NSwgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRl cy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIENvcHlyaWdodCAoYykgMjAwOCwgMjAwOSBHb29nbGUg SW5jLgogQ29weXJpZ2h0IChjKSAyMDA5LCBQZXJjb25hIEluYy4KIApAQCAtMjQxNSw2ICsyNDE1 LDcgQEAgbG9vcDoKIAkJCSJJbm5vREI6IFBsZWFzZSBzdWJtaXQgYSBidWcgcmVwb3J0IgogCQkJ IiB0byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsCiAJCQlvbGRfbHNuLCBuZXdfbHNuKTsKKwkJ dXRfYWQoMCk7CiAJfQogCiAJb2xkX2xzbiA9IG5ld19sc247Cgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHB1cmdlLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uv dHJ4L3RyeDBwdXJnZS5jCXJldmlkOmd1aWxoZW0uYmljaG90QG9yYWNsZS5jb20tMjAxMjAxMjYw OTM4MjgtM25iNDB3aHJoa3AyY3oxMQorKysgYi9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngwcHVy Z2UuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDEyNjExMjQwMC1sbW5pMmg1 ZnJ2djV2NTR6CkBAIC0xLDYgKzEsNiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHly aWdodCAoYykgMTk5NiwgMjAxMSwgSW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitD b3B5cmlnaHQgKGMpIDE5OTYsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZQpAQCAtNzMwLDYgKzczMCw3IEBAIHRyeF9wdXJnZV9yc2VnX2dldF9uZXh0X2hpc3Rv cnlfbG9nKAogCQkJCSJJbm5vREI6IHJlcG9ydCwgYW5kIHN1Ym1pdCBpdCIKIAkJCQkiIHRvIGh0 dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwKIAkJCQkodWxvbmcpIHRyeF9zeXMtPnJzZWdfaGlzdG9y eV9sZW4pOworCQkJdXRfYWQoMCk7CiAJCX0KIAogCQltdXRleF9leGl0KCZrZXJuZWxfbXV0ZXgp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDByZWMuYycKLS0t IGEvc3RvcmFnZS9pbm5vYmFzZS90cngvdHJ4MHJlYy5jCXJldmlkOmd1aWxoZW0uYmljaG90QG9y YWNsZS5jb20tMjAxMjAxMjYwOTM4MjgtM25iNDB3aHJoa3AyY3oxMQorKysgYi9zdG9yYWdlL2lu bm9iYXNlL3RyeC90cngwcmVjLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjAx MjYxMTI0MDAtbG1uaTJoNWZydnY1djU0egpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFm ZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTIs IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMTAwMyw2ICsxMDAz LDcgQEAgdHJ4X3VuZG9fdXBkYXRlX3JlY19nZXRfdXBkYXRlKAogCQkJZnByaW50ZihzdGRlcnIs ICJcbiIKIAkJCQkiSW5ub0RCOiBuX2ZpZWxkcyA9ICVsdSwgaSA9ICVsdSwgcHRyICVwXG4iLAog CQkJCSh1bG9uZykgbl9maWVsZHMsICh1bG9uZykgaSwgcHRyKTsKKwkJCXV0X2FkKDApOwogCQkJ KnVwZCA9IE5VTEw7CiAJCQlyZXR1cm4oTlVMTCk7CiAJCX0KQEAgLTE1MTMsNiArMTUxNCw3IEBA IHRyeF91bmRvX3ByZXZfdmVyc2lvbl9idWlsZCgKIAkJICAgICAgIklubm9EQjogcmVjb3JkIHZl cnNpb24gIiwgc3RkZXJyKTsKIAkJcmVjX3ByaW50X25ldyhzdGRlcnIsIHJlYywgb2Zmc2V0cyk7 CiAJCXB1dGMoJ1xuJywgc3RkZXJyKTsKKwkJdXRfYWQoMCk7CiAJCXJldHVybihEQl9FUlJPUik7 CiAJfQogCkBAIC0xNjE4LDYgKzE2MjAsNyBAQCB0cnhfdW5kb19wcmV2X3ZlcnNpb25fYnVpbGQo CiAJCQkodWxsaW50KSBvbGRfcm9sbF9wdHIsICh1bGxpbnQpIHJvbGxfcHRyKTsKIAogCQl0cnhf cHVyZ2Vfc3lzX3ByaW50KCk7CisJCXV0X2FkKDApOwogCQlyZXR1cm4oREJfRVJST1IpOwogCX0K IAoKTm8gYnVuZGxlIChyZWFzb246IHVzZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=