From: marko.makela Date: October 19 2010 5:59am Subject: bzr commit into mysql-5.1-innodb branch (marko.makela:3638) Bug#56680 List-Archive: http://lists.mysql.com/commits/121044 X-Bug: 56680 Message-Id: <201010190559.o9J4lxI3005528@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1107850812==" --===============1107850812== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline I0F0IGZpbGU6Ly8vaG9tZS9tYXJrby9pbm5vYmFzZS9kZXYvbXlzcWwyYS81LjEtaW5ub2RiLyBi YXNlZCBvbiByZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1 OWpjZHZ2aWplNXAKCiAzNjM4IE1hcmtvIE3DpGtlbMOkCTIwMTAtMTAtMTkKICAgICAgQnVnICM1 NjY4MCB3cm9uZyBJbm5vREIgcmVzdWx0cyBmcm9tIGEgY2FzZS1pbnNlbnNpdGl2ZSBjb3Zlcmlu ZyBpbmRleAogICAgICAKICAgICAgcm93X3NlYXJjaF9mb3JfbXlzcWwoKTogV2hlbiBhIHNlY29u ZGFyeSBpbmRleCByZWNvcmQgbWlnaHQgbm90IGJlCiAgICAgIHZpc2libGUgaW4gdGhlIGN1cnJl bnQgdHJhbnNhY3Rpb24ncyByZWFkIHZpZXcgYW5kIHdlIGNvbnN1bHQgdGhlCiAgICAgIGNsdXN0 ZXJlZCBpbmRleCBhbmQgb3B0aW9uYWxseSBzb21lIHVuZG8gbG9nIHJlY29yZHMsIHJldHVybiB0 aGUKICAgICAgcmVsZXZhbnQgY29sdW1ucyBvZiB0aGUgY2x1c3RlcmVkIGluZGV4IHJlY29yZCB0 byBNeVNRTCBpbnN0ZWFkIG9mIHRoZQogICAgICBzZWNvbmRhcnkgaW5kZXggcmVjb3JkLgogICAg ICAKICAgICAgUkVDX0lORk9fREVMRVRFRF9GTEFHOiBNb3ZlIHRoZSBkZWZpbml0aW9uIGZyb20g cmVtMHJlYy5pYyB0byByZW0wcmVjLmguCiAgICAgIAogICAgICBpYnVmX2luc2VydF90b19pbmRl eF9wYWdlX2xvdygpOiBOZXcgZnVuY3Rpb24sIHJlZmFjdG9yZWQgZnJvbQogICAgICBpYnVmX2lu c2VydF90b19pbmRleF9wYWdlKCkuCiAgICAgIAogICAgICBpYnVmX2luc2VydF90b19pbmRleF9w YWdlKCk6IFdoZW4gd2UgYXJlIGluc2VydGluZyBhIHJlY29yZCBpbiBwbGFjZQogICAgICBvZiBh IGRlbGV0ZS1tYXJrZWQgcmVjb3JkIGFuZCBzb21lIGZpZWxkcyBvZiB0aGUgcmVjb3JkIGRpZmZl ciwgdXBkYXRlCiAgICAgIHRoYXQgcmVjb3JkIGp1c3QgbGlrZSByb3dfaW5zX3NlY19pbmRleF9l bnRyeV9ieV9tb2RpZnkoKSB3b3VsZCBkby4KICAgICAgCiAgICAgIG15c3FsX3Jvd190ZW1wbF90 OiBBZGQgY2x1c3RfcmVjX2ZpZWxkX25vLgogICAgICAKICAgICAgcm93X3NlbF9zdG9yZV9teXNx bF9yZWMoKSwgcm93X3NlbF9wdXNoX2NhY2hlX3Jvd19mb3JfbXlzcWwoKTogQWRkIHRoZQogICAg ICBmbGFnIHJlY19jbHVzdCwgZm9yIHJldHVybmluZyBkYXRhIGF0IGNsdXN0X3JlY19maWVsZF9u byBpbnN0ZWFkIG9mCiAgICAgIHJlY19maWVsZF9uby4gUmVzdXJyZWN0IHRoZSBkZWJ1ZyBhc3Nl cnRpb24gdGhhdCB0aGUgcmVjb3JkIG5vdCBiZQogICAgICBtYXJrZWQgZm9yIGRlbGV0aW9uLiAo QnVnICM1NTYyNikKICAgICAgCiAgICAgIGJ1Zl9MUlVfZnJlZV9ibG9jaygpOiBSZWZhY3RvcmVk IGZyb20KICAgICAgYnVmX0xSVV9zZWFyY2hfYW5kX2ZyZWVfYmxvY2soKS4gVGhpcyBpcyBuZWVk ZWQgZm9yIHRoZQogICAgICBpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyBkaWFnbm9zdGlj cy4KICAgICAgCiAgICAgIFtVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVR10gaWJ1Zl9kZWJ1 ZywgYnVmX3BhZ2VfZ2V0X2dlbigpLAogICAgICBidWZfZmx1c2hfcGFnZV90cnkoKToKICAgICAg SW1wbGVtZW50IGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnPTEgZm9yIGV2aWN0aW5nIHBh Z2VzIGZyb20gdGhlCiAgICAgIGJ1ZmZlciBwb29sLCBzbyB0aGF0IGNoYW5nZSBidWZmZXJpbmcg d2lsbCBiZSBhdHRlbXB0ZWQgbW9yZQogICAgICBmcmVxdWVudGx5LgoKICAgIGFkZGVkOgogICAg ICBteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1NjY4MC5yZXN1bHQKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTY2ODAudGVzdAogICAgbW9kaWZp ZWQ6CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwogICAgICBzdG9yYWdlL2lu bm9iYXNlL2J1Zi9idWYwZmx1LmMKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGxydS5j CiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgc3RvcmFn ZS9pbm5vYmFzZS9pYnVmL2lidWYwaWJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVk ZS9idWYwZmx1LmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBscnUuaAogICAg ICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL3JlbTByZWMuaAogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVt MHJlYy5pYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MG15c3FsLmgKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzB1cGQuaAogICAgICBzdG9yYWdlL2lubm9iYXNl L3Jvdy9yb3cwbXlzcWwuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMKICAg ICAgc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jCj09PSBhZGRlZCBmaWxlICdteXNxbC10 ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1NjY4MC5yZXN1bHQnCi0tLSBhL215c3FsLXRl c3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU2NjgwLnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAw OjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU2Njgw LnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3 MGMzZXF0aHMzZTN1CkBAIC0wLDAgKzEsMTAyIEBACitTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbj0n UkVQRUFUQUJMRS1SRUFEJzsKK0NSRUFURSBUQUJMRSBidWc1NjY4MCgKK2EgSU5UIEFVVE9fSU5D UkVNRU5UIFBSSU1BUlkgS0VZLAorYiBDSEFSKDEpLAorYyBJTlQsCitJTkRFWChiKSkKK0VOR0lO RT1Jbm5vREI7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMCwneCcsMSk7CitCRUdJTjsK K1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CitiCit4CitCRUdJTjsKK1VQREFURSBidWc1NjY4MCBT RVQgYj0nWCc7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwOworYgoreAorU0VMRUNUICogRlJPTSBi dWc1NjY4MDsKK2EJYgljCisxCXgJMQorUk9MTEJBQ0s7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2Njgw OworYgoreAorU0VUIEdMT0JBTCB0eF9pc29sYXRpb249J1JFQUQtVU5DT01NSVRURUQnOworSU5T RVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5U TyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2 NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VM RUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxi LGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9N IGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2 ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lO U0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElO VE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1 NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0JFR0lOOworU0VMRUNUIGIgRlJPTSBi dWc1NjY4MCBMSU1JVCAyOworYgoreAoreAorQkVHSU47CitERUxFVEUgRlJPTSBidWc1NjY4MCBX SEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMSwnWCcsMSk7CitTRUxFQ1Qg YiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDM7CitiCitYCit4Cit4CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2 NjgwIExJTUlUIDI7CitiCit4Cit4CitDSEVDSyBUQUJMRSBidWc1NjY4MDsKK1RhYmxlCU9wCU1z Z190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2NjgwCWNoZWNrCXN0YXR1cwlPSworUk9MTEJBQ0s7 CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitiCit4Cit4CitDSEVDSyBUQUJMRSBi dWc1NjY4MDsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0ZXN0LmJ1ZzU2NjgwCWNoZWNr CXN0YXR1cwlPSworU0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAyOworYgoreAoreAorQ1JF QVRFIFRBQkxFIGJ1ZzU2NjgwXzIoCithIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwK K2IgVkFSQ0hBUigyKSBDSEFSU0VUIGxhdGluMSBDT0xMQVRFIGxhdGluMV9nZXJtYW4yX2NpLAor YyBJTlQsCitJTkRFWChiKSkKK0VOR0lORT1Jbm5vREI7CitJTlNFUlQgSU5UTyBidWc1NjY4MF8y IFNFTEVDVCAwLF9sYXRpbjEgMHhkZixjIEZST00gYnVnNTY2ODA7CitCRUdJTjsKK1NFTEVDVCBI RVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlUIDI7CitIRVgoYikKK0RGCitERgorREVMRVRFIEZS T00gYnVnNTY2ODBfMiBXSEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVFUygx LCdTUycsMSk7CitTRUxFQ1QgSEVYKGIpIEZST00gYnVnNTY2ODBfMiBMSU1JVCAzOworSEVYKGIp Cis1MzUzCitERgorREYKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwXzI7CitUYWJsZQlPcAlNc2dfdHlw ZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MF8yCWNoZWNrCXN0YXR1cwlPSworREVMRVRFIEZST00g YnVnNTY2ODBfMiBXSEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVFUygxLF9s YXRpbjEgMHhkZiwxKTsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlUIDM7CitI RVgoYikKK0RGCitERgorREYKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwXzI7CitUYWJsZQlPcAlNc2df dHlwZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MF8yCWNoZWNrCXN0YXR1cwlPSworRFJPUCBUQUJM RSBidWc1NjY4MF8yOworRFJPUCBUQUJMRSBidWc1NjY4MDsKCj09PSBhZGRlZCBmaWxlICdteXNx bC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1NjY4MC50ZXN0JwotLS0gYS9teXNxbC10 ZXN0L3N1aXRlL2lubm9kYi90L2lubm9kYl9idWc1NjY4MC50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6 MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTY2ODAu dGVzdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMz ZXF0aHMzZTN1CkBAIC0wLDAgKzEsMTMwIEBACisjCisjIEJ1ZyAjNTY2ODAgSW5ub0RCIG1heSBy ZXR1cm4gd3JvbmcgcmVzdWx0cyBmcm9tIGEgY2FzZS1pbnNlbnNpdGl2ZSBpbmRleAorIworLS0g c291cmNlIGluY2x1ZGUvaGF2ZV9pbm5vZGIuaW5jCisKKy0tIGRpc2FibGVfcXVlcnlfbG9nCitT RVQgQHR4X2lzb2xhdGlvbl9vcmlnID0gQEB0eF9pc29sYXRpb247CisjIFRoZSBmbGFnIGlubm9k Yl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnIGlzIG9ubHkgYXZhaWxhYmxlIGluIGRlYnVnIGJ1aWxk cy4KKyMgSXQgaW5zdHJ1Y3RzIElubm9EQiB0byB0cnkgdG8gZXZpY3QgcGFnZXMgZnJvbSB0aGUg YnVmZmVyIHBvb2wgd2hlbgorIyBjaGFuZ2UgYnVmZmVyaW5nIGlzIHBvc3NpYmxlLCBzbyB0aGF0 IHRoZSBjaGFuZ2UgYnVmZmVyIHdpbGwgYmUgdXNlZAorIyB3aGVuZXZlciBwb3NzaWJsZS4KKy0t IGVycm9yIDAsRVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBAaW5ub2RiX2NoYW5nZV9i dWZmZXJpbmdfZGVidWdfb3JpZyA9IEBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWc7Cist LSBlcnJvciAwLEVSX1VOS05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgR0xPQkFMIGlubm9kYl9j aGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gMTsKKy0tIGVuYWJsZV9xdWVyeV9sb2cKK1NFVCBHTE9C QUwgdHhfaXNvbGF0aW9uPSdSRVBFQVRBQkxFLVJFQUQnOworCitDUkVBVEUgVEFCTEUgYnVnNTY2 ODAoCisgICAgICAgYSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCisgICAgICAgYiBD SEFSKDEpLAorICAgICAgIGMgSU5ULAorICAgICAgIElOREVYKGIpKQorRU5HSU5FPUlubm9EQjsK KworSU5TRVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDAsJ3gnLDEpOworQkVHSU47CitTRUxFQ1Qg YiBGUk9NIGJ1ZzU2NjgwOworCitjb25uZWN0IChjb24xLGxvY2FsaG9zdCxyb290LCwpOworY29u bmVjdGlvbiBjb24xOworQkVHSU47CitVUERBVEUgYnVnNTY2ODAgU0VUIGI9J1gnOworCitjb25u ZWN0aW9uIGRlZmF1bHQ7CisjIFRoaXMgc2hvdWxkIHJldHVybiB0aGUgbGFzdCBjb21taXR0ZWQg dmFsdWUgJ3gnLCBidXQgd291bGQgcmV0dXJuICdYJworIyBkdWUgdG8gYSBidWcgaW4gcm93X3Nl YXJjaF9mb3JfbXlzcWwoKS4KK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CisjIFRoaXMgd291bGQg YWx3YXlzIHJldHVybiB0aGUgbGFzdCBjb21taXR0ZWQgdmFsdWUgJ3gnLgorU0VMRUNUICogRlJP TSBidWc1NjY4MDsKKworY29ubmVjdGlvbiBjb24xOworUk9MTEJBQ0s7CitkaXNjb25uZWN0IGNv bjE7CisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKworU0VMRUNUIGIgRlJPTSBidWc1NjY4MDsKKwor IyBGb3IgdGhlIHJlc3Qgb2YgdGhpcyB0ZXN0LCB1c2UgdGhlIFJFQUQgVU5DT01NSVRURUQgaXNv bGF0aW9uIGxldmVsCisjIHRvIHNlZSB3aGF0IGV4aXN0cyBpbiB0aGUgc2Vjb25kYXJ5IGluZGV4 LgorU0VUIEdMT0JBTCB0eF9pc29sYXRpb249J1JFQUQtVU5DT01NSVRURUQnOworCisjIENyZWF0 ZSBlbm91Z2ggcm93cyBmb3IgdGhlIHRhYmxlLCBzbyB0aGF0IHRoZSBpbnNlcnQgYnVmZmVyIHdp bGwgYmUKKyMgdXNlZCBmb3IgbW9kaWZ5aW5nIHRoZSBzZWNvbmRhcnkgaW5kZXggcGFnZS4gVGhl cmUgbXVzdCBiZSBtdWx0aXBsZQorIyBpbmRleCBwYWdlcywgYmVjYXVzZSBjaGFuZ2VzIHRvIHRo ZSByb290IHBhZ2UgYXJlIG5ldmVyIGJ1ZmZlcmVkLgorCitJTlNFUlQgSU5UTyBidWc1NjY4MCBT RUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAw LGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZS T00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1 NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOwor SU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQg SU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1 ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAg U0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1Qg MCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBG Uk9NIGJ1ZzU2NjgwOworCitCRUdJTjsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsK KworY29ubmVjdCAoY29uMSxsb2NhbGhvc3Qscm9vdCwsKTsKK2Nvbm5lY3Rpb24gY29uMTsKK0JF R0lOOworREVMRVRFIEZST00gYnVnNTY2ODAgV0hFUkUgYT0xOworIyBUaGlzIHNob3VsZCBiZSBi dWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSAxIGlzIGluIGVmZmVj dC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFZBTFVFUygxLCdYJywxKTsKKworIyBUaGlzIHNob3Vs ZCBmb3JjZSBhbiBpbnNlcnQgYnVmZmVyIG1lcmdlLCBhbmQgcmV0dXJuICdYJyBpbiB0aGUgZmly c3Qgcm93LgorU0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAzOworCitjb25uZWN0aW9uIGRl ZmF1bHQ7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CitDSEVDSyBUQUJMRSBidWc1 NjY4MDsKKworY29ubmVjdGlvbiBjb24xOworUk9MTEJBQ0s7CitTRUxFQ1QgYiBGUk9NIGJ1ZzU2 NjgwIExJTUlUIDI7CitDSEVDSyBUQUJMRSBidWc1NjY4MDsKKworY29ubmVjdGlvbiBkZWZhdWx0 OworZGlzY29ubmVjdCBjb24xOworCitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDI7CisK K0NSRUFURSBUQUJMRSBidWc1NjY4MF8yKAorICAgICAgIGEgSU5UIEFVVE9fSU5DUkVNRU5UIFBS SU1BUlkgS0VZLAorICAgICAgIGIgVkFSQ0hBUigyKSBDSEFSU0VUIGxhdGluMSBDT0xMQVRFIGxh dGluMV9nZXJtYW4yX2NpLAorICAgICAgIGMgSU5ULAorICAgICAgIElOREVYKGIpKQorRU5HSU5F PUlubm9EQjsKKworSU5TRVJUIElOVE8gYnVnNTY2ODBfMiBTRUxFQ1QgMCxfbGF0aW4xIDB4ZGYs YyBGUk9NIGJ1ZzU2NjgwOworCitCRUdJTjsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8y IExJTUlUIDI7CitERUxFVEUgRlJPTSBidWc1NjY4MF8yIFdIRVJFIGE9MTsKKyMgVGhpcyBzaG91 bGQgYmUgYnVmZmVyZWQsIGlmIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnID0gMSBpcyBp biBlZmZlY3QuCitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVFUygxLCdTUycsMSk7CisKKyMg VGhpcyBzaG91bGQgZm9yY2UgYW4gaW5zZXJ0IGJ1ZmZlciBtZXJnZSwgYW5kIHJldHVybiAnU1Mn IGluIHRoZSBmaXJzdCByb3cuCitTRUxFQ1QgSEVYKGIpIEZST00gYnVnNTY2ODBfMiBMSU1JVCAz OworQ0hFQ0sgVEFCTEUgYnVnNTY2ODBfMjsKKworREVMRVRFIEZST00gYnVnNTY2ODBfMiBXSEVS RSBhPTE7CisjIFRoaXMgc2hvdWxkIGJlIGJ1ZmZlcmVkLCBpZiBpbm5vZGJfY2hhbmdlX2J1ZmZl cmluZ19kZWJ1ZyA9IDEgaXMgaW4gZWZmZWN0LgorSU5TRVJUIElOVE8gYnVnNTY2ODBfMiBWQUxV RVMoMSxfbGF0aW4xIDB4ZGYsMSk7CisKKyMgVGhpcyBzaG91bGQgZm9yY2UgYW4gaW5zZXJ0IGJ1 ZmZlciBtZXJnZSwgYW5kIHJldHVybiAweGRmIGluIHRoZSBmaXJzdCByb3cuCitTRUxFQ1QgSEVY KGIpIEZST00gYnVnNTY2ODBfMiBMSU1JVCAzOworQ0hFQ0sgVEFCTEUgYnVnNTY2ODBfMjsKKwor RFJPUCBUQUJMRSBidWc1NjY4MF8yOworRFJPUCBUQUJMRSBidWc1NjY4MDsKKworLS0gZGlzYWJs ZV9xdWVyeV9sb2cKK1NFVCBHTE9CQUwgdHhfaXNvbGF0aW9uID0gQHR4X2lzb2xhdGlvbl9vcmln OworLS0gZXJyb3IgMCwgRVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBHTE9CQUwgaW5u b2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVi dWdfb3JpZzsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwYnVm LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYwlyZXZpZDp2YXNpbC5kaW1v dkBvcmFjbGUuY29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9idWYvYnVmMGJ1Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTAxMDE5MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKQEAgLTEyNzAsNiArMTI3MCwzMCBAQCBsb29w OgogCQlidWZfYXdlX21hcF9wYWdlX3RvX2ZyYW1lKGJsb2NrLCBUUlVFKTsKIAl9CiAKKyNpZiBk ZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKKwlpZiAobW9kZSA9 PSBCVUZfR0VUX0lGX0lOX1BPT0wgJiYgaWJ1Zl9kZWJ1ZykgeworCQkvKiBUcnkgdG8gZXZpY3Qg dGhlIGJsb2NrIGZyb20gdGhlIGJ1ZmZlciBwb29sLCB0byB1c2UgdGhlCisJCWluc2VydCBidWZm ZXIgYXMgbXVjaCBhcyBwb3NzaWJsZS4gKi8KKworCQlpZiAoYnVmX0xSVV9mcmVlX2Jsb2NrKGJs b2NrKSkgeworCQkJbXV0ZXhfZXhpdCgmYnVmX3Bvb2wtPm11dGV4KTsKKwkJCW11dGV4X2V4aXQo JmJsb2NrLT5tdXRleCk7CisJCQlmcHJpbnRmKHN0ZGVyciwKKwkJCQkiaW5ub2RiX2NoYW5nZV9i dWZmZXJpbmdfZGVidWcgZXZpY3QgJXUgJXVcbiIsCisJCQkJKHVuc2lnbmVkKSBzcGFjZSwgKHVu c2lnbmVkKSBvZmZzZXQpOworCQkJcmV0dXJuKE5VTEwpOworCQl9IGVsc2UgaWYgKGJ1Zl9mbHVz aF9wYWdlX3RyeShibG9jaykpIHsKKwkJCWZwcmludGYoc3RkZXJyLAorCQkJCSJpbm5vZGJfY2hh bmdlX2J1ZmZlcmluZ19kZWJ1ZyBmbHVzaCAldSAldVxuIiwKKwkJCQkodW5zaWduZWQpIHNwYWNl LCAodW5zaWduZWQpIG9mZnNldCk7CisJCQlndWVzcyA9IGJsb2NrLT5mcmFtZTsKKwkJCWdvdG8g bG9vcDsKKwkJfQorCisJCS8qIEZhaWxlZCB0byBldmljdCB0aGUgcGFnZTsgY2hhbmdlIGl0IGRp cmVjdGx5ICovCisJfQorI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICov CisKICNpZmRlZiBVTklWX1NZTkNfREVCVUcKIAlidWZfYmxvY2tfYnVmX2ZpeF9pbmNfZGVidWco YmxvY2ssIGZpbGUsIGxpbmUpOwogI2Vsc2UKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lu bm9iYXNlL2J1Zi9idWYwZmx1LmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBmbHUu YwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2 aWplNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGZsdS5jCXJldmlkOm1hcmtvLm1h a2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKQEAgLTcyMyw2 ICs3MjMsODIgQEAgYnVmX2ZsdXNoX3RyeV9wYWdlKAogCXJldHVybigwKTsKIH0KIAorIyBpZiBk ZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCitXcml0ZXMgYSBmbHVzaGFibGUgcGFnZSBhc3luY2hyb25vdXNseSBmcm9tIHRoZSBidWZm ZXIgcG9vbCB0byBhIGZpbGUuCitOT1RFOiBidWZfcG9vbF9tdXRleCBhbmQgYmxvY2stPm11dGV4 IG11c3QgYmUgaGVsZCB1cG9uIGVudGVyaW5nIHRoaXMKK2Z1bmN0aW9uLCBhbmQgdGhleSB3aWxs IGJlIHJlbGVhc2VkIGJ5IHRoaXMgZnVuY3Rpb24gYWZ0ZXIgZmx1c2hpbmcuCitUaGlzIGlzIGxv b3NlbHkgYmFzZWQgb24gYnVmX2ZsdXNoX2JhdGNoKCkgYW5kIGJ1Zl9mbHVzaF90cnlfcGFnZSgp LiAqLworCitpYm9vbAorYnVmX2ZsdXNoX3BhZ2VfdHJ5KAorLyo9PT09PT09PT09PT09PT0qLwor CQkJCQkvKiBvdXQ6IFRSVUUgaWYgZmx1c2hlZCBhbmQKKwkJCQkJbXV0ZXhlcyByZWxlYXNlZCAq LworCWJ1Zl9ibG9ja190KglibG9jaykJCS8qITwgaW4vb3V0OiBidWZmZXIgY29udHJvbCBibG9j ayAqLworeworCXV0X2FkKG11dGV4X293bigmYnVmX3Bvb2wtPm11dGV4KSk7CisJdXRfYWQoYmxv Y2stPnN0YXRlID09IEJVRl9CTE9DS19GSUxFX1BBR0UpOworCXV0X2FkKG11dGV4X293bigmYmxv Y2stPm11dGV4KSk7CisKKwlpZiAoIWJ1Zl9mbHVzaF9yZWFkeV9mb3JfZmx1c2goYmxvY2ssIEJV Rl9GTFVTSF9MUlUpKSB7CisJCXJldHVybihGQUxTRSk7CisJfQorCisJaWYgKGJ1Zl9wb29sLT5u X2ZsdXNoW0JVRl9GTFVTSF9MUlVdID4gMAorCSAgICB8fCBidWZfcG9vbC0+aW5pdF9mbHVzaFtC VUZfRkxVU0hfTFJVXSkgeworCQkvKiBUaGVyZSBpcyBhbHJlYWR5IGEgZmx1c2ggYmF0Y2ggb2Yg dGhlIHNhbWUgdHlwZSBydW5uaW5nICovCisJCXJldHVybihGQUxTRSk7CisJfQorCisJYnVmX3Bv b2wtPmluaXRfZmx1c2hbQlVGX0ZMVVNIX0xSVV0gPSBUUlVFOworCisJYmxvY2stPmlvX2ZpeCA9 IEJVRl9JT19XUklURTsKKwlibG9jay0+Zmx1c2hfdHlwZSA9IEJVRl9GTFVTSF9MUlU7CisKKwlp ZiAoYnVmX3Bvb2wtPm5fZmx1c2hbQlVGX0ZMVVNIX0xSVV0rKyA9PSAwKSB7CisKKwkJb3NfZXZl bnRfcmVzZXQoYnVmX3Bvb2wtPm5vX2ZsdXNoW0JVRl9GTFVTSF9MUlVdKTsKKwl9CisKKwkvKiBW RVJZIElNUE9SVEFOVDoKKwlCZWNhdXNlIGFueSB0aHJlYWQgbWF5IGNhbGwgdGhlIExSVSBmbHVz aCwgZXZlbiB3aGVuIG93bmluZworCWxvY2tzIG9uIHBhZ2VzLCB0byBhdm9pZCBkZWFkbG9ja3Ms IHdlIG11c3QgbWFrZSBzdXJlIHRoYXQgdGhlCisJcy1sb2NrIGlzIGFjcXVpcmVkIG9uIHRoZSBw YWdlIHdpdGhvdXQgd2FpdGluZzogdGhpcyBpcworCWFjY29tcGxpc2hlZCBiZWNhdXNlIGJ1Zl9m bHVzaF9yZWFkeV9mb3JfZmx1c2goKSBtdXN0IGhvbGQsCisJYW5kIHRoYXQgcmVxdWlyZXMgdGhl IHBhZ2Ugbm90IHRvIGJlIGJ1ZmZlcmZpeGVkLiAqLworCisJcndfbG9ja19zX2xvY2tfZ2VuKCZi bG9jay0+bG9jaywgQlVGX0lPX1dSSVRFKTsKKworCS8qIE5vdGUgdGhhdCB0aGUgcy1sYXRjaCBp cyBhY3F1aXJlZCBiZWZvcmUgcmVsZWFzaW5nIHRoZQorCWJ1Zl9wb29sIG11dGV4OiB0aGlzIGVu c3VyZXMgdGhhdCB0aGUgbGF0Y2ggaXMgYWNxdWlyZWQKKwlpbW1lZGlhdGVseS4gKi8KKworCW11 dGV4X2V4aXQoJmJsb2NrLT5tdXRleCk7CisJbXV0ZXhfZXhpdCgmYnVmX3Bvb2wtPm11dGV4KTsK KworCS8qIEV2ZW4gdGhvdWdoIGJsb2NrIGlzIG5vdCBwcm90ZWN0ZWQgYnkgYW55IG11dGV4IGF0 IHRoaXMKKwlwb2ludCwgaXQgaXMgc2FmZSB0byBhY2Nlc3MgYmxvY2ssIGJlY2F1c2UgaXQgaXMg aW9fZml4ZWQgYW5kCisJb2xkZXN0X21vZGlmaWNhdGlvbiAhPSAwLiAgVGh1cywgaXQgY2Fubm90 IGJlIHJlbG9jYXRlZCBpbiB0aGUKKwlidWZmZXIgcG9vbCBvciByZW1vdmVkIGZyb20gZmx1c2hf bGlzdCBvciBMUlVfbGlzdC4gKi8KKworCWJ1Zl9mbHVzaF93cml0ZV9ibG9ja19sb3coYmxvY2sp OworCisJbXV0ZXhfZW50ZXIoJmJ1Zl9wb29sLT5tdXRleCk7CisJYnVmX3Bvb2wtPmluaXRfZmx1 c2hbQlVGX0ZMVVNIX0xSVV0gPSBGQUxTRTsKKworCWlmIChidWZfcG9vbC0+bl9mbHVzaFtCVUZf RkxVU0hfTFJVXSA9PSAwKSB7CisJCS8qIFRoZSBydW5uaW5nIGZsdXNoIGJhdGNoIGhhcyBlbmRl ZCAqLworCQlvc19ldmVudF9zZXQoYnVmX3Bvb2wtPm5vX2ZsdXNoW0JVRl9GTFVTSF9MUlVdKTsK Kwl9CisKKwltdXRleF9leGl0KCZidWZfcG9vbC0+bXV0ZXgpOworCWJ1Zl9mbHVzaF9idWZmZXJl ZF93cml0ZXMoKTsKKworCXJldHVybihUUlVFKTsKK30KKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8 IFVOSVZfSUJVRl9ERUJVRyAqLworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiBGbHVzaGVzIHRvIGRpc2sgYWxsIGZsdXNo YWJsZSBwYWdlcyB3aXRoaW4gdGhlIGZsdXNoIGFyZWEuICovCiBzdGF0aWMKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2J1Zi9idWYwbHJ1LmMnCi0tLSBhL3N0b3JhZ2UvaW5u b2Jhc2UvYnVmL2J1ZjBscnUuYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29tLTIwMTAxMDE4 MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGxy dS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDU1ODUzLWFuYjcwYzNl cXRoczNlM3UKQEAgLTMyMSw2ICszMjEsNjAgQEAgYnVmX0xSVV9nZXRfcmVjZW50X2xpbWl0KHZv aWQpCiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCitUcnkgdG8gcHV0IGEgYmxvY2sgZnJvbSB0aGUgTFJV IGxpc3QgdG8gdGhlIGZyZWUgbGlzdC4gKi8KKworaWJvb2wKK2J1Zl9MUlVfZnJlZV9ibG9jaygK Ky8qPT09PT09PT09PT09PT09Ki8KKwkJCQkvKiBvdXQ6IFRSVUUgaWYgZnJlZWQgKi8KKwlidWZf YmxvY2tfdCoJYmxvY2spCS8qIGluL291dDogYmxvY2sgdG8gYmUgZnJlZWQgKi8KK3sKKwlpZiAo IWJ1Zl9mbHVzaF9yZWFkeV9mb3JfcmVwbGFjZShibG9jaykpIHsKKwkJcmV0dXJuKEZBTFNFKTsK Kwl9CisKKyNpZmRlZiBVTklWX0RFQlVHCisJaWYgKGJ1Zl9kZWJ1Z19wcmludHMpIHsKKwkJZnBy aW50ZihzdGRlcnIsCisJCQkiUHV0dGluZyBzcGFjZSAlbHUgcGFnZSAlbHUiCisJCQkiIHRvIGZy ZWUgbGlzdFxuIiwKKwkJCSh1bG9uZykgYmxvY2stPnNwYWNlLAorCQkJKHVsb25nKSBibG9jay0+ b2Zmc2V0KTsKKwl9CisjZW5kaWYgLyogVU5JVl9ERUJVRyAqLworCisJYnVmX0xSVV9ibG9ja19y ZW1vdmVfaGFzaGVkX3BhZ2UoYmxvY2spOworCisJbXV0ZXhfZXhpdCgmKGJ1Zl9wb29sLT5tdXRl eCkpOworCW11dGV4X2V4aXQoJmJsb2NrLT5tdXRleCk7CisKKwkvKiBSZW1vdmUgcG9zc2libGUg YWRhcHRpdmUgaGFzaCBpbmRleCBidWlsdCBvbiB0aGUKKwlwYWdlOyBpbiB0aGUgY2FzZSBvZiBB V0UgdGhlIGJsb2NrIG1heSBub3QgaGF2ZSBhCisJZnJhbWUgYXQgYWxsICovCisKKwlpZiAoYmxv Y2stPmZyYW1lKSB7CisJCS8qIFRoZSBwYWdlIHdhcyBkZWNsYXJlZCB1bmluaXRpYWxpemVkCisJ CWJ5IGJ1Zl9MUlVfYmxvY2tfcmVtb3ZlX2hhc2hlZF9wYWdlKCkuCisJCVdlIG5lZWQgdG8gZmxh ZyB0aGUgY29udGVudHMgb2YgdGhlCisJCXBhZ2UgdmFsaWQgKHdoaWNoIGl0IHN0aWxsIGlzKSBp bgorCQlvcmRlciB0byBhdm9pZCBib2d1cyBWYWxncmluZAorCQl3YXJuaW5ncy4gKi8KKwkJVU5J Vl9NRU1fVkFMSUQoYmxvY2stPmZyYW1lLCBVTklWX1BBR0VfU0laRSk7CisJCWJ0cl9zZWFyY2hf ZHJvcF9wYWdlX2hhc2hfaW5kZXgoYmxvY2stPmZyYW1lKTsKKwkJVU5JVl9NRU1fSU5WQUxJRChi bG9jay0+ZnJhbWUsIFVOSVZfUEFHRV9TSVpFKTsKKwl9CisKKwl1dF9hKGJsb2NrLT5idWZfZml4 X2NvdW50ID09IDApOworCisJbXV0ZXhfZW50ZXIoJihidWZfcG9vbC0+bXV0ZXgpKTsKKwltdXRl eF9lbnRlcigmYmxvY2stPm11dGV4KTsKKworCWJ1Zl9MUlVfYmxvY2tfZnJlZV9oYXNoZWRfcGFn ZShibG9jayk7CisKKwlyZXR1cm4oVFJVRSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiBMb29rIGZv ciBhIHJlcGxhY2VhYmxlIGJsb2NrIGZyb20gdGhlIGVuZCBvZiB0aGUgTFJVIGxpc3QgYW5kIHB1 dCBpdCB0bwogdGhlIGZyZWUgbGlzdCBpZiBmb3VuZC4gKi8KIApAQCAtMzQ4LDU0ICs0MDIsMTMg QEAgYnVmX0xSVV9zZWFyY2hfYW5kX2ZyZWVfYmxvY2soCiAJCXV0X2EoYmxvY2stPmluX0xSVV9s aXN0KTsKIAogCQltdXRleF9lbnRlcigmYmxvY2stPm11dGV4KTsKKwkJZnJlZWQgPSBidWZfTFJV X2ZyZWVfYmxvY2soYmxvY2spOworCQltdXRleF9leGl0KCZibG9jay0+bXV0ZXgpOwogCi0JCWlm IChidWZfZmx1c2hfcmVhZHlfZm9yX3JlcGxhY2UoYmxvY2spKSB7Ci0KLSNpZmRlZiBVTklWX0RF QlVHCi0JCQlpZiAoYnVmX2RlYnVnX3ByaW50cykgewotCQkJCWZwcmludGYoc3RkZXJyLAotCQkJ CQkiUHV0dGluZyBzcGFjZSAlbHUgcGFnZSAlbHUiCi0JCQkJCSIgdG8gZnJlZSBsaXN0XG4iLAot CQkJCQkodWxvbmcpIGJsb2NrLT5zcGFjZSwKLQkJCQkJKHVsb25nKSBibG9jay0+b2Zmc2V0KTsK LQkJCX0KLSNlbmRpZiAvKiBVTklWX0RFQlVHICovCi0KLQkJCWJ1Zl9MUlVfYmxvY2tfcmVtb3Zl X2hhc2hlZF9wYWdlKGJsb2NrKTsKLQotCQkJbXV0ZXhfZXhpdCgmKGJ1Zl9wb29sLT5tdXRleCkp OwotCQkJbXV0ZXhfZXhpdCgmYmxvY2stPm11dGV4KTsKLQotCQkJLyogUmVtb3ZlIHBvc3NpYmxl IGFkYXB0aXZlIGhhc2ggaW5kZXggYnVpbHQgb24gdGhlCi0JCQlwYWdlOyBpbiB0aGUgY2FzZSBv ZiBBV0UgdGhlIGJsb2NrIG1heSBub3QgaGF2ZSBhCi0JCQlmcmFtZSBhdCBhbGwgKi8KLQotCQkJ aWYgKGJsb2NrLT5mcmFtZSkgewotCQkJCS8qIFRoZSBwYWdlIHdhcyBkZWNsYXJlZCB1bmluaXRp YWxpemVkCi0JCQkJYnkgYnVmX0xSVV9ibG9ja19yZW1vdmVfaGFzaGVkX3BhZ2UoKS4KLQkJCQlX ZSBuZWVkIHRvIGZsYWcgdGhlIGNvbnRlbnRzIG9mIHRoZQotCQkJCXBhZ2UgdmFsaWQgKHdoaWNo IGl0IHN0aWxsIGlzKSBpbgotCQkJCW9yZGVyIHRvIGF2b2lkIGJvZ3VzIFZhbGdyaW5kCi0JCQkJ d2FybmluZ3MuICovCi0JCQkJVU5JVl9NRU1fVkFMSUQoYmxvY2stPmZyYW1lLCBVTklWX1BBR0Vf U0laRSk7Ci0JCQkJYnRyX3NlYXJjaF9kcm9wX3BhZ2VfaGFzaF9pbmRleChibG9jay0+ZnJhbWUp OwotCQkJCVVOSVZfTUVNX0lOVkFMSUQoYmxvY2stPmZyYW1lLCBVTklWX1BBR0VfU0laRSk7Ci0J CQl9Ci0KLQkJCXV0X2EoYmxvY2stPmJ1Zl9maXhfY291bnQgPT0gMCk7Ci0KLQkJCW11dGV4X2Vu dGVyKCYoYnVmX3Bvb2wtPm11dGV4KSk7Ci0JCQltdXRleF9lbnRlcigmYmxvY2stPm11dGV4KTsK LQotCQkJYnVmX0xSVV9ibG9ja19mcmVlX2hhc2hlZF9wYWdlKGJsb2NrKTsKLQkJCWZyZWVkID0g VFJVRTsKLQkJCW11dGV4X2V4aXQoJmJsb2NrLT5tdXRleCk7Ci0KKwkJaWYgKGZyZWVkKSB7CiAJ CQlicmVhazsKIAkJfQogCi0JCW11dGV4X2V4aXQoJmJsb2NrLT5tdXRleCk7Ci0KIAkJYmxvY2sg PSBVVF9MSVNUX0dFVF9QUkVWKExSVSwgYmxvY2spOwogCQlkaXN0YW5jZSsrOwogCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEv c3RvcmFnZS9pbm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDp2YXNpbC5kaW1vdkBv cmFjbGUuY29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9p bm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CkBAIC03OSw2ICs3OSw3IEBAIGV4dGVy biAiQyIgewogI2luY2x1ZGUgIi4uL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGNyZWEu aCIKICNpbmNsdWRlICIuLi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMGN1ci5oIgogI2lu Y2x1ZGUgIi4uL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwYnRyLmgiCisjaW5jbHVkZSAi Li4vc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2lidWYwaWJ1Zi5oIgogI2luY2x1ZGUgIi4uL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9mc3AwZnNwLmgiCiAjaW5jbHVkZSAiLi4vc3RvcmFnZS9p bm5vYmFzZS9pbmNsdWRlL3N5bmMwc3luYy5oIgogI2luY2x1ZGUgIi4uL3N0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9maWwwZmlsLmgiCkBAIC0zNzIzLDE3ICszNzI0LDE4IEBAIGluY2x1ZGVfZmll bGQ6CiAJCW5fcmVxdWVzdGVkX2ZpZWxkcysrOwogCiAJCXRlbXBsLT5jb2xfbm8gPSBpOworCQl0 ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25vID0gZGljdF9jb2xfZ2V0X2NsdXN0X3Bvc19ub25pbmxp bmUoCisJCQkmaW5kZXgtPnRhYmxlLT5jb2xzW2ldLCBjbHVzdF9pbmRleCk7CisJCXV0X2FkKHRl bXBsLT5jbHVzdF9yZWNfZmllbGRfbm8gIT0gVUxJTlRfVU5ERUZJTkVEKTsKIAogCQlpZiAoaW5k ZXggPT0gY2x1c3RfaW5kZXgpIHsKLQkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSBkaWN0X2NvbF9n ZXRfY2x1c3RfcG9zX25vbmlubGluZSgKLQkJCQkmaW5kZXgtPnRhYmxlLT5jb2xzW2ldLCBpbmRl eCk7CisJCQl0ZW1wbC0+cmVjX2ZpZWxkX25vID0gdGVtcGwtPmNsdXN0X3JlY19maWVsZF9ubzsK IAkJfSBlbHNlIHsKIAkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSBkaWN0X2luZGV4X2dldF9udGhf Y29sX3BvcygKIAkJCQkJCQkJaW5kZXgsIGkpOwotCQl9Ci0KLQkJaWYgKHRlbXBsLT5yZWNfZmll bGRfbm8gPT0gVUxJTlRfVU5ERUZJTkVEKSB7Ci0JCQlwcmVidWlsdC0+bmVlZF90b19hY2Nlc3Nf Y2x1c3RlcmVkID0gVFJVRTsKKwkJCWlmICh0ZW1wbC0+cmVjX2ZpZWxkX25vID09IFVMSU5UX1VO REVGSU5FRCkgeworCQkJCXByZWJ1aWx0LT5uZWVkX3RvX2FjY2Vzc19jbHVzdGVyZWQgPSBUUlVF OworCQkJfQogCQl9CiAKIAkJaWYgKGZpZWxkLT5udWxsX3B0cikgewpAQCAtMzc4NSw5ICszNzg3 LDcgQEAgc2tpcF9maWVsZDoKIAkJZm9yIChpID0gMDsgaSA8IG5fcmVxdWVzdGVkX2ZpZWxkczsg aSsrKSB7CiAJCQl0ZW1wbCA9IHByZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CiAKLQkJCXRl bXBsLT5yZWNfZmllbGRfbm8gPSBkaWN0X2NvbF9nZXRfY2x1c3RfcG9zX25vbmlubGluZSgKLQkJ CQkmaW5kZXgtPnRhYmxlLT5jb2xzW3RlbXBsLT5jb2xfbm9dLAotCQkJCWNsdXN0X2luZGV4KTsK KwkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSB0ZW1wbC0+Y2x1c3RfcmVjX2ZpZWxkX25vOwogCQl9 CiAJfQogfQpAQCAtODk5MCw2ICs4OTkwLDEzIEBAIHN0YXRpYyBNWVNRTF9TWVNWQVJfTE9ORyhh dXRvaW5jX2xvY2tfbW8KICAgQVVUT0lOQ19PTERfU1RZTEVfTE9DS0lORywJLyogTWluaW11bSB2 YWx1ZSAqLwogICBBVVRPSU5DX05PX0xPQ0tJTkcsIDApOwkvKiBNYXhpbXVtIHZhbHVlICovCiAK KyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKK3N0YXRp YyBNWVNRTF9TWVNWQVJfVUlOVChjaGFuZ2VfYnVmZmVyaW5nX2RlYnVnLCBpYnVmX2RlYnVnLAor ICBQTFVHSU5fVkFSX1JRQ01EQVJHLAorICAiRGVidWcgZmxhZ3MgZm9yIElubm9EQiBjaGFuZ2Ug YnVmZmVyaW5nICgwPW5vbmUpIiwKKyAgTlVMTCwgTlVMTCwgMCwgMCwgMSwgMCk7CisjZW5kaWYg LyogVU5JVl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KKwogc3RhdGljIHN0cnVjdCBzdF9t eXNxbF9zeXNfdmFyKiBpbm5vYmFzZV9zeXN0ZW1fdmFyaWFibGVzW109IHsKICAgTVlTUUxfU1lT VkFSKGFkZGl0aW9uYWxfbWVtX3Bvb2xfc2l6ZSksCiAgIE1ZU1FMX1NZU1ZBUihhdXRvZXh0ZW5k X2luY3JlbWVudCksCkBAIC05MDMxLDYgKzkwMzgsOSBAQCBzdGF0aWMgc3RydWN0IHN0X215c3Fs X3N5c192YXIqIGlubm9iYXNlCiAgIE1ZU1FMX1NZU1ZBUih0aHJlYWRfY29uY3VycmVuY3kpLAog ICBNWVNRTF9TWVNWQVIodGhyZWFkX3NsZWVwX2RlbGF5KSwKICAgTVlTUUxfU1lTVkFSKGF1dG9p bmNfbG9ja19tb2RlKSwKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lC VUZfREVCVUcKKyAgTVlTUUxfU1lTVkFSKGNoYW5nZV9idWZmZXJpbmdfZGVidWcpLAorI2VuZGlm IC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCiAgIE5VTEwKIH07CiAKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmMnCi0tLSBhL3N0 b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUu Y29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9pYnVmL2lidWYwaWJ1Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKQEAgLTIyLDYgKzIyLDcgQEAgQ3JlYXRlZCA3LzE5LzE5 OTcgSGVpa2tpIFR1dXJpCiAjaW5jbHVkZSAiYnRyMGN1ci5oIgogI2luY2x1ZGUgImJ0cjBwY3Vy LmgiCiAjaW5jbHVkZSAiYnRyMGJ0ci5oIgorI2luY2x1ZGUgInJvdzB1cGQuaCIKICNpbmNsdWRl ICJzeW5jMHN5bmMuaCIKICNpbmNsdWRlICJkaWN0MGJvb3QuaCIKICNpbmNsdWRlICJmdXQwbHN0 LmgiCkBAIC0xMzcsNiArMTM4LDExIEBAIGFjY2VzcyBvcmRlciBydWxlcy4gKi8KIC8qIEJ1ZmZl ciBwb29sIHNpemUgcGVyIHRoZSBtYXhpbXVtIGluc2VydCBidWZmZXIgc2l6ZSAqLwogI2RlZmlu ZSBJQlVGX1BPT0xfU0laRV9QRVJfTUFYX1NJWkUJMgogCisjaWYgZGVmaW5lZCBVTklWX0RFQlVH IHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVHCisvKiBGbGFnIHRvIGNvbnRyb2wgaW5zZXJ0IGJ1 ZmZlciBkZWJ1Z2dpbmcuICovCit1aW50CWlidWZfZGVidWc7CisjZW5kaWYgLyogVU5JVl9ERUJV RyB8fCBVTklWX0lCVUZfREVCVUcgKi8KKwogLyogVGhlIGluc2VydCBidWZmZXIgY29udHJvbCBz dHJ1Y3R1cmUgKi8KIGlidWZfdCoJaWJ1ZgkJCT0gTlVMTDsKIApAQCAtMjgyNCw2ICsyODMwLDcy IEBAIER1cmluZyBtZXJnZSwgaW5zZXJ0cyB0byBhbiBpbmRleCBwYWdlIGEKIGZyb20gdGhlIGlu c2VydCBidWZmZXIuICovCiBzdGF0aWMKIHZvaWQKK2lidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2Vf bG93KAorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PSovCisJZHR1cGxlX3QqCWVudHJ5LAkv KiBpbjogYnVmZmVyZWQgZW50cnkgdG8gaW5zZXJ0ICovCisJcGFnZV90KgkJcGFnZSwJLyogaW46 IGluZGV4IHBhZ2Ugd2hlcmUgdGhlIGJ1ZmZlcmVkIGVudHJ5CisJCQkJc2hvdWxkIGJlIHBsYWNl ZCAqLworCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qIGluOiByZWNvcmQgZGVzY3JpcHRvciAqLwor CW10cl90KgkJbXRyLAkvKiBpbjogbXRyICovCisJcGFnZV9jdXJfdCoJcGFnZV9jdXIpLyogaW46 IGN1cnNvciBwb3NpdGlvbmVkIG9uIHRoZSByZWNvcmQKKwkJCQlhZnRlciB3aGljaCB0byBpbnNl cnQgdGhlIGJ1ZmZlcmVkIGVudHJ5ICovCit7CisJdWxpbnQJc3BhY2U7CisJdWxpbnQJcGFnZV9u bzsKKwlwYWdlX3QqCWJpdG1hcF9wYWdlOworCXVsaW50CW9sZF9iaXRzOworCisJaWYgKFVOSVZf TElLRUxZCisJICAgIChwYWdlX2N1cl90dXBsZV9pbnNlcnQocGFnZV9jdXIsIGVudHJ5LCBpbmRl eCwgbXRyKSAhPSBOVUxMKSkgeworCQlyZXR1cm47CisJfQorCisJLyogSWYgdGhlIHJlY29yZCBk aWQgbm90IGZpdCwgcmVvcmdhbml6ZSAqLworCisJYnRyX3BhZ2VfcmVvcmdhbml6ZShwYWdlLCBp bmRleCwgbXRyKTsKKworCXBhZ2VfY3VyX3NlYXJjaChwYWdlLCBpbmRleCwgZW50cnksIFBBR0Vf Q1VSX0xFLCBwYWdlX2N1cik7CisKKwkvKiBUaGlzIHRpbWUgdGhlIHJlY29yZCBtdXN0IGZpdCAq LworCisJaWYgKFVOSVZfTElLRUxZCisJICAgIChwYWdlX2N1cl90dXBsZV9pbnNlcnQocGFnZV9j dXIsIGVudHJ5LCBpbmRleCwgbXRyKSAhPSBOVUxMKSkgeworCQlyZXR1cm47CisJfQorCisJdXRf cHJpbnRfdGltZXN0YW1wKHN0ZGVycik7CisKKwlmcHJpbnRmKHN0ZGVyciwKKwkJIiAgSW5ub0RC OiBFcnJvcjogSW5zZXJ0IGJ1ZmZlciBpbnNlcnQgZmFpbHM7IgorCQkiIHBhZ2UgZnJlZSAlbHUs IGR0dXBsZSBzaXplICVsdVxuIiwKKwkJKHVsb25nKSBwYWdlX2dldF9tYXhfaW5zZXJ0X3NpemUo cGFnZSwgMSksCisJCSh1bG9uZykgcmVjX2dldF9jb252ZXJ0ZWRfc2l6ZShpbmRleCwgZW50cnkp KTsKKwlmcHV0cygiSW5ub0RCOiBDYW5ub3QgaW5zZXJ0IGluZGV4IHJlY29yZCAiLCBzdGRlcnIp OworCWR0dXBsZV9wcmludChzdGRlcnIsIGVudHJ5KTsKKwlmcHV0cygiXG5Jbm5vREI6IFRoZSB0 YWJsZSB3aGVyZSB0aGlzIGluZGV4IHJlY29yZCBiZWxvbmdzXG4iCisJICAgICAgIklubm9EQjog aXMgbm93IHByb2JhYmx5IGNvcnJ1cHQuIFBsZWFzZSBydW4gQ0hFQ0sgVEFCTEUgb25cbiIKKwkg ICAgICAiSW5ub0RCOiB0aGF0IHRhYmxlLlxuIiwgc3RkZXJyKTsKKworCXNwYWNlID0gYnVmX2Zy YW1lX2dldF9zcGFjZV9pZChwYWdlKTsKKwlwYWdlX25vID0gYnVmX2ZyYW1lX2dldF9wYWdlX25v KHBhZ2UpOworCisJYml0bWFwX3BhZ2UgPSBpYnVmX2JpdG1hcF9nZXRfbWFwX3BhZ2Uoc3BhY2Us IHBhZ2Vfbm8sIG10cik7CisJb2xkX2JpdHMgPSBpYnVmX2JpdG1hcF9wYWdlX2dldF9iaXRzKGJp dG1hcF9wYWdlLCBwYWdlX25vLAorCQkJCQkgICAgIElCVUZfQklUTUFQX0ZSRUUsIG10cik7CisK KwlmcHJpbnRmKHN0ZGVyciwKKwkJIklubm9EQjogc3BhY2UgJWx1LCBwYWdlICVsdSwgYml0bWFw IGJpdHMgJWx1XG4iLAorCQkodWxvbmcpIHNwYWNlLCAodWxvbmcpIHBhZ2Vfbm8sICh1bG9uZykg b2xkX2JpdHMpOworCisJZnB1dHMoIklubm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJlcG9y dCIKKwkgICAgICAiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwgc3RkZXJyKTsKK30KKwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorRHVyaW5nIG1lcmdlLCBpbnNlcnRzIHRvIGFuIGluZGV4IHBhZ2Ug YSBzZWNvbmRhcnkgaW5kZXggZW50cnkgZXh0cmFjdGVkCitmcm9tIHRoZSBpbnNlcnQgYnVmZmVy LiAqLworc3RhdGljCit2b2lkCiBpYnVmX2luc2VydF90b19pbmRleF9wYWdlKAogLyo9PT09PT09 PT09PT09PT09PT09PT09Ki8KIAlkdHVwbGVfdCoJZW50cnksCS8qIGluOiBidWZmZXJlZCBlbnRy eSB0byBpbnNlcnQgKi8KQEAgLTI4MzUsMTEgKzI5MDcsMTAgQEAgaWJ1Zl9pbnNlcnRfdG9faW5k ZXhfcGFnZSgKIAlwYWdlX2N1cl90CXBhZ2VfY3VyOwogCXVsaW50CQlsb3dfbWF0Y2g7CiAJcmVj X3QqCQlyZWM7Ci0JcGFnZV90KgkJYml0bWFwX3BhZ2U7Ci0JdWxpbnQJCW9sZF9iaXRzOwogCiAJ dXRfYWQoaWJ1Zl9pbnNpZGUoKSk7CiAJdXRfYWQoZHR1cGxlX2NoZWNrX3R5cGVkKGVudHJ5KSk7 CisJdXRfYWQoIWJ1Zl9ibG9ja19hbGlnbihwYWdlKS0+aXNfaGFzaGVkKTsKIAogCWlmIChVTklW X1VOTElLRUxZKGRpY3RfdGFibGVfaXNfY29tcChpbmRleC0+dGFibGUpCiAJCQkgICE9IChpYm9v bCkhIXBhZ2VfaXNfY29tcChwYWdlKSkpIHsKQEAgLTI4NzcsNjEgKzI5NDgsNzkgQEAgZHVtcDoK IAlsb3dfbWF0Y2ggPSBwYWdlX2N1cl9zZWFyY2gocGFnZSwgaW5kZXgsIGVudHJ5LAogCQkJCSAg ICBQQUdFX0NVUl9MRSwgJnBhZ2VfY3VyKTsKIAotCWlmIChsb3dfbWF0Y2ggPT0gZHR1cGxlX2dl dF9uX2ZpZWxkcyhlbnRyeSkpIHsKLQkJcmVjID0gcGFnZV9jdXJfZ2V0X3JlYygmcGFnZV9jdXIp OwotCi0JCWJ0cl9jdXJfZGVsX3VubWFya19mb3JfaWJ1ZihyZWMsIG10cik7Ci0JfSBlbHNlIHsK LQkJcmVjID0gcGFnZV9jdXJfdHVwbGVfaW5zZXJ0KCZwYWdlX2N1ciwgZW50cnksIGluZGV4LCBt dHIpOwotCi0JCWlmIChyZWMgPT0gTlVMTCkgewotCQkJLyogSWYgdGhlIHJlY29yZCBkaWQgbm90 IGZpdCwgcmVvcmdhbml6ZSAqLwotCi0JCQlidHJfcGFnZV9yZW9yZ2FuaXplKHBhZ2UsIGluZGV4 LCBtdHIpOwotCi0JCQlwYWdlX2N1cl9zZWFyY2gocGFnZSwgaW5kZXgsIGVudHJ5LAotCQkJCQlQ QUdFX0NVUl9MRSwgJnBhZ2VfY3VyKTsKLQotCQkJLyogVGhpcyB0aW1lIHRoZSByZWNvcmQgbXVz dCBmaXQgKi8KLQkJCWlmIChVTklWX1VOTElLRUxZKCFwYWdlX2N1cl90dXBsZV9pbnNlcnQoCi0J CQkJCQkgICZwYWdlX2N1ciwgZW50cnksIGluZGV4LAotCQkJCQkJICBtdHIpKSkgewotCi0JCQkJ dXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7Ci0KLQkJCQlmcHJpbnRmKHN0ZGVyciwKLQkJCQkJ IiAgSW5ub0RCOiBFcnJvcjogSW5zZXJ0IGJ1ZmZlciBpbnNlcnQiCi0JCQkJCSIgZmFpbHM7IHBh Z2UgZnJlZSAlbHUsIgotCQkJCQkiIGR0dXBsZSBzaXplICVsdVxuIiwKLQkJCQkJKHVsb25nKSBw YWdlX2dldF9tYXhfaW5zZXJ0X3NpemUoCi0JCQkJCQlwYWdlLCAxKSwKLQkJCQkJKHVsb25nKSBy ZWNfZ2V0X2NvbnZlcnRlZF9zaXplKAotCQkJCQkJaW5kZXgsIGVudHJ5KSk7Ci0JCQkJZnB1dHMo Iklubm9EQjogQ2Fubm90IGluc2VydCBpbmRleCByZWNvcmQgIiwKLQkJCQkgICAgICBzdGRlcnIp OwotCQkJCWR0dXBsZV9wcmludChzdGRlcnIsIGVudHJ5KTsKLQkJCQlmcHV0cygiXG5Jbm5vREI6 IFRoZSB0YWJsZSB3aGVyZSIKLQkJCQkgICAgICAiIHRoaXMgaW5kZXggcmVjb3JkIGJlbG9uZ3Nc biIKLQkJCQkgICAgICAiSW5ub0RCOiBpcyBub3cgcHJvYmFibHkgY29ycnVwdC4iCi0JCQkJICAg ICAgIiBQbGVhc2UgcnVuIENIRUNLIFRBQkxFIG9uXG4iCi0JCQkJICAgICAgIklubm9EQjogdGhh dCB0YWJsZS5cbiIsIHN0ZGVycik7Ci0KLQkJCQliaXRtYXBfcGFnZSA9IGlidWZfYml0bWFwX2dl dF9tYXBfcGFnZSgKLQkJCQkJYnVmX2ZyYW1lX2dldF9zcGFjZV9pZChwYWdlKSwKLQkJCQkJYnVm X2ZyYW1lX2dldF9wYWdlX25vKHBhZ2UpLAotCQkJCQltdHIpOwotCQkJCW9sZF9iaXRzID0gaWJ1 Zl9iaXRtYXBfcGFnZV9nZXRfYml0cygKLQkJCQkJYml0bWFwX3BhZ2UsCi0JCQkJCWJ1Zl9mcmFt ZV9nZXRfcGFnZV9ubyhwYWdlKSwKLQkJCQkJSUJVRl9CSVRNQVBfRlJFRSwgbXRyKTsKKwlpZiAo VU5JVl9VTkxJS0VMWShsb3dfbWF0Y2ggPT0gZHR1cGxlX2dldF9uX2ZpZWxkcyhlbnRyeSkpKSB7 CisJCW1lbV9oZWFwX3QqCWhlYXA7CisJCXVwZF90KgkJdXBkYXRlOworCQl1bGludCoJCW9mZnNl dHM7CiAKLQkJCQlmcHJpbnRmKHN0ZGVyciwgIklubm9EQjogQml0bWFwIGJpdHMgJWx1XG4iLAot CQkJCQkodWxvbmcpIG9sZF9iaXRzKTsKKwkJcmVjID0gcGFnZV9jdXJfZ2V0X3JlYygmcGFnZV9j dXIpOwogCi0JCQkJZnB1dHMoIklubm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJlcG9ydCIK LQkJCQkgICAgICAiIHRvIGh0dHA6Ly9idWdzLm15c3FsLmNvbVxuIiwgc3RkZXJyKTsKLQkJCX0K KwkJLyogVGhpcyBpcyBiYXNlZCBvbgorCQlyb3dfaW5zX3NlY19pbmRleF9lbnRyeV9ieV9tb2Rp ZnkoQlRSX01PRElGWV9MRUFGKS4gKi8KKwkJdXRfYWQocmVjX2dldF9kZWxldGVkX2ZsYWcocmVj LCBwYWdlX2lzX2NvbXAocGFnZSkpKTsKKworCQloZWFwID0gbWVtX2hlYXBfY3JlYXRlKDEwMjQp OworCisJCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCwgTlVMTCwgVUxJTlRf VU5ERUZJTkVELAorCQkJCQkgICZoZWFwKTsKKwkJdXBkYXRlID0gcm93X3VwZF9idWlsZF9zZWNf cmVjX2RpZmZlcmVuY2VfYmluYXJ5KAorCQkJaW5kZXgsIGVudHJ5LCByZWMsIE5VTEwsIGhlYXAp OworCisJCWlmICh1cGRhdGUtPm5fZmllbGRzID09IDApIHsKKwkJCS8qIFRoZSByZWNvcmRzIG9u bHkgZGlmZmVyIGluIHRoZSBkZWxldGUtbWFyay4KKwkJCUNsZWFyIHRoZSBkZWxldGUtbWFyaywg bGlrZSB3ZSBkaWQgYmVmb3JlCisJCQlCdWcgIzU2NjgwIHdhcyBmaXhlZC4gKi8KKwkJCWJ0cl9j dXJfZGVsX3VubWFya19mb3JfaWJ1ZihyZWMsIG10cik7Cit1cGRhdGVkX2luX3BsYWNlOgorCQkJ bWVtX2hlYXBfZnJlZShoZWFwKTsKKwkJCXJldHVybjsKIAkJfQorCisJCS8qIENvcHkgdGhlIGlu Zm8gYml0cy4gQ2xlYXIgdGhlIGRlbGV0ZS1tYXJrLiAqLworCQl1cGRhdGUtPmluZm9fYml0cyA9 IHJlY19nZXRfaW5mb19iaXRzKHJlYywgcGFnZV9pc19jb21wKHBhZ2UpKTsKKwkJdXBkYXRlLT5p bmZvX2JpdHMgJj0gflJFQ19JTkZPX0RFTEVURURfRkxBRzsKKworCQkvKiBXZSBjYW5ub3QgaW52 b2tlIGJ0cl9jdXJfb3B0aW1pc3RpY191cGRhdGUoKSBoZXJlLAorCQliZWNhdXNlIHdlIGRvIG5v dCBoYXZlIGEgYnRyX2N1cl90IG9yIHF1ZV90aHJfdCwKKwkJYXMgdGhlIGluc2VydCBidWZmZXIg bWVyZ2Ugb2NjdXJzIGF0IGEgdmVyeSBsb3cgbGV2ZWwuICovCisJCWlmICghcm93X3VwZF9jaGFu Z2VzX2ZpZWxkX3NpemVfb3JfZXh0ZXJuYWwoaW5kZXgsIG9mZnNldHMsCisJCQkJCQkJICAgIHVw ZGF0ZSkpIHsKKwkJCS8qIFRoaXMgaXMgdGhlIGVhc3kgY2FzZS4gRG8gc29tZXRoaW5nIHNpbWls YXIKKwkJCXRvIGJ0cl9jdXJfdXBkYXRlX2luX3BsYWNlKCkuICovCisJCQlyb3dfdXBkX3JlY19p bl9wbGFjZShyZWMsIG9mZnNldHMsIHVwZGF0ZSk7CisJCQlnb3RvIHVwZGF0ZWRfaW5fcGxhY2U7 CisJCX0KKworCQkvKiBBIGNvbGxhdGlvbiBtYXkgaWRlbnRpZnkgdmFsdWVzIHRoYXQgZGlmZmVy IGluCisJCXN0b3JhZ2UgbGVuZ3RoLgorCQlTb21lIGV4YW1wbGVzICgxIG9yIDIgYnl0ZXMpOgor CQl1dGY4X3R1cmtpc2hfY2k6IEkgPSBVKzAxMzEgTEFUSU4gU01BTEwgTEVUVEVSIERPVExFU1Mg SQorCQl1dGY4X2dlbmVyYWxfY2k6IFMgPSBVKzAwREYgTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQ IFMKKwkJdXRmOF9nZW5lcmFsX2NpOiBBID0gVSswMEU0IExBVElOIFNNQUxMIExFVFRFUiBBIFdJ VEggRElBRVJFU0lTCisKKwkJbGF0aW4xX2dlcm1hbjJfY2k6IFNTID0gVSswMERGIExBVElOIFNN QUxMIExFVFRFUiBTSEFSUCBTCisKKwkJRXhhbXBsZXMgb2YgYSBjaGFyYWN0ZXIgKDMtYnl0ZSBV VEYtOCBzZXF1ZW5jZSkKKwkJaWRlbnRpZmllZCB3aXRoIDIgb3IgNCBjaGFyYWN0ZXJzICgxLWJ5 dGUgVVRGLTggc2VxdWVuY2VzKToKKworCQl1dGY4X3VuaWNvZGVfY2k6ICdJSScgPSBVKzIxNzEg U01BTEwgUk9NQU4gTlVNRVJBTCBUV08KKwkJdXRmOF91bmljb2RlX2NpOiAnKDEwKScgPSBVKzI0 N0QgUEFSRU5USEVTSVpFRCBOVU1CRVIgVEVOCisJCSovCisKKwkJLyogRGVsZXRlIHRoZSBkaWZm ZXJlbnQtbGVuZ3RoIHJlY29yZCwgYW5kIGluc2VydCB0aGUKKwkJYnVmZmVyZWQgb25lLiAqLwor CisJCWxvY2tfcmVjX3N0b3JlX29uX3BhZ2VfaW5maW11bShwYWdlLCByZWMpOworCQlwYWdlX2N1 cl9kZWxldGVfcmVjKCZwYWdlX2N1ciwgaW5kZXgsIG9mZnNldHMsIG10cik7CisJCXBhZ2VfY3Vy X21vdmVfdG9fcHJldigmcGFnZV9jdXIpOworCQltZW1faGVhcF9mcmVlKGhlYXApOworCisJCWli dWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2VfbG93KGVudHJ5LCBwYWdlLCBpbmRleCwgbXRyLAorCQkJ CQkgICAgICAmcGFnZV9jdXIpOworCQlsb2NrX3JlY19yZXN0b3JlX2Zyb21fcGFnZV9pbmZpbXVt KHJlYywgcGFnZSk7CisJfSBlbHNlIHsKKwkJaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZV9sb3co ZW50cnksIHBhZ2UsIGluZGV4LCBtdHIsCisJCQkJCSAgICAgICZwYWdlX2N1cik7CiAJfQogfQog Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBmbHUuaCcK LS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBmbHUuaAlyZXZpZDp2YXNpbC5kaW1v dkBvcmFjbGUuY29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFn ZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBmbHUuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNv bS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CkBAIC0zOCw2ICszOCwyMCBAQCBidWZf Zmx1c2hfaW5pdF9mb3Jfd3JpdGluZygKIAlkdWxpbnQJbmV3ZXN0X2xzbiwJLyogaW46IG5ld2Vz dCBtb2RpZmljYXRpb24gbHNuIHRvIHRoZSBwYWdlICovCiAJdWxpbnQJc3BhY2UsCQkvKiBpbjog c3BhY2UgaWQgKi8KIAl1bGludAlwYWdlX25vKTsJLyogaW46IHBhZ2UgbnVtYmVyICovCisjIGlm IGRlZmluZWQgVU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJVRworLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKK1dyaXRlcyBhIGZsdXNoYWJsZSBwYWdlIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1 ZmZlciBwb29sIHRvIGEgZmlsZS4KK05PVEU6IGJ1Zl9wb29sX211dGV4IGFuZCBibG9jay0+bXV0 ZXggbXVzdCBiZSBoZWxkIHVwb24gZW50ZXJpbmcgdGhpcworZnVuY3Rpb24sIGFuZCB0aGV5IHdp bGwgYmUgcmVsZWFzZWQgYnkgdGhpcyBmdW5jdGlvbiBhZnRlciBmbHVzaGluZy4KK1RoaXMgaXMg bG9vc2VseSBiYXNlZCBvbiBidWZfZmx1c2hfYmF0Y2goKSBhbmQgYnVmX2ZsdXNoX3RyeV9wYWdl KCkuICovCisKK2lib29sCitidWZfZmx1c2hfcGFnZV90cnkoCisvKj09PT09PT09PT09PT09PSov CisJCQkJCS8qIG91dDogVFJVRSBpZiBmbHVzaGVkIGFuZAorCQkJCQltdXRleGVzIHJlbGVhc2Vk ICovCisJYnVmX2Jsb2NrX3QqCWJsb2NrKTsJCS8qITwgaW4vb3V0OiBidWZmZXIgY29udHJvbCBi bG9jayAqLworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIFRoaXMgdXRpbGl0eSBmbHVzaGVzIGRpcnR5IGJsb2NrcyBmcm9tIHRoZSBl bmQgb2YgdGhlIExSVSBsaXN0IG9yIGZsdXNoX2xpc3QuCiBOT1RFIDE6IGluIHRoZSBjYXNlIG9m IGFuIExSVSBmbHVzaCB0aGUgY2FsbGluZyB0aHJlYWQgbWF5IG93biBsYXRjaGVzIHRvCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBscnUuaCcKLS0tIGEv c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2J1ZjBscnUuaAlyZXZpZDp2YXNpbC5kaW1vdkBvcmFj bGUuY29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL2J1ZjBscnUuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEw MTAxOTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CkBAIC02Niw2ICs2NiwxNCBAQCBidWZfTFJVX2dl dF9yZWNlbnRfbGltaXQodm9pZCk7CiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAkJ CS8qIG91dDogdGhlIGxpbWl0OyB6ZXJvIGlmIGNvdWxkIG5vdCBkZXRlcm1pbmUgaXQgKi8KIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCitUcnkgdG8gcHV0IGEgYmxvY2sgZnJvbSB0aGUgTFJVIGxpc3QgdG8gdGhl IGZyZWUgbGlzdC4gKi8KKworaWJvb2wKK2J1Zl9MUlVfZnJlZV9ibG9jaygKKy8qPT09PT09PT09 PT09PT09Ki8KKwkJCQkvKiBvdXQ6IFRSVUUgaWYgZnJlZWQgKi8KKwlidWZfYmxvY2tfdCoJYmxv Y2spOwkvKiBpbi9vdXQ6IGJsb2NrIHRvIGJlIGZyZWVkICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogTG9v ayBmb3IgYSByZXBsYWNlYWJsZSBibG9jayBmcm9tIHRoZSBlbmQgb2YgdGhlIExSVSBsaXN0IGFu ZCBwdXQgaXQgdG8KIHRoZSBmcmVlIGxpc3QgaWYgZm91bmQuICovCiAKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9pYnVmMGlidWYuaAlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29t LTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL2lidWYwaWJ1Zi5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKQEAgLTE4LDYgKzE4LDExIEBAIENyZWF0ZWQgNy8xOS8x OTk3IEhlaWtraSBUdXVyaQogI2luY2x1ZGUgImlidWYwdHlwZXMuaCIKICNpbmNsdWRlICJmc3Aw ZnNwLmgiCiAKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVC VUcKKy8qIEZsYWcgdG8gY29udHJvbCBpbnNlcnQgYnVmZmVyIGRlYnVnZ2luZy4gKi8KK2V4dGVy biB1aW50CQlpYnVmX2RlYnVnOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RF QlVHICovCisKIGV4dGVybiBpYnVmX3QqCWlidWY7CiAKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaCcKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUu Y29tLTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFz ZS9pbmNsdWRlL3JlbTByZWMuaAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAx OTA1NTg1My1hbmI3MGMzZXF0aHMzZTN1CkBAIC0xOSw2ICsxOSw5IEBAIGlmIGFuZCBvbmx5IGlm IHRoZSByZWNvcmQgaXMgdGhlIGZpcnN0IHUKIEItdHJlZSBwYWdlIHRoYXQgaXMgdGhlIGxlZnRt b3N0IHBhZ2Ugb24gaXRzIGxldmVsCiAoUEFHRV9MRVZFTCBpcyBub256ZXJvIGFuZCBGSUxfUEFH RV9QUkVWIGlzIEZJTF9OVUxMKS4gKi8KICNkZWZpbmUgUkVDX0lORk9fTUlOX1JFQ19GTEFHCTB4 MTBVTAorLyogVGhlIGRlbGV0ZWQgZmxhZyBpbiBpbmZvIGJpdHMgKi8KKyNkZWZpbmUgUkVDX0lO Rk9fREVMRVRFRF9GTEFHCTB4MjBVTAkvKiB3aGVuIGJpdCBpcyBzZXQgdG8gMSwgaXQgbWVhbnMg dGhlCisJCQkJCXJlY29yZCBoYXMgYmVlbiBkZWxldGUgbWFya2VkICovCiAKIC8qIE51bWJlciBv ZiBleHRyYSBieXRlcyBpbiBhbiBvbGQtc3R5bGUgcmVjb3JkLAogaW4gYWRkaXRpb24gdG8gdGhl IGRhdGEgYW5kIHRoZSBvZmZzZXRzICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5v YmFzZS9pbmNsdWRlL3JlbTByZWMuaWMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9y ZW0wcmVjLmljCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20tMjAxMDEwMTgxMTIwMTYtd3pq NDU5amNkdnZpamU1cAorKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5pYwly ZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA1NTg1My1hbmI3MGMzZXF0aHMz ZTN1CkBAIC05OCw5ICs5OCw2IEBAIGFuZCB0aGUgc2hpZnQgbmVlZGVkIHRvIG9idGFpbiBlYWNo IGJpdC0KICNkZWZpbmUJUkVDX0lORk9fQklUU19NQVNLCTB4RjBVTAogI2RlZmluZSBSRUNfSU5G T19CSVRTX1NISUZUCTAKIAotLyogVGhlIGRlbGV0ZWQgZmxhZyBpbiBpbmZvIGJpdHMgKi8KLSNk ZWZpbmUgUkVDX0lORk9fREVMRVRFRF9GTEFHCTB4MjBVTAkvKiB3aGVuIGJpdCBpcyBzZXQgdG8g MSwgaXQgbWVhbnMgdGhlCi0JCQkJCXJlY29yZCBoYXMgYmVlbiBkZWxldGUgbWFya2VkICovCiAv KiBUaGUgZm9sbG93aW5nIG1hc2tzIGFyZSB1c2VkIHRvIGZpbHRlciB0aGUgU1FMIG51bGwgYml0 IGZyb20KIG9uZS1ieXRlIGFuZCB0d28tYnl0ZSBvZmZzZXRzICovCiAKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MG15c3FsLmgnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2UvaW5jbHVkZS9yb3cwbXlzcWwuaAlyZXZpZDp2YXNpbC5kaW1vdkBvcmFjbGUuY29t LTIwMTAxMDE4MTEyMDE2LXd6ajQ1OWpjZHZ2aWplNXAKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9p bmNsdWRlL3JvdzBteXNxbC5oCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKQEAgLTQ4NSw2ICs0ODUsMTAgQEAgc3RydWN0IG15c3Fs X3Jvd190ZW1wbF9zdHJ1Y3QgewogCQkJCQlJbm5vYmFzZSByZWNvcmQgaW4gdGhlIGN1cnJlbnQg aW5kZXg7CiAJCQkJCW5vdCBkZWZpbmVkIGlmIHRlbXBsYXRlX3R5cGUgaXMKIAkJCQkJUk9XX01Z U1FMX1dIT0xFX1JPVyAqLworCXVsaW50CWNsdXN0X3JlY19maWVsZF9ubzsJLyogZmllbGQgbnVt YmVyIG9mIHRoZSBjb2x1bW4gaW4gYW4KKwkJCQkJSW5ub2Jhc2UgcmVjb3JkIGluIHRoZSBjbHVz dGVyZWQgaW5kZXg7CisJCQkJCW5vdCBkZWZpbmVkIGlmIHRlbXBsYXRlX3R5cGUgaXMKKwkJCQkJ Uk9XX01ZU1FMX1dIT0xFX1JPVyAqLwogCXVsaW50CW15c3FsX2NvbF9vZmZzZXQ7CS8qIG9mZnNl dCBvZiB0aGUgY29sdW1uIGluIHRoZSBNeVNRTAogCQkJCQlyb3cgZm9ybWF0ICovCiAJdWxpbnQJ bXlzcWxfY29sX2xlbjsJCS8qIGxlbmd0aCBvZiB0aGUgY29sdW1uIGluIHRoZSBNeVNRTAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmgnCi0tLSBh L3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmgJcmV2aWQ6dmFzaWwuZGltb3ZAb3Jh Y2xlLmNvbS0yMDEwMTAxODExMjAxNi13emo0NTlqY2R2dmlqZTVwCisrKyBiL3N0b3JhZ2UvaW5u b2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAx MDEwMTkwNTU4NTMtYW5iNzBjM2VxdGhzM2UzdQpAQCAtMTI5LDkgKzEyOSwxMSBAQCByb3dfdXBk X2NoYW5nZXNfZmllbGRfc2l6ZV9vcl9leHRlcm5hbCgKIAljb25zdCB1bGludCoJb2Zmc2V0cywv KiBpbjogcmVjX2dldF9vZmZzZXRzKHJlYywgaW5kZXgpICovCiAJdXBkX3QqCQl1cGRhdGUpOy8q IGluOiB1cGRhdGUgdmVjdG9yICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi1SZXBsYWNlcyB0aGUgbmV3IGNvbHVtbiB2 YWx1ZXMgc3RvcmVkIGluIHRoZSB1cGRhdGUgdmVjdG9yIHRvIHRoZSByZWNvcmQKLWdpdmVuLiBO byBmaWVsZCBzaXplIGNoYW5nZXMgYXJlIGFsbG93ZWQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBv bmx5IGZvcgotYSBjbHVzdGVyZWQgaW5kZXggKi8KK1JlcGxhY2VzIHRoZSBuZXcgY29sdW1uIHZh bHVlcyBzdG9yZWQgaW4gdGhlIHVwZGF0ZSB2ZWN0b3IgdG8gdGhlCityZWNvcmQgZ2l2ZW4uIE5v IGZpZWxkIHNpemUgY2hhbmdlcyBhcmUgYWxsb3dlZC4gVGhpcyBmdW5jdGlvbiBpcwordXN1YWxs eSBpbnZva2VkIG9uIGEgY2x1c3RlcmVkIGluZGV4LiBUaGUgb25seSB1c2UgY2FzZSBmb3IgYQor c2Vjb25kYXJ5IGluZGV4IGlzIHJvd19pbnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlmeSgpIG9y IGl0cworY291bnRlcnBhcnQgaW4gaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZSgpLiAqLwogCiB2 b2lkCiByb3dfdXBkX3JlY19pbl9wbGFjZSgKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lu bm9iYXNlL3Jvdy9yb3cwbXlzcWwuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15 c3FsLmMJcmV2aWQ6dmFzaWwuZGltb3ZAb3JhY2xlLmNvbS0yMDEwMTAxODExMjAxNi13emo0NTlq Y2R2dmlqZTVwCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDU1ODUzLWFuYjcwYzNlcXRoczNlM3UKQEAg LTQwMCw3ICs0MDAsNyBAQCByb3dfbXlzcWxfY29udmVydF9yb3dfdG9faW5ub2Jhc2UoCiAJCQkJ CXJvdyBpcyB1c2VkLCBhcyByb3cgbWF5IGNvbnRhaW4KIAkJCQkJcG9pbnRlcnMgdG8gdGhpcyBy ZWNvcmQhICovCiB7Ci0JbXlzcWxfcm93X3RlbXBsX3QqCXRlbXBsOworCWNvbnN0IG15c3FsX3Jv d190ZW1wbF90KnRlbXBsOwogCWRmaWVsZF90KgkJZGZpZWxkOwogCXVsaW50CQkJaTsKIAoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBzZWwuYycKLS0tIGEvc3Rv cmFnZS9pbm5vYmFzZS9yb3cvcm93MHNlbC5jCXJldmlkOnZhc2lsLmRpbW92QG9yYWNsZS5jb20t MjAxMDEwMTgxMTIwMTYtd3pqNDU5amNkdnZpamU1cAorKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jv dy9yb3cwc2VsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwNTU4NTMt YW5iNzBjM2VxdGhzM2UzdQpAQCAtMjYwMSwyMCArMjYwMSwyMSBAQCByb3dfc2VsX3N0b3JlX215 c3FsX3JlYygKIAlyb3dfcHJlYnVpbHRfdCoJcHJlYnVpbHQsCS8qIGluOiBwcmVidWlsdCBzdHJ1 Y3QgKi8KIAlyZWNfdCoJCXJlYywJCS8qIGluOiBJbm5vYmFzZSByZWNvcmQgaW4gdGhlIGluZGV4 CiAJCQkJCXdoaWNoIHdhcyBkZXNjcmliZWQgaW4gcHJlYnVpbHQncwotCQkJCQl0ZW1wbGF0ZSAq LworCQkJCQl0ZW1wbGF0ZSwgb3IgaW4gdGhlIGNsdXN0ZXJlZCBpbmRleDsKKwkJCQkJbXVzdCBi ZSBwcm90ZWN0ZWQgYnkgYSBwYWdlIGxhdGNoICovCisJaWJvb2wJCXJlY19jbHVzdCwJLyogaW46 IFRSVUUgaWYgcmVjIGlzIGluIHRoZSBjbHVzdGVyZWQKKwkJCQkJaW5kZXggaW5zdGVhZCBvZiBw cmVidWlsdC0+aW5kZXggKi8KIAljb25zdCB1bGludCoJb2Zmc2V0cykJLyogaW46IGFycmF5IHJl dHVybmVkIGJ5Ci0JCQkJCXJlY19nZXRfb2Zmc2V0cygpICovCisJCQkJCXJlY19nZXRfb2Zmc2V0 cyhyZWMpICovCiB7Ci0JbXlzcWxfcm93X3RlbXBsX3QqCXRlbXBsOwogCW1lbV9oZWFwX3QqCQll eHRlcm5fZmllbGRfaGVhcAk9IE5VTEw7CiAJbWVtX2hlYXBfdCoJCWhlYXA7Ci0JYnl0ZSoJCQlk YXRhOwotCXVsaW50CQkJbGVuOwogCXVsaW50CQkJaTsKIAogCXV0X2FkKHByZWJ1aWx0LT5teXNx bF90ZW1wbGF0ZSk7CiAJdXRfYWQocHJlYnVpbHQtPmRlZmF1bHRfcmVjKTsKIAl1dF9hZChyZWNf b2Zmc192YWxpZGF0ZShyZWMsIE5VTEwsIG9mZnNldHMpKTsKKwl1dF9hZCghcmVjX2dldF9kZWxl dGVkX2ZsYWcocmVjLCByZWNfb2Zmc19jb21wKG9mZnNldHMpKSk7CiAKIAlpZiAoVU5JVl9MSUtF TFlfTlVMTChwcmVidWlsdC0+YmxvYl9oZWFwKSkgewogCQltZW1faGVhcF9mcmVlKHByZWJ1aWx0 LT5ibG9iX2hlYXApOwpAQCAtMjYyMywxMCArMjYyNCwxNSBAQCByb3dfc2VsX3N0b3JlX215c3Fs X3JlYygKIAogCWZvciAoaSA9IDA7IGkgPCBwcmVidWlsdC0+bl90ZW1wbGF0ZTsgaSsrKSB7CiAK LQkJdGVtcGwgPSBwcmVidWlsdC0+bXlzcWxfdGVtcGxhdGUgKyBpOworCQljb25zdCBteXNxbF9y b3dfdGVtcGxfdCp0ZW1wbCA9IHByZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CisJCWJ5dGUq CQkJZGF0YTsKKwkJdWxpbnQJCQlsZW47CisJCXVsaW50CQkJZmllbGRfbm87CiAKLQkJaWYgKFVO SVZfVU5MSUtFTFkocmVjX29mZnNfbnRoX2V4dGVybihvZmZzZXRzLAotCQkJCQkJICAgICAgdGVt cGwtPnJlY19maWVsZF9ubykpKSB7CisJCWZpZWxkX25vID0gcmVjX2NsdXN0CisJCQk/IHRlbXBs LT5jbHVzdF9yZWNfZmllbGRfbm8gOiB0ZW1wbC0+cmVjX2ZpZWxkX25vOworCisJCWlmIChVTklW X1VOTElLRUxZKHJlY19vZmZzX250aF9leHRlcm4ob2Zmc2V0cywgZmllbGRfbm8pKSkgewogCiAJ CQkvKiBDb3B5IGFuIGV4dGVybmFsbHkgc3RvcmVkIGZpZWxkIHRvIHRoZSB0ZW1wb3JhcnkKIAkJ CWhlYXAgKi8KQEAgLTI2NTIsMTUgKzI2NTgsMTMgQEAgcm93X3NlbF9zdG9yZV9teXNxbF9yZWMo CiAJCQljYXVzZXMgYW4gYXNzZXJ0ICovCiAKIAkJCWRhdGEgPSBidHJfcmVjX2NvcHlfZXh0ZXJu YWxseV9zdG9yZWRfZmllbGQoCi0JCQkJcmVjLCBvZmZzZXRzLCB0ZW1wbC0+cmVjX2ZpZWxkX25v LAotCQkJCSZsZW4sIGhlYXApOworCQkJCXJlYywgb2Zmc2V0cywgZmllbGRfbm8sICZsZW4sIGhl YXApOwogCiAJCQl1dF9hKGxlbiAhPSBVTklWX1NRTF9OVUxMKTsKIAkJfSBlbHNlIHsKIAkJCS8q IEZpZWxkIGlzIHN0b3JlZCBpbiB0aGUgcm93LiAqLwogCi0JCQlkYXRhID0gcmVjX2dldF9udGhf ZmllbGQocmVjLCBvZmZzZXRzLAotCQkJCQkJIHRlbXBsLT5yZWNfZmllbGRfbm8sICZsZW4pOwor CQkJZGF0YSA9IHJlY19nZXRfbnRoX2ZpZWxkKHJlYywgb2Zmc2V0cywgZmllbGRfbm8sICZsZW4p OwogCiAJCQlpZiAoVU5JVl9VTkxJS0VMWSh0ZW1wbC0+dHlwZSA9PSBEQVRBX0JMT0IpCiAJCQkg ICAgJiYgbGVuICE9IFVOSVZfU1FMX05VTEwpIHsKQEAgLTMwMTksNyArMzAyMyw3IEBAIHJvd19z ZWxfcG9wX2NhY2hlZF9yb3dfZm9yX215c3FsKAogCXJvd19wcmVidWlsdF90KglwcmVidWlsdCkJ LyogaW46IHByZWJ1aWx0IHN0cnVjdCAqLwogewogCXVsaW50CQkJaTsKLQlteXNxbF9yb3dfdGVt cGxfdCoJdGVtcGw7CisJY29uc3QgbXlzcWxfcm93X3RlbXBsX3QqdGVtcGw7CiAJYnl0ZSoJCQlj YWNoZWRfcmVjOwogCXV0X2FkKHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZCA+IDApOwogCXV0X2Fk KHByZWJ1aWx0LT5teXNxbF9wcmVmaXhfbGVuIDw9IHByZWJ1aWx0LT5teXNxbF9yb3dfbGVuKTsK QEAgLTMwNzUsMTQgKzMwNzksMTkgQEAgdm9pZAogcm93X3NlbF9wdXNoX2NhY2hlX3Jvd19mb3Jf bXlzcWwoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAlyb3dfcHJlYnVpbHRf dCoJcHJlYnVpbHQsCS8qIGluOiBwcmVidWlsdCBzdHJ1Y3QgKi8KLQlyZWNfdCoJCXJlYywJCS8q IGluOiByZWNvcmQgdG8gcHVzaCAqLwotCWNvbnN0IHVsaW50KglvZmZzZXRzKQkvKiBpbjogcmVj X2dldF9vZmZzZXRzKCkgKi8KKwlyZWNfdCoJCXJlYywJCS8qIGluOiBJbm5vYmFzZSByZWNvcmQg aW4gdGhlIGluZGV4CisJCQkJCXdoaWNoIHdhcyBkZXNjcmliZWQgaW4gcHJlYnVpbHQncworCQkJ CQl0ZW1wbGF0ZSwgb3IgaW4gdGhlIGNsdXN0ZXJlZCBpbmRleCAqLworCWlib29sCQlyZWNfY2x1 c3QsCS8qIGluOiBUUlVFIGlmIHJlYyBpcyBpbiB0aGUgY2x1c3RlcmVkCisJCQkJCWluZGV4IGlu c3RlYWQgb2YgcHJlYnVpbHQtPmluZGV4ICovCisJY29uc3QgdWxpbnQqCW9mZnNldHMpCS8qIGlu OiByZWNfZ2V0X29mZnNldHMocmVjKSAqLwogewogCWJ5dGUqCWJ1ZjsKIAl1bGludAlpOwogCiAJ dXRfYWQocHJlYnVpbHQtPm5fZmV0Y2hfY2FjaGVkIDwgTVlTUUxfRkVUQ0hfQ0FDSEVfU0laRSk7 CiAJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVjLCBOVUxMLCBvZmZzZXRzKSk7CisJdXRfYWQo IXJlY19nZXRfZGVsZXRlZF9mbGFnKHJlYywgcmVjX29mZnNfY29tcChvZmZzZXRzKSkpOwogCXV0 X2EoIXByZWJ1aWx0LT50ZW1wbF9jb250YWluc19ibG9iKTsKIAogCWlmIChwcmVidWlsdC0+ZmV0 Y2hfY2FjaGVbMF0gPT0gTlVMTCkgewpAQCAtMzExMSw3ICszMTIwLDcgQEAgcm93X3NlbF9wdXNo X2NhY2hlX3Jvd19mb3JfbXlzcWwoCiAJaWYgKFVOSVZfVU5MSUtFTFkoIXJvd19zZWxfc3RvcmVf bXlzcWxfcmVjKAogCQkJCSAgcHJlYnVpbHQtPmZldGNoX2NhY2hlWwogCQkJCQkgIHByZWJ1aWx0 LT5uX2ZldGNoX2NhY2hlZF0sCi0JCQkJICBwcmVidWlsdCwgcmVjLCBvZmZzZXRzKSkpIHsKKwkJ CQkgIHByZWJ1aWx0LCByZWMsIHJlY19jbHVzdCwgb2Zmc2V0cykpKSB7CiAJCXV0X2Vycm9yOwog CX0KIApAQCAtMzUwMCw3ICszNTA5LDggQEAgcm93X3NlYXJjaF9mb3JfbXlzcWwoCiAJCQkJCQkJ IHJlYywgb2Zmc2V0cykpOwogI2VuZGlmCiAJCQkJaWYgKCFyb3dfc2VsX3N0b3JlX215c3FsX3Jl YyhidWYsIHByZWJ1aWx0LAotCQkJCQkJCSAgICAgcmVjLCBvZmZzZXRzKSkgeworCQkJCQkJCSAg ICAgcmVjLCBGQUxTRSwKKwkJCQkJCQkgICAgIG9mZnNldHMpKSB7CiAJCQkJCWVyciA9IERCX1RP T19CSUdfUkVDT1JEOwogCiAJCQkJCS8qIFdlIGxldCB0aGUgbWFpbiBsb29wIHRvIGRvIHRoZQpA QCAtNDIzMywxOSArNDI0Myw4IEBAIHJlcXVpcmVzX2NsdXN0X3JlYzoKIAkJCWdvdG8gbmV4dF9y ZWM7CiAJCX0KIAotCQlpZiAocHJlYnVpbHQtPm5lZWRfdG9fYWNjZXNzX2NsdXN0ZXJlZCkgewot Ci0JCQlyZXN1bHRfcmVjID0gY2x1c3RfcmVjOwotCi0JCQl1dF9hZChyZWNfb2Zmc192YWxpZGF0 ZShyZXN1bHRfcmVjLCBjbHVzdF9pbmRleCwKLQkJCQkJCW9mZnNldHMpKTsKLQkJfSBlbHNlIHsK LQkJCS8qIFdlIHVzZWQgJ29mZnNldHMnIGZvciB0aGUgY2x1c3QgcmVjLCByZWNhbGN1bGF0ZQot CQkJdGhlbSBmb3IgJ3JlYycgKi8KLQkJCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBp bmRleCwgb2Zmc2V0cywKLQkJCQkJCSAgVUxJTlRfVU5ERUZJTkVELCAmaGVhcCk7Ci0JCQlyZXN1 bHRfcmVjID0gcmVjOwotCQl9CisJCXJlc3VsdF9yZWMgPSBjbHVzdF9yZWM7CisJCXV0X2FkKHJl Y19vZmZzX3ZhbGlkYXRlKHJlc3VsdF9yZWMsIGNsdXN0X2luZGV4LCBvZmZzZXRzKSk7CiAJfSBl bHNlIHsKIAkJcmVzdWx0X3JlYyA9IHJlYzsKIAl9CkBAIC00MjU2LDYgKzQyNTUsNyBAQCByZXF1 aXJlc19jbHVzdF9yZWM6CiAJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVzdWx0X3JlYywKIAkJ CQlyZXN1bHRfcmVjICE9IHJlYyA/IGNsdXN0X2luZGV4IDogaW5kZXgsCiAJCQkJb2Zmc2V0cykp OworCXV0X2FkKCFyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhyZXN1bHRfcmVjLCBjb21wKSk7CiAKIAlp ZiAoKG1hdGNoX21vZGUgPT0gUk9XX1NFTF9FWEFDVAogCSAgICAgfHwgcHJlYnVpbHQtPm5fcm93 c19mZXRjaGVkID49IE1ZU1FMX0ZFVENIX0NBQ0hFX1RIUkVTSE9MRCkKQEAgLTQyNzYsNyArNDI3 Niw3IEBAIHJlcXVpcmVzX2NsdXN0X3JlYzoKIAkJY3Vyc29yLiAqLwogCiAJCXJvd19zZWxfcHVz aF9jYWNoZV9yb3dfZm9yX215c3FsKHByZWJ1aWx0LCByZXN1bHRfcmVjLAotCQkJCQkJIG9mZnNl dHMpOworCQkJCQkJIHJlc3VsdF9yZWMgIT0gcmVjLCBvZmZzZXRzKTsKIAkJaWYgKHByZWJ1aWx0 LT5uX2ZldGNoX2NhY2hlZCA9PSBNWVNRTF9GRVRDSF9DQUNIRV9TSVpFKSB7CiAKIAkJCWdvdG8g Z290X3JvdzsKQEAgLTQyODQsMTUgKzQyODQsMzEgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCiAJ CWdvdG8gbmV4dF9yZWM7CiAJfSBlbHNlIHsKLQkJaWYgKHByZWJ1aWx0LT50ZW1wbGF0ZV90eXBl ID09IFJPV19NWVNRTF9EVU1NWV9URU1QTEFURSkgeworCQlpZiAoVU5JVl9VTkxJS0VMWQorCQkg ICAgKHByZWJ1aWx0LT50ZW1wbGF0ZV90eXBlID09IFJPV19NWVNRTF9EVU1NWV9URU1QTEFURSkp IHsKKwkJCS8qIENIRUNLIFRBQkxFOiBmZXRjaCB0aGUgcm93ICovCisKKwkJCWlmIChyZXN1bHRf cmVjICE9IHJlYworCQkJICAgICYmICFwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVk KSB7CisJCQkJLyogV2UgdXNlZCAnb2Zmc2V0cycgZm9yIHRoZSBjbHVzdAorCQkJCXJlYywgcmVj YWxjdWxhdGUgdGhlbSBmb3IgJ3JlYycgKi8KKwkJCQlvZmZzZXRzID0gcmVjX2dldF9vZmZzZXRz KHJlYywgaW5kZXgsIG9mZnNldHMsCisJCQkJCQkJICBVTElOVF9VTkRFRklORUQsCisJCQkJCQkJ ICAmaGVhcCk7CisJCQkJcmVzdWx0X3JlYyA9IHJlYzsKKwkJCX0KKwogCQkJbWVtY3B5KGJ1ZiAr IDQsIHJlc3VsdF9yZWMKIAkJCSAgICAgICAtIHJlY19vZmZzX2V4dHJhX3NpemUob2Zmc2V0cyks CiAJCQkgICAgICAgcmVjX29mZnNfc2l6ZShvZmZzZXRzKSk7CiAJCQltYWNoX3dyaXRlX3RvXzQo YnVmLAogCQkJCQlyZWNfb2Zmc19leHRyYV9zaXplKG9mZnNldHMpICsgNCk7CiAJCX0gZWxzZSB7 Ci0JCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKGJ1ZiwgcHJlYnVpbHQsCi0JCQkJCQkg ICAgIHJlc3VsdF9yZWMsIG9mZnNldHMpKSB7CisJCQkvKiBSZXR1cm5pbmcgYSByb3cgdG8gTXlT UUwgKi8KKworCQkJaWYgKCFyb3dfc2VsX3N0b3JlX215c3FsX3JlYyhidWYsIHByZWJ1aWx0LCBy ZXN1bHRfcmVjLAorCQkJCQkJICAgICByZXN1bHRfcmVjICE9IHJlYywKKwkJCQkJCSAgICAgb2Zm c2V0cykpIHsKIAkJCQllcnIgPSBEQl9UT09fQklHX1JFQ09SRDsKIAogCQkJCWdvdG8gbG9ja193 YWl0X29yX2Vycm9yOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzB1cGQuYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jCXJldmlkOnZhc2ls LmRpbW92QG9yYWNsZS5jb20tMjAxMDEwMTgxMTIwMTYtd3pqNDU5amNkdnZpamU1cAorKysgYi9z dG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5j b20tMjAxMDEwMTkwNTU4NTMtYW5iNzBjM2VxdGhzM2UzdQpAQCAtNDMwLDkgKzQzMCwxMSBAQCBy b3dfdXBkX2NoYW5nZXNfZmllbGRfc2l6ZV9vcl9leHRlcm5hbCgKIH0KIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotUmVw bGFjZXMgdGhlIG5ldyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0 byB0aGUgcmVjb3JkCi1naXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiBU aGlzIGZ1bmN0aW9uIGlzIHVzZWQgb25seSBmb3IKLWEgY2x1c3RlcmVkIGluZGV4ICovCitSZXBs YWNlcyB0aGUgbmV3IGNvbHVtbiB2YWx1ZXMgc3RvcmVkIGluIHRoZSB1cGRhdGUgdmVjdG9yIHRv IHRoZQorcmVjb3JkIGdpdmVuLiBObyBmaWVsZCBzaXplIGNoYW5nZXMgYXJlIGFsbG93ZWQuIFRo aXMgZnVuY3Rpb24gaXMKK3VzdWFsbHkgaW52b2tlZCBvbiBhIGNsdXN0ZXJlZCBpbmRleC4gVGhl IG9ubHkgdXNlIGNhc2UgZm9yIGEKK3NlY29uZGFyeSBpbmRleCBpcyByb3dfaW5zX3NlY19pbmRl eF9lbnRyeV9ieV9tb2RpZnkoKSBvciBpdHMKK2NvdW50ZXJwYXJ0IGluIGlidWZfaW5zZXJ0X3Rv X2luZGV4X3BhZ2UoKS4gKi8KIAogdm9pZAogcm93X3VwZF9yZWNfaW5fcGxhY2UoCgo= --===============1107850812== 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: 22c8f4e7ae5589316fdd6f128295009cf2aac26e # timestamp: 2010-10-19 08:59:08 +0300 # base_revision_id: vasil.dimov@stripped\ # wzj459jcdvvije5p # # Begin bundle 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 /4AQD3ovdBuIyU/8c27/4u5IpwoSD29DIkA= --===============1107850812==--