From: marko.makela Date: February 2 2011 2:09pm Subject: bzr commit into mysql-trunk-innodb branch (marko.makela:3476) List-Archive: http://lists.mysql.com/commits/130230 Message-Id: <201102021410.p12E3vlV017989@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0101070385==" --===============0101070385== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjYtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMTAyMDIwNzMwMTYtaXU4Mnox dWtuaXAxemF3ZwoKIDM0NzYgTWFya28gTcOka2Vsw6QJMjAxMS0wMi0wMiBbbWVyZ2VdCiAgICAg IE1lcmdlIG15c3FsLTUuNS1pbm5vZGIgdG8gbXlzcWwtNS42LWlubm9kYi4KCiAgICBtb2RpZmll ZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvYnVmL2J1ZjBidWYuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2ZzcC9mc3AwZnNwLmMK ICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS9idHIwY3VyLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1 ZjBidWYuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdW5pdi5pCiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2Uvcm93L3JvdzBpbnMuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw cHVyZ2UuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdW1vZC5jCiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuYwo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9idHIvYnRyMGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMJ cmV2aWQ6amltbXkueWFuZ0BvcmFjbGUuY29tLTIwMTEwMjAyMDczMDE2LWl1ODJ6MXVrbmlwMXph d2cKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idHIvYnRyMGN1ci5jCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTEwMjAyMTQwODMwLXl6dGtpZWRmamQ3Mm52ZTkKQEAgLTE5Nyw3ICsx OTcsNyBAQCBzdGF0aWMKIHVsaW50CiBidHJfcmVjX2dldF9leHRlcm5hbGx5X3N0b3JlZF9sZW4o CiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0JcmVjX3QqCQlyZWMsCS8qITwg aW46IHJlY29yZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHJlY29yZCAqLwogCWNv bnN0IHVsaW50KglvZmZzZXRzKTsvKiE8IGluOiBhcnJheSByZXR1cm5lZCBieSByZWNfZ2V0X29m ZnNldHMoKSAqLwogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogCkBAIC0zNzY1LDM0ICsz NzY1LDYyIEBAIGJ0cl9lc3RpbWF0ZV9udW1iZXJfb2ZfZGlmZmVyZW50X2tleV92YWwKIC8qPT09 PT09PT09PT09PT09PT09IEVYVEVSTkFMIFNUT1JBR0UgT0YgQklHIEZJRUxEUyA9PT09PT09PT09 PT09PT09PT09Ki8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLy8qKgorR2V0cyB0aGUgb2Zmc2V0IG9mIHRoZSBwb2ludGVyIHRv IHRoZSBleHRlcm5hbGx5IHN0b3JlZCBwYXJ0IG9mIGEgZmllbGQuCitAcmV0dXJuCW9mZnNldCBv ZiB0aGUgcG9pbnRlciB0byB0aGUgZXh0ZXJuYWxseSBzdG9yZWQgcGFydCAqLworc3RhdGljCit1 bGludAorYnRyX3JlY19nZXRfZmllbGRfcmVmX29mZnMoCisvKj09PT09PT09PT09PT09PT09PT09 PT09Ki8KKwljb25zdCB1bGludCoJb2Zmc2V0cywvKiE8IGluOiBhcnJheSByZXR1cm5lZCBieSBy ZWNfZ2V0X29mZnNldHMoKSAqLworCXVsaW50CQluKQkvKiE8IGluOiBpbmRleCBvZiB0aGUgZXh0 ZXJuYWwgZmllbGQgKi8KK3sKKwl1bGludAlmaWVsZF9yZWZfb2ZmczsKKwl1bGludAlsb2NhbF9s ZW47CisKKwl1dF9hKHJlY19vZmZzX250aF9leHRlcm4ob2Zmc2V0cywgbikpOworCWZpZWxkX3Jl Zl9vZmZzID0gcmVjX2dldF9udGhfZmllbGRfb2ZmcyhvZmZzZXRzLCBuLCAmbG9jYWxfbGVuKTsK Kwl1dF9hKGxvY2FsX2xlbiAhPSBVTklWX1NRTF9OVUxMKTsKKwl1dF9hKGxvY2FsX2xlbiA+PSBC VFJfRVhURVJOX0ZJRUxEX1JFRl9TSVpFKTsKKworCXJldHVybihmaWVsZF9yZWZfb2ZmcyArIGxv Y2FsX2xlbiAtIEJUUl9FWFRFUk5fRklFTERfUkVGX1NJWkUpOworfQorCisvKiogR2V0cyBhIHBv aW50ZXIgdG8gdGhlIGV4dGVybmFsbHkgc3RvcmVkIHBhcnQgb2YgYSBmaWVsZC4KK0BwYXJhbSBy ZWMJcmVjb3JkCitAcGFyYW0gb2Zmc2V0cwlyZWNfZ2V0X29mZnNldHMocmVjKQorQHBhcmFtIG4J aW5kZXggb2YgdGhlIGV4dGVybmFsbHkgc3RvcmVkIGZpZWxkCitAcmV0dXJuIHBvaW50ZXIgdG8g dGhlIGV4dGVybmFsbHkgc3RvcmVkIHBhcnQgKi8KKyNkZWZpbmUgYnRyX3JlY19nZXRfZmllbGRf cmVmKHJlYywgb2Zmc2V0cywgbikJCQlcCisJKChyZWMpICsgYnRyX3JlY19nZXRfZmllbGRfcmVm X29mZnMob2Zmc2V0cywgbikpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIGV4dGVybmFsbHkgc3RvcmVk IHNpemUgb2YgYSByZWNvcmQsIGluIHVuaXRzIG9mIGEgZGF0YWJhc2UgcGFnZS4KIEByZXR1cm4J ZXh0ZXJuYWxseSBzdG9yZWQgcGFydCwgaW4gdW5pdHMgb2YgYSBkYXRhYmFzZSBwYWdlICovCiBz dGF0aWMKIHVsaW50CiBidHJfcmVjX2dldF9leHRlcm5hbGx5X3N0b3JlZF9sZW4oCiAvKj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0JcmVjX3QqCQlyZWMsCS8qITwgaW46IHJlY29y ZCAqLworCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHJlY29yZCAqLwogCWNvbnN0IHVsaW50 KglvZmZzZXRzKS8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5IHJlY19nZXRfb2Zmc2V0cygpICov CiB7CiAJdWxpbnQJbl9maWVsZHM7Ci0JYnl0ZSoJZGF0YTsKLQl1bGludAlsb2NhbF9sZW47Ci0J dWxpbnQJZXh0ZXJuX2xlbjsKIAl1bGludAl0b3RhbF9leHRlcm5fbGVuID0gMDsKIAl1bGludAlp OwogCiAJdXRfYWQoIXJlY19vZmZzX2NvbXAob2Zmc2V0cykgfHwgIXJlY19nZXRfbm9kZV9wdHJf ZmxhZyhyZWMpKTsKKworCWlmICghcmVjX29mZnNfYW55X2V4dGVybihvZmZzZXRzKSkgeworCQly ZXR1cm4oMCk7CisJfQorCiAJbl9maWVsZHMgPSByZWNfb2Zmc19uX2ZpZWxkcyhvZmZzZXRzKTsK IAogCWZvciAoaSA9IDA7IGkgPCBuX2ZpZWxkczsgaSsrKSB7CiAJCWlmIChyZWNfb2Zmc19udGhf ZXh0ZXJuKG9mZnNldHMsIGkpKSB7CiAKLQkJCWRhdGEgPSByZWNfZ2V0X250aF9maWVsZChyZWMs IG9mZnNldHMsIGksICZsb2NhbF9sZW4pOwotCi0JCQlsb2NhbF9sZW4gLT0gQlRSX0VYVEVSTl9G SUVMRF9SRUZfU0laRTsKLQotCQkJZXh0ZXJuX2xlbiA9IG1hY2hfcmVhZF9mcm9tXzQoZGF0YSAr IGxvY2FsX2xlbgotCQkJCQkJICAgICAgKyBCVFJfRVhURVJOX0xFTiArIDQpOworCQkJdWxpbnQJ ZXh0ZXJuX2xlbiA9IG1hY2hfcmVhZF9mcm9tXzQoCisJCQkJYnRyX3JlY19nZXRfZmllbGRfcmVm KHJlYywgb2Zmc2V0cywgaSkKKwkJCQkrIEJUUl9FWFRFUk5fTEVOICsgNCk7CiAKIAkJCXRvdGFs X2V4dGVybl9sZW4gKz0gdXRfY2FsY19hbGlnbihleHRlcm5fbGVuLAogCQkJCQkJCSAgVU5JVl9Q QUdFX1NJWkUpOwpAQCAtMzgyMiw3ICszODUwLDcgQEAgYnRyX2N1cl9zZXRfb3duZXJzaGlwX29m X2V4dGVybl9maWVsZCgKIAl1bGludAlieXRlX3ZhbDsKIAogCWRhdGEgPSByZWNfZ2V0X250aF9m aWVsZChyZWMsIG9mZnNldHMsIGksICZsb2NhbF9sZW4pOwotCisJdXRfYWQocmVjX29mZnNfbnRo X2V4dGVybihvZmZzZXRzLCBpKSk7CiAJdXRfYShsb2NhbF9sZW4gPj0gQlRSX0VYVEVSTl9GSUVM RF9SRUZfU0laRSk7CiAKIAlsb2NhbF9sZW4gLT0gQlRSX0VYVEVSTl9GSUVMRF9SRUZfU0laRTsK QEAgLTM4MzIsNiArMzg2MCw5IEBAIGJ0cl9jdXJfc2V0X293bmVyc2hpcF9vZl9leHRlcm5fZmll bGQoCiAJaWYgKHZhbCkgewogCQlieXRlX3ZhbCA9IGJ5dGVfdmFsICYgKH5CVFJfRVhURVJOX09X TkVSX0ZMQUcpOwogCX0gZWxzZSB7CisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQg VU5JVl9CTE9CX0xJR0hUX0RFQlVHCisJCXV0X2EoIShieXRlX3ZhbCAmIEJUUl9FWFRFUk5fT1dO RVJfRkxBRykpOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9CTE9CX0xJR0hUX0RFQlVH ICovCiAJCWJ5dGVfdmFsID0gYnl0ZV92YWwgfCBCVFJfRVhURVJOX09XTkVSX0ZMQUc7CiAJfQog CkBAIC00MDY4LDggKzQwOTksOCBAQCBmaWxlIHNlZ21lbnQgb2YgdGhlIGluZGV4IHRyZWUuCiBA cmV0dXJuCURCX1NVQ0NFU1Mgb3IgREJfT1VUX09GX0ZJTEVfU1BBQ0UgKi8KIFVOSVZfSU5URVJO CiB1bGludAotYnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkcygKLS8qPT09PT09PT09PT09 PT09PT09PT09PT09PT09PSovCitidHJfc3RvcmVfYmlnX3JlY19leHRlcm5fZmllbGRzX2Z1bmMo CisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJZGljdF9pbmRleF90Kglp bmRleCwJCS8qITwgaW46IGluZGV4IG9mIHJlYzsgdGhlIGluZGV4IHRyZWUKIAkJCQkJTVVTVCBi ZSBYLWxhdGNoZWQgKi8KIAlidWZfYmxvY2tfdCoJcmVjX2Jsb2NrLAkvKiE8IGluL291dDogYmxv Y2sgY29udGFpbmluZyByZWMgKi8KQEAgLTQwNzgsMTEgKzQxMDksMTcgQEAgYnRyX3N0b3JlX2Jp Z19yZWNfZXh0ZXJuX2ZpZWxkcygKIAkJCQkJdGhlICJleHRlcm5hbCBzdG9yYWdlIiBmbGFncyBp biBvZmZzZXRzCiAJCQkJCXdpbGwgbm90IGNvcnJlc3BvbmQgdG8gcmVjIHdoZW4KIAkJCQkJdGhp cyBmdW5jdGlvbiByZXR1cm5zICovCi0JYmlnX3JlY190KgliaWdfcmVjX3ZlYywJLyohPCBpbjog dmVjdG9yIGNvbnRhaW5pbmcgZmllbGRzCisjaWZkZWYgVU5JVl9ERUJVRworCW10cl90KgkJbG9j YWxfbXRyLAkvKiE8IGluOiBtdHIgY29udGFpbmluZyB0aGUKKwkJCQkJbGF0Y2ggdG8gcmVjIGFu ZCB0byB0aGUgdHJlZSAqLworI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KKyNpZiBkZWZpbmVkIFVO SVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0JMT0JfTElHSFRfREVCVUcKKwlpYm9vbAkJdXBkYXRl X2luX3BsYWNlLC8qISBpbjogVFJVRSBpZiB0aGUgcmVjb3JkIGlzIHVwZGF0ZWQKKwkJCQkJaW4g cGxhY2UgKG5vdCBkZWxldGUraW5zZXJ0KSAqLworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5J Vl9CTE9CX0xJR0hUX0RFQlVHICovCisJY29uc3QgYmlnX3JlY190KmJpZ19yZWNfdmVjKQkvKiE8 IGluOiB2ZWN0b3IgY29udGFpbmluZyBmaWVsZHMKIAkJCQkJdG8gYmUgc3RvcmVkIGV4dGVybmFs bHkgKi8KLQltdHJfdCoJCWxvY2FsX210ciBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkgLyohPCBp bjogbXRyCi0JCQkJCWNvbnRhaW5pbmcgdGhlIGxhdGNoIHRvIHJlYyBhbmQgdG8gdGhlCi0JCQkJ CXRyZWUgKi8KKwogewogCXVsaW50CXJlY19wYWdlX25vOwogCWJ5dGUqCWZpZWxkX3JlZjsKQEAg LTQxMDAsNiArNDEzNyw3IEBAIGJ0cl9zdG9yZV9iaWdfcmVjX2V4dGVybl9maWVsZHMoCiAJel9z dHJlYW0gY19zdHJlYW07CiAKIAl1dF9hZChyZWNfb2Zmc192YWxpZGF0ZShyZWMsIGluZGV4LCBv ZmZzZXRzKSk7CisJdXRfYWQocmVjX29mZnNfYW55X2V4dGVybihvZmZzZXRzKSk7CiAJdXRfYWQo bXRyX21lbW9fY29udGFpbnMobG9jYWxfbXRyLCBkaWN0X2luZGV4X2dldF9sb2NrKGluZGV4KSwK IAkJCQlNVFJfTUVNT19YX0xPQ0spKTsKIAl1dF9hZChtdHJfbWVtb19jb250YWlucyhsb2NhbF9t dHIsIHJlY19ibG9jaywgTVRSX01FTU9fUEFHRV9YX0ZJWCkpOwpAQCAtNDEzMSwyMSArNDE2OSwz NyBAQCBidHJfc3RvcmVfYmlnX3JlY19leHRlcm5fZmllbGRzKAogCQl1dF9hKGVyciA9PSBaX09L KTsKIAl9CiAKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0JMT0JfTElH SFRfREVCVUcKKwkvKiBBbGwgcG9pbnRlcnMgdG8gZXh0ZXJuYWxseSBzdG9yZWQgY29sdW1ucyBp biB0aGUgcmVjb3JkCisJbXVzdCBlaXRoZXIgYmUgemVybyBvciB0aGV5IG11c3QgYmUgcG9pbnRl cnMgdG8gaW5oZXJpdGVkCisJY29sdW1ucywgb3duZWQgYnkgdGhpcyByZWNvcmQgb3IgYW4gZWFy bGllciByZWNvcmQgdmVyc2lvbi4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgcmVjX29mZnNfbl9maWVs ZHMob2Zmc2V0cyk7IGkrKykgeworCQlpZiAoIXJlY19vZmZzX250aF9leHRlcm4ob2Zmc2V0cywg aSkpIHsKKwkJCWNvbnRpbnVlOworCQl9CisJCWZpZWxkX3JlZiA9IGJ0cl9yZWNfZ2V0X2ZpZWxk X3JlZihyZWMsIG9mZnNldHMsIGkpOworCisJCXV0X2EoIShmaWVsZF9yZWZbQlRSX0VYVEVSTl9M RU5dICYgQlRSX0VYVEVSTl9PV05FUl9GTEFHKSk7CisJCS8qIEVpdGhlciB0aGlzIG11c3QgYmUg YW4gdXBkYXRlIGluIHBsYWNlLAorCQlvciB0aGUgQkxPQiBtdXN0IGJlIGluaGVyaXRlZCwgb3Ig dGhlIEJMT0IgcG9pbnRlcgorCQltdXN0IGJlIHplcm8gKHdpbGwgYmUgd3JpdHRlbiBpbiB0aGlz IGZ1bmN0aW9uKS4gKi8KKwkJdXRfYSh1cGRhdGVfaW5fcGxhY2UKKwkJICAgICB8fCAoZmllbGRf cmVmW0JUUl9FWFRFUk5fTEVOXSAmIEJUUl9FWFRFUk5fSU5IRVJJVEVEX0ZMQUcpCisJCSAgICAg fHwgIW1lbWNtcChmaWVsZF9yZWYsIGZpZWxkX3JlZl96ZXJvLAorCQkJCUJUUl9FWFRFUk5fRklF TERfUkVGX1NJWkUpKTsKKwl9CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0JMT0JfTElH SFRfREVCVUcgKi8KIAkvKiBXZSBoYXZlIHRvIGNyZWF0ZSBhIGZpbGUgc2VnbWVudCB0byB0aGUg dGFibGVzcGFjZQogCWZvciBlYWNoIGZpZWxkIGFuZCBwdXQgdGhlIHBvaW50ZXIgdG8gdGhlIGZp ZWxkIGluIHJlYyAqLwogCiAJZm9yIChpID0gMDsgaSA8IGJpZ19yZWNfdmVjLT5uX2ZpZWxkczsg aSsrKSB7Ci0JCXV0X2FkKHJlY19vZmZzX250aF9leHRlcm4ob2Zmc2V0cywKLQkJCQkJICBiaWdf cmVjX3ZlYy0+ZmllbGRzW2ldLmZpZWxkX25vKSk7Ci0JCXsKLQkJCXVsaW50CWxvY2FsX2xlbjsK LQkJCWZpZWxkX3JlZiA9IHJlY19nZXRfbnRoX2ZpZWxkKAotCQkJCXJlYywgb2Zmc2V0cywgYmln X3JlY192ZWMtPmZpZWxkc1tpXS5maWVsZF9ubywKLQkJCQkmbG9jYWxfbGVuKTsKLQkJCXV0X2Eo bG9jYWxfbGVuID49IEJUUl9FWFRFUk5fRklFTERfUkVGX1NJWkUpOwotCQkJbG9jYWxfbGVuIC09 IEJUUl9FWFRFUk5fRklFTERfUkVGX1NJWkU7Ci0JCQlmaWVsZF9yZWYgKz0gbG9jYWxfbGVuOwot CQl9CisJCWZpZWxkX3JlZiA9IGJ0cl9yZWNfZ2V0X2ZpZWxkX3JlZigKKwkJCXJlYywgb2Zmc2V0 cywgYmlnX3JlY192ZWMtPmZpZWxkc1tpXS5maWVsZF9ubyk7CisjaWYgZGVmaW5lZCBVTklWX0RF QlVHIHx8IGRlZmluZWQgVU5JVl9CTE9CX0xJR0hUX0RFQlVHCisJCS8qIEEgemVybyBCTE9CIHBv aW50ZXIgc2hvdWxkIGhhdmUgYmVlbiBpbml0aWFsbHkgaW5zZXJ0ZWQuICovCisJCXV0X2EoIW1l bWNtcChmaWVsZF9yZWYsIGZpZWxkX3JlZl96ZXJvLAorCQkJICAgICBCVFJfRVhURVJOX0ZJRUxE X1JFRl9TSVpFKSk7CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0JMT0JfTElHSFRfREVC VUcgKi8KIAkJZXh0ZXJuX2xlbiA9IGJpZ19yZWNfdmVjLT5maWVsZHNbaV0ubGVuOwogCQlVTklW X01FTV9BU1NFUlRfUlcoYmlnX3JlY192ZWMtPmZpZWxkc1tpXS5kYXRhLAogCQkJCSAgIGV4dGVy bl9sZW4pOwpAQCAtNDQyNyw2ICs0NDgxLDIzIEBAIG5leHRfemlwX3BhZ2U6CiAJCW1lbV9oZWFw X2ZyZWUoaGVhcCk7CiAJfQogCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5J Vl9CTE9CX0xJR0hUX0RFQlVHCisJLyogQWxsIHBvaW50ZXJzIHRvIGV4dGVybmFsbHkgc3RvcmVk IGNvbHVtbnMgaW4gdGhlIHJlY29yZAorCW11c3QgYmUgdmFsaWQuICovCisJZm9yIChpID0gMDsg aSA8IHJlY19vZmZzX25fZmllbGRzKG9mZnNldHMpOyBpKyspIHsKKwkJaWYgKCFyZWNfb2Zmc19u dGhfZXh0ZXJuKG9mZnNldHMsIGkpKSB7CisJCQljb250aW51ZTsKKwkJfQorCisJCWZpZWxkX3Jl ZiA9IGJ0cl9yZWNfZ2V0X2ZpZWxkX3JlZihyZWMsIG9mZnNldHMsIGkpOworCisJCS8qIFRoZSBw b2ludGVyIG11c3Qgbm90IGJlIHplcm8uICovCisJCXV0X2EoMCAhPSBtZW1jbXAoZmllbGRfcmVm LCBmaWVsZF9yZWZfemVybywKKwkJCQkgQlRSX0VYVEVSTl9GSUVMRF9SRUZfU0laRSkpOworCQkv KiBUaGUgY29sdW1uIG11c3Qgbm90IGJlIGRpc293bmVkIGJ5IHRoaXMgcmVjb3JkLiAqLworCQl1 dF9hKCEoZmllbGRfcmVmW0JUUl9FWFRFUk5fTEVOXSAmIEJUUl9FWFRFUk5fT1dORVJfRkxBRykp OworCX0KKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfQkxPQl9MSUdIVF9ERUJVRyAqLwog CXJldHVybihEQl9TVUNDRVNTKTsKIH0KIApAQCAtNDQ0OSw2ICs0NTIwLDcgQEAgYnRyX2NoZWNr X2Jsb2JfZmlsX3BhZ2VfdHlwZSgKIAlpZiAoVU5JVl9VTkxJS0VMWSh0eXBlICE9IEZJTF9QQUdF X1RZUEVfQkxPQikpIHsKIAkJdWxpbnQJZmxhZ3MgPSBmaWxfc3BhY2VfZ2V0X2ZsYWdzKHNwYWNl X2lkKTsKIAorI2lmbmRlZiBVTklWX0RFQlVHIC8qIEltcHJvdmUgZGVidWcgdGVzdCBjb3ZlcmFn ZSAqLwogCQlpZiAoVU5JVl9MSUtFTFkKIAkJICAgICgoZmxhZ3MgJiBESUNUX1RGX0ZPUk1BVF9N QVNLKSA9PSBESUNUX1RGX0ZPUk1BVF81MSkpIHsKIAkJCS8qIE9sZCB2ZXJzaW9ucyBvZiBJbm5v REIgZGlkIG5vdCBpbml0aWFsaXplCkBAIC00NDU3LDYgKzQ1MjksNyBAQCBidHJfY2hlY2tfYmxv Yl9maWxfcGFnZV90eXBlKAogCQkJYSBCTE9CIHBhZ2UgdGhhdCBpcyBpbiBBbnRlbG9wZSBmb3Jt YXQuKi8KIAkJCXJldHVybjsKIAkJfQorI2VuZGlmIC8qICFVTklWX0RFQlVHICovCiAKIAkJdXRf cHJpbnRfdGltZXN0YW1wKHN0ZGVycik7CiAJCWZwcmludGYoc3RkZXJyLApAQCAtNDUwNiwyMyAr NDU3OSwxMyBAQCBidHJfZnJlZV9leHRlcm5hbGx5X3N0b3JlZF9maWVsZCgKIAl1bGludAkJcGFn ZV9ubzsKIAl1bGludAkJbmV4dF9wYWdlX25vOwogCW10cl90CQltdHI7Ci0jaWZkZWYgVU5JVl9E RUJVRworCiAJdXRfYWQobXRyX21lbW9fY29udGFpbnMobG9jYWxfbXRyLCBkaWN0X2luZGV4X2dl dF9sb2NrKGluZGV4KSwKIAkJCQlNVFJfTUVNT19YX0xPQ0spKTsKIAl1dF9hZChtdHJfbWVtb19j b250YWluc19wYWdlKGxvY2FsX210ciwgZmllbGRfcmVmLAogCQkJCSAgICAgTVRSX01FTU9fUEFH RV9YX0ZJWCkpOwogCXV0X2FkKCFyZWMgfHwgcmVjX29mZnNfdmFsaWRhdGUocmVjLCBpbmRleCwg b2Zmc2V0cykpOwotCi0JaWYgKHJlYykgewotCQl1bGludAlsb2NhbF9sZW47Ci0JCWNvbnN0IGJ5 dGUqCWYgPSByZWNfZ2V0X250aF9maWVsZChyZWMsIG9mZnNldHMsCi0JCQkJCQkgICAgICBpLCAm bG9jYWxfbGVuKTsKLQkJdXRfYShsb2NhbF9sZW4gPj0gQlRSX0VYVEVSTl9GSUVMRF9SRUZfU0la RSk7Ci0JCWxvY2FsX2xlbiAtPSBCVFJfRVhURVJOX0ZJRUxEX1JFRl9TSVpFOwotCQlmICs9IGxv Y2FsX2xlbjsKLQkJdXRfYWQoZiA9PSBmaWVsZF9yZWYpOwotCX0KLSNlbmRpZiAvKiBVTklWX0RF QlVHICovCisJdXRfYWQoIXJlYyB8fCBmaWVsZF9yZWYgPT0gYnRyX3JlY19nZXRfZmllbGRfcmVm KHJlYywgb2Zmc2V0cywgaSkpOwogCiAJaWYgKFVOSVZfVU5MSUtFTFkoIW1lbWNtcChmaWVsZF9y ZWYsIGZpZWxkX3JlZl96ZXJvLAogCQkJCSAgQlRSX0VYVEVSTl9GSUVMRF9SRUZfU0laRSkpKSB7 CkBAIC00Njg1LDEzICs0NzQ4LDggQEAgYnRyX3JlY19mcmVlX2V4dGVybmFsbHlfc3RvcmVkX2Zp ZWxkcygKIAogCWZvciAoaSA9IDA7IGkgPCBuX2ZpZWxkczsgaSsrKSB7CiAJCWlmIChyZWNfb2Zm c19udGhfZXh0ZXJuKG9mZnNldHMsIGkpKSB7Ci0JCQl1bGludAlsZW47Ci0JCQlieXRlKglkYXRh Ci0JCQkJPSByZWNfZ2V0X250aF9maWVsZChyZWMsIG9mZnNldHMsIGksICZsZW4pOwotCQkJdXRf YShsZW4gPj0gQlRSX0VYVEVSTl9GSUVMRF9SRUZfU0laRSk7Ci0KIAkJCWJ0cl9mcmVlX2V4dGVy bmFsbHlfc3RvcmVkX2ZpZWxkKAotCQkJCWluZGV4LCBkYXRhICsgbGVuIC0gQlRSX0VYVEVSTl9G SUVMRF9SRUZfU0laRSwKKwkJCQlpbmRleCwgYnRyX3JlY19nZXRfZmllbGRfcmVmKHJlYywgb2Zm c2V0cywgaSksCiAJCQkJcmVjLCBvZmZzZXRzLCBwYWdlX3ppcCwgaSwgcmJfY3R4LCBtdHIpOwog CQl9CiAJfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYu YycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGJ1Zi5jCXJldmlkOmppbW15LnlhbmdA b3JhY2xlLmNvbS0yMDExMDIwMjA3MzAxNi1pdTgyejF1a25pcDF6YXdnCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDIwMjE0MDgzMC15enRraWVkZmpkNzJudmU5CkBAIC04NzMsOSArODczLDkgQEAgYnVmX2Jsb2Nr X2luaXQoCiAKIAlibG9jay0+bW9kaWZ5X2Nsb2NrID0gMDsKIAotI2lmZGVmIFVOSVZfREVCVUdf RklMRV9BQ0NFU1NFUworI2lmIGRlZmluZWQgVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTIHx8IGRl ZmluZWQgVU5JVl9ERUJVRwogCWJsb2NrLT5wYWdlLmZpbGVfcGFnZV93YXNfZnJlZWQgPSBGQUxT RTsKLSNlbmRpZiAvKiBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgKi8KKyNlbmRpZiAvKiBVTklW X0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgVU5JVl9ERUJVRyAqLwogCiAJYmxvY2stPmNoZWNrX2lu ZGV4X3BhZ2VfYXRfZmx1c2ggPSBGQUxTRTsKIAlibG9jay0+aW5kZXggPSBOVUxMOwpAQCAtMjM0 NCw3ICsyMzQ0LDcgQEAgYnVmX3BhZ2VfcGVla19pZl9zZWFyY2hfaGFzaGVkKAogCXJldHVybihp c19oYXNoZWQpOwogfQogCi0jaWZkZWYgVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTCisjaWYgZGVm aW5lZCBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgZGVmaW5lZCBVTklWX0RFQlVHCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBTZXRzIGZpbGVfcGFnZV93YXNfZnJlZWQgVFJVRSBpZiB0aGUgcGFnZSBp cyBmb3VuZCBpbiB0aGUgYnVmZmVyIHBvb2wuCiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxs ZWQgd2hlbiB3ZSBmcmVlIGEgZmlsZSBwYWdlIGFuZCB3YW50IHRoZQpAQCAtMjM2Nyw2ICsyMzY3 LDggQEAgYnVmX3BhZ2Vfc2V0X2ZpbGVfcGFnZV93YXNfZnJlZWQoCiAKIAlpZiAoYnBhZ2UpIHsK IAkJdXRfYWQoIWJ1Zl9wb29sX3dhdGNoX2lzX3NlbnRpbmVsKGJ1Zl9wb29sLCBicGFnZSkpOwor CQkvKiBicGFnZS0+ZmlsZV9wYWdlX3dhc19mcmVlZCBjYW4gYWxyZWFkeSBob2xkCisJCXdoZW4g dGhpcyBjb2RlIGlzIGludm9rZWQgZnJvbSBkaWN0X2Ryb3BfaW5kZXhfdHJlZSgpICovCiAJCWJw YWdlLT5maWxlX3BhZ2Vfd2FzX2ZyZWVkID0gVFJVRTsKIAkJcndfbG9ja19zX3VubG9jayhoYXNo X2xvY2spOwogCX0KQEAgLTI0MDEsNyArMjQwMyw3IEBAIGJ1Zl9wYWdlX3Jlc2V0X2ZpbGVfcGFn ZV93YXNfZnJlZWQoCiAKIAlyZXR1cm4oYnBhZ2UpOwogfQotI2VuZGlmIC8qIFVOSVZfREVCVUdf RklMRV9BQ0NFU1NFUyAqLworI2VuZGlmIC8qIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBV TklWX0RFQlVHICovCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEF0dGVtcHRzIHRvIGRpc2NhcmQgdGhl IHVuY29tcHJlc3NlZCBmcmFtZSBvZiBhIGNvbXByZXNzZWQgcGFnZS4gVGhlCkBAIC0yNTM5LDcg KzI1NDEsNyBAQCBnb3RfYmxvY2s6CiAKIAlidWZfcGFnZV9zZXRfYWNjZXNzZWRfbWFrZV95b3Vu ZyhicGFnZSwgYWNjZXNzX3RpbWUpOwogCi0jaWZkZWYgVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VT CisjaWYgZGVmaW5lZCBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgZGVmaW5lZCBVTklWX0RF QlVHCiAJdXRfYSghYnBhZ2UtPmZpbGVfcGFnZV93YXNfZnJlZWQpOwogI2VuZGlmCiAKQEAgLTMy NzMsNyArMzI3NSw3IEBAIHdhaXRfdW50aWxfdW5maXhlZDoKIAogCWJ1Zl9wYWdlX3NldF9hY2Nl c3NlZF9tYWtlX3lvdW5nKCZibG9jay0+cGFnZSwgYWNjZXNzX3RpbWUpOwogCi0jaWZkZWYgVU5J Vl9ERUJVR19GSUxFX0FDQ0VTU0VTCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHX0ZJTEVfQUNDRVNT RVMgfHwgZGVmaW5lZCBVTklWX0RFQlVHCiAJdXRfYSghYmxvY2stPnBhZ2UuZmlsZV9wYWdlX3dh c19mcmVlZCk7CiAjZW5kaWYKIApAQCAtMzQzNiw3ICszNDM4LDcgQEAgYnVmX3BhZ2Vfb3B0aW1p c3RpY19nZXQoCiAJdXRfYShidWZfYmxvY2tfZ2V0X3N0YXRlKGJsb2NrKSA9PSBCVUZfQkxPQ0tf RklMRV9QQUdFKTsKICNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfQlVGX0RFQlVHICovCiAK LSNpZmRlZiBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUdf RklMRV9BQ0NFU1NFUyB8fCBkZWZpbmVkIFVOSVZfREVCVUcKIAl1dF9hKGJsb2NrLT5wYWdlLmZp bGVfcGFnZV93YXNfZnJlZWQgPT0gRkFMU0UpOwogI2VuZGlmCiAJaWYgKFVOSVZfVU5MSUtFTFko IWFjY2Vzc190aW1lKSkgewpAQCAtMzU0OCw3ICszNTUwLDcgQEAgYnVmX3BhZ2VfZ2V0X2tub3du X25vd2FpdCgKIAl1dF9hKGJsb2NrLT5wYWdlLmJ1Zl9maXhfY291bnQgPiAwKTsKIAl1dF9hKGJ1 Zl9ibG9ja19nZXRfc3RhdGUoYmxvY2spID09IEJVRl9CTE9DS19GSUxFX1BBR0UpOwogI2VuZGlm IC8qIFVOSVZfREVCVUcgfHwgVU5JVl9CVUZfREVCVUcgKi8KLSNpZmRlZiBVTklWX0RFQlVHX0ZJ TEVfQUNDRVNTRVMKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBkZWZp bmVkIFVOSVZfREVCVUcKIAl1dF9hKGJsb2NrLT5wYWdlLmZpbGVfcGFnZV93YXNfZnJlZWQgPT0g RkFMU0UpOwogI2VuZGlmCiAKQEAgLTM2MzcsOSArMzYzOSw5IEBAIGJ1Zl9wYWdlX3RyeV9nZXRf ZnVuYygKIAl1dF9hKGJsb2NrLT5wYWdlLmJ1Zl9maXhfY291bnQgPiAwKTsKIAl1dF9hKGJ1Zl9i bG9ja19nZXRfc3RhdGUoYmxvY2spID09IEJVRl9CTE9DS19GSUxFX1BBR0UpOwogI2VuZGlmIC8q IFVOSVZfREVCVUcgfHwgVU5JVl9CVUZfREVCVUcgKi8KLSNpZmRlZiBVTklWX0RFQlVHX0ZJTEVf QUNDRVNTRVMKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBkZWZpbmVk IFVOSVZfREVCVUcKIAl1dF9hKGJsb2NrLT5wYWdlLmZpbGVfcGFnZV93YXNfZnJlZWQgPT0gRkFM U0UpOwotI2VuZGlmIC8qIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyAqLworI2VuZGlmIC8qIFVO SVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBVTklWX0RFQlVHICovCiAJYnVmX2Jsb2NrX2RiZ19h ZGRfbGV2ZWwoYmxvY2ssIFNZTkNfTk9fT1JERVJfQ0hFQ0spOwogCiAJYnVmX3Bvb2wtPnN0YXQu bl9wYWdlX2dldHMrKzsKQEAgLTM2NjgsOSArMzY3MCw5IEBAIGJ1Zl9wYWdlX2luaXRfbG93KAog CWJwYWdlLT5uZXdlc3RfbW9kaWZpY2F0aW9uID0gMDsKIAlicGFnZS0+b2xkZXN0X21vZGlmaWNh dGlvbiA9IDA7CiAJSEFTSF9JTlZBTElEQVRFKGJwYWdlLCBoYXNoKTsKLSNpZmRlZiBVTklWX0RF QlVHX0ZJTEVfQUNDRVNTRVMKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8 fCBkZWZpbmVkIFVOSVZfREVCVUcKIAlicGFnZS0+ZmlsZV9wYWdlX3dhc19mcmVlZCA9IEZBTFNF OwotI2VuZGlmIC8qIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyAqLworI2VuZGlmIC8qIFVOSVZf REVCVUdfRklMRV9BQ0NFU1NFUyB8fCBVTklWX0RFQlVHICovCiB9CiAKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKQEAgLTQwNTcsOSArNDA1OSw5IEBAIGJ1Zl9wYWdlX2NyZWF0ZSgKICNpZmRlZiBVTklWX0lC VUZfQ09VTlRfREVCVUcKIAkJdXRfYShpYnVmX2NvdW50X2dldChzcGFjZSwgb2Zmc2V0KSA9PSAw KTsKICNlbmRpZgotI2lmZGVmIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUworI2lmIGRlZmluZWQg VU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTIHx8IGRlZmluZWQgVU5JVl9ERUJVRwogCQlibG9jay0+ cGFnZS5maWxlX3BhZ2Vfd2FzX2ZyZWVkID0gRkFMU0U7Ci0jZW5kaWYgLyogVU5JVl9ERUJVR19G SUxFX0FDQ0VTU0VTICovCisjZW5kaWYgLyogVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTIHx8IFVO SVZfREVCVUcgKi8KIAogCQkvKiBQYWdlIGNhbiBiZSBmb3VuZCBpbiBidWZfcG9vbCAqLwogCQli dWZfcG9vbF9tdXRleF9leGl0KGJ1Zl9wb29sKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2lubm9iYXNlL2ZzcC9mc3AwZnNwLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvZnNwL2ZzcDBm c3AuYwlyZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMTAyMDIwNzMwMTYtaXU4MnoxdWtu aXAxemF3ZworKysgYi9zdG9yYWdlL2lubm9iYXNlL2ZzcC9mc3AwZnNwLmMJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMTAyMDIxNDA4MzAteXp0a2llZGZqZDcybnZlOQpAQCAtMzQx OSw5ICszNDE5LDkgQEAgZnNlZ19mcmVlX3BhZ2UoCiAKIAlmc2VnX2ZyZWVfcGFnZV9sb3coc2Vn X2lub2RlLCBzcGFjZSwgemlwX3NpemUsIHBhZ2UsIG10cik7CiAKLSNpZmRlZiBVTklWX0RFQlVH X0ZJTEVfQUNDRVNTRVMKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBk ZWZpbmVkIFVOSVZfREVCVUcKIAlidWZfcGFnZV9zZXRfZmlsZV9wYWdlX3dhc19mcmVlZChzcGFj ZSwgcGFnZSk7Ci0jZW5kaWYKKyNlbmRpZiAvKiBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwg VU5JVl9ERUJVRyAqLwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKQEAgLTM0ODcsMTMgKzM0ODcs MTMgQEAgZnNlZ19mcmVlX2V4dGVudCgKIAogCWZzcF9mcmVlX2V4dGVudChzcGFjZSwgemlwX3Np emUsIHBhZ2UsIG10cik7CiAKLSNpZmRlZiBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMKKyNpZiBk ZWZpbmVkIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBkZWZpbmVkIFVOSVZfREVCVUcKIAlm b3IgKGkgPSAwOyBpIDwgRlNQX0VYVEVOVF9TSVpFOyBpKyspIHsKIAogCQlidWZfcGFnZV9zZXRf ZmlsZV9wYWdlX3dhc19mcmVlZChzcGFjZSwKIAkJCQkJCSBmaXJzdF9wYWdlX2luX2V4dGVudCAr IGkpOwogCX0KLSNlbmRpZgorI2VuZGlmIC8qIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUyB8fCBV TklWX0RFQlVHICovCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFz ZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlkOmppbW15LnlhbmdAb3JhY2xlLmNvbS0yMDExMDIwMjA3 MzAxNi1pdTgyejF1a25pcDF6YXdnCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGli dWYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDIwMjE0MDgzMC15enRraWVk ZmpkNzJudmU5CkBAIC0yMjc2LDkgKzIyNzYsOSBAQCBpYnVmX3JlbW92ZV9mcmVlX3BhZ2Uodm9p ZCkKIAlmc2VnX2ZyZWVfcGFnZShoZWFkZXJfcGFnZSArIElCVUZfSEVBREVSICsgSUJVRl9UUkVF X1NFR19IRUFERVIsCiAJCSAgICAgICBJQlVGX1NQQUNFX0lELCBwYWdlX25vLCAmbXRyKTsKIAot I2lmZGVmIFVOSVZfREVCVUdfRklMRV9BQ0NFU1NFUworI2lmIGRlZmluZWQgVU5JVl9ERUJVR19G SUxFX0FDQ0VTU0VTIHx8IGRlZmluZWQgVU5JVl9ERUJVRwogCWJ1Zl9wYWdlX3Jlc2V0X2ZpbGVf cGFnZV93YXNfZnJlZWQoSUJVRl9TUEFDRV9JRCwgcGFnZV9ubyk7Ci0jZW5kaWYKKyNlbmRpZiAv KiBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgVU5JVl9ERUJVRyAqLwogCiAJaWJ1Zl9lbnRl cigpOwogCkBAIC0yMzIyLDkgKzIzMjIsOSBAQCBpYnVmX3JlbW92ZV9mcmVlX3BhZ2Uodm9pZCkK IAlpYnVmX2JpdG1hcF9wYWdlX3NldF9iaXRzKAogCQliaXRtYXBfcGFnZSwgcGFnZV9ubywgemlw X3NpemUsIElCVUZfQklUTUFQX0lCVUYsIEZBTFNFLCAmbXRyKTsKIAotI2lmZGVmIFVOSVZfREVC VUdfRklMRV9BQ0NFU1NFUworI2lmIGRlZmluZWQgVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTIHx8 IGRlZmluZWQgVU5JVl9ERUJVRwogCWJ1Zl9wYWdlX3NldF9maWxlX3BhZ2Vfd2FzX2ZyZWVkKElC VUZfU1BBQ0VfSUQsIHBhZ2Vfbm8pOwotI2VuZGlmCisjZW5kaWYgLyogVU5JVl9ERUJVR19GSUxF X0FDQ0VTU0VTIHx8IFVOSVZfREVCVUcgKi8KIAltdHJfY29tbWl0KCZtdHIpOwogCiAJaWJ1Zl9l eGl0KCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBj dXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J0cjBjdXIuaAlyZXZpZDpqaW1t eS55YW5nQG9yYWNsZS5jb20tMjAxMTAyMDIwNzMwMTYtaXU4MnoxdWtuaXAxemF3ZworKysgYi9z dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMGN1ci5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTEwMjAyMTQwODMwLXl6dGtpZWRmamQ3Mm52ZTkKQEAgLTUwMSw4ICs1MDEsOCBA QCBmaWxlIHNlZ21lbnQgb2YgdGhlIGluZGV4IHRyZWUuCiBAcmV0dXJuCURCX1NVQ0NFU1Mgb3Ig REJfT1VUX09GX0ZJTEVfU1BBQ0UgKi8KIFVOSVZfSU5URVJOCiB1bGludAotYnRyX3N0b3JlX2Jp Z19yZWNfZXh0ZXJuX2ZpZWxkcygKLS8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiti dHJfc3RvcmVfYmlnX3JlY19leHRlcm5fZmllbGRzX2Z1bmMoCisvKj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSovCiAJZGljdF9pbmRleF90KglpbmRleCwJCS8qITwgaW46IGluZGV4 IG9mIHJlYzsgdGhlIGluZGV4IHRyZWUKIAkJCQkJTVVTVCBiZSBYLWxhdGNoZWQgKi8KIAlidWZf YmxvY2tfdCoJcmVjX2Jsb2NrLAkvKiE8IGluL291dDogYmxvY2sgY29udGFpbmluZyByZWMgKi8K QEAgLTUxMSwxMCArNTExLDQyIEBAIGJ0cl9zdG9yZV9iaWdfcmVjX2V4dGVybl9maWVsZHMoCiAJ CQkJCXRoZSAiZXh0ZXJuYWwgc3RvcmFnZSIgZmxhZ3MgaW4gb2Zmc2V0cwogCQkJCQl3aWxsIG5v dCBjb3JyZXNwb25kIHRvIHJlYyB3aGVuCiAJCQkJCXRoaXMgZnVuY3Rpb24gcmV0dXJucyAqLwot CWJpZ19yZWNfdCoJYmlnX3JlY192ZWMsCS8qITwgaW46IHZlY3RvciBjb250YWluaW5nIGZpZWxk cworI2lmZGVmIFVOSVZfREVCVUcKKwltdHJfdCoJCWxvY2FsX210ciwJLyohPCBpbjogbXRyIGNv bnRhaW5pbmcgdGhlCisJCQkJCWxhdGNoIHRvIHJlYyBhbmQgdG8gdGhlIHRyZWUgKi8KKyNlbmRp ZiAvKiBVTklWX0RFQlVHICovCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5J Vl9CTE9CX0xJR0hUX0RFQlVHCisJaWJvb2wJCXVwZGF0ZV9pbl9wbGFjZSwvKiEgaW46IFRSVUUg aWYgdGhlIHJlY29yZCBpcyB1cGRhdGVkCisJCQkJCWluIHBsYWNlIChub3QgZGVsZXRlK2luc2Vy dCkgKi8KKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfQkxPQl9MSUdIVF9ERUJVRyAqLwor CWNvbnN0IGJpZ19yZWNfdCpiaWdfcmVjX3ZlYykJLyohPCBpbjogdmVjdG9yIGNvbnRhaW5pbmcg ZmllbGRzCiAJCQkJCXRvIGJlIHN0b3JlZCBleHRlcm5hbGx5ICovCi0JbXRyX3QqCQlsb2NhbF9t dHIpOwkvKiE8IGluOiBtdHIgY29udGFpbmluZyB0aGUgbGF0Y2ggdG8KLQkJCQkJcmVjIGFuZCB0 byB0aGUgdHJlZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKKworLyoqIFN0b3JlcyB0 aGUgZmllbGRzIGluIGJpZ19yZWNfdmVjIHRvIHRoZSB0YWJsZXNwYWNlIGFuZCBwdXRzIHBvaW50 ZXJzIHRvCit0aGVtIGluIHJlYy4gIFRoZSBleHRlcm4gZmxhZ3MgaW4gcmVjIHdpbGwgaGF2ZSB0 byBiZSBzZXQgYmVmb3JlaGFuZC4KK1RoZSBmaWVsZHMgYXJlIHN0b3JlZCBvbiBwYWdlcyBhbGxv Y2F0ZWQgZnJvbSBsZWFmIG5vZGUKK2ZpbGUgc2VnbWVudCBvZiB0aGUgaW5kZXggdHJlZS4KK0Bw YXJhbSBpbmRleAlpbjogY2x1c3RlcmVkIGluZGV4OyBNVVNUIGJlIFgtbGF0Y2hlZCBieSBtdHIK K0BwYXJhbSBiCWluL291dDogYmxvY2sgY29udGFpbmluZyByZWM7IE1VU1QgYmUgWC1sYXRjaGVk IGJ5IG10cgorQHBhcmFtIHJlYwlpbi9vdXQ6IGNsdXN0ZXJlZCBpbmRleCByZWNvcmQKK0BwYXJh bSBvZmZzZXRzCWluOiByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCk7CisJCXRoZSAiZXh0ZXJu YWwgc3RvcmFnZSIgZmxhZ3MgaW4gb2Zmc2V0cyB3aWxsIG5vdCBiZSBhZGp1c3RlZAorQHBhcmFt IG10cglpbjogbWluaS10cmFuc2FjdGlvbiB0aGF0IGhvbGRzIHgtbGF0Y2ggb24gaW5kZXggYW5k IGIKK0BwYXJhbSB1cGQJaW46IFRSVUUgaWYgdGhlIHJlY29yZCBpcyB1cGRhdGVkIGluIHBsYWNl IChub3QgZGVsZXRlK2luc2VydCkKK0BwYXJhbSBiaWcJaW46IHZlY3RvciBjb250YWluaW5nIGZp ZWxkcyB0byBiZSBzdG9yZWQgZXh0ZXJuYWxseQorQHJldHVybglEQl9TVUNDRVNTIG9yIERCX09V VF9PRl9GSUxFX1NQQUNFICovCisjaWZkZWYgVU5JVl9ERUJVRworIyBkZWZpbmUgYnRyX3N0b3Jl X2JpZ19yZWNfZXh0ZXJuX2ZpZWxkcyhpbmRleCxiLHJlYyxvZmZzZXRzLG10cix1cGQsYmlnKSBc CisJYnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkc19mdW5jKGluZGV4LGIscmVjLG9mZnNl dHMsbXRyLHVwZCxiaWcpCisjZWxpZiBkZWZpbmVkIFVOSVZfQkxPQl9MSUdIVF9ERUJVRworIyBk ZWZpbmUgYnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkcyhpbmRleCxiLHJlYyxvZmZzZXRz LG10cix1cGQsYmlnKSBcCisJYnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkc19mdW5jKGlu ZGV4LGIscmVjLG9mZnNldHMsdXBkLGJpZykKKyNlbHNlCisjIGRlZmluZSBidHJfc3RvcmVfYmln X3JlY19leHRlcm5fZmllbGRzKGluZGV4LGIscmVjLG9mZnNldHMsbXRyLHVwZCxiaWcpIFwKKwli dHJfc3RvcmVfYmlnX3JlY19leHRlcm5fZmllbGRzX2Z1bmMoaW5kZXgsYixyZWMsb2Zmc2V0cyxi aWcpCisjZW5kaWYKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBGcmVlcyB0aGUgc3BhY2UgaW4gYW4gZXh0 ZXJuYWxseSBzdG9yZWQgZmllbGQgdG8gdGhlIGZpbGUgc3BhY2UKIG1hbmFnZW1lbnQgaWYgdGhl IGZpZWxkIGluIGRhdGEgaXMgb3duZWQgdGhlIGV4dGVybmFsbHkgc3RvcmVkIGZpZWxkLAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwYnVmLmgnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwYnVmLmgJcmV2aWQ6amltbXkueWFuZ0BvcmFj bGUuY29tLTIwMTEwMjAyMDczMDE2LWl1ODJ6MXVrbmlwMXphd2cKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL2J1ZjBidWYuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEx MDIwMjE0MDgzMC15enRraWVkZmpkNzJudmU5CkBAIC00ODUsNyArNDg1LDcgQEAgYnVmX3Jlc2V0 X2NoZWNrX2luZGV4X3BhZ2VfYXRfZmx1c2goCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ki8KIAl1bGludAlzcGFjZSwJLyohPCBpbjogc3BhY2UgaWQgKi8KIAl1bGludAlvZmZz ZXQpOy8qITwgaW46IHBhZ2UgbnVtYmVyICovCi0jaWZkZWYgVU5JVl9ERUJVR19GSUxFX0FDQ0VT U0VTCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgZGVmaW5lZCBVTklW X0RFQlVHCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCiBTZXRzIGZpbGVfcGFnZV93YXNfZnJlZWQgVFJVRSBp ZiB0aGUgcGFnZSBpcyBmb3VuZCBpbiB0aGUgYnVmZmVyIHBvb2wuCiBUaGlzIGZ1bmN0aW9uIHNo b3VsZCBiZSBjYWxsZWQgd2hlbiB3ZSBmcmVlIGEgZmlsZSBwYWdlIGFuZCB3YW50IHRoZQpAQCAt NTEwLDcgKzUxMCw3IEBAIGJ1Zl9wYWdlX3Jlc2V0X2ZpbGVfcGFnZV93YXNfZnJlZWQoCiAvKj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCXVsaW50CXNwYWNlLAkvKiE8IGluOiBz cGFjZSBpZCAqLwogCXVsaW50CW9mZnNldCk7CS8qITwgaW46IHBhZ2UgbnVtYmVyICovCi0jZW5k aWYgLyogVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTICovCisjZW5kaWYgLyogVU5JVl9ERUJVR19G SUxFX0FDQ0VTU0VTIHx8IFVOSVZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJlYWRzIHRo ZSBmcmVlZF9wYWdlX2Nsb2NrIG9mIGEgYnVmZmVyIGJsb2NrLgogQHJldHVybglmcmVlZF9wYWdl X2Nsb2NrICovCkBAIC0xNDkxLDExICsxNDkxLDExIEBAIHN0cnVjdCBidWZfcGFnZV9zdHJ1Y3R7 CiAJCQkJCTAgaWYgdGhlIGJsb2NrIHdhcyBuZXZlciBhY2Nlc3NlZAogCQkJCQlpbiB0aGUgYnVm ZmVyIHBvb2wgKi8KIAkvKiBAfSAqLwotIyBpZmRlZiBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMK KyMgaWYgZGVmaW5lZCBVTklWX0RFQlVHX0ZJTEVfQUNDRVNTRVMgfHwgZGVmaW5lZCBVTklWX0RF QlVHCiAJaWJvb2wJCWZpbGVfcGFnZV93YXNfZnJlZWQ7CiAJCQkJCS8qITwgdGhpcyBpcyBzZXQg dG8gVFJVRSB3aGVuIGZzcAogCQkJCQlmcmVlcyBhIHBhZ2UgaW4gYnVmZmVyIHBvb2wgKi8KLSMg ZW5kaWYgLyogVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTICovCisjIGVuZGlmIC8qIFVOSVZfREVC VUdfRklMRV9BQ0NFU1NFUyB8fCBVTklWX0RFQlVHICovCiAjZW5kaWYgLyogIVVOSVZfSE9UQkFD S1VQICovCiB9OwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L3VuaXYuaScKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3VuaXYuaQlyZXZpZDpqaW1t eS55YW5nQG9yYWNsZS5jb20tMjAxMTAyMDIwNzMwMTYtaXU4MnoxdWtuaXAxemF3ZworKysgYi9z dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdW5pdi5pCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwMjAyMTQwODMwLXl6dGtpZWRmamQ3Mm52ZTkKQEAgLTE3OSwxNCArMTc5LDE1IEBA IGNvbW1hbmQuIE5vdCB0ZXN0ZWQgb24gV2luZG93cy4gKi8KIAkJCQkJCWRlYnVnZ2luZyB3aXRo b3V0IFVOSVZfREVCVUcgKi8KICNkZWZpbmUgVU5JVl9CVUZfREVCVUcJCQkJLyogRW5hYmxlIGJ1 ZmZlciBwb29sCiAJCQkJCQlkZWJ1Z2dpbmcgd2l0aG91dCBVTklWX0RFQlVHICovCisjZGVmaW5l IFVOSVZfQkxPQl9MSUdIVF9ERUJVRwkJCS8qIEVuYWJsZSBvZmYtcGFnZSBjb2x1bW4KKwkJCQkJ CWRlYnVnZ2luZyB3aXRob3V0IFVOSVZfREVCVUcgKi8KICNkZWZpbmUgVU5JVl9ERUJVRwkJCQkv KiBFbmFibGUgdXRfYWQoKSBhc3NlcnRpb25zCiAJCQkJCQlhbmQgZGlzYWJsZSBVTklWX0lOTElO RSAqLwogI2RlZmluZSBVTklWX0RFQlVHX0xPQ0tfVkFMSURBVEUJCS8qIEVuYWJsZQogCQkJCQkJ dXRfYWQobG9ja19yZWNfdmFsaWRhdGVfcGFnZSgpKQogCQkJCQkJYXNzZXJ0aW9ucy4gKi8KLSNk ZWZpbmUgVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTCQkvKiBEZWJ1ZyAuaWJkIGZpbGUgYWNjZXNz Ci0JCQkJCQkoZmllbGQgZmlsZV9wYWdlX3dhc19mcmVlZAotCQkJCQkJaW4gYnVmX3BhZ2VfdCkg Ki8KKyNkZWZpbmUgVU5JVl9ERUJVR19GSUxFX0FDQ0VTU0VTCQkvKiBFbmFibGUgZnJlZWQgYmxv Y2sgYWNjZXNzCisJCQkJCQlkZWJ1Z2dpbmcgd2l0aG91dCBVTklWX0RFQlVHICovCiAjZGVmaW5l IFVOSVZfTFJVX0RFQlVHCQkJCS8qIGRlYnVnIHRoZSBidWZmZXIgcG9vbCBMUlUgKi8KICNkZWZp bmUgVU5JVl9IQVNIX0RFQlVHCQkJCS8qIGRlYnVnIEhBU0hfIG1hY3JvcyAqLwogI2RlZmluZSBV TklWX0xJU1RfREVCVUcJCQkJLyogZGVidWcgVVRfTElTVF8gbWFjcm9zICovCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGlucy5jJwotLS0gYS9zdG9yYWdlL2lu bm9iYXNlL3Jvdy9yb3cwaW5zLmMJcmV2aWQ6amltbXkueWFuZ0BvcmFjbGUuY29tLTIwMTEwMjAy MDczMDE2LWl1ODJ6MXVrbmlwMXphd2cKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGlu cy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMjAyMTQwODMwLXl6dGtpZWRm amQ3Mm52ZTkKQEAgLTIxNDYsNyArMjE0Niw3IEBAIGZ1bmN0aW9uX2V4aXQ6CiAKIAkJZXJyID0g YnRyX3N0b3JlX2JpZ19yZWNfZXh0ZXJuX2ZpZWxkcygKIAkJCWluZGV4LCBidHJfY3VyX2dldF9i bG9jaygmY3Vyc29yKSwKLQkJCXJlYywgb2Zmc2V0cywgYmlnX3JlYywgJm10cik7CisJCQlyZWMs IG9mZnNldHMsICZtdHIsIEZBTFNFLCBiaWdfcmVjKTsKIAogCQlpZiAobW9kaWZ5KSB7CiAJCQlk dHVwbGVfYmlnX3JlY19mcmVlKGJpZ19yZWMpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv aW5ub2Jhc2Uvcm93L3JvdzBwdXJnZS5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw cHVyZ2UuYwlyZXZpZDpqaW1teS55YW5nQG9yYWNsZS5jb20tMjAxMTAyMDIwNzMwMTYtaXU4Mnox dWtuaXAxemF3ZworKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwcHVyZ2UuYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDIwMjE0MDgzMC15enRraWVkZmpkNzJudmU5CkBA IC03NjksNyArNzY5LDcgQEAgcm93X3B1cmdlX3JlY29yZF9mdW5jKAogRmV0Y2hlcyBhbiB1bmRv IGxvZyByZWNvcmQgYW5kIGRvZXMgdGhlIHB1cmdlIGZvciB0aGUgcmVjb3JkZWQgb3BlcmF0aW9u LgogSWYgbm9uZSBsZWZ0LCBvciB0aGUgY3VycmVudCBwdXJnZSBjb21wbGV0ZWQsIHJldHVybnMg dGhlIGNvbnRyb2wgdG8gdGhlCiBwYXJlbnQgbm9kZSwgd2hpY2ggaXMgYWx3YXlzIGEgcXVlcnkg dGhyZWFkIG5vZGUuICovCi1zdGF0aWMKK3N0YXRpYyBfX2F0dHJpYnV0ZV9fKChub25udWxsKSkK IHZvaWQKIHJvd19wdXJnZSgKIC8qPT09PT09Ki8KQEAgLTc3Nyw3ICs3NzcsOCBAQCByb3dfcHVy Z2UoCiAJdHJ4X3VuZG9fcmVjX3QqCXVuZG9fcmVjLAkvKiE8IGluOiByZWNvcmQgdG8gcHVyZ2Ug Ki8KIAlxdWVfdGhyX3QqCXRocikJCS8qITwgaW46IHF1ZXJ5IHRocmVhZCAqLwogewotCXV0X2Fk KG5vZGUgJiYgdGhyKTsKKwl1dF9hZChub2RlKTsKKwl1dF9hZCh0aHIpOwogCiAJaWYgKHVuZG9f cmVjICE9ICZ0cnhfcHVyZ2VfZHVtbXlfcmVjKSB7CiAJCWlib29sCXVwZGF0ZWRfZXh0ZXJuOwoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1bW9kLmMnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1bW9kLmMJcmV2aWQ6amltbXkueWFuZ0BvcmFjbGUu Y29tLTIwMTEwMjAyMDczMDE2LWl1ODJ6MXVrbmlwMXphd2cKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MHVtb2QuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDIwMjE0 MDgzMC15enRraWVkZmpkNzJudmU5CkBAIC0xNzMsNDAgKzE3MywyNiBAQCByb3dfdW5kb19tb2Rf cmVtb3ZlX2NsdXN0X2xvdygKIAltdHJfdCoJCW10ciwJLyohPCBpbjogbXRyICovCiAJdWxpbnQJ CW1vZGUpCS8qITwgaW46IEJUUl9NT0RJRllfTEVBRiBvciBCVFJfTU9ESUZZX1RSRUUgKi8KIHsK LQlidHJfcGN1cl90KglwY3VyOwogCWJ0cl9jdXJfdCoJYnRyX2N1cjsKIAl1bGludAkJZXJyOwot CWlib29sCQlzdWNjZXNzOwogCiAJdXRfYWQobm9kZS0+cmVjX3R5cGUgPT0gVFJYX1VORE9fVVBE X0RFTF9SRUMpOwotCXBjdXIgPSAmKG5vZGUtPnBjdXIpOwotCWJ0cl9jdXIgPSBidHJfcGN1cl9n ZXRfYnRyX2N1cihwY3VyKTsKIAotCXN1Y2Nlc3MgPSBidHJfcGN1cl9yZXN0b3JlX3Bvc2l0aW9u KG1vZGUsIHBjdXIsIG10cik7CisJLyogRmluZCBvdXQgaWYgdGhlIHJlY29yZCBoYXMgYmVlbiBw dXJnZWQgYWxyZWFkeQorCW9yIGlmIHdlIGNhbiByZW1vdmUgaXQuICovCiAKLQlpZiAoIXN1Y2Nl c3MpIHsKKwlpZiAoIWJ0cl9wY3VyX3Jlc3RvcmVfcG9zaXRpb24obW9kZSwgJm5vZGUtPnBjdXIs IG10cikKKwkgICAgfHwgcm93X3ZlcnNfbXVzdF9wcmVzZXJ2ZV9kZWxfbWFya2VkKG5vZGUtPm5l d190cnhfaWQsIG10cikpIHsKIAogCQlyZXR1cm4oREJfU1VDQ0VTUyk7CiAJfQogCi0JLyogRmlu ZCBvdXQgaWYgd2UgY2FuIHJlbW92ZSB0aGUgd2hvbGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZCAq LwotCi0JaWYgKG5vZGUtPnJlY190eXBlID09IFRSWF9VTkRPX1VQRF9ERUxfUkVDCi0JICAgICYm ICFyb3dfdmVyc19tdXN0X3ByZXNlcnZlX2RlbF9tYXJrZWQobm9kZS0+bmV3X3RyeF9pZCwgbXRy KSkgewotCi0JCS8qIE9rLCB3ZSBjYW4gcmVtb3ZlICovCi0JfSBlbHNlIHsKLQkJcmV0dXJuKERC X1NVQ0NFU1MpOwotCX0KKwlidHJfY3VyID0gYnRyX3BjdXJfZ2V0X2J0cl9jdXIoJm5vZGUtPnBj dXIpOwogCiAJaWYgKG1vZGUgPT0gQlRSX01PRElGWV9MRUFGKSB7Ci0JCXN1Y2Nlc3MgPSBidHJf Y3VyX29wdGltaXN0aWNfZGVsZXRlKGJ0cl9jdXIsIG10cik7Ci0KLQkJaWYgKHN1Y2Nlc3MpIHsK LQkJCWVyciA9IERCX1NVQ0NFU1M7Ci0JCX0gZWxzZSB7Ci0JCQllcnIgPSBEQl9GQUlMOwotCQl9 CisJCWVyciA9IGJ0cl9jdXJfb3B0aW1pc3RpY19kZWxldGUoYnRyX2N1ciwgbXRyKQorCQkJPyBE Ql9TVUNDRVNTCisJCQk6IERCX0ZBSUw7CiAJfSBlbHNlIHsKIAkJdXRfYWQobW9kZSA9PSBCVFJf TU9ESUZZX1RSRUUpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MHVwZC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmMJcmV2aWQ6amlt bXkueWFuZ0BvcmFjbGUuY29tLTIwMTEwMjAyMDczMDE2LWl1ODJ6MXVrbmlwMXphd2cKKysrIGIv c3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUu Y29tLTIwMTEwMjAyMTQwODMwLXl6dGtpZWRmamQ3Mm52ZTkKQEAgLTE5NzgsNyArMTk3OCw3IEBA IHJvd191cGRfY2x1c3RfcmVjKAogCQkJaW5kZXgsIGJ0cl9jdXJfZ2V0X2Jsb2NrKGJ0cl9jdXIp LCByZWMsCiAJCQlyZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCwgb2Zmc2V0c18sCiAJCQkJCVVM SU5UX1VOREVGSU5FRCwgJmhlYXApLAotCQkJYmlnX3JlYywgbXRyKTsKKwkJCW10ciwgVFJVRSwg YmlnX3JlYyk7CiAJCW10cl9jb21taXQobXRyKTsKIAl9CiAKCg== --===============0101070385== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.6-innodb/ # testament_sha1: af47a1829d5c9b809e954c83c1b37c6939c58efd # timestamp: 2011-02-02 16:09:44 +0200 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: jimmy.yang@stripped\ # iu82z1uknip1zawg # # Begin bundle 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 --===============0101070385==--