From: marko.makela Date: March 29 2012 12:30pm Subject: bzr push into mysql-trunk branch (marko.makela:3876 to 3878) List-Archive: http://lists.mysql.com/commits/143359 Message-Id: <201203291230.q2TCUV5c028625@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM4NzggTWFya28gTcOka2Vsw6QJMjAxMi0wMy0yOQogICAgICBGaXggYXR0cmlidXRlcyBvbiBm dW5jdGlvbiBwcm90b3R5cGVzLgoKICAgIG1vZGlmaWVkOgogICAgICBzdG9yYWdlL2lubm9iYXNl L2luY2x1ZGUvZGljdDBkaWN0LmgKIDM4NzcgTWFya28gTcOka2Vsw6QJMjAxMi0wMy0yOQogICAg ICBSZS1lbmFibGUgaW5ub2RiLWluZGV4LW9ubGluZS50ZXN0IG9uIFZhbGdyaW5kLgogICAgICBU aGlzIHNob3VsZCBoYXZlIGJlZW4gZG9uZSB3aGVuIGZpeGluZyBCdWcjMTM4NzUyNDEuCgogICAg bW9kaWZpZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLWluZGV4LW9u bGluZS50ZXN0CiAzODc2IEFuZHJlaSBFbGtpbgkyMDEyLTAzLTI5CiAgICAgIG9taXR0ZWQgb3B0 IGZpbGUgdG8gYSB0ZXN0IGZvciBidWcxMjk5NTE3NCBpcyBhZGRlZC4KCiAgICBhZGRlZDoKICAg ICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfcGFyYWxsZWxfY2hhbmdlX21hc3Rlci1zbGF2 ZS5vcHQKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2Ri LWluZGV4LW9ubGluZS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2lubm9kYi90L2lubm9k Yi1pbmRleC1vbmxpbmUudGVzdAlyZXZpZDphbmRyZWkuZWxraW5Ab3JhY2xlLmNvbS0yMDEyMDMy OTExNDgwMi1mZmk1amVrNDJnMzdzZWc3CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3Qv aW5ub2RiLWluZGV4LW9ubGluZS50ZXN0CXJldmlkOm1hcmtvLm1ha2VsYUBvcmFjbGUuY29tLTIw MTIwMzI5MTIyOTI3LTB1dGNneGduaDFjMjR6M20KQEAgLTEsNyArMSw1IEBACiAtLXNvdXJjZSBp bmNsdWRlL2hhdmVfaW5ub2RiLmluYwogLS1zb3VyY2UgaW5jbHVkZS9oYXZlX2RlYnVnX3N5bmMu aW5jCi0jIFRlbXBvcmFyaWx5IHByb2hpYml0IFZhbGdyaW5kIHJ1bnMgdW50aWwgQnVnIzEzODc1 MjQxIGlzIHJlc29sdmVkCi0tLXNvdXJjZSBpbmNsdWRlL25vdF92YWxncmluZC5pbmMKIAogY2Fs bCBtdHIuYWRkX3N1cHByZXNzaW9uKCJJbm5vREI6IFdhcm5pbmc6IFNtYWxsIGJ1ZmZlciBwb29s IHNpemUiKTsKICMgVGhlc2Ugd2lsbCBiZSB0cmlnZ2VyZWQgYnkgSU5TRVJUIElOVE8gdDEgVkFM VUVTKDYsMywxKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2lubm9iYXNlL2luY2x1ZGUv ZGljdDBkaWN0LmgnCi0tLSBhL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaAly ZXZpZDphbmRyZWkuZWxraW5Ab3JhY2xlLmNvbS0yMDEyMDMyOTExNDgwMi1mZmk1amVrNDJnMzdz ZWc3CisrKyBiL3N0b3JhZ2UvaW5ub2Jhc2UvaW5jbHVkZS9kaWN0MGRpY3QuaAlyZXZpZDptYXJr by5tYWtlbGFAb3JhY2xlLmNvbS0yMDEyMDMyOTEyMjkyNy0wdXRjZ3hnbmgxYzI0ejNtCkBAIC01 MSw3ICs1MSw4IEBAIFVOSVZfSU5URVJOCiB2b2lkCiBkaWN0X2Nhc2Vkbl9zdHIoCiAvKj09PT09 PT09PT09PSovCi0JY2hhcioJYSk7CS8qITwgaW4vb3V0OiBzdHJpbmcgdG8gcHV0IGluIGxvd2Vy IGNhc2UgKi8KKwljaGFyKglhKQkvKiE8IGluL291dDogc3RyaW5nIHRvIHB1dCBpbiBsb3dlciBj YXNlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0 IHRoZSBkYXRhYmFzZSBuYW1lIGxlbmd0aCBpbiBhIHRhYmxlIG5hbWUuCiBAcmV0dXJuCWRhdGFi YXNlIG5hbWUgbGVuZ3RoICovCkBAIC01OSwxNyArNjAsMTkgQEAgVU5JVl9JTlRFUk4KIHVsaW50 CiBkaWN0X2dldF9kYl9uYW1lX2xlbigKIC8qPT09PT09PT09PT09PT09PT0qLwotCWNvbnN0IGNo YXIqCW5hbWUpOwkvKiE8IGluOiB0YWJsZSBuYW1lIGluIHRoZSBmb3JtCisJY29uc3QgY2hhcioJ bmFtZSkJLyohPCBpbjogdGFibGUgbmFtZSBpbiB0aGUgZm9ybQogCQkJCWRibmFtZSAnLycgdGFi bGVuYW1lICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7 CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovLyoqCiBSZXR1cm4gdGhlIGVuZCBvZiB0YWJsZSBuYW1lIHdoZXJlIHdl IGhhdmUgcmVtb3ZlZCBkYm5hbWUgYW5kICcvJy4KIEByZXR1cm4JdGFibGUgbmFtZSAqLwotCitV TklWX0lOVEVSTgogY29uc3QgY2hhcioKIGRpY3RfcmVtb3ZlX2RiX25hbWUoCiAvKj09PT09PT09 PT09PT09PT0qLwotCWNvbnN0IGNoYXIqCW5hbWUpOwkvKiE8IGluOiB0YWJsZSBuYW1lIGluIHRo ZSBmb3JtCisJY29uc3QgY2hhcioJbmFtZSkJLyohPCBpbjogdGFibGUgbmFtZSBpbiB0aGUgZm9y bQogCQkJCWRibmFtZSAnLycgdGFibGVuYW1lICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwg d2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgYSB0YWJs ZSBvYmplY3QgYmFzZWQgb24gdGFibGUgaWQuCiBAcmV0dXJuCXRhYmxlLCBOVUxMIGlmIGRvZXMg bm90IGV4aXN0ICovCkBAIC0xMTgsNyArMTIxLDggQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBkaWN0 X2NvbF9nZXRfbWJtaW5sZW4oCiAvKj09PT09PT09PT09PT09PT09PSovCi0JY29uc3QgZGljdF9j b2xfdCoJY29sKTsJLyohPCBpbjogY29sdW1uICovCisJY29uc3QgZGljdF9jb2xfdCoJY29sKQkv KiE8IGluOiBjb2x1bW4gKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9y ZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBi eXRlcyBwZXIgY2hhcmFjdGVyLgogQHJldHVybiBtYXhpbXVtIG11bHRpLWJ5dGUgY2hhciBzaXpl LCBpbiBieXRlcyAqLwpAQCAtMTI2LDcgKzEzMCw4IEBAIFVOSVZfSU5MSU5FCiB1bGludAogZGlj dF9jb2xfZ2V0X21ibWF4bGVuKAogLyo9PT09PT09PT09PT09PT09PT0qLwotCWNvbnN0IGRpY3Rf Y29sX3QqCWNvbCk7CS8qITwgaW46IGNvbHVtbiAqLworCWNvbnN0IGRpY3RfY29sX3QqCWNvbCkJ LyohPCBpbjogY29sdW1uICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRf cmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogU2V0cyB0aGUgbWluaW11bSBhbmQgbWF4aW11 bSBudW1iZXIgb2YgYnl0ZXMgcGVyIGNoYXJhY3Rlci4gKi8KIFVOSVZfSU5MSU5FCkBAIC0xMzYs OCArMTQxLDkgQEAgZGljdF9jb2xfc2V0X21ibWlubWF4bGVuKAogCWRpY3RfY29sX3QqCWNvbCwJ CS8qITwgaW4vb3V0OiBjb2x1bW4gKi8KIAl1bGludAkJbWJtaW5sZW4sCS8qITwgaW46IG1pbmlt dW0gbXVsdGktYnl0ZQogCQkJCQljaGFyYWN0ZXIgc2l6ZSwgaW4gYnl0ZXMgKi8KLQl1bGludAkJ bWJtYXhsZW4pOwkvKiE8IGluOiBtaW5pbXVtIG11bHRpLWJ5dGUKKwl1bGludAkJbWJtYXhsZW4p CS8qITwgaW46IG1pbmltdW0gbXVsdGktYnl0ZQogCQkJCQljaGFyYWN0ZXIgc2l6ZSwgaW4gYnl0 ZXMgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0 cyB0aGUgY29sdW1uIGRhdGEgdHlwZS4gKi8KIFVOSVZfSU5MSU5FCkBAIC0xNDUsNyArMTUxLDgg QEAgdm9pZAogZGljdF9jb2xfY29weV90eXBlKAogLyo9PT09PT09PT09PT09PT0qLwogCWNvbnN0 IGRpY3RfY29sX3QqCWNvbCwJLyohPCBpbjogY29sdW1uICovCi0JZHR5cGVfdCoJCXR5cGUpOwkv KiE8IG91dDogZGF0YSB0eXBlICovCisJZHR5cGVfdCoJCXR5cGUpCS8qITwgb3V0OiBkYXRhIHR5 cGUgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIERl dGVybWluZSBieXRlcyBvZiBjb2x1bW4gcHJlZml4IHRvIGJlIHN0b3JlZCBpbiB0aGUgdW5kbyBs b2cuIFBsZWFzZQogbm90ZSBpZiB0aGUgdGFibGUgZm9ybWF0IGlzIFVOSVZfRk9STUFUX0EgKDwg VU5JVl9GT1JNQVRfQiksIG5vIHByZWZpeApAQCAtMTU2LDkgKzE2Myw5IEBAIHVsaW50CiBkaWN0 X21heF9maWVsZF9sZW5fc3RvcmVfdW5kbygKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT0q LwogCWRpY3RfdGFibGVfdCoJCXRhYmxlLAkvKiE8IGluOiB0YWJsZSAqLwotCWNvbnN0IGRpY3Rf Y29sX3QqCWNvbCk7CS8qITwgaW46IGNvbHVtbiB3aGljaCBpbmRleCBwcmVmaXgKKwljb25zdCBk aWN0X2NvbF90Kgljb2wpCS8qITwgaW46IGNvbHVtbiB3aGljaCBpbmRleCBwcmVmaXgKIAkJCQkJ aXMgYmFzZWQgb24gKi8KLQorCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jl c3VsdCkpOwogI2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogI2lmZGVmIFVOSVZfREVCVUcK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovLyoqCkBAIC0xNjksNyArMTc2LDggQEAgaWJvb2wKIGRpY3RfY29sX3R5 cGVfYXNzZXJ0X2VxdWFsKAogLyo9PT09PT09PT09PT09PT09PT09PT09PSovCiAJY29uc3QgZGlj dF9jb2xfdCoJY29sLAkvKiE8IGluOiBjb2x1bW4gKi8KLQljb25zdCBkdHlwZV90KgkJdHlwZSk7 CS8qITwgaW46IGRhdGEgdHlwZSAqLworCWNvbnN0IGR0eXBlX3QqCQl0eXBlKQkvKiE8IGluOiBk YXRhIHR5cGUgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQp KTsKICNlbmRpZiAvKiBVTklWX0RFQlVHICovCiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCkBAIC0xNzksNyArMTg3LDggQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBk aWN0X2NvbF9nZXRfbWluX3NpemUoCiAvKj09PT09PT09PT09PT09PT09PSovCi0JY29uc3QgZGlj dF9jb2xfdCoJY29sKTsJLyohPCBpbjogY29sdW1uICovCisJY29uc3QgZGljdF9jb2xfdCoJY29s KQkvKiE8IGluOiBjb2x1bW4gKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNl ZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgdGhlIG1heGltdW0gc2l6 ZSBvZiB0aGUgY29sdW1uLgogQHJldHVybgltYXhpbXVtIHNpemUgKi8KQEAgLTE4Nyw3ICsxOTYs OCBAQCBVTklWX0lOTElORQogdWxpbnQKIGRpY3RfY29sX2dldF9tYXhfc2l6ZSgKIC8qPT09PT09 PT09PT09PT09PT09Ki8KLQljb25zdCBkaWN0X2NvbF90Kgljb2wpOwkvKiE8IGluOiBjb2x1bW4g Ki8KKwljb25zdCBkaWN0X2NvbF90Kgljb2wpCS8qITwgaW46IGNvbHVtbiAqLworCV9fYXR0cmli dXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogUmV0dXJucyB0aGUgc2l6ZSBvZiBhIGZpeGVkIHNpemUgY29sdW1uLCAwIGlmIG5vdCBhIGZp eGVkIHNpemUgY29sdW1uLgogQHJldHVybglmaXhlZCBzaXplLCBvciAwICovCkBAIC0xOTYsNyAr MjA2LDggQEAgdWxpbnQKIGRpY3RfY29sX2dldF9maXhlZF9zaXplKAogLyo9PT09PT09PT09PT09 PT09PT09PSovCiAJY29uc3QgZGljdF9jb2xfdCoJY29sLAkvKiE8IGluOiBjb2x1bW4gKi8KLQl1 bGludAkJCWNvbXApOwkvKiE8IGluOiBub256ZXJvPVJPV19GT1JNQVQ9Q09NUEFDVCAgKi8KKwl1 bGludAkJCWNvbXApCS8qITwgaW46IG5vbnplcm89Uk9XX0ZPUk1BVD1DT01QQUNUICAqLworCV9f YXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLy8qKgogUmV0dXJucyB0aGUgUk9XX0ZPUk1BVD1SRURVTkRBTlQgc3RvcmVkIFNRTCBOVUxM IHNpemUgb2YgYSBjb2x1bW4uCiBGb3IgZml4ZWQgbGVuZ3RoIHR5cGVzIGl0IGlzIHRoZSBmaXhl ZCBsZW5ndGggb2YgdGhlIHR5cGUsIG90aGVyd2lzZSAwLgpAQCAtMjA2LDggKzIxNyw4IEBAIHVs aW50CiBkaWN0X2NvbF9nZXRfc3FsX251bGxfc2l6ZSgKIC8qPT09PT09PT09PT09PT09PT09PT09 PT0qLwogCWNvbnN0IGRpY3RfY29sX3QqCWNvbCwJLyohPCBpbjogY29sdW1uICovCi0JdWxpbnQJ CQljb21wKTsJLyohPCBpbjogbm9uemVybz1ST1dfRk9STUFUPUNPTVBBQ1QgICovCi0KKwl1bGlu dAkJCWNvbXApCS8qITwgaW46IG5vbnplcm89Uk9XX0ZPUk1BVD1DT01QQUNUICAqLworCV9fYXR0 cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIEdldHMgdGhlIGNvbHVtbiBudW1iZXIuCiBAcmV0dXJuCWNvbC0+aW5kLCB0YWJsZSBjb2x1 bW4gcG9zaXRpb24gKHN0YXJ0aW5nIGZyb20gMCkgKi8KQEAgLTIxNSw3ICsyMjYsOCBAQCBVTklW X0lOTElORQogdWxpbnQKIGRpY3RfY29sX2dldF9ubygKIC8qPT09PT09PT09PT09Ki8KLQljb25z dCBkaWN0X2NvbF90Kgljb2wpOwkvKiE8IGluOiBjb2x1bW4gKi8KKwljb25zdCBkaWN0X2NvbF90 Kgljb2wpCS8qITwgaW46IGNvbHVtbiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5f dW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIGNvbHVtbiBwb3Np dGlvbiBpbiB0aGUgY2x1c3RlcmVkIGluZGV4LiAqLwogVU5JVl9JTkxJTkUKQEAgLTIyMyw3ICsy MzUsOCBAQCB1bGludAogZGljdF9jb2xfZ2V0X2NsdXN0X3BvcygKIC8qPT09PT09PT09PT09PT09 PT09PSovCiAJY29uc3QgZGljdF9jb2xfdCoJY29sLAkJLyohPCBpbjogdGFibGUgY29sdW1uICov Ci0JY29uc3QgZGljdF9pbmRleF90KgljbHVzdF9pbmRleCk7CS8qITwgaW46IGNsdXN0ZXJlZCBp bmRleCAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJY2x1c3RfaW5kZXgpCS8qITwgaW46IGNsdXN0 ZXJlZCBpbmRleCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3Vs dCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovLyoqCiBJZiB0aGUgZ2l2ZW4gY29sdW1uIG5hbWUgaXMgcmVzZXJ2ZWQg Zm9yIElubm9EQiBzeXN0ZW0gY29sdW1ucywgcmV0dXJuCiBUUlVFLgpAQCAtMjMyLDE0ICsyNDUs MTYgQEAgVU5JVl9JTlRFUk4KIGlib29sCiBkaWN0X2NvbF9uYW1lX2lzX3Jlc2VydmVkKAogLyo9 PT09PT09PT09PT09PT09PT09PT09Ki8KLQljb25zdCBjaGFyKgluYW1lKTsJLyohPCBpbjogY29s dW1uIG5hbWUgKi8KKwljb25zdCBjaGFyKgluYW1lKQkvKiE8IGluOiBjb2x1bW4gbmFtZSAqLwor CV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLy8qKgogQWNxdWlyZSB0aGUgYXV0b2luYyBsb2NrLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQK IGRpY3RfdGFibGVfYXV0b2luY19sb2NrKAogLyo9PT09PT09PT09PT09PT09PT09PSovCi0JZGlj dF90YWJsZV90Kgl0YWJsZSk7CS8qITwgaW4vb3V0OiB0YWJsZSAqLworCWRpY3RfdGFibGVfdCoJ dGFibGUpCS8qITwgaW4vb3V0OiB0YWJsZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKIFVuY29uZGl0aW9uYWxseSBzZXQgdGhlIGF1dG9pbmMgY291bnRl ci4gKi8KIFVOSVZfSU5URVJOCkBAIC0yNDcsNyArMjYyLDggQEAgdm9pZAogZGljdF90YWJsZV9h dXRvaW5jX2luaXRpYWxpemUoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAlkaWN0 X3RhYmxlX3QqCXRhYmxlLAkvKiE8IGluL291dDogdGFibGUgKi8KLQlpYl91aW50NjRfdAl2YWx1 ZSk7CS8qITwgaW46IG5leHQgdmFsdWUgdG8gYXNzaWduIHRvIGEgcm93ICovCisJaWJfdWludDY0 X3QJdmFsdWUpCS8qITwgaW46IG5leHQgdmFsdWUgdG8gYXNzaWduIHRvIGEgcm93ICovCisJX19h dHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmVhZHMgdGhlIG5leHQg YXV0b2luYyB2YWx1ZSAoPT0gYXV0b2luYyBjb3VudGVyIHZhbHVlKSwgMCBpZiBub3QgeWV0CiBp bml0aWFsaXplZC4KQEAgLTI1Niw3ICsyNzIsOCBAQCBVTklWX0lOVEVSTgogaWJfdWludDY0X3QK IGRpY3RfdGFibGVfYXV0b2luY19yZWFkKAogLyo9PT09PT09PT09PT09PT09PT09PSovCi0JY29u c3QgZGljdF90YWJsZV90Kgl0YWJsZSk7CS8qITwgaW46IHRhYmxlICovCisJY29uc3QgZGljdF90 YWJsZV90Kgl0YWJsZSkJLyohPCBpbjogdGFibGUgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxs LCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFVwZGF0ZXMgdGhlIGF1 dG9pbmMgY291bnRlciBpZiB0aGUgdmFsdWUgc3VwcGxpZWQgaXMgZ3JlYXRlciB0aGFuIHRoZQog Y3VycmVudCB2YWx1ZS4gKi8KQEAgLTI2NiwxNCArMjgzLDE2IEBAIGRpY3RfdGFibGVfYXV0b2lu Y191cGRhdGVfaWZfZ3JlYXRlcigKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ki8KIAogCWRpY3RfdGFibGVfdCoJdGFibGUsCS8qITwgaW4vb3V0OiB0YWJsZSAqLwotCWliX3Vp bnQ2NF90CXZhbHVlKTsJLyohPCBpbjogdmFsdWUgd2hpY2ggd2FzIGFzc2lnbmVkIHRvIGEgcm93 ICovCisJaWJfdWludDY0X3QJdmFsdWUpCS8qITwgaW46IHZhbHVlIHdoaWNoIHdhcyBhc3NpZ25l ZCB0byBhIHJvdyAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIFJlbGVhc2UgdGhlIGF1dG9pbmMgbG9jay4gKi8KIFVOSVZfSU5URVJOCiB2b2lkCiBkaWN0 X3RhYmxlX2F1dG9pbmNfdW5sb2NrKAogLyo9PT09PT09PT09PT09PT09PT09PT09Ki8KLQlkaWN0 X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbi9vdXQ6IHRhYmxlICovCisJZGljdF90YWJsZV90Kgl0 YWJsZSkJLyohPCBpbi9vdXQ6IHRhYmxlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwog I2VuZGlmIC8qICFVTklWX0hPVEJBQ0tVUCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBBZGRzIHN5 c3RlbSBjb2x1bW5zIHRvIGEgdGFibGUgb2JqZWN0LiAqLwpAQCAtMjgyLDcgKzMwMSw4IEBAIHZv aWQKIGRpY3RfdGFibGVfYWRkX3N5c3RlbV9jb2x1bW5zKAogLyo9PT09PT09PT09PT09PT09PT09 PT09PT09PSovCiAJZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBpbi9vdXQ6IHRhYmxlICovCi0J bWVtX2hlYXBfdCoJaGVhcCk7CS8qITwgaW46IHRlbXBvcmFyeSBoZWFwICovCisJbWVtX2hlYXBf dCoJaGVhcCkJLyohPCBpbjogdGVtcG9yYXJ5IGhlYXAgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25u dWxsKSk7CiAjaWZuZGVmIFVOSVZfSE9UQkFDS1VQCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEFkZHMg YSB0YWJsZSBvYmplY3QgdG8gdGhlIGRpY3Rpb25hcnkgY2FjaGUuICovCkBAIC0yOTIsMTQgKzMx MiwxNiBAQCBkaWN0X3RhYmxlX2FkZF90b19jYWNoZSgKIC8qPT09PT09PT09PT09PT09PT09PT0q LwogCWRpY3RfdGFibGVfdCoJdGFibGUsCQkvKiE8IGluOiB0YWJsZSAqLwogCWlib29sCQljYW5f YmVfZXZpY3RlZCwJLyohPCBpbjogVFJVRSBpZiBjYW4gYmUgZXZpY3RlZCovCi0JbWVtX2hlYXBf dCoJaGVhcCk7CQkvKiE8IGluOiB0ZW1wb3JhcnkgaGVhcCAqLworCW1lbV9oZWFwX3QqCWhlYXAp CQkvKiE8IGluOiB0ZW1wb3JhcnkgaGVhcCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogUmVtb3ZlcyBhIHRhYmxlIG9iamVjdCBmcm9tIHRoZSBkaWN0 aW9uYXJ5IGNhY2hlLiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKIGRpY3RfdGFibGVfcmVtb3ZlX2Zy b21fY2FjaGUoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT0qLwotCWRpY3RfdGFibGVfdCoJ dGFibGUpOwkvKiE8IGluLCBvd246IHRhYmxlICovCisJZGljdF90YWJsZV90Kgl0YWJsZSkJLyoh PCBpbiwgb3duOiB0YWJsZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogUmVuYW1lcyBhIHRhYmxlIG9iamVjdC4KIEByZXR1cm4JVFJVRSBpZiBzdWNj ZXNzICovCkBAIC0zMDksOSArMzMxLDExIEBAIGRpY3RfdGFibGVfcmVuYW1lX2luX2NhY2hlKAog Lyo9PT09PT09PT09PT09PT09PT09PT09PSovCiAJZGljdF90YWJsZV90Kgl0YWJsZSwJCS8qITwg aW4vb3V0OiB0YWJsZSAqLwogCWNvbnN0IGNoYXIqCW5ld19uYW1lLAkvKiE8IGluOiBuZXcgbmFt ZSAqLwotCWlib29sCQlyZW5hbWVfYWxzb19mb3JlaWducyk7LyohPCBpbjogaW4gQUxURVIgVEFC TEUgd2Ugd2FudAorCWlib29sCQlyZW5hbWVfYWxzb19mb3JlaWducykKKwkJCQkJLyohPCBpbjog aW4gQUxURVIgVEFCTEUgd2Ugd2FudAogCQkJCQl0byBwcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgdGFi bGUgbmFtZQogCQkJCQlpbiBjb25zdHJhaW50cyB3aGljaCByZWZlcmVuY2UgaXQgKi8KKwlfX2F0 dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogUmVtb3ZlcyBhbiBpbmRleCBmcm9tIHRoZSBkaWN0aW9uYXJ5IGNhY2hlLiAqLwogVU5J Vl9JTlRFUk4KQEAgLTMxOSw3ICszNDMsOCBAQCB2b2lkCiBkaWN0X2luZGV4X3JlbW92ZV9mcm9t X2NhY2hlKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAlkaWN0X3RhYmxlX3QqCXRh YmxlLAkvKiE8IGluL291dDogdGFibGUgKi8KLQlkaWN0X2luZGV4X3QqCWluZGV4KTsJLyohPCBp biwgb3duOiBpbmRleCAqLworCWRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwgaW4sIG93bjogaW5k ZXggKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENo YW5nZSB0aGUgaWQgb2YgYSB0YWJsZSBvYmplY3QgaW4gdGhlIGRpY3Rpb25hcnkgY2FjaGUuIFRo aXMgaXMgdXNlZCBpbgogRElTQ0FSRCBUQUJMRVNQQUNFLiAqLwpAQCAtMzI4LDcgKzM1Myw4IEBA IHZvaWQKIGRpY3RfdGFibGVfY2hhbmdlX2lkX2luX2NhY2hlKAogLyo9PT09PT09PT09PT09PT09 PT09PT09PT09PSovCiAJZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBpbi9vdXQ6IHRhYmxlIG9i amVjdCBhbHJlYWR5IGluIGNhY2hlICovCi0JdGFibGVfaWRfdAluZXdfaWQpOy8qITwgaW46IG5l dyBpZCB0byBzZXQgKi8KKwl0YWJsZV9pZF90CW5ld19pZCkJLyohPCBpbjogbmV3IGlkIHRvIHNl dCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQWRk cyBhIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgb2JqZWN0IHRvIHRoZSBkaWN0aW9uYXJ5IGNhY2hl LiBNYXkgZnJlZQogdGhlIG9iamVjdCBpZiB0aGVyZSBhbHJlYWR5IGlzIGFuIG9iamVjdCB3aXRo IHRoZSBzYW1lIGlkZW50aWZpZXIgaW4uCkBAIC0zNDAsOCArMzY2LDkgQEAgdWxpbnQKIGRpY3Rf Zm9yZWlnbl9hZGRfdG9fY2FjaGUoCiAvKj09PT09PT09PT09PT09PT09PT09PT0qLwogCWRpY3Rf Zm9yZWlnbl90Kglmb3JlaWduLAkvKiE8IGluLCBvd246IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg Ki8KLQlpYm9vbAkJY2hlY2tfY2hhcnNldHMpOy8qITwgaW46IFRSVUU9Y2hlY2sgY2hhcnNldAor CWlib29sCQljaGVja19jaGFyc2V0cykJLyohPCBpbjogVFJVRT1jaGVjayBjaGFyc2V0CiAJCQkJ CWNvbXBhdGliaWxpdHkgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9y ZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBDaGVjayBpZiB0aGUgaW5kZXggaXMgcmVmZXJl bmNlZCBieSBhIGZvcmVpZ24ga2V5LCBpZiBUUlVFIHJldHVybiB0aGUKIG1hdGNoaW5nIGluc3Rh bmNlIE5VTEwgb3RoZXJ3aXNlLgpAQCAtMzUyLDcgKzM3OSw4IEBAIGRpY3RfZm9yZWlnbl90Kgog ZGljdF90YWJsZV9nZXRfcmVmZXJlbmNlZF9jb25zdHJhaW50KAogLyo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0qLwogCWRpY3RfdGFibGVfdCoJdGFibGUsCS8qITwgaW46IElubm9E QiB0YWJsZSAqLwotCWRpY3RfaW5kZXhfdCoJaW5kZXgpOwkvKiE8IGluOiBJbm5vREIgaW5kZXgg Ki8KKwlkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGluOiBJbm5vREIgaW5kZXggKi8KKwlfX2F0 dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov LyoqCiBDaGVja3MgaWYgYSB0YWJsZSBpcyByZWZlcmVuY2VkIGJ5IGZvcmVpZ24ga2V5cy4KIEBy ZXR1cm4JVFJVRSBpZiB0YWJsZSBpcyByZWZlcmVuY2VkIGJ5IGEgZm9yZWlnbiBrZXkgKi8KQEAg LTM2MCw3ICszODgsOCBAQCBVTklWX0lOVEVSTgogaWJvb2wKIGRpY3RfdGFibGVfaXNfcmVmZXJl bmNlZF9ieV9mb3JlaWduX2tleSgKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ki8KLQljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbjogSW5ub0RCIHRhYmxl ICovCisJY29uc3QgZGljdF90YWJsZV90Kgl0YWJsZSkJLyohPCBpbjogSW5ub0RCIHRhYmxlICov CisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAjaWYgMSAv KiBUT0RPOiBlbmFibGUgdGhpcyBpbiBXTCM2MDQ5IChNREwgZm9yIEZLIGxvb2t1cHMpICovCiAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKIFJlcGxhY2UgdGhlIGluZGV4IHBhc3NlZCBpbiB3aXRoIGFub3Ro ZXIgZXF1aXZhbGVudCBpbmRleCBpbiB0aGUKQEAgLTM5Niw3ICs0MjUsOCBAQCBkaWN0X2ZvcmVp Z25fdCoKIGRpY3RfdGFibGVfZ2V0X2ZvcmVpZ25fY29uc3RyYWludCgKIC8qPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ki8KIAlkaWN0X3RhYmxlX3QqCXRhYmxlLAkvKiE8IGluOiBJbm5v REIgdGFibGUgKi8KLQlkaWN0X2luZGV4X3QqCWluZGV4KTsJLyohPCBpbjogSW5ub0RCIGluZGV4 ICovCisJZGljdF9pbmRleF90KglpbmRleCkJLyohPCBpbjogSW5ub0RCIGluZGV4ICovCisJX19h dHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogU2NhbnMgYSB0YWJsZSBjcmVhdGUgU1FMIHN0cmluZyBhbmQgYWRkcyB0byB0aGUgZGF0 YSBkaWN0aW9uYXJ5CiB0aGUgZm9yZWlnbiBrZXkgY29uc3RyYWludHMgZGVjbGFyZWQgaW4gdGhl IHN0cmluZy4gVGhpcyBmdW5jdGlvbgpAQCAtNDIyLDkgKzQ1MiwxMCBAQCBkaWN0X2NyZWF0ZV9m b3JlaWduX2NvbnN0cmFpbnRzKAogCWNvbnN0IGNoYXIqCW5hbWUsCQkvKiE8IGluOiB0YWJsZSBm dWxsIG5hbWUgaW4gdGhlCiAJCQkJCW5vcm1hbGl6ZWQgZm9ybQogCQkJCQlkYXRhYmFzZV9uYW1l L3RhYmxlX25hbWUgKi8KLQlpYm9vbAkJcmVqZWN0X2Zrcyk7CS8qITwgaW46IGlmIFRSVUUsIGZh aWwgd2l0aCBlcnJvcgorCWlib29sCQlyZWplY3RfZmtzKQkvKiE8IGluOiBpZiBUUlVFLCBmYWls IHdpdGggZXJyb3IKIAkJCQkJY29kZSBEQl9DQU5OT1RfQUREX0NPTlNUUkFJTlQgaWYKIAkJCQkJ YW55IGZvcmVpZ24ga2V5cyBhcmUgZm91bmQuICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwg d2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFBhcnNlcyB0aGUgQ09O U1RSQUlOVCBpZCdzIHRvIGJlIGRyb3BwZWQgaW4gYW4gQUxURVIgVEFCTEUgc3RhdGVtZW50Lgog QHJldHVybiBEQl9TVUNDRVNTIG9yIERCX0NBTk5PVF9EUk9QX0NPTlNUUkFJTlQgaWYgc3ludGF4 IGVycm9yIG9yIHRoZQpAQCAtNDM5LDggKzQ3MCw5IEBAIGRpY3RfZm9yZWlnbl9wYXJzZV9kcm9w X2NvbnN0cmFpbnRzKAogCWRpY3RfdGFibGVfdCoJdGFibGUsCQkJLyohPCBpbjogdGFibGUgKi8K IAl1bGludCoJCW4sCQkJLyohPCBvdXQ6IG51bWJlciBvZiBjb25zdHJhaW50cwogCQkJCQkJdG8g ZHJvcCAqLwotCWNvbnN0IGNoYXIqKioJY29uc3RyYWludHNfdG9fZHJvcCk7CS8qITwgb3V0OiBp ZCdzIG9mIHRoZQorCWNvbnN0IGNoYXIqKioJY29uc3RyYWludHNfdG9fZHJvcCkJLyohPCBvdXQ6 IGlkJ3Mgb2YgdGhlCiAJCQkJCQljb25zdHJhaW50cyB0byBkcm9wICovCisJX19hdHRyaWJ1dGVf Xygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJl dHVybnMgYSB0YWJsZSBvYmplY3QgYW5kIGluY3JlbWVudHMgaXRzIG9wZW4gaGFuZGxlIGNvdW50 LgogTk9URSEgVGhpcyBpcyBhIGhpZ2gtbGV2ZWwgZnVuY3Rpb24gdG8gYmUgdXNlZCBtYWlubHkg ZnJvbSBvdXRzaWRlIHRoZQpAQCAtNTEyLDcgKzU0NCw4IEBAIGRpY3RfdGFibGVfZ2V0X2luZGV4 X2J5X21heF9pZCgKIAlkaWN0X3RhYmxlX3QqCXRhYmxlLAkvKiE8IGluOiB0YWJsZSAqLwogCWNv bnN0IGNoYXIqCW5hbWUsCS8qITwgaW46IHRoZSBpbmRleCBuYW1lIHRvIGZpbmQgKi8KIAljb25z dCBjaGFyKioJY29sdW1ucywvKiE8IGluOiBhcnJheSBvZiBjb2x1bW4gbmFtZXMgKi8KLQl1bGlu dAkJbl9jb2xzKTsvKiE8IGluOiBudW1iZXIgb2YgY29sdW1ucyAqLworCXVsaW50CQluX2NvbHMp CS8qITwgaW46IG51bWJlciBvZiBjb2x1bW5zICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwg d2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIFJldHVybnMgYSBjb2x1 bW4ncyBuYW1lLgogQHJldHVybiBjb2x1bW4gbmFtZS4gTk9URTogbm90IGd1YXJhbnRlZWQgdG8g c3RheSB2YWxpZCBpZiB0YWJsZSBpcwpAQCAtNTIyLDI5ICs1NTUsMzIgQEAgY29uc3QgY2hhcioK IGRpY3RfdGFibGVfZ2V0X2NvbF9uYW1lKAogLyo9PT09PT09PT09PT09PT09PT09PSovCiAJY29u c3QgZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBpbjogdGFibGUgKi8KLQl1bGludAkJCWNvbF9u cik7LyohPCBpbjogY29sdW1uIG51bWJlciAqLwotCisJdWxpbnQJCQljb2xfbnIpCS8qITwgaW46 IGNvbHVtbiBudW1iZXIgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9y ZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUHJpbnRzIGEgdGFibGUgZGVmaW5pdGlvbi4g Ki8KIFVOSVZfSU5URVJOCiB2b2lkCiBkaWN0X3RhYmxlX3ByaW50KAogLyo9PT09PT09PT09PT09 Ki8KLQlkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbjogdGFibGUgKi8KKwlkaWN0X3RhYmxl X3QqCXRhYmxlKQkvKiE8IGluOiB0YWJsZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogUHJpbnRzIGEgdGFibGUgZGF0YS4gKi8KIFVOSVZfSU5URVJO CiB2b2lkCiBkaWN0X3RhYmxlX3ByaW50X2xvdygKIC8qPT09PT09PT09PT09PT09PT0qLwotCWRp Y3RfdGFibGVfdCoJdGFibGUpOwkvKiE8IGluOiB0YWJsZSAqLworCWRpY3RfdGFibGVfdCoJdGFi bGUpCS8qITwgaW46IHRhYmxlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBQcmludHMgYSB0YWJsZSBkYXRhIHdoZW4gd2Uga25vdyB0aGUgdGFibGUg bmFtZS4gKi8KIFVOSVZfSU5URVJOCiB2b2lkCiBkaWN0X3RhYmxlX3ByaW50X2J5X25hbWUoCiAv Kj09PT09PT09PT09PT09PT09PT09PSovCi0JY29uc3QgY2hhcioJbmFtZSk7CS8qITwgaW46IHRh YmxlIG5hbWUgKi8KKwljb25zdCBjaGFyKgluYW1lKQkvKiE8IGluOiB0YWJsZSBuYW1lICovCisJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBPdXRwdXRzIGlu Zm8gb24gZm9yZWlnbiBrZXlzIG9mIGEgdGFibGUuICovCiBVTklWX0lOVEVSTgpAQCAtNTU3LDcg KzU5Myw4IEBAIGRpY3RfcHJpbnRfaW5mb19vbl9mb3JlaWduX2tleXMoCiAJCQkJb2YgU0hPVyBU QUJMRSBTVEFUVVMgKi8KIAlGSUxFKgkJZmlsZSwJLyohPCBpbjogZmlsZSB3aGVyZSB0byBwcmlu dCAqLwogCXRyeF90KgkJdHJ4LAkvKiE8IGluOiB0cmFuc2FjdGlvbiAqLwotCWRpY3RfdGFibGVf dCoJdGFibGUpOwkvKiE8IGluOiB0YWJsZSAqLworCWRpY3RfdGFibGVfdCoJdGFibGUpCS8qITwg aW46IHRhYmxlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov LyoqCiBPdXRwdXRzIGluZm8gb24gYSBmb3JlaWduIGtleSBvZiBhIHRhYmxlIGluIGEgZm9ybWF0 IHN1aXRhYmxlIGZvcgogQ1JFQVRFIFRBQkxFLiAqLwpAQCAtNTY4LDcgKzYwNSw4IEBAIGRpY3Rf cHJpbnRfaW5mb19vbl9mb3JlaWduX2tleV9pbl9jcmVhdGUKIAlGSUxFKgkJZmlsZSwJCS8qITwg aW46IGZpbGUgd2hlcmUgdG8gcHJpbnQgKi8KIAl0cnhfdCoJCXRyeCwJCS8qITwgaW46IHRyYW5z YWN0aW9uICovCiAJZGljdF9mb3JlaWduX3QqCWZvcmVpZ24sCS8qITwgaW46IGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgKi8KLQlpYm9vbAkJYWRkX25ld2xpbmUpOwkvKiE8IGluOiB3aGV0aGVyIHRv IGFkZCBhIG5ld2xpbmUgKi8KKwlpYm9vbAkJYWRkX25ld2xpbmUpCS8qITwgaW46IHdoZXRoZXIg dG8gYWRkIGEgbmV3bGluZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwoMSwzKSkpOwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLy8qKgogRGlzcGxheXMgdGhlIG5hbWVzIG9mIHRoZSBpbmRleCBhbmQgdGhlIHRh YmxlLiAqLwogVU5JVl9JTlRFUk4KQEAgLTU3Nyw3ICs2MTUsOCBAQCBkaWN0X2luZGV4X25hbWVf cHJpbnQoCiAvKj09PT09PT09PT09PT09PT09PSovCiAJRklMRSoJCQlmaWxlLAkvKiE8IGluOiBv dXRwdXQgc3RyZWFtICovCiAJdHJ4X3QqCQkJdHJ4LAkvKiE8IGluOiB0cmFuc2FjdGlvbiAqLwot CWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpOwkvKiE8IGluOiBpbmRleCB0byBwcmludCAqLwor CWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwgaW46IGluZGV4IHRvIHByaW50ICovCisJ X19hdHRyaWJ1dGVfXygobm9ubnVsbCgxLDMpKSk7CiAjaWZkZWYgVU5JVl9ERUJVRwogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogR2V0cyB0aGUgZmlyc3QgaW5kZXggb24gdGhlIHRhYmxlICh0aGUgY2x1c3Rl cmVkIGluZGV4KS4KQEAgLTU4Niw3ICs2MjUsOCBAQCBVTklWX0lOTElORQogZGljdF9pbmRleF90 KgogZGljdF90YWJsZV9nZXRfZmlyc3RfaW5kZXgoCiAvKj09PT09PT09PT09PT09PT09PT09PT09 Ki8KLQljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbjogdGFibGUgKi8KKwljb25z dCBkaWN0X3RhYmxlX3QqCXRhYmxlKQkvKiE8IGluOiB0YWJsZSAqLworCV9fYXR0cmlidXRlX18o KG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0 aGUgbmV4dCBpbmRleCBvbiB0aGUgdGFibGUuCiBAcmV0dXJuCWluZGV4LCBOVUxMIGlmIG5vbmUg bGVmdCAqLwpAQCAtNTk0LDcgKzYzNCw4IEBAIFVOSVZfSU5MSU5FCiBkaWN0X2luZGV4X3QqCiBk aWN0X3RhYmxlX2dldF9uZXh0X2luZGV4KAogLyo9PT09PT09PT09PT09PT09PT09PT09Ki8KLQlj b25zdCBkaWN0X2luZGV4X3QqCWluZGV4KTsJLyohPCBpbjogaW5kZXggKi8KKwljb25zdCBkaWN0 X2luZGV4X3QqCWluZGV4KQkvKiE8IGluOiBpbmRleCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51 bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogI2Vsc2UgLyogVU5JVl9ERUJVRyAqLwogIyBkZWZp bmUgZGljdF90YWJsZV9nZXRfZmlyc3RfaW5kZXgodGFibGUpIFVUX0xJU1RfR0VUX0ZJUlNUKCh0 YWJsZSktPmluZGV4ZXMpCiAjIGRlZmluZSBkaWN0X3RhYmxlX2dldF9uZXh0X2luZGV4KGluZGV4 KSBVVF9MSVNUX0dFVF9ORVhUKGluZGV4ZXMsIGluZGV4KQpAQCAtNjU0LDEzICs2OTUsMTQgQEAg ZGljdF9pbmRleF9pc19zZWNfb3JfaWJ1ZigKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIEdldHMgdGhlIGFs bCB0aGUgRlRTIGluZGV4ZXMgZm9yIHRoZSB0YWJsZS4gTk9URTogbXVzdCBub3QgYmUgY2FsbGVk IGZvcgogdGFibGVzIHdoaWNoIGRvIG5vdCBoYXZlIGFuIEZUUy1pbmRleC4gKi8KLQorVU5JVl9J TlRFUk4KIHVsaW50CiBkaWN0X3RhYmxlX2dldF9hbGxfZnRzX2luZGV4ZXMoCiAvKj09PT09PT09 PT09PT09PT09PT09PT09PT09PSovCiAJCQkJLyogb3V0OiBudW1iZXIgb2YgaW5kZXhlcyBjb2xs ZWN0ZWQgKi8KIAlkaWN0X3RhYmxlX3QqCXRhYmxlLAkvKiBpbjogdGFibGUgKi8KLQlpYl92ZWN0 b3JfdCoJaW5kZXhlcyk7Lyogb3V0OiB2ZWN0b3IgZm9yIGNvbGxlY3RpbmcgRlRTIGluZGV4ZXMg Ki8KKwlpYl92ZWN0b3JfdCoJaW5kZXhlcykvKiBvdXQ6IHZlY3RvciBmb3IgY29sbGVjdGluZyBG VFMgaW5kZXhlcyAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIEdldHMgdGhlIG51bWJlciBvZiB1c2VyLWRlZmluZWQgY29sdW1ucyBpbiBhIHRhYmxlIGlu IHRoZSBkaWN0aW9uYXJ5CiBjYWNoZS4KQEAgLTY5OSw3ICs3NDEsOCBAQCBkaWN0X2NvbF90Kgog ZGljdF90YWJsZV9nZXRfbnRoX2NvbCgKIC8qPT09PT09PT09PT09PT09PT09PSovCiAJY29uc3Qg ZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBpbjogdGFibGUgKi8KLQl1bGludAkJCXBvcyk7CS8q ITwgaW46IHBvc2l0aW9uIG9mIGNvbHVtbiAqLworCXVsaW50CQkJcG9zKQkvKiE8IGluOiBwb3Np dGlvbiBvZiBjb2x1bW4gKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9y ZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIGdpdmVuIHN5c3RlbSBjb2x1bW4g b2YgYSB0YWJsZS4KIEByZXR1cm4JcG9pbnRlciB0byBjb2x1bW4gb2JqZWN0ICovCkBAIC03MDgs NyArNzUxLDggQEAgZGljdF9jb2xfdCoKIGRpY3RfdGFibGVfZ2V0X3N5c19jb2woCiAvKj09PT09 PT09PT09PT09PT09PT0qLwogCWNvbnN0IGRpY3RfdGFibGVfdCoJdGFibGUsCS8qITwgaW46IHRh YmxlICovCi0JdWxpbnQJCQlzeXMpOwkvKiE8IGluOiBEQVRBX1JPV19JRCwgLi4uICovCisJdWxp bnQJCQlzeXMpCS8qITwgaW46IERBVEFfUk9XX0lELCAuLi4gKi8KKwlfX2F0dHJpYnV0ZV9fKChu b25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKICNlbHNlIC8qIFVOSVZfREVCVUcgKi8KICNk ZWZpbmUgZGljdF90YWJsZV9nZXRfbnRoX2NvbCh0YWJsZSwgcG9zKSBcCiAoKHRhYmxlKS0+Y29s cyArIChwb3MpKQpAQCAtNzIzLDcgKzc2Nyw4IEBAIHVsaW50CiBkaWN0X3RhYmxlX2dldF9zeXNf Y29sX25vKAogLyo9PT09PT09PT09PT09PT09PT09PT09Ki8KIAljb25zdCBkaWN0X3RhYmxlX3Qq CXRhYmxlLAkvKiE8IGluOiB0YWJsZSAqLwotCXVsaW50CQkJc3lzKTsJLyohPCBpbjogREFUQV9S T1dfSUQsIC4uLiAqLworCXVsaW50CQkJc3lzKQkvKiE8IGluOiBEQVRBX1JPV19JRCwgLi4uICov CisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAjaWZuZGVm IFVOSVZfSE9UQkFDS1VQCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBSZXR1cm5zIHRoZSBtaW5pbXVtIGRh dGEgc2l6ZSBvZiBhbiBpbmRleCByZWNvcmQuCkBAIC03MzIsNyArNzc3LDggQEAgVU5JVl9JTkxJ TkUKIHVsaW50CiBkaWN0X2luZGV4X2dldF9taW5fc2l6ZSgKIC8qPT09PT09PT09PT09PT09PT09 PT0qLwotCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpOwkvKiE8IGluOiBpbmRleCAqLworCWNv bnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgpCS8qITwgaW46IGluZGV4ICovCisJX19hdHRyaWJ1dGVf Xygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAjZW5kaWYgLyogIVVOSVZfSE9UQkFD S1VQICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCiBDaGVjayB3aGV0aGVyIHRoZSB0YWJsZSB1c2VzIHRo ZSBjb21wYWN0IHBhZ2UgZm9ybWF0LgpAQCAtNzQxLDcgKzc4Nyw4IEBAIFVOSVZfSU5MSU5FCiBp Ym9vbAogZGljdF90YWJsZV9pc19jb21wKAogLyo9PT09PT09PT09PT09PT0qLwotCWNvbnN0IGRp Y3RfdGFibGVfdCoJdGFibGUpOwkvKiE8IGluOiB0YWJsZSAqLworCWNvbnN0IGRpY3RfdGFibGVf dCoJdGFibGUpCS8qITwgaW46IHRhYmxlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fy bl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBEZXRlcm1pbmUgdGhlIGZpbGUg Zm9ybWF0IG9mIGEgdGFibGUuCiBAcmV0dXJuCWZpbGUgZm9ybWF0IHZlcnNpb24gKi8KQEAgLTc0 OSw3ICs3OTYsOCBAQCBVTklWX0lOTElORQogdWxpbnQKIGRpY3RfdGFibGVfZ2V0X2Zvcm1hdCgK IC8qPT09PT09PT09PT09PT09PT09Ki8KLQljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyoh PCBpbjogdGFibGUgKi8KKwljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlKQkvKiE8IGluOiB0YWJs ZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLy8qKgogRGV0ZXJtaW5lIHRoZSBmaWxlIGZvcm1hdCBmcm9tIGEgZGljdF90YWJs ZV90OjpmbGFncy4KIEByZXR1cm4JZmlsZSBmb3JtYXQgdmVyc2lvbiAqLwpAQCAtNzU3LDcgKzgw NSw4IEBAIFVOSVZfSU5MSU5FCiB1bGludAogZGljdF90Zl9nZXRfZm9ybWF0KAogLyo9PT09PT09 PT09PT09PT0qLwotCXVsaW50CQlmbGFncyk7CQkvKiE8IGluOiBkaWN0X3RhYmxlX3Q6OmZsYWdz ICovCisJdWxpbnQJCWZsYWdzKQkJLyohPCBpbjogZGljdF90YWJsZV90OjpmbGFncyAqLworCV9f YXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogU2V0IHRoZSB2YXJpb3VzIHZhbHVlcyBpbiBhIGRpY3RfdGFibGVfdDo6ZmxhZ3MgcG9p bnRlci4gKi8KIFVOSVZfSU5MSU5FCkBAIC03NjYsNyArODE1LDggQEAgZGljdF90Zl9zZXQoCiAv Kj09PT09PT09Ki8KIAl1bGludCoJCWZsYWdzLAkJLyohPCBpbi9vdXQ6IHRhYmxlICovCiAJcmVj X2Zvcm1hdF90CWZvcm1hdCwJCS8qITwgaW46IGZpbGUgZm9ybWF0ICovCi0JdWxpbnQJCXppcF9z c2l6ZSk7CS8qITwgaW46IHppcCBzaGlmdCBzaXplICovCisJdWxpbnQJCXppcF9zc2l6ZSkJLyoh PCBpbjogemlwIHNoaWZ0IHNpemUgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovLyoqCiBDb252ZXJ0IGEgMzIgYml0IGludGVnZXIgdGFibGUgZmxhZ3MgdG8gdGhl IDMyIGJpdCBpbnRlZ2VyIHRoYXQgaXMKIHdyaXR0ZW4gaW50byB0aGUgdGFibGVzcGFjZSBoZWFk ZXIgYXQgdGhlIG9mZnNldCBGU1BfU1BBQ0VfRkxBR1MgYW5kIGlzCkBAIC04MDAsNyArODUwLDgg QEAgVU5JVl9JTkxJTkUKIHVsaW50CiBkaWN0X3RhYmxlX3ppcF9zaXplKAogLyo9PT09PT09PT09 PT09PT09Ki8KLQljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbjogdGFibGUgKi8K Kwljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlKQkvKiE8IGluOiB0YWJsZSAqLworCV9fYXR0cmli dXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogI2lmbmRlZiBVTklWX0hPVEJB Q0tVUAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8vKioKIE9idGFpbiBleGNsdXNpdmUgbG9ja3Mgb24gYWxsIGlu ZGV4IHRyZWVzIG9mIHRoZSB0YWJsZS4gVGhpcyBpcyB0byBwcmV2ZW50CkBAIC04MTAsMTQgKzg2 MSwxNiBAQCBVTklWX0lOTElORQogdm9pZAogZGljdF90YWJsZV94X2xvY2tfaW5kZXhlcygKIC8q PT09PT09PT09PT09PT09PT09PT09PSovCi0JZGljdF90YWJsZV90Kgl0YWJsZSk7CS8qITwgaW46 IHRhYmxlICovCisJZGljdF90YWJsZV90Kgl0YWJsZSkJLyohPCBpbjogdGFibGUgKi8KKwlfX2F0 dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmVsZWFzZSB0aGUgZXhj bHVzaXZlIGxvY2tzIG9uIGFsbCBpbmRleCB0cmVlLiAqLwogVU5JVl9JTkxJTkUKIHZvaWQKIGRp Y3RfdGFibGVfeF91bmxvY2tfaW5kZXhlcygKIC8qPT09PT09PT09PT09PT09PT09PT09PT09Ki8K LQlkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbjogdGFibGUgKi8KKwlkaWN0X3RhYmxlX3Qq CXRhYmxlKQkvKiE8IGluOiB0YWJsZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKIENoZWNrcyBpZiBhIGNvbHVtbiBpcyBpbiB0aGUgb3JkZXJpbmcgY29s dW1ucyBvZiB0aGUgY2x1c3RlcmVkIGluZGV4IG9mIGEKIHRhYmxlLiBDb2x1bW4gcHJlZml4ZXMg YXJlIHRyZWF0ZWQgbGlrZSB3aG9sZSBjb2x1bW5zLgpAQCAtODI3LDcgKzg4MCw4IEBAIGlib29s CiBkaWN0X3RhYmxlX2NvbF9pbl9jbHVzdGVyZWRfa2V5KAogLyo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ki8KIAljb25zdCBkaWN0X3RhYmxlX3QqCXRhYmxlLAkvKiE8IGluOiB0YWJsZSAq LwotCXVsaW50CQkJbik7CS8qITwgaW46IGNvbHVtbiBudW1iZXIgKi8KKwl1bGludAkJCW4pCS8q ITwgaW46IGNvbHVtbiBudW1iZXIgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3Vu dXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogQ2hlY2sgaWYgdGhlIHRhYmxlIGhhcyBh biBGVFMgaW5kZXguCiBAcmV0dXJuIFRSVUUgaWYgdGFibGUgaGFzIGFuIEZUUyBpbmRleCAqLwpA QCAtODM1LDcgKzg4OSw4IEBAIFVOSVZfSU5MSU5FCiBpYm9vbAogZGljdF90YWJsZV9oYXNfZnRz X2luZGV4KAogLyo9PT09PT09PT09PT09PT09PT09PT0qLwotCWRpY3RfdGFibGVfdCogICB0YWJs ZSk7CQkvKiE8IGluOiB0YWJsZSAqLworCWRpY3RfdGFibGVfdCogICB0YWJsZSkJCS8qITwgaW46 IHRhYmxlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7 CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8vKioKIENvcGllcyB0eXBlcyBvZiBjb2x1bW5zIGNvbnRhaW5lZCBpbiB0 YWJsZSB0byB0dXBsZSBhbmQgc2V0cyBhbGwKIGZpZWxkcyBvZiB0aGUgdHVwbGUgdG8gdGhlIFNR TCBOVUxMIHZhbHVlLiAgVGhpcyBmdW5jdGlvbiBzaG91bGQKQEAgLTg0NSwxOCArOTAwLDIwIEBA IHZvaWQKIGRpY3RfdGFibGVfY29weV90eXBlcygKIC8qPT09PT09PT09PT09PT09PT09Ki8KIAlk dHVwbGVfdCoJCXR1cGxlLAkvKiE8IGluL291dDogZGF0YSB0dXBsZSAqLwotCWNvbnN0IGRpY3Rf dGFibGVfdCoJdGFibGUpOwkvKiE8IGluOiB0YWJsZSAqLworCWNvbnN0IGRpY3RfdGFibGVfdCoJ dGFibGUpCS8qITwgaW46IHRhYmxlICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiBXYWl0IHVudGlsIGFsbCB0aGUgYmFja2dyb3VuZCB0aHJlYWRzIG9mIHRoZSBn aXZlbiB0YWJsZSBoYXZlIGV4aXRlZCwgaS5lLiwKIGJnX3RocmVhZHMgPT0gMC4gTm90ZTogYmdf dGhyZWFkc19tdXRleCBtdXN0IGJlIHJlc2VydmVkIHdoZW4KIGNhbGxpbmcgdGhpcy4gKi8KLQor VU5JVl9JTlRFUk4KIHZvaWQKIGRpY3RfdGFibGVfd2FpdF9mb3JfYmdfdGhyZWFkc190b19leGl0 KAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJZGljdF90YWJsZV90 Kgl0YWJsZSwJLyogaW46IHRhYmxlICovCi0JdWxpbnQJCWRlbGF5KTsJLyogaW46IHRpbWUgaW4g bWljcm9zZWNvbmRzIHRvIHdhaXQgYmV0d2VlbgorCXVsaW50CQlkZWxheSkJLyogaW46IHRpbWUg aW4gbWljcm9zZWNvbmRzIHRvIHdhaXQgYmV0d2VlbgogCQkJCWNoZWNrcyBvZiBiZ190aHJlYWRz LiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogTG9v a3MgZm9yIGFuIGluZGV4IHdpdGggdGhlIGdpdmVuIGlkLiBOT1RFIHRoYXQgd2UgZG8gbm90IHJl c2VydmUKIHRoZSBkaWN0aW9uYXJ5IG11dGV4OiB0aGlzIGZ1bmN0aW9uIGlzIGZvciBlbWVyZ2Vu Y3kgcHVycG9zZXMgbGlrZQpAQCAtODY2LDcgKzkyMyw4IEBAIFVOSVZfSU5URVJOCiBkaWN0X2lu ZGV4X3QqCiBkaWN0X2luZGV4X2ZpbmRfb25faWRfbG93KAogLyo9PT09PT09PT09PT09PT09PT09 PT09Ki8KLQlpbmRleF9pZF90CWlkKTsJLyohPCBpbjogaW5kZXggaWQgKi8KKwlpbmRleF9pZF90 CWlkKQkvKiE8IGluOiBpbmRleCBpZCAqLworCV9fYXR0cmlidXRlX18oKHdhcm5fdW51c2VkX3Jl c3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBNYWtlIHJvb20gaW4gdGhlIHRhYmxlIGNhY2hl IGJ5IGV2aWN0aW5nIGFuIHVudXNlZCB0YWJsZS4gVGhlIHVudXNlZCB0YWJsZQogc2hvdWxkIG5v dCBiZSBwYXJ0IG9mIEZLIHJlbGF0aW9uc2hpcCBhbmQgY3VycmVudGx5IG5vdCB1c2VkIGluIGFu eSB1c2VyCkBAIC04ODksOSArOTQ3LDEwIEBAIGRpY3RfaW5kZXhfYWRkX3RvX2NhY2hlKAogCWRp Y3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW4sIG93bjogaW5kZXg7IE5PVEUhIFRoZSBpbmRleCBt ZW1vcnkKIAkJCQlvYmplY3QgaXMgZnJlZWQgaW4gdGhpcyBmdW5jdGlvbiEgKi8KIAl1bGludAkJ cGFnZV9ubywvKiE8IGluOiByb290IHBhZ2UgbnVtYmVyIG9mIHRoZSBpbmRleCAqLwotCWlib29s CQlzdHJpY3QpOy8qITwgaW46IFRSVUU9cmVmdXNlIHRvIGNyZWF0ZSB0aGUgaW5kZXgKKwlpYm9v bAkJc3RyaWN0KQkvKiE8IGluOiBUUlVFPXJlZnVzZSB0byBjcmVhdGUgdGhlIGluZGV4CiAJCQkJ aWYgcmVjb3JkcyBjb3VsZCBiZSB0b28gYmlnIHRvIGZpdCBpbgogCQkJCWFuIEItdHJlZSBwYWdl ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8vKioKIFJlbW92ZXMgYW4gaW5kZXggZnJvbSB0aGUgZGljdGlvbmFyeSBjYWNo ZS4gKi8KIFVOSVZfSU5URVJOCkBAIC04OTksNyArOTU4LDggQEAgdm9pZAogZGljdF9pbmRleF9y ZW1vdmVfZnJvbV9jYWNoZSgKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PSovCiAJZGljdF90 YWJsZV90Kgl0YWJsZSwJLyohPCBpbi9vdXQ6IHRhYmxlICovCi0JZGljdF9pbmRleF90KglpbmRl eCk7CS8qITwgaW4sIG93bjogaW5kZXggKi8KKwlkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGlu LCBvd246IGluZGV4ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogI2VuZGlmIC8qICFV TklWX0hPVEJBQ0tVUCAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0aGUgbnVtYmVyIG9mIGZp ZWxkcyBpbiB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYW4gaW5kZXgsCkBAIC05MDks OSArOTY5LDEwIEBAIFVOSVZfSU5MSU5FCiB1bGludAogZGljdF9pbmRleF9nZXRfbl9maWVsZHMo CiAvKj09PT09PT09PT09PT09PT09PT09Ki8KLQljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KTsJ LyohPCBpbjogYW4gaW50ZXJuYWwKKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGlu OiBhbiBpbnRlcm5hbAogCQkJCQlyZXByZXNlbnRhdGlvbiBvZiBpbmRleCAoaW4KIAkJCQkJdGhl IGRpY3Rpb25hcnkgY2FjaGUpICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVz ZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXRzIHRoZSBudW1iZXIgb2YgZmllbGRz IGluIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBhbiBpbmRleAogdGhhdCB1bmlxdWVs eSBkZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIGFuIGluZGV4IGVudHJ5IGluIHRoZSBpbmRleCwg aWYKQEAgLTkyMiw4ICs5ODMsOSBAQCBVTklWX0lOTElORQogdWxpbnQKIGRpY3RfaW5kZXhfZ2V0 X25fdW5pcXVlKAogLyo9PT09PT09PT09PT09PT09PT09PSovCi0JY29uc3QgZGljdF9pbmRleF90 KglpbmRleCk7CS8qITwgaW46IGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uCisJY29uc3QgZGlj dF9pbmRleF90KglpbmRleCkJLyohPCBpbjogYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KIAkJ CQkJb2YgaW5kZXggKGluIHRoZSBkaWN0aW9uYXJ5IGNhY2hlKSAqLworCV9fYXR0cmlidXRlX18o KG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0 aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgYW4g aW5kZXgKIHdoaWNoIHVuaXF1ZWx5IGRldGVybWluZSB0aGUgcG9zaXRpb24gb2YgYW4gaW5kZXgg ZW50cnkgaW4gdGhlIGluZGV4LCBpZgpAQCAtOTMzLDggKzk5NSw5IEBAIFVOSVZfSU5MSU5FCiB1 bGludAogZGljdF9pbmRleF9nZXRfbl91bmlxdWVfaW5fdHJlZSgKIC8qPT09PT09PT09PT09PT09 PT09PT09PT09PT09PSovCi0JY29uc3QgZGljdF9pbmRleF90KglpbmRleCk7CS8qITwgaW46IGFu IGludGVybmFsIHJlcHJlc2VudGF0aW9uCisJY29uc3QgZGljdF9pbmRleF90KglpbmRleCkJLyoh PCBpbjogYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KIAkJCQkJb2YgaW5kZXggKGluIHRoZSBk aWN0aW9uYXJ5IGNhY2hlKSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2Vk X3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0aGUgbnVtYmVyIG9mIHVzZXItZGVm aW5lZCBvcmRlcmluZyBmaWVsZHMgaW4gdGhlIGluZGV4LiBJbiB0aGUgaW50ZXJuYWwKIHJlcHJl c2VudGF0aW9uIHdlIGFkZCB0aGUgcm93IGlkIHRvIHRoZSBvcmRlcmluZyBmaWVsZHMgdG8gbWFr ZSBhbGwgaW5kZXhlcwpAQCAtOTQ1LDggKzEwMDgsOSBAQCBVTklWX0lOTElORQogdWxpbnQKIGRp Y3RfaW5kZXhfZ2V0X25fb3JkZXJpbmdfZGVmaW5lZF9ieV91c2VyKAogLyo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PSovCi0JY29uc3QgZGljdF9pbmRleF90KglpbmRleCk7 CS8qITwgaW46IGFuIGludGVybmFsIHJlcHJlc2VudGF0aW9uCisJY29uc3QgZGljdF9pbmRleF90 KglpbmRleCkJLyohPCBpbjogYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24KIAkJCQkJb2YgaW5k ZXggKGluIHRoZSBkaWN0aW9uYXJ5IGNhY2hlKSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGws IHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogI2lmZGVmIFVOSVZfREVCVUcKIC8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8v KioKIEdldHMgdGhlIG50aCBmaWVsZCBvZiBhbiBpbmRleC4KQEAgLTk1Niw3ICsxMDIwLDggQEAg ZGljdF9maWVsZF90KgogZGljdF9pbmRleF9nZXRfbnRoX2ZpZWxkKAogLyo9PT09PT09PT09PT09 PT09PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4ICov Ci0JdWxpbnQJCQlwb3MpOwkvKiE8IGluOiBwb3NpdGlvbiBvZiBmaWVsZCAqLworCXVsaW50CQkJ cG9zKQkvKiE8IGluOiBwb3NpdGlvbiBvZiBmaWVsZCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51 bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogI2Vsc2UgLyogVU5JVl9ERUJVRyAqLwogIyBkZWZp bmUgZGljdF9pbmRleF9nZXRfbnRoX2ZpZWxkKGluZGV4LCBwb3MpICgoaW5kZXgpLT5maWVsZHMg KyAocG9zKSkKICNlbmRpZiAvKiBVTklWX0RFQlVHICovCkBAIC05NjgsNyArMTAzMyw4IEBAIGNv bnN0IGRpY3RfY29sX3QqCiBkaWN0X2luZGV4X2dldF9udGhfY29sKAogLyo9PT09PT09PT09PT09 PT09PT09Ki8KIAljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4LAkvKiE8IGluOiBpbmRleCAqLwot CXVsaW50CQkJcG9zKTsJLyohPCBpbjogcG9zaXRpb24gb2YgdGhlIGZpZWxkICovCisJdWxpbnQJ CQlwb3MpCS8qITwgaW46IHBvc2l0aW9uIG9mIHRoZSBmaWVsZCAqLworCV9fYXR0cmlidXRlX18o KG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0 aGUgY29sdW1uIG51bWJlciBvZiB0aGUgbnRoIGZpZWxkIGluIGFuIGluZGV4LgogQHJldHVybglj b2x1bW4gbnVtYmVyICovCkBAIC05NzcsNyArMTA0Myw4IEBAIHVsaW50CiBkaWN0X2luZGV4X2dl dF9udGhfY29sX25vKAogLyo9PT09PT09PT09PT09PT09PT09PT09Ki8KIAljb25zdCBkaWN0X2lu ZGV4X3QqCWluZGV4LAkvKiE8IGluOiBpbmRleCAqLwotCXVsaW50CQkJcG9zKTsJLyohPCBpbjog cG9zaXRpb24gb2YgdGhlIGZpZWxkICovCisJdWxpbnQJCQlwb3MpCS8qITwgaW46IHBvc2l0aW9u IG9mIHRoZSBmaWVsZCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jl c3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogTG9va3MgZm9yIGNvbHVtbiBuIGluIGFuIGluZGV4 LgogQHJldHVybiBwb3NpdGlvbiBpbiBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5k ZXg7CkBAIC05ODcsNyArMTA1NCw4IEBAIHVsaW50CiBkaWN0X2luZGV4X2dldF9udGhfY29sX3Bv cygKIC8qPT09PT09PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5k ZXgsCS8qITwgaW46IGluZGV4ICovCi0JdWxpbnQJCQluKTsJLyohPCBpbjogY29sdW1uIG51bWJl ciAqLworCXVsaW50CQkJbikJLyohPCBpbjogY29sdW1uIG51bWJlciAqLworCV9fYXR0cmlidXRl X18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogTG9v a3MgZm9yIGNvbHVtbiBuIGluIGFuIGluZGV4LgogQHJldHVybiBwb3NpdGlvbiBpbiBpbnRlcm5h bCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5kZXg7CkBAIC05OTgsOCArMTA2Niw5IEBAIGRpY3Rf aW5kZXhfZ2V0X250aF9jb2xfb3JfcHJlZml4X3BvcygKIC8qPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ki8KIAljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4LAkJLyohPCBpbjogaW5k ZXggKi8KIAl1bGludAkJCW4sCQkvKiE8IGluOiBjb2x1bW4gbnVtYmVyICovCi0JaWJvb2wJCQlp bmNfcHJlZml4KTsJLyohPCBpbjogVFJVRT1jb25zaWRlcgorCWlib29sCQkJaW5jX3ByZWZpeCkJ LyohPCBpbjogVFJVRT1jb25zaWRlcgogCQkJCQkJY29sdW1uIHByZWZpeGVzIHRvbyAqLworCV9f YXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ly8qKgogUmV0dXJucyBUUlVFIGlmIHRoZSBpbmRleCBjb250YWlucyBhIGNvbHVtbiBvciBhIHBy ZWZpeCBvZiB0aGF0IGNvbHVtbi4KIEByZXR1cm4JVFJVRSBpZiBjb250YWlucyB0aGUgY29sdW1u IG9yIGl0cyBwcmVmaXggKi8KQEAgLTEwMDgsNyArMTA3Nyw4IEBAIGlib29sCiBkaWN0X2luZGV4 X2NvbnRhaW5zX2NvbF9vcl9wcmVmaXgoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSovCiAJY29uc3QgZGljdF9pbmRleF90KglpbmRleCwJLyohPCBpbjogaW5kZXggKi8KLQl1bGlu dAkJCW4pOwkvKiE8IGluOiBjb2x1bW4gbnVtYmVyICovCisJdWxpbnQJCQluKQkvKiE8IGluOiBj b2x1bW4gbnVtYmVyICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVz dWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovLyoqCiBMb29rcyBmb3IgYSBtYXRjaGluZyBmaWVsZCBpbiBh biBpbmRleC4gVGhlIGNvbHVtbiBoYXMgdG8gYmUgdGhlIHNhbWUuIFRoZQogY29sdW1uIGluIGlu ZGV4IG11c3QgYmUgY29tcGxldGUsIG9yIG11c3QgY29udGFpbiBhIHByZWZpeCBsb25nZXIgdGhh biB0aGUKQEAgLTEwMjIsNyArMTA5Miw4IEBAIGRpY3RfaW5kZXhfZ2V0X250aF9maWVsZF9wb3Mo CiAvKj09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5k ZXgsCS8qITwgaW46IGluZGV4IGZyb20gd2hpY2ggdG8gc2VhcmNoICovCiAJY29uc3QgZGljdF9p bmRleF90KglpbmRleDIsCS8qITwgaW46IGluZGV4ICovCi0JdWxpbnQJCQluKTsJLyohPCBpbjog ZmllbGQgbnVtYmVyIGluIGluZGV4MiAqLworCXVsaW50CQkJbikJLyohPCBpbjogZmllbGQgbnVt YmVyIGluIGluZGV4MiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jl c3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogTG9va3MgZm9yIGNvbHVtbiBuIHBvc2l0aW9uIGlu IHRoZSBjbHVzdGVyZWQgaW5kZXguCiBAcmV0dXJuCXBvc2l0aW9uIGluIGludGVybmFsIHJlcHJl c2VudGF0aW9uIG9mIHRoZSBjbHVzdGVyZWQgaW5kZXggKi8KQEAgLTEwMzEsNyArMTEwMiw4IEBA IHVsaW50CiBkaWN0X3RhYmxlX2dldF9udGhfY29sX3BvcygKIC8qPT09PT09PT09PT09PT09PT09 PT09PT0qLwogCWNvbnN0IGRpY3RfdGFibGVfdCoJdGFibGUsCS8qITwgaW46IHRhYmxlICovCi0J dWxpbnQJCQluKTsJLyohPCBpbjogY29sdW1uIG51bWJlciAqLworCXVsaW50CQkJbikJLyohPCBp bjogY29sdW1uIG51bWJlciAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2Vk X3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyB0aGUgcG9zaXRpb24gb2YgYSBz eXN0ZW0gY29sdW1uIGluIGFuIGluZGV4LgogQHJldHVybglwb3NpdGlvbiwgVUxJTlRfVU5ERUZJ TkVEIGlmIG5vdCBjb250YWluZWQgKi8KQEAgLTEwNDAsNyArMTExMiw4IEBAIHVsaW50CiBkaWN0 X2luZGV4X2dldF9zeXNfY29sX3BvcygKIC8qPT09PT09PT09PT09PT09PT09PT09PT0qLwogCWNv bnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4ICovCi0JdWxpbnQJCQl0eXBl KTsJLyohPCBpbjogREFUQV9ST1dfSUQsIC4uLiAqLworCXVsaW50CQkJdHlwZSkJLyohPCBpbjog REFUQV9ST1dfSUQsIC4uLiAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2Vk X3Jlc3VsdCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBBZGRzIGEgY29sdW1uIHRvIGluZGV4LiAqLwog VU5JVl9JTlRFUk4KQEAgLTEwNTAsNyArMTEyMyw4IEBAIGRpY3RfaW5kZXhfYWRkX2NvbCgKIAlk aWN0X2luZGV4X3QqCQlpbmRleCwJCS8qITwgaW4vb3V0OiBpbmRleCAqLwogCWNvbnN0IGRpY3Rf dGFibGVfdCoJdGFibGUsCQkvKiE8IGluOiB0YWJsZSAqLwogCWRpY3RfY29sX3QqCQljb2wsCQkv KiE8IGluOiBjb2x1bW4gKi8KLQl1bGludAkJCXByZWZpeF9sZW4pOwkvKiE8IGluOiBjb2x1bW4g cHJlZml4IGxlbmd0aCAqLworCXVsaW50CQkJcHJlZml4X2xlbikJLyohPCBpbjogY29sdW1uIHBy ZWZpeCBsZW5ndGggKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAjaWZuZGVmIFVOSVZf SE9UQkFDS1VQCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIENvcGllcyB0eXBlcyBvZiBmaWVsZHMgY29udGFp bmVkIGluIGluZGV4IHRvIHR1cGxlLiAqLwpAQCAtMTA2MCw4ICsxMTM0LDkgQEAgZGljdF9pbmRl eF9jb3B5X3R5cGVzKAogLyo9PT09PT09PT09PT09PT09PT0qLwogCWR0dXBsZV90KgkJdHVwbGUs CQkvKiE8IGluL291dDogZGF0YSB0dXBsZSAqLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgs CQkvKiE8IGluOiBpbmRleCAqLwotCXVsaW50CQkJbl9maWVsZHMpOwkvKiE8IGluOiBudW1iZXIg b2YKKwl1bGludAkJCW5fZmllbGRzKQkvKiE8IGluOiBudW1iZXIgb2YKIAkJCQkJCWZpZWxkIHR5 cGVzIHRvIGNvcHkgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAjZW5kaWYgLyogIVVO SVZfSE9UQkFDS1VQICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogR2V0cyB0aGUgZmllbGQgY29sdW1u LgpAQCAtMTA3MCw3ICsxMTQ1LDggQEAgVU5JVl9JTkxJTkUKIGNvbnN0IGRpY3RfY29sX3QqCiBk aWN0X2ZpZWxkX2dldF9jb2woCiAvKj09PT09PT09PT09PT09PSovCi0JY29uc3QgZGljdF9maWVs ZF90KglmaWVsZCk7CS8qITwgaW46IGluZGV4IGZpZWxkICovCisJY29uc3QgZGljdF9maWVsZF90 KglmaWVsZCkJLyohPCBpbjogaW5kZXggZmllbGQgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxs LCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKICNpZm5kZWYgVU5JVl9IT1RCQUNLVVAKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLy8qKgogUmV0dXJucyBhbiBpbmRleCBvYmplY3QgaWYgaXQgaXMgZm91bmQgaW4gdGhl IGRpY3Rpb25hcnkgY2FjaGUuCkBAIC0xMDgwLDcgKzExNTYsOCBAQCBVTklWX0lOVEVSTgogZGlj dF9pbmRleF90KgogZGljdF9pbmRleF9nZXRfaWZfaW5fY2FjaGVfbG93KAogLyo9PT09PT09PT09 PT09PT09PT09PT09PT09PT0qLwotCWluZGV4X2lkX3QJaW5kZXhfaWQpOwkvKiE8IGluOiBpbmRl eCBpZCAqLworCWluZGV4X2lkX3QJaW5kZXhfaWQpCS8qITwgaW46IGluZGV4IGlkICovCisJX19h dHRyaWJ1dGVfXygod2Fybl91bnVzZWRfcmVzdWx0KSk7CiAjaWYgZGVmaW5lZCBVTklWX0RFQlVH IHx8IGRlZmluZWQgVU5JVl9CVUZfREVCVUcKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogUmV0dXJucyBh biBpbmRleCBvYmplY3QgaWYgaXQgaXMgZm91bmQgaW4gdGhlIGRpY3Rpb25hcnkgY2FjaGUuCkBA IC0xMDg5LDcgKzExNjYsOCBAQCBVTklWX0lOVEVSTgogZGljdF9pbmRleF90KgogZGljdF9pbmRl eF9nZXRfaWZfaW5fY2FjaGUoCiAvKj09PT09PT09PT09PT09PT09PT09PT09Ki8KLQlpbmRleF9p ZF90CWluZGV4X2lkKTsJLyohPCBpbjogaW5kZXggaWQgKi8KKwlpbmRleF9pZF90CWluZGV4X2lk KQkvKiE8IGluOiBpbmRleCBpZCAqLworCV9fYXR0cmlidXRlX18oKHdhcm5fdW51c2VkX3Jlc3Vs dCkpOwogI2VuZGlmIC8qIFVOSVZfREVCVUcgfHwgVU5JVl9CVUZfREVCVUcgKi8KICNpZmRlZiBV TklWX0RFQlVHCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKQEAgLTExMDEsNyArMTE3OSw4IEBAIGlib29s CiBkaWN0X2luZGV4X2NoZWNrX3NlYXJjaF90dXBsZSgKIC8qPT09PT09PT09PT09PT09PT09PT09 PT09PT0qLwogCWNvbnN0IGRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4IHRyZWUg Ki8KLQljb25zdCBkdHVwbGVfdCoJCXR1cGxlKTsJLyohPCBpbjogdHVwbGUgdXNlZCBpbiBhIHNl YXJjaCAqLworCWNvbnN0IGR0dXBsZV90KgkJdHVwbGUpCS8qITwgaW46IHR1cGxlIHVzZWQgaW4g YSBzZWFyY2ggKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQp KTsKIC8qKiBXaGV0aGVyIGFuZCB3aGVuIHRvIGFsbG93IHRlbXBvcmFyeSBpbmRleCBuYW1lcyAq LwogZW51bSBjaGVja19uYW1lIHsKIAkvKiogUmVxdWlyZSBhbGwgaW5kZXhlcyB0byBiZSBjb21w bGV0ZS4gKi8KQEAgLTExMzcsOCArMTIxNiw5IEBAIGRpY3RfaW5kZXhfYnVpbGRfbm9kZV9wdHIo CiAJCQkJCXBvaW50ZXIgKi8KIAltZW1faGVhcF90KgkJaGVhcCwJLyohPCBpbjogbWVtb3J5IGhl YXAgd2hlcmUgcG9pbnRlcgogCQkJCQljcmVhdGVkICovCi0JdWxpbnQJCQlsZXZlbCk7CS8qITwg aW46IGxldmVsIG9mIHJlYyBpbiB0cmVlOgorCXVsaW50CQkJbGV2ZWwpCS8qITwgaW46IGxldmVs IG9mIHJlYyBpbiB0cmVlOgogCQkJCQkwIG1lYW5zIGxlYWYgbGV2ZWwgKi8KKwlfX2F0dHJpYnV0 ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgog Q29waWVzIGFuIGluaXRpYWwgc2VnbWVudCBvZiBhIHBoeXNpY2FsIHJlY29yZCwgbG9uZyBlbm91 Z2ggdG8gc3BlY2lmeSBhbgogaW5kZXggZW50cnkgdW5pcXVlbHkuCkBAIC0xMTUzLDcgKzEyMzMs OCBAQCBkaWN0X2luZGV4X2NvcHlfcmVjX29yZGVyX3ByZWZpeCgKIAl1bGludCoJCQluX2ZpZWxk cywvKiE8IG91dDogbnVtYmVyIG9mIGZpZWxkcyBjb3BpZWQgKi8KIAlieXRlKioJCQlidWYsCS8q ITwgaW4vb3V0OiBtZW1vcnkgYnVmZmVyIGZvciB0aGUKIAkJCQkJY29waWVkIHByZWZpeCwgb3Ig TlVMTCAqLwotCXVsaW50KgkJCWJ1Zl9zaXplKTsvKiE8IGluL291dDogYnVmZmVyIHNpemUgKi8K Kwl1bGludCoJCQlidWZfc2l6ZSkvKiE8IGluL291dDogYnVmZmVyIHNpemUgKi8KKwlfX2F0dHJp YnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8q KgogQnVpbGRzIGEgdHlwZWQgZGF0YSB0dXBsZSBvdXQgb2YgYSBwaHlzaWNhbCByZWNvcmQuCiBA cmV0dXJuCW93bjogZGF0YSB0dXBsZSAqLwpAQCAtMTE2NCw3ICsxMjQ1LDggQEAgZGljdF9pbmRl eF9idWlsZF9kYXRhX3R1cGxlKAogCWRpY3RfaW5kZXhfdCoJaW5kZXgsCS8qITwgaW46IGluZGV4 ICovCiAJcmVjX3QqCQlyZWMsCS8qITwgaW46IHJlY29yZCBmb3Igd2hpY2ggdG8gYnVpbGQgZGF0 YSB0dXBsZSAqLwogCXVsaW50CQluX2ZpZWxkcywvKiE8IGluOiBudW1iZXIgb2YgZGF0YSBmaWVs ZHMgKi8KLQltZW1faGVhcF90KgloZWFwKTsJLyohPCBpbjogbWVtb3J5IGhlYXAgd2hlcmUgdHVw bGUgY3JlYXRlZCAqLworCW1lbV9oZWFwX3QqCWhlYXApCS8qITwgaW46IG1lbW9yeSBoZWFwIHdo ZXJlIHR1cGxlIGNyZWF0ZWQgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNl ZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXRzIHRoZSBzcGFjZSBpZCBvZiB0aGUg cm9vdCBvZiB0aGUgaW5kZXggdHJlZS4KIEByZXR1cm4Jc3BhY2UgaWQgKi8KQEAgLTExNzIsNyAr MTI1NCw4IEBAIFVOSVZfSU5MSU5FCiB1bGludAogZGljdF9pbmRleF9nZXRfc3BhY2UoCiAvKj09 PT09PT09PT09PT09PT09Ki8KLQljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KTsJLyohPCBpbjog aW5kZXggKi8KKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGluOiBpbmRleCAqLwor CV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkpOwogLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8vKioKIFNldHMgdGhlIHNwYWNlIGlkIG9mIHRoZSByb290IG9mIHRoZSBpbmRleCB0cmVl LiAqLwogVU5JVl9JTkxJTkUKQEAgLTExODAsNyArMTI2Myw4IEBAIHZvaWQKIGRpY3RfaW5kZXhf c2V0X3NwYWNlKAogLyo9PT09PT09PT09PT09PT09PSovCiAJZGljdF9pbmRleF90KglpbmRleCwJ LyohPCBpbi9vdXQ6IGluZGV4ICovCi0JdWxpbnQJCXNwYWNlKTsJLyohPCBpbjogc3BhY2UgaWQg Ki8KKwl1bGludAkJc3BhY2UpCS8qITwgaW46IHNwYWNlIGlkICovCisJX19hdHRyaWJ1dGVfXygo bm9ubnVsbCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIEdldHMgdGhlIHBhZ2UgbnVtYmVyIG9mIHRo ZSByb290IG9mIHRoZSBpbmRleCB0cmVlLgogQHJldHVybglwYWdlIG51bWJlciAqLwpAQCAtMTE4 OCw3ICsxMjcyLDggQEAgVU5JVl9JTkxJTkUKIHVsaW50CiBkaWN0X2luZGV4X2dldF9wYWdlKAog Lyo9PT09PT09PT09PT09PT09Ki8KLQljb25zdCBkaWN0X2luZGV4X3QqCXRyZWUpOwkvKiE8IGlu OiBpbmRleCAqLworCWNvbnN0IGRpY3RfaW5kZXhfdCoJdHJlZSkJLyohPCBpbjogaW5kZXggKi8K KwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovLyoqCiBHZXRzIHRoZSByZWFkLXdyaXRlIGxvY2sgb2YgdGhlIGluZGV4IHRyZWUuCiBA cmV0dXJuCXJlYWQtd3JpdGUgbG9jayAqLwpAQCAtMTE5Niw3ICsxMjgxLDggQEAgVU5JVl9JTkxJ TkUKIHJ3X2xvY2tfdCoKIGRpY3RfaW5kZXhfZ2V0X2xvY2soCiAvKj09PT09PT09PT09PT09PT0q LwotCWRpY3RfaW5kZXhfdCoJaW5kZXgpOwkvKiE8IGluOiBpbmRleCAqLworCWRpY3RfaW5kZXhf dCoJaW5kZXgpCS8qITwgaW46IGluZGV4ICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fy bl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBSZXR1cm5zIGZyZWUgc3BhY2Ug cmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1cGRhdGVzIG9mIHJlY29yZHMuIFRoaXMgaXMKIHJlbGV2YW50 IG9ubHkgaW4gdGhlIGNhc2Ugb2YgbWFueSBjb25zZWN1dGl2ZSBpbnNlcnRzLCBhcyB1cGRhdGVz CkBAIC0xMjM3LDcgKzEzMjMsNiBAQCBkaWN0X2luZGV4X2lzX29ubGluZV9kZGwoCiAvKj09PT09 PT09PT09PT09PT09PT09PSovCiAJY29uc3QgZGljdF9pbmRleF90KglpbmRleCkJLyohPCBpbjog aW5kZXggKi8KIAlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsK LQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8vKioKIExvZ3MgYW4gb3BlcmF0aW9uIHRvIGEgc2Vjb25kYXJ5IGlu ZGV4IHRoYXQgaXMgYmVpbmcgY3JlYXRlZC4gKi8KIFVOSVZfSU5URVJOCkBAIC0xMjY4LDcgKzEz NTMsOCBAQCBVTklWX0lOVEVSTgogdWxpbnQKIGRpY3RfaW5kZXhfY2FsY19taW5fcmVjX2xlbigK IC8qPT09PT09PT09PT09PT09PT09PT09PT09Ki8KLQljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4 KTsJLyohPCBpbjogaW5kZXggKi8KKwljb25zdCBkaWN0X2luZGV4X3QqCWluZGV4KQkvKiE8IGlu OiBpbmRleCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkp OwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogUmVzZXJ2ZXMgdGhlIGRpY3Rpb25hcnkgc3lzdGVtIG11dGV4 IGZvciBNeVNRTC4gKi8KIFVOSVZfSU5URVJOCkBAIC0xMjkwLDggKzEzNzYsOSBAQCB2b2lkCiBk aWN0X3RhYmxlX3N0YXRzX2xvY2soCiAvKj09PT09PT09PT09PT09PT09PSovCiAJY29uc3QgZGlj dF90YWJsZV90Kgl0YWJsZSwJCS8qITwgaW46IHRhYmxlICovCi0JdWxpbnQJCQlsYXRjaF9tb2Rl KTsJLyohPCBpbjogUldfU19MQVRDSCBvcgorCXVsaW50CQkJbGF0Y2hfbW9kZSkJLyohPCBpbjog UldfU19MQVRDSCBvcgogCQkJCQkJUldfWF9MQVRDSCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51 bGwpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLy8qKgogVW5sb2NrIHRoZSBsYXRjaCB0aGF0IGhhcyBiZWVu IGxvY2tlZCBieSBkaWN0X3RhYmxlX3N0YXRzX2xvY2soKSAqLwogVU5JVl9JTlRFUk4KQEAgLTEy OTksOCArMTM4Niw5IEBAIHZvaWQKIGRpY3RfdGFibGVfc3RhdHNfdW5sb2NrKAogLyo9PT09PT09 PT09PT09PT09PT09PSovCiAJY29uc3QgZGljdF90YWJsZV90Kgl0YWJsZSwJCS8qITwgaW46IHRh YmxlICovCi0JdWxpbnQJCQlsYXRjaF9tb2RlKTsJLyohPCBpbjogUldfU19MQVRDSCBvcgorCXVs aW50CQkJbGF0Y2hfbW9kZSkJLyohPCBpbjogUldfU19MQVRDSCBvcgogCQkJCQkJUldfWF9MQVRD SCAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vKioKIENoZWNr cyBpZiB0aGUgZGF0YWJhc2UgbmFtZSBpbiB0d28gdGFibGUgbmFtZXMgaXMgdGhlIHNhbWUuCiBA cmV0dXJuCVRSVUUgaWYgc2FtZSBkYiBuYW1lICovCkBAIC0xMzEwLDggKzEzOTgsOSBAQCBkaWN0 X3RhYmxlc19oYXZlX3NhbWVfZGIoCiAvKj09PT09PT09PT09PT09PT09PT09PSovCiAJY29uc3Qg Y2hhcioJbmFtZTEsCS8qITwgaW46IHRhYmxlIG5hbWUgaW4gdGhlIGZvcm0KIAkJCQlkYm5hbWUg Jy8nIHRhYmxlbmFtZSAqLwotCWNvbnN0IGNoYXIqCW5hbWUyKTsJLyohPCBpbjogdGFibGUgbmFt ZSBpbiB0aGUgZm9ybQorCWNvbnN0IGNoYXIqCW5hbWUyKQkvKiE8IGluOiB0YWJsZSBuYW1lIGlu IHRoZSBmb3JtCiAJCQkJZGJuYW1lICcvJyB0YWJsZW5hbWUgKi8KKwlfX2F0dHJpYnV0ZV9fKChu b25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBSZW1vdmVz IGFuIGluZGV4IGZyb20gdGhlIGNhY2hlICovCiBVTklWX0lOVEVSTgpAQCAtMTMxOSw3ICsxNDA4 LDggQEAgdm9pZAogZGljdF9pbmRleF9yZW1vdmVfZnJvbV9jYWNoZSgKIC8qPT09PT09PT09PT09 PT09PT09PT09PT09PSovCiAJZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBpbi9vdXQ6IHRhYmxl ICovCi0JZGljdF9pbmRleF90KglpbmRleCk7CS8qITwgaW4sIG93bjogaW5kZXggKi8KKwlkaWN0 X2luZGV4X3QqCWluZGV4KQkvKiE8IGluLCBvd246IGluZGV4ICovCisJX19hdHRyaWJ1dGVfXygo bm9ubnVsbCkpOwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCiBHZXQgaW5kZXggYnkgbmFtZQogQHJldHVy bglpbmRleCwgTlVMTCBpZiBkb2VzIG5vdCBleGlzdCAqLwpAQCAtMTMyOCw3ICsxNDE4LDggQEAg ZGljdF9pbmRleF90KgogZGljdF90YWJsZV9nZXRfaW5kZXhfb25fbmFtZSgKIC8qPT09PT09PT09 PT09PT09PT09PT09PT09PSovCiAJZGljdF90YWJsZV90Kgl0YWJsZSwJLyohPCBpbjogdGFibGUg Ki8KLQljb25zdCBjaGFyKgluYW1lKTsJLyohPCBpbjogbmFtZSBvZiB0aGUgaW5kZXggdG8gZmlu ZCAqLworCWNvbnN0IGNoYXIqCW5hbWUpCS8qITwgaW46IG5hbWUgb2YgdGhlIGluZGV4IHRvIGZp bmQgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsLCB3YXJuX3VudXNlZF9yZXN1bHQpKTsKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLy8qKgogSW4gY2FzZSB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGluZGV4IHdp dGggdGhlIHNhbWUgbmFtZSByZXR1cm4gdGhlIGluZGV4CiB3aXRoIHRoZSBtaW4oaWQpLgpAQCAt MTMzOCw3ICsxNDI5LDggQEAgZGljdF9pbmRleF90KgogZGljdF90YWJsZV9nZXRfaW5kZXhfb25f bmFtZV9hbmRfbWluX2lkKAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0q LwogCWRpY3RfdGFibGVfdCoJdGFibGUsCS8qITwgaW46IHRhYmxlICovCi0JY29uc3QgY2hhcioJ bmFtZSk7CS8qITwgaW46IG5hbWUgb2YgdGhlIGluZGV4IHRvIGZpbmQgKi8KKwljb25zdCBjaGFy KgluYW1lKQkvKiE8IGluOiBuYW1lIG9mIHRoZSBpbmRleCB0byBmaW5kICovCisJX19hdHRyaWJ1 dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVzdWx0KSk7CiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiBDaGVjayB3aGV0 aGVyIGEgY29sdW1uIGV4aXN0cyBpbiBhbiBGVFMgaW5kZXguICovCiBVTklWX0lOTElORQpAQCAt MTM0OCwyOCArMTQ0MCwzMiBAQCBkaWN0X3RhYmxlX2lzX2Z0c19jb2x1bW4oCiAJCQkJLyogb3V0 OiBVTElOVF9VTkRFRklORUQgaWYgbm8gbWF0Y2ggZWxzZQogCQkJCXRoZSBvZmZzZXQgd2l0aGlu IHRoZSB2ZWN0b3IgKi8KIAlpYl92ZWN0b3JfdCoJaW5kZXhlcywvKiBpbjogdmVjdG9yIGNvbnRh aW5pbmcgb25seSBGVFMgaW5kZXhlcyAqLwotCXVsaW50CQljb2xfbm8pOy8qIGluOiBjb2wgbnVt YmVyIHRvIHNlYXJjaCBmb3IgKi8KKwl1bGludAkJY29sX25vKQkvKiBpbjogY29sIG51bWJlciB0 byBzZWFyY2ggZm9yICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCwgd2Fybl91bnVzZWRfcmVz dWx0KSk7CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8vKioKIE1vdmUgYSB0YWJsZSB0byB0aGUgbm9uIExSVSBl bmQgb2YgdGhlIExSVSBsaXN0LiAqLwogVU5JVl9JTlRFUk4KIHZvaWQKIGRpY3RfdGFibGVfbW92 ZV9mcm9tX2xydV90b19ub25fbHJ1KAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSovCi0JZGljdF90YWJsZV90Kgl0YWJsZSk7CS8qITwgaW46IHRhYmxlIHRvIG1vdmUgZnJvbSBM UlUgdG8gbm9uLUxSVSAqLworCWRpY3RfdGFibGVfdCoJdGFibGUpCS8qITwgaW46IHRhYmxlIHRv IG1vdmUgZnJvbSBMUlUgdG8gbm9uLUxSVSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwpKTsK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLy8qKgogTW92ZSBhIHRhYmxlIHRvIHRoZSBMUlUgbGlzdCBmcm9tIHRo ZSBub24tTFJVIGxpc3QuICovCiBVTklWX0lOVEVSTgogdm9pZAogZGljdF90YWJsZV9tb3ZlX2Zy b21fbm9uX2xydV90b19scnUoCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8K LQlkaWN0X3RhYmxlX3QqCXRhYmxlKTsJLyohPCBpbjogdGFibGUgdG8gbW92ZSBmcm9tIG5vbi1M UlUgdG8gTFJVICovCisJZGljdF90YWJsZV90Kgl0YWJsZSkJLyohPCBpbjogdGFibGUgdG8gbW92 ZSBmcm9tIG5vbi1MUlUgdG8gTFJVICovCisJX19hdHRyaWJ1dGVfXygobm9ubnVsbCkpOwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovLyoqCiBNb3ZlIHRvIHRoZSBtb3N0IHJlY2VudGx5IHVzZWQgc2VnbWVudCBv ZiB0aGUgTFJVIGxpc3QuICovCiBVTklWX0lOVEVSTgogdm9pZAogZGljdF9tb3ZlX3RvX21ydSgK IC8qPT09PT09PT09PT09PSovCi0JZGljdF90YWJsZV90Kgl0YWJsZSk7CS8qITwgaW46IHRhYmxl IHRvIG1vdmUgdG8gTVJVICovCisJZGljdF90YWJsZV90Kgl0YWJsZSkJLyohPCBpbjogdGFibGUg dG8gbW92ZSB0byBNUlUgKi8KKwlfX2F0dHJpYnV0ZV9fKChub25udWxsKSk7CiAvKiBCdWZmZXJz IGZvciBzdG9yaW5nIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsYXRlc3QgZm9yZWln biBrZXkKIGFuZCB1bmlxdWUga2V5IGVycm9ycyAqLwogZXh0ZXJuIEZJTEUqCWRpY3RfZm9yZWln bl9lcnJfZmlsZTsKQEAgLTE0NzYsNyArMTU3Miw4IEBAIGRpY3RfdGFibGVfc2NoZW1hX2NoZWNr KAogCQkJCQkJbWVzc2FnZSBpZiAhPSBEQl9TVUNDRVNTIGFuZAogCQkJCQkJIT0gREJfVEFCTEVf Tk9UX0ZPVU5EIGlzCiAJCQkJCQlyZXR1cm5lZCAqLwotCXNpemVfdAkJCWVycnN0cl9zeik7CS8q ITwgaW46IGVycnN0ciBzaXplICovCisJc2l6ZV90CQkJZXJyc3RyX3N6KQkvKiE8IGluOiBlcnJz dHIgc2l6ZSAqLworCV9fYXR0cmlidXRlX18oKG5vbm51bGwsIHdhcm5fdW51c2VkX3Jlc3VsdCkp OwogLyogQH0gKi8KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovLyoqCkBAIC0xNTI1LDcgKzE2MjIsOCBAQCB2 b2lkCiBkaWN0X3NldF9jb3JydXB0ZWRfaW5kZXhfY2FjaGVfb25seSgKIC8qPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0qLwogCWRpY3RfaW5kZXhfdCoJaW5kZXgsCQkvKiE8IGluL291 dDogaW5kZXggKi8KLQlkaWN0X3RhYmxlX3QqCXRhYmxlKTsJCS8qITwgaW4vb3V0OiB0YWJsZSAq LworCWRpY3RfdGFibGVfdCoJdGFibGUpCQkvKiE8IGluL291dDogdGFibGUgKi8KKwlfX2F0dHJp YnV0ZV9fKChub25udWxsKSk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy8qKgogRmxhZ3MgYSB0YWJsZSB3 aXRoIHNwZWNpZmllZCBzcGFjZV9pZCBjb3JydXB0ZWQgaW4gdGhlIHRhYmxlIGRpY3Rpb25hcnkK Ck5vIGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku