From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Matthias Clasen To: git-commits@fedoraproject.org Subject: [rpms/glib2] cve-2026-58016-f44: Update pcre to 7.6 Date: Tue, 11 Aug 2026 10:33:39 GMT Message-ID: <178644441968.1.13096000359272623674.rpms-glib2-3c7b54fc8ba9@fedoraproject.org> List-ID: X-Git-Repo: rpms/glib2 X-Git-Branch: cve-2026-58016-f44 X-Git-Rev: 3c7b54fc8ba9ed62c99cf2f72d3db20b8bce99c3 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xpYjIKQnJhbmNo IDogY3ZlLTIwMjYtNTgwMTYtZjQ0CkNvbW1pdCA6IDNjN2I1NGZjOGJhOWVkNjJjOTljZjJmNzJk M2RiMjBiOGJjZTk5YzMKQXV0aG9yIDogTWF0dGhpYXMgQ2xhc2VuIDxtY2xhc2VuQGZlZG9yYXBy b2plY3Qub3JnPgpEYXRlICAgOiAyMDA4LTAyLTA3VDE0OjM1OjQ1KzAwOjAwClN0YXRzICA6ICs4 OTkvLTEgaW4gMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3Jn L3JwbXMvZ2xpYjIvYy8zYzdiNTRmYzhiYTllZDYyYzk5Y2YyZjcyZDNkYjIwYjhiY2U5OWMzP2Jy YW5jaD1jdmUtMjAyNi01ODAxNi1mNDQKCkxvZzoKVXBkYXRlIHBjcmUgdG8gNy42CgotLS0KZGlm ZiAtLWdpdCBhL2dsaWIyLnNwZWMgYi9nbGliMi5zcGVjCmluZGV4IGZmZjM4YTEuLjI4YjlkMWYg MTAwNjQ0Ci0tLSBhL2dsaWIyLnNwZWMKKysrIGIvZ2xpYjIuc3BlYwpAQCAtMyw3ICszLDcgQEAK IFN1bW1hcnk6IEEgbGlicmFyeSBvZiBoYW5keSB1dGlsaXR5IGZ1bmN0aW9ucwogTmFtZTogZ2xp YjIKIFZlcnNpb246IDIuMTUuNAotUmVsZWFzZTogMSV7P2Rpc3R9CitSZWxlYXNlOiAyJXs/ZGlz dH0KIExpY2Vuc2U6IExHUEx2MisKIEdyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVz CiBVUkw6IGh0dHA6Ly93d3cuZ3RrLm9yZwpAQCAtMTIzLDYgKzEyMyw5IEBAIHJtIC1yZiAkUlBN X0JVSUxEX1JPT1QKICV7X2xpYmRpcn0vbGliKi5hCiAKICVjaGFuZ2Vsb2cKKyogVGh1IEZlYiAg NyAyMDA4IE1hdHRoaWFzIENsYXNlbiA8bWNsYXNlbkByZWRoYXQuY29tPiAtIDIuMTUuNC0yCist IFVwZGF0ZSBQQ1JFIHRvIDcuNgorCiAqIE1vbiBKYW4gMjggMjAwOCBNYXR0aGlhcyBDbGFzZW4g PG1jbGFzZW5AcmVkaGF0LmNvbT4gLSAyLjE1LjQtMQogLSBVcGRhdGUgdG8gMi4xNS40CiAKCmRp ZmYgLS1naXQgYS9wY3JlNzYucGF0Y2ggYi9wY3JlNzYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uOTBkNjJiOAotLS0gL2Rldi9udWxsCisrKyBiL3BjcmU3Ni5wYXRj aApAQCAtMCwwICsxLDg5NSBAQAorZGlmZiAtdXAgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVf Z2V0LmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2V0LmMKKy0tLSBnbGli LTIuMTUuNC9nbGliL3BjcmUvcGNyZV9nZXQuYy5wcmNlLTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5 LjAwMDAwMDAwMCAtMDUwMAorKysrIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2dldC5jCTIw MDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNiw3ICs2LDcgQEAKKyBhbmQg c2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1 IGxhbmd1YWdlLgorIAorICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAg SGF6ZWwKKy0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2Yg Q2FtYnJpZGdlCisrICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5 IG9mIENhbWJyaWRnZQorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CitkaWZm IC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV92YWxpZF91dGY4LmMucHJjZS03LjYgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfdmFsaWRfdXRmOC5jCitkaWZmIC11cCBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV90YWJsZXMuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUv cGNyZV90YWJsZXMuYworLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3RhYmxlcy5jLnBy Y2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1 LjQvZ2xpYi9wY3JlL3BjcmVfdGFibGVzLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAg LTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBv c3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisgCisgICAgICAgICAgICAg ICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAgICAgICAgQ29weXJpZ2h0 IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysgICAgICAgICAgIENvcHly aWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisgCisgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2RpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9w Y3JlX21ha2V0YWJsZXMuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9tYWtl dGFibGVzLmMKKy0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9tYWtldGFibGVzLmMucHJj ZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKKysrKyBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV9tYWtldGFibGVzLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAw MDAgLTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFz IHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisgCisgICAgICAgICAg ICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAgICAgICAgQ29weXJp Z2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysgICAgICAgICAgIENv cHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisgCisgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2RpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNy ZS9wY3JlX3N0dWR5LmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfc3R1ZHku YworLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3N0dWR5LmMucHJjZS03LjYJMjAwOC0w Mi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKKysrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUv cGNyZV9zdHVkeS5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNiw3 ICs2LDcgQEAKKyBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9z ZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgorIAorICAgICAgICAgICAgICAgICAgICAgICAgV3Jp dHRlbiBieSBQaGlsaXAgSGF6ZWwKKy0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3 IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisrICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTct MjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv ciB3aXRob3V0CitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvdWNwaW50ZXJuYWwuaC5w cmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvdWNwaW50ZXJuYWwuaAorZGlmZiAtdXAgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZGZhX2V4ZWMuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9n bGliL3BjcmUvcGNyZV9kZmFfZXhlYy5jCistLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVf ZGZhX2V4ZWMuYy5wcmNlLTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUwMAor KysrIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2RmYV9leGVjLmMJMjAwOC0wMi0wNyAwOToz Mjo0Ni4wMDAwMDAwMDAgLTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJl IGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisg CisgICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAg ICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysg ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl CisgCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2RpZmYgLXVwIGdsaWItMi4x NS40L2dsaWIvcGNyZS9wY3JlX2NvbXBpbGUuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3Bj cmUvcGNyZV9jb21waWxlLmMKKy0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jb21waWxl LmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKKysrKyBnbGli LTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jb21waWxlLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAw MDAwMDAgLTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3Nl IGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisgCisgICAgICAg ICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAgICAgICAgQ29w eXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysgICAgICAgICAg IENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisgCisgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK0BAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGlj IGNvbnN0IGNoYXIgZXJyb3JfdGV4dHNbXSA9CisgICAvKiAxMCAqLworICAgIm9wZXJhbmQgb2Yg dW5saW1pdGVkIHJlcGVhdCBjb3VsZCBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nXDAiICAvKiogREVB RCAqKi8KKyAgICJpbnRlcm5hbCBlcnJvcjogdW5leHBlY3RlZCByZXBlYXRcMCIKKy0gICJ1bnJl Y29nbml6ZWQgY2hhcmFjdGVyIGFmdGVyICg/XDAiCisrICAidW5yZWNvZ25pemVkIGNoYXJhY3Rl ciBhZnRlciAoPyBvciAoPy1cMCIKKyAgICJQT1NJWCBuYW1lZCBjbGFzc2VzIGFyZSBzdXBwb3J0 ZWQgb25seSB3aXRoaW4gYSBjbGFzc1wwIgorICAgIm1pc3NpbmcgKVwwIgorICAgLyogMTUgKi8K K0BAIC0zMDAsNyArMzAwLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JfdGV4dHNbXSA9Cisg ICAiKCpWRVJCKSB3aXRoIGFuIGFyZ3VtZW50IGlzIG5vdCBzdXBwb3J0ZWRcMCIKKyAgIC8qIDYw ICovCisgICAiKCpWRVJCKSBub3QgcmVjb2duaXplZFwwIgorLSAgIm51bWJlciBpcyB0b28gYmln IjsKKysgICJudW1iZXIgaXMgdG9vIGJpZ1wwIgorKyAgInN1YnBhdHRlcm4gbmFtZSBleHBlY3Rl ZFwwIgorKyAgImRpZ2l0IGV4cGVjdGVkIGFmdGVyICg/KyI7CisgCisgCisgLyogRGVmaW5pdGlv biB0byBhbGxvdyBtdXR1YWwgcmVjdXJzaW9uICovCitAQCAtMzcyLDE5ICszNzQsMTMgQEAgcHRy LS07ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNldAorIAorIGlmIChjID09IDApICpl cnJvcmNvZGVwdHIgPSBFUlIxOworIAorLS8qIE5vbi1hbHBoYW1lcmljcyBhcmUgbGl0ZXJhbHMu IEZvciBkaWdpdHMgb3IgbGV0dGVycywgZG8gYW4gaW5pdGlhbCBsb29rdXAgaW4KKy1hIHRhYmxl LiBBIG5vbi16ZXJvIHJlc3VsdCBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW1t ZWRpYXRlbHkuCisrLyogTm9uLWFscGhhbnVtZXJpY3MgYXJlIGxpdGVyYWxzLiBGb3IgZGlnaXRz IG9yIGxldHRlcnMsIGRvIGFuIGluaXRpYWwgbG9va3VwCisraW4gYSB0YWJsZS4gQSBub24temVy byByZXN1bHQgaXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0ZWx5Lgor IE90aGVyd2lzZSBmdXJ0aGVyIHByb2Nlc3NpbmcgbWF5IGJlIHJlcXVpcmVkLiAqLworIAorLSNp Zm5kZWYgRUJDRElDICAvKiBBU0NJSSBjb2RpbmcgKi8KKy1lbHNlIGlmIChjIDwgJzAnIHx8IGMg PiAneicpIHt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTm90IGFscGhhbWVyaWMgKi8K KytlbHNlIGlmIChjIDwgJzAnIHx8IGMgPiAneicpIHt9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogTm90IGFscGhhbnVtZXJpYyAqLworIGVsc2UgaWYgKChpID0gZXNjYXBlc1tjIC0gJzAn XSkgIT0gMCkgYyA9IGk7CisgCistI2Vsc2UgICAgICAgICAgIC8qIEVCQ0RJQyBjb2RpbmcgKi8K Ky1lbHNlIGlmIChjIDwgJ2EnIHx8IChlYmNkaWNfY2hhcnRhYltjXSAmIDB4MEUpID09IDApIHt9 ICAgLyogTm90IGFscGhhbWVyaWMgKi8KKy1lbHNlIGlmICgoaSA9IGVzY2FwZXNbYyAtIDB4NDhd KSAhPSAwKSAgYyA9IGk7CistI2VuZGlmCistCisgLyogRXNjYXBlcyB0aGF0IG5lZWQgZnVydGhl ciBwcm9jZXNzaW5nLCBvciBhcmUgaWxsZWdhbC4gKi8KKyAKKyBlbHNlCitAQCAtNTk4LDEwICs1 OTQsMTAgQEAgZWxzZQorICAgICBicmVhazsKKyAKKyAgICAgLyogUENSRV9FWFRSQSBlbmFibGVz IGV4dGVuc2lvbnMgdG8gUGVybCBpbiB0aGUgbWF0dGVyIG9mIGVzY2FwZXMuIEFueQorLSAgICBv dGhlciBhbHBoYW1lcmljIGZvbGxvd2luZyBcIGlzIGFuIGVycm9yIGlmIFBDUkVfRVhUUkEgd2Fz IHNldDsgb3RoZXJ3aXNlLAorLSAgICBmb3IgUGVybCBjb21wYXRpYmlsaXR5LCBpdCBpcyBhIGxp dGVyYWwuIFRoaXMgY29kZSBsb29rcyBhIGJpdCBvZGQsIGJ1dAorLSAgICB0aGVyZSB1c2VkIHRv IGJlIHNvbWUgY2FzZXMgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCwgYW5kIHRoZXJlIG1heSBiZSBh Z2FpbgorLSAgICBpbiBmdXR1cmUsIHNvIEkgaGF2ZW4ndCAib3B0aW1pemVkIiBpdC4gKi8KKysg ICAgb3RoZXIgYWxwaGFudW1lcmljIGZvbGxvd2luZyBcIGlzIGFuIGVycm9yIGlmIFBDUkVfRVhU UkEgd2FzIHNldDsKKysgICAgb3RoZXJ3aXNlLCBmb3IgUGVybCBjb21wYXRpYmlsaXR5LCBpdCBp cyBhIGxpdGVyYWwuIFRoaXMgY29kZSBsb29rcyBhIGJpdAorKyAgICBvZGQsIGJ1dCB0aGVyZSB1 c2VkIHRvIGJlIHNvbWUgY2FzZXMgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCwgYW5kIHRoZXJlIG1h eQorKyAgICBiZSBhZ2FpbiBpbiBmdXR1cmUsIHNvIEkgaGF2ZW4ndCAib3B0aW1pemVkIiBpdC4g Ki8KKyAKKyAgICAgZGVmYXVsdDoKKyAgICAgaWYgKChvcHRpb25zICYgUENSRV9FWFRSQSkgIT0g MCkgc3dpdGNoKGMpCitAQCAtMTM4Miw4ICsxMzc4LDkgQEAgZm9yICg7OykKKyBjYW4gbWF0Y2gg dGhlIGVtcHR5IHN0cmluZyBvciBub3QuIEl0IGlzIGNhbGxlZCBmcm9tIGNvdWxkX2JlX2VtcHR5 KCkKKyBiZWxvdyBhbmQgZnJvbSBjb21waWxlX2JyYW5jaCgpIHdoZW4gY2hlY2tpbmcgZm9yIGFu IHVubGltaXRlZCByZXBlYXQgb2YgYQorIGdyb3VwIHRoYXQgY2FuIG1hdGNoIG5vdGhpbmcuIE5v dGUgdGhhdCBmaXJzdF9zaWduaWZpY2FudF9jb2RlKCkgc2tpcHMgb3ZlcgorLWFzc2VydGlvbnMu IElmIHdlIGhpdCBhbiB1bmNsb3NlZCBicmFja2V0LCB3ZSByZXR1cm4gImVtcHR5IiAtIHRoaXMg bWVhbnMgd2UndmUKKy1zdHJ1Y2sgYW4gaW5uZXIgYnJhY2tldCB3aG9zZSBjdXJyZW50IGJyYW5j aCB3aWxsIGFscmVhZHkgaGF2ZSBiZWVuIHNjYW5uZWQuCisrYmFja3dhcmQgYW5kIG5lZ2F0aXZl IGZvcndhcmQgYXNzZXJ0aW9ucyB3aGVuIGl0cyBmaW5hbCBhcmd1bWVudCBpcyBUUlVFLiBJZiB3 ZQorK2hpdCBhbiB1bmNsb3NlZCBicmFja2V0LCB3ZSByZXR1cm4gImVtcHR5IiAtIHRoaXMgbWVh bnMgd2UndmUgc3RydWNrIGFuIGlubmVyCisrYnJhY2tldCB3aG9zZSBjdXJyZW50IGJyYW5jaCB3 aWxsIGFscmVhZHkgaGF2ZSBiZWVuIHNjYW5uZWQuCisgCisgQXJndW1lbnRzOgorICAgY29kZSAg ICAgICAgcG9pbnRzIHRvIHN0YXJ0IG9mIHNlYXJjaAorQEAgLTE0MDUsNiArMTQwMiwxNiBAQCBm b3IgKGNvZGUgPSBmaXJzdF9zaWduaWZpY2FudF9jb2RlKGNvZGUgCisgCisgICBjID0gKmNvZGU7 CisgCisrICAvKiBTa2lwIG92ZXIgZm9yd2FyZCBhc3NlcnRpb25zOyB0aGUgb3RoZXIgYXNzZXJ0 aW9ucyBhcmUgc2tpcHBlZCBieQorKyAgZmlyc3Rfc2lnbmlmaWNhbnRfY29kZSgpIHdpdGggYSBU UlVFIGZpbmFsIGFyZ3VtZW50LiAqLworKworKyAgaWYgKGMgPT0gT1BfQVNTRVJUKQorKyAgICB7 CisrICAgIGRvIGNvZGUgKz0gR0VUKGNvZGUsIDEpOyB3aGlsZSAoKmNvZGUgPT0gT1BfQUxUKTsK KysgICAgYyA9ICpjb2RlOworKyAgICBjb250aW51ZTsKKysgICAgfQorKworICAgLyogR3JvdXBz IHdpdGggemVybyByZXBlYXRzIGNhbiBvZiBjb3Vyc2UgYmUgZW1wdHk7IHNraXAgdGhlbS4gKi8K KyAKKyAgIGlmIChjID09IE9QX0JSQVpFUk8gfHwgYyA9PSBPUF9CUkFNSU5aRVJPKQorQEAgLTE2 MDAsMjkgKzE2MDcsNDggQEAgcmV0dXJuIFRSVUU7CisgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKyAKKyAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl ZCB3aGVuIHRoZSBzZXF1ZW5jZSAiWzoiIG9yICJbLiIgb3IgIls9IiBpcworLWVuY291bnRlcmVk IGluIGEgY2hhcmFjdGVyIGNsYXNzLiBJdCBjaGVja3Mgd2hldGhlciB0aGlzIGlzIGZvbGxvd2Vk IGJ5IGFuCistb3B0aW9uYWwgXiBhbmQgdGhlbiBhIHNlcXVlbmNlIG9mIGxldHRlcnMsIHRlcm1p bmF0ZWQgYnkgYSBtYXRjaGluZyAiOl0iIG9yCistIi5dIiBvciAiPV0iLgorK2VuY291bnRlcmVk IGluIGEgY2hhcmFjdGVyIGNsYXNzLiBJdCBjaGVja3Mgd2hldGhlciB0aGlzIGlzIGZvbGxvd2Vk IGJ5IGEKKytzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRlcm1pbmF0ZWQgYnkgYSBtYXRjaGluZyAi Ol0iIG9yICIuXSIgb3IgIj1dIi4gSWYgd2UKKytyZWFjaCBhbiB1bmVzY2FwZWQgJ10nIHdpdGhv dXQgdGhlIHNwZWNpYWwgcHJlY2VkaW5nIGNoYXJhY3RlciwgcmV0dXJuIEZBTFNFLgorKworK09y aWdpbmFsbHksIHRoaXMgZnVuY3Rpb24gb25seSByZWNvZ25pemVkIGEgc2VxdWVuY2Ugb2YgbGV0 dGVycyBiZXR3ZWVuIHRoZQorK3Rlcm1pbmF0b3JzLCBidXQgaXQgc2VlbXMgdGhhdCBQZXJsIHJl Y29nbml6ZXMgYW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsCisrdGhvdWdoIG9mIGNvdXJzZSB1 bmtub3duIFBPU0lYIG5hbWVzIGFyZSBzdWJzZXF1ZW50bHkgcmVqZWN0ZWQuIFBlcmwgZ2l2ZXMg YW4KKysiVW5rbm93biBQT1NJWCBjbGFzcyIgZXJyb3IgZm9yIFs6ZlxvbzpdIGZvciBleGFtcGxl LCB3aGVyZSBwcmV2aW91c2x5IFBDUkUKKytkaWRuJ3QgY29uc2lkZXIgdGhpcyB0byBiZSBhIFBP U0lYIGNsYXNzLiBMaWtld2lzZSBmb3IgWzoxMjM0Ol0uCisrCisrVGhlIHByb2JsZW0gaW4gdHJ5 aW5nIHRvIGJlIGV4YWN0bHkgbGlrZSBQZXJsIGlzIGluIHRoZSBoYW5kbGluZyBvZiBlc2NhcGVz LiBXZQorK2hhdmUgdG8gYmUgc3VyZSB0aGF0IFthYmNbOnhcXXBxcl0gaXMgKm5vdCogdHJlYXRl ZCBhcyBjb250YWluaW5nIGEgUE9TSVgKKytjbGFzcywgYnV0IFthYmNbOnhcXXBxcjpdXSBpcyAo c28gdGhhdCBhbiBlcnJvciBjYW4gYmUgZ2VuZXJhdGVkKS4gVGhlIGNvZGUKKytiZWxvdyBoYW5k bGVzIHRoZSBzcGVjaWFsIGNhc2Ugb2YgXF0sIGJ1dCBkb2VzIG5vdCB0cnkgdG8gZG8gYW55IG90 aGVyIGVzY2FwZQorK3Byb2Nlc3NpbmcuIFRoaXMgbWFrZXMgaXQgZGlmZmVyZW50IGZyb20gUGVy bCBmb3IgY2FzZXMgc3VjaCBhcyBbOmxcb3dlcjpdCisrd2hlcmUgUGVybCByZWNvZ25pemVzIGl0 IGFzIHRoZSBQT1NJWCBjbGFzcyAibG93ZXIiIGJ1dCBQQ1JFIGRvZXMgbm90IHJlY29nbml6ZQor KyJsXG93ZXIiLiBUaGlzIGlzIGEgbGVzc2VyIGV2aWwgdGhhdCBub3QgZGlhZ25vc2luZyBiYWQg Y2xhc3NlcyB3aGVuIFBlcmwgZG9lcywKKytJIHRoaW5rLgorIAorLUFyZ3VtZW50OgorK0FyZ3Vt ZW50czoKKyAgIHB0ciAgICAgIHBvaW50ZXIgdG8gdGhlIGluaXRpYWwgWworICAgZW5kcHRyICAg d2hlcmUgdG8gcmV0dXJuIHRoZSBlbmQgcG9pbnRlcgorLSAgY2QgICAgICAgcG9pbnRlciB0byBj b21waWxlIGRhdGEKKyAKKyBSZXR1cm5zOiAgIFRSVUUgb3IgRkFMU0UKKyAqLworIAorIHN0YXRp YyBCT09MCistY2hlY2tfcG9zaXhfc3ludGF4KGNvbnN0IHVzY2hhciAqcHRyLCBjb25zdCB1c2No YXIgKiplbmRwdHIsIGNvbXBpbGVfZGF0YSAqY2QpCisrY2hlY2tfcG9zaXhfc3ludGF4KGNvbnN0 IHVzY2hhciAqcHRyLCBjb25zdCB1c2NoYXIgKiplbmRwdHIpCisgeworIGludCB0ZXJtaW5hdG9y OyAgICAgICAgICAvKiBEb24ndCBjb21iaW5lIHRoZXNlIGxpbmVzOyB0aGUgU29sYXJpcyBjYyAq LworIHRlcm1pbmF0b3IgPSAqKCsrcHRyKTsgICAvKiBjb21waWxlciB3YXJucyBhYm91dCAibm9u LWNvbnN0YW50IiBpbml0aWFsaXplci4gKi8KKy1pZiAoKigrK3B0cikgPT0gJ14nKSBwdHIrKzsK Ky13aGlsZSAoKGNkLT5jdHlwZXNbKnB0cl0gJiBjdHlwZV9sZXR0ZXIpICE9IDApIHB0cisrOwor LWlmICgqcHRyID09IHRlcm1pbmF0b3IgJiYgcHRyWzFdID09ICddJykKKytmb3IgKCsrcHRyOyAq cHRyICE9IDA7IHB0cisrKQorICAgeworLSAgKmVuZHB0ciA9IHB0cjsKKy0gIHJldHVybiBUUlVF OworKyAgaWYgKCpwdHIgPT0gJ1xcJyAmJiBwdHJbMV0gPT0gJ10nKSBwdHIrKzsgZWxzZQorKyAg ICB7CisrICAgIGlmICgqcHRyID09ICddJykgcmV0dXJuIEZBTFNFOworKyAgICBpZiAoKnB0ciA9 PSB0ZXJtaW5hdG9yICYmIHB0clsxXSA9PSAnXScpCisrICAgICAgeworKyAgICAgICplbmRwdHIg PSBwdHI7CisrICAgICAgcmV0dXJuIFRSVUU7CisrICAgICAgfQorKyAgICB9CisgICB9CisgcmV0 dXJuIEZBTFNFOworIH0KK0BAIC0yMjIwLDYgKzIyNDYsNyBAQCB1c2NoYXIgY2xhc3NiaXRzWzMy XTsKKyBCT09MIGNsYXNzX3V0Zjg7CisgQk9PTCB1dGY4ID0gKG9wdGlvbnMgJiBQQ1JFX1VURjgp ICE9IDA7CisgdXNjaGFyICpjbGFzc191dGY4ZGF0YTsKKyt1c2NoYXIgKmNsYXNzX3V0ZjhkYXRh X2Jhc2U7CisgdXNjaGFyIHV0ZjhfY2hhcls2XTsKKyAjZWxzZQorIEJPT0wgdXRmOCA9IEZBTFNF OworQEAgLTIyNTksNiArMjI4Niw3IEBAIHJlcV9jYXNlb3B0ID0gKChvcHRpb25zICYgUENSRV9D QVNFTEVTUykKKyBmb3IgKDs7IHB0cisrKQorICAgeworICAgQk9PTCBuZWdhdGVfY2xhc3M7Cisr ICBCT09MIHNob3VsZF9mbGlwX25lZ2F0aW9uOworICAgQk9PTCBwb3NzZXNzaXZlX3F1YW50aWZp ZXI7CisgICBCT09MIGlzX3F1YW50aWZpZXI7CisgICBCT09MIGlzX3JlY3Vyc2U7CitAQCAtMjQ4 Miw3ICsyNTEwLDcgQEAgZm9yICg7OyBwdHIrKykKKyAgICAgdGhleSBhcmUgZW5jb3VudGVyZWQg YXQgdGhlIHRvcCBsZXZlbCwgc28gd2UnbGwgZG8gdGhhdCB0b28uICovCisgCisgICAgIGlmICgo cHRyWzFdID09ICc6JyB8fCBwdHJbMV0gPT0gJy4nIHx8IHB0clsxXSA9PSAnPScpICYmCistICAg ICAgICBjaGVja19wb3NpeF9zeW50YXgocHRyLCAmdGVtcHB0ciwgY2QpKQorKyAgICAgICAgY2hl Y2tfcG9zaXhfc3ludGF4KHB0ciwgJnRlbXBwdHIpKQorICAgICAgIHsKKyAgICAgICAqZXJyb3Jj b2RlcHRyID0gKHB0clsxXSA9PSAnOicpPyBFUlIxMyA6IEVSUjMxOworICAgICAgIGdvdG8gRkFJ TEVEOworQEAgLTI1MDcsNiArMjUzNSwxMiBAQCBmb3IgKDs7IHB0cisrKQorICAgICAgIGVsc2Ug YnJlYWs7CisgICAgICAgfQorIAorKyAgICAvKiBJZiBhIGNsYXNzIGNvbnRhaW5zIGEgbmVnYXRp dmUgc3BlY2lhbCBzdWNoIGFzIFxTLCB3ZSBuZWVkIHRvIGZsaXAgdGhlCisrICAgIG5lZ2F0aW9u IGZsYWcgYXQgdGhlIGVuZCwgc28gdGhhdCBzdXBwb3J0IGZvciBjaGFyYWN0ZXJzID4gMjU1IHdv cmtzCisrICAgIGNvcnJlY3RseSAodGhleSBhcmUgYWxsIGluY2x1ZGVkIGluIHRoZSBjbGFzcyku ICovCisrCisrICAgIHNob3VsZF9mbGlwX25lZ2F0aW9uID0gRkFMU0U7CisrCisgICAgIC8qIEtl ZXAgYSBjb3VudCBvZiBjaGFycyB3aXRoIHZhbHVlcyA8IDI1NiBzbyB0aGF0IHdlIGNhbiBvcHRp bWl6ZSB0aGUgY2FzZQorICAgICBvZiBqdXN0IGEgc2luZ2xlIGNoYXJhY3RlciAoYXMgbG9uZyBh cyBpdCdzIDwgMjU2KS4gSG93ZXZlciwgRm9yIGhpZ2hlcgorICAgICB2YWx1ZWQgVVRGLTggY2hh cmFjdGVycywgd2UgZG9uJ3QgeWV0IGRvIGFueSBvcHRpbWl6YXRpb24uICovCitAQCAtMjUyNCw2 ICsyNTU4LDcgQEAgZm9yICg7OyBwdHIrKykKKyAjaWZkZWYgU1VQUE9SVF9VVEY4CisgICAgIGNs YXNzX3V0ZjggPSBGQUxTRTsgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vIGNoYXJzID49IDI1 NiAqLworICAgICBjbGFzc191dGY4ZGF0YSA9IGNvZGUgKyBMSU5LX1NJWkUgKyAyOyAgICAvKiBG b3IgVVRGLTggaXRlbXMgKi8KKysgICAgY2xhc3NfdXRmOGRhdGFfYmFzZSA9IGNsYXNzX3V0Zjhk YXRhOyAgICAgLyogRm9yIHJlc2V0dGluZyBpbiBwYXNzIDEgKi8KKyAjZW5kaWYKKyAKKyAgICAg LyogUHJvY2VzcyBjaGFyYWN0ZXJzIHVudGlsIF0gaXMgcmVhY2hlZC4gQnkgd3JpdGluZyB0aGlz IGFzIGEgImRvIiBpdAorQEAgLTI1MzksNiArMjU3NCwxOCBAQCBmb3IgKDs7IHB0cisrKQorICAg ICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJyYWNlcyBhcmUgcmVxdWlyZWQg YmVjYXVzZSB0aGUgKi8KKyAgICAgICAgIEdFVENIQVJMRU4oYywgcHRyLCBwdHIpOyAgICAvKiBt YWNybyBnZW5lcmF0ZXMgbXVsdGlwbGUgc3RhdGVtZW50cyAqLworICAgICAgICAgfQorKworKyAg ICAgIC8qIEluIHRoZSBwcmUtY29tcGlsZSBwaGFzZSwgYWNjdW11bGF0ZSB0aGUgbGVuZ3RoIG9m IGFueSBVVEYtOCBleHRyYQorKyAgICAgIGRhdGEgYW5kIHJlc2V0IHRoZSBwb2ludGVyLiBUaGlz IGlzIHNvIHRoYXQgdmVyeSBsYXJnZSBjbGFzc2VzIHRoYXQKKysgICAgICBjb250YWluIGEgemls bGlvbiBVVEYtOCBjaGFyYWN0ZXJzIG5vIGxvbmdlciBvdmVyd3JpdGUgdGhlIHdvcmsgc3BhY2UK KysgICAgICAod2hpY2ggaXMgb24gdGhlIHN0YWNrKS4gKi8KKysKKysgICAgICBpZiAobGVuZ3Ro cHRyICE9IE5VTEwpCisrICAgICAgICB7CisrICAgICAgICAqbGVuZ3RocHRyICs9IGNsYXNzX3V0 ZjhkYXRhIC0gY2xhc3NfdXRmOGRhdGFfYmFzZTsKKysgICAgICAgIGNsYXNzX3V0ZjhkYXRhID0g Y2xhc3NfdXRmOGRhdGFfYmFzZTsKKysgICAgICAgIH0KKysKKyAjZW5kaWYKKyAKKyAgICAgICAv KiBJbnNpZGUgXFEuLi5cRSBldmVyeXRoaW5nIGlzIGxpdGVyYWwgZXhjZXB0IFxFICovCitAQCAt MjU2Miw3ICsyNjA5LDcgQEAgZm9yICg7OyBwdHIrKykKKyAKKyAgICAgICBpZiAoYyA9PSAnWycg JiYKKyAgICAgICAgICAgKHB0clsxXSA9PSAnOicgfHwgcHRyWzFdID09ICcuJyB8fCBwdHJbMV0g PT0gJz0nKSAmJgorLSAgICAgICAgICBjaGVja19wb3NpeF9zeW50YXgocHRyLCAmdGVtcHB0ciwg Y2QpKQorKyAgICAgICAgICBjaGVja19wb3NpeF9zeW50YXgocHRyLCAmdGVtcHB0cikpCisgICAg ICAgICB7CisgICAgICAgICBCT09MIGxvY2FsX25lZ2F0ZSA9IEZBTFNFOworICAgICAgICAgaW50 IHBvc2l4X2NsYXNzLCB0YWJvZmZzZXQsIHRhYm9wdDsKK0BAIC0yNTc5LDYgKzI2MjYsNyBAQCBm b3IgKDs7IHB0cisrKQorICAgICAgICAgaWYgKCpwdHIgPT0gJ14nKQorICAgICAgICAgICB7Cisg ICAgICAgICAgIGxvY2FsX25lZ2F0ZSA9IFRSVUU7CisrICAgICAgICAgIHNob3VsZF9mbGlwX25l Z2F0aW9uID0gVFJVRTsgIC8qIE5vdGUgbmVnYXRpdmUgc3BlY2lhbCAqLworICAgICAgICAgICBw dHIrKzsKKyAgICAgICAgICAgfQorIAorQEAgLTI2NTMsNyArMjcwMSw3IEBAIGZvciAoOzsgcHRy KyspCisgICAgICAgICBjID0gY2hlY2tfZXNjYXBlKCZwdHIsIGVycm9yY29kZXB0ciwgY2QtPmJy YWNvdW50LCBvcHRpb25zLCBUUlVFKTsKKyAgICAgICAgIGlmICgqZXJyb3Jjb2RlcHRyICE9IDAp IGdvdG8gRkFJTEVEOworIAorLSAgICAgICAgaWYgKC1jID09IEVTQ19iKSBjID0gJ1xiJzsgICAg ICAgLyogXGIgaXMgYmFja3NsYXNoIGluIGEgY2xhc3MgKi8KKysgICAgICAgIGlmICgtYyA9PSBF U0NfYikgYyA9ICdcYic7ICAgICAgIC8qIFxiIGlzIGJhY2tzcGFjZSBpbiBhIGNsYXNzICovCisg ICAgICAgICBlbHNlIGlmICgtYyA9PSBFU0NfWCkgYyA9ICdYJzsgICAvKiBcWCBpcyBsaXRlcmFs IFggaW4gYSBjbGFzcyAqLworICAgICAgICAgZWxzZSBpZiAoLWMgPT0gRVNDX1IpIGMgPSAnUic7 ICAgLyogXFIgaXMgbGl0ZXJhbCBSIGluIGEgY2xhc3MgKi8KKyAgICAgICAgIGVsc2UgaWYgKC1j ID09IEVTQ19RKSAgICAgICAgICAgIC8qIEhhbmRsZSBzdGFydCBvZiBxdW90ZWQgc3RyaW5nICov CitAQCAtMjY4MSw2ICsyNzI5LDcgQEAgZm9yICg7OyBwdHIrKykKKyAgICAgICAgICAgICBjb250 aW51ZTsKKyAKKyAgICAgICAgICAgICBjYXNlIEVTQ19EOgorKyAgICAgICAgICAgIHNob3VsZF9m bGlwX25lZ2F0aW9uID0gVFJVRTsKKyAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMr KykgY2xhc3NiaXRzW2NdIHw9IH5jYml0c1tjK2NiaXRfZGlnaXRdOworICAgICAgICAgICAgIGNv bnRpbnVlOworIAorQEAgLTI2ODksNiArMjczOCw3IEBAIGZvciAoOzsgcHRyKyspCisgICAgICAg ICAgICAgY29udGludWU7CisgCisgICAgICAgICAgICAgY2FzZSBFU0NfVzoKKysgICAgICAgICAg ICBzaG91bGRfZmxpcF9uZWdhdGlvbiA9IFRSVUU7CisgICAgICAgICAgICAgZm9yIChjID0gMDsg YyA8IDMyOyBjKyspIGNsYXNzYml0c1tjXSB8PSB+Y2JpdHNbYytjYml0X3dvcmRdOworICAgICAg ICAgICAgIGNvbnRpbnVlOworIAorQEAgLTI2OTgsMTMgKzI3NDgsMTEgQEAgZm9yICg7OyBwdHIr KykKKyAgICAgICAgICAgICBjb250aW51ZTsKKyAKKyAgICAgICAgICAgICBjYXNlIEVTQ19TOgor KyAgICAgICAgICAgIHNob3VsZF9mbGlwX25lZ2F0aW9uID0gVFJVRTsKKyAgICAgICAgICAgICBm b3IgKGMgPSAwOyBjIDwgMzI7IGMrKykgY2xhc3NiaXRzW2NdIHw9IH5jYml0c1tjK2NiaXRfc3Bh Y2VdOworICAgICAgICAgICAgIGNsYXNzYml0c1sxXSB8PSAweDA4OyAgICAvKiBQZXJsIDUuMDA0 IG9ud2FyZHMgb21pdHMgVlQgZnJvbSBccyAqLworICAgICAgICAgICAgIGNvbnRpbnVlOworIAor LSAgICAgICAgICAgIGNhc2UgRVNDX0U6IC8qIFBlcmwgaWdub3JlcyBhbiBvcnBoYW4gXEUgKi8K Ky0gICAgICAgICAgICBjb250aW51ZTsKKy0KKyAgICAgICAgICAgICBkZWZhdWx0OiAgICAvKiBO b3QgcmVjb2duaXplZDsgZmFsbCB0aHJvdWdoICovCisgICAgICAgICAgICAgYnJlYWs7ICAgICAg LyogTmVlZCAiZGVmYXVsdCIgc2V0dGluZyB0byBzdG9wIGNvbXBpbGVyIHdhcm5pbmcuICovCisg ICAgICAgICAgICAgfQorQEAgLTI5MzksNyArMjk4Nyw3IEBAIGZvciAoOzsgcHRyKyspCisgICAg ICAgICAgIGQgPSBjaGVja19lc2NhcGUoJnB0ciwgZXJyb3Jjb2RlcHRyLCBjZC0+YnJhY291bnQs IG9wdGlvbnMsIFRSVUUpOworICAgICAgICAgICBpZiAoKmVycm9yY29kZXB0ciAhPSAwKSBnb3Rv IEZBSUxFRDsKKyAKKy0gICAgICAgICAgLyogXGIgaXMgYmFja3NsYXNoOyBcWCBpcyBsaXRlcmFs IFg7IFxSIGlzIGxpdGVyYWwgUjsgYW55IG90aGVyCisrICAgICAgICAgIC8qIFxiIGlzIGJhY2tz cGFjZTsgXFggaXMgbGl0ZXJhbCBYOyBcUiBpcyBsaXRlcmFsIFI7IGFueSBvdGhlcgorICAgICAg ICAgICBzcGVjaWFsIG1lYW5zIHRoZSAnLScgd2FzIGxpdGVyYWwgKi8KKyAKKyAgICAgICAgICAg aWYgKGQgPCAwKQorQEAgLTMyMDMsMTEgKzMyNTEsMTQgQEAgd2Ugc2V0IHRoZSBmbGFnIG9ubHkg aWYgdGhlcmUgaXMgYSBsaXRlcgorICAgICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7CisgCisgICAg IC8qIElmIHRoZXJlIGFyZSBjaGFyYWN0ZXJzIHdpdGggdmFsdWVzID4gMjU1LCB3ZSBoYXZlIHRv IGNvbXBpbGUgYW4KKy0gICAgZXh0ZW5kZWQgY2xhc3MsIHdpdGggaXRzIG93biBvcGNvZGUuIElm IHRoZXJlIGFyZSBubyBjaGFyYWN0ZXJzIDwgMjU2LAorLSAgICB3ZSBjYW4gb21pdCB0aGUgYml0 bWFwIGluIHRoZSBhY3R1YWwgY29tcGlsZWQgY29kZS4gKi8KKysgICAgZXh0ZW5kZWQgY2xhc3Ms IHdpdGggaXRzIG93biBvcGNvZGUsIHVubGVzcyB0aGVyZSB3YXMgYSBuZWdhdGVkIHNwZWNpYWwK KysgICAgc3VjaCBhcyBcUyBpbiB0aGUgY2xhc3MsIGJlY2F1c2UgaW4gdGhhdCBjYXNlIGFsbCBj aGFyYWN0ZXJzID4gMjU1IGFyZSBpbgorKyAgICB0aGUgY2xhc3MsIHNvIGFueSB0aGF0IHdlcmUg ZXhwbGljaXRseSBnaXZlbiBhcyB3ZWxsIGNhbiBiZSBpZ25vcmVkLiBJZgorKyAgICAod2hlbiB0 aGVyZSBhcmUgZXhwbGljaXQgY2hhcmFjdGVycyA+IDI1NSB0aGF0IG11c3QgYmUgbGlzdGVkKSB0 aGVyZSBhcmUgbm8KKysgICAgY2hhcmFjdGVycyA8IDI1Niwgd2UgY2FuIG9taXQgdGhlIGJpdG1h cCBpbiB0aGUgYWN0dWFsIGNvbXBpbGVkIGNvZGUuICovCisgCisgI2lmZGVmIFNVUFBPUlRfVVRG OAorLSAgICBpZiAoY2xhc3NfdXRmOCkKKysgICAgaWYgKGNsYXNzX3V0ZjggJiYgIXNob3VsZF9m bGlwX25lZ2F0aW9uKQorICAgICAgIHsKKyAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhDTF9F TkQ7ICAgIC8qIE1hcmtzIHRoZSBlbmQgb2YgZXh0cmEgZGF0YSAqLworICAgICAgICpjb2RlKysg PSBPUF9YQ0xBU1M7CitAQCAtMzIzMywyMCArMzI4NCwxOSBAQCB3ZSBzZXQgdGhlIGZsYWcgb25s eSBpZiB0aGVyZSBpcyBhIGxpdGVyCisgICAgICAgfQorICNlbmRpZgorIAorLSAgICAvKiBJZiB0 aGVyZSBhcmUgbm8gY2hhcmFjdGVycyA+IDI1NSwgbmVnYXRlIHRoZSAzMi1ieXRlIG1hcCBpZiBu ZWNlc3NhcnksCistICAgIGFuZCBjb3B5IGl0IGludG8gdGhlIGNvZGUgdmVjdG9yLiBJZiB0aGlz IGlzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUgYnJhbmNoLAorLSAgICB0aGVyZSBjYW4gYmUgbm8g Zmlyc3QgY2hhciBzZXR0aW5nLCB3aGF0ZXZlciB0aGUgcmVwZWF0IGNvdW50LiBBbnkgcmVxYnl0 ZQorLSAgICBzZXR0aW5nIG11c3QgcmVtYWluIHVuY2hhbmdlZCBhZnRlciBhbnkga2luZCBvZiBy ZXBlYXQuICovCisrICAgIC8qIElmIHRoZXJlIGFyZSBubyBjaGFyYWN0ZXJzID4gMjU1LCBzZXQg dGhlIG9wY29kZSB0byBPUF9DTEFTUyBvcgorKyAgICBPUF9OQ0xBU1MsIGRlcGVuZGluZyBvbiB3 aGV0aGVyIHRoZSB3aG9sZSBjbGFzcyB3YXMgbmVnYXRlZCBhbmQgd2hldGhlcgorKyAgICB0aGVy ZSB3ZXJlIG5lZ2F0aXZlIHNwZWNpYWxzIHN1Y2ggYXMgXFMgaW4gdGhlIGNsYXNzLiBUaGVuIGNv cHkgdGhlIDMyLWJ5dGUKKysgICAgbWFwIGludG8gdGhlIGNvZGUgdmVjdG9yLCBuZWdhdGluZyBp dCBpZiBuZWNlc3NhcnkuICovCisgCisrICAgICpjb2RlKysgPSAobmVnYXRlX2NsYXNzID09IHNo b3VsZF9mbGlwX25lZ2F0aW9uKSA/IE9QX0NMQVNTIDogT1BfTkNMQVNTOworICAgICBpZiAobmVn YXRlX2NsYXNzKQorICAgICAgIHsKKy0gICAgICAqY29kZSsrID0gT1BfTkNMQVNTOworICAgICAg IGlmIChsZW5ndGhwdHIgPT0gTlVMTCkgICAgLyogU2F2ZSB0aW1lIGluIHRoZSBwcmUtY29tcGls ZSBwaGFzZSAqLworICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspIGNvZGVbY10gPSB+ Y2xhc3NiaXRzW2NdOworICAgICAgIH0KKyAgICAgZWxzZQorICAgICAgIHsKKy0gICAgICAqY29k ZSsrID0gT1BfQ0xBU1M7CisgICAgICAgbWVtY3B5KGNvZGUsIGNsYXNzYml0cywgMzIpOworICAg ICAgIH0KKyAgICAgY29kZSArPSAzMjsKK0BAIC0zODgyLDcgKzM5MzIsOSBAQCB3ZSBzZXQgdGhl IGZsYWcgb25seSBpZiB0aGVyZSBpcyBhIGxpdGVyCisgICAgICAgaW50IGxlbjsKKyAgICAgICBp ZiAoKnRlbXBjb2RlID09IE9QX0VYQUNUIHx8ICp0ZW1wY29kZSA9PSBPUF9UWVBFRVhBQ1QgfHwK KyAgICAgICAgICAgKnRlbXBjb2RlID09IE9QX05PVEVYQUNUKQorLSAgICAgICAgdGVtcGNvZGUg Kz0gX3BjcmVfT1BfbGVuZ3Roc1sqdGVtcGNvZGVdOworKyAgICAgICAgdGVtcGNvZGUgKz0gX3Bj cmVfT1BfbGVuZ3Roc1sqdGVtcGNvZGVdICsKKysgICAgICAgICAgKCgqdGVtcGNvZGUgPT0gT1Bf VFlQRUVYQUNUICYmCisrICAgICAgICAgICAgICh0ZW1wY29kZVszXSA9PSBPUF9QUk9QIHx8IHRl bXBjb2RlWzNdID09IE9QX05PVFBST1ApKT8gMjowKTsKKyAgICAgICBsZW4gPSBjb2RlIC0gdGVt cGNvZGU7CisgICAgICAgaWYgKGxlbiA+IDApIHN3aXRjaCAoKnRlbXBjb2RlKQorICAgICAgICAg eworQEAgLTQxMDksMTYgKzQxNjEsMTMgQEAgd2Ugc2V0IHRoZSBmbGFnIG9ubHkgaWYgdGhlcmUg aXMgYSBsaXRlcgorICAgICAgICAgICAgICplcnJvcmNvZGVwdHIgPSBFUlI1ODsKKyAgICAgICAg ICAgICBnb3RvIEZBSUxFRDsKKyAgICAgICAgICAgICB9CistICAgICAgICAgIGlmIChyZWZzaWdu ID09ICctJykKKysgICAgICAgICAgcmVjbm8gPSAocmVmc2lnbiA9PSAnLScpPworKyAgICAgICAg ICAgIGNkLT5icmFjb3VudCAtIHJlY25vICsgMSA6IHJlY25vICtjZC0+YnJhY291bnQ7CisrICAg ICAgICAgIGlmIChyZWNubyA8PSAwIHx8IHJlY25vID4gY2QtPmZpbmFsX2JyYWNvdW50KQorICAg ICAgICAgICAgIHsKKy0gICAgICAgICAgICByZWNubyA9IGNkLT5icmFjb3VudCAtIHJlY25vICsg MTsKKy0gICAgICAgICAgICBpZiAocmVjbm8gPD0gMCkKKy0gICAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICplcnJvcmNvZGVwdHIgPSBFUlIxNTsKKy0gICAgICAgICAgICAgIGdvdG8gRkFJ TEVEOworLSAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICplcnJvcmNvZGVwdHIgPSBFUlIx NTsKKysgICAgICAgICAgICBnb3RvIEZBSUxFRDsKKyAgICAgICAgICAgICB9CistICAgICAgICAg IGVsc2UgcmVjbm8gKz0gY2QtPmJyYWNvdW50OworICAgICAgICAgICBQVVQyKGNvZGUsIDIrTElO S19TSVpFLCByZWNubyk7CisgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICB9CitAQCAtNDE5 MCw5ICs0MjM5LDEwIEBAIHdlIHNldCB0aGUgZmxhZyBvbmx5IGlmIHRoZXJlIGlzIGEgbGl0ZXIK KyAgICAgICAgICAgc2tpcGJ5dGVzID0gMTsKKyAgICAgICAgICAgfQorIAorLSAgICAgICAgLyog Q2hlY2sgZm9yIHRoZSAibmFtZSIgYWN0dWFsbHkgYmVpbmcgYSBzdWJwYXR0ZXJuIG51bWJlci4g Ki8KKysgICAgICAgIC8qIENoZWNrIGZvciB0aGUgIm5hbWUiIGFjdHVhbGx5IGJlaW5nIGEgc3Vi cGF0dGVybiBudW1iZXIuIFdlIGFyZQorKyAgICAgICAgaW4gdGhlIHNlY29uZCBwYXNzIGhlcmUs IHNvIGZpbmFsX2JyYWNvdW50IGlzIHNldC4gKi8KKyAKKy0gICAgICAgIGVsc2UgaWYgKHJlY25v ID4gMCkKKysgICAgICAgIGVsc2UgaWYgKHJlY25vID4gMCAmJiByZWNubyA8PSBjZC0+ZmluYWxf YnJhY291bnQpCisgICAgICAgICAgIHsKKyAgICAgICAgICAgUFVUMihjb2RlLCAyK0xJTktfU0la RSwgcmVjbm8pOworICAgICAgICAgICB9CitAQCAtNDM4Niw3ICs0NDM2LDkgQEAgd2Ugc2V0IHRo ZSBmbGFnIG9ubHkgaWYgdGhlcmUgaXMgYSBsaXRlcgorIAorICAgICAgICAgLyogV2UgY29tZSBo ZXJlIGZyb20gdGhlIFB5dGhvbiBzeW50YXggYWJvdmUgdGhhdCBoYW5kbGVzIGJvdGgKKyAgICAg ICAgIHJlZmVyZW5jZXMgKD9QPW5hbWUpIGFuZCByZWN1cnNpb24gKD9QPm5hbWUpLCBhcyB3ZWxs IGFzIGZhbGxpbmcKKy0gICAgICAgIHRocm91Z2ggZnJvbSB0aGUgUGVybCByZWN1cnNpb24gc3lu dGF4ICg/Jm5hbWUpLiAqLworKyAgICAgICAgdGhyb3VnaCBmcm9tIHRoZSBQZXJsIHJlY3Vyc2lv biBzeW50YXggKD8mbmFtZSkuIFdlIGFsc28gY29tZSBoZXJlIGZyb20KKysgICAgICAgIHRoZSBQ ZXJsIFxrPG5hbWU+IG9yIFxrJ25hbWUnIGJhY2sgcmVmZXJlbmNlIHN5bnRheCBhbmQgdGhlIFxr e25hbWV9CisrICAgICAgICAuTkVUIHN5bnRheC4gKi8KKyAKKyAgICAgICAgIE5BTUVEX1JFRl9P Ul9SRUNVUlNFOgorICAgICAgICAgbmFtZSA9ICsrcHRyOworQEAgLTQzOTgsNiArNDQ1MCwxMSBA QCB3ZSBzZXQgdGhlIGZsYWcgb25seSBpZiB0aGVyZSBpcyBhIGxpdGVyCisgCisgICAgICAgICBp ZiAobGVuZ3RocHRyICE9IE5VTEwpCisgICAgICAgICAgIHsKKysgICAgICAgICAgaWYgKG5hbWVs ZW4gPT0gMCkKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgKmVycm9yY29kZXB0ciA9IEVS UjYyOworKyAgICAgICAgICAgIGdvdG8gRkFJTEVEOworKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgaWYgKCpwdHIgIT0gdGVybWluYXRvcikKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAg KmVycm9yY29kZXB0ciA9IEVSUjQyOworQEAgLTQ0MTEsMTQgKzQ0NjgsMTkgQEAgd2Ugc2V0IHRo ZSBmbGFnIG9ubHkgaWYgdGhlcmUgaXMgYSBsaXRlcgorICAgICAgICAgICByZWNubyA9IDA7Cisg ICAgICAgICAgIH0KKyAKKy0gICAgICAgIC8qIEluIHRoZSByZWFsIGNvbXBpbGUsIHNlZWsgdGhl IG5hbWUgaW4gdGhlIHRhYmxlICovCisrICAgICAgICAvKiBJbiB0aGUgcmVhbCBjb21waWxlLCBz ZWVrIHRoZSBuYW1lIGluIHRoZSB0YWJsZS4gV2UgY2hlY2sgdGhlIG5hbWUKKysgICAgICAgIGZp cnN0LCBhbmQgdGhlbiBjaGVjayB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBu YW1lIGluIHRoZQorKyAgICAgICAgdGFibGUuIFRoYXQgd2F5LCBpZiB0aGUgbmFtZSB0aGF0IGlz IGxvbmdlciB0aGFuIGFueSBpbiB0aGUgdGFibGUsCisrICAgICAgICB0aGUgY29tcGFyaXNvbiB3 aWxsIGZhaWwgd2l0aG91dCByZWFkaW5nIGJleW9uZCB0aGUgdGFibGUgZW50cnkuICovCisgCisg ICAgICAgICBlbHNlCisgICAgICAgICAgIHsKKyAgICAgICAgICAgc2xvdCA9IGNkLT5uYW1lX3Rh YmxlOworICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY2QtPm5hbWVzX2ZvdW5kOyBpKyspCisg ICAgICAgICAgICAgeworLSAgICAgICAgICAgIGlmIChzdHJuY21wKChjaGFyICopbmFtZSwgKGNo YXIgKilzbG90KzIsIG5hbWVsZW4pID09IDApIGJyZWFrOworKyAgICAgICAgICAgIGlmIChzdHJu Y21wKChjaGFyICopbmFtZSwgKGNoYXIgKilzbG90KzIsIG5hbWVsZW4pID09IDAgJiYKKysgICAg ICAgICAgICAgICAgc2xvdFsyK25hbWVsZW5dID09IDApCisrICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICBzbG90ICs9IGNkLT5uYW1lX2VudHJ5X3NpemU7CisgICAgICAgICAgICAg fQorIAorQEAgLTQ0NTUsNyArNDUxNywxNSBAQCB3ZSBzZXQgdGhlIGZsYWcgb25seSBpZiB0aGVy ZSBpcyBhIGxpdGVyCisgICAgICAgICAgIHsKKyAgICAgICAgICAgY29uc3QgdXNjaGFyICpjYWxs ZWQ7CisgCistICAgICAgICAgIGlmICgocmVmc2lnbiA9ICpwdHIpID09ICcrJykgcHRyKys7Cisr ICAgICAgICAgIGlmICgocmVmc2lnbiA9ICpwdHIpID09ICcrJykKKysgICAgICAgICAgICB7Cisr ICAgICAgICAgICAgcHRyKys7CisrICAgICAgICAgICAgaWYgKGdfYXNjaWlfaXNkaWdpdCgqcHRy KSA9PSAwKQorKyAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgKmVycm9yY29kZXB0ciA9 IEVSUjYzOworKyAgICAgICAgICAgICAgZ290byBGQUlMRUQ7CisrICAgICAgICAgICAgICB9Cisr ICAgICAgICAgICAgfQorICAgICAgICAgICBlbHNlIGlmIChyZWZzaWduID09ICctJykKKyAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgaWYgKGdfYXNjaWlfaXNkaWdpdChwdHJbMV0pID09IDAp CitAQCAtNTYyMSw3ICs1NjkxLDYgQEAgdG8gZmlsbCBpbiBmb3J3YXJkIHJlZmVyZW5jZXMgdG8g c3VicGF0dAorIAorIHVzY2hhciBjd29ya3NwYWNlW0NPTVBJTEVfV09SS19TSVpFXTsKKyAKKy0K KyAvKiBTZXQgdGhpcyBlYXJseSBzbyB0aGF0IGVhcmx5IGVycm9ycyBnZXQgb2Zmc2V0IDAuICov CisgCisgcHRyID0gKGNvbnN0IHVzY2hhciAqKXBhdHRlcm47CitAQCAtNTc4Miw3ICs1ODUxLDcg QEAgdG8gY29tcGlsZSBwYXJ0cyBvZiB0aGUgcGF0dGVybiBpbnRvOyB0aAorIG5vIGxvbmdlciBu ZWVkZWQsIHNvIGhvcGVmdWxseSB0aGlzIHdvcmtzcGFjZSB3aWxsIG5ldmVyIG92ZXJmbG93LCB0 aG91Z2ggdGhlcmUKKyBpcyBhIHRlc3QgZm9yIGl0cyBkb2luZyBzby4gKi8KKyAKKy1jZC0+YnJh Y291bnQgPSAwOworK2NkLT5icmFjb3VudCA9IGNkLT5maW5hbF9icmFjb3VudCA9IDA7CisgY2Qt Pm5hbWVzX2ZvdW5kID0gMDsKKyBjZC0+bmFtZV9lbnRyeV9zaXplID0gMDsKKyBjZC0+bmFtZV90 YWJsZSA9IE5VTEw7CitAQCAtNTg1OSw2ICs1OTI4LDcgQEAgZmllbGQuIFJlc2V0IHRoZSBicmFj a2V0IGNvdW50IGFuZCB0aGUgbgorIGZpZWxkOyB0aGlzIHRpbWUgaXQncyB1c2VkIGZvciByZW1l bWJlcmluZyBmb3J3YXJkIHJlZmVyZW5jZXMgdG8gc3VicGF0dGVybnMuCisgKi8KKyAKKytjZC0+ ZmluYWxfYnJhY291bnQgPSBjZC0+YnJhY291bnQ7ICAvKiBTYXZlIGZvciBjaGVja2luZyBmb3J3 YXJkIHJlZmVyZW5jZXMgKi8KKyBjZC0+YnJhY291bnQgPSAwOworIGNkLT5uYW1lc19mb3VuZCA9 IDA7CisgY2QtPm5hbWVfdGFibGUgPSAodXNjaGFyICopcmUgKyByZS0+bmFtZV90YWJsZV9vZmZz ZXQ7CitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvbWFrZWZpbGUubXNjLnByY2UtNy42 IGdsaWItMi4xNS40L2dsaWIvcGNyZS9tYWtlZmlsZS5tc2MKKy0tLSBnbGliLTIuMTUuNC9nbGli L3BjcmUvbWFrZWZpbGUubXNjLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAw IC0wNTAwCisrKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL21ha2VmaWxlLm1zYwkyMDA4LTAyLTA3 IDA5OjMyOjQ2LjAwMDAwMDAwMCAtMDUwMAorQEAgLTEsNDkgKzEsMzUgQEAKKyBUT1AgPSAuLlwu LlwuLgorICFJTkNMVURFIC4uXC4uXGJ1aWxkXHdpbjMyXG1ha2UubXNjCisgCistSU5DTFVERVMg PSBcCistCS1JIC4uXC4uIFwKKy0JLUkgLi4KKy0JCistREVGSU5FUyA9IFwKKy0JLURQQ1JFX1NU QVRJQyBcCistCS1ESEFWRV9DT05GSUdfSCBcCistCS1ESEFWRV9MT05HX0xPTkdfRk9STUFUIFwK Ky0JLURTVVBQT1JUX1VDUCBcCistCS1EU1VQUE9SVF9VVEY4IFwKKy0JLURORVdMSU5FPS0xIFwK Ky0JLURNQVRDSF9MSU1JVD0xMDAwMDAwMCBcCistCS1ETUFUQ0hfTElNSVRfUkVDVVJTSU9OPTEw MDAwMDAwIFwKKy0JLURNQVhfTkFNRV9TSVpFPTMyIFwKKy0JLURNQVhfTkFNRV9DT1VOVD0xMDAw MCBcCistCS1ETUFYX0RVUExFTkdUSD0zMDAwMCBcCistCS1ETElOS19TSVpFPTIgXAorLQktVUVC Q0RJQyBcCistCS1EUE9TSVhfTUFMTE9DX1RIUkVTSE9MRD0xMAorK0lOQ0xVREVTID0gXFwKKysg ICAgICAgIC1JIC4uXC4uIFxcCisrICAgICAgICAtSSAuLgorKyAgICAgICAgCisrREVGSU5FUyA9 IFxcCisrICAgICAgICAtRFBDUkVfU1RBVElDIFxcCisrICAgICAgICAtREhBVkVfQ09ORklHX0gg XFwKKysgICAgICAgIC1ESEFWRV9MT05HX0xPTkdfRk9STUFUIFxcCisrICAgICAgICAtRFNVUFBP UlRfVUNQIFxcCisrICAgICAgICAtRFNVUFBPUlRfVVRGOCBcXAorKyAgICAgICAgLURORVdMSU5F PS0xIFxcCisrICAgICAgICAtRE1BVENIX0xJTUlUPTEwMDAwMDAwIFxcCisrICAgICAgICAtRE1B VENIX0xJTUlUX1JFQ1VSU0lPTj0xMDAwMDAwMCBcXAorKyAgICAgICAgLURNQVhfTkFNRV9TSVpF PTMyIFxcCisrICAgICAgICAtRE1BWF9OQU1FX0NPVU5UPTEwMDAwIFxcCisrICAgICAgICAtRE1B WF9EVVBMRU5HVEg9MzAwMDAgXFwKKysgICAgICAgIC1ETElOS19TSVpFPTIgXFwKKysgICAgICAg IC1ERUJDRElDPTAgXFwKKysgICAgICAgIC1EUE9TSVhfTUFMTE9DX1RIUkVTSE9MRD0xMAorIAor LU9CSkVDVFMgPSBcCistCXBjcmVfY2hhcnRhYmxlcy5vYmogXAorLQlwY3JlX2NvbXBpbGUub2Jq IFwKKy0JcGNyZV9jb25maWcub2JqIFwKKy0JcGNyZV9kZmFfZXhlYy5vYmogXAorLQlwY3JlX2V4 ZWMub2JqIFwKKy0JcGNyZV9mdWxsaW5mby5vYmogXAorLQlwY3JlX2dldC5vYmogXAorLQlwY3Jl X2dsb2JhbHMub2JqIFwKKy0JcGNyZV9pbmZvLm9iaiBcCistCXBjcmVfbWFrZXRhYmxlcy5vYmog XAorLQlwY3JlX25ld2xpbmUub2JqIFwKKy0JcGNyZV9vcmQydXRmOC5vYmogXAorLQlwY3JlX3Jl ZmNvdW50Lm9iaiBcCistCXBjcmVfc3R1ZHkub2JqIFwKKy0JcGNyZV90YWJsZXMub2JqIFwKKy0J cGNyZV90cnlfZmxpcHBlZC5vYmogXAorLQlwY3JlX3VjcF9zZWFyY2hmdW5jcy5vYmogXAorLQlw Y3JlX3ZhbGlkX3V0Zjgub2JqIFwKKy0JcGNyZV92ZXJzaW9uLm9iaiBcCistCXBjcmVfeGNsYXNz Lm9iaiBcCisrT0JKRUNUUyA9IFxcCisrYAorK2ZvciBmIGluICRhbGxfZmlsZXM7IGRvCisrICAg IGVjaG8gIiAgICAgICRmLm9iaiBcXFxcIgorK2RvbmUKKytgCisgCisgYWxsIDogcGNyZS5saWIK KyAKKy1wY3JlLmxpYiA6ICQoT0JKRUNUUykKKy0JbGliIC1vdXQ6cGNyZS5saWIgJChPQkpFQ1RT KQorK3BjcmUubGliIDogXCQoT0JKRUNUUykKKysgICAgICAgIGxpYiAtb3V0OnBjcmUubGliIFwk KE9CSkVDVFMpCisrCitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9nbG9iYWxz LmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2xvYmFscy5jCistLS0gZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2xvYmFscy5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6 MzI6MDkuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2xv YmFscy5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNiw3ICs2LDcg QEAKKyBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0 aGUgUGVybCA1IGxhbmd1YWdlLgorIAorICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBi eSBQaGlsaXAgSGF6ZWwKKy0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZl cnNpdHkgb2YgQ2FtYnJpZGdlCisrICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBV bml2ZXJzaXR5IG9mIENhbWJyaWRnZQorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVkaXN0 cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo b3V0CitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9mdWxsaW5mby5jLnByY2Ut Ny42IGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2Z1bGxpbmZvLmMKKy0tLSBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV9mdWxsaW5mby5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDku MDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZnVsbGluZm8u YwkyMDA4LTAyLTA3IDA5OjMyOjQ2LjAwMDAwMDAwMCAtMDUwMAorQEAgLTIsMTEgKzIsMTEgQEAK KyAqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgorICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisgCistLypQ Q1JFIGlzIGEgbGlicmFyeSBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Np b25zIHdob3NlIHN5bnRheAorKy8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyB0byBz dXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4CisgYW5kIHNlbWFudGljcyBh cmUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhvc2Ugb2YgdGhlIFBlcmwgNSBsYW5ndWFnZS4K KyAKKyAgICAgICAgICAgICAgICAgICAgICAgIFdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCistICAg ICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNyBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQor KyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDggVW5pdmVyc2l0eSBvZiBDYW1icmlk Z2UKKyAKKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorZGlmZiAtdXAgZ2xpYi0y LjE1LjQvZ2xpYi9wY3JlL3BjcmVfb3JkMnV0ZjguYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGli L3BjcmUvcGNyZV9vcmQydXRmOC5jCistLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfb3Jk MnV0ZjguYy5wcmNlLTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUwMAorKysr IGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX29yZDJ1dGY4LmMJMjAwOC0wMi0wNyAwOTozMjo0 Ni4wMDAwMDAwMDAgLTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJlIGFz IGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisgCisg ICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAgICAg ICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysgICAg ICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisg CisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2RpZmYgLXVwIGdsaWItMi4xNS40 L2dsaWIvcGNyZS9wY3JlX3RyeV9mbGlwcGVkLmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfdHJ5X2ZsaXBwZWQuYworLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3Ry eV9mbGlwcGVkLmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAK KysrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV90cnlfZmxpcHBlZC5jCTIwMDgtMDItMDcg MDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNiw3ICs2LDcgQEAKKyBhbmQgc2VtYW50aWNz IGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdl LgorIAorICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKy0g ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl CisrICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJy aWRnZQorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CitkaWZmIC11cCBnbGli LTIuMTUuNC9nbGliL3BjcmUvcGNyZV9pbmZvLmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfaW5mby5jCistLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfaW5mby5jLnBy Y2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1 LjQvZ2xpYi9wY3JlL3BjcmVfaW5mby5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0w NTAwCitAQCAtNiw3ICs2LDcgQEAKKyBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3Nz aWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgorIAorICAgICAgICAgICAgICAg ICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKy0gICAgICAgICAgIENvcHlyaWdodCAo YykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisrICAgICAgICAgICBDb3B5cmln aHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQorIAorIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm b3Jtcywgd2l0aCBvciB3aXRob3V0CitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvQ09Q WUlORy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvQ09QWUlORworZGlmZiAtdXAgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfcmVmY291bnQuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9n bGliL3BjcmUvcGNyZV9yZWZjb3VudC5jCistLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVf cmVmY291bnQuYy5wcmNlLTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUwMAor KysrIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3JlZmNvdW50LmMJMjAwOC0wMi0wNyAwOToz Mjo0Ni4wMDAwMDAwMDAgLTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJl IGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisg CisgICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAg ICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysg ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl CisgCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2RpZmYgLXVwIGdsaWItMi4x NS40L2dsaWIvcGNyZS9wY3JlLmgucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmUu aAorLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlLmgucHJjZS03LjYJMjAwOC0wMi0wNyAw OTozMjowOS4wMDAwMDAwMDAgLTA1MDAKKysrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZS5o CTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNSw3ICs1LDcgQEAKKyAv KiBUaGlzIGlzIHRoZSBwdWJsaWMgaGVhZGVyIGZpbGUgZm9yIHRoZSBQQ1JFIGxpYnJhcnksIHRv IGJlICNpbmNsdWRlZCBieQorIGFwcGxpY2F0aW9ucyB0aGF0IGNhbGwgdGhlIFBDUkUgZnVuY3Rp b25zLgorIAorLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBv ZiBDYW1icmlkZ2UKKysgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNp dHkgb2YgQ2FtYnJpZGdlCisgCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlv biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK0BA IC00Miw5ICs0Miw5IEBAIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIC8qIFRoZSBjdXJy ZW50IFBDUkUgdmVyc2lvbiBpbmZvcm1hdGlvbi4gKi8KKyAKKyAjZGVmaW5lIFBDUkVfTUFKT1Ig ICAgICAgICAgNworLSNkZWZpbmUgUENSRV9NSU5PUiAgICAgICAgICA0CisrI2RlZmluZSBQQ1JF X01JTk9SICAgICAgICAgIDYKKyAjZGVmaW5lIFBDUkVfUFJFUkVMRUFTRSAgICAgCistI2RlZmlu ZSBQQ1JFX0RBVEUgICAgICAgICAgIDIwMDctMDktMjEKKysjZGVmaW5lIFBDUkVfREFURSAgICAg ICAgICAgMjAwOC0wMS0yOAorIAorIC8qIFdoZW4gYW4gYXBwbGljYXRpb24gbGlua3MgdG8gYSBQ Q1JFIERMTCBpbiBXaW5kb3dzLCB0aGUgc3ltYm9scyB0aGF0IGFyZQorIGltcG9ydGVkIGhhdmUg dG8gYmUgaWRlbnRpZmllZCBhcyBzdWNoLiBXaGVuIGJ1aWxkaW5nIFBDUkUsIHRoZSBhcHByb3By aWF0ZQorQEAgLTI0MiwxMyArMjQyLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgcGNyZV9jYWxsb3V0X2Js b2NrIHsKKyAgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworIH0gcGNyZV9jYWxsb3V0X2Jsb2NrOworIAorLQor LS8qIEluZGlyZWN0aW9uIGZvciBzdG9yZSBnZXQgYW5kIGZyZWUgZnVuY3Rpb25zLiBUaGVzZSBj YW4gYmUgc2V0IHRvCistYWx0ZXJuYXRpdmUgbWFsbG9jL2ZyZWUgZnVuY3Rpb25zIGlmIHJlcXVp cmVkLiBTcGVjaWFsIG9uZXMgYXJlIHVzZWQgaW4gdGhlCistbm9uLXJlY3Vyc2l2ZSBjYXNlIGZv ciAiZnJhbWVzIi4gVGhlcmUgaXMgYWxzbyBhbiBvcHRpb25hbCBjYWxsb3V0IGZ1bmN0aW9uCist dGhhdCBpcyB0cmlnZ2VyZWQgYnkgdGhlICg/KSByZWdleCBpdGVtLiBGb3IgVmlydHVhbCBQYXNj YWwsIHRoZXNlIGRlZmluaXRpb25zCistaGF2ZSB0byB0YWtlIGFub3RoZXIgZm9ybS4gKi8KKy0K KyAjaW5jbHVkZSAiZ2xpYi5oIgorICNpbmNsdWRlICJnYWxpYXMuaCIKKyAKK2RpZmYgLXVwIGds aWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2NoYXJ0YWJsZXMuYy5wcmNlLTcuNiBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV9jaGFydGFibGVzLmMKKy0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUv cGNyZV9jaGFydGFibGVzLmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAg LTA1MDAKKysrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jaGFydGFibGVzLmMJMjAwOC0w Mi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKK0BAIC0xLDYgKzEsMyBAQAorLS8qIFRoaXMg ZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IC4uL3VwZGF0ZS1wY3JlL3VwZGF0ZS5zaCBkdXJpbmcK Ky0gKiB0aGUgdXBkYXRlIG9mIHRoZSBsb2NhbCBjb3B5IG9mIFBDUkUuCistICovCisgLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgUGVy bC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgorICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitkaWZmIC11cCBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV9jb25maWcuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUv cGNyZV9jb25maWcuYworLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2NvbmZpZy5jLnBy Y2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1 LjQvZ2xpYi9wY3JlL3BjcmVfY29uZmlnLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAg LTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBv c3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisgCisgICAgICAgICAgICAg ICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAorLSAgICAgICAgICAgQ29weXJpZ2h0 IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKysgICAgICAgICAgIENvcHly aWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisgCisgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2RpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9w Y3JlX2ludGVybmFsLmgucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfaW50ZXJu YWwuaAorLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2ludGVybmFsLmgucHJjZS03LjYJ MjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKKysrKyBnbGliLTIuMTUuNC9nbGli L3BjcmUvcGNyZV9pbnRlcm5hbC5oCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAw CitAQCAtNyw3ICs3LDcgQEAKKyBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJs ZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgorIAorICAgICAgICAgICAgICAgICAg ICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKy0gICAgICAgICAgIENvcHlyaWdodCAoYykg MTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisrICAgICAgICAgICBDb3B5cmlnaHQg KGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQorIAorIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt cywgd2l0aCBvciB3aXRob3V0CitAQCAtMzYzLDYgKzM2Myw3IEBAIG5ldmVyIGJlIGNhbGxlZCBp biBieXRlIG1vZGUuIFRvIG1ha2Ugc3UKKyBzdXBwb3J0IGlzIG9taXR0ZWQsIHdlIGRvbid0IGV2 ZW4gZGVmaW5lIGl0LiAqLworIAorICNpZm5kZWYgU1VQUE9SVF9VVEY4CisrI2RlZmluZSBORVhU Q0hBUihwKSBwKys7CisgI2RlZmluZSBHRVRDSEFSKGMsIGVwdHIpIGMgPSAqZXB0cjsKKyAjZGVm aW5lIEdFVENIQVJURVNUKGMsIGVwdHIpIGMgPSAqZXB0cjsKKyAjZGVmaW5lIEdFVENIQVJJTkMo YywgZXB0cikgYyA9ICplcHRyKys7CitAQCAtMzcyLDYgKzM3MywxMyBAQCBzdXBwb3J0IGlzIG9t aXR0ZWQsIHdlIGRvbid0IGV2ZW4gZGVmaW5lCisgCisgI2Vsc2UgICAvKiBTVVBQT1JUX1VURjgg Ki8KKyAKKysvKiBBZHZhbmNlIGEgY2hhcmFjdGVyIHBvaW50ZXIgb25lIGJ5dGUgaW4gbm9uLVVU Ri04IG1vZGUgYW5kIGJ5IG9uZSBjaGFyYWN0ZXIKKytpbiBVVEYtOCBtb2RlLiAqLworKworKyNk ZWZpbmUgTkVYVENIQVIocCkgXAorKyAgcCsrOyBcCisrICBpZiAodXRmOCkgeyB3aGlsZSgoKnAg JiAweGMwKSA9PSAweDgwKSBwKys7IH0KKysKKyAvKiBHZXQgdGhlIG5leHQgVVRGLTggY2hhcmFj dGVyLCBub3QgYWR2YW5jaW5nIHRoZSBwb2ludGVyLiBUaGlzIGlzIGNhbGxlZCB3aGVuCisgd2Ug a25vdyB3ZSBhcmUgaW4gVVRGLTggbW9kZS4gKi8KKyAKK0BAIC04NjgsNyArODc2LDcgQEAgZW51 bSB7IEVSUjAsICBFUlIxLCAgRVJSMiwgIEVSUjMsICBFUlI0LAorICAgICAgICBFUlIzMCwgRVJS MzEsIEVSUjMyLCBFUlIzMywgRVJSMzQsIEVSUjM1LCBFUlIzNiwgRVJSMzcsIEVSUjM4LCBFUlIz OSwKKyAgICAgICAgRVJSNDAsIEVSUjQxLCBFUlI0MiwgRVJSNDMsIEVSUjQ0LCBFUlI0NSwgRVJS NDYsIEVSUjQ3LCBFUlI0OCwgRVJSNDksCisgICAgICAgIEVSUjUwLCBFUlI1MSwgRVJSNTIsIEVS UjUzLCBFUlI1NCwgRVJSNTUsIEVSUjU2LCBFUlI1NywgRVJSNTgsIEVSUjU5LAorLSAgICAgICBF UlI2MCwgRVJSNjEgfTsKKysgICAgICAgRVJSNjAsIEVSUjYxLCBFUlI2MiwgRVJSNjMgfTsKKyAK KyAvKiBUaGUgcmVhbCBmb3JtYXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBwY3JlIGJsb2NrOyB0aGUg aW5kZXggb2YgbmFtZXMgYW5kIHRoZQorIGNvZGUgdmVjdG9yIHJ1biBvbiBhcyBsb25nIGFzIG5l Y2Vzc2FyeSBhZnRlciB0aGUgZW5kLiBXZSBzdG9yZSBhbiBleHBsaWNpdAorQEAgLTkzMSw3ICs5 MzksOCBAQCB0eXBlZGVmIHN0cnVjdCBjb21waWxlX2RhdGEgeworICAgdXNjaGFyICpuYW1lX3Rh YmxlOyAgICAgICAgICAgLyogVGhlIG5hbWUvbnVtYmVyIHRhYmxlICovCisgICBpbnQgIG5hbWVz X2ZvdW5kOyAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgZW50cmllcyBzbyBmYXIgKi8KKyAgIGlu dCAgbmFtZV9lbnRyeV9zaXplOyAgICAgICAgIC8qIFNpemUgb2YgZWFjaCBlbnRyeSAqLworLSAg aW50ICBicmFjb3VudDsgICAgICAgICAgICAgICAgLyogQ291bnQgb2YgY2FwdHVyaW5nIHBhcmVu cyAqLworKyAgaW50ICBicmFjb3VudDsgICAgICAgICAgICAgICAgLyogQ291bnQgb2YgY2FwdHVy aW5nIHBhcmVucyBhcyB3ZSBjb21waWxlICovCisrICBpbnQgIGZpbmFsX2JyYWNvdW50OyAgICAg ICAgICAvKiBTYXZlZCB2YWx1ZSBhZnRlciBmaXJzdCBwYXNzICovCisgICBpbnQgIHRvcF9iYWNr cmVmOyAgICAgICAgICAgICAvKiBNYXhpbXVtIGJhY2sgcmVmZXJlbmNlICovCisgICB1bnNpZ25l ZCBpbnQgYmFja3JlZl9tYXA7ICAgICAvKiBCaXRtYXAgb2YgbG93IGJhY2sgcmVmcyAqLworICAg aW50ICBleHRlcm5hbF9vcHRpb25zOyAgICAgICAgLyogRXh0ZXJuYWwgKGluaXRpYWwpIG9wdGlv bnMgKi8KK0BAIC0xMDMzLDcgKzEwNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBkZmFfbWF0Y2hfZGF0 YSB7CisgI2RlZmluZSBjdHlwZV9sZXR0ZXIgIDB4MDIKKyAjZGVmaW5lIGN0eXBlX2RpZ2l0ICAg MHgwNAorICNkZWZpbmUgY3R5cGVfeGRpZ2l0ICAweDA4CistI2RlZmluZSBjdHlwZV93b3JkICAg IDB4MTAgICAvKiBhbHBoYW1lcmljIG9yICdfJyAqLworKyNkZWZpbmUgY3R5cGVfd29yZCAgICAw eDEwICAgLyogYWxwaGFudW1lcmljIG9yICdfJyAqLworICNkZWZpbmUgY3R5cGVfbWV0YSAgICAw eDgwICAgLyogcmVnZXhwIG1ldGEgY2hhciBvciB6ZXJvIChlbmQgcGF0dGVybikgKi8KKyAKKyAv KiBPZmZzZXRzIGZvciB0aGUgYml0bWFwIHRhYmxlcyBpbiBwY3JlX2NiaXRzLiBFYWNoIHRhYmxl IGNvbnRhaW5zIGEgc2V0CitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvTWFrZWZpbGUu YW0ucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL01ha2VmaWxlLmFtCitkaWZmIC11cCBn bGliLTIuMTUuNC9nbGliL3BjcmUvTWFrZWZpbGUuaW4ucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xp Yi9wY3JlL01ha2VmaWxlLmluCitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV94 Y2xhc3MuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV94Y2xhc3MuYworLS0t IGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3hjbGFzcy5jLnByY2UtNy42CTIwMDgtMDItMDcg MDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVf eGNsYXNzLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKK0BAIC02LDcgKzYs NyBAQAorIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9m IHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisgCisgICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVu IGJ5IFBoaWxpcCBIYXplbAorLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5p dmVyc2l0eSBvZiBDYW1icmlkZ2UKKysgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4 IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisgCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRp c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp dGhvdXQKK2RpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3ZlcnNpb24uYy5wcmNl LTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV92ZXJzaW9uLmMKKy0tLSBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV92ZXJzaW9uLmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4w MDAwMDAwMDAgLTA1MDAKKysrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV92ZXJzaW9uLmMJ MjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKK0BAIC02LDcgKzYsNyBAQAorIGFu ZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJs IDUgbGFuZ3VhZ2UuCisgCisgICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxp cCBIYXplbAorLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBv ZiBDYW1icmlkZ2UKKysgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNp dHkgb2YgQ2FtYnJpZGdlCisgCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZWRpc3RyaWJ1dGlv biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK2Rp ZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jLnByY2Ut Ny42IGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jCitkaWZmIC11 cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvdWNwLmgucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3VjcC5oCitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9uZXdsaW5lLmMu cHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfbmV3bGluZS5jCistLS0gZ2xpYi0y LjE1LjQvZ2xpYi9wY3JlL3BjcmVfbmV3bGluZS5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6 MDkuMDAwMDAwMDAwIC0wNTAwCisrKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfbmV3bGlu ZS5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNiw3ICs2LDcgQEAK KyBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUg UGVybCA1IGxhbmd1YWdlLgorIAorICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQ aGlsaXAgSGF6ZWwKKy0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNp dHkgb2YgQ2FtYnJpZGdlCisrICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2 ZXJzaXR5IG9mIENhbWJyaWRnZQorIAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVkaXN0cmli dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0 CitkaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9leGVjLmMucHJjZS03LjYgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZXhlYy5jCistLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3Jl L3BjcmVfZXhlYy5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAw CisrKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZXhlYy5jCTIwMDgtMDItMDcgMDk6MzI6 NDYuMDAwMDAwMDAwIC0wNTAwCitAQCAtNiw3ICs2LDcgQEAKKyBhbmQgc2VtYW50aWNzIGFyZSBh cyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgorIAor ICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKy0gICAgICAg ICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCisrICAg ICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQor IAorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CitAQCAtNDY3MCwxMCArNDY3MCwx MCBAQCBmb3IoOzspCisgICAgIGlmIChmaXJzdF9ieXRlX2Nhc2VsZXNzKQorICAgICAgIHdoaWxl IChzdGFydF9tYXRjaCA8IGVuZF9zdWJqZWN0ICYmCisgICAgICAgICAgICAgIG1kLT5sY2NbKnN0 YXJ0X21hdGNoXSAhPSBmaXJzdF9ieXRlKQorLSAgICAgICAgc3RhcnRfbWF0Y2grKzsKKysgICAg ICAgIHsgTkVYVENIQVIoc3RhcnRfbWF0Y2gpOyB9CisgICAgIGVsc2UKKyAgICAgICB3aGlsZSAo c3RhcnRfbWF0Y2ggPCBlbmRfc3ViamVjdCAmJiAqc3RhcnRfbWF0Y2ggIT0gZmlyc3RfYnl0ZSkK Ky0gICAgICAgIHN0YXJ0X21hdGNoKys7CisrICAgICAgICB7IE5FWFRDSEFSKHN0YXJ0X21hdGNo KTsgfQorICAgICB9CisgCisgICAvKiBPciB0byBqdXN0IGFmdGVyIGEgbGluZWJyZWFrIGZvciBh IG11bHRpbGluZSBtYXRjaCBpZiBwb3NzaWJsZSAqLworQEAgLTQ2ODMsNyArNDY4Myw3IEBAIGZv cig7OykKKyAgICAgaWYgKHN0YXJ0X21hdGNoID4gbWQtPnN0YXJ0X3N1YmplY3QgKyBzdGFydF9v ZmZzZXQpCisgICAgICAgeworICAgICAgIHdoaWxlIChzdGFydF9tYXRjaCA8PSBlbmRfc3ViamVj dCAmJiAhV0FTX05FV0xJTkUoc3RhcnRfbWF0Y2gpKQorLSAgICAgICAgc3RhcnRfbWF0Y2grKzsK KysgICAgICAgIHsgTkVYVENIQVIoc3RhcnRfbWF0Y2gpOyB9CisgCisgICAgICAgLyogSWYgd2Ug aGF2ZSBqdXN0IHBhc3NlZCBhIENSIGFuZCB0aGUgbmV3bGluZSBvcHRpb24gaXMgQU5ZIG9yIEFO WUNSTEYsCisgICAgICAgYW5kIHdlIGFyZSBub3cgYXQgYSBMRiwgYWR2YW5jZSB0aGUgbWF0Y2gg cG9zaXRpb24gYnkgb25lIG1vcmUgY2hhcmFjdGVyLgorQEAgLTQ3MDQsNyArNDcwNCw5IEBAIGZv cig7OykKKyAgICAgd2hpbGUgKHN0YXJ0X21hdGNoIDwgZW5kX3N1YmplY3QpCisgICAgICAgewor ICAgICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBjID0gKnN0YXJ0X21hdGNoOworLSAgICAgIGlm ICgoc3RhcnRfYml0c1tjLzhdICYgKDEgPDwgKGMmNykpKSA9PSAwKSBzdGFydF9tYXRjaCsrOyBl bHNlIGJyZWFrOworKyAgICAgIGlmICgoc3RhcnRfYml0c1tjLzhdICYgKDEgPDwgKGMmNykpKSA9 PSAwKQorKyAgICAgICAgeyBORVhUQ0hBUihzdGFydF9tYXRjaCk7IH0KKysgICAgICBlbHNlIGJy ZWFrOworICAgICAgIH0KKyAgICAgfQorIAo=