• Bug#1104484: libapache2-mod-auth-openidc: CVE-2025-3891 (3/4)

    From Moritz Schlarb@21:1/5 to All on Wed May 7 14:40:01 2025
    [continued from previous message]

    cGUgPSBPSURDX1NFU1NJT05fVFlQRV9DTElFTlRfQ09PS0lFOworIAkJKnN0b3JlX2lkX3Rva2Vu ID0gRkFMU0U7CisgCX0KKyAKKyAJaWYgKHApIHsKKy0JCWlmIChhcHJfc3RybmF0Y21wKHAsIE9J RENfU0VTU0lPTl9UWVBFX1BFUlNJU1RFTlQpID09IDApIHsKKysJCWlmIChfb2lkY19zdHJjbXAo cCwgT0lEQ19TRVNTSU9OX1RZUEVfUEVSU0lTVEVOVCkgPT0gMCkgeworIAkJCSpwZXJzaXN0ZW50 ID0gMTsKKy0JCX0gZWxzZSBpZiAoYXByX3N0cm5hdGNtcChwLCBPSURDX1NFU1NJT05fVFlQRV9T VE9SRV9JRF9UT0tFTikgPT0gMCkgeworKwkJfSBlbHNlIGlmIChfb2lkY19zdHJjbXAocCwgT0lE Q19TRVNTSU9OX1RZUEVfU1RPUkVfSURfVE9LRU4pID09IDApIHsKKyAJCQkvLyBvbmx5IGZvciBj bGllbnQtY29va2llCisgCQkJKnN0b3JlX2lkX3Rva2VuID0gVFJVRTsKKy0JCX0gZWxzZSBpZiAo YXByX3N0cm5hdGNtcChwLCBPSURDX1NFU1NJT05fVFlQRV9TRVBBUkFUT1IgT0lEQ19TRVNTSU9O X1RZUEVfUEVSU0lTVEVOVCBPSURDX1NFU1NJT05fVFlQRV9TRVBBUkFUT1IgT0lEQ19TRVNTSU9O X1RZUEVfU1RPUkVfSURfVE9LRU4pCisrCQl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChwLCBPSURD X1NFU1NJT05fVFlQRV9TRVBBUkFUT1IgT0lEQ19TRVNTSU9OX1RZUEVfUEVSU0lTVEVOVCBPSURD X1NFU1NJT05fVFlQRV9TRVBBUkFUT1IgT0lEQ19TRVNTSU9OX1RZUEVfU1RPUkVfSURfVE9LRU4p CisgCQkJCT09IDApIHsKKyAJCQkvLyBvbmx5IGZvciBjbGllbnQtY29va2llCisgCQkJKnBlcnNp c3RlbnQgPSAxOworQEAgLTYzMywxMyArNjMzLDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyICpvaWRj X3BhcnNlX2tleV92YWx1ZShhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFyICplbmMsCisgCWNv bnN0IGNoYXIgKnJ2ID0gb2lkY192YWxpZF9zdHJpbmdfb3B0aW9uKHBvb2wsIGVuYywgb3B0aW9u cyk7CisgCWlmIChydiAhPSBOVUxMKQorIAkJcmV0dXJuIHJ2OworLQlpZiAoYXByX3N0cm5hdGNt cChlbmMsIE9JRENfS0VZX0VOQ09ESU5HX0JBU0U2NCkgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNt cChlbmMsIE9JRENfS0VZX0VOQ09ESU5HX0JBU0U2NCkgPT0gMCkKKyAJCXJldHVybiBvaWRjX3Bh cnNlX2Jhc2U2NChwb29sLCBpbnB1dCwga2V5LCBrZXlfbGVuKTsKKy0JaWYgKGFwcl9zdHJuYXRj bXAoZW5jLCBPSURDX0tFWV9FTkNPRElOR19CQVNFNjRfVVJMKSA9PSAwKQorKwlpZiAoX29pZGNf c3RyY21wKGVuYywgT0lEQ19LRVlfRU5DT0RJTkdfQkFTRTY0X1VSTCkgPT0gMCkKKyAJCXJldHVy biBvaWRjX3BhcnNlX2Jhc2U2NHVybChwb29sLCBpbnB1dCwga2V5LCBrZXlfbGVuKTsKKy0JaWYg KGFwcl9zdHJuYXRjbXAoZW5jLCBPSURDX0tFWV9FTkNPRElOR19IRVgpID09IDApCisrCWlmIChf b2lkY19zdHJjbXAoZW5jLCBPSURDX0tFWV9FTkNPRElOR19IRVgpID09IDApCisgCQlyZXR1cm4g b2lkY19wYXJzZV9oZXgocG9vbCwgaW5wdXQsIGtleSwga2V5X2xlbik7CistCWlmIChhcHJfc3Ry bmF0Y21wKGVuYywgT0lEQ19LRVlfRU5DT0RJTkdfUExBSU4pID09IDApIHsKKysJaWYgKF9vaWRj X3N0cmNtcChlbmMsIE9JRENfS0VZX0VOQ09ESU5HX1BMQUlOKSA9PSAwKSB7CisgCQkqa2V5ID0g YXByX3BzdHJkdXAocG9vbCwgaW5wdXQpOworIAkJKmtleV9sZW4gPSBzdHJsZW4oKmtleSk7Cisg CX0KK0BAIC02NTYsNyArNjU2LDcgQEAgY29uc3QgY2hhciAqb2lkY19wYXJzZV9lbmNfa2lkX2tl eV90dXBsZShhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFyICp0dXBsZSwKKyAJY29uc3QgY2hh ciAqcnYgPSBOVUxMOworIAljaGFyICpzID0gTlVMTCwgKnAgPSBOVUxMLCAqcSA9IE5VTEwsICpl bmMgPSBOVUxMOworIAorLQlpZiAoKHR1cGxlID09IE5VTEwpIHx8IChhcHJfc3RybmF0Y21wKHR1 cGxlLCAiIikgPT0gMCkpCisrCWlmICgodHVwbGUgPT0gTlVMTCkgfHwgKF9vaWRjX3N0cmNtcCh0 dXBsZSwgIiIpID09IDApKQorIAkJcmV0dXJuICJ0dXBsZSB2YWx1ZSBub3Qgc2V0IjsKKyAKKyAJ cyA9IGFwcl9wc3RyZHVwKHBvb2wsIHR1cGxlKTsKK0BAIC02OTYsMTEgKzY5NiwxMSBAQCBjb25z dCBjaGFyICpvaWRjX3BhcnNlX2VuY19raWRfa2V5X3R1cGxlKGFwcl9wb29sX3QgKnBvb2wsIGNv bnN0IGNoYXIgKnR1cGxlLAorICAqIGNvbnZlcnQgYSAicGFzcyBpZCB0b2tlbiBhcyIgdmFsdWUg dG8gYW4gaW50ZWdlcgorICAqLworIHN0YXRpYyBpbnQgb2lkY19wYXJzZV9wYXNzX2lkdG9rZW5f YXNfc3RyMmludChjb25zdCBjaGFyICp2KSB7CistCWlmIChhcHJfc3RybmF0Y21wKHYsIE9JRENf UEFTU19JRF9UT0tFTl9BU19DTEFJTVNfU1RSKSA9PSAwKQorKwlpZiAoX29pZGNfc3RyY21wKHYs IE9JRENfUEFTU19JRF9UT0tFTl9BU19DTEFJTVNfU1RSKSA9PSAwKQorIAkJcmV0dXJuIE9JRENf UEFTU19JRFRPS0VOX0FTX0NMQUlNUzsKKy0JaWYgKGFwcl9zdHJuYXRjbXAodiwgT0lEQ19QQVNT X0lEVE9LRU5fQVNfUEFZTE9BRF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJjbXAodiwgT0lE Q19QQVNTX0lEVE9LRU5fQVNfUEFZTE9BRF9TVFIpID09IDApCisgCQlyZXR1cm4gT0lEQ19QQVNT X0lEVE9LRU5fQVNfUEFZTE9BRDsKKy0JaWYgKGFwcl9zdHJuYXRjbXAodiwgT0lEQ19QQVNTX0lE VE9LRU5fQVNfU0VSSUFMSVpFRF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJjbXAodiwgT0lE Q19QQVNTX0lEVE9LRU5fQVNfU0VSSUFMSVpFRF9TVFIpID09IDApCisgCQlyZXR1cm4gT0lEQ19Q QVNTX0lEVE9LRU5fQVNfU0VSSUFMSVpFRDsKKyAJcmV0dXJuIC0xOworIH0KK0BAIC03NDgsMTEg Kzc0OCwxMSBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3Bhc3NfaWR0b2tlbl9hcyhhcHJfcG9v bF90ICpwb29sLCBjb25zdCBjaGFyICp2MSwKKyAgKiBjb252ZXJ0IGEgInBhc3MgdXNlcmluZm8g YXMiIHZhbHVlIHRvIGFuIGludGVnZXIKKyAgKi8KKyBzdGF0aWMgaW50IG9pZGNfcGFyc2VfcGFz c191c2VyaW5mb19hc19zdHIyaW50KGNvbnN0IGNoYXIgKnYpIHsKKy0JaWYgKGFwcl9zdHJuYXRj bXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0NMQUlNU19TVFIpID09IDApCisrCWlmIChfb2lk Y19zdHJjbXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0NMQUlNU19TVFIpID09IDApCisgCQly ZXR1cm4gT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0NMQUlNUzsKKy0JaWYgKGFwcl9zdHJuYXRjbXAo diwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pTT05fT0JKRUNUX1NUUikgPT0gMCkKKysJaWYgKF9v aWRjX3N0cmNtcCh2LCBPSURDX1BBU1NfVVNFUklORk9fQVNfSlNPTl9PQkpFQ1RfU1RSKSA9PSAw KQorIAkJcmV0dXJuIE9JRENfUEFTU19VU0VSSU5GT19BU19KU09OX09CSkVDVDsKKy0JaWYgKGFw cl9zdHJuYXRjbXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pXVF9TVFIpID09IDApCisrCWlm IChfb2lkY19zdHJjbXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pXVF9TVFIpID09IDApCisg CQlyZXR1cm4gT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pXVDsKKyAJcmV0dXJuIC0xOworIH0KK0BA IC03OTgsNyArNzk4LDcgQEAgY29uc3QgY2hhciAqb2lkY19wYXJzZV9wYXNzX3VzZXJpbmZvX2Fz KGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNoYXIgKnYxLAorICAqIGNvbnZlcnQgYSAibG9nb3V0 X29uX2Vycm9yIiB0byBhbiBpbnRlZ2VyCisgICovCisgc3RhdGljIGludCBvaWRjX3BhcnNlX2xv Z291dF9vbl9lcnJvcl9yZWZyZXNoX2FzX3N0cjJpbnQoY29uc3QgY2hhciAqdikgeworLQlpZiAo YXByX3N0cm5hdGNtcCh2LCBPSURDX0xPR09VVF9PTl9FUlJPUl9SRUZSRVNIX1NUUikgPT0gMCkK KysJaWYgKF9vaWRjX3N0cmNtcCh2LCBPSURDX0xPR09VVF9PTl9FUlJPUl9SRUZSRVNIX1NUUikg PT0gMCkKKyAJCXJldHVybiBPSURDX0xPR09VVF9PTl9FUlJPUl9SRUZSRVNIOworIAlyZXR1cm4g T0lEQ19DT05GSUdfUE9TX0lOVF9VTlNFVDsKKyB9CitAQCAtODU5LDExICs4NTksMTEgQEAgY29u c3QgY2hhciAqb2lkY19hY2NlcHRfb2F1dGhfdG9rZW5faW4yc3RyKGFwcl9wb29sX3QgKnBvb2ws IGFwcl9ieXRlX3QgdikgeworICAqIGNvbnZlcnQgYW4gImFjY2VwdCBPQXV0aCAyLjAgdG9rZW4g aW4iIHZhbHVlIHRvIGFuIGludGVnZXIKKyAgKi8KKyBzdGF0aWMgYXByX2J5dGVfdCBvaWRjX3Bh cnNlX29hdXRoX2FjY2VwdF90b2tlbl9pbl9zdHIyYnl0ZShjb25zdCBjaGFyICp2KSB7CistCWlm IChhcHJfc3RybmF0Y21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VOX0lOX0hFQURFUl9TVFIp ID09IDApCisrCWlmIChfb2lkY19zdHJjbXAodiwgT0lEQ19PQVVUSF9BQ0NFUFRfVE9LRU5fSU5f SEVBREVSX1NUUikgPT0gMCkKKyAJCXJldHVybiBPSURDX09BVVRIX0FDQ0VQVF9UT0tFTl9JTl9I RUFERVI7CistCWlmIChhcHJfc3RybmF0Y21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VOX0lO X1BPU1RfU1RSKSA9PSAwKQorKwlpZiAoX29pZGNfc3RyY21wKHYsIE9JRENfT0FVVEhfQUNDRVBU X1RPS0VOX0lOX1BPU1RfU1RSKSA9PSAwKQorIAkJcmV0dXJuIE9JRENfT0FVVEhfQUNDRVBUX1RP S0VOX0lOX1BPU1Q7CistCWlmIChhcHJfc3RybmF0Y21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RP S0VOX0lOX1FVRVJZX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcCh2LCBPSURDX09BVVRI X0FDQ0VQVF9UT0tFTl9JTl9RVUVSWV9TVFIpID09IDApCisgCQlyZXR1cm4gT0lEQ19PQVVUSF9B Q0NFUFRfVE9LRU5fSU5fUVVFUlk7CisgCWlmIChzdHJzdHIodiwgT0lEQ19PQVVUSF9BQ0NFUFRf VE9LRU5fSU5fQ09PS0lFX1NUUikgPT0gdikKKyAJCXJldHVybiBPSURDX09BVVRIX0FDQ0VQVF9U T0tFTl9JTl9DT09LSUU7CitAQCAtOTQxLDcgKzk0MSw3IEBAIGNvbnN0IGNoYXIgKm9pZGNfcGFy c2VfY2xhaW1fcmVxdWlyZWQoYXByX3Bvb2xfdCAqcG9vbCwgY29uc3QgY2hhciAqYXJnLAorIAlj b25zdCBjaGFyICpydiA9IG9pZGNfdmFsaWRfc3RyaW5nX29wdGlvbihwb29sLCBhcmcsIG9wdGlv bnMpOworIAlpZiAocnYgIT0gTlVMTCkKKyAJCXJldHVybiBydjsKKy0JKmlzX3JlcXVpcmVkID0g KGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX0NMQUlNX1JFUVVJUkVEX01BTkRBVE9SWSkgPT0gMCk7 CisrCSppc19yZXF1aXJlZCA9IChfb2lkY19zdHJjbXAoYXJnLCBPSURDX0NMQUlNX1JFUVVJUkVE X01BTkRBVE9SWSkgPT0gMCk7CisgCXJldHVybiBOVUxMOworIH0KKyAKK0BAIC05NzYsMTYgKzk3 NiwxNiBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3NldF9jbGFpbXNfYXMoYXByX3Bvb2xfdCAq cG9vbCwgY29uc3QgY2hhciAqYXJnLAorIAlpZiAocnYgIT0gTlVMTCkKKyAJCXJldHVybiBydjsK KyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1BBU1NfQ0xBSU1TX0FTX0JPVEgpID09 IDApIHsKKysJaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfUEFTU19DTEFJTVNfQVNfQk9USCkg PT0gMCkgeworIAkJKmluX2hlYWRlcnMgPSAxOworIAkJKmluX2Vudl92YXJzID0gMTsKKy0JfSBl bHNlIGlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19QQVNTX0NMQUlNU19BU19IRUFERVJTKSA9 PSAwKSB7CisrCX0gZWxzZSBpZiAoX29pZGNfc3RyY21wKGFyZywgT0lEQ19QQVNTX0NMQUlNU19B U19IRUFERVJTKSA9PSAwKSB7CisgCQkqaW5faGVhZGVycyA9IDE7CisgCQkqaW5fZW52X3ZhcnMg PSAwOworLQl9IGVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1BBU1NfQ0xBSU1TX0FT X0VOVikgPT0gMCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfUEFTU19D TEFJTVNfQVNfRU5WKSA9PSAwKSB7CisgCQkqaW5faGVhZGVycyA9IDA7CisgCQkqaW5fZW52X3Zh cnMgPSAxOworLQl9IGVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1BBU1NfQ0xBSU1T X0FTX05PTkUpID09IDApIHsKKysJfSBlbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1BB U1NfQ0xBSU1TX0FTX05PTkUpID09IDApIHsKKyAJCSppbl9oZWFkZXJzID0gMDsKKyAJCSppbl9l bnZfdmFycyA9IDA7CisgCX0KK0BAIC0xMDE1LDE1ICsxMDE1LDE1IEBAIGNvbnN0IGNoYXIgKm9p ZGNfcGFyc2VfdW5hdXRoX2FjdGlvbihhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFyICphcmcs CisgCWlmIChydiAhPSBOVUxMKQorIAkJcmV0dXJuIHJ2OworIAorLQlpZiAoYXByX3N0cm5hdGNt cChhcmcsIE9JRENfVU5BVVRIX0FDVElPTl9BVVRIX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0 cmNtcChhcmcsIE9JRENfVU5BVVRIX0FDVElPTl9BVVRIX1NUUikgPT0gMCkKKyAJCSphY3Rpb24g PSBPSURDX1VOQVVUSF9BVVRIRU5USUNBVEU7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJn LCBPSURDX1VOQVVUSF9BQ1RJT05fUEFTU19TVFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0 cmNtcChhcmcsIE9JRENfVU5BVVRIX0FDVElPTl9QQVNTX1NUUikgPT0gMCkKKyAJCSphY3Rpb24g PSBPSURDX1VOQVVUSF9QQVNTOworLQllbHNlIGlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19V TkFVVEhfQUNUSU9OXzQwMV9TVFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcs IE9JRENfVU5BVVRIX0FDVElPTl80MDFfU1RSKSA9PSAwKQorIAkJKmFjdGlvbiA9IE9JRENfVU5B VVRIX1JFVFVSTjQwMTsKKy0JZWxzZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENfVU5BVVRI X0FDVElPTl80MDdfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURD X1VOQVVUSF9BQ1RJT05fNDA3X1NUUikgPT0gMCkKKyAJCSphY3Rpb24gPSBPSURDX1VOQVVUSF9S RVRVUk40MDc7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1VOQVVUSF9BQ1RJ T05fNDEwX1NUUikgPT0gMCkKKysJZWxzZSBpZiAoX29pZGNfc3RyY21wKGFyZywgT0lEQ19VTkFV VEhfQUNUSU9OXzQxMF9TVFIpID09IDApCisgCQkqYWN0aW9uID0gT0lEQ19VTkFVVEhfUkVUVVJO NDEwOworIAorIAlyZXR1cm4gTlVMTDsKK0BAIC0xMDQ5LDEzICsxMDQ5LDEzIEBAIGNvbnN0IGNo YXIgKm9pZGNfcGFyc2VfdW5hdXR6X2FjdGlvbihhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFy ICphcmcsCisgCWlmIChydiAhPSBOVUxMKQorIAkJcmV0dXJuIHJ2OworIAorLQlpZiAoYXByX3N0 cm5hdGNtcChhcmcsIE9JRENfVU5BVVRaX0FDVElPTl9BVVRIX1NUUikgPT0gMCkKKysJaWYgKF9v aWRjX3N0cmNtcChhcmcsIE9JRENfVU5BVVRaX0FDVElPTl9BVVRIX1NUUikgPT0gMCkKKyAJCSph Y3Rpb24gPSBPSURDX1VOQVVUWl9BVVRIRU5USUNBVEU7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRj bXAoYXJnLCBPSURDX1VOQVVUWl9BQ1RJT05fNDAxX1NUUikgPT0gMCkKKysJZWxzZSBpZiAoX29p ZGNfc3RyY21wKGFyZywgT0lEQ19VTkFVVFpfQUNUSU9OXzQwMV9TVFIpID09IDApCisgCQkqYWN0 aW9uID0gT0lEQ19VTkFVVFpfUkVUVVJONDAxOworLQllbHNlIGlmIChhcHJfc3RybmF0Y21wKGFy ZywgT0lEQ19VTkFVVFpfQUNUSU9OXzQwM19TVFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0 cmNtcChhcmcsIE9JRENfVU5BVVRaX0FDVElPTl80MDNfU1RSKSA9PSAwKQorIAkJKmFjdGlvbiA9 IE9JRENfVU5BVVRaX1JFVFVSTjQwMzsKKy0JZWxzZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9J RENfVU5BVVRaX0FDVElPTl8zMDJfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAo YXJnLCBPSURDX1VOQVVUWl9BQ1RJT05fMzAyX1NUUikgPT0gMCkKKyAJCSphY3Rpb24gPSBPSURD X1VOQVVUWl9SRVRVUk4zMDI7CisgCisgCXJldHVybiBOVUxMOworQEAgLTEwODMsNyArMTA4Myw3 IEBAIGNvbnN0IGNoYXIgKm9pZGNfdmFsaWRfc3RyaW5nX2luX2FycmF5KGFwcl9wb29sX3QgKnBv b2wsIGpzb25fdCAqanNvbiwKKyAJCQkJZm91bmQgPSBUUlVFOworIAkJCQlpZiAodmFsdWUgIT0g TlVMTCkgeworIAkJCQkJaWYgKChwcmVmZXJlbmNlICE9IE5VTEwpCistCQkJCQkJCSYmIChhcHJf c3RybmF0Y21wKGpzb25fc3RyaW5nX3ZhbHVlKGVsZW0pLAorKwkJCQkJCQkmJiAoX29pZGNfc3Ry Y21wKGpzb25fc3RyaW5nX3ZhbHVlKGVsZW0pLAorIAkJCQkJCQkJCXByZWZlcmVuY2UpID09IDAp KSB7CisgCQkJCQkJKnZhbHVlID0gYXByX3BzdHJkdXAocG9vbCwganNvbl9zdHJpbmdfdmFsdWUo ZWxlbSkpOworIAkJCQkJCWJyZWFrOworQEAgLTExODksOSArMTE4OSw5IEBAIGNvbnN0IGNoYXIg Km9pZGNfcGFyc2VfdXNlcmluZm9fdG9rZW5fbWV0aG9kKGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0 IGNoYXIgKmFyZywKKyAJaWYgKHJ2ICE9IE5VTEwpCisgCQlyZXR1cm4gcnY7CisgCistCWlmIChh cHJfc3RybmF0Y21wKGFyZywgT0lEQ19VU0VSX0lORk9fVE9LRU5fTUVUSE9EX0hFQURFUl9TVFIp ID09IDApCisrCWlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1VTRVJfSU5GT19UT0tFTl9NRVRI T0RfSEVBREVSX1NUUikgPT0gMCkKKyAJCSppbnRfdmFsdWUgPSBPSURDX1VTRVJfSU5GT19UT0tF Tl9NRVRIT0RfSEVBREVSOworLQlpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENfVVNFUl9JTkZP X1RPS0VOX01FVEhPRF9QT1NUX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9J RENfVVNFUl9JTkZPX1RPS0VOX01FVEhPRF9QT1NUX1NUUikgPT0gMCkKKyAJCSppbnRfdmFsdWUg PSBPSURDX1VTRVJfSU5GT19UT0tFTl9NRVRIT0RfUE9TVDsKKyAKKyAJcmV0dXJuIE5VTEw7CitA QCAtMTI2MywxMyArMTI2MywxMyBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3Rva2VuX2JpbmRp bmdfcG9saWN5KGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNoYXIgKmFyZywKKyAJaWYgKHJ2ICE9 IE5VTEwpCisgCQlyZXR1cm4gcnY7CisgCistCWlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19U T0tFTl9CSU5ESU5HX1BPTElDWV9ESVNBQkxFRF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJj bXAoYXJnLCBPSURDX1RPS0VOX0JJTkRJTkdfUE9MSUNZX0RJU0FCTEVEX1NUUikgPT0gMCkKKyAJ CSpwb2xpY3kgPSBPSURDX1RPS0VOX0JJTkRJTkdfUE9MSUNZX0RJU0FCTEVEOworLQllbHNlIGlm IChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19UT0tFTl9CSU5ESU5HX1BPTElDWV9PUFRJT05BTF9T VFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfVE9LRU5fQklORElO R19QT0xJQ1lfT1BUSU9OQUxfU1RSKSA9PSAwKQorIAkJKnBvbGljeSA9IE9JRENfVE9LRU5fQklO RElOR19QT0xJQ1lfT1BUSU9OQUw7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURD X1RPS0VOX0JJTkRJTkdfUE9MSUNZX1JFUVVJUkVEX1NUUikgPT0gMCkKKysJZWxzZSBpZiAoX29p ZGNfc3RyY21wKGFyZywgT0lEQ19UT0tFTl9CSU5ESU5HX1BPTElDWV9SRVFVSVJFRF9TVFIpID09 IDApCisgCQkqcG9saWN5ID0gT0lEQ19UT0tFTl9CSU5ESU5HX1BPTElDWV9SRVFVSVJFRDsKKy0J ZWxzZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENfVE9LRU5fQklORElOR19QT0xJQ1lfRU5G T1JDRURfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1RPS0VO X0JJTkRJTkdfUE9MSUNZX0VORk9SQ0VEX1NUUikgPT0gMCkKKyAJCSpwb2xpY3kgPSBPSURDX1RP S0VOX0JJTkRJTkdfUE9MSUNZX0VORk9SQ0VEOworIAorIAlyZXR1cm4gTlVMTDsKK0BAIC0xMjk4 LDkgKzEyOTgsOSBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX2F1dGhfcmVxdWVzdF9tZXRob2Qo YXByX3Bvb2xfdCAqcG9vbCwgY29uc3QgY2hhciAqYXJnLAorIAlpZiAocnYgIT0gTlVMTCkKKyAJ CXJldHVybiBydjsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX0FVVEhfUkVRVUVT VF9NRVRIT0RfR0VUX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfQVVU SF9SRVFVRVNUX01FVEhPRF9HRVRfU1RSKSA9PSAwKQorIAkJKm1ldGhvZCA9IE9JRENfQVVUSF9S RVFVRVNUX01FVEhPRF9HRVQ7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX0FV VEhfUkVRRVVTVF9NRVRIT0RfUE9TVF9TVFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNt cChhcmcsIE9JRENfQVVUSF9SRVFFVVNUX01FVEhPRF9QT1NUX1NUUikgPT0gMCkKKyAJCSptZXRo b2QgPSBPSURDX0FVVEhfUkVRVUVTVF9NRVRIT0RfUE9TVDsKKyAKKyAJcmV0dXJuIE5VTEw7CitA QCAtMTM2MiwxMyArMTM2MiwxMyBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3NldF9zdGF0ZV9p bnB1dF9oZWFkZXJzX2FzKGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNoYXIgKgorIAlpZiAocnYg IT0gTlVMTCkKKyAJCXJldHVybiBydjsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURD X1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfQk9USCkgPT0gMCkgeworKwlpZiAoX29pZGNfc3RyY21w KGFyZywgT0lEQ19TVEFURV9JTlBVVF9IRUFERVJTX0FTX0JPVEgpID09IDApIHsKKyAJCSpzdGF0 ZV9pbnB1dF9oZWFkZXJzID0gT0lEQ19TVEFURV9JTlBVVF9IRUFERVJTX1VTRVJfQUdFTlQgfCBP SURDX1NUQVRFX0lOUFVUX0hFQURFUlNfWF9GT1JXQVJERURfRk9SOworLQl9IGVsc2UgaWYgKGFw cl9zdHJuYXRjbXAoYXJnLCBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfVVNFUl9BR0VOVCkg PT0gMCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfU1RBVEVfSU5QVVRf SEVBREVSU19BU19VU0VSX0FHRU5UKSA9PSAwKSB7CisgCQkqc3RhdGVfaW5wdXRfaGVhZGVycyA9 IE9JRENfU1RBVEVfSU5QVVRfSEVBREVSU19VU0VSX0FHRU5UOworLQl9IGVsc2UgaWYgKGFwcl9z dHJuYXRjbXAoYXJnLCBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfWF9GT1JXQVJERURfRk9S KSA9PSAwKSB7CisrCX0gZWxzZSBpZiAoX29pZGNfc3RyY21wKGFyZywgT0lEQ19TVEFURV9JTlBV VF9IRUFERVJTX0FTX1hfRk9SV0FSREVEX0ZPUikgPT0gMCkgeworIAkJKnN0YXRlX2lucHV0X2hl YWRlcnMgPSBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfWF9GT1JXQVJERURfRk9SOworLQl9IGVs c2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfTk9O RSkgPT0gMCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfU1RBVEVfSU5Q VVRfSEVBREVSU19BU19OT05FKSA9PSAwKSB7CisgCQkqc3RhdGVfaW5wdXRfaGVhZGVycyA9IDA7 CisgCX0KKyAKK0BAIC0xMzg3LDEzICsxMzg3LDEzIEBAIGNvbnN0IGNoYXIqIG9pZGNfcGFyc2Vf eF9mb3J3YXJkZWRfaGVhZGVycyhhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFyICphcmcsCisg CWlmIChydiAhPSBOVUxMKQorIAkJcmV0dXJuIHJ2OworIAorLQlpZiAoYXByX3N0cm5hdGNtcChh cmcsIE9JRENfSFRUUF9IRFJfWF9GT1JXQVJERURfSE9TVCkgPT0gMCkgeworKwlpZiAoX29pZGNf c3RyY21wKGFyZywgT0lEQ19IVFRQX0hEUl9YX0ZPUldBUkRFRF9IT1NUKSA9PSAwKSB7CisgCQkq eF9mb3J3YXJkZWRfaGVhZGVycyB8PSBPSURDX0hEUl9YX0ZPUldBUkRFRF9IT1NUOworLQl9IGVs c2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX0hUVFBfSERSX1hfRk9SV0FSREVEX1BPUlQp ID09IDApIHsKKysJfSBlbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX0hUVFBfSERSX1hf Rk9SV0FSREVEX1BPUlQpID09IDApIHsKKyAJCSp4X2ZvcndhcmRlZF9oZWFkZXJzIHw9IE9JRENf SERSX1hfRk9SV0FSREVEX1BPUlQ7CistCX0gZWxzZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9J RENfSFRUUF9IRFJfWF9GT1JXQVJERURfUFJPVE8pID09IDApIHsKKysJfSBlbHNlIGlmIChfb2lk Y19zdHJjbXAoYXJnLCBPSURDX0hUVFBfSERSX1hfRk9SV0FSREVEX1BST1RPKSA9PSAwKSB7Cisg CQkqeF9mb3J3YXJkZWRfaGVhZGVycyB8PSBPSURDX0hEUl9YX0ZPUldBUkRFRF9QUk9UTzsKKy0J fSBlbHNlIGlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19IVFRQX0hEUl9GT1JXQVJERUQpID09 IDApIHsKKysJfSBlbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX0hUVFBfSERSX0ZPUldB UkRFRCkgPT0gMCkgeworIAkJKnhfZm9yd2FyZGVkX2hlYWRlcnMgfD0gT0lEQ19IRFJfRk9SV0FS REVEOworIAl9CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Byb3RvLmMgYi9zcmMvcHJvdG8uYworaW5k ZXggYWZiOGFkOC4uYjkwZjk5MSAxMDA2NDQKKy0tLSBhL3NyYy9wcm90by5jCisrKysgYi9zcmMv cHJvdG8uYworQEAgLTE0NCw3ICsxNDQsNyBAQCBzdGF0aWMgYXByX2J5dGVfdCBvaWRjX3Byb3Rv X3BhcmFtX25lZWRzX2FjdGlvbihqc29uX3QgKnJlcXVlc3Rfb2JqZWN0X2NvbmZpZywKKyAJd2hp bGUgKGluZGV4IDwganNvbl9hcnJheV9zaXplKGNvcHlfZnJvbV9yZXF1ZXN0KSkgeworIAkJanNv bl90ICp2YWx1ZSA9IGpzb25fYXJyYXlfZ2V0KGNvcHlfZnJvbV9yZXF1ZXN0LCBpbmRleCk7Cisg CQlpZiAoKGpzb25faXNfc3RyaW5nKHZhbHVlKSkKKy0JCQkJJiYgKGFwcl9zdHJuYXRjbXAoanNv bl9zdHJpbmdfdmFsdWUodmFsdWUpLCBwYXJhbWV0ZXJfbmFtZSkgPT0gMCkpIHsKKysJCQkJJiYg KF9vaWRjX3N0cmNtcChqc29uX3N0cmluZ192YWx1ZSh2YWx1ZSksIHBhcmFtZXRlcl9uYW1lKSA9 PSAwKSkgeworIAkJCXJldHVybiBUUlVFOworIAkJfQorIAkJaW5kZXgrKzsKK0BAIC0yNTIsNyAr MjUyLDcgQEAgYXByX2J5dGVfdCBvaWRjX3Byb3RvX2dldF9lbmNyeXB0aW9uX2p3a19ieV90eXBl KHJlcXVlc3RfcmVjICpyLCBvaWRjX2NmZyAqY2ZnLAorIAorIAkJY29uc3QgY2hhciAqdXNlID0g anNvbl9zdHJpbmdfdmFsdWUoCisgCQkJCWpzb25fb2JqZWN0X2dldChlbGVtLCBPSURDX0pXS19V U0UpKTsKKy0JCWlmICgodXNlICE9IE5VTEwpICYmIChzdHJjbXAodXNlLCBPSURDX0pXS19FTkMp ICE9IDApKSB7CisrCQlpZiAoKHVzZSAhPSBOVUxMKSAmJiAoX29pZGNfc3RyY21wKHVzZSwgT0lE Q19KV0tfRU5DKSAhPSAwKSkgeworIAkJCW9pZGNfZGVidWcociwgInNraXBwaW5nIGtleSBiZWNh dXNlIG9mIG5vbi1tYXRjaGluZyBcIiVzXCI6IFwiJXNcIiIsCisgCQkJCQlPSURDX0pXS19VU0Us IHVzZSk7CisgCQkJY29udGludWU7CitAQCAtMzQwLDcgKzM0MCw3IEBAIGNoYXIqIG9pZGNfcHJv dG9fY3JlYXRlX3JlcXVlc3Rfb2JqZWN0KHJlcXVlc3RfcmVjICpyLAorIAkJCSZyZXF1ZXN0X29i amVjdC0+aGVhZGVyLmFsZywgIm5vbmUiKTsKKyAKKyAJLyogc2VlIGlmIHdlIG5lZWQgdG8gc2ln biB0aGUgcmVxdWVzdCBvYmplY3QgKi8KKy0JaWYgKHN0cmNtcChyZXF1ZXN0X29iamVjdC0+aGVh ZGVyLmFsZywgIm5vbmUiKSAhPSAwKSB7CisrCWlmIChfb2lkY19zdHJjbXAocmVxdWVzdF9vYmpl Y3QtPmhlYWRlci5hbGcsICJub25lIikgIT0gMCkgeworIAorIAkJc2p3ayA9IE5VTEw7CisgCQlq d2tfbmVlZHNfZGVzdHJveSA9IDA7CitAQCAtNTM3LDkgKzUzNyw5IEBAIHN0YXRpYyB2b2lkIG9p ZGNfcHJvdG9fYWRkX3JlcXVlc3RfcGFyYW0ocmVxdWVzdF9yZWMgKnIsCisgCQl9CisgCisgCQkv KiBlbnN1cmUgcGFyYW1ldGVyIHZhcmlhYmxlIHRvIGhhdmUgYSB2YWxpZCB2YWx1ZSAqLworLQkJ aWYgKHN0cmNtcChyZXF1ZXN0X29iamVjdF90eXBlX3N0ciwgT0lEQ19QUk9UT19SRVFVRVNUX09C SkVDVCkgPT0gMCkgeworKwkJaWYgKF9vaWRjX3N0cmNtcChyZXF1ZXN0X29iamVjdF90eXBlX3N0 ciwgT0lEQ19QUk9UT19SRVFVRVNUX09CSkVDVCkgPT0gMCkgeworIAkJCXBhcmFtZXRlciA9IE9J RENfUFJPVE9fUkVRVUVTVF9PQkpFQ1Q7CistCQl9IGVsc2UgaWYgKHN0cmNtcChyZXF1ZXN0X29i amVjdF90eXBlX3N0ciwgT0lEQ19QUk9UT19SRVFVRVNUX1VSSSkKKysJCX0gZWxzZSBpZiAoX29p ZGNfc3RyY21wKHJlcXVlc3Rfb2JqZWN0X3R5cGVfc3RyLCBPSURDX1BST1RPX1JFUVVFU1RfVVJJ KQorIAkJCQkhPSAwKSB7CisgCQkJb2lkY19lcnJvcihyLCAiQmFkIHJlcXVlc3Rfb2JqZWN0X3R5 cGUgaW4gY29uZmlnOiAlcyIsCisgCQkJCQlyZXF1ZXN0X29iamVjdF90eXBlX3N0cik7CitAQCAt NTQ5LDcgKzU0OSw3IEBAIHN0YXRpYyB2b2lkIG9pZGNfcHJvdG9fYWRkX3JlcXVlc3RfcGFyYW0o cmVxdWVzdF9yZWMgKnIsCisgCisgCS8qIGNyZWF0ZSByZXF1ZXN0IHZhbHVlICovCisgCWNoYXIg KnZhbHVlID0gTlVMTDsKKy0JaWYgKHN0cmNtcChwYXJhbWV0ZXIsIE9JRENfUFJPVE9fUkVRVUVT VF9VUkkpID09IDApIHsKKysJaWYgKF9vaWRjX3N0cmNtcChwYXJhbWV0ZXIsIE9JRENfUFJPVE9f UkVRVUVTVF9VUkkpID09IDApIHsKKyAJCS8qIHBhcmFtZXRlciBpcyAicmVxdWVzdF91cmkiICov CisgCQl2YWx1ZSA9IG9pZGNfcHJvdG9fY3JlYXRlX3JlcXVlc3RfdXJpKHIsIHByb3ZpZGVyLAor IAkJCQlyZXF1ZXN0X29iamVjdF9jb25maWcsIHJlZGlyZWN0X3VyaSwgcGFyYW1zKTsKK0BAIC02 MTgsNyArNjE4LDcgQEAgdm9pZCBhZGRfYXV0aF9yZXF1ZXN0X3BhcmFtcyhyZXF1ZXN0X3JlYyAq ciwgYXByX3RhYmxlX3QgKnBhcmFtcywKKyAJCWtleSA9IGFwX2dldHdvcmQoci0+cG9vbCwgKGNv bnN0IGNoYXIqKikgJnZhbCwgT0lEQ19DSEFSX0VRVUFMKTsKKyAJCWFwX3VuZXNjYXBlX3VybChr ZXkpOworIAkJYXBfdW5lc2NhcGVfdXJsKHZhbCk7CistCQlpZiAoYXByX3N0cm5hdGNtcCh2YWws IE9JRENfU1RSX0hBU0gpICE9IDApIHsKKysJCWlmIChfb2lkY19zdHJjbXAodmFsLCBPSURDX1NU Ul9IQVNIKSAhPSAwKSB7CisgCQkJYXByX3RhYmxlX2FkZChwYXJhbXMsIGtleSwgdmFsKTsKKyAJ CQljb250aW51ZTsKKyAJCX0KK0BAIC02NTksNyArNjU5LDcgQEAgaW50IG9pZGNfcHJvdG9fYXV0 aG9yaXphdGlvbl9yZXF1ZXN0KHJlcXVlc3RfcmVjICpyLAorIAkvKiBjb25jYXQgdGhlIHBlci1w YXRoIHNjb3BlcyB3aXRoIHRoZSBwZXItcHJvdmlkZXIgc2NvcGVzICovCisgCWNvbnN0IGNoYXIg KnNjb3BlID0gcHJvdmlkZXItPnNjb3BlOworIAlpZiAocGF0aF9zY29wZSAhPSBOVUxMKQorLQkJ c2NvcGUgPSAoKHNjb3BlICE9IE5VTEwpICYmIChhcHJfc3RybmF0Y21wKHNjb3BlLCAiIikgIT0g MCkpID8KKysJCXNjb3BlID0gKChzY29wZSAhPSBOVUxMKSAmJiAoX29pZGNfc3RyY21wKHNjb3Bl LCAiIikgIT0gMCkpID8KKyAJCQkJYXByX3BzdHJjYXQoci0+cG9vbCwgc2NvcGUsIE9JRENfU1RS X1NQQUNFLCBwYXRoX3Njb3BlLAorIAkJCQkJCU5VTEwpIDoKKyAJCQkJCQlwYXRoX3Njb3BlOwor QEAgLTExMjYsNyArMTEyNiw3IEBAIGFwcl9ieXRlX3Qgb2lkY19wcm90b192YWxpZGF0ZV9ub25j ZShyZXF1ZXN0X3JlYyAqciwgb2lkY19jZmcgKmNmZywKKyAJfQorIAorIAkvKiBzZWUgaWYgdGhl IG5vbmNlIGluIHRoZSBpZF90b2tlbiBtYXRjaGVzIHRoZSBvbmUgdGhhdCB3ZSBzZW50IGluIHRo ZSBhdXRob3JpemF0aW9uIHJlcXVlc3QgKi8KKy0JaWYgKGFwcl9zdHJuYXRjbXAobm9uY2UsIGpf bm9uY2UpICE9IDApIHsKKysJaWYgKF9vaWRjX3N0cmNtcChub25jZSwgal9ub25jZSkgIT0gMCkg eworIAkJb2lkY19lcnJvcihyLAorIAkJCQkidGhlIG5vbmNlIHZhbHVlICglcykgaW4gdGhlIGlk X3Rva2VuIGRpZCBub3QgbWF0Y2ggdGhlIG9uZSBzdG9yZWQgaW4gdGhlIGJyb3dzZXIgc2Vzc2lv biAoJXMpIiwKKyAJCQkJal9ub25jZSwgbm9uY2UpOworQEAgLTExNjgsNyArMTE2OCw3IEBAIGFw cl9ieXRlX3Qgb2lkY19wcm90b192YWxpZGF0ZV9hdWRfYW5kX2F6cChyZXF1ZXN0X3JlYyAqciwg b2lkY19jZmcgKmNmZywKKyAJICogaXMgZGlmZmVyZW50IHRoYW4gdGhlIGF1dGhvcml6ZWQgcGFy dHk7IGl0IE1BWSBiZSBpbmNsdWRlZCBldmVuIHdoZW4gdGhlIGF1dGhvcml6ZWQgcGFydHkgaXMK KyAJICogdGhlIHNhbWUgYXMgdGhlIHNvbGUgYXVkaWVuY2UuCisgCSAqLworLQlpZiAoKGF6cCAh PSBOVUxMKSAmJiAoYXByX3N0cm5hdGNtcChhenAsIHByb3ZpZGVyLT5jbGllbnRfaWQpICE9IDAp KSB7CisrCWlmICgoYXpwICE9IE5VTEwpICYmIChfb2lkY19zdHJjbXAoYXpwLCBwcm92aWRlci0+ Y2xpZW50X2lkKSAhPSAwKSkgeworIAkJb2lkY19lcnJvcihyLAorIAkJCQkidGhlIFwiJXNcIiBj bGFpbSAoJXMpIGlzIHByZXNlbnQgaW4gdGhlIGlkX3Rva2VuLCBidXQgaXMgbm90IGVxdWFsIHRv IHRoZSBjb25maWd1cmVkIGNsaWVudF9pZCAoJXMpIiwKKyAJCQkJT0lEQ19DTEFJTV9BWlAsIGF6 cCwgcHJvdmlkZXItPmNsaWVudF9pZCk7CitAQCAtMTE4NCw3ICsxMTg0LDcgQEAgYXByX2J5dGVf dCBvaWRjX3Byb3RvX3ZhbGlkYXRlX2F1ZF9hbmRfYXpwKHJlcXVlc3RfcmVjICpyLCBvaWRjX2Nm ZyAqY2ZnLAorIAkJaWYgKGpzb25faXNfc3RyaW5nKGF1ZCkpIHsKKyAKKyAJCQkvKiBhIHNpbmds ZS12YWx1ZWQgYXVkaWVuY2UgbXVzdCBiZSBlcXVhbCB0byBvdXIgY2xpZW50X2lkICovCistCQkJ aWYgKGFwcl9zdHJuYXRjbXAoanNvbl9zdHJpbmdfdmFsdWUoYXVkKSwgcHJvdmlkZXItPmNsaWVu dF9pZCkKKysJCQlpZiAoX29pZGNfc3RyY21wKGpzb25fc3RyaW5nX3ZhbHVlKGF1ZCksIHByb3Zp ZGVyLT5jbGllbnRfaWQpCisgCQkJCQkhPSAwKSB7CisgCQkJCW9pZGNfZXJyb3IociwKKyAJCQkJ CQkidGhlIGNvbmZpZ3VyZWQgY2xpZW50X2lkICglcykgZGlkIG5vdCBtYXRjaCB0aGUgXCIlc1wi IGNsYWltIHZhbHVlICglcykgaW4gdGhlIGlkX3Rva2VuIiwKK0BAIC0xNDMxLDcgKzE0MzEsNyBA QCBzdGF0aWMgYXByX2J5dGVfdCBvaWRjX3Byb3RvX2dldF9rZXlfZnJvbV9qd2tzKHJlcXVlc3Rf cmVjICpyLCBvaWRjX2p3dF90ICpqd3QsCisgCQlpZiAoKGp3dC0+aGVhZGVyLmtpZCA9PSBOVUxM KSAmJiAoeDV0ID09IE5VTEwpKSB7CisgCQkJY29uc3QgY2hhciAqdXNlID0ganNvbl9zdHJpbmdf dmFsdWUoCisgCQkJCQlqc29uX29iamVjdF9nZXQoZWxlbSwgT0lEQ19KV0tfVVNFKSk7CistCQkJ aWYgKCh1c2UgIT0gTlVMTCkgJiYgKHN0cmNtcCh1c2UsIE9JRENfSldLX1NJRykgIT0gMCkpIHsK KysJCQlpZiAoKHVzZSAhPSBOVUxMKSAmJiAoX29pZGNfc3RyY21wKHVzZSwgT0lEQ19KV0tfU0lH KSAhPSAwKSkgeworIAkJCQlvaWRjX2RlYnVnKHIsCisgCQkJCQkJInNraXBwaW5nIGtleSBiZWNh dXNlIG9mIG5vbi1tYXRjaGluZyBcIiVzXCI6IFwiJXNcIiIsCisgCQkJCQkJT0lEQ19KV0tfVVNF LCB1c2UpOworQEAgLTE0NTUsNyArMTQ1NSw3IEBAIHN0YXRpYyBhcHJfYnl0ZV90IG9pZGNfcHJv dG9fZ2V0X2tleV9mcm9tX2p3a3MocmVxdWVzdF9yZWMgKnIsIG9pZGNfand0X3QgKmp3dCwKKyAJ CS8qIHdlIGFyZSBsb29raW5nIGZvciBhIHNwZWNpZmljIGtpZCwgZ2V0IHRoZSBraWQgZnJvbSB0 aGUgY3VycmVudCBlbGVtZW50ICovCisgCQkvKiBjb21wYXJlIHRoZSByZXF1ZXN0ZWQga2lkIGFn YWluc3QgdGhlIGN1cnJlbnQgZWxlbWVudCAqLworIAkJaWYgKChqd3QtPmhlYWRlci5raWQgIT0g TlVMTCkgJiYgKGp3ay0+a2lkICE9IE5VTEwpCistCQkJCSYmIChhcHJfc3RybmF0Y21wKGp3dC0+ aGVhZGVyLmtpZCwgandrLT5raWQpID09IDApKSB7CisrCQkJCSYmIChfb2lkY19zdHJjbXAoand0 LT5oZWFkZXIua2lkLCBqd2stPmtpZCkgPT0gMCkpIHsKKyAJCQlvaWRjX2p3a190b19qc29uKHIt PnBvb2wsIGp3aywgJmp3a19qc29uLCAmZXJyKTsKKyAJCQlvaWRjX2RlYnVnKHIsICJmb3VuZCBt YXRjaGluZyBraWQ6IFwiJXNcIiBmb3IgandrOiAlcyIsCisgCQkJCQlqd3QtPmhlYWRlci5raWQs IGp3a19qc29uKTsKK0BAIC0xNDY5LDcgKzE0NjksNyBAQCBzdGF0aWMgYXByX2J5dGVfdCBvaWRj X3Byb3RvX2dldF9rZXlfZnJvbV9qd2tzKHJlcXVlc3RfcmVjICpyLCBvaWRjX2p3dF90ICpqd3Qs CisgCQkJCU5VTEwpOworIAkJLyogY29tcGFyZSB0aGUgcmVxdWVzdGVkIHRodW1icHJpbnQgYWdh aW5zdCB0aGUgY3VycmVudCBlbGVtZW50ICovCisgCQlpZiAoKHNfeDV0ICE9IE5VTEwpICYmICh4 NXQgIT0gTlVMTCkKKy0JCQkJJiYgKGFwcl9zdHJuYXRjbXAoeDV0LCBzX3g1dCkgPT0gMCkpIHsK KysJCQkJJiYgKF9vaWRjX3N0cmNtcCh4NXQsIHNfeDV0KSA9PSAwKSkgeworIAkJCW9pZGNfandr X3RvX2pzb24oci0+cG9vbCwgandrLCAmandrX2pzb24sICZlcnIpOworIAkJCW9pZGNfZGVidWco ciwgImZvdW5kIG1hdGNoaW5nICVzOiBcIiVzXCIgZm9yIGp3azogJXMiLCBPSURDX0pXS19YNVQs CisgCQkJCQl4NXQsIGp3a19qc29uKTsKK0BAIC0xNTQ0LDcgKzE1NDQsNyBAQCBhcHJfYnl0ZV90 IG9pZGNfcHJvdG9fand0X3ZlcmlmeShyZXF1ZXN0X3JlYyAqciwgb2lkY19jZmcgKmNmZywgb2lk Y19qd3RfdCAqand0LAorIAlhcHJfaGFzaF90ICpkeW5hbWljX2tleXMgPSBOVUxMOworIAorIAlp ZiAoYWxnICE9IE5VTEwpIHsKKy0JCWlmIChhcHJfc3RybmF0Y21wKGp3dC0+aGVhZGVyLmFsZywg YWxnKSAhPSAwKSB7CisrCQlpZiAoX29pZGNfc3RyY21wKGp3dC0+aGVhZGVyLmFsZywgYWxnKSAh PSAwKSB7CisgCQkJb2lkY19lcnJvcihyLAorIAkJCQkJIkpXVCB3YXMgbm90IHNpZ25lZCB3aXRo IHRoZSBleHBlY3RlZCBjb25maWd1cmVkIGFsZ29yaXRobTogJXMgIT0gJXMiLAorIAkJCQkJand0 LT5oZWFkZXIuYWxnLCBhbGcpOworQEAgLTE2NTksNyArMTY1OSw3IEBAIGFwcl9ieXRlX3Qgb2lk Y19wcm90b19wYXJzZV9pZHRva2VuKHJlcXVlc3RfcmVjICpyLCBvaWRjX2NmZyAqY2ZnLAorIAkJ CSgqand0KS0+aGVhZGVyLnZhbHVlLnN0ciwgKCpqd3QpLT5wYXlsb2FkLnZhbHVlLnN0cik7Cisg CisgCS8vIG1ha2Ugc2lnbmF0dXJlIHZhbGlkYXRpb24gZXhjZXB0aW9uIGZvciAnY29kZScgZmxv dyBhbmQgdGhlIGFsZ29yaXRobSBOT05FCistCWlmIChpc19jb2RlX2Zsb3cgPT0gRkFMU0UgfHwg c3RyY21wKCgqand0KS0+aGVhZGVyLmFsZywgIm5vbmUiKSAhPSAwKSB7CisrCWlmIChpc19jb2Rl X2Zsb3cgPT0gRkFMU0UgfHwgX29pZGNfc3RyY21wKCgqand0KS0+aGVhZGVyLmFsZywgIm5vbmUi KSAhPSAwKSB7CisgCisgCQlqd2sgPSBOVUxMOworIAkJaWYgKG9pZGNfdXRpbF9jcmVhdGVfc3lt bWV0cmljX2tleShyLCBwcm92aWRlci0+Y2xpZW50X3NlY3JldCwgMCwKK0BAIC0xOTI4LDcgKzE5 MjgsNyBAQCBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fdG9rZW5fZW5kcG9pbnRfYXV0aChyZXF1ZXN0 X3JlYyAqciwgb2lkY19jZmcgKmNmZywKKyAJaWYgKCh0b2tlbl9lbmRwb2ludF9hdXRoID09IE5V TEwpICYmIChjbGllbnRfc2VjcmV0ICE9IE5VTEwpKQorIAkJdG9rZW5fZW5kcG9pbnRfYXV0aCA9 IE9JRENfUFJPVE9fQ0xJRU5UX1NFQ1JFVF9CQVNJQzsKKyAKKy0JaWYgKCh0b2tlbl9lbmRwb2lu dF9hdXRoID09IE5VTEwpIHx8IChhcHJfc3RybmF0Y21wKHRva2VuX2VuZHBvaW50X2F1dGgsCisr CWlmICgodG9rZW5fZW5kcG9pbnRfYXV0aCA9PSBOVUxMKSB8fCAoX29pZGNfc3RyY21wKHRva2Vu X2VuZHBvaW50X2F1dGgsCisgCQkJT0lEQ19QUk9UT19FTkRQT0lOVF9BVVRIX05PTkUpID09IDAp KSB7CisgCQlvaWRjX2RlYnVnKHIsCisgCQkJCSJubyBjbGllbnQgc2VjcmV0IGlzIGNvbmZpZ3Vy ZWQgb3IgdGhlIHRva2VuIGVuZHBvaW50IGF1dGggbWV0aG9kIHdhcyBzZXQgdG8gXCIlc1wiOyBj YWxsaW5nIHRoZSB0b2tlbiBlbmRwb2ludCB3aXRob3V0IGNsaWVudCBhdXRoZW50aWNhdGlvbjsg b25seSBwdWJsaWMgY2xpZW50cyBhcmUgc3VwcG9ydGVkIiwKK0BAIC0xOTM4LDM0ICsxOTM4LDM0 IEBAIGFwcl9ieXRlX3Qgb2lkY19wcm90b190b2tlbl9lbmRwb2ludF9hdXRoKHJlcXVlc3RfcmVj ICpyLCBvaWRjX2NmZyAqY2ZnLAorIAorIAkvLyBpZiBubyBjbGllbnRfc2VjcmV0IGlzIHNldCBh bmQgd2UgZG9uJ3QgYXV0aGVudGljYXRlIHVzaW5nIHByaXZhdGVfa2V5X2p3dCwKKyAJLy8gd2Ug Y2FuIG9ubHkgYmUgYSBwdWJsaWMgY2xpZW50IHNpbmNlIHRoZSBvdGhlciBtZXRob2RzIHJlcXVp cmUgYSBjbGllbnRfc2VjcmV0CistCWlmICgoY2xpZW50X3NlY3JldCA9PSBOVUxMKSAmJiAoYXBy X3N0cm5hdGNtcCh0b2tlbl9lbmRwb2ludF9hdXRoLAorKwlpZiAoKGNsaWVudF9zZWNyZXQgPT0g TlVMTCkgJiYgKF9vaWRjX3N0cmNtcCh0b2tlbl9lbmRwb2ludF9hdXRoLAorIAkJCU9JRENfUFJP VE9fUFJJVkFURV9LRVlfSldUKSAhPSAwKSkgeworIAkJb2lkY19kZWJ1ZyhyLAorIAkJCQkibm8g Y2xpZW50IHNlY3JldCBzZXQgYW5kIG5vdCB1c2luZyBwcml2YXRlX2tleV9qd3QsIGFzc3VtZSB3 ZSBhcmUgYSBwdWJsaWMgY2xpZW50Iik7CisgCQlyZXR1cm4gb2lkY19wcm90b19lbmRwb2ludF9h dXRoX25vbmUociwgY2xpZW50X2lkLCBwYXJhbXMpOworIAl9CisgCistCWlmIChhcHJfc3RybmF0 Y21wKHRva2VuX2VuZHBvaW50X2F1dGgsCisrCWlmIChfb2lkY19zdHJjbXAodG9rZW5fZW5kcG9p bnRfYXV0aCwKKyAJCQlPSURDX1BST1RPX0NMSUVOVF9TRUNSRVRfQkFTSUMpID09IDApCisgCQly ZXR1cm4gb2lkY19wcm90b19lbmRwb2ludF9jbGllbnRfc2VjcmV0X2Jhc2ljKHIsIGNsaWVudF9p ZCwKKyAJCQkJY2xpZW50X3NlY3JldCwgYmFzaWNfYXV0aF9zdHIpOworIAorLQlpZiAoYXByX3N0 cm5hdGNtcCh0b2tlbl9lbmRwb2ludF9hdXRoLAorKwlpZiAoX29pZGNfc3RyY21wKHRva2VuX2Vu ZHBvaW50X2F1dGgsCisgCQkJT0lEQ19QUk9UT19DTElFTlRfU0VDUkVUX1BPU1QpID09IDApCisg CQlyZXR1cm4gb2lkY19wcm90b19lbmRwb2ludF9jbGllbnRfc2VjcmV0X3Bvc3QociwgY2xpZW50 X2lkLAorIAkJCQljbGllbnRfc2VjcmV0LCBwYXJhbXMpOworIAorLQlpZiAoYXByX3N0cm5hdGNt cCh0b2tlbl9lbmRwb2ludF9hdXRoLAorKwlpZiAoX29pZGNfc3RyY21wKHRva2VuX2VuZHBvaW50 X2F1dGgsCisgCQkJT0lEQ19QUk9UT19DTElFTlRfU0VDUkVUX0pXVCkgPT0gMCkKKyAJCXJldHVy biBvaWRjX3Byb3RvX2VuZHBvaW50X2F1dGhfY2xpZW50X3NlY3JldF9qd3QociwgY2xpZW50X2lk LAorIAkJCQljbGllbnRfc2VjcmV0LCBhdWRpZW5jZSwgcGFyYW1zKTsKKyAKKy0JaWYgKGFwcl9z dHJuYXRjbXAodG9rZW5fZW5kcG9pbnRfYXV0aCwKKysJaWYgKF9vaWRjX3N0cmNtcCh0b2tlbl9l bmRwb2ludF9hdXRoLAorIAkJCU9JRENfUFJPVE9fUFJJVkFURV9LRVlfSldUKSA9PSAwKQorIAkJ cmV0dXJuIG9pZGNfcHJvdG9fZW5kcG9pbnRfYXV0aF9wcml2YXRlX2tleV9qd3QociwgY2ZnLCBj bGllbnRfaWQsCisgCQkJCWNsaWVudF9zaWduaW5nX2tleXMsIGF1ZGllbmNlLCBwYXJhbXMpOwor IAorLQlpZiAoYXByX3N0cm5hdGNtcCh0b2tlbl9lbmRwb2ludF9hdXRoLAorKwlpZiAoX29pZGNf c3RyY21wKHRva2VuX2VuZHBvaW50X2F1dGgsCisgCQkJT0lEQ19QUk9UT19CRUFSRVJfQUNDRVNT X1RPS0VOKSA9PSAwKSB7CisgCQlyZXR1cm4gb2lkY19wcm90b19lbmRwb2ludF9hY2Nlc3NfdG9r ZW5fYmVhcmVyKHIsIGNmZywKKyAJCQkJYmVhcmVyX2FjY2Vzc190b2tlbiwgYmVhcmVyX2F1dGhf c3RyKTsKK0BAIC0yMjUyLDcgKzIyNTIsNyBAQCBzdGF0aWMgYXByX2J5dGVfdCBvaWRjX3Byb3Rv X3Jlc29sdmVfY29tcG9zaXRlX2NsYWltcyhyZXF1ZXN0X3JlYyAqciwKKyAJCQkJCQkJTlVMTCwg TlVMTCwgTlVMTCk7CisgCQkJCX0KKyAJCQl9CistCQkJaWYgKChzX2pzb24gIT0gTlVMTCkgJiYg KHN0cmNtcChzX2pzb24sICIiKSAhPSAwKSkgeworKwkJCWlmICgoc19qc29uICE9IE5VTEwpICYm IChfb2lkY19zdHJjbXAoc19qc29uLCAiIikgIT0gMCkpIHsKKyAJCQkJb2lkY19qd3RfdCAqand0 ID0gTlVMTDsKKyAJCQkJaWYgKG9pZGNfand0X3BhcnNlKHItPnBvb2wsIHNfanNvbiwgJmp3dCwK KyAJCQkJCQlvaWRjX3V0aWxfbWVyZ2Vfc3ltbWV0cmljX2tleShyLT5wb29sLAorQEAgLTIzNTcs NyArMjM1Nyw3IEBAIGFwcl9ieXRlX3Qgb2lkY19wcm90b19yZXNvbHZlX3VzZXJpbmZvKHJlcXVl c3RfcmVjICpyLCBvaWRjX2NmZyAqY2ZnLAorIAl9CisgCisgCWlmICgoaWRfdG9rZW5fc3ViICE9 IE5VTEwpICYmICh1c2VyX2luZm9fc3ViICE9IE5VTEwpKSB7CistCQlpZiAoYXByX3N0cm5hdGNt cChpZF90b2tlbl9zdWIsIHVzZXJfaW5mb19zdWIpICE9IDApIHsKKysJCWlmIChfb2lkY19zdHJj bXAoaWRfdG9rZW5fc3ViLCB1c2VyX2luZm9fc3ViKSAhPSAwKSB7CisgCQkJb2lkY19lcnJvcihy LAorIAkJCQkJIlwiJXNcIiBjbGFpbSAoXCIlc1wiKSByZXR1cm5lZCBmcm9tIHVzZXJpbmZvIGVu ZHBvaW50IGRvZXMgbm90IG1hdGNoIHRoZSBvbmUgaW4gdGhlIGlkX3Rva2VuIChcIiVzXCIpIiwK KyAJCQkJCU9JRENfQ0xBSU1fU1VCLCB1c2VyX2luZm9fc3ViLCBpZF90b2tlbl9zdWIpOworQEAg LTI4MDgsNyArMjgwOCw3IEBAIHN0YXRpYyBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fdmFsaWRhdGVf cmVzcG9uc2VfbW9kZShyZXF1ZXN0X3JlYyAqciwKKyAJaWYgKHJlcXVlc3RlZF9yZXNwb25zZV9t b2RlID09IE5VTEwpCisgCQlyZXF1ZXN0ZWRfcmVzcG9uc2VfbW9kZSA9IGRlZmF1bHRfcmVzcG9u c2VfbW9kZTsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAocmVxdWVzdGVkX3Jlc3BvbnNlX21vZGUs IHJlc3BvbnNlX21vZGUpICE9IDApIHsKKysJaWYgKF9vaWRjX3N0cmNtcChyZXF1ZXN0ZWRfcmVz cG9uc2VfbW9kZSwgcmVzcG9uc2VfbW9kZSkgIT0gMCkgeworIAkJb2lkY19lcnJvcihyLAorIAkJ CQkicmVxdWVzdGVkIHJlc3BvbnNlIG1vZGUgKCVzKSBkb2VzIG5vdCBtYXRjaCB0aGUgcmVzcG9u c2UgbW9kZSB1c2VkIGJ5IHRoZSBPUCAoJXMpIiwKKyAJCQkJcmVxdWVzdGVkX3Jlc3BvbnNlX21v ZGUsIHJlc3BvbnNlX21vZGUpOworQEAgLTI4MjYsNyArMjgyNiw3IEBAIHN0YXRpYyBhcHJfYnl0 ZV90IG9pZGNfcHJvdG9fdmFsaWRhdGVfaXNzdWVyX2NsaWVudF9pZChyZXF1ZXN0X3JlYyAqciwK KyAJCWNvbnN0IGNoYXIgKmNvbmZpZ3VyZWRfY2xpZW50X2lkLCBjb25zdCBjaGFyICpyZXNwb25z ZV9jbGllbnRfaWQpIHsKKyAKKyAJaWYgKHJlc3BvbnNlX2lzc3VlciAhPSBOVUxMKSB7CistCQlp ZiAoYXByX3N0cm5hdGNtcChjb25maWd1cmVkX2lzc3VlciwgcmVzcG9uc2VfaXNzdWVyKSAhPSAw KSB7CisrCQlpZiAoX29pZGNfc3RyY21wKGNvbmZpZ3VyZWRfaXNzdWVyLCByZXNwb25zZV9pc3N1 ZXIpICE9IDApIHsKKyAJCQlvaWRjX2Vycm9yKHIsCisgCQkJCQkiY29uZmlndXJlZCBpc3N1ZXIg KCVzKSBkb2VzIG5vdCBtYXRjaCB0aGUgaXNzdWVyIHByb3ZpZGVkIGluIHRoZSByZXNwb25zZSBi eSB0aGUgT1AgKCVzKSIsCisgCQkJCQljb25maWd1cmVkX2lzc3VlciwgcmVzcG9uc2VfaXNzdWVy KTsKK0BAIC0yODM1LDcgKzI4MzUsNyBAQCBzdGF0aWMgYXByX2J5dGVfdCBvaWRjX3Byb3RvX3Zh bGlkYXRlX2lzc3Vlcl9jbGllbnRfaWQocmVxdWVzdF9yZWMgKnIsCisgCX0KKyAKKyAJaWYgKHJl c3BvbnNlX2NsaWVudF9pZCAhPSBOVUxMKSB7CistCQlpZiAoYXByX3N0cm5hdGNtcChjb25maWd1

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Moritz Schlarb@21:1/5 to All on Wed May 7 15:00:01 2025
    [continued from previous message]

    RV9TRVJWRVJfQ0FDSEU7CistCX0gZWxzZSBpZiAoYXByX3N0cm5hdGNtcChzLCBPSURDX1NFU1NJ T05fVFlQRV9DTElFTlRfQ09PS0lFX1NUUikgPT0gMCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0 cmNtcChzLCBPSURDX1NFU1NJT05fVFlQRV9DTElFTlRfQ09PS0lFX1NUUikgPT0gMCkgeworIAkJ KnR5cGUgPSBPSURDX1NFU1NJT05fVFlQRV9DTElFTlRfQ09PS0lFOworIAl9CisgCXJldHVybiBO VUxMOworQEAgLTYxNSwxMyArNjE1LDEzIEBAIHN0YXRpYyBjb25zdCBjaGFyICpvaWRjX3BhcnNl X2tleV92YWx1ZShhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFyICplbmMsCisgCWNvbnN0IGNo YXIgKnJ2ID0gb2lkY192YWxpZF9zdHJpbmdfb3B0aW9uKHBvb2wsIGVuYywgb3B0aW9ucyk7Cisg CWlmIChydiAhPSBOVUxMKQorIAkJcmV0dXJuIHJ2OworLQlpZiAoYXByX3N0cm5hdGNtcChlbmMs IE9JRENfS0VZX0VOQ09ESU5HX0JBU0U2NCkgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcChlbmMs IE9JRENfS0VZX0VOQ09ESU5HX0JBU0U2NCkgPT0gMCkKKyAJCXJldHVybiBvaWRjX3BhcnNlX2Jh c2U2NChwb29sLCBpbnB1dCwga2V5LCBrZXlfbGVuKTsKKy0JaWYgKGFwcl9zdHJuYXRjbXAoZW5j LCBPSURDX0tFWV9FTkNPRElOR19CQVNFNjRfVVJMKSA9PSAwKQorKwlpZiAoX29pZGNfc3RyY21w KGVuYywgT0lEQ19LRVlfRU5DT0RJTkdfQkFTRTY0X1VSTCkgPT0gMCkKKyAJCXJldHVybiBvaWRj X3BhcnNlX2Jhc2U2NHVybChwb29sLCBpbnB1dCwga2V5LCBrZXlfbGVuKTsKKy0JaWYgKGFwcl9z dHJuYXRjbXAoZW5jLCBPSURDX0tFWV9FTkNPRElOR19IRVgpID09IDApCisrCWlmIChfb2lkY19z dHJjbXAoZW5jLCBPSURDX0tFWV9FTkNPRElOR19IRVgpID09IDApCisgCQlyZXR1cm4gb2lkY19w YXJzZV9oZXgocG9vbCwgaW5wdXQsIGtleSwga2V5X2xlbik7CistCWlmIChhcHJfc3RybmF0Y21w KGVuYywgT0lEQ19LRVlfRU5DT0RJTkdfUExBSU4pID09IDApIHsKKysJaWYgKF9vaWRjX3N0cmNt cChlbmMsIE9JRENfS0VZX0VOQ09ESU5HX1BMQUlOKSA9PSAwKSB7CisgCQkqa2V5ID0gYXByX3Bz dHJkdXAocG9vbCwgaW5wdXQpOworIAkJKmtleV9sZW4gPSBzdHJsZW4oKmtleSk7CisgCX0KK0BA IC02MzgsNyArNjM4LDcgQEAgY29uc3QgY2hhciAqb2lkY19wYXJzZV9lbmNfa2lkX2tleV90dXBs ZShhcHJfcG9vbF90ICpwb29sLCBjb25zdCBjaGFyICp0dXBsZSwKKyAJY29uc3QgY2hhciAqcnYg PSBOVUxMOworIAljaGFyICpzID0gTlVMTCwgKnAgPSBOVUxMLCAqcSA9IE5VTEwsICplbmMgPSBO VUxMOworIAorLQlpZiAoKHR1cGxlID09IE5VTEwpIHx8IChhcHJfc3RybmF0Y21wKHR1cGxlLCAi IikgPT0gMCkpCisrCWlmICgodHVwbGUgPT0gTlVMTCkgfHwgKF9vaWRjX3N0cmNtcCh0dXBsZSwg IiIpID09IDApKQorIAkJcmV0dXJuICJ0dXBsZSB2YWx1ZSBub3Qgc2V0IjsKKyAKKyAJcyA9IGFw cl9wc3RyZHVwKHBvb2wsIHR1cGxlKTsKK0BAIC02NzgsMTEgKzY3OCwxMSBAQCBjb25zdCBjaGFy ICpvaWRjX3BhcnNlX2VuY19raWRfa2V5X3R1cGxlKGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNo YXIgKnR1cGxlLAorICAqIGNvbnZlcnQgYSAicGFzcyBpZCB0b2tlbiBhcyIgdmFsdWUgdG8gYW4g aW50ZWdlcgorICAqLworIHN0YXRpYyBpbnQgb2lkY19wYXJzZV9wYXNzX2lkdG9rZW5fYXNfc3Ry MmludChjb25zdCBjaGFyICp2KSB7CistCWlmIChhcHJfc3RybmF0Y21wKHYsIE9JRENfUEFTU19J RF9UT0tFTl9BU19DTEFJTVNfU1RSKSA9PSAwKQorKwlpZiAoX29pZGNfc3RyY21wKHYsIE9JRENf UEFTU19JRF9UT0tFTl9BU19DTEFJTVNfU1RSKSA9PSAwKQorIAkJcmV0dXJuIE9JRENfUEFTU19J RFRPS0VOX0FTX0NMQUlNUzsKKy0JaWYgKGFwcl9zdHJuYXRjbXAodiwgT0lEQ19QQVNTX0lEVE9L RU5fQVNfUEFZTE9BRF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJjbXAodiwgT0lEQ19QQVNT X0lEVE9LRU5fQVNfUEFZTE9BRF9TVFIpID09IDApCisgCQlyZXR1cm4gT0lEQ19QQVNTX0lEVE9L RU5fQVNfUEFZTE9BRDsKKy0JaWYgKGFwcl9zdHJuYXRjbXAodiwgT0lEQ19QQVNTX0lEVE9LRU5f QVNfU0VSSUFMSVpFRF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJjbXAodiwgT0lEQ19QQVNT X0lEVE9LRU5fQVNfU0VSSUFMSVpFRF9TVFIpID09IDApCisgCQlyZXR1cm4gT0lEQ19QQVNTX0lE VE9LRU5fQVNfU0VSSUFMSVpFRDsKKyAJcmV0dXJuIC0xOworIH0KK0BAIC03MzAsMTEgKzczMCwx MSBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3Bhc3NfaWR0b2tlbl9hcyhhcHJfcG9vbF90ICpw b29sLCBjb25zdCBjaGFyICp2MSwKKyAgKiBjb252ZXJ0IGEgInBhc3MgdXNlcmluZm8gYXMiIHZh bHVlIHRvIGFuIGludGVnZXIKKyAgKi8KKyBzdGF0aWMgaW50IG9pZGNfcGFyc2VfcGFzc191c2Vy aW5mb19hc19zdHIyaW50KGNvbnN0IGNoYXIgKnYpIHsKKy0JaWYgKGFwcl9zdHJuYXRjbXAodiwg T0lEQ19QQVNTX1VTRVJJTkZPX0FTX0NMQUlNU19TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJj bXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0NMQUlNU19TVFIpID09IDApCisgCQlyZXR1cm4g T0lEQ19QQVNTX1VTRVJJTkZPX0FTX0NMQUlNUzsKKy0JaWYgKGFwcl9zdHJuYXRjbXAodiwgT0lE Q19QQVNTX1VTRVJJTkZPX0FTX0pTT05fT0JKRUNUX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0 cmNtcCh2LCBPSURDX1BBU1NfVVNFUklORk9fQVNfSlNPTl9PQkpFQ1RfU1RSKSA9PSAwKQorIAkJ cmV0dXJuIE9JRENfUEFTU19VU0VSSU5GT19BU19KU09OX09CSkVDVDsKKy0JaWYgKGFwcl9zdHJu YXRjbXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pXVF9TVFIpID09IDApCisrCWlmIChfb2lk Y19zdHJjbXAodiwgT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pXVF9TVFIpID09IDApCisgCQlyZXR1 cm4gT0lEQ19QQVNTX1VTRVJJTkZPX0FTX0pXVDsKKyAJcmV0dXJuIC0xOworIH0KK0BAIC03ODAs NyArNzgwLDcgQEAgY29uc3QgY2hhciAqb2lkY19wYXJzZV9wYXNzX3VzZXJpbmZvX2FzKGFwcl9w b29sX3QgKnBvb2wsIGNvbnN0IGNoYXIgKnYxLAorICAqIGNvbnZlcnQgYSAibG9nb3V0X29uX2Vy cm9yIiB0byBhbiBpbnRlZ2VyCisgICovCisgc3RhdGljIGludCBvaWRjX3BhcnNlX2xvZ291dF9v bl9lcnJvcl9yZWZyZXNoX2FzX3N0cjJpbnQoY29uc3QgY2hhciAqdikgeworLQlpZiAoYXByX3N0 cm5hdGNtcCh2LCBPSURDX0xPR09VVF9PTl9FUlJPUl9SRUZSRVNIX1NUUikgPT0gMCkKKysJaWYg KF9vaWRjX3N0cmNtcCh2LCBPSURDX0xPR09VVF9PTl9FUlJPUl9SRUZSRVNIX1NUUikgPT0gMCkK KyAJCXJldHVybiBPSURDX0xPR09VVF9PTl9FUlJPUl9SRUZSRVNIOworIAlyZXR1cm4gT0lEQ19D T05GSUdfUE9TX0lOVF9VTlNFVDsKKyB9CitAQCAtODQxLDExICs4NDEsMTEgQEAgY29uc3QgY2hh ciAqb2lkY19hY2NlcHRfb2F1dGhfdG9rZW5faW4yc3RyKGFwcl9wb29sX3QgKnBvb2wsIGFwcl9i eXRlX3QgdikgeworICAqIGNvbnZlcnQgYW4gImFjY2VwdCBPQXV0aCAyLjAgdG9rZW4gaW4iIHZh bHVlIHRvIGFuIGludGVnZXIKKyAgKi8KKyBzdGF0aWMgYXByX2J5dGVfdCBvaWRjX3BhcnNlX29h dXRoX2FjY2VwdF90b2tlbl9pbl9zdHIyYnl0ZShjb25zdCBjaGFyICp2KSB7CistCWlmIChhcHJf c3RybmF0Y21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VOX0lOX0hFQURFUl9TVFIpID09IDAp CisrCWlmIChfb2lkY19zdHJjbXAodiwgT0lEQ19PQVVUSF9BQ0NFUFRfVE9LRU5fSU5fSEVBREVS X1NUUikgPT0gMCkKKyAJCXJldHVybiBPSURDX09BVVRIX0FDQ0VQVF9UT0tFTl9JTl9IRUFERVI7 CistCWlmIChhcHJfc3RybmF0Y21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VOX0lOX1BPU1Rf U1RSKSA9PSAwKQorKwlpZiAoX29pZGNfc3RyY21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VO X0lOX1BPU1RfU1RSKSA9PSAwKQorIAkJcmV0dXJuIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VOX0lO X1BPU1Q7CistCWlmIChhcHJfc3RybmF0Y21wKHYsIE9JRENfT0FVVEhfQUNDRVBUX1RPS0VOX0lO X1FVRVJZX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcCh2LCBPSURDX09BVVRIX0FDQ0VQ VF9UT0tFTl9JTl9RVUVSWV9TVFIpID09IDApCisgCQlyZXR1cm4gT0lEQ19PQVVUSF9BQ0NFUFRf VE9LRU5fSU5fUVVFUlk7CisgCWlmIChzdHJzdHIodiwgT0lEQ19PQVVUSF9BQ0NFUFRfVE9LRU5f SU5fQ09PS0lFX1NUUikgPT0gdikKKyAJCXJldHVybiBPSURDX09BVVRIX0FDQ0VQVF9UT0tFTl9J Tl9DT09LSUU7CitAQCAtOTIzLDcgKzkyMyw3IEBAIGNvbnN0IGNoYXIgKm9pZGNfcGFyc2VfY2xh aW1fcmVxdWlyZWQoYXByX3Bvb2xfdCAqcG9vbCwgY29uc3QgY2hhciAqYXJnLAorIAljb25zdCBj aGFyICpydiA9IG9pZGNfdmFsaWRfc3RyaW5nX29wdGlvbihwb29sLCBhcmcsIG9wdGlvbnMpOwor IAlpZiAocnYgIT0gTlVMTCkKKyAJCXJldHVybiBydjsKKy0JKmlzX3JlcXVpcmVkID0gKGFwcl9z dHJuYXRjbXAoYXJnLCBPSURDX0NMQUlNX1JFUVVJUkVEX01BTkRBVE9SWSkgPT0gMCk7CisrCSpp c19yZXF1aXJlZCA9IChfb2lkY19zdHJjbXAoYXJnLCBPSURDX0NMQUlNX1JFUVVJUkVEX01BTkRB VE9SWSkgPT0gMCk7CisgCXJldHVybiBOVUxMOworIH0KKyAKK0BAIC05NTgsMTYgKzk1OCwxNiBA QCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3NldF9jbGFpbXNfYXMoYXByX3Bvb2xfdCAqcG9vbCwg Y29uc3QgY2hhciAqYXJnLAorIAlpZiAocnYgIT0gTlVMTCkKKyAJCXJldHVybiBydjsKKyAKKy0J aWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1BBU1NfQ0xBSU1TX0FTX0JPVEgpID09IDApIHsK KysJaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfUEFTU19DTEFJTVNfQVNfQk9USCkgPT0gMCkg eworIAkJKmluX2hlYWRlcnMgPSAxOworIAkJKmluX2Vudl92YXJzID0gMTsKKy0JfSBlbHNlIGlm IChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19QQVNTX0NMQUlNU19BU19IRUFERVJTKSA9PSAwKSB7 CisrCX0gZWxzZSBpZiAoX29pZGNfc3RyY21wKGFyZywgT0lEQ19QQVNTX0NMQUlNU19BU19IRUFE RVJTKSA9PSAwKSB7CisgCQkqaW5faGVhZGVycyA9IDE7CisgCQkqaW5fZW52X3ZhcnMgPSAwOwor LQl9IGVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1BBU1NfQ0xBSU1TX0FTX0VOVikg PT0gMCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfUEFTU19DTEFJTVNf QVNfRU5WKSA9PSAwKSB7CisgCQkqaW5faGVhZGVycyA9IDA7CisgCQkqaW5fZW52X3ZhcnMgPSAx OworLQl9IGVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1BBU1NfQ0xBSU1TX0FTX05P TkUpID09IDApIHsKKysJfSBlbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1BBU1NfQ0xB SU1TX0FTX05PTkUpID09IDApIHsKKyAJCSppbl9oZWFkZXJzID0gMDsKKyAJCSppbl9lbnZfdmFy cyA9IDA7CisgCX0KK0BAIC05OTcsMTUgKzk5NywxNSBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNl X3VuYXV0aF9hY3Rpb24oYXByX3Bvb2xfdCAqcG9vbCwgY29uc3QgY2hhciAqYXJnLAorIAlpZiAo cnYgIT0gTlVMTCkKKyAJCXJldHVybiBydjsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBP SURDX1VOQVVUSF9BQ1RJT05fQVVUSF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJjbXAoYXJn LCBPSURDX1VOQVVUSF9BQ1RJT05fQVVUSF9TVFIpID09IDApCisgCQkqYWN0aW9uID0gT0lEQ19V TkFVVEhfQVVUSEVOVElDQVRFOworLQllbHNlIGlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19V TkFVVEhfQUNUSU9OX1BBU1NfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAoYXJn LCBPSURDX1VOQVVUSF9BQ1RJT05fUEFTU19TVFIpID09IDApCisgCQkqYWN0aW9uID0gT0lEQ19V TkFVVEhfUEFTUzsKKy0JZWxzZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENfVU5BVVRIX0FD VElPTl80MDFfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1VO QVVUSF9BQ1RJT05fNDAxX1NUUikgPT0gMCkKKyAJCSphY3Rpb24gPSBPSURDX1VOQVVUSF9SRVRV Uk40MDE7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1VOQVVUSF9BQ1RJT05f NDA3X1NUUikgPT0gMCkKKysJZWxzZSBpZiAoX29pZGNfc3RyY21wKGFyZywgT0lEQ19VTkFVVEhf QUNUSU9OXzQwN19TVFIpID09IDApCisgCQkqYWN0aW9uID0gT0lEQ19VTkFVVEhfUkVUVVJONDA3 OworLQllbHNlIGlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19VTkFVVEhfQUNUSU9OXzQxMF9T VFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfVU5BVVRIX0FDVElP Tl80MTBfU1RSKSA9PSAwKQorIAkJKmFjdGlvbiA9IE9JRENfVU5BVVRIX1JFVFVSTjQxMDsKKyAK KyAJcmV0dXJuIE5VTEw7CitAQCAtMTAyOSwxMSArMTAyOSwxMSBAQCBjb25zdCBjaGFyICpvaWRj X3BhcnNlX3VuYXV0el9hY3Rpb24oYXByX3Bvb2xfdCAqcG9vbCwgY29uc3QgY2hhciAqYXJnLAor IAlpZiAocnYgIT0gTlVMTCkKKyAJCXJldHVybiBydjsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAo YXJnLCBPSURDX1VOQVVUWl9BQ1RJT05fQVVUSF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJj bXAoYXJnLCBPSURDX1VOQVVUWl9BQ1RJT05fQVVUSF9TVFIpID09IDApCisgCQkqYWN0aW9uID0g T0lEQ19VTkFVVFpfQVVUSEVOVElDQVRFOworLQllbHNlIGlmIChhcHJfc3RybmF0Y21wKGFyZywg T0lEQ19VTkFVVFpfQUNUSU9OXzQwMV9TVFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNt cChhcmcsIE9JRENfVU5BVVRaX0FDVElPTl80MDFfU1RSKSA9PSAwKQorIAkJKmFjdGlvbiA9IE9J RENfVU5BVVRaX1JFVFVSTjQwMTsKKy0JZWxzZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENf VU5BVVRaX0FDVElPTl80MDNfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAoYXJn LCBPSURDX1VOQVVUWl9BQ1RJT05fNDAzX1NUUikgPT0gMCkKKyAJCSphY3Rpb24gPSBPSURDX1VO QVVUWl9SRVRVUk40MDM7CisgCisgCXJldHVybiBOVUxMOworQEAgLTEwNjEsNyArMTA2MSw3IEBA IGNvbnN0IGNoYXIgKm9pZGNfdmFsaWRfc3RyaW5nX2luX2FycmF5KGFwcl9wb29sX3QgKnBvb2ws IGpzb25fdCAqanNvbiwKKyAJCQkJZm91bmQgPSBUUlVFOworIAkJCQlpZiAodmFsdWUgIT0gTlVM TCkgeworIAkJCQkJaWYgKChwcmVmZXJlbmNlICE9IE5VTEwpCistCQkJCQkJCSYmIChhcHJfc3Ry bmF0Y21wKGpzb25fc3RyaW5nX3ZhbHVlKGVsZW0pLAorKwkJCQkJCQkmJiAoX29pZGNfc3RyY21w KGpzb25fc3RyaW5nX3ZhbHVlKGVsZW0pLAorIAkJCQkJCQkJCXByZWZlcmVuY2UpID09IDApKSB7 CisgCQkJCQkJKnZhbHVlID0gYXByX3BzdHJkdXAocG9vbCwganNvbl9zdHJpbmdfdmFsdWUoZWxl bSkpOworIAkJCQkJCWJyZWFrOworQEAgLTExNjcsOSArMTE2Nyw5IEBAIGNvbnN0IGNoYXIgKm9p ZGNfcGFyc2VfdXNlcmluZm9fdG9rZW5fbWV0aG9kKGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNo YXIgKmFyZywKKyAJaWYgKHJ2ICE9IE5VTEwpCisgCQlyZXR1cm4gcnY7CisgCistCWlmIChhcHJf c3RybmF0Y21wKGFyZywgT0lEQ19VU0VSX0lORk9fVE9LRU5fTUVUSE9EX0hFQURFUl9TVFIpID09 IDApCisrCWlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1VTRVJfSU5GT19UT0tFTl9NRVRIT0Rf SEVBREVSX1NUUikgPT0gMCkKKyAJCSppbnRfdmFsdWUgPSBPSURDX1VTRVJfSU5GT19UT0tFTl9N RVRIT0RfSEVBREVSOworLQlpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENfVVNFUl9JTkZPX1RP S0VOX01FVEhPRF9QT1NUX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENf VVNFUl9JTkZPX1RPS0VOX01FVEhPRF9QT1NUX1NUUikgPT0gMCkKKyAJCSppbnRfdmFsdWUgPSBP SURDX1VTRVJfSU5GT19UT0tFTl9NRVRIT0RfUE9TVDsKKyAKKyAJcmV0dXJuIE5VTEw7CitAQCAt MTI0MSwxMyArMTI0MSwxMyBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3Rva2VuX2JpbmRpbmdf cG9saWN5KGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNoYXIgKmFyZywKKyAJaWYgKHJ2ICE9IE5V TEwpCisgCQlyZXR1cm4gcnY7CisgCistCWlmIChhcHJfc3RybmF0Y21wKGFyZywgT0lEQ19UT0tF Tl9CSU5ESU5HX1BPTElDWV9ESVNBQkxFRF9TVFIpID09IDApCisrCWlmIChfb2lkY19zdHJjbXAo YXJnLCBPSURDX1RPS0VOX0JJTkRJTkdfUE9MSUNZX0RJU0FCTEVEX1NUUikgPT0gMCkKKyAJCSpw b2xpY3kgPSBPSURDX1RPS0VOX0JJTkRJTkdfUE9MSUNZX0RJU0FCTEVEOworLQllbHNlIGlmIChh cHJfc3RybmF0Y21wKGFyZywgT0lEQ19UT0tFTl9CSU5ESU5HX1BPTElDWV9PUFRJT05BTF9TVFIp ID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfVE9LRU5fQklORElOR19Q T0xJQ1lfT1BUSU9OQUxfU1RSKSA9PSAwKQorIAkJKnBvbGljeSA9IE9JRENfVE9LRU5fQklORElO R19QT0xJQ1lfT1BUSU9OQUw7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1RP S0VOX0JJTkRJTkdfUE9MSUNZX1JFUVVJUkVEX1NUUikgPT0gMCkKKysJZWxzZSBpZiAoX29pZGNf c3RyY21wKGFyZywgT0lEQ19UT0tFTl9CSU5ESU5HX1BPTElDWV9SRVFVSVJFRF9TVFIpID09IDAp CisgCQkqcG9saWN5ID0gT0lEQ19UT0tFTl9CSU5ESU5HX1BPTElDWV9SRVFVSVJFRDsKKy0JZWxz ZSBpZiAoYXByX3N0cm5hdGNtcChhcmcsIE9JRENfVE9LRU5fQklORElOR19QT0xJQ1lfRU5GT1JD RURfU1RSKSA9PSAwKQorKwllbHNlIGlmIChfb2lkY19zdHJjbXAoYXJnLCBPSURDX1RPS0VOX0JJ TkRJTkdfUE9MSUNZX0VORk9SQ0VEX1NUUikgPT0gMCkKKyAJCSpwb2xpY3kgPSBPSURDX1RPS0VO X0JJTkRJTkdfUE9MSUNZX0VORk9SQ0VEOworIAorIAlyZXR1cm4gTlVMTDsKK0BAIC0xMjc2LDkg KzEyNzYsOSBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX2F1dGhfcmVxdWVzdF9tZXRob2QoYXBy X3Bvb2xfdCAqcG9vbCwgY29uc3QgY2hhciAqYXJnLAorIAlpZiAocnYgIT0gTlVMTCkKKyAJCXJl dHVybiBydjsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX0FVVEhfUkVRVUVTVF9N RVRIT0RfR0VUX1NUUikgPT0gMCkKKysJaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfQVVUSF9S RVFVRVNUX01FVEhPRF9HRVRfU1RSKSA9PSAwKQorIAkJKm1ldGhvZCA9IE9JRENfQVVUSF9SRVFV RVNUX01FVEhPRF9HRVQ7CistCWVsc2UgaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX0FVVEhf UkVRRVVTVF9NRVRIT0RfUE9TVF9TVFIpID09IDApCisrCWVsc2UgaWYgKF9vaWRjX3N0cmNtcChh cmcsIE9JRENfQVVUSF9SRVFFVVNUX01FVEhPRF9QT1NUX1NUUikgPT0gMCkKKyAJCSptZXRob2Qg PSBPSURDX0FVVEhfUkVRVUVTVF9NRVRIT0RfUE9TVDsKKyAKKyAJcmV0dXJuIE5VTEw7CitAQCAt MTM0MCwxMyArMTM0MCwxMyBAQCBjb25zdCBjaGFyICpvaWRjX3BhcnNlX3NldF9zdGF0ZV9pbnB1 dF9oZWFkZXJzX2FzKGFwcl9wb29sX3QgKnBvb2wsIGNvbnN0IGNoYXIgKgorIAlpZiAocnYgIT0g TlVMTCkKKyAJCXJldHVybiBydjsKKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1NU QVRFX0lOUFVUX0hFQURFUlNfQVNfQk9USCkgPT0gMCkgeworKwlpZiAoX29pZGNfc3RyY21wKGFy ZywgT0lEQ19TVEFURV9JTlBVVF9IRUFERVJTX0FTX0JPVEgpID09IDApIHsKKyAJCSpzdGF0ZV9p bnB1dF9oZWFkZXJzID0gT0lEQ19TVEFURV9JTlBVVF9IRUFERVJTX1VTRVJfQUdFTlQgfCBPSURD X1NUQVRFX0lOUFVUX0hFQURFUlNfWF9GT1JXQVJERURfRk9SOworLQl9IGVsc2UgaWYgKGFwcl9z dHJuYXRjbXAoYXJnLCBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfVVNFUl9BR0VOVCkgPT0g MCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfU1RBVEVfSU5QVVRfSEVB REVSU19BU19VU0VSX0FHRU5UKSA9PSAwKSB7CisgCQkqc3RhdGVfaW5wdXRfaGVhZGVycyA9IE9J RENfU1RBVEVfSU5QVVRfSEVBREVSU19VU0VSX0FHRU5UOworLQl9IGVsc2UgaWYgKGFwcl9zdHJu YXRjbXAoYXJnLCBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfWF9GT1JXQVJERURfRk9SKSA9 PSAwKSB7CisrCX0gZWxzZSBpZiAoX29pZGNfc3RyY21wKGFyZywgT0lEQ19TVEFURV9JTlBVVF9I RUFERVJTX0FTX1hfRk9SV0FSREVEX0ZPUikgPT0gMCkgeworIAkJKnN0YXRlX2lucHV0X2hlYWRl cnMgPSBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfWF9GT1JXQVJERURfRk9SOworLQl9IGVsc2Ug aWYgKGFwcl9zdHJuYXRjbXAoYXJnLCBPSURDX1NUQVRFX0lOUFVUX0hFQURFUlNfQVNfTk9ORSkg PT0gMCkgeworKwl9IGVsc2UgaWYgKF9vaWRjX3N0cmNtcChhcmcsIE9JRENfU1RBVEVfSU5QVVRf SEVBREVSU19BU19OT05FKSA9PSAwKSB7CisgCQkqc3RhdGVfaW5wdXRfaGVhZGVycyA9IDA7Cisg CX0KKyAKK2RpZmYgLS1naXQgYS9zcmMvcHJvdG8uYyBiL3NyYy9wcm90by5jCitpbmRleCAwZmVh NTExLi45ZjlmZGZjIDEwMDY0NAorLS0tIGEvc3JjL3Byb3RvLmMKKysrKyBiL3NyYy9wcm90by5j CitAQCAtMTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fcGFyYW1f bmVlZHNfYWN0aW9uKGpzb25fdCAqcmVxdWVzdF9vYmplY3RfY29uZmlnLAorIAl3aGlsZSAoaW5k ZXggPCBqc29uX2FycmF5X3NpemUoY29weV9mcm9tX3JlcXVlc3QpKSB7CisgCQlqc29uX3QgKnZh bHVlID0ganNvbl9hcnJheV9nZXQoY29weV9mcm9tX3JlcXVlc3QsIGluZGV4KTsKKyAJCWlmICgo anNvbl9pc19zdHJpbmcodmFsdWUpKQorLQkJCQkmJiAoYXByX3N0cm5hdGNtcChqc29uX3N0cmlu Z192YWx1ZSh2YWx1ZSksIHBhcmFtZXRlcl9uYW1lKSA9PSAwKSkgeworKwkJCQkmJiAoX29pZGNf c3RyY21wKGpzb25fc3RyaW5nX3ZhbHVlKHZhbHVlKSwgcGFyYW1ldGVyX25hbWUpID09IDApKSB7 CisgCQkJcmV0dXJuIFRSVUU7CisgCQl9CisgCQlpbmRleCsrOworQEAgLTI1OCw3ICsyNTgsNyBA QCBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fZ2V0X2VuY3J5cHRpb25fandrX2J5X3R5cGUocmVxdWVz dF9yZWMgKnIsIG9pZGNfY2ZnICpjZmcsCisgCisgCQljb25zdCBjaGFyICp1c2UgPSBqc29uX3N0 cmluZ192YWx1ZSgKKyAJCQkJanNvbl9vYmplY3RfZ2V0KGVsZW0sIE9JRENfSldLX1VTRSkpOwor LQkJaWYgKCh1c2UgIT0gTlVMTCkgJiYgKHN0cmNtcCh1c2UsIE9JRENfSldLX0VOQykgIT0gMCkp IHsKKysJCWlmICgodXNlICE9IE5VTEwpICYmIChfb2lkY19zdHJjbXAodXNlLCBPSURDX0pXS19F TkMpICE9IDApKSB7CisgCQkJb2lkY19kZWJ1ZyhyLCAic2tpcHBpbmcga2V5IGJlY2F1c2Ugb2Yg bm9uLW1hdGNoaW5nIFwiJXNcIjogXCIlc1wiIiwKKyAJCQkJCU9JRENfSldLX1VTRSwgdXNlKTsK KyAJCQljb250aW51ZTsKK0BAIC0zNDYsNyArMzQ2LDcgQEAgY2hhciogb2lkY19wcm90b19jcmVh dGVfcmVxdWVzdF9vYmplY3QocmVxdWVzdF9yZWMgKnIsCisgCQkJJnJlcXVlc3Rfb2JqZWN0LT5o ZWFkZXIuYWxnLCAibm9uZSIpOworIAorIAkvKiBzZWUgaWYgd2UgbmVlZCB0byBzaWduIHRoZSBy ZXF1ZXN0IG9iamVjdCAqLworLQlpZiAoc3RyY21wKHJlcXVlc3Rfb2JqZWN0LT5oZWFkZXIuYWxn LCAibm9uZSIpICE9IDApIHsKKysJaWYgKF9vaWRjX3N0cmNtcChyZXF1ZXN0X29iamVjdC0+aGVh ZGVyLmFsZywgIm5vbmUiKSAhPSAwKSB7CisgCisgCQlzandrID0gTlVMTDsKKyAJCWp3a19uZWVk c19kZXN0cm95ID0gMDsKK0BAIC01NDMsOSArNTQzLDkgQEAgc3RhdGljIHZvaWQgb2lkY19wcm90 b19hZGRfcmVxdWVzdF9wYXJhbShyZXF1ZXN0X3JlYyAqciwKKyAJCX0KKyAKKyAJCS8qIGVuc3Vy ZSBwYXJhbWV0ZXIgdmFyaWFibGUgdG8gaGF2ZSBhIHZhbGlkIHZhbHVlICovCistCQlpZiAoc3Ry Y21wKHJlcXVlc3Rfb2JqZWN0X3R5cGVfc3RyLCBPSURDX1BST1RPX1JFUVVFU1RfT0JKRUNUKSA9 PSAwKSB7CisrCQlpZiAoX29pZGNfc3RyY21wKHJlcXVlc3Rfb2JqZWN0X3R5cGVfc3RyLCBPSURD X1BST1RPX1JFUVVFU1RfT0JKRUNUKSA9PSAwKSB7CisgCQkJcGFyYW1ldGVyID0gT0lEQ19QUk9U T19SRVFVRVNUX09CSkVDVDsKKy0JCX0gZWxzZSBpZiAoc3RyY21wKHJlcXVlc3Rfb2JqZWN0X3R5 cGVfc3RyLCBPSURDX1BST1RPX1JFUVVFU1RfVVJJKQorKwkJfSBlbHNlIGlmIChfb2lkY19zdHJj bXAocmVxdWVzdF9vYmplY3RfdHlwZV9zdHIsIE9JRENfUFJPVE9fUkVRVUVTVF9VUkkpCisgCQkJ CSE9IDApIHsKKyAJCQlvaWRjX2Vycm9yKHIsICJCYWQgcmVxdWVzdF9vYmplY3RfdHlwZSBpbiBj b25maWc6ICVzIiwKKyAJCQkJCXJlcXVlc3Rfb2JqZWN0X3R5cGVfc3RyKTsKK0BAIC01NTUsNyAr NTU1LDcgQEAgc3RhdGljIHZvaWQgb2lkY19wcm90b19hZGRfcmVxdWVzdF9wYXJhbShyZXF1ZXN0 X3JlYyAqciwKKyAKKyAJLyogY3JlYXRlIHJlcXVlc3QgdmFsdWUgKi8KKyAJY2hhciAqdmFsdWUg PSBOVUxMOworLQlpZiAoc3RyY21wKHBhcmFtZXRlciwgT0lEQ19QUk9UT19SRVFVRVNUX1VSSSkg PT0gMCkgeworKwlpZiAoX29pZGNfc3RyY21wKHBhcmFtZXRlciwgT0lEQ19QUk9UT19SRVFVRVNU X1VSSSkgPT0gMCkgeworIAkJLyogcGFyYW1ldGVyIGlzICJyZXF1ZXN0X3VyaSIgKi8KKyAJCXZh bHVlID0gb2lkY19wcm90b19jcmVhdGVfcmVxdWVzdF91cmkociwgcHJvdmlkZXIsCisgCQkJCXJl cXVlc3Rfb2JqZWN0X2NvbmZpZywgcmVkaXJlY3RfdXJpLCBwYXJhbXMpOworQEAgLTYyNCw3ICs2 MjQsNyBAQCB2b2lkIGFkZF9hdXRoX3JlcXVlc3RfcGFyYW1zKHJlcXVlc3RfcmVjICpyLCBhcHJf dGFibGVfdCAqcGFyYW1zLAorIAkJa2V5ID0gYXBfZ2V0d29yZChyLT5wb29sLCAoY29uc3QgY2hh cioqKSAmdmFsLCBPSURDX0NIQVJfRVFVQUwpOworIAkJYXBfdW5lc2NhcGVfdXJsKGtleSk7Cisg CQlhcF91bmVzY2FwZV91cmwodmFsKTsKKy0JCWlmIChhcHJfc3RybmF0Y21wKHZhbCwgT0lEQ19T VFJfSEFTSCkgIT0gMCkgeworKwkJaWYgKF9vaWRjX3N0cmNtcCh2YWwsIE9JRENfU1RSX0hBU0gp ICE9IDApIHsKKyAJCQlhcHJfdGFibGVfYWRkKHBhcmFtcywga2V5LCB2YWwpOworIAkJCWNvbnRp bnVlOworIAkJfQorQEAgLTY2NSw3ICs2NjUsNyBAQCBpbnQgb2lkY19wcm90b19hdXRob3JpemF0 aW9uX3JlcXVlc3QocmVxdWVzdF9yZWMgKnIsCisgCS8qIGNvbmNhdCB0aGUgcGVyLXBhdGggc2Nv cGVzIHdpdGggdGhlIHBlci1wcm92aWRlciBzY29wZXMgKi8KKyAJY29uc3QgY2hhciAqc2NvcGUg PSBwcm92aWRlci0+c2NvcGU7CisgCWlmIChwYXRoX3Njb3BlICE9IE5VTEwpCistCQlzY29wZSA9 ICgoc2NvcGUgIT0gTlVMTCkgJiYgKGFwcl9zdHJuYXRjbXAoc2NvcGUsICIiKSAhPSAwKSkgPwor KwkJc2NvcGUgPSAoKHNjb3BlICE9IE5VTEwpICYmIChfb2lkY19zdHJjbXAoc2NvcGUsICIiKSAh PSAwKSkgPworIAkJCQlhcHJfcHN0cmNhdChyLT5wb29sLCBzY29wZSwgT0lEQ19TVFJfU1BBQ0Us IHBhdGhfc2NvcGUsCisgCQkJCQkJTlVMTCkgOgorIAkJCQkJCXBhdGhfc2NvcGU7CitAQCAtMTEz Miw3ICsxMTMyLDcgQEAgYXByX2J5dGVfdCBvaWRjX3Byb3RvX3ZhbGlkYXRlX25vbmNlKHJlcXVl c3RfcmVjICpyLCBvaWRjX2NmZyAqY2ZnLAorIAl9CisgCisgCS8qIHNlZSBpZiB0aGUgbm9uY2Ug aW4gdGhlIGlkX3Rva2VuIG1hdGNoZXMgdGhlIG9uZSB0aGF0IHdlIHNlbnQgaW4gdGhlIGF1dGhv cml6YXRpb24gcmVxdWVzdCAqLworLQlpZiAoYXByX3N0cm5hdGNtcChub25jZSwgal9ub25jZSkg IT0gMCkgeworKwlpZiAoX29pZGNfc3RyY21wKG5vbmNlLCBqX25vbmNlKSAhPSAwKSB7CisgCQlv aWRjX2Vycm9yKHIsCisgCQkJCSJ0aGUgbm9uY2UgdmFsdWUgKCVzKSBpbiB0aGUgaWRfdG9rZW4g ZGlkIG5vdCBtYXRjaCB0aGUgb25lIHN0b3JlZCBpbiB0aGUgYnJvd3NlciBzZXNzaW9uICglcyki LAorIAkJCQlqX25vbmNlLCBub25jZSk7CitAQCAtMTE3NCw3ICsxMTc0LDcgQEAgYXByX2J5dGVf dCBvaWRjX3Byb3RvX3ZhbGlkYXRlX2F1ZF9hbmRfYXpwKHJlcXVlc3RfcmVjICpyLCBvaWRjX2Nm ZyAqY2ZnLAorIAkgKiBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgYXV0aG9yaXplZCBwYXJ0eTsgaXQg TUFZIGJlIGluY2x1ZGVkIGV2ZW4gd2hlbiB0aGUgYXV0aG9yaXplZCBwYXJ0eSBpcworIAkgKiB0 aGUgc2FtZSBhcyB0aGUgc29sZSBhdWRpZW5jZS4KKyAJICovCistCWlmICgoYXpwICE9IE5VTEwp ICYmIChhcHJfc3RybmF0Y21wKGF6cCwgcHJvdmlkZXItPmNsaWVudF9pZCkgIT0gMCkpIHsKKysJ aWYgKChhenAgIT0gTlVMTCkgJiYgKF9vaWRjX3N0cmNtcChhenAsIHByb3ZpZGVyLT5jbGllbnRf aWQpICE9IDApKSB7CisgCQlvaWRjX2Vycm9yKHIsCisgCQkJCSJ0aGUgXCIlc1wiIGNsYWltICgl cykgaXMgcHJlc2VudCBpbiB0aGUgaWRfdG9rZW4sIGJ1dCBpcyBub3QgZXF1YWwgdG8gdGhlIGNv bmZpZ3VyZWQgY2xpZW50X2lkICglcykiLAorIAkJCQlPSURDX0NMQUlNX0FaUCwgYXpwLCBwcm92 aWRlci0+Y2xpZW50X2lkKTsKK0BAIC0xMTkwLDcgKzExOTAsNyBAQCBhcHJfYnl0ZV90IG9pZGNf cHJvdG9fdmFsaWRhdGVfYXVkX2FuZF9henAocmVxdWVzdF9yZWMgKnIsIG9pZGNfY2ZnICpjZmcs CisgCQlpZiAoanNvbl9pc19zdHJpbmcoYXVkKSkgeworIAorIAkJCS8qIGEgc2luZ2xlLXZhbHVl ZCBhdWRpZW5jZSBtdXN0IGJlIGVxdWFsIHRvIG91ciBjbGllbnRfaWQgKi8KKy0JCQlpZiAoYXBy X3N0cm5hdGNtcChqc29uX3N0cmluZ192YWx1ZShhdWQpLCBwcm92aWRlci0+Y2xpZW50X2lkKQor KwkJCWlmIChfb2lkY19zdHJjbXAoanNvbl9zdHJpbmdfdmFsdWUoYXVkKSwgcHJvdmlkZXItPmNs aWVudF9pZCkKKyAJCQkJCSE9IDApIHsKKyAJCQkJb2lkY19lcnJvcihyLAorIAkJCQkJCSJ0aGUg Y29uZmlndXJlZCBjbGllbnRfaWQgKCVzKSBkaWQgbm90IG1hdGNoIHRoZSBcIiVzXCIgY2xhaW0g dmFsdWUgKCVzKSBpbiB0aGUgaWRfdG9rZW4iLAorQEAgLTE0MzcsNyArMTQzNyw3IEBAIHN0YXRp YyBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fZ2V0X2tleV9mcm9tX2p3a3MocmVxdWVzdF9yZWMgKnIs IG9pZGNfand0X3QgKmp3dCwKKyAJCWlmICgoand0LT5oZWFkZXIua2lkID09IE5VTEwpICYmICh4 NXQgPT0gTlVMTCkpIHsKKyAJCQljb25zdCBjaGFyICp1c2UgPSBqc29uX3N0cmluZ192YWx1ZSgK KyAJCQkJCWpzb25fb2JqZWN0X2dldChlbGVtLCBPSURDX0pXS19VU0UpKTsKKy0JCQlpZiAoKHVz ZSAhPSBOVUxMKSAmJiAoc3RyY21wKHVzZSwgT0lEQ19KV0tfU0lHKSAhPSAwKSkgeworKwkJCWlm ICgodXNlICE9IE5VTEwpICYmIChfb2lkY19zdHJjbXAodXNlLCBPSURDX0pXS19TSUcpICE9IDAp KSB7CisgCQkJCW9pZGNfZGVidWcociwKKyAJCQkJCQkic2tpcHBpbmcga2V5IGJlY2F1c2Ugb2Yg bm9uLW1hdGNoaW5nIFwiJXNcIjogXCIlc1wiIiwKKyAJCQkJCQlPSURDX0pXS19VU0UsIHVzZSk7 CitAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgc3RhdGljIGFwcl9ieXRlX3Qgb2lkY19wcm90b19nZXRf a2V5X2Zyb21fandrcyhyZXF1ZXN0X3JlYyAqciwgb2lkY19qd3RfdCAqand0LAorIAkJLyogd2Ug YXJlIGxvb2tpbmcgZm9yIGEgc3BlY2lmaWMga2lkLCBnZXQgdGhlIGtpZCBmcm9tIHRoZSBjdXJy ZW50IGVsZW1lbnQgKi8KKyAJCS8qIGNvbXBhcmUgdGhlIHJlcXVlc3RlZCBraWQgYWdhaW5zdCB0 aGUgY3VycmVudCBlbGVtZW50ICovCisgCQlpZiAoKGp3dC0+aGVhZGVyLmtpZCAhPSBOVUxMKSAm JiAoandrLT5raWQgIT0gTlVMTCkKKy0JCQkJJiYgKGFwcl9zdHJuYXRjbXAoand0LT5oZWFkZXIu a2lkLCBqd2stPmtpZCkgPT0gMCkpIHsKKysJCQkJJiYgKF9vaWRjX3N0cmNtcChqd3QtPmhlYWRl ci5raWQsIGp3ay0+a2lkKSA9PSAwKSkgeworIAkJCW9pZGNfandrX3RvX2pzb24oci0+cG9vbCwg andrLCAmandrX2pzb24sICZlcnIpOworIAkJCW9pZGNfZGVidWcociwgImZvdW5kIG1hdGNoaW5n IGtpZDogXCIlc1wiIGZvciBqd2s6ICVzIiwKKyAJCQkJCWp3dC0+aGVhZGVyLmtpZCwgandrX2pz b24pOworQEAgLTE0NzUsNyArMTQ3NSw3IEBAIHN0YXRpYyBhcHJfYnl0ZV90IG9pZGNfcHJvdG9f Z2V0X2tleV9mcm9tX2p3a3MocmVxdWVzdF9yZWMgKnIsIG9pZGNfand0X3QgKmp3dCwKKyAJCQkJ TlVMTCk7CisgCQkvKiBjb21wYXJlIHRoZSByZXF1ZXN0ZWQgdGh1bWJwcmludCBhZ2FpbnN0IHRo ZSBjdXJyZW50IGVsZW1lbnQgKi8KKyAJCWlmICgoc194NXQgIT0gTlVMTCkgJiYgKHg1dCAhPSBO VUxMKQorLQkJCQkmJiAoYXByX3N0cm5hdGNtcCh4NXQsIHNfeDV0KSA9PSAwKSkgeworKwkJCQkm JiAoX29pZGNfc3RyY21wKHg1dCwgc194NXQpID09IDApKSB7CisgCQkJb2lkY19qd2tfdG9fanNv bihyLT5wb29sLCBqd2ssICZqd2tfanNvbiwgJmVycik7CisgCQkJb2lkY19kZWJ1ZyhyLCAiZm91 bmQgbWF0Y2hpbmcgJXM6IFwiJXNcIiBmb3IgandrOiAlcyIsIE9JRENfSldLX1g1VCwKKyAJCQkJ CXg1dCwgandrX2pzb24pOworQEAgLTE1NTAsNyArMTU1MCw3IEBAIGFwcl9ieXRlX3Qgb2lkY19w cm90b19qd3RfdmVyaWZ5KHJlcXVlc3RfcmVjICpyLCBvaWRjX2NmZyAqY2ZnLCBvaWRjX2p3dF90 ICpqd3QsCisgCWFwcl9oYXNoX3QgKmR5bmFtaWNfa2V5cyA9IE5VTEw7CisgCisgCWlmIChhbGcg IT0gTlVMTCkgeworLQkJaWYgKGFwcl9zdHJuYXRjbXAoand0LT5oZWFkZXIuYWxnLCBhbGcpICE9 IDApIHsKKysJCWlmIChfb2lkY19zdHJjbXAoand0LT5oZWFkZXIuYWxnLCBhbGcpICE9IDApIHsK KyAJCQlvaWRjX2Vycm9yKHIsCisgCQkJCQkiSldUIHdhcyBub3Qgc2lnbmVkIHdpdGggdGhlIGV4 cGVjdGVkIGNvbmZpZ3VyZWQgYWxnb3JpdGhtOiAlcyAhPSAlcyIsCisgCQkJCQlqd3QtPmhlYWRl ci5hbGcsIGFsZyk7CitAQCAtMTY2NSw3ICsxNjY1LDcgQEAgYXByX2J5dGVfdCBvaWRjX3Byb3Rv X3BhcnNlX2lkdG9rZW4ocmVxdWVzdF9yZWMgKnIsIG9pZGNfY2ZnICpjZmcsCisgCQkJKCpqd3Qp LT5oZWFkZXIudmFsdWUuc3RyLCAoKmp3dCktPnBheWxvYWQudmFsdWUuc3RyKTsKKyAKKyAJLy8g bWFrZSBzaWduYXR1cmUgdmFsaWRhdGlvbiBleGNlcHRpb24gZm9yICdjb2RlJyBmbG93IGFuZCB0 aGUgYWxnb3JpdGhtIE5PTkUKKy0JaWYgKGlzX2NvZGVfZmxvdyA9PSBGQUxTRSB8fCBzdHJjbXAo KCpqd3QpLT5oZWFkZXIuYWxnLCAibm9uZSIpICE9IDApIHsKKysJaWYgKGlzX2NvZGVfZmxvdyA9 PSBGQUxTRSB8fCBfb2lkY19zdHJjbXAoKCpqd3QpLT5oZWFkZXIuYWxnLCAibm9uZSIpICE9IDAp IHsKKyAKKyAJCWp3ayA9IE5VTEw7CisgCQlpZiAob2lkY191dGlsX2NyZWF0ZV9zeW1tZXRyaWNf a2V5KHIsIHByb3ZpZGVyLT5jbGllbnRfc2VjcmV0LCAwLAorQEAgLTE5MzEsNyArMTkzMSw3IEBA IGFwcl9ieXRlX3Qgb2lkY19wcm90b190b2tlbl9lbmRwb2ludF9hdXRoKHJlcXVlc3RfcmVjICpy LCBvaWRjX2NmZyAqY2ZnLAorIAlpZiAoKHRva2VuX2VuZHBvaW50X2F1dGggPT0gTlVMTCkgJiYg KGNsaWVudF9zZWNyZXQgIT0gTlVMTCkpCisgCQl0b2tlbl9lbmRwb2ludF9hdXRoID0gT0lEQ19Q Uk9UT19DTElFTlRfU0VDUkVUX0JBU0lDOworIAorLQlpZiAoKHRva2VuX2VuZHBvaW50X2F1dGgg PT0gTlVMTCkgfHwgKGFwcl9zdHJuYXRjbXAodG9rZW5fZW5kcG9pbnRfYXV0aCwKKysJaWYgKCh0 b2tlbl9lbmRwb2ludF9hdXRoID09IE5VTEwpIHx8IChfb2lkY19zdHJjbXAodG9rZW5fZW5kcG9p bnRfYXV0aCwKKyAJCQlPSURDX1BST1RPX0VORFBPSU5UX0FVVEhfTk9ORSkgPT0gMCkpIHsKKyAJ CW9pZGNfZGVidWcociwKKyAJCQkJIm5vIGNsaWVudCBzZWNyZXQgaXMgY29uZmlndXJlZCBvciB0 aGUgdG9rZW4gZW5kcG9pbnQgYXV0aCBtZXRob2Qgd2FzIHNldCB0byBcIiVzXCI7IGNhbGxpbmcg dGhlIHRva2VuIGVuZHBvaW50IHdpdGhvdXQgY2xpZW50IGF1dGhlbnRpY2F0aW9uOyBvbmx5IHB1 YmxpYyBjbGllbnRzIGFyZSBzdXBwb3J0ZWQiLAorQEAgLTE5NDEsMzQgKzE5NDEsMzQgQEAgYXBy X2J5dGVfdCBvaWRjX3Byb3RvX3Rva2VuX2VuZHBvaW50X2F1dGgocmVxdWVzdF9yZWMgKnIsIG9p ZGNfY2ZnICpjZmcsCisgCisgCS8vIGlmIG5vIGNsaWVudF9zZWNyZXQgaXMgc2V0IGFuZCB3ZSBk b24ndCBhdXRoZW50aWNhdGUgdXNpbmcgcHJpdmF0ZV9rZXlfand0LAorIAkvLyB3ZSBjYW4gb25s eSBiZSBhIHB1YmxpYyBjbGllbnQgc2luY2UgdGhlIG90aGVyIG1ldGhvZHMgcmVxdWlyZSBhIGNs aWVudF9zZWNyZXQKKy0JaWYgKChjbGllbnRfc2VjcmV0ID09IE5VTEwpICYmIChhcHJfc3RybmF0 Y21wKHRva2VuX2VuZHBvaW50X2F1dGgsCisrCWlmICgoY2xpZW50X3NlY3JldCA9PSBOVUxMKSAm JiAoX29pZGNfc3RyY21wKHRva2VuX2VuZHBvaW50X2F1dGgsCisgCQkJT0lEQ19QUk9UT19QUklW QVRFX0tFWV9KV1QpICE9IDApKSB7CisgCQlvaWRjX2RlYnVnKHIsCisgCQkJCSJubyBjbGllbnQg c2VjcmV0IHNldCBhbmQgbm90IHVzaW5nIHByaXZhdGVfa2V5X2p3dCwgYXNzdW1lIHdlIGFyZSBh IHB1YmxpYyBjbGllbnQiKTsKKyAJCXJldHVybiBvaWRjX3Byb3RvX2VuZHBvaW50X2F1dGhfbm9u ZShyLCBjbGllbnRfaWQsIHBhcmFtcyk7CisgCX0KKyAKKy0JaWYgKGFwcl9zdHJuYXRjbXAodG9r ZW5fZW5kcG9pbnRfYXV0aCwKKysJaWYgKF9vaWRjX3N0cmNtcCh0b2tlbl9lbmRwb2ludF9hdXRo LAorIAkJCU9JRENfUFJPVE9fQ0xJRU5UX1NFQ1JFVF9CQVNJQykgPT0gMCkKKyAJCXJldHVybiBv aWRjX3Byb3RvX2VuZHBvaW50X2NsaWVudF9zZWNyZXRfYmFzaWMociwgY2xpZW50X2lkLAorIAkJ CQljbGllbnRfc2VjcmV0LCBiYXNpY19hdXRoX3N0cik7CisgCistCWlmIChhcHJfc3RybmF0Y21w KHRva2VuX2VuZHBvaW50X2F1dGgsCisrCWlmIChfb2lkY19zdHJjbXAodG9rZW5fZW5kcG9pbnRf YXV0aCwKKyAJCQlPSURDX1BST1RPX0NMSUVOVF9TRUNSRVRfUE9TVCkgPT0gMCkKKyAJCXJldHVy biBvaWRjX3Byb3RvX2VuZHBvaW50X2NsaWVudF9zZWNyZXRfcG9zdChyLCBjbGllbnRfaWQsCisg CQkJCWNsaWVudF9zZWNyZXQsIHBhcmFtcyk7CisgCistCWlmIChhcHJfc3RybmF0Y21wKHRva2Vu X2VuZHBvaW50X2F1dGgsCisrCWlmIChfb2lkY19zdHJjbXAodG9rZW5fZW5kcG9pbnRfYXV0aCwK KyAJCQlPSURDX1BST1RPX0NMSUVOVF9TRUNSRVRfSldUKSA9PSAwKQorIAkJcmV0dXJuIG9pZGNf cHJvdG9fZW5kcG9pbnRfYXV0aF9jbGllbnRfc2VjcmV0X2p3dChyLCBjbGllbnRfaWQsCisgCQkJ CWNsaWVudF9zZWNyZXQsIGF1ZGllbmNlLCBwYXJhbXMpOworIAorLQlpZiAoYXByX3N0cm5hdGNt cCh0b2tlbl9lbmRwb2ludF9hdXRoLAorKwlpZiAoX29pZGNfc3RyY21wKHRva2VuX2VuZHBvaW50 X2F1dGgsCisgCQkJT0lEQ19QUk9UT19QUklWQVRFX0tFWV9KV1QpID09IDApCisgCQlyZXR1cm4g b2lkY19wcm90b19lbmRwb2ludF9hdXRoX3ByaXZhdGVfa2V5X2p3dChyLCBjZmcsIGNsaWVudF9p ZCwKKyAJCQkJY2xpZW50X3NpZ25pbmdfa2V5cywgYXVkaWVuY2UsIHBhcmFtcyk7CisgCistCWlm IChhcHJfc3RybmF0Y21wKHRva2VuX2VuZHBvaW50X2F1dGgsCisrCWlmIChfb2lkY19zdHJjbXAo dG9rZW5fZW5kcG9pbnRfYXV0aCwKKyAJCQlPSURDX1BST1RPX0JFQVJFUl9BQ0NFU1NfVE9LRU4p ID09IDApIHsKKyAJCXJldHVybiBvaWRjX3Byb3RvX2VuZHBvaW50X2FjY2Vzc190b2tlbl9iZWFy ZXIociwgY2ZnLAorIAkJCQliZWFyZXJfYWNjZXNzX3Rva2VuLCBiZWFyZXJfYXV0aF9zdHIpOwor QEAgLTIyNTUsNyArMjI1NSw3IEBAIHN0YXRpYyBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fcmVzb2x2 ZV9jb21wb3NpdGVfY2xhaW1zKHJlcXVlc3RfcmVjICpyLAorIAkJCQkJCQlOVUxMLCBOVUxMLCBO VUxMKTsKKyAJCQkJfQorIAkJCX0KKy0JCQlpZiAoKHNfanNvbiAhPSBOVUxMKSAmJiAoc3RyY21w KHNfanNvbiwgIiIpICE9IDApKSB7CisrCQkJaWYgKChzX2pzb24gIT0gTlVMTCkgJiYgKF9vaWRj X3N0cmNtcChzX2pzb24sICIiKSAhPSAwKSkgeworIAkJCQlvaWRjX2p3dF90ICpqd3QgPSBOVUxM OworIAkJCQlpZiAob2lkY19qd3RfcGFyc2Uoci0+cG9vbCwgc19qc29uLCAmand0LAorIAkJCQkJ CW9pZGNfdXRpbF9tZXJnZV9zeW1tZXRyaWNfa2V5KHItPnBvb2wsCitAQCAtMjM2MCw3ICsyMzYw LDcgQEAgYXByX2J5dGVfdCBvaWRjX3Byb3RvX3Jlc29sdmVfdXNlcmluZm8ocmVxdWVzdF9yZWMg KnIsIG9pZGNfY2ZnICpjZmcsCisgCX0KKyAKKyAJaWYgKChpZF90b2tlbl9zdWIgIT0gTlVMTCkg JiYgKHVzZXJfaW5mb19zdWIgIT0gTlVMTCkpIHsKKy0JCWlmIChhcHJfc3RybmF0Y21wKGlkX3Rv a2VuX3N1YiwgdXNlcl9pbmZvX3N1YikgIT0gMCkgeworKwkJaWYgKF9vaWRjX3N0cmNtcChpZF90 b2tlbl9zdWIsIHVzZXJfaW5mb19zdWIpICE9IDApIHsKKyAJCQlvaWRjX2Vycm9yKHIsCisgCQkJ CQkiXCIlc1wiIGNsYWltIChcIiVzXCIpIHJldHVybmVkIGZyb20gdXNlcmluZm8gZW5kcG9pbnQg ZG9lcyBub3QgbWF0Y2ggdGhlIG9uZSBpbiB0aGUgaWRfdG9rZW4gKFwiJXNcIikiLAorIAkJCQkJ T0lEQ19DTEFJTV9TVUIsIHVzZXJfaW5mb19zdWIsIGlkX3Rva2VuX3N1Yik7CitAQCAtMjgxMSw3 ICsyODExLDcgQEAgc3RhdGljIGFwcl9ieXRlX3Qgb2lkY19wcm90b192YWxpZGF0ZV9yZXNwb25z ZV9tb2RlKHJlcXVlc3RfcmVjICpyLAorIAlpZiAocmVxdWVzdGVkX3Jlc3BvbnNlX21vZGUgPT0g TlVMTCkKKyAJCXJlcXVlc3RlZF9yZXNwb25zZV9tb2RlID0gZGVmYXVsdF9yZXNwb25zZV9tb2Rl OworIAorLQlpZiAoYXByX3N0cm5hdGNtcChyZXF1ZXN0ZWRfcmVzcG9uc2VfbW9kZSwgcmVzcG9u c2VfbW9kZSkgIT0gMCkgeworKwlpZiAoX29pZGNfc3RyY21wKHJlcXVlc3RlZF9yZXNwb25zZV9t b2RlLCByZXNwb25zZV9tb2RlKSAhPSAwKSB7CisgCQlvaWRjX2Vycm9yKHIsCisgCQkJCSJyZXF1 ZXN0ZWQgcmVzcG9uc2UgbW9kZSAoJXMpIGRvZXMgbm90IG1hdGNoIHRoZSByZXNwb25zZSBtb2Rl IHVzZWQgYnkgdGhlIE9QICglcykiLAorIAkJCQlyZXF1ZXN0ZWRfcmVzcG9uc2VfbW9kZSwgcmVz cG9uc2VfbW9kZSk7CitAQCAtMjgyOSw3ICsyODI5LDcgQEAgc3RhdGljIGFwcl9ieXRlX3Qgb2lk Y19wcm90b192YWxpZGF0ZV9pc3N1ZXJfY2xpZW50X2lkKHJlcXVlc3RfcmVjICpyLAorIAkJY29u c3QgY2hhciAqY29uZmlndXJlZF9jbGllbnRfaWQsIGNvbnN0IGNoYXIgKnJlc3BvbnNlX2NsaWVu dF9pZCkgeworIAorIAlpZiAocmVzcG9uc2VfaXNzdWVyICE9IE5VTEwpIHsKKy0JCWlmIChhcHJf c3RybmF0Y21wKGNvbmZpZ3VyZWRfaXNzdWVyLCByZXNwb25zZV9pc3N1ZXIpICE9IDApIHsKKysJ CWlmIChfb2lkY19zdHJjbXAoY29uZmlndXJlZF9pc3N1ZXIsIHJlc3BvbnNlX2lzc3VlcikgIT0g MCkgeworIAkJCW9pZGNfZXJyb3IociwKKyAJCQkJCSJjb25maWd1cmVkIGlzc3VlciAoJXMpIGRv ZXMgbm90IG1hdGNoIHRoZSBpc3N1ZXIgcHJvdmlkZWQgaW4gdGhlIHJlc3BvbnNlIGJ5IHRoZSBP UCAoJXMpIiwKKyAJCQkJCWNvbmZpZ3VyZWRfaXNzdWVyLCByZXNwb25zZV9pc3N1ZXIpOworQEAg LTI4MzgsNyArMjgzOCw3IEBAIHN0YXRpYyBhcHJfYnl0ZV90IG9pZGNfcHJvdG9fdmFsaWRhdGVf aXNzdWVyX2NsaWVudF9pZChyZXF1ZXN0X3JlYyAqciwKKyAJfQorIAorIAlpZiAocmVzcG9uc2Vf Y2xpZW50X2lkICE9IE5VTEwpIHsKKy0JCWlmIChhcHJfc3RybmF0Y21wKGNvbmZpZ3VyZWRfY2xp ZW50X2lkLCByZXNwb25zZV9jbGllbnRfaWQpICE9IDApIHsKKysJCWlmIChfb2lkY19zdHJjbXAo Y29uZmlndXJlZF9jbGllbnRfaWQsIHJlc3BvbnNlX2NsaWVudF9pZCkgIT0gMCkgeworIAkJCW9p ZGNfZXJyb3IociwKKyAJCQkJCSJjb25maWd1cmVkIGNsaWVudF9pZCAoJXMpIGRvZXMgbm90IG1h dGNoIHRoZSBjbGllbnRfaWQgcHJvdmlkZWQgaW4gdGhlIHJlc3BvbnNlIGJ5IHRoZSBPUCAoJXMp IiwKKyAJCQkJCWNvbmZpZ3VyZWRfY2xpZW50X2lkLCByZXNwb25zZV9jbGllbnRfaWQpOworZGlm ZiAtLWdpdCBhL3NyYy9zZXNzaW9uLmMgYi9zcmMvc2Vzc2lvbi5jCitpbmRleCA4YTFhODk0Li5l OWQ2ZmZkIDEwMDY0NAorLS0tIGEvc3JjL3Nlc3Npb24uYworKysrIGIvc3JjL3Nlc3Npb24uYwor QEAgLTEzNCw3ICsxMzQsNyBAQCBhcHJfYnl0ZV90IG9pZGNfc2Vzc2lvbl9sb2FkX2NhY2hlX2J5 X3V1aWQocmVxdWVzdF9yZWMgKnIsIG9pZGNfY2ZnICpjLAorIAkJCS8qIGNvbXBhcmUgdGhlIHNl c3Npb24gaWQgaW4gdGhlIGNhY2hlIHZhbHVlIHNvIGl0IGFsbG93cyAgdXMgdG8gZGV0ZWN0IGNh Y2hlIGNvcnJ1cHRpb24gKi8KKyAJCQlvaWRjX3Nlc3Npb25fZ2V0KHIsIHosIE9JRENfU0VTU0lP Tl9TRVNTSU9OX0lELCAmc3RvcmVkX3V1aWQpOworIAkJCWlmICgoc3RvcmVkX3V1aWQgPT0gTlVM TCkKKy0JCQkJCXx8IChhcHJfc3RybmF0Y21wKHN0b3JlZF91dWlkLCB1dWlkKSAhPSAwKSkgewor KwkJCQkJfHwgKF9vaWRjX3N0cmNtcChzdG9yZWRfdXVpZCwgdXVpZCkgIT0gMCkpIHsKKyAJCQkJ b2lkY19lcnJvcihyLAorIAkJCQkJCSJjYWNoZSBjb3JydXB0aW9uIGRldGVjdGVkOiBzdG9yZWQg c2Vzc2lvbiBpZCAoJXMpIGlzIG5vdCBlcXVhbCB0byByZXF1ZXN0ZWQgc2Vzc2lvbiBpZCAoJXMp IiwKKyAJCQkJCQlzdG9yZWRfdXVpZCwgdXVpZCk7CitAQCAtMzA2LDcgKzMwNiw3IEBAIGFwcl9i eXRlX3Qgb2lkY19zZXNzaW9uX2V4dHJhY3QocmVxdWVzdF9yZWMgKnIsIG9pZGNfc2Vzc2lvbl90 ICp6KSB7CisgCWlmIChzZXNfcF90Yl9pZCAhPSBOVUxMKSB7CisgCQllbnZfcF90Yl9pZCA9IG9p ZGNfdXRpbF9nZXRfcHJvdmlkZWRfdG9rZW5fYmluZGluZ19pZChyKTsKKyAJCWlmICgoZW52X3Bf dGJfaWQgPT0gTlVMTCkKKy0JCQkJfHwgKGFwcl9zdHJuYXRjbXAoZW52X3BfdGJfaWQsIHNlc19w X3RiX2lkKSAhPSAwKSkgeworKwkJCQl8fCAoX29pZGNfc3RyY21wKGVudl9wX3RiX2lkLCBzZXNf cF90Yl9pZCkgIT0gMCkpIHsKKyAJCQlvaWRjX2Vycm9yKHIsCisgCQkJCQkidGhlIFByb3ZpZGVk IFRva2VuIEJpbmRpbmcgSUQgc3RvcmVkIGluIHRoZSBzZXNzaW9uIGRvZXNuJ3QgbWF0Y2ggdGhl IG9uZSBwcmVzZW50ZWQgYnkgdGhlIHVzZXIgYWdlbnQiKTsKKyAJCQlvaWRjX3Nlc3Npb25fY2xl YXIociwgeik7CitkaWZmIC0tZ2l0IGEvc3JjL3V0aWwuYyBiL3NyYy91dGlsLmMKK2luZGV4IDY3 ODIyOTMuLmNkMDhjOTEgMTAwNjQ0CistLS0gYS9zcmMvdXRpbC5jCisrKysgYi9zcmMvdXRpbC5j CitAQCAtNDgwLDggKzQ4MCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBvaWRjX2dldF9jdXJyZW50 X3VybF9zY2hlbWUoY29uc3QgcmVxdWVzdF9yZWMgKnIpIHsKKyAjZW5kaWYKKyAJfQorIAlpZiAo

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)