From: marko.makela Date: October 19 2010 6:04am Subject: bzr commit into mysql-5.1-innodb branch (marko.makela:3639) Bug#56680 List-Archive: http://lists.mysql.com/commits/121046 X-Bug: 56680 Message-Id: <201010190604.o9J4oY9N017358@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0355699964==" --===============0355699964== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjEtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3 MGMzZXF0aHMzZTN1CgogMzYzOSBNYXJrbyBNw6RrZWzDpAkyMDEwLTEwLTE5CiAgICAgIEJ1ZyAj NTY2ODAgd3JvbmcgSW5ub0RCIHJlc3VsdHMgZnJvbSBhIGNhc2UtaW5zZW5zaXRpdmUgY292ZXJp bmcgaW5kZXgKICAgICAgCiAgICAgIHJvd19zZWFyY2hfZm9yX215c3FsKCk6IFdoZW4gYSBzZWNv bmRhcnkgaW5kZXggcmVjb3JkIG1pZ2h0IG5vdCBiZQogICAgICB2aXNpYmxlIGluIHRoZSBjdXJy ZW50IHRyYW5zYWN0aW9uJ3MgcmVhZCB2aWV3IGFuZCB3ZSBjb25zdWx0IHRoZQogICAgICBjbHVz dGVyZWQgaW5kZXggYW5kIG9wdGlvbmFsbHkgc29tZSB1bmRvIGxvZyByZWNvcmRzLCByZXR1cm4g dGhlCiAgICAgIHJlbGV2YW50IGNvbHVtbnMgb2YgdGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQg dG8gTXlTUUwgaW5zdGVhZCBvZiB0aGUKICAgICAgc2Vjb25kYXJ5IGluZGV4IHJlY29yZC4KICAg ICAgCiAgICAgIGlidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2VfbG93KCk6IE5ldyBmdW5jdGlvbiwg cmVmYWN0b3JlZCBmcm9tCiAgICAgIGlidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2UoKS4KICAgICAg CiAgICAgIGlidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2UoKTogV2hlbiB3ZSBhcmUgaW5zZXJ0aW5n IGEgcmVjb3JkIGluIHBsYWNlCiAgICAgIG9mIGEgZGVsZXRlLW1hcmtlZCByZWNvcmQgYW5kIHNv bWUgZmllbGRzIG9mIHRoZSByZWNvcmQgZGlmZmVyLCB1cGRhdGUKICAgICAgdGhhdCByZWNvcmQg anVzdCBsaWtlIHJvd19pbnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlmeSgpIHdvdWxkIGRvLgog ICAgICAKICAgICAgYnRyX2N1cl91cGRhdGVfYWxsb2NfemlwKCk6IE1ha2UgdGhlIGZ1bmN0aW9u IHB1YmxpYy4KICAgICAgCiAgICAgIG15c3FsX3Jvd190ZW1wbF90OiBBZGQgY2x1c3RfcmVjX2Zp ZWxkX25vLgogICAgICAKICAgICAgcm93X3NlbF9zdG9yZV9teXNxbF9yZWMoKSwgcm93X3NlbF9w dXNoX2NhY2hlX3Jvd19mb3JfbXlzcWwoKTogQWRkIHRoZQogICAgICBmbGFnIHJlY19jbHVzdCwg Zm9yIHJldHVybmluZyBkYXRhIGF0IGNsdXN0X3JlY19maWVsZF9ubyBpbnN0ZWFkIG9mCiAgICAg IHJlY19maWVsZF9uby4gUmVzdXJyZWN0IHRoZSBkZWJ1ZyBhc3NlcnRpb24gdGhhdCB0aGUgcmVj b3JkIG5vdCBiZQogICAgICBtYXJrZWQgZm9yIGRlbGV0aW9uLiAoQnVnICM1NTYyNikKICAgICAg CiAgICAgIFtVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVR10gaWJ1Zl9kZWJ1ZywgYnVmX3Bh Z2VfZ2V0X2dlbigpLAogICAgICBidWZfZmx1c2hfcGFnZV90cnkoKToKICAgICAgSW1wbGVtZW50 IGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnPTEgZm9yIGV2aWN0aW5nIHBhZ2VzIGZyb20g dGhlCiAgICAgIGJ1ZmZlciBwb29sLCBzbyB0aGF0IGNoYW5nZSBidWZmZXJpbmcgd2lsbCBiZSBh dHRlbXB0ZWQgbW9yZQogICAgICBmcmVxdWVudGx5LgoKICAgIGFkZGVkOgogICAgICBteXNxbC10 ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4vci9pbm5vZGJfYnVnNTY2ODAucmVzdWx0CiAgICAgIG15 c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi90L2lubm9kYl9idWc1NjY4MC50ZXN0CiAgICBt b2RpZmllZDoKICAgICAgc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5nZUxvZwogICAgICBzdG9y YWdlL2lubm9kYl9wbHVnaW4vYnRyL2J0cjBjdXIuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVn aW4vYnVmL2J1ZjBidWYuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vYnVmL2J1ZjBmbHUu YwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAg c3RvcmFnZS9pbm5vZGJfcGx1Z2luL2lidWYvaWJ1ZjBpYnVmLmMKICAgICAgc3RvcmFnZS9pbm5v ZGJfcGx1Z2luL2luY2x1ZGUvYnRyMGN1ci5oCiAgICAgIHN0b3JhZ2UvaW5ub2RiX3BsdWdpbi9p bmNsdWRlL2J1ZjBmbHUuaAogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9pYnVm MGlidWYuaAogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwbXlzcWwuaAog ICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwdXBkLmgKICAgICAgc3RvcmFn ZS9pbm5vZGJfcGx1Z2luL3Jvdy9yb3cwbXlzcWwuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVn aW4vcm93L3JvdzBzZWwuYwogICAgICBzdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzB1cGQu Ywo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1Z2luL3IvaW5ub2Ri X2J1ZzU2NjgwLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGJfcGx1Z2luL3Iv aW5ub2RiX2J1ZzU2NjgwLnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi9yL2lubm9kYl9idWc1NjY4MC5yZXN1bHQJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNjA0MTUtYmozdTZld2swMjJtazRu cgpAQCAtMCwwICsxLDEwOSBAQAorU0VUIEdMT0JBTCB0eF9pc29sYXRpb249J1JFUEVBVEFCTEUt UkVBRCc7CitTRVQgR0xPQkFMIGlubm9kYl9maWxlX2Zvcm1hdD1CYXJyYWN1ZGE7CitTRVQgR0xP QkFMIGlubm9kYl9maWxlX3Blcl90YWJsZT1vbjsKK0NSRUFURSBUQUJMRSBidWc1NjY4MCgKK2Eg SU5UIEFVVE9fSU5DUkVNRU5UIFBSSU1BUlkgS0VZLAorYiBDSEFSKDEpLAorYyBJTlQsCitJTkRF WChiKSkKK0VOR0lORT1Jbm5vREI7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMCwneCcs MSk7CitCRUdJTjsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CitiCit4CitCRUdJTjsKK1VQREFU RSBidWc1NjY4MCBTRVQgYj0nWCc7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwOworYgoreAorU0VM RUNUICogRlJPTSBidWc1NjY4MDsKK2EJYgljCisxCXgJMQorUk9MTEJBQ0s7CitTRUxFQ1QgYiBG Uk9NIGJ1ZzU2NjgwOworYgoreAorU0VUIEdMT0JBTCB0eF9pc29sYXRpb249J1JFQUQtVU5DT01N SVRURUQnOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7 CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VS VCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8g YnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4 MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVD VCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixj IEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBi dWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2Njgw OworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNF UlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0JFR0lOOworU0VM RUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAyOworYgoreAoreAorQkVHSU47CitERUxFVEUgRlJP TSBidWc1NjY4MCBXSEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMSwnWCcs MSk7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDM7CitiCitYCit4Cit4CitTRUxFQ1Qg YiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitiCit4Cit4CitDSEVDSyBUQUJMRSBidWc1NjY4MDsK K1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2NjgwCWNoZWNrCXN0YXR1cwlP SworUk9MTEJBQ0s7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitiCit4Cit4CitD SEVDSyBUQUJMRSBidWc1NjY4MDsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1 ZzU2NjgwCWNoZWNrCXN0YXR1cwlPSworU0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAyOwor YgoreAoreAorQ1JFQVRFIFRBQkxFIGJ1ZzU2NjgwXzIoCithIElOVCBBVVRPX0lOQ1JFTUVOVCBQ UklNQVJZIEtFWSwKK2IgVkFSQ0hBUigyKSBDSEFSU0VUIGxhdGluMSBDT0xMQVRFIGxhdGluMV9n ZXJtYW4yX2NpLAorYyBJTlQsCitJTkRFWChiKSkKK0VOR0lORT1Jbm5vREI7CitJTlNFUlQgSU5U TyBidWc1NjY4MF8yIFNFTEVDVCAwLF9sYXRpbjEgMHhkZixjIEZST00gYnVnNTY2ODA7CitCRUdJ TjsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlUIDI7CitIRVgoYikKK0RGCitE RgorREVMRVRFIEZST00gYnVnNTY2ODBfMiBXSEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1NjY4 MF8yIFZBTFVFUygxLCdTUycsMSk7CitTRUxFQ1QgSEVYKGIpIEZST00gYnVnNTY2ODBfMiBMSU1J VCAzOworSEVYKGIpCis1MzUzCitERgorREYKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwXzI7CitUYWJs ZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MF8yCWNoZWNrCXN0YXR1cwlPSwor QUxURVIgVEFCTEUgYnVnNTY2ODBfMiBST1dfRk9STUFUPUNPTVBSRVNTRUQgS0VZX0JMT0NLX1NJ WkU9MTsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlUIDI7CitIRVgoYikKKzUz NTMKK0RGCitERUxFVEUgRlJPTSBidWc1NjY4MF8yIFdIRVJFIGE9MTsKK0lOU0VSVCBJTlRPIGJ1 ZzU2NjgwXzIgVkFMVUVTKDEsX2xhdGluMSAweGRmLDEpOworU0VMRUNUIEhFWChiKSBGUk9NIGJ1 ZzU2NjgwXzIgTElNSVQgMzsKK0hFWChiKQorREYKK0RGCitERgorQ0hFQ0sgVEFCTEUgYnVnNTY2 ODBfMjsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2NjgwXzIJY2hlY2sJ c3RhdHVzCU9LCitEUk9QIFRBQkxFIGJ1ZzU2NjgwXzI7CitEUk9QIFRBQkxFIGJ1ZzU2NjgwOwoK PT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi90L2lubm9kYl9i dWc1NjY4MC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYl9wbHVnaW4vdC9pbm5v ZGJfYnVnNTY2ODAudGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRl c3Qvc3VpdGUvaW5ub2RiX3BsdWdpbi90L2lubm9kYl9idWc1NjY4MC50ZXN0CXJldmlkOm1hcmtv Lm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJqM3U2ZXdrMDIybWs0bnIKQEAgLTAs MCArMSwxNDIgQEAKKyMKKyMgQnVnICM1NjY4MCBJbm5vREIgbWF5IHJldHVybiB3cm9uZyByZXN1 bHRzIGZyb20gYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4CisjCistLSBzb3VyY2UgaW5jbHVkZS9o YXZlX2lubm9kYl9wbHVnaW4uaW5jCisKKy0tIGRpc2FibGVfcXVlcnlfbG9nCitTRVQgQHR4X2lz b2xhdGlvbl9vcmlnID0gQEB0eF9pc29sYXRpb247CitTRVQgQGlubm9kYl9maWxlX3Blcl90YWJs ZV9vcmlnID0gQEBpbm5vZGJfZmlsZV9wZXJfdGFibGU7CitTRVQgQGlubm9kYl9maWxlX2Zvcm1h dF9vcmlnID0gQEBpbm5vZGJfZmlsZV9mb3JtYXQ7CitTRVQgQGlubm9kYl9maWxlX2Zvcm1hdF9j aGVja19vcmlnID0gQEBpbm5vZGJfZmlsZV9mb3JtYXRfY2hlY2s7CisjIFRoZSBmbGFnIGlubm9k Yl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnIGlzIG9ubHkgYXZhaWxhYmxlIGluIGRlYnVnIGJ1aWxk cy4KKyMgSXQgaW5zdHJ1Y3RzIElubm9EQiB0byB0cnkgdG8gZXZpY3QgcGFnZXMgZnJvbSB0aGUg YnVmZmVyIHBvb2wgd2hlbgorIyBjaGFuZ2UgYnVmZmVyaW5nIGlzIHBvc3NpYmxlLCBzbyB0aGF0 IHRoZSBjaGFuZ2UgYnVmZmVyIHdpbGwgYmUgdXNlZAorIyB3aGVuZXZlciBwb3NzaWJsZS4KKy0t IGVycm9yIDAsRVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBAaW5ub2RiX2NoYW5nZV9i dWZmZXJpbmdfZGVidWdfb3JpZyA9IEBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWc7Cist LSBlcnJvciAwLEVSX1VOS05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgR0xPQkFMIGlubm9kYl9j aGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gMTsKKy0tIGVuYWJsZV9xdWVyeV9sb2cKK1NFVCBHTE9C QUwgdHhfaXNvbGF0aW9uPSdSRVBFQVRBQkxFLVJFQUQnOworU0VUIEdMT0JBTCBpbm5vZGJfZmls ZV9mb3JtYXQ9QmFycmFjdWRhOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9wZXJfdGFibGU9b247 CisKK0NSRUFURSBUQUJMRSBidWc1NjY4MCgKKyAgICAgICBhIElOVCBBVVRPX0lOQ1JFTUVOVCBQ UklNQVJZIEtFWSwKKyAgICAgICBiIENIQVIoMSksCisgICAgICAgYyBJTlQsCisgICAgICAgSU5E RVgoYikpCitFTkdJTkU9SW5ub0RCOworCitJTlNFUlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMCwn eCcsMSk7CitCRUdJTjsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CisKK2Nvbm5lY3QgKGNvbjEs bG9jYWxob3N0LHJvb3QsLCk7Citjb25uZWN0aW9uIGNvbjE7CitCRUdJTjsKK1VQREFURSBidWc1 NjY4MCBTRVQgYj0nWCc7CisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKyMgVGhpcyBzaG91bGQgcmV0 dXJuIHRoZSBsYXN0IGNvbW1pdHRlZCB2YWx1ZSAneCcsIGJ1dCB3b3VsZCByZXR1cm4gJ1gnCisj IGR1ZSB0byBhIGJ1ZyBpbiByb3dfc2VhcmNoX2Zvcl9teXNxbCgpLgorU0VMRUNUIGIgRlJPTSBi dWc1NjY4MDsKKyMgVGhpcyB3b3VsZCBhbHdheXMgcmV0dXJuIHRoZSBsYXN0IGNvbW1pdHRlZCB2 YWx1ZSAneCcuCitTRUxFQ1QgKiBGUk9NIGJ1ZzU2NjgwOworCitjb25uZWN0aW9uIGNvbjE7CitS T0xMQkFDSzsKK2Rpc2Nvbm5lY3QgY29uMTsKKworY29ubmVjdGlvbiBkZWZhdWx0OworCitTRUxF Q1QgYiBGUk9NIGJ1ZzU2NjgwOworCisjIEZvciB0aGUgcmVzdCBvZiB0aGlzIHRlc3QsIHVzZSB0 aGUgUkVBRCBVTkNPTU1JVFRFRCBpc29sYXRpb24gbGV2ZWwKKyMgdG8gc2VlIHdoYXQgZXhpc3Rz IGluIHRoZSBzZWNvbmRhcnkgaW5kZXguCitTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbj0nUkVBRC1V TkNPTU1JVFRFRCc7CisKKyMgQ3JlYXRlIGVub3VnaCByb3dzIGZvciB0aGUgdGFibGUsIHNvIHRo YXQgdGhlIGluc2VydCBidWZmZXIgd2lsbCBiZQorIyB1c2VkIGZvciBtb2RpZnlpbmcgdGhlIHNl Y29uZGFyeSBpbmRleCBwYWdlLiBUaGVyZSBtdXN0IGJlIG11bHRpcGxlCisjIGluZGV4IHBhZ2Vz LCBiZWNhdXNlIGNoYW5nZXMgdG8gdGhlIHJvb3QgcGFnZSBhcmUgbmV2ZXIgYnVmZmVyZWQuCisK K0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJU IElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBi dWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2Njgw IFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNU IDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMg RlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1 ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7 CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VS VCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8g YnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CisKK0JFR0lOOworU0VMRUNUIGIg RlJPTSBidWc1NjY4MCBMSU1JVCAyOworCitjb25uZWN0IChjb24xLGxvY2FsaG9zdCxyb290LCwp OworY29ubmVjdGlvbiBjb24xOworQkVHSU47CitERUxFVEUgRlJPTSBidWc1NjY4MCBXSEVSRSBh PTE7CisjIFRoaXMgc2hvdWxkIGJlIGJ1ZmZlcmVkLCBpZiBpbm5vZGJfY2hhbmdlX2J1ZmZlcmlu Z19kZWJ1ZyA9IDEgaXMgaW4gZWZmZWN0LgorSU5TRVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDEs J1gnLDEpOworCisjIFRoaXMgc2hvdWxkIGZvcmNlIGFuIGluc2VydCBidWZmZXIgbWVyZ2UsIGFu ZCByZXR1cm4gJ1gnIGluIHRoZSBmaXJzdCByb3cuCitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJ TUlUIDM7CisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElN SVQgMjsKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwOworCitjb25uZWN0aW9uIGNvbjE7CitST0xMQkFD SzsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKK0NIRUNLIFRBQkxFIGJ1ZzU2Njgw OworCitjb25uZWN0aW9uIGRlZmF1bHQ7CitkaXNjb25uZWN0IGNvbjE7CisKK1NFTEVDVCBiIEZS T00gYnVnNTY2ODAgTElNSVQgMjsKKworQ1JFQVRFIFRBQkxFIGJ1ZzU2NjgwXzIoCisgICAgICAg YSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCisgICAgICAgYiBWQVJDSEFSKDIpIENI QVJTRVQgbGF0aW4xIENPTExBVEUgbGF0aW4xX2dlcm1hbjJfY2ksCisgICAgICAgYyBJTlQsCisg ICAgICAgSU5ERVgoYikpCitFTkdJTkU9SW5ub0RCOworCitJTlNFUlQgSU5UTyBidWc1NjY4MF8y IFNFTEVDVCAwLF9sYXRpbjEgMHhkZixjIEZST00gYnVnNTY2ODA7CisKK0JFR0lOOworU0VMRUNU IEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMjsKK0RFTEVURSBGUk9NIGJ1ZzU2NjgwXzIg V0hFUkUgYT0xOworIyBUaGlzIHNob3VsZCBiZSBidWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9i dWZmZXJpbmdfZGVidWcgPSAxIGlzIGluIGVmZmVjdC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwXzIg VkFMVUVTKDEsJ1NTJywxKTsKKworIyBUaGlzIHNob3VsZCBmb3JjZSBhbiBpbnNlcnQgYnVmZmVy IG1lcmdlLCBhbmQgcmV0dXJuICdTUycgaW4gdGhlIGZpcnN0IHJvdy4KK1NFTEVDVCBIRVgoYikg RlJPTSBidWc1NjY4MF8yIExJTUlUIDM7CitDSEVDSyBUQUJMRSBidWc1NjY4MF8yOworCisjIFRl c3QgdGhpcyB3aXRoIGNvbXByZXNzZWQgdGFibGVzLgorQUxURVIgVEFCTEUgYnVnNTY2ODBfMiBS T1dfRk9STUFUPUNPTVBSRVNTRUQgS0VZX0JMT0NLX1NJWkU9MTsKKworU0VMRUNUIEhFWChiKSBG Uk9NIGJ1ZzU2NjgwXzIgTElNSVQgMjsKK0RFTEVURSBGUk9NIGJ1ZzU2NjgwXzIgV0hFUkUgYT0x OworIyBUaGlzIHNob3VsZCBiZSBidWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdf ZGVidWcgPSAxIGlzIGluIGVmZmVjdC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwXzIgVkFMVUVTKDEs X2xhdGluMSAweGRmLDEpOworCisjIFRoaXMgc2hvdWxkIGZvcmNlIGFuIGluc2VydCBidWZmZXIg bWVyZ2UsIGFuZCByZXR1cm4gMHhkZiBpbiB0aGUgZmlyc3Qgcm93LgorU0VMRUNUIEhFWChiKSBG Uk9NIGJ1ZzU2NjgwXzIgTElNSVQgMzsKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwXzI7CisKK0RST1Ag VEFCTEUgYnVnNTY2ODBfMjsKK0RST1AgVEFCTEUgYnVnNTY2ODA7CisKKy0tIGRpc2FibGVfcXVl cnlfbG9nCitTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbiA9IEB0eF9pc29sYXRpb25fb3JpZzsKK1NF VCBHTE9CQUwgaW5ub2RiX2ZpbGVfcGVyX3RhYmxlID0gQGlubm9kYl9maWxlX3Blcl90YWJsZV9v cmlnOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQgPSBAaW5ub2RiX2ZpbGVfZm9ybWF0 X29yaWc7CitTRVQgR0xPQkFMIGlubm9kYl9maWxlX2Zvcm1hdF9jaGVjayA9IEBpbm5vZGJfZmls ZV9mb3JtYXRfY2hlY2tfb3JpZzsKKy0tIGVycm9yIDAsIEVSX1VOS05PV05fU1lTVEVNX1ZBUklB QkxFCitTRVQgR0xPQkFMIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gQGlubm9kYl9j aGFuZ2VfYnVmZmVyaW5nX2RlYnVnX29yaWc7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9p bm5vZGJfcGx1Z2luL0NoYW5nZUxvZycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL0NoYW5n ZUxvZwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMz ZXF0aHMzZTN1CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9DaGFuZ2VMb2cJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNjA0MTUtYmozdTZld2swMjJtazRucgpAQCAt MSwzICsxLDEzIEBACisyMDEwLTEwLTE5CVRoZSBJbm5vREIgVGVhbQorCisJKiBidHIvYnRyMGN1 ci5jLCBidWYvYnVmMGJ1Zi5jLCBidWYvYnVmMGZsdS5jLCBoYW5kbGVyL2hhX2lubm9kYi5jYywK KwlpYnVmL2lidWYwaWJ1Zi5jLCBpbmNsdWRlL2J0cjBjdXIuaCwgaW5jbHVkZS9idWYwZmx1Lmgs CisJaW5jbHVkZS9pYnVmMGlidWYuaCwgaW5jbHVkZS9yb3cwbXlzcWwuaCwKKwlyb3cvcm93MG15 c3FsLmMsIHJvdy9yb3cwc2VsLmMsCisJaW5ub2RiX2J1ZzU2NjgwLnRlc3QsIGlubm9kYl9idWc1 NjY4MC5yZXN1bHQ6CisJRml4IEJ1ZyAjNTY2ODAgSW5ub0RCIG1heSByZXR1cm4gd3JvbmcgcmVz dWx0cyBmcm9tIGEKKwljYXNlLWluc2Vuc2l0aXZlIGNvdmVyaW5nIGluZGV4CisKIDIwMTAtMTAt MTgJVGhlIElubm9EQiBUZWFtCiAKIAkqIGhhbmRsZXIvaGFfaW5ub2RiLmNjLCBoYW5kbGVyL2hh X2lubm9kYi5oLCBpbm5vZGJfYnVnNTcyNTIucmVzdWx0LAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvaW5ub2RiX3BsdWdpbi9idHIvYnRyMGN1ci5jJwotLS0gYS9zdG9yYWdlL2lubm9kYl9w bHVnaW4vYnRyL2J0cjBjdXIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAx OTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9idHIv YnRyMGN1ci5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJq M3U2ZXdrMDIybWs0bnIKQEAgLTE2MjYsNyArMTYyNiw3IEBAIGZ1bmNfZXhpdDoKIFNlZSBpZiB0 aGVyZSBpcyBlbm91Z2ggcGxhY2UgaW4gdGhlIHBhZ2UgbW9kaWZpY2F0aW9uIGxvZyB0byBsb2cK IGFuIHVwZGF0ZS1pbi1wbGFjZS4KIEByZXR1cm4JVFJVRSBpZiBlbm91Z2ggcGxhY2UgKi8KLXN0 YXRpYworVU5JVl9JTlRFUk4KIGlib29sCiBidHJfY3VyX3VwZGF0ZV9hbGxvY196aXAoCiAvKj09 PT09PT09PT09PT09PT09PT09PSovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vZGJf cGx1Z2luL2J1Zi9idWYwYnVmLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9idWYvYnVm MGJ1Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDU1ODUzLWFuYjcw YzNlcXRoczNlM3UKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2J1Zi9idWYwYnVmLmMJcmV2 aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNjA0MTUtYmozdTZld2swMjJtazRu cgpAQCAtMjI4Niw2ICsyMjg2LDMwIEBAIHdhaXRfdW50aWxfdW5maXhlZDoKIAlieXRlcy4gKi8K IAlVTklWX01FTV9BU1NFUlRfUlcoJmJsb2NrLT5wYWdlLCBzaXplb2YgYmxvY2stPnBhZ2UpOwog I2VuZGlmCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVH CisJaWYgKG1vZGUgPT0gQlVGX0dFVF9JRl9JTl9QT09MICYmIGlidWZfZGVidWcpIHsKKwkJLyog VHJ5IHRvIGV2aWN0IHRoZSBibG9jayBmcm9tIHRoZSBidWZmZXIgcG9vbCwgdG8gdXNlIHRoZQor CQlpbnNlcnQgYnVmZmVyIGFzIG11Y2ggYXMgcG9zc2libGUuICovCisKKwkJaWYgKGJ1Zl9MUlVf ZnJlZV9ibG9jaygmYmxvY2stPnBhZ2UsIFRSVUUsIE5VTEwpCisJCSAgICA9PSBCVUZfTFJVX0ZS RUVEKSB7CisJCQlidWZfcG9vbF9tdXRleF9leGl0KCk7CisJCQltdXRleF9leGl0KCZibG9jay0+ bXV0ZXgpOworCQkJZnByaW50ZihzdGRlcnIsCisJCQkJImlubm9kYl9jaGFuZ2VfYnVmZmVyaW5n X2RlYnVnIGV2aWN0ICV1ICV1XG4iLAorCQkJCSh1bnNpZ25lZCkgc3BhY2UsICh1bnNpZ25lZCkg b2Zmc2V0KTsKKwkJCXJldHVybihOVUxMKTsKKwkJfSBlbHNlIGlmIChidWZfZmx1c2hfcGFnZV90 cnkoYmxvY2spKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiaW5ub2RiX2NoYW5nZV9idWZm ZXJpbmdfZGVidWcgZmx1c2ggJXUgJXVcbiIsCisJCQkJKHVuc2lnbmVkKSBzcGFjZSwgKHVuc2ln bmVkKSBvZmZzZXQpOworCQkJZ3Vlc3MgPSBibG9jazsKKwkJCWdvdG8gbG9vcDsKKwkJfQorCisJ CS8qIEZhaWxlZCB0byBldmljdCB0aGUgcGFnZTsgY2hhbmdlIGl0IGRpcmVjdGx5ICovCisJfQor I2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCiAKIAlidWZfYmxvY2tf YnVmX2ZpeF9pbmMoYmxvY2ssIGZpbGUsIGxpbmUpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Rv cmFnZS9pbm5vZGJfcGx1Z2luL2J1Zi9idWYwZmx1LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3Bs dWdpbi9idWYvYnVmMGZsdS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2J1Zi9i dWYwZmx1LmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNjA0MTUtYmoz dTZld2swMjJtazRucgpAQCAtMTAzOSw2ICsxMDM5LDgyIEBAIGJ1Zl9mbHVzaF93cml0ZV9ibG9j a19sb3coCiAJfQogfQogCisjIGlmIGRlZmluZWQgVU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZf SUJVRl9ERUJVRworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorV3JpdGVzIGEgZmx1c2hhYmxlIHBhZ2UgYXN5 bmNocm9ub3VzbHkgZnJvbSB0aGUgYnVmZmVyIHBvb2wgdG8gYSBmaWxlLgorTk9URTogYnVmX3Bv b2xfbXV0ZXggYW5kIGJsb2NrLT5tdXRleCBtdXN0IGJlIGhlbGQgdXBvbiBlbnRlcmluZyB0aGlz CitmdW5jdGlvbiwgYW5kIHRoZXkgd2lsbCBiZSByZWxlYXNlZCBieSB0aGlzIGZ1bmN0aW9uIGFm dGVyIGZsdXNoaW5nLgorVGhpcyBpcyBsb29zZWx5IGJhc2VkIG9uIGJ1Zl9mbHVzaF9iYXRjaCgp IGFuZCBidWZfZmx1c2hfcGFnZSgpLgorQHJldHVybiBUUlVFIGlmIHRoZSBwYWdlIHdhcyBmbHVz aGVkIGFuZCB0aGUgbXV0ZXhlcyByZWxlYXNlZCAqLworVU5JVl9JTlRFUk4KK2lib29sCitidWZf Zmx1c2hfcGFnZV90cnkoCisvKj09PT09PT09PT09PT09PSovCisJYnVmX2Jsb2NrX3QqCWJsb2Nr KQkJLyohPCBpbi9vdXQ6IGJ1ZmZlciBjb250cm9sIGJsb2NrICovCit7CisJdXRfYWQoYnVmX3Bv b2xfbXV0ZXhfb3duKCkpOworCXV0X2FkKGJ1Zl9ibG9ja19nZXRfc3RhdGUoYmxvY2spID09IEJV Rl9CTE9DS19GSUxFX1BBR0UpOworCXV0X2FkKG11dGV4X293bigmYmxvY2stPm11dGV4KSk7CisK KwlpZiAoIWJ1Zl9mbHVzaF9yZWFkeV9mb3JfZmx1c2goJmJsb2NrLT5wYWdlLCBCVUZfRkxVU0hf TFJVKSkgeworCQlyZXR1cm4oRkFMU0UpOworCX0KKworCWlmIChidWZfcG9vbC0+bl9mbHVzaFtC VUZfRkxVU0hfTFJVXSA+IDAKKwkgICAgfHwgYnVmX3Bvb2wtPmluaXRfZmx1c2hbQlVGX0ZMVVNI X0xSVV0pIHsKKwkJLyogVGhlcmUgaXMgYWxyZWFkeSBhIGZsdXNoIGJhdGNoIG9mIHRoZSBzYW1l IHR5cGUgcnVubmluZyAqLworCQlyZXR1cm4oRkFMU0UpOworCX0KKworCWJ1Zl9wb29sLT5pbml0 X2ZsdXNoW0JVRl9GTFVTSF9MUlVdID0gVFJVRTsKKworCWJ1Zl9wYWdlX3NldF9pb19maXgoJmJs b2NrLT5wYWdlLCBCVUZfSU9fV1JJVEUpOworCisJYnVmX3BhZ2Vfc2V0X2ZsdXNoX3R5cGUoJmJs b2NrLT5wYWdlLCBCVUZfRkxVU0hfTFJVKTsKKworCWlmIChidWZfcG9vbC0+bl9mbHVzaFtCVUZf RkxVU0hfTFJVXSsrID09IDApIHsKKworCQlvc19ldmVudF9yZXNldChidWZfcG9vbC0+bm9fZmx1 c2hbQlVGX0ZMVVNIX0xSVV0pOworCX0KKworCS8qIFZFUlkgSU1QT1JUQU5UOgorCUJlY2F1c2Ug YW55IHRocmVhZCBtYXkgY2FsbCB0aGUgTFJVIGZsdXNoLCBldmVuIHdoZW4gb3duaW5nCisJbG9j a3Mgb24gcGFnZXMsIHRvIGF2b2lkIGRlYWRsb2Nrcywgd2UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0 aGUKKwlzLWxvY2sgaXMgYWNxdWlyZWQgb24gdGhlIHBhZ2Ugd2l0aG91dCB3YWl0aW5nOiB0aGlz IGlzCisJYWNjb21wbGlzaGVkIGJlY2F1c2UgYnVmX2ZsdXNoX3JlYWR5X2Zvcl9mbHVzaCgpIG11 c3QgaG9sZCwKKwlhbmQgdGhhdCByZXF1aXJlcyB0aGUgcGFnZSBub3QgdG8gYmUgYnVmZmVyZml4 ZWQuICovCisKKwlyd19sb2NrX3NfbG9ja19nZW4oJmJsb2NrLT5sb2NrLCBCVUZfSU9fV1JJVEUp OworCisJLyogTm90ZSB0aGF0IHRoZSBzLWxhdGNoIGlzIGFjcXVpcmVkIGJlZm9yZSByZWxlYXNp bmcgdGhlCisJYnVmX3Bvb2wgbXV0ZXg6IHRoaXMgZW5zdXJlcyB0aGF0IHRoZSBsYXRjaCBpcyBh Y3F1aXJlZAorCWltbWVkaWF0ZWx5LiAqLworCisJbXV0ZXhfZXhpdCgmYmxvY2stPm11dGV4KTsK KwlidWZfcG9vbF9tdXRleF9leGl0KCk7CisKKwkvKiBFdmVuIHRob3VnaCBibG9jayBpcyBub3Qg cHJvdGVjdGVkIGJ5IGFueSBtdXRleCBhdCB0aGlzCisJcG9pbnQsIGl0IGlzIHNhZmUgdG8gYWNj ZXNzIGJsb2NrLCBiZWNhdXNlIGl0IGlzIGlvX2ZpeGVkIGFuZAorCW9sZGVzdF9tb2RpZmljYXRp b24gIT0gMC4gIFRodXMsIGl0IGNhbm5vdCBiZSByZWxvY2F0ZWQgaW4gdGhlCisJYnVmZmVyIHBv b2wgb3IgcmVtb3ZlZCBmcm9tIGZsdXNoX2xpc3Qgb3IgTFJVX2xpc3QuICovCisKKwlidWZfZmx1 c2hfd3JpdGVfYmxvY2tfbG93KCZibG9jay0+cGFnZSk7CisKKwlidWZfcG9vbF9tdXRleF9lbnRl cigpOworCWJ1Zl9wb29sLT5pbml0X2ZsdXNoW0JVRl9GTFVTSF9MUlVdID0gRkFMU0U7CisKKwlp ZiAoYnVmX3Bvb2wtPm5fZmx1c2hbQlVGX0ZMVVNIX0xSVV0gPT0gMCkgeworCQkvKiBUaGUgcnVu bmluZyBmbHVzaCBiYXRjaCBoYXMgZW5kZWQgKi8KKwkJb3NfZXZlbnRfc2V0KGJ1Zl9wb29sLT5u b19mbHVzaFtCVUZfRkxVU0hfTFJVXSk7CisJfQorCisJYnVmX3Bvb2xfbXV0ZXhfZXhpdCgpOwor CWJ1Zl9mbHVzaF9idWZmZXJlZF93cml0ZXMoKTsKKworCXJldHVybihUUlVFKTsKK30KKyMgZW5k aWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KKwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogV3JpdGVzIGEgZmx1c2hhYmxlIHBhZ2UgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgYnVmZmVy IHBvb2wgdG8gYSBmaWxlLgogTk9URTogaW4gc2ltdWxhdGVkIGFpbyB3ZSBtdXN0IGNhbGwKCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaGFuZGxlci9oYV9pbm5vZGIu Y2MnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1 CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MDQxNS1iajN1NmV3azAyMm1rNG5yCkBA IC00NDMyLDE3ICs0NDMyLDE4IEBAIGluY2x1ZGVfZmllbGQ6CiAJCW5fcmVxdWVzdGVkX2ZpZWxk cysrOwogCiAJCXRlbXBsLT5jb2xfbm8gPSBpOworCQl0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25v ID0gZGljdF9jb2xfZ2V0X2NsdXN0X3BvcygKKwkJCSZpbmRleC0+dGFibGUtPmNvbHNbaV0sIGNs dXN0X2luZGV4KTsKKwkJdXRfYWQodGVtcGwtPmNsdXN0X3JlY19maWVsZF9ubyAhPSBVTElOVF9V TkRFRklORUQpOwogCiAJCWlmIChpbmRleCA9PSBjbHVzdF9pbmRleCkgewotCQkJdGVtcGwtPnJl Y19maWVsZF9ubyA9IGRpY3RfY29sX2dldF9jbHVzdF9wb3MoCi0JCQkJJmluZGV4LT50YWJsZS0+ Y29sc1tpXSwgaW5kZXgpOworCQkJdGVtcGwtPnJlY19maWVsZF9ubyA9IHRlbXBsLT5jbHVzdF9y ZWNfZmllbGRfbm87CiAJCX0gZWxzZSB7CiAJCQl0ZW1wbC0+cmVjX2ZpZWxkX25vID0gZGljdF9p bmRleF9nZXRfbnRoX2NvbF9wb3MoCiAJCQkJCQkJCWluZGV4LCBpKTsKLQkJfQotCi0JCWlmICh0 ZW1wbC0+cmVjX2ZpZWxkX25vID09IFVMSU5UX1VOREVGSU5FRCkgewotCQkJcHJlYnVpbHQtPm5l ZWRfdG9fYWNjZXNzX2NsdXN0ZXJlZCA9IFRSVUU7CisJCQlpZiAodGVtcGwtPnJlY19maWVsZF9u byA9PSBVTElOVF9VTkRFRklORUQpIHsKKwkJCQlwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1 c3RlcmVkID0gVFJVRTsKKwkJCX0KIAkJfQogCiAJCWlmIChmaWVsZC0+bnVsbF9wdHIpIHsKQEAg LTQ0OTQsOSArNDQ5NSw3IEBAIHNraXBfZmllbGQ6CiAJCWZvciAoaSA9IDA7IGkgPCBuX3JlcXVl c3RlZF9maWVsZHM7IGkrKykgewogCQkJdGVtcGwgPSBwcmVidWlsdC0+bXlzcWxfdGVtcGxhdGUg KyBpOwogCi0JCQl0ZW1wbC0+cmVjX2ZpZWxkX25vID0gZGljdF9jb2xfZ2V0X2NsdXN0X3BvcygK LQkJCQkmaW5kZXgtPnRhYmxlLT5jb2xzW3RlbXBsLT5jb2xfbm9dLAotCQkJCWNsdXN0X2luZGV4 KTsKKwkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSB0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25vOwog CQl9CiAJfQogfQpAQCAtMTA5NDUsNiArMTA5NDQsMTMgQEAgc3RhdGljIE1ZU1FMX1NZU1ZBUl9T VFIoY2hhbmdlX2J1ZmZlcmluZwogICBpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ192YWxpZGF0ZSwK ICAgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfdXBkYXRlLCAiaW5zZXJ0cyIpOyAKIAorI2lmIGRl ZmluZWQgVU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJVRworc3RhdGljIE1ZU1FM X1NZU1ZBUl9VSU5UKGNoYW5nZV9idWZmZXJpbmdfZGVidWcsIGlidWZfZGVidWcsCisgIFBMVUdJ Tl9WQVJfUlFDTURBUkcsCisgICJEZWJ1ZyBmbGFncyBmb3IgSW5ub0RCIGNoYW5nZSBidWZmZXJp bmcgKDA9bm9uZSkiLAorICBOVUxMLCBOVUxMLCAwLCAwLCAxLCAwKTsKKyNlbmRpZiAvKiBVTklW X0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVRyAqLworCiBzdGF0aWMgTVlTUUxfU1lTVkFSX1VMT05H KHJlYWRfYWhlYWRfdGhyZXNob2xkLCBzcnZfcmVhZF9haGVhZF90aHJlc2hvbGQsCiAgIFBMVUdJ Tl9WQVJfUlFDTURBUkcsCiAgICJOdW1iZXIgb2YgcGFnZXMgdGhhdCBtdXN0IGJlIGFjY2Vzc2Vk IHNlcXVlbnRpYWxseSBmb3IgSW5ub0RCIHRvICIKQEAgLTExMDA1LDYgKzExMDExLDkgQEAgc3Rh dGljIHN0cnVjdCBzdF9teXNxbF9zeXNfdmFyKiBpbm5vYmFzZQogICBNWVNRTF9TWVNWQVIodmVy c2lvbiksCiAgIE1ZU1FMX1NZU1ZBUih1c2Vfc3lzX21hbGxvYyksCiAgIE1ZU1FMX1NZU1ZBUihj aGFuZ2VfYnVmZmVyaW5nKSwKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklW X0lCVUZfREVCVUcKKyAgTVlTUUxfU1lTVkFSKGNoYW5nZV9idWZmZXJpbmdfZGVidWcpLAorI2Vu ZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCiAgIE1ZU1FMX1NZU1ZBUihy ZWFkX2FoZWFkX3RocmVzaG9sZCksCiAgIE1ZU1FMX1NZU1ZBUihpb19jYXBhY2l0eSksCiAgIE5V TEwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaWJ1Zi9pYnVmMGli dWYuYycKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2lidWYvaWJ1ZjBpYnVmLmMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNTU4NTMtYW5iNzBjM2VxdGhzM2UzdQor KysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MDQxNS1iajN1NmV3azAyMm1rNG5yCkBAIC00OSw2 ICs0OSw3IEBAIENyZWF0ZWQgNy8xOS8xOTk3IEhlaWtraSBUdXVyaQogI2luY2x1ZGUgImJ0cjBj dXIuaCIKICNpbmNsdWRlICJidHIwcGN1ci5oIgogI2luY2x1ZGUgImJ0cjBidHIuaCIKKyNpbmNs dWRlICJyb3cwdXBkLmgiCiAjaW5jbHVkZSAic3luYzBzeW5jLmgiCiAjaW5jbHVkZSAiZGljdDBi b290LmgiCiAjaW5jbHVkZSAiZnV0MGxzdC5oIgpAQCAtMTcwLDYgKzE3MSwxMSBAQCBhY2Nlc3Mg b3JkZXIgcnVsZXMuICovCiAvKiogT3BlcmF0aW9ucyB0aGF0IGNhbiBjdXJyZW50bHkgYmUgYnVm ZmVyZWQuICovCiBVTklWX0lOVEVSTiBpYnVmX3VzZV90CWlidWZfdXNlCQk9IElCVUZfVVNFX0lO U0VSVDsKIAorI2lmIGRlZmluZWQgVU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJV RworLyoqIEZsYWcgdG8gY29udHJvbCBpbnNlcnQgYnVmZmVyIGRlYnVnZ2luZy4gKi8KK1VOSVZf SU5URVJOIHVpbnQJaWJ1Zl9kZWJ1ZzsKKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJV Rl9ERUJVRyAqLworCiAvKiogVGhlIGluc2VydCBidWZmZXIgY29udHJvbCBzdHJ1Y3R1cmUgKi8K IFVOSVZfSU5URVJOIGlidWZfdCoJaWJ1ZgkJCT0gTlVMTDsKIApAQCAtMjg4MSw5ICsyODg3LDgw IEBAIER1cmluZyBtZXJnZSwgaW5zZXJ0cyB0byBhbiBpbmRleCBwYWdlIGEKIGZyb20gdGhlIGlu c2VydCBidWZmZXIuICovCiBzdGF0aWMKIHZvaWQKK2lidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2Vf bG93KAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSovCisJY29uc3QgZHR1cGxlX3QqCWVu dHJ5LAkvKiE8IGluOiBidWZmZXJlZCBlbnRyeSB0byBpbnNlcnQgKi8KKwlidWZfYmxvY2tfdCoJ YmxvY2ssCS8qITwgaW4vb3V0OiBpbmRleCBwYWdlIHdoZXJlIHRoZSBidWZmZXJlZAorCQkJCWVu dHJ5IHNob3VsZCBiZSBwbGFjZWQgKi8KKwlkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiBy ZWNvcmQgZGVzY3JpcHRvciAqLworCW10cl90KgkJbXRyLAkvKiE8IGluL291dDogbXRyICovCisJ cGFnZV9jdXJfdCoJcGFnZV9jdXIpLyohPCBpbi9vdXQ6IGN1cnNvciBwb3NpdGlvbmVkIG9uIHRo ZSByZWNvcmQKKwkJCQlhZnRlciB3aGljaCB0byBpbnNlcnQgdGhlIGJ1ZmZlcmVkIGVudHJ5ICov Cit7CisJY29uc3QgcGFnZV90KglwYWdlOworCXVsaW50CQlzcGFjZTsKKwl1bGludAkJcGFnZV9u bzsKKwl1bGludAkJemlwX3NpemU7CisJY29uc3QgcGFnZV90KgliaXRtYXBfcGFnZTsKKwl1bGlu dAkJb2xkX2JpdHM7CisKKwlpZiAoVU5JVl9MSUtFTFkKKwkgICAgKHBhZ2VfY3VyX3R1cGxlX2lu c2VydChwYWdlX2N1ciwgZW50cnksIGluZGV4LCAwLCBtdHIpICE9IE5VTEwpKSB7CisJCXJldHVy bjsKKwl9CisKKwkvKiBJZiB0aGUgcmVjb3JkIGRpZCBub3QgZml0LCByZW9yZ2FuaXplICovCisK KwlidHJfcGFnZV9yZW9yZ2FuaXplKGJsb2NrLCBpbmRleCwgbXRyKTsKKwlwYWdlX2N1cl9zZWFy Y2goYmxvY2ssIGluZGV4LCBlbnRyeSwgUEFHRV9DVVJfTEUsIHBhZ2VfY3VyKTsKKworCS8qIFRo aXMgdGltZSB0aGUgcmVjb3JkIG11c3QgZml0ICovCisKKwlpZiAoVU5JVl9MSUtFTFkKKwkgICAg KHBhZ2VfY3VyX3R1cGxlX2luc2VydChwYWdlX2N1ciwgZW50cnksIGluZGV4LCAwLCBtdHIpICE9 IE5VTEwpKSB7CisJCXJldHVybjsKKwl9CisKKwlwYWdlID0gYnVmX2Jsb2NrX2dldF9mcmFtZShi bG9jayk7CisKKwl1dF9wcmludF90aW1lc3RhbXAoc3RkZXJyKTsKKworCWZwcmludGYoc3RkZXJy LAorCQkiICBJbm5vREI6IEVycm9yOiBJbnNlcnQgYnVmZmVyIGluc2VydCBmYWlsczsiCisJCSIg cGFnZSBmcmVlICVsdSwgZHR1cGxlIHNpemUgJWx1XG4iLAorCQkodWxvbmcpIHBhZ2VfZ2V0X21h eF9pbnNlcnRfc2l6ZShwYWdlLCAxKSwKKwkJKHVsb25nKSByZWNfZ2V0X2NvbnZlcnRlZF9zaXpl KGluZGV4LCBlbnRyeSwgMCkpOworCWZwdXRzKCJJbm5vREI6IENhbm5vdCBpbnNlcnQgaW5kZXgg cmVjb3JkICIsIHN0ZGVycik7CisJZHR1cGxlX3ByaW50KHN0ZGVyciwgZW50cnkpOworCWZwdXRz KCJcbklubm9EQjogVGhlIHRhYmxlIHdoZXJlIHRoaXMgaW5kZXggcmVjb3JkIGJlbG9uZ3NcbiIK KwkgICAgICAiSW5ub0RCOiBpcyBub3cgcHJvYmFibHkgY29ycnVwdC4gUGxlYXNlIHJ1biBDSEVD SyBUQUJMRSBvblxuIgorCSAgICAgICJJbm5vREI6IHRoYXQgdGFibGUuXG4iLCBzdGRlcnIpOwor CisJc3BhY2UgPSBwYWdlX2dldF9zcGFjZV9pZChwYWdlKTsKKwl6aXBfc2l6ZSA9IGJ1Zl9ibG9j a19nZXRfemlwX3NpemUoYmxvY2spOworCXBhZ2Vfbm8gPSBwYWdlX2dldF9wYWdlX25vKHBhZ2Up OworCisJYml0bWFwX3BhZ2UgPSBpYnVmX2JpdG1hcF9nZXRfbWFwX3BhZ2Uoc3BhY2UsIHBhZ2Vf bm8sIHppcF9zaXplLCBtdHIpOworCW9sZF9iaXRzID0gaWJ1Zl9iaXRtYXBfcGFnZV9nZXRfYml0 cyhiaXRtYXBfcGFnZSwgcGFnZV9ubywgemlwX3NpemUsCisJCQkJCSAgICAgSUJVRl9CSVRNQVBf RlJFRSwgbXRyKTsKKworCWZwcmludGYoc3RkZXJyLAorCQkiSW5ub0RCOiBzcGFjZSAlbHUsIHBh Z2UgJWx1LCB6aXBfc2l6ZSAlbHUsIGJpdG1hcCBiaXRzICVsdVxuIiwKKwkJKHVsb25nKSBzcGFj ZSwgKHVsb25nKSBwYWdlX25vLAorCQkodWxvbmcpIHppcF9zaXplLCAodWxvbmcpIG9sZF9iaXRz KTsKKworCWZwdXRzKCJJbm5vREI6IFN1Ym1pdCBhIGRldGFpbGVkIGJ1ZyByZXBvcnQiCisJICAg ICAgIiB0byBodHRwOi8vYnVncy5teXNxbC5jb21cbiIsIHN0ZGVycik7Cit9CisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKK0R1cmluZyBtZXJnZSwgaW5zZXJ0cyB0byBhbiBpbmRleCBwYWdlIGEgc2Vjb25k YXJ5IGluZGV4IGVudHJ5IGV4dHJhY3RlZAorZnJvbSB0aGUgaW5zZXJ0IGJ1ZmZlci4gKi8KK3N0 YXRpYwordm9pZAogaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZSgKIC8qPT09PT09PT09PT09PT09 PT09PT09PSovCi0JZHR1cGxlX3QqCWVudHJ5LAkvKiE8IGluOiBidWZmZXJlZCBlbnRyeSB0byBp bnNlcnQgKi8KKwljb25zdCBkdHVwbGVfdCoJZW50cnksCS8qITwgaW46IGJ1ZmZlcmVkIGVudHJ5 IHRvIGluc2VydCAqLwogCWJ1Zl9ibG9ja190KglibG9jaywJLyohPCBpbi9vdXQ6IGluZGV4IHBh Z2Ugd2hlcmUgdGhlIGJ1ZmZlcmVkIGVudHJ5CiAJCQkJc2hvdWxkIGJlIHBsYWNlZCAqLwogCWRp Y3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IHJlY29yZCBkZXNjcmlwdG9yICovCkBAIC0yODkz LDExICsyOTcwLDEwIEBAIGlidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2UoCiAJdWxpbnQJCWxvd19t YXRjaDsKIAlwYWdlX3QqCQlwYWdlCQk9IGJ1Zl9ibG9ja19nZXRfZnJhbWUoYmxvY2spOwogCXJl Y190KgkJcmVjOwotCXBhZ2VfdCoJCWJpdG1hcF9wYWdlOwotCXVsaW50CQlvbGRfYml0czsKIAog CXV0X2FkKGlidWZfaW5zaWRlKCkpOwogCXV0X2FkKGR0dXBsZV9jaGVja190eXBlZChlbnRyeSkp OworCXV0X2FkKCFidWZfYmxvY2tfYWxpZ24ocGFnZSktPmlzX2hhc2hlZCk7CiAKIAlpZiAoVU5J Vl9VTkxJS0VMWShkaWN0X3RhYmxlX2lzX2NvbXAoaW5kZXgtPnRhYmxlKQogCQkJICAhPSAoaWJv b2wpISFwYWdlX2lzX2NvbXAocGFnZSkpKSB7CkBAIC0yOTM1LDcxICszMDExLDg2IEBAIGR1bXA6 CiAJbG93X21hdGNoID0gcGFnZV9jdXJfc2VhcmNoKGJsb2NrLCBpbmRleCwgZW50cnksCiAJCQkJ ICAgIFBBR0VfQ1VSX0xFLCAmcGFnZV9jdXIpOwogCi0JaWYgKGxvd19tYXRjaCA9PSBkdHVwbGVf Z2V0X25fZmllbGRzKGVudHJ5KSkgeworCWlmIChVTklWX1VOTElLRUxZKGxvd19tYXRjaCA9PSBk dHVwbGVfZ2V0X25fZmllbGRzKGVudHJ5KSkpIHsKKwkJbWVtX2hlYXBfdCoJaGVhcDsKKwkJdXBk X3QqCQl1cGRhdGU7CisJCXVsaW50KgkJb2Zmc2V0czsKIAkJcGFnZV96aXBfZGVzX3QqCXBhZ2Vf emlwOwogCiAJCXJlYyA9IHBhZ2VfY3VyX2dldF9yZWMoJnBhZ2VfY3VyKTsKLQkJcGFnZV96aXAg PSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKIAotCQlidHJfY3VyX2RlbF91bm1hcmtf Zm9yX2lidWYocmVjLCBwYWdlX3ppcCwgbXRyKTsKLQl9IGVsc2UgewotCQlyZWMgPSBwYWdlX2N1 cl90dXBsZV9pbnNlcnQoJnBhZ2VfY3VyLCBlbnRyeSwgaW5kZXgsIDAsIG10cik7CisJCS8qIFRo aXMgaXMgYmFzZWQgb24KKwkJcm93X2luc19zZWNfaW5kZXhfZW50cnlfYnlfbW9kaWZ5KEJUUl9N T0RJRllfTEVBRikuICovCisJCXV0X2FkKHJlY19nZXRfZGVsZXRlZF9mbGFnKHJlYywgcGFnZV9p c19jb21wKHBhZ2UpKSk7CisKKwkJaGVhcCA9IG1lbV9oZWFwX2NyZWF0ZSgxMDI0KTsKKworCQlv ZmZzZXRzID0gcmVjX2dldF9vZmZzZXRzKHJlYywgaW5kZXgsIE5VTEwsIFVMSU5UX1VOREVGSU5F RCwKKwkJCQkJICAmaGVhcCk7CisJCXVwZGF0ZSA9IHJvd191cGRfYnVpbGRfc2VjX3JlY19kaWZm ZXJlbmNlX2JpbmFyeSgKKwkJCWluZGV4LCBlbnRyeSwgcmVjLCBOVUxMLCBoZWFwKTsKKworCQlw YWdlX3ppcCA9IGJ1Zl9ibG9ja19nZXRfcGFnZV96aXAoYmxvY2spOwogCi0JCWlmIChVTklWX0xJ S0VMWShyZWMgIT0gTlVMTCkpIHsKKwkJaWYgKHVwZGF0ZS0+bl9maWVsZHMgPT0gMCkgeworCQkJ LyogVGhlIHJlY29yZHMgb25seSBkaWZmZXIgaW4gdGhlIGRlbGV0ZS1tYXJrLgorCQkJQ2xlYXIg dGhlIGRlbGV0ZS1tYXJrLCBsaWtlIHdlIGRpZCBiZWZvcmUKKwkJCUJ1ZyAjNTY2ODAgd2FzIGZp eGVkLiAqLworCQkJYnRyX2N1cl9kZWxfdW5tYXJrX2Zvcl9pYnVmKHJlYywgcGFnZV96aXAsIG10 cik7Cit1cGRhdGVkX2luX3BsYWNlOgorCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKIAkJCXJldHVy bjsKIAkJfQogCi0JCS8qIElmIHRoZSByZWNvcmQgZGlkIG5vdCBmaXQsIHJlb3JnYW5pemUgKi8K LQotCQlidHJfcGFnZV9yZW9yZ2FuaXplKGJsb2NrLCBpbmRleCwgbXRyKTsKLQkJcGFnZV9jdXJf c2VhcmNoKGJsb2NrLCBpbmRleCwgZW50cnksIFBBR0VfQ1VSX0xFLCAmcGFnZV9jdXIpOwotCi0J CS8qIFRoaXMgdGltZSB0aGUgcmVjb3JkIG11c3QgZml0ICovCi0JCWlmIChVTklWX1VOTElLRUxZ Ci0JCSAgICAoIXBhZ2VfY3VyX3R1cGxlX2luc2VydCgmcGFnZV9jdXIsIGVudHJ5LCBpbmRleCwK LQkJCQkJICAgIDAsIG10cikpKSB7Ci0JCQl1bGludAlzcGFjZTsKLQkJCXVsaW50CXBhZ2Vfbm87 Ci0JCQl1bGludAl6aXBfc2l6ZTsKLQotCQkJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7Ci0K LQkJCWZwcmludGYoc3RkZXJyLAotCQkJCSIgIElubm9EQjogRXJyb3I6IEluc2VydCBidWZmZXIg aW5zZXJ0IgotCQkJCSIgZmFpbHM7IHBhZ2UgZnJlZSAlbHUsIgotCQkJCSIgZHR1cGxlIHNpemUg JWx1XG4iLAotCQkJCSh1bG9uZykgcGFnZV9nZXRfbWF4X2luc2VydF9zaXplKAotCQkJCQlwYWdl LCAxKSwKLQkJCQkodWxvbmcpIHJlY19nZXRfY29udmVydGVkX3NpemUoCi0JCQkJCWluZGV4LCBl bnRyeSwgMCkpOwotCQkJZnB1dHMoIklubm9EQjogQ2Fubm90IGluc2VydCBpbmRleCByZWNvcmQg IiwKLQkJCSAgICAgIHN0ZGVycik7Ci0JCQlkdHVwbGVfcHJpbnQoc3RkZXJyLCBlbnRyeSk7Ci0J CQlmcHV0cygiXG5Jbm5vREI6IFRoZSB0YWJsZSB3aGVyZSIKLQkJCSAgICAgICIgdGhpcyBpbmRl eCByZWNvcmQgYmVsb25nc1xuIgotCQkJICAgICAgIklubm9EQjogaXMgbm93IHByb2JhYmx5IGNv cnJ1cHQuIgotCQkJICAgICAgIiBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uXG4iCi0JCQkgICAg ICAiSW5ub0RCOiB0aGF0IHRhYmxlLlxuIiwgc3RkZXJyKTsKLQotCQkJc3BhY2UgPSBwYWdlX2dl dF9zcGFjZV9pZChwYWdlKTsKLQkJCXppcF9zaXplID0gYnVmX2Jsb2NrX2dldF96aXBfc2l6ZShi bG9jayk7Ci0JCQlwYWdlX25vID0gcGFnZV9nZXRfcGFnZV9ubyhwYWdlKTsKLQotCQkJYml0bWFw X3BhZ2UgPSBpYnVmX2JpdG1hcF9nZXRfbWFwX3BhZ2UoCi0JCQkJc3BhY2UsIHBhZ2Vfbm8sIHpp cF9zaXplLCBtdHIpOwotCQkJb2xkX2JpdHMgPSBpYnVmX2JpdG1hcF9wYWdlX2dldF9iaXRzKAot CQkJCWJpdG1hcF9wYWdlLCBwYWdlX25vLCB6aXBfc2l6ZSwKLQkJCQlJQlVGX0JJVE1BUF9GUkVF LCBtdHIpOwotCi0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkiSW5ub0RCOiBzcGFjZSAlbHUsIHBh Z2UgJWx1LCIKLQkJCQkiIHppcF9zaXplICVsdSwgYml0bWFwIGJpdHMgJWx1XG4iLAotCQkJCSh1 bG9uZykgc3BhY2UsICh1bG9uZykgcGFnZV9ubywKLQkJCQkodWxvbmcpIHppcF9zaXplLCAodWxv bmcpIG9sZF9iaXRzKTsKLQotCQkJZnB1dHMoIklubm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVn IHJlcG9ydCIKLQkJCSAgICAgICIgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tXG4iLCBzdGRlcnIp OwotCQl9CisJCS8qIENvcHkgdGhlIGluZm8gYml0cy4gQ2xlYXIgdGhlIGRlbGV0ZS1tYXJrLiAq LworCQl1cGRhdGUtPmluZm9fYml0cyA9IHJlY19nZXRfaW5mb19iaXRzKHJlYywgcGFnZV9pc19j b21wKHBhZ2UpKTsKKwkJdXBkYXRlLT5pbmZvX2JpdHMgJj0gflJFQ19JTkZPX0RFTEVURURfRkxB RzsKKworCQkvKiBXZSBjYW5ub3QgaW52b2tlIGJ0cl9jdXJfb3B0aW1pc3RpY191cGRhdGUoKSBo ZXJlLAorCQliZWNhdXNlIHdlIGRvIG5vdCBoYXZlIGEgYnRyX2N1cl90IG9yIHF1ZV90aHJfdCwK KwkJYXMgdGhlIGluc2VydCBidWZmZXIgbWVyZ2Ugb2NjdXJzIGF0IGEgdmVyeSBsb3cgbGV2ZWwu ICovCisJCWlmICghcm93X3VwZF9jaGFuZ2VzX2ZpZWxkX3NpemVfb3JfZXh0ZXJuYWwoaW5kZXgs IG9mZnNldHMsCisJCQkJCQkJICAgIHVwZGF0ZSkKKwkJICAgICYmICghcGFnZV96aXAgfHwgYnRy X2N1cl91cGRhdGVfYWxsb2NfemlwKAorCQkJCXBhZ2VfemlwLCBibG9jaywgaW5kZXgsCisJCQkJ cmVjX29mZnNfc2l6ZShvZmZzZXRzKSwgRkFMU0UsIG10cikpKSB7CisJCQkvKiBUaGlzIGlzIHRo ZSBlYXN5IGNhc2UuIERvIHNvbWV0aGluZyBzaW1pbGFyCisJCQl0byBidHJfY3VyX3VwZGF0ZV9p bl9wbGFjZSgpLiAqLworCQkJcm93X3VwZF9yZWNfaW5fcGxhY2UocmVjLCBpbmRleCwgb2Zmc2V0 cywKKwkJCQkJICAgICB1cGRhdGUsIHBhZ2VfemlwKTsKKwkJCWdvdG8gdXBkYXRlZF9pbl9wbGFj ZTsKKwkJfQorCisJCS8qIEEgY29sbGF0aW9uIG1heSBpZGVudGlmeSB2YWx1ZXMgdGhhdCBkaWZm ZXIgaW4KKwkJc3RvcmFnZSBsZW5ndGguCisJCVNvbWUgZXhhbXBsZXMgKDEgb3IgMiBieXRlcyk6 CisJCXV0ZjhfdHVya2lzaF9jaTogSSA9IFUrMDEzMSBMQVRJTiBTTUFMTCBMRVRURVIgRE9UTEVT UyBJCisJCXV0ZjhfZ2VuZXJhbF9jaTogUyA9IFUrMDBERiBMQVRJTiBTTUFMTCBMRVRURVIgU0hB UlAgUworCQl1dGY4X2dlbmVyYWxfY2k6IEEgPSBVKzAwRTQgTEFUSU4gU01BTEwgTEVUVEVSIEEg V0lUSCBESUFFUkVTSVMKKworCQlsYXRpbjFfZ2VybWFuMl9jaTogU1MgPSBVKzAwREYgTEFUSU4g U01BTEwgTEVUVEVSIFNIQVJQIFMKKworCQlFeGFtcGxlcyBvZiBhIGNoYXJhY3RlciAoMy1ieXRl IFVURi04IHNlcXVlbmNlKQorCQlpZGVudGlmaWVkIHdpdGggMiBvciA0IGNoYXJhY3RlcnMgKDEt Ynl0ZSBVVEYtOCBzZXF1ZW5jZXMpOgorCisJCXV0ZjhfdW5pY29kZV9jaTogJ0lJJyA9IFUrMjE3 MSBTTUFMTCBST01BTiBOVU1FUkFMIFRXTworCQl1dGY4X3VuaWNvZGVfY2k6ICcoMTApJyA9IFUr MjQ3RCBQQVJFTlRIRVNJWkVEIE5VTUJFUiBURU4KKwkJKi8KKworCQkvKiBEZWxldGUgdGhlIGRp ZmZlcmVudC1sZW5ndGggcmVjb3JkLCBhbmQgaW5zZXJ0IHRoZQorCQlidWZmZXJlZCBvbmUuICov CisKKwkJbG9ja19yZWNfc3RvcmVfb25fcGFnZV9pbmZpbXVtKGJsb2NrLCByZWMpOworCQlwYWdl X2N1cl9kZWxldGVfcmVjKCZwYWdlX2N1ciwgaW5kZXgsIG9mZnNldHMsIG10cik7CisJCXBhZ2Vf Y3VyX21vdmVfdG9fcHJldigmcGFnZV9jdXIpOworCQltZW1faGVhcF9mcmVlKGhlYXApOworCisJ CWlidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2VfbG93KGVudHJ5LCBibG9jaywgaW5kZXgsIG10ciwK KwkJCQkJICAgICAgJnBhZ2VfY3VyKTsKKwkJbG9ja19yZWNfcmVzdG9yZV9mcm9tX3BhZ2VfaW5m aW11bShibG9jaywgcmVjLCBibG9jayk7CisJfSBlbHNlIHsKKwkJaWJ1Zl9pbnNlcnRfdG9faW5k ZXhfcGFnZV9sb3coZW50cnksIGJsb2NrLCBpbmRleCwgbXRyLAorCQkJCQkgICAgICAmcGFnZV9j dXIpOwogCX0KIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9p bmNsdWRlL2J0cjBjdXIuaCcKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRy MGN1ci5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDU1ODUzLWFuYjcw YzNlcXRoczNlM3UKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnRyMGN1ci5o CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJqM3U2ZXdrMDIy bWs0bnIKQEAgLTI0Miw2ICsyNDIsMjIgQEAgYnRyX2N1cl9wZXNzaW1pc3RpY19pbnNlcnQoCiAJ cXVlX3Rocl90Kgl0aHIsCS8qITwgaW46IHF1ZXJ5IHRocmVhZCBvciBOVUxMICovCiAJbXRyX3Qq CQltdHIpOwkvKiE8IGluOiBtdHIgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorU2VlIGlmIHRoZXJlIGlzIGVub3Vn aCBwbGFjZSBpbiB0aGUgcGFnZSBtb2RpZmljYXRpb24gbG9nIHRvIGxvZworYW4gdXBkYXRlLWlu LXBsYWNlLgorQHJldHVybglUUlVFIGlmIGVub3VnaCBwbGFjZSAqLworVU5JVl9JTlRFUk4KK2li b29sCitidHJfY3VyX3VwZGF0ZV9hbGxvY196aXAoCisvKj09PT09PT09PT09PT09PT09PT09PSov CisJcGFnZV96aXBfZGVzX3QqCXBhZ2VfemlwLC8qITwgaW4vb3V0OiBjb21wcmVzc2VkIHBhZ2Ug Ki8KKwlidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW4vb3V0OiBidWZmZXIgcGFnZSAqLworCWRp Y3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IHRoZSBpbmRleCBjb3JyZXNwb25kaW5nIHRvIHRo ZSBibG9jayAqLworCXVsaW50CQlsZW5ndGgsCS8qITwgaW46IHNpemUgbmVlZGVkICovCisJaWJv b2wJCWNyZWF0ZSwJLyohPCBpbjogVFJVRT1kZWxldGUtYW5kLWluc2VydCwKKwkJCQlGQUxTRT11 cGRhdGUtaW4tcGxhY2UgKi8KKwltdHJfdCoJCW10cikJLyohPCBpbjogbWluaS10cmFuc2FjdGlv biAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovLyoqCiBVcGRhdGVzIGEgcmVjb3JkIHdoZW4gdGhlIHVwZGF0ZSBjYXVzZXMgbm8gc2l6ZSBj aGFuZ2VzIGluIGl0cyBmaWVsZHMuCiBAcmV0dXJuCURCX1NVQ0NFU1Mgb3IgZXJyb3IgbnVtYmVy ICovCiBVTklWX0lOVEVSTgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdp bi9pbmNsdWRlL2J1ZjBmbHUuaCcKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUv YnVmMGZsdS5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDU1ODUzLWFu YjcwYzNlcXRoczNlM3UKKysrIGIvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvYnVmMGZs dS5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJqM3U2ZXdr MDIybWs0bnIKQEAgLTc1LDYgKzc1LDIwIEBAIGJ1Zl9mbHVzaF9pbml0X2Zvcl93cml0aW5nKAog CWliX3VpbnQ2NF90CW5ld2VzdF9sc24pOwkvKiE8IGluOiBuZXdlc3QgbW9kaWZpY2F0aW9uIGxz bgogCQkJCQl0byB0aGUgcGFnZSAqLwogI2lmbmRlZiBVTklWX0hPVEJBQ0tVUAorIyBpZiBkZWZp bmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKK1dyaXRlcyBhIGZsdXNoYWJsZSBwYWdlIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1ZmZl ciBwb29sIHRvIGEgZmlsZS4KK05PVEU6IGJ1Zl9wb29sX211dGV4IGFuZCBibG9jay0+bXV0ZXgg bXVzdCBiZSBoZWxkIHVwb24gZW50ZXJpbmcgdGhpcworZnVuY3Rpb24sIGFuZCB0aGV5IHdpbGwg YmUgcmVsZWFzZWQgYnkgdGhpcyBmdW5jdGlvbiBhZnRlciBmbHVzaGluZy4KK1RoaXMgaXMgbG9v c2VseSBiYXNlZCBvbiBidWZfZmx1c2hfYmF0Y2goKSBhbmQgYnVmX2ZsdXNoX3BhZ2UoKS4KK0By ZXR1cm4gVFJVRSBpZiB0aGUgcGFnZSB3YXMgZmx1c2hlZCBhbmQgdGhlIG11dGV4ZXMgcmVsZWFz ZWQgKi8KK1VOSVZfSU5URVJOCitpYm9vbAorYnVmX2ZsdXNoX3BhZ2VfdHJ5KAorLyo9PT09PT09 PT09PT09PT0qLworCWJ1Zl9ibG9ja190KglibG9jaykJCS8qITwgaW4vb3V0OiBidWZmZXIgY29u dHJvbCBibG9jayAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3Vs dCkpOworIyBlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVRyAqLwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovLyoqCiBUaGlzIHV0aWxpdHkgZmx1c2hlcyBkaXJ0eSBibG9ja3MgZnJvbSB0aGUgZW5k IG9mIHRoZSBMUlUgbGlzdCBvciBmbHVzaF9saXN0LgogTk9URSAxOiBpbiB0aGUgY2FzZSBvZiBh biBMUlUgZmx1c2ggdGhlIGNhbGxpbmcgdGhyZWFkIG1heSBvd24gbGF0Y2hlcyB0bwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL2lidWYwaWJ1Zi5oJwot LS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9pYnVmMGlidWYuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CisrKyBi L3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9pbmNsdWRlL2lidWYwaWJ1Zi5oCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJqM3U2ZXdrMDIybWs0bnIKQEAgLTQ4LDYg KzQ4LDExIEBAIHR5cGVkZWYgZW51bSB7CiAvKiogT3BlcmF0aW9ucyB0aGF0IGNhbiBjdXJyZW50 bHkgYmUgYnVmZmVyZWQuICovCiBleHRlcm4gaWJ1Zl91c2VfdAlpYnVmX3VzZTsKIAorI2lmIGRl ZmluZWQgVU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJVRworLyoqIEZsYWcgdG8g Y29udHJvbCBpbnNlcnQgYnVmZmVyIGRlYnVnZ2luZy4gKi8KK2V4dGVybiB1aW50CQlpYnVmX2Rl YnVnOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCisKIC8qKiBU aGUgaW5zZXJ0IGJ1ZmZlciBjb250cm9sIHN0cnVjdHVyZSAqLwogZXh0ZXJuIGlidWZfdCoJCWli dWY7CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9y b3cwbXlzcWwuaCcKLS0tIGEvc3RvcmFnZS9pbm5vZGJfcGx1Z2luL2luY2x1ZGUvcm93MG15c3Fs LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNTU4NTMtYW5iNzBjM2Vx dGhzM2UzdQorKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwbXlzcWwuaAly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA2MDQxNS1iajN1NmV3azAyMm1r NG5yCkBAIC01MjcsNiArNTI3LDEwIEBAIHN0cnVjdCBteXNxbF9yb3dfdGVtcGxfc3RydWN0IHsK IAkJCQkJSW5ub2Jhc2UgcmVjb3JkIGluIHRoZSBjdXJyZW50IGluZGV4OwogCQkJCQlub3QgZGVm aW5lZCBpZiB0ZW1wbGF0ZV90eXBlIGlzCiAJCQkJCVJPV19NWVNRTF9XSE9MRV9ST1cgKi8KKwl1 bGludAljbHVzdF9yZWNfZmllbGRfbm87CS8qITwgZmllbGQgbnVtYmVyIG9mIHRoZSBjb2x1bW4g aW4gYW4KKwkJCQkJSW5ub2Jhc2UgcmVjb3JkIGluIHRoZSBjbHVzdGVyZWQgaW5kZXg7CisJCQkJ CW5vdCBkZWZpbmVkIGlmIHRlbXBsYXRlX3R5cGUgaXMKKwkJCQkJUk9XX01ZU1FMX1dIT0xFX1JP VyAqLwogCXVsaW50CW15c3FsX2NvbF9vZmZzZXQ7CS8qITwgb2Zmc2V0IG9mIHRoZSBjb2x1bW4g aW4gdGhlIE15U1FMCiAJCQkJCXJvdyBmb3JtYXQgKi8KIAl1bGludAlteXNxbF9jb2xfbGVuOwkJ LyohPCBsZW5ndGggb2YgdGhlIGNvbHVtbiBpbiB0aGUgTXlTUUwKCj09PSBtb2RpZmllZCBmaWxl ICdzdG9yYWdlL2lubm9kYl9wbHVnaW4vaW5jbHVkZS9yb3cwdXBkLmgnCi0tLSBhL3N0b3JhZ2Uv aW5ub2RiX3BsdWdpbi9pbmNsdWRlL3JvdzB1cGQuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CisrKyBiL3N0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9pbmNsdWRlL3JvdzB1cGQuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDEwMTAxOTA2MDQxNS1iajN1NmV3azAyMm1rNG5yCkBAIC0xNjcsOCArMTY3LDExIEBAIHJvd191 cGRfY2hhbmdlc19maWVsZF9zaXplX29yX2V4dGVybmFsKAogCWNvbnN0IHVwZF90Kgl1cGRhdGUp Oy8qITwgaW46IHVwZGF0ZSB2ZWN0b3IgKi8KICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8K IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKLVJlcGxhY2VzIHRoZSBuZXcgY29sdW1uIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHVw ZGF0ZSB2ZWN0b3IgdG8gdGhlIHJlY29yZAotZ2l2ZW4uIE5vIGZpZWxkIHNpemUgY2hhbmdlcyBh cmUgYWxsb3dlZC4gKi8KK1JlcGxhY2VzIHRoZSBuZXcgY29sdW1uIHZhbHVlcyBzdG9yZWQgaW4g dGhlIHVwZGF0ZSB2ZWN0b3IgdG8gdGhlCityZWNvcmQgZ2l2ZW4uIE5vIGZpZWxkIHNpemUgY2hh bmdlcyBhcmUgYWxsb3dlZC4gVGhpcyBmdW5jdGlvbiBpcwordXN1YWxseSBpbnZva2VkIG9uIGEg Y2x1c3RlcmVkIGluZGV4LiBUaGUgb25seSB1c2UgY2FzZSBmb3IgYQorc2Vjb25kYXJ5IGluZGV4 IGlzIHJvd19pbnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlmeSgpIG9yIGl0cworY291bnRlcnBh cnQgaW4gaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZSgpLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQK IHJvd191cGRfcmVjX2luX3BsYWNlKAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Ri X3BsdWdpbi9yb3cvcm93MG15c3FsLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cv cm93MG15c3FsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNTU4NTMt YW5iNzBjM2VxdGhzM2UzdQorKysgYi9zdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBteXNx bC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJqM3U2ZXdr MDIybWs0bnIKQEAgLTQ0NCw3ICs0NDQsNyBAQCByb3dfbXlzcWxfY29udmVydF9yb3dfdG9faW5u b2Jhc2UoCiAJCQkJCXJvdyBpcyB1c2VkLCBhcyByb3cgbWF5IGNvbnRhaW4KIAkJCQkJcG9pbnRl cnMgdG8gdGhpcyByZWNvcmQhICovCiB7Ci0JbXlzcWxfcm93X3RlbXBsX3QqCXRlbXBsOworCWNv bnN0IG15c3FsX3Jvd190ZW1wbF90KnRlbXBsOwogCWRmaWVsZF90KgkJZGZpZWxkOwogCXVsaW50 CQkJaTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93 MHNlbC5jJwotLS0gYS9zdG9yYWdlL2lubm9kYl9wbHVnaW4vcm93L3JvdzBzZWwuYwlyZXZpZDpt YXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1Cisr KyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MHNlbC5jCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1LWJqM3U2ZXdrMDIybWs0bnIKQEAgLTI2NzUsMjEg KzI2NzUsMjIgQEAgcm93X3NlbF9zdG9yZV9teXNxbF9yZWMoCiAJcm93X3ByZWJ1aWx0X3QqCXBy ZWJ1aWx0LAkvKiE8IGluOiBwcmVidWlsdCBzdHJ1Y3QgKi8KIAljb25zdCByZWNfdCoJcmVjLAkJ LyohPCBpbjogSW5ub2Jhc2UgcmVjb3JkIGluIHRoZSBpbmRleAogCQkJCQl3aGljaCB3YXMgZGVz Y3JpYmVkIGluIHByZWJ1aWx0J3MKLQkJCQkJdGVtcGxhdGU7IG11c3QgYmUgcHJvdGVjdGVkIGJ5 Ci0JCQkJCWEgcGFnZSBsYXRjaCAqLworCQkJCQl0ZW1wbGF0ZSwgb3IgaW4gdGhlIGNsdXN0ZXJl ZCBpbmRleDsKKwkJCQkJbXVzdCBiZSBwcm90ZWN0ZWQgYnkgYSBwYWdlIGxhdGNoICovCisJaWJv b2wJCXJlY19jbHVzdCwJLyohPCBpbjogVFJVRSBpZiByZWMgaXMgaW4gdGhlCisJCQkJCWNsdXN0 ZXJlZCBpbmRleCBpbnN0ZWFkIG9mCisJCQkJCXByZWJ1aWx0LT5pbmRleCAqLwogCWNvbnN0IHVs aW50KglvZmZzZXRzKQkvKiE8IGluOiBhcnJheSByZXR1cm5lZCBieQotCQkJCQlyZWNfZ2V0X29m ZnNldHMoKSAqLworCQkJCQlyZWNfZ2V0X29mZnNldHMocmVjKSAqLwogewotCW15c3FsX3Jvd190 ZW1wbF90Kgl0ZW1wbDsKLQltZW1faGVhcF90KgkJZXh0ZXJuX2ZpZWxkX2hlYXAJPSBOVUxMOwot CW1lbV9oZWFwX3QqCQloZWFwOwotCWNvbnN0IGJ5dGUqCQlkYXRhOwotCXVsaW50CQkJbGVuOwot CXVsaW50CQkJaTsKKwltZW1faGVhcF90KglleHRlcm5fZmllbGRfaGVhcAk9IE5VTEw7CisJbWVt X2hlYXBfdCoJaGVhcDsKKwl1bGludAkJaTsKIAogCXV0X2FkKHByZWJ1aWx0LT5teXNxbF90ZW1w bGF0ZSk7CiAJdXRfYWQocHJlYnVpbHQtPmRlZmF1bHRfcmVjKTsKIAl1dF9hZChyZWNfb2Zmc192 YWxpZGF0ZShyZWMsIE5VTEwsIG9mZnNldHMpKTsKKwl1dF9hZCghcmVjX2dldF9kZWxldGVkX2Zs YWcocmVjLCByZWNfb2Zmc19jb21wKG9mZnNldHMpKSk7CiAKIAlpZiAoVU5JVl9MSUtFTFlfTlVM TChwcmVidWlsdC0+YmxvYl9oZWFwKSkgewogCQltZW1faGVhcF9mcmVlKHByZWJ1aWx0LT5ibG9i X2hlYXApOwpAQCAtMjY5OCwxMCArMjY5OSwxNSBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygK IAogCWZvciAoaSA9IDA7IGkgPCBwcmVidWlsdC0+bl90ZW1wbGF0ZTsgaSsrKSB7CiAKLQkJdGVt cGwgPSBwcmVidWlsdC0+bXlzcWxfdGVtcGxhdGUgKyBpOworCQljb25zdCBteXNxbF9yb3dfdGVt cGxfdCp0ZW1wbCA9IHByZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CisJCWNvbnN0IGJ5dGUq CQlkYXRhOworCQl1bGludAkJCWxlbjsKKwkJdWxpbnQJCQlmaWVsZF9ubzsKKworCQlmaWVsZF9u byA9IHJlY19jbHVzdAorCQkJPyB0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25vIDogdGVtcGwtPnJl Y19maWVsZF9ubzsKIAotCQlpZiAoVU5JVl9VTkxJS0VMWShyZWNfb2Zmc19udGhfZXh0ZXJuKG9m ZnNldHMsCi0JCQkJCQkgICAgICB0ZW1wbC0+cmVjX2ZpZWxkX25vKSkpIHsKKwkJaWYgKFVOSVZf VU5MSUtFTFkocmVjX29mZnNfbnRoX2V4dGVybihvZmZzZXRzLCBmaWVsZF9ubykpKSB7CiAKIAkJ CS8qIENvcHkgYW4gZXh0ZXJuYWxseSBzdG9yZWQgZmllbGQgdG8gdGhlIHRlbXBvcmFyeQogCQkJ aGVhcCAqLwpAQCAtMjcyOSw3ICsyNzM1LDcgQEAgcm93X3NlbF9zdG9yZV9teXNxbF9yZWMoCiAJ CQlkYXRhID0gYnRyX3JlY19jb3B5X2V4dGVybmFsbHlfc3RvcmVkX2ZpZWxkKAogCQkJCXJlYywg b2Zmc2V0cywKIAkJCQlkaWN0X3RhYmxlX3ppcF9zaXplKHByZWJ1aWx0LT50YWJsZSksCi0JCQkJ dGVtcGwtPnJlY19maWVsZF9ubywgJmxlbiwgaGVhcCk7CisJCQkJZmllbGRfbm8sICZsZW4sIGhl YXApOwogCiAJCQlpZiAoVU5JVl9VTkxJS0VMWSghZGF0YSkpIHsKIAkJCQkvKiBUaGUgZXh0ZXJu YWxseSBzdG9yZWQgZmllbGQKQEAgLTI3NTAsOCArMjc1Niw3IEBAIHJvd19zZWxfc3RvcmVfbXlz cWxfcmVjKAogCQl9IGVsc2UgewogCQkJLyogRmllbGQgaXMgc3RvcmVkIGluIHRoZSByb3cuICov CiAKLQkJCWRhdGEgPSByZWNfZ2V0X250aF9maWVsZChyZWMsIG9mZnNldHMsCi0JCQkJCQkgdGVt cGwtPnJlY19maWVsZF9ubywgJmxlbik7CisJCQlkYXRhID0gcmVjX2dldF9udGhfZmllbGQocmVj LCBvZmZzZXRzLCBmaWVsZF9ubywgJmxlbik7CiAKIAkJCWlmIChVTklWX1VOTElLRUxZKHRlbXBs LT50eXBlID09IERBVEFfQkxPQikKIAkJCSAgICAmJiBsZW4gIT0gVU5JVl9TUUxfTlVMTCkgewpA QCAtMzExMyw3ICszMTE4LDcgQEAgcm93X3NlbF9wb3BfY2FjaGVkX3Jvd19mb3JfbXlzcWwoCiAJ cm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0KQkvKiE8IGluOiBwcmVidWlsdCBzdHJ1Y3QgKi8KIHsK IAl1bGludAkJCWk7Ci0JbXlzcWxfcm93X3RlbXBsX3QqCXRlbXBsOworCWNvbnN0IG15c3FsX3Jv d190ZW1wbF90KnRlbXBsOwogCWJ5dGUqCQkJY2FjaGVkX3JlYzsKIAl1dF9hZChwcmVidWlsdC0+ bl9mZXRjaF9jYWNoZWQgPiAwKTsKIAl1dF9hZChwcmVidWlsdC0+bXlzcWxfcHJlZml4X2xlbiA8 PSBwcmVidWlsdC0+bXlzcWxfcm93X2xlbik7CkBAIC0zMTcwLDE1ICszMTc1LDIxIEBAIGlib29s CiByb3dfc2VsX3B1c2hfY2FjaGVfcm93X2Zvcl9teXNxbCgKIC8qPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0qLwogCXJvd19wcmVidWlsdF90KglwcmVidWlsdCwJLyohPCBpbjogcHJlYnVp bHQgc3RydWN0ICovCi0JY29uc3QgcmVjX3QqCXJlYywJCS8qITwgaW46IHJlY29yZCB0byBwdXNo OyBtdXN0Ci0JCQkJCWJlIHByb3RlY3RlZCBieSBhIHBhZ2UgbGF0Y2ggKi8KLQljb25zdCB1bGlu dCoJb2Zmc2V0cykJLyohPCBpbjogcmVjX2dldF9vZmZzZXRzKCkgKi8KKwljb25zdCByZWNfdCoJ cmVjLAkJLyohPCBpbjogcmVjb3JkIHRvIHB1c2gsIGluIHRoZSBpbmRleAorCQkJCQl3aGljaCB3 YXMgZGVzY3JpYmVkIGluIHByZWJ1aWx0J3MKKwkJCQkJdGVtcGxhdGUsIG9yIGluIHRoZSBjbHVz dGVyZWQgaW5kZXg7CisJCQkJCW11c3QgYmUgcHJvdGVjdGVkIGJ5IGEgcGFnZSBsYXRjaCAqLwor CWlib29sCQlyZWNfY2x1c3QsCS8qITwgaW46IFRSVUUgaWYgcmVjIGlzIGluIHRoZQorCQkJCQlj bHVzdGVyZWQgaW5kZXggaW5zdGVhZCBvZgorCQkJCQlwcmVidWlsdC0+aW5kZXggKi8KKwljb25z dCB1bGludCoJb2Zmc2V0cykJLyohPCBpbjogcmVjX2dldF9vZmZzZXRzKHJlYykgKi8KIHsKIAli eXRlKglidWY7CiAJdWxpbnQJaTsKIAogCXV0X2FkKHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZCA8 IE1ZU1FMX0ZFVENIX0NBQ0hFX1NJWkUpOwogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlYywg TlVMTCwgb2Zmc2V0cykpOworCXV0X2FkKCFyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhyZWMsIHJlY19v ZmZzX2NvbXAob2Zmc2V0cykpKTsKIAl1dF9hKCFwcmVidWlsdC0+dGVtcGxfY29udGFpbnNfYmxv Yik7CiAKIAlpZiAocHJlYnVpbHQtPmZldGNoX2NhY2hlWzBdID09IE5VTEwpIHsKQEAgLTMyMDcs NyArMzIxOCw3IEBAIHJvd19zZWxfcHVzaF9jYWNoZV9yb3dfZm9yX215c3FsKAogCWlmIChVTklW X1VOTElLRUxZKCFyb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAkJCQkgIHByZWJ1aWx0LT5mZXRj aF9jYWNoZVsKIAkJCQkJICBwcmVidWlsdC0+bl9mZXRjaF9jYWNoZWRdLAotCQkJCSAgcHJlYnVp bHQsIHJlYywgb2Zmc2V0cykpKSB7CisJCQkJICBwcmVidWlsdCwgcmVjLCByZWNfY2x1c3QsIG9m ZnNldHMpKSkgewogCQlyZXR1cm4oRkFMU0UpOwogCX0KIApAQCAtMzYwOCw3ICszNjE5LDggQEAg cm93X3NlYXJjaF9mb3JfbXlzcWwoCiAJCQkJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9mbGFnKHJl YywgY29tcCkpOwogCiAJCQkJaWYgKCFyb3dfc2VsX3N0b3JlX215c3FsX3JlYyhidWYsIHByZWJ1 aWx0LAotCQkJCQkJCSAgICAgcmVjLCBvZmZzZXRzKSkgeworCQkJCQkJCSAgICAgcmVjLCBGQUxT RSwKKwkJCQkJCQkgICAgIG9mZnNldHMpKSB7CiAJCQkJCS8qIE9ubHkgZnJlc2ggaW5zZXJ0cyBt YXkgY29udGFpbgogCQkJCQlpbmNvbXBsZXRlIGV4dGVybmFsbHkgc3RvcmVkCiAJCQkJCWNvbHVt bnMuIFByZXRlbmQgdGhhdCBzdWNoCkBAIC00MjQyLDcgKzQyNTQsNiBAQCBub19nYXBfbG9jazoK IAkJCWlzIG5lY2Vzc2FyeSwgYmVjYXVzZSB3ZSBjYW4gb25seSBnZXQgdGhlIHVuZG8KIAkJCWlu Zm9ybWF0aW9uIHZpYSB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZC4gKi8KIAotCQkJdXRfYWQo aW5kZXggIT0gY2x1c3RfaW5kZXgpOwogCQkJdXRfYWQoIWRpY3RfaW5kZXhfaXNfY2x1c3QoaW5k ZXgpKTsKIAogCQkJaWYgKCFsb2NrX3NlY19yZWNfY29uc19yZWFkX3NlZXMoCkBAIC00MzU4LDI2 ICs0MzY5LDEwIEBAIHJlcXVpcmVzX2NsdXN0X3JlYzoKIAkJCWdvdG8gbmV4dF9yZWM7CiAJCX0K IAotCQlpZiAocHJlYnVpbHQtPm5lZWRfdG9fYWNjZXNzX2NsdXN0ZXJlZCkgewotCi0JCQlyZXN1 bHRfcmVjID0gY2x1c3RfcmVjOwotCi0JCQl1dF9hZChyZWNfb2Zmc192YWxpZGF0ZShyZXN1bHRf cmVjLCBjbHVzdF9pbmRleCwKLQkJCQkJCW9mZnNldHMpKTsKLQkJfSBlbHNlIHsKLQkJCS8qIFdl IHVzZWQgJ29mZnNldHMnIGZvciB0aGUgY2x1c3QgcmVjLCByZWNhbGN1bGF0ZQotCQkJdGhlbSBm b3IgJ3JlYycgKi8KLQkJCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCwgb2Zm c2V0cywKLQkJCQkJCSAgVUxJTlRfVU5ERUZJTkVELCAmaGVhcCk7Ci0JCQlyZXN1bHRfcmVjID0g cmVjOwotCQl9Ci0KLQkJLyogcmVzdWx0X3JlYyBjYW4gbGVnaXRpbWF0ZWx5IGJlIGRlbGV0ZS1t YXJrZWQKLQkJbm93IHRoYXQgaXQgaGFzIGJlZW4gZXN0YWJsaXNoZWQgdGhhdCBpdCBwb2ludHMg dG8gYQotCQljbHVzdGVyZWQgaW5kZXggcmVjb3JkIHRoYXQgZXhpc3RzIGluIHRoZSByZWFkIHZp ZXcuICovCisJCXJlc3VsdF9yZWMgPSBjbHVzdF9yZWM7CisJCXV0X2FkKHJlY19vZmZzX3ZhbGlk YXRlKHJlc3VsdF9yZWMsIGNsdXN0X2luZGV4LCBvZmZzZXRzKSk7CiAJfSBlbHNlIHsKIAkJcmVz dWx0X3JlYyA9IHJlYzsKLQkJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9mbGFnKHJlYywgY29tcCkp OwogCX0KIAogCS8qIFdlIGZvdW5kIGEgcXVhbGlmeWluZyByZWNvcmQgJ3Jlc3VsdF9yZWMnLiBB dCB0aGlzIHBvaW50LApAQCAtNDM4Niw2ICs0MzgxLDcgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgog CXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlc3VsdF9yZWMsCiAJCQkJcmVzdWx0X3JlYyAhPSBy ZWMgPyBjbHVzdF9pbmRleCA6IGluZGV4LAogCQkJCW9mZnNldHMpKTsKKwl1dF9hZCghcmVjX2dl dF9kZWxldGVkX2ZsYWcocmVzdWx0X3JlYywgY29tcCkpOwogCiAJLyogQXQgdGhpcyBwb2ludCwg dGhlIGNsdXN0ZXJlZCBpbmRleCByZWNvcmQgaXMgcHJvdGVjdGVkCiAJYnkgYSBwYWdlIGxhdGNo IHRoYXQgd2FzIGFjcXVpcmVkIHdoZW4gcGN1ciB3YXMgcG9zaXRpb25lZC4KQEAgLTQ0MTAsNiAr NDQwNiw3IEBAIHJlcXVpcmVzX2NsdXN0X3JlYzoKIAkJY3Vyc29yLiAqLwogCiAJCWlmICghcm93 X3NlbF9wdXNoX2NhY2hlX3Jvd19mb3JfbXlzcWwocHJlYnVpbHQsIHJlc3VsdF9yZWMsCisJCQkJ CQkgICAgICByZXN1bHRfcmVjICE9IHJlYywKIAkJCQkJCSAgICAgIG9mZnNldHMpKSB7CiAJCQkv KiBPbmx5IGZyZXNoIGluc2VydHMgbWF5IGNvbnRhaW4gaW5jb21wbGV0ZQogCQkJZXh0ZXJuYWxs eSBzdG9yZWQgY29sdW1ucy4gUHJldGVuZCB0aGF0IHN1Y2gKQEAgLTQ0MjcsMTUgKzQ0MjQsMzEg QEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCiAJCWdvdG8gbmV4dF9yZWM7CiAJfSBlbHNlIHsKLQkJ aWYgKHByZWJ1aWx0LT50ZW1wbGF0ZV90eXBlID09IFJPV19NWVNRTF9EVU1NWV9URU1QTEFURSkg eworCQlpZiAoVU5JVl9VTkxJS0VMWQorCQkgICAgKHByZWJ1aWx0LT50ZW1wbGF0ZV90eXBlID09 IFJPV19NWVNRTF9EVU1NWV9URU1QTEFURSkpIHsKKwkJCS8qIENIRUNLIFRBQkxFOiBmZXRjaCB0 aGUgcm93ICovCisKKwkJCWlmIChyZXN1bHRfcmVjICE9IHJlYworCQkJICAgICYmICFwcmVidWls dC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVkKSB7CisJCQkJLyogV2UgdXNlZCAnb2Zmc2V0cycg Zm9yIHRoZSBjbHVzdAorCQkJCXJlYywgcmVjYWxjdWxhdGUgdGhlbSBmb3IgJ3JlYycgKi8KKwkJ CQlvZmZzZXRzID0gcmVjX2dldF9vZmZzZXRzKHJlYywgaW5kZXgsIG9mZnNldHMsCisJCQkJCQkJ ICBVTElOVF9VTkRFRklORUQsCisJCQkJCQkJICAmaGVhcCk7CisJCQkJcmVzdWx0X3JlYyA9IHJl YzsKKwkJCX0KKwogCQkJbWVtY3B5KGJ1ZiArIDQsIHJlc3VsdF9yZWMKIAkJCSAgICAgICAtIHJl Y19vZmZzX2V4dHJhX3NpemUob2Zmc2V0cyksCiAJCQkgICAgICAgcmVjX29mZnNfc2l6ZShvZmZz ZXRzKSk7CiAJCQltYWNoX3dyaXRlX3RvXzQoYnVmLAogCQkJCQlyZWNfb2Zmc19leHRyYV9zaXpl KG9mZnNldHMpICsgNCk7CiAJCX0gZWxzZSB7Ci0JCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlzcWxf cmVjKGJ1ZiwgcHJlYnVpbHQsCi0JCQkJCQkgICAgIHJlc3VsdF9yZWMsIG9mZnNldHMpKSB7CisJ CQkvKiBSZXR1cm5pbmcgYSByb3cgdG8gTXlTUUwgKi8KKworCQkJaWYgKCFyb3dfc2VsX3N0b3Jl X215c3FsX3JlYyhidWYsIHByZWJ1aWx0LCByZXN1bHRfcmVjLAorCQkJCQkJICAgICByZXN1bHRf cmVjICE9IHJlYywKKwkJCQkJCSAgICAgb2Zmc2V0cykpIHsKIAkJCQkvKiBPbmx5IGZyZXNoIGlu c2VydHMgbWF5IGNvbnRhaW4KIAkJCQlpbmNvbXBsZXRlIGV4dGVybmFsbHkgc3RvcmVkCiAJCQkJ Y29sdW1ucy4gUHJldGVuZCB0aGF0IHN1Y2ggcmVjb3JkcyBkbwoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9yb3cvcm93MHVwZC5jJwotLS0gYS9zdG9yYWdlL2lubm9k Yl9wbHVnaW4vcm93L3JvdzB1cGQuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEw MTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CisrKyBiL3N0b3JhZ2UvaW5ub2RiX3BsdWdpbi9y b3cvcm93MHVwZC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDYwNDE1 LWJqM3U2ZXdrMDIybWs0bnIKQEAgLTQ2Niw4ICs0NjYsMTEgQEAgcm93X3VwZF9jaGFuZ2VzX2Zp ZWxkX3NpemVfb3JfZXh0ZXJuYWwoCiAjZW5kaWYgLyogIVVOSVZfSE9UQkFDS1VQICovCiAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8vKioKLVJlcGxhY2VzIHRoZSBuZXcgY29sdW1uIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHVwZGF0 ZSB2ZWN0b3IgdG8gdGhlIHJlY29yZAotZ2l2ZW4uIE5vIGZpZWxkIHNpemUgY2hhbmdlcyBhcmUg YWxsb3dlZC4gKi8KK1JlcGxhY2VzIHRoZSBuZXcgY29sdW1uIHZhbHVlcyBzdG9yZWQgaW4gdGhl IHVwZGF0ZSB2ZWN0b3IgdG8gdGhlCityZWNvcmQgZ2l2ZW4uIE5vIGZpZWxkIHNpemUgY2hhbmdl cyBhcmUgYWxsb3dlZC4gVGhpcyBmdW5jdGlvbiBpcwordXN1YWxseSBpbnZva2VkIG9uIGEgY2x1 c3RlcmVkIGluZGV4LiBUaGUgb25seSB1c2UgY2FzZSBmb3IgYQorc2Vjb25kYXJ5IGluZGV4IGlz IHJvd19pbnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlmeSgpIG9yIGl0cworY291bnRlcnBhcnQg aW4gaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZSgpLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKIHJv d191cGRfcmVjX2luX3BsYWNlKAoK --===============0355699964== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marko.makela@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marko.makela@stripped # target_branch: file:///home/marko/innobase/dev/mysql2a/5.1-innodb/ # testament_sha1: 8abda6c5ecd58b491ba903ca334065eda30bc96e # timestamp: 2010-10-19 09:04:26 +0300 # base_revision_id: marko.makela@stripped\ # anb70c3eqths3e3u # # Begin bundle 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 --===============0355699964==--