From: marko.makela Date: June 29 2010 11:33am Subject: bzr commit into mysql-trunk-innodb branch (marko.makela:3126) Bug#52199 List-Archive: http://lists.mysql.com/commits/112444 X-Bug: 52199 Message-Id: <201006291133.o5TBXIdM017032@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1042648653==" --===============1042648653== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjUtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6 c3Q0NTMyZmRvaXgKCiAzMTI2IE1hcmtvIE3DpGtlbMOkCTIwMTAtMDYtMjkKICAgICAgQnVnIzUy MTk5IHV0ZjMyOiBtYm1pbmxlbj00LCBtYm1heGxlbj00LCB0eXBlLT5tYm1pbmxlbj0wLCB0eXBl LT5tYm1heGxlbj00CiAgICAgIAogICAgICBNZXJnZSBhbmQgYWRqdXN0IGEgZm9yZ290dGVuIGNo YW5nZSB0byBmaXggdGhpcyBidWcuCiAgICAgIHJiOi8vMzkzIGFwcHJvdmVkIGJ5IEppbW15IFlh bmcKICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICByMzc5NCB8IG1hcmtvIHwgMjAwOS0w MS0wNyAxNDoxNDo1MyArMDAwMCAoV2VkLCAwNyBKYW4gMjAwOSkgfCAxOCBsaW5lcwogICAgICAK ICAgICAgICBicmFuY2hlcy82LjA6IEFsbG93IHRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhIG11bHRp LWJ5dGUgY2hhcmFjdGVyIHRvIGJlCiAgICAgICAgdXAgdG8gNCBieXRlcy4gKEJ1ZyAjMzUzOTEp CiAgICAgIAogICAgICAgIGR0eXBlX3QsIGRpY3RfY29sX3Q6IFJlcGxhY2UgbWJtaW5sZW46Miwg bWJtYXhsZW46MyB3aXRoIG1ibWlubWF4bGVuOjUuCiAgICAgICAgSW4gdGhpcyB3YXksIHRoZSA1 IGJpdHMgY2FuIGhvbGQgdHdvIHZhbHVlcyBvZiAwLi40LCBhbmQgdGhlIHN0b3JhZ2Ugc2l6ZQog ICAgICAgIG9mIHRoZSBmaWVsZHMgd2lsbCBub3QgY3Jvc3MgdGhlIDY0LWJpdCBib3VuZGFyeS4g IEVuY29kZSB0aGUgdmFsdWVzIGFzCiAgICAgICAgREFUQV9NQk1BWCAqIG1ibWF4bGVuICsgbWJt aW5sZW4uICBEZWZpbmUgdGhlIGF1eGlsaWFyeSBtYWNyb3MKICAgICAgICBEQl9NQk1JTkxFTiht Ym1pbm1heGxlbiksIERCX01CTUFYTEVOKG1ibWlubWF4bGVuKSwgYW5kCiAgICAgICAgREJfTUlO TUFYTEVOKG1ibWlubGVuLCBtYm1heGxlbikuCiAgICAgIAogICAgICAgIFRyeSB0byB0cmltIGFu ZCBwYWQgVVRGLTE2IGFuZCBVVEYtMzIgd2l0aCBzcGFjZXMgYXMgYXBwcm9wcmlhdGUuCiAgICAg IAogICAgICAgIEFsZXhhbmRlciBCYXJrb3Ygc3VnZ2VzdGVkIHRoZSB1c2Ugb2YgY3MtPmNzZXQt PmZpbGwoY3MsIGJ1ZmYsIGxlbiwgMHgyMCkuCiAgICAgICAgaGFfaW5ub2Jhc2U6OnN0b3JlX2tl eV92YWxfZm9yX3JvdygpIG5vdyBkb2VzIHRoYXQsIGJ1dCB0aGUgYWRkZWQgZnVuY3Rpb24KICAg ICAgICByb3dfbXlzcWxfcGFkX2NvbCgpIGRvZXMgbm90LCBiZWNhdXNlIGl0IGRvZXNuJ3QgaGF2 ZSB0aGUgTXlTUUwgVEFCTEUgb2JqZWN0LgogICAgICAKICAgICAgICByYjovLzQ5IGFwcHJvdmVk IGJ5IEhlaWtraSBUdXVyaQogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIGFkZGVkOgogICAg ICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1MjE5OS5yZXN1bHQKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTIxOTkudGVzdAogICAgbW9kaWZp ZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvZGF0YS9kYXRhMHR5cGUuYwogICAgICBzdG9yYWdl L2lubm9iYXNlL2RpY3QvZGljdDBtZW0uYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIv aGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVy LmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kYXRhMHR5cGUuaAogICAgICBzdG9y YWdlL2lubm9iYXNlL2luY2x1ZGUvZGF0YTB0eXBlLmljCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9kaWN0MGRpY3QuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGljdDBk aWN0LmljCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MG1lbS5oCiAgICAgIHN0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MG1lbS5pYwogICAgICBzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvcm93MG15c3FsLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MGlucy5j CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jCiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2Uvcm93L3JvdzBteXNxbC5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzByb3cu YwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9yb3cvcm93MHVwZC5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB0cnguYwo9 PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTIxOTku cmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1MjE5OS5y ZXN1bHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lu bm9kYi9yL2lubm9kYl9idWc1MjE5OS5yZXN1bHQJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMDA2MjkxMTMyNDgtZnZsNDhsbnpyNDR6OTRnZwpAQCAtMCwwICsxLDUgQEAKK0NSRUFU RSBUQUJMRSBidWc1MjE5OSAoYSBJTlQgTk9UIE5VTEwsCitiIENIQVIoMTI1KSBDSEFSQUNURVIg U0VUIHV0ZjMyIENPTExBVEUgdXRmMzJfYmluIE5PVCBOVUxMCispRU5HSU5FPUlubm9EQjsKK0NS RUFURSBVTklRVUUgSU5ERVggaWR4IE9OIGJ1ZzUyMTk5KGEpOworRFJPUCBUQUJMRSBidWc1MjE5 OTsKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1 MjE5OS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1MjE5 OS50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9p bm5vZGIvdC9pbm5vZGJfYnVnNTIxOTkudGVzdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0NHo5NGdnCkBAIC0wLDAgKzEsNyBAQAorLS0gc291 cmNlIGluY2x1ZGUvaGF2ZV9pbm5vZGIuaW5jCisKK0NSRUFURSBUQUJMRSBidWc1MjE5OSAoYSBJ TlQgTk9UIE5VTEwsCitiIENIQVIoMTI1KSBDSEFSQUNURVIgU0VUIHV0ZjMyIENPTExBVEUgdXRm MzJfYmluIE5PVCBOVUxMCispRU5HSU5FPUlubm9EQjsKK0NSRUFURSBVTklRVUUgSU5ERVggaWR4 IE9OIGJ1ZzUyMTk5KGEpOworRFJPUCBUQUJMRSBidWc1MjE5OTsKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9iYXNlL2RhdGEvZGF0YTB0eXBlLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jh c2UvZGF0YS9kYXRhMHR5cGUuYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4 MTI1MjI0LXY2bTl6c3Q0NTMyZmRvaXgKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9kYXRhL2RhdGEw dHlwZS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2bDQ4 bG56cjQ0ejk0Z2cKQEAgLTQ5LDEwICs0OSw4IEBAIHVsaW50CiBkdHlwZV9nZXRfYXRfbW9zdF9u X21iY2hhcnMoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PSovCiAJdWxpbnQJCXBydHlwZSwJ CS8qITwgaW46IHByZWNpc2UgdHlwZSAqLwotCXVsaW50CQltYm1pbmxlbiwJLyohPCBpbjogbWlu aW11bSBsZW5ndGggb2YgYQotCQkJCQltdWx0aS1ieXRlIGNoYXJhY3RlciAqLwotCXVsaW50CQlt Ym1heGxlbiwJLyohPCBpbjogbWF4aW11bSBsZW5ndGggb2YgYQotCQkJCQltdWx0aS1ieXRlIGNo YXJhY3RlciAqLworCXVsaW50CQltYm1pbm1heGxlbiwJLyohPCBpbjogbWluaW11bSBhbmQgbWF4 aW11bSBsZW5ndGggb2YKKwkJCQkJYSBtdWx0aS1ieXRlIGNoYXJhY3RlciAqLwogCXVsaW50CQlw cmVmaXhfbGVuLAkvKiE8IGluOiBsZW5ndGggb2YgdGhlIHJlcXVlc3RlZAogCQkJCQlwcmVmaXgs IGluIGNoYXJhY3RlcnMsIG11bHRpcGxpZWQgYnkKIAkJCQkJZHR5cGVfZ2V0X21ibWF4bGVuKGR0 eXBlKSAqLwpAQCAtNjAsNiArNTgsOSBAQCBkdHlwZV9nZXRfYXRfbW9zdF9uX21iY2hhcnMoCiAJ Y29uc3QgY2hhcioJc3RyKQkJLyohPCBpbjogdGhlIHN0cmluZyB3aG9zZSBwcmVmaXgKIAkJCQkJ bGVuZ3RoIGlzIGJlaW5nIGRldGVybWluZWQgKi8KIHsKKwl1bGludAltYm1pbmxlbiA9IERBVEFf TUJNSU5MRU4obWJtaW5tYXhsZW4pOworCXVsaW50CW1ibWF4bGVuID0gREFUQV9NQk1BWExFTiht Ym1pbm1heGxlbik7CisKIAl1dF9hKGRhdGFfbGVuICE9IFVOSVZfU1FMX05VTEwpOwogCXV0X2Fk KCFtYm1heGxlbiB8fCAhKHByZWZpeF9sZW4gJSBtYm1heGxlbikpOwogCkBAIC0xODAsNyArMTgx LDcgQEAgZHR5cGVfdmFsaWRhdGUoCiAJfQogCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCi0JdXRf YSh0eXBlLT5tYm1pbmxlbiA8PSB0eXBlLT5tYm1heGxlbik7CisJdXRfYShkdHlwZV9nZXRfbWJt aW5sZW4odHlwZSkgPD0gZHR5cGVfZ2V0X21ibWF4bGVuKHR5cGUpKTsKICNlbmRpZiAvKiAhVU5J Vl9IT1RCQUNLVVAgKi8KIAogCXJldHVybihUUlVFKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2lubm9iYXNlL2RpY3QvZGljdDBtZW0uYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9kaWN0 L2RpY3QwbWVtLmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMDYyODEyNTIyNC12 Nm05enN0NDUzMmZkb2l4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvZGljdC9kaWN0MG1lbS5jCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2bDQ4bG56cjQ0ejk0 Z2cKQEAgLTIwNiw2ICsyMDYsMzcgQEAgZGljdF9tZW1fdGFibGVfYWRkX2NvbCgKIAlkaWN0X21l bV9maWxsX2NvbHVtbl9zdHJ1Y3QoY29sLCBpLCBtdHlwZSwgcHJ0eXBlLCBsZW4pOwogfQogCisK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgorVGhpcyBmdW5jdGlvbiBwb3B1bGF0ZXMgYSBkaWN0X2NvbF90 IG1lbW9yeSBzdHJ1Y3R1cmUgd2l0aAorc3VwcGxpZWQgaW5mb3JtYXRpb24uICovCitVTklWX0lO VEVSTgordm9pZAorZGljdF9tZW1fZmlsbF9jb2x1bW5fc3RydWN0KAorLyo9PT09PT09PT09PT09 PT09PT09PT09PT0qLworCWRpY3RfY29sX3QqCWNvbHVtbiwJCS8qITwgb3V0OiBjb2x1bW4gc3Ry dWN0IHRvIGJlCisJCQkJCWZpbGxlZCAqLworCXVsaW50CQljb2xfcG9zLAkvKiE8IGluOiBjb2x1 bW4gcG9zaXRpb24gKi8KKwl1bGludAkJbXR5cGUsCQkvKiE8IGluOiBtYWluIGRhdGEgdHlwZSAq LworCXVsaW50CQlwcnR5cGUsCQkvKiE8IGluOiBwcmVjaXNlIHR5cGUgKi8KKwl1bGludAkJY29s X2xlbikJLyohPCBpbjogY29sdW1uIGxlbmd0aCAqLworeworI2lmbmRlZiBVTklWX0hPVEJBQ0tV UAorCXVsaW50CW1ibWlubGVuOworCXVsaW50CW1ibWF4bGVuOworI2VuZGlmIC8qICFVTklWX0hP VEJBQ0tVUCAqLworCisJY29sdW1uLT5pbmQgPSAodW5zaWduZWQgaW50KSBjb2xfcG9zOworCWNv bHVtbi0+b3JkX3BhcnQgPSAwOworCWNvbHVtbi0+bXR5cGUgPSAodW5zaWduZWQgaW50KSBtdHlw ZTsKKwljb2x1bW4tPnBydHlwZSA9ICh1bnNpZ25lZCBpbnQpIHBydHlwZTsKKwljb2x1bW4tPmxl biA9ICh1bnNpZ25lZCBpbnQpIGNvbF9sZW47CisjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCisgICAg ICAgIGR0eXBlX2dldF9tYmxlbihtdHlwZSwgcHJ0eXBlLCAmbWJtaW5sZW4sICZtYm1heGxlbik7 CisJZGljdF9jb2xfc2V0X21ibWlubWF4bGVuKGNvbHVtbiwgbWJtaW5sZW4sIG1ibWF4bGVuKTsK KyNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KK30KKwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBD cmVhdGVzIGFuIGluZGV4IG1lbW9yeSBvYmplY3QuCiBAcmV0dXJuCW93bjogaW5kZXggb2JqZWN0 ICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9k Yi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDp2 YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6c3Q0NTMyZmRvaXgKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0NHo5NGdnCkBAIC0xMDM2LDYg KzEwMzYsOCBAQCBpbm5vYmFzZV9nZXRfY3NldF93aWR0aCgKIAlpZiAoY3MpIHsKIAkJKm1ibWlu bGVuID0gY3MtPm1ibWlubGVuOwogCQkqbWJtYXhsZW4gPSBjcy0+bWJtYXhsZW47CisJCXV0X2Fk KCptYm1pbmxlbiA8IERBVEFfTUJNQVgpOworCQl1dF9hZCgqbWJtYXhsZW4gPCBEQVRBX01CTUFY KTsKIAl9IGVsc2UgewogCQlUSEQqCXRoZCA9IGN1cnJlbnRfdGhkOwogCkBAIC00NDMzLDE1ICs0 NDM1LDE0IEBAIGhhX2lubm9iYXNlOjpzdG9yZV9rZXlfdmFsX2Zvcl9yb3coCiAJCQltZW1jcHko YnVmZiwgc3JjX3N0YXJ0LCB0cnVlX2xlbik7CiAJCQlidWZmICs9IHRydWVfbGVuOwogCi0JCQkv KiBQYWQgdGhlIHVudXNlZCBzcGFjZSB3aXRoIHNwYWNlcy4gTm90ZSB0aGF0IG5vCi0JCQlwYWRk aW5nIGlzIGV2ZXIgbmVlZGVkIGZvciBVQ1MtMiBiZWNhdXNlIGluIE15U1FMLAotCQkJYWxsIFVD UzIgY2hhcmFjdGVycyBhcmUgMiBieXRlcywgYXMgTXlTUUwgZG9lcyBub3QKLQkJCXN1cHBvcnQg c3Vycm9nYXRlIHBhaXJzLCB3aGljaCBhcmUgbmVlZGVkIHRvIHJlcHJlc2VudAotCQkJY2hhcmFj dGVycyBpbiB0aGUgcmFuZ2UgVSsxMDAwMCB0byBVKzEwRkZGRi4gKi8KKwkJCS8qIFBhZCB0aGUg dW51c2VkIHNwYWNlIHdpdGggc3BhY2VzLiAqLwogCiAJCQlpZiAodHJ1ZV9sZW4gPCBrZXlfbGVu KSB7Ci0JCQkJdWxpbnQgcGFkX2xlbiA9IGtleV9sZW4gLSB0cnVlX2xlbjsKLQkJCQltZW1zZXQo YnVmZiwgJyAnLCBwYWRfbGVuKTsKKwkJCQl1bGludAlwYWRfbGVuID0ga2V5X2xlbiAtIHRydWVf bGVuOworCQkJCXV0X2EoIShwYWRfbGVuICUgY3MtPm1ibWlubGVuKSk7CisKKwkJCQljcy0+Y3Nl dC0+ZmlsbChjcywgYnVmZiwgcGFkX2xlbiwKKwkJCQkJICAgICAgIDB4MjAgLyogc3BhY2UgKi8p OwogCQkJCWJ1ZmYgKz0gcGFkX2xlbjsKIAkJCX0KIAkJfQpAQCAtNDU1MCw2ICs0NTUxLDcgQEAg YnVpbGRfdGVtcGxhdGUoCiAJLyogTm90ZSB0aGF0IGluIElubm9EQiwgaSBpcyB0aGUgY29sdW1u IG51bWJlci4gTXlTUUwgY2FsbHMgY29sdW1ucwogCSdmaWVsZHMnLiAqLwogCWZvciAoaSA9IDA7 IGkgPCBuX2ZpZWxkczsgaSsrKSB7CisJCWNvbnN0IGRpY3RfY29sX3QqIGNvbCA9ICZpbmRleC0+ dGFibGUtPmNvbHNbaV07CiAJCXRlbXBsID0gcHJlYnVpbHQtPm15c3FsX3RlbXBsYXRlICsgbl9y ZXF1ZXN0ZWRfZmllbGRzOwogCQlmaWVsZCA9IHRhYmxlLT5maWVsZFtpXTsKIApAQCAtNDU5OCw3 ICs0NjAwLDcgQEAgaW5jbHVkZV9maWVsZDoKIAogCQlpZiAoaW5kZXggPT0gY2x1c3RfaW5kZXgp IHsKIAkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSBkaWN0X2NvbF9nZXRfY2x1c3RfcG9zKAotCQkJ CSZpbmRleC0+dGFibGUtPmNvbHNbaV0sIGluZGV4KTsKKwkJCQljb2wsIGluZGV4KTsKIAkJfSBl bHNlIHsKIAkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSBkaWN0X2luZGV4X2dldF9udGhfY29sX3Bv cygKIAkJCQkJCQkJaW5kZXgsIGkpOwpAQCAtNDYyNyw3ICs0NjI5LDcgQEAgaW5jbHVkZV9maWVs ZDoKIAkJCW15c3FsX3ByZWZpeF9sZW4gPSB0ZW1wbC0+bXlzcWxfY29sX29mZnNldAogCQkJCSsg dGVtcGwtPm15c3FsX2NvbF9sZW47CiAJCX0KLQkJdGVtcGwtPnR5cGUgPSBpbmRleC0+dGFibGUt PmNvbHNbaV0ubXR5cGU7CisJCXRlbXBsLT50eXBlID0gY29sLT5tdHlwZTsKIAkJdGVtcGwtPm15 c3FsX3R5cGUgPSAodWxpbnQpZmllbGQtPnR5cGUoKTsKIAogCQlpZiAodGVtcGwtPm15c3FsX3R5 cGUgPT0gREFUQV9NWVNRTF9UUlVFX1ZBUkNIQVIpIHsKQEAgLTQ2MzUsMTIgKzQ2MzcsMTAgQEAg aW5jbHVkZV9maWVsZDoKIAkJCQkoKChGaWVsZF92YXJzdHJpbmcqKWZpZWxkKS0+bGVuZ3RoX2J5 dGVzKTsKIAkJfQogCi0JCXRlbXBsLT5jaGFyc2V0ID0gZHR5cGVfZ2V0X2NoYXJzZXRfY29sbCgK LQkJCWluZGV4LT50YWJsZS0+Y29sc1tpXS5wcnR5cGUpOwotCQl0ZW1wbC0+bWJtaW5sZW4gPSBp bmRleC0+dGFibGUtPmNvbHNbaV0ubWJtaW5sZW47Ci0JCXRlbXBsLT5tYm1heGxlbiA9IGluZGV4 LT50YWJsZS0+Y29sc1tpXS5tYm1heGxlbjsKLQkJdGVtcGwtPmlzX3Vuc2lnbmVkID0gaW5kZXgt PnRhYmxlLT5jb2xzW2ldLnBydHlwZQotCQkJCQkJCSYgREFUQV9VTlNJR05FRDsKKwkJdGVtcGwt PmNoYXJzZXQgPSBkdHlwZV9nZXRfY2hhcnNldF9jb2xsKGNvbC0+cHJ0eXBlKTsKKwkJdGVtcGwt Pm1ibWlubGVuID0gZGljdF9jb2xfZ2V0X21ibWlubGVuKGNvbCk7CisJCXRlbXBsLT5tYm1heGxl biA9IGRpY3RfY29sX2dldF9tYm1heGxlbihjb2wpOworCQl0ZW1wbC0+aXNfdW5zaWduZWQgPSBj b2wtPnBydHlwZSAmIERBVEFfVU5TSUdORUQ7CiAJCWlmICh0ZW1wbC0+dHlwZSA9PSBEQVRBX0JM T0IpIHsKIAkJCXByZWJ1aWx0LT50ZW1wbF9jb250YWluc19ibG9iID0gVFJVRTsKIAkJfQoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYW5kbGVyMGFsdGVyLmNj JwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFuZGxlcjBhbHRlci5jYwlyZXZpZDp2 YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6c3Q0NTMyZmRvaXgKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhbmRsZXIwYWx0ZXIuY2MJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MjkxMTMyNDgtZnZsNDhsbnpyNDR6OTRnZwpAQCAtOTks OCArOTksMTAgQEAgaW5ub2Jhc2VfY29sX3RvX215c3FsKAogI2lmZGVmIFVOSVZfREVCVUcKIAlj YXNlIERBVEFfTVlTUUw6CiAJCXV0X2FkKGZsZW4gPj0gbGVuKTsKLQkJdXRfYWQoY29sLT5tYm1h eGxlbiA+PSBjb2wtPm1ibWlubGVuKTsKLQkJdXRfYWQoY29sLT5tYm1heGxlbiA+IGNvbC0+bWJt aW5sZW4gfHwgZmxlbiA9PSBsZW4pOworCQl1dF9hZChEQVRBX01CTUFYTEVOKGNvbC0+bWJtaW5t YXhsZW4pCisJCSAgICAgID49IERBVEFfTUJNSU5MRU4oY29sLT5tYm1pbm1heGxlbikpOworCQl1 dF9hZChEQVRBX01CTUFYTEVOKGNvbC0+bWJtaW5tYXhsZW4pCisJCSAgICAgID4gREFUQV9NQk1J TkxFTihjb2wtPm1ibWlubWF4bGVuKSB8fCBmbGVuID09IGxlbik7CiAJCW1lbWNweShkZXN0LCBk YXRhLCBsZW4pOwogCQlicmVhazsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9kYXRhMHR5cGUuaCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2Rh dGEwdHlwZS5oCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDA2MjgxMjUyMjQtdjZt OXpzdDQ1MzJmZG9peAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGF0YTB0eXBlLmgJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MjkxMTMyNDgtZnZsNDhsbnpyNDR6 OTRnZwpAQCAtMTY4LDYgKzE2OCwxNyBAQCBTUUwgbnVsbCovCiBzdG9yZSB0aGUgY2hhcnNldC1j b2xsYXRpb24gbnVtYmVyOyBvbmUgYnl0ZSBpcyBsZWZ0IHVudXNlZCwgdGhvdWdoICovCiAjZGVm aW5lIERBVEFfTkVXX09SREVSX05VTExfVFlQRV9CVUZfU0laRQk2CiAKKy8qIE1heGltdW0gbXVs dGktYnl0ZSBjaGFyYWN0ZXIgbGVuZ3RoIGluIGJ5dGVzLCBwbHVzIDEgKi8KKyNkZWZpbmUgREFU QV9NQk1BWAk1CisKKy8qIFBhY2sgbWJtaW5sZW4sIG1ibWF4bGVuIHRvIG1ibWlubWF4bGVuLiAq LworI2RlZmluZSBEQVRBX01CTUlOTUFYTEVOKG1ibWlubGVuLCBtYm1heGxlbikJXAorCSgobWJt YXhsZW4pICogREFUQV9NQk1BWCArIChtYm1pbmxlbikpCisvKiBHZXQgbWJtaW5sZW4gZnJvbSBt Ym1pbm1heGxlbi4gKi8KKyNkZWZpbmUgREFUQV9NQk1JTkxFTihtYm1pbm1heGxlbikgVU5JVl9F WFBFQ1QoKChtYm1pbm1heGxlbikgJSBEQVRBX01CTUFYKSwgMSkKKy8qIEdldCBtYm1heGxlbiBm cm9tIG1ibWlubWF4bGVuLiAqLworI2RlZmluZSBEQVRBX01CTUFYTEVOKG1ibWlubWF4bGVuKSAo KG1ibWlubWF4bGVuKSAvIERBVEFfTUJNQVgpCisKICNpZm5kZWYgVU5JVl9IT1RCQUNLVVAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCiBHZXRzIHRoZSBNeVNRTCB0eXBlIGNvZGUgZnJvbSBhIGR0eXBlLgpA QCAtMTg3LDEwICsxOTgsOCBAQCB1bGludAogZHR5cGVfZ2V0X2F0X21vc3Rfbl9tYmNoYXJzKAog Lyo9PT09PT09PT09PT09PT09PT09PT09PT0qLwogCXVsaW50CQlwcnR5cGUsCQkvKiE8IGluOiBw cmVjaXNlIHR5cGUgKi8KLQl1bGludAkJbWJtaW5sZW4sCS8qITwgaW46IG1pbmltdW0gbGVuZ3Ro IG9mIGEKLQkJCQkJbXVsdGktYnl0ZSBjaGFyYWN0ZXIgKi8KLQl1bGludAkJbWJtYXhsZW4sCS8q ITwgaW46IG1heGltdW0gbGVuZ3RoIG9mIGEKLQkJCQkJbXVsdGktYnl0ZSBjaGFyYWN0ZXIgKi8K Kwl1bGludAkJbWJtaW5tYXhsZW4sCS8qITwgaW46IG1pbmltdW0gYW5kIG1heGltdW0gbGVuZ3Ro IG9mCisJCQkJCWEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgKi8KIAl1bGludAkJcHJlZml4X2xlbiwJ LyohPCBpbjogbGVuZ3RoIG9mIHRoZSByZXF1ZXN0ZWQKIAkJCQkJcHJlZml4LCBpbiBjaGFyYWN0 ZXJzLCBtdWx0aXBsaWVkIGJ5CiAJCQkJCWR0eXBlX2dldF9tYm1heGxlbihkdHlwZSkgKi8KQEAg LTMzNSw2ICszNDQsMTkgQEAgZHR5cGVfZ2V0X21ibWF4bGVuKAogLyo9PT09PT09PT09PT09PT0q LwogCWNvbnN0IGR0eXBlX3QqCXR5cGUpOwkvKiE8IGluOiB0eXBlICovCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgorU2V0cyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBsZW5ndGggb2YgYSBjaGFyYWN0ZXIs IGluIGJ5dGVzLiAqLworVU5JVl9JTkxJTkUKK3ZvaWQKK2R0eXBlX3NldF9tYm1pbm1heGxlbigK Ky8qPT09PT09PT09PT09PT09PT09Ki8KKwlkdHlwZV90Kgl0eXBlLAkJLyohPCBpbi9vdXQ6IHR5 cGUgKi8KKwl1bGludAkJbWJtaW5sZW4sCS8qITwgaW46IG1pbmltdW0gbGVuZ3RoIG9mIGEgY2hh ciwKKwkJCQkJaW4gYnl0ZXMsIG9yIDAgaWYgdGhpcyBpcyBub3QKKwkJCQkJYSBjaGFyYWN0ZXIg dHlwZSAqLworCXVsaW50CQltYm1heGxlbik7CS8qITwgaW46IG1heGltdW0gbGVuZ3RoIG9mIGEg Y2hhciwKKwkJCQkJaW4gYnl0ZXMsIG9yIDAgaWYgdGhpcyBpcyBub3QKKwkJCQkJYSBjaGFyYWN0 ZXIgdHlwZSAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIHBhZGRpbmcgY2hhcmFjdGVy IGNvZGUgZm9yIHRoZSB0eXBlLgogQHJldHVybglwYWRkaW5nIGNoYXJhY3RlciBjb2RlLCBvciBV TElOVF9VTkRFRklORUQgaWYgbm8gcGFkZGluZyBzcGVjaWZpZWQgKi8KIFVOSVZfSU5MSU5FCkBA IC0zNTQsOCArMzc2LDggQEAgZHR5cGVfZ2V0X2ZpeGVkX3NpemVfbG93KAogCXVsaW50CW10eXBl LAkJLyohPCBpbjogbWFpbiB0eXBlICovCiAJdWxpbnQJcHJ0eXBlLAkJLyohPCBpbjogcHJlY2lz ZSB0eXBlICovCiAJdWxpbnQJbGVuLAkJLyohPCBpbjogbGVuZ3RoICovCi0JdWxpbnQJbWJtaW5s ZW4sCS8qITwgaW46IG1pbmltdW0gbGVuZ3RoIG9mIGEgbXVsdGlieXRlIGNoYXIgKi8KLQl1bGlu dAltYm1heGxlbiwJLyohPCBpbjogbWF4aW11bSBsZW5ndGggb2YgYSBtdWx0aWJ5dGUgY2hhciAq LworCXVsaW50CW1ibWlubWF4bGVuLAkvKiE8IGluOiBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0 aCBvZiBhCisJCQkJbXVsdGlieXRlIGNoYXJhY3RlciwgaW4gYnl0ZXMgKi8KIAl1bGludAljb21w KTsJCS8qITwgaW46IG5vbnplcm89Uk9XX0ZPUk1BVD1DT01QQUNUICAqLwogI2lmbmRlZiBVTklW X0hPVEJBQ0tVUAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgpAQCAtMzY4LDggKzM5MCw4IEBAIGR0eXBl X2dldF9taW5fc2l6ZV9sb3coCiAJdWxpbnQJbXR5cGUsCQkvKiE8IGluOiBtYWluIHR5cGUgKi8K IAl1bGludAlwcnR5cGUsCQkvKiE8IGluOiBwcmVjaXNlIHR5cGUgKi8KIAl1bGludAlsZW4sCQkv KiE8IGluOiBsZW5ndGggKi8KLQl1bGludAltYm1pbmxlbiwJLyohPCBpbjogbWluaW11bSBsZW5n dGggb2YgYSBtdWx0aWJ5dGUgY2hhciAqLwotCXVsaW50CW1ibWF4bGVuKTsJLyohPCBpbjogbWF4 aW11bSBsZW5ndGggb2YgYSBtdWx0aWJ5dGUgY2hhciAqLworCXVsaW50CW1ibWlubWF4bGVuKTsJ LyohPCBpbjogbWluaW11bSBhbmQgbWF4aW11bSBsZW5ndGggb2YgYQorCQkJCW11bHRpYnl0ZSBj aGFyYWN0ZXIgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgdGhlIG1heGltdW0gc2l6 ZSBvZiBhIGRhdGEgdHlwZS4gTm90ZTogdHlwZXMgaW4gc3lzdGVtIHRhYmxlcyBtYXkgYmUKIGlu Y29tcGxldGUgYW5kIHJldHVybiBpbmNvcnJlY3QgaW5mb3JtYXRpb24uCkBAIC00NzIsMTAgKzQ5 NCwxMSBAQCBzdHJ1Y3QgZHR5cGVfc3RydWN0ewogCQkJCQl0aGUgc3RyaW5nLCBNeVNRTCB1c2Vz IDEgb3IgMgogCQkJCQlieXRlcyB0byBzdG9yZSB0aGUgc3RyaW5nIGxlbmd0aCkgKi8KICNpZm5k ZWYgVU5JVl9IT1RCQUNLVVAKLQl1bnNpZ25lZAltYm1pbmxlbjoyOwkvKiE8IG1pbmltdW0gbGVu Z3RoIG9mIGEKLQkJCQkJY2hhcmFjdGVyLCBpbiBieXRlcyAqLwotCXVuc2lnbmVkCW1ibWF4bGVu OjM7CS8qITwgbWF4aW11bSBsZW5ndGggb2YgYQotCQkJCQljaGFyYWN0ZXIsIGluIGJ5dGVzICov CisJdW5zaWduZWQJbWJtaW5tYXhsZW46NTsJLyohPCBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0 aCBvZiBhCisJCQkJCWNoYXJhY3RlciwgaW4gYnl0ZXM7CisJCQkJCURBVEFfTUJNSU5NQVhMRU4o bWJtaW5sZW4sbWJtYXhsZW4pOworCQkJCQltYm1pbmxlbj1EQVRBX01CTUlOTEVOKG1ibWlubWF4 bGVuKTsKKwkJCQkJbWJtYXhsZW49REFUQV9NQk1JTkxFTihtYm1pbm1heGxlbikgKi8KICNlbmRp ZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIH07CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2lubm9iYXNlL2luY2x1ZGUvZGF0YTB0eXBlLmljJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvZGF0YTB0eXBlLmljCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDA2Mjgx MjUyMjQtdjZtOXpzdDQ1MzJmZG9peAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGF0 YTB0eXBlLmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2 bDQ4bG56cjQ0ejk0Z2cKQEAgLTkzLDE0ICs5MywzNSBAQCBkdHlwZV9nZXRfbWJsZW4oCiAJCWlu bm9iYXNlX2dldF9jc2V0X3dpZHRoKGR0eXBlX2dldF9jaGFyc2V0X2NvbGwocHJ0eXBlKSwKIAkJ CQkJbWJtaW5sZW4sIG1ibWF4bGVuKTsKIAkJdXRfYWQoKm1ibWlubGVuIDw9ICptYm1heGxlbik7 Ci0JCXV0X2FkKCptYm1pbmxlbiA8PSAyKTsgLyogbWJtaW5sZW4gaW4gZHR5cGVfdCBpcyAwLi4z ICovCi0JCXV0X2FkKCptYm1heGxlbiA8IDEgPDwgMyk7IC8qIG1ibWF4bGVuIGluIGR0eXBlX3Qg aXMgMC4uNyAqLworCQl1dF9hZCgqbWJtaW5sZW4gPCBEQVRBX01CTUFYKTsKKwkJdXRfYWQoKm1i bWF4bGVuIDwgREFUQV9NQk1BWCk7CiAJfSBlbHNlIHsKIAkJKm1ibWlubGVuID0gKm1ibWF4bGVu ID0gMDsKIAl9CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitTZXRzIHRoZSBtaW5pbXVtIGFuZCBt YXhpbXVtIGxlbmd0aCBvZiBhIGNoYXJhY3RlciwgaW4gYnl0ZXMuICovCitVTklWX0lOTElORQor dm9pZAorZHR5cGVfc2V0X21ibWlubWF4bGVuKAorLyo9PT09PT09PT09PT09PT09PT0qLworCWR0 eXBlX3QqCXR5cGUsCQkvKiE8IGluL291dDogdHlwZSAqLworCXVsaW50CQltYm1pbmxlbiwJLyoh PCBpbjogbWluaW11bSBsZW5ndGggb2YgYSBjaGFyLAorCQkJCQlpbiBieXRlcywgb3IgMCBpZiB0 aGlzIGlzIG5vdAorCQkJCQlhIGNoYXJhY3RlciB0eXBlICovCisJdWxpbnQJCW1ibWF4bGVuKQkv KiE8IGluOiBtYXhpbXVtIGxlbmd0aCBvZiBhIGNoYXIsCisJCQkJCWluIGJ5dGVzLCBvciAwIGlm IHRoaXMgaXMgbm90CisJCQkJCWEgY2hhcmFjdGVyIHR5cGUgKi8KK3sKKwl1dF9hZChtYm1pbmxl biA8IERBVEFfTUJNQVgpOworCXV0X2FkKG1ibWF4bGVuIDwgREFUQV9NQk1BWCk7CisJdXRfYWQo bWJtaW5sZW4gPD0gbWJtYXhsZW4pOworCisJdHlwZS0+bWJtaW5tYXhsZW4gPSBEQVRBX01CTUlO TUFYTEVOKG1ibWlubGVuLCBtYm1heGxlbik7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDb21w dXRlIHRoZSBtYm1pbmxlbiBhbmQgbWJtYXhsZW4gbWVtYmVycyBvZiBhIGRhdGEgdHlwZSBzdHJ1 Y3R1cmUuICovCiBVTklWX0lOTElORQogdm9pZApAQCAtMTEyLDggKzEzMyw3IEBAIGR0eXBlX3Nl dF9tYmxlbigKIAl1bGludAltYm1heGxlbjsKIAogCWR0eXBlX2dldF9tYmxlbih0eXBlLT5tdHlw ZSwgdHlwZS0+cHJ0eXBlLCAmbWJtaW5sZW4sICZtYm1heGxlbik7Ci0JdHlwZS0+bWJtaW5sZW4g PSBtYm1pbmxlbjsKLQl0eXBlLT5tYm1heGxlbiA9IG1ibWF4bGVuOworCWR0eXBlX3NldF9tYm1p bm1heGxlbih0eXBlLCBtYm1pbmxlbiwgbWJtYXhsZW4pOwogCiAJdXRfYWQoZHR5cGVfdmFsaWRh dGUodHlwZSkpOwogfQpAQCAtMjEwLDcgKzIzMCw3IEBAIGR0eXBlX2dldF9tYm1pbmxlbigKIAlj b25zdCBkdHlwZV90Kgl0eXBlKQkvKiE8IGluOiB0eXBlICovCiB7CiAJdXRfYWQodHlwZSk7Ci0J cmV0dXJuKHR5cGUtPm1ibWlubGVuKTsKKwlyZXR1cm4oREFUQV9NQk1JTkxFTih0eXBlLT5tYm1p bm1heGxlbikpOwogfQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIG1heGltdW0gbGVuZ3Ro IG9mIGEgY2hhcmFjdGVyLCBpbiBieXRlcy4KQEAgLTIyMyw3ICsyNDMsNyBAQCBkdHlwZV9nZXRf bWJtYXhsZW4oCiAJY29uc3QgZHR5cGVfdCoJdHlwZSkJLyohPCBpbjogdHlwZSAqLwogewogCXV0 X2FkKHR5cGUpOwotCXJldHVybih0eXBlLT5tYm1heGxlbik7CisJcmV0dXJuKERBVEFfTUJNQVhM RU4odHlwZS0+bWJtaW5tYXhsZW4pKTsKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKQEAgLTQwNCw4 ICs0MjQsOCBAQCBkdHlwZV9nZXRfZml4ZWRfc2l6ZV9sb3coCiAJdWxpbnQJbXR5cGUsCQkvKiE8 IGluOiBtYWluIHR5cGUgKi8KIAl1bGludAlwcnR5cGUsCQkvKiE8IGluOiBwcmVjaXNlIHR5cGUg Ki8KIAl1bGludAlsZW4sCQkvKiE8IGluOiBsZW5ndGggKi8KLQl1bGludAltYm1pbmxlbiwJLyoh PCBpbjogbWluaW11bSBsZW5ndGggb2YgYSBtdWx0aWJ5dGUgY2hhciAqLwotCXVsaW50CW1ibWF4 bGVuLAkvKiE8IGluOiBtYXhpbXVtIGxlbmd0aCBvZiBhIG11bHRpYnl0ZSBjaGFyICovCisJdWxp bnQJbWJtaW5tYXhsZW4sCS8qITwgaW46IG1pbmltdW0gYW5kIG1heGltdW0gbGVuZ3RoIG9mCisJ CQkJYSBtdWx0aWJ5dGUgY2hhcmFjdGVyLCBpbiBieXRlcyAqLwogCXVsaW50CWNvbXApCQkvKiE8 IGluOiBub256ZXJvPVJPV19GT1JNQVQ9Q09NUEFDVCAgKi8KIHsKIAlzd2l0Y2ggKG10eXBlKSB7 CkBAIC00NTMsOCArNDczLDkgQEAgZHR5cGVfZ2V0X2ZpeGVkX3NpemVfbG93KAogCQkJCWR0eXBl X2dldF9jaGFyc2V0X2NvbGwocHJ0eXBlKSwKIAkJCQkmaV9tYm1pbmxlbiwgJmlfbWJtYXhsZW4p OwogCi0JCQlpZiAoVU5JVl9VTkxJS0VMWShtYm1pbmxlbiAhPSBpX21ibWlubGVuKQotCQkJICAg IHx8IFVOSVZfVU5MSUtFTFkobWJtYXhsZW4gIT0gaV9tYm1heGxlbikpIHsKKwkJCWlmIChVTklW X1VOTElLRUxZCisJCQkgICAgKERBVEFfTUJNSU5NQVhMRU4oaV9tYm1pbmxlbiwgaV9tYm1heGxl bikKKwkJCSAgICAgIT0gbWJtaW5tYXhsZW4pKSB7CiAKIAkJCQl1dF9wcmludF90aW1lc3RhbXAo c3RkZXJyKTsKIAkJCQlmcHJpbnRmKHN0ZGVyciwgIiAgSW5ub0RCOiAiCkBAIC00NjQsMTAgKzQ4 NSwxMCBAQCBkdHlwZV9nZXRfZml4ZWRfc2l6ZV9sb3coCiAJCQkJCSJ0eXBlLT5tYm1heGxlbj0l bHVcbiIsCiAJCQkJCSh1bG9uZykgaV9tYm1pbmxlbiwKIAkJCQkJKHVsb25nKSBpX21ibWF4bGVu LAotCQkJCQkodWxvbmcpIG1ibWlubGVuLAotCQkJCQkodWxvbmcpIG1ibWF4bGVuKTsKKwkJCQkJ KHVsb25nKSBEQVRBX01CTUlOTEVOKG1ibWlubWF4bGVuKSwKKwkJCQkJKHVsb25nKSBEQVRBX01C TUFYTEVOKG1ibWlubWF4bGVuKSk7CiAJCQl9Ci0JCQlpZiAobWJtaW5sZW4gPT0gbWJtYXhsZW4p IHsKKwkJCWlmIChpX21ibWlubGVuID09IGlfbWJtYXhsZW4pIHsKIAkJCQlyZXR1cm4obGVuKTsK IAkJCX0KIAkJfQpAQCAtNDk5LDggKzUyMCw4IEBAIGR0eXBlX2dldF9taW5fc2l6ZV9sb3coCiAJ dWxpbnQJbXR5cGUsCQkvKiE8IGluOiBtYWluIHR5cGUgKi8KIAl1bGludAlwcnR5cGUsCQkvKiE8 IGluOiBwcmVjaXNlIHR5cGUgKi8KIAl1bGludAlsZW4sCQkvKiE8IGluOiBsZW5ndGggKi8KLQl1 bGludAltYm1pbmxlbiwJLyohPCBpbjogbWluaW11bSBsZW5ndGggb2YgYSBtdWx0aWJ5dGUgY2hh ciAqLwotCXVsaW50CW1ibWF4bGVuKQkvKiE8IGluOiBtYXhpbXVtIGxlbmd0aCBvZiBhIG11bHRp Ynl0ZSBjaGFyICovCisJdWxpbnQJbWJtaW5tYXhsZW4pCS8qITwgaW46IG1pbmltdW0gYW5kIG1h eGltdW0gbGVuZ3RoIG9mIGEKKwkJCQltdWx0aS1ieXRlIGNoYXJhY3RlciAqLwogewogCXN3aXRj aCAobXR5cGUpIHsKIAljYXNlIERBVEFfU1lTOgpAQCAtNTI3LDE0ICs1NDgsMjIgQEAgZHR5cGVf Z2V0X21pbl9zaXplX2xvdygKIAljYXNlIERBVEFfRE9VQkxFOgogCQlyZXR1cm4obGVuKTsKIAlj YXNlIERBVEFfTVlTUUw6Ci0JCWlmICgocHJ0eXBlICYgREFUQV9CSU5BUllfVFlQRSkgfHwgbWJt aW5sZW4gPT0gbWJtYXhsZW4pIHsKKwkJaWYgKHBydHlwZSAmIERBVEFfQklOQVJZX1RZUEUpIHsK IAkJCXJldHVybihsZW4pOworCQl9IGVsc2UgeworCQkJdWxpbnQJbWJtaW5sZW4gPSBEQVRBX01C TUlOTEVOKG1ibWlubWF4bGVuKTsKKwkJCXVsaW50CW1ibWF4bGVuID0gREFUQV9NQk1BWExFTiht Ym1pbm1heGxlbik7CisKKwkJCWlmIChtYm1pbmxlbiA9PSBtYm1heGxlbikgeworCQkJCXJldHVy bihsZW4pOworCQkJfQorCisJCQkvKiB0aGlzIGlzIGEgdmFyaWFibGUtbGVuZ3RoIGNoYXJhY3Rl ciBzZXQgKi8KKwkJCXV0X2EobWJtaW5sZW4gPiAwKTsKKwkJCXV0X2EobWJtYXhsZW4gPiBtYm1p bmxlbik7CisJCQl1dF9hKGxlbiAlIG1ibWF4bGVuID09IDApOworCQkJcmV0dXJuKGxlbiAqIG1i bWlubGVuIC8gbWJtYXhsZW4pOwogCQl9Ci0JCS8qIHRoaXMgaXMgYSB2YXJpYWJsZS1sZW5ndGgg Y2hhcmFjdGVyIHNldCAqLwotCQl1dF9hKG1ibWlubGVuID4gMCk7Ci0JCXV0X2EobWJtYXhsZW4g PiBtYm1pbmxlbik7Ci0JCXV0X2EobGVuICUgbWJtYXhsZW4gPT0gMCk7Ci0JCXJldHVybihsZW4g KiBtYm1pbmxlbiAvIG1ibWF4bGVuKTsKIAljYXNlIERBVEFfVkFSQ0hBUjoKIAljYXNlIERBVEFf QklOQVJZOgogCWNhc2UgREFUQV9ERUNJTUFMOgpAQCAtNTk1LDkgKzYyNCw5IEBAIGR0eXBlX2dl dF9zcWxfbnVsbF9zaXplKAogewogI2lmbmRlZiBVTklWX0hPVEJBQ0tVUAogCXJldHVybihkdHlw ZV9nZXRfZml4ZWRfc2l6ZV9sb3codHlwZS0+bXR5cGUsIHR5cGUtPnBydHlwZSwgdHlwZS0+bGVu LAotCQkJCQl0eXBlLT5tYm1pbmxlbiwgdHlwZS0+bWJtYXhsZW4sIGNvbXApKTsKKwkJCQkJdHlw ZS0+bWJtaW5tYXhsZW4sIGNvbXApKTsKICNlbHNlIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogCXJl dHVybihkdHlwZV9nZXRfZml4ZWRfc2l6ZV9sb3codHlwZS0+bXR5cGUsIHR5cGUtPnBydHlwZSwg dHlwZS0+bGVuLAotCQkJCQkwLCAwLCAwKSk7CisJCQkJCTAsIDApKTsKICNlbmRpZiAvKiAhVU5J Vl9IT1RCQUNLVVAgKi8KIH0KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvZGljdDBkaWN0LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRp Y3QuaAlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6c3Q0 NTMyZmRvaXgKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RpY3QwZGljdC5oCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2bDQ4bG56cjQ0ejk0Z2cK QEAgLTEwMiw2ICsxMDIsMzMgQEAgdm9pZAogZGljdF9sb2FkX3NwYWNlX2lkX2xpc3Qodm9pZCk7 CiAvKj09PT09PT09PT09PT09PT09PT09PT09PT0qLwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0dldHMg dGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHBlciBjaGFyYWN0ZXIuCitAcmV0dXJuIG1pbmlt dW0gbXVsdGktYnl0ZSBjaGFyIHNpemUsIGluIGJ5dGVzICovCitVTklWX0lOTElORQordWxpbnQK K2RpY3RfY29sX2dldF9tYm1pbmxlbigKKy8qPT09PT09PT09PT09PT09PT09Ki8KKwljb25zdCBk aWN0X2NvbF90Kgljb2wpOwkvKiE8IGluOiBjb2x1bW4gKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitH ZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBwZXIgY2hhcmFjdGVyLgorQHJldHVybiBt YXhpbXVtIG11bHRpLWJ5dGUgY2hhciBzaXplLCBpbiBieXRlcyAqLworVU5JVl9JTkxJTkUKK3Vs aW50CitkaWN0X2NvbF9nZXRfbWJtYXhsZW4oCisvKj09PT09PT09PT09PT09PT09PSovCisJY29u c3QgZGljdF9jb2xfdCoJY29sKTsJLyohPCBpbjogY29sdW1uICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgorU2V0cyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgcGVyIGNoYXJh Y3Rlci4gKi8KK1VOSVZfSU5MSU5FCit2b2lkCitkaWN0X2NvbF9zZXRfbWJtaW5tYXhsZW4oCisv Kj09PT09PT09PT09PT09PT09PT09PSovCisJZGljdF9jb2xfdCoJY29sLAkJLyohPCBpbi9vdXQ6 IGNvbHVtbiAqLworCXVsaW50CQltYm1pbmxlbiwJLyohPCBpbjogbWluaW11bSBtdWx0aS1ieXRl CisJCQkJCWNoYXJhY3RlciBzaXplLCBpbiBieXRlcyAqLworCXVsaW50CQltYm1heGxlbik7CS8q ITwgaW46IG1pbmltdW0gbXVsdGktYnl0ZQorCQkJCQljaGFyYWN0ZXIgc2l6ZSwgaW4gYnl0ZXMg Ki8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCiBHZXRzIHRoZSBjb2x1bW4gZGF0YSB0eXBlLiAqLwogVU5J Vl9JTkxJTkUKIHZvaWQKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1 ZGUvZGljdDBkaWN0LmljJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGljdDBkaWN0 LmljCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDA2MjgxMjUyMjQtdjZtOXpzdDQ1 MzJmZG9peAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGljdDBkaWN0LmljCXJldmlk Om1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2bDQ4bG56cjQ0ejk0Z2cK QEAgLTI5LDYgKzI5LDQ2IEBAIENyZWF0ZWQgMS84LzE5OTYgSGVpa2tpIFR1dXJpCiAjaW5jbHVk ZSAicmVtMHR5cGVzLmgiCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitHZXRzIHRoZSBtaW5pbXVtIG51 bWJlciBvZiBieXRlcyBwZXIgY2hhcmFjdGVyLgorQHJldHVybiBtaW5pbXVtIG11bHRpLWJ5dGUg Y2hhciBzaXplLCBpbiBieXRlcyAqLworVU5JVl9JTkxJTkUKK3VsaW50CitkaWN0X2NvbF9nZXRf bWJtaW5sZW4oCisvKj09PT09PT09PT09PT09PT09PSovCisJY29uc3QgZGljdF9jb2xfdCoJY29s KQkvKiE8IGluOiBjb2x1bW4gKi8KK3sKKwlyZXR1cm4oREFUQV9NQk1JTkxFTihjb2wtPm1ibWlu bWF4bGVuKSk7Cit9CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorR2V0cyB0aGUgbWF4aW11bSBudW1iZXIg b2YgYnl0ZXMgcGVyIGNoYXJhY3Rlci4KK0ByZXR1cm4gbWF4aW11bSBtdWx0aS1ieXRlIGNoYXIg c2l6ZSwgaW4gYnl0ZXMgKi8KK1VOSVZfSU5MSU5FCit1bGludAorZGljdF9jb2xfZ2V0X21ibWF4 bGVuKAorLyo9PT09PT09PT09PT09PT09PT0qLworCWNvbnN0IGRpY3RfY29sX3QqCWNvbCkJLyoh PCBpbjogY29sdW1uICovCit7CisJcmV0dXJuKERBVEFfTUJNQVhMRU4oY29sLT5tYm1pbm1heGxl bikpOworfQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKK1NldHMgdGhlIG1pbmltdW0gYW5kIG1heGltdW0g bnVtYmVyIG9mIGJ5dGVzIHBlciBjaGFyYWN0ZXIuICovCitVTklWX0lOTElORQordm9pZAorZGlj dF9jb2xfc2V0X21ibWlubWF4bGVuKAorLyo9PT09PT09PT09PT09PT09PT09PT0qLworCWRpY3Rf Y29sX3QqCWNvbCwJCS8qITwgaW4vb3V0OiBjb2x1bW4gKi8KKwl1bGludAkJbWJtaW5sZW4sCS8q ITwgaW46IG1pbmltdW0gbXVsdGktYnl0ZQorCQkJCQljaGFyYWN0ZXIgc2l6ZSwgaW4gYnl0ZXMg Ki8KKwl1bGludAkJbWJtYXhsZW4pCS8qITwgaW46IG1pbmltdW0gbXVsdGktYnl0ZQorCQkJCQlj aGFyYWN0ZXIgc2l6ZSwgaW4gYnl0ZXMgKi8KK3sKKwl1dF9hZChtYm1pbmxlbiA8IERBVEFfTUJN QVgpOworCXV0X2FkKG1ibWF4bGVuIDwgREFUQV9NQk1BWCk7CisJdXRfYWQobWJtaW5sZW4gPD0g bWJtYXhsZW4pOworCisJY29sLT5tYm1pbm1heGxlbiA9IERBVEFfTUJNSU5NQVhMRU4obWJtaW5s ZW4sIG1ibWF4bGVuKTsKK30KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXRzIHRoZSBjb2x1bW4gZGF0 YSB0eXBlLiAqLwogVU5JVl9JTkxJTkUKIHZvaWQKQEAgLTQyLDggKzgyLDcgQEAgZGljdF9jb2xf Y29weV90eXBlKAogCXR5cGUtPm10eXBlID0gY29sLT5tdHlwZTsKIAl0eXBlLT5wcnR5cGUgPSBj b2wtPnBydHlwZTsKIAl0eXBlLT5sZW4gPSBjb2wtPmxlbjsKLQl0eXBlLT5tYm1pbmxlbiA9IGNv bC0+bWJtaW5sZW47Ci0JdHlwZS0+bWJtYXhsZW4gPSBjb2wtPm1ibWF4bGVuOworCXR5cGUtPm1i bWlubWF4bGVuID0gY29sLT5tYm1pbm1heGxlbjsKIH0KICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNL VVAgKi8KIApAQCAtNjUsOCArMTA0LDcgQEAgZGljdF9jb2xfdHlwZV9hc3NlcnRfZXF1YWwoCiAJ dXRfYWQoY29sLT5wcnR5cGUgPT0gdHlwZS0+cHJ0eXBlKTsKIAl1dF9hZChjb2wtPmxlbiA9PSB0 eXBlLT5sZW4pOwogIyBpZm5kZWYgVU5JVl9IT1RCQUNLVVAKLQl1dF9hZChjb2wtPm1ibWlubGVu ID09IHR5cGUtPm1ibWlubGVuKTsKLQl1dF9hZChjb2wtPm1ibWF4bGVuID09IHR5cGUtPm1ibWF4 bGVuKTsKKwl1dF9hZChjb2wtPm1ibWlubWF4bGVuID09IHR5cGUtPm1ibWlubWF4bGVuKTsKICMg ZW5kaWYgLyogIVVOSVZfSE9UQkFDS1VQICovCiAKIAlyZXR1cm4oVFJVRSk7CkBAIC04NCw3ICsx MjIsNyBAQCBkaWN0X2NvbF9nZXRfbWluX3NpemUoCiAJY29uc3QgZGljdF9jb2xfdCoJY29sKQkv KiE8IGluOiBjb2x1bW4gKi8KIHsKIAlyZXR1cm4oZHR5cGVfZ2V0X21pbl9zaXplX2xvdyhjb2wt Pm10eXBlLCBjb2wtPnBydHlwZSwgY29sLT5sZW4sCi0JCQkJICAgICAgY29sLT5tYm1pbmxlbiwg Y29sLT5tYm1heGxlbikpOworCQkJCSAgICAgIGNvbC0+bWJtaW5tYXhsZW4pKTsKIH0KIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKIFJldHVybnMgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgY29sdW1uLgpA QCAtMTA5LDcgKzE0Nyw3IEBAIGRpY3RfY29sX2dldF9maXhlZF9zaXplKAogCXVsaW50CQkJY29t cCkJLyohPCBpbjogbm9uemVybz1ST1dfRk9STUFUPUNPTVBBQ1QgICovCiB7CiAJcmV0dXJuKGR0 eXBlX2dldF9maXhlZF9zaXplX2xvdyhjb2wtPm10eXBlLCBjb2wtPnBydHlwZSwgY29sLT5sZW4s Ci0JCQkJCWNvbC0+bWJtaW5sZW4sIGNvbC0+bWJtYXhsZW4sIGNvbXApKTsKKwkJCQkJY29sLT5t Ym1pbm1heGxlbiwgY29tcCkpOwogfQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUg Uk9XX0ZPUk1BVD1SRURVTkRBTlQgc3RvcmVkIFNRTCBOVUxMIHNpemUgb2YgYSBjb2x1bW4uCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RpY3QwbWVtLmgnCi0t LSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MG1lbS5oCXJldmlkOnZhc2lsLmRpbW92 QG9yYWNsZS5jb20tMjAxMDA2MjgxMjUyMjQtdjZtOXpzdDQ1MzJmZG9peAorKysgYi9zdG9yYWdl L2lubm9iYXNlL2luY2x1ZGUvZGljdDBtZW0uaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0NHo5NGdnCkBAIC0xNTEsOSArMTUxLDkgQEAgZGlj dF9tZW1fdGFibGVfYWRkX2NvbCgKIAl1bGludAkJcHJ0eXBlLAkvKiE8IGluOiBwcmVjaXNlIHR5 cGUgKi8KIAl1bGludAkJbGVuKTsJLyohPCBpbjogcHJlY2lzaW9uICovCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKLVRoaXMgZnVuY3Rpb24gcG9wbHVsYXRlcyBhIGRpY3RfY29sX3QgbWVtb3J5IHN0cnVj dHVyZSB3aXRoCitUaGlzIGZ1bmN0aW9uIHBvcHVsYXRlcyBhIGRpY3RfY29sX3QgbWVtb3J5IHN0 cnVjdHVyZSB3aXRoCiBzdXBwbGllZCBpbmZvcm1hdGlvbi4gKi8KLVVOSVZfSU5MSU5FCitVTklW X0lOVEVSTgogdm9pZAogZGljdF9tZW1fZmlsbF9jb2x1bW5fc3RydWN0KAogLyo9PT09PT09PT09 PT09PT09PT09PT09PT0qLwpAQCAtMTYyLDcgKzE2Miw3IEBAIGRpY3RfbWVtX2ZpbGxfY29sdW1u X3N0cnVjdCgKIAl1bGludAkJY29sX3BvcywJLyohPCBpbjogY29sdW1uIHBvc2l0aW9uICovCiAJ dWxpbnQJCW10eXBlLAkJLyohPCBpbjogbWFpbiBkYXRhIHR5cGUgKi8KIAl1bGludAkJcHJ0eXBl LAkJLyohPCBpbjogcHJlY2lzZSB0eXBlICovCi0JdWxpbnQJCWNvbF9sZW4pOwkvKiE8IGluOiBj b2x1bW4gbGVuZ2h0ICovCisJdWxpbnQJCWNvbF9sZW4pOwkvKiE8IGluOiBjb2x1bW4gbGVuZ3Ro ICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKIFRoaXMgZnVuY3Rpb24gcG9wbHVsYXRlcyBhIGRpY3Rf aW5kZXhfdCBpbmRleCBtZW1vcnkgc3RydWN0dXJlIHdpdGgKIHN1cHBsaWVkIGluZm9ybWF0aW9u LiAqLwpAQCAtMjQ5LDEwICsyNDksMTEgQEAgc3RydWN0IGRpY3RfY29sX3N0cnVjdHsKIAkJCQkJ dGhlIHN0cmluZywgTXlTUUwgdXNlcyAxIG9yIDIKIAkJCQkJYnl0ZXMgdG8gc3RvcmUgdGhlIHN0 cmluZyBsZW5ndGgpICovCiAKLQl1bnNpZ25lZAltYm1pbmxlbjoyOwkvKiE8IG1pbmltdW0gbGVu Z3RoIG9mIGEKLQkJCQkJY2hhcmFjdGVyLCBpbiBieXRlcyAqLwotCXVuc2lnbmVkCW1ibWF4bGVu OjM7CS8qITwgbWF4aW11bSBsZW5ndGggb2YgYQotCQkJCQljaGFyYWN0ZXIsIGluIGJ5dGVzICov CisJdW5zaWduZWQJbWJtaW5tYXhsZW46NTsJLyohPCBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0 aCBvZiBhCisJCQkJCWNoYXJhY3RlciwgaW4gYnl0ZXM7CisJCQkJCURBVEFfTUJNSU5NQVhMRU4o bWJtaW5sZW4sbWJtYXhsZW4pOworCQkJCQltYm1pbmxlbj1EQVRBX01CTUlOTEVOKG1ibWlubWF4 bGVuKTsKKwkJCQkJbWJtYXhsZW49REFUQV9NQk1JTkxFTihtYm1pbm1heGxlbikgKi8KIAkvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCS8qIEVuZCBvZiBkZWZpbml0aW9ucyBjb3BpZWQgZnJv bSBkdHlwZV90ICovCiAJLyogQH0gKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9i YXNlL2luY2x1ZGUvZGljdDBtZW0uaWMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9k aWN0MG1lbS5pYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4MTI1MjI0LXY2 bTl6c3Q0NTMyZmRvaXgKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RpY3QwbWVtLmlj CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2bDQ4bG56cjQ0 ejk0Z2cKQEAgLTcwLDM1ICs3MCwzIEBAIGRpY3RfbWVtX2ZpbGxfaW5kZXhfc3RydWN0KAogICAg ICAgICBpbmRleC0+bWFnaWNfbiA9IERJQ1RfSU5ERVhfTUFHSUNfTjsKICNlbmRpZiAvKiBVTklW X0RFQlVHICovCiB9Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotVGhpcyBmdW5jdGlvbiBwb3BsdWxh dGVzIGEgZGljdF9jb2xfdCBtZW1vcnkgc3RydWN0dXJlIHdpdGgKLXN1cHBsaWVkIGluZm9ybWF0 aW9uLiAqLwotVU5JVl9JTkxJTkUKLXZvaWQKLWRpY3RfbWVtX2ZpbGxfY29sdW1uX3N0cnVjdCgK LS8qPT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQlkaWN0X2NvbF90Kgljb2x1bW4sCQkvKiE8 IG91dDogY29sdW1uIHN0cnVjdCB0byBiZQotCQkJCQlmaWxsZWQgKi8KLQl1bGludAkJY29sX3Bv cywJLyohPCBpbjogY29sdW1uIHBvc2l0aW9uICovCi0JdWxpbnQJCW10eXBlLAkJLyohPCBpbjog bWFpbiBkYXRhIHR5cGUgKi8KLQl1bGludAkJcHJ0eXBlLAkJLyohPCBpbjogcHJlY2lzZSB0eXBl ICovCi0JdWxpbnQJCWNvbF9sZW4pCS8qITwgaW46IGNvbHVtbiBsZW5naHQgKi8KLXsKLSNpZm5k ZWYgVU5JVl9IT1RCQUNLVVAKLQl1bGludAltYm1pbmxlbjsKLQl1bGludAltYm1heGxlbjsKLSNl bmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KLQotCWNvbHVtbi0+aW5kID0gKHVuc2lnbmVkIGlu dCkgY29sX3BvczsKLQljb2x1bW4tPm9yZF9wYXJ0ID0gMDsKLQljb2x1bW4tPm10eXBlID0gKHVu c2lnbmVkIGludCkgbXR5cGU7Ci0JY29sdW1uLT5wcnR5cGUgPSAodW5zaWduZWQgaW50KSBwcnR5 cGU7Ci0JY29sdW1uLT5sZW4gPSAodW5zaWduZWQgaW50KSBjb2xfbGVuOwotI2lmbmRlZiBVTklW X0hPVEJBQ0tVUAotICAgICAgICBkdHlwZV9nZXRfbWJsZW4obXR5cGUsIHBydHlwZSwgJm1ibWlu bGVuLCAmbWJtYXhsZW4pOwotCi0gICAgICAgIGNvbHVtbi0+bWJtaW5sZW4gPSAodW5zaWduZWQg aW50KSBtYm1pbmxlbjsKLSAgICAgICAgY29sdW1uLT5tYm1heGxlbiA9ICh1bnNpZ25lZCBpbnQp IG1ibWF4bGVuOwotI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwotfQoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbXlzcWwuaCcKLS0tIGEvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBteXNxbC5oCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5j b20tMjAxMDA2MjgxMjUyMjQtdjZtOXpzdDQ1MzJmZG9peAorKysgYi9zdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvcm93MG15c3FsLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2 MjkxMTMyNDgtZnZsNDhsbnpyNDR6OTRnZwpAQCAtMTAzLDYgKzEwMywxNyBAQCByb3dfbXlzcWxf cmVhZF9ibG9iX3JlZigKIAl1bGludAkJY29sX2xlbik7CS8qITwgaW46IEJMT0IgcmVmZXJlbmNl IGxlbmd0aAogCQkJCQkobm90IEJMT0IgbGVuZ3RoKSAqLwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorUGFkIGEgY29s dW1uIHdpdGggc3BhY2VzLiAqLworVU5JVl9JTlRFUk4KK3ZvaWQKK3Jvd19teXNxbF9wYWRfY29s KAorLyo9PT09PT09PT09PT09PSovCisJdWxpbnQJbWJtaW5sZW4sCS8qITwgaW46IG1pbmltdW0g c2l6ZSBvZiBhIGNoYXJhY3RlciwKKwkJCQlpbiBieXRlcyAqLworCWJ5dGUqCXBhZCwJCS8qITwg b3V0OiBwYWRkZWQgYnVmZmVyICovCisJdWxpbnQJbGVuKTsJCS8qITwgaW46IG51bWJlciBvZiBi eXRlcyB0byBwYWQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogU3RvcmVzIGEgbm9uLVNRTC1OVUxMIGZpZWxk IGdpdmVuIGluIHRoZSBNeVNRTCBmb3JtYXQgaW4gdGhlIElubm9EQiBmb3JtYXQuCiBUaGUgY291 bnRlcnBhcnQgb2YgdGhpcyBmdW5jdGlvbiBpcyByb3dfc2VsX2ZpZWxkX3N0b3JlX2luX215c3Fs X2Zvcm1hdCgpIGluCiByb3cwc2VsLmMuCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9yb3cvcm93MGlucy5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwaW5zLmMJ cmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMDYyODEyNTIyNC12Nm05enN0NDUzMmZk b2l4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBpbnMuYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0NHo5NGdnCkBAIC01MTUsOCAr NTE1LDcgQEAgcm93X2luc19jYXNjYWRlX2NhbGNfdXBkYXRlX3ZlYygKIAogCQkJCWlmICghZGZp ZWxkX2lzX251bGwoJnVmaWVsZC0+bmV3X3ZhbCkKIAkJCQkgICAgJiYgZHR5cGVfZ2V0X2F0X21v c3Rfbl9tYmNoYXJzKAotCQkJCQljb2wtPnBydHlwZSwKLQkJCQkJY29sLT5tYm1pbmxlbiwgY29s LT5tYm1heGxlbiwKKwkJCQkJY29sLT5wcnR5cGUsIGNvbC0+bWJtaW5tYXhsZW4sCiAJCQkJCWNv bC0+bGVuLAogCQkJCQl1ZmllbGRfbGVuLAogCQkJCQlkZmllbGRfZ2V0X2RhdGEoJnVmaWVsZC0+ bmV3X3ZhbCkpCkBAIC01MzksNDkgKzUzOCwzNyBAQCByb3dfaW5zX2Nhc2NhZGVfY2FsY191cGRh dGVfdmVjKAogCiAJCQkJaWYgKG1pbl9zaXplID4gdWZpZWxkX2xlbikgewogCi0JCQkJCWNoYXIq CQlwYWRfc3RhcnQ7Ci0JCQkJCWNvbnN0IGNoYXIqCXBhZF9lbmQ7Ci0JCQkJCWNoYXIqCQlwYWRk ZWRfZGF0YQotCQkJCQkJPSBtZW1faGVhcF9hbGxvYygKLQkJCQkJCQloZWFwLCBtaW5fc2l6ZSk7 Ci0JCQkJCXBhZF9zdGFydCA9IHBhZGRlZF9kYXRhICsgdWZpZWxkX2xlbjsKLQkJCQkJcGFkX2Vu ZCA9IHBhZGRlZF9kYXRhICsgbWluX3NpemU7CisJCQkJCWJ5dGUqCXBhZDsKKwkJCQkJdWxpbnQJ cGFkX2xlbjsKKwkJCQkJYnl0ZSoJcGFkZGVkX2RhdGE7CisJCQkJCXVsaW50CW1ibWlubGVuOwor CisJCQkJCXBhZGRlZF9kYXRhID0gbWVtX2hlYXBfYWxsb2MoCisJCQkJCQloZWFwLCBtaW5fc2l6 ZSk7CisKKwkJCQkJcGFkID0gcGFkZGVkX2RhdGEgKyB1ZmllbGRfbGVuOworCQkJCQlwYWRfbGVu ID0gbWluX3NpemUgLSB1ZmllbGRfbGVuOwogCiAJCQkJCW1lbWNweShwYWRkZWRfZGF0YSwKIAkJ CQkJICAgICAgIGRmaWVsZF9nZXRfZGF0YSgmdWZpZWxkCiAJCQkJCQkJICAgICAgIC0+bmV3X3Zh bCksCi0JCQkJCSAgICAgICBkZmllbGRfZ2V0X2xlbigmdWZpZWxkCi0JCQkJCQkJICAgICAgLT5u ZXdfdmFsKSk7CisJCQkJCSAgICAgICB1ZmllbGRfbGVuKTsKIAotCQkJCQlzd2l0Y2ggKFVOSVZf RVhQRUNUKGNvbC0+bWJtaW5sZW4sMSkpIHsKLQkJCQkJZGVmYXVsdDoKLQkJCQkJCXV0X2Vycm9y OwotCQkJCQkJcmV0dXJuKFVMSU5UX1VOREVGSU5FRCk7Ci0JCQkJCWNhc2UgMToKLQkJCQkJCWlm IChVTklWX1VOTElLRUxZCi0JCQkJCQkgICAgKGR0eXBlX2dldF9jaGFyc2V0X2NvbGwoCi0JCQkJ CQkJICAgIGNvbC0+cHJ0eXBlKQotCQkJCQkJICAgICA9PSBEQVRBX01ZU1FMX0JJTkFSWV9DSEFS U0VUX0NPTEwpKSB7Ci0JCQkJCQkJLyogRG8gbm90IHBhZCBCSU5BUlkKLQkJCQkJCQljb2x1bW5z LiAqLwotCQkJCQkJCXJldHVybihVTElOVF9VTkRFRklORUQpOwotCQkJCQkJfQorCQkJCQltYm1p bmxlbiA9IGRpY3RfY29sX2dldF9tYm1pbmxlbihjb2wpOworCisJCQkJCXV0X2FkKCEodWZpZWxk X2xlbiAlIG1ibWlubGVuKSk7CisJCQkJCXV0X2FkKCEobWluX3NpemUgJSBtYm1pbmxlbikpOwog Ci0JCQkJCQkvKiBzcGFjZT0weDIwICovCi0JCQkJCQltZW1zZXQocGFkX3N0YXJ0LCAweDIwLAot CQkJCQkJICAgICAgIHBhZF9lbmQgLSBwYWRfc3RhcnQpOwotCQkJCQkJYnJlYWs7Ci0JCQkJCWNh c2UgMjoKLQkJCQkJCS8qIHNwYWNlPTB4MDAyMCAqLwotCQkJCQkJdXRfYSghKHVmaWVsZF9sZW4g JSAyKSk7Ci0JCQkJCQl1dF9hKCEobWluX3NpemUgJSAyKSk7Ci0JCQkJCQlkbyB7Ci0JCQkJCQkJ KnBhZF9zdGFydCsrID0gMHgwMDsKLQkJCQkJCQkqcGFkX3N0YXJ0KysgPSAweDIwOwotCQkJCQkJ fSB3aGlsZSAocGFkX3N0YXJ0IDwgcGFkX2VuZCk7Ci0JCQkJCQlicmVhazsKKwkJCQkJaWYgKG1i bWlubGVuID09IDEKKwkJCQkJICAgICYmIGR0eXBlX2dldF9jaGFyc2V0X2NvbGwoCisJCQkJCQkg ICAgY29sLT5wcnR5cGUpCisJCQkJCSAgICA9PSBEQVRBX01ZU1FMX0JJTkFSWV9DSEFSU0VUX0NP TEwpIHsKKwkJCQkJCS8qIERvIG5vdCBwYWQgQklOQVJZIGNvbHVtbnMgKi8KKwkJCQkJCXJldHVy bihVTElOVF9VTkRFRklORUQpOwogCQkJCQl9CiAKKwkJCQkJcm93X215c3FsX3BhZF9jb2wobWJt aW5sZW4sCisJCQkJCQkJICBwYWQsIHBhZF9sZW4pOwogCQkJCQlkZmllbGRfc2V0X2RhdGEoJnVm aWVsZC0+bmV3X3ZhbCwKIAkJCQkJCQlwYWRkZWRfZGF0YSwgbWluX3NpemUpOwogCQkJCX0KQEAg LTIyMzIsNyArMjIxOSw3IEBAIHJvd19pbnNfaW5kZXhfZW50cnlfc2V0X3ZhbHMoCiAJCQkJPSBk aWN0X2ZpZWxkX2dldF9jb2woaW5kX2ZpZWxkKTsKIAogCQkJbGVuID0gZHR5cGVfZ2V0X2F0X21v c3Rfbl9tYmNoYXJzKAotCQkJCWNvbC0+cHJ0eXBlLCBjb2wtPm1ibWlubGVuLCBjb2wtPm1ibWF4 bGVuLAorCQkJCWNvbC0+cHJ0eXBlLCBjb2wtPm1ibWlubWF4bGVuLAogCQkJCWluZF9maWVsZC0+ cHJlZml4X2xlbiwKIAkJCQlsZW4sIGRmaWVsZF9nZXRfZGF0YShyb3dfZmllbGQpKTsKIAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBtZXJnZS5jJwotLS0gYS9z dG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbWVyZ2UuYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUu Y29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6c3Q0NTMyZmRvaXgKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9yb3cvcm93MG1lcmdlLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2Mjkx MTMyNDgtZnZsNDhsbnpyNDR6OTRnZwpAQCAtMzM4LDcgKzMzOCw3IEBAIHJvd19tZXJnZV9idWZf YWRkKAogCQlpZiAoaWZpZWxkLT5wcmVmaXhfbGVuKSB7CiAJCQlsZW4gPSBkdHlwZV9nZXRfYXRf bW9zdF9uX21iY2hhcnMoCiAJCQkJY29sLT5wcnR5cGUsCi0JCQkJY29sLT5tYm1pbmxlbiwgY29s LT5tYm1heGxlbiwKKwkJCQljb2wtPm1ibWlubWF4bGVuLAogCQkJCWlmaWVsZC0+cHJlZml4X2xl biwKIAkJCQlsZW4sIGRmaWVsZF9nZXRfZGF0YShmaWVsZCkpOwogCQkJZGZpZWxkX3NldF9sZW4o ZmllbGQsIGxlbik7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93 MG15c3FsLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jCXJldmlkOnZh c2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDA2MjgxMjUyMjQtdjZtOXpzdDQ1MzJmZG9peAorKysg Yi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbXlzcWwuYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0NHo5NGdnCkBAIC0yNjYsNiArMjY2LDQ5 IEBAIHJvd19teXNxbF9yZWFkX2Jsb2JfcmVmKAogfQogCiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCitQYWQgYSBjb2x1 bW4gd2l0aCBzcGFjZXMuICovCitVTklWX0lOVEVSTgordm9pZAorcm93X215c3FsX3BhZF9jb2wo CisvKj09PT09PT09PT09PT09Ki8KKwl1bGludAltYm1pbmxlbiwJLyohPCBpbjogbWluaW11bSBz aXplIG9mIGEgY2hhcmFjdGVyLAorCQkJCWluIGJ5dGVzICovCisJYnl0ZSoJcGFkLAkJLyohPCBv dXQ6IHBhZGRlZCBidWZmZXIgKi8KKwl1bGludAlsZW4pCQkvKiE8IGluOiBudW1iZXIgb2YgYnl0 ZXMgdG8gcGFkICovCit7CisJY29uc3QgYnl0ZSoJcGFkX2VuZDsKKworCXN3aXRjaCAoVU5JVl9F WFBFQ1QobWJtaW5sZW4sIDEpKSB7CisJZGVmYXVsdDoKKwkJdXRfZXJyb3I7CisJY2FzZSAxOgor CQkvKiBzcGFjZT0weDIwICovCisJCW1lbXNldChwYWQsIDB4MjAsIGxlbik7CisJCWJyZWFrOwor CWNhc2UgMjoKKwkJLyogc3BhY2U9MHgwMDIwICovCisJCXBhZF9lbmQgPSBwYWQgKyBsZW47CisJ CXV0X2EoIShsZW4gJSAyKSk7CisJCWRvIHsKKwkJCSpwYWQrKyA9IDB4MDA7CisJCQkqcGFkKysg PSAweDIwOworCQl9IHdoaWxlIChwYWQgPCBwYWRfZW5kKTsKKwkJYnJlYWs7CisJY2FzZSA0Ogor CQkvKiBzcGFjZT0weDAwMDAwMDIwICovCisJCXBhZF9lbmQgPSBwYWQgKyBsZW47CisJCXV0X2Eo IShsZW4gJSA0KSk7CisJCWRvIHsKKwkJCSpwYWQrKyA9IDB4MDA7CisJCQkqcGFkKysgPSAweDAw OworCQkJKnBhZCsrID0gMHgwMDsKKwkJCSpwYWQrKyA9IDB4MjA7CisJCX0gd2hpbGUgKHBhZCA8 IHBhZF9lbmQpOworCQlicmVhazsKKwl9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFN0b3JlcyBhIG5vbi1T UUwtTlVMTCBmaWVsZCBnaXZlbiBpbiB0aGUgTXlTUUwgZm9ybWF0IGluIHRoZSBJbm5vREIgZm9y bWF0LgogVGhlIGNvdW50ZXJwYXJ0IG9mIHRoaXMgZnVuY3Rpb24gaXMgcm93X3NlbF9maWVsZF9z dG9yZV9pbl9teXNxbF9mb3JtYXQoKSBpbgogcm93MHNlbC5jLgpAQCAtMzU3LDEyICs0MDAsMjgg QEAgcm93X215c3FsX3N0b3JlX2NvbF9pbl9pbm5vYmFzZV9mb3JtYXQoCiAJCQkvKiBSZW1vdmUg dHJhaWxpbmcgc3BhY2VzIGZyb20gb2xkIHN0eWxlIFZBUkNIQVIKIAkJCWNvbHVtbnMuICovCiAK LQkJCS8qIEhhbmRsZSBVQ1MyIHN0cmluZ3MgZGlmZmVyZW50bHkuICovCisJCQkvKiBIYW5kbGUg VW5pY29kZSBzdHJpbmdzIGRpZmZlcmVudGx5LiAqLwogCQkJdWxpbnQJbWJtaW5sZW4JPSBkdHlw ZV9nZXRfbWJtaW5sZW4oZHR5cGUpOwogCiAJCQlwdHIgPSBteXNxbF9kYXRhOwogCi0JCQlpZiAo bWJtaW5sZW4gPT0gMikgeworCQkJc3dpdGNoIChtYm1pbmxlbikgeworCQkJZGVmYXVsdDoKKwkJ CQl1dF9lcnJvcjsKKwkJCWNhc2UgNDoKKwkJCQkvKiBzcGFjZT0weDAwMDAwMDIwICovCisJCQkJ LyogVHJpbSAiaGFsZi1jaGFycyIsIGp1c3QgaW4gY2FzZS4gKi8KKwkJCQljb2xfbGVuICY9IH4z OworCisJCQkJd2hpbGUgKGNvbF9sZW4gPj0gNAorCQkJCSAgICAgICAmJiBwdHJbY29sX2xlbiAt IDRdID09IDB4MDAKKwkJCQkgICAgICAgJiYgcHRyW2NvbF9sZW4gLSAzXSA9PSAweDAwCisJCQkJ ICAgICAgICYmIHB0cltjb2xfbGVuIC0gMl0gPT0gMHgwMAorCQkJCSAgICAgICAmJiBwdHJbY29s X2xlbiAtIDFdID09IDB4MjApIHsKKwkJCQkJY29sX2xlbiAtPSA0OworCQkJCX0KKwkJCQlicmVh azsKKwkJCWNhc2UgMjoKIAkJCQkvKiBzcGFjZT0weDAwMjAgKi8KIAkJCQkvKiBUcmltICJoYWxm LWNoYXJzIiwganVzdCBpbiBjYXNlLiAqLwogCQkJCWNvbF9sZW4gJj0gfjE7CkBAIC0zNzEsOCAr NDMwLDggQEAgcm93X215c3FsX3N0b3JlX2NvbF9pbl9pbm5vYmFzZV9mb3JtYXQoCiAJCQkJICAg ICAgICYmIHB0cltjb2xfbGVuIC0gMV0gPT0gMHgyMCkgewogCQkJCQljb2xfbGVuIC09IDI7CiAJ CQkJfQotCQkJfSBlbHNlIHsKLQkJCQl1dF9hKG1ibWlubGVuID09IDEpOworCQkJCWJyZWFrOwor CQkJY2FzZSAxOgogCQkJCS8qIHNwYWNlPTB4MjAgKi8KIAkJCQl3aGlsZSAoY29sX2xlbiA+IDAK IAkJCQkgICAgICAgJiYgcHRyW2NvbF9sZW4gLSAxXSA9PSAweDIwKSB7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHJvdy5jJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL3Jvdy9yb3cwcm93LmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMDYyODEy NTIyNC12Nm05enN0NDUzMmZkb2l4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzByb3cu YwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0 NHo5NGdnCkBAIC0xNTYsNyArMTU2LDcgQEAgcm93X2J1aWxkX2luZGV4X2VudHJ5KAogCQl9CiAK IAkJbGVuID0gZHR5cGVfZ2V0X2F0X21vc3Rfbl9tYmNoYXJzKAotCQkJY29sLT5wcnR5cGUsIGNv bC0+bWJtaW5sZW4sIGNvbC0+bWJtYXhsZW4sCisJCQljb2wtPnBydHlwZSwgY29sLT5tYm1pbm1h eGxlbiwKIAkJCWluZF9maWVsZC0+cHJlZml4X2xlbiwgbGVuLCBkZmllbGRfZ2V0X2RhdGEoZGZp ZWxkKSk7CiAJCWRmaWVsZF9zZXRfbGVuKGRmaWVsZCwgbGVuKTsKIAl9CkBAIC01MTQsOCArNTE0 LDcgQEAgcm93X2J1aWxkX3Jvd19yZWYoCiAJCQkJZGZpZWxkX3NldF9sZW4oZGZpZWxkLAogCQkJ CQkgICAgICAgZHR5cGVfZ2V0X2F0X21vc3Rfbl9tYmNoYXJzKAogCQkJCQkJICAgICAgIGR0eXBl LT5wcnR5cGUsCi0JCQkJCQkgICAgICAgZHR5cGUtPm1ibWlubGVuLAotCQkJCQkJICAgICAgIGR0 eXBlLT5tYm1heGxlbiwKKwkJCQkJCSAgICAgICBkdHlwZS0+bWJtaW5tYXhsZW4sCiAJCQkJCQkg ICAgICAgY2x1c3RfY29sX3ByZWZpeF9sZW4sCiAJCQkJCQkgICAgICAgbGVuLCAoY2hhciopIGZp ZWxkKSk7CiAJCQl9CkBAIC02MjksOCArNjI4LDcgQEAgbm90Zm91bmQ6CiAJCQkJZGZpZWxkX3Nl dF9sZW4oZGZpZWxkLAogCQkJCQkgICAgICAgZHR5cGVfZ2V0X2F0X21vc3Rfbl9tYmNoYXJzKAog CQkJCQkJICAgICAgIGR0eXBlLT5wcnR5cGUsCi0JCQkJCQkgICAgICAgZHR5cGUtPm1ibWlubGVu LAotCQkJCQkJICAgICAgIGR0eXBlLT5tYm1heGxlbiwKKwkJCQkJCSAgICAgICBkdHlwZS0+bWJt aW5tYXhsZW4sCiAJCQkJCQkgICAgICAgY2x1c3RfY29sX3ByZWZpeF9sZW4sCiAJCQkJCQkgICAg ICAgbGVuLCAoY2hhciopIGZpZWxkKSk7CiAJCQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9yb3cvcm93MHNlbC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw c2VsLmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMDYyODEyNTIyNC12Nm05enN0 NDUzMmZkb2l4CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBzZWwuYwlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYyOTExMzI0OC1mdmw0OGxuenI0NHo5NGdnCkBAIC04 OCwxMCArODgsOCBAQCByb3dfc2VsX3NlY19yZWNfaXNfZm9yX2Jsb2IoCiAvKj09PT09PT09PT09 PT09PT09PT09PT09PSovCiAJdWxpbnQJCW10eXBlLAkJLyohPCBpbjogbWFpbiB0eXBlICovCiAJ dWxpbnQJCXBydHlwZSwJCS8qITwgaW46IHByZWNpc2UgdHlwZSAqLwotCXVsaW50CQltYm1pbmxl biwJLyohPCBpbjogbWluaW11bSBsZW5ndGggb2YgYQotCQkJCQltdWx0aS1ieXRlIGNoYXJhY3Rl ciAqLwotCXVsaW50CQltYm1heGxlbiwJLyohPCBpbjogbWF4aW11bSBsZW5ndGggb2YgYQotCQkJ CQltdWx0aS1ieXRlIGNoYXJhY3RlciAqLworCXVsaW50CQltYm1pbm1heGxlbiwJLyohPCBpbjog bWluaW11bSBhbmQgbWF4aW11bSBsZW5ndGggb2YKKwkJCQkJYSBtdWx0aS1ieXRlIGNoYXJhY3Rl ciAqLwogCWNvbnN0IGJ5dGUqCWNsdXN0X2ZpZWxkLAkvKiE8IGluOiB0aGUgbG9jYWxseSBzdG9y ZWQgcGFydCBvZgogCQkJCQl0aGUgY2x1c3RlcmVkIGluZGV4IGNvbHVtbiwgaW5jbHVkaW5nCiAJ CQkJCXRoZSBCTE9CIHBvaW50ZXI7IHRoZSBjbHVzdGVyZWQKQEAgLTExOSw3ICsxMTcsNyBAQCBy b3dfc2VsX3NlY19yZWNfaXNfZm9yX2Jsb2IoCiAJCXJldHVybihGQUxTRSk7CiAJfQogCi0JbGVu ID0gZHR5cGVfZ2V0X2F0X21vc3Rfbl9tYmNoYXJzKHBydHlwZSwgbWJtaW5sZW4sIG1ibWF4bGVu LAorCWxlbiA9IGR0eXBlX2dldF9hdF9tb3N0X25fbWJjaGFycyhwcnR5cGUsIG1ibWlubWF4bGVu LAogCQkJCQkgIHNlY19sZW4sIGxlbiwgKGNvbnN0IGNoYXIqKSBidWYpOwogCiAJcmV0dXJuKCFj bXBfZGF0YV9kYXRhKG10eXBlLCBwcnR5cGUsIGJ1ZiwgbGVuLCBzZWNfZmllbGQsIHNlY19sZW4p KTsKQEAgLTIwMiwxNCArMjAwLDE0IEBAIHJvd19zZWxfc2VjX3JlY19pc19mb3JfY2x1c3RfcmVj KAogCQkJfQogCiAJCQlsZW4gPSBkdHlwZV9nZXRfYXRfbW9zdF9uX21iY2hhcnMoCi0JCQkJY29s LT5wcnR5cGUsIGNvbC0+bWJtaW5sZW4sIGNvbC0+bWJtYXhsZW4sCisJCQkJY29sLT5wcnR5cGUs IGNvbC0+bWJtaW5tYXhsZW4sCiAJCQkJaWZpZWxkLT5wcmVmaXhfbGVuLCBsZW4sIChjaGFyKikg Y2x1c3RfZmllbGQpOwogCiAJCQlpZiAocmVjX29mZnNfbnRoX2V4dGVybihjbHVzdF9vZmZzLCBj bHVzdF9wb3MpCiAJCQkgICAgJiYgbGVuIDwgc2VjX2xlbikgewogCQkJCWlmICghcm93X3NlbF9z ZWNfcmVjX2lzX2Zvcl9ibG9iKAogCQkJCQkgICAgY29sLT5tdHlwZSwgY29sLT5wcnR5cGUsCi0J CQkJCSAgICBjb2wtPm1ibWlubGVuLCBjb2wtPm1ibWF4bGVuLAorCQkJCQkgICAgY29sLT5tYm1p bm1heGxlbiwKIAkJCQkJICAgIGNsdXN0X2ZpZWxkLCBjbHVzdF9sZW4sCiAJCQkJCSAgICBzZWNf ZmllbGQsIHNlY19sZW4sCiAJCQkJCSAgICBkaWN0X3RhYmxlX3ppcF9zaXplKApAQCAtMjUwOCwx MyArMjUwNiwxMyBAQCByb3dfc2VsX2ZpZWxkX3N0b3JlX2luX215c3FsX2Zvcm1hdCgKIAl1bGlu dAkJbGVuKQkvKiE8IGluOiBsZW5ndGggb2YgdGhlIGRhdGEgKi8KIHsKIAlieXRlKglwdHI7Ci0J Ynl0ZSoJZmllbGRfZW5kOwotCWJ5dGUqCXBhZF9wdHI7CiAKIAl1dF9hZChsZW4gIT0gVU5JVl9T UUxfTlVMTCk7CiAJVU5JVl9NRU1fQVNTRVJUX1JXKGRhdGEsIGxlbik7CiAKIAlzd2l0Y2ggKHRl bXBsLT50eXBlKSB7CisJCWNvbnN0IGJ5dGUqCWZpZWxkX2VuZDsKKwkJYnl0ZSoJCXBhZDsKIAlj YXNlIERBVEFfSU5UOgogCQkvKiBDb252ZXJ0IGludGVnZXIgZGF0YSBmcm9tIElubm9iYXNlIHRv IGEgbGl0dGxlLWVuZGlhbgogCQlmb3JtYXQsIHNpZ24gYml0IHJlc3RvcmVkIHRvIG5vcm1hbCAq LwpAQCAtMjU1OCwzOCArMjU1NiwzMiBAQCByb3dfc2VsX2ZpZWxkX3N0b3JlX2luX215c3FsX2Zv cm1hdCgKIAkJdW51c2VkIGVuZCBvZiBhID49IDUuMC4zIHRydWUgVkFSQ0hBUiBjb2x1bW4sIGp1 c3QgaW4gY2FzZQogCQlNeVNRTCBleHBlY3RzIGl0cyBjb250ZW50cyB0byBiZSBkZXRlcm1pbmlz dGljLiAqLwogCi0JCXBhZF9wdHIgPSBkZXN0ICsgbGVuOworCQlwYWQgPSBkZXN0ICsgbGVuOwog CiAJCXV0X2FkKHRlbXBsLT5tYm1pbmxlbiA8PSB0ZW1wbC0+bWJtYXhsZW4pOwogCi0JCS8qIFdl IGhhbmRsZSBVQ1MyIGNoYXJzZXQgc3RyaW5ncyBkaWZmZXJlbnRseS4gKi8KLQkJaWYgKHRlbXBs LT5tYm1pbmxlbiA9PSAyKSB7Ci0JCQkvKiBBIHNwYWNlIGNoYXIgaXMgdHdvIGJ5dGVzLCAweDAw MjAgaW4gVUNTMiAqLworCQkvKiBXZSB0cmVhdCBzb21lIFVuaWNvZGUgY2hhcnNldCBzdHJpbmdz IHNwZWNpYWxseS4gKi8KKwkJc3dpdGNoICh0ZW1wbC0+bWJtaW5sZW4pIHsKKwkJY2FzZSA0Ogor CQkJLyogSW5ub0RCIHNob3VsZCBuZXZlciBoYXZlIHN0cmlwcGVkIHBhcnRpYWwKKwkJCVVURi0z MiBjaGFyYWN0ZXJzLiAqLworCQkJdXRfYSghKGxlbiAmIDMpKTsKKwkJCWJyZWFrOworCQljYXNl IDI6CisJCQkvKiBBIHNwYWNlIGNoYXIgaXMgdHdvIGJ5dGVzLAorCQkJMHgwMDIwIGluIFVDUzIg YW5kIFVURi0xNiAqLwogCi0JCQlpZiAobGVuICYgMSkgeworCQkJaWYgKFVOSVZfVU5MSUtFTFko bGVuICYgMSkpIHsKIAkJCQkvKiBBIDB4MjAgaGFzIGJlZW4gc3RyaXBwZWQgZnJvbSB0aGUgY29s dW1uLgogCQkJCVBhZCBpdCBiYWNrLiAqLwogCi0JCQkJaWYgKHBhZF9wdHIgPCBmaWVsZF9lbmQp IHsKLQkJCQkJKnBhZF9wdHIgPSAweDIwOwotCQkJCQlwYWRfcHRyKys7CisJCQkJaWYgKHBhZCA8 IGZpZWxkX2VuZCkgeworCQkJCQkqcGFkKysgPSAweDIwOwogCQkJCX0KIAkJCX0KLQotCQkJLyog UGFkIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgd2l0aCAweDAwMjAgKi8KLQotCQkJd2hpbGUgKHBh ZF9wdHIgPCBmaWVsZF9lbmQpIHsKLQkJCQkqcGFkX3B0ciA9IDB4MDA7Ci0JCQkJcGFkX3B0cisr OwotCQkJCSpwYWRfcHRyID0gMHgyMDsKLQkJCQlwYWRfcHRyKys7Ci0JCQl9Ci0JCX0gZWxzZSB7 Ci0JCQl1dF9hZCh0ZW1wbC0+bWJtaW5sZW4gPT0gMSk7Ci0JCQkvKiBzcGFjZT0weDIwICovCi0K LQkJCW1lbXNldChwYWRfcHRyLCAweDIwLCBmaWVsZF9lbmQgLSBwYWRfcHRyKTsKIAkJfQorCisJ CXJvd19teXNxbF9wYWRfY29sKHRlbXBsLT5tYm1pbmxlbiwgcGFkLCBmaWVsZF9lbmQgLSBwYWQp OwogCQlicmVhazsKIAogCWNhc2UgREFUQV9CTE9COgpAQCAtMjYxNCw5ICsyNjA2LDkgQEAgcm93 X3NlbF9maWVsZF9zdG9yZV9pbl9teXNxbF9mb3JtYXQoCiAJCSAgICAgIHx8ICEodGVtcGwtPm15 c3FsX2NvbF9sZW4gJSB0ZW1wbC0+bWJtYXhsZW4pKTsKIAkJdXRfYWQobGVuICogdGVtcGwtPm1i bWF4bGVuID49IHRlbXBsLT5teXNxbF9jb2xfbGVuKTsKIAotCQlpZiAodGVtcGwtPm1ibWlubGVu ICE9IHRlbXBsLT5tYm1heGxlbikgeworCQlpZiAodGVtcGwtPm1ibWlubGVuID09IDEgJiYgdGVt cGwtPm1ibWF4bGVuICE9IDEpIHsKIAkJCS8qIFBhZCB3aXRoIHNwYWNlcy4gVGhpcyB1bmRvZXMg dGhlIHN0cmlwcGluZwotCQkJZG9uZSBpbiByb3cwbXlzcWwuaWMsIGZ1bmN0aW9uCisJCQlkb25l IGluIHJvdzBteXNxbC5jLCBmdW5jdGlvbgogCQkJcm93X215c3FsX3N0b3JlX2NvbF9pbl9pbm5v YmFzZV9mb3JtYXQoKS4gKi8KIAogCQkJbWVtc2V0KGRlc3QgKyBsZW4sIDB4MjAsIHRlbXBsLT5t eXNxbF9jb2xfbGVuIC0gbGVuKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNl L3Jvdy9yb3cwdXBkLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB1cGQuYwlyZXZp ZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6c3Q0NTMyZmRvaXgK KysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTAwNjI5MTEzMjQ4LWZ2bDQ4bG56cjQ0ejk0Z2cKQEAgLTk0OSw3ICs5NDks NyBAQCByb3dfdXBkX2luZGV4X3JlcGxhY2VfbmV3X2NvbF92YWwoCiAJCX0KIAogCQlsZW4gPSBk dHlwZV9nZXRfYXRfbW9zdF9uX21iY2hhcnMoY29sLT5wcnR5cGUsCi0JCQkJCQkgIGNvbC0+bWJt aW5sZW4sIGNvbC0+bWJtYXhsZW4sCisJCQkJCQkgIGNvbC0+bWJtaW5tYXhsZW4sCiAJCQkJCQkg IGZpZWxkLT5wcmVmaXhfbGVuLCBsZW4sCiAJCQkJCQkgIChjb25zdCBjaGFyKikgZGF0YSk7CiAK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdHJ4LmMnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDB0cnguYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUu Y29tLTIwMTAwNjI4MTI1MjI0LXY2bTl6c3Q0NTMyZmRvaXgKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS90cngvdHJ4MHRyeC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjI5MTEz MjQ4LWZ2bDQ4bG56cjQ0ejk0Z2cKQEAgLTIwMjQsNyArMjAyNCw3IEBAIHRyeF9nZXRfdHJ4X2J5 X3hpZCgKIAl3aGlsZSAodHJ4KSB7CiAJCS8qIENvbXBhcmUgdHdvIFgvT3BlbiBYQSB0cmFuc2Fj dGlvbiBpZCdzOiB0aGVpcgogCQlsZW5ndGggc2hvdWxkIGJlIHRoZSBzYW1lIGFuZCBiaW5hcnkg Y29tcGFyaXNvbgotCQlvZiBndHJpZF9sZW5naHQrYnF1YWxfbGVuZ3RoIGJ5dGVzIHNob3VsZCBi ZQorCQlvZiBndHJpZF9sZW5ndGgrYnF1YWxfbGVuZ3RoIGJ5dGVzIHNob3VsZCBiZQogCQl0aGUg c2FtZSAqLwogCiAJCWlmICh4aWQtPmd0cmlkX2xlbmd0aCA9PSB0cngtPnhpZC5ndHJpZF9sZW5n dGgKCg== --===============1042648653== 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.5-innodb/ # testament_sha1: 6ad5b3ad9f49dfb975196ac7ff4b17facec77e74 # timestamp: 2010-06-29 14:33:06 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # base_revision_id: vasil.dimov@stripped\ # v6m9zst4532fdoix # # Begin bundle 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 --===============1042648653==--