From: marko.makela Date: October 19 2010 10:14am Subject: bzr push into mysql-trunk-innodb branch (marko.makela:3253 to 3255) List-Archive: http://lists.mysql.com/commits/121097 Message-Id: <201010191015.o9JA1w0U028429@rcsinet15.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1859321068==" --===============1859321068== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline IDMyNTUgTWFya28gTcOka2Vsw6QJMjAxMC0xMC0xOSBbbWVyZ2VdCiAgICAgIE1lcmdlIGZyb20g bXlzcWwtNS41LWlubm9kYiB0byBteXNxbC10cnVuay1pbm5vZGIKCiAgICBhZGRlZDoKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTY2ODAucmVzdWx0CiAgICAgIG15 c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU2NjgwLnRlc3QKICAgIG1vZGlmaWVk OgogICAgICBzdG9yYWdlL2lubm9iYXNlL2J0ci9idHIwY3VyLmMKICAgICAgc3RvcmFnZS9pbm5v YmFzZS9idWYvYnVmMGJ1Zi5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBmbHUuYwog ICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2Uv aW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYwogICAgICBzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUv YnRyMGN1ci5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwZmx1LmgKICAgICAg c3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL2lidWYwaWJ1Zi5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jh c2UvaW5jbHVkZS9yZW0wcmVjLmgKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzBt eXNxbC5oCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwdXBkLmgKICAgICAgc3Rv cmFnZS9pbm5vYmFzZS9yZW0vcmVtMHJlYy5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3Jv dzBteXNxbC5jCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2Uvcm93L3JvdzBzZWwuYwogICAgICBzdG9y YWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmMKIDMyNTQgTWFya28gTcOka2Vsw6QJMjAxMC0xMC0x OSBbbWVyZ2VdCiAgICAgIE1lcmdlIGZyb20gbXlzcWwtNS41LWlubm9kYiB0byBteXNxbC10cnVu ay1pbm5vZGIKCiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5v ZGJfYnVnNTcyNTIucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2Ri X2J1ZzU3MjUyLnRlc3QKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNlL2hhbmRs ZXIvaGFfaW5ub2RiLmNjCiAgICAgIHN0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIu aAogICAgICBzdG9yYWdlL2lubm9iYXNlL29zL29zMHN5bmMuYwogMzI1MyBNYXJrbyBNw6RrZWzD pAkyMDEwLTEwLTE5IFttZXJnZV0KICAgICAgTWVyZ2UgZnJvbSBteXNxbC01LjUtaW5ub2RiIHRv IG15c3FsLXRydW5rLWlubm9kYgoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3N1aXRlL2lu bm9kYi9yL2lubm9kYl9idWc1NjE0My5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9pbm5v ZGIvdC9pbm5vZGJfYnVnNTYxNDMudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIHN0b3JhZ2UvaW5u b2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuY2MKICAgICAgc3RvcmFnZS9pbm5vYmFzZS9zcnYvc3J2 MHN0YXJ0LmMKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2Ri X2J1ZzU2NjgwLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJf YnVnNTY2ODAucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC9zdWl0ZS9pbm5vZGIvci9pbm5vZGJfYnVnNTY2ODAucmVzdWx0CXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAgLTAsMCArMSwx MDkgQEAKK1NFVCBHTE9CQUwgdHhfaXNvbGF0aW9uPSdSRVBFQVRBQkxFLVJFQUQnOworU0VUIEdM T0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQ9QmFycmFjdWRhOworU0VUIEdMT0JBTCBpbm5vZGJfZmls ZV9wZXJfdGFibGU9b247CitDUkVBVEUgVEFCTEUgYnVnNTY2ODAoCithIElOVCBBVVRPX0lOQ1JF TUVOVCBQUklNQVJZIEtFWSwKK2IgQ0hBUigxKSwKK2MgSU5ULAorSU5ERVgoYikpCitFTkdJTkU9 SW5ub0RCOworSU5TRVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDAsJ3gnLDEpOworQkVHSU47CitT RUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwOworYgoreAorQkVHSU47CitVUERBVEUgYnVnNTY2ODAgU0VU IGI9J1gnOworU0VMRUNUIGIgRlJPTSBidWc1NjY4MDsKK2IKK3gKK1NFTEVDVCAqIEZST00gYnVn NTY2ODA7CithCWIJYworMQl4CTEKK1JPTExCQUNLOworU0VMRUNUIGIgRlJPTSBidWc1NjY4MDsK K2IKK3gKK1NFVCBHTE9CQUwgdHhfaXNvbGF0aW9uPSdSRUFELVVOQ09NTUlUVEVEJzsKK0lOU0VS VCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8g YnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4 MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVD VCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixj IEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBi dWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2Njgw OworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNF UlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRP IGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2 ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitCRUdJTjsKK1NFTEVDVCBiIEZST00gYnVn NTY2ODAgTElNSVQgMjsKK2IKK3gKK3gKK0JFR0lOOworREVMRVRFIEZST00gYnVnNTY2ODAgV0hF UkUgYT0xOworSU5TRVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDEsJ1gnLDEpOworU0VMRUNUIGIg RlJPTSBidWc1NjY4MCBMSU1JVCAzOworYgorWAoreAoreAorU0VMRUNUIGIgRlJPTSBidWc1NjY4 MCBMSU1JVCAyOworYgoreAoreAorQ0hFQ0sgVEFCTEUgYnVnNTY2ODA7CitUYWJsZQlPcAlNc2df dHlwZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MAljaGVjawlzdGF0dXMJT0sKK1JPTExCQUNLOwor U0VMRUNUIGIgRlJPTSBidWc1NjY4MCBMSU1JVCAyOworYgoreAoreAorQ0hFQ0sgVEFCTEUgYnVn NTY2ODA7CitUYWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MAljaGVjawlz dGF0dXMJT0sKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKK2IKK3gKK3gKK0NSRUFU RSBUQUJMRSBidWc1NjY4MF8yKAorYSBJTlQgQVVUT19JTkNSRU1FTlQgUFJJTUFSWSBLRVksCiti IFZBUkNIQVIoMikgQ0hBUlNFVCBsYXRpbjEgQ09MTEFURSBsYXRpbjFfZ2VybWFuMl9jaSwKK2Mg SU5ULAorSU5ERVgoYikpCitFTkdJTkU9SW5ub0RCOworSU5TRVJUIElOVE8gYnVnNTY2ODBfMiBT RUxFQ1QgMCxfbGF0aW4xIDB4ZGYsYyBGUk9NIGJ1ZzU2NjgwOworQkVHSU47CitTRUxFQ1QgSEVY KGIpIEZST00gYnVnNTY2ODBfMiBMSU1JVCAyOworSEVYKGIpCitERgorREYKK0RFTEVURSBGUk9N IGJ1ZzU2NjgwXzIgV0hFUkUgYT0xOworSU5TRVJUIElOVE8gYnVnNTY2ODBfMiBWQUxVRVMoMSwn U1MnLDEpOworU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2NjgwXzIgTElNSVQgMzsKK0hFWChiKQor NTM1MworREYKK0RGCitDSEVDSyBUQUJMRSBidWc1NjY4MF8yOworVGFibGUJT3AJTXNnX3R5cGUJ TXNnX3RleHQKK3Rlc3QuYnVnNTY2ODBfMgljaGVjawlzdGF0dXMJT0sKK0FMVEVSIFRBQkxFIGJ1 ZzU2NjgwXzIgUk9XX0ZPUk1BVD1DT01QUkVTU0VEIEtFWV9CTE9DS19TSVpFPTE7CitTRUxFQ1Qg SEVYKGIpIEZST00gYnVnNTY2ODBfMiBMSU1JVCAyOworSEVYKGIpCis1MzUzCitERgorREVMRVRF IEZST00gYnVnNTY2ODBfMiBXSEVSRSBhPTE7CitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFZBTFVF UygxLF9sYXRpbjEgMHhkZiwxKTsKK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4MF8yIExJTUlU IDM7CitIRVgoYikKK0RGCitERgorREYKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwXzI7CitUYWJsZQlP cAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc1NjY4MF8yCWNoZWNrCXN0YXR1cwlPSworRFJP UCBUQUJMRSBidWc1NjY4MF8yOworRFJPUCBUQUJMRSBidWc1NjY4MDsKCj09PSBhZGRlZCBmaWxl ICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi9yL2lubm9kYl9idWc1NzI1Mi5yZXN1bHQnCi0tLSBh L215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2RiX2J1ZzU3MjUyLnJlc3VsdAkxOTcwLTAx LTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3IvaW5ub2Ri X2J1ZzU3MjUyLnJlc3VsdAlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTEw MDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC0wLDAgKzEsNiBAQAorY2FyZGluYWxpdHkKKzEwCitU YWJsZQlPcAlNc2dfdHlwZQlNc2dfdGV4dAordGVzdC5idWc1NzI1MglhbmFseXplCXN0YXR1cwlP SworY2FyZGluYWxpdHkKKzEwCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9pbm5v ZGIvdC9pbm5vZGJfYnVnNTY2ODAudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9pbm5vZGIv dC9pbm5vZGJfYnVnNTY2ODAudGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiX2J1ZzU2NjgwLnRlc3QJcmV2aWQ6bWFya28u bWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAtMCww ICsxLDE0MiBAQAorIworIyBCdWcgIzU2NjgwIElubm9EQiBtYXkgcmV0dXJuIHdyb25nIHJlc3Vs dHMgZnJvbSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXgKKyMKKy0tIHNvdXJjZSBpbmNsdWRlL2hh dmVfaW5ub2RiLmluYworCistLSBkaXNhYmxlX3F1ZXJ5X2xvZworU0VUIEB0eF9pc29sYXRpb25f b3JpZyA9IEBAdHhfaXNvbGF0aW9uOworU0VUIEBpbm5vZGJfZmlsZV9wZXJfdGFibGVfb3JpZyA9 IEBAaW5ub2RiX2ZpbGVfcGVyX3RhYmxlOworU0VUIEBpbm5vZGJfZmlsZV9mb3JtYXRfb3JpZyA9 IEBAaW5ub2RiX2ZpbGVfZm9ybWF0OworU0VUIEBpbm5vZGJfZmlsZV9mb3JtYXRfbWF4X29yaWcg PSBAQGlubm9kYl9maWxlX2Zvcm1hdF9tYXg7CisjIFRoZSBmbGFnIGlubm9kYl9jaGFuZ2VfYnVm ZmVyaW5nX2RlYnVnIGlzIG9ubHkgYXZhaWxhYmxlIGluIGRlYnVnIGJ1aWxkcy4KKyMgSXQgaW5z dHJ1Y3RzIElubm9EQiB0byB0cnkgdG8gZXZpY3QgcGFnZXMgZnJvbSB0aGUgYnVmZmVyIHBvb2wg d2hlbgorIyBjaGFuZ2UgYnVmZmVyaW5nIGlzIHBvc3NpYmxlLCBzbyB0aGF0IHRoZSBjaGFuZ2Ug YnVmZmVyIHdpbGwgYmUgdXNlZAorIyB3aGVuZXZlciBwb3NzaWJsZS4KKy0tIGVycm9yIDAsRVJf VU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVi dWdfb3JpZyA9IEBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWc7CistLSBlcnJvciAwLEVS X1VOS05PV05fU1lTVEVNX1ZBUklBQkxFCitTRVQgR0xPQkFMIGlubm9kYl9jaGFuZ2VfYnVmZmVy aW5nX2RlYnVnID0gMTsKKy0tIGVuYWJsZV9xdWVyeV9sb2cKK1NFVCBHTE9CQUwgdHhfaXNvbGF0 aW9uPSdSRVBFQVRBQkxFLVJFQUQnOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQ9QmFy cmFjdWRhOworU0VUIEdMT0JBTCBpbm5vZGJfZmlsZV9wZXJfdGFibGU9b247CisKK0NSRUFURSBU QUJMRSBidWc1NjY4MCgKKyAgICAgICBhIElOVCBBVVRPX0lOQ1JFTUVOVCBQUklNQVJZIEtFWSwK KyAgICAgICBiIENIQVIoMSksCisgICAgICAgYyBJTlQsCisgICAgICAgSU5ERVgoYikpCitFTkdJ TkU9SW5ub0RCOworCitJTlNFUlQgSU5UTyBidWc1NjY4MCBWQUxVRVMoMCwneCcsMSk7CitCRUdJ TjsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODA7CisKK2Nvbm5lY3QgKGNvbjEsbG9jYWxob3N0LHJv b3QsLCk7Citjb25uZWN0aW9uIGNvbjE7CitCRUdJTjsKK1VQREFURSBidWc1NjY4MCBTRVQgYj0n WCc7CisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsKKyMgVGhpcyBzaG91bGQgcmV0dXJuIHRoZSBsYXN0 IGNvbW1pdHRlZCB2YWx1ZSAneCcsIGJ1dCB3b3VsZCByZXR1cm4gJ1gnCisjIGR1ZSB0byBhIGJ1 ZyBpbiByb3dfc2VhcmNoX2Zvcl9teXNxbCgpLgorU0VMRUNUIGIgRlJPTSBidWc1NjY4MDsKKyMg VGhpcyB3b3VsZCBhbHdheXMgcmV0dXJuIHRoZSBsYXN0IGNvbW1pdHRlZCB2YWx1ZSAneCcuCitT RUxFQ1QgKiBGUk9NIGJ1ZzU2NjgwOworCitjb25uZWN0aW9uIGNvbjE7CitST0xMQkFDSzsKK2Rp c2Nvbm5lY3QgY29uMTsKKworY29ubmVjdGlvbiBkZWZhdWx0OworCitTRUxFQ1QgYiBGUk9NIGJ1 ZzU2NjgwOworCisjIEZvciB0aGUgcmVzdCBvZiB0aGlzIHRlc3QsIHVzZSB0aGUgUkVBRCBVTkNP TU1JVFRFRCBpc29sYXRpb24gbGV2ZWwKKyMgdG8gc2VlIHdoYXQgZXhpc3RzIGluIHRoZSBzZWNv bmRhcnkgaW5kZXguCitTRVQgR0xPQkFMIHR4X2lzb2xhdGlvbj0nUkVBRC1VTkNPTU1JVFRFRCc7 CisKKyMgQ3JlYXRlIGVub3VnaCByb3dzIGZvciB0aGUgdGFibGUsIHNvIHRoYXQgdGhlIGluc2Vy dCBidWZmZXIgd2lsbCBiZQorIyB1c2VkIGZvciBtb2RpZnlpbmcgdGhlIHNlY29uZGFyeSBpbmRl eCBwYWdlLiBUaGVyZSBtdXN0IGJlIG11bHRpcGxlCisjIGluZGV4IHBhZ2VzLCBiZWNhdXNlIGNo YW5nZXMgdG8gdGhlIHJvb3QgcGFnZSBhcmUgbmV2ZXIgYnVmZmVyZWQuCisKK0lOU0VSVCBJTlRP IGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2 ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxF Q1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIs YyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00g YnVnNTY2ODA7CitJTlNFUlQgSU5UTyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4 MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5T RVJUIElOVE8gYnVnNTY2ODAgU0VMRUNUIDAsYixjIEZST00gYnVnNTY2ODA7CitJTlNFUlQgSU5U TyBidWc1NjY4MCBTRUxFQ1QgMCxiLGMgRlJPTSBidWc1NjY4MDsKK0lOU0VSVCBJTlRPIGJ1ZzU2 NjgwIFNFTEVDVCAwLGIsYyBGUk9NIGJ1ZzU2NjgwOworSU5TRVJUIElOVE8gYnVnNTY2ODAgU0VM RUNUIDAsYixjIEZST00gYnVnNTY2ODA7CisKK0JFR0lOOworU0VMRUNUIGIgRlJPTSBidWc1NjY4 MCBMSU1JVCAyOworCitjb25uZWN0IChjb24xLGxvY2FsaG9zdCxyb290LCwpOworY29ubmVjdGlv biBjb24xOworQkVHSU47CitERUxFVEUgRlJPTSBidWc1NjY4MCBXSEVSRSBhPTE7CisjIFRoaXMg c2hvdWxkIGJlIGJ1ZmZlcmVkLCBpZiBpbm5vZGJfY2hhbmdlX2J1ZmZlcmluZ19kZWJ1ZyA9IDEg aXMgaW4gZWZmZWN0LgorSU5TRVJUIElOVE8gYnVnNTY2ODAgVkFMVUVTKDEsJ1gnLDEpOworCisj IFRoaXMgc2hvdWxkIGZvcmNlIGFuIGluc2VydCBidWZmZXIgbWVyZ2UsIGFuZCByZXR1cm4gJ1gn IGluIHRoZSBmaXJzdCByb3cuCitTRUxFQ1QgYiBGUk9NIGJ1ZzU2NjgwIExJTUlUIDM7CisKK2Nv bm5lY3Rpb24gZGVmYXVsdDsKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAgTElNSVQgMjsKK0NIRUNL IFRBQkxFIGJ1ZzU2NjgwOworCitjb25uZWN0aW9uIGNvbjE7CitST0xMQkFDSzsKK1NFTEVDVCBi IEZST00gYnVnNTY2ODAgTElNSVQgMjsKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwOworCitjb25uZWN0 aW9uIGRlZmF1bHQ7CitkaXNjb25uZWN0IGNvbjE7CisKK1NFTEVDVCBiIEZST00gYnVnNTY2ODAg TElNSVQgMjsKKworQ1JFQVRFIFRBQkxFIGJ1ZzU2NjgwXzIoCisgICAgICAgYSBJTlQgQVVUT19J TkNSRU1FTlQgUFJJTUFSWSBLRVksCisgICAgICAgYiBWQVJDSEFSKDIpIENIQVJTRVQgbGF0aW4x IENPTExBVEUgbGF0aW4xX2dlcm1hbjJfY2ksCisgICAgICAgYyBJTlQsCisgICAgICAgSU5ERVgo YikpCitFTkdJTkU9SW5ub0RCOworCitJTlNFUlQgSU5UTyBidWc1NjY4MF8yIFNFTEVDVCAwLF9s YXRpbjEgMHhkZixjIEZST00gYnVnNTY2ODA7CisKK0JFR0lOOworU0VMRUNUIEhFWChiKSBGUk9N IGJ1ZzU2NjgwXzIgTElNSVQgMjsKK0RFTEVURSBGUk9NIGJ1ZzU2NjgwXzIgV0hFUkUgYT0xOwor IyBUaGlzIHNob3VsZCBiZSBidWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVi dWcgPSAxIGlzIGluIGVmZmVjdC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwXzIgVkFMVUVTKDEsJ1NT JywxKTsKKworIyBUaGlzIHNob3VsZCBmb3JjZSBhbiBpbnNlcnQgYnVmZmVyIG1lcmdlLCBhbmQg cmV0dXJuICdTUycgaW4gdGhlIGZpcnN0IHJvdy4KK1NFTEVDVCBIRVgoYikgRlJPTSBidWc1NjY4 MF8yIExJTUlUIDM7CitDSEVDSyBUQUJMRSBidWc1NjY4MF8yOworCisjIFRlc3QgdGhpcyB3aXRo IGNvbXByZXNzZWQgdGFibGVzLgorQUxURVIgVEFCTEUgYnVnNTY2ODBfMiBST1dfRk9STUFUPUNP TVBSRVNTRUQgS0VZX0JMT0NLX1NJWkU9MTsKKworU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2Njgw XzIgTElNSVQgMjsKK0RFTEVURSBGUk9NIGJ1ZzU2NjgwXzIgV0hFUkUgYT0xOworIyBUaGlzIHNo b3VsZCBiZSBidWZmZXJlZCwgaWYgaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSAxIGlz IGluIGVmZmVjdC4KK0lOU0VSVCBJTlRPIGJ1ZzU2NjgwXzIgVkFMVUVTKDEsX2xhdGluMSAweGRm LDEpOworCisjIFRoaXMgc2hvdWxkIGZvcmNlIGFuIGluc2VydCBidWZmZXIgbWVyZ2UsIGFuZCBy ZXR1cm4gMHhkZiBpbiB0aGUgZmlyc3Qgcm93LgorU0VMRUNUIEhFWChiKSBGUk9NIGJ1ZzU2Njgw XzIgTElNSVQgMzsKK0NIRUNLIFRBQkxFIGJ1ZzU2NjgwXzI7CisKK0RST1AgVEFCTEUgYnVnNTY2 ODBfMjsKK0RST1AgVEFCTEUgYnVnNTY2ODA7CisKKy0tIGRpc2FibGVfcXVlcnlfbG9nCitTRVQg R0xPQkFMIHR4X2lzb2xhdGlvbiA9IEB0eF9pc29sYXRpb25fb3JpZzsKK1NFVCBHTE9CQUwgaW5u b2RiX2ZpbGVfcGVyX3RhYmxlID0gQGlubm9kYl9maWxlX3Blcl90YWJsZV9vcmlnOworU0VUIEdM T0JBTCBpbm5vZGJfZmlsZV9mb3JtYXQgPSBAaW5ub2RiX2ZpbGVfZm9ybWF0X29yaWc7CitTRVQg R0xPQkFMIGlubm9kYl9maWxlX2Zvcm1hdF9tYXggPSBAaW5ub2RiX2ZpbGVfZm9ybWF0X21heF9v cmlnOworLS0gZXJyb3IgMCwgRVJfVU5LTk9XTl9TWVNURU1fVkFSSUFCTEUKK1NFVCBHTE9CQUwg aW5ub2RiX2NoYW5nZV9idWZmZXJpbmdfZGVidWcgPSBAaW5ub2RiX2NoYW5nZV9idWZmZXJpbmdf ZGVidWdfb3JpZzsKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lu bm9kYl9idWc1NzI1Mi50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9k Yl9idWc1NzI1Mi50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC9zdWl0ZS9pbm5vZGIvdC9pbm5vZGJfYnVnNTcyNTIudGVzdAlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC0wLDAgKzEsNDYg QEAKKyMKKyMgQnVnIzU3MjUyIGRpc2FibGluZyBpbm5vYmFzZV9zdGF0c19vbl9tZXRhZGF0YSBk aXNhYmxlcyBBTkFMWVpFCisjIGh0dHA6Ly9idWdzLm15c3FsLmNvbS81NzI1MgorIworCistLSBz b3VyY2UgaW5jbHVkZS9oYXZlX2lubm9kYi5pbmMKKworLS0gZGlzYWJsZV9xdWVyeV9sb2cKKy0t IGRpc2FibGVfcmVzdWx0X2xvZworCitTRVQgQGlubm9kYl9zdGF0c19vbl9tZXRhZGF0YV9vcmln ID0gQEBpbm5vZGJfc3RhdHNfb25fbWV0YWRhdGE7CisKK0NSRUFURSBUQUJMRSBidWc1NzI1MiAo YSBJTlQsIEtFWSBha2V5IChhKSkgRU5HSU5FPUlOTk9EQjsKKworQkVHSU47CitsZXQgJGkgPSAx MDsKK3doaWxlICgkaSkgeworCWV2YWwgSU5TRVJUIElOVE8gYnVnNTcyNTIgVkFMVUVTICgkaSk7 CisJZGVjICRpOworfQorQ09NTUlUOworCistLSBlbmFibGVfcmVzdWx0X2xvZworCitTRVQgR0xP QkFMIGlubm9kYl9zdGF0c19vbl9tZXRhZGF0YT0wOworCisjIHRoaXMgY2FsbHMgOjppbmZvKCkg d2l0aG91dCBIQV9TVEFUVVNfQ09OU1QgYW5kIHNvCisjIGluZGV4LT5zdGF0X25fZGlmZl9rZXlf dmFsc1tdIGlzIG5vdCBjb3BpZWQgdG8gdGhlIG15c3FsLXZpc2libGUKKyMgcmVjX3Blcl9rZXkK K1NFTEVDVCBjYXJkaW5hbGl0eSBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5zdGF0aXN0aWNzCitX SEVSRSB0YWJsZV9uYW1lPSdidWc1NzI1MicgQU5EIGluZGV4X25hbWU9J2FrZXknOworCisjIHRo aXMgY2FsbHMgOjppbmZvKCkgd2l0aCBIQV9TVEFUVVNfQ09OU1QgYW5kIHNvCisjIGluZGV4LT5z dGF0X25fZGlmZl9rZXlfdmFsc1tdIGlzIGNvcGllZCB0byB0aGUgbXlzcWwtdmlzaWJsZQorIyBy ZWNfcGVyX2tleSBhdCB0aGUgZW5kOyB3aGVuIHRoZSBidWcgaXMgcHJlc2VudCBkaWN0X3VwZGF0 ZV9zdGF0aXN0aWNzKCkKKyMgaXMgbm90IGNhbGxlZCBiZWZvcmVoYW5kIGFuZCBzbyBpbmRleC0+ c3RhdF9uX2RpZmZfa2V5X3ZhbHNbXSBjb250YWlucworIyBhbiBvdXRkYXRlZCBkYXRhIGFuZCB0 aHVzIHdlIGdldCBhbiBvdXRkYXRlZCBkYXRhIGluIHRoZSByZXN1bHQgd2hlbiB0aGUKKyMgYnVn IGlzIHByZXNlbnQKK0FOQUxZWkUgVEFCTEUgYnVnNTcyNTI7CisKK1NFTEVDVCBjYXJkaW5hbGl0 eSBGUk9NIGluZm9ybWF0aW9uX3NjaGVtYS5zdGF0aXN0aWNzCitXSEVSRSB0YWJsZV9uYW1lPSdi dWc1NzI1MicgQU5EIGluZGV4X25hbWU9J2FrZXknOworCitEUk9QIFRBQkxFIGJ1ZzU3MjUyOwor CitTRVQgR0xPQkFMIGlubm9kYl9zdGF0c19vbl9tZXRhZGF0YSA9IEBpbm5vZGJfc3RhdHNfb25f bWV0YWRhdGFfb3JpZzsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2J0ci9i dHIwY3VyLmMnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuYwlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5MzAxNC1uczNnN3p4cjN1OG5pMHVjCisrKyBi L3N0b3JhZ2UvaW5ub2Jhc2UvYnRyL2J0cjBjdXIuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xl LmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC0xNzQ0LDcgKzE3NDQsNyBA QCBmdW5jX2V4aXQ6CiBTZWUgaWYgdGhlcmUgaXMgZW5vdWdoIHBsYWNlIGluIHRoZSBwYWdlIG1v ZGlmaWNhdGlvbiBsb2cgdG8gbG9nCiBhbiB1cGRhdGUtaW4tcGxhY2UuCiBAcmV0dXJuCVRSVUUg aWYgZW5vdWdoIHBsYWNlICovCi1zdGF0aWMKK1VOSVZfSU5URVJOCiBpYm9vbAogYnRyX2N1cl91 cGRhdGVfYWxsb2NfemlwKAogLyo9PT09PT09PT09PT09PT09PT09PT0qLwoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBidWYuYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9idWYvYnVmMGJ1Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDkzMDE0LW5zM2c3enhyM3U4bmkwdWMKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGJ1 Zi5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1j N21meHlia2MKQEAgLTMwNTEsNyArMzA1MSw3IEBAIHdhaXRfdW50aWxfdW5maXhlZDoKIAkJLyog QXMgd2UgaGF2ZSByZWxlYXNlZCB0aGUgcGFnZV9oYXNoIG11dGV4IGFuZCB0aGUKIAkJYmxvY2tf bXV0ZXggdG8gYWxsb2NhdGUgYW4gdW5jb21wcmVzc2VkIHBhZ2UgaXQgaXMKIAkJcG9zc2libGUg dGhhdCBwYWdlX2hhc2ggbWlnaHQgaGF2ZSBjaGFuZ2VkLiBXZSBkbwotCQlhbm90aGVyIGxvb2t1 cCBoZXJlIHdoaWxlIGhvbGRpbmcgdGhlIGJ1Zl9wb29sIG11dGV4CisJCWFub3RoZXIgbG9va3Vw IGhlcmUgd2hpbGUgaG9sZGluZyB0aGUgaGFzaF9tdXRleAogCQl0byB2ZXJpZnkgdGhhdCBicGFn ZSBpcyBpbmRlZWQgc3RpbGwgYSBwYXJ0IG9mCiAJCXBhZ2VfaGFzaC4gKi8KIAkJbXV0ZXhfZW50 ZXIoaGFzaF9tdXRleCk7CkBAIC0zMTc4LDYgKzMxNzgsNzMgQEAgd2FpdF91bnRpbF91bmZpeGVk OgogCWJ5dGVzLiAqLwogCVVOSVZfTUVNX0FTU0VSVF9SVygmYmxvY2stPnBhZ2UsIHNpemVvZiBi bG9jay0+cGFnZSk7CiAjZW5kaWYKKyNpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBV TklWX0lCVUZfREVCVUcKKwlpZiAoKG1vZGUgPT0gQlVGX0dFVF9JRl9JTl9QT09MIHx8IG1vZGUg PT0gQlVGX0dFVF9JRl9JTl9QT09MX09SX1dBVENIKQorCSAgICAmJiBpYnVmX2RlYnVnKSB7CisJ CS8qIFRyeSB0byBldmljdCB0aGUgYmxvY2sgZnJvbSB0aGUgYnVmZmVyIHBvb2wsIHRvIHVzZSB0 aGUKKwkJaW5zZXJ0IGJ1ZmZlciAoY2hhbmdlIGJ1ZmZlcikgYXMgbXVjaCBhcyBwb3NzaWJsZS4g Ki8KKworCQkvKiBUbyBvYmV5IHRoZSBsYXRjaGluZyBvcmRlciwgcmVsZWFzZSB0aGUKKwkJYmxv Y2stPm11dGV4IGJlZm9yZSBhY3F1aXJpbmcgYnVmX3Bvb2wtPm11dGV4LiBQcm90ZWN0CisJCXRo ZSBibG9jayBmcm9tIGNoYW5nZXMgYnkgdGVtcG9yYXJpbHkgYnVmZmVyLWZpeGluZyBpdAorCQlm b3IgdGhlIHRpbWUgd2UgYXJlIG5vdCBob2xkaW5nIGJsb2NrLT5tdXRleC4gKi8KKwkJYnVmX2Js b2NrX2J1Zl9maXhfaW5jKGJsb2NrLCBmaWxlLCBsaW5lKTsKKwkJbXV0ZXhfZXhpdCgmYmxvY2st Pm11dGV4KTsKKwkJYnVmX3Bvb2xfbXV0ZXhfZW50ZXIoYnVmX3Bvb2wpOworCQltdXRleF9lbnRl cigmYmxvY2stPm11dGV4KTsKKwkJYnVmX2Jsb2NrX2J1Zl9maXhfZGVjKGJsb2NrKTsKKwkJbXV0 ZXhfZXhpdCgmYmxvY2stPm11dGV4KTsKKworCQkvKiBOb3cgd2UgYXJlIG9ubHkgaG9sZGluZyB0 aGUgYnVmX3Bvb2wtPm11dGV4LAorCQlub3QgYmxvY2stPm11dGV4IG9yIGhhc2hfbXV0ZXguIEJs b2NrcyBjYW5ub3QgYmUKKwkJcmVsb2NhdGVkIG9yIGVudGVyIG9yIGV4aXQgdGhlIGJ1Zl9wb29s IHdoaWxlIHdlCisJCWFyZSBob2xkaW5nIHRoZSBidWZfcG9vbC0+bXV0ZXguICovCisKKwkJaWYg KGJ1Zl9MUlVfZnJlZV9ibG9jaygmYmxvY2stPnBhZ2UsIFRSVUUsIE5VTEwpCisJCSAgICA9PSBC VUZfTFJVX0ZSRUVEKSB7CisJCQlidWZfcG9vbF9tdXRleF9leGl0KGJ1Zl9wb29sKTsKKwkJCW11 dGV4X2VudGVyKGhhc2hfbXV0ZXgpOworCisJCQlpZiAobW9kZSA9PSBCVUZfR0VUX0lGX0lOX1BP T0xfT1JfV0FUQ0gpIHsKKwkJCQkvKiBTZXQgdGhlIHdhdGNoLCBhcyBpdCB3b3VsZCBoYXZlCisJ CQkJYmVlbiBzZXQgaWYgdGhlIHBhZ2Ugd2VyZSBub3QgaW4gdGhlCisJCQkJYnVmZmVyIHBvb2wg aW4gdGhlIGZpcnN0IHBsYWNlLiAqLworCQkJCWJsb2NrID0gKGJ1Zl9ibG9ja190KikgYnVmX3Bv b2xfd2F0Y2hfc2V0KAorCQkJCQlzcGFjZSwgb2Zmc2V0LCBmb2xkKTsKKwkJCX0gZWxzZSB7CisJ CQkJYmxvY2sgPSAoYnVmX2Jsb2NrX3QqKSBidWZfcGFnZV9oYXNoX2dldF9sb3coCisJCQkJCWJ1 Zl9wb29sLCBzcGFjZSwgb2Zmc2V0LCBmb2xkKTsKKwkJCX0KKworCQkJaWYgKFVOSVZfTElLRUxZ X05VTEwoYmxvY2spKSB7CisJCQkJLyogVGhlIHBhZ2UgZW50ZXJlZCB0aGUgYnVmZmVyCisJCQkJ cG9vbCBmb3Igc29tZSByZWFzb24uIFRyeSB0bworCQkJCWV2aWN0IGl0IGFnYWluLiAqLworCQkJ CWdvdG8gZ290X2Jsb2NrOworCQkJfQorCisJCQltdXRleF9leGl0KGhhc2hfbXV0ZXgpOworCQkJ ZnByaW50ZihzdGRlcnIsCisJCQkJImlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnIGV2aWN0 ICV1ICV1XG4iLAorCQkJCSh1bnNpZ25lZCkgc3BhY2UsICh1bnNpZ25lZCkgb2Zmc2V0KTsKKwkJ CXJldHVybihOVUxMKTsKKwkJfQorCisJCW11dGV4X2VudGVyKCZibG9jay0+bXV0ZXgpOworCisJ CWlmIChidWZfZmx1c2hfcGFnZV90cnkoYnVmX3Bvb2wsIGJsb2NrKSkgeworCQkJZnByaW50Zihz dGRlcnIsCisJCQkJImlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX2RlYnVnIGZsdXNoICV1ICV1XG4i LAorCQkJCSh1bnNpZ25lZCkgc3BhY2UsICh1bnNpZ25lZCkgb2Zmc2V0KTsKKwkJCWd1ZXNzID0g YmxvY2s7CisJCQlnb3RvIGxvb3A7CisJCX0KKworCQkvKiBGYWlsZWQgdG8gZXZpY3QgdGhlIHBh Z2U7IGNoYW5nZSBpdCBkaXJlY3RseSAqLworCisJCWJ1Zl9wb29sX211dGV4X2V4aXQoYnVmX3Bv b2wpOworCX0KKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVRyAqLwogCiAJ YnVmX2Jsb2NrX2J1Zl9maXhfaW5jKGJsb2NrLCBmaWxlLCBsaW5lKTsKIAoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvYnVmL2J1ZjBmbHUuYycKLS0tIGEvc3RvcmFnZS9pbm5v YmFzZS9idWYvYnVmMGZsdS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5 MDkzMDE0LW5zM2c3enhyM3U4bmkwdWMKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9idWYvYnVmMGZs dS5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1j N21meHlia2MKQEAgLTExMzcsNiArMTEzNyw4MyBAQCBidWZfZmx1c2hfd3JpdGVfYmxvY2tfbG93 KAogCX0KIH0KIAorIyBpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZf REVCVUcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKK1dyaXRlcyBhIGZsdXNoYWJsZSBwYWdlIGFzeW5jaHJv bm91c2x5IGZyb20gdGhlIGJ1ZmZlciBwb29sIHRvIGEgZmlsZS4KK05PVEU6IGJ1Zl9wb29sX211 dGV4IGFuZCBibG9jay0+bXV0ZXggbXVzdCBiZSBoZWxkIHVwb24gZW50ZXJpbmcgdGhpcworZnVu Y3Rpb24sIGFuZCB0aGV5IHdpbGwgYmUgcmVsZWFzZWQgYnkgdGhpcyBmdW5jdGlvbiBhZnRlciBm bHVzaGluZy4KK1RoaXMgaXMgbG9vc2VseSBiYXNlZCBvbiBidWZfZmx1c2hfYmF0Y2goKSBhbmQg YnVmX2ZsdXNoX3BhZ2UoKS4KK0ByZXR1cm4gVFJVRSBpZiB0aGUgcGFnZSB3YXMgZmx1c2hlZCBh bmQgdGhlIG11dGV4ZXMgcmVsZWFzZWQgKi8KK1VOSVZfSU5URVJOCitpYm9vbAorYnVmX2ZsdXNo X3BhZ2VfdHJ5KAorLyo9PT09PT09PT09PT09PT0qLworCWJ1Zl9wb29sX3QqCWJ1Zl9wb29sLAkv KiE8IGluL291dDogYnVmZmVyIHBvb2wgaW5zdGFuY2UgKi8KKwlidWZfYmxvY2tfdCoJYmxvY2sp CQkvKiE8IGluL291dDogYnVmZmVyIGNvbnRyb2wgYmxvY2sgKi8KK3sKKwl1dF9hZChidWZfcG9v bF9tdXRleF9vd24oYnVmX3Bvb2wpKTsKKwl1dF9hZChidWZfYmxvY2tfZ2V0X3N0YXRlKGJsb2Nr KSA9PSBCVUZfQkxPQ0tfRklMRV9QQUdFKTsKKwl1dF9hZChtdXRleF9vd24oJmJsb2NrLT5tdXRl eCkpOworCisJaWYgKCFidWZfZmx1c2hfcmVhZHlfZm9yX2ZsdXNoKCZibG9jay0+cGFnZSwgQlVG X0ZMVVNIX0xSVSkpIHsKKwkJcmV0dXJuKEZBTFNFKTsKKwl9CisKKwlpZiAoYnVmX3Bvb2wtPm5f Zmx1c2hbQlVGX0ZMVVNIX0xSVV0gPiAwCisJICAgIHx8IGJ1Zl9wb29sLT5pbml0X2ZsdXNoW0JV Rl9GTFVTSF9MUlVdKSB7CisJCS8qIFRoZXJlIGlzIGFscmVhZHkgYSBmbHVzaCBiYXRjaCBvZiB0 aGUgc2FtZSB0eXBlIHJ1bm5pbmcgKi8KKwkJcmV0dXJuKEZBTFNFKTsKKwl9CisKKwlidWZfcG9v bC0+aW5pdF9mbHVzaFtCVUZfRkxVU0hfTFJVXSA9IFRSVUU7CisKKwlidWZfcGFnZV9zZXRfaW9f Zml4KCZibG9jay0+cGFnZSwgQlVGX0lPX1dSSVRFKTsKKworCWJ1Zl9wYWdlX3NldF9mbHVzaF90 eXBlKCZibG9jay0+cGFnZSwgQlVGX0ZMVVNIX0xSVSk7CisKKwlpZiAoYnVmX3Bvb2wtPm5fZmx1 c2hbQlVGX0ZMVVNIX0xSVV0rKyA9PSAwKSB7CisKKwkJb3NfZXZlbnRfcmVzZXQoYnVmX3Bvb2wt Pm5vX2ZsdXNoW0JVRl9GTFVTSF9MUlVdKTsKKwl9CisKKwkvKiBWRVJZIElNUE9SVEFOVDoKKwlC ZWNhdXNlIGFueSB0aHJlYWQgbWF5IGNhbGwgdGhlIExSVSBmbHVzaCwgZXZlbiB3aGVuIG93bmlu ZworCWxvY2tzIG9uIHBhZ2VzLCB0byBhdm9pZCBkZWFkbG9ja3MsIHdlIG11c3QgbWFrZSBzdXJl IHRoYXQgdGhlCisJcy1sb2NrIGlzIGFjcXVpcmVkIG9uIHRoZSBwYWdlIHdpdGhvdXQgd2FpdGlu ZzogdGhpcyBpcworCWFjY29tcGxpc2hlZCBiZWNhdXNlIGJ1Zl9mbHVzaF9yZWFkeV9mb3JfZmx1 c2goKSBtdXN0IGhvbGQsCisJYW5kIHRoYXQgcmVxdWlyZXMgdGhlIHBhZ2Ugbm90IHRvIGJlIGJ1 ZmZlcmZpeGVkLiAqLworCisJcndfbG9ja19zX2xvY2tfZ2VuKCZibG9jay0+bG9jaywgQlVGX0lP X1dSSVRFKTsKKworCS8qIE5vdGUgdGhhdCB0aGUgcy1sYXRjaCBpcyBhY3F1aXJlZCBiZWZvcmUg cmVsZWFzaW5nIHRoZQorCWJ1Zl9wb29sIG11dGV4OiB0aGlzIGVuc3VyZXMgdGhhdCB0aGUgbGF0 Y2ggaXMgYWNxdWlyZWQKKwlpbW1lZGlhdGVseS4gKi8KKworCW11dGV4X2V4aXQoJmJsb2NrLT5t dXRleCk7CisJYnVmX3Bvb2xfbXV0ZXhfZXhpdChidWZfcG9vbCk7CisKKwkvKiBFdmVuIHRob3Vn aCBibG9jayBpcyBub3QgcHJvdGVjdGVkIGJ5IGFueSBtdXRleCBhdCB0aGlzCisJcG9pbnQsIGl0 IGlzIHNhZmUgdG8gYWNjZXNzIGJsb2NrLCBiZWNhdXNlIGl0IGlzIGlvX2ZpeGVkIGFuZAorCW9s ZGVzdF9tb2RpZmljYXRpb24gIT0gMC4gIFRodXMsIGl0IGNhbm5vdCBiZSByZWxvY2F0ZWQgaW4g dGhlCisJYnVmZmVyIHBvb2wgb3IgcmVtb3ZlZCBmcm9tIGZsdXNoX2xpc3Qgb3IgTFJVX2xpc3Qu ICovCisKKwlidWZfZmx1c2hfd3JpdGVfYmxvY2tfbG93KCZibG9jay0+cGFnZSk7CisKKwlidWZf cG9vbF9tdXRleF9lbnRlcihidWZfcG9vbCk7CisJYnVmX3Bvb2wtPmluaXRfZmx1c2hbQlVGX0ZM VVNIX0xSVV0gPSBGQUxTRTsKKworCWlmIChidWZfcG9vbC0+bl9mbHVzaFtCVUZfRkxVU0hfTFJV XSA9PSAwKSB7CisJCS8qIFRoZSBydW5uaW5nIGZsdXNoIGJhdGNoIGhhcyBlbmRlZCAqLworCQlv c19ldmVudF9zZXQoYnVmX3Bvb2wtPm5vX2ZsdXNoW0JVRl9GTFVTSF9MUlVdKTsKKwl9CisKKwli dWZfcG9vbF9tdXRleF9leGl0KGJ1Zl9wb29sKTsKKwlidWZfZmx1c2hfYnVmZmVyZWRfd3JpdGVz KCk7CisKKwlyZXR1cm4oVFJVRSk7Cit9CisjIGVuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9J QlVGX0RFQlVHICovCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFdyaXRlcyBhIGZsdXNoYWJsZSBwYWdl IGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1ZmZlciBwb29sIHRvIGEgZmlsZS4KIE5PVEU6IGlu IHNpbXVsYXRlZCBhaW8gd2UgbXVzdCBjYWxsCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9p bm5vYmFzZS9oYW5kbGVyL2hhX2lubm9kYi5jYycKLS0tIGEvc3RvcmFnZS9pbm5vYmFzZS9oYW5k bGVyL2hhX2lubm9kYi5jYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5 MzAxNC1uczNnN3p4cjN1OG5pMHVjCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9p bm5vZGIuY2MJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2 MzlybWM3bWZ4eWJrYwpAQCAtNDYyOSwxNyArNDYyOSwxOCBAQCBpbmNsdWRlX2ZpZWxkOgogCQlu X3JlcXVlc3RlZF9maWVsZHMrKzsKIAogCQl0ZW1wbC0+Y29sX25vID0gaTsKKwkJdGVtcGwtPmNs dXN0X3JlY19maWVsZF9ubyA9IGRpY3RfY29sX2dldF9jbHVzdF9wb3MoCisJCQljb2wsIGNsdXN0 X2luZGV4KTsKKwkJdXRfYWQodGVtcGwtPmNsdXN0X3JlY19maWVsZF9ubyAhPSBVTElOVF9VTkRF RklORUQpOwogCiAJCWlmIChpbmRleCA9PSBjbHVzdF9pbmRleCkgewotCQkJdGVtcGwtPnJlY19m aWVsZF9ubyA9IGRpY3RfY29sX2dldF9jbHVzdF9wb3MoCi0JCQkJY29sLCBpbmRleCk7CisJCQl0 ZW1wbC0+cmVjX2ZpZWxkX25vID0gdGVtcGwtPmNsdXN0X3JlY19maWVsZF9ubzsKIAkJfSBlbHNl IHsKIAkJCXRlbXBsLT5yZWNfZmllbGRfbm8gPSBkaWN0X2luZGV4X2dldF9udGhfY29sX3BvcygK IAkJCQkJCQkJaW5kZXgsIGkpOwotCQl9Ci0KLQkJaWYgKHRlbXBsLT5yZWNfZmllbGRfbm8gPT0g VUxJTlRfVU5ERUZJTkVEKSB7Ci0JCQlwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVk ID0gVFJVRTsKKwkJCWlmICh0ZW1wbC0+cmVjX2ZpZWxkX25vID09IFVMSU5UX1VOREVGSU5FRCkg eworCQkJCXByZWJ1aWx0LT5uZWVkX3RvX2FjY2Vzc19jbHVzdGVyZWQgPSBUUlVFOworCQkJfQog CQl9CiAKIAkJaWYgKGZpZWxkLT5udWxsX3B0cikgewpAQCAtNDY4OSw5ICs0NjkwLDcgQEAgc2tp cF9maWVsZDoKIAkJZm9yIChpID0gMDsgaSA8IG5fcmVxdWVzdGVkX2ZpZWxkczsgaSsrKSB7CiAJ CQl0ZW1wbCA9IHByZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CiAKLQkJCXRlbXBsLT5yZWNf ZmllbGRfbm8gPSBkaWN0X2NvbF9nZXRfY2x1c3RfcG9zKAotCQkJCSZpbmRleC0+dGFibGUtPmNv bHNbdGVtcGwtPmNvbF9ub10sCi0JCQkJY2x1c3RfaW5kZXgpOworCQkJdGVtcGwtPnJlY19maWVs ZF9ubyA9IHRlbXBsLT5jbHVzdF9yZWNfZmllbGRfbm87CiAJCX0KIAl9CiB9CkBAIC03NzAzLDkg Kzc3MDIsMTIgQEAgUmV0dXJucyBzdGF0aXN0aWNzIGluZm9ybWF0aW9uIG9mIHRoZSB0YQogaW4g dmFyaW91cyBmaWVsZHMgb2YgdGhlIGhhbmRsZSBvYmplY3QuICovCiBVTklWX0lOVEVSTgogaW50 Ci1oYV9pbm5vYmFzZTo6aW5mbygKLS8qPT09PT09PT09PT09PT0qLwotCXVpbnQgZmxhZykJLyoh PCBpbjogd2hhdCBpbmZvcm1hdGlvbiBNeVNRTCByZXF1ZXN0cyAqLworaGFfaW5ub2Jhc2U6Omlu Zm9fbG93KAorLyo9PT09PT09PT09PT09PT09PT0qLworCXVpbnQJZmxhZywJCQkvKiE8IGluOiB3 aGF0IGluZm9ybWF0aW9uIE15U1FMCisJCQkJCXJlcXVlc3RzICovCisJYm9vbAljYWxsZWRfZnJv bV9hbmFseXplKQkvKiBpbjogVFJVRSBpZiBjYWxsZWQgZnJvbQorCQkJCQk6OmFuYWx5emUoKSAq LwogewogCWRpY3RfdGFibGVfdCoJaWJfdGFibGU7CiAJZGljdF9pbmRleF90KglpbmRleDsKQEAg LTc3MzYsNyArNzczOCw3IEBAIGhhX2lubm9iYXNlOjppbmZvKAogCWliX3RhYmxlID0gcHJlYnVp bHQtPnRhYmxlOwogCiAJaWYgKGZsYWcgJiBIQV9TVEFUVVNfVElNRSkgewotCQlpZiAoaW5ub2Jh c2Vfc3RhdHNfb25fbWV0YWRhdGEpIHsKKwkJaWYgKGNhbGxlZF9mcm9tX2FuYWx5emUgfHwgaW5u b2Jhc2Vfc3RhdHNfb25fbWV0YWRhdGEpIHsKIAkJCS8qIEluIHNxbF9zaG93IHdlIGNhbGwgd2l0 aCB0aGlzIGZsYWc6IHVwZGF0ZQogCQkJdGhlbiBzdGF0aXN0aWNzIHNvIHRoYXQgdGhleSBhcmUg dXAtdG8tZGF0ZSAqLwogCkBAIC03OTg0LDYgKzc5ODYsMTggQEAgZnVuY19leGl0OgogCURCVUdf UkVUVVJOKDApOwogfQogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgorUmV0dXJucyBzdGF0aXN0aWNzIGlu Zm9ybWF0aW9uIG9mIHRoZSB0YWJsZSB0byB0aGUgTXlTUUwgaW50ZXJwcmV0ZXIsCitpbiB2YXJp b3VzIGZpZWxkcyBvZiB0aGUgaGFuZGxlIG9iamVjdC4gKi8KK1VOSVZfSU5URVJOCitpbnQKK2hh X2lubm9iYXNlOjppbmZvKAorLyo9PT09PT09PT09PT09PSovCisJdWludAlmbGFnKQkvKiE8IGlu OiB3aGF0IGluZm9ybWF0aW9uIE15U1FMIHJlcXVlc3RzICovCit7CisJcmV0dXJuKGluZm9fbG93 KGZsYWcsIGZhbHNlIC8qIG5vdCBjYWxsZWQgZnJvbSBhbmFseXplICovKSk7Cit9CisKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLy8qKgogVXBkYXRlcyBpbmRleCBjYXJkaW5hbGl0aWVzIG9mIHRoZSB0YWJsZSwg YmFzZWQgb24gOCByYW5kb20gZGl2ZXMgaW50bwogZWFjaCBpbmRleCB0cmVlLiBUaGlzIGRvZXMg Tk9UIGNhbGN1bGF0ZSBleGFjdCBzdGF0aXN0aWNzIG9uIHRoZSB0YWJsZS4KQEAgLTc5OTYsNyAr ODAxMCw4IEBAIGhhX2lubm9iYXNlOjphbmFseXplKAogCUhBX0NIRUNLX09QVCoJY2hlY2tfb3B0 KQkvKiE8IGluOiBjdXJyZW50bHkgaWdub3JlZCAqLwogewogCS8qIFNpbXBseSBjYWxsIDo6aW5m bygpIHdpdGggYWxsIHRoZSBmbGFncyAqLwotCWluZm8oSEFfU1RBVFVTX1RJTUUgfCBIQV9TVEFU VVNfQ09OU1QgfCBIQV9TVEFUVVNfVkFSSUFCTEUpOworCWluZm9fbG93KEhBX1NUQVRVU19USU1F IHwgSEFfU1RBVFVTX0NPTlNUIHwgSEFfU1RBVFVTX1ZBUklBQkxFLAorCQkgdHJ1ZSAvKiBjYWxs ZWQgZnJvbSBhbmFseXplICovKTsKIAogCXJldHVybigwKTsKIH0KQEAgLTExNDM0LDYgKzExNDQ5 LDEzIEBAIHN0YXRpYyBNWVNRTF9TWVNWQVJfU1RSKGNoYW5nZV9idWZmZXJpbmcKICAgaW5ub2Ri X2NoYW5nZV9idWZmZXJpbmdfdmFsaWRhdGUsCiAgIGlubm9kYl9jaGFuZ2VfYnVmZmVyaW5nX3Vw ZGF0ZSwgImFsbCIpOwogCisjaWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9J QlVGX0RFQlVHCitzdGF0aWMgTVlTUUxfU1lTVkFSX1VJTlQoY2hhbmdlX2J1ZmZlcmluZ19kZWJ1 ZywgaWJ1Zl9kZWJ1ZywKKyAgUExVR0lOX1ZBUl9SUUNNREFSRywKKyAgIkRlYnVnIGZsYWdzIGZv ciBJbm5vREIgY2hhbmdlIGJ1ZmZlcmluZyAoMD1ub25lKSIsCisgIE5VTEwsIE5VTEwsIDAsIDAs IDEsIDApOworI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9JQlVGX0RFQlVHICovCisKIHN0 YXRpYyBNWVNRTF9TWVNWQVJfVUxPTkcocmVhZF9haGVhZF90aHJlc2hvbGQsIHNydl9yZWFkX2Fo ZWFkX3RocmVzaG9sZCwKICAgUExVR0lOX1ZBUl9SUUNNREFSRywKICAgIk51bWJlciBvZiBwYWdl cyB0aGF0IG11c3QgYmUgYWNjZXNzZWQgc2VxdWVudGlhbGx5IGZvciBJbm5vREIgdG8gIgpAQCAt MTE1MjEsNiArMTE1NDMsOSBAQCBzdGF0aWMgc3RydWN0IHN0X215c3FsX3N5c192YXIqIGlubm9i YXNlCiAgIE1ZU1FMX1NZU1ZBUih1c2Vfc3lzX21hbGxvYyksCiAgIE1ZU1FMX1NZU1ZBUih1c2Vf bmF0aXZlX2FpbyksCiAgIE1ZU1FMX1NZU1ZBUihjaGFuZ2VfYnVmZmVyaW5nKSwKKyNpZiBkZWZp bmVkIFVOSVZfREVCVUcgfHwgZGVmaW5lZCBVTklWX0lCVUZfREVCVUcKKyAgTVlTUUxfU1lTVkFS KGNoYW5nZV9idWZmZXJpbmdfZGVidWcpLAorI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9J QlVGX0RFQlVHICovCiAgIE1ZU1FMX1NZU1ZBUihyZWFkX2FoZWFkX3RocmVzaG9sZCksCiAgIE1Z U1FMX1NZU1ZBUihpb19jYXBhY2l0eSksCiAgIE1ZU1FMX1NZU1ZBUihlbmFibGVfbW9uaXRvcl9j b3VudGVyKSwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2hhbmRsZXIvaGFf aW5ub2RiLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZp ZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5MzAxNC1uczNnN3p4cjN1OG5pMHVj CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaGFuZGxlci9oYV9pbm5vZGIuaAlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC0xMDks NiArMTA5LDcgQEAgY2xhc3MgaGFfaW5ub2Jhc2U6IHB1YmxpYyBoYW5kbGVyCiAJdWxpbnQgaW5u b2Jhc2VfdXBkYXRlX2F1dG9pbmModWxvbmdsb25nCWF1dG9faW5jKTsKIAl2b2lkIGlubm9iYXNl X2luaXRpYWxpemVfYXV0b2luYygpOwogCWRpY3RfaW5kZXhfdCogaW5ub2Jhc2VfZ2V0X2luZGV4 KHVpbnQga2V5bnIpOworCWludCBpbmZvX2xvdyh1aW50IGZsYWcsIGJvb2wgY2FsbGVkX2Zyb21f YW5hbHl6ZSk7CiAKIAkvKiBJbml0IHZhbHVlcyBmb3IgdGhlIGNsYXNzOiAqLwogIHB1YmxpYzoK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lidWYvaWJ1ZjBpYnVmLmMnCi0t LSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDptYXJrby5tYWtlbGFA b3JhY2xlLmNvbS0yMDEwMTAxOTA5MzAxNC1uczNnN3p4cjN1OG5pMHVjCisrKyBiL3N0b3JhZ2Uv aW5ub2Jhc2UvaWJ1Zi9pYnVmMGlidWYuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0y MDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC00OSw2ICs0OSw3IEBAIENyZWF0ZWQg Ny8xOS8xOTk3IEhlaWtraSBUdXVyaQogI2luY2x1ZGUgImJ0cjBjdXIuaCIKICNpbmNsdWRlICJi dHIwcGN1ci5oIgogI2luY2x1ZGUgImJ0cjBidHIuaCIKKyNpbmNsdWRlICJyb3cwdXBkLmgiCiAj aW5jbHVkZSAic3luYzBzeW5jLmgiCiAjaW5jbHVkZSAiZGljdDBib290LmgiCiAjaW5jbHVkZSAi ZnV0MGxzdC5oIgpAQCAtMTkyLDYgKzE5MywxMSBAQCBhY2Nlc3Mgb3JkZXIgcnVsZXMuICovCiAv KiogT3BlcmF0aW9ucyB0aGF0IGNhbiBjdXJyZW50bHkgYmUgYnVmZmVyZWQuICovCiBVTklWX0lO VEVSTiBpYnVmX3VzZV90CWlidWZfdXNlCQk9IElCVUZfVVNFX0FMTDsKIAorI2lmIGRlZmluZWQg VU5JVl9ERUJVRyB8fCBkZWZpbmVkIFVOSVZfSUJVRl9ERUJVRworLyoqIEZsYWcgdG8gY29udHJv bCBpbnNlcnQgYnVmZmVyIGRlYnVnZ2luZy4gKi8KK1VOSVZfSU5URVJOIHVpbnQJaWJ1Zl9kZWJ1 ZzsKKyNlbmRpZiAvKiBVTklWX0RFQlVHIHx8IFVOSVZfSUJVRl9ERUJVRyAqLworCiAvKiogVGhl IGluc2VydCBidWZmZXIgY29udHJvbCBzdHJ1Y3R1cmUgKi8KIFVOSVZfSU5URVJOIGlidWZfdCoJ aWJ1ZgkJCT0gTlVMTDsKIApAQCAtMjc2MSw5ICsyNzY3LDggQEAgaWJ1Zl9nZXRfdm9sdW1lX2J1 ZmZlcmVkX2NvdW50KAogCiAJc3dpdGNoIChpYnVmX29wKSB7CiAJY2FzZSBJQlVGX09QX0lOU0VS VDoKLQkJLyogSW5zZXJ0cyBjYW4gYmUgZG9uZSBieQotCQlidHJfY3VyX3NldF9kZWxldGVkX2Zs YWdfZm9yX2lidWYoKS4gIEJlY2F1c2UKLQkJZGVsZXRlLW1hcmsgYW5kIGluc2VydCBvcGVyYXRp b25zIGNhbiBiZSBwb2ludGluZyB0bworCQkvKiBJbnNlcnRzIGNhbiBiZSBkb25lIGJ5IHVwZGF0 aW5nIGEgZGVsZXRlLW1hcmtlZCByZWNvcmQuCisJCUJlY2F1c2UgZGVsZXRlLW1hcmsgYW5kIGlu c2VydCBvcGVyYXRpb25zIGNhbiBiZSBwb2ludGluZyB0bwogCQl0aGUgc2FtZSByZWNvcmRzLCB3 ZSBtdXN0IG5vdCBjb3VudCBkdXBsaWNhdGVzLiAqLwogCWNhc2UgSUJVRl9PUF9ERUxFVEVfTUFS SzoKIAkJLyogVGhlcmUgbXVzdCBiZSBhIHJlY29yZCB0byBkZWxldGUtbWFyay4KQEAgLTM3NDks OSArMzc1NCw4MCBAQCBEdXJpbmcgbWVyZ2UsIGluc2VydHMgdG8gYW4gaW5kZXggcGFnZSBhCiBm cm9tIHRoZSBpbnNlcnQgYnVmZmVyLiAqLwogc3RhdGljCiB2b2lkCitpYnVmX2luc2VydF90b19p bmRleF9wYWdlX2xvdygKKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT0qLworCWNvbnN0IGR0 dXBsZV90KgllbnRyeSwJLyohPCBpbjogYnVmZmVyZWQgZW50cnkgdG8gaW5zZXJ0ICovCisJYnVm X2Jsb2NrX3QqCWJsb2NrLAkvKiE8IGluL291dDogaW5kZXggcGFnZSB3aGVyZSB0aGUgYnVmZmVy ZWQKKwkJCQllbnRyeSBzaG91bGQgYmUgcGxhY2VkICovCisJZGljdF9pbmRleF90KglpbmRleCwJ LyohPCBpbjogcmVjb3JkIGRlc2NyaXB0b3IgKi8KKwltdHJfdCoJCW10ciwJLyohPCBpbi9vdXQ6 IG10ciAqLworCXBhZ2VfY3VyX3QqCXBhZ2VfY3VyKS8qITwgaW4vb3V0OiBjdXJzb3IgcG9zaXRp b25lZCBvbiB0aGUgcmVjb3JkCisJCQkJYWZ0ZXIgd2hpY2ggdG8gaW5zZXJ0IHRoZSBidWZmZXJl ZCBlbnRyeSAqLworeworCWNvbnN0IHBhZ2VfdCoJcGFnZTsKKwl1bGludAkJc3BhY2U7CisJdWxp bnQJCXBhZ2Vfbm87CisJdWxpbnQJCXppcF9zaXplOworCWNvbnN0IHBhZ2VfdCoJYml0bWFwX3Bh Z2U7CisJdWxpbnQJCW9sZF9iaXRzOworCisJaWYgKFVOSVZfTElLRUxZCisJICAgIChwYWdlX2N1 cl90dXBsZV9pbnNlcnQocGFnZV9jdXIsIGVudHJ5LCBpbmRleCwgMCwgbXRyKSAhPSBOVUxMKSkg eworCQlyZXR1cm47CisJfQorCisJLyogSWYgdGhlIHJlY29yZCBkaWQgbm90IGZpdCwgcmVvcmdh bml6ZSAqLworCisJYnRyX3BhZ2VfcmVvcmdhbml6ZShibG9jaywgaW5kZXgsIG10cik7CisJcGFn ZV9jdXJfc2VhcmNoKGJsb2NrLCBpbmRleCwgZW50cnksIFBBR0VfQ1VSX0xFLCBwYWdlX2N1cik7 CisKKwkvKiBUaGlzIHRpbWUgdGhlIHJlY29yZCBtdXN0IGZpdCAqLworCisJaWYgKFVOSVZfTElL RUxZCisJICAgIChwYWdlX2N1cl90dXBsZV9pbnNlcnQocGFnZV9jdXIsIGVudHJ5LCBpbmRleCwg MCwgbXRyKSAhPSBOVUxMKSkgeworCQlyZXR1cm47CisJfQorCisJcGFnZSA9IGJ1Zl9ibG9ja19n ZXRfZnJhbWUoYmxvY2spOworCisJdXRfcHJpbnRfdGltZXN0YW1wKHN0ZGVycik7CisKKwlmcHJp bnRmKHN0ZGVyciwKKwkJIiAgSW5ub0RCOiBFcnJvcjogSW5zZXJ0IGJ1ZmZlciBpbnNlcnQgZmFp bHM7IgorCQkiIHBhZ2UgZnJlZSAlbHUsIGR0dXBsZSBzaXplICVsdVxuIiwKKwkJKHVsb25nKSBw YWdlX2dldF9tYXhfaW5zZXJ0X3NpemUocGFnZSwgMSksCisJCSh1bG9uZykgcmVjX2dldF9jb252 ZXJ0ZWRfc2l6ZShpbmRleCwgZW50cnksIDApKTsKKwlmcHV0cygiSW5ub0RCOiBDYW5ub3QgaW5z ZXJ0IGluZGV4IHJlY29yZCAiLCBzdGRlcnIpOworCWR0dXBsZV9wcmludChzdGRlcnIsIGVudHJ5 KTsKKwlmcHV0cygiXG5Jbm5vREI6IFRoZSB0YWJsZSB3aGVyZSB0aGlzIGluZGV4IHJlY29yZCBi ZWxvbmdzXG4iCisJICAgICAgIklubm9EQjogaXMgbm93IHByb2JhYmx5IGNvcnJ1cHQuIFBsZWFz ZSBydW4gQ0hFQ0sgVEFCTEUgb25cbiIKKwkgICAgICAiSW5ub0RCOiB0aGF0IHRhYmxlLlxuIiwg c3RkZXJyKTsKKworCXNwYWNlID0gcGFnZV9nZXRfc3BhY2VfaWQocGFnZSk7CisJemlwX3NpemUg PSBidWZfYmxvY2tfZ2V0X3ppcF9zaXplKGJsb2NrKTsKKwlwYWdlX25vID0gcGFnZV9nZXRfcGFn ZV9ubyhwYWdlKTsKKworCWJpdG1hcF9wYWdlID0gaWJ1Zl9iaXRtYXBfZ2V0X21hcF9wYWdlKHNw YWNlLCBwYWdlX25vLCB6aXBfc2l6ZSwgbXRyKTsKKwlvbGRfYml0cyA9IGlidWZfYml0bWFwX3Bh Z2VfZ2V0X2JpdHMoYml0bWFwX3BhZ2UsIHBhZ2Vfbm8sIHppcF9zaXplLAorCQkJCQkgICAgIElC VUZfQklUTUFQX0ZSRUUsIG10cik7CisKKwlmcHJpbnRmKHN0ZGVyciwKKwkJIklubm9EQjogc3Bh Y2UgJWx1LCBwYWdlICVsdSwgemlwX3NpemUgJWx1LCBiaXRtYXAgYml0cyAlbHVcbiIsCisJCSh1 bG9uZykgc3BhY2UsICh1bG9uZykgcGFnZV9ubywKKwkJKHVsb25nKSB6aXBfc2l6ZSwgKHVsb25n KSBvbGRfYml0cyk7CisKKwlmcHV0cygiSW5ub0RCOiBTdWJtaXQgYSBkZXRhaWxlZCBidWcgcmVw b3J0IgorCSAgICAgICIgdG8gaHR0cDovL2J1Z3MubXlzcWwuY29tXG4iLCBzdGRlcnIpOworfQor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCitEdXJpbmcgbWVyZ2UsIGluc2VydHMgdG8gYW4gaW5kZXggcGFn ZSBhIHNlY29uZGFyeSBpbmRleCBlbnRyeSBleHRyYWN0ZWQKK2Zyb20gdGhlIGluc2VydCBidWZm ZXIuICovCitzdGF0aWMKK3ZvaWQKIGlidWZfaW5zZXJ0X3RvX2luZGV4X3BhZ2UoCiAvKj09PT09 PT09PT09PT09PT09PT09PT0qLwotCWR0dXBsZV90KgllbnRyeSwJLyohPCBpbjogYnVmZmVyZWQg ZW50cnkgdG8gaW5zZXJ0ICovCisJY29uc3QgZHR1cGxlX3QqCWVudHJ5LAkvKiE8IGluOiBidWZm ZXJlZCBlbnRyeSB0byBpbnNlcnQgKi8KIAlidWZfYmxvY2tfdCoJYmxvY2ssCS8qITwgaW4vb3V0 OiBpbmRleCBwYWdlIHdoZXJlIHRoZSBidWZmZXJlZCBlbnRyeQogCQkJCXNob3VsZCBiZSBwbGFj ZWQgKi8KIAlkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiByZWNvcmQgZGVzY3JpcHRvciAq LwpAQCAtMzc2MSwxMSArMzgzNywxMCBAQCBpYnVmX2luc2VydF90b19pbmRleF9wYWdlKAogCXVs aW50CQlsb3dfbWF0Y2g7CiAJcGFnZV90KgkJcGFnZQkJPSBidWZfYmxvY2tfZ2V0X2ZyYW1lKGJs b2NrKTsKIAlyZWNfdCoJCXJlYzsKLQlwYWdlX3QqCQliaXRtYXBfcGFnZTsKLQl1bGludAkJb2xk X2JpdHM7CiAKIAl1dF9hZChpYnVmX2luc2lkZSgpKTsKIAl1dF9hZChkdHVwbGVfY2hlY2tfdHlw ZWQoZW50cnkpKTsKKwl1dF9hZCghYnVmX2Jsb2NrX2FsaWduKHBhZ2UpLT5pc19oYXNoZWQpOwog CiAJaWYgKFVOSVZfVU5MSUtFTFkoZGljdF90YWJsZV9pc19jb21wKGluZGV4LT50YWJsZSkKIAkJ CSAgIT0gKGlib29sKSEhcGFnZV9pc19jb21wKHBhZ2UpKSkgewpAQCAtMzgxMSw3MSArMzg4Niw4 NyBAQCBkdW1wOgogCWxvd19tYXRjaCA9IHBhZ2VfY3VyX3NlYXJjaChibG9jaywgaW5kZXgsIGVu dHJ5LAogCQkJCSAgICBQQUdFX0NVUl9MRSwgJnBhZ2VfY3VyKTsKIAotCWlmIChsb3dfbWF0Y2gg PT0gZHR1cGxlX2dldF9uX2ZpZWxkcyhlbnRyeSkpIHsKKwlpZiAoVU5JVl9VTkxJS0VMWShsb3df bWF0Y2ggPT0gZHR1cGxlX2dldF9uX2ZpZWxkcyhlbnRyeSkpKSB7CisJCW1lbV9oZWFwX3QqCWhl YXA7CisJCXVwZF90KgkJdXBkYXRlOworCQl1bGludCoJCW9mZnNldHM7CiAJCXBhZ2VfemlwX2Rl c190KglwYWdlX3ppcDsKIAogCQlyZWMgPSBwYWdlX2N1cl9nZXRfcmVjKCZwYWdlX2N1cik7Ci0J CXBhZ2VfemlwID0gYnVmX2Jsb2NrX2dldF9wYWdlX3ppcChibG9jayk7CiAKLQkJYnRyX2N1cl9z ZXRfZGVsZXRlZF9mbGFnX2Zvcl9pYnVmKHJlYywgcGFnZV96aXAsIEZBTFNFLCBtdHIpOwotCX0g ZWxzZSB7Ci0JCXJlYyA9IHBhZ2VfY3VyX3R1cGxlX2luc2VydCgmcGFnZV9jdXIsIGVudHJ5LCBp bmRleCwgMCwgbXRyKTsKKwkJLyogVGhpcyBpcyBiYXNlZCBvbgorCQlyb3dfaW5zX3NlY19pbmRl eF9lbnRyeV9ieV9tb2RpZnkoQlRSX01PRElGWV9MRUFGKS4gKi8KKwkJdXRfYWQocmVjX2dldF9k ZWxldGVkX2ZsYWcocmVjLCBwYWdlX2lzX2NvbXAocGFnZSkpKTsKKworCQloZWFwID0gbWVtX2hl YXBfY3JlYXRlKDEwMjQpOworCisJCW9mZnNldHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRl eCwgTlVMTCwgVUxJTlRfVU5ERUZJTkVELAorCQkJCQkgICZoZWFwKTsKKwkJdXBkYXRlID0gcm93 X3VwZF9idWlsZF9zZWNfcmVjX2RpZmZlcmVuY2VfYmluYXJ5KAorCQkJaW5kZXgsIGVudHJ5LCBy ZWMsIE5VTEwsIGhlYXApOwogCi0JCWlmIChVTklWX0xJS0VMWShyZWMgIT0gTlVMTCkpIHsKKwkJ cGFnZV96aXAgPSBidWZfYmxvY2tfZ2V0X3BhZ2VfemlwKGJsb2NrKTsKKworCQlpZiAodXBkYXRl LT5uX2ZpZWxkcyA9PSAwKSB7CisJCQkvKiBUaGUgcmVjb3JkcyBvbmx5IGRpZmZlciBpbiB0aGUg ZGVsZXRlLW1hcmsuCisJCQlDbGVhciB0aGUgZGVsZXRlLW1hcmssIGxpa2Ugd2UgZGlkIGJlZm9y ZQorCQkJQnVnICM1NjY4MCB3YXMgZml4ZWQuICovCisJCQlidHJfY3VyX3NldF9kZWxldGVkX2Zs YWdfZm9yX2lidWYoCisJCQkJcmVjLCBwYWdlX3ppcCwgRkFMU0UsIG10cik7Cit1cGRhdGVkX2lu X3BsYWNlOgorCQkJbWVtX2hlYXBfZnJlZShoZWFwKTsKIAkJCXJldHVybjsKIAkJfQogCi0JCS8q IElmIHRoZSByZWNvcmQgZGlkIG5vdCBmaXQsIHJlb3JnYW5pemUgKi8KKwkJLyogQ29weSB0aGUg aW5mbyBiaXRzLiBDbGVhciB0aGUgZGVsZXRlLW1hcmsuICovCisJCXVwZGF0ZS0+aW5mb19iaXRz ID0gcmVjX2dldF9pbmZvX2JpdHMocmVjLCBwYWdlX2lzX2NvbXAocGFnZSkpOworCQl1cGRhdGUt PmluZm9fYml0cyAmPSB+UkVDX0lORk9fREVMRVRFRF9GTEFHOworCisJCS8qIFdlIGNhbm5vdCBp bnZva2UgYnRyX2N1cl9vcHRpbWlzdGljX3VwZGF0ZSgpIGhlcmUsCisJCWJlY2F1c2Ugd2UgZG8g bm90IGhhdmUgYSBidHJfY3VyX3Qgb3IgcXVlX3Rocl90LAorCQlhcyB0aGUgaW5zZXJ0IGJ1ZmZl ciBtZXJnZSBvY2N1cnMgYXQgYSB2ZXJ5IGxvdyBsZXZlbC4gKi8KKwkJaWYgKCFyb3dfdXBkX2No YW5nZXNfZmllbGRfc2l6ZV9vcl9leHRlcm5hbChpbmRleCwgb2Zmc2V0cywKKwkJCQkJCQkgICAg dXBkYXRlKQorCQkgICAgJiYgKCFwYWdlX3ppcCB8fCBidHJfY3VyX3VwZGF0ZV9hbGxvY196aXAo CisJCQkJcGFnZV96aXAsIGJsb2NrLCBpbmRleCwKKwkJCQlyZWNfb2Zmc19zaXplKG9mZnNldHMp LCBGQUxTRSwgbXRyKSkpIHsKKwkJCS8qIFRoaXMgaXMgdGhlIGVhc3kgY2FzZS4gRG8gc29tZXRo aW5nIHNpbWlsYXIKKwkJCXRvIGJ0cl9jdXJfdXBkYXRlX2luX3BsYWNlKCkuICovCisJCQlyb3df dXBkX3JlY19pbl9wbGFjZShyZWMsIGluZGV4LCBvZmZzZXRzLAorCQkJCQkgICAgIHVwZGF0ZSwg cGFnZV96aXApOworCQkJZ290byB1cGRhdGVkX2luX3BsYWNlOworCQl9CisKKwkJLyogQSBjb2xs YXRpb24gbWF5IGlkZW50aWZ5IHZhbHVlcyB0aGF0IGRpZmZlciBpbgorCQlzdG9yYWdlIGxlbmd0 aC4KKwkJU29tZSBleGFtcGxlcyAoMSBvciAyIGJ5dGVzKToKKwkJdXRmOF90dXJraXNoX2NpOiBJ ID0gVSswMTMxIExBVElOIFNNQUxMIExFVFRFUiBET1RMRVNTIEkKKwkJdXRmOF9nZW5lcmFsX2Np OiBTID0gVSswMERGIExBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTCisJCXV0ZjhfZ2VuZXJhbF9j aTogQSA9IFUrMDBFNCBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworCisJCWxh dGluMV9nZXJtYW4yX2NpOiBTUyA9IFUrMDBERiBMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUwor CisJCUV4YW1wbGVzIG9mIGEgY2hhcmFjdGVyICgzLWJ5dGUgVVRGLTggc2VxdWVuY2UpCisJCWlk ZW50aWZpZWQgd2l0aCAyIG9yIDQgY2hhcmFjdGVycyAoMS1ieXRlIFVURi04IHNlcXVlbmNlcyk6 CisKKwkJdXRmOF91bmljb2RlX2NpOiAnSUknID0gVSsyMTcxIFNNQUxMIFJPTUFOIE5VTUVSQUwg VFdPCisJCXV0ZjhfdW5pY29kZV9jaTogJygxMCknID0gVSsyNDdEIFBBUkVOVEhFU0laRUQgTlVN QkVSIFRFTgorCQkqLwogCi0JCWJ0cl9wYWdlX3Jlb3JnYW5pemUoYmxvY2ssIGluZGV4LCBtdHIp OwotCQlwYWdlX2N1cl9zZWFyY2goYmxvY2ssIGluZGV4LCBlbnRyeSwgUEFHRV9DVVJfTEUsICZw YWdlX2N1cik7CisJCS8qIERlbGV0ZSB0aGUgZGlmZmVyZW50LWxlbmd0aCByZWNvcmQsIGFuZCBp bnNlcnQgdGhlCisJCWJ1ZmZlcmVkIG9uZS4gKi8KIAotCQkvKiBUaGlzIHRpbWUgdGhlIHJlY29y ZCBtdXN0IGZpdCAqLwotCQlpZiAoVU5JVl9VTkxJS0VMWQotCQkgICAgKCFwYWdlX2N1cl90dXBs ZV9pbnNlcnQoJnBhZ2VfY3VyLCBlbnRyeSwgaW5kZXgsCi0JCQkJCSAgICAwLCBtdHIpKSkgewot CQkJdWxpbnQJc3BhY2U7Ci0JCQl1bGludAlwYWdlX25vOwotCQkJdWxpbnQJemlwX3NpemU7Ci0K LQkJCXV0X3ByaW50X3RpbWVzdGFtcChzdGRlcnIpOwotCi0JCQlmcHJpbnRmKHN0ZGVyciwKLQkJ CQkiICBJbm5vREI6IEVycm9yOiBJbnNlcnQgYnVmZmVyIGluc2VydCIKLQkJCQkiIGZhaWxzOyBw YWdlIGZyZWUgJWx1LCIKLQkJCQkiIGR0dXBsZSBzaXplICVsdVxuIiwKLQkJCQkodWxvbmcpIHBh Z2VfZ2V0X21heF9pbnNlcnRfc2l6ZSgKLQkJCQkJcGFnZSwgMSksCi0JCQkJKHVsb25nKSByZWNf Z2V0X2NvbnZlcnRlZF9zaXplKAotCQkJCQlpbmRleCwgZW50cnksIDApKTsKLQkJCWZwdXRzKCJJ bm5vREI6IENhbm5vdCBpbnNlcnQgaW5kZXggcmVjb3JkICIsCi0JCQkgICAgICBzdGRlcnIpOwot CQkJZHR1cGxlX3ByaW50KHN0ZGVyciwgZW50cnkpOwotCQkJZnB1dHMoIlxuSW5ub0RCOiBUaGUg dGFibGUgd2hlcmUiCi0JCQkgICAgICAiIHRoaXMgaW5kZXggcmVjb3JkIGJlbG9uZ3NcbiIKLQkJ CSAgICAgICJJbm5vREI6IGlzIG5vdyBwcm9iYWJseSBjb3JydXB0LiIKLQkJCSAgICAgICIgUGxl YXNlIHJ1biBDSEVDSyBUQUJMRSBvblxuIgotCQkJICAgICAgIklubm9EQjogdGhhdCB0YWJsZS5c biIsIHN0ZGVycik7Ci0KLQkJCXNwYWNlID0gcGFnZV9nZXRfc3BhY2VfaWQocGFnZSk7Ci0JCQl6 aXBfc2l6ZSA9IGJ1Zl9ibG9ja19nZXRfemlwX3NpemUoYmxvY2spOwotCQkJcGFnZV9ubyA9IHBh Z2VfZ2V0X3BhZ2Vfbm8ocGFnZSk7Ci0KLQkJCWJpdG1hcF9wYWdlID0gaWJ1Zl9iaXRtYXBfZ2V0 X21hcF9wYWdlKAotCQkJCXNwYWNlLCBwYWdlX25vLCB6aXBfc2l6ZSwgbXRyKTsKLQkJCW9sZF9i aXRzID0gaWJ1Zl9iaXRtYXBfcGFnZV9nZXRfYml0cygKLQkJCQliaXRtYXBfcGFnZSwgcGFnZV9u bywgemlwX3NpemUsCi0JCQkJSUJVRl9CSVRNQVBfRlJFRSwgbXRyKTsKLQotCQkJZnByaW50Zihz dGRlcnIsCi0JCQkJIklubm9EQjogc3BhY2UgJWx1LCBwYWdlICVsdSwiCi0JCQkJIiB6aXBfc2l6 ZSAlbHUsIGJpdG1hcCBiaXRzICVsdVxuIiwKLQkJCQkodWxvbmcpIHNwYWNlLCAodWxvbmcpIHBh Z2Vfbm8sCi0JCQkJKHVsb25nKSB6aXBfc2l6ZSwgKHVsb25nKSBvbGRfYml0cyk7CisJCWxvY2tf cmVjX3N0b3JlX29uX3BhZ2VfaW5maW11bShibG9jaywgcmVjKTsKKwkJcGFnZV9jdXJfZGVsZXRl X3JlYygmcGFnZV9jdXIsIGluZGV4LCBvZmZzZXRzLCBtdHIpOworCQlwYWdlX2N1cl9tb3ZlX3Rv X3ByZXYoJnBhZ2VfY3VyKTsKKwkJbWVtX2hlYXBfZnJlZShoZWFwKTsKIAotCQkJZnB1dHMoIklu bm9EQjogU3VibWl0IGEgZGV0YWlsZWQgYnVnIHJlcG9ydCIKLQkJCSAgICAgICIgdG8gaHR0cDov L2J1Z3MubXlzcWwuY29tXG4iLCBzdGRlcnIpOwotCQl9CisJCWlidWZfaW5zZXJ0X3RvX2luZGV4 X3BhZ2VfbG93KGVudHJ5LCBibG9jaywgaW5kZXgsIG10ciwKKwkJCQkJICAgICAgJnBhZ2VfY3Vy KTsKKwkJbG9ja19yZWNfcmVzdG9yZV9mcm9tX3BhZ2VfaW5maW11bShibG9jaywgcmVjLCBibG9j ayk7CisJfSBlbHNlIHsKKwkJaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZV9sb3coZW50cnksIGJs b2NrLCBpbmRleCwgbXRyLAorCQkJCQkgICAgICAmcGFnZV9jdXIpOwogCX0KIH0KIApAQCAtMzkw Nyw5ICszOTk4LDMyIEBAIGlidWZfc2V0X2RlbF9tYXJrKAogCQlyZWMgPSBwYWdlX2N1cl9nZXRf cmVjKCZwYWdlX2N1cik7CiAJCXBhZ2VfemlwID0gcGFnZV9jdXJfZ2V0X3BhZ2VfemlwKCZwYWdl X2N1cik7CiAKLQkJYnRyX2N1cl9zZXRfZGVsZXRlZF9mbGFnX2Zvcl9pYnVmKHJlYywgcGFnZV96 aXAsIFRSVUUsIG10cik7CisJCS8qIERlbGV0ZSBtYXJrIHRoZSBvbGQgaW5kZXggcmVjb3JkLiBB Y2NvcmRpbmcgdG8gYQorCQljb21tZW50IGluIHJvd191cGRfc2VjX2luZGV4X2VudHJ5KCksIGl0 IGNhbiBhbHJlYWR5CisJCWhhdmUgYmVlbiBkZWxldGUgbWFya2VkIGlmIGEgbG9jayB3YWl0IG9j Y3VycmVkIGluCisJCXJvd19pbnNfaW5kZXhfZW50cnkoKSBpbiBhIHByZXZpb3VzIGludm9jYXRp b24gb2YKKwkJcm93X3VwZF9zZWNfaW5kZXhfZW50cnkoKS4gKi8KKworCQlpZiAoVU5JVl9MSUtF TFkKKwkJICAgICghcmVjX2dldF9kZWxldGVkX2ZsYWcoCisJCQkgICAgcmVjLCBkaWN0X3RhYmxl X2lzX2NvbXAoaW5kZXgtPnRhYmxlKSkpKSB7CisJCQlidHJfY3VyX3NldF9kZWxldGVkX2ZsYWdf Zm9yX2lidWYocmVjLCBwYWdlX3ppcCwKKwkJCQkJCQkgIFRSVUUsIG10cik7CisJCX0KIAl9IGVs c2UgewotCQkvKiBUaGlzIGNhbiBoYXBwZW4gYmVuaWdubHkgaW4gc29tZSBzaXR1YXRpb25zLiAq LworCQl1dF9wcmludF90aW1lc3RhbXAoc3RkZXJyKTsKKwkJZnB1dHMoIiAgSW5ub0RCOiB1bmFi bGUgdG8gZmluZCBhIHJlY29yZCB0byBkZWxldGUtbWFya1xuIiwKKwkJICAgICAgc3RkZXJyKTsK KwkJZnB1dHMoIklubm9EQjogdHVwbGUgIiwgc3RkZXJyKTsKKwkJZHR1cGxlX3ByaW50KHN0ZGVy ciwgZW50cnkpOworCQlmcHV0cygiXG4iCisJCSAgICAgICJJbm5vREI6IHJlY29yZCAiLCBzdGRl cnIpOworCQlyZWNfcHJpbnQoc3RkZXJyLCBwYWdlX2N1cl9nZXRfcmVjKCZwYWdlX2N1ciksIGlu ZGV4KTsKKwkJcHV0YygnXG4nLCBzdGRlcnIpOworCQlmcHV0cygiXG4iCisJCSAgICAgICJJbm5v REI6IFN1Ym1pdCBhIGRldGFpbGVkIGJ1ZyByZXBvcnQiCisJCSAgICAgICIgdG8gaHR0cDovL2J1 Z3MubXlzcWwuY29tXG4iLCBzdGRlcnIpOworCQl1dF9hZCgwKTsKIAl9CiB9CiAKQEAgLTM5ODQs MTAgKzQwOTgsNyBAQCBpYnVmX2RlbGV0ZSgKIAkJCW1lbV9oZWFwX2ZyZWUoaGVhcCk7CiAJCX0K IAl9IGVsc2UgewotCQkvKiBUaGlzIGNhbiBoYXBwZW4gYmVuaWdubHkgaW4gc29tZSBzaXR1YXRp b25zOiBlaXRoZXIgd2hlbgotCQl3ZSBjcmFzaGVkIGF0IGp1c3QgdGhlIHJpZ2h0IHRpbWUsIG9y IG9uIGRhdGFiYXNlIHN0YXJ0dXAKLQkJd2hlbiB3ZSByZWRvIHNvbWUgb2xkIGxvZyBlbnRyaWVz IChkdWUgdG8gd29yc2Ugc3RvcmVkCi0JCXBvc2l0aW9uIGdyYW51bGFyaXR5IG9uIGRpc2sgdGhh biBpbiBtZW1vcnkpLiAqLworCQkvKiBUaGUgcmVjb3JkIG11c3QgaGF2ZSBiZWVuIHB1cmdlZCBh bHJlYWR5LiAqLwogCX0KIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uv aW5jbHVkZS9idHIwY3VyLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idHIwY3Vy LmgJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMzZzd6eHIz dThuaTB1YworKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnRyMGN1ci5oCXJldmlkOm1h cmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAg LTI0Myw2ICsyNDMsMjIgQEAgYnRyX2N1cl9wZXNzaW1pc3RpY19pbnNlcnQoCiAJcXVlX3Rocl90 Kgl0aHIsCS8qITwgaW46IHF1ZXJ5IHRocmVhZCBvciBOVUxMICovCiAJbXRyX3QqCQltdHIpOwkv KiE8IGluOiBtdHIgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgorU2VlIGlmIHRoZXJlIGlzIGVub3VnaCBwbGFjZSBp biB0aGUgcGFnZSBtb2RpZmljYXRpb24gbG9nIHRvIGxvZworYW4gdXBkYXRlLWluLXBsYWNlLgor QHJldHVybglUUlVFIGlmIGVub3VnaCBwbGFjZSAqLworVU5JVl9JTlRFUk4KK2lib29sCitidHJf Y3VyX3VwZGF0ZV9hbGxvY196aXAoCisvKj09PT09PT09PT09PT09PT09PT09PSovCisJcGFnZV96 aXBfZGVzX3QqCXBhZ2VfemlwLC8qITwgaW4vb3V0OiBjb21wcmVzc2VkIHBhZ2UgKi8KKwlidWZf YmxvY2tfdCoJYmxvY2ssCS8qITwgaW4vb3V0OiBidWZmZXIgcGFnZSAqLworCWRpY3RfaW5kZXhf dCoJaW5kZXgsCS8qITwgaW46IHRoZSBpbmRleCBjb3JyZXNwb25kaW5nIHRvIHRoZSBibG9jayAq LworCXVsaW50CQlsZW5ndGgsCS8qITwgaW46IHNpemUgbmVlZGVkICovCisJaWJvb2wJCWNyZWF0 ZSwJLyohPCBpbjogVFJVRT1kZWxldGUtYW5kLWluc2VydCwKKwkJCQlGQUxTRT11cGRhdGUtaW4t cGxhY2UgKi8KKwltdHJfdCoJCW10cikJLyohPCBpbjogbWluaS10cmFuc2FjdGlvbiAqLworCV9f YXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBV cGRhdGVzIGEgcmVjb3JkIHdoZW4gdGhlIHVwZGF0ZSBjYXVzZXMgbm8gc2l6ZSBjaGFuZ2VzIGlu IGl0cyBmaWVsZHMuCiBAcmV0dXJuCURCX1NVQ0NFU1Mgb3IgZXJyb3IgbnVtYmVyICovCiBVTklW X0lOVEVSTgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYw Zmx1LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9idWYwZmx1LmgJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMzZzd6eHIzdThuaTB1YworKysg Yi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvYnVmMGZsdS5oCXJldmlkOm1hcmtvLm1ha2VsYUBv cmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAgLTg0LDYgKzg0LDIx IEBAIGJ1Zl9mbHVzaF9pbml0X2Zvcl93cml0aW5nKAogCWliX3VpbnQ2NF90CW5ld2VzdF9sc24p OwkvKiE8IGluOiBuZXdlc3QgbW9kaWZpY2F0aW9uIGxzbgogCQkJCQl0byB0aGUgcGFnZSAqLwog I2lmbmRlZiBVTklWX0hPVEJBQ0tVUAorIyBpZiBkZWZpbmVkIFVOSVZfREVCVUcgfHwgZGVmaW5l ZCBVTklWX0lCVUZfREVCVUcKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKK1dyaXRlcyBhIGZsdXNoYWJsZSBw YWdlIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIGJ1ZmZlciBwb29sIHRvIGEgZmlsZS4KK05PVEU6 IGJ1Zl9wb29sX211dGV4IGFuZCBibG9jay0+bXV0ZXggbXVzdCBiZSBoZWxkIHVwb24gZW50ZXJp bmcgdGhpcworZnVuY3Rpb24sIGFuZCB0aGV5IHdpbGwgYmUgcmVsZWFzZWQgYnkgdGhpcyBmdW5j dGlvbiBhZnRlciBmbHVzaGluZy4KK1RoaXMgaXMgbG9vc2VseSBiYXNlZCBvbiBidWZfZmx1c2hf YmF0Y2goKSBhbmQgYnVmX2ZsdXNoX3BhZ2UoKS4KK0ByZXR1cm4gVFJVRSBpZiB0aGUgcGFnZSB3 YXMgZmx1c2hlZCBhbmQgdGhlIG11dGV4ZXMgcmVsZWFzZWQgKi8KK1VOSVZfSU5URVJOCitpYm9v bAorYnVmX2ZsdXNoX3BhZ2VfdHJ5KAorLyo9PT09PT09PT09PT09PT0qLworCWJ1Zl9wb29sX3Qq CWJ1Zl9wb29sLAkvKiE8IGluL291dDogYnVmZmVyIHBvb2wgaW5zdGFuY2UgKi8KKwlidWZfYmxv Y2tfdCoJYmxvY2spCQkvKiE8IGluL291dDogYnVmZmVyIGNvbnRyb2wgYmxvY2sgKi8KKwlfX2F0 dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKKyMgZW5kaWYgLyogVU5J Vl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogVGhpcyB1dGls aXR5IGZsdXNoZXMgZGlydHkgYmxvY2tzIGZyb20gdGhlIGVuZCBvZiB0aGUgTFJVIGxpc3QuCiBO T1RFOiBUaGUgY2FsbGluZyB0aHJlYWQgbWF5IG93biBsYXRjaGVzIHRvIHBhZ2VzOiB0byBhdm9p ZCBkZWFkbG9ja3MsCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRl L2lidWYwaWJ1Zi5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgJ cmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMzZzd6eHIzdThu aTB1YworKysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvaWJ1ZjBpYnVmLmgJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAt NjMsNiArNjMsMTEgQEAgdHlwZWRlZiBlbnVtIHsKIC8qKiBPcGVyYXRpb25zIHRoYXQgY2FuIGN1 cnJlbnRseSBiZSBidWZmZXJlZC4gKi8KIGV4dGVybiBpYnVmX3VzZV90CWlidWZfdXNlOwogCisj aWYgZGVmaW5lZCBVTklWX0RFQlVHIHx8IGRlZmluZWQgVU5JVl9JQlVGX0RFQlVHCisvKiogRmxh ZyB0byBjb250cm9sIGluc2VydCBidWZmZXIgZGVidWdnaW5nLiAqLworZXh0ZXJuIHVpbnQJCWli dWZfZGVidWc7CisjZW5kaWYgLyogVU5JVl9ERUJVRyB8fCBVTklWX0lCVUZfREVCVUcgKi8KKwog LyoqIFRoZSBpbnNlcnQgYnVmZmVyIGNvbnRyb2wgc3RydWN0dXJlICovCiBleHRlcm4gaWJ1Zl90 KgkJaWJ1ZjsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9y ZW0wcmVjLmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yZW0wcmVjLmgJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMzZzd6eHIzdThuaTB1Ywor KysgYi9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcmVtMHJlYy5oCXJldmlkOm1hcmtvLm1ha2Vs YUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21meHlia2MKQEAgLTgwMSw5ICs4 MDEsOSBAQCBVTklWX0lOVEVSTgogdm9pZAogcmVjX3ByaW50KAogLyo9PT09PT0qLwotCUZJTEUq CQlmaWxlLAkvKiE8IGluOiBmaWxlIHdoZXJlIHRvIHByaW50ICovCi0JY29uc3QgcmVjX3QqCXJl YywJLyohPCBpbjogcGh5c2ljYWwgcmVjb3JkICovCi0JZGljdF9pbmRleF90KglpbmRleCk7CS8q ITwgaW46IHJlY29yZCBkZXNjcmlwdG9yICovCisJRklMRSoJCQlmaWxlLAkvKiE8IGluOiBmaWxl IHdoZXJlIHRvIHByaW50ICovCisJY29uc3QgcmVjX3QqCQlyZWMsCS8qITwgaW46IHBoeXNpY2Fs IHJlY29yZCAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpOwkvKiE8IGluOiByZWNvcmQg ZGVzY3JpcHRvciAqLwogI2VuZGlmIC8qIFVOSVZfSE9UQkFDS1VQICovCiAKIC8qIE1heGltdW0g bGVuZ3RocyBmb3IgdGhlIGRhdGEgaW4gYSBwaHlzaWNhbCByZWNvcmQgaWYgdGhlIG9mZnNldHMK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MG15c3FsLmgn Ci0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbXlzcWwuaAlyZXZpZDptYXJrby5t YWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5MzAxNC1uczNnN3p4cjN1OG5pMHVjCisrKyBiL3N0 b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9yb3cwbXlzcWwuaAlyZXZpZDptYXJrby5tYWtlbGFAb3Jh Y2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC01MzgsNiArNTM4LDEw IEBAIHN0cnVjdCBteXNxbF9yb3dfdGVtcGxfc3RydWN0IHsKIAkJCQkJSW5ub2Jhc2UgcmVjb3Jk IGluIHRoZSBjdXJyZW50IGluZGV4OwogCQkJCQlub3QgZGVmaW5lZCBpZiB0ZW1wbGF0ZV90eXBl IGlzCiAJCQkJCVJPV19NWVNRTF9XSE9MRV9ST1cgKi8KKwl1bGludAljbHVzdF9yZWNfZmllbGRf bm87CS8qITwgZmllbGQgbnVtYmVyIG9mIHRoZSBjb2x1bW4gaW4gYW4KKwkJCQkJSW5ub2Jhc2Ug cmVjb3JkIGluIHRoZSBjbHVzdGVyZWQgaW5kZXg7CisJCQkJCW5vdCBkZWZpbmVkIGlmIHRlbXBs YXRlX3R5cGUgaXMKKwkJCQkJUk9XX01ZU1FMX1dIT0xFX1JPVyAqLwogCXVsaW50CW15c3FsX2Nv bF9vZmZzZXQ7CS8qITwgb2Zmc2V0IG9mIHRoZSBjb2x1bW4gaW4gdGhlIE15U1FMCiAJCQkJCXJv dyBmb3JtYXQgKi8KIAl1bGludAlteXNxbF9jb2xfbGVuOwkJLyohPCBsZW5ndGggb2YgdGhlIGNv bHVtbiBpbiB0aGUgTXlTUUwKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2lu Y2x1ZGUvcm93MHVwZC5oJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUvcm93MHVwZC5o CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MDkzMDE0LW5zM2c3enhyM3U4 bmkwdWMKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9pbmNsdWRlL3JvdzB1cGQuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTEwMDMyNS1kczYzOXJtYzdtZnh5YmtjCkBAIC0x NjcsOCArMTY3LDExIEBAIHJvd191cGRfY2hhbmdlc19maWVsZF9zaXplX29yX2V4dGVybmFsKAog CWNvbnN0IHVwZF90Kgl1cGRhdGUpOy8qITwgaW46IHVwZGF0ZSB2ZWN0b3IgKi8KICNlbmRpZiAv KiAhVU5JVl9IT1RCQUNLVVAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKLVJlcGxhY2VzIHRoZSBuZXcgY29sdW1uIHZh bHVlcyBzdG9yZWQgaW4gdGhlIHVwZGF0ZSB2ZWN0b3IgdG8gdGhlIHJlY29yZAotZ2l2ZW4uIE5v IGZpZWxkIHNpemUgY2hhbmdlcyBhcmUgYWxsb3dlZC4gKi8KK1JlcGxhY2VzIHRoZSBuZXcgY29s dW1uIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHVwZGF0ZSB2ZWN0b3IgdG8gdGhlCityZWNvcmQgZ2l2 ZW4uIE5vIGZpZWxkIHNpemUgY2hhbmdlcyBhcmUgYWxsb3dlZC4gVGhpcyBmdW5jdGlvbiBpcwor dXN1YWxseSBpbnZva2VkIG9uIGEgY2x1c3RlcmVkIGluZGV4LiBUaGUgb25seSB1c2UgY2FzZSBm b3IgYQorc2Vjb25kYXJ5IGluZGV4IGlzIHJvd19pbnNfc2VjX2luZGV4X2VudHJ5X2J5X21vZGlm eSgpIG9yIGl0cworY291bnRlcnBhcnQgaW4gaWJ1Zl9pbnNlcnRfdG9faW5kZXhfcGFnZSgpLiAq LwogVU5JVl9JTlRFUk4KIHZvaWQKIHJvd191cGRfcmVjX2luX3BsYWNlKAoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvaW5ub2Jhc2Uvb3Mvb3Mwc3luYy5jJwotLS0gYS9zdG9yYWdlL2lubm9i YXNlL29zL29zMHN5bmMuYwlyZXZpZDptYXJrby5tYWtlbGFAb3JhY2xlLmNvbS0yMDEwMTAxOTA5 MzAxNC1uczNnN3p4cjN1OG5pMHVjCisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2Uvb3Mvb3Mwc3luYy5j CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIwMTAxMDE5MTAwMzI1LWRzNjM5cm1jN21m eHlia2MKQEAgLTEzNyw3ICsxMzcsNyBAQCBvc19jb25kX3dhaXRfdGltZWQoCiAJY29uc3Qgc3Ry dWN0IHRpbWVzcGVjKglhYnN0aW1lCQkvKiE8IGluOiB0aW1lb3V0ICovCiAjZWxzZQogCXVsaW50 CQkJdGltZV9pbl9tcwkvKiE8IGluOiB0aW1lb3V0IGluCi0JCQkJCQltaWxsaXNlY29uZHMgKi8K KwkJCQkJCW1pbGxpc2Vjb25kcyovCiAjZW5kaWYgLyogIV9fV0lOX18gKi8KICkKIHsKQEAgLTE2 MCw3ICsxNjAsMTcgQEAgb3NfY29uZF93YWl0X3RpbWVkKAogCiAJcmV0ID0gcHRocmVhZF9jb25k X3RpbWVkd2FpdChjb25kLCBtdXRleCwgYWJzdGltZSk7CiAKLQl1dF9hKHJldCA9PSAwIHx8IHJl dCA9PSBFVElNRURPVVQpOworCXN3aXRjaCAocmV0KSB7CisJY2FzZSAwOgorCWNhc2UgRVRJTUVE T1VUOgorCSAgICAgICAJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlmcHJpbnRmKHN0ZGVyciwgIiAg SW5ub0RCOiBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCkgcmV0dXJuZWQ6ICIKKwkJCQkiJWQ6IGFi c3RpbWU9eyVsdSwlbHV9XG4iLAorCQkJICAgICAgIAlyZXQsIGFic3RpbWUtPnR2X3NlYywgYWJz dGltZS0+dHZfbnNlYyk7CisJCXV0X2Vycm9yOworCX0KIAogCXJldHVybihyZXQgPT0gRVRJTUVE T1VUKTsKICNlbmRpZgpAQCAtNjM3LDE0ICs2NDcsMTUgQEAgb3NfZXZlbnRfd2FpdF90aW1lX2xv dygKIAlpYl9pbnQ2NF90CW9sZF9zaWduYWxfY291bnQ7CiAKICNpZmRlZiBfX1dJTl9fCi0JRFdP UkQJCXRpbWVfaW5fbXMgPSB0aW1lX2luX3VzZWMgLyAxMDAwOworCURXT1JECQl0aW1lX2luX21z OwogCiAJaWYgKCFzcnZfdXNlX25hdGl2ZV9jb25kaXRpb25zKSB7CiAJCURXT1JECWVycjsKIAog CQl1dF9hKGV2ZW50KTsKIAotCQlpZiAodGltZV9pbl9tcyAhPSBPU19TWU5DX0lORklOSVRFX1RJ TUUpIHsKKwkJaWYgKHRpbWVfaW5fdXNlYyAhPSBPU19TWU5DX0lORklOSVRFX1RJTUUpIHsKKwkJ CXRpbWVfaW5fbXMgPSB0aW1lX2luX21zIC8gMTAwMDsKIAkJCWVyciA9IFdhaXRGb3JTaW5nbGVP YmplY3QoZXZlbnQtPmhhbmRsZSwgdGltZV9pbl9tcyk7CiAJCX0gZWxzZSB7CiAJCQllcnIgPSBX YWl0Rm9yU2luZ2xlT2JqZWN0KGV2ZW50LT5oYW5kbGUsIElORklOSVRFKTsKQEAgLTY2MSwzMCAr NjcyLDQ0IEBAIG9zX2V2ZW50X3dhaXRfdGltZV9sb3coCiAJCXJldHVybig0Mik7CiAJfSBlbHNl IHsKIAkJdXRfYShzbGVlcF9jb25kaXRpb25fdmFyaWFibGUgIT0gTlVMTCk7CisKKwkJaWYgKHRp bWVfaW5fdXNlYyAhPSBPU19TWU5DX0lORklOSVRFX1RJTUUpIHsKKwkJCXRpbWVfaW5fbXMgPSB0 aW1lX2luX3VzZWMgLyAxMDAwOworCQl9IGVsc2UgeworCQkJdGltZV9pbl9tcyA9IElORklOSVRF OworCQl9CiAJfQogI2Vsc2UKLQlzdHJ1Y3QgdGltZXZhbAl0djsKLQl1bGludAkJc2VjOwotCXVs aW50CQl1c2VjOwotCWludAkJcmV0OwogCXN0cnVjdCB0aW1lc3BlYwlhYnN0aW1lOwogCi0JcmV0 ID0gdXRfdXNlY3RpbWUoJnNlYywgJnVzZWMpOwotCXV0X2EocmV0ID09IDApOwotCi0JdHYudHZf c2VjID0gc2VjOwotCXR2LnR2X3VzZWMgPSB1c2VjOwotCi0JdHYudHZfdXNlYyArPSB0aW1lX2lu X3VzZWM7CisJaWYgKHRpbWVfaW5fdXNlYyAhPSBPU19TWU5DX0lORklOSVRFX1RJTUUpIHsKKwkJ c3RydWN0IHRpbWV2YWwJdHY7CisJCWludAkJcmV0OworCQl1bGludAkJc2VjOworCQl1bGludAkJ dXNlYzsKKworCQlyZXQgPSB1dF91c2VjdGltZSgmc2VjLCAmdXNlYyk7CisJCXV0X2EocmV0ID09 IDApOworCisJCXR2LnR2X3NlYyA9IHNlYzsKKwkJdHYudHZfdXNlYyA9IHVzZWM7CisKKwkJdHYu dHZfdXNlYyArPSB0aW1lX2luX3VzZWM7CisKKwkJaWYgKCh1bGludCkgdHYudHZfdXNlYyA+PSBN SUNST1NFQ1NfSU5fQV9TRUNPTkQpIHsKKwkJCXR2LnR2X3NlYyArPSB0aW1lX2luX3VzZWMgLyBN SUNST1NFQ1NfSU5fQV9TRUNPTkQ7CisJCQl0di50dl91c2VjICU9IE1JQ1JPU0VDU19JTl9BX1NF Q09ORDsKKwkJfQogCi0JaWYgKCh1bGludCkgdHYudHZfdXNlYyA+IE1JQ1JPU0VDU19JTl9BX1NF Q09ORCkgewotCQl0di50dl9zZWMgKz0gdGltZV9pbl91c2VjIC8gTUlDUk9TRUNTX0lOX0FfU0VD T05EOwotCQl0di50dl91c2VjICU9IE1JQ1JPU0VDU19JTl9BX1NFQ09ORDsKKwkJYWJzdGltZS50 dl9zZWMgID0gdHYudHZfc2VjOworCQlhYnN0aW1lLnR2X25zZWMgPSB0di50dl91c2VjICogMTAw MDsKKwl9IGVsc2UgeworCQlhYnN0aW1lLnR2X25zZWMgPSA5OTk5OTk5OTk7CisJCWFic3RpbWUu dHZfc2VjID0gKHRpbWVfdCkgVUxJTlRfTUFYOwogCX0KIAotCS8qIENvbnZlcnQgdG8gbmFubyBz ZWNvbmRzLiBXZSBpZ25vcmUgb3ZlcmZsb3cuICovCi0JYWJzdGltZS50dl9zZWMgID0gdHYudHZf c2VjOwotCWFic3RpbWUudHZfbnNlYyA9IHR2LnR2X3VzZWMgKiAxMDAwOworCXV0X2EoYWJzdGlt ZS50dl9uc2VjIDw9IDk5OTk5OTk5OSk7CisKICNlbmRpZiAvKiBfX1dJTl9fICovCiAKIAlvc19m YXN0X211dGV4X2xvY2soJmV2ZW50LT5vc19tdXRleCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Rv cmFnZS9pbm5vYmFzZS9yZW0vcmVtMHJlYy5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3JlbS9y ZW0wcmVjLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMz Zzd6eHIzdThuaTB1YworKysgYi9zdG9yYWdlL2lubm9iYXNlL3JlbS9yZW0wcmVjLmMJcmV2aWQ6 bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpA QCAtMTc0OSw5ICsxNzQ5LDkgQEAgVU5JVl9JTlRFUk4KIHZvaWQKIHJlY19wcmludCgKIC8qPT09 PT09Ki8KLQlGSUxFKgkJZmlsZSwJLyohPCBpbjogZmlsZSB3aGVyZSB0byBwcmludCAqLwotCWNv bnN0IHJlY190KglyZWMsCS8qITwgaW46IHBoeXNpY2FsIHJlY29yZCAqLwotCWRpY3RfaW5kZXhf dCoJaW5kZXgpCS8qITwgaW46IHJlY29yZCBkZXNjcmlwdG9yICovCisJRklMRSoJCQlmaWxlLAkv KiE8IGluOiBmaWxlIHdoZXJlIHRvIHByaW50ICovCisJY29uc3QgcmVjX3QqCQlyZWMsCS8qITwg aW46IHBoeXNpY2FsIHJlY29yZCAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwg aW46IHJlY29yZCBkZXNjcmlwdG9yICovCiB7CiAJdXRfYWQoaW5kZXgpOwogCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cvcm93MG15c3FsLmMnCi0tLSBhL3N0b3JhZ2Uv aW5ub2Jhc2Uvcm93L3JvdzBteXNxbC5jCXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTAxMDE5MDkzMDE0LW5zM2c3enhyM3U4bmkwdWMKKysrIGIvc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MG15c3FsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUt ZHM2MzlybWM3bWZ4eWJrYwpAQCAtNTAzLDcgKzUwMyw3IEBAIHJvd19teXNxbF9jb252ZXJ0X3Jv d190b19pbm5vYmFzZSgKIAkJCQkJcm93IGlzIHVzZWQsIGFzIHJvdyBtYXkgY29udGFpbgogCQkJ CQlwb2ludGVycyB0byB0aGlzIHJlY29yZCEgKi8KIHsKLQlteXNxbF9yb3dfdGVtcGxfdCoJdGVt cGw7CisJY29uc3QgbXlzcWxfcm93X3RlbXBsX3QqdGVtcGw7CiAJZGZpZWxkX3QqCQlkZmllbGQ7 CiAJdWxpbnQJCQlpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9pbm5vYmFzZS9yb3cv cm93MHNlbC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMzZzd6eHIzdThuaTB1YworKysg Yi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwc2VsLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNs ZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAtMjY3NiwyMSArMjY3Niwy MiBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAlyb3dfcHJlYnVpbHRfdCoJcHJlYnVpbHQs CS8qITwgaW46IHByZWJ1aWx0IHN0cnVjdCAqLwogCWNvbnN0IHJlY190KglyZWMsCQkvKiE8IGlu OiBJbm5vYmFzZSByZWNvcmQgaW4gdGhlIGluZGV4CiAJCQkJCXdoaWNoIHdhcyBkZXNjcmliZWQg aW4gcHJlYnVpbHQncwotCQkJCQl0ZW1wbGF0ZTsgbXVzdCBiZSBwcm90ZWN0ZWQgYnkKLQkJCQkJ YSBwYWdlIGxhdGNoICovCisJCQkJCXRlbXBsYXRlLCBvciBpbiB0aGUgY2x1c3RlcmVkIGluZGV4 OworCQkJCQltdXN0IGJlIHByb3RlY3RlZCBieSBhIHBhZ2UgbGF0Y2ggKi8KKwlpYm9vbAkJcmVj X2NsdXN0LAkvKiE8IGluOiBUUlVFIGlmIHJlYyBpcyBpbiB0aGUKKwkJCQkJY2x1c3RlcmVkIGlu ZGV4IGluc3RlYWQgb2YKKwkJCQkJcHJlYnVpbHQtPmluZGV4ICovCiAJY29uc3QgdWxpbnQqCW9m ZnNldHMpCS8qITwgaW46IGFycmF5IHJldHVybmVkIGJ5Ci0JCQkJCXJlY19nZXRfb2Zmc2V0cygp ICovCisJCQkJCXJlY19nZXRfb2Zmc2V0cyhyZWMpICovCiB7Ci0JbXlzcWxfcm93X3RlbXBsX3Qq CXRlbXBsOwotCW1lbV9oZWFwX3QqCQlleHRlcm5fZmllbGRfaGVhcAk9IE5VTEw7Ci0JbWVtX2hl YXBfdCoJCWhlYXA7Ci0JY29uc3QgYnl0ZSoJCWRhdGE7Ci0JdWxpbnQJCQlsZW47Ci0JdWxpbnQJ CQlpOworCW1lbV9oZWFwX3QqCWV4dGVybl9maWVsZF9oZWFwCT0gTlVMTDsKKwltZW1faGVhcF90 KgloZWFwOworCXVsaW50CQlpOwogCiAJdXRfYWQocHJlYnVpbHQtPm15c3FsX3RlbXBsYXRlKTsK IAl1dF9hZChwcmVidWlsdC0+ZGVmYXVsdF9yZWMpOwogCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRl KHJlYywgTlVMTCwgb2Zmc2V0cykpOworCXV0X2FkKCFyZWNfZ2V0X2RlbGV0ZWRfZmxhZyhyZWMs IHJlY19vZmZzX2NvbXAob2Zmc2V0cykpKTsKIAogCWlmIChVTklWX0xJS0VMWV9OVUxMKHByZWJ1 aWx0LT5ibG9iX2hlYXApKSB7CiAJCW1lbV9oZWFwX2ZyZWUocHJlYnVpbHQtPmJsb2JfaGVhcCk7 CkBAIC0yNjk5LDEwICsyNzAwLDE1IEBAIHJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKAogCiAJZm9y IChpID0gMDsgaSA8IHByZWJ1aWx0LT5uX3RlbXBsYXRlOyBpKyspIHsKIAotCQl0ZW1wbCA9IHBy ZWJ1aWx0LT5teXNxbF90ZW1wbGF0ZSArIGk7CisJCWNvbnN0IG15c3FsX3Jvd190ZW1wbF90KnRl bXBsID0gcHJlYnVpbHQtPm15c3FsX3RlbXBsYXRlICsgaTsKKwkJY29uc3QgYnl0ZSoJCWRhdGE7 CisJCXVsaW50CQkJbGVuOworCQl1bGludAkJCWZpZWxkX25vOworCisJCWZpZWxkX25vID0gcmVj X2NsdXN0CisJCQk/IHRlbXBsLT5jbHVzdF9yZWNfZmllbGRfbm8gOiB0ZW1wbC0+cmVjX2ZpZWxk X25vOwogCi0JCWlmIChVTklWX1VOTElLRUxZKHJlY19vZmZzX250aF9leHRlcm4ob2Zmc2V0cywK LQkJCQkJCSAgICAgIHRlbXBsLT5yZWNfZmllbGRfbm8pKSkgeworCQlpZiAoVU5JVl9VTkxJS0VM WShyZWNfb2Zmc19udGhfZXh0ZXJuKG9mZnNldHMsIGZpZWxkX25vKSkpIHsKIAogCQkJLyogQ29w eSBhbiBleHRlcm5hbGx5IHN0b3JlZCBmaWVsZCB0byB0aGUgdGVtcG9yYXJ5CiAJCQloZWFwICov CkBAIC0yNzMwLDcgKzI3MzYsNyBAQCByb3dfc2VsX3N0b3JlX215c3FsX3JlYygKIAkJCWRhdGEg PSBidHJfcmVjX2NvcHlfZXh0ZXJuYWxseV9zdG9yZWRfZmllbGQoCiAJCQkJcmVjLCBvZmZzZXRz LAogCQkJCWRpY3RfdGFibGVfemlwX3NpemUocHJlYnVpbHQtPnRhYmxlKSwKLQkJCQl0ZW1wbC0+ cmVjX2ZpZWxkX25vLCAmbGVuLCBoZWFwKTsKKwkJCQlmaWVsZF9ubywgJmxlbiwgaGVhcCk7CiAK IAkJCWlmIChVTklWX1VOTElLRUxZKCFkYXRhKSkgewogCQkJCS8qIFRoZSBleHRlcm5hbGx5IHN0 b3JlZCBmaWVsZApAQCAtMjc1MSw4ICsyNzU3LDcgQEAgcm93X3NlbF9zdG9yZV9teXNxbF9yZWMo CiAJCX0gZWxzZSB7CiAJCQkvKiBGaWVsZCBpcyBzdG9yZWQgaW4gdGhlIHJvdy4gKi8KIAotCQkJ ZGF0YSA9IHJlY19nZXRfbnRoX2ZpZWxkKHJlYywgb2Zmc2V0cywKLQkJCQkJCSB0ZW1wbC0+cmVj X2ZpZWxkX25vLCAmbGVuKTsKKwkJCWRhdGEgPSByZWNfZ2V0X250aF9maWVsZChyZWMsIG9mZnNl dHMsIGZpZWxkX25vLCAmbGVuKTsKIAogCQkJaWYgKFVOSVZfVU5MSUtFTFkodGVtcGwtPnR5cGUg PT0gREFUQV9CTE9CKQogCQkJICAgICYmIGxlbiAhPSBVTklWX1NRTF9OVUxMKSB7CkBAIC0zMTE0 LDcgKzMxMTksNyBAQCByb3dfc2VsX3BvcF9jYWNoZWRfcm93X2Zvcl9teXNxbCgKIAlyb3dfcHJl YnVpbHRfdCoJcHJlYnVpbHQpCS8qITwgaW46IHByZWJ1aWx0IHN0cnVjdCAqLwogewogCXVsaW50 CQkJaTsKLQlteXNxbF9yb3dfdGVtcGxfdCoJdGVtcGw7CisJY29uc3QgbXlzcWxfcm93X3RlbXBs X3QqdGVtcGw7CiAJYnl0ZSoJCQljYWNoZWRfcmVjOwogCXV0X2FkKHByZWJ1aWx0LT5uX2ZldGNo X2NhY2hlZCA+IDApOwogCXV0X2FkKHByZWJ1aWx0LT5teXNxbF9wcmVmaXhfbGVuIDw9IHByZWJ1 aWx0LT5teXNxbF9yb3dfbGVuKTsKQEAgLTMxNzEsMTUgKzMxNzYsMjEgQEAgaWJvb2wKIHJvd19z ZWxfcHVzaF9jYWNoZV9yb3dfZm9yX215c3FsKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PSovCiAJcm93X3ByZWJ1aWx0X3QqCXByZWJ1aWx0LAkvKiE8IGluOiBwcmVidWlsdCBzdHJ1 Y3QgKi8KLQljb25zdCByZWNfdCoJcmVjLAkJLyohPCBpbjogcmVjb3JkIHRvIHB1c2g7IG11c3QK LQkJCQkJYmUgcHJvdGVjdGVkIGJ5IGEgcGFnZSBsYXRjaCAqLwotCWNvbnN0IHVsaW50KglvZmZz ZXRzKQkvKiE8IGluOiByZWNfZ2V0X29mZnNldHMoKSAqLworCWNvbnN0IHJlY190KglyZWMsCQkv KiE8IGluOiByZWNvcmQgdG8gcHVzaCwgaW4gdGhlIGluZGV4CisJCQkJCXdoaWNoIHdhcyBkZXNj cmliZWQgaW4gcHJlYnVpbHQncworCQkJCQl0ZW1wbGF0ZSwgb3IgaW4gdGhlIGNsdXN0ZXJlZCBp bmRleDsKKwkJCQkJbXVzdCBiZSBwcm90ZWN0ZWQgYnkgYSBwYWdlIGxhdGNoICovCisJaWJvb2wJ CXJlY19jbHVzdCwJLyohPCBpbjogVFJVRSBpZiByZWMgaXMgaW4gdGhlCisJCQkJCWNsdXN0ZXJl ZCBpbmRleCBpbnN0ZWFkIG9mCisJCQkJCXByZWJ1aWx0LT5pbmRleCAqLworCWNvbnN0IHVsaW50 KglvZmZzZXRzKQkvKiE8IGluOiByZWNfZ2V0X29mZnNldHMocmVjKSAqLwogewogCWJ5dGUqCWJ1 ZjsKIAl1bGludAlpOwogCiAJdXRfYWQocHJlYnVpbHQtPm5fZmV0Y2hfY2FjaGVkIDwgTVlTUUxf RkVUQ0hfQ0FDSEVfU0laRSk7CiAJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVjLCBOVUxMLCBv ZmZzZXRzKSk7CisJdXRfYWQoIXJlY19nZXRfZGVsZXRlZF9mbGFnKHJlYywgcmVjX29mZnNfY29t cChvZmZzZXRzKSkpOwogCXV0X2EoIXByZWJ1aWx0LT50ZW1wbF9jb250YWluc19ibG9iKTsKIAog CWlmIChwcmVidWlsdC0+ZmV0Y2hfY2FjaGVbMF0gPT0gTlVMTCkgewpAQCAtMzIwOCw3ICszMjE5 LDcgQEAgcm93X3NlbF9wdXNoX2NhY2hlX3Jvd19mb3JfbXlzcWwoCiAJaWYgKFVOSVZfVU5MSUtF TFkoIXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKAogCQkJCSAgcHJlYnVpbHQtPmZldGNoX2NhY2hl WwogCQkJCQkgIHByZWJ1aWx0LT5uX2ZldGNoX2NhY2hlZF0sCi0JCQkJICBwcmVidWlsdCwgcmVj LCBvZmZzZXRzKSkpIHsKKwkJCQkgIHByZWJ1aWx0LCByZWMsIHJlY19jbHVzdCwgb2Zmc2V0cykp KSB7CiAJCXJldHVybihGQUxTRSk7CiAJfQogCkBAIC0zNjEyLDcgKzM2MjMsOCBAQCByb3dfc2Vh cmNoX2Zvcl9teXNxbCgKIAkJCQl1dF9hZCghcmVjX2dldF9kZWxldGVkX2ZsYWcocmVjLCBjb21w KSk7CiAKIAkJCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlzcWxfcmVjKGJ1ZiwgcHJlYnVpbHQsCi0J CQkJCQkJICAgICByZWMsIG9mZnNldHMpKSB7CisJCQkJCQkJICAgICByZWMsIEZBTFNFLAorCQkJ CQkJCSAgICAgb2Zmc2V0cykpIHsKIAkJCQkJLyogT25seSBmcmVzaCBpbnNlcnRzIG1heSBjb250 YWluCiAJCQkJCWluY29tcGxldGUgZXh0ZXJuYWxseSBzdG9yZWQKIAkJCQkJY29sdW1ucy4gUHJl dGVuZCB0aGF0IHN1Y2gKQEAgLTQyNDYsNyArNDI1OCw2IEBAIG5vX2dhcF9sb2NrOgogCQkJaXMg bmVjZXNzYXJ5LCBiZWNhdXNlIHdlIGNhbiBvbmx5IGdldCB0aGUgdW5kbwogCQkJaW5mb3JtYXRp b24gdmlhIHRoZSBjbHVzdGVyZWQgaW5kZXggcmVjb3JkLiAqLwogCi0JCQl1dF9hZChpbmRleCAh PSBjbHVzdF9pbmRleCk7CiAJCQl1dF9hZCghZGljdF9pbmRleF9pc19jbHVzdChpbmRleCkpOwog CiAJCQlpZiAoIWxvY2tfc2VjX3JlY19jb25zX3JlYWRfc2VlcygKQEAgLTQzNjIsMjYgKzQzNzMs MTAgQEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCQkJZ290byBuZXh0X3JlYzsKIAkJfQogCi0JCWlm IChwcmVidWlsdC0+bmVlZF90b19hY2Nlc3NfY2x1c3RlcmVkKSB7Ci0KLQkJCXJlc3VsdF9yZWMg PSBjbHVzdF9yZWM7Ci0KLQkJCXV0X2FkKHJlY19vZmZzX3ZhbGlkYXRlKHJlc3VsdF9yZWMsIGNs dXN0X2luZGV4LAotCQkJCQkJb2Zmc2V0cykpOwotCQl9IGVsc2UgewotCQkJLyogV2UgdXNlZCAn b2Zmc2V0cycgZm9yIHRoZSBjbHVzdCByZWMsIHJlY2FsY3VsYXRlCi0JCQl0aGVtIGZvciAncmVj JyAqLwotCQkJb2Zmc2V0cyA9IHJlY19nZXRfb2Zmc2V0cyhyZWMsIGluZGV4LCBvZmZzZXRzLAot CQkJCQkJICBVTElOVF9VTkRFRklORUQsICZoZWFwKTsKLQkJCXJlc3VsdF9yZWMgPSByZWM7Ci0J CX0KLQotCQkvKiByZXN1bHRfcmVjIGNhbiBsZWdpdGltYXRlbHkgYmUgZGVsZXRlLW1hcmtlZAot CQlub3cgdGhhdCBpdCBoYXMgYmVlbiBlc3RhYmxpc2hlZCB0aGF0IGl0IHBvaW50cyB0byBhCi0J CWNsdXN0ZXJlZCBpbmRleCByZWNvcmQgdGhhdCBleGlzdHMgaW4gdGhlIHJlYWQgdmlldy4gKi8K KwkJcmVzdWx0X3JlYyA9IGNsdXN0X3JlYzsKKwkJdXRfYWQocmVjX29mZnNfdmFsaWRhdGUocmVz dWx0X3JlYywgY2x1c3RfaW5kZXgsIG9mZnNldHMpKTsKIAl9IGVsc2UgewogCQlyZXN1bHRfcmVj ID0gcmVjOwotCQl1dF9hZCghcmVjX2dldF9kZWxldGVkX2ZsYWcocmVjLCBjb21wKSk7CiAJfQog CiAJLyogV2UgZm91bmQgYSBxdWFsaWZ5aW5nIHJlY29yZCAncmVzdWx0X3JlYycuIEF0IHRoaXMg cG9pbnQsCkBAIC00MzkwLDYgKzQzODUsNyBAQCByZXF1aXJlc19jbHVzdF9yZWM6CiAJdXRfYWQo cmVjX29mZnNfdmFsaWRhdGUocmVzdWx0X3JlYywKIAkJCQlyZXN1bHRfcmVjICE9IHJlYyA/IGNs dXN0X2luZGV4IDogaW5kZXgsCiAJCQkJb2Zmc2V0cykpOworCXV0X2FkKCFyZWNfZ2V0X2RlbGV0 ZWRfZmxhZyhyZXN1bHRfcmVjLCBjb21wKSk7CiAKIAkvKiBBdCB0aGlzIHBvaW50LCB0aGUgY2x1 c3RlcmVkIGluZGV4IHJlY29yZCBpcyBwcm90ZWN0ZWQKIAlieSBhIHBhZ2UgbGF0Y2ggdGhhdCB3 YXMgYWNxdWlyZWQgd2hlbiBwY3VyIHdhcyBwb3NpdGlvbmVkLgpAQCAtNDQxNCw2ICs0NDEwLDcg QEAgcmVxdWlyZXNfY2x1c3RfcmVjOgogCQljdXJzb3IuICovCiAKIAkJaWYgKCFyb3dfc2VsX3B1 c2hfY2FjaGVfcm93X2Zvcl9teXNxbChwcmVidWlsdCwgcmVzdWx0X3JlYywKKwkJCQkJCSAgICAg IHJlc3VsdF9yZWMgIT0gcmVjLAogCQkJCQkJICAgICAgb2Zmc2V0cykpIHsKIAkJCS8qIE9ubHkg ZnJlc2ggaW5zZXJ0cyBtYXkgY29udGFpbiBpbmNvbXBsZXRlCiAJCQlleHRlcm5hbGx5IHN0b3Jl ZCBjb2x1bW5zLiBQcmV0ZW5kIHRoYXQgc3VjaApAQCAtNDQzMSwxNSArNDQyOCwzMSBAQCByZXF1 aXJlc19jbHVzdF9yZWM6CiAKIAkJZ290byBuZXh0X3JlYzsKIAl9IGVsc2UgewotCQlpZiAocHJl YnVpbHQtPnRlbXBsYXRlX3R5cGUgPT0gUk9XX01ZU1FMX0RVTU1ZX1RFTVBMQVRFKSB7CisJCWlm IChVTklWX1VOTElLRUxZCisJCSAgICAocHJlYnVpbHQtPnRlbXBsYXRlX3R5cGUgPT0gUk9XX01Z U1FMX0RVTU1ZX1RFTVBMQVRFKSkgeworCQkJLyogQ0hFQ0sgVEFCTEU6IGZldGNoIHRoZSByb3cg Ki8KKworCQkJaWYgKHJlc3VsdF9yZWMgIT0gcmVjCisJCQkgICAgJiYgIXByZWJ1aWx0LT5uZWVk X3RvX2FjY2Vzc19jbHVzdGVyZWQpIHsKKwkJCQkvKiBXZSB1c2VkICdvZmZzZXRzJyBmb3IgdGhl IGNsdXN0CisJCQkJcmVjLCByZWNhbGN1bGF0ZSB0aGVtIGZvciAncmVjJyAqLworCQkJCW9mZnNl dHMgPSByZWNfZ2V0X29mZnNldHMocmVjLCBpbmRleCwgb2Zmc2V0cywKKwkJCQkJCQkgIFVMSU5U X1VOREVGSU5FRCwKKwkJCQkJCQkgICZoZWFwKTsKKwkJCQlyZXN1bHRfcmVjID0gcmVjOworCQkJ fQorCiAJCQltZW1jcHkoYnVmICsgNCwgcmVzdWx0X3JlYwogCQkJICAgICAgIC0gcmVjX29mZnNf ZXh0cmFfc2l6ZShvZmZzZXRzKSwKIAkJCSAgICAgICByZWNfb2Zmc19zaXplKG9mZnNldHMpKTsK IAkJCW1hY2hfd3JpdGVfdG9fNChidWYsCiAJCQkJCXJlY19vZmZzX2V4dHJhX3NpemUob2Zmc2V0 cykgKyA0KTsKIAkJfSBlbHNlIHsKLQkJCWlmICghcm93X3NlbF9zdG9yZV9teXNxbF9yZWMoYnVm LCBwcmVidWlsdCwKLQkJCQkJCSAgICAgcmVzdWx0X3JlYywgb2Zmc2V0cykpIHsKKwkJCS8qIFJl dHVybmluZyBhIHJvdyB0byBNeVNRTCAqLworCisJCQlpZiAoIXJvd19zZWxfc3RvcmVfbXlzcWxf cmVjKGJ1ZiwgcHJlYnVpbHQsIHJlc3VsdF9yZWMsCisJCQkJCQkgICAgIHJlc3VsdF9yZWMgIT0g cmVjLAorCQkJCQkJICAgICBvZmZzZXRzKSkgewogCQkJCS8qIE9ubHkgZnJlc2ggaW5zZXJ0cyBt YXkgY29udGFpbgogCQkJCWluY29tcGxldGUgZXh0ZXJuYWxseSBzdG9yZWQKIAkJCQljb2x1bW5z LiBQcmV0ZW5kIHRoYXQgc3VjaCByZWNvcmRzIGRvCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9pbm5vYmFzZS9yb3cvcm93MHVwZC5jJwotLS0gYS9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cw dXBkLmMJcmV2aWQ6bWFya28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkwOTMwMTQtbnMzZzd6 eHIzdThuaTB1YworKysgYi9zdG9yYWdlL2lubm9iYXNlL3Jvdy9yb3cwdXBkLmMJcmV2aWQ6bWFy a28ubWFrZWxhQG9yYWNsZS5jb20tMjAxMDEwMTkxMDAzMjUtZHM2MzlybWM3bWZ4eWJrYwpAQCAt NDY2LDggKzQ2NiwxMSBAQCByb3dfdXBkX2NoYW5nZXNfZmllbGRfc2l6ZV9vcl9leHRlcm5hbCgK ICNlbmRpZiAvKiAhVU5JVl9IT1RCQUNLVVAgKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgotUmVwbGFjZXMgdGhlIG5l dyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0byB0aGUgcmVjb3Jk Ci1naXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiAqLworUmVwbGFjZXMg dGhlIG5ldyBjb2x1bW4gdmFsdWVzIHN0b3JlZCBpbiB0aGUgdXBkYXRlIHZlY3RvciB0byB0aGUK K3JlY29yZCBnaXZlbi4gTm8gZmllbGQgc2l6ZSBjaGFuZ2VzIGFyZSBhbGxvd2VkLiBUaGlzIGZ1 bmN0aW9uIGlzCit1c3VhbGx5IGludm9rZWQgb24gYSBjbHVzdGVyZWQgaW5kZXguIFRoZSBvbmx5 IHVzZSBjYXNlIGZvciBhCitzZWNvbmRhcnkgaW5kZXggaXMgcm93X2luc19zZWNfaW5kZXhfZW50 cnlfYnlfbW9kaWZ5KCkgb3IgaXRzCitjb3VudGVycGFydCBpbiBpYnVmX2luc2VydF90b19pbmRl eF9wYWdlKCkuICovCiBVTklWX0lOVEVSTgogdm9pZAogcm93X3VwZF9yZWNfaW5fcGxhY2UoCgo= --===============1859321068== 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.6-innodb/ # testament_sha1: dbb3724199218537cda661c0961b1c0474b19f87 # timestamp: 2010-10-19 13:15:16 +0300 # source_branch: file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ # base_revision_id: marko.makela@stripped\ # ns3g7zxr3u8ni0uc # # Begin bundle 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 +AnzE//F3JFOFCQsQwclQA== --===============1859321068==--