From: marko.makela Date: September 1 2011 7:01pm Subject: bzr push into mysql-trunk branch (marko.makela:3430 to 3431) List-Archive: http://lists.mysql.com/commits/140887 Message-Id: <201109011901.p81J1mee020597@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM0MzEgTWFya28gTcOka2Vsw6QJMjAxMS0wOS0wMSBbbWVyZ2VdCiAgICAgIE1lcmdlIG15c3Fs LTUuNSB0byBteXNxbC10cnVuay4KCiAgICBtb2RpZmllZDoKICAgICAgaW5jbHVkZS9teV9iYXNl LmgKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItaW5kZXgucmVzdWx0CiAg ICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LnRlc3QKICAgICAgbXlz eXMvbXlfaGFuZGxlcl9lcnJvcnMuaAogICAgICBzcWwvaGFuZGxlci5jYwogICAgICBzcWwvc2hh cmUvZXJybXNnLXV0ZjgudHh0CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5v ZGIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2RiMGVyci5oCiAgICAgIHN0b3Jh Z2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdW5kby5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93 L3JvdzBteXNxbC5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDByZWMuYwogICAgICBz dG9yYWdlL2lubm9iYXNlL3RyeC90cngwdW5kby5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvdXQv dXQwdXQuYwogMzQzMCBHZW9yZ2kgS29kaW5vdgkyMDExLTA5LTAxCiAgICAgIEFkZGVuZHVtIHRv IEJ1ZyAjMTE3NjYwMDE6IGNoZWNrIGlmIHRoZSB0ZXN0IGNhc2UgY2FuIGJlIHJ1biA6IG1ha2Ug c3VyZSB0aGUgcGx1Z2lucyByZXF1cmVkIGFyZSB0aGVyZS4KCiAgICBtb2RpZmllZDoKICAgICAg bXlzcWwtdGVzdC90L211bHRpX3BsdWdpbl9sb2FkLnRlc3QKPT09IG1vZGlmaWVkIGZpbGUgJ2lu Y2x1ZGUvbXlfYmFzZS5oJwotLS0gYS9pbmNsdWRlL215X2Jhc2UuaAlyZXZpZDpnZW9yZ2kua29k aW5vdkBvcmFjbGUuY29tLTIwMTEwOTAxMTIyNjEwLTc0b2UwZGNiNDM3NzMzcXIKKysrIGIvaW5j bHVkZS9teV9iYXNlLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODU5 NDQtajhkajJibTMyOWhrMmF2agpAQCAtNDQ5LDcgKzQ0OSw4IEBAIGVudW0gaGFfYmFzZV9rZXl0 eXBlIHsKICNkZWZpbmUgSEFfRVJSX05PVF9JTl9MT0NLX1BBUlRJVElPTlMgMTc4CiAjZGVmaW5l IEhBX0VSUl9JTkRFWF9DT0xfVE9PX0xPTkcgMTc5CSAvKiBJbmRleCBjb2x1bW4gbGVuZ3RoIGV4 Y2VlZHMgbGltaXQgKi8KICNkZWZpbmUgSEFfRVJSX0lOREVYX0NPUlJVUFQgICAgICAxODAJIC8q IElubm9EQiBpbmRleCBjb3JydXB0ZWQgKi8KLSNkZWZpbmUgSEFfRVJSX0xBU1QgICAgICAgICAg ICAgICAxODAgICAgLyogQ29weSBvZiBsYXN0IGVycm9yIG5yICovCisjZGVmaW5lIEhBX0VSUl9V TkRPX1JFQ19UT09fQklHICAgMTgxICAgIC8qIFVuZG8gbG9nIHJlY29yZCB0b28gYmlnICovCisj ZGVmaW5lIEhBX0VSUl9MQVNUICAgICAgICAgICAgICAgMTgxICAgIC8qIENvcHkgb2YgbGFzdCBl cnJvciBuciAqLwogCiAvKiBOdW1iZXIgb2YgZGlmZmVyZW50IGVycm9ycyAqLwogI2RlZmluZSBI QV9FUlJfRVJST1JTICAgICAgICAgICAgKEhBX0VSUl9MQVNUIC0gSEFfRVJSX0ZJUlNUICsgMSkK Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYi1pbmRl eC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiLWluZGV4LnJl c3VsdAlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwOTAxMTIyNjEwLTc0b2Uw ZGNiNDM3NzMzcXIKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGItaW5kZXgu cmVzdWx0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwOTAxMTg1OTQ0LWo4ZGoy Ym0zMjloazJhdmoKQEAgLTk3OCw2ICs5NzgsMTUgQEAgSU5TRVJUIElOVE8gdDEgVkFMVUVTKDks QHIsQHIsQHIsQHIsQHIsQAogVVBEQVRFIHQxIFNFVCBhPTEwMDA7CiBERUxFVEUgRlJPTSB0MTsK IERST1AgVEFCTEUgdDE7CitDUkVBVEUgVEFCTEUgYnVnMTI1NDc2NDcoCithIElOVCBOT1QgTlVM TCwgYiBCTE9CIE5PVCBOVUxMLCBjIFRFWFQsCitQUklNQVJZIEtFWSAoYigxMCksIGEpLCBJTkRF WCAoYyg3NjcpKSwgSU5ERVgoYig3NjcpKQorKSBFTkdJTkU9SW5ub0RCIFJPV19GT1JNQVQ9RFlO QU1JQzsKK0lOU0VSVCBJTlRPIGJ1ZzEyNTQ3NjQ3IFZBTFVFUyAoNSxyZXBlYXQoJ2toZGZvNUFs T3EnLDE5MDApLHJlcGVhdCgnZycsNzc1MSkpOworQ09NTUlUOworVVBEQVRFIGJ1ZzEyNTQ3NjQ3 IFNFVCBjID0gUkVQRUFUKCdiJywxNjkyOCk7CitFUlJPUiBIWTAwMDogVW5kbyBsb2cgcmVjb3Jk IGlzIHRvbyBiaWcuCitEUk9QIFRBQkxFIGJ1ZzEyNTQ3NjQ3Owogc2V0IGdsb2JhbCBpbm5vZGJf ZmlsZV9wZXJfdGFibGU9MDsKIHNldCBnbG9iYWwgaW5ub2RiX2ZpbGVfZm9ybWF0PUFudGVsb3Bl Owogc2V0IGdsb2JhbCBpbm5vZGJfZmlsZV9mb3JtYXRfbWF4PUFudGVsb3BlOwoKPT09IG1vZGlm aWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LnRlc3QnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LnRlc3QJcmV2aWQ6Z2Vv cmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDkwMTEyMjYxMC03NG9lMGRjYjQzNzczM3FyCisr KyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LnRlc3QJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODU5NDQtajhkajJibTMyOWhrMmF2agpAQCAt NDc4LDYgKzQ3OCwxOSBAQCBERUxFVEUgRlJPTSB0MTsKIC0tIHNsZWVwIDEwCiBEUk9QIFRBQkxF IHQxOwogCisjIEJ1ZyMxMjU0NzY0NyBVUERBVEUgTE9HR0lORyBDT1VMRCBFWENFRUQgTE9HIFBB R0UgU0laRQorQ1JFQVRFIFRBQkxFIGJ1ZzEyNTQ3NjQ3KAorYSBJTlQgTk9UIE5VTEwsIGIgQkxP QiBOT1QgTlVMTCwgYyBURVhULAorUFJJTUFSWSBLRVkgKGIoMTApLCBhKSwgSU5ERVggKGMoNzY3 KSksIElOREVYKGIoNzY3KSkKKykgRU5HSU5FPUlubm9EQiBST1dfRk9STUFUPURZTkFNSUM7CisK K0lOU0VSVCBJTlRPIGJ1ZzEyNTQ3NjQ3IFZBTFVFUyAoNSxyZXBlYXQoJ2toZGZvNUFsT3EnLDE5 MDApLHJlcGVhdCgnZycsNzc1MSkpOworQ09NTUlUOworIyBUaGUgZm9sbG93aW5nIHVzZWQgdG8g Y2F1c2UgaW5maW5pdGUgdW5kbyBsb2cgYWxsb2NhdGlvbi4KKy0tZXJyb3IgRVJfVU5ET19SRUNP UkRfVE9PX0JJRworVVBEQVRFIGJ1ZzEyNTQ3NjQ3IFNFVCBjID0gUkVQRUFUKCdiJywxNjkyOCk7 CitEUk9QIFRBQkxFIGJ1ZzEyNTQ3NjQ3OworCiBldmFsIHNldCBnbG9iYWwgaW5ub2RiX2ZpbGVf cGVyX3RhYmxlPSRwZXJfdGFibGU7CiBldmFsIHNldCBnbG9iYWwgaW5ub2RiX2ZpbGVfZm9ybWF0 PSRmb3JtYXQ7CiBldmFsIHNldCBnbG9iYWwgaW5ub2RiX2ZpbGVfZm9ybWF0X21heD0kZm9ybWF0 OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3lzL215X2hhbmRsZXJfZXJyb3JzLmgnCi0tLSBhL215 c3lzL215X2hhbmRsZXJfZXJyb3JzLmgJcmV2aWQ6Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0y MDExMDkwMTEyMjYxMC03NG9lMGRjYjQzNzczM3FyCisrKyBiL215c3lzL215X2hhbmRsZXJfZXJy b3JzLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODU5NDQtajhkajJi bTMyOWhrMmF2agpAQCAtODMsNyArODMsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqaGFuZGxlcl9l cnJvcl9tZXNzYWdlCiAgICJUb28gbWFueSBhY3RpdmUgY29uY3VycmVudCB0cmFuc2FjdGlvbnMi LAogICAiUmVjb3JkIG5vdCBtYXRjaGluZyB0aGUgZ2l2ZW4gcGFydGl0aW9uIHNldCIsCiAgICJJ bmRleCBjb2x1bW4gbGVuZ3RoIGV4Y2VlZHMgbGltaXQiLAotICAiSW5kZXggY29ycnVwdGVkIgor ICAiSW5kZXggY29ycnVwdGVkIiwKKyAgIlVuZG8gcmVjb3JkIHRvbyBiaWciCiB9OwogCiBleHRl cm4gdm9pZCBteV9oYW5kbGVyX2Vycm9yX3JlZ2lzdGVyKHZvaWQpOwoKPT09IG1vZGlmaWVkIGZp bGUgJ3NxbC9oYW5kbGVyLmNjJwotLS0gYS9zcWwvaGFuZGxlci5jYwlyZXZpZDpnZW9yZ2kua29k aW5vdkBvcmFjbGUuY29tLTIwMTEwOTAxMTIyNjEwLTc0b2UwZGNiNDM3NzMzcXIKKysrIGIvc3Fs L2hhbmRsZXIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMTA5MDExODU5NDQt ajhkajJibTMyOWhrMmF2agpAQCAtMzEyNiw2ICszMTI2LDkgQEAgdm9pZCBoYW5kbGVyOjpwcmlu dF9lcnJvcihpbnQgZXJyb3IsIG15ZgogICBjYXNlIEhBX0VSUl9JTkRFWF9DT1JSVVBUOgogICAg IHRleHRubz0gRVJfSU5ERVhfQ09SUlVQVDsKICAgICBicmVhazsKKyAgY2FzZSBIQV9FUlJfVU5E T19SRUNfVE9PX0JJRzoKKyAgICB0ZXh0bm89IEVSX1VORE9fUkVDT1JEX1RPT19CSUc7CisgICAg YnJlYWs7CiAgIGRlZmF1bHQ6CiAgICAgewogICAgICAgLyogVGhlIGVycm9yIHdhcyAidW5rbm93 biIgdG8gdGhpcyBmdW5jdGlvbi4KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc2hhcmUvZXJybXNn LXV0ZjgudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CXJldmlkOmdlb3JnaS5r b2Rpbm92QG9yYWNsZS5jb20tMjAxMTA5MDExMjI2MTAtNzRvZTBkY2I0Mzc3MzNxcgorKysgYi9z cWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTEwOTAxMTg1OTQ0LWo4ZGoyYm0zMjloazJhdmoKQEAgLTY1MTQsNiArNjUxNCw3IEBAIEVSX0VS Uk9SX0lOX1VOS05PV05fVFJJR0dFUl9CT0RZCiAKIEVSX0lOREVYX0NPUlJVUFQKICAgZW5nICJJ bmRleCAlcyBpcyBjb3JydXB0ZWQiCisKIEVSX01UU19GRUFUVVJFX0lTX05PVF9TVVBQT1JURUQK ICAgZW5nICIlcyBpcyBub3Qgc3VwcG9ydGVkIGluIG11bHRpLXRocmVhZGVkIHNsYXZlIG1vZGUu ICVzIgogRVJfTVRTX1VQREFURURfREJTX0dSRUFURVJfTUFYCkBAIC02NTIyLDMgKzY1MjMsNiBA QCBFUl9NVFNfQ0FOVF9QQVJBTExFTAogICBlbmcgIkNhbm5vdCBleGVjdXRlIHRoZSBjdXJyZW50 IGV2ZW50IGdyb3VwIGluIHRoZSBwYXJhbGxlbCBtb2RlLiBFbmNvdW50ZXJlZCBldmVudCAlcywg cmVsYXktbG9nIG5hbWUgJXMsIHBvc2l0aW9uICVzIHdoaWNoIHByZXZlbnRzIGV4ZWN1dGlvbiBv ZiB0aGlzIGV2ZW50IGdyb3VwIGluIHBhcmFsbGVsIG1vZGUuIFJlYXNvbjogJXMuIgogRVJfTVRT X0lOQ09OU0lTVEVOVF9EQVRBCiAgIGVuZyAiJXMiCisKK0VSX1VORE9fUkVDT1JEX1RPT19CSUcK KyAgZW5nICJVbmRvIGxvZyByZWNvcmQgaXMgdG9vIGJpZy4iCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFjbGUuY29t LTIwMTEwOTAxMTIyNjEwLTc0b2UwZGNiNDM3NzMzcXIKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9o YW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDExMDkw MTE4NTk0NC1qOGRqMmJtMzI5aGsyYXZqCkBAIC0xMjQzLDYgKzEyNDMsOCBAQCBjb252ZXJ0X2Vy cm9yX2NvZGVfdG9fbXlzcWwoCiAJCXJldHVybihIQV9FUlJfVU5TVVBQT1JURUQpOwogCWNhc2Ug REJfSU5ERVhfQ09SUlVQVDoKIAkJcmV0dXJuKEhBX0VSUl9JTkRFWF9DT1JSVVBUKTsKKwljYXNl IERCX1VORE9fUkVDT1JEX1RPT19CSUc6CisJCXJldHVybihIQV9FUlJfVU5ET19SRUNfVE9PX0JJ Ryk7CiAJfQogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L2RiMGVyci5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvZGIwZXJyLmgJcmV2aWQ6 Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDkwMTEyMjYxMC03NG9lMGRjYjQzNzczM3Fy CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kYjBlcnIuaAlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDExMDkwMTE4NTk0NC1qOGRqMmJtMzI5aGsyYXZqCkBAIC0xLDYgKzEs NiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKLUNvcHlyaWdodCAoYykgMTk5NiwgMjAwOSwg SW5ub2Jhc2UgT3kuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCitDb3B5cmlnaHQgKGMpIDE5OTYsIDIw MTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAK IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpAQCAtMTExLDYgKzEx MSw3IEBAIGVudW0gZGJfZXJyIHsKIAlEQl9UT09fQklHX0lOREVYX0NPTCwJCS8qIGluZGV4IGNv bHVtbiBzaXplIGV4Y2VlZHMgbWF4aW11bQogCQkJCQlsaW1pdCAqLwogCURCX0lOREVYX0NPUlJV UFQsCQkvKiB3ZSBoYXZlIGNvcnJ1cHRlZCBpbmRleCAqLworCURCX1VORE9fUkVDT1JEX1RPT19C SUcsCQkvKiB0aGUgdW5kbyBsb2cgcmVjb3JkIGlzIHRvbyBiaWcgKi8KIAogCS8qIFRoZSBmb2xs b3dpbmcgYXJlIHBhcnRpYWwgZmFpbHVyZSBjb2RlcyAqLwogCURCX0ZBSUwgPSAxMDAwLAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS90cngwdW5kby5oJwotLS0g YS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvdHJ4MHVuZG8uaAlyZXZpZDpnZW9yZ2kua29kaW5v dkBvcmFjbGUuY29tLTIwMTEwOTAxMTIyNjEwLTc0b2UwZGNiNDM3NzMzcXIKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL3RyeDB1bmRvLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMTA5MDExODU5NDQtajhkajJibTMyOWhrMmF2agpAQCAtMSw2ICsxLDYgQEAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgogCi1Db3B5cmlnaHQgKGMpIDE5OTYsIDIwMDksIElubm9iYXNlIE95 LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorQ29weXJpZ2h0IChjKSAxOTk2LCAyMDExLCBPcmFjbGUg YW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogCiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eSBpdCB1bmRlcgogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKQEAgLTIwNCwxNyArMjA0LDUxIEBAIHRy eF91bmRvX2FkZF9wYWdlKAogCW10cl90KgkJbXRyKTsJLyohPCBpbjogbXRyIHdoaWNoIGRvZXMg bm90IGhhdmUgYSBsYXRjaCB0byBhbnkKIAkJCQl1bmRvIGxvZyBwYWdlOyB0aGUgY2FsbGVyIG11 c3QgaGF2ZSByZXNlcnZlZAogCQkJCXRoZSByb2xsYmFjayBzZWdtZW50IG11dGV4ICovCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCitGcmVlcyB0aGUgbGFzdCB1bmRvIGxvZyBwYWdlLgorVGhlIGNhbGxlciBt dXN0IGhvbGQgdGhlIHJvbGxiYWNrIHNlZ21lbnQgbXV0ZXguICovCitVTklWX0lOVEVSTgordm9p ZAordHJ4X3VuZG9fZnJlZV9sYXN0X3BhZ2VfZnVuYygKKy8qPT09PT09PT09PT09PT09PT09PT09 PT09PT0qLworI2lmZGVmIFVOSVZfREVCVUcKKwljb25zdCB0cnhfdCoJdHJ4LAkvKiE8IGluOiB0 cmFuc2FjdGlvbiAqLworI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8KKwl0cnhfdW5kb190Kgl1bmRv LAkvKiE8IGluL291dDogdW5kbyBsb2cgbWVtb3J5IGNvcHkgKi8KKwltdHJfdCoJCW10cikJLyoh PCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gd2hpY2ggZG9lcyBub3QKKwkJCQloYXZlIGEgbGF0 Y2ggdG8gYW55IHVuZG8gbG9nIHBhZ2Ugb3Igd2hpY2gKKwkJCQloYXMgYWxsb2NhdGVkIHRoZSB1 bmRvIGxvZyBwYWdlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOworI2lmZGVmIFVOSVZf REVCVUcKKyMgZGVmaW5lIHRyeF91bmRvX2ZyZWVfbGFzdF9wYWdlKHRyeCx1bmRvLG10cikJXAor CXRyeF91bmRvX2ZyZWVfbGFzdF9wYWdlX2Z1bmModHJ4LHVuZG8sbXRyKQorI2Vsc2UgLyogVU5J Vl9ERUJVRyAqLworIyBkZWZpbmUgdHJ4X3VuZG9fZnJlZV9sYXN0X3BhZ2UodHJ4LHVuZG8sbXRy KQlcCisJdHJ4X3VuZG9fZnJlZV9sYXN0X3BhZ2VfZnVuYyh1bmRvLG10cikKKyNlbmRpZiAvKiBV TklWX0RFQlVHICovCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFRydW5jYXRlcyBhbiB1bmRvIGxv ZyBmcm9tIHRoZSBlbmQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgYSByb2xsYmFjawog dG8gZnJlZSBzcGFjZSBmcm9tIGFuIHVuZG8gbG9nLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKLXRy eF91bmRvX3RydW5jYXRlX2VuZCgKLS8qPT09PT09PT09PT09PT09PT09Ki8KLQl0cnhfdCoJCXRy eCwJLyohPCBpbjogdHJhbnNhY3Rpb24gd2hvc2UgdW5kbyBsb2cgaXQgaXMgKi8KLQl0cnhfdW5k b190Kgl1bmRvLAkvKiE8IGluOiB1bmRvIGxvZyAqLwotCXVuZG9fbm9fdAlsaW1pdCk7CS8qITwg aW46IGFsbCB1bmRvIHJlY29yZHMgd2l0aCB1bmRvIG51bWJlcgordHJ4X3VuZG9fdHJ1bmNhdGVf ZW5kX2Z1bmMoCisvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KKyNpZmRlZiBVTklWX0RFQlVH CisJY29uc3QgdHJ4X3QqCXRyeCwJLyohPCBpbjogdHJhbnNhY3Rpb24gd2hvc2UgdW5kbyBsb2cg aXQgaXMgKi8KKyNlbmRpZiAvKiBVTklWX0RFQlVHICovCisJdHJ4X3VuZG9fdCoJdW5kbywJLyoh PCBpbi9vdXQ6IHVuZG8gbG9nICovCisJdW5kb19ub190CWxpbWl0KQkvKiE8IGluOiBhbGwgdW5k byByZWNvcmRzIHdpdGggdW5kbyBudW1iZXIKIAkJCQk+PSB0aGlzIHZhbHVlIHNob3VsZCBiZSB0 cnVuY2F0ZWQgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CisjaWZkZWYgVU5JVl9ERUJV RworIyBkZWZpbmUgdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kKHRyeCx1bmRvLGxpbWl0KQkJXAorCXRy eF91bmRvX3RydW5jYXRlX2VuZF9mdW5jKHRyeCx1bmRvLGxpbWl0KQorI2Vsc2UgLyogVU5JVl9E RUJVRyAqLworIyBkZWZpbmUgdHJ4X3VuZG9fdHJ1bmNhdGVfZW5kKHRyeCx1bmRvLGxpbWl0KQkJ XAorCXRyeF91bmRvX3RydW5jYXRlX2VuZF9mdW5jKHVuZG8sbGltaXQpCisjZW5kaWYgLyogVU5J Vl9ERUJVRyAqLworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBUcnVuY2F0ZXMgYW4gdW5kbyBsb2cg ZnJvbSB0aGUgc3RhcnQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgYSBwdXJnZQogb3Bl cmF0aW9uLiAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBt eXNxbC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwbXlzcWwuYwlyZXZpZDpnZW9y Z2kua29kaW5vdkBvcmFjbGUuY29tLTIwMTEwOTAxMTIyNjEwLTc0b2UwZGNiNDM3NzMzcXIKKysr IGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15c3FsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9y YWNsZS5jb20tMjAxMTA5MDExODU5NDQtajhkajJibTMyOWhrMmF2agpAQCAtNTg2LDYgKzU4Niw3 IEBAIGhhbmRsZV9uZXdfZXJyb3I6CiAJY2FzZSBEQl9EVVBMSUNBVEVfS0VZOgogCWNhc2UgREJf Rk9SRUlHTl9EVVBMSUNBVEVfS0VZOgogCWNhc2UgREJfVE9PX0JJR19SRUNPUkQ6CisJY2FzZSBE Ql9VTkRPX1JFQ09SRF9UT09fQklHOgogCWNhc2UgREJfUk9XX0lTX1JFRkVSRU5DRUQ6CiAJY2Fz ZSBEQl9OT19SRUZFUkVOQ0VEX1JPVzoKIAljYXNlIERCX0NBTk5PVF9BRERfQ09OU1RSQUlOVDoK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwcmVjLmMnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvdHJ4L3RyeDByZWMuYwlyZXZpZDpnZW9yZ2kua29kaW5vdkBvcmFj bGUuY29tLTIwMTEwOTAxMTIyNjEwLTc0b2UwZGNiNDM3NzMzcXIKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS90cngvdHJ4MHJlYy5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTEwOTAx MTg1OTQ0LWo4ZGoyYm0zMjloazJhdmoKQEAgLTY3MSw3ICs2NzEsNiBAQCB0cnhfdW5kb19wYWdl X3JlcG9ydF9tb2RpZnkoCiAJLyogU2F2ZSB0byB0aGUgdW5kbyBsb2cgdGhlIG9sZCB2YWx1ZXMg b2YgdGhlIGNvbHVtbnMgdG8gYmUgdXBkYXRlZC4gKi8KIAogCWlmICh1cGRhdGUpIHsKLQogCQlp ZiAodHJ4X3VuZG9fbGVmdCh1bmRvX3BhZ2UsIHB0cikgPCA1KSB7CiAKIAkJCXJldHVybigwKTsK QEAgLTExMjEsMjIgKzExMjAsMjkgQEAgdHJ4X3VuZG9fcmVjX2dldF9wYXJ0aWFsX3JvdygKICNl bmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotRXJhc2Vz IHRoZSB1bnVzZWQgdW5kbyBsb2cgcGFnZSBlbmQuICovCi1zdGF0aWMKLXZvaWQKK0VyYXNlcyB0 aGUgdW51c2VkIHVuZG8gbG9nIHBhZ2UgZW5kLgorQHJldHVybiBUUlVFIGlmIHRoZSBwYWdlIGNv bnRhaW5lZCBzb21ldGhpbmcsIEZBTFNFIGlmIGl0IHdhcyBlbXB0eSAqLworc3RhdGljIF9fYXR0 cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpCitpYm9vbAogdHJ4X3VuZG9f ZXJhc2VfcGFnZV9lbmQoCiAvKj09PT09PT09PT09PT09PT09PT09Ki8KLQlwYWdlX3QqCXVuZG9f cGFnZSwJLyohPCBpbjogdW5kbyBwYWdlIHdob3NlIGVuZCB0byBlcmFzZSAqLwotCW10cl90Kglt dHIpCQkvKiE8IGluOiBtdHIgKi8KKwlwYWdlX3QqCXVuZG9fcGFnZSwJLyohPCBpbi9vdXQ6IHVu ZG8gcGFnZSB3aG9zZSBlbmQgdG8gZXJhc2UgKi8KKwltdHJfdCoJbXRyKQkJLyohPCBpbi9vdXQ6 IG1pbmktdHJhbnNhY3Rpb24gKi8KIHsKIAl1bGludAlmaXJzdF9mcmVlOwogCiAJZmlyc3RfZnJl ZSA9IG1hY2hfcmVhZF9mcm9tXzIodW5kb19wYWdlICsgVFJYX1VORE9fUEFHRV9IRFIKIAkJCQkg ICAgICArIFRSWF9VTkRPX1BBR0VfRlJFRSk7CisJaWYgKGZpcnN0X2ZyZWUgPT0gVFJYX1VORE9f UEFHRV9IRFIgKyBUUlhfVU5ET19QQUdFX0hEUl9TSVpFKSB7CisJCS8qIFRoaXMgd2FzIGFuIGVt cHR5IHBhZ2UgdG8gYmVnaW4gd2l0aC4KKwkJRG8gbm90aGluZyBoZXJlOyB0aGUgY2FsbGVyIHNo b3VsZCBmcmVlIHRoZSBwYWdlLiAqLworCQlyZXR1cm4oRkFMU0UpOworCX0KIAltZW1zZXQodW5k b19wYWdlICsgZmlyc3RfZnJlZSwgMHhmZiwKIAkgICAgICAgKFVOSVZfUEFHRV9TSVpFIC0gRklM X1BBR0VfREFUQV9FTkQpIC0gZmlyc3RfZnJlZSk7CiAKIAltbG9nX3dyaXRlX2luaXRpYWxfbG9n X3JlY29yZCh1bmRvX3BhZ2UsIE1MT0dfVU5ET19FUkFTRV9FTkQsIG10cik7CisJcmV0dXJuKFRS VUUpOwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovLyoqCkBAIC0xMTU4LDcgKzExNjQsMTEgQEAgdHJ4X3VuZG9fcGFyc2Vf ZXJhc2VfcGFnZV9lbmQoCiAJCXJldHVybihwdHIpOwogCX0KIAotCXRyeF91bmRvX2VyYXNlX3Bh Z2VfZW5kKHBhZ2UsIG10cik7CisJaWYgKCF0cnhfdW5kb19lcmFzZV9wYWdlX2VuZChwYWdlLCBt dHIpKSB7CisJCS8qIFRoZSBmdW5jdGlvbiB0cnhfdW5kb19lcmFzZV9wYWdlX2VuZCgpIHNob3Vs ZCBub3QKKwkJaGF2ZSBkb25lIGFueXRoaW5nIHRvIGFuIGVtcHR5IHBhZ2UuICovCisJCXV0X2Fk KDApOworCX0KIAogCXJldHVybihwdHIpOwogfQpAQCAtMTIwNCw2ICsxMjE0LDkgQEAgdHJ4X3Vu ZG9fcmVwb3J0X3Jvd19vcGVyYXRpb24oCiAJbWVtX2hlYXBfdCoJaGVhcAkJPSBOVUxMOwogCXVs aW50CQlvZmZzZXRzX1tSRUNfT0ZGU19OT1JNQUxfU0laRV07CiAJdWxpbnQqCQlvZmZzZXRzCQk9 IG9mZnNldHNfOworI2lmZGVmIFVOSVZfREVCVUcKKwlpbnQJCWxvb3BfY291bnQJPSAwOworI2Vu ZGlmIC8qIFVOSVZfREVCVUcgKi8KIAlyZWNfb2Zmc19pbml0KG9mZnNldHNfKTsKIAogCXV0X2Eo ZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkpOwpAQCAtMTI2Niw3ICsxMjc5LDcgQEAgdHJ4X3Vu ZG9fcmVwb3J0X3Jvd19vcGVyYXRpb24oCiAKIAltdHJfc3RhcnQoJm10cik7CiAKLQlmb3IgKDs7 KSB7CisJZG8gewogCQlidWZfYmxvY2tfdCoJdW5kb19ibG9jazsKIAkJcGFnZV90KgkJdW5kb19w YWdlOwogCQl1bGludAkJb2Zmc2V0OwpAQCAtMTI5NSw3ICsxMzA4LDE5IEBAIHRyeF91bmRvX3Jl cG9ydF9yb3dfb3BlcmF0aW9uKAogCQkJdmVyc2lvbiB0aGUgcmVwbGljYXRlIHBhZ2UgY29uc3Ry dWN0ZWQgdXNpbmcgdGhlIGxvZwogCQkJcmVjb3JkcyBzdGF5cyBpZGVudGljYWwgdG8gdGhlIG9y aWdpbmFsIHBhZ2UgKi8KIAotCQkJdHJ4X3VuZG9fZXJhc2VfcGFnZV9lbmQodW5kb19wYWdlLCAm bXRyKTsKKwkJCWlmICghdHJ4X3VuZG9fZXJhc2VfcGFnZV9lbmQodW5kb19wYWdlLCAmbXRyKSkg eworCQkJCS8qIFRoZSByZWNvcmQgZGlkIG5vdCBmaXQgb24gYW4gZW1wdHkKKwkJCQl1bmRvIHBh Z2UuIERpc2NhcmQgdGhlIGZyZXNobHkgYWxsb2NhdGVkCisJCQkJcGFnZSBhbmQgcmV0dXJuIGFu IGVycm9yLiAqLworCisJCQkJbXV0ZXhfZW50ZXIoJnJzZWctPm11dGV4KTsKKwkJCQl0cnhfdW5k b19mcmVlX2xhc3RfcGFnZSh0cngsIHVuZG8sICZtdHIpOworCQkJCW11dGV4X2V4aXQoJnJzZWct Pm11dGV4KTsKKworCQkJCWVyciA9IERCX1VORE9fUkVDT1JEX1RPT19CSUc7CisJCQkJZ290byBl cnJfZXhpdDsKKwkJCX0KKwogCQkJbXRyX2NvbW1pdCgmbXRyKTsKIAkJfSBlbHNlIHsKIAkJCS8q IFN1Y2Nlc3MgKi8KQEAgLTEzMTUsMTYgKzEzNDAsMTUgQEAgdHJ4X3VuZG9fcmVwb3J0X3Jvd19v cGVyYXRpb24oCiAJCQkqcm9sbF9wdHIgPSB0cnhfdW5kb19idWlsZF9yb2xsX3B0cigKIAkJCQlv cF90eXBlID09IFRSWF9VTkRPX0lOU0VSVF9PUCwKIAkJCQlyc2VnLT5pZCwgcGFnZV9ubywgb2Zm c2V0KTsKLQkJCWlmIChVTklWX0xJS0VMWV9OVUxMKGhlYXApKSB7Ci0JCQkJbWVtX2hlYXBfZnJl ZShoZWFwKTsKLQkJCX0KLQkJCXJldHVybihEQl9TVUNDRVNTKTsKKwkJCWVyciA9IERCX1NVQ0NF U1M7CisJCQlnb3RvIGZ1bmNfZXhpdDsKIAkJfQogCiAJCXV0X2FkKHBhZ2Vfbm8gPT0gdW5kby0+ bGFzdF9wYWdlX25vKTsKIAogCQkvKiBXZSBoYXZlIHRvIGV4dGVuZCB0aGUgdW5kbyBsb2cgYnkg b25lIHBhZ2UgKi8KIAorCQl1dF9hZCgrK2xvb3BfY291bnQgPCAyKTsKIAkJbXRyX3N0YXJ0KCZt dHIpOwogCiAJCS8qIFdoZW4gd2UgYWRkIGEgcGFnZSB0byBhbiB1bmRvIGxvZywgdGhpcyBpcyBh bmFsb2dvdXMgdG8KQEAgLTEzMzYsMTggKzEzNjAsMTkgQEAgdHJ4X3VuZG9fcmVwb3J0X3Jvd19v cGVyYXRpb24oCiAJCXBhZ2Vfbm8gPSB0cnhfdW5kb19hZGRfcGFnZSh0cngsIHVuZG8sICZtdHIp OwogCiAJCW11dGV4X2V4aXQoJihyc2VnLT5tdXRleCkpOworCX0gd2hpbGUgKFVOSVZfTElLRUxZ KHBhZ2Vfbm8gIT0gRklMX05VTEwpKTsKIAotCQlpZiAoVU5JVl9VTkxJS0VMWShwYWdlX25vID09 IEZJTF9OVUxMKSkgewotCQkJLyogRGlkIG5vdCBzdWNjZWVkOiBvdXQgb2Ygc3BhY2UgKi8KKwkv KiBEaWQgbm90IHN1Y2NlZWQ6IG91dCBvZiBzcGFjZSAqLworCWVyciA9IERCX09VVF9PRl9GSUxF X1NQQUNFOwogCi0JCQltdXRleF9leGl0KCYodHJ4LT51bmRvX211dGV4KSk7Ci0JCQltdHJfY29t bWl0KCZtdHIpOwotCQkJaWYgKFVOSVZfTElLRUxZX05VTEwoaGVhcCkpIHsKLQkJCQltZW1faGVh cF9mcmVlKGhlYXApOwotCQkJfQotCQkJcmV0dXJuKERCX09VVF9PRl9GSUxFX1NQQUNFKTsKLQkJ fQorZXJyX2V4aXQ6CisJbXV0ZXhfZXhpdCgmdHJ4LT51bmRvX211dGV4KTsKKwltdHJfY29tbWl0 KCZtdHIpOworZnVuY19leGl0OgorCWlmIChVTklWX0xJS0VMWV9OVUxMKGhlYXApKSB7CisJCW1l bV9oZWFwX2ZyZWUoaGVhcCk7CiAJfQorCXJldHVybihlcnIpOwogfQogCiAvKj09PT09PT09PT09 PT09IEJVSUxESU5HIFBSRVZJT1VTIFZFUlNJT04gT0YgQSBSRUNPUkQgPT09PT09PT09PT09PT09 Ki8KCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdW5kby5jJwot LS0gYS9zdG9yYWdlL2lubm9iYXNlL3RyeC90cngwdW5kby5jCXJldmlkOmdlb3JnaS5rb2Rpbm92 QG9yYWNsZS5jb20tMjAxMTA5MDExMjI2MTAtNzRvZTBkY2I0Mzc3MzNxcgorKysgYi9zdG9yYWdl L2lubm9iYXNlL3RyeC90cngwdW5kby5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTEwOTAxMTg1OTQ0LWo4ZGoyYm0zMjloazJhdmoKQEAgLTEwMDUsMjkgKzEwMDUsMjggQEAgdHJ4 X3VuZG9fZnJlZV9wYWdlKAogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCi1GcmVlcyBhbiB1bmRvIGxv ZyBwYWdlIHdoZW4gdGhlcmUgaXMgYWxzbyB0aGUgbWVtb3J5IG9iamVjdCBmb3IgdGhlIHVuZG8K LWxvZy4gKi8KLXN0YXRpYworRnJlZXMgdGhlIGxhc3QgdW5kbyBsb2cgcGFnZS4KK1RoZSBjYWxs ZXIgbXVzdCBob2xkIHRoZSByb2xsYmFjayBzZWdtZW50IG11dGV4LiAqLworVU5JVl9JTlRFUk4K IHZvaWQKLXRyeF91bmRvX2ZyZWVfcGFnZV9pbl9yb2xsYmFjaygKLS8qPT09PT09PT09PT09PT09 PT09PT09PT09PT09Ki8KLQl0cnhfdCoJCXRyeCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgLyoh PCBpbjogdHJhbnNhY3Rpb24gKi8KLQl0cnhfdW5kb190Kgl1bmRvLAkvKiE8IGluOiB1bmRvIGxv ZyBtZW1vcnkgY29weSAqLwotCXVsaW50CQlwYWdlX25vLC8qITwgaW46IHBhZ2UgbnVtYmVyIHRv IGZyZWU6IG11c3Qgbm90IGJlIHRoZQotCQkJCWhlYWRlciBwYWdlICovCi0JbXRyX3QqCQltdHIp CS8qITwgaW46IG10ciB3aGljaCBkb2VzIG5vdCBoYXZlIGEgbGF0Y2ggdG8gYW55Ci0JCQkJdW5k byBsb2cgcGFnZTsgdGhlIGNhbGxlciBtdXN0IGhhdmUgcmVzZXJ2ZWQKLQkJCQl0aGUgcm9sbGJh Y2sgc2VnbWVudCBtdXRleCAqLwordHJ4X3VuZG9fZnJlZV9sYXN0X3BhZ2VfZnVuYygKKy8qPT09 PT09PT09PT09PT09PT09PT09PT09PT0qLworI2lmZGVmIFVOSVZfREVCVUcKKwljb25zdCB0cnhf dCoJdHJ4LAkvKiE8IGluOiB0cmFuc2FjdGlvbiAqLworI2VuZGlmIC8qIFVOSVZfREVCVUcgKi8K Kwl0cnhfdW5kb190Kgl1bmRvLAkvKiE8IGluL291dDogdW5kbyBsb2cgbWVtb3J5IGNvcHkgKi8K KwltdHJfdCoJCW10cikJLyohPCBpbi9vdXQ6IG1pbmktdHJhbnNhY3Rpb24gd2hpY2ggZG9lcyBu b3QKKwkJCQloYXZlIGEgbGF0Y2ggdG8gYW55IHVuZG8gbG9nIHBhZ2Ugb3Igd2hpY2gKKwkJCQlo YXMgYWxsb2NhdGVkIHRoZSB1bmRvIGxvZyBwYWdlICovCiB7Ci0JdWxpbnQJbGFzdF9wYWdlX25v OwotCi0JdXRfYWQodW5kby0+aGRyX3BhZ2Vfbm8gIT0gcGFnZV9ubyk7Ci0JdXRfYWQobXV0ZXhf b3duKCYodHJ4LT51bmRvX211dGV4KSkpOwotCi0JbGFzdF9wYWdlX25vID0gdHJ4X3VuZG9fZnJl ZV9wYWdlKHVuZG8tPnJzZWcsIEZBTFNFLCB1bmRvLT5zcGFjZSwKLQkJCQkJICB1bmRvLT5oZHJf cGFnZV9ubywgcGFnZV9ubywgbXRyKTsKKwl1dF9hZChtdXRleF9vd24oJnRyeC0+dW5kb19tdXRl eCkpOworCXV0X2FkKHVuZG8tPmhkcl9wYWdlX25vICE9IHVuZG8tPmxhc3RfcGFnZV9ubyk7CisJ dXRfYWQodW5kby0+c2l6ZSA+IDApOworCisJdW5kby0+bGFzdF9wYWdlX25vID0gdHJ4X3VuZG9f ZnJlZV9wYWdlKAorCQl1bmRvLT5yc2VnLCBGQUxTRSwgdW5kby0+c3BhY2UsCisJCXVuZG8tPmhk cl9wYWdlX25vLCB1bmRvLT5sYXN0X3BhZ2Vfbm8sIG10cik7CiAKLQl1bmRvLT5sYXN0X3BhZ2Vf bm8gPSBsYXN0X3BhZ2Vfbm87CiAJdW5kby0+c2l6ZS0tOwogfQogCkBAIC0xMDYzLDkgKzEwNjIs MTEgQEAgVHJ1bmNhdGVzIGFuIHVuZG8gbG9nIGZyb20gdGhlIGVuZC4gVGhpcwogdG8gZnJlZSBz cGFjZSBmcm9tIGFuIHVuZG8gbG9nLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKLXRyeF91bmRvX3Ry dW5jYXRlX2VuZCgKLS8qPT09PT09PT09PT09PT09PT09Ki8KLQl0cnhfdCoJCXRyeCwJLyohPCBp bjogdHJhbnNhY3Rpb24gd2hvc2UgdW5kbyBsb2cgaXQgaXMgKi8KK3RyeF91bmRvX3RydW5jYXRl X2VuZF9mdW5jKAorLyo9PT09PT09PT09PT09PT09PT09PT09PSovCisjaWZkZWYgVU5JVl9ERUJV RworCWNvbnN0IHRyeF90Kgl0cngsCS8qITwgaW46IHRyYW5zYWN0aW9uIHdob3NlIHVuZG8gbG9n IGl0IGlzICovCisjZW5kaWYgLyogVU5JVl9ERUJVRyAqLwogCXRyeF91bmRvX3QqCXVuZG8sCS8q ITwgaW46IHVuZG8gbG9nICovCiAJdW5kb19ub190CWxpbWl0KQkvKiE8IGluOiBhbGwgdW5kbyBy ZWNvcmRzIHdpdGggdW5kbyBudW1iZXIKIAkJCQk+PSB0aGlzIHZhbHVlIHNob3VsZCBiZSB0cnVu Y2F0ZWQgKi8KQEAgLTEwOTEsMTggKzEwOTIsNyBAQCB0cnhfdW5kb190cnVuY2F0ZV9lbmQoCiAK IAkJcmVjID0gdHJ4X3VuZG9fcGFnZV9nZXRfbGFzdF9yZWModW5kb19wYWdlLCB1bmRvLT5oZHJf cGFnZV9ubywKIAkJCQkJCSB1bmRvLT5oZHJfb2Zmc2V0KTsKLQkJZm9yICg7OykgewotCQkJaWYg KHJlYyA9PSBOVUxMKSB7Ci0JCQkJaWYgKGxhc3RfcGFnZV9ubyA9PSB1bmRvLT5oZHJfcGFnZV9u bykgewotCi0JCQkJCWdvdG8gZnVuY3Rpb25fZXhpdDsKLQkJCQl9Ci0KLQkJCQl0cnhfdW5kb19m cmVlX3BhZ2VfaW5fcm9sbGJhY2soCi0JCQkJCXRyeCwgdW5kbywgbGFzdF9wYWdlX25vLCAmbXRy KTsKLQkJCQlicmVhazsKLQkJCX0KLQorCQl3aGlsZSAocmVjKSB7CiAJCQlpZiAodHJ4X3VuZG9f cmVjX2dldF91bmRvX25vKHJlYykgPj0gbGltaXQpIHsKIAkJCQkvKiBUcnVuY2F0ZSBhdCBsZWFz dCB0aGlzIHJlY29yZCBvZmYsIG1heWJlCiAJCQkJbW9yZSAqLwpAQCAtMTExNiw2ICsxMTA2LDE0 IEBAIHRyeF91bmRvX3RydW5jYXRlX2VuZCgKIAkJCQkJCQkgdW5kby0+aGRyX29mZnNldCk7CiAJ CX0KIAorCQlpZiAobGFzdF9wYWdlX25vID09IHVuZG8tPmhkcl9wYWdlX25vKSB7CisKKwkJCWdv dG8gZnVuY3Rpb25fZXhpdDsKKwkJfQorCisJCXV0X2FkKGxhc3RfcGFnZV9ubyA9PSB1bmRvLT5s YXN0X3BhZ2Vfbm8pOworCQl0cnhfdW5kb19mcmVlX2xhc3RfcGFnZSh0cngsIHVuZG8sICZtdHIp OworCiAJCW10cl9jb21taXQoJm10cik7CiAJfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS91dC91dDB1dC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3V0L3V0MHV0LmMJ cmV2aWQ6Z2VvcmdpLmtvZGlub3ZAb3JhY2xlLmNvbS0yMDExMDkwMTEyMjYxMC03NG9lMGRjYjQz NzczM3FyCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvdXQvdXQwdXQuYwlyZXZpZDptYXJrby5tYWtl bGFAb3JhY2xlLmNvbS0yMDExMDkwMTE4NTk0NC1qOGRqMmJtMzI5aGsyYXZqCkBAIC03MzAsNiAr NzMwLDggQEAgdXRfc3RyZXJyKAogCQlyZXR1cm4oIk5vIGluZGV4IG9uIHJlZmVyZW5jZWQga2V5 cyBpbiByZWZlcmVuY2VkIHRhYmxlIik7CiAJY2FzZSBEQl9JTkRFWF9DT1JSVVBUOgogCQlyZXR1 cm4oIkluZGV4IGNvcnJ1cHRlZCIpOworCWNhc2UgREJfVU5ET19SRUNPUkRfVE9PX0JJRzoKKwkJ cmV0dXJuKCJVbmRvIHJlY29yZCB0b28gYmlnIik7CiAJY2FzZSBEQl9FTkRfT0ZfSU5ERVg6CiAJ CXJldHVybigiRW5kIG9mIGluZGV4Iik7CiAJLyogZG8gbm90IGFkZCBkZWZhdWx0OiBpbiBvcmRl ciB0byBwcm9kdWNlIGEgd2FybmluZyBpZiBuZXcgY29kZQoKTm8gYnVuZGxlIChyZWFzb246IHVz ZWxlc3MgZm9yIHB1c2ggZW1haWxzKS4=