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: Petr Lautrbach To: git-commits@fedoraproject.org Subject: [rpms/policycoreutils] f44: SELinux userspace 3.11 release Date: Fri, 31 Jul 2026 15:50:44 GMT Message-ID: <178551304444.1.17806416138917149995.rpms-policycoreutils-117d3bf1b182@fedoraproject.org> List-ID: X-Git-Repo: rpms/policycoreutils X-Git-Branch: f44 X-Git-Rev: 117d3bf1b1824a64a2e204880c1e7d748f48332b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcG9saWN5Y29yZXV0 aWxzCkJyYW5jaCA6IGY0NApDb21taXQgOiAxMTdkM2JmMWIxODI0YTY0YTJlMjA0ODgwYzFlN2Q3 NDhmNDgzMzJiCkF1dGhvciA6IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4K RGF0ZSAgIDogMjAyNi0wNy0wMVQyMTo1Njo0NSswMjowMApTdGF0cyAgOiArNDkvLTE2ODAgaW4g MjcgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3Bv bGljeWNvcmV1dGlscy9jLzExN2QzYmYxYjE4MjRhNjRhMmUyMDQ4ODBjMWU3ZDc0OGY0ODMzMmI/ YnJhbmNoPWY0NAoKTG9nOgpTRUxpbnV4IHVzZXJzcGFjZSAzLjExIHJlbGVhc2UKCi0tLQpkaWZm IC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggZjI0MWQ4Yi4uMDYxYjljZCAx MDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0zNzAsMyArMzcwLDUg QEAgcG9saWN5Y29yZXV0aWxzLTIuMC44My50Z3oKIC9zZWxpbnV4LTMuMTAtcmMyLnRhci5negog L3NlbGludXgtMy4xMC50YXIuZ3oKIC9zZWxpbnV4LTMuMTAudGFyLmd6LmFzYworL3NlbGludXgt My4xMS50YXIuZ3oKKy9zZWxpbnV4LTMuMTEudGFyLmd6LmFzYwoKZGlmZiAtLWdpdCBhLzAwMDEt RG9uLXQtYmUtdmVyYm9zZS1pZi15b3UtYXJlLW5vdC1vbi1hLXR0eS5wYXRjaCBiLzAwMDEtRG9u LXQtYmUtdmVyYm9zZS1pZi15b3UtYXJlLW5vdC1vbi1hLXR0eS5wYXRjaAppbmRleCBlNWI0NzFh Li43Yzc1YTg3IDEwMDY0NAotLS0gYS8wMDAxLURvbi10LWJlLXZlcmJvc2UtaWYteW91LWFyZS1u b3Qtb24tYS10dHkucGF0Y2gKKysrIGIvMDAwMS1Eb24tdC1iZS12ZXJib3NlLWlmLXlvdS1hcmUt bm90LW9uLWEtdHR5LnBhdGNoCkBAIC0xLDQgKzEsNCBAQAotRnJvbSBhODVhYzA0YjE4ZjgyMDE3 MjkxZmMyMzY2NjIyMzVlMjEzZDYxYWQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBl NTU5Zjk4YTZkNzNhNjIzZmY3MzVjYWI0M2Q0NWI1Yzk4NDAzOTcwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQogRnJvbTogRGFuIFdhbHNoIDxkd2Fsc2hAcmVkaGF0LmNvbT4KIERhdGU6IEZyaSwg MTQgRmViIDIwMTQgMTI6MzI6MTIgLTA1MDAKIFN1YmplY3Q6IFtQQVRDSF0gRG9uJ3QgYmUgdmVy Ym9zZSBpZiB5b3UgYXJlIG5vdCBvbiBhIHR0eQpAQCAtMjEsNSArMjEsNSBAQCBpbmRleCBiN2Nk NzY1YzE1ZTQuLmYyNTE4ZTk2ZTM0YyAxMDA3NTUKICBUSFJFQURTPSIiCiAgUlBNRklMRVM9IiIK IC0tIAotMi41Mi4wCisyLjU0LjAKIAoKZGlmZiAtLWdpdCBhLzAwMDItc2Vwb2xpY3ktZ2VuZXJh dGUtSGFuZGxlLW1vcmUtcmVzZXJ2ZWQtcG9ydC10eXBlcy5wYXRjaCBiLzAwMDItc2Vwb2xpY3kt Z2VuZXJhdGUtSGFuZGxlLW1vcmUtcmVzZXJ2ZWQtcG9ydC10eXBlcy5wYXRjaAppbmRleCA1MGY3 OTUxLi4xMjY3OGZkIDEwMDY0NAotLS0gYS8wMDAyLXNlcG9saWN5LWdlbmVyYXRlLUhhbmRsZS1t b3JlLXJlc2VydmVkLXBvcnQtdHlwZXMucGF0Y2gKKysrIGIvMDAwMi1zZXBvbGljeS1nZW5lcmF0 ZS1IYW5kbGUtbW9yZS1yZXNlcnZlZC1wb3J0LXR5cGVzLnBhdGNoCkBAIC0xLDQgKzEsNCBAQAot RnJvbSAxMzFkODQwMDVlN2QxNGE3NWZiOGViM2Q3NTgwZjNlNDAwMWM0YmMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbSA2YmU5OTI2MzAxN2MxNjlkMGYwYmMxZWQyNDdlMjJhNjk2NTgz YmFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogTWFzYXRha2UgWUFNQVRPIDx5YW1h dG9AcmVkaGF0LmNvbT4KIERhdGU6IFRodSwgMTQgRGVjIDIwMTcgMTU6NTc6NTggKzA5MDAKIFN1 YmplY3Q6IFtQQVRDSF0gc2Vwb2xpY3ktZ2VuZXJhdGU6IEhhbmRsZSBtb3JlIHJlc2VydmVkIHBv cnQgdHlwZXMKQEAgLTUzLDcgKzUzLDcgQEAgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvc2VsaW51 eC8yMDE1MDYxMC4xOTA2MzUuMTg2NjEyNzk1Mjg5MTEyMDkxNS55YW1hdG9AcmVkaGEKICAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiAKIGRpZmYgLS1naXQg YS9weXRob24vc2Vwb2xpY3kvc2Vwb2xpY3kvZ2VuZXJhdGUucHkgYi9weXRob24vc2Vwb2xpY3kv c2Vwb2xpY3kvZ2VuZXJhdGUucHkKLWluZGV4IDc4MGE1NmIyOGVjNC4uY2RlNmE4NDBlNDUyIDEw MDY0NAoraW5kZXggMGVkZGE1NGFkNWExLi4wMmQ5MDY2YzhhNDIgMTAwNjQ0CiAtLS0gYS9weXRo b24vc2Vwb2xpY3kvc2Vwb2xpY3kvZ2VuZXJhdGUucHkKICsrKyBiL3B5dGhvbi9zZXBvbGljeS9z ZXBvbGljeS9nZW5lcmF0ZS5weQogQEAgLTEwMCw3ICsxMDAsOSBAQCBkZWYgZ2V0X2FsbF9wb3J0 cygpOgpAQCAtNjgsNSArNjgsNSBAQCBpbmRleCA3ODBhNTZiMjhlYzQuLmNkZTZhODQwZTQ1MiAx MDA2NDQKICAgICAgICAgIGRpY3RbKHBbJ2xvdyddLCBwWydoaWdoJ10sIHBbJ3Byb3RvY29sJ10p XSA9IChwWyd0eXBlJ10sIHAuZ2V0KCdyYW5nZScpKQogICAgICByZXR1cm4gZGljdAogLS0gCi0y LjUyLjAKKzIuNTQuMAogCgpkaWZmIC0tZ2l0IGEvMDAwMy1zYW5kYm94LVVzZS1tYXRjaGJveC13 aW5kb3ctbWFuYWdlci1pbnN0ZWFkLW9mLW9wZW5iLnBhdGNoIGIvMDAwMy1zYW5kYm94LVVzZS1t YXRjaGJveC13aW5kb3ctbWFuYWdlci1pbnN0ZWFkLW9mLW9wZW5iLnBhdGNoCmluZGV4IDBjMjYw OGYuLjQ4NDIxNjYgMTAwNjQ0Ci0tLSBhLzAwMDMtc2FuZGJveC1Vc2UtbWF0Y2hib3gtd2luZG93 LW1hbmFnZXItaW5zdGVhZC1vZi1vcGVuYi5wYXRjaAorKysgYi8wMDAzLXNhbmRib3gtVXNlLW1h dGNoYm94LXdpbmRvdy1tYW5hZ2VyLWluc3RlYWQtb2Ytb3BlbmIucGF0Y2gKQEAgLTEsNCArMSw0 IEBACi1Gcm9tIDc0MGVmMmU4N2VlMzQ2MTJhYzYyYzYwYTcwZmMxNTVlOGM2OWY2ZmUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDIxMWQ0NGMyZTdiNjI5ZjNhYzA3MzE0N2E0YzMxNDQ5 YmNiZTQ0NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBQZXRyIExhdXRyYmFjaCA8 cGxhdXRyYmFAcmVkaGF0LmNvbT4KIERhdGU6IFdlZCwgMTggSnVsIDIwMTggMDk6MDk6MzUgKzAy MDAKIFN1YmplY3Q6IFtQQVRDSF0gc2FuZGJveDogVXNlIG1hdGNoYm94LXdpbmRvdy1tYW5hZ2Vy IGluc3RlYWQgb2Ygb3BlbmJveApAQCAtMTEsMTAgKzExLDEwIEBAIENvbnRlbnQtdHlwZTogdGV4 dC9wbGFpbgogIDMgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMo LSkKIAogZGlmZiAtLWdpdCBhL3NhbmRib3gvc2FuZGJveCBiL3NhbmRib3gvc2FuZGJveAotaW5k ZXggZTNmZDYxMTllZDRkLi5lMDE0MjVmMGM2MzcgMTAwNjQ0CitpbmRleCA0ZTdkNTZmZGVkZmQu LjVmNzljNTM2N2JkYSAxMDA2NDQKIC0tLSBhL3NhbmRib3gvc2FuZGJveAogKysrIGIvc2FuZGJv eC9zYW5kYm94Ci1AQCAtMjcwLDcgKzI3MCw3IEBAIGNsYXNzIFNhbmRib3g6CitAQCAtMjY2LDcg KzI2Niw3IEBAIGNsYXNzIFNhbmRib3g6CiAgICAgICAgICAgICAgY29weWZpbGUoZiwgIi90bXAi LCBzZWxmLl9fdG1wZGlyKQogICAgICAgICAgICAgIGNvcHlmaWxlKGYsICIvdmFyL3RtcCIsIHNl bGYuX190bXBkaXIpCiAgCkBAIC0yMyw3ICsyMyw3IEBAIGluZGV4IGUzZmQ2MTE5ZWQ0ZC4uZTAx NDI1ZjBjNjM3IDEwMDY0NAogICAgICAgICAgZXhlY2ZpbGUgPSBzZWxmLl9faG9tZWRpciArICIv LnNhbmRib3hyYyIKICAgICAgICAgIGZkID0gb3BlbihleGVjZmlsZSwgIncrIikKICAgICAgICAg IGlmIHNlbGYuX19vcHRpb25zLnNlc3Npb246Ci1AQCAtMzcwLDcgKzM3MCw3IEBAIHNhbmRib3gg Wy1oXSBbLWwgbGV2ZWwgXSBbLVtYfE1dIFstSCBob21lZGlyXSBbLVQgdGVtcGRpcl1dIFstSSBp bmNsdWRlZmlsZSBdIFstCitAQCAtMzY2LDcgKzM2Niw3IEBAIHNhbmRib3ggWy1oXSBbLWwgbGV2 ZWwgXSBbLVtYfE1dIFstSCBob21lZGlyXSBbLVQgdGVtcGRpcl1dIFstSSBpbmNsdWRlZmlsZSBd IFstCiAgCiAgICAgICAgICBwYXJzZXIuYWRkX29wdGlvbigiLVciLCAiLS13aW5kb3dtYW5hZ2Vy IiwgZGVzdD0id20iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ic3RyaW5nIiwK QEAgLTcxLDUgKzcxLDUgQEAgaW5kZXggMjgxNjkxODJjZTQyLi5lMmE3YWQ5YjJhYzcgMTAwNjQ0 CiAgICAgIGlmIFsgLXogIiRXQVlMQU5EX0RJU1BMQVkiIF07IHRoZW4KICAgICAgICAgIERJU1BM QVlfQ09NTUFORD0nL3Vzci9iaW4vWGVwaHlyIC1yZXNpemVhYmxlIC10aXRsZSAiJFRJVExFIiAt dGVybWluYXRlIC1zY3JlZW4gJFNDUkVFTlNJWkUgLWRwaSAkRFBJIC1ub2xpc3RlbiB0Y3AgLWRp c3BsYXlmZCA1IDU+JjEgMj4vZGV2L251bGwnCiAtLSAKLTIuNTIuMAorMi41NC4wCiAKCmRpZmYg LS1naXQgYS8wMDA0LVVzZS1TSEEtMi1pbnN0ZWFkLW9mLVNIQS0xLnBhdGNoIGIvMDAwNC1Vc2Ut U0hBLTItaW5zdGVhZC1vZi1TSEEtMS5wYXRjaAppbmRleCBjM2I1ZmU2Li45MDEzYTczIDEwMDY0 NAotLS0gYS8wMDA0LVVzZS1TSEEtMi1pbnN0ZWFkLW9mLVNIQS0xLnBhdGNoCisrKyBiLzAwMDQt VXNlLVNIQS0yLWluc3RlYWQtb2YtU0hBLTEucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIGRj ZjFiMjgyZDQ1ZDMyNmIyNGVlOGI3MjNlOTQ4NDg2NDc0NDBhZmQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tIGNiYWYxMDQwYzY1NWJkNTQ0ZWVkY2EzYjhlMDcwNzIwZGZjM2IyYmUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBQZXRyIExhdXRyYmFjaCA8cGxhdXRyYmFAcmVk aGF0LmNvbT4KIERhdGU6IEZyaSwgMzAgSnVsIDIwMjEgMTQ6MTQ6MzcgKzAyMDAKIFN1YmplY3Q6 IFtQQVRDSF0gVXNlIFNIQS0yIGluc3RlYWQgb2YgU0hBLTEKQEAgLTEzLDcgKzEzLDcgQEAgVGhl IHVzZSBvZiBTSEEtMSBpbiBSSEVMOSBpcyBkZXByZWNhdGVkCiAgNCBmaWxlcyBjaGFuZ2VkLCAy MCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3BvbGljeWNv cmV1dGlscy9zZXRmaWxlcy9yZXN0b3JlY29uLjggYi9wb2xpY3ljb3JldXRpbHMvc2V0ZmlsZXMv cmVzdG9yZWNvbi44Ci1pbmRleCAxMTM0NDIwZTBlMjguLjc3ZGQwNTQyMWQxMSAxMDA2NDQKK2lu ZGV4IGI3ZmY5NzE1YTQ5Yi4uNjZiOWM4MDBkYzczIDEwMDY0NAogLS0tIGEvcG9saWN5Y29yZXV0 aWxzL3NldGZpbGVzL3Jlc3RvcmVjb24uOAogKysrIGIvcG9saWN5Y29yZXV0aWxzL3NldGZpbGVz L3Jlc3RvcmVjb24uOAogQEAgLTEwMywxNCArMTAzLDE0IEBAIGRpc3BsYXkgdXNhZ2UgaW5mb3Jt YXRpb24gYW5kIGV4aXQuCkBAIC0zNCw3ICszNCw3IEBAIGluZGV4IDExMzQ0MjBlMGUyOC4uNzdk ZDA1NDIxZDExIDEwMDY0NAogIGVuYWJsZSB1c2FnZSBvZiB0aGUKICAuSVIgc2VjdXJpdHkuc2Vo YXNoCiAgZXh0ZW5kZWQgYXR0cmlidXRlLgotQEAgLTIwOCw3ICsyMDgsNyBAQCB0aGUKK0BAIC0y MTEsNyArMjExLDcgQEAgdGhlCiAgLkIgXC1ECiAgb3B0aW9uIHRvCiAgLkIgcmVzdG9yZWNvbgpA QCAtNDMsNyArNDMsNyBAQCBpbmRleCAxMTM0NDIwZTBlMjguLjc3ZGQwNTQyMWQxMSAxMDA2NDQK ICBhdHRyaWJ1dGUgbmFtZWQKICAuSVIgc2VjdXJpdHkuc2VoYXNoCiAgb24gZWFjaCBkaXJlY3Rv cnkgc3BlY2lmaWVkIGluCi1AQCAtMjI1LDcgKzIyNSw3IEBAIGZvciBmdXJ0aGVyIGRldGFpbHMu CitAQCAtMjI4LDcgKzIyOCw3IEBAIGZvciBmdXJ0aGVyIGRldGFpbHMuCiAgLnNwCiAgVGhlCiAg LkIgXC1JCkBAIC05MCw3ICs5MCw3IEBAIGluZGV4IDUxZDEyYTRkYmI4MC4uMDliZmQ4YzQwYWI0 IDEwMDY0NAogIC5JIHNlY3VyaXR5LnNlaGFzaAogIGRpcmVjdG9yeSBkaWdlc3QgZW50cmllcywg YW5kIGlzIHNob3duIGZvciByZWZlcmVuY2Ugb25seSkuCiBkaWZmIC0tZ2l0IGEvcG9saWN5Y29y ZXV0aWxzL3NldGZpbGVzL3Jlc3RvcmVjb25feGF0dHIuYyBiL3BvbGljeWNvcmV1dGlscy9zZXRm aWxlcy9yZXN0b3JlY29uX3hhdHRyLmMKLWluZGV4IDMxZmI4MmZkMjA5OS4uYmMyMmQzZmQ0NTYw IDEwMDY0NAoraW5kZXggZTg2MDRlYzYzYzI5Li43MzgzMTllZGI0YTQgMTAwNjQ0CiAtLS0gYS9w b2xpY3ljb3JldXRpbHMvc2V0ZmlsZXMvcmVzdG9yZWNvbl94YXR0ci5jCiArKysgYi9wb2xpY3lj b3JldXRpbHMvc2V0ZmlsZXMvcmVzdG9yZWNvbl94YXR0ci5jCiBAQCAtMzgsNyArMzgsNyBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCkBAIC0xMDIsNyArMTAyLDcgQEAgaW5kZXgg MzFmYjgyZmQyMDk5Li5iYzIyZDNmZDQ1NjAgMTAwNjQ0CiAgCXVuc2lnbmVkIGNoYXIgKmZjX2Rp Z2VzdCA9IE5VTEw7CiAgCXNpemVfdCBpLCBmY19kaWdlc3RfbGVuID0gMCwgbnVtX3NwZWNmaWxl czsKICAKLUBAIC0xMzMsOCArMTMzLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQorQEAgLTEzNCw4ICsxMzQsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAg CQkJZXhpdCgtMSk7CiAgCQl9CiAgCkBAIC0xMTAsOSArMTEwLDkgQEAgaW5kZXggMzFmYjgyZmQy MDk5Li5iYzIyZDNmZDQ1NjAgMTAwNjQ0CiAtCQlpZiAoIXNoYTFfYnVmKSB7CiArCQlzaGEyNTZf YnVmID0gbWFsbG9jKGZjX2RpZ2VzdF9sZW4gKiAyICsgMSk7CiArCQlpZiAoIXNoYTI1Nl9idWYp IHsKLSAJCQlmcHJpbnRmKHN0ZGVyciwKLSAJCQkJIkVycm9yIGFsbG9jYXRpbmcgZGlnZXN0IGJ1 ZmZlcjogJXNcbiIsCi0gCQkJCQkJCSAgICBzdHJlcnJvcihlcnJubykpOworIAkJCWZwcmludGYo c3RkZXJyLCAiRXJyb3IgYWxsb2NhdGluZyBkaWdlc3QgYnVmZmVyOiAlc1xuIiwKKyAJCQkJc3Ry ZXJyb3IoZXJybm8pKTsKKyAJCQlzZWxhYmVsX2Nsb3NlKGhuZCk7CiBAQCAtMTQzLDE2ICsxNDMs MTYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogIAkJfQogIApAQCAtMTc0LDUg KzE3NCw1IEBAIGluZGV4IGQ0M2U0YWQyMGY1NC4uNDU4ZjNmOWYxNjkzIDEwMDY0NAogIGFuZCBw cm92aWRlZCB0aGUKICAuQiBcLW4KIC0tIAotMi41Mi4wCisyLjU0LjAKIAoKZGlmZiAtLWdpdCBh LzAwMDUtcHl0aG9uLXNlcG9saWN5LUZpeC1zcGVjLWZpbGUtZGVwZW5kZW5jaWVzLnBhdGNoIGIv MDAwNS1weXRob24tc2Vwb2xpY3ktRml4LXNwZWMtZmlsZS1kZXBlbmRlbmNpZXMucGF0Y2gKaW5k ZXggYTM3ZTBiMy4uNTEyOGQ1YiAxMDA2NDQKLS0tIGEvMDAwNS1weXRob24tc2Vwb2xpY3ktRml4 LXNwZWMtZmlsZS1kZXBlbmRlbmNpZXMucGF0Y2gKKysrIGIvMDAwNS1weXRob24tc2Vwb2xpY3kt Rml4LXNwZWMtZmlsZS1kZXBlbmRlbmNpZXMucGF0Y2gKQEAgLTEsNCArMSw0IEBACi1Gcm9tIDQ4 Mzc1OTJiMDRlN2ZjODVhMzA2M2ViMTY5YzNiYjNjN2NlNThjNzMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tIDMzYjkwYjNmMmU3OTA0YzM3MDAzZTUyNWNiMGE1NDU5ZGVhM2RiMzggTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBWaXQgTW9qemlzIDx2bW9qemlzQHJlZGhhdC5j b20+CiBEYXRlOiBUdWUsIDMwIE1heSAyMDIzIDA5OjA3OjI4ICswMjAwCiBTdWJqZWN0OiBbUEFU Q0hdIHB5dGhvbi9zZXBvbGljeTogRml4IHNwZWMgZmlsZSBkZXBlbmRlbmNpZXMKQEAgLTQ0LDUg KzQ0LDUgQEAgaW5kZXggNDMzYzI5OGExN2UwLi5hNmQ0NTA4YmI2NzAgMTAwNjQ0CiAgCiAgbWlk X3NlY3Rpb249IiIiXAogLS0gCi0yLjUyLjAKKzIuNTQuMAogCgpkaWZmIC0tZ2l0IGEvMDAwNi1z ZXBvbGljeS1GaXgtZGV0ZWN0aW9uLW9mLXdyaXRlYWJsZS1sb2NhdGlvbnMucGF0Y2ggYi8wMDA2 LXNlcG9saWN5LUZpeC1kZXRlY3Rpb24tb2Ytd3JpdGVhYmxlLWxvY2F0aW9ucy5wYXRjaAppbmRl eCAyNmEwMDI0Li4xYThjYzljIDEwMDY0NAotLS0gYS8wMDA2LXNlcG9saWN5LUZpeC1kZXRlY3Rp b24tb2Ytd3JpdGVhYmxlLWxvY2F0aW9ucy5wYXRjaAorKysgYi8wMDA2LXNlcG9saWN5LUZpeC1k ZXRlY3Rpb24tb2Ytd3JpdGVhYmxlLWxvY2F0aW9ucy5wYXRjaApAQCAtMSw0ICsxLDQgQEAKLUZy b20gOWYyODExZDI0YTcwNWI2ZmI0YzFjMDMzOWRmZTliZDMwOTA5MjI4YiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb20gYjVkODcxOWZkY2FhN2E3MjA5YmFjYjZlMGQyZjU3ZjBmNDI4NzA2 ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJh Y2hAcmVkaGF0LmNvbT4KIERhdGU6IE1vbiwgNSBNYXkgMjAyNSAxODoyODo0MCArMDIwMAogU3Vi amVjdDogW1BBVENIXSBzZXBvbGljeTogRml4IGRldGVjdGlvbiBvZiB3cml0ZWFibGUgbG9jYXRp b25zCkBAIC0yNiwxNyArMjYsMjAgQEAgRml4ZXM6CiAKIFNpZ25lZC1vZmYtYnk6IFBldHIgTGF1 dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4KIC0tLQotIHB5dGhvbi9zZXBvbGljeS9zZXBv bGljeS9nZW5lcmF0ZS5weSB8IDggKysrKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCA0IGRlbGV0aW9ucygtKQorIHB5dGhvbi9zZXBvbGljeS9zZXBvbGljeS9nZW5lcmF0 ZS5weSB8IDExICsrKystLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL3B5dGhvbi9zZXBvbGljeS9zZXBvbGljeS9n ZW5lcmF0ZS5weSBiL3B5dGhvbi9zZXBvbGljeS9zZXBvbGljeS9nZW5lcmF0ZS5weQotaW5kZXgg Y2RlNmE4NDBlNDUyLi45YjM2MGU5NmM5ZDEgMTAwNjQ0CitpbmRleCAwMmQ5MDY2YzhhNDIuLjli MzYwZTk2YzlkMSAxMDA2NDQKIC0tLSBhL3B5dGhvbi9zZXBvbGljeS9zZXBvbGljeS9nZW5lcmF0 ZS5weQogKysrIGIvcHl0aG9uL3NlcG9saWN5L3NlcG9saWN5L2dlbmVyYXRlLnB5Ci1AQCAtMTMy NCwxNSArMTMyNCwxNSBAQCBhbGxvdyAlc190ICVzX3Q6JXNfc29ja2V0IG5hbWVfJXM7CitAQCAt MTMyNCwxOCArMTMyNCwxNSBAQCBhbGxvdyAlc190ICVzX3Q6JXNfc29ja2V0IG5hbWVfJXM7CiAg ICAgICAgICBpbXBvcnQgZG5mCiAgCiAgICAgICAgICB3aXRoIGRuZi5CYXNlKCkgYXMgYmFzZToK Ky0gICAgICAgICAgICBpZiBiYXNlLmNvbmYuc3Vic3RpdHV0aW9ucy5nZXQoJ3JlbGVhc2V2ZXIn KSBpcyBOb25lOgorLSAgICAgICAgICAgICAgICBiYXNlLmNvbmYuc3Vic3RpdHV0aW9uc1sncmVs ZWFzZXZlciddID0gJycKKy0KICsgICAgICAgICAgICBiYXNlLmNvbmYuc3Vic3RpdHV0aW9ucy51 cGRhdGVfZnJvbV9ldGMoJy8nKQogICAgICAgICAgICAgIGJhc2UucmVhZF9hbGxfcmVwb3MoKQog ICAgICAgICAgICAgIGJhc2UuZmlsbF9zYWNrKGxvYWRfc3lzdGVtX3JlcG89VHJ1ZSkKQEAgLTUy LDcgKzU1LDcgQEAgaW5kZXggY2RlNmE4NDBlNDUyLi45YjM2MGU5NmM5ZDEgMTAwNjQ0CiAgICAg ICAgICAgICAgICAgIHNlbGYucnBtcy5hcHBlbmQocGtnLm5hbWUpCiAgICAgICAgICAgICAgICAg IGZvciBmbmFtZSBpbiBwa2cuZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgICBmb3IgYiBpbiBz ZWxmLkRFRkFVTFRfRElSUzoKLUBAIC0xMzQ1LDcgKzEzNDUsNyBAQCBhbGxvdyAlc190ICVzX3Q6 JXNfc29ja2V0IG5hbWVfJXM7CitAQCAtMTM0OCw3ICsxMzQ1LDcgQEAgYWxsb3cgJXNfdCAlc190 OiVzX3NvY2tldCBuYW1lXyVzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5hZGRfZGlyKGZuYW1lKQogICAgICAgICAgICAgICAgICBzcSA9IHF1ZXJ5LmF2YWlsYWJsZSgp CiAgICAgICAgICAgICAgICAgIHNxID0gc3EuZmlsdGVyKHByb3ZpZGVzPXBrZy5zb3VyY2VfbmFt ZSkKQEAgLTYyLDUgKzY1LDUgQEAgaW5kZXggY2RlNmE4NDBlNDUyLi45YjM2MGU5NmM5ZDEgMTAw NjQ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGIgaW4gc2VsZi5ERUZBVUxUX0RJUlM6 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGIgPT0gIi9ldGMiOgogLS0gCi0yLjUy LjAKKzIuNTQuMAogCgpkaWZmIC0tZ2l0IGEvMDAwNy1yZXN0b3JlY29uZC1BZGQtRi1mb3ItcnVu LWluLWZvcmVncm91bmQucGF0Y2ggYi8wMDA3LXJlc3RvcmVjb25kLUFkZC1GLWZvci1ydW4taW4t Zm9yZWdyb3VuZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODNjN2IyMi4u MDAwMDAwMAotLS0gYS8wMDA3LXJlc3RvcmVjb25kLUFkZC1GLWZvci1ydW4taW4tZm9yZWdyb3Vu ZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLUZyb20gOWY4MDQ3NmM0OGUx ZDBlZTYxMDYxMDJmNjc0NmZjYjBkYTAxNjIxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgMiBB cHIgMjAyNiAxNzoxNzoxMiArMDIwMAotU3ViamVjdDogW1BBVENIXSByZXN0b3JlY29uZDogQWRk IC1GIGZvciBydW4gaW4gZm9yZWdyb3VuZAotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLVNp Z25lZC1vZmYtYnk6IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4KLS0tLQot IHJlc3RvcmVjb25kL3Jlc3RvcmVjb25kLjggfCAgNSArKysrLQotIHJlc3RvcmVjb25kL3Jlc3Rv cmVjb25kLmMgfCAxMyArKysrKysrKy0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcmVzdG9yZWNvbmQvcmVzdG9y ZWNvbmQuOCBiL3Jlc3RvcmVjb25kL3Jlc3RvcmVjb25kLjgKLWluZGV4IGJmOGVjODc1NjJmOC4u YmI5OWIyNGEyZDY5IDEwMDY0NAotLS0tIGEvcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuOAotKysr IGIvcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuOAotQEAgLTMsNyArMyw3IEBACi0gcmVzdG9yZWNv bmQgXC0gZGFlbW9uIHRoYXQgd2F0Y2hlcyBmb3IgZmlsZSBjcmVhdGlvbiBhbmQgdGhlbiBzZXRz IHRoZSBkZWZhdWx0IFNFTGludXggZmlsZSBjb250ZXh0Ci0gCi0gLlNIICJTWU5PUFNJUyIKLS0u QiByZXN0b3JlY29uZCAgW1wtZF0gWy1oXSBbXC1mIHJlc3RvcmVjb25kX2ZpbGUgXSBbXC11XSBb XC12XQotKy5CIHJlc3RvcmVjb25kICBbXC1kXSBbLWhdIFtcLWYgcmVzdG9yZWNvbmRfZmlsZSBd IFtcLUZdIFtcLXVdIFtcLXZdCi0gLlAKLSAKLSAuU0ggIkRFU0NSSVBUSU9OIgotQEAgLTI2LDYg KzI2LDkgQEAgUHJpbnQgdXNhZ2Ugc3RhdGVtZW50LgotIC5CIFwtZiByZXN0b3JlY29uZF9maWxl Ci0gVXNlIGFsdGVybmF0aXZlIHJlc3RvcmVjb25kLmNvbmYgZmlsZS4KLSAuVFAKLSsuQiBcLUYK LStSdW4gaW4gZm9yZWdyb3VuZCwgZG8gbm90IGJlY29tZSBhIGRhZW1vbi4KLSsuVFAKLSAuQiBc LXUKLSBUdXJucyBvbiB1c2VyIG1vZGUuICBSdW5zIHJlc3RvcmVjb25kIGluIHRoZSB1c2VyIHNl c3Npb24gYW5kIHJlYWRzIC9ldGMvc2VsaW51eC9yZXN0b3JlY29uZF91c2VyLmNvbmYuICBVc2Vz IGRidXMgdG8gbWFrZSBzdXJlIG9ubHkgb25lIHJlc3RvcmVjb25kIGlzIHJ1bm5pbmcgcGVyIHVz ZXIgc2Vzc2lvbi4KLSAuVFAKLWRpZmYgLS1naXQgYS9yZXN0b3JlY29uZC9yZXN0b3JlY29uZC5j IGIvcmVzdG9yZWNvbmQvcmVzdG9yZWNvbmQuYwotaW5kZXggZDVmNzBmYzJlMmMxLi4zNmY4MmFl NWU5Y2IgMTAwNjQ0Ci0tLS0gYS9yZXN0b3JlY29uZC9yZXN0b3JlY29uZC5jCi0rKysgYi9yZXN0 b3JlY29uZC9yZXN0b3JlY29uZC5jCi1AQCAtNzYsNiArNzYsNyBAQCBpbnQgZGVidWdfbW9kZSA9 IDA7Ci0gaW50IHRlcm1pbmF0ZSA9IDA7Ci0gaW50IG1hc3Rlcl93ZCA9IC0xOwotIGludCBydW5f YXNfdXNlciA9IDA7Ci0raW50IGZvcmVncm91bmRfbW9kZSA9IDA7Ci0gCi0gc3RhdGljIHZvaWQg ZG9uZSh2b2lkKSB7Ci0gCXdhdGNoX2xpc3RfZnJlZShtYXN0ZXJfZmQpOwotQEAgLTEyNCw3ICsx MjUsNyBAQCBzdGF0aWMgdm9pZCB0ZXJtX2hhbmRsZXIoaW50IHMgX19hdHRyaWJ1dGVfXyAoKHVu dXNlZCkpKQotIAotIHN0YXRpYyB2b2lkIHVzYWdlKGNoYXIgKnByb2dyYW0pCi0gewotLQlwcmlu dGYoIiVzIFstZF0gWy1mIHJlc3RvcmVjb25kX2ZpbGUgXSBbLXVdIFstdl0gXG4iLCBwcm9ncmFt KTsKLSsJcHJpbnRmKCIlcyBbLWRdIFstZiByZXN0b3JlY29uZF9maWxlIF0gWy1GXSBbLW5dIFst dV0gWy12XSBcbiIsIHByb2dyYW0pOwotIH0KLSAKLSB2b2lkIGV4aXRBcHAoY29uc3QgY2hhciAq bXNnKQotQEAgLTE2NSw3ICsxNjYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Ci0gCXNpZ2FjdGlvbihTSUdURVJNLCAmc2EsIE5VTEwpOwotIAotIAlhdGV4aXQoIGRvbmUgKTsK LS0Jd2hpbGUgKChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgImhkZjp1diIpKSA+IDApIHsKLSsJ d2hpbGUgKChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgImhkZjpGdXYiKSkgPiAwKSB7Ci0gCQlz d2l0Y2ggKG9wdCkgewotIAkJY2FzZSAnZCc6Ci0gCQkJZGVidWdfbW9kZSA9IDE7Ci1AQCAtMTcz LDYgKzE3NCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKLSAJCWNhc2UgJ2Yn OgotIAkJCXdhdGNoX2ZpbGUgPSBvcHRhcmc7Ci0gCQkJYnJlYWs7Ci0rCQljYXNlICdGJzoKLSsJ CQlmb3JlZ3JvdW5kX21vZGUgPSAxOwotKwkJCWJyZWFrOwotIAkJY2FzZSAndSc6Ci0gCQkJcnVu X2FzX3VzZXIgPSAxOwotIAkJCWJyZWFrOwotQEAgLTIwOSwxMyArMjEzLDEyIEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKLSAKLSAJcmVhZF9jb25maWcobWFzdGVyX2ZkLCB3YXRj aF9maWxlKTsKLSAKLS0JaWYgKCFkZWJ1Z19tb2RlKSB7Ci0rCWlmICghZGVidWdfbW9kZSAmJiAh Zm9yZWdyb3VuZF9tb2RlKSB7Ci0gCQlpZiAoZGFlbW9uKDAsIDApIDwgMCkKLSAJCQlleGl0QXBw KCJkYWVtb24iKTsKLSsJCXdyaXRlX3BpZF9maWxlKCk7Ci0gCX0KLSAKLS0Jd3JpdGVfcGlkX2Zp bGUoKTsKLS0KLSAJd2hpbGUgKHdhdGNoKG1hc3Rlcl9mZCwgd2F0Y2hfZmlsZSkgPT0gMCkgewot IAl9Ci0gCi0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDAwOC1yZXN0b3JlY29uZC5zZXJ2 aWNlLVVzZS1UeXBlLXNpbXBsZS5wYXRjaCBiLzAwMDgtcmVzdG9yZWNvbmQuc2VydmljZS1Vc2Ut VHlwZS1zaW1wbGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5Y2YyNTAu LjAwMDAwMDAKLS0tIGEvMDAwOC1yZXN0b3JlY29uZC5zZXJ2aWNlLVVzZS1UeXBlLXNpbXBsZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUZyb20gM2YwNGZiMTE3MmM5NGE5 OGU1YTRkYzBlMWY2OTE3MmUzYWNiYzdkNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgMiBBcHIg MjAyNiAxNzoxOTowNSArMDIwMAotU3ViamVjdDogW1BBVENIXSByZXN0b3JlY29uZC5zZXJ2aWNl OiBVc2UgVHlwZT1zaW1wbGUKLUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgotCi1UaGVyZSdzIGEg cmFjZSBjb25kaXRpb24gd2hlbiBkYWVtb24oKSBpbiBwYXJlbnQgcHJvY2VzcyBpbW1lZGlhdGVs eQotZXhpdHMgd2hpbGUgcGlkIGZpbGUgaXMgbm90IGNyZWF0ZWQgb3IgdXBkYXRlZC4gVXNpbmcg VHlwZT1mb3JraW5nIGl0Ci1jYW4gY29uZnVzZSBzeXN0ZW1kIHdoaWNoIHRyaWVzIHRvIG9wZW4g bm9uLWV4aXN0aW5nIHBpZCBmaWxlLiBJdCdzCi1iZXR0ZXIgdG8gcnVuIHJlc3RvY29uZCBpbiBm b3JlZ3JvdW5kIGFuZCB1c2UgVHlwZT1zaW1wbGUKLQotRml4ZXM6Ci0KLSAgICBvcGVuYXQoODA8 L3J1bj4sICJyZXN0b3JlY29uZC5waWQiLCBPX1JET05MWXxPX05PRk9MTE9XfE9fQ0xPRVhFQ3xP X1BBVEgpID0gLTEgRU5PRU5UIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KSA8MC4wMDAwMDY+ Ci0KLVNpZ25lZC1vZmYtYnk6IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4K LS0tLQotIHJlc3RvcmVjb25kL3Jlc3RvcmVjb25kLnNlcnZpY2UgfCA1ICsrLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3Jlc3RvcmVjb25kL3Jlc3RvcmVjb25kLnNlcnZpY2UgYi9yZXN0b3JlY29uZC9yZXN0b3JlY29u ZC5zZXJ2aWNlCi1pbmRleCAwZTRlYTcyZDA4YWUuLjU2Zjk3MDcwN2Q5MyAxMDA2NDQKLS0tLSBh L3Jlc3RvcmVjb25kL3Jlc3RvcmVjb25kLnNlcnZpY2UKLSsrKyBiL3Jlc3RvcmVjb25kL3Jlc3Rv cmVjb25kLnNlcnZpY2UKLUBAIC01LDkgKzUsOCBAQCBDb25kaXRpb25QYXRoRXhpc3RzPS9ldGMv c2VsaW51eC9yZXN0b3JlY29uZC5jb25mCi0gQ29uZGl0aW9uU2VjdXJpdHk9c2VsaW51eAotIAot IFtTZXJ2aWNlXQotLVR5cGU9Zm9ya2luZwotLUV4ZWNTdGFydD0vdXNyL3NiaW4vcmVzdG9yZWNv bmQKLS1QSURGaWxlPS9ydW4vcmVzdG9yZWNvbmQucGlkCi0rVHlwZT1zaW1wbGUKLStFeGVjU3Rh cnQ9L3Vzci9zYmluL3Jlc3RvcmVjb25kIC1GCi0gCi0gW0luc3RhbGxdCi0gV2FudGVkQnk9bXVs dGktdXNlci50YXJnZXQKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDA5LXNldW5zaGFy ZS1ndWFyZC1mYWxsaWJsZS1mdW5jdGlvbi1jYWxscy1ieS1jaGVja2luZy0ucGF0Y2ggYi8wMDA5 LXNldW5zaGFyZS1ndWFyZC1mYWxsaWJsZS1mdW5jdGlvbi1jYWxscy1ieS1jaGVja2luZy0ucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyOGQyYmQuLjAwMDAwMDAKLS0tIGEv MDAwOS1zZXVuc2hhcmUtZ3VhcmQtZmFsbGlibGUtZnVuY3Rpb24tY2FsbHMtYnktY2hlY2tpbmct LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotRnJvbSAwZWRmYzdjZDQyZmRk ZWQ5YzY5NzM3MGQ2OTMyZWVjYWQyYWE3NDQ5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogUmFodWwgU2FuZGh1IDxudnJheG5AcG9zdGVvLnVrPgotRGF0ZTogVHVlLCAxNCBBcHIgMjAy NiAxODo0MDowMCArMDAwMAotU3ViamVjdDogW1BBVENIXSBzZXVuc2hhcmU6IGd1YXJkIGZhbGxp YmxlIGZ1bmN0aW9uIGNhbGxzIGJ5IGNoZWNraW5nIHJldHZhbAotQ29udGVudC10eXBlOiB0ZXh0 L3BsYWluCi0KLXNldW5zaGFyZSBjdXJyZW50bHkgc2VnZmF1bHRzIGlzIHBhc3NlZCAtLWtpbGwg YW5kIGFuIGludmFsaWQgY29udGV4dAotdmlhIC1aLgotCi1TaWduZWQtb2ZmLWJ5OiBSYWh1bCBT YW5kaHUgPG52cmF4bkBwb3N0ZW8udWs+Ci1BY2tlZC1ieTogU3RlcGhlbiBTbWFsbGV5IDxzdGVw aGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci0tLS0KLSBzYW5kYm94L3NldW5zaGFyZS5jIHwg MjYgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJl LmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRleCAyNTEyYTE4YzdiNTIuLmU4OWE5ZmVjZjlm NiAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNoYXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNo YXJlLmMKLUBAIC02NzksOSArNjc5LDE5IEBAIGtpbGxhbGwgKGNvbnN0IGNoYXIgKmV4ZWNjb24p Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAJcGlkcyA9IDA7Ci0tCWNvbnRleHRfdCBjb247Ci0tCWNv biA9IGNvbnRleHRfbmV3KGV4ZWNjb24pOwotLQljb25zdCBjaGFyICptY3MgPSBjb250ZXh0X3Jh bmdlX2dldChjb24pOwotKwljb250ZXh0X3QgY29uID0gY29udGV4dF9uZXcoZXhlY2Nvbik7Ci0r CWlmICghY29uKSB7Ci0rCQlmcmVlKHBpZF90YWJsZSk7Ci0rCQkodm9pZCljbG9zZWRpcihkaXIp OwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCWNvbnN0IGNoYXIgKmNvbnN0IG1jcyA9IGNvbnRleHRf cmFuZ2VfZ2V0KGNvbik7Ci0rCWlmICghbWNzKSB7Ci0rCQljb250ZXh0X2ZyZWUoY29uKTsKLSsJ CWZyZWUocGlkX3RhYmxlKTsKLSsJCSh2b2lkKWNsb3NlZGlyKGRpcik7Ci0rCQlyZXR1cm4gLTE7 Ci0rCX0KLSAJcHJpbnRmKCJtY3M9JXNcbiIsIG1jcyk7Ci0gCXdoaWxlICgoZGUgPSByZWFkZGly IChkaXIpKSAhPSBOVUxMKSB7Ci0gCQlpZiAoIShwaWQgPSAocGlkX3QpYXRvaShkZS0+ZF9uYW1l KSkgfHwgcGlkID09IHNlbGYpCi1AQCAtNzA4LDExICs3MTgsMTMgQEAga2lsbGFsbCAoY29uc3Qg Y2hhciAqZXhlY2NvbikKLSAJCWlmIChnZXRwaWRjb24oaWQsICZzY29uKSA9PSAwKSB7Ci0gCi0g CQkJY29udGV4dF90IHBpZGNvbiA9IGNvbnRleHRfbmV3KHNjb24pOwotLQkJCS8qIEF0dGVtcHQg dG8ga2lsbCByZW1haW5pbmcgcHJvY2Vzc2VzICovCi0tCQkJaWYgKHN0cmNtcChjb250ZXh0X3Jh bmdlX2dldChwaWRjb24pLCBtY3MpID09IDApCi0tCQkJCWtpbGwoaWQsIFNJR0tJTEwpOwotKwkJ CWlmIChwaWRjb24pIHsKLSsJCQkJLyogQXR0ZW1wdCB0byBraWxsIHJlbWFpbmluZyBwcm9jZXNz ZXMgKi8KLSsJCQkJaWYgKHN0cmNtcChjb250ZXh0X3JhbmdlX2dldChwaWRjb24pLCBtY3MpID09 IDApCi0rCQkJCQlraWxsKGlkLCBTSUdLSUxMKTsKLSAKLS0JCQljb250ZXh0X2ZyZWUocGlkY29u KTsKLSsJCQkJY29udGV4dF9mcmVlKHBpZGNvbik7Ci0rCQkJfQotIAkJCWZyZWVjb24oc2Nvbik7 Ci0gCQl9Ci0gCQlydW5uaW5nKys7Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxMC1z YW5kYm94LXNldW5zaGFyZS1wYXNzLU9fTk9GT0xMT1ctdG8tb3BlbmF0LnBhdGNoIGIvMDAxMC1z YW5kYm94LXNldW5zaGFyZS1wYXNzLU9fTk9GT0xMT1ctdG8tb3BlbmF0LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTkxZGVjLi4wMDAwMDAwCi0tLSBhLzAwMTAtc2FuZGJv eC1zZXVuc2hhcmUtcGFzcy1PX05PRk9MTE9XLXRvLW9wZW5hdC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDMwICswLDAgQEAKLUZyb20gOGQyYzczNjBmNTc0OWIzY2NhY2QzNDhjNDk1Mzk5ZjI0 MzE4ZDdiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gU21hbGxleSA8 c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotRGF0ZTogVHVlLCAxMiBNYXkgMjAyNiAx NDozNDowMiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBzYW5kYm94L3NldW5zaGFyZTogcGFzcyBP X05PRk9MTE9XIHRvIG9wZW5hdCgpCi1Db250ZW50LXR5cGU6IHRleHQvcGxhaW4KLQotV2UgZG8g bm90IHdhbnQgdG8gZm9sbG93IHN5bWxpbmtzIGhlcmUuCi0KLUFja2VkLWJ5OiBKYW1lcyBDYXJ0 ZXIgPGp3Y2FydDJAZ21haWwuY29tPgotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBTbWFsbGV5IDxz dGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci0tLS0KLSBzYW5kYm94L3NldW5zaGFyZS5j IHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQot Ci1kaWZmIC0tZ2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMK LWluZGV4IGU4OWE5ZmVjZjlmNi4uYTE5MDBlYWE3NjAwIDEwMDY0NAotLS0tIGEvc2FuZGJveC9z ZXVuc2hhcmUuYwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTQyOCw3ICs0MjgsNyBA QCBzdGF0aWMgYm9vbCBybV9yZihpbnQgdGFyZ2V0ZmQsIGNvbnN0IGNoYXIgKnBhdGgpIHsKLSAJ fQotIAotIAlpZiAoU19JU0RJUihzdGF0YnVmLnN0X21vZGUpKSB7Ci0tCQljb25zdCBpbnQgbmV3 ZmQgPSBvcGVuYXQodGFyZ2V0ZmQsIHBhdGgsIE9fUkRPTkxZIHwgT19ESVJFQ1RPUlkgfCBPX0NM T0VYRUMpOwotKwkJY29uc3QgaW50IG5ld2ZkID0gb3BlbmF0KHRhcmdldGZkLCBwYXRoLCBPX1JE T05MWSB8IE9fRElSRUNUT1JZIHwgT19OT0ZPTExPVyB8IE9fQ0xPRVhFQyk7Ci0gCQlpZiAobmV3 ZmQgPCAwKSB7Ci0gCQkJcGVycm9yKCJvcGVuYXQiKTsKLSAJCQlyZXR1cm4gZmFsc2U7Ci0tLSAK LTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxMS1zYW5kYm94LXNldW5zaGFyZS1zd2l0Y2gtc2V1 bnNoYXJlX21vdW50X2ZpbGUtdG8tdXNlLnBhdGNoIGIvMDAxMS1zYW5kYm94LXNldW5zaGFyZS1z d2l0Y2gtc2V1bnNoYXJlX21vdW50X2ZpbGUtdG8tdXNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBiNDM3MTk1Li4wMDAwMDAwCi0tLSBhLzAwMTEtc2FuZGJveC1zZXVuc2hh cmUtc3dpdGNoLXNldW5zaGFyZV9tb3VudF9maWxlLXRvLXVzZS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDUyICswLDAgQEAKLUZyb20gZTk2NGE1NzRjMmNhOGVjMWJjZDMxNzJkYzE4NWFkYTgw NDRkY2VlZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gU21hbGxleSA8 c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotRGF0ZTogVHVlLCAxMiBNYXkgMjAyNiAx NToyNjozMSAtMDQwMAotU3ViamVjdDogW1BBVENIXSBzYW5kYm94L3NldW5zaGFyZTogc3dpdGNo IHNldW5zaGFyZV9tb3VudF9maWxlKCkgdG8gdXNlCi0gb3BlbigpCi1Db250ZW50LXR5cGU6IHRl eHQvcGxhaW4KLQotc2V1bnNoYXJlX21vdW50X2ZpbGUoKSBjdXJyZW50bHkgdXNlcyBmb3Blbigp IHRvIGNyZWF0ZSB0aGUgZHN0Ci1pZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuIFN3aXRjaCB0 byB1c2luZyBvcGVuKCkgd2l0aAotZXhwbGljaXRseSBzcGVjaWZpZWQgZmxhZ3MgaW5jbHVkaW5n IE9fTk9GT0xMT1cgYW5kIGFuIGV4cGxpY2l0bHkKLXNwZWNpZmllZCBtb2RlIGZvciB0aGUgbmV3 IGZpbGUuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5 LndvcmtAZ21haWwuY29tPgotQWNrZWQtYnk6IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVk aGF0LmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCAxNCArKysrKysrKy0tLS0tLQot IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotaW5kZXgg YTE5MDBlYWE3NjAwLi4xN2E3MjdlNzhiNWYgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3NldW5zaGFy ZS5jCi0rKysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1AQCAtMzA0LDE4ICszMDQsMjAgQEAgc3Rh dGljIGludCBzZXVuc2hhcmVfbW91bnQoY29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICpkc3Qs IHN0cnVjdCBzdGF0ICpzcmNfc3QKLSAgKi8KLSBzdGF0aWMgaW50IHNldW5zaGFyZV9tb3VudF9m aWxlKGNvbnN0IGNoYXIgKnNyYywgY29uc3QgY2hhciAqZHN0KQotIHsKLS0JaW50IGZsYWdzID0g MDsKLS0KLSAJaWYgKHZlcmJvc2UpCi0gCQlwcmludGYoXygiTW91bnRpbmcgJXMgb24gJXNcbiIp LCBzcmMsIGRzdCk7Ci0gCi0gCWlmIChhY2Nlc3MoZHN0LCBGX09LKSA9PSAtMSkgewotLQkJIEZJ TEUgKmZwdHI7Ci0tICAgICAgICAgZnB0ciA9IGZvcGVuKGRzdCwgInciKTsKLS0JCSBmY2xvc2Uo ZnB0cik7Ci0rCQlpbnQgZmQgPSBvcGVuKGRzdCwgT19XUk9OTFkgfCBPX0NSRUFUIHwgT19OT0ZP TExPVyB8IE9fQ0xPRVhFQywgMDYwMCk7Ci0rCQlpZiAoZmQgPCAwKSB7Ci0rCQkJZnByaW50Zihz dGRlcnIsIF8oIkZhaWxlZCB0byBjcmVhdGUgbW91bnQgcG9pbnQgJXM6ICVtXG4iKSwgZHN0KTsK LSsJCQlyZXR1cm4gLTE7Ci0rCQl9Ci0rCQljbG9zZShmZCk7Ci0gCX0KLSsKLSAJLyogbW91bnQg ZmlsZSAqLwotLQlpZiAobW91bnQoc3JjLCBkc3QsIE5VTEwsIE1TX0JJTkQgfCBmbGFncywgTlVM TCkgPCAwKSB7Ci0rCWlmIChtb3VudChzcmMsIGRzdCwgTlVMTCwgTVNfQklORCwgTlVMTCkgPCAw KSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIG1vdW50ICVzIG9uICVzOiAlc1xu IiksIHNyYywgZHN0LCBzdHJlcnJvcihlcnJubykpOwotIAkJcmV0dXJuIC0xOwotIAl9Ci0tLSAK LTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxMi1zYW5kYm94LXNldW5zaGFyZS1maXgtZXJyb3It Y2hlY2tpbmctZm9yLXNldGZzdWlkLnBhdGNoIGIvMDAxMi1zYW5kYm94LXNldW5zaGFyZS1maXgt ZXJyb3ItY2hlY2tpbmctZm9yLXNldGZzdWlkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMmQ5M2UwLi4wMDAwMDAwCi0tLSBhLzAwMTItc2FuZGJveC1zZXVuc2hhcmUtZml4 LWVycm9yLWNoZWNraW5nLWZvci1zZXRmc3VpZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMz ICswLDAgQEAKLUZyb20gOWM1MzIwYzZkNGExZWI5MWI1N2U0ZTEyNzM3ODgyZWYxMzFjMmZhYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5z bWFsbGV5LndvcmtAZ21haWwuY29tPgotRGF0ZTogVHVlLCAxMiBNYXkgMjAyNiAxNTozNTo1MyAt MDQwMAotU3ViamVjdDogW1BBVENIXSBzYW5kYm94L3NldW5zaGFyZTogZml4IGVycm9yIGNoZWNr aW5nIGZvciBzZXRmc3VpZCgpCi1Db250ZW50LXR5cGU6IHRleHQvcGxhaW4KLQotc2V0ZnN1aWQo KSBkb2Vzbid0IHJlbGlhYmx5IHNldCBlcnJubyBvciByZXR1cm4gYW55dGhpbmcgaW5kaWNhdGlu ZwotYW4gZXJyb3IuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5z bWFsbGV5LndvcmtAZ21haWwuY29tPgotQWNrZWQtYnk6IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJh Y2hAcmVkaGF0LmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCA0ICsrLS0KLSAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLWluZGV4IDE3YTcy N2U3OGI1Zi4uYjljODViZjIwZjg1IDEwMDY0NAotLS0tIGEvc2FuZGJveC9zZXVuc2hhcmUuYwot KysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTg1OCw4ICs4NTgsOCBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJLyogQ2hhbmdpbmcgZnN1aWQgaXMgdXN1YWxseSBy ZXF1aXJlZCB3aGVuIHVzZXItc3BlY2lmaWVkIGRpcmVjdG9yeSBpcwotIAkgKiBvbiBhbiBORlMg bW91bnQuICBJdCdzIGFsc28gZGVzaXJlZCB0byBhdm9pZCBsZWFraW5nIGluZm8gYWJvdXQKLSAJ ICogZXhpc3RlbmNlIG9mIHRoZSBmaWxlcyBub3QgYWNjZXNzaWJsZSB0byB0aGUgdXNlci4gKi8K LS0JaWYgKCgodWlkX3Qpc2V0ZnN1aWQodWlkKSAhPSAwKSAgICYmIChlcnJubyAhPSAwKSkgewot LQkJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiB1bmFibGUgdG8gc2V0ZnN1aWQgJW1cbiIpKTsK LSsJaWYgKCh1aWRfdClzZXRmc3VpZCh1aWQpICE9IDApIHsKLSsJCWZwcmludGYoc3RkZXJyLCBf KCJFcnJvcjogdW5hYmxlIHRvIHNldGZzdWlkXG4iKSk7Ci0gCi0gCQlyZXR1cm4gLTE7Ci0gCX0K LS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDEzLXNhbmRib3gtc2V1bnNoYXJlLXJlbW91 bnQtdG1wLWFuZC12YXItdG1wLXdpdGgtdGhlLXAucGF0Y2ggYi8wMDEzLXNhbmRib3gtc2V1bnNo YXJlLXJlbW91bnQtdG1wLWFuZC12YXItdG1wLXdpdGgtdGhlLXAucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGFkZTdmMzAuLjAwMDAwMDAKLS0tIGEvMDAxMy1zYW5kYm94LXNl dW5zaGFyZS1yZW1vdW50LXRtcC1hbmQtdmFyLXRtcC13aXRoLXRoZS1wLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsODYgKzAsMCBAQAotRnJvbSBmNzg3MDhlYTVkNmQzZDZkYTRmYTIwNTI3YjQ1 OWZhNTUwNzVkOGE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhlbiBTbWFs bGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDEyIE1heSAy MDI2IDE2OjA2OjA1IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRib3gvc2V1bnNoYXJlOiBy ZW1vdW50IC90bXAgYW5kIC92YXIvdG1wIHdpdGggdGhlIHByb3BlcgotIGZsYWdzCi1Db250ZW50 LXR5cGU6IHRleHQvcGxhaW4KLQotbW91bnQoMikgd2l0aCBNU19CSU5EIGlnbm9yZXMgYW55IG5v c3VpZC9ub2Rldi9ub2V4ZWMgZmxhZ3MsIHNvCi1zZXVuc2hhcmVfbW91bnQoKSB3YXMgbmV2ZXIg c2V0dGluZyB0aG9zZSBvbiB0aGUgL3RtcCBhbmQKLS92YXIvdG1wIG1vdW50cy4gRml4IHNldW5z aGFyZV9tb3VudCgpIHRvIHJlbW91bnQgdGhlbQotd2l0aCB0aG9zZSBmbGFncyBhZnRlciB0aGUg YmluZCBtb3VudCwgd2hpY2ggZG9lcwotc2V0IHRoZW0gcHJvcGVybHkuCi0KLVRlc3Q6Ci1ta2Rp ciB0bXAKLXNldW5zaGFyZSAtdCB0bXAgL2Jpbi9iYXNoCi1jcCAvYmluL2Jhc2ggL3RtcAotL3Rt cC9iYXNoCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5 LndvcmtAZ21haWwuY29tPgotQWNrZWQtYnk6IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVk aGF0LmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCAyMSArKysrKysrKysrKysrKysr LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5j Ci1pbmRleCBiOWM4NWJmMjBmODUuLjk4NWUwY2ZiYTE5OSAxMDA2NDQKLS0tLSBhL3NhbmRib3gv c2V1bnNoYXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC0yNjAsMjYgKzI2MCwz MiBAQCBzdGF0aWMgaW50IHZlcmlmeV9zaGVsbChjb25zdCBjaGFyICpzaGVsbF9uYW1lKQotICAq LwotIHN0YXRpYyBpbnQgc2V1bnNoYXJlX21vdW50KGNvbnN0IGNoYXIgKnNyYywgY29uc3QgY2hh ciAqZHN0LCBzdHJ1Y3Qgc3RhdCAqc3JjX3N0KQotIHsKLS0JaW50IGZsYWdzID0gMDsKLSsJaW50 IGJpbmRfZmxhZ3MgPSBNU19CSU5EOwotKwlpbnQgc2VjX2ZsYWdzID0gMDsKLSAJaW50IGlzX3Rt cCA9IDA7Ci0gCi0gCWlmICh2ZXJib3NlKQotIAkJcHJpbnRmKF8oIk1vdW50aW5nICVzIG9uICVz XG4iKSwgc3JjLCBkc3QpOwotIAotIAlpZiAoc3RyY21wKCIvdG1wIiwgZHN0KSA9PSAwKSB7Ci0t CQlmbGFncyA9IGZsYWdzIHwgTVNfTk9ERVYgfCBNU19OT1NVSUQgfCBNU19OT0VYRUM7Ci0rCQlz ZWNfZmxhZ3MgPSBNU19OT0RFViB8IE1TX05PU1VJRCB8IE1TX05PRVhFQzsKLSAJCWlzX3RtcCA9 IDE7Ci0gCX0KLSAKLSAJaWYgKHN0cm5jbXAoIi9ydW4vdXNlciIsIGRzdCwgOSkgPT0gMCkgewot LQkJZmxhZ3MgPSBmbGFncyB8IE1TX1JFQzsKLSsJCWJpbmRfZmxhZ3MgfD0gTVNfUkVDOwotIAl9 Ci0gCi0gCS8qIG1vdW50IGRpcmVjdG9yeSAqLwotLQlpZiAobW91bnQoc3JjLCBkc3QsIE5VTEws IE1TX0JJTkQgfCBmbGFncywgTlVMTCkgPCAwKSB7Ci0rCWlmIChtb3VudChzcmMsIGRzdCwgTlVM TCwgYmluZF9mbGFncywgTlVMTCkgPCAwKSB7Ci0gCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVk IHRvIG1vdW50ICVzIG9uICVzOiAlc1xuIiksIHNyYywgZHN0LCBzdHJlcnJvcihlcnJubykpOwot IAkJcmV0dXJuIC0xOwotIAl9Ci0rCS8qIHJlbW91bnQgd2l0aCBzZWN1cml0eSBmbGFncywgaWdu b3JlZCBvbiBvcmlnaW5hbCBiaW5kIG1vdW50ICovCi0rCWlmIChzZWNfZmxhZ3MgJiYgbW91bnQo TlVMTCwgZHN0LCBOVUxMLCBNU19CSU5EIHwgTVNfUkVNT1VOVCB8IHNlY19mbGFncywgTlVMTCkg PCAwKSB7Ci0rCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIHJlbW91bnQgJXM6ICVtXG4i KSwgZHN0KTsKLSsJCXJldHVybiAtMTsKLSsJfQotIAotIAkvKiB2ZXJpZnkgd2hldGhlciB3ZSBt b3VudGVkIHdoYXQgd2UgZXhwZWN0ZWQgdG8gbW91bnQgKi8KLSAJaWYgKHZlcmlmeV9kaXJlY3Rv cnkoZHN0LCBzcmNfc3QsIE5VTEwpIDwgMCkgcmV0dXJuIC0xOwotQEAgLTI4OSwxMCArMjk1LDE1 IEBAIHN0YXRpYyBpbnQgc2V1bnNoYXJlX21vdW50KGNvbnN0IGNoYXIgKnNyYywgY29uc3QgY2hh ciAqZHN0LCBzdHJ1Y3Qgc3RhdCAqc3JjX3N0Ci0gCQlpZiAodmVyYm9zZSkKLSAJCQlwcmludGYo XygiTW91bnRpbmcgL3RtcCBvbiAvdmFyL3RtcFxuIikpOwotIAotLQkJaWYgKG1vdW50KCIvdG1w IiwgIi92YXIvdG1wIiwgIE5VTEwsIE1TX0JJTkQgfCBmbGFncywgTlVMTCkgPCAwKSB7Ci0rCQlp ZiAobW91bnQoIi90bXAiLCAiL3Zhci90bXAiLCAgTlVMTCwgTVNfQklORCwgTlVMTCkgPCAwKSB7 Ci0gCQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBtb3VudCAvdG1wIG9uIC92YXIvdG1w OiAlc1xuIiksIHN0cmVycm9yKGVycm5vKSk7Ci0gCQkJcmV0dXJuIC0xOwotIAkJfQotKwkJLyog cmVtb3VudCB3aXRoIHNlY3VyaXR5IGZsYWdzLCBpZ25vcmVkIG9uIG9yaWdpbmFsIGJpbmQgbW91 bnQgKi8KLSsJCWlmIChtb3VudChOVUxMLCAiL3Zhci90bXAiLCBOVUxMLCBNU19CSU5EIHwgTVNf UkVNT1VOVCB8IHNlY19mbGFncywgTlVMTCkgPCAwKSB7Ci0rCQkJZnByaW50ZihzdGRlcnIsIF8o IkZhaWxlZCB0byByZW1vdW50IC92YXIvdG1wOiAlbVxuIikpOwotKwkJCXJldHVybiAtMTsKLSsJ CX0KLSAJfQotIAotIAlyZXR1cm4gMDsKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDE0 LXNhbmRib3gtc2V1bnNoYXJlLXByZXZlbnQtcnN5bmMtZnJvbS1pbnRlcnByZXRpbmctcGEucGF0 Y2ggYi8wMDE0LXNhbmRib3gtc2V1bnNoYXJlLXByZXZlbnQtcnN5bmMtZnJvbS1pbnRlcnByZXRp bmctcGEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmZmI3MzYuLjAwMDAw MDAKLS0tIGEvMDAxNC1zYW5kYm94LXNldW5zaGFyZS1wcmV2ZW50LXJzeW5jLWZyb20taW50ZXJw cmV0aW5nLXBhLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotRnJvbSBkZDYy MGU4YWY0NGUxY2I1OWQ3MDgzN2U4MGE1ZDU1YThkM2U3ODlmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5j b20+Ci1EYXRlOiBXZWQsIDEzIE1heSAyMDI2IDA5OjQ3OjUwIC0wNDAwCi1TdWJqZWN0OiBbUEFU Q0hdIHNhbmRib3gvc2V1bnNoYXJlOiBwcmV2ZW50IHJzeW5jIGZyb20gaW50ZXJwcmV0aW5nIHBh dGhzIGFzCi0gb3B0aW9ucwotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLUluc2VydCBhICIt LSIgYWZ0ZXIgYWxsIGxlZ2l0aW1hdGUgb3B0aW9ucyBiZWZvcmUgYW55IGdsb2Igb3IKLXBhdGhu YW1lcyB0byBwcmV2ZW50IHJzeW5jIGZyb20gaW50ZXJwcmV0aW5nIHRoZW0gYXMgb3B0aW9ucy4K LQotU2lnbmVkLW9mZi1ieTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0Bn bWFpbC5jb20+Ci0tLS0KLSBzYW5kYm94L3NldW5zaGFyZS5jIHwgMTYgKysrKysrKysrLS0tLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotaW5k ZXggOTg1ZTBjZmJhMTk5Li5hNDhjODgwMzYwODggMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3NldW5z aGFyZS5jCi0rKysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1AQCAtMzkxLDggKzM5MSw4IEBAIHN0 YXRpYyBpbnQgcnN5bmNjbWQoY29uc3QgY2hhciAqIHNyYywgY29uc3QgY2hhciAqZHN0LCBjaGFy ICoqKmNtZCkgewotIAotIAlmcmVlKGJ1Zik7IGJ1ZiA9IE5VTEw7Ci0gCi0tCS8qIHJzeW5jICAt dHJsSERxICsgPGdsb2IgbGlzdD4gKyBkc3QgKyBOVUxMICovCi0tCSpjbWQgPSBjYWxsb2MoMiAr IGZnbG9iLmdsX3BhdGhjICsgMiwgc2l6ZW9mKGNoYXIgKikpOwotKwkvKiByc3luYyAtdHJsSERx IC0tIDxnbG9iIGxpc3Q+IGRzdCBOVUxMICovCi0rCSpjbWQgPSBjYWxsb2MoMyArIGZnbG9iLmds X3BhdGhjICsgMiwgc2l6ZW9mKGNoYXIgKikpOwotIAlpZiAoISAqY21kKSB7Ci0gCQlmcHJpbnRm KHN0ZGVyciwgXygiT3V0IG9mIG1lbW9yeVxuIikpOwotIAkJcmV0dXJuIC0xOwotQEAgLTQwMSw4 ICs0MDEsOSBAQCBzdGF0aWMgaW50IHJzeW5jY21kKGNvbnN0IGNoYXIgKiBzcmMsIGNvbnN0IGNo YXIgKmRzdCwgY2hhciAqKipjbWQpIHsKLSAJYXJncyA9ICpjbWQ7Ci0gCXN0cmR1cF9vcl9lcnIo YXJncywgMCwgIi91c3IvYmluL3JzeW5jIik7Ci0gCXN0cmR1cF9vcl9lcnIoYXJncywgMSwgIi10 cmxIRHEiKTsKLSsJc3RyZHVwX29yX2VycihhcmdzLCAyLCAiLS0iKTsKLSAKLS0JZm9yICggaT0w LCBpbmRleCA9IDI7IGkgPCBmZ2xvYi5nbF9wYXRoYzsgaSsrKSB7Ci0rCWZvciAoIGk9MCwgaW5k ZXggPSAzOyBpIDwgZmdsb2IuZ2xfcGF0aGM7IGkrKykgewotIAkJY29uc3QgY2hhciAqcGF0aCA9 IGZnbG9iLmdsX3BhdGh2W2ldOwotIAkJaWYgKGJhZF9wYXRoKHBhdGgpKSBjb250aW51ZTsKLSAJ CXN0cmR1cF9vcl9lcnIoYXJncywgaW5kZXgsIHBhdGgpOwotQEAgLTQ5NSw3ICs0OTYsNyBAQCBz dGF0aWMgaW50IGNsZWFudXBfdG1wZGlyKGNvbnN0IGNoYXIgKnRtcGRpciwgY29uc3QgY2hhciAq c3JjLAotIAotIAkvKiByc3luYyBmaWxlcyBiYWNrICovCi0gCWlmIChjb3B5X2NvbnRlbnQpIHsK LS0JCWFyZ3MgPSBjYWxsb2MoNywgc2l6ZW9mKGNoYXIgKikpOwotKwkJYXJncyA9IGNhbGxvYyg4 LCBzaXplb2YoY2hhciAqKSk7Ci0gCQlpZiAoISBhcmdzKSB7Ci0gCQkJZnByaW50ZihzdGRlcnIs IF8oIk91dCBvZiBtZW1vcnlcbiIpKTsKLSAJCQlyZXR1cm4gMTsKLUBAIC01MDUsMTcgKzUwNiwx OCBAQCBzdGF0aWMgaW50IGNsZWFudXBfdG1wZGlyKGNvbnN0IGNoYXIgKnRtcGRpciwgY29uc3Qg Y2hhciAqc3JjLAotIAkJc3RyZHVwX29yX2VycihhcmdzLCAxLCAiLS1leGNsdWRlPS5YMTEtdW5p eCIpOwotIAkJc3RyZHVwX29yX2VycihhcmdzLCAyLCAiLXV0cmxIRHEiKTsKLSAJCXN0cmR1cF9v cl9lcnIoYXJncywgMywgIi0tZGVsZXRlIik7Ci0tCQlpZiAoYXNwcmludGYoJmFyZ3NbNF0sICIl cy8iLCB0bXBkaXIpID09IC0xKSB7Ci0rCQlzdHJkdXBfb3JfZXJyKGFyZ3MsIDQsICItLSIpOwot KwkJaWYgKGFzcHJpbnRmKCZhcmdzWzVdLCAiJXMvIiwgdG1wZGlyKSA9PSAtMSkgewotIAkJCWZw cmludGYoc3RkZXJyLCBfKCJPdXQgb2YgbWVtb3J5XG4iKSk7Ci0gCQkJZnJlZV9hcmdzKGFyZ3Mp OwotIAkJCXJldHVybiAxOwotIAkJfQotLQkJaWYgKGFzcHJpbnRmKCZhcmdzWzVdLCAiJXMvIiwg c3JjKSA9PSAtMSkgewotKwkJaWYgKGFzcHJpbnRmKCZhcmdzWzZdLCAiJXMvIiwgc3JjKSA9PSAt MSkgewotIAkJCWZwcmludGYoc3RkZXJyLCBfKCJPdXQgb2YgbWVtb3J5XG4iKSk7Ci0gCQkJZnJl ZV9hcmdzKGFyZ3MpOwotIAkJCXJldHVybiAxOwotIAkJfQotLQkJYXJnc1s2XSA9IE5VTEw7Ci0r CQlhcmdzWzddID0gTlVMTDsKLSAKLSAJCWlmIChzcGF3bl9jb21tYW5kKGFyZ3MsIHB3ZC0+cHdf dWlkKSAhPSAwKSB7Ci0gCQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBjb3B5IGZpbGVz IGZyb20gdGhlIHJ1bnRpbWUgdGVtcG9yYXJ5IGRpcmVjdG9yeVxuIikpOwotLS0gCi0yLjU0LjAK LQoKZGlmZiAtLWdpdCBhLzAwMTUtc2FuZGJveC1zZXVuc2hhcmUtZml4LWdldG9wdC1mbGFncy5w YXRjaCBiLzAwMTUtc2FuZGJveC1zZXVuc2hhcmUtZml4LWdldG9wdC1mbGFncy5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNlNWEyMy4uMDAwMDAwMAotLS0gYS8wMDE1LXNh bmRib3gtc2V1bnNoYXJlLWZpeC1nZXRvcHQtZmxhZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw0NCArMCwwIEBACi1Gcm9tIDljMjk2NTNkYzZiMGY0ZTlhNzRjZDExOWQ2MGE4NGVkOGM0YTZl YzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBo ZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTMgTWF5IDIwMjYgMDk6NTk6 MDggLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gc2FuZGJveC9zZXVuc2hhcmU6IGZpeCBnZXRvcHQg ZmxhZ3MKLUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgotCi0taywgLXYsIGFuZCAtQyBkbyBOT1Qg YWNjZXB0IGFuIGFyZ3VtZW50LCBhbmQgdGhlIG9wdHN0cmluZwotd2FzIG5vdCBjb3JyZWN0Lgot Ci1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdt YWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCA4ICsrKystLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRleCBhNDhjODgw MzYwODguLjBkZmM1Y2IyYjgyMCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNoYXJlLmMKLSsr KyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC03NzYsMTAgKzc3NiwxMCBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJCXsiaG9tZWRpciIsIDEsIDAsICdoJ30sCi0gCQl7 InRtcGRpciIsIDEsIDAsICd0J30sCi0gCQl7InJ1bnVzZXJkaXIiLCAxLCAwLCAncid9LAotLQkJ eyJraWxsIiwgMSwgMCwgJ2snfSwKLS0JCXsidmVyYm9zZSIsIDEsIDAsICd2J30sCi0rCQl7Imtp bGwiLCAwLCAwLCAnayd9LAotKwkJeyJ2ZXJib3NlIiwgMCwgMCwgJ3YnfSwKLSAJCXsiY29udGV4 dCIsIDEsIDAsICdaJ30sCi0tCQl7ImNhcGFiaWxpdGllcyIsIDEsIDAsICdDJ30sCi0rCQl7ImNh cGFiaWxpdGllcyIsIDAsIDAsICdDJ30sCi0gCQl7IndheWxhbmQiLCAxLCAwLCAnVyd9LAotIAkJ eyJwaXBld2lyZSIsIDEsIDAsICdQJ30sCi0gCQl7TlVMTCwgMCwgMCwgMH0KLUBAIC04MTEsNyAr ODExLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCX0KLSAKLSAJd2hp bGUgKDEpIHsKLS0JCWNsZmxhZyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJDY3ZoOnI6dDpX Olo6IiwgbG9uZ19vcHRpb25zLCBOVUxMKTsKLSsJCWNsZmxhZyA9IGdldG9wdF9sb25nKGFyZ2Ms IGFyZ3YsICJDa3ZoOnI6dDpXOlA6WjoiLCBsb25nX29wdGlvbnMsIE5VTEwpOwotIAkJaWYgKGNs ZmxhZyA9PSAtMSkKLSAJCQlicmVhazsKLSAKLS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8w MDE2LXNhbmRib3gtc2V1bnNoYXJlLXByZXZlbnQtcGF0aC10cmF2ZXJzYWwtdmlhLVctUC5wYXRj aCBiLzAwMTYtc2FuZGJveC1zZXVuc2hhcmUtcHJldmVudC1wYXRoLXRyYXZlcnNhbC12aWEtVy1Q LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGM2YTcyLi4wMDAwMDAwCi0t LSBhLzAwMTYtc2FuZGJveC1zZXVuc2hhcmUtcHJldmVudC1wYXRoLXRyYXZlcnNhbC12aWEtVy1Q LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotRnJvbSA1ZGE0ZDkwNDgwMTY0 YzEzYTViYzhmOGM4MjBlNzAxNzkwNDk5ZWNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRl OiBXZWQsIDEzIE1heSAyMDI2IDEwOjEzOjE3IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRi b3gvc2V1bnNoYXJlOiBwcmV2ZW50IHBhdGggdHJhdmVyc2FsIHZpYSAtVy8tUAotQ29udGVudC10 eXBlOiB0ZXh0L3BsYWluCi0KLVRoZSAtVy8tUCBvcHRpb25zIHNwZWNpZnkgdGhlIHdheWxhbmQg b3IgcGlwZXdpcmUgc29ja2V0IG5hbWUgcmVzcGVjdGl2ZWx5LgotVGhlIG9wdGlvbiBhcmd1bWVu dCBpcyB0aGVuIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBydW51c2VyZGlyIHRvIGNyZWF0ZQotYSBw YXRobmFtZS4gV2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBpdCB0byBiZSB1c2VkIHRvIGNvbnN0cnVj dCBhcmJpdHJhcnkKLXBhdGhzIG91dHNpZGUgb2YgdGhlIHJ1bnVzZXJkaXIuIEFsc28sIGNoZWNr IGFuZCBoYW5kbGUKLWVycm9ycyB3aGVuIGJpbmQgbW91bnRpbmcgdGhlIHBpcGV3aXJlIHNvY2tl dCBmaWxlLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxl eS53b3JrQGdtYWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCA5ICsrKysrKysr LQotIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlm ZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRl eCAwZGZjNWNiMmI4MjAuLjk0NWEzYjIxYzFjYyAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNo YXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC04NDksNiArODQ5LDEyIEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkJfQotIAl9Ci0gCi0rCWlmICgod2F5 bGFuZF9kaXNwbGF5ICYmIChzdHJjaHIod2F5bGFuZF9kaXNwbGF5LCAnLycpIHx8IHN0cnN0cih3 YXlsYW5kX2Rpc3BsYXksICIuLiIpKSkgfHwKLSsJCShwaXBld2lyZV9zb2NrZXQgJiYgKHN0cmNo cihwaXBld2lyZV9zb2NrZXQsICcvJykgfHwgc3Ryc3RyKHBpcGV3aXJlX3NvY2tldCwgIi4uIikp KSkgewotKwkJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiAtVy8tUCBtdXN0IGJlIGEgc29ja2V0 IG5hbWUsIG5vdCBhIHBhdGhcbiIpKTsKLSsJCXJldHVybiAtMTsKLSsJfQotKwotIAlpZiAoISBo b21lZGlyX3MgJiYgISB0bXBkaXJfcykgewotIAkJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiB0 bXBkaXIgYW5kL29yIGhvbWVkaXIgcmVxdWlyZWRcbiAlc1xuIiksIFVTQUdFX1NUUklORyk7Ci0g CQlyZXR1cm4gLTE7Ci1AQCAtOTkwLDcgKzk5Niw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikgewotIAkJCQkJcGVycm9yKF8oIk91dCBvZiBtZW1vcnkiKSk7Ci0gCQkJCQlnb3Rv IGNoaWxkZXJyOwotIAkJCQl9Ci0tCQkJCXNldW5zaGFyZV9tb3VudF9maWxlKHBpcGV3aXJlX3Bh dGgsIHBpcGV3aXJlX3BhdGhfcyk7Ci0rCQkJCWlmIChzZXVuc2hhcmVfbW91bnRfZmlsZShwaXBl d2lyZV9wYXRoLCBwaXBld2lyZV9wYXRoX3MpID09IC0xKQotKwkJCQkJZ290byBjaGlsZGVycjsK LSAJCQl9Ci0gCQl9Ci0gCi0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxNy1zYW5kYm94 LXNldW5zaGFyZS12ZXJpZnktUlVOVElNRV9ESVItYmVmb3JlLXVzZS5wYXRjaCBiLzAwMTctc2Fu ZGJveC1zZXVuc2hhcmUtdmVyaWZ5LVJVTlRJTUVfRElSLWJlZm9yZS11c2UucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNDYyMjAuLjAwMDAwMDAKLS0tIGEvMDAxNy1zYW5k Ym94LXNldW5zaGFyZS12ZXJpZnktUlVOVElNRV9ESVItYmVmb3JlLXVzZS5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDM4ICswLDAgQEAKLUZyb20gY2NlZWIxZGVmNjJlZjc4ZmVkODAyNjg0ZTk1 MDBjZmExYWVmYTZiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoZW4gU21h bGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotRGF0ZTogV2VkLCAxMyBNYXkg MjAyNiAxMDozMDoyMCAtMDQwMAotU3ViamVjdDogW1BBVENIXSBzYW5kYm94L3NldW5zaGFyZTog dmVyaWZ5IFJVTlRJTUVfRElSIGJlZm9yZSB1c2UKLUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgot Ci1SVU5USU1FX0RJUiBjYW4gYmUgaW5oZXJpdGVkIGZyb20gWERHX1JVTlRJTUVfRElSIG9yIHNl dCB0byBhIGRlZmF1bHQKLXBhdGguIFJlZ2FyZGxlc3MsIHdlIHNob3VsZCB2ZXJpZnkgaXQgdGhl IHNhbWUgd2F5IGFzIHRoZSBvdGhlcgotdXNlci1zdXBwbGllZCBkaXJlY3RvcmllcyBiZWZvcmUg Zmlyc3QgdXNlLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21h bGxleS53b3JrQGdtYWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCA5ICsrKysr KysrKwotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL3Nh bmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRleCA5NDVhM2IyMWMx Y2MuLjg5MTgwZDBhYTFlZCAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNoYXJlLmMKLSsrKyBi L3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC05NjQsNiArOTY0LDE1IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikgewotIAkJCX0KLSAJCX0KLSAKLSsJCWlmIChydW51c2VyZGlyX3Mp IHsKLSsJCQlzdHJ1Y3Qgc3RhdCBzYjsKLSsKLSsJCQlpZiAodmVyaWZ5X2RpcmVjdG9yeShSVU5U SU1FX0RJUiwgTlVMTCwgJnNiKSA8IDAgfHwKLSsJCQkJY2hlY2tfb3duZXJfdWlkKHVpZCwgUlVO VElNRV9ESVIsICZzYikgPCAwKQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwotKwkJfQotKwotIAkJ aWYgKChYREdfU0VTU0lPTl9UWVBFID0gZ2V0ZW52KCJYREdfU0VTU0lPTl9UWVBFIikpICE9IE5V TEwpIHsKLSAJCQlpZiAoKFhER19TRVNTSU9OX1RZUEUgPSBzdHJkdXAoWERHX1NFU1NJT05fVFlQ RSkpID09IE5VTEwpIHsKLSAJCQkJcGVycm9yKF8oIk91dCBvZiBtZW1vcnkiKSk7Ci0tLSAKLTIu NTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAxOC1zYW5kYm94LXNldW5zaGFyZS1kcm9wLXVudXNlZC1y dW51c2VyZGlyX3IucGF0Y2ggYi8wMDE4LXNhbmRib3gtc2V1bnNoYXJlLWRyb3AtdW51c2VkLXJ1 bnVzZXJkaXJfci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA3ZGIwOC4u MDAwMDAwMAotLS0gYS8wMDE4LXNhbmRib3gtc2V1bnNoYXJlLWRyb3AtdW51c2VkLXJ1bnVzZXJk aXJfci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUZyb20gYzJmNTRhZmYx MzRiY2JhOGFlOTcwMWQyNmQ3NzExNTMwZDcyYmU3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFN0ZXBoZW4gU21hbGxleSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgot RGF0ZTogV2VkLCAxMyBNYXkgMjAyNiAxMDozNzo1NiAtMDQwMAotU3ViamVjdDogW1BBVENIXSBz YW5kYm94L3NldW5zaGFyZTogZHJvcCB1bnVzZWQgcnVudXNlcmRpcl9yCi1Db250ZW50LXR5cGU6 IHRleHQvcGxhaW4KLQotcnVudXNlcmRpcl9yIGlzIGNyZWF0ZWQgYnV0IG5ldmVyIHVzZWQgbm9y IGRlbGV0ZWQuIEdldCByaWQgb2YgaXQuCi0KLVNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gU21hbGxl eSA8c3RlcGhlbi5zbWFsbGV5LndvcmtAZ21haWwuY29tPgotLS0tCi0gc2FuZGJveC9zZXVuc2hh cmUuYyB8IDggLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgOCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRl eCA4OTE4MGQwYWExZWQuLjJlZWYwZTJmODAwZSAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNo YXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC03NjMsMTQgKzc2MywxMiBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJY2hhciAqdG1wZGlyX3MgPSBOVUxM OwkvKiB0bXBkaXIgc3BlYydkIGJ5IHVzZXIgaW4gYXJndltdICovCi0gCWNoYXIgKnRtcGRpcl9y ID0gTlVMTDsJLyogdG1wZGlyIGNyZWF0ZWQgYnkgc2V1bnNoYXJlICovCi0gCWNoYXIgKnJ1bnVz ZXJkaXJfcyA9IE5VTEw7CS8qIC92YXIvcnVuL3VzZXIvVUlEIHNwZWMnZCBieSB1c2VyIGluIGFy Z3ZbXSAqLwotLQljaGFyICpydW51c2VyZGlyX3IgPSBOVUxMOwkvKiAvdmFyL3J1bi91c2VyL1VJ RCBjcmVhdGVkIGJ5IHNldW5zaGFyZSAqLwotIAotIAlzdHJ1Y3Qgc3RhdCBzdF9jdXJob21lZGly OwotIAlzdHJ1Y3Qgc3RhdCBzdF9ob21lZGlyOwotIAlzdHJ1Y3Qgc3RhdCBzdF90bXBkaXJfczsK LSAJc3RydWN0IHN0YXQgc3RfdG1wZGlyX3I7Ci0gCXN0cnVjdCBzdGF0IHN0X3J1bnVzZXJkaXJf czsKLS0Jc3RydWN0IHN0YXQgc3RfcnVudXNlcmRpcl9yOwotIAotIAljb25zdCBzdHJ1Y3Qgb3B0 aW9uIGxvbmdfb3B0aW9uc1tdID0gewotIAkJeyJob21lZGlyIiwgMSwgMCwgJ2gnfSwKLUBAIC05 MDIsMTIgKzkwMCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkJZnBy aW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBjcmVhdGUgcnVudGltZSB0ZW1wb3JhcnkgZGlyZWN0 b3J5XG4iKSk7Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLS0JLyogY3JlYXRlIHJ1bnRpbWUgcnVudXNl cmRpciAqLwotLQlpZiAocnVudXNlcmRpcl9zICYmIChydW51c2VyZGlyX3IgPSBjcmVhdGVfdG1w ZGlyKHJ1bnVzZXJkaXJfcywgJnN0X3J1bnVzZXJkaXJfcywKLS0JCQkJCQkgICZzdF9ydW51c2Vy ZGlyX3IsIHB3ZCwgZXhlY2NvbikpID09IE5VTEwpIHsKLS0JCWZwcmludGYoc3RkZXJyLCBfKCJG YWlsZWQgdG8gY3JlYXRlIHJ1bnRpbWUgJFhER19SVU5USU1FX0RJUiBkaXJlY3RvcnlcbiIpKTsK LS0JCXJldHVybiAtMTsKLS0JfQotIAotIAkvKiBzcGF3biBjaGlsZCBwcm9jZXNzICovCi0gCWNo aWxkID0gZm9yaygpOwotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdpdCBhLzAwMTktc2FuZGJveC1z ZXVuc2hhcmUtZml4LWtpbGxhbGwtcmVhbGxvYy1hbmQtbWlzc2luZy10eS5wYXRjaCBiLzAwMTkt c2FuZGJveC1zZXVuc2hhcmUtZml4LWtpbGxhbGwtcmVhbGxvYy1hbmQtbWlzc2luZy10eS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFiNTZmNy4uMDAwMDAwMAotLS0gYS8w MDE5LXNhbmRib3gtc2V1bnNoYXJlLWZpeC1raWxsYWxsLXJlYWxsb2MtYW5kLW1pc3NpbmctdHku cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi1Gcm9tIDQ3YThiZDVkMjk0NTVm MWI4NDk2YTJiYzdiYTk1ZjNmNTM1YzJiYTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLURhdGU6 IFdlZCwgMTMgTWF5IDIwMjYgMTI6MjE6NDcgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gc2FuZGJv eC9zZXVuc2hhcmU6IGZpeCBraWxsYWxsKCkgcmVhbGxvYyBhbmQgbWlzc2luZyB0eXBlCi0gY29t cGFyaXNvbgotQ29udGVudC10eXBlOiB0ZXh0L3BsYWluCi0KLVRoZSBraWxsYWxsKCkgcmVhbGxv YygpIGNhbiBwcm9kdWNlIGFuIGludGVnZXIgb3ZlcmZsb3cuCi1DaGVjayBhbmQgaGFuZGxlIHRo aXMgY29ycmVjdGx5LgotCi1UaGUga2lsbGFsbCgpIGxvZ2ljIGFsc28gb25seSBjb21wYXJlcyB0 aGUgTUNTIGNhdGVnb3J5IHNldCB3aGVuCi1kZWNpZGluZyB3aGV0aGVyIHRvIGtpbGwgdGhlIHBy b2Nlc3MuIFdlIHNob3VsZCBhdCBsZWFzdCBhbHNvIGNvbXBhcmUKLXRoZSB0eXBlIHRvIGF2b2lk IGluY29ycmVjdGx5IGtpbGxpbmcgYW4gdW5yZWxhdGVkIHByb2Nlc3Mgd2l0aAotdGhlIHNhbWUg Y2F0ZWdvcnkgc2V0IChlLmcuIGlmIG11bHRpcGxlIGFwcGxpY2F0aW9ucyBhcmUgaW5kZXBlbmRl bnRseQotYXNzaWduaW5nIGNhdGVnb3J5IHNldHMgb24gdGhlIHNhbWUgc3lzdGVtKS4gQ2hlY2sg dGhlIHR5cGUgYXMgd2VsbC4KLQota2lsbGFsbCgpIHN0aWxsIHNlZW1zIGVycm9yIHByb25lIGFu ZCBJIGNvdWxkbid0IGZpbmQgYW55IGFjdHVhbCB1c2Vycwotb2YgdGhlIC1rLy0ta2lsbCBvcHRp b24gZm9yIHNldW5zaGFyZS4gQ2FuIHdlIGp1c3QgZHJvcCB0aGlzPwotCi1TaWduZWQtb2ZmLWJ5 OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLS0tLQot IHNhbmRib3gvc2V1bnNoYXJlLmMgfCAyNiArKysrKysrKysrKysrKysrKysrLS0tLS0tLQotIDEg ZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvc2FuZGJveC9zZXVuc2hhcmUuYyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLWluZGV4IDJl ZWYwZTJmODAwZS4uZTIwYzBmODcyM2FhIDEwMDY0NAotLS0tIGEvc2FuZGJveC9zZXVuc2hhcmUu YwotKysrIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotQEAgLTY4MCw4ICs2ODAsOCBAQCBraWxsYWxs IChjb25zdCBjaGFyICpleGVjY29uKQotIAljaGFyICpzY29uOwotIAlzdHJ1Y3QgZGlyZW50ICpk ZTsKLSAJcGlkX3QgKnBpZF90YWJsZSwgcGlkLCBzZWxmOwotLQlpbnQgaTsKLS0JaW50IHBpZHMs IG1heF9waWRzOwotKwl1bnNpZ25lZCBpbnQgaTsKLSsJdW5zaWduZWQgaW50IHBpZHMsIG1heF9w aWRzOwotIAlpbnQgcnVubmluZyA9IDA7Ci0gCXNlbGYgPSBnZXRwaWQoKTsKLSAJaWYgKCEoZGly ID0gb3BlbmRpcihQUk9DX0JBU0UpKSkgewotQEAgLTcwMSwyNiArNzAxLDM0IEBAIGtpbGxhbGwg KGNvbnN0IGNoYXIgKmV4ZWNjb24pCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAJY29uc3QgY2hhciAq Y29uc3QgbWNzID0gY29udGV4dF9yYW5nZV9nZXQoY29uKTsKLS0JaWYgKCFtY3MpIHsKLSsJY29u c3QgY2hhciAqY29uc3QgdHlwZSA9IGNvbnRleHRfdHlwZV9nZXQoY29uKTsKLSsJaWYgKCFtY3Mg fHwgIXR5cGUpIHsKLSAJCWNvbnRleHRfZnJlZShjb24pOwotIAkJZnJlZShwaWRfdGFibGUpOwot IAkJKHZvaWQpY2xvc2VkaXIoZGlyKTsKLSAJCXJldHVybiAtMTsKLSAJfQotLQlwcmludGYoIm1j cz0lc1xuIiwgbWNzKTsKLSsJaWYgKHZlcmJvc2UpCi0rCQlwcmludGYoIm1jcz0lcyB0eXBlPSVz XG4iLCBtY3MsIHR5cGUpOwotIAl3aGlsZSAoKGRlID0gcmVhZGRpciAoZGlyKSkgIT0gTlVMTCkg ewotIAkJaWYgKCEocGlkID0gKHBpZF90KWF0b2koZGUtPmRfbmFtZSkpIHx8IHBpZCA9PSBzZWxm KQotIAkJCWNvbnRpbnVlOwotIAotIAkJaWYgKHBpZHMgPT0gbWF4X3BpZHMpIHsKLS0JCQlwaWRf dCAqbmV3X3BpZF90YWJsZSA9IHJlYWxsb2MocGlkX3RhYmxlLCAyKnBpZHMqc2l6ZW9mKHBpZF90 KSk7Ci0rCQkJbWF4X3BpZHMgKj0gMjsKLSsJCQlpZiAobWF4X3BpZHMgPD0gcGlkcykKLSsJCQl7 Ci0rCQkJCWZyZWUocGlkX3RhYmxlKTsKLSsJCQkJKHZvaWQpY2xvc2VkaXIoZGlyKTsKLSsJCQkJ cmV0dXJuIC0xOwotKwkJCX0KLSsJCQlwaWRfdCAqbmV3X3BpZF90YWJsZSA9IHJlYWxsb2NhcnJh eShwaWRfdGFibGUsIG1heF9waWRzLCBzaXplb2YocGlkX3QpKTsKLSAJCQlpZiAoIW5ld19waWRf dGFibGUpIHsKLSAJCQkJZnJlZShwaWRfdGFibGUpOwotIAkJCQkodm9pZCljbG9zZWRpcihkaXIp OwotIAkJCQlyZXR1cm4gLTE7Ci0gCQkJfQotIAkJCXBpZF90YWJsZSA9IG5ld19waWRfdGFibGU7 Ci0tCQkJbWF4X3BpZHMgKj0gMjsKLSAJCX0KLSAJCXBpZF90YWJsZVtwaWRzKytdID0gcGlkOwot IAl9Ci1AQCAtNzM0LDggKzc0MiwxMiBAQCBraWxsYWxsIChjb25zdCBjaGFyICpleGVjY29uKQot IAotIAkJCWNvbnRleHRfdCBwaWRjb24gPSBjb250ZXh0X25ldyhzY29uKTsKLSAJCQlpZiAocGlk Y29uKSB7Ci0rCQkJCWNvbnN0IGNoYXIgKmNvbnN0IHBtY3MgPSBjb250ZXh0X3JhbmdlX2dldChw aWRjb24pOwotKwkJCQljb25zdCBjaGFyICpjb25zdCBwdHlwZSA9IGNvbnRleHRfdHlwZV9nZXQo cGlkY29uKTsKLSsKLSAJCQkJLyogQXR0ZW1wdCB0byBraWxsIHJlbWFpbmluZyBwcm9jZXNzZXMg Ki8KLS0JCQkJaWYgKHN0cmNtcChjb250ZXh0X3JhbmdlX2dldChwaWRjb24pLCBtY3MpID09IDAp Ci0rCQkJCWlmIChwbWNzICYmIHB0eXBlICYmICFzdHJjbXAocG1jcywgbWNzKSAmJgotKwkJCQkJ IXN0cmNtcChwdHlwZSwgdHlwZSkpCi0gCQkJCQlraWxsKGlkLCBTSUdLSUxMKTsKLSAKLSAJCQkJ Y29udGV4dF9mcmVlKHBpZGNvbik7Ci0tLSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAyMC1z YW5kYm94LXNldW5zaGFyZS1yZXdyaXRlLXRvLXBpbi1kaXJlY3Rvcmllcy1iZWZvcmUtLnBhdGNo IGIvMDAyMC1zYW5kYm94LXNldW5zaGFyZS1yZXdyaXRlLXRvLXBpbi1kaXJlY3Rvcmllcy1iZWZv cmUtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmI4ZTZkLi4wMDAwMDAw Ci0tLSBhLzAwMjAtc2FuZGJveC1zZXVuc2hhcmUtcmV3cml0ZS10by1waW4tZGlyZWN0b3JpZXMt YmVmb3JlLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwNiArMCwwIEBACi1Gcm9tIDljNDRi YjkyOWE3OTM3ODk3YTc4Nzc5MGVjZTY3OTQ2NDM0NWM1ZDkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNv bT4KLURhdGU6IFRodSwgMTQgTWF5IDIwMjYgMTA6MzI6MTMgLTA0MDAKLVN1YmplY3Q6IFtQQVRD SF0gc2FuZGJveC9zZXVuc2hhcmU6IHJld3JpdGUgdG8gcGluIGRpcmVjdG9yaWVzIGJlZm9yZSB1 c2UKLUNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbgotCi1UbyBmdWxseSBlbGltaW5hdGUgVE9DVE9V IGlzc3VlcyBpbiBzZXVuc2hhcmUsIHdlIG5lZWQgdG8gcGluIHRoZQotZGlyZWN0b3JpZXMgYW5k IHBhc3MgdGhlbSB2aWEgL3Byb2Mvc2VsZi9mZC9OIHRvIG1vdW50KDIpLgotVGhpcyBpcyBjb21w bGljYXRlZCBmdXJ0aGVyIGJ5IHRoZSB1bnNoYXJpbmcgb2YgdGhlIG1vdW50IG5hbWVzcGFjZQot aW4gdGhlIGNoaWxkIHByb2Nlc3MgYW5kIHRoZSBuZWVkIHRvIHJlbW91bnQgaW4gb3JkZXIgdG8g YXBwbHkKLW5vc3VpZC9ub2Rldi9ub2V4ZWMgZmxhZ3MuIERvIHRoZSBiZXN0IHdlIGNhbiB3aXRo IHRoZSBsZWdhY3kKLW1vdW50KDIpIEFQSSBmb3IgY29tcGF0aWJpbGl0eSBvbiBvbGQga2VybmVs cyBhbmQgcmV2aXNpdCBpZi93aGVuCi13ZSBtYWtlIGtlcm5lbHMgd2l0aCB0aGUgbmV3IG1vdW50 IEFQSSB0aGUgbWluaW11bSByZXF1aXJlZCBmb3IKLVNFTGludXggdXNlcnNwYWNlLgotCi1TaWdu ZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNv bT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCA0MDYgKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMjQxIGluc2VydGlvbnMo KyksIDE2NSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMg Yi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRleCBlMjBjMGY4NzIzYWEuLjYxMWJmZTgwZDAzMCAx MDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNoYXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJl LmMKLUBAIC0xOTcsMzUgKzE5NywzMyBAQCBzdGF0aWMgaW50IGNoZWNrX293bmVyX2dpZChnaWRf dCBnaWQsIGNvbnN0IGNoYXIgKmZpbGUsIHN0cnVjdCBzdGF0ICpzdCkgewotIAlyZXR1cm4gMDsK LSB9Ci0gCi0tI2RlZmluZSBlcXVhbF9zdGF0cyhvbmUsdHdvKSBcCi0tCSgob25lKS0+c3RfZGV2 ID09ICh0d28pLT5zdF9kZXYgJiYgKG9uZSktPnN0X2lubyA9PSAodHdvKS0+c3RfaW5vICYmIFwK LS0JIChvbmUpLT5zdF91aWQgPT0gKHR3byktPnN0X3VpZCAmJiAob25lKS0+c3RfZ2lkID09ICh0 d28pLT5zdF9naWQgJiYgXAotLQkgKG9uZSktPnN0X21vZGUgPT0gKHR3byktPnN0X21vZGUpCi0t Ci0gLyoqCi0tICogU2FuaXR5IGNoZWNrIHNwZWNpZmllZCBkaXJlY3RvcnkuICBTdG9yZSBzdGF0 IGluZm8gZm9yIGZ1dHVyZSBjb21wYXJpc29uLCBvcgotLSAqIGNvbXBhcmUgd2l0aCBwcmV2aW91 c2x5IHNhdmVkIGluZm8gdG8gZGV0ZWN0IHJlcGxhY2VkIGRpcmVjdG9yaWVzLgotLSAqIE5vdGU6 IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgcGVyZm9ybSBvd25lciBjaGVja3MuCi0rICogT3BlbiBk aXJlY3Rvcnkgd2l0aCBPX0RJUkVDVE9SWXxPX05PRk9MTE9XIGFuZCByZXR1cm4gaXRzIGZkCi0r ICogYW5kIGZzdGF0KCkgcmVzdWx0cy4gVGhlIHJldHVybmVkIGZkIGFuZCBpdHMgL3Byb2Mvc2Vs Zi9mZC9OCi0rICogcGF0aCBjYW4gYmUgdXNlZCBmb3IgYWxsIHN1YnNlcXVlbnQgb3BlcmF0aW9u cyBvbiB0aGUgZGlyZWN0b3J5LgotKyAqIE5CIEFueSBub24tZmluYWwgY29tcG9uZW50cyBpbiB0 aGUgQGRpciBwYXRobmFtZSBhcmUgcmVzb2x2ZWQKLSsgKiBhcyB1c3VhbCBidXQgd2lsbCBiZSBj aGVja2VkIGFnYWluc3QgdGhlIGZzdWlkIG9mIHRoZSBjYWxsZXIuCi0gICovCi0tc3RhdGljIGlu dCB2ZXJpZnlfZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRpciwgc3RydWN0IHN0YXQgKnN0X2luLCBz dHJ1Y3Qgc3RhdCAqc3Rfb3V0KSB7Ci0rc3RhdGljIGludCBwaW5fZGlyKGNvbnN0IGNoYXIgKmRp ciwgc3RydWN0IHN0YXQgKnN0X291dCkKLSt7Ci0rCWludCBmZDsKLSAJc3RydWN0IHN0YXQgc2I7 Ci0gCi0tCWlmIChzdF9vdXQgPT0gTlVMTCkgc3Rfb3V0ID0gJnNiOwotLQotLQlpZiAobHN0YXQo ZGlyLCBzdF9vdXQpID09IC0xKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIHN0 YXQgJXM6ICVzXG4iKSwgZGlyLCBzdHJlcnJvcihlcnJubykpOwotKwlmZCA9IG9wZW4oZGlyLCBP X1JET05MWXxPX0RJUkVDVE9SWXxPX05PRk9MTE9XfE9fQ0xPRVhFQyk7Ci0rCWlmIChmZCA8IDAp IHsKLSsJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gb3BlbiAlczogJW1cbiIpLCBkaXIp OwotIAkJcmV0dXJuIC0xOwotIAl9Ci0tCWlmICghIFNfSVNESVIoc3Rfb3V0LT5zdF9tb2RlKSkg ewotLQkJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiAlcyBpcyBub3QgYSBkaXJlY3Rvcnk6ICVz XG4iKSwgZGlyLCBzdHJlcnJvcihlcnJubykpOwotLQkJcmV0dXJuIC0xOwotLQl9Ci0tCWlmIChz dF9pbiAmJiAhZXF1YWxfc3RhdHMoc3RfaW4sIHN0X291dCkpIHsKLS0JCWZwcmludGYoc3RkZXJy LCBfKCJFcnJvcjogJXMgd2FzIHJlcGxhY2VkIGJ5IGEgZGlmZmVyZW50IGRpcmVjdG9yeVxuIiks IGRpcik7Ci0rCi0rCWlmIChmc3RhdChmZCwgJnNiKSA8IDApIHsKLSsJCWZwcmludGYoc3RkZXJy LCBfKCJGYWlsZWQgdG8gc3RhdCAlczogJW1cbiIpLCBkaXIpOwotKwkJY2xvc2UoZmQpOwotIAkJ cmV0dXJuIC0xOwotIAl9Ci0gCi0tCXJldHVybiAwOwotKwlpZiAoc3Rfb3V0KQotKwkJKnN0X291 dCA9IHNiOwotKwlyZXR1cm4gZmQ7Ci0gfQotIAotIC8qKgotQEAgLTI1Niw4NSArMjU0LDkwIEBA IHN0YXRpYyBpbnQgdmVyaWZ5X3NoZWxsKGNvbnN0IGNoYXIgKnNoZWxsX25hbWUpCi0gfQotIAot IC8qKgotLSAqIE1vdW50IGRpcmVjdG9yeSBhbmQgY2hlY2sgdGhhdCB3ZSBtb3VudGVkIHRoZSBy aWdodCBkaXJlY3RvcnkuCi0rICogQmluZC1tb3VudCBkaXJlY3RvcnkgQHNyYyAodXNpbmcgQHNy Y19mZCkgb24gZGlyZWN0b3J5IEBkc3QgKHVzaW5nIEBkc3RfZmQpLAotKyAqIGFwcGx5aW5nIEBi aW5kX2ZsYWdzIGZvciB0aGUgaW5pdGlhbCBiaW5kIG1vdW50IGFuZCBAc2VjX2ZsYWdzIGlmCi0r ICogbm9uLXplcm8gdmlhIHJlbW91bnQuCi0gICovCi0tc3RhdGljIGludCBzZXVuc2hhcmVfbW91 bnQoY29uc3QgY2hhciAqc3JjLCBjb25zdCBjaGFyICpkc3QsIHN0cnVjdCBzdGF0ICpzcmNfc3Qp Ci0rc3RhdGljIGludCBzZXVuc2hhcmVfbW91bnQoY29uc3QgY2hhciAqc3JjLCBpbnQgc3JjX2Zk LAotKwkJCSAgIGNvbnN0IGNoYXIgKmRzdCwgaW50IGRzdF9mZCwKLSsJCQkgICBpbnQgYmluZF9m bGFncywgaW50IHNlY19mbGFncykKLSB7Ci0tCWludCBiaW5kX2ZsYWdzID0gTVNfQklORDsKLS0J aW50IHNlY19mbGFncyA9IDA7Ci0tCWludCBpc190bXAgPSAwOwotKwljaGFyIHNyY3Byb2NmZFsz Ml0sIGRzdHByb2NmZFszMl07Ci0rCi0rCWJpbmRfZmxhZ3MgfD0gTVNfQklORDsKLSAKLSAJaWYg KHZlcmJvc2UpCi0gCQlwcmludGYoXygiTW91bnRpbmcgJXMgb24gJXNcbiIpLCBzcmMsIGRzdCk7 Ci0gCi0tCWlmIChzdHJjbXAoIi90bXAiLCBkc3QpID09IDApIHsKLS0JCXNlY19mbGFncyA9IE1T X05PREVWIHwgTVNfTk9TVUlEIHwgTVNfTk9FWEVDOwotLQkJaXNfdG1wID0gMTsKLS0JfQotKwlz bnByaW50ZihzcmNwcm9jZmQsIHNpemVvZihzcmNwcm9jZmQpLCAiL3Byb2Mvc2VsZi9mZC8lZCIs IHNyY19mZCk7Ci0rCXNucHJpbnRmKGRzdHByb2NmZCwgc2l6ZW9mKGRzdHByb2NmZCksICIvcHJv Yy9zZWxmL2ZkLyVkIiwgZHN0X2ZkKTsKLSAKLS0JaWYgKHN0cm5jbXAoIi9ydW4vdXNlciIsIGRz dCwgOSkgPT0gMCkgewotLQkJYmluZF9mbGFncyB8PSBNU19SRUM7Ci0tCX0KLS0KLS0JLyogbW91 bnQgZGlyZWN0b3J5ICovCi0tCWlmIChtb3VudChzcmMsIGRzdCwgTlVMTCwgYmluZF9mbGFncywg TlVMTCkgPCAwKSB7Ci0tCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIG1vdW50ICVzIG9u ICVzOiAlc1xuIiksIHNyYywgZHN0LCBzdHJlcnJvcihlcnJubykpOwotKwkvKiBiaW5kIG1vdW50 IGRpcmVjdG9yeSAqLwotKwlpZiAobW91bnQoc3JjcHJvY2ZkLCBkc3Rwcm9jZmQsIE5VTEwsIGJp bmRfZmxhZ3MsIE5VTEwpIDwgMCkgewotKwkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBt b3VudCAlcyBvbiAlczogJW1cbiIpLCBzcmMsIGRzdCk7Ci0gCQlyZXR1cm4gLTE7Ci0gCX0KLS0J LyogcmVtb3VudCB3aXRoIHNlY3VyaXR5IGZsYWdzLCBpZ25vcmVkIG9uIG9yaWdpbmFsIGJpbmQg bW91bnQgKi8KLS0JaWYgKHNlY19mbGFncyAmJiBtb3VudChOVUxMLCBkc3QsIE5VTEwsIE1TX0JJ TkQgfCBNU19SRU1PVU5UIHwgc2VjX2ZsYWdzLCBOVUxMKSA8IDApIHsKLSsKLSsJLyoKLSsJICog UmVtb3VudCB3aXRoIHNlY3VyaXR5IGZsYWdzIHNldCAtIHJlcXVpcmVzIHVzZSBvZiBkc3QgcGF0 aCBhZ2Fpbi4KLSsJICogUmV2aXNpdCB3aGVuIHdlIG1pZ3JhdGUgdG8gb3Blbl90cmVlKCkvbW92 ZV9tb3VudCgpLgotKwkgKi8KLSsJaWYgKHNlY19mbGFncyAmJgotKwkgICAgbW91bnQoTlVMTCwg ZHN0LCBOVUxMLCBNU19CSU5EIHwgTVNfUkVNT1VOVCB8IHNlY19mbGFncywgTlVMTCkgPCAwKSB7 Ci0gCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIHJlbW91bnQgJXM6ICVtXG4iKSwgZHN0 KTsKLSAJCXJldHVybiAtMTsKLSAJfQotIAotLQkvKiB2ZXJpZnkgd2hldGhlciB3ZSBtb3VudGVk IHdoYXQgd2UgZXhwZWN0ZWQgdG8gbW91bnQgKi8KLS0JaWYgKHZlcmlmeV9kaXJlY3RvcnkoZHN0 LCBzcmNfc3QsIE5VTEwpIDwgMCkgcmV0dXJuIC0xOwotLQotLQkvKiBiaW5kIG1vdW50IC90bXAg b24gL3Zhci90bXAgdG9vICovCi0tCWlmIChpc190bXApIHsKLS0JCWlmICh2ZXJib3NlKQotLQkJ CXByaW50ZihfKCJNb3VudGluZyAvdG1wIG9uIC92YXIvdG1wXG4iKSk7Ci0tCi0tCQlpZiAobW91 bnQoIi90bXAiLCAiL3Zhci90bXAiLCAgTlVMTCwgTVNfQklORCwgTlVMTCkgPCAwKSB7Ci0tCQkJ ZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBtb3VudCAvdG1wIG9uIC92YXIvdG1wOiAlc1xu IiksIHN0cmVycm9yKGVycm5vKSk7Ci0tCQkJcmV0dXJuIC0xOwotLQkJfQotLQkJLyogcmVtb3Vu dCB3aXRoIHNlY3VyaXR5IGZsYWdzLCBpZ25vcmVkIG9uIG9yaWdpbmFsIGJpbmQgbW91bnQgKi8K LS0JCWlmIChtb3VudChOVUxMLCAiL3Zhci90bXAiLCBOVUxMLCBNU19CSU5EIHwgTVNfUkVNT1VO VCB8IHNlY19mbGFncywgTlVMTCkgPCAwKSB7Ci0tCQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxl ZCB0byByZW1vdW50IC92YXIvdG1wOiAlbVxuIikpOwotLQkJCXJldHVybiAtMTsKLS0JCX0KLS0J fQotLQotIAlyZXR1cm4gMDsKLS0KLSB9Ci0gCi0gLyoqCi0tICogTW91bnQgZGlyZWN0b3J5IGFu ZCBjaGVjayB0aGF0IHdlIG1vdW50ZWQgdGhlIHJpZ2h0IGRpcmVjdG9yeS4KLSsgKiBCaW5kLW1v dW50IGEgZmlsZSBuYW1lZCBAc3JjX25hbWUgaW4gZGlyZWN0b3J5IEBzcmNfZGlyZmQgb24KLSsg KiBhIGZpbGUgbmFtZWQgQGRzdF9uYW1lIGluIGRpcmVjdG9yeSBAZHN0X2RpcmZkLCBjcmVhdGlu ZyBAZHN0X25hbWUKLSsgKiBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QuCi0gICovCi0tc3Rh dGljIGludCBzZXVuc2hhcmVfbW91bnRfZmlsZShjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNoYXIg KmRzdCkKLStzdGF0aWMgaW50IHNldW5zaGFyZV9tb3VudF9maWxlKGludCBzcmNfZGlyZmQsIGNv bnN0IGNoYXIgKnNyY19uYW1lLAotKwkJCQlpbnQgZHN0X2RpcmZkLCBjb25zdCBjaGFyICpkc3Rf bmFtZSkKLSB7Ci0rCWNoYXIgc3JjcHJvY2ZkWzMyXSwgZHN0cHJvY2ZkWzMyXTsKLSsJaW50IHNy Y19mZCA9IC0xLCBkc3RfZmQgPSAtMSwgcmMgPSAtMTsKLSsKLSAJaWYgKHZlcmJvc2UpCi0tCQlw cmludGYoXygiTW91bnRpbmcgJXMgb24gJXNcbiIpLCBzcmMsIGRzdCk7Ci0rCQlwcmludGYoXygi TW91bnRpbmcgJXMgb24gJXNcbiIpLCBzcmNfbmFtZSwgZHN0X25hbWUpOwotIAotLQlpZiAoYWNj ZXNzKGRzdCwgRl9PSykgPT0gLTEpIHsKLS0JCWludCBmZCA9IG9wZW4oZHN0LCBPX1dST05MWSB8 IE9fQ1JFQVQgfCBPX05PRk9MTE9XIHwgT19DTE9FWEVDLCAwNjAwKTsKLS0JCWlmIChmZCA8IDAp IHsKLS0JCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIGNyZWF0ZSBtb3VudCBwb2ludCAl czogJW1cbiIpLCBkc3QpOwotLQkJCXJldHVybiAtMTsKLS0JCX0KLS0JCWNsb3NlKGZkKTsKLSsJ c3JjX2ZkID0gb3BlbmF0KHNyY19kaXJmZCwgc3JjX25hbWUsIE9fUEFUSCB8IE9fTk9GT0xMT1cg fCBPX0NMT0VYRUMpOwotKwlpZiAoc3JjX2ZkIDwgMCkgewotKwkJZnByaW50ZihzdGRlcnIsIF8o IkZhaWxlZCB0byBvcGVuICVzOiAlbVxuIiksIHNyY19uYW1lKTsKLSsJCWdvdG8gb3V0OwotIAl9 Ci0gCi0tCS8qIG1vdW50IGZpbGUgKi8KLS0JaWYgKG1vdW50KHNyYywgZHN0LCBOVUxMLCBNU19C SU5ELCBOVUxMKSA8IDApIHsKLS0JCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gbW91bnQg JXMgb24gJXM6ICVzXG4iKSwgc3JjLCBkc3QsIHN0cmVycm9yKGVycm5vKSk7Ci0tCQlyZXR1cm4g LTE7Ci0rCWRzdF9mZCA9IG9wZW5hdChkc3RfZGlyZmQsIGRzdF9uYW1lLCBPX1BBVEggfCBPX05P Rk9MTE9XIHwgT19DTE9FWEVDKTsKLSsJaWYgKGRzdF9mZCA8IDAgJiYgZXJybm8gPT0gRU5PRU5U KQotKwkJZHN0X2ZkID0gb3BlbmF0KGRzdF9kaXJmZCwgZHN0X25hbWUsCi0rCQkJCU9fV1JPTkxZ IHwgT19DUkVBVCB8IE9fRVhDTCB8IE9fTk9GT0xMT1cgfAotKwkJCQlPX0NMT0VYRUMsIDA2MDAp OwotKwlpZiAoZHN0X2ZkIDwgMCkgewotKwkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBv cGVuL2NyZWF0ZSAlczogJW1cbiIpLCBkc3RfbmFtZSk7Ci0rCQlnb3RvIG91dDsKLSAJfQotIAot LQlyZXR1cm4gMDsKLSsJc25wcmludGYoc3JjcHJvY2ZkLCBzaXplb2Yoc3JjcHJvY2ZkKSwgIi9w cm9jL3NlbGYvZmQvJWQiLCBzcmNfZmQpOwotKwlzbnByaW50Zihkc3Rwcm9jZmQsIHNpemVvZihk c3Rwcm9jZmQpLCAiL3Byb2Mvc2VsZi9mZC8lZCIsIGRzdF9mZCk7Ci0gCi0rCS8qIG1vdW50IGZp bGUgKi8KLSsJaWYgKG1vdW50KHNyY3Byb2NmZCwgZHN0cHJvY2ZkLCBOVUxMLCBNU19CSU5ELCBO VUxMKSA8IDApIHsKLSsJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gbW91bnQgJXMgb24g JXM6ICVtXG4iKSwgc3JjX25hbWUsCi0rCQkJZHN0X25hbWUpOwotKwkJZ290byBvdXQ7Ci0rCX0K LSsKLSsJcmMgPSAwOwotK291dDoKLSsJaWYgKHNyY19mZCA+PSAwKQotKwkJY2xvc2Uoc3JjX2Zk KTsKLSsJaWYgKGRzdF9mZCA+PSAwKQotKwkJY2xvc2UoZHN0X2ZkKTsKLSsJcmV0dXJuIHJjOwot IH0KLSAKLSAvKgotQEAgLTU1Niw3ICs1NTksOCBAQCBlcnI6Ci0gICogdG8gY2xlYW4gaXQgdXAu Ci0gICovCi0gc3RhdGljIGNoYXIgKmNyZWF0ZV90bXBkaXIoY29uc3QgY2hhciAqc3JjLCBzdHJ1 Y3Qgc3RhdCAqc3JjX3N0LAotLQlzdHJ1Y3Qgc3RhdCAqb3V0X3N0LCBzdHJ1Y3QgcGFzc3dkICpw d2QsIGNvbnN0IGNoYXIgKmV4ZWNjb24pCi0rCQkJc3RydWN0IHN0YXQgKm91dF9zdCwgc3RydWN0 IHBhc3N3ZCAqcHdkLAotKwkJCWNvbnN0IGNoYXIgKmV4ZWNjb24pCi0gewotIAljaGFyICp0bXBk aXIgPSBOVUxMOwotIAljaGFyICoqY21kID0gTlVMTDsKLUBAIC01NjQsMjkgKzU2OCwyMyBAQCBz dGF0aWMgY2hhciAqY3JlYXRlX3RtcGRpcihjb25zdCBjaGFyICpzcmMsIHN0cnVjdCBzdGF0ICpz cmNfc3QsCi0gCXN0cnVjdCBzdGF0IHRtcF9zdDsKLSAJY2hhciAqY29uID0gTlVMTDsKLSAKLS0J LyogZ2V0IHNlbGludXggY29udGV4dCAqLwotKwkvKiBnZXQgc2VsaW51eCBjb250ZXh0IG9mIHNv dXJjZSBkaXJlY3RvcnkgKi8KLSAJaWYgKGV4ZWNjb24pIHsKLSAJCWlmICgodWlkX3Qpc2V0ZnN1 aWQocHdkLT5wd191aWQpICE9IDApCi0gCQkJZ290byBlcnI7Ci0tCi0tCQlpZiAoKGZkX3MgPSBv cGVuKHNyYywgT19SRE9OTFkpKSA8IDApIHsKLS0JCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVk IHRvIG9wZW4gZGlyZWN0b3J5ICVzOiAlc1xuIiksIHNyYywgc3RyZXJyb3IoZXJybm8pKTsKLS0J CQlnb3RvIGVycjsKLS0JCX0KLS0JCWlmIChmc3RhdChmZF9zLCAmdG1wX3N0KSA9PSAtMSkgewot LQkJCWZwcmludGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gc3RhdCBkaXJlY3RvcnkgJXM6ICVzXG4i KSwgc3JjLCBzdHJlcnJvcihlcnJubykpOwotKwkJaWYgKChmZF9zID0gcGluX2RpcihzcmMsICZ0 bXBfc3QpKSA8IDApCi0gCQkJZ290byBlcnI7Ci0tCQl9Ci0tCQlpZiAoIWVxdWFsX3N0YXRzKHNy Y19zdCwgJnRtcF9zdCkpIHsKLS0JCQlmcHJpbnRmKHN0ZGVyciwgXygiRXJyb3I6ICVzIHdhcyBy ZXBsYWNlZCBieSBhIGRpZmZlcmVudCBkaXJlY3RvcnlcbiIpLCBzcmMpOwotKwkJaWYgKHRtcF9z dC5zdF9kZXYgIT0gc3JjX3N0LT5zdF9kZXYgfHwKLSsJCSAgICB0bXBfc3Quc3RfaW5vICE9IHNy Y19zdC0+c3RfaW5vKSB7Ci0rCQkJZnByaW50ZihzdGRlcnIsCi0rCQkJCV8oIiVzIHdhcyByZXBs YWNlZCBieSBhIGRpZmZlcmVudCBkaXJlY3RvcnlcbiIpLAotKwkJCQlzcmMpOwotIAkJCWdvdG8g ZXJyOwotIAkJfQotIAkJaWYgKGZnZXRmaWxlY29uKGZkX3MsICZjb24pID09IC0xKSB7Ci0tCQkJ ZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBnZXQgY29udGV4dCBvZiB0aGUgZGlyZWN0b3J5 ICVzOiAlc1xuIiksIHNyYywgc3RyZXJyb3IoZXJybm8pKTsKLSsJCQlmcHJpbnRmKHN0ZGVyciwg XygiRmFpbGVkIHRvIGdldCBjb250ZXh0IG9mIHRoZSBkaXJlY3RvcnkgJXM6ICVtXG4iKSwgc3Jj KTsKLSAJCQlnb3RvIGVycjsKLSAJCX0KLS0KLS0JCS8qIG9rIHRvIG5vdCByZWFjaCB0aGlzIGlm IHRoZXJlIGlzIGFuIGVycm9yICovCi0gCQlpZiAoKHVpZF90KXNldGZzdWlkKDApICE9IHB3ZC0+ cHdfdWlkKQotIAkJCWdvdG8gZXJyOwotIAl9Ci1AQCAtNjAyLDkgKzYwMCw5IEBAIHN0YXRpYyBj aGFyICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0IHN0YXQgKnNyY19zdCwK LSAJfQotIAotIAkvKiB0ZW1wb3JhcnkgZGlyZWN0b3J5IG11c3QgYmUgb3duZWQgYnkgcm9vdDp1 c2VyICovCi0tCWlmICh2ZXJpZnlfZGlyZWN0b3J5KHRtcGRpciwgTlVMTCwgb3V0X3N0KSA8IDAp IHsKLSsJZmRfdCA9IHBpbl9kaXIodG1wZGlyLCBvdXRfc3QpOwotKwlpZiAoZmRfdCA8IDApCi0g CQlnb3RvIGVycjsKLS0JfQotIAotIAlpZiAoY2hlY2tfb3duZXJfdWlkKDAsIHRtcGRpciwgb3V0 X3N0KSA8IDApCi0gCQlnb3RvIGVycjsKLUBAIC02MTMsMTggKzYxMSw2IEBAIHN0YXRpYyBjaGFy ICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0IHN0YXQgKnNyY19zdCwKLSAJ CWdvdG8gZXJyOwotIAotIAkvKiBjaGFuZ2UgcGVybWlzc2lvbnMgb2YgdGhlIHRlbXBvcmFyeSBk aXJlY3RvcnkgKi8KLS0JaWYgKChmZF90ID0gb3Blbih0bXBkaXIsIE9fUkRPTkxZKSkgPCAwKSB7 Ci0tCQlmcHJpbnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIG9wZW4gZGlyZWN0b3J5ICVzOiAlc1xu IiksIHRtcGRpciwgc3RyZXJyb3IoZXJybm8pKTsKLS0JCWdvdG8gZXJyOwotLQl9Ci0tCWlmIChm c3RhdChmZF90LCAmdG1wX3N0KSA9PSAtMSkgewotLQkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxl ZCB0byBzdGF0IGRpcmVjdG9yeSAlczogJXNcbiIpLCB0bXBkaXIsIHN0cmVycm9yKGVycm5vKSk7 Ci0tCQlnb3RvIGVycjsKLS0JfQotLQlpZiAoIWVxdWFsX3N0YXRzKG91dF9zdCwgJnRtcF9zdCkp IHsKLS0JCWZwcmludGYoc3RkZXJyLCBfKCJFcnJvcjogJXMgd2FzIHJlcGxhY2VkIGJ5IGEgZGlm ZmVyZW50IGRpcmVjdG9yeVxuIiksIHRtcGRpcik7Ci0tCQlnb3RvIGVycjsKLS0JfQotIAlpZiAo ZmNobW9kKGZkX3QsIDAxNzcwKSA9PSAtMSkgewotIAkJZnByaW50ZihzdGRlcnIsIF8oIlVuYWJs ZSB0byBjaGFuZ2UgbW9kZSBvbiAlczogJXNcbiIpLCB0bXBkaXIsIHN0cmVycm9yKGVycm5vKSk7 Ci0gCQlnb3RvIGVycjsKLUBAIC02NjQsMTAgKzY1MCwxMCBAQCBzdGF0aWMgY2hhciAqY3JlYXRl X3RtcGRpcihjb25zdCBjaGFyICpzcmMsIHN0cnVjdCBzdGF0ICpzcmNfc3QsCi0gZXJyOgotIAlm cmVlKHRtcGRpcik7IHRtcGRpciA9IE5VTEw7Ci0gZ29vZDoKLS0JZnJlZV9hcmdzKGNtZCk7Ci0t CWZyZWVjb24oY29uKTsgY29uID0gTlVMTDsKLSAJaWYgKGZkX3QgPj0gMCkgY2xvc2UoZmRfdCk7 Ci0gCWlmIChmZF9zID49IDApIGNsb3NlKGZkX3MpOwotKwlmcmVlX2FyZ3MoY21kKTsKLSsJZnJl ZWNvbihjb24pOyBjb24gPSBOVUxMOwotIAlyZXR1cm4gdG1wZGlyOwotIH0KLSAKLUBAIC03NzYs MTIgKzc2MiwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJY2hhciAq dG1wZGlyX3IgPSBOVUxMOwkvKiB0bXBkaXIgY3JlYXRlZCBieSBzZXVuc2hhcmUgKi8KLSAJY2hh ciAqcnVudXNlcmRpcl9zID0gTlVMTDsJLyogL3Zhci9ydW4vdXNlci9VSUQgc3BlYydkIGJ5IHVz ZXIgaW4gYXJndltdICovCi0gCi0tCXN0cnVjdCBzdGF0IHN0X2N1cmhvbWVkaXI7Ci0gCXN0cnVj dCBzdGF0IHN0X2hvbWVkaXI7Ci0gCXN0cnVjdCBzdGF0IHN0X3RtcGRpcl9zOwotIAlzdHJ1Y3Qg c3RhdCBzdF90bXBkaXJfcjsKLSAJc3RydWN0IHN0YXQgc3RfcnVudXNlcmRpcl9zOwotIAotKwlp bnQgZmQ7Ci0rCi0gCWNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7Ci0gCQl7 ImhvbWVkaXIiLCAxLCAwLCAnaCd9LAotIAkJeyJ0bXBkaXIiLCAxLCAwLCAndCd9LAotQEAgLTg5 MywyNCArODgwLDQ5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewotIAkJcmV0 dXJuIC0xOwotIAl9Ci0gCi0tCS8qIHZlcmlmeSBob21lZGlyIGFuZCB0bXBkaXIgKi8KLS0JaWYg KGhvbWVkaXJfcyAmJiAoCi0tCQl2ZXJpZnlfZGlyZWN0b3J5KGhvbWVkaXJfcywgTlVMTCwgJnN0 X2hvbWVkaXIpIDwgMCB8fAotLQkJY2hlY2tfb3duZXJfdWlkKHVpZCwgaG9tZWRpcl9zLCAmc3Rf aG9tZWRpcikpKSByZXR1cm4gLTE7Ci0tCWlmICh0bXBkaXJfcyAmJiAoCi0tCQl2ZXJpZnlfZGly ZWN0b3J5KHRtcGRpcl9zLCBOVUxMLCAmc3RfdG1wZGlyX3MpIDwgMCB8fAotLQkJY2hlY2tfb3du ZXJfdWlkKHVpZCwgdG1wZGlyX3MsICZzdF90bXBkaXJfcykpKSByZXR1cm4gLTE7Ci0tCWlmIChy dW51c2VyZGlyX3MgJiYgKAotLQkJdmVyaWZ5X2RpcmVjdG9yeShydW51c2VyZGlyX3MsIE5VTEws ICZzdF9ydW51c2VyZGlyX3MpIDwgMCB8fAotLQkJY2hlY2tfb3duZXJfdWlkKHVpZCwgcnVudXNl cmRpcl9zLCAmc3RfcnVudXNlcmRpcl9zKSkpIHJldHVybiAtMTsKLSsJLyoKLSsJICogUGVyZm9y bSBlYXJseSB2YWxpZGF0aW9uIG9mIHRoZSBjYWxsZXItcHJvdmlkZWQgZGlyZWN0b3JpZXMgc28g d2UKLSsJICogY2FuIGZhaWwgZmFzdCwgYnV0IHdlIHVuZm9ydHVuYXRlbHkgaGF2ZSB0byByZWRv IHRoaXMgYWZ0ZXIKLSsJICogdW5zaGFyaW5nIHRoZSBtb3VudCBuYW1lc3BhY2UgaW4gdGhlIGNo aWxkIHNvIHRoYXQgaXQgY2FuIHVzZQotKwkgKiB0aGUgZGVzY3JpcHRvcnMgZm9yIHN1YnNlcXVl bnQgbW91bnQoMikgY2FsbHMuIE90aGVyd2lzZSwKLSsJICogdGhleSBlbmQgdXAgd2l0aCBhIGRp ZmZlcmVudCBtb3VudCBuYW1lc3BhY2UgYW5kIG1vdW50KDIpIGZhaWxzCi0rCSAqIHdpdGggZXJy bm8gRUlOVkFMLgotKwkgKi8KLSsJaWYgKGhvbWVkaXJfcykgewotKwkJZmQgPSBwaW5fZGlyKGhv bWVkaXJfcywgJnN0X2hvbWVkaXIpOwotKwkJaWYgKGZkIDwgMCkKLSsJCQlyZXR1cm4gLTE7Ci0r CQlpZiAoY2hlY2tfb3duZXJfdWlkKHVpZCwgaG9tZWRpcl9zLCAmc3RfaG9tZWRpcikpCi0rCQkJ cmV0dXJuIC0xOwotKwkJY2xvc2UoZmQpOwotKwl9Ci0rCWlmICh0bXBkaXJfcykgewotKwkJZmQg PSBwaW5fZGlyKHRtcGRpcl9zLCAmc3RfdG1wZGlyX3MpOwotKwkJaWYgKGZkIDwgMCkKLSsJCQly ZXR1cm4gLTE7Ci0rCQlpZiAoY2hlY2tfb3duZXJfdWlkKHVpZCwgdG1wZGlyX3MsICZzdF90bXBk aXJfcykpCi0rCQkJcmV0dXJuIC0xOwotKwkJY2xvc2UoZmQpOwotKwl9Ci0rCWlmIChydW51c2Vy ZGlyX3MpIHsKLSsJCWZkID0gcGluX2RpcihydW51c2VyZGlyX3MsICZzdF9ydW51c2VyZGlyX3Mp OwotKwkJaWYgKGZkIDwgMCkKLSsJCQlyZXR1cm4gLTE7Ci0rCQlpZiAoY2hlY2tfb3duZXJfdWlk KHVpZCwgcnVudXNlcmRpcl9zLCAmc3RfcnVudXNlcmRpcl9zKSkKLSsJCQlyZXR1cm4gLTE7Ci0r CQljbG9zZShmZCk7Ci0rCX0KLSAKLSAJaWYgKCh1aWRfdClzZXRmc3VpZCgwKSAhPSB1aWQpIHJl dHVybiAtMTsKLSAKLSAJLyogY3JlYXRlIHJ1bnRpbWUgdG1wZGlyICovCi0tCWlmICh0bXBkaXJf cyAmJiAodG1wZGlyX3IgPSBjcmVhdGVfdG1wZGlyKHRtcGRpcl9zLCAmc3RfdG1wZGlyX3MsCi0t CQkJCQkJICAmc3RfdG1wZGlyX3IsIHB3ZCwgZXhlY2NvbikpID09IE5VTEwpIHsKLS0JCWZwcmlu dGYoc3RkZXJyLCBfKCJGYWlsZWQgdG8gY3JlYXRlIHJ1bnRpbWUgdGVtcG9yYXJ5IGRpcmVjdG9y eVxuIikpOwotLQkJcmV0dXJuIC0xOwotKwlpZiAodG1wZGlyX3MpIHsKLSsJCXRtcGRpcl9yID0g Y3JlYXRlX3RtcGRpcih0bXBkaXJfcywgJnN0X3RtcGRpcl9zLCAmc3RfdG1wZGlyX3IsCi0rCQkJ CQkgcHdkLCBleGVjY29uKTsKLSsJCWlmICghdG1wZGlyX3IpIHsKLSsJCQlmcHJpbnRmKHN0ZGVy ciwgXygiRmFpbGVkIHRvIGNyZWF0ZSBydW50aW1lIHRlbXBvcmFyeSBkaXJlY3RvcnlcbiIpKTsK LSsJCQlyZXR1cm4gLTE7Ci0rCQl9Ci0gCX0KLSAKLSAJLyogc3Bhd24gY2hpbGQgcHJvY2VzcyAq LwotQEAgLTkyNywxMSArOTM5LDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikg ewotIAkJY2hhciAqWERHX1NFU1NJT05fVFlQRSA9IE5VTEw7Ci0gCQlpbnQgcmMgPSAtMTsKLSAJ CWNoYXIgKnJlc29sdmVkX3BhdGggPSBOVUxMOwotLQkJY2hhciAqd2F5bGFuZF9wYXRoX3MgPSBO VUxMOyAvKiAvdG1wLy4uLi93YXlsYW5kLTAgKi8KLS0JCWNoYXIgKndheWxhbmRfcGF0aCA9IE5V TEw7IC8qIC9ydW4vdXNlci9VSUQvd2F5bGFuZC0wICovCi0tCQljaGFyICpwaXBld2lyZV9wYXRo X3MgPSBOVUxMOyAvKiAvdG1wLy4uLi9waXBld2lyZS0wICovCi0tCQljaGFyICpwaXBld2lyZV9w YXRoID0gTlVMTDsgLyogL3J1bi91c2VyL1VJRC9waXBld2lyZS0wICovCi0tCi0rCQlpbnQgZmRf aG9tZWRpcl9zID0gLTEsIGZkX2N1cmhvbWVkaXIgPSAtMTsKLSsJCWludCBmZF9ydW51c2VyZGly X3MgPSAtMSwgZmRfcnVudGltZV9kaXIgPSAtMTsKLSsJCWludCBmZF90bXBkaXJfciA9IC0xLCBm ZF90bXAgPSAtMSwgZmRfdmFyX3RtcCA9IC0xOwotKwkJc3RydWN0IHN0YXQgc2I7Ci0gCi0gCQlp ZiAodW5zaGFyZShDTE9ORV9ORVdOUykgPCAwKSB7Ci0gCQkJcGVycm9yKF8oIkZhaWxlZCB0byB1 bnNoYXJlIikpOwotQEAgLTk0MSwxOSArOTUyLDY3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikgewotIAkJLyogUmVtb3VudCAvIGFzIFNMQVZFIHNvIHRoYXQgbm90aGluZyBtb3Vu dGVkIGluIHRoZSBuYW1lc3BhY2UgCi0gCQkgICBzaG93cyB1cCBpbiB0aGUgcGFyZW50ICovCi0g CQlpZiAobW91bnQoIm5vbmUiLCAiLyIsIE5VTEwsIE1TX1NMQVZFIHwgTVNfUkVDICwgTlVMTCkg PCAwKSB7Ci0tCQkJcGVycm9yKF8oIkZhaWxlZCB0byBtYWtlIC8gYSBTTEFWRSBtb3VudHBvaW50 XG4iKSk7Ci0rCi0gCQkJZ290byBjaGlsZGVycjsKLSAJCX0KLSAKLSAJCS8qIGFzc3VtZSBmc3Vp ZD09cnVpZCBhZnRlciB0aGlzIHBvaW50ICovCi0gCQlpZiAoKHVpZF90KXNldGZzdWlkKHVpZCkg IT0gMCkgZ290byBjaGlsZGVycjsKLSAKLSsJCS8qCi0rCQkgKiBOb3cgd2UgY2FuIHBpbiB0aGUg c291cmNlIGRpcmVjdG9yaWVzIGluIHRoaXMgbmFtZXNwYWNlCi0rCQkgKiBmb3IgbGF0ZXIgdXNl IGJ5IG1vdW50KDIpLiBXZSByZWNoZWNrIHRoYXQgZWFjaAotKwkJICogZGlyZWN0b3J5IGlzIHRo ZSBzYW1lIGlub2RlIGFuZCBzdGlsbCBoYXMgdGhlCi0rCQkgKiBleHBlY3RlZCBvd25lcnNoaXAg YXMgdGhlIGVhcmx5IHZhbGlkYXRpb24uCi0rCQkgKi8KLSsJCWlmIChob21lZGlyX3MpIHsKLSsJ CQlmZF9ob21lZGlyX3MgPSBwaW5fZGlyKGhvbWVkaXJfcywgJnNiKTsKLSsJCQlpZiAoZmRfaG9t ZWRpcl9zIDwgMCkKLSsJCQkJZ290byBjaGlsZGVycjsKLSsJCQlpZiAoc2Iuc3RfZGV2ICE9IHN0 X2hvbWVkaXIuc3RfZGV2IHx8Ci0rCQkJCXNiLnN0X2lubyAhPSBzdF9ob21lZGlyLnN0X2lubykK LSsJCQkJZ290byBjaGlsZGVycjsKLSsJCQlpZiAoY2hlY2tfb3duZXJfdWlkKHVpZCwgaG9tZWRp cl9zLCAmc2IpKQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwkJfQotKwkJLyoKLSsJCSAqIE5CIFdl IGRvbid0IG5lZWQgdG8gcmUtcGluIHRtcGRpcl9zLCBqdXN0IHRtcGRpcl9yLAotKwkJICogc2lu Y2UgdGhlIGNoaWxkIG5ldmVyIHVzZXMgdG1wZGlyX3MuCi0rCQkgKi8KLSsJCWlmICh0bXBkaXJf cikgewotKwkJCWZkX3RtcGRpcl9yID0gcGluX2Rpcih0bXBkaXJfciwgJnNiKTsKLSsJCQlpZiAo ZmQgPCAwKQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwkJCS8qCi0rCQkJICogdG1wZGlyX3IgY2hl Y2tzIGRpZmZlciBpbiB0aGF0IGl0IGlzCi0rCQkJICogcm9vdC1vd25lZCBhbmQgd2UgYWxzbyB3 YW50IHRvIHZhbGlkYXRlCi0rCQkJICogdGhhdCB0aGUgbW9kZSBpcyBzdGlsbCBjb3JyZWN0Lgot KwkJCSAqLwotKwkJCWlmIChzYi5zdF9kZXYgIT0gc3RfdG1wZGlyX3Iuc3RfZGV2IHx8Ci0rCQkJ CXNiLnN0X2lubyAhPSBzdF90bXBkaXJfci5zdF9pbm8gfHwKLSsJCQkJc2Iuc3RfbW9kZSAhPSBz dF90bXBkaXJfci5zdF9tb2RlKQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwkJCWlmIChjaGVja19v d25lcl91aWQoMCwgdG1wZGlyX3IsICZzYikpCi0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQl9Ci0r CQlpZiAocnVudXNlcmRpcl9zKSB7Ci0rCQkJZmRfcnVudXNlcmRpcl9zID0gcGluX2RpcihydW51 c2VyZGlyX3MsICZzYik7Ci0rCQkJaWYgKGZkX3J1bnVzZXJkaXJfcyA8IDApCi0rCQkJCWdvdG8g Y2hpbGRlcnI7Ci0rCQkJaWYgKHNiLnN0X2RldiAhPSBzdF9ydW51c2VyZGlyX3Muc3RfZGV2IHx8 Ci0rCQkJCXNiLnN0X2lubyAhPSBzdF9ydW51c2VyZGlyX3Muc3RfaW5vKQotKwkJCQlnb3RvIGNo aWxkZXJyOwotKwkJCWlmIChjaGVja19vd25lcl91aWQodWlkLCBydW51c2VyZGlyX3MsICZzYikp Ci0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQl9Ci0rCi0gCQlyZXNvbHZlZF9wYXRoID0gcmVhbHBh dGgocHdkLT5wd19kaXIsTlVMTCk7Ci0gCQlpZiAoISByZXNvbHZlZF9wYXRoKSBnb3RvIGNoaWxk ZXJyOwotIAotLQkJaWYgKHZlcmlmeV9kaXJlY3RvcnkocmVzb2x2ZWRfcGF0aCwgTlVMTCwgJnN0 X2N1cmhvbWVkaXIpIDwgMCkKLSsJCWZkX2N1cmhvbWVkaXIgPSBwaW5fZGlyKHJlc29sdmVkX3Bh dGgsICZzYik7Ci0rCQlpZiAoZmRfY3VyaG9tZWRpciA8IDApCi0gCQkJZ290byBjaGlsZGVycjsK LS0JCWlmIChjaGVja19vd25lcl91aWQodWlkLCByZXNvbHZlZF9wYXRoLCAmc3RfY3VyaG9tZWRp cikgPCAwKQotKwkJaWYgKGNoZWNrX293bmVyX3VpZCh1aWQsIHJlc29sdmVkX3BhdGgsICZzYikg PCAwKQotIAkJCWdvdG8gY2hpbGRlcnI7Ci0gCi0gCQlpZiAoKFJVTlRJTUVfRElSID0gZ2V0ZW52 KCJYREdfUlVOVElNRV9ESVIiKSkgIT0gTlVMTCkgewotQEAgLTk2OSwxMiArMTAyOCwxMSBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJCX0KLSAKLSAJCWlmIChydW51c2Vy ZGlyX3MpIHsKLS0JCQlzdHJ1Y3Qgc3RhdCBzYjsKLS0KLS0JCQlpZiAodmVyaWZ5X2RpcmVjdG9y eShSVU5USU1FX0RJUiwgTlVMTCwgJnNiKSA8IDAgfHwKLS0JCQkJY2hlY2tfb3duZXJfdWlkKHVp ZCwgUlVOVElNRV9ESVIsICZzYikgPCAwKQotKwkJCWZkX3J1bnRpbWVfZGlyID0gcGluX2RpcihS VU5USU1FX0RJUiwgJnNiKTsKLSsJCQlpZiAoZmRfcnVudGltZV9kaXIgPCAwKQotKwkJCQlnb3Rv IGNoaWxkZXJyOwotKwkJCWlmIChjaGVja19vd25lcl91aWQodWlkLCBSVU5USU1FX0RJUiwgJnNi KSA8IDApCi0gCQkJCWdvdG8gY2hpbGRlcnI7Ci0tCi0gCQl9Ci0gCi0gCQlpZiAoKFhER19TRVNT SU9OX1RZUEUgPSBnZXRlbnYoIlhER19TRVNTSU9OX1RZUEUiKSkgIT0gTlVMTCkgewotQEAgLTk4 NSw0MiArMTA0Myw1NyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAJCX0K LSAKLSAJCWlmIChydW51c2VyZGlyX3MgJiYgKHdheWxhbmRfZGlzcGxheSB8fCBwaXBld2lyZV9z b2NrZXQpKSB7Ci0tCQkJaWYgKHdheWxhbmRfZGlzcGxheSkgewotLQkJCQlpZiAoYXNwcmludGYo JndheWxhbmRfcGF0aF9zLCAiJXMvJXMiLCBydW51c2VyZGlyX3MsIHdheWxhbmRfZGlzcGxheSkg PT0gLTEpIHsKLS0JCQkJCXBlcnJvcihfKCJPdXQgb2YgbWVtb3J5IikpOwotKwkJCWlmICh3YXls YW5kX2Rpc3BsYXkgJiYKLSsJCQkgICAgc2V1bnNoYXJlX21vdW50X2ZpbGUoZmRfcnVudGltZV9k aXIsCi0rCQkJCQkgICAgd2F5bGFuZF9kaXNwbGF5LAotKwkJCQkJICAgIGZkX3J1bnVzZXJkaXJf cywKLSsJCQkJCSAgICB3YXlsYW5kX2Rpc3BsYXkpID09IC0xKQotIAkJCQkJZ290byBjaGlsZGVy cjsKLS0JCQkJfQotIAotLQkJCQlpZiAoYXNwcmludGYoJndheWxhbmRfcGF0aCwgIiVzLyVzIiwg UlVOVElNRV9ESVIsIHdheWxhbmRfZGlzcGxheSkgPT0gLTEpIHsKLS0JCQkJCXBlcnJvcihfKCJP dXQgb2YgbWVtb3J5IikpOwotLQkJCQkJZ290byBjaGlsZGVycjsKLS0JCQkJfQotKwkJCWlmIChw aXBld2lyZV9zb2NrZXQgJiYKLSsJCQkgICAgc2V1bnNoYXJlX21vdW50X2ZpbGUoZmRfcnVudGlt ZV9kaXIsCi0rCQkJCQkgICAgInBpcGV3aXJlLTAiLAotKwkJCQkJICAgIGZkX3J1bnVzZXJkaXJf cywKLSsJCQkJCSAgICBwaXBld2lyZV9zb2NrZXQpID09IC0xKQotKwkJCQlnb3RvIGNoaWxkZXJy OwotKwkJfQotIAotLQkJCQlpZiAoc2V1bnNoYXJlX21vdW50X2ZpbGUod2F5bGFuZF9wYXRoLCB3 YXlsYW5kX3BhdGhfcykgPT0gLTEpCi0tCQkJCQlnb3RvIGNoaWxkZXJyOwotKwkJLyogbW91bnQg aG9tZWRpciwgcnVudXNlcmRpciBhbmQgdG1wZGlyLCBpbiB0aGlzIG9yZGVyICovCi0rCQlpZiAo cnVudXNlcmRpcl9zICYmCi0rCQkJc2V1bnNoYXJlX21vdW50KHJ1bnVzZXJkaXJfcywgZmRfcnVu dXNlcmRpcl9zLAotKwkJCQkJUlVOVElNRV9ESVIsIGZkX3J1bnRpbWVfZGlyLAotKwkJCQkJTVNf UkVDLCAwKSAhPSAwKQotKwkJCWdvdG8gY2hpbGRlcnI7Ci0rCQlpZiAoaG9tZWRpcl9zICYmCi0r CQkJc2V1bnNoYXJlX21vdW50KGhvbWVkaXJfcywgZmRfaG9tZWRpcl9zLAotKwkJCQkJcmVzb2x2 ZWRfcGF0aCwgZmRfY3VyaG9tZWRpciwKLSsJCQkJCTAsIDApICE9IDApCi0rCQkJZ290byBjaGls ZGVycjsKLSsJCWlmICh0bXBkaXJfcykgewotKwkJCWZkX3RtcCA9IG9wZW4oIi90bXAiLCBPX1JE T05MWSB8IE9fRElSRUNUT1JZIHwKLSsJCQkJICAgICAgT19OT0ZPTExPVyB8IE9fQ0xPRVhFQyk7 Ci0rCQkJaWYgKGZkX3RtcCA8IDApIHsKLSsJCQkJcGVycm9yKF8oIkZhaWxlZCB0byBvcGVuIC90 bXAiKSk7Ci0rCQkJCWdvdG8gY2hpbGRlcnI7Ci0gCQkJfQotIAotLQkJCWlmIChwaXBld2lyZV9z b2NrZXQpIHsKLS0JCQkJaWYgKGFzcHJpbnRmKCZwaXBld2lyZV9wYXRoX3MsICIlcy8lcyIsIHJ1 bnVzZXJkaXJfcywgcGlwZXdpcmVfc29ja2V0KSA9PSAtMSkgewotLQkJCQkJcGVycm9yKF8oIk91 dCBvZiBtZW1vcnkiKSk7Ci0tCQkJCQlnb3RvIGNoaWxkZXJyOwotLQkJCQl9Ci0tCQkJCWlmIChh c3ByaW50ZigmcGlwZXdpcmVfcGF0aCwgIiVzL3BpcGV3aXJlLTAiLCBSVU5USU1FX0RJUikgPT0g LTEpIHsKLS0JCQkJCXBlcnJvcihfKCJPdXQgb2YgbWVtb3J5IikpOwotLQkJCQkJZ290byBjaGls ZGVycjsKLS0JCQkJfQotLQkJCQlpZiAoc2V1bnNoYXJlX21vdW50X2ZpbGUocGlwZXdpcmVfcGF0 aCwgcGlwZXdpcmVfcGF0aF9zKSA9PSAtMSkKLS0JCQkJCWdvdG8gY2hpbGRlcnI7Ci0rCQkJaWYg KHNldW5zaGFyZV9tb3VudCh0bXBkaXJfciwgZmRfdG1wZGlyX3IsCi0rCQkJCQkgICAgIi90bXAi LCBmZF90bXAsIDAsCi0rCQkJCQkgICAgTVNfTk9ERVZ8TVNfTk9TVUlEfE1TX05PRVhFQykgPCAw KQotKwkJCQlnb3RvIGNoaWxkZXJyOwotKwotKwkJCWZkX3Zhcl90bXAgPSBvcGVuKCIvdmFyL3Rt cCIsIE9fUkRPTkxZIHwgT19ESVJFQ1RPUlkgfAotKwkJCQkJT19OT0ZPTExPVyB8IE9fQ0xPRVhF Qyk7Ci0rCQkJaWYgKGZkX3Zhcl90bXAgPCAwKSB7Ci0rCQkJCXBlcnJvcihfKCJGYWlsZWQgdG8g b3BlbiAvdmFyL3RtcCIpKTsKLSsJCQkJZ290byBjaGlsZGVycjsKLSAJCQl9Ci0tCQl9Ci0gCi0t CQkvKiBtb3VudCBob21lZGlyLCBydW51c2VyZGlyIGFuZCB0bXBkaXIsIGluIHRoaXMgb3JkZXIg Ki8KLS0JCWlmIChydW51c2VyZGlyX3MgJiYJc2V1bnNoYXJlX21vdW50KHJ1bnVzZXJkaXJfcywg UlVOVElNRV9ESVIsCi0tCQkJJnN0X3J1bnVzZXJkaXJfcykgIT0gMCkgZ290byBjaGlsZGVycjsK LS0JCWlmIChob21lZGlyX3MgJiYgc2V1bnNoYXJlX21vdW50KGhvbWVkaXJfcywgcmVzb2x2ZWRf cGF0aCwKLS0JCQkmc3RfaG9tZWRpcikgIT0gMCkgZ290byBjaGlsZGVycjsKLS0JCWlmICh0bXBk aXJfcyAmJglzZXVuc2hhcmVfbW91bnQodG1wZGlyX3IsICIvdG1wIiwKLS0JCQkmc3RfdG1wZGly X3IpICE9IDApIGdvdG8gY2hpbGRlcnI7Ci0rCQkJaWYgKHNldW5zaGFyZV9tb3VudCgiL3RtcCIs IGZkX3RtcGRpcl9yLAotKwkJCQkJIi92YXIvdG1wIiwgZmRfdmFyX3RtcCwgMCwKLSsJCQkJCU1T X05PREVWfE1TX05PU1VJRHxNU19OT0VYRUMpIDwgMCkKLSsJCQkJZ290byBjaGlsZGVycjsKLSsJ CX0KLSAKLSAJCWlmIChkcm9wX3ByaXZzKHVpZCkgIT0gMCkgZ290byBjaGlsZGVycjsKLSAKLUBA IC0xMTAxLDExICsxMTc0LDE0IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewot IAkJZXhlY3YoYXJndltvcHRpbmRdLCBhcmd2ICsgb3B0aW5kKTsKLSAJCWZwcmludGYoc3RkZXJy LCBfKCJGYWlsZWQgdG8gZXhlY3V0ZSBjb21tYW5kICVzOiAlc1xuIiksIGFyZ3Zbb3B0aW5kXSwg c3RyZXJyb3IoZXJybm8pKTsKLSBjaGlsZGVycjoKLSsJCWlmIChmZF9ob21lZGlyX3MgPj0gMCkg Y2xvc2UoZmRfaG9tZWRpcl9zKTsKLSsJCWlmIChmZF9jdXJob21lZGlyID49IDApIGNsb3NlKGZk X2N1cmhvbWVkaXIpOwotKwkJaWYgKGZkX3J1bnVzZXJkaXJfcyA+PSAwKSBjbG9zZShmZF9ydW51 c2VyZGlyX3MpOwotKwkJaWYgKGZkX3J1bnRpbWVfZGlyID49IDApIGNsb3NlKGZkX3J1bnRpbWVf ZGlyKTsKLSsJCWlmIChmZF90bXBkaXJfciA+PSAwKSBjbG9zZShmZF90bXBkaXJfcik7Ci0rCQlp ZiAoZmRfdG1wID49IDApIGNsb3NlKGZkX3RtcCk7Ci0rCQlpZiAoZmRfdmFyX3RtcCA+PSAwKSBj bG9zZShmZF92YXJfdG1wKTsKLSAJCWZyZWUocmVzb2x2ZWRfcGF0aCk7Ci0tCQlmcmVlKHdheWxh bmRfcGF0aCk7Ci0tCQlmcmVlKHdheWxhbmRfcGF0aF9zKTsKLS0JCWZyZWUocGlwZXdpcmVfcGF0 aCk7Ci0tCQlmcmVlKHBpcGV3aXJlX3BhdGhfcyk7Ci0gCQlmcmVlKGRpc3BsYXkpOwotIAkJZnJl ZShMQU5HKTsKLSAJCWZyZWUoUlVOVElNRV9ESVIpOwotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdp dCBhLzAwMjEtc2FuZGJveC1zZXVuc2hhcmUtZnVsbHktY2hlY2stc2V0ZnN1aWQtY2FsbHMucGF0 Y2ggYi8wMDIxLXNhbmRib3gtc2V1bnNoYXJlLWZ1bGx5LWNoZWNrLXNldGZzdWlkLWNhbGxzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzdkNTBiLi4wMDAwMDAwCi0tLSBh LzAwMjEtc2FuZGJveC1zZXVuc2hhcmUtZnVsbHktY2hlY2stc2V0ZnN1aWQtY2FsbHMucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAsMCBAQAotRnJvbSA1OWNmZWQzYmYyMzUxMWY3OTJi ZGUzMDg1NzU5YWI0NGVkNjQzYTRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3Rl cGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1EYXRlOiBUaHUs IDE0IE1heSAyMDI2IDExOjAzOjQwIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNhbmRib3gvc2V1 bnNoYXJlOiBmdWxseSBjaGVjayBzZXRmc3VpZCgpIGNhbGxzCi1Db250ZW50LXR5cGU6IHRleHQv cGxhaW4KLQotc2V0ZnN1aWQoKSByZXR1cm5zIHRoZSBvbGQgZnN1aWQgdmFsdWUgYW5kIGRvZXNu J3QgYWx3YXlzCi1zZXQgZXJybm8uIFRoZSBleGlzdGluZyBjb2RlIHdhcyBjaGVja2luZyB0aGF0 IGl0IGRpZAotc3VjY2Vzc2Z1bGx5IHJldHVybiB0aGUgb2xkIGZzdWlkIHZhbHVlIGJ1dCBub3Qg ZXhwbGljaXRseQotY2hlY2tpbmcgdGhhdCB0aGUgbmV3IG9uZSB3YXMgc2V0LCB3aGljaCBjYW4g YmUgZG9uZSBieQotYSBzZWNvbmQgY2FsbCB0byBzZXRmc3VpZCgpIHdpdGggLTEgYW5kIGNoZWNr aW5nIGl0cwotcmV0dXJuIHZhbHVlLiBBZGQgYSB3cmFwcGVyIGZvciBzZXRmc3VpZCgpIGFuZCB1 c2UgaXQKLXRocm91Z2hvdXQgdG8gZW5zdXJlIGNvbXBsZXRlIGNoZWNraW5nLgotCi1TaWduZWQt b2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4K LS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCA2MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwg MTIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2Fu ZGJveC9zZXVuc2hhcmUuYwotaW5kZXggNjExYmZlODBkMDMwLi45OGZjZWYzMjY4NTMgMTAwNjQ0 Ci0tLS0gYS9zYW5kYm94L3NldW5zaGFyZS5jCi0rKysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1A QCAtNDg2LDYgKzQ4Niw0NCBAQCBzdGF0aWMgYm9vbCBybV9yZihpbnQgdGFyZ2V0ZmQsIGNvbnN0 IGNoYXIgKnBhdGgpIHsKLSAJcmV0dXJuIHRydWU7Ci0gfQotIAotKy8qCi0rICogc2V0ZnN1aWQo KSByZXR1cm5zIHRoZSBwcmV2aW91cyBmc3VpZCB2YWx1ZSwKLSsgKiBhbmQgZG9lcyBub3QgcmVs aWFibHkgc2V0IGVycm5vIG9uIGVycm9ycy4KLSsgKiBMZXQncyBkbyBiZXR0ZXIuCi0rICovCi0r c3RhdGljIGludCBzZXRmc3VpZF9jaGVja2VkKHVpZF90IG9sZCwgdWlkX3QgbmV3KQotK3sKLSsJ aW50IHJjOwotKwotKwlyYyA9IHNldGZzdWlkKG5ldyk7Ci0rCWlmICgodWlkX3QpcmMgIT0gb2xk KSB7Ci0rCQlpbnQgc2F2ZV9lcnJubyA9IGVycm5vOwotKwkJZnByaW50ZihzdGRlcnIsCi0rCQkJ InNldGZzdWlkKCV1KTogUmV0dXJuZWQgdW5leHBlY3RlZCBvbGQgdWlkICV1XG4iLAotKwkJCW5l dywgKHVpZF90KXJjKTsKLSsJCWlmIChzYXZlX2Vycm5vKQotKwkJCWVycm5vID0gc2F2ZV9lcnJu bzsKLSsJCWVsc2UKLSsJCQllcnJubyA9IEVQRVJNOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCi0r CXJjID0gc2V0ZnN1aWQoLTEpOwotKwlpZiAoKHVpZF90KXJjICE9IG5ldykgewotKwkJaW50IHNh dmVfZXJybm8gPSBlcnJubzsKLSsJCWZwcmludGYoc3RkZXJyLAotKwkJCSJzZXRmc3VpZCgldSk6 IFByb2R1Y2VkIHVuZXhwZWN0ZWQgbmV3IHVpZCAldVxuIiwKLSsJCQluZXcsKHVpZF90KXJjKTsK LSsJCWlmIChzYXZlX2Vycm5vKQotKwkJCWVycm5vID0gc2F2ZV9lcnJubzsKLSsJCWVsc2UKLSsJ CQllcnJubyA9IEVQRVJNOwotKwkJcmV0dXJuIC0xOwotKwl9Ci0rCi0rCXJldHVybiAwOwotK30K LSsKLSAvKioKLSAgKiBDbGVhbiB1cCBydW50aW1lIHRlbXBvcmFyeSBkaXJlY3RvcnkuICBSZXR1 cm5zIDAgaWYgbm8gcHJvYmxlbSB3YXMgZGV0ZWN0ZWQsCi0gICogPjAgaWYgc29tZSBlcnJvciB3 YXMgZGV0ZWN0ZWQsIGJ1dCBlcnJvcnMgaGVyZSBhcmUgdHJlYXRlZCBhcyBub24tZmF0YWwgYW5k Ci1AQCAtNTI5LDEwICs1NjcsOCBAQCBzdGF0aWMgaW50IGNsZWFudXBfdG1wZGlyKGNvbnN0IGNo YXIgKnRtcGRpciwgY29uc3QgY2hhciAqc3JjLAotIAkJZnJlZV9hcmdzKGFyZ3MpOwotIAl9Ci0g Ci0tCWlmICgodWlkX3Qpc2V0ZnN1aWQoMCkgIT0gMCkgewotLQkJLyogc2V0ZnN1aWQgZG9lcyBu b3QgcmV0dXJuIGVycm9yLCBidXQgdGhpcyBjaGVjayBtYWtlcyBjb2RlIGNoZWNrZXJzIGhhcHB5 ICovCi0rCWlmIChzZXRmc3VpZF9jaGVja2VkKDAsIDApIDwgMCkKLSAJCXJjKys7Ci0tCX0KLSAK LSAJLyogUmVjdXJzaXZlbHkgcmVtb3ZlIHRoZSBydW50aW1lIHRlbXAgZGlyZWN0b3J5LiAgKi8K LSAJaWYgKCFybV9yZihBVF9GRENXRCwgdG1wZGlyKSkgewotQEAgLTU0MCw3ICs1NzYsNyBAQCBz dGF0aWMgaW50IGNsZWFudXBfdG1wZGlyKGNvbnN0IGNoYXIgKnRtcGRpciwgY29uc3QgY2hhciAq c3JjLAotIAkJcmMrKzsKLSAJfQotIAotLQlpZiAoKHVpZF90KXNldGZzdWlkKHB3ZC0+cHdfdWlk KSAhPSAwKSB7Ci0rCWlmIChzZXRmc3VpZF9jaGVja2VkKDAsIHB3ZC0+cHdfdWlkKSA8IDApIHsK LSAJCWZwcmludGYoc3RkZXJyLCBfKCJ1bmFibGUgdG8gc3dpdGNoIGJhY2sgdG8gdXNlciBhZnRl ciBjbGVhcmluZyB0bXAgZGlyXG4iKSk7Ci0gCQlyYysrOwotIAl9Ci1AQCAtNTcwLDcgKzYwNiw3 IEBAIHN0YXRpYyBjaGFyICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0IHN0 YXQgKnNyY19zdCwKLSAKLSAJLyogZ2V0IHNlbGludXggY29udGV4dCBvZiBzb3VyY2UgZGlyZWN0 b3J5ICovCi0gCWlmIChleGVjY29uKSB7Ci0tCQlpZiAoKHVpZF90KXNldGZzdWlkKHB3ZC0+cHdf dWlkKSAhPSAwKQotKwkJaWYgKHNldGZzdWlkX2NoZWNrZWQoMCwgcHdkLT5wd191aWQpKQotIAkJ CWdvdG8gZXJyOwotIAkJaWYgKChmZF9zID0gcGluX2RpcihzcmMsICZ0bXBfc3QpKSA8IDApCi0g CQkJZ290byBlcnI7Ci1AQCAtNTg1LDcgKzYyMSw3IEBAIHN0YXRpYyBjaGFyICpjcmVhdGVfdG1w ZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0IHN0YXQgKnNyY19zdCwKLSAJCQlmcHJpbnRmKHN0 ZGVyciwgXygiRmFpbGVkIHRvIGdldCBjb250ZXh0IG9mIHRoZSBkaXJlY3RvcnkgJXM6ICVtXG4i KSwgc3JjKTsKLSAJCQlnb3RvIGVycjsKLSAJCX0KLS0JCWlmICgodWlkX3Qpc2V0ZnN1aWQoMCkg IT0gcHdkLT5wd191aWQpCi0rCQlpZiAoc2V0ZnN1aWRfY2hlY2tlZChwd2QtPnB3X3VpZCwgMCkg PCAwKQotIAkJCWdvdG8gZXJyOwotIAl9Ci0gCi1AQCAtNjI5LDcgKzY2NSw3IEBAIHN0YXRpYyBj aGFyICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3RydWN0IHN0YXQgKnNyY19zdCwK LSAJCX0KLSAJfQotIAotLQlpZiAoKHVpZF90KXNldGZzdWlkKHB3ZC0+cHdfdWlkKSAhPSAwKQot KwlpZiAoc2V0ZnN1aWRfY2hlY2tlZCgwLCBwd2QtPnB3X3VpZCkgPCAwKQotIAkJZ290byBlcnI7 Ci0gCi0gCWlmIChyc3luY2NtZChzcmMsIHRtcGRpciwgJmNtZCkgPCAwKSB7Ci1AQCAtNjM3LDcg KzY3Myw3IEBAIHN0YXRpYyBjaGFyICpjcmVhdGVfdG1wZGlyKGNvbnN0IGNoYXIgKnNyYywgc3Ry dWN0IHN0YXQgKnNyY19zdCwKLSAJfQotIAotIAkvKiBvayB0byBub3QgcmVhY2ggdGhpcyBpZiB0 aGVyZSBpcyBhbiBlcnJvciAqLwotLQlpZiAoKHVpZF90KXNldGZzdWlkKDApICE9IHB3ZC0+cHdf dWlkKQotKwlpZiAoc2V0ZnN1aWRfY2hlY2tlZChwd2QtPnB3X3VpZCwgMCkgPCAwKQotIAkJZ290 byBlcnI7Ci0gCi0gCWlmIChzcGF3bl9jb21tYW5kKGNtZCwgcHdkLT5wd191aWQpICE9IDApIHsK LUBAIC04NzQsOSArOTEwLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0g CS8qIENoYW5naW5nIGZzdWlkIGlzIHVzdWFsbHkgcmVxdWlyZWQgd2hlbiB1c2VyLXNwZWNpZmll ZCBkaXJlY3RvcnkgaXMKLSAJICogb24gYW4gTkZTIG1vdW50LiAgSXQncyBhbHNvIGRlc2lyZWQg dG8gYXZvaWQgbGVha2luZyBpbmZvIGFib3V0Ci0gCSAqIGV4aXN0ZW5jZSBvZiB0aGUgZmlsZXMg bm90IGFjY2Vzc2libGUgdG8gdGhlIHVzZXIuICovCi0tCWlmICgodWlkX3Qpc2V0ZnN1aWQodWlk KSAhPSAwKSB7Ci0rCWlmIChzZXRmc3VpZF9jaGVja2VkKDAsIHVpZCkgPCAwKSB7Ci0gCQlmcHJp bnRmKHN0ZGVyciwgXygiRXJyb3I6IHVuYWJsZSB0byBzZXRmc3VpZFxuIikpOwotLQotIAkJcmV0 dXJuIC0xOwotIAl9Ci0gCi1AQCAtOTEzLDcgKzk0OCw4IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikgewotIAkJY2xvc2UoZmQpOwotIAl9Ci0gCi0tCWlmICgodWlkX3Qpc2V0ZnN1 aWQoMCkgIT0gdWlkKSByZXR1cm4gLTE7Ci0rCWlmIChzZXRmc3VpZF9jaGVja2VkKHVpZCwgMCkg PCAwKQotKwkJcmV0dXJuIC0xOwotIAotIAkvKiBjcmVhdGUgcnVudGltZSB0bXBkaXIgKi8KLSAJ aWYgKHRtcGRpcl9zKSB7Ci1AQCAtOTU3LDcgKzk5Myw3IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikgewotIAkJfQotIAotIAkJLyogYXNzdW1lIGZzdWlkPT1ydWlkIGFmdGVyIHRo aXMgcG9pbnQgKi8KLS0JCWlmICgodWlkX3Qpc2V0ZnN1aWQodWlkKSAhPSAwKSBnb3RvIGNoaWxk ZXJyOwotKwkJaWYgKHNldGZzdWlkX2NoZWNrZWQoMCwgdWlkKSA8IDApIGdvdG8gY2hpbGRlcnI7 Ci0gCi0gCQkvKgotIAkJICogTm93IHdlIGNhbiBwaW4gdGhlIHNvdXJjZSBkaXJlY3RvcmllcyBp biB0aGlzIG5hbWVzcGFjZQotLS0gCi0yLjU0LjAKLQoKZGlmZiAtLWdpdCBhLzAwMjItc2FuZGJv eC1zZXVuc2hhcmUtY2hlY2stb3duZXItaW4tc2V1bnNoYXJlX21vdW50X2ZpbC5wYXRjaCBiLzAw MjItc2FuZGJveC1zZXVuc2hhcmUtY2hlY2stb3duZXItaW4tc2V1bnNoYXJlX21vdW50X2ZpbC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVhZWQ3Yy4uMDAwMDAwMAotLS0g YS8wMDIyLXNhbmRib3gtc2V1bnNoYXJlLWNoZWNrLW93bmVyLWluLXNldW5zaGFyZV9tb3VudF9m aWwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi1Gcm9tIDhhM2RlNzA2MjJk MjUyZjFlZTA3MGQ2ZDllOWIwMTliOWE2ZWRkMDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxleS53b3JrQGdtYWlsLmNvbT4KLURh dGU6IEZyaSwgMTUgTWF5IDIwMjYgMTE6MTE6NDMgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSF0gc2Fu ZGJveC9zZXVuc2hhcmU6IGNoZWNrIG93bmVyIGluIHNldW5zaGFyZV9tb3VudF9maWxlKCkKLUNv bnRlbnQtdHlwZTogdGV4dC9wbGFpbgotCi1XZSBjdXJyZW50bHkgYXBwbHkgYW4gb3duZXIgY2hl Y2sgb24gZGlyZWN0b3JpZXMgcHJpb3IgdG8KLWNhbGxpbmcgc2V1bnNoYXJlX21vdW50KCkgb24g dGhlbS4gRG8gdGhlIHNhbWUgZm9yCi1zZXVuc2hhcmVfbW91bnRfZmlsZSgpLCBidXQgdGhpcyBo YXMgdG8gYmUgZG9uZSBpbnNpZGUKLW9mIHRoZSBmdW5jdGlvbiBzaW5jZSB3ZSBkbyBub3Qgb3Bl biB0aGUgc291cmNlIGFuZAotZGVzdGluYXRpb24gZmlsZXMgdW50aWwgdGhlbi4KLQotU2lnbmVk LW9mZi1ieTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+ Ci0tLS0KLSBzYW5kYm94L3NldW5zaGFyZS5jIHwgMjMgKysrKysrKysrKysrKysrKysrKystLS0K LSAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NhbmRib3gvc2V1bnNoYXJlLmMgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1pbmRl eCA5OGZjZWYzMjY4NTMuLjNhZmUxNTU0YWU1NiAxMDA2NDQKLS0tLSBhL3NhbmRib3gvc2V1bnNo YXJlLmMKLSsrKyBiL3NhbmRib3gvc2V1bnNoYXJlLmMKLUBAIC0yOTYsMTEgKzI5NiwxMiBAQCBz dGF0aWMgaW50IHNldW5zaGFyZV9tb3VudChjb25zdCBjaGFyICpzcmMsIGludCBzcmNfZmQsCi0g ICogYSBmaWxlIG5hbWVkIEBkc3RfbmFtZSBpbiBkaXJlY3RvcnkgQGRzdF9kaXJmZCwgY3JlYXRp bmcgQGRzdF9uYW1lCi0gICogaWYgaXQgZG9lc24ndCBhbHJlYWR5IGV4aXN0LgotICAqLwotLXN0 YXRpYyBpbnQgc2V1bnNoYXJlX21vdW50X2ZpbGUoaW50IHNyY19kaXJmZCwgY29uc3QgY2hhciAq c3JjX25hbWUsCi0rc3RhdGljIGludCBzZXVuc2hhcmVfbW91bnRfZmlsZSh1aWRfdCB1aWQsIGlu dCBzcmNfZGlyZmQsIGNvbnN0IGNoYXIgKnNyY19uYW1lLAotIAkJCQlpbnQgZHN0X2RpcmZkLCBj b25zdCBjaGFyICpkc3RfbmFtZSkKLSB7Ci0gCWNoYXIgc3JjcHJvY2ZkWzMyXSwgZHN0cHJvY2Zk WzMyXTsKLSAJaW50IHNyY19mZCA9IC0xLCBkc3RfZmQgPSAtMSwgcmMgPSAtMTsKLSsJc3RydWN0 IHN0YXQgc2I7Ci0gCi0gCWlmICh2ZXJib3NlKQotIAkJcHJpbnRmKF8oIk1vdW50aW5nICVzIG9u ICVzXG4iKSwgc3JjX25hbWUsIGRzdF9uYW1lKTsKLUBAIC0zMTEsNiArMzEyLDE0IEBAIHN0YXRp YyBpbnQgc2V1bnNoYXJlX21vdW50X2ZpbGUoaW50IHNyY19kaXJmZCwgY29uc3QgY2hhciAqc3Jj X25hbWUsCi0gCQlnb3RvIG91dDsKLSAJfQotIAotKwlpZiAoZnN0YXQoc3JjX2ZkLCAmc2IpIDwg MCkgewotKwkJZnByaW50ZihzdGRlcnIsIF8oIkZhaWxlZCB0byBzdGF0ICVzOiAlbVxuIiksIHNy Y19uYW1lKTsKLSsJCWdvdG8gb3V0OwotKwotKwl9Ci0rCWlmIChjaGVja19vd25lcl91aWQodWlk LCBzcmNfbmFtZSwgJnNiKSkKLSsJCWdvdG8gb3V0OwotKwotIAlkc3RfZmQgPSBvcGVuYXQoZHN0 X2RpcmZkLCBkc3RfbmFtZSwgT19QQVRIIHwgT19OT0ZPTExPVyB8IE9fQ0xPRVhFQyk7Ci0gCWlm IChkc3RfZmQgPCAwICYmIGVycm5vID09IEVOT0VOVCkKLSAJCWRzdF9mZCA9IG9wZW5hdChkc3Rf ZGlyZmQsIGRzdF9uYW1lLAotQEAgLTMyMSw2ICszMzAsMTQgQEAgc3RhdGljIGludCBzZXVuc2hh cmVfbW91bnRfZmlsZShpbnQgc3JjX2RpcmZkLCBjb25zdCBjaGFyICpzcmNfbmFtZSwKLSAJCWdv dG8gb3V0OwotIAl9Ci0gCi0rCWlmIChmc3RhdChkc3RfZmQsICZzYikgPCAwKSB7Ci0rCQlmcHJp bnRmKHN0ZGVyciwgXygiRmFpbGVkIHRvIHN0YXQgJXM6ICVtXG4iKSwgZHN0X25hbWUpOwotKwkJ Z290byBvdXQ7Ci0rCi0rCX0KLSsJaWYgKGNoZWNrX293bmVyX3VpZCh1aWQsIGRzdF9uYW1lLCAm c2IpKQotKwkJZ290byBvdXQ7Ci0rCi0gCXNucHJpbnRmKHNyY3Byb2NmZCwgc2l6ZW9mKHNyY3By b2NmZCksICIvcHJvYy9zZWxmL2ZkLyVkIiwgc3JjX2ZkKTsKLSAJc25wcmludGYoZHN0cHJvY2Zk LCBzaXplb2YoZHN0cHJvY2ZkKSwgIi9wcm9jL3NlbGYvZmQvJWQiLCBkc3RfZmQpOwotIAotQEAg LTEwODAsMTQgKzEwOTcsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0g Ci0gCQlpZiAocnVudXNlcmRpcl9zICYmICh3YXlsYW5kX2Rpc3BsYXkgfHwgcGlwZXdpcmVfc29j a2V0KSkgewotIAkJCWlmICh3YXlsYW5kX2Rpc3BsYXkgJiYKLS0JCQkgICAgc2V1bnNoYXJlX21v dW50X2ZpbGUoZmRfcnVudGltZV9kaXIsCi0rCQkJCXNldW5zaGFyZV9tb3VudF9maWxlKHVpZCwg ZmRfcnVudGltZV9kaXIsCi0gCQkJCQkgICAgd2F5bGFuZF9kaXNwbGF5LAotIAkJCQkJICAgIGZk X3J1bnVzZXJkaXJfcywKLSAJCQkJCSAgICB3YXlsYW5kX2Rpc3BsYXkpID09IC0xKQotIAkJCQkJ Z290byBjaGlsZGVycjsKLSAKLSAJCQlpZiAocGlwZXdpcmVfc29ja2V0ICYmCi0tCQkJICAgIHNl dW5zaGFyZV9tb3VudF9maWxlKGZkX3J1bnRpbWVfZGlyLAotKwkJCQlzZXVuc2hhcmVfbW91bnRf ZmlsZSh1aWQsIGZkX3J1bnRpbWVfZGlyLAotIAkJCQkJICAgICJwaXBld2lyZS0wIiwKLSAJCQkJ CSAgICBmZF9ydW51c2VyZGlyX3MsCi0gCQkJCQkgICAgcGlwZXdpcmVfc29ja2V0KSA9PSAtMSkK LS0tIAotMi41NC4wCi0KCmRpZmYgLS1naXQgYS8wMDIzLXNhbmRib3gtc2V1bnNoYXJlLWZpeC1m ZF90bXBkaXJfci1jaGVjay5wYXRjaCBiLzAwMjMtc2FuZGJveC1zZXVuc2hhcmUtZml4LWZkX3Rt cGRpcl9yLWNoZWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTRjNGEy Li4wMDAwMDAwCi0tLSBhLzAwMjMtc2FuZGJveC1zZXVuc2hhcmUtZml4LWZkX3RtcGRpcl9yLWNo ZWNrLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotRnJvbSBkOTliNWEzMTNh Mjc5MGIxY2E3MDMwMjMxMTJmNTQ4Y2JlNjU2MTdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhlbiBTbWFsbGV5IDxzdGVwaGVuLnNtYWxsZXkud29ya0BnbWFpbC5jb20+Ci1E YXRlOiBUdWUsIDE5IE1heSAyMDI2IDA4OjEzOjQwIC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNh bmRib3gvc2V1bnNoYXJlOiBmaXggZmRfdG1wZGlyX3IgY2hlY2sKLUNvbnRlbnQtdHlwZTogdGV4 dC9wbGFpbgotCi1DaGVjayBmZF90bXBkaXJfciBub3QgZmQgZm9yIGEgZmFpbGVkIHBpbl9kaXIo KSBoZXJlLgotCi1TaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFNtYWxsZXkgPHN0ZXBoZW4uc21hbGxl eS53b3JrQGdtYWlsLmNvbT4KLS0tLQotIHNhbmRib3gvc2V1bnNoYXJlLmMgfCAyICstCi0gMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQg YS9zYW5kYm94L3NldW5zaGFyZS5jIGIvc2FuZGJveC9zZXVuc2hhcmUuYwotaW5kZXggM2FmZTE1 NTRhZTU2Li43YTQyMzNmYmVlMDAgMTAwNjQ0Ci0tLS0gYS9zYW5kYm94L3NldW5zaGFyZS5jCi0r KysgYi9zYW5kYm94L3NldW5zaGFyZS5jCi1AQCAtMTAzNCw3ICsxMDM0LDcgQEAgaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gCQkgKi8KLSAJCWlmICh0bXBkaXJfcikgewotIAkJ CWZkX3RtcGRpcl9yID0gcGluX2Rpcih0bXBkaXJfciwgJnNiKTsKLS0JCQlpZiAoZmQgPCAwKQot KwkJCWlmIChmZF90bXBkaXJfciA8IDApCi0gCQkJCWdvdG8gY2hpbGRlcnI7Ci0gCQkJLyoKLSAJ CQkgKiB0bXBkaXJfciBjaGVja3MgZGlmZmVyIGluIHRoYXQgaXQgaXMKLS0tIAotMi41NC4wCi0K CmRpZmYgLS1naXQgYS9jaGFuZ2Vsb2cgYi9jaGFuZ2Vsb2cKaW5kZXggY2M2NDJjNi4uMWNjOTc0 NiAxMDA2NDQKLS0tIGEvY2hhbmdlbG9nCisrKyBiL2NoYW5nZWxvZwpAQCAtMSwzICsxLDkgQEAK KyogV2VkIEp1bCAwMSAyMDI2IFBldHIgTGF1dHJiYWNoIDxsYXV0cmJhY2hAcmVkaGF0LmNvbT4g LSAzLjExLTEKKy0gU0VMaW51eCB1c2Vyc3BhY2UgMy4xMSByZWxlYXNlCisKKyogV2VkIEp1biAw MyAyMDI2IFB5dGhvbiBNYWludCA8cHl0aG9uLW1haW50QHJlZGhhdC5jb20+CistIFJlYnVpbHQg Zm9yIFB5dGhvbiAzLjE1CisKICogTW9uIE1heSAyNSAyMDI2IFBldHIgTGF1dHJiYWNoIDxsYXV0 cmJhY2hAcmVkaGF0LmNvbT4gLSAzLjEwLTQKIC0gU2V2ZXJhbCBzYW5kYm94IGFuZCBzZXVuc2hh cmUgc2VjdXJpdHkgaW1wcm92ZW1lbnRzCiAKCmRpZmYgLS1naXQgYS9wb2xpY3ljb3JldXRpbHMu c3BlYyBiL3BvbGljeWNvcmV1dGlscy5zcGVjCmluZGV4IDRhZTkyNjQuLmRjODFlNDUgMTAwNjQ0 Ci0tLSBhL3BvbGljeWNvcmV1dGlscy5zcGVjCisrKyBiL3BvbGljeWNvcmV1dGlscy5zcGVjCkBA IC0xLDcgKzEsNyBAQAogJWdsb2JhbCBsaWJhdWRpdHZlciAgICAgNC4wCi0lZ2xvYmFsIGxpYnNl cG9sdmVyICAgICAzLjEwLTEKLSVnbG9iYWwgbGlic2VtYW5hZ2V2ZXIgIDMuMTAtMQotJWdsb2Jh bCBsaWJzZWxpbnV4dmVyICAgMy4xMC0xCislZ2xvYmFsIGxpYnNlcG9sdmVyICAgICAzLjExLTEK KyVnbG9iYWwgbGlic2VtYW5hZ2V2ZXIgIDMuMTEtMQorJWdsb2JhbCBsaWJzZWxpbnV4dmVyICAg My4xMS0xCiAKICVnbG9iYWwgZ2VuZXJhdG9yc2RpciAle19wcmVmaXh9L2xpYi9zeXN0ZW1kL3N5 c3RlbS1nZW5lcmF0b3JzCiAKQEAgLTEwLDEzICsxMCwxMyBAQAogCiBTdW1tYXJ5OiBTRUxpbnV4 IHBvbGljeSBjb3JlIHV0aWxpdGllcwogTmFtZTogICAgcG9saWN5Y29yZXV0aWxzCi1WZXJzaW9u OiAzLjEwCi1SZWxlYXNlOiA1JXs/ZGlzdH0KK1ZlcnNpb246IDMuMTEKK1JlbGVhc2U6IDElez9k aXN0fQogTGljZW5zZTogR1BMLTIuMC1vci1sYXRlcgogIyBodHRwczovL2dpdGh1Yi5jb20vU0VM aW51eFByb2plY3Qvc2VsaW51eC93aWtpL1JlbGVhc2VzCiBTb3VyY2UwOiBodHRwczovL2dpdGh1 Yi5jb20vU0VMaW51eFByb2plY3Qvc2VsaW51eC9yZWxlYXNlcy9kb3dubG9hZC8le3ZlcnNpb259 L3NlbGludXgtJXt2ZXJzaW9ufS50YXIuZ3oKIFNvdXJjZTE6IGh0dHBzOi8vZ2l0aHViLmNvbS9T RUxpbnV4UHJvamVjdC9zZWxpbnV4L3JlbGVhc2VzL2Rvd25sb2FkLyV7dmVyc2lvbn0vc2VsaW51 eC0le3ZlcnNpb259LnRhci5nei5hc2MKLVNvdXJjZTI6IGh0dHBzOi8vZ2l0aHViLmNvbS9wZXJm aW5pb24uZ3BnCitTb3VyY2UyOiBodHRwczovL2dpdGh1Yi5jb20vYmFjaHJhZHN1c2kuZ3BnCiBT b3VyY2UzOiBjaGFuZ2Vsb2cKIFNvdXJjZTQ6IG1hY3JvcwogVVJMOiAgICAgaHR0cHM6Ly9naXRo dWIuY29tL1NFTGludXhQcm9qZWN0L3NlbGludXgKQEAgLTM3LDcgKzM3LDcgQEAgU291cmNlMjI6 IHNlbGludXgtZ3VpLnppcAogIyB3bGMgLS1rZXkgPGFwaWtleT4gLS11cmwgaHR0cHM6Ly90cmFu c2xhdGUuZmVkb3JhcHJvamVjdC5vcmcvYXBpLyBkb3dubG9hZCBzZWxpbnV4L3NhbmRib3ggLS1v dXRwdXQgLi8KIFNvdXJjZTIzOiBzZWxpbnV4LXNhbmRib3guemlwCiAjIGh0dHBzOi8vZ2l0aHVi LmNvbS9mZWRvcmEtc2VsaW51eC9zZWxpbnV4Ci0jICQgZ2l0IGZvcm1hdC1wYXRjaCAtTiAzLjEw IC0tIHBvbGljeWNvcmV1dGlscyBweXRob24gZ3VpIHNhbmRib3ggZGJ1cyBzZW1vZHVsZS11dGls cyByZXN0b3JlY29uZAorIyAkIGdpdCBmb3JtYXQtcGF0Y2ggLU4gMy4xMSAtLSBwb2xpY3ljb3Jl dXRpbHMgcHl0aG9uIGd1aSBzYW5kYm94IGRidXMgc2Vtb2R1bGUtdXRpbHMgcmVzdG9yZWNvbmQK ICMgJCBmb3IgaiBpbiBbMC05XSoucGF0Y2g7IGRvIHByaW50ZiAiUGF0Y2glczogJXNcbiIgJHtq Ly0qL30gJGo7IGRvbmUKICMgUGF0Y2ggbGlzdCBzdGFydAogUGF0Y2gwMDAxOiAwMDAxLURvbi10 LWJlLXZlcmJvc2UtaWYteW91LWFyZS1ub3Qtb24tYS10dHkucGF0Y2gKQEAgLTQ2LDIzICs0Niw2 IEBAIFBhdGNoMDAwMzogMDAwMy1zYW5kYm94LVVzZS1tYXRjaGJveC13aW5kb3ctbWFuYWdlci1p bnN0ZWFkLW9mLW9wZW5iLnBhdGNoCiBQYXRjaDAwMDQ6IDAwMDQtVXNlLVNIQS0yLWluc3RlYWQt b2YtU0hBLTEucGF0Y2gKIFBhdGNoMDAwNTogMDAwNS1weXRob24tc2Vwb2xpY3ktRml4LXNwZWMt ZmlsZS1kZXBlbmRlbmNpZXMucGF0Y2gKIFBhdGNoMDAwNjogMDAwNi1zZXBvbGljeS1GaXgtZGV0 ZWN0aW9uLW9mLXdyaXRlYWJsZS1sb2NhdGlvbnMucGF0Y2gKLVBhdGNoMDAwNzogMDAwNy1yZXN0 b3JlY29uZC1BZGQtRi1mb3ItcnVuLWluLWZvcmVncm91bmQucGF0Y2gKLVBhdGNoMDAwODogMDAw OC1yZXN0b3JlY29uZC5zZXJ2aWNlLVVzZS1UeXBlLXNpbXBsZS5wYXRjaAotUGF0Y2gwMDA5OiAw MDA5LXNldW5zaGFyZS1ndWFyZC1mYWxsaWJsZS1mdW5jdGlvbi1jYWxscy1ieS1jaGVja2luZy0u cGF0Y2gKLVBhdGNoMDAxMDogMDAxMC1zYW5kYm94LXNldW5zaGFyZS1wYXNzLU9fTk9GT0xMT1ct dG8tb3BlbmF0LnBhdGNoCi1QYXRjaDAwMTE6IDAwMTEtc2FuZGJveC1zZXVuc2hhcmUtc3dpdGNo LXNldW5zaGFyZV9tb3VudF9maWxlLXRvLXVzZS5wYXRjaAotUGF0Y2gwMDEyOiAwMDEyLXNhbmRi b3gtc2V1bnNoYXJlLWZpeC1lcnJvci1jaGVja2luZy1mb3Itc2V0ZnN1aWQucGF0Y2gKLVBhdGNo MDAxMzogMDAxMy1zYW5kYm94LXNldW5zaGFyZS1yZW1vdW50LXRtcC1hbmQtdmFyLXRtcC13aXRo LXRoZS1wLnBhdGNoCi1QYXRjaDAwMTQ6IDAwMTQtc2FuZGJveC1zZXVuc2hhcmUtcHJldmVudC1y c3luYy1mcm9tLWludGVycHJldGluZy1wYS5wYXRjaAotUGF0Y2gwMDE1OiAwMDE1LXNhbmRib3gt c2V1bnNoYXJlLWZpeC1nZXRvcHQtZmxhZ3MucGF0Y2gKLVBhdGNoMDAxNjogMDAxNi1zYW5kYm94 LXNldW5zaGFyZS1wcmV2ZW50LXBhdGgtdHJhdmVyc2FsLXZpYS1XLVAucGF0Y2gKLVBhdGNoMDAx NzogMDAxNy1zYW5kYm94LXNldW5zaGFyZS12ZXJpZnktUlVOVElNRV9ESVItYmVmb3JlLXVzZS5w YXRjaAotUGF0Y2gwMDE4OiAwMDE4LXNhbmRib3gtc2V1bnNoYXJlLWRyb3AtdW51c2VkLXJ1bnVz ZXJkaXJfci5wYXRjaAotUGF0Y2gwMDE5OiAwMDE5LXNhbmRib3gtc2V1bnNoYXJlLWZpeC1raWxs YWxsLXJlYWxsb2MtYW5kLW1pc3NpbmctdHkucGF0Y2gKLVBhdGNoMDAyMDogMDAyMC1zYW5kYm94 LXNldW5zaGFyZS1yZXdyaXRlLXRvLXBpbi1kaXJlY3Rvcmllcy1iZWZvcmUtLnBhdGNoCi1QYXRj aDAwMjE6IDAwMjEtc2FuZGJveC1zZXVuc2hhcmUtZnVsbHktY2hlY2stc2V0ZnN1aWQtY2FsbHMu cGF0Y2gKLVBhdGNoMDAyMjogMDAyMi1zYW5kYm94LXNldW5zaGFyZS1jaGVjay1vd25lci1pbi1z ZXVuc2hhcmVfbW91bnRfZmlsLnBhdGNoCi1QYXRjaDAwMjM6IDAwMjMtc2FuZGJveC1zZXVuc2hh cmUtZml4LWZkX3RtcGRpcl9yLWNoZWNrLnBhdGNoCiAjIFBhdGNoIGxpc3QgZW5kCiAKICMgZ2Vu X2NoYW5nZWxvZwpAQCAtNDgxLDcgKzQ2NCw0IEBAIFRoZSBwb2xpY3ljb3JldXRpbHMtcmVzdG9y ZWNvbmQgcGFja2FnZSBjb250YWlucyB0aGUgcmVzdG9yZWNvbmQgc2VydmljZS4KICVzeXN0ZW1k X3Bvc3R1bl93aXRoX3Jlc3RhcnQgcmVzdG9yZWNvbmQuc2VydmljZQogCiAlY2hhbmdlbG9nCi0q IFdlZCBKdW4gMDMgMjAyNiBQeXRob24gTWFpbnQgPHB5dGhvbi1tYWludEByZWRoYXQuY29tPgot LSBSZWJ1aWx0IGZvciBQeXRob24gMy4xNQotCiAlYWRkX2NoYW5nZWxvZyAlU09VUkNFMwoKZGlm ZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDU1NzUyZWIuLjYxNzU4NzEgMTAwNjQ0 Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMiw1ICsyLDUgQEAgU0hBNTEyIChzZWxp bnV4LXBvbGljeWNvcmV1dGlscy56aXApID0gMGRmOWRjMjc0ZTBkMWEyZTRlMjQ2N2Y5NWExOGE1 YmY3YjZkZTI0MjgKIFNIQTUxMiAoc2VsaW51eC1weXRob24uemlwKSA9IDM1ZDIwOWY4YmNmZjQ5 OGY2NjQ2NTQ5OWZjYzRjZWYwNzgwNzgxMjc2YTRiYTA2MGIyZDFkNTZlZWQxZGQ3MmQyNTNmNmIw ZWFlNWY2NzlkNDZjZjQyNmI5NjdhN2FhZGFjOTA5MzYzNTEzYmU1ZDQ4M2M5NWEzMTI0OWVhY2Rk CiBTSEE1MTIgKHNlbGludXgtc2FuZGJveC56aXApID0gZWNiYzBjODI4MGViNmMwMTNiMDM5YTJl NjNlZTVhMzYxY2Q4NDgwNzYxMzk2MmEwMTJhYzBhOTgwOTIzNTdlOTgwOWJlYTIzYzNjNzFiZDhh ZTQ3NDViMWRkMTJhNGZjZTQzZGI1ZTFjYWIzMTYxNGYzODZhMmE4ZGI4OGI3MzMKIFNIQTUxMiAo c2VsaW51eC1ndWkuemlwKSA9IDNhZTQxZWJhNWRkNmQzNGUxMGRmZGI5N2Y0MTk0ZDE3MGFjZTJm MzA0NGU5ODQwNzdkYjdkMjZkMDViZGFhZDg2NjI1ZTQ4ZTU2OTRlM2U4NjgwNDg3YWQ5OWE1MDg2 MWQ0YmVhMzBjNGJmMDhlMjgyMGUzYjdhODY3MTI3MGM3Ci1TSEE1MTIgKHNlbGludXgtMy4xMC50 YXIuZ3opID0gNDBhZGE4NTcwOWFkMjNjMzY4NTc5YmM2NjE2NjFhYzc3ZjRhZGE2ZDlhNjUyNDNi YzI1ZGU4ZTQ2MjAyYmFlZDI2NGQxYjQ5ZGUxNzY1ZDVkZDIxZWJjOGQ5NGQ4NzJiODZkMmIwZTdi NTZhNzI2OWYxOTQyZDYwOWZmNzI3OGUKLVNIQTUxMiAoc2VsaW51eC0zLjEwLnRhci5nei5hc2Mp ID0gNWVmYWVjYjk3YmUyZGE0MzVjN2VjZTg4ZTIxM2RkNzUzYTRjNmVlNmY2YTI3MjZmMjViODJi MGUzMGM3N2E1MTM2ZWZiNTkzZmI5NTkwYzAzOTVmMGM2M2U5NTM2YWJmNDA3ZGNlYzk1YjNkNjIw MjdkZWZiZWFmYWE1ZDRiOTEKK1NIQTUxMiAoc2VsaW51eC0zLjExLnRhci5neikgPSA2N2E0NjBl MGVlOGM2NTJlZTg4YjFkZWZiNTZhZTJjYjlkNDZjNDVhM2E5MmQ0YWRkNjMxY2I3MDczMzc3YTg0 NmYzMTkwMWE4ZmE2NTlhNjY0ZTdjMzE5MDUzMWY1OGQ3NzRjOTkzMjFkNzg3MGI1NDJhOTllMDMz YTE2ZGYzMgorU0hBNTEyIChzZWxpbnV4LTMuMTEudGFyLmd6LmFzYykgPSA4NjZhY2RjMzVmZjJl NjQ1MGNlZmUxYTUzNTBjNTM3YWE1ODc3YzFlZTZjMzliOTg1ZTNiZmRlOGYxMjU1OGI5ZGY4OTA0 NTBjZTM0Yjg0NjM1OTBhYmU1NDAzMzA1MjQ3NDI2NzQ1M2Q2ODIwNjc1ZjliMWQwZTM2ZGQ0M2Zj Zgo=