From: Jorgen Loland Date: February 21 2011 3:31pm Subject: bzr push into mysql-trunk branch (jorgen.loland:3691 to 3692) Bug#11762751 Bug#11764529 List-Archive: http://lists.mysql.com/commits/131781 X-Bug: 11762751,11764529 Message-Id: <20110221153152.84E9B4AD@atum21.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM2OTIgSm9yZ2VuIExvbGFuZAkyMDExLTAyLTIxCiAgICAgIEJVRyMxMTc2Mjc1MTogVVBEQVRF IFNUQVRFTUVOVCBUSFJPV1MgQU4gRVJST1IsIEJVVCBTVElMTCAKICAgICAgICAgICAgICAgICAg ICBVUERBVEVTIFRIRSBUQUJMRSBFTlRSSUVTIChmb3JtZXJseSA1NTM4NSkKICAgICAgQlVHIzEx NzY0NTI5OiBNVUxUSSBVUERBVEUrSU5OT0RCIFJFUE9SVFMgRVJfS0VZX05PVF9GT1VORCAKICAg ICAgICAgICAgICAgICAgICBJRiBBIFRBQkxFIElTIFVQREFURUQgVFdJQ0UgKGZvcm1lcmx5IDU3 MzczKQogICAgICAgICAgICAKICAgICAgSWYgbXVsdGlwbGUtdGFibGUgdXBkYXRlIHVwZGF0ZXMg YSByb3cgdGhyb3VnaCB0d28gYWxpYXNlcyBhbmQKICAgICAgdGhlIGZpcnN0IHVwZGF0ZSBwaHlz aWNhbGx5IG1vdmVzIHRoZSByb3csIHRoZSBzZWNvbmQgdXBkYXRlIHdpbGwKICAgICAgZmFpbCB0 byBsb2NhdGUgdGhlIHJvdy4gVGhpcyByZXN1bHRzIGluIGRpZmZlcmVudCBlcnJvcnMKICAgICAg ZGVwZW5kaW5nIG9uIHN0b3JhZ2UgZW5naW5lOgogICAgICAgICogTXlJU0FNOiBHb3QgZXJyb3Ig MTM0IGZyb20gc3RvcmFnZSBlbmdpbmUKICAgICAgICAqIElubm9EQjogQ2FuJ3QgZmluZCByZWNv cmQgaW4gJ3RibCcKICAgICAgTm9uZSBvZiB0aGVzZSBlcnJvcnMgYWNjdXJhdGVseSBkZXNjcmli ZSB0aGUgcHJvYmxlbS4gCiAgICAgIAogICAgICBGdXJ0aGVybW9yZSwgc2luY2UgTXlJU0FNIGlz IG5vbi10cmFuc2FjdGlvbmFsLCB0aGUgdXBkYXRlCiAgICAgIGV4ZWN1dGVkIGZpcnN0IHdpbGwg YmUgcGVyZm9ybWVkIHdoaWxlIHRoZSBzZWNvbmQgd2lsbCBub3QuCiAgICAgIEluIGFkZGl0aW9u LCBmb3IgdHdvIGVxdWFsIG11bHRpcGxlLXRhYmxlIHVwZGF0ZSBzdGF0ZW1lbnRzLAogICAgICBv bmUgY291bGQgc3VjY2VlZCBhbmQgdGhlIG90aGVyIGZhaWwgYmFzZWQgb24gd2hldGhlciBvciBu b3QKICAgICAgdGhlIHJlY29yZCBhY3R1YWxseSBtb3ZlZCBvciBub3QuIFRoaXMgd2FzIGluY29u c2lzdGVudC4KICAgICAgCiAgICAgIFR3byB1cGRhdGUgb3BlcmF0aW9ucyBtYXkgcGh5c2ljYWxs eSBtb3ZlIGEgcm93OgogICAgICAgIDEpIFVwZGF0ZSBvZiBhIGNvbHVtbiBpbiBhIGNsdXN0ZXJl ZCBwcmltYXJ5IGtleQogICAgICAgIDIpIFVwZGF0ZSBvZiBhIGNvbHVtbiB1c2VkIHRvIGNhbGN1 bGF0ZSB3aGljaCBwYXJ0aXRpb24gdGhlIAogICAgICAgICAgIHJvdyBiZWxvbmdzIHRvCiAgICAg ICAgICAgIAogICAgICBCVUcjMTE3NjQ1MjkgaXMgYWJvdXQgY2FzZSAxKSBhYm92ZSwgQlVHIzEx NzYyNzUxIHdhcyBhYm91dCBjYXNlIDIpLgogICAgICAgICAgCiAgICAgIFRoZSBmaXggZm9yIHRo ZXNlIGJ1Z3MgaXMgdG8gcmV0dXJuIHdpdGggYW4gZXJyb3IgaWYgbXVsdGlwbGUtdGFibGUgCiAg ICAgIHVwZGF0ZSBpcyBhYm91dCB0bzoKICAgICAgICBhKSBVcGRhdGUgYSB0YWJsZSB0aHJvdWdo IG11bHRpcGxlIGFsaWFzZXMsIGFuZAogICAgICAgIGIpIFBlcmZvcm0gYW4gdXBkYXRlIHRoYXQg bWF5IHBoeXNpY2FsbHkgbW9yZSB0aGUgcm93IAogICAgICAgICAgIGluIGF0IGxlYXN0IG9uZSBv ZiB0aGVzZSBhbGlhc2VzCiAgICAgIAogICAgICBUaGlzIGF2b2lkcyAKICAgICAgICAqIHBhcnRp YWwgdXBkYXRlcyBhcyBkZXNjcmliZWQgZm9yIE15SVNBTSBhYm92ZSwKICAgICAgICAqIHByb3Zp ZGVzIHRoZSBzYW1lIGVycm9yIG1lc3NhZ2UgdGhhdCBkZXNjcmliZXMgdGhlIGFjdHVhbCBwcm9i bGVtCiAgICAgICAgICBmb3IgYWxsIFNFcwogICAgICAgICogaW5jb25zaXN0ZW50IGJlaGF2aW9y IHdoZXJlIGEgc3RhdGVtZW50IGZhaWxzIG9yIHN1Y2NlZWRzIGJhc2VkIG9uCiAgICAgICAgICBl LmcuIHRoZSBwYXJ0aXRpb25pbmcgYWxnb3JpdGhtIG9mIHRoZSB0YWJsZS4KICAgICBAIG15c3Fs LXRlc3Qvci9tdWx0aV91cGRhdGUucmVzdWx0CiAgICAgICAgQWRkIHRlc3QgZm9yIGJ1ZyM1NzM3 MwogICAgIEAgbXlzcWwtdGVzdC9yL211bHRpX3VwZGF0ZV9pbm5vZGIucmVzdWx0CiAgICAgICAg QWRkIHRlc3QgZm9yIGJ1ZyM1NzM3MwogICAgIEAgbXlzcWwtdGVzdC9yL3BhcnRpdGlvbi5yZXN1 bHQKICAgICAgICBBZGQgdGVzdCBmb3IgYnVnIzU1Mzg1CiAgICAgQCBteXNxbC10ZXN0L3QvbXVs dGlfdXBkYXRlLnRlc3QKICAgICAgICBBZGQgdGVzdCBmb3IgQlVHIzU3MzczCiAgICAgQCBteXNx bC10ZXN0L3QvbXVsdGlfdXBkYXRlX2lubm9kYi50ZXN0CiAgICAgICAgQWRkIHRlc3QgZm9yIEJV RyM1NzM3MwogICAgIEAgbXlzcWwtdGVzdC90L3BhcnRpdGlvbi50ZXN0CiAgICAgICAgQWRkIHRl c3QgZm9yIGJ1ZyM1NTM4NQogICAgIEAgc3FsL2hhbmRsZXIuY2MKICAgICAgICBUcmFuc2xhdGUg aGFuZGxlciBlcnJvciBIQV9FUlJfUkVDT1JEX0RFTEVURUQgdG8gc2VydmVyIGVycm9yCiAgICAg QCBzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CiAgICAgICAgTmV3IGVycm9yIG1lc3NhZ2UgZm9y IG11bHRpLXRhYmxlIHVwZGF0ZSB3aGVyZSB0aGUgc2FtZSB0YWJsZSBpcyB1cGRhdGVkIG11bHRp cGxlIHRpbWVzLgogICAgIEAgc3FsL3NxbF91cGRhdGUuY2MKICAgICAgICBBZGQgZnVuY3Rpb24g dW5zYWZlX2tleV91cGRhdGUoKQoKICAgIGFkZGVkOgogICAgICBteXNxbC10ZXN0L3IvbXVsdGlf dXBkYXRlX2lubm9kYi5yZXN1bHQKICAgICAgbXlzcWwtdGVzdC90L211bHRpX3VwZGF0ZV9pbm5v ZGIudGVzdAogICAgbW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvci9tdWx0aV91cGRhdGUucmVz dWx0CiAgICAgIG15c3FsLXRlc3Qvci9wYXJ0aXRpb24ucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qv dC9tdWx0aV91cGRhdGUudGVzdAogICAgICBteXNxbC10ZXN0L3QvcGFydGl0aW9uLnRlc3QKICAg ICAgc3FsL2hhbmRsZXIuY2MKICAgICAgc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAogICAgICBz cWwvc3FsX3VwZGF0ZS5jYwogMzY5MSBNYWdudXMgQmzDpXVkZAkyMDExLTAyLTIxIFttZXJnZV0K ICAgICAgTWVyZ2UgZW1wdHkgbWVyZ2UgY2hhbmdlc2V0IGludG8gdHJ1bmsKCj09PSBtb2RpZmll ZCBmaWxlICdteXNxbC10ZXN0L3IvbXVsdGlfdXBkYXRlLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVz dC9yL211bHRpX3VwZGF0ZS5yZXN1bHQJMjAxMC0xMi0xNCAxMToxNToxMyArMDAwMAorKysgYi9t eXNxbC10ZXN0L3IvbXVsdGlfdXBkYXRlLnJlc3VsdAkyMDExLTAyLTIxIDE1OjMxOjQxICswMDAw CkBAIC02ODAsNCArNjgwLDIxIEBAIFdhcm5pbmdzOgogV2FybmluZwkxMjkyCVRydW5jYXRlZCBp bmNvcnJlY3QgZGF0ZXRpbWUgdmFsdWU6ICcxJwogRFJPUCBGVU5DVElPTiBmMTsKIERST1AgVEFC TEUgdDE7CisjCisjIEJVRyM1NzM3MzogTXVsdGkgdXBkYXRlK0lubm9EQiByZXBvcnRzIEVSX0tF WV9OT1RfRk9VTkQgaWYgYQorIyAgICAgICAgICAgIHRhYmxlIGlzIHVwZGF0ZWQgdHdpY2UKKyMK K0NSRUFURSBUQUJMRSB0MSgKK3BrIElOVCwKK2EgSU5ULAorUFJJTUFSWSBLRVkgKHBrKQorKSBF TkdJTkU9TXlJU0FNOworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgwLDApOworVVBEQVRFIHQxIEFT IEEsIHQxIEFTIEIgU0VUIEEucGsgPSAxLCBCLmEgPSAyOworCisjIFNob3VsZCBiZSAoMSwyKQor U0VMRUNUICogRlJPTSB0MTsKK3BrCWEKKzEJMgorRFJPUCBUQUJMRSB0MTsKIGVuZCBvZiB0ZXN0 cwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvci9tdWx0aV91cGRhdGVfaW5ub2RiLnJlc3Vs dCcKLS0tIGEvbXlzcWwtdGVzdC9yL211bHRpX3VwZGF0ZV9pbm5vZGIucmVzdWx0CTE5NzAtMDEt MDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL211bHRpX3VwZGF0ZV9pbm5vZGIu cmVzdWx0CTIwMTEtMDItMjEgMTU6MzE6NDEgKzAwMDAKQEAgLTAsMCArMSwyOSBAQAorIworIyBC VUcjNTczNzM6IE11bHRpIHVwZGF0ZStJbm5vREIgcmVwb3J0cyBFUl9LRVlfTk9UX0ZPVU5EIGlm IGEKKyMgICAgICAgICAgICB0YWJsZSBpcyB1cGRhdGVkIHR3aWNlCisjCitDUkVBVEUgVEFCTEUg dDEoCitwayBJTlQsCithIElOVCwKK2IgSU5ULAorUFJJTUFSWSBLRVkgKHBrKQorKSBFTkdJTkU9 SW5ub0RCOworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgwLDAsMCk7CitVUERBVEUgdDEgQVMgQSwg dDEgQVMgQiBTRVQgQS5wayA9IDEsIEIuYSA9IDI7CitFUlJPUiBIWTAwMDogUHJpbWFyeSBrZXkv cGFydGl0aW9uIGtleSB1cGRhdGUgaXMgbm90IGFsbG93ZWQgc2luY2UgdGhlIHRhYmxlIGlzIHVw ZGF0ZWQgYm90aCBhcyAnQScgYW5kICdCJy4KK1NFTEVDVCAqIEZST00gdDE7CitwawlhCWIKKzAJ MAkwCitDUkVBVEUgVklFVyB2MSBBUyBTRUxFQ1QgKiBGUk9NIHQxOworVVBEQVRFIHYxIEFTIEEs IHQxIEFTIEIgU0VUIEEucGsgPSAxLCBCLmEgPSAyOworRVJST1IgSFkwMDA6IFByaW1hcnkga2V5 L3BhcnRpdGlvbiBrZXkgdXBkYXRlIGlzIG5vdCBhbGxvd2VkIHNpbmNlIHRoZSB0YWJsZSBpcyB1 cGRhdGVkIGJvdGggYXMgJ0EnIGFuZCAnQicuCitTRUxFQ1QgKiBGUk9NIHQxOworcGsJYQliCisw CTAJMAorVVBEQVRFIHQxIEFTIEEsIHQxIEFTIEIgU0VUIEEuYSA9IDEsIEIuYiA9IDI7CisjIFNo b3VsZCBiZSAoMCwxLDIpCitTRUxFQ1QgKiBGUk9NIHQxOworcGsJYQliCiswCTEJMgorRFJPUCBW SUVXIHYxOworRFJPUCBUQUJMRSB0MTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Iv cGFydGl0aW9uLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3BhcnRpdGlvbi5yZXN1bHQJMjAx MS0wMS0xMCAxNjozNzo0NyArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvcGFydGl0aW9uLnJlc3Vs dAkyMDExLTAyLTIxIDE1OjMxOjQxICswMDAwCkBAIC0yMjYzLDMgKzIyNjMsNTEgQEAgSU5TRVJU IElOVE8gdDEgVkFMVUVTKDApOwogRFJPUCBUQUJMRSB0MTsKIFNFVCBHTE9CQUwgbXlpc2FtX3Vz ZV9tbWFwPWRlZmF1bHQ7CiBFbmQgb2YgNS4xIHRlc3RzCisjCisjIEJVRyM1NTM4NTogVVBEQVRF IHN0YXRlbWVudCB0aHJvd3MgYW4gZXJyb3IsIGJ1dCBzdGlsbCB1cGRhdGVzCisjICAgICAgICAg ICAgdGhlIHRhYmxlIGVudHJpZXMKK0NSRUFURSBUQUJMRSB0MV9wYXJ0ICgKK3BhcnRrZXkgaW50 LAorbm9rZXkgaW50CispIFBBUlRJVElPTiBCWSBMSU5FQVIgSEFTSChwYXJ0a2V5KSBQQVJUSVRJ T05TIDM7CitJTlNFUlQgSU5UTyB0MV9wYXJ0IFZBTFVFUyAoMSwgMSkgLCAoMTAsIDEwKTsKK0NS RUFURSBWSUVXIHYxIEFTIFNFTEVDVCAqIEZST00gdDFfcGFydDsKKworIyBTaG91bGQgYmUgKDEs MSksKDEwLDEwKQorU0VMRUNUICogRlJPTSB0MV9wYXJ0OworcGFydGtleQlub2tleQorMQkxCisx MAkxMAorCisjIENhc2UgMQorIyBVcGRhdGUgaXMgcmVmdXNlZCBiZWNhdXNlIHBhcnRpdGlvbmlu ZyBrZXkgaXMgdXBkYXRlZAorVVBEQVRFIHQxX3BhcnQgQVMgQSBOQVRVUkFMIEpPSU4gdDFfcGFy dCBCIFNFVCBBLnBhcnRrZXkgPSAyLCBCLm5va2V5ID0gMzsKK0VSUk9SIEhZMDAwOiBQcmltYXJ5 IGtleS9wYXJ0aXRpb24ga2V5IHVwZGF0ZSBpcyBub3QgYWxsb3dlZCBzaW5jZSB0aGUgdGFibGUg aXMgdXBkYXRlZCBib3RoIGFzICdBJyBhbmQgJ0InLgorVVBEQVRFIHQxX3BhcnQgQVMgQSBOQVRV UkFMIEpPSU4gdDFfcGFydCBCIFNFVCBBLm5va2V5ID0gMiwgQi5wYXJ0a2V5ID0gMzsKK0VSUk9S IEhZMDAwOiBQcmltYXJ5IGtleS9wYXJ0aXRpb24ga2V5IHVwZGF0ZSBpcyBub3QgYWxsb3dlZCBz aW5jZSB0aGUgdGFibGUgaXMgdXBkYXRlZCBib3RoIGFzICdBJyBhbmQgJ0InLgorCisjIENhc2Ug MgorIyBMaWtlIDEsIGJ1dCBwYXJ0aXRpb24gYWNjZXNzZWQgdGhyb3VnaCBhIHZpZXcKK1VQREFU RSB0MV9wYXJ0IEFTIEEgTkFUVVJBTCBKT0lOIHYxIGFzIEIgU0VUIEEubm9rZXkgPSAyICwgQi5w YXJ0a2V5ID0gMzsKK0VSUk9SIEhZMDAwOiBQcmltYXJ5IGtleS9wYXJ0aXRpb24ga2V5IHVwZGF0 ZSBpcyBub3QgYWxsb3dlZCBzaW5jZSB0aGUgdGFibGUgaXMgdXBkYXRlZCBib3RoIGFzICdBJyBh bmQgJ0InLgorVVBEQVRFIHYxIEFTIEEgTkFUVVJBTCBKT0lOIHQxX3BhcnQgYXMgQiBTRVQgQS5u b2tleSA9IDIgLCBCLnBhcnRrZXkgPSAzOworRVJST1IgSFkwMDA6IFByaW1hcnkga2V5L3BhcnRp dGlvbiBrZXkgdXBkYXRlIGlzIG5vdCBhbGxvd2VkIHNpbmNlIHRoZSB0YWJsZSBpcyB1cGRhdGVk IGJvdGggYXMgJ0EnIGFuZCAnQicuCisKKyMgU2hvdWxkIGJlICgxLDEpLCgxMCwxMCkKK1NFTEVD VCAqIEZST00gdDFfcGFydDsKK3BhcnRrZXkJbm9rZXkKKzEJMQorMTAJMTAKKworIyBDYXNlIDMK KyMgVXBkYXRlIGlzIGFjY2VwdGVkIGJlY2F1c2UgcGFydGl0aW9uaW5nIGtleSBpcyBub3QgdXBk YXRlZAorVVBEQVRFIHQxX3BhcnQgQVMgQSBOQVRVUkFMIEpPSU4gdDFfcGFydCBCIFNFVCBBLm5v a2V5ID0gMiAsIEIubm9rZXkgPSAzOworCisjIFNob3VsZCBiZSAoMSwzKSwoMTAsMykKK1NFTEVD VCAqIEZST00gdDFfcGFydDsKK3BhcnRrZXkJbm9rZXkKKzEJMworMTAJMworCitEUk9QIFZJRVcg djE7CitEUk9QIFRBQkxFIHQxX3BhcnQ7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90 L211bHRpX3VwZGF0ZS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvbXVsdGlfdXBkYXRlLnRlc3QJ MjAxMC0xMi0xNCAxMToxNToxMyArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvbXVsdGlfdXBkYXRl LnRlc3QJMjAxMS0wMi0yMSAxNTozMTo0MSArMDAwMApAQCAtNjgzLDQgKzY4MywyNCBAQCBVUERB VEUgKFNFTEVDVCAxIEZST00gdDEgV0hFUkUgZjEgPSAoU0VMCiBEUk9QIEZVTkNUSU9OIGYxOwog RFJPUCBUQUJMRSB0MTsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJVRyM1NzM3MzogTXVsdGkgdXBk YXRlK0lubm9EQiByZXBvcnRzIEVSX0tFWV9OT1RfRk9VTkQgaWYgYQorLS1lY2hvICMgICAgICAg ICAgICB0YWJsZSBpcyB1cGRhdGVkIHR3aWNlCistLWVjaG8gIworCisjIFJlc3VsdHMgZGlmZmVy IGJldHdlZW4gc3RvcmFnZSBlbmdpbmVzLgorIyBTZWUgbXVsdGlfdXBkYXRlX2lubm9kYi50ZXN0 IGZvciB0aGUgSW5ub0RCIHZhcmlhbnQgb2YgdGhpcyB0ZXN0CitDUkVBVEUgVEFCTEUgdDEoCisg IHBrIElOVCwKKyAgYSBJTlQsCisgIFBSSU1BUlkgS0VZIChwaykKKykgRU5HSU5FPU15SVNBTTsK KworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgwLDApOworVVBEQVRFIHQxIEFTIEEsIHQxIEFTIEIg U0VUIEEucGsgPSAxLCBCLmEgPSAyOworLS1lY2hvCistLWVjaG8gIyBTaG91bGQgYmUgKDEsMikK K1NFTEVDVCAqIEZST00gdDE7CitEUk9QIFRBQkxFIHQxOworCiAtLWVjaG8gZW5kIG9mIHRlc3Rz Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC90L211bHRpX3VwZGF0ZV9pbm5vZGIudGVzdCcK LS0tIGEvbXlzcWwtdGVzdC90L211bHRpX3VwZGF0ZV9pbm5vZGIudGVzdAkxOTcwLTAxLTAxIDAw OjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9tdWx0aV91cGRhdGVfaW5ub2RiLnRlc3QJ MjAxMS0wMi0yMSAxNTozMTo0MSArMDAwMApAQCAtMCwwICsxLDMzIEBACistLXNvdXJjZSBpbmNs dWRlL2hhdmVfaW5ub2RiLmluYworCistLWVjaG8gIworLS1lY2hvICMgQlVHIzU3MzczOiBNdWx0 aSB1cGRhdGUrSW5ub0RCIHJlcG9ydHMgRVJfS0VZX05PVF9GT1VORCBpZiBhCistLWVjaG8gIyAg ICAgICAgICAgIHRhYmxlIGlzIHVwZGF0ZWQgdHdpY2UKKy0tZWNobyAjCisKKyMgUmVzdWx0cyBk aWZmZXIgYmV0d2VlbiBzdG9yYWdlIGVuZ2luZXMuCisjIFNlZSBtdWx0aV91cGRhdGUudGVzdCBm b3IgdGhlIE15SVNBTSB2YXJpYW50IG9mIHRoaXMgdGVzdAorQ1JFQVRFIFRBQkxFIHQxKAorICBw ayBJTlQsCisgIGEgSU5ULAorICBiIElOVCwKKyAgUFJJTUFSWSBLRVkgKHBrKQorKSBFTkdJTkU9 SW5ub0RCOworCitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDAsMCwwKTsKKy0tZXJyb3IgRVJfTVVM VElfVVBEQVRFX0tFWV9DT05GTElDVAorVVBEQVRFIHQxIEFTIEEsIHQxIEFTIEIgU0VUIEEucGsg PSAxLCBCLmEgPSAyOworU0VMRUNUICogRlJPTSB0MTsKKworQ1JFQVRFIFZJRVcgdjEgQVMgU0VM RUNUICogRlJPTSB0MTsKKy0tZXJyb3IgRVJfTVVMVElfVVBEQVRFX0tFWV9DT05GTElDVAorVVBE QVRFIHYxIEFTIEEsIHQxIEFTIEIgU0VUIEEucGsgPSAxLCBCLmEgPSAyOworU0VMRUNUICogRlJP TSB0MTsKKworVVBEQVRFIHQxIEFTIEEsIHQxIEFTIEIgU0VUIEEuYSA9IDEsIEIuYiA9IDI7Cist LWVjaG8gIyBTaG91bGQgYmUgKDAsMSwyKQorU0VMRUNUICogRlJPTSB0MTsKKworRFJPUCBWSUVX IHYxOworRFJPUCBUQUJMRSB0MTsKKwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvdC9w YXJ0aXRpb24udGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3BhcnRpdGlvbi50ZXN0CTIwMTEtMDEt MTAgMTY6Mzc6NDcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3BhcnRpdGlvbi50ZXN0CTIwMTEt MDItMjEgMTU6MzE6NDEgKzAwMDAKQEAgLTIyNjYsMyArMjI2Niw1MyBAQCBEUk9QIFRBQkxFIHQx OwogU0VUIEdMT0JBTCBteWlzYW1fdXNlX21tYXA9ZGVmYXVsdDsKIAogLS1lY2hvIEVuZCBvZiA1 LjEgdGVzdHMKKworLS1lY2hvICMKKy0tZWNobyAjIEJVRyM1NTM4NTogVVBEQVRFIHN0YXRlbWVu dCB0aHJvd3MgYW4gZXJyb3IsIGJ1dCBzdGlsbCB1cGRhdGVzCistLWVjaG8gIyAgICAgICAgICAg IHRoZSB0YWJsZSBlbnRyaWVzCisKK0NSRUFURSBUQUJMRSB0MV9wYXJ0ICgKKyAgcGFydGtleSBp bnQsCisgIG5va2V5IGludAorKSBQQVJUSVRJT04gQlkgTElORUFSIEhBU0gocGFydGtleSkgUEFS VElUSU9OUyAzOworCitJTlNFUlQgSU5UTyB0MV9wYXJ0IFZBTFVFUyAoMSwgMSkgLCAoMTAsIDEw KTsKK0NSRUFURSBWSUVXIHYxIEFTIFNFTEVDVCAqIEZST00gdDFfcGFydDsKKworLS1lY2hvCist LWVjaG8gIyBTaG91bGQgYmUgKDEsMSksKDEwLDEwKQorU0VMRUNUICogRlJPTSB0MV9wYXJ0Owor CistLWVjaG8KKy0tZWNobyAjIENhc2UgMQorLS1lY2hvICMgVXBkYXRlIGlzIHJlZnVzZWQgYmVj YXVzZSBwYXJ0aXRpb25pbmcga2V5IGlzIHVwZGF0ZWQKKy0tZXJyb3IgRVJfTVVMVElfVVBEQVRF X0tFWV9DT05GTElDVAorVVBEQVRFIHQxX3BhcnQgQVMgQSBOQVRVUkFMIEpPSU4gdDFfcGFydCBC IFNFVCBBLnBhcnRrZXkgPSAyLCBCLm5va2V5ID0gMzsKKy0tZXJyb3IgRVJfTVVMVElfVVBEQVRF X0tFWV9DT05GTElDVAorVVBEQVRFIHQxX3BhcnQgQVMgQSBOQVRVUkFMIEpPSU4gdDFfcGFydCBC IFNFVCBBLm5va2V5ID0gMiwgQi5wYXJ0a2V5ID0gMzsKKworLS1lY2hvCistLWVjaG8gIyBDYXNl IDIKKy0tZWNobyAjIExpa2UgMSwgYnV0IHBhcnRpdGlvbiBhY2Nlc3NlZCB0aHJvdWdoIGEgdmll dworLS1lcnJvciBFUl9NVUxUSV9VUERBVEVfS0VZX0NPTkZMSUNUCitVUERBVEUgdDFfcGFydCBB UyBBIE5BVFVSQUwgSk9JTiB2MSBhcyBCIFNFVCBBLm5va2V5ID0gMiAsIEIucGFydGtleSA9IDM7 CistLWVycm9yIEVSX01VTFRJX1VQREFURV9LRVlfQ09ORkxJQ1QKK1VQREFURSB2MSBBUyBBIE5B VFVSQUwgSk9JTiB0MV9wYXJ0IGFzIEIgU0VUIEEubm9rZXkgPSAyICwgQi5wYXJ0a2V5ID0gMzsK KworLS1lY2hvCistLWVjaG8gIyBTaG91bGQgYmUgKDEsMSksKDEwLDEwKQorU0VMRUNUICogRlJP TSB0MV9wYXJ0OworCistLWVjaG8KKy0tZWNobyAjIENhc2UgMworLS1lY2hvICMgVXBkYXRlIGlz IGFjY2VwdGVkIGJlY2F1c2UgcGFydGl0aW9uaW5nIGtleSBpcyBub3QgdXBkYXRlZAorVVBEQVRF IHQxX3BhcnQgQVMgQSBOQVRVUkFMIEpPSU4gdDFfcGFydCBCIFNFVCBBLm5va2V5ID0gMiAsIEIu bm9rZXkgPSAzOworCistLWVjaG8KKy0tZWNobyAjIFNob3VsZCBiZSAoMSwzKSwoMTAsMykKK1NF TEVDVCAqIEZST00gdDFfcGFydDsKKworLS1lY2hvCisjIENsZWFudXAKK0RST1AgVklFVyB2MTsK K0RST1AgVEFCTEUgdDFfcGFydDsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaGFuZGxlci5jYycK LS0tIGEvc3FsL2hhbmRsZXIuY2MJMjAxMS0wMi0xNCAxMDo0MDo0MiArMDAwMAorKysgYi9zcWwv aGFuZGxlci5jYwkyMDExLTAyLTIxIDE1OjMxOjQxICswMDAwCkBAIC0yOTEwLDYgKzI5MTAsNyBA QCB2b2lkIGhhbmRsZXI6OnByaW50X2Vycm9yKGludCBlcnJvciwgbXlmCiAgICAgYnJlYWs7CiAg IGNhc2UgSEFfRVJSX0tFWV9OT1RfRk9VTkQ6CiAgIGNhc2UgSEFfRVJSX05PX0FDVElWRV9SRUNP UkQ6CisgIGNhc2UgSEFfRVJSX1JFQ09SRF9ERUxFVEVEOgogICBjYXNlIEhBX0VSUl9FTkRfT0Zf RklMRToKICAgICB0ZXh0bm89RVJfS0VZX05PVF9GT1VORDsKICAgICBicmVhazsKCj09PSBtb2Rp ZmllZCBmaWxlICdzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0JwotLS0gYS9zcWwvc2hhcmUvZXJy bXNnLXV0ZjgudHh0CTIwMTEtMDItMjEgMTE6MzQ6MTQgKzAwMDAKKysrIGIvc3FsL3NoYXJlL2Vy cm1zZy11dGY4LnR4dAkyMDExLTAyLTIxIDE1OjMxOjQxICswMDAwCkBAIC02NDgzLDMgKzY0ODMs NiBAQCBFUl9OT19TVUNIX1BBUlRJVElPTiAKICAgc2xvICJQYXJ0aXRpb24gJyUtLjY0cycgZG9l c24ndCBleGlzdCIKICAgc3BhICJQYXJ0aWNpb24gJyUtLjY0cycgbm8gZXhpc3RlIgogICBzd2Ug IkRldCBmaW5ucyBpbmdlbiBwYXJ0aXRpb24gc29tIGhldGVyICclLS42NHMnIgorCitFUl9NVUxU SV9VUERBVEVfS0VZX0NPTkZMSUNUCisgIGVuZyAiUHJpbWFyeSBrZXkvcGFydGl0aW9uIGtleSB1 cGRhdGUgaXMgbm90IGFsbG93ZWQgc2luY2UgdGhlIHRhYmxlIGlzIHVwZGF0ZWQgYm90aCBhcyAn JS0uMTkycycgYW5kICclLS4xOTJzJy4iCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF91cGRh dGUuY2MnCi0tLSBhL3NxbC9zcWxfdXBkYXRlLmNjCTIwMTAtMTItMjkgMDA6Mzg6NTkgKzAwMDAK KysrIGIvc3FsL3NxbF91cGRhdGUuY2MJMjAxMS0wMi0yMSAxNTozMTo0MSArMDAwMApAQCAtOTk5 LDYgKzk5OSw5OCBAQCBzdGF0aWMgdGFibGVfbWFwIGdldF90YWJsZV9tYXAoTGlzdDxJdGVtCiAg IHJldHVybiBtYXA7CiB9CiAKKy8qKgorICBJZiBvbmUgcm93IGlzIHVwZGF0ZWQgdGhyb3VnaCB0 d28gZGlmZmVyZW50IGFsaWFzZXMgYW5kIHRoZSBmaXJzdAorICB1cGRhdGUgcGh5c2ljYWxseSBt b3ZlcyB0aGUgcm93LCB0aGUgc2Vjb25kIHVwZGF0ZSB3aWxsIGVycm9yCisgIGJlY2F1c2UgdGhl IHJvdyBpcyBubyBsb25nZXIgbG9jYXRlZCB3aGVyZSBleHBlY3RlZC4gVGhpcyBmdW5jdGlvbgor ICBjaGVja3MgaWYgdGhlIG11bHRpcGxlLXRhYmxlIHVwZGF0ZSBpcyBhYm91dCB0byBkbyB0aGF0 IGFuZCBpZiBzbworICByZXR1cm5zIHdpdGggYW4gZXJyb3IuCisKKyAgVGhlIGZvbGxvd2luZyB1 cGRhdGUgb3BlcmF0aW9ucyBwaHlzaWNhbGx5IG1vdmVzIHJvd3M6CisgICAgMSkgVXBkYXRlIG9m IGEgY29sdW1uIGluIGEgY2x1c3RlcmVkIHByaW1hcnkga2V5CisgICAgMikgVXBkYXRlIG9mIGEg Y29sdW1uIHVzZWQgdG8gY2FsY3VsYXRlIHdoaWNoIHBhcnRpdGlvbiB0aGUgcm93IGJlbG9uZ3Mg dG8KKworICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgd2l0aCBhbiBlcnJvciBpZiBib3RoIG9mIHRo ZSBmb2xsb3dpbmcgYXJlCisgIHRydWU6CisKKyAgICBhKSBBIHRhYmxlIGluIHRoZSBtdWx0aXBs ZS10YWJsZSB1cGRhdGUgc3RhdGVtZW50IGlzIHVwZGF0ZWQKKyAgICAgICB0aHJvdWdoIG11bHRp cGxlIGFsaWFzZXMgKGluY2x1ZGluZyB2aWV3cykKKyAgICBiKSBBdCBsZWFzdCBvbmUgb2YgdGhl IHVwZGF0ZXMgb24gdGhlIHRhYmxlIGZyb20gYSkgbWF5IHBoeXNpY2FsbHkKKyAgICAgICBtb3Zl cyB0aGUgcm93LiBOb3RlOiBVcGRhdGluZyBhIGNvbHVtbiB1c2VkIHRvIGNhbGN1bGF0ZSB3aGlj aAorICAgICAgIHBhcnRpdGlvbiBhIHJvdyBiZWxvbmdzIHRvIGRvZXMgbm90IG5lY2Vzc2FyaWx5 IG1lYW4gdGhhdCB0aGUKKyAgICAgICByb3cgaXMgbW92ZWQuIFRoZSBuZXcgdmFsdWUgbWF5IG9y IG1heSBub3QgYmVsb25nIHRvIHRoZSBzYW1lCisgICAgICAgcGFydGl0aW9uLgorCisgIEBwYXJh bSBsZWF2ZXMgICAgICAgICAgICAgICBGaXJzdCBsZWFmIHRhYmxlCisgIEBwYXJhbSB0YWJsZXNf Zm9yX3VwZGF0ZSAgICBNYXAgb2YgdGFibGVzIHRoYXQgYXJlIHVwZGF0ZWQKKworICBAcmV0dXJu CisgICAgdHJ1ZSAgIGlmIHRoZSB1cGRhdGUgaXMgdW5zYWZlLCBpbiB3aGljaCBjYXNlIGFuIGVy cm9yIG1lc3NhZ2UgaXMgYWxzbyBzZXQsCisgICAgZmFsc2UgIG90aGVyd2lzZS4KKyovCitzdGF0 aWMKK2Jvb2wgdW5zYWZlX2tleV91cGRhdGUoVEFCTEVfTElTVCAqbGVhdmVzLCB0YWJsZV9tYXAg dGFibGVzX2Zvcl91cGRhdGUpCit7CisgIFRBQkxFX0xJU1QgKnRsPSBsZWF2ZXM7CisKKyAgZm9y ICh0bD0gbGVhdmVzOyB0bCA7IHRsPSB0bC0+bmV4dF9sZWFmKQorICB7CisgICAgaWYgKHRsLT50 YWJsZS0+bWFwICYgdGFibGVzX2Zvcl91cGRhdGUpCisgICAgeworICAgICAgVEFCTEUgKnRhYmxl MT0gdGwtPnRhYmxlOworICAgICAgYm9vbCBwcmlta2V5X2NsdXN0ZXJlZD0gKHRhYmxlMS0+Zmls ZS0+cHJpbWFyeV9rZXlfaXNfY2x1c3RlcmVkKCkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0YWJsZTEtPnMtPnByaW1hcnlfa2V5ICE9IE1BWF9LRVkpOworCisgICAgICBib29s IHRhYmxlX3BhcnRpdGlvbmVkPSBmYWxzZTsKKyNpZmRlZiBXSVRIX1BBUlRJVElPTl9TVE9SQUdF X0VOR0lORQorICAgICAgdGFibGVfcGFydGl0aW9uZWQ9ICh0YWJsZTEtPnBhcnRfaW5mbyAhPSBO VUxMKTsKKyNlbmRpZgorCisgICAgICBpZiAoIXRhYmxlX3BhcnRpdGlvbmVkICYmICFwcmlta2V5 X2NsdXN0ZXJlZCkKKyAgICAgICAgY29udGludWU7CisKKyAgICAgIGZvciAoVEFCTEVfTElTVCog dGwyPSB0bC0+bmV4dF9sZWFmOyB0bDIgOyB0bDI9IHRsMi0+bmV4dF9sZWFmKQorICAgICAgewor ICAgICAgICAvKgorICAgICAgICAgIExvb2sgYXQgIm5leHQiIHRhYmxlcyBvbmx5IHNpbmNlIGFs bCBwcmV2aW91cyB0YWJsZXMgaGF2ZQorICAgICAgICAgIGFscmVhZHkgYmVlbiBjaGVja2VkCisg ICAgICAgICovCisgICAgICAgIFRBQkxFICp0YWJsZTI9IHRsMi0+dGFibGU7CisgICAgICAgIGlm ICh0YWJsZTItPm1hcCAmIHRhYmxlc19mb3JfdXBkYXRlICYmIHRhYmxlMS0+cyA9PSB0YWJsZTIt PnMpCisgICAgICAgIHsKKyAgICAgICAgICAvLyBBIHRhYmxlIGlzIHVwZGF0ZWQgdGhyb3VnaCB0 d28gYWxpYXNlcworICAgICAgICAgIGlmICh0YWJsZV9wYXJ0aXRpb25lZCAmJgorICAgICAgICAg ICAgICAocGFydGl0aW9uX2tleV9tb2RpZmllZCh0YWJsZTEsIHRhYmxlMS0+d3JpdGVfc2V0KSB8 fAorICAgICAgICAgICAgICAgcGFydGl0aW9uX2tleV9tb2RpZmllZCh0YWJsZTIsIHRhYmxlMi0+ d3JpdGVfc2V0KSkpCisgICAgICAgICAgeworICAgICAgICAgICAgLy8gUGFydGl0aW9uZWQga2V5 IGlzIHVwZGF0ZWQKKyAgICAgICAgICAgIG15X2Vycm9yKEVSX01VTFRJX1VQREFURV9LRVlfQ09O RkxJQ1QsIE1ZRigwKSwKKyAgICAgICAgICAgICAgICAgICAgIHRsLT5iZWxvbmdfdG9fdmlldyA/ IHRsLT5iZWxvbmdfdG9fdmlldy0+YWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IHRsLT5hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgIHRsMi0+YmVsb25n X3RvX3ZpZXcgPyB0bDItPmJlbG9uZ190b192aWV3LT5hbGlhcworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6IHRsMi0+YWxpYXMpOworICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKHByaW1rZXlfY2x1c3RlcmVkICYm CisgICAgICAgICAgICAgIChiaXRtYXBfaXNfc2V0KHRhYmxlMS0+d3JpdGVfc2V0LCB0YWJsZTEt PnMtPnByaW1hcnlfa2V5KSB8fAorICAgICAgICAgICAgICAgYml0bWFwX2lzX3NldCh0YWJsZTIt PndyaXRlX3NldCwgdGFibGUyLT5zLT5wcmltYXJ5X2tleSkpKQorICAgICAgICAgIHsKKyAgICAg ICAgICAgIC8vIENsdXN0ZXJlZCBwcmltYXJ5IGtleSBpcyB1cGRhdGVkCisgICAgICAgICAgICBt eV9lcnJvcihFUl9NVUxUSV9VUERBVEVfS0VZX0NPTkZMSUNULCBNWUYoMCksCisgICAgICAgICAg ICAgICAgICAgICB0bC0+YmVsb25nX3RvX3ZpZXcgPyB0bC0+YmVsb25nX3RvX3ZpZXctPmFsaWFz CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0bC0+YWxpYXMsCisg ICAgICAgICAgICAgICAgICAgICB0bDItPmJlbG9uZ190b192aWV3ID8gdGwyLT5iZWxvbmdfdG9f dmlldy0+YWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0 bDItPmFsaWFzKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAg ICAgfQorICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisKIAogLyoKICAg bWFrZSB1cGRhdGUgc3BlY2lmaWMgcHJlcGFyYXRpb24gYW5kIGNoZWNrcyBhZnRlciBvcGVuaW5n IHRhYmxlcwpAQCAtMTA3OCwxMCArMTE3MCwxNCBAQCBpbnQgbXlzcWxfbXVsdGlfdXBkYXRlX3By ZXBhcmUoVEhEICp0aGQpCiAKICAgdGhkLT50YWJsZV9tYXBfZm9yX3VwZGF0ZT0gdGFibGVzX2Zv cl91cGRhdGU9IGdldF90YWJsZV9tYXAoZmllbGRzKTsKIAorICBsZWF2ZXM9IGxleC0+c2VsZWN0 X2xleC5sZWFmX3RhYmxlczsKKworICBpZiAodW5zYWZlX2tleV91cGRhdGUobGVhdmVzLCB0YWJs ZXNfZm9yX3VwZGF0ZSkpCisgICAgREJVR19SRVRVUk4odHJ1ZSk7CisKICAgLyoKICAgICBTZXR1 cCB0aW1lc3RhbXAgaGFuZGxpbmcgYW5kIGxvY2tpbmcgbW9kZQogICAqLwotICBsZWF2ZXM9IGxl eC0+c2VsZWN0X2xleC5sZWFmX3RhYmxlczsKICAgZm9yICh0bD0gbGVhdmVzOyB0bDsgdGw9IHRs LT5uZXh0X2xlYWYpCiAgIHsKICAgICBUQUJMRSAqdGFibGU9IHRsLT50YWJsZTsKCk5vIGJ1bmRs ZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku