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: Jitka Plesnikova To: git-commits@fedoraproject.org Subject: [rpms/apbs] rawhide: Replace removed Python 2 C API macros for SWIG 4.5.0 compatibility Date: Sun, 02 Aug 2026 14:19:21 GMT Message-ID: <178568036191.1.4294692630472043378.rpms-apbs-785bdbcfee29@fedoraproject.org> List-ID: X-Git-Repo: rpms/apbs X-Git-Branch: rawhide X-Git-Rev: 785bdbcfee293dc5a12a3942466a31b278c0c577 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYXBicwpCcmFuY2gg OiByYXdoaWRlCkNvbW1pdCA6IDc4NWJkYmNmZWUyOTNkYzVhMTJhMzk0MjQ2NmEzMWIyNzhjMGM1 NzcKQXV0aG9yIDogSml0a2EgUGxlc25pa292YSA8anBsZXNuaWtAcmVkaGF0LmNvbT4KRGF0ZSAg IDogMjAyNi0wNy0yOFQxNToxODozOCswMjowMApTdGF0cyAgOiArNDQ2Ly0xIGluIDIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2FwYnMvYy83ODVi ZGJjZmVlMjkzZGM1YTEyYTM5NDI0NjZhMzFiMjc4YzBjNTc3P2JyYW5jaD1yYXdoaWRlCgpMb2c6 ClJlcGxhY2UgcmVtb3ZlZCBQeXRob24gMiBDIEFQSSBtYWNyb3MgZm9yIFNXSUcgNC41LjAgY29t cGF0aWJpbGl0eQoKLS0tCmRpZmYgLS1naXQgYS9hcGJzLXN3aWc0NS5wYXRjaCBiL2FwYnMtc3dp ZzQ1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYWVmZTcKLS0t IC9kZXYvbnVsbAorKysgYi9hcGJzLXN3aWc0NS5wYXRjaApAQCAtMCwwICsxLDQzNyBAQAorZGlm ZiAtdXAgYXBicy0zLjAuMC90b29scy9weXRob24vYXBic2xpYi5jLnN3aWc0NSBhcGJzLTMuMC4w L3Rvb2xzL3B5dGhvbi9hcGJzbGliLmMKKy0tLSBhcGJzLTMuMC4wL3Rvb2xzL3B5dGhvbi9hcGJz bGliLmMuc3dpZzQ1CTIwMjYtMDctMjcgMTY6MzI6MDIuMzc0NDE0MjM5ICswMjAwCisrKysgYXBi cy0zLjAuMC90b29scy9weXRob24vYXBic2xpYi5jCTIwMjYtMDctMjcgMTc6MjI6NDcuODA5MDA1 MjIyICswMjAwCitAQCAtNzIyLDcgKzcyMiw3IEBAIFB5U3RyaW5nX0Zyb21Gb3JtYXQoY29uc3Qg Y2hhciAqZm10LCAuLi4KKyAgIHZhX3N0YXJ0KGFwLCBmbXQpOworICAgcmVzID0gdnNucHJpbnRm KGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZtdCwgYXApOworICAgdmFfZW5kKGFwKTsKKy0gIHJldHVybiAo cmVzIDwgMCB8fCByZXMgPj0gKGludClzaXplb2YoYnVmKSkgPyAwIDogUHlTdHJpbmdfRnJvbVN0 cmluZyhidWYpOworKyAgcmV0dXJuIChyZXMgPCAwIHx8IHJlcyA+PSAoaW50KXNpemVvZihidWYp KSA/IDAgOiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWYpOworIH0KKyAjZW5kaWYKKyAKK0BAIC03 NTQsNyArNzU0LDcgQEAgUHlTdHJpbmdfRnJvbUZvcm1hdChjb25zdCBjaGFyICpmbXQsIC4uLgor IC8qIEEgY3J1ZGUgUHlTdHJpbmdfQXNTdHJpbmdBbmRTaXplIGltcGxlbWVudGF0aW9uIGZvciBv bGQgUHl0aG9ucyAqLworICNpZiBQWV9WRVJTSU9OX0hFWCA8IDB4MDIwMTAwMDAKKyAjIGlmbmRl ZiBQeVN0cmluZ19Bc1N0cmluZ0FuZFNpemUKKy0jICBkZWZpbmUgUHlTdHJpbmdfQXNTdHJpbmdB bmRTaXplKG9iaiwgcywgbGVuKSB7KnMgPSBQeVN0cmluZ19Bc1N0cmluZyhvYmopOyAqbGVuID0g KnMgPyBzdHJsZW4oKnMpIDogMDt9CisrIyAgZGVmaW5lIFB5U3RyaW5nX0FzU3RyaW5nQW5kU2l6 ZShvYmosIHMsIGxlbikgeypzID0gUHlCeXRlc19Bc1N0cmluZyhvYmopOyAqbGVuID0gKnMgPyBz dHJsZW4oKnMpIDogMDt9CisgIyBlbmRpZgorICNlbmRpZgorIAorQEAgLTg0Niw3ICs4NDYsNyBA QCBTV0lHX1B5dGhvbl9BZGRFcnJvck1zZyhjb25zdCBjaGFyKiBtZXNnCisgICAgIFB5T2JqZWN0 ICpvbGRfc3RyID0gUHlPYmplY3RfU3RyKHZhbHVlKTsKKyAgICAgUHlFcnJfQ2xlYXIoKTsKKyAg ICAgUHlfWElOQ1JFRih0eXBlKTsKKy0gICAgUHlFcnJfRm9ybWF0KHR5cGUsICIlcyAlcyIsIFB5 U3RyaW5nX0FzU3RyaW5nKG9sZF9zdHIpLCBtZXNnKTsKKysgICAgUHlFcnJfRm9ybWF0KHR5cGUs ICIlcyAlcyIsIFB5Qnl0ZXNfQXNTdHJpbmcob2xkX3N0ciksIG1lc2cpOworICAgICBQeV9ERUNS RUYob2xkX3N0cik7CisgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CisgICB9IGVsc2UgeworQEAgLTEy MzcsNyArMTIzNyw3IEBAIFB5U3dpZ0NsaWVudERhdGFfTmV3KFB5T2JqZWN0KiBvYmopCisgICAg IGRhdGEtPmtsYXNzID0gb2JqOworICAgICBQeV9JTkNSRUYoZGF0YS0+a2xhc3MpOworICAgICAv KiB0aGUgbmV3cmF3IG1ldGhvZCBhbmQgbmV3YXJncyBhcmd1bWVudHMgdXNlZCB0byBjcmVhdGUg YSBuZXcgcmF3IGluc3RhbmNlICovCistICAgIGlmIChQeUNsYXNzX0NoZWNrKG9iaikpIHsKKysg ICAgaWYgKFB5T2JqZWN0X0lzSW5zdGFuY2Uob2JqKSkgeworICAgICAgIGRhdGEtPm5ld3JhdyA9 IDA7CisgICAgICAgZGF0YS0+bmV3YXJncyA9IG9iajsKKyAgICAgICBQeV9JTkNSRUYob2JqKTsK K0BAIC0xMzEwLDkgKzEzMTAsOSBAQCBQeVN3aWdPYmplY3RfZm9ybWF0KGNvbnN0IGNoYXIqIGZt dCwgUHlTCisgICBQeU9iamVjdCAqYXJncyA9IFB5VHVwbGVfTmV3KDEpOworICAgaWYgKGFyZ3Mp IHsKKyAgICAgaWYgKFB5VHVwbGVfU2V0SXRlbShhcmdzLCAwLCBQeVN3aWdPYmplY3RfbG9uZyh2 KSkgPT0gMCkgeworLSAgICAgIFB5T2JqZWN0ICpvZm10ID0gUHlTdHJpbmdfRnJvbVN0cmluZyhm bXQpOworKyAgICAgIFB5T2JqZWN0ICpvZm10ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoZm10KTsK KyAgICAgICBpZiAob2ZtdCkgeworLQlyZXMgPSBQeVN0cmluZ19Gb3JtYXQob2ZtdCxhcmdzKTsK KysJcmVzID0gUHlVbmljb2RlX0Zvcm1hdChvZm10LGFyZ3MpOworIAlQeV9ERUNSRUYob2ZtdCk7 CisgICAgICAgfQorICAgICAgIFB5X0RFQ1JFRihhcmdzKTsKK0BAIC0xMzQyLDcgKzEzNDIsNyBA QCBQeVN3aWdPYmplY3RfcmVwcihQeVN3aWdPYmplY3QgKnYsIFB5T2JqCisgeworICAgY29uc3Qg Y2hhciAqbmFtZSA9IFNXSUdfVHlwZVByZXR0eU5hbWUodi0+dHkpOworICAgUHlPYmplY3QgKmhl eCA9IFB5U3dpZ09iamVjdF9oZXgodik7ICAgIAorLSAgUHlPYmplY3QgKnJlcHIgPSBQeVN0cmlu Z19Gcm9tRm9ybWF0KCI8U3dpZyBPYmplY3Qgb2YgdHlwZSAnJXMnIGF0IDB4JXM+IiwgbmFtZSwg UHlTdHJpbmdfQXNTdHJpbmcoaGV4KSk7CisrICBQeU9iamVjdCAqcmVwciA9IFB5U3RyaW5nX0Zy b21Gb3JtYXQoIjxTd2lnIE9iamVjdCBvZiB0eXBlICclcycgYXQgMHglcz4iLCBuYW1lLCBQeUJ5 dGVzX0FzU3RyaW5nKGhleCkpOworICAgUHlfREVDUkVGKGhleCk7CisgICBpZiAodi0+bmV4dCkg eworICNpZmRlZiBNRVRIX05PQVJHUworQEAgLTEzNjQsNyArMTM2NCw3IEBAIFB5U3dpZ09iamVj dF9wcmludChQeVN3aWdPYmplY3QgKnYsIEZJTEUKKyAgIFB5T2JqZWN0ICpyZXByID0gUHlTd2ln T2JqZWN0X3JlcHIodiwgTlVMTCk7CisgI2VuZGlmCisgICBpZiAocmVwcikgeworLSAgICBmcHV0 cyhQeVN0cmluZ19Bc1N0cmluZyhyZXByKSwgZnApOworKyAgICBmcHV0cyhQeUJ5dGVzX0FzU3Ry aW5nKHJlcHIpLCBmcCk7CisgICAgIFB5X0RFQ1JFRihyZXByKTsKKyAgICAgcmV0dXJuIDA7IAor ICAgfSBlbHNlIHsKK0BAIC0xMzc3LDcgKzEzNzcsNyBAQCBQeVN3aWdPYmplY3Rfc3RyKFB5U3dp Z09iamVjdCAqdikKKyB7CisgICBjaGFyIHJlc3VsdFtTV0lHX0JVRkZFUl9TSVpFXTsKKyAgIHJl dHVybiBTV0lHX1BhY2tWb2lkUHRyKHJlc3VsdCwgdi0+cHRyLCB2LT50eS0+bmFtZSwgc2l6ZW9m KHJlc3VsdCkpID8KKy0gICAgUHlTdHJpbmdfRnJvbVN0cmluZyhyZXN1bHQpIDogMDsKKysgICAg UHlVbmljb2RlX0Zyb21TdHJpbmcocmVzdWx0KSA6IDA7CisgfQorIAorIFNXSUdSVU5USU1FIGlu dAorQEAgLTE3MjUsNyArMTcyNSw3IEBAIFB5U3dpZ1BhY2tlZF9zdHIoUHlTd2lnUGFja2VkICp2 KQorICAgaWYgKFNXSUdfUGFja0RhdGFOYW1lKHJlc3VsdCwgdi0+cGFjaywgdi0+c2l6ZSwgMCwg c2l6ZW9mKHJlc3VsdCkpKXsKKyAgICAgcmV0dXJuIFB5U3RyaW5nX0Zyb21Gb3JtYXQoIiVzJXMi LCByZXN1bHQsIHYtPnR5LT5uYW1lKTsKKyAgIH0gZWxzZSB7CistICAgIHJldHVybiBQeVN0cmlu Z19Gcm9tU3RyaW5nKHYtPnR5LT5uYW1lKTsKKysgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3Ry aW5nKHYtPnR5LT5uYW1lKTsKKyAgIH0gIAorIH0KKyAKK0BAIC0xODcxLDcgKzE4NzEsNyBAQCBQ eVN3aWdQYWNrZWRfVW5wYWNrRGF0YShQeU9iamVjdCAqb2JqLCB2CisgU1dJR1JVTlRJTUVJTkxJ TkUgUHlPYmplY3QgKgorIF9TV0lHX1RoaXModm9pZCkKKyB7CistICByZXR1cm4gUHlTdHJpbmdf RnJvbVN0cmluZygidGhpcyIpOworKyAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJ0aGlz Iik7CisgfQorIAorIFNXSUdSVU5USU1FIFB5T2JqZWN0ICoKK0BAIC0yMzA4LDcgKzIzMDgsNyBA QCBTV0lHUlVOVElNRSBzd2lnX3R5cGVfaW5mbyAqCisgU1dJR19QeXRob25fVHlwZVF1ZXJ5KGNv bnN0IGNoYXIgKnR5cGUpCisgeworICAgUHlPYmplY3QgKmNhY2hlID0gU1dJR19QeXRob25fVHlw ZUNhY2hlKCk7CistICBQeU9iamVjdCAqa2V5ID0gUHlTdHJpbmdfRnJvbVN0cmluZyh0eXBlKTsg CisrICBQeU9iamVjdCAqa2V5ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcodHlwZSk7IAorICAgUHlP YmplY3QgKm9iaiA9IFB5RGljdF9HZXRJdGVtKGNhY2hlLCBrZXkpOworICAgc3dpZ190eXBlX2lu Zm8gKmRlc2NyaXB0b3I7CisgICBpZiAob2JqKSB7CitAQCAtMjM0Niw5ICsyMzQ2LDkgQEAgU1dJ R19QeXRob25fQWRkRXJyTWVzZyhjb25zdCBjaGFyKiBtZXNnLAorICAgICAgIFB5X1hJTkNSRUYo dHlwZSk7CisgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICBpZiAoaW5mcm9udCkgeworLQlQ eUVycl9Gb3JtYXQodHlwZSwgIiVzICVzIiwgbWVzZywgUHlTdHJpbmdfQXNTdHJpbmcob2xkX3N0 cikpOworKwlQeUVycl9Gb3JtYXQodHlwZSwgIiVzICVzIiwgbWVzZywgUHlCeXRlc19Bc1N0cmlu ZyhvbGRfc3RyKSk7CisgICAgICAgfSBlbHNlIHsKKy0JUHlFcnJfRm9ybWF0KHR5cGUsICIlcyAl cyIsIFB5U3RyaW5nX0FzU3RyaW5nKG9sZF9zdHIpLCBtZXNnKTsKKysJUHlFcnJfRm9ybWF0KHR5 cGUsICIlcyAlcyIsIFB5Qnl0ZXNfQXNTdHJpbmcob2xkX3N0ciksIG1lc2cpOworICAgICAgIH0K KyAgICAgICBQeV9ERUNSRUYob2xkX3N0cik7CisgICAgIH0KK0BAIC0yMzk3LDcgKzIzOTcsNyBA QCBTV0lHX1B5dGhvbl9UeXBlRXJyb3IoY29uc3QgY2hhciAqdHlwZSwKKyAgICAgICBjb25zdCBj aGFyICpvdHlwZSA9IChvYmogPyBvYmotPm9iX3R5cGUtPnRwX25hbWUgOiAwKTsgCisgICAgICAg aWYgKG90eXBlKSB7CisgCVB5T2JqZWN0ICpzdHIgPSBQeU9iamVjdF9TdHIob2JqKTsKKy0JY29u c3QgY2hhciAqY3N0ciA9IHN0ciA/IFB5U3RyaW5nX0FzU3RyaW5nKHN0cikgOiAwOworKwljb25z dCBjaGFyICpjc3RyID0gc3RyID8gUHlCeXRlc19Bc1N0cmluZyhzdHIpIDogMDsKKyAJaWYgKGNz dHIpIHsKKyAJICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiYSAnJXMnIGlzIGV4cGVj dGVkLCAnJXMoJXMpJyBpcyByZWNlaXZlZCIsCisgCQkgICAgICAgdHlwZSwgb3R5cGUsIGNzdHIp OworQEAgLTI1MjcsOCArMjUyNyw4IEBAIFNXSUdfQXNWYWxfZG91YmxlIChQeU9iamVjdCAqb2Jq LCBkb3VibGUKKyAgIGlmIChQeUZsb2F0X0NoZWNrKG9iaikpIHsKKyAgICAgaWYgKHZhbCkgKnZh bCA9IFB5RmxvYXRfQXNEb3VibGUob2JqKTsKKyAgICAgcmV0dXJuIFNXSUdfT0s7CistICB9IGVs c2UgaWYgKFB5SW50X0NoZWNrKG9iaikpIHsKKy0gICAgaWYgKHZhbCkgKnZhbCA9IFB5SW50X0Fz TG9uZyhvYmopOworKyAgfSBlbHNlIGlmIChQeUxvbmdfQ2hlY2sob2JqKSkgeworKyAgICBpZiAo dmFsKSAqdmFsID0gUHlMb25nX0FzTG9uZyhvYmopOworICAgICByZXR1cm4gU1dJR19PSzsKKyAg IH0gZWxzZSBpZiAoUHlMb25nX0NoZWNrKG9iaikpIHsKKyAgICAgZG91YmxlIHYgPSBQeUxvbmdf QXNEb3VibGUob2JqKTsKK0BAIC0yNjAzLDggKzI2MDMsOCBAQCBTV0lHX0NhbkNhc3RBc0ludGVn ZXIoZG91YmxlICpkLCBkb3VibGUKKyBTV0lHSU5URVJOIGludAorIFNXSUdfQXNWYWxfbG9uZyAo UHlPYmplY3QgKm9iaiwgbG9uZyogdmFsKQorIHsKKy0gIGlmIChQeUludF9DaGVjayhvYmopKSB7 CistICAgIGlmICh2YWwpICp2YWwgPSBQeUludF9Bc0xvbmcob2JqKTsKKysgIGlmIChQeUxvbmdf Q2hlY2sob2JqKSkgeworKyAgICBpZiAodmFsKSAqdmFsID0gUHlMb25nX0FzTG9uZyhvYmopOwor ICAgICByZXR1cm4gU1dJR19PSzsKKyAgIH0gZWxzZSBpZiAoUHlMb25nX0NoZWNrKG9iaikpIHsK KyAgICAgbG9uZyB2ID0gUHlMb25nX0FzTG9uZyhvYmopOworQEAgLTI2MTgsNyArMjYxOCw3IEBA IFNXSUdfQXNWYWxfbG9uZyAoUHlPYmplY3QgKm9iaiwgbG9uZyogdmEKKyAjaWZkZWYgU1dJR19Q WVRIT05fQ0FTVF9NT0RFCisgICB7CisgICAgIGludCBkaXNwYXRjaCA9IDA7CistICAgIGxvbmcg diA9IFB5SW50X0FzTG9uZyhvYmopOworKyAgICBsb25nIHYgPSBQeUxvbmdfQXNMb25nKG9iaik7 CisgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgIGlmICh2YWwpICp2YWwgPSB2 OworICAgICAgIHJldHVybiBTV0lHX0FkZENhc3QoU1dJR19PSyk7CitAQCAtMjY1NSw3ICsyNjU1 LDcgQEAgU1dJR19Bc1ZhbF9pbnQgKFB5T2JqZWN0ICogb2JqLCBpbnQgKnZhbAorIH0KKyAKKyAK Ky0gICNkZWZpbmUgU1dJR19Gcm9tX2xvbmcgICBQeUludF9Gcm9tTG9uZyAKKysgICNkZWZpbmUg U1dJR19Gcm9tX2xvbmcgICBQeUxvbmdfRnJvbUxvbmcgCisgCisgCisgU1dJR0lOVEVSTklOTElO RSBQeU9iamVjdCAqCitAQCAtMjY4NCw3ICsyNjg0LDcgQEAgU1dJR19wY2hhcl9kZXNjcmlwdG9y KHZvaWQpCisgU1dJR0lOVEVSTiBpbnQKKyBTV0lHX0FzQ2hhclB0ckFuZFNpemUoUHlPYmplY3Qg Km9iaiwgY2hhcioqIGNwdHIsIHNpemVfdCogcHNpemUsIGludCAqYWxsb2MpCisgeworLSAgaWYg KFB5U3RyaW5nX0NoZWNrKG9iaikpIHsKKysgIGlmIChQeUJ5dGVzX0NoZWNrKG9iaikpIHsKKyAg ICAgY2hhciAqY3N0cjsgUHlfc3NpemVfdCBsZW47CisgICAgIFB5U3RyaW5nX0FzU3RyaW5nQW5k U2l6ZShvYmosICZjc3RyLCAmbGVuKTsKKyAgICAgaWYgKGNwdHIpICB7CitAQCAtMjcxMiw3ICsy NzEyLDcgQEAgU1dJR19Bc0NoYXJQdHJBbmRTaXplKFB5T2JqZWN0ICpvYmosIGNoYQorIAkgICph bGxvYyA9IFNXSUdfT0xET0JKOworIAl9CisgICAgICAgfSBlbHNlIHsKKy0JKmNwdHIgPSBQeVN0 cmluZ19Bc1N0cmluZyhvYmopOworKwkqY3B0ciA9IFB5Qnl0ZXNfQXNTdHJpbmcob2JqKTsKKyAg ICAgICB9CisgICAgIH0KKyAgICAgaWYgKHBzaXplKSAqcHNpemUgPSBsZW4gKyAxOworQEAgLTI4 NzYsMTIgKzI4NzYsMTIgQEAgaW50IHBhcnNlSW5wdXRGcm9tU3RyaW5nKE5Pc2ggKm5vc2gsIFB5 TworICAgICBWaW8gKnNvY2s7CisgICAgIAorICAgICBzdGFydFZpbygpOworLSAgICBidWZzaXpl ID0gUHlTdHJpbmdfU2l6ZShzdHJpbmcpOworKyAgICBidWZzaXplID0gUHlCeXRlc19TaXplKHN0 cmluZyk7CisgCisgICAgIFZBU1NFUlQoIGJ1ZnNpemUgPD0gVk1BWF9CVUZTSVpFICk7CisgICAg IHNvY2sgPSBWaW9fY3RvcigiQlVGRiIsIkFTQyIsVk5VTEwsIjAiLCJyIik7CisgCistICAgIFZp b19idWZUYWtlKHNvY2ssIFB5U3RyaW5nX0FzU3RyaW5nKHN0cmluZyksIGJ1ZnNpemUpOworKyAg ICBWaW9fYnVmVGFrZShzb2NrLCBQeUJ5dGVzX0FzU3RyaW5nKHN0cmluZyksIGJ1ZnNpemUpOwor IAorICAgICByZXQgPSBOT3NoX3BhcnNlSW5wdXQobm9zaCwgc29jayk7IAorICAgICBzb2NrLT5W SU9idWZmZXIgPSBWTlVMTDsKK0BAIC0zMDM5LDkgKzMwMzksOSBAQCBQeU9iamVjdCAqZ2V0Rm9y Y2VzKEF0b21Gb3JjZSAqKmF0b21Gb3JjCisgICAgIGRiaG9sZGVyID0gUHlMaXN0X05ldygzKTsK KyAgICAgaWJob2xkZXIgPSBQeUxpc3RfTmV3KDMpOworICAgICAKKy0gICAgcWYgPSBQeVN0cmlu Z19Gcm9tU3RyaW5nKCJxZiIpOworLSAgICBkYiA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoImRiIik7 CistICAgIGliID0gUHlTdHJpbmdfRnJvbVN0cmluZygiaWIiKTsKKysgICAgcWYgPSBQeVVuaWNv ZGVfRnJvbVN0cmluZygicWYiKTsKKysgICAgZGIgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiZGIi KTsKKysgICAgaWIgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiaWIiKTsKKyAKKyAgICAgZm9yIChp PTA7aTxWYWxpc3RfZ2V0TnVtYmVyQXRvbXMoYWxpc3QpO2krKyl7CisgICAgICAgICBmb3IgKGo9 MDtqPDM7aisrKXsKK0BAIC03OTMxLDE4ICs3OTMxLDE4IEBAIGV4dGVybiAiQyIgeworICAgCisg ICBTV0lHSU5URVJOIFB5T2JqZWN0ICoKKyAgIHN3aWdfdmFybGlua19yZXByKHN3aWdfdmFybGlu a29iamVjdCAqU1dJR1VOVVNFRFBBUk0odikpIHsKKy0gICAgcmV0dXJuIFB5U3RyaW5nX0Zyb21T dHJpbmcoIjxTd2lnIGdsb2JhbCB2YXJpYWJsZXM+Iik7CisrICAgIHJldHVybiBQeVVuaWNvZGVf RnJvbVN0cmluZygiPFN3aWcgZ2xvYmFsIHZhcmlhYmxlcz4iKTsKKyAgIH0KKyAgIAorICAgU1dJ R0lOVEVSTiBQeU9iamVjdCAqCisgICBzd2lnX3Zhcmxpbmtfc3RyKHN3aWdfdmFybGlua29iamVj dCAqdikgeworLSAgICBQeU9iamVjdCAqc3RyID0gUHlTdHJpbmdfRnJvbVN0cmluZygiKCIpOwor KyAgICBQeU9iamVjdCAqc3RyID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIigiKTsKKyAgICAgc3dp Z19nbG9iYWx2YXIgICp2YXI7CisgICAgIGZvciAodmFyID0gdi0+dmFyczsgdmFyOyB2YXI9dmFy LT5uZXh0KSB7CistICAgICAgUHlTdHJpbmdfQ29uY2F0QW5kRGVsKCZzdHIsUHlTdHJpbmdfRnJv bVN0cmluZyh2YXItPm5hbWUpKTsKKy0gICAgICBpZiAodmFyLT5uZXh0KSBQeVN0cmluZ19Db25j YXRBbmREZWwoJnN0cixQeVN0cmluZ19Gcm9tU3RyaW5nKCIsICIpKTsKKysgICAgICBQeVN0cmlu Z19Db25jYXRBbmREZWwoJnN0cixQeVVuaWNvZGVfRnJvbVN0cmluZyh2YXItPm5hbWUpKTsKKysg ICAgICBpZiAodmFyLT5uZXh0KSBQeVN0cmluZ19Db25jYXRBbmREZWwoJnN0cixQeVVuaWNvZGVf RnJvbVN0cmluZygiLCAiKSk7CisgICAgIH0KKy0gICAgUHlTdHJpbmdfQ29uY2F0QW5kRGVsKCZz dHIsUHlTdHJpbmdfRnJvbVN0cmluZygiKSIpKTsKKysgICAgUHlTdHJpbmdfQ29uY2F0QW5kRGVs KCZzdHIsUHlVbmljb2RlX0Zyb21TdHJpbmcoIikiKSk7CisgICAgIHJldHVybiBzdHI7CisgICB9 CisgICAKK0BAIC03OTUwLDcgKzc5NTAsNyBAQCBleHRlcm4gIkMiIHsKKyAgIHN3aWdfdmFybGlu a19wcmludChzd2lnX3ZhcmxpbmtvYmplY3QgKnYsIEZJTEUgKmZwLCBpbnQgU1dJR1VOVVNFRFBB Uk0oZmxhZ3MpKSB7CisgICAgIFB5T2JqZWN0ICpzdHIgPSBzd2lnX3Zhcmxpbmtfc3RyKHYpOwor ICAgICBmcHJpbnRmKGZwLCJTd2lnIGdsb2JhbCB2YXJpYWJsZXMgIik7CistICAgIGZwcmludGYo ZnAsIiVzXG4iLCBQeVN0cmluZ19Bc1N0cmluZyhzdHIpKTsKKysgICAgZnByaW50ZihmcCwiJXNc biIsIFB5Qnl0ZXNfQXNTdHJpbmcoc3RyKSk7CisgICAgIFB5X0RFQ1JFRihzdHIpOworICAgICBy ZXR1cm4gMDsKKyAgIH0KK2RpZmYgLXVwIGFwYnMtMy4wLjAvdG9vbHMvcHl0aG9uL2FwYnNsaWIu aS5zd2lnNDUgYXBicy0zLjAuMC90b29scy9weXRob24vYXBic2xpYi5pCistLS0gYXBicy0zLjAu MC90b29scy9weXRob24vYXBic2xpYi5pLnN3aWc0NQkyMDI2LTA3LTI3IDE2OjMyOjAyLjM3NjQx NDI4MyArMDIwMAorKysrIGFwYnMtMy4wLjAvdG9vbHMvcHl0aG9uL2FwYnNsaWIuaQkyMDI2LTA3 LTI3IDE2OjM0OjE3LjMxOTYyNDkzNiArMDIwMAorQEAgLTI3OCwxMiArMjc4LDEyIEBAIGludCBw YXJzZUlucHV0RnJvbVN0cmluZyhOT3NoICpub3NoLCBQeU8KKyAgICAgVmlvICpzb2NrOworIAor ICAgICBzdGFydFZpbygpOworLSAgICBidWZzaXplID0gUHlTdHJpbmdfU2l6ZShzdHJpbmcpOwor KyAgICBidWZzaXplID0gUHlCeXRlc19TaXplKHN0cmluZyk7CisgCisgICAgIFZBU1NFUlQoIGJ1 ZnNpemUgPD0gVk1BWF9CVUZTSVpFICk7CisgICAgIHNvY2sgPSBWaW9fY3RvcigiQlVGRiIsIkFT QyIsVk5VTEwsIjAiLCJyIik7CisgCistICAgIFZpb19idWZUYWtlKHNvY2ssIFB5U3RyaW5nX0Fz U3RyaW5nKHN0cmluZyksIGJ1ZnNpemUpOworKyAgICBWaW9fYnVmVGFrZShzb2NrLCBQeUJ5dGVz X0FzU3RyaW5nKHN0cmluZyksIGJ1ZnNpemUpOworIAorICAgICByZXQgPSBOT3NoX3BhcnNlSW5w dXQobm9zaCwgc29jayk7CisgICAgIHNvY2stPlZJT2J1ZmZlciA9IFZOVUxMOworQEAgLTQ0MSw5 ICs0NDEsOSBAQCBQeU9iamVjdCAqZ2V0Rm9yY2VzKEF0b21Gb3JjZSAqKmF0b21Gb3JjCisgICAg IGRiaG9sZGVyID0gUHlMaXN0X05ldygzKTsKKyAgICAgaWJob2xkZXIgPSBQeUxpc3RfTmV3KDMp OworIAorLSAgICBxZiA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoInFmIik7CistICAgIGRiID0gUHlT dHJpbmdfRnJvbVN0cmluZygiZGIiKTsKKy0gICAgaWIgPSBQeVN0cmluZ19Gcm9tU3RyaW5nKCJp YiIpOworKyAgICBxZiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJxZiIpOworKyAgICBkYiA9IFB5 VW5pY29kZV9Gcm9tU3RyaW5nKCJkYiIpOworKyAgICBpYiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5n KCJpYiIpOworIAorICAgICBmb3IgKGk9MDtpPFZhbGlzdF9nZXROdW1iZXJBdG9tcyhhbGlzdCk7 aSsrKXsKKyAgICAgICAgIGZvciAoaj0wO2o8MztqKyspeworZGlmZiAtdXAgYXBicy0zLjAuMC90 b29scy9weXRob24vdmdyaWQvdmdyaWRsaWIuYy5zd2lnNDUgYXBicy0zLjAuMC90b29scy9weXRo b24vdmdyaWQvdmdyaWRsaWIuYworLS0tIGFwYnMtMy4wLjAvdG9vbHMvcHl0aG9uL3ZncmlkL3Zn cmlkbGliLmMuc3dpZzQ1CTIwMjYtMDctMjcgMTY6MzI6MDIuMzc4NDE0MzI2ICswMjAwCisrKysg YXBicy0zLjAuMC90b29scy9weXRob24vdmdyaWQvdmdyaWRsaWIuYwkyMDI2LTA3LTI3IDE3OjIy OjQ3LjgxMjAwNTI4NiArMDIwMAorQEAgLTY2OCw3ICs2NjgsNyBAQCBQeVN3aWdPYmplY3Rfc3Ry KFB5U3dpZ09iamVjdCAqdikKKyB7CisgICBjaGFyIHJlc3VsdFtTV0lHX0JVRkZFUl9TSVpFXTsK KyAgIHJldHVybiBTV0lHX1BhY2tWb2lkUHRyKHJlc3VsdCwgdi0+cHRyLCB2LT5kZXNjLCBzaXpl b2YocmVzdWx0KSkgPworLSAgICBQeVN0cmluZ19Gcm9tU3RyaW5nKHJlc3VsdCkgOiAwOworKyAg ICBQeVVuaWNvZGVfRnJvbVN0cmluZyhyZXN1bHQpIDogMDsKKyB9CisgCisgU1dJR1JVTlRJTUUg UHlPYmplY3QgKgorQEAgLTY4Myw5ICs2ODMsOSBAQCBQeVN3aWdPYmplY3RfZm9ybWF0KGNvbnN0 IGNoYXIqIGZtdCwgUHlTCisgICBQeU9iamVjdCAqcmVzID0gTlVMTDsKKyAgIFB5T2JqZWN0ICph cmdzID0gUHlUdXBsZV9OZXcoMSk7CisgICBpZiAoYXJncyAmJiAoUHlUdXBsZV9TZXRJdGVtKGFy Z3MsIDAsIFB5U3dpZ09iamVjdF9sb25nKHYpKSA9PSAwKSkgeworLSAgICBQeU9iamVjdCAqb2Zt dCA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoZm10KTsKKysgICAgUHlPYmplY3QgKm9mbXQgPSBQeVVu aWNvZGVfRnJvbVN0cmluZyhmbXQpOworICAgICBpZiAob2ZtdCkgeworLSAgICAgIHJlcyA9IFB5 U3RyaW5nX0Zvcm1hdChvZm10LGFyZ3MpOworKyAgICAgIHJlcyA9IFB5VW5pY29kZV9Gb3JtYXQo b2ZtdCxhcmdzKTsKKyAgICAgICBQeV9ERUNSRUYob2ZtdCk7CisgICAgIH0KKyAgICAgUHlfREVD UkVGKGFyZ3MpOworQEAgLTEwNDYsNyArMTA0Niw3IEBAIFNXSUdfUHl0aG9uX1R5cGVFcnJvcihj b25zdCBjaGFyICp0eXBlLAorICAgICAgIGNvbnN0IGNoYXIgKm90eXBlID0gKG9iaiA/IG9iai0+ b2JfdHlwZS0+dHBfbmFtZSA6IDApOyAKKyAgICAgICBpZiAob3R5cGUpIHsKKyAJUHlPYmplY3Qg KnN0ciA9IFB5T2JqZWN0X1N0cihvYmopOworLQljb25zdCBjaGFyICpjc3RyID0gc3RyID8gUHlT dHJpbmdfQXNTdHJpbmcoc3RyKSA6IDA7CisrCWNvbnN0IGNoYXIgKmNzdHIgPSBzdHIgPyBQeUJ5 dGVzX0FzU3RyaW5nKHN0cikgOiAwOworIAlpZiAoY3N0cikgeworIAkgIFB5RXJyX0Zvcm1hdChQ eUV4Y19UeXBlRXJyb3IsICJhICclcycgaXMgZXhwZWN0ZWQsICclcyglcyknIGlzIHJlY2VpdmVk IiwKKyAJCSAgICAgICB0eXBlLCBvdHlwZSwgY3N0cik7CitAQCAtMTA4Nyw5ICsxMDg3LDkgQEAg U1dJR19QeXRob25fQWRkRXJyTWVzZyhjb25zdCBjaGFyKiBtZXNnLAorICAgICAgIFB5X1hJTkNS RUYodHlwZSk7CisgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICBpZiAoaW5mcm9udCkgewor LQlQeUVycl9Gb3JtYXQodHlwZSwgIiVzICVzIiwgbWVzZywgUHlTdHJpbmdfQXNTdHJpbmcob2xk X3N0cikpOworKwlQeUVycl9Gb3JtYXQodHlwZSwgIiVzICVzIiwgbWVzZywgUHlCeXRlc19Bc1N0 cmluZyhvbGRfc3RyKSk7CisgICAgICAgfSBlbHNlIHsKKy0JUHlFcnJfRm9ybWF0KHR5cGUsICIl cyAlcyIsIFB5U3RyaW5nX0FzU3RyaW5nKG9sZF9zdHIpLCBtZXNnKTsKKysJUHlFcnJfRm9ybWF0 KHR5cGUsICIlcyAlcyIsIFB5Qnl0ZXNfQXNTdHJpbmcob2xkX3N0ciksIG1lc2cpOworICAgICAg IH0KKyAgICAgICBQeV9ERUNSRUYob2xkX3N0cik7CisgICAgIH0KK0BAIC0xMTM2LDcgKzExMzYs NyBAQCBTV0lHX1B5dGhvbl9Db252ZXJ0UHRyKFB5T2JqZWN0ICpvYmosIHZvCisgI2lmZGVmIFNX SUdfQ09CSkVDVF9UWVBFUworICAgaWYgKCEoUHlTd2lnT2JqZWN0X0NoZWNrKG9iaikpKSB7Cisg ICAgIGlmICghU1dJR190aGlzKQorLSAgICAgIFNXSUdfdGhpcyA9IFB5U3RyaW5nX0Zyb21TdHJp bmcoInRoaXMiKTsKKysgICAgICBTV0lHX3RoaXMgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygidGhp cyIpOworICAgICBweW9iaiA9IG9iajsKKyAgICAgb2JqID0gUHlPYmplY3RfR2V0QXR0cihvYmos U1dJR190aGlzKTsKKyAgICAgbmV3cmVmID0gMTsKK0BAIC0xMTUxLDE0ICsxMTUxLDE0IEBAIFNX SUdfUHl0aG9uX0NvbnZlcnRQdHIoUHlPYmplY3QgKm9iaiwgdm8KKyAgIGlmIChuZXdyZWYpIHsg UHlfREVDUkVGKG9iaik7IH0KKyAgIGdvdG8gdHlwZV9jaGVjazsKKyAjZWxzZQorLSAgaWYgKCEo UHlTdHJpbmdfQ2hlY2sob2JqKSkpIHsKKysgIGlmICghKFB5Qnl0ZXNfQ2hlY2sob2JqKSkpIHsK KyAgICAgaWYgKCFTV0lHX3RoaXMpCistICAgICAgU1dJR190aGlzID0gUHlTdHJpbmdfRnJvbVN0 cmluZygidGhpcyIpOworKyAgICAgIFNXSUdfdGhpcyA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJ0 aGlzIik7CisgICAgIHB5b2JqID0gb2JqOworICAgICBvYmogPSBQeU9iamVjdF9HZXRBdHRyKG9i aixTV0lHX3RoaXMpOworICAgICBuZXdyZWYgPSAxOworICAgICBpZiAoIW9iaikgZ290byB0eXBl X2Vycm9yOworLSAgICBpZiAoIVB5U3RyaW5nX0NoZWNrKG9iaikpIHsKKysgICAgaWYgKCFQeUJ5 dGVzX0NoZWNrKG9iaikpIHsKKyAgICAgICBQeV9ERUNSRUYob2JqKTsKKyAgICAgICBnb3RvIHR5 cGVfZXJyb3I7CisgICAgIH0KK0BAIC0xMjMxLDcgKzEyMzEsNyBAQCBTV0lHX1B5dGhvbl9Db252 ZXJ0UGFja2VkKFB5T2JqZWN0ICpvYmosCisgI2lmIGRlZmluZWQoU1dJR19DT0JKRUNUX1RZUEVT KSAmJiAhZGVmaW5lZChTV0lHX0NPQkpFQ1RfUFlUSE9OKQorICAgYyA9IFB5U3dpZ1BhY2tlZF9V bnBhY2tEYXRhKG9iaiwgcHRyLCBzeik7CisgI2Vsc2UKKy0gIGlmICgoIW9iaikgfHwgKCFQeVN0 cmluZ19DaGVjayhvYmopKSkgZ290byB0eXBlX2Vycm9yOworKyAgaWYgKCghb2JqKSB8fCAoIVB5 Qnl0ZXNfQ2hlY2sob2JqKSkpIGdvdG8gdHlwZV9lcnJvcjsKKyAgIGMgPSBQeVN0cmluZ19BU19T VFJJTkcob2JqKTsKKyAgIC8qIFBvaW50ZXIgdmFsdWVzIG11c3Qgc3RhcnQgd2l0aCBsZWFkaW5n IHVuZGVyc2NvcmUgKi8KKyAgIGMgPSBTV0lHX1VucGFja0RhdGFOYW1lKGMsIHB0ciwgc3osIHR5 LT5uYW1lKTsKK0BAIC0xMjc1LDcgKzEyNzUsNyBAQCBTV0lHX1B5dGhvbl9OZXdQb2ludGVyT2Jq KHZvaWQgKnB0ciwgc3dpCisgICB7CisgICAgIGNoYXIgcmVzdWx0W1NXSUdfQlVGRkVSX1NJWkVd OworICAgICByb2JqID0gU1dJR19QYWNrVm9pZFB0cihyZXN1bHQsIHB0ciwgdHlwZS0+bmFtZSwg c2l6ZW9mKHJlc3VsdCkpID8KKy0gICAgICBQeVN0cmluZ19Gcm9tU3RyaW5nKHJlc3VsdCkgOiAw OworKyAgICAgIFB5VW5pY29kZV9Gcm9tU3RyaW5nKHJlc3VsdCkgOiAwOworICAgfQorICNlbmRp ZgorICAgaWYgKCFyb2JqIHx8IChyb2JqID09IFB5X05vbmUpKSByZXR1cm4gcm9iajsKK0BAIC0x MzA4LDcgKzEzMDgsNyBAQCBTV0lHX1B5dGhvbl9OZXdQYWNrZWRPYmoodm9pZCAqcHRyLCBzaXpl CisgICB7CisgICAgIGNoYXIgcmVzdWx0W1NXSUdfQlVGRkVSX1NJWkVdOworICAgICByb2JqID0g U1dJR19QYWNrRGF0YU5hbWUocmVzdWx0LCBwdHIsIHN6LCB0eXBlLT5uYW1lLCBzaXplb2YocmVz dWx0KSkgPworLSAgICAgIFB5U3RyaW5nX0Zyb21TdHJpbmcocmVzdWx0KSA6IDA7CisrICAgICAg UHlVbmljb2RlX0Zyb21TdHJpbmcocmVzdWx0KSA6IDA7CisgICB9CisgI2VuZGlmCisgICByZXR1 cm4gcm9iajsKK0BAIC0xNDE5LDcgKzE0MTksNyBAQCBTV0lHSU5URVJOIGludAorIFNXSUdJTlRF Uk4gaW50CisgICBTV0lHX0FzVmFsX2xvbmcoUHlPYmplY3QgKiBvYmosIGxvbmcqIHZhbCkKKyB7 CistICBpZiAoUHlJbnRfQ2hlY2sob2JqKSkgeworKyAgaWYgKFB5TG9uZ19DaGVjayhvYmopKSB7 CisgICAgIGlmICh2YWwpICp2YWwgPSBQeUludF9BU19MT05HKG9iaik7CisgICAgIHJldHVybiAx OworICAgfQorQEAgLTE0OTIsNyArMTQ5Miw3IEBAIFNXSUdfQ2hlY2tfaW50KFB5T2JqZWN0KiBv YmopCisgCisgCisgICAvKkAvdXNyL2xvY2FsL3NoYXJlL3N3aWcvMS4zLjI1L3B5dGhvbi9weW1h Y3Jvcy5zd2csNjYsU1dJR19kZWZpbmVAKi8KKy0jZGVmaW5lIFNXSUdfRnJvbV9pbnQgUHlJbnRf RnJvbUxvbmcKKysjZGVmaW5lIFNXSUdfRnJvbV9pbnQgUHlMb25nX0Zyb21Mb25nCisgLypAQCov CisgCisgCitAQCAtMTUwMyw3ICsxNTAzLDcgQEAgU1dJR0lOVEVSTiBpbnQKKyAgICAgaWYgKHZh bCkgKnZhbCA9IFB5RmxvYXRfQVNfRE9VQkxFKG9iaik7CisgICAgIHJldHVybiAxOworICAgfSAg CistICBpZiAoUHlJbnRfQ2hlY2sob2JqKSkgeworKyAgaWYgKFB5TG9uZ19DaGVjayhvYmopKSB7 CisgICAgIGlmICh2YWwpICp2YWwgPSBQeUludF9BU19MT05HKG9iaik7CisgICAgIHJldHVybiAx OworICAgfQorQEAgLTE1NzcsNyArMTU3Nyw3IEBAIFNXSUdfQXNDaGFyUHRyQW5kU2l6ZShQeU9i amVjdCAqb2JqLCBjaGEKKyAgICAgcmV0dXJuIFNXSUdfT0xET0JKOworICAgfSBlbHNlIHsKKyAg ICAgUHlFcnJfQ2xlYXIoKTsKKy0gICAgaWYgKFB5U3RyaW5nX0NoZWNrKG9iaikpIHsKKysgICAg aWYgKFB5Qnl0ZXNfQ2hlY2sob2JqKSkgeworICAgICAgIGlmIChjcHRyKSB7CisgCSpjcHRyID0g UHlTdHJpbmdfQVNfU1RSSU5HKG9iaik7CisgCWlmIChwc2l6ZSkgeworQEAgLTI5NDMsNyArMjk0 Myw3IEBAIGV4dGVybiAiQyIgeworICAgICBTV0lHSU5URVJOIFB5T2JqZWN0ICoKKyAgICAgc3dp Z192YXJsaW5rX3JlcHIoc3dpZ192YXJsaW5rb2JqZWN0ICp2KSB7CisgICAgICAgICB2ID0gdjsK Ky0gICAgICAgIHJldHVybiBQeVN0cmluZ19Gcm9tU3RyaW5nKCI8U3dpZyBnbG9iYWwgdmFyaWFi bGVzPiIpOworKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKCI8U3dpZyBnbG9i YWwgdmFyaWFibGVzPiIpOworICAgICB9CisgICAgIAorICAgICBTV0lHSU5URVJOIGludAorQEAg LTMwODMsMTQgKzMwODMsMTQgQEAgZXh0ZXJuICJDIiB7CisgICAgICAgICBmb3IgKGkgPSAwOyBj b25zdGFudHNbaV0udHlwZTsgKytpKSB7CisgICAgICAgICAgICAgc3dpdGNoKGNvbnN0YW50c1tp XS50eXBlKSB7CisgICAgICAgICAgICAgICAgIGNhc2UgU1dJR19QWV9JTlQ6CistICAgICAgICAg ICAgICAgIG9iaiA9IFB5SW50X0Zyb21Mb25nKGNvbnN0YW50c1tpXS5sdmFsdWUpOworKyAgICAg ICAgICAgICAgICBvYmogPSBQeUxvbmdfRnJvbUxvbmcoY29uc3RhbnRzW2ldLmx2YWx1ZSk7Cisg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICBjYXNlIFNXSUdfUFlfRkxP QVQ6CisgICAgICAgICAgICAgICAgIG9iaiA9IFB5RmxvYXRfRnJvbURvdWJsZShjb25zdGFudHNb aV0uZHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGNh c2UgU1dJR19QWV9TVFJJTkc6CisgICAgICAgICAgICAgICAgIGlmIChjb25zdGFudHNbaV0ucHZh bHVlKSB7CistICAgICAgICAgICAgICAgICAgICBvYmogPSBQeVN0cmluZ19Gcm9tU3RyaW5nKChj aGFyICopIGNvbnN0YW50c1tpXS5wdmFsdWUpOworKyAgICAgICAgICAgICAgICAgICAgb2JqID0g UHlVbmljb2RlX0Zyb21TdHJpbmcoKGNoYXIgKikgY29uc3RhbnRzW2ldLnB2YWx1ZSk7CisgICAg ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoUHlf Tm9uZSk7CisgICAgICAgICAgICAgICAgICAgICBvYmogPSBQeV9Ob25lOwoKZGlmZiAtLWdpdCBh L2FwYnMuc3BlYyBiL2FwYnMuc3BlYwppbmRleCA2NmQxNWY2Li5lMGEwNjRmIDEwMDY0NAotLS0g YS9hcGJzLnNwZWMKKysrIGIvYXBicy5zcGVjCkBAIC0xMSw3ICsxMSw3IEBACiBOYW1lOiBhcGJz CiBTdW1tYXJ5OiBBZGFwdGl2ZSBQb2lzc29uIEJvbHR6bWFubiBTb2x2ZXIKIFZlcnNpb246IDMu MC4wCi1SZWxlYXNlOiAzNyV7ZGF0ZWNvbW1pdH0le3Nob3J0Y29tbWl0fSV7P2Rpc3R9CitSZWxl YXNlOiAzOCV7ZGF0ZWNvbW1pdH0le3Nob3J0Y29tbWl0fSV7P2Rpc3R9CiAjIGlBUEJTIGxvb2tz IGxpY2Vuc2VkIHdpdGggYSBMR1BMdjIrLCBBUEJTIGlzIHJlbGVhc2VkIHVuZGVyIEJTRCBsaWNl bnNlLgogTGljZW5zZTogTEdQTC0yLjAtb3ItbGF0ZXIgQU5EIEJTRC0zLUNsYXVzZQogVVJMOiBo dHRwczovL3d3dy5wb2lzc29uYm9sdHptYW5uLm9yZy8KQEAgLTI4LDYgKzI4LDEwIEBAIFBhdGNo MjogJXtuYW1lfS1weXRob24zMTEucGF0Y2gKIAogUGF0Y2gzOiBhcGJzLWM5OS5wYXRjaAogCisj IFJlcGxhY2UgcmVtb3ZlZCBQeXRob24gMiBDIEFQSSBtYWNyb3Mgd2l0aCBQeXRob24gMyBlcXVp dmFsZW50cworIyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFNXSUcgNC41LjAKK1BhdGNoNDogYXBi cy1zd2lnNDUucGF0Y2gKKwogQnVpbGRSZXF1aXJlczogZ2NjLWMrKwogQnVpbGRSZXF1aXJlczog Y21ha2UKIEJ1aWxkUmVxdWlyZXM6IGNocnBhdGgKQEAgLTExMiw2ICsxMTYsNyBAQCBQeXRob24g aW50ZXJmYWNlIG9mIEFQQlMuCiAlZW5kaWYKIAogJXBhdGNoIC1QIDMgLXAxCislcGF0Y2ggLVAg NCAtcDEKIAogY3AgLXAgY29udHJpYi9pYXBicy9DT1BZSU5HIGNvbnRyaWIvaWFwYnMvaWFwYnMt Q09QWUlORwogY3AgLXAgJXtTT1VSQ0UxfSBjb250cmliL2lhcGJzL2lhcGJzLUxHUEx2MgpAQCAt MjEzLDYgKzIxOCw5IEBAIGV4cG9ydCBQQVRIPSV7YnVpbGRyb290fSV7X2JpbmRpcn0KICVkb2Mg JV92cGF0aF9idWlsZGRpci9kb2MKIAogJWNoYW5nZWxvZworKiBNb24gSnVsIDI3IDIwMjYgSml0 a2EgUGxlc25pa292YSA8anBsZXNuaWtAcmVkaGF0LmNvbT4gLSAzLjAuMC0zOAorLSBSZXBsYWNl IHJlbW92ZWQgUHl0aG9uIDIgQyBBUEkgbWFjcm9zIGZvciBTV0lHIDQuNS4wIGNvbXBhdGliaWxp dHkKKwogKiBXZWQgSnVsIDIyIDIwMjYgUHl0aG9uIE1haW50IDxweXRob24tbWFpbnRAcmVkaGF0 LmNvbT4gLSAzLjAuMC0zNwogLSBSZWJ1aWx0IGZvciBQeXRob24gMy4xNS4wYjQgQUJJIGNoYW5n ZQogCg==