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: Yaakov Selkowitz To: git-commits@fedoraproject.org Subject: [rpms/gridsite] rawhide: Fixes for building with openssl 4.0 Date: Mon, 15 Jun 2026 12:57:39 GMT Message-ID: <178152825930.1.3585349165477068239.rpms-gridsite-1eec7df99090@fedoraproject.org> List-ID: X-Git-Repo: rpms/gridsite X-Git-Branch: rawhide X-Git-Rev: 1eec7df990903a6672ca6fb7e324ccc1d25ee8aa ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ3JpZHNpdGUKICAgICAgICAgICAgQnJhbmNoIDogcmF3aGlkZQogICAgICAg ICAgICBDb21taXQgOiAxZWVjN2RmOTkwOTAzYTY2NzJjYTZmYjdlMzI0Y2NjMWQyNWVlOGFhCiAg ICAgICAgICAgIEF1dGhvciA6IFlhYWtvdiBTZWxrb3dpdHogPHlzZWxrb3dpQHJlZGhhdC5jb20+ CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDYtMTVUMDg6NTc6MDktMDQ6MDAKICAgICAgICAg ICAgU3RhdHMgIDogKzY5Ni8tMCBpbiAyIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0 cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9ncmlkc2l0ZS9jLzFlZWM3ZGY5OTA5MDNh NjY3MmNhNmZiN2UzMjRjY2MxZDI1ZWU4YWE/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAgIExv ZzoKICAgICAgICAgICAgRml4ZXMgZm9yIGJ1aWxkaW5nIHdpdGggb3BlbnNzbCA0LjAKCmh0dHBz Oi8vZ2l0aHViLmNvbS9DRVNORVQvZ3JpZHNpdGUvcHVsbC80OAoKLS0tCmRpZmYgLS1naXQgYS80 OC5wYXRjaCBiLzQ4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRj M2E0MjgKLS0tIC9kZXYvbnVsbAorKysgYi80OC5wYXRjaApAQCAtMCwwICsxLDY5MiBAQAorRnJv bSA4OTM2ZTRmMWMwMGVhZDcxMzg2ZjU1YjBjYzVkZjI3YjU4ODRhODQyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3Mu dXUuc2U+CitEYXRlOiBTYXQsIDEzIEp1biAyMDI2IDE1OjIzOjQwICswMjAwCitTdWJqZWN0OiBb UEFUQ0hdIEZpeGVzIGZvciBidWlsZGluZyB3aXRoIG9wZW5zc2wgNC4wCisKKy0tLQorIGludGVy ZmFjZS9ncmlkc2l0ZS5oIHwgICA2ICstCisgc3JjL2dyc3RfYXNuMS5jICAgICAgfCAgNDAgKysr Ky0tLS0tCisgc3JjL2dyc3RfY2FubF94NTA5LmMgfCAxOTIgKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMo KyksIDEwOCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ludGVyZmFjZS9ncmlkc2l0ZS5o IGIvaW50ZXJmYWNlL2dyaWRzaXRlLmgKK2luZGV4IDgwYjRhY2IuLjhkOGZkMjkgMTAwNjQ0Cist LS0gYS9pbnRlcmZhY2UvZ3JpZHNpdGUuaAorKysrIGIvaW50ZXJmYWNlL2dyaWRzaXRlLmgKK0BA IC0zODUsNyArMzg1LDcgQEAgY2hhciAgICAgICpHUlNUaHR0cFVybEVuY29kZShjaGFyICopOwor IC8qICAjZGVmaW5lIEdBQ0xtaWxkVXJsRW5jb2RlKHgpCUdSU1RodHRwTWlsZFVybEVuY29kZSgo eCkpICovCisgY2hhciAgICAgICpHUlNUaHR0cFVybE1pbGRlbmNvZGUoY2hhciAqKTsKKyAKKy1p bnQgR1JTVHg1MDlOYW1lQ21wKGNoYXIgKiwgY2hhciAqKTsKKytpbnQgR1JTVHg1MDlOYW1lQ21w KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKKyAKKyAjaWZuZGVmIEdSU1RfTk9fT1BFTlNT TAorIGludCBHUlNUeDUwOUtub3duQ3JpdGljYWxFeHRzKFg1MDkgKik7CitAQCAtNDUwLDEzICs0 NTAsMTMgQEAgaW50ICAgR1JTVGh0dHBQcmludEhlYWRlcihHUlNUaHR0cEJvZHkgKiwgY2hhciAq KTsKKyBpbnQgICBHUlNUaHR0cFByaW50Rm9vdGVyKEdSU1RodHRwQm9keSAqLCBjaGFyICopOwor IGNoYXIgKkdSU1RodHRwR2V0Q0dJKGNoYXIgKik7CisgCistdGltZV90IEdSU1Rhc24xVGltZVRv VGltZVQoY2hhciAqLCBzaXplX3QpOworK3RpbWVfdCBHUlNUYXNuMVRpbWVUb1RpbWVUKGNvbnN0 IHVuc2lnbmVkIGNoYXIgKiwgc2l6ZV90KTsKKyBpbnQgICAgR1JTVGFzbjFTZWFyY2hUYWdsaXN0 KHN0cnVjdCBHUlNUYXNuMVRhZ0xpc3QgdGFnbGlzdFtdLCBpbnQsIGNoYXIgKik7CisgI2lmbmRl ZiBHUlNUX05PX09QRU5TU0wKKyBpbnQgICAgR1JTVGFzbjFQYXJzZUR1bXAoQklPICosIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKiwgbG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IEdSU1Rhc24xVGFnTGlzdCB0YWdsaXN0W10sIGludCwgaW50ICopOworICNlbmRpZgorLWludCAg ICBHUlNUYXNuMUdldFg1MDlOYW1lKGNoYXIgKiwgaW50LCBjaGFyICosIGNoYXIgKiwKKytpbnQg ICAgR1JTVGFzbjFHZXRYNTA5TmFtZShjaGFyICosIGludCwgY2hhciAqLCBjb25zdCB1bnNpZ25l ZCBjaGFyICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IEdSU1Rhc24xVGFn TGlzdCB0YWdsaXN0W10sIGludCk7CisgCisgaW50ICAgIEdSU1RodGNwTk9QcmVxdWVzdE1ha2Uo Y2hhciAqKiwgaW50ICosIHVuc2lnbmVkIGludCk7CitkaWZmIC0tZ2l0IGEvc3JjL2dyc3RfYXNu MS5jIGIvc3JjL2dyc3RfYXNuMS5jCitpbmRleCA1ZDNiN2YyLi5hYzFiMzQzIDEwMDY0NAorLS0t IGEvc3JjL2dyc3RfYXNuMS5jCisrKysgYi9zcmMvZ3JzdF9hc24xLmMKK0BAIC0yMSwxNyArMjEs MTcgQEAKKyAgKiAgIG5lY2Vzc2FyeSkKKyAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LXRpbWVfdCBHUlNUYXNuMVRpbWVUb1RpbWVUKGNoYXIgKmFzbjF0aW1lLCBzaXplX3QgbGVuKQor K3RpbWVfdCBHUlNUYXNuMVRpbWVUb1RpbWVUKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFzbjF0aW1l LCBzaXplX3QgbGVuKQorIHsKKyAgICBjaGFyICAgem9uZTsKKyAgICBzdHJ1Y3QgdG0gdGltZV90 bTsKKyAgICAKKy0gICBpZiAobGVuID09IDApIGxlbiA9IHN0cmxlbihhc24xdGltZSk7CisrICAg aWYgKGxlbiA9PSAwKSBsZW4gPSBzdHJsZW4oKGNvbnN0IGNoYXIgKikgYXNuMXRpbWUpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCisgICAgaWYgKChsZW4gIT0gMTMpICYmIChsZW4gIT0gMTUp KSByZXR1cm4gMDsgLyogZG9udCB1bmRlcnN0YW5kICovCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKyAgICBpZiAoKGxlbiA9PSAxMykgJiYKKy0gICAgICAgKChzc2NhbmYoYXNuMXRpbWUsICIl MDJkJTAyZCUwMmQlMDJkJTAyZCUwMmQlYyIsCisrICAgICAgICgoc3NjYW5mKChjb25zdCBjaGFy ICopIGFzbjF0aW1lLCAiJTAyZCUwMmQlMDJkJTAyZCUwMmQlMDJkJWMiLAorICAgICAgICAgICYo dGltZV90bS50bV95ZWFyKSwKKyAgICAgICAgICAmKHRpbWVfdG0udG1fbW9uKSwKKyAgICAgICAg ICAmKHRpbWVfdG0udG1fbWRheSksCitAQCAtNDEsNyArNDEsNyBAQCB0aW1lX3QgR1JTVGFzbjFU aW1lVG9UaW1lVChjaGFyICphc24xdGltZSwgc2l6ZV90IGxlbikKKyAgICAgICAgICAmem9uZSkg IT0gNykgfHwgKHpvbmUgIT0gJ1onKSkpIHJldHVybiAwOyAvKiBkb250IHVuZGVyc3RhbmQgKi8K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGlmICgobGVuID09IDE1KSAmJgorLSAgICAg ICAoKHNzY2FuZihhc24xdGltZSwgIjIwJTAyZCUwMmQlMDJkJTAyZCUwMmQlMDJkJWMiLAorKyAg ICAgICAoKHNzY2FuZigoY29uc3QgY2hhciAqKSBhc24xdGltZSwgIjIwJTAyZCUwMmQlMDJkJTAy ZCUwMmQlMDJkJWMiLAorICAgICAgICAgICYodGltZV90bS50bV95ZWFyKSwKKyAgICAgICAgICAm KHRpbWVfdG0udG1fbW9uKSwKKyAgICAgICAgICAmKHRpbWVfdG0udG1fbWRheSksCitAQCAtMTM0 LDcgKzEzNCw3IEBAIHN0YXRpYyBpbnQgR1JTVGFzbjFQcmludFByaW50YWJsZShCSU8gKmJwLCBj b25zdCB1bnNpZ25lZCBjaGFyICpzdHIsIGludCBsZW5ndGgpCisgICAgaW50ICAgcmV0ID0gMDsK KyAgICBjaGFyICpkdXAsICpwOworICAgIAorLSAgIGR1cCA9IHN0cm5kdXAoc3RyLCBsZW5ndGgp OworKyAgIGR1cCA9IHN0cm5kdXAoKGNvbnN0IGNoYXIgKikgc3RyLCBsZW5ndGgpOworIAorICAg IGZvciAocD1kdXA7ICpwICE9ICdcMCc7ICsrcCkgaWYgKCgqcCA8ICcgJykgfHwgKCpwID4gJ34n KSkgKnAgPSAnLic7CisgCitAQCAtMzIzLDkgKzMyMyw5IEBAIHN0YXRpYyBpbnQgR1JTVGFzbjFQ YXJzZTIoQklPICpicCwgY29uc3QgdW5zaWduZWQgY2hhciAqKnBwLCBsb25nIGxlbmd0aCwgaW50 IG9mCisgCQkJCW9zPWQyaV9BU04xX09DVEVUX1NUUklORyhOVUxMLCZvcHAsbGVuK2hsKTsKKyAJ CQkJaWYgKG9zICE9IE5VTEwpCisgCQkJCQl7CistCQkJCQlvcHA9b3MtPmRhdGE7CisrCQkJCQlv cHAgPSBBU04xX1NUUklOR19nZXQwX2RhdGEob3MpOworIAorLQkJCQkJaWYgKG9zLT5sZW5ndGgg PiAwKQorKwkJCQkJaWYgKEFTTjFfU1RSSU5HX2xlbmd0aChvcykgPiAwKQorIAkJCQkJICB7Cisg CQkJCQkgICAgaWYgKChicCAhPSBOVUxMKSAmJgorIAkJCQkJCSAgICAoQklPX3dyaXRlKGJwLCI6 IiwxKSA8PSAwKSkKK0BAIC0zMzMsNyArMzMzLDcgQEAgc3RhdGljIGludCBHUlNUYXNuMVBhcnNl MihCSU8gKmJwLCBjb25zdCB1bnNpZ25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3RoLCBpbnQgb2YK KyAJCQkJCSAgICBpZiAoKGJwICE9IE5VTEwpICYmCisgCQkJCQkgICAgICAgIChHUlNUYXNuMVBy aW50UHJpbnRhYmxlKGJwLAorIAkJCQkJICAgICAgICAgICAgICAgIG9wcCwKKy0JCQkJCQkJb3Mt Pmxlbmd0aCkgPD0gMCkpCisrCQkJCQkJCUFTTjFfU1RSSU5HX2xlbmd0aChvcykpIDw9IDApKQor IAkJCQkJCQlnb3RvIGVuZDsKKyAJCQkJCSAgfQorIAorQEAgLTM1MiwxOCArMzUyLDE4IEBAIHN0 YXRpYyBpbnQgR1JTVGFzbjFQYXJzZTIoQklPICpicCwgY29uc3QgdW5zaWduZWQgY2hhciAqKnBw LCBsb25nIGxlbmd0aCwgaW50IG9mCisgCQkJCQl7CisgCQkJCQlpZiAoKGJwICE9IE5VTEwpICYm CisgCQkJCQkgICAgKEJJT193cml0ZShicCwiOiIsMSkgPD0gMCkpIGdvdG8gZW5kOworLQkJCQkJ aWYgKGJzLT50eXBlID09IFZfQVNOMV9ORUdfSU5URUdFUikKKysJCQkJCWlmIChBU04xX1NUUklO R190eXBlKGJzKSA9PSBWX0FTTjFfTkVHX0lOVEVHRVIpCisgCQkJCQkJaWYgKChicCAhPSBOVUxM KSAmJgorIAkJCQkJCSAgICAoQklPX3dyaXRlKGJwLCItIiwxKSA8PSAwKSkKKyAJCQkJCQkJZ290 byBlbmQ7CistCQkJCQlmb3IgKGk9MDsgaTxicy0+bGVuZ3RoOyBpKyspCisrCQkJCQlmb3IgKGk9 MDsgaSA8IEFTTjFfU1RSSU5HX2xlbmd0aChicyk7IGkrKykKKyAJCQkJCQl7CisgCQkJCQkJaWYg KChicCAhPSBOVUxMKSAmJgorIAkJCQkJCSAgICAoQklPX3ByaW50ZihicCwiJTAyWCIsCistCQkJ CQkJCWJzLT5kYXRhW2ldKSA8PSAwKSkKKysJCQkJCQkJQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGJz KVtpXSkgPD0gMCkpCisgCQkJCQkJCWdvdG8gZW5kOworIAkJCQkJCX0KKy0JCQkJCWlmIChicy0+ bGVuZ3RoID09IDApCisrCQkJCQlpZiAoQVNOMV9TVFJJTkdfbGVuZ3RoKGJzKSA9PSAwKQorIAkJ CQkJCXsKKyAJCQkJCQlpZiAoKGJwICE9IE5VTEwpICYmIAorIAkJCQkJCSAgICAoQklPX3dyaXRl KGJwLCIwMCIsMikgPD0gMCkpCitAQCAtMzg5LDE4ICszODksMTggQEAgc3RhdGljIGludCBHUlNU YXNuMVBhcnNlMihCSU8gKmJwLCBjb25zdCB1bnNpZ25lZCBjaGFyICoqcHAsIGxvbmcgbGVuZ3Ro LCBpbnQgb2YKKyAJCQkJCXsKKyAJCQkJCWlmICgoYnAgIT0gTlVMTCkgJiYKKyAJCQkJCSAgICAo QklPX3dyaXRlKGJwLCI6IiwxKSA8PSAwKSkgZ290byBlbmQ7CistCQkJCQlpZiAoYnMtPnR5cGUg PT0gVl9BU04xX05FR19FTlVNRVJBVEVEKQorKwkJCQkJaWYgKEFTTjFfU1RSSU5HX3R5cGUoYnMp ID09IFZfQVNOMV9ORUdfRU5VTUVSQVRFRCkKKyAJCQkJCQlpZiAoKGJwICE9IE5VTEwpICYmCisg CQkJCQkJICAgIChCSU9fd3JpdGUoYnAsIi0iLDEpIDw9IDApKQorIAkJCQkJCQlnb3RvIGVuZDsK Ky0JCQkJCWZvciAoaT0wOyBpPGJzLT5sZW5ndGg7IGkrKykKKysJCQkJCWZvciAoaT0wOyBpIDwg QVNOMV9TVFJJTkdfbGVuZ3RoKGJzKTsgaSsrKQorIAkJCQkJCXsKKyAJCQkJCQlpZiAoKGJwICE9 IE5VTEwpICYmCisgCQkJCQkJICAgIChCSU9fcHJpbnRmKGJwLCIlMDJYIiwKKy0JCQkJCQkJYnMt PmRhdGFbaV0pIDw9IDApKQorKwkJCQkJCQlBU04xX1NUUklOR19nZXQwX2RhdGEoYnMpW2ldKSA8 PSAwKSkKKyAJCQkJCQkJZ290byBlbmQ7CisgCQkJCQkJfQorLQkJCQkJaWYgKGJzLT5sZW5ndGgg PT0gMCkKKysJCQkJCWlmIChBU04xX1NUUklOR19sZW5ndGgoYnMpID09IDApCisgCQkJCQkJewor IAkJCQkJCWlmICgoYnAgIT0gTlVMTCkgJiYKKyAJCQkJCQkgICAgKEJJT193cml0ZShicCwiMDAi LDIpIDw9IDApKQorQEAgLTQ2Myw3ICs0NjMsNyBAQCBpbnQgR1JTVGFzbjFQYXJzZUR1bXAoQklP ICpicCwgY29uc3QgdW5zaWduZWQgY2hhciAqcHAsIGxvbmcgbGVuLAorICAgICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgIAorIAorIGludAorLUdSU1Rhc24xR2V0RmllbGQoaW50IGluZGV4 LCBjaGFyICpjb29yZHMsIGNoYXIgKmFzbjFzdHJpbmcsCisrR1JTVGFzbjFHZXRGaWVsZChpbnQg aW5kZXgsIGNoYXIgKmNvb3JkcywgY29uc3QgdW5zaWduZWQgY2hhciAqYXNuMXN0cmluZywKKyAJ CSAgIHN0cnVjdCBHUlNUYXNuMVRhZ0xpc3QgdGFnbGlzdFtdLCBpbnQgbGFzdHRhZywKKyAJCSAg IEFTTjFfT0JKRUNUICoqZmllbGRfb2JqLCBpbnQgKmZpZWxkX2luZGV4KQorIHsKK0BAIC00ODIs NyArNDgyLDcgQEAgR1JTVGFzbjFHZXRGaWVsZChpbnQgaW5kZXgsIGNoYXIgKmNvb3JkcywgY2hh ciAqYXNuMXN0cmluZywKKyAgICAgaWYgKGl2YWwgPCAwKQorIAlyZXR1cm4gR1JTVF9SRVRfRkFJ TEVEOworIAorLSAgICBxID0gKHVuc2lnbmVkIGNoYXIgKikgJmFzbjFzdHJpbmdbdGFnbGlzdFtp b2JqXS5zdGFydF07CisrICAgIHEgPSAmYXNuMXN0cmluZ1t0YWdsaXN0W2lvYmpdLnN0YXJ0XTsK KyAgICAgb2JqID0gZDJpX0FTTjFfT0JKRUNUKE5VTEwsICZxLAorIAkJICAgIHRhZ2xpc3RbaW9i al0ubGVuZ3RoICsgdGFnbGlzdFtpb2JqXS5oZWFkZXJsZW5ndGgpOworICAgICBpZiAob2JqID09 IE5VTEwpCitAQCAtNDk1LDcgKzQ5NSw3IEBAIEdSU1Rhc24xR2V0RmllbGQoaW50IGluZGV4LCBj aGFyICpjb29yZHMsIGNoYXIgKmFzbjFzdHJpbmcsCisgfQorIAorIGludCBHUlNUYXNuMUdldFg1 MDlOYW1lKGNoYXIgKng1MDluYW1lLCBpbnQgbWF4bGVuZ3RoLCBjaGFyICpjb29yZHMsCistICAg ICAgICAgICAgICAgICAgICAgICAgY2hhciAqYXNuMXN0cmluZywKKysgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphc24xc3RyaW5nLAorICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBHUlNUYXNuMVRhZ0xpc3QgdGFnbGlzdFtdLCBpbnQgbGFzdHRhZykg ICAgICAgICAgICAgICAgICAgICAgICAKKyB7CisgICAgaW50IGksIGlzdHIsIG4sIGxlbiA9IDA7 CitAQCAtNTMzLDcgKzUzMyw3IEBAIGludCBHUlNUYXNuMUdldFg1MDlOYW1lKGNoYXIgKng1MDlu YW1lLCBpbnQgbWF4bGVuZ3RoLCBjaGFyICpjb29yZHMsCisgCisgaW50CisgR1JTVGFzbjFGaW5k RmllbGQoY29uc3QgY2hhciAqb2lkLCBjaGFyICpjb29yZHMsCistCQkgICBjaGFyICphc24xc3Ry aW5nLAorKwkJICAgY29uc3QgdW5zaWduZWQgY2hhciAqYXNuMXN0cmluZywKKyAJCSAgIHN0cnVj dCBHUlNUYXNuMVRhZ0xpc3QgdGFnbGlzdFtdLCBpbnQgbGFzdHRhZywKKyAJCSAgIGludCAqcmVz dWx0KQorIHsKK2RpZmYgLS1naXQgYS9zcmMvZ3JzdF9jYW5sX3g1MDkuYyBiL3NyYy9ncnN0X2Nh bmxfeDUwOS5jCitpbmRleCAxZjQ2MDE4Li4wZmQ0ZjBlIDEwMDY0NAorLS0tIGEvc3JjL2dyc3Rf Y2FubF94NTA5LmMKKysrKyBiL3NyYy9ncnN0X2NhbmxfeDUwOS5jCitAQCAtODcsNyArODcsNyBA QCBzdGF0aWMgaW50IEdSU1R4NTA5TWFrZVByb3h5UmVxdWVzdF9pbnQoY2hhciAqKnJlcXR4dCwg Y2hhciAqcHJveHlkaXIsCisgc3RhdGljIGludCBHUlNUeDUwOVByb3h5S2V5TWF0Y2goY2hhciAq KnBrZmlsZSwgY2hhciAqcGtkaXIsIFNUQUNLX09GKFg1MDkpICpjZXJ0c3RhY2spOyAKKyAKKyBz dGF0aWMgY2hhciAqCistYXNuMV9zdHJpbmcyc3RyaW5nKEFTTjFfU1RSSU5HICpzdHIpCisrYXNu MV9zdHJpbmcyc3RyaW5nKGNvbnN0IEFTTjFfU1RSSU5HICpzdHIpCisgeworIAlCSU8gKmJpbzsK KyAJaW50IGxlbiwgcmV0OworQEAgLTE0NCw5ICsxNDQsOSBAQCBpc19yb2JvdF9jZXJ0aWZpY2F0 ZShYNTA5ICpjZXJ0KQorIAlpbnQgaSwgcmV0LCBmb3VuZDsKKyAJY2hhciAqcDsKKyAJY2hhciBi dWZbNjRdOworLQlYNTA5X05BTUVfRU5UUlkgKm5lOworLQlYNTA5X05BTUUgKnN1YmplY3Q7Cist CUFTTjFfU1RSSU5HICp2YWx1ZTsKKysJY29uc3QgWDUwOV9OQU1FX0VOVFJZICpuZTsKKysJY29u c3QgWDUwOV9OQU1FICpzdWJqZWN0OworKwljb25zdCBBU04xX1NUUklORyAqdmFsdWU7CisgCUNF UlRJRklDQVRFUE9MSUNJRVMgKnBvbGljaWVzID0gTlVMTDsKKyAJUE9MSUNZSU5GTyAqcG9saWN5 OworIAorQEAgLTIwMiw3ICsyMDIsNyBAQCBhZGRfZ3JzdF9jcmVkKEdSU1R4NTA5Q2VydCAqbGFz dF9jcmVkKQorIAorIGludAorIEdSU1Rhc24xRmluZEZpZWxkKGNvbnN0IGNoYXIgKm9pZCwgY2hh ciAqY29vcmRzLAorLSAgICAgICAgY2hhciAqYXNuMXN0cmluZywKKysgICAgICAgIGNvbnN0IHVu c2lnbmVkIGNoYXIgKmFzbjFzdHJpbmcsCisgICAgICAgICBzdHJ1Y3QgR1JTVGFzbjFUYWdMaXN0 IHRhZ2xpc3RbXSwgaW50IGxhc3R0YWcsCisgICAgICAgICBpbnQgKnJlc3VsdCk7CisgCitAQCAt MjIwLDcgKzIyMCw3IEBAIHN0YXRpYyB2b2lkIEdSU1R4NTA5U2FmZU9wZW5TU0xJbml0aWFsaXph dGlvbih2b2lkKQorIH0KKyAKKyAvLy8gQ29tcGFyZSBYNTA5IERpc3Rpbmd1aXNoZWQgTmFtZSBz dHJpbmdzCistaW50IEdSU1R4NTA5TmFtZUNtcChjaGFyICphLCBjaGFyICpiKQorK2ludCBHUlNU eDUwOU5hbWVDbXAoY29uc3QgY2hhciAqYSwgY29uc3QgY2hhciAqYikKKyAvLy8KKyAvLy8gVGhp cyBmdW5jdGlvbiBhdHRlbXB0cyB0byBkbyB3aXRoIHN0cmluZyByZXByZXNlbnRhdGlvbnMgd2hh dAorIC8vLyB3b3VsZCBpZGVhbGx5IGJlIGRvbmUgd2l0aCBPSURzL3ZhbHVlcy4gSW4gcGFydGlj dWxhciwgd2UgZXF1YXRlCitAQCAtMjcxLDggKzI3MSwxMiBAQCBpbnQgR1JTVHg1MDlLbm93bkNy aXRpY2FsRXh0cyhYNTA5ICpjZXJ0KQorIHsKKyAgICBpbnQgIGk7CisgICAgY2hhciBzWzgwXTsK KysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA+PSAweDQwMDAwMDAwTAorKyAgIGNvbnN0IFg1 MDlfRVhURU5TSU9OICpleDsKKysjZWxzZQorICAgIFg1MDlfRVhURU5TSU9OICpleDsKKy0gICAK KysjZW5kaWYKKysKKyAjaWZkZWYgWDUwOV9WX0VSUl9VTkhBTkRMRURfQ1JJVElDQUxfRVhURU5T SU9OICAgICAgICAKKyAgICBmb3IgKGkgPSAwOyBpIDwgWDUwOV9nZXRfZXh0X2NvdW50KGNlcnQp OyArK2kpCisgICAgICAgeworQEAgLTMzOSw4ICszNDMsOCBAQCBpbnQgR1JTVHg1MDlDaGFpbkZy ZWUoR1JTVHg1MDlDaGFpbiAqY2hhaW4pCisgCisgLy8vIENoZWNrIGEgc3BlY2lmaWMgc2lnbmF0 dXJlIGFnYWluc3QgYSBzcGVjaWZpYyAoVk9NUykgY2VydAorIHN0YXRpYyBpbnQgR1JTVHg1MDlW ZXJpZnlTaWcodGltZV90ICp0aW1lMV90aW1lLCB0aW1lX3QgKnRpbWUyX3RpbWUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICp0eHQsIGludCB0eHRfbGVuLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqc2lnLCBpbnQgc2ln X2xlbiwgCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFy ICp0eHQsIGludCB0eHRfbGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dW5zaWduZWQgY2hhciAqc2lnLCBpbnQgc2lnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFg1MDkgKmNlcnQsIGNvbnN0IEVWUF9NRCAqbWRfdHlwZSkKKyAvLy8KKyAvLy8gUmV0 dXJucyBHUlNUX1JFVF9PSyBpZiBzaWduYXR1cmUgaXMgb2ssIG90aGVyIHZhbHVlcyBpZiBub3Qu CitAQCAtMzc2LDIyICszODAsMjIgQEAgc3RhdGljIGludCBHUlNUeDUwOVZlcmlmeVNpZyh0aW1l X3QgKnRpbWUxX3RpbWUsIHRpbWVfdCAqdGltZTJfdGltZSwKKyAKKyAgICBpZiAocmV0ICE9IDEp IHJldHVybiBHUlNUX1JFVF9GQUlMRUQ7CisgCistICAgdm9tc19zZXJ2aWNlX3RpbWUxID0gCist ICAgICAgICAgICBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRf bm90QmVmb3JlKGNlcnQpKSwwKTsKKy0gICAgICAgICAgaWYgKHZvbXNfc2VydmljZV90aW1lMSA+ ICp0aW1lMV90aW1lKSAKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0aW1lMV90aW1l ID0gdm9tc19zZXJ2aWNlX3RpbWUxOyAKKy0gICAgICAgICAgIAorLSAgIHZvbXNfc2VydmljZV90 aW1lMiA9IAorLSAgICAgICAgICAgR1JTVGFzbjFUaW1lVG9UaW1lVChBU04xX1NUUklOR19kYXRh KFg1MDlfZ2V0X25vdEFmdGVyKGNlcnQpKSwwKTsKKy0gICAgICAgICAgaWYgKHZvbXNfc2Vydmlj ZV90aW1lMiA8ICp0aW1lMl90aW1lKSAKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0 aW1lMl90aW1lID0gdm9tc19zZXJ2aWNlX3RpbWUyOyAKKysgICB2b21zX3NlcnZpY2VfdGltZTEg PQorKyAgICAgICBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5 X2dldF9ub3RCZWZvcmUoY2VydCkpLCAwKTsKKysgICBpZiAodm9tc19zZXJ2aWNlX3RpbWUxID4g KnRpbWUxX3RpbWUpCisrICAgICAgICp0aW1lMV90aW1lID0gdm9tc19zZXJ2aWNlX3RpbWUxOwor KworKyAgIHZvbXNfc2VydmljZV90aW1lMiA9CisrICAgICAgIEdSU1Rhc24xVGltZVRvVGltZVQo QVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfZ2V0X25vdEFmdGVyKGNlcnQpKSwgMCk7CisrICAg aWYgKHZvbXNfc2VydmljZV90aW1lMiA8ICp0aW1lMl90aW1lKQorKyAgICAgICAqdGltZTJfdGlt ZSA9IHZvbXNfc2VydmljZV90aW1lMjsKKyAKKyAgICByZXR1cm4gR1JTVF9SRVRfT0sgOyAvKiB2 ZXJpZmllZCAqLworIH0KKyAKKyAvLy8gQ2hlY2sgdGhlIHNpZ25hdHVyZSBvZiB0aGUgVk9NUyBh dHRyaWJ1dGVzCisgc3RhdGljIGludCBHUlNUeDUwOVZlcmlmeVZvbXNTaWcodGltZV90ICp0aW1l MV90aW1lLCB0aW1lX3QgKnRpbWUyX3RpbWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgY2hhciAqYXNuMXN0cmluZywgCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYXNuMXN0cmluZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgR1JTVGFzbjFUYWdMaXN0IHRhZ2xpc3RbXSwg CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxhc3R0YWcsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqdm9tc2RpciwgaW50IGFjbnVtYmVyKQor QEAgLTU3NSw3ICs1NzksNyBAQCBzdGF0aWMgaW50IEdSU1R4NTA5VmVyaWZ5Vm9tc1NpZyh0aW1l X3QgKnRpbWUxX3RpbWUsIHRpbWVfdCAqdGltZTJfdGltZSwKKyAKKyAvLy8gQ2hlY2sgdGhlIHNp Z25hdHVyZSBvZiB0aGUgVk9NUyBhdHRyaWJ1dGVzIHVzaW5nIHRoZSBMU0MgZmlsZSBjZXJ0Cisg c3RhdGljIGludCBHUlNUeDUwOVZlcmlmeVZvbXNTaWdDZXJ0KHRpbWVfdCAqdGltZTFfdGltZSwg dGltZV90ICp0aW1lMl90aW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBjaGFyICphc24xc3RyaW5nLCAKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYXNuMXN0cmluZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IEdSU1Rhc24xVGFnTGlzdCB0YWdsaXN0 W10sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGFzdHRhZywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqdm9tc2RpciwgaW50 IGFjbnVtYmVyLAorQEAgLTYwMyw5ICs2MDcsOSBAQCBzdGF0aWMgaW50IEdSU1R4NTA5VmVyaWZ5 Vm9tc1NpZ0NlcnQodGltZV90ICp0aW1lMV90aW1lLCB0aW1lX3QgKnRpbWUyX3RpbWUsCisgICAg c3RydWN0IHN0YXQgICAgc3RhdGJ1ZjsKKyAgICB0aW1lX3QgICAgICAgICB0bXBfdGltZTsKKyAg ICBBU04xX09CSkVDVCAgICpoYXNoX29iaiA9IE5VTEw7CistICAgY2hhcgkJICBjb29yZHNbMjAw XTsKKysgICBjaGFyICAgICAgICAgICBjb29yZHNbMjAwXTsKKyAgICBjb25zdCBFVlBfTUQgICpt ZF90eXBlID0gTlVMTDsKKy0gICB0aW1lX3QJICB2b21zX3NlcnZpY2VfdGltZTEgPSAwLCB2b21z X3NlcnZpY2VfdGltZTIgPSBHUlNUX01BWF9USU1FX1Q7CisrICAgdGltZV90ICAgICAgICAgdm9t c19zZXJ2aWNlX3RpbWUxID0gMCwgdm9tc19zZXJ2aWNlX3RpbWUyID0gR1JTVF9NQVhfVElNRV9U OworIAorICAgIGlmICgodm9tc2RpciA9PSBOVUxMKSB8fCAodm9tc2RpclswXSA9PSAnXDAnKSkg cmV0dXJuIEdSU1RfUkVUX0ZBSUxFRDsKKyAKK0BAIC02MzUsNyArNjM5LDcgQEAgc3RhdGljIGlu dCBHUlNUeDUwOVZlcmlmeVZvbXNTaWdDZXJ0KHRpbWVfdCAqdGltZTFfdGltZSwgdGltZV90ICp0 aW1lMl90aW1lLAorIAorICAgIHEgPSAmYXNuMXN0cmluZ1t0YWdsaXN0W2loYXNoXS5zdGFydF07 CisgICAgZDJpX0FTTjFfT0JKRUNUKCZoYXNoX29iaiwgJnEsCistCQkgICB0YWdsaXN0W2loYXNo XS5sZW5ndGgrdGFnbGlzdFtpaGFzaF0uaGVhZGVybGVuZ3RoKTsKKysgICAgICAgICAgICAgICAg ICAgdGFnbGlzdFtpaGFzaF0ubGVuZ3RoK3RhZ2xpc3RbaWhhc2hdLmhlYWRlcmxlbmd0aCk7Cisg CisgICAgbWRfdHlwZSA9IEVWUF9nZXRfZGlnZXN0YnluYW1lKE9CSl9uaWQyc24oT0JKX29iajJu aWQoaGFzaF9vYmopKSk7CisgICAgaWYgKGhhc2hfb2JqKQorQEAgLTY4NywyMSArNjkxLDIxIEBA IHN0YXRpYyBpbnQgR1JTVHg1MDlWZXJpZnlWb21zU2lnQ2VydCh0aW1lX3QgKnRpbWUxX3RpbWUs IHRpbWVfdCAqdGltZTJfdGltZSwKKyAgICAvKiBjaGVjayB0aW1lcyBDQSBjZXJ0IHRpbWVzLCBh bmQgcmVqZWN0IGlmIG5lY2Vzc2FyeSAqLworIAorICAgIHRtcF90aW1lID0gR1JTVGFzbjFUaW1l VG9UaW1lVCgKKy0gICAgICAgICAgICAgICAgICAgQVNOMV9TVFJJTkdfZGF0YShYNTA5X2dldF9u b3RCZWZvcmUoY2FjZXJ0KSksIDApOworKyAgICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19n ZXQwX2RhdGEoWDUwOV9nZXRfbm90QmVmb3JlKGNhY2VydCkpLCAwKTsKKyAgICBpZiAodG1wX3Rp bWUgPiAqdGltZTFfdGltZSkgY2hhaW5fZXJyb3JzIHw9IEdSU1RfQ0VSVF9CQURfVElNRTsKKyAK KyAgICB0bXBfdGltZSA9IEdSU1Rhc24xVGltZVRvVGltZVQoCistICAgICAgICAgICAgICAgICAg IEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QWZ0ZXIoY2FjZXJ0KSksIDApOworKyAgICAg ICAgICAgICAgICAgICBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9nZXRfbm90QWZ0ZXIoY2Fj ZXJ0KSksIDApOworICAgIGlmICh0bXBfdGltZSA8ICp0aW1lMl90aW1lKSBjaGFpbl9lcnJvcnMg fD0gR1JTVF9DRVJUX0JBRF9USU1FOworICAgIAorICAgIC8qIGNoZWNrIHRpbWVzIFZPTVMgY2Vy dCB0aW1lcywgYW5kIHRpZ2h0ZW4gaWYgbmVjZXNzYXJ5ICovCisgCisgICAgdG1wX3RpbWUgPSBH UlNUYXNuMVRpbWVUb1RpbWVUKAorLSAgICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19kYXRh KFg1MDlfZ2V0X25vdEJlZm9yZSh2b21zY2VydCkpLCAwKTsKKysgICAgICAgICAgICAgICAgICAg QVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfZ2V0X25vdEJlZm9yZSh2b21zY2VydCkpLCAwKTsK KyAgICBpZiAodG1wX3RpbWUgPiAqdGltZTFfdGltZSkgY2hhaW5fZXJyb3JzIHw9IEdSU1RfQ0VS VF9CQURfVElNRTsKKyAKKyAgICB0bXBfdGltZSA9IEdSU1Rhc24xVGltZVRvVGltZVQoCistICAg ICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QWZ0ZXIodm9tc2Nl cnQpKSwgMCk7CisrICAgICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5 X2dldF9ub3RBZnRlcih2b21zY2VydCkpLCAwKTsKKyAgICBpZiAodG1wX3RpbWUgPCAqdGltZTJf dGltZSkgY2hhaW5fZXJyb3JzIHw9IEdSU1RfQ0VSVF9CQURfVElNRTsKKyAgICAKKyAgICByZXQg PSBYNTA5X2NoZWNrX2lzc3VlZChjYWNlcnQsIHZvbXNjZXJ0KTsKK0BAIC04MDgsMTAgKzgxMiwx NCBAQCBzdGF0aWMgaW50IEdSU1R4NTA5VmVyaWZ5Vm9tc1NpZ0NlcnQodGltZV90ICp0aW1lMV90 aW1lLCB0aW1lX3QgKnRpbWUyX3RpbWUsCisgfQorIAorIC8vLyBHZXQgdGhlIFZPTVMgYXR0cmli dXRlcyBpbiB0aGUgZ2l2ZW4gZXh0ZW5zaW9uCistc3RhdGljIGludCBHUlNUeDUwOUNoYWluVm9t c0FkZChHUlNUeDUwOUNlcnQgKipncnN0X2NlcnQsIAorK3N0YXRpYyBpbnQgR1JTVHg1MDlDaGFp blZvbXNBZGQoR1JTVHg1MDlDZXJ0ICoqZ3JzdF9jZXJ0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICB0aW1lX3QgdGltZTFfdGltZSwgdGltZV90IHRpbWUyX3RpbWUsCistCQkJIGludCBkZWxl Z2F0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXgsIAor KyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVsZWdhdGlvbiwKKysjaWYgT1BFTlNTTF9W RVJTSU9OX05VTUJFUiA+PSAweDQwMDAwMDAwTAorKyAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBYNTA5X0VYVEVOU0lPTiAqZXgsCisrI2Vsc2UKKysgICAgICAgICAgICAgICAgICAgICAg ICAgWDUwOV9FWFRFTlNJT04gKmV4LAorKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAg ICBHUlNUeDUwOUNlcnQgKnVzZXJfY2VydCwgY2hhciAqdm9tc2RpciwgY2hhciAqY2FwYXRoKQor IC8vLworIC8vLyBBZGQgYW55IFZPTVMgY3JlZGVudGlhbHMgZm91bmQgaW50byB0aGUgY2hhaW4u IEFsd2F5cyByZXR1cm5zIEdSU1RfUkVUX09LCitAQCAtODI2LDggKzgzNCw5IEBAIHN0YXRpYyBp bnQgR1JTVHg1MDlDaGFpblZvbXNBZGQoR1JTVHg1MDlDZXJ0ICoqZ3JzdF9jZXJ0LAorICNkZWZp bmUgR1JTVF9BU04xX0NPT1JEU19USU1FMiAgICAgICAgICItMS0xLSVkLTEtNi0yIgorICNkZWZp bmUgR1JTVF9BU04xX0NPT1JEU19WT01TQ0VSVCAgICAgICItMS0xLSVkLTEtOC0lJWQtJSVkIgor IAorLSAgIEFTTjFfT0NURVRfU1RSSU5HICphc24xZGF0YTsKKy0gICBjaGFyICAgICAgICAgICAg ICAqYXNuMXN0cmluZywgYWNpc3N1ZXJkblsyMDBdLCBhY3ZvbXNkblsyMDBdLAorKyAgIGNvbnN0 IEFTTjFfT0NURVRfU1RSSU5HICphc24xZGF0YTsKKysgICBjb25zdCB1bnNpZ25lZCBjaGFyICph c24xc3RyaW5nOworKyAgIGNoYXIgICAgICAgICAgICAgICBhY2lzc3VlcmRuWzIwMF0sIGFjdm9t c2RuWzIwMF0sCisgICAgICAgICAgICAgICAgICAgICAgIGRuX2Nvb3Jkc1syMDBdLCBmcWFuX2Nv b3Jkc1syMDBdLCB0aW1lMV9jb29yZHNbMjAwXSwKKyAgICAgICAgICAgICAgICAgICAgICAgdGlt ZTJfY29vcmRzWzIwMF0sIHZvbXNjZXJ0X2Nvb3Jkc1syMDBdLCAqdm9uYW1lID0gTlVMTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgc2VyaWFsX2Nvb3Jkc1syMDBdOworQEAgLTgzOCwxMCArODQ3 LDEwIEBAIHN0YXRpYyBpbnQgR1JTVHg1MDlDaGFpblZvbXNBZGQoR1JTVHg1MDlDZXJ0ICoqZ3Jz dF9jZXJ0LAorICAgIHN0cnVjdCBHUlNUYXNuMVRhZ0xpc3QgdGFnbGlzdFtNQVhUQUcrMV07Cisg ICAgdGltZV90ICAgICAgICAgICAgIGFjdGltZTEgPSAwLCBhY3RpbWUyID0gMCwgdGltZV9ub3cs CisgICAgICAgICAgICAgICAgICAgICAgIHRtcF90aW1lMSwgdG1wX3RpbWUyOworLSAgIEFTTjFf SU5URUdFUgkgICAgICBhY2lzc3VlcnNlcmlhbEFTTjE7CisrICAgQVNOMV9JTlRFR0VSICAgICAg KmFjaXNzdWVyc2VyaWFsQVNOMTsKKyAKKyAgICBhc24xZGF0YSAgID0gWDUwOV9FWFRFTlNJT05f Z2V0X2RhdGEoZXgpOworLSAgIGFzbjFzdHJpbmcgPSBBU04xX1NUUklOR19kYXRhKGFzbjFkYXRh KTsKKysgICBhc24xc3RyaW5nID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGFzbjFkYXRhKTsKKyAg ICBhc24xbGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3RoKGFzbjFkYXRhKTsKKyAKKyAgICBHUlNU YXNuMVBhcnNlRHVtcChOVUxMLCBhc24xc3RyaW5nLCBhc24xbGVuZ3RoLCB0YWdsaXN0LCBNQVhU QUcsICZsYXN0dGFnKTsKK0BAIC04NzMsMTEgKzg4MiwxMyBAQCBzdGF0aWMgaW50IEdSU1R4NTA5 Q2hhaW5Wb21zQWRkKEdSU1R4NTA5Q2VydCAqKmdyc3RfY2VydCwKKyAKKyAgICAgICAgIGlmIChp dGFnID4gLTEpIAorICAgICAgICAgICB7CistICAgICAgICAgICAgYWNpc3N1ZXJzZXJpYWxBU04x Lmxlbmd0aCA9IHRhZ2xpc3RbaXRhZ10ubGVuZ3RoOworLSAgICAgICAgICAgIGFjaXNzdWVyc2Vy aWFsQVNOMS50eXBlICAgPSBWX0FTTjFfSU5URUdFUjsKKy0gICAgICAgICAgICBhY2lzc3VlcnNl cmlhbEFTTjEuZGF0YSAgID0gJmFzbjFzdHJpbmdbdGFnbGlzdFtpdGFnXS5zdGFydCt0YWdsaXN0 W2l0YWddLmhlYWRlcmxlbmd0aF07CisrICAgICAgICAgICAgYWNpc3N1ZXJzZXJpYWxBU04xID0g QVNOMV9JTlRFR0VSX25ldygpOworKyAgICAgICAgICAgIEFTTjFfT0NURVRfU1RSSU5HX3NldChh Y2lzc3VlcnNlcmlhbEFTTjEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZh c24xc3RyaW5nW3RhZ2xpc3RbaXRhZ10uc3RhcnQrdGFnbGlzdFtpdGFnXS5oZWFkZXJsZW5ndGhd LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdsaXN0W2l0YWddLmxlbmd0 aCk7CisgCistICAgICAgICAgICAgYWNpc3N1ZXJzZXJpYWwgPSBpMnNfQVNOMV9JTlRFR0VSKE5V TEwsICZhY2lzc3VlcnNlcmlhbEFTTjEpOworKyAgICAgICAgICAgIGFjaXNzdWVyc2VyaWFsID0g aTJzX0FTTjFfSU5URUdFUihOVUxMLCBhY2lzc3VlcnNlcmlhbEFTTjEpOworKyAgICAgICAgICAg IEFTTjFfSU5URUdFUl9mcmVlKGFjaXNzdWVyc2VyaWFsQVNOMSk7CisgLyoKKyAgICAgICAgICAg ICBwID0gJmFzbjFzdHJpbmdbdGFnbGlzdFtpdGFnXS5zdGFydCt0YWdsaXN0W2l0YWddLmhlYWRl cmxlbmd0aF07CisgICAgICAgICAgIAorQEAgLTk0NCw4ICs5NTUsOSBAQCBzdGF0aWMgaW50IEdS U1R4NTA5Q2hhaW5Wb21zQWRkKEdSU1R4NTA5Q2VydCAqKmdyc3RfY2VydCwKKyAKKyAgICAgICAg IHNucHJpbnRmKHZvbXNjZXJ0X2Nvb3Jkcywgc2l6ZW9mKHZvbXNjZXJ0X2Nvb3JkcyksIAorICAg ICAgICAgICAgICAgICAgR1JTVF9BU04xX0NPT1JEU19WT01TQ0VSVCwgYWNudW1iZXIpOworLQly ZXQgPSBHUlNUYXNuMUZpbmRGaWVsZChHUlNUX1ZPTVNfUEtfQ0VSVF9MSVNUX09JRCwgdm9tc2Nl cnRfY29vcmRzLCBhc24xc3RyaW5nLAorLQkJCQl0YWdsaXN0LCBsYXN0dGFnLCAmaXZvbXNjZXJ0 KTsKKysgICAgICAgIHJldCA9IEdSU1Rhc24xRmluZEZpZWxkKEdSU1RfVk9NU19QS19DRVJUX0xJ U1RfT0lELAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9tc2NlcnRfY29vcmRz LCBhc24xc3RyaW5nLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnbGlzdCwg bGFzdHRhZywgJml2b21zY2VydCk7CisgCisgICAgICAgICAvKiB0cnkgdXNpbmcgaW50ZXJuYWwg Vk9NUyBpc3N1ZXIgY2VydCAqLworICAgICAgICAgdG1wX2NoYWluX2Vycm9ycyA9IEdSU1RfQ0VS VF9CQURfU0lHOworQEAgLTEwMTksMTMgKzEwMzEsMTIgQEAgaW50IEdSU1R4NTA5Q2hhaW5Mb2Fk KEdSU1R4NTA5Q2hhaW4gKipjaGFpbiwKKyAgICBYNTA5ICpjZXJ0OyAgICAgICAgICAgICAgICAg IC8qIFBvaW50cyB0byB0aGUgY3VycmVudCBjZXJ0IGluIHRoZSBsb29wICovCisgICAgWDUwOSAq Y2FjZXJ0ID0gTlVMTDsgICAgICAgICAvKiBUaGUgQ0Egcm9vdCBjZXJ0ICovCisgICAgaW50IGRl cHRoID0gMDsgICAgICAgICAgICAgICAvKiBEZXB0aCBvZiBjZXJ0IGNoYWluICovCistICAgaW50 IGNoYWluX2Vycm9ycyA9IDA7CS8qIHJlY29yZHMgcHJldmlvdXMgZXJyb3JzICovCistICAgaW50 IGZpcnN0X25vbl9jYTsJCS8qIG51bWJlciBvZiB0aGUgRUVDIGlzc3VlZCB0byB1c2VyIGJ5IENB ICovCisrICAgaW50IGNoYWluX2Vycm9ycyA9IDA7ICAgICAgICAvKiByZWNvcmRzIHByZXZpb3Vz IGVycm9ycyAqLworICAgIHNpemVfdCBsZW4sbGVuMjsgICAgICAgICAgICAgLyogTGVuZ3RocyBv ZiBpc3N1ZXIgYW5kIGNlcnQgRE4gKi8KKyAgICBpbnQgSXNDQTsgICAgICAgICAgICAgICAgICAg IC8qIEhvbGRzIHdoZXRoZXIgY2VydCBpcyBhbGxvd2VkIHRvIHNpZ24gKi8KKyAgICBpbnQgcHJl dklzQ0E7ICAgICAgICAgICAgICAgIC8qIEhvbGRzIHdoZXRoZXIgcHJldmlvdXMgY2VydCBpbiBj aGFpbiBpcyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQgdG8g c2lnbiAqLworLSAgIGludCBwcmV2SXNMaW1pdGVkOwkJLyogcHJldmlvdXMgY2VydCB3YXMgcHJv eHkgYW5kIGxpbWl0ZWQgKi8KKysgICBpbnQgcHJldklzTGltaXRlZDsgICAgICAgICAgIC8qIHBy ZXZpb3VzIGNlcnQgd2FzIHByb3h5IGFuZCBsaW1pdGVkICovCisgICAgaW50IGksaixyZXQ7ICAg ICAgICAgICAgICAgICAvKiBJdGVyYXRpb24vdGVtcCB2YXJpYWJsZXMgKi8KKyAgICBjaGFyICpw cm94eV9wYXJ0X0ROOyAgICAgICAgIC8qIFBvaW50ZXIgdG8gZW5kIHBhcnQgb2YgY3VycmVudC1j ZXJ0LWluLWNoYWluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZSBl ZyAiL0NOPXByb3h5IiAqLworQEAgLTEwMzQsNyArMTA0NSwxMSBAQCBpbnQgR1JTVHg1MDlDaGFp bkxvYWQoR1JTVHg1MDlDaGFpbiAqKmNoYWluLAorICAgIHVuc2lnbmVkIGxvbmcgc3ViamVjdGhh c2ggPSAwOwkvKiBoYXNoIG9mIHRoZSBuYW1lIG9mIGZpcnN0IGNlcnQgKi8KKyAgICB1bnNpZ25l ZCBsb25nIGlzc3Vlcmhhc2ggPSAwOwkvKiBoYXNoIG9mIGlzc3VlciBuYW1lIG9mIGZpcnN0IGNl cnQgKi8KKyAgICBGSUxFICpmcDsKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA+PSAweDQw MDAwMDAwTAorKyAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleDsKKysjZWxzZQorICAgIFg1MDlf RVhURU5TSU9OICpleDsKKysjZW5kaWYKKyAgICB0aW1lX3Qgbm93OworICAgIEdSU1R4NTA5Q2Vy dCAqZ3JzdF9jZXJ0LCAqbmV3X2dyc3RfY2VydCwgKnVzZXJfY2VydCA9IE5VTEw7CisgICAgaW50 IGlzX3JvYm90ID0gMDsKK0BAIC0xMDQzLDggKzEwNTgsNiBAQCBpbnQgR1JTVHg1MDlDaGFpbkxv YWQoR1JTVHg1MDlDaGFpbiAqKmNoYWluLAorIAorICAgIHRpbWUoJm5vdyk7CisgCistICAgZmly c3Rfbm9uX2NhID0gMDsgLyogc2V0IHRvIHNvbWV0aGluZyBwcmVkaWN0YWJsZSBpZiB0aGluZ3Mg ZmFpbCAqLworLSAKKyAgICAvKiBTZXQgbmVjZXNzYXJ5IHByZWxpbWluYXJ5IHZhbHVlcyAqLwor ICAgIElzQ0EgICAgICAgICAgPSBUUlVFOyAgICAgICAgICAgLyogPXByZXZJc0NBIC0gc3RhcnQg ZnJvbSBhIENBICovCisgICAgcHJldklzTGltaXRlZCA9IDA7CitAQCAtMTE4Nyw5ICsxMjAwLDkg QEAgaW50IEdSU1R4NTA5Q2hhaW5Mb2FkKEdSU1R4NTA5Q2hhaW4gKipjaGFpbiwKKyAgICAgICAg ICAgICBmcmVlKHApOworICAgICAgICAgICAgIAorICAgICAgICAgICAgIG5ld19ncnN0X2NlcnQt Pm5vdGJlZm9yZSA9IEdSU1Rhc24xVGltZVRvVGltZVQoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QmVmb3JlKGNlcnQpKSwgMCk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5HX2dldDBfZGF0YShY NTA5X2dldF9ub3RCZWZvcmUoY2VydCkpLCAwKTsKKyAgICAgICAgICAgICBuZXdfZ3JzdF9jZXJ0 LT5ub3RhZnRlciAgPSBHUlNUYXNuMVRpbWVUb1RpbWVUKAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBU04xX1NUUklOR19kYXRhKFg1MDlfZ2V0X25vdEFmdGVyKGNlcnQpKSwgMCk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5HX2dldDBfZGF0YShY NTA5X2dldF9ub3RBZnRlcihjZXJ0KSksIDApOworICAgICAgICAgICAKKyAgICAgICAgICAgICAv KiB3ZSBjaGVjayB0aW1lcyBhbmQgcmVjb3JkIGlmIGludmFsaWQgKi8KKyAgICAgICAgICAgCitA QCAtMTIyMiw3ICsxMjM1LDYgQEAgaW50IEdSU1R4NTA5Q2hhaW5Mb2FkKEdSU1R4NTA5Q2hhaW4g KipjaGFpbiwKKyAgICAgICAgICAgICAgICAgZWxzZSAKKyAgICAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICBuZXdfZ3JzdF9jZXJ0LT50eXBlID0gR1JTVF9DRVJUX1RZUEVf RUVDOworLSAgICAgICAgICAgICAgICAgICAgZmlyc3Rfbm9uX2NhID0gaTsKKyAgICAgICAgICAg ICAgICAgICAgIHVzZXJfY2VydCA9IG5ld19ncnN0X2NlcnQ7CisgICAgICAgICAgICAgICAgICAg ICBuZXdfZ3JzdF9jZXJ0LT5kZWxlZ2F0aW9uIAorICAgICAgICAgICAgICAgICAgICAgICAgPSAo bGFzdGNlcnQgPT0gTlVMTCkgPyBpIDogaSArIDE7CitAQCAtMTI4OSw3ICsxMzAxLDcgQEAgaW50 IEdSU1R4NTA5Q2hhaW5Mb2FkKEdSU1R4NTA5Q2hhaW4gKipjaGFpbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgR1JTVHg1MDlDaGFpblZvbXNBZGQoJmdyc3RfY2VydCwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19ncnN0X2NlcnQtPm5vdGJl Zm9yZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3 X2dyc3RfY2VydC0+bm90YWZ0ZXIsCistCQkJCQkgICAgICAobGFzdGNlcnQgPT0gTlVMTCkgPyBp IDogaSsxLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGFzdGNlcnQgPT0gTlVMTCkgPyBpIDogaSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXNlcl9jZXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2b21zZGlyLAorQEAgLTE0MTQsNyArMTQyNiwxMSBAQCBpbnQgR1JT VHg1MDlWZXJpZnlDYWxsYmFjayAoaW50IG9rLCBYNTA5X1NUT1JFX0NUWCAqY3R4KQorIC8vLyBH ZXQgdGhlIFZPTVMgYXR0cmlidXRlcyBpbiB0aGUgZ2l2ZW4gZXh0ZW5zaW9uCisgaW50IEdSU1R4 NTA5UGFyc2VWb21zRXh0KGludCAqbGFzdGNyZWQsIGludCBtYXhjcmVkcywgc2l6ZV90IGNyZWRs ZW4sIAorICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpjcmVkcywgdGltZV90IHRpbWUx X3RpbWUsIHRpbWVfdCB0aW1lMl90aW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICBYNTA5 X0VYVEVOU0lPTiAqZXgsIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSID49IDB4NDAwMDAw MDBMCisrICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCwK KysjZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXgsCisr I2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnVjdXNlcmRuLCBjaGFyICp1 Y2lzc3VlcmRuLCBjaGFyICp1Y3NlcmlhbCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNo YXIgKnZvbXNkaXIpCisgLy8vCitAQCAtMTQyNyw4ICsxNDQzLDkgQEAgaW50IEdSU1R4NTA5UGFy c2VWb21zRXh0KGludCAqbGFzdGNyZWQsIGludCBtYXhjcmVkcywgc2l6ZV90IGNyZWRsZW4sCisg I2RlZmluZSBHUlNUX0FTTjFfQ09PUkRTX0lTU1VFUl9ETiAiLTEtMS0lZC0xLTItMS0xLTEtMS0l JWQtMS0lJWQiCisgI2RlZmluZSBHUlNUX0FTTjFfQ09PUkRTX1RJTUUxICAgIi0xLTEtJWQtMS02 LTEiCisgI2RlZmluZSBHUlNUX0FTTjFfQ09PUkRTX1RJTUUyICAgIi0xLTEtJWQtMS02LTIiCist ICAgQVNOMV9PQ1RFVF9TVFJJTkcgKmFzbjFkYXRhOworLSAgIGNoYXIgICAgICAgICAgICAgICph c24xc3RyaW5nLCBhY2lzc3VlcmRuWzIwMF0sCisrICAgY29uc3QgQVNOMV9PQ1RFVF9TVFJJTkcg KmFzbjFkYXRhOworKyAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFzbjFzdHJpbmc7CisrICAgY2hh ciAgICAgICAgICAgICAgIGFjaXNzdWVyZG5bMjAwXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ZG5fY29vcmRzWzIwMF0sIGZxYW5fY29vcmRzWzIwMF0sIHRpbWUxX2Nvb3Jkc1syMDBdLAorICAg ICAgICAgICAgICAgICAgICAgICB0aW1lMl9jb29yZHNbMjAwXSwgc2VyaWFsX2Nvb3Jkc1syMDBd OworICAgIGxvbmcgICAgICAgICAgICAgICBhc24xbGVuZ3RoOworQEAgLTE0MzYsMTAgKzE0NTMs MTAgQEAgaW50IEdSU1R4NTA5UGFyc2VWb21zRXh0KGludCAqbGFzdGNyZWQsIGludCBtYXhjcmVk cywgc2l6ZV90IGNyZWRsZW4sCisgICAgY2hhciAgICAgICAgICAgICAgKmFjaXNzdWVyc2VyaWFs ID0gTlVMTDsKKyAgICBzdHJ1Y3QgR1JTVGFzbjFUYWdMaXN0IHRhZ2xpc3RbTUFYVEFHKzFdOwor ICAgIHRpbWVfdCAgICAgICAgICAgICBhY3RpbWUxLCBhY3RpbWUyLCB0aW1lX25vdzsKKy0gICBB U04xX0lOVEVHRVIgICAgICAgYWNpc3N1ZXJzZXJpYWxBU04xOworKyAgIEFTTjFfSU5URUdFUiAg ICAgICphY2lzc3VlcnNlcmlhbEFTTjE7CisgCisgICAgYXNuMWRhdGEgICA9IFg1MDlfRVhURU5T SU9OX2dldF9kYXRhKGV4KTsKKy0gICBhc24xc3RyaW5nID0gQVNOMV9TVFJJTkdfZGF0YShhc24x ZGF0YSk7CisrICAgYXNuMXN0cmluZyA9IEFTTjFfU1RSSU5HX2dldDBfZGF0YShhc24xZGF0YSk7 CisgICAgYXNuMWxlbmd0aCA9IEFTTjFfU1RSSU5HX2xlbmd0aChhc24xZGF0YSk7CisgCisgICAg R1JTVGFzbjFQYXJzZUR1bXAoTlVMTCwgYXNuMXN0cmluZywgYXNuMWxlbmd0aCwgdGFnbGlzdCwg TUFYVEFHLCAmbGFzdHRhZyk7CitAQCAtMTQ2NSwxMSArMTQ4MiwxMyBAQCBpbnQgR1JTVHg1MDlQ YXJzZVZvbXNFeHQoaW50ICpsYXN0Y3JlZCwgaW50IG1heGNyZWRzLCBzaXplX3QgY3JlZGxlbiwK KyAgICAgICAgIAorICAgICAgICAgaWYgKGl0YWcgPiAtMSkgCisgICAgICAgICAgIHsKKy0gICAg ICAgICAgICBhY2lzc3VlcnNlcmlhbEFTTjEubGVuZ3RoID0gdGFnbGlzdFtpdGFnXS5sZW5ndGg7 CistICAgICAgICAgICAgYWNpc3N1ZXJzZXJpYWxBU04xLnR5cGUgICA9IFZfQVNOMV9JTlRFR0VS OworLSAgICAgICAgICAgIGFjaXNzdWVyc2VyaWFsQVNOMS5kYXRhICAgPSAmYXNuMXN0cmluZ1t0 YWdsaXN0W2l0YWddLnN0YXJ0K3RhZ2xpc3RbaXRhZ10uaGVhZGVybGVuZ3RoXTsKKysgICAgICAg ICAgICBhY2lzc3VlcnNlcmlhbEFTTjEgPSBBU04xX0lOVEVHRVJfbmV3KCk7CisrICAgICAgICAg ICAgQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KGFjaXNzdWVyc2VyaWFsQVNOMSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJmFzbjFzdHJpbmdbdGFnbGlzdFtpdGFnXS5zdGFydCt0 YWdsaXN0W2l0YWddLmhlYWRlcmxlbmd0aF0sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhZ2xpc3RbaXRhZ10ubGVuZ3RoKTsKKyAKKy0gICAgICAgICAgICBhY2lzc3VlcnNl cmlhbCA9IGkyc19BU04xX0lOVEVHRVIoTlVMTCwgJmFjaXNzdWVyc2VyaWFsQVNOMSk7CisrICAg ICAgICAgICAgYWNpc3N1ZXJzZXJpYWwgPSBpMnNfQVNOMV9JTlRFR0VSKE5VTEwsIGFjaXNzdWVy c2VyaWFsQVNOMSk7CisrICAgICAgICAgICAgQVNOMV9JTlRFR0VSX2ZyZWUoYWNpc3N1ZXJzZXJp YWxBU04xKTsKKyAvKiAgICAgICAgICAKKyAgICAgICAgICAgICBwID0gJmFzbjFzdHJpbmdbdGFn bGlzdFtpdGFnXS5zdGFydCt0YWdsaXN0W2l0YWddLmhlYWRlcmxlbmd0aF07CisgICAgICAgICAg ICAgCitAQCAtMTU0MywxNiArMTU2MiwxOSBAQCBpbnQgR1JTVHg1MDlHZXRWb21zQ3JlZHMoaW50 ICpsYXN0Y3JlZCwgaW50IG1heGNyZWRzLCBzaXplX3QgY3JlZGxlbiwKKyAvLy8gc3RhcnRpbmcg YXQgKmNyZWRzLiBBbHdheXMgcmV0dXJucyBHUlNUX1JFVF9PSy4KKyB7CisgICAgaW50ICBpLCBq OworLSAgIGNoYXIgc1s4MF0sICp1Y3NlcmlhbDsKKy0gICB1bnNpZ25lZCBjaGFyICAqdWN1c2Vy LCAqdWNpc3N1ZXI7CisrICAgY2hhciBzWzgwXSwgKnVjdXNlciwgKnVjaXNzdWVyLCAqdWNzZXJp YWw7CisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPj0gMHg0MDAwMDAwMEwKKysgICBjb25z dCBYNTA5X0VYVEVOU0lPTiAqZXg7CisrI2Vsc2UKKyAgICBYNTA5X0VYVEVOU0lPTiAqZXg7Cisr I2VuZGlmCisgICAgWDUwOSAgICAgICAgICAgKmNlcnQ7CisgICAgdGltZV90ICAgICAgICAgIHRp bWUxX3RpbWUgPSAwLCB0aW1lMl90aW1lID0gMCwgdWN0aW1lMV90aW1lLCB1Y3RpbWUyX3RpbWU7 CisgCisgICAgdWN0aW1lMV90aW1lID0gCistICAgICAgICBHUlNUYXNuMVRpbWVUb1RpbWVUKEFT TjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QmVmb3JlKHVzZXJjZXJ0KSksMCk7CisrICAgICAg ICBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5HX2dldDBfZGF0YShYNTA5X2dldF9ub3RC ZWZvcmUodXNlcmNlcnQpKSwwKTsKKyAgICB1Y3RpbWUyX3RpbWUgPSAgICAgICAKKy0gICAgICAg IEdSU1Rhc24xVGltZVRvVGltZVQoQVNOMV9TVFJJTkdfZGF0YShYNTA5X2dldF9ub3RBZnRlcih1 c2VyY2VydCkpLDApOworKyAgICAgICAgR1JTVGFzbjFUaW1lVG9UaW1lVChBU04xX1NUUklOR19n ZXQwX2RhdGEoWDUwOV9nZXRfbm90QWZ0ZXIodXNlcmNlcnQpKSwwKTsKKyAgICB1Y3VzZXIgPQor ICAgICAgICAgWDUwOV9OQU1FX29uZWxpbmUoWDUwOV9nZXRfc3ViamVjdF9uYW1lKHVzZXJjZXJ0 KSwgTlVMTCwgMCk7CisgICAgdWNpc3N1ZXIgPQorQEAgLTE1NjQsMTEgKzE1ODYsMTEgQEAgaW50 IEdSU1R4NTA5R2V0Vm9tc0NyZWRzKGludCAqbGFzdGNyZWQsIGludCBtYXhjcmVkcywgc2l6ZV90 IGNyZWRsZW4sCisgICAgICAgY2VydCA9IHNrX1g1MDlfdmFsdWUoY2VydHN0YWNrLCBqKTsKKyAK KyAgICAgICB0aW1lMV90aW1lID0KKy0gICAgICAgICAgR1JTVGFzbjFUaW1lVG9UaW1lVChBU04x X1NUUklOR19kYXRhKFg1MDlfZ2V0X25vdEJlZm9yZShjZXJ0KSksMCk7CisrICAgICAgICAgIEdS U1Rhc24xVGltZVRvVGltZVQoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfZ2V0X25vdEJlZm9y ZShjZXJ0KSksMCk7CisgICAgICAgdWN0aW1lMV90aW1lID0gKHRpbWUxX3RpbWUgPiB1Y3RpbWUx X3RpbWUpID8gdGltZTFfdGltZTp1Y3RpbWUxX3RpbWU7CisgCisgICAgICAgdGltZTJfdGltZSA9 CistICAgICAgICAgIEdSU1Rhc24xVGltZVRvVGltZVQoQVNOMV9TVFJJTkdfZGF0YShYNTA5X2dl dF9ub3RBZnRlcihjZXJ0KSksMCk7CisrICAgICAgICAgIEdSU1Rhc24xVGltZVRvVGltZVQoQVNO MV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfZ2V0X25vdEFmdGVyKGNlcnQpKSwwKTsKKyAgICAgICB1 Y3RpbWUyX3RpbWUgPSAodGltZTJfdGltZSA8IHVjdGltZTJfdGltZSkgPyB0aW1lMl90aW1lOnVj dGltZTJfdGltZTsKKyAKKyAgICAgICBmb3IgKGk9MDsgaSA8IFg1MDlfZ2V0X2V4dF9jb3VudChj ZXJ0KTsgKytpKQorQEAgLTE3MDIsOCArMTcyNCw4IEBAIGludCBHUlNUeDUwOUNvbXBhY3RDcmVk cyhpbnQgKmxhc3RjcmVkLCBpbnQgbWF4Y3JlZHMsIHNpemVfdCBjcmVkbGVuLAorICAgIGlmICgo dXNlcmNlcnQgPT0gTlVMTCkgLyogaWYgbm8gdXNlcmNlcnQgKCJFRUMiKSwgd2UncmUgbm90IGlu dGVyZXN0ZWQgKi8KKyAgICAgICAgfHwKKyAgICAgICAgKHNucHJpbnRmKGNyZWR0ZW1wLCBjcmVk bGVuKzEsICJYNTA5VVNFUiAlMDEwbGxkICUwMTBsbGQgJWQgJXMiLAorLSAgICAgICAgICAobG9u ZyBsb25nKSBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90 QmVmb3JlKHVzZXJjZXJ0KSksMCksCistICAgICAgICAgIChsb25nIGxvbmcpIEdSU1Rhc24xVGlt ZVRvVGltZVQoQVNOMV9TVFJJTkdfZGF0YShYNTA5X2dldF9ub3RBZnRlcih1c2VyY2VydCkpLDAp LAorKyAgICAgICAgICAobG9uZyBsb25nKSBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5H X2dldDBfZGF0YShYNTA5X2dldF9ub3RCZWZvcmUodXNlcmNlcnQpKSwwKSwKKysgICAgICAgICAg KGxvbmcgbG9uZykgR1JTVGFzbjFUaW1lVG9UaW1lVChBU04xX1NUUklOR19nZXQwX2RhdGEoWDUw OV9nZXRfbm90QWZ0ZXIodXNlcmNlcnQpKSwwKSwKKyAgICAgICAgICAgZGVsZWdhdGlvbiwKKyAg ICAgICAgICAgWDUwOV9OQU1FX29uZWxpbmUoWDUwOV9nZXRfc3ViamVjdF9uYW1lKHVzZXJjZXJ0 KSwgTlVMTCwgMCkpID49IGNyZWRsZW4rMSkKKyAgICAgICAgfHwKK0BAIC0xNzE5LDggKzE3NDEs OCBAQCBpbnQgR1JTVHg1MDlDb21wYWN0Q3JlZHMoaW50ICpsYXN0Y3JlZCwgaW50IG1heGNyZWRz LCBzaXplX3QgY3JlZGxlbiwKKyAgICBpZiAoKGdzaXByb3h5Y2VydCAhPSBOVUxMKSAKKyAgICAg ICAgJiYKKyAgICAgICAgKHNucHJpbnRmKGNyZWR0ZW1wLCBjcmVkbGVuKzEsICJHU0lQUk9YWSAl MDEwbGxkICUwMTBsbGQgJWQgJXMiLAorLSAgICAgICAgICAobG9uZyBsb25nKSBHUlNUYXNuMVRp bWVUb1RpbWVUKEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QmVmb3JlKGdzaXByb3h5Y2Vy dCkpLDApLAorLSAgICAgICAgICAobG9uZyBsb25nKSBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFf U1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QWZ0ZXIoZ3NpcHJveHljZXJ0KSksMCksCisrICAgICAg ICAgIChsb25nIGxvbmcpIEdSU1Rhc24xVGltZVRvVGltZVQoQVNOMV9TVFJJTkdfZ2V0MF9kYXRh KFg1MDlfZ2V0X25vdEJlZm9yZShnc2lwcm94eWNlcnQpKSwwKSwKKysgICAgICAgICAgKGxvbmcg bG9uZykgR1JTVGFzbjFUaW1lVG9UaW1lVChBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9nZXRf bm90QWZ0ZXIoZ3NpcHJveHljZXJ0KSksMCksCisgICAgICAgICAgIGRlbGVnYXRpb24sCisgICAg ICAgICAgIFg1MDlfTkFNRV9vbmVsaW5lKFg1MDlfZ2V0X3N1YmplY3RfbmFtZShnc2lwcm94eWNl cnQpLCBOVUxMLCAwKSkgPCBjcmVkbGVuKzEpCisgICAgICAgICYmCitAQCAtMTk0OSw3ICsxOTcx LDcgQEAgaW50IEdSU1R4NTA5TWFrZVByb3h5Q2VydChjaGFyICoqcHJveHljaGFpbiwgRklMRSAq ZGVidWdmcCwKKyAgICAgICAgIFg1MDlfRVhURU5TSU9OX3NldF9jcml0aWNhbChreXVfZXgsIDEp OworIAorICAgICAgICAga3l1X29jdCA9IEFTTjFfT0NURVRfU1RSSU5HX25ldygpOworLSAgICAg ICAgQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KGt5dV9vY3QsIGt5dV9zdHIsIHN0cmxlbihreXVfc3Ry KSk7CisrICAgICAgICBBU04xX09DVEVUX1NUUklOR19zZXQoa3l1X29jdCwga3l1X3N0ciwgc3Ry bGVuKChjaGFyICopIGt5dV9zdHIpKTsKKyAgICAgICAgIFg1MDlfRVhURU5TSU9OX3NldF9kYXRh KGt5dV9leCwga3l1X29jdCk7CisgICAgICAgICBBU04xX09DVEVUX1NUUklOR19mcmVlKGt5dV9v Y3QpOworICAgICAgICAga3l1X29jdCA9IE5VTEw7CitAQCAtMTk2NCw3ICsxOTg2LDcgQEAgaW50 IEdSU1R4NTA5TWFrZVByb3h5Q2VydChjaGFyICoqcHJveHljaGFpbiwgRklMRSAqZGVidWdmcCwK KyAgICAgICAgIFg1MDlfRVhURU5TSU9OX3NldF9jcml0aWNhbChwY2lfZXgsIDEpOworIAorICAg ICAgICAgcGNpX29jdCA9IEFTTjFfT0NURVRfU1RSSU5HX25ldygpOworLSAgICAgICAgQVNOMV9P Q1RFVF9TVFJJTkdfc2V0KHBjaV9vY3QsIHBjaV9zdHIsIHN0cmxlbihwY2lfc3RyKSk7CisrICAg ICAgICBBU04xX09DVEVUX1NUUklOR19zZXQocGNpX29jdCwgcGNpX3N0ciwgc3RybGVuKChjaGFy ICopIHBjaV9zdHIpKTsKKyAgICAgICAgIFg1MDlfRVhURU5TSU9OX3NldF9kYXRhKHBjaV9leCwg cGNpX29jdCk7CisgICAgICAgICBBU04xX09DVEVUX1NUUklOR19mcmVlKHBjaV9vY3QpOworICAg ICAgICAgcGNpX29jdCA9IE5VTEw7CitAQCAtMjEzNiw3ICsyMTU4LDcgQEAgc3RhdGljIGludCBH UlNUeDUwOVByb3h5S2V5TWF0Y2goY2hhciAqKnBrZmlsZSwgY2hhciAqcGtkaXIsCisgeworICAg ICBYNTA5ICpjZXJ0X2Zyb21fY2hhaW4gPSBOVUxMOworICAgICBzdHJ1Y3QgZGlyZW50KiBpbl9m aWxlID0gTlVMTDsKKy0gICAgICAgIERJUiAqRkQgPSBOVUxMOworKyAgICBESVIgKkZEID0gTlVM TDsKKyAgICAgU1NMX0NUWCAqIHNzbF9jdHggPSBOVUxMOworICAgICBpbnQgcmV0ID0gMDsKKyAg ICAgY2hhciAqcGtfZmlsZSA9IE5VTEw7CitAQCAtMjE2MCwzNCArMjE4MiwzMyBAQCBzdGF0aWMg aW50IEdSU1R4NTA5UHJveHlLZXlNYXRjaChjaGFyICoqcGtmaWxlLCBjaGFyICpwa2RpciwKKyAg ICAgICAgIGlmICghc3RyY21wIChpbl9maWxlLT5kX25hbWUsICIuLiIpKSAgICAKKyAgICAgICAg ICAgICBjb250aW51ZTsKKyAgICAgICAgIHJldCA9IGFzcHJpbnRmKCZwa19maWxlLCIlcy8lcyIs cGtkaXIsaW5fZmlsZS0+ZF9uYW1lKTsKKy0JaWYgKHJldCA9PSAtMSkKKy0JICAgIGNvbnRpbnVl OworKyAgICAgICAgaWYgKHJldCA9PSAtMSkKKysgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg ICAgIC8qSG93IG1hbnkgY2VydGlmaWNhdGVzLGtleSBwYWlycyBJIGFtIGFibGUgdG8gbG9hZD8q LworICAgICAgICAgcmV0ID0gU1NMX0NUWF91c2VfY2VydGlmaWNhdGUoc3NsX2N0eCwgY2VydF9m cm9tX2NoYWluKTsKKyAgICAgICAgIC8qIFNob3VsZCBhbHdheXMgYmUgUEVNIHR5cGUqLworICAg ICAgICAgcmV0ID0gU1NMX0NUWF91c2VfUHJpdmF0ZUtleV9maWxlKHNzbF9jdHgsIHBrX2ZpbGUs CistCQlTU0xfRklMRVRZUEVfUEVNKTsKKysgICAgICAgICAgICBTU0xfRklMRVRZUEVfUEVNKTsK KyAgICAgICAgIGlmIChyZXQgIT0gMSkKKyAgICAgICAgICAgICBjb250aW51ZTsKKy0JcmV0ID0g MDsKKyAgICAgICAgIHJldCA9IFNTTF9DVFhfY2hlY2tfcHJpdmF0ZV9rZXkoc3NsX2N0eCk7Cisg ICAgICAgICAvKiBTdWNjZXNzICovCisgICAgICAgICBpZiAocmV0ID09IDEpeworICAgICAgICAg ICAgIHJldCA9IGFzcHJpbnRmKHBrZmlsZSwgIiVzIiwgcGtfZmlsZSk7CisgICAgICAgICAgICAg Y2xvc2VkaXIoRkQpOworLQkgICAgZnJlZSAocGtfZmlsZSk7CistCSAgICBwa19maWxlID0gTlVM TDsKKysgICAgICAgICAgICBmcmVlIChwa19maWxlKTsKKysgICAgICAgICAgICBwa19maWxlID0g TlVMTDsKKyAgICAgICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgICpwa2ZpbGUgPSBOVUxMOworLQkgICAgZnJlZSAocGtfZmlsZSk7Cist CSAgICBwa19maWxlID0gTlVMTDsKKy0gICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg ICBmcmVlIChwa19maWxlKTsKKysgICAgICAgICAgICBwa19maWxlID0gTlVMTDsKKysgICAgICAg IH0KKyAgICAgfQorICAgICBTU0xfQ1RYX2ZyZWUoc3NsX2N0eCk7CistICAgICAgICAgICAgc3Ns X2N0eCA9IE5VTEw7CistICAgICAgICAgICAgcmV0dXJuIDQ7CisrICAgIHNzbF9jdHggPSBOVUxM OworKyAgICByZXR1cm4gNDsKKyAKKyAKKyBlbmQ6CitAQCAtMjU4Miw4ICsyNjAzLDggQEAgaW50 IEdSU1R4NTA5UHJveHlHZXRUaW1lcyhjaGFyICpwcm94eWRpciwgY2hhciAqZGVsZWdhdGlvbl9p ZCwgY2hhciAqdXNlcl9kbiwKKyAKKyAgIGZjbG9zZShmcCk7CisgICAKKy0gICpzdGFydCAgPSBH UlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5HX2RhdGEoWDUwOV9nZXRfbm90QmVmb3JlKGNl cnQpKSwwKTsKKy0gICpmaW5pc2ggPSBHUlNUYXNuMVRpbWVUb1RpbWVUKEFTTjFfU1RSSU5HX2Rh dGEoWDUwOV9nZXRfbm90QWZ0ZXIoY2VydCkpLDApOworKyAgKnN0YXJ0ICA9IEdSU1Rhc24xVGlt ZVRvVGltZVQoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfZ2V0X25vdEJlZm9yZShjZXJ0KSks MCk7CisrICAqZmluaXNoID0gR1JTVGFzbjFUaW1lVG9UaW1lVChBU04xX1NUUklOR19nZXQwX2Rh dGEoWDUwOV9nZXRfbm90QWZ0ZXIoY2VydCkpLDApOworIAorICAgWDUwOV9mcmVlKGNlcnQpOwor ICAgCitAQCAtMjY0Nyw3ICsyNjY4LDggQEAgY2hhciAqR1JTVHg1MDlNYWtlRGVsZWdhdGlvbklE KHZvaWQpCisgLy8vIHZhbHVlcyBvZiB0aGUgY29tcGFjdCBjcmVkZW50aWFscyBleHBvcnRlZCBi eSBtb2RfZ3JpZHNpdGUKKyB7IAorICAgdW5zaWduZWQgY2hhciBoYXNoX2RlbGVnYXRpb25faWRb RVZQX01BWF9NRF9TSVpFXTsgICAgICAgIAorLSAgaW50ICBpLCBkZWxlZ2F0aW9uX2lkX2xlbjsK KysgIGludCBpOworKyAgdW5zaWduZWQgaW50IGRlbGVnYXRpb25faWRfbGVuOworICAgY2hhciBj cmVkX25hbWVbMTRdLCAqY3JlZF92YWx1ZSwgKmRlbGVnYXRpb25faWQ7CisgICBjb25zdCBFVlBf TUQgKm07CisgICBFVlBfTURfQ1RYICpjdHggPSBOVUxMOwoKZGlmZiAtLWdpdCBhL2dyaWRzaXRl LnNwZWMgYi9ncmlkc2l0ZS5zcGVjCmluZGV4IDNkMzNjMGQuLjgyYmFhZGIgMTAwNjQ0Ci0tLSBh L2dyaWRzaXRlLnNwZWMKKysrIGIvZ3JpZHNpdGUuc3BlYwpAQCAtMjMsNiArMjMsOSBAQCBTb3Vy Y2UzOiAgICAgICAgZ3JpZHNpdGVmb290LnR4dAogU291cmNlNDogICAgICAgIHJvb3QtbGV2ZWwu Z2FjbAogU291cmNlNTogICAgICAgIGdyaWRzaXRlbG9nby5wbmcKIAorIyBGaXhlcyBmb3IgYnVp bGRpbmcgd2l0aCBvcGVuc3NsIDQuMAorUGF0Y2gwOiAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNv bS9DRVNORVQvZ3JpZHNpdGUvcHVsbC80OC5wYXRjaAorCiBCdWlsZFJlcXVpcmVzOiAgbWFrZQog QnVpbGRSZXF1aXJlczogIGxpYmN1cmwtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBsaWJ4bWwyLWRl dmVsCkBAIC0xMDcsNiArMTEwLDcgQEAgVGhpcyBwYWNrYWdlIGdyaWRzaXRlLWRvYywgY29udGFp bnMgZGV2ZWxvcGVyIGRvY3VtZW50YXRpb24gZm9yIGdyaWRzaXRlLgogCiAlcHJlcAogJXNldHVw IC1xIC1uICV7bmFtZX0tJXtjb21taXR9CislcGF0Y2ggLVAwIC1wMQogIyBDb3B5IGluIGFwYWNo ZSBjb25maWd1cmF0aW9uLgogY3AgLXAgJXtTT1VSQ0UxfSAuCiBjcCAtcCAle1NPVVJDRTJ9IC4K