From: marko.makela Date: September 20 2012 10:09am Subject: bzr push into mysql-5.6-wl6494 branch (marko.makela:4296 to 4301) WL#6494 List-Archive: http://lists.mysql.com/commits/144854 Message-Id: <20120920100935.2528.63802.4301@x220> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDQzMDEgTWFya28gTcOka2Vsw6QJMjAxMi0wOS0yMAogICAgICBXTCM2NDk0IHByZXBhcmF0aW9u IChub24tZnVuY3Rpb25hbCBjaGFuZ2UpCiAgICAgIAogICAgICBsb2dfZ3JvdXBfY2xvc2VfYWxs KCk6IFJlZmFjdG9yZWQgZnJvbSBsb2dfc2h1dGRvd24oKS4KCiAgICBtb2RpZmllZDoKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2xvZzBsb2cuaAogICAgICBzdG9yYWdlL2lubm9iYXNl L2xvZy9sb2cwbG9nLmNjCiA0MzAwIE1hcmtvIE3DpGtlbMOkCTIwMTItMDktMjAKICAgICAgV0wj NjQ5NCBwcmVwYXJhdGlvbiAobm9uLWZ1bmN0aW9uYWwgY2hhbmdlKQogICAgICAKICAgICAgUmVt b3ZlIHBhcnNpbmcgb2YgbXVsdGlwbGUgSW5ub0RCIHJlZG8gbG9nIGdyb3Vwcy4KCiAgICBtb2Rp ZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwogICAgICBz dG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3J2MHNydi5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uv c3J2L3NydjBzcnYuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9zcnYvc3J2MHN0YXJ0LmNjCiA0 Mjk5IE1hcmtvIE3DpGtlbMOkCTIwMTItMDktMjAKICAgICAgV0wjNjQ5NCBwcmVwYXJhdGlvbiAo bm9uLWZ1bmN0aW9uYWwgY2hhbmdlKQogICAgICAKICAgICAgcmVjdl90cnVuY2F0ZV9ncm91cCgp OiBDbGVhciBtZW1vcnkgd2l0aCBtZW1zZXQoKS4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9sb2cvbG9nMHJlY3YuY2MKIDQyOTggTWFya28gTcOka2Vsw6QJMjAxMi0wOS0y MAogICAgICBXTCM2NDk0IHByZXBhcmF0aW9uOiBVc2UgaWJfbG9nZiBmb3Igc29tZSByZWNvdmVy eSBlcnJvciBtZXNzYWdlcy4KCiAgICBtb2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9s b2cvbG9nMHJlY3YuY2MKIDQyOTcgTWFya28gTcOka2Vsw6QJMjAxMi0wOS0yMAogICAgICBCcmFu Y2ggbXlzcWwtNS42LXdsNjQ5NCBmcm9tIG15c3FsLTUuNi4KCiAgICBtb2RpZmllZDoKICAgICAg LmJ6ci1teXNxbC9kZWZhdWx0LmNvbmYKIDQyOTYgTWFya28gTcOka2Vsw6QJMjAxMi0wOS0yMCBb bWVyZ2VdCiAgICAgIE1lcmdlIG15c3FsLTUuNSB0byBteXNxbC01LjYuCgogICAgbW9kaWZpZWQ6 CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvci9pbm5vZGJfY2hhbmdlX2J1ZmZlcmlu Z19kZWJ1Z19iYXNpYy5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L2lu bm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnX2Jhc2ljLnRlc3QKPT09IG1vZGlmaWVkIGZpbGUg Jy5ienItbXlzcWwvZGVmYXVsdC5jb25mJwotLS0gYS8uYnpyLW15c3FsL2RlZmF1bHQuY29uZgly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDkyMDA2MDUwNy1vcHplaDJoNGUyYzJn aDVwCisrKyBiLy5ienItbXlzcWwvZGVmYXVsdC5jb25mCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTIwOTIwMTAwNzU3LW91ZnlmYngyNzZncWNicWQKQEAgLTEsNCArMSw0IEBACiBb TVlTUUxdCiBwb3N0X2NvbW1pdF90byA9ICJjb21taXRzQGxpc3RzLm15c3FsLmNvbSIKIHBvc3Rf cHVzaF90byA9ICJjb21taXRzQGxpc3RzLm15c3FsLmNvbSIKLXRyZWVfbmFtZSA9ICJteXNxbC01 LjYiCit0cmVlX25hbWUgPSAibXlzcWwtNS42LXdsNjQ5NCIKCj09PSBtb2RpZmllZCBmaWxlICdz dG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwOTIwMDYwNTA3LW9wemVoMmg0ZTJjMmdoNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9oYW5k bGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDkyMDEw MDc1Ny1vdWZ5ZmJ4Mjc2Z3FjYnFkCkBAIC0xNTEsNyArMTUxLDYgQEAgYXJlIGRldGVybWluZWQg aW4gaW5ub2Jhc2VfaW5pdCBiZWxvdzogKgogCiBzdGF0aWMgY2hhcioJaW5ub2Jhc2VfZGF0YV9o b21lX2RpcgkJCT0gTlVMTDsKIHN0YXRpYyBjaGFyKglpbm5vYmFzZV9kYXRhX2ZpbGVfcGF0aAkJ CT0gTlVMTDsKLXN0YXRpYyBjaGFyKglpbm5vYmFzZV9sb2dfZ3JvdXBfaG9tZV9kaXIJCT0gTlVM TDsKIHN0YXRpYyBjaGFyKglpbm5vYmFzZV9maWxlX2Zvcm1hdF9uYW1lCQk9IE5VTEw7CiBzdGF0 aWMgY2hhcioJaW5ub2Jhc2VfY2hhbmdlX2J1ZmZlcmluZwkJPSBOVUxMOwogc3RhdGljIGNoYXIq CWlubm9iYXNlX2VuYWJsZV9tb25pdG9yX2NvdW50ZXIJCT0gTlVMTDsKQEAgLTI5MjMsOCArMjky Miw4IEBAIG1lbV9mcmVlX2FuZF9lcnJvcjoKIAogCS8qIFRoZSBkZWZhdWx0IGRpciBmb3IgbG9n IGZpbGVzIGlzIHRoZSBkYXRhZGlyIG9mIE15U1FMICovCiAKLQlpZiAoIWlubm9iYXNlX2xvZ19n cm91cF9ob21lX2RpcikgewotCQlpbm5vYmFzZV9sb2dfZ3JvdXBfaG9tZV9kaXIgPSBkZWZhdWx0 X3BhdGg7CisJaWYgKCFzcnZfbG9nX2dyb3VwX2hvbWVfZGlyKSB7CisJCXNydl9sb2dfZ3JvdXBf aG9tZV9kaXIgPSBkZWZhdWx0X3BhdGg7CiAJfQogCiAjaWZkZWYgVU5JVl9MT0dfQVJDSElWRQpA QCAtMjkzNywxMiArMjkzNiwxMiBAQCBtZW1fZnJlZV9hbmRfZXJyb3I6CiAJc3J2X2FyY2hfZGly ID0gaW5ub2Jhc2VfbG9nX2FyY2hfZGlyOwogI2VuZGlmIC8qIFVOSUdfTE9HX0FSQ0hJVkUgKi8K IAotCXJldCA9IChib29sKQotCQlzcnZfcGFyc2VfbG9nX2dyb3VwX2hvbWVfZGlycyhpbm5vYmFz ZV9sb2dfZ3JvdXBfaG9tZV9kaXIpOworCXNydl9ub3JtYWxpemVfcGF0aF9mb3Jfd2luKHNydl9s b2dfZ3JvdXBfaG9tZV9kaXIpOwogCi0JaWYgKHJldCA9PSBGQUxTRSB8fCBpbm5vYmFzZV9taXJy b3JlZF9sb2dfZ3JvdXBzICE9IDEpIHsKLQkgIHNxbF9wcmludF9lcnJvcigic3ludGF4IGVycm9y IGluIGlubm9kYl9sb2dfZ3JvdXBfaG9tZV9kaXIsIG9yIGEgIgotCQkJICAid3JvbmcgbnVtYmVy IG9mIG1pcnJvcmVkIGxvZyBncm91cHMiKTsKKwlpZiAoc3RyY2hyKHNydl9sb2dfZ3JvdXBfaG9t ZV9kaXIsICc7JykKKwkgICAgfHwgaW5ub2Jhc2VfbWlycm9yZWRfbG9nX2dyb3VwcyAhPSAxKSB7 CisJCXNxbF9wcmludF9lcnJvcigic3ludGF4IGVycm9yIGluIGlubm9kYl9sb2dfZ3JvdXBfaG9t ZV9kaXIsICIKKwkJCQkib3IgYSB3cm9uZyBudW1iZXIgb2YgbWlycm9yZWQgbG9nIGdyb3VwcyIp OwogCiAJCWdvdG8gbWVtX2ZyZWVfYW5kX2Vycm9yOwogCX0KQEAgLTMwNzMsNyArMzA3Miw2IEBA IGlubm9iYXNlX2NoYW5nZV9idWZmZXJpbmdfaW5pdGVkX29rOgogCiAJc3J2X2ZpbGVfZmx1c2hf bWV0aG9kX3N0ciA9IGlubm9iYXNlX2ZpbGVfZmx1c2hfbWV0aG9kOwogCi0Jc3J2X25fbG9nX2dy b3VwcyA9ICh1bGludCkgaW5ub2Jhc2VfbWlycm9yZWRfbG9nX2dyb3VwczsKIAlzcnZfbl9sb2df ZmlsZXMgPSAodWxpbnQpIGlubm9iYXNlX2xvZ19maWxlc19pbl9ncm91cDsKIAlzcnZfbG9nX2Zp bGVfc2l6ZSA9IChpYl91aW50NjRfdCkgaW5ub2Jhc2VfbG9nX2ZpbGVfc2l6ZTsKIApAQCAtMTUz OTcsNyArMTUzOTUsNyBAQCBzdGF0aWMgTVlTUUxfU1lTVkFSX0JPT0wobG9nX2FyY2hpdmUsIGlu CiAgICJTZXQgdG8gMSBpZiB5b3Ugd2FudCB0byBoYXZlIGxvZ3MgYXJjaGl2ZWQuIiwgTlVMTCwg TlVMTCwgRkFMU0UpOwogI2VuZGlmIC8qIFVOSVZfTE9HX0FSQ0hJVkUgKi8KIAotc3RhdGljIE1Z U1FMX1NZU1ZBUl9TVFIobG9nX2dyb3VwX2hvbWVfZGlyLCBpbm5vYmFzZV9sb2dfZ3JvdXBfaG9t ZV9kaXIsCitzdGF0aWMgTVlTUUxfU1lTVkFSX1NUUihsb2dfZ3JvdXBfaG9tZV9kaXIsIHNydl9s b2dfZ3JvdXBfaG9tZV9kaXIsCiAgIFBMVUdJTl9WQVJfUlFDTURBUkcgfCBQTFVHSU5fVkFSX1JF QURPTkxZLAogICAiUGF0aCB0byBJbm5vREIgbG9nIGZpbGVzLiIsIE5VTEwsIE5VTEwsIE5VTEwp OwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2xvZzBsb2cu aCcKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2xvZzBsb2cuaAlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEyMDkyMDA2MDUwNy1vcHplaDJoNGUyYzJnaDVwCisrKyBiL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9sb2cwbG9nLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMjA5MjAxMDA3NTctb3VmeWZieDI3NmdxY2JxZApAQCAtMSw2ICsxLDYgQEAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTUsIDIwMTEsIE9yYWNsZSBh bmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMp IDE5OTUsIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCiBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuCiAKIFBvcnRpb25zIG9mIHRo aXMgZmlsZSBjb250YWluIG1vZGlmaWNhdGlvbnMgY29udHJpYnV0ZWQgYW5kIGNvcHlyaWdodGVk IGJ5CkBAIC01NDIsMTMgKzU0MiwxOSBAQCBVTklWX0lOVEVSTgogdm9pZAogbG9nX3JlZnJlc2hf c3RhdHModm9pZCk7CiAvKj09PT09PT09PT09PT09PT09PT0qLwotLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0Nsb3NlcyBh bGwgbG9nIGdyb3Vwcy4gKi8KK1VOSVZfSU5URVJOCit2b2lkCitsb2dfZ3JvdXBfY2xvc2VfYWxs KHZvaWQpOworLyo9PT09PT09PT09PT09PT09PT09PT0qLworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogU2h1dGRvd24gdGhlIGxv ZyBzeXN0ZW0gYnV0IGRvIG5vdCByZWxlYXNlIGFsbCB0aGUgbWVtb3J5LiAqLwogVU5JVl9JTlRF Uk4KIHZvaWQKIGxvZ19zaHV0ZG93bih2b2lkKTsKIC8qPT09PT09PT09PT09PT0qLwotLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIEZyZWUgdGhlIGxvZyBzeXN0ZW0gZGF0YSBzdHJ1Y3R1cmVzLiAqLwogVU5JVl9JTlRFUk4K IHZvaWQKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3J2MHNy di5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvc3J2MHNydi5oCXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTIwOTIwMDYwNTA3LW9wemVoMmg0ZTJjMmdoNXAKKysrIGIv c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3NydjBzcnYuaAlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEyMDkyMDEwMDc1Ny1vdWZ5ZmJ4Mjc2Z3FjYnFkCkBAIC0yMzcsMTMgKzIzNywx MiBAQCBleHRlcm4gdWxpbnQqCXNydl9kYXRhX2ZpbGVfaXNfcmF3X3BhcnRpCiAKIGV4dGVybiBp Ym9vbAlzcnZfYXV0b19leHRlbmRfbGFzdF9kYXRhX2ZpbGU7CiBleHRlcm4gdWxpbnQJc3J2X2xh c3RfZmlsZV9zaXplX21heDsKLWV4dGVybiBjaGFyKioJc3J2X2xvZ19ncm91cF9ob21lX2RpcnM7 CitleHRlcm4gY2hhcioJc3J2X2xvZ19ncm91cF9ob21lX2RpcjsKICNpZm5kZWYgVU5JVl9IT1RC QUNLVVAKIGV4dGVybiB1bG9uZwlzcnZfYXV0b19leHRlbmRfaW5jcmVtZW50OwogCiBleHRlcm4g aWJvb2wJc3J2X2NyZWF0ZWRfbmV3X3JhdzsKIAotZXh0ZXJuIHVsaW50CXNydl9uX2xvZ19ncm91 cHM7CiBleHRlcm4gdWxpbnQJc3J2X25fbG9nX2ZpbGVzOwogZXh0ZXJuIGliX3VpbnQ2NF90CXNy dl9sb2dfZmlsZV9zaXplOwogZXh0ZXJuIHVsaW50CXNydl9sb2dfYnVmZmVyX3NpemU7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMGxvZy5jYycKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9sb2cvbG9nMGxvZy5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEyMDkyMDA2MDUwNy1vcHplaDJoNGUyYzJnaDVwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uv bG9nL2xvZzBsb2cuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MjAxMDA3 NTctb3VmeWZieDI3NmdxY2JxZApAQCAtMSw2ICsxLDYgQEAKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgogCi1Db3B5cmlnaHQgKGMpIDE5OTUsIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0 ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTUsIDIwMTIsIE9yYWNs ZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiBDb3B5cmlnaHQg KGMpIDIwMDksIEdvb2dsZSBJbmMuCiAKIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBjb250YWluIG1v ZGlmaWNhdGlvbnMgY29udHJpYnV0ZWQgYW5kIGNvcHlyaWdodGVkIGJ5CkBAIC0zNTA1LDcgKzM1 MDUsNyBAQCBsb2dfcmVmcmVzaF9zdGF0cyh2b2lkKQogCWxvZ19zeXMtPmxhc3RfcHJpbnRvdXRf dGltZSA9IHRpbWUoTlVMTCk7CiB9CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDbG9zZXMgYSBs b2cgZ3JvdXAuICovCiBzdGF0aWMKIHZvaWQKQEAgLTM1MzUsMTIgKzM1MzUsMTIgQEAgbG9nX2dy b3VwX2Nsb3NlKAogCW1lbV9mcmVlKGdyb3VwKTsKIH0KIAotLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLVNodXRkb3duIHRoZSBsb2cg c3lzdGVtIGJ1dCBkbyBub3QgcmVsZWFzZSBhbGwgdGhlIG1lbW9yeS4gKi8KKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK0Nsb3Nl cyBhbGwgbG9nIGdyb3Vwcy4gKi8KIFVOSVZfSU5URVJOCiB2b2lkCi1sb2dfc2h1dGRvd24odm9p ZCkKLS8qPT09PT09PT09PT09PT0qLworbG9nX2dyb3VwX2Nsb3NlX2FsbCh2b2lkKQorLyo9PT09 PT09PT09PT09PT09PT09PT0qLwogewogCWxvZ19ncm91cF90Kglncm91cDsKIApAQCAtMzU1NCw2 ICszNTU0LDE2IEBAIGxvZ19zaHV0ZG93bih2b2lkKQogCiAJCWxvZ19ncm91cF9jbG9zZShwcmV2 X2dyb3VwKTsKIAl9Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKK1NodXRkb3duIHRoZSBsb2cgc3lzdGVtIGJ1dCBkbyBu b3QgcmVsZWFzZSBhbGwgdGhlIG1lbW9yeS4gKi8KK1VOSVZfSU5URVJOCit2b2lkCitsb2dfc2h1 dGRvd24odm9pZCkKKy8qPT09PT09PT09PT09PT0qLworeworCWxvZ19ncm91cF9jbG9zZV9hbGwo KTsKIAogCW1lbV9mcmVlKGxvZ19zeXMtPmJ1Zl9wdHIpOwogCWxvZ19zeXMtPmJ1Zl9wdHIgPSBO VUxMOwpAQCAtMzU4MSw3ICszNTkxLDcgQEAgbG9nX3NodXRkb3duKHZvaWQpCiAJcmVjdl9zeXNf Y2xvc2UoKTsKIH0KIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKIEZyZWUgdGhlIGxvZyBzeXN0ZW0gZGF0YSBzdHJ1Y3R1 cmVzLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lu bm9iYXNlL2xvZy9sb2cwcmVjdi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9sb2cvbG9nMHJl Y3YuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MjAwNjA1MDctb3B6ZWgy aDRlMmMyZ2g1cAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2xvZy9sb2cwcmVjdi5jYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDkyMDEwMDc1Ny1vdWZ5ZmJ4Mjc2Z3FjYnFkCkBA IC00MjYsNyArNDI2LDYgQEAgcmVjdl90cnVuY2F0ZV9ncm91cCgKIAlsc25fdAkJZmluaXNoX2xz bjE7CiAJbHNuX3QJCWZpbmlzaF9sc24yOwogCWxzbl90CQlmaW5pc2hfbHNuOwotCXVsaW50CQlp OwogCiAJaWYgKGFyY2hpdmVkX2xzbiA9PSBMU05fTUFYKSB7CiAJCS8qIENoZWNrcG9pbnQgd2Fz IHRha2VuIGluIHRoZSBOT0FSQ0hJVkVMT0cgbW9kZSAqLwpAQCAtNDU0LDExICs0NTMsNyBAQCBy ZWN2X3RydW5jYXRlX2dyb3VwKAogCiAJdXRfYShSRUNWX1NDQU5fU0laRSA8PSBsb2dfc3lzLT5i dWZfc2l6ZSk7CiAKLQkvKiBXcml0ZSB0aGUgbG9nIGJ1ZmZlciBmdWxsIG9mIHplcm9zICovCi0J Zm9yIChpID0gMDsgaSA8IFJFQ1ZfU0NBTl9TSVpFOyBpKyspIHsKLQotCQkqKGxvZ19zeXMtPmJ1 ZiArIGkpID0gJ1wwJzsKLQl9CisJbWVtc2V0KGxvZ19zeXMtPmJ1ZiwgMCwgUkVDVl9TQ0FOX1NJ WkUpOwogCiAJc3RhcnRfbHNuID0gdXRfdWludDY0X2FsaWduX2Rvd24ocmVjb3ZlcmVkX2xzbiwK IAkJCQkJIE9TX0ZJTEVfTE9HX0JMT0NLX1NJWkUpOwpAQCAtNDk4LDExICs0OTMsNyBAQCByZWN2 X3RydW5jYXRlX2dyb3VwKAogCQkJcmV0dXJuOwogCQl9CiAKLQkJLyogV3JpdGUgdGhlIGxvZyBi dWZmZXIgZnVsbCBvZiB6ZXJvcyAqLwotCQlmb3IgKGkgPSAwOyBpIDwgUkVDVl9TQ0FOX1NJWkU7 IGkrKykgewotCi0JCQkqKGxvZ19zeXMtPmJ1ZiArIGkpID0gJ1wwJzsKLQkJfQorCQltZW1zZXQo bG9nX3N5cy0+YnVmLCAwLCBSRUNWX1NDQU5fU0laRSk7CiAKIAkJc3RhcnRfbHNuID0gZW5kX2xz bjsKIAl9CkBAIC0zMTQ0LDExICszMTM1LDE2IEBAIHJlY3ZfcmVjb3ZlcnlfZnJvbV9jaGVja3Bv aW50X3N0YXJ0X2Z1bmMKIAkJCX0KIAogCQkJaWYgKCFyZWN2X25lZWRlZF9yZWNvdmVyeSkgewot CQkJCWZwcmludGYoc3RkZXJyLAotCQkJCQkiSW5ub0RCOiBUaGUgbG9nIHNlcXVlbmNlIG51bWJl ciIKLQkJCQkJIiBpbiBpYmRhdGEgZmlsZXMgZG9lcyBub3QgbWF0Y2hcbiIKLQkJCQkJIklubm9E QjogdGhlIGxvZyBzZXF1ZW5jZSBudW1iZXIiCi0JCQkJCSIgaW4gdGhlIGliX2xvZ2ZpbGVzIVxu Iik7CisJCQkJaWJfbG9nZihJQl9MT0dfTEVWRUxfV0FSTiwKKwkJCQkJIklubm9EQjogVGhlIGxv ZyBzZXF1ZW5jZSBudW1iZXJzICIKKwkJCQkJTFNOX1BGICIgYW5kICIgTFNOX1BGCisJCQkJCSIg aW4gaWJkYXRhIGZpbGVzIGRvIG5vdCBtYXRjaCIKKwkJCQkJIiB0aGUgbG9nIHNlcXVlbmNlIG51 bWJlciAiCisJCQkJCUxTTl9QRgorCQkJCQkiIGluIHRoZSBpYl9sb2dmaWxlcyEiLAorCQkJCQlt aW5fZmx1c2hlZF9sc24sCisJCQkJCW1heF9mbHVzaGVkX2xzbiwKKwkJCQkJY2hlY2twb2ludF9s c24pOwogCQkJCXJlY3ZfaW5pdF9jcmFzaF9yZWNvdmVyeSgpOwogCQkJfQogCQl9CkBAIC0zMTYw LDI5ICszMTU2LDE0IEBAIHJlY3ZfcmVjb3ZlcnlfZnJvbV9jaGVja3BvaW50X3N0YXJ0X2Z1bmMK IAl9CiAKIAkvKiBXZSBjdXJyZW50bHkgaGF2ZSBvbmx5IG9uZSBsb2cgZ3JvdXAgKi8KLQlpZiAo Z3JvdXBfc2Nhbm5lZF9sc24gPCBjaGVja3BvaW50X2xzbikgewotCQl1dF9wcmludF90aW1lc3Rh bXAoc3RkZXJyKTsKLQkJZnByaW50ZihzdGRlcnIsCi0JCQkiICBJbm5vREI6IEVSUk9SOiBXZSB3 ZXJlIG9ubHkgYWJsZSB0byBzY2FuIHRoZSBsb2ciCi0JCQkiIHVwIHRvXG4iCi0JCQkiSW5ub0RC OiAiIExTTl9QRiAiLCBidXQgYSBjaGVja3BvaW50IHdhcyBhdCAiCi0JCQlMU05fUEYgIi5cbiIK LQkJCSJJbm5vREI6IEl0IGlzIHBvc3NpYmxlIHRoYXQiCi0JCQkiIHRoZSBkYXRhYmFzZSBpcyBu b3cgY29ycnVwdCFcbiIsCi0JCQlncm91cF9zY2FubmVkX2xzbiwKLQkJCWNoZWNrcG9pbnRfbHNu KTsKLQl9Ci0KLQlpZiAoZ3JvdXBfc2Nhbm5lZF9sc24gPCByZWN2X21heF9wYWdlX2xzbikgewot CQl1dF9wcmludF90aW1lc3RhbXAoc3RkZXJyKTsKLQkJZnByaW50ZihzdGRlcnIsCi0JCQkiICBJ bm5vREI6IEVSUk9SOiBXZSB3ZXJlIG9ubHkgYWJsZSB0byBzY2FuIHRoZSBsb2ciCi0JCQkiIHVw IHRvICIgTFNOX1BGICJcbiIKLQkJCSJJbm5vREI6IGJ1dCBhIGRhdGFiYXNlIHBhZ2UgYSBoYWQg YW4gbHNuICIgTFNOX1BGICIuIgotCQkJIiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZVxuIgotCQkJ Iklubm9EQjogZGF0YWJhc2UgaXMgbm93IGNvcnJ1cHQhXG4iLAotCQkJZ3JvdXBfc2Nhbm5lZF9s c24sCi0JCQlyZWN2X21heF9wYWdlX2xzbik7CisJaWYgKGdyb3VwX3NjYW5uZWRfbHNuIDwgY2hl Y2twb2ludF9sc24KKwkgICAgfHwgZ3JvdXBfc2Nhbm5lZF9sc24gPCByZWN2X21heF9wYWdlX2xz bikgeworCQlpYl9sb2dmKElCX0xPR19MRVZFTF9FUlJPUiwKKwkJCSJXZSBzY2FubmVkIHRoZSBs b2cgdXAgdG8gIgorCQkJTFNOX1BGICIuIEEgY2hlY2twb2ludCB3YXMgYXQgIiBMU05fUEYKKwkJ CSIgYW5kIHRoZSBtYXhpbXVtIExTTiBvbiBhIGRhdGFiYXNlIHBhZ2Ugd2FzICIgTFNOX1BGCisJ CQkiLiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBkYXRhYmFzZSBpcyBub3cgY29ycnVwdCEiLAor CQkJZ3JvdXBfc2Nhbm5lZF9sc24sIGNoZWNrcG9pbnRfbHNuLCByZWN2X21heF9wYWdlX2xzbik7 CiAJfQogCiAJaWYgKHJlY3Zfc3lzLT5yZWNvdmVyZWRfbHNuIDwgY2hlY2twb2ludF9sc24pIHsK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3J2LmNjJwotLS0g YS9zdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3J2LmNjCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFj bGUuY29tLTIwMTIwOTIwMDYwNTA3LW9wemVoMmg0ZTJjMmdoNXAKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9zcnYvc3J2MHNydi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDky MDEwMDc1Ny1vdWZ5ZmJ4Mjc2Z3FjYnFkCkBAIC0xNzYsOSArMTc2LDggQEAgdGhlIHVzZXIgZnJv bSBmb3JnZXR0aW5nIHRoZSAnbmV3cmF3JyBrZQogCiBVTklWX0lOVEVSTiBpYm9vbAlzcnZfY3Jl YXRlZF9uZXdfcmF3CT0gRkFMU0U7CiAKLVVOSVZfSU5URVJOIGNoYXIqKglzcnZfbG9nX2dyb3Vw X2hvbWVfZGlycyA9IE5VTEw7CitVTklWX0lOVEVSTiBjaGFyKglzcnZfbG9nX2dyb3VwX2hvbWVf ZGlyCT0gTlVMTDsKIAotVU5JVl9JTlRFUk4gdWxpbnQJc3J2X25fbG9nX2dyb3Vwcwk9IFVMSU5U X01BWDsKIFVOSVZfSU5URVJOIHVsaW50CXNydl9uX2xvZ19maWxlcwkJPSBVTElOVF9NQVg7CiAv KiBzaXplIGluIGRhdGFiYXNlIHBhZ2VzICovCiBVTklWX0lOVEVSTiBpYl91aW50NjRfdAlzcnZf bG9nX2ZpbGVfc2l6ZQk9IElCX1VJTlQ2NF9NQVg7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9zcnYvc3J2MHN0YXJ0LmNjJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Nydi9z cnYwc3RhcnQuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MjAwNjA1MDct b3B6ZWgyaDRlMmMyZ2g1cAorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Nydi9zcnYwc3RhcnQuY2MJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMjA5MjAxMDA3NTctb3VmeWZieDI3Nmdx Y2JxZApAQCAtNDMxLDc5ICs0MzEsNiBAQCBzcnZfcGFyc2VfZGF0YV9maWxlX3BhdGhzX2FuZF9z aXplcygKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLVJlYWRzIGxvZyBncm91cCBob21lIGRpcmVj dG9yaWVzIGZyb20gYSBjaGFyYWN0ZXIgc3RyaW5nIGdpdmVuIGluCi10aGUgLmNuZiBmaWxlLgot QHJldHVybglUUlVFIGlmIG9rLCBGQUxTRSBvbiBwYXJzZSBlcnJvciAqLwotVU5JVl9JTlRFUk4K LWlib29sCi1zcnZfcGFyc2VfbG9nX2dyb3VwX2hvbWVfZGlycygKLS8qPT09PT09PT09PT09PT09 PT09PT09PT09PT0qLwotCWNoYXIqCXN0cikJLyohPCBpbi9vdXQ6IGNoYXJhY3RlciBzdHJpbmcg Ki8KLXsKLQljaGFyKglpbnB1dF9zdHI7Ci0JY2hhcioJcGF0aDsKLQl1bGludAlpCT0gMDsKLQot CXNydl9sb2dfZ3JvdXBfaG9tZV9kaXJzID0gTlVMTDsKLQotCWlucHV0X3N0ciA9IHN0cjsKLQot CS8qIEZpcnN0IGNhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGFuZCBjaGVjayBz eW50YXg6Ci0JcGF0aDtwYXRoOy4uLiAqLwotCi0Jd2hpbGUgKCpzdHIgIT0gJ1wwJykgewotCQlw YXRoID0gc3RyOwotCi0JCXdoaWxlICgqc3RyICE9ICc7JyAmJiAqc3RyICE9ICdcMCcpIHsKLQkJ CXN0cisrOwotCQl9Ci0KLQkJaSsrOwotCi0JCWlmICgqc3RyID09ICc7JykgewotCQkJc3RyKys7 Ci0JCX0gZWxzZSBpZiAoKnN0ciAhPSAnXDAnKSB7Ci0KLQkJCXJldHVybihGQUxTRSk7Ci0JCX0K LQl9Ci0KLQlpZiAoaSAhPSAxKSB7Ci0JCS8qIElmIGlubm9kYl9sb2dfZ3JvdXBfaG9tZV9kaXIg d2FzIGRlZmluZWQgaXQgbXVzdAotCQljb250YWluIGV4YWN0bHkgb25lIHBhdGggZGVmaW5pdGlv biB1bmRlciBjdXJyZW50IE15U1FMICovCi0KLQkJcmV0dXJuKEZBTFNFKTsKLQl9Ci0KLQlzcnZf bG9nX2dyb3VwX2hvbWVfZGlycyA9IHN0YXRpY19jYXN0PGNoYXIqKj4oCi0JCW1hbGxvYyhpICog c2l6ZW9mICpzcnZfbG9nX2dyb3VwX2hvbWVfZGlycykpOwotCi0JLyogVGhlbiBzdG9yZSB0aGUg YWN0dWFsIHZhbHVlcyB0byBvdXIgYXJyYXkgKi8KLQotCXN0ciA9IGlucHV0X3N0cjsKLQlpID0g MDsKLQotCXdoaWxlICgqc3RyICE9ICdcMCcpIHsKLQkJcGF0aCA9IHN0cjsKLQotCQl3aGlsZSAo KnN0ciAhPSAnOycgJiYgKnN0ciAhPSAnXDAnKSB7Ci0JCQlzdHIrKzsKLQkJfQotCi0JCWlmICgq c3RyID09ICc7JykgewotCQkJKnN0ciA9ICdcMCc7Ci0JCQlzdHIrKzsKLQkJfQotCi0JCXNydl9s b2dfZ3JvdXBfaG9tZV9kaXJzW2ldID0gcGF0aDsKLQotCQlpKys7Ci0JfQotCi0JcmV0dXJuKFRS VUUpOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogRnJlZXMgdGhlIG1lbW9yeSBhbGxvY2F0ZWQg Ynkgc3J2X3BhcnNlX2RhdGFfZmlsZV9wYXRoc19hbmRfc2l6ZXMoKQogYW5kIHNydl9wYXJzZV9s b2dfZ3JvdXBfaG9tZV9kaXJzKCkuICovCiBVTklWX0lOVEVSTgpAQCAtNTE3LDggKzQ0NCw2IEBA IHNydl9mcmVlX3BhdGhzX2FuZF9zaXplcyh2b2lkKQogCXNydl9kYXRhX2ZpbGVfc2l6ZXMgPSBO VUxMOwogCWZyZWUoc3J2X2RhdGFfZmlsZV9pc19yYXdfcGFydGl0aW9uKTsKIAlzcnZfZGF0YV9m aWxlX2lzX3Jhd19wYXJ0aXRpb24gPSBOVUxMOwotCWZyZWUoc3J2X2xvZ19ncm91cF9ob21lX2Rp cnMpOwotCXNydl9sb2dfZ3JvdXBfaG9tZV9kaXJzID0gTlVMTDsKIH0KIAogI2lmbmRlZiBVTklW X0hPVEJBQ0tVUApAQCAtNjA2LDExICs1MzEsMTEgQEAgb3Blbl9vcl9jcmVhdGVfbG9nX2ZpbGUo CiAKIAkqbG9nX2ZpbGVfY3JlYXRlZCA9IEZBTFNFOwogCi0Jc3J2X25vcm1hbGl6ZV9wYXRoX2Zv cl93aW4oc3J2X2xvZ19ncm91cF9ob21lX2RpcnNba10pOworCXNydl9ub3JtYWxpemVfcGF0aF9m b3Jfd2luKHNydl9sb2dfZ3JvdXBfaG9tZV9kaXIpOwogCi0JZGlybmFtZWxlbiA9IHN0cmxlbihz cnZfbG9nX2dyb3VwX2hvbWVfZGlyc1trXSk7CisJZGlybmFtZWxlbiA9IHN0cmxlbihzcnZfbG9n X2dyb3VwX2hvbWVfZGlyKTsKIAl1dF9hKGRpcm5hbWVsZW4gPCAoc2l6ZW9mIG5hbWUpIC0gMTAg LSBzaXplb2YgImliX2xvZ2ZpbGUiKTsKLQltZW1jcHkobmFtZSwgc3J2X2xvZ19ncm91cF9ob21l X2RpcnNba10sIGRpcm5hbWVsZW4pOworCW1lbWNweShuYW1lLCBzcnZfbG9nX2dyb3VwX2hvbWVf ZGlyLCBkaXJuYW1lbGVuKTsKIAogCS8qIEFkZCBhIHBhdGggc2VwYXJhdG9yIGlmIG5lZWRlZC4g Ki8KIAlpZiAoZGlybmFtZWxlbiAmJiBuYW1lW2Rpcm5hbWVsZW4gLSAxXSAhPSBTUlZfUEFUSF9T RVBBUkFUT1IpIHsKQEAgLTI3NjMsNyArMjY4OCw3IEBAIGlubm9iYXNlX3NodXRkb3duX2Zvcl9t eXNxbCh2b2lkKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiBTaWduYWwgYWxsIHBlci10YWJsZSBiYWNrZ3JvdW5k IHRocmVhZHMgdG8gc2h1dGRvd24sIGFuZCB3YWl0IGZvciB0aGVtIHRvIGRvCiBzby4gKi8KLQor VU5JVl9JTlRFUk4KIHZvaWQKIHNydl9zaHV0ZG93bl90YWJsZV9iZ190aHJlYWRzKHZvaWQpCiAv Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKTm8gYnVuZGxlIChyZWFzb246IHVz ZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=