From: marko.makela Date: June 2 2010 10:37am Subject: bzr commit into mysql-5.1-innodb branch (marko.makela:3495) Bug#53674 List-Archive: http://lists.mysql.com/commits/109928 X-Bug: 53674 Message-Id: <201006021037.o528BZhc030782@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1468732507==" --===============1468732507== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjEtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYwMjEwMjYzNy0ydGRv djdqZ3g2MTN2cnJzCgogMzQ5NSBNYXJrbyBNw6RrZWzDpAkyMDEwLTA2LTAyCiAgICAgIEJ1ZyM1 MzY3NDogSW5ub0RCOiBFcnJvcjogdW5sb2NrIHJvdyBjb3VsZCBub3QgZmluZCBhIDQgbW9kZSBs b2NrIG9uIHRoZSByZWNvcmQKICAgICAgCiAgICAgIEluIHNlbWktY29uc2lzdGVudCByZWFkLCBv bmx5IHVubG9jayBmcmVzaGx5IGxvY2tlZCBub24tbWF0Y2hpbmcgcmVjb3Jkcy4KICAgICAgCiAg ICAgIGxvY2tfcmVjX2xvY2tfZmFzdCgpOiBSZXR1cm4gTE9DS19SRUNfU1VDQ0VTUywKICAgICAg TE9DS19SRUNfU1VDQ0VTU19DUkVBVEVELCBvciBMT0NLX1JFQ19GQUlMIGluc3RlYWQgb2YgVFJV RS9GQUxTRS4KICAgICAgCiAgICAgIGVudW0gZGJfZXJyOiBBZGQgREJfU1VDQ0VTU19MT0NLRURf UkVDIGZvciBpbmRpY2F0aW5nIGEgc3VjY2Vzc2Z1bAogICAgICBvcGVyYXRpb24gd2hlcmUgYSBy ZWNvcmQgbG9jayB3YXMgY3JlYXRlZC4KICAgICAgCiAgICAgIGxvY2tfc2VjX3JlY19yZWFkX2No ZWNrX2FuZF9sb2NrKCksCiAgICAgIGxvY2tfY2x1c3RfcmVjX3JlYWRfY2hlY2tfYW5kX2xvY2so KSwgbG9ja19yZWNfZW5xdWV1ZV93YWl0aW5nKCksCiAgICAgIGxvY2tfcmVjX2xvY2tfc2xvdygp LCBsb2NrX3JlY19sb2NrKCksIHJvd19pbnNfc2V0X3NoYXJlZF9yZWNfbG9jaygpLAogICAgICBy b3dfaW5zX3NldF9leGNsdXNpdmVfcmVjX2xvY2soKSwgc2VsX3NldF9yZWNfbG9jaygpLAogICAg ICByb3dfc2VsX2dldF9jbHVzdF9yZWNfZm9yX215c3FsKCk6IFJldHVybiBEQl9TVUNDRVNTX0xP Q0tFRF9SRUMgaWYgYQogICAgICBuZXcgcmVjb3JkIGxvY2sgd2FzIGNyZWF0ZWQuIEFkanVzdCBj YWxsZXJzLgogICAgICAKICAgICAgcm93X3VubG9ja19mb3JfbXlzcWwoKTogQ29ycmVjdCB0aGUg ZnVuY3Rpb24gZG9jdW1lbnRhdGlvbi4KICAgICAgCiAgICAgIHJvd19wcmVidWlsdF90OjpuZXdf cmVjX2xvY2tzOiBDb3JyZWN0IHRoZSBkb2N1bWVudGF0aW9uLgoKICAgIGFkZGVkOgogICAgICBt eXNxbC10ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4vci9pbm5vZGJfYnVnNTM2NzQucmVzdWx0CiAg ICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi90L2lubm9kYl9idWc1MzY3NC1tYXN0 ZXIub3B0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi90L2lubm9kYl9idWc1 MzY3NC50ZXN0CiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1 ZGUvZGIwZXJyLmgKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvbG9jazBsb2Nr LmgKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvcm93MG15c3FsLmgKICAgICAg c3RvcmFnZS9pbm5vZGJfcGx1Z2luL2xvY2svbG9jazBsb2NrLmMKICAgICAgc3RvcmFnZS9pbm5v ZGJfcGx1Z2luL3Jvdy9yb3cwaW5zLmMKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9y b3cwbXlzcWwuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBzZWwuYwo9PT0g YWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1Z2luL3IvaW5ub2RiX2J1ZzUz Njc0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1Z2luL3IvaW5ub2Ri X2J1ZzUzNjc0LnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRl c3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi9yL2lubm9kYl9idWc1MzY3NC5yZXN1bHQJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MDIxMDM3MTQtMG53eGRxc2tlYjFpaG96agpAQCAt MCwwICsxLDExIEBACitjcmVhdGUgdGFibGUgYnVnNTM2NzQoYSBpbnQpZW5naW5lPWlubm9kYjsK K2luc2VydCBpbnRvIGJ1ZzUzNjc0IHZhbHVlcyAoMSksKDIpOworc3RhcnQgdHJhbnNhY3Rpb247 CitzZWxlY3QgKiBmcm9tIGJ1ZzUzNjc0IGZvciB1cGRhdGU7CithCisxCisyCitzZWxlY3QgKiBm cm9tIGJ1ZzUzNjc0IHdoZXJlIGE9KHNlbGVjdCBhIGZyb20gYnVnNTM2NzQgd2hlcmUgYSA+IDEp OworYQorMgorZHJvcCB0YWJsZSBidWc1MzY3NDsKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0 L3N1aXRlL2lubm9kYl9wbHVnaW4vdC9pbm5vZGJfYnVnNTM2NzQtbWFzdGVyLm9wdCcKLS0tIGEv bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1Z2luL3QvaW5ub2RiX2J1ZzUzNjc0LW1hc3Rlci5v cHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2lubm9k Yl9wbHVnaW4vdC9pbm5vZGJfYnVnNTM2NzQtbWFzdGVyLm9wdAlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEwMDYwMjEwMzcxNC0wbnd4ZHFza2ViMWlob3pqCkBAIC0wLDAgKzEgQEAK Ky0tbG9nLWJpbiAtLWlubm9kYi1sb2Nrcy11bnNhZmUtZm9yLWJpbmxvZyAtLWJpbmxvZy1mb3Jt YXQ9bWl4ZWQKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4v dC9pbm5vZGJfYnVnNTM2NzQudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1 Z2luL3QvaW5ub2RiX2J1ZzUzNjc0LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4vdC9pbm5vZGJfYnVnNTM2NzQudGVzdAly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYwMjEwMzcxNC0wbnd4ZHFza2ViMWlo b3pqCkBAIC0wLDAgKzEsOCBAQAorLS0gc291cmNlIGluY2x1ZGUvaGF2ZV9pbm5vZGJfcGx1Z2lu LmluYworCitjcmVhdGUgdGFibGUgYnVnNTM2NzQoYSBpbnQpZW5naW5lPWlubm9kYjsKK2luc2Vy dCBpbnRvIGJ1ZzUzNjc0IHZhbHVlcyAoMSksKDIpOworc3RhcnQgdHJhbnNhY3Rpb247CitzZWxl Y3QgKiBmcm9tIGJ1ZzUzNjc0IGZvciB1cGRhdGU7CitzZWxlY3QgKiBmcm9tIGJ1ZzUzNjc0IHdo ZXJlIGE9KHNlbGVjdCBhIGZyb20gYnVnNTM2NzQgd2hlcmUgYSA+IDEpOworZHJvcCB0YWJsZSBi dWc1MzY3NDsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVk ZS9kYjBlcnIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvZGIwZXJyLmgJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MDIxMDI2MzctMnRkb3Y3amd4NjEz dnJycworKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9kYjBlcnIuaAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYwMjEwMzcxNC0wbnd4ZHFza2ViMWlob3pqCkBA IC0yOCw2ICsyOCw4IEBAIENyZWF0ZWQgNS8yNC8xOTk2IEhlaWtraSBUdXVyaQogCiAKIGVudW0g ZGJfZXJyIHsKKwlEQl9TVUNDRVNTX0xPQ0tFRF9SRUMgPSA5LAkvKiE8IGxpa2UgREJfU1VDQ0VT UywgYnV0IGEgbmV3CisJCQkJCWV4cGxpY2l0IHJlY29yZCBsb2NrIHdhcyBjcmVhdGVkICovCiAJ REJfU1VDQ0VTUyA9IDEwLAogCiAJLyogVGhlIGZvbGxvd2luZyBhcmUgZXJyb3IgY29kZXMgKi8K Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9sb2NrMGxv Y2suaCcKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvbG9jazBsb2NrLmgJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MDIxMDI2MzctMnRkb3Y3amd4NjEzdnJy cworKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9sb2NrMGxvY2suaAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYwMjEwMzcxNC0wbnd4ZHFza2ViMWlob3pqCkBA IC0zNDAsMTEgKzM0MCwxMiBAQCBsb2NrX3NlY19yZWNfbW9kaWZ5X2NoZWNrX2FuZF9sb2NrKAog CXF1ZV90aHJfdCoJdGhyLAkvKiE8IGluOiBxdWVyeSB0aHJlYWQgKi8KIAltdHJfdCoJCW10cik7 CS8qITwgaW4vb3V0OiBtaW5pLXRyYW5zYWN0aW9uICovCiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotTGlr ZSB0aGUgY291bnRlcnBhcnQgZm9yIGEgY2x1c3RlcmVkIGluZGV4IGJlbG93LCBidXQgbm93IHdl IHJlYWQgYQorTGlrZSBsb2NrX2NsdXN0X3JlY19yZWFkX2NoZWNrX2FuZF9sb2NrKCksIGJ1dCBy ZWFkcyBhCiBzZWNvbmRhcnkgaW5kZXggcmVjb3JkLgotQHJldHVybglEQl9TVUNDRVNTLCBEQl9M T0NLX1dBSVQsIERCX0RFQURMT0NLLCBvciBEQl9RVUVfVEhSX1NVU1BFTkRFRCAqLworQHJldHVy bglEQl9TVUNDRVNTLCBEQl9TVUNDRVNTX0xPQ0tFRF9SRUMsIERCX0xPQ0tfV0FJVCwgREJfREVB RExPQ0ssCitvciBEQl9RVUVfVEhSX1NVU1BFTkRFRCAqLwogVU5JVl9JTlRFUk4KLXVsaW50Citl bnVtIGRiX2VycgogbG9ja19zZWNfcmVjX3JlYWRfY2hlY2tfYW5kX2xvY2soCiAvKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ki8KIAl1bGludAkJCWZsYWdzLAkvKiE8IGluOiBpZiBCVFJf Tk9fTE9DS0lOR19GTEFHCkBAIC0zNzEsOSArMzcyLDEwIEBAIGlmIHRoZSBxdWVyeSB0aHJlYWQg c2hvdWxkIGFueXdheSBiZSBzdXMKIHB1dHMgdGhlIHRyYW5zYWN0aW9uIGFuZCB0aGUgcXVlcnkg dGhyZWFkIHRvIHRoZSBsb2NrIHdhaXQgc3RhdGUgYW5kIGluc2VydHMgYQogd2FpdGluZyByZXF1 ZXN0IGZvciBhIHJlY29yZCBsb2NrIHRvIHRoZSBsb2NrIHF1ZXVlLiBTZXRzIHRoZSByZXF1ZXN0 ZWQgbW9kZQogbG9jayBvbiB0aGUgcmVjb3JkLgotQHJldHVybglEQl9TVUNDRVNTLCBEQl9MT0NL X1dBSVQsIERCX0RFQURMT0NLLCBvciBEQl9RVUVfVEhSX1NVU1BFTkRFRCAqLworQHJldHVybglE Ql9TVUNDRVNTLCBEQl9TVUNDRVNTX0xPQ0tFRF9SRUMsIERCX0xPQ0tfV0FJVCwgREJfREVBRExP Q0ssCitvciBEQl9RVUVfVEhSX1NVU1BFTkRFRCAqLwogVU5JVl9JTlRFUk4KLXVsaW50CitlbnVt IGRiX2VycgogbG9ja19jbHVzdF9yZWNfcmVhZF9jaGVja19hbmRfbG9jaygKIC8qPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PSovCiAJdWxpbnQJCQlmbGFncywJLyohPCBpbjogaWYgQlRS X05PX0xPQ0tJTkdfRkxBRwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdp bi9pbmNsdWRlL3JvdzBteXNxbC5oJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVk ZS9yb3cwbXlzcWwuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMDYwMjEwMjYz Ny0ydGRvdjdqZ3g2MTN2cnJzCisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL3Jv dzBteXNxbC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjAyMTAzNzE0LTBu d3hkcXNrZWIxaWhvemoKQEAgLTI2NCwyNyArMjY0LDI2IEBAIHJvd191cGRhdGVfZm9yX215c3Fs KAogCXJvd19wcmVidWlsdF90KglwcmVidWlsdCk7CS8qITwgaW46IHByZWJ1aWx0IHN0cnVjdCBp biBNeVNRTAogCQkJCQloYW5kbGUgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1UaGlzIGNhbiBvbmx5 IGJlIHVzZWQgd2hlbiBzcnZfbG9ja3NfdW5zYWZlX2Zvcl9iaW5sb2cgaXMgVFJVRSBvcgotc2Vz c2lvbiBpcyB1c2luZyBhIFJFQUQgQ09NTUlUVEVEIGlzb2xhdGlvbiBsZXZlbC4gQmVmb3JlCi1j YWxsaW5nIHRoaXMgZnVuY3Rpb24gd2UgbXVzdCB1c2UgdHJ4X3Jlc2V0X25ld19yZWNfbG9ja19p bmZvKCkgYW5kCi10cnhfcmVnaXN0ZXJfbmV3X3JlY19sb2NrKCkgdG8gc3RvcmUgdGhlIGluZm9y bWF0aW9uIHdoaWNoIG5ldyByZWNvcmQgbG9ja3MKLXJlYWxseSB3ZXJlIHNldC4gVGhpcyBmdW5j dGlvbiByZW1vdmVzIGEgbmV3bHkgc2V0IGxvY2sgdW5kZXIgcHJlYnVpbHQtPnBjdXIsCi1hbmQg YWxzbyB1bmRlciBwcmVidWlsdC0+Y2x1c3RfcGN1ci4gQ3VycmVudGx5LCB0aGlzIGlzIG9ubHkg dXNlZCBhbmQgdGVzdGVkCi1pbiB0aGUgY2FzZSBvZiBhbiBVUERBVEUgb3IgYSBERUxFVEUgc3Rh dGVtZW50LCB3aGVyZSB0aGUgcm93IGxvY2sgaXMgb2YgdGhlCi1MT0NLX1ggdHlwZS4KLVRodXMs IHRoaXMgaW1wbGVtZW50cyBhICdtaW5pLXJvbGxiYWNrJyB0aGF0IHJlbGVhc2VzIHRoZSBsYXRl c3QgcmVjb3JkCi1sb2NrcyB3ZSBzZXQuCi1AcmV0dXJuCWVycm9yIGNvZGUgb3IgREJfU1VDQ0VT UyAqLworVGhpcyBjYW4gb25seSBiZSB1c2VkIHdoZW4gc3J2X2xvY2tzX3Vuc2FmZV9mb3JfYmlu bG9nIGlzIFRSVUUgb3IgdGhpcworc2Vzc2lvbiBpcyB1c2luZyBhIFJFQUQgQ09NTUlUVEVEIG9y IFJFQUQgVU5DT01NSVRURUQgaXNvbGF0aW9uIGxldmVsLgorQmVmb3JlIGNhbGxpbmcgdGhpcyBm dW5jdGlvbiByb3dfc2VhcmNoX2Zvcl9teXNxbCgpIG11c3QgaGF2ZQoraW5pdGlhbGl6ZWQgcHJl YnVpbHQtPm5ld19yZWNfbG9ja3MgdG8gc3RvcmUgdGhlIGluZm9ybWF0aW9uIHdoaWNoIG5ldwor cmVjb3JkIGxvY2tzIHJlYWxseSB3ZXJlIHNldC4gVGhpcyBmdW5jdGlvbiByZW1vdmVzIGEgbmV3 bHkgc2V0CitjbHVzdGVyZWQgaW5kZXggcmVjb3JkIGxvY2sgdW5kZXIgcHJlYnVpbHQtPnBjdXIg b3IKK3ByZWJ1aWx0LT5jbHVzdF9wY3VyLiAgVGh1cywgdGhpcyBpbXBsZW1lbnRzIGEgJ21pbmkt cm9sbGJhY2snIHRoYXQKK3JlbGVhc2VzIHRoZSBsYXRlc3QgY2x1c3RlcmVkIGluZGV4IHJlY29y ZCBsb2NrIHdlIHNldC4KK0ByZXR1cm4gZXJyb3IgY29kZSBvciBEQl9TVUNDRVNTICovCiBVTklW X0lOVEVSTgogaW50CiByb3dfdW5sb2NrX2Zvcl9teXNxbCgKIC8qPT09PT09PT09PT09PT09PT0q LwotCXJvd19wcmVidWlsdF90KglwcmVidWlsdCwJLyohPCBpbjogcHJlYnVpbHQgc3RydWN0IGlu IE15U1FMCisJcm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0LAkvKiE8IGluL291dDogcHJlYnVpbHQg c3RydWN0IGluIE15U1FMCiAJCQkJCWhhbmRsZSAqLwotCWlib29sCQloYXNfbGF0Y2hlc19vbl9y ZWNzKTsvKiE8IFRSVUUgaWYgY2FsbGVkIHNvIHRoYXQgd2UgaGF2ZQotCQkJCQl0aGUgbGF0Y2hl cyBvbiB0aGUgcmVjb3JkcyB1bmRlciBwY3VyCi0JCQkJCWFuZCBjbHVzdF9wY3VyLCBhbmQgd2Ug ZG8gbm90IG5lZWQgdG8KLQkJCQkJcmVwb3NpdGlvbiB0aGUgY3Vyc29ycy4gKi8KKwlpYm9vbAkJ aGFzX2xhdGNoZXNfb25fcmVjcyk7LyohPCBpbjogVFJVRSBpZiBjYWxsZWQKKwkJCQkJc28gdGhh dCB3ZSBoYXZlIHRoZSBsYXRjaGVzIG9uCisJCQkJCXRoZSByZWNvcmRzIHVuZGVyIHBjdXIgYW5k CisJCQkJCWNsdXN0X3BjdXIsIGFuZCB3ZSBkbyBub3QgbmVlZAorCQkJCQl0byByZXBvc2l0aW9u IHRoZSBjdXJzb3JzLiAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENyZWF0ZXMgYW4gcXVlcnkgZ3Jh cGggbm9kZSBvZiAndXBkYXRlJyB0eXBlIHRvIGJlIHVzZWQgaW4gdGhlIE15U1FMCiBpbnRlcmZh Y2UuCkBAIC03MDIsMTggKzcwMSwxNyBAQCBzdHJ1Y3Qgcm93X3ByZWJ1aWx0X3N0cnVjdCB7CiAJ dWxpbnQJCW5ld19yZWNfbG9ja3M7CS8qITwgbm9ybWFsbHkgMDsgaWYKIAkJCQkJc3J2X2xvY2tz X3Vuc2FmZV9mb3JfYmlubG9nIGlzCiAJCQkJCVRSVUUgb3Igc2Vzc2lvbiBpcyB1c2luZyBSRUFE Ci0JCQkJCUNPTU1JVFRFRCBpc29sYXRpb24gbGV2ZWwsIGluIGEKLQkJCQkJY3Vyc29yIHNlYXJj aCwgaWYgd2Ugc2V0IGEgbmV3Ci0JCQkJCXJlY29yZCBsb2NrIG9uIGFuIGluZGV4LCB0aGlzIGlz Ci0JCQkJCWluY3JlbWVudGVkOyB0aGlzIGlzIHVzZWQgaW4KLQkJCQkJcmVsZWFzaW5nIHRoZSBs b2NrcyB1bmRlciB0aGUKLQkJCQkJY3Vyc29ycyBpZiB3ZSBhcmUgcGVyZm9ybWluZyBhbgotCQkJ CQlVUERBVEUgYW5kIHdlIGRldGVybWluZSBhZnRlcgotCQkJCQlyZXRyaWV2aW5nIHRoZSByb3cg dGhhdCBpdCBkb2VzCi0JCQkJCW5vdCBuZWVkIHRvIGJlIGxvY2tlZDsgdGh1cywKLQkJCQkJdGhl c2UgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEKLQkJCQkJJ21pbmktcm9sbGJhY2snIHRoYXQg cmVsZWFzZXMKLQkJCQkJdGhlIGxhdGVzdCByZWNvcmQgbG9ja3MgKi8KKwkJCQkJQ09NTUlUVEVE IG9yIFJFQUQgVU5DT01NSVRURUQKKwkJCQkJaXNvbGF0aW9uIGxldmVsLCBzZXQgaW4KKwkJCQkJ cm93X3NlYXJjaF9mb3JfbXlzcWwoKSBpZiB3ZSBzZXQgYSBuZXcKKwkJCQkJcmVjb3JkIGxvY2sg b24gdGhlIHNlY29uZGFyeQorCQkJCQlvciBjbHVzdGVyZWQgaW5kZXg7IHRoaXMgaXMKKwkJCQkJ dXNlZCBpbiByb3dfdW5sb2NrX2Zvcl9teXNxbCgpCisJCQkJCXdoZW4gcmVsZWFzaW5nIHRoZSBs b2NrIHVuZGVyCisJCQkJCXRoZSBjdXJzb3IgaWYgd2UgZGV0ZXJtaW5lCisJCQkJCWFmdGVyIHJl dHJpZXZpbmcgdGhlIHJvdyB0aGF0CisJCQkJCWl0IGRvZXMgbm90IG5lZWQgdG8gYmUgbG9ja2Vk CisJCQkJCSgnbWluaS1yb2xsYmFjaycpICovCiAJdWxpbnQJCW15c3FsX3ByZWZpeF9sZW47Lyoh PCBieXRlIG9mZnNldCBvZiB0aGUgZW5kIG9mCiAJCQkJCXRoZSBsYXN0IHJlcXVlc3RlZCBjb2x1 bW4gKi8KIAl1bGludAkJbXlzcWxfcm93X2xlbjsJLyohPCBsZW5ndGggaW4gYnl0ZXMgb2YgYSBy b3cgaW4gdGhlCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2xvY2sv bG9jazBsb2NrLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9sb2NrL2xvY2swbG9jay5j CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjAyMTAyNjM3LTJ0ZG92N2pneDYx M3ZycnMKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2xvY2svbG9jazBsb2NrLmMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MDIxMDM3MTQtMG53eGRxc2tlYjFpaG96agpA QCAtMTczMywxMSArMTczMywxMSBAQCBsb2NrX3JlY19jcmVhdGUoCiBFbnF1ZXVlcyBhIHdhaXRp bmcgcmVxdWVzdCBmb3IgYSBsb2NrIHdoaWNoIGNhbm5vdCBiZSBncmFudGVkIGltbWVkaWF0ZWx5 LgogQ2hlY2tzIGZvciBkZWFkbG9ja3MuCiBAcmV0dXJuIERCX0xPQ0tfV0FJVCwgREJfREVBRExP Q0ssIG9yIERCX1FVRV9USFJfU1VTUEVOREVELCBvcgotREJfU1VDQ0VTUzsgREJfU1VDQ0VTUyBt ZWFucyB0aGF0IHRoZXJlIHdhcyBhIGRlYWRsb2NrLCBidXQgYW5vdGhlcgotdHJhbnNhY3Rpb24g d2FzIGNob3NlbiBhcyBhIHZpY3RpbSwgYW5kIHdlIGdvdCB0aGUgbG9jayBpbW1lZGlhdGVseToK LW5vIG5lZWQgdG8gd2FpdCB0aGVuICovCitEQl9TVUNDRVNTX0xPQ0tFRF9SRUM7IERCX1NVQ0NF U1NfTE9DS0VEX1JFQyBtZWFucyB0aGF0Cit0aGVyZSB3YXMgYSBkZWFkbG9jaywgYnV0IGFub3Ro ZXIgdHJhbnNhY3Rpb24gd2FzIGNob3NlbiBhcyBhIHZpY3RpbSwKK2FuZCB3ZSBnb3QgdGhlIGxv Y2sgaW1tZWRpYXRlbHk6IG5vIG5lZWQgdG8gd2FpdCB0aGVuICovCiBzdGF0aWMKLXVsaW50Citl bnVtIGRiX2VycgogbG9ja19yZWNfZW5xdWV1ZV93YWl0aW5nKAogLyo9PT09PT09PT09PT09PT09 PT09PT0qLwogCXVsaW50CQkJdHlwZV9tb2RlLC8qITwgaW46IGxvY2sgbW9kZSB0aGlzCkBAIC0x ODA5LDcgKzE4MDksNyBAQCBsb2NrX3JlY19lbnF1ZXVlX3dhaXRpbmcoCiAKIAlpZiAodHJ4LT53 YWl0X2xvY2sgPT0gTlVMTCkgewogCi0JCXJldHVybihEQl9TVUNDRVNTKTsKKwkJcmV0dXJuKERC X1NVQ0NFU1NfTE9DS0VEX1JFQyk7CiAJfQogCiAJdHJ4LT5xdWVfc3RhdGUgPSBUUlhfUVVFX0xP Q0tfV0FJVDsKQEAgLTE5MjUsNiArMTkyNSwxNiBAQCBzb21lYm9keV93YWl0czoKIAlyZXR1cm4o bG9ja19yZWNfY3JlYXRlKHR5cGVfbW9kZSwgYmxvY2ssIGhlYXBfbm8sIGluZGV4LCB0cngpKTsK IH0KIAorLyoqIFJlY29yZCBsb2NraW5nIHJlcXVlc3Qgc3RhdHVzICovCitlbnVtIGxvY2tfcmVj X3JlcV9zdGF0dXMgeworCS8qKiBGYWlsZWQgdG8gYWNxdWlyZSBhIGxvY2sgKi8KKwlMT0NLX1JF Q19GQUlMLAorCS8qKiBTdWNjZWVkZWQgaW4gYWNxdWlyaW5nIGEgbG9jayAoaW1wbGljaXQgb3Ig YWxyZWFkeSBhY3F1aXJlZCkgKi8KKwlMT0NLX1JFQ19TVUNDRVNTLAorCS8qKiBFeHBsaWNpdGx5 IGNyZWF0ZWQgYSBuZXcgbG9jayAqLworCUxPQ0tfUkVDX1NVQ0NFU1NfQ1JFQVRFRAorfTsKKwog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKIFRoaXMgaXMgYSBmYXN0IHJvdXRpbmUgZm9yIGxvY2tpbmcgYSBy ZWNvcmQgaW4gdGhlIG1vc3QgY29tbW9uIGNhc2VzOgogdGhlcmUgYXJlIG5vIGV4cGxpY2l0IGxv Y2tzIG9uIHRoZSBwYWdlLCBvciB0aGVyZSBpcyBqdXN0IG9uZSBsb2NrLCBvd25lZApAQCAtMTkz Miw5ICsxOTQyLDkgQEAgYnkgdGhpcyB0cmFuc2FjdGlvbiwgYW5kIG9mIHRoZSByaWdodCB0eQog d2hpY2ggZG9lcyBOT1QgbG9vayBhdCBpbXBsaWNpdCBsb2NrcyEgQ2hlY2tzIGxvY2sgY29tcGF0 aWJpbGl0eSB3aXRoaW4KIGV4cGxpY2l0IGxvY2tzLiBUaGlzIGZ1bmN0aW9uIHNldHMgYSBub3Jt YWwgbmV4dC1rZXkgbG9jaywgb3IgaW4gdGhlIGNhc2Ugb2YKIGEgcGFnZSBzdXByZW11bSByZWNv cmQsIGEgZ2FwIHR5cGUgbG9jay4KLUByZXR1cm4JVFJVRSBpZiBsb2NraW5nIHN1Y2NlZWRlZCAq LworQHJldHVybiB3aGV0aGVyIHRoZSBsb2NraW5nIHN1Y2NlZWRlZCAqLwogVU5JVl9JTkxJTkUK LWlib29sCitlbnVtIGxvY2tfcmVjX3JlcV9zdGF0dXMKIGxvY2tfcmVjX2xvY2tfZmFzdCgKIC8q PT09PT09PT09PT09PT09Ki8KIAlpYm9vbAkJCWltcGwsCS8qITwgaW46IGlmIFRSVUUsIG5vIGxv Y2sgaXMgc2V0CkBAIC0xOTczLDE5ICsxOTgzLDE5IEBAIGxvY2tfcmVjX2xvY2tfZmFzdCgKIAkJ CWxvY2tfcmVjX2NyZWF0ZShtb2RlLCBibG9jaywgaGVhcF9ubywgaW5kZXgsIHRyeCk7CiAJCX0K IAotCQlyZXR1cm4oVFJVRSk7CisJCXJldHVybihMT0NLX1JFQ19TVUNDRVNTX0NSRUFURUQpOwog CX0KIAogCWlmIChsb2NrX3JlY19nZXRfbmV4dF9vbl9wYWdlKGxvY2spKSB7CiAKLQkJcmV0dXJu KEZBTFNFKTsKKwkJcmV0dXJuKExPQ0tfUkVDX0ZBSUwpOwogCX0KIAogCWlmIChsb2NrLT50cngg IT0gdHJ4CiAJICAgIHx8IGxvY2stPnR5cGVfbW9kZSAhPSAobW9kZSB8IExPQ0tfUkVDKQogCSAg ICB8fCBsb2NrX3JlY19nZXRfbl9iaXRzKGxvY2spIDw9IGhlYXBfbm8pIHsKIAotCQlyZXR1cm4o RkFMU0UpOworCQlyZXR1cm4oTE9DS19SRUNfRkFJTCk7CiAJfQogCiAJaWYgKCFpbXBsKSB7CkBA IC0xOTk0LDEwICsyMDA0LDExIEBAIGxvY2tfcmVjX2xvY2tfZmFzdCgKIAogCQlpZiAoIWxvY2tf cmVjX2dldF9udGhfYml0KGxvY2ssIGhlYXBfbm8pKSB7CiAJCQlsb2NrX3JlY19zZXRfbnRoX2Jp dChsb2NrLCBoZWFwX25vKTsKKwkJCXJldHVybihMT0NLX1JFQ19TVUNDRVNTX0NSRUFURUQpOwog CQl9CiAJfQogCi0JcmV0dXJuKFRSVUUpOworCXJldHVybihMT0NLX1JFQ19TVUNDRVNTKTsKIH0K IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8vKioKQEAgLTIwMDUsOSArMjAxNiwxMCBAQCBUaGlzIGlzIHRoZSBn ZW5lcmFsLCBhbmQgc2xvd2VyLCByb3V0aW5lCiBsb3ctbGV2ZWwgZnVuY3Rpb24gd2hpY2ggZG9l cyBOT1QgbG9vayBhdCBpbXBsaWNpdCBsb2NrcyEgQ2hlY2tzIGxvY2sKIGNvbXBhdGliaWxpdHkg d2l0aGluIGV4cGxpY2l0IGxvY2tzLiBUaGlzIGZ1bmN0aW9uIHNldHMgYSBub3JtYWwgbmV4dC1r ZXkKIGxvY2ssIG9yIGluIHRoZSBjYXNlIG9mIGEgcGFnZSBzdXByZW11bSByZWNvcmQsIGEgZ2Fw IHR5cGUgbG9jay4KLUByZXR1cm4JREJfU1VDQ0VTUywgREJfTE9DS19XQUlULCBvciBlcnJvciBj b2RlICovCitAcmV0dXJuCURCX1NVQ0NFU1MsIERCX1NVQ0NFU1NfTE9DS0VEX1JFQywgREJfTE9D S19XQUlULCBEQl9ERUFETE9DSywKK29yIERCX1FVRV9USFJfU1VTUEVOREVEICovCiBzdGF0aWMK LXVsaW50CitlbnVtIGRiX2VycgogbG9ja19yZWNfbG9ja19zbG93KAogLyo9PT09PT09PT09PT09 PT0qLwogCWlib29sCQkJaW1wbCwJLyohPCBpbjogaWYgVFJVRSwgbm8gbG9jayBpcyBzZXQKQEAg LTIwMjQsNyArMjAzNiw2IEBAIGxvY2tfcmVjX2xvY2tfc2xvdygKIAlxdWVfdGhyX3QqCQl0aHIp CS8qITwgaW46IHF1ZXJ5IHRocmVhZCAqLwogewogCXRyeF90Kgl0cng7Ci0JdWxpbnQJZXJyOwog CiAJdXRfYWQobXV0ZXhfb3duKCZrZXJuZWxfbXV0ZXgpKTsKIAl1dF9hZCgoTE9DS19NT0RFX01B U0sgJiBtb2RlKSAhPSBMT0NLX1MKQEAgLTIwNDMsMjcgKzIwNTQsMjMgQEAgbG9ja19yZWNfbG9j a19zbG93KAogCQkvKiBUaGUgdHJ4IGFscmVhZHkgaGFzIGEgc3Ryb25nIGVub3VnaCBsb2NrIG9u IHJlYzogZG8KIAkJbm90aGluZyAqLwogCi0JCWVyciA9IERCX1NVQ0NFU1M7CiAJfSBlbHNlIGlm IChsb2NrX3JlY19vdGhlcl9oYXNfY29uZmxpY3RpbmcobW9kZSwgYmxvY2ssIGhlYXBfbm8sIHRy eCkpIHsKIAogCQkvKiBJZiBhbm90aGVyIHRyYW5zYWN0aW9uIGhhcyBhIG5vbi1nYXAgY29uZmxp Y3RpbmcgcmVxdWVzdCBpbgogCQl0aGUgcXVldWUsIGFzIHRoaXMgdHJhbnNhY3Rpb24gZG9lcyBu b3QgaGF2ZSBhIGxvY2sgc3Ryb25nCiAJCWVub3VnaCBhbHJlYWR5IGdyYW50ZWQgb24gdGhlIHJl Y29yZCwgd2UgaGF2ZSB0byB3YWl0LiAqLwogCi0JCWVyciA9IGxvY2tfcmVjX2VucXVldWVfd2Fp dGluZyhtb2RlLCBibG9jaywgaGVhcF9ubywKLQkJCQkJICAgICAgIGluZGV4LCB0aHIpOwotCX0g ZWxzZSB7Ci0JCWlmICghaW1wbCkgewotCQkJLyogU2V0IHRoZSByZXF1ZXN0ZWQgbG9jayBvbiB0 aGUgcmVjb3JkICovCi0KLQkJCWxvY2tfcmVjX2FkZF90b19xdWV1ZShMT0NLX1JFQyB8IG1vZGUs IGJsb2NrLAotCQkJCQkgICAgICBoZWFwX25vLCBpbmRleCwgdHJ4KTsKLQkJfQotCi0JCWVyciA9 IERCX1NVQ0NFU1M7CisJCXJldHVybihsb2NrX3JlY19lbnF1ZXVlX3dhaXRpbmcobW9kZSwgYmxv Y2ssIGhlYXBfbm8sCisJCQkJCQlpbmRleCwgdGhyKSk7CisJfSBlbHNlIGlmICghaW1wbCkgewor CQkvKiBTZXQgdGhlIHJlcXVlc3RlZCBsb2NrIG9uIHRoZSByZWNvcmQgKi8KKworCQlsb2NrX3Jl Y19hZGRfdG9fcXVldWUoTE9DS19SRUMgfCBtb2RlLCBibG9jaywKKwkJCQkgICAgICBoZWFwX25v LCBpbmRleCwgdHJ4KTsKKwkJcmV0dXJuKERCX1NVQ0NFU1NfTE9DS0VEX1JFQyk7CiAJfQogCi0J cmV0dXJuKGVycik7CisJcmV0dXJuKERCX1NVQ0NFU1MpOwogfQogCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgpAQCAtMjA3Miw5ICsyMDc5LDEwIEBAIHBvc3NpYmxlLCBlbnF1ZXVlcyBhIHdhaXRpbmcgbG9j ayByZXF1ZXMKIHdoaWNoIGRvZXMgTk9UIGxvb2sgYXQgaW1wbGljaXQgbG9ja3MhIENoZWNrcyBs b2NrIGNvbXBhdGliaWxpdHkgd2l0aGluCiBleHBsaWNpdCBsb2Nrcy4gVGhpcyBmdW5jdGlvbiBz ZXRzIGEgbm9ybWFsIG5leHQta2V5IGxvY2ssIG9yIGluIHRoZSBjYXNlCiBvZiBhIHBhZ2Ugc3Vw cmVtdW0gcmVjb3JkLCBhIGdhcCB0eXBlIGxvY2suCi1AcmV0dXJuCURCX1NVQ0NFU1MsIERCX0xP Q0tfV0FJVCwgb3IgZXJyb3IgY29kZSAqLworQHJldHVybglEQl9TVUNDRVNTLCBEQl9TVUNDRVNT X0xPQ0tFRF9SRUMsIERCX0xPQ0tfV0FJVCwgREJfREVBRExPQ0ssCitvciBEQl9RVUVfVEhSX1NV U1BFTkRFRCAqLwogc3RhdGljCi11bGludAorZW51bSBkYl9lcnIKIGxvY2tfcmVjX2xvY2soCiAv Kj09PT09PT09PT0qLwogCWlib29sCQkJaW1wbCwJLyohPCBpbjogaWYgVFJVRSwgbm8gbG9jayBp cyBzZXQKQEAgLTIwOTAsOCArMjA5OCw2IEBAIGxvY2tfcmVjX2xvY2soCiAJZGljdF9pbmRleF90 KgkJaW5kZXgsCS8qITwgaW46IGluZGV4IG9mIHJlY29yZCAqLwogCXF1ZV90aHJfdCoJCXRocikJ LyohPCBpbjogcXVlcnkgdGhyZWFkICovCiB7Ci0JdWxpbnQJZXJyOwotCiAJdXRfYWQobXV0ZXhf b3duKCZrZXJuZWxfbXV0ZXgpKTsKIAl1dF9hZCgoTE9DS19NT0RFX01BU0sgJiBtb2RlKSAhPSBM T0NLX1MKIAkgICAgICB8fCBsb2NrX3RhYmxlX2hhcyh0aHJfZ2V0X3RyeCh0aHIpLCBpbmRleC0+ dGFibGUsIExPQ0tfSVMpKTsKQEAgLTIxMDMsMTggKzIxMDksMjAgQEAgbG9ja19yZWNfbG9jaygK IAkgICAgICB8fCBtb2RlIC0gKExPQ0tfTU9ERV9NQVNLICYgbW9kZSkgPT0gTE9DS19SRUNfTk9U X0dBUAogCSAgICAgIHx8IG1vZGUgLSAoTE9DS19NT0RFX01BU0sgJiBtb2RlKSA9PSAwKTsKIAot CWlmIChsb2NrX3JlY19sb2NrX2Zhc3QoaW1wbCwgbW9kZSwgYmxvY2ssIGhlYXBfbm8sIGluZGV4 LCB0aHIpKSB7Ci0KLQkJLyogV2UgdHJ5IGEgc2ltcGxpZmllZCBhbmQgZmFzdGVyIHN1YnJvdXRp bmUgZm9yIHRoZSBtb3N0Ci0JCWNvbW1vbiBjYXNlcyAqLwotCi0JCWVyciA9IERCX1NVQ0NFU1M7 Ci0JfSBlbHNlIHsKLQkJZXJyID0gbG9ja19yZWNfbG9ja19zbG93KGltcGwsIG1vZGUsIGJsb2Nr LAotCQkJCQkgaGVhcF9ubywgaW5kZXgsIHRocik7CisJLyogV2UgdHJ5IGEgc2ltcGxpZmllZCBh bmQgZmFzdGVyIHN1YnJvdXRpbmUgZm9yIHRoZSBtb3N0CisJY29tbW9uIGNhc2VzICovCisJc3dp dGNoIChsb2NrX3JlY19sb2NrX2Zhc3QoaW1wbCwgbW9kZSwgYmxvY2ssIGhlYXBfbm8sIGluZGV4 LCB0aHIpKSB7CisJY2FzZSBMT0NLX1JFQ19TVUNDRVNTOgorCQlyZXR1cm4oREJfU1VDQ0VTUyk7 CisJY2FzZSBMT0NLX1JFQ19TVUNDRVNTX0NSRUFURUQ6CisJCXJldHVybihEQl9TVUNDRVNTX0xP Q0tFRF9SRUMpOworCWNhc2UgTE9DS19SRUNfRkFJTDoKKwkJcmV0dXJuKGxvY2tfcmVjX2xvY2tf c2xvdyhpbXBsLCBtb2RlLCBibG9jaywKKwkJCQkJICBoZWFwX25vLCBpbmRleCwgdGhyKSk7CiAJ fQogCi0JcmV0dXJuKGVycik7CisJdXRfZXJyb3I7CisJcmV0dXJuKERCX0VSUk9SKTsKIH0KIAog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKQEAgLTUwNzIsNyArNTA4MCwxNCBAQCBsb2NrX3JlY19pbnNlcnRf Y2hlY2tfYW5kX2xvY2soCiAKIAlsb2NrX211dGV4X2V4aXRfa2VybmVsKCk7CiAKLQlpZiAoKGVy ciA9PSBEQl9TVUNDRVNTKSAmJiAhZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkpIHsKKwlzd2l0 Y2ggKGVycikgeworCWNhc2UgREJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQllcnIgPSBEQl9TVUND RVNTOworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwljYXNlIERCX1NVQ0NFU1M6CisJCWlmIChkaWN0 X2luZGV4X2lzX2NsdXN0KGluZGV4KSkgeworCQkJYnJlYWs7CisJCX0KIAkJLyogVXBkYXRlIHRo ZSBwYWdlIG1heCB0cnggaWQgZmllbGQgKi8KIAkJcGFnZV91cGRhdGVfbWF4X3RyeF9pZChibG9j aywKIAkJCQkgICAgICAgYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9jayksCkBAIC01MTk1LDYg KzUyMTAsMTAgQEAgbG9ja19jbHVzdF9yZWNfbW9kaWZ5X2NoZWNrX2FuZF9sb2NrKAogCiAJdXRf YWQobG9ja19yZWNfcXVldWVfdmFsaWRhdGUoYmxvY2ssIHJlYywgaW5kZXgsIG9mZnNldHMpKTsK IAorCWlmIChVTklWX1VOTElLRUxZKGVyciA9PSBEQl9TVUNDRVNTX0xPQ0tFRF9SRUMpKSB7CisJ CWVyciA9IERCX1NVQ0NFU1M7CisJfQorCiAJcmV0dXJuKGVycik7CiB9CiAKQEAgLTUyNjEsMjIg KzUyODAsMjcgQEAgbG9ja19zZWNfcmVjX21vZGlmeV9jaGVja19hbmRfbG9jaygKIAl9CiAjZW5k aWYgLyogVU5JVl9ERUJVRyAqLwogCi0JaWYgKGVyciA9PSBEQl9TVUNDRVNTKSB7CisJaWYgKGVy ciA9PSBEQl9TVUNDRVNTIHx8IGVyciA9PSBEQl9TVUNDRVNTX0xPQ0tFRF9SRUMpIHsKIAkJLyog VXBkYXRlIHRoZSBwYWdlIG1heCB0cnggaWQgZmllbGQgKi8KKwkJLyogSXQgbWlnaHQgbm90IGJl IG5lY2Vzc2FyeSB0byBkbyB0aGlzIGlmCisJCWVyciA9PSBEQl9TVUNDRVNTIChubyBuZXcgbG9j ayBjcmVhdGVkKSwKKwkJYnV0IGl0IHNob3VsZCBub3QgY29zdCB0b28gbXVjaCBwZXJmb3JtYW5j ZS4gKi8KIAkJcGFnZV91cGRhdGVfbWF4X3RyeF9pZChibG9jaywKIAkJCQkgICAgICAgYnVmX2Js b2NrX2dldF9wYWdlX3ppcChibG9jayksCiAJCQkJICAgICAgIHRocl9nZXRfdHJ4KHRociktPmlk LCBtdHIpOworCQllcnIgPSBEQl9TVUNDRVNTOwogCX0KIAogCXJldHVybihlcnIpOwogfQogCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgotTGlrZSB0aGUgY291bnRlcnBhcnQgZm9yIGEgY2x1c3RlcmVkIGlu ZGV4IGJlbG93LCBidXQgbm93IHdlIHJlYWQgYQorTGlrZSBsb2NrX2NsdXN0X3JlY19yZWFkX2No ZWNrX2FuZF9sb2NrKCksIGJ1dCByZWFkcyBhCiBzZWNvbmRhcnkgaW5kZXggcmVjb3JkLgotQHJl dHVybglEQl9TVUNDRVNTLCBEQl9MT0NLX1dBSVQsIERCX0RFQURMT0NLLCBvciBEQl9RVUVfVEhS X1NVU1BFTkRFRCAqLworQHJldHVybglEQl9TVUNDRVNTLCBEQl9TVUNDRVNTX0xPQ0tFRF9SRUMs IERCX0xPQ0tfV0FJVCwgREJfREVBRExPQ0ssCitvciBEQl9RVUVfVEhSX1NVU1BFTkRFRCAqLwog VU5JVl9JTlRFUk4KLXVsaW50CitlbnVtIGRiX2VycgogbG9ja19zZWNfcmVjX3JlYWRfY2hlY2tf YW5kX2xvY2soCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAl1bGludAkJCWZs YWdzLAkvKiE8IGluOiBpZiBCVFJfTk9fTE9DS0lOR19GTEFHCkBAIC01Mjk3LDggKzUzMjEsOCBA QCBsb2NrX3NlY19yZWNfcmVhZF9jaGVja19hbmRfbG9jaygKIAkJCQkJTE9DS19SRUNfTk9UX0dB UCAqLwogCXF1ZV90aHJfdCoJCXRocikJLyohPCBpbjogcXVlcnkgdGhyZWFkICovCiB7Ci0JdWxp bnQJZXJyOwotCXVsaW50CWhlYXBfbm87CisJZW51bSBkYl9lcnIJZXJyOworCXVsaW50CQloZWFw X25vOwogCiAJdXRfYWQoIWRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpKTsKIAl1dF9hZChibG9j ay0+ZnJhbWUgPT0gcGFnZV9hbGlnbihyZWMpKTsKQEAgLTUzNDksOSArNTM3MywxMCBAQCBpZiB0 aGUgcXVlcnkgdGhyZWFkIHNob3VsZCBhbnl3YXkgYmUgc3VzCiBwdXRzIHRoZSB0cmFuc2FjdGlv biBhbmQgdGhlIHF1ZXJ5IHRocmVhZCB0byB0aGUgbG9jayB3YWl0IHN0YXRlIGFuZCBpbnNlcnRz IGEKIHdhaXRpbmcgcmVxdWVzdCBmb3IgYSByZWNvcmQgbG9jayB0byB0aGUgbG9jayBxdWV1ZS4g U2V0cyB0aGUgcmVxdWVzdGVkIG1vZGUKIGxvY2sgb24gdGhlIHJlY29yZC4KLUByZXR1cm4JREJf U1VDQ0VTUywgREJfTE9DS19XQUlULCBEQl9ERUFETE9DSywgb3IgREJfUVVFX1RIUl9TVVNQRU5E RUQgKi8KK0ByZXR1cm4JREJfU1VDQ0VTUywgREJfU1VDQ0VTU19MT0NLRURfUkVDLCBEQl9MT0NL X1dBSVQsIERCX0RFQURMT0NLLAorb3IgREJfUVVFX1RIUl9TVVNQRU5ERUQgKi8KIFVOSVZfSU5U RVJOCi11bGludAorZW51bSBkYl9lcnIKIGxvY2tfY2x1c3RfcmVjX3JlYWRfY2hlY2tfYW5kX2xv Y2soCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCXVsaW50CQkJZmxhZ3Ms CS8qITwgaW46IGlmIEJUUl9OT19MT0NLSU5HX0ZMQUcKQEAgLTUzNzIsOCArNTM5Nyw4IEBAIGxv Y2tfY2x1c3RfcmVjX3JlYWRfY2hlY2tfYW5kX2xvY2soCiAJCQkJCUxPQ0tfUkVDX05PVF9HQVAg Ki8KIAlxdWVfdGhyX3QqCQl0aHIpCS8qITwgaW46IHF1ZXJ5IHRocmVhZCAqLwogewotCXVsaW50 CWVycjsKLQl1bGludAloZWFwX25vOworCWVudW0gZGJfZXJyCWVycjsKKwl1bGludAkJaGVhcF9u bzsKIAogCXV0X2FkKGRpY3RfaW5kZXhfaXNfY2x1c3QoaW5kZXgpKTsKIAl1dF9hZChibG9jay0+ ZnJhbWUgPT0gcGFnZV9hbGlnbihyZWMpKTsKQEAgLTU0NDQsMTcgKzU0NjksMjIgQEAgbG9ja19j bHVzdF9yZWNfcmVhZF9jaGVja19hbmRfbG9ja19hbHQoCiAJbWVtX2hlYXBfdCoJdG1wX2hlYXAJ PSBOVUxMOwogCXVsaW50CQlvZmZzZXRzX1tSRUNfT0ZGU19OT1JNQUxfU0laRV07CiAJdWxpbnQq CQlvZmZzZXRzCQk9IG9mZnNldHNfOwotCXVsaW50CQlyZXQ7CisJdWxpbnQJCWVycjsKIAlyZWNf b2Zmc19pbml0KG9mZnNldHNfKTsKIAogCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBp bmRleCwgb2Zmc2V0cywKIAkJCQkgIFVMSU5UX1VOREVGSU5FRCwgJnRtcF9oZWFwKTsKLQlyZXQg PSBsb2NrX2NsdXN0X3JlY19yZWFkX2NoZWNrX2FuZF9sb2NrKGZsYWdzLCBibG9jaywgcmVjLCBp bmRleCwKKwllcnIgPSBsb2NrX2NsdXN0X3JlY19yZWFkX2NoZWNrX2FuZF9sb2NrKGZsYWdzLCBi bG9jaywgcmVjLCBpbmRleCwKIAkJCQkJCSBvZmZzZXRzLCBtb2RlLCBnYXBfbW9kZSwgdGhyKTsK IAlpZiAodG1wX2hlYXApIHsKIAkJbWVtX2hlYXBfZnJlZSh0bXBfaGVhcCk7CiAJfQotCXJldHVy bihyZXQpOworCisJaWYgKFVOSVZfVU5MSUtFTFkoZXJyID09IERCX1NVQ0NFU1NfTE9DS0VEX1JF QykpIHsKKwkJZXJyID0gREJfU1VDQ0VTUzsKKwl9CisKKwlyZXR1cm4oZXJyKTsKIH0KIAogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jv dy9yb3cwaW5zLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MGlucy5jCXJl dmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAwNjAyMTAyNjM3LTJ0ZG92N2pneDYxM3Zy cnMKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwaW5zLmMJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMDA2MDIxMDM3MTQtMG53eGRxc2tlYjFpaG96agpAQCAtMTEy MSw5ICsxMTIxLDkgQEAgbm9uc3RhbmRhcmRfZXhpdF9mdW5jOgogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioK IFNldHMgYSBzaGFyZWQgbG9jayBvbiBhIHJlY29yZC4gVXNlZCBpbiBsb2NraW5nIHBvc3NpYmxl IGR1cGxpY2F0ZSBrZXkKIHJlY29yZHMgYW5kIGFsc28gaW4gY2hlY2tpbmcgZm9yZWlnbiBrZXkg Y29uc3RyYWludHMuCi1AcmV0dXJuCURCX1NVQ0NFU1Mgb3IgZXJyb3IgY29kZSAqLworQHJldHVy bglEQl9TVUNDRVNTLCBEQl9TVUNDRVNTX0xPQ0tFRF9SRUMsIG9yIGVycm9yIGNvZGUgKi8KIHN0 YXRpYwotdWxpbnQKK2VudW0gZGJfZXJyCiByb3dfaW5zX3NldF9zaGFyZWRfcmVjX2xvY2soCiAv Kj09PT09PT09PT09PT09PT09PT09PT09PSovCiAJdWxpbnQJCQl0eXBlLAkvKiE8IGluOiBMT0NL X09SRElOQVJZLCBMT0NLX0dBUCwgb3IKQEAgLTExMzQsNyArMTEzNCw3IEBAIHJvd19pbnNfc2V0 X3NoYXJlZF9yZWNfbG9jaygKIAljb25zdCB1bGludCoJCW9mZnNldHMsLyohPCBpbjogcmVjX2dl dF9vZmZzZXRzKHJlYywgaW5kZXgpICovCiAJcXVlX3Rocl90KgkJdGhyKQkvKiE8IGluOiBxdWVy eSB0aHJlYWQgKi8KIHsKLQl1bGludAllcnI7CisJZW51bSBkYl9lcnIJZXJyOwogCiAJdXRfYWQo cmVjX29mZnNfdmFsaWRhdGUocmVjLCBpbmRleCwgb2Zmc2V0cykpOwogCkBAIC0xMTUyLDkgKzEx NTIsOSBAQCByb3dfaW5zX3NldF9zaGFyZWRfcmVjX2xvY2soCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgog U2V0cyBhIGV4Y2x1c2l2ZSBsb2NrIG9uIGEgcmVjb3JkLiBVc2VkIGluIGxvY2tpbmcgcG9zc2li bGUgZHVwbGljYXRlIGtleQogcmVjb3JkcwotQHJldHVybglEQl9TVUNDRVNTIG9yIGVycm9yIGNv ZGUgKi8KK0ByZXR1cm4JREJfU1VDQ0VTUywgREJfU1VDQ0VTU19MT0NLRURfUkVDLCBvciBlcnJv ciBjb2RlICovCiBzdGF0aWMKLXVsaW50CitlbnVtIGRiX2Vycgogcm93X2luc19zZXRfZXhjbHVz aXZlX3JlY19sb2NrKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCXVsaW50CQkJ dHlwZSwJLyohPCBpbjogTE9DS19PUkRJTkFSWSwgTE9DS19HQVAsIG9yCkBAIC0xMTY1LDcgKzEx NjUsNyBAQCByb3dfaW5zX3NldF9leGNsdXNpdmVfcmVjX2xvY2soCiAJY29uc3QgdWxpbnQqCQlv ZmZzZXRzLC8qITwgaW46IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAqLwogCXF1ZV90aHJf dCoJCXRocikJLyohPCBpbjogcXVlcnkgdGhyZWFkICovCiB7Ci0JdWxpbnQJZXJyOworCWVudW0g ZGJfZXJyCWVycjsKIAogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlYywgaW5kZXgsIG9mZnNl dHMpKTsKIApAQCAtMTIwNSw3ICsxMjA1LDYgQEAgcm93X2luc19jaGVja19mb3JlaWduX2NvbnN0 cmFpbnQoCiAJZGljdF9pbmRleF90KgljaGVja19pbmRleDsKIAl1bGludAkJbl9maWVsZHNfY21w OwogCWJ0cl9wY3VyX3QJcGN1cjsKLQlpYm9vbAkJbW92ZWQ7CiAJaW50CQljbXA7CiAJdWxpbnQJ CWVycjsKIAl1bGludAkJaTsKQEAgLTEzMzYsMTMgKzEzMzUsMTMgQEAgcnVuX2FnYWluOgogCiAJ LyogU2NhbiBpbmRleCByZWNvcmRzIGFuZCBjaGVjayBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIHJl Y29yZCAqLwogCi0JZm9yICg7OykgeworCWRvIHsKIAkJY29uc3QgcmVjX3QqCQlyZWMgPSBidHJf cGN1cl9nZXRfcmVjKCZwY3VyKTsKIAkJY29uc3QgYnVmX2Jsb2NrX3QqCWJsb2NrID0gYnRyX3Bj dXJfZ2V0X2Jsb2NrKCZwY3VyKTsKIAogCQlpZiAocGFnZV9yZWNfaXNfaW5maW11bShyZWMpKSB7 CiAKLQkJCWdvdG8gbmV4dF9yZWM7CisJCQljb250aW51ZTsKIAkJfQogCiAJCW9mZnNldHMgPSBy ZWNfZ2V0X29mZnNldHMocmVjLCBjaGVja19pbmRleCwKQEAgLTEzNTMsMTIgKzEzNTIsMTMgQEAg cnVuX2FnYWluOgogCQkJZXJyID0gcm93X2luc19zZXRfc2hhcmVkX3JlY19sb2NrKExPQ0tfT1JE SU5BUlksIGJsb2NrLAogCQkJCQkJCSAgcmVjLCBjaGVja19pbmRleCwKIAkJCQkJCQkgIG9mZnNl dHMsIHRocik7Ci0JCQlpZiAoZXJyICE9IERCX1NVQ0NFU1MpIHsKLQotCQkJCWJyZWFrOworCQkJ c3dpdGNoIChlcnIpIHsKKwkJCWNhc2UgREJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQkJY2FzZSBE Ql9TVUNDRVNTOgorCQkJCWNvbnRpbnVlOworCQkJZGVmYXVsdDoKKwkJCQlnb3RvIGVuZF9zY2Fu OwogCQkJfQotCi0JCQlnb3RvIG5leHRfcmVjOwogCQl9CiAKIAkJY21wID0gY21wX2R0dXBsZV9y ZWMoZW50cnksIHJlYywgb2Zmc2V0cyk7CkBAIC0xMzY5LDkgKzEzNjksMTIgQEAgcnVuX2FnYWlu OgogCQkJCWVyciA9IHJvd19pbnNfc2V0X3NoYXJlZF9yZWNfbG9jaygKIAkJCQkJTE9DS19PUkRJ TkFSWSwgYmxvY2ssCiAJCQkJCXJlYywgY2hlY2tfaW5kZXgsIG9mZnNldHMsIHRocik7Ci0JCQkJ aWYgKGVyciAhPSBEQl9TVUNDRVNTKSB7Ci0KKwkJCQlzd2l0Y2ggKGVycikgeworCQkJCWNhc2Ug REJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQkJCWNhc2UgREJfU1VDQ0VTUzoKIAkJCQkJYnJlYWs7 CisJCQkJZGVmYXVsdDoKKwkJCQkJZ290byBlbmRfc2NhbjsKIAkJCQl9CiAJCQl9IGVsc2Ugewog CQkJCS8qIEZvdW5kIGEgbWF0Y2hpbmcgcmVjb3JkLiBMb2NrIG9ubHkKQEAgLTEzODIsMTUgKzEz ODUsMTggQEAgcnVuX2FnYWluOgogCQkJCQlMT0NLX1JFQ19OT1RfR0FQLCBibG9jaywKIAkJCQkJ cmVjLCBjaGVja19pbmRleCwgb2Zmc2V0cywgdGhyKTsKIAotCQkJCWlmIChlcnIgIT0gREJfU1VD Q0VTUykgewotCisJCQkJc3dpdGNoIChlcnIpIHsKKwkJCQljYXNlIERCX1NVQ0NFU1NfTE9DS0VE X1JFQzoKKwkJCQljYXNlIERCX1NVQ0NFU1M6CiAJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CisJ CQkJCWdvdG8gZW5kX3NjYW47CiAJCQkJfQogCiAJCQkJaWYgKGNoZWNrX3JlZikgewogCQkJCQll cnIgPSBEQl9TVUNDRVNTOwogCi0JCQkJCWJyZWFrOworCQkJCQlnb3RvIGVuZF9zY2FuOwogCQkJ CX0gZWxzZSBpZiAoZm9yZWlnbi0+dHlwZSAhPSAwKSB7CiAJCQkJCS8qIFRoZXJlIGlzIGFuIE9O IFVQREFURSBvciBPTiBERUxFVEUKIAkJCQkJY29uZGl0aW9uOiBjaGVjayB0aGVtIGluIGEgc2Vw YXJhdGUKQEAgLTE0MTYsNyArMTQyMiw3IEBAIHJ1bl9hZ2FpbjoKIAkJCQkJCQllcnIgPSBEQl9G T1JFSUdOX0RVUExJQ0FURV9LRVk7CiAJCQkJCQl9CiAKLQkJCQkJCWJyZWFrOworCQkJCQkJZ290 byBlbmRfc2NhbjsKIAkJCQkJfQogCiAJCQkJCS8qIHJvd19pbnNfZm9yZWlnbl9jaGVja19vbl9j b25zdHJhaW50CkBAIC0xNDI5LDQ5ICsxNDM1LDQxIEBAIHJ1bl9hZ2FpbjoKIAkJCQkJCXRociwg Zm9yZWlnbiwgcmVjLCBlbnRyeSk7CiAKIAkJCQkJZXJyID0gREJfUk9XX0lTX1JFRkVSRU5DRUQ7 Ci0JCQkJCWJyZWFrOworCQkJCQlnb3RvIGVuZF9zY2FuOwogCQkJCX0KIAkJCX0KLQkJfQorCQl9 IGVsc2UgeworCQkJdXRfYShjbXAgPCAwKTsKIAotCQlpZiAoY21wIDwgMCkgewogCQkJZXJyID0g cm93X2luc19zZXRfc2hhcmVkX3JlY19sb2NrKAogCQkJCUxPQ0tfR0FQLCBibG9jaywKIAkJCQly ZWMsIGNoZWNrX2luZGV4LCBvZmZzZXRzLCB0aHIpOwotCQkJaWYgKGVyciAhPSBEQl9TVUNDRVNT KSB7Ci0KLQkJCQlicmVhazsKLQkJCX0KIAotCQkJaWYgKGNoZWNrX3JlZikgewotCQkJCWVyciA9 IERCX05PX1JFRkVSRU5DRURfUk9XOwotCQkJCXJvd19pbnNfZm9yZWlnbl9yZXBvcnRfYWRkX2Vy cigKLQkJCQkJdHJ4LCBmb3JlaWduLCByZWMsIGVudHJ5KTsKLQkJCX0gZWxzZSB7Ci0JCQkJZXJy ID0gREJfU1VDQ0VTUzsKKwkJCXN3aXRjaCAoZXJyKSB7CisJCQljYXNlIERCX1NVQ0NFU1NfTE9D S0VEX1JFQzoKKwkJCWNhc2UgREJfU1VDQ0VTUzoKKwkJCQlpZiAoY2hlY2tfcmVmKSB7CisJCQkJ CWVyciA9IERCX05PX1JFRkVSRU5DRURfUk9XOworCQkJCQlyb3dfaW5zX2ZvcmVpZ25fcmVwb3J0 X2FkZF9lcnIoCisJCQkJCQl0cngsIGZvcmVpZ24sIHJlYywgZW50cnkpOworCQkJCX0gZWxzZSB7 CisJCQkJCWVyciA9IERCX1NVQ0NFU1M7CisJCQkJfQogCQkJfQogCi0JCQlicmVhazsKKwkJCWdv dG8gZW5kX3NjYW47CiAJCX0KKwl9IHdoaWxlIChidHJfcGN1cl9tb3ZlX3RvX25leHQoJnBjdXIs ICZtdHIpKTsKIAotCQl1dF9hKGNtcCA9PSAwKTsKLW5leHRfcmVjOgotCQltb3ZlZCA9IGJ0cl9w Y3VyX21vdmVfdG9fbmV4dCgmcGN1ciwgJm10cik7Ci0KLQkJaWYgKCFtb3ZlZCkgewotCQkJaWYg KGNoZWNrX3JlZikgewotCQkJCXJlYyA9IGJ0cl9wY3VyX2dldF9yZWMoJnBjdXIpOwotCQkJCXJv d19pbnNfZm9yZWlnbl9yZXBvcnRfYWRkX2VycigKLQkJCQkJdHJ4LCBmb3JlaWduLCByZWMsIGVu dHJ5KTsKLQkJCQllcnIgPSBEQl9OT19SRUZFUkVOQ0VEX1JPVzsKLQkJCX0gZWxzZSB7Ci0JCQkJ ZXJyID0gREJfU1VDQ0VTUzsKLQkJCX0KLQotCQkJYnJlYWs7Ci0JCX0KKwlpZiAoY2hlY2tfcmVm KSB7CisJCXJvd19pbnNfZm9yZWlnbl9yZXBvcnRfYWRkX2VycigKKwkJCXRyeCwgZm9yZWlnbiwg YnRyX3BjdXJfZ2V0X3JlYygmcGN1ciksIGVudHJ5KTsKKwkJZXJyID0gREJfTk9fUkVGRVJFTkNF RF9ST1c7CisJfSBlbHNlIHsKKwkJZXJyID0gREJfU1VDQ0VTUzsKIAl9CiAKK2VuZF9zY2FuOgog CWJ0cl9wY3VyX2Nsb3NlKCZwY3VyKTsKIAogCW10cl9jb21taXQoJm10cik7CkBAIC0xNzE5LDkg KzE3MTcsMTMgQEAgcm93X2luc19zY2FuX3NlY19pbmRleF9mb3JfZHVwbGljYXRlKAogCQkJCXJl YywgaW5kZXgsIG9mZnNldHMsIHRocik7CiAJCX0KIAotCQlpZiAoZXJyICE9IERCX1NVQ0NFU1Mp IHsKLQorCQlzd2l0Y2ggKGVycikgeworCQljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoKKwkJ CWVyciA9IERCX1NVQ0NFU1M7CisJCWNhc2UgREJfU1VDQ0VTUzoKIAkJCWJyZWFrOworCQlkZWZh dWx0OgorCQkJZ290byBlbmRfc2NhbjsKIAkJfQogCiAJCWlmIChwYWdlX3JlY19pc19zdXByZW11 bShyZWMpKSB7CkBAIC0xNzM4LDE3ICsxNzQwLDE1IEBAIHJvd19pbnNfc2Nhbl9zZWNfaW5kZXhf Zm9yX2R1cGxpY2F0ZSgKIAogCQkJCXRocl9nZXRfdHJ4KHRociktPmVycm9yX2luZm8gPSBpbmRl eDsKIAotCQkJCWJyZWFrOworCQkJCWdvdG8gZW5kX3NjYW47CiAJCQl9CisJCX0gZWxzZSB7CisJ CQl1dF9hKGNtcCA8IDApOworCQkJZ290byBlbmRfc2NhbjsKIAkJfQotCi0JCWlmIChjbXAgPCAw KSB7Ci0JCQlicmVhazsKLQkJfQotCi0JCXV0X2EoY21wID09IDApOwogCX0gd2hpbGUgKGJ0cl9w Y3VyX21vdmVfdG9fbmV4dCgmcGN1ciwgJm10cikpOwogCitlbmRfc2NhbjoKIAlpZiAoVU5JVl9M SUtFTFlfTlVMTChoZWFwKSkgewogCQltZW1faGVhcF9mcmVlKGhlYXApOwogCX0KQEAgLTE4Mzcs NyArMTgzNywxMSBAQCByb3dfaW5zX2R1cGxpY2F0ZV9lcnJvcl9pbl9jbHVzdCgKIAkJCQkJY3Vy c29yLT5pbmRleCwgb2Zmc2V0cywgdGhyKTsKIAkJCX0KIAotCQkJaWYgKGVyciAhPSBEQl9TVUND RVNTKSB7CisJCQlzd2l0Y2ggKGVycikgeworCQkJY2FzZSBEQl9TVUNDRVNTX0xPQ0tFRF9SRUM6 CisJCQljYXNlIERCX1NVQ0NFU1M6CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgogCQkJCWdvdG8g ZnVuY19leGl0OwogCQkJfQogCkBAIC0xODc3LDcgKzE4ODEsMTEgQEAgcm93X2luc19kdXBsaWNh dGVfZXJyb3JfaW5fY2x1c3QoCiAJCQkJCXJlYywgY3Vyc29yLT5pbmRleCwgb2Zmc2V0cywgdGhy KTsKIAkJCX0KIAotCQkJaWYgKGVyciAhPSBEQl9TVUNDRVNTKSB7CisJCQlzd2l0Y2ggKGVycikg eworCQkJY2FzZSBEQl9TVUNDRVNTX0xPQ0tFRF9SRUM6CisJCQljYXNlIERCX1NVQ0NFU1M6CisJ CQkJYnJlYWs7CisJCQlkZWZhdWx0OgogCQkJCWdvdG8gZnVuY19leGl0OwogCQkJfQogCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwbXlzcWwuYycKLS0t IGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwbXlzcWwuYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDEwMDYwMjEwMjYzNy0ydGRvdjdqZ3g2MTN2cnJzCisrKyBiL3N0b3Jh Z2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MG15c3FsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMDA2MDIxMDM3MTQtMG53eGRxc2tlYjFpaG96agpAQCAtMTQzMCwyNyArMTQzMCwy NiBAQCBydW5fYWdhaW46CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1UaGlzIGNhbiBvbmx5IGJl IHVzZWQgd2hlbiBzcnZfbG9ja3NfdW5zYWZlX2Zvcl9iaW5sb2cgaXMgVFJVRSBvcgotdGhpcyBz ZXNzaW9uIGlzIHVzaW5nIGEgUkVBRCBDT01NSVRURUQgaXNvbGF0aW9uIGxldmVsLiBCZWZvcmUK LWNhbGxpbmcgdGhpcyBmdW5jdGlvbiB3ZSBtdXN0IHVzZSB0cnhfcmVzZXRfbmV3X3JlY19sb2Nr X2luZm8oKSBhbmQKLXRyeF9yZWdpc3Rlcl9uZXdfcmVjX2xvY2soKSB0byBzdG9yZSB0aGUgaW5m b3JtYXRpb24gd2hpY2ggbmV3IHJlY29yZCBsb2NrcwotcmVhbGx5IHdlcmUgc2V0LiBUaGlzIGZ1 bmN0aW9uIHJlbW92ZXMgYSBuZXdseSBzZXQgbG9jayB1bmRlciBwcmVidWlsdC0+cGN1ciwKLWFu ZCBhbHNvIHVuZGVyIHByZWJ1aWx0LT5jbHVzdF9wY3VyLiBDdXJyZW50bHksIHRoaXMgaXMgb25s eSB1c2VkIGFuZCB0ZXN0ZWQKLWluIHRoZSBjYXNlIG9mIGFuIFVQREFURSBvciBhIERFTEVURSBz dGF0ZW1lbnQsIHdoZXJlIHRoZSByb3cgbG9jayBpcyBvZiB0aGUKLUxPQ0tfWCB0eXBlLgotVGh1 cywgdGhpcyBpbXBsZW1lbnRzIGEgJ21pbmktcm9sbGJhY2snIHRoYXQgcmVsZWFzZXMgdGhlIGxh dGVzdCByZWNvcmQKLWxvY2tzIHdlIHNldC4KLUByZXR1cm4JZXJyb3IgY29kZSBvciBEQl9TVUND RVNTICovCitUaGlzIGNhbiBvbmx5IGJlIHVzZWQgd2hlbiBzcnZfbG9ja3NfdW5zYWZlX2Zvcl9i aW5sb2cgaXMgVFJVRSBvciB0aGlzCitzZXNzaW9uIGlzIHVzaW5nIGEgUkVBRCBDT01NSVRURUQg b3IgUkVBRCBVTkNPTU1JVFRFRCBpc29sYXRpb24gbGV2ZWwuCitCZWZvcmUgY2FsbGluZyB0aGlz IGZ1bmN0aW9uIHJvd19zZWFyY2hfZm9yX215c3FsKCkgbXVzdCBoYXZlCitpbml0aWFsaXplZCBw cmVidWlsdC0+bmV3X3JlY19sb2NrcyB0byBzdG9yZSB0aGUgaW5mb3JtYXRpb24gd2hpY2ggbmV3 CityZWNvcmQgbG9ja3MgcmVhbGx5IHdlcmUgc2V0LiBUaGlzIGZ1bmN0aW9uIHJlbW92ZXMgYSBu ZXdseSBzZXQKK2NsdXN0ZXJlZCBpbmRleCByZWNvcmQgbG9jayB1bmRlciBwcmVidWlsdC0+cGN1 ciBvcgorcHJlYnVpbHQtPmNsdXN0X3BjdXIuICBUaHVzLCB0aGlzIGltcGxlbWVudHMgYSAnbWlu aS1yb2xsYmFjaycgdGhhdAorcmVsZWFzZXMgdGhlIGxhdGVzdCBjbHVzdGVyZWQgaW5kZXggcmVj b3JkIGxvY2sgd2Ugc2V0LgorQHJldHVybiBlcnJvciBjb2RlIG9yIERCX1NVQ0NFU1MgKi8KIFVO SVZfSU5URVJOCiBpbnQKIHJvd191bmxvY2tfZm9yX215c3FsKAogLyo9PT09PT09PT09PT09PT09 PSovCi0Jcm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0LAkvKiE8IGluOiBwcmVidWlsdCBzdHJ1Y3Qg aW4gTXlTUUwKKwlyb3dfcHJlYnVpbHRfdCoJcHJlYnVpbHQsCS8qITwgaW4vb3V0OiBwcmVidWls dCBzdHJ1Y3QgaW4gTXlTUUwKIAkJCQkJaGFuZGxlICovCi0JaWJvb2wJCWhhc19sYXRjaGVzX29u X3JlY3MpLyohPCBUUlVFIGlmIGNhbGxlZCBzbyB0aGF0IHdlIGhhdmUKLQkJCQkJdGhlIGxhdGNo ZXMgb24gdGhlIHJlY29yZHMgdW5kZXIgcGN1cgotCQkJCQlhbmQgY2x1c3RfcGN1ciwgYW5kIHdl IGRvIG5vdCBuZWVkIHRvCi0JCQkJCXJlcG9zaXRpb24gdGhlIGN1cnNvcnMuICovCisJaWJvb2wJ CWhhc19sYXRjaGVzX29uX3JlY3MpLyohPCBpbjogVFJVRSBpZiBjYWxsZWQgc28KKwkJCQkJdGhh dCB3ZSBoYXZlIHRoZSBsYXRjaGVzIG9uCisJCQkJCXRoZSByZWNvcmRzIHVuZGVyIHBjdXIgYW5k CisJCQkJCWNsdXN0X3BjdXIsIGFuZCB3ZSBkbyBub3QgbmVlZAorCQkJCQl0byByZXBvc2l0aW9u IHRoZSBjdXJzb3JzLiAqLwogewogCWJ0cl9wY3VyX3QqCXBjdXIJCT0gcHJlYnVpbHQtPnBjdXI7 CiAJYnRyX3BjdXJfdCoJY2x1c3RfcGN1cgk9IHByZWJ1aWx0LT5jbHVzdF9wY3VyOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MHNlbC5jJwotLS0gYS9z dG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBzZWwuYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEwMDYwMjEwMjYzNy0ydGRvdjdqZ3g2MTN2cnJzCisrKyBiL3N0b3JhZ2UvaW5u b2RiX3BsdWdpbi9yb3cvcm93MHNlbC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTAwNjAyMTAzNzE0LTBud3hkcXNrZWIxaWhvemoKQEAgLTg2Myw4ICs4NjMsMTQgQEAgcm93X3Nl bF9nZXRfY2x1c3RfcmVjKAogCQkJY2x1c3RfcmVjLCBpbmRleCwgb2Zmc2V0cywKIAkJCW5vZGUt PnJvd19sb2NrX21vZGUsIGxvY2tfdHlwZSwgdGhyKTsKIAotCQlpZiAoZXJyICE9IERCX1NVQ0NF U1MpIHsKLQorCQlzd2l0Y2ggKGVycikgeworCQljYXNlIERCX1NVQ0NFU1M6CisJCWNhc2UgREJf U1VDQ0VTU19MT0NLRURfUkVDOgorCQkJLyogRGVjbGFyZSB0aGUgdmFyaWFibGUgdW5pbml0aWFs aXplZCBpbiBWYWxncmluZC4KKwkJCUl0IHNob3VsZCBiZSBzZXQgdG8gREJfU1VDQ0VTUyBhdCBm dW5jX2V4aXQuICovCisJCQlVTklWX01FTV9JTlZBTElEKCZlcnIsIHNpemVvZiBlcnIpOworCQkJ YnJlYWs7CisJCWRlZmF1bHQ6CiAJCQlnb3RvIGVycl9leGl0OwogCQl9CiAJfSBlbHNlIHsKQEAg LTkzNCw5ICs5NDAsOSBAQCBlcnJfZXhpdDoKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFNldHMgYSBs b2NrIG9uIGEgcmVjb3JkLgotQHJldHVybglEQl9TVUNDRVNTIG9yIGVycm9yIGNvZGUgKi8KK0By ZXR1cm4JREJfU1VDQ0VTUywgREJfU1VDQ0VTU19MT0NLRURfUkVDLCBvciBlcnJvciBjb2RlICov CiBVTklWX0lOTElORQotdWxpbnQKK2VudW0gZGJfZXJyCiBzZWxfc2V0X3JlY19sb2NrKAogLyo9 PT09PT09PT09PT09Ki8KIAljb25zdCBidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW46IGJ1ZmZl ciBibG9jayBvZiByZWMgKi8KQEAgLTk0OCw4ICs5NTQsOCBAQCBzZWxfc2V0X3JlY19sb2NrKAog CQkJCQlMT0NfUkVDX05PVF9HQVAgKi8KIAlxdWVfdGhyX3QqCQl0aHIpCS8qITwgaW46IHF1ZXJ5 IHRocmVhZCAqLwogewotCXRyeF90Kgl0cng7Ci0JdWxpbnQJZXJyOworCXRyeF90KgkJdHJ4Owor CWVudW0gZGJfZXJyCWVycjsKIAogCXRyeCA9IHRocl9nZXRfdHJ4KHRocik7CiAKQEAgLTE0ODIs MTEgKzE0ODgsMTUgQEAgcmVjX2xvb3A6CiAJCQkJCSAgICAgICBub2RlLT5yb3dfbG9ja19tb2Rl LAogCQkJCQkgICAgICAgbG9ja190eXBlLCB0aHIpOwogCi0JCQlpZiAoZXJyICE9IERCX1NVQ0NF U1MpIHsKKwkJCXN3aXRjaCAoZXJyKSB7CisJCQljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoK KwkJCQllcnIgPSBEQl9TVUNDRVNTOworCQkJY2FzZSBEQl9TVUNDRVNTOgorCQkJCWJyZWFrOwor CQkJZGVmYXVsdDoKIAkJCQkvKiBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIHdlIHdpbGwgc3RvcmUg aW4gcGN1cgogCQkJCXRoZSBQUkVERUNFU1NPUiBvZiB0aGUgcmVjb3JkIHdlIGFyZSB3YWl0aW5n CiAJCQkJdGhlIGxvY2sgZm9yICovCi0KIAkJCQlnb3RvIGxvY2tfd2FpdF9vcl9lcnJvcjsKIAkJ CX0KIAkJfQpAQCAtMTUzOCw4ICsxNTQ4LDEyIEBAIHNraXBfbG9jazoKIAkJCQkgICAgICAgcmVj LCBpbmRleCwgb2Zmc2V0cywKIAkJCQkgICAgICAgbm9kZS0+cm93X2xvY2tfbW9kZSwgbG9ja190 eXBlLCB0aHIpOwogCi0JCWlmIChlcnIgIT0gREJfU1VDQ0VTUykgewotCisJCXN3aXRjaCAoZXJy KSB7CisJCWNhc2UgREJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQkJZXJyID0gREJfU1VDQ0VTUzsK KwkJY2FzZSBEQl9TVUNDRVNTOgorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CiAJCQlnb3RvIGxvY2tf d2FpdF9vcl9lcnJvcjsKIAkJfQogCX0KQEAgLTI4MDEsOSArMjgxNSw5IEBAIHJvd19zZWxfYnVp bGRfcHJldl92ZXJzX2Zvcl9teXNxbCgKIFJldHJpZXZlcyB0aGUgY2x1c3RlcmVkIGluZGV4IHJl Y29yZCBjb3JyZXNwb25kaW5nIHRvIGEgcmVjb3JkIGluIGEKIG5vbi1jbHVzdGVyZWQgaW5kZXgu IERvZXMgdGhlIG5lY2Vzc2FyeSBsb2NraW5nLiBVc2VkIGluIHRoZSBNeVNRTAogaW50ZXJmYWNl LgotQHJldHVybglEQl9TVUNDRVNTIG9yIGVycm9yIGNvZGUgKi8KK0ByZXR1cm4JREJfU1VDQ0VT UywgREJfU1VDQ0VTU19MT0NLRURfUkVDLCBvciBlcnJvciBjb2RlICovCiBzdGF0aWMKLXVsaW50 CitlbnVtIGRiX2Vycgogcm93X3NlbF9nZXRfY2x1c3RfcmVjX2Zvcl9teXNxbCgKIC8qPT09PT09 PT09PT09PT09PT09PT09PT09PT09PSovCiAJcm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0LC8qITwg aW46IHByZWJ1aWx0IHN0cnVjdCBpbiB0aGUgaGFuZGxlICovCkBAIC0yODMwLDcgKzI4NDQsNyBA QCByb3dfc2VsX2dldF9jbHVzdF9yZWNfZm9yX215c3FsKAogCWRpY3RfaW5kZXhfdCoJY2x1c3Rf aW5kZXg7CiAJY29uc3QgcmVjX3QqCWNsdXN0X3JlYzsKIAlyZWNfdCoJCW9sZF92ZXJzOwotCXVs aW50CQllcnI7CisJZW51bSBkYl9lcnIJZXJyOwogCXRyeF90KgkJdHJ4OwogCiAJKm91dF9yZWMg PSBOVUxMOwpAQCAtMjg4OSw2ICsyOTAzLDcgQEAgcm93X3NlbF9nZXRfY2x1c3RfcmVjX2Zvcl9t eXNxbCgKIAogCQljbHVzdF9yZWMgPSBOVUxMOwogCisJCWVyciA9IERCX1NVQ0NFU1M7CiAJCWdv dG8gZnVuY19leGl0OwogCX0KIApAQCAtMjkwNCw4ICsyOTE5LDExIEBAIHJvd19zZWxfZ2V0X2Ns dXN0X3JlY19mb3JfbXlzcWwoCiAJCQkwLCBidHJfcGN1cl9nZXRfYmxvY2socHJlYnVpbHQtPmNs dXN0X3BjdXIpLAogCQkJY2x1c3RfcmVjLCBjbHVzdF9pbmRleCwgKm9mZnNldHMsCiAJCQlwcmVi dWlsdC0+c2VsZWN0X2xvY2tfdHlwZSwgTE9DS19SRUNfTk9UX0dBUCwgdGhyKTsKLQkJaWYgKGVy ciAhPSBEQl9TVUNDRVNTKSB7Ci0KKwkJc3dpdGNoIChlcnIpIHsKKwkJY2FzZSBEQl9TVUNDRVNT OgorCQljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoKKwkJCWJyZWFrOworCQlkZWZhdWx0Ogog CQkJZ290byBlcnJfZXhpdDsKIAkJfQogCX0gZWxzZSB7CkBAIC0yOTY1LDYgKzI5ODMsOCBAQCBy b3dfc2VsX2dldF9jbHVzdF9yZWNfZm9yX215c3FsKAogCQkJCSAgICAgcmVjLCBzZWNfaW5kZXgs IGNsdXN0X3JlYywgY2x1c3RfaW5kZXgpKTsKICNlbmRpZgogCQl9CisKKwkJZXJyID0gREJfU1VD Q0VTUzsKIAl9CiAKIGZ1bmNfZXhpdDoKQEAgLTI5NzcsNyArMjk5Nyw2IEBAIGZ1bmNfZXhpdDoK IAkJYnRyX3BjdXJfc3RvcmVfcG9zaXRpb24ocHJlYnVpbHQtPmNsdXN0X3BjdXIsIG10cik7CiAJ fQogCi0JZXJyID0gREJfU1VDQ0VTUzsKIGVycl9leGl0OgogCXJldHVybihlcnIpOwogfQpAQCAt MzcwMiw4ICszNzIxLDEyIEBAIHNob3J0Y3V0X2ZhaWxzX3Rvb19iaWdfcmVjOgogCQkJCQkgICAg ICAgcHJlYnVpbHQtPnNlbGVjdF9sb2NrX3R5cGUsCiAJCQkJCSAgICAgICBMT0NLX0dBUCwgdGhy KTsKIAotCQkJaWYgKGVyciAhPSBEQl9TVUNDRVNTKSB7Ci0KKwkJCXN3aXRjaCAoZXJyKSB7CisJ CQljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoKKwkJCQllcnIgPSBEQl9TVUNDRVNTOworCQkJ Y2FzZSBEQl9TVUNDRVNTOgorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKIAkJCQlnb3RvIGxvY2tf d2FpdF9vcl9lcnJvcjsKIAkJCX0KIAkJfQpAQCAtMzgwMSw4ICszODI0LDEyIEBAIHJlY19sb29w OgogCQkJCQkgICAgICAgcHJlYnVpbHQtPnNlbGVjdF9sb2NrX3R5cGUsCiAJCQkJCSAgICAgICBM T0NLX09SRElOQVJZLCB0aHIpOwogCi0JCQlpZiAoZXJyICE9IERCX1NVQ0NFU1MpIHsKLQorCQkJ c3dpdGNoIChlcnIpIHsKKwkJCWNhc2UgREJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQkJCWVyciA9 IERCX1NVQ0NFU1M7CisJCQljYXNlIERCX1NVQ0NFU1M6CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0 OgogCQkJCWdvdG8gbG9ja193YWl0X29yX2Vycm9yOwogCQkJfQogCQl9CkBAIC0zOTMyLDggKzM5 NTksMTEgQEAgd3Jvbmdfb2ZmczoKIAkJCQkJcHJlYnVpbHQtPnNlbGVjdF9sb2NrX3R5cGUsIExP Q0tfR0FQLAogCQkJCQl0aHIpOwogCi0JCQkJaWYgKGVyciAhPSBEQl9TVUNDRVNTKSB7Ci0KKwkJ CQlzd2l0Y2ggKGVycikgeworCQkJCWNhc2UgREJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQkJCWNh c2UgREJfU1VDQ0VTUzoKKwkJCQkJYnJlYWs7CisJCQkJZGVmYXVsdDoKIAkJCQkJZ290byBsb2Nr X3dhaXRfb3JfZXJyb3I7CiAJCQkJfQogCQkJfQpAQCAtMzk2OCw4ICszOTk4LDExIEBAIHdyb25n X29mZnM6CiAJCQkJCXByZWJ1aWx0LT5zZWxlY3RfbG9ja190eXBlLCBMT0NLX0dBUCwKIAkJCQkJ dGhyKTsKIAotCQkJCWlmIChlcnIgIT0gREJfU1VDQ0VTUykgewotCisJCQkJc3dpdGNoIChlcnIp IHsKKwkJCQljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoKKwkJCQljYXNlIERCX1NVQ0NFU1M6 CisJCQkJCWJyZWFrOworCQkJCWRlZmF1bHQ6CiAJCQkJCWdvdG8gbG9ja193YWl0X29yX2Vycm9y OwogCQkJCX0KIAkJCX0KQEAgLTQwMzksMTUgKzQwNzIsMjEgQEAgbm9fZ2FwX2xvY2s6CiAKIAkJ c3dpdGNoIChlcnIpIHsKIAkJCWNvbnN0IHJlY190KglvbGRfdmVyczsKLQkJY2FzZSBEQl9TVUND RVNTOgorCQljYXNlIERCX1NVQ0NFU1NfTE9DS0VEX1JFQzoKIAkJCWlmIChzcnZfbG9ja3NfdW5z YWZlX2Zvcl9iaW5sb2cKLQkJCSAgICB8fCB0cngtPmlzb2xhdGlvbl9sZXZlbCA8PSBUUlhfSVNP X1JFQURfQ09NTUlUVEVEKSB7CisJCQkgICAgfHwgdHJ4LT5pc29sYXRpb25fbGV2ZWwKKwkJCSAg ICA8PSBUUlhfSVNPX1JFQURfQ09NTUlUVEVEKSB7CiAJCQkJLyogTm90ZSB0aGF0IGEgcmVjb3Jk IG9mCiAJCQkJcHJlYnVpbHQtPmluZGV4IHdhcyBsb2NrZWQuICovCiAJCQkJcHJlYnVpbHQtPm5l d19yZWNfbG9ja3MgPSAxOwogCQkJfQorCQkJZXJyID0gREJfU1VDQ0VTUzsKKwkJY2FzZSBEQl9T VUNDRVNTOgogCQkJYnJlYWs7CiAJCWNhc2UgREJfTE9DS19XQUlUOgorCQkJLyogTmV2ZXIgdW5s b2NrIHJvd3MgdGhhdCB3ZXJlIHBhcnQgb2YgYSBjb25mbGljdC4gKi8KKwkJCXByZWJ1aWx0LT5u ZXdfcmVjX2xvY2tzID0gMDsKKwogCQkJaWYgKFVOSVZfTElLRUxZKHByZWJ1aWx0LT5yb3dfcmVh ZF90eXBlCiAJCQkJCSE9IFJPV19SRUFEX1RSWV9TRU1JX0NPTlNJU1RFTlQpCiAJCQkgICAgfHwg dW5pcXVlX3NlYXJjaApAQCAtNDA3Nyw3ICs0MTE2LDYgQEAgbm9fZ2FwX2xvY2s6CiAJCQlpZiAo VU5JVl9MSUtFTFkodHJ4LT53YWl0X2xvY2sgIT0gTlVMTCkpIHsKIAkJCQlsb2NrX2NhbmNlbF93 YWl0aW5nX2FuZF9yZWxlYXNlKAogCQkJCQl0cngtPndhaXRfbG9jayk7Ci0JCQkJcHJlYnVpbHQt Pm5ld19yZWNfbG9ja3MgPSAwOwogCQkJfSBlbHNlIHsKIAkJCQltdXRleF9leGl0KCZrZXJuZWxf bXV0ZXgpOwogCkBAIC00MDg5LDkgKzQxMjcsNiBAQCBub19nYXBfbG9jazoKIAkJCQkJCQkgIFVM SU5UX1VOREVGSU5FRCwKIAkJCQkJCQkgICZoZWFwKTsKIAkJCQllcnIgPSBEQl9TVUNDRVNTOwot CQkJCS8qIE5vdGUgdGhhdCBhIHJlY29yZCBvZgotCQkJCXByZWJ1aWx0LT5pbmRleCB3YXMgbG9j a2VkLiAqLwotCQkJCXByZWJ1aWx0LT5uZXdfcmVjX2xvY2tzID0gMTsKIAkJCQlicmVhazsKIAkJ CX0KIAkJCW11dGV4X2V4aXQoJmtlcm5lbF9tdXRleCk7CkBAIC00MjI4LDI3ICs0MjYzLDMwIEBA IHJlcXVpcmVzX2NsdXN0X3JlYzoKIAkJZXJyID0gcm93X3NlbF9nZXRfY2x1c3RfcmVjX2Zvcl9t eXNxbChwcmVidWlsdCwgaW5kZXgsIHJlYywKIAkJCQkJCSAgICAgIHRociwgJmNsdXN0X3JlYywK IAkJCQkJCSAgICAgICZvZmZzZXRzLCAmaGVhcCwgJm10cik7Ci0JCWlmIChlcnIgIT0gREJfU1VD Q0VTUykgeworCQlzd2l0Y2ggKGVycikgeworCQljYXNlIERCX1NVQ0NFU1M6CisJCQlpZiAoY2x1 c3RfcmVjID09IE5VTEwpIHsKKwkJCQkvKiBUaGUgcmVjb3JkIGRpZCBub3QgZXhpc3QgaW4gdGhl IHJlYWQgdmlldyAqLworCQkJCXV0X2FkKHByZWJ1aWx0LT5zZWxlY3RfbG9ja190eXBlID09IExP Q0tfTk9ORSk7CiAKKwkJCQlnb3RvIG5leHRfcmVjOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2Ug REJfU1VDQ0VTU19MT0NLRURfUkVDOgorCQkJdXRfYShjbHVzdF9yZWMgIT0gTlVMTCk7CisJCQlp ZiAoc3J2X2xvY2tzX3Vuc2FmZV9mb3JfYmlubG9nCisJCQkgICAgIHx8IHRyeC0+aXNvbGF0aW9u X2xldmVsCisJCQkgICAgPD0gVFJYX0lTT19SRUFEX0NPTU1JVFRFRCkgeworCQkJCS8qIE5vdGUg dGhhdCB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZAorCQkJCXdhcyBsb2NrZWQuICovCisJCQkJ cHJlYnVpbHQtPm5ld19yZWNfbG9ja3MgPSAyOworCQkJfQorCQkJZXJyID0gREJfU1VDQ0VTUzsK KwkJCWJyZWFrOworCQlkZWZhdWx0OgogCQkJZ290byBsb2NrX3dhaXRfb3JfZXJyb3I7CiAJCX0K IAotCQlpZiAoY2x1c3RfcmVjID09IE5VTEwpIHsKLQkJCS8qIFRoZSByZWNvcmQgZGlkIG5vdCBl eGlzdCBpbiB0aGUgcmVhZCB2aWV3ICovCi0JCQl1dF9hZChwcmVidWlsdC0+c2VsZWN0X2xvY2tf dHlwZSA9PSBMT0NLX05PTkUpOwotCi0JCQlnb3RvIG5leHRfcmVjOwotCQl9Ci0KLQkJaWYgKChz cnZfbG9ja3NfdW5zYWZlX2Zvcl9iaW5sb2cKLQkJICAgICB8fCB0cngtPmlzb2xhdGlvbl9sZXZl bCA8PSBUUlhfSVNPX1JFQURfQ09NTUlUVEVEKQotCQkgICAgJiYgcHJlYnVpbHQtPnNlbGVjdF9s b2NrX3R5cGUgIT0gTE9DS19OT05FKSB7Ci0JCQkvKiBOb3RlIHRoYXQgYm90aCB0aGUgc2Vjb25k YXJ5IGluZGV4IHJlY29yZAotCQkJYW5kIHRoZSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkIHdlcmUg bG9ja2VkLiAqLwotCQkJdXRfYWQocHJlYnVpbHQtPm5ld19yZWNfbG9ja3MgPT0gMSk7Ci0JCQlw cmVidWlsdC0+bmV3X3JlY19sb2NrcyA9IDI7Ci0JCX0KLQogCQlpZiAoVU5JVl9VTkxJS0VMWShy ZWNfZ2V0X2RlbGV0ZWRfZmxhZyhjbHVzdF9yZWMsIGNvbXApKSkgewogCiAJCQkvKiBUaGUgcmVj b3JkIGlzIGRlbGV0ZSBtYXJrZWQ6IHdlIGNhbiBza2lwIGl0ICovCgo= --===============1468732507== 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.1-innodb/ # testament_sha1: 08b4dc3d881c0e6b99e9a28e68c1674582713b86 # timestamp: 2010-06-02 13:37:28 +0300 # base_revision_id: marko.makela@stripped\ # 2tdov7jgx613vrrs # # Begin bundle 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 EhpNhw/4rr/8XckU4UJC9R/ggA== --===============1468732507==--