From: marko.makela Date: January 24 2011 9:17am Subject: bzr push into mysql-trunk-innodb branch (marko.makela:3451 to 3452) WL#5458 List-Archive: http://lists.mysql.com/commits/129410 Message-Id: <201101240917.p0O8hG2k031965@acsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0729142990==" --===============0729142990== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline IDM0NTIgTWFya28gTcOka2Vsw6QJMjAxMS0wMS0yNAogICAgICBDbGVhbiB1cCB0cnhfaXNfYWN0 aXZlKCkgYW5kIHJvd192ZXJzX2ltcGxfeF9sb2NrZWQoKS4KICAgICAgVGhpcyBpcyBwYXJ0IG9m IG15IGNsZWFuLXVwcyBtYWRlIGR1cmluZyB0aGUgV0wjNTQ1OCByZXZpZXcuCiAgICAgIAogICAg ICB0cnhfaXNfYWN0aXZlX2xvdygpOiBBbGxvdyBjb3JydXB0IHRvIGJlIE5VTEwgYW5kIG1ha2Ug dGhlIGNhbGxlcgogICAgICByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6aW5nICpjb3JydXB0PUZB TFNFLgogICAgICAKICAgICAgdHJ4X2lzX2FjdGl2ZSgpOiBBZGQgdGhlIHBhcmFtZXRlciBpYm9v bCogY29ycnVwdC4KICAgICAgCiAgICAgIGxvY2tfcmVjX3F1ZXVlX3ZhbGlkYXRlKCk6IFBhc3Mg TlVMTCB0byB0cnhfaXNfYWN0aXZlX2xvdygpLiBBZGQKICAgICAgY29tbWVudHMgcmVnYXJkaW5n IGxvY2tfc3lzLT5tdXRleC4gUmVtb3ZlIGFuIG9ic29sZXRlIHNlY3Rpb24gb2YKICAgICAgdW51 c2VkIGNvZGUuCiAgICAgIAogICAgICBsb2NrX3JlY19jb252ZXJ0X2ltcGxfdG9fZXhwbCgpOiBB ZGp1c3QgY29tbWVudHMgYW5kIHBhc3MgY29ycnVwdD1OVUxMCiAgICAgIHRvIHRyeF9pc19hY3Rp dmUoKS4KICAgICAgCiAgICAgIHJvd192ZXJzX2ltcGxfeF9sb2NrZWRfbG93KCk6IE5ldyBmdW5j dGlvbiwgc3BsaXQgZnJvbQogICAgICByb3dfdmVyc19pbXBsX3hfbG9ja2VkKCkuIENvbnRhaW5z IG1vc3Qgb2YgdGhlIGxvZ2ljLgogICAgICBDbGFyaWZ5IHRoYXQgdGhlIGNhbGxlciB3aWxsIGhh dmUgdG8gaG9sZCBsb2NrX3N5cy0+bXV0ZXggd2hpbGUKICAgICAgaW52b2tpbmcgdHJ4X2lzX2Fj dGl2ZSgpLgogICAgICBQb3N0cG9uZSB0aGUgYWNxdWlzaXRpb24gb2YgcHVyZ2Vfc3lzLT5sYXRj aCB1bnRpbCBhZnRlciB0aGUgZmlyc3QKICAgICAgdHJ4X2lzX2FjdGl2ZSgpIGNoZWNrLgogICAg ICBQYXNzIHRoZSBjb3JyZWN0IHJlY29yZCB2ZXJzaW9uIHRvIGxvY2tfcmVwb3J0X3RyeF9pZF9p bnNhbml0eSgpLgogICAgICBSZW1vdmUgdGhlIGxvY2FsIHZhcmlhYmxlIHRyeF90KiB0cnguIEl0 IGlzIHVuc2FmZSB0byBrZWVwIHRoZSBwb2ludGVyCiAgICAgIGFyb3VuZCwgYXMgaXQgbXVzdCBu b3QgYmUgZGVyZWZlcmVuY2VkIHdpdGhvdXQgaG9sZGluZwogICAgICBsb2NrX3N5cy0+bXV0ZXgu CiAgICAgIFJlbW92ZSB0aGUgbG9jYWwgdmFyaWFibGUgYWN0aXZlX3RyeF9pZC4gV2UgYWxyZWFk eSBoYXZlIHRyeF9pZC4KICAgICAgQ2xhcmlmeSBjb21tZW50cy4KICAgICAgCiAgICAgIHJvd192 ZXJzX2ltcGxfeF9sb2NrZWQoKTogRG8gbXRyX3N0YXJ0KCksIGxhdGNoIHRoZSBjbHVzdF9yZWMs IGludm9rZQogICAgICByb3dfdmVyc19pbXBsX3hfbG9ja2VkKCksIGFuZCBmaW5hbGx5IG10cl9j b21taXQoKS4KICAgICAgCiAgICAgIHJiOi8vNTcyIGFwcHJvdmVkIGJ5IFN1bm55IEJhaW5zCgog ICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwdmVycy5oCiAg ICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwc3lzLmgKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL3RyeDBzeXMuaWMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9sb2NrL2xvY2sw bG9jay5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzB2ZXJzLmMKIDM0NTEgVmFzaWwg RGltb3YJMjAxMS0wMS0yNCBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3FsLTUuNS1pbm5vZGIgLT4g bXlzcWwtdHJ1bmstaW5ub2RiCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JvdzB2ZXJzLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwdmVy cy5oCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMTAxMjQwODAxMjQtcXQzMThwZTdj M2lsdHAzcAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHZlcnMuaAlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDEyNDA4MjUzOS1qeGV6cjI2cnZnMzZoZXY3CkBA IC00MSw3ICs0MSw3IEBAIGluZGV4IHJlY29yZC4KIEByZXR1cm4gMCBpZiBjb21taXR0ZWQsIGVs c2UgdGhlIGFjdGl2ZSB0cmFuc2FjdGlvbiBpZDsKIE5PVEUgdGhhdCB0aGlzIGZ1bmN0aW9uIGNh biByZXR1cm4gZmFsc2UgcG9zaXRpdmVzIGJ1dCBuZXZlciBmYWxzZQogbmVnYXRpdmVzLiBUaGUg Y2FsbGVyIG11c3QgY29uZmlybSBhbGwgcG9zaXRpdmUgcmVzdWx0cyBieSBjYWxsaW5nCi10cnhf aXNfYWN0aXZlKCkuICovCit0cnhfaXNfYWN0aXZlKCkgd2hpbGUgaG9sZGluZyBsb2NrX3N5cy0+ bXV0ZXguICovCiBVTklWX0lOVEVSTgogdHJ4X2lkX3QKIHJvd192ZXJzX2ltcGxfeF9sb2NrZWQo Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaCcK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaAlyZXZpZDp2YXNpbC5kaW1v dkBvcmFjbGUuY29tLTIwMTEwMTI0MDgwMTI0LXF0MzE4cGU3YzNpbHRwM3AKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDBzeXMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDExMDEyNDA4MjUzOS1qeGV6cjI2cnZnMzZoZXY3CkBAIC0yOTcsMjIgKzI5NywzMiBAQCB0 cnhfbGlzdF9nZXRfbWluX3RyeF9pZCh2b2lkKTsKIC8qPT09PT09PT09PT09PT09PT09PT09PT09 PSovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKIENoZWNrcyBpZiBhIHRyYW5zYWN0aW9uIHdpdGggdGhlIGdpdmVu IGlkIGlzIGFjdGl2ZS4gQ2FsbGVyIG11c3QgaG9sZAotdGhlIHRyeF9zeXNfdDo6bG9jayBpbiBz aGFyZWQgbW9kZS4KLUByZXR1cm4JdHJhbnNhY3Rpb24gaW5zdGFuY2UgaWYgYWN0aXZlIG9yIE5V TEwgKi8KK3RyeF9zeXMtPmxvY2sgaW4gc2hhcmVkIG1vZGUuIElmIHRoZSBjYWxsZXIgaXMgbm90 IGhvbGRpbmcKK2xvY2tfc3lzLT5tdXRleCwgdGhlIHRyYW5zYWN0aW9uIG1heSBhbHJlYWR5IGhh dmUgYmVlbiBjb21taXR0ZWQuCitAcmV0dXJuCXRyYW5zYWN0aW9uIGluc3RhbmNlIGlmIGFjdGl2 ZSwgb3IgTlVMTDsKK3RoZSBwb2ludGVyIG11c3Qgbm90IGJlIGRlcmVmZXJlbmNlZCB1bmxlc3Mg bG9ja19zeXMtPm11dGV4IHdhcworYWNxdWlyZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlv biBhbmQgaXMgc3RpbGwgYmVpbmcgaGVsZCAqLwogVU5JVl9JTkxJTkUKIHRyeF90KgogdHJ4X2lz X2FjdGl2ZV9sb3coCiAvKj09PT09PT09PT09PT09Ki8KIAl0cnhfaWRfdAl0cnhfaWQsCQkvKiE8 IGluOiB0cnggaWQgb2YgdGhlIHRyYW5zYWN0aW9uICovCi0JaWJvb2wqCQljb3JydXB0KTsJLyoh PCBvdXQ6IFRSVUUgaWYgY29ycnVwdCAqLworCWlib29sKgkJY29ycnVwdCk7CS8qITwgaW46IE5V TEwgb3IgcG9pbnRlciB0byBhIGZsYWcKKwkJCQkJdGhhdCB3aWxsIGJlIHNldCBpZiBjb3JydXB0 ICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKLUNoZWNrcyBpZiBhIHRyYW5zYWN0aW9uIHdpdGggdGhlIGdpdmVu IGlkIGlzIGFjdGl2ZS4KLUByZXR1cm4JdHJhbnNhY3Rpb24gaW5zdGFuY2UgaWYgYWN0aXZlICov CitDaGVja3MgaWYgYSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBnaXZlbiBpZCBpcyBhY3RpdmUuIElm IHRoZSBjYWxsZXIgaXMKK25vdCBob2xkaW5nIGxvY2tfc3lzLT5tdXRleCwgdGhlIHRyYW5zYWN0 aW9uIG1heSBhbHJlYWR5IGhhdmUgYmVlbgorY29tbWl0dGVkLgorQHJldHVybgl0cmFuc2FjdGlv biBpbnN0YW5jZSBpZiBhY3RpdmUsIG9yIE5VTEw7Cit0aGUgcG9pbnRlciBtdXN0IG5vdCBiZSBk ZXJlZmVyZW5jZWQgdW5sZXNzIGxvY2tfc3lzLT5tdXRleCB3YXMKK2FjcXVpcmVkIGJlZm9yZSBj YWxsaW5nIHRoaXMgZnVuY3Rpb24gYW5kIGlzIHN0aWxsIGJlaW5nIGhlbGQgKi8KIFVOSVZfSU5M SU5FCiB0cnhfdCoKIHRyeF9pc19hY3RpdmUoCiAvKj09PT09PT09PT0qLwotCXRyeF9pZF90CXRy eF9pZCk7LyohPCBpbjogdHJ4IGlkIG9mIHRoZSB0cmFuc2FjdGlvbiAqLworCXRyeF9pZF90CXRy eF9pZCwJCS8qITwgaW46IHRyeCBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gKi8KKwlpYm9vbCoJCWNv cnJ1cHQpOwkvKiE8IGluOiBOVUxMIG9yIHBvaW50ZXIgdG8gYSBmbGFnCisJCQkJCXRoYXQgd2ls bCBiZSBzZXQgaWYgY29ycnVwdCAqLwogI2lmZGVmIFVOSVZfREVCVUcKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgog Q2hlY2tzIHRoYXQgdHJ4IGlzIGluIHRoZSB0cnggbGlzdC4KCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHN5cy5pYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3RyeDBzeXMuaWMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDExMDEy NDA4MDEyNC1xdDMxOHBlN2MzaWx0cDNwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90 cngwc3lzLmljCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMTI0MDgyNTM5LWp4 ZXpyMjZydmczNmhldjcKQEAgLTM4MCwxNCArMzgwLDE4IEBAIHRyeF9saXN0X2dldF9taW5fdHJ4 X2lkKHZvaWQpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogQ2hlY2tzIGlmIGEgdHJhbnNhY3Rpb24gd2l0aCB0 aGUgZ2l2ZW4gaWQgaXMgYWN0aXZlLiBDYWxsZXIgbXVzdCBob2xkCi10aGUgdHJ4X3N5c190Ojps b2NrIGluIHNoYXJlZCBtb2RlLgotQHJldHVybgl0cmFuc2FjdGlvbiBpbnN0YW5jZSBpZiBhY3Rp dmUgKi8KK3RyeF9zeXMtPmxvY2sgaW4gc2hhcmVkIG1vZGUuIElmIHRoZSBjYWxsZXIgaXMgbm90 IGhvbGRpbmcKK2xvY2tfc3lzLT5tdXRleCwgdGhlIHRyYW5zYWN0aW9uIG1heSBhbHJlYWR5IGhh dmUgYmVlbiBjb21taXR0ZWQuCitAcmV0dXJuCXRyYW5zYWN0aW9uIGluc3RhbmNlIGlmIGFjdGl2 ZSwgb3IgTlVMTDsKK3RoZSBwb2ludGVyIG11c3Qgbm90IGJlIGRlcmVmZXJlbmNlZCB1bmxlc3Mg bG9ja19zeXMtPm11dGV4IHdhcworYWNxdWlyZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlv biBhbmQgaXMgc3RpbGwgYmVpbmcgaGVsZCAqLwogVU5JVl9JTkxJTkUKIHRyeF90KgogdHJ4X2lz X2FjdGl2ZV9sb3coCiAvKj09PT09PT09PT09PT09Ki8KIAl0cnhfaWRfdAl0cnhfaWQsCQkvKiE8 IGluOiB0cnggaWQgb2YgdGhlIHRyYW5zYWN0aW9uICovCi0JaWJvb2wqCQljb3JydXB0KQkvKiE8 IG91dDogVFJVRSBpZiBjb3JydXB0ICovCisJaWJvb2wqCQljb3JydXB0KQkvKiE8IGluOiBOVUxM IG9yIHBvaW50ZXIgdG8gYSBmbGFnCisJCQkJCXRoYXQgd2lsbCBiZSBzZXQgaWYgY29ycnVwdCAq LwogewogCXRyeF90KgkJdHJ4OwogCkBAIC0zOTUsMTggKzM5OSwxOCBAQCB0cnhfaXNfYWN0aXZl X2xvdygKIAl1dF9hZChyd19sb2NrX293bigmdHJ4X3N5cy0+bG9jaywgUldfTE9DS19TSEFSRUQp KTsKICNlbmRpZiAvKiBVTklWX1NZTkNfREVCVUcgKi8KIAotCSpjb3JydXB0ID0gRkFMU0U7Ci0K IAlpZiAodHJ4X2lkIDwgdHJ4X2xpc3RfZ2V0X21pbl90cnhfaWRfbG93KCkpIHsKIAogCQl0cngg PSBOVUxMOwotCX0gZWxzZSBpZiAodHJ4X2lkID49IHRyeF9zeXMtPm1heF90cnhfaWQpIHsKKwl9 IGVsc2UgaWYgKFVOSVZfVU5MSUtFTFkodHJ4X2lkID49IHRyeF9zeXMtPm1heF90cnhfaWQpKSB7 CiAKIAkJLyogVGhlcmUgbXVzdCBiZSBjb3JydXB0aW9uOiB3ZSBsZXQgdGhlIGNhbGxlciBoYW5k bGUgdGhlCiAJICAgICAgIAlkaWFnbm9zdGljIHByaW50cyBpbiB0aGlzIGNhc2UuICovCiAKIAkJ dHJ4ID0gTlVMTDsKLQkJKmNvcnJ1cHQgPSBUUlVFOworCQlpZiAoY29ycnVwdCAhPSBOVUxMKSB7 CisJCQkqY29ycnVwdCA9IFRSVUU7CisJCX0KIAl9IGVsc2UgewogCQl0cnggPSB0cnhfZ2V0X29u X2lkX2xvdyh0cnhfaWQpOwogCkBAIC00MjIsMjAgKzQyNiwyNSBAQCB0cnhfaXNfYWN0aXZlX2xv dygKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovLyoqCi1DaGVja3MgaWYgYSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBn aXZlbiBpZCBpcyBhY3RpdmUuCi1AcmV0dXJuCVRSVUUgaWYgYWN0aXZlICovCitDaGVja3MgaWYg YSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBnaXZlbiBpZCBpcyBhY3RpdmUuIElmIHRoZSBjYWxsZXIg aXMKK25vdCBob2xkaW5nIGxvY2tfc3lzLT5tdXRleCwgdGhlIHRyYW5zYWN0aW9uIG1heSBhbHJl YWR5IGhhdmUgYmVlbgorY29tbWl0dGVkLgorQHJldHVybgl0cmFuc2FjdGlvbiBpbnN0YW5jZSBp ZiBhY3RpdmUsIG9yIE5VTEw7Cit0aGUgcG9pbnRlciBtdXN0IG5vdCBiZSBkZXJlZmVyZW5jZWQg dW5sZXNzIGxvY2tfc3lzLT5tdXRleCB3YXMKK2FjcXVpcmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMg ZnVuY3Rpb24gYW5kIGlzIHN0aWxsIGJlaW5nIGhlbGQgKi8KIFVOSVZfSU5MSU5FCiB0cnhfdCoK IHRyeF9pc19hY3RpdmUoCiAvKj09PT09PT09PT0qLwotCXRyeF9pZF90CXRyeF9pZCkJLyohPCBp bjogdHJ4IGlkIG9mIHRoZSB0cmFuc2FjdGlvbiAqLworCXRyeF9pZF90CXRyeF9pZCwJCS8qITwg aW46IHRyeCBpZCBvZiB0aGUgdHJhbnNhY3Rpb24gKi8KKwlpYm9vbCoJCWNvcnJ1cHQpCS8qITwg aW46IE5VTEwgb3IgcG9pbnRlciB0byBhIGZsYWcKKwkJCQkJdGhhdCB3aWxsIGJlIHNldCBpZiBj b3JydXB0ICovCiB7CiAJdHJ4X3QqCQl0cng7Ci0JaWJvb2wJCWNvcnJ1cHQ7CiAKIAlyd19sb2Nr X3NfbG9jaygmdHJ4X3N5cy0+bG9jayk7CiAKLQl0cnggPSB0cnhfaXNfYWN0aXZlX2xvdyh0cnhf aWQsICZjb3JydXB0KTsKKwl0cnggPSB0cnhfaXNfYWN0aXZlX2xvdyh0cnhfaWQsIGNvcnJ1cHQp OwogCiAJcndfbG9ja19zX3VubG9jaygmdHJ4X3N5cy0+bG9jayk7CiAKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2xvY2svbG9jazBsb2NrLmMnCi0tLSBhL3N0b3JhZ2UvaW5u b2Jhc2UvbG9jay9sb2NrMGxvY2suYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTEw MTI0MDgwMTI0LXF0MzE4cGU3YzNpbHRwM3AKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9sb2NrL2xv Y2swbG9jay5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwMTI0MDgyNTM5LWp4 ZXpyMjZydmczNmhldjcKQEAgLTUwMzMsMTUgKzUwMzMsMTYgQEAgbG9ja19yZWNfcXVldWVfdmFs aWRhdGUoCiAJaWYgKCFpbmRleCk7CiAJZWxzZSBpZiAoZGljdF9pbmRleF9pc19jbHVzdChpbmRl eCkpIHsKIAkJdHJ4X2lkX3QJdHJ4X2lkOwotCQlpYm9vbAkJY29ycnVwdDsKIAogCQkvKiBVbmxp a2UgdGhlIG5vbi1kZWJ1ZyBjb2RlLCB0aGlzIGludmFyaWFudCBjYW4gb25seSBzdWNjZWVkCiAJ CWlmIHRoZSBjaGVjayBhbmQgYXNzZXJ0aW9uIGFyZSBjb3ZlcmVkIGJ5IHRoZSBsb2NrIG11dGV4 LiAqLwogCi0JCXRyeF9pZCAgPSBsb2NrX2NsdXN0X3JlY19zb21lX2hhc19pbXBsKHJlYywgaW5k ZXgsIG9mZnNldHMpOwotCisJCXRyeF9pZCA9IGxvY2tfY2x1c3RfcmVjX3NvbWVfaGFzX2ltcGwo cmVjLCBpbmRleCwgb2Zmc2V0cyk7CisJCWltcGxfdHJ4ID0gdHJ4X2lzX2FjdGl2ZV9sb3codHJ4 X2lkLCBOVUxMKTsKIAotCQlpbXBsX3RyeCA9IHRyeF9pc19hY3RpdmVfbG93KHRyeF9pZCwgJmNv cnJ1cHQpOworCQl1dF9hZChsb2NrX211dGV4X293bigpKTsKKwkJLyogaW1wbF90cnggY2Fubm90 IGJlIGNvbW1pdHRlZCB1bnRpbCBsb2NrX211dGV4X2V4aXQoKQorCQliZWNhdXNlIGxvY2tfdHJ4 X3JlbGVhc2VfbG9ja3MoKSBhY3F1aXJlcyBsb2NrX3N5cy0+bXV0ZXggKi8KIAogCQlpZiAoaW1w bF90cnggIT0gTlVMTAogCQkgICAgJiYgbG9ja19yZWNfb3RoZXJfaGFzX2V4cGxfcmVxKExPQ0tf UywgMCwgTE9DS19XQUlULApAQCAtNTA1MCw0NSArNTA1MSw2IEBAIGxvY2tfcmVjX3F1ZXVlX3Zh bGlkYXRlKAogCQkJdXRfYShsb2NrX3JlY19oYXNfZXhwbChMT0NLX1ggfCBMT0NLX1JFQ19OT1Rf R0FQLAogCQkJCQkgICAgICAgYmxvY2ssIGhlYXBfbm8sIGltcGxfdHJ4KSk7CiAJCX0KLSNpZiAw Ci0JfSBlbHNlIHsKLQotCQkvKiBJZiB0aGlzIHRocmVhZCBpcyBob2xkaW5nIHRoZSBmaWxlIHNw YWNlIGxhdGNoCi0JCShmaWxfc3BhY2VfdDo6bGF0Y2gpLCB0aGUgZm9sbG93aW5nIGNoZWNrIFdJ TEwgYnJlYWsKLQkJbGF0Y2hpbmcgb3JkZXIgYW5kIG1heSBjYXVzZSBhIGRlYWRsb2NrIG9mIHRo cmVhZHMuICovCi0KLQkJLyogTk9URTogVGhpcyBpcyBhIGJvZ3VzIGNoZWNrIHRoYXQgd291bGQg ZmFpbCBpbiB0aGUKLQkJZm9sbG93aW5nIGNhc2U6IE91ciB0cmFuc2FjdGlvbiBpcyB1cGRhdGlu ZyBhCi0JCXJvdy4gQWZ0ZXIgaXQgaGFzIHVwZGF0ZWQgdGhlIGNsdXN0ZXJlZCBpbmRleCByZWNv cmQsCi0JCWl0IGdvZXMgdG8gYSBzZWNvbmRhcnkgaW5kZXggcmVjb3JkIGFuZCBmaW5kcyBzb21l b25lCi0JCWVsc2UgaG9sZGluZyBhbiBleHBsaWNpdCBTLSBvciBYLWxvY2sgb24gdGhhdAotCQlz ZWNvbmRhcnkgaW5kZXggcmVjb3JkLCBwcmVzdW1hYmx5IGZyb20gYSBsb2NraW5nCi0JCXJlYWQu IE91ciB0cmFuc2FjdGlvbiBjYW5ub3QgdXBkYXRlIHRoZSBzZWNvbmRhcnkKLQkJaW5kZXggaW1t ZWRpYXRlbHksIGJ1dCBwbGFjZXMgYSB3YWl0aW5nIFgtbG9jayByZXF1ZXN0Ci0JCW9uIHRoZSBz ZWNvbmRhcnkgaW5kZXggcmVjb3JkLiBUaGVyZSBpcyBub3RoaW5nCi0JCWlsbGVnYWwgaW4gdGhp cy4gVGhlIGFzc2VydGlvbiBpcyBzaW1wbHkgdG9vIHN0cm9uZy4gKi8KLQotCQkvKiBGcm9tIHRo ZSBsb2NraW5nIHBvaW50IG9mIHZpZXcsIGVhY2ggc2Vjb25kYXJ5Ci0JCWluZGV4IGlzIGEgc2Vw YXJhdGUgdGFibGUuIEEgbG9jayB0aGF0IGlzIGhlbGQgb24KLQkJc2Vjb25kYXJ5IGluZGV4IHJl YyBkb2VzIG5vdCBnaXZlIGFueSByaWdodHMgdG8gbW9kaWZ5Ci0JCW9yIHJlYWQgdGhlIGNsdXN0 ZXJlZCBpbmRleCByZWMuIFRoZXJlZm9yZSwgd2UgY2FuCi0JCXRoaW5rIG9mIHRoZSBzZWMgaW5k ZXggYXMgYSBzZXBhcmF0ZSAndGFibGUnIGZyb20gdGhlCi0JCWNsdXN0IGluZGV4ICd0YWJsZScu IENvbnZlcnNlbHksIGEgdHJhbnNhY3Rpb24gdGhhdAotCQloYXMgYWNxdWlyZWQgYSBsb2NrIG9u IGFuZCBtb2RpZmllZCBhIGNsdXN0ZXJlZCBpbmRleAotCQlyZWNvcmQgbWF5IG5lZWQgdG8gd2Fp dCBmb3IgYSBsb2NrIG9uIHRoZQotCQljb3JyZXNwb25kaW5nIHJlY29yZCBpbiBhIHNlY29uZGFy eSBpbmRleC4gKi8KLQotCQlpbXBsX3RyeCA9IGxvY2tfc2VjX3JlY19zb21lX2hhc19pbXBsKAot CQkJcmVjLCBpbmRleCwgb2Zmc2V0cyk7Ci0KLQkJaWYgKGltcGxfdHJ4Ci0JCSAgICAmJiBsb2Nr X3JlY19vdGhlcl9oYXNfZXhwbF9yZXEoTE9DS19TLCAwLCBMT0NLX1dBSVQsCi0JCQkJCQkgICBi bG9jaywgaGVhcF9ubywgaW1wbF90cngpKSB7Ci0KLQkJCXV0X2EobG9ja19yZWNfaGFzX2V4cGwo TE9DS19YIHwgTE9DS19SRUNfTk9UX0dBUCwKLQkJCQkJICAgICAgIGJsb2NrLCBoZWFwX25vLCBp bXBsX3RyeCkpOwotCQl9Ci0jZW5kaWYKIAl9CiAKIAlmb3IgKGxvY2sgPSBsb2NrX3JlY19nZXRf Zmlyc3QoYmxvY2ssIGhlYXBfbm8pOwpAQCAtNTUwOSwyMiArNTQ3MSwyOSBAQCBsb2NrX3JlY19j b252ZXJ0X2ltcGxfdG9fZXhwbCgKIAogCWlmIChkaWN0X2luZGV4X2lzX2NsdXN0KGluZGV4KSkg ewogCQl0cnhfaWQgPSBsb2NrX2NsdXN0X3JlY19zb21lX2hhc19pbXBsKHJlYywgaW5kZXgsIG9m ZnNldHMpOworCQkvKiBUaGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZCB3YXMgbGFzdCBtb2RpZmll ZCBieQorCQl0aGlzIHRyYW5zYWN0aW9uLiBUaGUgdHJhbnNhY3Rpb24gbWF5IGhhdmUgYmVlbgor CQljb21taXR0ZWQgYSBsb25nIHRpbWUgYWdvLiAqLwogCX0gZWxzZSB7CiAJCXRyeF9pZCA9IGxv Y2tfc2VjX3JlY19zb21lX2hhc19pbXBsKHJlYywgaW5kZXgsIG9mZnNldHMpOworCQkvKiBUaGUg dHJhbnNhY3Rpb24gY2FuIGJlIGNvbW1pdHRlZCBiZWZvcmUgdGhlCisJCXRyeF9pc19hY3RpdmUo dHJ4X2lkLCBOVUxMKSBjaGVjayBiZWxvdywgYmVjYXVzZSB3ZSBhcmUgbm90CisJCWhvbGRpbmcg bG9ja19tdXRleC4gKi8KIAl9CiAKLQkvKiBUaGUgc3RhdGUgb2YgdGhlIHRyYW5zYWN0aW9uIGNh biBjaGFuZ2UgYWZ0ZXIgdGhlIGNoZWNrIGFib3ZlLiAqLwotCiAJaWYgKHRyeF9pZCAhPSAwKSB7 CiAJCXRyeF90KglpbXBsX3RyeDsKIAkJdWxpbnQJaGVhcF9ubyA9IHBhZ2VfcmVjX2dldF9oZWFw X25vKHJlYyk7CiAKIAkJbG9ja19tdXRleF9lbnRlcigpOwogCi0JCS8qIElmIHRoZSB0cmFuc2Fj dGlvbiBoYXMgbm8gZXhwbGljaXQgeC1sb2NrIHNldCBvbiB0aGUKLQkJcmVjb3JkLCBzZXQgb25l IGZvciBpdCAqLworCQkvKiBJZiB0aGUgdHJhbnNhY3Rpb24gaXMgc3RpbGwgYWN0aXZlIGFuZCBo YXMgbm8KKwkJZXhwbGljaXQgeC1sb2NrIHNldCBvbiB0aGUgcmVjb3JkLCBzZXQgb25lIGZvciBp dCAqLworCisJCWltcGxfdHJ4ID0gdHJ4X2lzX2FjdGl2ZSh0cnhfaWQsIE5VTEwpOwogCi0JCWlt cGxfdHJ4ID0gdHJ4X2lzX2FjdGl2ZSh0cnhfaWQpOworCQkvKiBpbXBsX3RyeCBjYW5ub3QgYmUg Y29tbWl0dGVkIHVudGlsIGxvY2tfbXV0ZXhfZXhpdCgpCisJCWJlY2F1c2UgbG9ja190cnhfcmVs ZWFzZV9sb2NrcygpIGFjcXVpcmVzIGxvY2tfc3lzLT5tdXRleCAqLwogCiAJCWlmIChpbXBsX3Ry eCAhPSBOVUxMCiAJCSAgICAmJiAhbG9ja19yZWNfaGFzX2V4cGwoTE9DS19YIHwgTE9DS19SRUNf Tk9UX0dBUCwgYmxvY2ssCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MHZlcnMuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHZlcnMuYwlyZXZpZDp2 YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTEwMTI0MDgwMTI0LXF0MzE4cGU3YzNpbHRwM3AKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHZlcnMuYwlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDExMDEyNDA4MjUzOS1qeGV6cjI2cnZnMzZoZXY3CkBAIC01Miw2MiArNTIsMjgg QEAgaW5kZXggcmVjb3JkLgogQHJldHVybiAwIGlmIGNvbW1pdHRlZCwgZWxzZSB0aGUgYWN0aXZl IHRyYW5zYWN0aW9uIGlkOwogTk9URSB0aGF0IHRoaXMgZnVuY3Rpb24gY2FuIHJldHVybiBmYWxz ZSBwb3NpdGl2ZXMgYnV0IG5ldmVyIGZhbHNlCiBuZWdhdGl2ZXMuIFRoZSBjYWxsZXIgbXVzdCBj b25maXJtIGFsbCBwb3NpdGl2ZSByZXN1bHRzIGJ5IGNhbGxpbmcKLXRyeF9pc19hY3RpdmUoKS4g Ki8KLVVOSVZfSU5URVJOCit0cnhfaXNfYWN0aXZlKCkgd2hpbGUgaG9sZGluZyBsb2NrX3N5cy0+ bXV0ZXguICovCitVTklWX0lOTElORQogdHJ4X2lkX3QKLXJvd192ZXJzX2ltcGxfeF9sb2NrZWQo Ci0vKj09PT09PT09PT09PT09PT09PT0qLwotCWNvbnN0IHJlY190KglyZWMsCS8qITwgaW46IHJl Y29yZCBpbiBhIHNlY29uZGFyeSBpbmRleCAqLwotCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwg aW46IHRoZSBzZWNvbmRhcnkgaW5kZXggKi8KLQljb25zdCB1bGludCoJb2Zmc2V0cykvKiE8IGlu OiByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCkgKi8KK3Jvd192ZXJzX2ltcGxfeF9sb2NrZWRf bG93KAorLyo9PT09PT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgcmVjX3QqCWNsdXN0X3Jl YywJLyohPCBpbjogY2x1c3RlcmVkIGluZGV4IHJlY29yZCAqLworCWRpY3RfaW5kZXhfdCoJY2x1 c3RfaW5kZXgsCS8qITwgaW46IHRoZSBjbHVzdGVyZWQgaW5kZXggKi8KKwljb25zdCByZWNfdCoJ cmVjLAkJLyohPCBpbjogc2Vjb25kYXJ5IGluZGV4IHJlY29yZCAqLworCWRpY3RfaW5kZXhfdCoJ aW5kZXgsCQkvKiE8IGluOiB0aGUgc2Vjb25kYXJ5IGluZGV4ICovCisJY29uc3QgdWxpbnQqCW9m ZnNldHMsCS8qITwgaW46IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAqLworCW10cl90KgkJ bXRyKQkJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKLQlkaWN0X2luZGV4X3Qq CWNsdXN0X2luZGV4OwotCXJlY190KgkJY2x1c3RfcmVjOwotCXVsaW50KgkJY2x1c3Rfb2Zmc2V0 czsKLQlyZWNfdCoJCXZlcnNpb247CiAJdHJ4X2lkX3QJdHJ4X2lkOwotCXRyeF9pZF90CWFjdGl2 ZV90cnhfaWQgPSAwOwotCW1lbV9oZWFwX3QqCWhlYXA7Ci0JZHR1cGxlX3QqCXJvdzsKLQl0cnhf dCoJCXRyeDsKLQl1bGludAkJcmVjX2RlbDsKLQltdHJfdAkJbXRyOwotCXVsaW50CQljb21wOwog CWlib29sCQljb3JydXB0OworCXVsaW50CQljb21wOworCXVsaW50CQlyZWNfZGVsOworCWNvbnN0 IHJlY190Kgl2ZXJzaW9uOwogCXJlY190KgkJcHJldl92ZXJzaW9uID0gTlVMTDsKKwl1bGludCoJ CWNsdXN0X29mZnNldHM7CisJbWVtX2hlYXBfdCoJaGVhcDsKIAotI2lmZGVmIFVOSVZfU1lOQ19E RUJVRwotCXV0X2FkKCFyd19sb2NrX293bigmKHB1cmdlX3N5cy0+bGF0Y2gpLCBSV19MT0NLX1NI QVJFRCkpOwotCXV0X2FkKCFyd19sb2NrX293bigmdHJ4X3N5cy0+bG9jaywgUldfTE9DS19TSEFS RUQpKTsKLSNlbmRpZiAvKiBVTklWX1NZTkNfREVCVUcgKi8KLQl1dF9hZCghbG9ja19tdXRleF9v d24oKSk7Ci0KLQltdHJfc3RhcnQoJm10cik7Ci0KLQkvKiBTZWFyY2ggZm9yIHRoZSBjbHVzdGVy ZWQgaW5kZXggcmVjb3JkIFRoZSBsYXRjaCBvbiB0aGUgY2x1c3RlcmVkCi0gICAgICAgCWluZGV4 IGxvY2tzIHRoZSB0b3Agb2YgdGhlIHN0YWNrIG9mIHZlcnNpb25zLiBXZSBhbHNvIHJlc2VydmUK LSAgICAgICAJcHVyZ2VfbGF0Y2ggdG8gbG9jayB0aGUgYm90dG9tIG9mIHRoZSB2ZXJzaW9uIHN0 YWNrLiAqLwotCi0JY2x1c3RfcmVjID0gcm93X2dldF9jbHVzdF9yZWMoCi0JCUJUUl9TRUFSQ0hf TEVBRiwgcmVjLCBpbmRleCwgJmNsdXN0X2luZGV4LCAmbXRyKTsKLQotCWlmICghY2x1c3RfcmVj KSB7Ci0JCS8qIEluIGEgcmFyZSBjYXNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgbm8gY2x1c3QgcmVj IGlzIGZvdW5kCi0JCWZvciBhIHNlY29uZGFyeSBpbmRleCByZWNvcmQ6IGlmIGluIHJvdzB1bW9k LmMKLQkJcm93X3VuZG9fbW9kX3JlbW92ZV9jbHVzdF9sb3coKSB3ZSBoYXZlIGFscmVhZHkgcmVt b3ZlZCB0aGUKLQkJY2x1c3QgcmVjLCB3aGlsZSBwdXJnZSBpcyBzdGlsbCBjbGVhbmluZyBhbmQg cmVtb3ZpbmcKLQkJc2Vjb25kYXJ5IGluZGV4IHJlY29yZHMgYXNzb2NpYXRlZCB3aXRoIGVhcmxp ZXIgdmVyc2lvbnMgb2YKLQkJdGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQuIEluIHRoYXQgY2Fz ZSB0aGVyZSBjYW5ub3QgYmUKLQkJYW55IGltcGxpY2l0IGxvY2sgb24gdGhlIHNlY29uZGFyeSBp bmRleCByZWNvcmQsIGJlY2F1c2UKLQkJYW4gYWN0aXZlIHRyYW5zYWN0aW9uIHdoaWNoIGhhcyBt b2RpZmllZCB0aGUgc2Vjb25kYXJ5IGluZGV4Ci0JCXJlY29yZCBoYXMgYWxzbyBtb2RpZmllZCB0 aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZC4gQW5kIGluCi0JCWEgcm9sbGJhY2sgd2UgYWx3YXlz IHVuZG8gdGhlIG1vZGlmaWNhdGlvbnMgdG8gc2Vjb25kYXJ5IGluZGV4Ci0JCXJlY29yZHMgYmVm b3JlIHRoZSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkLiAqLwotCi0JCW10cl9jb21taXQoJm10cik7 Ci0KLQkJcmV0dXJuKGFjdGl2ZV90cnhfaWQpOwotCX0KKwl1dF9hZChyZWNfb2Zmc192YWxpZGF0 ZShyZWMsIGluZGV4LCBvZmZzZXRzKSk7CiAKIAloZWFwID0gbWVtX2hlYXBfY3JlYXRlKDEwMjQp OwogCkBAIC0xMTUsMjcgKzgxLDE4IEBAIHJvd192ZXJzX2ltcGxfeF9sb2NrZWQoCiAJCWNsdXN0 X3JlYywgY2x1c3RfaW5kZXgsIE5VTEwsIFVMSU5UX1VOREVGSU5FRCwgJmhlYXApOwogCiAJdHJ4 X2lkID0gcm93X2dldF9yZWNfdHJ4X2lkKGNsdXN0X3JlYywgY2x1c3RfaW5kZXgsIGNsdXN0X29m ZnNldHMpOworCWNvcnJ1cHQgPSBGQUxTRTsKIAotCW10cl9zX2xvY2soJnB1cmdlX3N5cy0+bGF0 Y2gsICZtdHIpOwotCi0JcndfbG9ja19zX2xvY2soJnRyeF9zeXMtPmxvY2spOwotCi0JdHJ4ID0g dHJ4X2lzX2FjdGl2ZV9sb3codHJ4X2lkLCAmY29ycnVwdCk7Ci0KLQlyd19sb2NrX3NfdW5sb2Nr KCZ0cnhfc3lzLT5sb2NrKTsKLQotCWlmICh0cnggPT0gTlVMTCkgewotCisJaWYgKCF0cnhfaXNf YWN0aXZlKHRyeF9pZCwgJmNvcnJ1cHQpKSB7CiAJCS8qIFRoZSB0cmFuc2FjdGlvbiB0aGF0IG1v ZGlmaWVkIG9yIGluc2VydGVkIGNsdXN0X3JlYyBpcyBubwotCQlsb25nZXIgYWN0aXZlIG9yIGNv cnJ1cHQ6IG5vIGltcGxpY2l0IGxvY2sgb24gcmVjICovCi0KKwkJbG9uZ2VyIGFjdGl2ZSwgb3Ig aXQgaXMgY29ycnVwdDogbm8gaW1wbGljaXQgbG9jayBvbiByZWMgKi8KIAkJaWYgKGNvcnJ1cHQp IHsKLQkJICAgCWxvY2tfcmVwb3J0X3RyeF9pZF9pbnNhbml0eSgKKwkJCWxvY2tfcmVwb3J0X3Ry eF9pZF9pbnNhbml0eSgKIAkJCQl0cnhfaWQsIGNsdXN0X3JlYywgY2x1c3RfaW5kZXgsIGNsdXN0 X29mZnNldHMsCiAJCQkJdHJ4X3N5c19nZXRfbWF4X3RyeF9pZCgpKTsKIAkJfQotCi0JCWdvdG8g ZXhpdF9mdW5jOworCQltZW1faGVhcF9mcmVlKGhlYXApOworCQlyZXR1cm4oMCk7CiAJfQogCiAJ Y29tcCA9IHBhZ2VfcmVjX2lzX2NvbXAocmVjKTsKQEAgLTE0MywzNSArMTAwLDM4IEBAIHJvd192 ZXJzX2ltcGxfeF9sb2NrZWQoCiAJdXRfYWQoISFjb21wID09IGRpY3RfdGFibGVfaXNfY29tcChp bmRleC0+dGFibGUpKTsKIAl1dF9hZCghY29tcCA9PSAhcGFnZV9yZWNfaXNfY29tcChjbHVzdF9y ZWMpKTsKIAotCS8qIFdlIGxvb2sgdXAgaWYgc29tZSBlYXJsaWVyIHZlcnNpb24sIHdoaWNoIHdh cyBtb2RpZmllZCBieSB0aGUgdHJ4X2lkCi0JdHJhbnNhY3Rpb24sIG9mIHRoZSBjbHVzdGVyZWQg aW5kZXggcmVjb3JkIHdvdWxkIHJlcXVpcmUgcmVjIHRvIGJlIGluCi0JYSBkaWZmZXJlbnQgc3Rh dGUgKGRlbGV0ZSBtYXJrZWQgb3IgdW5tYXJrZWQsIG9yIGhhdmUgZGlmZmVyZW50IGZpZWxkCi0J dmFsdWVzLCBvciBub3QgZXhpc3RpbmcpLiBJZiB0aGVyZSBpcyBzdWNoIGEgdmVyc2lvbiwgdGhl biByZWMgd2FzCi0JbW9kaWZpZWQgYnkgdGhlIHRyeF9pZCB0cmFuc2FjdGlvbiwgYW5kIGl0IGhh cyBhbiBpbXBsaWNpdCB4LWxvY2sgb24KLQlyZWMuIE5vdGUgdGhhdCBpZiBjbHVzdF9yZWMgaXRz ZWxmIHdvdWxkIHJlcXVpcmUgcmVjIHRvIGJlIGluIGEKLQlkaWZmZXJlbnQgc3RhdGUsIHRoZW4g dGhlIHRyeF9pZCB0cmFuc2FjdGlvbiBoYXMgbm90IHlldCBoYWQgdGltZSB0bwotCW1vZGlmeSBy ZWMsIGFuZCBkb2VzIG5vdCBuZWNlc3NhcmlseSBoYXZlIGFuIGltcGxpY2l0IHgtbG9jayBvbiBy ZWMuICovCi0KIAlyZWNfZGVsID0gcmVjX2dldF9kZWxldGVkX2ZsYWcocmVjLCBjb21wKTsKIAot CWZvciAodmVyc2lvbiA9IGNsdXN0X3JlYzsgdmVyc2lvbiAhPSBOVUxMOyB2ZXJzaW9uID0gcHJl dl92ZXJzaW9uKSB7CisJLyogV2UgbG9vayB1cCBpZiBzb21lIGVhcmxpZXIgdmVyc2lvbiwgd2hp Y2ggd2FzIG1vZGlmaWVkIGJ5CisJdGhlIHRyeF9pZCB0cmFuc2FjdGlvbiwgb2YgdGhlIGNsdXN0 ZXJlZCBpbmRleCByZWNvcmQgd291bGQKKwlyZXF1aXJlIHJlYyB0byBiZSBpbiBhIGRpZmZlcmVu dCBzdGF0ZSAoZGVsZXRlIG1hcmtlZCBvcgorCXVubWFya2VkLCBvciBoYXZlIGRpZmZlcmVudCBm aWVsZCB2YWx1ZXMsIG9yIG5vdCBleGlzdGluZykuIElmCisJdGhlcmUgaXMgc3VjaCBhIHZlcnNp b24sIHRoZW4gcmVjIHdhcyBtb2RpZmllZCBieSB0aGUgdHJ4X2lkCisJdHJhbnNhY3Rpb24sIGFu ZCBpdCBoYXMgYW4gaW1wbGljaXQgeC1sb2NrIG9uIHJlYy4gTm90ZSB0aGF0CisJaWYgY2x1c3Rf cmVjIGl0c2VsZiB3b3VsZCByZXF1aXJlIHJlYyB0byBiZSBpbiBhIGRpZmZlcmVudAorCXN0YXRl LCB0aGVuIHRoZSB0cnhfaWQgdHJhbnNhY3Rpb24gaGFzIG5vdCB5ZXQgaGFkIHRpbWUgdG8KKwlt b2RpZnkgcmVjLCBhbmQgZG9lcyBub3QgbmVjZXNzYXJpbHkgaGF2ZSBhbiBpbXBsaWNpdCB4LWxv Y2sKKwlvbiByZWMuICovCisKKwltdHJfc19sb2NrKCZwdXJnZV9zeXMtPmxhdGNoLCBtdHIpOwog CisJZm9yICh2ZXJzaW9uID0gY2x1c3RfcmVjOzsgdmVyc2lvbiA9IHByZXZfdmVyc2lvbikgewog CQl1bGludAkJZXJyOwogCQlyb3dfZXh0X3QqCWV4dDsKKwkJY29uc3QgZHR1cGxlX3QqCXJvdzsK IAkJZHR1cGxlX3QqCWVudHJ5OwogCQl1bGludAkJdmVyc19kZWw7CiAJCXRyeF9pZF90CXByZXZf dHJ4X2lkOwogCQltZW1faGVhcF90KglvbGRfaGVhcCA9IGhlYXA7CiAKLQkJLyogV2UgaGF2ZSB0 byBjaGVjayBpZiB0aGUgdHJ4X2lkIHRyYW5zYWN0aW9uIGlzIHN0aWxsIGFjdGl2ZS4KLQkgICAg ICAgCVdlIGtlZXAgdGhlIHNlbWFwaG9yZSBpbiBtdHIgb24gdGhlIGNsdXN0X3JlYyBwYWdlLCBz byB0aGF0IG5vCi0JICAgICAgIAlvdGhlciB0cmFuc2FjdGlvbiBjYW4gdXBkYXRlIGl0IGFuZCBn ZXQgYW4gaW1wbGljaXQgeC1sb2NrIG9uCi0JICAgICAgIAlyZWMuICovCisJCS8qIFdlIGtlZXAg dGhlIHNlbWFwaG9yZSBpbiBtdHIgb24gdGhlIGNsdXN0X3JlYyBwYWdlLCBzbworCQl0aGF0IG5v IG90aGVyIHRyYW5zYWN0aW9uIGNhbiB1cGRhdGUgaXQgYW5kIGdldCBhbgorCQlpbXBsaWNpdCB4 LWxvY2sgb24gcmVjIHVudGlsIG10cl9jb21taXQobXRyKS4gKi8KIAogCQloZWFwID0gbWVtX2hl YXBfY3JlYXRlKDEwMjQpOwogCiAJCWVyciA9IHRyeF91bmRvX3ByZXZfdmVyc2lvbl9idWlsZCgK LQkJCWNsdXN0X3JlYywgJm10ciwgdmVyc2lvbiwgY2x1c3RfaW5kZXgsIGNsdXN0X29mZnNldHMs CisJCQljbHVzdF9yZWMsIG10ciwgdmVyc2lvbiwgY2x1c3RfaW5kZXgsIGNsdXN0X29mZnNldHMs CiAJCQloZWFwLCAmcHJldl92ZXJzaW9uKTsKIAogIAkJLyogRnJlZSB2ZXJzaW9uIGFuZCBjbHVz dF9vZmZzZXRzLiAqLwpAQCAtMTgwLDM1ICsxNDAsMzEgQEAgcm93X3ZlcnNfaW1wbF94X2xvY2tl ZCgKIAogCQlpZiAocHJldl92ZXJzaW9uID09IE5VTEwpIHsKIAotCQkJLyogSWYgdGhlIHRyYW5z YWN0aW9uIGlzIHN0aWxsIGFjdGl2ZSwgY2x1c3RfcmVjIG11c3QKLQkJICAgICAgIAliZSBhIGZy ZXNoIGluc2VydCwgYmVjYXVzZSBubyBwcmV2aW91cyB2ZXJzaW9uIHdhcwotCQkgICAgICAgCWZv dW5kLiAqLworCQkJLyogY2x1c3RfcmVjIG11c3QgYmUgYSBmcmVzaCBpbnNlcnQsIGJlY2F1c2UK KwkJCW5vIHByZXZpb3VzIHZlcnNpb24gd2FzIGZvdW5kLiAqLwogCiAJCQl1dF9hKGVyciA9PSBE Ql9TVUNDRVNTKTsKLQotCQkJLyogVGhlIGNhbGxlciBzaG91bGQgY2hlY2sgdGhlIHRyYW5hc2N0 aW9uIHN0YXR1cy4gKi8KLQkJCWFjdGl2ZV90cnhfaWQgPSB0cnhfaWQ7Ci0KIAkJCWJyZWFrOwog CQl9CiAKIAkJY2x1c3Rfb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0cygKIAkJCXByZXZfdmVyc2lv biwgY2x1c3RfaW5kZXgsIE5VTEwsIFVMSU5UX1VOREVGSU5FRCwKLQkJICAgICAgIAkmaGVhcCk7 CisJCQkmaGVhcCk7CiAKIAkJdmVyc19kZWwgPSByZWNfZ2V0X2RlbGV0ZWRfZmxhZyhwcmV2X3Zl cnNpb24sIGNvbXApOwogCiAJCXByZXZfdHJ4X2lkID0gcm93X2dldF9yZWNfdHJ4X2lkKAogCQkJ cHJldl92ZXJzaW9uLCBjbHVzdF9pbmRleCwgY2x1c3Rfb2Zmc2V0cyk7CiAKLQkJLyogSWYgdGhl IHRyeF9pZCBhbmQgcHJldl90cnhfaWQgYXJlIGRpZmZlcmVudCBhbmQgaWYKLQkJdGhlIHByZXZf dmVyc2lvbiBpcyBtYXJrZWQgZGVsZXRlZCB0aGVuIHRoZQotCQlwcmV2X3RyeF9pZCBtdXN0IGhh dmUgYWxyZWFkeSBjb21taXR0ZWQgZm9yIHRoZSB0cnhfaWQKLQkJdG8gYmUgYWJsZSB0byBtb2Rp ZnkgdGhlIHJvdy4gVGhlcmVmb3JlLCBwcmV2X3RyeF9pZAotCQljYW5ub3QgaG9sZCBhbnkgaW1w bGljaXQgbG9jay4gKi8KKwkJLyogSWYgdHJ4X2lkIGRpZmZlcnMgZnJvbSBwcmV2X3RyeF9pZCBh bmQgaWYgdGhlCisJCXByZXZfdmVyc2lvbiBpcyBtYXJrZWQgZGVsZXRlZCB0aGVuIHRoZSBwcmV2 X3RyeF9pZAorCQltdXN0IGhhdmUgYWxyZWFkeSBjb21taXR0ZWQgZm9yIHRoZSB0cnhfaWQgdG8g YmUgYWJsZQorCQl0byBtb2RpZnkgdGhlIHJvdy4gVGhlcmVmb3JlLCBwcmV2X3RyeF9pZCBjYW5u b3QgaG9sZAorCQlhbnkgaW1wbGljaXQgbG9jay4gKi8KIAogCQlpZiAodmVyc19kZWwgJiYgdHJ4 X2lkICE9IHByZXZfdHJ4X2lkKSB7CiAKKwkJCXRyeF9pZCA9IDA7CiAJCQlicmVhazsKIAkJfQog CkBAIC0yMjgsMjYgKzE4NCwzNCBAQCByb3dfdmVyc19pbXBsX3hfbG9ja2VkKAogCiAJCXV0X2Eo ZW50cnkgIT0gTlVMTCk7CiAKLQkJLyogSWYgd2UgZ2V0IGhlcmUsIHdlIGtub3cgdGhhdCB0aGUg dHJ4X2lkIHRyYW5zYWN0aW9uIGlzCi0JCXN0aWxsIGFjdGl2ZSBhbmQgaXQgaGFzIG1vZGlmaWVk IHByZXZfdmVyc2lvbi4gTGV0IHVzIGNoZWNrCi0JCWlmIHByZXZfdmVyc2lvbiB3b3VsZCByZXF1 aXJlIHJlYyB0byBiZSBpbiBhIGRpZmZlcmVudAotCQlzdGF0ZS4gKi8KKwkJLyogSWYgd2UgZ2V0 IGhlcmUsIHdlIGtub3cgdGhhdCB0aGUgdHJ4X2lkIHRyYW5zYWN0aW9uCisJCW1vZGlmaWVkIHBy ZXZfdmVyc2lvbi4gTGV0IHVzIGNoZWNrIGlmIHByZXZfdmVyc2lvbgorCQl3b3VsZCByZXF1aXJl IHJlYyB0byBiZSBpbiBhIGRpZmZlcmVudCBzdGF0ZS4gKi8KIAogCQkvKiBUaGUgcHJldmlvdXMg dmVyc2lvbiBvZiBjbHVzdF9yZWMgbXVzdCBiZQotCQlhY2Nlc3NpYmxlLCBiZWNhdXNlIHRoZSB0 cmFuc2FjdGlvbiBpcyBzdGlsbCBhY3RpdmUKLQkJYW5kIGNsdXN0X3JlYyB3YXMgbm90IGEgZnJl c2ggaW5zZXJ0LiAqLworCQlhY2Nlc3NpYmxlLCBiZWNhdXNlIGNsdXN0X3JlYyB3YXMgbm90IGEg ZnJlc2ggaW5zZXJ0CisJCWFuZCB3ZSBhcmUgaG9sZGluZyBwdXJnZV9zeXMtPmxhdGNoLiBUaGVy ZSBpcyBubworCQlndWFyYW50ZWUgdGhhdCB0aGUgdHJhbnNhY3Rpb24gaXMgc3RpbGwgYWN0aXZl LiAqLwogCi0JCXV0X2EoZXJyID09IERCX1NVQ0NFU1MpOworCQl1dF9hZChlcnIgPT0gREJfU1VD Q0VTUyk7CiAKIAkJLyogV2UgY2hlY2sgaWYgZW50cnkgYW5kIHJlYyBhcmUgaWRlbnRpZmllZCBp biB0aGUgYWxwaGFiZXRpY2FsCiAJCW9yZGVyaW5nICovCiAKLQkJaWYgKHRyeF9pc19hY3RpdmUo dHJ4X2lkKSA9PSBOVUxMKSB7Ci0KLQkJCS8qIFRyYW5zYWN0aW9uIG5vIGxvbmdlciBhY3RpdmU6 IG5vIGltcGxpY2l0IHgtbG9jayAqLwotCisJCWlmICghdHJ4X2lzX2FjdGl2ZSh0cnhfaWQsICZj b3JydXB0KSkgeworCQkJLyogVHJhbnNhY3Rpb24gbm8gbG9uZ2VyIGFjdGl2ZTogbm8gaW1wbGlj aXQKKwkJCXgtbG9jay4gVGhpcyBzaXR1YXRpb24gc2hvdWxkIG9ubHkgYmUgcG9zc2libGUKKwkJ CWJlY2F1c2Ugd2UgYXJlIG5vdCBob2xkaW5nIGxvY2tfc3lzLT5tdXRleC4gKi8KKwkJCXV0X2Fk KCFsb2NrX211dGV4X293bigpKTsKKwkJCWlmIChjb3JydXB0KSB7CisJCQkJbG9ja19yZXBvcnRf dHJ4X2lkX2luc2FuaXR5KAorCQkJCQl0cnhfaWQsCisJCQkJCXByZXZfdmVyc2lvbiwgY2x1c3Rf aW5kZXgsCisJCQkJCWNsdXN0X29mZnNldHMsCisJCQkJCXRyeF9zeXNfZ2V0X21heF90cnhfaWQo KSk7CisJCQl9CisJCQl0cnhfaWQgPSAwOwogCQkJYnJlYWs7Ci0KIAkJfSBlbHNlIGlmICgwID09 IGNtcF9kdHVwbGVfcmVjKGVudHJ5LCByZWMsIG9mZnNldHMpKSB7CiAJCQkvKiBUaGUgZGVsZXRl IG1hcmtzIG9mIHJlYyBhbmQgcHJldl92ZXJzaW9uIHNob3VsZCBiZQogCQkJZXF1YWwgZm9yIHJl YyB0byBiZSBpbiB0aGUgc3RhdGUgcmVxdWlyZWQgYnkKQEAgLTI1NSw3ICsyMTksNiBAQCByb3df dmVyc19pbXBsX3hfbG9ja2VkKAogCiAJCQlpZiAocmVjX2RlbCAhPSB2ZXJzX2RlbCkgewogCi0J CQkJYWN0aXZlX3RyeF9pZCA9IHRyeF9pZDsKIAkJCQlicmVhazsKIAkJCX0KIApAQCAtMjc2LDI0 ICsyMzksODAgQEAgcm93X3ZlcnNfaW1wbF94X2xvY2tlZCgKIAkJCS8qIFRoZSBkZWxldGUgbWFy ayBzaG91bGQgYmUgc2V0IGluIHJlYyBmb3IgaXQgdG8gYmUKIAkJCWluIHRoZSBzdGF0ZSByZXF1 aXJlZCBieSBwcmV2X3ZlcnNpb24gKi8KIAotCQkJYWN0aXZlX3RyeF9pZCA9IHRyeF9pZDsKIAkJ CWJyZWFrOwogCQl9Ci0JCQorCiAJCWlmICh0cnhfaWQgIT0gcHJldl90cnhfaWQpIHsKLQkJCS8q IFRoZSB2ZXJzaW9ucyBtb2RpZmllZCBieSB0aGUgdHJ4X2lkIHRyYW5zYWN0aW9uIGVuZAotCQkJ dG8gcHJldl92ZXJzaW9uOiBubyBpbXBsaWNpdCB4LWxvY2sgKi8KKwkJCS8qIHByZXZfdmVyc2lv biB3YXMgdGhlIGZpcnN0IHZlcnNpb24gbW9kaWZpZWQgYnkKKwkJCXRoZSB0cnhfaWQgdHJhbnNh Y3Rpb246IG5vIGltcGxpY2l0IHgtbG9jayAqLwogCisJCQl0cnhfaWQgPSAwOwogCQkJYnJlYWs7 CiAJCX0KIAl9CiAKLWV4aXRfZnVuYzoKKwltZW1faGVhcF9mcmVlKGhlYXApOworCXJldHVybih0 cnhfaWQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCitGaW5kcyBvdXQgaWYgYW4gYWN0aXZlIHRyYW5z YWN0aW9uIGhhcyBpbnNlcnRlZCBvciBtb2RpZmllZCBhIHNlY29uZGFyeQoraW5kZXggcmVjb3Jk LgorQHJldHVybiAwIGlmIGNvbW1pdHRlZCwgZWxzZSB0aGUgYWN0aXZlIHRyYW5zYWN0aW9uIGlk OworTk9URSB0aGF0IHRoaXMgZnVuY3Rpb24gY2FuIHJldHVybiBmYWxzZSBwb3NpdGl2ZXMgYnV0 IG5ldmVyIGZhbHNlCituZWdhdGl2ZXMuIFRoZSBjYWxsZXIgbXVzdCBjb25maXJtIGFsbCBwb3Np dGl2ZSByZXN1bHRzIGJ5IGNhbGxpbmcKK3RyeF9pc19hY3RpdmUoKSB3aGlsZSBob2xkaW5nIGxv Y2tfc3lzLT5tdXRleC4gKi8KK1VOSVZfSU5URVJOCit0cnhfaWRfdAorcm93X3ZlcnNfaW1wbF94 X2xvY2tlZCgKKy8qPT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgcmVjX3QqCXJlYywJLyoh PCBpbjogcmVjb3JkIGluIGEgc2Vjb25kYXJ5IGluZGV4ICovCisJZGljdF9pbmRleF90KglpbmRl eCwJLyohPCBpbjogdGhlIHNlY29uZGFyeSBpbmRleCAqLworCWNvbnN0IHVsaW50KglvZmZzZXRz KS8qITwgaW46IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4KSAqLworeworCWRpY3RfaW5kZXhf dCoJY2x1c3RfaW5kZXg7CisJY29uc3QgcmVjX3QqCWNsdXN0X3JlYzsKKwl0cnhfaWRfdAl0cnhf aWQ7CisJbXRyX3QJCW10cjsKKworI2lmZGVmIFVOSVZfU1lOQ19ERUJVRworCXV0X2FkKCFyd19s b2NrX293bigmcHVyZ2Vfc3lzLT5sYXRjaCwgUldfTE9DS19TSEFSRUQpKTsKKwl1dF9hZCghcndf bG9ja19vd24oJnRyeF9zeXMtPmxvY2ssIFJXX0xPQ0tfU0hBUkVEKSk7CisjZW5kaWYgLyogVU5J Vl9TWU5DX0RFQlVHICovCisJdXRfYWQoIWxvY2tfbXV0ZXhfb3duKCkpOworCisJbXRyX3N0YXJ0 KCZtdHIpOworCisJLyogU2VhcmNoIGZvciB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZC4gVGhl IGxhdGNoIG9uIHRoZQorCXBhZ2Ugb2YgY2x1c3RfcmVjIGxvY2tzIHRoZSB0b3Agb2YgdGhlIHN0 YWNrIG9mIHZlcnNpb25zLiBUaGUKKwlib3R0b20gb2YgdGhlIHZlcnNpb24gc3RhY2sgd2lsbCBi ZSBsb2NrZWQgYnkKKwlwdXJnZV9zeXMtPmxhdGNoLiAqLworCisJY2x1c3RfcmVjID0gcm93X2dl dF9jbHVzdF9yZWMoCisJCUJUUl9TRUFSQ0hfTEVBRiwgcmVjLCBpbmRleCwgJmNsdXN0X2luZGV4 LCAmbXRyKTsKKworCWlmIChVTklWX1VOTElLRUxZKCFjbHVzdF9yZWMpKSB7CisJCS8qIEluIGEg cmFyZSBjYXNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgbm8gY2x1c3QgcmVjIGlzIGZvdW5kCisJCWZv ciBhIHNlY29uZGFyeSBpbmRleCByZWNvcmQ6IGlmIGluIHJvdzB1bW9kLmMKKwkJcm93X3VuZG9f bW9kX3JlbW92ZV9jbHVzdF9sb3coKSB3ZSBoYXZlIGFscmVhZHkgcmVtb3ZlZCB0aGUKKwkJY2x1 c3QgcmVjLCB3aGlsZSBwdXJnZSBpcyBzdGlsbCBjbGVhbmluZyBhbmQgcmVtb3ZpbmcKKwkJc2Vj b25kYXJ5IGluZGV4IHJlY29yZHMgYXNzb2NpYXRlZCB3aXRoIGVhcmxpZXIgdmVyc2lvbnMgb2YK KwkJdGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQuIEluIHRoYXQgY2FzZSB0aGVyZSBjYW5ub3Qg YmUKKwkJYW55IGltcGxpY2l0IGxvY2sgb24gdGhlIHNlY29uZGFyeSBpbmRleCByZWNvcmQsIGJl Y2F1c2UKKwkJYW4gYWN0aXZlIHRyYW5zYWN0aW9uIHdoaWNoIGhhcyBtb2RpZmllZCB0aGUgc2Vj b25kYXJ5IGluZGV4CisJCXJlY29yZCBoYXMgYWxzbyBtb2RpZmllZCB0aGUgY2x1c3RlcmVkIGlu ZGV4IHJlY29yZC4gQW5kIGluCisJCWEgcm9sbGJhY2sgd2UgYWx3YXlzIHVuZG8gdGhlIG1vZGlm aWNhdGlvbnMgdG8gc2Vjb25kYXJ5IGluZGV4CisJCXJlY29yZHMgYmVmb3JlIHRoZSBjbHVzdGVy ZWQgaW5kZXggcmVjb3JkLiAqLworCisJCXRyeF9pZCA9IDA7CisJfSBlbHNlIHsKKwkJdHJ4X2lk ID0gcm93X3ZlcnNfaW1wbF94X2xvY2tlZF9sb3coCisJCQljbHVzdF9yZWMsIGNsdXN0X2luZGV4 LCByZWMsIGluZGV4LCBvZmZzZXRzLCAmbXRyKTsKKwl9CiAKIAltdHJfY29tbWl0KCZtdHIpOwot CW1lbV9oZWFwX2ZyZWUoaGVhcCk7CiAKLQlyZXR1cm4oYWN0aXZlX3RyeF9pZCk7CisJcmV0dXJu KHRyeF9pZCk7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKCg== --===============0729142990== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.6-innodb/ # testament_sha1: 12a79f8beef4cc58375e868ae9de198207f29703 # timestamp: 2011-01-24 11:17:10 +0200 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: vasil.dimov@stripped\ # qt318pe7c3iltp3p # # Begin bundle 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 --===============0729142990==--