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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Delete upstreamed patches Date: Sun, 31 May 2026 02:08:33 GMT Message-ID: <178019331366.1.2971321519310882893.rpms-ibus-a9da27f5f0f7@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: a9da27f5f0f7ad429e337ac81b0f79a3d4c1b050 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBhOWRhMjdmNWYwZjdhZDQyOWUzMzdhYzgxYjBmNzlhM2Q0YzFi MDUwCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDI0LTA3LTEyVDIzOjA2OjI3KzA5OjAwClN0YXRzICA6ICswLy0xNTkwIGluIDIgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9hOWRh MjdmNWYwZjdhZDQyOWUzMzdhYzgxYjBmNzlhM2Q0YzFiMDUwP2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpEZWxldGUgdXBzdHJlYW1lZCBwYXRjaGVzCgotLS0KZGlmZiAtLWdpdCBhL2lidXMtMS41LjMw LnRhci5nei5zdW0gYi9pYnVzLTEuNS4zMC50YXIuZ3ouc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA3YWEzMmRhLi4wMDAwMDAwCi0tLSBhL2lidXMtMS41LjMwLnRhci5nei5zdW0K KysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLWNrc3VtIDQyODMxMTIzODIgNDEyNDA4NCBp YnVzLTEuNS4zMC50YXIuZ3oKLXNoYTFzdW0gY2RhMDNjODYyMmQ1ODE3ZTFhOTY4YjM4YmQwNTI0 MGUyMTAyOTI4ZCBpYnVzLTEuNS4zMC50YXIuZ3oKLXNoYTI1NnN1bSAwNWI4NGQ0YTQ1MTM5ZmFj ZTE2MTU5NmU1YWRlOGU2YzVkYTU1Y2ZhZjZmMTk0ODYxZGE2NjUxNjE5MGY1Yjk2IGlidXMtMS41 LjMwLnRhci5negotc2hhNTEyc3VtIGNiZWQzN2JmNjJlOGQ4NTkzYzgzOGY4ZWY3ZmUwYjIyYmY4 ZjRhNjYxYjg4N2ZjN2JlMmYyNzY4ZGRhOTEyMDc1YWJkZjMwNzBjMjJiOTY5OWRlZjkwZTcwMDJh YWFmNzM5NGY1ZmM1OTBlMTJlZjZlYmIyYmI1MTYxY2MyOWEwIGlidXMtMS41LjMwLnRhci5negoK ZGlmZiAtLWdpdCBhL2lidXMtSEVBRC5wYXRjaCBiL2lidXMtSEVBRC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMTJmN2UxOS4uMDAwMDAwMAotLS0gYS9pYnVzLUhFQUQucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTg2ICswLDAgQEAKLUZyb20gNDA1OWI5ZjQzZjQ1MDVj ODU1Njc3YWJkZTFiNTlmYzEzMjQxY2E1OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMiBBcHIg MjAyNCAyMzozNDowNyArMDkwMAotU3ViamVjdDogW1BBVENIIDEvNl0gTWFrZWZpbGU6IEFkZCBj aGVjayBzdW0gZmlsZQotCi0tLS0KLSBNYWtlZmlsZS5hbSB8IDggKysrKysrKysKLSAxIGZpbGUg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01h a2VmaWxlLmFtCi1pbmRleCAxNjU0OGQyNS4uODhmZGJkNDggMTAwNjQ0Ci0tLS0gYS9NYWtlZmls ZS5hbQotKysrIGIvTWFrZWZpbGUuYW0KLUBAIC0xMzgsNiArMTM4LDE0IEBAIHNycG06IGRpc3Qg QFBBQ0tBR0VfTkFNRUAuc3BlYwotIAkJCS0tZGVmaW5lICJfc3BlY2RpciBgcHdkYC9ycG0iIFwK LSAJCQlAUEFDS0FHRV9OQU1FQC5zcGVjCi0gCi0rQFBBQ0tBR0VfTkFNRUAtQFBBQ0tBR0VfVkVS U0lPTkAuJS5zdW06IEBQQUNLQUdFX05BTUVALUBQQUNLQUdFX1ZFUlNJT05ALiUKLSsJZj1gYmFz ZW5hbWUgJEAgLnN1bWA7IFwKLSsJcHJpbnRmICJja3N1bSAlcyAlcyAlc1xuIiAgICAgIGBja3N1 bSAkJGZgICAgICA+ICAkQDsgXAotKwlwcmludGYgInNoYTFzdW0gJXMgJXNcbiIgICAgICAgYHNo YTFzdW0gJCRmYCAgID4+ICRAOyBcCi0rCXByaW50ZiAic2hhMjU2c3VtICVzICVzXG4iICAgICBg c2hhMjU2c3VtICQkZmAgPj4gJEA7IFwKLSsJcHJpbnRmICJzaGE1MTJzdW0gJXMgJXNcbiIgICAg IGBzaGE1MTJzdW0gJCRmYCA+PiAkQDsgXAotKwkkKE5VTEwpCi0rCi0gY2xlYW4tcnBtOgotIAkt JChSTSkgLXIgImB1bmFtZSAtaWAiCi0gCi0tLSAKLTIuNDUuMAotCi1Gcm9tIGUzOTM0NWFmMjBj MWRkOWIxOGNkYjZjY2I1MDM5YjAzZTQxMzVmNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI0 IE1heSAyMDI0IDEzOjE4OjQyICswOTAwCi1TdWJqZWN0OiBbUEFUQ0ggMi82XSBzcmMvdGVzdHM6 IEZpeCBpYnVzLWRhZW1vbiBpbiBpYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIKLQotU29tZSBk aXN0cmlidXRpb25zIGRvIG5vdCBuZWVkIHRoZSBJQnVzIHBhbmVsIGFuZCBnbm9tZS1zaGVsbCBh bHNvCi1kb2VzIG5vdCBuZWVkIGl0LgotQWRkIC0tdmVyYm9zZSBvcHRpb24gdG8gZ2V0IGlidXMt ZGFlbW9uIGVycm9yIG1lc3NhZ2VzLgotCi1BZGQgdmFsYSBjaGVjayBpbiBhdXRvZ2VuLnNoIHNp bmNlIHZhbGFjIGNoYW5nZXMgdGhlIHNvdXJjZSBjb2Rlcy4KLS0tLQotIGF1dG9nZW4uc2ggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQotIHNyYy90ZXN0cy9pYnVzLWRlc2t0 b3AtdGVzdGluZy1ydW5uZXIuaW4gfCAxNyArKysrKysrKysrKysrKy0tLQotIDIgZmlsZXMgY2hh bmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2F1 dG9nZW4uc2ggYi9hdXRvZ2VuLnNoCi1pbmRleCBkNmY4Zjk4My4uOTBlMTI2ZWMgMTAwNzU1Ci0t LS0gYS9hdXRvZ2VuLnNoCi0rKysgYi9hdXRvZ2VuLnNoCi1AQCAtMTQsNyArMTQsNyBAQCBHQ0Nf VkVSU0lPTj0kKGdjYyAtLXZlcnNpb24gfCBoZWFkIC0xIHwgYXdrICd7cHJpbnQgJDN9JykKLSBH Q0NfTUFKT1JfVkVSU0lPTj0kKGVjaG8gIiRHQ0NfVkVSU0lPTiIgfCBhd2sgLUYuICd7cHJpbnQg JDF9JykKLSBGRURPUkFfUEtHMT0nYXV0b2NvbmYgYXV0b21ha2UgbGlidG9vbCBnZXR0ZXh0LWRl dmVsJwotIEZFRE9SQV9QS0cyPSdnbGliMi1kZXZlbCBndGsyLWRldmVsIGd0azMtZGV2ZWwKLS0g d2F5bGFuZC1kZXZlbCcKLSsgd2F5bGFuZC1kZXZlbCB2YWxhJwotIEZFRE9SQV9QS0czPSdjbGRy LWVtb2ppLWFubm90YXRpb24gaXNvLWNvZGVzLWRldmVsIHVuaWNvZGUtZW1vamkgdW5pY29kZS11 Y2QKLSAgeGtleWJvYXJkLWNvbmZpZy1kZXZlbCcKLSAKLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMv aWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyLmluIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10 ZXN0aW5nLXJ1bm5lci5pbgotaW5kZXggNmIyMDgzNDUuLjFhYzJkZmM4IDEwMDc1NQotLS0tIGEv c3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgotKysrIGIvc3JjL3Rlc3Rz L2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgotQEAgLTQ1LDYgKzQ1LDcgQEAgVEVTVF9M T0dfU1RET1VUPTAKLSBSRVNVTFRfTE9HPSIiCi0gU0NSRUVOX0xPRz0iIgotIEhBVkVfR1JBUEhJ Q1M9MQotK1ZFUkJPU0U9MAotIERFU0tUT1BfQ09NTUFORD0iZGJ1cy1sYXVuY2ggLS1leGl0LXdp dGgtc2Vzc2lvbiBnbm9tZS1zZXNzaW9uIgotIFBJRF9YT1JHPTAKLSBQSURfR05PTUVfU0VTU0lP Tj0wCi1AQCAtODMsNiArODQsNyBAQCB1c2FnZSgpCi0gIi1iLCAtLWJ1aWxkZGlyPUJVSUxERElS ICAgICAgICAgIFNldCB0aGUgQlVJTERESVJcbiIgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSAiLXMsIC0tc3JjZGlyPVNPVVJDRURJUiAgICAgICAgICAgU2V0IHRoZSBTT1VSQ0VESVJcbiIg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICItYywgLS1uby1ncmFwaGljcyAgICAgICAgICAg ICAgICBVc2UgWHZmYiBpbnN0ZWFkIG9mIFhvcmdcbiIgICAgICAgICAgICAgICAgICBcCi0rIi1W LCAtLXZlcmJvc2UgICAgICAgICAgICAgICAgICAgIFZlcmJvc2UgbG9nIGZvciBpYnVzLWRhZW1v blxuIiAgICAgICAgICAgICAgIFwKLSAiLWQsIC0tZGVza3RvcD1ERVNLVE9QICAgICAgICAgICAg UnVuIERFU1RLVE9QLiBUaGUgZGVmYXVsdCBpcyBnbm9tZS1zZXNzaW9uLlxuIiBcCi0gIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1ZmZpeCAnLXdpdGgtZGJ1cycgY2FuIHJ1biBE RVNLVE9QIHdpdGggZGJ1cyBzZXNzaW9uLiIgXAotICIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBFLmcuIC0tZGVza3RvcD1tdXR0ZXItd2l0aC1kYnVzIiAgICAgICAgICAgICBcCi1A QCAtMTAxLDggKzEwMyw4IEBAIHVzYWdlKCkKLSBwYXJzZV9hcmdzKCkKLSB7Ci0gICAgICMgVGhp cyBpcyBHTlUgZ2V0b3B0LiAic3VkbyBwb3J0IGdldG9wdCIgaW4gQlNEPwotLSAgICBBUkdTPWBn ZXRvcHQgLW8gaHZiOnM6Y2Q6dDpyOlQ6bzpPOlM6IC0tbG9uZyBcCi0tICAgICAgICAgIGhlbHAs dmVyc2lvbixidWlsZGRpcjosc3JjZGlyOixuby1ncmFwaGljcyxkZXNrdG9wOix0ZXN0czoscnVu bmVyOix0aW1lb3V0OixvdXRwdXQ6LHJlc3VsdDosc2NyZWVuZHVtcDpcCi0rICAgIEFSR1M9YGdl dG9wdCAtbyBodmI6czpjVmQ6dDpyOlQ6bzpPOlM6IC0tbG9uZyBcCi0rICAgICAgICAgIGhlbHAs dmVyc2lvbixidWlsZGRpcjosc3JjZGlyOixuby1ncmFwaGljcyx2ZXJib3NlLGRlc2t0b3A6LHRl c3RzOixydW5uZXI6LHRpbWVvdXQ6LG91dHB1dDoscmVzdWx0OixzY3JlZW5kdW1wOlwKLSAgICAg ICAgIC0tICIkQCJgOwotICAgICBldmFsIHNldCAtLSAiJEFSR1MiCi0gICAgIHdoaWxlIFsgMSBd IDsgZG8KLUBAIC0xMTIsNiArMTE0LDcgQEAgcGFyc2VfYXJncygpCi0gICAgICAgICAtYiB8IC0t YnVpbGRkaXIgKSAgICBCVUlMRERJUj0iJDIiOyBzaGlmdCAyOzsKLSAgICAgICAgIC1zIHwgLS1z cmNkaXIgKSAgICAgIFNSQ0RJUj0iJDIiOyBzaGlmdCAyOzsKLSAgICAgICAgIC1jIHwgLS1uby1n cmFwaGljcyApIEhBVkVfR1JBUEhJQ1M9MDsgc2hpZnQ7OwotKyAgICAgICAgLVYgfCAtLXZlcmJv c2UgKSAgICAgVkVSQk9TRT0xOyBzaGlmdDs7Ci0gICAgICAgICAtZCB8IC0tZGVza3RvcCApICAg ICBERVNLVE9QX0NPTU1BTkQ9IiQyIjsgc2hpZnQgMjs7Ci0gICAgICAgICAtdCB8IC0tdGVzdHMg KSAgICAgICBURVNUUz0iJDIiOyBzaGlmdCAyOzsKLSAgICAgICAgIC1yIHwgLS1ydW5uZXIgKSAg ICAgIFRFU1RJTkdfUlVOTkVSPSIkMiI7IHNoaWZ0IDI7OwotQEAgLTI4Niw2ICsyODksNyBAQCBy dW5fZGVza3RvcCgpCi0gICAgIFBJRF9HTk9NRV9TRVNTSU9OPSQhCi0gICAgIHNsZWVwIDMwCi0g Ci0rICAgIElCVVNfQVJHUz0iLS12ZXJib3NlIC0tcGFuZWwgZGlzYWJsZSIKLSAgICAgIyBnbm9t ZS1zaGVsbCA0MiBjaGVja3MgaWYgb3JnLmZyZWVkZXNrdG9wLklCdXMuc2Vzc2lvbi5HTk9NRS5z ZXJ2aWNlCi0gICAgICMgc3lzdGVtZCBmaWxlIGlzIGF2YWlsYWJsZSB3aXRoIG9yZy5mcmVlZGVz a3RvcC5zeXN0ZW1kMS5NYW5hZ2VyLkdldFVuaXQKLSAgICAgIyBELUJ1cyBtZXRob2QsIHdoaWNo IGlzIHByb3ZpZGVkIGJ5IElCdXMgMS41LjI2LCBhbmQgaWYgdGhlIGZpbGUKLUBAIC0zMDIsOCAr MzA2LDE1IEBAIHJ1bl9kZXNrdG9wKCkKLSAgICAgIyB3aXRoIGdub21lLXNlc3Npb24udGFyZ2V0 IHN5c3RlbWQgZmlsZS4KLSAgICAgIyBCdXQgYHN5c3RlbWN0bCBzdGFydCBnZG1gIHRlcm1pbmF0 ZXMgdGhlIHBhcmVudCBzY3JpcHQgZm9yY2libHkKLSAgICAgIyBhbmQgdGhlIHNjcmlwdCBjYW5u b3QgZ2V0IHRoZSBDSSByZXN1bHQuCi0tICAgIGlidXMtZGFlbW9uIC0tZGFlbW9uaXplIC0tdmVy Ym9zZQotKyAgICBpZiB0ZXN0ICRWRVJCT1NFIC1lcSAxIDsgdGhlbgotKyAgICAgICAgaWJ1cy1k YWVtb24gJElCVVNfQVJHUyAmCi0rICAgIGVsc2UKLSsgICAgICAgIGlidXMtZGFlbW9uICRJQlVT X0FSR1MgLS1kYWVtb25pemUKLSsgICAgZmkKLSAgICAgc2xlZXAgMwotKyAgICBpZiB0ZXN0ICRW RVJCT1NFIC1lcSAxIDsgdGhlbgotKyAgICAgICAgcHMgLWVmIHwgZ3JlcCBpYnVzCi0rICAgIGZp Ci0gfQotIAotIAotLS0gCi0yLjQ1LjAKLQotRnJvbSBmMTkwZGExOWI1M2MyNjdjYTFjOTczMGUx OGYxYjUzYzA4OWMwMjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0 IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAyNCBNYXkgMjAyNCAxNToz NzowMCArMDkwMAotU3ViamVjdDogW1BBVENIIDMvNl0gdWkvZ3RrMzogQ29uZmlndXJlIGluaXRp YWwga2V5bWFwcyB3aXRoIGxvY2FsZWN0bCBpbgotIFdheWxhbmQKLQotYHNldHhrYm1hcCAtcXVl cnlgIHJldHVybnMgVVMgbGF5b3V0IHdpdGggWHdheWxhbmQgYW5kIGl0IGRvZXMgbm90Ci1jb3Jy ZXNwb25kIHRvIHRoZSBzZXNzaW9uIGtleW1hcHMgc28gaWJ1cy1wYW5lbCBub3cgdXNlcwotYGxv Y2FsZWN0bCBzdGF0dXNgIGluIFdheWxhbmQgYnV0IGl0IGRvZXMgbm90IHByb3ZpZGUgdGhlIHNl c3Npb24KLVhLQiBvcHRpb25zIGFnYWluc3QgYHNldHhrYm1hcGAgY29tbWFuZCBpbiBYb3JnLgot TmVlZCB0byB0aGluayBob3cgdG8gbG9hZCBvciBzZXQgdGhlIFhLQiBvcHRpb25zIGluIFdheWxh bmQgbGF0ZXIuCi0KLUJVRz1yaGJ6IzIyNjc2MTUKLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1 cy9pYnVzL3B1bGwvMjYyNAotLS0tCi0gc3JjL3Rlc3RzL2lidXMta2V5cHJlc3MuYyB8ICA0MCAr KysrKysrKystLS0tCi0gdWkvZ3RrMy9wYW5lbC52YWxhICAgICAgICB8ICAgMiArLQotIHVpL2d0 azMveGtibGF5b3V0LnZhbGEgICAgfCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWtleXByZXNzLmMgYi9zcmMvdGVz dHMvaWJ1cy1rZXlwcmVzcy5jCi1pbmRleCBiYWIwNTM5OC4uZDQ0ZjM5YjIgMTAwNjQ0Ci0tLS0g YS9zcmMvdGVzdHMvaWJ1cy1rZXlwcmVzcy5jCi0rKysgYi9zcmMvdGVzdHMvaWJ1cy1rZXlwcmVz cy5jCi1AQCAtNSw2ICs1LDE0IEBACi0gI2luY2x1ZGUgPFgxMS9YbGliLmg+Ci0gI2luY2x1ZGUg PFgxMS9leHRlbnNpb25zL1hUZXN0Lmg+Ci0gCi0rI2lmZGVmIEdES19XSU5ET1dJTkdfV0FZTEFO RAotKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0rI2luY2x1ZGUgPGdkay93YXls YW5kL2dka3dheWxhbmQuaD4KLSsjZWxzZQotKyNpbmNsdWRlIDxnZGsvZ2Rrd2F5bGFuZC5oPgot KyNlbmRpZgotKyNlbmRpZgotKwotICNkZWZpbmUgR1JFRU4gIlwwMzNbMDszMm0iCi0gI2RlZmlu ZSBSRUQgICAiXDAzM1swOzMxbSIKLSAjZGVmaW5lIE5DICAgICJcMDMzWzBtIgotQEAgLTE4Niwx NSArMTk0LDggQEAgc2V0X2VuZ2luZV9jYiAoR09iamVjdCAgICAgICpvYmplY3QsCi0gICAgIH0K LSAKLSAgICAgZGlzcGxheSA9IGd0a193aWRnZXRfZ2V0X2Rpc3BsYXkgKGVudHJ5KTsKLS0gICAg aWYgKEdES19JU19YMTFfRElTUExBWSAoZGlzcGxheSkpIHsKLS0gICAgICAgIHhkaXNwbGF5ID0g Z2RrX3gxMV9kaXNwbGF5X2dldF94ZGlzcGxheSAoZGlzcGxheSk7Ci0tICAgIH0gZWxzZSB7Ci0t I2lmIDAKLS0gICAgICAgIHhkaXNwbGF5ID0gWE9wZW5EaXNwbGF5IChOVUxMKTsKLS0jZWxzZQot LSAgICAgICAgZ19jcml0aWNhbCAoIk5vIGlkZWEgdG8gc2ltdWxhdGUga2V5IGV2ZW50cyBpbiBX YXlsYW5kXG4iKTsKLS0jZW5kaWYKLS0gICAgfQotKyAgICBnX2Fzc2VydCAoR0RLX0lTX1gxMV9E SVNQTEFZIChkaXNwbGF5KSk7Ci0rICAgIHhkaXNwbGF5ID0gZ2RrX3gxMV9kaXNwbGF5X2dldF94 ZGlzcGxheSAoZGlzcGxheSk7Ci0gICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHhkaXNwbGF5KTsKLSAK LSAgICAgZm9yIChpID0gMDsgdGVzdF9jYXNlc1tpXVswXS5rZXl2YWw7IGkrKykgewotQEAgLTI3 MiwxMiArMjczLDE4IEBAIGNyZWF0ZV93aW5kb3cgKCkKLSBzdGF0aWMgdm9pZAotIHRlc3Rfa2V5 cHJlc3MgKHZvaWQpCi0gewotKyAgICBnY2hhciAqcGF0aDsKLSAgICAgaW50IHN0YXR1cyA9IDA7 Ci0gICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotIAotLSAgICBnX3NwYXduX2NvbW1hbmRfbGlu ZV9zeW5jICgic2V0eGtibWFwIC1sYXlvdXQgdXMiLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLCBOVUxMLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3Rh dHVzLCAmZXJyb3IpOwotKyAgICAvKiBsb2NhbGVjdGwgZG9lcyBub3QgY2hhbmdlIHRoZSBzZXNz aW9uIGtleW1hcC4gKi8KLSsgICAgcGF0aCA9IGdfZmluZF9wcm9ncmFtX2luX3BhdGggKCJzZXR4 a2JtYXAiKTsKLSsgICAgaWYgKHBhdGgpIHsKLSsgICAgICAgIGdfc3Bhd25fY29tbWFuZF9saW5l X3N5bmMgKCJzZXR4a2JtYXAgLWxheW91dCB1cyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnN0YXR1cywgJmVycm9yKTsKLSsgICAgfQotKyAgICBnX2ZyZWUgKHBhdGgpOwotICAgICBn X2Fzc2VydCAocmVnaXN0ZXJfaWJ1c19lbmdpbmUgKCkpOwotIAotICAgICBjcmVhdGVfd2luZG93 ICgpOwotQEAgLTI5NSw2ICszMDIsMTUgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK LSAgICAgICAgIGdfbWVzc2FnZSAoIkZhaWxlZCBzZXRlbnYgTk9fQVRfQlJJREdFXG4iKTsKLSAg ICAgZ190ZXN0X2luaXQgKCZhcmdjLCAmYXJndiwgTlVMTCk7Ci0gICAgIGd0a19pbml0ICgmYXJn YywgJmFyZ3YpOwotKyNpZmRlZiBHREtfV0lORE9XSU5HX1dBWUxBTkQKLSsgICAgewotKyAgICAg ICAgR2RrRGlzcGxheSAqZGlzcGxheSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0ICgpOwotKyAg ICAgICAgaWYgKEdES19JU19XQVlMQU5EX0RJU1BMQVkgKGRpc3BsYXkpKSB7Ci0rICAgICAgICAg ICAgZ19wcmludCAoInNldHhrYm1hcCBhbmQgWFRFU1QgZG8gbm90IHdvcmsgaW4gV2F5bGFuZC5c biIpOwotKyAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgfQotKyAgICB9Ci0rI2VuZGlm Ci0gCi0gICAgIGdfdGVzdF9hZGRfZnVuYyAoIi9pYnVzL2tleXJlcHNzIiwgdGVzdF9rZXlwcmVz cyk7Ci0gCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9wYW5lbC52YWxhIGIvdWkvZ3RrMy9wYW5lbC52 YWxhCi1pbmRleCA2NzhiNTFmMC4uZDkwNzQ1OGUgMTAwNjQ0Ci0tLS0gYS91aS9ndGszL3BhbmVs LnZhbGEKLSsrKyBiL3VpL2d0azMvcGFuZWwudmFsYQotQEAgLTUxMCw3ICs1MTAsNyBAQCBjbGFz cyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgICAgIHN0cmluZyBsYXlvdXRzOwot ICAgICAgICAgc3RyaW5nIHZhcmlhbnRzOwotICAgICAgICAgc3RyaW5nIG9wdGlvbjsKLS0gICAg ICAgIFhLQkxheW91dC5nZXRfbGF5b3V0KG91dCBsYXlvdXRzLCBvdXQgdmFyaWFudHMsIG91dCBv cHRpb24pOwotKyAgICAgICAgbV94a2JsYXlvdXQuZ2V0X2xheW91dChvdXQgbGF5b3V0cywgb3V0 IHZhcmlhbnRzLCBvdXQgb3B0aW9uKTsKLSAKLSAgICAgICAgIEdMaWIuTGlzdDxJQnVzLkVuZ2lu ZURlc2M+IHhrYl9lbmdpbmVzID0KLSAgICAgICAgICAgICAgICAgbmV3IEdMaWIuTGlzdDxJQnVz LkVuZ2luZURlc2M+KCk7Ci1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy94a2JsYXlvdXQudmFsYSBiL3Vp L2d0azMveGtibGF5b3V0LnZhbGEKLWluZGV4IDcyOWI0OGNlLi43ODEyYzRiYiAxMDA2NDQKLS0t LSBhL3VpL2d0azMveGtibGF5b3V0LnZhbGEKLSsrKyBiL3VpL2d0azMveGtibGF5b3V0LnZhbGEK LUBAIC00LDcgKzQsNyBAQAotICAqCi0gICogQ29weXJpZ2h0KGMpIDIwMTQgUmVkIEhhdCwgSW5j LgotICAqIENvcHlyaWdodChjKSAyMDE0IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwu Y29tPgotLSAqIENvcHlyaWdodChjKSAyMDE0IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRo YXQuY29tPgotKyAqIENvcHlyaWdodChjKSAyMDE0LTIwMjQgVGFrYW8gRnVqaXdhcmEgPHRmdWpp d2FyQHJlZGhhdC5jb20+Ci0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTI1LDExICsyNSwxMSBA QAotIGNsYXNzIFhLQkxheW91dAotIHsKLSAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgWEtCX0NP TU1BTkQgPSAic2V0eGtibWFwIjsKLS0gICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgWEtCX1FVRVJZ X0FSRyA9ICItcXVlcnkiOwotICAgICBwcml2YXRlIGNvbnN0IHN0cmluZyBYS0JfTEFZT1VUX0FS RyA9ICItbGF5b3V0IjsKLSAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgWE1PRE1BUF9DT01NQU5E ID0gInhtb2RtYXAiOwotICAgICBwcml2YXRlIGNvbnN0IHN0cmluZ1tdIFhNT0RNQVBfS05PV05f RklMRVMgPSB7Ii54bW9kbWFwIiwgIi54bW9kbWFwcmMiLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi5YbW9kbWFwIiwgIi5YbW9kbWFwcmMifTsK LSsgICAgcHJpdmF0ZSBzdHJpbmdbXSBtX2dldF9sYXlvdXRfYXJncyA9IHt9OwotICAgICBwcml2 YXRlIHN0cmluZ1tdIG1feGtiX2xhdGluX2xheW91dHMgPSB7fTsKLSAgICAgcHJpdmF0ZSBzdHJp bmcgbV9kZWZhdWx0X2xheW91dCA9ICIiOwotICAgICBwcml2YXRlIHN0cmluZyBtX2RlZmF1bHRf dmFyaWFudCA9ICIiOwotQEAgLTM5LDE2ICszOSwyMyBAQCBjbGFzcyBYS0JMYXlvdXQKLSAgICAg cHVibGljIFhLQkxheW91dCgpIHsKLSAgICAgfQotIAotKwotICAgICBwdWJsaWMgdm9pZCBzZXRf bGF0aW5fbGF5b3V0cyhzdHJpbmdbXSB4a2JfbGF0aW5fbGF5b3V0cykgewotICAgICAgICAgbV94 a2JfbGF0aW5fbGF5b3V0cyA9IHhrYl9sYXRpbl9sYXlvdXRzOwotICAgICB9Ci0gCi0tICAgIHB1 YmxpYyBzdGF0aWMgdm9pZCBnZXRfbGF5b3V0KG91dCBzdHJpbmcgbGF5b3V0LAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgc3RyaW5nIHZhcmlhbnQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBzdHJpbmcgb3B0aW9uKSB7Ci0rCi0rICAgIHB1 YmxpYyB2b2lkIGdldF9sYXlvdXQob3V0IHN0cmluZyBsYXlvdXQsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3V0IHN0cmluZyB2YXJpYW50LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIG91dCBzdHJpbmcgb3B0aW9uKSB7Ci0rICAgICAgICBzZWFyY2hfZ2V0X2xheW91dF9wcm9n cmFtKCk7Ci0rICAgICAgICBpZiAobV9nZXRfbGF5b3V0X2FyZ3NbMF0gPT0gbnVsbCkgewotKyAg ICAgICAgICAgIHdhcm5pbmcoIk5vdCBmb3VuZCBsb2NhbGVjdGwgb3Igc2V0eGtibWFwIGNvbW1h bmQgaW4gUEFUSCIpOwotKyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0KLSAgICAgICAg IHN0cmluZ1tdIGV4ZWNfY29tbWFuZCA9IHt9OwotLSAgICAgICAgZXhlY19jb21tYW5kICs9IFhL Ql9DT01NQU5EOwotLSAgICAgICAgZXhlY19jb21tYW5kICs9IFhLQl9RVUVSWV9BUkc7Ci0rICAg ICAgICBmb3JlYWNoICh1bm93bmVkIHN0cmluZyBhcmcgaW4gbV9nZXRfbGF5b3V0X2FyZ3MpCi0r ICAgICAgICAgICAgZXhlY19jb21tYW5kICs9IGFyZzsKLSAgICAgICAgIHN0cmluZyBzdGFuZGFy ZF9vdXRwdXQgPSBudWxsOwotICAgICAgICAgc3RyaW5nIHN0YW5kYXJkX2Vycm9yID0gbnVsbDsK LSAgICAgICAgIGludCBleGl0X3N0YXR1cyA9IDA7Ci1AQCAtNjksNDYgKzc2LDk0IEBAIGNsYXNz IFhLQkxheW91dAotICAgICAgICAgfSBjYXRjaCAoR0xpYi5TcGF3bkVycm9yIGVycikgewotICAg ICAgICAgICAgIHN0ZGVyci5wcmludGYoIklCVVNfRVJST1I6ICVzXG4iLCBlcnIubWVzc2FnZSk7 Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAoZXhpdF9zdGF0dXMgIT0gMCkgewotKyAgICAgICAg aWYgKGV4aXRfc3RhdHVzICE9IDApCi0gICAgICAgICAgICAgc3RkZXJyLnByaW50ZigiSUJVU19F UlJPUjogJXNcbiIsIHN0YW5kYXJkX2Vycm9yID8/ICIiKTsKLS0gICAgICAgIH0KLS0gICAgICAg IGlmIChzdGFuZGFyZF9vdXRwdXQgPT0gbnVsbCkgewotKyAgICAgICAgaWYgKHN0YW5kYXJkX291 dHB1dCA9PSBudWxsKQotICAgICAgICAgICAgIHJldHVybjsKLSsKLSsgICAgICAgIGlmIChleGVj X2NvbW1hbmRbMF0gPT0gImxvY2FsZWN0bCIpIHsKLSsgICAgICAgICAgICBwYXJzZV9sb2NhbGVj dGxfc3RhdHVzX3N0cihzdGFuZGFyZF9vdXRwdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3V0IGxheW91dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvdXQgdmFyaWFudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvdXQgb3B0aW9uKTsKLSsgICAgICAgIH0gZWxzZSBpZiAoZXhlY19jb21tYW5kWzBd ID09IFhLQl9DT01NQU5EKSB7Ci0rICAgICAgICAgICAgcGFyc2VfeGtibWFwX3F1ZXJ5X3N0cihz dGFuZGFyZF9vdXRwdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQg bGF5b3V0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IHZhcmlhbnQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgb3B0aW9uKTsKLSAgICAg ICAgIH0KLSsgICAgfQotKwotIAotKyAgICBwcml2YXRlIHZvaWQgc2VhcmNoX2dldF9sYXlvdXRf cHJvZ3JhbSgpIHsKLSsgICAgICAgIGlmIChtX2dldF9sYXlvdXRfYXJnc1swXSAhPSBudWxsKQot KyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIHN0cmluZyBnZXRfbGF5b3V0X2NvbW1hbmQg PSBudWxsOwotKyAgICAgICAgLy8gc2V0eGtibWFwIGNhbiBnZXQgdGhlIHNlc3Npb24gWEtCIG9w dGlvbnMgaW4gWG9yZy4KLSsgICAgICAgIGlmIChCaW5kaW5nQ29tbW9uLmRlZmF1bHRfaXNfeGRp c3BsYXkoKSkKLSsgICAgICAgICAgICBnZXRfbGF5b3V0X2NvbW1hbmQgPSAic2V0eGtibWFwIC1x dWVyeSI7Ci0rICAgICAgICBlbHNlIGlmIChHTGliLkVudmlyb25tZW50LmZpbmRfcHJvZ3JhbV9p bl9wYXRoKCJsb2NhbGVjdGwiKSAhPSBudWxsKQotKyAgICAgICAgICAgIGdldF9sYXlvdXRfY29t bWFuZCA9ICJsb2NhbGVjdGwgc3RhdHVzIjsKLSsgICAgICAgIGVsc2UgaWYgKEdMaWIuRW52aXJv bm1lbnQuZmluZF9wcm9ncmFtX2luX3BhdGgoInNldHhrYm1hcCIpICE9IG51bGwpCi0rICAgICAg ICAgICAgZ2V0X2xheW91dF9jb21tYW5kID0gInNldHhrYm1hcCAtcXVlcnkiOwotKyAgICAgICAg aWYgKGdldF9sYXlvdXRfY29tbWFuZCAhPSBudWxsKQotKyAgICAgICAgICAgIG1fZ2V0X2xheW91 dF9hcmdzID0gZ2V0X2xheW91dF9jb21tYW5kLnNwbGl0KCIgIik7Ci0rICAgIH0KLSsKLSsKLSsg ICAgcHJpdmF0ZSB2b2lkIHBhcnNlX2xvY2FsZWN0bF9zdGF0dXNfc3RyKHN0cmluZyBzdGFuZGFy ZF9vdXRwdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv dXQgc3RyaW5nIGxheW91dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG91dCBzdHJpbmcgdmFyaWFudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG91dCBzdHJpbmcgb3B0aW9uKSB7Ci0rICAgICAgICBsYXlvdXQgPSAi IjsKLSsgICAgICAgIHZhcmlhbnQgPSAiIjsKLSsgICAgICAgIG9wdGlvbiA9ICIiOwotICAgICAg ICAgZm9yZWFjaCAoc3RyaW5nIGxpbmUgaW4gc3RhbmRhcmRfb3V0cHV0LnNwbGl0KCJcbiIpKSB7 Ci0tICAgICAgICAgICAgc3RyaW5nIGVsZW1lbnQgPSAibGF5b3V0OiI7Ci0tICAgICAgICAgICAg c3RyaW5nIHJldHZhbCA9ICIiOwotLSAgICAgICAgICAgIGlmIChsaW5lLmhhc19wcmVmaXgoZWxl bWVudCkpIHsKLS0gICAgICAgICAgICAgICAgcmV0dmFsID0gbGluZVtlbGVtZW50Lmxlbmd0aDps aW5lLmxlbmd0aF07Ci0tICAgICAgICAgICAgICAgIGlmIChyZXR2YWwgIT0gbnVsbCkgewotLSAg ICAgICAgICAgICAgICAgICAgcmV0dmFsID0gcmV0dmFsLnN0cmlwKCk7Ci0rICAgICAgICAgICAg Y29uc3Qgc3RyaW5nW10gZWxlbWVudHMgPSB7ICJYMTEgTGF5b3V0OiIsICJYMTEgVmFyaWFudDoi IH07Ci0rICAgICAgICAgICAgZm9yZWFjaCAodW5vd25lZCBzdHJpbmcgZWxlbWVudCBpbiBlbGVt ZW50cykgewotKyAgICAgICAgICAgICAgICBzdHJpbmcgcmV0dmFsID0gIiI7Ci0rICAgICAgICAg ICAgICAgIGludCBpbmRleCA9IGxpbmUuaW5kZXhfb2YoZWxlbWVudCk7Ci0rICAgICAgICAgICAg ICAgIGlmIChpbmRleCA+PSAwKSB7Ci0rICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBsaW5l W2luZGV4ICsgZWxlbWVudC5sZW5ndGg6bGluZS5sZW5ndGhdOwotKyAgICAgICAgICAgICAgICAg ICAgaWYgKHJldHZhbCAhPSBudWxsKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9 IHJldHZhbC5zdHJpcCgpOwotKyAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gZWxl bWVudHNbMF0pCi0rICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0ID0gcmV0dmFsOwotKyAg ICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZWxlbWVudCA9PSBlbGVtZW50c1sxXSkKLSsgICAg ICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gcmV0dmFsOwotICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIGxheW91dCA9IHJldHZhbDsKLSAgICAgICAgICAgICB9Ci0rICAg ICAgICB9Ci0rICAgIH0KLSAKLS0gICAgICAgICAgICBlbGVtZW50ID0gInZhcmlhbnQ6IjsKLS0g ICAgICAgICAgICByZXR2YWwgPSAiIjsKLS0gICAgICAgICAgICBpZiAobGluZS5oYXNfcHJlZml4 KGVsZW1lbnQpKSB7Ci0tICAgICAgICAgICAgICAgIHJldHZhbCA9IGxpbmVbZWxlbWVudC5sZW5n dGg6bGluZS5sZW5ndGhdOwotLSAgICAgICAgICAgICAgICBpZiAocmV0dmFsICE9IG51bGwpIHsK LS0gICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IHJldHZhbC5zdHJpcCgpOwotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHZhcmlhbnQgPSByZXR2YWw7Ci0tICAgICAgICAg ICAgfQotIAotLSAgICAgICAgICAgIGVsZW1lbnQgPSAib3B0aW9uczoiOwotLSAgICAgICAgICAg IHJldHZhbCA9ICIiOwotLSAgICAgICAgICAgIGlmIChsaW5lLmhhc19wcmVmaXgoZWxlbWVudCkp IHsKLS0gICAgICAgICAgICAgICAgcmV0dmFsID0gbGluZVtlbGVtZW50Lmxlbmd0aDpsaW5lLmxl bmd0aF07Ci0tICAgICAgICAgICAgICAgIGlmIChyZXR2YWwgIT0gbnVsbCkgewotLSAgICAgICAg ICAgICAgICAgICAgcmV0dmFsID0gcmV0dmFsLnN0cmlwKCk7Ci0rICAgIHByaXZhdGUgdm9pZCBw YXJzZV94a2JtYXBfcXVlcnlfc3RyKHN0cmluZyBzdGFuZGFyZF9vdXRwdXQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBzdHJpbmcgbGF5b3V0LAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgc3RyaW5nIHZhcmlhbnQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBzdHJpbmcgb3B0aW9u KSB7Ci0rICAgICAgICBsYXlvdXQgPSAiIjsKLSsgICAgICAgIHZhcmlhbnQgPSAiIjsKLSsgICAg ICAgIG9wdGlvbiA9ICIiOwotKyAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGxpbmUgaW4gc3RhbmRh cmRfb3V0cHV0LnNwbGl0KCJcbiIpKSB7Ci0rICAgICAgICAgICAgY29uc3Qgc3RyaW5nW10gZWxl bWVudHMgPSB7ICJsYXlvdXQ6IiwgInZhcmlhbnQ6IiwgIm9wdGlvbnM6IiB9OwotKyAgICAgICAg ICAgIGZvcmVhY2ggKHVub3duZWQgc3RyaW5nIGVsZW1lbnQgaW4gZWxlbWVudHMpIHsKLSsgICAg ICAgICAgICAgICAgc3RyaW5nIHJldHZhbCA9ICIiOwotKyAgICAgICAgICAgICAgICBpZiAobGlu ZS5oYXNfcHJlZml4KGVsZW1lbnQpKSB7Ci0rICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBs aW5lW2VsZW1lbnQubGVuZ3RoOmxpbmUubGVuZ3RoXTsKLSsgICAgICAgICAgICAgICAgICAgIGlm IChyZXR2YWwgIT0gbnVsbCkKLSsgICAgICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSByZXR2 YWwuc3RyaXAoKTsKLSsgICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09IGVsZW1lbnRz WzBdKQotKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dCA9IHJldHZhbDsKLSsgICAgICAg ICAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQgPT0gZWxlbWVudHNbMV0pCi0rICAgICAgICAg ICAgICAgICAgICAgICAgdmFyaWFudCA9IHJldHZhbDsKLSsgICAgICAgICAgICAgICAgICAgIGVs c2UgaWYgKGVsZW1lbnQgPT0gZWxlbWVudHNbMl0pCi0rICAgICAgICAgICAgICAgICAgICAgICAg b3B0aW9uID0gcmV0dmFsOwotICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIG9w dGlvbiA9IHJldHZhbDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLSsK LSAgICAgcHVibGljIHZvaWQgc2V0X2xheW91dChJQnVzLkVuZ2luZURlc2MgZW5naW5lKSB7Ci0g ICAgICAgICBzdHJpbmcgbGF5b3V0ID0gZW5naW5lLmdldF9sYXlvdXQoKTsKLSAgICAgICAgIHN0 cmluZyB2YXJpYW50ID0gZW5naW5lLmdldF9sYXlvdXRfdmFyaWFudCgpOwotQEAgLTIwNiw2ICsy NjEsNyBAQCBjbGFzcyBYS0JMYXlvdXQKLSAgICAgICAgIHJ1bl94bW9kbWFwKCk7Ci0gICAgIH0K LSAKLSsKLSAgICAgcHVibGljIHZvaWQgcnVuX3htb2RtYXAoKSB7Ci0gICAgICAgICBpZiAoIW1f dXNlX3htb2RtYXApIHsKLSAgICAgICAgICAgICByZXR1cm47Ci1AQCAtMjQ2LDYgKzMwMiw3IEBA IGNsYXNzIFhLQkxheW91dAotICAgICAgICAgfQotICAgICB9Ci0gCi0rCi0gICAgIHB1YmxpYyB2 b2lkIHNldF91c2VfeG1vZG1hcChib29sIHVzZV94bW9kbWFwKSB7Ci0gICAgICAgICBtX3VzZV94 bW9kbWFwID0gdXNlX3htb2RtYXA7Ci0gICAgIH0KLS0tIAotMi40NS4wCi0KLUZyb20gNDhjNGE5 YzkwMDQyMWI5ZTc3YmUzOTlhNDc5Mjk3NGYyNWE4MGJlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZy aSwgMjQgTWF5IDIwMjQgMTY6MTc6NTggKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA0LzZdIHNyYy9p YnVzZW5naW5lc2ltcGxlOiBJZ25vcmUgU3VwZXIgbW9kaWZpZXIgZm9yIGNvbXBvc2UKLSBrZXlz Ci0KLU5vdyBJQnVzIHJlY2VpdmVzIGtleSBldmVudHMgcHJpb3IgdG8gdGhlIHdpbmRvdyBtYW5h Z2VyIGFuZCBuZWVkcwotdG8gaWdub3JlIFN1cGVyIG1vZGlmaWVyIHNpbmNlIFN1cGVyIGtleSBo YXMgYmVlbiBhbHJlYWR5IGlnbm9yZWQKLWZvciBjb21wb3NlIGtleXMuCi0KLUJVRz1odHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbXV0dGVyLy0vaXNzdWVzLzMxMjgKLS0tLQotIHNyYy9p YnVzZW5naW5lc2ltcGxlLmMgfCA2ICsrKystLQotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZXNpbXBs ZS5jIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotaW5kZXggNGJlZThjYjMuLjc2ZGQ5ZWI1IDEw MDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotKysrIGIvc3JjL2lidXNlbmdpbmVz aW1wbGUuYwotQEAgLTIsNyArMiw3IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBp YnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAxNCBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMyBUYWth byBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMp IDIwMTUtMjAyNCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAg KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi1A QCAtMTAxNyw3ICsxMDE3LDkgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX3Byb2Nlc3Nfa2V5X2V2ZW50 IChJQnVzRW5naW5lICplbmdpbmUsCi0gICAgICAgICAgIWlzX2hleF9zdGFydCAmJiAhaXNfaGV4 X2VuZCAmJiAhaXNfZXNjYXBlICYmICFpc19iYWNrc3BhY2UpIHx8Ci0gICAgICAgICAocHJpdi0+ aW5fZW1vamlfc2VxdWVuY2UgJiYgIXByaW50YWJsZV9rZXl2YWwgJiYKLSAgICAgICAgICAhaXNf ZW1vamlfc3RhcnQgJiYgIWlzX2hleF9lbmQgJiYgIWlzX2VzY2FwZSAmJiAhaXNfYmFja3NwYWNl KSkgewotLSAgICAgICAgaWYgKG1vZGlmaWVycyAmIChJQlVTX01PRDFfTUFTSyB8IElCVVNfQ09O VFJPTF9NQVNLKSB8fAotKyAgICAgICAgZ3VpbnQgbm9fdGV4dF9pbnB1dF9tYXNrID0gSUJVU19N T0QxX01BU0sgfCBJQlVTX01PRDRfTUFTSyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IElCVVNfQ09OVFJPTF9NQVNLIHwgSUJVU19TVVBFUl9NQVNLOwotKyAgICAgICAg aWYgKG1vZGlmaWVycyAmIG5vX3RleHRfaW5wdXRfbWFzayB8fAotICAgICAgICAgICAgICgocHJp di0+aW5faGV4X3NlcXVlbmNlIHx8IHByaXYtPmluX2Vtb2ppX3NlcXVlbmNlKSAmJgotICAgICAg ICAgICAgICBwcml2LT5tb2RpZmllcnNfZHJvcHBlZCAmJgotICAgICAgICAgICAgICAoa2V5dmFs ID09IElCVVNfS0VZX1JldHVybiB8fAotLS0gCi0yLjQ1LjAKLQotRnJvbSBhM2E1YTIwYTMwZjJh OGVjZWU0ZGMyYWFhNGZkNDhjNjJjOTFkNzY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAyNCBN YXkgMjAyNCAxNjoxODowMyArMDkwMAotU3ViamVjdDogW1BBVENIIDUvNl0gc3JjL2lidXNlbmdp bmVzaW1wbGU6IERvIG5vdCB1cGRhdGUgemVybyBsZW5ndGggcHJlZWRpdAotIHRleHQKLQotU2V2 ZXJhbCBlbmdpbmVzIGNhbiBpbmhlcml0IElCdXNFbmdpZVNpbXBsZSBmb3IgdGhlIGNvbXBvc2Ug a2V5IHN1cHBvcnQKLWxpa2VzIEFudGh5LCBIYW5ndWwsIE0xN24gYW5kIGl0IGNvdWxkIGhhdmUg dGhlIGR1cGxpY2F0ZWQgcHJlZWRpdCB0ZXh0Ci1iZXR3ZWVuIHRoZSBlbmdpbmUgYW5kIHRoZSBw YXJlbnQgSUJ1c0VuZ2luZVNpbXBsZSBhbmQgaXQgY291bGQgdXBkYXRlCi10aGUgcHJlZWRpdCB0 ZXh0IG11dHVhbGx5IGJ5IG1pc3Rha2UuCi0KLVRoZW4gdGhlIHByZWVkaXQgdGV4dCBzaG91bGQg bm90IGJlIGhpZGRlbiBmb3IgemVybyBsZW5ndGggYXQgbGVhc3QuCi1UaGlzIHVwZGF0ZSBtaWdo dCBub3QgYmUgZW5vdWdoIGJ1dCBob3BlIHRvIGZpeCB0aGUgY3Vyc29yIHBvc2l0aW9uCi1yZXNl dCB3aXRoIGhpZGluZyB0aGUgcHJlZWRpdCB0ZXh0IGFnYWluc3QgdGhlIHJlcG9ydGVkIGlzc3Vl IHdpdGgKLWBtMTduOnNhOml0cmFuc2AgZW5naW5lLgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29t L2lidXMvaWJ1cy9pc3N1ZXMvMjUzNgotLS0tCi0gc3JjL2lidXNlbmdpbmVzaW1wbGUuYyB8IDQx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5n ZWQsIDM1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMv aWJ1c2VuZ2luZXNpbXBsZS5jIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotaW5kZXggNzZkZDll YjUuLmFjNDc4ODU1IDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotKysrIGIv c3JjL2lidXNlbmdpbmVzaW1wbGUuYwotQEAgLTgzLDExICs4MywxMyBAQCBzdHJ1Y3QgX0lCdXNF bmdpbmVTaW1wbGVQcml2YXRlIHsKLSAgICAgSUJ1c0VuZ2luZURpY3QgICAgICplbW9qaV9kaWN0 OwotICAgICBJQnVzTG9va3VwVGFibGUgICAgKmxvb2t1cF90YWJsZTsKLSAgICAgZ2Jvb2xlYW4g ICAgICAgICAgICBsb29rdXBfdGFibGVfdmlzaWJsZTsKLSsgICAgSUJ1c1RleHQgICAgICAgICAg ICp1cGRhdGVkX3ByZWVkaXQ7Ci0gfTsKLSAKLSBndWludCBDT01QT1NFX0JVRkZFUl9TSVpFID0g MjA7Ci0gR19MT0NLX0RFRklORV9TVEFUSUMgKGdsb2JhbF90YWJsZXMpOwotIHN0YXRpYyBHU0xp c3QgKmdsb2JhbF90YWJsZXM7Ci0rc3RhdGljIElCdXNUZXh0ICp1cGRhdGVkX3ByZWVkaXRfZW1w dHk7Ci0gCi0gLyogZnVuY3Rpb25zIHByb3RvdHlwZSAqLwotIHN0YXRpYyB2b2lkICAgICBpYnVz X2VuZ2luZV9zaW1wbGVfZGVzdHJveSAgICAgIChJQnVzRW5naW5lU2ltcGxlICAgKnNpbXBsZSk7 Ci1AQCAtMTM1LDI0ICsxMzcsMjkgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX2NsYXNzX2luaXQgKElC dXNFbmdpbmVTaW1wbGVDbGFzcyAqY2xhc3MpCi0gICAgIGVuZ2luZV9jbGFzcy0+cGFnZV91cCAg ID0gaWJ1c19lbmdpbmVfc2ltcGxlX3BhZ2VfdXA7Ci0gICAgIGVuZ2luZV9jbGFzcy0+Y2FuZGlk YXRlX2NsaWNrZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpYnVzX2VuZ2luZV9z aW1wbGVfY2FuZGlkYXRlX2NsaWNrZWQ7Ci0rICAgIHVwZGF0ZWRfcHJlZWRpdF9lbXB0eSA9IGli dXNfdGV4dF9uZXdfZnJvbV9zdHJpbmcgKCIiKTsKLSsgICAgZ19vYmplY3RfcmVmX3NpbmsgKHVw ZGF0ZWRfcHJlZWRpdF9lbXB0eSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi0gaWJ1c19lbmdpbmVf c2ltcGxlX2luaXQgKElCdXNFbmdpbmVTaW1wbGUgKnNpbXBsZSkKLSB7Ci0rICAgIElCdXNFbmdp bmVTaW1wbGVQcml2YXRlICpwcml2OwotICAgICBHQnl0ZXMgKmRhdGE7Ci0gICAgIEdFcnJvciAq ZXJyb3IgPSBOVUxMOwotICAgICBjb25zdCBjaGFyICpjb250ZW50czsKLSAgICAgZ3NpemUgbGVu Z3RoID0gMDsKLSAgICAgSUJ1c0NvbXBvc2VUYWJsZUV4ICplbl9jb21wb3NlX3RhYmxlOwotIAot LSAgICBzaW1wbGUtPnByaXYgPSBJQlVTX0VOR0lORV9TSU1QTEVfR0VUX1BSSVZBVEUgKHNpbXBs ZSk7Ci0tICAgIHNpbXBsZS0+cHJpdi0+Y29tcG9zZV9idWZmZXIgPSBnX25ldzAgKGd1aW50LCBD T01QT1NFX0JVRkZFUl9TSVpFICsgMSk7Ci0tICAgIHNpbXBsZS0+cHJpdi0+aGV4X21vZGVfZW5h YmxlZCA9Ci0rICAgIHByaXYgPSBzaW1wbGUtPnByaXYgPSBJQlVTX0VOR0lORV9TSU1QTEVfR0VU X1BSSVZBVEUgKHNpbXBsZSk7Ci0rICAgIHByaXYtPmNvbXBvc2VfYnVmZmVyID0gZ19uZXcwIChn dWludCwgQ09NUE9TRV9CVUZGRVJfU0laRSArIDEpOwotKyAgICBwcml2LT5oZXhfbW9kZV9lbmFi bGVkID0KLSAgICAgICAgIGdfZ2V0ZW52KCJJQlVTX0VOQUJMRV9DVFJMX1NISUZUX1UiKSAhPSBO VUxMIHx8Ci0gICAgICAgICBnX2dldGVudigiSUJVU19FTkFCTEVfQ09OVFJPTF9TSElGVF9VIikg IT0gTlVMTDsKLS0gICAgc2ltcGxlLT5wcml2LT50ZW50YXRpdmVfbWF0Y2ggPSBnX3N0cmluZ19u ZXcgKCIiKTsKLS0gICAgc2ltcGxlLT5wcml2LT50ZW50YXRpdmVfbWF0Y2hfbGVuID0gMDsKLSsg ICAgcHJpdi0+dGVudGF0aXZlX21hdGNoID0gZ19zdHJpbmdfbmV3ICgiIik7Ci0rICAgIHByaXYt PnRlbnRhdGl2ZV9tYXRjaF9sZW4gPSAwOwotKyAgICBwcml2LT51cGRhdGVkX3ByZWVkaXQgPQot KyAgICAgICAgICAgIChJQnVzVGV4dCAqKWdfb2JqZWN0X3JlZl9zaW5rICh1cGRhdGVkX3ByZWVk aXRfZW1wdHkpOwotICAgICBkYXRhID0gZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEgKCIvb3JnL2Zy ZWVkZXNrdG9wL2lidXMvY29tcG9zZS9zZXF1ZW5jZXMiLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKLUBAIC0xOTAsNiArMTk3LDcgQEAg aWJ1c19lbmdpbmVfc2ltcGxlX2Rlc3Ryb3kgKElCdXNFbmdpbmVTaW1wbGUgKnNpbXBsZSkKLSAg ICAgZ19zdHJpbmdfZnJlZSAocHJpdi0+dGVudGF0aXZlX21hdGNoLCBUUlVFKTsKLSAgICAgcHJp di0+dGVudGF0aXZlX21hdGNoID0gTlVMTDsKLSAgICAgcHJpdi0+dGVudGF0aXZlX21hdGNoX2xl biA9IDA7Ci0rICAgIGdfY2xlYXJfb2JqZWN0ICgmcHJpdi0+dXBkYXRlZF9wcmVlZGl0KTsKLSAK LSAgICAgSUJVU19PQkpFQ1RfQ0xBU1MoaWJ1c19lbmdpbmVfc2ltcGxlX3BhcmVudF9jbGFzcykt PmRlc3Ryb3kgKAotICAgICAgICAgSUJVU19PQkpFQ1QgKHNpbXBsZSkpOwotQEAgLTIyOCw2ICsy MzYsOSBAQCBpYnVzX2VuZ2luZV9zaW1wbGVfcmVzZXQgKElCdXNFbmdpbmUgKmVuZ2luZSkKLSAg ICAgICAgIHByaXYtPnRlbnRhdGl2ZV9tYXRjaF9sZW4gPSAwOwotICAgICB9Ci0gICAgIGlidXNf ZW5naW5lX2hpZGVfcHJlZWRpdF90ZXh0ICgoSUJ1c0VuZ2luZSAqKXNpbXBsZSk7Ci0rICAgIGdf b2JqZWN0X3VucmVmIChwcml2LT51cGRhdGVkX3ByZWVkaXQpOwotKyAgICBwcml2LT51cGRhdGVk X3ByZWVkaXQgPQotKyAgICAgICAgICAgIChJQnVzVGV4dCAqKWdfb2JqZWN0X3JlZl9zaW5rICh1 cGRhdGVkX3ByZWVkaXRfZW1wdHkpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTMxOCw3ICsz MjksMTAgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX3VwZGF0ZV9wcmVlZGl0X3RleHQgKElCdXNFbmdp bmVTaW1wbGUgKnNpbXBsZSkKLSAgICAgICAgIGludCBsZW4gPSBzdHJsZW4gKHByaXYtPnRlbnRh dGl2ZV9lbW9qaSk7Ci0gICAgICAgICBpYnVzX3RleHRfYXBwZW5kX2F0dHJpYnV0ZSAodGV4dCwK LSAgICAgICAgICAgICAgICAgSUJVU19BVFRSX1RZUEVfVU5ERVJMSU5FLCBJQlVTX0FUVFJfVU5E RVJMSU5FX1NJTkdMRSwgMCwgbGVuKTsKLSsgICAgICAgIGdfb2JqZWN0X3JlZl9zaW5rICh0ZXh0 KTsKLSAgICAgICAgIGlidXNfZW5naW5lX3VwZGF0ZV9wcmVlZGl0X3RleHQgKChJQnVzRW5naW5l ICopc2ltcGxlLCB0ZXh0LCBsZW4sIFRSVUUpOwotKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKHBy aXYtPnVwZGF0ZWRfcHJlZWRpdCk7Ci0rICAgICAgICBwcml2LT51cGRhdGVkX3ByZWVkaXQgPSB0 ZXh0OwotICAgICAgICAgZ19zdHJpbmdfZnJlZSAocywgVFJVRSk7Ci0gICAgICAgICByZXR1cm47 Ci0gICAgIH0gZWxzZSBpZiAocHJpdi0+aW5fY29tcG9zZV9zZXF1ZW5jZSkgewotQEAgLTM3MCw3 ICszODQsMTkgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX3VwZGF0ZV9wcmVlZGl0X3RleHQgKElCdXNF bmdpbmVTaW1wbGUgKnNpbXBsZSkKLSAgICAgfQotIAotICAgICBpZiAocy0+bGVuID09IDApIHsK LS0gICAgICAgIGlidXNfZW5naW5lX2hpZGVfcHJlZWRpdF90ZXh0ICgoSUJ1c0VuZ2luZSAqKXNp bXBsZSk7Ci0rICAgICAgICAvKiAjMjUzNiBJQnVzRW5naW5lIGNhbiBpbmhlcml0IElCdXNFbmdp bmVTaW1wbGUgZm9yIGNvbW9wc2Uga2V5cy4KLSsgICAgICAgICAqIElmIHRoZSBwcmV2aW91cyBw cmVlZGl0IGlzIHplcm8sIHRoZSBjdXJyZW50IHByZWVkaXQgZG9lcyBub3QgCi0rICAgICAgICAg KiBuZWVkIHRvIGJlIGhpZGRlbiBoZXJlIGF0IGxlYXN0IGJlY2F1c2UgaWJ1cy1kYWVtb24gY291 bGQgaGF2ZQotKyAgICAgICAgICogYW5vdGhlciBwcmVlZGl0IGZvciB0aGUgY2hpbGQgSUJ1c0Vu aWduZSBsaWtlcyBtMTduIGFuZCBjYWNsbGluZwotKyAgICAgICAgICogaWJ1c19lbmdpbmVfaGlk ZV9wcmVlZGl0X3RleHQoKSBoZXJlIGNvdWxkIGNhdXNlIGEgcmVzZXQgb2YKLSsgICAgICAgICAq IHRoZSBjdXJzb3IgcG9zaXRpb24gaW4gaWJ1cy1kYWVtb24uCi0rICAgICAgICAgKi8KLSsgICAg ICAgIGlmIChzdHJsZW4gKHByaXYtPnVwZGF0ZWRfcHJlZWRpdC0+dGV4dCkpIHsKLSsgICAgICAg ICAgICBpYnVzX2VuZ2luZV9oaWRlX3ByZWVkaXRfdGV4dCAoKElCdXNFbmdpbmUgKilzaW1wbGUp OwotKyAgICAgICAgICAgIGdfb2JqZWN0X3VucmVmIChwcml2LT51cGRhdGVkX3ByZWVkaXQpOwot KyAgICAgICAgICAgIHByaXYtPnVwZGF0ZWRfcHJlZWRpdCA9Ci0rICAgICAgICAgICAgICAgICAg ICAoSUJ1c1RleHQgKilnX29iamVjdF9yZWZfc2luayAodXBkYXRlZF9wcmVlZGl0X2VtcHR5KTsK LSsgICAgICAgIH0KLSAgICAgfSBlbHNlIGlmIChzLT5sZW4gPj0gR19NQVhJTlQpIHsKLSAgICAg ICAgIGdfd2FybmluZyAoIiVzIGlzIHRvbyBsb25nIGNvbXBvc2UgbGVuZ3RoOiAlbHUiLCBzLT5z dHIsIHMtPmxlbik7Ci0gICAgIH0gZWxzZSB7Ci1AQCAtMzc4LDcgKzQwNCwxMCBAQCBpYnVzX2Vu Z2luZV9zaW1wbGVfdXBkYXRlX3ByZWVkaXRfdGV4dCAoSUJ1c0VuZ2luZVNpbXBsZSAqc2ltcGxl KQotICAgICAgICAgSUJ1c1RleHQgKnRleHQgPSBpYnVzX3RleHRfbmV3X2Zyb21fc3RyaW5nIChz LT5zdHIpOwotICAgICAgICAgaWJ1c190ZXh0X2FwcGVuZF9hdHRyaWJ1dGUgKHRleHQsCi0gICAg ICAgICAgICAgICAgIElCVVNfQVRUUl9UWVBFX1VOREVSTElORSwgSUJVU19BVFRSX1VOREVSTElO RV9TSU5HTEUsIDAsIGxlbik7Ci0rICAgICAgICBnX29iamVjdF9yZWZfc2luayAodGV4dCk7Ci0g ICAgICAgICBpYnVzX2VuZ2luZV91cGRhdGVfcHJlZWRpdF90ZXh0ICgoSUJ1c0VuZ2luZSAqKXNp bXBsZSwgdGV4dCwgbGVuLCBUUlVFKTsKLSsgICAgICAgIGdfb2JqZWN0X3VucmVmIChwcml2LT51 cGRhdGVkX3ByZWVkaXQpOwotKyAgICAgICAgcHJpdi0+dXBkYXRlZF9wcmVlZGl0ID0gdGV4dDsK LSAgICAgfQotICAgICBnX3N0cmluZ19mcmVlIChzLCBUUlVFKTsKLSB9Ci0tLSAKLTIuNDUuMAot Ci1Gcm9tIDYyN2U3Y2MzN2QzYmVhNGMyODhjOTMyNzczZjY5ZmNlZTlhYzc3M2UgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+Ci1EYXRlOiBGcmksIDI0IE1heSAyMDI0IDE2OjI4OjQwICswOTAwCi1TdWJqZWN0OiBbUEFU Q0ggNi82XSB1aS9ndGszOiBGaXggdG8gdW5yZWYgR2RrRGlzcGxheSBpbiBXYXlsYW5kCi0KLVBh bmVsIGRvZXMgbm90IG5lZWQgdG8gYWxsb2NhdGUgdGhlIFgxMSBkaXNwbGF5IGluIFdheWxhbmQg YnV0IHRoZSBjaGVjawotb25seS4gVmFsYSBjb2RlcyBuZWVkIHRvIHNldCB0aGUgdW5vd25lZCBw YXJhbWV0ZXIuCi1BbHNvIGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHVwZGF0ZSBwcmVlZGl0 IGluIGRhZW1vbi4KLQotQlVHPXJoYnojMjI1MjIyNwotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9p YnVzL2lidXMvaXNzdWVzLzI2NDIKLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lz c3Vlcy8yNjQ0Ci0tLS0KLSBidXMvaW5wdXRjb250ZXh0LmMgICAgICAgICB8ICAgMSArCi0gdWkv Z3RrMy9hcHBsaWNhdGlvbi52YWxhICAgfCAgIDIgKwotIHVpL2d0azMvYmluZGluZ2NvbW1vbi52 YWxhIHwgICA2ICstCi0gdWkvZ3RrMy9oYW5kbGUudmFsYSAgICAgICAgfCAgIDIgKwotIHVpL2d0 azMvcGFuZWwudmFsYSAgICAgICAgIHwgIDE4ICsrKystCi0gNiBmaWxlcyBjaGFuZ2VkLCA5NiBp bnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1cy9pbnB1dGNv bnRleHQuYyBiL2J1cy9pbnB1dGNvbnRleHQuYwotaW5kZXggYzkxNGZiZDIuLjc2NjZmMDU3IDEw MDY0NAotLS0tIGEvYnVzL2lucHV0Y29udGV4dC5jCi0rKysgYi9idXMvaW5wdXRjb250ZXh0LmMK LUBAIC0zMzA2LDYgKzMzMDYsNyBAQCBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfcHJlZWRpdF90 ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgcHJlX2RhdGEua2V5 ID0gJ20nOwotICAgICAgICAgaWYgKGJ1c19pbnB1dF9jb250ZXh0X21ha2VfcG9zdF9wcm9jZXNz X2tleV9ldmVudCAoY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZwcmVfZGF0YSkpIHsKLSsgICAgICAgICAgICBnX3Zh cmlhbnRfdW5yZWYgKHZhcmlhbnQpOwotICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0g ZWxzZSBpZiAoY29udGV4dC0+Y2xpZW50X2NvbW1pdF9wcmVlZGl0KSB7Ci0gICAgICAgICAgICAg YnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWwgKAotZGlmZiAtLWdpdCBhL3VpL2d0azMvYXBw bGljYXRpb24udmFsYSBiL3VpL2d0azMvYXBwbGljYXRpb24udmFsYQotaW5kZXggYWU2NzYyNGYu LjMxNTE3Yzc5IDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9hcHBsaWNhdGlvbi52YWxhCi0rKysgYi91 aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEKLUBAIC0yMjgsNiArMjI4LDggQEAgY2xhc3MgQXBwbGlj YXRpb24gewotICAgICB9Ci0gCi0gICAgIHByaXZhdGUgc3RhdGljIHZvaWQgbWFrZV93YXlsYW5k X2ltKCkgewotKyAgICAgICAgaWYgKEJpbmRpbmdDb21tb24uZGVmYXVsdF9pc194ZGlzcGxheSgp KQotKyAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIGFzc2VydCAob3Blbl9sb2coKSk7Ci0g ICAgICAgICB2b2lkICp3bF9kaXNwbGF5ID0gbnVsbDsKLSAgICAgICAgIHVsb25nIGkgPSAwOwot ZGlmZiAtLWdpdCBhL3VpL2d0azMvYmluZGluZ2NvbW1vbi52YWxhIGIvdWkvZ3RrMy9iaW5kaW5n Y29tbW9uLnZhbGEKLWluZGV4IGUzMmRiMTc4Li43ZTY0NDNjNSAxMDA2NDQKLS0tLSBhL3VpL2d0 azMvYmluZGluZ2NvbW1vbi52YWxhCi0rKysgYi91aS9ndGszL2JpbmRpbmdjb21tb24udmFsYQot QEAgLTI1OSwxMSArMjU5LDExIEBAIGNsYXNzIEJpbmRpbmdDb21tb24gewotIAotICAgICBwdWJs aWMgc3RhdGljIGJvb2wgZGVmYXVsdF9pc194ZGlzcGxheSgpIHsKLSAgICAgICAgIGlmIChtX3hk aXNwbGF5ID09IG51bGwpCi0tICAgICAgICAgICAgZ2V0X3hkaXNwbGF5KCk7Ci0rICAgICAgICAg ICAgZ2V0X3hkaXNwbGF5KHRydWUpOwotICAgICAgICAgcmV0dXJuIG1fZGVmYXVsdF9pc194ZGlz cGxheTsKLSAgICAgfQotIAotLSAgICBwdWJsaWMgc3RhdGljIEdkay5YMTEuRGlzcGxheT8gZ2V0 X3hkaXNwbGF5KCkgewotKyAgICBwdWJsaWMgc3RhdGljIEdkay5YMTEuRGlzcGxheT8gZ2V0X3hk aXNwbGF5KGJvb2wgY2hlY2tfb25seT1mYWxzZSkgewotICAgICAgICAgaWYgKG1feGRpc3BsYXkg IT0gbnVsbCkKLSAgICAgICAgICAgICByZXR1cm4gbV94ZGlzcGxheTsKLSAgICAgICAgIHZhciBk aXNwbGF5ID0gR2RrLkRpc3BsYXkuZ2V0X2RlZmF1bHQoKTsKLUBAIC0yNzcsNiArMjc3LDggQEAg Y2xhc3MgQmluZGluZ0NvbW1vbiB7Ci0gICAgICAgICAgICAgbV94ZGlzcGxheSA9IChHZGsuWDEx LkRpc3BsYXkpZGlzcGxheTsKLSAgICAgICAgICAgICByZXR1cm4gbV94ZGlzcGxheTsKLSAgICAg ICAgIH0KLSsgICAgICAgIGlmIChjaGVja19vbmx5KQotKyAgICAgICAgICAgIHJldHVybiBudWxs OwotICAgICAgICAgR2RrLnNldF9hbGxvd2VkX2JhY2tlbmRzKCJ4MTEiKTsKLSAgICAgICAgIC8v IENhbGwgX2dka19kaXNwbGF5X21hbmFnZXJfYWRkX2Rpc3BsYXkoKSBpbnRlcm5hbGx5LgotICAg ICAgICAgbV94ZGlzcGxheSA9Ci1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9oYW5kbGUudmFsYSBiL3Vp L2d0azMvaGFuZGxlLnZhbGEKLWluZGV4IDY1NjM1NDM5Li4xZDBlZWZlOSAxMDA2NDQKLS0tLSBh L3VpL2d0azMvaGFuZGxlLnZhbGEKLSsrKyBiL3VpL2d0azMvaGFuZGxlLnZhbGEKLUBAIC02Miw2 ICs2Miw4IEBAIGNsYXNzIEhhbmRsZSA6IEd0ay5FdmVudEJveCB7Ci0gICAgIH0KLSAKLSAgICAg cHVibGljIG92ZXJyaWRlIGJvb2wgYnV0dG9uX3ByZXNzX2V2ZW50KEdkay5FdmVudEJ1dHRvbiBl dmVudCkgewotKyAgICAgICAgaWYgKCFCaW5kaW5nQ29tbW9uLmRlZmF1bHRfaXNfeGRpc3BsYXko KSkKLSsgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICBpZiAoZXZlbnQuYnV0dG9u ICE9IDEpCi0gICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgbV93b3JrYXJlYSA9 IEdkay5SZWN0YW5nbGUoKXsKLWRpZmYgLS1naXQgYS91aS9ndGszL3BhbmVsLnZhbGEgYi91aS9n dGszL3BhbmVsLnZhbGEKLWluZGV4IGQ5MDc0NThlLi41MzRhOWQzNyAxMDA2NDQKLS0tLSBhL3Vp L2d0azMvcGFuZWwudmFsYQotKysrIGIvdWkvZ3RrMy9wYW5lbC52YWxhCi1AQCAtMTY2LDYgKzE2 Niw5IEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgewotICAgICAgICAgICAgIHBy b3BlcnR5X2FjdGl2YXRlKGssIHMpOwotICAgICAgICAgfSk7Ci0gCi0rICAgICAgICBzZXRfdmVy c2lvbigpOwotKyAgICAgICAgY2hlY2tfd2F5bGFuZCgpOwotKwotICAgICAgICAgc3RhdGVfY2hh bmdlZCgpOwotICAgICB9Ci0gCi1AQCAtNDQzLDYgKzQ0Niw4IEBAIGNsYXNzIFBhbmVsIDogSUJ1 cy5QYW5lbFNlcnZpY2UgewotICAgICB9Ci0gCi0gICAgIHByaXZhdGUgdm9pZCBiaW5kX3N3aXRj aF9zaG9ydGN1dCgpIHsKLSsgICAgICAgIGlmIChtX2lzX3dheWxhbmRfaW0pCi0rICAgICAgICAg ICAgcmV0dXJuOwotICAgICAgICAgc3RyaW5nW10gYWNjZWxlcmF0b3JzID0gbV9zZXR0aW5nc19o b3RrZXkuZ2V0X3N0cnYoInRyaWdnZXJzIik7Ci0gCi0gICAgICAgICB2YXIga2V5YmluZGluZ19t YW5hZ2VyID0gS2V5YmluZGluZ01hbmFnZXIuZ2V0X2luc3RhbmNlKCk7Ci1AQCAtODc0LDYgKzg3 OSwxNiBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgICAgICAgICAg ICAgbWVzc2FnZSA9IGZvcm1hdC5wcmludGYoRW52aXJvbm1lbnQuZ2V0X3ByZ25hbWUoKSk7Ci0g ICAgICAgICAgICAgfQotICAgICAgICAgfQotKyAgICAgICAgaWYgKCFtX2lzX3dheWxhbmQgJiYg bV9pc193YXlsYW5kX2ltKSB7Ci0rICAgICAgICAgICAgdmFyIGZvcm1hdCA9Ci0rICAgICAgICAg ICAgICAgICAgICBfKCJTZWVtcyB5b3UgcnVuICVzIHdpdGggJy0tZW5hYmxlLXdheWxhbmQtaW0n ICIgKwotKyAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uIGJ1dCB5b3VyIGRpc3BsYXkgc2Vy dmVyIGlzIFhvcmcgc28gdGhlIFdheWxhbmQgIiArCi0rICAgICAgICAgICAgICAgICAgICAgICJm ZWF0dXJlIGlzIGRpc2FibGVkLiBZb3Ugd291bGQgYmUgYmV0dGVyIG9mZiBydW5uaW5nICIgKwot KyAgICAgICAgICAgICAgICAgICAgICAiaWJ1cy1kYWVtb24gZGlyZWN0bHkgaW5zdGVhZCBvciAl cyB3aXRob3V0IHRoYXQgIiArCi0rICAgICAgICAgICAgICAgICAgICAgICJvcHRpb24uIik7Ci0r ICAgICAgICAgICAgdW5vd25lZCBzdHJpbmcgcHJnbmFtZSA9IEVudmlyb25tZW50LmdldF9wcmdu YW1lKCk7Ci0rICAgICAgICAgICAgbWVzc2FnZSA9IGZvcm1hdC5wcmludGYocHJnbmFtZSwgcHJn bmFtZSk7Ci0rICAgICAgICB9Ci0gICAgICAgICBpZiAobWVzc2FnZSA9PSBudWxsKQotICAgICAg ICAgICAgIHJldHVybjsKLSAjaWYgRU5BQkxFX0xJQk5PVElGWQotQEAgLTkwOCw5ICs5MjMsNiBA QCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAKLSAKLSAgICAgcHVibGljIHZv aWQgbG9hZF9zZXR0aW5ncygpIHsKLS0gICAgICAgIHNldF92ZXJzaW9uKCk7Ci0tICAgICAgICBj aGVja193YXlsYW5kKCk7Ci0tCi0gICAgICAgICBpbml0X2VuZ2luZXNfb3JkZXIoKTsKLSAKLSAg ICAgICAgIC8vIFVwZGF0ZSBtX3VzZV9zeXN0ZW1fa2V5Ym9hcmRfbGF5b3V0IGJlZm9yZSB1cGRh dGVfZW5naW5lcygpCi0tLSAKLTIuNDUuMAotCi1Gcm9tIGFlYTAzNWE5NjI2MWY5YzNhMzZmNWNk OWMzMGI4NGIxZDc2MDkxMDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2Fy YXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDggSnVuIDIwMjQgMTA6 MjM6MzEgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogRml4IFN1cGVyLXNwYWNlIGlu IFdheWxhbmQKLQotaWJ1c19idXNfc2V0X2dsb2JhbF9zaG9ydGN1dF9rZXlzX2FzeW5jKCkgd2Fz IG5vdCBjYWxsZWQgaW4gUGxhc21hCi1XYXlsYW5kIGFmdGVyICJGaXggdG8gdW5yZWYgR2RrRGlz cGxheSBpbiBXYXlsYW5kIiBwYXRjaCBpcyBhcHBsaWVkLgotTm93IGl0J3MgY2FsbGVkIGNvcnJl Y3RseSBhbmQgdGhlIGV2ZW50IGhhbmRsZXIgaXMgZGlzYWJsZWQgaW5zdGVhZC4KLQotQlVHPXJo YnojMjI5MDg0MgotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzI2NDQK LUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2NvbW1pdC82MjdlN2NjCi0tLS0K LSB1aS9ndGszL2tleWJpbmRpbmdtYW5hZ2VyLnZhbGEgfCA5ICsrKysrLS0tLQotIHVpL2d0azMv cGFuZWwudmFsYSAgICAgICAgICAgICB8IDUgKystLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDcgaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3VpL2d0azMva2V5Ymlu ZGluZ21hbmFnZXIudmFsYSBiL3VpL2d0azMva2V5YmluZGluZ21hbmFnZXIudmFsYQotaW5kZXgg NzFiNGFjYjIuLmQ0Yzc2MzZhIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9rZXliaW5kaW5nbWFuYWdl ci52YWxhCi0rKysgYi91aS9ndGszL2tleWJpbmRpbmdtYW5hZ2VyLnZhbGEKLUBAIC02MCw4ICs2 MCw5IEBAIHB1YmxpYyBjbGFzcyBLZXliaW5kaW5nTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKLSAg ICAgcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5YmluZGluZ0hhbmRsZXJGdW5jKEdkay5FdmVudCBl dmVudCk7Ci0gCi0gCi0tICAgIHByaXZhdGUgIEtleWJpbmRpbmdNYW5hZ2VyKCkgewotLSAgICAg ICAgR2RrLkV2ZW50LmhhbmRsZXJfc2V0KGV2ZW50X2hhbmRsZXIpOwotKyAgICBwcml2YXRlICBL ZXliaW5kaW5nTWFuYWdlcihib29sIGlzX3dheWxhbmRfaW0pIHsKLSsgICAgICAgIGlmICghaXNf d2F5bGFuZF9pbSkKLSsgICAgICAgICAgICBHZGsuRXZlbnQuaGFuZGxlcl9zZXQoZXZlbnRfaGFu ZGxlcik7Ci0gICAgIH0KLSAKLSAgICAgLyoqCi1AQCAtMTA3LDkgKzEwOCw5IEBAIHB1YmxpYyBj bGFzcyBLZXliaW5kaW5nTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKLSAgICAgICAgICAgICBtX2Jp bmRpbmdzLnJlbW92ZSAoYmluZGluZyk7Ci0gICAgIH0KLSAKLS0gICAgcHVibGljIHN0YXRpYyBL ZXliaW5kaW5nTWFuYWdlciBnZXRfaW5zdGFuY2UgKCkgewotKyAgICBwdWJsaWMgc3RhdGljIEtl eWJpbmRpbmdNYW5hZ2VyIGdldF9pbnN0YW5jZSAoYm9vbCBpc193YXlsYW5kX2ltPWZhbHNlKSB7 Ci0gICAgICAgICBpZiAobV9pbnN0YW5jZSA9PSBudWxsKQotLSAgICAgICAgICAgIG1faW5zdGFu Y2UgPSBuZXcgS2V5YmluZGluZ01hbmFnZXIgKCk7Ci0rICAgICAgICAgICAgbV9pbnN0YW5jZSA9 IG5ldyBLZXliaW5kaW5nTWFuYWdlciAoaXNfd2F5bGFuZF9pbSk7Ci0gICAgICAgICByZXR1cm4g bV9pbnN0YW5jZTsKLSAgICAgfQotIAotZGlmZiAtLWdpdCBhL3VpL2d0azMvcGFuZWwudmFsYSBi L3VpL2d0azMvcGFuZWwudmFsYQotaW5kZXggNTM0YTlkMzcuLmIyNGMyM2FjIDEwMDY0NAotLS0t IGEvdWkvZ3RrMy9wYW5lbC52YWxhCi0rKysgYi91aS9ndGszL3BhbmVsLnZhbGEKLUBAIC00NDYs MTEgKzQ0NiwxMCBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgfQot IAotICAgICBwcml2YXRlIHZvaWQgYmluZF9zd2l0Y2hfc2hvcnRjdXQoKSB7Ci0tICAgICAgICBp ZiAobV9pc193YXlsYW5kX2ltKQotLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIHN0cmlu Z1tdIGFjY2VsZXJhdG9ycyA9IG1fc2V0dGluZ3NfaG90a2V5LmdldF9zdHJ2KCJ0cmlnZ2VycyIp OwotIAotLSAgICAgICAgdmFyIGtleWJpbmRpbmdfbWFuYWdlciA9IEtleWJpbmRpbmdNYW5hZ2Vy LmdldF9pbnN0YW5jZSgpOwotKyAgICAgICAgdmFyIGtleWJpbmRpbmdfbWFuYWdlciA9Ci0rICAg ICAgICAgICAgICAgIEtleWJpbmRpbmdNYW5hZ2VyLmdldF9pbnN0YW5jZShtX2lzX3dheWxhbmRf aW0pOwotIAotICAgICAgICAgQmluZGluZ0NvbW1vbi5LZXlFdmVudEZ1bmNUeXBlIGZ0eXBlID0K LSAgICAgICAgICAgICAgICAgQmluZGluZ0NvbW1vbi5LZXlFdmVudEZ1bmNUeXBlLklNRV9TV0lU Q0hFUjsKLS0tIAotMi40NS4wCi0KLUZyb20gYmU5NGI4ZGRiNGMzN2ZlODM2NDY4NjBhMDhjNjAw Yjk4ZTY3ZmU4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFNhdCwgMjUgTWF5IDIwMjQgMTg6MTA6MzYg KzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjL2lidXNlbmdpbmU6IEhpZGUgcHJlZWRpdCB0ZXh0 IHdpdGggUGFuZWxFeHRlbnNpb25SZWNlaXZlZAotIHNpZ25hbAotCi1JQnVzRW5naW5lU2ltcGxl IG5vIGxvbmdlciBjYWxscyB0byBoaWRlIHRoZSBwcmVlZGl0IHdpdGggdGhlIHplcm8KLWxlbmd0 aCB0byBmaXggdGhlIHNsdXJyaW5nIGN1cnNvciBwb3NpdGlvbiBidXQgdGhlIGVtb2ppIHByZWVk aXQKLWJlY29tZXMgbm90IHRvIGJlIGhpZGRlbiB3aXRoIHRoZSBwcmVlZGl0IGNvbW1pdCBvciBl c2NhcGUgZXZlbnRzCi1hcyBhIHNpZGUgZWZmZWN0LgotVG8gZml4IHRoZSBpc3N1ZSwgSUJ1c0Vu Z2luZSBuZWVkcyB0byBkZWNpZGUgdG8gY2xlYXIgb3Iga2VlcAotdGhlIHByZWVkaXQgd2hlbiB0 aGUgZW1vamkgbW9kZSBpcyBmaW5pc2hlZC4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVz L2lidXMvaXNzdWVzLzI1MzYKLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2Nv bW1pdC9hM2E1YTIwYQotLS0tCi0gc3JjL2lidXNlbmdpbmUuYyAgICAgICB8IDExICsrKysrKysr KysrCi0gc3JjL2lidXNlbmdpbmVzaW1wbGUuYyB8ICAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2Vu Z2luZS5jIGIvc3JjL2lidXNlbmdpbmUuYwotaW5kZXggZWZmNDk5MmMuLjAzNTJmZDQ5IDEwMDY0 NAotLS0tIGEvc3JjL2lidXNlbmdpbmUuYwotKysrIGIvc3JjL2lidXNlbmdpbmUuYwotQEAgLTEz MjYsNiArMTMyNiwxNyBAQCBpYnVzX2VuZ2luZV9zZXJ2aWNlX21ldGhvZF9jYWxsIChJQnVzU2Vy dmljZSAgICAgICAgICAgKnNlcnZpY2UsCi0gICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg fQotICAgICAgICAgcHJpdi0+ZW5hYmxlX2V4dGVuc2lvbiA9IGlidXNfZXh0ZW5zaW9uX2V2ZW50 X2lzX2VuYWJsZWQgKGV2ZW50KTsKLSsgICAgICAgIC8qIElCdXNFbmdpbmVTaW1wbGUgbm8gbG9u Z2VyIGNhbGxzIHRvIGhpZGUgdGhlIHByZWVkaXQgd2l0aCB0aGUgemVybwotKyAgICAgICAgICog bGVuZ2h0IGFuZCB0aGlzIHNlbmRzIHRoZSBudWxsIHByZWVkaXQgaGVyZSB3aGVuIHRoZSBlbW9q aWVyCi0rICAgICAgICAgKiBjb21taXRzIG9yIGVzY2FwZXMgdGhlIGVtb2ppIHByZWVkaXQgdGV4 dC4KLSsgICAgICAgICAqIFRPRE86IERvIHdlIG5lZWQgYSBzaWduYWwgZm9yIHRoZSBwYXJlbnQg ZW5naW5lcyB0byBpbmZvcm0gdGhpcwotKyAgICAgICAgICogaW5mb3JtYXRpb24gYmVjYXVzZSBz b21lIGVuZ2luZXMgZG9uJ3Qgd2lzaCB0byBoaWRlIHRoZWlyIHByZWVkaXQKLSsgICAgICAgICAq IHdpdGggaGlkaW5nIHRoZSBlbW9qaSBwcmVlZGl0PwotKyAgICAgICAgICovCi0rICAgICAgICBp ZiAoIXByaXYtPmVuYWJsZV9leHRlbnNpb24pIHsKLSsgICAgICAgICAgICBJQnVzVGV4dCAqdGV4 dCA9IGlidXNfdGV4dF9uZXdfZnJvbV9zdGF0aWNfc3RyaW5nICgiIik7Ci0rICAgICAgICAgICAg aWJ1c19lbmdpbmVfdXBkYXRlX3ByZWVkaXRfdGV4dCAoZW5naW5lLCB0ZXh0LCAwLCBGQUxTRSk7 Ci0rICAgICAgICB9Ci0gICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3Zh bHVlIChpbnZvY2F0aW9uLCBOVUxMKTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotZGlmZiAt LWdpdCBhL3NyYy9pYnVzZW5naW5lc2ltcGxlLmMgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi1p bmRleCBhYzQ3ODg1NS4uZTJmOTZhMzcgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2VuZ2luZXNpbXBs ZS5jCi0rKysgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi1AQCAtMzg1LDcgKzM4NSw3IEBAIGli dXNfZW5naW5lX3NpbXBsZV91cGRhdGVfcHJlZWRpdF90ZXh0IChJQnVzRW5naW5lU2ltcGxlICpz aW1wbGUpCi0gCi0gICAgIGlmIChzLT5sZW4gPT0gMCkgewotICAgICAgICAgLyogIzI1MzYgSUJ1 c0VuZ2luZSBjYW4gaW5oZXJpdCBJQnVzRW5naW5lU2ltcGxlIGZvciBjb21vcHNlIGtleXMuCi0t ICAgICAgICAgKiBJZiB0aGUgcHJldmlvdXMgcHJlZWRpdCBpcyB6ZXJvLCB0aGUgY3VycmVudCBw cmVlZGl0IGRvZXMgbm90IAotKyAgICAgICAgICogSWYgdGhlIHByZXZpb3VzIHByZWVkaXQgaXMg emVybywgdGhlIGN1cnJlbnQgcHJlZWRpdCBkb2VzIG5vdAotICAgICAgICAgICogbmVlZCB0byBi ZSBoaWRkZW4gaGVyZSBhdCBsZWFzdCBiZWNhdXNlIGlidXMtZGFlbW9uIGNvdWxkIGhhdmUKLSAg ICAgICAgICAqIGFub3RoZXIgcHJlZWRpdCBmb3IgdGhlIGNoaWxkIElCdXNFbmlnbmUgbGlrZXMg bTE3biBhbmQgY2FjbGxpbmcKLSAgICAgICAgICAqIGlidXNfZW5naW5lX2hpZGVfcHJlZWRpdF90 ZXh0KCkgaGVyZSBjb3VsZCBjYXVzZSBhIHJlc2V0IG9mCi0tLSAKLTIuNDUuMAotCi1Gcm9tIDc1 OTEwNWRmMWQ4M2FlMjVkOWVlYTgwMWE3YzkxZTY3ZGNhNDNjYjggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRl OiBTYXQsIDI1IE1heSAyMDI0IDE5OjIzOjIzICswOTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS82XSBi dXM6IENoYW5nZSBJQnVzIHVuaXF1ZSBuYW1lIHRvIDoxLjAgZnJvbSBJQlVTX1NFUlZJQ0VfSUJV UwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1BY2NvcmRpbmcgdG8gdGhl IEQtQnVzIHNwZWNpZmljYXRpb24sCi1gb3JnLmZyZWVkZXNrdG9wLkRCdXMuR2V0TmFtZU93bmVy KClgIG11c3QgcmV0dXJuIGEgdW5pcXVlIG5hbWUgKGkuZS4KLW9uZSBvZiB0aGUgZm9ybSBgOjEu MjNgKS4gVGhlIG9ubHkgdW5pcXVlIG5hbWUgd2hpY2ggaXMgYWxsb3dlZCB0byBub3QKLWJlIGlu IHRoaXMgZm9ybSBpcyBgb3JnLmZyZWVkZXNrdG9wLkRCdXNgLgotCi1UaGUgY2hhbmdlIGluIEdM aWIgMi44MC4xIHdhcyB0byB2YWxpZGF0ZSB0aGF0IHRoZSBzZW5kZXIgb2YgZXZlcnkKLW1lc3Nh Z2UgaXMgZWl0aGVyIGEgdW5pcXVlIG5hbWUgKGFjY29yZGluZyB0byBgZ19kYnVzX2lzX3VuaXF1 ZV9uYW1lKClgKSwKLW9yIHRoZSBzcGVjaWFsIG5hbWUgYG9yZy5mcmVlZGVza3RvcC5EQnVzYCB0 byBtZWV0IHRoZSBzcGVjaWZpY2F0aW9uLgotCi1JbiB0aGUgbG9uZyB0ZXJtLCBpdCBtaWdodCBi ZSBtb3JlIHJvYnVzdCB0byByZXdvcmsgdGhlIGNvZGUgc28gdGhhdCB0aGUKLW1hcHBpbmcgZnJv bSBgb3JnLmZyZWVkZXNrdG9wLklCdXNgIOKGkiBhIHVuaXF1ZSBuYW1lIGlzIHN0b3JlZCBpbgot YGRidXMtPm5hbWVzYCAoaW4gYGRidXNpbXBsLmNgKSBsaWtlIGFsbCB0aGUgb3RoZXIgcmVxdWVz dGVkIG5hbWVzLgotSG93ZXZlciwgaGFuZGxpbmcgZm9yIHRoZSBgb3JnLmZyZWVkZXNrdG9wLklC dXNgIHdlbGwta25vd24gbmFtZSBpcwotaGFyZGNvZGVkIHRocm91Z2hvdXQgYGRidXNpbXBsLmNg LCBzbyBwb3J0aW5nIHRoaXMgc2luZ2xlIGJpdCBvZiBpdCB0bwotY3JlYXRlIGEgYEJ1c05hbWVT ZXJ2aWNlYCB3b3VsZCBwcm9iYWJseSBjYXVzZSBtb3JlIHByb2JsZW1zLgotCi1CVUc9aHR0cHM6 Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjYzOQotQlVHPWh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbGliLy0vaXNzdWVzLzMyNjgKLUJVRz1odHRwczovL2dpdGh1Yi5jb20v YWR2aXNvcmllcy9HSFNBLWY2MzItYzNyaC1yMnYyCi0tLS0KLSBidXMvY29ubmVjdGlvbi5oICAg fCAgMyArKysKLSBidXMvZGJ1c2ltcGwuYyAgICAgfCAyOSArKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLQotIGJ1cy9pYnVzaW1wbC5jICAgICB8IDEzICsrKysrKystLS0tLS0KLSBidXMvaW5w dXRjb250ZXh0LmMgfCAgMiArLQotIGJ1cy9tYXRjaHJ1bGUuYyAgICB8IDEwICsrKysrKysrKy0K LSBidXMvbWF0Y2hydWxlLmggICAgfCAgNCArKystCi0gNiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNl cnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1cy9jb25uZWN0aW9u LmggYi9idXMvY29ubmVjdGlvbi5oCi1pbmRleCA0NDBmYWYxZS4uODI2NDk4MGUgMTAwNjQ0Ci0t LS0gYS9idXMvY29ubmVjdGlvbi5oCi0rKysgYi9idXMvY29ubmVjdGlvbi5oCi1AQCAtNDIsNiAr NDIsOSBAQAotICNkZWZpbmUgQlVTX0NPTk5FQ1RJT05fR0VUX0NMQVNTKG9iaikgICBcCi0gICAg IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqKSwgQlVTX1RZUEVfQ09OTkVDVElPTiwg QnVzQ29ubmVjdGlvbkNsYXNzKSkKLSAKLSsvKiBidXNfZGJ1c19pbXBsX2hlbGxvKCkgc2V0cyB0 aGUgY2xpZW50IHVuaXF1ZSBuYW1lcyAiOjEuMSIgb3IgbGF0ZXIuICovCi0rI2RlZmluZSBJQlVT X05BTUVfT1dORVJfTkFNRSAiOjEuMCIKLSsKLSBHX0JFR0lOX0RFQ0xTCi0gCi0gdHlwZWRlZiBz dHJ1Y3QgX0J1c0Nvbm5lY3Rpb24gQnVzQ29ubmVjdGlvbjsKLWRpZmYgLS1naXQgYS9idXMvZGJ1 c2ltcGwuYyBiL2J1cy9kYnVzaW1wbC5jCi1pbmRleCA1OTc4N2E4MC4uNTIwOTJlNTggMTAwNjQ0 Ci0tLS0gYS9idXMvZGJ1c2ltcGwuYwotKysrIGIvYnVzL2RidXNpbXBsLmMKLUBAIC03MTAsNyAr NzEwLDggQEAgYnVzX2RidXNfaW1wbF9saXN0X25hbWVzIChCdXNEQnVzSW1wbCAgICAgICAgICAg KmRidXMsCi0gCi0gICAgIC8qIEZJWE1FIHNob3VsZCBhZGQgdGhlbT8gKi8KLSAgICAgZ192YXJp YW50X2J1aWxkZXJfYWRkICgmYnVpbGRlciwgInMiLCAib3JnLmZyZWVkZXNrdG9wLkRCdXMiKTsK LS0gICAgZ192YXJpYW50X2J1aWxkZXJfYWRkICgmYnVpbGRlciwgInMiLCAib3JnLmZyZWVkZXNr dG9wLklCdXMiKTsKLSsgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkICgmYnVpbGRlciwgInMiLCBJ QlVTX1NFUlZJQ0VfSUJVUyk7Ci0rICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCAoJmJ1aWxkZXIs ICJzIiwgSUJVU19OQU1FX09XTkVSX05BTUUpOwotIAotICAgICAvKiBhcHBlbmQgd2VsbC1rbm93 biBuYW1lcyAqLwotICAgICBHTGlzdCAqbmFtZXMsICpuYW1lOwotQEAgLTc4NSwxMSArNzg2LDEx IEBAIGJ1c19kYnVzX2ltcGxfZ2V0X25hbWVfb3duZXIgKEJ1c0RCdXNJbXBsICAgICAgICAgICAq ZGJ1cywKLSAgICAgY29uc3QgZ2NoYXIgKm5hbWUgPSBOVUxMOwotICAgICBnX3ZhcmlhbnRfZ2V0 IChwYXJhbWV0ZXJzLCAiKCZzKSIsICZuYW1lKTsKLSAKLS0gICAgaWYgKGdfc3RyY21wMCAobmFt ZSwgIm9yZy5mcmVlZGVza3RvcC5EQnVzIikgPT0gMCB8fAotLSAgICAgICAgZ19zdHJjbXAwIChu YW1lLCAib3JnLmZyZWVkZXNrdG9wLklCdXMiKSA9PSAwKSB7Ci0rICAgIGlmICghZ19zdHJjbXAw IChuYW1lLCAib3JnLmZyZWVkZXNrdG9wLkRCdXMiKSkgewotICAgICAgICAgbmFtZV9vd25lciA9 IG5hbWU7Ci0tICAgIH0KLS0gICAgZWxzZSB7Ci0rICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMCAo bmFtZSwgSUJVU19TRVJWSUNFX0lCVVMpKSB7Ci0rICAgICAgICBuYW1lX293bmVyID0gSUJVU19O QU1FX09XTkVSX05BTUU7Ci0rICAgIH0gZWxzZSB7Ci0gICAgICAgICBCdXNDb25uZWN0aW9uICpv d25lciA9IGJ1c19kYnVzX2ltcGxfZ2V0X2Nvbm5lY3Rpb25fYnlfbmFtZSAoZGJ1cywgbmFtZSk7 Ci0gICAgICAgICBpZiAob3duZXIgIT0gTlVMTCkgewotICAgICAgICAgICAgIG5hbWVfb3duZXIg PSBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUgKG93bmVyKTsKLUBAIC04MDAsOCArODAx LDcgQEAgYnVzX2RidXNfaW1wbF9nZXRfbmFtZV9vd25lciAoQnVzREJ1c0ltcGwgICAgICAgICAg ICpkYnVzLAotICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvciAo aW52b2NhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1IsIEdfREJV U19FUlJPUl9OQU1FX0hBU19OT19PV05FUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fu IG5vdCBnZXQgbmFtZSBvd25lciBvZiAnJXMnOiBubyBzdWNoIG5hbWUiLCBuYW1lKTsKLS0gICAg fQotLSAgICBlbHNlIHsKLSsgICAgfSBlbHNlIHsKLSAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52 b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgZ192YXJpYW50X25ldyAoIihzKSIsIG5hbWVfb3duZXIpKTsKLSAgICAgfQotQEAgLTkzMiw2 ICs5MzIsOSBAQCBidXNfZGJ1c19pbXBsX2FkZF9tYXRjaCAoQnVzREJ1c0ltcGwgICAgICAgICAg ICpkYnVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICJQYXJzZSBtYXRjaCBydWxlIFslc10g ZmFpbGVkIiwgcnVsZV90ZXh0KTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotKyAgICAvKiBp YnVzX2J1c193YXRjaF9pYnVzX3NpZ25hbCgpIHN1cHBvcnRzIElCVVNfU0VSVklDRV9JQlVTIHNl bmRlci4gKi8KLSsgICAgaWYgKCFnX3N0cmNtcDAgKGJ1c19tYXRjaF9ydWxlX2dldF9zZW5kZXIg KHJ1bGUpLCBJQlVTX1NFUlZJQ0VfSUJVUykpCi0rICAgICAgICBidXNfbWF0Y2hfcnVsZV9zZXRf c2VuZGVyIChydWxlLCBJQlVTX05BTUVfT1dORVJfTkFNRSk7Ci0gCi0gICAgIGdfZGJ1c19tZXRo b2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sIE5VTEwpOwotICAgICBHTGlz dCAqcDsKLUBAIC0xNTEwLDcgKzE1MTMsOCBAQCBidXNfZGJ1c19pbXBsX2Nvbm5lY3Rpb25fZmls dGVyX2NiIChHREJ1c0Nvbm5lY3Rpb24gKmRidXNfY29ubmVjdGlvbiwKLSAgICAgICAgIC8qIGNv bm5lY3Rpb24gdW5pcXVlIG5hbWUgYXMgc2VuZGVyIG9mIHRoZSBtZXNzYWdlKi8KLSAgICAgICAg IGdfZGJ1c19tZXNzYWdlX3NldF9zZW5kZXIgKG1lc3NhZ2UsIGJ1c19jb25uZWN0aW9uX2dldF91 bmlxdWVfbmFtZSAoY29ubmVjdGlvbikpOwotIAotLSAgICAgICAgaWYgKGdfc3RyY21wMCAoZGVz dGluYXRpb24sICJvcmcuZnJlZWRlc2t0b3AuSUJ1cyIpID09IDApIHsKLSsgICAgICAgIGlmICgh Z19zdHJjbXAwIChkZXN0aW5hdGlvbiwgSUJVU19TRVJWSUNFX0lCVVMpIHx8Ci0rICAgICAgICAg ICAgIWdfc3RyY21wMCAoZGVzdGluYXRpb24sIElCVVNfTkFNRV9PV05FUl9OQU1FKSkgewotICAg ICAgICAgICAgIC8qIHRoZSBtZXNzYWdlIGlzIHNlbnQgdG8gSUJ1cyBzZXJ2aWNlLiBtZXNzYWdl cyBmcm9tIGlidXNidXMgYW5kIGlidXNjb250ZXh0IG1heSBmYWxsIGludG8gdGhpcyBjYXRlZ29y eS4gKi8KLSAgICAgICAgICAgICBzd2l0Y2ggKG1lc3NhZ2VfdHlwZSkgewotICAgICAgICAgICAg IGNhc2UgR19EQlVTX01FU1NBR0VfVFlQRV9NRVRIT0RfQ0FMTDoKLUBAIC0xNTI4LDggKzE1MzIs NyBAQCBidXNfZGJ1c19pbXBsX2Nvbm5lY3Rpb25fZmlsdGVyX2NiIChHREJ1c0Nvbm5lY3Rpb24g KmRidXNfY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYgKG1lc3Nh Z2UpOwotICAgICAgICAgICAgICAgICBnX3JldHVybl92YWxfaWZfcmVhY2hlZCAoTlVMTCk7ICAv KiByZXR1cm4gTlVMTCBzaW5jZSB0aGUgc2VydmljZSBkb2VzIG5vdCBoYW5kbGUgc2lnbmFscy4g Ki8KLSAgICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBlbHNlIGlmIChnX3N0cmNt cDAgKGRlc3RpbmF0aW9uLCAib3JnLmZyZWVkZXNrdG9wLkRCdXMiKSA9PSAwKSB7Ci0rICAgICAg ICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAgKGRlc3RpbmF0aW9uLCAib3JnLmZyZWVkZXNrdG9wLkRC dXMiKSkgewotICAgICAgICAgICAgIC8qIHRoZSBtZXNzYWdlIGlzIHNlbnQgdG8gREJ1cyBzZXJ2 aWNlLiBtZXNzYWdlcyBmcm9tIGlidXNidXMgbWF5IGZhbGwgaW50byB0aGlzIGNhdGVnb3J5LiAq LwotICAgICAgICAgICAgIHN3aXRjaCAobWVzc2FnZV90eXBlKSB7Ci0gICAgICAgICAgICAgY2Fz ZSBHX0RCVVNfTUVTU0FHRV9UWVBFX01FVEhPRF9DQUxMOgotQEAgLTE1NDcsOCArMTU1MCw3IEBA IGJ1c19kYnVzX2ltcGxfY29ubmVjdGlvbl9maWx0ZXJfY2IgKEdEQnVzQ29ubmVjdGlvbiAqZGJ1 c19jb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICBnX29iamVjdF91bnJlZiAobWVzc2FnZSk7 Ci0gICAgICAgICAgICAgICAgIGdfcmV0dXJuX3ZhbF9pZl9yZWFjaGVkIChOVUxMKTsgIC8qIHJl dHVybiBOVUxMIHNpbmNlIHRoZSBzZXJ2aWNlIGRvZXMgbm90IGhhbmRsZSBzaWduYWxzLiAqLwot ICAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGVsc2UgaWYgKGRlc3RpbmF0aW9u ID09IE5VTEwpIHsKLSsgICAgICAgIH0gZWxzZSBpZiAoZGVzdGluYXRpb24gPT0gTlVMTCkgewot ICAgICAgICAgICAgIC8qIHRoZSBtZXNzYWdlIGlzIHNlbnQgdG8gdGhlIGN1cnJlbnQgY29ubmVj dGlvbi4gY29tbXVuaWNhdGlvbnMgYmV0d2VlbiBpYnVzLWRhZW1vbiBhbmQgcGFuZWwvZW5naW5l cyBtYXkgZmFsbCBpbnRvIHRoaXMKLSAgICAgICAgICAgICAgKiBjYXRlZ29yeSBzaW5jZSB0aGUg cGFuZWwvZW5naW5lIHByb3hpZXMgY3JlYXRlZCBieSBpYnVzLWRhZW1vbiBkb2VzIG5vdCBzZXQg YnVzIG5hbWUuICovCi0gICAgICAgICAgICAgc3dpdGNoIChtZXNzYWdlX3R5cGUpIHsKLUBAIC0x NTcwLDggKzE1NzIsNyBAQCBidXNfZGJ1c19pbXBsX2Nvbm5lY3Rpb25fZmlsdGVyX2NiIChHREJ1 c0Nvbm5lY3Rpb24gKmRidXNfY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgZ19vYmplY3Rf dW5yZWYgKG1lc3NhZ2UpOwotICAgICAgICAgICAgICAgICBnX3JldHVybl92YWxfaWZfcmVhY2hl ZCAoTlVMTCk7ICAvKiByZXR1cm4gTlVMTCBzaW5jZSB0aGUgc2VydmljZSBkb2VzIG5vdCBoYW5k bGUgbWVzc2FnZXMuICovCi0gICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgZWxz ZSB7Ci0rICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIC8qIFRoZSBtZXNzYWdlIGlzIHNl bnQgdG8gYW4gb3RoZXIgc2VydmljZS4gRm9yd2FyZCBpdC4KLSAgICAgICAgICAgICAgKiBGb3Ig ZXhhbXBsZSwgdGhlIGNvbmZpZyBwcm94eSBjbGFzcyBpbiBzcmMvaWJ1c2NvbmZpZy5jIHNldHMg aXRzICJnLW5hbWUiIHByb3BlcnR5IChpLmUuIGRlc3RpbmF0aW9uKSB0byBJQlVTX1NFUlZJQ0Vf Q09ORklHLiAqLwotICAgICAgICAgICAgIGJ1c19kYnVzX2ltcGxfZm9yd2FyZF9tZXNzYWdlIChk YnVzLCBjb25uZWN0aW9uLCBtZXNzYWdlKTsKLWRpZmYgLS1naXQgYS9idXMvaWJ1c2ltcGwuYyBi L2J1cy9pYnVzaW1wbC5jCi1pbmRleCA4NzVjZDU1MC4uODY4MWM3OGIgMTAwNjQ0Ci0tLS0gYS9i dXMvaWJ1c2ltcGwuYwotKysrIGIvYnVzL2lidXNpbXBsLmMKLUBAIC0yMzg4LDE5ICsyMzg4LDIw IEBAIGJ1c19pYnVzX2ltcGxfcHJvcGVydHlfY2hhbmdlZCAoQnVzSUJ1c0ltcGwgKnNlcnZpY2Us Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAqdmFsdWUpCi0g ewotICAgICBHREJ1c01lc3NhZ2UgKm1lc3NhZ2UgPQotLSAgICAgICAgZ19kYnVzX21lc3NhZ2Vf bmV3X3NpZ25hbCAoIi9vcmcvZnJlZWRlc2t0b3AvSUJ1cyIsCi0rICAgICAgICBnX2RidXNfbWVz c2FnZV9uZXdfc2lnbmFsIChJQlVTX1BBVEhfSUJVUywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9wZXJ0aWVzIiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcm9wZXJ0aWVzQ2hhbmdlZCIpOwotIAotICAg ICAvKiBzZXQgYSBub24temVybyBzZXJpYWwgdG8gbWFrZSBsaWJkYnVzIGhhcHB5ICovCi0gICAg IGdfZGJ1c19tZXNzYWdlX3NldF9zZXJpYWwgKG1lc3NhZ2UsIDEpOwotLSAgICBnX2RidXNfbWVz c2FnZV9zZXRfc2VuZGVyIChtZXNzYWdlLCAib3JnLmZyZWVkZXNrdG9wLklCdXMiKTsKLSsgICAg Z19kYnVzX21lc3NhZ2Vfc2V0X3NlbmRlciAobWVzc2FnZSwgSUJVU19OQU1FX09XTkVSX05BTUUp OwotKwotIAotICAgICBHVmFyaWFudEJ1aWxkZXIgKmJ1aWxkZXIgPSBnX3ZhcmlhbnRfYnVpbGRl cl9uZXcgKEdfVkFSSUFOVF9UWVBFX0FSUkFZKTsKLSAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRk IChidWlsZGVyLCAie3N2fSIsIHByb3BlcnR5X25hbWUsIHZhbHVlKTsKLSAgICAgZ19kYnVzX21l c3NhZ2Vfc2V0X2JvZHkgKG1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn X3ZhcmlhbnRfbmV3ICgiKHNhe3N2fWFzKSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLklCdXMiLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19TRVJWSUNFX0lCVVMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVyLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkpOwotICAgICBnX3Zhcmlh bnRfYnVpbGRlcl91bnJlZiAoYnVpbGRlcik7Ci1AQCAtMjQxOSwxMiArMjQyMCwxMiBAQCBidXNf aWJ1c19pbXBsX2VtaXRfc2lnbmFsIChCdXNJQnVzSW1wbCAqaWJ1cywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc2lnbmFsX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgR1ZhcmlhbnQgICAgKnBhcmFtZXRlcnMpCi0gewotLSAgICBHREJ1c01lc3Nh Z2UgKm1lc3NhZ2UgPSBnX2RidXNfbWVzc2FnZV9uZXdfc2lnbmFsICgiL29yZy9mcmVlZGVza3Rv cC9JQnVzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5JQnVzIiwKLSsgICAgR0RCdXNNZXNzYWdlICptZXNz YWdlID0gZ19kYnVzX21lc3NhZ2VfbmV3X3NpZ25hbCAoSUJVU19QQVRIX0lCVVMsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfSU5U RVJGQUNFX0lCVVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNpZ25hbF9uYW1lKTsKLSAgICAgLyogc2V0IGEgbm9uLXplcm8gc2VyaWFs IHRvIG1ha2UgbGliZGJ1cyBoYXBweSAqLwotICAgICBnX2RidXNfbWVzc2FnZV9zZXRfc2VyaWFs IChtZXNzYWdlLCAxKTsKLS0gICAgZ19kYnVzX21lc3NhZ2Vfc2V0X3NlbmRlciAobWVzc2FnZSwg Im9yZy5mcmVlZGVza3RvcC5JQnVzIik7Ci0rICAgIGdfZGJ1c19tZXNzYWdlX3NldF9zZW5kZXIg KG1lc3NhZ2UsIElCVVNfTkFNRV9PV05FUl9OQU1FKTsKLSAgICAgaWYgKHBhcmFtZXRlcnMpCi0g ICAgICAgICBnX2RidXNfbWVzc2FnZV9zZXRfYm9keSAobWVzc2FnZSwgcGFyYW1ldGVycyk7Ci0g ICAgIGJ1c19kYnVzX2ltcGxfZGlzcGF0Y2hfbWVzc2FnZV9ieV9ydWxlIChCVVNfREVGQVVMVF9E QlVTLCBtZXNzYWdlLCBOVUxMKTsKLWRpZmYgLS1naXQgYS9idXMvaW5wdXRjb250ZXh0LmMgYi9i dXMvaW5wdXRjb250ZXh0LmMKLWluZGV4IDc2NjZmMDU3Li5lMGFkMDc0MiAxMDA2NDQKLS0tLSBh L2J1cy9pbnB1dGNvbnRleHQuYwotKysrIGIvYnVzL2lucHV0Y29udGV4dC5jCi1AQCAtNzU1LDcg Kzc1NSw3IEBAIGJ1c19pbnB1dF9jb250ZXh0X3NlbmRfc2lnbmFsIChCdXNJbnB1dENvbnRleHQg KmNvbnRleHQsCi0gICAgICAgICAgICAgaWJ1c19zZXJ2aWNlX2dldF9vYmplY3RfcGF0aCAoKElC dXNTZXJ2aWNlICopY29udGV4dCksCi0gICAgICAgICAgICAgaW50ZXJmYWNlX25hbWUsCi0gICAg ICAgICAgICAgc2lnbmFsX25hbWUpOwotLSAgICBnX2RidXNfbWVzc2FnZV9zZXRfc2VuZGVyICht ZXNzYWdlLCAib3JnLmZyZWVkZXNrdG9wLklCdXMiKTsKLSsgICAgZ19kYnVzX21lc3NhZ2Vfc2V0 X3NlbmRlciAobWVzc2FnZSwgSUJVU19OQU1FX09XTkVSX05BTUUpOwotICAgICBnX2RidXNfbWVz c2FnZV9zZXRfZGVzdGluYXRpb24gKAotICAgICAgICAgICAgIG1lc3NhZ2UsCi0gICAgICAgICAg ICAgYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lIChjb250ZXh0LT5jb25uZWN0aW9uKSk7 Ci1kaWZmIC0tZ2l0IGEvYnVzL21hdGNocnVsZS5jIGIvYnVzL21hdGNocnVsZS5jCi1pbmRleCA0 ZmIxZDkwMi4uMjM4MWNhOWUgMTAwNjQ0Ci0tLS0gYS9idXMvbWF0Y2hydWxlLmMKLSsrKyBiL2J1 cy9tYXRjaHJ1bGUuYwotQEAgLTIsNyArMiw4IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8K LSAvKiBJQnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAw OC0yMDEwIFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIw MjQgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC00MDcsNiArNDA4LDEz IEBAIGJ1c19tYXRjaF9ydWxlX3NldF9tZXNzYWdlX3R5cGUgKEJ1c01hdGNoUnVsZSAgICpydWxl LAotICAgICByZXR1cm4gVFJVRTsKLSB9Ci0gCi0rY29uc3QgZ2NoYXIgKgotK2J1c19tYXRjaF9y dWxlX2dldF9zZW5kZXIgIChCdXNNYXRjaFJ1bGUgICAgKnJ1bGUpCi0rewotKyAgICBnX3JldHVy bl92YWxfaWZfZmFpbCAocnVsZSAhPSBOVUxMLCBOVUxMKTsKLSsgICAgcmV0dXJuIHJ1bGUtPnNl bmRlcjsKLSt9Ci0rCi0gZ2Jvb2xlYW4KLSBidXNfbWF0Y2hfcnVsZV9zZXRfc2VuZGVyICAoQnVz TWF0Y2hSdWxlICAgICpydWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAgICAgKnNlbmRlcikKLWRpZmYgLS1naXQgYS9idXMvbWF0Y2hydWxlLmggYi9idXMvbWF0 Y2hydWxlLmgKLWluZGV4IDFkZDMwNGNkLi4zN2I2MzQ3YiAxMDA2NDQKLS0tLSBhL2J1cy9tYXRj aHJ1bGUuaAotKysrIGIvYnVzL21hdGNocnVsZS5oCi1AQCAtMiw3ICsyLDggQEAKLSAvKiB2aW06 c2V0IGV0IHN0cz00OiAqLwotIC8qIElCdXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0 IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICog Q29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykg MjAyNCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5 cmlnaHQgKEMpIDIwMDgtMjAyNCBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot QEAgLTU3LDYgKzU4LDcgQEAgdm9pZCAgICAgICAgICAgICBidXNfbWF0Y2hfcnVsZV9mcmVlICAg ICAgICAoQnVzTWF0Y2hSdWxlICAgICAgICpydWxlKTsKLSBnYm9vbGVhbiAgICAgICAgIGJ1c19t YXRjaF9ydWxlX3NldF9tZXNzYWdlX3R5cGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChCdXNNYXRjaFJ1bGUgICAgICAgKnJ1bGUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgICAgICB0eXBl KTsKLStjb25zdCBnY2hhciAqICAgIGJ1c19tYXRjaF9ydWxlX2dldF9zZW5kZXIgIChCdXNNYXRj aFJ1bGUgICAgICAgKnJ1bGUpOwotIGdib29sZWFuICAgICAgICAgYnVzX21hdGNoX3J1bGVfc2V0 X3NlbmRlciAgKEJ1c01hdGNoUnVsZSAgICAgICAqcnVsZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgKnNlbmRlcik7Ci0g Z2Jvb2xlYW4gICAgICAgICBidXNfbWF0Y2hfcnVsZV9zZXRfaW50ZXJmYWNlCi0tLSAKLTIuNDUu MAotCi1Gcm9tIGE0ZDU4Y2I4NTljYWQ0YTBjMTJlMmMyYTM0ZjQ0MGY3N2NkNzNiYWUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+Ci1EYXRlOiBTYXQsIDEgSnVuIDIwMjQgMjA6MjA6MTkgKzA5MDAKLVN1YmplY3Q6IFtQ QVRDSCAyLzZdIHBvcnRhbDogTGV0IEZsYXRwYWsgYXBwbGljYXRpb24gYWNjZXB0IG5ldyBJQnVz IHVuaXF1ZSBuYW1lCi0KLWlidXMtcG9ydGFsIGNhbiBhY2NlcHQgdGhlIGNvbm5lY3Rpb24gZnJv bSBJQlVTX1NFUlZJQ0VfSUJVUyBvbmx5Ci1idXQgbm93IHRoZSBJQnVzIHVuaXF1ZSBuYW1lIGlz IGNoYW5nZWQgdG8gSUJVU19OQU1FX09XTkVSX05BTUUKLWFzIHRoZSBELUJ1cyBuYW1lIG93bmVy IGFuZCBwcm9iYWJseSBJIHRoaW5rIHRoZSBuYW1lIGNoZWNrIGlzCi1ub3QgbmVlZGVkIGFuZCBq dXN0IGRlbGV0ZSBpdC4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVz LzI2MzkKLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2NvbW1pdC83NTkxMDVk Ci0tLS0KLSBwb3J0YWwvcG9ydGFsLmMgfCAzIC0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcG9ydGFsL3BvcnRhbC5jIGIvcG9ydGFsL3BvcnRhbC5j Ci1pbmRleCBjMmU0ZmM3Zi4uMzRkYTk2NzkgMTAwNjQ0Ci0tLS0gYS9wb3J0YWwvcG9ydGFsLmMK LSsrKyBiL3BvcnRhbC9wb3J0YWwuYwotQEAgLTQwMCw5ICs0MDAsNiBAQCBwb3J0YWxfY29udGV4 dF9nX3NpZ25hbCAoR0RCdXNQcm94eSAgICAgICAgKnByb3h5LAotICAgICBHRXJyb3IgKmVycm9y ID0gTlVMTDsKLSAgICAgR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uOwotIAotLSAgICBpZiAo Z19zdHJjbXAwIChzZW5kZXJfbmFtZSwgSUJVU19TRVJWSUNFX0lCVVMpICE9IDApCi0tICAgICAg ICByZXR1cm47Ci0tCi0gICAgIGNvbm5lY3Rpb24gPSBnX2RidXNfaW50ZXJmYWNlX3NrZWxldG9u X2dldF9jb25uZWN0aW9uICgKLSAgICAgICAgICAgICBHX0RCVVNfSU5URVJGQUNFX1NLRUxFVE9O IChwb3J0YWxfY29udGV4dCkpOwotICAgICBpZiAoIWdfZGJ1c19jb25uZWN0aW9uX2VtaXRfc2ln bmFsIChjb25uZWN0aW9uLAotLS0gCi0yLjQ1LjAKLQotRnJvbSAwMjYzMmNjZGQ0MzBmZGMzZDFh NTgwMjVkMzFjNWVjNzJkOWE3OTg5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVq aXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogU2F0LCAxIEp1biAyMDI0 IDIwOjMyOjI5ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0ggMy82XSBwb3J0YWw6IFN1cHBvcnQgbmV3 IHN5bmMgaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkKLQotSUJ1cyBjbGll bnRzIGhhdmUgYmVlbiBlbmhhbmNlZCB3aXRoIHRoZSBuZXcgc3luY2hyb25vdXMKLSJQcm9jZXNz S2V5RXZlbnQiIHRvIGZpeCB0aGUgbG9uZy1zdGFuZGluZyBpc3N1ZXMgYW5kIGlidXMtcG9ydGFs Ci1hbHNvIG5lZWRzIHRvIHN1cHBvcnQgaXQuCi0KLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20v aWJ1cy9pYnVzL2NvbW1pdC8zOGYwOWM2Ci0tLS0KLSBwb3J0YWwvb3JnLmZyZWVkZXNrdG9wLklC dXMuUG9ydGFsLnhtbCB8ICA3ICsrKy0KLSBwb3J0YWwvcG9ydGFsLmMgICAgICAgICAgICAgICAg ICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gMiBmaWxlcyBjaGFuZ2Vk LCA1NiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvcG9ydGFs L29yZy5mcmVlZGVza3RvcC5JQnVzLlBvcnRhbC54bWwgYi9wb3J0YWwvb3JnLmZyZWVkZXNrdG9w LklCdXMuUG9ydGFsLnhtbAotaW5kZXggMzc2YWQ0MjQuLjBiM2Y2ODY0IDEwMDY0NAotLS0tIGEv cG9ydGFsL29yZy5mcmVlZGVza3RvcC5JQnVzLlBvcnRhbC54bWwKLSsrKyBiL3BvcnRhbC9vcmcu ZnJlZWRlc2t0b3AuSUJ1cy5Qb3J0YWwueG1sCi1AQCAtMSw2ICsxLDYgQEAKLSA8P3htbCB2ZXJz aW9uPSIxLjAiPz4KLSA8IS0tCi0tIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IFJlZCBIYXQsIElu Yy4KLSsgQ29weXJpZ2h0IChDKSAyMDE3LTIwMjQgUmVkIEhhdCwgSW5jLgotIAotICBUaGlzIGxp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKLUBAIC0xMjgsOCArMTI4LDEzIEBACi0gICAgICAgPGFyZyB0eXBlPSd2JyBuYW1lPSdwcm9w JyAvPgotICAgICA8L3NpZ25hbD4KLSAKLSsgICAgPHByb3BlcnR5IG5hbWU9J1Bvc3RQcm9jZXNz S2V5RXZlbnQnIHR5cGU9JyhhKHl2KSknIGFjY2Vzcz0ncmVhZCc+Ci0rICAgIDwvcHJvcGVydHk+ Ci0gICAgIDxwcm9wZXJ0eSBuYW1lPSdDb250ZW50VHlwZScgdHlwZT0nKHV1KScgYWNjZXNzPSd3 cml0ZScgLz4KLSAgICAgPHByb3BlcnR5IG5hbWU9J0NsaWVudENvbW1pdFByZWVkaXQnIHR5cGU9 JyhiKScgYWNjZXNzPSd3cml0ZScgLz4KLSsgICAgPHByb3BlcnR5IG5hbWU9J0VmZmVjdGl2ZVBv c3RQcm9jZXNzS2V5RXZlbnQnIHR5cGU9JyhiKScgYWNjZXNzPSd3cml0ZSc+Ci0rICAgIDwvcHJv cGVydHk+Ci0rCi0gICA8L2ludGVyZmFjZT4KLSAKLSAgIDxpbnRlcmZhY2UgbmFtZT0nb3JnLmZy ZWVkZXNrdG9wLklCdXMuU2VydmljZSc+Ci1kaWZmIC0tZ2l0IGEvcG9ydGFsL3BvcnRhbC5jIGIv cG9ydGFsL3BvcnRhbC5jCi1pbmRleCAzNGRhOTY3OS4uNWNkMzg3NzkgMTAwNjQ0Ci0tLS0gYS9w b3J0YWwvcG9ydGFsLmMKLSsrKyBiL3BvcnRhbC9wb3J0YWwuYwotQEAgLTEsNyArMSw3IEBACi0g LyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7 IC0qLSAqLwotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBC dXMKLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJp Z2h0IChDKSAyMDE3LTIwMjQgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBA IC02Niw4ICs2NiwxMCBAQCBzdHJ1Y3QgX0lCdXNQb3J0YWxDbGFzcwotIAotIGVudW0KLSB7Ci0t ICAgIFBST1BfQ09OVEVOVF9UWVBFID0gMSwKLSsgICAgUFJPUF9QT1NUX1BST0NFU1NfS0VZX0VW RU5UID0gMSwKLSsgICAgUFJPUF9DT05URU5UX1RZUEUsCi0gICAgIFBST1BfQ0xJRU5UX0NPTU1J VF9QUkVFRElULAotKyAgICBQUk9QX0VGRkVDVElWRV9QT1NUX1BST0NFU1NfS0VZX0VWRU5ULAot ICAgICBOX1BST1BFUlRJRVMKLSB9OwotIAotQEAgLTMzMCw2ICszMzIsMjMgQEAgaWJ1c19wb3J0 YWxfY29udGV4dF9zZXRfcHJvcGVydHkgKElCdXNQb3J0YWxDb250ZXh0ICpwb3J0YWxfY29udGV4 dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMICAvKiB1c2VyX2RhdGEgKi8KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwotICAgICAgICAgYnJlYWs7Ci0rICAgIGNhc2Ug UFJPUF9FRkZFQ1RJVkVfUE9TVF9QUk9DRVNTX0tFWV9FVkVOVDoKLSsgICAgICAgIGdfZGJ1c19w cm94eV9jYWxsIChHX0RCVVNfUFJPWFkgKHBvcnRhbF9jb250ZXh0LT5jb250ZXh0KSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydGllcy5T ZXQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3N2KSIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19JTlRFUkZB Q0VfSU5QVVRfQ09OVEVYVCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiRWZmZWN0aXZlUG9zdFByb2Nlc3NLZXlFdmVudCIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ192YWx1ZV9nZXRfdmFyaWFudCAodmFsdWUpKSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0xLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsIC8qIGNhbmNlbGxhYmxlICovCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg LyogY2FsbGJhY2sgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMICAvKiB1c2Vy X2RhdGEgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICAgICAgYnJlYWs7 Ci0rICAgIGNhc2UgUFJPUF9QT1NUX1BST0NFU1NfS0VZX0VWRU5UOgotKyAgICAgICAgZ193YXJu aW5nICgiTm8gc3VwcG9ydCBmb3Igc2V0dGluZyBjb250ZW50IHR5cGUiKTsKLSsgICAgICAgIGJy ZWFrOwotICAgICBkZWZhdWx0OgotICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF UlRZX0lEIChwb3J0YWxfY29udGV4dCwgcHJvcF9pZCwgcHNwZWMpOwotICAgICB9Ci1AQCAtMzQx LDEwICszNjAsMzcgQEAgaWJ1c19wb3J0YWxfY29udGV4dF9nZXRfcHJvcGVydHkgKElCdXNQb3J0 YWxDb250ZXh0ICpwb3J0YWxfY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR1ZhbHVlICAgICAgICAgICAgKnZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHUGFyYW1TcGVjICAgICAgICAqcHNwZWMpCi0gewotKyAgICBHVmFyaWFudCAq cmVzdWx0OwotKyAgICBHVmFyaWFudCAqdmFyaWFudCA9IE5VTEw7Ci0rICAgIEdFcnJvciAqZXJy b3IgPSBOVUxMOwotICAgICBzd2l0Y2ggKHByb3BfaWQpIHsKLSsgICAgY2FzZSBQUk9QX1BPU1Rf UFJPQ0VTU19LRVlfRVZFTlQ6Ci0rICAgICAgICByZXN1bHQgPSBnX2RidXNfcHJveHlfY2FsbF9z eW5jIChHX0RCVVNfUFJPWFkgKHBvcnRhbF9jb250ZXh0LT5jb250ZXh0KSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Qcm9w ZXJ0aWVzLkdldCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn X3ZhcmlhbnRfbmV3ICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIihzcykiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJQlVTX0lOVEVSRkFDRV9JTlBVVF9DT05URVhULAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zdFByb2Nlc3NLZXlFdmVudCIp LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0NBTExf RkxBR1NfTk9ORSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0x LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgLyogY2Fu Y2VsbGFibGUgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZl cnJvcik7Ci0rICAgICAgICBpZiAoZXJyb3IpIHsKLSsgICAgICAgICAgICBnX3dhcm5pbmcgKCJF cnJvciBQb3N0UHJvY2Vzc0tleUV2ZW50OiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKLSsgICAgICAg ICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAg IH0KLSsgICAgICAgIGdfdmFyaWFudF9nZXQgKHJlc3VsdCwgIih2KSIsICZ2YXJpYW50KTsKLSsg ICAgICAgIGlmICghdmFyaWFudCkgewotKyAgICAgICAgICAgIGdfd2FybmluZyAoIk5vIGNoaWxk IGluIFBvc3RQcm9jZXNzS2V5RXZlbnQiKTsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAg IH0KLSsgICAgICAgIGdfdmFsdWVfc2V0X3ZhcmlhbnQgKHZhbHVlLCB2YXJpYW50KTsKLSsgICAg ICAgIGJyZWFrOwotICAgICBjYXNlIFBST1BfQ09OVEVOVF9UWVBFOgotICAgICBjYXNlIFBST1Bf Q0xJRU5UX0NPTU1JVF9QUkVFRElUOgotLSAgICAgICAgZ193YXJuaW5nICgiTm8gc3VwcG9ydCBm b3Igc2V0dGluZyBjb250ZW50IHR5cGUiKTsKLSsgICAgY2FzZSBQUk9QX0VGRkVDVElWRV9QT1NU X1BST0NFU1NfS0VZX0VWRU5UOgotKyAgICAgICAgZ193YXJuaW5nICgiTm8gc3VwcG9ydCBmb3Ig Z2V0dGluZyBjb250ZW50IHR5cGUiKTsKLSAgICAgICAgIGJyZWFrOwotICAgICBkZWZhdWx0Ogot ICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChwb3J0YWxfY29udGV4 dCwgcHJvcF9pZCwgcHNwZWMpOwotQEAgLTM4Nyw3ICs0MzMsNyBAQCBpYnVzX3BvcnRhbF9jb250 ZXh0X2NsYXNzX2luaXQgKElCdXNQb3J0YWxDb250ZXh0Q2xhc3MgKmtsYXNzKQotICAgICBza2Vs ZXRvbl9jbGFzcy0+Z19hdXRob3JpemVfbWV0aG9kID0gaWJ1c19wb3J0YWxfY29udGV4dF9nX2F1 dGhvcml6ZV9tZXRob2Q7Ci0gCi0gICAgIGlidXNfZGJ1c19pbnB1dF9jb250ZXh0X292ZXJyaWRl X3Byb3BlcnRpZXMgKGdvYmplY3RfY2xhc3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBST1BfQ09OVEVOVF9UWVBFKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9QT1NUX1BST0NFU1NfS0VZ X0VWRU5UKTsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLS0tIAotMi40NS4wCi0KLUZyb20gODcxYzgz MTJhYTRiZDZiNzg1ZDdkOWM3NzlhMWY5ZjUxYjcwOTgwMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFNh dCwgMSBKdW4gMjAyNCAyMToyNzozOCArMDkwMAotU3ViamVjdDogW1BBVENIIDUvNl0gRml4IEZs YXRwYWsgYnVpbGQgZm9yIGRuZiBhbmQgcHlvdmVycmlkZXNkaXIKLQotYGRuZmAgaXMgbm90IGF2 YWlsYWJsZSBkdXJpbmcgRmxhdHBhayBidWlsZHMgd2l0aCBgZmxhdHBhay1idWlsZGVyYCBhbmQK LXRoZSBzdGVwcyBhcmUgb21pdHRlZCBpbiBhdXRvZ2VuLnNoIHRvIGNoZWNrIEZMQVRQQUtfSUQg ZW52aXJvbm1lbnQKLXZhcmlhYmxlLgotCi1XaGVuIElCdXMgaXMgYnVpbHQgd2l0aCB0aGUgSnNv biBmaWxlcyBpbiB0ZXN0IGRpcmVjdG9yeSwgdGhlIGJ1aWxkCi10cmllcyB0byBpbnN0YWxsIElC dXMucHkgZmlsZSBpbnRvIHB5b3ZlcnJpZGVzZGlyIGxpa2VzCi0vdXNyL2xpYiovcHl0aG9uMy4x Mi9zaXRlLXBhY2thZ2VzL2dpL292ZXJyaWRlcwotCi1CdXQgdGhlIGRpcmVjdG9yeSBpcyByZWFk b25seSB3aXRoIGBmbGF0cGFrLWJ1aWxkZXJgIGFuZCBjb3VsZCBiZQotZmFpbGVkLgotTm93IGAt LWRpc2FibGUtcHlnb2JqZWN0YCBvcHRpb24gaXMgYWRkZWQgdG8gYGNvbmZpZ3VyZWAuCi0KLUlC dXMgbW9kdWxlcyBhcmUgZW1iZWRkZWQgaW4gRmxhdHBhayBwbGF0Zm9ybXMgbGlrZXMgR05PTUUs IEZyZWVkZXNrdG9wCi1hbmQgdGhpcyBpc3N1ZSBtaWdodCBub3QgaGFwcGVuIGluIHRoZSBwbGF0 Zm9ybSBidWlsZHMgc2luY2UKLXRoZSBweW92ZXJyaWRlc2RpciBkb2VzIG5vdCBleGlzdCB5ZXQg c28gdGhpcyBtaWdodCBmaXggdGhlIGJ1aWxkCi1pc3N1ZXMgd2l0aCBKc29uIGZpbGVzIG9ubHkg aW4gdGVzdCBkaXJlY3RvcnkuCi0tLS0KLSBhdXRvZ2VuLnNoICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr KysrKysrKysrKysrLS0KLSA0IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9hdXRvZ2VuLnNoIGIvYXV0b2dlbi5zaAotaW5kZXgg OTBlMTI2ZWMuLmNkZThhYWVmIDEwMDc1NQotLS0tIGEvYXV0b2dlbi5zaAotKysrIGIvYXV0b2dl bi5zaAotQEAgLTQyLDcgKzQyLDcgQEAgY2QgIiRzcmNkaXIiCi0gICAgIHRvdWNoIENoYW5nZUxv ZwotIH0KLSAKLS0odGVzdCAieCRESVNBQkxFX0lOU1RBTExfUEtHUyIgPSAieCIpICYmIHsKLSso dGVzdCAieCRESVNBQkxFX0lOU1RBTExfUEtHUyIgPSAieCIpICYmICh0ZXN0ICJ4JEZMQVRQQUtf SUQiID0gIngiICkgJiYgewotICAgICAodGVzdCAtZiAvZXRjL2ZlZG9yYS1yZWxlYXNlICkgJiYg ewotICAgICAgICAgcnBtIC1xICRGRURPUkFfUEtHMSB8fCBleGl0IDEKLSAgICAgICAgIHJwbSAt cSAkRkVET1JBX1BLRzIgfHwgZXhpdCAxCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29u ZmlndXJlLmFjCi1pbmRleCBhNTIxMDAwNC4uZmQxZDE1ZjcgMTAwNjQ0Ci0tLS0gYS9jb25maWd1 cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTUwOSw5ICs1MDksMjAgQEAgQU1fQ09ORElU SU9OQUwoW0VOQUJMRV9EQUVNT05dLCBbdHJ1ZV0pCi0gCi0gUFlHT0JKRUNUX1JFUVVJUkVEPTMu MC4wCi0gCi0tUEtHX0NIRUNLX0VYSVNUUyhbcHlnb2JqZWN0LTMuMCA+PSAkUFlHT0JKRUNUX1JF UVVJUkVEXSwKLS0gICAgICAgICAgICAgICAgIFtlbmFibGVfcHlnb2JqZWN0PXllc10sIFtlbmFi bGVfcHlnb2JqZWN0PW5vXSkKLSsjIFdoZW4gSUJ1cyBpcyBidWlsdCB3aXRoIHRoZSBKc29uIGZp bGVzIGluIHRlc3QgZGlyZWN0b3J5LCB0aGUgYnVpbGQKLSsjIHRyaWVzIHRvIGluc3RhbGwgSUJ1 cy5weSBmaWxlIGludG8gcHlvdmVycmlkZXNkaXIKLSsjIGJ1dCB0aGUgZGlyZWN0b3J5IGlzIHJl YWRvbmx5IHdpdGggYGZsYXRwYWstYnVpbGRlcmAgCi0rQUNfQVJHX0VOQUJMRShweWdvYmplY3Qs Ci0rICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtcHlnb2JqZWN0XSwKLSsgICAgICAgICAg ICAgICAgICAgW0Rpc2FibGUgcHlnb2JqZWN0Ll0pLAotKyAgICBbZW5hYmxlX3B5Z29iamVjdD0k ZW5hYmxldmFsXSwKLSsgICAgW2VuYWJsZV9weWdvYmplY3Q9eWVzXQotKykKLSAKLStpZiB0ZXN0 ICJ4JGVuYWJsZV9weWdvYmplY3QiID0gInh5ZXMiOyB0aGVuCi0rICAgIFBLR19DSEVDS19FWElT VFMoW3B5Z29iamVjdC0zLjAgPj0gJFBZR09CSkVDVF9SRVFVSVJFRF0sCi0rICAgICAgICAgICAg ICAgICAgICAgW2VuYWJsZV9weWdvYmplY3Q9eWVzXSwgW2VuYWJsZV9weWdvYmplY3Q9bm9dKQot K2ZpCi0gaWYgdGVzdCAieCRlbmFibGVfcHlnb2JqZWN0IiA9ICJ4eWVzIjsgdGhlbgotICAgICBQ S0dfQ0hFQ0tfTU9EVUxFUyhQWVRIT04sIFtweWdvYmplY3QtMy4wID49ICRQWUdPQkpFQ1RfUkVR VUlSRURdKQotIAotLS0gCi0yLjQ1LjAKLQotRnJvbSA4ZDMxNGQ3NDlmNWFiODNlYjZkZTE4OWZh YmExODQxMDhmYmNjZDYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0 IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogU2F0LCA4IEp1biAyMDI0IDExOjQ2 OjU3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBzcmMvaWJ1c2NvbXBvc2V0YWJsZTogRml4 IFVGREQ1IGtleSBmb3IgY29tcG9zZSBzZXEgd2l0aCBmcihiZXBvX2Fmbm9yKQotCi1BbHRHci10 IHdpdGggZnIoYmVwb19hZm5vcikga2V5bWFwIGhhcyBubyBrZXlzeW0gbmFtZSBidXQgY2FuIGJl Ci11c2VkIGluIHRoZSBjb21wb3NlIGtleSBzZXF1ZW5jZXMuCi1Nb3N0IFVuaWNvZGUgZm9ybWF0 IChVWFhYWCkgc2hvdWxkIGJlIHN1cHBvcnRlZCBpbiB0aGUgY29tcG9zZSBzZXF1ZW5jZXMKLWlu IGNhc2UgdGhleSBhcmUgbm90IHVzZWQgaW4gWEtCIG9wdGlvbnMgZXhjZXB0IGZvciAnUG9pbnRl cl8qJyBYS0Igb3B0aW9uCi1uYW1lcy4KLUFsc28gcmVmYWN0b3IgY29tcG9zZSBzZXF1ZW5jZXMg d2l0aCBlYWNoIHJhbmdlIGJleW9uZCBVMTAwMDAuCi1BbHNvIHVwZGF0ZSBpYnVzX2tleXZhbF9u YW1lKCkgY2FuIG91dHB1dCBrZXlzeW0gbmFtZXMgYmV5b25kIFUxMDAwMC4KLQotQlVHPWh0dHBz Oi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzI2NDYKLUZpeGVzOiBodHRwczovL2dpdGh1 Yi5jb20vaWJ1cy9pYnVzL2NvbW1pdC9hZDg4M2RjCi0tLS0KLSBzcmMvaWJ1c2NvbXBvc2V0YWJs ZS5jICAgICAgICB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCi0gc3Jj L2lidXNlbmdpbmVzaW1wbGVwcml2YXRlLmggfCAgMSArCi0gc3JjL2lidXNrZXluYW1lcy5jICAg ICAgICAgICAgfCAgNyArLS0tLS0tCi0gc3JjL3Rlc3RzL2lidXMtY29tcG9zZS5iYXNpYyAgfCAx MCArKysrKysrKysrCi0gNCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMgYi9zcmMvaWJ1 c2NvbXBvc2V0YWJsZS5jCi1pbmRleCA5ZDQzNzdhOS4uMmM5N2ZkM2IgMTAwNjQ0Ci0tLS0gYS9z cmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi0rKysgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi1AQCAt MSw3ICsxLDcgQEAKLSAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10 YWJzLW1vZGU6IG5pbDsgLSotICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5 cmlnaHQgKEMpIDIwMTMtMjAxNCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4K LS0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMyBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdh cmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyNCBUYWthbyBGdWppd2Fy YSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAt MjIyLDYgKzIyMiwxMiBAQCBwYXJzZV9jb21wb3NlX3NlcXVlbmNlIChJQnVzQ29tcG9zZURhdGEg KmNvbXBvc2VfZGF0YSwKLSAgICAgICAgICAgICBjb21wb3NlX2RhdGEtPnNlcXVlbmNlW25dID0g Y29kZXBvaW50OwotICAgICAgICAgfQotIAotKyAgICAgICAgaWYgKGNvZGVwb2ludCA+PSAweDEw MDAwKSB7Ci0rICAgICAgICAgICAgaWYgKCFpYnVzX2NvbXBvc2Vfa2V5X2ZsYWcgKDB4ZmZmZiAm IGNvZGVwb2ludCkpIHsKLSsgICAgICAgICAgICAgICAgZ193YXJuaW5nICgiVGhlIGtleXN5bSAl cyA+IDB4ZmZmZiBpcyBub3Qgc3VwcG9ydGVkOiAlcyIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWF0Y2gsIGxpbmUpOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSAgICAgICAg IGlmIChjb2RlcG9pbnQgPT0gSUJVU19LRVlfVm9pZFN5bWJvbCkgewotICAgICAgICAgICAgIGdf d2FybmluZyAoIkNvdWxkIG5vdCBnZXQgY29kZSBwb2ludCBvZiBrZXlzeW0gJXM6ICVzIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgIG1hdGNoLCBsaW5lKTsKLUBAIC02MDMsNiArNjA5LDcgQEAg aWJ1c19jb21wb3NlX2xpc3RfY2hlY2tfZHVwbGljYXRlZCAoR0xpc3QgICpjb21wb3NlX2xpc3Qs Ci0gCi0gLyoKLSAgKiBBY3R1YWwgdHlwZWQga2V5c3ltcyBoYXZlIGEgZmxhZyBhZ2FpbnN0IHRo ZSBkZWZpbml0aW9uLgotKyAqIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy94b3JnL3By b3RvL3hvcmdwcm90by8tL2Jsb2IvbWFzdGVyL2luY2x1ZGUvWDExL2tleXN5bWRlZi5oP3JlZl90 eXBlPWhlYWRzI0w4MgotICAqIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy94b3JnL2xp Yi9saWJ4MTEvLS9ibG9iL21hc3Rlci9ubHMvZW5fVVMuVVRGLTgvQ29tcG9zZS5wcmUjTDQ1NTkK LSAgKi8KLSBndWludAotQEAgLTYxMSwxMSArNjE4LDI3IEBAIGlidXNfY29tcG9zZV9rZXlfZmxh ZyAoZ3VpbnQga2V5KQotICAgICBjb25zdCBjaGFyICpuYW1lOwotICAgICBpZiAoa2V5IDw9IDB4 ZmYpCi0gICAgICAgICByZXR1cm4gMDsKLSsgICAgc3dpdGNoIChrZXkpIHsKLSsgICAgLyogPEFv Z29uZWs+IGlzIG5vdCB1c2VkIGluIFVURi04IGNvbXBvc2Ugc2VxdWVuY2VzIGJ1dCA8b2hvcm4+ IGluIEVOCi0rICAgICAqIGNvbXBvc2UgZmlsZSBhbmQgdm4ga2V5bWFwIGlzIGFzc3VtZWQgaW5z dGVhZC4KLSsgICAgICovCi0rICAgIGNhc2UgMHgxYTE6Ci0rICAgIC8qIDxaYWJvdmVkb3Q+IGlz IG5vdCB1c2VkIGluIFVURi04IGNvbXBvc2Ugc2VxdWVuY2VzIGJ1dCA8VWhvcm4+IGluIEVOCi0r ICAgICAqIGNvbXBvc2UgZmlsZSBhbmQgdm4ga2V5bWFwIHMgYXNzdW1lZCBpbnN0ZWFkLgotKyAg ICAgKi8KLSsgICAgY2FzZSAweDFhZjoKLSsgICAgLyogPGNhcm9uPiBpcyBub3QgdXNlZCBpbiBV VEYtOCBjb21wb3NlIHNlcXVlbmNlcyBidXQgPEVaSD4gaW4gRU4gY29tcG9zZQotKyAgICAgKiBm aWxlIGFuZCBmcihub2RlYWRrZXlzKSBrZXltYXAgaXMgYXNzdW1lZCBpbnN0ZWFkLgotKyAgICAg Ki8KLSsgICAgY2FzZSAweDFiNzoKLSsgICAgICAgIHJldHVybiAweDEwMDAwMDA7Ci0rICAgIGRl ZmF1bHQ6OwotKyAgICB9Ci0gICAgIG5hbWUgPSBpYnVzX2tleXZhbF9uYW1lIChrZXkpOwotICAg ICAvKiBJZiBuYW1lIGlzIG51bGwsIHRoZSBrZXkgc2VxdWVuY2UgaXMgZXhwcmVzc2VkIGFzICI8 VXh4eHg+IiBmb3JtYXQgaW4KLSAgICAgICogdGhlIENvbXBvc2UgZmlsZSBhbmQgdGhlIHR5cGVk IGtleXN5bSBoYXMgdGhlIGZsYWcuCi0gICAgICAqLwotLSAgICBpZiAoIW5hbWUpCi0rICAgIGlm ICghbmFtZSB8fCBnX3N0cl9oYXNfcHJlZml4IChuYW1lLCAiMHgiKSkKLSAgICAgICAgIHJldHVy biAweDEwMDAwMDA7Ci0gICAgIC8qICI8UG9pbnRlcl9FbmFibGVLZXlzPiIgaXMgbm90IGRlc2Ny aWJlZCBpbiB0aGUgQ29tcG9zZSBmaWxlIGJ1dCA8VUZFRjk+Ci0gICAgICAqIGluIHRoZSBmaWxl LgotQEAgLTY0OCw4ICs2NzEsOCBAQCBpYnVzX2NvbXBvc2VfZGF0YV9jb21wYXJlIChncG9pbnRl ciBhLAotICAgICAgICAgZ3VuaWNoYXIgY29kZV9hID0gY29tcG9zZV9kYXRhX2EtPnNlcXVlbmNl W2ldOwotICAgICAgICAgZ3VuaWNoYXIgY29kZV9iID0gY29tcG9zZV9kYXRhX2ItPnNlcXVlbmNl W2ldOwotIAotLSAgICAgICAgY29kZV9hICs9IGlidXNfY29tcG9zZV9rZXlfZmxhZyAoY29kZV9h KTsKLS0gICAgICAgIGNvZGVfYiArPSBpYnVzX2NvbXBvc2Vfa2V5X2ZsYWcgKGNvZGVfYik7Ci0r ICAgICAgICBjb2RlX2EgJj0gMHhmZmZmOwotKyAgICAgICAgY29kZV9iICY9IDB4ZmZmZjsKLSAg ICAgICAgIGlmIChjb2RlX2EgIT0gY29kZV9iKQotICAgICAgICAgICAgIHJldHVybiBjb2RlX2Eg LSBjb2RlX2I7Ci0gICAgICAgICBpZiAoY29kZV9hID09IDAgJiYgY29kZV9iID09IDApCi1AQCAt MTU4MSw5ICsxNjA0LDkgQEAgY29tcGFyZV9zZXEgKGNvbnN0IHZvaWQgKmtleSwgY29uc3Qgdm9p ZCAqdmFsdWUpCi0gICAgICAgICBndWludCBzYXZlZF9rZXkgPSAoZ3VpbnQpc2VxW2ldOwotICAg ICAgICAgZ3VpbnQgZmxhZyA9IGlidXNfY29tcG9zZV9rZXlfZmxhZyAoc2F2ZWRfa2V5KTsKLSAg ICAgICAgIGlmICh0eXBlZF9rZXkgPCAoc2F2ZWRfa2V5ICsgZmxhZykpCi0tICAgICAgICAgICAg cmV0dXJuIC0xOwotKyAgICAgICAgICAgIHJldHVybiAoMHhmZmZmICYgdHlwZWRfa2V5KSAtIHNh dmVkX2tleTsKLSAgICAgICAgIGVsc2UgaWYgKHR5cGVkX2tleSA+IChzYXZlZF9rZXkgKyBmbGFn KSkKLS0gICAgICAgICAgICByZXR1cm4gMTsKLSsgICAgICAgICAgICByZXR1cm4gKDB4ZmZmZiAm IHR5cGVkX2tleSkgLSBzYXZlZF9rZXk7Ci0gCi0gICAgICAgICBpKys7Ci0gICAgIH0KLWRpZmYg LS1naXQgYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZXByaXZhdGUuaCBiL3NyYy9pYnVzZW5naW5lc2lt cGxlcHJpdmF0ZS5oCi1pbmRleCBmZDYwMDg1My4uYWU0MjM0MmIgMTAwNjQ0Ci0tLS0gYS9zcmMv aWJ1c2VuZ2luZXNpbXBsZXByaXZhdGUuaAotKysrIGIvc3JjL2lidXNlbmdpbmVzaW1wbGVwcml2 YXRlLmgKLUBAIC00Miw2ICs0Miw3IEBAIHN0cnVjdCBfSUJ1c0NvbXBvc2VUYWJsZVByaXZhdGUK LSB9OwotIAotIAotK2d1aW50ICAgIGlidXNfY29tcG9zZV9rZXlfZmxhZyAgICAgIChndWludCAg ICAgICAgICAgICAgICAgICAgICAga2V5KTsKLSBnYm9vbGVhbiBpYnVzX2NoZWNrX2FsZ29yaXRo bWljYWxseSAoY29uc3QgZ3VpbnQgICAgICAgICAgICAgICAgKmNvbXBvc2VfYnVmZmVyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAg ICAgICAgbl9jb21wb3NlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dW5pY2hhciAgICAgICAgICAgICAgICAgICAqb3V0cHV0KTsKLWRpZmYgLS1naXQgYS9zcmMvaWJ1 c2tleW5hbWVzLmMgYi9zcmMvaWJ1c2tleW5hbWVzLmMKLWluZGV4IDU0NGM2YWRlLi4yOTI1YmRl YyAxMDA2NDQKLS0tLSBhL3NyYy9pYnVza2V5bmFtZXMuYwotKysrIGIvc3JjL2lidXNrZXluYW1l cy5jCi1AQCAtNDcsMTIgKzQ3LDcgQEAgaWJ1c19rZXl2YWxfbmFtZSAoZ3VpbnQga2V5dmFsKQot ICAgc3RhdGljIGdjaGFyIGJ1ZlsxMDBdOwotICAgZ2RrX2tleSAqZm91bmQ7Ci0gCi0tICAvKiBD aGVjayBmb3IgZGlyZWN0bHkgZW5jb2RlZCAyNC1iaXQgVUNTIGNoYXJhY3RlcnM6ICovCi0tICBp ZiAoKGtleXZhbCAmIDB4ZmYwMDAwMDApID09IDB4MDEwMDAwMDApCi0tICAgIHsKLS0gICAgICBn X3NwcmludGYgKGJ1ZiwgIlUrJS4wNFgiLCAoa2V5dmFsICYgMHgwMGZmZmZmZikpOwotLSAgICAg IHJldHVybiBidWY7Ci0tICAgIH0KLSsgIC8qIDxvaG9ybj4gd2l0aCAweDAxMDAwMDAwIGlzIHN1 cHBvcnRlZCBpbiBnZGtfa2V5c19ieV9rZXl2YWwgKi8KLSAKLSAgIGZvdW5kID0gYnNlYXJjaCAo JmtleXZhbCwgZ2RrX2tleXNfYnlfa2V5dmFsLAotICAgICAgICAgICAgICAgICAgICBJQlVTX05V TV9LRVlTLCBzaXplb2YgKGdka19rZXkpLAotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWNv bXBvc2UuYmFzaWMgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmJhc2ljCi1pbmRleCAwNzM1ZDRl YS4uNGU4Y2I5YWIgMTAwNjQ0Ci0tLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmJhc2ljCi0r KysgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmJhc2ljCi1AQCAtOCw2ICs4LDEzIEBACi0gPGRl YWRfbWFjcm9uPiA8VTAyMjc+ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAix58iICAgVTAx REUKLSA8TXVsdGlfa2V5PiA8bWFjcm9uPiA8VTAyMjc+ICAgICAgICAgICAgICAgICAgICA6ICLH nyIgICBVMDFERQotIDxNdWx0aV9rZXk+IDx1bmRlcnNjb3JlPiA8VTAyMjc+ICAgICAgICAgICAg ICAgIDogIsefIiAgIFUwMURFCi0rIyBBbHRHci10LCBTaGlmdC1hc3RlcmlzayB3aXRoIGZyKGJl cG9fYWZub3IpIGtleW1hcCBvdXRwdXRzCi0rIyA8VUZERDU+IDwwPgotKyMgU3VwcG9ydCBVbmlj b2RlIGtleXN5bXMgaW4gY2FzZSB0aGV5IGFyZSBub3QgdXNlZCBpbiBYS0Igb3B0aW9ucyBleGNl cHQKLSsjIGZvciAnUG9pbnRlcl8qJyBYS0Igb3B0aW9uIG5hbWVzLgotKzxVRkRENT4gPDA+IDog IuKBsCIgVTIwNzAKLSsjCi0rIyMjIE11bHRpYnl0ZSBjaGFycyB0ZXN0cwotICMgS2htZXIgZGln cmFwaHMKLSAjIFRoaXMgY2FzZSBzd2FwcyBVMTdmZSBhbmQgVTE3ZmYgaW4gZW4tVVMKLSA8VTE3 ZmU+IDogIuGetuGfhiIKLUBAIC0yMiwzICsyOSw2IEBACi0gIyBUaGlzIGNhc2Ugc3dhcHMgY19o IGFuZCBDX2ggaW4gZW4tVVMKLSA8Y19oPiAgIDogIkPigJloIgotIDxDX2g+ICAgOiAiY+KAmWgi Ci0rIyBTb21lIDxVMTAwMDA+IGFyZSBzdXBwb3J0ZWQgZm9yIG11c2ljYWwgY29tcG9zZXIgaW4g ZW4tVVMKLSs8TXVsdGlfa2V5PiA8VTFEMTU3PiA8VTFEMTY1PiAgICAgOiAi8J2HkiIgICBVMUQx RDIgIyBNVVNJQ0FMIFNZTUJPTCBTUVVBUkUgQgotKwotLS0gCi0yLjQ1LjAKLQotRnJvbSA5MDlk ZmY0ZmQ1MGQ4NjQ5MmZiN2Y0MmEwOWJiZDA0NjI1ZmE2MGY0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogV2lzbWlsbCA8ZGV2QHdpc21pbGwuZXU+Ci1EYXRlOiBTYXQsIDggSnVuIDIw MjQgMTE6NDc6MDEgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIHNyYy90ZXN0cy9pYnVzLWNv bXBvc2U6IEFkZCBzb21lIFVuaWNvZGUgYm91bmRhcnkgdGVzdHMKLQotQlVHPWh0dHBzOi8vZ2l0 aHViLmNvbS9pYnVzL2lidXMvcHVsbC8yNjQ5Ci0tLS0KLSBzcmMvdGVzdHMvaWJ1cy1jb21wb3Nl LmJhc2ljIHwgOCArKysrKysrLQotIHNyYy90ZXN0cy9pYnVzLWNvbXBvc2UuZW1vamkgfCA0ICsr KysKLSAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQot ZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYmFzaWMgYi9zcmMvdGVzdHMvaWJ1 cy1jb21wb3NlLmJhc2ljCi1pbmRleCA0ZThjYjlhYi4uZDkwNGRiYjQgMTAwNjQ0Ci0tLS0gYS9z cmMvdGVzdHMvaWJ1cy1jb21wb3NlLmJhc2ljCi0rKysgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3Nl LmJhc2ljCi1AQCAtMyw3ICszLDkgQEAKLSA8TXVsdGlfa2V5PiA8cXVvdGVkYmw+IDxDeXJpbGxp Y196aGU+ICAgOiAi05wiICAgVTA0REMKLSA8TXVsdGlfa2V5PiA8cXVvdGVkYmw+IDxDeXJpbGxp Y19aSEU+ICAgOiAi050iICAgVTA0REQKLSAjCi0tIyBVbmljb2RlIHRlc3RzIG9mIFV4eHh4Ci0r IyBBIFVuaWNvZGUga2V5c3ltIDxVeHh4eD4gaGFzIGEgcmVhbCB2YWx1ZSAweDAxMDAwMDAwICsg eHh4eC4KLSsjIGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy94b3JnL3Byb3RvL3hvcmdw cm90by8tL2Jsb2IvbWFzdGVyL2luY2x1ZGUvWDExL2tleXN5bWRlZi5oP3JlZl90eXBlPWhlYWRz I0w4MgotKyMKLSAjIGVuLVVTIGlzICLHoSIgVTAxRTEgYnV0IHRoaXMgY2FzZSBpcyAix58iIFUw MURFCi0gPGRlYWRfbWFjcm9uPiA8VTAyMjc+ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAi x58iICAgVTAxREUKLSA8TXVsdGlfa2V5PiA8bWFjcm9uPiA8VTAyMjc+ICAgICAgICAgICAgICAg ICAgICA6ICLHnyIgICBVMDFERQotQEAgLTEzLDYgKzE1LDEwIEBACi0gIyBTdXBwb3J0IFVuaWNv ZGUga2V5c3ltcyBpbiBjYXNlIHRoZXkgYXJlIG5vdCB1c2VkIGluIFhLQiBvcHRpb25zIGV4Y2Vw dAotICMgZm9yICdQb2ludGVyXyonIFhLQiBvcHRpb24gbmFtZXMuCi0gPFVGREQ1PiA8MD4gOiAi 4oGwIiBVMjA3MAotKyMgb2hvcm4sIGdyYXZlIHdpdGggdm4ga2V5bWFwCi0rIyBJQnVzIGRvZXMg bm90IGRpc3Rpbmdpc2ggb2hvcm4gYW5kIEFvZ29uZWsKLSs8b2hvcm4+IDxncmF2ZT4gOiAi4buc IiBVMUVEQwotKzxVMDFBMT4gPGdyYXZlPiA6ICLhu5wiIFUxRURDCi0gIwotICMjIyBNdWx0aWJ5 dGUgY2hhcnMgdGVzdHMKLSAjIEtobWVyIGRpZ3JhcGhzCi1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3Rz L2lidXMtY29tcG9zZS5lbW9qaSBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuZW1vamkKLWluZGV4 IDdmYmY4MmNmLi5mZGQ1NjBmOCAxMDA2NDQKLS0tLSBhL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2Uu ZW1vamkKLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuZW1vamkKLUBAIC0xLDMgKzEsNCBA QAotKyMgRW1vamkgdGVzdHMKLSA8TXVsdGlfa2V5PiA8TXVsdGlfa2V5PiA8bD4gPGU+IDxvPiAg ICAgICAgICAgICA6ICLimYwiICBVMjY0QyAgICMgTEVPCi0gPE11bHRpX2tleT4gPE11bHRpX2tl eT4gPHY+IDxpPiA8cj4gPGc+IDxvPiAgICAgOiAi4pmNIiAgVTI2NEQgICAjIFZJUkdPCi0gPE11 bHRpX2tleT4gPE11bHRpX2tleT4gPEk+IDxuPiA8dD4gICAgICAgICAgICAgOiAi4oirIgotQEAg LTksMyArMTAsNiBAQAotIDxNdWx0aV9rZXk+IDxNdWx0aV9rZXk+IDxvPiA8ST4gPG4+IDx0PiAg ICAgICAgIDogIuKIriIKLSA8TXVsdGlfa2V5PiA8TXVsdGlfa2V5PiA8bz4gPEk+IDxJPiA8bj4g PHQ+ICAgICA6ICLiiK8iCi0gPE11bHRpX2tleT4gPE11bHRpX2tleT4gPG8+IDxJPiA8ST4gPEk+ IDxuPiA8dD4gOiAi4oiwIgotKyMgVW5pY29kZSBib3VuZGFyeSB0ZXN0cwotKzxVMjgwMD4gPDA+ IDogImEiCi0rPGJyYWlsbGVfYmxhbms+IDwwPiA6ICJhIgotLS0gCi0yLjQ1LjAKLQo=