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] f44: Update to version 6.1.0 Date: Wed, 24 Jun 2026 05:08:22 GMT Message-ID: <178227770298.1.3535777213919176249.rpms-xrootd-fac6715ea9dd@fedoraproject.org> List-ID: X-Git-Repo: rpms/xrootd X-Git-Branch: f44 X-Git-Rev: fac6715ea9dd0e1faf8422f146d1275eeed6d0e7 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveHJvb3RkCiAgICAgICAgICAgIEJyYW5jaCA6IGY0NAogICAgICAgICAgICBD b21taXQgOiBmYWM2NzE1ZWE5ZGQwZTFmYWY4NDIyZjE0NmQxMjc1ZWVlZDZkMGU3CiAgICAgICAg ICAgIEF1dGhvciA6IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNl PgogICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA2LTI0VDA3OjA0OjI4KzAyOjAwCiAgICAgICAg ICAgIFN0YXRzICA6ICs5Ly02MDUgaW4gNCBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0 dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMveHJvb3RkL2MvZmFjNjcxNWVhOWRkMGUx ZmFmODQyMmYxNDZkMTI3NWVlZWQ2ZDBlNz9icmFuY2g9ZjQ0CgogICAgICAgICAgICBMb2c6CiAg ICAgICAgICAgIFVwZGF0ZSB0byB2ZXJzaW9uIDYuMS4wCgpEcm9wIHBhdGNoZXMgYWNjZXB0ZWQg dXBzdHJlYW0KCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1YcmRDcnlwdG8tWHJkVGxzLVhyZFZvbXMt QWRhcHQtdG8tT3BlblNTTC00LjAucGF0Y2ggYi8wMDAxLVhyZENyeXB0by1YcmRUbHMtWHJkVm9t cy1BZGFwdC10by1PcGVuU1NMLTQuMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZTQ2YWQ5ZS4uMDAwMDAwMAotLS0gYS8wMDAxLVhyZENyeXB0by1YcmRUbHMtWHJkVm9tcy1B ZGFwdC10by1PcGVuU1NMLTQuMC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU2NiArMCwwIEBA Ci1Gcm9tIDUzNGUxYWEyZWZkOGU1OTI3MWQyNDEwZGM0YTRkMzNhYjdiYzhlZDkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5 c2ljcy51dS5zZT4KLURhdGU6IFNhdCwgMjMgTWF5IDIwMjYgMTg6NTc6NTQgKzAyMDAKLVN1Ympl Y3Q6IFtQQVRDSCAxLzJdIFtYcmRDcnlwdG8vWHJkVGxzL1hyZFZvbXNdIEFkYXB0IHRvIE9wZW5T U0wgNC4wCi0KLS0tLQotIHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjICAgICB8ICAg NiArLQotIHNyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmhoICAgICB8ICAgMiArLQotIHNy Yy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOS5jYyAgICB8ICA0OCArKysrKy0tLS0KLSBzcmMv WHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDlDcmwuY2MgfCAgIDIgKy0KLSBzcmMvWHJkQ3J5cHRv L1hyZENyeXB0b3NzbGdzaUF1eC5jYyAgfCAxNDAgKysrKysrKysrKysrKysrKysrKystLS0tLS0t Ci0gc3JjL1hyZFRscy9YcmRUbHNOb3RhcnlVdGlscy5pY2MgICAgIHwgICA0ICstCi0gc3JjL1hy ZFZvbXMvWHJkVm9tc0Z1bi5jYyAgICAgICAgICAgIHwgICAyICstCi0gc3JjL1hyZFZvbXMvWHJk Vm9tc0Z1bi5oaCAgICAgICAgICAgIHwgICAyICstCi0gOCBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5z ZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5cHRv L1hyZENyeXB0b3NzbEF1eC5jYyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjCi1p bmRleCAzODkzYmMyYjQuLmE0NDI4Mzk4NSAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlwdG8vWHJk Q3J5cHRvc3NsQXV4LmNjCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5jYwot QEAgLTY5MSwxMyArNjkxLDEzIEBAIHRpbWVfdCBYcmRDcnlwdG9zc2xBU04xdG9VVEMoY29uc3Qg QVNOMV9USU1FICp0c24xKQotICAgIC8vIE91ciByZXN1bHQgaXMgaW4gYWdyZWVtZW50IHdpdGgg J2RhdGUgKyVzYC4gCi0gICAgc3RydWN0IHRtIGx0bTsKLSAgICBjaGFyIHp6OwotLSAgIGlmICgo c3NjYW5mKChjb25zdCBjaGFyICopKHRzbjEtPmRhdGEpLAotKyAgIGlmICgoc3NjYW5mKChjb25z dCBjaGFyICopIEFTTjFfU1RSSU5HX2dldDBfZGF0YSh0c24xKSwKLSAgICAgICAgIiUwMmQlMDJk JTAyZCUwMmQlMDJkJTAyZCVjIiwgCi0gICAgICAgICYobHRtLnRtX3llYXIpLCAmKGx0bS50bV9t b24pLCAmKGx0bS50bV9tZGF5KSwKLSAgICAgICAgJihsdG0udG1faG91ciksICYobHRtLnRtX21p biksICYobHRtLnRtX3NlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmenopICE9IDcpIHx8ICh6eiAhPSAnWicpKSB7Ci0gICAgICAgIC8vIFRyeSBHZW5lcmFsaXpl ZFRpbWUKLS0gICAgICAgaWYgKChzc2NhbmYoKGNvbnN0IGNoYXIgKikodHNuMS0+ZGF0YSksCi0r ICAgICAgIGlmICgoc3NjYW5mKChjb25zdCBjaGFyICopIEFTTjFfU1RSSU5HX2dldDBfZGF0YSh0 c24xKSwKLSAgICAgICAgICAgICIlMDRkJTAyZCUwMmQlMDJkJTAyZCUwMmQlYyIsIAotICAgICAg ICAgICAgJihsdG0udG1feWVhciksICYobHRtLnRtX21vbiksICYobHRtLnRtX21kYXkpLAotICAg ICAgICAgICAgJihsdG0udG1faG91ciksICYobHRtLnRtX21pbiksICYobHRtLnRtX3NlYyksCi1A QCAtNzMzLDcgKzczMyw3IEBAIHRpbWVfdCBYcmRDcnlwdG9zc2xBU04xdG9VVEMoY29uc3QgQVNO MV9USU1FICp0c24xKQotIH0gCi0gCi0gLy9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCi0tdm9pZCBYcmRD cnlwdG9zc2xOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpCi0rdm9p ZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShjb25zdCBYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJp bmcgJnMpCi0gewotICAgIC8vIEZ1bmN0aW9uIHRvIGNvbnZlcnQgWDUwOV9OQU1FIGludG8gYSBv bmUtbGluZSBodW1hbiByZWFkYWJsZSBzdHJpbmcKLSAKLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5 cHRvL1hyZENyeXB0b3NzbEF1eC5oaCBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4Lmho Ci1pbmRleCAzNmYzYWFkMWIuLmRlODUyYmUzZiAxMDA2NDQKLS0tLSBhL3NyYy9YcmRDcnlwdG8v WHJkQ3J5cHRvc3NsQXV4LmhoCi0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbEF1eC5o aAotQEAgLTc0LDcgKzc0LDcgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlQYXJzZVN0YWNrKFhyZFRs c1BlZXJDZXJ0cyogcGMsIFhyZENyeXB0b1g1MDlDaGFpbiAqY2hhaW4pOwotIHRpbWVfdCBYcmRD cnlwdG9zc2xBU04xdG9VVEMoY29uc3QgQVNOMV9USU1FICp0c24xKTsKLSAKLSAvLyBGdW5jdGlv biB0byBjb252ZXJ0IFg1MDlfTkFNRSBpbnRvIGEgb25lLWxpbmUgaHVtYW4gcmVhZGFibGUgc3Ry aW5nCi0tdm9pZCBYcmRDcnlwdG9zc2xOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBYcmRPdWNT dHJpbmcgJnMpOwotK3ZvaWQgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoY29uc3QgWDUwOV9OQU1F ICpubSwgWHJkT3VjU3RyaW5nICZzKTsKLSAKLSAvLwotIC8vIFg1MDkgcHJveHkgYXV4aWxsaWFy eSBmdW5jdGlvbnMKLWRpZmYgLS1naXQgYS9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDku Y2MgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDkuY2MKLWluZGV4IGJjYzc5Yzg5Yy4u ZDlkMmIxODJmIDEwMDY0NAotLS0tIGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xYNTA5LmNj Ci0rKysgYi9zcmMvWHJkQ3J5cHRvL1hyZENyeXB0b3NzbFg1MDkuY2MKLUBAIC0zNDAsNyArMzQw LDExIEBAIHZvaWQgWHJkQ3J5cHRvc3NsWDUwOTo6Q2VydFR5cGUoKQotICAgCi0gICAgYm9vbCBk b25lID0gMDsKLSAgICAvLyBDaGVjayB0aGUgZXh0ZW5zaW9ucwotKyNpZiBPUEVOU1NMX1ZFUlNJ T05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0ID0gMDsKLSsj ZWxzZQotKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleHQgPSAwOwotKyNlbmRpZgotICAgIGlu dCBpZHggPSAtMTsKLSAKLSAgICAvLyBGb3IgQ0FzIHdlIGFyZSBsb29raW5nIGZvciBhICJiYXNp Y0NvbnN0cmFpbnRzIgotQEAgLTY4NCw3ICs2ODgsMTEgQEAgWHJkQ3J5cHRvWDUwOWRhdGEgWHJk Q3J5cHRvc3NsWDUwOTo6R2V0RXh0ZW5zaW9uKGNvbnN0IGNoYXIgKm9pZCkKLSAKLSAgICAvLyBM b29wIHRvIGlkZW50aWZ5IHRoZSBvbmUgd2Ugd291bGQgbGlrZQotICAgIGludCBpID0gMDsKLSsj aWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9FWFRFTlNJ T04gKndleHQgPSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKndleHQgPSAw OwotKyNlbmRpZgotICAgIGZvciAoaSA9IDA7IGk8IG51bWV4dDsgaSsrKSB7Ci0gICAgICAgd2V4 dCA9IFg1MDlfZ2V0X2V4dChjZXJ0LCBpKTsKLSAgICAgICBpZiAodXNlbmlkKSB7Ci1AQCAtODIx LDcgKzgyOSwxMSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6RHVtcEV4dGVuc2lvbnMoYm9vbCBk dW1wdW5rbm93bikKLSAKLSAgICByYyA9IDE7Ci0gICAgLy8gR28gdGhyb3VnaCB0aGUgZXh0ZW5z aW9ucwotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5 X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9O ICp4cGlleHQgPSAwOwotKyNlbmRpZgotICAgIGludCBucGlleHQgPSBYNTA5X2dldF9leHRfY291 bnQoeHBpKTsKLSAgICBQUklOVCgiZm91bmQgIjw8bnBpZXh0PDwiIGV4dGVuc2lvbnMgIik7Ci0g ICAgaW50IGkgPSAwOwotQEAgLTgzNCw4ICs4NDYsOCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOTo6 RHVtcEV4dGVuc2lvbnMoYm9vbCBkdW1wdW5rbm93bikKLSAgICAgICBQUklOVChpIDw8ICI6IGZv dW5kIGV4dGVuc2lvbiAnIjw8czw8IicsIGNyaXRpY2FsOiAiIDw8IGNyaXQpOwotICAgICAgIC8v IER1bXAgaXRzIGNvbnRlbnQKLSAgICAgICByYyA9IDA7Ci0tICAgICAgY29uc3QgdW5zaWduZWQg Y2hhciAqcHAgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0 YSh4cGlleHQpLT5kYXRhOwotLSAgICAgIGxvbmcgbGVuZ3RoID0gWDUwOV9FWFRFTlNJT05fZ2V0 X2RhdGEoeHBpZXh0KS0+bGVuZ3RoOwotKyAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBwID0g QVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCkpOwot KyAgICAgIGxvbmcgbGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKHhwaWV4dCkpOwotICAgICAgIGludCByZXQgPSBGaWxsVW5rbm93bkV4dCgmcHAsIGxl bmd0aCwgZHVtcHVua25vd24pOwotICAgICAgIFBSSU5UKCJyZXQ6ICIgPDwgcmV0KTsKLSAgICB9 Ci1AQCAtOTU3LDEwICs5NjksMTAgQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxVbmtub3du RXh0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAgICAgICAg ICAgICBpbnQgaSwgcHJpbnRhYmxlID0gMTsKLSAgICAgICAgICAgICBvcHAgPSBvcDsKLSAgICAg ICAgICAgICBvcyA9IGQyaV9BU04xX09DVEVUX1NUUklORygwLCAmb3BwLCBsZW4gKyBobCk7Ci0t ICAgICAgICAgICAgaWYgKG9zICYmIG9zLT5sZW5ndGggPiAwKSB7Ci0tICAgICAgICAgICAgICAg b3BwID0gb3MtPmRhdGE7Ci0rICAgICAgICAgICAgaWYgKG9zICYmIEFTTjFfU1RSSU5HX2xlbmd0 aChvcykgPiAwKSB7Ci0rICAgICAgICAgICAgICAgb3BwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRh KG9zKTsKLSAgICAgICAgICAgICAgICAvKiB0ZXN0aW5nIHdoZXRoZXIgdGhlIG9jdGV0IHN0cmlu ZyBpcyAqIHByaW50YWJsZSAqLwotLSAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPG9zLT5sZW5n dGg7IGkrKykgewotKyAgICAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgQVNOMV9TVFJJTkdfbGVu Z3RoKG9zKTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgaWYgKCggKG9wcFtpXSA8ICcgJykg JiYgKG9wcFtpXSAhPSAnXG4nKSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgIChvcHBbaV0g IT0gJ1xyJykgJiYgKG9wcFtpXSAhPSAnXHQnKSkgfHwgKG9wcFtpXSA+ICd+JykpIHsKLSAgICAg ICAgICAgICAgICAgICAgICBwcmludGFibGUgPSAwOwotQEAgLTk2OSwxNiArOTgxLDE2IEBAIGlu dCBYcmRDcnlwdG9zc2xYNTA5OjpGaWxsVW5rbm93bkV4dChjb25zdCB1bnNpZ25lZCBjaGFyICoq cHAsIGxvbmcgbGVuZ3RoLCBib29sCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg IGlmIChwcmludGFibGUpIHsKLSAgICAgICAgICAgICAgICAgICAvKiBwcmludGFibGUgc3RyaW5n ICovCi0tICAgICAgICAgICAgICAgICAgY2hhciAqcyA9IG5ldyBjaGFyW29zLT5sZW5ndGggKyAx XTsKLS0gICAgICAgICAgICAgICAgICBtZW1jcHkocywgb3BwLCBvcy0+bGVuZ3RoKTsKLS0gICAg ICAgICAgICAgICAgICBzW29zLT5sZW5ndGhdID0gMDsKLS0gICAgICAgICAgICAgICAgICBpZiAo ZHVtcCkgUFJJTlQoIk9CSlM6IiA8PCBzIDw8ICIgKGxlbjogIjw8b3MtPmxlbmd0aDw8IikiKTsK LSsgICAgICAgICAgICAgICAgICBjaGFyICpzID0gbmV3IGNoYXJbQVNOMV9TVFJJTkdfbGVuZ3Ro KG9zKSArIDFdOwotKyAgICAgICAgICAgICAgICAgIG1lbWNweShzLCBvcHAsIEFTTjFfU1RSSU5H X2xlbmd0aChvcykpOwotKyAgICAgICAgICAgICAgICAgIHNbQVNOMV9TVFJJTkdfbGVuZ3RoKG9z KV0gPSAwOwotKyAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiT0JKUzoiIDw8IHMg PDwgIiAobGVuOiAiIDw8IEFTTjFfU1RSSU5HX2xlbmd0aChvcykgPDwgIikiKTsKLSAgICAgICAg ICAgICAgICAgICBkZWxldGUgW10gczsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgICAgICAgIC8qIHByaW50IHRoZSBub3JtYWwgZHVtcCAqLwotICAgICAgICAgICAgICAg ICAgIGlmICghbmwpIFBSSU5UKCJPQkpTOiIpOwotICAgICAgICAgICAgICAgICAgIEJJTyAqbWVt ID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0tICAgICAgICAgICAgICAgICAgaWYgKEJJT19kdW1w X2luZGVudChtZW0sIChjb25zdCBjaGFyICopb3BwLCBvcy0+bGVuZ3RoLCBkdW1wX2luZGVudCkg PD0gMCkgewotKyAgICAgICAgICAgICAgICAgIGlmIChCSU9fZHVtcF9pbmRlbnQobWVtLCAoY29u c3QgY2hhciAqKW9wcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKG9zKSwgZHVtcF9pbmRlbnQpIDw9IDAp IHsKLSAgICAgICAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkVSUk9SOk9CSlM6IHBy b2JsZW1zIGR1bXBpbmcgdG8gQklPIik7Ci0gICAgICAgICAgICAgICAgICAgICAgQklPX2ZyZWUo bWVtKTsgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVuZDsK LUBAIC05OTksMTggKzEwMTEsMTggQEAgaW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxVbmtub3du RXh0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAgICAgICAg ICAgICBicyA9IGQyaV9BU04xX0lOVEVHRVIoMCwgJm9wcCwgbGVuK2hsKTsKLSAgICAgICAgICAg ICBpZiAoYnMpIHsKLSAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkFJTlQ6Iik7Ci0t ICAgICAgICAgICAgICAgaWYgKGJzLT50eXBlID09IFZfQVNOMV9ORUdfSU5URUdFUikKLSsgICAg ICAgICAgICAgICBpZiAoQVNOMV9TVFJJTkdfdHlwZShicykgPT0gVl9BU04xX05FR19JTlRFR0VS KQotICAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiLSIpOwotICAgICAgICAgICAg ICAgIEJJTyAqbWVtID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0tICAgICAgICAgICAgICAgZm9y IChpID0gMDsgaSA8IGJzLT5sZW5ndGg7IGkrKykgewotLSAgICAgICAgICAgICAgICAgIGlmIChC SU9fcHJpbnRmKG1lbSwgIiUwMlgiLCBicy0+ZGF0YVtpXSkgPD0gMCkgewotKyAgICAgICAgICAg ICAgIGZvciAoaSA9IDA7IGkgPCBBU04xX1NUUklOR19sZW5ndGgoYnMpOyBpKyspIHsKLSsgICAg ICAgICAgICAgICAgICBpZiAoQklPX3ByaW50ZihtZW0sICIlMDJYIiwgQVNOMV9TVFJJTkdfZ2V0 MF9kYXRhKGJzKVtpXSkgPD0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQ UklOVCgiRVJST1I6QUlOVDogcHJvYmxlbXMgcHJpbnRmLWluZyB0byBCSU8iKTsKLSAgICAgICAg ICAgICAgICAgICAgICBCSU9fZnJlZShtZW0pOyAKLSAgICAgICAgICAgICAgICAgICAgICBnb3Rv IGVuZDsKLSAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgIGlmIChkdW1wKSB7IEJJT19QUklOVChtZW0sICJBSU5UOiIpOyB9Ci0tICAgICAgICAg ICAgICAgaWYgKGJzLT5sZW5ndGggPT0gMCkgUFJJTlQoIjAwIik7Ci0rICAgICAgICAgICAgICAg aWYgKEFTTjFfU1RSSU5HX2xlbmd0aChicykgPT0gMCkgUFJJTlQoIjAwIik7Ci0gICAgICAgICAg ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkVSUk9SOkFJTlQ6 IEJBRCBJTlRFR0VSIik7Ci0gICAgICAgICAgICAgfQotQEAgLTEwMjMsMTggKzEwMzUsMTggQEAg aW50IFhyZENyeXB0b3NzbFg1MDk6OkZpbGxVbmtub3duRXh0KGNvbnN0IHVuc2lnbmVkIGNoYXIg KipwcCwgbG9uZyBsZW5ndGgsIGJvb2wKLSAgICAgICAgICAgICBicyA9IGQyaV9BU04xX0VOVU1F UkFURUQoMCwgJm9wcCwgbGVuK2hsKTsKLSAgICAgICAgICAgICBpZiAoYnMpIHsKLSAgICAgICAg ICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkFFTlU6Iik7Ci0tICAgICAgICAgICAgICAgaWYgKGJz LT50eXBlID09IFZfQVNOMV9ORUdfRU5VTUVSQVRFRCkKLSsgICAgICAgICAgICAgICBpZiAoQVNO MV9TVFJJTkdfdHlwZShicykgPT0gVl9BU04xX05FR19FTlVNRVJBVEVEKQotICAgICAgICAgICAg ICAgICAgIGlmIChkdW1wKSBQUklOVCgiLSIpOwotICAgICAgICAgICAgICAgIEJJTyAqbWVtID0g QklPX25ldyhCSU9fc19tZW0oKSk7Ci0tICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGJz LT5sZW5ndGg7IGkrKykgewotLSAgICAgICAgICAgICAgICAgIGlmIChCSU9fcHJpbnRmKG1lbSwg IiUwMlgiLCBicy0+ZGF0YVtpXSkgPD0gMCkgewotKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7 IGkgPCBBU04xX1NUUklOR19sZW5ndGgoYnMpOyBpKyspIHsKLSsgICAgICAgICAgICAgICAgICBp ZiAoQklPX3ByaW50ZihtZW0sICIlMDJYIiwgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGJzKVtpXSkg PD0gMCkgewotICAgICAgICAgICAgICAgICAgICAgIGlmIChkdW1wKSBQUklOVCgiRVJST1I6QUVO VTogcHJvYmxlbXMgcHJpbnRmLWluZyB0byBCSU8iKTsKLSAgICAgICAgICAgICAgICAgICAgICBC SU9fZnJlZShtZW0pOyAKLSAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVuZDsKLSAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChkdW1w KSB7IEJJT19QUklOVChtZW0sICJBRU5VOiIpOyB9Ci0tICAgICAgICAgICAgICAgaWYgKGJzLT5s ZW5ndGggPT0gMCkgUFJJTlQoIjAwIik7Ci0rICAgICAgICAgICAgICAgaWYgKEFTTjFfU1RSSU5H X2xlbmd0aChicykgPT0gMCkgUFJJTlQoIjAwIik7Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICAgICBpZiAoZHVtcCkgUFJJTlQoIkVSUk9SOkFFTlU6IEJBRCBFTlVNRVJBVEVE Iik7Ci0gICAgICAgICAgICAgfQotZGlmZiAtLWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRv c3NsWDUwOUNybC5jYyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOUNybC5jYwotaW5k ZXggNjFkZGFmODNjLi5jYzlmMzI0YmIgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkQ3J5cHRvL1hyZENy eXB0b3NzbFg1MDlDcmwuY2MKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsWDUwOUNy bC5jYwotQEAgLTEwNSw3ICsxMDUsNyBAQCBYcmRDcnlwdG9zc2xYNTA5Q3JsOjpYcmRDcnlwdG9z c2xYNTA5Q3JsKFhyZENyeXB0b1g1MDkgKmNhY2VydCkKLSAKLSAgICAvLyBCaW8gZm9yIGV4cG9y dGluZyB0aGUgZXh0ZW5zaW9uCi0gICAgQklPICpiZXh0ID0gQklPX25ldyhCSU9fc19tZW0oKSk7 Ci0tICAgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoY3JsZXh0 KTsKLSsgICBjb25zdCBBU04xX09CSkVDVCAqb2JqID0gWDUwOV9FWFRFTlNJT05fZ2V0X29iamVj dChjcmxleHQpOwotICAgIGkyYV9BU04xX09CSkVDVChiZXh0LCBvYmopOwotICAgIFg1MDlWM19F WFRfcHJpbnQoYmV4dCwgY3JsZXh0LCAwLCA0KTsKLSAgICAvLyBkYXRhIGxlbmd0aAotZGlmZiAt LWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjIGIvc3JjL1hyZENyeXB0 by9YcmRDcnlwdG9zc2xnc2lBdXguY2MKLWluZGV4IDhmNGI5MjljMS4uYTVkMjBlMWFmIDEwMDY0 NAotLS0tIGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xnc2lBdXguY2MKLSsrKyBiL3NyYy9Y cmRDcnlwdG8vWHJkQ3J5cHRvc3NsZ3NpQXV4LmNjCi1AQCAtMTY1LDEyICsxNjUsMTIgQEAgYm9v bCBYcmRDcnlwdG9zc2xQcm94eUNlcnRJbmZvKGNvbnN0IHZvaWQgKmV4dGRhdGEsIGludCAmcGF0 aGxlbiwgYm9vbCAqaGFzcG9saWMKLSAgICBPQkpfb2JqMnR4dChzLCBzaXplb2YocyksIFg1MDlf RVhURU5TSU9OX2dldF9vYmplY3QoZXh0KSwgMSk7Ci0gCi0gICAgLy8gTm93IGV4dHJhY3QgdGhl IHBhdGggbGVuZ3RoIGNvbnN0cmFpbnQsIGlmIGFueQotLSAgIHVuc2lnbmVkIGNoYXIgKnAgPSBY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhOwotKyAgIGNvbnN0IHVuc2lnbmVkIGNo YXIgKnAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0 KSk7Ci0gICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTiAqcGNpID0gMDsKLSAgICBpZiAoIXN0 cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09JRCkpCi0tICAgICAgcGNpID0gZDJpX1BST1hZX0NF UlRfSU5GT19FWFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9F WFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAgICBwY2kgPSBkMmlfUFJPWFlf Q0VSVF9JTkZPX0VYVEVOU0lPTigwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICBlbHNlIGlmICghc3RyY21wKHMsIGdzaVByb3h5Q2Vy dEluZm9fT0xEX09JRCkpCi0tICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJ T05fT0xEKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgmcCksIFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19F WFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0 X2RhdGEoZXh0KSkpOwotICAgIGlmICghcGNpKSB7Ci0gICAgICAgcmV0dXJuIDA7Ci0gICAgfQot QEAgLTIwOCwxMiArMjA4LDEyIEBAIHZvaWQgWHJkQ3J5cHRvc3NsU2V0UGF0aExlbkNvbnN0cmFp bnQodm9pZCAqZXh0ZGF0YSwgaW50IHBhdGhsZW4pCi0gICAgT0JKX29iajJ0eHQocywgc2l6ZW9m KHMpLCBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KGV4dCksIDEpOwotIAotICAgIC8vIE5vdyBl eHRyYWN0IHRoZSBwYXRoIGxlbmd0aCBjb25zdHJhaW50LCBpZiBhbnkKLS0gICB1bnNpZ25lZCBj aGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YTsKLSsgICBjb25zdCB1 bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dl dF9kYXRhKGV4dCkpOwotICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJT04gKnBjaSA9IDA7Ci0g ICAgaWYgKCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpKQotLSAgICAgIHBjaSA9IGQy aV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsIChjb25zdCB1bnNpZ25lZCBjaGFyICoqKSgm cCksIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7Ci0rICAgICAgcGNpID0g ZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgJnAsIEFTTjFfU1RSSU5HX2xlbmd0aChY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgZWxzZSBpZiAoIXN0cmNtcChzLCBn c2lQcm94eUNlcnRJbmZvX09MRF9PSUQpKQotLSAgICAgIHBjaSA9IGQyaV9QUk9YWV9DRVJUX0lO Rk9fRVhURU5TSU9OX09MRCgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOwotKyAgICAgIHBjaSA9IGQyaV9QUk9YWV9D RVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICBpZiAoIXBjaSkKLSAgICAgICByZXR1cm47Ci0g Ci1AQCAtNDE5LDE2ICs0MTksMzIgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlDcmVhdGVQcm94eShj b25zdCBjaGFyICpmbmMsIGNvbnN0IGNoYXIgKmZuaywKLSAgICAgICByZXR1cm4gLWtFcnJQWF9T ZXRBdHRyaWJ1dGU7Ci0gICAgfQotICAgIC8vIEV4dHJhY3QgZGF0YSBpbiBmb3JtYXQgZm9yIGV4 dGVuc2lvbgotLSAgIFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCA9IGkyZF9Q Uk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBjaSwgMCk7Ci0tICAgaWYgKCEoWDUwOV9FWFRFTlNJ T05fZ2V0X2RhdGEoZXh0KS0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopbWFsbG9jKFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCsxKSkpIHsKLSsgICBpbnQgbGVuID0gaTJkX1BS T1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLCAwKTsKLSsgICB1bnNpZ25lZCBjaGFyICpkYXRh ID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jKGxlbik7Ci0rICAgaWYgKCFkYXRhKSB7Ci0gICAg ICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsK LSAgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSAgICB9Ci0tICAgdW5zaWduZWQg Y2hhciAqcHAgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpLT5kYXRhOwotKyAgIHVuc2ln bmVkIGNoYXIgKnBwID0gZGF0YTsKLSAgICBpZiAoKGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5T SU9OKHBjaSwgJnBwKSkgPD0gMCkgewotICAgICAgIFBSSU5UKCJwcm9ibGVtIGNvbnZlcnRpbmcg ZGF0YSBmb3IgZXh0ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJuIC1rRXJyUFhfRXJyb3I7Ci0gICAg fQotKyAgIEFTTjFfT0NURVRfU1RSSU5HICpvcyA9IEFTTjFfT0NURVRfU1RSSU5HX25ldygpOwot KyAgIGlmICghb3MpIHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmll bGQgZm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwot KyAgIH0KLSsgICBpZiAoQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KG9zLCBkYXRhLCBsZW4pID09IDAp IHsKLSsgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVu c2lvbiIpOwotKyAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0KLSsgICBm cmVlKGRhdGEpOwotKyAgIGlmIChYNTA5X0VYVEVOU0lPTl9zZXRfZGF0YShleHQsIG9zKSA9PSAw KSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRl bnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0rICAg QVNOMV9TVFJJTkdfZnJlZShvcyk7Ci0gICAgLy8gQ3JlYXRlIGEgc3RhY2sKLSAgICBTVEFDS19P RihYNTA5X0VYVEVOU0lPTikgKmVzayA9IHNrX1g1MDlfRVhURU5TSU9OX25ld19udWxsKCk7Ci0g ICAgaWYgKCFlc2spIHsKLUBAIC01MDQsNyArNTIwLDExIEBAIGludCBYcmRDcnlwdG9zc2xYNTA5 Q3JlYXRlUHJveHkoY29uc3QgY2hhciAqZm5jLCBjb25zdCBjaGFyICpmbmssCi0gICAgfQotIAot ICAgIC8vIEZpcnN0IGR1cGxpY2F0ZSB0aGUgZXh0ZW5zaW9ucyBvZiB0aGUgRUUgY2VydGlmaWNh dGUKLSsjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9F WFRFTlNJT04gKnhFRUNleHQgPSAwOwotKyNlbHNlCi0rICAgY29uc3QgWDUwOV9FWFRFTlNJT04g KnhFRUNleHQgPSAwOwotKyNlbmRpZgotICAgIGludCBuRUVDZXh0ID0gWDUwOV9nZXRfZXh0X2Nv dW50KHhFRUMpOwotICAgIERFQlVHKCJudW1iZXIgb2YgZXh0ZW5zaW9ucyBmb3VuZCBpbiB0aGUg b3JpZ2luYWwgY2VydGlmaWNhdGU6ICI8PCBuRUVDZXh0KTsKLSAgICBpbnQgaSA9IDA7Ci1AQCAt NzU2LDcgKzc3NiwxMSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUNyZWF0ZVByb3h5UmVxKFhyZENy eXB0b1g1MDkgKnhjcGksCi0gICAgfQotICAgIC8vCi0gICAgLy8gR2V0IHNpZ25hdHVyZSBwYXRo IGRlcHRoIGZyb20gcHJlc2VudCBwcm94eQotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwg MHg0MDAwMDAwMEwKLSAgICBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsjZWxzZQotKyAg IGNvbnN0IFg1MDlfRVhURU5TSU9OICp4cGlleHQgPSAwOwotKyNlbmRpZgotICAgIGludCBucGll eHQgPSBYNTA5X2dldF9leHRfY291bnQoeHBpKTsKLSAgICBpbnQgaSA9IDA7Ci0gICAgYm9vbCBo YXNrZXl1c2FnZSA9IDA7Ci1AQCAtNzcyLDEyICs3OTYsMTIgQEAgaW50IFhyZENyeXB0b3NzbFg1 MDlDcmVhdGVQcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLAotICAgICAgIC8vIEdldCBzaWdu YXR1cmUgcGF0aCBkZXB0aCBmcm9tIHByZXNlbnQgcHJveHkKLSAgICAgICBpZiAoIXN0cmNtcChz LCBnc2lQcm94eUNlcnRJbmZvX09JRCkgfHwKLSAgICAgICAgICAgIXN0cmNtcChzLCBnc2lQcm94 eUNlcnRJbmZvX09MRF9PSUQpKSB7Ci0tICAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9IFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKHhwaWV4dCktPmRhdGE7Ci0rICAgICAgICAgY29uc3QgdW5zaWdu ZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0 YSh4cGlleHQpKTsKLSAgICAgICAgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OICppbnBjaSA9 IDA7Ci0gICAgICAgICAgaWYgKCFzdHJjbXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpKQotLSAg ICAgICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+ bGVuZ3RoKTsKLSsgICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5T SU9OKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBp ZXh0KSkpOwotICAgICAgICAgIGVsc2UKLS0gICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9D RVJUX0lORk9fRVhURU5TSU9OX09MRCgwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBY NTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpLT5sZW5ndGgpOwotKyAgICAgICAgICAgIGlu cGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklO R19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KSkpOwotICAgICAgICAgIGlm IChpbnBjaSAmJgotICAgICAgICAgICAgICBpbnBjaS0+cGNQYXRoTGVuZ3RoQ29uc3RyYWludCkK LSAgICAgICAgICAgICBpbmRlcHRobGVuID0gQVNOMV9JTlRFR0VSX2dldChpbnBjaS0+cGNQYXRo TGVuZ3RoQ29uc3RyYWludCk7Ci1AQCAtODIzLDE2ICs4NDcsMzIgQEAgaW50IFhyZENyeXB0b3Nz bFg1MDlDcmVhdGVQcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLAotICAgICAgIHJldHVybiAt a0VyclBYX05vUmVzb3VyY2VzOwotICAgIH0KLSAgICAvLyBFeHRyYWN0IGRhdGEgaW4gZm9ybWF0 IGZvciBleHRlbnNpb24KLS0gICBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5s ZW5ndGggPSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCksIDApOwotLSAg IGlmICghKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5nZXQoKSktPmRhdGEgPSAodW5zaWdu ZWQgY2hhciAqKW1hbGxvYyhYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQuZ2V0KCkpLT5sZW5n dGgrMSkpKSB7Ci0rICAgaW50IGxlbiA9IGkyZF9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKHBj aS5nZXQoKSwgMCk7Ci0rICAgdW5zaWduZWQgY2hhciAqZGF0YSA9ICh1bnNpZ25lZCBjaGFyICop IG1hbGxvYyhsZW4pOwotKyAgIGlmICghZGF0YSkgewotICAgICAgIFBSSU5UKCJjb3VsZCBub3Qg YWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0gICAgICAgcmV0dXJuIC1rRXJy UFhfTm9SZXNvdXJjZXM7Ci0gICAgfQotLSAgIHVuc2lnbmVkIGNoYXIgKnBwID0gWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+ZGF0YTsKLSsgICB1bnNpZ25lZCBjaGFyICpwcCA9 IGRhdGE7Ci0gICAgaWYgKChpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCks ICZwcCkpIDw9IDApIHsKLSAgICAgICBQUklOVCgicHJvYmxlbSBjb252ZXJ0aW5nIGRhdGEgZm9y IGV4dGVuc2lvbiIpOwotICAgICAgIHJldHVybiAta0VyclBYX0Vycm9yOwotICAgIH0KLSsgICBB U04xX09DVEVUX1NUUklORyAqb3MgPSBBU04xX09DVEVUX1NUUklOR19uZXcoKTsKLSsgICBpZiAo IW9zKSB7Ci0rICAgICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBl eHRlbnNpb24iKTsKLSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0r ICAgaWYgKEFTTjFfT0NURVRfU1RSSU5HX3NldChvcywgZGF0YSwgbGVuKSA9PSAwKSB7Ci0rICAg ICAgUFJJTlQoImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGZpZWxkIGZvciBleHRlbnNpb24iKTsK LSsgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsKLSsgICB9Ci0rICAgZnJlZShkYXRh KTsKLSsgICBpZiAoWDUwOV9FWFRFTlNJT05fc2V0X2RhdGEoZXh0LmdldCgpLCBvcykgPT0gMCkg ewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5z aW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAgIEFT TjFfU1RSSU5HX2ZyZWUob3MpOwotICAgIHBjaSA9IG51bGxwdHI7Ci0gCi0gICAgLy8gU2V0IGV4 dGVuc2lvbiBuYW1lLgotQEAgLTEwMzAsNyArMTA3MCwxMSBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUw OVNpZ25Qcm94eVJlcShYcmRDcnlwdG9YNTA5ICp4Y3BpLCBYcmRDcnlwdG9SU0EgKmtjcGksCi0g Ci0gICAgLy8KLSAgICAvLyBHZXQgc2lnbmF0dXJlIHBhdGggZGVwdGggZnJvbSBpbnB1dCBwcm94 eQotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwKLSAgICBYNTA5X0VY VEVOU0lPTiAqeHBpZXh0ID0gMCwgKnhyaWV4dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5 X0VYVEVOU0lPTiAqeHBpZXh0ID0gMCwgKnhyaWV4dCA9IDA7Ci0rI2VuZGlmCi0gICAgaW50IG5w aWV4dCA9IFg1MDlfZ2V0X2V4dF9jb3VudCh4cGkpOwotICAgIGludCBpID0gMDsKLSAgICBib29s IGhhc2tleXVzYWdlID0gMDsKLUBAIC0xMDM4LDE3ICsxMDgyLDE3IEBAIGludCBYcmRDcnlwdG9z c2xYNTA5U2lnblByb3h5UmVxKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZENyeXB0b1JTQSAqa2Nw aSwKLSAgICBmb3IgKGkgPSAwOyBpPCBucGlleHQ7IGkrKykgewotICAgICAgIHhwaWV4dCA9IFg1 MDlfZ2V0X2V4dCh4cGksIGkpOwotICAgICAgIGNoYXIgc1syNTZdID0gezB9OwotLSAgICAgIEFT TjFfT0JKRUNUICpvYmogPSBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KHhwaWV4dCk7Ci0rICAg ICAgY29uc3QgQVNOMV9PQkpFQ1QgKm9iaiA9IFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoeHBp ZXh0KTsKLSAgICAgICBpZiAob2JqKQotICAgICAgICAgIE9CSl9vYmoydHh0KHMsIHNpemVvZihz KSwgb2JqLCAxKTsKLSAgICAgICBpZiAoIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09JRCkg fHwKLSAgICAgICAgICAgIXN0cmNtcChzLCBnc2lQcm94eUNlcnRJbmZvX09MRF9PSUQpKSB7Ci0t ICAgICAgICAgdW5zaWduZWQgY2hhciAqcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhwaWV4 dCktPmRhdGE7Ci0rICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IEFTTjFfU1RSSU5H X2dldDBfZGF0YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4cGlleHQpKTsKLSAgICAgICAgICBQ Uk9YWV9DRVJUX0lORk9fRVhURU5TSU9OICppbnBjaSA9IDA7Ci0gICAgICAgICAgaWYgKCFzdHJj bXAocywgZ3NpUHJveHlDZXJ0SW5mb19PSUQpKQotLSAgICAgICAgICAgIGlucGNpID0gZDJpX1BS T1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwg WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICAgICBp bnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKDAsICZwLCBBU04xX1NUUklOR19s ZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBpZXh0KSkpOwotICAgICAgICAgIGVsc2UK LS0gICAgICAgICAgICBpbnBjaSA9IGQyaV9QUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OX09MRCgw LCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YSh4 cGlleHQpLT5sZW5ndGgpOwotKyAgICAgICAgICAgIGlucGNpID0gZDJpX1BST1hZX0NFUlRfSU5G T19FWFRFTlNJT05fT0xEKDAsICZwLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05f Z2V0X2RhdGEoeHBpZXh0KSkpOwotICAgICAgICAgIGlmIChpbnBjaSAmJgotICAgICAgICAgICAg ICBpbnBjaS0+cGNQYXRoTGVuZ3RoQ29uc3RyYWludCkKLSAgICAgICAgICAgICBpbmRlcHRobGVu ID0gQVNOMV9JTlRFR0VSX2dldChpbnBjaS0+cGNQYXRoTGVuZ3RoQ29uc3RyYWludCk7Ci1AQCAt MTEwMSw5ICsxMTQ1LDkgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlTaWduUHJveHlSZXEoWHJkQ3J5 cHRvWDUwOSAqeGNwaSwgWHJkQ3J5cHRvUlNBICprY3BpLAotICAgIC8vIEdldCB0aGUgY29udGVu dAotICAgIGludCByZXFkZXB0aGxlbiA9IC0xOwotICAgIGlmICh4cmlleHQpIHsKLS0gICAgICB1 bnNpZ25lZCBjaGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHJpZXh0KS0+ZGF0YTsK LSsgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKHhyaWV4dCkpOwotICAgICAgIFBST1hZX0NFUlRfSU5GT19F WFRFTlNJT04gKnJlcXBjaSA9Ci0tICAgICAgICAgZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJ T04oMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiopKCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2Rh dGEoeHJpZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVO U0lPTigwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKHhy aWV4dCkpKTsKLSAgICAgICBpZiAocmVxcGNpICYmCi0gICAgICAgICAgIHJlcXBjaS0+cGNQYXRo TGVuZ3RoQ29uc3RyYWludCkKLSAgICAgICAgICByZXFkZXB0aGxlbiA9IEFTTjFfSU5URUdFUl9n ZXQocmVxcGNpLT5wY1BhdGhMZW5ndGhDb25zdHJhaW50KTsKLUBAIC0xMTQwLDE2ICsxMTg0LDMy IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5U2lnblByb3h5UmVxKFhyZENyeXB0b1g1MDkgKnhjcGks IFhyZENyeXB0b1JTQSAqa2NwaSwKLSAgICAgICByZXR1cm4gLWtFcnJQWF9Ob1Jlc291cmNlczsK LSAgICB9Ci0gICAgLy8gRXh0cmFjdCBkYXRhIGluIGZvcm1hdCBmb3IgZXh0ZW5zaW9uCi0tICAg WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+bGVuZ3RoID0gaTJkX1BST1hZX0NF UlRfSU5GT19FWFRFTlNJT04ocGNpLmdldCgpLCAwKTsKLS0gICBpZiAoIShYNTA5X0VYVEVOU0lP Tl9nZXRfZGF0YShleHQuZ2V0KCkpLT5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKiltYWxsb2MoWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0LmdldCgpKS0+bGVuZ3RoKzEpKSkgewotKyAgIGludCBs ZW4gPSBpMmRfUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTihwY2kuZ2V0KCksIDApOwotKyAgIHVu c2lnbmVkIGNoYXIgKmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBtYWxsb2MobGVuKTsKLSsgICBp ZiAoIWRhdGEpIHsKLSAgICAgICBQUklOVCgiY291bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQg Zm9yIGV4dGVuc2lvbiIpOwotICAgICAgIHJldHVybiAta0VyclBYX05vUmVzb3VyY2VzOwotICAg IH0KLS0gICB1bnNpZ25lZCBjaGFyICpwcCA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dC5n ZXQoKSktPmRhdGE7Ci0rICAgdW5zaWduZWQgY2hhciAqcHAgPSBkYXRhOwotICAgIGlmICgoaTJk X1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04ocGNpLmdldCgpLCAmcHApKSA8PSAwKSB7Ci0gICAg ICAgUFJJTlQoInByb2JsZW0gY29udmVydGluZyBkYXRhIGZvciBleHRlbnNpb24iKTsKLSAgICAg ICByZXR1cm4gLWtFcnJQWF9FcnJvcjsKLSAgICB9Ci0rICAgQVNOMV9PQ1RFVF9TVFJJTkcgKm9z ID0gQVNOMV9PQ1RFVF9TVFJJTkdfbmV3KCk7Ci0rICAgaWYgKCFvcykgewotKyAgICAgIFBSSU5U KCJjb3VsZCBub3QgYWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAgICAg cmV0dXJuIC1rRXJyUFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAgIGlmIChBU04xX09DVEVUX1NU UklOR19zZXQob3MsIGRhdGEsIGxlbikgPT0gMCkgewotKyAgICAgIFBSSU5UKCJjb3VsZCBub3Qg YWxsb2NhdGUgZGF0YSBmaWVsZCBmb3IgZXh0ZW5zaW9uIik7Ci0rICAgICAgcmV0dXJuIC1rRXJy UFhfTm9SZXNvdXJjZXM7Ci0rICAgfQotKyAgIGZyZWUoZGF0YSk7Ci0rICAgaWYgKFg1MDlfRVhU RU5TSU9OX3NldF9kYXRhKGV4dC5nZXQoKSwgb3MpID09IDApIHsKLSsgICAgICBQUklOVCgiY291 bGQgbm90IGFsbG9jYXRlIGRhdGEgZmllbGQgZm9yIGV4dGVuc2lvbiIpOwotKyAgICAgIHJldHVy biAta0VyclBYX05vUmVzb3VyY2VzOwotKyAgIH0KLSsgICBBU04xX1NUUklOR19mcmVlKG9zKTsK LSAgICBwY2kgPSBudWxscHRyOwotIAotICAgIC8vIFNldCBleHRlbnNpb24gbmFtZS4KLUBAIC0x MjE1LDcgKzEyNzUsMTEgQEAgaW50IFhyZENyeXB0b3NzbFg1MDlHZXRWT01TQXR0cihYcmRDcnlw dG9YNTA5ICp4Y3BpLCBYcmRPdWNTdHJpbmcgJnZhdCkKLSAgICByYyA9IDE7Ci0gICAgYm9vbCBn ZXR2YXQgPSAwOwotICAgIC8vIEdvIHRocm91Z2ggdGhlIGV4dGVuc2lvbnMKLSsjaWYgT1BFTlNT TF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMCi0gICAgWDUwOV9FWFRFTlNJT04gKnhwaWV4 dCA9IDA7Ci0rI2Vsc2UKLSsgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqeHBpZXh0ID0gMDsKLSsj ZW5kaWYKLSAgICBpbnQgbnBpZXh0ID0gWDUwOV9nZXRfZXh0X2NvdW50KHhwaSk7Ci0gICAgaW50 IGkgPSAwOwotICAgIGZvciAoaSA9IDA7IGk8IG5waWV4dDsgaSsrKSB7Ci1AQCAtMTIyNyw4ICsx MjkxLDggQEAgaW50IFhyZENyeXB0b3NzbFg1MDlHZXRWT01TQXR0cihYcmRDcnlwdG9YNTA5ICp4 Y3BpLCBYcmRPdWNTdHJpbmcgJnZhdCkKLSAgICAgICBpZiAoc3RyY21wKHMsIFhSREdTSV9WT01T X0FDU0VRX09JRCkpIGNvbnRpbnVlOwotICAgICAgIC8vIFRoaXMgaXMgdGhlIFZPTVMgZXh0ZW5z aW9uIHdlIGFyZSBpbnRlcmVzdGVkIGZvcgotICAgICAgIHJjID0gMDsKLS0gICAgICBjb25zdCB1 bnNpZ25lZCBjaGFyICpwcCA9IChjb25zdCB1bnNpZ25lZCBjaGFyICopIFg1MDlfRVhURU5TSU9O X2dldF9kYXRhKHhwaWV4dCktPmRhdGE7Ci0tICAgICAgbG9uZyBsZW5ndGggPSBYNTA5X0VYVEVO U0lPTl9nZXRfZGF0YSh4cGlleHQpLT5sZW5ndGg7Ci0rICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqcHAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoeHBp ZXh0KSk7Ci0rICAgICAgbG9uZyBsZW5ndGggPSBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRF TlNJT05fZ2V0X2RhdGEoeHBpZXh0KSk7Ci0gICAgICAgaW50IHJldCA9IFhyZENyeXB0b3NzbFg1 MDlGaWxsVk9NUygmcHAsIGxlbmd0aCwgZ2V0dmF0LCB2YXQpOwotICAgICAgIERFQlVHKCJyZXQ6 ICIgPDwgcmV0IDw8ICIgLSB2YXQ6ICIgPDwgdmF0KTsKLSAgICB9Ci1AQCAtMTMxNiwxMCArMTM4 MCwxMCBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUZpbGxWT01TKGNvbnN0IHVuc2lnbmVkIGNoYXIg KipwcCwKLSAgICAgICAgICAgICBpbnQgaSwgcHJpbnRhYmxlID0gMTsKLSAgICAgICAgICAgICBv cHAgPSBvcDsKLSAgICAgICAgICAgICBvcyA9IGQyaV9BU04xX09DVEVUX1NUUklORygwLCAmb3Bw LCBsZW4gKyBobCk7Ci0tICAgICAgICAgICAgaWYgKG9zICYmIG9zLT5sZW5ndGggPiAwKSB7Ci0t ICAgICAgICAgICAgICAgb3BwID0gb3MtPmRhdGE7Ci0rICAgICAgICAgICAgaWYgKG9zICYmIEFT TjFfU1RSSU5HX2xlbmd0aChvcykgPiAwKSB7Ci0rICAgICAgICAgICAgICAgb3BwID0gQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKG9zKTsKLSAgICAgICAgICAgICAgICAvLyBUZXN0aW5nIHdoZXRoZXIg dGhlIG9jdGV0IHN0cmluZyBpcyBwcmludGFibGUKLS0gICAgICAgICAgICAgICBmb3IgKGk9MDsg aTxvcy0+bGVuZ3RoOyBpKyspIHsKLSsgICAgICAgICAgICAgICBmb3IgKGk9MDsgaSA8IEFTTjFf U1RSSU5HX2xlbmd0aChvcyk7IGkrKykgewotICAgICAgICAgICAgICAgICAgIGlmICgoIChvcHBb aV0gPCAnICcpICYmIChvcHBbaV0gIT0gJ1xuJykgJiYKLSAgICAgICAgICAgICAgICAgICAgICAg ICAob3BwW2ldICE9ICdccicpICYmIChvcHBbaV0gIT0gJ1x0JykpIHx8IChvcHBbaV0gPiAnficp KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlID0gMDsKLUBAIC0xMzMzLDcgKzEz OTcsNyBAQCBpbnQgWHJkQ3J5cHRvc3NsWDUwOUZpbGxWT01TKGNvbnN0IHVuc2lnbmVkIGNoYXIg KipwcCwKLSAgICAgICAgICAgICAgICAgICAgICB2YXQgKz0gKGNvbnN0IGNoYXIgKilvcHA7Ci0g ICAgICAgICAgICAgICAgICAgICAgZ290dmF0ID0gMTsKLSAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgREVCVUcoIk9CSlM6IiA8PCAoY29uc3QgY2hhciAqKW9wcCA8PCAi IChsZW46ICI8PG9zLT5sZW5ndGg8PCIpIik7Ci0rICAgICAgICAgICAgICAgICAgREVCVUcoIk9C SlM6IiA8PCAoY29uc3QgY2hhciAqKW9wcCA8PCAiIChsZW46ICIgPDwgQVNOMV9TVFJJTkdfbGVu Z3RoKG9zKSA8PCAiKSIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgaWYgKG9zKSB7Ci1AQCAtMTM4NSwxMSArMTQ0OSwxOSBAQCBpbnQgWHJkQ3J5cHRv c3NsWDUwOUNoZWNrUHJveHkzKFhyZENyeXB0b1g1MDkgKnhjcGksIFhyZE91Y1N0cmluZyAmZW1z ZykgewotICAgIH0KLSAgICBUUkFDRShBTEwsImNlcnRpZmljYXRlIGhhcyAiPDxudW1leHQ8PCIg ZXh0ZW5zaW9ucyIpOwotIAotKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAw MEwKLSAgICBYNTA5X0VYVEVOU0lPTiAqZXh0ID0gMDsKLSsjZWxzZQotKyAgIGNvbnN0IFg1MDlf RVhURU5TSU9OICpleHQgPSAwOwotKyNlbmRpZgotICAgIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJ T04gKnBjaSA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1leHQ7IGkrKykgewotICAg ICAgIC8vIEdldCB0aGUgZXh0ZW5zaW9uCi0rI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAw eDQwMDAwMDAwTAotICAgICAgIFg1MDlfRVhURU5TSU9OICp4ZXh0ID0gWDUwOV9nZXRfZXh0KGNl cnQsIGkpOwotKyNlbHNlCi0rICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKnhleHQgPSBYNTA5 X2dldF9leHQoY2VydCwgaSk7Ci0rI2VuZGlmCi0gICAgICAgLy8gV2UgYXJlIGxvb2tpbmcgZm9y IGdzaVByb3h5Q2VydEluZm9fT0lEICAgICAoIjEuMy42LjEuNS41LjcuMS4xNCIpCi0gICAgICAg Ly8gICAgICAgICAgICAgICAgIG9yIGdzaVByb3h5Q2VydEluZm9fT0xEX09JRCAoIjEuMy42LjEu NC4xLjM1MzYuMS4yMjIiKQotICAgICAgIGNoYXIgc1syNTZdOwotQEAgLTEzOTksOCArMTQ3MSw4 IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5Q2hlY2tQcm94eTMoWHJkQ3J5cHRvWDUwOSAqeGNwaSwg WHJkT3VjU3RyaW5nICZlbXNnKSB7Ci0gICAgICAgICAgaWYgKGV4dCA9PSAwKSB7Ci0gICAgICAg ICAgICAgZXh0ID0geGV4dDsKLSAgICAgICAgICAgICAvLyBOb3cgZ2V0IHRoZSBleHRlbnNpb24K LS0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpwID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEo ZXh0KS0+ZGF0YTsKLS0gICAgICAgICAgICBwY2kgPSBkMmlfUFJPWFlfQ0VSVF9JTkZPX0VYVEVO U0lPTigwLCAoY29uc3QgdW5zaWduZWQgY2hhciAqKikoJnApLCBYNTA5X0VYVEVOU0lPTl9nZXRf ZGF0YShleHQpLT5sZW5ndGgpOwotKyAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAg PSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSk7Ci0r ICAgICAgICAgICAgcGNpID0gZDJpX1BST1hZX0NFUlRfSU5GT19FWFRFTlNJT04oMCwgJnAsIEFT TjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSk7Ci0gICAgICAg ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBQUklOVCgiV0FSTklORzogbXVsdGlwbGUgcHJveHlD ZXJ0SW5mbyBleHRlbnNpb25zIGZvdW5kOiB0YWtpbmcgdGhlIGZpcnN0Iik7Ci0gICAgICAgICAg fQotQEAgLTE0MDgsOCArMTQ4MCw4IEBAIGludCBYcmRDcnlwdG9zc2xYNTA5Q2hlY2tQcm94eTMo WHJkQ3J5cHRvWDUwOSAqeGNwaSwgWHJkT3VjU3RyaW5nICZlbXNnKSB7Ci0gICAgICAgICAgaWYg KGV4dCA9PSAwKSB7Ci0gICAgICAgICAgICAgZXh0ID0geGV4dDsKLSAgICAgICAgICAgICAvLyBO b3cgZ2V0IHRoZSBleHRlbnNpb24KLS0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpwID0gWDUw OV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YTsKLS0gICAgICAgICAgICBwY2kgPSBkMmlf UFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9PTEQoMCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKiop KCZwKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3RoKTsKLSsgICAgICAgICAg ICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhU RU5TSU9OX2dldF9kYXRhKGV4dCkpOwotKyAgICAgICAgICAgIHBjaSA9IGQyaV9QUk9YWV9DRVJU X0lORk9fRVhURU5TSU9OX09MRCgwLCAmcCwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIFBS SU5UKCJXQVJOSU5HOiBtdWx0aXBsZSBwcm94eUNlcnRJbmZvIGV4dGVuc2lvbnMgZm91bmQ6IHRh a2luZyB0aGUgZmlyc3QiKTsKLSAgICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvc3JjL1hyZFRscy9Y cmRUbHNOb3RhcnlVdGlscy5pY2MgYi9zcmMvWHJkVGxzL1hyZFRsc05vdGFyeVV0aWxzLmljYwot aW5kZXggNDQxMjVkOTg4Li4zZGVkNGY5OTMgMTAwNjQ0Ci0tLS0gYS9zcmMvWHJkVGxzL1hyZFRs c05vdGFyeVV0aWxzLmljYwotKysrIGIvc3JjL1hyZFRscy9YcmRUbHNOb3RhcnlVdGlscy5pY2MK LUBAIC01Niw4ICs1Niw4IEBAIFNPRlRXQVJFLgotICovCi0gc3RhdGljIEhvc3RuYW1lVmFsaWRh dGlvblJlc3VsdCBtYXRjaGVzX2NvbW1vbl9uYW1lKGNvbnN0IGNoYXIgKmhvc3RuYW1lLCBjb25z dCBYNTA5ICpzZXJ2ZXJfY2VydCkgewotICAgICAgICAgaW50IGNvbW1vbl9uYW1lX2xvYyA9IC0x OwotLSAgICAgICAgWDUwOV9OQU1FX0VOVFJZICpjb21tb25fbmFtZV9lbnRyeSA9IE5VTEw7Ci0t ICAgICAgICBBU04xX1NUUklORyAqY29tbW9uX25hbWVfYXNuMSA9IE5VTEw7Ci0rICAgICAgICBj b25zdCBYNTA5X05BTUVfRU5UUlkgKmNvbW1vbl9uYW1lX2VudHJ5ID0gTlVMTDsKLSsgICAgICAg IGNvbnN0IEFTTjFfU1RSSU5HICpjb21tb25fbmFtZV9hc24xID0gTlVMTDsKLSAgICAgICAgIGNo YXIgKmNvbW1vbl9uYW1lX3N0ciA9IE5VTEw7Ci0gCi0gICAgICAgICAvLyBGaW5kIHRoZSBwb3Np dGlvbiBvZiB0aGUgQ04gZmllbGQgaW4gdGhlIFN1YmplY3QgZmllbGQgb2YgdGhlIGNlcnRpZmlj YXRlCi1kaWZmIC0tZ2l0IGEvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5jYyBiL3NyYy9YcmRWb21z L1hyZFZvbXNGdW4uY2MKLWluZGV4IGE0YmM5YjhiNy4uZmU2ZThlYmI3IDEwMDY0NAotLS0tIGEv c3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5jYwotKysrIGIvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5j YwotQEAgLTExMCw3ICsxMTAsNyBAQCBYcmRWb21zRnVuOjpYcmRWb21zRnVuKFhyZFN5c0Vycm9y ICZlcnApCi0gICAKLSAvLyBGdW5jdGlvbiB0byBjb252ZXJ0IFg1MDlfTkFNRSBpbnRvIGEgb25l LWxpbmUgaHVtYW4gcmVhZGFibGUgc3RyaW5nCi0gLy8KLS12b2lkIFhyZFZvbXNGdW46Ok5hbWVP bmVMaW5lKFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcykKLSt2b2lkIFhyZFZvbXNGdW46 Ok5hbWVPbmVMaW5lKGNvbnN0IFg1MDlfTkFNRSAqbm0sIFhyZE91Y1N0cmluZyAmcykKLSB7Ci0g ICAgQklPICptYmlvID0gQklPX25ldyhCSU9fc19tZW0oKSk7Ci0gICAgWDUwOV9OQU1FX3ByaW50 X2V4KG1iaW8sIG5tLCAwLCBYTl9GTEFHX0NPTVBBVCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL1hyZFZv bXMvWHJkVm9tc0Z1bi5oaCBiL3NyYy9YcmRWb21zL1hyZFZvbXNGdW4uaGgKLWluZGV4IGZmNWRm NThlZi4uNWMxMTI5YWI4IDEwMDY0NAotLS0tIGEvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5oaAot KysrIGIvc3JjL1hyZFZvbXMvWHJkVm9tc0Z1bi5oaAotQEAgLTY1LDcgKzY1LDcgQEAgaW50ICBW T01TSW5pdChjb25zdCBjaGFyICpjZmcpOwotIHByaXZhdGU6Ci0gCi0gdm9pZCBGbXRFeHRyYWN0 KFhyZE91Y1N0cmluZyAmb3V0LCBYcmRPdWNTdHJpbmcgaW4sIGNvbnN0IGNoYXIgKnRhZyk7Ci0t dm9pZCBOYW1lT25lTGluZShYNTA5X05BTUUgKm5tLCBYcmRPdWNTdHJpbmcgJnMpOwotK3ZvaWQg TmFtZU9uZUxpbmUoY29uc3QgWDUwOV9OQU1FICpubSwgWHJkT3VjU3RyaW5nICZzKTsKLSB2b2lk IEZtdFJlcGxhY2UoWHJkU2VjRW50aXR5ICZlbnQpOwotIAotIC8vIFRoZXNlIHNldHRpbmdzIGFy ZSBjb25maWd1cmFibGUKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDAyLVhyZENyeXB0 by1QcmVzZXJ2ZS1BQkkucGF0Y2ggYi8wMDAyLVhyZENyeXB0by1QcmVzZXJ2ZS1BQkkucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyYWE3YTUuLjAwMDAwMDAKLS0tIGEvMDAw Mi1YcmRDcnlwdG8tUHJlc2VydmUtQUJJLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAs MCBAQAotRnJvbSAwOWE5ODM3M2JjNDQyZDUxNWYzNDc1OTNjMTEzODQyNzMzZWE2MGI3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0 QHBoeXNpY3MudXUuc2U+Ci1EYXRlOiBTYXQsIDIzIE1heSAyMDI2IDIwOjU5OjA0ICswMjAwCi1T dWJqZWN0OiBbUEFUQ0ggMi8yXSBbWHJkQ3J5cHRvXSBQcmVzZXJ2ZSBBQkkKLQotQWRkIGJhY2sg bm93IHVudXNlZCBub24tY29uc3QgdmVyc2lvbiBvZiBmdW5jdGlvbgotLS0tCi0gc3JjL1hyZENy eXB0by9YcmRDcnlwdG9zc2xBdXguY2MgfCA5ICsrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCA5 IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3Ns QXV4LmNjIGIvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXguY2MKLWluZGV4IGE0NDI4Mzk4 NS4uZTBjZTM1Mjg1IDEwMDY0NAotLS0tIGEvc3JjL1hyZENyeXB0by9YcmRDcnlwdG9zc2xBdXgu Y2MKLSsrKyBiL3NyYy9YcmRDcnlwdG8vWHJkQ3J5cHRvc3NsQXV4LmNjCi1AQCAtNzU1LDMgKzc1 NSwxMiBAQCB2b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKGNvbnN0IFg1MDlfTkFNRSAqbm0s IFhyZE91Y1N0cmluZyAmcykKLSAgICAvLyBEb25lCi0gICAgcmV0dXJuOwotIH0KLSsKLSsvL19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KLSt2b2lkIFhyZENyeXB0b3NzbE5hbWVPbmVMaW5lKFg1MDlfTkFN RSAqbm0sIFhyZE91Y1N0cmluZyAmcykKLSt7Ci0rICAgLy8gQ29weSBvZiBhYm92ZSBmdW5jdGlv biB3aXRoIG5vbi1jb25zdCBmaXJzdCBhcmd1bWVudAotKyAgIC8vIFRoaXMgZnVuY3Rpb24gaXMg dW51c2VkIC0tIG9ubHkgYWRkZWQgdG8gcHJlc2VydmUgb2xkIEFCSQotKyAgIC8vIENhbiBiZSBy ZW1vdmVkIGlmIHNvbmFtZSBjaGFuZ2VzCi0rICAgWHJkQ3J5cHRvc3NsTmFtZU9uZUxpbmUoY29u c3RfY2FzdDxjb25zdCBYNTA5X05BTUUgKj4obm0pLCBzKTsKLSt9Ci0tLSAKLTIuNTQuMAotCgpk aWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggMjE4MTZhYi4uZjY2OTgyNyAxMDA2 NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIgKHhyb290 ZC02LjAuMy50YXIuZ3opID0gOWYwNTE3ZGNlY2M2NzlmNWFhMzg1ODMxMTg0YzllYjkzYWQ3YWQy ZDQyYmRhMTM0MGE5Y2FkYTdmNDQ0OTk4ZmVkMGEyMTI3MzgxNDJiZWFmM2RlNmMyZjI2NjcwMTM3 ODM5Y2E0OGNhOWFjNWFiN2Q1ODM0ZmViNWQzMDlhYTgKK1NIQTUxMiAoeHJvb3RkLTYuMS4wLnRh ci5neikgPSBiZDQ3MWYzMjY3ZGU0YWE1MjBkMDkxY2FjYTVjNjMwYWRjNDI0ODFkYTFhZDRkZTUz NGI1MTVlYzNjYjdmNGMzYjQyOGRiZGZkOTJlZDA1YmE4ODk3ODExMTUzYjI5ZWI0MjViYzRhMDAy NTQ2YzgxOTk2YWVhZmQxMzg1ZDBjMgoKZGlmZiAtLWdpdCBhL3hyb290ZC5zcGVjIGIveHJvb3Rk LnNwZWMKaW5kZXggOTIxNWQ4MC4uODcyNjYxYyAxMDA2NDQKLS0tIGEveHJvb3RkLnNwZWMKKysr IGIveHJvb3RkLnNwZWMKQEAgLTEzLDggKzEzLDggQEAKIAogTmFtZToJCXhyb290ZAogRXBvY2g6 CQkxCi1WZXJzaW9uOgk2LjAuMwotUmVsZWFzZToJMyV7P2Rpc3R9CitWZXJzaW9uOgk2LjEuMAor UmVsZWFzZToJMSV7P2Rpc3R9CiBTdW1tYXJ5OglFeHRlbmRlZCBST09UIGZpbGUgc2VydmVyCiBM aWNlbnNlOglMR1BMLTMuMC1vci1sYXRlciBBTkQgQlNELTItQ2xhdXNlIEFORCBCU0QtMy1DbGF1 c2UgQU5EIGN1cmwgQU5EIE1JVCBBTkQgWmxpYiBBTkQgQXBhY2hlLTIuMCBBTkQgTVBMLTIuMAog VVJMOgkJaHR0cHM6Ly94cm9vdGQud2ViLmNlcm4uY2gKQEAgLTIzLDEwICsyMyw2IEBAIFNvdXJj ZTE6CSV7bmFtZX0tc3lzdXNlcnMuY29uZgogCiAjCQlVbmJ1bmRsZSB0aW55eG1sIGxpYnJhcnkK IFBhdGNoMDoJCTAwMDEtVW5idW5kbGUtdGlueXhtbC5wYXRjaAotIwkJQWRhcHQgdG8gT3BlblNT TCA0Ci0jCQlodHRwczovL2dpdGh1Yi5jb20veHJvb3RkL3hyb290ZC9wdWxsLzI4MDIKLVBhdGNo MToJCTAwMDEtWHJkQ3J5cHRvLVhyZFRscy1YcmRWb21zLUFkYXB0LXRvLU9wZW5TU0wtNC4wLnBh dGNoCi1QYXRjaDI6CQkwMDAyLVhyZENyeXB0by1QcmVzZXJ2ZS1BQkkucGF0Y2gKIAogQnVpbGRS ZXF1aXJlczoJY21ha2UKIEJ1aWxkUmVxdWlyZXM6CWdjYy1jKysKQEAgLTcyLDYgKzY4LDcgQEAg QnVpbGRSZXF1aXJlczoJcHl0aG9uMy1zcGhpbngKIEJ1aWxkUmVxdWlyZXM6CWF0dHIKIEJ1aWxk UmVxdWlyZXM6CWN1cmwKIEJ1aWxkUmVxdWlyZXM6CWd0ZXN0LWRldmVsCitCdWlsZFJlcXVpcmVz OglqcQogQnVpbGRSZXF1aXJlczoJa3JiNS1zZXJ2ZXIKIEJ1aWxkUmVxdWlyZXM6CWtyYjUtd29y a3N0YXRpb24KIEJ1aWxkUmVxdWlyZXM6CW9wZW5zc2wKQEAgLTI2NSw4ICsyNjIsNiBAQCBUaGlz IHBhY2thZ2UgY29udGFpbnMgdGhlIEFQSSBkb2N1bWVudGF0aW9uIG9mIHRoZSB4cm9vdGQgbGli cmFyaWVzLgogJXNldHVwIC1xCiAKICVwYXRjaCAtUDAgLXAxCi0lcGF0Y2ggLVAxIC1wMQotJXBh dGNoIC1QMiAtcDEKIAogJWJ1aWxkCiAlY21ha2UgXApAQCAtNTc5LDYgKzU3NCw3IEBAIGZpCiAl e19saWJkaXJ9L2xpYlhyZE9mc1ByZXBHUEktNi5zbwogJXtfbGliZGlyfS9saWJYcmRPc3NBcmMt Ni5zbwogJXtfbGliZGlyfS9saWJYcmRPc3NDc2ktNi5zbworJXtfbGliZGlyfS9saWJYcmRPc3NN aXJhZ2UtNi5zbwogJXtfbGliZGlyfS9saWJYcmRPc3NTSWdwZnNULTYuc28KICV7X2xpYmRpcn0v bGliWHJkT3NzU3RhdHMtNi5zbwogJXtfbGliZGlyfS9saWJYcmRQZmMtNi5zbwpAQCAtNjYxLDYg KzY1NywxMCBAQCBmaQogJWRvYyAle19wa2dkb2NkaXJ9CiAKICVjaGFuZ2Vsb2cKKyogVHVlIEp1 biAyMyAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPiAt IDE6Ni4xLjAtMQorLSBVcGRhdGUgdG8gdmVyc2lvbiA2LjEuMAorLSBEcm9wIHBhdGNoZXMgYWNj ZXB0ZWQgdXBzdHJlYW0KKwogKiBTYXQgSnVuIDEzIDIwMjYgWWFha292IFNlbGtvd2l0eiA8eXNl bGtvd2lAcmVkaGF0LmNvbT4gLSAxOjYuMC4zLTMKIC0gUmVidWlsdCBmb3Igb3BlbnNzbCA0LjAK IAo=