From: marko.makela Date: June 29 2011 7:35am Subject: bzr push into mysql-5.5 branch (marko.makela:3471 to 3472) List-Archive: http://lists.mysql.com/commits/139988 Message-Id: <201106290735.p5T7ZO8x001394@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM0NzIgTWFya28gTcOka2Vsw6QJMjAxMS0wNi0yOSBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuMSB0byBteXNxbC01LjUuCgogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9yb3cwcm93LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzByb3cu aWMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzB1cGQuaWMKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvdHJ4MHN5cy5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwcm93LmMKIDM0NzEg TWFya28gTcOka2Vsw6QJMjAxMS0wNi0yOAogICAgICBCdWcjMTI2OTk1MDUgTWVtb3J5IGxlYWsg aW4gcm93X2NyZWF0ZV9pbmRleF9mb3JfbXlzcWwoKQogICAgICAKICAgICAgREJfQ09MX0FQUEVB UlNfVFdJQ0VfSU5fSU5ERVg6IFJlbW92ZS4gVGhpcyBjb25kaXRpb24gaXMgYWxyZWFkeQogICAg ICBjaGVja2VkIGFuZCByZXBvcnRlZCBieSBNeVNRTCBiZWZvcmUgcGFzc2luZyB0aGUgaW5kZXgg ZGVmaW5pdGlvbiB0bwogICAgICB0aGUgc3RvcmFnZSBlbmdpbmUuCiAgICAgIAogICAgICByb3df Y3JlYXRlX2luZGV4X2Zvcl9teXNxbCgpOiBSZW1vdmUgdGhlIHJlZHVuZGFudCBjaGVjayBmb3IK ICAgICAgREJfQ09MX0FQUEVBUlNfVFdJQ0VfSU5fSU5ERVguIFdoZW4gZW5mb3JjaW5nIHRoZSBj b2x1bW4gcHJlZml4IGluZGV4CiAgICAgIGxpbWl0LCBpbnZva2UgZGljdF9tZW1faW5kZXhfZnJl ZShpbmRleCkgdG8gcGx1ZyB0aGUgbWVtb3J5IGxlYWsuIEluCiAgICAgIHRoZSBsb29wLCB1c2Ug aW5kZXgtPm5fZGVmIGluc3RlYWQgb2YgZGljdF9pbmRleF9nZXRfbl9maWVsZHMoaW5kZXgpLAog ICAgICBiZWNhdXNlIHRoZSBsYXR0ZXIgd291bGQgYmUgMCBmb3IgaW5kZXhlcyB0aGF0IGhhdmUg bm90IGJlZW4gY29waWVkIHRvCiAgICAgIHRoZSBkYXRhIGRpY3Rpb25hcnkgY2FjaGUuCiAgICAg IAogICAgICBpbm5vZGItdXNlLXN5cy1tYWxsb2MudGVzdDoKICAgICAgCiAgICAgIEFkZCB0ZXN0 IGNhc2VzIGZvciBhdHRlbXB0aW5nIHRvIHRyaWdnZXIgdGhlIGVycm9yIGNoZWNrcyBpbgogICAg ICByb3dfY3JlYXRlX2luZGV4X2Zvcl9teXNxbCgpLiBCZWZvcmUgTXlTUUwgNS41IGFuZCBXTCM1 NzQzLCB0aGUgbGVhawogICAgICBpcyBvbmx5IHJlcHJvZHVjaWJsZSBpZiBoYV9pbm5vYmFzZTo6 bWF4X3N1cHBvcnRlZF9rZXlfcGFydF9sZW5ndGgoKQogICAgICByZXR1cm5lZCBhIGhpZ2hlciBs aW1pdCB0aGFuIHRoZSBvbmUgdXNlZCBpbgogICAgICByb3dfY3JlYXRlX2luZGV4X2Zvcl9teXNx bCgpLgogICAgICAKICAgICAgSW4gTXlTUUwgNS41IGFuZCBsYXRlciwgdGhlIGxlYWsgaXMgcmVw cm9kdWNpYmxlIHdpdGgKICAgICAgaW5ub2RiX2xhcmdlX3ByZWZpeD10cnVlLgogICAgICAKICAg ICAgcmI6Njg4IGFwcHJvdmVkIGJ5IEppbW15IFlhbmcKCiAgICBtb2RpZmllZDoKICAgICAgbXlz cWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItdXNlLXN5cy1tYWxsb2MucmVzdWx0CiAgICAg IG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLXVzZS1zeXMtbWFsbG9jLW1hc3Rlci5v cHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGItdXNlLXN5cy1tYWxsb2Mu dGVzdAogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kYjBlcnIuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwbXlzcWwuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3V0L3V0MHV0LmMKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwcm93LmgnCi0tLSBhL3N0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwcm93LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMTA2MjgxMjI4MjEtYzZqeG95ejY4Nng3MmN1dgorKysgYi9zdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvcm93MHJvdy5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNjI5 MDcwNDAwLW1meW81dGs1dDlwcTIzM3YKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKIAotQ29weXJpZ2h0IChjKSAxOTk2LCAyMDEwLCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0 cyBSZXNlcnZlZC4KK0NvcHlyaWdodCAoYykgMTk5NiwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMg YWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIK IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkBAIC0zOCwyNyArMzgsMTYgQEAgQ3JlYXRlZCA0LzIwLzE5 OTYgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAiYnRyMHR5cGVzLmgiCiAKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov LyoqCi1HZXRzIHRoZSBvZmZzZXQgb2YgdGhlIHRyeCBpZCBmaWVsZCwgaW4gYnl0ZXMgcmVsYXRp dmUgdG8gdGhlIG9yaWdpbiBvZgorR2V0cyB0aGUgb2Zmc2V0IG9mIHRoZSBEQl9UUlhfSUQgZmll bGQsIGluIGJ5dGVzIHJlbGF0aXZlIHRvIHRoZSBvcmlnaW4gb2YKIGEgY2x1c3RlcmVkIGluZGV4 IHJlY29yZC4KIEByZXR1cm4Jb2Zmc2V0IG9mIERBVEFfVFJYX0lEICovCiBVTklWX0lOTElORQog dWxpbnQKLXJvd19nZXRfdHJ4X2lkX29mZnNldF9mdW5jKAotLyo9PT09PT09PT09PT09PT09PT09 PT09PSovCi0jaWZkZWYgVU5JVl9ERUJVRwotCWNvbnN0IHJlY190KgkJcmVjLAkvKiE8IGluOiBy ZWNvcmQgKi8KLSNlbmRpZiAvKiBVTklWX0RFQlVHICovCityb3dfZ2V0X3RyeF9pZF9vZmZzZXQo CisvKj09PT09PT09PT09PT09PT09PSovCiAJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyoh PCBpbjogY2x1c3RlcmVkIGluZGV4ICovCi0JY29uc3QgdWxpbnQqCQlvZmZzZXRzKS8qITwgaW46 IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAqLworCWNvbnN0IHVsaW50KgkJb2Zmc2V0cykv KiE8IGluOiByZWNvcmQgb2Zmc2V0cyAqLwogCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5f dW51c2VkX3Jlc3VsdCkpOwotI2lmZGVmIFVOSVZfREVCVUcKLSMgZGVmaW5lIHJvd19nZXRfdHJ4 X2lkX29mZnNldChyZWMsIGluZGV4LCBvZmZzZXRzKQlcCi0Jcm93X2dldF90cnhfaWRfb2Zmc2V0 X2Z1bmMocmVjLCBpbmRleCwgb2Zmc2V0cykKLSNlbHNlIC8qIFVOSVZfREVCVUcgKi8KLSMgZGVm aW5lIHJvd19nZXRfdHJ4X2lkX29mZnNldChyZWMsIGluZGV4LCBvZmZzZXRzKQlcCi0Jcm93X2dl dF90cnhfaWRfb2Zmc2V0X2Z1bmMoaW5kZXgsIG9mZnNldHMpCi0jZW5kaWYgLyogVU5JVl9ERUJV RyAqLwotCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogUmVhZHMgdGhlIHRyeCBpZCBmaWVsZCBmcm9tIGEg Y2x1c3RlcmVkIGluZGV4IHJlY29yZC4KIEByZXR1cm4JdmFsdWUgb2YgdGhlIGZpZWxkICovCkBA IC03Nyw5ICs2NiwxMCBAQCBVTklWX0lOTElORQogcm9sbF9wdHJfdAogcm93X2dldF9yZWNfcm9s bF9wdHIoCiAvKj09PT09PT09PT09PT09PT09Ki8KLQljb25zdCByZWNfdCoJcmVjLAkvKiE8IGlu OiByZWNvcmQgKi8KLQlkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiBjbHVzdGVyZWQgaW5k ZXggKi8KLQljb25zdCB1bGludCoJb2Zmc2V0cyk7LyohPCBpbjogcmVjX2dldF9vZmZzZXRzKHJl YywgaW5kZXgpICovCisJY29uc3QgcmVjX3QqCQlyZWMsCS8qITwgaW46IHJlY29yZCAqLworCWNv bnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGNsdXN0ZXJlZCBpbmRleCAqLworCWNv bnN0IHVsaW50KgkJb2Zmc2V0cykvKiE8IGluOiByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCkg Ki8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKIFdoZW4gYW4gaW5zZXJ0IG9yIHB1cmdlIHRvIGEgdGFibGUgaXMgcGVyZm9ybWVk LCB0aGlzIGZ1bmN0aW9uIGJ1aWxkcwogdGhlIGVudHJ5IHRvIGJlIGluc2VydGVkIGludG8gb3Ig cHVyZ2VkIGZyb20gYW4gaW5kZXggb24gdGhlIHRhYmxlLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwcm93LmljJwotLS0gYS9zdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvcm93MHJvdy5pYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDYy ODEyMjgyMS1jNmp4b3l6Njg2eDcyY3V2CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9y b3cwcm93LmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNjI5MDcwNDAwLW1m eW81dGs1dDlwcTIzM3YKQEAgLTEsNiArMSw2IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAot Q29weXJpZ2h0IChjKSAxOTk2LCAyMDA5LCBJbm5vYmFzZSBPeS4gQWxsIFJpZ2h0cyBSZXNlcnZl ZC4KK0NvcHlyaWdodCAoYykgMTk5NiwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRl cy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlCkBAIC0yOCwyNSArMjgsMjIgQEAgQ3JlYXRlZCA0LzIwLzE5OTYgSGVpa2tp IFR1dXJpCiAjaW5jbHVkZSAidHJ4MHVuZG8uaCIKIAogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLUdldHMg dGhlIG9mZnNldCBvZiB0cnggaWQgZmllbGQsIGluIGJ5dGVzIHJlbGF0aXZlIHRvIHRoZSBvcmln aW4gb2YKK0dldHMgdGhlIG9mZnNldCBvZiB0aGUgREJfVFJYX0lEIGZpZWxkLCBpbiBieXRlcyBy ZWxhdGl2ZSB0byB0aGUgb3JpZ2luIG9mCiBhIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQuCiBAcmV0 dXJuCW9mZnNldCBvZiBEQVRBX1RSWF9JRCAqLwogVU5JVl9JTkxJTkUKIHVsaW50Ci1yb3dfZ2V0 X3RyeF9pZF9vZmZzZXRfZnVuYygKLS8qPT09PT09PT09PT09PT09PT09PT09PT0qLwotI2lmZGVm IFVOSVZfREVCVUcKLQljb25zdCByZWNfdCoJCXJlYywJLyohPCBpbjogcmVjb3JkICovCi0jZW5k aWYgLyogVU5JVl9ERUJVRyAqLworcm93X2dldF90cnhfaWRfb2Zmc2V0KAorLyo9PT09PT09PT09 PT09PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGNsdXN0ZXJl ZCBpbmRleCAqLwotCWNvbnN0IHVsaW50KgkJb2Zmc2V0cykvKiE8IGluOiByZWNfZ2V0X29mZnNl dHMocmVjLCBpbmRleCkgKi8KKwljb25zdCB1bGludCoJCW9mZnNldHMpLyohPCBpbjogcmVjb3Jk IG9mZnNldHMgKi8KIHsKIAl1bGludAlwb3M7CiAJdWxpbnQJb2Zmc2V0OwogCXVsaW50CWxlbjsK IAogCXV0X2FkKGRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpKTsKLQl1dF9hZChyZWNfb2Zmc192 YWxpZGF0ZShyZWMsIGluZGV4LCBvZmZzZXRzKSk7CisJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUo TlVMTCwgaW5kZXgsIG9mZnNldHMpKTsKIAogCXBvcyA9IGRpY3RfaW5kZXhfZ2V0X3N5c19jb2xf cG9zKGluZGV4LCBEQVRBX1RSWF9JRCk7CiAKQEAgLTc2LDcgKzczLDcgQEAgcm93X2dldF9yZWNf dHJ4X2lkKAogCW9mZnNldCA9IGluZGV4LT50cnhfaWRfb2Zmc2V0OwogCiAJaWYgKCFvZmZzZXQp IHsKLQkJb2Zmc2V0ID0gcm93X2dldF90cnhfaWRfb2Zmc2V0KHJlYywgaW5kZXgsIG9mZnNldHMp OworCQlvZmZzZXQgPSByb3dfZ2V0X3RyeF9pZF9vZmZzZXQoaW5kZXgsIG9mZnNldHMpOwogCX0K IAogCXJldHVybih0cnhfcmVhZF90cnhfaWQocmVjICsgb2Zmc2V0KSk7CkBAIC04OSw5ICs4Niw5 IEBAIFVOSVZfSU5MSU5FCiByb2xsX3B0cl90CiByb3dfZ2V0X3JlY19yb2xsX3B0cigKIC8qPT09 PT09PT09PT09PT09PT0qLwotCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHJlY29yZCAqLwot CWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGNsdXN0ZXJlZCBpbmRleCAqLwotCWNvbnN0 IHVsaW50KglvZmZzZXRzKS8qITwgaW46IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAqLwor CWNvbnN0IHJlY190KgkJcmVjLAkvKiE8IGluOiByZWNvcmQgKi8KKwljb25zdCBkaWN0X2luZGV4 X3QqCWluZGV4LAkvKiE8IGluOiBjbHVzdGVyZWQgaW5kZXggKi8KKwljb25zdCB1bGludCoJCW9m ZnNldHMpLyohPCBpbjogcmVjX2dldF9vZmZzZXRzKHJlYywgaW5kZXgpICovCiB7CiAJdWxpbnQJ b2Zmc2V0OwogCkBAIC0xMDEsNyArOTgsNyBAQCByb3dfZ2V0X3JlY19yb2xsX3B0cigKIAlvZmZz ZXQgPSBpbmRleC0+dHJ4X2lkX29mZnNldDsKIAogCWlmICghb2Zmc2V0KSB7Ci0JCW9mZnNldCA9 IHJvd19nZXRfdHJ4X2lkX29mZnNldChyZWMsIGluZGV4LCBvZmZzZXRzKTsKKwkJb2Zmc2V0ID0g cm93X2dldF90cnhfaWRfb2Zmc2V0KGluZGV4LCBvZmZzZXRzKTsKIAl9CiAKIAlyZXR1cm4odHJ4 X3JlYWRfcm9sbF9wdHIocmVjICsgb2Zmc2V0ICsgREFUQV9UUlhfSURfTEVOKSk7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzB1cGQuaWMnCi0tLSBhL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTEwNjI4MTIyODIxLWM2anhveXo2ODZ4NzJjdXYKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL3JvdzB1cGQuaWMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MTA2MjkwNzA0MDAtbWZ5bzV0azV0OXBxMjMzdgpAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTYsIDIwMDksIElubm9iYXNlIE95LiBBbGwg UmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk2LCAyMDExLCBPcmFjbGUgYW5kL29y IGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1 bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAgLTE3MSw3ICsxNzEsNyBAQCByb3dfdXBkX3Jl Y19zeXNfZmllbGRzKAogCQl1bGludAlvZmZzZXQgPSBpbmRleC0+dHJ4X2lkX29mZnNldDsKIAog CQlpZiAoIW9mZnNldCkgewotCQkJb2Zmc2V0ID0gcm93X2dldF90cnhfaWRfb2Zmc2V0KHJlYywg aW5kZXgsIG9mZnNldHMpOworCQkJb2Zmc2V0ID0gcm93X2dldF90cnhfaWRfb2Zmc2V0KGluZGV4 LCBvZmZzZXRzKTsKIAkJfQogCiAjaWYgREFUQV9UUlhfSUQgKyAxICE9IERBVEFfUk9MTF9QVFIK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5oJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5oCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTEwNjI4MTIyODIxLWM2anhveXo2ODZ4NzJjdXYKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDYyOTA3MDQwMC1tZnlvNXRrNXQ5cHEyMzN2CkBAIC0xLDYgKzEsNiBAQAogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAxMSwgSW5ub2Jhc2UgT3ku IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEsIE9yYWNsZSBh bmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMjc4LDYgKzI3OCwxNSBAQCBpYm9v bAogdHJ4X2luX3RyeF9saXN0KAogLyo9PT09PT09PT09PT0qLwogCXRyeF90Kglpbl90cngpOy8q ITwgaW46IHRyeCAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgorQXNzZXJ0IHRoYXQgYSB0cmFuc2FjdGlvbiBoYXMgYmVl biByZWNvdmVyZWQuCitAcmV0dXJuIFRSVUUgKi8KK1VOSVZfSU5MSU5FCitpYm9vbAordHJ4X2Fz c2VydF9yZWNvdmVyZWQoCisvKj09PT09PT09PT09PT09PT09Ki8KKwl0cnhfaWRfdAl0cnhfaWQp CQkvKiE8IGluOiB0cmFuc2FjdGlvbiBpZGVudGlmaWVyICovCisJX19hdHRyaWJ1dGVfXygod2Fy bl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBVcGRhdGVzIHRoZSBvZmZzZXQgaW5m b3JtYXRpb24gYWJvdXQgdGhlIGVuZCBvZiB0aGUgTXlTUUwgYmlubG9nIGVudHJ5CiB3aGljaCBj b3JyZXNwb25kcyB0byB0aGUgdHJhbnNhY3Rpb24ganVzdCBiZWluZyBjb21taXR0ZWQuIEluIGEg TXlTUUwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5 cy5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaWMJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA2MjgxMjI4MjEtYzZqeG95ejY4Nng3MmN1dgorKysg Yi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5pYwlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDExMDYyOTA3MDQwMC1tZnlvNXRrNXQ5cHEyMzN2CkBAIC0xLDYgKzEsNiBA QAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAwOSwgSW5u b2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIwMTEs IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAKIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMjc3LDYgKzI3Nywy OCBAQCB0cnhfZ2V0X29uX2lkKAogCXJldHVybihOVUxMKTsKIH0KIAorI2lmIGRlZmluZWQgVU5J Vl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfQkxPQl9MSUdIVF9ERUJVRworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorQXNzZXJ0 IHRoYXQgYSB0cmFuc2FjdGlvbiBoYXMgYmVlbiByZWNvdmVyZWQuCitAcmV0dXJuIFRSVUUgKi8K K1VOSVZfSU5MSU5FCitpYm9vbAordHJ4X2Fzc2VydF9yZWNvdmVyZWQoCisvKj09PT09PT09PT09 PT09PT09Ki8KKwl0cnhfaWRfdAl0cnhfaWQpCQkvKiE8IGluOiB0cmFuc2FjdGlvbiBpZGVudGlm aWVyICovCit7CisJdHJ4X3QqCQl0cng7CisKKwltdXRleF9lbnRlcigma2VybmVsX211dGV4KTsK Kwl0cnggPSB0cnhfZ2V0X29uX2lkKHRyeF9pZCk7CisJdXRfYSh0cngpOworCXV0X2EodHJ4LT5p c19yZWNvdmVyZWQpOworCW11dGV4X2V4aXQoJmtlcm5lbF9tdXRleCk7CisKKwlyZXR1cm4oVFJV RSk7Cit9CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0JMT0JfTElHSFRfREVCVUcgKi8K KwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCiBSZXR1cm5zIHRoZSBtaW51bXVtIHRyeCBpZCBpbiB0cnggbGlzdC4g VGhpcyBpcyB0aGUgc21hbGxlc3QgaWQgZm9yIHdoaWNoCiB0aGUgdHJ4IGNhbiBwb3NzaWJseSBi ZSBhY3RpdmUuIChCdXQsIHlvdSBtdXN0IGxvb2sgYXQgdGhlIHRyeC0+Y29uY19zdGF0ZSB0bwoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzByb3cuYycKLS0tIGEv c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHJvdy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwNjI4MTIyODIxLWM2anhveXo2ODZ4NzJjdXYKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MHJvdy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwNjI5MDcw NDAwLW1meW81dGs1dDlwcTIzM3YKQEAgLTIwMiwzMyArMjAyLDE5IEBAIHJvd19idWlsZCgKIAl9 CiAKICNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0JMT0JfTElHSFRfREVC VUcKLQlpZiAoVU5JVl9MSUtFTFlfTlVMTChyZWNfb2Zmc19hbnlfbnVsbF9leHRlcm4ocmVjLCBv ZmZzZXRzKSkpIHsKLQkJLyogVGhpcyBjb25kaXRpb24gY2FuIG9jY3VyIGR1cmluZyBjcmFzaCBy ZWNvdmVyeSBiZWZvcmUKLQkJdHJ4X3JvbGxiYWNrX2FjdGl2ZSgpIGhhcyBjb21wbGV0ZWQgZXhl Y3V0aW9uLgorCS8qIFRoaXMgY29uZGl0aW9uIGNhbiBvY2N1ciBkdXJpbmcgY3Jhc2ggcmVjb3Zl cnkgYmVmb3JlCisJdHJ4X3JvbGxiYWNrX2FjdGl2ZSgpIGhhcyBjb21wbGV0ZWQgZXhlY3V0aW9u LgogCi0JCVRoaXMgY29uZGl0aW9uIGlzIHBvc3NpYmxlIGlmIHRoZSBzZXJ2ZXIgY3Jhc2hlZAot CQlkdXJpbmcgYW4gaW5zZXJ0IG9yIHVwZGF0ZSBiZWZvcmUKLQkJYnRyX3N0b3JlX2JpZ19yZWNf ZXh0ZXJuX2ZpZWxkcygpIGRpZCBtdHJfY29tbWl0KCkgYWxsCi0JCUJMT0IgcG9pbnRlcnMgdG8g dGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQuCi0KLQkJTG9vayB1cCB0aGUgdHJhbnNhY3Rpb24g dGhhdCBob2xkcyB0aGUgaW1wbGljaXQgbG9jawotCQlvbiB0aGlzIHJlY29yZCwgYW5kIGFzc2Vy dCB0aGF0IGl0IHdhcyByZWNvdmVyZWQgKGFuZAotCQl3aWxsIHNvb24gYmUgcm9sbGVkIGJhY2sp LiAqLwotCi0JCXVsaW50CQl0cnhfaWRfcG9zCT0gZGljdF9pbmRleF9nZXRfc3lzX2NvbF9wb3Mo Ci0JCQkJaW5kZXgsIERBVEFfVFJYX0lEKTsKLQkJdWxpbnQJCWxlbjsKLQkJdHJ4X2lkX3QJdHJ4 X2lkCQk9IHRyeF9yZWFkX3RyeF9pZCgKLQkJCXJlY19nZXRfbnRoX2ZpZWxkKHJlYywgb2Zmc2V0 cywgdHJ4X2lkX3BvcywgJmxlbikpOwotCQl0cnhfdCoJCXRyeDsKLQkJdXRfYShsZW4gPT0gNik7 Ci0KLQkJbXV0ZXhfZW50ZXIoJmtlcm5lbF9tdXRleCk7Ci0JCXRyeCA9IHRyeF9nZXRfb25faWQo dHJ4X2lkKTsKLQkJdXRfYSh0cngpOwotCQl1dF9hKHRyeC0+aXNfcmVjb3ZlcmVkKTsKLQkJbXV0 ZXhfZXhpdCgma2VybmVsX211dGV4KTsKLQl9CisJVGhpcyBjb25kaXRpb24gaXMgcG9zc2libGUg aWYgdGhlIHNlcnZlciBjcmFzaGVkCisJZHVyaW5nIGFuIGluc2VydCBvciB1cGRhdGUgYmVmb3Jl CisJYnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkcygpIGRpZCBtdHJfY29tbWl0KCkgYWxs CisJQkxPQiBwb2ludGVycyB0byB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZC4KKworCUlmIHRo ZSByZWNvcmQgY29udGFpbnMgYSBudWxsIEJMT0IgcG9pbnRlciwgbG9vayB1cCB0aGUKKwl0cmFu c2FjdGlvbiB0aGF0IGhvbGRzIHRoZSBpbXBsaWNpdCBsb2NrIG9uIHRoaXMgcmVjb3JkLCBhbmQK Kwlhc3NlcnQgdGhhdCBpdCB3YXMgcmVjb3ZlcmVkIChhbmQgd2lsbCBzb29uIGJlIHJvbGxlZCBi YWNrKS4gKi8KKwl1dF9hKCFyZWNfb2Zmc19hbnlfbnVsbF9leHRlcm4ocmVjLCBvZmZzZXRzKQor CSAgICAgfHwgdHJ4X2Fzc2VydF9yZWNvdmVyZWQocm93X2dldF9yZWNfdHJ4X2lkKHJlYywgaW5k ZXgsIG9mZnNldHMpKSk7CiAjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0JMT0JfTElHSFRf REVCVUcgKi8KIAogCWlmICh0eXBlICE9IFJPV19DT1BZX1BPSU5URVJTKSB7CgpObyBidW5kbGUg KHJlYXNvbjogdXNlbGVzcyBmb3IgcHVzaCBlbWFpbHMpLg==