From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/gsi-openssh] epel10: Based on openssh-9.9p1-32.el10 Date: Tue, 22 Sep 2026 19:59:47 GMT Message-ID: <179010718716.1.8971071598837401023.rpms-gsi-openssh-c69d9b538f65@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: epel10 X-Git-Rev: c69d9b538f65110ba2f26df5e186fa7e933f922e QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZXBlbDEwCkNvbW1pdCA6IGM2OWQ5YjUzOGY2NTExMGJhMmYyNmRmNWUxODZmYTdl OTMzZjkyMmUKQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3Mu dXUuc2U+CkRhdGUgICA6IDIwMjYtMDktMjJUMjA6MjU6MzkrMDI6MDAKU3RhdHMgIDogKzc3MC8t MTc5IGluIDE0IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9nc2ktb3BlbnNzaC9jL2M2OWQ5YjUzOGY2NTExMGJhMmYyNmRmNWUxODZmYTdlOTMzZjky MmU/YnJhbmNoPWVwZWwxMAoKTG9nOgpCYXNlZCBvbiBvcGVuc3NoLTkuOXAxLTMyLmVsMTAKCi0t LQpkaWZmIC0tZ2l0IGEvZ3NpLW9wZW5zc2guc3BlYyBiL2dzaS1vcGVuc3NoLnNwZWMKaW5kZXgg YjgwY2Y0MC4uNTI1MzNkNCAxMDA2NDQKLS0tIGEvZ3NpLW9wZW5zc2guc3BlYworKysgYi9nc2kt b3BlbnNzaC5zcGVjCkBAIC0yOCw3ICsyOCw3IEBACiBTdW1tYXJ5OiBBbiBpbXBsZW1lbnRhdGlv biBvZiB0aGUgU1NIIHByb3RvY29sIHdpdGggR1NJIGF1dGhlbnRpY2F0aW9uCiBOYW1lOiBnc2kt b3BlbnNzaAogVmVyc2lvbjogJXtvcGVuc3NoX3Zlcn0KLVJlbGVhc2U6IDYlez9kaXN0fQorUmVs ZWFzZTogNyV7P2Rpc3R9CiBQcm92aWRlczogZ3Npc3NoID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CiBPYnNvbGV0ZXM6IGdzaXNzaCA8IDUuOHAyLTIKIFVSTDogaHR0cDovL3d3dy5vcGVuc3NoLmNv bS9wb3J0YWJsZS5odG1sCkBAIC0yMzEsNiArMjMxLDI2IEBAIFBhdGNoMTA0Mzogb3BlbnNzaC05 LjlwMS1hdXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKICMgdXBzdHJlYW0g NjA3YmQ4NzFlYzAyOWU5YWEyMmU2MzJhMjI1NDcyNTBmM2NhZTIyMwogIyB1cHN0cmVhbSAxMzQw ZDNmYThlNGJiMTIyOTA2YTgyMTU5YzRjOWI5MTU4NGQ2NWNlCiBQYXRjaDEwNDQ6IG9wZW5zc2gt OS45cDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRjaAorIyB1cHN0cmVh bSAzNjQ4MDE4MWZhMjJmOThlMTgwYjRmOWUxMDIwMzQ4MGMwMzQ2Yzc4CitQYXRjaDEwNDU6IG9w ZW5zc2gtOS45cDEtc2NwLXJlbW90ZS1nbG9iLnBhdGNoCisjIHVwc3RyZWFtIGU4YmRmYjE1MWEz NTZkMDE3MWZlYTQxOTRkZDIwNWZiYjI1MmJlMjMKK1BhdGNoMTA0Njogb3BlbnNzaC05LjlwMS1j dmUtMjAyNi02MDAwMi5wYXRjaAorIyB1cHN0cmVhbSA4YjA1YmJlYjI5M2M1Zjc3NzkxNWUzN2U5 ZWQ0M2EwNmZiOGU3NjE0CisjIHVwc3RyZWFtIDVhNWU0Nzc0MGI2NDY2ZDU4MjQyYWNhMjhiOWU1 ODRiYWI0Y2NmMWQKK1BhdGNoMTA0Nzogb3BlbnNzaC05LjlwMS1jb3B5LWRhdGEtZXh0LXNlbGYt Y29weS5wYXRjaAorIyB1cHN0cmVhbSA2YTU3MDgxZGMzNWFjZjNlZTI5ODEwOGQ0YmMzNTgwNDg5 NjA4ZDVmCitQYXRjaDEwNDg6IG9wZW5zc2gtMTAuNHAxLUNWRS0yMDI2LTU5OTk1LnBhdGNoCisj IHVwc3RyZWFtIDhkZmU3ZWQ2ZTJmZDk4OGRlMDhkZjUwODM1NWExOTZiOTU2YjI3NTMKKyMgdXBz dHJlYW0gZDMyMmYyY2NmN2RhMDk1Y2U5NGQxZDk5Y2I1NjMyNDZmNjE0ODdiMAorIyBjb21iaW5l cyBDVkUtMjAyNi01OTk5OSBhbmQgQ1ZFLTIwMjYtNzMyODMKKyMgZG93bnN0cmVhbSBzcGVjaWZp YyBmaXgsIGRyb3Agb24gcmViYXNlCitQYXRjaDEwNDk6IG9wZW5zc2gtMTAuNHAxLUNWRS0yMDI2 LTU5OTk5LnBhdGNoCisjIHVwc3RyZWFtIDZhNTcwODFkYzM1YWNmM2VlMjk4MTA4ZDRiYzM1ODA0 ODk2MDhkNWYKK1BhdGNoMTA1MDogb3BlbnNzaC0xMC41cDEtQ1ZFLTIwMjYtNzMyODEucGF0Y2gK KyMgdXBzdHJlYW0gOTkxMGQ1ZWY1MzEyNGNlMTE1N2Q1N2JjMTFlMjIyNjU4YWE0MTI5OQorUGF0 Y2gxMDUxOiBvcGVuc3NoLTEwLjVwMS1DVkUtMjAyNi03MzI4Mi5wYXRjaAorIyB1cHN0cmVhbSBk NDNiYTYwYzkxY2IzMjNjYTkyMTA0OWI3ZDQzYjE5MDhjMzE4NDU0CitQYXRjaDEwNTI6IG9wZW5z c2gtOS45cDEtQ1ZFLTIwMjYtNjAwMDEucGF0Y2gKIAogIyBUaGlzIGlzIHRoZSBwYXRjaCB0aGF0 IGFkZHMgR1NJIHN1cHBvcnQKICMgQmFzZWQgb24gaHBuX2lzc2hkLWdzaS43LjVwMWIucGF0Y2gg ZnJvbSBHbG9idXMgdXBzdHJlYW0KQEAgLTQyNSw2ICs0NDUsMTQgQEAgZ3BndjIgLS1xdWlldCAt LWtleXJpbmcgJXtTT1VSQ0UzfSAle1NPVVJDRTF9ICV7U09VUkNFMH0KICVwYXRjaCAtUCAxMDQy IC1wMSAtYiAuZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbgogJXBhdGNoIC1QIDEwNDMgLXAx IC1iIC5hdXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24KICVwYXRjaCAtUCAxMDQ0IC1w MSAtYiAucHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcworJXBhdGNoIC1QIDEwNDUg LXAxIC1iIC5zY3AtcmVtb3RlLWdsb2IKKyVwYXRjaCAtUCAxMDQ2IC1wMSAtYiAuY3ZlLTIwMjYt NjAwMDIKKyVwYXRjaCAtUCAxMDQ3IC1wMSAtYiAuY29weS1kYXRhLWV4dC1zZWxmLWNvcHkKKyVw YXRjaCAtUCAxMDQ4IC1wMSAtYiAuQ1ZFLTIwMjYtNTk5OTUKKyVwYXRjaCAtUCAxMDQ5IC1wMSAt YiAuQ1ZFLTIwMjYtNTk5OTkKKyVwYXRjaCAtUCAxMDUwIC1wMSAtYiAuQ1ZFLTIwMjYtNzMyODEK KyVwYXRjaCAtUCAxMDUxIC1wMSAtYiAuQ1ZFLTIwMjYtNzMyODIKKyVwYXRjaCAtUCAxMDUyIC1w MSAtYiAuQ1ZFLTIwMjYtNjAwMDEKIAogJXBhdGNoIC1QIDEwMCAtcDEgLWIgLmNvdmVyaXR5CiAK QEAgLTY1MCw2ICs2NzgsOSBAQCBmaQogJWdob3N0ICVhdHRyKDA2NDQscm9vdCxyb290KSAle19s b2NhbHN0YXRlZGlyfS9saWIvLmdzaXNzaC1ob3N0LWtleXMtbWlncmF0aW9uCiAKICVjaGFuZ2Vs b2cKKyogVHVlIFNlcCAyMiAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlz aWNzLnV1LnNlPiAtIDkuOXAxLTcKKy0gQmFzZWQgb24gb3BlbnNzaC05LjlwMS0zMi5lbDEwCisK ICogRnJpIE1heSAyOSAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNz LnV1LnNlPiAtIDkuOXAxLTYKIC0gQmFzZWQgb24gb3BlbnNzaC05LjlwMS0yNi5lbDEwCiAKCmRp ZmYgLS1naXQgYS9vcGVuc3NoLTEwLjRwMS1DVkUtMjAyNi01OTk5NS5wYXRjaCBiL29wZW5zc2gt MTAuNHAxLUNWRS0yMDI2LTU5OTk1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjBiYTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTEwLjRwMS1DVkUtMjAy Ni01OTk5NS5wYXRjaApAQCAtMCwwICsxLDIwIEBACitkaWZmIC0tZ2l0IGEvc2Z0cC5jIGIvc2Z0 cC5jCitpbmRleCAwYWI5MjA2YzIuLjBiNTdlMDgzMyAxMDA2NDQKKy0tLSBhL3NmdHAuYworKysr IGIvc2Z0cC5jCitAQCAtMjI4OSwxMyArMjI4OSw4IEBAIGludGVyYWN0aXZlX2xvb3Aoc3RydWN0 IHNmdHBfY29ubiAqY29ubiwgY2hhciAqZmlsZTEsIGNoYXIgKmZpbGUyKQorIAkJCQlyZXR1cm4g KC0xKTsKKyAJCQl9CisgCQl9IGVsc2UgeworLQkJCS8qIFhYWCB0aGlzIGlzIHdyb25nIHdydCBx dW90aW5nICovCistCQkJc25wcmludGYoY21kLCBzaXplb2YgY21kLCAiZ2V0JXMgJXMlcyVzIiwK Ky0JCQkgICAgZ2xvYmFsX2FmbGFnID8gIiAtYSIgOiAiIiwgZGlyLAorLQkJCSAgICBmaWxlMiA9 PSBOVUxMID8gIiIgOiAiICIsCistCQkJICAgIGZpbGUyID09IE5VTEwgPyAiIiA6IGZpbGUyKTsK Ky0JCQllcnIgPSBwYXJzZV9kaXNwYXRjaF9jb21tYW5kKGNvbm4sIGNtZCwKKy0JCQkgICAgJnJl bW90ZV9wYXRoLCBzdGFydGRpciwgMSwgMCk7CisrCQkJZXJyID0gcHJvY2Vzc19nZXQoY29ubiwg ZGlyLCBmaWxlMiwgcmVtb3RlX3BhdGgsIDAsIDAsCisrCQkJICAgIGdsb2JhbF9hZmxhZywgMCk7 CisgCQkJZnJlZShkaXIpOworIAkJCWZyZWUoc3RhcnRkaXIpOworIAkJCWZyZWUocmVtb3RlX3Bh dGgpOwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtMTAuNHAxLUNWRS0yMDI2LTU5OTk5LnBhdGNoIGIv b3BlbnNzaC0xMC40cDEtQ1ZFLTIwMjYtNTk5OTkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uYjFiZjU4YwotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gtMTAuNHAx LUNWRS0yMDI2LTU5OTk5LnBhdGNoCkBAIC0wLDAgKzEsNzggQEAKK2RpZmYgLS1naXQgYS9hdXRo LW9wdGlvbnMuYyBiL2F1dGgtb3B0aW9ucy5jCitpbmRleCBlMTVmNjAwYWIuLmM1ZmM0ZTU5YyAx MDA2NDQKKy0tLSBhL2F1dGgtb3B0aW9ucy5jCisrKysgYi9hdXRoLW9wdGlvbnMuYworQEAgLTI0 Miw2ICsyNDIsNyBAQCBzc2hhdXRob3B0X25ld193aXRoX2tleXNfZGVmYXVsdHModm9pZCkKKyAJ cmV0LT5wZXJtaXRfeDExX2ZvcndhcmRpbmdfZmxhZyA9IDE7CisgCXJldC0+cGVybWl0X3B0eV9m bGFnID0gMTsKKyAJcmV0LT5wZXJtaXRfdXNlcl9yYyA9IDE7CisrCXJldC0+cGVybWl0X3R1bl9m bGFnID0gMTsKKyAJcmV0dXJuIHJldDsKKyB9CisKK0BAIC0zNDUsNiArMzQ2LDcgQEAgc3NoYXV0 aG9wdF9wYXJzZShjb25zdCBjaGFyICpvcHRzLCBjb25zdCBjaGFyICoqZXJyc3RycCkKKyAJCQly ZXQtPnBlcm1pdF94MTFfZm9yd2FyZGluZ19mbGFnID0gMDsKKyAJCQlyZXQtPnBlcm1pdF9wdHlf ZmxhZyA9IDA7CisgCQkJcmV0LT5wZXJtaXRfdXNlcl9yYyA9IDA7CisrCQkJcmV0LT5wZXJtaXRf dHVuX2ZsYWcgPSAwOworIAkJfSBlbHNlIGlmICgociA9IG9wdF9mbGFnKCJjZXJ0LWF1dGhvcml0 eSIsIDAsICZvcHRzKSkgIT0gLTEpIHsKKyAJCQlyZXQtPmNlcnRfYXV0aG9yaXR5ID0gcjsKKyAJ CX0gZWxzZSBpZiAoKHIgPSBvcHRfZmxhZygicG9ydC1mb3J3YXJkaW5nIiwgMSwgJm9wdHMpKSAh PSAtMSkgeworQEAgLTYwMSw2ICs2MDMsNyBAQCBzc2hhdXRob3B0X21lcmdlKGNvbnN0IHN0cnVj dCBzc2hhdXRob3B0ICpwcmltYXJ5LAorIAlPUFRGTEFHX0FORChwZXJtaXRfeDExX2ZvcndhcmRp bmdfZmxhZyk7CisgCU9QVEZMQUdfQU5EKHBlcm1pdF9wdHlfZmxhZyk7CisgCU9QVEZMQUdfQU5E KHBlcm1pdF91c2VyX3JjKTsKKysJT1BURkxBR19BTkQocGVybWl0X3R1bl9mbGFnKTsKKyAJT1BU RkxBR19BTkQobm9fcmVxdWlyZV91c2VyX3ByZXNlbmNlKTsKKyAJLyogUmVzdHJpY3RpdmUgZmxh Z3MgYXJlIGxvZ2ljYWwtT1IgKGkuZS4gbXVzdCBiZSBzZXQgaW4gZWl0aGVyKSAqLworIAlPUFRG TEFHX09SKHJlcXVpcmVfdmVyaWZ5KTsKK0BAIC02NjksNiArNjcyLDcgQEAgc3NoYXV0aG9wdF9j b3B5KGNvbnN0IHN0cnVjdCBzc2hhdXRob3B0ICpvcmlnKQorIAlPUFRTQ0FMQVIocGVybWl0X3gx MV9mb3J3YXJkaW5nX2ZsYWcpOworIAlPUFRTQ0FMQVIocGVybWl0X3B0eV9mbGFnKTsKKyAJT1BU U0NBTEFSKHBlcm1pdF91c2VyX3JjKTsKKysJT1BUU0NBTEFSKHBlcm1pdF90dW5fZmxhZyk7Cisg CU9QVFNDQUxBUihyZXN0cmljdGVkKTsKKyAJT1BUU0NBTEFSKGNlcnRfYXV0aG9yaXR5KTsKKyAJ T1BUU0NBTEFSKGZvcmNlX3R1bl9kZXZpY2UpOworQEAgLTgwNCw2ICs4MDgsNyBAQCBzc2hhdXRo b3B0X3NlcmlhbGlzZShjb25zdCBzdHJ1Y3Qgc3NoYXV0aG9wdCAqb3B0cywgc3RydWN0IHNzaGJ1 ZiAqbSwKKyAJICAgIChyID0gc3NoYnVmX3B1dF91OChtLCBvcHRzLT5wZXJtaXRfeDExX2Zvcndh cmRpbmdfZmxhZykpICE9IDAgfHwKKyAJICAgIChyID0gc3NoYnVmX3B1dF91OChtLCBvcHRzLT5w ZXJtaXRfcHR5X2ZsYWcpKSAhPSAwIHx8CisgCSAgICAociA9IHNzaGJ1Zl9wdXRfdTgobSwgb3B0 cy0+cGVybWl0X3VzZXJfcmMpKSAhPSAwIHx8CisrCSAgICAociA9IHNzaGJ1Zl9wdXRfdTgobSwg b3B0cy0+cGVybWl0X3R1bl9mbGFnKSkgIT0gMCB8fAorIAkgICAgKHIgPSBzc2hidWZfcHV0X3U4 KG0sIG9wdHMtPnJlc3RyaWN0ZWQpKSAhPSAwIHx8CisgCSAgICAociA9IHNzaGJ1Zl9wdXRfdTgo bSwgb3B0cy0+Y2VydF9hdXRob3JpdHkpKSAhPSAwIHx8CisgCSAgICAociA9IHNzaGJ1Zl9wdXRf dTgobSwgb3B0cy0+bm9fcmVxdWlyZV91c2VyX3ByZXNlbmNlKSkgIT0gMCB8fAorQEAgLTg2Nyw2 ICs4NzIsNyBAQCBzc2hhdXRob3B0X2Rlc2VyaWFsaXNlKHN0cnVjdCBzc2hidWYgKm0sIHN0cnVj dCBzc2hhdXRob3B0ICoqb3B0c3ApCisgCU9QVF9GTEFHKHBlcm1pdF94MTFfZm9yd2FyZGluZ19m bGFnKTsKKyAJT1BUX0ZMQUcocGVybWl0X3B0eV9mbGFnKTsKKyAJT1BUX0ZMQUcocGVybWl0X3Vz ZXJfcmMpOworKwlPUFRfRkxBRyhwZXJtaXRfdHVuX2ZsYWcpOworIAlPUFRfRkxBRyhyZXN0cmlj dGVkKTsKKyAJT1BUX0ZMQUcoY2VydF9hdXRob3JpdHkpOworIAlPUFRfRkxBRyhub19yZXF1aXJl X3VzZXJfcHJlc2VuY2UpOworZGlmZiAtLWdpdCBhL2F1dGgtb3B0aW9ucy5oIGIvYXV0aC1vcHRp b25zLmgKK2luZGV4IDZlMjliNzI3Yy4uMTkxYjliMjQ5IDEwMDY0NAorLS0tIGEvYXV0aC1vcHRp b25zLmgKKysrKyBiL2F1dGgtb3B0aW9ucy5oCitAQCAtMzksNiArMzksNyBAQCBzdHJ1Y3Qgc3No YXV0aG9wdCB7CisgCWludCBwZXJtaXRfeDExX2ZvcndhcmRpbmdfZmxhZzsKKyAJaW50IHBlcm1p dF9wdHlfZmxhZzsKKyAJaW50IHBlcm1pdF91c2VyX3JjOworKwlpbnQgcGVybWl0X3R1bl9mbGFn OworCisgCS8qICJyZXN0cmljdCIga2V5d29yZCB3YXMgaW52b2tlZCAqLworIAlpbnQgcmVzdHJp Y3RlZDsKK2RpZmYgLS1naXQgYS9zZXJ2ZXJsb29wLmMgYi9zZXJ2ZXJsb29wLmMKK2luZGV4IDhh NmUzZGI4MC4uY2Y1MjQzZjgwIDEwMDY0NAorLS0tIGEvc2VydmVybG9vcC5jCisrKysgYi9zZXJ2 ZXJsb29wLmMKK0BAIC01MjMsNyArNTIzLDggQEAgc2VydmVyX3JlcXVlc3RfdHVuKHN0cnVjdCBz c2ggKnNzaCkKKyAJCXNzaF9wYWNrZXRfc2VuZF9kZWJ1Zyhzc2gsICJVbnN1cHBvcnRlZCB0dW5u ZWwgZGV2aWNlIG1vZGUuIik7CisgCQlyZXR1cm4gTlVMTDsKKyAJfQorLQlpZiAoKG9wdGlvbnMu cGVybWl0X3R1biAmIG1vZGUpID09IDApIHsKKysJaWYgKChvcHRpb25zLnBlcm1pdF90dW4gJiBt b2RlKSA9PSAwIHx8IG9wdGlvbnMuZGlzYWJsZV9mb3J3YXJkaW5nIHx8CisrCSAgICAhYXV0aF9v cHRzLT5wZXJtaXRfdHVuX2ZsYWcpIHsKKyAJCXNzaF9wYWNrZXRfc2VuZF9kZWJ1Zyhzc2gsICJT ZXJ2ZXIgaGFzIHJlamVjdGVkIHR1bm5lbCBkZXZpY2UgIgorIAkJICAgICJmb3J3YXJkaW5nIik7 CisgCQlyZXR1cm4gTlVMTDsKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTEwLjVwMS1DVkUtMjAyNi03 MzI4MS5wYXRjaCBiL29wZW5zc2gtMTAuNXAxLUNWRS0yMDI2LTczMjgxLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1OWVjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9v cGVuc3NoLTEwLjVwMS1DVkUtMjAyNi03MzI4MS5wYXRjaApAQCAtMCwwICsxLDQyIEBACitkaWZm IC0tZ2l0IGEvc3NoLWFnZW50LmMgYi9zc2gtYWdlbnQuYworLS0tIGEvc3NoLWFnZW50LmMKKysr KyBiL3NzaC1hZ2VudC5jCitAQCAtMTgzOSw4ICsxODM5LDE3IEBAIHByb2Nlc3NfZXh0ZW5zaW9u KFNvY2tldEVudHJ5ICplKQorIAkJZXJyb3JfZnIociwgInBhcnNlIik7CisgCQlnb3RvIHNlbmQ7 CisgCX0KKysKKysJLyoKKysJICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHdoaWxlIHRo ZSBhZ2VudCBpcyBsb2NrZWQgdG8gYWxsb3cKKysJICogc2Vzc2lvbiBiaW5kcyB0byBiZSBwcm9j ZXNzZWQgZm9yIG5ldyBjaGFubmVscy4KKysJICogT3RoZXIgb3BlcmF0aW9ucyBzaG91bGQgYmUg cmVmdXNlZCB3aGVuIGxvY2tlZC4KKysJICovCisrCisgCWlmIChzdHJjbXAobmFtZSwgInNlc3Np b24tYmluZEBvcGVuc3NoLmNvbSIpID09IDApCisgCQlzdWNjZXNzID0gcHJvY2Vzc19leHRfc2Vz c2lvbl9iaW5kKGUpOworKwllbHNlIGlmIChsb2NrZWQpCisrCQlkZWJ1Z19mKCJhdHRlbXB0IHRv IHVzZSBleHRlbnNpb24gXCIlc1wiIHdoaWxlIGxvY2tlZCIsIG5hbWUpOworIAllbHNlCisgCQlk ZWJ1Z19mKCJ1bnN1cHBvcnRlZCBleHRlbnNpb24gXCIlc1wiIiwgbmFtZSk7CisgCWZyZWUobmFt ZSk7CitAQCAtMTg5MiwxNiArMTkwMSwxOSBAQCBwcm9jZXNzX21lc3NhZ2UodV9pbnQgc29ja251 bSkKKworIAkvKiBjaGVjayB3aGV0aGVyIGFnZW50IGlzIGxvY2tlZCAqLworIAlpZiAobG9ja2Vk ICYmIHR5cGUgIT0gU1NIX0FHRU5UQ19VTkxPQ0spIHsKKy0JCXNzaGJ1Zl9yZXNldChlLT5yZXF1 ZXN0KTsKKyAJCXN3aXRjaCAodHlwZSkgeworIAkJY2FzZSBTU0gyX0FHRU5UQ19SRVFVRVNUX0lE RU5USVRJRVM6CisgCQkJLyogc2VuZCBlbXB0eSBsaXN0cyAqLworIAkJCW5vX2lkZW50aXRpZXMo ZSk7CisgCQkJYnJlYWs7CisrCQljYXNlIFNTSF9BR0VOVENfRVhURU5TSU9OOgorKwkJCXByb2Nl c3NfZXh0ZW5zaW9uKGUpOworKwkJCWJyZWFrOworIAkJZGVmYXVsdDoKKyAJCQkvKiBzZW5kIGEg ZmFpbCBtZXNzYWdlIGZvciBhbGwgb3RoZXIgcmVxdWVzdCB0eXBlcyAqLworIAkJCXNlbmRfc3Rh dHVzKGUsIDApOworIAkJfQorKwkJc3NoYnVmX3Jlc2V0KGUtPnJlcXVlc3QpOworIAkJcmV0dXJu IDE7CisgCX0KKwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtMTAuNXAxLUNWRS0yMDI2LTczMjgyLnBh dGNoIGIvb3BlbnNzaC0xMC41cDEtQ1ZFLTIwMjYtNzMyODIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYTRjNDk3MwotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gt MTAuNXAxLUNWRS0yMDI2LTczMjgyLnBhdGNoCkBAIC0wLDAgKzEsNTEgQEAKK2RpZmYgLS1naXQg YS9zc2guYyBiL3NzaC5jCistLS0gYS9zc2guYworKysrIGIvc3NoLmMKK0BAIC0xODYyLDE0ICsx ODYyLDI0IEBACisgCX0KKyB9CisgCisrc3RydWN0IHJmd2RfY29uZmlybV9jdHggeworKwlpbnQg ZmlkOworK307CisrCisgLyogQ2FsbGJhY2sgZm9yIHJlbW90ZSBmb3J3YXJkIGdsb2JhbCByZXF1 ZXN0cyAqLworIHN0YXRpYyB2b2lkCisgc3NoX2NvbmZpcm1fcmVtb3RlX2ZvcndhcmQoc3RydWN0 IHNzaCAqc3NoLCBpbnQgdHlwZSwgdV9pbnQzMl90IHNlcSwgdm9pZCAqY3R4dCkKKyB7CistCXN0 cnVjdCBGb3J3YXJkICpyZndkID0gKHN0cnVjdCBGb3J3YXJkICopY3R4dDsKKysJc3RydWN0IHJm d2RfY29uZmlybV9jdHggKnJjdHggPSAoc3RydWN0IHJmd2RfY29uZmlybV9jdHggKiljdHh0Owor KwlzdHJ1Y3QgRm9yd2FyZCAqcmZ3ZDsKKyAJdV9pbnQgcG9ydDsKKyAJaW50IHI7CisgCisrCWlm IChyY3R4LT5maWQgPCAwIHx8IHJjdHgtPmZpZCA+PSBvcHRpb25zLm51bV9yZW1vdGVfZm9yd2Fy ZHMpCisrCQlmYXRhbF9mKCJpbnZhbGlkIGZvcndhcmRpbmcgSUQgJWQiLCByY3R4LT5maWQpOwor KwlyZndkID0gJm9wdGlvbnMucmVtb3RlX2ZvcndhcmRzW3JjdHgtPmZpZF07CisrCWZyZWV6ZXJv KHJjdHgsIHNpemVvZigqcmN0eCkpOworKworIAkvKiBYWFggdmVyYm9zZSgpIG9uIGZhaWx1cmU/ ICovCisgCWRlYnVnKCJyZW1vdGUgZm9yd2FyZCAlcyBmb3I6IGxpc3RlbiAlcyVzJWQsIGNvbm5l Y3QgJXM6JWQiLAorIAkgICAgdHlwZSA9PSBTU0gyX01TR19SRVFVRVNUX1NVQ0NFU1MgPyAic3Vj Y2VzcyIgOiAiZmFpbHVyZSIsCitAQCAtMjA0Nyw2ICsyMDU3LDggQEAKKyAKKyAJLyogSW5pdGlh dGUgcmVtb3RlIFRDUC9JUCBwb3J0IGZvcndhcmRpbmdzLiAqLworIAlmb3IgKGkgPSAwOyBpIDwg b3B0aW9ucy5udW1fcmVtb3RlX2ZvcndhcmRzOyBpKyspIHsKKysJCXN0cnVjdCByZndkX2NvbmZp cm1fY3R4ICpyY3R4OworKworIAkJZGVidWcoIlJlbW90ZSBjb25uZWN0aW9ucyBmcm9tICUuMjAw czolZCBmb3J3YXJkZWQgdG8gIgorIAkJICAgICJsb2NhbCBhZGRyZXNzICUuMjAwczolZCIsCisg CQkgICAgKG9wdGlvbnMucmVtb3RlX2ZvcndhcmRzW2ldLmxpc3Rlbl9wYXRoICE9IE5VTEwpID8K K0BAIC0yMDYxLDkgKzIwNzMsMTAgQEAKKyAJCWlmICgob3B0aW9ucy5yZW1vdGVfZm9yd2FyZHNb aV0uaGFuZGxlID0KKyAJCSAgICBjaGFubmVsX3JlcXVlc3RfcmVtb3RlX2ZvcndhcmRpbmcoc3No LAorIAkJICAgICZvcHRpb25zLnJlbW90ZV9mb3J3YXJkc1tpXSkpID49IDApIHsKKysJCQlyY3R4 ID0geGNhbGxvYygxLCBzaXplb2YoKnJjdHgpKTsKKysJCQlyY3R4LT5maWQgPSBpOworIAkJCWNs aWVudF9yZWdpc3Rlcl9nbG9iYWxfY29uZmlybSgKKy0JCQkgICAgc3NoX2NvbmZpcm1fcmVtb3Rl X2ZvcndhcmQsCistCQkJICAgICZvcHRpb25zLnJlbW90ZV9mb3J3YXJkc1tpXSk7CisrCQkJICAg IHNzaF9jb25maXJtX3JlbW90ZV9mb3J3YXJkLCByY3R4KTsKKyAJCQlmb3J3YXJkX2NvbmZpcm1z X3BlbmRpbmcrKzsKKyAJCX0gZWxzZSBpZiAob3B0aW9ucy5leGl0X29uX2ZvcndhcmRfZmFpbHVy ZSkKKyAJCQlmYXRhbCgiQ291bGQgbm90IHJlcXVlc3QgcmVtb3RlIGZvcndhcmRpbmcuIik7Cgpk aWZmIC0tZ2l0IGEvb3BlbnNzaC03LjJwMi14MTEucGF0Y2ggYi9vcGVuc3NoLTcuMnAyLXgxMS5w YXRjaAppbmRleCA2ZGIxNmJlLi5hNjA1YTQxIDEwMDY0NAotLS0gYS9vcGVuc3NoLTcuMnAyLXgx MS5wYXRjaAorKysgYi9vcGVuc3NoLTcuMnAyLXgxMS5wYXRjaApAQCAtMzIsNyArMzIsNyBAQCBk aWZmIC0tZ2l0IGEvY2hhbm5lbHMuYyBiL2NoYW5uZWxzLmMKICAJcmV0dXJuIC0xOwogIH0KIAot QEAgLTUwOTksOCArNTEwMiwxOCBAQAorQEAgLTUwOTksOCArNTEwMiwxOSBAQAogIGNvbm5lY3Rf bG9jYWxfeHNvY2tldCh1X2ludCBkbnIpCiAgewogIAljaGFyIGJ1ZlsxMDI0XTsKQEAgLTQxLDEw ICs0MSwxMSBAQCBkaWZmIC0tZ2l0IGEvY2hhbm5lbHMuYyBiL2NoYW5uZWxzLmMKICsJaW50IGxl biwgcmV0OwogKwlsZW4gPSBzbnByaW50ZihidWYgKyAxLCBzaXplb2YgKGJ1ZikgLSAxLCBfUEFU SF9VTklYX1gsIGRucik7CiArI2lmZGVmIGxpbnV4Ci0rCS8qIHRyeSBhYnN0cmFjdCBzb2NrZXQg Zmlyc3QgKi8KLSsJYnVmWzBdID0gJ1wwJzsKLSsJaWYgKChyZXQgPSBjb25uZWN0X2xvY2FsX3hz b2NrZXRfcGF0aChidWYsIGxlbiArIDEpKSA+PSAwKQotKwkJcmV0dXJuIHJldDsKKysJaWYgKGdl dGVudigiU1NIX0lOU0VDVVJFX0FCU1RSQUNUX1NPQ0tFVF9FTkFCTEVEIikgIT0gTlVMTCkgewor KwkJYnVmWzBdID0gJ1wwJzsKKysJCWlmICgocmV0ID0gY29ubmVjdF9sb2NhbF94c29ja2V0X3Bh dGgoYnVmLCBsZW4gKyAxKSkgPj0gMCkKKysJCQlyZXR1cm4gcmV0OworKwl9CiArI2VuZGlmCiAr CWlmICgocmV0ID0gY29ubmVjdF9sb2NhbF94c29ja2V0X3BhdGgoYnVmICsgMSwgbGVuKSkgPj0g MCkKICsJCXJldHVybiByZXQ7CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC03LjdwMS1maXBzLnBhdGNo IGIvb3BlbnNzaC03LjdwMS1maXBzLnBhdGNoCmluZGV4IDhkNDQyYTQuLmJjNDRlZjMgMTAwNjQ0 Ci0tLSBhL29wZW5zc2gtNy43cDEtZmlwcy5wYXRjaAorKysgYi9vcGVuc3NoLTcuN3AxLWZpcHMu cGF0Y2gKQEAgLTEwNiwxNyArMTA2LDE4IEBAIGRpZmYgLXVwIG9wZW5zc2gtOC42cDEva2V4Z2V4 Yy5jLmZpcHMgb3BlbnNzaC04LjZwMS9rZXhnZXhjLmMKICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CiAgCiAgI2luY2x1ZGUgPG9wZW5zc2wvZGguaD4KLUBAIC0xMTUsNiArMTE2LDEwIEBAIGlucHV0 X2tleF9kaF9nZXhfZ3JvdXAoaW50IHR5cGUsIHVfaW50MzIKLSAJCXIgPSBTU0hfRVJSX0FMTE9D X0ZBSUw7Ci0gCQlnb3RvIG91dDsKK0BAIC0xMTcsNiArMTE4LDExIEBAIGlucHV0X2tleF9kaF9n ZXhfZ3JvdXAoaW50IHR5cGUsIHVfaW50MzIKICAJfQorIAlwID0gZyA9IE5VTEw7IC8qIGJlbG9u ZyB0byBrZXgtPmRoIG5vdyAqLworIAogKwlpZiAoRklQU19tb2RlKCkgJiYgZGhfaXNfa25vd25f Z3JvdXAoa2V4LT5kaCkgPT0gMCkgewogKwkJciA9IFNTSF9FUlJfSU5WQUxJRF9BUkdVTUVOVDsK ICsJCWdvdG8gb3V0OwogKwl9Ci0gCXAgPSBnID0gTlVMTDsgLyogYmVsb25nIHRvIGtleC0+ZGgg bm93ICovCi0gCisrCiAgCS8qIGdlbmVyYXRlIGFuZCBzZW5kICdlJywgY2xpZW50IERIIHB1Ymxp YyBrZXkgKi8KKyAJaWYgKChyID0gZGhfZ2VuX2tleShrZXgtPmRoLCBrZXgtPndlX25lZWQgKiA4 KSkgIT0gMCkKKyAJCWdvdG8gb3V0OwogZGlmZiAtdXAgb3BlbnNzaC04LjZwMS9teXByb3Bvc2Fs LmguZmlwcyBvcGVuc3NoLTguNnAxL215cHJvcG9zYWwuaAogLS0tIG9wZW5zc2gtOC42cDEvbXlw cm9wb3NhbC5oLmZpcHMJMjAyMS0wNC0xNiAwNTo1NToyNS4wMDAwMDAwMDAgKzAyMDAKICsrKyBv cGVuc3NoLTguNnAxL215cHJvcG9zYWwuaAkyMDIxLTA1LTA2IDEyOjA4OjM2LjQ5ODkyNjg3NyAr MDIwMAoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtQ1ZFLTIwMjYtNjAwMDEucGF0Y2ggYi9v cGVuc3NoLTkuOXAxLUNWRS0yMDI2LTYwMDAxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjI3ZWVjYzgKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTkuOXAxLUNW RS0yMDI2LTYwMDAxLnBhdGNoCkBAIC0wLDAgKzEsOTcgQEAKK2RpZmYgLS1jb2xvciAtcnVOcCBh L2F1dGgyLmMgYi9hdXRoMi5jCistLS0gYS9hdXRoMi5jCTIwMjYtMDktMTcgMTU6MjE6NTkuMzE3 NDkyMTM0ICswMjAwCisrKysgYi9hdXRoMi5jCTIwMjYtMDktMTcgMTU6Mjk6NTguNjk4ODc3NjQ5 ICswMjAwCitAQCAtMjY3LDYgKzI2NywxMiBAQCBlbnN1cmVfbWluaW11bV90aW1lX3NpbmNlKGRv dWJsZSBzdGFydCwKKyAJbmFub3NsZWVwKCZ0cywgTlVMTCk7CisgfQorIAorK3ZvaWQKKythdXRo X2ZhaWx1cmVfZGVsYXkoQXV0aGN0eHQgKmF1dGhjdHh0LCBkb3VibGUgdHN0YXJ0KQorK3sKKysJ ZW5zdXJlX21pbmltdW1fdGltZV9zaW5jZSh0c3RhcnQsIHVzZXJfc3BlY2lmaWNfZGVsYXkoYXV0 aGN0eHQtPnVzZXIpKTsKKyt9CisrCisgc3RhdGljIGludAorIGlucHV0X3VzZXJhdXRoX3JlcXVl c3QoaW50IHR5cGUsIHVfaW50MzJfdCBzZXEsIHN0cnVjdCBzc2ggKnNzaCkKKyB7CitAQCAtMzU5 LDggKzM2NSw4IEBAIGlucHV0X3VzZXJhdXRoX3JlcXVlc3QoaW50IHR5cGUsIHVfaW50MzIKKyAJ CWF1dGhlbnRpY2F0ZWQgPQltLT51c2VyYXV0aChzc2gsIG1ldGhvZCk7CisgCX0KKyAJaWYgKCFh dXRoY3R4dC0+YXV0aGVudGljYXRlZCAmJiBzdHJjbXAobWV0aG9kLCAibm9uZSIpICE9IDApCist CQllbnN1cmVfbWluaW11bV90aW1lX3NpbmNlKHRzdGFydCwKKy0JCSAgICB1c2VyX3NwZWNpZmlj X2RlbGF5KGF1dGhjdHh0LT51c2VyKSk7CisrCQlhdXRoX2ZhaWx1cmVfZGVsYXkoYXV0aGN0eHQs IHRzdGFydCk7CisrCisgCXVzZXJhdXRoX2ZpbmlzaChzc2gsIGF1dGhlbnRpY2F0ZWQsIG1ldGhv ZCwgTlVMTCk7CisgCXIgPSAwOworICBvdXQ6CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1j aGFsbC5jIGIvYXV0aDItY2hhbGwuYworLS0tIGEvYXV0aDItY2hhbGwuYwkyMDI0LTA5LTIwIDAw OjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvYXV0aDItY2hhbGwuYwkyMDI2LTA5LTE3IDE1 OjI0OjM0LjMyMTA3NTQzNiArMDIwMAorQEAgLTI5Niw2ICsyOTYsNyBAQCBpbnB1dF91c2VyYXV0 aF9pbmZvX3Jlc3BvbnNlKGludCB0eXBlLCB1CisgCXVfaW50IGksIG5yZXNwOworIAljb25zdCBj aGFyICpkZXZpY2VuYW1lID0gTlVMTDsKKyAJY2hhciAqKnJlc3BvbnNlID0gTlVMTDsKKysJZG91 YmxlIHRzdGFydCA9IG1vbm90aW1lX2RvdWJsZSgpOworIAorIAlpZiAoYXV0aGN0eHQgPT0gTlVM TCkKKyAJCWZhdGFsX2YoIm5vIGF1dGhjdHh0Iik7CitAQCAtMzU0LDYgKzM1NSw5IEBAIGlucHV0 X3VzZXJhdXRoX2luZm9fcmVzcG9uc2UoaW50IHR5cGUsIHUKKyAJCQlhdXRoMl9jaGFsbGVuZ2Vf c3RhcnQoc3NoKTsKKyAJCX0KKyAJfQorKworKwlpZiAoIWF1dGhlbnRpY2F0ZWQpCisrCQlhdXRo X2ZhaWx1cmVfZGVsYXkoYXV0aGN0eHQsIHRzdGFydCk7CisgCXVzZXJhdXRoX2ZpbmlzaChzc2gs IGF1dGhlbnRpY2F0ZWQsICJrZXlib2FyZC1pbnRlcmFjdGl2ZSIsCisgCSAgICBkZXZpY2VuYW1l KTsKKyAJcmV0dXJuIDA7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1nc3MuYyBiL2F1dGgy LWdzcy5jCistLS0gYS9hdXRoMi1nc3MuYwkyMDI2LTA5LTE3IDE1OjIxOjU5LjIzNjI4MTA2MiAr MDIwMAorKysrIGIvYXV0aDItZ3NzLmMJMjAyNi0wOS0xNyAxNToyNzozMy45MDI2NDQyMjcgKzAy MDAKK0BAIC0yOTgsNiArMjk4LDcgQEAgaW5wdXRfZ3NzYXBpX2V4Y2hhbmdlX2NvbXBsZXRlKGlu dCB0eXBlLAorIHsKKyAJQXV0aGN0eHQgKmF1dGhjdHh0ID0gc3NoLT5hdXRoY3R4dDsKKyAJaW50 IHIsIGF1dGhlbnRpY2F0ZWQ7CisrCWRvdWJsZSB0c3RhcnQgPSBtb25vdGltZV9kb3VibGUoKTsK KyAKKyAJaWYgKGF1dGhjdHh0ID09IE5VTEwpCisgCQlmYXRhbCgiTm8gYXV0aGVudGljYXRpb24g b3IgR1NTQVBJIGNvbnRleHQiKTsKK0BAIC0zMTEsNiArMzEyLDggQEAgaW5wdXRfZ3NzYXBpX2V4 Y2hhbmdlX2NvbXBsZXRlKGludCB0eXBlLAorIAkJZmF0YWxfZnIociwgInBhcnNlIHBhY2tldCIp OworIAorICAJYXV0aGVudGljYXRlZCA9IG1tX3NzaF9nc3NhcGlfdXNlcm9rKGF1dGhjdHh0LT51 c2VyLCBhdXRoY3R4dC0+cHcsIDEpOworKwlpZiAoIWF1dGhlbnRpY2F0ZWQpCisrCQlhdXRoX2Zh aWx1cmVfZGVsYXkoYXV0aGN0eHQsIHRzdGFydCk7CisgCisgCWF1dGhjdHh0LT5wb3N0cG9uZWQg PSAwOworIAlzc2hfZGlzcGF0Y2hfc2V0KHNzaCwgU1NIMl9NU0dfVVNFUkFVVEhfR1NTQVBJX1RP S0VOLCBOVUxMKTsKK0BAIC0zMzIsNiArMzM1LDcgQEAgaW5wdXRfZ3NzYXBpX21pYyhpbnQgdHlw ZSwgdV9pbnQzMl90IHBsZQorIAlnc3NfYnVmZmVyX2Rlc2MgbWljLCBnc3NidWY7CisgCXVfY2hh ciAqcDsKKyAJc2l6ZV90IGxlbjsKKysJZG91YmxlIHRzdGFydCA9IG1vbm90aW1lX2RvdWJsZSgp OworIAorIAlpZiAoYXV0aGN0eHQgPT0gTlVMTCkKKyAJCWZhdGFsKCJObyBhdXRoZW50aWNhdGlv biBvciBHU1NBUEkgY29udGV4dCIpOworQEAgLTM2Nyw2ICszNzEsOSBAQCBpbnB1dF9nc3NhcGlf bWljKGludCB0eXBlLCB1X2ludDMyX3QgcGxlCisgCQlmcmVlKG1pY3VzZXIpOworIAlmcmVlKG1p Yy52YWx1ZSk7CisgCisrCWlmICghYXV0aGVudGljYXRlZCkKKysJCWF1dGhfZmFpbHVyZV9kZWxh eShhdXRoY3R4dCwgdHN0YXJ0KTsKKysKKyAJYXV0aGN0eHQtPnBvc3Rwb25lZCA9IDA7CisgCXNz aF9kaXNwYXRjaF9zZXQoc3NoLCBTU0gyX01TR19VU0VSQVVUSF9HU1NBUElfVE9LRU4sIE5VTEwp OworIAlzc2hfZGlzcGF0Y2hfc2V0KHNzaCwgU1NIMl9NU0dfVVNFUkFVVEhfR1NTQVBJX0VSUlRP SywgTlVMTCk7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoLmggYi9hdXRoLmgKKy0tLSBhL2F1 dGguaAkyMDI2LTA5LTE3IDE1OjIxOjU5LjMxODM2NTAzMiArMDIwMAorKysrIGIvYXV0aC5oCTIw MjYtMDktMTcgMTU6MjM6MDMuMzg4ODEyODQ4ICswMjAwCitAQCAtMTc5LDYgKzE3OSw3IEBAIHZv aWQJYXV0aF9sb2coc3RydWN0IHNzaCAqLCBpbnQsIGludCwgY28KKyB2b2lkCWF1dGhfbWF4dHJp ZXNfZXhjZWVkZWQoc3RydWN0IHNzaCAqKSBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpOworIHZv aWQJdXNlcmF1dGhfZmluaXNoKHN0cnVjdCBzc2ggKiwgaW50LCBjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7CisgaW50CWF1dGhfcm9vdF9hbGxvd2VkKHN0cnVjdCBzc2ggKiwgY29uc3QgY2hh ciAqKTsKKyt2b2lkICAgYXV0aF9mYWlsdXJlX2RlbGF5KEF1dGhjdHh0ICosIGRvdWJsZSk7Cisg CisgY2hhcgkqYXV0aDJfcmVhZF9iYW5uZXIodm9pZCk7CisgaW50CSBhdXRoMl9tZXRob2RzX3Zh bGlkKGNvbnN0IGNoYXIgKiwgaW50KTsKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWNvcHkt ZGF0YS1leHQtc2VsZi1jb3B5LnBhdGNoIGIvb3BlbnNzaC05LjlwMS1jb3B5LWRhdGEtZXh0LXNl bGYtY29weS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmE0M2Zj Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05LjlwMS1jb3B5LWRhdGEtZXh0LXNlbGYtY29w eS5wYXRjaApAQCAtMCwwICsxLDUxIEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZnRwLXNlcnZl ci5jIGIvc2Z0cC1zZXJ2ZXIuYworLS0tIGEvc2Z0cC1zZXJ2ZXIuYwkyMDI2LTA3LTE3IDE2OjIz OjEyLjI5MzQyNzA2MiArMDIwMAorKysrIGIvc2Z0cC1zZXJ2ZXIuYwkyMDI2LTA3LTE3IDE2OjI5 OjAxLjQ4MDUzNTUwMCArMDIwMAorQEAgLTE2MjUsNiArMTYyNSw3IEBAIHByb2Nlc3NfZXh0ZW5k ZWRfY29weV9kYXRhKHVfaW50MzJfdCBpZCkKKyAJdV9pbnQ2NF90IGxlbiwgcmVhZF9vZmYsIHJl YWRfbGVuLCB3cml0ZV9vZmY7CisgCWludCByLCBjb3B5X3VudGlsX2VvZiwgc3RhdHVzID0gU1NI Ml9GWF9PUF9VTlNVUFBPUlRFRDsKKyAJc2l6ZV90IHJldDsKKysJc3RydWN0IHN0YXQgc3RfcmVh ZCwgc3Rfd3JpdGU7CisgCisgCWlmICgociA9IGdldF9oYW5kbGUoaXF1ZXVlLCAmcmVhZF9oYW5k bGUpKSAhPSAwIHx8CisgCSAgICAociA9IHNzaGJ1Zl9nZXRfdTY0KGlxdWV1ZSwgJnJlYWRfb2Zm KSkgIT0gMCB8fAorQEAgLTE2NDcsMTIgKzE2NDgsMzUgQEAgcHJvY2Vzc19leHRlbmRlZF9jb3B5 X2RhdGEodV9pbnQzMl90IGlkKQorIAl9IGVsc2UKKyAJCWNvcHlfdW50aWxfZW9mID0gMDsKKyAK KysJLyogRGlzYWxsb3cgcmVhZGluZyAmIHdyaXRpbmcgdG8gdGhlIHNhbWUgaGFuZGxlLCBwYXRo IG9yIGlub2RlICovCisgCXJlYWRfZmQgPSBoYW5kbGVfdG9fZmQocmVhZF9oYW5kbGUpOworIAl3 cml0ZV9mZCA9IGhhbmRsZV90b19mZCh3cml0ZV9oYW5kbGUpOworLQorLQkvKiBEaXNhbGxvdyBy ZWFkaW5nICYgd3JpdGluZyB0byB0aGUgc2FtZSBoYW5kbGUgb3Igc2FtZSBwYXRoIG9yIGRpcnMg Ki8KKy0JaWYgKHJlYWRfaGFuZGxlID09IHdyaXRlX2hhbmRsZSB8fCByZWFkX2ZkIDwgMCB8fCB3 cml0ZV9mZCA8IDAgfHwKKy0JICAgICFzdHJjbXAoaGFuZGxlX3RvX25hbWUocmVhZF9oYW5kbGUp LCBoYW5kbGVfdG9fbmFtZSh3cml0ZV9oYW5kbGUpKSkgeworKwlpZiAocmVhZF9mZCA8IDAgfHwg d3JpdGVfZmQgPCAwKSB7CisrCQllcnJvcl9mKCJiYWQgcmVhZCBvciB3cml0ZSBmZCIpOworKwkJ c3RhdHVzID0gZXJybm9fdG9fcG9ydGFibGUoRUJBREYpOworKwkJZ290byBvdXQ7CisrCX0KKysJ aWYgKGZzdGF0KHJlYWRfZmQsICZzdF9yZWFkKSAhPSAwKSB7CisrCQlzdGF0dXMgPSBlcnJub190 b19wb3J0YWJsZShlcnJubyk7CisrCQllcnJvcl9mKCJmc3RhdCByZWFkX2ZkIGZhaWxlZDogJXMi LCBzdHJlcnJvcihlcnJubykpOworKwkJZ290byBvdXQ7CisrCX0KKysJaWYgKGZzdGF0KHdyaXRl X2ZkLCAmc3Rfd3JpdGUpICE9IDApIHsKKysJCXN0YXR1cyA9IGVycm5vX3RvX3BvcnRhYmxlKGVy cm5vKTsKKysJCWVycm9yX2YoImZzdGF0IHdyaXRlX2ZkIGZhaWxlZDogJXMiLCBzdHJlcnJvcihl cnJubykpOworKwkJZ290byBvdXQ7CisrCX0KKysJaWYgKHJlYWRfaGFuZGxlID09IHdyaXRlX2hh bmRsZSB8fAorKwkgICAgIXN0cmNtcChoYW5kbGVfdG9fbmFtZShyZWFkX2hhbmRsZSksIGhhbmRs ZV90b19uYW1lKHdyaXRlX2hhbmRsZSkpIHx8CisrCSAgICAoc3RfcmVhZC5zdF9kZXYgIT0gMCAm JiBzdF9yZWFkLnN0X2lubyAhPSAwICYmCisrCSAgICBzdF9yZWFkLnN0X2RldiA9PSBzdF93cml0 ZS5zdF9kZXYgJiYKKysJICAgIHN0X3JlYWQuc3RfaW5vID09IHN0X3dyaXRlLnN0X2lubykpIHsK KysJCWVycm9yX2YoInJlZnVzaW5nIHRvIHJlYWQvd3JpdGUgc2FtZSBmaWxlOiAiCisrCQkgICAg InJlYWQgXCIlc1wiIGRldiAlbHUgaW5vICVsdSwgd3JpdGUgXCIlc1wiIGRldiAlbHUgaW5vICVs dSIsCisrCQkgICAgaGFuZGxlX3RvX25hbWUocmVhZF9oYW5kbGUpLAorKwkJICAgICh1X2xvbmcp c3RfcmVhZC5zdF9kZXYsICh1X2xvbmcpc3RfcmVhZC5zdF9pbm8sCisrCQkgICAgaGFuZGxlX3Rv X25hbWUod3JpdGVfaGFuZGxlKSwKKysJCSAgICAodV9sb25nKXN0X3dyaXRlLnN0X2RldiwgKHVf bG9uZylzdF93cml0ZS5zdF9pbm8pOworIAkJc3RhdHVzID0gU1NIMl9GWF9GQUlMVVJFOworIAkJ Z290byBvdXQ7CisgCX0KCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWN2ZS0yMDI2LTYwMDAy LnBhdGNoIGIvb3BlbnNzaC05LjlwMS1jdmUtMjAyNi02MDAwMi5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjE2NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNz aC05LjlwMS1jdmUtMjAyNi02MDAwMi5wYXRjaApAQCAtMCwwICsxLDE5MSBAQAorZGlmZiAtLWNv bG9yIC1ydU5wIGEvc3NoLmMgYi9zc2guYworLS0tIGEvc3NoLmMJMjAyNi0wNy0xNCAxMTo1ODow OS4wMzY0OTY5MTUgKzAyMDAKKysrKyBiL3NzaC5jCTIwMjYtMDctMTQgMTI6MDA6NTUuMDQ0NTQy NzQxICswMjAwCitAQCAtNjE5LDI2ICs2MTksNiBAQCBzZXRfYWRkcmluZm9fcG9ydChzdHJ1Y3Qg YWRkcmluZm8gKmFkZHJzCisgCX0KKyB9CisgCistc3RhdGljIHZvaWQKKy1zc2hfY29ubl9pbmZv X2ZyZWUoc3RydWN0IHNzaF9jb25uX2luZm8gKmNpbmZvKQorLXsKKy0JaWYgKGNpbmZvID09IE5V TEwpCistCQlyZXR1cm47CistCWZyZWUoY2luZm8tPmNvbm5faGFzaF9oZXgpOworLQlmcmVlKGNp bmZvLT5zaG9ydGhvc3QpOworLQlmcmVlKGNpbmZvLT51aWRzdHIpOworLQlmcmVlKGNpbmZvLT5r ZXlhbGlhcyk7CistCWZyZWUoY2luZm8tPnRoaXNob3N0KTsKKy0JZnJlZShjaW5mby0+aG9zdF9h cmcpOworLQlmcmVlKGNpbmZvLT5wb3J0c3RyKTsKKy0JZnJlZShjaW5mby0+cmVtaG9zdCk7Cist CWZyZWUoY2luZm8tPnJlbXVzZXIpOworLQlmcmVlKGNpbmZvLT5ob21lZGlyKTsKKy0JZnJlZShj aW5mby0+bG9jdXNlcik7CistCWZyZWUoY2luZm8tPmptcGhvc3QpOworLQlmcmVlKGNpbmZvKTsK Ky19CistCisgLyoKKyAgKiBNYWluIHByb2dyYW0gZm9yIHRoZSBzc2ggY2xpZW50LgorICAqLwor QEAgLTE3NjUsOCArMTc0NSw4IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCXNzaF9zaWdu YWwoU0lHQ0hMRCwgbWFpbl9zaWdjaGxkX2hhbmRsZXIpOworIAorIAkvKiBMb2cgaW50byB0aGUg cmVtb3RlIHN5c3RlbS4gIE5ldmVyIHJldHVybnMgaWYgdGhlIGxvZ2luIGZhaWxzLiAqLworLQlz c2hfbG9naW4oc3NoLCAmc2Vuc2l0aXZlX2RhdGEsIGhvc3QsIChzdHJ1Y3Qgc29ja2FkZHIgKikm aG9zdGFkZHIsCistCSAgICBvcHRpb25zLnBvcnQsIHB3LCB0aW1lb3V0X21zLCBjaW5mbyk7Cisr CXNzaF9sb2dpbihzc2gsICZzZW5zaXRpdmVfZGF0YSwgaG9zdCwgJmhvc3RhZGRyLCBvcHRpb25z LnBvcnQsCisrCSAgICBwdywgdGltZW91dF9tcywgY2luZm8pOworIAorIAkvKiBXZSBubyBsb25n ZXIgbmVlZCB0aGUgcHJpdmF0ZSBob3N0IGtleXMuICBDbGVhciB0aGVtIG5vdy4gKi8KKyAJaWYg KHNlbnNpdGl2ZV9kYXRhLm5rZXlzICE9IDApIHsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNv bm5lY3QyLmMgYi9zc2hjb25uZWN0Mi5jCistLS0gYS9zc2hjb25uZWN0Mi5jCTIwMjYtMDctMTQg MTE6NTg6MDkuMDMxNDc3MDI4ICswMjAwCisrKysgYi9zc2hjb25uZWN0Mi5jCTIwMjYtMDctMTQg MTI6MDE6NTYuMzc0ODAzMTIzICswMjAwCitAQCAtODksNyArODksNyBAQCBleHRlcm4gT3B0aW9u cyBvcHRpb25zOworICAqLworIAorIHN0YXRpYyBjaGFyICp4eHhfaG9zdDsKKy1zdGF0aWMgc3Ry dWN0IHNvY2thZGRyICp4eHhfaG9zdGFkZHI7Cisrc3RhdGljIHN0cnVjdCBzb2NrYWRkcl9zdG9y YWdlIHh4eF9ob3N0YWRkcjsKKyBzdGF0aWMgY29uc3Qgc3RydWN0IHNzaF9jb25uX2luZm8gKnh4 eF9jb25uX2luZm87Cisgc3RhdGljIGludCBrZXlfdHlwZV9hbGxvd2VkKHN0cnVjdCBzc2hrZXkg KiwgY29uc3QgY2hhciAqKTsKKyAKK0BAIC0xMDUsNyArMTA1LDcgQEAgdmVyaWZ5X2hvc3Rfa2V5 X2NhbGxiYWNrKHN0cnVjdCBzc2hrZXkgKgorIAkJZmF0YWwoIlNlcnZlciBob3N0IGtleSAlcyBu b3QgaW4gSG9zdEtleUFsZ29yaXRobXMiLAorIAkJICAgIHNzaGtleV9zc2hfbmFtZShob3N0a2V5 KSk7CisgCX0KKy0JaWYgKHZlcmlmeV9ob3N0X2tleSh4eHhfaG9zdCwgeHh4X2hvc3RhZGRyLCBo b3N0a2V5LAorKwlpZiAodmVyaWZ5X2hvc3Rfa2V5KHh4eF9ob3N0LCAoc3RydWN0IHNvY2thZGRy ICopJnh4eF9ob3N0YWRkciwgaG9zdGtleSwKKyAJICAgIHh4eF9jb25uX2luZm8pICE9IDApCisg CQlmYXRhbCgiSG9zdCBrZXkgdmVyaWZpY2F0aW9uIGZhaWxlZC4iKTsKKyAJcmV0dXJuIDA7CitA QCAtMjIyLDggKzIyMiw4IEBAIG9yZGVyX2hvc3RrZXlhbGdzKGNoYXIgKmhvc3QsIHN0cnVjdCBz b2MKKyB9CisgCisgdm9pZAorLXNzaF9rZXgyKHN0cnVjdCBzc2ggKnNzaCwgY2hhciAqaG9zdCwg c3RydWN0IHNvY2thZGRyICpob3N0YWRkciwgdV9zaG9ydCBwb3J0LAorLSAgICBjb25zdCBzdHJ1 Y3Qgc3NoX2Nvbm5faW5mbyAqY2luZm8pCisrc3NoX2tleDIoc3RydWN0IHNzaCAqc3NoLCBjaGFy ICpob3N0LCBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqaG9zdGFkZHIsCisrICAgIHVfc2hvcnQg cG9ydCwgY29uc3Qgc3RydWN0IHNzaF9jb25uX2luZm8gKmNpbmZvKQorIHsKKyAJY2hhciAqbXlw cm9wb3NhbFtQUk9QT1NBTF9NQVhdOworIAljaGFyICphbGxfa2V5LCAqaGthbGdzID0gTlVMTCwg KmZpbHRlcmVkX2FsZ3MgPSBOVUxMOworQEAgLTIzNCw5ICsyMzQsOSBAQCBzc2hfa2V4MihzdHJ1 Y3Qgc3NoICpzc2gsIGNoYXIgKmhvc3QsIHN0CisgCWNoYXIgKmdzc19ob3N0ID0gTlVMTDsKKyAj ZW5kaWYKKyAKKy0JeHh4X2hvc3QgPSBob3N0OworLQl4eHhfaG9zdGFkZHIgPSBob3N0YWRkcjsK Ky0JeHh4X2Nvbm5faW5mbyA9IGNpbmZvOworKwl4eHhfaG9zdCA9IHhzdHJkdXAoaG9zdCk7Cisr CXh4eF9ob3N0YWRkciA9ICpob3N0YWRkcjsKKysJeHh4X2Nvbm5faW5mbyA9IHNzaF9jb25uX2lu Zm9fZHVwKGNpbmZvKTsKKyAKKyAJaWYgKG9wdGlvbnMucmVrZXlfbGltaXQgfHwgb3B0aW9ucy5y ZWtleV9pbnRlcnZhbCkKKyAJCXNzaF9wYWNrZXRfc2V0X3Jla2V5X2xpbWl0cyhzc2gsIG9wdGlv bnMucmVrZXlfbGltaXQsCitAQCAtMjU5LDggKzI1OSwxMCBAQCBzc2hfa2V4MihzdHJ1Y3Qgc3No ICpzc2gsIGNoYXIgKmhvc3QsIHN0CisgCQlmYXRhbF9mcihyLCAia2V4X2Fzc2VtYmxlX25hbWVs aXN0Iik7CisgCWZyZWUoYWxsX2tleSk7CisgCistCWlmICh1c2Vfa25vd25faG9zdHNfb3JkZXIp CistCQloa2FsZ3MgPSBvcmRlcl9ob3N0a2V5YWxncyhob3N0LCBob3N0YWRkciwgcG9ydCwgY2lu Zm8pOworKwlpZiAodXNlX2tub3duX2hvc3RzX29yZGVyKSB7CisrCQloa2FsZ3MgPSBvcmRlcl9o b3N0a2V5YWxncyhob3N0LCAoc3RydWN0IHNvY2thZGRyICopaG9zdGFkZHIsCisrCQkgICAgcG9y dCwgY2luZm8pOworKwl9CisgCisgCWZpbHRlcmVkX2FsZ3MgPSBoa2FsZ3MgPyBtYXRjaF9maWx0 ZXJfYWxsb3dsaXN0KGhrYWxncywgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MpCisgCQkg ICAgICAgICAgICAgICA6IG1hdGNoX2ZpbHRlcl9hbGxvd2xpc3Qob3B0aW9ucy5ob3N0a2V5YWxn b3JpdGhtcywKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNvbm5lY3QuYyBiL3NzaGNvbm5lY3Qu YworLS0tIGEvc3NoY29ubmVjdC5jCTIwMjYtMDctMTQgMTE6NTg6MDguODkyNjU5MDExICswMjAw CisrKysgYi9zc2hjb25uZWN0LmMJMjAyNi0wNy0xNCAxMjowMDo1NS4wNDU3Njc0NjIgKzAyMDAK K0BAIC04NCw2ICs4NCw0OSBAQCBleHRlcm4gY2hhciAqX19wcm9nbmFtZTsKKyBzdGF0aWMgaW50 IHNob3dfb3RoZXJfa2V5cyhzdHJ1Y3QgaG9zdGtleXMgKiwgc3RydWN0IHNzaGtleSAqKTsKKyBz dGF0aWMgdm9pZCB3YXJuX2NoYW5nZWRfa2V5KHN0cnVjdCBzc2hrZXkgKik7CisgCisrdm9pZAor K3NzaF9jb25uX2luZm9fZnJlZShzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAqY2luZm8pCisreworKwlp ZiAoY2luZm8gPT0gTlVMTCkKKysJCXJldHVybjsKKysJZnJlZShjaW5mby0+Y29ubl9oYXNoX2hl eCk7CisrCWZyZWUoY2luZm8tPnNob3J0aG9zdCk7CisrCWZyZWUoY2luZm8tPnVpZHN0cik7Cisr CWZyZWUoY2luZm8tPmtleWFsaWFzKTsKKysJZnJlZShjaW5mby0+dGhpc2hvc3QpOworKwlmcmVl KGNpbmZvLT5ob3N0X2FyZyk7CisrCWZyZWUoY2luZm8tPnBvcnRzdHIpOworKwlmcmVlKGNpbmZv LT5yZW1ob3N0KTsKKysJZnJlZShjaW5mby0+cmVtdXNlcik7CisrCWZyZWUoY2luZm8tPmhvbWVk aXIpOworKwlmcmVlKGNpbmZvLT5sb2N1c2VyKTsKKysJZnJlZShjaW5mby0+am1waG9zdCk7Cisr CWZyZWV6ZXJvKGNpbmZvLCBzaXplb2YoKmNpbmZvKSk7CisrfQorKworK3N0cnVjdCBzc2hfY29u bl9pbmZvICoKKytzc2hfY29ubl9pbmZvX2R1cChjb25zdCBzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAq Y2luZm8pCisreworKwlzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAqcmV0OworKworKwlpZiAoY2luZm8g PT0gTlVMTCkKKysJCXJldHVybiBOVUxMOworKwlyZXQgPSB4Y2FsbG9jKDEsIHNpemVvZigqcmV0 KSk7CisrCXJldC0+Y29ubl9oYXNoX2hleCA9IHhzdHJkdXAoY2luZm8tPmNvbm5faGFzaF9oZXgp OworKwlyZXQtPnNob3J0aG9zdCA9IHhzdHJkdXAoY2luZm8tPnNob3J0aG9zdCk7CisrCXJldC0+ dWlkc3RyID0geHN0cmR1cChjaW5mby0+dWlkc3RyKTsKKysJcmV0LT5rZXlhbGlhcyA9IHhzdHJk dXAoY2luZm8tPmtleWFsaWFzKTsKKysJcmV0LT50aGlzaG9zdCA9IHhzdHJkdXAoY2luZm8tPnRo aXNob3N0KTsKKysJcmV0LT5ob3N0X2FyZyA9IHhzdHJkdXAoY2luZm8tPmhvc3RfYXJnKTsKKysJ cmV0LT5wb3J0c3RyID0geHN0cmR1cChjaW5mby0+cG9ydHN0cik7CisrCXJldC0+cmVtaG9zdCA9 IHhzdHJkdXAoY2luZm8tPnJlbWhvc3QpOworKwlyZXQtPnJlbXVzZXIgPSB4c3RyZHVwKGNpbmZv LT5yZW11c2VyKTsKKysJcmV0LT5ob21lZGlyID0geHN0cmR1cChjaW5mby0+aG9tZWRpcik7Cisr CXJldC0+bG9jdXNlciA9IHhzdHJkdXAoY2luZm8tPmxvY3VzZXIpOworKwlyZXQtPmptcGhvc3Qg PSB4c3RyZHVwKGNpbmZvLT5qbXBob3N0KTsKKysJcmV0dXJuIHJldDsKKyt9CisrCisgLyogRXhw YW5kIGEgcHJveHkgY29tbWFuZCAqLworIHN0YXRpYyBjaGFyICoKKyBleHBhbmRfcHJveHlfY29t bWFuZChjb25zdCBjaGFyICpwcm94eV9jb21tYW5kLCBjb25zdCBjaGFyICp1c2VyLAorQEAgLTE1 ODksOCArMTYzMiw4IEBAIG91dDoKKyAgKi8KKyB2b2lkCisgc3NoX2xvZ2luKHN0cnVjdCBzc2gg KnNzaCwgU2Vuc2l0aXZlICpzZW5zaXRpdmUsIGNvbnN0IGNoYXIgKm9yaWdob3N0LAorLSAgICBz dHJ1Y3Qgc29ja2FkZHIgKmhvc3RhZGRyLCB1X3Nob3J0IHBvcnQsIHN0cnVjdCBwYXNzd2QgKnB3 LCBpbnQgdGltZW91dF9tcywKKy0gICAgY29uc3Qgc3RydWN0IHNzaF9jb25uX2luZm8gKmNpbmZv KQorKyAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSAqaG9zdGFkZHIsIHVfc2hvcnQgcG9ydCwg c3RydWN0IHBhc3N3ZCAqcHcsCisrICAgIGludCB0aW1lb3V0X21zLCBjb25zdCBzdHJ1Y3Qgc3No X2Nvbm5faW5mbyAqY2luZm8pCisgeworIAljaGFyICpob3N0OworIAljaGFyICpzZXJ2ZXJfdXNl ciwgKmxvY2FsX3VzZXI7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hjb25uZWN0LmggYi9zc2hj b25uZWN0LmgKKy0tLSBhL3NzaGNvbm5lY3QuaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAw MCArMDIwMAorKysrIGIvc3NoY29ubmVjdC5oCTIwMjYtMDctMTQgMTI6MDA6NTUuMDQ1OTQ4OTUz ICswMjAwCitAQCAtNzMsNyArNzMsNyBAQCBpbnQJIHNzaF9jb25uZWN0KHN0cnVjdCBzc2ggKiwg Y29uc3QgY2hhCisgdm9pZAkgc3NoX2tpbGxfcHJveHlfY29tbWFuZCh2b2lkKTsKKyAKKyB2b2lk CSBzc2hfbG9naW4oc3RydWN0IHNzaCAqLCBTZW5zaXRpdmUgKiwgY29uc3QgY2hhciAqLAorLSAg ICBzdHJ1Y3Qgc29ja2FkZHIgKiwgdV9zaG9ydCwgc3RydWN0IHBhc3N3ZCAqLCBpbnQsCisrICAg IHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlICosIHVfc2hvcnQsIHN0cnVjdCBwYXNzd2QgKiwgaW50 LAorICAgICBjb25zdCBzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAqKTsKKyAKKyBpbnQJIHZlcmlmeV9o b3N0X2tleShjaGFyICosIHN0cnVjdCBzb2NrYWRkciAqLCBzdHJ1Y3Qgc3Noa2V5ICosCitAQCAt ODIsNyArODIsNyBAQCBpbnQJIHZlcmlmeV9ob3N0X2tleShjaGFyICosIHN0cnVjdCBzb2NrCisg dm9pZAkgZ2V0X2hvc3RmaWxlX2hvc3RuYW1lX2lwYWRkcihjaGFyICosIHN0cnVjdCBzb2NrYWRk ciAqLCB1X3Nob3J0LAorICAgICBjaGFyICoqLCBjaGFyICoqKTsKKyAKKy12b2lkCSBzc2hfa2V4 MihzdHJ1Y3Qgc3NoICpzc2gsIGNoYXIgKiwgc3RydWN0IHNvY2thZGRyICosIHVfc2hvcnQsCisr dm9pZAkgc3NoX2tleDIoc3RydWN0IHNzaCAqc3NoLCBjaGFyICosIHN0cnVjdCBzb2NrYWRkcl9z dG9yYWdlICosIHVfc2hvcnQsCisgICAgIGNvbnN0IHN0cnVjdCBzc2hfY29ubl9pbmZvICopOwor IAorIHZvaWQJIHNzaF91c2VyYXV0aDIoc3RydWN0IHNzaCAqc3NoLCBjb25zdCBjaGFyICosIGNv bnN0IGNoYXIgKiwKK0BAIC05OCwzICs5OCw2IEBAIHZvaWQJIGxvYWRfaG9zdGtleXNfY29tbWFu ZChzdHJ1Y3QgaG9zdGsKKyAgICAgY29uc3Qgc3RydWN0IHNzaGtleSAqLCBjb25zdCBjaGFyICop OworIAorIGludCBob3N0a2V5X2FjY2VwdGVkX2J5X2hvc3RrZXlhbGdzKGNvbnN0IHN0cnVjdCBz c2hrZXkgKik7CisrCisrdm9pZCBzc2hfY29ubl9pbmZvX2ZyZWUoc3RydWN0IHNzaF9jb25uX2lu Zm8gKik7Cisrc3RydWN0IHNzaF9jb25uX2luZm8gKnNzaF9jb25uX2luZm9fZHVwKGNvbnN0IHN0 cnVjdCBzc2hfY29ubl9pbmZvICopOwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtZ3Npc3No LnBhdGNoIGIvb3BlbnNzaC05LjlwMS1nc2lzc2gucGF0Y2gKaW5kZXggOGFiYjllOC4uMjRmNWMw MiAxMDA2NDQKLS0tIGEvb3BlbnNzaC05LjlwMS1nc2lzc2gucGF0Y2gKKysrIGIvb3BlbnNzaC05 LjlwMS1nc2lzc2gucGF0Y2gKQEAgLTEsNyArMSw3IEBACiBkaWZmIC1OdXIgb3BlbnNzaC05Ljlw MS5vcmlnL2F1dGgyLmMgb3BlbnNzaC05LjlwMS9hdXRoMi5jCi0tLS0gb3BlbnNzaC05LjlwMS5v cmlnL2F1dGgyLmMJMjAyNi0wMy0yNSAwOTozMzo1MC4zNjE2OTQxNDcgKzAxMDAKLSsrKyBvcGVu c3NoLTkuOXAxL2F1dGgyLmMJMjAyNi0wMy0yNSAwOTozNDozOC4wODE0NDQ4NzkgKzAxMDAKLUBA IC0yODYsNyArMjg2LDI4IEBACistLS0gb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgyLmMJMjAyNi0w OS0yMiAxMToxMTo1OS45ODAyNTc2MzEgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL2F1dGgyLmMJ MjAyNi0wOS0yMiAxMToxMjozMi40OTI5MjExMjcgKzAyMDAKK0BAIC0yOTIsNyArMjkyLDI4IEBA CiAgCSAgICAociA9IHNzaHBrdF9nZXRfY3N0cmluZyhzc2gsICZzZXJ2aWNlLCBOVUxMKSkgIT0g MCB8fAogIAkgICAgKHIgPSBzc2hwa3RfZ2V0X2NzdHJpbmcoc3NoLCAmbWV0aG9kLCBOVUxMKSkg IT0gMCkKICAJCWdvdG8gb3V0OwpAQCAtMzEsNyArMzEsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2F1dGgyLmMgb3BlbnNzaC05LjlwMS9hdXRoMi5jCiAgCWRlYnVnKCJhdHRlbXB0 ICVkIGZhaWx1cmVzICVkIiwgYXV0aGN0eHQtPmF0dGVtcHQsIGF1dGhjdHh0LT5mYWlsdXJlcyk7 CiAgCiAgI2lmZGVmIFdJVEhfU0VMSU5VWAotQEAgLTI5OSwxMSArMzIwLDMzIEBACitAQCAtMzA1 LDExICszMjYsMzMgQEAKICAKICAJaWYgKGF1dGhjdHh0LT5hdHRlbXB0ID49IDEwMjQpCiAgCQlh dXRoX21heHRyaWVzX2V4Y2VlZGVkKHNzaCk7CkBAIC02OSw3ICs2OSw3IEBAIGRpZmYgLU51ciBv cGVuc3NoLTkuOXAxLm9yaWcvYXV0aDIuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLmMKICAJCQlhdXRo Y3R4dC0+dmFsaWQgPSAxOwogIAkJCWRlYnVnMl9mKCJzZXR0aW5nIHVwIGF1dGhjdHh0IGZvciAl cyIsIHVzZXIpOwogIAkJfSBlbHNlIHsKLUBAIC0zMTEsNiArMzU0LDkgQEAKK0BAIC0zMTcsNiAr MzYwLDkgQEAKICAJCQkvKiBJbnZhbGlkIHVzZXIsIGZha2UgcGFzc3dvcmQgaW5mb3JtYXRpb24g Ki8KICAJCQlhdXRoY3R4dC0+cHcgPSBmYWtlcHcoKTsKICAJCX0KQEAgLTc5LDcgKzc5LDcgQEAg ZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoMi5jIG9wZW5zc2gtOS45cDEvYXV0aDIu YwogICNpZmRlZiBVU0VfUEFNCiAgCQlpZiAob3B0aW9ucy51c2VfcGFtKQogIAkJCW1tX3N0YXJ0 X3BhbShzc2gpOwotQEAgLTMxOCw2ICszNjQsNyBAQAorQEAgLTMyNCw2ICszNzAsNyBAQAogIAkJ c3NoX3BhY2tldF9zZXRfbG9nX3ByZWFtYmxlKHNzaCwgIiVzdXNlciAlcyIsCiAgCQkgICAgYXV0 aGN0eHQtPnZhbGlkID8gImF1dGhlbnRpY2F0aW5nICIgOiAiaW52YWxpZCAiLCB1c2VyKTsKICAJ CXNldHByb2N0aXRsZSgiJXMgW25ldF0iLCBhdXRoY3R4dC0+dmFsaWQgPyB1c2VyIDogInVua25v d24iKTsKQEAgLTg3LDcgKzg3LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRo Mi5jIG9wZW5zc2gtOS45cDEvYXV0aDIuYwogIAkJYXV0aGN0eHQtPnNlcnZpY2UgPSB4c3RyZHVw KHNlcnZpY2UpOwogIAkJYXV0aGN0eHQtPnN0eWxlID0gc3R5bGUgPyB4c3RyZHVwKHN0eWxlKSA6 IE5VTEw7CiAgI2lmZGVmIFdJVEhfU0VMSU5VWAotQEAgLTMzMyw5ICszODAsMTAgQEAKK0BAIC0z MzksOSArMzg2LDEwIEBACiAgCQlpZiAoYXV0aDJfc2V0dXBfbWV0aG9kc19saXN0cyhhdXRoY3R4 dCkgIT0gMCkKICAJCQlzc2hfcGFja2V0X2Rpc2Nvbm5lY3Qoc3NoLAogIAkJCSAgICAibm8gYXV0 aGVudGljYXRpb24gbWV0aG9kcyBlbmFibGVkIik7CkBAIC0xMDIsOCArMTAyLDggQEAgZGlmZiAt TnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoMi5jIG9wZW5zc2gtOS45cDEvYXV0aDIuYwogIAkJ ICAgIGF1dGhjdHh0LT51c2VyLCBhdXRoY3R4dC0+c2VydmljZSwgdXNlciwgc2VydmljZSk7CiAg CX0KIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aDItZ3NzLmMgb3BlbnNzaC05Ljlw MS9hdXRoMi1nc3MuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoMi1nc3MuYwkyMDI2LTAz LTI1IDA5OjMzOjUwLjI0NzcyMTAzMiArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvYXV0aDItZ3Nz LmMJMjAyNi0wMy0yNSAwOTozNDozOC4wODIyNzExNzQgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAx Lm9yaWcvYXV0aDItZ3NzLmMJMjAyNi0wOS0yMiAxMToxMTo1OS45ODEzMDI2OTggKzAyMDAKKysr KyBvcGVuc3NoLTkuOXAxL2F1dGgyLWdzcy5jCTIwMjYtMDktMjIgMTE6MjI6MDAuNjE1OTYyNTAw ICswMjAwCiBAQCAtNTQsNiArNTQsNyBAQAogIGV4dGVybiBzdHJ1Y3QgYXV0aG1ldGhvZF9jZmcg bWV0aG9kY2ZnX2dzc2tleWV4OwogIGV4dGVybiBzdHJ1Y3QgYXV0aG1ldGhvZF9jZmcgbWV0aG9k Y2ZnX2dzc2FwaTsKQEAgLTIyOCwxMiArMjI4LDEzIEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAx Lm9yaWcvYXV0aDItZ3NzLmMgb3BlbnNzaC05LjlwMS9hdXRoMi1nc3MuYwogIC8qCiAgICogVGhp cyBpcyBjYWxsZWQgd2hlbiB0aGUgY2xpZW50IHRoaW5rcyB3ZSd2ZSBjb21wbGV0ZWQgYXV0aGVu dGljYXRpb24uCiAgICogSXQgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCBpbiB0aGUgZGlzcGF0Y2gg aGFuZGxlciBieSB0aGUgZnVuY3Rpb24gYWJvdmUsCi1AQCAtMjk3LDExICszNDcsMTMgQEAKK0BA IC0yOTcsMTIgKzM0NywxNCBAQAogIGlucHV0X2dzc2FwaV9leGNoYW5nZV9jb21wbGV0ZShpbnQg dHlwZSwgdV9pbnQzMl90IHBsZW4sIHN0cnVjdCBzc2ggKnNzaCkKICB7CiAgCUF1dGhjdHh0ICph dXRoY3R4dCA9IHNzaC0+YXV0aGN0eHQ7CiAtCWludCByLCBhdXRoZW50aWNhdGVkOwogKwlpbnQg ciwgYXV0aGVudGljYXRlZCA9IDA7CisgCWRvdWJsZSB0c3RhcnQgPSBtb25vdGltZV9kb3VibGUo KTsKICAKICAJaWYgKGF1dGhjdHh0ID09IE5VTEwpCiAgCQlmYXRhbCgiTm8gYXV0aGVudGljYXRp b24gb3IgR1NTQVBJIGNvbnRleHQiKTsKQEAgLTI0Myw3ICsyNDQsNyBAQCBkaWZmIC1OdXIgb3Bl bnNzaC05LjlwMS5vcmlnL2F1dGgyLWdzcy5jIG9wZW5zc2gtOS45cDEvYXV0aDItZ3NzLmMKICAJ LyoKICAJICogV2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgc3RhdHVzLCBiZWNhdXNlIHdlJ3Jl IG9ubHkgZW5hYmxlZCBpbgogIAkgKiB0aGUgZGlzcGF0Y2hlciBvbmNlIHRoZSBleGNoYW5nZSBp cyBjb21wbGV0ZQotQEAgLTMxMCw3ICszNjIsMTEgQEAKK0BAIC0zMTEsNyArMzYzLDExIEBACiAg CWlmICgociA9IHNzaHBrdF9nZXRfZW5kKHNzaCkpICE9IDApCiAgCQlmYXRhbF9mcihyLCAicGFy c2UgcGFja2V0Iik7CiAgCkBAIC0yNTMsMTAgKzI1NCwxMCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2F1dGgyLWdzcy5jIG9wZW5zc2gtOS45cDEvYXV0aDItZ3NzLmMKICsJCWF1dGhl bnRpY2F0ZWQgPSBtbV9zc2hfZ3NzYXBpX3VzZXJvayhhdXRoY3R4dC0+dXNlciwKICsJCSAgICBh dXRoY3R4dC0+cHcsIDEpOwogKwl9CisgCWlmICghYXV0aGVudGljYXRlZCkKKyAJCWF1dGhfZmFp bHVyZV9kZWxheShhdXRoY3R4dCwgdHN0YXJ0KTsKICAKLSAJYXV0aGN0eHQtPnBvc3Rwb25lZCA9 IDA7Ci0gCXNzaF9kaXNwYXRjaF9zZXQoc3NoLCBTU0gyX01TR19VU0VSQVVUSF9HU1NBUElfVE9L RU4sIE5VTEwpOwotQEAgLTM1NywxMCArNDEzLDE2IEBACitAQCAtMzYxLDEwICs0MTcsMTYgQEAK ICAJCWZhdGFsX2YoInNzaGJ1Zl9tdXRhYmxlX3B0ciBmYWlsZWQiKTsKICAJZ3NzYnVmLmxlbmd0 aCA9IHNzaGJ1Zl9sZW4oYik7CiAgCkBAIC0yNzYsNyArMjc3LDcgQEAgZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9hdXRoMi1nc3MuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLWdzcy5jCiAgCiAg CXNzaGJ1Zl9mcmVlKGIpOwogIAlpZiAobWljdXNlciAhPSBhdXRoY3R4dC0+dXNlcikKLUBAIC0z NzYsNiArNDM4LDI2IEBACitAQCAtMzgzLDYgKzQ0NSwyNiBAQAogIAlyZXR1cm4gMDsKICB9CiAg CkBAIC0zMDQsOCArMzA1LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoMi1n c3MuYyBvcGVuc3NoLTkuOXAxL2F1dGgyLWdzcy5jCiAgCSZtZXRob2RjZmdfZ3Nza2V5ZXgsCiAg CXVzZXJhdXRoX2dzc2tleWV4LAogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLmMg b3BlbnNzaC05LjlwMS9hdXRoLmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC5jCTIwMjYt MDMtMjUgMDk6MzM6NTAuNDQ4ODI5NjExICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9hdXRoLmMJ MjAyNi0wMy0yNSAwOTozNDozOC4wODI4NjcyMDEgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9y aWcvYXV0aC5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTIwNTM0MzMyICswMjAwCisrKysgb3BlbnNz aC05LjlwMS9hdXRoLmMJMjAyNi0wOS0yMiAxMToxMjozMi40OTUzNDcwMTQgKzAyMDAKIEBAIC0y OTgsNyArMjk4LDggQEAKICAJICAgIG1ldGhvZCwKICAJICAgIHN1Ym1ldGhvZCAhPSBOVUxMID8g Ii8iIDogIiIsIHN1Ym1ldGhvZCA9PSBOVUxMID8gIiIgOiBzdWJtZXRob2QsCkBAIC0zMzcsOCAr MzM4LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLmMgb3BlbnNzaC05Ljlw MS9hdXRoLmMKICAJCXJlY29yZF9mYWlsZWRfbG9naW4oc3NoLCB1c2VyLAogIAkJICAgIGF1dGhf Z2V0X2Nhbm9uaWNhbF9ob3N0bmFtZShzc2gsIG9wdGlvbnMudXNlX2RucyksICJzc2giKTsKIGRp ZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC5oIG9wZW5zc2gtOS45cDEvYXV0aC5oCi0t LS0gb3BlbnNzaC05LjlwMS5vcmlnL2F1dGguaAkyMDI2LTAzLTI1IDA5OjMzOjUwLjM2MzEwNzY2 OSArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvYXV0aC5oCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDgz ODM2ODgxICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL2F1dGguaAkyMDI2LTA5LTIyIDEx OjExOjU5Ljk4MTU5MDYxOSArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvYXV0aC5oCTIwMjYtMDkt MjIgMTE6MTI6MzIuNDk2NDQ3MTM2ICswMjAwCiBAQCAtODUsNiArODUsOCBAQAogIAlrcmI1X3By aW5jaXBhbAkga3JiNV91c2VyOwogIAljaGFyCQkqa3JiNV90aWNrZXRfZmlsZTsKQEAgLTM0OSw4 ICszNTAsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2F1dGguaCBvcGVuc3NoLTku OXAxL2F1dGguaAogICNlbmRpZgogIAlzdHJ1Y3Qgc3NoYnVmCSpsb2dpbm1zZzsKIGRpZmYgLU51 ciBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC1wYW0uYyBvcGVuc3NoLTkuOXAxL2F1dGgtcGFtLmMK LS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0aC1wYW0uYwkyMDI2LTAzLTI1IDA5OjMzOjUwLjQw Mzg4ODQ4MCArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvYXV0aC1wYW0uYwkyMDI2LTAzLTI1IDA5 OjM0OjM4LjA4NDU2NzcwMiArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLXBhbS5j CTIwMjYtMDktMjIgMTE6MTE6NTkuODcxOTI1NTkwICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9h dXRoLXBhbS5jCTIwMjYtMDktMjIgMTE6MTI6MzIuNDk3Mjc2NDc5ICswMjAwCiBAQCAtMjQ4LDYg KzI0OCw3IEBACiAgc3RhdGljIGNvbnN0IGNoYXIgKnNzaHBhbV9wYXNzd29yZCA9IE5VTEw7CiAg c3RhdGljIGNoYXIgKnNzaHBhbV9yaG9zdCA9IE5VTEw7CkBAIC01MTIsOCArNTEzLDggQEAgZGlm ZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLXBhbS5jIG9wZW5zc2gtOS45cDEvYXV0aC1w YW0uYwogIAlmcmVlKGZha2UpOwogIAlpZiAoc3NocGFtX2VyciA9PSBQQU1fTUFYVFJJRVMpCiBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgtcGFtLmggb3BlbnNzaC05LjlwMS9hdXRo LXBhbS5oCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL2F1dGgtcGFtLmgJMjAyNi0wMy0yNSAwOToz Mzo1MC4yMTQ1NTI4MDcgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL2F1dGgtcGFtLmgJMjAyNi0w My0yNSAwOTozNDozOC4wODU0NDcyODYgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvYXV0 aC1wYW0uaAkyMDI2LTA5LTIyIDExOjExOjU5LjY4MjkxMzQxMiArMDIwMAorKysrIG9wZW5zc2gt OS45cDEvYXV0aC1wYW0uaAkyMDI2LTA5LTIyIDExOjEyOjMyLjQ5ODY2NTY2NyArMDIwMAogQEAg LTQzLDUgKzQzLDYgQEAKICBpbnQgc3NocGFtX2dldF9tYXh0cmllc19yZWFjaGVkKHZvaWQpOwog IHZvaWQgc3NocGFtX3NldF9tYXh0cmllc19yZWFjaGVkKGludCk7CkBAIC01MjIsOCArNTIzLDgg QEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9hdXRoLXBhbS5oIG9wZW5zc2gtOS45cDEv YXV0aC1wYW0uaAogIAogICNlbmRpZiAvKiBVU0VfUEFNICovCiBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2Nhbm9ob3N0LmMgb3BlbnNzaC05LjlwMS9jYW5vaG9zdC5jCi0tLS0gb3BlbnNz aC05LjlwMS5vcmlnL2Nhbm9ob3N0LmMJMjAyNi0wMy0yNSAwOTozMzo1MC4yNDkwMDA1OTkgKzAx MDAKLSsrKyBvcGVuc3NoLTkuOXAxL2Nhbm9ob3N0LmMJMjAyNi0wMy0yNSAwOTozNDozOC4wODU2 ODA2OTcgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvY2Fub2hvc3QuYwkyMDI2LTA5LTIy IDExOjExOjU5LjcxOTQ4NDQ0NyArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvY2Fub2hvc3QuYwky MDI2LTA5LTIyIDExOjEyOjMyLjQ5OTAxMDI1MSArMDIwMAogQEAgLTE3LDYgKzE3LDcgQEAKICAj aW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KQEAgLTU2Nyw4 ICs1NjgsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2Nhbm9ob3N0LmMgb3BlbnNz aC05LjlwMS9jYW5vaG9zdC5jCiArCX0KICt9CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmln L2Nhbm9ob3N0Lmggb3BlbnNzaC05LjlwMS9jYW5vaG9zdC5oCi0tLS0gb3BlbnNzaC05LjlwMS5v cmlnL2Nhbm9ob3N0LmgJMjAyNi0wMy0yNSAwOTozMzo1MC4yNDkyNDYyMzEgKzAxMDAKLSsrKyBv cGVuc3NoLTkuOXAxL2Nhbm9ob3N0LmgJMjAyNi0wMy0yNSAwOTozNDozOC4wODY3NDI5MTYgKzAx MDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvY2Fub2hvc3QuaAkyMDI2LTA5LTIyIDExOjExOjU5 LjcxOTY2ODgyMiArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvY2Fub2hvc3QuaAkyMDI2LTA5LTIy IDExOjEyOjMyLjQ5OTQ4MjE5MiArMDIwMAogQEAgLTI2LDQgKzI2LDYgQEAKICAKICAjZW5kaWYg LyogX0NBTk9IT1NUX0ggKi8KQEAgLTU3Nyw4ICs1NzgsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2Nhbm9ob3N0Lmggb3BlbnNzaC05LjlwMS9jYW5vaG9zdC5oCiArCiAgdm9pZAkJ IGlwdjY0X25vcm1hbGlzZV9tYXBwZWQoc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgKiwgc29ja2xl bl90ICopOwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9jb25maWd1cmUuYWMgb3BlbnNz aC05LjlwMS9jb25maWd1cmUuYWMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvY29uZmlndXJlLmFj CTIwMjYtMDMtMjUgMDk6MzM6NTAuNDM3MTE3MTE5ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9j b25maWd1cmUuYWMJMjAyNi0wMy0yNSAwOTozNDozOC4wODc4NTMxODcgKzAxMDAKKy0tLSBvcGVu c3NoLTkuOXAxLm9yaWcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMTE6MTE6NTkuOTA4OTI1NTg1 ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAxMToxMjoz Mi41MDAxNjExMzggKzAyMDAKIEBAIC00OTIwLDYgKzQ5MjAsMTQgQEAKICAJCQkJQUNfQ0hFQ0tf SEVBREVSKFtnc3NhcGlfa3JiNS5oXSwgLAogIAkJCQkJCVsgQ1BQRkxBR1M9IiRvbGRDUFAiIF0p CkBAIC02MzYsOCArNjM3LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9jb25maWd1 cmUuYWMgb3BlbnNzaC05LjlwMS9jb25maWd1cmUuYWMKICAKICBQUklWU0VQX1BBVEg9L3Zhci9l bXB0eQogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3MtZ2Vuci5jIG9wZW5zc2gtOS45 cDEvZ3NzLWdlbnIuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9nc3MtZ2Vuci5jCTIwMjYtMDMt MjUgMDk6MzM6NTAuNDcwNDYzNTEwICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9nc3MtZ2Vuci5j CTIwMjYtMDMtMjUgMDk6MzQ6MzguMDg5MjcxMTEwICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5v cmlnL2dzcy1nZW5yLmMJMjAyNi0wOS0yMiAxMToxMTo1OS45ODM5OTA1MTYgKzAyMDAKKysrKyBv cGVuc3NoLTkuOXAxL2dzcy1nZW5yLmMJMjAyNi0wOS0yMiAxMToxMjozMi41MDI5MTY4OTkgKzAy MDAKIEBAIC00MSw2ICs0MSw3IEBACiAgI2luY2x1ZGUgInNzaGVyci5oIgogICNpbmNsdWRlICJz c2hidWYuaCIKQEAgLTY3NSw4ICs2NzYsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmln L2dzcy1nZW5yLmMgb3BlbnNzaC05LjlwMS9nc3MtZ2Vuci5jCiAgCXJldHVybiAoY3R4LT5tYWpv cik7CiAgfQogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gt OS45cDEvZ3NzLXNlcnYuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jCTIwMjYt MDMtMjUgMDk6MzM6NTAuNDYzODUwMDc3ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9nc3Mtc2Vy di5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDkwNjgwNjUxICswMTAwCistLS0gb3BlbnNzaC05Ljlw MS5vcmlnL2dzcy1zZXJ2LmMJMjAyNi0wOS0yMiAxMToxMTo1OS45MzUwNDM1MjMgKzAyMDAKKysr KyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2LmMJMjAyNi0wOS0yMiAxMToxMjozMi41MDM4MDIxMzkg KzAyMDAKIEBAIC01MCwxMCArNTAsMTIgQEAKICAjaW5jbHVkZSAibW9uaXRvcl93cmFwLmgiCiAg CkBAIC03NTksMTUgKzc2MCwxNSBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1z ZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi5jCiAgLyogRXh0cmFjdCBhdXRoZW50aWNhdGlv biBpbmRpY2F0b3JzIGZyb20gdGhlIEtlcmJlcm9zIHRpY2tldC4gQXV0aGVudGljYXRpb24KICAg KiBpbmRpY2F0b3JzIGFyZSBHU1NBUEkgbmFtZSBhdHRyaWJ1dGVzIGZvciB0aGUgbmFtZSAiYXV0 aC1pbmRpY2F0b3JzIi4KICAgKiBNdWx0aXBsZSBpbmRpY2F0b3JzIG1pZ2h0IGJlIHByZXNlbnQg aW4gdGhlIHRpY2tldC4KLUBAIC0zNzksNiArNDEyLDcgQEAKLSAJKHZvaWQpIGdzc19yZWxlYXNl X2J1ZmZlcl9zZXQoJmN0eC0+bWlub3IsICZhdHRycyk7Ci0gCXJldHVybiAoY3R4LT5tYWpvcik7 CitAQCAtMzg3LDYgKzQyMCw3IEBACisgCWdzc19yZWxlYXNlX2J1ZmZlcl9zZXQoJmN0eC0+bWlu b3IsICZhdHRycyk7CisgCXJldHVybiBjdHgtPm1ham9yOwogIH0KICsjZW5kaWYKICAKICAvKiBF eHRyYWN0IHRoZSBjbGllbnQgZGV0YWlscyBmcm9tIGEgZ2l2ZW4gY29udGV4dC4gVGhpcyBjYW4g b25seSByZWxpYWJseQogICAqIGJlIGNhbGxlZCBvbmNlIGZvciBhIGNvbnRleHQgKi8KLUBAIC0z OTQsMjEgKzQyOCwyNCBAQAorQEAgLTQwMSwyMSArNDM1LDI0IEBACiAgCWdzc19idWZmZXJfZGVz YyBlbmFtZSA9IEdTU19DX0VNUFRZX0JVRkZFUjsKICAKICAJaWYgKG9wdGlvbnMuZ3NzX3N0b3Jl X3Jla2V5ICYmIGNsaWVudC0+dXNlZCAmJiBjdHgtPmNsaWVudF9jcmVkcykgewpAQCAtNzk3LDcg Kzc5OCw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3No LTkuOXAxL2dzcy1zZXJ2LmMKICAJCSAgICBuZXdfbmFtZSwgJmVxdWFsKTsKICAKICAJCWlmIChH U1NfRVJST1IoY3R4LT5tYWpvcikpIHsKLUBAIC00MjMsOSArNDYwLDkgQEAKK0BAIC00MzAsOSAr NDY3LDkgQEAKICAKICAJCWRlYnVnKCJNYXJraW5nIHJla2V5ZWQgY3JlZGVudGlhbHMgZm9yIGV4 cG9ydCIpOwogIApAQCAtODA5LDcgKzgxMCw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9y aWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2LmMKICAJCWNsaWVudC0+Y3JlZHMg PSBjdHgtPmNsaWVudF9jcmVkczsKICAJCWN0eC0+Y2xpZW50X2NyZWRzID0gR1NTX0NfTk9fQ1JF REVOVElBTDsKICAJCWNsaWVudC0+dXBkYXRlZCA9IDE7Ci1AQCAtNDQyLDEyICs0NzksMTcgQEAK K0BAIC00NDksMTIgKzQ4NiwxNyBAQAogIAkJaSsrOwogIAl9CiAgCkBAIC04MjksNyArODMwLDcg QEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEv Z3NzLXNlcnYuYwogIAkJc3NoX2dzc2FwaV9lcnJvcihjdHgpOwogIAkJcmV0dXJuIChjdHgtPm1h am9yKTsKICAJfQotQEAgLTQ2NCwyMiArNTA2LDMzIEBACitAQCAtNDcxLDIyICs1MTMsMzMgQEAK ICAJCXJldHVybiAoY3R4LT5tYWpvcik7CiAgCX0KICAKQEAgLTg2NCw3ICs4NjUsNyBAQCBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vy di5jCiAgCXJldHVybiAoY3R4LT5tYWpvcik7CiAgfQogIAotQEAgLTQ4Nyw2ICs1NDAsNyBAQAor QEAgLTQ5NCw2ICs1NDcsNyBAQAogIHZvaWQKICBzc2hfZ3NzYXBpX2NsZWFudXBfY3JlZHModm9p ZCkKICB7CkBAIC04NzIsNyArODczLDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9n c3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYuYwogIAlrcmI1X2NjYWNoZSBjY2FjaGUg PSBOVUxMOwogIAlrcmI1X2Vycm9yX2NvZGUgcHJvYmxlbTsKICAKLUBAIC01MDIsNiArNTU2LDE0 IEBACitAQCAtNTA5LDYgKzU2MywxNCBAQAogIAkJCWdzc2FwaV9jbGllbnQuc3RvcmUuZGF0YSA9 IE5VTEw7CiAgCQl9CiAgCX0KQEAgLTg4Nyw3ICs4ODgsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi5jCiAgfQogIAogIC8q IEFzIHVzZXIgKi8KLUBAIC01MTQsNiArNTc2LDExIEBACitAQCAtNTIxLDYgKzU4MywxMSBAQAog IAl9CiAgCiAgCWlmIChnc3NhcGlfY2xpZW50Lm1lY2ggJiYgZ3NzYXBpX2NsaWVudC5tZWNoLT5z dG9yZWNyZWRzKSB7CkBAIC04OTksNyArOTAwLDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEu b3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYuYwogIAkJcmV0dXJuICgqZ3Nz YXBpX2NsaWVudC5tZWNoLT5zdG9yZWNyZWRzKSgmZ3NzYXBpX2NsaWVudCk7CiAgCX0gZWxzZQog IAkJZGVidWcoInNzaF9nc3NhcGlfc3RvcmVjcmVkczogTm90IGEgR1NTQVBJIG1lY2hhbmlzbSIp OwotQEAgLTU0NywxMSArNjE0LDEzIEBACitAQCAtNTU0LDExICs2MjEsMTMgQEAKICAKICAJKHZv aWQpIGtleDsgLyogdXNlZCBpbiBwcml2aWxlZ2Ugc2VwYXJhdGlvbiAqLwogIApAQCAtOTE2LDcg KzkxNyw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3No LTkuOXAxL2dzcy1zZXJ2LmMKICAJaWYgKGdzc2FwaV9jbGllbnQubWVjaCAmJiBnc3NhcGlfY2xp ZW50Lm1lY2gtPnVzZXJvaykKICAJCWlmICgoKmdzc2FwaV9jbGllbnQubWVjaC0+dXNlcm9rKSgm Z3NzYXBpX2NsaWVudCwgdXNlcikpIHsKICAJCQlnc3NhcGlfY2xpZW50LnVzZWQgPSAxOwotQEAg LTU2Miw2ICs2MzEsNyBAQAorQEAgLTU2OSw2ICs2MzgsNyBAQAogIAkJCWdzc19yZWxlYXNlX2J1 ZmZlcigmbG1pbiwgJmdzc2FwaV9jbGllbnQuZGlzcGxheW5hbWUpOwogIAkJCWdzc19yZWxlYXNl X2J1ZmZlcigmbG1pbiwgJmdzc2FwaV9jbGllbnQuZXhwb3J0ZWRuYW1lKTsKICAJCQlnc3NfcmVs ZWFzZV9jcmVkKCZsbWluLCAmZ3NzYXBpX2NsaWVudC5jcmVkcyk7CkBAIC05MjQsNyArOTI1LDcg QEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mtc2Vydi5jIG9wZW5zc2gtOS45cDEv Z3NzLXNlcnYuYwogIAogIAkJCWlmIChnc3NhcGlfY2xpZW50LmluZGljYXRvcnMgIT0gTlVMTCkg ewogIAkJCQlmb3IgKGkgPSAwOyBnc3NhcGlfY2xpZW50LmluZGljYXRvcnNbaV0gIT0gTlVMTDsg aSsrKQotQEAgLTU3OSw2ICs2NDksMjQgQEAKK0BAIC01ODQsNiArNjU0LDI0IEBACiAgCXJldHVy biAoMCk7CiAgfQogIApAQCAtOTQ5LDcgKzk1MCw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAx Lm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2LmMKICAvKiBUaGVzZSBiaXRz IGFyZSBvbmx5IHVzZWQgZm9yIHJla2V5aW5nLiBUaGUgdW5wcml2aWxlZGdlZCBjaGlsZCBpcyBy dW5uaW5nCiAgICogYXMgdGhlIHVzZXIsIHRoZSBtb25pdG9yIGlzIHJvb3QuCiAgICoKLUBAIC02 MDUsOSArNjkzLDExIEBACitAQCAtNjEwLDkgKzY5OCwxMSBAQAogIAlwYW1faGFuZGxlX3QgKnBh bWggPSBOVUxMOwogIAlzdHJ1Y3QgcGFtX2NvbnYgcGFtY29udiA9IHtzc2hfZ3NzYXBpX3NpbXBs ZV9jb252LCBOVUxMfTsKICAJY2hhciAqZW52c3RyOwpAQCAtOTYyLDcgKzk2Myw3IEBAIGRpZmYg LU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTkuOXAxL2dzcy1zZXJ2 LmMKICAJCXJldHVybjsKICAKICAJb2sgPSBtbV9zc2hfZ3NzYXBpX3VwZGF0ZV9jcmVkcygmZ3Nz YXBpX2NsaWVudC5zdG9yZSk7Ci1AQCAtNjI3LDYgKzcxNywxOCBAQAorQEAgLTYzMiw2ICs3MjIs MTggQEAKICAJaWYgKHJldCkKICAJCXJldHVybjsKICAKQEAgLTk4Myw3ICs5ODQsNyBAQCBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vy di5jCiAgCiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LWdzaS5jIG9wZW5z c2gtOS45cDEvZ3NzLXNlcnYtZ3NpLmMKIC0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYt Z3NpLmMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NoLTku OXAxL2dzcy1zZXJ2LWdzaS5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMDkxNjk1NDQ4ICswMTAwCisr Kysgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi1nc2kuYwkyMDI2LTA5LTIyIDExOjEyOjMyLjUwNTAx ODA0NSArMDIwMAogQEAgLTAsMCArMSwzMjggQEAKICsvKgogKyAqIENvcHlyaWdodCAoYykgMjAw MS0yMDAzIFNpbW9uIFdpbGtpbnNvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTEzMTQsOSAr MTMxNSw5IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYtZ3NpLmMgb3Bl bnNzaC05LjlwMS9nc3Mtc2Vydi1nc2kuYwogKyNlbmRpZiAvKiBHU0kgKi8KICsjZW5kaWYgLyog R1NTQVBJICovCiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2dzcy1zZXJ2LWtyYjUuYyBv cGVuc3NoLTkuOXAxL2dzcy1zZXJ2LWtyYjUuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mt c2Vydi1rcmI1LmMJMjAyNi0wMy0yNSAwOTozMzo1MC40Mzg2NDM5MjQgKzAxMDAKLSsrKyBvcGVu c3NoLTkuOXAxL2dzcy1zZXJ2LWtyYjUuYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjExMTM1MDg3NyAr MDEwMAotQEAgLTQzMSw2ICs0MzEsMzQgQEAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNl cnYta3JiNS5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTEwODQwODM3ICswMjAwCisrKysgb3BlbnNz aC05LjlwMS9nc3Mtc2Vydi1rcmI1LmMJMjAyNi0wOS0yMiAxMToxMjozMi41MDUyMDk5NTEgKzAy MDAKK0BAIC00NTksNiArNDU5LDM0IEBACiAgCXJldHVybiBmb3VuZF9wcmluY2lwYWw7CiAgfQog ICAKQEAgLTEzNTEsNyArMTM1Miw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3Nz LXNlcnYta3JiNS5jIG9wZW5zc2gtOS45cDEvZ3NzLXNlcnYta3JiNS5jCiAgCiAgLyogVGhpcyB3 cml0ZXMgb3V0IGFueSBmb3J3YXJkZWQgY3JlZGVudGlhbHMgZnJvbSB0aGUgc3RydWN0dXJlIHBv cHVsYXRlZAogICAqIGR1cmluZyB1c2VyYXV0aC4gQ2FsbGVkIGFmdGVyIHdlIGhhdmUgc2V0dWlk IHRvIHRoZSB1c2VyICovCi1AQCAtNTI1LDcgKzU1Myw3IEBACitAQCAtNTUzLDcgKzU4MSw3IEBA CiAgCXJldHVybiBzZXRfZW52OwogIH0KICAKQEAgLTEzNjAsNyArMTM2MSw3IEBAIGRpZmYgLU51 ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYta3JiNS5jIG9wZW5zc2gtOS45cDEvZ3NzLXNl cnYta3JiNS5jCiAgc3NoX2dzc2FwaV9rcmI1X3VwZGF0ZWNyZWRzKHNzaF9nc3NhcGlfY2NhY2hl ICpzdG9yZSwKICAgICAgc3NoX2dzc2FwaV9jbGllbnQgKmNsaWVudCkKICB7Ci1AQCAtNTk2LDcg KzYyNCw3IEBACitAQCAtNjI0LDcgKzY1Miw3IEBACiAgCXs5LCAiXHgyQVx4ODZceDQ4XHg4Nlx4 RjdceDEyXHgwMVx4MDJceDAyIn0sCiAgCU5VTEwsCiAgCSZzc2hfZ3NzYXBpX2tyYjVfdXNlcm9r LApAQCAtMTM3MCw4ICsxMzcxLDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9nc3Mt c2Vydi1rcmI1LmMgb3BlbnNzaC05LjlwMS9nc3Mtc2Vydi1rcmI1LmMKICAJJnNzaF9nc3NhcGlf a3JiNV91cGRhdGVjcmVkcwogIH07CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL2tleGdz c3MuYyBvcGVuc3NoLTkuOXAxL2tleGdzc3MuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9rZXhn c3NzLmMJMjAyNi0wMy0yNSAwOTozMzo1MC4yNTUxMzE0MjcgKzAxMDAKLSsrKyBvcGVuc3NoLTku OXAxL2tleGdzc3MuYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjExMTg2MjE4NiArMDEwMAorLS0tIG9w ZW5zc2gtOS45cDEub3JpZy9rZXhnc3NzLmMJMjAyNi0wOS0yMiAxMToxMTo1OS43MjQwNjg1ODMg KzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL2tleGdzc3MuYwkyMDI2LTA5LTIyIDExOjEyOjMyLjUw NTcwODE5OCArMDIwMAogQEAgLTQ4LDYgKzQ4LDcgQEAKICAjaW5jbHVkZSAiZGlnZXN0LmgiCiAg I2luY2x1ZGUgInNzaGVyci5oIgpAQCAtMTQwOCw3ICsxNDA5LDcgQEAgZGlmZiAtTnVyIG9wZW5z c2gtOS45cDEub3JpZy9rZXhnc3NzLmMgb3BlbnNzaC05LjlwMS9rZXhnc3NzLmMKICAJfQogIAog IAlpZiAoISgqcmV0X2ZsYWdzICYgR1NTX0NfTVVUVUFMX0ZMQUcpKQotQEAgLTU5OCw0ICs2MDIs MjYgQEAKK0BAIC02MDAsNCArNjA0LDI2IEBACiAgCXJldHVybiBrZXhnc3NnZXhfZmluYWwoc3No LCAmc2VuZF90b2ssICZyZXRfZmxhZ3MpOwogIH0KICAKQEAgLTE0MzYsOCArMTQzNyw4IEBAIGRp ZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcva2V4Z3Nzcy5jIG9wZW5zc2gtOS45cDEva2V4Z3Nz cy5jCiArCiAgI2VuZGlmIC8qIGRlZmluZWQoR1NTQVBJKSAmJiBkZWZpbmVkKFdJVEhfT1BFTlNT TCkgKi8KIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvTWFrZWZpbGUuaW4gb3BlbnNzaC05 LjlwMS9NYWtlZmlsZS5pbgotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9NYWtlZmlsZS5pbgkyMDI2 LTAzLTI1IDA5OjMzOjUwLjQxMTIyOTI0MyArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvTWFrZWZp bGUuaW4JMjAyNi0wMy0yNSAwOTozNDozOC4xMTI1MDQ5MzggKzAxMDAKKy0tLSBvcGVuc3NoLTku OXAxLm9yaWcvTWFrZWZpbGUuaW4JMjAyNi0wOS0yMiAxMToxMTo1OS44ODAxODgxNzggKzAyMDAK KysrKyBvcGVuc3NoLTkuOXAxL01ha2VmaWxlLmluCTIwMjYtMDktMjIgMTE6MTI6MzIuNTA2MTMz MjY0ICswMjAwCiBAQCAtMTM4LDYgKzEzOCw3IEBACiAgCWF1dGgyLW5vbmUubyBhdXRoMi1wYXNz d2QubyBhdXRoMi1wdWJrZXkubyBhdXRoMi1wdWJrZXlmaWxlLm8gXAogIAltb25pdG9yLm8gbW9u aXRvcl93cmFwLm8gYXV0aC1rcmI1Lm8ga2V4Z3Nzcy5vIFwKQEAgLTE0NDcsOCArMTQ0OCw4IEBA IGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvTWFrZWZpbGUuaW4gb3BlbnNzaC05LjlwMS9N YWtlZmlsZS5pbgogIAlzZnRwLXNlcnZlci5vIHNmdHAtY29tbW9uLm8gXAogIAlzYW5kYm94LW51 bGwubyBzYW5kYm94LXJsaW1pdC5vIHNhbmRib3gtc3lzdHJhY2UubyBzYW5kYm94LWRhcndpbi5v IFwKIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvbWlzYy5jIG9wZW5zc2gtOS45cDEvbWlz Yy5jCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL21pc2MuYwkyMDI2LTAzLTI1IDA5OjMzOjUwLjQ3 MTgyNzc5NCArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvbWlzYy5jCTIwMjYtMDMtMjUgMDk6MzQ6 MzguMTEyNjgwNDUwICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL21pc2MuYwkyMDI2LTA5 LTIyIDExOjExOjU5Ljk4NTM0MjQ4MyArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvbWlzYy5jCTIw MjYtMDktMjIgMTE6MTI6MzIuNTA3MTQ1NjUyICswMjAwCiBAQCAtNDQwLDExICs0NDAsMTQgQEAK ICAjZGVmaW5lIFdISVRFU1BBQ0UgIiBcdFxyXG4iCiAgI2RlZmluZSBRVU9URQkiXCIiCkBAIC0x NTA5LDggKzE1MTAsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL21pc2MuYyBvcGVu c3NoLTkuOXAxL21pc2MuYwogICAqIENvbnZlcnQgQVNDSUkgc3RyaW5nIHRvIFRDUC9JUCBwb3J0 IG51bWJlci4KICAgKiBQb3J0IG11c3QgYmUgPj0wIGFuZCA8PTY1NTM1LgogZGlmZiAtTnVyIG9w ZW5zc2gtOS45cDEub3JpZy9taXNjLmggb3BlbnNzaC05LjlwMS9taXNjLmgKLS0tLSBvcGVuc3No LTkuOXAxLm9yaWcvbWlzYy5oCTIwMjYtMDMtMjUgMDk6MzM6NTAuNDE3NDE2NTczICswMTAwCi0r Kysgb3BlbnNzaC05LjlwMS9taXNjLmgJMjAyNi0wMy0yNSAwOTozNDozOC4xMTM1NzQwMDIgKzAx MDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvbWlzYy5oCTIwMjYtMDktMjIgMTE6MTE6NTkuODg3 Mjk0MjQ1ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9taXNjLmgJMjAyNi0wOS0yMiAxMToxMjoz Mi41MDg2NjQ3MjggKzAyMDAKIEBAIC0xMTIsNiArMTEyLDcgQEAKICB2b2lkCSBzb2NrX3NldF92 Nm9ubHkoaW50KTsKICAKQEAgLTE1MjAsOCArMTUyMSw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTku OXAxLm9yaWcvbWlzYy5oIG9wZW5zc2gtOS45cDEvbWlzYy5oCiAgCiAgdHlwZWRlZiB2b2lkIHBy aXZkcm9wX2ZuKHN0cnVjdCBwYXNzd2QgKik7CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmln L21vbml0b3IuYyBvcGVuc3NoLTkuOXAxL21vbml0b3IuYwotLS0tIG9wZW5zc2gtOS45cDEub3Jp Zy9tb25pdG9yLmMJMjAyNi0wMy0yNSAwOTozMzo1MC40NzI0MDQ0MDUgKzAxMDAKLSsrKyBvcGVu c3NoLTkuOXAxL21vbml0b3IuYwkyMDI2LTAzLTI1IDA5OjM0OjM4LjExNDMwMDAwNCArMDEwMAor LS0tIG9wZW5zc2gtOS45cDEub3JpZy9tb25pdG9yLmMJMjAyNi0wOS0yMiAxMToxMTo1OS45ODU4 OTQzNjEgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL21vbml0b3IuYwkyMDI2LTA5LTIyIDExOjEy OjMyLjUwODkyMTEyNSArMDIwMAogQEAgLTE0OCw2ICsxNDgsOSBAQAogIGludCBtbV9hbnN3ZXJf Z3NzX3VzZXJvayhzdHJ1Y3Qgc3NoICosIGludCwgc3RydWN0IHNzaGJ1ZiAqKTsKICBpbnQgbW1f YW5zd2VyX2dzc19jaGVja21pYyhzdHJ1Y3Qgc3NoICosIGludCwgc3RydWN0IHNzaGJ1ZiAqKTsK QEAgLTE2OTIsOCArMTY5Myw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRv ci5jIG9wZW5zc2gtOS45cDEvbW9uaXRvci5jCiAgewogIAlnc3NfYnVmZmVyX2Rlc2MgZGF0YTsK IGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvci5oIG9wZW5zc2gtOS45cDEvbW9u aXRvci5oCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL21vbml0b3IuaAkyMDI2LTAzLTI1IDA5OjMz OjUwLjM2NjUzNjUzOSArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvbW9uaXRvci5oCTIwMjYtMDMt MjUgMDk6MzQ6MzguMTE1MTAxOTI1ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL21vbml0 b3IuaAkyMDI2LTA5LTIyIDExOjExOjU5LjgzNTk2MDE3NSArMDIwMAorKysrIG9wZW5zc2gtOS45 cDEvbW9uaXRvci5oCTIwMjYtMDktMjIgMTE6MTI6MzIuNTEwNzIwNDM1ICswMjAwCiBAQCAtNzUs NiArNzUsMTAgQEAKICAKICAJTU9OSVRPUl9SRVFfR1NTU0lHTiA9IDE1MCwgTU9OSVRPUl9BTlNf R1NTU0lHTiA9IDE1MSwKQEAgLTE3MDYsOCArMTcwNyw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTku OXAxLm9yaWcvbW9uaXRvci5oIG9wZW5zc2gtOS45cDEvbW9uaXRvci5oCiAgCiAgc3RydWN0IHNz aDsKIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvcl93cmFwLmMgb3BlbnNzaC05 LjlwMS9tb25pdG9yX3dyYXAuYwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9tb25pdG9yX3dyYXAu YwkyMDI2LTAzLTI1IDA5OjMzOjUwLjM3MjMyMjAwMCArMDEwMAotKysrIG9wZW5zc2gtOS45cDEv bW9uaXRvcl93cmFwLmMJMjAyNi0wMy0yNSAwOTozNDozOC4xMTU0NDg4MjggKzAxMDAKKy0tLSBv cGVuc3NoLTkuOXAxLm9yaWcvbW9uaXRvcl93cmFwLmMJMjAyNi0wOS0yMiAxMToxMTo1OS44NDIy NjAyNzEgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL21vbml0b3Jfd3JhcC5jCTIwMjYtMDktMjIg MTE6MTI6MzIuNTEwOTIxMTI0ICswMjAwCiBAQCAtMTEzOSw2ICsxMTM5LDk0IEBACiAgCXJldHVy biAoYXV0aGVudGljYXRlZCk7CiAgfQpAQCAtMTgwNCw4ICsxODA1LDggQEAgZGlmZiAtTnVyIG9w ZW5zc2gtOS45cDEub3JpZy9tb25pdG9yX3dyYXAuYyBvcGVuc3NoLTkuOXAxL21vbml0b3Jfd3Jh cC5jCiAgbW1fc3NoX2dzc2FwaV9zaWduKEdzc2N0eHQgKmN0eCwgZ3NzX2J1ZmZlcl9kZXNjICpk YXRhLCBnc3NfYnVmZmVyX2Rlc2MgKmhhc2gpCiAgewogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEu b3JpZy9tb25pdG9yX3dyYXAuaCBvcGVuc3NoLTkuOXAxL21vbml0b3Jfd3JhcC5oCi0tLS0gb3Bl bnNzaC05LjlwMS5vcmlnL21vbml0b3Jfd3JhcC5oCTIwMjYtMDMtMjUgMDk6MzM6NTAuMzc0ODU0 MDM1ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9tb25pdG9yX3dyYXAuaAkyMDI2LTAzLTI1IDA5 OjM0OjM4LjExNTgzMjQ2NyArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9tb25pdG9yX3dy YXAuaAkyMDI2LTA5LTIyIDExOjExOjU5Ljg0MjYzOTI2MCArMDIwMAorKysrIG9wZW5zc2gtOS45 cDEvbW9uaXRvcl93cmFwLmgJMjAyNi0wOS0yMiAxMToxMjozMi41MTE5MjExMjQgKzAyMDAKIEBA IC03Miw2ICs3MiwxMCBAQAogIGludCBtbV9zc2hfZ3NzYXBpX3VzZXJvayhjaGFyICp1c2VyLCBz dHJ1Y3QgcGFzc3dkICosIGludCBrZXgpOwogIE9NX3VpbnQzMiBtbV9zc2hfZ3NzYXBpX2NoZWNr bWljKEdzc2N0eHQgKiwgZ3NzX2J1ZmZlcl90LCBnc3NfYnVmZmVyX3QpOwpAQCAtMTgxOCw5ICsx ODE5LDkgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9tb25pdG9yX3dyYXAuaCBvcGVu c3NoLTkuOXAxL21vbml0b3Jfd3JhcC5oCiAgI2VuZGlmCiAgCiBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL3JlYWRjb25mLmMgb3BlbnNzaC05LjlwMS9yZWFkY29uZi5jCi0tLS0gb3BlbnNz aC05LjlwMS5vcmlnL3JlYWRjb25mLmMJMjAyNi0wMy0yNSAwOTozMzo1MC40NzM3OTg1MTIgKzAx MDAKLSsrKyBvcGVuc3NoLTkuOXAxL3JlYWRjb25mLmMJMjAyNi0wMy0yNSAwOTozNDozOC4xMTY2 ODA0MTMgKzAxMDAKLUBAIC0yODEyLDExICsyODEyLDExIEBACistLS0gb3BlbnNzaC05LjlwMS5v cmlnL3JlYWRjb25mLmMJMjAyNi0wOS0yMiAxMToxMTo1OS45ODcxNjQ0MjcgKzAyMDAKKysrKyBv cGVuc3NoLTkuOXAxL3JlYWRjb25mLmMJMjAyNi0wOS0yMiAxMToxMjozMi41MTMwNTAyNDggKzAy MDAKK0BAIC0yODEwLDExICsyODEwLDExIEBACiAgCWlmIChvcHRpb25zLT5wdWJrZXlfYXV0aGVu dGljYXRpb24gPT0gLTEpCiAgCQlvcHRpb25zLT5wdWJrZXlfYXV0aGVudGljYXRpb24gPSBTU0hf UFVCS0VZX0FVVEhfQUxMOwogIAlpZiAob3B0aW9ucy0+Z3NzX2F1dGhlbnRpY2F0aW9uID09IC0x KQpAQCAtMTgzNiw4ICsxODM3LDggQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9yZWFk Y29uZi5jIG9wZW5zc2gtOS45cDEvcmVhZGNvbmYuYwogIAkJb3B0aW9ucy0+Z3NzX3RydXN0X2Ru cyA9IDA7CiAgCWlmIChvcHRpb25zLT5nc3NfcmVuZXdhbF9yZWtleSA9PSAtMSkKIGRpZmYgLU51 ciBvcGVuc3NoLTkuOXAxLm9yaWcvcmVhZGNvbmYuaCBvcGVuc3NoLTkuOXAxL3JlYWRjb25mLmgK LS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvcmVhZGNvbmYuaAkyMDI2LTAzLTI1IDA5OjMzOjUwLjI1 OTc0MzY5MSArMDEwMAotKysrIG9wZW5zc2gtOS45cDEvcmVhZGNvbmYuaAkyMDI2LTAzLTI1IDA5 OjM0OjM4LjExNzI5MjY0NCArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9yZWFkY29uZi5o CTIwMjYtMDktMjIgMTE6MTE6NTkuOTYwMDk0OTcyICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9y ZWFkY29uZi5oCTIwMjYtMDktMjIgMTE6MTI6MzIuNTEzOTg1NTA5ICswMjAwCiBAQCAtODAsNiAr ODAsOCBAQAogIAljaGFyICAgKmhvc3Rfa2V5X2FsaWFzOwkvKiBob3N0bmFtZSBhbGlhcyBmb3Ig LnNzaC9rbm93bl9ob3N0cyAqLwogIAljaGFyICAgKnByb3h5X2NvbW1hbmQ7CS8qIFByb3h5IGNv bW1hbmQgZm9yIGNvbm5lY3RpbmcgdGhlIGhvc3QuICovCkBAIC0xODQ4LDggKzE4NDksOCBAQCBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3JlYWRjb25mLmggb3BlbnNzaC05LjlwMS9yZWFk Y29uZi5oCiAgCiAgCXVfaW50CW51bV9zeXN0ZW1faG9zdGZpbGVzOwkvKiBQYXRocyBmb3IgL2V0 Yy9zc2gvc3NoX2tub3duX2hvc3RzICovCiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3Nl cnZjb25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCi0tLS0gb3BlbnNzaC05LjlwMS5vcmln L3NlcnZjb25mLmMJMjAyNi0wMy0yNSAwOTozMzo1MC40NzQ3NTc1MDYgKzAxMDAKLSsrKyBvcGVu c3NoLTkuOXAxL3NlcnZjb25mLmMJMjAyNi0wMy0yNSAxMDoyNTo1MS40NDIxNzAzNDcgKzAxMDAK Ky0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc2VydmNvbmYuYwkyMDI2LTA5LTIyIDExOjExOjU5Ljk4 NzkyNTU3NCArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvc2VydmNvbmYuYwkyMDI2LTA5LTIyIDEx OjEyOjMyLjUxNDg0MzM5NCArMDIwMAogQEAgLTk1LDYgKzk1LDcgQEAKICAJLyogUG9ydGFibGUt c3BlY2lmaWMgb3B0aW9ucyAqLwogIAlvcHRpb25zLT51c2VfcGFtID0gLTE7CkBAIC0xODk1LDcg KzE4OTYsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmMgb3BlbnNz aC05LjlwMS9zZXJ2Y29uZi5jCiAgCWlmIChvcHRpb25zLT5nc3Nfc3RvcmVfcmVrZXkgPT0gLTEp CiAgCQlvcHRpb25zLT5nc3Nfc3RvcmVfcmVrZXkgPSAwOwogICNpZmRlZiBHU1NBUEkKLUBAIC01 ODAsNyArNTg2LDcgQEAKK0BAIC01ODEsNyArNTg3LDcgQEAKICB0eXBlZGVmIGVudW0gewogIAlz QmFkT3B0aW9uLAkJLyogPT0gdW5rbm93biBvcHRpb24gKi8KICAJLyogUG9ydGFibGUtc3BlY2lm aWMgb3B0aW9ucyAqLwpAQCAtMTkwNCw3ICsxOTA1LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45 cDEub3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEvc2VydmNvbmYuYwogIAkvKiBTdGFuZGFy ZCBPcHRpb25zICovCiAgCXNQb3J0LCBzSG9zdEtleUZpbGUsIHNMb2dpbkdyYWNlVGltZSwKICAJ c1Blcm1pdFJvb3RMb2dpbiwgc0xvZ0ZhY2lsaXR5LCBzTG9nTGV2ZWwsIHNMb2dWZXJib3NlLAot QEAgLTYwMiw2ICs2MDgsOCBAQAorQEAgLTYwMyw2ICs2MDksOCBAQAogIAlzQ2xpZW50QWxpdmVJ bnRlcnZhbCwgc0NsaWVudEFsaXZlQ291bnRNYXgsIHNBdXRob3JpemVkS2V5c0ZpbGUsCiAgCXNH c3NBdXRoZW50aWNhdGlvbiwgc0dzc0NsZWFudXBDcmVkcywgc0dzc0RlbGVnYXRlQ3JlZHMsCiAg CXNHc3NFbmFibGVrNXVzZXJzLCBzR3NzU3RyaWN0QWNjZXB0b3IsCkBAIC0xOTEzLDcgKzE5MTQs NyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmMgb3BlbnNzaC05Ljlw MS9zZXJ2Y29uZi5jCiAgCXNHc3NLZXlFeCwgc0dzc0luZGljYXRvcnMsIHNHc3NLZXhBbGdvcml0 aG1zLCBzR3NzU3RvcmVSZWtleSwKICAJc0FjY2VwdEVudiwgc1NldEVudiwgc1Blcm1pdFR1bm5l bCwKICAJc01hdGNoLCBzUGVybWl0T3Blbiwgc1Blcm1pdExpc3Rlbiwgc0ZvcmNlQ29tbWFuZCwg c0Nocm9vdERpcmVjdG9yeSwKLUBAIC02MzYsOSArNjQ0LDExIEBACitAQCAtNjM3LDkgKzY0NSwx MSBAQAogICNpZmRlZiBVU0VfUEFNCiAgCXsgInVzZXBhbSIsIHNVc2VQQU0sIFNTSENGR19HTE9C QUwgfSwKICAJeyAicGFtc2VydmljZW5hbWUiLCBzUEFNU2VydmljZU5hbWUsIFNTSENGR19BTEwg fSwKQEAgLTE5MjUsNyArMTkyNiw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc2Vy dmNvbmYuYyBvcGVuc3NoLTkuOXAxL3NlcnZjb25mLmMKICAjZW5kaWYKICAJeyAicGFtYXV0aGVu dGljYXRpb252aWFrYmRpbnQiLCBzRGVwcmVjYXRlZCwgU1NIQ0ZHX0dMT0JBTCB9LAogIAkvKiBT dGFuZGFyZCBPcHRpb25zICovCi1AQCAtNjk0LDYgKzcwNCwxMiBAQAorQEAgLTY5NSw2ICs3MDUs MTIgQEAKICAJeyAiZ3NzYXBpY2xlYW51cGNyZWRlbnRpYWxzIiwgc0dzc0NsZWFudXBDcmVkcywg U1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGljbGVhbnVwY3JlZHMiLCBzR3NzQ2xlYW51cENy ZWRzLCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaWRlbGVnYXRlY3JlZGVudGlhbHMiLCBz R3NzRGVsZWdhdGVDcmVkcywgU1NIQ0ZHX0dMT0JBTCB9LApAQCAtMTkzOCw3ICsxOTM5LDcgQEAg ZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEvc2Vy dmNvbmYuYwogIAl7ICJnc3NhcGlzdHJpY3RhY2NlcHRvcmNoZWNrIiwgc0dzc1N0cmljdEFjY2Vw dG9yLCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaWtleWV4Y2hhbmdlIiwgc0dzc0tleUV4 LCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaXN0b3JlY3JlZGVudGlhbHNvbnJla2V5Iiwg c0dzc1N0b3JlUmVrZXksIFNTSENGR19HTE9CQUwgfSwKLUBAIC03MDUsNiArNzIxLDggQEAKK0BA IC03MDYsNiArNzIyLDggQEAKICAJeyAiZ3NzYXBpY2xlYW51cGNyZWRlbnRpYWxzIiwgc1Vuc3Vw cG9ydGVkLCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaWNsZWFudXBjcmVkcyIsIHNVbnN1 cHBvcnRlZCwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJnc3NhcGlkZWxlZ2F0ZWNyZWRlbnRpYWxz Iiwgc1Vuc3VwcG9ydGVkLCBTU0hDRkdfR0xPQkFMIH0sCkBAIC0xOTQ3LDcgKzE5NDgsNyBAQCBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2 Y29uZi5jCiAgCXsgImdzc2FwaXN0cmljdGFjY2VwdG9yY2hlY2siLCBzVW5zdXBwb3J0ZWQsIFNT SENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpa2V5ZXhjaGFuZ2UiLCBzVW5zdXBwb3J0ZWQsIFNT SENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpc3RvcmVjcmVkZW50aWFsc29ucmVrZXkiLCBzVW5z dXBwb3J0ZWQsIFNTSENGR19HTE9CQUwgfSwKLUBAIC03NzksNiArNzk3LDggQEAKK0BAIC03ODAs NiArNzk4LDggQEAKICAJeyAicGVybWl0bGlzdGVuIiwgc1Blcm1pdExpc3RlbiwgU1NIQ0ZHX0FM TCB9LAogIAl7ICJmb3JjZWNvbW1hbmQiLCBzRm9yY2VDb21tYW5kLCBTU0hDRkdfQUxMIH0sCiAg CXsgImNocm9vdGRpcmVjdG9yeSIsIHNDaHJvb3REaXJlY3RvcnksIFNTSENGR19BTEwgfSwKQEAg LTE5NTYsNyArMTk1Nyw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc2VydmNvbmYu YyBvcGVuc3NoLTkuOXAxL3NlcnZjb25mLmMKICAJeyAiaG9zdGNlcnRpZmljYXRlIiwgc0hvc3RD ZXJ0aWZpY2F0ZSwgU1NIQ0ZHX0dMT0JBTCB9LAogIAl7ICJyZXZva2Vka2V5cyIsIHNSZXZva2Vk S2V5cywgU1NIQ0ZHX0FMTCB9LAogIAl7ICJ0cnVzdGVkdXNlcmNha2V5cyIsIHNUcnVzdGVkVXNl ckNBS2V5cywgU1NIQ0ZHX0FMTCB9LAotQEAgLTE0NDksNiArMTQ2OSwxMCBAQAorQEAgLTE0NTEs NiArMTQ3MSwxMCBAQAogIAkJCSpjaGFycHRyID0geHN0cmR1cChhcmcpOwogIAkJYnJlYWs7CiAg CkBAIC0xOTY3LDcgKzE5NjgsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZj b25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCiAgCS8qIFN0YW5kYXJkIE9wdGlvbnMgKi8K ICAJY2FzZSBzQmFkT3B0aW9uOgogIAkJZ290byBvdXQ7Ci1AQCAtMTcxMiw2ICsxNzM2LDEwIEBA CitAQCAtMTcxNCw2ICsxNzM4LDEwIEBACiAgCQlpbnRwdHIgPSAmb3B0aW9ucy0+Z3NzX2RlbGVn X2NyZWRzOwogIAkJZ290byBwYXJzZV9mbGFnOwogIApAQCAtMTk3OCw3ICsxOTc5LDcgQEAgZGlm ZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zZXJ2Y29uZi5jIG9wZW5zc2gtOS45cDEvc2VydmNv bmYuYwogIAljYXNlIHNHc3NTdHJpY3RBY2NlcHRvcjoKICAJCWludHB0ciA9ICZvcHRpb25zLT5n c3Nfc3RyaWN0X2FjY2VwdG9yOwogIAkJZ290byBwYXJzZV9mbGFnOwotQEAgLTE3NDEsNiArMTc2 OSwxMiBAQAorQEAgLTE3NDMsNiArMTc3MSwxMiBAQAogIAkJCW9wdGlvbnMtPmdzc19pbmRpY2F0 b3JzID0geHN0cmR1cChhcmcpOwogIAkJYnJlYWs7CiAgCkBAIC0xOTkxLDcgKzE5OTIsNyBAQCBk aWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2 Y29uZi5jCiAgCWNhc2Ugc1Bhc3N3b3JkQXV0aGVudGljYXRpb246CiAgCQlpbnRwdHIgPSAmb3B0 aW9ucy0+cGFzc3dvcmRfYXV0aGVudGljYXRpb247CiAgCQlnb3RvIHBhcnNlX2ZsYWc7Ci1AQCAt MzAxMCw2ICszMDQ0LDcgQEAKK0BAIC0zMDE0LDYgKzMwNDgsNyBAQAogIAogIAlNX0NQX0lOVE9Q VChwYXNzd29yZF9hdXRoZW50aWNhdGlvbik7CiAgCU1fQ1BfSU5UT1BUKGdzc19hdXRoZW50aWNh dGlvbik7CkBAIC0yMDAwLDggKzIwMDEsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmln L3NlcnZjb25mLmMgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCiAgCU1fQ1BfSU5UT1BUKHB1Ymtl eV9hdXRoX29wdGlvbnMpOwogIAlNX0NQX0lOVE9QVChrZXJiZXJvc19hdXRoZW50aWNhdGlvbik7 CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmggb3BlbnNzaC05LjlwMS9z ZXJ2Y29uZi5oCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmgJMjAyNi0wMy0yNSAw OTozMzo1MC40NjQ5ODA4ODEgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL3NlcnZjb25mLmgJMjAy Ni0wMy0yNSAwOTo0Njo0Ny45ODc5MzA4NjYgKzAxMDAKKy0tLSBvcGVuc3NoLTkuOXAxLm9yaWcv c2VydmNvbmYuaAkyMDI2LTA5LTIyIDExOjExOjU5LjkzNjQwNDY4NCArMDIwMAorKysrIG9wZW5z c2gtOS45cDEvc2VydmNvbmYuaAkyMDI2LTA5LTIyIDExOjEyOjMyLjUxNTYyNjU4MiArMDIwMAog QEAgLTE1NSwxMCArMTU1LDEyIEBACiAgCQkJCQkJICogYmUgc3RvcmVkIGluIHBlci1zZXNzaW9u IGNjYWNoZSAqLwogIAlpbnQJdXNlX2t1c2Vyb2s7CkBAIC0yMDI0LDggKzIwMjUsOCBAQCBkaWZm IC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25mLmggb3BlbnNzaC05LjlwMS9zZXJ2Y29u Zi5oCiAgCWludAlwZXJtaXRfdHVuOwogIAogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9z c2guMSBvcGVuc3NoLTkuOXAxL3NzaC4xCi0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaC4xCTIw MjYtMDMtMjUgMDk6MzM6NTAuMzg5NjM3NTk4ICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9zc2gu MQkyMDI2LTAzLTI1IDA5OjM0OjM4LjEyMDUwMjk3OSArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEu b3JpZy9zc2guMQkyMDI2LTA5LTIyIDExOjExOjU5Ljg1NzczNDg4NiArMDIwMAorKysrIG9wZW5z c2gtOS45cDEvc3NoLjEJMjAyNi0wOS0yMiAxMToxMjozMi41MTYxNzMxMjYgKzAyMDAKIEBAIC0x NTIzLDYgKzE1MjMsMTggQEAKICBvbiB0byBuZXcgY29ubmVjdGlvbnMpLgogIC5JdCBFdiBVU0VS CkBAIC0yMDQ2LDggKzIwNDcsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaC4x IG9wZW5zc2gtOS45cDEvc3NoLjEKICAuUHAKICBBZGRpdGlvbmFsbHksCiBkaWZmIC1OdXIgb3Bl bnNzaC05LjlwMS5vcmlnL3NzaC5jIG9wZW5zc2gtOS45cDEvc3NoLmMKLS0tLSBvcGVuc3NoLTku OXAxLm9yaWcvc3NoLmMJMjAyNi0wMy0yNSAwOTozMzo1MC40NjAzMTY4NjQgKzAxMDAKLSsrKyBv cGVuc3NoLTkuOXAxL3NzaC5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMTIwNjgwMzc2ICswMTAwCist LS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaC5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTc4MDEwOTgw ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2guYwkyMDI2LTA5LTIyIDExOjEyOjMyLjUxNzI4 NDc1MSArMDIwMAogQEAgLTU4NSw2ICs1ODUsMzggQEAKICAJCQlmYXRhbCgiQ2FuJ3Qgb3BlbiB1 c2VyIGNvbmZpZyBmaWxlICUuMTAwczogIgogIAkJCSAgICAiJS4xMDBzIiwgY29uZmlnLCBzdHJl cnJvcihlcnJubykpOwpAQCAtMjA4Nyw3ICsyMDg4LDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45 cDEub3JpZy9zc2guYyBvcGVuc3NoLTkuOXAxL3NzaC5jCiAgCQlyID0gc25wcmludGYoYnVmLCBz aXplb2YgYnVmLCAiJXMvJXMiLCBwdy0+cHdfZGlyLAogIAkJICAgIF9QQVRIX1NTSF9VU0VSX0NP TkZGSUxFKTsKICAJCWlmIChyID4gMCAmJiAoc2l6ZV90KXIgPCBzaXplb2YoYnVmKSkKLUBAIC0x MzE4LDggKzEzNTAsMTIgQEAKK0BAIC0xMjY2LDggKzEyOTgsMTIgQEAKICAJaWYgKGZpbGxfZGVm YXVsdF9vcHRpb25zKCZvcHRpb25zKSAhPSAwKQogIAkJY2xlYW51cF9leGl0KDI1NSk7CiAgCkBA IC0yMTAyLDggKzIxMDMsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaC5jIG9w ZW5zc2gtOS45cDEvc3NoLmMKICAJLyoKICAJICogSWYgUHJveHlKdW1wIG9wdGlvbiBzcGVjaWZp ZWQsIHRoZW4gY29uc3RydWN0IGEgUHJveHlDb21tYW5kIG5vdy4KIGRpZmYgLU51ciBvcGVuc3No LTkuOXAxLm9yaWcvc3NoX2NvbmZpZyBvcGVuc3NoLTkuOXAxL3NzaF9jb25maWcKLS0tLSBvcGVu c3NoLTkuOXAxLm9yaWcvc3NoX2NvbmZpZwkyMDI2LTAzLTI1IDA5OjMzOjUwLjI2MjUzMjgxMiAr MDEwMAotKysrIG9wZW5zc2gtOS45cDEvc3NoX2NvbmZpZwkyMDI2LTAzLTI1IDA5OjM0OjM4LjEy MTUyODgxMSArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2hfY29uZmlnCTIwMjYtMDkt MjIgMTE6MTE6NTkuNzMwMjA4NDk0ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2hfY29uZmln CTIwMjYtMDktMjIgMTE6MTI6MzIuNTE3ODI4NTEyICswMjAwCiBAQCAtMjIsOSArMjIsOSBAQAog ICMgICBGb3J3YXJkWDExIG5vCiAgIyAgIFBhc3N3b3JkQXV0aGVudGljYXRpb24geWVzCkBAIC0y MTE4LDggKzIxMTksOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaF9jb25maWcg b3BlbnNzaC05LjlwMS9zc2hfY29uZmlnCiAgIyAgIEJhdGNoTW9kZSBubwogICMgICBDaGVja0hv c3RJUCBubwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hfY29uZmlnLjUgb3BlbnNz aC05LjlwMS9zc2hfY29uZmlnLjUKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoX2NvbmZpZy41 CTIwMjYtMDMtMjUgMDk6MzM6NTAuNDA1NTU3NTUzICswMTAwCi0rKysgb3BlbnNzaC05LjlwMS9z c2hfY29uZmlnLjUJMjAyNi0wMy0yNSAwOTozNDozOC4xMjIxNTIwMDcgKzAxMDAKKy0tLSBvcGVu c3NoLTkuOXAxLm9yaWcvc3NoX2NvbmZpZy41CTIwMjYtMDktMjIgMTE6MTE6NTkuODczOTI1NTkw ICswMjAwCisrKysgb3BlbnNzaC05LjlwMS9zc2hfY29uZmlnLjUJMjAyNi0wOS0yMiAxMToxMjoz Mi41MTgyNDYzOTEgKzAyMDAKIEBAIC01Miw2ICs1MiwxMiBAQAogIHVzZXIncyBjb25maWd1cmF0 aW9uIGZpbGUKICAuUHEgUGEgfi8uc3NoL2NvbmZpZwpAQCAtMjE2Nyw5ICsyMTY4LDkgQEAgZGlm ZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hfY29uZmlnLjUgb3BlbnNzaC05LjlwMS9zc2hf Y29uZmlnLjUKICAuRWQKICAuSXQgQ20gUHJveHlDb21tYW5kCiBkaWZmIC1OdXIgb3BlbnNzaC05 LjlwMS5vcmlnL3NzaGNvbm5lY3QyLmMgb3BlbnNzaC05LjlwMS9zc2hjb25uZWN0Mi5jCi0tLS0g b3BlbnNzaC05LjlwMS5vcmlnL3NzaGNvbm5lY3QyLmMJMjAyNi0wMy0yNSAwOTozMzo1MC40NTYw NzcyNzUgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL3NzaGNvbm5lY3QyLmMJMjAyNi0wMy0yNSAw OTozNDozOC4xMjI3NDYwMDkgKzAxMDAKLUBAIC04NjAsNiArODYwLDExIEBACistLS0gb3BlbnNz aC05LjlwMS5vcmlnL3NzaGNvbm5lY3QyLmMJMjAyNi0wOS0yMiAxMToxMTo1OS45NjU3NDU2Njkg KzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NzaGNvbm5lY3QyLmMJMjAyNi0wOS0yMiAxMToxMjoz Mi41MTk1OTcyMjcgKzAyMDAKK0BAIC04NjcsNiArODY3LDExIEBACiAgCWdzc19PSUQgbWVjaCA9 IE5VTEw7CiAgCWNoYXIgKmdzc19ob3N0ID0gTlVMTDsKICAKQEAgLTIxODEsNyArMjE4Miw3IEBA IGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoY29ubmVjdDIuYyBvcGVuc3NoLTkuOXAx L3NzaGNvbm5lY3QyLmMKICAJaWYgKG9wdGlvbnMuZ3NzX3NlcnZlcl9pZGVudGl0eSkgewogIAkJ Z3NzX2hvc3QgPSB4c3RyZHVwKG9wdGlvbnMuZ3NzX3NlcnZlcl9pZGVudGl0eSk7CiAgCX0gZWxz ZSBpZiAob3B0aW9ucy5nc3NfdHJ1c3RfZG5zKSB7Ci1AQCAtOTY4LDcgKzk3Myw4IEBACitAQCAt OTc1LDcgKzk4MCw4IEBACiAgCiAgCWlmIChzdGF0dXMgPT0gR1NTX1NfQ09NUExFVEUpIHsKICAJ CS8qIHNlbmQgZWl0aGVyIGNvbXBsZXRlIG9yIE1JQywgZGVwZW5kaW5nIG9uIG1lY2hhbmlzbSAq LwpAQCAtMjE5MSw3ICsyMTkyLDcgQEAgZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3JpZy9zc2hj b25uZWN0Mi5jIG9wZW5zc2gtOS45cDEvc3NoY29ubmVjdDIuYwogIAkJCWlmICgociA9IHNzaHBr dF9zdGFydChzc2gsCiAgCQkJICAgIFNTSDJfTVNHX1VTRVJBVVRIX0dTU0FQSV9FWENIQU5HRV9D T01QTEVURSkpICE9IDAgfHwKICAJCQkgICAgKHIgPSBzc2hwa3Rfc2VuZChzc2gpKSAhPSAwKQot QEAgLTExMzUsNiArMTE0MSwyMCBAQAorQEAgLTExNDIsNiArMTE0OCwyMCBAQAogIAlyZXR1cm4g cjsKICB9CiAgCkBAIC0yMjEyLDcgKzIyMTMsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5v cmlnL3NzaGNvbm5lY3QyLmMgb3BlbnNzaC05LjlwMS9zc2hjb25uZWN0Mi5jCiAgaW50CiAgdXNl cmF1dGhfZ3Nza2V5ZXgoc3RydWN0IHNzaCAqc3NoKQogIHsKLUBAIC0xMTU3LDYgKzExNzcsMTIg QEAKK0BAIC0xMTY0LDYgKzExODQsMTIgQEAKICAJaWYgKChiID0gc3NoYnVmX25ldygpKSA9PSBO VUxMKQogIAkJZmF0YWxfZigic3NoYnVmX25ldyBmYWlsZWQiKTsKICAKQEAgLTIyMjUsNyArMjIy Niw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoY29ubmVjdDIuYyBvcGVuc3No LTkuOXAxL3NzaGNvbm5lY3QyLmMKICAJc3NoX2dzc2FwaV9idWlsZG1pYyhiLCBhdXRoY3R4dC0+ c2VydmVyX3VzZXIsIGF1dGhjdHh0LT5zZXJ2aWNlLAogIAkgICAgImdzc2FwaS1rZXlleCIsIHNz aC0+a2V4LT5zZXNzaW9uX2lkKTsKICAKLUBAIC0xMTcwLDcgKzExOTYsOSBAQAorQEAgLTExNzcs NyArMTIwMyw5IEBACiAgCX0KICAKICAJaWYgKChyID0gc3NocGt0X3N0YXJ0KHNzaCwgU1NIMl9N U0dfVVNFUkFVVEhfUkVRVUVTVCkpICE9IDAgfHwKQEAgLTIyMzcsOCArMjIzOCw4IEBAIGRpZmYg LU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoY29ubmVjdDIuYyBvcGVuc3NoLTkuOXAxL3NzaGNv bm5lY3QyLmMKICAJICAgIChyID0gc3NocGt0X3B1dF9jc3RyaW5nKHNzaCwgYXV0aGN0eHQtPm1l dGhvZC0+bmFtZSkpICE9IDAgfHwKICAJICAgIChyID0gc3NocGt0X3B1dF9zdHJpbmcoc3NoLCBt aWMudmFsdWUsIG1pYy5sZW5ndGgpKSAhPSAwIHx8CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5v cmlnL3NzaGQuOCBvcGVuc3NoLTkuOXAxL3NzaGQuOAotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9z c2hkLjgJMjAyNi0wMy0yNSAwOTozMzo1MC4yNzg4MTYxNTIgKzAxMDAKLSsrKyBvcGVuc3NoLTku OXAxL3NzaGQuOAkyMDI2LTAzLTI1IDA5OjM0OjM4LjEyMzU5NDU4MyArMDEwMAorLS0tIG9wZW5z c2gtOS45cDEub3JpZy9zc2hkLjgJMjAyNi0wOS0yMiAxMToxMTo1OS43NDUwNTg4NTUgKzAyMDAK KysrKyBvcGVuc3NoLTkuOXAxL3NzaGQuOAkyMDI2LTA5LTIyIDExOjEyOjMyLjUyMDIyODA3MCAr MDIwMAogQEAgLTg0MCw2ICs4NDAsMjkgQEAKICAjIEEgQ0Ega2V5LCBhY2NlcHRlZCBmb3IgYW55 IGhvc3QgaW4gKi5teWRvbWFpbi5jb20gb3IgKi5teWRvbWFpbi5vcmcKICBAY2VydC1hdXRob3Jp dHkgKi5teWRvbWFpbi5vcmcsKi5teWRvbWFpbi5jb20gc3NoLXJzYSBBQUFBQjVXLi4uCkBAIC0y MjcwLDggKzIyNzEsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGQuOCBvcGVu c3NoLTkuOXAxL3NzaGQuOAogIC5CbCAtdGFnIC13aWR0aCBEcyAtY29tcGFjdAogIC5JdCBQYSB+ Ly5odXNobG9naW4KIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoZF9jb25maWcgb3Bl bnNzaC05LjlwMS9zc2hkX2NvbmZpZwotLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2hkX2NvbmZp ZwkyMDI2LTAzLTI1IDA5OjMzOjUwLjMwMzAxNjAyOCArMDEwMAotKysrIG9wZW5zc2gtOS45cDEv c3NoZF9jb25maWcJMjAyNi0wMy0yNSAwOTozNDozOC4xMjQwMjM0ODAgKzAxMDAKKy0tLSBvcGVu c3NoLTkuOXAxLm9yaWcvc3NoZF9jb25maWcJMjAyNi0wOS0yMiAxMToxMTo1OS43NjcyMzIyNzEg KzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NzaGRfY29uZmlnCTIwMjYtMDktMjIgMTE6MTI6MzIu NTIwOTY2MTUwICswMjAwCiBAQCAtNzYsMTAgKzc2LDExIEBACiAgI0tlcmJlcm9zVXNlS3VzZXJv ayB5ZXMKICAKQEAgLTIyOTgsOCArMjI5OSw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9y aWcvc3NoZF9jb25maWcgb3BlbnNzaC05LjlwMS9zc2hkX2NvbmZpZwogICNBbGxvd1RjcEZvcndh cmRpbmcgeWVzCiAgI0dhdGV3YXlQb3J0cyBubwogZGlmZiAtTnVyIG9wZW5zc2gtOS45cDEub3Jp Zy9zc2hkX2NvbmZpZy41IG9wZW5zc2gtOS45cDEvc3NoZF9jb25maWcuNQotLS0tIG9wZW5zc2gt OS45cDEub3JpZy9zc2hkX2NvbmZpZy41CTIwMjYtMDMtMjUgMDk6MzM6NTAuNDY1NTc0MDQ1ICsw MTAwCi0rKysgb3BlbnNzaC05LjlwMS9zc2hkX2NvbmZpZy41CTIwMjYtMDMtMjUgMDk6NTY6MzAu Mjc4NTU1ODE1ICswMTAwCistLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnLjUJMjAy Ni0wOS0yMiAxMToxMTo1OS45MzcyMzA5MjEgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NzaGRf Y29uZmlnLjUJMjAyNi0wOS0yMiAxMToxMjozMi41MjE0Mzk2NDAgKzAyMDAKIEBAIC03MjQsMTUg KzcyNCwzMCBAQAogIHRvIGFsbG93IHRoZSBjbGllbnQgdG8gc2VsZWN0IHRoZSBhZGRyZXNzIHRv IHdoaWNoIHRoZSBmb3J3YXJkaW5nIGlzIGJvdW5kLgogIFRoZSBkZWZhdWx0IGlzCkBAIC0yMzMx LDcgKzIzMzIsNyBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnLjUg b3BlbnNzaC05LjlwMS9zc2hkX2NvbmZpZy41CiArQ3VycmVudGx5IG9ubHkgaW1wbGVtZW50ZWQg Zm9yIHRoZSBHU0kgbWVjaGFuaXNtLgogIC5JdCBDbSBHU1NBUElEZWxlZ2F0ZUNyZWRlbnRpYWxz CiAgQWNjZXB0IGRlbGVnYXRlZCBjcmVkZW50aWFscyBvbiB0aGUgc2VydmVyIHNpZGUuICBUaGUg ZGVmYXVsdCBpcwotIC5DTSB5ZXMgLgorIC5DbSB5ZXMgLgogQEAgLTc0Niw3ICs3NjEsNyBAQAog IFNwZWNpZmllcyB3aGV0aGVyIGtleSBleGNoYW5nZSBiYXNlZCBvbiBHU1NBUEkgaXMgYWxsb3dl ZC4gR1NTQVBJIGtleSBleGNoYW5nZQogIGRvZXNuJ3QgcmVseSBvbiBzc2gga2V5cyB0byB2ZXJp ZnkgaG9zdCBpZGVudGl0eS4KQEAgLTIzNDEsNyArMjM0Miw3IEBAIGRpZmYgLU51ciBvcGVuc3No LTkuOXAxLm9yaWcvc3NoZF9jb25maWcuNSBvcGVuc3NoLTkuOXAxL3NzaGRfY29uZmlnLjUKICAu SXQgQ20gR1NTQVBJU3RyaWN0QWNjZXB0b3JDaGVjawogIERldGVybWluZXMgd2hldGhlciB0byBi ZSBzdHJpY3QgYWJvdXQgdGhlIGlkZW50aXR5IG9mIHRoZSBHU1NBUEkgYWNjZXB0b3IKICBhIGNs aWVudCBhdXRoZW50aWNhdGVzIGFnYWluc3QuCi1AQCAtMjA5Niw2ICsyMTExLDEyIEBACitAQCAt MjA5OCw2ICsyMTEzLDEyIEBACiAgYXMgYSBub24tcm9vdCB1c2VyLgogIFRoZSBkZWZhdWx0IGlz CiAgLkNtIG5vIC4KQEAgLTIzNTUsOCArMjM1Niw4IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAx Lm9yaWcvc3NoZF9jb25maWcuNSBvcGVuc3NoLTkuOXAxL3NzaGRfY29uZmlnLjUKICBPcHRpb25h bGx5IHNwZWNpZmllcyBhZGRpdGlvbmFsIHRleHQgdG8gYXBwZW5kIHRvIHRoZSBTU0ggcHJvdG9j b2wgYmFubmVyCiAgc2VudCBieSB0aGUgc2VydmVyIHVwb24gY29ubmVjdGlvbi4KIGRpZmYgLU51 ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoZF9jb25maWdfcmVkaGF0IG9wZW5zc2gtOS45cDEvc3No ZF9jb25maWdfcmVkaGF0Ci0tLS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnX3JlZGhh dAkyMDI2LTAzLTI1IDA5OjMzOjUwLjI0MjkzNzg2NiArMDEwMAotKysrIG9wZW5zc2gtOS45cDEv c3NoZF9jb25maWdfcmVkaGF0CTIwMjYtMDMtMjUgMDk6MzQ6MzguMTI1NDM1MTE3ICswMTAwCist LS0gb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnX3JlZGhhdAkyMDI2LTA5LTIyIDExOjEx OjU5LjcxMzk5Njg2OCArMDIwMAorKysrIG9wZW5zc2gtOS45cDEvc3NoZF9jb25maWdfcmVkaGF0 CTIwMjYtMDktMjIgMTE6MTI6MzIuNTIxOTU5NDcyICswMjAwCiBAQCAtMiw5ICsyLDYgQEAKICAK ICBDaGFsbGVuZ2VSZXNwb25zZUF1dGhlbnRpY2F0aW9uIG5vCkBAIC0yMzY4LDggKzIzNjksOCBA QCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGRfY29uZmlnX3JlZGhhdCBvcGVuc3No LTkuOXAxL3NzaGRfY29uZmlnX3JlZGhhdAogIAogIFgxMUZvcndhcmRpbmcgeWVzCiBkaWZmIC1O dXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGQtc2Vzc2lvbi5jIG9wZW5zc2gtOS45cDEvc3NoZC1z ZXNzaW9uLmMKLS0tLSBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoZC1zZXNzaW9uLmMJMjAyNi0wMy0y NSAwOTozMzo1MC40NzYzNTY0NTcgKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL3NzaGQtc2Vzc2lv bi5jCTIwMjYtMDMtMjUgMDk6MzQ6MzguMTI2MTY5MTUxICswMTAwCistLS0gb3BlbnNzaC05Ljlw MS5vcmlnL3NzaGQtc2Vzc2lvbi5jCTIwMjYtMDktMjIgMTE6MTE6NTkuOTg5NDg1MjgwICswMjAw CisrKysgb3BlbnNzaC05LjlwMS9zc2hkLXNlc3Npb24uYwkyMDI2LTA5LTIyIDExOjEyOjMyLjUy MjI3NDY0NyArMDIwMAogQEAgLTE0ODYsNyArMTQ4Niw3IEBACiAgI2VuZGlmCiAgCkBAIC0yMzgw LDggKzIzODEsOCBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NzaGQtc2Vzc2lvbi5j IG9wZW5zc2gtOS45cDEvc3NoZC1zZXNzaW9uLmMKICAJCWF1dGhjdHh0LT5rcmI1X3NldF9lbnYg PSBzc2hfZ3NzYXBpX3N0b3JlY3JlZHMoKTsKICAJCXJlc3RvcmVfdWlkKCk7CiBkaWZmIC1OdXIg b3BlbnNzaC05LjlwMS5vcmlnL3NzaC1nc3MuaCBvcGVuc3NoLTkuOXAxL3NzaC1nc3MuaAotLS0t IG9wZW5zc2gtOS45cDEub3JpZy9zc2gtZ3NzLmgJMjAyNi0wMy0yNSAwOTozMzo1MC40NDA3NjE3 OTggKzAxMDAKLSsrKyBvcGVuc3NoLTkuOXAxL3NzaC1nc3MuaAkyMDI2LTAzLTI1IDA5OjM0OjM4 LjEyNjg1MTU3MyArMDEwMAorLS0tIG9wZW5zc2gtOS45cDEub3JpZy9zc2gtZ3NzLmgJMjAyNi0w OS0yMiAxMToxMTo1OS45MTI1MDg3NzYgKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NzaC1nc3Mu aAkyMDI2LTA5LTIyIDExOjEyOjMyLjUyMzE3MTYzMSArMDIwMAogQEAgLTExMCwxMiArMTEwLDE0 IEBACiAgfSBzc2hfZ3NzYXBpX2NjYWNoZTsKICAKQEAgLTI0MTksNyArMjQyMCw3IEBAIGRpZmYg LU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvc3NoLWdzcy5oIG9wZW5zc2gtOS45cDEvc3NoLWdzcy5o CiAgICAgIGNvbnN0IGNoYXIgKik7CiBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3ZlcnNp b24uaCBvcGVuc3NoLTkuOXAxL3ZlcnNpb24uaAogLS0tIG9wZW5zc2gtOS45cDEub3JpZy92ZXJz aW9uLmgJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBvcGVuc3NoLTku OXAxL3ZlcnNpb24uaAkyMDI2LTAzLTI1IDA5OjM0OjM4LjEyNzE5NjM4MCArMDEwMAorKysrIG9w ZW5zc2gtOS45cDEvdmVyc2lvbi5oCTIwMjYtMDktMjIgMTE6MTI6MzIuNTIzNjY5ODY1ICswMjAw CiBAQCAtMiw1ICsyLDE5IEBACiAgCiAgI2RlZmluZSBTU0hfVkVSU0lPTgkiT3BlblNTSF85Ljki CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1zY3AtcmVtb3RlLWdsb2IucGF0Y2ggYi9vcGVu c3NoLTkuOXAxLXNjcC1yZW1vdGUtZ2xvYi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jMDgxMDFlCi0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05LjlwMS1zY3At cmVtb3RlLWdsb2IucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEv c2NwLmMgYi9zY3AuYworLS0tIGEvc2NwLmMJMjAyNi0wNy0xNCAxMTo0MDo0Ny43NTQ2MDA4NDcg KzAyMDAKKysrKyBiL3NjcC5jCTIwMjYtMDctMTQgMTE6NDM6MDQuMDc3NTI0NTE3ICswMjAwCitA QCAtMjA3MCw2ICsyMDcwLDEwIEBAIHRocm91Z2hsb2NhbF9zZnRwKHN0cnVjdCBzZnRwX2Nvbm4g KmZyb20KKyAJCQlnb3RvIG91dDsKKyAJCX0KKyAKKysJCS8qIFNwZWNpYWwgaGFuZGxpbmcgZm9y IHNvdXJjZSBvZiAnLi4nICovCisrCQlpZiAoc3RyY21wKGZpbGVuYW1lLCAiLi4iKSA9PSAwKQor KwkJCWZpbGVuYW1lID0gIi4iOyAvKiBEb3dubG9hZCB0byBkZXN0LCBub3QgZGVzdC8uLiAqLwor KworIAkJaWYgKHRhcmdldGlzZGlyKQorIAkJCWFic19kc3QgPSBzZnRwX3BhdGhfYXBwZW5kKHRh cmdldCwgZmlsZW5hbWUpOworIAkJZWxzZQoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtc3No ZC1uby1kZWxlZ2F0ZS1jcmVkZW50aWFscy5wYXRjaCBiL29wZW5zc2gtOS45cDEtc3NoZC1uby1k ZWxlZ2F0ZS1jcmVkZW50aWFscy5wYXRjaAppbmRleCA1OWQwMTIwLi43MTMyYzliIDEwMDY0NAot LS0gYS9vcGVuc3NoLTkuOXAxLXNzaGQtbm8tZGVsZWdhdGUtY3JlZGVudGlhbHMucGF0Y2gKKysr IGIvb3BlbnNzaC05LjlwMS1zc2hkLW5vLWRlbGVnYXRlLWNyZWRlbnRpYWxzLnBhdGNoCkBAIC0x MTEsNyArMTExLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZF9jb25maWcuNSBiL3NzaGRf Y29uZmlnLjUKICAuQ20geWVzIC4KICsuSXQgQ20gR1NTQVBJRGVsZWdhdGVDcmVkZW50aWFscwog K0FjY2VwdCBkZWxlZ2F0ZWQgY3JlZGVudGlhbHMgb24gdGhlIHNlcnZlciBzaWRlLiAgVGhlIGRl ZmF1bHQgaXMKLSsuQ00geWVzIC4KKysuQ20geWVzIC4KICAuSXQgQ20gR1NTQVBJRW5hYmxlazV1 c2VycwogIFNwZWNpZmllcyB3aGV0aGVyIHRvIGxvb2sgYXQgLms1dXNlcnMgZmlsZSBmb3IgR1NT QVBJIGF1dGhlbnRpY2F0aW9uCiAgYWNjZXNzIGNvbnRyb2wuIEZ1cnRoZXIgZGV0YWlscyBhcmUg ZGVzY3JpYmVkIGluCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1zdXBwb3J0LWF1dGhlbnRp Y2F0aW9uLWluZGljYXRvcnMtaW4tR1NTQVBJLnBhdGNoIGIvb3BlbnNzaC05LjlwMS1zdXBwb3J0 LWF1dGhlbnRpY2F0aW9uLWluZGljYXRvcnMtaW4tR1NTQVBJLnBhdGNoCmluZGV4IDZjNTVhNjYu LmVmNzAzNzkgMTAwNjQ0Ci0tLSBhL29wZW5zc2gtOS45cDEtc3VwcG9ydC1hdXRoZW50aWNhdGlv bi1pbmRpY2F0b3JzLWluLUdTU0FQSS5wYXRjaAorKysgYi9vcGVuc3NoLTkuOXAxLXN1cHBvcnQt YXV0aGVudGljYXRpb24taW5kaWNhdG9ycy1pbi1HU1NBUEkucGF0Y2gKQEAgLTEwLDggKzEwLDgg QEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCiAgCQlB Q19TRUFSQ0hfTElCUyhba19oYXNhZnNdLCBba2Fmc10sIFtBQ19ERUZJTkUoW1VTRV9BRlNdLCBb MV0sCiAgCQkJW0RlZmluZSB0aGlzIGlmIHlvdSB3YW50IHRvIHVzZSBsaWJrYWZzJyBBRlMgc3Vw cG9ydF0pXSkKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2dzcy1zZXJ2LmMgYi9nc3Mtc2Vydi5jCi0t LS0gYS9nc3Mtc2Vydi5jCTIwMjYtMDMtMTAgMTI6NDM6MzYuODAyNDQzMDM0ICswMTAwCi0rKysg Yi9nc3Mtc2Vydi5jCTIwMjYtMDMtMTIgMTA6MDQ6MzcuNTIwOTkzMzMwICswMTAwCistLS0gYS9n c3Mtc2Vydi5jCTIwMjYtMDYtMTYgMTU6Mzg6MjYuNTkwNzI4MjM1ICswMjAwCisrKysgYi9nc3Mt c2Vydi5jCTIwMjYtMDYtMTYgMTU6NDE6MTMuNzE3Njk2MTAzICswMjAwCiBAQCAtNTMsNyArNTMs NyBAQCBleHRlcm4gU2VydmVyT3B0aW9ucyBvcHRpb25zOwogIAogIHN0YXRpYyBzc2hfZ3NzYXBp X2NsaWVudCBnc3NhcGlfY2xpZW50ID0KQEAgLTIxLDcgKzIxLDcgQEAgZGlmZiAtLWNvbG9yIC1y dU5wIGEvZ3NzLXNlcnYuYyBiL2dzcy1zZXJ2LmMKICAKICBzc2hfZ3NzYXBpX21lY2ggZ3NzYXBp X251bGxfbWVjaCA9CiAgICAgIHsgTlVMTCwgTlVMTCwgezAsIE5VTEx9LCBOVUxMLCBOVUxMLCBO VUxMLCBOVUxMLCBOVUxMfTsKLUBAIC0yOTUsNiArMjk1LDk1IEBAIHNzaF9nc3NhcGlfcGFyc2Vf ZW5hbWUoR3NzY3R4dCAqY3R4LCBnc3MKK0BAIC0yOTUsNiArMjk1LDk5IEBAIHNzaF9nc3NhcGlf cGFyc2VfZW5hbWUoR3NzY3R4dCAqY3R4LCBnc3MKICAJcmV0dXJuIEdTU19TX0NPTVBMRVRFOwog IH0KICAKQEAgLTQ0LDYzICs0NCw2NyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi5j IGIvZ3NzLXNlcnYuYwogKwlpbnQgaXNfbWVjaG5hbWUsIGF1dGhlbnRpY2F0ZWQsIGNvbXBsZXRl LCBtb3JlOwogKwlzaXplX3QgY291bnQsIGk7CiArCisrCS8qIGFsd2F5cyBpbml0aWFsaXplIGNs aWVudC0+aW5kaWNhdG9ycyAqLworKwljbGllbnQtPmluZGljYXRvcnMgPSBOVUxMOworKwogKwlj dHgtPm1ham9yID0gZ3NzX2lucXVpcmVfbmFtZSgmY3R4LT5taW5vciwgZ3NzX25hbWUsCiArCQkJ CSAgICAgICZpc19tZWNobmFtZSwgTlVMTCwgJmF0dHJzKTsKLSsJaWYgKGN0eC0+bWFqb3IgIT0g R1NTX1NfQ09NUExFVEUpIHsKLSsJCXJldHVybiAoY3R4LT5tYWpvcik7Ci0rCX0KKysJaWYgKGN0 eC0+bWFqb3IgIT0gR1NTX1NfQ09NUExFVEUpCisrCQlyZXR1cm4gY3R4LT5tYWpvcjsKICsKICsJ aWYgKGF0dHJzID09IEdTU19DX05PX0JVRkZFUl9TRVQpIHsKLSsJCS8qIE5vIGluZGljYXRvcnMg aW4gdGhlIHRpY2tldCAqLwotKwkJcmV0dXJuICgwKTsKKysJCS8qIG5vIGluZGljYXRvcnMgaW4g dGhlIHRpY2tldCAqLworKwkJcmV0dXJuIEdTU19TX0NPTVBMRVRFOwogKwl9CiArCi0rCWNsaWVu dC0+aW5kaWNhdG9ycyA9IE5VTEw7CisrCS8qIGNsaWVudC0+aW5kaWNhdG9ycyBpcyBOVUxMIHRl cm1pbmF0ZWQgKi8KICsJY291bnQgPSAwOworKwljbGllbnQtPmluZGljYXRvcnMgPSB4Y2FsbG9j KGNvdW50ICsgMSwgc2l6ZW9mKGNoYXIgKikpOworKwogKwlmb3IgKGkgPSAwOyBpIDwgYXR0cnMt PmNvdW50OyBpKyspIHsKICsJCWF1dGhlbnRpY2F0ZWQgPSAwOwogKwkJY29tcGxldGUgPSAwOwog KwkJbW9yZSA9IC0xOworKwogKwkJLyogc2tpcCBhbnl0aGluZyBidXQgYXV0aC1pbmRpY2F0b3Jz ICovCiArCQlpZiAoKChzaXplb2YoQVVUSF9JTkRJQ0FUT1JTX1RBRykgLSAxKSAhPSBhdHRycy0+ ZWxlbWVudHNbaV0ubGVuZ3RoKSB8fAotKwkJICAgIG1lbWNtcChBVVRIX0lORElDQVRPUlNfVEFH LAotKwkJCSAgIGF0dHJzLT5lbGVtZW50c1tpXS52YWx1ZSwKKysJCSAgICBtZW1jbXAoQVVUSF9J TkRJQ0FUT1JTX1RBRywgYXR0cnMtPmVsZW1lbnRzW2ldLnZhbHVlLAogKwkJCSAgIHNpemVvZihB VVRIX0lORElDQVRPUlNfVEFHKSAtIDEpICE9IDApCiArCQkJY29udGludWU7CisrCiArCQkvKiBy ZXRyaWV2ZSBhbGwgaW5kaWNhdG9ycyAqLwogKwkJd2hpbGUgKG1vcmUgIT0gMCkgewogKwkJCXZh bHVlLnZhbHVlID0gTlVMTDsKICsJCQlkaXNwbGF5X3ZhbHVlLnZhbHVlID0gTlVMTDsKKysKICsJ CQljdHgtPm1ham9yID0gZ3NzX2dldF9uYW1lX2F0dHJpYnV0ZSgmY3R4LT5taW5vciwgZ3NzX25h bWUsCi0rCQkJCQkJCSAgICAmYXR0cnMtPmVsZW1lbnRzW2ldLCAmYXV0aGVudGljYXRlZCwKLSsJ CQkJCQkJICAgICZjb21wbGV0ZSwgJnZhbHVlLCAmZGlzcGxheV92YWx1ZSwgJm1vcmUpOworKwkJ CQkJCQkgICAgJmF0dHJzLT5lbGVtZW50c1tpXSwKKysJCQkJCQkJICAgICZhdXRoZW50aWNhdGVk LCAmY29tcGxldGUsCisrCQkJCQkJCSAgICAmdmFsdWUsICZkaXNwbGF5X3ZhbHVlLCAmbW9yZSk7 CiArCQkJaWYgKGN0eC0+bWFqb3IgIT0gR1NTX1NfQ09NUExFVEUpCiArCQkJCWdvdG8gb3V0Owog KwotKwkJCWlmICgodmFsdWUudmFsdWUgIT0gTlVMTCkgJiYgYXV0aGVudGljYXRlZCkgewotKwkJ CQlpZiAoY291bnQgPj0gU1NIX0dTU0FQSV9NQVhfSU5ESUNBVE9SUykgewotKwkJCQkJbG9naXQo InNzaF9nc3NhcGlfZ2V0aW5kaWNhdG9yczogdG9vIG1hbnkgIgotKwkJCQkJICAgICJpbmRpY2F0 b3JzLCB0cnVuY2F0aW5nIGF0ICVkIiwKLSsJCQkJCSAgICBTU0hfR1NTQVBJX01BWF9JTkRJQ0FU T1JTKTsKLSsJCQkJCS8qIHZhbHVlL2Rpc3BsYXlfdmFsdWUgcmVsZWFzZWQgYXQgb3V0OiAqLwot KwkJCQkJZ290byBkb25lOwotKwkJCQl9CisrCQkJaWYgKHZhbHVlLnZhbHVlID09IE5VTEwgfHwg IWF1dGhlbnRpY2F0ZWQpCisrCQkJCWNvbnRpbnVlOwogKwotKwkJCQljbGllbnQtPmluZGljYXRv cnMgPSB4cmVjYWxsb2NhcnJheShjbGllbnQtPmluZGljYXRvcnMsIGNvdW50LCBjb3VudCArIDEs IHNpemVvZihjaGFyKikpOwotKwkJCQlpZiAoY2xpZW50LT5pbmRpY2F0b3JzID09IE5VTEwpIHsK LSsJCQkJCWZhdGFsKCJzc2hfZ3NzYXBpX2dldGluZGljYXRvcnMgZmFpbGVkIHRvIGFsbG9jYXRl IG1lbW9yeSIpOwotKwkJCQl9Ci0rCQkJCWNsaWVudC0+aW5kaWNhdG9yc1tjb3VudF0gPSB4bWFs bG9jKHZhbHVlLmxlbmd0aCArIDEpOwotKwkJCQltZW1jcHkoY2xpZW50LT5pbmRpY2F0b3JzW2Nv dW50XSwgdmFsdWUudmFsdWUsIHZhbHVlLmxlbmd0aCk7Ci0rCQkJCWNsaWVudC0+aW5kaWNhdG9y c1tjb3VudF1bdmFsdWUubGVuZ3RoXSA9ICdcMCc7Ci0rCQkJCWNvdW50Kys7CisrCQkJaWYgKGNv dW50ID49IFNTSF9HU1NBUElfTUFYX0lORElDQVRPUlMpIHsKKysJCQkJbG9naXQoInNzaF9nc3Nh cGlfZ2V0aW5kaWNhdG9yczoiCisrCQkJCSAgICAgICIgdG9vIG1hbnkgaW5kaWNhdG9ycywgdHJ1 bmNhdGluZyBhdCAlZCIsCisrCQkJCSAgICAgIFNTSF9HU1NBUElfTUFYX0lORElDQVRPUlMpOwor KwkJCQlnb3RvIG91dDsKICsJCQl9CisrCisrCQkJY2xpZW50LT5pbmRpY2F0b3JzW2NvdW50XSA9 IHhtYWxsb2ModmFsdWUubGVuZ3RoICsgMSk7CisrCQkJbWVtY3B5KGNsaWVudC0+aW5kaWNhdG9y c1tjb3VudF0sIHZhbHVlLnZhbHVlLCB2YWx1ZS5sZW5ndGgpOworKwkJCWNsaWVudC0+aW5kaWNh dG9yc1tjb3VudF1bdmFsdWUubGVuZ3RoXSA9ICdcMCc7CisrCQkJY291bnQrKzsKKysKKysJCQkv KiBhZGQgTlVMTCB0ZXJtaW5hdG9yICovCisrCQkJY2xpZW50LT5pbmRpY2F0b3JzID0geHJlY2Fs bG9jYXJyYXkoY2xpZW50LT5pbmRpY2F0b3JzLCBjb3VudCwKKysJCQkJCQkJICAgIGNvdW50ICsg MSwgc2l6ZW9mKGNoYXIgKikpOwogKwkJfQogKwl9CiArCi0rZG9uZToKLSsJLyogc2xvdCBbY291 bnRdIGlzIHplcm9lZCBieSByZWNhbGxvY2FycmF5LCBzZXJ2ZXMgYXMgTlVMTCBzZW50aW5lbCAq LwotKwogK291dDoKICsJaWYgKGN0eC0+bWFqb3IgIT0gR1NTX1NfQ09NUExFVEUgJiYgY2xpZW50 LT5pbmRpY2F0b3JzICE9IE5VTEwpIHsKICsJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQpA QCAtMTA4LDE2ICsxMTIsMTYgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYuYyBiL2dz cy1zZXJ2LmMKICsJCWZyZWUoY2xpZW50LT5pbmRpY2F0b3JzKTsKICsJCWNsaWVudC0+aW5kaWNh dG9ycyA9IE5VTEw7CiArCX0KLSsJKHZvaWQpIGdzc19yZWxlYXNlX2J1ZmZlcigmY3R4LT5taW5v ciwgJnZhbHVlKTsKLSsJKHZvaWQpIGdzc19yZWxlYXNlX2J1ZmZlcigmY3R4LT5taW5vciwgJmRp c3BsYXlfdmFsdWUpOwotKwkodm9pZCkgZ3NzX3JlbGVhc2VfYnVmZmVyX3NldCgmY3R4LT5taW5v ciwgJmF0dHJzKTsKLSsJcmV0dXJuIChjdHgtPm1ham9yKTsKKysJZ3NzX3JlbGVhc2VfYnVmZmVy KCZjdHgtPm1pbm9yLCAmdmFsdWUpOworKwlnc3NfcmVsZWFzZV9idWZmZXIoJmN0eC0+bWlub3Is ICZkaXNwbGF5X3ZhbHVlKTsKKysJZ3NzX3JlbGVhc2VfYnVmZmVyX3NldCgmY3R4LT5taW5vciwg JmF0dHJzKTsKKysJcmV0dXJuIGN0eC0+bWFqb3I7CiArfQogKwogIC8qIEV4dHJhY3QgdGhlIGNs aWVudCBkZXRhaWxzIGZyb20gYSBnaXZlbiBjb250ZXh0LiBUaGlzIGNhbiBvbmx5IHJlbGlhYmx5 CiAgICogYmUgY2FsbGVkIG9uY2UgZm9yIGEgY29udGV4dCAqLwogIAotQEAgLTM4NCw2ICs0NzMs MTIgQEAgc3NoX2dzc2FwaV9nZXRjbGllbnQoR3NzY3R4dCAqY3R4LCBzc2hfZworQEAgLTM4NCw2 ICs0NzcsMTIgQEAgc3NoX2dzc2FwaV9nZXRjbGllbnQoR3NzY3R4dCAqY3R4LCBzc2hfZwogIAl9 CiAgCiAgCWdzc19yZWxlYXNlX2J1ZmZlcigmY3R4LT5taW5vciwgJmVuYW1lKTsKQEAgLTEzMCw3 ICsxMzQsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi5jIGIvZ3NzLXNlcnYuYwog IAogIAkvKiBXZSBjYW4ndCBjb3B5IHRoaXMgc3RydWN0dXJlLCBzbyB3ZSBqdXN0IG1vdmUgdGhl IHBvaW50ZXIgdG8gaXQgKi8KICAJY2xpZW50LT5jcmVkcyA9IGN0eC0+Y2xpZW50X2NyZWRzOwot QEAgLTQ0Niw2ICs1NDEsNyBAQCBpbnQKK0BAIC00NDYsNiArNTQ1LDcgQEAgaW50CiAgc3NoX2dz c2FwaV91c2Vyb2soY2hhciAqdXNlciwgc3RydWN0IHBhc3N3ZCAqcHcsIGludCBrZXgpCiAgewog IAlPTV91aW50MzIgbG1pbjsKQEAgLTEzOCw3ICsxNDIsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAg YS9nc3Mtc2Vydi5jIGIvZ3NzLXNlcnYuYwogIAogIAkodm9pZCkga2V4OyAvKiB1c2VkIGluIHBy aXZpbGVnZSBzZXBhcmF0aW9uICovCiAgCi1AQCAtNDY0LDggKzU2MCwxNCBAQCBzc2hfZ3NzYXBp X3VzZXJvayhjaGFyICp1c2VyLCBzdHJ1Y3QgcGFzCitAQCAtNDY0LDggKzU2NCwxNCBAQCBzc2hf Z3NzYXBpX3VzZXJvayhjaGFyICp1c2VyLCBzdHJ1Y3QgcGFzCiAgCQkJZ3NzX3JlbGVhc2VfYnVm ZmVyKCZsbWluLCAmZ3NzYXBpX2NsaWVudC5kaXNwbGF5bmFtZSk7CiAgCQkJZ3NzX3JlbGVhc2Vf YnVmZmVyKCZsbWluLCAmZ3NzYXBpX2NsaWVudC5leHBvcnRlZG5hbWUpOwogIAkJCWdzc19yZWxl YXNlX2NyZWQoJmxtaW4sICZnc3NhcGlfY2xpZW50LmNyZWRzKTsKQEAgLTE2Niw3ICsxNzAsNyBA QCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi1rcmI1LmMgYi9nc3Mtc2Vydi1rcmI1LmMK ICAKICAjaW5jbHVkZSAic3NoLWdzcy5oIgogIAotQEAgLTg3LDYgKzg4LDMzIEBAIHNzaF9nc3Nh cGlfa3JiNV9pbml0KHZvaWQpCitAQCAtODcsNiArODgsNDIgQEAgc3NoX2dzc2FwaV9rcmI1X2lu aXQodm9pZCkKICAJcmV0dXJuIDE7CiAgfQogIApAQCAtMTc0LDYgKzE3OCwxMCBAQCBkaWZmIC0t Y29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi1rcmI1LmMgYi9nc3Mtc2Vydi1rcmI1LmMKICsgKiBvbmUg b2YgaW5kaWNhdG9ycyBpbiB0aGUgbGlzdCBvZiBhbGxvd2VkL2RlbmllZCBydWxlcy4KICsgKiBJ biBjYXNlIG9mIHRoZSBtYXRjaCwgYXBwbHkgdGhlIGRlY2lzaW9uIGZyb20gdGhlIHJ1bGUuCiAr ICogSW4gY2FzZSBvZiBubyBpbmRpY2F0b3IgZnJvbSB0aGUgdGlja2V0IG1hdGNoaW5nIHRoZSBy dWxlLCBkZW55CisrICoKKysgKiBSZXR1cm5zIC0xIG9uIGFueSBuZWdhdGl2ZSBtYXRjaAorKyAq IFJldHVybnMgMSBvbiBwb3NpdGl2ZSBtYXRjaCBhbmQgbm8gbmVnYXRpdmUgbWF0Y2hlcworKyAq IFJldHVybnMgMCB3aGVuIG5vIG1hdGNoZXMgb2NjdXJyZWQKICsgKi8KICsKICtzdGF0aWMgaW50 CkBAIC0xODMsMTggKzE5MSwyMyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3Mtc2Vydi1rcmI1 LmMgYi9nc3Mtc2Vydi1rcmI1LmMKICsJdV9pbnQgaTsKICsJKm1hdGNoZWQgPSAtMTsKICsKLSsJ LyogQ2hlY2sgaW5kaWNhdG9ycyAqLwogKwlmb3IgKGkgPSAwOyBjbGllbnQtPmluZGljYXRvcnNb aV0gIT0gTlVMTDsgaSsrKSB7CiArCQlyZXQgPSBtYXRjaF9wYXR0ZXJuX2xpc3QoY2xpZW50LT5p bmRpY2F0b3JzW2ldLAogKwkJCQkJIG9wdGlvbnMuZ3NzX2luZGljYXRvcnMsIDEpOwotKwkJLyog bmVnYXRpdmUgb3IgcG9zaXRpdmUgbWF0Y2ggKi8KLSsJCWlmIChyZXQgIT0gMCkgeworKworKwkJ LyogcmVjb3JkIGZpcnN0IHBvc2l0aXZlIG1hdGNoICovCisrCQlpZiAocmV0ID09IDEgJiYgKm1h dGNoZWQgPT0gLTEpCisrCQkJKm1hdGNoZWQgPSBpOworKworKwkJLyogZGVueSBydWxlIG1hdGNo ZWQsIHJldHVybiBuZWdhdGl2ZSAqLworKwkJaWYgKHJldCA9PSAtMSkgewogKwkJCSptYXRjaGVk ID0gaTsKLSsJCQlyZXR1cm4gcmV0OworKwkJCXJldHVybiAtMTsKICsJCX0KICsJfQotKwkvKiBO byBydWxlIG1hdGNoZWQgKi8KLSsJcmV0dXJuIDA7CisrCS8qIGlmIHRoZXJlIHdhcyBhIG1hdGNo LCBpdCB3YXMgcG9zaXRpdmUsCisrCSAqIG90aGVyd2lzZSBubyBtYXRjaCAqLworKwlyZXR1cm4g Km1hdGNoZWQgIT0gLTE7CiArfQogKwogIC8qIENoZWNrIGlmIHRoaXMgdXNlciBpcyBPSyB0byBs b2dpbi4gVGhpcyBvbmx5IHdvcmtzIHdpdGgga3JiNSAtIG90aGVyCg==