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] epel10: Based on openssh-9.9p1-26.el10 Date: Sat, 30 May 2026 01:18:33 GMT Message-ID: <178010391315.1.15221795594920214601.rpms-gsi-openssh-52f242b91bc2@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: epel10 X-Git-Rev: 52f242b91bc224468ae1b43e61723343aace3881 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZXBlbDEwCkNvbW1pdCA6IDUyZjI0MmI5MWJjMjI0NDY4YWUxYjQzZTYxNzIzMzQz YWFjZTM4ODEKQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3Mu dXUuc2U+CkRhdGUgICA6IDIwMjYtMDUtMzBUMDM6MDk6MDYrMDI6MDAKU3RhdHMgIDogKzE1MTgv LTQyMyBpbiAxOCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3Jn L3JwbXMvZ3NpLW9wZW5zc2gvYy81MmYyNDJiOTFiYzIyNDQ2OGFlMWI0M2U2MTcyMzM0M2FhY2Uz ODgxP2JyYW5jaD1lcGVsMTAKCkxvZzoKQmFzZWQgb24gb3BlbnNzaC05LjlwMS0yNi5lbDEwCgot LS0KZGlmZiAtLWdpdCBhL2dzaS1vcGVuc3NoLnNwZWMgYi9nc2ktb3BlbnNzaC5zcGVjCmluZGV4 IDE0ODFhNDIuLmI4MGNmNDAgMTAwNjQ0Ci0tLSBhL2dzaS1vcGVuc3NoLnNwZWMKKysrIGIvZ3Np LW9wZW5zc2guc3BlYwpAQCAtMjgsNyArMjgsNyBAQAogU3VtbWFyeTogQW4gaW1wbGVtZW50YXRp b24gb2YgdGhlIFNTSCBwcm90b2NvbCB3aXRoIEdTSSBhdXRoZW50aWNhdGlvbgogTmFtZTogZ3Np LW9wZW5zc2gKIFZlcnNpb246ICV7b3BlbnNzaF92ZXJ9Ci1SZWxlYXNlOiA1JXs/ZGlzdH0KK1Jl bGVhc2U6IDYlez9kaXN0fQogUHJvdmlkZXM6IGdzaXNzaCA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQogT2Jzb2xldGVzOiBnc2lzc2ggPCA1LjhwMi0yCiBVUkw6IGh0dHA6Ly93d3cub3BlbnNzaC5j b20vcG9ydGFibGUuaHRtbApAQCAtMjA3LDYgKzIwNywzMCBAQCBQYXRjaDEwMzI6IG9wZW5zc2gt OS45cDEtcmVqZWN0LWNudHJsLWNoYXJzLWluLXVzZXJuYW1lLnBhdGNoCiBQYXRjaDEwMzM6IG9w ZW5zc2gtOS45cDEtcmVqZWN0LW51bGwtY2hhci1pbi11cmwtc3RyaW5nLnBhdGNoCiBQYXRjaDEw MzQ6IG9wZW5zc2gtOS45cDEtc3NoZC1uby1kZWxlZ2F0ZS1jcmVkZW50aWFscy5wYXRjaAogUGF0 Y2gxMDM1OiBvcGVuc3NoLTEwLjAtbWxrZW0tbmlzdC1maXBzLnBhdGNoCisjIHVwc3RyZWFtIDY4 M2QwYWJlNTk2YjA2OWE4OTZmMTY4OGY4NjI1NmYxYmVlYjBjZGMKKyMgdXBzdHJlYW0gOTMxMzIz M2E3MzU3MzM4MjFkZmQxNzBiNzA3ODJmYjdkYTQ5Mjk2MgorIyB1cHN0cmVhbSAyYjBmNGE3MmJk ODdiZWY3Y2M5ZjBhMTg4OWNmYzk4NTQ1Y2JiMTU4CisjIHVwc3RyZWFtIDE5ZjdjYjM5ZWVjYjRi OGY3NjhmMzdlODI5NGRjM2E5MTQyZTAyMmIKKyMgdXBzdHJlYW0gOTdiMzJmYTJhZjI1YzE2YWVj NGRlODVjNWNiYjYzZmQwMzhiNGRmYQorUGF0Y2gxMDM3OiBvcGVuc3NoLTkuOXAxLWZpcnN0LW1h dGNoLXdpbnMucGF0Y2gKKyMgdXBzdHJlYW0gZWRkZDFkMmRhYTY0YTZhYjFhOTE1Y2E4ODQzNmZh NDFhZWRlNDRkNAorIyB1cHN0cmVhbSBiYzMyODE0NGYxNDlhZjA3MTM5YTBmMmMxMzI5MDE4Y2Q4 NWI4NmI3CitQYXRjaDEwMzg6IG9wZW5zc2gtOS45cDEtbWF4c3RhcnR1cHMtbWlzdHJhY2tpbmcu cGF0Y2gKKyMgaHR0cHM6Ly9naXRodWIuY29tL29wZW5zc2gvb3BlbnNzaC1wb3J0YWJsZS9wdWxs LzY0OQorUGF0Y2gxMDM5OiBvcGVuc3NoLTkuOXAxLWZpbGwtZGVmYXVsdC1vcHRpb25zLWVycm9y LnBhdGNoCisjIHVwc3RyZWFtIDQ4N2U4YWMxNDZmN2Q2NjE2ZjY1YzEyNWQ1ZWRiMjEwNTE5Yjgz M2EKK1BhdGNoMTA0MDogb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCisjIHVw c3RyZWFtIGM4MDViOTdiNjdjNzc0ZTBiZjkyMmZmYjI5ZGZiY2RhOWQ3YjVhZGQKK1BhdGNoMTA0 MTogb3BlbnNzaC05LjlwMS1tdXgtYXNrcGFzcy1jaGVjay5wYXRjaAorIyB1cHN0cmVhbSBmZDFj N2UxMzFmMzMxOTQyZDIwZjQyZjMxZTc5OTEyZDU3MDA4MWZhCitQYXRjaDEwNDI6IG9wZW5zc2gt OS45cDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5wYXRjaAorIyB1cHN0cmVhbSBmZDFj N2UxMzFmMzMxOTQyZDIwZjQyZjMxZTc5OTEyZDU3MDA4MWZhCitQYXRjaDEwNDM6IG9wZW5zc2gt OS45cDEtYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uLnBhdGNoCisjIHVwc3RyZWFt IDc2Njg1YzliMDlhNjY0MzVjZDJhZDgzNzMyNDZhZGYxYzUzOTc2ZDMKKyMgdXBzdHJlYW0gMGEw ZWY0NTE1MzYxMTQzY2FkMjFhZmEwNzIzMTk4MjM4NTRjMWNmNgorIyB1cHN0cmVhbSA2MDdiZDg3 MWVjMDI5ZTlhYTIyZTYzMmEyMjU0NzI1MGYzY2FlMjIzCisjIHVwc3RyZWFtIDEzNDBkM2ZhOGU0 YmIxMjI5MDZhODIxNTljNGM5YjkxNTg0ZDY1Y2UKK1BhdGNoMTA0NDogb3BlbnNzaC05LjlwMS1w cm94eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzLnBhdGNoCiAKICMgVGhpcyBpcyB0aGUg cGF0Y2ggdGhhdCBhZGRzIEdTSSBzdXBwb3J0CiAjIEJhc2VkIG9uIGhwbl9pc3NoZC1nc2kuNy41 cDFiLnBhdGNoIGZyb20gR2xvYnVzIHVwc3RyZWFtCkBAIC0yMTYsNyArMjQwLDcgQEAgUGF0Y2g5 ODogb3BlbnNzaC05LjlwMS1nc2lzc2gucGF0Y2gKICMgQmFzZWQgb24gaHR0cHM6Ly9naXRodWIu Y29tL3JhcGllcjEvaHBuLXNzaC8gdGFnOiBocG4tMTguNi4wCiBQYXRjaDk5OiBvcGVuc3NoLTku OXAxLWhwbi0xOC42LjAucGF0Y2gKIAotTGljZW5zZTogQlNELTMtQ2xhdXNlIEFORCBCU0QtMi1D bGF1c2UgQU5EIElTQyBBTkQgU1NILU9wZW5TU0ggQU5EIHNzaC1rZXlzY2FuIEFORCBzcHJpbnRm IEFORCBMaWNlbnNlUmVmLUZlZG9yYS1QdWJsaWMtRG9tYWluIEFORCBYMTEtZGlzdHJpYnV0ZS1t b2RpZmljYXRpb25zLXZhcmlhbnQKK0xpY2Vuc2U6IEJTRC0zLUNsYXVzZSBBTkQgQlNELTItQ2xh dXNlIEFORCBJU0MgQU5EIFNTSC1PcGVuU1NIIEFORCBzc2gta2V5c2NhbiBBTkQgc25wcmludGYg QU5EIExpY2Vuc2VSZWYtRmVkb3JhLVB1YmxpYy1Eb21haW4gQU5EIFgxMS1kaXN0cmlidXRlLW1v ZGlmaWNhdGlvbnMtdmFyaWFudAogUmVxdWlyZXM6IC9zYmluL25vbG9naW4KIAogQnVpbGRSZXF1 aXJlczogYXV0b2NvbmYsIGF1dG9tYWtlLCBwZXJsLWludGVycHJldGVyLCBwZXJsLWdlbmVyYXRv cnMsIHpsaWItZGV2ZWwKQEAgLTIyOSw3ICsyNTMsNiBAQCBCdWlsZFJlcXVpcmVzOiBzeXN0ZW1k LXJwbS1tYWNyb3MKIEJ1aWxkUmVxdWlyZXM6IGdjYyBtYWtlCiBCdWlsZFJlcXVpcmVzOiBwMTEt a2l0LWRldmVsCiBCdWlsZFJlcXVpcmVzOiBsaWJmaWRvMi1kZXZlbAotUmVjb21tZW5kczogcDEx LWtpdAogCiAlaWYgJXtrZXJiZXJvczV9CiBCdWlsZFJlcXVpcmVzOiBrcmI1LWRldmVsCkBAIC0z OTQsNiArNDE3LDE0IEBAIGdwZ3YyIC0tcXVpZXQgLS1rZXlyaW5nICV7U09VUkNFM30gJXtTT1VS Q0UxfSAle1NPVVJDRTB9CiAlcGF0Y2ggLVAgMTAzMyAtcDEgLWIgLnJlamVjdC1udWxsLWNoYXIt aW4tdXJsLXN0cmluZwogJXBhdGNoIC1QIDEwMzQgLXAxIC1iIC5zc2hkLW5vZ3NzY3JlZHMKICVw YXRjaCAtUCAxMDM1IC1wMSAtYiAubWxrZW0tbmlzdC1maXBzCislcGF0Y2ggLVAgMTAzNyAtcDEg LWIgLmZpcnN0LW1hdGNoLXdpbnMKKyVwYXRjaCAtUCAxMDM4IC1wMSAtYiAubWF4c3RhcnR1cHMt bWlzdHJhY2tpbmcKKyVwYXRjaCAtUCAxMDM5IC1wMSAtYiAuZmlsbC1kZWZhdWx0LW9wdGlvbnMt ZXJyb3IKKyVwYXRjaCAtUCAxMDQwIC1wMSAtYiAuc2NwLWNsZWFyLXNldHVpZAorJXBhdGNoIC1Q IDEwNDEgLXAxIC1iIC5tdXgtYXNrcGFzcy1jaGVjaworJXBhdGNoIC1QIDEwNDIgLXAxIC1iIC5l Y2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uCislcGF0Y2ggLVAgMTA0MyAtcDEgLWIgLmF1dGhv cml6ZWQta2V5cy1wcmluY2lwbGVzLW9wdGlvbgorJXBhdGNoIC1QIDEwNDQgLXAxIC1iIC5wcm94 eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzCiAKICVwYXRjaCAtUCAxMDAgLXAxIC1iIC5j b3Zlcml0eQogCkBAIC02MTksNiArNjUwLDkgQEAgZmkKICVnaG9zdCAlYXR0cigwNjQ0LHJvb3Qs cm9vdCkgJXtfbG9jYWxzdGF0ZWRpcn0vbGliLy5nc2lzc2gtaG9zdC1rZXlzLW1pZ3JhdGlvbgog CiAlY2hhbmdlbG9nCisqIEZyaSBNYXkgMjkgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5l bGxlcnRAcGh5c2ljcy51dS5zZT4gLSA5LjlwMS02CistIEJhc2VkIG9uIG9wZW5zc2gtOS45cDEt MjYuZWwxMAorCiAqIFR1ZSBNYXIgMjQgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxl cnRAcGh5c2ljcy51dS5zZT4gLSA5LjlwMS01CiAtIEJhc2VkIG9uIG9wZW5zc2gtOS45cDEtMTku ZWwxMAogCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC0xMC4wLW1sa2VtLW5pc3QtZmlwcy5wYXRjaCBi L29wZW5zc2gtMTAuMC1tbGtlbS1uaXN0LWZpcHMucGF0Y2gKaW5kZXggYjYxMGI2ZS4uOTUxZTM2 NyAxMDA2NDQKLS0tIGEvb3BlbnNzaC0xMC4wLW1sa2VtLW5pc3QtZmlwcy5wYXRjaAorKysgYi9v cGVuc3NoLTEwLjAtbWxrZW0tbmlzdC1maXBzLnBhdGNoCkBAIC0xLDE3ICsxLDg1IEBACitkaWZm IC0tZ2l0IGEvY29tcGF0LmMgYi9jb21wYXQuYworaW5kZXggNGU2MTFkYzM5Li5iNWY0Y2M2ODUg MTAwNjQ0CistLS0gYS9jb21wYXQuYworKysrIGIvY29tcGF0LmMKK0BAIC0zNiw2ICszNiw3IEBA CisgI2luY2x1ZGUgImNvbXBhdC5oIgorICNpbmNsdWRlICJsb2cuaCIKKyAjaW5jbHVkZSAibWF0 Y2guaCIKKysjaW5jbHVkZSA8b3BlbnNzbC9maXBzLmg+CisgCisgLyogZGV0ZXJtaW5lIGJ1ZyBm bGFncyBmcm9tIFNTSCBwcm90b2NvbCBiYW5uZXIgKi8KKyB2b2lkCitAQCAtMTQ4LDggKzE0OSw5 IEBAIGNoYXIgKgorIGNvbXBhdF9rZXhfcHJvcG9zYWwoc3RydWN0IHNzaCAqc3NoLCBjb25zdCBj aGFyICpwKQorIHsKKyAJY2hhciAqY3AgPSBOVUxMLCAqY3AyID0gTlVMTDsKKysJaW50IG1sa2Vt X2F2YWlsYWJsZSA9IGlzX21sa2VtNzY4X2F2YWlsYWJsZSgpOworIAorLQlpZiAoKHNzaC0+Y29t cGF0ICYgKFNTSF9CVUdfQ1VSVkUyNTUxOVBBRHxTU0hfT0xEX0RIR0VYKSkgPT0gMCkKKysJaWYg KChzc2gtPmNvbXBhdCAmIChTU0hfQlVHX0NVUlZFMjU1MTlQQUR8U1NIX09MRF9ESEdFWCkpID09 IDAgJiYgbWxrZW1fYXZhaWxhYmxlID09IDIpCisgCQlyZXR1cm4geHN0cmR1cChwKTsKKyAJZGVi dWcyX2YoIm9yaWdpbmFsIEtFWCBwcm9wb3NhbDogJXMiLCBwKTsKKyAJaWYgKChzc2gtPmNvbXBh dCAmIFNTSF9CVUdfQ1VSVkUyNTUxOVBBRCkgIT0gMCkKK0BAIC0xNjQsNiArMTY2LDI1IEBAIGNv bXBhdF9rZXhfcHJvcG9zYWwoc3RydWN0IHNzaCAqc3NoLCBjb25zdCBjaGFyICpwKQorIAkJZnJl ZShjcCk7CisgCQljcCA9IGNwMjsKKyAJfQorKwlpZiAobWxrZW1fYXZhaWxhYmxlID09IDIpCisr CQlyZXR1cm4gY3AgPyBjcCA6IHhzdHJkdXAocCk7CisrCWlmIChtbGtlbV9hdmFpbGFibGUgPT0g MSAmJiBGSVBTX21vZGUoKSkgeworKwkJaWYgKChjcDIgPSBtYXRjaF9maWx0ZXJfZGVueWxpc3Qo Y3AgPyBjcCA6IHAsCisrCQkgICAgIm1sa2VtNzY4eDI1NTE5LXNoYTI1NiIpKSA9PSBOVUxMKQor KwkJCWZhdGFsKCJtYXRjaF9maWx0ZXJfZGVueWxpc3QgZmFpbGVkIik7CisrCQlmcmVlKGNwKTsK KysJCWNwID0gY3AyOworKwl9CisrCWlmIChtbGtlbV9hdmFpbGFibGUgPT0gMCkgeworKwkJaWYg KChjcDIgPSBtYXRjaF9maWx0ZXJfZGVueWxpc3QoY3AgPyBjcCA6IHAsCisrCQkgICAgIm1sa2Vt NzY4eDI1NTE5LXNoYTI1NiwiCisrCQkgICAgIm1sa2VtNzY4bmlzdHAyNTYtc2hhMjU2LCIKKysJ CSAgICAibWxrZW0xMDI0bmlzdHAzODQtc2hhMzg0IikpID09IE5VTEwpCisrCQkJZmF0YWwoIm1h dGNoX2ZpbHRlcl9kZW55bGlzdCBmYWlsZWQiKTsKKysJCWZyZWUoY3ApOworKwkJY3AgPSBjcDI7 CisrCX0KKysKKyAJaWYgKGNwID09IE5VTEwgfHwgKmNwID09ICdcMCcpCisgCQlmYXRhbCgiTm8g c3VwcG9ydGVkIGtleSBleGNoYW5nZSBhbGdvcml0aG1zIGZvdW5kIik7CisgCWRlYnVnMl9mKCJj b21wYXQgS0VYIHByb3Bvc2FsOiAlcyIsIGNwKTsKK2RpZmYgLS1naXQgYS9jb21wYXQuaCBiL2Nv bXBhdC5oCitpbmRleCAyZTZkYjViZjkuLmI3OGU1NWI2OSAxMDA2NDQKKy0tLSBhL2NvbXBhdC5o CisrKysgYi9jb21wYXQuaAorQEAgLTYyLDQgKzYyLDUgQEAgc3RydWN0IHNzaDsKKyAKKyB2b2lk ICAgIGNvbXBhdF9iYW5uZXIoc3RydWN0IHNzaCAqLCBjb25zdCBjaGFyICopOworIGNoYXIJKmNv bXBhdF9rZXhfcHJvcG9zYWwoc3RydWN0IHNzaCAqLCBjb25zdCBjaGFyICopOworK2ludCBpc19t bGtlbTc2OF9hdmFpbGFibGUodm9pZCk7CisgI2VuZGlmCiBkaWZmIC0tZ2l0IGEva2V4LW5hbWVz LmMgYi9rZXgtbmFtZXMuYwogaW5kZXggYTcyOGUwYjM4Li45Yjg1MmU4YWIgMTAwNjQ0CiAtLS0g YS9rZXgtbmFtZXMuYwogKysrIGIva2V4LW5hbWVzLmMKLUBAIC0xMTIsMTMgKzExMiwzMCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGtleGFsZyBnc3Nfa2V4YWxnc1tdID0geworQEAgLTM1LDYgKzM1 LDcgQEAKKyAjaW5jbHVkZSA8b3BlbnNzbC9jcnlwdG8uaD4KKyAjaW5jbHVkZSA8b3BlbnNzbC9m aXBzLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisrI2luY2x1ZGUgPG9wZW5zc2wvZXJy Lmg+CisgI2VuZGlmCisgCisgI2luY2x1ZGUgImtleC5oIgorQEAgLTExMywxNCArMTEzLDI3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2V4YWxnIGdzc19rZXhhbGdzW10KICAJeyBOVUxMLCAwLCAt MSwgLTF9LAogIH07CiAgCiArLyoKICsgKiAwIC0gdW5hdmFpbGFibGUKICsgKiAxIC0gYXZhaWxh YmxlIGluIG5vbi1GSVBTIG1vZGUKLSsgKiAyIC0gYXZhaWxhYmxlIGluIEZJUFMgbW9kZQorKyAq IDIgLSBhdmFpbGFibGUgYWx3YXlzCiArICovCi0gc3RhdGljIGludCBpc19tbGtlbTc2OF9hdmFp bGFibGUoKQorLXN0YXRpYyBpbnQgaXNfbWxrZW03NjhfYXZhaWxhYmxlKCkKKytpbnQgaXNfbWxr ZW03NjhfYXZhaWxhYmxlKCkKICB7CiAgCXN0YXRpYyBpbnQgaXNfZmV0Y2hlZCA9IC0xOwogIApA QCAtMjAsMjEgKzg4LDE4IEBAIGluZGV4IGE3MjhlMGIzOC4uOWI4NTJlOGFiIDEwMDY0NAogLQkJ aXNfZmV0Y2hlZCA9IG1sa2VtNzY4ICE9IE5VTEwgPyAxIDogMDsKICsJCUVWUF9LRU0gKm1sa2Vt NzY4ID0gTlVMTDsKICsKLSsJCWlmIChGSVBTX21vZGUoKSA9PSAxKSB7Ci0rCQkgICAgbWxrZW03 NjggPSBFVlBfS0VNX2ZldGNoKE5VTEwsICJtbGtlbTc2OCIsIE5VTEwpOwotKwkJICAgIGlzX2Zl dGNoZWQgPSBtbGtlbTc2OCAhPSBOVUxMID8gMiA6IDA7Ci0rCi0rCQkgICAgaWYgKGlzX2ZldGNo ZWQgPT0gMCkgewotKwkJICAgICAgICBtbGtlbTc2OCA9IEVWUF9LRU1fZmV0Y2goTlVMTCwgIm1s a2VtNzY4IiwgInByb3ZpZGVyPWRlZmF1bHQsLWZpcHMiKTsKLSsJCSAgICAgICAgaXNfZmV0Y2hl ZCA9IG1sa2VtNzY4ICE9IE5VTEwgPyAxIDogMDsKLSsJCSAgICB9Ci0rCQl9IGVsc2UgewotKwkJ ICAgIG1sa2VtNzY4ID0gRVZQX0tFTV9mZXRjaChOVUxMLCAibWxrZW03NjgiLCBOVUxMKTsKLSsJ CSAgICBpc19mZXRjaGVkID0gbWxrZW03NjggIT0gTlVMTCA/IDEgOiAwOworKwkJRVJSX3NldF9t YXJrKCk7CisrCQltbGtlbTc2OCA9IEVWUF9LRU1fZmV0Y2goTlVMTCwgIm1sa2VtNzY4IiwgTlVM TCk7CisrCQlpc19mZXRjaGVkID0gKG1sa2VtNzY4ID09IE5VTEwpID8gMCA6IDI7CisrCQlpZiAo aXNfZmV0Y2hlZCA9PSAwICYmIEZJUFNfbW9kZSgpID09IDEpIHsKKysJCSAgICBtbGtlbTc2OCA9 IEVWUF9LRU1fZmV0Y2goTlVMTCwgIm1sa2VtNzY4IiwgInByb3ZpZGVyPWRlZmF1bHQsLWZpcHMi KTsKKysJCSAgICBpc19mZXRjaGVkID0gKG1sa2VtNzY4ID09IE5VTEwpID8gMCA6IDE7CiArCQl9 CiAgCQlFVlBfS0VNX2ZyZWUobWxrZW03NjgpOworKwkJRVJSX3BvcF90b19tYXJrKCk7CiAgCX0K ICAKKyAJcmV0dXJuIGlzX2ZldGNoZWQ7CiBAQCAtMTMxLDEzICsxNDgsMzIgQEAga2V4X2FsZ19s aXN0X2ludGVybmFsKGNoYXIgc2VwLCBjb25zdCBzdHJ1Y3Qga2V4YWxnICphbGdzKQogIAljaGFy ICpyZXQgPSBOVUxMLCAqdG1wOwogIAlzaXplX3QgbmxlbiwgcmxlbiA9IDA7CkBAIC0xMDgsNiAr MTczLDI1IEBAIGluZGV4IGE3MjhlMGIzOC4uOWI4NTJlOGFiIDEwMDY0NAogIAogIAlmb3IgKGsg PSBrZXhhbGdzOyBrLT5uYW1lICE9IE5VTEw7IGsrKykgewogIAkJaWYgKHN0cmNtcChrLT5uYW1l LCBuYW1lKSA9PSAwKQorQEAgLTI5Miw4ICsyOTUsMTYgQEAga2V4X25hbWVzX3ZhbGlkKGNvbnN0 IGNoYXIgKm5hbWVzKQorIAlmb3IgKChwID0gc3Ryc2VwKCZjcCwgIiwiKSk7IHAgJiYgKnAgIT0g J1wwJzsKKyAJICAgIChwID0gc3Ryc2VwKCZjcCwgIiwiKSkpIHsKKyAJCWlmIChrZXhfYWxnX2J5 X25hbWUocCkgPT0gTlVMTCkgeworLQkJCWlmIChGSVBTX21vZGUoKSkKKy0JCQkJZXJyb3IoIlwi JS4xMDBzXCIgaXMgbm90IGFsbG93ZWQgaW4gRklQUyBtb2RlIiwgcCk7CisrCQkJaWYgKEZJUFNf bW9kZSgpKSB7CisrCQkJCWlmICgoc3RyY21wKHAsIEtFWF9NTEtFTTc2OFgyNTUxOV9TSEEyNTYp ID09IDApCisrCQkJCSAgICB8fCAoc3RyY21wKHAsIEtFWF9NTEtFTTc2OE5JU1RQMjU2X1NIQTI1 NikgPT0gMCkKKysJCQkJICAgIHx8IChzdHJjbXAocCwgS0VYX01MS0VNMTAyNE5JU1RQMzg0X1NI QTM4NCkgPT0gMCkpIHsKKysJCQkJCWRlYnVnKCJcIiUuMTAwc1wiIGlzIG5vdCBhbGxvd2VkIGlu IEZJUFMgbW9kZSIsIHApOworKwkJCQkJY29udGludWU7CisrCQkJCX0KKysJCQkJZWxzZQorKwkJ CQkJZXJyb3IoIlwiJS4xMDBzXCIgaXMgbm90IGFsbG93ZWQgaW4gRklQUyBtb2RlIiwgcCk7Cisr CQkJfQorIAkJCWVsc2UKKyAJCQkJZXJyb3IoIlVuc3VwcG9ydGVkIEtFWCBhbGdvcml0aG0gXCIl LjEwMHNcIiIsIHApOworIAkJCWZyZWUocyk7CiBkaWZmIC0tZ2l0IGEva2V4Z2VuLmMgYi9rZXhn ZW4uYwogaW5kZXggNmU5MTBmODRmLi40YmMzZjlmYWYgMTAwNjQ0CiAtLS0gYS9rZXhnZW4uYwoK ZGlmZiAtLWdpdCBhL29wZW5zc2gtMTAuMC1tbGtlbS1uaXN0LnBhdGNoIGIvb3BlbnNzaC0xMC4w LW1sa2VtLW5pc3QucGF0Y2gKaW5kZXggMjJiOGVjNi4uY2I4NzNjNiAxMDA2NDQKLS0tIGEvb3Bl bnNzaC0xMC4wLW1sa2VtLW5pc3QucGF0Y2gKKysrIGIvb3BlbnNzaC0xMC4wLW1sa2VtLW5pc3Qu cGF0Y2gKQEAgLTY3Niw3ICs2NzYsNyBAQCBpbmRleCA2NzAwNDlkY2QuLjQ2M2QxODc3MSAxMDA2 NDQKICsJLyogZ2VuZXJhdGUgRUNESCBrZXkgcGFpciwgc3RvcmUgc2VydmVyIHB1YmtleSBhZnRl ciBjaXBoZXJ0ZXh0ICovCiArCXNlcnZlcl9rZXkgPSBuaXN0X3BrZXlfa2V5Z2VuKHNlcnZlcl9r ZXlfbGVuKTsKICsKLSsJaWYgKChyID0gZ2V0X3VuY29tcHJlc3NlZF9lY19wdWJrZXkoc2VydmVy X2tleSwgc2VydmVyX3B1Yiwgc2VydmVyX2tleV9sZW4pICE9IDApIHx8CisrCWlmICgoc2VydmVy X2tleSA9PSBOVUxMKSB8fCAociA9IGdldF91bmNvbXByZXNzZWRfZWNfcHVia2V5KHNlcnZlcl9r ZXksIHNlcnZlcl9wdWIsIHNlcnZlcl9rZXlfbGVuKSAhPSAwKSB8fAogKwkgICAgKHIgPSBzc2hi dWZfcHV0KGJ1Ziwgc2VjcmV0LCBzaXplb2Yoc2VjcmV0KSkpICE9IDAgfHwKICsJICAgIChyID0g c3NoYnVmX3B1dChzZXJ2ZXJfYmxvYiwgZW5jX291dCwgZW5jX291dF9sZW4pICE9IDApfHwKICsJ ICAgIChyID0gc3NoYnVmX3B1dChzZXJ2ZXJfYmxvYiwgc2VydmVyX3B1Yiwgc2VydmVyX2tleV9s ZW4pKSAhPSAwKQoKZGlmZiAtLWdpdCBhL29wZW5zc2gtNi43cDEtY292ZXJpdHkucGF0Y2ggYi9v cGVuc3NoLTYuN3AxLWNvdmVyaXR5LnBhdGNoCmluZGV4IGZmZTBjNjkuLjI3NmNjNDMgMTAwNjQ0 Ci0tLSBhL29wZW5zc2gtNi43cDEtY292ZXJpdHkucGF0Y2gKKysrIGIvb3BlbnNzaC02LjdwMS1j b3Zlcml0eS5wYXRjaApAQCAtMTU5LDYgKzE1OSw0NiBAQCBkaWZmIC11cCBvcGVuc3NoLTguN3Ax L29wZW5ic2QtY29tcGF0L2JzZC1wc2VsZWN0LmMuY292ZXJpdHkgb3BlbnNzaC04LjdwMS9vcGVu YgogZGlmZiAtdXAgb3BlbnNzaC04LjVwMS9yZWFkY29uZi5jLmNvdmVyaXR5IG9wZW5zc2gtOC41 cDEvcmVhZGNvbmYuYwogLS0tIG9wZW5zc2gtOC41cDEvcmVhZGNvbmYuYy5jb3Zlcml0eQkyMDIx LTAzLTI0IDEyOjAzOjMzLjc3ODk2ODEzMSArMDEwMAogKysrIG9wZW5zc2gtOC41cDEvcmVhZGNv bmYuYwkyMDIxLTAzLTI0IDEyOjAzOjMzLjc4NTk2ODE4MCArMDEwMAorQEAgLTc0OSwxMiArNzQ5 LDEyIEBAIG1hdGNoX2NmZ19saW5lKE9wdGlvbnMgKm9wdGlvbnMsIGNvbnN0IGMKKyAJZGVidWcy KCJjaGVja2luZyBtYXRjaCBmb3IgJyVzJyBob3N0ICVzIG9yaWdpbmFsbHkgJXMiLAorIAkgICAg ZnVsbF9saW5lLCBob3N0LCBvcmlnaW5hbF9ob3N0KTsKKyAJd2hpbGUgKChhdHRyaWIgPSBhcmd2 X25leHQoYWNwLCBhdnApKSAhPSBOVUxMKSB7CistCQlhdHRyaWIgPSBvYXR0cmliID0geHN0cmR1 cChhdHRyaWIpOworIAkJLyogVGVybWluYXRlIG9uIGNvbW1lbnQgKi8KKyAJCWlmICgqYXR0cmli ID09ICcjJykgeworIAkJCWFyZ3ZfY29uc3VtZShhY3ApOworIAkJCWJyZWFrOworIAkJfQorKwkJ YXR0cmliID0gb2F0dHJpYiA9IHhzdHJkdXAoYXR0cmliKTsKKyAJCWFyZyA9IGNyaXRlcmlhID0g TlVMTDsKKyAJCXRoaXNfcmVzdWx0ID0gMTsKKyAJCWlmICgobmVnYXRlID0gKGF0dHJpYlswXSA9 PSAnIScpKSkKK0BAIC03OTMsNyArNzkzLDcgQEAgbWF0Y2hfY2ZnX2xpbmUoT3B0aW9ucyAqb3B0 aW9ucywgY29uc3QgYworIAkJCWRlYnVnMygiJS4yMDBzIGxpbmUgJWQ6ICVzbWF0Y2hlZCAnJXMn IiwKKyAJCQkgICAgZmlsZW5hbWUsIGxpbmVudW0sCisgCQkJICAgIHRoaXNfcmVzdWx0ID8gIiIg OiAibm90ICIsIG9hdHRyaWIpOworLQkJCWNvbnRpbnVlOworKwkJCWdvdG8gbmV4dDsKKyAJCX0K KyAKKyAJCS8qIEtlZXAgdGhpcyBsaXN0IGluIHN5bmMgd2l0aCBiZWxvdyAqLworQEAgLTg2Myw3 ICs4NjMsNyBAQCBtYXRjaF9jZmdfbGluZShPcHRpb25zICpvcHRpb25zLCBjb25zdCBjCisgCQkJ CWRlYnVnMygiJS4yMDBzIGxpbmUgJWQ6IHNraXBwZWQgZXhlYyAiCisgCQkJCSAgICAiXCIlLjEw MHNcIiIsIGZpbGVuYW1lLCBsaW5lbnVtLCBjbWQpOworIAkJCQlmcmVlKGNtZCk7CistCQkJCWNv bnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJCXIgPSBleGVjdXRlX2luX3NoZWxs KGNtZCk7CisgCQkJaWYgKHIgPT0gLTEpIHsKK0BAIC04ODcsNiArODg3LDcgQEAgbWF0Y2hfY2Zn X2xpbmUoT3B0aW9ucyAqb3B0aW9ucywgY29uc3QgYworIAkJICAgIGNyaXRlcmlhID09IE5VTEwg PyAiIiA6ICIgXCIiLAorIAkJICAgIGNyaXRlcmlhID09IE5VTEwgPyAiIiA6IGNyaXRlcmlhLAor IAkJICAgIGNyaXRlcmlhID09IE5VTEwgPyAiIiA6ICJcIiIpOworK25leHQ6CisgCQlmcmVlKGNy aXRlcmlhKTsKKyAJCWZyZWUob2F0dHJpYik7CisgCQlvYXR0cmliID0gYXR0cmliID0gTlVMTDsK IEBAIC0xODQ3LDYgKzE4NDcsNyBAQCBwYXJzZV9wdWJrZXlfYWxnb3M6CiAgCQkJfSBlbHNlIGlm IChyICE9IDApIHsKICAJCQkJZXJyb3IoIiUuMjAwcyBsaW5lICVkOiBnbG9iIGZhaWxlZCBmb3Ig JXMuIiwKQEAgLTE3MCw2ICsyMTAsMTA4IEBAIGRpZmYgLXVwIG9wZW5zc2gtOC41cDEvcmVhZGNv bmYuYy5jb3Zlcml0eSBvcGVuc3NoLTguNXAxL3JlYWRjb25mLmMKIGRpZmYgLXVwIG9wZW5zc2gt Ny40cDEvc2VydmNvbmYuYy5jb3Zlcml0eSBvcGVuc3NoLTcuNHAxL3NlcnZjb25mLmMKIC0tLSBv cGVuc3NoLTcuNHAxL3NlcnZjb25mLmMuY292ZXJpdHkJMjAxNi0xMi0yMyAxNjo0MDoyNi44OTY3 ODg2OTAgKzAxMDAKICsrKyBvcGVuc3NoLTcuNHAxL3NlcnZjb25mLmMJMjAxNi0xMi0yMyAxNjo0 MDoyNi45MDE3ODg2OTEgKzAxMDAKK0BAIC0xMTIwLDEyICsxMTIwLDEyIEBAIG1hdGNoX2NmZ19s aW5lKGNvbnN0IGNoYXIgKmZ1bGxfbGluZSwgaW4KKyAJfQorIAorIAl3aGlsZSAoKG9hdHRyaWIg PSBhcmd2X25leHQoYWNwLCBhdnApKSAhPSBOVUxMKSB7CistCQlhdHRyaWIgPSB4c3RyZHVwKG9h dHRyaWIpOworIAkJLyogVGVybWluYXRlIG9uIGNvbW1lbnQgKi8KKy0JCWlmICgqYXR0cmliID09 ICcjJykgeworKwkJaWYgKCpvYXR0cmliID09ICcjJykgeworIAkJCWFyZ3ZfY29uc3VtZShhY3Ap OyAvKiBtYXJrIGFsbCBhcmd1bWVudHMgY29uc3VtZWQgKi8KKyAJCQlicmVhazsKKyAJCX0KKysJ CWF0dHJpYiA9IHhzdHJkdXAob2F0dHJpYik7CisgCQlhcmcgPSBOVUxMOworIAkJYXR0cmlidXRl cysrOworIAkJLyogQ3JpdGVyaW9uICJhbGwiIGhhcyBubyBhcmd1bWVudCBhbmQgbXVzdCBhcHBl YXIgYWxvbmUgKi8KK0BAIC0xMTQ3LDEzICsxMTQ3LDEzIEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0 IGNoYXIgKmZ1bGxfbGluZSwgaW4KKyAJCWlmIChzdHJjYXNlY21wKGF0dHJpYiwgImludmFsaWQt dXNlciIpID09IDApIHsKKyAJCQlpZiAoY2kgPT0gTlVMTCkgeworIAkJCQlyZXN1bHQgPSAwOwor LQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJCX0KKyAJCQlpZiAoY2ktPnVzZXJf aW52YWxpZCA9PSAwKQorIAkJCQlyZXN1bHQgPSAwOworIAkJCWVsc2UKKyAJCQkJZGVidWcoIm1h dGNoZWQgaW52YWxpZC11c2VyIGF0IGxpbmUgJWQiLCBsaW5lKTsKKy0JCQljb250aW51ZTsKKysJ CQlnb3RvIG5leHQ7CisgCQl9CisgCisgCQkvKiBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGgg YmVsb3cgKi8KK0BAIC0xMTc5LDcgKzExNzksNyBAQCBtYXRjaF9jZmdfbGluZShjb25zdCBjaGFy ICpmdWxsX2xpbmUsIGluCisgCQlpZiAoc3RyY2FzZWNtcChhdHRyaWIsICJ1c2VyIikgPT0gMCkg eworIAkJCWlmIChjaSA9PSBOVUxMIHx8IChjaS0+dGVzdCAmJiBjaS0+dXNlciA9PSBOVUxMKSkg eworIAkJCQlyZXN1bHQgPSAwOworLQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJ CX0KKyAJCQlpZiAoY2ktPnVzZXIgPT0gTlVMTCkKKyAJCQkJbWF0Y2hfdGVzdF9taXNzaW5nX2Zh dGFsKCJVc2VyIiwgInVzZXIiKTsKK0BAIC0xMTkxLDcgKzExOTEsNyBAQCBtYXRjaF9jZmdfbGlu ZShjb25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQl9IGVsc2UgaWYgKHN0cmNhc2VjbXAoYXR0 cmliLCAiZ3JvdXAiKSA9PSAwKSB7CisgCQkJaWYgKGNpID09IE5VTEwgfHwgKGNpLT50ZXN0ICYm IGNpLT51c2VyID09IE5VTEwpKSB7CisgCQkJCXJlc3VsdCA9IDA7CistCQkJCWNvbnRpbnVlOwor KwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJCWlmIChjaS0+dXNlciA9PSBOVUxMKQorIAkJCQlt YXRjaF90ZXN0X21pc3NpbmdfZmF0YWwoIkdyb3VwIiwgInVzZXIiKTsKK0BAIC0xMjA1LDcgKzEy MDUsNyBAQCBtYXRjaF9jZmdfbGluZShjb25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQl9IGVs c2UgaWYgKHN0cmNhc2VjbXAoYXR0cmliLCAiaG9zdCIpID09IDApIHsKKyAJCQlpZiAoY2kgPT0g TlVMTCB8fCAoY2ktPnRlc3QgJiYgY2ktPmhvc3QgPT0gTlVMTCkpIHsKKyAJCQkJcmVzdWx0ID0g MDsKKy0JCQkJY29udGludWU7CisrCQkJCWdvdG8gbmV4dDsKKyAJCQl9CisgCQkJaWYgKGNpLT5o b3N0ID09IE5VTEwpCisgCQkJCW1hdGNoX3Rlc3RfbWlzc2luZ19mYXRhbCgiSG9zdCIsICJob3N0 Iik7CitAQCAtMTIyMCw3ICsxMjIwLDcgQEAgbWF0Y2hfY2ZnX2xpbmUoY29uc3QgY2hhciAqZnVs bF9saW5lLCBpbgorIAkJCQkJZmF0YWwoIkludmFsaWQgTWF0Y2ggYWRkcmVzcyBhcmd1bWVudCAi CisgCQkJCQkgICAgIiclcycgYXQgbGluZSAlZCIsIGFyZywgbGluZSk7CisgCQkJCXJlc3VsdCA9 IDA7CistCQkJCWNvbnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJCWlmIChjaS0+ YWRkcmVzcyA9PSBOVUxMKQorIAkJCQltYXRjaF90ZXN0X21pc3NpbmdfZmF0YWwoIkFkZHJlc3Mi LCAiYWRkciIpOworQEAgLTEyNDQsNyArMTI0NCw3IEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0IGNo YXIgKmZ1bGxfbGluZSwgaW4KKyAJCQkJCSAgICAiYXJndW1lbnQgJyVzJyBhdCBsaW5lICVkIiwg YXJnLAorIAkJCQkJICAgIGxpbmUpOworIAkJCQlyZXN1bHQgPSAwOworLQkJCQljb250aW51ZTsK KysJCQkJZ290byBuZXh0OworIAkJCX0KKyAJCQlpZiAoY2ktPmxhZGRyZXNzID09IE5VTEwpCisg CQkJCW1hdGNoX3Rlc3RfbWlzc2luZ19mYXRhbCgiTG9jYWxBZGRyZXNzIiwKK0BAIC0xMjcyLDcg KzEyNzIsNyBAQCBtYXRjaF9jZmdfbGluZShjb25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQkJ fQorIAkJCWlmIChjaSA9PSBOVUxMIHx8IChjaS0+dGVzdCAmJiBjaS0+bHBvcnQgPT0gLTEpKSB7 CisgCQkJCXJlc3VsdCA9IDA7CistCQkJCWNvbnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJ fQorIAkJCWlmIChjaS0+bHBvcnQgPT0gMCkKKyAJCQkJbWF0Y2hfdGVzdF9taXNzaW5nX2ZhdGFs KCJMb2NhbFBvcnQiLCAibHBvcnQiKTsKK0BAIC0xMjg2LDcgKzEyODYsNyBAQCBtYXRjaF9jZmdf bGluZShjb25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQl9IGVsc2UgaWYgKHN0cmNhc2VjbXAo YXR0cmliLCAicmRvbWFpbiIpID09IDApIHsKKyAJCQlpZiAoY2kgPT0gTlVMTCB8fCAoY2ktPnRl c3QgJiYgY2ktPnJkb21haW4gPT0gTlVMTCkpIHsKKyAJCQkJcmVzdWx0ID0gMDsKKy0JCQkJY29u dGludWU7CisrCQkJCWdvdG8gbmV4dDsKKyAJCQl9CisgCQkJaWYgKGNpLT5yZG9tYWluID09IE5V TEwpCisgCQkJCW1hdGNoX3Rlc3RfbWlzc2luZ19mYXRhbCgiUkRvbWFpbiIsICJyZG9tYWluIik7 CitAQCAtMTMwMCw2ICsxMzAwLDcgQEAgbWF0Y2hfY2ZnX2xpbmUoY29uc3QgY2hhciAqZnVsbF9s aW5lLCBpbgorIAkJCXJlc3VsdCA9IC0xOworIAkJCWdvdG8gb3V0OworIAkJfQorK25leHQ6Cisg CQlmcmVlKGF0dHJpYik7CisgCQlhdHRyaWIgPSBOVUxMOworIAl9CiBAQCAtMTYzOCw4ICsxNjM4 LDkgQEAgcHJvY2Vzc19zZXJ2ZXJfY29uZmlnX2xpbmUoU2VydmVyT3B0aW9ucwogIAkJaWYgKCph Y3RpdmVwICYmICpjaGFycHRyID09IE5VTEwpIHsKICAJCQkqY2hhcnB0ciA9IHRpbGRlX2V4cGFu ZF9maWxlbmFtZShhcmcsIGdldHVpZCgpKTsKQEAgLTI0NiwzICszODgsMjIgQEAgZGlmZiAtdXAg b3BlbnNzaC04LjVwMS9zc2gta2V5Z2VuLmMuY292ZXJpdHkgb3BlbnNzaC04LjVwMS9zc2gta2V5 Z2VuLmMKICAJCX0gZWxzZSB7CiAgCQkJaWYgKHN0cm5jYXNlY21wKGNwLCAia2V5OiIsIDQpID09 IDApIHsKICAJCQkJY3AgKz0gNDsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGQuYyBiL3NzaGQu YworLS0tIGEvc3NoZC5jCTIwMjYtMDQtMDEgMTQ6Mjk6MTQuMTg2NzM2MjMzICswMjAwCisrKysg Yi9zc2hkLmMJMjAyNi0wNC0wMSAxNDozNjo1OS4xMzY4ODE4MTkgKzAyMDAKK0BAIC0xMDc5LDYg KzEwNzksNyBAQCBzZXJ2ZXJfYWNjZXB0X2xvb3AoaW50ICpzb2NrX2luLCBpbnQgKnNvCisgCQkJ CXNlbmRfcmV4ZWNfc3RhdGUoY29uZmlnX3NbMF0sIGNmZyk7CisgCQkJCWNsb3NlKGNvbmZpZ19z WzBdKTsKKyAJCQkJZnJlZShwZmQpOworKwkJCQlmcmVlKHN0YXJ0dXBfcG9sbGZkKTsKKyAJCQkJ cmV0dXJuOworIAkJCX0KKyAKK0BAIC0xMTExLDYgKzExMTIsNyBAQCBzZXJ2ZXJfYWNjZXB0X2xv b3AoaW50ICpzb2NrX2luLCBpbnQgKnNvCisgCQkJCSAgICBsb2dfc3RkZXJyKTsKKyAJCQkJY2xv c2UoY29uZmlnX3NbMF0pOworIAkJCQlmcmVlKHBmZCk7CisrCQkJCWZyZWUoc3RhcnR1cF9wb2xs ZmQpOworIAkJCQlyZXR1cm47CisgCQkJfQorIAoKZGlmZiAtLWdpdCBhL29wZW5zc2gtNy42cDEt YXVkaXQucGF0Y2ggYi9vcGVuc3NoLTcuNnAxLWF1ZGl0LnBhdGNoCmluZGV4IDJjN2RkYzUuLmEz MmFiYzkgMTAwNjQ0Ci0tLSBhL29wZW5zc2gtNy42cDEtYXVkaXQucGF0Y2gKKysrIGIvb3BlbnNz aC03LjZwMS1hdWRpdC5wYXRjaApAQCAtMjA5Myw3ICsyMDkzLDcgQEAgZGlmZiAtdXAgb3BlbnNz aC04LjZwMS9zc2hkLXNlc3Npb24uYy5hdWRpdCBvcGVuc3NoLTguNnAxL3NzaGQtc2Vzc2lvbi5j CiArI2VuZGlmIC8qIFdJVEhfT1BFTlNTTCAqLwogKyAgICAgIGNhc2UgS0VZX0VEMjU1MTlfQ0VS VDoKICsgICAgICBjYXNlIEtFWV9FRDI1NTE5OgotKyAgICAgICAgICAgICAgcmV0dXJuIChrLT5l ZDI1NTE5X3BrICE9IE5VTEwpOworKyAgICAgICAgICAgICAgcmV0dXJuIChrLT5lZDI1NTE5X3Nr ICE9IE5VTEwpOwogKyAgICAgIGRlZmF1bHQ6CiArICAgICAgICAgICAgICAvKiBmYXRhbCgia2V5 X2lzX3ByaXZhdGU6IGJhZCBrZXkgdHlwZSAlZCIsIGstPnR5cGUpOyAqLwogKyAgICAgICAgICAg ICAgcmV0dXJuIDA7CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC03LjdwMS1maXBzLnBhdGNoIGIvb3Bl bnNzaC03LjdwMS1maXBzLnBhdGNoCmluZGV4IGZjZDAyNDUuLjhkNDQyYTQgMTAwNjQ0Ci0tLSBh L29wZW5zc2gtNy43cDEtZmlwcy5wYXRjaAorKysgYi9vcGVuc3NoLTcuN3AxLWZpcHMucGF0Y2gK QEAgLTcwMSwzICs3MDEsMjkgQEAgZGlmZiAtdXAgb3BlbnNzaC05LjlwMS9rZXguYy54eHggb3Bl bnNzaC05LjlwMS9rZXguYwogIAlpZiAoKGNwID0ga2V4X25hbWVzX2NhdChrZXhhbGdvcywgc3No LT5rZXgtPnNlcnZlciA/CiAgCSAgICAiZXh0LWluZm8tcyxrZXgtc3RyaWN0LXMtdjAwQG9wZW5z c2guY29tIiA6CiAgCSAgICAiZXh0LWluZm8tYyxrZXgtc3RyaWN0LWMtdjAwQG9wZW5zc2guY29t IikpID09IE5VTEwpCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2gta2V5c2Nhbi5jIGIvc3NoLWtl eXNjYW4uYworLS0tIGEvc3NoLWtleXNjYW4uYwkyMDI2LTAzLTE4IDEzOjU4OjU1LjcwODE5MzM3 MyArMDEwMAorKysrIGIvc3NoLWtleXNjYW4uYwkyMDI2LTAzLTE4IDE1OjM0OjM1LjQ5NTk0MjUz OCArMDEwMAorQEAgLTIyLDYgKzIyLDcgQEAKKyAjaWZkZWYgV0lUSF9PUEVOU1NMCisgI2luY2x1 ZGUgPG9wZW5zc2wvYm4uaD4KKyAjZW5kaWYKKysjaW5jbHVkZSA8b3BlbnNzbC9maXBzLmg+Cisg CisgI2luY2x1ZGUgPGxpbWl0cy5oPgorICNpbmNsdWRlIDxuZXRkYi5oPgorQEAgLTIzOSw2ICsy NDAsMTQgQEAga2V5Z3JhYl9zc2gyKGNvbiAqYykKKyAJY2hhciAqbXlwcm9wb3NhbFtQUk9QT1NB TF9NQVhdID0geyBLRVhfQ0xJRU5UIH07CisgCWludCByOworIAorKwlpZiAoRklQU19tb2RlKCkp IHsKKysJCW15cHJvcG9zYWxbUFJPUE9TQUxfS0VYX0FMR1NdID0gS0VYX0RFRkFVTFRfS0VYX0ZJ UFM7CisrCQlteXByb3Bvc2FsW1BST1BPU0FMX0VOQ19BTEdTX0NUT1NdID0gS0VYX0ZJUFNfRU5D UllQVDsKKysJCW15cHJvcG9zYWxbUFJPUE9TQUxfRU5DX0FMR1NfU1RPQ10gPSBLRVhfRklQU19F TkNSWVBUOworKwkJbXlwcm9wb3NhbFtQUk9QT1NBTF9NQUNfQUxHU19DVE9TXSA9IEtFWF9GSVBT X01BQzsKKysJCW15cHJvcG9zYWxbUFJPUE9TQUxfTUFDX0FMR1NfU1RPQ10gPSBLRVhfRklQU19N QUM7CisrCX0KKysKKyAJc3dpdGNoIChjLT5jX2tleXR5cGUpIHsKKyAJY2FzZSBLVF9EU0E6Cisg CQlteXByb3Bvc2FsW1BST1BPU0FMX1NFUlZFUl9IT1NUX0tFWV9BTEdTXSA9IGdldF9jZXJ0ID8K CmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuNnAxLWdzc2FwaS1rZXlleC5wYXRjaCBiL29wZW5zc2gt OS42cDEtZ3NzYXBpLWtleWV4LnBhdGNoCmluZGV4IGVmMWY5N2UuLjU4NzU5NDMgMTAwNjQ0Ci0t LSBhL29wZW5zc2gtOS42cDEtZ3NzYXBpLWtleWV4LnBhdGNoCisrKyBiL29wZW5zc2gtOS42cDEt Z3NzYXBpLWtleWV4LnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogZGlmZiAtLWNvbG9yIC1ydU5wIGEv YXV0aDIuYyBiL2F1dGgyLmMKLS0tLSBhL2F1dGgyLmMJMjAyNC0wOS0xNiAxMTo0NTo1Ni44NTgx MzMyNDEgKzAyMDAKLSsrKyBiL2F1dGgyLmMJMjAyNC0wOS0xNiAxMTo0NjozNC42ODg5Mzk3NTUg KzAyMDAKKy0tLSBhL2F1dGgyLmMJMjAyNi0wMy0xMyAxMjozMjo0OC40NjM4MzA2NzIgKzAxMDAK KysrKyBiL2F1dGgyLmMJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTM1NTkwMDAgKzAxMDAKIEBAIC03 MSw2ICs3MSw3IEBAIGV4dGVybiBBdXRobWV0aG9kIG1ldGhvZF9wYXNzd2Q7CiAgZXh0ZXJuIEF1 dGhtZXRob2QgbWV0aG9kX2tiZGludDsKICBleHRlcm4gQXV0aG1ldGhvZCBtZXRob2RfaG9zdGJh c2VkOwpAQCAtMTgsOCArMTgsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi5jIGIvYXV0 aDIuYwogICNlbmRpZgogIAkmbWV0aG9kX3Bhc3N3ZCwKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2F1 dGgyLWdzcy5jIGIvYXV0aDItZ3NzLmMKLS0tLSBhL2F1dGgyLWdzcy5jCTIwMjQtMDktMTYgMTE6 NDU6NTYuODU4MTMzMjQxICswMjAwCi0rKysgYi9hdXRoMi1nc3MuYwkyMDI0LTA5LTE2IDExOjQ2 OjM0LjY4OTkzOTc3NiArMDIwMAorLS0tIGEvYXV0aDItZ3NzLmMJMjAyNi0wMy0xMyAxMjozMjo0 OC40NjQxNTg5NzggKzAxMDAKKysrKyBiL2F1dGgyLWdzcy5jCTIwMjYtMDMtMTMgMTI6MTY6NDAu MDExNTc5NDc2ICswMTAwCiBAQCAtNTEsNiArNTEsNyBAQAogICNkZWZpbmUgU1NIX0dTU0FQSV9N QVhfTUVDSFMJMjA0OAogIApAQCAtMTA4LDggKzEwOCw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBh L2F1dGgyLWdzcy5jIGIvYXV0aDItZ3NzLmMKICAJJm1ldGhvZGNmZ19nc3NhcGksCiAgCXVzZXJh dXRoX2dzc2FwaSwKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2F1dGgyLW1ldGhvZHMuYyBiL2F1dGgy LW1ldGhvZHMuYwotLS0tIGEvYXV0aDItbWV0aG9kcy5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAw MDAwMDAwICswMjAwCi0rKysgYi9hdXRoMi1tZXRob2RzLmMJMjAyNC0wOS0xNiAxMTo0NjozNC42 ODk5Mzk3NzYgKzAyMDAKKy0tLSBhL2F1dGgyLW1ldGhvZHMuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4 LjAwMDAwMDAwMCArMDIwMAorKysrIGIvYXV0aDItbWV0aG9kcy5jCTIwMjYtMDMtMTMgMTI6MTY6 NDAuMDExNjIxNTAyICswMTAwCiBAQCAtNTAsNiArNTAsMTEgQEAgc3RydWN0IGF1dGhtZXRob2Rf Y2ZnIG1ldGhvZGNmZ19wdWJrZXkgPQogIAkmb3B0aW9ucy5wdWJrZXlfYXV0aGVudGljYXRpb24K ICB9OwpAQCAtMTMxLDggKzEzMSw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2F1dGgyLW1ldGhv ZHMuYyBiL2F1dGgyLW1ldGhvZHMuYwogICNlbmRpZgogIAkmbWV0aG9kY2ZnX3Bhc3N3ZCwKIGRp ZmYgLS1jb2xvciAtcnVOcCBhL2F1dGguYyBiL2F1dGguYwotLS0tIGEvYXV0aC5jCTIwMjQtMDct MDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9hdXRoLmMJMjAyNC0wOS0xNiAxMTo0 NjozNC42OTA5Mzk3OTggKzAyMDAKKy0tLSBhL2F1dGguYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAw MDAwMDAwMCArMDIwMAorKysrIGIvYXV0aC5jCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTcxOTcxNDUy ICswMTAwCiBAQCAtMzU2LDcgKzM1Niw4IEBAIGF1dGhfcm9vdF9hbGxvd2VkKHN0cnVjdCBzc2gg KnNzaCwgY29uc3QKICAJY2FzZSBQRVJNSVRfTk9fUEFTU1dEOgogIAkJaWYgKHN0cmNtcChtZXRo b2QsICJwdWJsaWNrZXkiKSA9PSAwIHx8CkBAIC0xNDQsOCArMTQ0LDggQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEvYXV0aC5jIGIvYXV0aC5jCiAgCQlicmVhazsKICAJY2FzZSBQRVJNSVRfRk9SQ0VE X09OTFk6CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9jYW5vaG9zdC5jIGIvY2Fub2hvc3QuYwotLS0t IGEvY2Fub2hvc3QuYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysrIGIv Y2Fub2hvc3QuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5MDkzOTc5OCArMDIwMAorLS0tIGEvY2Fu b2hvc3QuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvY2Fub2hv c3QuYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3MTYxNDM0OSArMDEwMAogQEAgLTM1LDYgKzM1LDk5 IEBACiAgI2luY2x1ZGUgImNhbm9ob3N0LmgiCiAgI2luY2x1ZGUgIm1pc2MuaCIKQEAgLTI0Nyw4 ICsyNDcsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9jYW5vaG9zdC5jIGIvY2Fub2hvc3QuYwog IGlwdjY0X25vcm1hbGlzZV9tYXBwZWQoc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgKmFkZHIsIHNv Y2tsZW5fdCAqbGVuKQogIHsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2Nhbm9ob3N0LmggYi9jYW5v aG9zdC5oCi0tLS0gYS9jYW5vaG9zdC5oCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICsw MjAwCi0rKysgYi9jYW5vaG9zdC5oCTIwMjQtMDktMTYgMTE6NDY6MzQuNjkwOTM5Nzk4ICswMjAw CistLS0gYS9jYW5vaG9zdC5oCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisr KysgYi9jYW5vaG9zdC5oCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTczMDEwMjI3ICswMTAwCiBAQCAt MTUsNiArMTUsOSBAQAogICNpZm5kZWYgX0NBTk9IT1NUX0gKICAjZGVmaW5lIF9DQU5PSE9TVF9I CkBAIC0yNjAsOCArMjYwLDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvY2Fub2hvc3QuaCBiL2Nh bm9ob3N0LmgKICBpbnQJCSBnZXRfcGVlcl9wb3J0KGludCk7CiAgY2hhcgkJKmdldF9sb2NhbF9p cGFkZHIoaW50KTsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2NsaWVudGxvb3AuYyBiL2NsaWVudGxv b3AuYwotLS0tIGEvY2xpZW50bG9vcC5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICsw MjAwCi0rKysgYi9jbGllbnRsb29wLmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTA5Mzk3OTggKzAy MDAKKy0tLSBhL2NsaWVudGxvb3AuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIw MAorKysrIGIvY2xpZW50bG9vcC5jCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTczMDY3NDc1ICswMTAw CiBAQCAtMTE1LDYgKzExNSwxMCBAQAogICNpbmNsdWRlICJzc2hlcnIuaCIKICAjaW5jbHVkZSAi aG9zdGZpbGUuaCIKQEAgLTI4OSw4ICsyODksOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9jbGll bnRsb29wLmMgYi9jbGllbnRsb29wLmMKICAJCWlmIChjb25uX2luX3JlYWR5KQogIAkJCWNsaWVu dF9wcm9jZXNzX25ldF9pbnB1dChzc2gpOwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvY29uZmlndXJl LmFjIGIvY29uZmlndXJlLmFjCi0tLS0gYS9jb25maWd1cmUuYWMJMjAyNC0wOS0xNiAxMTo0NTo1 Ni44NzAxMzM0OTcgKzAyMDAKLSsrKyBiL2NvbmZpZ3VyZS5hYwkyMDI0LTA5LTE2IDExOjQ2OjM0 LjY5MTkzOTgxOSArMDIwMAorLS0tIGEvY29uZmlndXJlLmFjCTIwMjYtMDMtMTMgMTI6MzI6NDgu NDc2NDk3MTExICswMTAwCisrKysgYi9jb25maWd1cmUuYWMJMjAyNi0wMy0xMyAxMjoxNjozOS45 NzQwNjc5NzggKzAxMDAKIEBAIC03NzQsNiArNzc0LDMwIEBAIGludCBtYWluKHZvaWQpIHsgaWYg KE5TVmVyc2lvbk9mUnVuVGltZUwKICAJICAgIFtVc2UgdHVubmVsIGRldmljZSBjb21wYXRpYmls aXR5IHRvIE9wZW5CU0RdKQogIAlBQ19ERUZJTkUoW1NTSF9UVU5fUFJFUEVORF9BRl0sIFsxXSwK QEAgLTMyMyw4ICszMjMsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKICAJQUNfQ0hFQ0tfREVDTChbQVVfSVB2NF0sIFtdLAogIAkgICAgQUNfREVG SU5FKFtBVV9JUHY0XSwgWzBdLCBbU3lzdGVtIG9ubHkgc3VwcG9ydHMgSVB2NCBhdWRpdCByZWNv cmRzXSkKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2dzcy1nZW5yLmMgYi9nc3MtZ2Vuci5jCi0tLS0g YS9nc3MtZ2Vuci5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9n c3MtZ2Vuci5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNzA4OTQwMTgxICswMjAwCistLS0gYS9nc3Mt Z2Vuci5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9nc3MtZ2Vu ci5jCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEyNjcyNzU5ICswMTAwCiBAQCAtNDIsOSArNDIsMzMg QEAKICAjaW5jbHVkZSAic3NoYnVmLmgiCiAgI2luY2x1ZGUgImxvZy5oIgpAQCAtNzEwLDggKzcx MCw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2dzcy1nZW5yLmMgYi9nc3MtZ2Vuci5jCiArCiAg I2VuZGlmIC8qIEdTU0FQSSAqLwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYuYyBiL2dz cy1zZXJ2LmMKLS0tLSBhL2dzcy1zZXJ2LmMJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBiL2dzcy1zZXJ2LmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTI5Mzk4NDAgKzAy MDAKKy0tLSBhL2dzcy1zZXJ2LmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAK KysrKyBiL2dzcy1zZXJ2LmMJMjAyNi0wMy0xMyAxMjoxNjozOS45Nzg3ODc4MTggKzAxMDAKIEBA IC0xLDcgKzEsNyBAQAogIC8qICRPcGVuQlNEOiBnc3Mtc2Vydi5jLHYgMS4zMiAyMDIwLzAzLzEz IDAzOjE3OjA3IGRqbSBFeHAgJCAqLwogIApAQCAtMTAwNCw4ICsxMDA0LDggQEAgZGlmZiAtLWNv bG9yIC1ydU5wIGEvZ3NzLXNlcnYuYyBiL2dzcy1zZXJ2LmMKICAKICAvKiBQcml2aWxlZ2VkICov CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi1rcmI1LmMgYi9nc3Mtc2Vydi1rcmI1LmMK LS0tLSBhL2dzcy1zZXJ2LWtyYjUuYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIw MAotKysrIGIvZ3NzLXNlcnYta3JiNS5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNjkyOTM5ODQwICsw MjAwCistLS0gYS9nc3Mtc2Vydi1rcmI1LmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL2dzcy1zZXJ2LWtyYjUuYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3ODkzNDA1 NiArMDEwMAogQEAgLTEsNyArMSw3IEBACiAgLyogJE9wZW5CU0Q6IGdzcy1zZXJ2LWtyYjUuYyx2 IDEuOSAyMDE4LzA3LzA5IDIxOjM3OjU1IG1hcmt1cyBFeHAgJCAqLwogIApAQCAtMTE0Myw4ICsx MTQzLDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYta3JiNS5jIGIvZ3NzLXNlcnYt a3JiNS5jCiAgCiAgI2VuZGlmIC8qIEtSQjUgKi8KIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC5j IGIva2V4LmMKLS0tLSBhL2tleC5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAw Ci0rKysgYi9rZXguYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5MjkzOTg0MCArMDIwMAorLS0tIGEv a2V4LmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2tleC5jCTIw MjYtMDMtMTMgMTI6MTY6MzkuOTc4ODU3NjUzICswMTAwCiBAQCAtMjk3LDE3ICsyOTcsMzcgQEAg c3RhdGljIGludAogIGtleF9jb21wb3NlX2V4dF9pbmZvX3NlcnZlcihzdHJ1Y3Qgc3NoICpzc2gs IHN0cnVjdCBzc2hidWYgKm0pCiAgewpAQCAtMTIwMCw4ICsxMjAwLDggQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEva2V4LmMgYi9rZXguYwogIAlzc2hrZXlfZnJlZShrZXgtPmluaXRpYWxfaG9zdGtl eSk7CiAgCWZyZWUoa2V4LT5mYWlsZWRfY2hvaWNlKTsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tl eGRoLmMgYi9rZXhkaC5jCi0tLS0gYS9rZXhkaC5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAw MDAwICswMjAwCi0rKysgYi9rZXhkaC5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNjkzOTM5ODYyICsw MjAwCistLS0gYS9rZXhkaC5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisr KysgYi9rZXhkaC5jCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTc5NTM3MjI4ICswMTAwCiBAQCAtNDks MTMgKzQ5LDIzIEBAIGtleF9kaF9rZXlnZW4oc3RydWN0IGtleCAqa2V4KQogIHsKICAJc3dpdGNo IChrZXgtPmtleF90eXBlKSB7CkBAIC0xMjI3LDggKzEyMjcsOCBAQCBkaWZmIC0tY29sb3IgLXJ1 TnAgYS9rZXhkaC5jIGIva2V4ZGguYwogIAkJYnJlYWs7CiAgCWNhc2UgS0VYX0RIX0dSUDE4X1NI QTUxMjoKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleGdlbi5jIGIva2V4Z2VuLmMKLS0tLSBhL2tl eGdlbi5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9rZXhnZW4u YwkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5MzkzOTg2MiArMDIwMAorLS0tIGEva2V4Z2VuLmMJMjAy NC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2tleGdlbi5jCTIwMjYtMDMt MTMgMTI6MTY6MzkuOTc5NzM3MzM1ICswMTAwCiBAQCAtNDQsNyArNDQsNyBAQAogIHN0YXRpYyBp bnQgaW5wdXRfa2V4X2dlbl9pbml0KGludCwgdV9pbnQzMl90LCBzdHJ1Y3Qgc3NoICopOwogIHN0 YXRpYyBpbnQgaW5wdXRfa2V4X2dlbl9yZXBseShpbnQgdHlwZSwgdV9pbnQzMl90IHNlcSwgc3Ry dWN0IHNzaCAqc3NoKTsKQEAgLTEyNDAsNyArMTI0MCw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBh L2tleGdlbi5jIGIva2V4Z2VuLmMKICAgICAgY29uc3Qgc3RydWN0IHNzaGJ1ZiAqY2xpZW50X3Zl cnNpb24sCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NjLmMgYi9rZXhnc3NjLmMKIC0tLSBh L2tleGdzc2MuYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIGIva2V4 Z3NzYy5jCTIwMjQtMTAtMTQgMTU6MTg6MDIuNDkxNzk4MTA1ICswMjAwCisrKysgYi9rZXhnc3Nj LmMJMjAyNi0wMy0xMyAxMjoyNToyMy4xMTU4MTIxOTAgKzAxMDAKIEBAIC0wLDAgKzEsNzA2IEBA CiArLyoKICsgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwOSBTaW1vbiBXaWxraW5zb24uIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCkBAIC0xMzY5LDcgKzEzNjksNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAg YS9rZXhnc3NjLmMgYi9rZXhnc3NjLmMKICsKICsJLyogVmVyaWZ5IHRoYXQgdGhlIGhhc2ggbWF0 Y2hlcyB0aGUgTUlDIHdlIGp1c3QgZ290LiAqLwogKwlpZiAoR1NTX0VSUk9SKHNzaF9nc3NhcGlf Y2hlY2ttaWMoZ3NzLCAmZ3NzLT5idWYsICZnc3MtPm1zZ190b2spKSkKLSsJCXNzaHBrdF9kaXNj b25uZWN0KHNzaCwgIkhhc2gncyBNSUMgZGlkbid0IHZlcmlmeSIpOworKwkJc3NoX3BhY2tldF9k aXNjb25uZWN0KHNzaCwgIkhhc2gncyBNSUMgZGlkbid0IHZlcmlmeSIpOwogKwogKwlnc3NfcmVs ZWFzZV9idWZmZXIoJmdzcy0+bWlub3IsICZnc3MtPm1zZ190b2spOwogKwpAQCAtMTU5MiwxMCAr MTU5MiwxMCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NjLmMgYi9rZXhnc3NjLmMKICsJ CQlmYXRhbCgiRmFpbGVkIHRvIHJlYWQgdG9rZW46ICVzIiwgc3NoX2VycihyKSk7CiArCQkvKiBJ ZiB3ZSdyZSBhbHJlYWR5IGNvbXBsZXRlIC0gcHJvdG9jb2wgZXJyb3IgKi8KICsJCWlmIChnc3Mt Pm1ham9yID09IEdTU19TX0NPTVBMRVRFKQotKwkJCXNzaHBrdF9kaXNjb25uZWN0KHNzaCwgIlBy b3RvY29sIGVycm9yOiByZWNlaXZlZCB0b2tlbiB3aGVuIGNvbXBsZXRlIik7CisrCQkJc3NoX3Bh Y2tldF9kaXNjb25uZWN0KHNzaCwgIlByb3RvY29sIGVycm9yOiByZWNlaXZlZCB0b2tlbiB3aGVu IGNvbXBsZXRlIik7CiArCX0gZWxzZSB7CiArCQlpZiAoZ3NzLT5tYWpvciAhPSBHU1NfU19DT01Q TEVURSkKLSsJCQlzc2hwa3RfZGlzY29ubmVjdChzc2gsICJQcm90b2NvbCBlcnJvcjogZGlkIG5v dCByZWNlaXZlIGZpbmFsIHRva2VuIik7CisrCQkJc3NoX3BhY2tldF9kaXNjb25uZWN0KHNzaCwg IlByb3RvY29sIGVycm9yOiBkaWQgbm90IHJlY2VpdmUgZmluYWwgdG9rZW4iKTsKICsJfQogKwlp ZiAoKHIgPSBzc2hwa3RfZ2V0X2VuZChzc2gpKSAhPSAwKQogKwkJZmF0YWwoIkV4cGVjdGluZyBl bmQgb2YgcGFja2V0LiIpOwpAQCAtMTczMSw3ICsxNzMxLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5w IGEva2V4Z3NzYy5jIGIva2V4Z3NzYy5jCiArCiArCS8qIFZlcmlmeSB0aGF0IHRoZSBoYXNoIG1h dGNoZXMgdGhlIE1JQyB3ZSBqdXN0IGdvdC4gKi8KICsJaWYgKEdTU19FUlJPUihzc2hfZ3NzYXBp X2NoZWNrbWljKGdzcywgJmdzcy0+YnVmLCAmZ3NzLT5tc2dfdG9rKSkpCi0rCQlzc2hwa3RfZGlz Y29ubmVjdChzc2gsICJIYXNoJ3MgTUlDIGRpZG4ndCB2ZXJpZnkiKTsKKysJCXNzaF9wYWNrZXRf ZGlzY29ubmVjdChzc2gsICJIYXNoJ3MgTUlDIGRpZG4ndCB2ZXJpZnkiKTsKICsKICsJZ3NzX3Jl bGVhc2VfYnVmZmVyKCZnc3MtPm1pbm9yLCAmZ3NzLT5tc2dfdG9rKTsKICsKQEAgLTE5MzIsMTAg KzE5MzIsMTAgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3NzYy5jIGIva2V4Z3NzYy5jCiAr CQkJZmF0YWwoIkZhaWxlZCB0byByZWFkIHRva2VuOiAlcyIsIHNzaF9lcnIocikpOwogKwkJLyog SWYgd2UncmUgYWxyZWFkeSBjb21wbGV0ZSAtIHByb3RvY29sIGVycm9yICovCiArCQlpZiAoZ3Nz LT5tYWpvciA9PSBHU1NfU19DT01QTEVURSkKLSsJCQlzc2hwa3RfZGlzY29ubmVjdChzc2gsICJQ cm90b2NvbCBlcnJvcjogcmVjZWl2ZWQgdG9rZW4gd2hlbiBjb21wbGV0ZSIpOworKwkJCXNzaF9w YWNrZXRfZGlzY29ubmVjdChzc2gsICJQcm90b2NvbCBlcnJvcjogcmVjZWl2ZWQgdG9rZW4gd2hl biBjb21wbGV0ZSIpOwogKwl9IGVsc2UgewogKwkJaWYgKGdzcy0+bWFqb3IgIT0gR1NTX1NfQ09N UExFVEUpCi0rCQkJc3NocGt0X2Rpc2Nvbm5lY3Qoc3NoLCAiUHJvdG9jb2wgZXJyb3I6IGRpZCBu b3QgcmVjZWl2ZSBmaW5hbCB0b2tlbiIpOworKwkJCXNzaF9wYWNrZXRfZGlzY29ubmVjdChzc2gs ICJQcm90b2NvbCBlcnJvcjogZGlkIG5vdCByZWNlaXZlIGZpbmFsIHRva2VuIik7CiArCX0KICsJ aWYgKChyID0gc3NocGt0X2dldF9lbmQoc3NoKSkgIT0gMCkKICsJCWZhdGFsKCJFeHBlY3Rpbmcg ZW5kIG9mIHBhY2tldC4iKTsKQEAgLTE5NTAsOCArMTk1MCw4IEBAIGRpZmYgLS1jb2xvciAtcnVO cCBhL2tleGdzc2MuYyBiL2tleGdzc2MuYwogKyNlbmRpZiAvKiBkZWZpbmVkKEdTU0FQSSkgJiYg ZGVmaW5lZChXSVRIX09QRU5TU0wpICovCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NzLmMg Yi9rZXhnc3NzLmMKIC0tLSBhL2tleGdzc3MuYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIGIva2V4Z3Nzcy5jCTIwMjQtMTAtMTQgMTU6MTg6MDIuNDkxNzk4MTA1ICsw MjAwCi1AQCAtMCwwICsxLDYwMSBAQAorKysrIGIva2V4Z3Nzcy5jCTIwMjYtMDMtMTMgMTI6MzI6 MTcuNTU2MTcyNTkxICswMTAwCitAQCAtMCwwICsxLDYwMyBAQAogKy8qCiArICogQ29weXJpZ2h0 IChjKSAyMDAxLTIwMDkgU2ltb24gV2lsa2luc29uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKyAq CkBAIC0yMDgzLDcgKzIwODMsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NzLmMgYi9r ZXhnc3NzLmMKICt7CiArCXN0cnVjdCBrZXggKmtleCA9IHNzaC0+a2V4OwogKwlHc3NjdHh0ICpn c3MgPSBrZXgtPmdzczsKLSsJZ3NzX2J1ZmZlcl9kZXNjIG1zZ190b2s7CisrCWdzc19idWZmZXJf ZGVzYyBtc2dfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOwogKwl1X2NoYXIgaGFzaFtTU0hfRElH RVNUX01BWF9MRU5HVEhdOwogKwlzaXplX3QgaGFzaGxlbjsKICsJc3RydWN0IHNzaGJ1ZiAqc2hh cmVkX3NlY3JldCA9IE5VTEw7CkBAIC0yMTY3LDcgKzIxNjcsOCBAQCBkaWZmIC0tY29sb3IgLXJ1 TnAgYS9rZXhnc3NzLmMgYi9rZXhnc3NzLmMKICsJR3NzY3R4dCAqZ3NzID0ga2V4LT5nc3M7CiAr CXN0cnVjdCBzc2hidWYgKmVtcHR5OwogKwlzdHJ1Y3Qgc3NoYnVmICpjbGllbnRfcHVia2V5ID0g TlVMTDsKLSsJZ3NzX2J1ZmZlcl9kZXNjIHJlY3ZfdG9rLCBzZW5kX3RvayA9IEdTU19DX0VNUFRZ X0JVRkZFUjsKKysJZ3NzX2J1ZmZlcl9kZXNjIHJlY3ZfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVS OworKwlnc3NfYnVmZmVyX2Rlc2Mgc2VuZF90b2sgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiArCU9N X3VpbnQzMiByZXRfZmxhZ3MgPSAwOwogKwlpbnQgcjsKICsKQEAgLTIyNDMsNyArMjI0NCw4IEBA IGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleGdzc3MuYyBiL2tleGdzc3MuYwogKwkJICAgICAgc3Ry dWN0IHNzaCAqc3NoKQogK3sKICsJR3NzY3R4dCAqZ3NzID0gc3NoLT5rZXgtPmdzczsKLSsJZ3Nz X2J1ZmZlcl9kZXNjIHJlY3ZfdG9rLCBzZW5kX3RvayA9IEdTU19DX0VNUFRZX0JVRkZFUjsKKysJ Z3NzX2J1ZmZlcl9kZXNjIHJlY3ZfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOworKwlnc3NfYnVm ZmVyX2Rlc2Mgc2VuZF90b2sgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiArCU9NX3VpbnQzMiByZXRf ZmxhZ3MgPSAwOwogKwlpbnQgcjsKICsKQEAgLTIzMzQsNyArMjMzNiw3IEBAIGRpZmYgLS1jb2xv ciAtcnVOcCBhL2tleGdzc3MuYyBiL2tleGdzc3MuYwogK3sKICsJc3RydWN0IGtleCAqa2V4ID0g c3NoLT5rZXg7CiArCUdzc2N0eHQgKmdzcyA9IGtleC0+Z3NzOwotKwlnc3NfYnVmZmVyX2Rlc2Mg bXNnX3RvazsKKysJZ3NzX2J1ZmZlcl9kZXNjIG1zZ190b2sgPSBHU1NfQ19FTVBUWV9CVUZGRVI7 CiArCXVfY2hhciBoYXNoW1NTSF9ESUdFU1RfTUFYX0xFTkdUSF07CiArCXNpemVfdCBoYXNobGVu OwogKwljb25zdCBCSUdOVU0gKnB1Yl9rZXksICpkaF9wLCAqZGhfZzsKQEAgLTI0NzUsMTAgKzI0 NzcsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NzLmMgYi9rZXhnc3NzLmMKICsJCWZh dGFsKCJHU1NfR0VYLCBiYWQgcGFyYW1ldGVyczogJWQgITwgJWQgITwgJWQiLCBtaW4sIG5iaXRz LCBtYXgpOwogKwogKwlrZXgtPmRoID0gbW1fY2hvb3NlX2RoKG1pbiwgbmJpdHMsIG1heCk7Ci0r CWlmIChrZXgtPmRoID09IE5VTEwpIHsKLSsJCXNzaHBrdF9kaXNjb25uZWN0KHNzaCwgIlByb3Rv Y29sIGVycm9yOiBubyBtYXRjaGluZyBncm91cCBmb3VuZCIpOwotKwkJZmF0YWwoIlByb3RvY29s IGVycm9yOiBubyBtYXRjaGluZyBncm91cCBmb3VuZCIpOwotKwl9CisrCWlmIChrZXgtPmRoID09 IE5VTEwpCisrCQlzc2hfcGFja2V0X2Rpc2Nvbm5lY3Qoc3NoLCAiUHJvdG9jb2wgZXJyb3I6IG5v IG1hdGNoaW5nIGdyb3VwIGZvdW5kIik7CiArCiArCURIX2dldDBfcHFnKGtleC0+ZGgsICZkaF9w LCBOVUxMLCAmZGhfZyk7CiArCWlmICgociA9IHNzaHBrdF9zdGFydChzc2gsIFNTSDJfTVNHX0tF WEdTU19HUk9VUCkpICE9IDAgfHwKQEAgLTI1MTAsNyArMjUxMCw4IEBAIGRpZmYgLS1jb2xvciAt cnVOcCBhL2tleGdzc3MuYyBiL2tleGdzc3MuYwogKwkJICAgICBzdHJ1Y3Qgc3NoICpzc2gpCiAr ewogKwlHc3NjdHh0ICpnc3MgPSBzc2gtPmtleC0+Z3NzOwotKwlnc3NfYnVmZmVyX2Rlc2MgcmVj dl90b2ssIHNlbmRfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOworKwlnc3NfYnVmZmVyX2Rlc2Mg cmVjdl90b2sgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CisrCWdzc19idWZmZXJfZGVzYyBzZW5kX3Rv ayA9IEdTU19DX0VNUFRZX0JVRkZFUjsKICsJT01fdWludDMyIHJldF9mbGFncyA9IDA7CiArCWlu dCByOwogKwpAQCAtMjUzNyw3ICsyNTM4LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3Nz cy5jIGIva2V4Z3Nzcy5jCiArCQkJIHN0cnVjdCBzc2ggKnNzaCkKICt7CiArCUdzc2N0eHQgKmdz cyA9IHNzaC0+a2V4LT5nc3M7Ci0rCWdzc19idWZmZXJfZGVzYyByZWN2X3Rvaywgc2VuZF90b2sg PSBHU1NfQ19FTVBUWV9CVUZGRVI7CisrCWdzc19idWZmZXJfZGVzYyByZWN2X3RvayA9IEdTU19D X0VNUFRZX0JVRkZFUjsKKysJZ3NzX2J1ZmZlcl9kZXNjIHNlbmRfdG9rID0gR1NTX0NfRU1QVFlf QlVGRkVSOwogKwlPTV91aW50MzIgcmV0X2ZsYWdzID0gMDsKICsJaW50IHI7CiArCkBAIC0yNTU0 LDggKzI1NTYsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NzLmMgYi9rZXhnc3NzLmMK ICsKICsjZW5kaWYgLyogZGVmaW5lZChHU1NBUEkpICYmIGRlZmluZWQoV0lUSF9PUEVOU1NMKSAq LwogZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4LmggYi9rZXguaAotLS0tIGEva2V4LmgJMjAyNC0w Ny0wMSAwNjozNjoyOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL2tleC5oCTIwMjQtMDktMTYgMTE6 NDY6MzQuNzEwOTQwMjI0ICswMjAwCistLS0gYS9rZXguaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAw MDAwMDAwMCArMDIwMAorKysrIGIva2V4LmgJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTM2ODg5OTcg KzAxMDAKIEBAIC0yOSw2ICsyOSwxMCBAQAogICNpbmNsdWRlICJtYWMuaCIKICAjaW5jbHVkZSAi Y3J5cHRvX2FwaS5oIgpAQCAtMjU2Nyw3ICsyNTY5LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEv a2V4LmggYi9rZXguaAogICNpZmRlZiBXSVRIX09QRU5TU0wKICAjIGluY2x1ZGUgPG9wZW5zc2wv Ym4uaD4KICAjIGluY2x1ZGUgPG9wZW5zc2wvZGguaD4KLUBAIC0xMDIsNiArMTA2LDE1IEBAIGVu dW0ga2V4X2V4Y2hhbmdlIHsKK0BAIC0xMDMsNiArMTA3LDE1IEBAIGVudW0ga2V4X2V4Y2hhbmdl IHsKICAJS0VYX0MyNTUxOV9TSEEyNTYsCiAgCUtFWF9LRU1fU05UUlVQNzYxWDI1NTE5X1NIQTUx MiwKICAJS0VYX0tFTV9NTEtFTTc2OFgyNTUxOV9TSEEyNTYsCkBAIC0yNTgzLDcgKzI1ODUsNyBA QCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXguaCBiL2tleC5oCiAgCUtFWF9NQVgKICB9OwogIAot QEAgLTE2NCw2ICsxNzcsMTMgQEAgc3RydWN0IGtleCB7CitAQCAtMTY1LDYgKzE3OCwxMyBAQCBz dHJ1Y3Qga2V4IHsKICAJdV9pbnQJZmxhZ3M7CiAgCWludAloYXNoX2FsZzsKICAJaW50CWVjX25p ZDsKQEAgLTI1OTcsNyArMjU5OSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC5oIGIva2V4 LmgKICAJY2hhcgkqZmFpbGVkX2Nob2ljZTsKICAJaW50CSgqdmVyaWZ5X2hvc3Rfa2V5KShzdHJ1 Y3Qgc3Noa2V5ICosIHN0cnVjdCBzc2ggKik7CiAgCXN0cnVjdCBzc2hrZXkgKigqbG9hZF9ob3N0 X3B1YmxpY19rZXkpKGludCwgaW50LCBzdHJ1Y3Qgc3NoICopOwotQEAgLTE4OSw4ICsyMDksMTAg QEAgaW50CSBrZXhfaGFzaF9mcm9tX25hbWUoY29uc3QgY2hhciAqKTsKK0BAIC0xOTEsOCArMjEx LDEwIEBAIGludAkga2V4X2hhc2hfZnJvbV9uYW1lKGNvbnN0IGNoYXIgKik7CiAgaW50CSBrZXhf bmlkX2Zyb21fbmFtZShjb25zdCBjaGFyICopOwogIGludAkga2V4X25hbWVzX3ZhbGlkKGNvbnN0 IGNoYXIgKik7CiAgY2hhcgkqa2V4X2FsZ19saXN0KGNoYXIpOwpAQCAtMjYwOCw3ICsyNjEwLDcg QEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4LmggYi9rZXguaAogIGludAkga2V4X2Fzc2VtYmxl X25hbWVzKGNoYXIgKiosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKICB2b2lkCSBrZXhf cHJvcG9zYWxfcG9wdWxhdGVfZW50cmllcyhzdHJ1Y3Qgc3NoICosIGNoYXIgKnByb3BbUFJPUE9T QUxfTUFYXSwKICAgICAgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwg Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwotQEAgLTIyNCw2ICsyNDYsMTIgQEAgaW50CSBr ZXhnZXhfY2xpZW50KHN0cnVjdCBzc2ggKik7CitAQCAtMjI2LDYgKzI0OCwxMiBAQCBpbnQJIGtl eGdleF9jbGllbnQoc3RydWN0IHNzaCAqKTsKICBpbnQJIGtleGdleF9zZXJ2ZXIoc3RydWN0IHNz aCAqKTsKICBpbnQJIGtleF9nZW5fY2xpZW50KHN0cnVjdCBzc2ggKik7CiAgaW50CSBrZXhfZ2Vu X3NlcnZlcihzdHJ1Y3Qgc3NoICopOwpAQCAtMjYyMSw3ICsyNjIzLDcgQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEva2V4LmggYi9rZXguaAogIAogIGludAkga2V4X2RoX2tleXBhaXIoc3RydWN0IGtl eCAqKTsKICBpbnQJIGtleF9kaF9lbmMoc3RydWN0IGtleCAqLCBjb25zdCBzdHJ1Y3Qgc3NoYnVm ICosIHN0cnVjdCBzc2hidWYgKiosCi1AQCAtMjU2LDYgKzI4NCwxMiBAQCBpbnQJIGtleGdleF9o YXNoKGludCwgY29uc3Qgc3RydWN0IHNzaGJ1CitAQCAtMjY0LDYgKzI5MiwxMiBAQCBpbnQJIGtl eGdleF9oYXNoKGludCwgY29uc3Qgc3RydWN0IHNzaGJ1CiAgICAgIGNvbnN0IEJJR05VTSAqLCBj b25zdCB1X2NoYXIgKiwgc2l6ZV90LAogICAgICB1X2NoYXIgKiwgc2l6ZV90ICopOwogIApAQCAt MjYzNSw4ICsyNjM3LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4LmggYi9rZXguaAogIAlf X2F0dHJpYnV0ZV9fKChfX2JvdW5kZWRfXyhfX21pbmJ5dGVzX18sIDEsIENVUlZFMjU1MTlfU0la RSkpKQogIAlfX2F0dHJpYnV0ZV9fKChfX2JvdW5kZWRfXyhfX21pbmJ5dGVzX18sIDIsIENVUlZF MjU1MTlfU0laRSkpKTsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC1uYW1lcy5jIGIva2V4LW5h bWVzLmMKLS0tLSBhL2tleC1uYW1lcy5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICsw MjAwCi0rKysgYi9rZXgtbmFtZXMuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5NDkzOTg4MyArMDIw MAorLS0tIGEva2V4LW5hbWVzLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAK KysrKyBiL2tleC1uYW1lcy5jCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTc5NjAzMDQ4ICswMTAwCiBA QCAtNDUsNiArNDUsMTAgQEAKICAjaW5jbHVkZSAic3NoZXJyLmgiCiAgI2luY2x1ZGUgInhtYWxs b2MuaCIKQEAgLTI2NDgsNyArMjY1MCw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC1uYW1l cy5jIGIva2V4LW5hbWVzLmMKICBzdHJ1Y3Qga2V4YWxnIHsKICAJY2hhciAqbmFtZTsKICAJdV9p bnQgdHlwZTsKLUBAIC04MywxNSArODcsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZXhhbGcg a2V4YWxnc1tdID0geworQEAgLTg5LDE1ICs5MywyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtl eGFsZyBrZXhhbGdzW10gPSB7CiAgI2VuZGlmIC8qIEhBVkVfRVZQX1NIQTI1NiB8fCAhV0lUSF9P UEVOU1NMICovCiAgCXsgTlVMTCwgMCwgLTEsIC0xfSwKICB9OwpAQCAtMjY4MCw3ICsyNjgyLDcg QEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4LW5hbWVzLmMgYi9rZXgtbmFtZXMuYwogIAkJaWYg KHJldCAhPSBOVUxMKQogIAkJCXJldFtybGVuKytdID0gc2VwOwogIAkJbmxlbiA9IHN0cmxlbihr LT5uYW1lKTsKLUBAIC0xMDYsNiArMTIzLDE4IEBAIGtleF9hbGdfbGlzdChjaGFyIHNlcCkKK0BA IC0xMTIsNiArMTI5LDE4IEBAIGtleF9hbGdfbGlzdChjaGFyIHNlcCkKICAJcmV0dXJuIHJldDsK ICB9CiAgCkBAIC0yNjk5LDcgKzI3MDEsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXgtbmFt ZXMuYyBiL2tleC1uYW1lcy5jCiAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZXhhbGcgKgogIGtleF9h bGdfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKQogIHsKLUBAIC0xMTUsNiArMTQ0LDEwIEBAIGtl eF9hbGdfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKQorQEAgLTEyMSw2ICsxNTAsMTAgQEAga2V4 X2FsZ19ieV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUpCiAgCQlpZiAoc3RyY21wKGstPm5hbWUsIG5h bWUpID09IDApCiAgCQkJcmV0dXJuIGs7CiAgCX0KQEAgLTI3MTAsNyArMjcxMiw3IEBAIGRpZmYg LS1jb2xvciAtcnVOcCBhL2tleC1uYW1lcy5jIGIva2V4LW5hbWVzLmMKICAJcmV0dXJuIE5VTEw7 CiAgfQogIAotQEAgLTMyOCwzICszNjEsMjYgQEAga2V4X2Fzc2VtYmxlX25hbWVzKGNoYXIgKips aXN0cCwgY29uc3QgYworQEAgLTMzNCwzICszNjcsMjYgQEAga2V4X2Fzc2VtYmxlX25hbWVzKGNo YXIgKipsaXN0cCwgY29uc3QgYwogIAlmcmVlKHJldCk7CiAgCXJldHVybiByOwogIH0KQEAgLTI3 MzgsOCArMjc0MCw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC1uYW1lcy5jIGIva2V4LW5h bWVzLmMKICsJcmV0dXJuIDE7CiArfQogZGlmZiAtLWNvbG9yIC1ydU5wIGEvTWFrZWZpbGUuaW4g Yi9NYWtlZmlsZS5pbgotLS0tIGEvTWFrZWZpbGUuaW4JMjAyNC0wOS0xNiAxMTo0NTo1Ni44Njgx MzM0NTQgKzAyMDAKLSsrKyBiL01ha2VmaWxlLmluCTIwMjQtMDktMTYgMTE6NDY6MzQuNjk1OTM5 OTA0ICswMjAwCistLS0gYS9NYWtlZmlsZS5pbgkyMDI2LTAzLTEzIDEyOjMyOjQ4LjQ3NTA4MTA3 NCArMDEwMAorKysrIGIvTWFrZWZpbGUuaW4JMjAyNi0wMy0xMyAxMjoxNjozOS45Nzk0NTMzMDcg KzAxMDAKIEBAIC0xMTQsNiArMTE0LDcgQEAgTElCU1NIX09CSlM9JHtMSUJPUEVOU1NIX09CSlN9 IFwKICAJa2V4Lm8ga2V4LW5hbWVzLm8ga2V4ZGgubyBrZXhnZXgubyBrZXhlY2RoLm8ga2V4YzI1 NTE5Lm8gXAogIAlrZXhnZXhjLm8ga2V4Z2V4cy5vIFwKQEAgLTI3NjcsOSArMjc2OSw5IEBAIGRp ZmYgLS1jb2xvciAtcnVOcCBhL01ha2VmaWxlLmluIGIvTWFrZWZpbGUuaW4KICByZWdyZXNzL21v ZHBpcGUkKEVYRUVYVCk6ICQoc3JjZGlyKS9yZWdyZXNzL21vZHBpcGUuYyAkKFJFR1JFU1NMSUJT KQogIAkkKENDKSAkKENGTEFHUykgJChDUFBGTEFHUykgLW8gJEAgJChzcmNkaXIpL3JlZ3Jlc3Mv bW9kcGlwZS5jIFwKIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3IuYwot LS0tIGEvbW9uaXRvci5jCTIwMjQtMDktMTYgMTE6NDU6NTYuODYxMTMzMzA1ICswMjAwCi0rKysg Yi9tb25pdG9yLmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTY5Mzk5MjYgKzAyMDAKLUBAIC0xNDMs NiArMTQzLDggQEAgaW50IG1tX2Fuc3dlcl9nc3Nfc2V0dXBfY3R4KHN0cnVjdCBzc2ggKgorLS0t IGEvbW9uaXRvci5jCTIwMjYtMDMtMTMgMTI6MzI6NDguNDY3MzExMDU4ICswMTAwCisrKysgYi9t b25pdG9yLmMJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTI0Nzc3OTkgKzAxMDAKK0BAIC0xNDQsNiAr MTQ0LDggQEAgaW50IG1tX2Fuc3dlcl9nc3Nfc2V0dXBfY3R4KHN0cnVjdCBzc2ggKgogIGludCBt bV9hbnN3ZXJfZ3NzX2FjY2VwdF9jdHgoc3RydWN0IHNzaCAqLCBpbnQsIHN0cnVjdCBzc2hidWYg Kik7CiAgaW50IG1tX2Fuc3dlcl9nc3NfdXNlcm9rKHN0cnVjdCBzc2ggKiwgaW50LCBzdHJ1Y3Qg c3NoYnVmICopOwogIGludCBtbV9hbnN3ZXJfZ3NzX2NoZWNrbWljKHN0cnVjdCBzc2ggKiwgaW50 LCBzdHJ1Y3Qgc3NoYnVmICopOwpAQCAtMjc3OCw3ICsyNzgwLDcgQEAgZGlmZiAtLWNvbG9yIC1y dU5wIGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCiAgI2VuZGlmCiAgCiAgI2lmZGVmIFNTSF9BVURJ VF9FVkVOVFMKLUBAIC0yMTksMTEgKzIyMSwxOCBAQCBzdHJ1Y3QgbW9uX3RhYmxlIG1vbl9kaXNw YXRjaF9wcm90bzIwW10KK0BAIC0yMjAsMTEgKzIyMiwxOCBAQCBzdHJ1Y3QgbW9uX3RhYmxlIG1v bl9kaXNwYXRjaF9wcm90bzIwW10KICAgICAge01PTklUT1JfUkVRX0dTU1NURVAsIDAsIG1tX2Fu c3dlcl9nc3NfYWNjZXB0X2N0eH0sCiAgICAgIHtNT05JVE9SX1JFUV9HU1NVU0VST0ssIE1PTl9P TkNFfE1PTl9BVVRIREVDSURFLCBtbV9hbnN3ZXJfZ3NzX3VzZXJva30sCiAgICAgIHtNT05JVE9S X1JFUV9HU1NDSEVDS01JQywgTU9OX09OQ0UsIG1tX2Fuc3dlcl9nc3NfY2hlY2ttaWN9LApAQCAt Mjc5Nyw3ICsyNzk5LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRv ci5jCiAgI2lmZGVmIFdJVEhfT1BFTlNTTAogICAgICB7TU9OSVRPUl9SRVFfTU9EVUxJLCAwLCBt bV9hbnN3ZXJfbW9kdWxpfSwKICAjZW5kaWYKLUBAIC0yOTIsNiArMzAxLDEwIEBAIG1vbml0b3Jf Y2hpbGRfcHJlYXV0aChzdHJ1Y3Qgc3NoICpzc2gsIHMKK0BAIC0yOTMsNiArMzAyLDEwIEBAIG1v bml0b3JfY2hpbGRfcHJlYXV0aChzdHJ1Y3Qgc3NoICpzc2gsIHMKICAJLyogUGVybWl0IHJlcXVl c3RzIGZvciBtb2R1bGkgYW5kIHNpZ25hdHVyZXMgKi8KICAJbW9uaXRvcl9wZXJtaXQobW9uX2Rp c3BhdGNoLCBNT05JVE9SX1JFUV9NT0RVTEksIDEpOwogIAltb25pdG9yX3Blcm1pdChtb25fZGlz cGF0Y2gsIE1PTklUT1JfUkVRX1NJR04sIDEpOwpAQCAtMjgwOCw3ICsyODEwLDcgQEAgZGlmZiAt LWNvbG9yIC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCiAgCiAgCS8qIFRoZSBmaXJzdCBm ZXcgcmVxdWVzdHMgZG8gbm90IHJlcXVpcmUgYXN5bmNocm9ub3VzIGFjY2VzcyAqLwogIAl3aGls ZSAoIWF1dGhlbnRpY2F0ZWQpIHsKLUBAIC0zNDQsOCArMzU3LDE1IEBAIG1vbml0b3JfY2hpbGRf cHJlYXV0aChzdHJ1Y3Qgc3NoICpzc2gsIHMKK0BAIC0zNDUsOCArMzU4LDE1IEBAIG1vbml0b3Jf Y2hpbGRfcHJlYXV0aChzdHJ1Y3Qgc3NoICpzc2gsIHMKICAJCWlmIChlbnQtPmZsYWdzICYgKE1P Tl9BVVRIREVDSURFfE1PTl9BTE9HKSkgewogIAkJCWF1dGhfbG9nKHNzaCwgYXV0aGVudGljYXRl ZCwgcGFydGlhbCwKICAJCQkgICAgYXV0aF9tZXRob2QsIGF1dGhfc3VibWV0aG9kKTsKQEAgLTI4 MjUsNyArMjgyNyw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3Iu YwogIAkJCWlmIChhdXRoZW50aWNhdGVkIHx8IHBhcnRpYWwpIHsKICAJCQkJYXV0aDJfdXBkYXRl X3Nlc3Npb25faW5mbyhhdXRoY3R4dCwKICAJCQkJICAgIGF1dGhfbWV0aG9kLCBhdXRoX3N1Ym1l dGhvZCk7Ci1AQCAtNDEzLDYgKzQzMywxMCBAQCBtb25pdG9yX2NoaWxkX3Bvc3RhdXRoKHN0cnVj dCBzc2ggKnNzaCwKK0BAIC00MTQsNiArNDM0LDEwIEBAIG1vbml0b3JfY2hpbGRfcG9zdGF1dGgo c3RydWN0IHNzaCAqc3NoLAogIAltb25pdG9yX3Blcm1pdChtb25fZGlzcGF0Y2gsIE1PTklUT1Jf UkVRX01PRFVMSSwgMSk7CiAgCW1vbml0b3JfcGVybWl0KG1vbl9kaXNwYXRjaCwgTU9OSVRPUl9S RVFfU0lHTiwgMSk7CiAgCW1vbml0b3JfcGVybWl0KG1vbl9kaXNwYXRjaCwgTU9OSVRPUl9SRVFf VEVSTSwgMSk7CkBAIC0yODM2LDcgKzI4MzgsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25p dG9yLmMgYi9tb25pdG9yLmMKICAKICAJaWYgKGF1dGhfb3B0cy0+cGVybWl0X3B0eV9mbGFnKSB7 CiAgCQltb25pdG9yX3Blcm1pdChtb25fZGlzcGF0Y2gsIE1PTklUT1JfUkVRX1BUWSwgMSk7Ci1A QCAtMTc5Myw2ICsxODE3LDE3IEBAIG1vbml0b3JfYXBwbHlfa2V5c3RhdGUoc3RydWN0IHNzaCAq c3NoLAorQEAgLTE4MDMsNiArMTgyNywxNyBAQCBtb25pdG9yX2FwcGx5X2tleXN0YXRlKHN0cnVj dCBzc2ggKnNzaCwKICAjIGlmZGVmIE9QRU5TU0xfSEFTX0VDQwogIAlrZXgtPmtleFtLRVhfRUNE SF9TSEEyXSA9IGtleF9nZW5fc2VydmVyOwogICMgZW5kaWYKQEAgLTI4NTQsNyArMjg1Niw3IEBA IGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3IuYwogICNlbmRpZiAvKiBX SVRIX09QRU5TU0wgKi8KICAJa2V4LT5rZXhbS0VYX0MyNTUxOV9TSEEyNTZdID0ga2V4X2dlbl9z ZXJ2ZXI7CiAgCWtleC0+a2V4W0tFWF9LRU1fU05UUlVQNzYxWDI1NTE5X1NIQTUxMl0gPSBrZXhf Z2VuX3NlcnZlcjsKLUBAIC0xODg1LDggKzE5MjAsOCBAQCBtbV9hbnN3ZXJfZ3NzX3NldHVwX2N0 eChzdHJ1Y3Qgc3NoICpzc2gsCitAQCAtMTg5Niw4ICsxOTMxLDggQEAgbW1fYW5zd2VyX2dzc19z ZXR1cF9jdHgoc3RydWN0IHNzaCAqc3NoLAogIAl1X2NoYXIgKnA7CiAgCWludCByOwogIApAQCAt Mjg2NSw3ICsyODY3LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRv ci5jCiAgCiAgCWlmICgociA9IHNzaGJ1Zl9nZXRfc3RyaW5nKG0sICZwLCAmbGVuKSkgIT0gMCkK ICAJCWZhdGFsX2ZyKHIsICJwYXJzZSIpOwotQEAgLTE5MTgsOCArMTk1Myw4IEBAIG1tX2Fuc3dl cl9nc3NfYWNjZXB0X2N0eChzdHJ1Y3Qgc3NoICpzc2gKK0BAIC0xOTI5LDggKzE5NjQsOCBAQCBt bV9hbnN3ZXJfZ3NzX2FjY2VwdF9jdHgoc3RydWN0IHNzaCAqc3NoCiAgCU9NX3VpbnQzMiBmbGFn cyA9IDA7IC8qIEdTSSBuZWVkcyB0aGlzICovCiAgCWludCByOwogIApAQCAtMjg3Niw3ICsyODc4 LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCiAgCiAgCWlm ICgociA9IHNzaF9nc3NhcGlfZ2V0X2J1ZmZlcl9kZXNjKG0sICZpbikpICE9IDApCiAgCQlmYXRh bF9mcihyLCAic3NoX2dzc2FwaV9nZXRfYnVmZmVyX2Rlc2MiKTsKLUBAIC0xOTM5LDYgKzE5NzQs NyBAQCBtbV9hbnN3ZXJfZ3NzX2FjY2VwdF9jdHgoc3RydWN0IHNzaCAqc3NoCitAQCAtMTk1MCw2 ICsxOTg1LDcgQEAgbW1fYW5zd2VyX2dzc19hY2NlcHRfY3R4KHN0cnVjdCBzc2ggKnNzaAogIAkJ bW9uaXRvcl9wZXJtaXQobW9uX2Rpc3BhdGNoLCBNT05JVE9SX1JFUV9HU1NTVEVQLCAwKTsKICAJ CW1vbml0b3JfcGVybWl0KG1vbl9kaXNwYXRjaCwgTU9OSVRPUl9SRVFfR1NTVVNFUk9LLCAxKTsK ICAJCW1vbml0b3JfcGVybWl0KG1vbl9kaXNwYXRjaCwgTU9OSVRPUl9SRVFfR1NTQ0hFQ0tNSUMs IDEpOwpAQCAtMjg4NCw3ICsyODg2LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5j IGIvbW9uaXRvci5jCiAgCX0KICAJcmV0dXJuICgwKTsKICB9Ci1AQCAtMTk1MCw4ICsxOTg2LDgg QEAgbW1fYW5zd2VyX2dzc19jaGVja21pYyhzdHJ1Y3Qgc3NoICpzc2gsCitAQCAtMTk2MSw4ICsx OTk3LDggQEAgbW1fYW5zd2VyX2dzc19jaGVja21pYyhzdHJ1Y3Qgc3NoICpzc2gsCiAgCU9NX3Vp bnQzMiByZXQ7CiAgCWludCByOwogIApAQCAtMjg5NSw3ICsyODk3LDcgQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCiAgCiAgCWlmICgociA9IHNzaF9nc3NhcGlf Z2V0X2J1ZmZlcl9kZXNjKG0sICZnc3NidWYpKSAhPSAwIHx8CiAgCSAgICAociA9IHNzaF9nc3Nh cGlfZ2V0X2J1ZmZlcl9kZXNjKG0sICZtaWMpKSAhPSAwKQotQEAgLTE5NzcsMTMgKzIwMTMsMTcg QEAgbW1fYW5zd2VyX2dzc19jaGVja21pYyhzdHJ1Y3Qgc3NoICpzc2gsCitAQCAtMTk4OCwxMyAr MjAyNCwxNyBAQCBtbV9hbnN3ZXJfZ3NzX2NoZWNrbWljKHN0cnVjdCBzc2ggKnNzaCwKICBpbnQK ICBtbV9hbnN3ZXJfZ3NzX3VzZXJvayhzdHJ1Y3Qgc3NoICpzc2gsIGludCBzb2NrLCBzdHJ1Y3Qg c3NoYnVmICptKQogIHsKQEAgLTI5MTcsNyArMjkxOSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBh L21vbml0b3IuYyBiL21vbml0b3IuYwogIAogIAlzc2hidWZfcmVzZXQobSk7CiAgCWlmICgociA9 IHNzaGJ1Zl9wdXRfdTMyKG0sIGF1dGhlbnRpY2F0ZWQpKSAhPSAwKQotQEAgLTE5OTIsNyArMjAz MiwxMSBAQCBtbV9hbnN3ZXJfZ3NzX3VzZXJvayhzdHJ1Y3Qgc3NoICpzc2gsIGluCitAQCAtMjAw Myw3ICsyMDQzLDExIEBAIG1tX2Fuc3dlcl9nc3NfdXNlcm9rKHN0cnVjdCBzc2ggKnNzaCwgaW4K ICAJZGVidWczX2YoInNlbmRpbmcgcmVzdWx0ICVkIiwgYXV0aGVudGljYXRlZCk7CiAgCW1tX3Jl cXVlc3Rfc2VuZChzb2NrLCBNT05JVE9SX0FOU19HU1NVU0VST0ssIG0pOwogIApAQCAtMjkzMCw3 ICsyOTMyLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCiAg CiAgCWlmICgoZGlzcGxheW5hbWUgPSBzc2hfZ3NzYXBpX2Rpc3BsYXluYW1lKCkpICE9IE5VTEwp CiAgCQlhdXRoMl9yZWNvcmRfaW5mbyhhdXRoY3R4dCwgIiVzIiwgZGlzcGxheW5hbWUpOwotQEAg LTIwMDAsNSArMjA0NCw4NCBAQCBtbV9hbnN3ZXJfZ3NzX3VzZXJvayhzdHJ1Y3Qgc3NoICpzc2gs IGluCitAQCAtMjAxMSw1ICsyMDU1LDg0IEBAIG1tX2Fuc3dlcl9nc3NfdXNlcm9rKHN0cnVjdCBz c2ggKnNzaCwgaW4KICAJLyogTW9uaXRvciBsb29wIHdpbGwgdGVybWluYXRlIGlmIGF1dGhlbnRp Y2F0ZWQgKi8KICAJcmV0dXJuIChhdXRoZW50aWNhdGVkKTsKICB9CkBAIC0zMDE2LDggKzMwMTgs OCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yLmMgYi9tb25pdG9yLmMKICAjZW5kaWYg LyogR1NTQVBJICovCiAgCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yLmggYi9tb25pdG9y LmgKLS0tLSBhL21vbml0b3IuaAkyMDI0LTA5LTE2IDExOjQ1OjU2Ljg2MTEzMzMwNSArMDIwMAot KysrIGIvbW9uaXRvci5oCTIwMjQtMDktMTYgMTE6NDY6MzQuNjk2OTM5OTI2ICswMjAwCistLS0g YS9tb25pdG9yLmgJMjAyNi0wMy0xMyAxMjozMjo0OC40Njc4NTM4NDUgKzAxMDAKKysrKyBiL21v bml0b3IuaAkyMDI2LTAzLTEzIDEyOjE2OjQwLjAxMTkyOTAyOSArMDEwMAogQEAgLTY3LDYgKzY3 LDggQEAgZW51bSBtb25pdG9yX3JlcXR5cGUgewogIAlNT05JVE9SX1JFUV9QQU1fRlJFRV9DVFgg PSAxMTAsIE1PTklUT1JfQU5TX1BBTV9GUkVFX0NUWCA9IDExMSwKICAJTU9OSVRPUl9SRVFfQVVE SVRfRVZFTlQgPSAxMTIsIE1PTklUT1JfUkVRX0FVRElUX0NPTU1BTkQgPSAxMTMsCkBAIC0zMDI4 LDggKzMwMzAsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yLmggYi9tb25pdG9yLmgK ICAKICBzdHJ1Y3Qgc3NoOwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvcl93cmFwLmMgYi9t b25pdG9yX3dyYXAuYwotLS0tIGEvbW9uaXRvcl93cmFwLmMJMjAyNC0wOS0xNiAxMTo0NTo1Ni44 NjIxMzMzMjYgKzAyMDAKLSsrKyBiL21vbml0b3Jfd3JhcC5jCTIwMjQtMDktMTYgMTE6NDY6MzQu Njk3OTM5OTQ3ICswMjAwCistLS0gYS9tb25pdG9yX3dyYXAuYwkyMDI2LTAzLTEzIDEyOjMyOjQ4 LjQ2ODE0ODMwNSArMDEwMAorKysrIGIvbW9uaXRvcl93cmFwLmMJMjAyNi0wMy0xMyAxMjoxNjo0 MC4wMTE5NjkyNzIgKzAxMDAKIEBAIC0xMDc1LDEzICsxMDc1LDE1IEBAIG1tX3NzaF9nc3NhcGlf Y2hlY2ttaWMoR3NzY3R4dCAqY3R4LCBnc3MKICB9CiAgCkBAIC0zMTA4LDggKzMxMTAsOCBAQCBk aWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yX3dyYXAuYyBiL21vbml0b3Jfd3JhcC5jCiAgCiAg LyoKIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3Jfd3JhcC5oIGIvbW9uaXRvcl93cmFwLmgK LS0tLSBhL21vbml0b3Jfd3JhcC5oCTIwMjQtMDktMTYgMTE6NDU6NTYuODYyMTMzMzI2ICswMjAw Ci0rKysgYi9tb25pdG9yX3dyYXAuaAkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5NzkzOTk0NyArMDIw MAorLS0tIGEvbW9uaXRvcl93cmFwLmgJMjAyNi0wMy0xMyAxMjozMjo0OC40Njg0NDY5NDAgKzAx MDAKKysrKyBiL21vbml0b3Jfd3JhcC5oCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEyMDE1ODUxICsw MTAwCiBAQCAtNjcsOCArNjcsMTAgQEAgdm9pZCBtbV9kZWNvZGVfYWN0aXZhdGVfc2VydmVyX29w dGlvbnMocwogIE9NX3VpbnQzMiBtbV9zc2hfZ3NzYXBpX3NlcnZlcl9jdHgoR3NzY3R4dCAqKiwg Z3NzX09JRCk7CiAgT01fdWludDMyIG1tX3NzaF9nc3NhcGlfYWNjZXB0X2N0eChHc3NjdHh0ICos CkBAIC0zMTIzLDggKzMxMjUsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yX3dyYXAu aCBiL21vbml0b3Jfd3JhcC5oCiAgCiAgI2lmZGVmIFVTRV9QQU0KIGRpZmYgLS1jb2xvciAtcnVO cCBhL3JlYWRjb25mLmMgYi9yZWFkY29uZi5jCi0tLS0gYS9yZWFkY29uZi5jCTIwMjQtMDctMDEg MDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9yZWFkY29uZi5jCTIwMjQtMDktMTYgMTE6 NDY6MzQuNjk5OTM5OTkwICswMjAwCistLS0gYS9yZWFkY29uZi5jCTIwMjQtMDktMjAgMDA6MjA6 NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9yZWFkY29uZi5jCTIwMjYtMDMtMTMgMTI6MTY6NDAu MDEyMDU4MTM3ICswMTAwCiBAQCAtNzAsNiArNzAsNyBAQAogICNpbmNsdWRlICJ1aWRzd2FwLmgi CiAgI2luY2x1ZGUgIm15cHJvcG9zYWwuaCIKQEAgLTMxNjUsNyArMzE2Nyw3IEBAIGRpZmYgLS1j b2xvciAtcnVOcCBhL3JlYWRjb25mLmMgYi9yZWFkY29uZi5jCiAgI2VuZGlmCiAgI2lmZGVmIEVO QUJMRV9QS0NTMTEKICAJeyAicGtjczExcHJvdmlkZXIiLCBvUEtDUzExUHJvdmlkZXIgfSwKLUBA IC0xMjI3LDEwICsxMjQyLDQyIEBAIHBhcnNlX3RpbWU6CitAQCAtMTI1NiwxMCArMTI3MSw0MiBA QCBwYXJzZV90aW1lOgogIAkJaW50cHRyID0gJm9wdGlvbnMtPmdzc19hdXRoZW50aWNhdGlvbjsK ICAJCWdvdG8gcGFyc2VfZmxhZzsKICAKQEAgLTMyMDgsNyArMzIxMCw3IEBAIGRpZmYgLS1jb2xv ciAtcnVOcCBhL3JlYWRjb25mLmMgYi9yZWFkY29uZi5jCiAgCWNhc2Ugb0JhdGNoTW9kZToKICAJ CWludHB0ciA9ICZvcHRpb25zLT5iYXRjaF9tb2RlOwogIAkJZ290byBwYXJzZV9mbGFnOwotQEAg LTI1NDIsNyArMjU4OSwxMyBAQCBpbml0aWFsaXplX29wdGlvbnMoT3B0aW9ucyAqIG9wdGlvbnMp CitAQCAtMjU3Niw3ICsyNjIzLDEzIEBAIGluaXRpYWxpemVfb3B0aW9ucyhPcHRpb25zICogb3B0 aW9ucykKICAJb3B0aW9ucy0+ZndkX29wdHMuc3RyZWFtbG9jYWxfYmluZF91bmxpbmsgPSAtMTsK ICAJb3B0aW9ucy0+cHVia2V5X2F1dGhlbnRpY2F0aW9uID0gLTE7CiAgCW9wdGlvbnMtPmdzc19h dXRoZW50aWNhdGlvbiA9IC0xOwpAQCAtMzIyMiw3ICszMjI0LDcgQEAgZGlmZiAtLWNvbG9yIC1y dU5wIGEvcmVhZGNvbmYuYyBiL3JlYWRjb25mLmMKICAJb3B0aW9ucy0+cGFzc3dvcmRfYXV0aGVu dGljYXRpb24gPSAtMTsKICAJb3B0aW9ucy0+a2JkX2ludGVyYWN0aXZlX2F1dGhlbnRpY2F0aW9u ID0gLTE7CiAgCW9wdGlvbnMtPmtiZF9pbnRlcmFjdGl2ZV9kZXZpY2VzID0gTlVMTDsKLUBAIC0y NzA1LDggKzI3NTgsMTggQEAgZmlsbF9kZWZhdWx0X29wdGlvbnMoT3B0aW9ucyAqIG9wdGlvbnMp CitAQCAtMjczOSw4ICsyNzkyLDE4IEBAIGZpbGxfZGVmYXVsdF9vcHRpb25zKE9wdGlvbnMgKiBv cHRpb25zKQogIAkJb3B0aW9ucy0+cHVia2V5X2F1dGhlbnRpY2F0aW9uID0gU1NIX1BVQktFWV9B VVRIX0FMTDsKICAJaWYgKG9wdGlvbnMtPmdzc19hdXRoZW50aWNhdGlvbiA9PSAtMSkKICAJCW9w dGlvbnMtPmdzc19hdXRoZW50aWNhdGlvbiA9IDA7CkBAIC0zMjQxLDcgKzMyNDMsNyBAQCBkaWZm IC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5jIGIvcmVhZGNvbmYuYwogIAlpZiAob3B0aW9ucy0+ cGFzc3dvcmRfYXV0aGVudGljYXRpb24gPT0gLTEpCiAgCQlvcHRpb25zLT5wYXNzd29yZF9hdXRo ZW50aWNhdGlvbiA9IDE7CiAgCWlmIChvcHRpb25zLT5rYmRfaW50ZXJhY3RpdmVfYXV0aGVudGlj YXRpb24gPT0gLTEpCi1AQCAtMzUzMyw3ICszNTk2LDE0IEBAIGR1bXBfY2xpZW50X2NvbmZpZyhP cHRpb25zICpvLCBjb25zdCBjaGEKK0BAIC0zNTY3LDcgKzM2MzAsMTQgQEAgZHVtcF9jbGllbnRf Y29uZmlnKE9wdGlvbnMgKm8sIGNvbnN0IGNoYQogIAlkdW1wX2NmZ19mbXRpbnQob0dhdGV3YXlQ b3J0cywgby0+ZndkX29wdHMuZ2F0ZXdheV9wb3J0cyk7CiAgI2lmZGVmIEdTU0FQSQogIAlkdW1w X2NmZ19mbXRpbnQob0dzc0F1dGhlbnRpY2F0aW9uLCBvLT5nc3NfYXV0aGVudGljYXRpb24pOwpA QCAtMzI1Nyw4ICszMjU5LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvcmVhZGNvbmYuYyBiL3Jl YWRjb25mLmMKICAJZHVtcF9jZmdfZm10aW50KG9IYXNoS25vd25Ib3N0cywgby0+aGFzaF9rbm93 bl9ob3N0cyk7CiAgCWR1bXBfY2ZnX2ZtdGludChvSG9zdGJhc2VkQXV0aGVudGljYXRpb24sIG8t Pmhvc3RiYXNlZF9hdXRoZW50aWNhdGlvbik7CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9yZWFkY29u Zi5oIGIvcmVhZGNvbmYuaAotLS0tIGEvcmVhZGNvbmYuaAkyMDI0LTA3LTAxIDA2OjM2OjI4LjAw MDAwMDAwMCArMDIwMAotKysrIGIvcmVhZGNvbmYuaAkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5OTkz OTk5MCArMDIwMAorLS0tIGEvcmVhZGNvbmYuaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAw MCArMDIwMAorKysrIGIvcmVhZGNvbmYuaAkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk5MTE0MDQzMCAr MDEwMAogQEAgLTQwLDcgKzQwLDEzIEBAIHR5cGVkZWYgc3RydWN0IHsKICAJaW50ICAgICBwdWJr ZXlfYXV0aGVudGljYXRpb247CS8qIFRyeSBzc2gyIHB1YmtleSBhdXRoZW50aWNhdGlvbi4gKi8K ICAJaW50ICAgICBob3N0YmFzZWRfYXV0aGVudGljYXRpb247CS8qIHNzaDIncyByaG9zdHNfcnNh ICovCkBAIC0zMjc0LDggKzMyNzYsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5o IGIvcmVhZGNvbmYuaAogIAkJCQkJCSAqIGF1dGhlbnRpY2F0aW9uLiAqLwogIAlpbnQgICAgIGti ZF9pbnRlcmFjdGl2ZV9hdXRoZW50aWNhdGlvbjsgLyogVHJ5IGtleWJvYXJkLWludGVyYWN0aXZl IGF1dGguICovCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwot LS0tIGEvc2VydmNvbmYuYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysr IGIvc2VydmNvbmYuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjcwMDk0MDAxMSArMDIwMAorLS0tIGEv c2VydmNvbmYuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvc2Vy dmNvbmYuYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk5MTE4NTUyOCArMDEwMAogQEAgLTY4LDYgKzY4 LDcgQEAKICAjaW5jbHVkZSAiYXV0aC5oIgogICNpbmNsdWRlICJteXByb3Bvc2FsLmgiCkBAIC0z Mjk2LDcgKzMyOTgsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNv bmYuYwogIAlvcHRpb25zLT5wYXNzd29yZF9hdXRoZW50aWNhdGlvbiA9IC0xOwogIAlvcHRpb25z LT5rYmRfaW50ZXJhY3RpdmVfYXV0aGVudGljYXRpb24gPSAtMTsKICAJb3B0aW9ucy0+cGVybWl0 X2VtcHR5X3Bhc3N3ZCA9IC0xOwotQEAgLTM3NiwxMCArMzgwLDE4IEBAIGZpbGxfZGVmYXVsdF9z ZXJ2ZXJfb3B0aW9ucyhTZXJ2ZXJPcHRpb24KK0BAIC0zNzgsMTAgKzM4MiwxOCBAQCBmaWxsX2Rl ZmF1bHRfc2VydmVyX29wdGlvbnMoU2VydmVyT3B0aW9uCiAgCQlvcHRpb25zLT5rZXJiZXJvc19n ZXRfYWZzX3Rva2VuID0gMDsKICAJaWYgKG9wdGlvbnMtPmdzc19hdXRoZW50aWNhdGlvbiA9PSAt MSkKICAJCW9wdGlvbnMtPmdzc19hdXRoZW50aWNhdGlvbiA9IDA7CkBAIC0zMzE1LDcgKzMzMTcs NyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwogIAlpZiAo b3B0aW9ucy0+cGFzc3dvcmRfYXV0aGVudGljYXRpb24gPT0gLTEpCiAgCQlvcHRpb25zLT5wYXNz d29yZF9hdXRoZW50aWNhdGlvbiA9IDE7CiAgCWlmIChvcHRpb25zLT5rYmRfaW50ZXJhY3RpdmVf YXV0aGVudGljYXRpb24gPT0gLTEpCi1AQCAtNTU4LDYgKzU3MCw3IEBAIHR5cGVkZWYgZW51bSB7 CitAQCAtNTY0LDYgKzU3Niw3IEBAIHR5cGVkZWYgZW51bSB7CiAgCXNQZXJTb3VyY2VQZW5hbHRp ZXMsIHNQZXJTb3VyY2VQZW5hbHR5RXhlbXB0TGlzdCwKICAJc0NsaWVudEFsaXZlSW50ZXJ2YWws IHNDbGllbnRBbGl2ZUNvdW50TWF4LCBzQXV0aG9yaXplZEtleXNGaWxlLAogIAlzR3NzQXV0aGVu dGljYXRpb24sIHNHc3NDbGVhbnVwQ3JlZHMsIHNHc3NTdHJpY3RBY2NlcHRvciwKQEAgLTMzMjMs NyArMzMyNSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NlcnZjb25mLmMgYi9zZXJ2Y29uZi5j CiAgCXNBY2NlcHRFbnYsIHNTZXRFbnYsIHNQZXJtaXRUdW5uZWwsCiAgCXNNYXRjaCwgc1Blcm1p dE9wZW4sIHNQZXJtaXRMaXN0ZW4sIHNGb3JjZUNvbW1hbmQsIHNDaHJvb3REaXJlY3RvcnksCiAg CXNVc2VQcml2aWxlZ2VTZXBhcmF0aW9uLCBzQWxsb3dBZ2VudEZvcndhcmRpbmcsCi1AQCAtNjQz LDEyICs2NTYsMjIgQEAgc3RhdGljIHN0cnVjdCB7CitAQCAtNjQ5LDEyICs2NjIsMjIgQEAgc3Rh dGljIHN0cnVjdCB7CiAgI2lmZGVmIEdTU0FQSQogIAl7ICJnc3NhcGlhdXRoZW50aWNhdGlvbiIs IHNHc3NBdXRoZW50aWNhdGlvbiwgU1NIQ0ZHX0FMTCB9LAogIAl7ICJnc3NhcGljbGVhbnVwY3Jl ZGVudGlhbHMiLCBzR3NzQ2xlYW51cENyZWRzLCBTU0hDRkdfR0xPQkFMIH0sCkBAIC0zMzQ2LDcg KzMzNDgsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwog IAl7ICJwYXNzd29yZGF1dGhlbnRpY2F0aW9uIiwgc1Bhc3N3b3JkQXV0aGVudGljYXRpb24sIFNT SENGR19BTEwgfSwKICAJeyAia2JkaW50ZXJhY3RpdmVhdXRoZW50aWNhdGlvbiIsIHNLYmRJbnRl cmFjdGl2ZUF1dGhlbnRpY2F0aW9uLCBTU0hDRkdfQUxMIH0sCiAgCXsgImNoYWxsZW5nZXJlc3Bv bnNlYXV0aGVudGljYXRpb24iLCBzS2JkSW50ZXJhY3RpdmVBdXRoZW50aWNhdGlvbiwgU1NIQ0ZH X0FMTCB9LCAvKiBhbGlhcyAqLwotQEAgLTE1ODUsNiArMTYwOCwxMCBAQCBwcm9jZXNzX3NlcnZl cl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPCitAQCAtMTYwNSw2ICsxNjI4LDEwIEBAIHByb2Nl c3Nfc2VydmVyX2NvbmZpZ19saW5lX2RlcHRoKFNlcnZlck8KICAJCWludHB0ciA9ICZvcHRpb25z LT5nc3NfYXV0aGVudGljYXRpb247CiAgCQlnb3RvIHBhcnNlX2ZsYWc7CiAgCkBAIC0zMzU3LDcg KzMzNTksNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwog IAljYXNlIHNHc3NDbGVhbnVwQ3JlZHM6CiAgCQlpbnRwdHIgPSAmb3B0aW9ucy0+Z3NzX2NsZWFu dXBfY3JlZHM7CiAgCQlnb3RvIHBhcnNlX2ZsYWc7Ci1AQCAtMTU5Myw2ICsxNjIwLDIyIEBAIHBy b2Nlc3Nfc2VydmVyX2NvbmZpZ19saW5lX2RlcHRoKFNlcnZlck8KK0BAIC0xNjEzLDYgKzE2NDAs MjIgQEAgcHJvY2Vzc19zZXJ2ZXJfY29uZmlnX2xpbmVfZGVwdGgoU2VydmVyTwogIAkJaW50cHRy ID0gJm9wdGlvbnMtPmdzc19zdHJpY3RfYWNjZXB0b3I7CiAgCQlnb3RvIHBhcnNlX2ZsYWc7CiAg CkBAIC0zMzgwLDcgKzMzODIsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIv c2VydmNvbmYuYwogIAljYXNlIHNQYXNzd29yZEF1dGhlbnRpY2F0aW9uOgogIAkJaW50cHRyID0g Jm9wdGlvbnMtPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uOwogIAkJZ290byBwYXJzZV9mbGFnOwot QEAgLTMxNzgsNiArMzIyMSwxMCBAQCBkdW1wX2NvbmZpZyhTZXJ2ZXJPcHRpb25zICpvKQorQEAg LTMyMDQsNiArMzI0NywxMCBAQCBkdW1wX2NvbmZpZyhTZXJ2ZXJPcHRpb25zICpvKQogICNpZmRl ZiBHU1NBUEkKICAJZHVtcF9jZmdfZm10aW50KHNHc3NBdXRoZW50aWNhdGlvbiwgby0+Z3NzX2F1 dGhlbnRpY2F0aW9uKTsKICAJZHVtcF9jZmdfZm10aW50KHNHc3NDbGVhbnVwQ3JlZHMsIG8tPmdz c19jbGVhbnVwX2NyZWRzKTsKQEAgLTMzOTIsOSArMzM5NCw5IEBAIGRpZmYgLS1jb2xvciAtcnVO cCBhL3NlcnZjb25mLmMgYi9zZXJ2Y29uZi5jCiAgCWR1bXBfY2ZnX2ZtdGludChzUGFzc3dvcmRB dXRoZW50aWNhdGlvbiwgby0+cGFzc3dvcmRfYXV0aGVudGljYXRpb24pOwogIAlkdW1wX2NmZ19m bXRpbnQoc0tiZEludGVyYWN0aXZlQXV0aGVudGljYXRpb24sCiBkaWZmIC0tY29sb3IgLXJ1TnAg YS9zZXJ2Y29uZi5oIGIvc2VydmNvbmYuaAotLS0tIGEvc2VydmNvbmYuaAkyMDI0LTA3LTAxIDA2 OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysrIGIvc2VydmNvbmYuaAkyMDI0LTA5LTE2IDExOjQ2 OjM0LjcwMDk0MDAxMSArMDIwMAotQEAgLTE0OSw4ICsxNDksMTEgQEAgdHlwZWRlZiBzdHJ1Y3Qg eworLS0tIGEvc2VydmNvbmYuaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAor KysrIGIvc2VydmNvbmYuaAkyMDI2LTAzLTEzIDEyOjE2OjQwLjAwNDk5MzUzNCArMDEwMAorQEAg LTE1MCw4ICsxNTAsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgewogIAlpbnQgICAgIGtlcmJlcm9zX2dl dF9hZnNfdG9rZW47CQkvKiBJZiB0cnVlLCB0cnkgdG8gZ2V0IEFGUyB0b2tlbiBpZgogIAkJCQkJ CSAqIGF1dGhlbnRpY2F0ZWQgd2l0aCBLZXJiZXJvcy4gKi8KICAJaW50ICAgICBnc3NfYXV0aGVu dGljYXRpb247CS8qIElmIHRydWUsIHBlcm1pdCBHU1NBUEkgYXV0aGVudGljYXRpb24gKi8KQEAg LTM0MDcsOCArMzQwOSw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NlcnZjb25mLmggYi9zZXJ2 Y29uZi5oCiAgCQkJCQkJICogYXV0aGVudGljYXRpb24uICovCiAgCWludCAgICAga2JkX2ludGVy YWN0aXZlX2F1dGhlbnRpY2F0aW9uOwkvKiBJZiB0cnVlLCBwZXJtaXQgKi8KIGRpZmYgLS1jb2xv ciAtcnVOcCBhL3Nlc3Npb24uYyBiL3Nlc3Npb24uYwotLS0tIGEvc2Vzc2lvbi5jCTIwMjQtMDkt MTYgMTE6NDU6NTYuODY2MTMzNDExICswMjAwCi0rKysgYi9zZXNzaW9uLmMJMjAyNC0wOS0xNiAx MTo0NjozNC43MDE5NDAwMzIgKzAyMDAKKy0tLSBhL3Nlc3Npb24uYwkyMDI2LTAzLTEzIDEyOjMy OjQ4LjQ3MjI4MDEwNCArMDEwMAorKysrIGIvc2Vzc2lvbi5jCTIwMjYtMDMtMTMgMTI6MTY6NDAu MDA1MDM0NTI0ICswMTAwCiBAQCAtMjY3NCwxMyArMjY3NCwxOSBAQCBkb19jbGVhbnVwKHN0cnVj dCBzc2ggKnNzaCwgQXV0aGN0eHQgKmF1CiAgCiAgI2lmZGVmIEtSQjUKQEAgLTM0MzIsOSArMzQz NCw5IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3Nlc3Npb24uYyBiL3Nlc3Npb24uYwogIAogIAkv KiByZW1vdmUgYWdlbnQgc29ja2V0ICovCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2guMSBiL3Nz aC4xCi0tLS0gYS9zc2guMQkyMDI0LTA5LTE2IDExOjQ1OjU2Ljg3NTEzMzYwMyArMDIwMAotKysr IGIvc3NoLjEJMjAyNC0wOS0xNiAxMTo0NjozNC43MDE5NDAwMzIgKzAyMDAKLUBAIC01MzYsNyAr NTM2LDEzIEBAIEZvciBmdWxsIGRldGFpbHMgb2YgdGhlIG9wdGlvbnMgbGlzdGVkIGIKKy0tLSBh L3NzaC4xCTIwMjYtMDMtMTMgMTI6MzI6NDguNDc5NjgxNDM0ICswMTAwCisrKysgYi9zc2guMQky MDI2LTAzLTEzIDEyOjE2OjQwLjAxMjIxNzc4MCArMDEwMAorQEAgLTUzOCw3ICs1MzgsMTMgQEAg Rm9yIGZ1bGwgZGV0YWlscyBvZiB0aGUgb3B0aW9ucyBsaXN0ZWQgYgogIC5JdCBHYXRld2F5UG9y dHMKICAuSXQgR2xvYmFsS25vd25Ib3N0c0ZpbGUKICAuSXQgR1NTQVBJQXV0aGVudGljYXRpb24K QEAgLTM0NDgsNyArMzQ1MCw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaC4xIGIvc3NoLjEK ICAuSXQgSGFzaEtub3duSG9zdHMKICAuSXQgSG9zdAogIC5JdCBIb3N0YmFzZWRBY2NlcHRlZEFs Z29yaXRobXMKLUBAIC02MjQsNiArNjMwLDggQEAgZmxhZyksCitAQCAtNjI2LDYgKzYzMiw4IEBA IGZsYWcpLAogIChzdXBwb3J0ZWQgbWVzc2FnZSBpbnRlZ3JpdHkgY29kZXMpLAogIC5BciBrZXgK ICAoa2V5IGV4Y2hhbmdlIGFsZ29yaXRobXMpLApAQCAtMzQ1OCw4ICszNDYwLDggQEAgZGlmZiAt LWNvbG9yIC1ydU5wIGEvc3NoLjEgYi9zc2guMQogIChrZXkgdHlwZXMpLAogIC5BciBrZXktY2Et c2lnbgogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoLmMgYi9zc2guYwotLS0tIGEvc3NoLmMJMjAy NC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NzaC5jCTIwMjQtMDktMTYg MTE6NDY6MzQuNzAyOTQwMDU0ICswMjAwCistLS0gYS9zc2guYwkyMDI0LTA5LTIwIDAwOjIwOjQ4 LjAwMDAwMDAwMCArMDIwMAorKysrIGIvc3NoLmMJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTI3Njgw NDYgKzAxMDAKIEBAIC04MjcsNiArODI3LDggQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKICAJ CQllbHNlIGlmIChzdHJjbXAob3B0YXJnLCAia2V4IikgPT0gMCB8fAogIAkJCSAgICBzdHJjYXNl Y21wKG9wdGFyZywgIktleEFsZ29yaXRobXMiKSA9PSAwKQpAQCAtMzQ4MSw4ICszNDgzLDggQEAg ZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoLmMgYi9zc2guYwogIAkJCWlmIChjcCA9PSBOVUxMKQog IAkJCQlmYXRhbCgiVW5zdXBwb3J0ZWQgcXVlcnkgXCIlc1wiIiwgb3B0YXJnKTsKIGRpZmYgLS1j b2xvciAtcnVOcCBhL3NzaF9jb25maWcgYi9zc2hfY29uZmlnCi0tLS0gYS9zc2hfY29uZmlnCTIw MjQtMDktMTYgMTE6NDU6NTYuODg0MTMzNzk1ICswMjAwCi0rKysgYi9zc2hfY29uZmlnCTIwMjQt MDktMTYgMTE6NDY6MzQuNzAyOTQwMDU0ICswMjAwCistLS0gYS9zc2hfY29uZmlnCTIwMjYtMDMt MTMgMTI6MzI6NDguNDg3OTc2MzA3ICswMTAwCisrKysgYi9zc2hfY29uZmlnCTIwMjYtMDMtMTMg MTI6MTY6NDAuMDA3NzY5Mzc3ICswMTAwCiBAQCAtMjQsNiArMjQsOCBAQAogICMgICBIb3N0YmFz ZWRBdXRoZW50aWNhdGlvbiBubwogICMgICBHU1NBUElBdXRoZW50aWNhdGlvbiBubwpAQCAtMzQ5 Myw4ICszNDk1LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoX2NvbmZpZyBiL3NzaF9jb25m aWcKICAjICAgQ2hlY2tIb3N0SVAgbm8KICAjICAgQWRkcmVzc0ZhbWlseSBhbnkKIGRpZmYgLS1j b2xvciAtcnVOcCBhL3NzaF9jb25maWcuNSBiL3NzaF9jb25maWcuNQotLS0tIGEvc3NoX2NvbmZp Zy41CTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9zc2hfY29uZmln LjUJMjAyNC0wOS0xNiAxMTo0NjozNC43MDM5NDAwNzUgKzAyMDAKKy0tLSBhL3NzaF9jb25maWcu NQkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvc3NoX2NvbmZpZy41 CTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEzMDAwMjU3ICswMTAwCiBAQCAtOTM4LDEwICs5MzgsNjgg QEAgVGhlIGRlZmF1bHQgaXMKICBTcGVjaWZpZXMgd2hldGhlciB1c2VyIGF1dGhlbnRpY2F0aW9u IGJhc2VkIG9uIEdTU0FQSSBpcyBhbGxvd2VkLgogIFRoZSBkZWZhdWx0IGlzCkBAIC0zNTY1LDgg KzM1NjcsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hfY29uZmlnLjUgYi9zc2hfY29uZmln LjUKICBJbmRpY2F0ZXMgdGhhdAogIC5YciBzc2ggMQogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3No Y29ubmVjdDIuYyBiL3NzaGNvbm5lY3QyLmMKLS0tLSBhL3NzaGNvbm5lY3QyLmMJMjAyNC0wNy0w MSAwNjozNjoyOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NzaGNvbm5lY3QyLmMJMjAyNC0wOS0x NiAxMTo0NjozNC43MDM5NDAwNzUgKzAyMDAKKy0tLSBhL3NzaGNvbm5lY3QyLmMJMjAyNC0wOS0y MCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3NzaGNvbm5lY3QyLmMJMjAyNi0wMy0x MyAxMjoxNjo0MC4wMDgwNTM4OTggKzAxMDAKIEBAIC0yMjIsNiArMjIyLDExIEBAIHNzaF9rZXgy KHN0cnVjdCBzc2ggKnNzaCwgY2hhciAqaG9zdCwgc3QKICAJY2hhciAqYWxsX2tleSwgKmhrYWxn cyA9IE5VTEw7CiAgCWludCByLCB1c2Vfa25vd25faG9zdHNfb3JkZXIgPSAwOwpAQCAtMzY2OSw3 ICszNjcxLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoY29ubmVjdDIuYyBiL3NzaGNvbm5l Y3QyLmMKICAjaWZkZWYgREVCVUdfS0VYREgKICAJLyogc2VuZCAxc3QgZW5jcnlwdGVkL21hY2Vk L2NvbXByZXNzZWQgbWVzc2FnZSAqLwogIAlpZiAoKHIgPSBzc2hwa3Rfc3RhcnQoc3NoLCBTU0gy X01TR19JR05PUkUpKSAhPSAwIHx8Ci1AQCAtMzY4LDYgKzQzOSw3IEBAIHN0YXRpYyBpbnQgaW5w dXRfZ3NzYXBpX3Jlc3BvbnNlKGludCB0eXAKK0BAIC0zNjksNiArNDQwLDcgQEAgc3RhdGljIGlu dCBpbnB1dF9nc3NhcGlfcmVzcG9uc2UoaW50IHR5cAogIHN0YXRpYyBpbnQgaW5wdXRfZ3NzYXBp X3Rva2VuKGludCB0eXBlLCB1X2ludDMyX3QsIHN0cnVjdCBzc2ggKik7CiAgc3RhdGljIGludCBp bnB1dF9nc3NhcGlfZXJyb3IoaW50LCB1X2ludDMyX3QsIHN0cnVjdCBzc2ggKik7CiAgc3RhdGlj IGludCBpbnB1dF9nc3NhcGlfZXJydG9rKGludCwgdV9pbnQzMl90LCBzdHJ1Y3Qgc3NoICopOwpA QCAtMzY3Nyw3ICszNjc5LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoY29ubmVjdDIuYyBi L3NzaGNvbm5lY3QyLmMKICAjZW5kaWYKICAKICB2b2lkCXVzZXJhdXRoKHN0cnVjdCBzc2ggKiwg Y2hhciAqKTsKLUBAIC0zODQsNiArNDU2LDExIEBAIHN0YXRpYyBjaGFyICphdXRobWV0aG9kc19n ZXQodm9pZCk7CitAQCAtMzg1LDYgKzQ1NywxMSBAQCBzdGF0aWMgY2hhciAqYXV0aG1ldGhvZHNf Z2V0KHZvaWQpOwogIAogIEF1dGhtZXRob2QgYXV0aG1ldGhvZHNbXSA9IHsKICAjaWZkZWYgR1NT QVBJCkBAIC0zNjg5LDcgKzM2OTEsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hjb25uZWN0 Mi5jIGIvc3NoY29ubmVjdDIuYwogIAl7Imdzc2FwaS13aXRoLW1pYyIsCiAgCQl1c2VyYXV0aF9n c3NhcGksCiAgCQl1c2VyYXV0aF9nc3NhcGlfY2xlYW51cCwKLUBAIC03NTUsMTIgKzgzMiwzMiBA QCB1c2VyYXV0aF9nc3NhcGkoc3RydWN0IHNzaCAqc3NoKQorQEAgLTc1NiwxMiArODMzLDMyIEBA IHVzZXJhdXRoX2dzc2FwaShzdHJ1Y3Qgc3NoICpzc2gpCiAgCU9NX3VpbnQzMiBtaW47CiAgCWlu dCByLCBvayA9IDA7CiAgCWdzc19PSUQgbWVjaCA9IE5VTEw7CkBAIC0zNzIzLDcgKzM3MjUsNyBA QCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hjb25uZWN0Mi5jIGIvc3NoY29ubmVjdDIuYwogIAog IAkvKiBDaGVjayB0byBzZWUgd2hldGhlciB0aGUgbWVjaGFuaXNtIGlzIHVzYWJsZSBiZWZvcmUg d2Ugb2ZmZXIgaXQgKi8KICAJd2hpbGUgKGF1dGhjdHh0LT5tZWNoX3RyaWVkIDwgYXV0aGN0eHQt Pmdzc19zdXBwb3J0ZWRfbWVjaHMtPmNvdW50ICYmCi1AQCAtNzY5LDEzICs4NjYsMTUgQEAgdXNl cmF1dGhfZ3NzYXBpKHN0cnVjdCBzc2ggKnNzaCkKK0BAIC03NzAsMTMgKzg2NywxNSBAQCB1c2Vy YXV0aF9nc3NhcGkoc3RydWN0IHNzaCAqc3NoKQogIAkJICAgIGVsZW1lbnRzW2F1dGhjdHh0LT5t ZWNoX3RyaWVkXTsKICAJCS8qIE15IERFUiBlbmNvZGluZyByZXF1aXJlcyBsZW5ndGg8MTI4ICov CiAgCQlpZiAobWVjaC0+bGVuZ3RoIDwgMTI4ICYmIHNzaF9nc3NhcGlfY2hlY2tfbWVjaGFuaXNt KCZnc3NjdHh0LApAQCAtMzc0MCw3ICszNzQyLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3No Y29ubmVjdDIuYyBiL3NzaGNvbm5lY3QyLmMKICAJaWYgKCFvayB8fCBtZWNoID09IE5VTEwpCiAg CQlyZXR1cm4gMDsKICAKLUBAIC0xMDA5LDYgKzExMDgsNTUgQEAgaW5wdXRfZ3NzYXBpX2Vycm9y KGludCB0eXBlLCB1X2ludDMyX3QgcAorQEAgLTEwMTAsNiArMTEwOSw1NSBAQCBpbnB1dF9nc3Nh cGlfZXJyb3IoaW50IHR5cGUsIHVfaW50MzJfdCBwCiAgCWZyZWUobGFuZyk7CiAgCXJldHVybiBy OwogIH0KQEAgLTM3OTcsOSArMzc5OSw5IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNvbm5l Y3QyLmMgYi9zc2hjb25uZWN0Mi5jCiAgCiAgc3RhdGljIGludAogZGlmZiAtLWNvbG9yIC1ydU5w IGEvc3NoZC5jIGIvc3NoZC5jCi0tLS0gYS9zc2hkLmMJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAw MDAwMDAgKzAyMDAKLSsrKyBiL3NzaGQuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjcwNDk0MDA5NiAr MDIwMAotQEAgLTE1NTEsNyArMTU1MSw4IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCistLS0g YS9zc2hkLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3NzaGQu YwkyMDI2LTAzLTEzIDEyOjE2OjQwLjAwODQyNjgwMiArMDEwMAorQEAgLTE1NTgsNyArMTU1OCw4 IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCiAgCQlmcmVlKGZwKTsKICAJfQogIAlhY2N1bXVs YXRlX2hvc3RfdGltaW5nX3NlY3JldChjZmcsIE5VTEwpOwpAQCAtMzgxMCw4ICszODEyLDggQEAg ZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZC5jIGIvc3NoZC5jCiAgCQlleGl0KDEpOwogIAl9CiBk aWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hkX2NvbmZpZyBiL3NzaGRfY29uZmlnCi0tLS0gYS9zc2hk X2NvbmZpZwkyMDI0LTA5LTE2IDExOjQ1OjU2Ljg4ODEzMzg4MCArMDIwMAotKysrIGIvc3NoZF9j b25maWcJMjAyNC0wOS0xNiAxMTo0NjozNC43MDQ5NDAwOTYgKzAyMDAKKy0tLSBhL3NzaGRfY29u ZmlnCTIwMjYtMDMtMTMgMTI6MzI6NDguNDkxODQxMDkyICswMTAwCisrKysgYi9zc2hkX2NvbmZp ZwkyMDI2LTAzLTEzIDEyOjE2OjQwLjAwODYyOTIwOSArMDEwMAogQEAgLTc3LDYgKzc3LDggQEAg QXV0aG9yaXplZEtleXNGaWxlCS5zc2gvYXV0aG9yaXplZF9rZXlzCiAgIyBHU1NBUEkgb3B0aW9u cwogICNHU1NBUElBdXRoZW50aWNhdGlvbiBubwpAQCAtMzgyMiw4ICszODI0LDggQEAgZGlmZiAt LWNvbG9yIC1ydU5wIGEvc3NoZF9jb25maWcgYi9zc2hkX2NvbmZpZwogICMgU2V0IHRoaXMgdG8g J3llcycgdG8gZW5hYmxlIFBBTSBhdXRoZW50aWNhdGlvbiwgYWNjb3VudCBwcm9jZXNzaW5nLAog ICMgYW5kIHNlc3Npb24gcHJvY2Vzc2luZy4gSWYgdGhpcyBpcyBlbmFibGVkLCBQQU0gYXV0aGVu dGljYXRpb24gd2lsbAogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZF9jb25maWcuNSBiL3NzaGRf Y29uZmlnLjUKLS0tLSBhL3NzaGRfY29uZmlnLjUJMjAyNC0wOS0xNiAxMTo0NTo1Ni44ODUxMzM4 MTYgKzAyMDAKLSsrKyBiL3NzaGRfY29uZmlnLjUJMjAyNC0wOS0xNiAxMTo0NjozNC43MDQ5NDAw OTYgKzAyMDAKKy0tLSBhL3NzaGRfY29uZmlnLjUJMjAyNi0wMy0xMyAxMjozMjo0OC40ODkwNjk0 NjEgKzAxMDAKKysrKyBiL3NzaGRfY29uZmlnLjUJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTM0OTU5 MjEgKzAxMDAKIEBAIC03MzksNiArNzM5LDExIEBAIFNwZWNpZmllcyB3aGV0aGVyIHRvIGF1dG9t YXRpY2FsbHkgZGVzdHIKICBvbiBsb2dvdXQuCiAgVGhlIGRlZmF1bHQgaXMKQEAgLTM4NzAsOSAr Mzg3Miw5IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGRfY29uZmlnLjUgYi9zc2hkX2NvbmZp Zy41CiAgU3BlY2lmaWVzIHRoZSBzaWduYXR1cmUgYWxnb3JpdGhtcyB0aGF0IHdpbGwgYmUgYWNj ZXB0ZWQgZm9yIGhvc3RiYXNlZAogIGF1dGhlbnRpY2F0aW9uIGFzIGEgbGlzdCBvZiBjb21tYS1z ZXBhcmF0ZWQgcGF0dGVybnMuCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hkLXNlc3Npb24uYyBi L3NzaGQtc2Vzc2lvbi5jCi0tLS0gYS9zc2hkLXNlc3Npb24uYwkyMDI0LTA5LTE2IDExOjQ1OjU2 Ljg4ODEzMzg4MCArMDIwMAotKysrIGIvc3NoZC1zZXNzaW9uLmMJMjAyNC0wOS0xNiAxMTo0Njoz NC43MDU5NDAxMTggKzAyMDAKLUBAIC02NjAsOCArNjYwLDggQEAgbm90aWZ5X2hvc3RrZXlzKHN0 cnVjdCBzc2ggKnNzaCkKKy0tLSBhL3NzaGQtc2Vzc2lvbi5jCTIwMjYtMDMtMTMgMTI6MzI6NDgu NDkxMzkyNTc3ICswMTAwCisrKysgYi9zc2hkLXNlc3Npb24uYwkyMDI2LTAzLTEzIDEyOjE2OjQw LjAxMzIwMjM5MCArMDEwMAorQEAgLTY2Miw4ICs2NjIsOCBAQCBub3RpZnlfaG9zdGtleXMoc3Ry dWN0IHNzaCAqc3NoKQogIAl9CiAgCWRlYnVnM19mKCJzZW50ICV1IGhvc3RrZXlzIiwgbmtleXMp OwogIAlpZiAobmtleXMgPT0gMCkKQEAgLTM4ODMsNyArMzg4NSw3IEBAIGRpZmYgLS1jb2xvciAt cnVOcCBhL3NzaGQtc2Vzc2lvbi5jIGIvc3NoZC1zZXNzaW9uLmMKICAJCXNzaHBrdF9mYXRhbChz c2gsIHIsICIlczogc2VuZCIsIF9fZnVuY19fKTsKICAJc3NoYnVmX2ZyZWUoYnVmKTsKICB9Ci1A QCAtMTE4MCw4ICsxMTgwLDkgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKK0BAIC0xMTgyLDgg KzExODIsOSBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQogIAkJCWJyZWFrOwogIAkJfQogIAl9 CkBAIC0zODk1LDcgKzM4OTcsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hkLXNlc3Npb24u YyBiL3NzaGQtc2Vzc2lvbi5jCiAgCiAgCS8qIEVuc3VyZSB0aGF0IHVtYXNrIGRpc2FsbG93cyBh dCBsZWFzdCBncm91cCBhbmQgd29ybGQgd3JpdGUgKi8KICAJbmV3X3VtYXNrID0gdW1hc2soMDA3 NykgfCAwMDIyOwotQEAgLTE0NjIsNiArMTQ2Myw0OCBAQCBkb19zc2gyX2tleChzdHJ1Y3Qgc3No ICpzc2gpCitAQCAtMTQ3Niw2ICsxNDc3LDQ4IEBAIGRvX3NzaDJfa2V4KHN0cnVjdCBzc2ggKnNz aCkKICAKICAJZnJlZShoa2FsZ3MpOwogIApAQCAtMzk0NCw3ICszOTQ2LDcgQEAgZGlmZiAtLWNv bG9yIC1ydU5wIGEvc3NoZC1zZXNzaW9uLmMgYi9zc2hkLXNlc3Npb24uYwogIAkvKiBzdGFydCBr ZXkgZXhjaGFuZ2UgKi8KICAJaWYgKChyID0ga2V4X3NldHVwKHNzaCwgbXlwcm9wb3NhbCkpICE9 IDApCiAgCQlmYXRhbF9yKHIsICJrZXhfc2V0dXAiKTsKLUBAIC0xNDc5LDcgKzE1MjIsMTggQEAg ZG9fc3NoMl9rZXgoc3RydWN0IHNzaCAqc3NoKQorQEAgLTE0OTMsNyArMTUzNiwxOCBAQCBkb19z c2gyX2tleChzdHJ1Y3Qgc3NoICpzc2gpCiAgICNpZmRlZiBPUEVOU1NMX0hBU19FQ0MKICAJa2V4 LT5rZXhbS0VYX0VDREhfU0hBMl0gPSBrZXhfZ2VuX3NlcnZlcjsKICAgI2VuZGlmCkBAIC0zOTY1 LDggKzM5NjcsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hkLXNlc3Npb24uYyBiL3NzaGQt c2Vzc2lvbi5jCiAgCWtleC0+a2V4W0tFWF9LRU1fU05UUlVQNzYxWDI1NTE5X1NIQTUxMl0gPSBr ZXhfZ2VuX3NlcnZlcjsKICAgCWtleC0+a2V4W0tFWF9LRU1fTUxLRU03NjhYMjU1MTlfU0hBMjU2 XSA9IGtleF9nZW5fc2VydmVyOwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoLWdzcy5oIGIvc3No LWdzcy5oCi0tLS0gYS9zc2gtZ3NzLmgJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAgKzAy MDAKLSsrKyBiL3NzaC1nc3MuaAkyMDI0LTA5LTE2IDExOjQ2OjM0LjcxMDk0MDIyNCArMDIwMAor LS0tIGEvc3NoLWdzcy5oCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysg Yi9zc2gtZ3NzLmgJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTM0NTMxNTQgKzAxMDAKIEBAIC02MSwx MCArNjEsMzYgQEAKICAKICAjZGVmaW5lIFNTSF9HU1NfT0lEVFlQRSAweDA2CkBAIC00MDkyLDkg KzQwOTQsOSBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2gtZ3NzLmggYi9zc2gtZ3NzLmgKICAK ICAjZW5kaWYgLyogX1NTSF9HU1NfSCAqLwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3Noa2V5LmMg Yi9zc2hrZXkuYwotLS0tIGEvc3Noa2V5LmMJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBiL3NzaGtleS5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNzA2OTQwMTM5ICswMjAw Ci1AQCAtMTMxLDYgKzEzMSw3NSBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHNzaGtleV9pbXBsIHNz aGtleV94CistLS0gYS9zc2hrZXkuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIw MAorKysrIGIvc3Noa2V5LmMJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMDY2MzQ0NjEgKzAxMDAKK0BA IC0xMzIsNiArMTMyLDc1IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3Noa2V5X2ltcGwgc3Noa2V5 X3gKICBleHRlcm4gY29uc3Qgc3RydWN0IHNzaGtleV9pbXBsIHNzaGtleV94bXNzX2NlcnRfaW1w bDsKICAjZW5kaWYKICAKQEAgLTQxNzAsNyArNDE3Miw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBh L3NzaGtleS5jIGIvc3Noa2V5LmMKICBjb25zdCBzdHJ1Y3Qgc3Noa2V5X2ltcGwgKiBjb25zdCBr ZXlpbXBsc1tdID0gewogIAkmc3Noa2V5X2VkMjU1MTlfaW1wbCwKICAJJnNzaGtleV9lZDI1NTE5 X2NlcnRfaW1wbCwKLUBAIC0xNjksNiArMjM4LDcgQEAgY29uc3Qgc3RydWN0IHNzaGtleV9pbXBs ICogY29uc3Qga2V5aW1wbAorQEAgLTE3MCw2ICsyMzksNyBAQCBjb25zdCBzdHJ1Y3Qgc3Noa2V5 X2ltcGwgKiBjb25zdCBrZXlpbXBsCiAgCSZzc2hrZXlfeG1zc19pbXBsLAogIAkmc3Noa2V5X3ht c3NfY2VydF9pbXBsLAogICNlbmRpZgpAQCAtNDE3OCw3ICs0MTgwLDcgQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEvc3Noa2V5LmMgYi9zc2hrZXkuYwogIAlOVUxMCiAgfTsKICAKLUBAIC0zMjQsNyAr Mzk0LDcgQEAgc3Noa2V5X2FsZ19saXN0KGludCBjZXJ0c19vbmx5LCBpbnQgcGxhaQorQEAgLTMz OSw3ICs0MDksNyBAQCBzc2hrZXlfYWxnX2xpc3QoaW50IGNlcnRzX29ubHksIGludCBwbGFpCiAg CiAgCWZvciAoaSA9IDA7IGtleWltcGxzW2ldICE9IE5VTEw7IGkrKykgewogIAkJaW1wbCA9IGtl eWltcGxzW2ldOwpAQCAtNDE4OCw5ICs0MTkwLDkgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3No a2V5LmMgYi9zc2hrZXkuYwogIAkJaWYgKCFpbmNsdWRlX3NpZ29ubHkgJiYgaW1wbC0+c2lnb25s eSkKICAJCQljb250aW51ZTsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGtleS5oIGIvc3Noa2V5 LmgKLS0tLSBhL3NzaGtleS5oCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0r KysgYi9zc2hrZXkuaAkyMDI0LTA5LTE2IDExOjQ2OjM0LjcwNjk0MDEzOSArMDIwMAotQEAgLTcx LDYgKzcxLDcgQEAgZW51bSBzc2hrZXlfdHlwZXMgeworLS0tIGEvc3Noa2V5LmgJMjAyNC0wOS0y MCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3NzaGtleS5oCTIwMjYtMDMtMTMgMTI6 MTY6NDAuMDA4OTcyMzI4ICswMTAwCitAQCAtNzMsNiArNzMsNyBAQCBlbnVtIHNzaGtleV90eXBl cyB7CiAgCUtFWV9FQ0RTQV9TS19DRVJULAogIAlLRVlfRUQyNTUxOV9TSywKICAJS0VZX0VEMjU1 MTlfU0tfQ0VSVCwKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWF1dGhvcml6ZWQta2V5cy1w cmluY2lwbGVzLW9wdGlvbi5wYXRjaCBiL29wZW5zc2gtOS45cDEtYXV0aG9yaXplZC1rZXlzLXBy aW5jaXBsZXMtb3B0aW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjliZGQxOTkKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTkuOXAxLWF1dGhvcml6ZWQta2V5 cy1wcmluY2lwbGVzLW9wdGlvbi5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitkaWZmIC0tY29sb3Ig LXJ1TnAgYS9hdXRoMi1wdWJrZXlmaWxlLmMgYi9hdXRoMi1wdWJrZXlmaWxlLmMKKy0tLSBhL2F1 dGgyLXB1YmtleWZpbGUuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysr IGIvYXV0aDItcHVia2V5ZmlsZS5jCTIwMjYtMDQtMDkgMTQ6Mzg6NDEuNjk3MTc4NjEyICswMjAw CitAQCAtNTAsNiArNTAsNyBAQAorICNpbmNsdWRlICJhdXRoZmlsZS5oIgorICNpbmNsdWRlICJt YXRjaC5oIgorICNpbmNsdWRlICJzc2hlcnIuaCIKKysjaW5jbHVkZSAieG1hbGxvYy5oIgorIAor IGludAorIGF1dGhfYXV0aG9yaXNlX2tleW9wdHMoc3RydWN0IHBhc3N3ZCAqcHcsIHN0cnVjdCBz c2hhdXRob3B0ICpvcHRzLAorQEAgLTE0NiwyMCArMTQ3LDIzIEBAIGF1dGhfYXV0aG9yaXNlX2tl eW9wdHMoc3RydWN0IHBhc3N3ZCAqcHcKKyBzdGF0aWMgaW50CisgbWF0Y2hfcHJpbmNpcGFsc19v cHRpb24oY29uc3QgY2hhciAqcHJpbmNpcGFsX2xpc3QsIHN0cnVjdCBzc2hrZXlfY2VydCAqY2Vy dCkKKyB7CistCWNoYXIgKnJlc3VsdDsKKysJY2hhciAqbGlzdCwgKm9saXN0LCAqZW50cnk7Cisg CXVfaW50IGk7CisgCistCS8qIFhYWCBwZXJjZW50X2V4cGFuZCgpIHNlcXVlbmNlcyBmb3IgYXV0 aG9yaXplZF9wcmluY2lwYWxzPyAqLworLQorLQlmb3IgKGkgPSAwOyBpIDwgY2VydC0+bnByaW5j aXBhbHM7IGkrKykgeworLQkJaWYgKChyZXN1bHQgPSBtYXRjaF9saXN0KGNlcnQtPnByaW5jaXBh bHNbaV0sCistCQkgICAgcHJpbmNpcGFsX2xpc3QsIE5VTEwpKSAhPSBOVUxMKSB7CistCQkJZGVi dWczKCJtYXRjaGVkIHByaW5jaXBhbCBmcm9tIGtleSBvcHRpb25zIFwiJS4xMDBzXCIiLAorLQkJ CSAgICByZXN1bHQpOworLQkJCWZyZWUocmVzdWx0KTsKKy0JCQlyZXR1cm4gMTsKKysJb2xpc3Qg PSBsaXN0ID0geHN0cmR1cChwcmluY2lwYWxfbGlzdCk7CisrCWZvciAoOzspIHsKKysJCWlmICgo ZW50cnkgPSBzdHJzZXAoJmxpc3QsICIsIikpID09IE5VTEwgfHwgKmVudHJ5ID09ICdcMCcpCisr CQkJYnJlYWs7CisrCQlmb3IgKGkgPSAwOyBpIDwgY2VydC0+bnByaW5jaXBhbHM7IGkrKykgewor KwkJCWlmIChzdHJjbXAoZW50cnksIGNlcnQtPnByaW5jaXBhbHNbaV0pID09IDApIHsKKysJCQkJ ZGVidWczKCJtYXRjaGVkIHByaW5jaXBhbCBmcm9tIGtleSBpIgorKwkJCQkgICAgIm9wdGlvbnMg XCIlLjEwMHNcIiIsIGVudHJ5KTsKKysJCQkJZnJlZShvbGlzdCk7CisrCQkJCXJldHVybiAxOwor KwkJCX0KKyAJCX0KKyAJfQorKwlmcmVlKG9saXN0KTsKKyAJcmV0dXJuIDA7CisgfQorIAoKZGlm ZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5wYXRj aCBiL29wZW5zc2gtOS45cDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjkzY2E0Ci0tLSAvZGV2L251bGwKKysr IGIvb3BlbnNzaC05LjlwMS1lY2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uLnBhdGNoCkBAIC0w LDAgKzEsMTAzIEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1ob3N0YmFzZWQuYyBiL2F1 dGgyLWhvc3RiYXNlZC5jCistLS0gYS9hdXRoMi1ob3N0YmFzZWQuYwkyMDI2LTA0LTA5IDEzOjIy OjI4LjExNDA0NTc0OSArMDIwMAorKysrIGIvYXV0aDItaG9zdGJhc2VkLmMJMjAyNi0wNC0wOSAx NDozNDo0NC44NzYzOTM4MjIgKzAyMDAKK0BAIC05Niw5ICs5NiwxMCBAQCB1c2VyYXV0aF9ob3N0 YmFzZWQoc3RydWN0IHNzaCAqc3NoLCBjb25zCisgCQllcnJvcl9mKCJjYW5ub3QgZGVjb2RlIGtl eTogJXMiLCBwa2FsZyk7CisgCQlnb3RvIGRvbmU7CisgCX0KKy0JaWYgKGtleS0+dHlwZSAhPSBw a3R5cGUpIHsKKy0JCWVycm9yX2YoInR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5ICIKKy0J CSAgICAiKHJlY2VpdmVkICVkLCBleHBlY3RlZCAlZCkiLCBrZXktPnR5cGUsIHBrdHlwZSk7Cisr CWlmIChrZXktPnR5cGUgIT0gcGt0eXBlIHx8IChzc2hrZXlfdHlwZV9wbGFpbihwa3R5cGUpID09 IEtFWV9FQ0RTQSAmJgorKwkgICAgc3Noa2V5X2VjZHNhX25pZF9mcm9tX25hbWUocGthbGcpICE9 IGtleS0+ZWNkc2FfbmlkKSkgeworKwkJZXJyb3JfZigia2V5IHR5cGUgbWlzbWF0Y2ggZm9yIGRl Y29kZWQga2V5ICIKKysJCSAgICAiKHJlY2VpdmVkICVzLCBleHBlY3RlZCAlcykiLCBzc2hrZXlf c3NoX25hbWUoa2V5KSwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CisgCWlmIChtYXRjaF9w YXR0ZXJuX2xpc3QocGthbGcsIG9wdGlvbnMuaG9zdGJhc2VkX2FjY2VwdGVkX2FsZ29zLCAwKSAh PSAxKSB7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1wdWJrZXkuYyBiL2F1dGgyLXB1Ymtl eS5jCistLS0gYS9hdXRoMi1wdWJrZXkuYwkyMDI2LTA0LTA5IDEzOjIyOjI4LjE1NzE5NDExOCAr MDIwMAorKysrIGIvYXV0aDItcHVia2V5LmMJMjAyNi0wNC0wOSAxNDozNTo0OC45OTc2ODkzNDcg KzAyMDAKK0BAIC0xNTIsOSArMTUyLDEwIEBAIHVzZXJhdXRoX3B1YmtleShzdHJ1Y3Qgc3NoICpz c2gsIGNvbnN0IGMKKyAJCWVycm9yX2YoImNhbm5vdCBkZWNvZGUga2V5OiAlcyIsIHBrYWxnKTsK KyAJCWdvdG8gZG9uZTsKKyAJfQorLQlpZiAoa2V5LT50eXBlICE9IHBrdHlwZSkgeworLQkJZXJy b3JfZigidHlwZSBtaXNtYXRjaCBmb3IgZGVjb2RlZCBrZXkgIgorLQkJICAgICIocmVjZWl2ZWQg JWQsIGV4cGVjdGVkICVkKSIsIGtleS0+dHlwZSwgcGt0eXBlKTsKKysJaWYgKGtleS0+dHlwZSAh PSBwa3R5cGUgfHwgKHNzaGtleV90eXBlX3BsYWluKHBrdHlwZSkgPT0gS0VZX0VDRFNBICYmCisr CSAgICBzc2hrZXlfZWNkc2FfbmlkX2Zyb21fbmFtZShwa2FsZykgIT0ga2V5LT5lY2RzYV9uaWQp KSB7CisrCQllcnJvcl9mKCJrZXkgdHlwZSBtaXNtYXRjaCBmb3IgZGVjb2RlZCBrZXkgIgorKwkJ ICAgICIocmVjZWl2ZWQgJXMsIGV4cGVjdGVkICVzKSIsIHNzaGtleV9zc2hfbmFtZShrZXkpLCBw a2FsZyk7CisgCQlnb3RvIGRvbmU7CisgCX0KKyAJaWYgKGF1dGgyX2tleV9hbHJlYWR5X3VzZWQo YXV0aGN0eHQsIGtleSkpIHsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNvbm5lY3QyLmMgYi9z c2hjb25uZWN0Mi5jCistLS0gYS9zc2hjb25uZWN0Mi5jCTIwMjYtMDQtMDkgMTM6MjI6MjguMTkz NDEyNTUzICswMjAwCisrKysgYi9zc2hjb25uZWN0Mi5jCTIwMjYtMDQtMDkgMTQ6NDI6MzcuNjQ0 OTQ1NzYyICswMjAwCitAQCAtOTEsNiArOTEsNyBAQCBleHRlcm4gT3B0aW9ucyBvcHRpb25zOwor IHN0YXRpYyBjaGFyICp4eHhfaG9zdDsKKyBzdGF0aWMgc3RydWN0IHNvY2thZGRyICp4eHhfaG9z dGFkZHI7Cisgc3RhdGljIGNvbnN0IHN0cnVjdCBzc2hfY29ubl9pbmZvICp4eHhfY29ubl9pbmZv OworK3N0YXRpYyBpbnQga2V5X3R5cGVfYWxsb3dlZChzdHJ1Y3Qgc3Noa2V5ICosIGNvbnN0IGNo YXIgKik7CisgCisgc3RhdGljIGludAorIHZlcmlmeV9ob3N0X2tleV9jYWxsYmFjayhzdHJ1Y3Qg c3Noa2V5ICpob3N0a2V5LCBzdHJ1Y3Qgc3NoICpzc2gpCitAQCAtMTAwLDYgKzEwMSwxMCBAQCB2 ZXJpZnlfaG9zdF9rZXlfY2FsbGJhY2soc3RydWN0IHNzaGtleSAqCisgCWlmICgociA9IHNzaGtl eV9jaGVja19yc2FfbGVuZ3RoKGhvc3RrZXksCisgCSAgICBvcHRpb25zLnJlcXVpcmVkX3JzYV9z aXplKSkgIT0gMCkKKyAJCWZhdGFsX3IociwgIkJhZCBzZXJ2ZXIgaG9zdCBrZXkiKTsKKysJaWYg KCFrZXlfdHlwZV9hbGxvd2VkKGhvc3RrZXksIG9wdGlvbnMuaG9zdGtleWFsZ29yaXRobXMpKSB7 CisrCQlmYXRhbCgiU2VydmVyIGhvc3Qga2V5ICVzIG5vdCBpbiBIb3N0S2V5QWxnb3JpdGhtcyIs CisrCQkgICAgc3Noa2V5X3NzaF9uYW1lKGhvc3RrZXkpKTsKKysJfQorIAlpZiAodmVyaWZ5X2hv c3Rfa2V5KHh4eF9ob3N0LCB4eHhfaG9zdGFkZHIsIGhvc3RrZXksCisgCSAgICB4eHhfY29ubl9p bmZvKSAhPSAwKQorIAkJZmF0YWwoIkhvc3Qga2V5IHZlcmlmaWNhdGlvbiBmYWlsZWQuIik7CitA QCAtMTc3NiwzNCArMTc4MSwzNyBAQCBsb2FkX2lkZW50aXR5X2ZpbGUoSWRlbnRpdHkgKmlkKQor IH0KKyAKKyBzdGF0aWMgaW50Cista2V5X3R5cGVfYWxsb3dlZF9ieV9jb25maWcoc3RydWN0IHNz aGtleSAqa2V5KQorK2tleV90eXBlX2FsbG93ZWQoc3RydWN0IHNzaGtleSAqa2V5LCBjb25zdCBj aGFyICphbGxvd2xpc3QpCisgeworLQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KHNzaGtleV9zc2hf bmFtZShrZXkpLAorLQkgICAgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MsIDApID09IDEp CisrCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3Qoc3Noa2V5X3NzaF9uYW1lKGtleSksIGFsbG93bGlz dCwgMCkgPT0gMSkKKyAJCXJldHVybiAxOworIAorIAkvKiBSU0Ega2V5cy9jZXJ0cyBtaWdodCBi ZSBhbGxvd2VkIGJ5IGFsdGVybmF0ZSBzaWduYXR1cmUgdHlwZXMgKi8KKyAJc3dpdGNoIChrZXkt PnR5cGUpIHsKKyAJY2FzZSBLRVlfUlNBOgorLQkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNh LXNoYTItNTEyIiwKKy0JCSAgICBvcHRpb25zLnB1YmtleV9hY2NlcHRlZF9hbGdvcywgMCkgPT0g MSkKKysJCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3QoInJzYS1zaGEyLTUxMiIsIGFsbG93bGlzdCwg MCkgPT0gMSkKKyAJCQlyZXR1cm4gMTsKKy0JCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3QoInJzYS1z aGEyLTI1NiIsCistCQkgICAgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MsIDApID09IDEp CisrCQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi0yNTYiLCBhbGxvd2xpc3QsIDAp ID09IDEpCisgCQkJcmV0dXJuIDE7CisgCQlicmVhazsKKyAJY2FzZSBLRVlfUlNBX0NFUlQ6Cisg CQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi01MTItY2VydC12MDFAb3BlbnNzaC5j b20iLAorLQkJICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zLCAwKSA9PSAxKQorKwkJ ICAgIGFsbG93bGlzdCwgMCkgPT0gMSkKKyAJCQlyZXR1cm4gMTsKKyAJCWlmIChtYXRjaF9wYXR0 ZXJuX2xpc3QoInJzYS1zaGEyLTI1Ni1jZXJ0LXYwMUBvcGVuc3NoLmNvbSIsCistCQkgICAgb3B0 aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MsIDApID09IDEpCisrCQkgICAgYWxsb3dsaXN0LCAw KSA9PSAxKQorIAkJCXJldHVybiAxOworIAkJYnJlYWs7CisgCX0KKyAJcmV0dXJuIDA7CisgfQor IAorK3N0YXRpYyBpbnQKKytrZXlfdHlwZV9hbGxvd2VkX2J5X2NvbmZpZyhzdHJ1Y3Qgc3Noa2V5 ICprZXkpCisreworKwlyZXR1cm4ga2V5X3R5cGVfYWxsb3dlZChrZXksIG9wdGlvbnMucHVia2V5 X2FjY2VwdGVkX2FsZ29zKTsKKyt9CisrCisgLyogb2J0YWluIGEgbGlzdCBvZiBrZXlzIGZyb20g dGhlIGFnZW50ICovCisgc3RhdGljIGludAorIGdldF9hZ2VudF9pZGVudGl0aWVzKHN0cnVjdCBz c2ggKnNzaCwgaW50ICphZ2VudF9mZHAsCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1maWxs LWRlZmF1bHQtb3B0aW9ucy1lcnJvci5wYXRjaCBiL29wZW5zc2gtOS45cDEtZmlsbC1kZWZhdWx0 LW9wdGlvbnMtZXJyb3IucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NGI4MDUwNAotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gtOS45cDEtZmlsbC1kZWZhdWx0LW9w dGlvbnMtZXJyb3IucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEv cmVhZGNvbmYuYyBiL3JlYWRjb25mLmMKKy0tLSBhL3JlYWRjb25mLmMJMjAyNi0wNC0wMiAxNToz Njo0OS42MjQzOTQ4MzYgKzAyMDAKKysrKyBiL3JlYWRjb25mLmMJMjAyNi0wNC0wMiAxNTo0Mzox NS4xMTUwNDcxOTAgKzAyMDAKK0BAIC0yNzc5LDcgKzI3NzksNyBAQCBmaWxsX2RlZmF1bHRfb3B0 aW9ucyhPcHRpb25zICogb3B0aW9ucykKKyB7CisgCWNoYXIgKmFsbF9jaXBoZXIsICphbGxfbWFj LCAqYWxsX2tleCwgKmFsbF9rZXksICphbGxfc2lnOworIAljaGFyICpkZWZfY2lwaGVyLCAqZGVm X21hYywgKmRlZl9rZXgsICpkZWZfa2V5LCAqZGVmX3NpZzsKKy0JaW50IHJldCA9IDAsIHI7Cisr CWludCByZXQgPSAwOworIAorIAlpZiAob3B0aW9ucy0+Zm9yd2FyZF9hZ2VudCA9PSAtMSkKKyAJ CW9wdGlvbnMtPmZvcndhcmRfYWdlbnQgPSAwOworQEAgLTI5ODksOSArMjk4OSw5IEBAIGZpbGxf ZGVmYXVsdF9vcHRpb25zKE9wdGlvbnMgKiBvcHRpb25zKQorIAkgICAgS0VYX0ZJUFNfUEtfQUxH IDogU1NIX0FMTE9XRURfQ0FfU0lHQUxHUyksIGFsbF9zaWcpOworICNkZWZpbmUgQVNTRU1CTEUo d2hhdCwgZGVmYXVsdHMsIGFsbCkgXAorIAlkbyB7IFwKKy0JCWlmICgociA9IGtleF9hc3NlbWJs ZV9uYW1lcygmb3B0aW9ucy0+d2hhdCwgXAorKwkJaWYgKChyZXQgPSBrZXhfYXNzZW1ibGVfbmFt ZXMoJm9wdGlvbnMtPndoYXQsIFwKKyAJCSAgICBkZWZhdWx0cywgYWxsKSkgIT0gMCkgeyBcCist CQkJZXJyb3JfZnIociwgIiVzIiwgI3doYXQpOyBcCisrCQkJZXJyb3JfZnIocmV0LCAiJXMiLCAj d2hhdCk7IFwKKyAJCQlnb3RvIGZhaWw7IFwKKyAJCX0gXAorIAl9IHdoaWxlICgwKQoKZGlmZiAt LWdpdCBhL29wZW5zc2gtOS45cDEtZmlyc3QtbWF0Y2gtd2lucy5wYXRjaCBiL29wZW5zc2gtOS45 cDEtZmlyc3QtbWF0Y2gtd2lucy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43ZDc2NDM3Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05LjlwMS1maXJzdC1tYXRj aC13aW5zLnBhdGNoCkBAIC0wLDAgKzEsMTA2IEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9yZWdy ZXNzL2NmZ3BhcnNlLnNoIGIvcmVncmVzcy9jZmdwYXJzZS5zaAorLS0tIGEvcmVncmVzcy9jZmdw YXJzZS5zaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvcmVncmVz cy9jZmdwYXJzZS5zaAkyMDI2LTAzLTA1IDE3OjMwOjU0Ljk1OTY5MDc0NCArMDEwMAorQEAgLTUx LDcgKzUxLDcgQEAgbGlzdGVuYWRkcmVzcyA6OjEKKyBFT0QKKyAKKyAoJFNVRE8gJHtTU0hEfSAt VCAtZiAkT0JKL3NzaGRfY29uZmlnLjEgfCBcCistIGdyZXAgJ2xpc3RlbmFkZHJlc3MgJyA+JE9C Si9zc2hkX2NvbmZpZy4yICYmCisrIGdyZXAgJ15saXN0ZW5hZGRyZXNzICcgPiRPQkovc3NoZF9j b25maWcuMiAmJgorICBkaWZmICRPQkovc3NoZF9jb25maWcuMCAkT0JKL3NzaGRfY29uZmlnLjIp IHx8IFwKKyAgZmFpbCAibGlzdGVuYWRkcmVzcyBvcmRlciAxIgorICMgdGVzdCAyOiBsaXN0ZW5h ZGRyZXNzIGZpcnN0CitAQCAtNjcsOSArNjcsMjIgQEAgbGlzdGVuYWRkcmVzcyA6OjEKKyBFT0QK KyAKKyAoJFNVRE8gJHtTU0hEfSAtVCAtZiAkT0JKL3NzaGRfY29uZmlnLjEgfCBcCistIGdyZXAg J2xpc3RlbmFkZHJlc3MgJyA+JE9CSi9zc2hkX2NvbmZpZy4yICYmCisrIGdyZXAgJ15saXN0ZW5h ZGRyZXNzICcgPiRPQkovc3NoZF9jb25maWcuMiAmJgorICBkaWZmICRPQkovc3NoZF9jb25maWcu MCAkT0JKL3NzaGRfY29uZmlnLjIpIHx8IFwKKyAgZmFpbCAibGlzdGVuYWRkcmVzcyBvcmRlciAy IgorIAorKyMgQ2hlY2sgaWRlbXBvdGVuY2Ugb2YgTWF4U3RhcnR1cHMKKyt2ZXJib3NlICJtYXhz dGFydHVwcyBpZGVtcG90ZW50IgorK2VjaG8gIm1heHN0YXJ0dXBzIDE6MjozIiA+ICRPQkovc3No ZF9jb25maWcuMAorK2NhdCA+ICRPQkovc3NoZF9jb25maWcuMSA8PEVPRAorKyR7U1NIRF9LRVlT fQorK01heFN0YXJ0dXBzIDE6MjozCisrTWF4U3RhcnR1cHMgODoxNjozMgorK0VPRAorKygkU1VE TyAke1NTSER9IC1UIC1mICRPQkovc3NoZF9jb25maWcuMSB8IFwKKysgZ3JlcCAnXm1heHN0YXJ0 dXBzICcgPiRPQkovc3NoZF9jb25maWcuMiAmJgorKyBkaWZmICRPQkovc3NoZF9jb25maWcuMCAk T0JKL3NzaGRfY29uZmlnLjIpIHx8IFwKKysgZmFpbCAibWF4c3RhcnR1cHMgaWRlbXBvdGVuY2Ui CisrCisgIyBjbGVhbnVwCisgcm0gLWYgJE9CSi9zc2hkX2NvbmZpZy5bMDEyXQorZGlmZiAtLWNv bG9yIC1ydU5wIGEvc2VydmNvbmYuYyBiL3NlcnZjb25mLmMKKy0tLSBhL3NlcnZjb25mLmMJMjAy Ni0wMy0wNSAxNjoxNTo0OS4wMzUyNzUyOTcgKzAxMDAKKysrKyBiL3NlcnZjb25mLmMJMjAyNi0w My0wNSAxNzoxMzoyOS45MTU4OTczMjkgKzAxMDAKK0BAIC0xMzY2LDcgKzEzNjYsNyBAQCBwcm9j ZXNzX3NlcnZlcl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPCisgICAgIHN0cnVjdCBpbmNsdWRl X2xpc3QgKmluY2x1ZGVzKQorIHsKKyAJY2hhciAqc3RyLCAqKipjaGFyYXJyYXlwdHIsICoqY2hh cnB0ciwgKmFyZywgKmFyZzIsICpwLCAqa2V5d29yZDsKKy0JaW50IGNtZGxpbmUgPSAwLCAqaW50 cHRyLCB2YWx1ZSwgdmFsdWUyLCBuLCBwb3J0LCBvYWN0aXZlLCByOworKwlpbnQgY21kbGluZSA9 IDAsICppbnRwdHIsIHZhbHVlLCB2YWx1ZTIsIHZhbHVlMywgbiwgcG9ydCwgb2FjdGl2ZSwgcjsK KyAJaW50IGNhX29ubHkgPSAwLCBmb3VuZCA9IDA7CisgCVN5c2xvZ0ZhY2lsaXR5ICpsb2dfZmFj aWxpdHlfcHRyOworIAlMb2dMZXZlbCAqbG9nX2xldmVsX3B0cjsKK0BAIC0yMDk1LDI1ICsyMDk1 LDI3IEBAIHByb2Nlc3Nfc2VydmVyX2NvbmZpZ19saW5lX2RlcHRoKFNlcnZlck8KKyAJCWlmICgh YXJnIHx8ICphcmcgPT0gJ1wwJykKKyAJCQlmYXRhbCgiJXMgbGluZSAlZDogJXMgbWlzc2luZyBh cmd1bWVudC4iLAorIAkJCSAgICBmaWxlbmFtZSwgbGluZW51bSwga2V5d29yZCk7CisrCQkvKiBi ZWdpbjpyYXRlOm1heCAqLworIAkJaWYgKChuID0gc3NjYW5mKGFyZywgIiVkOiVkOiVkIiwKKy0J CSAgICAmb3B0aW9ucy0+bWF4X3N0YXJ0dXBzX2JlZ2luLAorLQkJICAgICZvcHRpb25zLT5tYXhf c3RhcnR1cHNfcmF0ZSwKKy0JCSAgICAmb3B0aW9ucy0+bWF4X3N0YXJ0dXBzKSkgPT0gMykgewor LQkJCWlmIChvcHRpb25zLT5tYXhfc3RhcnR1cHNfYmVnaW4gPgorLQkJCSAgICBvcHRpb25zLT5t YXhfc3RhcnR1cHMgfHwKKy0JCQkgICAgb3B0aW9ucy0+bWF4X3N0YXJ0dXBzX3JhdGUgPiAxMDAg fHwKKy0JCQkgICAgb3B0aW9ucy0+bWF4X3N0YXJ0dXBzX3JhdGUgPCAxKQorKwkJICAgICZ2YWx1 ZSwgJnZhbHVlMiwgJnZhbHVlMykpID09IDMpIHsKKysJCQlpZiAodmFsdWUgPiB2YWx1ZTMgfHwg dmFsdWUyID4gMTAwIHx8IHZhbHVlMiA8IDEpCisgCQkJCWZhdGFsKCIlcyBsaW5lICVkOiBJbnZh bGlkICVzIHNwZWMuIiwKKyAJCQkJICAgIGZpbGVuYW1lLCBsaW5lbnVtLCBrZXl3b3JkKTsKKy0J CX0gZWxzZSBpZiAobiAhPSAxKQorKwkJfSBlbHNlIGlmIChuID09IDEpIHsKKysJCQl2YWx1ZTMg PSB2YWx1ZTsKKysJCQl2YWx1ZSA9IHZhbHVlMiA9IC0xOworKwkJfSBlbHNlIHsKKyAJCQlmYXRh bCgiJXMgbGluZSAlZDogSW52YWxpZCAlcyBzcGVjLiIsCisgCQkJICAgIGZpbGVuYW1lLCBsaW5l bnVtLCBrZXl3b3JkKTsKKy0JCWVsc2UKKy0JCQlvcHRpb25zLT5tYXhfc3RhcnR1cHMgPSBvcHRp b25zLT5tYXhfc3RhcnR1cHNfYmVnaW47CistCQlpZiAob3B0aW9ucy0+bWF4X3N0YXJ0dXBzIDw9 IDAgfHwKKy0JCSAgICBvcHRpb25zLT5tYXhfc3RhcnR1cHNfYmVnaW4gPD0gMCkKKysJCX0KKysJ CWlmICh2YWx1ZTMgPD0gMCB8fCAodmFsdWUyICE9IC0xICYmIHZhbHVlIDw9IDApKQorIAkJCWZh dGFsKCIlcyBsaW5lICVkOiBJbnZhbGlkICVzIHNwZWMuIiwKKyAJCQkgICAgZmlsZW5hbWUsIGxp bmVudW0sIGtleXdvcmQpOworKwkJaWYgKCphY3RpdmVwICYmIG9wdGlvbnMtPm1heF9zdGFydHVw cyA9PSAtMSkgeworKwkJCW9wdGlvbnMtPm1heF9zdGFydHVwc19iZWdpbiA9IHZhbHVlOworKwkJ CW9wdGlvbnMtPm1heF9zdGFydHVwc19yYXRlID0gdmFsdWUyOworKwkJCW9wdGlvbnMtPm1heF9z dGFydHVwcyA9IHZhbHVlMzsKKysJCX0KKyAJCWJyZWFrOworIAorIAljYXNlIHNQZXJTb3VyY2VO ZXRCbG9ja1NpemU6CitAQCAtMjEzMyw3ICsyMTM1LDcgQEAgcHJvY2Vzc19zZXJ2ZXJfY29uZmln X2xpbmVfZGVwdGgoU2VydmVyTworIAkJaWYgKG4gIT0gMSAmJiBuICE9IDIpCisgCQkJZmF0YWwo IiVzIGxpbmUgJWQ6IEludmFsaWQgJXMgc3BlYy4iLAorIAkJCSAgICBmaWxlbmFtZSwgbGluZW51 bSwga2V5d29yZCk7CistCQlpZiAoKmFjdGl2ZXApIHsKKysJCWlmICgqYWN0aXZlcCAmJiBvcHRp b25zLT5wZXJfc291cmNlX21hc2tsZW5faXB2NCA9PSAtMSkgeworIAkJCW9wdGlvbnMtPnBlcl9z b3VyY2VfbWFza2xlbl9pcHY0ID0gdmFsdWU7CisgCQkJb3B0aW9ucy0+cGVyX3NvdXJjZV9tYXNr bGVuX2lwdjYgPSB2YWx1ZTI7CisgCQl9CitAQCAtMjYyMSw3ICsyNjIzLDcgQEAgcHJvY2Vzc19z ZXJ2ZXJfY29uZmlnX2xpbmVfZGVwdGgoU2VydmVyTworIAkJZWxzZSBpZiAoKHZhbHVlMiA9IHBh cnNlX2lwcW9zKGFyZykpID09IC0xKQorIAkJCWZhdGFsKCIlcyBsaW5lICVkOiBCYWQgJXMgdmFs dWU6ICVzIiwKKyAJCQkgICAgZmlsZW5hbWUsIGxpbmVudW0sIGtleXdvcmQsIGFyZyk7CistCQlp ZiAoKmFjdGl2ZXApIHsKKysJCWlmICgqYWN0aXZlcCAmJiBvcHRpb25zLT5pcF9xb3NfaW50ZXJh Y3RpdmUgPT0gLTEpIHsKKyAJCQlvcHRpb25zLT5pcF9xb3NfaW50ZXJhY3RpdmUgPSB2YWx1ZTsK KyAJCQlvcHRpb25zLT5pcF9xb3NfYnVsayA9IHZhbHVlMjsKKyAJCX0KCmRpZmYgLS1naXQgYS9v cGVuc3NoLTkuOXAxLWdzaXNzaC5wYXRjaCBiL29wZW5zc2gtOS45cDEtZ3Npc3NoLnBhdGNoCmlu ZGV4IDRhYmJlOWUuLjhhYmI5ZTggMTAwNjQ0Ci0tLSBhL29wZW5zc2gtOS45cDEtZ3Npc3NoLnBh dGNoCisrKyBiL29wZW5zc2gtOS45cDEtZ3Npc3NoLnBhdGNoCkBAIC03NjUsOCArNzY1LDggQEAg ZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3Nz LXNlcnYuYwogIH0KICsjZW5kaWYKICAKLSAKICAvKiBFeHRyYWN0IHRoZSBjbGllbnQgZGV0YWls cyBmcm9tIGEgZ2l2ZW4gY29udGV4dC4gVGhpcyBjYW4gb25seSByZWxpYWJseQorICAqIGJlIGNh bGxlZCBvbmNlIGZvciBhIGNvbnRleHQgKi8KIEBAIC0zOTQsMjEgKzQyOCwyNCBAQAogIAlnc3Nf YnVmZmVyX2Rlc2MgZW5hbWUgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiAgCkBAIC05MjMsNyArOTIz LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45 cDEvZ3NzLXNlcnYuYwogKwkJCWdzc19yZWxlYXNlX25hbWUoJmxtaW4sICZnc3NhcGlfY2xpZW50 LmN0eF9uYW1lKTsKICAKICAJCQlpZiAoZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzICE9IE5VTEwp IHsKLSAJCQkJZm9yKGkgPSAwOyBnc3NhcGlfY2xpZW50LmluZGljYXRvcnNbaV0gIT0gTlVMTDsg aSsrKSB7CisgCQkJCWZvciAoaSA9IDA7IGdzc2FwaV9jbGllbnQuaW5kaWNhdG9yc1tpXSAhPSBO VUxMOyBpKyspCiBAQCAtNTc5LDYgKzY0OSwyNCBAQAogIAlyZXR1cm4gKDApOwogIH0KQEAgLTE4 NjMsOSArMTg2Myw5IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc2VydmNvbmYuYyBv cGVuc3NoLTkuOXAxL3NlcnZjb25mLmMKICAJb3B0aW9ucy0+Z3NzX2RlbGVnX2NyZWRzID0gLTE7 CiAgCW9wdGlvbnMtPmdzc19zdHJpY3RfYWNjZXB0b3IgPSAtMTsKICsJb3B0aW9ucy0+Z3NpX2Fs bG93X2xpbWl0ZWRfcHJveHkgPSAtMTsKKyAJb3B0aW9ucy0+Z3NzX2luZGljYXRvcnMgPSBOVUxM OwogIAlvcHRpb25zLT5nc3Nfc3RvcmVfcmVrZXkgPSAtMTsKICAJb3B0aW9ucy0+Z3NzX2tleF9h bGdvcml0aG1zID0gTlVMTDsKLSAJb3B0aW9ucy0+Z3NzX2luZGljYXRvcnMgPSBOVUxMOwogQEAg LTMxNyw2ICszMTksOCBAQAogIAkJb3B0aW9ucy0+dXNlX3BhbSA9IDA7CiAgCWlmIChvcHRpb25z LT5wYW1fc2VydmljZV9uYW1lID09IE5VTEwpCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1t YXhzdGFydHVwcy1taXN0cmFja2luZy5wYXRjaCBiL29wZW5zc2gtOS45cDEtbWF4c3RhcnR1cHMt bWlzdHJhY2tpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU5 MjkwMwotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gtOS45cDEtbWF4c3RhcnR1cHMtbWlzdHJh Y2tpbmcucGF0Y2gKQEAgLTAsMCArMSw3MyBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3JjbGlt aXQuYyBiL3NyY2xpbWl0LmMKKy0tLSBhL3NyY2xpbWl0LmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4w MDAwMDAwMDAgKzAyMDAKKysrKyBiL3NyY2xpbWl0LmMJMjAyNi0wMy0wNiAxMzozMDo0OC40MDgz MDk2MTkgKzAxMDAKK0BAIC00MjcsNyArNDI3LDkgQEAgc3JjbGltaXRfcGVuYWxpc2Uoc3RydWN0 IHhhZGRyICphZGRyLCBpbgorIAkJCXBlbmFsdHktPmFjdGl2ZSA9IDE7CisgCQlpZiAoUkJfSU5T RVJUKHBlbmFsdGllc19ieV9leHBpcnksIGJ5X2V4cGlyeSwgcGVuYWx0eSkgIT0gTlVMTCkKKyAJ CQlmYXRhbF9mKCJpbnRlcm5hbCBlcnJvcjogJXMgcGVuYWx0eSB0YWJsZXMgY29ycnVwdCIsIHQp OworLQkJdmVyYm9zZV9mKCIlczogbmV3ICVzICVzIHBlbmFsdHkgb2YgJWQgc2Vjb25kcyBmb3Ig JXMiLCB0LAorKwkJZG9fbG9nMl9mKHBlbmFsdHktPmFjdGl2ZSA/CisrCQkgICAgU1lTTE9HX0xF VkVMX0lORk8gOiBTWVNMT0dfTEVWRUxfVkVSQk9TRSwKKysJCSAgICAiJXM6IG5ldyAlcyAlcyBw ZW5hbHR5IG9mICVkIHNlY29uZHMgZm9yICVzIiwgdCwKKyAJCSAgICBhZGRybmV0bWFzaywgcGVu YWx0eS0+YWN0aXZlID8gImFjdGl2ZSIgOiAiZGVmZXJyZWQiLAorIAkJICAgIHBlbmFsdHlfc2Vj cywgcmVhc29uKTsKKyAJCWlmICgrKygqbnBlbmFsdGllc3ApID4gKHNpemVfdCltYXhfc291cmNl cykKK0BAIC00NDYsNyArNDQ4LDcgQEAgc3JjbGltaXRfcGVuYWxpc2Uoc3RydWN0IHhhZGRyICph ZGRyLCBpbgorIAkJZXhpc3RpbmctPmV4cGlyeSA9IG5vdyArIHBlbmFsdHlfY2ZnLnBlbmFsdHlf bWF4OworIAlpZiAoZXhpc3RpbmctPmV4cGlyeSAtIG5vdyA+IHBlbmFsdHlfY2ZnLnBlbmFsdHlf bWluICYmCisgCSAgICAhZXhpc3RpbmctPmFjdGl2ZSkgeworLQkJdmVyYm9zZV9mKCIlczogYWN0 aXZhdGluZyAlcyBwZW5hbHR5IG9mICVsbGQgc2Vjb25kcyBmb3IgJXMiLAorKwkJbG9naXRfZigi JXM6IGFjdGl2YXRpbmcgJXMgcGVuYWx0eSBvZiAlbGxkIHNlY29uZHMgZm9yICVzIiwKKyAJCSAg ICBhZGRybmV0bWFzaywgdCwgKGxvbmcgbG9uZykoZXhpc3RpbmctPmV4cGlyeSAtIG5vdyksCisg CQkgICAgcmVhc29uKTsKKyAJCWV4aXN0aW5nLT5hY3RpdmUgPSAxOworZGlmZiAtLWNvbG9yIC1y dU5wIGEvc3NoZC5jIGIvc3NoZC5jCistLS0gYS9zc2hkLmMJMjAyNi0wMy0wNiAxMzoxMDo1Mi42 NTM2MTc1NDggKzAxMDAKKysrKyBiL3NzaGQuYwkyMDI2LTAzLTA2IDEzOjI0OjUwLjg2NTA3OTk5 OCArMDEwMAorQEAgLTI5MSw4ICsyOTEsMTAgQEAgY2hpbGRfZmluaXNoKHN0cnVjdCBlYXJseV9j aGlsZCAqY2hpbGQpCisgeworIAlpZiAoY2hpbGRyZW5fYWN0aXZlID09IDApCisgCQlmYXRhbF9m KCJpbnRlcm5hbCBlcnJvcjogY2hpbGRyZW5fYWN0aXZlIHVuZGVyZmxvdyIpOworLQlpZiAoY2hp bGQtPnBpcGVmZCAhPSAtMSkKKysJaWYgKGNoaWxkLT5waXBlZmQgIT0gLTEpIHsKKysJCXNyY2xp bWl0X2RvbmUoY2hpbGQtPnBpcGVmZCk7CisgCQljbG9zZShjaGlsZC0+cGlwZWZkKTsKKysJfQor IAlmcmVlKGNoaWxkLT5pZCk7CisgCW1lbXNldChjaGlsZCwgJ1wwJywgc2l6ZW9mKCpjaGlsZCkp OworIAljaGlsZC0+cGlwZWZkID0gLTE7CitAQCAtMzExLDYgKzMxMyw3IEBAIGNoaWxkX2Nsb3Nl KHN0cnVjdCBlYXJseV9jaGlsZCAqY2hpbGQsIGkKKyAJaWYgKCFxdWlldCkKKyAJCWRlYnVnX2Yo ImVudGVyJXMiLCBmb3JjZV9maW5hbCA/ICIgKGZvcmNpbmcpIiA6ICIiKTsKKyAJaWYgKGNoaWxk LT5waXBlZmQgIT0gLTEpIHsKKysJCXNyY2xpbWl0X2RvbmUoY2hpbGQtPnBpcGVmZCk7CisgCQlj bG9zZShjaGlsZC0+cGlwZWZkKTsKKyAJCWNoaWxkLT5waXBlZmQgPSAtMTsKKyAJfQorQEAgLTk3 OCwxMCArOTgxLDExIEBAIHNlcnZlcl9hY2NlcHRfbG9vcChpbnQgKnNvY2tfaW4sIGludCAqc28K KyAJCQkJfQorIAkJCQkvKiBGQUxMVEhST1VHSCAqLworIAkJCWNhc2UgMDoKKy0JCQkJLyogY2hp bGQgZXhpdGVkIHByZWF1dGggKi8KKysJCQkJLyogY2hpbGQgY2xvc2VkIHBpcGUgKi8KKyAJCQkJ aWYgKGNoaWxkcmVuW2ldLmVhcmx5KQorIAkJCQkJbGlzdGVuaW5nLS07CistCQkJCXNyY2xpbWl0 X2RvbmUoY2hpbGRyZW5baV0ucGlwZWZkKTsKKysJCQkJZGVidWczX2YoImNoaWxkICVsdSBmb3Ig JXMgY2xvc2VkIHBpcGUiLAorKwkJCQkgICAgKGxvbmcpY2hpbGRyZW5baV0ucGlkLCBjaGlsZHJl bltpXS5pZCk7CisgCQkJCWNoaWxkX2Nsb3NlKCYoY2hpbGRyZW5baV0pLCAwLCAwKTsKKyAJCQkJ YnJlYWs7CisgCQkJY2FzZSAxOgorQEAgLTEwMDMsNiArMTAwNywxMiBAQCBzZXJ2ZXJfYWNjZXB0 X2xvb3AoaW50ICpzb2NrX2luLCBpbnQgKnNvCisgCQkJCQkgICAgImNoaWxkICVsZCBmb3IgJXMg aW4gc3RhdGUgJWQiLAorIAkJCQkJICAgIChpbnQpYywgKGxvbmcpY2hpbGRyZW5baV0ucGlkLAor IAkJCQkJICAgIGNoaWxkcmVuW2ldLmlkLCBjaGlsZHJlbltpXS5lYXJseSk7CisrCisrCQkJCQlp ZiAoY2hpbGRyZW5baV0uZWFybHkpCisrCQkJCQkJbGlzdGVuaW5nLS07CisrCQkJCQlpZiAoY2hp bGRyZW5baV0ucGlkID4gMCkKKysJCQkJCQlraWxsKGNoaWxkcmVuW2ldLnBpZCwgU0lHVEVSTSk7 CisrCQkJCQljaGlsZF9jbG9zZSgmKGNoaWxkcmVuW2ldKSwgMCwgMCk7CisgCQkJCX0KKyAJCQkJ YnJlYWs7CisgCQkJfQoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtbXV4LWFza3Bhc3MtY2hl Y2sucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLW11eC1hc2twYXNzLWNoZWNrLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNzYyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9v cGVuc3NoLTkuOXAxLW11eC1hc2twYXNzLWNoZWNrLnBhdGNoCkBAIC0wLDAgKzEsMjAgQEAKK2Rp ZmYgLS1jb2xvciAtcnVOcCBhL211eC5jIGIvbXV4LmMKKy0tLSBhL211eC5jCTIwMjQtMDktMjAg MDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9tdXguYwkyMDI2LTA0LTA5IDE1OjAyOjM2 LjAxNjE5ODgxNCArMDIwMAorQEAgLTExMzcsNiArMTEzNywxNiBAQCBtdXhfbWFzdGVyX3Byb2Nl c3NfcHJveHkoc3RydWN0IHNzaCAqc3NoCisgCisgCWRlYnVnX2YoImNoYW5uZWwgJWQ6IHByb3h5 IHJlcXVlc3QiLCBjLT5zZWxmKTsKKyAKKysJaWYgKG9wdGlvbnMuY29udHJvbF9tYXN0ZXIgPT0g U1NIQ1RMX01BU1RFUl9BU0sgfHwKKysJICAgIG9wdGlvbnMuY29udHJvbF9tYXN0ZXIgPT0gU1NI Q1RMX01BU1RFUl9BVVRPX0FTSykgeworKwkJaWYgKCFhc2tfcGVybWlzc2lvbigiQWxsb3cgbXVs dGlwbGV4IHByb3h5IGNvbm5lY3Rpb24/IikpIHsKKysJCQlkZWJ1ZzJfZigicHJveHkgcmVmdXNl ZCBieSB1c2VyIik7CisrCQkJcmVwbHlfZXJyb3IocmVwbHksIE1VWF9TX1BFUk1JU1NJT05fREVO SUVELCByaWQsCisrCQkJICAgICJQZXJtaXNzaW9uIGRlbmllZCIpOworKwkJCXJldHVybiAwOwor KwkJfQorKwl9CisrCisgCWMtPm11eF9yY2IgPSBjaGFubmVsX3Byb3h5X2Rvd25zdHJlYW07Cisg CWlmICgociA9IHNzaGJ1Zl9wdXRfdTMyKHJlcGx5LCBNVVhfU19QUk9YWSkpICE9IDAgfHwKKyAJ ICAgIChyID0gc3NoYnVmX3B1dF91MzIocmVwbHksIHJpZCkpICE9IDApCgpkaWZmIC0tZ2l0IGEv b3BlbnNzaC05LjlwMS1wcm94eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzLnBhdGNoIGIv b3BlbnNzaC05LjlwMS1wcm94eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZWU0MTUKLS0tIC9kZXYvbnVsbAor KysgYi9vcGVuc3NoLTkuOXAxLXByb3h5anVtcC11c2VybmFtZS12YWxpZGl0eS1jaGVja3MucGF0 Y2gKQEAgLTAsMCArMSw0MDIgQEAKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlYWRjb25mLmMgYi9y ZWFkY29uZi5jCistLS0gYS9yZWFkY29uZi5jCTIwMjYtMDQtMTAgMTU6NDI6NTAuNjkzNzI1ODIw ICswMjAwCisrKysgYi9yZWFkY29uZi5jCTIwMjYtMDQtMTAgMTU6NDk6NTcuNDQxMTEwMjg3ICsw MjAwCitAQCAtMTUzMyw5ICsxNTMzLDYgQEAgcGFyc2VfY2hhcl9hcnJheToKKyAKKyAJY2FzZSBv UHJveHlDb21tYW5kOgorIAkJY2hhcnB0ciA9ICZvcHRpb25zLT5wcm94eV9jb21tYW5kOworLQkJ LyogSWdub3JlIFByb3h5Q29tbWFuZCBpZiBQcm94eUp1bXAgYWxyZWFkeSBzcGVjaWZpZWQgKi8K Ky0JCWlmIChvcHRpb25zLT5qdW1wX2hvc3QgIT0gTlVMTCkKKy0JCQljaGFycHRyID0gJm9wdGlv bnMtPmp1bXBfaG9zdDsgLyogU2tpcCBiZWxvdyAqLworIHBhcnNlX2NvbW1hbmQ6CisgCQlpZiAo c3RyID09IE5VTEwpIHsKKyAJCQllcnJvcigiJS4yMDBzIGxpbmUgJWQ6IE1pc3NpbmcgYXJndW1l bnQuIiwKK0BAIC0xNTU2LDcgKzE1NTMsNyBAQCBwYXJzZV9jb21tYW5kOgorIAkJfQorIAkJbGVu ID0gc3Ryc3BuKHN0ciwgV0hJVEVTUEFDRSAiPSIpOworIAkJLyogWFhYIHVzZSBhcmd2PyAqLwor LQkJaWYgKHBhcnNlX2p1bXAoc3RyICsgbGVuLCBvcHRpb25zLCAqYWN0aXZlcCkgPT0gLTEpIHsK KysJCWlmIChwYXJzZV9qdW1wKHN0ciArIGxlbiwgb3B0aW9ucywgY21kbGluZSwgKmFjdGl2ZXAp ID09IC0xKSB7CisgCQkJZXJyb3IoIiUuMjAwcyBsaW5lICVkOiBJbnZhbGlkIFByb3h5SnVtcCBc IiVzXCIiLAorIAkJCSAgICBmaWxlbmFtZSwgbGluZW51bSwgc3RyICsgbGVuKTsKKyAJCQlnb3Rv IG91dDsKK0BAIC0zMzcwLDY1ICszMzY3LDExNiBAQCBwYXJzZV9mb3J3YXJkKHN0cnVjdCBGb3J3 YXJkICpmd2QsIGNvbnN0CisgfQorIAorIGludAorLXBhcnNlX2p1bXAoY29uc3QgY2hhciAqcywg T3B0aW9ucyAqbywgaW50IGFjdGl2ZSkKKytzc2hfdmFsaWRfaG9zdG5hbWUoY29uc3QgY2hhciAq cykKKyB7CistCWNoYXIgKm9yaWcsICpzZHVwLCAqY3A7CistCWNoYXIgKmhvc3QgPSBOVUxMLCAq dXNlciA9IE5VTEw7CistCWludCByLCByZXQgPSAtMSwgcG9ydCA9IC0xLCBmaXJzdDsKKysJc2l6 ZV90IGk7CisgCistCWFjdGl2ZSAmPSBvLT5wcm94eV9jb21tYW5kID09IE5VTEwgJiYgby0+anVt cF9ob3N0ID09IE5VTEw7CisrCWlmICgqcyA9PSAnLScpCisrCQlyZXR1cm4gMDsKKysJZm9yIChp ID0gMDsgc1tpXSAhPSAwOyBpKyspIHsKKysJCWlmIChzdHJjaHIoIidgXCIkXFw7Jjw+fCgpe30s Iiwgc1tpXSkgIT0gTlVMTCB8fAorKwkJICAgIGlzc3BhY2UoKHVfY2hhcilzW2ldKSB8fCBpc2Nu dHJsKCh1X2NoYXIpc1tpXSkpCisrCQkJcmV0dXJuIDA7CisrCX0KKysJcmV0dXJuIDE7CisrfQor IAorLQlvcmlnID0gc2R1cCA9IHhzdHJkdXAocyk7CisraW50Cisrc3NoX3ZhbGlkX3J1c2VyKGNv bnN0IGNoYXIgKnMpCisreworKwlzaXplX3QgaTsKKysKKysJaWYgKCpzID09ICctJykKKysJCXJl dHVybiAwOworKwlmb3IgKGkgPSAwOyBzW2ldICE9IDA7IGkrKykgeworKwkJaWYgKGlzY250cmwo KHVfY2hhcilzW2ldKSkKKysJCQlyZXR1cm4gMDsKKysJCWlmIChzdHJjaHIoIidgXCI7Jjw+fCgp e30iLCBzW2ldKSAhPSBOVUxMKQorKwkJCXJldHVybiAwOworKwkJLyogRGlzYWxsb3cgJy0nIGFm dGVyIHdoaXRlc3BhY2UgKi8KKysJCWlmIChpc3NwYWNlKCh1X2NoYXIpc1tpXSkgJiYgc1tpICsg MV0gPT0gJy0nKQorKwkJCXJldHVybiAwOworKwkJLyogRGlzYWxsb3cgXCBpbiBsYXN0IHBvc2l0 aW9uICovCisrCQlpZiAoc1tpXSA9PSAnXFwnICYmIHNbaSArIDFdID09ICdcMCcpCisrCQkJcmV0 dXJuIDA7CisrCX0KKysJcmV0dXJuIDE7CisrfQorKworK2ludAorK3BhcnNlX2p1bXAoY29uc3Qg Y2hhciAqcywgT3B0aW9ucyAqbywgaW50IHN0cmljdCwgaW50IGFjdGl2ZSkKKyt7CisrCWNoYXIg Km9yaWcgPSBOVUxMLCAqc2R1cCA9IE5VTEwsICpjcDsKKysJY2hhciAqdG1wX3VzZXIgPSBOVUxM LCAqdG1wX2hvc3QgPSBOVUxMLCAqaG9zdCA9IE5VTEwsICp1c2VyID0gTlVMTDsKKysJaW50IHIs IHJldCA9IC0xLCB0bXBfcG9ydCA9IC0xLCBwb3J0ID0gLTEsIGZpcnN0ID0gMTsKKysKKysJaWYg KHN0cmNhc2VjbXAocywgIm5vbmUiKSA9PSAwKSB7CisrCQlpZiAoYWN0aXZlICYmIG8tPmp1bXBf aG9zdCA9PSBOVUxMKSB7CisrCQkJby0+anVtcF9ob3N0ID0geHN0cmR1cCgibm9uZSIpOworKwkJ CW8tPmp1bXBfcG9ydCA9IDA7CisrCQl9CisrCQlyZXR1cm4gMDsKKysJfQorIAorLQkvKiBSZW1v dmUgY29tbWVudCBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSAqLworKwlvcmlnID0geHN0cmR1cChz KTsKKyAJaWYgKChjcCA9IHN0cmNocihvcmlnLCAnIycpKSAhPSBOVUxMKQorIAkJKmNwID0gJ1ww JzsKKyAJcnRyaW0ob3JpZyk7CisgCistCWZpcnN0ID0gYWN0aXZlOworKwlhY3RpdmUgJj0gby0+ cHJveHlfY29tbWFuZCA9PSBOVUxMICYmIG8tPmp1bXBfaG9zdCA9PSBOVUxMOworKwlzZHVwID0g eHN0cmR1cChvcmlnKTsKKyAJZG8geworLQkJaWYgKHN0cmNhc2VjbXAocywgIm5vbmUiKSA9PSAw KQorLQkJCWJyZWFrOworKwkJLyogV29yayBiYWNrd2FyZHMgdGhyb3VnaCBzdHJpbmcgKi8KKyAJ CWlmICgoY3AgPSBzdHJyY2hyKHNkdXAsICcsJykpID09IE5VTEwpCisgCQkJY3AgPSBzZHVwOyAv KiBsYXN0ICovCisgCQllbHNlCisgCQkJKmNwKysgPSAnXDAnOworIAorLQkJaWYgKGZpcnN0KSB7 CistCQkJLyogRmlyc3QgYXJndW1lbnQgYW5kIGNvbmZpZ3VyYXRpb24gaXMgYWN0aXZlICovCist CQkJciA9IHBhcnNlX3NzaF91cmkoY3AsICZ1c2VyLCAmaG9zdCwgJnBvcnQpOworLQkJCWlmIChy ID09IC0xIHx8IChyID09IDEgJiYKKy0JCQkgICAgcGFyc2VfdXNlcl9ob3N0X3BvcnQoY3AsICZ1 c2VyLCAmaG9zdCwgJnBvcnQpICE9IDApKQorKwkJciA9IHBhcnNlX3NzaF91cmkoY3AsICZ0bXBf dXNlciwgJnRtcF9ob3N0LCAmdG1wX3BvcnQpOworKwkJaWYgKHIgPT0gLTEgfHwgKHIgPT0gMSAm JiBwYXJzZV91c2VyX2hvc3RfcG9ydChjcCwKKysJCSAgICAmdG1wX3VzZXIsICZ0bXBfaG9zdCwg JnRtcF9wb3J0KSAhPSAwKSkKKysJCQlnb3RvIG91dDsgLyogZXJyb3IgYWxyZWFkeSBsb2dnZWQg Ki8KKysJCWlmIChzdHJpY3QpIHsKKysJCQlpZiAoIXNzaF92YWxpZF9ob3N0bmFtZSh0bXBfaG9z dCkpIHsKKysJCQkJZXJyb3JfZigiaW52YWxpZCBob3N0bmFtZSBcIiVzXCIiLCB0bXBfaG9zdCk7 CisgCQkJCWdvdG8gb3V0OworLQkJfSBlbHNlIHsKKy0JCQkvKiBTdWJzZXF1ZW50IGFyZ3VtZW50 IG9yIGluYWN0aXZlIGNvbmZpZ3VyYXRpb24gKi8KKy0JCQlyID0gcGFyc2Vfc3NoX3VyaShjcCwg TlVMTCwgTlVMTCwgTlVMTCk7CistCQkJaWYgKHIgPT0gLTEgfHwgKHIgPT0gMSAmJgorLQkJCSAg ICBwYXJzZV91c2VyX2hvc3RfcG9ydChjcCwgTlVMTCwgTlVMTCwgTlVMTCkgIT0gMCkpCisrCQkJ fQorKwkJCWlmICh0bXBfdXNlciAhPSBOVUxMICYmICFzc2hfdmFsaWRfcnVzZXIodG1wX3VzZXIp KSB7CisrCQkJCWVycm9yX2YoImludmFsaWQgdXNlcm5hbWUgXCIlc1wiIiwgdG1wX3VzZXIpOwor IAkJCQlnb3RvIG91dDsKKysJCQl9CisrCQl9CisrCQlpZiAoZmlyc3QpIHsKKysJCQl1c2VyID0g dG1wX3VzZXI7CisrCQkJaG9zdCA9IHRtcF9ob3N0OworKwkJCXBvcnQgPSB0bXBfcG9ydDsKKysJ CQl0bXBfdXNlciA9IHRtcF9ob3N0ID0gTlVMTDsgLyogdHJhbnNmZXJyZWQgKi8KKyAJCX0KKyAJ CWZpcnN0ID0gMDsgLyogb25seSBjaGVjayBzeW50YXggZm9yIHN1YnNlcXVlbnQgaG9zdHMgKi8K KysJCWZyZWUodG1wX3VzZXIpOworKwkJZnJlZSh0bXBfaG9zdCk7CisrCQl0bXBfdXNlciA9IHRt cF9ob3N0ID0gTlVMTDsKKysJCXRtcF9wb3J0ID0gLTE7CisgCX0gd2hpbGUgKGNwICE9IHNkdXAp OworKworIAkvKiBzdWNjZXNzICovCisgCWlmIChhY3RpdmUpIHsKKy0JCWlmIChzdHJjYXNlY21w KHMsICJub25lIikgPT0gMCkgeworLQkJCW8tPmp1bXBfaG9zdCA9IHhzdHJkdXAoIm5vbmUiKTsK Ky0JCQlvLT5qdW1wX3BvcnQgPSAwOworLQkJfSBlbHNlIHsKKy0JCQlvLT5qdW1wX3VzZXIgPSB1 c2VyOworLQkJCW8tPmp1bXBfaG9zdCA9IGhvc3Q7CistCQkJby0+anVtcF9wb3J0ID0gcG9ydDsK Ky0JCQlvLT5wcm94eV9jb21tYW5kID0geHN0cmR1cCgibm9uZSIpOworLQkJCXVzZXIgPSBob3N0 ID0gTlVMTDsKKy0JCQlpZiAoKGNwID0gc3RycmNocihzLCAnLCcpKSAhPSBOVUxMICYmIGNwICE9 IHMpIHsKKy0JCQkJby0+anVtcF9leHRyYSA9IHhzdHJkdXAocyk7CistCQkJCW8tPmp1bXBfZXh0 cmFbY3AgLSBzXSA9ICdcMCc7CistCQkJfQorKwkJby0+anVtcF91c2VyID0gdXNlcjsKKysJCW8t Pmp1bXBfaG9zdCA9IGhvc3Q7CisrCQlvLT5qdW1wX3BvcnQgPSBwb3J0OworKwkJby0+cHJveHlf Y29tbWFuZCA9IHhzdHJkdXAoIm5vbmUiKTsKKysJCXVzZXIgPSBob3N0ID0gTlVMTDsgLyogdHJh bnNmZXJyZWQgKi8KKysJCWlmIChvcmlnICE9IE5VTEwgJiYgKGNwID0gc3RycmNocihvcmlnLCAn LCcpKSAhPSBOVUxMKSB7CisrCQkJby0+anVtcF9leHRyYSA9IHhzdHJkdXAob3JpZyk7CisrCQkJ by0+anVtcF9leHRyYVtjcCAtIG9yaWddID0gJ1wwJzsKKyAJCX0KKyAJfQorIAlyZXQgPSAwOwor ICBvdXQ6CisgCWZyZWUob3JpZyk7CisrCWZyZWUoc2R1cCk7CisrCWZyZWUodG1wX3VzZXIpOwor KwlmcmVlKHRtcF9ob3N0KTsKKyAJZnJlZSh1c2VyKTsKKyAJZnJlZShob3N0KTsKKyAJcmV0dXJu IHJldDsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlYWRjb25mLmggYi9yZWFkY29uZi5oCistLS0g YS9yZWFkY29uZi5oCTIwMjYtMDQtMTAgMTU6NDI6NTAuNDcwNjk3NzE0ICswMjAwCisrKysgYi9y ZWFkY29uZi5oCTIwMjYtMDQtMTAgMTU6NDk6NTcuNDQyMTEwMzA2ICswMjAwCitAQCAtMjQ5LDcg KzI0OSw5IEBAIGludAkgcHJvY2Vzc19jb25maWdfbGluZShPcHRpb25zICosIHN0cnUKKyBpbnQJ IHJlYWRfY29uZmlnX2ZpbGUoY29uc3QgY2hhciAqLCBzdHJ1Y3QgcGFzc3dkICosIGNvbnN0IGNo YXIgKiwKKyAgICAgY29uc3QgY2hhciAqLCBPcHRpb25zICosIGludCwgaW50ICopOworIGludAkg cGFyc2VfZm9yd2FyZChzdHJ1Y3QgRm9yd2FyZCAqLCBjb25zdCBjaGFyICosIGludCwgaW50KTsK Ky1pbnQJIHBhcnNlX2p1bXAoY29uc3QgY2hhciAqLCBPcHRpb25zICosIGludCk7CisraW50CSBz c2hfdmFsaWRfaG9zdG5hbWUoY29uc3QgY2hhciAqKTsKKytpbnQJIHNzaF92YWxpZF9ydXNlcihj b25zdCBjaGFyICopOworK2ludAkgcGFyc2VfanVtcChjb25zdCBjaGFyICosIE9wdGlvbnMgKiwg aW50LCBpbnQpOworIGludAkgcGFyc2Vfc3NoX3VyaShjb25zdCBjaGFyICosIGNoYXIgKiosIGNo YXIgKiosIGludCAqKTsKKyBpbnQJIGRlZmF1bHRfc3NoX3BvcnQodm9pZCk7CisgaW50CSBvcHRp b25fY2xlYXJfb3Jfbm9uZShjb25zdCBjaGFyICopOworZGlmZiAtLWNvbG9yIC1ydU5wIGEvcmVn cmVzcy9NYWtlZmlsZSBiL3JlZ3Jlc3MvTWFrZWZpbGUKKy0tLSBhL3JlZ3Jlc3MvTWFrZWZpbGUJ MjAyNi0wNC0xMCAxNTo0Mjo1MC41MzM4MTU3MDIgKzAyMDAKKysrKyBiL3JlZ3Jlc3MvTWFrZWZp bGUJMjAyNi0wNC0xMCAxNjowNzozMC41NjYwOTQ0NTAgKzAyMDAKK0BAIC0xMTEsNyArMTExLDgg QEAgTFRFU1RTPSAJY29ubmVjdCBcCisgCQlhZ2VudC1wa2NzMTEtcmVzdHJpY3QgXAorIAkJYWdl bnQtcGtjczExLWNlcnQgXAorIAkJcGVuYWx0eSBcCistCQlwZW5hbHR5LWV4cGlyZQorKwkJcGVu YWx0eS1leHBpcmUgXAorKwkJcHJveHlqdW1wCisgCisgSU5URVJPUF9URVNUUz0JcHV0dHktdHJh bnNmZXIgcHV0dHktY2lwaGVycyBwdXR0eS1rZXggY29uY2gtY2lwaGVycworIElOVEVST1BfVEVT VFMrPQlkcm9wYmVhci1jaXBoZXJzIGRyb3BiZWFyLWtleAorZGlmZiAtLWNvbG9yIC1ydU5wIGEv cmVncmVzcy9wcm94eWp1bXAuc2ggYi9yZWdyZXNzL3Byb3h5anVtcC5zaAorLS0tIGEvcmVncmVz cy9wcm94eWp1bXAuc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBi L3JlZ3Jlc3MvcHJveHlqdW1wLnNoCTIwMjYtMDQtMTAgMTY6MDc6NTUuMjI1OTU4MjA2ICswMjAw CitAQCAtMCwwICsxLDEwMiBAQAorKyMJJE9wZW5CU0Q6IHByb3h5anVtcC5zaCx2IDEuMSAyMDI2 LzAzLzMwIDA3OjE5OjAyIGRqbSBFeHAgJAorKyMJUGxhY2VkIGluIHRoZSBQdWJsaWMgRG9tYWlu LgorKworK3RpZD0icHJveHlqdW1wIgorKworKyMgUGFyc2luZyB0ZXN0cworK3ZlcmJvc2UgImJh c2ljIHBhcnNpbmciCisrZm9yIGpzcGVjIGluIFwKKysJImp1bXAxIiBcCisrCSJ1c2VyQGp1bXAx IiBcCisrCSJqdW1wMToyMjIyIiBcCisrCSJ1c2VyQGp1bXAxOjIyMjIiIFwKKysJImp1bXAxLGp1 bXAyIiBcCisrCSJ1c2VyMUBqdW1wMToyMjIxLHVzZXIyQGp1bXAyOjIyMjIiIFwKKysJInNzaDov L3VzZXJAaG9zdDoyMjIzIiBcCisrCTsgZG8KKysJY2FzZSAiJGpzcGVjIiBpbgorKwkianVtcDEi KQkJZXhwZWN0ZWQ9Imp1bXAxIiA7OworKwkidXNlckBqdW1wMSIpCQlleHBlY3RlZD0idXNlckBq dW1wMSIgOzsKKysJImp1bXAxOjIyMjIiKQkJZXhwZWN0ZWQ9Imp1bXAxOjIyMjIiIDs7CisrCSJ1 c2VyQGp1bXAxOjIyMjIiKQlleHBlY3RlZD0idXNlckBqdW1wMToyMjIyIiA7OworKwkianVtcDEs anVtcDIiKQkJZXhwZWN0ZWQ9Imp1bXAxLGp1bXAyIiA7OworKwkidXNlcjFAanVtcDE6MjIyMSx1 c2VyMkBqdW1wMjoyMjIyIikKKysJCWV4cGVjdGVkPSJ1c2VyMUBqdW1wMToyMjIxLHVzZXIyQGp1 bXAyOjIyMjIiIDs7CisrCSJzc2g6Ly91c2VyQGhvc3Q6MjIyMyIpCWV4cGVjdGVkPSJ1c2VyQGhv c3Q6MjIyMyIgOzsKKysJZXNhYworKwlmPWAke1NTSH0gLUdGIC9kZXYvbnVsbCAtb1Byb3h5SnVt cD0iJGpzcGVjIiBzb21laG9zdCB8IFwKKysJCWF3ayAnL15wcm94eWp1bXAgL3twcmludCAkMn0n YAorKwlpZiBbICIkZiIgIT0gIiRleHBlY3RlZCIgXTsgdGhlbgorKwkJZmFpbCAiUHJveHlKdW1w ICRqc3BlYzogZXhwZWN0ZWQgJGV4cGVjdGVkLCBnb3QgJGYiCisrCWZpCisrCWY9YCR7U1NIfSAt R0YgL2Rldi9udWxsIC1KICIkanNwZWMiIHNvbWVob3N0IHwgXAorKwkJYXdrICcvXnByb3h5anVt cCAve3ByaW50ICQyfSdgCisrCWlmIFsgIiRmIiAhPSAiJGV4cGVjdGVkIiBdOyB0aGVuCisrCQlm YWlsICJzc2ggLUogJGpzcGVjOiBleHBlY3RlZCAkZXhwZWN0ZWQsIGdvdCAkZiIKKysJZmkKKytk b25lCisrCisrdmVyYm9zZSAicHJlY2VkZW5jZSIKKytmPWAke1NTSH0gLUdGIC9kZXYvbnVsbCAt b1Byb3h5SnVtcD1ub25lIC1vUHJveHlKdW1wPWp1bXAxIHNvbWVob3N0IHwgXAorKwlncmVwICJe cHJveHlqdW1wICJgCisraWYgWyAtbiAiJGYiIF07IHRoZW4KKysJZmFpbCAiUHJveHlKdW1wPW5v bmUgZmlyc3QgZGlkIG5vdCB3aW4iCisrZmkKKytmPWAke1NTSH0gLUdGIC9kZXYvbnVsbCAtb1By b3h5SnVtcD1qdW1wIC1vUHJveHlDb21tYW5kPWZvbyBzb21laG9zdCB8IFwKKysJZ3JlcCAiXnBy b3h5anVtcCAiYAorK2lmIFsgIiRmIiAhPSAicHJveHlqdW1wIGp1bXAiIF07IHRoZW4KKysJZmFp bCAiUHJveHlKdW1wIGZpcnN0IGRpZCBub3Qgd2luIG92ZXIgUHJveHlDb21tYW5kIgorK2ZpCisr Zj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94eUNvbW1hbmQ9Zm9vIC1vUHJveHlKdW1wPWp1 bXAgc29tZWhvc3QgfCBcCisrCWdyZXAgIl5wcm94eWNvbW1hbmQgImAKKytpZiBbICIkZiIgIT0g InByb3h5Y29tbWFuZCBmb28iIF07IHRoZW4KKysJZmFpbCAiUHJveHlDb21tYW5kIGZpcnN0IGRp ZCBub3Qgd2luIG92ZXIgUHJveHlKdW1wIgorK2ZpCisrCisrdmVyYm9zZSAiY29tbWFuZC1saW5l IC1KIGludmFsaWQgY2hhcmFjdGVycyIKKytjcCAkT0JKL3NzaF9jb25maWcgJE9CSi9zc2hfY29u ZmlnLm9yaWcKKytmb3IganNwZWMgaW4gXAorKwkiaG9zdDt3aXRoO3NlbWljb2xvbiIgXAorKwki aG9zdCd3aXRoJ3F1b3RlIiBcCisrCSJob3N0XGB3aXRoXGBiYWNrdGljayIgXAorKwkiaG9zdFwk d2l0aFwkZG9sbGFyIiBcCisrCSJob3N0KHdpdGgpYnJhY2UiIFwKKysJInVzZXI7d2l0aDtzZW1p Y29sb25AaG9zdCIgXAorKwkidXNlcid3aXRoJ3F1b3RlQGhvc3QiIFwKKysJInVzZXJcYHdpdGhc YGJhY2t0aWNrQGhvc3QiIFwKKysJInVzZXIod2l0aClicmFjZUBob3N0IiA7IGRvCisrCSR7U1NI fSAtR0YgL2Rldi9udWxsIC1KICIkanNwZWMiIHNvbWVob3N0ID4vZGV2L251bGwgMj4mMQorKwlp ZiBbICQ/IC1uZSAyNTUgXTsgdGhlbgorKwkJZmFpbCAic3NoIC1KIFwiJGpzcGVjXCIgd2FzIG5v dCByZWplY3RlZCIKKysJZmkKKysJJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94eUp1bXA9IiRq c3BlYyIgc29tZWhvc3QgPi9kZXYvbnVsbCAyPiYxCisrCWlmIFsgJD8gLW5lIDI1NSBdOyB0aGVu CisrCQlmYWlsICJzc2ggLW9Qcm94eUp1bXA9XCIkanNwZWNcIiB3YXMgbm90IHJlamVjdGVkIgor KwlmaQorK2RvbmUKKysjIFNwZWNpYWwgY2hhcmFjdGVycyBzaG91bGQgYmUgYWNjZXB0ZWQgaW4g dGhlIGNvbmZpZyB0aG91Z2guCisrZWNobyAiUHJveHlKdW1wIHVzZXI7d2l0aDtzZW1pY29sb25A aG9zdDt3aXRoO3NlbWljb2xvbiIgPj4gJE9CSi9zc2hfY29uZmlnCisrZj1gJHtTU0h9IC1HRiAk T0JKL3NzaF9jb25maWcgc29tZWhvc3QgfCBncmVwICJecHJveHlqdW1wICJgCisraWYgWyAiJGYi ICE9ICJwcm94eWp1bXAgdXNlcjt3aXRoO3NlbWljb2xvbkBob3N0O3dpdGg7c2VtaWNvbG9uIiBd OyB0aGVuCisrCWZhaWwgIlByb3h5SnVtcCBkaWQgbm90IGFsbG93IHNwZWNpYWwgY2hhcmFjdGVy cyBpbiBjb25maWc6ICRmIgorK2ZpCisrCisrdmVyYm9zZSAiZnVuY3Rpb25hbCB0ZXN0IgorKyMg VXNlIGRpZmZlcmVudCBuYW1lcyB0byBhdm9pZCB0aGUgbG9vcCBkZXRlY3Rpb24gaW4gc3NoLmMK KytncmVwIC1pdiBIb3N0S2V5QWxpYXMgJE9CSi9zc2hfY29uZmlnLm9yaWcgPiAkT0JKL3NzaF9j b25maWcKKytjYXQgPDwgX0VPRiA+PiAkT0JKL3NzaF9jb25maWcKKytIb3N0IGp1bXAtaG9zdAor KwlIb3N0a2V5QWxpYXMganVtcC1ob3N0CisrSG9zdCB0YXJnZXQtaG9zdAorKwlIb3N0a2V5QWxp YXMgdGFyZ2V0LWhvc3QKKytfRU9GCisrY3AgJE9CSi9rbm93bl9ob3N0cyAkT0JKL2tub3duX2hv c3RzLm9yaWcKKytzZWQgJ3MvXlteIF0qIC9qdW1wLWhvc3QgLycgPCAkT0JKL2tub3duX2hvc3Rz Lm9yaWcgPiAkT0JKL2tub3duX2hvc3RzCisrc2VkICdzL15bXiBdKiAvdGFyZ2V0LWhvc3QgLycg PCAkT0JKL2tub3duX2hvc3RzLm9yaWcgPj4gJE9CSi9rbm93bl9ob3N0cworK3N0YXJ0X3NzaGQK KysKKyt2ZXJib3NlICJmdW5jdGlvbmFsIFByb3h5SnVtcCIKKytyZXM9YCR7UkVBTF9TU0h9IC1G ICRPQkovc3NoX2NvbmZpZyAtSiBqdW1wLWhvc3QgdGFyZ2V0LWhvc3QgZWNobyAiU1VDQ0VTUyIg Mj4vZGV2L251bGxgCisraWYgWyAiJHJlcyIgIT0gIlNVQ0NFU1MiIF07IHRoZW4KKysJZmFpbCAi ZnVuY3Rpb25hbCB0ZXN0IGZhaWxlZDogZXhwZWN0ZWQgU1VDQ0VTUywgZ290ICRyZXMiCisrZmkK K2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaC5jIGIvc3NoLmMKKy0tLSBhL3NzaC5jCTIwMjYtMDQt MTAgMTU6NDI6NTAuNjU3OTEzMTg5ICswMjAwCisrKysgYi9zc2guYwkyMDI2LTA0LTEwIDE2OjA0 OjA3LjQ4OTA0Nzk2NiArMDIwMAorQEAgLTYzOSw0MyArNjM5LDYgQEAgc3NoX2Nvbm5faW5mb19m cmVlKHN0cnVjdCBzc2hfY29ubl9pbmZvCisgCWZyZWUoY2luZm8pOworIH0KKyAKKy1zdGF0aWMg aW50CistdmFsaWRfaG9zdG5hbWUoY29uc3QgY2hhciAqcykKKy17CistCXNpemVfdCBpOworLQor LQlpZiAoKnMgPT0gJy0nKQorLQkJcmV0dXJuIDA7CistCWZvciAoaSA9IDA7IHNbaV0gIT0gMDsg aSsrKSB7CistCQlpZiAoc3RyY2hyKCInYFwiJFxcOyY8PnwoKXt9Iiwgc1tpXSkgIT0gTlVMTCB8 fAorLQkJICAgIGlzc3BhY2UoKHVfY2hhcilzW2ldKSB8fCBpc2NudHJsKCh1X2NoYXIpc1tpXSkp CistCQkJcmV0dXJuIDA7CistCX0KKy0JcmV0dXJuIDE7CistfQorLQorLXN0YXRpYyBpbnQKKy12 YWxpZF9ydXNlcihjb25zdCBjaGFyICpzKQorLXsKKy0Jc2l6ZV90IGk7CistCistCWlmICgqcyA9 PSAnLScpCistCQlyZXR1cm4gMDsKKy0JZm9yIChpID0gMDsgc1tpXSAhPSAwOyBpKyspIHsKKy0J CWlmIChpc2NudHJsKCh1X2NoYXIpc1tpXSkpCistCQkJcmV0dXJuIDA7CistCQlpZiAoc3RyY2hy KCInYFwiOyY8PnwoKXt9Iiwgc1tpXSkgIT0gTlVMTCkKKy0JCQlyZXR1cm4gMDsKKy0JCS8qIERp c2FsbG93ICctJyBhZnRlciB3aGl0ZXNwYWNlICovCistCQlpZiAoaXNzcGFjZSgodV9jaGFyKXNb aV0pICYmIHNbaSArIDFdID09ICctJykKKy0JCQlyZXR1cm4gMDsKKy0JCS8qIERpc2FsbG93IFwg aW4gbGFzdCBwb3NpdGlvbiAqLworLQkJaWYgKHNbaV0gPT0gJ1xcJyAmJiBzW2kgKyAxXSA9PSAn XDAnKQorLQkJCXJldHVybiAwOworLQl9CistCXJldHVybiAxOworLX0KKy0KKyAvKgorICAqIE1h aW4gcHJvZ3JhbSBmb3IgdGhlIHNzaCBjbGllbnQuCisgICovCitAQCAtOTMxLDkgKzg5NCw5IEBA IG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCQkJfQorIAkJCWlmIChvcHRpb25zLnByb3h5X2Nv bW1hbmQgIT0gTlVMTCkKKyAJCQkJZmF0YWwoIkNhbm5vdCBzcGVjaWZ5IC1KIHdpdGggUHJveHlD b21tYW5kIik7CistCQkJaWYgKHBhcnNlX2p1bXAob3B0YXJnLCAmb3B0aW9ucywgMSkgPT0gLTEp CisrCQkJaWYgKHBhcnNlX2p1bXAob3B0YXJnLCAmb3B0aW9ucywgMSwgMSkgPT0gLTEpCisrCisg CQkJCWZhdGFsKCJJbnZhbGlkIC1KIGFyZ3VtZW50Iik7CistCQkJb3B0aW9ucy5wcm94eV9jb21t YW5kID0geHN0cmR1cCgibm9uZSIpOworIAkJCWJyZWFrOworIAkJY2FzZSAndCc6CisgCQkJaWYg KG9wdGlvbnMucmVxdWVzdF90dHkgPT0gUkVRVUVTVF9UVFlfWUVTKQorQEAgLTExODMsMTAgKzEx NDYsMTUgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKKyAJaWYgKCFob3N0KQorIAkJdXNhZ2Uo KTsKKyAKKy0JaWYgKCF2YWxpZF9ob3N0bmFtZShob3N0KSkKKy0JCWZhdGFsKCJob3N0bmFtZSBj b250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMiKTsKKy0JaWYgKG9wdGlvbnMudXNlciAhPSBOVUxM ICYmICF2YWxpZF9ydXNlcihvcHRpb25zLnVzZXIpKQorKwkvKgorKwkgKiBWYWxpZGF0ZSBjb21t YW5kbGluZS1zcGVjaWZpZWQgdmFsdWVzIHRoYXQgZW5kIHVwIGluICV0b2tlbnMKKysJICogYmVm b3JlIHRoZXkgYXJlIHVzZWQgaW4gY29uZmlnIHBhcnNpbmcuCisrCSAqLworKwlpZiAob3B0aW9u cy51c2VyICE9IE5VTEwgJiYgIXNzaF92YWxpZF9ydXNlcihvcHRpb25zLnVzZXIpKQorIAkJZmF0 YWwoInJlbW90ZSB1c2VybmFtZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcnMiKTsKKysJaWYg KCFzc2hfdmFsaWRfaG9zdG5hbWUoaG9zdCkpCisrCQlmYXRhbCgiaG9zdG5hbWUgY29udGFpbnMg aW52YWxpZCBjaGFyYWN0ZXJzIik7CisrCisgCW9wdGlvbnMuaG9zdF9hcmcgPSB4c3RyZHVwKGhv c3QpOworIAorIAkvKiBJbml0aWFsaXplIHRoZSBjb21tYW5kIHRvIGV4ZWN1dGUgb24gcmVtb3Rl IGhvc3QuICovCitAQCAtMTM0Nyw3ICsxMzE1LDggQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikK KyAJCQlzc2hiaW4gPSAic3NoIjsKKyAKKyAJCS8qIENvbnNpc3RlbmN5IGNoZWNrICovCistCQlp ZiAob3B0aW9ucy5wcm94eV9jb21tYW5kICE9IE5VTEwpCisrCQlpZiAob3B0aW9ucy5wcm94eV9j b21tYW5kICE9IE5VTEwgJiYKKysJCSAgICBzdHJjYXNlY21wKG9wdGlvbnMucHJveHlfY29tbWFu ZCwgIm5vbmUiKSAhPSAwKQorIAkJCWZhdGFsKCJpbmNvbnNpc3RlbnQgb3B0aW9uczogUHJveHlD b21tYW5kK1Byb3h5SnVtcCIpOworIAkJLyogTmV2ZXIgdXNlIEZEIHBhc3NpbmcgZm9yIFByb3h5 SnVtcCAqLworIAkJb3B0aW9ucy5wcm94eV91c2VfZmRwYXNzID0gMDsKK0BAIC0xNDY3LDcgKzE0 MzYsNyBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQorIAljaW5mby0+am1waG9zdCA9IHhzdHJk dXAob3B0aW9ucy5qdW1wX2hvc3QgPT0gTlVMTCA/CisgCSAgICAiIiA6IG9wdGlvbnMuanVtcF9o b3N0KTsKKyAKKy0JaWYgKHVzZXJfb25fY29tbWFuZGxpbmUgJiYgIXZhbGlkX3J1c2VyKG9wdGlv bnMudXNlcikpCisrCWlmICh1c2VyX29uX2NvbW1hbmRsaW5lICYmICFzc2hfdmFsaWRfcnVzZXIo b3B0aW9ucy51c2VyKSkKKyAJCWZhdGFsKCJyZW1vdGUgdXNlcm5hbWUgY29udGFpbnMgaW52YWxp ZCBjaGFyYWN0ZXJzIik7CisgCisgCWNpbmZvLT5jb25uX2hhc2hfaGV4ID0gc3NoX2Nvbm5lY3Rp b25faGFzaChjaW5mby0+dGhpc2hvc3QsCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1zY3At Y2xlYXItc2V0dWlkLnBhdGNoIGIvb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhODQ4YTEKLS0tIC9kZXYvbnVs bAorKysgYi9vcGVuc3NoLTkuOXAxLXNjcC1jbGVhci1zZXR1aWQucGF0Y2gKQEAgLTAsMCArMSwx NSBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2NwLmMgYi9zY3AuYworLS0tIGEvc2NwLmMJMjAy Ni0wNC0wNyAxNTo1NDoxMS4xOTM3MzA4NDIgKzAyMDAKKysrKyBiL3NjcC5jCTIwMjYtMDQtMDcg MTU6NTU6NTIuNTI5NDI1NDgxICswMjAwCitAQCAtMTcwNSw4ICsxNzA1LDEwIEBAIHNpbmsoaW50 IGFyZ2MsIGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICoKKyAKKyAJc2V0aW1lcyA9IHRhcmdpc2Rp ciA9IDA7CisgCW1hc2sgPSB1bWFzaygwKTsKKy0JaWYgKCFwZmxhZykKKysJaWYgKCFwZmxhZykg eworKwkJbWFzayB8PSAwNzAwMDsKKyAJCSh2b2lkKSB1bWFzayhtYXNrKTsKKysJfQorIAlpZiAo YXJnYyAhPSAxKSB7CisgCQlydW5fZXJyKCJhbWJpZ3VvdXMgdGFyZ2V0Iik7CisgCQlleGl0KDEp OwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtc3NoZC1uby1kZWxlZ2F0ZS1jcmVkZW50aWFs cy5wYXRjaCBiL29wZW5zc2gtOS45cDEtc3NoZC1uby1kZWxlZ2F0ZS1jcmVkZW50aWFscy5wYXRj aAppbmRleCAyYjcwMTAzLi41OWQwMTIwIDEwMDY0NAotLS0gYS9vcGVuc3NoLTkuOXAxLXNzaGQt bm8tZGVsZWdhdGUtY3JlZGVudGlhbHMucGF0Y2gKKysrIGIvb3BlbnNzaC05LjlwMS1zc2hkLW5v LWRlbGVnYXRlLWNyZWRlbnRpYWxzLnBhdGNoCkBAIC0xLDggKzEsNyBAQAotZGlmZiAtLWdpdCBh L2dzcy1zZXJ2LmMgYi9nc3Mtc2Vydi5jCi1pbmRleCA1YzA0OTFjZjEuLmUyYzUwMWQwYyAxMDA2 NDQKLS0tLSBhL2dzcy1zZXJ2LmMKLSsrKyBiL2dzcy1zZXJ2LmMKLUBAIC01MDksNiArNTA5LDEx IEBAIHNzaF9nc3NhcGlfY2xlYW51cF9jcmVkcyh2b2lkKQorZGlmZiAtLWNvbG9yIC1ydU5wIGEv Z3NzLXNlcnYuYyBiL2dzcy1zZXJ2LmMKKy0tLSBhL2dzcy1zZXJ2LmMJMjAyNi0wMy0xMSAxMzo1 NDo1My4wNzY5MjQ4MjMgKzAxMDAKKysrKyBiL2dzcy1zZXJ2LmMJMjAyNi0wMy0xMSAxNDoxMDo0 MS4yMzI4NTUwODYgKzAxMDAKK0BAIC00OTMsNiArNDkzLDExIEBAIHNzaF9nc3NhcGlfY2xlYW51 cF9jcmVkcyh2b2lkKQogIGludAogIHNzaF9nc3NhcGlfc3RvcmVjcmVkcyh2b2lkKQogIHsKQEAg LTE0LDE5ICsxMywxOCBAQCBpbmRleCA1YzA0OTFjZjEuLmUyYzUwMWQwYyAxMDA2NDQKICAJaWYg KGdzc2FwaV9jbGllbnQubWVjaCAmJiBnc3NhcGlfY2xpZW50Lm1lY2gtPnN0b3JlY3JlZHMpIHsK ICAJCXJldHVybiAoKmdzc2FwaV9jbGllbnQubWVjaC0+c3RvcmVjcmVkcykoJmdzc2FwaV9jbGll bnQpOwogIAl9IGVsc2UKLWRpZmYgLS1naXQgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwotaW5k ZXggYWFiNjUzMjQ0Li4wMmE5ODg4YzkgMTAwNjQ0Ci0tLS0gYS9zZXJ2Y29uZi5jCi0rKysgYi9z ZXJ2Y29uZi5jCi1AQCAtMTQ0LDYgKzE0NCw3IEBAIGluaXRpYWxpemVfc2VydmVyX29wdGlvbnMo U2VydmVyT3B0aW9ucyAqb3B0aW9ucykKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NlcnZjb25mLmMg Yi9zZXJ2Y29uZi5jCistLS0gYS9zZXJ2Y29uZi5jCTIwMjYtMDMtMTEgMTM6NTQ6NTMuMDg2MjYz MTg3ICswMTAwCisrKysgYi9zZXJ2Y29uZi5jCTIwMjYtMDMtMTEgMTQ6MDM6MTAuNzA4NzEzNTI0 ICswMTAwCitAQCAtMTQzLDYgKzE0Myw3IEBAIGluaXRpYWxpemVfc2VydmVyX29wdGlvbnMoU2Vy dmVyT3B0aW9ucwogIAlvcHRpb25zLT5nc3NfYXV0aGVudGljYXRpb249LTE7CiAgCW9wdGlvbnMt Pmdzc19rZXlleCA9IC0xOwogIAlvcHRpb25zLT5nc3NfY2xlYW51cF9jcmVkcyA9IC0xOwogKwlv cHRpb25zLT5nc3NfZGVsZWdfY3JlZHMgPSAtMTsKICAJb3B0aW9ucy0+Z3NzX3N0cmljdF9hY2Nl cHRvciA9IC0xOworIAlvcHRpb25zLT5nc3NfaW5kaWNhdG9ycyA9IE5VTEw7CiAgCW9wdGlvbnMt Pmdzc19zdG9yZV9yZWtleSA9IC0xOwotIAlvcHRpb25zLT5nc3Nfa2V4X2FsZ29yaXRobXMgPSBO VUxMOwotQEAgLTQwMyw2ICs0MDQsOCBAQCBmaWxsX2RlZmF1bHRfc2VydmVyX29wdGlvbnMoU2Vy dmVyT3B0aW9ucyAqb3B0aW9ucykKK0BAIC00MDIsNiArNDAzLDggQEAgZmlsbF9kZWZhdWx0X3Nl cnZlcl9vcHRpb25zKFNlcnZlck9wdGlvbgogIAkJb3B0aW9ucy0+Z3NzX2tleWV4ID0gMDsKICAJ aWYgKG9wdGlvbnMtPmdzc19jbGVhbnVwX2NyZWRzID09IC0xKQogIAkJb3B0aW9ucy0+Z3NzX2Ns ZWFudXBfY3JlZHMgPSAxOwpAQCAtNjEsNyArNTksNyBAQCBpbmRleCBhYWI2NTMyNDQuLjAyYTk4 ODhjOSAxMDA2NDQKICAJeyAiZ3NzYXBpc3RyaWN0YWNjZXB0b3JjaGVjayIsIHNVbnN1cHBvcnRl ZCwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlrZXlleGNoYW5nZSIsIHNVbnN1cHBvcnRl ZCwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlzdG9yZWNyZWRlbnRpYWxzb25yZWtleSIs IHNVbnN1cHBvcnRlZCwgU1NIQ0ZHX0dMT0JBTCB9LAotQEAgLTE3MTMsNiArMTcxOSwxMCBAQCBw cm9jZXNzX3NlcnZlcl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPcHRpb25zICpvcHRpb25zLCBj aGFyICpsaW5lLAorQEAgLTE3MDMsNiArMTcwOSwxMCBAQCBwcm9jZXNzX3NlcnZlcl9jb25maWdf bGluZV9kZXB0aChTZXJ2ZXJPCiAgCQlpbnRwdHIgPSAmb3B0aW9ucy0+Z3NzX2NsZWFudXBfY3Jl ZHM7CiAgCQlnb3RvIHBhcnNlX2ZsYWc7CiAgCkBAIC03Miw3ICs3MCw3IEBAIGluZGV4IGFhYjY1 MzI0NC4uMDJhOTg4OGM5IDEwMDY0NAogIAljYXNlIHNHc3NTdHJpY3RBY2NlcHRvcjoKICAJCWlu dHB0ciA9ICZvcHRpb25zLT5nc3Nfc3RyaWN0X2FjY2VwdG9yOwogIAkJZ290byBwYXJzZV9mbGFn OwotQEAgLTMzNTksNiArMzM2OSw3IEBAIGR1bXBfY29uZmlnKFNlcnZlck9wdGlvbnMgKm8pCitA QCAtMzM0OCw2ICszMzU4LDcgQEAgZHVtcF9jb25maWcoU2VydmVyT3B0aW9ucyAqbykKICAjaWZk ZWYgR1NTQVBJCiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzQXV0aGVudGljYXRpb24sIG8tPmdzc19h dXRoZW50aWNhdGlvbik7CiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzQ2xlYW51cENyZWRzLCBvLT5n c3NfY2xlYW51cF9jcmVkcyk7CkBAIC04MCwxMCArNzgsOSBAQCBpbmRleCBhYWI2NTMyNDQuLjAy YTk4ODhjOSAxMDA2NDQKICAJZHVtcF9jZmdfZm10aW50KHNHc3NLZXlFeCwgby0+Z3NzX2tleWV4 KTsKICAJZHVtcF9jZmdfZm10aW50KHNHc3NTdHJpY3RBY2NlcHRvciwgby0+Z3NzX3N0cmljdF9h Y2NlcHRvcik7CiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzU3RvcmVSZWtleSwgby0+Z3NzX3N0b3Jl X3Jla2V5KTsKLWRpZmYgLS1naXQgYS9zZXJ2Y29uZi5oIGIvc2VydmNvbmYuaAotaW5kZXggN2M0 MWRmNDE3Li42YmZkZjYzMDUgMTAwNjQ0Ci0tLS0gYS9zZXJ2Y29uZi5oCi0rKysgYi9zZXJ2Y29u Zi5oCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5oIGIvc2VydmNvbmYuaAorLS0tIGEv c2VydmNvbmYuaAkyMDI2LTAzLTExIDEzOjU0OjUzLjA4Njc2MzcwOSArMDEwMAorKysrIGIvc2Vy dmNvbmYuaAkyMDI2LTAzLTExIDE0OjEzOjUxLjEzMDcwODc2OSArMDEwMAogQEAgLTE1OCw2ICsx NTgsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgCWludCAgICAgZ3NzX2F1dGhlbnRpY2F0aW9uOwkv KiBJZiB0cnVlLCBwZXJtaXQgR1NTQVBJIGF1dGhlbnRpY2F0aW9uICovCiAgCWludCAgICAgZ3Nz X2tleWV4OwkJLyogSWYgdHJ1ZSwgcGVybWl0IEdTU0FQSSBrZXkgZXhjaGFuZ2UgKi8KQEAgLTky LDExICs4OSwxMCBAQCBpbmRleCA3YzQxZGY0MTcuLjZiZmRmNjMwNSAxMDA2NDQKICAJaW50ICAg ICBnc3Nfc3RyaWN0X2FjY2VwdG9yOwkvKiBJZiB0cnVlLCByZXN0cmljdCB0aGUgR1NTQVBJIGFj Y2VwdG9yIG5hbWUgKi8KICAJaW50IAlnc3Nfc3RvcmVfcmVrZXk7CiAgCWNoYXIgICAqZ3NzX2tl eF9hbGdvcml0aG1zOwkvKiBHU1NBUEkga2V4IG1ldGhvZHMgdG8gYmUgb2ZmZXJlZCBieSBjbGll bnQuICovCi1kaWZmIC0tZ2l0IGEvc3NoZF9jb25maWcuMCBiL3NzaGRfY29uZmlnLjAKLWluZGV4 IDQ5MzQ5YmIzMC4uZTc5OGY0ZGY1IDEwMDY0NAotLS0tIGEvc3NoZF9jb25maWcuMAotKysrIGIv c3NoZF9jb25maWcuMAotQEAgLTQ1Myw2ICs0NTMsOSBAQCBERVNDUklQVElPTgorZGlmZiAtLWNv bG9yIC1ydU5wIGEvc3NoZF9jb25maWcuMCBiL3NzaGRfY29uZmlnLjAKKy0tLSBhL3NzaGRfY29u ZmlnLjAJMjAyNi0wMy0xMSAxMzo1NDo1Mi45MDQyMzM0NzEgKzAxMDAKKysrKyBiL3NzaGRfY29u ZmlnLjAJMjAyNi0wMy0xMSAxNDoxMjozNS4zNDExNzA3MzcgKzAxMDAKK0BAIC00NTEsNiArNDUx LDkgQEAgREVTQ1JJUFRJT04KICAgICAgICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdG8gYXV0 b21hdGljYWxseSBkZXN0cm95IHRoZSB1c2VyJ3MgY3JlZGVudGlhbHMKICAgICAgICAgICAgICAg Y2FjaGUgb24gbG9nb3V0LiAgVGhlIGRlZmF1bHQgaXMgeWVzLgogIApAQCAtMTA2LDExICsxMDIs MTAgQEAgaW5kZXggNDkzNDliYjMwLi5lNzk4ZjRkZjUgMTAwNjQ0CiAgICAgICBHU1NBUElTdHJp Y3RBY2NlcHRvckNoZWNrCiAgICAgICAgICAgICAgIERldGVybWluZXMgd2hldGhlciB0byBiZSBz dHJpY3QgYWJvdXQgdGhlIGlkZW50aXR5IG9mIHRoZSBHU1NBUEkKICAgICAgICAgICAgICAgYWNj ZXB0b3IgYSBjbGllbnQgYXV0aGVudGljYXRlcyBhZ2FpbnN0LiAgSWYgc2V0IHRvIHllcyB0aGVu IHRoZQotZGlmZiAtLWdpdCBhL3NzaGRfY29uZmlnLjUgYi9zc2hkX2NvbmZpZy41Ci1pbmRleCA5 MGFiODdlZGQuLjhjNjc3YmZkMCAxMDA2NDQKLS0tLSBhL3NzaGRfY29uZmlnLjUKLSsrKyBiL3Nz aGRfY29uZmlnLjUKLUBAIC03MzMsNiArNzMzLDkgQEAgU3BlY2lmaWVzIHdoZXRoZXIgdG8gYXV0 b21hdGljYWxseSBkZXN0cm95IHRoZSB1c2VyJ3MgY3JlZGVudGlhbHMgY2FjaGUKK2RpZmYgLS1j b2xvciAtcnVOcCBhL3NzaGRfY29uZmlnLjUgYi9zc2hkX2NvbmZpZy41CistLS0gYS9zc2hkX2Nv bmZpZy41CTIwMjYtMDMtMTEgMTM6NTQ6NTMuMDg3MDQ2MzUyICswMTAwCisrKysgYi9zc2hkX2Nv bmZpZy41CTIwMjYtMDMtMTEgMTQ6MDU6MTUuNjU3MjQ4MDMxICswMTAwCitAQCAtNzMzLDYgKzcz Myw5IEBAIFNwZWNpZmllcyB3aGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgZGVzdHIKICBvbiBsb2dv dXQuCiAgVGhlIGRlZmF1bHQgaXMKICAuQ20geWVzIC4KCmRpZmYgLS1naXQgYS9vcGVuc3NoLTku OXAxLXN1cHBvcnQtYXV0aGVudGljYXRpb24taW5kaWNhdG9ycy1pbi1HU1NBUEkucGF0Y2ggYi9v cGVuc3NoLTkuOXAxLXN1cHBvcnQtYXV0aGVudGljYXRpb24taW5kaWNhdG9ycy1pbi1HU1NBUEku cGF0Y2gKaW5kZXggMjM3ZTQ1ZC4uNmM1NWE2NiAxMDA2NDQKLS0tIGEvb3BlbnNzaC05LjlwMS1z dXBwb3J0LWF1dGhlbnRpY2F0aW9uLWluZGljYXRvcnMtaW4tR1NTQVBJLnBhdGNoCisrKyBiL29w ZW5zc2gtOS45cDEtc3VwcG9ydC1hdXRoZW50aWNhdGlvbi1pbmRpY2F0b3JzLWluLUdTU0FQSS5w YXRjaApAQCAtMSwzOCArMSw3IEBACi1Gcm9tIDVkNWE2NmU5NmFkMDMxMzJmNjUzNzEwNzBmNGZh NDc1ZjEwMjA3ZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBbGV4YW5kZXIgQm9r b3ZveSA8YWJva292b3lAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMTAgSnVuIDIwMjQgMjM6MDA6 MDMgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSF0gc3VwcG9ydCBhdXRoZW50aWNhdGlvbiBpbmRpY2F0 b3JzIGluIEdTU0FQSQotCi1SRkMgNjY4MCBkZWZpbmVzIGEgc2V0IG9mIEdTU0FQSSBleHRlbnNp b25zIHRvIGhhbmRsZSBhdHRyaWJ1dGVzCi1hc3NvY2lhdGVkIHdpdGggdGhlIEdTU0FQSSBuYW1l cy4gTUlUIEtlcmJlcm9zIGFuZCBGcmVlSVBBIHVzZQotbmFtZSBhdHRyaWJ1dGVzIHRvIGFkZCBp bmZvcm1hdGlvbiBhYm91dCBwcmUtYXV0aGVudGljYXRpb24gbWV0aG9kcyB1c2VkCi10byBhY3F1 aXJlIHRoZSBpbml0aWFsIEtlcmJlcm9zIHRpY2tldC4gVGhlIGF0dHJpYnV0ZSAnYXV0aC1pbmRp Y2F0b3JzJwotbWF5IGNvbnRhaW4gbGlzdCBvZiBzdHJpbmdzIHRoYXQgS0RDIGhhcyBhc3NvY2lh dGVkIHdpdGggdGhlIHRpY2tldAotaXNzdWFuY2UgcHJvY2Vzcy4KLQotVXNlIGF1dGhlbnRpY2F0 aW9uIGluZGljYXRvcnMgdG8gYXV0aG9yaXNlIG9yIGRlbnkgYWNjZXNzIHRvIFNTSCBzZXJ2ZXIu Ci1HU1NBUElJbmRpY2F0b3JzIHNldHRpbmcgYWxsb3dzIHRvIHNwZWNpZnkgYSBsaXN0IG9mIHBv c3NpYmxlIGluZGljYXRvcnMKLXRoYXQgYSBLZXJiZXJvcyB0aWNrZXQgcHJlc2VudGVkIG11c3Qg b3IgbXVzdCBub3QgY29udGFpbi4gTW9yZSBkZXRhaWxzCi1vbiB0aGUgc3ludGF4IGFyZSBwcm92 aWRlZCBpbiBzc2hkX2NvbmZpZyg1KSBtYW4gcGFnZS4KLQotRml4ZXM6IGh0dHBzOi8vYnVnemls bGEubWluZHJvdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2OTYKLQotU2lnbmVkLW9mZi1ieTogQWxl eGFuZGVyIEJva292b3kgPGFib2tvdm95QHJlZGhhdC5jb20+Ci0tLS0KLSBjb25maWd1cmUuYWMg ICAgfCAgIDEgKwotIGdzcy1zZXJ2LWtyYjUuYyB8ICA2NCArKysrKysrKysrKysrKysrKysrKysr KysrKystLS0KLSBnc3Mtc2Vydi5jICAgICAgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCi0gc2VydmNvbmYuYyAgICAgIHwgIDE1ICsrKysrKy0K LSBzZXJ2Y29uZi5oICAgICAgfCAgIDIgKwotIHNzaC1nc3MuaCAgICAgICB8ICAgNyArKysrCi0g c3NoZF9jb25maWcuNSAgIHwgIDQ0ICsrKysrKysrKysrKysrKysrKysrKwotIDcgZmlsZXMgY2hh bmdlZCwgMjI4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9j b25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IGQ5MmE4NTgwOS4uMmNiZTIwYmYzIDEw MDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC01MDA0LDYg KzUwMDQsNyBAQCBBQ19BUkdfV0lUSChba2VyYmVyb3M1XSwKK2RpZmYgLS1jb2xvciAtcnVOcCBh L2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworLS0tIGEvY29uZmlndXJlLmFjCTIwMjYtMDMt MTAgMTI6NDM6MzYuODYwNzg0ODEzICswMTAwCisrKysgYi9jb25maWd1cmUuYWMJMjAyNi0wMy0x MCAxMjo0NjoyNy4wMjIyOTc4MzUgKzAxMDAKK0BAIC00OTMyLDYgKzQ5MzIsNyBAQCBBQ19BUkdf V0lUSChba2VyYmVyb3M1XSwKICAJCUFDX0NIRUNLX0hFQURFUlMoW2dzc2FwaS5oIGdzc2FwaS9n c3NhcGkuaF0pCiAgCQlBQ19DSEVDS19IRUFERVJTKFtnc3NhcGlfa3JiNS5oIGdzc2FwaS9nc3Nh cGlfa3JiNS5oXSkKICAJCUFDX0NIRUNLX0hFQURFUlMoW2dzc2FwaV9nZW5lcmljLmggZ3NzYXBp L2dzc2FwaV9nZW5lcmljLmhdKQpAQCAtNDAsMTEzICs5LDEwIEBAIGluZGV4IGQ5MmE4NTgwOS4u MmNiZTIwYmYzIDEwMDY0NAogIAogIAkJQUNfU0VBUkNIX0xJQlMoW2tfaGFzYWZzXSwgW2thZnNd LCBbQUNfREVGSU5FKFtVU0VfQUZTXSwgWzFdLAogIAkJCVtEZWZpbmUgdGhpcyBpZiB5b3Ugd2Fu dCB0byB1c2UgbGlia2FmcycgQUZTIHN1cHBvcnRdKV0pCi1kaWZmIC0tZ2l0IGEvZ3NzLXNlcnYt a3JiNS5jIGIvZ3NzLXNlcnYta3JiNS5jCi1pbmRleCAwMzE4OGQ5YjMuLjJjNzg2ZWYxNCAxMDA2 NDQKLS0tLSBhL2dzcy1zZXJ2LWtyYjUuYwotKysrIGIvZ3NzLXNlcnYta3JiNS5jCi1AQCAtNDMs NiArNDMsNyBAQAotICNpbmNsdWRlICJsb2cuaCIKLSAjaW5jbHVkZSAibWlzYy5oIgotICNpbmNs dWRlICJzZXJ2Y29uZi5oIgotKyNpbmNsdWRlICJtYXRjaC5oIgotIAotICNpbmNsdWRlICJzc2gt Z3NzLmgiCi0gCi1AQCAtODcsNiArODgsMzIgQEAgc3NoX2dzc2FwaV9rcmI1X2luaXQodm9pZCkK LSAJcmV0dXJuIDE7Ci0gfQotIAotKy8qIENoZWNrIGlmIGFueSBvZiB0aGUgaW5kaWNhdG9ycyBp biB0aGUgS2VyYmVyb3MgdGlja2V0IG1hdGNoCi0rICogb25lIG9mIGluZGljYXRvcnMgaW4gdGhl IGxpc3Qgb2YgYWxsb3dlZC9kZW5pZWQgcnVsZXMuCi0rICogSW4gY2FzZSBvZiB0aGUgbWF0Y2gs IGFwcGx5IHRoZSBkZWNpc2lvbiBmcm9tIHRoZSBydWxlLgotKyAqIEluIGNhc2Ugb2Ygbm8gaW5k aWNhdG9yIGZyb20gdGhlIHRpY2tldCBtYXRjaGluZyB0aGUgcnVsZSwgZGVueQotKyAqLwotKwot K3N0YXRpYyBpbnQKLStzc2hfZ3NzYXBpX2NoZWNrX2luZGljYXRvcnMoc3NoX2dzc2FwaV9jbGll bnQgKmNsaWVudCwgaW50ICptYXRjaGVkKQotK3sKLSsJaW50IHJldDsKLSsJdV9pbnQgaTsKLSsK LSsJLyogQ2hlY2sgaW5kaWNhdG9ycyAqLwotKwlmb3IgKGkgPSAwOyBjbGllbnQtPmluZGljYXRv cnNbaV0gIT0gTlVMTDsgaSsrKSB7Ci0rCQlyZXQgPSBtYXRjaF9wYXR0ZXJuX2xpc3QoY2xpZW50 LT5pbmRpY2F0b3JzW2ldLAotKwkJCQkJIG9wdGlvbnMuZ3NzX2luZGljYXRvcnMsIDEpOwotKwkJ LyogbmVnYXRpdmUgb3IgcG9zaXRpdmUgbWF0Y2ggKi8KLSsJCWlmIChyZXQgIT0gMCkgewotKwkJ CSptYXRjaGVkID0gaTsKLSsJCQlyZXR1cm4gcmV0OwotKwkJfQotKwl9Ci0rCS8qIE5vIHJ1bGUg bWF0Y2hlZCAqLwotKwlyZXR1cm4gMDsKLSt9Ci0rCi0gLyogQ2hlY2sgaWYgdGhpcyB1c2VyIGlz IE9LIHRvIGxvZ2luLiBUaGlzIG9ubHkgd29ya3Mgd2l0aCBrcmI1IC0gb3RoZXIKLSAgKiBHU1NB UEkgbWVjaGFuaXNtcyB3aWxsIG5lZWQgdGhlaXIgb3duLgotICAqIFJldHVybnMgdHJ1ZSBpZiB0 aGUgdXNlciBpcyBPSyB0byBsb2cgaW4sIG90aGVyd2lzZSByZXR1cm5zIDAKLUBAIC0xOTMsNyAr MjIwLDcgQEAgc3RhdGljIGludAotIHNzaF9nc3NhcGlfa3JiNV91c2Vyb2soc3NoX2dzc2FwaV9j bGllbnQgKmNsaWVudCwgY2hhciAqbmFtZSkKLSB7Ci0gCWtyYjVfcHJpbmNpcGFsIHByaW5jOwot LQlpbnQgcmV0dmFsOwotKwlpbnQgcmV0dmFsLCBtYXRjaGVkOwotIAljb25zdCBjaGFyICplcnJt c2c7Ci0gCWludCBrNWxvZ2luX2V4aXN0czsKLSAKLUBAIC0yMTYsMTcgKzI0Myw0MiBAQCBzc2hf Z3NzYXBpX2tyYjVfdXNlcm9rKHNzaF9nc3NhcGlfY2xpZW50ICpjbGllbnQsIGNoYXIgKm5hbWUp Ci0gCWlmIChrNWxvZ2luX2V4aXN0cyAmJgotIAkgICAgc3NoX2tyYjVfa3VzZXJvayhrcmJfY29u dGV4dCwgcHJpbmMsIG5hbWUsIGs1bG9naW5fZXhpc3RzKSkgewotIAkJcmV0dmFsID0gMTsKLS0J CWxvZ2l0KCJBdXRob3JpemVkIHRvICVzLCBrcmI1IHByaW5jaXBhbCAlcyAoa3JiNV9rdXNlcm9r KSIsCi0tCQkgICAgbmFtZSwgKGNoYXIgKiljbGllbnQtPmRpc3BsYXluYW1lLnZhbHVlKTsKLSsJ ICAgIGVycm1zZyA9ICJrcmI1X2t1c2Vyb2siOwotIAl9IGVsc2UgaWYgKHNzaF9nc3NhcGlfa3Ji NV9jbWRvayhwcmluYywgY2xpZW50LT5leHBvcnRlZG5hbWUudmFsdWUsCi0gCQluYW1lLCBrNWxv Z2luX2V4aXN0cykpIHsKLSAJCXJldHZhbCA9IDE7Ci0tCQlsb2dpdCgiQXV0aG9yaXplZCB0byAl cywga3JiNSBwcmluY2lwYWwgJXMgIgotLQkJICAgICIoc3NoX2dzc2FwaV9rcmI1X2NtZG9rKSIs Ci0tCQkgICAgbmFtZSwgKGNoYXIgKiljbGllbnQtPmRpc3BsYXluYW1lLnZhbHVlKTsKLSsJCWVy cm1zZyA9ICJzc2hfZ3NzYXBpX2tyYjVfY21kb2siOwotIAl9IGVsc2UKLSAJCXJldHZhbCA9IDA7 Ci0gCi0rCWlmICgocmV0dmFsID09IDEpICYmIChvcHRpb25zLmdzc19pbmRpY2F0b3JzICE9IE5V TEwpKSB7Ci0rCQkvKiBBdCB0aGlzIHBvaW50IHRoZSBjb25maWd1cmF0aW9uIGVuZm9yY2VzIHBy ZXNlbmNlIG9mIGluZGljYXRvcnMKLSsJCSAqIHNvIHdlIGRyb3AgdGhlIGF1dGhvcml6YXRpb24g cmVzdWx0IGFnYWluICovCi0rCQlyZXR2YWwgPSAwOwotKwkJaWYgKGNsaWVudC0+aW5kaWNhdG9y cykgewotKwkJCW1hdGNoZWQgPSAtMTsKLSsJCQlyZXR2YWwgPSBzc2hfZ3NzYXBpX2NoZWNrX2lu ZGljYXRvcnMoY2xpZW50LCAmbWF0Y2hlZCk7Ci0rCQkJaWYgKHJldHZhbCAhPSAwKSB7Ci0rCQkJ CXJldHZhbCA9IChyZXR2YWwgPT0gMSk7Ci0rCQkJCWxvZ2l0KCJUaWNrZXQgY29udGFpbnMgaW5k aWNhdG9yICVzLCAiCi0rCQkJCQkia3JiNSBwcmluY2lwYWwgJXMgaXMgJXMiLAotKwkJCQkJY2xp ZW50LT5pbmRpY2F0b3JzW21hdGNoZWRdLAotKwkJCQkJKGNoYXIgKiljbGllbnQtPmRpc3BsYXlu YW1lLnZhbHVlLAotKwkJCQkgICAgICAgIHJldHZhbCA/ICJhbGxvd2VkIiA6ICJkZW5pZWQiKTsK LSsJCQkJZ290byBjb250OwotKwkJCX0KLSsJCX0KLSsJCWlmIChyZXR2YWwgPT0gMCkgewotKwkJ CWxvZ2l0KCJHU1NBUEkgYXV0aGVudGljYXRpb24gaW5kaWNhdG9ycyBlbmZvcmNlZCAiCi0rCQkJ CSJidXQgbm90IG1hdGNoZWQuIGtyYjUgcHJpbmNpcGFsICVzIGRlbmllZCIsCi0rCQkJKGNoYXIg KiljbGllbnQtPmRpc3BsYXluYW1lLnZhbHVlKTsKLSsJCX0KLSsJfQotK2NvbnQ6Ci0rCWlmIChy ZXR2YWwgPT0gMSkgewotKwkJbG9naXQoIkF1dGhvcml6ZWQgdG8gJXMsIGtyYjUgcHJpbmNpcGFs ICVzICglcykiLAotKwkJICAgIG5hbWUsIChjaGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1 ZSwgZXJybXNnKTsKLSsJfQotIAlrcmI1X2ZyZWVfcHJpbmNpcGFsKGtyYl9jb250ZXh0LCBwcmlu Yyk7Ci0gCXJldHVybiByZXR2YWw7Ci0gfQotZGlmZiAtLWdpdCBhL2dzcy1zZXJ2LmMgYi9nc3Mt c2Vydi5jCi1pbmRleCA5ZDU0MzVlZGEuLjVjMDQ5MWNmMSAxMDA2NDQKLS0tLSBhL2dzcy1zZXJ2 LmMKLSsrKyBiL2dzcy1zZXJ2LmMKLUBAIC01NCw3ICs1NCw3IEBAIGV4dGVybiBTZXJ2ZXJPcHRp b25zIG9wdGlvbnM7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi5jIGIvZ3NzLXNlcnYu YworLS0tIGEvZ3NzLXNlcnYuYwkyMDI2LTAzLTEwIDEyOjQzOjM2LjgwMjQ0MzAzNCArMDEwMAor KysrIGIvZ3NzLXNlcnYuYwkyMDI2LTAzLTEyIDEwOjA0OjM3LjUyMDk5MzMzMCArMDEwMAorQEAg LTUzLDcgKzUzLDcgQEAgZXh0ZXJuIFNlcnZlck9wdGlvbnMgb3B0aW9uczsKICAKICBzdGF0aWMg c3NoX2dzc2FwaV9jbGllbnQgZ3NzYXBpX2NsaWVudCA9CiAgICAgIHsgR1NTX0NfRU1QVFlfQlVG RkVSLCBHU1NfQ19FTVBUWV9CVUZGRVIsIEdTU19DX05PX0NSRURFTlRJQUwsCkBAIC0xNTUsNyAr MjEsNyBAQCBpbmRleCA5ZDU0MzVlZGEuLjVjMDQ5MWNmMSAxMDA2NDQKICAKICBzc2hfZ3NzYXBp X21lY2ggZ3NzYXBpX251bGxfbWVjaCA9CiAgICAgIHsgTlVMTCwgTlVMTCwgezAsIE5VTEx9LCBO VUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMfTsKLUBAIC0yOTYsNiArMjk2LDkyIEBAIHNzaF9n c3NhcGlfcGFyc2VfZW5hbWUoR3NzY3R4dCAqY3R4LCBnc3NfYnVmZmVyX3QgZW5hbWUsIGdzc19i dWZmZXJfdCBuYW1lKQorQEAgLTI5NSw2ICsyOTUsOTUgQEAgc3NoX2dzc2FwaV9wYXJzZV9lbmFt ZShHc3NjdHh0ICpjdHgsIGdzcwogIAlyZXR1cm4gR1NTX1NfQ09NUExFVEU7CiAgfQogIApAQCAt MTYzLDkgKzI5LDEwIEBAIGluZGV4IDlkNTQzNWVkYS4uNWMwNDkxY2YxIDEwMDY0NAogKy8qIEV4 dHJhY3QgYXV0aGVudGljYXRpb24gaW5kaWNhdG9ycyBmcm9tIHRoZSBLZXJiZXJvcyB0aWNrZXQu IEF1dGhlbnRpY2F0aW9uCiArICogaW5kaWNhdG9ycyBhcmUgR1NTQVBJIG5hbWUgYXR0cmlidXRl cyBmb3IgdGhlIG5hbWUgImF1dGgtaW5kaWNhdG9ycyIuCiArICogTXVsdGlwbGUgaW5kaWNhdG9y cyBtaWdodCBiZSBwcmVzZW50IGluIHRoZSB0aWNrZXQuCi0rICogRWFjaCBpbmRpY2F0b3IgaXMg YSB1dGY4IHN0cmluZy4gKi8KKysgKiBFYWNoIGluZGljYXRvciBpcyBhbiB1dGY4IHN0cmluZy4g Ki8KICsKICsjZGVmaW5lIEFVVEhfSU5ESUNBVE9SU19UQUcgImF1dGgtaW5kaWNhdG9ycyIKKysj ZGVmaW5lIFNTSF9HU1NBUElfTUFYX0lORElDQVRPUlMgNjQKICsKICsvKiBQcml2aWxlZ2VkIChj YWxsZWQgZnJvbSBhY2NlcHRfc2VjdXJlX2N0eCkgKi8KICtzdGF0aWMgT01fdWludDMyCkBAIC0x ODgsMjQgKzU1LDcgQEAgaW5kZXggOWQ1NDM1ZWRhLi41YzA0OTFjZjEgMTAwNjQ0CiArCQlyZXR1 cm4gKDApOwogKwl9CiArCi0rCWNvdW50ID0gMDsKLSsJZm9yIChpID0gMDsgaSA8IGF0dHJzLT5j b3VudDsgaSsrKSB7Ci0rCQkvKiBza2lwIGFueXRoaW5nIGJ1dCBhdXRoLWluZGljYXRvcnMgKi8K LSsJCWlmICgoKHNpemVvZihBVVRIX0lORElDQVRPUlNfVEFHKSAtIDEpICE9IGF0dHJzLT5lbGVt ZW50c1tpXS5sZW5ndGgpIHx8Ci0rCQkgICAgc3RybmNtcChBVVRIX0lORElDQVRPUlNfVEFHLAot KwkJCSAgICBhdHRycy0+ZWxlbWVudHNbaV0udmFsdWUsCi0rCQkJICAgIHNpemVvZihBVVRIX0lO RElDQVRPUlNfVEFHKSAtIDEpICE9IDApCi0rCQkJY29udGludWU7Ci0rCQljb3VudCsrOwotKwl9 Ci0rCi0rCWlmIChjb3VudCA9PSAwKSB7Ci0rCQkvKiBObyBhdXRoLWluZGljYXRvcnMgaW4gdGhl IHRpY2tldCAqLwotKwkJKHZvaWQpIGdzc19yZWxlYXNlX2J1ZmZlcl9zZXQoJmN0eC0+bWlub3Is ICZhdHRycyk7Ci0rCQlyZXR1cm4gKDApOwotKwl9Ci0rCi0rCWNsaWVudC0+aW5kaWNhdG9ycyA9 IHJlY2FsbG9jYXJyYXkoTlVMTCwgMCwgY291bnQgKyAxLCBzaXplb2YoY2hhciopKTsKKysJY2xp ZW50LT5pbmRpY2F0b3JzID0gTlVMTDsKICsJY291bnQgPSAwOwogKwlmb3IgKGkgPSAwOyBpIDwg YXR0cnMtPmNvdW50OyBpKyspIHsKICsJCWF1dGhlbnRpY2F0ZWQgPSAwOwpAQCAtMjEzLDIyICs2 MywzMyBAQCBpbmRleCA5ZDU0MzVlZGEuLjVjMDQ5MWNmMSAxMDA2NDQKICsJCW1vcmUgPSAtMTsK ICsJCS8qIHNraXAgYW55dGhpbmcgYnV0IGF1dGgtaW5kaWNhdG9ycyAqLwogKwkJaWYgKCgoc2l6 ZW9mKEFVVEhfSU5ESUNBVE9SU19UQUcpIC0gMSkgIT0gYXR0cnMtPmVsZW1lbnRzW2ldLmxlbmd0 aCkgfHwKLSsJCSAgICBzdHJuY21wKEFVVEhfSU5ESUNBVE9SU19UQUcsCi0rCQkJICAgIGF0dHJz LT5lbGVtZW50c1tpXS52YWx1ZSwKLSsJCQkgICAgc2l6ZW9mKEFVVEhfSU5ESUNBVE9SU19UQUcp IC0gMSkgIT0gMCkKKysJCSAgICBtZW1jbXAoQVVUSF9JTkRJQ0FUT1JTX1RBRywKKysJCQkgICBh dHRycy0+ZWxlbWVudHNbaV0udmFsdWUsCisrCQkJICAgc2l6ZW9mKEFVVEhfSU5ESUNBVE9SU19U QUcpIC0gMSkgIT0gMCkKICsJCQljb250aW51ZTsKICsJCS8qIHJldHJpZXZlIGFsbCBpbmRpY2F0 b3JzICovCiArCQl3aGlsZSAobW9yZSAhPSAwKSB7CiArCQkJdmFsdWUudmFsdWUgPSBOVUxMOwog KwkJCWRpc3BsYXlfdmFsdWUudmFsdWUgPSBOVUxMOwogKwkJCWN0eC0+bWFqb3IgPSBnc3NfZ2V0 X25hbWVfYXR0cmlidXRlKCZjdHgtPm1pbm9yLCBnc3NfbmFtZSwKLSsJCQkJCSZhdHRycy0+ZWxl bWVudHNbaV0sICZhdXRoZW50aWNhdGVkLAotKwkJCQkJJmNvbXBsZXRlLCAmdmFsdWUsICZkaXNw bGF5X3ZhbHVlLCAmbW9yZSk7Ci0rCQkJaWYgKGN0eC0+bWFqb3IgIT0gR1NTX1NfQ09NUExFVEUp IHsKKysJCQkJCQkJICAgICZhdHRycy0+ZWxlbWVudHNbaV0sICZhdXRoZW50aWNhdGVkLAorKwkJ CQkJCQkgICAgJmNvbXBsZXRlLCAmdmFsdWUsICZkaXNwbGF5X3ZhbHVlLCAmbW9yZSk7CisrCQkJ aWYgKGN0eC0+bWFqb3IgIT0gR1NTX1NfQ09NUExFVEUpCiArCQkJCWdvdG8gb3V0OwotKwkJCX0K ICsKICsJCQlpZiAoKHZhbHVlLnZhbHVlICE9IE5VTEwpICYmIGF1dGhlbnRpY2F0ZWQpIHsKKysJ CQkJaWYgKGNvdW50ID49IFNTSF9HU1NBUElfTUFYX0lORElDQVRPUlMpIHsKKysJCQkJCWxvZ2l0 KCJzc2hfZ3NzYXBpX2dldGluZGljYXRvcnM6IHRvbyBtYW55ICIKKysJCQkJCSAgICAiaW5kaWNh dG9ycywgdHJ1bmNhdGluZyBhdCAlZCIsCisrCQkJCQkgICAgU1NIX0dTU0FQSV9NQVhfSU5ESUNB VE9SUyk7CisrCQkJCQkvKiB2YWx1ZS9kaXNwbGF5X3ZhbHVlIHJlbGVhc2VkIGF0IG91dDogKi8K KysJCQkJCWdvdG8gZG9uZTsKKysJCQkJfQorKworKwkJCQljbGllbnQtPmluZGljYXRvcnMgPSB4 cmVjYWxsb2NhcnJheShjbGllbnQtPmluZGljYXRvcnMsIGNvdW50LCBjb3VudCArIDEsIHNpemVv ZihjaGFyKikpOworKwkJCQlpZiAoY2xpZW50LT5pbmRpY2F0b3JzID09IE5VTEwpIHsKKysJCQkJ CWZhdGFsKCJzc2hfZ3NzYXBpX2dldGluZGljYXRvcnMgZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9y eSIpOworKwkJCQl9CiArCQkJCWNsaWVudC0+aW5kaWNhdG9yc1tjb3VudF0gPSB4bWFsbG9jKHZh bHVlLmxlbmd0aCArIDEpOwogKwkJCQltZW1jcHkoY2xpZW50LT5pbmRpY2F0b3JzW2NvdW50XSwg dmFsdWUudmFsdWUsIHZhbHVlLmxlbmd0aCk7CiArCQkJCWNsaWVudC0+aW5kaWNhdG9yc1tjb3Vu dF1bdmFsdWUubGVuZ3RoXSA9ICdcMCc7CkBAIC0yMzcsMTggKzk4LDI2IEBAIGluZGV4IDlkNTQz NWVkYS4uNWMwNDkxY2YxIDEwMDY0NAogKwkJfQogKwl9CiArCisrZG9uZToKKysJLyogc2xvdCBb Y291bnRdIGlzIHplcm9lZCBieSByZWNhbGxvY2FycmF5LCBzZXJ2ZXMgYXMgTlVMTCBzZW50aW5l bCAqLworKwogK291dDoKKysJaWYgKGN0eC0+bWFqb3IgIT0gR1NTX1NfQ09NUExFVEUgJiYgY2xp ZW50LT5pbmRpY2F0b3JzICE9IE5VTEwpIHsKKysJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsr KQorKwkJCWZyZWUoY2xpZW50LT5pbmRpY2F0b3JzW2ldKTsKKysJCWZyZWUoY2xpZW50LT5pbmRp Y2F0b3JzKTsKKysJCWNsaWVudC0+aW5kaWNhdG9ycyA9IE5VTEw7CisrCX0KICsJKHZvaWQpIGdz c19yZWxlYXNlX2J1ZmZlcigmY3R4LT5taW5vciwgJnZhbHVlKTsKICsJKHZvaWQpIGdzc19yZWxl YXNlX2J1ZmZlcigmY3R4LT5taW5vciwgJmRpc3BsYXlfdmFsdWUpOwogKwkodm9pZCkgZ3NzX3Jl bGVhc2VfYnVmZmVyX3NldCgmY3R4LT5taW5vciwgJmF0dHJzKTsKICsJcmV0dXJuIChjdHgtPm1h am9yKTsKICt9CiArCi0rCiAgLyogRXh0cmFjdCB0aGUgY2xpZW50IGRldGFpbHMgZnJvbSBhIGdp dmVuIGNvbnRleHQuIFRoaXMgY2FuIG9ubHkgcmVsaWFibHkKICAgKiBiZSBjYWxsZWQgb25jZSBm b3IgYSBjb250ZXh0ICovCiAgCi1AQCAtMzg1LDYgKzQ3MSwxMiBAQCBzc2hfZ3NzYXBpX2dldGNs aWVudChHc3NjdHh0ICpjdHgsIHNzaF9nc3NhcGlfY2xpZW50ICpjbGllbnQpCitAQCAtMzg0LDYg KzQ3MywxMiBAQCBzc2hfZ3NzYXBpX2dldGNsaWVudChHc3NjdHh0ICpjdHgsIHNzaF9nCiAgCX0K ICAKICAJZ3NzX3JlbGVhc2VfYnVmZmVyKCZjdHgtPm1pbm9yLCAmZW5hbWUpOwpAQCAtMjYxLDcg KzEzMCw3IEBAIGluZGV4IDlkNTQzNWVkYS4uNWMwNDkxY2YxIDEwMDY0NAogIAogIAkvKiBXZSBj YW4ndCBjb3B5IHRoaXMgc3RydWN0dXJlLCBzbyB3ZSBqdXN0IG1vdmUgdGhlIHBvaW50ZXIgdG8g aXQgKi8KICAJY2xpZW50LT5jcmVkcyA9IGN0eC0+Y2xpZW50X2NyZWRzOwotQEAgLTQ0Nyw2ICs1 MzksNyBAQCBpbnQKK0BAIC00NDYsNiArNTQxLDcgQEAgaW50CiAgc3NoX2dzc2FwaV91c2Vyb2so Y2hhciAqdXNlciwgc3RydWN0IHBhc3N3ZCAqcHcsIGludCBrZXgpCiAgewogIAlPTV91aW50MzIg bG1pbjsKQEAgLTI2OSwzNCArMTM4LDE3NCBAQCBpbmRleCA5ZDU0MzVlZGEuLjVjMDQ5MWNmMSAx MDA2NDQKICAKICAJKHZvaWQpIGtleDsgLyogdXNlZCBpbiBwcml2aWxlZ2Ugc2VwYXJhdGlvbiAq LwogIAotQEAgLTQ2NSw2ICs1NTgsMTQgQEAgc3NoX2dzc2FwaV91c2Vyb2soY2hhciAqdXNlciwg c3RydWN0IHBhc3N3ZCAqcHcsIGludCBrZXgpCitAQCAtNDY0LDggKzU2MCwxNCBAQCBzc2hfZ3Nz YXBpX3VzZXJvayhjaGFyICp1c2VyLCBzdHJ1Y3QgcGFzCiAgCQkJZ3NzX3JlbGVhc2VfYnVmZmVy KCZsbWluLCAmZ3NzYXBpX2NsaWVudC5kaXNwbGF5bmFtZSk7CiAgCQkJZ3NzX3JlbGVhc2VfYnVm ZmVyKCZsbWluLCAmZ3NzYXBpX2NsaWVudC5leHBvcnRlZG5hbWUpOwogIAkJCWdzc19yZWxlYXNl X2NyZWQoJmxtaW4sICZnc3NhcGlfY2xpZW50LmNyZWRzKTsKKy0JCQlleHBsaWNpdF9iemVybygm Z3NzYXBpX2NsaWVudCwKKy0JCQkgICAgc2l6ZW9mKHNzaF9nc3NhcGlfY2xpZW50KSk7CiArCiAr CQkJaWYgKGdzc2FwaV9jbGllbnQuaW5kaWNhdG9ycyAhPSBOVUxMKSB7Ci0rCQkJCWZvcihpID0g MDsgZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzW2ldICE9IE5VTEw7IGkrKykgeworKwkJCQlmb3Ig KGkgPSAwOyBnc3NhcGlfY2xpZW50LmluZGljYXRvcnNbaV0gIT0gTlVMTDsgaSsrKQogKwkJCQkJ ZnJlZShnc3NhcGlfY2xpZW50LmluZGljYXRvcnNbaV0pOwotKwkJCQl9CiArCQkJCWZyZWUoZ3Nz YXBpX2NsaWVudC5pbmRpY2F0b3JzKTsKICsJCQl9CiArCi0gCQkJZXhwbGljaXRfYnplcm8oJmdz c2FwaV9jbGllbnQsCi0gCQkJICAgIHNpemVvZihzc2hfZ3NzYXBpX2NsaWVudCkpOworKwkJCWV4 cGxpY2l0X2J6ZXJvKCZnc3NhcGlfY2xpZW50LCBzaXplb2Yoc3NoX2dzc2FwaV9jbGllbnQpKTsK ICAJCQlyZXR1cm4gMDsKLWRpZmYgLS1naXQgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwotaW5k ZXggZTdlNGFkMDQ2Li5hYWI2NTMyNDQgMTAwNjQ0Ci0tLS0gYS9zZXJ2Y29uZi5jCi0rKysgYi9z ZXJ2Y29uZi5jCi1AQCAtMTQ3LDYgKzE0Nyw3IEBAIGluaXRpYWxpemVfc2VydmVyX29wdGlvbnMo U2VydmVyT3B0aW9ucyAqb3B0aW9ucykKKyAJCX0KKyAJZWxzZQorZGlmZiAtLWNvbG9yIC1ydU5w IGEvZ3NzLXNlcnYta3JiNS5jIGIvZ3NzLXNlcnYta3JiNS5jCistLS0gYS9nc3Mtc2Vydi1rcmI1 LmMJMjAyNi0wMy0xMCAxMjo0MzozNi44MjMwMTUzMzYgKzAxMDAKKysrKyBiL2dzcy1zZXJ2LWty YjUuYwkyMDI2LTAzLTExIDEyOjU4OjU2LjAyNDQ1NTIzOCArMDEwMAorQEAgLTQzLDYgKzQzLDcg QEAKKyAjaW5jbHVkZSAibG9nLmgiCisgI2luY2x1ZGUgIm1pc2MuaCIKKyAjaW5jbHVkZSAic2Vy dmNvbmYuaCIKKysjaW5jbHVkZSAibWF0Y2guaCIKKyAKKyAjaW5jbHVkZSAic3NoLWdzcy5oIgor IAorQEAgLTg3LDYgKzg4LDMzIEBAIHNzaF9nc3NhcGlfa3JiNV9pbml0KHZvaWQpCisgCXJldHVy biAxOworIH0KKyAKKysvKiBDaGVjayBpZiBhbnkgb2YgdGhlIGluZGljYXRvcnMgaW4gdGhlIEtl cmJlcm9zIHRpY2tldCBtYXRjaAorKyAqIG9uZSBvZiBpbmRpY2F0b3JzIGluIHRoZSBsaXN0IG9m IGFsbG93ZWQvZGVuaWVkIHJ1bGVzLgorKyAqIEluIGNhc2Ugb2YgdGhlIG1hdGNoLCBhcHBseSB0 aGUgZGVjaXNpb24gZnJvbSB0aGUgcnVsZS4KKysgKiBJbiBjYXNlIG9mIG5vIGluZGljYXRvciBm cm9tIHRoZSB0aWNrZXQgbWF0Y2hpbmcgdGhlIHJ1bGUsIGRlbnkKKysgKi8KKysKKytzdGF0aWMg aW50Cisrc3NoX2dzc2FwaV9jaGVja19pbmRpY2F0b3JzKHNzaF9nc3NhcGlfY2xpZW50ICpjbGll bnQsIGludCAqbWF0Y2hlZCkKKyt7CisrCWludCByZXQ7CisrCXVfaW50IGk7CisrCSptYXRjaGVk ID0gLTE7CisrCisrCS8qIENoZWNrIGluZGljYXRvcnMgKi8KKysJZm9yIChpID0gMDsgY2xpZW50 LT5pbmRpY2F0b3JzW2ldICE9IE5VTEw7IGkrKykgeworKwkJcmV0ID0gbWF0Y2hfcGF0dGVybl9s aXN0KGNsaWVudC0+aW5kaWNhdG9yc1tpXSwKKysJCQkJCSBvcHRpb25zLmdzc19pbmRpY2F0b3Jz LCAxKTsKKysJCS8qIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIG1hdGNoICovCisrCQlpZiAocmV0ICE9 IDApIHsKKysJCQkqbWF0Y2hlZCA9IGk7CisrCQkJcmV0dXJuIHJldDsKKysJCX0KKysJfQorKwkv KiBObyBydWxlIG1hdGNoZWQgKi8KKysJcmV0dXJuIDA7CisrfQorKworIC8qIENoZWNrIGlmIHRo aXMgdXNlciBpcyBPSyB0byBsb2dpbi4gVGhpcyBvbmx5IHdvcmtzIHdpdGgga3JiNSAtIG90aGVy CisgICogR1NTQVBJIG1lY2hhbmlzbXMgd2lsbCBuZWVkIHRoZWlyIG93bi4KKyAgKiBSZXR1cm5z IHRydWUgaWYgdGhlIHVzZXIgaXMgT0sgdG8gbG9nIGluLCBvdGhlcndpc2UgcmV0dXJucyAwCitA QCAtMTkzLDE1ICsyMjEsMTUgQEAgc3RhdGljIGludAorIHNzaF9nc3NhcGlfa3JiNV91c2Vyb2so c3NoX2dzc2FwaV9jbGllbnQgKmNsaWVudCwgY2hhciAqbmFtZSkKKyB7CisgCWtyYjVfcHJpbmNp cGFsIHByaW5jOworLQlpbnQgcmV0dmFsOworKwlpbnQgcmV0dmFsLCBtYXRjaGVkLCBzdWNjZXNz OworIAljb25zdCBjaGFyICplcnJtc2c7CisgCWludCBrNWxvZ2luX2V4aXN0czsKKyAKKyAJaWYg KHNzaF9nc3NhcGlfa3JiNV9pbml0KCkgPT0gMCkKKyAJCXJldHVybiAwOworIAorLQlpZiAoKHJl dHZhbCA9IGtyYjVfcGFyc2VfbmFtZShrcmJfY29udGV4dCwgY2xpZW50LT5leHBvcnRlZG5hbWUu dmFsdWUsCistCSAgICAmcHJpbmMpKSkgeworKwlyZXR2YWwgPSBrcmI1X3BhcnNlX25hbWUoa3Ji X2NvbnRleHQsIGNsaWVudC0+ZXhwb3J0ZWRuYW1lLnZhbHVlLCAmcHJpbmMpOworKwlpZiAocmV0 dmFsKSB7CisgCQllcnJtc2cgPSBrcmI1X2dldF9lcnJvcl9tZXNzYWdlKGtyYl9jb250ZXh0LCBy ZXR2YWwpOworIAkJbG9naXQoImtyYjVfcGFyc2VfbmFtZSgpOiAlLjEwMHMiLCBlcnJtc2cpOwor IAkJa3JiNV9mcmVlX2Vycm9yX21lc3NhZ2Uoa3JiX2NvbnRleHQsIGVycm1zZyk7CitAQCAtMjE2 LDE3ICsyNDQsNjAgQEAgc3NoX2dzc2FwaV9rcmI1X3VzZXJvayhzc2hfZ3NzYXBpX2NsaWVudAor IAlpZiAoazVsb2dpbl9leGlzdHMgJiYKKyAJICAgIHNzaF9rcmI1X2t1c2Vyb2soa3JiX2NvbnRl eHQsIHByaW5jLCBuYW1lLCBrNWxvZ2luX2V4aXN0cykpIHsKKyAJCXJldHZhbCA9IDE7CistCQls b2dpdCgiQXV0aG9yaXplZCB0byAlcywga3JiNSBwcmluY2lwYWwgJXMgKGtyYjVfa3VzZXJvayki LAorLQkJICAgIG5hbWUsIChjaGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1ZSk7CisrCQll cnJtc2cgPSAia3JiNV9rdXNlcm9rIjsKKyAJfSBlbHNlIGlmIChzc2hfZ3NzYXBpX2tyYjVfY21k b2socHJpbmMsIGNsaWVudC0+ZXhwb3J0ZWRuYW1lLnZhbHVlLAorIAkJbmFtZSwgazVsb2dpbl9l eGlzdHMpKSB7CisgCQlyZXR2YWwgPSAxOworLQkJbG9naXQoIkF1dGhvcml6ZWQgdG8gJXMsIGty YjUgcHJpbmNpcGFsICVzICIKKy0JCSAgICAiKHNzaF9nc3NhcGlfa3JiNV9jbWRvaykiLAorLQkJ ICAgIG5hbWUsIChjaGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1ZSk7CistCX0gZWxzZQor KwkJZXJybXNnID0gInNzaF9nc3NhcGlfa3JiNV9jbWRvayI7CisrCX0gZWxzZSB7CisrCQlyZXR2 YWwgPSAwOworKwkJZ290byBvdXQ7CisrCX0KKysKKysJLyogQXQgdGhpcyBwb2ludCB3ZSBhcmUg Z29vZCBpZiBubyBpbmRpY2F0b3JzIHdlcmUgZGVmaW5lZCAqLworKwlpZiAob3B0aW9ucy5nc3Nf aW5kaWNhdG9ycyA9PSBOVUxMKSB7CisrCQlyZXR2YWwgPSAxOworKwkJZ290byBvdXQ7CisrCX0K KysKKysJLyogQXQgdGhpcyBwb2ludCB3ZSBoYXZlIGluZGljYXRvcnMgZGVmaW5lZCBpbiB0aGUg Y29uZmlndXJhdGlvbiwKKysJICogaWYgY2xpZW50dCBkaWQgbm90IHByb3ZpZGUgYW55IGluZGlj YXRvcnMsIHdlIHJlamVjdCAqLworKwlpZiAoIWNsaWVudC0+aW5kaWNhdG9ycykgeworKwkJcmV0 dmFsID0gMDsKKysJCWxvZ2l0KCJHU1NBUEkgYXV0aGVudGljYXRpb24gaW5kaWNhdG9ycyBlbmZv cmNlZCAiCisrCQkgICAgICAiYnV0IGluZGljYXRvcnMgbm90IHByb3ZpZGVkIGJ5IHRoZSBjbGll bnQuICIKKysJCSAgICAgICJrcmI1IHByaW5jaXBhbCAlcyBkZW5pZWQiLAorKwkJICAgICAgKGNo YXIgKiljbGllbnQtPmRpc3BsYXluYW1lLnZhbHVlKTsKKysJCWdvdG8gb3V0OworKwl9CisrCisr CS8qIEF0IHRoaXMgcG9pbnQgdGhlIGNvbmZpZ3VyYXRpb24gZW5mb3JjZXMgcHJlc2VuY2Ugb2Yg aW5kaWNhdG9ycworKwkgKiBjaGVjayB0aGUgbWF0Y2ggKi8KKysJbWF0Y2hlZCA9IC0xOworKwlz dWNjZXNzID0gc3NoX2dzc2FwaV9jaGVja19pbmRpY2F0b3JzKGNsaWVudCwgJm1hdGNoZWQpOwor KworKwlzd2l0Y2ggKHN1Y2Nlc3MpIHsKKysJY2FzZSAxOgorKwkJbG9naXQoIlByb3ZpZGVkIGlu ZGljYXRvciAlcyBhbGxvd2VkIGJ5IHRoZSBjb25maWd1cmF0aW9uIiwKKysJCSAgICAgIGNsaWVu dC0+aW5kaWNhdG9yc1ttYXRjaGVkXSk7CisrCQlyZXR2YWwgPSAxOworKwkJYnJlYWs7CisrCWNh c2UgLTE6CisrCQlsb2dpdCgiUHJvdmlkZWQgaW5kaWNhdG9yICVzIHJlamVjdGVkIGJ5IHRoZSBj b25maWd1cmF0aW9uIiwKKysJCSAgICAgIGNsaWVudC0+aW5kaWNhdG9yc1ttYXRjaGVkXSk7Cisr CQlyZXR2YWwgPSAwOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlsb2dpdCgiUHJvdmlkZWQg aW5kaWNhdG9ycyBkbyBub3QgbWF0Y2ggdGhlIGNvbmZpZ3VyYXRpb24iKTsKKyAJCXJldHZhbCA9 IDA7CisrCQlicmVhazsKKysJfQorIAorK291dDoKKysJaWYgKHJldHZhbCA9PSAxKSB7CisrCQls b2dpdCgiQXV0aG9yaXplZCB0byAlcywga3JiNSBwcmluY2lwYWwgJXMgKCVzKSIsCisrCQkgICAg ICBuYW1lLCAoY2hhciAqKWNsaWVudC0+ZGlzcGxheW5hbWUudmFsdWUsIGVycm1zZyk7CisrCX0K KyAJa3JiNV9mcmVlX3ByaW5jaXBhbChrcmJfY29udGV4dCwgcHJpbmMpOworIAlyZXR1cm4gcmV0 dmFsOworIH0KK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NlcnZjb25mLmMgYi9zZXJ2Y29uZi5jCist LS0gYS9zZXJ2Y29uZi5jCTIwMjYtMDMtMTAgMTI6NDM6MzYuOTI4MDYwMzUzICswMTAwCisrKysg Yi9zZXJ2Y29uZi5jCTIwMjYtMDMtMTEgMTM6MjA6MDkuNzI1MzU0OTI1ICswMTAwCitAQCAtMTQ0 LDYgKzE0NCw3IEBAIGluaXRpYWxpemVfc2VydmVyX29wdGlvbnMoU2VydmVyT3B0aW9ucworIAlv cHRpb25zLT5nc3Nfa2V5ZXggPSAtMTsKKyAJb3B0aW9ucy0+Z3NzX2NsZWFudXBfY3JlZHMgPSAt MTsKICAJb3B0aW9ucy0+Z3NzX3N0cmljdF9hY2NlcHRvciA9IC0xOworKwlvcHRpb25zLT5nc3Nf aW5kaWNhdG9ycyA9IE5VTEw7CiAgCW9wdGlvbnMtPmdzc19zdG9yZV9yZWtleSA9IC0xOwogIAlv cHRpb25zLT5nc3Nfa2V4X2FsZ29yaXRobXMgPSBOVUxMOwotKwlvcHRpb25zLT5nc3NfaW5kaWNh dG9ycyA9IE5VTEw7CiAgCW9wdGlvbnMtPnVzZV9rdXNlcm9rID0gLTE7Ci0gCW9wdGlvbnMtPmVu YWJsZV9rNXVzZXJzID0gLTE7Ci0gCW9wdGlvbnMtPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uID0g LTE7Ci1AQCAtNTk4LDcgKzU5OSw3IEBAIHR5cGVkZWYgZW51bSB7CitAQCAtNTU3LDYgKzU1OCw3 IEBAIGZpbGxfZGVmYXVsdF9zZXJ2ZXJfb3B0aW9ucyhTZXJ2ZXJPcHRpb24KKyAJQ0xFQVJfT05f Tk9ORShvcHRpb25zLT5yb3V0aW5nX2RvbWFpbik7CisgCUNMRUFSX09OX05PTkUob3B0aW9ucy0+ aG9zdF9rZXlfYWdlbnQpOworIAlDTEVBUl9PTl9OT05FKG9wdGlvbnMtPnBlcl9zb3VyY2VfcGVu YWx0eV9leGVtcHQpOworKwlDTEVBUl9PTl9OT05FKG9wdGlvbnMtPmdzc19pbmRpY2F0b3JzKTsK KyAKKyAJZm9yIChpID0gMDsgaSA8IG9wdGlvbnMtPm51bV9ob3N0X2tleV9maWxlczsgaSsrKQor IAkJQ0xFQVJfT05fTk9ORShvcHRpb25zLT5ob3N0X2tleV9maWxlc1tpXSk7CitAQCAtNTk0LDcg KzU5Niw3IEBAIHR5cGVkZWYgZW51bSB7CiAgCXNQZXJTb3VyY2VQZW5hbHRpZXMsIHNQZXJTb3Vy Y2VQZW5hbHR5RXhlbXB0TGlzdCwKICAJc0NsaWVudEFsaXZlSW50ZXJ2YWwsIHNDbGllbnRBbGl2 ZUNvdW50TWF4LCBzQXV0aG9yaXplZEtleXNGaWxlLAogIAlzR3NzQXV0aGVudGljYXRpb24sIHNH c3NDbGVhbnVwQ3JlZHMsIHNHc3NFbmFibGVrNXVzZXJzLCBzR3NzU3RyaWN0QWNjZXB0b3IsCkBA IC0zMDUsNyArMzE0LDcgQEAgaW5kZXggZTdlNGFkMDQ2Li5hYWI2NTMyNDQgMTAwNjQ0CiAgCXNB Y2NlcHRFbnYsIHNTZXRFbnYsIHNQZXJtaXRUdW5uZWwsCiAgCXNNYXRjaCwgc1Blcm1pdE9wZW4s IHNQZXJtaXRMaXN0ZW4sIHNGb3JjZUNvbW1hbmQsIHNDaHJvb3REaXJlY3RvcnksCiAgCXNVc2VQ cml2aWxlZ2VTZXBhcmF0aW9uLCBzQWxsb3dBZ2VudEZvcndhcmRpbmcsCi1AQCAtNjk0LDYgKzY5 NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgeworQEAgLTY5MCw2ICs2OTIsNyBAQCBzdGF0aWMgc3RydWN0 IHsKICAJeyAiZ3NzYXBpc3RvcmVjcmVkZW50aWFsc29ucmVrZXkiLCBzR3NzU3RvcmVSZWtleSwg U1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlrZXhhbGdvcml0aG1zIiwgc0dzc0tleEFsZ29y aXRobXMsIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpZW5hYmxlazV1c2VycyIsIHNHc3NF bmFibGVrNXVzZXJzLCBTU0hDRkdfQUxMIH0sCkBAIC0zMTMsNyArMzIyLDcgQEAgaW5kZXggZTdl NGFkMDQ2Li5hYWI2NTMyNDQgMTAwNjQ0CiAgI2Vsc2UKICAJeyAiZ3NzYXBpYXV0aGVudGljYXRp b24iLCBzVW5zdXBwb3J0ZWQsIFNTSENGR19BTEwgfSwKICAJeyAiZ3NzYXBpY2xlYW51cGNyZWRl bnRpYWxzIiwgc1Vuc3VwcG9ydGVkLCBTU0hDRkdfR0xPQkFMIH0sCi1AQCAtNzAzLDYgKzcwNSw3 IEBAIHN0YXRpYyBzdHJ1Y3QgeworQEAgLTY5OSw2ICs3MDIsNyBAQCBzdGF0aWMgc3RydWN0IHsK ICAJeyAiZ3NzYXBpc3RvcmVjcmVkZW50aWFsc29ucmVrZXkiLCBzVW5zdXBwb3J0ZWQsIFNTSENG R19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpa2V4YWxnb3JpdGhtcyIsIHNVbnN1cHBvcnRlZCwgU1NI Q0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGllbmFibGVrNXVzZXJzIiwgc1Vuc3VwcG9ydGVkLCBT U0hDRkdfQUxMIH0sCkBAIC0zMjEsNyArMzMwLDcgQEAgaW5kZXggZTdlNGFkMDQ2Li5hYWI2NTMy NDQgMTAwNjQ0CiAgI2VuZGlmCiAgCXsgImdzc3VzZXNlc3Npb25jY2FjaGUiLCBzVW5zdXBwb3J0 ZWQsIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpdXNlc2Vzc2lvbmNyZWRjYWNoZSIsIHNV bnN1cHBvcnRlZCwgU1NIQ0ZHX0dMT0JBTCB9LAotQEAgLTE3MzAsNiArMTczMywxNSBAQCBwcm9j ZXNzX3NlcnZlcl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPcHRpb25zICpvcHRpb25zLCBjaGFy ICpsaW5lLAorQEAgLTE3MTUsNiArMTcxOSwxNSBAQCBwcm9jZXNzX3NlcnZlcl9jb25maWdfbGlu ZV9kZXB0aChTZXJ2ZXJPCiAgCQkJb3B0aW9ucy0+Z3NzX2tleF9hbGdvcml0aG1zID0geHN0cmR1 cChhcmcpOwogIAkJYnJlYWs7CiAgCkBAIC0zMzcsNyArMzQ2LDcgQEAgaW5kZXggZTdlNGFkMDQ2 Li5hYWI2NTMyNDQgMTAwNjQ0CiAgCWNhc2Ugc1Bhc3N3b3JkQXV0aGVudGljYXRpb246CiAgCQlp bnRwdHIgPSAmb3B0aW9ucy0+cGFzc3dvcmRfYXV0aGVudGljYXRpb247CiAgCQlnb3RvIHBhcnNl X2ZsYWc7Ci1AQCAtMzM1MSw2ICszMzYzLDcgQEAgZHVtcF9jb25maWcoU2VydmVyT3B0aW9ucyAq bykKK0BAIC0zMzI5LDYgKzMzNDIsNyBAQCBkdW1wX2NvbmZpZyhTZXJ2ZXJPcHRpb25zICpvKQog IAlkdW1wX2NmZ19mbXRpbnQoc0dzc1N0cmljdEFjY2VwdG9yLCBvLT5nc3Nfc3RyaWN0X2FjY2Vw dG9yKTsKICAJZHVtcF9jZmdfZm10aW50KHNHc3NTdG9yZVJla2V5LCBvLT5nc3Nfc3RvcmVfcmVr ZXkpOwogIAlkdW1wX2NmZ19zdHJpbmcoc0dzc0tleEFsZ29yaXRobXMsIG8tPmdzc19rZXhfYWxn b3JpdGhtcyk7CkBAIC0zNDUsMTAgKzM1NCw5IEBAIGluZGV4IGU3ZTRhZDA0Ni4uYWFiNjUzMjQ0 IDEwMDY0NAogICNlbmRpZgogIAlkdW1wX2NmZ19mbXRpbnQoc1Bhc3N3b3JkQXV0aGVudGljYXRp b24sIG8tPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uKTsKICAJZHVtcF9jZmdfZm10aW50KHNLYmRJ bnRlcmFjdGl2ZUF1dGhlbnRpY2F0aW9uLAotZGlmZiAtLWdpdCBhL3NlcnZjb25mLmggYi9zZXJ2 Y29uZi5oCi1pbmRleCA3YzdlNWQ0MzQuLjdjNDFkZjQxNyAxMDA2NDQKLS0tLSBhL3NlcnZjb25m LmgKLSsrKyBiL3NlcnZjb25mLmgKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NlcnZjb25mLmggYi9z ZXJ2Y29uZi5oCistLS0gYS9zZXJ2Y29uZi5oCTIwMjYtMDMtMTAgMTI6NDM6MzYuODMzMTE5OTIw ICswMTAwCisrKysgYi9zZXJ2Y29uZi5oCTIwMjYtMDMtMTEgMTM6MjE6MzYuNzQyMTE3MDMzICsw MTAwCiBAQCAtMTgxLDYgKzE4MSw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAJY2hhciAgICoqYWxs b3dfZ3JvdXBzOwogIAl1X2ludCBudW1fZGVueV9ncm91cHM7CkBAIC0zNTcsNyArMzY1LDcgQEAg aW5kZXggN2M3ZTVkNDM0Li43YzQxZGY0MTcgMTAwNjQ0CiAgCiAgCXVfaW50IG51bV9zdWJzeXN0 ZW1zOwogIAljaGFyICAgKipzdWJzeXN0ZW1fbmFtZTsKLUBAIC0zMTAsNiArMzExLDcgQEAgVEFJ TFFfSEVBRChpbmNsdWRlX2xpc3QsIGluY2x1ZGVfaXRlbSk7CitAQCAtMzA5LDYgKzMxMCw3IEBA IFRBSUxRX0hFQUQoaW5jbHVkZV9saXN0LCBpbmNsdWRlX2l0ZW0pOwogIAkJTV9DUF9TVFJPUFQo cm91dGluZ19kb21haW4pOyBcCiAgCQlNX0NQX1NUUk9QVChwZXJtaXRfdXNlcl9lbnZfYWxsb3ds aXN0KTsgXAogIAkJTV9DUF9TVFJPUFQocGFtX3NlcnZpY2VfbmFtZSk7IFwKQEAgLTM2NSwzNiAr MzczLDEwIEBAIGluZGV4IDdjN2U1ZDQzNC4uN2M0MWRmNDE3IDEwMDY0NAogIAkJTV9DUF9TVFJB UlJBWU9QVChhdXRob3JpemVkX2tleXNfZmlsZXMsIG51bV9hdXRoa2V5c19maWxlcyk7IFwKICAJ CU1fQ1BfU1RSQVJSQVlPUFQoYWxsb3dfdXNlcnMsIG51bV9hbGxvd191c2Vycyk7IFwKICAJCU1f Q1BfU1RSQVJSQVlPUFQoZGVueV91c2VycywgbnVtX2RlbnlfdXNlcnMpOyBcCi1kaWZmIC0tZ2l0 IGEvc3NoLWdzcy5oIGIvc3NoLWdzcy5oCi1pbmRleCBhODk0ZTIzYzkuLjU5Y2Y0NmQ0NyAxMDA2 NDQKLS0tLSBhL3NzaC1nc3MuaAotKysrIGIvc3NoLWdzcy5oCi1AQCAtMzQsNiArMzQsMTIgQEAK LSAjaW5jbHVkZSA8Z3NzYXBpL2dzc2FwaS5oPgotICNlbmRpZgotIAotKyNpZmRlZiBIQVZFX0dT U0FQSV9FWFRfSAotKyNpbmNsdWRlIDxnc3NhcGlfZXh0Lmg+Ci0rI2VsaWYgZGVmaW5lZChIQVZF X0dTU0FQSV9HU1NBUElfRVhUX0gpCi0rI2luY2x1ZGUgPGdzc2FwaS9nc3NhcGlfZXh0Lmg+Ci0r I2VuZGlmCi0rCi0gI2lmZGVmIEtSQjUKLSAjIGlmbmRlZiBIRUlNREFMCi0gIyAgaWZkZWYgSEFW RV9HU1NBUElfR0VORVJJQ19ICi1AQCAtMTA3LDYgKzExMyw3IEBAIHR5cGVkZWYgc3RydWN0IHsK LSAJc3NoX2dzc2FwaV9jY2FjaGUgc3RvcmU7Ci0gCWludCB1c2VkOwotIAlpbnQgdXBkYXRlZDsK LSsJY2hhciAqKmluZGljYXRvcnM7IC8qIGF1dGggaW5kaWNhdG9ycyAqLwotIH0gc3NoX2dzc2Fw aV9jbGllbnQ7Ci0gCi0gdHlwZWRlZiBzdHJ1Y3Qgc3NoX2dzc2FwaV9tZWNoX3N0cnVjdCB7Ci1k aWZmIC0tZ2l0IGEvc3NoZF9jb25maWcuNSBiL3NzaGRfY29uZmlnLjUKLWluZGV4IDU4M2EwMWNk Yi4uOTBhYjg3ZWRkIDEwMDY0NAotLS0tIGEvc3NoZF9jb25maWcuNQotKysrIGIvc3NoZF9jb25m aWcuNQotQEAgLTc4NSw2ICs3ODUsNTAgQEAgZ3NzLW5pc3RwMjU2LXNoYTI1Ni0KK2RpZmYgLS1j b2xvciAtcnVOcCBhL3NzaGRfY29uZmlnLjUgYi9zc2hkX2NvbmZpZy41CistLS0gYS9zc2hkX2Nv bmZpZy41CTIwMjYtMDMtMTAgMTI6NDM6MzYuODU5MzEzMzAyICswMTAwCisrKysgYi9zc2hkX2Nv bmZpZy41CTIwMjYtMDMtMTEgMTM6Mjg6MDQuNTQxOTcwMDYzICswMTAwCitAQCAtNzg1LDYgKzc4 NSw1MiBAQCBnc3MtbmlzdHAyNTYtc2hhMjU2LQogIGdzcy1jdXJ2ZTI1NTE5LXNoYTI1Ni0KICAu RWQKICBUaGlzIG9wdGlvbiBvbmx5IGFwcGxpZXMgdG8gY29ubmVjdGlvbnMgdXNpbmcgR1NTQVBJ LgpAQCAtNDQxLDEwICs0MjMsMzMgQEAgaW5kZXggNTgzYTAxY2RiLi45MGFiODdlZGQgMTAwNjQ0 CiArRklETzItYmFzZWQgcHJlLWF1dGhlbnRpY2F0aW9uIGluIEZyZWVJUEEsIHVzaW5nIEZJRE8y IFVTQiBhbmQgTkZDIHRva2VucwogKy5FbAogKy5QcAotK1RoZSBkZWZhdWx0IGlzIHRvIG5vdCB1 c2UgR1NTQVBJIGF1dGhlbnRpY2F0aW9uIGluZGljYXRvcnMgZm9yIGFjY2VzcyBkZWNpc2lvbnMu CisrVGhlIGRlZmF1bHQKKysuRHEgbm9uZQorK2lzIHRvIG5vdCB1c2UgR1NTQVBJIGF1dGhlbnRp Y2F0aW9uIGluZGljYXRvcnMgZm9yIGFjY2VzcyBkZWNpc2lvbnMuCiAgLkl0IENtIEhvc3RiYXNl ZEFjY2VwdGVkQWxnb3JpdGhtcwogIFRoZSBkZWZhdWx0IGlzIGhhbmRsZWQgc3lzdGVtLXdpZGUg YnkKICAuWHIgY3J5cHRvLXBvbGljaWVzIDcgLgotLS0gCi0yLjQ5LjAKLQorZGlmZiAtLWNvbG9y IC1ydU5wIGEvc3NoLWdzcy5oIGIvc3NoLWdzcy5oCistLS0gYS9zc2gtZ3NzLmgJMjAyNi0wMy0x MCAxMjo0MzozNi44OTgxNDgzMDkgKzAxMDAKKysrKyBiL3NzaC1nc3MuaAkyMDI2LTAzLTExIDEz OjIzOjA3LjYwMTk1Njk2NSArMDEwMAorQEAgLTM0LDYgKzM0LDEyIEBACisgI2luY2x1ZGUgPGdz c2FwaS9nc3NhcGkuaD4KKyAjZW5kaWYKKyAKKysjaWZkZWYgSEFWRV9HU1NBUElfRVhUX0gKKysj aW5jbHVkZSA8Z3NzYXBpX2V4dC5oPgorKyNlbGlmIGRlZmluZWQoSEFWRV9HU1NBUElfR1NTQVBJ X0VYVF9IKQorKyNpbmNsdWRlIDxnc3NhcGkvZ3NzYXBpX2V4dC5oPgorKyNlbmRpZgorKworICNp ZmRlZiBLUkI1CisgIyBpZm5kZWYgSEVJTURBTAorICMgIGlmZGVmIEhBVkVfR1NTQVBJX0dFTkVS SUNfSAorQEAgLTExMiw2ICsxMTgsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CisgCXNzaF9nc3NhcGlf Y2NhY2hlIHN0b3JlOworIAlpbnQgdXNlZDsKKyAJaW50IHVwZGF0ZWQ7CisrCWNoYXIgKippbmRp Y2F0b3JzOyAvKiBhdXRoIGluZGljYXRvcnMgKi8KKyB9IHNzaF9nc3NhcGlfY2xpZW50OworIAor IHR5cGVkZWYgc3RydWN0IHNzaF9nc3NhcGlfbWVjaF9zdHJ1Y3Qgewo=