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: Tomas Mraz To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: new upstream release 1.0.1h Date: Tue, 09 Jun 2026 12:43:19 GMT Message-ID: <178100899933.1.18407205328082960514.rpms-openssl-360a4bb67c52@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: 360a4bb67c524b4c6992af3132b9219933ba9caa QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IDM2MGE0YmI2N2M1MjRiNGM2OTkyYWYzMTMyYjky MTk5MzNiYTljYWEKQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+ CkRhdGUgICA6IDIwMTQtMDYtMDVUMTU6MDU6MTcrMDI6MDAKU3RhdHMgIDogKzY3My8tMTA5OSBp biA4IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9v cGVuc3NsL2MvMzYwYTRiYjY3YzUyNGI0YzY5OTJhZjMxMzJiOTIxOTkzM2JhOWNhYT9icmFuY2g9 cmViYXNlXzQwYmV0YQoKTG9nOgpuZXcgdXBzdHJlYW0gcmVsZWFzZSAxLjAuMWgKCi0tLQpkaWZm IC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggMDk3ODIxYS4uZGVkNDIzMCAx MDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xNCwzICsxNCw0IEBA IG9wZW5zc2wtMS4wLjBhLXVzYS50YXIuYnoyCiAvb3BlbnNzbC0xLjAuMWUtdXNhLnRhci54egog L29wZW5zc2wtMS4wLjFlLWhvYmJsZWQudGFyLnh6CiAvb3BlbnNzbC0xLjAuMWctaG9iYmxlZC50 YXIueHoKKy9vcGVuc3NsLTEuMC4xaC1ob2JibGVkLnRhci54egoKZGlmZiAtLWdpdCBhL29wZW5z c2wtMS4wLjFjLWlwdjYtYXBwcy5wYXRjaCBiL29wZW5zc2wtMS4wLjFjLWlwdjYtYXBwcy5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDFlMGIzNi4uMDAwMDAwMAotLS0gYS9v cGVuc3NsLTEuMC4xYy1pcHY2LWFwcHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MTYgKzAs MCBAQAotZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWMvYXBwcy9zX2FwcHMuaC5pcHY2LWFwcHMgb3Bl bnNzbC0xLjAuMWMvYXBwcy9zX2FwcHMuaAotLS0tIG9wZW5zc2wtMS4wLjFjL2FwcHMvc19hcHBz LmguaXB2Ni1hcHBzCTIwMTItMDctMTEgMjI6NDY6MDIuNDA5MjIxMjA2ICswMjAwCi0rKysgb3Bl bnNzbC0xLjAuMWMvYXBwcy9zX2FwcHMuaAkyMDEyLTA3LTExIDIyOjQ2OjAyLjQ1MTIyMjE2NSAr MDIwMAotQEAgLTE0OCw3ICsxNDgsNyBAQCB0eXBlZGVmIGZkX21hc2sgZmRfc2V0OwotICNkZWZp bmUgUE9SVF9TVFIgICAgICAgICI0NDMzIgotICNkZWZpbmUgUFJPVE9DT0wgICAgICAgICJ0Y3Ai Ci0gCi0taW50IGRvX3NlcnZlcihpbnQgcG9ydCwgaW50IHR5cGUsIGludCAqcmV0LCBpbnQgKCpj YikgKGNoYXIgKmhvc3RuYW1lLCBpbnQgcywgdW5zaWduZWQgY2hhciAqY29udGV4dCksIHVuc2ln bmVkIGNoYXIgKmNvbnRleHQpOwotK2ludCBkb19zZXJ2ZXIoY2hhciAqcG9ydCwgaW50IHR5cGUs IGludCAqcmV0LCBpbnQgKCpjYikgKGNoYXIgKmhvc3RuYW1lLCBpbnQgcywgdW5zaWduZWQgY2hh ciAqY29udGV4dCksIHVuc2lnbmVkIGNoYXIgKmNvbnRleHQpOwotICNpZmRlZiBIRUFERVJfWDUw OV9ICi0gaW50IE1TX0NBTExCQUNLIHZlcmlmeV9jYWxsYmFjayhpbnQgb2ssIFg1MDlfU1RPUkVf Q1RYICpjdHgpOwotICNlbmRpZgotQEAgLTE1NiwxMCArMTU2LDkgQEAgaW50IE1TX0NBTExCQUNL IHZlcmlmeV9jYWxsYmFjayhpbnQgb2ssCi0gaW50IHNldF9jZXJ0X3N0dWZmKFNTTF9DVFggKmN0 eCwgY2hhciAqY2VydF9maWxlLCBjaGFyICprZXlfZmlsZSk7Ci0gaW50IHNldF9jZXJ0X2tleV9z dHVmZihTU0xfQ1RYICpjdHgsIFg1MDkgKmNlcnQsIEVWUF9QS0VZICprZXkpOwotICNlbmRpZgot LWludCBpbml0X2NsaWVudChpbnQgKnNvY2ssIGNoYXIgKnNlcnZlciwgaW50IHBvcnQsIGludCB0 eXBlKTsKLStpbnQgaW5pdF9jbGllbnQoaW50ICpzb2NrLCBjaGFyICpzZXJ2ZXIsIGNoYXIgKnBv cnQsIGludCB0eXBlKTsKLSBpbnQgc2hvdWxkX3JldHJ5KGludCBpKTsKLS1pbnQgZXh0cmFjdF9w b3J0KGNoYXIgKnN0ciwgc2hvcnQgKnBvcnRfcHRyKTsKLS1pbnQgZXh0cmFjdF9ob3N0X3BvcnQo Y2hhciAqc3RyLGNoYXIgKipob3N0X3B0cix1bnNpZ25lZCBjaGFyICppcCxzaG9ydCAqcCk7Ci0r aW50IGV4dHJhY3RfaG9zdF9wb3J0KGNoYXIgKnN0cixjaGFyICoqaG9zdF9wdHIsY2hhciAqKnBv cnRfcHRyKTsKLSAKLSBsb25nIE1TX0NBTExCQUNLIGJpb19kdW1wX2NhbGxiYWNrKEJJTyAqYmlv LCBpbnQgY21kLCBjb25zdCBjaGFyICphcmdwLAotIAkJCQkgICBpbnQgYXJnaSwgbG9uZyBhcmds LCBsb25nIHJldCk7Ci1kaWZmIC11cCBvcGVuc3NsLTEuMC4xYy9hcHBzL3NfY2xpZW50LmMuaXB2 Ni1hcHBzIG9wZW5zc2wtMS4wLjFjL2FwcHMvc19jbGllbnQuYwotLS0tIG9wZW5zc2wtMS4wLjFj L2FwcHMvc19jbGllbnQuYy5pcHY2LWFwcHMJMjAxMi0wNy0xMSAyMjo0NjowMi40MzMyMjE3NTQg KzAyMDAKLSsrKyBvcGVuc3NsLTEuMC4xYy9hcHBzL3NfY2xpZW50LmMJMjAxMi0wNy0xMSAyMjo0 NjowMi40NTIyMjIxODcgKzAyMDAKLUBAIC01NjMsNyArNTYzLDcgQEAgaW50IE1BSU4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQotIAlpbnQgY2J1Zl9sZW4sY2J1Zl9vZmY7Ci0gCWludCBzYnVmX2xl bixzYnVmX29mZjsKLSAJZmRfc2V0IHJlYWRmZHMsd3JpdGVmZHM7Ci0tCXNob3J0IHBvcnQ9UE9S VDsKLSsJY2hhciAqcG9ydF9zdHIgPSBQT1JUX1NUUjsKLSAJaW50IGZ1bGxfbG9nPTE7Ci0gCWNo YXIgKmhvc3Q9U1NMX0hPU1RfTkFNRTsKLSAJY2hhciAqY2VydF9maWxlPU5VTEwsKmtleV9maWxl PU5VTEw7Ci1AQCAtNjY0LDEzICs2NjQsMTIgQEAgaW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQotIAkJZWxzZSBpZgkoc3RyY21wKCphcmd2LCItcG9ydCIpID09IDApCi0gCQkJewotIAkJ CWlmICgtLWFyZ2MgPCAxKSBnb3RvIGJhZDsKLS0JCQlwb3J0PWF0b2koKigrK2FyZ3YpKTsKLS0J CQlpZiAocG9ydCA9PSAwKSBnb3RvIGJhZDsKLSsJCQlwb3J0X3N0cj0gKigrK2FyZ3YpOwotIAkJ CX0KLSAJCWVsc2UgaWYgKHN0cmNtcCgqYXJndiwiLWNvbm5lY3QiKSA9PSAwKQotIAkJCXsKLSAJ CQlpZiAoLS1hcmdjIDwgMSkgZ290byBiYWQ7Ci0tCQkJaWYgKCFleHRyYWN0X2hvc3RfcG9ydCgq KCsrYXJndiksJmhvc3QsTlVMTCwmcG9ydCkpCi0rCQkJaWYgKCFleHRyYWN0X2hvc3RfcG9ydCgq KCsrYXJndiksJmhvc3QsJnBvcnRfc3RyKSkKLSAJCQkJZ290byBiYWQ7Ci0gCQkJfQotIAkJZWxz ZSBpZgkoc3RyY21wKCphcmd2LCItdmVyaWZ5IikgPT0gMCkKLUBAIC0xMjUzLDcgKzEyNTIsNyBA QCBiYWQ6Ci0gCi0gcmVfc3RhcnQ6Ci0gCi0tCWlmIChpbml0X2NsaWVudCgmcyxob3N0LHBvcnQs c29ja2V0X3R5cGUpID09IDApCi0rCWlmIChpbml0X2NsaWVudCgmcyxob3N0LHBvcnRfc3RyLHNv Y2tldF90eXBlKSA9PSAwKQotIAkJewotIAkJQklPX3ByaW50ZihiaW9fZXJyLCJjb25uZWN0OmVy cm5vPSVkXG4iLGdldF9sYXN0X3NvY2tldF9lcnJvcigpKTsKLSAJCVNIVVRET1dOKHMpOwotZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWMvYXBwcy9zX3NlcnZlci5jLmlwdjYtYXBwcyBvcGVuc3NsLTEu MC4xYy9hcHBzL3Nfc2VydmVyLmMKLS0tLSBvcGVuc3NsLTEuMC4xYy9hcHBzL3Nfc2VydmVyLmMu aXB2Ni1hcHBzCTIwMTItMDctMTEgMjI6NDY6MDIuNDM0MjIxNzc3ICswMjAwCi0rKysgb3BlbnNz bC0xLjAuMWMvYXBwcy9zX3NlcnZlci5jCTIwMTItMDctMTEgMjI6NDY6MDIuNDUzMjIyMjEwICsw MjAwCi1AQCAtOTI5LDcgKzkyOSw3IEBAIGludCBNQUlOKGludCBhcmdjLCBjaGFyICphcmd2W10p Ci0gCXsKLSAJWDUwOV9WRVJJRllfUEFSQU0gKnZwbSA9IE5VTEw7Ci0gCWludCBiYWRhcmcgPSAw OwotLQlzaG9ydCBwb3J0PVBPUlQ7Ci0rCWNoYXIgKnBvcnRfc3RyID0gUE9SVF9TVFI7Ci0gCWNo YXIgKkNBcGF0aD1OVUxMLCpDQWZpbGU9TlVMTDsKLSAJdW5zaWduZWQgY2hhciAqY29udGV4dCA9 IE5VTEw7Ci0gCWNoYXIgKmRoZmlsZSA9IE5VTEw7Ci1AQCAtMTAwMCw4ICsxMDAwLDcgQEAgaW50 IE1BSU4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAJCQkgKHN0cmNtcCgqYXJndiwiLWFjY2Vw dCIpID09IDApKQotIAkJCXsKLSAJCQlpZiAoLS1hcmdjIDwgMSkgZ290byBiYWQ7Ci0tCQkJaWYg KCFleHRyYWN0X3BvcnQoKigrK2FyZ3YpLCZwb3J0KSkKLS0JCQkJZ290byBiYWQ7Ci0rCQkJcG9y dF9zdHI9ICooKythcmd2KTsKLSAJCQl9Ci0gCQllbHNlIGlmCShzdHJjbXAoKmFyZ3YsIi12ZXJp ZnkiKSA9PSAwKQotIAkJCXsKLUBAIC0xODc4LDkgKzE4NzcsOSBAQCBiYWQ6Ci0gCUJJT19wcmlu dGYoYmlvX3Nfb3V0LCJBQ0NFUFRcbiIpOwotIAkodm9pZClCSU9fZmx1c2goYmlvX3Nfb3V0KTsK LSAJaWYgKHd3dykKLS0JCWRvX3NlcnZlcihwb3J0LHNvY2tldF90eXBlLCZhY2NlcHRfc29ja2V0 LHd3d19ib2R5LCBjb250ZXh0KTsKLSsJCWRvX3NlcnZlcihwb3J0X3N0cixzb2NrZXRfdHlwZSwm YWNjZXB0X3NvY2tldCx3d3dfYm9keSwgY29udGV4dCk7Ci0gCWVsc2UKLS0JCWRvX3NlcnZlcihw b3J0LHNvY2tldF90eXBlLCZhY2NlcHRfc29ja2V0LHN2X2JvZHksIGNvbnRleHQpOwotKwkJZG9f c2VydmVyKHBvcnRfc3RyLHNvY2tldF90eXBlLCZhY2NlcHRfc29ja2V0LHN2X2JvZHksIGNvbnRl eHQpOwotIAlwcmludF9zdGF0cyhiaW9fc19vdXQsY3R4KTsKLSAJcmV0PTA7Ci0gZW5kOgotZGlm ZiAtdXAgb3BlbnNzbC0xLjAuMWMvYXBwcy9zX3NvY2tldC5jLmlwdjYtYXBwcyBvcGVuc3NsLTEu MC4xYy9hcHBzL3Nfc29ja2V0LmMKLS0tLSBvcGVuc3NsLTEuMC4xYy9hcHBzL3Nfc29ja2V0LmMu aXB2Ni1hcHBzCTIwMTEtMTItMDIgMTU6Mzk6NDAuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNz bC0xLjAuMWMvYXBwcy9zX3NvY2tldC5jCTIwMTItMDctMTEgMjI6NDk6MDUuNDExNDAwNDUwICsw MjAwCi1AQCAtMTAyLDkgKzEwMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgaG9zdGVudCAqR2V0SG9zdEJ5 TmFtZShjaGEKLSBzdGF0aWMgdm9pZCBzc2xfc29ja19jbGVhbnVwKHZvaWQpOwotICNlbmRpZgot IHN0YXRpYyBpbnQgc3NsX3NvY2tfaW5pdCh2b2lkKTsKLS1zdGF0aWMgaW50IGluaXRfY2xpZW50 X2lwKGludCAqc29jayx1bnNpZ25lZCBjaGFyIGlwWzRdLCBpbnQgcG9ydCwgaW50IHR5cGUpOwot LXN0YXRpYyBpbnQgaW5pdF9zZXJ2ZXIoaW50ICpzb2NrLCBpbnQgcG9ydCwgaW50IHR5cGUpOwot LXN0YXRpYyBpbnQgaW5pdF9zZXJ2ZXJfbG9uZyhpbnQgKnNvY2ssIGludCBwb3J0LGNoYXIgKmlw LCBpbnQgdHlwZSk7Ci0rc3RhdGljIGludCBpbml0X3NlcnZlcihpbnQgKnNvY2ssIGNoYXIgKnBv cnQsIGludCB0eXBlKTsKLSBzdGF0aWMgaW50IGRvX2FjY2VwdChpbnQgYWNjX3NvY2ssIGludCAq c29jaywgY2hhciAqKmhvc3QpOwotIHN0YXRpYyBpbnQgaG9zdF9pcChjaGFyICpzdHIsIHVuc2ln bmVkIGNoYXIgaXBbNF0pOwotIAotQEAgLTIzNCw1NyArMjMyLDcwIEBAIHN0YXRpYyBpbnQgc3Ns X3NvY2tfaW5pdCh2b2lkKQotIAlyZXR1cm4oMSk7Ci0gCX0KLSAKLS1pbnQgaW5pdF9jbGllbnQo aW50ICpzb2NrLCBjaGFyICpob3N0LCBpbnQgcG9ydCwgaW50IHR5cGUpCi0raW50IGluaXRfY2xp ZW50KGludCAqc29jaywgY2hhciAqaG9zdCwgY2hhciAqcG9ydCwgaW50IHR5cGUpCi0gCXsKLS0J dW5zaWduZWQgY2hhciBpcFs0XTsKLS0KLS0JbWVtc2V0KGlwLCAnXDAnLCBzaXplb2YgaXApOwot LQlpZiAoIWhvc3RfaXAoaG9zdCwmKGlwWzBdKSkpCi0tCQlyZXR1cm4gMDsKLS0JcmV0dXJuIGlu aXRfY2xpZW50X2lwKHNvY2ssaXAscG9ydCx0eXBlKTsKLS0JfQotLQotLXN0YXRpYyBpbnQgaW5p dF9jbGllbnRfaXAoaW50ICpzb2NrLCB1bnNpZ25lZCBjaGFyIGlwWzRdLCBpbnQgcG9ydCwgaW50 IHR5cGUpCi0tCXsKLS0JdW5zaWduZWQgbG9uZyBhZGRyOwotLQlzdHJ1Y3Qgc29ja2FkZHJfaW4g dGhlbTsKLS0JaW50IHMsaTsKLSsJc3RydWN0IGFkZHJpbmZvICpyZXMsICpyZXMwLCBoaW50czsK LSsJY2hhciAqIGZhaWxlZF9jYWxsID0gTlVMTDsKLSsJaW50IHM7Ci0rCWludCBlOwotIAotIAlp ZiAoIXNzbF9zb2NrX2luaXQoKSkgcmV0dXJuKDApOwotIAotLQltZW1zZXQoKGNoYXIgKikmdGhl bSwwLHNpemVvZih0aGVtKSk7Ci0tCXRoZW0uc2luX2ZhbWlseT1BRl9JTkVUOwotLQl0aGVtLnNp bl9wb3J0PWh0b25zKCh1bnNpZ25lZCBzaG9ydClwb3J0KTsKLS0JYWRkcj0odW5zaWduZWQgbG9u ZykKLS0JCSgodW5zaWduZWQgbG9uZylpcFswXTw8MjRMKXwKLS0JCSgodW5zaWduZWQgbG9uZylp cFsxXTw8MTZMKXwKLS0JCSgodW5zaWduZWQgbG9uZylpcFsyXTw8IDhMKXwKLS0JCSgodW5zaWdu ZWQgbG9uZylpcFszXSk7Ci0tCXRoZW0uc2luX2FkZHIuc19hZGRyPWh0b25sKGFkZHIpOwotLQot LQlpZiAodHlwZSA9PSBTT0NLX1NUUkVBTSkKLS0JCXM9c29ja2V0KEFGX0lORVQsU09DS19TVFJF QU0sU09DS0VUX1BST1RPQ09MKTsKLS0JZWxzZSAvKiAoIHR5cGUgPT0gU09DS19ER1JBTSkgKi8K LS0JCXM9c29ja2V0KEFGX0lORVQsU09DS19ER1JBTSxJUFBST1RPX1VEUCk7Ci0tCQkJCi0tCWlm IChzID09IElOVkFMSURfU09DS0VUKSB7IHBlcnJvcigic29ja2V0Iik7IHJldHVybigwKTsgfQot KwltZW1zZXQoJmhpbnRzLCAnXDAnLCBzaXplb2YoaGludHMpKTsKLSsJaGludHMuYWlfc29ja3R5 cGUgPSB0eXBlOwotKwloaW50cy5haV9mbGFncyA9IEFJX0FERFJDT05GSUc7Ci0rCi0rCWUgPSBn ZXRhZGRyaW5mbyhob3N0LCBwb3J0LCAmaGludHMsICZyZXMpOwotKwlpZiAoZSkKLSsJewotKwkJ ZnByaW50ZihzdGRlcnIsICJnZXRhZGRyaW5mbzogJXNcbiIsIGdhaV9zdHJlcnJvcihlKSk7Ci0r CQlpZiAoZSA9PSBFQUlfU1lTVEVNKQotKwkJCXBlcnJvcigiZ2V0YWRkcmluZm8iKTsKLSsJCXJl dHVybiAoMCk7Ci0rCQl9Ci0gCi0rCXJlczAgPSByZXM7Ci0rCXdoaWxlIChyZXMpCi0rCQl7Ci0r CQlzID0gc29ja2V0KHJlcy0+YWlfZmFtaWx5LCByZXMtPmFpX3NvY2t0eXBlLCByZXMtPmFpX3By b3RvY29sKTsKLSsJCWlmIChzID09IElOVkFMSURfU09DS0VUKQotKwkJCXsKLSsJCQlmYWlsZWRf Y2FsbCA9ICJzb2NrZXQiOwotKwkJCWdvdG8gbmV4dHJlczsKLSsJCQl9Ci0gI2lmIGRlZmluZWQo U09fS0VFUEFMSVZFKSAmJiAhZGVmaW5lZChPUEVOU1NMX1NZU19NUEUpCi0gCWlmICh0eXBlID09 IFNPQ0tfU1RSRUFNKQotIAkJewotLQkJaT0wOwotLQkJaT1zZXRzb2Nrb3B0KHMsU09MX1NPQ0tF VCxTT19LRUVQQUxJVkUsKGNoYXIgKikmaSxzaXplb2YoaSkpOwotLQkJaWYgKGkgPCAwKSB7IHBl cnJvcigia2VlcGFsaXZlIik7IHJldHVybigwKTsgfQotKwkJCWludCBpPTA7Ci0rCQkJaT1zZXRz b2Nrb3B0KHMsU09MX1NPQ0tFVCxTT19LRUVQQUxJVkUsCi0rCQkJCShjaGFyICopJmksc2l6ZW9m KGkpKTsKLSsJCQlpZiAoaSA8IDApIHsKLSsJCQkJZmFpbGVkX2NhbGwgPSAia2VlcGFsaXZlIjsK LSsJCQkJZ290byBuZXh0cmVzOwotKwkJCQl9Ci0gCQl9Ci0gI2VuZGlmCi0tCi0tCWlmIChjb25u ZWN0KHMsKHN0cnVjdCBzb2NrYWRkciAqKSZ0aGVtLHNpemVvZih0aGVtKSkgPT0gLTEpCi0tCQl7 IGNsb3Nlc29ja2V0KHMpOyBwZXJyb3IoImNvbm5lY3QiKTsgcmV0dXJuKDApOyB9Ci0rCQlpZiAo Y29ubmVjdChzLChzdHJ1Y3Qgc29ja2FkZHIgKilyZXMtPmFpX2FkZHIsCi0rCQkJcmVzLT5haV9h ZGRybGVuKSA9PSAwKQotKwkJCXsKLSsJCQlmcmVlYWRkcmluZm8ocmVzMCk7Ci0gCSpzb2NrPXM7 Ci0gCXJldHVybigxKTsKLSAJfQotIAotLWludCBkb19zZXJ2ZXIoaW50IHBvcnQsIGludCB0eXBl LCBpbnQgKnJldCwgaW50ICgqY2IpKGNoYXIgKmhvc3RuYW1lLCBpbnQgcywgdW5zaWduZWQgY2hh ciAqY29udGV4dCksIHVuc2lnbmVkIGNoYXIgKmNvbnRleHQpCi0rCQlmYWlsZWRfY2FsbCA9ICJz b2NrZXQiOwotK25leHRyZXM6Ci0rCQlpZiAocyAhPSBJTlZBTElEX1NPQ0tFVCkKLSsJCQljbG9z ZShzKTsKLSsJCXJlcyA9IHJlcy0+YWlfbmV4dDsKLSsJCX0KLSsJZnJlZWFkZHJpbmZvKHJlczAp OwotKwotKwlwZXJyb3IoZmFpbGVkX2NhbGwpOwotKwlyZXR1cm4oMCk7Ci0rCX0KLSsKLStpbnQg ZG9fc2VydmVyKGNoYXIgKnBvcnQsIGludCB0eXBlLCBpbnQgKnJldCwgaW50ICgqY2IpKGNoYXIg Kmhvc3RuYW1lLCBpbnQgcywgdW5zaWduZWQgY2hhciAqY29udGV4dCksIHVuc2lnbmVkIGNoYXIg KmNvbnRleHQpCi0gCXsKLSAJaW50IHNvY2s7Ci0gCWNoYXIgKm5hbWUgPSBOVUxMOwotQEAgLTMy MiwzMyArMzMzLDUwIEBAIGludCBkb19zZXJ2ZXIoaW50IHBvcnQsIGludCB0eXBlLCBpbnQgKnIK LSAJCX0KLSAJfQotIAotLXN0YXRpYyBpbnQgaW5pdF9zZXJ2ZXJfbG9uZyhpbnQgKnNvY2ssIGlu dCBwb3J0LCBjaGFyICppcCwgaW50IHR5cGUpCi0rc3RhdGljIGludCBpbml0X3NlcnZlcihpbnQg KnNvY2ssIGNoYXIgKnBvcnQsIGludCB0eXBlKQotIAl7Ci0tCWludCByZXQ9MDsKLS0Jc3RydWN0 IHNvY2thZGRyX2luIHNlcnZlcjsKLS0JaW50IHM9IC0xOwotKwlzdHJ1Y3QgYWRkcmluZm8gKnJl cywgKnJlczAgPSBOVUxMLCBoaW50czsKLSsJY2hhciAqIGZhaWxlZF9jYWxsID0gTlVMTDsKLSsJ aW50IHMgPSBJTlZBTElEX1NPQ0tFVDsKLSsJaW50IGU7Ci0gCi0gCWlmICghc3NsX3NvY2tfaW5p dCgpKSByZXR1cm4oMCk7Ci0gCi0tCW1lbXNldCgoY2hhciAqKSZzZXJ2ZXIsMCxzaXplb2Yoc2Vy dmVyKSk7Ci0tCXNlcnZlci5zaW5fZmFtaWx5PUFGX0lORVQ7Ci0tCXNlcnZlci5zaW5fcG9ydD1o dG9ucygodW5zaWduZWQgc2hvcnQpcG9ydCk7Ci0tCWlmIChpcCA9PSBOVUxMKQotLQkJc2VydmVy LnNpbl9hZGRyLnNfYWRkcj1JTkFERFJfQU5ZOwotLQllbHNlCi0tLyogQWRkZWQgZm9yIFQzRSwg YWRkcmVzcy1vZiBmYWlscyBvbiBiaXQgZmllbGQgKGJlY2ttYW5AYWNsLmxhbmwuZ292KSAqLwot LSNpZm5kZWYgQklUX0ZJRUxEX0xJTUlUUwotLQkJbWVtY3B5KCZzZXJ2ZXIuc2luX2FkZHIuc19h ZGRyLGlwLDQpOwotLSNlbHNlCi0tCQltZW1jcHkoJnNlcnZlci5zaW5fYWRkcixpcCw0KTsKLS0j ZW5kaWYKLSsJbWVtc2V0KCZoaW50cywgJ1wwJywgc2l6ZW9mKGhpbnRzKSk7Ci0rCWhpbnRzLmFp X2ZhbWlseSA9IEFGX0lORVQ2OwotK3RyeWlwdjQ6Ci0rCWhpbnRzLmFpX3NvY2t0eXBlID0gdHlw ZTsKLSsJaGludHMuYWlfZmxhZ3MgPSBBSV9QQVNTSVZFOwotIAkKLS0JCWlmICh0eXBlID09IFNP Q0tfU1RSRUFNKQotLQkJCXM9c29ja2V0KEFGX0lORVQsU09DS19TVFJFQU0sU09DS0VUX1BST1RP Q09MKTsKLS0JCWVsc2UgLyogdHlwZSA9PSBTT0NLX0RHUkFNICovCi0tCQkJcz1zb2NrZXQoQUZf SU5FVCwgU09DS19ER1JBTSxJUFBST1RPX1VEUCk7Ci0rCWUgPSBnZXRhZGRyaW5mbyhOVUxMLCBw b3J0LCAmaGludHMsICZyZXMpOwotKwlpZiAoZSkKLSsJCXsKLSsJCWlmIChoaW50cy5haV9mYW1p bHkgPT0gQUZfSU5FVCkKLSsJCQl7Ci0rCQkJZnByaW50ZihzdGRlcnIsICJnZXRhZGRyaW5mbzog JXNcbiIsIGdhaV9zdHJlcnJvcihlKSk7Ci0rCQkJaWYgKGUgPT0gRUFJX1NZU1RFTSkKLSsJCQkJ cGVycm9yKCJnZXRhZGRyaW5mbyIpOwotKwkJCXJldHVybiAoMCk7Ci0rCQkJfQotKwkJCWVsc2UK LSsJCQkJcmVzID0gTlVMTDsKLSsJCX0KLSAKLS0JaWYgKHMgPT0gSU5WQUxJRF9TT0NLRVQpIGdv dG8gZXJyOwotKwlyZXMwID0gcmVzOwotKwl3aGlsZSAocmVzKQotKwkJewotKwkJcyA9IHNvY2tl dChyZXMtPmFpX2ZhbWlseSwgcmVzLT5haV9zb2NrdHlwZSwgcmVzLT5haV9wcm90b2NvbCk7Ci0r CQlpZiAocyA9PSBJTlZBTElEX1NPQ0tFVCkKLSsJCQl7Ci0rCQkJZmFpbGVkX2NhbGwgPSAic29j a2V0IjsKLSsJCQlnb3RvIG5leHRyZXM7Ci0rCQkJfQotKwkJaWYgKGhpbnRzLmFpX2ZhbWlseSA9 PSBBRl9JTkVUNikKLSsJCQl7Ci0rCQkJaW50IGogPSAwOwotKwkJCXNldHNvY2tvcHQocywgSVBQ Uk9UT19JUFY2LCBJUFY2X1Y2T05MWSwKLSsJCQkJICAgKHZvaWQgKikgJmosIHNpemVvZiBqKTsK LSsJCQl9Ci0gI2lmIGRlZmluZWQgU09MX1NPQ0tFVCAmJiBkZWZpbmVkIFNPX1JFVVNFQUREUgot IAkJewotIAkJaW50IGogPSAxOwotQEAgLTM1NiwzNSArMzg0LDQ5IEBAIHN0YXRpYyBpbnQgaW5p dF9zZXJ2ZXJfbG9uZyhpbnQgKnNvY2ssIGkKLSAJCQkgICAodm9pZCAqKSAmaiwgc2l6ZW9mIGop OwotIAkJfQotICNlbmRpZgotLQlpZiAoYmluZChzLChzdHJ1Y3Qgc29ja2FkZHIgKikmc2VydmVy LHNpemVvZihzZXJ2ZXIpKSA9PSAtMSkKLSsKLSsJCWlmIChiaW5kKHMsKHN0cnVjdCBzb2NrYWRk ciAqKXJlcy0+YWlfYWRkciwgcmVzLT5haV9hZGRybGVuKSA9PSAtMSkKLSAJCXsKLS0jaWZuZGVm IE9QRU5TU0xfU1lTX1dJTkRPV1MKLS0JCXBlcnJvcigiYmluZCIpOwotLSNlbmRpZgotLQkJZ290 byBlcnI7Ci0rCQkJZmFpbGVkX2NhbGwgPSAiYmluZCI7Ci0rCQkJZ290byBuZXh0cmVzOwotIAkJ fQotLQkvKiBNYWtlIGl0IDEyOCBmb3IgbGludXggKi8KLS0JaWYgKHR5cGU9PVNPQ0tfU1RSRUFN ICYmIGxpc3RlbihzLDEyOCkgPT0gLTEpIGdvdG8gZXJyOwotLQkqc29jaz1zOwotLQlyZXQ9MTsK LS1lcnI6Ci0tCWlmICgocmV0ID09IDApICYmIChzICE9IC0xKSkKLSsJCWlmICh0eXBlPT1TT0NL X1NUUkVBTSAmJiBsaXN0ZW4ocywxMjgpID09IC0xKQotIAkJewotLQkJU0hVVERPV04ocyk7Ci0r CQkJZmFpbGVkX2NhbGwgPSAibGlzdGVuIjsKLSsJCQlnb3RvIG5leHRyZXM7Ci0gCQl9Ci0tCXJl dHVybihyZXQpOwotKwotKwkJKnNvY2s9czsKLSsJCXJldHVybigxKTsKLSsKLStuZXh0cmVzOgot KwkJaWYgKHMgIT0gSU5WQUxJRF9TT0NLRVQpCi0rCQkJY2xvc2Uocyk7Ci0rCQlyZXMgPSByZXMt PmFpX25leHQ7Ci0gCX0KLSsJaWYgKHJlczApCi0rCQlmcmVlYWRkcmluZm8ocmVzMCk7Ci0gCi0t c3RhdGljIGludCBpbml0X3NlcnZlcihpbnQgKnNvY2ssIGludCBwb3J0LCBpbnQgdHlwZSkKLSsJ aWYgKHMgPT0gSU5WQUxJRF9TT0NLRVQpCi0gCXsKLS0JcmV0dXJuKGluaXRfc2VydmVyX2xvbmco c29jaywgcG9ydCwgTlVMTCwgdHlwZSkpOwotKwkJaWYgKGhpbnRzLmFpX2ZhbWlseSA9PSBBRl9J TkVUNikKLSsJCXsKLSsJCQloaW50cy5haV9mYW1pbHkgPSBBRl9JTkVUOwotKwkJCWdvdG8gdHJ5 aXB2NDsKLSsJCX0KLSsJCXBlcnJvcigic29ja2V0Iik7Ci0rCQlyZXR1cm4oMCk7Ci0rCX0KLSsK LSsJcGVycm9yKGZhaWxlZF9jYWxsKTsKLSsJcmV0dXJuKDApOwotIAl9Ci0gCi0gc3RhdGljIGlu dCBkb19hY2NlcHQoaW50IGFjY19zb2NrLCBpbnQgKnNvY2ssIGNoYXIgKipob3N0KQotIAl7Ci0r CXN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBmcm9tOwotKwljaGFyIGJ1ZmZlcltOSV9N QVhIT1NUXTsKLSAJaW50IHJldDsKLS0Jc3RydWN0IGhvc3RlbnQgKmgxLCpoMjsKLS0Jc3RhdGlj IHN0cnVjdCBzb2NrYWRkcl9pbiBmcm9tOwotIAlpbnQgbGVuOwotIC8qCXN0cnVjdCBsaW5nZXIg bGluZzsgKi8KLSAKLUBAIC00MzEsMTM1ICs0NzMsNTggQEAgcmVkb2l0OgotICovCi0gCi0gCWlm IChob3N0ID09IE5VTEwpIGdvdG8gZW5kOwotLSNpZm5kZWYgQklUX0ZJRUxEX0xJTUlUUwotLQkv KiBJIHNob3VsZCB1c2UgV1NBQXN5bmNHZXRIb3N0QnlOYW1lKCkgdW5kZXIgd2luZG93cyAqLwot LQloMT1nZXRob3N0YnlhZGRyKChjaGFyICopJmZyb20uc2luX2FkZHIuc19hZGRyLAotLQkJc2l6 ZW9mKGZyb20uc2luX2FkZHIuc19hZGRyKSxBRl9JTkVUKTsKLS0jZWxzZQotLQloMT1nZXRob3N0 YnlhZGRyKChjaGFyICopJmZyb20uc2luX2FkZHIsCi0tCQlzaXplb2Yoc3RydWN0IGluX2FkZHIp LEFGX0lORVQpOwotLSNlbmRpZgotLQlpZiAoaDEgPT0gTlVMTCkKLSsKLSsJaWYgKGdldG5hbWVp bmZvKChzdHJ1Y3Qgc29ja2FkZHIgKikmZnJvbSwgc2l6ZW9mKGZyb20pLAotKwkJYnVmZmVyLCBz aXplb2YoYnVmZmVyKSwKLSsJCU5VTEwsIDAsIDApKQotIAkJewotLQkJQklPX3ByaW50ZihiaW9f ZXJyLCJiYWQgZ2V0aG9zdGJ5YWRkclxuIik7Ci0rCQlCSU9fcHJpbnRmKGJpb19lcnIsImdldG5h bWVpbmZvIGZhaWxlZFxuIik7Ci0gCQkqaG9zdD1OVUxMOwotIAkJLyogcmV0dXJuKDApOyAqLwot IAkJfQotIAllbHNlCi0gCQl7Ci0tCQlpZiAoKCpob3N0PShjaGFyICopT1BFTlNTTF9tYWxsb2Mo c3RybGVuKGgxLT5oX25hbWUpKzEpKSA9PSBOVUxMKQotKwkJaWYgKCgqaG9zdD0oY2hhciAqKU9Q RU5TU0xfbWFsbG9jKHN0cmxlbihidWZmZXIpKzEpKSA9PSBOVUxMKQotIAkJCXsKLSAJCQlwZXJy b3IoIk9QRU5TU0xfbWFsbG9jIik7Ci0gCQkJcmV0dXJuKDApOwotIAkJCX0KLS0JCUJVRl9zdHJs Y3B5KCpob3N0LGgxLT5oX25hbWUsc3RybGVuKGgxLT5oX25hbWUpKzEpOwotLQotLQkJaDI9R2V0 SG9zdEJ5TmFtZSgqaG9zdCk7Ci0tCQlpZiAoaDIgPT0gTlVMTCkKLS0JCQl7Ci0tCQkJQklPX3By aW50ZihiaW9fZXJyLCJnZXRob3N0YnluYW1lIGZhaWx1cmVcbiIpOwotLQkJCXJldHVybigwKTsK LS0JCQl9Ci0tCQlpZiAoaDItPmhfYWRkcnR5cGUgIT0gQUZfSU5FVCkKLS0JCQl7Ci0tCQkJQklP X3ByaW50ZihiaW9fZXJyLCJnZXRob3N0YnluYW1lIGFkZHIgaXMgbm90IEFGX0lORVRcbiIpOwot LQkJCXJldHVybigwKTsKLS0JCQl9Ci0rCQlzdHJjcHkoKmhvc3QsIGJ1ZmZlcik7Ci0gCQl9Ci0g ZW5kOgotIAkqc29jaz1yZXQ7Ci0gCXJldHVybigxKTsKLSAJfQotIAotLWludCBleHRyYWN0X2hv c3RfcG9ydChjaGFyICpzdHIsIGNoYXIgKipob3N0X3B0ciwgdW5zaWduZWQgY2hhciAqaXAsCi0t CSAgICAgc2hvcnQgKnBvcnRfcHRyKQotK2ludCBleHRyYWN0X2hvc3RfcG9ydChjaGFyICpzdHIs IGNoYXIgKipob3N0X3B0ciwgCi0rCSAgICAgY2hhciAqKnBvcnRfcHRyKQotIAl7Ci0tCWNoYXIg KmgsKnA7Ci0rCWNoYXIgKmgsKnAsKng7Ci0gCi0tCWg9c3RyOwotLQlwPXN0cmNocihzdHIsJzon KTsKLSsJeD1oPXN0cjsKLSsJaWYgKCpoID09ICdbJykKLSsJCXsKLSsJCWgrKzsKLSsJCXA9c3Ry Y2hyKGgsJ10nKTsKLSAJaWYgKHAgPT0gTlVMTCkKLSAJCXsKLS0JCUJJT19wcmludGYoYmlvX2Vy ciwibm8gcG9ydCBkZWZpbmVkXG4iKTsKLSsJCQlCSU9fcHJpbnRmKGJpb19lcnIsIm5vIGVuZGlu ZyBicmFja2V0IGZvciBJUHY2IGFkZHJlc3NcbiIpOwotIAkJcmV0dXJuKDApOwotIAkJfQotIAkq KHArKyk9J1wwJzsKLS0KLS0JaWYgKChpcCAhPSBOVUxMKSAmJiAhaG9zdF9pcChzdHIsaXApKQot LQkJZ290byBlcnI7Ci0tCWlmIChob3N0X3B0ciAhPSBOVUxMKSAqaG9zdF9wdHI9aDsKLS0KLS0J aWYgKCFleHRyYWN0X3BvcnQocCxwb3J0X3B0cikpCi0tCQlnb3RvIGVycjsKLS0JcmV0dXJuKDEp OwotLWVycjoKLS0JcmV0dXJuKDApOwotKwkJeCA9IHA7Ci0gCX0KLS0KLS1zdGF0aWMgaW50IGhv c3RfaXAoY2hhciAqc3RyLCB1bnNpZ25lZCBjaGFyIGlwWzRdKQotLQl7Ci0tCXVuc2lnbmVkIGlu dCBpbls0XTsgCi0tCWludCBpOwotLQotLQlpZiAoc3NjYW5mKHN0ciwiJXUuJXUuJXUuJXUiLCYo aW5bMF0pLCYoaW5bMV0pLCYoaW5bMl0pLCYoaW5bM10pKSA9PSA0KQotLQkJewotLQkJZm9yIChp PTA7IGk8NDsgaSsrKQotLQkJCWlmIChpbltpXSA+IDI1NSkKLS0JCQkJewotLQkJCQlCSU9fcHJp bnRmKGJpb19lcnIsImludmFsaWQgSVAgYWRkcmVzc1xuIik7Ci0tCQkJCWdvdG8gZXJyOwotLQkJ CQl9Ci0tCQlpcFswXT1pblswXTsKLS0JCWlwWzFdPWluWzFdOwotLQkJaXBbMl09aW5bMl07Ci0t CQlpcFszXT1pblszXTsKLS0JCX0KLS0JZWxzZQotLQkJeyAvKiBkbyBhIGdldGhvc3RieW5hbWUg Ki8KLS0JCXN0cnVjdCBob3N0ZW50ICpoZTsKLS0KLS0JCWlmICghc3NsX3NvY2tfaW5pdCgpKSBy ZXR1cm4oMCk7Ci0tCi0tCQloZT1HZXRIb3N0QnlOYW1lKHN0cik7Ci0tCQlpZiAoaGUgPT0gTlVM TCkKLS0JCQl7Ci0tCQkJQklPX3ByaW50ZihiaW9fZXJyLCJnZXRob3N0YnluYW1lIGZhaWx1cmVc biIpOwotLQkJCWdvdG8gZXJyOwotLQkJCX0KLS0JCS8qIGNhc3QgdG8gc2hvcnQgYmVjYXVzZSBv ZiB3aW4xNiB3aW5zb2NrIGRlZmluaXRpb24gKi8KLS0JCWlmICgoc2hvcnQpaGUtPmhfYWRkcnR5 cGUgIT0gQUZfSU5FVCkKLSsJcD1zdHJjaHIoeCwnOicpOwotKwlpZiAocCA9PSBOVUxMKQotIAkJ CXsKLS0JCQlCSU9fcHJpbnRmKGJpb19lcnIsImdldGhvc3RieW5hbWUgYWRkciBpcyBub3QgQUZf SU5FVFxuIik7Ci0tCQkJcmV0dXJuKDApOwotLQkJCX0KLS0JCWlwWzBdPWhlLT5oX2FkZHJfbGlz dFswXVswXTsKLS0JCWlwWzFdPWhlLT5oX2FkZHJfbGlzdFswXVsxXTsKLS0JCWlwWzJdPWhlLT5o X2FkZHJfbGlzdFswXVsyXTsKLS0JCWlwWzNdPWhlLT5oX2FkZHJfbGlzdFswXVszXTsKLS0JCX0K LS0JcmV0dXJuKDEpOwotLWVycjoKLSsJCUJJT19wcmludGYoYmlvX2Vyciwibm8gcG9ydCBkZWZp bmVkXG4iKTsKLSAJcmV0dXJuKDApOwotIAl9Ci0rCSoocCsrKT0nXDAnOwotIAotLWludCBleHRy YWN0X3BvcnQoY2hhciAqc3RyLCBzaG9ydCAqcG9ydF9wdHIpCi0tCXsKLS0JaW50IGk7Ci0tCXN0 cnVjdCBzZXJ2ZW50ICpzOwotKwlpZiAoaG9zdF9wdHIgIT0gTlVMTCkgKmhvc3RfcHRyPWg7Ci0r CWlmIChwb3J0X3B0ciAhPSBOVUxMKSAqcG9ydF9wdHI9cDsKLSAKLS0JaT1hdG9pKHN0cik7Ci0t CWlmIChpICE9IDApCi0tCQkqcG9ydF9wdHI9KHVuc2lnbmVkIHNob3J0KWk7Ci0tCWVsc2UKLS0J CXsKLS0JCXM9Z2V0c2VydmJ5bmFtZShzdHIsInRjcCIpOwotLQkJaWYgKHMgPT0gTlVMTCkKLS0J CQl7Ci0tCQkJQklPX3ByaW50ZihiaW9fZXJyLCJnZXRzZXJ2YnluYW1lIGZhaWx1cmUgZm9yICVz XG4iLHN0cik7Ci0tCQkJcmV0dXJuKDApOwotLQkJCX0KLS0JCSpwb3J0X3B0cj1udG9ocygodW5z aWduZWQgc2hvcnQpcy0+c19wb3J0KTsKLS0JCX0KLSAJcmV0dXJuKDEpOwotIAl9Ci0gCgpkaWZm IC0tZ2l0IGEvb3BlbnNzbC0xLjAuMWUtbWFuZml4LnBhdGNoIGIvb3BlbnNzbC0xLjAuMWUtbWFu Zml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YmEyYWJiLi4wMDAwMDAw Ci0tLSBhL29wZW5zc2wtMS4wLjFlLW1hbmZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU1 NSArMCwwIEBACi1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy9jbXMucG9kLm1hbmZp eCBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy9jbXMucG9kCi0tLS0gb3BlbnNzbC0xLjAuMWUvZG9j L2FwcHMvY21zLnBvZC5tYW5maXgJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy9jbXMucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIu MTQ3MDkyMzEwICswMjAwCi1AQCAtNDUwLDI4ICs0NTAsMjggQEAgcmVtYWlucyBERVIuCi0gCi0g PW92ZXIgNAotIAotLT1pdGVtIDAKLSs9aXRlbSBDPDA+Ci0gCi0gdGhlIG9wZXJhdGlvbiB3YXMg Y29tcGxldGVseSBzdWNjZXNzZnVsbHkuCi0gCi0tPWl0ZW0gMSAKLSs9aXRlbSBDPDE+Ci0gCi0g YW4gZXJyb3Igb2NjdXJyZWQgcGFyc2luZyB0aGUgY29tbWFuZCBvcHRpb25zLgotIAotLT1pdGVt IDIKLSs9aXRlbSBDPDI+Ci0gCi0gb25lIG9mIHRoZSBpbnB1dCBmaWxlcyBjb3VsZCBub3QgYmUg cmVhZC4KLSAKLS09aXRlbSAzCi0rPWl0ZW0gQzwzPgotIAotIGFuIGVycm9yIG9jY3VycmVkIGNy ZWF0aW5nIHRoZSBDTVMgZmlsZSBvciB3aGVuIHJlYWRpbmcgdGhlIE1JTUUKLSBtZXNzYWdlLgot IAotLT1pdGVtIDQKLSs9aXRlbSBDPDQ+Ci0gCi0gYW4gZXJyb3Igb2NjdXJyZWQgZGVjcnlwdGlu ZyBvciB2ZXJpZnlpbmcgdGhlIG1lc3NhZ2UuCi0gCi0tPWl0ZW0gNQotKz1pdGVtIEM8NT4KLSAK LSB0aGUgbWVzc2FnZSB3YXMgdmVyaWZpZWQgY29ycmVjdGx5IGJ1dCBhbiBlcnJvciBvY2N1cnJl ZCB3cml0aW5nIG91dAotIHRoZSBzaWduZXJzIGNlcnRpZmljYXRlcy4KLWRpZmYgLXVwIG9wZW5z c2wtMS4wLjFlL2RvYy9hcHBzL2VjLnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMv ZWMucG9kCi0tLS0gb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMvZWMucG9kLm1hbmZpeAkyMDEzLTAy LTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2RvYy9hcHBz L2VjLnBvZAkyMDEzLTA5LTEyIDExOjE3OjQyLjE0NzA5MjMxMCArMDIwMAotQEAgLTkzLDEwICs5 Myw2IEBAIHByaW50cyBvdXQgdGhlIHB1YmxpYywgcHJpdmF0ZSBrZXkgY29tcG8KLSAKLSB0aGlz IG9wdGlvbiBwcmV2ZW50cyBvdXRwdXQgb2YgdGhlIGVuY29kZWQgdmVyc2lvbiBvZiB0aGUga2V5 LgotIAotLT1pdGVtIEI8LW1vZHVsdXM+Ci0tCi0tdGhpcyBvcHRpb24gcHJpbnRzIG91dCB0aGUg dmFsdWUgb2YgdGhlIHB1YmxpYyBrZXkgY29tcG9uZW50IG9mIHRoZSBrZXkuCi0tCi0gPWl0ZW0g QjwtcHViaW4+Ci0gCi0gYnkgZGVmYXVsdCBhIHByaXZhdGUga2V5IGlzIHJlYWQgZnJvbSB0aGUg aW5wdXQgZmlsZTogd2l0aCB0aGlzIG9wdGlvbiBhCi1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9k b2MvYXBwcy9vcGVuc3NsLnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMvb3BlbnNz bC5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy9vcGVuc3NsLnBvZC5tYW5maXgJMjAx My0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9kb2Mv YXBwcy9vcGVuc3NsLnBvZAkyMDEzLTA5LTEyIDExOjE3OjQyLjE0ODA5MjMzMSArMDIwMAotQEAg LTE2Myw3ICsxNjMsNyBAQCBDcmVhdGUgb3IgZXhhbWluZSBhIG5ldHNjYXBlIGNlcnRpZmljYXRl Ci0gCi0gT25saW5lIENlcnRpZmljYXRlIFN0YXR1cyBQcm90b2NvbCB1dGlsaXR5LgotIAotLT1p dGVtIEw8QjxwYXNzd2Q+fHBhc3N3ZCgxKT4KLSs9aXRlbSBMPEI8cGFzc3dkPnxzc2xwYXNzd2Qo MSk+Ci0gCi0gR2VuZXJhdGlvbiBvZiBoYXNoZWQgcGFzc3dvcmRzLgotIAotQEAgLTE4Nyw3ICsx ODcsNyBAQCBQdWJsaWMga2V5IGFsZ29yaXRobSBwYXJhbWV0ZXIgbWFuYWdlbWVuCi0gCi0gUHVi bGljIGtleSBhbGdvcml0aG0gY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24gdXRpbGl0eS4KLSAKLS09 aXRlbSBMPEI8cmFuZD58cmFuZCgxKT4KLSs9aXRlbSBMPEI8cmFuZD58c3NscmFuZCgxKT4KLSAK LSBHZW5lcmF0ZSBwc2V1ZG8tcmFuZG9tIGJ5dGVzLgotIAotQEAgLTQwMSw5ICs0MDEsOSBAQCBM PGNybCgxKXxjcmwoMSk+LCBMPGNybDJwa2NzNygxKXxjcmwycGtjCi0gTDxkaHBhcmFtKDEpfGRo cGFyYW0oMSk+LCBMPGRzYSgxKXxkc2EoMSk+LCBMPGRzYXBhcmFtKDEpfGRzYXBhcmFtKDEpPiwK LSBMPGVuYygxKXxlbmMoMSk+LCBMPGdlbmRzYSgxKXxnZW5kc2EoMSk+LCBMPGdlbnBrZXkoMSl8 Z2VucGtleSgxKT4sCi0gTDxnZW5yc2EoMSl8Z2VucnNhKDEpPiwgTDxuc2VxKDEpfG5zZXEoMSk+ LCBMPG9wZW5zc2woMSl8b3BlbnNzbCgxKT4sCi0tTDxwYXNzd2QoMSl8cGFzc3dkKDEpPiwKLStM PHNzbHBhc3N3ZCgxKXxzc2xwYXNzd2QoMSk+LAotIEw8cGtjczEyKDEpfHBrY3MxMigxKT4sIEw8 cGtjczcoMSl8cGtjczcoMSk+LCBMPHBrY3M4KDEpfHBrY3M4KDEpPiwKLS1MPHJhbmQoMSl8cmFu ZCgxKT4sIEw8cmVxKDEpfHJlcSgxKT4sIEw8cnNhKDEpfHJzYSgxKT4sCi0rTDxzc2xyYW5kKDEp fHNzbHJhbmQoMSk+LCBMPHJlcSgxKXxyZXEoMSk+LCBMPHJzYSgxKXxyc2EoMSk+LAotIEw8cnNh dXRsKDEpfHJzYXV0bCgxKT4sIEw8c19jbGllbnQoMSl8c19jbGllbnQoMSk+LAotIEw8c19zZXJ2 ZXIoMSl8c19zZXJ2ZXIoMSk+LCBMPHNfdGltZSgxKXxzX3RpbWUoMSk+LAotIEw8c21pbWUoMSl8 c21pbWUoMSk+LCBMPHNwa2FjKDEpfHNwa2FjKDEpPiwKLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFl L2RvYy9hcHBzL3NfY2xpZW50LnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMvc19j bGllbnQucG9kCi0tLS0gb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMvc19jbGllbnQucG9kLm1hbmZp eAkyMDEzLTA5LTEyIDExOjE3OjQxLjUxNzA3ODUwMiArMDIwMAotKysrIG9wZW5zc2wtMS4wLjFl L2RvYy9hcHBzL3NfY2xpZW50LnBvZAkyMDEzLTA5LTEyIDExOjE3OjQyLjE0OTA5MjM1MyArMDIw MAotQEAgLTMyLDkgKzMyLDE0IEBAIEI8b3BlbnNzbD4gQjxzX2NsaWVudD4KLSBbQjwtc3NsMj5d Ci0gW0I8LXNzbDM+XQotIFtCPC10bHMxPl0KLStbQjwtdGxzMV8xPl0KLStbQjwtdGxzMV8yPl0K LStbQjwtZHRsczE+XQotIFtCPC1ub19zc2wyPl0KLSBbQjwtbm9fc3NsMz5dCi0gW0I8LW5vX3Rs czE+XQotK1tCPC1ub190bHMxXzE+XQotK1tCPC1ub190bHMxXzI+XQotIFtCPC1idWdzPl0KLSBb QjwtY2lwaGVyIGNpcGhlcmxpc3Q+XQotIFtCPC1zdGFydHRscyBwcm90b2NvbD5dCi1AQCAtNDQs NiArNDksNyBAQCBCPG9wZW5zc2w+IEI8c19jbGllbnQ+Ci0gW0I8LXNlc3Nfb3V0IGZpbGVuYW1l Pl0KLSBbQjwtc2Vzc19pbiBmaWxlbmFtZT5dCi0gW0I8LXJhbmQgZmlsZShzKT5dCi0rW0I8LW5l eHRwcm90b25lZyBwcm90b2NvbHM+XQotIAotID1oZWFkMSBERVNDUklQVElPTgotIAotQEAgLTE4 Miw3ICsxODgsNyBAQCBVc2UgdGhlIFBTSyBrZXkgQjxrZXk+IHdoZW4gdXNpbmcgYSBQU0sKLSBn aXZlbiBhcyBhIGhleGFkZWNpbWFsIG51bWJlciB3aXRob3V0IGxlYWRpbmcgMHgsIGZvciBleGFt cGxlIC1wc2sKLSAxYTJiM2M0ZC4KLSAKLS09aXRlbSBCPC1zc2wyPiwgQjwtc3NsMz4sIEI8LXRs czE+LCBCPC1ub19zc2wyPiwgQjwtbm9fc3NsMz4sIEI8LW5vX3RsczE+Ci0rPWl0ZW0gQjwtc3Ns Mj4sIEI8LXNzbDM+LCBCPC10bHMxPiwgQjwtdGxzMV8xPiwgQjwtdGxzMV8yPiwgQjwtZHRsczE+ LCBCPC1ub19zc2wyPiwgQjwtbm9fc3NsMz4sIEI8LW5vX3RsczE+LCBCPC1ub190bHMxXzE+LCBC PC1ub190bHMxXzI+Ci0gCi0gdGhlc2Ugb3B0aW9ucyBkaXNhYmxlIHRoZSB1c2Ugb2YgY2VydGFp biBTU0wgb3IgVExTIHByb3RvY29scy4gQnkgZGVmYXVsdAotIHRoZSBpbml0aWFsIGhhbmRzaGFr ZSB1c2VzIGEgbWV0aG9kIHdoaWNoIHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggYWxsCi1AQCAt MjQzLDYgKzI0OSwxNyBAQCBNdWx0aXBsZSBmaWxlcyBjYW4gYmUgc3BlY2lmaWVkIHNlcGFyYXRl Ci0gVGhlIHNlcGFyYXRvciBpcyBCPDs+IGZvciBNUy1XaW5kb3dzLCBCPCw+IGZvciBPcGVuVk1T LCBhbmQgQjw6PiBmb3IKLSBhbGwgb3RoZXJzLgotIAotKz1pdGVtIEI8LW5leHRwcm90b25lZyBw cm90b2NvbHM+Ci0rCi0rZW5hYmxlIE5leHQgUHJvdG9jb2wgTmVnb3RpYXRpb24gVExTIGV4dGVu c2lvbiBhbmQgcHJvdmlkZSBhIGxpc3Qgb2YKLStjb21tYS1zZXBhcmF0ZWQgcHJvdG9jb2wgbmFt ZXMgdGhhdCB0aGUgY2xpZW50IHNob3VsZCBhZHZlcnRpc2UKLStzdXBwb3J0IGZvci4gVGhlIGxp c3Qgc2hvdWxkIGNvbnRhaW4gbW9zdCB3YW50ZWQgcHJvdG9jb2xzIGZpcnN0LgotK1Byb3RvY29s IG5hbWVzIGFyZSBwcmludGFibGUgQVNDSUkgc3RyaW5ncywgZm9yIGV4YW1wbGUgImh0dHAvMS4x IiBvcgotKyJzcGR5LzMiLgotK0VtcHR5IGxpc3Qgb2YgcHJvdG9jb2xzIGlzIHRyZWF0ZWQgc3Bl Y2lhbGx5IGFuZCB3aWxsIGNhdXNlIHRoZSBjbGllbnQgdG8KLSthZHZlcnRpc2Ugc3VwcG9ydCBm b3IgdGhlIFRMUyBleHRlbnNpb24gYnV0IGRpc2Nvbm5lY3QganVzdCBhZnRlcgotK3JlY2l2aW5n IFNlcnZlckhlbGxvIHdpdGggYSBsaXN0IG9mIHNlcnZlciBzdXBwb3J0ZWQgcHJvdG9jb2xzLgot KwotID1iYWNrCi0gCi0gPWhlYWQxIENPTk5FQ1RFRCBDT01NQU5EUwotZGlmZiAtdXAgb3BlbnNz bC0xLjAuMWUvZG9jL2FwcHMvc21pbWUucG9kLm1hbmZpeCBvcGVuc3NsLTEuMC4xZS9kb2MvYXBw cy9zbWltZS5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy9zbWltZS5wb2QubWFuZml4 CTIwMTMtMDItMTEgMTY6MjY6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUv ZG9jL2FwcHMvc21pbWUucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIuMTUwMDkyMzc1ICswMjAwCi1A QCAtMzA4LDI4ICszMDgsMjggQEAgcmVtYWlucyBERVIuCi0gCi0gPW92ZXIgNAotIAotLT1pdGVt IDAKLSs9aXRlbSBDPDA+Ci0gCi0gdGhlIG9wZXJhdGlvbiB3YXMgY29tcGxldGVseSBzdWNjZXNz ZnVsbHkuCi0gCi0tPWl0ZW0gMSAKLSs9aXRlbSBDPDE+Ci0gCi0gYW4gZXJyb3Igb2NjdXJyZWQg cGFyc2luZyB0aGUgY29tbWFuZCBvcHRpb25zLgotIAotLT1pdGVtIDIKLSs9aXRlbSBDPDI+Ci0g Ci0gb25lIG9mIHRoZSBpbnB1dCBmaWxlcyBjb3VsZCBub3QgYmUgcmVhZC4KLSAKLS09aXRlbSAz Ci0rPWl0ZW0gQzwzPgotIAotIGFuIGVycm9yIG9jY3VycmVkIGNyZWF0aW5nIHRoZSBQS0NTIzcg ZmlsZSBvciB3aGVuIHJlYWRpbmcgdGhlIE1JTUUKLSBtZXNzYWdlLgotIAotLT1pdGVtIDQKLSs9 aXRlbSBDPDQ+Ci0gCi0gYW4gZXJyb3Igb2NjdXJyZWQgZGVjcnlwdGluZyBvciB2ZXJpZnlpbmcg dGhlIG1lc3NhZ2UuCi0gCi0tPWl0ZW0gNQotKz1pdGVtIEM8NT4KLSAKLSB0aGUgbWVzc2FnZSB3 YXMgdmVyaWZpZWQgY29ycmVjdGx5IGJ1dCBhbiBlcnJvciBvY2N1cnJlZCB3cml0aW5nIG91dAot IHRoZSBzaWduZXJzIGNlcnRpZmljYXRlcy4KLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9h cHBzL3Nfc2VydmVyLnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMvc19zZXJ2ZXIu cG9kCi0tLS0gb3BlbnNzbC0xLjAuMWUvZG9jL2FwcHMvc19zZXJ2ZXIucG9kLm1hbmZpeAkyMDEz LTAyLTExIDE2OjI2OjA0LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2RvYy9h cHBzL3Nfc2VydmVyLnBvZAkyMDEzLTA5LTEyIDExOjE3OjQyLjE1MDA5MjM3NSArMDIwMAotQEAg LTQwLDEwICs0MCwxNiBAQCBCPG9wZW5zc2w+IEI8c19zZXJ2ZXI+Ci0gW0I8LXNzbDI+XQotIFtC PC1zc2wzPl0KLSBbQjwtdGxzMT5dCi0rW0I8LXRsczFfMT5dCi0rW0I8LXRsczFfMj5dCi0rW0I8 LWR0bHMxPl0KLSBbQjwtbm9fc3NsMj5dCi0gW0I8LW5vX3NzbDM+XQotIFtCPC1ub190bHMxPl0K LStbQjwtbm9fdGxzMV8xPl0KLStbQjwtbm9fdGxzMV8yPl0KLSBbQjwtbm9fZGhlPl0KLStbQjwt bm9fZWNkaGU+XQotIFtCPC1idWdzPl0KLSBbQjwtaGFjaz5dCi0gW0I8LXd3dz5dCi1AQCAtNTQs NiArNjAsNyBAQCBCPG9wZW5zc2w+IEI8c19zZXJ2ZXI+Ci0gW0I8LW5vX3RpY2tldD5dCi0gW0I8 LWlkX3ByZWZpeCBhcmc+XQotIFtCPC1yYW5kIGZpbGUocyk+XQotK1tCPC1uZXh0cHJvdG9uZWcg cHJvdG9jb2xzPl0KLSAKLSA9aGVhZDEgREVTQ1JJUFRJT04KLSAKLUBAIC0xMzEsNiArMTM4LDEw IEBAIGEgc3RhdGljIHNldCBvZiBwYXJhbWV0ZXJzIGhhcmQgY29kZWQgaW4KLSBpZiB0aGlzIG9w dGlvbiBpcyBzZXQgdGhlbiBubyBESCBwYXJhbWV0ZXJzIHdpbGwgYmUgbG9hZGVkIGVmZmVjdGl2 ZWx5Ci0gZGlzYWJsaW5nIHRoZSBlcGhlbWVyYWwgREggY2lwaGVyIHN1aXRlcy4KLSAKLSs9aXRl bSBCPC1ub19lY2RoZT4KLSsKLStpZiB0aGlzIG9wdGlvbiBpcyBzZXQgdGhlbiBlcGhlbWVyYWwg RUNESCBjaXBoZXIgc3VpdGVzIHdpbGwgYmUgZGlzYWJsZWQuCi0rCi0gPWl0ZW0gQjwtbm9fdG1w X3JzYT4KLSAKLSBjZXJ0YWluIGV4cG9ydCBjaXBoZXIgc3VpdGVzIHNvbWV0aW1lcyB1c2UgYSB0 ZW1wb3JhcnkgUlNBIGtleSwgdGhpcyBvcHRpb24KLUBAIC0yMDEsNyArMjEyLDcgQEAgVXNlIHRo ZSBQU0sga2V5IEI8a2V5PiB3aGVuIHVzaW5nIGEgUFNLCi0gZ2l2ZW4gYXMgYSBoZXhhZGVjaW1h bCBudW1iZXIgd2l0aG91dCBsZWFkaW5nIDB4LCBmb3IgZXhhbXBsZSAtcHNrCi0gMWEyYjNjNGQu Ci0gCi0tPWl0ZW0gQjwtc3NsMj4sIEI8LXNzbDM+LCBCPC10bHMxPiwgQjwtbm9fc3NsMj4sIEI8 LW5vX3NzbDM+LCBCPC1ub190bHMxPgotKz1pdGVtIEI8LXNzbDI+LCBCPC1zc2wzPiwgQjwtdGxz MT4sIEI8LXRsczFfMT4sIEI8LXRsczFfMj4sIEI8LWR0bHMxPiwgQjwtbm9fc3NsMj4sIEI8LW5v X3NzbDM+LCBCPC1ub190bHMxPiwgQjwtbm9fdGxzMV8xPiwgQjwtbm9fdGxzMV8yPgotIAotIHRo ZXNlIG9wdGlvbnMgZGlzYWJsZSB0aGUgdXNlIG9mIGNlcnRhaW4gU1NMIG9yIFRMUyBwcm90b2Nv bHMuIEJ5IGRlZmF1bHQKLSB0aGUgaW5pdGlhbCBoYW5kc2hha2UgdXNlcyBhIG1ldGhvZCB3aGlj aCBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIGFsbAotQEAgLTI3Niw2ICsyODcsMTQgQEAgTXVs dGlwbGUgZmlsZXMgY2FuIGJlIHNwZWNpZmllZCBzZXBhcmF0ZQotIFRoZSBzZXBhcmF0b3IgaXMg Qjw7PiBmb3IgTVMtV2luZG93cywgQjwsPiBmb3IgT3BlblZNUywgYW5kIEI8Oj4gZm9yCi0gYWxs IG90aGVycy4KLSAKLSs9aXRlbSBCPC1uZXh0cHJvdG9uZWcgcHJvdG9jb2xzPgotKwotK2VuYWJs ZSBOZXh0IFByb3RvY29sIE5lZ290aWF0aW9uIFRMUyBleHRlbnNpb24gYW5kIHByb3ZpZGUgYQot K2NvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHN1cHBvcnRlZCBwcm90b2NvbCBuYW1lcy4KLStUaGUg bGlzdCBzaG91bGQgY29udGFpbiBtb3N0IHdhbnRlZCBwcm90b2NvbHMgZmlyc3QuCi0rUHJvdG9j b2wgbmFtZXMgYXJlIHByaW50YWJsZSBBU0NJSSBzdHJpbmdzLCBmb3IgZXhhbXBsZSAiaHR0cC8x LjEiIG9yCi0rInNwZHkvMyIuCi0rCi0gPWJhY2sKLSAKLSA9aGVhZDEgQ09OTkVDVEVEIENPTU1B TkRTCi1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy92ZXJpZnkucG9kLm1hbmZpeCBv cGVuc3NsLTEuMC4xZS9kb2MvYXBwcy92ZXJpZnkucG9kCi0tLS0gb3BlbnNzbC0xLjAuMWUvZG9j L2FwcHMvdmVyaWZ5LnBvZC5tYW5maXgJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9kb2MvYXBwcy92ZXJpZnkucG9kCTIwMTMtMDktMTIgMTE6 MjU6MTMuOTk0OTk0OTkyICswMjAwCi1AQCAtMjUsNiArMjUsNyBAQCBCPG9wZW5zc2w+IEI8dmVy aWZ5PgotIFtCPC11bnRydXN0ZWQgZmlsZT5dCi0gW0I8LWhlbHA+XQotIFtCPC1pc3N1ZXJfY2hl Y2tzPl0KLStbQjwtYXR0aW1lIHRpbWVzdGFtcD5dCi0gW0I8LXZlcmJvc2U+XQotIFtCPC0+XQot IFtjZXJ0aWZpY2F0ZXNdCi1AQCAtODAsNiArODEsMTIgQEAgcmVqZWN0ZWQuIFRoZSBwcmVzZW5j ZSBvZiByZWplY3Rpb24gbWVzcwotIGFueXRoaW5nIGlzIHdyb25nOyBkdXJpbmcgdGhlIG5vcm1h bCB2ZXJpZmljYXRpb24gcHJvY2Vzcywgc2V2ZXJhbAotIHJlamVjdGlvbnMgbWF5IHRha2UgcGxh Y2UuCi0gCi0rPWl0ZW0gQjwtYXR0aW1lIHRpbWVzdGFtcD4KLSsKLStQZXJmb3JtIHZhbGlkYXRp b24gY2hlY2tzIHVzaW5nIHRoZSB0aW1lIHNwZWNpZmllZCBieSBCPHRpbWVzdGFtcD4gYW5kIG5v dAotK3RoZSBjdXJyZW50IHN5c3RlbSB0aW1lLiBCPHRpbWVzdGFtcD4gaXMgdGhlIG51bWJlciBv ZiBzZWNvbmRzIHNpbmNlCi0rMDEuMDEuMTk3MCAoVU5JWCB0aW1lKS4KLSsKLSA9aXRlbSBCPC1w b2xpY3kgYXJnPgotIAotIEVuYWJsZSBwb2xpY3kgcHJvY2Vzc2luZyBhbmQgYWRkIEI8YXJnPiB0 byB0aGUgdXNlci1pbml0aWFsLXBvbGljeS1zZXQgKHNlZQotZGlmZiAtdXAgb3BlbnNzbC0xLjAu MWUvZG9jL3NzbC9TU0xfYWNjZXB0LnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9T U0xfYWNjZXB0LnBvZAotLS0tIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX2FjY2VwdC5wb2Qu bWFuZml4CTIwMTMtMDktMTIgMTE6MTc6NDIuMTI5MDkxOTE1ICswMjAwCi0rKysgb3BlbnNzbC0x LjAuMWUvZG9jL3NzbC9TU0xfYWNjZXB0LnBvZAkyMDEzLTA5LTEyIDExOjE3OjQyLjE1NjA5MjUw NyArMDIwMAotQEAgLTQ0LDEzICs0NCwxMyBAQCBUaGUgZm9sbG93aW5nIHJldHVybiB2YWx1ZXMg Y2FuIG9jY3VyOgotIAotID1vdmVyIDQKLSAKLS09aXRlbSAwCi0rPWl0ZW0gQzwwPgotIAotIFRo ZSBUTFMvU1NMIGhhbmRzaGFrZSB3YXMgbm90IHN1Y2Nlc3NmdWwgYnV0IHdhcyBzaHV0IGRvd24g Y29udHJvbGxlZCBhbmQKLSBieSB0aGUgc3BlY2lmaWNhdGlvbnMgb2YgdGhlIFRMUy9TU0wgcHJv dG9jb2wuIENhbGwgU1NMX2dldF9lcnJvcigpIHdpdGggdGhlCi0gcmV0dXJuIHZhbHVlIEI8cmV0 PiB0byBmaW5kIG91dCB0aGUgcmVhc29uLgotIAotLT1pdGVtIDEKLSs9aXRlbSBDPDE+Ci0gCi0g VGhlIFRMUy9TU0wgaGFuZHNoYWtlIHdhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLCBhIFRMUy9T U0wgY29ubmVjdGlvbiBoYXMgYmVlbgotIGVzdGFibGlzaGVkLgotZGlmZiAtdXAgb3BlbnNzbC0x LjAuMWUvZG9jL3NzbC9TU0xfY2xlYXIucG9kLm1hbmZpeCBvcGVuc3NsLTEuMC4xZS9kb2Mvc3Ns L1NTTF9jbGVhci5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9jbGVhci5wb2Qu bWFuZml4CTIwMTMtMDItMTEgMTY6MDI6NDguMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0x LjAuMWUvZG9jL3NzbC9TU0xfY2xlYXIucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIuMTU4MDkyNTUx ICswMjAwCi1AQCAtNTYsMTIgKzU2LDEyIEBAIFRoZSBmb2xsb3dpbmcgcmV0dXJuIHZhbHVlcyBj YW4gb2NjdXI6Ci0gCi0gPW92ZXIgNAotIAotLT1pdGVtIDAKLSs9aXRlbSBDPDA+Ci0gCi0gVGhl IFNTTF9jbGVhcigpIG9wZXJhdGlvbiBjb3VsZCBub3QgYmUgcGVyZm9ybWVkLiBDaGVjayB0aGUg ZXJyb3Igc3RhY2sgdG8KLSBmaW5kIG91dCB0aGUgcmVhc29uLgotIAotLT1pdGVtIDEKLSs9aXRl bSBDPDE+Ci0gCi0gVGhlIFNTTF9jbGVhcigpIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KLSAK LWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NPTVBfYWRkX2NvbXByZXNzaW9u X21ldGhvZC5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NPTVBfYWRkX2Nv bXByZXNzaW9uX21ldGhvZC5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9DT01Q X2FkZF9jb21wcmVzc2lvbl9tZXRob2QucG9kLm1hbmZpeAkyMDEzLTA5LTEyIDExOjE3OjQyLjA0 OTA5MDE2MiArMDIwMAotKysrIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NPTVBfYWRkX2Nv bXByZXNzaW9uX21ldGhvZC5wb2QJMjAxMy0wOS0xMiAxMToxNzo0Mi4xNTkwOTI1NzMgKzAyMDAK LUBAIC02MCwxMSArNjAsMTEgQEAgU1NMX0NPTVBfYWRkX2NvbXByZXNzaW9uX21ldGhvZCgpIG1h eSByZQotIAotID1vdmVyIDQKLSAKLS09aXRlbSAwCi0rPWl0ZW0gQzwwPgotIAotIFRoZSBvcGVy YXRpb24gc3VjY2VlZGVkLgotIAotLT1pdGVtIDEKLSs9aXRlbSBDPDE+Ci0gCi0gVGhlIG9wZXJh dGlvbiBmYWlsZWQuIENoZWNrIHRoZSBlcnJvciBxdWV1ZSB0byBmaW5kIG91dCB0aGUgcmVhc29u LgotIAotZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9TU0xfY29ubmVjdC5wb2QubWFu Zml4IG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX2Nvbm5lY3QucG9kCi0tLS0gb3BlbnNzbC0x LjAuMWUvZG9jL3NzbC9TU0xfY29ubmVjdC5wb2QubWFuZml4CTIwMTMtMDktMTIgMTE6MTc6NDIu MTMwMDkxOTM3ICswMjAwCi0rKysgb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9TU0xfY29ubmVjdC5w b2QJMjAxMy0wOS0xMiAxMToxNzo0Mi4xNjEwOTI2MTYgKzAyMDAKLUBAIC00MSwxMyArNDEsMTMg QEAgVGhlIGZvbGxvd2luZyByZXR1cm4gdmFsdWVzIGNhbiBvY2N1cjoKLSAKLSA9b3ZlciA0Ci0g Ci0tPWl0ZW0gMAotKz1pdGVtIEM8MD4KLSAKLSBUaGUgVExTL1NTTCBoYW5kc2hha2Ugd2FzIG5v dCBzdWNjZXNzZnVsIGJ1dCB3YXMgc2h1dCBkb3duIGNvbnRyb2xsZWQgYW5kCi0gYnkgdGhlIHNw ZWNpZmljYXRpb25zIG9mIHRoZSBUTFMvU1NMIHByb3RvY29sLiBDYWxsIFNTTF9nZXRfZXJyb3Io KSB3aXRoIHRoZQotIHJldHVybiB2YWx1ZSBCPHJldD4gdG8gZmluZCBvdXQgdGhlIHJlYXNvbi4K LSAKLS09aXRlbSAxCi0rPWl0ZW0gQzwxPgotIAotIFRoZSBUTFMvU1NMIGhhbmRzaGFrZSB3YXMg c3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZCwgYSBUTFMvU1NMIGNvbm5lY3Rpb24gaGFzIGJlZW4KLSBl c3RhYmxpc2hlZC4KLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NUWF9hZGRf c2Vzc2lvbi5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NUWF9hZGRfc2Vz c2lvbi5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9DVFhfYWRkX3Nlc3Npb24u cG9kLm1hbmZpeAkyMDEzLTAyLTExIDE2OjAyOjQ4LjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5z c2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NUWF9hZGRfc2Vzc2lvbi5wb2QJMjAxMy0wOS0xMiAxMTox Nzo0Mi4xNjIwOTI2MzggKzAyMDAKLUBAIC01MiwxMyArNTIsMTMgQEAgVGhlIGZvbGxvd2luZyB2 YWx1ZXMgYXJlIHJldHVybmVkIGJ5IGFsbAotIAotID1vdmVyIDQKLSAKLS09aXRlbSAwCi0rPWl0 ZW0gQzwwPgotIAotICBUaGUgb3BlcmF0aW9uIGZhaWxlZC4gSW4gY2FzZSBvZiB0aGUgYWRkIG9w ZXJhdGlvbiwgaXQgd2FzIHRyaWVkIHRvIGFkZAotICB0aGUgc2FtZSAoaWRlbnRpY2FsKSBzZXNz aW9uIHR3aWNlLiBJbiBjYXNlIG9mIHRoZSByZW1vdmUgb3BlcmF0aW9uLCB0aGUKLSAgc2Vzc2lv biB3YXMgbm90IGZvdW5kIGluIHRoZSBjYWNoZS4KLSAKLS09aXRlbSAxCi0rPWl0ZW0gQzwxPgot ICAKLSAgVGhlIG9wZXJhdGlvbiBzdWNjZWVkZWQuCi0gCi1kaWZmIC11cCBvcGVuc3NsLTEuMC4x ZS9kb2Mvc3NsL1NTTF9DVFhfbG9hZF92ZXJpZnlfbG9jYXRpb25zLnBvZC5tYW5maXggb3BlbnNz bC0xLjAuMWUvZG9jL3NzbC9TU0xfQ1RYX2xvYWRfdmVyaWZ5X2xvY2F0aW9ucy5wb2QKLS0tLSBv cGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9DVFhfbG9hZF92ZXJpZnlfbG9jYXRpb25zLnBvZC5t YW5maXgJMjAxMy0wMi0xMSAxNjowMjo0OC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBvcGVuc3NsLTEu MC4xZS9kb2Mvc3NsL1NTTF9DVFhfbG9hZF92ZXJpZnlfbG9jYXRpb25zLnBvZAkyMDEzLTA5LTEy IDExOjE3OjQyLjE2MzA5MjY2MCArMDIwMAotQEAgLTEwMCwxMyArMTAwLDEzIEBAIFRoZSBmb2xs b3dpbmcgcmV0dXJuIHZhbHVlcyBjYW4gb2NjdXI6Ci0gCi0gPW92ZXIgNAotIAotLT1pdGVtIDAK LSs9aXRlbSBDPDA+Ci0gCi0gVGhlIG9wZXJhdGlvbiBmYWlsZWQgYmVjYXVzZSBCPENBZmlsZT4g YW5kIEI8Q0FwYXRoPiBhcmUgTlVMTCBvciB0aGUKLSBwcm9jZXNzaW5nIGF0IG9uZSBvZiB0aGUg bG9jYXRpb25zIHNwZWNpZmllZCBmYWlsZWQuIENoZWNrIHRoZSBlcnJvcgotIHN0YWNrIHRvIGZp bmQgb3V0IHRoZSByZWFzb24uCi0gCi0tPWl0ZW0gMQotKz1pdGVtIEM8MT4KLSAKLSBUaGUgb3Bl cmF0aW9uIHN1Y2NlZWRlZC4KLSAKLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NM X0NUWF9zZXRfY2xpZW50X0NBX2xpc3QucG9kLm1hbmZpeCBvcGVuc3NsLTEuMC4xZS9kb2Mvc3Ns L1NTTF9DVFhfc2V0X2NsaWVudF9DQV9saXN0LnBvZAotLS0tIG9wZW5zc2wtMS4wLjFlL2RvYy9z c2wvU1NMX0NUWF9zZXRfY2xpZW50X0NBX2xpc3QucG9kLm1hbmZpeAkyMDEzLTA5LTEyIDExOjE3 OjQyLjEzMjA5MTk4MSArMDIwMAotKysrIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX0NUWF9z ZXRfY2xpZW50X0NBX2xpc3QucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIuMTY0MDkyNjgyICswMjAw Ci1AQCAtNjYsMTMgKzY2LDEzIEBAIHZhbHVlczoKLSAKLSA9b3ZlciA0Ci0gCi0tPWl0ZW0gMAot Kz1pdGVtIEM8MD4KLSAKLSBBIGZhaWx1cmUgd2hpbGUgbWFuaXB1bGF0aW5nIHRoZSBTVEFDS19P RihYNTA5X05BTUUpIG9iamVjdCBvY2N1cnJlZCBvcgotIHRoZSBYNTA5X05BTUUgY291bGQgbm90 IGJlIGV4dHJhY3RlZCBmcm9tIEI8Y2FjZXJ0Pi4gQ2hlY2sgdGhlIGVycm9yIHN0YWNrCi0gdG8g ZmluZCBvdXQgdGhlIHJlYXNvbi4KLSAKLS09aXRlbSAxCi0rPWl0ZW0gQzwxPgotIAotIFRoZSBv cGVyYXRpb24gc3VjY2VlZGVkLgotIAotZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9T U0xfQ1RYX3NldF9zZXNzaW9uX2lkX2NvbnRleHQucG9kLm1hbmZpeCBvcGVuc3NsLTEuMC4xZS9k b2Mvc3NsL1NTTF9DVFhfc2V0X3Nlc3Npb25faWRfY29udGV4dC5wb2QKLS0tLSBvcGVuc3NsLTEu MC4xZS9kb2Mvc3NsL1NTTF9DVFhfc2V0X3Nlc3Npb25faWRfY29udGV4dC5wb2QubWFuZml4CTIw MTMtMDItMTEgMTY6MDI6NDguMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvZG9j L3NzbC9TU0xfQ1RYX3NldF9zZXNzaW9uX2lkX2NvbnRleHQucG9kCTIwMTMtMDktMTIgMTE6MTc6 NDIuMTY2MDkyNzI2ICswMjAwCi1AQCAtNjQsMTMgKzY0LDEzIEBAIHJldHVybiB0aGUgZm9sbG93 aW5nIHZhbHVlczoKLSAKLSA9b3ZlciA0Ci0gCi0tPWl0ZW0gMAotKz1pdGVtIEM8MD4KLSAKLSBU aGUgbGVuZ3RoIEI8c2lkX2N0eF9sZW4+IG9mIHRoZSBzZXNzaW9uIGlkIGNvbnRleHQgQjxzaWRf Y3R4PiBleGNlZWRlZAotIHRoZSBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIG9mIEI8U1NMX01BWF9T U0xfU0VTU0lPTl9JRF9MRU5HVEg+LiBUaGUgZXJyb3IKLSBpcyBsb2dnZWQgdG8gdGhlIGVycm9y IHN0YWNrLgotIAotLT1pdGVtIDEKLSs9aXRlbSBDPDE+Ci0gCi0gVGhlIG9wZXJhdGlvbiBzdWNj ZWVkZWQuCi0gCi1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9DVFhfc2V0X3Nz bF92ZXJzaW9uLnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9TU0xfQ1RYX3NldF9z c2xfdmVyc2lvbi5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9DVFhfc2V0X3Nz bF92ZXJzaW9uLnBvZC5tYW5maXgJMjAxMy0wMi0xMSAxNjoyNjowNC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9DVFhfc2V0X3NzbF92ZXJzaW9uLnBvZAky MDEzLTA5LTEyIDExOjE3OjQyLjE2NzA5Mjc0OCArMDIwMAotQEAgLTQyLDExICs0MiwxMSBAQCBh bmQgU1NMX3NldF9zc2xfbWV0aG9kKCk6Ci0gCi0gPW92ZXIgNAotIAotLT1pdGVtIDAKLSs9aXRl bSBDPDA+Ci0gCi0gVGhlIG5ldyBjaG9pY2UgZmFpbGVkLCBjaGVjayB0aGUgZXJyb3Igc3RhY2sg dG8gZmluZCBvdXQgdGhlIHJlYXNvbi4KLSAKLS09aXRlbSAxCi0rPWl0ZW0gQzwxPgotIAotIFRo ZSBvcGVyYXRpb24gc3VjY2VlZGVkLgotIAotZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvZG9jL3Nz bC9TU0xfQ1RYX3VzZV9wc2tfaWRlbnRpdHlfaGludC5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFl L2RvYy9zc2wvU1NMX0NUWF91c2VfcHNrX2lkZW50aXR5X2hpbnQucG9kCi0tLS0gb3BlbnNzbC0x LjAuMWUvZG9jL3NzbC9TU0xfQ1RYX3VzZV9wc2tfaWRlbnRpdHlfaGludC5wb2QubWFuZml4CTIw MTMtMDktMTIgMTE6MTc6NDIuMTMzMDkyMDAzICswMjAwCi0rKysgb3BlbnNzbC0xLjAuMWUvZG9j L3NzbC9TU0xfQ1RYX3VzZV9wc2tfaWRlbnRpdHlfaGludC5wb2QJMjAxMy0wOS0xMiAxMToxNzo0 Mi4xNjgwOTI3NzAgKzAyMDAKLUBAIC05Niw3ICs5Niw3IEBAIGRhdGEgdG8gQjxwc2s+IGFuZCBy ZXR1cm4gdGhlIGxlbmd0aCBvZgotIGNvbm5lY3Rpb24gd2lsbCBmYWlsIHdpdGggZGVjcnlwdGlv bl9lcnJvciBiZWZvcmUgaXQgd2lsbCBiZSBmaW5pc2hlZAotIGNvbXBsZXRlbHkuCi0gCi0tPWl0 ZW0gMAotKz1pdGVtIEM8MD4KLSAKLSBQU0sgaWRlbnRpdHkgd2FzIG5vdCBmb3VuZC4gQW4gInVu a25vd25fcHNrX2lkZW50aXR5IiBhbGVydCBtZXNzYWdlCi0gd2lsbCBiZSBzZW50IGFuZCB0aGUg Y29ubmVjdGlvbiBzZXR1cCBmYWlscy4KLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wv U1NMX2RvX2hhbmRzaGFrZS5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX2Rv X2hhbmRzaGFrZS5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9kb19oYW5kc2hh a2UucG9kLm1hbmZpeAkyMDEzLTA5LTEyIDExOjE3OjQyLjEzNTA5MjA0NyArMDIwMAotKysrIG9w ZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX2RvX2hhbmRzaGFrZS5wb2QJMjAxMy0wOS0xMiAxMTox Nzo0Mi4xNzAwOTI4MTQgKzAyMDAKLUBAIC00NSwxMyArNDUsMTMgQEAgVGhlIGZvbGxvd2luZyBy ZXR1cm4gdmFsdWVzIGNhbiBvY2N1cjoKLSAKLSA9b3ZlciA0Ci0gCi0tPWl0ZW0gMAotKz1pdGVt IEM8MD4KLSAKLSBUaGUgVExTL1NTTCBoYW5kc2hha2Ugd2FzIG5vdCBzdWNjZXNzZnVsIGJ1dCB3 YXMgc2h1dCBkb3duIGNvbnRyb2xsZWQgYW5kCi0gYnkgdGhlIHNwZWNpZmljYXRpb25zIG9mIHRo ZSBUTFMvU1NMIHByb3RvY29sLiBDYWxsIFNTTF9nZXRfZXJyb3IoKSB3aXRoIHRoZQotIHJldHVy biB2YWx1ZSBCPHJldD4gdG8gZmluZCBvdXQgdGhlIHJlYXNvbi4KLSAKLS09aXRlbSAxCi0rPWl0 ZW0gQzwxPgotIAotIFRoZSBUTFMvU1NMIGhhbmRzaGFrZSB3YXMgc3VjY2Vzc2Z1bGx5IGNvbXBs ZXRlZCwgYSBUTFMvU1NMIGNvbm5lY3Rpb24gaGFzIGJlZW4KLSBlc3RhYmxpc2hlZC4KLWRpZmYg LXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3JlYWQucG9kLm1hbmZpeCBvcGVuc3NsLTEu MC4xZS9kb2Mvc3NsL1NTTF9yZWFkLnBvZAotLS0tIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NM X3JlYWQucG9kLm1hbmZpeAkyMDEzLTAyLTExIDE2OjAyOjQ4LjAwMDAwMDAwMCArMDEwMAotKysr IG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3JlYWQucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIu MTcxMDkyODM2ICswMjAwCi1AQCAtODYsNyArODYsNyBAQCBUaGUgZm9sbG93aW5nIHJldHVybiB2 YWx1ZXMgY2FuIG9jY3VyOgotIFRoZSByZWFkIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsgdGhl IHJldHVybiB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mCi0gYnl0ZXMgYWN0dWFsbHkgcmVhZCBmcm9t IHRoZSBUTFMvU1NMIGNvbm5lY3Rpb24uCi0gCi0tPWl0ZW0gMAotKz1pdGVtIEM8MD4KLSAKLSBU aGUgcmVhZCBvcGVyYXRpb24gd2FzIG5vdCBzdWNjZXNzZnVsLiBUaGUgcmVhc29uIG1heSBlaXRo ZXIgYmUgYSBjbGVhbgotIHNodXRkb3duIGR1ZSB0byBhICJjbG9zZSBub3RpZnkiIGFsZXJ0IHNl bnQgYnkgdGhlIHBlZXIgKGluIHdoaWNoIGNhc2UKLWRpZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2Rv Yy9zc2wvU1NMX3Nlc3Npb25fcmV1c2VkLnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWUvZG9jL3Nz bC9TU0xfc2Vzc2lvbl9yZXVzZWQucG9kCi0tLS0gb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9TU0xf c2Vzc2lvbl9yZXVzZWQucG9kLm1hbmZpeAkyMDEzLTAyLTExIDE2OjAyOjQ4LjAwMDAwMDAwMCAr MDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3Nlc3Npb25fcmV1c2VkLnBvZAky MDEzLTA5LTEyIDExOjE3OjQyLjE3MjA5Mjg1NyArMDIwMAotQEAgLTI3LDExICsyNywxMSBAQCBU aGUgZm9sbG93aW5nIHJldHVybiB2YWx1ZXMgY2FuIG9jY3VyOgotIAotID1vdmVyIDQKLSAKLS09 aXRlbSAwCi0rPWl0ZW0gQzwwPgotIAotIEEgbmV3IHNlc3Npb24gd2FzIG5lZ290aWF0ZWQuCi0g Ci0tPWl0ZW0gMQotKz1pdGVtIEM8MT4KLSAKLSBBIHNlc3Npb24gd2FzIHJldXNlZC4KLSAKLWRp ZmYgLXVwIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3NldF9mZC5wb2QubWFuZml4IG9wZW5z c2wtMS4wLjFlL2RvYy9zc2wvU1NMX3NldF9mZC5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mv c3NsL1NTTF9zZXRfZmQucG9kLm1hbmZpeAkyMDEzLTAyLTExIDE2OjAyOjQ4LjAwMDAwMDAwMCAr MDEwMAotKysrIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3NldF9mZC5wb2QJMjAxMy0wOS0x MiAxMToxNzo0Mi4xNzQwOTI5MDEgKzAyMDAKLUBAIC0zNSwxMSArMzUsMTEgQEAgVGhlIGZvbGxv d2luZyByZXR1cm4gdmFsdWVzIGNhbiBvY2N1cjoKLSAKLSA9b3ZlciA0Ci0gCi0tPWl0ZW0gMAot Kz1pdGVtIEM8MD4KLSAKLSBUaGUgb3BlcmF0aW9uIGZhaWxlZC4gQ2hlY2sgdGhlIGVycm9yIHN0 YWNrIHRvIGZpbmQgb3V0IHdoeS4KLSAKLS09aXRlbSAxCi0rPWl0ZW0gQzwxPgotIAotIFRoZSBv cGVyYXRpb24gc3VjY2VlZGVkLgotIAotZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvZG9jL3NzbC9T U0xfc2V0X3Nlc3Npb24ucG9kLm1hbmZpeCBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9zZXRf c2Vzc2lvbi5wb2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9zZXRfc2Vzc2lvbi5w b2QubWFuZml4CTIwMTMtMDItMTEgMTY6MDI6NDguMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNz bC0xLjAuMWUvZG9jL3NzbC9TU0xfc2V0X3Nlc3Npb24ucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIu MTc1MDkyOTIzICswMjAwCi1AQCAtMzcsMTEgKzM3LDExIEBAIFRoZSBmb2xsb3dpbmcgcmV0dXJu IHZhbHVlcyBjYW4gb2NjdXI6Ci0gCi0gPW92ZXIgNAotIAotLT1pdGVtIDAKLSs9aXRlbSBDPDA+ Ci0gCi0gVGhlIG9wZXJhdGlvbiBmYWlsZWQ7IGNoZWNrIHRoZSBlcnJvciBzdGFjayB0byBmaW5k IG91dCB0aGUgcmVhc29uLgotIAotLT1pdGVtIDEKLSs9aXRlbSBDPDE+Ci0gCi0gVGhlIG9wZXJh dGlvbiBzdWNjZWVkZWQuCi0gCi1kaWZmIC11cCBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF9z aHV0ZG93bi5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3NodXRkb3duLnBv ZAotLS0tIG9wZW5zc2wtMS4wLjFlL2RvYy9zc2wvU1NMX3NodXRkb3duLnBvZC5tYW5maXgJMjAx My0wOS0xMiAxMToxNzo0Mi4xMzcwOTIwOTAgKzAyMDAKLSsrKyBvcGVuc3NsLTEuMC4xZS9kb2Mv c3NsL1NTTF9zaHV0ZG93bi5wb2QJMjAxMy0wOS0xMiAxMToxNzo0Mi4xNzcwOTI5NjcgKzAyMDAK LUBAIC05MiwxNCArOTIsMTQgQEAgVGhlIGZvbGxvd2luZyByZXR1cm4gdmFsdWVzIGNhbiBvY2N1 cjoKLSAKLSA9b3ZlciA0Ci0gCi0tPWl0ZW0gMAotKz1pdGVtIEM8MD4KLSAKLSBUaGUgc2h1dGRv d24gaXMgbm90IHlldCBmaW5pc2hlZC4gQ2FsbCBTU0xfc2h1dGRvd24oKSBmb3IgYSBzZWNvbmQg dGltZSwKLSBpZiBhIGJpZGlyZWN0aW9uYWwgc2h1dGRvd24gc2hhbGwgYmUgcGVyZm9ybWVkLgot IFRoZSBvdXRwdXQgb2YgTDxTU0xfZ2V0X2Vycm9yKDMpfFNTTF9nZXRfZXJyb3IoMyk+IG1heSBi ZSBtaXNsZWFkaW5nLCBhcyBhbgotIGVycm9uZW91cyBTU0xfRVJST1JfU1lTQ0FMTCBtYXkgYmUg ZmxhZ2dlZCBldmVuIHRob3VnaCBubyBlcnJvciBvY2N1cnJlZC4KLSAKLS09aXRlbSAxCi0rPWl0 ZW0gQzwxPgotIAotIFRoZSBzaHV0ZG93biB3YXMgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZC4gVGhl ICJjbG9zZSBub3RpZnkiIGFsZXJ0IHdhcyBzZW50Ci0gYW5kIHRoZSBwZWVyJ3MgImNsb3NlIG5v dGlmeSIgYWxlcnQgd2FzIHJlY2VpdmVkLgotZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWUvZG9jL3Nz bC9TU0xfd3JpdGUucG9kLm1hbmZpeCBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF93cml0ZS5w b2QKLS0tLSBvcGVuc3NsLTEuMC4xZS9kb2Mvc3NsL1NTTF93cml0ZS5wb2QubWFuZml4CTIwMTMt MDItMTEgMTY6MDI6NDguMDAwMDAwMDAwICswMTAwCi0rKysgb3BlbnNzbC0xLjAuMWUvZG9jL3Nz bC9TU0xfd3JpdGUucG9kCTIwMTMtMDktMTIgMTE6MTc6NDIuMTc3MDkyOTY3ICswMjAwCi1AQCAt NzksNyArNzksNyBAQCBUaGUgZm9sbG93aW5nIHJldHVybiB2YWx1ZXMgY2FuIG9jY3VyOgotIFRo ZSB3cml0ZSBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwsIHRoZSByZXR1cm4gdmFsdWUgaXMgdGhl IG51bWJlciBvZgotIGJ5dGVzIGFjdHVhbGx5IHdyaXR0ZW4gdG8gdGhlIFRMUy9TU0wgY29ubmVj dGlvbi4KLSAKLS09aXRlbSAwCi0rPWl0ZW0gQzwwPgotIAotIFRoZSB3cml0ZSBvcGVyYXRpb24g d2FzIG5vdCBzdWNjZXNzZnVsLiBQcm9iYWJseSB0aGUgdW5kZXJseWluZyBjb25uZWN0aW9uCi0g d2FzIGNsb3NlZC4gQ2FsbCBTU0xfZ2V0X2Vycm9yKCkgd2l0aCB0aGUgcmV0dXJuIHZhbHVlIEI8 cmV0PiB0byBmaW5kIG91dCwKCmRpZmYgLS1naXQgYS9vcGVuc3NsLTEuMC4xZy1zc2wtb3AtYWxs LnBhdGNoIGIvb3BlbnNzbC0xLjAuMWctc3NsLW9wLWFsbC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZjY0NzNkNi4uMDAwMDAwMAotLS0gYS9vcGVuc3NsLTEuMC4xZy1zc2wt b3AtYWxsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotZGlmZiAtdXAgb3Bl bnNzbC0xLjAuMWcvc3NsL3NzbC5oLm9wLWFsbCBvcGVuc3NsLTEuMC4xZy9zc2wvc3NsLmgKLS0t LSBvcGVuc3NsLTEuMC4xZy9zc2wvc3NsLmgub3AtYWxsCTIwMTQtMDUtMDYgMTY6MDM6MzcuNDAw NTU0MTI1ICswMjAwCi0rKysgb3BlbnNzbC0xLjAuMWcvc3NsL3NzbC5oCTIwMTQtMDUtMDYgMTY6 MDY6MjEuNjg4MzUyMjQ1ICswMjAwCi1AQCAtNTQ5LDcgKzU0OSw3IEBAIHN0cnVjdCBzc2xfc2Vz c2lvbl9zdAotICNkZWZpbmUgU1NMX09QX05FVFNDQVBFX0NIQUxMRU5HRV9CVUcJCQkweDAwMDAw MDAyTAotIC8qIEFsbG93IGluaXRpYWwgY29ubmVjdGlvbiB0byBzZXJ2ZXJzIHRoYXQgZG9uJ3Qg c3VwcG9ydCBSSSAqLwotICNkZWZpbmUgU1NMX09QX0xFR0FDWV9TRVJWRVJfQ09OTkVDVAkJCTB4 MDAwMDAwMDRMCi0tI2RlZmluZSBTU0xfT1BfTkVUU0NBUEVfUkVVU0VfQ0lQSEVSX0NIQU5HRV9C VUcJCTB4MDAwMDAwMDhMCi0rI2RlZmluZSBTU0xfT1BfTkVUU0NBUEVfUkVVU0VfQ0lQSEVSX0NI QU5HRV9CVUcJCTB4MDAwMDAwMDhMIC8qIG5vIGVmZmVjdCBzaW5jZSAxLjAuMGMgZHVlIHRvIENW RS0yMDEwLTQxODAgKi8KLSAjZGVmaW5lIFNTTF9PUF9TU0xSRUYyX1JFVVNFX0NFUlRfVFlQRV9C VUcJCTB4MDAwMDAwMTBMCi0gI2RlZmluZSBTU0xfT1BfTUlDUk9TT0ZUX0JJR19TU0xWM19CVUZG RVIJCTB4MDAwMDAwMjBMCi0gI2RlZmluZSBTU0xfT1BfU0FGQVJJX0VDREhFX0VDRFNBX0JVRwkJ CTB4MDAwMDAwNDBMCi1AQCAtNTY5LDcgKzU2OSw3IEBAIHN0cnVjdCBzc2xfc2Vzc2lvbl9zdAot IAotIC8qIFNTTF9PUF9BTEw6IHZhcmlvdXMgYnVnIHdvcmthcm91bmRzIHRoYXQgc2hvdWxkIGJl IHJhdGhlciBoYXJtbGVzcy4KLSAgKiAgICAgICAgICAgICBUaGlzIHVzZWQgdG8gYmUgMHgwMDBG RkZGRkwgYmVmb3JlIDAuOS43LiAqLwotLSNkZWZpbmUgU1NMX09QX0FMTAkJCQkJMHg4MDAwMEJG RkwKLSsjZGVmaW5lIFNTTF9PUF9BTEwJCQkJCTB4ODAwMDBCRjdMIC8qIHdlIHN0aWxsIGhhdmUg dG8gaW5jbHVkZSBTU0xfT1BfRE9OVF9JTlNFUlRfRU1QVFlfRlJBR01FTlRTICovCi0gCi0gLyog RFRMUyBvcHRpb25zICovCi0gI2RlZmluZSBTU0xfT1BfTk9fUVVFUllfTVRVICAgICAgICAgICAg ICAgICAweDAwMDAxMDAwTAoKZGlmZiAtLWdpdCBhL29wZW5zc2wtMS4wLjFoLWlwdjYtYXBwcy5w YXRjaCBiL29wZW5zc2wtMS4wLjFoLWlwdjYtYXBwcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5kYjZiNTQzCi0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzbC0xLjAu MWgtaXB2Ni1hcHBzLnBhdGNoCkBAIC0wLDAgKzEsNTI5IEBACitkaWZmIC11cCBvcGVuc3NsLTEu MC4xaC9hcHBzL3NfYXBwcy5oLmlwdjYtYXBwcyBvcGVuc3NsLTEuMC4xaC9hcHBzL3NfYXBwcy5o CistLS0gb3BlbnNzbC0xLjAuMWgvYXBwcy9zX2FwcHMuaC5pcHY2LWFwcHMJMjAxNC0wNi0wNSAx NDozMzozOC41MTU2Njg3NTAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xaC9hcHBzL3NfYXBwcy5o CTIwMTQtMDYtMDUgMTQ6MzM6MzguNTQwNjY5MzM1ICswMjAwCitAQCAtMTQ4LDcgKzE0OCw3IEBA IHR5cGVkZWYgZmRfbWFzayBmZF9zZXQ7CisgI2RlZmluZSBQT1JUX1NUUiAgICAgICAgIjQ0MzMi CisgI2RlZmluZSBQUk9UT0NPTCAgICAgICAgInRjcCIKKyAKKy1pbnQgZG9fc2VydmVyKGludCBw b3J0LCBpbnQgdHlwZSwgaW50ICpyZXQsIGludCAoKmNiKSAoY2hhciAqaG9zdG5hbWUsIGludCBz LCB1bnNpZ25lZCBjaGFyICpjb250ZXh0KSwgdW5zaWduZWQgY2hhciAqY29udGV4dCk7CisraW50 IGRvX3NlcnZlcihjaGFyICpwb3J0LCBpbnQgdHlwZSwgaW50ICpyZXQsIGludCAoKmNiKSAoY2hh ciAqaG9zdG5hbWUsIGludCBzLCB1bnNpZ25lZCBjaGFyICpjb250ZXh0KSwgdW5zaWduZWQgY2hh ciAqY29udGV4dCk7CisgI2lmZGVmIEhFQURFUl9YNTA5X0gKKyBpbnQgTVNfQ0FMTEJBQ0sgdmVy aWZ5X2NhbGxiYWNrKGludCBvaywgWDUwOV9TVE9SRV9DVFggKmN0eCk7CisgI2VuZGlmCitAQCAt MTU2LDEwICsxNTYsOSBAQCBpbnQgTVNfQ0FMTEJBQ0sgdmVyaWZ5X2NhbGxiYWNrKGludCBvaywK KyBpbnQgc2V0X2NlcnRfc3R1ZmYoU1NMX0NUWCAqY3R4LCBjaGFyICpjZXJ0X2ZpbGUsIGNoYXIg KmtleV9maWxlKTsKKyBpbnQgc2V0X2NlcnRfa2V5X3N0dWZmKFNTTF9DVFggKmN0eCwgWDUwOSAq Y2VydCwgRVZQX1BLRVkgKmtleSk7CisgI2VuZGlmCistaW50IGluaXRfY2xpZW50KGludCAqc29j aywgY2hhciAqc2VydmVyLCBpbnQgcG9ydCwgaW50IHR5cGUpOworK2ludCBpbml0X2NsaWVudChp bnQgKnNvY2ssIGNoYXIgKnNlcnZlciwgY2hhciAqcG9ydCwgaW50IHR5cGUpOworIGludCBzaG91 bGRfcmV0cnkoaW50IGkpOworLWludCBleHRyYWN0X3BvcnQoY2hhciAqc3RyLCBzaG9ydCAqcG9y dF9wdHIpOworLWludCBleHRyYWN0X2hvc3RfcG9ydChjaGFyICpzdHIsY2hhciAqKmhvc3RfcHRy LHVuc2lnbmVkIGNoYXIgKmlwLHNob3J0ICpwKTsKKytpbnQgZXh0cmFjdF9ob3N0X3BvcnQoY2hh ciAqc3RyLGNoYXIgKipob3N0X3B0cixjaGFyICoqcG9ydF9wdHIpOworIAorIGxvbmcgTVNfQ0FM TEJBQ0sgYmlvX2R1bXBfY2FsbGJhY2soQklPICpiaW8sIGludCBjbWQsIGNvbnN0IGNoYXIgKmFy Z3AsCisgCQkJCSAgIGludCBhcmdpLCBsb25nIGFyZ2wsIGxvbmcgcmV0KTsKK2RpZmYgLXVwIG9w ZW5zc2wtMS4wLjFoL2FwcHMvc19jbGllbnQuYy5pcHY2LWFwcHMgb3BlbnNzbC0xLjAuMWgvYXBw cy9zX2NsaWVudC5jCistLS0gb3BlbnNzbC0xLjAuMWgvYXBwcy9zX2NsaWVudC5jLmlwdjYtYXBw cwkyMDE0LTA2LTA1IDE0OjMzOjM4LjUzMzY2OTE3MSArMDIwMAorKysrIG9wZW5zc2wtMS4wLjFo L2FwcHMvc19jbGllbnQuYwkyMDE0LTA2LTA1IDE0OjMzOjM4LjU0MDY2OTMzNSArMDIwMAorQEAg LTU2Nyw3ICs1NjcsNyBAQCBpbnQgTUFJTihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgCWludCBj YnVmX2xlbixjYnVmX29mZjsKKyAJaW50IHNidWZfbGVuLHNidWZfb2ZmOworIAlmZF9zZXQgcmVh ZGZkcyx3cml0ZWZkczsKKy0Jc2hvcnQgcG9ydD1QT1JUOworKwljaGFyICpwb3J0X3N0ciA9IFBP UlRfU1RSOworIAlpbnQgZnVsbF9sb2c9MTsKKyAJY2hhciAqaG9zdD1TU0xfSE9TVF9OQU1FOwor IAljaGFyICpjZXJ0X2ZpbGU9TlVMTCwqa2V5X2ZpbGU9TlVMTDsKK0BAIC02NjgsMTMgKzY2OCwx MiBAQCBpbnQgTUFJTihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgCQllbHNlIGlmCShzdHJjbXAo KmFyZ3YsIi1wb3J0IikgPT0gMCkKKyAJCQl7CisgCQkJaWYgKC0tYXJnYyA8IDEpIGdvdG8gYmFk OworLQkJCXBvcnQ9YXRvaSgqKCsrYXJndikpOworLQkJCWlmIChwb3J0ID09IDApIGdvdG8gYmFk OworKwkJCXBvcnRfc3RyPSAqKCsrYXJndik7CisgCQkJfQorIAkJZWxzZSBpZiAoc3RyY21wKCph cmd2LCItY29ubmVjdCIpID09IDApCisgCQkJeworIAkJCWlmICgtLWFyZ2MgPCAxKSBnb3RvIGJh ZDsKKy0JCQlpZiAoIWV4dHJhY3RfaG9zdF9wb3J0KCooKythcmd2KSwmaG9zdCxOVUxMLCZwb3J0 KSkKKysJCQlpZiAoIWV4dHJhY3RfaG9zdF9wb3J0KCooKythcmd2KSwmaG9zdCwmcG9ydF9zdHIp KQorIAkJCQlnb3RvIGJhZDsKKyAJCQl9CisgCQllbHNlIGlmCShzdHJjbXAoKmFyZ3YsIi12ZXJp ZnkiKSA9PSAwKQorQEAgLTEyNjcsNyArMTI2Niw3IEBAIGJhZDoKKyAKKyByZV9zdGFydDoKKyAK Ky0JaWYgKGluaXRfY2xpZW50KCZzLGhvc3QscG9ydCxzb2NrZXRfdHlwZSkgPT0gMCkKKysJaWYg KGluaXRfY2xpZW50KCZzLGhvc3QscG9ydF9zdHIsc29ja2V0X3R5cGUpID09IDApCisgCQl7Cisg CQlCSU9fcHJpbnRmKGJpb19lcnIsImNvbm5lY3Q6ZXJybm89JWRcbiIsZ2V0X2xhc3Rfc29ja2V0 X2Vycm9yKCkpOworIAkJU0hVVERPV04ocyk7CitkaWZmIC11cCBvcGVuc3NsLTEuMC4xaC9hcHBz L3Nfc2VydmVyLmMuaXB2Ni1hcHBzIG9wZW5zc2wtMS4wLjFoL2FwcHMvc19zZXJ2ZXIuYworLS0t IG9wZW5zc2wtMS4wLjFoL2FwcHMvc19zZXJ2ZXIuYy5pcHY2LWFwcHMJMjAxNC0wNi0wNSAxNDoz MzozOC41MzM2NjkxNzEgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xaC9hcHBzL3Nfc2VydmVyLmMJ MjAxNC0wNi0wNSAxNDozMzozOC41NDE2NjkzNTggKzAyMDAKK0BAIC05MzMsNyArOTMzLDcgQEAg aW50IE1BSU4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAJeworIAlYNTA5X1ZFUklGWV9QQVJB TSAqdnBtID0gTlVMTDsKKyAJaW50IGJhZGFyZyA9IDA7CistCXNob3J0IHBvcnQ9UE9SVDsKKysJ Y2hhciAqcG9ydF9zdHIgPSBQT1JUX1NUUjsKKyAJY2hhciAqQ0FwYXRoPU5VTEwsKkNBZmlsZT1O VUxMOworIAl1bnNpZ25lZCBjaGFyICpjb250ZXh0ID0gTlVMTDsKKyAJY2hhciAqZGhmaWxlID0g TlVMTDsKK0BAIC0xMDA0LDggKzEwMDQsNyBAQCBpbnQgTUFJTihpbnQgYXJnYywgY2hhciAqYXJn dltdKQorIAkJCSAoc3RyY21wKCphcmd2LCItYWNjZXB0IikgPT0gMCkpCisgCQkJeworIAkJCWlm ICgtLWFyZ2MgPCAxKSBnb3RvIGJhZDsKKy0JCQlpZiAoIWV4dHJhY3RfcG9ydCgqKCsrYXJndiks JnBvcnQpKQorLQkJCQlnb3RvIGJhZDsKKysJCQlwb3J0X3N0cj0gKigrK2FyZ3YpOworIAkJCX0K KyAJCWVsc2UgaWYJKHN0cmNtcCgqYXJndiwiLXZlcmlmeSIpID09IDApCisgCQkJeworQEAgLTE4 OTIsOSArMTg5MSw5IEBAIGJhZDoKKyAJQklPX3ByaW50ZihiaW9fc19vdXQsIkFDQ0VQVFxuIik7 CisgCSh2b2lkKUJJT19mbHVzaChiaW9fc19vdXQpOworIAlpZiAod3d3KQorLQkJZG9fc2VydmVy KHBvcnQsc29ja2V0X3R5cGUsJmFjY2VwdF9zb2NrZXQsd3d3X2JvZHksIGNvbnRleHQpOworKwkJ ZG9fc2VydmVyKHBvcnRfc3RyLHNvY2tldF90eXBlLCZhY2NlcHRfc29ja2V0LHd3d19ib2R5LCBj b250ZXh0KTsKKyAJZWxzZQorLQkJZG9fc2VydmVyKHBvcnQsc29ja2V0X3R5cGUsJmFjY2VwdF9z b2NrZXQsc3ZfYm9keSwgY29udGV4dCk7CisrCQlkb19zZXJ2ZXIocG9ydF9zdHIsc29ja2V0X3R5 cGUsJmFjY2VwdF9zb2NrZXQsc3ZfYm9keSwgY29udGV4dCk7CisgCXByaW50X3N0YXRzKGJpb19z X291dCxjdHgpOworIAlyZXQ9MDsKKyBlbmQ6CitkaWZmIC11cCBvcGVuc3NsLTEuMC4xaC9hcHBz L3Nfc29ja2V0LmMuaXB2Ni1hcHBzIG9wZW5zc2wtMS4wLjFoL2FwcHMvc19zb2NrZXQuYworLS0t IG9wZW5zc2wtMS4wLjFoL2FwcHMvc19zb2NrZXQuYy5pcHY2LWFwcHMJMjAxNC0wNi0wNSAxMTo0 NDozMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xaC9hcHBzL3Nfc29ja2V0LmMJ MjAxNC0wNi0wNSAxNDozOTo1My4yMjY0NDIxOTUgKzAyMDAKK0BAIC0xMDIsOSArMTAyLDcgQEAg c3RhdGljIHN0cnVjdCBob3N0ZW50ICpHZXRIb3N0QnlOYW1lKGNoYQorIHN0YXRpYyB2b2lkIHNz bF9zb2NrX2NsZWFudXAodm9pZCk7CisgI2VuZGlmCisgc3RhdGljIGludCBzc2xfc29ja19pbml0 KHZvaWQpOworLXN0YXRpYyBpbnQgaW5pdF9jbGllbnRfaXAoaW50ICpzb2NrLHVuc2lnbmVkIGNo YXIgaXBbNF0sIGludCBwb3J0LCBpbnQgdHlwZSk7Cistc3RhdGljIGludCBpbml0X3NlcnZlcihp bnQgKnNvY2ssIGludCBwb3J0LCBpbnQgdHlwZSk7Cistc3RhdGljIGludCBpbml0X3NlcnZlcl9s b25nKGludCAqc29jaywgaW50IHBvcnQsY2hhciAqaXAsIGludCB0eXBlKTsKKytzdGF0aWMgaW50 IGluaXRfc2VydmVyKGludCAqc29jaywgY2hhciAqcG9ydCwgaW50IHR5cGUpOworIHN0YXRpYyBp bnQgZG9fYWNjZXB0KGludCBhY2Nfc29jaywgaW50ICpzb2NrLCBjaGFyICoqaG9zdCk7Cisgc3Rh dGljIGludCBob3N0X2lwKGNoYXIgKnN0ciwgdW5zaWduZWQgY2hhciBpcFs0XSk7CisgCitAQCAt MjM0LDU3ICsyMzIsNzEgQEAgc3RhdGljIGludCBzc2xfc29ja19pbml0KHZvaWQpCisgCXJldHVy bigxKTsKKyAJfQorIAorLWludCBpbml0X2NsaWVudChpbnQgKnNvY2ssIGNoYXIgKmhvc3QsIGlu dCBwb3J0LCBpbnQgdHlwZSkKKytpbnQgaW5pdF9jbGllbnQoaW50ICpzb2NrLCBjaGFyICpob3N0 LCBjaGFyICpwb3J0LCBpbnQgdHlwZSkKKyAJeworLQl1bnNpZ25lZCBjaGFyIGlwWzRdOworLQor LQltZW1zZXQoaXAsICdcMCcsIHNpemVvZiBpcCk7CistCWlmICghaG9zdF9pcChob3N0LCYoaXBb MF0pKSkKKy0JCXJldHVybiAwOworLQlyZXR1cm4gaW5pdF9jbGllbnRfaXAoc29jayxpcCxwb3J0 LHR5cGUpOworLQl9CistCistc3RhdGljIGludCBpbml0X2NsaWVudF9pcChpbnQgKnNvY2ssIHVu c2lnbmVkIGNoYXIgaXBbNF0sIGludCBwb3J0LCBpbnQgdHlwZSkKKy0JeworLQl1bnNpZ25lZCBs b25nIGFkZHI7CistCXN0cnVjdCBzb2NrYWRkcl9pbiB0aGVtOworLQlpbnQgcyxpOworKwlzdHJ1 Y3QgYWRkcmluZm8gKnJlcywgKnJlczAsIGhpbnRzOworKwljaGFyICogZmFpbGVkX2NhbGwgPSBO VUxMOworKwlpbnQgczsKKysJaW50IGU7CisgCisgCWlmICghc3NsX3NvY2tfaW5pdCgpKSByZXR1 cm4oMCk7CisgCistCW1lbXNldCgoY2hhciAqKSZ0aGVtLDAsc2l6ZW9mKHRoZW0pKTsKKy0JdGhl bS5zaW5fZmFtaWx5PUFGX0lORVQ7CistCXRoZW0uc2luX3BvcnQ9aHRvbnMoKHVuc2lnbmVkIHNo b3J0KXBvcnQpOworLQlhZGRyPSh1bnNpZ25lZCBsb25nKQorLQkJKCh1bnNpZ25lZCBsb25nKWlw WzBdPDwyNEwpfAorLQkJKCh1bnNpZ25lZCBsb25nKWlwWzFdPDwxNkwpfAorLQkJKCh1bnNpZ25l ZCBsb25nKWlwWzJdPDwgOEwpfAorLQkJKCh1bnNpZ25lZCBsb25nKWlwWzNdKTsKKy0JdGhlbS5z aW5fYWRkci5zX2FkZHI9aHRvbmwoYWRkcik7CistCistCWlmICh0eXBlID09IFNPQ0tfU1RSRUFN KQorLQkJcz1zb2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSxTT0NLRVRfUFJPVE9DT0wpOworLQll bHNlIC8qICggdHlwZSA9PSBTT0NLX0RHUkFNKSAqLworLQkJcz1zb2NrZXQoQUZfSU5FVCxTT0NL X0RHUkFNLElQUFJPVE9fVURQKTsKKy0JCQkKKy0JaWYgKHMgPT0gSU5WQUxJRF9TT0NLRVQpIHsg cGVycm9yKCJzb2NrZXQiKTsgcmV0dXJuKDApOyB9CisrCW1lbXNldCgmaGludHMsICdcMCcsIHNp emVvZihoaW50cykpOworKwloaW50cy5haV9zb2NrdHlwZSA9IHR5cGU7CisrCWhpbnRzLmFpX2Zs YWdzID0gQUlfQUREUkNPTkZJRzsKKysKKysJZSA9IGdldGFkZHJpbmZvKGhvc3QsIHBvcnQsICZo aW50cywgJnJlcyk7CisrCWlmIChlKQorKwl7CisrCQlmcHJpbnRmKHN0ZGVyciwgImdldGFkZHJp bmZvOiAlc1xuIiwgZ2FpX3N0cmVycm9yKGUpKTsKKysJCWlmIChlID09IEVBSV9TWVNURU0pCisr CQkJcGVycm9yKCJnZXRhZGRyaW5mbyIpOworKwkJcmV0dXJuICgwKTsKKysJCX0KKyAKKysJcmVz MCA9IHJlczsKKysJd2hpbGUgKHJlcykKKysJCXsKKysJCXMgPSBzb2NrZXQocmVzLT5haV9mYW1p bHksIHJlcy0+YWlfc29ja3R5cGUsIHJlcy0+YWlfcHJvdG9jb2wpOworKwkJaWYgKHMgPT0gSU5W QUxJRF9TT0NLRVQpCisrCQkJeworKwkJCWZhaWxlZF9jYWxsID0gInNvY2tldCI7CisrCQkJZ290 byBuZXh0cmVzOworKwkJCX0KKyAjaWYgZGVmaW5lZChTT19LRUVQQUxJVkUpICYmICFkZWZpbmVk KE9QRU5TU0xfU1lTX01QRSkKKyAJaWYgKHR5cGUgPT0gU09DS19TVFJFQU0pCisgCQl7CistCQlp PTA7CistCQlpPXNldHNvY2tvcHQocyxTT0xfU09DS0VULFNPX0tFRVBBTElWRSwoY2hhciAqKSZp LHNpemVvZihpKSk7CistCQlpZiAoaSA8IDApIHsgY2xvc2Vzb2NrZXQocyk7IHBlcnJvcigia2Vl cGFsaXZlIik7IHJldHVybigwKTsgfQorKwkJCWludCBpPTA7CisrCQkJaT1zZXRzb2Nrb3B0KHMs U09MX1NPQ0tFVCxTT19LRUVQQUxJVkUsCisrCQkJCShjaGFyICopJmksc2l6ZW9mKGkpKTsKKysJ CQlpZiAoaSA8IDApIHsKKysJCQkJZmFpbGVkX2NhbGwgPSAia2VlcGFsaXZlIjsKKysJCQkJZ290 byBuZXh0cmVzOworKwkJCQl9CisgCQl9CisgI2VuZGlmCistCistCWlmIChjb25uZWN0KHMsKHN0 cnVjdCBzb2NrYWRkciAqKSZ0aGVtLHNpemVvZih0aGVtKSkgPT0gLTEpCistCQl7IGNsb3Nlc29j a2V0KHMpOyBwZXJyb3IoImNvbm5lY3QiKTsgcmV0dXJuKDApOyB9CisrCQlpZiAoY29ubmVjdChz LChzdHJ1Y3Qgc29ja2FkZHIgKilyZXMtPmFpX2FkZHIsCisrCQkJcmVzLT5haV9hZGRybGVuKSA9 PSAwKQorKwkJCXsKKysJCQlmcmVlYWRkcmluZm8ocmVzMCk7CisgCSpzb2NrPXM7CisgCXJldHVy bigxKTsKKyAJfQorIAorLWludCBkb19zZXJ2ZXIoaW50IHBvcnQsIGludCB0eXBlLCBpbnQgKnJl dCwgaW50ICgqY2IpKGNoYXIgKmhvc3RuYW1lLCBpbnQgcywgdW5zaWduZWQgY2hhciAqY29udGV4 dCksIHVuc2lnbmVkIGNoYXIgKmNvbnRleHQpCisrCQlmYWlsZWRfY2FsbCA9ICJzb2NrZXQiOwor K25leHRyZXM6CisrCQlpZiAocyAhPSBJTlZBTElEX1NPQ0tFVCkKKysJCQljbG9zZShzKTsKKysJ CXJlcyA9IHJlcy0+YWlfbmV4dDsKKysJCX0KKysJZnJlZWFkZHJpbmZvKHJlczApOworKwljbG9z ZXNvY2tldChzKTsKKysKKysJcGVycm9yKGZhaWxlZF9jYWxsKTsKKysJcmV0dXJuKDApOworKwl9 CisrCisraW50IGRvX3NlcnZlcihjaGFyICpwb3J0LCBpbnQgdHlwZSwgaW50ICpyZXQsIGludCAo KmNiKShjaGFyICpob3N0bmFtZSwgaW50IHMsIHVuc2lnbmVkIGNoYXIgKmNvbnRleHQpLCB1bnNp Z25lZCBjaGFyICpjb250ZXh0KQorIAl7CisgCWludCBzb2NrOworIAljaGFyICpuYW1lID0gTlVM TDsKK0BAIC0zMjIsMzMgKzMzNCw1MCBAQCBpbnQgZG9fc2VydmVyKGludCBwb3J0LCBpbnQgdHlw ZSwgaW50ICpyCisgCQl9CisgCX0KKyAKKy1zdGF0aWMgaW50IGluaXRfc2VydmVyX2xvbmcoaW50 ICpzb2NrLCBpbnQgcG9ydCwgY2hhciAqaXAsIGludCB0eXBlKQorK3N0YXRpYyBpbnQgaW5pdF9z ZXJ2ZXIoaW50ICpzb2NrLCBjaGFyICpwb3J0LCBpbnQgdHlwZSkKKyAJeworLQlpbnQgcmV0PTA7 CistCXN0cnVjdCBzb2NrYWRkcl9pbiBzZXJ2ZXI7CistCWludCBzPSAtMTsKKysJc3RydWN0IGFk ZHJpbmZvICpyZXMsICpyZXMwID0gTlVMTCwgaGludHM7CisrCWNoYXIgKiBmYWlsZWRfY2FsbCA9 IE5VTEw7CisrCWludCBzID0gSU5WQUxJRF9TT0NLRVQ7CisrCWludCBlOworIAorIAlpZiAoIXNz bF9zb2NrX2luaXQoKSkgcmV0dXJuKDApOworIAorLQltZW1zZXQoKGNoYXIgKikmc2VydmVyLDAs c2l6ZW9mKHNlcnZlcikpOworLQlzZXJ2ZXIuc2luX2ZhbWlseT1BRl9JTkVUOworLQlzZXJ2ZXIu c2luX3BvcnQ9aHRvbnMoKHVuc2lnbmVkIHNob3J0KXBvcnQpOworLQlpZiAoaXAgPT0gTlVMTCkK Ky0JCXNlcnZlci5zaW5fYWRkci5zX2FkZHI9SU5BRERSX0FOWTsKKy0JZWxzZQorLS8qIEFkZGVk IGZvciBUM0UsIGFkZHJlc3Mtb2YgZmFpbHMgb24gYml0IGZpZWxkIChiZWNrbWFuQGFjbC5sYW5s LmdvdikgKi8KKy0jaWZuZGVmIEJJVF9GSUVMRF9MSU1JVFMKKy0JCW1lbWNweSgmc2VydmVyLnNp bl9hZGRyLnNfYWRkcixpcCw0KTsKKy0jZWxzZQorLQkJbWVtY3B5KCZzZXJ2ZXIuc2luX2FkZHIs aXAsNCk7CistI2VuZGlmCisrCW1lbXNldCgmaGludHMsICdcMCcsIHNpemVvZihoaW50cykpOwor KwloaW50cy5haV9mYW1pbHkgPSBBRl9JTkVUNjsKKyt0cnlpcHY0OgorKwloaW50cy5haV9zb2Nr dHlwZSA9IHR5cGU7CisrCWhpbnRzLmFpX2ZsYWdzID0gQUlfUEFTU0lWRTsKKyAJCistCQlpZiAo dHlwZSA9PSBTT0NLX1NUUkVBTSkKKy0JCQlzPXNvY2tldChBRl9JTkVULFNPQ0tfU1RSRUFNLFNP Q0tFVF9QUk9UT0NPTCk7CistCQllbHNlIC8qIHR5cGUgPT0gU09DS19ER1JBTSAqLworLQkJCXM9 c29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0sSVBQUk9UT19VRFApOworKwllID0gZ2V0YWRkcmlu Zm8oTlVMTCwgcG9ydCwgJmhpbnRzLCAmcmVzKTsKKysJaWYgKGUpCisrCQl7CisrCQlpZiAoaGlu dHMuYWlfZmFtaWx5ID09IEFGX0lORVQpCisrCQkJeworKwkJCWZwcmludGYoc3RkZXJyLCAiZ2V0 YWRkcmluZm86ICVzXG4iLCBnYWlfc3RyZXJyb3IoZSkpOworKwkJCWlmIChlID09IEVBSV9TWVNU RU0pCisrCQkJCXBlcnJvcigiZ2V0YWRkcmluZm8iKTsKKysJCQlyZXR1cm4gKDApOworKwkJCX0K KysJCQllbHNlCisrCQkJCXJlcyA9IE5VTEw7CisrCQl9CisgCistCWlmIChzID09IElOVkFMSURf U09DS0VUKSBnb3RvIGVycjsKKysJcmVzMCA9IHJlczsKKysJd2hpbGUgKHJlcykKKysJCXsKKysJ CXMgPSBzb2NrZXQocmVzLT5haV9mYW1pbHksIHJlcy0+YWlfc29ja3R5cGUsIHJlcy0+YWlfcHJv dG9jb2wpOworKwkJaWYgKHMgPT0gSU5WQUxJRF9TT0NLRVQpCisrCQkJeworKwkJCWZhaWxlZF9j YWxsID0gInNvY2tldCI7CisrCQkJZ290byBuZXh0cmVzOworKwkJCX0KKysJCWlmIChoaW50cy5h aV9mYW1pbHkgPT0gQUZfSU5FVDYpCisrCQkJeworKwkJCWludCBqID0gMDsKKysJCQlzZXRzb2Nr b3B0KHMsIElQUFJPVE9fSVBWNiwgSVBWNl9WNk9OTFksCisrCQkJCSAgICh2b2lkICopICZqLCBz aXplb2Ygaik7CisrCQkJfQorICNpZiBkZWZpbmVkIFNPTF9TT0NLRVQgJiYgZGVmaW5lZCBTT19S RVVTRUFERFIKKyAJCXsKKyAJCWludCBqID0gMTsKK0BAIC0zNTYsMzUgKzM4NSw0OSBAQCBzdGF0 aWMgaW50IGluaXRfc2VydmVyX2xvbmcoaW50ICpzb2NrLCBpCisgCQkJICAgKHZvaWQgKikgJmos IHNpemVvZiBqKTsKKyAJCX0KKyAjZW5kaWYKKy0JaWYgKGJpbmQocywoc3RydWN0IHNvY2thZGRy ICopJnNlcnZlcixzaXplb2Yoc2VydmVyKSkgPT0gLTEpCisrCisrCQlpZiAoYmluZChzLChzdHJ1 Y3Qgc29ja2FkZHIgKilyZXMtPmFpX2FkZHIsIHJlcy0+YWlfYWRkcmxlbikgPT0gLTEpCisgCQl7 CistI2lmbmRlZiBPUEVOU1NMX1NZU19XSU5ET1dTCistCQlwZXJyb3IoImJpbmQiKTsKKy0jZW5k aWYKKy0JCWdvdG8gZXJyOworKwkJCWZhaWxlZF9jYWxsID0gImJpbmQiOworKwkJCWdvdG8gbmV4 dHJlczsKKyAJCX0KKy0JLyogTWFrZSBpdCAxMjggZm9yIGxpbnV4ICovCistCWlmICh0eXBlPT1T T0NLX1NUUkVBTSAmJiBsaXN0ZW4ocywxMjgpID09IC0xKSBnb3RvIGVycjsKKy0JKnNvY2s9czsK Ky0JcmV0PTE7CistZXJyOgorLQlpZiAoKHJldCA9PSAwKSAmJiAocyAhPSAtMSkpCisrCQlpZiAo dHlwZT09U09DS19TVFJFQU0gJiYgbGlzdGVuKHMsMTI4KSA9PSAtMSkKKyAJCXsKKy0JCVNIVVRE T1dOKHMpOworKwkJCWZhaWxlZF9jYWxsID0gImxpc3RlbiI7CisrCQkJZ290byBuZXh0cmVzOwor IAkJfQorLQlyZXR1cm4ocmV0KTsKKysKKysJCSpzb2NrPXM7CisrCQlyZXR1cm4oMSk7CisrCisr bmV4dHJlczoKKysJCWlmIChzICE9IElOVkFMSURfU09DS0VUKQorKwkJCWNsb3NlKHMpOworKwkJ cmVzID0gcmVzLT5haV9uZXh0OworIAl9CisrCWlmIChyZXMwKQorKwkJZnJlZWFkZHJpbmZvKHJl czApOworIAorLXN0YXRpYyBpbnQgaW5pdF9zZXJ2ZXIoaW50ICpzb2NrLCBpbnQgcG9ydCwgaW50 IHR5cGUpCisrCWlmIChzID09IElOVkFMSURfU09DS0VUKQorIAl7CistCXJldHVybihpbml0X3Nl cnZlcl9sb25nKHNvY2ssIHBvcnQsIE5VTEwsIHR5cGUpKTsKKysJCWlmIChoaW50cy5haV9mYW1p bHkgPT0gQUZfSU5FVDYpCisrCQl7CisrCQkJaGludHMuYWlfZmFtaWx5ID0gQUZfSU5FVDsKKysJ CQlnb3RvIHRyeWlwdjQ7CisrCQl9CisrCQlwZXJyb3IoInNvY2tldCIpOworKwkJcmV0dXJuKDAp OworKwl9CisrCisrCXBlcnJvcihmYWlsZWRfY2FsbCk7CisrCXJldHVybigwKTsKKyAJfQorIAor IHN0YXRpYyBpbnQgZG9fYWNjZXB0KGludCBhY2Nfc29jaywgaW50ICpzb2NrLCBjaGFyICoqaG9z dCkKKyAJeworKwlzdGF0aWMgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgZnJvbTsKKysJY2hhciBi dWZmZXJbTklfTUFYSE9TVF07CisgCWludCByZXQ7CistCXN0cnVjdCBob3N0ZW50ICpoMSwqaDI7 CistCXN0YXRpYyBzdHJ1Y3Qgc29ja2FkZHJfaW4gZnJvbTsKKyAJaW50IGxlbjsKKyAvKglzdHJ1 Y3QgbGluZ2VyIGxpbmc7ICovCisgCitAQCAtNDI0LDE0NSArNDY3LDY2IEBAIHJlZG9pdDoKKyAJ bGluZy5sX29ub2ZmPTE7CisgCWxpbmcubF9saW5nZXI9MDsKKyAJaT1zZXRzb2Nrb3B0KHJldCxT T0xfU09DS0VULFNPX0xJTkdFUiwoY2hhciAqKSZsaW5nLHNpemVvZihsaW5nKSk7CistCWlmIChp IDwgMCkgeyBwZXJyb3IoImxpbmdlciIpOyByZXR1cm4oMCk7IH0KKysJaWYgKGkgPCAwKSB7IGNs b3Nlc29ja2V0KHJldCk7IHBlcnJvcigibGluZ2VyIik7IHJldHVybigwKTsgfQorIAlpPTA7Cisg CWk9c2V0c29ja29wdChyZXQsU09MX1NPQ0tFVCxTT19LRUVQQUxJVkUsKGNoYXIgKikmaSxzaXpl b2YoaSkpOworLQlpZiAoaSA8IDApIHsgcGVycm9yKCJrZWVwYWxpdmUiKTsgcmV0dXJuKDApOyB9 CisrCWlmIChpIDwgMCkgeyBjbG9zZXNvY2tldChyZXQpOyBwZXJyb3IoImtlZXBhbGl2ZSIpOyBy ZXR1cm4oMCk7IH0KKyAqLworIAorIAlpZiAoaG9zdCA9PSBOVUxMKSBnb3RvIGVuZDsKKy0jaWZu ZGVmIEJJVF9GSUVMRF9MSU1JVFMKKy0JLyogSSBzaG91bGQgdXNlIFdTQUFzeW5jR2V0SG9zdEJ5 TmFtZSgpIHVuZGVyIHdpbmRvd3MgKi8KKy0JaDE9Z2V0aG9zdGJ5YWRkcigoY2hhciAqKSZmcm9t LnNpbl9hZGRyLnNfYWRkciwKKy0JCXNpemVvZihmcm9tLnNpbl9hZGRyLnNfYWRkciksQUZfSU5F VCk7CistI2Vsc2UKKy0JaDE9Z2V0aG9zdGJ5YWRkcigoY2hhciAqKSZmcm9tLnNpbl9hZGRyLAor LQkJc2l6ZW9mKHN0cnVjdCBpbl9hZGRyKSxBRl9JTkVUKTsKKy0jZW5kaWYKKy0JaWYgKGgxID09 IE5VTEwpCisrCisrCWlmIChnZXRuYW1laW5mbygoc3RydWN0IHNvY2thZGRyICopJmZyb20sIHNp emVvZihmcm9tKSwKKysJCWJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksCisrCQlOVUxMLCAwLCAwKSkK KyAJCXsKKy0JCUJJT19wcmludGYoYmlvX2VyciwiYmFkIGdldGhvc3RieWFkZHJcbiIpOworKwkJ QklPX3ByaW50ZihiaW9fZXJyLCJnZXRuYW1laW5mbyBmYWlsZWRcbiIpOworIAkJKmhvc3Q9TlVM TDsKKyAJCS8qIHJldHVybigwKTsgKi8KKyAJCX0KKyAJZWxzZQorIAkJeworLQkJaWYgKCgqaG9z dD0oY2hhciAqKU9QRU5TU0xfbWFsbG9jKHN0cmxlbihoMS0+aF9uYW1lKSsxKSkgPT0gTlVMTCkK KysJCWlmICgoKmhvc3Q9KGNoYXIgKilPUEVOU1NMX21hbGxvYyhzdHJsZW4oYnVmZmVyKSsxKSkg PT0gTlVMTCkKKyAJCQl7CisgCQkJcGVycm9yKCJPUEVOU1NMX21hbGxvYyIpOworIAkJCWNsb3Nl c29ja2V0KHJldCk7CisgCQkJcmV0dXJuKDApOworIAkJCX0KKy0JCUJVRl9zdHJsY3B5KCpob3N0 LGgxLT5oX25hbWUsc3RybGVuKGgxLT5oX25hbWUpKzEpOworLQorLQkJaDI9R2V0SG9zdEJ5TmFt ZSgqaG9zdCk7CistCQlpZiAoaDIgPT0gTlVMTCkKKy0JCQl7CistCQkJQklPX3ByaW50ZihiaW9f ZXJyLCJnZXRob3N0YnluYW1lIGZhaWx1cmVcbiIpOworLQkJCWNsb3Nlc29ja2V0KHJldCk7Cist CQkJcmV0dXJuKDApOworLQkJCX0KKy0JCWlmIChoMi0+aF9hZGRydHlwZSAhPSBBRl9JTkVUKQor LQkJCXsKKy0JCQlCSU9fcHJpbnRmKGJpb19lcnIsImdldGhvc3RieW5hbWUgYWRkciBpcyBub3Qg QUZfSU5FVFxuIik7CistCQkJY2xvc2Vzb2NrZXQocmV0KTsKKy0JCQlyZXR1cm4oMCk7CistCQkJ fQorKwkJc3RyY3B5KCpob3N0LCBidWZmZXIpOworIAkJfQorIGVuZDoKKyAJKnNvY2s9cmV0Owor IAlyZXR1cm4oMSk7CisgCX0KKyAKKy1pbnQgZXh0cmFjdF9ob3N0X3BvcnQoY2hhciAqc3RyLCBj aGFyICoqaG9zdF9wdHIsIHVuc2lnbmVkIGNoYXIgKmlwLAorLQkgICAgIHNob3J0ICpwb3J0X3B0 cikKKytpbnQgZXh0cmFjdF9ob3N0X3BvcnQoY2hhciAqc3RyLCBjaGFyICoqaG9zdF9wdHIsIAor KwkgICAgIGNoYXIgKipwb3J0X3B0cikKKyAJeworLQljaGFyICpoLCpwOworKwljaGFyICpoLCpw LCp4OworIAorLQloPXN0cjsKKy0JcD1zdHJjaHIoc3RyLCc6Jyk7CisrCXg9aD1zdHI7CisrCWlm ICgqaCA9PSAnWycpCisrCQl7CisrCQloKys7CisrCQlwPXN0cmNocihoLCddJyk7CisgCWlmIChw ID09IE5VTEwpCisgCQl7CistCQlCSU9fcHJpbnRmKGJpb19lcnIsIm5vIHBvcnQgZGVmaW5lZFxu Iik7CisrCQkJQklPX3ByaW50ZihiaW9fZXJyLCJubyBlbmRpbmcgYnJhY2tldCBmb3IgSVB2NiBh ZGRyZXNzXG4iKTsKKyAJCXJldHVybigwKTsKKyAJCX0KKyAJKihwKyspPSdcMCc7CistCistCWlm ICgoaXAgIT0gTlVMTCkgJiYgIWhvc3RfaXAoc3RyLGlwKSkKKy0JCWdvdG8gZXJyOworLQlpZiAo aG9zdF9wdHIgIT0gTlVMTCkgKmhvc3RfcHRyPWg7CistCistCWlmICghZXh0cmFjdF9wb3J0KHAs cG9ydF9wdHIpKQorLQkJZ290byBlcnI7CistCXJldHVybigxKTsKKy1lcnI6CistCXJldHVybigw KTsKKysJCXggPSBwOworIAl9CistCistc3RhdGljIGludCBob3N0X2lwKGNoYXIgKnN0ciwgdW5z aWduZWQgY2hhciBpcFs0XSkKKy0JeworLQl1bnNpZ25lZCBpbnQgaW5bNF07IAorLQlpbnQgaTsK Ky0KKy0JaWYgKHNzY2FuZihzdHIsIiV1LiV1LiV1LiV1IiwmKGluWzBdKSwmKGluWzFdKSwmKGlu WzJdKSwmKGluWzNdKSkgPT0gNCkKKy0JCXsKKy0JCWZvciAoaT0wOyBpPDQ7IGkrKykKKy0JCQlp ZiAoaW5baV0gPiAyNTUpCistCQkJCXsKKy0JCQkJQklPX3ByaW50ZihiaW9fZXJyLCJpbnZhbGlk IElQIGFkZHJlc3NcbiIpOworLQkJCQlnb3RvIGVycjsKKy0JCQkJfQorLQkJaXBbMF09aW5bMF07 CistCQlpcFsxXT1pblsxXTsKKy0JCWlwWzJdPWluWzJdOworLQkJaXBbM109aW5bM107CistCQl9 CistCWVsc2UKKy0JCXsgLyogZG8gYSBnZXRob3N0YnluYW1lICovCistCQlzdHJ1Y3QgaG9zdGVu dCAqaGU7CistCistCQlpZiAoIXNzbF9zb2NrX2luaXQoKSkgcmV0dXJuKDApOworLQorLQkJaGU9 R2V0SG9zdEJ5TmFtZShzdHIpOworLQkJaWYgKGhlID09IE5VTEwpCistCQkJeworLQkJCUJJT19w cmludGYoYmlvX2VyciwiZ2V0aG9zdGJ5bmFtZSBmYWlsdXJlXG4iKTsKKy0JCQlnb3RvIGVycjsK Ky0JCQl9CistCQkvKiBjYXN0IHRvIHNob3J0IGJlY2F1c2Ugb2Ygd2luMTYgd2luc29jayBkZWZp bml0aW9uICovCistCQlpZiAoKHNob3J0KWhlLT5oX2FkZHJ0eXBlICE9IEFGX0lORVQpCisrCXA9 c3RyY2hyKHgsJzonKTsKKysJaWYgKHAgPT0gTlVMTCkKKyAJCQl7CistCQkJQklPX3ByaW50Zihi aW9fZXJyLCJnZXRob3N0YnluYW1lIGFkZHIgaXMgbm90IEFGX0lORVRcbiIpOworLQkJCXJldHVy bigwKTsKKy0JCQl9CistCQlpcFswXT1oZS0+aF9hZGRyX2xpc3RbMF1bMF07CistCQlpcFsxXT1o ZS0+aF9hZGRyX2xpc3RbMF1bMV07CistCQlpcFsyXT1oZS0+aF9hZGRyX2xpc3RbMF1bMl07Cist CQlpcFszXT1oZS0+aF9hZGRyX2xpc3RbMF1bM107CistCQl9CistCXJldHVybigxKTsKKy1lcnI6 CisrCQlCSU9fcHJpbnRmKGJpb19lcnIsIm5vIHBvcnQgZGVmaW5lZFxuIik7CisgCXJldHVybigw KTsKKyAJfQorKwkqKHArKyk9J1wwJzsKKyAKKy1pbnQgZXh0cmFjdF9wb3J0KGNoYXIgKnN0ciwg c2hvcnQgKnBvcnRfcHRyKQorLQl7CistCWludCBpOworLQlzdHJ1Y3Qgc2VydmVudCAqczsKKysJ aWYgKGhvc3RfcHRyICE9IE5VTEwpICpob3N0X3B0cj1oOworKwlpZiAocG9ydF9wdHIgIT0gTlVM TCkgKnBvcnRfcHRyPXA7CisgCistCWk9YXRvaShzdHIpOworLQlpZiAoaSAhPSAwKQorLQkJKnBv cnRfcHRyPSh1bnNpZ25lZCBzaG9ydClpOworLQllbHNlCistCQl7CistCQlzPWdldHNlcnZieW5h bWUoc3RyLCJ0Y3AiKTsKKy0JCWlmIChzID09IE5VTEwpCistCQkJeworLQkJCUJJT19wcmludGYo YmlvX2VyciwiZ2V0c2VydmJ5bmFtZSBmYWlsdXJlIGZvciAlc1xuIixzdHIpOworLQkJCXJldHVy bigwKTsKKy0JCQl9CistCQkqcG9ydF9wdHI9bnRvaHMoKHVuc2lnbmVkIHNob3J0KXMtPnNfcG9y dCk7CistCQl9CisgCXJldHVybigxKTsKKyAJfQorIAoKZGlmZiAtLWdpdCBhL29wZW5zc2wtMS4w LjFoLW1hbmZpeC5wYXRjaCBiL29wZW5zc2wtMS4wLjFoLW1hbmZpeC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzZmNThmCi0tLSAvZGV2L251bGwKKysrIGIvb3Bl bnNzbC0xLjAuMWgtbWFuZml4LnBhdGNoCkBAIC0wLDAgKzEsMTM1IEBACitkaWZmIC11cCBvcGVu c3NsLTEuMC4xaC9kb2MvYXBwcy9lYy5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFoL2RvYy9hcHBz L2VjLnBvZAorLS0tIG9wZW5zc2wtMS4wLjFoL2RvYy9hcHBzL2VjLnBvZC5tYW5maXgJMjAxNC0w Ni0wNSAxMTo0MTozMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4xaC9kb2MvYXBw cy9lYy5wb2QJMjAxNC0wNi0wNSAxNDo0MToxMS41MDEyNzQ5MTUgKzAyMDAKK0BAIC05MywxMCAr OTMsNiBAQCBwcmludHMgb3V0IHRoZSBwdWJsaWMsIHByaXZhdGUga2V5IGNvbXBvCisgCisgdGhp cyBvcHRpb24gcHJldmVudHMgb3V0cHV0IG9mIHRoZSBlbmNvZGVkIHZlcnNpb24gb2YgdGhlIGtl eS4KKyAKKy09aXRlbSBCPC1tb2R1bHVzPgorLQorLXRoaXMgb3B0aW9uIHByaW50cyBvdXQgdGhl IHZhbHVlIG9mIHRoZSBwdWJsaWMga2V5IGNvbXBvbmVudCBvZiB0aGUga2V5LgorLQorID1pdGVt IEI8LXB1YmluPgorIAorIGJ5IGRlZmF1bHQgYSBwcml2YXRlIGtleSBpcyByZWFkIGZyb20gdGhl IGlucHV0IGZpbGU6IHdpdGggdGhpcyBvcHRpb24gYQorZGlmZiAtdXAgb3BlbnNzbC0xLjAuMWgv ZG9jL2FwcHMvb3BlbnNzbC5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFoL2RvYy9hcHBzL29wZW5z c2wucG9kCistLS0gb3BlbnNzbC0xLjAuMWgvZG9jL2FwcHMvb3BlbnNzbC5wb2QubWFuZml4CTIw MTQtMDYtMDUgMTE6NDE6MzEuMDAwMDAwMDAwICswMjAwCisrKysgb3BlbnNzbC0xLjAuMWgvZG9j L2FwcHMvb3BlbnNzbC5wb2QJMjAxNC0wNi0wNSAxNDo0MToxMS41MDEyNzQ5MTUgKzAyMDAKK0BA IC0xNjMsNyArMTYzLDcgQEAgQ3JlYXRlIG9yIGV4YW1pbmUgYSBuZXRzY2FwZSBjZXJ0aWZpY2F0 ZQorIAorIE9ubGluZSBDZXJ0aWZpY2F0ZSBTdGF0dXMgUHJvdG9jb2wgdXRpbGl0eS4KKyAKKy09 aXRlbSBMPEI8cGFzc3dkPnxwYXNzd2QoMSk+CisrPWl0ZW0gTDxCPHBhc3N3ZD58c3NscGFzc3dk KDEpPgorIAorIEdlbmVyYXRpb24gb2YgaGFzaGVkIHBhc3N3b3Jkcy4KKyAKK0BAIC0xODcsNyAr MTg3LDcgQEAgUHVibGljIGtleSBhbGdvcml0aG0gcGFyYW1ldGVyIG1hbmFnZW1lbgorIAorIFB1 YmxpYyBrZXkgYWxnb3JpdGhtIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9uIHV0aWxpdHkuCisgCist PWl0ZW0gTDxCPHJhbmQ+fHJhbmQoMSk+CisrPWl0ZW0gTDxCPHJhbmQ+fHNzbHJhbmQoMSk+Cisg CisgR2VuZXJhdGUgcHNldWRvLXJhbmRvbSBieXRlcy4KKyAKK0BAIC00MDEsOSArNDAxLDkgQEAg TDxjcmwoMSl8Y3JsKDEpPiwgTDxjcmwycGtjczcoMSl8Y3JsMnBrYworIEw8ZGhwYXJhbSgxKXxk aHBhcmFtKDEpPiwgTDxkc2EoMSl8ZHNhKDEpPiwgTDxkc2FwYXJhbSgxKXxkc2FwYXJhbSgxKT4s CisgTDxlbmMoMSl8ZW5jKDEpPiwgTDxnZW5kc2EoMSl8Z2VuZHNhKDEpPiwgTDxnZW5wa2V5KDEp fGdlbnBrZXkoMSk+LAorIEw8Z2VucnNhKDEpfGdlbnJzYSgxKT4sIEw8bnNlcSgxKXxuc2VxKDEp PiwgTDxvcGVuc3NsKDEpfG9wZW5zc2woMSk+LAorLUw8cGFzc3dkKDEpfHBhc3N3ZCgxKT4sCisr TDxzc2xwYXNzd2QoMSl8c3NscGFzc3dkKDEpPiwKKyBMPHBrY3MxMigxKXxwa2NzMTIoMSk+LCBM PHBrY3M3KDEpfHBrY3M3KDEpPiwgTDxwa2NzOCgxKXxwa2NzOCgxKT4sCistTDxyYW5kKDEpfHJh bmQoMSk+LCBMPHJlcSgxKXxyZXEoMSk+LCBMPHJzYSgxKXxyc2EoMSk+LAorK0w8c3NscmFuZCgx KXxzc2xyYW5kKDEpPiwgTDxyZXEoMSl8cmVxKDEpPiwgTDxyc2EoMSl8cnNhKDEpPiwKKyBMPHJz YXV0bCgxKXxyc2F1dGwoMSk+LCBMPHNfY2xpZW50KDEpfHNfY2xpZW50KDEpPiwKKyBMPHNfc2Vy dmVyKDEpfHNfc2VydmVyKDEpPiwgTDxzX3RpbWUoMSl8c190aW1lKDEpPiwKKyBMPHNtaW1lKDEp fHNtaW1lKDEpPiwgTDxzcGthYygxKXxzcGthYygxKT4sCitkaWZmIC11cCBvcGVuc3NsLTEuMC4x aC9kb2MvYXBwcy9zX2NsaWVudC5wb2QubWFuZml4IG9wZW5zc2wtMS4wLjFoL2RvYy9hcHBzL3Nf Y2xpZW50LnBvZAorLS0tIG9wZW5zc2wtMS4wLjFoL2RvYy9hcHBzL3NfY2xpZW50LnBvZC5tYW5m aXgJMjAxNC0wNi0wNSAxNDo0MToxMS40NDUyNzM2MDUgKzAyMDAKKysrKyBvcGVuc3NsLTEuMC4x aC9kb2MvYXBwcy9zX2NsaWVudC5wb2QJMjAxNC0wNi0wNSAxNDo0MToxMS41MDEyNzQ5MTUgKzAy MDAKK0BAIC0zMyw5ICszMywxNCBAQCBCPG9wZW5zc2w+IEI8c19jbGllbnQ+CisgW0I8LXNzbDI+ XQorIFtCPC1zc2wzPl0KKyBbQjwtdGxzMT5dCisrW0I8LXRsczFfMT5dCisrW0I8LXRsczFfMj5d CisrW0I8LWR0bHMxPl0KKyBbQjwtbm9fc3NsMj5dCisgW0I8LW5vX3NzbDM+XQorIFtCPC1ub190 bHMxPl0KKytbQjwtbm9fdGxzMV8xPl0KKytbQjwtbm9fdGxzMV8yPl0KKyBbQjwtYnVncz5dCisg W0I8LWNpcGhlciBjaXBoZXJsaXN0Pl0KKyBbQjwtc3RhcnR0bHMgcHJvdG9jb2w+XQorQEAgLTQ1 LDYgKzUwLDcgQEAgQjxvcGVuc3NsPiBCPHNfY2xpZW50PgorIFtCPC1zZXNzX291dCBmaWxlbmFt ZT5dCisgW0I8LXNlc3NfaW4gZmlsZW5hbWU+XQorIFtCPC1yYW5kIGZpbGUocyk+XQorK1tCPC1u ZXh0cHJvdG9uZWcgcHJvdG9jb2xzPl0KKyAKKyA9aGVhZDEgREVTQ1JJUFRJT04KKyAKK0BAIC0x ODgsNyArMTk0LDcgQEAgVXNlIHRoZSBQU0sga2V5IEI8a2V5PiB3aGVuIHVzaW5nIGEgUFNLCisg Z2l2ZW4gYXMgYSBoZXhhZGVjaW1hbCBudW1iZXIgd2l0aG91dCBsZWFkaW5nIDB4LCBmb3IgZXhh bXBsZSAtcHNrCisgMWEyYjNjNGQuCisgCistPWl0ZW0gQjwtc3NsMj4sIEI8LXNzbDM+LCBCPC10 bHMxPiwgQjwtbm9fc3NsMj4sIEI8LW5vX3NzbDM+LCBCPC1ub190bHMxPgorKz1pdGVtIEI8LXNz bDI+LCBCPC1zc2wzPiwgQjwtdGxzMT4sIEI8LXRsczFfMT4sIEI8LXRsczFfMj4sIEI8LWR0bHMx PiwgQjwtbm9fc3NsMj4sIEI8LW5vX3NzbDM+LCBCPC1ub190bHMxPiwgQjwtbm9fdGxzMV8xPiwg Qjwtbm9fdGxzMV8yPgorIAorIHRoZXNlIG9wdGlvbnMgZGlzYWJsZSB0aGUgdXNlIG9mIGNlcnRh aW4gU1NMIG9yIFRMUyBwcm90b2NvbHMuIEJ5IGRlZmF1bHQKKyB0aGUgaW5pdGlhbCBoYW5kc2hh a2UgdXNlcyBhIG1ldGhvZCB3aGljaCBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIGFsbAorQEAg LTI0OSw2ICsyNTUsMTcgQEAgTXVsdGlwbGUgZmlsZXMgY2FuIGJlIHNwZWNpZmllZCBzZXBhcmF0 ZQorIFRoZSBzZXBhcmF0b3IgaXMgQjw7PiBmb3IgTVMtV2luZG93cywgQjwsPiBmb3IgT3BlblZN UywgYW5kIEI8Oj4gZm9yCisgYWxsIG90aGVycy4KKyAKKys9aXRlbSBCPC1uZXh0cHJvdG9uZWcg cHJvdG9jb2xzPgorKworK2VuYWJsZSBOZXh0IFByb3RvY29sIE5lZ290aWF0aW9uIFRMUyBleHRl bnNpb24gYW5kIHByb3ZpZGUgYSBsaXN0IG9mCisrY29tbWEtc2VwYXJhdGVkIHByb3RvY29sIG5h bWVzIHRoYXQgdGhlIGNsaWVudCBzaG91bGQgYWR2ZXJ0aXNlCisrc3VwcG9ydCBmb3IuIFRoZSBs aXN0IHNob3VsZCBjb250YWluIG1vc3Qgd2FudGVkIHByb3RvY29scyBmaXJzdC4KKytQcm90b2Nv bCBuYW1lcyBhcmUgcHJpbnRhYmxlIEFTQ0lJIHN0cmluZ3MsIGZvciBleGFtcGxlICJodHRwLzEu MSIgb3IKKysic3BkeS8zIi4KKytFbXB0eSBsaXN0IG9mIHByb3RvY29scyBpcyB0cmVhdGVkIHNw ZWNpYWxseSBhbmQgd2lsbCBjYXVzZSB0aGUgY2xpZW50IHRvCisrYWR2ZXJ0aXNlIHN1cHBvcnQg Zm9yIHRoZSBUTFMgZXh0ZW5zaW9uIGJ1dCBkaXNjb25uZWN0IGp1c3QgYWZ0ZXIKKytyZWNpdmlu ZyBTZXJ2ZXJIZWxsbyB3aXRoIGEgbGlzdCBvZiBzZXJ2ZXIgc3VwcG9ydGVkIHByb3RvY29scy4K KysKKyA9YmFjaworIAorID1oZWFkMSBDT05ORUNURUQgQ09NTUFORFMKK2RpZmYgLXVwIG9wZW5z c2wtMS4wLjFoL2RvYy9hcHBzL3Nfc2VydmVyLnBvZC5tYW5maXggb3BlbnNzbC0xLjAuMWgvZG9j L2FwcHMvc19zZXJ2ZXIucG9kCistLS0gb3BlbnNzbC0xLjAuMWgvZG9jL2FwcHMvc19zZXJ2ZXIu cG9kLm1hbmZpeAkyMDE0LTA2LTA1IDExOjQxOjMxLjAwMDAwMDAwMCArMDIwMAorKysrIG9wZW5z c2wtMS4wLjFoL2RvYy9hcHBzL3Nfc2VydmVyLnBvZAkyMDE0LTA2LTA1IDE0OjQxOjExLjUwMjI3 NDkzOSArMDIwMAorQEAgLTU1LDYgKzU1LDcgQEAgQjxvcGVuc3NsPiBCPHNfc2VydmVyPgorIFtC PC1ub190aWNrZXQ+XQorIFtCPC1pZF9wcmVmaXggYXJnPl0KKyBbQjwtcmFuZCBmaWxlKHMpPl0K KytbQjwtbmV4dHByb3RvbmVnIHByb3RvY29scz5dCisgCisgPWhlYWQxIERFU0NSSVBUSU9OCisg CitAQCAtMjA3LDcgKzIwOCw3IEBAIFVzZSB0aGUgUFNLIGtleSBCPGtleT4gd2hlbiB1c2luZyBh IFBTSworIGdpdmVuIGFzIGEgaGV4YWRlY2ltYWwgbnVtYmVyIHdpdGhvdXQgbGVhZGluZyAweCwg Zm9yIGV4YW1wbGUgLXBzaworIDFhMmIzYzRkLgorIAorLT1pdGVtIEI8LXNzbDI+LCBCPC1zc2wz PiwgQjwtdGxzMT4sIEI8LW5vX3NzbDI+LCBCPC1ub19zc2wzPiwgQjwtbm9fdGxzMT4KKys9aXRl bSBCPC1zc2wyPiwgQjwtc3NsMz4sIEI8LXRsczE+LCBCPC10bHMxXzE+LCBCPC10bHMxXzI+LCBC PC1kdGxzMT4sIEI8LW5vX3NzbDI+LCBCPC1ub19zc2wzPiwgQjwtbm9fdGxzMT4sIEI8LW5vX3Rs czFfMT4sIEI8LW5vX3RsczFfMj4KKyAKKyB0aGVzZSBvcHRpb25zIGRpc2FibGUgdGhlIHVzZSBv ZiBjZXJ0YWluIFNTTCBvciBUTFMgcHJvdG9jb2xzLiBCeSBkZWZhdWx0CisgdGhlIGluaXRpYWwg aGFuZHNoYWtlIHVzZXMgYSBtZXRob2Qgd2hpY2ggc2hvdWxkIGJlIGNvbXBhdGlibGUgd2l0aCBh bGwKK0BAIC0yODIsNiArMjgzLDE0IEBAIE11bHRpcGxlIGZpbGVzIGNhbiBiZSBzcGVjaWZpZWQg c2VwYXJhdGUKKyBUaGUgc2VwYXJhdG9yIGlzIEI8Oz4gZm9yIE1TLVdpbmRvd3MsIEI8LD4gZm9y IE9wZW5WTVMsIGFuZCBCPDo+IGZvcgorIGFsbCBvdGhlcnMuCisgCisrPWl0ZW0gQjwtbmV4dHBy b3RvbmVnIHByb3RvY29scz4KKysKKytlbmFibGUgTmV4dCBQcm90b2NvbCBOZWdvdGlhdGlvbiBU TFMgZXh0ZW5zaW9uIGFuZCBwcm92aWRlIGEKKytjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBzdXBw b3J0ZWQgcHJvdG9jb2wgbmFtZXMuCisrVGhlIGxpc3Qgc2hvdWxkIGNvbnRhaW4gbW9zdCB3YW50 ZWQgcHJvdG9jb2xzIGZpcnN0LgorK1Byb3RvY29sIG5hbWVzIGFyZSBwcmludGFibGUgQVNDSUkg c3RyaW5ncywgZm9yIGV4YW1wbGUgImh0dHAvMS4xIiBvcgorKyJzcGR5LzMiLgorKworID1iYWNr CisgCisgPWhlYWQxIENPTk5FQ1RFRCBDT01NQU5EUwoKZGlmZiAtLWdpdCBhL29wZW5zc2wuc3Bl YyBiL29wZW5zc2wuc3BlYwppbmRleCAzMTc5NDk0Li43ZTgwOGQzIDEwMDY0NAotLS0gYS9vcGVu c3NsLnNwZWMKKysrIGIvb3BlbnNzbC5zcGVjCkBAIC0yMiw4ICsyMiw4IEBACiAKIFN1bW1hcnk6 IFV0aWxpdGllcyBmcm9tIHRoZSBnZW5lcmFsIHB1cnBvc2UgY3J5cHRvZ3JhcGh5IGxpYnJhcnkg d2l0aCBUTFMgaW1wbGVtZW50YXRpb24KIE5hbWU6IG9wZW5zc2wKLVZlcnNpb246IDEuMC4xZwot UmVsZWFzZTogMiV7P2Rpc3R9CitWZXJzaW9uOiAxLjAuMWgKK1JlbGVhc2U6IDElez9kaXN0fQog RXBvY2g6IDEKICMgV2UgaGF2ZSB0byByZW1vdmUgY2VydGFpbiBwYXRlbnRlZCBhbGdvcml0aG1z IGZyb20gdGhlIG9wZW5zc2wgc291cmNlCiAjIHRhcmJhbGwgd2l0aCB0aGUgaG9iYmxlLW9wZW5z c2wgc2NyaXB0IHdoaWNoIGlzIGluY2x1ZGVkIGJlbG93LgpAQCAtNTcsOCArNTcsNyBAQCBQYXRj aDMzOiBvcGVuc3NsLTEuMC4wLWJldGE0LWNhLWRpci5wYXRjaAogUGF0Y2gzNDogb3BlbnNzbC0w LjkuNi14NTA5LnBhdGNoCiBQYXRjaDM1OiBvcGVuc3NsLTAuOS44ai12ZXJzaW9uLWFkZC1lbmdp bmVzLnBhdGNoCiBQYXRjaDM2OiBvcGVuc3NsLTEuMC4wZS1kb2Mtbm9lb2YucGF0Y2gKLVBhdGNo Mzg6IG9wZW5zc2wtMS4wLjFnLXNzbC1vcC1hbGwucGF0Y2gKLVBhdGNoMzk6IG9wZW5zc2wtMS4w LjFjLWlwdjYtYXBwcy5wYXRjaAorUGF0Y2gzOTogb3BlbnNzbC0xLjAuMWgtaXB2Ni1hcHBzLnBh dGNoCiBQYXRjaDQwOiBvcGVuc3NsLTEuMC4xZy1maXBzLnBhdGNoCiBQYXRjaDQ1OiBvcGVuc3Ns LTEuMC4xZS1lbnYtemxpYi5wYXRjaAogUGF0Y2g0Nzogb3BlbnNzbC0xLjAuMC1iZXRhNS1yZWFk bWUtd2FybmluZy5wYXRjaApAQCAtNzQsNyArNzMsNyBAQCBQYXRjaDY2OiBvcGVuc3NsLTEuMC4x LXBrZ2NvbmZpZy1rcmI1LnBhdGNoCiBQYXRjaDY4OiBvcGVuc3NsLTEuMC4xZS1zZWN1cmUtZ2V0 ZW52LnBhdGNoCiBQYXRjaDY5OiBvcGVuc3NsLTEuMC4xYy1kaC0xMDI0LnBhdGNoCiBQYXRjaDcw OiBvcGVuc3NsLTEuMC4xZS1maXBzLWVjLnBhdGNoCi1QYXRjaDcxOiBvcGVuc3NsLTEuMC4xZS1t YW5maXgucGF0Y2gKK1BhdGNoNzE6IG9wZW5zc2wtMS4wLjFoLW1hbmZpeC5wYXRjaAogUGF0Y2g3 Mjogb3BlbnNzbC0xLjAuMWUtZmlwcy1jdG9yLnBhdGNoCiBQYXRjaDczOiBvcGVuc3NsLTEuMC4x ZS1lY2Mtc3VpdGViLnBhdGNoCiBQYXRjaDc0OiBvcGVuc3NsLTEuMC4xZS1uby1tZDUtdmVyaWZ5 LnBhdGNoCkBAIC0xNzksNyArMTc4LDYgQEAgY3AgJXtTT1VSQ0UxMn0gJXtTT1VSQ0UxM30gY3J5 cHRvL2VjLwogJXBhdGNoMzQgLXAxIC1iIC54NTA5CiAlcGF0Y2gzNSAtcDEgLWIgLnZlcnNpb24t YWRkLWVuZ2luZXMKICVwYXRjaDM2IC1wMSAtYiAuZG9jLW5vZW9mCi0lcGF0Y2gzOCAtcDEgLWIg Lm9wLWFsbAogJXBhdGNoMzkgLXAxIC1iIC5pcHY2LWFwcHMKICVwYXRjaDQwIC1wMSAtYiAuZmlw cwogJXBhdGNoNDUgLXAxIC1iIC5lbnYtemxpYgpAQCAtNDc0LDYgKzQ3Miw5IEBAIHJtIC1yZiAk UlBNX0JVSUxEX1JPT1QvJXtfbGliZGlyfS9maXBzY2FuaXN0ZXIuKgogJXBvc3R1biBsaWJzIC1w IC9zYmluL2xkY29uZmlnCiAKICVjaGFuZ2Vsb2cKKyogVGh1IEp1biAgNSAyMDE0IFRvbcOhxaEg TXLDoXogPHRtcmF6QHJlZGhhdC5jb20+IDEuMC4xaC0xCistIG5ldyB1cHN0cmVhbSByZWxlYXNl IDEuMC4xaAorCiAqIFNhdCBNYXkgMzEgMjAxNCBQZXRlciBSb2JpbnNvbiA8cGJyb2JpbnNvbkBm ZWRvcmFwcm9qZWN0Lm9yZz4gMS4wLjFnLTIKIC0gRHJvcCBvYnNvbGV0ZSBhbmQgaXJyZWxldmFu dCBkb2NzCiAtIE1vdmUgZGV2ZWwgZG9jcyB0byBhcHByb3ByaWF0ZSBwYWNrYWdlCgpkaWZmIC0t Z2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggMzA2OTBlMC4uNWMzNzdmYSAxMDA2NDQKLS0t IGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi0zZGU0ZjkxNzAyZGZhNTQ1ZDU3 NzkxMmEwNjVmYjI1MCAgb3BlbnNzbC0xLjAuMWctaG9iYmxlZC50YXIueHoKKzRlYTBmMjMxYzYx YjljNjY2NDIxNzZjZGMwMzNiMzg2ICBvcGVuc3NsLTEuMC4xaC1ob2JibGVkLnRhci54ego=