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/xrootd] epel10.2: Update to version 6.1.0 Date: Wed, 24 Jun 2026 05:08:21 GMT Message-ID: <178227770158.1.11500041808795695965.rpms-xrootd-fac6715ea9dd@fedoraproject.org> List-ID: X-Git-Repo: rpms/xrootd X-Git-Branch: epel10.2 X-Git-Rev: fac6715ea9dd0e1faf8422f146d1275eeed6d0e7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveHJvb3RkCiAgICAgICAgICAgIEJyYW5jaCA6IGVwZWwxMC4yCiAgICAgICAg ICAgIENvbW1pdCA6IGZhYzY3MTVlYTlkZDBlMWZhZjg0MjJmMTQ2ZDEyNzVlZWVkNmQwZTcKICAg ICAgICAgICAgQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3Mu dXUuc2U+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDYtMjRUMDc6MDQ6MjgrMDI6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzkvLTYwNSBpbiA0IGZpbGUocykKICAgICAgICAgICAgVVJMICAg IDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy94cm9vdGQvYy9mYWM2NzE1ZWE5 ZGQwZTFmYWY4NDIyZjE0NmQxMjc1ZWVlZDZkMGU3P2JyYW5jaD1lcGVsMTAuMgoKICAgICAgICAg ICAgTG9nOgogICAgICAgICAgICBVcGRhdGUgdG8gdmVyc2lvbiA2LjEuMAoKRHJvcCBwYXRjaGVz IGFjY2VwdGVkIHVwc3RyZWFtCgotLS0KZGlmZiAtLWdpdCBhLzAwMDEtWHJkQ3J5cHRvLVhyZFRs cy1YcmRWb21zLUFkYXB0LXRvLU9wZW5TU0wtNC4wLnBhdGNoIGIvMDAwMS1YcmRDcnlwdG8tWHJk VGxzLVhyZFZvbXMtQWRhcHQtdG8tT3BlblNTTC00LjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGU0NmFkOWUuLjAwMDAwMDAKLS0tIGEvMDAwMS1YcmRDcnlwdG8tWHJkVGxz LVhyZFZvbXMtQWRhcHQtdG8tT3BlblNTTC00LjAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1 NjYgKzAsMCBAQAotRnJvbSA1MzRlMWFhMmVmZDhlNTkyNzFkMjQxMGRjNGE0ZDMzYWI3YmM4ZWQ5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMu ZWxsZXJ0QHBoeXNpY3MudXUuc2U+Ci1EYXRlOiBTYXQsIDIzIE1heSAyMDI2IDE4OjU3OjU0ICsw MjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBbWHJkQ3J5cHRvL1hyZFRscy9YcmRWb21zXSBBZGFw dCB0byBPcGVuU1NMIDQuMAotCi0tLS0KLSBzcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5j YyAgICAgfCAgIDYgKy0KLSBzcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5oaCAgICAgfCAg IDIgKy0KLSBzcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDkuY2MgICAgfCAgNDggKysrKyst LS0tCi0gc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xYNTA5Q3JsLmNjIHwgICAyICstCi0gc3Jj L1hyZENyeXB0by9YcmRDcnlwdG9zc2xnc2lBdXguY2MgIHwgMTQwICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLQotIHNyYy9YcmRUbHMvWHJkVGxzTm90YXJ5VXRpbHMuaWNjICAgICB8ICAgNCAr LQotIHNyYy9YcmRWb21zL1hyZFZvbXNGdW4uY2MgICAgICAgICAgICB8ICAgMiArLQotIHNyYy9Y cmRWb21zL1hyZFZvbXNGdW4uaGggICAgICAgICAgICB8ICAgMiArLQotIDggZmlsZXMgY2hhbmdl ZCwgMTQ1IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3Jj L1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguY2MgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3Nz bEF1eC5jYwotaW5kZXggMzg5M2JjMmI0Li5hNDQyODM5ODUgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJk Q3J5cHRvL1hyZENyeXB0b3NzbEF1eC5jYwotKysrIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9z c2xBdXguY2MKLUBAIC02OTEsMTMgKzY5MSwxMyBAQCB0aW1lX3QgWHJkQ3J5cHRvc3NsQVNOMXRv VVRDKGNvbnN0IEFTTjFfVElNRSAqdHNuMSkKLSAgICAvLyBPdXIgcmVzdWx0IGlzIGluIGFncmVl bWVudCB3aXRoICdkYXRlICslc2AuIAotICAgIHN0cnVjdCB0bSBsdG07Ci0gICAgY2hhciB6ejsK LS0gICBpZiAoKHNzY2FuZigoY29uc3QgY2hhciAqKSh0c24xLT5kYXRhKSwKLSsgICBpZiAoKHNz Y2FuZigoY29uc3QgY2hhciAqKSBBU04xX1NUUklOR19nZXQwX2RhdGEodHNuMSksCi0gICAgICAg ICIlMDJkJTAyZCUwMmQlMDJkJTAyZCUwMmQlYyIsIAotICAgICAgICAmKGx0bS50bV95ZWFyKSwg JihsdG0udG1fbW9uKSwgJihsdG0udG1fbWRheSksCi0gICAgICAgICYobHRtLnRtX2hvdXIpLCAm KGx0bS50bV9taW4pLCAmKGx0bS50bV9zZWMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnp6KSAhPSA3KSB8fCAoenogIT0gJ1onKSkgewotICAgICAgICAvLyBUcnkg R2VuZXJhbGl6ZWRUaW1lCi0tICAgICAgIGlmICgoc3NjYW5mKChjb25zdCBjaGFyICopKHRzbjEt PmRhdGEpLAotKyAgICAgICBpZiAoKHNzY2FuZigoY29uc3QgY2hhciAqKSBBU04xX1NUUklOR19n ZXQwX2RhdGEodHNuMSksCi0gICAgICAgICAgICAiJTA0ZCUwMmQlMDJkJTAyZCUwMmQlMDJkJWMi LCAKLSAgICAgICAgICAgICYobHRtLnRtX3llYXIpLCAmKGx0bS50bV9tb24pLCAmKGx0bS50bV9t ZGF5KSwKLSAgICAgICAgICAgICYobHRtLnRtX2hvdXIpLCAmKGx0bS50bV9taW4pLCAmKGx0bS50 bV9zZWMpLAotQEAgLTczMyw3ICs3MzMsNyBAQCB0aW1lX3QgWHJkQ3J5cHRvc3NsQVNOMXRvVVRD KGNvbnN0IEFTTjFfVElNRSAqdHNuMSkKLSB9IAotIAotIC8vX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwot LXZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoWDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5n ICZzKQotK3ZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoY29uc3QgWDUwOV9OQU1FICpubSwg WHJkT3VjU3RyaW5nICZzKQotIHsKLSAgICAvLyBGdW5jdGlvbiB0byBjb252ZXJ0IFg1MDlfTkFN RSBpbnRvIGEgb25lLWxpbmUgaHVtYW4gcmVhZGFibGUgc3RyaW5nCi0gCi1kaWZmIC0tZ2l0IGEv c3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguaGggYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0 b3NzbEF1eC5oaAotaW5kZXggMzZmM2FhZDFiLi5kZTg1MmJlM2YgMTAwNjQ0Ci0tLS0gYS9zcmMv WHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5oaAotKysrIGIvc3JjL1hyZENyeXB0by9YcmRDcnlw dG9zc2xBdXguaGgKLUBAIC03NCw3ICs3NCw3IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5UGFyc2VT dGFjayhYcmRUbHNQZWVyQ2VydHMqIHBjLCBYcmRDcnlwdG9YNTA5Q2hhaW4gKmNoYWluKTsKLSB0 aW1lX3QgWHJkQ3J5cHRvc3NsQVNOMXRvVVRDKGNvbnN0IEFTTjFfVElNRSAqdHNuMSk7Ci0gCi0g Ly8gRnVuY3Rpb24gdG8gY29udmVydCBYNTA5X05BTUUgaW50byBhIG9uZS1saW5lIGh1bWFuIHJl YWRhYmxlIHN0cmluZwotLXZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoWDUwOV9OQU1FICpu bSwgWHJkT3VjU3RyaW5nICZzKTsKLSt2b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKGNvbnN0 IFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcyk7Ci0gCi0gLy8KLSAvLyBYNTA5IHByb3h5 IGF1eGlsbGlhcnkgZnVuY3Rpb25zCi1kaWZmIC0tZ2l0IGEvc3JjL1hyZENyeXB0by9YcmRDcnlw dG9zc2xYNTA5LmNjIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xYNTA5LmNjCi1pbmRleCBi Y2M3OWM4OWMuLmQ5ZDJiMTgyZiAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRv c3NsWDUwOS5jYwotKysrIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xYNTA5LmNjCi1AQCAt MzQwLDcgKzM0MCwxMSBAQCB2b2lkIFhyZENyeXB0b3NzbFg1MDk6OkNlcnRUeXBlKCkKLSAgIAot ICAgIGJvb2wgZG9uZSA9IDA7Ci0gICAgLy8gQ2hlY2sgdGhlIGV4dGVuc2lvbnMKLSsjaWYgT1BF TlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9FWFRFTlNJT04gKmV4 dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXh0ID0gMDsKLSsjZW5k aWYKLSAgICBpbnQgaWR4ID0gLTE7Ci0gCi0gICAgLy8gRm9yIENBcyB3ZSBhcmUgbG9va2luZyBm b3IgYSAiYmFzaWNDb25zdHJhaW50cyIKLUBAIC02ODQsNyArNjg4LDExIEBAIFhyZENyeXB0b1g1 MDlkYXRhIFhyZENyeXB0b3NzbFg1MDk6OkdldEV4dGVuc2lvbihjb25zdCBjaGFyICpvaWQpCi0g Ci0gICAgLy8gTG9vcCB0byBpZGVudGlmeSB0aGUgb25lIHdlIHdvdWxkIGxpa2UKLSAgICBpbnQg aSA9IDA7Ci0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAotICAgIFg1 MDlfRVhURU5TSU9OICp3ZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9O ICp3ZXh0ID0gMDsKLSsjZW5kaWYKLSAgICBmb3IgKGkgPSAwOyBpPCBudW1leHQ7IGkrKykgewot ICAgICAgIHdleHQgPSBYNTA5X2dldF9leHQoY2VydCwgaSk7Ci0gICAgICAgaWYgKHVzZW5pZCkg ewotQEAgLTgyMSw3ICs4MjksMTEgQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkR1bXBFeHRlbnNp b25zKGJvb2wgZHVtcHVua25vd24pCi0gCi0gICAgcmMgPSAxOwotICAgIC8vIEdvIHRocm91Z2gg dGhlIGV4dGVuc2lvbnMKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBM Ci0gICAgWDUwOV9FWFRFTlNJT04gKnhwaWV4dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5 X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsjZW5kaWYKLSAgICBpbnQgbnBpZXh0ID0gWDUwOV9n ZXRfZXh0X2NvdW50KHhwaSk7Ci0gICAgUFJJTlQoImZvdW5kICI8PG5waWV4dDw8IiBleHRlbnNp b25zICIpOwotICAgIGludCBpID0gMDsKLUBAIC04MzQsOCArODQ2LDggQEAgaW50IFhyZENyeXB0 b3NzbFg1MDk6OkR1bXBFeHRlbnNpb25zKGJvb2wgZHVtcHVua25vd24pCi0gICAgICAgUFJJTlQo aSA8PCAiOiBmb3VuZCBleHRlbnNpb24gJyI8PHM8PCInLCBjcml0aWNhbDogIiA8PCBjcml0KTsK LSAgICAgICAvLyBEdW1wIGl0cyBjb250ZW50Ci0gICAgICAgcmMgPSAwOwotLSAgICAgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKnBwID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgWDUwOV9FWFRFTlNJ T05fZ2V0X2RhdGEoeHBpZXh0KS0+ZGF0YTsKLS0gICAgICBsb25nIGxlbmd0aCA9IFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmxlbmd0aDsKLSsgICAgICBjb25zdCB1bnNpZ25lZCBj aGFyICpwcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4 cGlleHQpKTsKLSsgICAgICBsb25nIGxlbmd0aCA9IEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKTsKLSAgICAgICBpbnQgcmV0ID0gRmlsbFVua25vd25F eHQoJnBwLCBsZW5ndGgsIGR1bXB1bmtub3duKTsKLSAgICAgICBQUklOVCgicmV0OiAiIDw8IHJl dCk7Ci0gICAgfQotQEAgLTk1NywxMCArOTY5LDEwIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5OjpG aWxsVW5rbm93bkV4dChjb25zdCB1bnNpZ25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBib29s Ci0gICAgICAgICAgICAgaW50IGksIHByaW50YWJsZSA9IDE7Ci0gICAgICAgICAgICAgb3BwID0g b3A7Ci0gICAgICAgICAgICAgb3MgPSBkMmlfQVNOMV9PQ1RFVF9TVFJJTkcoMCwgJm9wcCwgbGVu ICsgaGwpOwotLSAgICAgICAgICAgIGlmIChvcyAmJiBvcy0+bGVuZ3RoID4gMCkgewotLSAgICAg ICAgICAgICAgIG9wcCA9IG9zLT5kYXRhOwotKyAgICAgICAgICAgIGlmIChvcyAmJiBBU04xX1NU UklOR19sZW5ndGgob3MpID4gMCkgewotKyAgICAgICAgICAgICAgIG9wcCA9IEFTTjFfU1RSSU5H X2dldDBfZGF0YShvcyk7Ci0gICAgICAgICAgICAgICAgLyogdGVzdGluZyB3aGV0aGVyIHRoZSBv Y3RldCBzdHJpbmcgaXMgKiBwcmludGFibGUgKi8KLS0gICAgICAgICAgICAgICBmb3IgKGk9MDsg aTxvcy0+bGVuZ3RoOyBpKyspIHsKLSsgICAgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IEFTTjFf U1RSSU5HX2xlbmd0aChvcyk7IGkrKykgewotICAgICAgICAgICAgICAgICAgIGlmICgoIChvcHBb aV0gPCAnICcpICYmIChvcHBbaV0gIT0gJ1xuJykgJiYKLSAgICAgICAgICAgICAgICAgICAgICAg ICAob3BwW2ldICE9ICdccicpICYmIChvcHBbaV0gIT0gJ1x0JykpIHx8IChvcHBbaV0gPiAnficp KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlID0gMDsKLUBAIC05NjksMTYgKzk4 MSwxNiBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6RmlsbFVua25vd25FeHQoY29uc3QgdW5zaWdu ZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgYm9vbAotICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICBpZiAocHJpbnRhYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgLyogcHJpbnRh YmxlIHN0cmluZyAqLwotLSAgICAgICAgICAgICAgICAgIGNoYXIgKnMgPSBuZXcgY2hhcltvcy0+ bGVuZ3RoICsgMV07Ci0tICAgICAgICAgICAgICAgICAgbWVtY3B5KHMsIG9wcCwgb3MtPmxlbmd0 aCk7Ci0tICAgICAgICAgICAgICAgICAgc1tvcy0+bGVuZ3RoXSA9IDA7Ci0tICAgICAgICAgICAg ICAgICAgaWYgKGR1bXApIFBSSU5UKCJPQkpTOiIgPDwgcyA8PCAiIChsZW46ICI8PG9zLT5sZW5n dGg8PCIpIik7Ci0rICAgICAgICAgICAgICAgICAgY2hhciAqcyA9IG5ldyBjaGFyW0FTTjFfU1RS SU5HX2xlbmd0aChvcykgKyAxXTsKLSsgICAgICAgICAgICAgICAgICBtZW1jcHkocywgb3BwLCBB U04xX1NUUklOR19sZW5ndGgob3MpKTsKLSsgICAgICAgICAgICAgICAgICBzW0FTTjFfU1RSSU5H X2xlbmd0aChvcyldID0gMDsKLSsgICAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIk9C SlM6IiA8PCBzIDw8ICIgKGxlbjogIiA8PCBBU04xX1NUUklOR19sZW5ndGgob3MpIDw8ICIpIik7 Ci0gICAgICAgICAgICAgICAgICAgZGVsZXRlIFtdIHM7Ci0gICAgICAgICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAgICAgICAvKiBwcmludCB0aGUgbm9ybWFsIGR1bXAgKi8KLSAgICAg ICAgICAgICAgICAgICBpZiAoIW5sKSBQUklOVCgiT0JKUzoiKTsKLSAgICAgICAgICAgICAgICAg ICBCSU8gKm1lbSA9IEJJT19uZXcoQklPX3NfbWVtKCkpOwotLSAgICAgICAgICAgICAgICAgIGlm IChCSU9fZHVtcF9pbmRlbnQobWVtLCAoY29uc3QgY2hhciAqKW9wcCwgb3MtPmxlbmd0aCwgZHVt cF9pbmRlbnQpIDw9IDApIHsKLSsgICAgICAgICAgICAgICAgICBpZiAoQklPX2R1bXBfaW5kZW50 KG1lbSwgKGNvbnN0IGNoYXIgKilvcHAsIEFTTjFfU1RSSU5HX2xlbmd0aChvcyksIGR1bXBfaW5k ZW50KSA8PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJFUlJP UjpPQkpTOiBwcm9ibGVtcyBkdW1waW5nIHRvIEJJTyIpOwotICAgICAgICAgICAgICAgICAgICAg IEJJT19mcmVlKG1lbSk7ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAg Z290byBlbmQ7Ci1AQCAtOTk5LDE4ICsxMDExLDE4IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5OjpG aWxsVW5rbm93bkV4dChjb25zdCB1bnNpZ25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBib29s Ci0gICAgICAgICAgICAgYnMgPSBkMmlfQVNOMV9JTlRFR0VSKDAsICZvcHAsIGxlbitobCk7Ci0g ICAgICAgICAgICAgaWYgKGJzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJB SU5UOiIpOwotLSAgICAgICAgICAgICAgIGlmIChicy0+dHlwZSA9PSBWX0FTTjFfTkVHX0lOVEVH RVIpCi0rICAgICAgICAgICAgICAgaWYgKEFTTjFfU1RSSU5HX3R5cGUoYnMpID09IFZfQVNOMV9O RUdfSU5URUdFUikKLSAgICAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIi0iKTsKLSAg ICAgICAgICAgICAgICBCSU8gKm1lbSA9IEJJT19uZXcoQklPX3NfbWVtKCkpOwotLSAgICAgICAg ICAgICAgIGZvciAoaSA9IDA7IGkgPCBicy0+bGVuZ3RoOyBpKyspIHsKLS0gICAgICAgICAgICAg ICAgICBpZiAoQklPX3ByaW50ZihtZW0sICIlMDJYIiwgYnMtPmRhdGFbaV0pIDw9IDApIHsKLSsg ICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgQVNOMV9TVFJJTkdfbGVuZ3RoKGJzKTsgaSsr KSB7Ci0rICAgICAgICAgICAgICAgICAgaWYgKEJJT19wcmludGYobWVtLCAiJTAyWCIsIEFTTjFf U1RSSU5HX2dldDBfZGF0YShicylbaV0pIDw9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICBp ZiAoZHVtcCkgUFJJTlQoIkVSUk9SOkFJTlQ6IHByb2JsZW1zIHByaW50Zi1pbmcgdG8gQklPIik7 Ci0gICAgICAgICAgICAgICAgICAgICAgQklPX2ZyZWUobWVtKTsgCi0gICAgICAgICAgICAgICAg ICAgICAgZ290byBlbmQ7Ci0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICBpZiAoZHVtcCkgeyBCSU9fUFJJTlQobWVtLCAiQUlOVDoiKTsgfQot LSAgICAgICAgICAgICAgIGlmIChicy0+bGVuZ3RoID09IDApIFBSSU5UKCIwMCIpOwotKyAgICAg ICAgICAgICAgIGlmIChBU04xX1NUUklOR19sZW5ndGgoYnMpID09IDApIFBSSU5UKCIwMCIpOwot ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJF UlJPUjpBSU5UOiBCQUQgSU5URUdFUiIpOwotICAgICAgICAgICAgIH0KLUBAIC0xMDIzLDE4ICsx MDM1LDE4IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5OjpGaWxsVW5rbm93bkV4dChjb25zdCB1bnNp Z25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBib29sCi0gICAgICAgICAgICAgYnMgPSBkMmlf QVNOMV9FTlVNRVJBVEVEKDAsICZvcHAsIGxlbitobCk7Ci0gICAgICAgICAgICAgaWYgKGJzKSB7 Ci0gICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJBRU5VOiIpOwotLSAgICAgICAgICAg ICAgIGlmIChicy0+dHlwZSA9PSBWX0FTTjFfTkVHX0VOVU1FUkFURUQpCi0rICAgICAgICAgICAg ICAgaWYgKEFTTjFfU1RSSU5HX3R5cGUoYnMpID09IFZfQVNOMV9ORUdfRU5VTUVSQVRFRCkKLSAg ICAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIi0iKTsKLSAgICAgICAgICAgICAgICBC SU8gKm1lbSA9IEJJT19uZXcoQklPX3NfbWVtKCkpOwotLSAgICAgICAgICAgICAgIGZvciAoaSA9 IDA7IGkgPCBicy0+bGVuZ3RoOyBpKyspIHsKLS0gICAgICAgICAgICAgICAgICBpZiAoQklPX3By aW50ZihtZW0sICIlMDJYIiwgYnMtPmRhdGFbaV0pIDw9IDApIHsKLSsgICAgICAgICAgICAgICBm b3IgKGkgPSAwOyBpIDwgQVNOMV9TVFJJTkdfbGVuZ3RoKGJzKTsgaSsrKSB7Ci0rICAgICAgICAg ICAgICAgICAgaWYgKEJJT19wcmludGYobWVtLCAiJTAyWCIsIEFTTjFfU1RSSU5HX2dldDBfZGF0 YShicylbaV0pIDw9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQo IkVSUk9SOkFFTlU6IHByb2JsZW1zIHByaW50Zi1pbmcgdG8gQklPIik7Ci0gICAgICAgICAgICAg ICAgICAgICAgQklPX2ZyZWUobWVtKTsgCi0gICAgICAgICAgICAgICAgICAgICAgZ290byBlbmQ7 Ci0gICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg ICBpZiAoZHVtcCkgeyBCSU9fUFJJTlQobWVtLCAiQUVOVToiKTsgfQotLSAgICAgICAgICAgICAg IGlmIChicy0+bGVuZ3RoID09IDApIFBSSU5UKCIwMCIpOwotKyAgICAgICAgICAgICAgIGlmIChB U04xX1NUUklOR19sZW5ndGgoYnMpID09IDApIFBSSU5UKCIwMCIpOwotICAgICAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGR1bXApIFBSSU5UKCJFUlJPUjpBRU5VOiBCQUQg RU5VTUVSQVRFRCIpOwotICAgICAgICAgICAgIH0KLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5cHRv L1hyZENyeXB0b3NzbFg1MDlDcmwuY2MgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDlD cmwuY2MKLWluZGV4IDYxZGRhZjgzYy4uY2M5ZjMyNGJiIDEwMDY0NAotLS0tIGEvc3JjL1hyZENy eXB0by9YcmRDcnlwdG9zc2xYNTA5Q3JsLmNjCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0 b3NzbFg1MDlDcmwuY2MKLUBAIC0xMDUsNyArMTA1LDcgQEAgWHJkQ3J5cHRvc3NsWDUwOUNybDo6 WHJkQ3J5cHRvc3NsWDUwOUNybChYcmRDcnlwdG9YNTA5ICpjYWNlcnQpCi0gCi0gICAgLy8gQmlv IGZvciBleHBvcnRpbmcgdGhlIGV4dGVuc2lvbgotICAgIEJJTyAqYmV4dCA9IEJJT19uZXcoQklP X3NfbWVtKCkpOwotLSAgIEFTTjFfT0JKRUNUICpvYmogPSBYNTA5X0VYVEVOU0lPTl9nZXRfb2Jq ZWN0KGNybGV4dCk7Ci0rICAgY29uc3QgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfRVhURU5TSU9O X2dldF9vYmplY3QoY3JsZXh0KTsKLSAgICBpMmFfQVNOMV9PQkpFQ1QoYmV4dCwgb2JqKTsKLSAg ICBYNTA5VjNfRVhUX3ByaW50KGJleHQsIGNybGV4dCwgMCwgNCk7Ci0gICAgLy8gZGF0YSBsZW5n dGgKLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbGdzaUF1eC5jYyBiL3Ny Yy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjCi1pbmRleCA4ZjRiOTI5YzEuLmE1ZDIw ZTFhZiAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjCi0r KysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbGdzaUF1eC5jYwotQEAgLTE2NSwxMiArMTY1 LDEyIEBAIGJvb2wgWHJkQ3J5cHRvc3NsUHJveHlDZXJ0SW5mbyhjb25zdCB2b2lkICpleHRkYXRh LCBpbnQgJnBhdGhsZW4sIGJvb2wgKmhhc3BvbGljCi0gICAgT0JKX29iajJ0eHQocywgc2l6ZW9m KHMpLCBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KGV4dCksIDEpOwotIAotICAgIC8vIE5vdyBl eHRyYWN0IHRoZSBwYXRoIGxlbmd0aCBjb25zdHJhaW50LCBpZiBhbnkKLS0gICB1bnNpZ25lZCBj aGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YTsKLSsgICBjb25zdCB1 bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKGV4dCkpOwotICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJT04gKnBjaSA9IDA7Ci0g ICAgaWYgKCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpKQotLSAgICAgIHBjaSA9IGQy aV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgm cCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAgcGNpID0g ZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgZWxzZSBpZiAoIXN0cmNtcChzLCBn c2lQcm94eUNlcnRJbmZvX09MRF9PSUQpKQotLSAgICAgIHBjaSA9IGQyaV9QUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OX09MRCgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAgICAgIHBjaSA9IGQyaV9QUk9YWV9D RVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICBpZiAoIXBjaSkgewotICAgICAgIHJldHVybiAw OwotICAgIH0KLUBAIC0yMDgsMTIgKzIwOCwxMiBAQCB2b2lkIFhyZENyeXB0b3NzbFNldFBhdGhM ZW5Db25zdHJhaW50KHZvaWQgKmV4dGRhdGEsIGludCBwYXRobGVuKQotICAgIE9CSl9vYmoydHh0 KHMsIHNpemVvZihzKSwgWDUwOV9FWFRFTlNJT05fZ2V0X29iamVjdChleHQpLCAxKTsKLSAKLSAg ICAvLyBOb3cgZXh0cmFjdCB0aGUgcGF0aCBsZW5ndGggY29uc3RyYWludCwgaWYgYW55Ci0tICAg dW5zaWduZWQgY2hhciAqcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGE7Ci0r ICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YShleHQpKTsKLSAgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OICpw Y2kgPSAwOwotICAgIGlmICghc3RyY21wKHMsIGdzaVByb3h5Q2VydEluZm9fT0lEKSkKLS0gICAg ICBwY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigwLCAoY29uc3QgdW5zaWduZWQg Y2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAg ICAgIHBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsICZwLCBBU04xX1NUUklO R19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkpOwotICAgIGVsc2UgaWYgKCFz dHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PTERfT0lEKSkKLS0gICAgICBwY2kgPSBkMmlfUFJP WFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZw KSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAgICBwY2kgPSBk MmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0 aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgaWYgKCFwY2kpCi0gICAgICAg cmV0dXJuOwotIAotQEAgLTQxOSwxNiArNDE5LDMyIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5Q3Jl YXRlUHJveHkoY29uc3QgY2hhciAqZm5jLCBjb25zdCBjaGFyICpmbmssCi0gICAgICAgcmV0dXJu IC1rRXJyUFhfU2V0QXR0cmlidXRlOwotICAgIH0KLSAgICAvLyBFeHRyYWN0IGRhdGEgaW4gZm9y bWF0IGZvciBleHRlbnNpb24KLS0gICBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5n dGggPSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2ksIDApOwotLSAgIGlmICghKFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGEgPSAodW5zaWduZWQgY2hhciAqKW1hbGxv YyhYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgrMSkpKSB7Ci0rICAgaW50IGxl biA9IGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaSwgMCk7Ci0rICAgdW5zaWduZWQg Y2hhciAqZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxvYyhsZW4pOwotKyAgIGlmICghZGF0 YSkgewotICAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0 ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0gICAgfQotLSAg IHVuc2lnbmVkIGNoYXIgKnBwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YTsK LSsgICB1bnNpZ25lZCBjaGFyICpwcCA9IGRhdGE7Ci0gICAgaWYgKChpMmRfUFJPWFlfQ0VSVF9J TkZPX0VYVEVOU0lPTihwY2ksICZwcCkpIDw9IDApIHsKLSAgICAgICBQUklOVCgicHJvYmxlbSBj b252ZXJ0aW5nIGRhdGEgZm9yIGV4dGVuc2lvbiIpOwotICAgICAgIHJldHVybiAta0VyclBYX0Vy cm9yOwotICAgIH0KLSsgICBBU04xX09DVEVUX1NUUklORyAqb3MgPSBBU04xX09DVEVUX1NUUklO R19uZXcoKTsKLSsgICBpZiAoIW9zKSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0 ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jl c291cmNlczsKLSsgICB9Ci0rICAgaWYgKEFTTjFfT0NURVRfU1RSSU5HX3NldChvcywgZGF0YSwg bGVuKSA9PSAwKSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxk IGZvciBleHRlbnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsg ICB9Ci0rICAgZnJlZShkYXRhKTsKLSsgICBpZiAoWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEoZXh0 LCBvcykgPT0gMCkgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVs ZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0r ICAgfQotKyAgIEFTTjFfU1RSSU5HX2ZyZWUob3MpOwotICAgIC8vIENyZWF0ZSBhIHN0YWNrCi0g ICAgU1RBQ0tfT0YoWDUwOV9FWFRFTlNJT04pICplc2sgPSBza19YNTA5X0VYVEVOU0lPTl9uZXdf bnVsbCgpOwotICAgIGlmICghZXNrKSB7Ci1AQCAtNTA0LDcgKzUyMCwxMSBAQCBpbnQgWHJkQ3J5 cHRvc3NsWDUwOUNyZWF0ZVByb3h5KGNvbnN0IGNoYXIgKmZuYywgY29uc3QgY2hhciAqZm5rLAot ICAgIH0KLSAKLSAgICAvLyBGaXJzdCBkdXBsaWNhdGUgdGhlIGV4dGVuc2lvbnMgb2YgdGhlIEVF IGNlcnRpZmljYXRlCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAot ICAgIFg1MDlfRVhURU5TSU9OICp4RUVDZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlf RVhURU5TSU9OICp4RUVDZXh0ID0gMDsKLSsjZW5kaWYKLSAgICBpbnQgbkVFQ2V4dCA9IFg1MDlf Z2V0X2V4dF9jb3VudCh4RUVDKTsKLSAgICBERUJVRygibnVtYmVyIG9mIGV4dGVuc2lvbnMgZm91 bmQgaW4gdGhlIG9yaWdpbmFsIGNlcnRpZmljYXRlOiAiPDwgbkVFQ2V4dCk7Ci0gICAgaW50IGkg PSAwOwotQEAgLTc1Niw3ICs3NzYsMTEgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlDcmVhdGVQcm94 eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLAotICAgIH0KLSAgICAvLwotICAgIC8vIEdldCBzaWdu YXR1cmUgcGF0aCBkZXB0aCBmcm9tIHByZXNlbnQgcHJveHkKLSsjaWYgT1BFTlNTTF9WRVJTSU9O X05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9FWFRFTlNJT04gKnhwaWV4dCA9IDA7Ci0r I2Vsc2UKLSsgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsjZW5kaWYKLSAg ICBpbnQgbnBpZXh0ID0gWDUwOV9nZXRfZXh0X2NvdW50KHhwaSk7Ci0gICAgaW50IGkgPSAwOwot ICAgIGJvb2wgaGFza2V5dXNhZ2UgPSAwOwotQEAgLTc3MiwxMiArNzk2LDEyIEBAIGludCBYcmRD cnlwdG9zc2xYNTA5Q3JlYXRlUHJveHlSZXEoWHJkQ3J5cHRvWDUwOSAqeGNwaSwKLSAgICAgICAv LyBHZXQgc2lnbmF0dXJlIHBhdGggZGVwdGggZnJvbSBwcmVzZW50IHByb3h5Ci0gICAgICAgaWYg KCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpIHx8Ci0gICAgICAgICAgICFzdHJjbXAo cywgZ3NpUHJveHlDZXJ0SW5mb19PTERfT0lEKSkgewotLSAgICAgICAgIHVuc2lnbmVkIGNoYXIg KnAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpLT5kYXRhOwotKyAgICAgICAgIGNv bnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJ T05fZ2V0X2RhdGEoeHBpZXh0KSk7Ci0gICAgICAgICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lP TiAqaW5wY2kgPSAwOwotICAgICAgICAgIGlmICghc3RyY21wKHMsIGdzaVByb3h5Q2VydEluZm9f T0lEKSkKLS0gICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9O KDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRh KHhwaWV4dCktPmxlbmd0aCk7Ci0rICAgICAgICAgICAgaW5wY2kgPSBkMmlfUFJPWFlfQ0VSVF9J TkZPX0VYVEVOU0lPTigwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKHhwaWV4dCkpKTsKLSAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgaW5wY2kgPSBk MmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIg KiopKCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+bGVuZ3RoKTsKLSsgICAg ICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwg QVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCkpKTsKLSAg ICAgICAgICBpZiAoaW5wY2kgJiYKLSAgICAgICAgICAgICAgaW5wY2ktPnBjUGF0aExlbmd0aENv bnN0cmFpbnQpCi0gICAgICAgICAgICAgaW5kZXB0aGxlbiA9IEFTTjFfSU5URUdFUl9nZXQoaW5w Y2ktPnBjUGF0aExlbmd0aENvbnN0cmFpbnQpOwotQEAgLTgyMywxNiArODQ3LDMyIEBAIGludCBY cmRDcnlwdG9zc2xYNTA5Q3JlYXRlUHJveHlSZXEoWHJkQ3J5cHRvWDUwOSAqeGNwaSwKLSAgICAg ICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSAgICB9Ci0gICAgLy8gRXh0cmFjdCBkYXRh IGluIGZvcm1hdCBmb3IgZXh0ZW5zaW9uCi0tICAgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0 LmdldCgpKS0+bGVuZ3RoID0gaTJkX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLmdldCgp LCAwKTsKLS0gICBpZiAoIShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5kYXRh ID0gKHVuc2lnbmVkIGNoYXIgKiltYWxsb2MoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0Lmdl dCgpKS0+bGVuZ3RoKzEpKSkgewotKyAgIGludCBsZW4gPSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VY VEVOU0lPTihwY2kuZ2V0KCksIDApOwotKyAgIHVuc2lnbmVkIGNoYXIgKmRhdGEgPSAodW5zaWdu ZWQgY2hhciAqKSBtYWxsb2MobGVuKTsKLSsgICBpZiAoIWRhdGEpIHsKLSAgICAgICBQUklOVCgi Y291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVuc2lvbiIpOwotICAgICAgIHJl dHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotICAgIH0KLS0gICB1bnNpZ25lZCBjaGFyICpwcCA9 IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQoKSktPmRhdGE7Ci0rICAgdW5zaWduZWQg Y2hhciAqcHAgPSBkYXRhOwotICAgIGlmICgoaTJkX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04o cGNpLmdldCgpLCAmcHApKSA8PSAwKSB7Ci0gICAgICAgUFJJTlQoInByb2JsZW0gY29udmVydGlu ZyBkYXRhIGZvciBleHRlbnNpb24iKTsKLSAgICAgICByZXR1cm4gLWtFcnJQWF9FcnJvcjsKLSAg ICB9Ci0rICAgQVNOMV9PQ1RFVF9TVFJJTkcgKm9zID0gQVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7 Ci0rICAgaWYgKCFvcykgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBm aWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7 Ci0rICAgfQotKyAgIGlmIChBU04xX09DVEVUX1NUUklOR19zZXQob3MsIGRhdGEsIGxlbikgPT0g MCkgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0 ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAg IGZyZWUoZGF0YSk7Ci0rICAgaWYgKFg1MDlfRVhURU5TSU9OX3NldF9kYXRhKGV4dC5nZXQoKSwg b3MpID09IDApIHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQg Zm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAg IH0KLSsgICBBU04xX1NUUklOR19mcmVlKG9zKTsKLSAgICBwY2kgPSBudWxscHRyOwotIAotICAg IC8vIFNldCBleHRlbnNpb24gbmFtZS4KLUBAIC0xMDMwLDcgKzEwNzAsMTEgQEAgaW50IFhyZENy eXB0b3NzbFg1MDlTaWduUHJveHlSZXEoWHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkQ3J5cHRvUlNB ICprY3BpLAotIAotICAgIC8vCi0gICAgLy8gR2V0IHNpZ25hdHVyZSBwYXRoIGRlcHRoIGZyb20g aW5wdXQgcHJveHkKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0g ICAgWDUwOV9FWFRFTlNJT04gKnhwaWV4dCA9IDAsICp4cmlleHQgPSAwOwotKyNlbHNlCi0rICAg Y29uc3QgWDUwOV9FWFRFTlNJT04gKnhwaWV4dCA9IDAsICp4cmlleHQgPSAwOwotKyNlbmRpZgot ICAgIGludCBucGlleHQgPSBYNTA5X2dldF9leHRfY291bnQoeHBpKTsKLSAgICBpbnQgaSA9IDA7 Ci0gICAgYm9vbCBoYXNrZXl1c2FnZSA9IDA7Ci1AQCAtMTAzOCwxNyArMTA4MiwxNyBAQCBpbnQg WHJkQ3J5cHRvc3NsWDUwOVNpZ25Qcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRDcnlw dG9SU0EgKmtjcGksCi0gICAgZm9yIChpID0gMDsgaTwgbnBpZXh0OyBpKyspIHsKLSAgICAgICB4 cGlleHQgPSBYNTA5X2dldF9leHQoeHBpLCBpKTsKLSAgICAgICBjaGFyIHNbMjU2XSA9IHswfTsK LS0gICAgICBBU04xX09CSkVDVCAqb2JqID0gWDUwOV9FWFRFTlNJT05fZ2V0X29iamVjdCh4cGll eHQpOwotKyAgICAgIGNvbnN0IEFTTjFfT0JKRUNUICpvYmogPSBYNTA5X0VYVEVOU0lPTl9nZXRf b2JqZWN0KHhwaWV4dCk7Ci0gICAgICAgaWYgKG9iaikKLSAgICAgICAgICBPQkpfb2JqMnR4dChz LCBzaXplb2YocyksIG9iaiwgMSk7Ci0gICAgICAgaWYgKCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0 SW5mb19PSUQpIHx8Ci0gICAgICAgICAgICFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PTERf T0lEKSkgewotLSAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnAgPSBYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YSh4cGlleHQpLT5kYXRhOwotKyAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSBB U04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KSk7Ci0g ICAgICAgICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTiAqaW5wY2kgPSAwOwotICAgICAgICAg IGlmICghc3RyY21wKHMsIGdzaVByb3h5Q2VydEluZm9fT0lEKSkKLS0gICAgICAgICAgICBpbnBj aSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsIChjb25zdCB1bnNpZ25lZCBjaGFy ICoqKSgmcCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmxlbmd0aCk7Ci0rICAg ICAgICAgICAgaW5wY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigwLCAmcCwgQVNO MV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCkpKTsKLSAgICAg ICAgICBlbHNlCi0tICAgICAgICAgICAgaW5wY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVO U0lPTl9PTEQoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05f Z2V0X2RhdGEoeHBpZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9Y WV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCkpKTsKLSAgICAgICAgICBpZiAoaW5wY2kgJiYKLSAg ICAgICAgICAgICAgaW5wY2ktPnBjUGF0aExlbmd0aENvbnN0cmFpbnQpCi0gICAgICAgICAgICAg aW5kZXB0aGxlbiA9IEFTTjFfSU5URUdFUl9nZXQoaW5wY2ktPnBjUGF0aExlbmd0aENvbnN0cmFp bnQpOwotQEAgLTExMDEsOSArMTE0NSw5IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5U2lnblByb3h5 UmVxKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZENyeXB0b1JTQSAqa2NwaSwKLSAgICAvLyBHZXQg dGhlIGNvbnRlbnQKLSAgICBpbnQgcmVxZGVwdGhsZW4gPSAtMTsKLSAgICBpZiAoeHJpZXh0KSB7 Ci0tICAgICAgdW5zaWduZWQgY2hhciAqcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhyaWV4 dCktPmRhdGE7Ci0rICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5HX2dl dDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cmlleHQpKTsKLSAgICAgICBQUk9YWV9D RVJUX0lORk9fRVhURU5TSU9OICpyZXFwY2kgPQotLSAgICAgICAgIGQyaV9QUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKHhyaWV4dCktPmxlbmd0aCk7Ci0rICAgICAgICAgZDJpX1BST1hZX0NFUlRf SU5GT19FWFRFTlNJT04oMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9n ZXRfZGF0YSh4cmlleHQpKSk7Ci0gICAgICAgaWYgKHJlcXBjaSAmJgotICAgICAgICAgICByZXFw Y2ktPnBjUGF0aExlbmd0aENvbnN0cmFpbnQpCi0gICAgICAgICAgcmVxZGVwdGhsZW4gPSBBU04x X0lOVEVHRVJfZ2V0KHJlcXBjaS0+cGNQYXRoTGVuZ3RoQ29uc3RyYWludCk7Ci1AQCAtMTE0MCwx NiArMTE4NCwzMiBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOVNpZ25Qcm94eVJlcShYcmRDcnlwdG9Y NTA5ICp4Y3BpLCBYcmRDcnlwdG9SU0EgKmtjcGksCi0gICAgICAgcmV0dXJuIC1rRXJyUFhfTm9S ZXNvdXJjZXM7Ci0gICAgfQotICAgIC8vIEV4dHJhY3QgZGF0YSBpbiBmb3JtYXQgZm9yIGV4dGVu c2lvbgotLSAgIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQoKSktPmxlbmd0aCA9IGky ZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaS5nZXQoKSwgMCk7Ci0tICAgaWYgKCEoWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICop bWFsbG9jKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQoKSktPmxlbmd0aCsxKSkpIHsK LSsgICBpbnQgbGVuID0gaTJkX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLmdldCgpLCAw KTsKLSsgICB1bnNpZ25lZCBjaGFyICpkYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jKGxl bik7Ci0rICAgaWYgKCFkYXRhKSB7Ci0gICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBk YXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsKLSAgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291 cmNlczsKLSAgICB9Ci0tICAgdW5zaWduZWQgY2hhciAqcHAgPSBYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YShleHQuZ2V0KCkpLT5kYXRhOwotKyAgIHVuc2lnbmVkIGNoYXIgKnBwID0gZGF0YTsKLSAg ICBpZiAoKGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaS5nZXQoKSwgJnBwKSkgPD0g MCkgewotICAgICAgIFBSSU5UKCJwcm9ibGVtIGNvbnZlcnRpbmcgZGF0YSBmb3IgZXh0ZW5zaW9u Iik7Ci0gICAgICAgcmV0dXJuIC1rRXJyUFhfRXJyb3I7Ci0gICAgfQotKyAgIEFTTjFfT0NURVRf U1RSSU5HICpvcyA9IEFTTjFfT0NURVRfU1RSSU5HX25ldygpOwotKyAgIGlmICghb3MpIHsKLSsg ICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVuc2lvbiIp OwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0KLSsgICBpZiAoQVNO MV9PQ1RFVF9TVFJJTkdfc2V0KG9zLCBkYXRhLCBsZW4pID09IDApIHsKLSsgICAgICBQUklOVCgi Y291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJl dHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0KLSsgICBmcmVlKGRhdGEpOwotKyAgIGlm IChYNTA5X0VYVEVOU0lPTl9zZXRfZGF0YShleHQuZ2V0KCksIG9zKSA9PSAwKSB7Ci0rICAgICAg UFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsKLSsg ICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0rICAgQVNOMV9TVFJJTkdf ZnJlZShvcyk7Ci0gICAgcGNpID0gbnVsbHB0cjsKLSAKLSAgICAvLyBTZXQgZXh0ZW5zaW9uIG5h bWUuCi1AQCAtMTIxNSw3ICsxMjc1LDExIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5R2V0Vk9NU0F0 dHIoWHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkT3VjU3RyaW5nICZ2YXQpCi0gICAgcmMgPSAxOwot ICAgIGJvb2wgZ2V0dmF0ID0gMDsKLSAgICAvLyBHbyB0aHJvdWdoIHRoZSBleHRlbnNpb25zCi0r I2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTAotICAgIFg1MDlfRVhURU5T SU9OICp4cGlleHQgPSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKnhwaWV4 dCA9IDA7Ci0rI2VuZGlmCi0gICAgaW50IG5waWV4dCA9IFg1MDlfZ2V0X2V4dF9jb3VudCh4cGkp OwotICAgIGludCBpID0gMDsKLSAgICBmb3IgKGkgPSAwOyBpPCBucGlleHQ7IGkrKykgewotQEAg LTEyMjcsOCArMTI5MSw4IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5R2V0Vk9NU0F0dHIoWHJkQ3J5 cHRvWDUwOSAqeGNwaSwgWHJkT3VjU3RyaW5nICZ2YXQpCi0gICAgICAgaWYgKHN0cmNtcChzLCBY UkRHU0lfVk9NU19BQ1NFUV9PSUQpKSBjb250aW51ZTsKLSAgICAgICAvLyBUaGlzIGlzIHRoZSBW T01TIGV4dGVuc2lvbiB3ZSBhcmUgaW50ZXJlc3RlZCBmb3IKLSAgICAgICByYyA9IDA7Ci0tICAg ICAgY29uc3QgdW5zaWduZWQgY2hhciAqcHAgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBYNTA5 X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpLT5kYXRhOwotLSAgICAgIGxvbmcgbGVuZ3RoID0g WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+bGVuZ3RoOwotKyAgICAgIGNvbnN0IHVu c2lnbmVkIGNoYXIgKnBwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKHhwaWV4dCkpOwotKyAgICAgIGxvbmcgbGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3Ro KFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCkpOwotICAgICAgIGludCByZXQgPSBYcmRD cnlwdG9zc2xYNTA5RmlsbFZPTVMoJnBwLCBsZW5ndGgsIGdldHZhdCwgdmF0KTsKLSAgICAgICBE RUJVRygicmV0OiAiIDw8IHJldCA8PCAiIC0gdmF0OiAiIDw8IHZhdCk7Ci0gICAgfQotQEAgLTEz MTYsMTAgKzEzODAsMTAgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlGaWxsVk9NUyhjb25zdCB1bnNp Z25lZCBjaGFyICoqcHAsCi0gICAgICAgICAgICAgaW50IGksIHByaW50YWJsZSA9IDE7Ci0gICAg ICAgICAgICAgb3BwID0gb3A7Ci0gICAgICAgICAgICAgb3MgPSBkMmlfQVNOMV9PQ1RFVF9TVFJJ TkcoMCwgJm9wcCwgbGVuICsgaGwpOwotLSAgICAgICAgICAgIGlmIChvcyAmJiBvcy0+bGVuZ3Ro ID4gMCkgewotLSAgICAgICAgICAgICAgIG9wcCA9IG9zLT5kYXRhOwotKyAgICAgICAgICAgIGlm IChvcyAmJiBBU04xX1NUUklOR19sZW5ndGgob3MpID4gMCkgewotKyAgICAgICAgICAgICAgIG9w cCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShvcyk7Ci0gICAgICAgICAgICAgICAgLy8gVGVzdGlu ZyB3aGV0aGVyIHRoZSBvY3RldCBzdHJpbmcgaXMgcHJpbnRhYmxlCi0tICAgICAgICAgICAgICAg Zm9yIChpPTA7IGk8b3MtPmxlbmd0aDsgaSsrKSB7Ci0rICAgICAgICAgICAgICAgZm9yIChpPTA7 IGkgPCBBU04xX1NUUklOR19sZW5ndGgob3MpOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICBp ZiAoKCAob3BwW2ldIDwgJyAnKSAmJiAob3BwW2ldICE9ICdcbicpICYmCi0gICAgICAgICAgICAg ICAgICAgICAgICAgKG9wcFtpXSAhPSAnXHInKSAmJiAob3BwW2ldICE9ICdcdCcpKSB8fCAob3Bw W2ldID4gJ34nKSkgewotICAgICAgICAgICAgICAgICAgICAgIHByaW50YWJsZSA9IDA7Ci1AQCAt MTMzMyw3ICsxMzk3LDcgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlGaWxsVk9NUyhjb25zdCB1bnNp Z25lZCBjaGFyICoqcHAsCi0gICAgICAgICAgICAgICAgICAgICAgdmF0ICs9IChjb25zdCBjaGFy ICopb3BwOwotICAgICAgICAgICAgICAgICAgICAgIGdvdHZhdCA9IDE7Ci0gICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgIERFQlVHKCJPQkpTOiIgPDwgKGNvbnN0IGNoYXIg KilvcHAgPDwgIiAobGVuOiAiPDxvcy0+bGVuZ3RoPDwiKSIpOwotKyAgICAgICAgICAgICAgICAg IERFQlVHKCJPQkpTOiIgPDwgKGNvbnN0IGNoYXIgKilvcHAgPDwgIiAobGVuOiAiIDw8IEFTTjFf U1RSSU5HX2xlbmd0aChvcykgPDwgIikiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgfQotICAgICAgICAgICAgIGlmIChvcykgewotQEAgLTEzODUsMTEgKzE0NDksMTkgQEAgaW50 IFhyZENyeXB0b3NzbFg1MDlDaGVja1Byb3h5MyhYcmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRPdWNT dHJpbmcgJmVtc2cpIHsKLSAgICB9Ci0gICAgVFJBQ0UoQUxMLCJjZXJ0aWZpY2F0ZSBoYXMgIjw8 bnVtZXh0PDwiIGV4dGVuc2lvbnMiKTsKLSAKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8 IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9FWFRFTlNJT04gKmV4dCA9IDA7Ci0rI2Vsc2UKLSsgICBj b25zdCBYNTA5X0VYVEVOU0lPTiAqZXh0ID0gMDsKLSsjZW5kaWYKLSAgICBQUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OICpwY2kgPSAwOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtZXh0OyBp KyspIHsKLSAgICAgICAvLyBHZXQgdGhlIGV4dGVuc2lvbgotKyNpZiBPUEVOU1NMX1ZFUlNJT05f TlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICAgICBYNTA5X0VYVEVOU0lPTiAqeGV4dCA9IFg1MDlf Z2V0X2V4dChjZXJ0LCBpKTsKLSsjZWxzZQotKyAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICp4 ZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnQsIGkpOwotKyNlbmRpZgotICAgICAgIC8vIFdlIGFyZSBs b29raW5nIGZvciBnc2lQcm94eUNlcnRJbmZvX09JRCAgICAgKCIxLjMuNi4xLjUuNS43LjEuMTQi KQotICAgICAgIC8vICAgICAgICAgICAgICAgICBvciBnc2lQcm94eUNlcnRJbmZvX09MRF9PSUQg KCIxLjMuNi4xLjQuMS4zNTM2LjEuMjIyIikKLSAgICAgICBjaGFyIHNbMjU2XTsKLUBAIC0xMzk5 LDggKzE0NzEsOCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUNoZWNrUHJveHkzKFhyZENyeXB0b1g1 MDkgKnhjcGksIFhyZE91Y1N0cmluZyAmZW1zZykgewotICAgICAgICAgIGlmIChleHQgPT0gMCkg ewotICAgICAgICAgICAgIGV4dCA9IHhleHQ7Ci0gICAgICAgICAgICAgLy8gTm93IGdldCB0aGUg ZXh0ZW5zaW9uCi0tICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9IFg1MDlfRVhURU5TSU9O X2dldF9kYXRhKGV4dCktPmRhdGE7Ci0tICAgICAgICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRf SU5GT19FWFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICAgICBjb25zdCB1bnNpZ25l ZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRh KGV4dCkpOwotKyAgICAgICAgICAgIHBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9O KDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkp OwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgUFJJTlQoIldBUk5JTkc6IG11bHRp cGxlIHByb3h5Q2VydEluZm8gZXh0ZW5zaW9ucyBmb3VuZDogdGFraW5nIHRoZSBmaXJzdCIpOwot ICAgICAgICAgIH0KLUBAIC0xNDA4LDggKzE0ODAsOCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUNo ZWNrUHJveHkzKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZE91Y1N0cmluZyAmZW1zZykgewotICAg ICAgICAgIGlmIChleHQgPT0gMCkgewotICAgICAgICAgICAgIGV4dCA9IHhleHQ7Ci0gICAgICAg ICAgICAgLy8gTm93IGdldCB0aGUgZXh0ZW5zaW9uCi0tICAgICAgICAgICAgdW5zaWduZWQgY2hh ciAqcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGE7Ci0tICAgICAgICAgICAg cGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsIChjb25zdCB1bnNpZ25l ZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0r ICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0 YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKTsKLSsgICAgICAgICAgICBwY2kgPSBkMmlf UFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg ICAgICAgICBQUklOVCgiV0FSTklORzogbXVsdGlwbGUgcHJveHlDZXJ0SW5mbyBleHRlbnNpb25z IGZvdW5kOiB0YWtpbmcgdGhlIGZpcnN0Iik7Ci0gICAgICAgICAgfQotZGlmZiAtLWdpdCBhL3Ny Yy9YcmRUbHMvWHJkVGxzTm90YXJ5VXRpbHMuaWNjIGIvc3JjL1hyZFRscy9YcmRUbHNOb3RhcnlV dGlscy5pY2MKLWluZGV4IDQ0MTI1ZDk4OC4uM2RlZDRmOTkzIDEwMDY0NAotLS0tIGEvc3JjL1hy ZFRscy9YcmRUbHNOb3RhcnlVdGlscy5pY2MKLSsrKyBiL3NyYy9YcmRUbHMvWHJkVGxzTm90YXJ5 VXRpbHMuaWNjCi1AQCAtNTYsOCArNTYsOCBAQCBTT0ZUV0FSRS4KLSAqLwotIHN0YXRpYyBIb3N0 bmFtZVZhbGlkYXRpb25SZXN1bHQgbWF0Y2hlc19jb21tb25fbmFtZShjb25zdCBjaGFyICpob3N0 bmFtZSwgY29uc3QgWDUwOSAqc2VydmVyX2NlcnQpIHsKLSAgICAgICAgIGludCBjb21tb25fbmFt ZV9sb2MgPSAtMTsKLS0gICAgICAgIFg1MDlfTkFNRV9FTlRSWSAqY29tbW9uX25hbWVfZW50cnkg PSBOVUxMOwotLSAgICAgICAgQVNOMV9TVFJJTkcgKmNvbW1vbl9uYW1lX2FzbjEgPSBOVUxMOwot KyAgICAgICAgY29uc3QgWDUwOV9OQU1FX0VOVFJZICpjb21tb25fbmFtZV9lbnRyeSA9IE5VTEw7 Ci0rICAgICAgICBjb25zdCBBU04xX1NUUklORyAqY29tbW9uX25hbWVfYXNuMSA9IE5VTEw7Ci0g ICAgICAgICBjaGFyICpjb21tb25fbmFtZV9zdHIgPSBOVUxMOwotIAotICAgICAgICAgLy8gRmlu ZCB0aGUgcG9zaXRpb24gb2YgdGhlIENOIGZpZWxkIGluIHRoZSBTdWJqZWN0IGZpZWxkIG9mIHRo ZSBjZXJ0aWZpY2F0ZQotZGlmZiAtLWdpdCBhL3NyYy9YcmRWb21zL1hyZFZvbXNGdW4uY2MgYi9z cmMvWHJkVm9tcy9YcmRWb21zRnVuLmNjCi1pbmRleCBhNGJjOWI4YjcuLmZlNmU4ZWJiNyAxMDA2 NDQKLS0tLSBhL3NyYy9YcmRWb21zL1hyZFZvbXNGdW4uY2MKLSsrKyBiL3NyYy9YcmRWb21zL1hy ZFZvbXNGdW4uY2MKLUBAIC0xMTAsNyArMTEwLDcgQEAgWHJkVm9tc0Z1bjo6WHJkVm9tc0Z1bihY cmRTeXNFcnJvciAmZXJwKQotICAgCi0gLy8gRnVuY3Rpb24gdG8gY29udmVydCBYNTA5X05BTUUg aW50byBhIG9uZS1saW5lIGh1bWFuIHJlYWRhYmxlIHN0cmluZwotIC8vCi0tdm9pZCBYcmRWb21z RnVuOjpOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpCi0rdm9pZCBY cmRWb21zRnVuOjpOYW1lT25lTGluZShjb25zdCBYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcg JnMpCi0gewotICAgIEJJTyAqbWJpbyA9IEJJT19uZXcoQklPX3NfbWVtKCkpOwotICAgIFg1MDlf TkFNRV9wcmludF9leChtYmlvLCBubSwgMCwgWE5fRkxBR19DT01QQVQpOwotZGlmZiAtLWdpdCBh L3NyYy9YcmRWb21zL1hyZFZvbXNGdW4uaGggYi9zcmMvWHJkVm9tcy9YcmRWb21zRnVuLmhoCi1p bmRleCBmZjVkZjU4ZWYuLjVjMTEyOWFiOCAxMDA2NDQKLS0tLSBhL3NyYy9YcmRWb21zL1hyZFZv bXNGdW4uaGgKLSsrKyBiL3NyYy9YcmRWb21zL1hyZFZvbXNGdW4uaGgKLUBAIC02NSw3ICs2NSw3 IEBAIGludCAgVk9NU0luaXQoY29uc3QgY2hhciAqY2ZnKTsKLSBwcml2YXRlOgotIAotIHZvaWQg Rm10RXh0cmFjdChYcmRPdWNTdHJpbmcgJm91dCwgWHJkT3VjU3RyaW5nIGluLCBjb25zdCBjaGFy ICp0YWcpOwotLXZvaWQgTmFtZU9uZUxpbmUoWDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZz KTsKLSt2b2lkIE5hbWVPbmVMaW5lKGNvbnN0IFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAm cyk7Ci0gdm9pZCBGbXRSZXBsYWNlKFhyZFNlY0VudGl0eSAmZW50KTsKLSAKLSAvLyBUaGVzZSBz ZXR0aW5ncyBhcmUgY29uZmlndXJhYmxlCi0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAw Mi1YcmRDcnlwdG8tUHJlc2VydmUtQUJJLnBhdGNoIGIvMDAwMi1YcmRDcnlwdG8tUHJlc2VydmUt QUJJLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMmFhN2E1Li4wMDAwMDAw Ci0tLSBhLzAwMDItWHJkQ3J5cHRvLVByZXNlcnZlLUFCSS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDMwICswLDAgQEAKLUZyb20gMDlhOTgzNzNiYzQ0MmQ1MTVmMzQ3NTkzYzExMzg0MjczM2Vh NjBiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdHRpYXMgRWxsZXJ0IDxtYXR0 aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPgotRGF0ZTogU2F0LCAyMyBNYXkgMjAyNiAyMDo1OTow NCArMDIwMAotU3ViamVjdDogW1BBVENIIDIvMl0gW1hyZENyeXB0b10gUHJlc2VydmUgQUJJCi0K LUFkZCBiYWNrIG5vdyB1bnVzZWQgbm9uLWNvbnN0IHZlcnNpb24gb2YgZnVuY3Rpb24KLS0tLQot IHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjIHwgOSArKysrKysrKysKLSAxIGZpbGUg Y2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5cHRvL1hy ZENyeXB0b3NzbEF1eC5jYyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjCi1pbmRl eCBhNDQyODM5ODUuLmUwY2UzNTI4NSAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5 cHRvc3NsQXV4LmNjCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5jYwotQEAg LTc1NSwzICs3NTUsMTIgQEAgdm9pZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShjb25zdCBYNTA5 X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpCi0gICAgLy8gRG9uZQotICAgIHJldHVybjsKLSB9 Ci0rCi0rLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCi0rdm9pZCBYcmRDcnlwdG9zc2xOYW1lT25lTGlu ZShYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpCi0rewotKyAgIC8vIENvcHkgb2YgYWJv dmUgZnVuY3Rpb24gd2l0aCBub24tY29uc3QgZmlyc3QgYXJndW1lbnQKLSsgICAvLyBUaGlzIGZ1 bmN0aW9uIGlzIHVudXNlZCAtLSBvbmx5IGFkZGVkIHRvIHByZXNlcnZlIG9sZCBBQkkKLSsgICAv LyBDYW4gYmUgcmVtb3ZlZCBpZiBzb25hbWUgY2hhbmdlcwotKyAgIFhyZENyeXB0b3NzbE5hbWVP bmVMaW5lKGNvbnN0X2Nhc3Q8Y29uc3QgWDUwOV9OQU1FICo+KG5tKSwgcyk7Ci0rfQotLS0gCi0y LjU0LjAKLQoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDIxODE2YWIuLmY2 Njk4MjcgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotU0hB NTEyICh4cm9vdGQtNi4wLjMudGFyLmd6KSA9IDlmMDUxN2RjZWNjNjc5ZjVhYTM4NTgzMTE4NGM5 ZWI5M2FkN2FkMmQ0MmJkYTEzNDBhOWNhZGE3ZjQ0NDk5OGZlZDBhMjEyNzM4MTQyYmVhZjNkZTZj MmYyNjY3MDEzNzgzOWNhNDhjYTlhYzVhYjdkNTgzNGZlYjVkMzA5YWE4CitTSEE1MTIgKHhyb290 ZC02LjEuMC50YXIuZ3opID0gYmQ0NzFmMzI2N2RlNGFhNTIwZDA5MWNhY2E1YzYzMGFkYzQyNDgx ZGExYWQ0ZGU1MzRiNTE1ZWMzY2I3ZjRjM2I0MjhkYmRmZDkyZWQwNWJhODg5NzgxMTE1M2IyOWVi NDI1YmM0YTAwMjU0NmM4MTk5NmFlYWZkMTM4NWQwYzIKCmRpZmYgLS1naXQgYS94cm9vdGQuc3Bl YyBiL3hyb290ZC5zcGVjCmluZGV4IDkyMTVkODAuLjg3MjY2MWMgMTAwNjQ0Ci0tLSBhL3hyb290 ZC5zcGVjCisrKyBiL3hyb290ZC5zcGVjCkBAIC0xMyw4ICsxMyw4IEBACiAKIE5hbWU6CQl4cm9v dGQKIEVwb2NoOgkJMQotVmVyc2lvbjoJNi4wLjMKLVJlbGVhc2U6CTMlez9kaXN0fQorVmVyc2lv bjoJNi4xLjAKK1JlbGVhc2U6CTElez9kaXN0fQogU3VtbWFyeToJRXh0ZW5kZWQgUk9PVCBmaWxl IHNlcnZlcgogTGljZW5zZToJTEdQTC0zLjAtb3ItbGF0ZXIgQU5EIEJTRC0yLUNsYXVzZSBBTkQg QlNELTMtQ2xhdXNlIEFORCBjdXJsIEFORCBNSVQgQU5EIFpsaWIgQU5EIEFwYWNoZS0yLjAgQU5E IE1QTC0yLjAKIFVSTDoJCWh0dHBzOi8veHJvb3RkLndlYi5jZXJuLmNoCkBAIC0yMywxMCArMjMs NiBAQCBTb3VyY2UxOgkle25hbWV9LXN5c3VzZXJzLmNvbmYKIAogIwkJVW5idW5kbGUgdGlueXht bCBsaWJyYXJ5CiBQYXRjaDA6CQkwMDAxLVVuYnVuZGxlLXRpbnl4bWwucGF0Y2gKLSMJCUFkYXB0 IHRvIE9wZW5TU0wgNAotIwkJaHR0cHM6Ly9naXRodWIuY29tL3hyb290ZC94cm9vdGQvcHVsbC8y ODAyCi1QYXRjaDE6CQkwMDAxLVhyZENyeXB0by1YcmRUbHMtWHJkVm9tcy1BZGFwdC10by1PcGVu U1NMLTQuMC5wYXRjaAotUGF0Y2gyOgkJMDAwMi1YcmRDcnlwdG8tUHJlc2VydmUtQUJJLnBhdGNo CiAKIEJ1aWxkUmVxdWlyZXM6CWNtYWtlCiBCdWlsZFJlcXVpcmVzOglnY2MtYysrCkBAIC03Miw2 ICs2OCw3IEBAIEJ1aWxkUmVxdWlyZXM6CXB5dGhvbjMtc3BoaW54CiBCdWlsZFJlcXVpcmVzOglh dHRyCiBCdWlsZFJlcXVpcmVzOgljdXJsCiBCdWlsZFJlcXVpcmVzOglndGVzdC1kZXZlbAorQnVp bGRSZXF1aXJlczoJanEKIEJ1aWxkUmVxdWlyZXM6CWtyYjUtc2VydmVyCiBCdWlsZFJlcXVpcmVz OglrcmI1LXdvcmtzdGF0aW9uCiBCdWlsZFJlcXVpcmVzOglvcGVuc3NsCkBAIC0yNjUsOCArMjYy LDYgQEAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBBUEkgZG9jdW1lbnRhdGlvbiBvZiB0aGUg eHJvb3RkIGxpYnJhcmllcy4KICVzZXR1cCAtcQogCiAlcGF0Y2ggLVAwIC1wMQotJXBhdGNoIC1Q MSAtcDEKLSVwYXRjaCAtUDIgLXAxCiAKICVidWlsZAogJWNtYWtlIFwKQEAgLTU3OSw2ICs1NzQs NyBAQCBmaQogJXtfbGliZGlyfS9saWJYcmRPZnNQcmVwR1BJLTYuc28KICV7X2xpYmRpcn0vbGli WHJkT3NzQXJjLTYuc28KICV7X2xpYmRpcn0vbGliWHJkT3NzQ3NpLTYuc28KKyV7X2xpYmRpcn0v bGliWHJkT3NzTWlyYWdlLTYuc28KICV7X2xpYmRpcn0vbGliWHJkT3NzU0lncGZzVC02LnNvCiAl e19saWJkaXJ9L2xpYlhyZE9zc1N0YXRzLTYuc28KICV7X2xpYmRpcn0vbGliWHJkUGZjLTYuc28K QEAgLTY2MSw2ICs2NTcsMTAgQEAgZmkKICVkb2MgJXtfcGtnZG9jZGlyfQogCiAlY2hhbmdlbG9n CisqIFR1ZSBKdW4gMjMgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2lj cy51dS5zZT4gLSAxOjYuMS4wLTEKKy0gVXBkYXRlIHRvIHZlcnNpb24gNi4xLjAKKy0gRHJvcCBw YXRjaGVzIGFjY2VwdGVkIHVwc3RyZWFtCisKICogU2F0IEp1biAxMyAyMDI2IFlhYWtvdiBTZWxr b3dpdHogPHlzZWxrb3dpQHJlZGhhdC5jb20+IC0gMTo2LjAuMy0zCiAtIFJlYnVpbHQgZm9yIG9w ZW5zc2wgNC4wCiAK