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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/gsi-openssh] epel8: Based on openssh-8.0p1-29.el8_10 Date: Sat, 30 May 2026 01:18:34 GMT Message-ID: <178010391414.1.17556932831806369197.rpms-gsi-openssh-1a900edeb0a5@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: epel8 X-Git-Rev: 1a900edeb0a592a0334ce4e25b328e3a3bf48f95 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZXBlbDgKQ29tbWl0IDogMWE5MDBlZGViMGE1OTJhMDMzNGNlNGUyNWIzMjhlM2Ez YmY0OGY5NQpBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51 dS5zZT4KRGF0ZSAgIDogMjAyNi0wNS0yOVQwODoxMzowNCswMjowMApTdGF0cyAgOiArNjE4Ly0x IGluIDYgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L2dzaS1vcGVuc3NoL2MvMWE5MDBlZGViMGE1OTJhMDMzNGNlNGUyNWIzMjhlM2EzYmY0OGY5NT9i cmFuY2g9ZXBlbDgKCkxvZzoKQmFzZWQgb24gb3BlbnNzaC04LjBwMS0yOS5lbDhfMTAKCi0tLQpk aWZmIC0tZ2l0IGEvZ3NpLW9wZW5zc2guc3BlYyBiL2dzaS1vcGVuc3NoLnNwZWMKaW5kZXggNDIz YTk0OS4uM2I2NzVhYSAxMDA2NDQKLS0tIGEvZ3NpLW9wZW5zc2guc3BlYworKysgYi9nc2ktb3Bl bnNzaC5zcGVjCkBAIC0zMSw3ICszMSw3IEBACiAlZ2xvYmFsIGxkYXAgMQogCiAlZ2xvYmFsIG9w ZW5zc2hfdmVyIDguMHAxCi0lZ2xvYmFsIG9wZW5zc2hfcmVsIDE3CislZ2xvYmFsIG9wZW5zc2hf cmVsIDE4CiAKIFN1bW1hcnk6IEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTU0ggcHJvdG9jb2wg d2l0aCBHU0kgYXV0aGVudGljYXRpb24KIE5hbWU6IGdzaS1vcGVuc3NoCkBAIC0yNDUsNiArMjQ1 LDE5IEBAIFBhdGNoMTAyMjogb3BlbnNzaC04LjBwMS1DVkUtMjAyNS0yNjQ2NS5wYXRjaAogUGF0 Y2gxMDIzOiBvcGVuc3NoLTguMHAxLXJlamVjdC1jbnRybC1jaGFycy1pbi11c2VybmFtZS5wYXRj aAogIyB1cHN0cmVhbSA0M2IzYmZmNDdiYjAyOWYyMjk5YmFjYjZhMzYwNTc5ODFiMzlmZGIwCiBQ YXRjaDEwMjQ6IG9wZW5zc2gtOC43cDEtcmVqZWN0LW51bGwtY2hhci1pbi11cmwtc3RyaW5nLnBh dGNoCisjIHVwc3RyZWFtIDQ4N2U4YWMxNDZmN2Q2NjE2ZjY1YzEyNWQ1ZWRiMjEwNTE5YjgzM2EK K1BhdGNoMTAyNTogb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCisjIHVwc3Ry ZWFtIGM4MDViOTdiNjdjNzc0ZTBiZjkyMmZmYjI5ZGZiY2RhOWQ3YjVhZGQKK1BhdGNoMTAyNjog b3BlbnNzaC04LjBwMS1tdXgtYXNrcGFzcy1jaGVjay5wYXRjaAorIyB1cHN0cmVhbSBmZDFjN2Ux MzFmMzMxOTQyZDIwZjQyZjMxZTc5OTEyZDU3MDA4MWZhCitQYXRjaDEwMjc6IG9wZW5zc2gtOC4w cDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5wYXRjaAorIyB1cHN0cmVhbSBmZDFjN2Ux MzFmMzMxOTQyZDIwZjQyZjMxZTc5OTEyZDU3MDA4MWZhCitQYXRjaDEwMjg6IG9wZW5zc2gtOC43 cDEtYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uLnBhdGNoCisjIHVwc3RyZWFtIDc2 Njg1YzliMDlhNjY0MzVjZDJhZDgzNzMyNDZhZGYxYzUzOTc2ZDMKKyMgdXBzdHJlYW0gMGEwZWY0 NTE1MzYxMTQzY2FkMjFhZmEwNzIzMTk4MjM4NTRjMWNmNgorIyB1cHN0cmVhbSA2MDdiZDg3MWVj MDI5ZTlhYTIyZTYzMmEyMjU0NzI1MGYzY2FlMjIzCisjIHVwc3RyZWFtIDEzNDBkM2ZhOGU0YmIx MjI5MDZhODIxNTljNGM5YjkxNTg0ZDY1Y2UKK1BhdGNoMTAyOTogb3BlbnNzaC04LjBwMS1wcm94 eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzLnBhdGNoCiAKICMgVGhpcyBpcyB0aGUgcGF0 Y2ggdGhhdCBhZGRzIEdTSSBzdXBwb3J0CiAjIEJhc2VkIG9uIGhwbl9pc3NoZC1nc2kuNy41cDFi LnBhdGNoIGZyb20gR2xvYnVzIHVwc3RyZWFtCkBAIC00MzksNiArNDUyLDExIEBAIGdwZ3YyIC0t cXVpZXQgLS1rZXlyaW5nICV7U09VUkNFM30gJXtTT1VSQ0UxfSAle1NPVVJDRTB9CiAlcGF0Y2gg LVAxMDIyIC1wMiAtYiAuY3ZlLTIwMjUtMjY0NjUKICVwYXRjaCAtUDEwMjMgLXAxIC1iIC5yZWpl Y3QtY250cmwtY2hhcnMtaW4tdXNlcm5hbWUKICVwYXRjaCAtUDEwMjQgLXAxIC1iIC5yZWplY3Qt bnVsbC1jaGFyLWluLXVybC1zdHJpbmcKKyVwYXRjaCAtUDEwMjUgLXAxIC1iIC5zY3AtY2xlYXIt c2V0dWlkCislcGF0Y2ggLVAxMDI2IC1wMSAtYiAubXV4LWFza3Bhc3MtY2hlY2sKKyVwYXRjaCAt UDEwMjcgLXAxIC1iIC5lY2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uCislcGF0Y2ggLVAxMDI4 IC1wMSAtYiAuYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uCislcGF0Y2ggLVAxMDI5 IC1wMSAtYiAucHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcwogCiAlcGF0Y2ggLVA5 OCAtcDEgLWIgLmdzaQogJXBhdGNoIC1QOTkgLXAxIC1iIC5ocG4KQEAgLTY0MSw2ICs2NTksOSBA QCBnZXRlbnQgcGFzc3dkIHNzaGQgPi9kZXYvbnVsbCB8fCBcCiAlYXR0cigwNjQ0LHJvb3Qscm9v dCkgJXtfdG1wZmlsZXNkaXJ9L2dzaXNzaC5jb25mCiAKICVjaGFuZ2Vsb2cKKyogRnJpIE1heSAy OSAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPiAtIDgu MHAxLTE4CistIEJhc2VkIG9uIG9wZW5zc2gtOC4wcDEtMjkuZWw4XzEwCisKICogRnJpIEphbiAx NiAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPiAtIDgu MHAxLTE3CiAtIEJhc2VkIG9uIG9wZW5zc2gtOC4wcDEtMjcuZWw4XzEwCiAKCmRpZmYgLS1naXQg YS9vcGVuc3NoLTguMHAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24ucGF0Y2ggYi9vcGVu c3NoLTguMHAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24ucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkwNTVkZAotLS0gL2Rldi9udWxsCisrKyBiL29wZW5z c2gtOC4wcDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5wYXRjaApAQCAtMCwwICsxLDk5 IEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1ob3N0YmFzZWQuYyBiL2F1dGgyLWhvc3Ri YXNlZC5jCistLS0gYS9hdXRoMi1ob3N0YmFzZWQuYwkyMDI2LTA0LTE1IDEyOjQxOjQxLjUwNjk4 NTA0MyArMDIwMAorKysrIGIvYXV0aDItaG9zdGJhc2VkLmMJMjAyNi0wNC0xNSAxMjo1NTo1NS4w Mzk5MTY0MjEgKzAyMDAKK0BAIC05Niw5ICs5NiwxMCBAQCB1c2VyYXV0aF9ob3N0YmFzZWQoc3Ry dWN0IHNzaCAqc3NoKQorIAkJZXJyb3IoIiVzOiBjYW5ub3QgZGVjb2RlIGtleTogJXMiLCBfX2Z1 bmNfXywgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CistCWlmIChrZXktPnR5cGUgIT0gcGt0 eXBlKSB7CistCQllcnJvcigiJXM6IHR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5ICIKKy0J CSAgICAiKHJlY2VpdmVkICVkLCBleHBlY3RlZCAlZCkiLCBfX2Z1bmNfXywga2V5LT50eXBlLCBw a3R5cGUpOworKwlpZiAoa2V5LT50eXBlICE9IHBrdHlwZSB8fCAoc3Noa2V5X3R5cGVfcGxhaW4o cGt0eXBlKSA9PSBLRVlfRUNEU0EgJiYKKysJICAgIHNzaGtleV9lY2RzYV9uaWRfZnJvbV9uYW1l KHBrYWxnKSAhPSBrZXktPmVjZHNhX25pZCkpIHsKKysJCWVycm9yKCIlczoga2V5IHR5cGUgbWlz bWF0Y2ggZm9yIGRlY29kZWQga2V5ICIKKysJCSAgICAiKHJlY2VpdmVkICVzLCBleHBlY3RlZCAl cykiLCBfX2Z1bmNfXywgc3Noa2V5X3NzaF9uYW1lKGtleSksIHBrYWxnKTsKKyAJCWdvdG8gZG9u ZTsKKyAJfQorIAlpZiAoc3Noa2V5X3R5cGVfcGxhaW4oa2V5LT50eXBlKSA9PSBLRVlfUlNBICYm CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1wdWJrZXkuYyBiL2F1dGgyLXB1YmtleS5jCist LS0gYS9hdXRoMi1wdWJrZXkuYwkyMDI2LTA0LTE1IDEyOjQxOjQxLjUwNzIyNTk4NiArMDIwMAor KysrIGIvYXV0aDItcHVia2V5LmMJMjAyNi0wNC0xNSAxMjo1NTowNi41NTk4NzU3ODkgKzAyMDAK K0BAIC0xMzYsOSArMTM2LDEwIEBAIHVzZXJhdXRoX3B1YmtleShzdHJ1Y3Qgc3NoICpzc2gpCisg CQllcnJvcigiJXM6IGNhbm5vdCBkZWNvZGUga2V5OiAlcyIsIF9fZnVuY19fLCBwa2FsZyk7Cisg CQlnb3RvIGRvbmU7CisgCX0KKy0JaWYgKGtleS0+dHlwZSAhPSBwa3R5cGUpIHsKKy0JCWVycm9y KCIlczogdHlwZSBtaXNtYXRjaCBmb3IgZGVjb2RlZCBrZXkgIgorLQkJICAgICIocmVjZWl2ZWQg JWQsIGV4cGVjdGVkICVkKSIsIF9fZnVuY19fLCBrZXktPnR5cGUsIHBrdHlwZSk7CisrCWlmIChr ZXktPnR5cGUgIT0gcGt0eXBlIHx8IChzc2hrZXlfdHlwZV9wbGFpbihwa3R5cGUpID09IEtFWV9F Q0RTQSAmJgorKwkgICAgc3Noa2V5X2VjZHNhX25pZF9mcm9tX25hbWUocGthbGcpICE9IGtleS0+ ZWNkc2FfbmlkKSkgeworKwkJZXJyb3IoIiVzOiBrZXkgdHlwZSBtaXNtYXRjaCBmb3IgZGVjb2Rl ZCBrZXkgIgorKwkJICAgICIocmVjZWl2ZWQgJXMsIGV4cGVjdGVkICVzKSIsIF9fZnVuY19fLCBz c2hrZXlfc3NoX25hbWUoa2V5KSwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CisgCWlmIChz c2hrZXlfdHlwZV9wbGFpbihrZXktPnR5cGUpID09IEtFWV9SU0EgJiYKK2RpZmYgLS1jb2xvciAt cnVOcCBhL3NzaGNvbm5lY3QyLmMgYi9zc2hjb25uZWN0Mi5jCistLS0gYS9zc2hjb25uZWN0Mi5j CTIwMjYtMDQtMTUgMTI6NDE6NDEuNTQ2NTczNjQ4ICswMjAwCisrKysgYi9zc2hjb25uZWN0Mi5j CTIwMjYtMDQtMTUgMTI6NDc6NTYuODYyODY3OTMwICswMjAwCitAQCAtOTEsMTAgKzkxLDE1IEBA IHVfaW50IHNlc3Npb25faWQyX2xlbiA9IDA7CisgCisgY2hhciAqeHh4X2hvc3Q7Cisgc3RydWN0 IHNvY2thZGRyICp4eHhfaG9zdGFkZHI7Cisrc3RhdGljIGludCBrZXlfdHlwZV9hbGxvd2VkKHN0 cnVjdCBzc2hrZXkgKiwgY29uc3QgY2hhciAqKTsKKyAKKyBzdGF0aWMgaW50CisgdmVyaWZ5X2hv c3Rfa2V5X2NhbGxiYWNrKHN0cnVjdCBzc2hrZXkgKmhvc3RrZXksIHN0cnVjdCBzc2ggKnNzaCkK KyB7CisrCWlmICgha2V5X3R5cGVfYWxsb3dlZChob3N0a2V5LCBvcHRpb25zLmhvc3RrZXlhbGdv cml0aG1zKSkgeworKwkJZmF0YWwoIlNlcnZlciBob3N0IGtleSAlcyBub3QgaW4gSG9zdEtleUFs Z29yaXRobXMiLAorKwkJICAgIHNzaGtleV9zc2hfbmFtZShob3N0a2V5KSk7CisrCX0KKyAJaWYg KHZlcmlmeV9ob3N0X2tleSh4eHhfaG9zdCwgeHh4X2hvc3RhZGRyLCBob3N0a2V5KSAhPSAwKQor IAkJZmF0YWwoIkhvc3Qga2V5IHZlcmlmaWNhdGlvbiBmYWlsZWQuIik7CisgCXJldHVybiAwOwor QEAgLTE2NjIsMzQgKzE2NjcsMzYgQEAgbG9hZF9pZGVudGl0eV9maWxlKElkZW50aXR5ICppZCkK KyB9CisgCisgc3RhdGljIGludAorLWtleV90eXBlX2FsbG93ZWRfYnlfY29uZmlnKHN0cnVjdCBz c2hrZXkgKmtleSkKKytrZXlfdHlwZV9hbGxvd2VkKHN0cnVjdCBzc2hrZXkgKmtleSwgY29uc3Qg Y2hhciAqYWxsb3dsaXN0KQorIHsKKy0JaWYgKG1hdGNoX3BhdHRlcm5fbGlzdChzc2hrZXlfc3No X25hbWUoa2V5KSwKKy0JICAgIG9wdGlvbnMucHVia2V5X2tleV90eXBlcywgMCkgPT0gMSkKKysJ aWYgKG1hdGNoX3BhdHRlcm5fbGlzdChzc2hrZXlfc3NoX25hbWUoa2V5KSwgYWxsb3dsaXN0LCAw KSA9PSAxKQorIAkJcmV0dXJuIDE7CisgCisgCS8qIFJTQSBrZXlzL2NlcnRzIG1pZ2h0IGJlIGFs bG93ZWQgYnkgYWx0ZXJuYXRlIHNpZ25hdHVyZSB0eXBlcyAqLworIAlzd2l0Y2ggKGtleS0+dHlw ZSkgeworIAljYXNlIEtFWV9SU0E6CistCQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hh Mi01MTIiLAorLQkJICAgIG9wdGlvbnMucHVia2V5X2tleV90eXBlcywgMCkgPT0gMSkKKysJCWlm IChtYXRjaF9wYXR0ZXJuX2xpc3QoInJzYS1zaGEyLTUxMiIsIGFsbG93bGlzdCwgMCkgPT0gMSkK KyAJCQlyZXR1cm4gMTsKKy0JCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3QoInJzYS1zaGEyLTI1NiIs CistCQkgICAgb3B0aW9ucy5wdWJrZXlfa2V5X3R5cGVzLCAwKSA9PSAxKQorKwkJaWYgKG1hdGNo X3BhdHRlcm5fbGlzdCgicnNhLXNoYTItMjU2IiwgYWxsb3dsaXN0LCAwKSA9PSAxKQorIAkJCXJl dHVybiAxOworIAkJYnJlYWs7CisgCWNhc2UgS0VZX1JTQV9DRVJUOgorIAkJaWYgKG1hdGNoX3Bh dHRlcm5fbGlzdCgicnNhLXNoYTItNTEyLWNlcnQtdjAxQG9wZW5zc2guY29tIiwKKy0JCSAgICBv cHRpb25zLnB1YmtleV9rZXlfdHlwZXMsIDApID09IDEpCisrCQkgICAgYWxsb3dsaXN0LCAwKSA9 PSAxKQorIAkJCXJldHVybiAxOworIAkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNhLXNoYTIt MjU2LWNlcnQtdjAxQG9wZW5zc2guY29tIiwKKy0JCSAgICBvcHRpb25zLnB1YmtleV9rZXlfdHlw ZXMsIDApID09IDEpCisrCQkgICAgYWxsb3dsaXN0LCAwKSA9PSAxKQorIAkJCXJldHVybiAxOwor IAkJYnJlYWs7CisgCX0KKyAJcmV0dXJuIDA7CisgfQorIAorK3N0YXRpYyBpbnQKKytrZXlfdHlw ZV9hbGxvd2VkX2J5X2NvbmZpZyhzdHJ1Y3Qgc3Noa2V5ICprZXkpCisreworKwlyZXR1cm4ga2V5 X3R5cGVfYWxsb3dlZChrZXksIG9wdGlvbnMucHVia2V5X2tleV90eXBlcyk7CisrfQorIAorIC8q CisgICogdHJ5IGtleXMgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjoKCmRpZmYgLS1naXQgYS9vcGVu c3NoLTguMHAxLW11eC1hc2twYXNzLWNoZWNrLnBhdGNoIGIvb3BlbnNzaC04LjBwMS1tdXgtYXNr cGFzcy1jaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTI4 MTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC04LjBwMS1tdXgtYXNrcGFzcy1jaGVjay5w YXRjaApAQCAtMCwwICsxLDIwIEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9tdXguYyBiL211eC5j CistLS0gYS9tdXguYwkyMDI2LTA0LTE1IDEyOjIyOjM2LjUzMzkzMTQ0MCArMDIwMAorKysrIGIv bXV4LmMJMjAyNi0wNC0xNSAxMjoyNDo0MC4wMjA1Nzg5OTEgKzAyMDAKK0BAIC0xMTMzLDYgKzEx MzMsMTYgQEAgbXV4X21hc3Rlcl9wcm9jZXNzX3Byb3h5KHN0cnVjdCBzc2ggKnNzaAorIAorIAlk ZWJ1ZygiJXM6IGNoYW5uZWwgJWQ6IHByb3h5IHJlcXVlc3QiLCBfX2Z1bmNfXywgYy0+c2VsZik7 CisgCisrCWlmIChvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09IFNTSENUTF9NQVNURVJfQVNLIHx8 CisrCSAgICBvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09IFNTSENUTF9NQVNURVJfQVVUT19BU0sp IHsKKysJCWlmICghYXNrX3Blcm1pc3Npb24oIkFsbG93IG11bHRpcGxleCBwcm94eSBjb25uZWN0 aW9uPyIpKSB7CisrCQkJZGVidWcyKCIlczogcHJveHkgcmVmdXNlZCBieSB1c2VyIiwgX19mdW5j X18pOworKwkJCXJlcGx5X2Vycm9yKHJlcGx5LCBNVVhfU19QRVJNSVNTSU9OX0RFTklFRCwgcmlk LAorKwkJCSAgICAiUGVybWlzc2lvbiBkZW5pZWQiKTsKKysJCQlyZXR1cm4gMDsKKysJCX0KKysJ fQorKworIAljLT5tdXhfcmNiID0gY2hhbm5lbF9wcm94eV9kb3duc3RyZWFtOworIAlpZiAoKHIg PSBzc2hidWZfcHV0X3UzMihyZXBseSwgTVVYX1NfUFJPWFkpKSAhPSAwIHx8CisgCSAgICAociA9 IHNzaGJ1Zl9wdXRfdTMyKHJlcGx5LCByaWQpKSAhPSAwKQoKZGlmZiAtLWdpdCBhL29wZW5zc2gt OC4wcDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRjaCBiL29wZW5zc2gt OC4wcDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2I5NTI2Ci0tLSAvZGV2L251bGwKKysrIGIvb3Bl bnNzaC04LjBwMS1wcm94eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzLnBhdGNoCkBAIC0w LDAgKzEsNDI1IEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9taXNjLmMgYi9taXNjLmMKKy0tLSBh L21pc2MuYwkyMDI2LTA0LTE1IDEzOjMxOjA3LjgyMjA5NjA5NiArMDIwMAorKysrIGIvbWlzYy5j CTIwMjYtMDQtMTUgMTM6MzM6MDQuMjI4MjM1MTgyICswMjAwCitAQCAtODksNiArODksMjAgQEAg Y2hvcChjaGFyICpzKQorIAorIH0KKyAKKysvKiByZW1vdmUgd2hpdGVzcGFjZSBmcm9tIGVuZCBv ZiBzdHJpbmcgKi8KKyt2b2lkCisrcnRyaW0oY2hhciAqcykKKyt7CisrCXNpemVfdCBpOworKwor KwlpZiAoKGkgPSBzdHJsZW4ocykpID09IDApCisrCQlyZXR1cm47CisrCWZvciAoaS0tOyBpID4g MDsgaS0tKSB7CisrCQlpZiAoaXNzcGFjZSgoaW50KXNbaV0pKQorKwkJCXNbaV0gPSAnXDAnOwor Kwl9CisrfQorKworIC8qIHNldC91bnNldCBmaWxlZGVzY3JpcHRvciB0byBub24tYmxvY2tpbmcg Ki8KKyBpbnQKKyBzZXRfbm9uYmxvY2soaW50IGZkKQorZGlmZiAtLWNvbG9yIC1ydU5wIGEvbWlz Yy5oIGIvbWlzYy5oCistLS0gYS9taXNjLmgJMjAxOS0wNC0xOCAwMDo1Mjo1Ny4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL21pc2MuaAkyMDI2LTA0LTE1IDEzOjMzOjEzLjY1NjQyODAwNiArMDIwMAor QEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IEZvcndhcmRPcHRpb25zIHsKKyAvKiBtaXNjLmMgKi8K KyAKKyBjaGFyCSpjaG9wKGNoYXIgKik7Cisrdm9pZAkgcnRyaW0oY2hhciAqKTsKKyBjaGFyCSpz dHJkZWxpbShjaGFyICoqKTsKKyBjaGFyCSpzdHJkZWxpbXcoY2hhciAqKik7CisgaW50CSBzZXRf bm9uYmxvY2soaW50KTsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlYWRjb25mLmMgYi9yZWFkY29u Zi5jCistLS0gYS9yZWFkY29uZi5jCTIwMjYtMDQtMTUgMTM6MzE6MDcuNzg3MDgwODA4ICswMjAw CisrKysgYi9yZWFkY29uZi5jCTIwMjYtMDQtMTUgMTM6MzE6NDAuOTMwNTMxNTkyICswMjAwCitA QCAtMTE5NSw5ICsxMTk1LDYgQEAgcGFyc2VfY2hhcl9hcnJheToKKyAKKyAJY2FzZSBvUHJveHlD b21tYW5kOgorIAkJY2hhcnB0ciA9ICZvcHRpb25zLT5wcm94eV9jb21tYW5kOworLQkJLyogSWdu b3JlIFByb3h5Q29tbWFuZCBpZiBQcm94eUp1bXAgYWxyZWFkeSBzcGVjaWZpZWQgKi8KKy0JCWlm IChvcHRpb25zLT5qdW1wX2hvc3QgIT0gTlVMTCkKKy0JCQljaGFycHRyID0gJm9wdGlvbnMtPmp1 bXBfaG9zdDsgLyogU2tpcCBiZWxvdyAqLworIHBhcnNlX2NvbW1hbmQ6CisgCQlpZiAocyA9PSBO VUxMKQorIAkJCWZhdGFsKCIlLjIwMHMgbGluZSAlZDogTWlzc2luZyBhcmd1bWVudC4iLCBmaWxl bmFtZSwgbGluZW51bSk7CitAQCAtMTIxMiw3ICsxMjA5LDcgQEAgcGFyc2VfY29tbWFuZDoKKyAJ CQkgICAgZmlsZW5hbWUsIGxpbmVudW0pOworIAkJfQorIAkJbGVuID0gc3Ryc3BuKHMsIFdISVRF U1BBQ0UgIj0iKTsKKy0JCWlmIChwYXJzZV9qdW1wKHMgKyBsZW4sIG9wdGlvbnMsICphY3RpdmVw KSA9PSAtMSkgeworKwkJaWYgKHBhcnNlX2p1bXAocyArIGxlbiwgb3B0aW9ucywgY21kbGluZSwg KmFjdGl2ZXApID09IC0xKSB7CisgCQkJZmF0YWwoIiUuMjAwcyBsaW5lICVkOiBJbnZhbGlkIFBy b3h5SnVtcCBcIiVzXCIiLAorIAkJCSAgICBmaWxlbmFtZSwgbGluZW51bSwgcyArIGxlbik7Cisg CQl9CitAQCAtMjQ0MCw1NyArMjQzNywxMTYgQEAgcGFyc2VfZm9yd2FyZChzdHJ1Y3QgRm9yd2Fy ZCAqZndkLCBjb25zdAorIH0KKyAKKyBpbnQKKy1wYXJzZV9qdW1wKGNvbnN0IGNoYXIgKnMsIE9w dGlvbnMgKm8sIGludCBhY3RpdmUpCisrc3NoX3ZhbGlkX2hvc3RuYW1lKGNvbnN0IGNoYXIgKnMp CisgeworLQljaGFyICpvcmlnLCAqc2R1cCwgKmNwOworLQljaGFyICpob3N0ID0gTlVMTCwgKnVz ZXIgPSBOVUxMOworLQlpbnQgcmV0ID0gLTEsIHBvcnQgPSAtMSwgZmlyc3Q7CisrCXNpemVfdCBp OworIAorLQlhY3RpdmUgJj0gby0+cHJveHlfY29tbWFuZCA9PSBOVUxMICYmIG8tPmp1bXBfaG9z dCA9PSBOVUxMOworKwlpZiAoKnMgPT0gJy0nKQorKwkJcmV0dXJuIDA7CisrCWZvciAoaSA9IDA7 IHNbaV0gIT0gMDsgaSsrKSB7CisrCQlpZiAoc3RyY2hyKCInYFwiJFxcOyY8PnwoKXt9LCIsIHNb aV0pICE9IE5VTEwgfHwKKysJCSAgICBpc3NwYWNlKCh1X2NoYXIpc1tpXSkgfHwgaXNjbnRybCgo dV9jaGFyKXNbaV0pKQorKwkJCXJldHVybiAwOworKwl9CisrCXJldHVybiAxOworK30KKysKKytp bnQKKytzc2hfdmFsaWRfcnVzZXIoY29uc3QgY2hhciAqcykKKyt7CisrCXNpemVfdCBpOworKwor KwlpZiAoKnMgPT0gJy0nKQorKwkJcmV0dXJuIDA7CisrCWZvciAoaSA9IDA7IHNbaV0gIT0gMDsg aSsrKSB7CisrCQlpZiAoaXNjbnRybCgodV9jaGFyKXNbaV0pKQorKwkJCXJldHVybiAwOworKwkJ aWYgKHN0cmNocigiJ2BcIjsmPD58KCl7fSIsIHNbaV0pICE9IE5VTEwpCisrCQkJcmV0dXJuIDA7 CisrCQkvKiBEaXNhbGxvdyAnLScgYWZ0ZXIgd2hpdGVzcGFjZSAqLworKwkJaWYgKGlzc3BhY2Uo KHVfY2hhcilzW2ldKSAmJiBzW2kgKyAxXSA9PSAnLScpCisrCQkJcmV0dXJuIDA7CisrCQkvKiBE aXNhbGxvdyBcIGluIGxhc3QgcG9zaXRpb24gKi8KKysJCWlmIChzW2ldID09ICdcXCcgJiYgc1tp ICsgMV0gPT0gJ1wwJykKKysJCQlyZXR1cm4gMDsKKysJfQorKwlyZXR1cm4gMTsKKyt9CisrCisr aW50CisrcGFyc2VfanVtcChjb25zdCBjaGFyICpzLCBPcHRpb25zICpvLCBpbnQgc3RyaWN0LCBp bnQgYWN0aXZlKQorK3sKKysJY2hhciAqb3JpZyA9IE5VTEwsICpzZHVwID0gTlVMTCwgKmNwOwor KwljaGFyICp0bXBfdXNlciA9IE5VTEwsICp0bXBfaG9zdCA9IE5VTEwsICpob3N0ID0gTlVMTCwg KnVzZXIgPSBOVUxMOworKwlpbnQgciwgcmV0ID0gLTEsIHRtcF9wb3J0ID0gLTEsIHBvcnQgPSAt MSwgZmlyc3QgPSAxOworKworKwlpZiAoc3RyY2FzZWNtcChzLCAibm9uZSIpID09IDApIHsKKysJ CWlmIChhY3RpdmUgJiYgby0+anVtcF9ob3N0ID09IE5VTEwpIHsKKysJCQlvLT5qdW1wX2hvc3Qg PSB4c3RyZHVwKCJub25lIik7CisrCQkJby0+anVtcF9wb3J0ID0gMDsKKysJCX0KKysJCXJldHVy biAwOworKwl9CisrCisrCW9yaWcgPSB4c3RyZHVwKHMpOworKwlpZiAoKGNwID0gc3RyY2hyKG9y aWcsICcjJykpICE9IE5VTEwpCisrCQkqY3AgPSAnXDAnOworKwlydHJpbShvcmlnKTsKKyAKKy0J b3JpZyA9IHNkdXAgPSB4c3RyZHVwKHMpOworLQlmaXJzdCA9IGFjdGl2ZTsKKysJYWN0aXZlICY9 IG8tPnByb3h5X2NvbW1hbmQgPT0gTlVMTCAmJiBvLT5qdW1wX2hvc3QgPT0gTlVMTDsKKysJc2R1 cCA9IHhzdHJkdXAob3JpZyk7CisgCWRvIHsKKy0JCWlmIChzdHJjYXNlY21wKHMsICJub25lIikg PT0gMCkKKy0JCQlicmVhazsKKysJCS8qIFdvcmsgYmFja3dhcmRzIHRocm91Z2ggc3RyaW5nICov CisgCQlpZiAoKGNwID0gc3RycmNocihzZHVwLCAnLCcpKSA9PSBOVUxMKQorIAkJCWNwID0gc2R1 cDsgLyogbGFzdCAqLworIAkJZWxzZQorIAkJCSpjcCsrID0gJ1wwJzsKKyAKKy0JCWlmIChmaXJz dCkgeworLQkJCS8qIEZpcnN0IGFyZ3VtZW50IGFuZCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZSAq LworLQkJCWlmIChwYXJzZV9zc2hfdXJpKGNwLCAmdXNlciwgJmhvc3QsICZwb3J0KSA9PSAtMSB8 fAorLQkJCSAgICBwYXJzZV91c2VyX2hvc3RfcG9ydChjcCwgJnVzZXIsICZob3N0LCAmcG9ydCkg IT0gMCkKKysJCXIgPSBwYXJzZV9zc2hfdXJpKGNwLCAmdG1wX3VzZXIsICZ0bXBfaG9zdCwgJnRt cF9wb3J0KTsKKysJCWlmIChyID09IC0xIHx8IChyID09IDEgJiYgcGFyc2VfdXNlcl9ob3N0X3Bv cnQoY3AsCisrCQkgICAgJnRtcF91c2VyLCAmdG1wX2hvc3QsICZ0bXBfcG9ydCkgIT0gMCkpCisr CQkJZ290byBvdXQ7IC8qIGVycm9yIGFscmVhZHkgbG9nZ2VkICovCisrCQlpZiAoc3RyaWN0KSB7 CisrCQkJaWYgKCFzc2hfdmFsaWRfaG9zdG5hbWUodG1wX2hvc3QpKSB7CisrCQkJCWVycm9yKCIl czogaW52YWxpZCBob3N0bmFtZSBcIiVzXCIiLCBfX2Z1bmNfXywgdG1wX2hvc3QpOworIAkJCQln b3RvIG91dDsKKy0JCX0gZWxzZSB7CistCQkJLyogU3Vic2VxdWVudCBhcmd1bWVudCBvciBpbmFj dGl2ZSBjb25maWd1cmF0aW9uICovCistCQkJaWYgKHBhcnNlX3NzaF91cmkoY3AsIE5VTEwsIE5V TEwsIE5VTEwpID09IC0xIHx8CistCQkJICAgIHBhcnNlX3VzZXJfaG9zdF9wb3J0KGNwLCBOVUxM LCBOVUxMLCBOVUxMKSAhPSAwKQorKwkJCX0KKysJCQlpZiAodG1wX3VzZXIgIT0gTlVMTCAmJiAh c3NoX3ZhbGlkX3J1c2VyKHRtcF91c2VyKSkgeworKwkJCQllcnJvcigiJXM6IGludmFsaWQgdXNl cm5hbWUgXCIlc1wiIiwgX19mdW5jX18sIHRtcF91c2VyKTsKKyAJCQkJZ290byBvdXQ7CisrCQkJ fQorKwkJfQorKwkJaWYgKGZpcnN0KSB7CisrCQkJdXNlciA9IHRtcF91c2VyOworKwkJCWhvc3Qg PSB0bXBfaG9zdDsKKysJCQlwb3J0ID0gdG1wX3BvcnQ7CisrCQkJdG1wX3VzZXIgPSB0bXBfaG9z dCA9IE5VTEw7IC8qIHRyYW5zZmVycmVkICovCisgCQl9CisgCQlmaXJzdCA9IDA7IC8qIG9ubHkg Y2hlY2sgc3ludGF4IGZvciBzdWJzZXF1ZW50IGhvc3RzICovCisrCQlmcmVlKHRtcF91c2VyKTsK KysJCWZyZWUodG1wX2hvc3QpOworKwkJdG1wX3VzZXIgPSB0bXBfaG9zdCA9IE5VTEw7CisrCQl0 bXBfcG9ydCA9IC0xOworIAl9IHdoaWxlIChjcCAhPSBzZHVwKTsKKysKKyAJLyogc3VjY2VzcyAq LworIAlpZiAoYWN0aXZlKSB7CistCQlpZiAoc3RyY2FzZWNtcChzLCAibm9uZSIpID09IDApIHsK Ky0JCQlvLT5qdW1wX2hvc3QgPSB4c3RyZHVwKCJub25lIik7CistCQkJby0+anVtcF9wb3J0ID0g MDsKKy0JCX0gZWxzZSB7CistCQkJby0+anVtcF91c2VyID0gdXNlcjsKKy0JCQlvLT5qdW1wX2hv c3QgPSBob3N0OworLQkJCW8tPmp1bXBfcG9ydCA9IHBvcnQ7CistCQkJby0+cHJveHlfY29tbWFu ZCA9IHhzdHJkdXAoIm5vbmUiKTsKKy0JCQl1c2VyID0gaG9zdCA9IE5VTEw7CistCQkJaWYgKChj cCA9IHN0cnJjaHIocywgJywnKSkgIT0gTlVMTCAmJiBjcCAhPSBzKSB7CistCQkJCW8tPmp1bXBf ZXh0cmEgPSB4c3RyZHVwKHMpOworLQkJCQlvLT5qdW1wX2V4dHJhW2NwIC0gc10gPSAnXDAnOwor LQkJCX0KKysJCW8tPmp1bXBfdXNlciA9IHVzZXI7CisrCQlvLT5qdW1wX2hvc3QgPSBob3N0Owor KwkJby0+anVtcF9wb3J0ID0gcG9ydDsKKysJCW8tPnByb3h5X2NvbW1hbmQgPSB4c3RyZHVwKCJu b25lIik7CisrCQl1c2VyID0gaG9zdCA9IE5VTEw7IC8qIHRyYW5zZmVycmVkICovCisrCQlpZiAo b3JpZyAhPSBOVUxMICYmIChjcCA9IHN0cnJjaHIob3JpZywgJywnKSkgIT0gTlVMTCkgeworKwkJ CW8tPmp1bXBfZXh0cmEgPSB4c3RyZHVwKG9yaWcpOworKwkJCW8tPmp1bXBfZXh0cmFbY3AgLSBv cmlnXSA9ICdcMCc7CisgCQl9CisgCX0KKyAJcmV0ID0gMDsKKyAgb3V0OgorIAlmcmVlKG9yaWcp OworKwlmcmVlKHNkdXApOworKwlmcmVlKHRtcF91c2VyKTsKKysJZnJlZSh0bXBfaG9zdCk7Cisg CWZyZWUodXNlcik7CisgCWZyZWUoaG9zdCk7CisgCXJldHVybiByZXQ7CitkaWZmIC0tY29sb3Ig LXJ1TnAgYS9yZWFkY29uZi5oIGIvcmVhZGNvbmYuaAorLS0tIGEvcmVhZGNvbmYuaAkyMDI2LTA0 LTE1IDEzOjMxOjA3LjYxNTM1MTA5MCArMDIwMAorKysrIGIvcmVhZGNvbmYuaAkyMDI2LTA0LTE1 IDEzOjMxOjQwLjkzMTc5NzUzOCArMDIwMAorQEAgLTIxMSw3ICsyMTEsOSBAQCBpbnQJIHByb2Nl c3NfY29uZmlnX2xpbmUoT3B0aW9ucyAqLCBzdHJ1CisgaW50CSByZWFkX2NvbmZpZ19maWxlKGNv bnN0IGNoYXIgKiwgc3RydWN0IHBhc3N3ZCAqLCBjb25zdCBjaGFyICosCisgICAgIGNvbnN0IGNo YXIgKiwgT3B0aW9ucyAqLCBpbnQsIGludCAqKTsKKyBpbnQJIHBhcnNlX2ZvcndhcmQoc3RydWN0 IEZvcndhcmQgKiwgY29uc3QgY2hhciAqLCBpbnQsIGludCk7CistaW50CSBwYXJzZV9qdW1wKGNv bnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQpOworK2ludAkgc3NoX3ZhbGlkX2hvc3RuYW1lKGNv bnN0IGNoYXIgKik7CisraW50CSBzc2hfdmFsaWRfcnVzZXIoY29uc3QgY2hhciAqKTsKKytpbnQJ IHBhcnNlX2p1bXAoY29uc3QgY2hhciAqLCBPcHRpb25zICosIGludCwgaW50KTsKKyBpbnQJIHBh cnNlX3NzaF91cmkoY29uc3QgY2hhciAqLCBjaGFyICoqLCBjaGFyICoqLCBpbnQgKik7CisgaW50 CSBkZWZhdWx0X3NzaF9wb3J0KHZvaWQpOworIGludAkgb3B0aW9uX2NsZWFyX29yX25vbmUoY29u c3QgY2hhciAqKTsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlZ3Jlc3MvTWFrZWZpbGUgYi9yZWdy ZXNzL01ha2VmaWxlCistLS0gYS9yZWdyZXNzL01ha2VmaWxlCTIwMjYtMDQtMTUgMTM6MzE6MDcu NzQ4NTA4ODEwICswMjAwCisrKysgYi9yZWdyZXNzL01ha2VmaWxlCTIwMjYtMDQtMTUgMTM6MzE6 NDAuOTMyNDg3OTQ4ICswMjAwCitAQCAtODQsNyArODQsOCBAQCBMVEVTVFM9IAljb25uZWN0IFwK KyAJCWNmZ2luY2x1ZGUgXAorIAkJc2VydmNmZ2luY2x1ZGUgXAorIAkJYWxsb3ctZGVueS11c2Vy cyBcCistCQlhdXRoaW5mbworKwkJYXV0aGluZm8gXAorKwkJcHJveHlqdW1wCisgCisgCisgIwkJ ZGhnZXggXAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvcmVncmVzcy9wcm94eWp1bXAuc2ggYi9yZWdy ZXNzL3Byb3h5anVtcC5zaAorLS0tIGEvcmVncmVzcy9wcm94eWp1bXAuc2gJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiL3JlZ3Jlc3MvcHJveHlqdW1wLnNoCTIwMjYt MDQtMTUgMTM6MzE6NDAuOTMyODEzMzQ1ICswMjAwCitAQCAtMCwwICsxLDEwMiBAQAorKyMJJE9w ZW5CU0Q6IHByb3h5anVtcC5zaCx2IDEuMSAyMDI2LzAzLzMwIDA3OjE5OjAyIGRqbSBFeHAgJAor KyMJUGxhY2VkIGluIHRoZSBQdWJsaWMgRG9tYWluLgorKworK3RpZD0icHJveHlqdW1wIgorKwor KyMgUGFyc2luZyB0ZXN0cworK3ZlcmJvc2UgImJhc2ljIHBhcnNpbmciCisrZm9yIGpzcGVjIGlu IFwKKysJImp1bXAxIiBcCisrCSJ1c2VyQGp1bXAxIiBcCisrCSJqdW1wMToyMjIyIiBcCisrCSJ1 c2VyQGp1bXAxOjIyMjIiIFwKKysJImp1bXAxLGp1bXAyIiBcCisrCSJ1c2VyMUBqdW1wMToyMjIx LHVzZXIyQGp1bXAyOjIyMjIiIFwKKysJInNzaDovL3VzZXJAaG9zdDoyMjIzIiBcCisrCTsgZG8K KysJY2FzZSAiJGpzcGVjIiBpbgorKwkianVtcDEiKQkJZXhwZWN0ZWQ9Imp1bXAxIiA7OworKwki dXNlckBqdW1wMSIpCQlleHBlY3RlZD0idXNlckBqdW1wMSIgOzsKKysJImp1bXAxOjIyMjIiKQkJ ZXhwZWN0ZWQ9Imp1bXAxOjIyMjIiIDs7CisrCSJ1c2VyQGp1bXAxOjIyMjIiKQlleHBlY3RlZD0i dXNlckBqdW1wMToyMjIyIiA7OworKwkianVtcDEsanVtcDIiKQkJZXhwZWN0ZWQ9Imp1bXAxLGp1 bXAyIiA7OworKwkidXNlcjFAanVtcDE6MjIyMSx1c2VyMkBqdW1wMjoyMjIyIikKKysJCWV4cGVj dGVkPSJ1c2VyMUBqdW1wMToyMjIxLHVzZXIyQGp1bXAyOjIyMjIiIDs7CisrCSJzc2g6Ly91c2Vy QGhvc3Q6MjIyMyIpCWV4cGVjdGVkPSJ1c2VyQGhvc3Q6MjIyMyIgOzsKKysJZXNhYworKwlmPWAk e1NTSH0gLUdGIC9kZXYvbnVsbCAtb1Byb3h5SnVtcD0iJGpzcGVjIiBzb21laG9zdCB8IFwKKysJ CWF3ayAnL15wcm94eWp1bXAgL3twcmludCAkMn0nYAorKwlpZiBbICIkZiIgIT0gIiRleHBlY3Rl ZCIgXTsgdGhlbgorKwkJZmFpbCAiUHJveHlKdW1wICRqc3BlYzogZXhwZWN0ZWQgJGV4cGVjdGVk LCBnb3QgJGYiCisrCWZpCisrCWY9YCR7U1NIfSAtR0YgL2Rldi9udWxsIC1KICIkanNwZWMiIHNv bWVob3N0IHwgXAorKwkJYXdrICcvXnByb3h5anVtcCAve3ByaW50ICQyfSdgCisrCWlmIFsgIiRm IiAhPSAiJGV4cGVjdGVkIiBdOyB0aGVuCisrCQlmYWlsICJzc2ggLUogJGpzcGVjOiBleHBlY3Rl ZCAkZXhwZWN0ZWQsIGdvdCAkZiIKKysJZmkKKytkb25lCisrCisrdmVyYm9zZSAicHJlY2VkZW5j ZSIKKytmPWAke1NTSH0gLUdGIC9kZXYvbnVsbCAtb1Byb3h5SnVtcD1ub25lIC1vUHJveHlKdW1w PWp1bXAxIHNvbWVob3N0IHwgXAorKwlncmVwICJecHJveHlqdW1wICJgCisraWYgWyAtbiAiJGYi IF07IHRoZW4KKysJZmFpbCAiUHJveHlKdW1wPW5vbmUgZmlyc3QgZGlkIG5vdCB3aW4iCisrZmkK KytmPWAke1NTSH0gLUdGIC9kZXYvbnVsbCAtb1Byb3h5SnVtcD1qdW1wIC1vUHJveHlDb21tYW5k PWZvbyBzb21laG9zdCB8IFwKKysJZ3JlcCAiXnByb3h5anVtcCAiYAorK2lmIFsgIiRmIiAhPSAi cHJveHlqdW1wIGp1bXAiIF07IHRoZW4KKysJZmFpbCAiUHJveHlKdW1wIGZpcnN0IGRpZCBub3Qg d2luIG92ZXIgUHJveHlDb21tYW5kIgorK2ZpCisrZj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Q cm94eUNvbW1hbmQ9Zm9vIC1vUHJveHlKdW1wPWp1bXAgc29tZWhvc3QgfCBcCisrCWdyZXAgIl5w cm94eWNvbW1hbmQgImAKKytpZiBbICIkZiIgIT0gInByb3h5Y29tbWFuZCBmb28iIF07IHRoZW4K KysJZmFpbCAiUHJveHlDb21tYW5kIGZpcnN0IGRpZCBub3Qgd2luIG92ZXIgUHJveHlKdW1wIgor K2ZpCisrCisrdmVyYm9zZSAiY29tbWFuZC1saW5lIC1KIGludmFsaWQgY2hhcmFjdGVycyIKKytj cCAkT0JKL3NzaF9jb25maWcgJE9CSi9zc2hfY29uZmlnLm9yaWcKKytmb3IganNwZWMgaW4gXAor KwkiaG9zdDt3aXRoO3NlbWljb2xvbiIgXAorKwkiaG9zdCd3aXRoJ3F1b3RlIiBcCisrCSJob3N0 XGB3aXRoXGBiYWNrdGljayIgXAorKwkiaG9zdFwkd2l0aFwkZG9sbGFyIiBcCisrCSJob3N0KHdp dGgpYnJhY2UiIFwKKysJInVzZXI7d2l0aDtzZW1pY29sb25AaG9zdCIgXAorKwkidXNlcid3aXRo J3F1b3RlQGhvc3QiIFwKKysJInVzZXJcYHdpdGhcYGJhY2t0aWNrQGhvc3QiIFwKKysJInVzZXIo d2l0aClicmFjZUBob3N0IiA7IGRvCisrCSR7U1NIfSAtR0YgL2Rldi9udWxsIC1KICIkanNwZWMi IHNvbWVob3N0ID4vZGV2L251bGwgMj4mMQorKwlpZiBbICQ/IC1uZSAyNTUgXTsgdGhlbgorKwkJ ZmFpbCAic3NoIC1KIFwiJGpzcGVjXCIgd2FzIG5vdCByZWplY3RlZCIKKysJZmkKKysJJHtTU0h9 IC1HRiAvZGV2L251bGwgLW9Qcm94eUp1bXA9IiRqc3BlYyIgc29tZWhvc3QgPi9kZXYvbnVsbCAy PiYxCisrCWlmIFsgJD8gLW5lIDI1NSBdOyB0aGVuCisrCQlmYWlsICJzc2ggLW9Qcm94eUp1bXA9 XCIkanNwZWNcIiB3YXMgbm90IHJlamVjdGVkIgorKwlmaQorK2RvbmUKKysjIFNwZWNpYWwgY2hh cmFjdGVycyBzaG91bGQgYmUgYWNjZXB0ZWQgaW4gdGhlIGNvbmZpZyB0aG91Z2guCisrZWNobyAi UHJveHlKdW1wIHVzZXI7d2l0aDtzZW1pY29sb25AaG9zdDt3aXRoO3NlbWljb2xvbiIgPj4gJE9C Si9zc2hfY29uZmlnCisrZj1gJHtTU0h9IC1HRiAkT0JKL3NzaF9jb25maWcgc29tZWhvc3QgfCBn cmVwICJecHJveHlqdW1wICJgCisraWYgWyAiJGYiICE9ICJwcm94eWp1bXAgdXNlcjt3aXRoO3Nl bWljb2xvbkBob3N0O3dpdGg7c2VtaWNvbG9uIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5SnVtcCBk aWQgbm90IGFsbG93IHNwZWNpYWwgY2hhcmFjdGVycyBpbiBjb25maWc6ICRmIgorK2ZpCisrCisr dmVyYm9zZSAiZnVuY3Rpb25hbCB0ZXN0IgorKyMgVXNlIGRpZmZlcmVudCBuYW1lcyB0byBhdm9p ZCB0aGUgbG9vcCBkZXRlY3Rpb24gaW4gc3NoLmMKKytncmVwIC1pdiBIb3N0S2V5QWxpYXMgJE9C Si9zc2hfY29uZmlnLm9yaWcgPiAkT0JKL3NzaF9jb25maWcKKytjYXQgPDwgX0VPRiA+PiAkT0JK L3NzaF9jb25maWcKKytIb3N0IGp1bXAtaG9zdAorKwlIb3N0a2V5QWxpYXMganVtcC1ob3N0Cisr SG9zdCB0YXJnZXQtaG9zdAorKwlIb3N0a2V5QWxpYXMgdGFyZ2V0LWhvc3QKKytfRU9GCisrY3Ag JE9CSi9rbm93bl9ob3N0cyAkT0JKL2tub3duX2hvc3RzLm9yaWcKKytzZWQgJ3MvXlteIF0qIC9q dW1wLWhvc3QgLycgPCAkT0JKL2tub3duX2hvc3RzLm9yaWcgPiAkT0JKL2tub3duX2hvc3RzCisr c2VkICdzL15bXiBdKiAvdGFyZ2V0LWhvc3QgLycgPCAkT0JKL2tub3duX2hvc3RzLm9yaWcgPj4g JE9CSi9rbm93bl9ob3N0cworK3N0YXJ0X3NzaGQKKysKKyt2ZXJib3NlICJmdW5jdGlvbmFsIFBy b3h5SnVtcCIKKytyZXM9YCR7UkVBTF9TU0h9IC1GICRPQkovc3NoX2NvbmZpZyAtSiBqdW1wLWhv c3QgdGFyZ2V0LWhvc3QgZWNobyAiU1VDQ0VTUyIgMj4vZGV2L251bGxgCisraWYgWyAiJHJlcyIg IT0gIlNVQ0NFU1MiIF07IHRoZW4KKysJZmFpbCAiZnVuY3Rpb25hbCB0ZXN0IGZhaWxlZDogZXhw ZWN0ZWQgU1VDQ0VTUywgZ290ICRyZXMiCisrZmkKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaC5j IGIvc3NoLmMKKy0tLSBhL3NzaC5jCTIwMjYtMDQtMTUgMTM6MzE6MDcuODIwNDkyOTAyICswMjAw CisrKysgYi9zc2guYwkyMDI2LTA0LTE1IDEzOjMxOjQwLjkzMzEzNjMyNCArMDIwMAorQEAgLTU3 Niw0MyArNTc2LDYgQEAgc2V0X2FkZHJpbmZvX3BvcnQoc3RydWN0IGFkZHJpbmZvICphZGRycwor IAl9CisgfQorIAorLXN0YXRpYyBpbnQKKy12YWxpZF9ob3N0bmFtZShjb25zdCBjaGFyICpzKQor LXsKKy0Jc2l6ZV90IGk7CistCistCWlmICgqcyA9PSAnLScpCistCQlyZXR1cm4gMDsKKy0JZm9y IChpID0gMDsgc1tpXSAhPSAwOyBpKyspIHsKKy0JCWlmIChzdHJjaHIoIidgXCIkXFw7Jjw+fCgp e30iLCBzW2ldKSAhPSBOVUxMIHx8CistCQkgICAgaXNzcGFjZSgodV9jaGFyKXNbaV0pIHx8IGlz Y250cmwoKHVfY2hhcilzW2ldKSkKKy0JCQlyZXR1cm4gMDsKKy0JfQorLQlyZXR1cm4gMTsKKy19 CistCistc3RhdGljIGludAorLXZhbGlkX3J1c2VyKGNvbnN0IGNoYXIgKnMpCisteworLQlzaXpl X3QgaTsKKy0KKy0JaWYgKCpzID09ICctJykKKy0JCXJldHVybiAwOworLQlmb3IgKGkgPSAwOyBz W2ldICE9IDA7IGkrKykgeworLQkJaWYgKGlzY250cmwoKHVfY2hhcilzW2ldKSkKKy0JCQlyZXR1 cm4gMDsKKy0JCWlmIChzdHJjaHIoIidgXCI7Jjw+fCgpe30iLCBzW2ldKSAhPSBOVUxMKQorLQkJ CXJldHVybiAwOworLQkJLyogRGlzYWxsb3cgJy0nIGFmdGVyIHdoaXRlc3BhY2UgKi8KKy0JCWlm IChpc3NwYWNlKCh1X2NoYXIpc1tpXSkgJiYgc1tpICsgMV0gPT0gJy0nKQorLQkJCXJldHVybiAw OworLQkJLyogRGlzYWxsb3cgXCBpbiBsYXN0IHBvc2l0aW9uICovCistCQlpZiAoc1tpXSA9PSAn XFwnICYmIHNbaSArIDFdID09ICdcMCcpCistCQkJcmV0dXJuIDA7CistCX0KKy0JcmV0dXJuIDE7 CistfQorLQorIC8qCisgICogTWFpbiBwcm9ncmFtIGZvciB0aGUgc3NoIGNsaWVudC4KKyAgKi8K K0BAIC04NDIsOSArODA1LDkgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKKyAJCQkJZmF0YWwo Ik9ubHkgYSBzaW5nbGUgLUogb3B0aW9uIHBlcm1pdHRlZCIpOworIAkJCWlmIChvcHRpb25zLnBy b3h5X2NvbW1hbmQgIT0gTlVMTCkKKyAJCQkJZmF0YWwoIkNhbm5vdCBzcGVjaWZ5IC1KIHdpdGgg UHJveHlDb21tYW5kIik7CistCQkJaWYgKHBhcnNlX2p1bXAob3B0YXJnLCAmb3B0aW9ucywgMSkg PT0gLTEpCisrCQkJaWYgKHBhcnNlX2p1bXAob3B0YXJnLCAmb3B0aW9ucywgMSwgMSkgPT0gLTEp CisrCisgCQkJCWZhdGFsKCJJbnZhbGlkIC1KIGFyZ3VtZW50Iik7CistCQkJb3B0aW9ucy5wcm94 eV9jb21tYW5kID0geHN0cmR1cCgibm9uZSIpOworIAkJCWJyZWFrOworIAkJY2FzZSAndCc6Cisg CQkJaWYgKG9wdGlvbnMucmVxdWVzdF90dHkgPT0gUkVRVUVTVF9UVFlfWUVTKQorQEAgLTEwODUs MTAgKzEwNDgsMTUgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKKyAJaWYgKCFob3N0KQorIAkJ dXNhZ2UoKTsKKyAKKy0JaWYgKCF2YWxpZF9ob3N0bmFtZShob3N0KSkKKy0JCWZhdGFsKCJob3N0 bmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMiKTsKKy0JaWYgKG9wdGlvbnMudXNlciAh PSBOVUxMICYmICF2YWxpZF9ydXNlcihvcHRpb25zLnVzZXIpKQorKwkvKgorKwkgKiBWYWxpZGF0 ZSBjb21tYW5kbGluZS1zcGVjaWZpZWQgdmFsdWVzIHRoYXQgZW5kIHVwIGluICV0b2tlbnMKKysJ ICogYmVmb3JlIHRoZXkgYXJlIHVzZWQgaW4gY29uZmlnIHBhcnNpbmcuCisrCSAqLworKwlpZiAo b3B0aW9ucy51c2VyICE9IE5VTEwgJiYgIXNzaF92YWxpZF9ydXNlcihvcHRpb25zLnVzZXIpKQor IAkJZmF0YWwoInJlbW90ZSB1c2VybmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMiKTsK KysJaWYgKCFzc2hfdmFsaWRfaG9zdG5hbWUoaG9zdCkpCisrCQlmYXRhbCgiaG9zdG5hbWUgY29u dGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIik7CisrCisgCWhvc3RfYXJnID0geHN0cmR1cChob3N0 KTsKKyAKKyAJLyogSW5pdGlhbGl6ZSB0aGUgY29tbWFuZCB0byBleGVjdXRlIG9uIHJlbW90ZSBo b3N0LiAqLworQEAgLTEyNDksNyArMTIxNyw4IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisg CQkJc3NoYmluID0gInNzaCI7CisgCisgCQkvKiBDb25zaXN0ZW5jeSBjaGVjayAqLworLQkJaWYg KG9wdGlvbnMucHJveHlfY29tbWFuZCAhPSBOVUxMKQorKwkJaWYgKG9wdGlvbnMucHJveHlfY29t bWFuZCAhPSBOVUxMICYmCisrCQkgICAgc3RyY2FzZWNtcChvcHRpb25zLnByb3h5X2NvbW1hbmQs ICJub25lIikgIT0gMCkKKyAJCQlmYXRhbCgiaW5jb25zaXN0ZW50IG9wdGlvbnM6IFByb3h5Q29t bWFuZCtQcm94eUp1bXAiKTsKKyAJCS8qIE5ldmVyIHVzZSBGRCBwYXNzaW5nIGZvciBQcm94eUp1 bXAgKi8KKyAJCW9wdGlvbnMucHJveHlfdXNlX2ZkcGFzcyA9IDA7CgpkaWZmIC0tZ2l0IGEvb3Bl bnNzaC04LjdwMS1hdXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2ggYi9vcGVu c3NoLTguN3AxLWF1dGhvcml6ZWQta2V5cy1wcmluY2lwbGVzLW9wdGlvbi5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzU0N2MzCi0tLSAvZGV2L251bGwKKysrIGIv b3BlbnNzaC04LjdwMS1hdXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKQEAg LTAsMCArMSwzNyBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItcHVia2V5LmMgYi9hdXRo Mi1wdWJrZXkuYworLS0tIGEvYXV0aDItcHVia2V5LmMJMjAyNi0wNC0xMyAxNToxMzo1OC43NTk1 MTU2MTEgKzAyMDAKKysrKyBiL2F1dGgyLXB1YmtleS5jCTIwMjYtMDQtMTMgMTU6MjA6MjguMTMx MDI5NzI3ICswMjAwCitAQCAtMzI5LDIwICszMjksMjMgQEAgdXNlcl9rZXlfdmVyaWZ5KHN0cnVj dCBzc2ggKnNzaCwgY29uc3QgcworIHN0YXRpYyBpbnQKKyBtYXRjaF9wcmluY2lwYWxzX29wdGlv bihjb25zdCBjaGFyICpwcmluY2lwYWxfbGlzdCwgc3RydWN0IHNzaGtleV9jZXJ0ICpjZXJ0KQor IHsKKy0JY2hhciAqcmVzdWx0OworKwljaGFyICpsaXN0LCAqb2xpc3QsICplbnRyeTsKKyAJdV9p bnQgaTsKKyAKKy0JLyogWFhYIHBlcmNlbnRfZXhwYW5kKCkgc2VxdWVuY2VzIGZvciBhdXRob3Jp emVkX3ByaW5jaXBhbHM/ICovCistCistCWZvciAoaSA9IDA7IGkgPCBjZXJ0LT5ucHJpbmNpcGFs czsgaSsrKSB7CistCQlpZiAoKHJlc3VsdCA9IG1hdGNoX2xpc3QoY2VydC0+cHJpbmNpcGFsc1tp XSwKKy0JCSAgICBwcmluY2lwYWxfbGlzdCwgTlVMTCkpICE9IE5VTEwpIHsKKy0JCQlkZWJ1ZzMo Im1hdGNoZWQgcHJpbmNpcGFsIGZyb20ga2V5IG9wdGlvbnMgXCIlLjEwMHNcIiIsCistCQkJICAg IHJlc3VsdCk7CistCQkJZnJlZShyZXN1bHQpOworLQkJCXJldHVybiAxOworKwlvbGlzdCA9IGxp c3QgPSB4c3RyZHVwKHByaW5jaXBhbF9saXN0KTsKKysJZm9yICg7OykgeworKwkJaWYgKChlbnRy eSA9IHN0cnNlcCgmbGlzdCwgIiwiKSkgPT0gTlVMTCB8fCAqZW50cnkgPT0gJ1wwJykKKysJCQli cmVhazsKKysJCWZvciAoaSA9IDA7IGkgPCBjZXJ0LT5ucHJpbmNpcGFsczsgaSsrKSB7CisrCQkJ aWYgKHN0cmNtcChlbnRyeSwgY2VydC0+cHJpbmNpcGFsc1tpXSkgPT0gMCkgeworKwkJCQlkZWJ1 ZzMoIm1hdGNoZWQgcHJpbmNpcGFsIGZyb20ga2V5IGkiCisrCQkJCSAgICAib3B0aW9ucyBcIiUu MTAwc1wiIiwgZW50cnkpOworKwkJCQlmcmVlKG9saXN0KTsKKysJCQkJcmV0dXJuIDE7CisrCQkJ fQorIAkJfQorIAl9CisrCWZyZWUob2xpc3QpOworIAlyZXR1cm4gMDsKKyB9CisgCgpkaWZmIC0t Z2l0IGEvb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoIGIvb3BlbnNzaC05Ljlw MS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjFhODQ4YTEKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTkuOXAxLXNjcC1jbGVhci1z ZXR1aWQucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2NwLmMg Yi9zY3AuYworLS0tIGEvc2NwLmMJMjAyNi0wNC0wNyAxNTo1NDoxMS4xOTM3MzA4NDIgKzAyMDAK KysrKyBiL3NjcC5jCTIwMjYtMDQtMDcgMTU6NTU6NTIuNTI5NDI1NDgxICswMjAwCitAQCAtMTcw NSw4ICsxNzA1LDEwIEBAIHNpbmsoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICoK KyAKKyAJc2V0aW1lcyA9IHRhcmdpc2RpciA9IDA7CisgCW1hc2sgPSB1bWFzaygwKTsKKy0JaWYg KCFwZmxhZykKKysJaWYgKCFwZmxhZykgeworKwkJbWFzayB8PSAwNzAwMDsKKyAJCSh2b2lkKSB1 bWFzayhtYXNrKTsKKysJfQorIAlpZiAoYXJnYyAhPSAxKSB7CisgCQlydW5fZXJyKCJhbWJpZ3Vv dXMgdGFyZ2V0Iik7CisgCQlleGl0KDEpOwo=