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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Print reasons for failed attach/spawn incl. SELinux deny_ptrace (BZ 786878). Date: Sat, 27 Jun 2026 23:55:30 GMT Message-ID: <178260453065.1.15555729258793950462.rpms-gdb-c64e73263bc5@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: c64e73263bc5a353268f1f2e8e164ee9f0849694 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogYzY0ZTczMjYzYmM1YTM1MzI2OGYxZjJlOGUx NjRlZTlmMDg0OTY5NApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxMi0wMy0wNlQwNzo1NzowNyswMTowMApTdGF0cyAgOiArMTQ3 Ny8tMSBpbiA2IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9nZGIvYy9jNjRlNzMyNjNiYzVhMzUzMjY4ZjFmMmU4ZTE2NGVlOWYwODQ5Njk0P2JyYW5j aD1nZGItMTcuMi1yZWJhc2UtZjQ0CgpMb2c6ClByaW50IHJlYXNvbnMgZm9yIGZhaWxlZCBhdHRh Y2gvc3Bhd24gaW5jbC4gU0VMaW51eCBkZW55X3B0cmFjZSAoQlogNzg2ODc4KS4KCi0tLQpkaWZm IC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtMW9mNS5wYXRjaCBiL2dkYi1hdHRhY2gt ZmFpbC1yZWFzb25zLTFvZjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNGM1NDdkOAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTFv ZjUucGF0Y2gKQEAgLTAsMCArMSw4OCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1j dnMvMjAxMi0wMi9tc2cwMDE4MC5odG1sCisKKyMjIyBzcmMvZ2RiL2dkYnNlcnZlci9DaGFuZ2VM b2cJMjAxMi8wMi8yNSAxOTo1NDo1MAkxLjU1NgorIyMjIHNyYy9nZGIvZ2Ric2VydmVyL0NoYW5n ZUxvZwkyMDEyLzAyLzI3IDE2OjE5OjE5CTEuNTU3CisjIyAtMSwzICsxLDkgQEAKKysyMDEyLTAy LTI3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgorKworKwlQUiBzZXJ2ZXIvOTY4 NAorKwkqIGxpbnV4LWxvdy5jIChwaWRfaXNfc3RvcHBlZCk6IE5ldy4KKysJKGxpbnV4X2F0dGFj aF9sd3BfMSk6IEhhbmRsZSBhdHRhY2hpbmcgdG8gJ1QgKHN0b3BwZWQpJyBwcm9jZXNzZXMuCisr CisgMjAxMi0wMi0yNSAgTHVpcyBNYWNoYWRvICA8bGd1c3Rhdm9AY29kZXNvdXJjZXJ5LmNvbT4K KyAKKyAJKiBtZW0tYnJlYWsuYyAoY2xlYXJfZ2RiX2JyZWFrcG9pbnRfY29uZGl0aW9ucyk6IEZp eCBkZS1hbGxvY2F0aW9uCistLS0gc3JjL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxMi8w Mi8yNCAxNToxNTo1NgkxLjE5MworKysrIHNyYy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIw MTIvMDIvMjcgMTY6MTk6MTkJMS4xOTQKK0BAIC01OTgsNiArNTk4LDM3IEBACisgICByZXR1cm4g cGlkOworIH0KKyAKKysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1 cycuCisrICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJl cG9ydGVkIGFzIGZhbHNlLiAgKi8KKysKKytzdGF0aWMgaW50CisrcGlkX2lzX3N0b3BwZWQgKHBp ZF90IHBpZCkKKyt7CisrICBGSUxFICpzdGF0dXNfZmlsZTsKKysgIGNoYXIgYnVmWzEwMF07Cisr ICBpbnQgcmV0dmFsID0gMDsKKysKKysgIHNucHJpbnRmIChidWYsIHNpemVvZiAoYnVmKSwgIi9w cm9jLyVkL3N0YXR1cyIsIChpbnQpIHBpZCk7CisrICBzdGF0dXNfZmlsZSA9IGZvcGVuIChidWYs ICJyIik7CisrICBpZiAoc3RhdHVzX2ZpbGUgIT0gTlVMTCkKKysgICAgeworKyAgICAgIGludCBo YXZlX3N0YXRlID0gMDsKKysKKysgICAgICB3aGlsZSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYp LCBzdGF0dXNfZmlsZSkpCisrCXsKKysJICBpZiAoc3RybmNtcCAoYnVmLCAiU3RhdGU6IiwgNikg PT0gMCkKKysJICAgIHsKKysJICAgICAgaGF2ZV9zdGF0ZSA9IDE7CisrCSAgICAgIGJyZWFrOwor KwkgICAgfQorKwl9CisrICAgICAgaWYgKGhhdmVfc3RhdGUgJiYgc3Ryc3RyIChidWYsICJUIChz dG9wcGVkKSIpICE9IE5VTEwpCisrCXJldHZhbCA9IDE7CisrICAgICAgZmNsb3NlIChzdGF0dXNf ZmlsZSk7CisrICAgIH0KKysgIHJldHVybiByZXR2YWw7CisrfQorKworIC8qIEF0dGFjaCB0byBh biBpbmZlcmlvciBwcm9jZXNzLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTY0Myw2ICs2NzQs MzMgQEAKKyAgICAgIHB0cmFjZSBjYWxsIG9uIHRoaXMgTFdQLiAgKi8KKyAgIG5ld19sd3AtPm11 c3Rfc2V0X3B0cmFjZV9mbGFncyA9IDE7CisgCisrICBpZiAocGlkX2lzX3N0b3BwZWQgKGx3cGlk KSkKKysgICAgeworKyAgICAgIGlmIChkZWJ1Z190aHJlYWRzKQorKwlmcHJpbnRmIChzdGRlcnIs CisrCQkgIkF0dGFjaGVkIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4iKTsKKysKKysgICAgICAvKiBU aGUgcHJvY2VzcyBpcyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250cm9s CisrCSBzdG9wLCB1bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVEIC8K KysJIFRBU0tfVFJBQ0VEIGRpc3RpbmN0aW9uLCBpbiB3aGljaCBjYXNlIGl0IG1pZ2h0IGJlIGlu IGEKKysJIHB0cmFjZSBzdG9wLiAgTWFrZSBzdXJlIGl0IGlzIGluIGEgcHRyYWNlIHN0b3A7IGZy b20gdGhlcmUgd2UKKysJIGNhbiBraWxsIGl0LCBzaWduYWwgaXQsIGV0IGNldGVyYS4KKysKKysJ IEZpcnN0IG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHBlbmRpbmcgU0lHU1RPUC4gIFNpbmNlIHdlIGFy ZQorKwkgYWxyZWFkeSBhdHRhY2hlZCwgdGhlIHByb2Nlc3MgY2FuIG5vdCB0cmFuc2l0aW9uIGZy b20gc3RvcHBlZAorKwkgdG8gcnVubmluZyB3aXRob3V0IGEgUFRSQUNFX0NPTlQ7IHNvIHdlIGtu b3cgdGhpcyBzaWduYWwgd2lsbAorKwkgZ28gaW50byB0aGUgcXVldWUuICBUaGUgU0lHU1RPUCBn ZW5lcmF0ZWQgYnkgUFRSQUNFX0FUVEFDSCBpcworKwkgcHJvYmFibHkgYWxyZWFkeSBpbiB0aGUg cXVldWUgKHVubGVzcyB0aGlzIGtlcm5lbCBpcyBvbGQKKysJIGVub3VnaCB0byB1c2UgVEFTS19T VE9QUEVEIGZvciBwdHJhY2Ugc3RvcHMpOyBidXQgc2luY2UKKysJIFNJR1NUT1AgaXMgbm90IGFu IFJUIHNpZ25hbCwgaXQgY2FuIG9ubHkgYmUgcXVldWVkIG9uY2UuICAqLworKyAgICAgIGtpbGxf bHdwIChsd3BpZCwgU0lHU1RPUCk7CisrCisrICAgICAgLyogRmluYWxseSwgcmVzdW1lIHRoZSBz dG9wcGVkIHByb2Nlc3MuICBUaGlzIHdpbGwgZGVsaXZlciB0aGUKKysJIFNJR1NUT1AgKG9yIGEg aGlnaGVyIHByaW9yaXR5IHNpZ25hbCwganVzdCBsaWtlIG5vcm1hbAorKwkgUFRSQUNFX0FUVEFD SCksIHdoaWNoIHdlJ2xsIGNhdGNoIGxhdGVyIG9uLiAgKi8KKysgICAgICBwdHJhY2UgKFBUUkFD RV9DT05ULCBsd3BpZCwgMCwgMCk7CisrICAgIH0KKysKKyAgIC8qIFRoZSBuZXh0IHRpbWUgd2Ug d2FpdCBmb3IgdGhpcyBMV1Agd2UnbGwgc2VlIGEgU0lHU1RPUCBhcyBQVFJBQ0VfQVRUQUNICisg ICAgICBicmluZ3MgaXQgdG8gYSBoYWx0LgorIAoKZGlmZiAtLWdpdCBhL2dkYi1hdHRhY2gtZmFp bC1yZWFzb25zLTJvZjUucGF0Y2ggYi9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy0yb2Y1LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNTY1YjkKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy0yb2Y1LnBhdGNoCkBAIC0wLDAgKzEsMTc4 IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEyLTAyL21zZzAwMTgxLmh0 bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDIvMjQgMjM6NDg6MzcJMS4xMzg2OQor IyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTIvMDIvMjcgMTY6MjI6MDYJMS4xMzg3MAorIyMgLTEs MyArMSwxMyBAQAorKzIwMTItMDItMjcgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+ CisrCisrCSogbGludXgtbmF0LmMgKHBpZF9pc19zdG9wcGVkKTogRGVsZXRlLCBtb3ZlZCB0byBj b21tb24vLgorKwkobGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQpOiBBZGp1c3QgdG8gdXNlCisr CWxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQuCisrCSogY29tbW9uL2xpbnV4LXByb2Nmcy5oIChs aW51eF9wcm9jX3BpZF9pc19zdG9wcGVkKTogRGVjbGFyZS4KKysJKiBjb21tb24vbGludXgtcHJv Y2ZzLmMgKGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQpOiBOZXcgZnVuY3Rpb24sCisrCWJhc2Vk IG9uIHBpZF9pc19zdG9wcGVkIGZyb20gYm90aCBsaW51eC1uYXQuYyBhbmQKKysJZ2Ric2VydmVy L2xpbnV4LWxvdy5jLCBhbmQgcmVuYW1lZC4KKysKKyAyMDEyLTAyLTI0ICBNYWNpZWogVy4gUm96 eWNraSAgPG1hY3JvQGNvZGVzb3VyY2VyeS5jb20+CisgCisgCSogcmVtb3RlLmMgKHJlbW90ZV93 YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlKTogTmV3IGZ1bmN0aW9uLgorLS0tIHNyYy9nZGIv bGludXgtbmF0LmMJMjAxMi8wMi8xNiAyMTowNzoyMAkxLjIzOQorKysrIHNyYy9nZGIvbGludXgt bmF0LmMJMjAxMi8wMi8yNyAxNjoyMjoxMwkxLjI0MAorQEAgLTEzNTYsMzcgKzEzNTYsNiBAQAor ICAgZGVsZXRlX2x3cCAobHAtPnB0aWQpOworIH0KKyAKKy0vKiBEZXRlY3QgYFQgKHN0b3BwZWQp JyBpbiBgL3Byb2MvUElEL3N0YXR1cycuCistICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAo dHJhY2luZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFzIGZhbHNlLiAgKi8KKy0KKy1zdGF0aWMgaW50 CistcGlkX2lzX3N0b3BwZWQgKHBpZF90IHBpZCkKKy17CistICBGSUxFICpzdGF0dXNfZmlsZTsK Ky0gIGNoYXIgYnVmWzEwMF07CistICBpbnQgcmV0dmFsID0gMDsKKy0KKy0gIHNucHJpbnRmIChi dWYsIHNpemVvZiAoYnVmKSwgIi9wcm9jLyVkL3N0YXR1cyIsIChpbnQpIHBpZCk7CistICBzdGF0 dXNfZmlsZSA9IGZvcGVuIChidWYsICJyIik7CistICBpZiAoc3RhdHVzX2ZpbGUgIT0gTlVMTCkK Ky0gICAgeworLSAgICAgIGludCBoYXZlX3N0YXRlID0gMDsKKy0KKy0gICAgICB3aGlsZSAoZmdl dHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBpZiAoc3RybmNt cCAoYnVmLCAiU3RhdGU6IiwgNikgPT0gMCkKKy0JICAgIHsKKy0JICAgICAgaGF2ZV9zdGF0ZSA9 IDE7CistCSAgICAgIGJyZWFrOworLQkgICAgfQorLQl9CistICAgICAgaWYgKGhhdmVfc3RhdGUg JiYgc3Ryc3RyIChidWYsICJUIChzdG9wcGVkKSIpICE9IE5VTEwpCistCXJldHZhbCA9IDE7Cist ICAgICAgZmNsb3NlIChzdGF0dXNfZmlsZSk7CistICAgIH0KKy0gIHJldHVybiByZXR2YWw7Cist fQorLQorIC8qIFdhaXQgZm9yIHRoZSBMV1Agc3BlY2lmaWVkIGJ5IExQLCB3aGljaCB3ZSBoYXZl IGp1c3QgYXR0YWNoZWQgdG8uCisgICAgUmV0dXJucyBhIHdhaXQgc3RhdHVzIGZvciB0aGF0IExX UCwgdG8gY2FjaGUuICAqLworIAorQEAgLTEzOTcsNyArMTM2Niw3IEBACisgICBwaWRfdCBuZXdf cGlkLCBwaWQgPSBHRVRfTFdQIChwdGlkKTsKKyAgIGludCBzdGF0dXM7CisgCistICBpZiAocGlk X2lzX3N0b3BwZWQgKHBpZCkpCisrICBpZiAobGludXhfcHJvY19waWRfaXNfc3RvcHBlZCAocGlk KSkKKyAgICAgeworICAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCisgCWZwcmludGZfdW5maWx0 ZXJlZCAoZ2RiX3N0ZGxvZywKKy0tLSBzcmMvZ2RiL2NvbW1vbi9saW51eC1wcm9jZnMuYwkyMDEy LzAxLzA0IDA4OjE3OjE4CTEuMgorKysrIHNyYy9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5jCTIw MTIvMDIvMjcgMTY6MjI6MTQJMS4zCitAQCAtNTMsMyArNTMsMzQgQEAKKyAKKyAgIHJldHVybiB0 Z2lkOworIH0KKysKKysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1 cycuCisrICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJl cG9ydGVkIGFzIGZhbHNlLiAgKi8KKysKKytpbnQKKytsaW51eF9wcm9jX3BpZF9pc19zdG9wcGVk IChwaWRfdCBwaWQpCisreworKyAgRklMRSAqc3RhdHVzX2ZpbGU7CisrICBjaGFyIGJ1ZlsxMDBd OworKyAgaW50IHJldHZhbCA9IDA7CisrCisrICBzbnByaW50ZiAoYnVmLCBzaXplb2YgKGJ1Ziks ICIvcHJvYy8lZC9zdGF0dXMiLCAoaW50KSBwaWQpOworKyAgc3RhdHVzX2ZpbGUgPSBmb3BlbiAo YnVmLCAiciIpOworKyAgaWYgKHN0YXR1c19maWxlICE9IE5VTEwpCisrICAgIHsKKysgICAgICBp bnQgaGF2ZV9zdGF0ZSA9IDA7CisrCisrICAgICAgd2hpbGUgKGZnZXRzIChidWYsIHNpemVvZiAo YnVmKSwgc3RhdHVzX2ZpbGUpKQorKwl7CisrCSAgaWYgKHN0cm5jbXAgKGJ1ZiwgIlN0YXRlOiIs IDYpID09IDApCisrCSAgICB7CisrCSAgICAgIGhhdmVfc3RhdGUgPSAxOworKwkgICAgICBicmVh azsKKysJICAgIH0KKysJfQorKyAgICAgIGlmIChoYXZlX3N0YXRlICYmIHN0cnN0ciAoYnVmLCAi VCAoc3RvcHBlZCkiKSAhPSBOVUxMKQorKwlyZXR2YWwgPSAxOworKyAgICAgIGZjbG9zZSAoc3Rh dHVzX2ZpbGUpOworKyAgICB9CisrICByZXR1cm4gcmV0dmFsOworK30KKy0tLSBzcmMvZ2RiL2Nv bW1vbi9saW51eC1wcm9jZnMuaAkyMDEyLzAxLzA0IDA4OjE3OjE4CTEuMgorKysrIHNyYy9nZGIv Y29tbW9uL2xpbnV4LXByb2Nmcy5oCTIwMTIvMDIvMjcgMTY6MjI6MTUJMS4zCitAQCAtMjYsNCAr MjYsOSBAQAorIAorIGV4dGVybiBpbnQgbGludXhfcHJvY19nZXRfdGdpZCAoaW50IGx3cGlkKTsK KyAKKysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1cycuCisrICAg T3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFz IGZhbHNlLiAgKi8KKysKKytleHRlcm4gaW50IGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKHBp ZF90IHBpZCk7CisrCisgI2VuZGlmIC8qIENPTU1PTl9MSU5VWF9QUk9DRlNfSCAqLworIyMjIHNy Yy9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwkyMDEyLzAyLzI3IDE2OjE5OjE5CTEuNTU3CisjIyMg c3JjL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCTIwMTIvMDIvMjcgMTY6MjI6MTUJMS41NTgKKyMj IC0xLDUgKzEsMTAgQEAKKyAyMDEyLTAyLTI3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQu Y29tPgorIAorKwkqIGxpbnV4LWxvdy5jIChwaWRfaXNfc3RvcHBlZCk6IERlbGV0ZSwgbW92ZWQg dG8gY29tbW9uLy4KKysJKGxpbnV4X2F0dGFjaF9sd3BfMSk6IEFkanVzdCB0byB1c2UgbGludXhf cHJvY19waWRfaXNfc3RvcHBlZC4KKysKKysyMDEyLTAyLTI3ICBQZWRybyBBbHZlcyAgPHBhbHZl c0ByZWRoYXQuY29tPgorKworIAlQUiBzZXJ2ZXIvOTY4NAorIAkqIGxpbnV4LWxvdy5jIChwaWRf aXNfc3RvcHBlZCk6IE5ldy4KKyAJKGxpbnV4X2F0dGFjaF9sd3BfMSk6IEhhbmRsZSBhdHRhY2hp bmcgdG8gJ1QgKHN0b3BwZWQpJyBwcm9jZXNzZXMuCistLS0gc3JjL2dkYi9nZGJzZXJ2ZXIvbGlu dXgtbG93LmMJMjAxMi8wMi8yNyAxNjoxOToxOQkxLjE5NAorKysrIHNyYy9nZGIvZ2Ric2VydmVy L2xpbnV4LWxvdy5jCTIwMTIvMDIvMjcgMTY6MjI6MTYJMS4xOTUKK0BAIC01OTgsMzcgKzU5OCw2 IEBACisgICByZXR1cm4gcGlkOworIH0KKyAKKy0vKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBg L3Byb2MvUElEL3N0YXR1cycuCistICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2lu ZyBzdG9wKScgYXJlIHJlcG9ydGVkIGFzIGZhbHNlLiAgKi8KKy0KKy1zdGF0aWMgaW50CistcGlk X2lzX3N0b3BwZWQgKHBpZF90IHBpZCkKKy17CistICBGSUxFICpzdGF0dXNfZmlsZTsKKy0gIGNo YXIgYnVmWzEwMF07CistICBpbnQgcmV0dmFsID0gMDsKKy0KKy0gIHNucHJpbnRmIChidWYsIHNp emVvZiAoYnVmKSwgIi9wcm9jLyVkL3N0YXR1cyIsIChpbnQpIHBpZCk7CistICBzdGF0dXNfZmls ZSA9IGZvcGVuIChidWYsICJyIik7CistICBpZiAoc3RhdHVzX2ZpbGUgIT0gTlVMTCkKKy0gICAg eworLSAgICAgIGludCBoYXZlX3N0YXRlID0gMDsKKy0KKy0gICAgICB3aGlsZSAoZmdldHMgKGJ1 Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBpZiAoc3RybmNtcCAoYnVm LCAiU3RhdGU6IiwgNikgPT0gMCkKKy0JICAgIHsKKy0JICAgICAgaGF2ZV9zdGF0ZSA9IDE7Cist CSAgICAgIGJyZWFrOworLQkgICAgfQorLQl9CistICAgICAgaWYgKGhhdmVfc3RhdGUgJiYgc3Ry c3RyIChidWYsICJUIChzdG9wcGVkKSIpICE9IE5VTEwpCistCXJldHZhbCA9IDE7CistICAgICAg ZmNsb3NlIChzdGF0dXNfZmlsZSk7CistICAgIH0KKy0gIHJldHVybiByZXR2YWw7CistfQorLQor IC8qIEF0dGFjaCB0byBhbiBpbmZlcmlvciBwcm9jZXNzLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAor QEAgLTY3NCw3ICs2NDMsNyBAQAorICAgICAgcHRyYWNlIGNhbGwgb24gdGhpcyBMV1AuICAqLwor ICAgbmV3X2x3cC0+bXVzdF9zZXRfcHRyYWNlX2ZsYWdzID0gMTsKKyAKKy0gIGlmIChwaWRfaXNf c3RvcHBlZCAobHdwaWQpKQorKyAgaWYgKGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKGx3cGlk KSkKKyAgICAgeworICAgICAgIGlmIChkZWJ1Z190aHJlYWRzKQorIAlmcHJpbnRmIChzdGRlcnIs CgpkaWZmIC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtM29mNS5wYXRjaCBiL2dkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTNvZjUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYTE2NjE4ZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFz b25zLTNvZjUucGF0Y2gKQEAgLTAsMCArMSw1ODMgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDEyLTAzL21zZzAwMTY5Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaCAxLzNd IGF0dGFjaC1mYWlsLXJlYXNvbnM6IFJlc2h1ZmZsZSBjb2RlCisKK0hpLAorCit0aGlzIHBhdGNo IGRvZXMgbm90IG1ha2Ugc2Vuc2Ugb24gaXRzIG93biBidXQgaXQgY29udGFpbnMgYWxsIHRoZQor dW5pbnRlcmVzdGluZyBjb2RlIG1vdmVzIC8gcmVjb25maWd1cmF0aW9ucy4KKworCitUaGFua3Ms CitKYW4KKworCitnZGIvCisyMDEyLTAzLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmluIChsaW51eC1wdHJhY2Uubyk6IE5ldy4K KwkqIGNvbW1vbi9saW51eC1wcm9jZnMuYyAobGludXhfcHJvY19waWRfaXNfem9tYmllKTogTmV3 LAorCWZyb20gbGludXgtbmF0LmMuCisJKiBjb21tb24vbGludXgtcHJvY2ZzLmggKGxpbnV4X3By b2NfcGlkX2lzX3pvbWJpZSk6IE5ldyBkZWNsYXJhdGlvbi4KKwkqIGNvbW1vbi9saW51eC1wdHJh Y2UuYzogTmV3IGZpbGUuCisJKiBjb25maWcvYWxwaGEvYWxwaGEtbGludXgubWggKE5BVERFUEZJ TEVTKTogQWRkIGxpbnV4LXB0cmFjZS5vLgorCSogY29uZmlnL2FybS9saW51eC5taDogTGlrZXdp c2UuCisJKiBjb25maWcvaTM4Ni9saW51eC5taDogTGlrZXdpc2UuCisJKiBjb25maWcvaTM4Ni9s aW51eDY0Lm1oOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9pYTY0L2xpbnV4Lm1oOiBMaWtld2lzZS4K KwkqIGNvbmZpZy9tMzJyL2xpbnV4Lm1oOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9tNjhrL2xpbnV4 Lm1oOiBMaWtld2lzZS4KKwkqIGNvbmZpZy9taXBzL2xpbnV4Lm1oOiBMaWtld2lzZS4KKwkqIGNv bmZpZy9wYS9saW51eC5taDogTGlrZXdpc2UuCisJKiBjb25maWcvcG93ZXJwYy9saW51eC5taDog TGlrZXdpc2UuCisJKiBjb25maWcvcG93ZXJwYy9wcGM2NC1saW51eC5taDogTGlrZXdpc2UuCisJ KiBjb25maWcvcG93ZXJwYy9zcHUtbGludXgubWg6IExpa2V3aXNlLgorCSogY29uZmlnL3MzOTAv czM5MC5taDogTGlrZXdpc2UuCisJKiBjb25maWcvc3BhcmMvbGludXgubWg6IExpa2V3aXNlLgor CSogY29uZmlnL3NwYXJjL2xpbnV4NjQubWg6IExpa2V3aXNlLgorCSogY29uZmlnL3h0ZW5zYS9s aW51eC5taDogTGlrZXdpc2UuCisJKiBsaW51eC1uYXQuYyAobGludXhfbHdwX2lzX3pvbWJpZSk6 IFJlbW92ZSwgbW92ZSBpdCB0bworCWNvbW1vbi9saW51eC1wcm9jZnMuYy4KKwkod2FpdF9sd3Ap OiBSZW5hbWUgbGludXhfbHdwX2lzX3pvbWJpZSB0byBsaW51eF9wcm9jX3BpZF9pc196b21iaWUu CisKK2dkYi9nZGJzZXJ2ZXIvCisyMDEyLTAzLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmluIChsaW51eC1wdHJhY2Uubyk6IE5l dy4KKwkqIGNvbmZpZ3VyZS5zcnYgKGFybSotKi1saW51eCosIGJmaW4tKi0qbGludXgqLCBjcmlz djMyLSotbGludXgqKQorCShjcmlzLSotbGludXgqLCBpWzM0NTY3XTg2LSotbGludXgqLCBpYTY0 LSotbGludXgqLCBtMzJyKi0qLWxpbnV4KikKKwkobTY4Ki0qLWxpbnV4KiwgbTY4Ki0qLXVjbGlu dXgqLCBtaXBzKi0qLWxpbnV4KiwgcG93ZXJwYyotKi1saW51eCopCisJKHMzOTAqLSotbGludXgq LCBzaCotKi1saW51eCosIHNwYXJjKi0qLWxpbnV4KiwgdGljNngtKi11Y2xpbnV4KQorCSh4ODZf NjQtKi1saW51eCosIHh0ZW5zYSotKi1saW51eCopOiBBZGQgbGludXgtcHRyYWNlLm8gdG8gU1JW X1RHVE9CSgorCW9mIHRoZXNlIHRhcmdldHMuCisJKiBsaW51eC1sb3cuYyAobGludXhfYXR0YWNo X2x3cF8xKTogUmVtb3ZlIHJlZHVuZGVudCBlbHNlIGNsYXVzZS4KKworSW5kZXg6IGdkYi03LjQu NTAuMjAxMjAxMjAvZ2RiL01ha2VmaWxlLmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4y MDEyMDEyMC5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDEyLTAzLTA2IDA3OjM5OjQxLjAwMDAwMDAw MCArMDEwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL01ha2VmaWxlLmluCTIwMTItMDMt MDYgMDc6Mzk6NTAuNzcxNzEzMTI4ICswMTAwCitAQCAtMTk2OCw2ICsxOTY4LDEwIEBAIGxpbnV4 LXByb2Nmcy5vOiAkKHNyY2RpcikvY29tbW9uL2xpbnV4LXAKKyAJJChDT01QSUxFKSAkKHNyY2Rp cikvY29tbW9uL2xpbnV4LXByb2Nmcy5jCisgCSQoUE9TVENPTVBJTEUpCisgCisrbGludXgtcHRy YWNlLm86ICQoc3JjZGlyKS9jb21tb24vbGludXgtcHRyYWNlLmMKKysJJChDT01QSUxFKSAkKHNy Y2RpcikvY29tbW9uL2xpbnV4LXB0cmFjZS5jCisrCSQoUE9TVENPTVBJTEUpCisrCisgIworICMg Z2RiL3R1aS8gZGVwZW5kZW5jaWVzCisgIworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2Ri L2NvbW1vbi9saW51eC1wcm9jZnMuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAx MjAub3JpZy9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5jCTIwMTItMDMtMDYgMDc6Mzk6NDEuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXBy b2Nmcy5jCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzcxNzEzMTI4ICswMTAwCitAQCAtODQsMyArODQs MzQgQEAgbGludXhfcHJvY19waWRfaXNfc3RvcHBlZCAocGlkX3QgcGlkKQorICAgICB9CisgICBy ZXR1cm4gcmV0dmFsOworIH0KKysKKysvKiBTZWUgbGludXgtcHJvY2ZzLmggZGVjbGFyYXRpb24u ICAqLworKworK2ludAorK2xpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAocGlkX3QgcGlkKQorK3sK KysgIGNoYXIgYnVmZmVyWzEwMF07CisrICBGSUxFICpwcm9jZmlsZTsKKysgIGludCByZXR2YWw7 CisrICBpbnQgaGF2ZV9zdGF0ZTsKKysKKysgIHhzbnByaW50ZiAoYnVmZmVyLCBzaXplb2YgKGJ1 ZmZlciksICIvcHJvYy8lZC9zdGF0dXMiLCAoaW50KSBwaWQpOworKyAgcHJvY2ZpbGUgPSBmb3Bl biAoYnVmZmVyLCAiciIpOworKyAgaWYgKHByb2NmaWxlID09IE5VTEwpCisrICAgIHsKKysgICAg ICB3YXJuaW5nIChfKCJ1bmFibGUgdG8gb3BlbiAvcHJvYyBmaWxlICclcyciKSwgYnVmZmVyKTsK KysgICAgICByZXR1cm4gMDsKKysgICAgfQorKworKyAgaGF2ZV9zdGF0ZSA9IDA7CisrICB3aGls ZSAoZmdldHMgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpLCBwcm9jZmlsZSkgIT0gTlVMTCkKKysg ICAgaWYgKHN0cm5jbXAgKGJ1ZmZlciwgIlN0YXRlOiIsIDYpID09IDApCisrICAgICAgeworKwlo YXZlX3N0YXRlID0gMTsKKysJYnJlYWs7CisrICAgICAgfQorKyAgcmV0dmFsID0gKGhhdmVfc3Rh dGUKKysJICAgICYmIHN0cmNtcCAoYnVmZmVyLCAiU3RhdGU6XHRaICh6b21iaWUpXG4iKSA9PSAw KTsKKysgIGZjbG9zZSAocHJvY2ZpbGUpOworKyAgcmV0dXJuIHJldHZhbDsKKyt9CitJbmRleDog Z2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5oCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmlnL2dkYi9jb21tb24vbGludXgtcHJvY2ZzLmgJ MjAxMi0wMy0wNiAwNzozOTo0MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIw MTIwL2dkYi9jb21tb24vbGludXgtcHJvY2ZzLmgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzE3MTMx MjggKzAxMDAKK0BAIC0zMSw0ICszMSw4IEBAIGV4dGVybiBpbnQgbGludXhfcHJvY19nZXRfdGdp ZCAoaW50IGx3cGkKKyAKKyBleHRlcm4gaW50IGxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKHBp ZF90IHBpZCk7CisgCisrLyogUmV0dXJuIG5vbi16ZXJvIGlmIFBJRCBpcyBhIHpvbWJpZS4gICov CisrCisrZXh0ZXJuIGludCBsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZF90IHBpZCk7Cisr CisgI2VuZGlmIC8qIENPTU1PTl9MSU5VWF9QUk9DRlNfSCAqLworSW5kZXg6IGdkYi03LjQuNTAu MjAxMjAxMjAvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjQuNTAu MjAxMjAxMjAvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3 MTcxMzEyOCArMDEwMAorQEAgLTAsMCArMSwyNiBAQAorKy8qIExpbnV4LXNwZWNpZmljIHB0cmFj ZSBtYW5pcHVsYXRpb24gcm91dGluZXMuCisrICAgQ29weXJpZ2h0IChDKSAyMDEyIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4K KysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmZGVm IEdEQlNFUlZFUgorKyNpbmNsdWRlICJzZXJ2ZXIuaCIKKysjZWxzZQorKyNpbmNsdWRlICJkZWZz LmgiCisrI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKKysjZW5kaWYKKysKKysjaW5jbHVkZSAibGlu dXgtcHRyYWNlLmgiCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2FscGhh L2FscGhhLWxpbnV4Lm1oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmln L2dkYi9jb25maWcvYWxwaGEvYWxwaGEtbGludXgubWgJMjAxMi0wMS0xMCAxNzozMDo0NC4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvYWxwaGEvYWxw aGEtbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzE3MTMxMjggKzAxMDAKK0BAIC0yLDcg KzIsNyBAQAorIE5BVF9GSUxFPSBjb25maWcvbm0tbGludXguaAorIE5BVERFUEZJTEVTPSBpbmYt cHRyYWNlLm8gYWxwaGEtbGludXgtbmF0Lm8gXAorIAlmb3JrLWNoaWxkLm8gcHJvYy1zZXJ2aWNl Lm8gbGludXgtdGhyZWFkLWRiLm8gXAorLQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51 eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGlu dXgtZm9yay5vIGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChz cmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxp YnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKK0luZGV4OiBnZGItNy40 LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvYXJtL2xpbnV4Lm1oCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuNC41MC4yMDEyMDEyMC5vcmlnL2dkYi9jb25maWcvYXJtL2xpbnV4Lm1oCTIwMTEtMDgtMjQg MTQ6MDc6MjUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29u ZmlnL2FybS9saW51eC5taAkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3MjcxMzEyNSArMDEwMAorQEAg LTMsNyArMyw3IEBACisgTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCisgTkFUREVQRklMRVM9 IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gYXJtLWxpbnV4LW5hdC5vIFwKKyAJcHJvYy1zZXJ2 aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAorLQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBs aW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8g bGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0g JChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgTE9BRExJQkVTPSAtbGRsICQoUkRZTkFN SUMpCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2kzODYvbGludXgubWgK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9pMzg2 L2xpbnV4Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu NC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1 MC43NzI3MTMxMjUgKzAxMDAKK0BAIC00LDcgKzQsNyBAQCBOQVRfRklMRT0gbm0tbGludXguaAor IE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKyAJaTM4Ni1uYXQubyBp Mzg2LWxpbnV4LW5hdC5vIFwKKyAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAor LQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8K KysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5v IGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0 CisgCisgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3Mg dG8gc3ltYm9scyBpbiB0aGUKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcv aTM4Ni9saW51eDY0Lm1oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEyMC5vcmln L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NDEuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2kzODYvbGludXg2NC5t aAkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3MjcxMzEyNSArMDEwMAorQEAgLTMsNyArMyw3IEBAIE5B VERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKyAJaTM4Ni1uYXQubyBhbWQ2 NC1uYXQubyBhbWQ2NC1saW51eC1uYXQubyBcCisgCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5v IFwKKyAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gbGludXgtZm9yay5vIFwKKy0J bGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRfRklM RT0gbm0tbGludXg2NC5oCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0 CisgCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2lhNjQvbGludXgubWgK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9pYTY0 L2xpbnV4Lm1oCTIwMTItMDEtMTAgMTc6MzA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu NC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL2lhNjQvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1 MC43NzI3MTMxMjUgKzAxMDAKK0BAIC01LDcgKzUsNyBAQCBOQVRERVBGSUxFUz0gaW5mLXB0cmFj ZS5vIGZvcmstY2hpbGQubyBcCisgCWNvcmUtcmVnc2V0Lm8gaWE2NC1saW51eC1uYXQubyBcCisg CXByb2Mtc2VydmljZS5vIGxpbnV4LXRocmVhZC1kYi5vIFwKKyAJbGludXgtbmF0Lm8gbGludXgt b3NkYXRhLm8gbGludXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJvY2Zz Lm8gbGludXgtcHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxp c3QKKyAKKyBMT0FETElCRVMgPSAtbGRsICQoUkRZTkFNSUMpCitJbmRleDogZ2RiLTcuNC41MC4y MDEyMDEyMC9nZGIvY29uZmlnL20zMnIvbGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40 LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9tMzJyL2xpbnV4Lm1oCTIwMTItMDEtMTAgMTc6 MzA6NDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmln L20zMnIvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzM3MTMxMjIgKzAxMDAKK0BAIC0z LDcgKzMsNyBAQAorIE5BVF9GSUxFPSBjb25maWcvbm0tbGludXguaAorIE5BVERFUEZJTEVTPSBp bmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vCQkJCVwKKyAJbTMyci1saW51eC1uYXQubyBwcm9jLXNl cnZpY2UubyBsaW51eC10aHJlYWQtZGIubwlcCistCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5v IGxpbnV4LWZvcmsubyBsaW51eC1wcm9jZnMubworKwlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEu byBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRfQ0RFUFMg PSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyBMT0FETElCRVM9IC1sZGwgJChSRFlO QU1JQykKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbTY4ay9saW51eC5t aAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL202 OGsvbGludXgubWgJMjAxMi0wMS0xMCAxNzozMDo0NS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbTY4ay9saW51eC5taAkyMDEyLTAzLTA2IDA3OjM5 OjUwLjc3MzcxMzEyMiArMDEwMAorQEAgLTQsNyArNCw3IEBAIE5BVF9GSUxFPSBjb25maWcvbm0t bGludXguaAorIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKKyAJbTY4 a2xpbnV4LW5hdC5vIFwKKyAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAorLQls aW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8KKysJ bGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5vIGxp bnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0Cisg CisgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8g c3ltYm9scyBpbiB0aGUKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbWlw cy9saW51eC5taAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIv Y29uZmlnL21pcHMvbGludXgubWgJMjAxMS0wOC0yNCAxNDowNzoyNi4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvbWlwcy9saW51eC5taAkyMDEyLTAz LTA2IDA3OjM5OjUwLjc3MzcxMzEyMiArMDEwMAorQEAgLTMsNyArMyw3IEBAIE5BVF9GSUxFPSBj b25maWcvbm0tbGludXguaAorIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5v IG1pcHMtbGludXgtbmF0Lm8gXAorIAlsaW51eC10aHJlYWQtZGIubyBwcm9jLXNlcnZpY2UubyBc CisgCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZvcmsubyBcCistCWxpbnV4LXBy b2Nmcy5vCisrCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChz cmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgTE9BRExJQkVTID0gLWxkbCAkKFJEWU5BTUlD KQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZpZy9wYS9saW51eC5taAorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL3BhL2xpbnV4 Lm1oCTIwMTItMDEtMTAgMTc6MzA6NDUuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4y MDEyMDEyMC9nZGIvY29uZmlnL3BhL2xpbnV4Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzczNzEz MTIyICswMTAwCitAQCAtMyw3ICszLDcgQEAgTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCisg TkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAorIAlocHBhLWxpbnV4LW5h dC5vIHByb2Mtc2VydmljZS5vIGxpbnV4LXRocmVhZC1kYi5vIFwKKyAJbGludXgtbmF0Lm8gbGlu dXgtb3NkYXRhLm8gbGludXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJv Y2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNl Lmxpc3QKKyAKKyBMT0FETElCRVMgPSAtbGRsICQoUkRZTkFNSUMpCitJbmRleDogZ2RiLTcuNC41 MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Bvd2VycGMvbGludXgubWgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9wb3dlcnBjL2xpbnV4Lm1oCTIwMTEt MDgtMjQgMTQ6MDc6MjcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9n ZGIvY29uZmlnL3Bvd2VycGMvbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzM3MTMxMjIg KzAxMDAKK0BAIC01LDcgKzUsNyBAQCBYTV9DTElCUz0KKyBOQVRfRklMRT0gY29uZmlnL25tLWxp bnV4LmgKKyBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCisgCXBwYy1s aW51eC1uYXQubyBwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCistCWxpbnV4LW5h dC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZvcmsubyBsaW51eC1wcm9jZnMubworKwlsaW51eC1u YXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8gbGludXgtcHRy YWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyBMT0FE TElCRVMgPSAtbGRsICQoUkRZTkFNSUMpCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIv Y29uZmlnL3Bvd2VycGMvcHBjNjQtbGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUw LjIwMTIwMTIwLm9yaWcvZ2RiL2NvbmZpZy9wb3dlcnBjL3BwYzY0LWxpbnV4Lm1oCTIwMTEtMDgt MjQgMTQ6MDc6MjcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIv Y29uZmlnL3Bvd2VycGMvcHBjNjQtbGludXgubWgJMjAxMi0wMy0wNiAwNzozOTo1MC43NzQ3MTMx MTggKzAxMDAKK0BAIC01LDcgKzUsNyBAQCBYTV9DTElCUz0KKyBOQVRfRklMRT0gY29uZmlnL25t LWxpbnV4LmgKKyBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCisgCXBw Yy1saW51eC1uYXQubyBwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCistCWxpbnV4 LW5hdC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZvcmsubyBsaW51eC1wcm9jZnMubworKwlsaW51 eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8gbGludXgt cHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNlLmxpc3QKKyAKKyAj IFRoZSBQb3dlclBDIGhhcyBzZXZlcmUgbGltaXRhdGlvbnMgb24gVE9DIHNpemUsIGFuZCB1c2Vz IHRoZW0gZXZlbgorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZpZy9wb3dlcnBj L3NwdS1saW51eC5taAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9n ZGIvY29uZmlnL3Bvd2VycGMvc3B1LWxpbnV4Lm1oCTIwMTEtMDgtMjQgMTQ6MDc6MjcuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Bvd2VycGMvc3B1 LWxpbnV4Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzc0NzEzMTE4ICswMTAwCitAQCAtNCw1ICs0 LDUgQEAKKyAjIFBQVSBzaWRlIG9mIHRoZSBDZWxsIEJFIGFuZCBkZWJ1Z2dpbmcgdGhlIFNQVSBz aWRlLgorIAorIE5BVERFUEZJTEVTID0gc3B1LWxpbnV4LW5hdC5vIGZvcmstY2hpbGQubyBpbmYt cHRyYWNlLm8gXAorLQkgICAgICBsaW51eC1wcm9jZnMubworKwkgICAgICBsaW51eC1wcm9jZnMu byBsaW51eC1wdHJhY2UubworIAorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbmZp Zy9zMzkwL3MzOTAubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcv Z2RiL2NvbmZpZy9zMzkwL3MzOTAubWgJMjAxMi0wMS0wNSAxODowNzowNS4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvczM5MC9zMzkwLm1oCTIwMTIt MDMtMDYgMDc6Mzk6NTAuNzc0NzEzMTE4ICswMTAwCitAQCAtMiw2ICsyLDYgQEAKKyBOQVRfRklM RT0gY29uZmlnL25tLWxpbnV4LmgKKyBOQVRERVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hp bGQubyBzMzkwLW5hdC5vIFwKKyAJbGludXgtdGhyZWFkLWRiLm8gcHJvYy1zZXJ2aWNlLm8gXAor LQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1mb3JrLm8gbGludXgtcHJvY2ZzLm8K KysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgtZm9yay5vIGxpbnV4LXByb2Nmcy5v IGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0 CisgTE9BRExJQkVTID0gLWxkbCAkKFJEWU5BTUlDKQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAx MjAvZ2RiL2NvbmZpZy9zcGFyYy9saW51eC5taAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAu MjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL3NwYXJjL2xpbnV4Lm1oCTIwMTItMDEtMTAgMTc6MzA6 NDkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29uZmlnL3Nw YXJjL2xpbnV4Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzc0NzEzMTE4ICswMTAwCitAQCAtNCw3 ICs0LDcgQEAgTkFUREVQRklMRVM9IHNwYXJjLW5hdC5vIHNwYXJjLWxpbnV4LW5hdAorIAljb3Jl LXJlZ3NldC5vIGZvcmstY2hpbGQubyBpbmYtcHRyYWNlLm8gXAorIAlwcm9jLXNlcnZpY2UubyBs aW51eC10aHJlYWQtZGIubyBcCisgCWxpbnV4LW5hdC5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWZv cmsubyBcCistCWxpbnV4LXByb2Nmcy5vCisrCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5v CisgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgIyBUaGUgZHlu YW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0 aGUKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvc3BhcmMvbGludXg2NC5t aAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29uZmlnL3Nw YXJjL2xpbnV4NjQubWgJMjAxMi0wMS0xMCAxNzozMDo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcvc3BhcmMvbGludXg2NC5taAkyMDEyLTAzLTA2 IDA3OjM5OjUwLjc3NTcxMzExNCArMDEwMAorQEAgLTUsNyArNSw3IEBAIE5BVERFUEZJTEVTPSBz cGFyYy1uYXQubyBzcGFyYzY0LW5hdC5vIHMKKyAJZm9yay1jaGlsZC5vIGluZi1wdHJhY2UubyBc CisgCXByb2Mtc2VydmljZS5vIGxpbnV4LXRocmVhZC1kYi5vIFwKKyAJbGludXgtbmF0Lm8gbGlu dXgtb3NkYXRhLm8gbGludXgtZm9yay5vIFwKKy0JbGludXgtcHJvY2ZzLm8KKysJbGludXgtcHJv Y2ZzLm8gbGludXgtcHRyYWNlLm8KKyBOQVRfQ0RFUFMgPSAkKHNyY2RpcikvcHJvYy1zZXJ2aWNl Lmxpc3QKKyAKKyAjIFRoZSBkeW5hbWljYWxseSBsb2FkZWQgbGlidGhyZWFkX2RiIG5lZWRzIGFj Y2VzcyB0byBzeW1ib2xzIGluIHRoZQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2Nv bmZpZy94dGVuc2EvbGludXgubWgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIw Lm9yaWcvZ2RiL2NvbmZpZy94dGVuc2EvbGludXgubWgJMjAxMS0wOC0yNCAxNDowNzoyNy4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb25maWcveHRlbnNhL2xp bnV4Lm1oCTIwMTItMDMtMDYgMDc6Mzk6NTAuNzc1NzEzMTE0ICswMTAwCitAQCAtNCw3ICs0LDcg QEAgTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCisgCisgTkFUREVQRklMRVM9IGluZi1wdHJh Y2UubyBmb3JrLWNoaWxkLm8geHRlbnNhLWxpbnV4LW5hdC5vIFwKKyAJbGludXgtdGhyZWFkLWRi Lm8gcHJvYy1zZXJ2aWNlLm8gXAorLQlsaW51eC1uYXQubyBsaW51eC1vc2RhdGEubyBsaW51eC1m b3JrLm8gbGludXgtcHJvY2ZzLm8KKysJbGludXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gbGludXgt Zm9yay5vIGxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vCisgTkFUX0NERVBTID0gJChzcmNk aXIpL3Byb2Mtc2VydmljZS5saXN0CisgCisgTE9BRExJQkVTID0gLWxkbCAkKFJEWU5BTUlDKQor SW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbgorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvZ2Ric2VydmVyL01ha2Vm aWxlLmluCTIwMTItMDEtMDQgMDk6MTc6MjMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41 MC4yMDEyMDEyMC9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTItMDMtMDYgMDc6Mzk6NTAu Nzc1NzEzMTE0ICswMTAwCitAQCAtNDA4LDYgKzQwOCw5IEBAIHNpZ25hbHMubzogLi4vY29tbW9u L3NpZ25hbHMuYyAkKHNlcnZlcl8KKyBsaW51eC1wcm9jZnMubzogLi4vY29tbW9uL2xpbnV4LXBy b2Nmcy5jICQoc2VydmVyX2gpCisgCSQoQ0MpIC1jICQoQ1BQRkxBR1MpICQoSU5URVJOQUxfQ0ZM QUdTKSAkPCAtREdEQlNFUlZFUgorIAorK2xpbnV4LXB0cmFjZS5vOiAuLi9jb21tb24vbGludXgt cHRyYWNlLmMgJChzZXJ2ZXJfaCkKKysJJChDQykgLWMgJChDUFBGTEFHUykgJChJTlRFUk5BTF9D RkxBR1MpICQ8IC1ER0RCU0VSVkVSCisrCisgY29tbW9uLXV0aWxzLm86IC4uL2NvbW1vbi9jb21t b24tdXRpbHMuYyAkKHNlcnZlcl9oKQorIAkkKENDKSAtYyAkKENQUEZMQUdTKSAkKElOVEVSTkFM X0NGTEFHUykgJDwgLURHREJTRVJWRVIKKyAKK0luZGV4OiBnZGItNy40LjUwLjIwMTIwMTIwL2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlLnNydgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAx MjAxMjAub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5zcnYJMjAxMS0xMi0wNiAxNToxNDo0 OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9nZGJzZXJ2ZXIv Y29uZmlndXJlLnNydgkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3NTcxMzExNCArMDEwMAorQEAgLTQ3 LDYgKzQ3LDcgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCXNydl9yZWdvYmo9IiR7c3J2X3Jl Z29ian0gYXJtLXdpdGgtdmZwdjMubyIKKyAJCQlzcnZfcmVnb2JqPSIke3Nydl9yZWdvYmp9IGFy bS13aXRoLW5lb24ubyIKKyAJCQlzcnZfdGd0b2JqPSJsaW51eC1sb3cubyBsaW51eC1vc2RhdGEu byBsaW51eC1hcm0tbG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZf dGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZfeG1sZmlsZXM9ImFybS13aXRoLWl3bW14 dC54bWwiCisgCQkJc3J2X3htbGZpbGVzPSIke3Nydl94bWxmaWxlc30gYXJtLXdpdGgtdmZwdjIu eG1sIgorIAkJCXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IGFybS13aXRoLXZmcHYzLnht bCIKK0BAIC02OSwxNiArNzAsMTkgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCTs7CisgICBi ZmluLSotKmxpbnV4KikJc3J2X3JlZ29iaj1yZWctYmZpbi5vCisgCQkJc3J2X3RndG9iaj0ibGlu dXgtbG93Lm8gbGludXgtb3NkYXRhLm8gbGludXgtYmZpbi1sb3cubyBsaW51eC1wcm9jZnMubyIK KysJCQlzcnZfdGd0b2JqPSIke3Nydl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl9s aW51eF91c3JyZWdzPXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9eWVzCisgCQkJOzsKKyAg IGNyaXN2MzItKi1saW51eCopCXNydl9yZWdvYmo9cmVnLWNyaXN2MzIubworIAkJCXNydl90Z3Rv Ymo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWNyaXN2MzItbG93Lm8gbGludXgt cHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIK KyAJCQlzcnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQlzcnZfbGludXhfdGhyZWFkX2RiPXllcwor IAkJCTs7CisgICBjcmlzLSotbGludXgqKQlzcnZfcmVnb2JqPXJlZy1jcmlzLm8KKyAJCQlzcnZf dGd0b2JqPSJsaW51eC1sb3cubyBsaW51eC1vc2RhdGEubyBsaW51eC1jcmlzLWxvdy5vIGxpbnV4 LXByb2Nmcy5vIgorKwkJCXNydl90Z3RvYmo9IiR7c3J2X3RndG9ian0gbGludXgtcHRyYWNlLm8i CisgCQkJc3J2X2xpbnV4X3VzcnJlZ3M9eWVzCisgCQkJc3J2X2xpbnV4X3RocmVhZF9kYj15ZXMK KyAJCQk7OworQEAgLTkzLDYgKzk3LDcgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCSAgICBz cnZfeG1sZmlsZXM9IiR7c3J2X3htbGZpbGVzfSAkc3J2X2FtZDY0X2xpbnV4X3htbGZpbGVzIgor IAkJCWZpCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRhLm8gbGludXgt eDg2LWxvdy5vIGkzODYtbG93Lm8gaTM4Ny1mcC5vIGxpbnV4LXByb2Nmcy5vIgorKwkJCXNydl90 Z3RvYmo9IiR7c3J2X3RndG9ian0gbGludXgtcHRyYWNlLm8iCisgCQkJc3J2X2xpbnV4X3VzcnJl Z3M9eWVzCisgCQkJc3J2X2xpbnV4X3JlZ3NldHM9eWVzCisgCQkJc3J2X2xpbnV4X3RocmVhZF9k Yj15ZXMKK0BAIC0xMjQsMTAgKzEyOSwxMiBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJOzsK KyAgIGlhNjQtKi1saW51eCopCXNydl9yZWdvYmo9cmVnLWlhNjQubworIAkJCXNydl90Z3RvYmo9 ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LWlhNjQtbG93Lm8gbGludXgtcHJvY2Zz Lm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlz cnZfbGludXhfdXNycmVncz15ZXMKKyAJCQk7OworICAgbTMyciotKi1saW51eCopCXNydl9yZWdv Ymo9cmVnLW0zMnIubworIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5v IGxpbnV4LW0zMnItbG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZf dGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZfbGludXhfdXNycmVncz15ZXMKKyAgCQkJ c3J2X2xpbnV4X3RocmVhZF9kYj15ZXMKKyAJCQk7OworQEAgLTEzNyw2ICsxNDQsNyBAQCBjYXNl ICIke3RhcmdldH0iIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzcnZfcmVnb2JqPXJl Zy1tNjhrLm8KKyAgICAgICAgICAgICAgICAgICAgICAgICBmaQorIAkJCXNydl90Z3RvYmo9Imxp bnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LW02OGstbG93Lm8gbGludXgtcHJvY2ZzLm8i CisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZf bGludXhfdXNycmVncz15ZXMKKyAJCQlzcnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQlzcnZfbGlu dXhfdGhyZWFkX2RiPXllcworQEAgLTE0NywxMiArMTU1LDE0IEBAIGNhc2UgIiR7dGFyZ2V0fSIg aW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNydl9yZWdvYmo9cmVnLW02OGsubworICAg ICAgICAgICAgICAgICAgICAgICAgIGZpCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGlu dXgtb3NkYXRhLm8gbGludXgtbTY4ay1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0 b2JqPSIke3Nydl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl9saW51eF91c3JyZWdz PXllcworIAkJCXNydl9saW51eF9yZWdzZXRzPXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9 eWVzCisgCQkJOzsKKyAgIG1pcHMqLSotbGludXgqKQlzcnZfcmVnb2JqPSJtaXBzLWxpbnV4Lm8g bWlwczY0LWxpbnV4Lm8iCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRh Lm8gbGludXgtbWlwcy1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZfdGd0b2JqPSIke3Ny dl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl94bWxmaWxlcz0ibWlwcy1saW51eC54 bWwiCisgCQkJc3J2X3htbGZpbGVzPSIke3Nydl94bWxmaWxlc30gbWlwcy1jcHUueG1sIgorIAkJ CXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IG1pcHMtY3AwLnhtbCIKK0BAIC0xODEsNiAr MTkxLDcgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCXNydl9yZWdvYmo9IiR7c3J2X3JlZ29i an0gcG93ZXJwYy1pc2EyMDUtYWx0aXZlYzY0bC5vIgorIAkJCXNydl9yZWdvYmo9IiR7c3J2X3Jl Z29ian0gcG93ZXJwYy1pc2EyMDUtdnN4NjRsLm8iCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93 Lm8gbGludXgtb3NkYXRhLm8gbGludXgtcHBjLWxvdy5vIGxpbnV4LXByb2Nmcy5vIgorKwkJCXNy dl90Z3RvYmo9IiR7c3J2X3RndG9ian0gbGludXgtcHRyYWNlLm8iCisgCQkJc3J2X3htbGZpbGVz PSJyczYwMDAvcG93ZXJwYy0zMmwueG1sIgorIAkJCXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmls ZXN9IHJzNjAwMC9wb3dlcnBjLWFsdGl2ZWMzMmwueG1sIgorIAkJCXNydl94bWxmaWxlcz0iJHtz cnZfeG1sZmlsZXN9IHJzNjAwMC9wb3dlcnBjLWNlbGwzMmwueG1sIgorQEAgLTIyMyw2ICsyMzQs NyBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJc3J2X3JlZ29iaj0iJHtzcnZfcmVnb2JqfSBz MzkweC1saW51eDY0djEubyIKKyAJCQlzcnZfcmVnb2JqPSIke3Nydl9yZWdvYmp9IHMzOTB4LWxp bnV4NjR2Mi5vIgorIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxp bnV4LXMzOTAtbG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0 b2JqfSBsaW51eC1wdHJhY2UubyIKKyAJCQlzcnZfeG1sZmlsZXM9InMzOTAtbGludXgzMi54bWwi CisgCQkJc3J2X3htbGZpbGVzPSIke3Nydl94bWxmaWxlc30gczM5MC1saW51eDMydjEueG1sIgor IAkJCXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IHMzOTAtbGludXgzMnYyLnhtbCIKK0BA IC0yNDMsMTIgKzI1NSwxNCBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJOzsKKyAgIHNoKi0q LWxpbnV4KikJCXNydl9yZWdvYmo9cmVnLXNoLm8KKyAJCQlzcnZfdGd0b2JqPSJsaW51eC1sb3cu byBsaW51eC1vc2RhdGEubyBsaW51eC1zaC1sb3cubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZf dGd0b2JqPSIke3Nydl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl9saW51eF91c3Jy ZWdzPXllcworIAkJCXNydl9saW51eF9yZWdzZXRzPXllcworIAkJCXNydl9saW51eF90aHJlYWRf ZGI9eWVzCisgCQkJOzsKKyAgIHNwYXJjKi0qLWxpbnV4KikJc3J2X3JlZ29iaj1yZWctc3BhcmM2 NC5vCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgtb3NkYXRhLm8gbGludXgtc3Bh cmMtbG93Lm8gbGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBs aW51eC1wdHJhY2UubyIKKyAJCQlzcnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQlzcnZfbGludXhf dGhyZWFkX2RiPXllcworIAkJCTs7CitAQCAtMjY1LDEyICsyNzksMTQgQEAgY2FzZSAiJHt0YXJn ZXR9IiBpbgorIAkJCXNydl94bWxmaWxlcz0iJHtzcnZfeG1sZmlsZXN9IHRpYzZ4LWdwLnhtbCIK KyAJCQlzcnZfeG1sZmlsZXM9IiR7c3J2X3htbGZpbGVzfSB0aWM2eC1jNnhwLnhtbCIKKyAgIAkJ CXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4LXRpYzZ4LWxvdy5v IGxpbnV4LXByb2Nmcy5vIgorKwkJCXNydl90Z3RvYmo9IiR7c3J2X3RndG9ian0gbGludXgtcHRy YWNlLm8iCisgCQkJc3J2X2xpbnV4X3JlZ3NldHM9eWVzCisgCQkJc3J2X2xpbnV4X3VzcnJlZ3M9 eWVzCisgCQkJc3J2X2xpbnV4X3RocmVhZF9kYj15ZXMKKyAJCQk7OworICAgeDg2XzY0LSotbGlu dXgqKQlzcnZfcmVnb2JqPSIkc3J2X2FtZDY0X2xpbnV4X3JlZ29iaiAkc3J2X2kzODZfbGludXhf cmVnb2JqIgorIAkJCXNydl90Z3RvYmo9ImxpbnV4LWxvdy5vIGxpbnV4LW9zZGF0YS5vIGxpbnV4 LXg4Ni1sb3cubyBpMzg2LWxvdy5vIGkzODctZnAubyBsaW51eC1wcm9jZnMubyIKKysJCQlzcnZf dGd0b2JqPSIke3Nydl90Z3RvYmp9IGxpbnV4LXB0cmFjZS5vIgorIAkJCXNydl94bWxmaWxlcz0i JHNydl9pMzg2X2xpbnV4X3htbGZpbGVzICRzcnZfYW1kNjRfbGludXhfeG1sZmlsZXMiCisgCQkJ c3J2X2xpbnV4X3VzcnJlZ3M9eWVzICMgVGhpcyBpcyBmb3IgaTM4NiBwcm9ncy4KKyAJCQlzcnZf bGludXhfcmVnc2V0cz15ZXMKK0BAIC0yODUsNiArMzAxLDcgQEAgY2FzZSAiJHt0YXJnZXR9IiBp bgorIAorICAgeHRlbnNhKi0qLWxpbnV4KikJc3J2X3JlZ29iaj1yZWcteHRlbnNhLm8KKyAJCQlz cnZfdGd0b2JqPSJsaW51eC1sb3cubyBsaW51eC1vc2RhdGEubyBsaW51eC14dGVuc2EtbG93Lm8g bGludXgtcHJvY2ZzLm8iCisrCQkJc3J2X3RndG9iaj0iJHtzcnZfdGd0b2JqfSBsaW51eC1wdHJh Y2UubyIKKyAJCQlzcnZfbGludXhfcmVnc2V0cz15ZXMKKyAJCQk7OworICAgKikJCQllY2hvICJF cnJvcjogdGFyZ2V0IG5vdCBzdXBwb3J0ZWQgYnkgZ2Ric2VydmVyLiIKK0luZGV4OiBnZGItNy40 LjUwLjIwMTIwMTIwL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDEyLTAz LTA2IDA3OjM5OjQxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2Ri L2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDEyLTAzLTA2IDA3OjM5OjUwLjc3NjcxMzExMSArMDEw MAorQEAgLTYzMCwxMCArNjMwLDEwIEBAIGxpbnV4X2F0dGFjaF9sd3BfMSAodW5zaWduZWQgbG9u ZyBsd3BpZCwKKyAJICBmZmx1c2ggKHN0ZGVycik7CisgCSAgcmV0dXJuOworIAl9CistICAgICAg ZWxzZQorLQkvKiBJZiB3ZSBmYWlsIHRvIGF0dGFjaCB0byBhIHByb2Nlc3MsIHJlcG9ydCBhbiBl cnJvci4gICovCistCWVycm9yICgiQ2Fubm90IGF0dGFjaCB0byBsd3AgJWxkOiAlcyAoJWQpXG4i LCBsd3BpZCwKKy0JICAgICAgIHN0cmVycm9yIChlcnJubyksIGVycm5vKTsKKysKKysgICAgICAv KiBJZiB3ZSBmYWlsIHRvIGF0dGFjaCB0byBhIHByb2Nlc3MsIHJlcG9ydCBhbiBlcnJvci4gICov CisrICAgICAgZXJyb3IgKCJDYW5ub3QgYXR0YWNoIHRvIGx3cCAlbGQ6ICVzICglZClcbiIsIGx3 cGlkLAorKwkgICAgIHN0cmVycm9yIChlcnJubyksIGVycm5vKTsKKyAgICAgfQorIAorICAgaWYg KGluaXRpYWwpCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvbGludXgtbmF0LmMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSBnZGItNy40LjUwLjIwMTIwMTIwLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIw MTItMDMtMDYgMDc6Mzk6NDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEy MC9nZGIvbGludXgtbmF0LmMJMjAxMi0wMy0wNiAwNzozOTo1MC43Nzc3MTMxMDggKzAxMDAKK0BA IC0yNDY0LDM3ICsyNDY0LDYgQEAgbGludXhfaGFuZGxlX2V4dGVuZGVkX3dhaXQgKHN0cnVjdCBs d3BfaQorIAkJICBfKCJ1bmtub3duIHB0cmFjZSBldmVudCAlZCIpLCBldmVudCk7CisgfQorIAor LS8qIFJldHVybiBub24temVybyBpZiBMV1AgaXMgYSB6b21iaWUuICAqLworLQorLXN0YXRpYyBp bnQKKy1saW51eF9sd3BfaXNfem9tYmllIChsb25nIGx3cCkKKy17CistICBjaGFyIGJ1ZmZlcltN QVhQQVRITEVOXTsKKy0gIEZJTEUgKnByb2NmaWxlOworLSAgaW50IHJldHZhbDsKKy0gIGludCBo YXZlX3N0YXRlOworLQorLSAgeHNucHJpbnRmIChidWZmZXIsIHNpemVvZiAoYnVmZmVyKSwgIi9w cm9jLyVsZC9zdGF0dXMiLCBsd3ApOworLSAgcHJvY2ZpbGUgPSBmb3BlbiAoYnVmZmVyLCAiciIp OworLSAgaWYgKHByb2NmaWxlID09IE5VTEwpCistICAgIHsKKy0gICAgICB3YXJuaW5nIChfKCJ1 bmFibGUgdG8gb3BlbiAvcHJvYyBmaWxlICclcyciKSwgYnVmZmVyKTsKKy0gICAgICByZXR1cm4g MDsKKy0gICAgfQorLQorLSAgaGF2ZV9zdGF0ZSA9IDA7CistICB3aGlsZSAoZmdldHMgKGJ1ZmZl ciwgc2l6ZW9mIChidWZmZXIpLCBwcm9jZmlsZSkgIT0gTlVMTCkKKy0gICAgaWYgKHN0cm5jbXAg KGJ1ZmZlciwgIlN0YXRlOiIsIDYpID09IDApCistICAgICAgeworLQloYXZlX3N0YXRlID0gMTsK Ky0JYnJlYWs7CistICAgICAgfQorLSAgcmV0dmFsID0gKGhhdmVfc3RhdGUKKy0JICAgICYmIHN0 cmNtcCAoYnVmZmVyLCAiU3RhdGU6XHRaICh6b21iaWUpXG4iKSA9PSAwKTsKKy0gIGZjbG9zZSAo cHJvY2ZpbGUpOworLSAgcmV0dXJuIHJldHZhbDsKKy19CistCisgLyogV2FpdCBmb3IgTFAgdG8g c3RvcC4gIFJldHVybnMgdGhlIHdhaXQgc3RhdHVzLCBvciAwIGlmIHRoZSBMV1AgaGFzCisgICAg ZXhpdGVkLiAgKi8KKyAKK0BAIC0yNTQ4LDEwICsyNTE3LDEwIEBAIHdhaXRfbHdwIChzdHJ1Y3Qg bHdwX2luZm8gKmxwKQorIAorIAkgVGhpcyBpcyByYWN5LCB3aGF0IGlmIHRoZSB0Z2wgYmVjb21l cyBhIHpvbWJpZSByaWdodCBhZnRlciB3ZSBjaGVjaz8KKyAJIFRoZXJlZm9yZSBhbHdheXMgdXNl IFdOT0hBTkcgd2l0aCBzaWdzdXNwZW5kIC0gaXQgaXMgZXF1aXZhbGVudCB0bworLQkgd2FpdGlu ZyB3YWl0cGlkIGJ1dCB0aGUgbGludXhfbHdwX2lzX3pvbWJpZSBpcyBzYWZlIHRoaXMgd2F5LiAg Ki8KKysJIHdhaXRpbmcgd2FpdHBpZCBidXQgbGludXhfcHJvY19waWRfaXNfem9tYmllIGlzIHNh ZmUgdGhpcyB3YXkuICAqLworIAorICAgICAgIGlmIChHRVRfUElEIChscC0+cHRpZCkgPT0gR0VU X0xXUCAobHAtPnB0aWQpCistCSAgJiYgbGludXhfbHdwX2lzX3pvbWJpZSAoR0VUX0xXUCAobHAt PnB0aWQpKSkKKysJICAmJiBsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKEdFVF9MV1AgKGxwLT5w dGlkKSkpCisgCXsKKyAJICB0aHJlYWRfZGVhZCA9IDE7CisgCSAgaWYgKGRlYnVnX2xpbnV4X25h dCkKK0BAIC0zNDMxLDcgKzM0MDAsNyBAQCBjaGVja196b21iaWVfbGVhZGVycyAodm9pZCkKKyAJ ICAvKiBDaGVjayBpZiB0aGVyZSBhcmUgb3RoZXIgdGhyZWFkcyBpbiB0aGUgZ3JvdXAsIGFzIHdl IG1heQorIAkgICAgIGhhdmUgcmFjZWQgd2l0aCB0aGUgaW5mZXJpb3Igc2ltcGx5IGV4aXRpbmcu ICAqLworIAkgICYmIG51bV9sd3BzIChpbmYtPnBpZCkgPiAxCistCSAgJiYgbGludXhfbHdwX2lz X3pvbWJpZSAoaW5mLT5waWQpKQorKwkgICYmIGxpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAoaW5m LT5waWQpKQorIAl7CisgCSAgaWYgKGRlYnVnX2xpbnV4X25hdCkKKyAJICAgIGZwcmludGZfdW5m aWx0ZXJlZCAoZ2RiX3N0ZGxvZywKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29u cy00b2Y1LnBhdGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNG9mNS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjRlZTcyCi0tLSAvZGV2L251bGwKKysrIGIv Z2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNG9mNS5wYXRjaApAQCAtMCwwICsxLDQwMiBAQAoraHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDMvbXNnMDAxNzAuaHRtbAor U3ViamVjdDogW3BhdGNoIDIvM10gYXR0YWNoLWZhaWwtcmVhc29uczogU2F5IG1vcmUgdGhhbiBw dHJhY2U6IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkLgorCitIaSwKKworVGhlcmUgaXMgYSBjb21t b24gcXVlc3Rpb24gb24gI2dkYiBhbmQgYWxzbyBhbHJlYWR5IGRlc2NyaWJlZDoKKworaHR0cDov L3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL0ZBUQorMTYuIEdldHRpbmcgYW4gaW50ZXJuYWwgZXJy b3Igb3Igb3RoZXIgZXJyb3Igd2hpbGUgYXR0YWNoaW5nIHRvIHByb2Nlc3NlcyBvbgorICAgIEdO VS9MaW51eAorLT4KKyAgICBUcnkgc2V0ZW5mb3JjZSAwIChTRUxpbnV4KSBvciBlY2hvIDAgPi9w cm9jL3N5cy9rZXJuZWwveWFtYS9wdHJhY2Vfc2NvcGUKKyAgICAocHRyYWNlIHNjb3BlKSB0byBk aXNhYmxlIHN5c3RlbSBzZWN1cml0eSBwcm90ZWN0aW9ucy4gCisKK2FuZCBoZXJlIGlzIGEgcGF0 Y2ggdG8gZ2l2ZSBzb21lIGV4cGxhbmF0aW9ucy4KKworTW9yZSByZWFzb25zIGNhbiBiZSBnaXZl biBsYXRlciwgdGhpcyBpcyBhIGNvbnRhaW5lciBmb3IgdGhlbSBhbmQgaXQgY29udGFpbnMKK3Nv bWUgdXNlZnVsIG9uZXMgYWxyZWFkeS4KKworTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZf NjQtbTMyLGk2ODZ9LWZlZG9yYTE3LWxpbnV4LWdudSBhbmQgd2l0aAorbm9uLWV4dGVuZGVkIGdk YnNlcnZlci4KKworVGhlIHRlc3RjYXNlIGRvZXMgbm90IHRlc3QgZ2Ric2VydmVyLCBzb21laG93 IGl0IGlzIGEgYml0IGRpZmZpY3VsdCB3aXRob3V0CitoYXZpbmcgc2hlbGwgb24gdGFyZ2V0Lgor CitBdHRhY2hpbmcgdG8gcHJvY2VzcyAyNzQ4MAorcHRyYWNlOiBPcGVyYXRpb24gbm90IHBlcm1p dHRlZC4KKyhnZGIpIF8KKy0+CitBdHRhY2hpbmcgdG8gcHJvY2VzcyAyNzQ4MAord2FybmluZzog cHJvY2VzcyAyNzQ4MCBpcyBhbHJlYWR5IHRyYWNlZCBieSBwcm9jZXNzIDI5MDExCitwdHJhY2U6 IE9wZXJhdGlvbiBub3QgcGVybWl0dGVkLgorKGdkYikgXworCisKK1RoYW5rcywKK0phbgorCisK K2dkYi8KKzIwMTItMDMtMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KKworCSogY29tbW9uL2xpbnV4LXByb2Nmcy5jIChsaW51eF9wcm9jX2dldF9pbnQpOiBO ZXcsIGZyb20KKwlsaW51eF9wcm9jX2dldF90Z2lkLgorCShsaW51eF9wcm9jX2dldF90Z2lkKTog T25seSBjYWxsIGxpbnV4X3Byb2NfZ2V0X2ludC4KKwkobGludXhfcHJvY19nZXRfdHJhY2VycGlk KTogTmV3LgorCShsaW51eF9wcm9jX3BpZF9oYXNfc3RhdGUpOiBOZXcsIGZyb20gbGludXhfcHJv Y19waWRfaXNfem9tYmllLgorCShsaW51eF9wcm9jX3BpZF9pc19zdG9wcGVkLCBsaW51eF9wcm9j X3BpZF9pc196b21iaWUpOiBPbmx5IGNhbGwKKwlsaW51eF9wcm9jX3BpZF9oYXNfc3RhdGUuCisJ KiBjb21tb24vbGludXgtcHJvY2ZzLmggKGxpbnV4X3Byb2NfZ2V0X3RyYWNlcnBpZCk6IE5ldyBk ZWNsYXJhdGlvbi4KKwkqIGNvbW1vbi9saW51eC1wdHJhY2UuYzogSW5jbHVkZSBsaW51eC1wcm9j ZnMuaC4KKwkobGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyk6IE5ldy4KKwkqIGNvbW1vbi9s aW51eC1wdHJhY2UuaCAobGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyk6IE5ldyBkZWNsYXJh dGlvbi4KKwkqIGxpbnV4LW5hdC5jOiBJbmNsdWRlIGV4Y2VwdGlvbnMuaCBhbmQgbGludXgtcHRy YWNlLmguCisJKGxpbnV4X25hdF9hdHRhY2gpOiBOZXcgdmFyaWFibGUgZXguICBXcmFwIHRvX2F0 dGFjaCBieSBUUllfQ0FUQ0ggYW5kCisJY2FsbCBsaW51eF9wdHJhY2VfYXR0YWNoX3dhcm5pbmdz LgorCitnZGIvZ2Ric2VydmVyLworMjAxMi0wMy0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBsaW51eC1sb3cuYyAobGludXhfYXR0YWNoX2x3cF8x KTogQ2FsbCBsaW51eF9wdHJhY2VfYXR0YWNoX3dhcm5pbmdzLgorCitnZGIvdGVzdHN1aXRlLwor MjAxMi0wMy0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgor CisJKiBnZGIuYmFzZS9hdHRhY2gtdHdpY2UuYzogTmV3IGZpbGVzLgorCSogZ2RiLmJhc2UvYXR0 YWNoLXR3aWNlLmV4cDogTmV3IGZpbGVzLgorCitJbmRleDogZ2RiLTcuNC41MC4yMDEyMDEyMC9n ZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEy MDEyMC5vcmlnL2dkYi9jb21tb24vbGludXgtcHJvY2ZzLmMJMjAxMi0wMy0wNiAwNzozNDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb21tb24vbGludXgt cHJvY2ZzLmMJMjAxMi0wMy0wNiAwNzozNDoxNy41ODY4MTY0NDkgKzAxMDAKK0BAIC0yOCw2NyAr MjgsNTQgQEAKKyAvKiBSZXR1cm4gdGhlIFRHSUQgb2YgTFdQSUQgZnJvbSAvcHJvYy9waWQvc3Rh dHVzLiAgUmV0dXJucyAtMSBpZiBub3QKKyAgICBmb3VuZC4gICovCisgCistaW50CistbGludXhf cHJvY19nZXRfdGdpZCAoaW50IGx3cGlkKQorK3N0YXRpYyBpbnQKKytsaW51eF9wcm9jX2dldF9p bnQgKGludCBsd3BpZCwgY29uc3QgY2hhciAqZmllbGQpCisgeworKyAgc2l6ZV90IGZpZWxkX2xl biA9IHN0cmxlbiAoZmllbGQpOworICAgRklMRSAqc3RhdHVzX2ZpbGU7CisgICBjaGFyIGJ1Zlsx MDBdOworLSAgaW50IHRnaWQgPSAtMTsKKysgIGludCByZXR2YWwgPSAtMTsKKyAKKyAgIHNucHJp bnRmIChidWYsIHNpemVvZiAoYnVmKSwgIi9wcm9jLyVkL3N0YXR1cyIsIChpbnQpIGx3cGlkKTsK KyAgIHN0YXR1c19maWxlID0gZm9wZW4gKGJ1ZiwgInIiKTsKKy0gIGlmIChzdGF0dXNfZmlsZSAh PSBOVUxMKQorKyAgaWYgKHN0YXR1c19maWxlID09IE5VTEwpCisgICAgIHsKKy0gICAgICB3aGls ZSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCistCXsKKy0JICBpZiAo c3RybmNtcCAoYnVmLCAiVGdpZDoiLCA1KSA9PSAwKQorLQkgICAgeworLQkgICAgICB0Z2lkID0g c3RydG91bCAoYnVmICsgc3RybGVuICgiVGdpZDoiKSwgTlVMTCwgMTApOworLQkgICAgICBicmVh azsKKy0JICAgIH0KKy0JfQorLQorLSAgICAgIGZjbG9zZSAoc3RhdHVzX2ZpbGUpOworKyAgICAg IHdhcm5pbmcgKF8oInVuYWJsZSB0byBvcGVuIC9wcm9jIGZpbGUgJyVzJyIpLCBidWYpOworKyAg ICAgIHJldHVybiAtMTsKKyAgICAgfQorIAorLSAgcmV0dXJuIHRnaWQ7CisrICB3aGlsZSAoZmdl dHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkpCisrICAgIGlmIChzdHJuY21wIChi dWYsIGZpZWxkLCBmaWVsZF9sZW4pID09IDAgJiYgYnVmW2ZpZWxkX2xlbl0gPT0gJzonKQorKyAg ICAgIHsKKysJcmV0dmFsID0gc3RydG9sICgmYnVmW2ZpZWxkX2xlbiArIDFdLCBOVUxMLCAxMCk7 CisrCWJyZWFrOworKyAgICAgIH0KKysKKysgIGZjbG9zZSAoc3RhdHVzX2ZpbGUpOworKyAgcmV0 dXJuIHJldHZhbDsKKyB9CisgCistLyogRGV0ZWN0IGBUIChzdG9wcGVkKScgaW4gYC9wcm9jL1BJ RC9zdGF0dXMnLgorLSAgIE90aGVyIHN0YXRlcyBpbmNsdWRpbmcgYFQgKHRyYWNpbmcgc3RvcCkn IGFyZSByZXBvcnRlZCBhcyBmYWxzZS4gICovCisrLyogUmV0dXJuIHRoZSBUR0lEIG9mIExXUElE IGZyb20gL3Byb2MvcGlkL3N0YXR1cy4gIFJldHVybnMgLTEgaWYgbm90CisrICAgZm91bmQuICAq LworIAorIGludAorLWxpbnV4X3Byb2NfcGlkX2lzX3N0b3BwZWQgKHBpZF90IHBpZCkKKytsaW51 eF9wcm9jX2dldF90Z2lkIChpbnQgbHdwaWQpCisgeworLSAgRklMRSAqc3RhdHVzX2ZpbGU7Cist ICBjaGFyIGJ1ZlsxMDBdOworLSAgaW50IHJldHZhbCA9IDA7CisrICByZXR1cm4gbGludXhfcHJv Y19nZXRfaW50IChsd3BpZCwgIlRnaWQiKTsKKyt9CisgCistICBzbnByaW50ZiAoYnVmLCBzaXpl b2YgKGJ1ZiksICIvcHJvYy8lZC9zdGF0dXMiLCAoaW50KSBwaWQpOworLSAgc3RhdHVzX2ZpbGUg PSBmb3BlbiAoYnVmLCAiciIpOworLSAgaWYgKHN0YXR1c19maWxlICE9IE5VTEwpCistICAgIHsK Ky0gICAgICBpbnQgaGF2ZV9zdGF0ZSA9IDA7CisrLyogU2VlIGxpbnV4LXByb2Nmcy5oLiAgKi8K KyAKKy0gICAgICB3aGlsZSAoZmdldHMgKGJ1Ziwgc2l6ZW9mIChidWYpLCBzdGF0dXNfZmlsZSkp CistCXsKKy0JICBpZiAoc3RybmNtcCAoYnVmLCAiU3RhdGU6IiwgNikgPT0gMCkKKy0JICAgIHsK Ky0JICAgICAgaGF2ZV9zdGF0ZSA9IDE7CistCSAgICAgIGJyZWFrOworLQkgICAgfQorLQl9Cist ICAgICAgaWYgKGhhdmVfc3RhdGUgJiYgc3Ryc3RyIChidWYsICJUIChzdG9wcGVkKSIpICE9IE5V TEwpCistCXJldHZhbCA9IDE7CistICAgICAgZmNsb3NlIChzdGF0dXNfZmlsZSk7CistICAgIH0K Ky0gIHJldHVybiByZXR2YWw7CisrcGlkX3QKKytsaW51eF9wcm9jX2dldF90cmFjZXJwaWQgKGlu dCBsd3BpZCkKKyt7CisrICByZXR1cm4gbGludXhfcHJvY19nZXRfaW50IChsd3BpZCwgIlRyYWNl clBpZCIpOworIH0KKyAKKy0vKiBTZWUgbGludXgtcHJvY2ZzLmggZGVjbGFyYXRpb24uICAqLwor Ky8qIFJldHVybiBub24temVybyBpZiAnU3RhdGUnIG9mIC9wcm9jL1BJRC9zdGF0dXMgY29udGFp bnMgU1RBVEUuICAqLworIAorLWludAorLWxpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAocGlkX3Qg cGlkKQorK3N0YXRpYyBpbnQKKytsaW51eF9wcm9jX3BpZF9oYXNfc3RhdGUgKHBpZF90IHBpZCwg Y29uc3QgY2hhciAqc3RhdGUpCisgeworICAgY2hhciBidWZmZXJbMTAwXTsKKyAgIEZJTEUgKnBy b2NmaWxlOworQEAgLTExMCw4ICs5NywyNCBAQCBsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBp ZF90IHBpZCkKKyAJaGF2ZV9zdGF0ZSA9IDE7CisgCWJyZWFrOworICAgICAgIH0KKy0gIHJldHZh bCA9IChoYXZlX3N0YXRlCistCSAgICAmJiBzdHJjbXAgKGJ1ZmZlciwgIlN0YXRlOlx0WiAoem9t YmllKVxuIikgPT0gMCk7CisrICByZXR2YWwgPSAoaGF2ZV9zdGF0ZSAmJiBzdHJzdHIgKGJ1ZmZl ciwgc3RhdGUpICE9IE5VTEwpOworICAgZmNsb3NlIChwcm9jZmlsZSk7CisgICByZXR1cm4gcmV0 dmFsOworIH0KKysKKysvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2MvUElEL3N0YXR1 cycuCisrICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9wKScgYXJlIHJl cG9ydGVkIGFzIGZhbHNlLiAgKi8KKysKKytpbnQKKytsaW51eF9wcm9jX3BpZF9pc19zdG9wcGVk IChwaWRfdCBwaWQpCisreworKyAgcmV0dXJuIGxpbnV4X3Byb2NfcGlkX2hhc19zdGF0ZSAocGlk LCAiVCAoc3RvcHBlZCkiKTsKKyt9CisrCisrLyogU2VlIGxpbnV4LXByb2Nmcy5oIGRlY2xhcmF0 aW9uLiAgKi8KKysKKytpbnQKKytsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZF90IHBpZCkK Kyt7CisrICByZXR1cm4gbGludXhfcHJvY19waWRfaGFzX3N0YXRlIChwaWQsICJaICh6b21iaWUp Iik7CisrfQorSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbW1vbi9saW51eC1wcm9j ZnMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9nZGIvY29tbW9u L2xpbnV4LXByb2Nmcy5oCTIwMTItMDMtMDYgMDc6MzQ6MDAuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXByb2Nmcy5oCTIwMTItMDMtMDYg MDc6MzQ6MTcuNTg2ODE2NDQ5ICswMTAwCitAQCAtMjYsNiArMjYsMTEgQEAKKyAKKyBleHRlcm4g aW50IGxpbnV4X3Byb2NfZ2V0X3RnaWQgKGludCBsd3BpZCk7CisgCisrLyogUmV0dXJuIHRoZSBU cmFjZXJQaWQgb2YgTFdQSUQgZnJvbSAvcHJvYy9waWQvc3RhdHVzLiAgUmV0dXJucyAtMSBpZiBu b3QKKysgICBmb3VuZC4gICovCisrCisrZXh0ZXJuIHBpZF90IGxpbnV4X3Byb2NfZ2V0X3RyYWNl cnBpZCAoaW50IGx3cGlkKTsKKysKKyAvKiBEZXRlY3QgYFQgKHN0b3BwZWQpJyBpbiBgL3Byb2Mv UElEL3N0YXR1cycuCisgICAgT3RoZXIgc3RhdGVzIGluY2x1ZGluZyBgVCAodHJhY2luZyBzdG9w KScgYXJlIHJlcG9ydGVkIGFzIGZhbHNlLiAgKi8KKyAKK0luZGV4OiBnZGItNy40LjUwLjIwMTIw MTIwL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy40LjUw LjIwMTIwMTIwLm9yaWcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwkyMDEyLTAzLTA2IDA3OjM0 OjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2NvbW1vbi9s aW51eC1wdHJhY2UuYwkyMDEyLTAzLTA2IDA3OjM0OjE3LjU4NjgxNjQ0OSArMDEwMAorQEAgLTI0 LDMgKzI0LDIxIEBACisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxpbnV4LXB0cmFjZS5oIgorKyNp bmNsdWRlICJsaW51eC1wcm9jZnMuaCIKKysKKysvKiBQcmludCBhbGwgcG9zc2libGUgcmVhc29u cyB3ZSBjb3VsZCBmYWlsIHRvIGF0dGFjaCBQSUQuICAqLworKworK3ZvaWQKKytsaW51eF9wdHJh Y2VfYXR0YWNoX3dhcm5pbmdzIChwaWRfdCBwaWQpCisreworKyAgcGlkX3QgdHJhY2VycGlkOwor KworKyAgdHJhY2VycGlkID0gbGludXhfcHJvY19nZXRfdHJhY2VycGlkIChwaWQpOworKyAgaWYg KHRyYWNlcnBpZCA+IDApCisrICAgIHdhcm5pbmcgKF8oInByb2Nlc3MgJWQgaXMgYWxyZWFkeSB0 cmFjZWQgYnkgcHJvY2VzcyAlZCIpLCAoaW50KSBwaWQsCisrCSAgICAgKGludCkgdHJhY2VycGlk KTsKKysKKysgIGlmIChsaW51eF9wcm9jX3BpZF9pc196b21iaWUgKHBpZCkpCisrICAgIHdhcm5p bmcgKF8oInByb2Nlc3MgJWQgaXMgYSB6b21iaWUgLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0 ZXJtaW5hdGVkIiksCisrCSAgICAgKGludCkgcGlkKTsKKyt9CitJbmRleDogZ2RiLTcuNC41MC4y MDEyMDEyMC9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5oCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu NC41MC4yMDEyMDEyMC5vcmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxMi0wMS0wNCAw OToxNzoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjUwLjIwMTIwMTIwL2dkYi9jb21t b24vbGludXgtcHRyYWNlLmgJMjAxMi0wMy0wNiAwNzozNDoxNy41ODY4MTY0NDkgKzAxMDAKK0BA IC02NSw0ICs2NSw2IEBACisgI2RlZmluZSBfX1dBTEwgICAgICAgICAgMHg0MDAwMDAwMCAvKiBX YWl0IGZvciBhbnkgY2hpbGQuICAqLworICNlbmRpZgorIAorK2V4dGVybiB2b2lkIGxpbnV4X3B0 cmFjZV9hdHRhY2hfd2FybmluZ3MgKHBpZF90IHBpZCk7CisrCisgI2VuZGlmIC8qIENPTU1PTl9M SU5VWF9QVFJBQ0VfSCAqLworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2dkYnNlcnZl ci9saW51eC1sb3cuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjQuNTAuMjAxMjAxMjAub3JpZy9n ZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTItMDMtMDYgMDc6MzQ6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuNC41MC4yMDEyMDEyMC9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIw MTItMDMtMDYgMDc6MzQ6MTcuNTg3ODE2NDQ2ICswMTAwCitAQCAtNjMyLDYgKzYzMiw3IEBAIGxp bnV4X2F0dGFjaF9sd3BfMSAodW5zaWduZWQgbG9uZyBsd3BpZCwKKyAJfQorIAorICAgICAgIC8q IElmIHdlIGZhaWwgdG8gYXR0YWNoIHRvIGEgcHJvY2VzcywgcmVwb3J0IGFuIGVycm9yLiAgKi8K KysgICAgICBsaW51eF9wdHJhY2VfYXR0YWNoX3dhcm5pbmdzIChsd3BpZCk7CisgICAgICAgZXJy b3IgKCJDYW5ub3QgYXR0YWNoIHRvIGx3cCAlbGQ6ICVzICglZClcbiIsIGx3cGlkLAorIAkgICAg IHN0cmVycm9yIChlcnJubyksIGVycm5vKTsKKyAgICAgfQorSW5kZXg6IGdkYi03LjQuNTAuMjAx MjAxMjAvZ2RiL2xpbnV4LW5hdC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNC41MC4yMDEyMDEy MC5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDEyLTAzLTA2IDA3OjM0OjAwLjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL2xpbnV4LW5hdC5jCTIwMTItMDMtMDYgMDc6 MzQ6MjkuODYwNzc1ODAzICswMTAwCitAQCAtNTksNiArNTksOCBAQAorICNpbmNsdWRlICJzb2xp Yi5oIgorICNpbmNsdWRlICJsaW51eC1vc2RhdGEuaCIKKyAjaW5jbHVkZSAiY2xpL2NsaS11dGls cy5oIgorKyNpbmNsdWRlICJleGNlcHRpb25zLmgiCisrI2luY2x1ZGUgImxpbnV4LXB0cmFjZS5o IgorIAorICNpZm5kZWYgU1BVRlNfTUFHSUMKKyAjZGVmaW5lIFNQVUZTX01BR0lDIDB4MjNjOWI2 NGUKK0BAIC0xNjEzLDExICsxNjE1LDIyIEBAIGxpbnV4X25hdF9hdHRhY2ggKHN0cnVjdCB0YXJn ZXRfb3BzICpvcHMKKyAgIHN0cnVjdCBsd3BfaW5mbyAqbHA7CisgICBpbnQgc3RhdHVzOworICAg cHRpZF90IHB0aWQ7CisrICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKKyAKKyAg IC8qIE1ha2Ugc3VyZSB3ZSByZXBvcnQgYWxsIHNpZ25hbHMgZHVyaW5nIGF0dGFjaC4gICovCisg ICBsaW51eF9uYXRfcGFzc19zaWduYWxzICgwLCBOVUxMKTsKKyAKKy0gIGxpbnV4X29wcy0+dG9f YXR0YWNoIChvcHMsIGFyZ3MsIGZyb21fdHR5KTsKKysgIFRSWV9DQVRDSCAoZXgsIFJFVFVSTl9N QVNLX0VSUk9SKQorKyAgICB7CisrICAgICAgbGludXhfb3BzLT50b19hdHRhY2ggKG9wcywgYXJn cywgZnJvbV90dHkpOworKyAgICB9CisrICBpZiAoZXgucmVhc29uIDwgMCkKKysgICAgeworKyAg ICAgIHBpZF90IHBpZCA9IHBhcnNlX3BpZF90b19hdHRhY2ggKGFyZ3MpOworKworKyAgICAgIGxp bnV4X3B0cmFjZV9hdHRhY2hfd2FybmluZ3MgKHBpZCk7CisrICAgICAgdGhyb3dfZXhjZXB0aW9u IChleCk7CisrICAgIH0KKyAKKyAgIC8qIFRoZSBwdHJhY2UgYmFzZSB0YXJnZXQgYWRkcyB0aGUg bWFpbiB0aHJlYWQgd2l0aCAocGlkLDAsMCkKKyAgICAgIGZvcm1hdC4gIERlY29yYXRlIGl0IHdp dGggbHdwIGluZm8uICAqLworSW5kZXg6IGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hdHRhY2gtdHdpY2UuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2gtdHdpY2UuYwkyMDEyLTAzLTA2IDA3OjM0OjE3 LjU4OTgxNjQ0MCArMDEwMAorQEAgLTAsMCArMSw0MiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTEtMjAx MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRl IDx1bmlzdGQuaD4KKysjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorKyNpbmNsdWRlIDxlcnJuby5o PgorKworK2ludAorK21haW4gKHZvaWQpCisreworKyAgbG9uZyBsOworKworKyAgc3dpdGNoIChm b3JrICgpKQorKyAgeworKyAgICBjYXNlIC0xOgorKyAgICAgIHBlcnJvciAoImZvcmsiKTsKKysg ICAgICBleGl0ICgxKTsKKysgICAgY2FzZSAwOgorKyAgICAgIGVycm5vID0gMDsKKysgICAgICBw dHJhY2UgKFBUUkFDRV9BVFRBQ0gsIGdldHBwaWQgKCksIE5VTEwsIE5VTEwpOworKyAgICAgIGlm IChlcnJubyAhPSAwKQorKwlwZXJyb3IgKCJQVFJBQ0VfQVRUQUNIIik7CisrICAgICAgYnJlYWs7 CisrICB9CisrICBzbGVlcCAoNjAwKTsKKysgIHJldHVybiAwOworK30KK0luZGV4OiBnZGItNy40 LjUwLjIwMTIwMTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLXR3aWNlLmV4cAorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAorKysrIGdkYi03LjQuNTAuMjAxMjAxMjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2gt dHdpY2UuZXhwCTIwMTItMDMtMDYgMDc6MzQ6MTcuNTg5ODE2NDQwICswMTAwCitAQCAtMCwwICsx LDUyIEBACisrIyBDb3B5cmlnaHQgKEMpIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIE1hbmlwdWxhdGlv biB3aXRoIFBJRCBvbiB0YXJnZXQgaXMgbm90IHN1cHBvcnRlZC4KKytpZiBbaXNfcmVtb3RlIHRh cmdldF0gdGhlbiB7CisrICAgIHJldHVybiAwCisrfQorKworK3NldCB0ZXN0ZmlsZSBhdHRhY2gt dHdpY2UKKytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlICR7b2JqZGly fS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rpbmcg JHt0ZXN0ZmlsZX0uZXhwICRleGVjdXRhYmxlXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKwor K3NldCB0ZXN0cGlkIFtldmFsIGV4ZWMgJGJpbmZpbGUgJl0KKytleGVjIHNsZWVwIDIKKysKKytz ZXQgcGFyZW50cGlkIDAKKysKKytzZXQgdGVzdCAiYXR0YWNoIgorK2dkYl90ZXN0X211bHRpcGxl ICJhdHRhY2ggJHRlc3RwaWQiICR0ZXN0IHsKKysgICAgLXJlICJBdHRhY2hpbmcgdG8gcHJvZ3Jh bTogXFteXHJcblxdKiwgcHJvY2VzcyAkdGVzdHBpZFxyXG4uKndhcm5pbmc6IHByb2Nlc3MgJHRl c3RwaWQgaXMgYWxyZWFkeSB0cmFjZWQgYnkgcHJvY2VzcyAoXFswLTlcXSspXHJcbi4qcHRyYWNl OiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZFxcLlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCXNldCBw YXJlbnRwaWQgJGV4cGVjdF9vdXQoMSxzdHJpbmcpCisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAg ICAtcmUgIkF0dGFjaGluZyB0byBwcm9ncmFtOiBcW15cclxuXF0qLCBwcm9jZXNzICR0ZXN0cGlk XHJcbi4qcHRyYWNlOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZFxcLlxyXG4kZ2RiX3Byb21wdCAk IiB7CisrCWZhaWwgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7 CisrCXhmYWlsICR0ZXN0CisrICAgIH0KKyt9CisrCisrZXZhbCBleGVjIHBzIHhmdworK2lmIHsk cGFyZW50cGlkICE9IDB9IHsKKysgIGV2YWwgZXhlYyBraWxsIC05ICRwYXJlbnRwaWQKKyt9Cisr ZXZhbCBleGVjIGtpbGwgLTkgJHRlc3RwaWQKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwt cmVhc29ucy01b2Y1LnBhdGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTRhNDRmCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaApAQCAtMCwwICsxLDIwOSBA QAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDMvbXNnMDAxNzEu aHRtbAorU3ViamVjdDogW3BhdGNoIDMvM10gYXR0YWNoLWZhaWwtcmVhc29uczogU0VMaW51eCBk ZW55X3B0cmFjZQorCitIaSwKKworYW5kIGhlcmUgaXMgdGhlIGxhc3QgYml0IGZvciBuZXcgU0VM aW51eCAnZGVueV9wdHJhY2UnOgorCWh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9Nzg2ODc4CisKK0FzIGV2ZW4gUFRSQUNFX1RSQUNFTUUgZmFpbHMgaW4gc3VjaCBj YXNlIGl0IG5lZWRzIHRvIGluc3RhbGwgaG9vayBmb3IgZXZlbgordGhhdCBldmVudC4KKworCitU aGFua3MsCitKYW4KKworCitnZGIvCisyMDEyLTAzLTA2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGNvbW1vbi9saW51eC1wdHJhY2UuYyBbSEFWRV9T RUxJTlVYX1NFTElOVVhfSF06IGluY2x1ZGUKKwlzZWxpbnV4L3NlbGludXguaC4KKwkobGludXhf cHRyYWNlX2F0dGFjaF93YXJuaW5ncyk6IENhbGwgbGludXhfcHRyYWNlX2NyZWF0ZV93YXJuaW5n cy4KKwkobGludXhfcHRyYWNlX2NyZWF0ZV93YXJuaW5ncyk6IE5ldy4KKwkqIGNvbW1vbi9saW51 eC1wdHJhY2UuaCAobGludXhfcHRyYWNlX2NyZWF0ZV93YXJuaW5ncyk6IE5ldyBkZWNsYXJhdGlv bi4KKwkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4K KwkqIGNvbmZpZ3VyZS5hYzogQ2hlY2sgc2VsaW51eC9zZWxpbnV4LmggYW5kIHRoZSBzZWxpbnV4 IGxpYnJhcnkuCisJKiBpbmYtcHRyYWNlLmMgKGluZl9wdHJhY2VfbWUpOiBDaGVjayB0aGUgcHRy YWNlIHJlc3VsdC4KKwkqIGxpbnV4LW5hdC5jIChsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yKTog TmV3IHZhcmlhYmxlIGV4LiAgV3JhcAorCXRvX2NyZWF0ZV9pbmZlcmlvciBpbnRvIFRSWV9DQVRD SCwgY2FsbCBsaW51eF9wdHJhY2VfY3JlYXRlX3dhcm5pbmdzLgorCitnZGIvZ2Ric2VydmVyLwor CSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgorCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgorCSog Y29uZmlndXJlLmFjOiBDaGVjayBzZWxpbnV4L3NlbGludXguaCBhbmQgdGhlIHNlbGludXggbGli cmFyeS4KKwkqIGxpbnV4LWxvdy5jIChsaW51eF90cmFjZW1lKTogTmV3IGZ1bmN0aW9uLgorCShs aW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGlsZCk6IENhbGwgaXQgaW5z dGVhZCBvZgorCWRpcmVjdCBwdHJhY2UuCisKKy0tLSBhL2dkYi9jb21tb24vbGludXgtcHRyYWNl LmMKKysrKyBiL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMKK0BAIC0yNiw2ICsyNiwxMCBAQAor ICNpbmNsdWRlICJsaW51eC1wdHJhY2UuaCIKKyAjaW5jbHVkZSAibGludXgtcHJvY2ZzLmgiCisg CisrI2lmZGVmIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0gKKysjIGluY2x1ZGUgPHNlbGludXgvc2Vs aW51eC5oPgorKyNlbmRpZiAvKiBIQVZFX1NFTElOVVhfU0VMSU5VWF9IICovCisrCisgLyogUHJp bnQgYWxsIHBvc3NpYmxlIHJlYXNvbnMgd2UgY291bGQgZmFpbCB0byBhdHRhY2ggUElELiAgKi8K KyAKKyB2b2lkCitAQCAtNDEsNCArNDUsMjEgQEAgbGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5n cyAocGlkX3QgcGlkKQorICAgaWYgKGxpbnV4X3Byb2NfcGlkX2lzX3pvbWJpZSAocGlkKSkKKyAg ICAgd2FybmluZyAoXygicHJvY2VzcyAlZCBpcyBhIHpvbWJpZSAtIHRoZSBwcm9jZXNzIGhhcyBh bHJlYWR5IHRlcm1pbmF0ZWQiKSwKKyAJICAgICAoaW50KSBwaWQpOworKworKyAgbGludXhfcHRy YWNlX2NyZWF0ZV93YXJuaW5ncyAoKTsKKyt9CisrCisrLyogUHJpbnQgYWxsIHBvc3NpYmxlIHJl YXNvbnMgd2UgY291bGQgZmFpbCB0byBjcmVhdGUgYSB0cmFjZWQgcHJvY2Vzcy4gICovCisrCisr dm9pZAorK2xpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHZvaWQpCisreworKyNpZmRlZiBI QVZFX0xJQlNFTElOVVgKKysgIC8qIC0xIGlzIHJldHVybmVkIGZvciBlcnJvcnMsIDAgaWYgaXQg aGFzIG5vIGVmZmVjdCwgMSBpZiBQVFJBQ0VfQVRUQUNIIGlzCisrICAgICBmb3JiaWRkZW4uICAq LworKyAgaWYgKHNlY3VyaXR5X2dldF9ib29sZWFuX2FjdGl2ZSAoImRlbnlfcHRyYWNlIikgPT0g MSkKKysgICAgd2FybmluZyAoXygidGhlIFNFTGludXggYm9vbGVhbiAnZGVueV9wdHJhY2UnIGlz IGVuYWJsZWQsICIKKysJICAgICAgICJ5b3UgY2FuIGRpc2FibGUgdGhpcyBwcm9jZXNzIGF0dGFj aCBwcm90ZWN0aW9uIGJ5OiAiCisrCSAgICAgICAiKGdkYikgc2hlbGwgc3VkbyBzZXRzZWJvb2wg ZGVueV9wdHJhY2U9MCIpKTsKKysjZW5kaWYgLyogSEFWRV9MSUJTRUxJTlVYICovCisgfQorLS0t IGEvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAorKysrIGIvZ2RiL2NvbW1vbi9saW51eC1wdHJh Y2UuaAorQEAgLTY2LDUgKzY2LDYgQEAKKyAjZW5kaWYKKyAKKyBleHRlcm4gdm9pZCBsaW51eF9w dHJhY2VfYXR0YWNoX3dhcm5pbmdzIChwaWRfdCBwaWQpOworK2V4dGVybiB2b2lkIGxpbnV4X3B0 cmFjZV9jcmVhdGVfd2FybmluZ3MgKHZvaWQpOworIAorICNlbmRpZiAvKiBDT01NT05fTElOVVhf UFRSQUNFX0ggKi8KKy0tLSBhL2dkYi9jb25maWd1cmUuYWMKKysrKyBiL2dkYi9jb25maWd1cmUu YWMKK0BAIC0xNzQ4LDYgKzE3NDgsMTAgQEAgdGhlbgorIAkgICAgICBbRGVmaW5lIGlmIHlvdSBz dXBwb3J0IHRoZSBwZXJzb25hbGl0eSBzeXNjYWxsLl0pCisgZmkKKyAKKytkbmwgQ2hlY2sgc2Vj dXJpdHlfZ2V0X2Jvb2xlYW5fYWN0aXZlIGF2YWlsYWJpbGl0eS4KKytBQ19DSEVDS19IRUFERVJT KHNlbGludXgvc2VsaW51eC5oKQorK0FDX0NIRUNLX0xJQihzZWxpbnV4LCBzZWN1cml0eV9nZXRf Ym9vbGVhbl9hY3RpdmUpCisrCisgZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNh biBiZSBlbmFibGVkLgorIAorICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5 IG9mIEdEQl9BQ19XSVRIX0RJUiwKKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCisr KysgYi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYworQEAgLTQxMSw2ICs0MTEsMTAgQEAgaWYg JHdhbnRfaXBhIDsgdGhlbgorICAgIGZpCisgZmkKKyAKKytkbmwgQ2hlY2sgc2VjdXJpdHlfZ2V0 X2Jvb2xlYW5fYWN0aXZlIGF2YWlsYWJpbGl0eS4KKytBQ19DSEVDS19IRUFERVJTKHNlbGludXgv c2VsaW51eC5oKQorK0FDX0NIRUNLX0xJQihzZWxpbnV4LCBzZWN1cml0eV9nZXRfYm9vbGVhbl9h Y3RpdmUpCisrCisgQUNfU1VCU1QoR0RCU0VSVkVSX0RFUEZJTEVTKQorIEFDX1NVQlNUKEdEQlNF UlZFUl9MSUJTKQorIEFDX1NVQlNUKFVTRV9USFJFQURfREIpCistLS0gYS9nZGIvZ2Ric2VydmVy L2xpbnV4LWxvdy5jCisrKysgYi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCitAQCAtNTUwLDYg KzU1MCwyNSBAQCBhZGRfbHdwIChwdGlkX3QgcHRpZCkKKyAgIHJldHVybiBsd3A7CisgfQorIAor Ky8qIEV4ZWN1dGUgUFRSQUNFX1RSQUNFTUUgd2l0aCBlcnJvciBjaGVja2luZy4gICovCisrCisr c3RhdGljIHZvaWQKKytsaW51eF90cmFjZW1lIChjb25zdCBjaGFyICpwcm9ncmFtKQorK3sKKysg IGludCBzYXZlX2Vycm5vOworKworKyAgZXJybm8gPSAwOworKyAgaWYgKHB0cmFjZSAoUFRSQUNF X1RSQUNFTUUsIDAsIE5VTEwsIE5VTEwpID09IDApCisrICAgIHJldHVybjsKKysKKysgIHNhdmVf ZXJybm8gPSBlcnJubzsKKysgIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKCk7CisrICBm cHJpbnRmIChzdGRlcnIsIF8oIkNhbm5vdCB0cmFjZSBjcmVhdGVkIHByb2Nlc3MgJXM6ICVzLlxu IiksIHByb2dyYW0sCisrCSAgIHN0cmVycm9yIChzYXZlX2Vycm5vKSk7CisrICBmZmx1c2ggKHN0 ZGVycik7CisrICBfZXhpdCAoMDE3Nyk7CisrfQorKworIC8qIFN0YXJ0IGFuIGluZmVyaW9yIHBy b2Nlc3MgYW5kIHJldHVybnMgaXRzIHBpZC4KKyAgICBBTExBUkdTIGlzIGEgdmVjdG9yIG9mIHBy b2dyYW0tbmFtZSBhbmQgYXJncy4gKi8KKyAKK0BAIC01OTAsNyArNjA5LDcgQEAgbGludXhfY3Jl YXRlX2luZmVyaW9yIChjaGFyICpwcm9ncmFtLCBjaGFyICoqYWxsYXJncykKKyAKKyAgIGlmIChw aWQgPT0gMCkKKyAgICAgeworLSAgICAgIHB0cmFjZSAoUFRSQUNFX1RSQUNFTUUsIDAsIDAsIDAp OworKyAgICAgIGxpbnV4X3RyYWNlbWUgKHByb2dyYW0pOworIAorICNpZm5kZWYgX19BTkRST0lE X18gLyogQmlvbmljIGRvZXNuJ3QgdXNlIFNJR1JUTUlOIHRoZSB3YXkgZ2xpYmMgZG9lcy4gICov CisgICAgICAgc2lnbmFsIChfX1NJR1JUTUlOICsgMSwgU0lHX0RGTCk7CitAQCAtNDM4Niw3ICs0 NDA1LDcgQEAgbGludXhfdHJhY2Vmb3JrX2dyYW5kY2hpbGQgKHZvaWQgKmFyZykKKyBzdGF0aWMg aW50CisgbGludXhfdHJhY2Vmb3JrX2NoaWxkICh2b2lkICphcmcpCisgeworLSAgcHRyYWNlIChQ VFJBQ0VfVFJBQ0VNRSwgMCwgMCwgMCk7CisrICBsaW51eF90cmFjZW1lICgiUFRSQUNFX09fVFJB Q0VGT1JLIHRlc3QiKTsKKyAgIGtpbGwgKGdldHBpZCAoKSwgU0lHU1RPUCk7CisgCisgI2lmICEo ZGVmaW5lZChfX1VDTElCQ19fKSAmJiBkZWZpbmVkKEhBU19OT01NVSkpCistLS0gYS9nZGIvaW5m LXB0cmFjZS5jCisrKysgYi9nZGIvaW5mLXB0cmFjZS5jCitAQCAtMTA1LDcgKzEwNSwxNSBAQCBz dGF0aWMgdm9pZAorIGluZl9wdHJhY2VfbWUgKHZvaWQpCisgeworICAgLyogIlRyYWNlIG1lLCBE ci4gTWVtb3J5ISIgICovCisrICBlcnJubyA9IDA7CisgICBwdHJhY2UgKFBUX1RSQUNFX01FLCAw LCAoUFRSQUNFX1RZUEVfQVJHMykwLCAwKTsKKysgIGlmIChlcnJubyAhPSAwKQorKyAgICB7Cisr ICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCBfKCJDYW5ub3QgY3JlYXRlIHBy b2Nlc3M6ICVzXG4iKSwKKysJCQkgIHNhZmVfc3RyZXJyb3IgKGVycm5vKSk7CisrICAgICAgZ2Ri X2ZsdXNoIChnZGJfc3RkZXJyKTsKKysgICAgICBfZXhpdCAoMDE3Nyk7CisrICAgIH0KKyB9Cisg CisgLyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxF IGlzIHRoZSBmaWxlIHRvCistLS0gYS9nZGIvbGludXgtbmF0LmMKKysrKyBiL2dkYi9saW51eC1u YXQuYworQEAgLTE1NzAsNiArMTU3MCw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0 cnVjdCB0YXJnZXRfb3BzICpvcHMsCisgI2lmZGVmIEhBVkVfUEVSU09OQUxJVFkKKyAgIGludCBw ZXJzb25hbGl0eV9vcmlnID0gMCwgcGVyc29uYWxpdHlfc2V0ID0gMDsKKyAjZW5kaWYgLyogSEFW RV9QRVJTT05BTElUWSAqLworKyAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXg7Cisg CisgICAvKiBUaGUgZm9ya19jaGlsZCBtZWNoYW5pc20gaXMgc3luY2hyb25vdXMgYW5kIGNhbGxz IHRhcmdldF93YWl0LCBzbworICAgICAgd2UgaGF2ZSB0byBtYXNrIHRoZSBhc3luYyBtb2RlLiAg Ki8KK0BAIC0xNTk0LDcgKzE1OTUsMTAgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3Ry dWN0IHRhcmdldF9vcHMgKm9wcywKKyAgIC8qIE1ha2Ugc3VyZSB3ZSByZXBvcnQgYWxsIHNpZ25h bHMgZHVyaW5nIHN0YXJ0dXAuICAqLworICAgbGludXhfbmF0X3Bhc3Nfc2lnbmFscyAoMCwgTlVM TCk7CisgCistICBsaW51eF9vcHMtPnRvX2NyZWF0ZV9pbmZlcmlvciAob3BzLCBleGVjX2ZpbGUs IGFsbGFyZ3MsIGVudiwgZnJvbV90dHkpOworKyAgVFJZX0NBVENIIChleCwgUkVUVVJOX01BU0tf RVJST1IpCisrICAgIHsKKysgICAgICBsaW51eF9vcHMtPnRvX2NyZWF0ZV9pbmZlcmlvciAob3Bz LCBleGVjX2ZpbGUsIGFsbGFyZ3MsIGVudiwgZnJvbV90dHkpOworKyAgICB9CisgCisgI2lmZGVm IEhBVkVfUEVSU09OQUxJVFkKKyAgIGlmIChwZXJzb25hbGl0eV9zZXQpCitAQCAtMTYwNiw2ICsx NjEwLDEyIEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRfb3BzICpv cHMsCisgCQkgc2FmZV9zdHJlcnJvciAoZXJybm8pKTsKKyAgICAgfQorICNlbmRpZiAvKiBIQVZF X1BFUlNPTkFMSVRZICovCisrCisrICBpZiAoZXgucmVhc29uIDwgMCkKKysgICAgeworKyAgICAg IGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKCk7CisrICAgICAgdGhyb3dfZXhjZXB0aW9u IChleCk7CisrICAgIH0KKyB9CisgCisgc3RhdGljIHZvaWQKKwoKZGlmZiAtLWdpdCBhL2dkYi5z cGVjIGIvZ2RiLnNwZWMKaW5kZXggNjQyMjczMi4uNzhlN2VhMyAxMDA2NDQKLS0tIGEvZ2RiLnNw ZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTMzLDcgKzMzLDcgQEAgVmVyc2lvbjogNy40LjUwLiV7c25h cH0KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51 bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1l JyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3Rp bmcuCi1SZWxlYXNlOiAyNyV7P2Rpc3R9CitSZWxlYXNlOiAyOCV7P2Rpc3R9CiAKIExpY2Vuc2U6 IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misg d2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1YmxpYyBE b21haW4KIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTU1Miw2ICs1NTIsMTQgQEAg UGF0Y2g2NDY6IGdkYi1leGl0LXdhcm5pbmcucGF0Y2gKICM9cHVzaCt3b3JrCiBQYXRjaDY0ODog Z2RiLWFyY2hlci12bGEtcmhlbDVnY2MucGF0Y2gKIAorIyBQcmludCByZWFzb25zIGZvciBmYWls ZWQgYXR0YWNoL3NwYXduIGluY2wuIFNFTGludXggZGVueV9wdHJhY2UgKEJaIDc4Njg3OCkuCisj PXB1c2gKK1BhdGNoNjQ5OiBnZGItYXR0YWNoLWZhaWwtcmVhc29ucy0xb2Y1LnBhdGNoCitQYXRj aDY1MDogZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtMm9mNS5wYXRjaAorUGF0Y2g2NTE6IGdkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTNvZjUucGF0Y2gKK1BhdGNoNjUyOiBnZGItYXR0YWNoLWZhaWwt cmVhc29ucy00b2Y1LnBhdGNoCitQYXRjaDY1MzogZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9m NS5wYXRjaAorCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxfU1RBVEVf RkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgogIyBQYXRjaDY0MjogZ2RiLXJlYWRs aW5lNjItYXNrLW1vcmUtcmgucGF0Y2gKQEAgLTgzMCw2ICs4MzgsMTEgQEAgcm0gLWYgZ2RiL2p2 LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoNjQ1 IC1wMQogJXBhdGNoNjQ2IC1wMQogJXBhdGNoNjQ4IC1wMQorJXBhdGNoNjQ5IC1wMQorJXBhdGNo NjUwIC1wMQorJXBhdGNoNjUxIC1wMQorJXBhdGNoNjUyIC1wMQorJXBhdGNoNjUzIC1wMQogCiAl cGF0Y2gzOTMgLXAxCiAlaWYgMCV7IT9lbDU6MX0gfHwgMCV7P3NjbDoxfQpAQCAtMTI5Niw2ICsx MzA5LDkgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0g Im5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBUdWUgTWFyICA2IDIwMTIgSmFuIEtyYXRvY2h2aWwg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy40LjUwLjIwMTIwMTIwLTI4LmZjMTcKKy0g UHJpbnQgcmVhc29ucyBmb3IgZmFpbGVkIGF0dGFjaC9zcGF3biBpbmNsLiBTRUxpbnV4IGRlbnlf cHRyYWNlIChCWiA3ODY4NzgpLgorCiAqIFN1biBNYXIgIDQgMjAxMiBKYW4gS3JhdG9jaHZpbCA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjQuNTAuMjAxMjAxMjAtMjcuZmMxNwogLSBb cmhlbDVdIEZpeCB1cCB0aGUgcHJldmlvdXMgY29tbWl0IChCWiA3OTkzMTgpLgogCg==