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: Update to version 6.1.0 Date: Wed, 24 Jun 2026 05:08:20 GMT Message-ID: <178227770019.1.18000572258382020086.rpms-xrootd-fac6715ea9dd@fedoraproject.org> List-ID: X-Git-Repo: rpms/xrootd X-Git-Branch: epel10 X-Git-Rev: fac6715ea9dd0e1faf8422f146d1275eeed6d0e7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveHJvb3RkCiAgICAgICAgICAgIEJyYW5jaCA6IGVwZWwxMAogICAgICAgICAg ICBDb21taXQgOiBmYWM2NzE1ZWE5ZGQwZTFmYWY4NDIyZjE0NmQxMjc1ZWVlZDZkMGU3CiAgICAg ICAgICAgIEF1dGhvciA6IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1 LnNlPgogICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA2LTI0VDA3OjA0OjI4KzAyOjAwCiAgICAg ICAgICAgIFN0YXRzICA6ICs5Ly02MDUgaW4gNCBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6 IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMveHJvb3RkL2MvZmFjNjcxNWVhOWRk MGUxZmFmODQyMmYxNDZkMTI3NWVlZWQ2ZDBlNz9icmFuY2g9ZXBlbDEwCgogICAgICAgICAgICBM b2c6CiAgICAgICAgICAgIFVwZGF0ZSB0byB2ZXJzaW9uIDYuMS4wCgpEcm9wIHBhdGNoZXMgYWNj ZXB0ZWQgdXBzdHJlYW0KCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1YcmRDcnlwdG8tWHJkVGxzLVhy ZFZvbXMtQWRhcHQtdG8tT3BlblNTTC00LjAucGF0Y2ggYi8wMDAxLVhyZENyeXB0by1YcmRUbHMt WHJkVm9tcy1BZGFwdC10by1PcGVuU1NMLTQuMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZTQ2YWQ5ZS4uMDAwMDAwMAotLS0gYS8wMDAxLVhyZENyeXB0by1YcmRUbHMtWHJk Vm9tcy1BZGFwdC10by1PcGVuU1NMLTQuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2NiAr MCwwIEBACi1Gcm9tIDUzNGUxYWEyZWZkOGU1OTI3MWQyNDEwZGM0YTRkMzNhYjdiYzhlZDkgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxl cnRAcGh5c2ljcy51dS5zZT4KLURhdGU6IFNhdCwgMjMgTWF5IDIwMjYgMTg6NTc6NTQgKzAyMDAK LVN1YmplY3Q6IFtQQVRDSCAxLzJdIFtYcmRDcnlwdG8vWHJkVGxzL1hyZFZvbXNdIEFkYXB0IHRv IE9wZW5TU0wgNC4wCi0KLS0tLQotIHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjICAg ICB8ICAgNiArLQotIHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmhoICAgICB8ICAgMiAr LQotIHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOS5jYyAgICB8ICA0OCArKysrKy0tLS0K LSBzcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDlDcmwuY2MgfCAgIDIgKy0KLSBzcmMvWHJk Q3J5cHRvL1hyZENyeXB0b3NzbGdzaUF1eC5jYyAgfCAxNDAgKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCi0gc3JjL1hyZFRscy9YcmRUbHNOb3RhcnlVdGlscy5pY2MgICAgIHwgICA0ICstCi0g c3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5jYyAgICAgICAgICAgIHwgICAyICstCi0gc3JjL1hyZFZv bXMvWHJkVm9tc0Z1bi5oaCAgICAgICAgICAgIHwgICAyICstCi0gOCBmaWxlcyBjaGFuZ2VkLCAx NDUgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvWHJk Q3J5cHRvL1hyZENyeXB0b3NzbEF1eC5jYyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4 LmNjCi1pbmRleCAzODkzYmMyYjQuLmE0NDI4Mzk4NSAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlw dG8vWHJkQ3J5cHRvc3NsQXV4LmNjCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1 eC5jYwotQEAgLTY5MSwxMyArNjkxLDEzIEBAIHRpbWVfdCBYcmRDcnlwdG9zc2xBU04xdG9VVEMo Y29uc3QgQVNOMV9USU1FICp0c24xKQotICAgIC8vIE91ciByZXN1bHQgaXMgaW4gYWdyZWVtZW50 IHdpdGggJ2RhdGUgKyVzYC4gCi0gICAgc3RydWN0IHRtIGx0bTsKLSAgICBjaGFyIHp6OwotLSAg IGlmICgoc3NjYW5mKChjb25zdCBjaGFyICopKHRzbjEtPmRhdGEpLAotKyAgIGlmICgoc3NjYW5m KChjb25zdCBjaGFyICopIEFTTjFfU1RSSU5HX2dldDBfZGF0YSh0c24xKSwKLSAgICAgICAgIiUw MmQlMDJkJTAyZCUwMmQlMDJkJTAyZCVjIiwgCi0gICAgICAgICYobHRtLnRtX3llYXIpLCAmKGx0 bS50bV9tb24pLCAmKGx0bS50bV9tZGF5KSwKLSAgICAgICAgJihsdG0udG1faG91ciksICYobHRt LnRtX21pbiksICYobHRtLnRtX3NlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmenopICE9IDcpIHx8ICh6eiAhPSAnWicpKSB7Ci0gICAgICAgIC8vIFRyeSBHZW5l cmFsaXplZFRpbWUKLS0gICAgICAgaWYgKChzc2NhbmYoKGNvbnN0IGNoYXIgKikodHNuMS0+ZGF0 YSksCi0rICAgICAgIGlmICgoc3NjYW5mKChjb25zdCBjaGFyICopIEFTTjFfU1RSSU5HX2dldDBf ZGF0YSh0c24xKSwKLSAgICAgICAgICAgICIlMDRkJTAyZCUwMmQlMDJkJTAyZCUwMmQlYyIsIAot ICAgICAgICAgICAgJihsdG0udG1feWVhciksICYobHRtLnRtX21vbiksICYobHRtLnRtX21kYXkp LAotICAgICAgICAgICAgJihsdG0udG1faG91ciksICYobHRtLnRtX21pbiksICYobHRtLnRtX3Nl YyksCi1AQCAtNzMzLDcgKzczMyw3IEBAIHRpbWVfdCBYcmRDcnlwdG9zc2xBU04xdG9VVEMoY29u c3QgQVNOMV9USU1FICp0c24xKQotIH0gCi0gCi0gLy9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCi0tdm9p ZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMp Ci0rdm9pZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShjb25zdCBYNTA5X05BTUUgKm5tLCBYcmRP dWNTdHJpbmcgJnMpCi0gewotICAgIC8vIEZ1bmN0aW9uIHRvIGNvbnZlcnQgWDUwOV9OQU1FIGlu dG8gYSBvbmUtbGluZSBodW1hbiByZWFkYWJsZSBzdHJpbmcKLSAKLWRpZmYgLS1naXQgYS9zcmMv WHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5oaCBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3Ns QXV4LmhoCi1pbmRleCAzNmYzYWFkMWIuLmRlODUyYmUzZiAxMDA2NDQKLS0tLSBhL3NyYy9YcmRD cnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmhoCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3Nz bEF1eC5oaAotQEAgLTc0LDcgKzc0LDcgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlQYXJzZVN0YWNr KFhyZFRsc1BlZXJDZXJ0cyogcGMsIFhyZENyeXB0b1g1MDlDaGFpbiAqY2hhaW4pOwotIHRpbWVf dCBYcmRDcnlwdG9zc2xBU04xdG9VVEMoY29uc3QgQVNOMV9USU1FICp0c24xKTsKLSAKLSAvLyBG dW5jdGlvbiB0byBjb252ZXJ0IFg1MDlfTkFNRSBpbnRvIGEgb25lLWxpbmUgaHVtYW4gcmVhZGFi bGUgc3RyaW5nCi0tdm9pZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBY cmRPdWNTdHJpbmcgJnMpOwotK3ZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoY29uc3QgWDUw OV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZzKTsKLSAKLSAvLwotIC8vIFg1MDkgcHJveHkgYXV4 aWxsaWFyeSBmdW5jdGlvbnMKLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3Nz bFg1MDkuY2MgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDkuY2MKLWluZGV4IGJjYzc5 Yzg5Yy4uZDlkMmIxODJmIDEwMDY0NAotLS0tIGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xY NTA5LmNjCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDkuY2MKLUBAIC0zNDAs NyArMzQwLDExIEBAIHZvaWQgWHJkQ3J5cHRvc3NsWDUwOTo6Q2VydFR5cGUoKQotICAgCi0gICAg Ym9vbCBkb25lID0gMDsKLSAgICAvLyBDaGVjayB0aGUgZXh0ZW5zaW9ucwotKyNpZiBPUEVOU1NM X1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0ID0g MDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleHQgPSAwOwotKyNlbmRpZgot ICAgIGludCBpZHggPSAtMTsKLSAKLSAgICAvLyBGb3IgQ0FzIHdlIGFyZSBsb29raW5nIGZvciBh ICJiYXNpY0NvbnN0cmFpbnRzIgotQEAgLTY4NCw3ICs2ODgsMTEgQEAgWHJkQ3J5cHRvWDUwOWRh dGEgWHJkQ3J5cHRvc3NsWDUwOTo6R2V0RXh0ZW5zaW9uKGNvbnN0IGNoYXIgKm9pZCkKLSAKLSAg ICAvLyBMb29wIHRvIGlkZW50aWZ5IHRoZSBvbmUgd2Ugd291bGQgbGlrZQotICAgIGludCBpID0g MDsKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9F WFRFTlNJT04gKndleHQgPSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKndl eHQgPSAwOwotKyNlbmRpZgotICAgIGZvciAoaSA9IDA7IGk8IG51bWV4dDsgaSsrKSB7Ci0gICAg ICAgd2V4dCA9IFg1MDlfZ2V0X2V4dChjZXJ0LCBpKTsKLSAgICAgICBpZiAodXNlbmlkKSB7Ci1A QCAtODIxLDcgKzgyOSwxMSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6RHVtcEV4dGVuc2lvbnMo Ym9vbCBkdW1wdW5rbm93bikKLSAKLSAgICByYyA9IDE7Ci0gICAgLy8gR28gdGhyb3VnaCB0aGUg ZXh0ZW5zaW9ucwotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAg ICBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlfRVhU RU5TSU9OICp4cGlleHQgPSAwOwotKyNlbmRpZgotICAgIGludCBucGlleHQgPSBYNTA5X2dldF9l eHRfY291bnQoeHBpKTsKLSAgICBQUklOVCgiZm91bmQgIjw8bnBpZXh0PDwiIGV4dGVuc2lvbnMg Iik7Ci0gICAgaW50IGkgPSAwOwotQEAgLTgzNCw4ICs4NDYsOCBAQCBpbnQgWHJkQ3J5cHRvc3Ns WDUwOTo6RHVtcEV4dGVuc2lvbnMoYm9vbCBkdW1wdW5rbm93bikKLSAgICAgICBQUklOVChpIDw8 ICI6IGZvdW5kIGV4dGVuc2lvbiAnIjw8czw8IicsIGNyaXRpY2FsOiAiIDw8IGNyaXQpOwotICAg ICAgIC8vIER1bXAgaXRzIGNvbnRlbnQKLSAgICAgICByYyA9IDA7Ci0tICAgICAgY29uc3QgdW5z aWduZWQgY2hhciAqcHAgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBYNTA5X0VYVEVOU0lPTl9n ZXRfZGF0YSh4cGlleHQpLT5kYXRhOwotLSAgICAgIGxvbmcgbGVuZ3RoID0gWDUwOV9FWFRFTlNJ T05fZ2V0X2RhdGEoeHBpZXh0KS0+bGVuZ3RoOwotKyAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnBwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4 dCkpOwotKyAgICAgIGxvbmcgbGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKHhwaWV4dCkpOwotICAgICAgIGludCByZXQgPSBGaWxsVW5rbm93bkV4dCgm cHAsIGxlbmd0aCwgZHVtcHVua25vd24pOwotICAgICAgIFBSSU5UKCJyZXQ6ICIgPDwgcmV0KTsK LSAgICB9Ci1AQCAtOTU3LDEwICs5NjksMTAgQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxV bmtub3duRXh0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAg ICAgICAgICAgICBpbnQgaSwgcHJpbnRhYmxlID0gMTsKLSAgICAgICAgICAgICBvcHAgPSBvcDsK LSAgICAgICAgICAgICBvcyA9IGQyaV9BU04xX09DVEVUX1NUUklORygwLCAmb3BwLCBsZW4gKyBo bCk7Ci0tICAgICAgICAgICAgaWYgKG9zICYmIG9zLT5sZW5ndGggPiAwKSB7Ci0tICAgICAgICAg ICAgICAgb3BwID0gb3MtPmRhdGE7Ci0rICAgICAgICAgICAgaWYgKG9zICYmIEFTTjFfU1RSSU5H X2xlbmd0aChvcykgPiAwKSB7Ci0rICAgICAgICAgICAgICAgb3BwID0gQVNOMV9TVFJJTkdfZ2V0 MF9kYXRhKG9zKTsKLSAgICAgICAgICAgICAgICAvKiB0ZXN0aW5nIHdoZXRoZXIgdGhlIG9jdGV0 IHN0cmluZyBpcyAqIHByaW50YWJsZSAqLwotLSAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPG9z LT5sZW5ndGg7IGkrKykgewotKyAgICAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgQVNOMV9TVFJJ TkdfbGVuZ3RoKG9zKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgaWYgKCggKG9wcFtpXSA8 ICcgJykgJiYgKG9wcFtpXSAhPSAnXG4nKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgIChv cHBbaV0gIT0gJ1xyJykgJiYgKG9wcFtpXSAhPSAnXHQnKSkgfHwgKG9wcFtpXSA+ICd+JykpIHsK LSAgICAgICAgICAgICAgICAgICAgICBwcmludGFibGUgPSAwOwotQEAgLTk2OSwxNiArOTgxLDE2 IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5OjpGaWxsVW5rbm93bkV4dChjb25zdCB1bnNpZ25lZCBj aGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBib29sCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgIGlmIChwcmludGFibGUpIHsKLSAgICAgICAgICAgICAgICAgICAvKiBwcmludGFibGUg c3RyaW5nICovCi0tICAgICAgICAgICAgICAgICAgY2hhciAqcyA9IG5ldyBjaGFyW29zLT5sZW5n dGggKyAxXTsKLS0gICAgICAgICAgICAgICAgICBtZW1jcHkocywgb3BwLCBvcy0+bGVuZ3RoKTsK LS0gICAgICAgICAgICAgICAgICBzW29zLT5sZW5ndGhdID0gMDsKLS0gICAgICAgICAgICAgICAg ICBpZiAoZHVtcCkgUFJJTlQoIk9CSlM6IiA8PCBzIDw8ICIgKGxlbjogIjw8b3MtPmxlbmd0aDw8 IikiKTsKLSsgICAgICAgICAgICAgICAgICBjaGFyICpzID0gbmV3IGNoYXJbQVNOMV9TVFJJTkdf bGVuZ3RoKG9zKSArIDFdOwotKyAgICAgICAgICAgICAgICAgIG1lbWNweShzLCBvcHAsIEFTTjFf U1RSSU5HX2xlbmd0aChvcykpOwotKyAgICAgICAgICAgICAgICAgIHNbQVNOMV9TVFJJTkdfbGVu Z3RoKG9zKV0gPSAwOwotKyAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiT0JKUzoi IDw8IHMgPDwgIiAobGVuOiAiIDw8IEFTTjFfU1RSSU5HX2xlbmd0aChvcykgPDwgIikiKTsKLSAg ICAgICAgICAgICAgICAgICBkZWxldGUgW10gczsKLSAgICAgICAgICAgICAgICB9IGVsc2Ugewot ICAgICAgICAgICAgICAgICAgIC8qIHByaW50IHRoZSBub3JtYWwgZHVtcCAqLwotICAgICAgICAg ICAgICAgICAgIGlmICghbmwpIFBSSU5UKCJPQkpTOiIpOwotICAgICAgICAgICAgICAgICAgIEJJ TyAqbWVtID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKEJJ T19kdW1wX2luZGVudChtZW0sIChjb25zdCBjaGFyICopb3BwLCBvcy0+bGVuZ3RoLCBkdW1wX2lu ZGVudCkgPD0gMCkgewotKyAgICAgICAgICAgICAgICAgIGlmIChCSU9fZHVtcF9pbmRlbnQobWVt LCAoY29uc3QgY2hhciAqKW9wcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKG9zKSwgZHVtcF9pbmRlbnQp IDw9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkVSUk9SOk9C SlM6IHByb2JsZW1zIGR1bXBpbmcgdG8gQklPIik7Ci0gICAgICAgICAgICAgICAgICAgICAgQklP X2ZyZWUobWVtKTsgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICBnb3Rv IGVuZDsKLUBAIC05OTksMTggKzEwMTEsMTggQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxV bmtub3duRXh0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAg ICAgICAgICAgICBicyA9IGQyaV9BU04xX0lOVEVHRVIoMCwgJm9wcCwgbGVuK2hsKTsKLSAgICAg ICAgICAgICBpZiAoYnMpIHsKLSAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkFJTlQ6 Iik7Ci0tICAgICAgICAgICAgICAgaWYgKGJzLT50eXBlID09IFZfQVNOMV9ORUdfSU5URUdFUikK LSsgICAgICAgICAgICAgICBpZiAoQVNOMV9TVFJJTkdfdHlwZShicykgPT0gVl9BU04xX05FR19J TlRFR0VSKQotICAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiLSIpOwotICAgICAg ICAgICAgICAgIEJJTyAqbWVtID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0tICAgICAgICAgICAg ICAgZm9yIChpID0gMDsgaSA8IGJzLT5sZW5ndGg7IGkrKykgewotLSAgICAgICAgICAgICAgICAg IGlmIChCSU9fcHJpbnRmKG1lbSwgIiUwMlgiLCBicy0+ZGF0YVtpXSkgPD0gMCkgewotKyAgICAg ICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBBU04xX1NUUklOR19sZW5ndGgoYnMpOyBpKyspIHsK LSsgICAgICAgICAgICAgICAgICBpZiAoQklPX3ByaW50ZihtZW0sICIlMDJYIiwgQVNOMV9TVFJJ TkdfZ2V0MF9kYXRhKGJzKVtpXSkgPD0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIGlmIChk dW1wKSBQUklOVCgiRVJST1I6QUlOVDogcHJvYmxlbXMgcHJpbnRmLWluZyB0byBCSU8iKTsKLSAg ICAgICAgICAgICAgICAgICAgICBCSU9fZnJlZShtZW0pOyAKLSAgICAgICAgICAgICAgICAgICAg ICBnb3RvIGVuZDsKLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgIGlmIChkdW1wKSB7IEJJT19QUklOVChtZW0sICJBSU5UOiIpOyB9Ci0tICAg ICAgICAgICAgICAgaWYgKGJzLT5sZW5ndGggPT0gMCkgUFJJTlQoIjAwIik7Ci0rICAgICAgICAg ICAgICAgaWYgKEFTTjFfU1RSSU5HX2xlbmd0aChicykgPT0gMCkgUFJJTlQoIjAwIik7Ci0gICAg ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkVSUk9S OkFJTlQ6IEJBRCBJTlRFR0VSIik7Ci0gICAgICAgICAgICAgfQotQEAgLTEwMjMsMTggKzEwMzUs MTggQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxVbmtub3duRXh0KGNvbnN0IHVuc2lnbmVk IGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAgICAgICAgICAgICBicyA9IGQyaV9BU04x X0VOVU1FUkFURUQoMCwgJm9wcCwgbGVuK2hsKTsKLSAgICAgICAgICAgICBpZiAoYnMpIHsKLSAg ICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkFFTlU6Iik7Ci0tICAgICAgICAgICAgICAg aWYgKGJzLT50eXBlID09IFZfQVNOMV9ORUdfRU5VTUVSQVRFRCkKLSsgICAgICAgICAgICAgICBp ZiAoQVNOMV9TVFJJTkdfdHlwZShicykgPT0gVl9BU04xX05FR19FTlVNRVJBVEVEKQotICAgICAg ICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiLSIpOwotICAgICAgICAgICAgICAgIEJJTyAq bWVtID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0tICAgICAgICAgICAgICAgZm9yIChpID0gMDsg aSA8IGJzLT5sZW5ndGg7IGkrKykgewotLSAgICAgICAgICAgICAgICAgIGlmIChCSU9fcHJpbnRm KG1lbSwgIiUwMlgiLCBicy0+ZGF0YVtpXSkgPD0gMCkgewotKyAgICAgICAgICAgICAgIGZvciAo aSA9IDA7IGkgPCBBU04xX1NUUklOR19sZW5ndGgoYnMpOyBpKyspIHsKLSsgICAgICAgICAgICAg ICAgICBpZiAoQklPX3ByaW50ZihtZW0sICIlMDJYIiwgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGJz KVtpXSkgPD0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiRVJS T1I6QUVOVTogcHJvYmxlbXMgcHJpbnRmLWluZyB0byBCSU8iKTsKLSAgICAgICAgICAgICAgICAg ICAgICBCSU9fZnJlZShtZW0pOyAKLSAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlm IChkdW1wKSB7IEJJT19QUklOVChtZW0sICJBRU5VOiIpOyB9Ci0tICAgICAgICAgICAgICAgaWYg KGJzLT5sZW5ndGggPT0gMCkgUFJJTlQoIjAwIik7Ci0rICAgICAgICAgICAgICAgaWYgKEFTTjFf U1RSSU5HX2xlbmd0aChicykgPT0gMCkgUFJJTlQoIjAwIik7Ci0gICAgICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkVSUk9SOkFFTlU6IEJBRCBFTlVN RVJBVEVEIik7Ci0gICAgICAgICAgICAgfQotZGlmZiAtLWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJk Q3J5cHRvc3NsWDUwOUNybC5jYyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOUNybC5j YwotaW5kZXggNjFkZGFmODNjLi5jYzlmMzI0YmIgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkQ3J5cHRv L1hyZENyeXB0b3NzbFg1MDlDcmwuY2MKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3Ns WDUwOUNybC5jYwotQEAgLTEwNSw3ICsxMDUsNyBAQCBYcmRDcnlwdG9zc2xYNTA5Q3JsOjpYcmRD cnlwdG9zc2xYNTA5Q3JsKFhyZENyeXB0b1g1MDkgKmNhY2VydCkKLSAKLSAgICAvLyBCaW8gZm9y IGV4cG9ydGluZyB0aGUgZXh0ZW5zaW9uCi0gICAgQklPICpiZXh0ID0gQklPX25ldyhCSU9fc19t ZW0oKSk7Ci0tICAgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3Qo Y3JsZXh0KTsKLSsgICBjb25zdCBBU04xX09CSkVDVCAqb2JqID0gWDUwOV9FWFRFTlNJT05fZ2V0 X29iamVjdChjcmxleHQpOwotICAgIGkyYV9BU04xX09CSkVDVChiZXh0LCBvYmopOwotICAgIFg1 MDlWM19FWFRfcHJpbnQoYmV4dCwgY3JsZXh0LCAwLCA0KTsKLSAgICAvLyBkYXRhIGxlbmd0aAot ZGlmZiAtLWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjIGIvc3JjL1hy ZENyeXB0by9YcmRDcnlwdG9zc2xnc2lBdXguY2MKLWluZGV4IDhmNGI5MjljMS4uYTVkMjBlMWFm IDEwMDY0NAotLS0tIGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xnc2lBdXguY2MKLSsrKyBi L3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjCi1AQCAtMTY1LDEyICsxNjUsMTIg QEAgYm9vbCBYcmRDcnlwdG9zc2xQcm94eUNlcnRJbmZvKGNvbnN0IHZvaWQgKmV4dGRhdGEsIGlu dCAmcGF0aGxlbiwgYm9vbCAqaGFzcG9saWMKLSAgICBPQkpfb2JqMnR4dChzLCBzaXplb2Yocyks IFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoZXh0KSwgMSk7Ci0gCi0gICAgLy8gTm93IGV4dHJh Y3QgdGhlIHBhdGggbGVuZ3RoIGNvbnN0cmFpbnQsIGlmIGFueQotLSAgIHVuc2lnbmVkIGNoYXIg KnAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhOwotKyAgIGNvbnN0IHVuc2ln bmVkIGNoYXIgKnAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoZXh0KSk7Ci0gICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTiAqcGNpID0gMDsKLSAgICBp ZiAoIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09JRCkpCi0tICAgICAgcGNpID0gZDJpX1BS T1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwg WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAgICBwY2kgPSBkMmlf UFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTigwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICBlbHNlIGlmICghc3RyY21wKHMsIGdzaVBy b3h5Q2VydEluZm9fT0xEX09JRCkpCi0tICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19F WFRFTlNJT05fT0xEKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRf SU5GT19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJ T05fZ2V0X2RhdGEoZXh0KSkpOwotICAgIGlmICghcGNpKSB7Ci0gICAgICAgcmV0dXJuIDA7Ci0g ICAgfQotQEAgLTIwOCwxMiArMjA4LDEyIEBAIHZvaWQgWHJkQ3J5cHRvc3NsU2V0UGF0aExlbkNv bnN0cmFpbnQodm9pZCAqZXh0ZGF0YSwgaW50IHBhdGhsZW4pCi0gICAgT0JKX29iajJ0eHQocywg c2l6ZW9mKHMpLCBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KGV4dCksIDEpOwotIAotICAgIC8v IE5vdyBleHRyYWN0IHRoZSBwYXRoIGxlbmd0aCBjb25zdHJhaW50LCBpZiBhbnkKLS0gICB1bnNp Z25lZCBjaGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YTsKLSsgICBj b25zdCB1bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKGV4dCkpOwotICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJT04gKnBjaSA9 IDA7Ci0gICAgaWYgKCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpKQotLSAgICAgIHBj aSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsIChjb25zdCB1bnNpZ25lZCBjaGFy ICoqKSgmcCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAg cGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgJnAsIEFTTjFfU1RSSU5HX2xl bmd0aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgZWxzZSBpZiAoIXN0cmNt cChzLCBnc2lQcm94eUNlcnRJbmZvX09MRF9PSUQpKQotLSAgICAgIHBjaSA9IGQyaV9QUk9YWV9D RVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAgICAgIHBjaSA9IGQyaV9Q Uk9YWV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICBpZiAoIXBjaSkKLSAgICAgICByZXR1 cm47Ci0gCi1AQCAtNDE5LDE2ICs0MTksMzIgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlDcmVhdGVQ cm94eShjb25zdCBjaGFyICpmbmMsIGNvbnN0IGNoYXIgKmZuaywKLSAgICAgICByZXR1cm4gLWtF cnJQWF9TZXRBdHRyaWJ1dGU7Ci0gICAgfQotICAgIC8vIEV4dHJhY3QgZGF0YSBpbiBmb3JtYXQg Zm9yIGV4dGVuc2lvbgotLSAgIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCA9 IGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaSwgMCk7Ci0tICAgaWYgKCEoWDUwOV9F WFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopbWFsbG9jKFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCsxKSkpIHsKLSsgICBpbnQgbGVuID0g aTJkX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLCAwKTsKLSsgICB1bnNpZ25lZCBjaGFy ICpkYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jKGxlbik7Ci0rICAgaWYgKCFkYXRhKSB7 Ci0gICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNp b24iKTsKLSAgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSAgICB9Ci0tICAgdW5z aWduZWQgY2hhciAqcHAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhOwotKyAg IHVuc2lnbmVkIGNoYXIgKnBwID0gZGF0YTsKLSAgICBpZiAoKGkyZF9QUk9YWV9DRVJUX0lORk9f RVhURU5TSU9OKHBjaSwgJnBwKSkgPD0gMCkgewotICAgICAgIFBSSU5UKCJwcm9ibGVtIGNvbnZl cnRpbmcgZGF0YSBmb3IgZXh0ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJuIC1rRXJyUFhfRXJyb3I7 Ci0gICAgfQotKyAgIEFTTjFfT0NURVRfU1RSSU5HICpvcyA9IEFTTjFfT0NURVRfU1RSSU5HX25l dygpOwotKyAgIGlmICghb3MpIHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRh dGEgZmllbGQgZm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3Vy Y2VzOwotKyAgIH0KLSsgICBpZiAoQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KG9zLCBkYXRhLCBsZW4p ID09IDApIHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9y IGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0K LSsgICBmcmVlKGRhdGEpOwotKyAgIGlmIChYNTA5X0VYVEVOU0lPTl9zZXRfZGF0YShleHQsIG9z KSA9PSAwKSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZv ciBleHRlbnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9 Ci0rICAgQVNOMV9TVFJJTkdfZnJlZShvcyk7Ci0gICAgLy8gQ3JlYXRlIGEgc3RhY2sKLSAgICBT VEFDS19PRihYNTA5X0VYVEVOU0lPTikgKmVzayA9IHNrX1g1MDlfRVhURU5TSU9OX25ld19udWxs KCk7Ci0gICAgaWYgKCFlc2spIHsKLUBAIC01MDQsNyArNTIwLDExIEBAIGludCBYcmRDcnlwdG9z c2xYNTA5Q3JlYXRlUHJveHkoY29uc3QgY2hhciAqZm5jLCBjb25zdCBjaGFyICpmbmssCi0gICAg fQotIAotICAgIC8vIEZpcnN0IGR1cGxpY2F0ZSB0aGUgZXh0ZW5zaW9ucyBvZiB0aGUgRUUgY2Vy dGlmaWNhdGUKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAg WDUwOV9FWFRFTlNJT04gKnhFRUNleHQgPSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9FWFRF TlNJT04gKnhFRUNleHQgPSAwOwotKyNlbmRpZgotICAgIGludCBuRUVDZXh0ID0gWDUwOV9nZXRf ZXh0X2NvdW50KHhFRUMpOwotICAgIERFQlVHKCJudW1iZXIgb2YgZXh0ZW5zaW9ucyBmb3VuZCBp biB0aGUgb3JpZ2luYWwgY2VydGlmaWNhdGU6ICI8PCBuRUVDZXh0KTsKLSAgICBpbnQgaSA9IDA7 Ci1AQCAtNzU2LDcgKzc3NiwxMSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUNyZWF0ZVByb3h5UmVx KFhyZENyeXB0b1g1MDkgKnhjcGksCi0gICAgfQotICAgIC8vCi0gICAgLy8gR2V0IHNpZ25hdHVy ZSBwYXRoIGRlcHRoIGZyb20gcHJlc2VudCBwcm94eQotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVN QkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsjZWxz ZQotKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICp4cGlleHQgPSAwOwotKyNlbmRpZgotICAgIGlu dCBucGlleHQgPSBYNTA5X2dldF9leHRfY291bnQoeHBpKTsKLSAgICBpbnQgaSA9IDA7Ci0gICAg Ym9vbCBoYXNrZXl1c2FnZSA9IDA7Ci1AQCAtNzcyLDEyICs3OTYsMTIgQEAgaW50IFhyZENyeXB0 b3NzbFg1MDlDcmVhdGVQcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLAotICAgICAgIC8vIEdl dCBzaWduYXR1cmUgcGF0aCBkZXB0aCBmcm9tIHByZXNlbnQgcHJveHkKLSAgICAgICBpZiAoIXN0 cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09JRCkgfHwKLSAgICAgICAgICAgIXN0cmNtcChzLCBn c2lQcm94eUNlcnRJbmZvX09MRF9PSUQpKSB7Ci0tICAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9 IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmRhdGE7Ci0rICAgICAgICAgY29uc3Qg dW5zaWduZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9n ZXRfZGF0YSh4cGlleHQpKTsKLSAgICAgICAgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OICpp bnBjaSA9IDA7Ci0gICAgICAgICAgaWYgKCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQp KQotLSAgICAgICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwg KGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBp ZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9f RVhURU5TSU9OKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoeHBpZXh0KSkpOwotICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICBpbnBjaSA9IGQyaV9Q Uk9YWV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKiko JnApLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpLT5sZW5ndGgpOwotKyAgICAgICAg ICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04x X1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KSkpOwotICAgICAg ICAgIGlmIChpbnBjaSAmJgotICAgICAgICAgICAgICBpbnBjaS0+cGNQYXRoTGVuZ3RoQ29uc3Ry YWludCkKLSAgICAgICAgICAgICBpbmRlcHRobGVuID0gQVNOMV9JTlRFR0VSX2dldChpbnBjaS0+ cGNQYXRoTGVuZ3RoQ29uc3RyYWludCk7Ci1AQCAtODIzLDE2ICs4NDcsMzIgQEAgaW50IFhyZENy eXB0b3NzbFg1MDlDcmVhdGVQcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLAotICAgICAgIHJl dHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotICAgIH0KLSAgICAvLyBFeHRyYWN0IGRhdGEgaW4g Zm9ybWF0IGZvciBleHRlbnNpb24KLS0gICBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0 KCkpLT5sZW5ndGggPSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCksIDAp OwotLSAgIGlmICghKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQoKSktPmRhdGEgPSAo dW5zaWduZWQgY2hhciAqKW1hbGxvYyhYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkp LT5sZW5ndGgrMSkpKSB7Ci0rICAgaW50IGxlbiA9IGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5T SU9OKHBjaS5nZXQoKSwgMCk7Ci0rICAgdW5zaWduZWQgY2hhciAqZGF0YSA9ICh1bnNpZ25lZCBj aGFyICopIG1hbGxvYyhsZW4pOwotKyAgIGlmICghZGF0YSkgewotICAgICAgIFBSSU5UKCJjb3Vs ZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJu IC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0gICAgfQotLSAgIHVuc2lnbmVkIGNoYXIgKnBwID0gWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+ZGF0YTsKLSsgICB1bnNpZ25lZCBjaGFy ICpwcCA9IGRhdGE7Ci0gICAgaWYgKChpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2ku Z2V0KCksICZwcCkpIDw9IDApIHsKLSAgICAgICBQUklOVCgicHJvYmxlbSBjb252ZXJ0aW5nIGRh dGEgZm9yIGV4dGVuc2lvbiIpOwotICAgICAgIHJldHVybiAta0VyclBYX0Vycm9yOwotICAgIH0K LSsgICBBU04xX09DVEVUX1NUUklORyAqb3MgPSBBU04xX09DVEVUX1NUUklOR19uZXcoKTsKLSsg ICBpZiAoIW9zKSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxk IGZvciBleHRlbnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsg ICB9Ci0rICAgaWYgKEFTTjFfT0NURVRfU1RSSU5HX3NldChvcywgZGF0YSwgbGVuKSA9PSAwKSB7 Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNp b24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0rICAgZnJl ZShkYXRhKTsKLSsgICBpZiAoWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEoZXh0LmdldCgpLCBvcykg PT0gMCkgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3Ig ZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQot KyAgIEFTTjFfU1RSSU5HX2ZyZWUob3MpOwotICAgIHBjaSA9IG51bGxwdHI7Ci0gCi0gICAgLy8g U2V0IGV4dGVuc2lvbiBuYW1lLgotQEAgLTEwMzAsNyArMTA3MCwxMSBAQCBpbnQgWHJkQ3J5cHRv c3NsWDUwOVNpZ25Qcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRDcnlwdG9SU0EgKmtj cGksCi0gCi0gICAgLy8KLSAgICAvLyBHZXQgc2lnbmF0dXJlIHBhdGggZGVwdGggZnJvbSBpbnB1 dCBwcm94eQotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBY NTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMCwgKnhyaWV4dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25z dCBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMCwgKnhyaWV4dCA9IDA7Ci0rI2VuZGlmCi0gICAg aW50IG5waWV4dCA9IFg1MDlfZ2V0X2V4dF9jb3VudCh4cGkpOwotICAgIGludCBpID0gMDsKLSAg ICBib29sIGhhc2tleXVzYWdlID0gMDsKLUBAIC0xMDM4LDE3ICsxMDgyLDE3IEBAIGludCBYcmRD cnlwdG9zc2xYNTA5U2lnblByb3h5UmVxKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZENyeXB0b1JT QSAqa2NwaSwKLSAgICBmb3IgKGkgPSAwOyBpPCBucGlleHQ7IGkrKykgewotICAgICAgIHhwaWV4 dCA9IFg1MDlfZ2V0X2V4dCh4cGksIGkpOwotICAgICAgIGNoYXIgc1syNTZdID0gezB9OwotLSAg ICAgIEFTTjFfT0JKRUNUICpvYmogPSBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KHhwaWV4dCk7 Ci0rICAgICAgY29uc3QgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfRVhURU5TSU9OX2dldF9vYmpl Y3QoeHBpZXh0KTsKLSAgICAgICBpZiAob2JqKQotICAgICAgICAgIE9CSl9vYmoydHh0KHMsIHNp emVvZihzKSwgb2JqLCAxKTsKLSAgICAgICBpZiAoIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZv X09JRCkgfHwKLSAgICAgICAgICAgIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09MRF9PSUQp KSB7Ci0tICAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRh KHhwaWV4dCktPmRhdGE7Ci0rICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IEFTTjFf U1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKTsKLSAgICAg ICAgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OICppbnBjaSA9IDA7Ci0gICAgICAgICAgaWYg KCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpKQotLSAgICAgICAgICAgIGlucGNpID0g ZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiop KCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAg ICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsICZwLCBBU04xX1NU UklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KSkpOwotICAgICAgICAg IGVsc2UKLS0gICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9O X09MRCgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YSh4cGlleHQpLT5sZW5ndGgpOwotKyAgICAgICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NF UlRfSU5GT19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoeHBpZXh0KSkpOwotICAgICAgICAgIGlmIChpbnBjaSAmJgotICAgICAg ICAgICAgICBpbnBjaS0+cGNQYXRoTGVuZ3RoQ29uc3RyYWludCkKLSAgICAgICAgICAgICBpbmRl cHRobGVuID0gQVNOMV9JTlRFR0VSX2dldChpbnBjaS0+cGNQYXRoTGVuZ3RoQ29uc3RyYWludCk7 Ci1AQCAtMTEwMSw5ICsxMTQ1LDkgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlTaWduUHJveHlSZXEo WHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkQ3J5cHRvUlNBICprY3BpLAotICAgIC8vIEdldCB0aGUg Y29udGVudAotICAgIGludCByZXFkZXB0aGxlbiA9IC0xOwotICAgIGlmICh4cmlleHQpIHsKLS0g ICAgICB1bnNpZ25lZCBjaGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHJpZXh0KS0+ ZGF0YTsKLSsgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9k YXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhyaWV4dCkpOwotICAgICAgIFBST1hZX0NFUlRf SU5GT19FWFRFTlNJT04gKnJlcXBjaSA9Ci0tICAgICAgICAgZDJpX1BST1hZX0NFUlRfSU5GT19F WFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05f Z2V0X2RhdGEoeHJpZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICBkMmlfUFJPWFlfQ0VSVF9JTkZP X0VYVEVOU0lPTigwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dldF9k YXRhKHhyaWV4dCkpKTsKLSAgICAgICBpZiAocmVxcGNpICYmCi0gICAgICAgICAgIHJlcXBjaS0+ cGNQYXRoTGVuZ3RoQ29uc3RyYWludCkKLSAgICAgICAgICByZXFkZXB0aGxlbiA9IEFTTjFfSU5U RUdFUl9nZXQocmVxcGNpLT5wY1BhdGhMZW5ndGhDb25zdHJhaW50KTsKLUBAIC0xMTQwLDE2ICsx MTg0LDMyIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5U2lnblByb3h5UmVxKFhyZENyeXB0b1g1MDkg KnhjcGksIFhyZENyeXB0b1JTQSAqa2NwaSwKLSAgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291 cmNlczsKLSAgICB9Ci0gICAgLy8gRXh0cmFjdCBkYXRhIGluIGZvcm1hdCBmb3IgZXh0ZW5zaW9u Ci0tICAgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+bGVuZ3RoID0gaTJkX1BS T1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLmdldCgpLCAwKTsKLS0gICBpZiAoIShYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKiltYWxs b2MoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+bGVuZ3RoKzEpKSkgewotKyAg IGludCBsZW4gPSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCksIDApOwot KyAgIHVuc2lnbmVkIGNoYXIgKmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBtYWxsb2MobGVuKTsK LSsgICBpZiAoIWRhdGEpIHsKLSAgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEg ZmllbGQgZm9yIGV4dGVuc2lvbiIpOwotICAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2Vz OwotICAgIH0KLS0gICB1bnNpZ25lZCBjaGFyICpwcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRh KGV4dC5nZXQoKSktPmRhdGE7Ci0rICAgdW5zaWduZWQgY2hhciAqcHAgPSBkYXRhOwotICAgIGlm ICgoaTJkX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLmdldCgpLCAmcHApKSA8PSAwKSB7 Ci0gICAgICAgUFJJTlQoInByb2JsZW0gY29udmVydGluZyBkYXRhIGZvciBleHRlbnNpb24iKTsK LSAgICAgICByZXR1cm4gLWtFcnJQWF9FcnJvcjsKLSAgICB9Ci0rICAgQVNOMV9PQ1RFVF9TVFJJ TkcgKm9zID0gQVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7Ci0rICAgaWYgKCFvcykgewotKyAgICAg IFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0r ICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAgIGlmIChBU04xX09D VEVUX1NUUklOR19zZXQob3MsIGRhdGEsIGxlbikgPT0gMCkgewotKyAgICAgIFBSSU5UKCJjb3Vs ZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJu IC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAgIGZyZWUoZGF0YSk7Ci0rICAgaWYgKFg1 MDlfRVhURU5TSU9OX3NldF9kYXRhKGV4dC5nZXQoKSwgb3MpID09IDApIHsKLSsgICAgICBQUklO VCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVuc2lvbiIpOwotKyAgICAg IHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0KLSsgICBBU04xX1NUUklOR19mcmVl KG9zKTsKLSAgICBwY2kgPSBudWxscHRyOwotIAotICAgIC8vIFNldCBleHRlbnNpb24gbmFtZS4K LUBAIC0xMjE1LDcgKzEyNzUsMTEgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlHZXRWT01TQXR0cihY cmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRPdWNTdHJpbmcgJnZhdCkKLSAgICByYyA9IDE7Ci0gICAg Ym9vbCBnZXR2YXQgPSAwOwotICAgIC8vIEdvIHRocm91Z2ggdGhlIGV4dGVuc2lvbnMKLSsjaWYg T1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9FWFRFTlNJT04g KnhwaWV4dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0g MDsKLSsjZW5kaWYKLSAgICBpbnQgbnBpZXh0ID0gWDUwOV9nZXRfZXh0X2NvdW50KHhwaSk7Ci0g ICAgaW50IGkgPSAwOwotICAgIGZvciAoaSA9IDA7IGk8IG5waWV4dDsgaSsrKSB7Ci1AQCAtMTIy Nyw4ICsxMjkxLDggQEAgaW50IFhyZENyeXB0b3NzbFg1MDlHZXRWT01TQXR0cihYcmRDcnlwdG9Y NTA5ICp4Y3BpLCBYcmRPdWNTdHJpbmcgJnZhdCkKLSAgICAgICBpZiAoc3RyY21wKHMsIFhSREdT SV9WT01TX0FDU0VRX09JRCkpIGNvbnRpbnVlOwotICAgICAgIC8vIFRoaXMgaXMgdGhlIFZPTVMg ZXh0ZW5zaW9uIHdlIGFyZSBpbnRlcmVzdGVkIGZvcgotICAgICAgIHJjID0gMDsKLS0gICAgICBj b25zdCB1bnNpZ25lZCBjaGFyICpwcCA9IChjb25zdCB1bnNpZ25lZCBjaGFyICopIFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmRhdGE7Ci0tICAgICAgbG9uZyBsZW5ndGggPSBYNTA5 X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpLT5sZW5ndGg7Ci0rICAgICAgY29uc3QgdW5zaWdu ZWQgY2hhciAqcHAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoeHBpZXh0KSk7Ci0rICAgICAgbG9uZyBsZW5ndGggPSBBU04xX1NUUklOR19sZW5ndGgoWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KSk7Ci0gICAgICAgaW50IHJldCA9IFhyZENyeXB0 b3NzbFg1MDlGaWxsVk9NUygmcHAsIGxlbmd0aCwgZ2V0dmF0LCB2YXQpOwotICAgICAgIERFQlVH KCJyZXQ6ICIgPDwgcmV0IDw8ICIgLSB2YXQ6ICIgPDwgdmF0KTsKLSAgICB9Ci1AQCAtMTMxNiwx MCArMTM4MCwxMCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUZpbGxWT01TKGNvbnN0IHVuc2lnbmVk IGNoYXIgKipwcCwKLSAgICAgICAgICAgICBpbnQgaSwgcHJpbnRhYmxlID0gMTsKLSAgICAgICAg ICAgICBvcHAgPSBvcDsKLSAgICAgICAgICAgICBvcyA9IGQyaV9BU04xX09DVEVUX1NUUklORygw LCAmb3BwLCBsZW4gKyBobCk7Ci0tICAgICAgICAgICAgaWYgKG9zICYmIG9zLT5sZW5ndGggPiAw KSB7Ci0tICAgICAgICAgICAgICAgb3BwID0gb3MtPmRhdGE7Ci0rICAgICAgICAgICAgaWYgKG9z ICYmIEFTTjFfU1RSSU5HX2xlbmd0aChvcykgPiAwKSB7Ci0rICAgICAgICAgICAgICAgb3BwID0g QVNOMV9TVFJJTkdfZ2V0MF9kYXRhKG9zKTsKLSAgICAgICAgICAgICAgICAvLyBUZXN0aW5nIHdo ZXRoZXIgdGhlIG9jdGV0IHN0cmluZyBpcyBwcmludGFibGUKLS0gICAgICAgICAgICAgICBmb3Ig KGk9MDsgaTxvcy0+bGVuZ3RoOyBpKyspIHsKLSsgICAgICAgICAgICAgICBmb3IgKGk9MDsgaSA8 IEFTTjFfU1RSSU5HX2xlbmd0aChvcyk7IGkrKykgewotICAgICAgICAgICAgICAgICAgIGlmICgo IChvcHBbaV0gPCAnICcpICYmIChvcHBbaV0gIT0gJ1xuJykgJiYKLSAgICAgICAgICAgICAgICAg ICAgICAgICAob3BwW2ldICE9ICdccicpICYmIChvcHBbaV0gIT0gJ1x0JykpIHx8IChvcHBbaV0g PiAnficpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlID0gMDsKLUBAIC0xMzMz LDcgKzEzOTcsNyBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUZpbGxWT01TKGNvbnN0IHVuc2lnbmVk IGNoYXIgKipwcCwKLSAgICAgICAgICAgICAgICAgICAgICB2YXQgKz0gKGNvbnN0IGNoYXIgKilv cHA7Ci0gICAgICAgICAgICAgICAgICAgICAgZ290dmF0ID0gMTsKLSAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgREVCVUcoIk9CSlM6IiA8PCAoY29uc3QgY2hhciAqKW9w cCA8PCAiIChsZW46ICI8PG9zLT5sZW5ndGg8PCIpIik7Ci0rICAgICAgICAgICAgICAgICAgREVC VUcoIk9CSlM6IiA8PCAoY29uc3QgY2hhciAqKW9wcCA8PCAiIChsZW46ICIgPDwgQVNOMV9TVFJJ TkdfbGVuZ3RoKG9zKSA8PCAiKSIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgaWYgKG9zKSB7Ci1AQCAtMTM4NSwxMSArMTQ0OSwxOSBAQCBpbnQgWHJk Q3J5cHRvc3NsWDUwOUNoZWNrUHJveHkzKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZE91Y1N0cmlu ZyAmZW1zZykgewotICAgIH0KLSAgICBUUkFDRShBTEwsImNlcnRpZmljYXRlIGhhcyAiPDxudW1l eHQ8PCIgZXh0ZW5zaW9ucyIpOwotIAotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0 MDAwMDAwMEwKLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0 IFg1MDlfRVhURU5TSU9OICpleHQgPSAwOwotKyNlbmRpZgotICAgIFBST1hZX0NFUlRfSU5GT19F WFRFTlNJT04gKnBjaSA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1leHQ7IGkrKykg ewotICAgICAgIC8vIEdldCB0aGUgZXh0ZW5zaW9uCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1C RVIgPCAweDQwMDAwMDAwTAotICAgICAgIFg1MDlfRVhURU5TSU9OICp4ZXh0ID0gWDUwOV9nZXRf ZXh0KGNlcnQsIGkpOwotKyNlbHNlCi0rICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKnhleHQg PSBYNTA5X2dldF9leHQoY2VydCwgaSk7Ci0rI2VuZGlmCi0gICAgICAgLy8gV2UgYXJlIGxvb2tp bmcgZm9yIGdzaVByb3h5Q2VydEluZm9fT0lEICAgICAoIjEuMy42LjEuNS41LjcuMS4xNCIpCi0g ICAgICAgLy8gICAgICAgICAgICAgICAgIG9yIGdzaVByb3h5Q2VydEluZm9fT0xEX09JRCAoIjEu My42LjEuNC4xLjM1MzYuMS4yMjIiKQotICAgICAgIGNoYXIgc1syNTZdOwotQEAgLTEzOTksOCAr MTQ3MSw4IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5Q2hlY2tQcm94eTMoWHJkQ3J5cHRvWDUwOSAq eGNwaSwgWHJkT3VjU3RyaW5nICZlbXNnKSB7Ci0gICAgICAgICAgaWYgKGV4dCA9PSAwKSB7Ci0g ICAgICAgICAgICAgZXh0ID0geGV4dDsKLSAgICAgICAgICAgICAvLyBOb3cgZ2V0IHRoZSBleHRl bnNpb24KLS0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0 X2RhdGEoZXh0KS0+ZGF0YTsKLS0gICAgICAgICAgICBwY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZP X0VYVEVOU0lPTigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lP Tl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNo YXIgKnAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0 KSk7Ci0rICAgICAgICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwg JnAsIEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0g ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBQUklOVCgiV0FSTklORzogbXVsdGlwbGUg cHJveHlDZXJ0SW5mbyBleHRlbnNpb25zIGZvdW5kOiB0YWtpbmcgdGhlIGZpcnN0Iik7Ci0gICAg ICAgICAgfQotQEAgLTE0MDgsOCArMTQ4MCw4IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5Q2hlY2tQ cm94eTMoWHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkT3VjU3RyaW5nICZlbXNnKSB7Ci0gICAgICAg ICAgaWYgKGV4dCA9PSAwKSB7Ci0gICAgICAgICAgICAgZXh0ID0geGV4dDsKLSAgICAgICAgICAg ICAvLyBOb3cgZ2V0IHRoZSBleHRlbnNpb24KLS0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpw ID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YTsKLS0gICAgICAgICAgICBwY2kg PSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgKGNvbnN0IHVuc2lnbmVkIGNo YXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAg ICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCkpOwotKyAgICAgICAgICAgIHBjaSA9IGQyaV9QUk9Y WV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg ICAgIFBSSU5UKCJXQVJOSU5HOiBtdWx0aXBsZSBwcm94eUNlcnRJbmZvIGV4dGVuc2lvbnMgZm91 bmQ6IHRha2luZyB0aGUgZmlyc3QiKTsKLSAgICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvc3JjL1hy ZFRscy9YcmRUbHNOb3RhcnlVdGlscy5pY2MgYi9zcmMvWHJkVGxzL1hyZFRsc05vdGFyeVV0aWxz LmljYwotaW5kZXggNDQxMjVkOTg4Li4zZGVkNGY5OTMgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkVGxz L1hyZFRsc05vdGFyeVV0aWxzLmljYwotKysrIGIvc3JjL1hyZFRscy9YcmRUbHNOb3RhcnlVdGls cy5pY2MKLUBAIC01Niw4ICs1Niw4IEBAIFNPRlRXQVJFLgotICovCi0gc3RhdGljIEhvc3RuYW1l VmFsaWRhdGlvblJlc3VsdCBtYXRjaGVzX2NvbW1vbl9uYW1lKGNvbnN0IGNoYXIgKmhvc3RuYW1l LCBjb25zdCBYNTA5ICpzZXJ2ZXJfY2VydCkgewotICAgICAgICAgaW50IGNvbW1vbl9uYW1lX2xv YyA9IC0xOwotLSAgICAgICAgWDUwOV9OQU1FX0VOVFJZICpjb21tb25fbmFtZV9lbnRyeSA9IE5V TEw7Ci0tICAgICAgICBBU04xX1NUUklORyAqY29tbW9uX25hbWVfYXNuMSA9IE5VTEw7Ci0rICAg ICAgICBjb25zdCBYNTA5X05BTUVfRU5UUlkgKmNvbW1vbl9uYW1lX2VudHJ5ID0gTlVMTDsKLSsg ICAgICAgIGNvbnN0IEFTTjFfU1RSSU5HICpjb21tb25fbmFtZV9hc24xID0gTlVMTDsKLSAgICAg ICAgIGNoYXIgKmNvbW1vbl9uYW1lX3N0ciA9IE5VTEw7Ci0gCi0gICAgICAgICAvLyBGaW5kIHRo ZSBwb3NpdGlvbiBvZiB0aGUgQ04gZmllbGQgaW4gdGhlIFN1YmplY3QgZmllbGQgb2YgdGhlIGNl cnRpZmljYXRlCi1kaWZmIC0tZ2l0IGEvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5jYyBiL3NyYy9Y cmRWb21zL1hyZFZvbXNGdW4uY2MKLWluZGV4IGE0YmM5YjhiNy4uZmU2ZThlYmI3IDEwMDY0NAot LS0tIGEvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5jYwotKysrIGIvc3JjL1hyZFZvbXMvWHJkVm9t c0Z1bi5jYwotQEAgLTExMCw3ICsxMTAsNyBAQCBYcmRWb21zRnVuOjpYcmRWb21zRnVuKFhyZFN5 c0Vycm9yICZlcnApCi0gICAKLSAvLyBGdW5jdGlvbiB0byBjb252ZXJ0IFg1MDlfTkFNRSBpbnRv IGEgb25lLWxpbmUgaHVtYW4gcmVhZGFibGUgc3RyaW5nCi0gLy8KLS12b2lkIFhyZFZvbXNGdW46 Ok5hbWVPbmVMaW5lKFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcykKLSt2b2lkIFhyZFZv bXNGdW46Ok5hbWVPbmVMaW5lKGNvbnN0IFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcykK LSB7Ci0gICAgQklPICptYmlvID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0gICAgWDUwOV9OQU1F X3ByaW50X2V4KG1iaW8sIG5tLCAwLCBYTl9GTEFHX0NPTVBBVCk7Ci1kaWZmIC0tZ2l0IGEvc3Jj L1hyZFZvbXMvWHJkVm9tc0Z1bi5oaCBiL3NyYy9YcmRWb21zL1hyZFZvbXNGdW4uaGgKLWluZGV4 IGZmNWRmNThlZi4uNWMxMTI5YWI4IDEwMDY0NAotLS0tIGEvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1 bi5oaAotKysrIGIvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5oaAotQEAgLTY1LDcgKzY1LDcgQEAg aW50ICBWT01TSW5pdChjb25zdCBjaGFyICpjZmcpOwotIHByaXZhdGU6Ci0gCi0gdm9pZCBGbXRF eHRyYWN0KFhyZE91Y1N0cmluZyAmb3V0LCBYcmRPdWNTdHJpbmcgaW4sIGNvbnN0IGNoYXIgKnRh Zyk7Ci0tdm9pZCBOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpOwot K3ZvaWQgTmFtZU9uZUxpbmUoY29uc3QgWDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZzKTsK LSB2b2lkIEZtdFJlcGxhY2UoWHJkU2VjRW50aXR5ICZlbnQpOwotIAotIC8vIFRoZXNlIHNldHRp bmdzIGFyZSBjb25maWd1cmFibGUKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDAyLVhy ZENyeXB0by1QcmVzZXJ2ZS1BQkkucGF0Y2ggYi8wMDAyLVhyZENyeXB0by1QcmVzZXJ2ZS1BQkku cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyYWE3YTUuLjAwMDAwMDAKLS0t IGEvMDAwMi1YcmRDcnlwdG8tUHJlc2VydmUtQUJJLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzAgKzAsMCBAQAotRnJvbSAwOWE5ODM3M2JjNDQyZDUxNWYzNDc1OTNjMTEzODQyNzMzZWE2MGI3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMu ZWxsZXJ0QHBoeXNpY3MudXUuc2U+Ci1EYXRlOiBTYXQsIDIzIE1heSAyMDI2IDIwOjU5OjA0ICsw MjAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBbWHJkQ3J5cHRvXSBQcmVzZXJ2ZSBBQkkKLQotQWRk IGJhY2sgbm93IHVudXNlZCBub24tY29uc3QgdmVyc2lvbiBvZiBmdW5jdGlvbgotLS0tCi0gc3Jj L1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguY2MgfCA5ICsrKysrKysrKwotIDEgZmlsZSBjaGFu Z2VkLCA5IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5 cHRvc3NsQXV4LmNjIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguY2MKLWluZGV4IGE0 NDI4Mzk4NS4uZTBjZTM1Mjg1IDEwMDY0NAotLS0tIGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9z c2xBdXguY2MKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjCi1AQCAtNzU1 LDMgKzc1NSwxMiBAQCB2b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKGNvbnN0IFg1MDlfTkFN RSAqbm0sIFhyZE91Y1N0cmluZyAmcykKLSAgICAvLyBEb25lCi0gICAgcmV0dXJuOwotIH0KLSsK LSsvL19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KLSt2b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKFg1 MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcykKLSt7Ci0rICAgLy8gQ29weSBvZiBhYm92ZSBm dW5jdGlvbiB3aXRoIG5vbi1jb25zdCBmaXJzdCBhcmd1bWVudAotKyAgIC8vIFRoaXMgZnVuY3Rp b24gaXMgdW51c2VkIC0tIG9ubHkgYWRkZWQgdG8gcHJlc2VydmUgb2xkIEFCSQotKyAgIC8vIENh biBiZSByZW1vdmVkIGlmIHNvbmFtZSBjaGFuZ2VzCi0rICAgWHJkQ3J5cHRvc3NsTmFtZU9uZUxp bmUoY29uc3RfY2FzdDxjb25zdCBYNTA5X05BTUUgKj4obm0pLCBzKTsKLSt9Ci0tLSAKLTIuNTQu MAotCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggMjE4MTZhYi4uZjY2OTgy NyAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIg KHhyb290ZC02LjAuMy50YXIuZ3opID0gOWYwNTE3ZGNlY2M2NzlmNWFhMzg1ODMxMTg0YzllYjkz YWQ3YWQyZDQyYmRhMTM0MGE5Y2FkYTdmNDQ0OTk4ZmVkMGEyMTI3MzgxNDJiZWFmM2RlNmMyZjI2 NjcwMTM3ODM5Y2E0OGNhOWFjNWFiN2Q1ODM0ZmViNWQzMDlhYTgKK1NIQTUxMiAoeHJvb3RkLTYu MS4wLnRhci5neikgPSBiZDQ3MWYzMjY3ZGU0YWE1MjBkMDkxY2FjYTVjNjMwYWRjNDI0ODFkYTFh ZDRkZTUzNGI1MTVlYzNjYjdmNGMzYjQyOGRiZGZkOTJlZDA1YmE4ODk3ODExMTUzYjI5ZWI0MjVi YzRhMDAyNTQ2YzgxOTk2YWVhZmQxMzg1ZDBjMgoKZGlmZiAtLWdpdCBhL3hyb290ZC5zcGVjIGIv eHJvb3RkLnNwZWMKaW5kZXggOTIxNWQ4MC4uODcyNjYxYyAxMDA2NDQKLS0tIGEveHJvb3RkLnNw ZWMKKysrIGIveHJvb3RkLnNwZWMKQEAgLTEzLDggKzEzLDggQEAKIAogTmFtZToJCXhyb290ZAog RXBvY2g6CQkxCi1WZXJzaW9uOgk2LjAuMwotUmVsZWFzZToJMyV7P2Rpc3R9CitWZXJzaW9uOgk2 LjEuMAorUmVsZWFzZToJMSV7P2Rpc3R9CiBTdW1tYXJ5OglFeHRlbmRlZCBST09UIGZpbGUgc2Vy dmVyCiBMaWNlbnNlOglMR1BMLTMuMC1vci1sYXRlciBBTkQgQlNELTItQ2xhdXNlIEFORCBCU0Qt My1DbGF1c2UgQU5EIGN1cmwgQU5EIE1JVCBBTkQgWmxpYiBBTkQgQXBhY2hlLTIuMCBBTkQgTVBM LTIuMAogVVJMOgkJaHR0cHM6Ly94cm9vdGQud2ViLmNlcm4uY2gKQEAgLTIzLDEwICsyMyw2IEBA IFNvdXJjZTE6CSV7bmFtZX0tc3lzdXNlcnMuY29uZgogCiAjCQlVbmJ1bmRsZSB0aW55eG1sIGxp YnJhcnkKIFBhdGNoMDoJCTAwMDEtVW5idW5kbGUtdGlueXhtbC5wYXRjaAotIwkJQWRhcHQgdG8g T3BlblNTTCA0Ci0jCQlodHRwczovL2dpdGh1Yi5jb20veHJvb3RkL3hyb290ZC9wdWxsLzI4MDIK LVBhdGNoMToJCTAwMDEtWHJkQ3J5cHRvLVhyZFRscy1YcmRWb21zLUFkYXB0LXRvLU9wZW5TU0wt NC4wLnBhdGNoCi1QYXRjaDI6CQkwMDAyLVhyZENyeXB0by1QcmVzZXJ2ZS1BQkkucGF0Y2gKIAog QnVpbGRSZXF1aXJlczoJY21ha2UKIEJ1aWxkUmVxdWlyZXM6CWdjYy1jKysKQEAgLTcyLDYgKzY4 LDcgQEAgQnVpbGRSZXF1aXJlczoJcHl0aG9uMy1zcGhpbngKIEJ1aWxkUmVxdWlyZXM6CWF0dHIK IEJ1aWxkUmVxdWlyZXM6CWN1cmwKIEJ1aWxkUmVxdWlyZXM6CWd0ZXN0LWRldmVsCitCdWlsZFJl cXVpcmVzOglqcQogQnVpbGRSZXF1aXJlczoJa3JiNS1zZXJ2ZXIKIEJ1aWxkUmVxdWlyZXM6CWty YjUtd29ya3N0YXRpb24KIEJ1aWxkUmVxdWlyZXM6CW9wZW5zc2wKQEAgLTI2NSw4ICsyNjIsNiBA QCBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIEFQSSBkb2N1bWVudGF0aW9uIG9mIHRoZSB4cm9v dGQgbGlicmFyaWVzLgogJXNldHVwIC1xCiAKICVwYXRjaCAtUDAgLXAxCi0lcGF0Y2ggLVAxIC1w MQotJXBhdGNoIC1QMiAtcDEKIAogJWJ1aWxkCiAlY21ha2UgXApAQCAtNTc5LDYgKzU3NCw3IEBA IGZpCiAle19saWJkaXJ9L2xpYlhyZE9mc1ByZXBHUEktNi5zbwogJXtfbGliZGlyfS9saWJYcmRP c3NBcmMtNi5zbwogJXtfbGliZGlyfS9saWJYcmRPc3NDc2ktNi5zbworJXtfbGliZGlyfS9saWJY cmRPc3NNaXJhZ2UtNi5zbwogJXtfbGliZGlyfS9saWJYcmRPc3NTSWdwZnNULTYuc28KICV7X2xp YmRpcn0vbGliWHJkT3NzU3RhdHMtNi5zbwogJXtfbGliZGlyfS9saWJYcmRQZmMtNi5zbwpAQCAt NjYxLDYgKzY1NywxMCBAQCBmaQogJWRvYyAle19wa2dkb2NkaXJ9CiAKICVjaGFuZ2Vsb2cKKyog VHVlIEp1biAyMyAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1 LnNlPiAtIDE6Ni4xLjAtMQorLSBVcGRhdGUgdG8gdmVyc2lvbiA2LjEuMAorLSBEcm9wIHBhdGNo ZXMgYWNjZXB0ZWQgdXBzdHJlYW0KKwogKiBTYXQgSnVuIDEzIDIwMjYgWWFha292IFNlbGtvd2l0 eiA8eXNlbGtvd2lAcmVkaGF0LmNvbT4gLSAxOjYuMC4zLTMKIC0gUmVidWlsdCBmb3Igb3BlbnNz bCA0LjAKIAo=