From: Andrei Elkin Date: September 29 2011 11:59am Subject: bzr push into mysql-trunk branch (andrei.elkin:3449 to 3450) List-Archive: http://lists.mysql.com/commits/141215 Message-Id: <201109291159.p8TBxEip006150@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM0NTAgQW5kcmVpIEVsa2luCTIwMTEtMDktMjkgW21lcmdlXQogICAgICBtZXJnZSBmcm9tIDUu NSBidWdmaXhpbmcgYnJhbmNoCgogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUv cnBsL3IvcnBsX2NoZWNrc3VtLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3Jw bF9sb2dfcG9zLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9tYW51YWxf Y2hhbmdlX2luZGV4X2ZpbGUucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBs X3BhY2tldC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfcm93X2V2ZW50 X21heF9zaXplLnJlc3VsdAogICAgICBzcWwvcnBsX21hc3Rlci5jYwogICAgICBzcWwvc2hhcmUv ZXJybXNnLXV0ZjgudHh0CiAzNDQ5IFJvaGl0IEthbGhhbnMJMjAxMS0wOS0yOSBbbWVyZ2VdCiAg ICAgIEJVRyMxMTc1ODI2MjogTWVyZ2UgZnJvbSBteXNxbC01LjUgdG8gbXlzcWwtdHJ1bmsgYnJh bmNoLgoKICAgIHJlbW92ZWQ6CiAgICAgIG15c3FsLXRlc3QvZXh0cmEvcnBsX3Rlc3RzL3JwbF9p bnNlcnRfZHVwbGljYXRlLnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfaW5z ZXJ0X2R1cGxpY2F0ZS5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfaW5z ZXJ0X3NlbGVjdC5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfaW5zZXJ0 X2R1cGxpY2F0ZS50ZXN0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX2luc2VydF9z ZWxlY3QudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3QvZXh0cmEvcnBsX3Rlc3Rz L3JwbF9pbnNlcnRfaWQudGVzdAogICAgICBteXNxbC10ZXN0L2V4dHJhL3JwbF90ZXN0cy9ycGxf aW5zZXJ0X2lnbm9yZS50ZXN0CiAgICAgIG15c3FsLXRlc3Qvci9jb21taXRfMWlubm9kYi5yZXN1 bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9iaW5sb2cvci9iaW5sb2dfc3RtX2JsYWNraG9sZS5y ZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9iaW5sb2cvci9iaW5sb2dfdW5zYWZlLnJlc3Vs dAogICAgICBteXNxbC10ZXN0L3N1aXRlL2JpbmxvZy90L2JpbmxvZ191bnNhZmUudGVzdAogICAg ICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9pbnNlcnRfaWdub3JlLnJlc3VsdAogICAgICBt eXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9rbm93bl9idWdzX2RldGVjdGlvbi5yZXN1bHQKICAg ICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfa25vd25fYnVnc19kZXRlY3Rpb24udGVzdAog ICAgICBzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CiAgICAgIHNxbC9zcWxfbGV4LmNjCiAgICAg IHNxbC9zcWxfbGV4LmgKICAgICAgc3FsL3NxbF9wYXJzZS5jYwo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfY2hlY2tzdW0ucmVzdWx0JwotLS0gYS9teXNxbC10 ZXN0L3N1aXRlL3JwbC9yL3JwbF9jaGVja3N1bS5yZXN1bHQJMjAxMS0wNS0xNyAyMjo1MjowNCAr MDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9jaGVja3N1bS5yZXN1bHQJMjAx MS0wOS0yOSAxMTo1NTozMSArMDAwMApAQCAtNjQsNyArNjQsNyBAQCBpbnNlcnQgaW50byB0MSB2 YWx1ZXMgKDEpIC8qIHdpbGwgbm90IGJlCiBzZXQgQEBnbG9iYWwuZGVidWc9J2Qsc2ltdWxhdGVf c2xhdmVfdW5hd2FyZV9jaGVja3N1bSc7CiBzdGFydCBzbGF2ZTsKIGluY2x1ZGUvd2FpdF9mb3Jf c2xhdmVfaW9fZXJyb3IuaW5jIFtlcnJubz0xMjM2XQotTGFzdF9JT19FcnJvciA9ICdHb3QgZmF0 YWwgZXJyb3IgMTIzNiBmcm9tIG1hc3RlciB3aGVuIHJlYWRpbmcgZGF0YSBmcm9tIGJpbmFyeSBs b2c6ICdTbGF2ZSBjYW4gbm90IGhhbmRsZSByZXBsaWNhdGlvbiBldmVudHMgd2l0aCB0aGUgY2hl Y2tzdW0gdGhhdCBtYXN0ZXIgaXMgY29uZmlndXJlZCB0byBsb2cnJworTGFzdF9JT19FcnJvciA9 ICdHb3QgZmF0YWwgZXJyb3IgMTIzNiBmcm9tIG1hc3RlciB3aGVuIHJlYWRpbmcgZGF0YSBmcm9t IGJpbmFyeSBsb2c6ICdTbGF2ZSBjYW4gbm90IGhhbmRsZSByZXBsaWNhdGlvbiBldmVudHMgd2l0 aCB0aGUgY2hlY2tzdW0gdGhhdCBtYXN0ZXIgaXMgY29uZmlndXJlZCB0byBsb2c7IHRoZSBsYXN0 IGV2ZW50IHdhcyByZWFkIGZyb20gLi9tYXN0ZXItYmluLjAwMDAxMCBhdCAxMTQsIHRoZSBsYXN0 IGJ5dGUgcmVhZCB3YXMgcmVhZCBmcm9tIC4vbWFzdGVyLWJpbi4wMDAwMTAgYXQgMTE0LicnCiBz ZWxlY3QgY291bnQoKikgYXMgemVybyBmcm9tIHQxOwogemVybwogMAoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX2xvZ19wb3MucmVzdWx0JwotLS0gYS9teXNx bC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9sb2dfcG9zLnJlc3VsdAkyMDExLTAxLTMxIDEzOjQ0OjM4 ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX2xvZ19wb3MucmVzdWx0CTIw MTEtMDktMjkgMTE6NTU6MzEgKzAwMDAKQEAgLTksNyArOSw3IEBAIGNoYW5nZSBtYXN0ZXIgdG8g bWFzdGVyX2xvZ19wb3M9TUFTVEVSX0wKIFJlYWRfTWFzdGVyX0xvZ19Qb3MgPSAnNzUnCiBzdGFy dCBzbGF2ZTsKIGluY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfaW9fZXJyb3IuaW5jIFtlcnJubz0xMjM2 XQotTGFzdF9JT19FcnJvciA9ICdHb3QgZmF0YWwgZXJyb3IgMTIzNiBmcm9tIG1hc3RlciB3aGVu IHJlYWRpbmcgZGF0YSBmcm9tIGJpbmFyeSBsb2c6ICdsb2cgZXZlbnQgZW50cnkgZXhjZWVkZWQg bWF4X2FsbG93ZWRfcGFja2V0OyBJbmNyZWFzZSBtYXhfYWxsb3dlZF9wYWNrZXQgb24gbWFzdGVy JycKK0xhc3RfSU9fRXJyb3IgPSAnR290IGZhdGFsIGVycm9yIDEyMzYgZnJvbSBtYXN0ZXIgd2hl biByZWFkaW5nIGRhdGEgZnJvbSBiaW5hcnkgbG9nOiAnbG9nIGV2ZW50IGVudHJ5IGV4Y2VlZGVk IG1heF9hbGxvd2VkX3BhY2tldDsgSW5jcmVhc2UgbWF4X2FsbG93ZWRfcGFja2V0IG9uIG1hc3Rl cjsgdGhlIGxhc3QgZXZlbnQgd2FzIHJlYWQgZnJvbSAuL21hc3Rlci1iaW4uMDAwMDAxIGF0IDc1 LCB0aGUgbGFzdCBieXRlIHJlYWQgd2FzIHJlYWQgZnJvbSAuL21hc3Rlci1iaW4uMDAwMDAxIGF0 IDk0LicnCiBpbmNsdWRlL3N0b3Bfc2xhdmVfc3FsLmluYwogc2hvdyBtYXN0ZXIgc3RhdHVzOwog RmlsZQlQb3NpdGlvbglCaW5sb2dfRG9fREIJQmlubG9nX0lnbm9yZV9EQgoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX21hbnVhbF9jaGFuZ2VfaW5kZXhfZmls ZS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX21hbnVhbF9jaGFuZ2Vf aW5kZXhfZmlsZS5yZXN1bHQJMjAxMS0wMS0xNyAxMDoxMDowNiArMDAwMAorKysgYi9teXNxbC10 ZXN0L3N1aXRlL3JwbC9yL3JwbF9tYW51YWxfY2hhbmdlX2luZGV4X2ZpbGUucmVzdWx0CTIwMTEt MDktMjkgMTE6NTU6MzEgKzAwMDAKQEAgLTUsNyArNSw3IEBAIENSRUFURSBUQUJMRSB0MShjMSBJ TlQpOwogRkxVU0ggTE9HUzsKIGNhbGwgbXRyLmFkZF9zdXBwcmVzc2lvbignR290IGZhdGFsIGVy cm9yIDEyMzYgZnJvbSBtYXN0ZXIgd2hlbiByZWFkaW5nIGRhdGEgZnJvbSBiaW5hcnkgbG9nOiAu KmNvdWxkIG5vdCBmaW5kIG5leHQgbG9nJyk7CiBpbmNsdWRlL3dhaXRfZm9yX3NsYXZlX2lvX2Vy cm9yLmluYyBbZXJybm89MTIzNl0KLUxhc3RfSU9fRXJyb3IgPSAnR290IGZhdGFsIGVycm9yIDEy MzYgZnJvbSBtYXN0ZXIgd2hlbiByZWFkaW5nIGRhdGEgZnJvbSBiaW5hcnkgbG9nOiAnY291bGQg bm90IGZpbmQgbmV4dCBsb2cnJworTGFzdF9JT19FcnJvciA9ICdHb3QgZmF0YWwgZXJyb3IgMTIz NiBmcm9tIG1hc3RlciB3aGVuIHJlYWRpbmcgZGF0YSBmcm9tIGJpbmFyeSBsb2c6ICdjb3VsZCBu b3QgZmluZCBuZXh0IGxvZzsgdGhlIGxhc3QgZXZlbnQgd2FzIHJlYWQgZnJvbSAuL21hc3Rlci1i aW4uMDAwMDAyIGF0IDI1MSwgdGhlIGxhc3QgYnl0ZSByZWFkIHdhcyByZWFkIGZyb20gLi9tYXN0 ZXItYmluLjAwMDAwMiBhdCAyNTEuJycKIENSRUFURSBUQUJMRSB0MihjMSBJTlQpOwogRkxVU0gg TE9HUzsKIENSRUFURSBUQUJMRSB0MyhjMSBJTlQpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3Qvc3VpdGUvcnBsL3IvcnBsX3BhY2tldC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvcnBsL3IvcnBsX3BhY2tldC5yZXN1bHQJMjAxMS0wOC0xOSAxMzowNDoyOCArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9wYWNrZXQucmVzdWx0CTIwMTEtMDktMjkgMTE6 NTU6MzEgKzAwMDAKQEAgLTM3LDcgKzM3LDcgQEAgRFJPUCBUQUJMRSB0MTsKIENSRUFURSBUQUJM RSB0MSAoZjEgaW50IFBSSU1BUlkgS0VZLCBmMiBMT05HVEVYVCwgZjMgTE9OR1RFWFQpIEVOR0lO RT1NeUlTQU07CiBJTlNFUlQgSU5UTyB0MShmMSwgZjIsIGYzKSBWQUxVRVMoMSwgUkVQRUFUKCdh JywgQEBnbG9iYWwubWF4X2FsbG93ZWRfcGFja2V0KSwgUkVQRUFUKCdiJywgQEBnbG9iYWwubWF4 X2FsbG93ZWRfcGFja2V0KSk7CiBpbmNsdWRlL3dhaXRfZm9yX3NsYXZlX2lvX2Vycm9yLmluYyBb ZXJybm89MTIzNl0KLUxhc3RfSU9fRXJyb3IgPSAnR290IGZhdGFsIGVycm9yIDEyMzYgZnJvbSBt YXN0ZXIgd2hlbiByZWFkaW5nIGRhdGEgZnJvbSBiaW5hcnkgbG9nOiAnbG9nIGV2ZW50IGVudHJ5 IGV4Y2VlZGVkIG1heF9hbGxvd2VkX3BhY2tldDsgSW5jcmVhc2UgbWF4X2FsbG93ZWRfcGFja2V0 IG9uIG1hc3RlcicnCitMYXN0X0lPX0Vycm9yID0gJ0dvdCBmYXRhbCBlcnJvciAxMjM2IGZyb20g bWFzdGVyIHdoZW4gcmVhZGluZyBkYXRhIGZyb20gYmluYXJ5IGxvZzogJ2xvZyBldmVudCBlbnRy eSBleGNlZWRlZCBtYXhfYWxsb3dlZF9wYWNrZXQ7IEluY3JlYXNlIG1heF9hbGxvd2VkX3BhY2tl dCBvbiBtYXN0ZXI7IHRoZSBsYXN0IGV2ZW50IHdhcyByZWFkIGZyb20gLi9tYXN0ZXItYmluLjAw MDAwMSBhdCA0ODQsIHRoZSBsYXN0IGJ5dGUgcmVhZCB3YXMgcmVhZCBmcm9tIC4vbWFzdGVyLWJp bi4wMDAwMDEgYXQgNTAzLicnCiBTVE9QIFNMQVZFOwogUkVTRVQgU0xBVkU7CiBSRVNFVCBNQVNU RVI7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfcm93X2V2 ZW50X21heF9zaXplLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfcm93 X2V2ZW50X21heF9zaXplLnJlc3VsdAkyMDExLTA4LTE5IDEzOjA0OjI4ICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX3Jvd19ldmVudF9tYXhfc2l6ZS5yZXN1bHQJMjAxMS0w OS0yOSAxMTo1NTozMSArMDAwMApAQCAtNjMsNyArNjMsNyBAQCBjYWxsIG10ci5hZGRfc3VwcHJl c3Npb24oIkZvdW5kIGludmFsaWQgCiBjYWxsIG10ci5hZGRfc3VwcHJlc3Npb24oIlRoZSBzbGF2 ZSBjb29yZGluYXRvciBhbmQgd29ya2VyIHRocmVhZHMgYXJlIHN0b3BwZWQsIHBvc3NpYmx5IGxl YXZpbmcgZGF0YSBpbiBpbmNvbnNpc3RlbnQgc3RhdGUiKTsKIGRyb3AgdGFibGUgdDE7CiBpbmNs dWRlL3dhaXRfZm9yX3NsYXZlX2lvX2Vycm9yLmluYyBbZXJybm89MTIzNl0KLUxhc3RfSU9fRXJy b3IgPSAnR290IGZhdGFsIGVycm9yIDEyMzYgZnJvbSBtYXN0ZXIgd2hlbiByZWFkaW5nIGRhdGEg ZnJvbSBiaW5hcnkgbG9nOiAnbG9nIGV2ZW50IGVudHJ5IGV4Y2VlZGVkIG1heF9hbGxvd2VkX3Bh Y2tldDsgSW5jcmVhc2UgbWF4X2FsbG93ZWRfcGFja2V0IG9uIG1hc3RlcicnCitMYXN0X0lPX0Vy cm9yID0gJ0dvdCBmYXRhbCBlcnJvciAxMjM2IGZyb20gbWFzdGVyIHdoZW4gcmVhZGluZyBkYXRh IGZyb20gYmluYXJ5IGxvZzogJ2xvZyBldmVudCBlbnRyeSBleGNlZWRlZCBtYXhfYWxsb3dlZF9w YWNrZXQ7IEluY3JlYXNlIG1heF9hbGxvd2VkX3BhY2tldCBvbiBtYXN0ZXI7IHRoZSBsYXN0IGV2 ZW50IHdhcyByZWFkIGZyb20gLi9tYXN0ZXItYmluLjAwMDAwMSBhdCA4MDk4NzM0LCB0aGUgbGFz dCBieXRlIHJlYWQgd2FzIHJlYWQgZnJvbSAuL21hc3Rlci1iaW4uMDAwMDAxIGF0IDgwOTg3NTMu JycKID09PT0gY2xlYW4gdXAgPT09PQogaW5jbHVkZS9zdG9wX3NsYXZlX3NxbC5pbmMKIFJFU0VU IFNMQVZFOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9ycGxfbWFzdGVyLmNjJwotLS0gYS9zcWwv cnBsX21hc3Rlci5jYwkyMDExLTA3LTIxIDE2OjI3OjE0ICswMDAwCisrKyBiL3NxbC9ycGxfbWFz dGVyLmNjCTIwMTEtMDktMjkgMTE6NTU6MzEgKzAwMDAKQEAgLTUxNyw3ICs1MTcsNyBAQCBJbmNy ZWFzZSBtYXhfYWxsb3dlZF9wYWNrZXQgb24gbWFzdGVyIjsKICAgICAqZXJybXNnID0gIm1lbW9y eSBhbGxvY2F0aW9uIGZhaWxlZCByZWFkaW5nIGxvZyBldmVudCI7CiAgICAgYnJlYWs7CiAgIGNh c2UgTE9HX1JFQURfVFJVTkM6Ci0gICAgKmVycm1zZyA9ICJiaW5sb2cgdHJ1bmNhdGVkIGluIHRo ZSBtaWRkbGUgb2YgZXZlbnQiOworICAgICplcnJtc2cgPSAiYmlubG9nIHRydW5jYXRlZCBpbiB0 aGUgbWlkZGxlIG9mIGV2ZW50OyBjb25zaWRlciBvdXQgb2YgZGlzayBzcGFjZSBvbiBtYXN0ZXIi OwogICAgIGJyZWFrOwogICBjYXNlIExPR19SRUFEX0NIRUNLU1VNX0ZBSUxVUkU6CiAgICAgKmVy cm1zZyA9ICJldmVudCByZWFkIGZyb20gYmlubG9nIGRpZCBub3QgcGFzcyBjcmMgY2hlY2siOwpA QCAtNjI5LDYgKzYyOSw5IEBAIHZvaWQgbXlzcWxfYmlubG9nX3NlbmQoVEhEKiB0aGQsIGNoYXIq IGwKICAgU3RyaW5nKiBwYWNrZXQgPSAmdGhkLT5wYWNrZXQ7CiAgIGludCBlcnJvcjsKICAgY29u c3QgY2hhciAqZXJybXNnID0gIlVua25vd24gZXJyb3IiOworICBjb25zdCBjaGFyICpmbXQ9ICIl czsgdGhlIGxhc3QgZXZlbnQgd2FzIHJlYWQgZnJvbSAlcyBhdCAlcywgdGhlIGxhc3QgYnl0ZSBy ZWFkIHdhcyByZWFkIGZyb20gJXMgYXQgJXMuIjsKKyAgY2hhciBsbGJ1ZmYxWzIyXSwgbGxidWZm MlsyMl07CisgIGNoYXIgZXJyb3JfdGV4dFtNQVhfU0xBVkVfRVJSTVNHXTsgLy8gdG8gYmUgc2Vu ZCB0byBzbGF2ZSB2aWEgbXlfbWVzc2FnZSgpCiAgIE5FVCogbmV0ID0gJnRoZC0+bmV0OwogICBt eXNxbF9tdXRleF90ICpsb2dfbG9jazsKICAgbXlzcWxfY29uZF90ICpsb2dfY29uZDsKQEAgLTg5 NywxMSArOTAwLDkgQEAgaW1wb3NzaWJsZSBwb3NpdGlvbiI7CiAgICAgaWYgKHJlc2V0X3RyYW5z bWl0X3BhY2tldCh0aGQsIGZsYWdzLCAmZXZfb2Zmc2V0LCAmZXJybXNnKSkKICAgICAgIGdvdG8g ZXJyOwogCi0gICAgbXlfb2ZmX3QgcHJldl9wb3M9IHBvczsKLSAgICB3aGlsZSAoIShlcnJvciA9 IExvZ19ldmVudDo6cmVhZF9sb2dfZXZlbnQoJmxvZywgcGFja2V0LCBsb2dfbG9jaywKKyAgICB3 aGlsZSAoIShlcnJvcj0gTG9nX2V2ZW50OjpyZWFkX2xvZ19ldmVudCgmbG9nLCBwYWNrZXQsIGxv Z19sb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj dXJyZW50X2NoZWNrc3VtX2FsZykpKQogICAgIHsKLSAgICAgIHByZXZfcG9zPSBteV9iX3RlbGwo JmxvZyk7CiAjaWZuZGVmIERCVUdfT0ZGCiAgICAgICBpZiAobWF4X2JpbmxvZ19kdW1wX2V2ZW50 cyAmJiAhbGVmdF9ldmVudHMtLSkKICAgICAgIHsKQEAgLTEwMDUsMTggKzEwMDYsNiBAQCBpbXBv c3NpYmxlIHBvc2l0aW9uIjsKICAgICB9CiAKICAgICAvKgotICAgICAgaGVyZSB3ZSB3ZXJlIHJl YWRpbmcgYmlubG9nIHRoYXQgd2FzIG5vdCBjbG9zZWQgcHJvcGVybHkgKGFzIGEgcmVzdWx0Ci0g ICAgICBvZiBhIGNyYXNoID8pLiB0cmVhdCBhbnkgY29ycnVwdGlvbiBhcyBFT0YKLSAgICAqLwot ICAgIGlmIChiaW5sb2dfY2FuX2JlX2NvcnJ1cHRlZCAmJgotICAgICAgICBlcnJvciAhPSBMT0df UkVBRF9NRU0gJiYKLSAgICAgICAgZXJyb3IgIT0gTE9HX1JFQURfQ0hFQ0tTVU1fRkFJTFVSRSAm JgotICAgICAgICBlcnJvciAhPSBMT0dfUkVBRF9FT0YpCi0gICAgewotICAgICAgbXlfYl9zZWVr KCZsb2csIHByZXZfcG9zKTsKLSAgICAgIGVycm9yPUxPR19SRUFEX0VPRjsKLSAgICB9Ci0gICAg LyoKICAgICAgIFRPRE86IG5vdyB0aGF0IHdlIGFyZSBsb2dnaW5nIHRoZSBvZmZzZXQsIGNoZWNr IHRvIG1ha2Ugc3VyZQogICAgICAgdGhlIHJlY29yZGVkIG9mZnNldCBhbmQgdGhlIGFjdHVhbCBt YXRjaC4KICAgICAgIEd1aWxoZW0gMjAwMy0wNjogdGhpcyBpcyBub3QgdHJ1ZSBpZiB0aGlzIG1h c3RlciBpcyBhIHNsYXZlCkBAIC0xMjYzLDYgKzEyNTIsMTYgQEAgZW5kOgogCiBlcnI6CiAgIFRI RF9TVEFHRV9JTkZPKHRoZCwgc3RhZ2Vfd2FpdGluZ190b19maW5hbGl6ZV90ZXJtaW5hdGlvbik7 CisgIGlmIChteV9lcnJubyA9PSBFUl9NQVNURVJfRkFUQUxfRVJST1JfUkVBRElOR19CSU5MT0cg JiYgbXlfYl9pbml0ZWQoJmxvZykpCisgICAgLyogCisgICAgICAgZGV0YWlsaW5nIHRoZSBmYXRh bCBlcnJvciBtZXNzYWdlIHdpdGggY29vcmRpbmF0ZXMgCisgICAgICAgb2YgdGhlIGxhc3QgcG9z aXRpb24gcmVhZC4KKyAgICAqLworICAgIG15X3NucHJpbnRmKGVycm9yX3RleHQsIHNpemVvZihl cnJvcl90ZXh0KSwgZm10LCBlcnJtc2csCisgICAgICAgICAgICAgICAgY29vcmQtPmZpbGVfbmFt ZSwgKGxsc3RyKGNvb3JkLT5wb3MsIGxsYnVmZjEpLCBsbGJ1ZmYxKSwKKyAgICAgICAgICAgICAg ICBsb2dfZmlsZV9uYW1lLCAobGxzdHIobXlfYl90ZWxsKCZsb2cpLCBsbGJ1ZmYyKSwgbGxidWZm MikpOworICBlbHNlCisgICAgc3RyY3B5KGVycm9yX3RleHQsIGVycm1zZyk7CiAgIGVuZF9pb19j YWNoZSgmbG9nKTsKICAgKHZvaWQpIFJVTl9IT09LKGJpbmxvZ190cmFuc21pdCwgdHJhbnNtaXRf c3RvcCwgKHRoZCwgZmxhZ3MpKTsKICAgLyoKQEAgLTEyODAsNyArMTI3OSw3IEBAIGVycjoKICAg dGhkLT52YXJpYWJsZXMubWF4X2FsbG93ZWRfcGFja2V0PSBvbGRfbWF4X2FsbG93ZWRfcGFja2V0 OwogCiAgIHRoZC0+c2V0X3N0bXRfZGEoc2F2ZWRfZGEpOwotICBteV9tZXNzYWdlKG15X2Vycm5v LCBlcnJtc2csIE1ZRigwKSk7CisgIG15X21lc3NhZ2UobXlfZXJybm8sIGVycm9yX3RleHQsIE1Z RigwKSk7CiAgIERCVUdfVk9JRF9SRVRVUk47CiB9CiAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwv c2hhcmUvZXJybXNnLXV0ZjgudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CTIw MTEtMDktMjkgMTA6NDI6NTMgKzAwMDAKKysrIGIvc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAky MDExLTA5LTI5IDExOjU1OjMxICswMDAwCkBAIC00NzAxLDE0ICs0NzAxLDE0IEBAIEVSX05PVF9T VVBQT1JURURfWUVUIDQyMDAwIAogICAgICAgICBzcGEgIkVzdGEgdmVyc2nDs24gZGUgTXlTUUwg bm8gc29wb3J0YSB0b2RhdmlhICclcyciCiAgICAgICAgIHN3ZSAiRGVubmEgdmVyc2lvbiBhdiBN eVNRTCBrYW4gw6RubnUgaW50ZSB1dGbDtnJhICclcyciCiBFUl9NQVNURVJfRkFUQUxfRVJST1Jf UkVBRElOR19CSU5MT0cgIAotICAgICAgICBubGEgIktyZWVnIGZhdGFsZSBmb3V0ICVkOiAnJS0u MTI4cycgdmFuIG1hc3RlciB0aWpkZW5zIGxlemVuIHZhbiBkYXRhIHVpdCBiaW5haXJlIGxvZyIK LSAgICAgICAgZW5nICJHb3QgZmF0YWwgZXJyb3IgJWQgZnJvbSBtYXN0ZXIgd2hlbiByZWFkaW5n IGRhdGEgZnJvbSBiaW5hcnkgbG9nOiAnJS0uMTI4cyciCi0gICAgICAgIGdlciAiU2Nod2VyZXIg RmVobGVyICVkOiAnJS0uMTI4cyB2b20gTWFzdGVyIGJlaW0gTGVzZW4gZGVzIGJpbsOkcmVuIExv Z3MiCi0gICAgICAgIGl0YSAiRXJyb3JlIGZhdGFsZSAlZDogJyUtLjEyOHMnIGRhbCBtYXN0ZXIg bGVnZ2VuZG8gaSBkYXRpIGRhbCBsb2cgYmluYXJpbyIKLSAgICAgICAgcG9yICJPYnRldmUgZmF0 YWwgZXJybyAlZDogJyUtLjEyOHMnIGRvIG1hc3RlciBxdWFuZG8gbGVuZG8gZGFkb3MgZG8gYmlu YXJ5IGxvZyIKLSAgICAgICAgcnVzICLQn9C+0LvRg9GH0LXQvdCwINC90LXQuNGB0L/RgNCw0LLQ uNC80LDRjyDQvtGI0LjQsdC60LAgJWQ6ICclLS4xMjhzJyDQvtGCINCz0L7Qu9C+0LLQvdC+0LPQ viDRgdC10YDQstC10YDQsCDQsiDQv9GA0L7RhtC10YHRgdC1INCy0YvQsdC+0YDQutC4INC00LDQ vdC90YvRhSDQuNC3INC00LLQvtC40YfQvdC+0LPQviDQttGD0YDQvdCw0LvQsCIKLSAgICAgICAg c3BhICJSZWNpYmnDsyBmYXRhbCBlcnJvciAlZDogJyUtLjEyOHMnIGRlbCBtYXN0ZXIgY3VhbmRv IGxleWVuZG8gZGF0b3MgZGVsIGJpbmFyeSBsb2ciCi0gICAgICAgIHN3ZSAiRmljayBmYXRhbHQg ZmVsICVkOiAnJS0uMTI4cycgZnLDpW4gbWFzdGVyIHZpZCBsw6RzbmluZyBhdiBiaW7DpHJsb2dn ZW4iCisgICAgICAgIG5sYSAiS3JlZWcgZmF0YWxlIGZvdXQgJWQ6ICclLS4yNTZzJyB2YW4gbWFz dGVyIHRpamRlbnMgbGV6ZW4gdmFuIGRhdGEgdWl0IGJpbmFpcmUgbG9nIgorICAgICAgICBlbmcg IkdvdCBmYXRhbCBlcnJvciAlZCBmcm9tIG1hc3RlciB3aGVuIHJlYWRpbmcgZGF0YSBmcm9tIGJp bmFyeSBsb2c6ICclLS4yNTZzJyIKKyAgICAgICAgZ2VyICJTY2h3ZXJlciBGZWhsZXIgJWQ6ICcl LS4yNTZzIHZvbSBNYXN0ZXIgYmVpbSBMZXNlbiBkZXMgYmluw6RyZW4gTG9ncyIKKyAgICAgICAg aXRhICJFcnJvcmUgZmF0YWxlICVkOiAnJS0uMjU2cycgZGFsIG1hc3RlciBsZWdnZW5kbyBpIGRh dGkgZGFsIGxvZyBiaW5hcmlvIgorICAgICAgICBwb3IgIk9idGV2ZSBmYXRhbCBlcnJvICVkOiAn JS0uMjU2cycgZG8gbWFzdGVyIHF1YW5kbyBsZW5kbyBkYWRvcyBkbyBiaW5hcnkgbG9nIgorICAg ICAgICBydXMgItCf0L7Qu9GD0YfQtdC90LAg0L3QtdC40YHQv9GA0LDQstC40LzQsNGPINC+0YjQ uNCx0LrQsCAlZDogJyUtLjI1NnMnINC+0YIg0LPQvtC70L7QstC90L7Qs9C+INGB0LXRgNCy0LXR gNCwINCyINC/0YDQvtGG0LXRgdGB0LUg0LLRi9Cx0L7RgNC60Lgg0LTQsNC90L3Ri9GFINC40Lcg 0LTQstC+0LjRh9C90L7Qs9C+INC20YPRgNC90LDQu9CwIgorICAgICAgICBzcGEgIlJlY2liacOz IGZhdGFsIGVycm9yICVkOiAnJS0uMjU2cycgZGVsIG1hc3RlciBjdWFuZG8gbGV5ZW5kbyBkYXRv cyBkZWwgYmluYXJ5IGxvZyIKKyAgICAgICAgc3dlICJGaWNrIGZhdGFsdCBmZWwgJWQ6ICclLS4y NTZzJyBmcsOlbiBtYXN0ZXIgdmlkIGzDpHNuaW5nIGF2IGJpbsOkcmxvZ2dlbiIKIEVSX1NMQVZF X0lHTk9SRURfVEFCTEUgIAogICAgICAgICBlbmcgIlNsYXZlIFNRTCB0aHJlYWQgaWdub3JlZCB0 aGUgcXVlcnkgYmVjYXVzZSBvZiByZXBsaWNhdGUtKi10YWJsZSBydWxlcyIKICAgICAgICAgZ2Vy ICJTbGF2ZS1TUUwtVGhyZWFkIGhhdCBkaWUgQWJmcmFnZSBhdWZncnVuZCB2b24gcmVwbGljYXRl LSotdGFibGUtUmVnZWxuIGlnbm9yaWVydCIKCk5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZv ciBwdXNoIGVtYWlscyku