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 ibus-HEAD.patch Date: Sun, 31 May 2026 02:08:13 GMT Message-ID: <178019329395.1.9891098887797659107.rpms-ibus-b8d456542f2c@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: b8d456542f2c8be7f89a9d7d363e4b650c0a0fd7 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBiOGQ0NTY1NDJmMmM4YmU3Zjg5YTlkN2QzNjNlNGI2NTBjMGEw ZmQ3CkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIzLTA3LTI5VDAwOjI5OjUxKzA5OjAwClN0YXRzICA6ICswLy00ODIzIGluIDEgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9iOGQ0 NTY1NDJmMmM4YmU3Zjg5YTlkN2QzNjNlNGI2NTBjMGEwZmQ3P2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpEZWxldGUgdXBzdHJlYW1lZCBpYnVzLUhFQUQucGF0Y2gKCi0tLQpkaWZmIC0tZ2l0IGEvaWJ1 cy1IRUFELnBhdGNoIGIvaWJ1cy1IRUFELnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA4OTUzOTU0Li4wMDAwMDAwCi0tLSBhL2lidXMtSEVBRC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDQ4MjMgKzAsMCBAQAotRnJvbSBhMTQwOTI0ZTQzNzM0NmViYjdjZDMwYzZlNGQzMTZh YjVkNDQ3ODcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2ltb24gRGV6aWVsIDxz aW1vbkBzZGV6aWVsLmluZm8+Ci1EYXRlOiBXZWQsIDIyIEZlYiAyMDIzIDE5OjA1OjE3ICswOTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIHNyYy9zZXJ2aWNlczogdXNlIGEgc2hlbGwgZXhlYyBpbiBzeXN0 ZW1kIHNlcnZpY2UgZmlsZXMKLQotZXhlYyBzdWItY29tbWFuZCBhdm9pZHMga2VlcGluZyB0aGUg cGFyZW50IHNoZWxsIGFyb3VuZC4gUmVmZXIgc2goMSkKLUZlZG9yYSBzaCBpcyBiYXNoLgotCi1C VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI0NTMKLS0tLQotIGJ1cy9zZXJ2 aWNlcy9vcmcuZnJlZWRlc2t0b3AuSUJ1cy5zZXNzaW9uLkdOT01FLnNlcnZpY2UuaW4gICB8IDIg Ky0KLSBidXMvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLklCdXMuc2Vzc2lvbi5nZW5lcmljLnNl cnZpY2UuaW4gfCAzICstLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYnVzL3NlcnZpY2VzL29yZy5mcmVlZGVza3RvcC5J QnVzLnNlc3Npb24uR05PTUUuc2VydmljZS5pbiBiL2J1cy9zZXJ2aWNlcy9vcmcuZnJlZWRlc2t0 b3AuSUJ1cy5zZXNzaW9uLkdOT01FLnNlcnZpY2UuaW4KLWluZGV4IDdmNzE4ZTNjLi44NThjZjEw ZCAxMDA2NDQKLS0tLSBhL2J1cy9zZXJ2aWNlcy9vcmcuZnJlZWRlc2t0b3AuSUJ1cy5zZXNzaW9u LkdOT01FLnNlcnZpY2UuaW4KLSsrKyBiL2J1cy9zZXJ2aWNlcy9vcmcuZnJlZWRlc2t0b3AuSUJ1 cy5zZXNzaW9uLkdOT01FLnNlcnZpY2UuaW4KLUBAIC0xOCw3ICsxOCw3IEBAIENvbmZsaWN0cz1n bm9tZS1zZXNzaW9uQGdub21lLWxvZ2luLnRhcmdldAotIFtTZXJ2aWNlXQotIFR5cGU9ZGJ1cwot ICMgT25seSBwdWxsIC0teGltIGluIFgxMSBzZXNzaW9uLCBpdCBpcyBkb25lIHZpYSBYd2F5bGFu ZC1zZXNzaW9uLmQgb24gV2F5bGFuZAotLUV4ZWNTdGFydD1zaCAtYyAnQGJpbmRpckAvaWJ1cy1k YWVtb24gLS1wYW5lbCBkaXNhYmxlICQoWyAiJFhER19TRVNTSU9OX1RZUEUiID0gIngxMSIgXSAm JiBlY2hvICItLXhpbSIpJwotK0V4ZWNTdGFydD1zaCAtYyAnZXhlYyBAYmluZGlyQC9pYnVzLWRh ZW1vbiAtLXBhbmVsIGRpc2FibGUgJChbICIkWERHX1NFU1NJT05fVFlQRSIgPSAieDExIiBdICYm IGVjaG8gIi0teGltIiknCi0gUmVzdGFydD1vbi1hYm5vcm1hbAotIEJ1c05hbWU9b3JnLmZyZWVk ZXNrdG9wLklCdXMKLSBUaW1lb3V0U3RvcFNlYz01Ci1kaWZmIC0tZ2l0IGEvYnVzL3NlcnZpY2Vz L29yZy5mcmVlZGVza3RvcC5JQnVzLnNlc3Npb24uZ2VuZXJpYy5zZXJ2aWNlLmluIGIvYnVzL3Nl cnZpY2VzL29yZy5mcmVlZGVza3RvcC5JQnVzLnNlc3Npb24uZ2VuZXJpYy5zZXJ2aWNlLmluCi1p bmRleCA5ZDQ5MzE1OS4uZTdiN2NlNGYgMTAwNjQ0Ci0tLS0gYS9idXMvc2VydmljZXMvb3JnLmZy ZWVkZXNrdG9wLklCdXMuc2Vzc2lvbi5nZW5lcmljLnNlcnZpY2UuaW4KLSsrKyBiL2J1cy9zZXJ2 aWNlcy9vcmcuZnJlZWRlc2t0b3AuSUJ1cy5zZXNzaW9uLmdlbmVyaWMuc2VydmljZS5pbgotQEAg LTcsOCArNyw3IEBAIENvbmZsaWN0cz1nbm9tZS1zZXNzaW9uLWluaXRpYWxpemVkLnRhcmdldAot IAotIFtTZXJ2aWNlXQotIFR5cGU9ZGJ1cwotLSMgT25seSBwdWxsIC0teGltIGluIFgxMSBzZXNz aW9uLCBpdCBpcyBkb25lIHZpYSBYd2F5bGFuZC1zZXNzaW9uLmQgb24gV2F5bGFuZAotLUV4ZWNT dGFydD1zaCAtYyAnQGJpbmRpckAvaWJ1cy1kYWVtb24gJElCVVNfREFFTU9OX0FSR1MnCi0rRXhl Y1N0YXJ0PXNoIC1jICdleGVjIEBiaW5kaXJAL2lidXMtZGFlbW9uICRJQlVTX0RBRU1PTl9BUkdT JwotIFJlc3RhcnQ9b24tYWJub3JtYWwKLSBCdXNOYW1lPW9yZy5mcmVlZGVza3RvcC5JQnVzCi0g VGltZW91dFN0b3BTZWM9NQotLS0gCi0yLjM5LjIKLQotRnJvbSA3ZGExOGQwOGNlODU0MDVlNDFi YTdiZjM2MzY2MTI5MmJjOTdjYTM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVq aXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCAyMiBGZWIgMjAy MyAyMzo1MzozNSArMDkwMAotU3ViamVjdDogW1BBVENIXSBzcmM6IENhbGwgSUJVU19UWVBFX0VN T0pJX0RBVEEgaW4gaWJ1c19pbml0KCkKLQotU2VlbXMgdGhlIGV2YWx1YXRpb24gb2YgSUJVU19F TU9KSV9EQVRBKCkgZGVwZW5kcyBvbiB0aGUgY29tcGlsZXIKLW9wdGltaXphdGlvbi4KLQotQlVH PWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzI0NzYKLS0tLQotIHNyYy9pYnVz c2hhcmUuYyB8IDUgKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3NoYXJlLmMgYi9zcmMvaWJ1c3NoYXJl LmMKLWluZGV4IDM0MDE2OGM4Li5iYjU5ZjNjYiAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzc2hhcmUu YwotKysrIGIvc3JjL2lidXNzaGFyZS5jCi1AQCAtMzA4LDEyICszMDgsMTUgQEAgaWJ1c19pbml0 ICh2b2lkKQotICAgICBJQlVTX1RZUEVfVEVYVDsKLSAgICAgSUJVU19UWVBFX0FUVFJJQlVURTsK LSAgICAgSUJVU19UWVBFX0FUVFJfTElTVDsKLS0gICAgSUJVU19UWVBFX0xPT0tVUF9UQUJMRTsK LSAgICAgSUJVU19UWVBFX0NPTVBPTkVOVDsKLSsgICAgSUJVU19UWVBFX0VNT0pJX0RBVEE7Ci0g ICAgIElCVVNfVFlQRV9FTkdJTkVfREVTQzsKLSsgICAgSUJVU19UWVBFX0xPT0tVUF9UQUJMRTsK LSAgICAgSUJVU19UWVBFX09CU0VSVkVEX1BBVEg7Ci0gICAgIElCVVNfVFlQRV9SRUdJU1RSWTsK LSAgICAgSUJVU19UWVBFX1hfRVZFTlQ7Ci0rICAgIElCVVNfVFlQRV9VTklDT0RFX0JMT0NLOwot KyAgICBJQlVTX1RZUEVfVU5JQ09ERV9EQVRBOwotICAgICBfaWJ1c19yZWdpc3Rlcl9yZXNvdXJj ZSAoKTsKLSB9Ci0gCi0tLSAKLTIuMzguMQotCi1Gcm9tIGNlNWUyYmI0M2VhNGMyZjU3ODBmNGEz YmZkNzUwOWY4MTJiNjBhZmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBJenVtaSBU c3V0c3VpIDx0c3V0c3VpQGNlcmVzLmR0aS5uZS5qcD4KLURhdGU6IFR1ZSwgMjggRmViIDIwMjMg MTg6MDU6MjkgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjOiBEZWZpbmUgWDExX0xPQ0FMRURB VEFESVIgZm9yIEJTRCBDb21wb3NlIGRhdGEKLQotRnJlZUJTRCBhbmQgTmV0QlNEIGhhdmUgWDEx IGxvY2FsZSBDb21wb3NlIGRhdGEgZGlyZWN0b3JpZXMgaW4KLSR7WDExX1BSRUZJWH0vbGliL1gx MS9sb2NhbGUgaW5zdGVhZCBvZiAke1gxMV9QUkVGSVh9L3NoYXJlL1gxMS9sb2NhbGU6Ci1odHRw czovL2dpdGh1Yi5jb20vZnJlZWRlc2t0b3AveG9yZy1saWItbGliWDExL2Jsb2IvMjBhM2Y5OS9j b25maWd1cmUuYWMjTDMzNi1MMzQwCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVz L3B1bGwvMjQ3OAotLS0tCi0gY29uZmlndXJlLmFjICAgICAgICAgICAgIHwgOCArKysrKysrKwot IHNyYy9NYWtlZmlsZS5hbSAgICAgICAgICB8IDIgKy0KLSBzcmMvZ2VuY29tcG9zZXRhYmxlLmMg ICAgfCA2ICsrLS0tLQotIHNyYy9pYnVzY29tcG9zZXRhYmxlLmMgICB8IDUgKystLS0KLSBzcmMv aWJ1c2VuZ2luZXNpbXBsZS5jICAgfCA1ICsrLS0tCi0gc3JjL3Rlc3RzL01ha2VmaWxlLmFtICAg IHwgMiArLQotIHNyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYyB8IDMgKy0tCi0gNyBmaWxlcyBjaGFu Z2VkLCAxNyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2Nv bmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggZjQ0NmFlOTIuLmVjZTFkOWVlIDEwMDY0 NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBAIC0zNDksNiArMzQ5 LDE0IEBAIGVsc2UKLSBmaQotIEFDX1NVQlNUKFgxMV9QUkVGSVgpCi0gCi0rIyBDaGVjayBsb2Nh bGUgZGlyIGZvciBDb21wb3NlIGZpbGVzLgotK0FDX0NIRUNLX0ZJTEUoJFgxMV9QUkVGSVgvc2hh cmUvWDExL2xvY2FsZS9sb2NhbGUuZGlyLAotKyAgICAgICAgICAgICAgWDExX0xPQ0FMRURBVEFE SVI9IiRYMTFfUFJFRklYL3NoYXJlL1gxMS9sb2NhbGUiLAotKyAgICAgICAgICAgICAgW0FDX0NI RUNLX0ZJTEUoJFgxMV9QUkVGSVgvbGliL1gxMS9sb2NhbGUvbG9jYWxlLmRpciwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFgxMV9MT0NBTEVEQVRBRElSPSIkWDExX1BSRUZJWC9saWIv WDExL2xvY2FsZSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYMTFfTE9DQUxFREFU QURJUj0iJChkYXRhZGlyKS9YMTEvbG9jYWxlIildKQotK0FDX1NVQlNUKFgxMV9MT0NBTEVEQVRB RElSKQotKwotIGlmIHRlc3QgeCIkZW5hYmxlX3dheWxhbmQiID0geCJ5ZXMiOyB0aGVuCi0gICAg ICMgQ2hlY2sgZm9yIHdheWxhbmQKLSAgICAgUEtHX0NIRUNLX01PRFVMRVMoV0FZTEFORCwgWwot ZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQotaW5kZXggNDI2 Mzc2ZGQuLmMyZThkYWE2IDEwMDY0NAotLS0tIGEvc3JjL01ha2VmaWxlLmFtCi0rKysgYi9zcmMv TWFrZWZpbGUuYW0KLUBAIC01NCw3ICs1NCw3IEBAIEFNX0NQUEZMQUdTID0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAtRElCVVNfRElTQUJMRV9ERVBS RUNBVElPTl9XQVJOSU5HUyAgICAgICAgICAgICAgICAgXAotICAgICAtRElCVVNfQ09NUElMQVRJ T04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAtRElTT0NPREVTX1BS RUZJWD1cIiQoSVNPQ09ERVNfUFJFRklYKVwiICAgICAgICAgICAgXAotLSAgICAtRFgxMV9EQVRB X1BSRUZJWD1cIiQoWDExX1BSRUZJWClcIiAgICAgICAgICAgICAgICAgXAotKyAgICAtRFgxMV9M T0NBTEVEQVRBRElSPVwiJChYMTFfTE9DQUxFREFUQURJUilcIiAgICAgICAgXAotICAgICAkKE5V TEwpCi0gCi0gIyBpYnVzIGxpYnJhcnkKLWRpZmYgLS1naXQgYS9zcmMvZ2VuY29tcG9zZXRhYmxl LmMgYi9zcmMvZ2VuY29tcG9zZXRhYmxlLmMKLWluZGV4IDNmZTZmZjg2Li42ZTUyZDZhNiAxMDA2 NDQKLS0tLSBhL3NyYy9nZW5jb21wb3NldGFibGUuYwotKysrIGIvc3JjL2dlbmNvbXBvc2V0YWJs ZS5jCi1AQCAtMjgsOCArMjgsNiBAQAotICNpbmNsdWRlICJpYnVzY29tcG9zZXRhYmxlLmgiCi0g I2luY2x1ZGUgImlidXNlbmdpbmVzaW1wbGVwcml2YXRlLmgiCi0gCi0tI2RlZmluZSBYMTFfREFU QURJUiBYMTFfREFUQV9QUkVGSVggIi9zaGFyZS9YMTEvbG9jYWxlIgotLQotIAotIHN0YXRpYyB2 b2lkCi0gc2F2ZV9jb21wb3NlX3RhYmxlX2VuZGlhbm5lc3MgKElCdXNDb21wb3NlVGFibGVFeCAq Y29tcG9zZV90YWJsZSwKLUBAIC04NCw3ICs4Miw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICph cmd2W10pCi0gICAgIGlmICghcGF0aCB8fCAhZ19maWxlX3Rlc3QgKHBhdGgsIEdfRklMRV9URVNU X0VYSVNUUykpIHsKLSAgICAgICAgIGdfY2xlYXJfcG9pbnRlciAoJnBhdGgsIGdfZnJlZSk7Ci0g ICAgICAgICBmb3IgKHN5c19sYW5nID0gc3lzX2xhbmdzOyAqc3lzX2xhbmc7IHN5c19sYW5nKysp IHsKLS0gICAgICAgICAgICBwYXRoID0gZ19idWlsZF9maWxlbmFtZSAoWDExX0RBVEFESVIsICpz eXNfbGFuZywKLSsgICAgICAgICAgICBwYXRoID0gZ19idWlsZF9maWxlbmFtZSAoWDExX0xPQ0FM RURBVEFESVIsICpzeXNfbGFuZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkNvbXBvc2UiLCBOVUxMKTsKLSAgICAgICAgICAgICBpZiAoIXBhdGgpCi0gICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwotQEAgLTkzLDcgKzkxLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKLSAgICAgICAgIH0KLSAgICAgfQotICAgICBpZiAoIXBhdGgpIHsKLS0gICAgICAg IGdfd2FybmluZyAoImVuX1VTIGNvbXBvc2UgZmlsZSBpcyBub3QgZm91bmQgaW4gJXMuIiwgWDEx X0RBVEFESVIpOwotKyAgICAgICAgZ193YXJuaW5nICgiZW5fVVMgY29tcG9zZSBmaWxlIGlzIG5v dCBmb3VuZCBpbiAlcy4iLCBYMTFfTE9DQUxFREFUQURJUik7Ci0gICAgICAgICByZXR1cm4gMTsK LSAgICAgfSBlbHNlIHsKLSAgICAgICAgIGdfZGVidWcgKCJDcmVhdGUgYSBjYWNoZSBvZiAlcyIs IHBhdGgpOwotZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMgYi9zcmMvaWJ1c2Nv bXBvc2V0YWJsZS5jCi1pbmRleCAzZTdiMGY0MS4uZmM0ODY2OTIgMTAwNjQ0Ci0tLS0gYS9zcmMv aWJ1c2NvbXBvc2V0YWJsZS5jCi0rKysgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi1AQCAtMzks NyArMzksNiBAQAotIAotICNkZWZpbmUgSUJVU19DT01QT1NFX1RBQkxFX01BR0lDICJJQnVzQ29t cG9zZVRhYmxlIgotICNkZWZpbmUgSUJVU19DT01QT1NFX1RBQkxFX1ZFUlNJT04gKDQpCi0tI2Rl ZmluZSBYMTFfREFUQURJUiBYMTFfREFUQV9QUkVGSVggIi9zaGFyZS9YMTEvbG9jYWxlIgotICNk ZWZpbmUgSUJVU19NQVhfQ09NUE9TRV9BTEdPUklUSE1fTEVOIDkKLSAKLSB0eXBlZGVmIHN0cnVj dCB7Ci1AQCAtMjg1LDcgKzI4NCw3IEBAIGV4cGFuZF9pbmNsdWRlX3BhdGggKGNvbnN0IGNoYXIg KmluY2x1ZGVfcGF0aCkgewotICAgICAgICAgICAgIGNhc2UgJ1MnOiAvKiBzeXN0ZW0gY29tcG9z ZSBkaXIgKi8KLSAgICAgICAgICAgICAgICAgbyA9IG91dDsKLSAgICAgICAgICAgICAgICAgZm9y bWVyID0gZ19zdHJuZHVwIChoZWFkLCBpIC0gaGVhZCk7Ci0tICAgICAgICAgICAgICAgIG91dCA9 IGdfc3RyZHVwX3ByaW50ZiAoIiVzJXMlcyIsIG8sIGZvcm1lciwgWDExX0RBVEFESVIpOwotKyAg ICAgICAgICAgICAgICBvdXQgPSBnX3N0cmR1cF9wcmludGYgKCIlcyVzJXMiLCBvLCBmb3JtZXIs IFgxMV9MT0NBTEVEQVRBRElSKTsKLSAgICAgICAgICAgICAgICAgaGVhZCA9IGkgKyAyOwotICAg ICAgICAgICAgICAgICBnX2ZyZWUgKG8pOwotICAgICAgICAgICAgICAgICBnX2ZyZWUgKGZvcm1l cik7Ci1AQCAtMzk3LDcgKzM5Niw3IEBAIGdldF9lbl9jb21wb3NlX2ZpbGUgKHZvaWQpCi0gICAg IGNoYXIgKiBjb25zdCAqc3lzX2xhbmcgPSBOVUxMOwotICAgICBjaGFyICpwYXRoID0gTlVMTDsK LSAgICAgZm9yIChzeXNfbGFuZyA9IHN5c19sYW5nczsgKnN5c19sYW5nOyBzeXNfbGFuZysrKSB7 Ci0tICAgICAgICBwYXRoID0gZ19idWlsZF9maWxlbmFtZSAoWDExX0RBVEFESVIsICpzeXNfbGFu ZywgIkNvbXBvc2UiLCBOVUxMKTsKLSsgICAgICAgIHBhdGggPSBnX2J1aWxkX2ZpbGVuYW1lIChY MTFfTE9DQUxFREFUQURJUiwgKnN5c19sYW5nLCAiQ29tcG9zZSIsIE5VTEwpOwotICAgICAgICAg aWYgKGdfZmlsZV90ZXN0IChwYXRoLCBHX0ZJTEVfVEVTVF9FWElTVFMpKQotICAgICAgICAgICAg IGJyZWFrOwotICAgICAgICAgZ19jbGVhcl9wb2ludGVyICgmcGF0aCwgZ19mcmVlKTsKLWRpZmYg LS1naXQgYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwot aW5kZXggNDA5ZDVhNTYuLjU4NWQ3ODcwIDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVzaW1w bGUuYwotKysrIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotQEAgLTM3LDcgKzM3LDYgQEAKLSAj aW5jbHVkZSA8bWVtb3J5Lmg+Ci0gI2luY2x1ZGUgPHN0ZGxpYi5oPgotIAotLSNkZWZpbmUgWDEx X0RBVEFESVIgWDExX0RBVEFfUFJFRklYICIvc2hhcmUvWDExL2xvY2FsZSIKLSAjZGVmaW5lIElC VVNfRU5HSU5FX1NJTVBMRV9HRVRfUFJJVkFURShvKSAgXAotICAgICgoSUJ1c0VuZ2luZVNpbXBs ZVByaXZhdGUgKilpYnVzX2VuZ2luZV9zaW1wbGVfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQot IAotQEAgLTE0NDAsNyArMTQzOSw3IEBAIGlidXNfZW5naW5lX3NpbXBsZV9hZGRfdGFibGVfYnlf bG9jYWxlIChJQnVzRW5naW5lU2ltcGxlICpzaW1wbGUsCi0gICAgICAgICAgICAgZm9yIChzeXNf bGFuZyA9IHN5c19sYW5nczsgKnN5c19sYW5nOyBzeXNfbGFuZysrKSB7Ci0gICAgICAgICAgICAg ICAgIGlmIChnX2FzY2lpX3N0cm5jYXNlY21wICgqbGFuZywgKnN5c19sYW5nLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuICgqc3lzX2xhbmcpKSA9PSAw KSB7Ci0tICAgICAgICAgICAgICAgICAgICBwYXRoID0gZ19idWlsZF9maWxlbmFtZSAoWDExX0RB VEFESVIsCi0rICAgICAgICAgICAgICAgICAgICBwYXRoID0gZ19idWlsZF9maWxlbmFtZSAoWDEx X0xPQ0FMRURBVEFESVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKmxhbmcsICJDb21wb3NlIiwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgICBicmVh azsKLSAgICAgICAgICAgICAgICAgfQotQEAgLTE0NjIsNyArMTQ2MSw3IEBAIGlidXNfZW5naW5l X3NpbXBsZV9hZGRfdGFibGVfYnlfbG9jYWxlIChJQnVzRW5naW5lU2ltcGxlICpzaW1wbGUsCi0g ICAgICAgICAgICAgaWJ1c19lbmdpbmVfc2ltcGxlX2FkZF9jb21wb3NlX2ZpbGUgKHNpbXBsZSwg cGF0aCk7Ci0gICAgICAgICBnX2NsZWFyX3BvaW50ZXIoJnBhdGgsIGdfZnJlZSk7Ci0gICAgIH0g ZWxzZSB7Ci0tICAgICAgICBwYXRoID0gZ19idWlsZF9maWxlbmFtZSAoWDExX0RBVEFESVIsIGxv Y2FsZSwgIkNvbXBvc2UiLCBOVUxMKTsKLSsgICAgICAgIHBhdGggPSBnX2J1aWxkX2ZpbGVuYW1l IChYMTFfTE9DQUxFREFUQURJUiwgbG9jYWxlLCAiQ29tcG9zZSIsIE5VTEwpOwotICAgICAgICAg ZG8gewotICAgICAgICAgICAgIGlmIChnX2ZpbGVfdGVzdCAocGF0aCwgR19GSUxFX1RFU1RfRVhJ U1RTKSkKLSAgICAgICAgICAgICAgICAgYnJlYWs7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL01h a2VmaWxlLmFtIGIvc3JjL3Rlc3RzL01ha2VmaWxlLmFtCi1pbmRleCBjYTUyODViZC4uOGQxZDE2 ZTMgMTAwNjQ0Ci0tLS0gYS9zcmMvdGVzdHMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy90ZXN0cy9N YWtlZmlsZS5hbQotQEAgLTMwLDcgKzMwLDcgQEAgQU1fQ1BQRkxBR1MgPSBcCi0gICAgIEBHTElC Ml9DRkxBR1NAICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIEBHSU8yX0NGTEFHU0Ag ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIC1ESUJVU19ESVNBQkxFX0RFUFJFQ0FU SU9OX1dBUk5JTkdTICAgICBcCi0tICAgIC1EWDExX0RBVEFfUFJFRklYPVwiJChYMTFfUFJFRklY KVwiICAgICBcCi0rICAgIC1EWDExX0xPQ0FMRURBVEFESVI9XCIkKFgxMV9MT0NBTEVEQVRBRElS KVwiIFwKLSAgICAgLUkkKHRvcF9zcmNkaXIpL3NyYyAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgLUkkKHRvcF9idWlsZGRpcikvc3JjICAgICAgICAgICAgICAgICAgIFwKLSAgICAgJChOVUxM KQotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYyBiL3NyYy90ZXN0cy9pYnVz LWNvbXBvc2UuYwotaW5kZXggMGJlMDFkMjcuLmRhMWExMjk4IDEwMDY0NAotLS0tIGEvc3JjL3Rl c3RzL2lidXMtY29tcG9zZS5jCi0rKysgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKLUBAIC02 LDcgKzYsNiBAQAotICNkZWZpbmUgR1JFRU4gIlwwMzNbMDszMm0iCi0gI2RlZmluZSBSRUQgICAi XDAzM1swOzMxbSIKLSAjZGVmaW5lIE5DICAgICJcMDMzWzBtIgotLSNkZWZpbmUgWDExX0RBVEFE SVIgWDExX0RBVEFfUFJFRklYICIvc2hhcmUvWDExL2xvY2FsZSIKLSAKLSBJQnVzQnVzICptX2J1 czsKLSBnY2hhciAqbV9jb21wb3NlX2ZpbGU7Ci1AQCAtMzYsNyArMzUsNyBAQCBnZXRfY29tcG9z ZV9wYXRoICgpCi0gICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICBpZiAoZ19zdHJjbXAwICgq bCwgIkMiKSA9PSAwKQotICAgICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgY29tcG9zZV9wYXRo ID0gZ19idWlsZF9maWxlbmFtZSAoWDExX0RBVEFESVIsCi0rICAgICAgICBjb21wb3NlX3BhdGgg PSBnX2J1aWxkX2ZpbGVuYW1lIChYMTFfTE9DQUxFREFUQURJUiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICpsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkNvbXBvc2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCk7Ci0tLSAKLTIuMzkuMgotCi1Gcm9tIDlkOWRjYTllMTAzZTg4YjMz ZTc4NmM0YTQ2ZjQ0MTIzYTZjZjExYzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDggTWFyIDIw MjMgMTk6NDQ6MTYgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gY2xpZW50L3gxMTogRml4IEtleSB0 eXBpbmcgb3JkZXIKLQotaWJ1cy14MTEgbm93IGFsc28gdXNlcyB0aGUgaHlicmlkIHByb2Nlc3Mg a2V5IGV2ZW50cyB3aXRoCi1JQlVTX0VOQUJMRV9TWU5DX01PREU9MiBhbmQgaXQgd2FpdHMgZm9y IHRoZSBhc3luYyBBUEkKLXdpdGggR1NvdXJjZSBhbmQgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9u KCkgaW4geGltX2ZvcndhcmRfZXZlbnQoKS4KLQotQnV0IGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlv bigpIGNhbGxzIGdka19ldmVudF9zb3VyY2VfZGlzcGF0Y2goKQotYW5kIGl0IGNhbiBjYWxsIGFu b3RoZXIgeGltX2ZvcndhcmRfZXZlbnQoKSBhbmQgdGhlIGNhbGxiYWNrcwotb2YgaWJ1c19pbnB1 dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50X2FzeW5jKCkgY2FuIGJlIG5lc3RlZC4KLVNvIGlm IHRoZSBmb3J3YXJkaW5nIEFQSSBpcyBjYWxsZWQgb3V0IG9mIHRoZSBjYWxsYmFja3Mgb2YKLWli dXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudF9hc3luYygpLCB0aGUga2V5IGV2ZW50 cwotb3JkZXIgaXMgc3dhcHBlZCBkdWUgdG8gdGhlIGRlbGF5ZWQgcmV0dXJuIG9mCi1nX21haW5f Y29udGV4dF9pdGVyYXRpb24oKS4KLQotVG8gcmVzb2x2ZSB0aGlzIGlzc3VlLCB0aGUgZm9yd2Fy ZGluZyBBUEkgc2hvdWxkIGJlIGNhbGxlZCBpbgotdGhlIGNhbGxiYWNrcyBvZiBpYnVzX2lucHV0 X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMoKS4KLQotQlVHPWh0dHBzOi8vZ2l0aHVi LmNvbS9pYnVzL2lidXMvaXNzdWVzLzI0ODAKLS0tLQotIGNsaWVudC94MTEvbWFpbi5jIHwgMTYw ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZpbGUg Y2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9jbGllbnQveDExL21haW4uYyBiL2NsaWVudC94MTEvbWFpbi5jCi1pbmRleCA5MDVmZDI1MS4u ODNkOTVjYjcgMTAwNjQ0Ci0tLS0gYS9jbGllbnQveDExL21haW4uYwotKysrIGIvY2xpZW50L3gx MS9tYWluLmMKLUBAIC0yLDcgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyog aWJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVh bmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIyIFRha2FvIEZ1aml3YXJh IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIz IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotICAqIENvcHlyaWdo dCAoQykgMjAwNy0yMDE1IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIG1haW4uYzoKLUBAIC00OSw2 ICs0OSw4IEBACi0gI2luY2x1ZGUgPGdldG9wdC5oPgotIAotICNkZWZpbmUgRVNDX1NFUVVFTkNF X0lTTzEwNjQ2XzEgIlwwMzMlRyIKLSsvKiBXYWl0IGZvciBhYm91dCAxMjAgc2VjcyB0byByZXR1 cm4gYSBrZXkgZnJvbSBhc3luYyBwcm9jZXNzLWtleS1ldmVudC4gKi8KLSsjZGVmaW5lIE1BWF9X QUlUX0tFWV9USU1FICAgICAgIDEyMDAwMAotIAotICNkZWZpbmUgTE9HKGxldmVsLCBmbXRfYXJn cy4uLikgXAotICAgICBpZiAoZ19kZWJ1Z19sZXZlbCA+PSAobGV2ZWwpKSB7IFwKLUBAIC00NjEs MTEgKzQ2MywzOSBAQCB4aW1fdW5zZXRfaWNfZm9jdXMgKFhJTVMgeGltcywgSU1DaGFuZ2VGb2N1 c1N0cnVjdCAqY2FsbF9kYXRhKQotIAotIH0KLSAKLStzdGF0aWMgdm9pZAotK194aW1fZm9yd2Fy ZF9rZXlfZXZlbnRfZG9uZSAoWDExSUMgICAqeDExaWMsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBYRXZlbnQgICpldmVudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi b29sZWFuIHByb2Nlc3NlZCkKLSt7Ci0rICAgIElNRm9yd2FyZEV2ZW50U3RydWN0IGZlOwotKyAg ICBpZiAocHJvY2Vzc2VkKSB7Ci0rICAgICAgICBpZiAoIXgxMWljLT5oYXNfcHJlZWRpdF9hcmVh KSB7Ci0rICAgICAgICAgICAgX3hpbV9zZXRfY3Vyc29yX2xvY2F0aW9uICh4MTFpYyk7Ci0rICAg ICAgICB9Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsgICAgZ19hc3NlcnQgKHgxMWljKTsK LSsgICAgZ19hc3NlcnQgKGV2ZW50KTsKLSsKLSsgICAgbWVtc2V0ICgmZmUsIDAsIHNpemVvZiAo ZmUpKTsKLSsgICAgZmUubWFqb3JfY29kZSA9IFhJTV9GT1JXQVJEX0VWRU5UOwotKyAgICBmZS5p Y2lkID0geDExaWMtPmljaWQ7Ci0rICAgIGZlLmNvbm5lY3RfaWQgPSB4MTFpYy0+Y29ubmVjdF9p ZDsKLSsgICAgZmUuc3luY19iaXQgPSAwOwotKyAgICBmZS5zZXJpYWxfbnVtYmVyID0gMEw7Ci0r ICAgIGZlLmV2ZW50ID0gKmV2ZW50OwotKyAgICBJTUZvcndhcmRFdmVudCAoX3hpbXMsIChYUG9p bnRlcikgJmZlKTsKLSt9Ci0rCi0rCi0gdHlwZWRlZiBzdHJ1Y3QgewotLSAgICBJTUZvcndhcmRF dmVudFN0cnVjdCAqcGZlOwotICAgICBpbnQgICAgICAgICAgICAgICAgICAgY291bnQ7Ci0gICAg IGd1aW50ICAgICAgICAgICAgICAgICBjb3VudF9jYl9pZDsKLSAgICAgZ2Jvb2xlYW4gICAgICAg ICAgICAgIHJldHZhbDsKLSsgICAgWDExSUMgICAgICAgICAgICAgICAgKngxMWljOwotKyAgICBD QVJEMTYgICAgICAgICAgICAgICAgY29ubmVjdF9pZDsKLSsgICAgWEV2ZW50ICAgICAgICAgICAg ICAgIGV2ZW50OwotIH0gUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhOwotIAotIHN0YXRpYyB2b2lk Ci1AQCAtNDc0LDcgKzUwNCw3IEBAIF9wcm9jZXNzX2tleV9ldmVudF9kb25lIChHT2JqZWN0ICAg ICAgKm9iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICB1c2Vy X2RhdGEpCi0gewotICAgICBJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0ID0gKElCdXNJbnB1dENv bnRleHQgKilvYmplY3Q7Ci0tICAgIElNRm9yd2FyZEV2ZW50U3RydWN0ICpwZmUgPSAoSU1Gb3J3 YXJkRXZlbnRTdHJ1Y3QqKSB1c2VyX2RhdGE7Ci0rICAgIFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0 YSAqZGF0YSA9IChQcm9jZXNzS2V5RXZlbnRSZXBseURhdGEgKil1c2VyX2RhdGE7Ci0gCi0gICAg IEdFcnJvciAqZXJyb3IgPSBOVUxMOwotICAgICBnYm9vbGVhbiByZXR2YWwgPSBpYnVzX2lucHV0 X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmNfZmluaXNoICgKLUBAIC00ODgsMTYgKzUx OCwxNSBAQCBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3QsCi0g ICAgIH0KLSAKLSAgICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKF9jb25uZWN0aW9ucywKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTlRfVE9fUE9JTlRFUiAoKGdpbnQpIHBmZS0+ Y29ubmVjdF9pZCkpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSU5UX1RPX1BPSU5U RVIgKChnaW50KWRhdGEtPmNvbm5lY3RfaWQpKQotICAgICAgICAgPT0gTlVMTCkgewotLSAgICAg ICAgZ19zbGljZV9mcmVlIChJTUZvcndhcmRFdmVudFN0cnVjdCwgcGZlKTsKLSsgICAgICAgIGdf c2xpY2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKLSAgICAgICAgIHJl dHVybjsKLSAgICAgfQotIAotLSAgICBpZiAocmV0dmFsID09IEZBTFNFKSB7Ci0tICAgICAgICBJ TUZvcndhcmRFdmVudCAoX3hpbXMsIChYUG9pbnRlcikgcGZlKTsKLS0gICAgfQotLSAgICBnX3Ns aWNlX2ZyZWUgKElNRm9yd2FyZEV2ZW50U3RydWN0LCBwZmUpOwotKyAgICBpZiAocmV0dmFsID09 IEZBTFNFKQotKyAgICAgICAgX3hpbV9mb3J3YXJkX2tleV9ldmVudF9kb25lIChkYXRhLT54MTFp YywgJmRhdGEtPmV2ZW50LCByZXR2YWwpOwotKyAgICBnX3NsaWNlX2ZyZWUgKFByb2Nlc3NLZXlF dmVudFJlcGx5RGF0YSwgZGF0YSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1AQCAtNTE4LDYgKzU0 NywyMSBAQCBfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSAoR09iamVjdCAgICAgICpvYmpl Y3QsCi0gICAgIH0KLSAgICAgZ19yZXR1cm5faWZfZmFpbCAoZGF0YSk7Ci0gICAgIGRhdGEtPnJl dHZhbCA9IHJldHZhbDsKLSsgICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKF9jb25uZWN0aW9u cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTlRfVE9fUE9JTlRFUiAoKGdpbnQp ZGF0YS0+Y29ubmVjdF9pZCkpCi0rICAgICAgICA9PSBOVUxMKSB7Ci0rICAgICAgICByZXR1cm47 Ci0rICAgIH0KLSsgICAgLyogX3hpbV9mb3J3YXJkX2tleV9ldmVudF9kb25lKCkgc2hvdWxkIGJl IGNhbGxlZCBpbgotKyAgICAgKiBfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSgpIGJlY2F1 c2UgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uKCkKLSsgICAgICogY2FuIGNhbGwgYW5vdGhlciB4 aW1fZm9yd2FyZF9ldmVudCgpIGFuZCB4aW1fZm9yd2FyZF9ldmVudCgpIGNhbiBiZQotKyAgICAg KiBuZXN0ZWQgYW5kIHRoZSBmaXJzdCBfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSgpIGlz IHJldHVybmVkCi0rICAgICAqIGF0IGxhc3Qgd2l0aCBnX21haW5fY29udGV4dF9pdGVyYXRpb24o KSBzbwotKyAgICAgKiBpZiBfeGltX2ZvcndhcmRfa2V5X2V2ZW50X2RvbmUoKSBpcyBjYWxsZWQg b3V0IG9mCi0rICAgICAqIF9wcm9jZXNzX2tleV9ldmVudF9yZXBseV9kb25lKCksIHRoZSBrZXkg ZXZlbnRzIG9yZGVyCi0rICAgICAqIGNhbiBiZSBzd2FwcGVkLgotKyAgICAgKi8KLSsgICAgX3hp bV9mb3J3YXJkX2tleV9ldmVudF9kb25lIChkYXRhLT54MTFpYywgJmRhdGEtPmV2ZW50LCByZXR2 YWwpOwotICAgICBkYXRhLT5jb3VudCA9IDA7Ci0gICAgIGdfc291cmNlX3JlbW92ZSAoZGF0YS0+ Y291bnRfY2JfaWQpOwotIH0KLUBAIC01MjksOSArNTczLDggQEAgX3Byb2Nlc3Nfa2V5X2V2ZW50 X2NvdW50X2NiIChncG9pbnRlciB1c2VyX2RhdGEpCi0gICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls IChkYXRhLCBHX1NPVVJDRV9SRU1PVkUpOwotICAgICBpZiAoIWRhdGEtPmNvdW50KQotICAgICAg ICAgcmV0dXJuIEdfU09VUkNFX1JFTU9WRTsKLS0gICAgLyogV2FpdCBmb3IgYWJvdXQgMTAgc2Vj cy4gKi8KLS0gICAgaWYgKGRhdGEtPmNvdW50KysgPT0gMTAwMDApIHsKLS0gICAgICAgIGRhdGEt PmNvdW50ID0gMDsKLSsgICAgaWYgKGRhdGEtPmNvdW50KysgPT0gTUFYX1dBSVRfS0VZX1RJTUUp IHsKLSsgICAgICAgIGdfd2FybmluZyAoIktleSBldmVudCBpcyBub3QgcmV0dXJuZWQgZm9yICV1 c2Vjcy4iLCBNQVhfV0FJVF9LRVlfVElNRSk7Ci0gICAgICAgICByZXR1cm4gR19TT1VSQ0VfUkVN T1ZFOwotICAgICB9Ci0gICAgIHJldHVybiBHX1NPVVJDRV9DT05USU5VRTsKLUBAIC01NzEsMzIg KzYxNCwxMyBAQCB4aW1fZm9yd2FyZF9ldmVudCAoWElNUyB4aW1zLCBJTUZvcndhcmRFdmVudFN0 cnVjdCAqY2FsbF9kYXRhKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXZlbnQua2V5dmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZl bnQuaGFyZHdhcmVfa2V5Y29kZSAtIDgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBldmVudC5zdGF0ZSk7Ci0tICAgICAgICBpZiAocmV0dmFsKSB7Ci0tICAgICAgICAg ICAgaWYgKCF4MTFpYy0+aGFzX3ByZWVkaXRfYXJlYSkgewotLSAgICAgICAgICAgICAgICBfeGlt X3NldF9jdXJzb3JfbG9jYXRpb24gKHgxMWljKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgcmV0dXJuIDE7Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBJTUZvcndhcmRFdmVudFN0cnVj dCBmZTsKLS0gICAgICAgIG1lbXNldCAoJmZlLCAwLCBzaXplb2YgKGZlKSk7Ci0tCi0tICAgICAg ICBmZS5tYWpvcl9jb2RlID0gWElNX0ZPUldBUkRfRVZFTlQ7Ci0tICAgICAgICBmZS5pY2lkID0g eDExaWMtPmljaWQ7Ci0tICAgICAgICBmZS5jb25uZWN0X2lkID0geDExaWMtPmNvbm5lY3RfaWQ7 Ci0tICAgICAgICBmZS5zeW5jX2JpdCA9IDA7Ci0tICAgICAgICBmZS5zZXJpYWxfbnVtYmVyID0g MEw7Ci0tICAgICAgICBmZS5ldmVudCA9IGNhbGxfZGF0YS0+ZXZlbnQ7Ci0tCi0tICAgICAgICBJ TUZvcndhcmRFdmVudCAoX3hpbXMsIChYUG9pbnRlcikgJmZlKTsKLS0KLSsgICAgICAgIF94aW1f Zm9yd2FyZF9rZXlfZXZlbnRfZG9uZSAoeDExaWMsICZjYWxsX2RhdGEtPmV2ZW50LCByZXR2YWwp OwotICAgICAgICAgcmV0dmFsID0gMTsKLSAgICAgICAgIGJyZWFrOwotICAgICB9Ci0gICAgIGNh c2UgMjogewotICAgICAgICAgR1NvdXJjZSAqc291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXcg KDEpOwotICAgICAgICAgUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhICpkYXRhID0gTlVMTDsKLS0g ICAgICAgIElNRm9yd2FyZEV2ZW50U3RydWN0IGZlOwotIAotICAgICAgICAgaWYgKHNvdXJjZSkK LSAgICAgICAgICAgICBkYXRhID0gZ19zbGljZV9uZXcwIChQcm9jZXNzS2V5RXZlbnRSZXBseURh dGEpOwotQEAgLTYxMCwxMSArNjM0LDEzIEBAIHhpbV9mb3J3YXJkX2V2ZW50IChYSU1TIHhpbXMs IElNRm9yd2FyZEV2ZW50U3RydWN0ICpjYWxsX2RhdGEpCi0gICAgICAgICAgICAgaWYgKHNvdXJj ZSkKLSAgICAgICAgICAgICAgICAgZ19zb3VyY2VfZGVzdHJveSAoc291cmNlKTsKLSAgICAgICAg IH0gZWxzZSB7Ci0tICAgICAgICAgICAgQ0FSRDE2IGNvbm5lY3RfaWQgPSB4MTFpYy0+Y29ubmVj dF9pZDsKLSAgICAgICAgICAgICBkYXRhLT5jb3VudCA9IDE7Ci0gICAgICAgICAgICAgZ19zb3Vy Y2VfYXR0YWNoIChzb3VyY2UsIE5VTEwpOwotICAgICAgICAgICAgIGdfc291cmNlX3VucmVmIChz b3VyY2UpOwotICAgICAgICAgICAgIGRhdGEtPmNvdW50X2NiX2lkID0gZ19zb3VyY2VfZ2V0X2lk IChzb3VyY2UpOwotKyAgICAgICAgICAgIGRhdGEtPmNvbm5lY3RfaWQgPSBjYWxsX2RhdGEtPmNv bm5lY3RfaWQ7Ci0rICAgICAgICAgICAgZGF0YS0+eDExaWMgPSB4MTFpYzsKLSsgICAgICAgICAg ICBkYXRhLT5ldmVudCA9ICooKFhFdmVudCopeGV2ZW50KTsKLSAgICAgICAgICAgICBpYnVzX2lu cHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMgKAotICAgICAgICAgICAgICAgICAg ICAgeDExaWMtPmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICBldmVudC5rZXl2YWwsCi1A QCAtNjI2LDcgKzY1Miw3IEBAIHhpbV9mb3J3YXJkX2V2ZW50IChYSU1TIHhpbXMsIElNRm9yd2Fy ZEV2ZW50U3RydWN0ICpjYWxsX2RhdGEpCi0gICAgICAgICAgICAgICAgICAgICBkYXRhKTsKLSAg ICAgICAgICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sgKHNvdXJjZSwgX3Byb2Nlc3Nfa2V5X2V2 ZW50X2NvdW50X2NiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwg TlVMTCk7Ci0tICAgICAgICAgICAgd2hpbGUgKGRhdGEtPmNvdW50KQotKyAgICAgICAgICAgIHdo aWxlIChkYXRhLT5jb3VudCA+IDAgJiYgZGF0YS0+Y291bnQgPCBNQVhfV0FJVF9LRVlfVElNRSkK LSAgICAgICAgICAgICAgICAgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uIChOVUxMLCBUUlVFKTsK LSAgICAgICAgICAgICBpZiAoc291cmNlLT5yZWZfY291bnQgPiAwKSB7Ci0gICAgICAgICAgICAg ICAgIC8qIGdfc291cmNlX2dldF9pZCgpIGNvdWxkIGNhdXNlcyBhIFNFR1YgKi8KLUBAIC02MzQs NDYgKzY2MCwzMyBAQCB4aW1fZm9yd2FyZF9ldmVudCAoWElNUyB4aW1zLCBJTUZvcndhcmRFdmVu dFN0cnVjdCAqY2FsbF9kYXRhKQotICAgICAgICAgICAgICAgICAgICAgICAgICJpc3N1ZSBpbiAl cC4iLCBzb3VyY2UpOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICByZXR2YWwgPSBkYXRh LT5yZXR2YWw7Ci0tICAgICAgICAgICAgZ19zbGljZV9mcmVlIChQcm9jZXNzS2V5RXZlbnRSZXBs eURhdGEsIGRhdGEpOwotLQotLSAgICAgICAgICAgIGlmIChnX2hhc2hfdGFibGVfbG9va3VwIChf Y29ubmVjdGlvbnMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJTlRf VE9fUE9JTlRFUiAoKGdpbnQpY29ubmVjdF9pZCkpCi0tICAgICAgICAgICAgICAgID09IE5VTEwp IHsKLSsgICAgICAgICAgICBpZiAoZGF0YS0+Y291bnQgPT0gMCkgewotKyAgICAgICAgICAgICAg ICBnX3NsaWNlX2ZyZWUgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSwgZGF0YSk7Ci0gICAgICAg ICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAKLS0gICAg ICAgIGlmIChyZXR2YWwpIHsKLS0gICAgICAgICAgICBpZiAoISB4MTFpYy0+aGFzX3ByZWVkaXRf YXJlYSkgewotLSAgICAgICAgICAgICAgICBfeGltX3NldF9jdXJzb3JfbG9jYXRpb24gKHgxMWlj KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgcmV0dXJuIDE7Ci0rICAgICAgICBnX3Ns aWNlX2ZyZWUgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSwgZGF0YSk7Ci0rICAgICAgICBpZiAo Z19oYXNoX3RhYmxlX2xvb2t1cCAoX2Nvbm5lY3Rpb25zLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdJTlRfVE9fUE9JTlRFUiAoKGdpbnQpY2FsbF9kYXRhLT5jb25uZWN0X2lk KSkKLSsgICAgICAgICAgICAgICAgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICByZXR1cm4g MTsKLSAgICAgICAgIH0KLS0KLS0gICAgICAgIG1lbXNldCAoJmZlLCAwLCBzaXplb2YgKGZlKSk7 Ci0tCi0tICAgICAgICBmZS5tYWpvcl9jb2RlID0gWElNX0ZPUldBUkRfRVZFTlQ7Ci0tICAgICAg ICBmZS5pY2lkID0geDExaWMtPmljaWQ7Ci0tICAgICAgICBmZS5jb25uZWN0X2lkID0geDExaWMt PmNvbm5lY3RfaWQ7Ci0tICAgICAgICBmZS5zeW5jX2JpdCA9IDA7Ci0tICAgICAgICBmZS5zZXJp YWxfbnVtYmVyID0gMEw7Ci0tICAgICAgICBmZS5ldmVudCA9IGNhbGxfZGF0YS0+ZXZlbnQ7Ci0t Ci0tICAgICAgICBJTUZvcndhcmRFdmVudCAoX3hpbXMsIChYUG9pbnRlcikgJmZlKTsKLS0KLSsg ICAgICAgIF94aW1fZm9yd2FyZF9rZXlfZXZlbnRfZG9uZSAoeDExaWMsICZjYWxsX2RhdGEtPmV2 ZW50LCByZXR2YWwpOwotICAgICAgICAgcmV0dmFsID0gMTsKLSAgICAgICAgIGJyZWFrOwotICAg ICB9Ci0gICAgIGRlZmF1bHQ6IHsKLS0gICAgICAgIElNRm9yd2FyZEV2ZW50U3RydWN0ICpwZmU7 Ci0rICAgICAgICBQcm9jZXNzS2V5RXZlbnRSZXBseURhdGEgKmRhdGE7Ci0gCi0tICAgICAgICBw ZmUgPSBnX3NsaWNlX25ldzAgKElNRm9yd2FyZEV2ZW50U3RydWN0KTsKLS0gICAgICAgIHBmZS0+ bWFqb3JfY29kZSA9IFhJTV9GT1JXQVJEX0VWRU5UOwotLSAgICAgICAgcGZlLT5pY2lkID0geDEx aWMtPmljaWQ7Ci0tICAgICAgICBwZmUtPmNvbm5lY3RfaWQgPSB4MTFpYy0+Y29ubmVjdF9pZDsK LS0gICAgICAgIHBmZS0+c3luY19iaXQgPSAwOwotLSAgICAgICAgcGZlLT5zZXJpYWxfbnVtYmVy ID0gMEw7Ci0tICAgICAgICBwZmUtPmV2ZW50ID0gY2FsbF9kYXRhLT5ldmVudDsKLSsgICAgICAg IGlmICghKGRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSkpKSB7 Ci0rICAgICAgICAgICAgZ193YXJuaW5nICgiQ2Fubm90IGFsbG9jYXRlIGFzeW5jIGRhdGEiKTsK LSsgICAgICAgICAgICBfeGltX2ZvcndhcmRfa2V5X2V2ZW50X2RvbmUgKHgxMWljLCAmY2FsbF9k YXRhLT5ldmVudCwgMCk7Ci0rICAgICAgICAgICAgcmV0dXJuIDE7Ci0rICAgICAgICB9Ci0rICAg ICAgICBkYXRhLT5jb25uZWN0X2lkID0gY2FsbF9kYXRhLT5jb25uZWN0X2lkOwotKyAgICAgICAg ZGF0YS0+eDExaWMgPSB4MTFpYzsKLSsgICAgICAgIGRhdGEtPmV2ZW50ID0gY2FsbF9kYXRhLT5l dmVudDsKLSAKLSAgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudF9h c3luYyAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTFpYy0+Y29u dGV4dCwKLUBAIC02ODMsNyArNjk2LDcgQEAgeGltX2ZvcndhcmRfZXZlbnQgKFhJTVMgeGltcywg SU1Gb3J3YXJkRXZlbnRTdHJ1Y3QgKmNhbGxfZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wcm9jZXNz X2tleV9ldmVudF9kb25lLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGZlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpOwotICAg ICAgICAgcmV0dmFsID0gMTsKLSAgICAgfQotICAgICB9Ci1AQCAtOTYyLDExICs5NzUsMTAgQEAg X3hpbV9mb3J3YXJkX2tleV9ldmVudCAoWDExSUMgICAqeDExaWMsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgZ3VpbnQgICAga2V5Y29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBndWlu dCAgICBzdGF0ZSkKLSB7Ci0tICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHgxMWljICE9IE5VTEwpOwot LQotLSAgICBJTUZvcndhcmRFdmVudFN0cnVjdCBmZSA9IHswfTsKLSAgICAgWEV2ZW50IHhrcCA9 IHswfTsKLSAKLSsgICAgZ19yZXR1cm5faWZfZmFpbCAoeDExaWMgIT0gTlVMTCk7Ci0rCi0gICAg IHhrcC54a2V5LnR5cGUgPSAoc3RhdGUgJiBJQlVTX1JFTEVBU0VfTUFTSykgPyBLZXlSZWxlYXNl IDogS2V5UHJlc3M7Ci0gICAgIHhrcC54a2V5LnNlcmlhbCA9IDBMOwotICAgICB4a3AueGtleS5z ZW5kX2V2ZW50ID0gRmFsc2U7Ci1AQCAtOTc1LDIwICs5ODcsMTQgQEAgX3hpbV9mb3J3YXJkX2tl eV9ldmVudCAoWDExSUMgICAqeDExaWMsCi0gICAgIHhrcC54a2V5LndpbmRvdyA9Ci0gICAgICAg ICB4MTFpYy0+Zm9jdXNfd2luZG93ID8geDExaWMtPmZvY3VzX3dpbmRvdyA6IHgxMWljLT5jbGll bnRfd2luZG93OwotICAgICB4a3AueGtleS5zdWJ3aW5kb3cgPSBOb25lOwotLSAgICB4a3AueGtl eS5yb290ID0gRGVmYXVsdFJvb3RXaW5kb3cgKEdES19ESVNQTEFZX1hESVNQTEFZIChnZGtfZGlz cGxheV9nZXRfZGVmYXVsdCAoKSkpOwotKyAgICB4a3AueGtleS5yb290ID0gRGVmYXVsdFJvb3RX aW5kb3cgKAotKyAgICAgICAgICAgIEdES19ESVNQTEFZX1hESVNQTEFZIChnZGtfZGlzcGxheV9n ZXRfZGVmYXVsdCAoKSkpOwotIAotICAgICB4a3AueGtleS50aW1lID0gMDsKLSAgICAgeGtwLnhr ZXkuc3RhdGUgPSBzdGF0ZTsKLSAgICAgeGtwLnhrZXkua2V5Y29kZSA9IChrZXljb2RlID09IDAp ID8gMCA6IGtleWNvZGUgKyA4OwotIAotLSAgICBmZS5tYWpvcl9jb2RlID0gWElNX0ZPUldBUkRf RVZFTlQ7Ci0tICAgIGZlLmljaWQgPSB4MTFpYy0+aWNpZDsKLS0gICAgZmUuY29ubmVjdF9pZCA9 IHgxMWljLT5jb25uZWN0X2lkOwotLSAgICBmZS5zeW5jX2JpdCA9IDA7Ci0tICAgIGZlLnNlcmlh bF9udW1iZXIgPSAwTDsKLS0gICAgZmUuZXZlbnQgPSB4a3A7Ci0tCi0tICAgIElNRm9yd2FyZEV2 ZW50IChfeGltcywgKFhQb2ludGVyKSAmIGZlKTsKLSsgICAgX3hpbV9mb3J3YXJkX2tleV9ldmVu dF9kb25lICh4MTFpYywgJnhrcCwgRkFMU0UpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotLS0gCi0y LjM4LjEKLQotRnJvbSA1YjVkMDc5NWYyOTdlMzMwZmRjODRiNmJlNmJlYWIxMzA1YjBjZGE5IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotRGF0ZTogV2VkLCAxNSBNYXIgMjAyMyAxMDoyMjowNSArMDkwMAotU3ViamVj dDogW1BBVENIXSB1dGlsL0lNZGtpdDogRGlzYWJsZSB3aGlsZSBsb29wIGJlZm9yZSBjYWxsCi0g Rm9yd2FyZEV2ZW50TWVzc2FnZVByb2MoKQotCi1TZWVtcyBQcm9jZXNzUXVldWUoKSBoYWQgYSB3 cm9uZyBYRnJlZSgpIHdpdGggYXN5bmMgcHJvY2Vzcy1rZXktZXZlbnQuCi1GaXhlczogYzBmZWM4 OWFlNzZmOTUyMjMxOWY1ODEwN2FiMjM0OTkyYjI0OWVjNgotCi1CVUc9aHR0cHM6Ly9naXRodWIu Y29tL2lidXMvaWJ1cy9pc3N1ZXMvMjQ4NAotLS0tCi0gdXRpbC9JTWRraXQvaTE4blB0SGRyLmMg fCA5ICsrKy0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9pMThuUHRIZHIuYyBiL3V0aWwvSU1k a2l0L2kxOG5QdEhkci5jCi1pbmRleCA4ZGM1MjcxNC4uZWMyMGUzMjIgMTAwNjQ0Ci0tLS0gYS91 dGlsL0lNZGtpdC9pMThuUHRIZHIuYwotKysrIGIvdXRpbC9JTWRraXQvaTE4blB0SGRyLmMKLUBA IC0xNzQ3LDExICsxNzQ3LDEzIEBAIHN0YXRpYyB2b2lkIFByb2Nlc3NRdWV1ZSAoWElNUyBpbXMs IENBUkQxNiBjb25uZWN0X2lkKQotICAgICAgICAgWGltUHJvdG9IZHIgKmhkciA9IChYaW1Qcm90 b0hkciAqKSBjbGllbnQtPnBlbmRpbmctPnA7Ci0gICAgICAgICB1bnNpZ25lZCBjaGFyICpwMSA9 ICh1bnNpZ25lZCBjaGFyICopIChoZHIgKyAxKTsKLSAgICAgICAgIElNUHJvdG9jb2wgY2FsbF9k YXRhOwotKyAgICAgICAgWElNUGVuZGluZyAqb2xkID0gY2xpZW50LT5wZW5kaW5nOwotIAotICAg ICAgICAgY2FsbF9kYXRhLm1ham9yX2NvZGUgPSBoZHItPm1ham9yX29wY29kZTsKLSAgICAgICAg IGNhbGxfZGF0YS5hbnkubWlub3JfY29kZSA9IGhkci0+bWlub3Jfb3Bjb2RlOwotICAgICAgICAg Y2FsbF9kYXRhLmFueS5jb25uZWN0X2lkID0gY29ubmVjdF9pZDsKLSAKLSsgICAgICAgIGNsaWVu dC0+cGVuZGluZyA9IG9sZC0+bmV4dDsKLSAgICAgICAgIHN3aXRjaCAoaGRyLT5tYWpvcl9vcGNv ZGUpCi0gICAgICAgICB7Ci0gICAgICAgICBjYXNlIFhJTV9GT1JXQVJEX0VWRU5UOgotQEAgLTE3 NjAsMTIgKzE3NjIsNyBAQCBzdGF0aWMgdm9pZCBQcm9jZXNzUXVldWUgKFhJTVMgaW1zLCBDQVJE MTYgY29ubmVjdF9pZCkKLSAgICAgICAgIH0KLSAgICAgICAgIC8qZW5kc3dpdGNoKi8KLSAgICAg ICAgIFhGcmVlIChoZHIpOwotLSAgICAgICAgewotLSAgICAgICAgICAgIFhJTVBlbmRpbmcgKm9s ZCA9IGNsaWVudC0+cGVuZGluZzsKLS0KLS0gICAgICAgICAgICBjbGllbnQtPnBlbmRpbmcgPSBv bGQtPm5leHQ7Ci0tICAgICAgICAgICAgWEZyZWUgKG9sZCk7Ci0tICAgICAgICB9Ci0rICAgICAg ICBYRnJlZSAob2xkKTsKLSAgICAgfQotICAgICAvKmVuZHdoaWxlKi8KLSAgICAgcmV0dXJuOwot LS0gCi0yLjM5LjIKLQotRnJvbSBmODIxNDBiMTM2OGM1ZWM0YzBiNzBlNWNhZWEyOTMxY2VlZDU1 ODljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2libyBEb25nIDw0NjUxMjIxMStk b25nc2lib0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBUdWUsIDIxIEZlYiAyMDIz IDE2OjM4OjAzIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHVpL2d0azM6IFVwZGF0ZSBFbW9qaSBz aG9ydGN1dCBrZXkgaW4gaWJ1cy1lbW9qaSg3KQotCi1UaGUgZGVmYXVsdCBFbW9qaSBzaG9ydGN1 dCBrZXkgd2FzIGNoYW5nZWQgYnV0IG5vdCB1cGRhdGVkIGluIHRoZQotaWJ1cy1lbW9qaS43IG1h biBwYWdlLgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9jb21taXQvMTUy MGMzOQotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI0NzUKLS0tLQot IHVpL2d0azMvaWJ1cy1lbW9qaS43LmluIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9pYnVzLWVtb2pp LjcuaW4gYi91aS9ndGszL2lidXMtZW1vamkuNy5pbgotaW5kZXggYjRkOTQxZWMuLjMxMDc0MzAw IDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9pYnVzLWVtb2ppLjcuaW4KLSsrKyBiL3VpL2d0azMvaWJ1 cy1lbW9qaS43LmluCi1AQCAtNTEsNyArNTEsNyBAQCBFLmcuICJOb3RvIENvbG9yIEVtb2ppIiwg IkFuZHJvaWQgRW1vamkiIGZvbnQuCi0gCi0gLlNIICJLRVlCT0FSRCBPUEVSQVRJT05TIgotIC5U UAotLVxmQkNvbnRyb2wtUGVyaW9kIG9yIENvbnRyb2wtU2VtaWNvbG9uXGZSCi0rXGZCU3VwZXIt UGVyaW9kXGZSCi0gTGF1bmNoIElCdXMgRW1vamllci4gVGhlIHNob3J0Y3V0IGtleSBjYW4gYmUg Y3VzdG9taXplZCBieQotIC5CIGlidXNcLXNldHVwICgxKS4KLSAuVFAKLS0tIAotMi40MC4wCi0K LUZyb20gOTU1M2RiZjEyZWM0MmE1OGJlYjY3MWE3MDM5ODI3ZmJkNjUyZTE0ZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IEl6dW1pIFRzdXRzdWkgPHRzdXRzdWlAY2VyZXMuZHRpLm5l LmpwPgotRGF0ZTogTW9uLCAyNyBNYXIgMjAyMyAxOTo0NTozNyArMDkwMAotU3ViamVjdDogW1BB VENIXSBQb3J0YWJpbGl0eSBmaXhlcyBmb3IgcHJlcGFyYXRpb24gb2YgTmV0QlNEIENJCi0KLS0g TWFrZWZpbGU6IElnbm9yZSBlcnJvcnMgb24gJChSTSkgLXIgImB1bmFtZSAtaWAiCi0KLS0gYXV0 b2dlbjogUmVwbGFjZSBtYWtlIHdpdGggJE1BS0UKLQotLSBkYXRhL2Rjb25mOiBCU0QgZG9lcyBu b3Qgc3VwcG9ydCB0aGUgLS10bXBkaXIgbG9uZyBvcHRpb24KLSAgICAgICAgICAgICAgaW4gbWt0 ZW1wLiBBbHNvIGFkZCB0aGUgY2xlYW51cCBmdW5jdGlvbi4KLQotQlVHPWh0dHBzOi8vZ2l0aHVi LmNvbS9pYnVzL2lidXMvcHVsbC8yNDgyCi0tLS0KLSBNYWtlZmlsZS5hbSAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQotIGF1dG9nZW4uc2ggICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA3ICsrKystLS0KLSBkYXRhL2Rjb25mL21ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2ggfCAx MSArKysrKysrKy0tLQotIDMgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KLWluZGV4 IDE3ZTU2YjM4Li4xNjU0OGQyNSAxMDA2NDQKLS0tLSBhL01ha2VmaWxlLmFtCi0rKysgYi9NYWtl ZmlsZS5hbQotQEAgLTEzOSw3ICsxMzksNyBAQCBzcnBtOiBkaXN0IEBQQUNLQUdFX05BTUVALnNw ZWMKLSAJCQlAUEFDS0FHRV9OQU1FQC5zcGVjCi0gCi0gY2xlYW4tcnBtOgotLQkkKFJNKSAtciAi YHVuYW1lIC1pYCIKLSsJLSQoUk0pIC1yICJgdW5hbWUgLWlgIgotIAotIGNsZWFuLWxvY2FsOiBj bGVhbi1ycG0KLSAKLWRpZmYgLS1naXQgYS9hdXRvZ2VuLnNoIGIvYXV0b2dlbi5zaAotaW5kZXgg OWIxZDgzNDIuLjRlYThkNzU3IDEwMDc1NQotLS0tIGEvYXV0b2dlbi5zaAotKysrIGIvYXV0b2dl bi5zaAotQEAgLTQsNiArNCw3IEBACi0gOiAke3NyY2Rpcj0kKGRpcm5hbWUgJDApfQotIDogJHtz cmNkaXI6PS59Ci0gOiAke1NBVkVfRElTVF9GSUxFUzo9MH0KLSs6ICR7TUFLRTo9bWFrZX0KLSAK LSBvbGRkaXI9JChwd2QpCi0gIyBzaGVsbGNoZWNrIGRpc2FibGU9U0MyMDE2Ci1AQCAtNzMsNyAr NzQsNyBAQCBjZCAiJG9sZGRpciIKLSAgICAgKHRlc3QgIiQxIiA9ICItLWhlbHAiICkgJiYgewot ICAgICAgICAgZXhpdCAwCi0gICAgIH0gfHwgewotLSAgICAgICAgZWNobyAiTm93IHR5cGUgJ21h a2UnIHRvIGNvbXBpbGUgJFBLR19OQU1FIiB8fCBleGl0IDEKLSsgICAgICAgIGVjaG8gIk5vdyB0 eXBlICckTUFLRScgdG8gY29tcGlsZSAkUEtHX05BTUUiIHx8IGV4aXQgMQotICAgICB9Ci0gfSB8 fCB7Ci0gICAgIGVjaG8gIlNraXBwaW5nIGNvbmZpZ3VyZSBwcm9jZXNzLiIKLUBAIC04Myw4ICs4 NCw4IEBAIGNkICIkc3JjZGlyIgotICh0ZXN0ICJ4JFNBVkVfRElTVF9GSUxFUyIgPSAieDAiICkg JiYgewotICAgICAjIHJtIGVuZ2luZS9zaW1wbGUueG1sLmluIHNyYy9pYnVzZW1vamlnZW4uaCBz cmMvaWJ1c3VuaWNvZGVnZW4uaAotICAgICBmb3IgZCBpbiBlbmdpbmUgc3JjIHNyYy9jb21wb3Nl OyBkbwotLSAgICAgICAgZWNobyAibWFrZSAtQyAkZCBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMi Ci0tICAgICAgICBtYWtlIC1DICRkIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwotKyAgICAgICAg ZWNobyAiJE1BS0UgLUMgJGQgbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIgotKyAgICAgICAgJE1B S0UgLUMgJGQgbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0gICAgZG9uZQotIH0gfHwgOgotIGNk ICIkb2xkZGlyIgotZGlmZiAtLWdpdCBhL2RhdGEvZGNvbmYvbWFrZS1kY29uZi1vdmVycmlkZS1k Yi5zaCBiL2RhdGEvZGNvbmYvbWFrZS1kY29uZi1vdmVycmlkZS1kYi5zaAotaW5kZXggNjAxYzFj M2YuLjMyY2IxNTMwIDEwMDc1NQotLS0tIGEvZGF0YS9kY29uZi9tYWtlLWRjb25mLW92ZXJyaWRl LWRiLnNoCi0rKysgYi9kYXRhL2Rjb25mL21ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2gKLUBAIC0x LDQgKzEsNCBAQAotLSMhL2Jpbi9iYXNoCi0rIyEvYmluL3NoCi0gCi0gc2V0IC1lCi0gCi1AQCAt Niw3ICs2LDcgQEAgc2V0IC1lCi0gIyBicmVha3MgZGJ1cy1sYXVuY2guICBUaGVyZSdzIGRidXMt cnVuLXNlc3Npb24gd2hpY2ggaXMKLSAjIGJldHRlciwgYnV0IG5vdCBldmVyeW9uZSBoYXMgaXQg eWV0LgotIGV4cG9ydCBEQlVTX0ZBVEFMX1dBUk5JTkdTPTAKLS1leHBvcnQgVE1QRElSPSQobWt0 ZW1wIC1kIC0tdG1wZGlyPSIkUFdEIikKLStleHBvcnQgVE1QRElSPSQobWt0ZW1wIC1kIC1wICIk UFdEIikKLSBleHBvcnQgWERHX0NPTkZJR19IT01FPSIkVE1QRElSL2NvbmZpZyIKLSBleHBvcnQg WERHX0NBQ0hFX0hPTUU9IiRUTVBESVIvY2FjaGUiCi0gZXhwb3J0IEdTRVRUSU5HU19TQ0hFTUFf RElSPSIkVE1QRElSL3NjaGVtYXMiCi1AQCAtMTQsNyArMTQsMTIgQEAgbWtkaXIgLXAgJFhER19D T05GSUdfSE9NRSAkWERHX0NBQ0hFX0hPTUUgJEdTRVRUSU5HU19TQ0hFTUFfRElSCi0gCi0gZXZh bCBgZGJ1cy1sYXVuY2ggLS1zaC1zeW50YXhgCi0gCi0tdHJhcCAncm0gLXJmICRUTVBESVI7IGtp bGwgJERCVVNfU0VTU0lPTl9CVVNfUElEJyBFUlIKLSt0cmFwIGNsZWFudXAgRVhJVAotKwotK2Ns ZWFudXAoKSB7Ci0rICB0ZXN0ICQ/IC1lcSAwICYmIGV4aXQKLSsgIHJtIC1yZiAkVE1QRElSOyBr aWxsICREQlVTX1NFU1NJT05fQlVTX1BJRAotK30KLSAKLSAjIGluIGNhc2UgdGhhdCBzY2hlbWEg aXMgbm90IGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtCi0gZ2xpYi1jb21waWxlLXNjaGVtYXMgLS10 YXJnZXRkaXIgIiRHU0VUVElOR1NfU0NIRU1BX0RJUiIgIiRQV0QiCi0tLSAKLTIuMzkuMgotCi1G cm9tIDYzMGYzZjczZjYyYTEyMWFiYjFhZjViMjE1ZDE5M2FlYzRlMDA1M2MgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci1EYXRlOiBXZWQsIDUgQXByIDIwMjMgMTQ6Mjg6NDkgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0g Y29uZmlndXJlOiBVc2UgQUNfQ19CSUdFTkRJQU4gZm9yIEJTRCBzeXN0ZW1zCi0KLU5ldEJTRCBk b2VzIG5vdCBkZWZpbmUgX19CWVRFX09SREVSIGFuZCB1c2UgQUNfQ19CSUdFTkRJQU4gaW5zdGVh ZC4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvcHVsbC8yNDc3Ci0tLS0KLSBj b25maWd1cmUuYWMgfCAzMSArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg YS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IGVjZTFkOWVlLi5iM2VhY2JjYiAx MDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtMTUyLDM1 ICsxNTIsMTIgQEAgQUNfQ0hFQ0tfTElCKGMsIGRsY2xvc2UsIExJQkRMPSIiLCBbQUNfQ0hFQ0tf TElCKGRsLCBkbGNsb3NlLCBMSUJETD0iLWxkbCIpXSkKLSBBQ19TVUJTVChMSUJETCkKLSAKLSAj IENoZWNrIGVuZGlhbm5lc3MuCi0tQUNfTVNHX0NIRUNLSU5HKFtidWlsZCBzeXN0ZW0gZW5kaWFu bmVzc10pCi0tRU5ESUFOPXVua25vd24KLS1BQ19SVU5fSUZFTFNFKAotLSAgICBbQUNfTEFOR19Q Uk9HUkFNKAotLSAgICAgICAgW1sKLS0gICAgICAgICAgICAjaW5jbHVkZSA8ZW5kaWFuLmg+Ci0t ICAgICAgICAgICAgI2lmIF9fQllURV9PUkRFUiAhPSBfX0xJVFRMRV9FTkRJQU4KLS0gICAgICAg ICAgICAjZXJyb3IKLS0gICAgICAgICAgICAjZW5kaWYKLS0gICAgICAgIF1dCi0tICAgICldLAot LSAgICBbRU5ESUFOPWxpdHRsZV0KLS0pCi0tQUNfUlVOX0lGRUxTRSgKLS0gICAgW0FDX0xBTkdf UFJPR1JBTSgKLS0gICAgICAgIFtbCi0tICAgICAgICAgICAgI2luY2x1ZGUgPGVuZGlhbi5oPgot LSAgICAgICAgICAgICNpZiBfX0JZVEVfT1JERVIgIT0gX19CSUdfRU5ESUFOCi0tICAgICAgICAg ICAgI2Vycm9yCi0tICAgICAgICAgICAgI2VuZGlmCi0tICAgICAgICBdXQotLSAgICApXSwKLS0g ICAgW0VORElBTj1iaWddCi0tKQotK0FDX0NfQklHRU5ESUFOKFtFTkRJQU49YmlnXSwgW0VORElB Tj1saXR0bGVdLCBbRU5ESUFOPXVua25vd25dLCBbRU5ESUFOPWJpZ10pCi0gaWYgdGVzdCB4IiRF TkRJQU4iICE9IHhsaXR0bGUgIC1hIHgiJEVORElBTiIgIT0geGJpZzsgdGhlbgotLSAgICBBQ19N U0dfRVJST1IoW0Nhbm5vdCBkZWVybWluZSBlbmRpYW5uZXNzIHdpdGhvdXQgZW5kaWFuLmhdKQot KyAgICBBQ19NU0dfRVJST1IoW0Nhbm5vdCBkZXRlcm1pbmUgZW5kaWFubmVzcy4gVXNlIGFjX2N2 X2NfYmlnZW5kaWFuIHRvIHllcyBvciBub10pCi0gZmkKLS1BQ19NU0dfUkVTVUxUKCRFTkRJQU4p Ci0gQUNfU1VCU1QoRU5ESUFOKQotK0VORElBTl9NU0c9IiRFTkRJQU4gKGFjX2N2X2NfYmlnZW5k aWFuPSRhY19jdl9jX2JpZ2VuZGlhbikiCi0gCi0gIyBDaGVjayBwYWNrYWdlcy4KLSAjIENoZWNr IGdsaWIyLgotQEAgLTkwMiw3ICs4NzksNyBAQCBCdWlsZCBvcHRpb25zOgotICAgSW5zdGFsbCBw cmVmaXggICAgICAgICAgICAgICAgJHByZWZpeAotICAgQnVpbGQgc2hhcmVkIGxpYnMgICAgICAg ICAgICAgJGVuYWJsZV9zaGFyZWQKLSAgIEJ1aWxkIHN0YXRpYyBsaWJzICAgICAgICAgICAgICRl bmFibGVfc3RhdGljCi0tICBCdWlsZCBlbmRpYW5uZXNzICAgICAgICAgICAgICAkRU5ESUFOCi0r ICBCdWlsZCBlbmRpYW5uZXNzICAgICAgICAgICAgICAkRU5ESUFOX01TRwotICAgQ0ZMQUdTICAg ICAgICAgICAgICAgICAgICAgICAgJENGTEFHUwotICAgUFlUSE9OICAgICAgICAgICAgICAgICAg ICAgICAgJFBZVEhPTgotICAgUFlUSE9OMiAgICAgICAgICAgICAgICAgICAgICAgJFBZVEhPTjIK LS0tIAotMi4zOS4yCi0KLUZyb20gNjdhMGYzNmRlMDI5ZmUzYWRjMjFjOTBjN2ZiODY2OWQwZDY4 Y2JlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFRodSwgMTMgQXByIDIwMjMgMTI6MjI6NTAgKzA5MDAK LVN1YmplY3Q6IFtQQVRDSF0gc3JjOiBHZW5lcmF0ZSBpYnVzZW51bXR5cGVzLmggZm9yIGdlbi1p bnRlcm5hbC1jb21wb3NlLXRhYmxlCi0KLWBtYWtlIGNsZWFuYCBkZWxldGVzIGlidXNlbnVtdHlw ZXMuaCBhbmQgaWJ1cy5oIGluY3VkZXMgaWJ1c2VudW10eXBlcy5oCi1hbmQgaXQncyByZXF1aXJl ZCBieSB0aGUgZ2VuLWludGVybmFsLWNvbXBvc2UtdGFibGUgYnVpbGQuCi0KLUJVRz1odHRwczov L2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yNTAxCi0tLS0KLSBzcmMvTWFrZWZpbGUuYW0g fCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL3Ny Yy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQotaW5kZXggYzJlOGRhYTYuLmFkYzdmMDRh IDEwMDY0NAotLS0tIGEvc3JjL01ha2VmaWxlLmFtCi0rKysgYi9zcmMvTWFrZWZpbGUuYW0KLUBA IC0xOTQsNiArMTk0LDcgQEAgZ2VuX2ludGVybmFsX2NvbXBvc2VfdGFibGVfU09VUkNFUyA9IFwK LSAgICAgaWJ1c2Vycm9yLmMgICAgICAgICBcCi0gICAgIGlidXNrZXluYW1lcy5jICAgICAgXAot ICAgICBpYnVza2V5dW5pLmMgICAgICAgIFwKLSsgICAgaWJ1c2VudW10eXBlcy5oICAgICBcCi0g ICAgICQoTlVMTCkKLSBnZW5faW50ZXJuYWxfY29tcG9zZV90YWJsZV9DRkxBR1MgPSAkKEFNX0NG TEFHUykKLSBnZW5faW50ZXJuYWxfY29tcG9zZV90YWJsZV9MREFERCA9IFwKLS0tIAotMi4zOS4y Ci0KLUZyb20gMzEwYzQ0MmI2MmI1NjkyNTVmZmMzOWJjYTU1NzkyMGQwNjg4MWFkZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KLURhdGU6IFR1ZSwgMiBNYXkgMjAyMyAxMDowMDowMyArMDkwMAotU3ViamVjdDogW1BB VENIXSB1aS9ndGszOiBBZGQgd29ya2Fyb3VuZCBFbW9qaWVyIGNhbiBiZSBsYXVuY2hlZAotCi1n bm9tZS1zaGVsbCA0NCBwcmV2ZW50cyBpYnVzIGZyb20gbGF1bmNoaW5nIEVtb2ppZXIgR1VJLgot VGhpcyB3b3JrYXJvdW5kIGNhbiBsYXVuY2ggdGhlIEVtb2ppZXIgYnV0IHN0aWxsIGNhbm5vdCBv dXRwdXQKLXRoZSBzZWxlY3RlZCBlbW9qaSBjaGFyYWN0ZXIgdG8gdGhlIGZvY3VzZWQgYXBwbGlj YXRpb24uCi0KLVNvIGFub3RoZXIgd29ya2Fyb3VuZCBpcyBuZWVkZWQgd2l0aCB0aGlzIHBhdGNo LgotSS5lLiBUeXBlIEN0cmwtU2hpZnQtYyBrZXlzIHRvIGNvcHkgdGhlIHNlbGV0ZWQgZW1vamkg aW5zdGVhZCBvZgotRW50ZXIga2V5LgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1 cy9pc3N1ZXMvMjUwOQotQlVHPWh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1z aGVsbC8tL2lzc3Vlcy82NTE4Ci0tLS0KLSB1aS9ndGszL2Vtb2ppZXIudmFsYSB8IDcgKysrLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS91aS9ndGszL2Vtb2ppZXIudmFsYSBiL3VpL2d0azMvZW1vamllci52YWxhCi1p bmRleCA2OWZiOGFiZS4uYzljZjQ0NjkgMTAwNjQ0Ci0tLS0gYS91aS9ndGszL2Vtb2ppZXIudmFs YQotKysrIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKLUBAIC0yLDcgKzIsNyBAQAotICAqCi0gICog aWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKgotLSAqIENvcHlyaWdodCAoYykgMjAxNy0yMDIxIFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAo YykgMjAxNy0yMDIzIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot ICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0xNzk5LDEyICsxNzk5LDEyIEBAIHB1YmxpYyBjbGFz cyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7Ci0gCi0gICAgICAgICBtX3Jl YnVpbGRpbmdfZ3VpID0gdHJ1ZTsKLSAgICAgICAgIG1fcmVidWlsZGluZ19ndWlfdGltZW91dF9p ZCA9Ci0tICAgICAgICAgICAgICAgIEdMaWIuVGltZW91dC5hZGRfc2Vjb25kcygxMCwgKCkgPT4g ewotKyAgICAgICAgICAgICAgICBHTGliLlRpbWVvdXQuYWRkX3NlY29uZHMoNSwgKCkgPT4gewot ICAgICAgICAgICAgICAgICAgICAgaWYgKCFtX3JlYnVpbGRpbmdfZ3VpKSB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgbV9yZWJ1aWxkaW5nX2d1aV90aW1lb3V0X2lkID0gMDsKLSAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB3YXJuaW5nKCJSZWJ1aWxkaW5nIEdVSSBpcyB0aW1lIG91dC4i KTsKLSsgICAgICAgICAgICAgICAgICAgIGRlYnVnKCJSZWJ1aWxkaW5nIEdVSSBpcyB0aW1lIG91 dC4iKTsKLSAgICAgICAgICAgICAgICAgICAgIG1fcmVidWlsZGluZ19ndWkgPSBmYWxzZTsKLSAg ICAgICAgICAgICAgICAgICAgIG1fcmVidWlsZGluZ19ndWlfdGltZW91dF9pZCA9IDA7Ci0gICAg ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMjQ1OSw3ICsyNDU5LDYgQEAgcHVi bGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKLSAKLSAKLSAg ICAgcHVibGljIG92ZXJyaWRlIGJvb2wgZm9jdXNfaW5fZXZlbnQoR2RrLkV2ZW50Rm9jdXMgZXZl bnQpIHsKLS0gICAgICAgIG1fcmVidWlsZGluZ19ndWkgPSBmYWxzZTsKLSAgICAgICAgIHJldHVy biBiYXNlLmZvY3VzX2luX2V2ZW50KGV2ZW50KTsKLSAgICAgfQotIAotLS0gCi0yLjQwLjAKLQot RnJvbSAxYTI1OTc1ZDlmNTVmMThlYWI2MDllNGQxNDdkZDMyNjg5ZTM2N2YzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogRW1pbCBWZWxpa292IDxlbWlsLmwudmVsaWtvdkBnbWFpbC5j b20+Ci1EYXRlOiBTdW4sIDExIEp1biAyMDIzIDE2OjE2OjM1ICswOTAwCi1TdWJqZWN0OiBbUEFU Q0ggMS8yXSBtYWtlZmlsZTogZG9uJ3QgZ3ppcCB0aGUgbWFuIHBhZ2VzCi0KLURyb3AgdGhlIGd6 aXAgc3RlcCBmcm9tIHRoZSBtYW5wYWdlcyAtIGRpc3RyaWJ1dGlvbnMgYWxyZWFkeSBkbyB0aGF0 IGFzCi1uZWVkZWQuIEluIGFkZGl0aW9uIHRoaXMgcmVzb2x2ZXMgdGhlIGZpbmFsIHJlcHJvZHVj aWJpbGl0eSBpc3N1ZSB3aXRoCi1pYnVzLgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMv aWJ1cy9wdWxsLzI1MTQKLS0tLQotIGJ1cy9NYWtlZmlsZS5hbSAgICAgICAgfCA2ICstLS0tLQot IGRhdGEvZGNvbmYvTWFrZWZpbGUuYW0gfCA2ICstLS0tLQotIHNldHVwL01ha2VmaWxlLmFtICAg ICAgfCA2ICstLS0tLQotIHRvb2xzL01ha2VmaWxlLmFtICAgICAgfCA2ICstLS0tLQotIHVpL2d0 azMvTWFrZWZpbGUuYW0gICAgfCA2ICstLS0tLQotIDUgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRp b25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1cy9NYWtlZmlsZS5hbSBi L2J1cy9NYWtlZmlsZS5hbQotaW5kZXggZTE3M2VlMjUuLmQwNDQ1ZDAyIDEwMDY0NAotLS0tIGEv YnVzL01ha2VmaWxlLmFtCi0rKysgYi9idXMvTWFrZWZpbGUuYW0KLUBAIC0xNjksNyArMTY5LDYg QEAgRVhUUkFfRElTVCA9ICAgICAgICAgICAgICAgIFwKLSAKLSBDTEVBTkZJTEVTID0gXAotIAkk KG1hbl9vbmVfREFUQSkgICAgICAgICAgICBcCi0tCSQobWFuX29uZV9maWxlcykgICAgICAgIFwK LSAJJChOVUxMKQotIAotICQobGliaWJ1cyk6Ci1AQCAtMTgxLDE0ICsxODAsMTEgQEAgdGVzdDog aWJ1cy1kYWVtb24KLSAJCSQoYnVpbGRkaXIpL2lidXMtZGFlbW9uIC12Ci0gCi0gbWFuX29uZV9p bl9maWxlcyA9IGlidXMtZGFlbW9uLjEuaW4KLS1tYW5fb25lX2ZpbGVzID0gJChtYW5fb25lX2lu X2ZpbGVzOi4xLmluPS4xKQotLW1hbl9vbmVfREFUQSA9JChtYW5fb25lX2ZpbGVzOi4xPS4xLmd6 KSAKLSttYW5fb25lX0RBVEEgPSAkKG1hbl9vbmVfaW5fZmlsZXM6LjEuaW49LjEpCi0gbWFuX29u ZWRpciA9ICQobWFuZGlyKS9tYW4xCi0gJS4xOiAlLjEuaW4KLSAJJChBTV9WX0dFTikgc2VkIFwK LSAJCS1lICdzfEBWRVJTSU9OW0BdfCQoVkVSU0lPTil8ZycgJDwgPiAkQC50bXAgJiYgXAotIAkJ bXYgJEAudG1wICRACi0tJS4xLmd6OiAlLjEKLS0JJChBTV9WX0dFTikgZ3ppcCAtYyAkPCA+ICRA LnRtcCAmJiBtdiAkQC50bXAgJEAKLSAKLSAtaW5jbHVkZSAkKHRvcF9zcmNkaXIpL2dpdC5tawot ZGlmZiAtLWdpdCBhL2RhdGEvZGNvbmYvTWFrZWZpbGUuYW0gYi9kYXRhL2Rjb25mL01ha2VmaWxl LmFtCi1pbmRleCA1MzYwZjAzMy4uMjM1MmY3NzAgMTAwNjQ0Ci0tLS0gYS9kYXRhL2Rjb25mL01h a2VmaWxlLmFtCi0rKysgYi9kYXRhL2Rjb25mL01ha2VmaWxlLmFtCi1AQCAtMzgsMTUgKzM4LDEy IEBAIGRjb25mZGJfREFUQSA9IDAwLXVwc3RyZWFtLXNldHRpbmdzCi0gCQl7IHJjPSQkPzsgJChS TSkgLXJmICRAOyBleGl0ICQkcmM7IH0KLSAKLSBtYW5fNV9pbl9maWxlcyA9IDAwLXVwc3RyZWFt LXNldHRpbmdzLjUuaW4gaWJ1cy41LmluCi0tbWFuXzVfZmlsZXMgPSAkKG1hbl81X2luX2ZpbGVz Oi41LmluPS41KQotLW1hbl81X0RBVEEgPSQobWFuXzVfZmlsZXM6LjU9LjUuZ3opCi0rbWFuXzVf REFUQSA9ICQobWFuXzVfaW5fZmlsZXM6LjUuaW49LjUpCi0gbWFuXzVkaXIgPSAkKG1hbmRpcikv bWFuNQotICUuNTogJS41LmluCi0gCSQoQU1fVl9HRU4pIHNlZCBcCi0gCSAgICAtZSAnc3xAVkVS U0lPTltAXXwkKFZFUlNJT04pfGcnICQ8ID4gJEAudG1wICYmIFwKLSAJICAgIG12ICRALnRtcCAk QAotLSUuNS5nejogJS41Ci0tCSQoQU1fVl9HRU4pIGd6aXAgLWMgJDwgPiAkQC50bXAgJiYgbXYg JEAudG1wICRACi0gCi0gaW5zdGFsbC1kYXRhLWhvb2s6Ci0gCWlmIHRlc3QgLXogIiQoREVTVERJ UikiOyB0aGVuIFwKLUBAIC02Myw3ICs2MCw2IEBAIEVYVFJBX0RJU1QgPSBcCi0gCi0gQ0xFQU5G SUxFUyA9IFwKLSAgICAgJChtYW5fNV9EQVRBKSBcCi0tICAgICQobWFuXzVfZmlsZXMpIFwKLSAg ICAgJChOVUxMKQotIAotIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gXAotZGlmZiAtLWdpdCBhL3Nl dHVwL01ha2VmaWxlLmFtIGIvc2V0dXAvTWFrZWZpbGUuYW0KLWluZGV4IDM0YzhmMTM2Li5iMzRh YThmYyAxMDA2NDQKLS0tLSBhL3NldHVwL01ha2VmaWxlLmFtCi0rKysgYi9zZXR1cC9NYWtlZmls ZS5hbQotQEAgLTU2LDIwICs1NiwxNiBAQCBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5TZXR1cC5kZXNr dG9wOiBpYnVzLXNldHVwLmRlc2t0b3AKLSAJJChBTV9WX0dFTikgJChNU0dGTVQpIC0tZGVza3Rv cCAtLXRlbXBsYXRlICQ8IC1kICQodG9wX3NyY2RpcikvcG8gLW8gJEAKLSAKLSBtYW5fb25lX2lu X2ZpbGVzID0gaWJ1cy1zZXR1cC4xLmluCi0tbWFuX29uZV9maWxlcyA9ICQobWFuX29uZV9pbl9m aWxlczouMS5pbj0uMSkKLS1tYW5fb25lX0RBVEEgPSQobWFuX29uZV9maWxlczouMT0uMS5neikg Ci0rbWFuX29uZV9EQVRBID0gJChtYW5fb25lX2luX2ZpbGVzOi4xLmluPS4xKQotIG1hbl9vbmVk aXIgPSAkKG1hbmRpcikvbWFuMQotICUuMTogJS4xLmluCi0gCSQoQU1fVl9HRU4pIHNlZCBcCi0g CQktZSAnc3xAVkVSU0lPTltAXXwkKFZFUlNJT04pfGcnICQ8ID4gJEAudG1wICYmIFwKLSAJCW12 ICRALnRtcCAkQAotLSUuMS5nejogJS4xCi0tCSQoQU1fVl9HRU4pIGd6aXAgLWMgJDwgPiAkQC50 bXAgJiYgbXYgJEAudG1wICRACi0gCi0gQ0xFQU5GSUxFUyA9IFwKLSAgICAgJChkZXNrdG9wX0RB VEEpIFwKLSAgICAgJChtYW5fb25lX0RBVEEpIFwKLS0gICAgJChtYW5fb25lX2ZpbGVzKSBcCi0g ICAgICoucHljIFwKLSAgICAgaWJ1cy1zZXR1cCBcCi0gICAgICQoTlVMTCkKLWRpZmYgLS1naXQg YS90b29scy9NYWtlZmlsZS5hbSBiL3Rvb2xzL01ha2VmaWxlLmFtCi1pbmRleCBlMzAwZjlmMy4u MGQwMGFiZWQgMTAwNjQ0Ci0tLS0gYS90b29scy9NYWtlZmlsZS5hbQotKysrIGIvdG9vbHMvTWFr ZWZpbGUuYW0KLUBAIC0xMTMsMTUgKzExMywxMiBAQCBsaWJpYnVzaW1tb2R1bGVfbGFfTERGTEFH UyA9IFwKLSAgICAgJChOVUxMKQotIAotIG1hbl9vbmVfaW5fZmlsZXMgPSBpYnVzLjEuaW4KLS1t YW5fb25lX2ZpbGVzID0gJChtYW5fb25lX2luX2ZpbGVzOi4xLmluPS4xKQotLW1hbl9vbmVfREFU QSA9JChtYW5fb25lX2ZpbGVzOi4xPS4xLmd6KQotK21hbl9vbmVfREFUQSA9ICQobWFuX29uZV9p bl9maWxlczouMS5pbj0uMSkKLSBtYW5fb25lZGlyID0gJChtYW5kaXIpL21hbjEKLSAlLjE6ICUu MS5pbgotIAkkKEFNX1ZfR0VOKSBzZWQgXAotIAkJLWUgJ3N8QFZFUlNJT05bQF18JChWRVJTSU9O KXxnJyAkPCA+ICRALnRtcCAmJiBcCi0gCQltdiAkQC50bXAgJEAKLS0lLjEuZ3o6ICUuMQotLQkk KEFNX1ZfR0VOKSBnemlwIC1jICQ8ID4gJEAudG1wICYmIG12ICRALnRtcCAkQAotIAotIEVYVFJB X0RJU1QgPSBcCi0gICAgICQoaWJ1c19pbW1vZHVsZV92YXBpKSBcCi1AQCAtMTMzLDcgKzEzMCw2 IEBAIEVYVFJBX0RJU1QgPSBcCi0gCi0gQ0xFQU5GSUxFUyA9IFwKLSAgICAgJChtYW5fb25lX0RB VEEpIFwKLS0gICAgJChtYW5fb25lX2ZpbGVzKSBcCi0gICAgICQoTlVMTCkKLSAKLSBpZiBFTkFC TEVfRU1PSklfRElDVAotZGlmZiAtLWdpdCBhL3VpL2d0azMvTWFrZWZpbGUuYW0gYi91aS9ndGsz L01ha2VmaWxlLmFtCi1pbmRleCAyYTljYWJkZS4uNWUxYTg1MTAgMTAwNjQ0Ci0tLS0gYS91aS9n dGszL01ha2VmaWxlLmFtCi0rKysgYi91aS9ndGszL01ha2VmaWxlLmFtCi1AQCAtMjU3LDE1ICsy NTcsMTIgQEAgcGFuZWxiaW5kaW5nLm86ICQoc3JjZGlyKS9wYW5lbGJpbmRpbmcuYwotIAotIE1B SU5UQUlORVJDTEVBTkZJTEVTICs9IGV4dGVuc2lvbi5jIHBhbmVsYmluZGluZy5jCi0gCi0tbWFu X3NldmVuX2ZpbGVzID0gJChtYW5fc2V2ZW5faW5fZmlsZXM6LjcuaW49LjcpCi0tbWFuX3NldmVu X0RBVEEgPSQobWFuX3NldmVuX2ZpbGVzOi43PS43Lmd6KQotK21hbl9zZXZlbl9EQVRBID0gJCht YW5fc2V2ZW5faW5fZmlsZXM6LjcuaW49LjcpCi0gbWFuX3NldmVuZGlyID0gJChtYW5kaXIpL21h bjcKLSAlLjc6ICUuNy5pbgotIAkkKEFNX1ZfR0VOKSBzZWQgXAotIAkgICAgLWUgJ3N8QFZFUlNJ T05bQF18JChWRVJTSU9OKXxnJyAkPCA+ICRALnRtcCAmJiBcCi0gCSAgICBtdiAkQC50bXAgJEAK LS0lLjcuZ3o6ICUuNwotLQkkKEFNX1ZfR0VOKSBnemlwIC1jICQ8ID4gJEAudG1wICYmIG12ICRA LnRtcCAkQAotIAotIGRlc2t0b3BfaW5fZmlsZXMgPSBcCi0gICAgIGlidXMtdWktZW1vamllci5k ZXNrdG9wLmluIFwKLUBAIC0yOTMsNyArMjkwLDYgQEAgQ0xFQU5GSUxFUyArPSBcCi0gICAgICQo ZGVza3RvcF9EQVRBKSBcCi0gICAgICQoZGVza3RvcF9ub3RyYW5zX2ZpbGVzKSBcCi0gICAgICQo bWFuX3NldmVuX0RBVEEpIFwKLS0gICAgJChtYW5fc2V2ZW5fZmlsZXMpIFwKLSAgICAgJChOVUxM KQotIAotIGVuZGlmCi0tLSAKLTIuNDAuMAotCi1Gcm9tIDAzYTQ4NmMxZWM5ODY0N2U3ZjhjN2Ri YjcwZTZlNGQzODk4YzkzMjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBFbWlsIFZl bGlrb3YgPGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMTEgSnVuIDIwMjMg MTY6MTY6NDAgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIG1ha2VmaWxlOiBtYW5hZ2UgdGhl IG1hbnBhZ2VzIHZpYSBBQ19DT05GSUdfRklMRVMoKQotCi1UaGUgQUNfQ09ORklHX0ZJTEVTIG1h Y3JvIGFscmVhZHkga25vd24gaG93IHRvIGhhbmRsZSBAVkVSU0lPTkAKLXN1YnN0aXR1dGlvbiwg d2hpbGUgYWxzbyBlbnN1cmluZyB0aGUgaW5wdXQgZmlsZXMgYXJlIGluIHRoZSB0YXJiYWxsCi0o RVhUUkFfRElTVCkgYW5kIHN1YnN0aXR1dGVkIGZpbGVzIGFyZSByZW1vdmVkIG9uIG1ha2UgZGlz dGNsZWFuCi0oQ09ORklHX0NMRUFOX0ZJTEVTKS4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9p YnVzL2lidXMvcHVsbC8yNTE0Ci0tLS0KLSBidXMvTWFrZWZpbGUuYW0gICAgICAgIHwgMTIgKy0t LS0tLS0tLS0tCi0gY29uZmlndXJlLmFjICAgICAgICAgICB8ICA2ICsrKysrKwotIGRhdGEvZGNv bmYvTWFrZWZpbGUuYW0gfCAxMiArLS0tLS0tLS0tLS0KLSBzZXR1cC9NYWtlZmlsZS5hbSAgICAg IHwgIDkgKy0tLS0tLS0tCi0gdG9vbHMvTWFrZWZpbGUuYW0gICAgICB8IDEyICstLS0tLS0tLS0t LQotIHVpL2d0azMvTWFrZWZpbGUuYW0gICAgfCAxMCArLS0tLS0tLS0tCi0gNiBmaWxlcyBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1 cy9NYWtlZmlsZS5hbSBiL2J1cy9NYWtlZmlsZS5hbQotaW5kZXggZDA0NDVkMDIuLjk5NzE1YTE1 IDEwMDY0NAotLS0tIGEvYnVzL01ha2VmaWxlLmFtCi0rKysgYi9idXMvTWFrZWZpbGUuYW0KLUBA IC0xNjMsMTQgKzE2Myw5IEBAIHRlc3Rfc3RyZXNzX0xEQUREID0gXAotIAkkKE5VTEwpCi0gCi0g RVhUUkFfRElTVCA9ICAgICAgICAgICAgICAgIFwKLS0JJChtYW5fb25lX2luX2ZpbGVzKSAgICAg XAotIAltYXJzaGFsZXJzLmxpc3QgICAgICAgICBcCi0gCSQoTlVMTCkKLSAKLS1DTEVBTkZJTEVT ID0gXAotLQkkKG1hbl9vbmVfREFUQSkgICAgICAgICAgICBcCi0tCSQoTlVMTCkKLS0KLSAkKGxp YmlidXMpOgotIAkkKE1BS0UpIC1DICQodG9wX2J1aWxkZGlyKS9zcmMKLSAKLUBAIC0xNzksMTIg KzE3NCw3IEBAIHRlc3Q6IGlidXMtZGFlbW9uCi0gCQlHX0RFQlVHPWZhdGFsX3dhcm5pbmdzIFwK LSAJCSQoYnVpbGRkaXIpL2lidXMtZGFlbW9uIC12Ci0gCi0tbWFuX29uZV9pbl9maWxlcyA9IGli dXMtZGFlbW9uLjEuaW4KLS1tYW5fb25lX0RBVEEgPSAkKG1hbl9vbmVfaW5fZmlsZXM6LjEuaW49 LjEpCi0rbWFuX29uZV9EQVRBID0gaWJ1cy1kYWVtb24uMQotIG1hbl9vbmVkaXIgPSAkKG1hbmRp cikvbWFuMQotLSUuMTogJS4xLmluCi0tCSQoQU1fVl9HRU4pIHNlZCBcCi0tCQktZSAnc3xAVkVS U0lPTltAXXwkKFZFUlNJT04pfGcnICQ8ID4gJEAudG1wICYmIFwKLS0JCW12ICRALnRtcCAkQAot IAotIC1pbmNsdWRlICQodG9wX3NyY2RpcikvZ2l0Lm1rCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJl LmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBiM2VhY2JjYi4uNzM1ODNiYWIgMTAwNjQ0Ci0tLS0g YS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTgzMSw2ICs4MzEsNyBAQCBi aW5kaW5ncy9NYWtlZmlsZQotIGJpbmRpbmdzL3B5Z29iamVjdC9NYWtlZmlsZQotIGJpbmRpbmdz L3ZhbGEvTWFrZWZpbGUKLSBidXMvTWFrZWZpbGUKLStidXMvaWJ1cy1kYWVtb24uMQotIGJ1cy9z ZXJ2aWNlcy9NYWtlZmlsZQotIGNsaWVudC9NYWtlZmlsZQotIGNsaWVudC9ndGsyL01ha2VmaWxl Ci1AQCAtODQ3LDYgKzg0OCw4IEBAIGRhdGEvaWNvbnMvTWFrZWZpbGUKLSBkYXRhL2l0cy9NYWtl ZmlsZQotIGRhdGEva2V5bWFwcy9NYWtlZmlsZQotIGRhdGEvZGNvbmYvTWFrZWZpbGUKLStkYXRh L2Rjb25mLzAwLXVwc3RyZWFtLXNldHRpbmdzLjUKLStkYXRhL2Rjb25mL2lidXMuNQotIGRvY3Mv TWFrZWZpbGUKLSBkb2NzL3JlZmVyZW5jZS9NYWtlZmlsZQotIGRvY3MvcmVmZXJlbmNlL2lidXMv aWJ1cy1kb2NzLnNnbWwKLUBAIC04NTgsMTMgKzg2MSwxNiBAQCBpYnVzL2ludGVyZmFjZS9NYWtl ZmlsZQotIG00L01ha2VmaWxlCi0gcG9ydGFsL01ha2VmaWxlCi0gc2V0dXAvTWFrZWZpbGUKLStz ZXR1cC9pYnVzLXNldHVwLjEKLSBzcmMvTWFrZWZpbGUKLSBzcmMvY29tcG9zZS9NYWtlZmlsZQot IHNyYy9pYnVzdmVyc2lvbi5oCi0gc3JjL3Rlc3RzL01ha2VmaWxlCi0gdG9vbHMvTWFrZWZpbGUK LSt0b29scy9pYnVzLjEKLSB1aS9NYWtlZmlsZQotIHVpL2d0azMvTWFrZWZpbGUKLSt1aS9ndGsz L2lidXMtZW1vamkuNwotIHV0aWwvTWFrZWZpbGUKLSB1dGlsL0lNZGtpdC9NYWtlZmlsZQotIE1h a2VmaWxlCi1kaWZmIC0tZ2l0IGEvZGF0YS9kY29uZi9NYWtlZmlsZS5hbSBiL2RhdGEvZGNvbmYv TWFrZWZpbGUuYW0KLWluZGV4IDIzNTJmNzcwLi5iMDYwMWFhOCAxMDA2NDQKLS0tLSBhL2RhdGEv ZGNvbmYvTWFrZWZpbGUuYW0KLSsrKyBiL2RhdGEvZGNvbmYvTWFrZWZpbGUuYW0KLUBAIC0zNywx MyArMzcsOCBAQCBkY29uZmRiX0RBVEEgPSAwMC11cHN0cmVhbS1zZXR0aW5ncwotIAkkKEFNX1Zf R0VOKSAkKHNyY2RpcikvbWFrZS1kY29uZi1vdmVycmlkZS1kYi5zaCA+ICRAIHx8IFwKLSAJCXsg cmM9JCQ/OyAkKFJNKSAtcmYgJEA7IGV4aXQgJCRyYzsgfQotIAotLW1hbl81X2luX2ZpbGVzID0g MDAtdXBzdHJlYW0tc2V0dGluZ3MuNS5pbiBpYnVzLjUuaW4KLS1tYW5fNV9EQVRBID0gJChtYW5f NV9pbl9maWxlczouNS5pbj0uNSkKLSttYW5fNV9EQVRBID0gMDAtdXBzdHJlYW0tc2V0dGluZ3Mu NSBpYnVzLjUKLSBtYW5fNWRpciA9ICQobWFuZGlyKS9tYW41Ci0tJS41OiAlLjUuaW4KLS0JJChB TV9WX0dFTikgc2VkIFwKLS0JICAgIC1lICdzfEBWRVJTSU9OW0BdfCQoVkVSU0lPTil8ZycgJDwg PiAkQC50bXAgJiYgXAotLQkgICAgbXYgJEAudG1wICRACi0gCi0gaW5zdGFsbC1kYXRhLWhvb2s6 Ci0gCWlmIHRlc3QgLXogIiQoREVTVERJUikiOyB0aGVuIFwKLUBAIC01MiwxNiArNDcsMTEgQEAg aW5zdGFsbC1kYXRhLWhvb2s6Ci0gCi0gRVhUUkFfRElTVCA9IFwKLSAgICAgJChnc2V0dGluZ3Nf U0NIRU1BUykgXAotLSAgICAkKG1hbl81X2luX2ZpbGVzKSBcCi0gICAgIG1ha2UtZGNvbmYtb3Zl cnJpZGUtZGIuc2ggXAotICAgICBwcm9maWxlL2lidXMgXAotICAgICAwMC11cHN0cmVhbS1zZXR0 aW5ncyBcCi0gICAgICQoTlVMTCkKLSAKLS1DTEVBTkZJTEVTID0gXAotLSAgICAkKG1hbl81X0RB VEEpIFwKLS0gICAgJChOVUxMKQotLQotIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gXAotICAgICAw MC11cHN0cmVhbS1zZXR0aW5ncyBcCi0gICAgICQoTlVMTCkKLWRpZmYgLS1naXQgYS9zZXR1cC9N YWtlZmlsZS5hbSBiL3NldHVwL01ha2VmaWxlLmFtCi1pbmRleCBiMzRhYThmYy4uODMxZjg4M2Mg MTAwNjQ0Ci0tLS0gYS9zZXR1cC9NYWtlZmlsZS5hbQotKysrIGIvc2V0dXAvTWFrZWZpbGUuYW0K LUBAIC01NSwyNCArNTUsMTcgQEAgZGVza3RvcGRpciA9ICQoZGF0YWRpcikvYXBwbGljYXRpb25z Ci0gb3JnLmZyZWVkZXNrdG9wLklCdXMuU2V0dXAuZGVza3RvcDogaWJ1cy1zZXR1cC5kZXNrdG9w Ci0gCSQoQU1fVl9HRU4pICQoTVNHRk1UKSAtLWRlc2t0b3AgLS10ZW1wbGF0ZSAkPCAtZCAkKHRv cF9zcmNkaXIpL3BvIC1vICRACi0gCi0tbWFuX29uZV9pbl9maWxlcyA9IGlidXMtc2V0dXAuMS5p bgotLW1hbl9vbmVfREFUQSA9ICQobWFuX29uZV9pbl9maWxlczouMS5pbj0uMSkKLSttYW5fb25l X0RBVEEgPSBpYnVzLXNldHVwLjEKLSBtYW5fb25lZGlyID0gJChtYW5kaXIpL21hbjEKLS0lLjE6 ICUuMS5pbgotLQkkKEFNX1ZfR0VOKSBzZWQgXAotLQkJLWUgJ3N8QFZFUlNJT05bQF18JChWRVJT SU9OKXxnJyAkPCA+ICRALnRtcCAmJiBcCi0tCQltdiAkQC50bXAgJEAKLSAKLSBDTEVBTkZJTEVT ID0gXAotICAgICAkKGRlc2t0b3BfREFUQSkgXAotLSAgICAkKG1hbl9vbmVfREFUQSkgXAotICAg ICAqLnB5YyBcCi0gICAgIGlidXMtc2V0dXAgXAotICAgICAkKE5VTEwpCi0gCi0gRVhUUkFfRElT VCA9IFwKLSAgICAgJChkZXNrdG9wX25vdHJhbnNfZmlsZXMpIFwKLS0gICAgJChtYW5fb25lX2lu X2ZpbGVzKSBcCi0gICAgIGlidXMtc2V0dXAuaW4gXAotICAgICBzZXR1cC51aSBcCi0gICAgICQo TlVMTCkKLWRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5hbSBiL3Rvb2xzL01ha2VmaWxlLmFt Ci1pbmRleCAwZDAwYWJlZC4uZGFmMThmMjggMTAwNjQ0Ci0tLS0gYS90b29scy9NYWtlZmlsZS5h bQotKysrIGIvdG9vbHMvTWFrZWZpbGUuYW0KLUBAIC0xMTIsMjYgKzExMiwxNiBAQCBsaWJpYnVz aW1tb2R1bGVfbGFfTERGTEFHUyA9IFwKLSAgICAgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4ICJpYnVz Xy4qIiAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgJChOVUxMKQotIAotLW1hbl9vbmVfaW5f ZmlsZXMgPSBpYnVzLjEuaW4KLS1tYW5fb25lX0RBVEEgPSAkKG1hbl9vbmVfaW5fZmlsZXM6LjEu aW49LjEpCi0rbWFuX29uZV9EQVRBID0gaWJ1cy4xCi0gbWFuX29uZWRpciA9ICQobWFuZGlyKS9t YW4xCi0tJS4xOiAlLjEuaW4KLS0JJChBTV9WX0dFTikgc2VkIFwKLS0JCS1lICdzfEBWRVJTSU9O W0BdfCQoVkVSU0lPTil8ZycgJDwgPiAkQC50bXAgJiYgXAotLQkJbXYgJEAudG1wICRACi0gCi0g RVhUUkFfRElTVCA9IFwKLSAgICAgJChpYnVzX2ltbW9kdWxlX3ZhcGkpIFwKLSAgICAgJChpYnVz aW1tb2R1bGVfZ2lyKSBcCi0tICAgICQobWFuX29uZV9pbl9maWxlcykgXAotICAgICBpYnVzLmJh c2ggXAotICAgICBJQnVzSU1Nb2R1bGUtMS4wLm1ldGFkYXRhIFwKLSAgICAgJChOVUxMKQotIAot LUNMRUFORklMRVMgPSBcCi0tICAgICQobWFuX29uZV9EQVRBKSBcCi0tICAgICQoTlVMTCkKLS0K LSBpZiBFTkFCTEVfRU1PSklfRElDVAotIGlmIEVOQUJMRV9VSQotIEFNX1ZBTEFGTEFHUyArPSBc Ci1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9NYWtlZmlsZS5hbSBiL3VpL2d0azMvTWFrZWZpbGUuYW0K LWluZGV4IDVlMWE4NTEwLi40YTY1MDZmZSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvTWFrZWZpbGUu YW0KLSsrKyBiL3VpL2d0azMvTWFrZWZpbGUuYW0KLUBAIC0xNDcsOCArMTQ3LDYgQEAgZW1vamlf aGVhZGVycyA9ICAgICAgICAgXAotICAgICBpYnVzZW1vamlkaWFsb2cuaCAgIFwKLSAgICAgJChO VUxMKQotIAotLW1hbl9zZXZlbl9pbl9maWxlcyA9IGlidXMtZW1vamkuNy5pbgotLQotICMgUmVm ZXJlbmNlczoKLSAjIGxpYmFwcGluZGljYXRvci9zcmMvbm90aWZpY2F0aW9uLWl0ZW0ueG1sCi0g IyBsaWJhcHBpbmRpY2F0b3Ivc3JjL25vdGlmaWNhdGlvbi13YXRjaGVyLnhtbAotQEAgLTE1Niw3 ICsxNTQsNiBAQCBtYW5fc2V2ZW5faW5fZmlsZXMgPSBpYnVzLWVtb2ppLjcuaW4KLSAjIGtkZWxp YnMva2RldWkva25vdGlmaWNhdGlvbnMvc3JjL29yZy5rZGUuU3RhdHVzTm90aWZpZXJXYXRjaGVy LnhtbAotIEVYVFJBX0RJU1QgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICQo ZW1vamlfaGVhZGVycykgICAgICAgICAgICAgICAgICAgIFwKLS0gICAgJChtYW5fc2V2ZW5faW5f ZmlsZXMpICAgICAgICAgICAgICAgXAotICAgICBlbW9qaWVyYXBwLnZhbGEgICAgICAgICAgICAg ICAgICAgICBcCi0gICAgIGV4dGVuc2lvbi52YWxhICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgZ3RrZXh0ZW5zaW9uLnhtbC5pbiAgICAgICAgICAgICAgICAgXAotQEAgLTI1NywxMiArMjU0 LDggQEAgcGFuZWxiaW5kaW5nLm86ICQoc3JjZGlyKS9wYW5lbGJpbmRpbmcuYwotIAotIE1BSU5U QUlORVJDTEVBTkZJTEVTICs9IGV4dGVuc2lvbi5jIHBhbmVsYmluZGluZy5jCi0gCi0tbWFuX3Nl dmVuX0RBVEEgPSAkKG1hbl9zZXZlbl9pbl9maWxlczouNy5pbj0uNykKLSttYW5fc2V2ZW5fREFU QSA9IGlidXMtZW1vamkuNwotIG1hbl9zZXZlbmRpciA9ICQobWFuZGlyKS9tYW43Ci0tJS43OiAl LjcuaW4KLS0JJChBTV9WX0dFTikgc2VkIFwKLS0JICAgIC1lICdzfEBWRVJTSU9OW0BdfCQoVkVS U0lPTil8ZycgJDwgPiAkQC50bXAgJiYgXAotLQkgICAgbXYgJEAudG1wICRACi0gCi0gZGVza3Rv cF9pbl9maWxlcyA9IFwKLSAgICAgaWJ1cy11aS1lbW9qaWVyLmRlc2t0b3AuaW4gXAotQEAgLTI4 OSw3ICsyODIsNiBAQCBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5QYW5lbC5FeHRlbnNpb24uR3RrMy5k ZXNrdG9wOiBpYnVzLWV4dGVuc2lvbi1ndGszLmRlc2t0b3AKLSBDTEVBTkZJTEVTICs9IFwKLSAg ICAgJChkZXNrdG9wX0RBVEEpIFwKLSAgICAgJChkZXNrdG9wX25vdHJhbnNfZmlsZXMpIFwKLS0g ICAgJChtYW5fc2V2ZW5fREFUQSkgXAotICAgICAkKE5VTEwpCi0gCi0gZW5kaWYKLS0tIAotMi40 MC4wCi0KLUZyb20gNDgzMWVkNTk1YjM0NmYxYWI5MjI0YjQ0ZTU3MTUzMjc4NWNhODZjNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KLURhdGU6IFN1biwgMTEgSnVuIDIwMjMgMTY6MjU6NTYgKzA5MDAKLVN1YmplY3Q6 IFtQQVRDSF0gc2V0dXA6IFVuc2VsZWN0IEFkZCBidXR0b24gaW4gU2VsZWN0IElucHV0IE1ldGhv ZCBkaWFsb2cKLQotQWZ0ZXIgY2xpY2sgIk1vcmUiIExpc3RCb3hSb3cgY2VsbCBpbiB0aGUgIlNl bGVjdCBhbiBpbnB1dCBtZXRob2QiCi1kaWFsb2csICJBZGQiIGJ1dHRvbiBpcyBzZW5zaXRpdmUg YnV0IGNsaWNraW5nICJBZGQiIGJ1dHRvbiBjYXVzZXMKLWEgU0VHViBpbiBlbmdpbmVkaWFsb2cu cHk6Z2V0X3NlbGVjdGVkX2VuZ2luZSgpIGJlY2F1c2UgdGhlIG1vcmUgY2VsbAotaGFzIG5vIGVu Z2luZSBtZW1tYmVyLgotCi1CVUc9cmhieiMyMjEzMTQ1Ci0tLS0KLSBzZXR1cC9lbmdpbmVkaWFs b2cucHkgfCA0ICsrKy0KLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zZXR1cC9lbmdpbmVkaWFsb2cucHkgYi9zZXR1cC9lbmdp bmVkaWFsb2cucHkKLWluZGV4IDQ3MGY4MDFjLi5iYTZhNDgxOSAxMDA2NDQKLS0tLSBhL3NldHVw L2VuZ2luZWRpYWxvZy5weQotKysrIGIvc2V0dXAvZW5naW5lZGlhbG9nLnB5Ci1AQCAtNCw3ICs0 LDcgQEAKLSAjIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gIwotICMgQ29weXJpZ2h0IChjKSAyMDE1 IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAy MDE1LTIwMjEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBD b3B5cmlnaHQgKGMpIDIwMTUtMjAyMyBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KLSAjIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IFJlZCBIYXQsIEluYy4KLSAjCi0g IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCi1AQCAtMTQ1LDYgKzE0NSw4IEBAIGNsYXNzIEVuZ2luZURpYWxvZyhHdGsuRGlhbG9n KToKLSAKLSAgICAgZGVmIF9fcm93X2FjdGl2YXRlZChzZWxmLCBib3gsIHJvdyk6Ci0gICAgICAg ICBpZiByb3cgPT0gc2VsZi5fX21vcmVfcm93OgotKyAgICAgICAgICAgICMgVW5kbyBzZW5zaXRp dmUgR3RrLlJlc3BvbnNlVHlwZS5BUFBMWSBidXR0b24KLSsgICAgICAgICAgICBzZWxmLl9fbGlz dC51bnNlbGVjdF9yb3cocm93KQotICAgICAgICAgICAgIHNlbGYuX19zaG93X21vcmUoKQotICAg ICAgICAgICAgIHJldHVybgotICAgICAgICAgaWYgcm93LmJhY2s6Ci0tLSAKLTIuNDAuMAotCi1G cm9tIDc2ZjJmNGEzYWEyNWIzOTlkNjVjOTQ3ZDc2ZDYxZDVhZTQ3MjNiYzcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBNYXR0IFR1cm5lciA8bWF0dHN0ODhAZ21haWwuY29tPgotRGF0 ZTogU3VuLCAxMSBKdW4gMjAyMyAxOTo1OToxNyArMDkwMAotU3ViamVjdDogW1BBVENIIDEvMl0g Y29uZmlndXJlOiBSdW4gYXV0b3VwZGF0ZQotCi1Bdm9pZHMgdGhlc2Ugd2FybmluZ3Mgd2hlbiBy dW5uaW5nIGF1dG9nZW4uc2g6Ci0KLWNvbmZpZ3VyZS5hYzo2Nzogd2FybmluZzogVGhlIG1hY3Jv IGBBQ19HTlVfU09VUkNFJyBpcyBvYnNvbGV0ZS4KLWNvbmZpZ3VyZS5hYzo2NzogWW91IHNob3Vs ZCBydW4gYXV0b3VwZGF0ZS4KLS4vbGliL2F1dG9jb25mL3NwZWNpZmljLm00OjMxMTogQUNfR05V X1NPVVJDRSBpcyBleHBhbmRlZCBmcm9tLi4uCi1jb25maWd1cmUuYWM6Njc6IHRoZSB0b3AgbGV2 ZWwKLWNvbmZpZ3VyZS5hYzoxMjk6IHdhcm5pbmc6IFRoZSBtYWNybyBgQUNfUFJPR19DQ19TVERD JyBpcyBvYnNvbGV0ZS4KLWNvbmZpZ3VyZS5hYzoxMjk6IFlvdSBzaG91bGQgcnVuIGF1dG91cGRh dGUuCi0uL2xpYi9hdXRvY29uZi9jLm00OjE2NzE6IEFDX1BST0dfQ0NfU1REQyBpcyBleHBhbmRl ZCBmcm9tLi4uCi1jb25maWd1cmUuYWM6MTI5OiB0aGUgdG9wIGxldmVsCi1jb25maWd1cmUuYWM6 MTM5OiB3YXJuaW5nOiBUaGUgbWFjcm8gYEFNX0RJU0FCTEVfU1RBVElDJyBpcyBvYnNvbGV0ZS4K LWNvbmZpZ3VyZS5hYzoxMzk6IFlvdSBzaG91bGQgcnVuIGF1dG91cGRhdGUuCi1tNC9sdG9wdGlv bnMubTQ6MjYwOiBBTV9ESVNBQkxFX1NUQVRJQyBpcyBleHBhbmRlZCBmcm9tLi4uCi1jb25maWd1 cmUuYWM6MTM5OiB0aGUgdG9wIGxldmVsCi1jb25maWd1cmUuYWM6MTQwOiB3YXJuaW5nOiBUaGUg bWFjcm8gYEFDX0lTQ19QT1NJWCcgaXMgb2Jzb2xldGUuCi1jb25maWd1cmUuYWM6MTQwOiBZb3Ug c2hvdWxkIHJ1biBhdXRvdXBkYXRlLgotLi9saWIvYXV0b2NvbmYvc3BlY2lmaWMubTQ6NTQ5OiBB Q19JU0NfUE9TSVggaXMgZXhwYW5kZWQgZnJvbS4uLgotY29uZmlndXJlLmFjOjE0MDogdGhlIHRv cCBsZXZlbAotY29uZmlndXJlLmFjOjE0MTogd2FybmluZzogVGhlIG1hY3JvIGBBQ19IRUFERVJf U1REQycgaXMgb2Jzb2xldGUuCi1jb25maWd1cmUuYWM6MTQxOiBZb3Ugc2hvdWxkIHJ1biBhdXRv dXBkYXRlLgotLi9saWIvYXV0b2NvbmYvaGVhZGVycy5tNDo3MDQ6IEFDX0hFQURFUl9TVERDIGlz IGV4cGFuZGVkIGZyb20uLi4KLWNvbmZpZ3VyZS5hYzoxNDE6IHRoZSB0b3AgbGV2ZWwKLQotQlVH PWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvcHVsbC8yNTE5Ci0tLS0KLSBjb25maWd1cmUu YWMgfCA5ICsrKystLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWlu ZGV4IDczNTgzYmFiLi5jYmRmYmQwNSAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIv Y29uZmlndXJlLmFjCi1AQCAtNjQsNyArNjQsNyBAQCBBQ19TVUJTVChWQUxBX1RBUkdFVF9HTElC X1ZFUlNJT04pCi0gIyBJbml0IGF1dG9tYWtlLgotIEFNX0lOSVRfQVVUT01BS0UoWzEuMTEuMSBw YXJhbGxlbC10ZXN0c10pCi0gQU1fTUFJTlRBSU5FUl9NT0RFKFtlbmFibGVdKQotLUFDX0dOVV9T T1VSQ0UKLStBQ19VU0VfU1lTVEVNX0VYVEVOU0lPTlMKLSAKLSAjIFN1cHBvcnQgc2lsZW50IGJ1 aWxkIHJ1bGVzLiBEaXNhYmxlCi0gIyBieSBlaXRoZXIgcGFzc2luZyAtLWRpc2FibGUtc2lsZW50 LXJ1bGVzIHRvIGNvbmZpZ3VyZSBvciBwYXNzaW5nIFY9MQotQEAgLTEyNiw3ICsxMjYsNiBAQCBB Q19TVUJTVChEQVRFX0RJU1BMQVkpCi0gIyBDaGVjayBmb3IgcHJvZ3JhbXMuCi0gQUNfUFJPR19D QwotIEFNX1BST0dfQ0NfQ19PCi0tQUNfUFJPR19DQ19TVERDCi0gQU1fUFJPR19WQUxBQyhbMC4y MF0pCi0gQUNfUFJPR19JTlNUQUxMCi0gQUNfUFJPR19NQUtFX1NFVAotQEAgLTEzNiw5ICsxMzUs OSBAQCBBTV9HTlVfR0VUVEVYVF9WRVJTSU9OKFswLjE5LjhdKQotIEFNX0dOVV9HRVRURVhUKFtl eHRlcm5hbF0pCi0gCi0gIyBEZWZpbmUgUEFDS0FHRV9WRVJTSU9OXyogdmFyaWFibGVzLgotLUFN X0RJU0FCTEVfU1RBVElDCi0tQUNfSVNDX1BPU0lYCi0tQUNfSEVBREVSX1NUREMKLStBQ19ESVNB QkxFX1NUQVRJQyhbXSkKLStBQ19TRUFSQ0hfTElCUyhbc3RyZXJyb3JdLFtjcG9zaXhdKQotKwot IExUX0lOSVQKLSAKLSAjIENoZWNrIGhlYWRlciBmaWxlc3MuCi0tLSAKLTIuNDAuMAotCi1Gcm9t IGI5N2U2NjY5ZWE4MTI3ZGQ1MGNlNDlkMDYxZWRkNGNlNTc5YmJiNDIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBNYXR0IFR1cm5lciA8bWF0dHN0ODhAZ21haWwuY29tPgotRGF0ZTog U3VuLCAxMSBKdW4gMjAyMyAxOTo1OToxOCArMDkwMAotU3ViamVjdDogW1BBVENIIDIvMl0gc3Jj L2lidXNjb21wb3NldGFibGU6IEZpeCB1bmFsaWduZWQgYWNjZXNzZXMKLQotRml4ZXM6IGh0dHBz Oi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvY29tbWl0LzE5Y2ExMDY1Ci0KLUJVRz1odHRwczovL2dp dGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yNTE4Ci0tLS0KLSBzcmMvaWJ1c2NvbXBvc2V0YWJs ZS5jIHwgMjMgKysrKysrKysrKysrKy0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2NvbXBv c2V0YWJsZS5jIGIvc3JjL2lidXNjb21wb3NldGFibGUuYwotaW5kZXggZmM0ODY2OTIuLmM4MDdj NzUxIDEwMDY0NAotLS0tIGEvc3JjL2lidXNjb21wb3NldGFibGUuYwotKysrIGIvc3JjL2lidXNj b21wb3NldGFibGUuYwotQEAgLTczMiw4ICs3MzIsOCBAQCBjb21wb3NlX2RhdGFfdG9fdmFyaWFu dCAoZ2NvbnN0cG9pbnRlciBjb21wb3NlX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg IGdib29sZWFuIHJldmVyc2VfZW5kaWFubmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg R0Vycm9yICoqZXJyb3IpCi0gewotLSAgICBndWludDE2ICpjb21wb3NlX2RhdGExNiA9IE5VTEw7 Ci0tICAgIGd1aW50MzIgKmNvbXBvc2VfZGF0YTMyID0gTlVMTDsKLSsgICAgZ3VpbnQxNiBkYXRh MTY7Ci0rICAgIGd1aW50MzIgZGF0YTMyOwotICAgICBndWludDE2ICp0YXJnZXRfZGF0YTE2ID0g TlVMTDsKLSAgICAgZ3VpbnQzMiAqdGFyZ2V0X2RhdGEzMiA9IE5VTEw7Ci0gICAgIGdzaXplIGks IGxlbmd0aDsKLUBAIC03NTksMTggKzc1OSwyMCBAQCBjb21wb3NlX2RhdGFfdG9fdmFyaWFudCAo Z2NvbnN0cG9pbnRlciBjb21wb3NlX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRmFpbGVkIHRvIG1hbGxvYyIpOwotICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgY29tcG9zZV9kYXRhMzIgPSAoZ3VpbnQzMiopY29t cG9zZV9kYXRhOwotLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKLS0g ICAgICAgICAgICAgICAgdGFyZ2V0X2RhdGEzMltpXSA9IEdVSU5UMzJfU1dBUF9MRV9CRSAoY29t cG9zZV9kYXRhMzJbaV0pOwotKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkr KykgewotKyAgICAgICAgICAgICAgICBtZW1jcHkoJmRhdGEzMiwgKGNoYXIgKiljb21wb3NlX2Rh dGEgKyBpICogc2l6ZW9mIChkYXRhMzIpLCBzaXplb2YgKGRhdGEzMikpOwotKyAgICAgICAgICAg ICAgICB0YXJnZXRfZGF0YTMyW2ldID0gR1VJTlQzMl9TV0FQX0xFX0JFIChkYXRhMzIpOwotKyAg ICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgaWYgKCEodGFyZ2V0 X2RhdGExNiA9IGdfbmV3MCAoZ3VpbnQxNiwgbGVuZ3RoKSkpIHsKLSAgICAgICAgICAgICAgICAg Z19zZXRfZXJyb3IgKGVycm9yLCBJQlVTX0VSUk9SLCBJQlVTX0VSUk9SX0ZBSUxFRCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gbWFsbG9jIik7Ci0gICAgICAgICAg ICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBjb21wb3Nl X2RhdGExNiA9IChndWludDE2Kiljb21wb3NlX2RhdGE7Ci0tICAgICAgICAgICAgZm9yIChpID0g MDsgaSA8IGxlbmd0aDsgaSsrKQotLSAgICAgICAgICAgICAgICB0YXJnZXRfZGF0YTE2W2ldID0g R1VJTlQxNl9TV0FQX0xFX0JFIChjb21wb3NlX2RhdGExNltpXSk7Ci0rICAgICAgICAgICAgZm9y IChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0rICAgICAgICAgICAgICAgIG1lbWNweSgmZGF0 YTE2LCAoY2hhciAqKWNvbXBvc2VfZGF0YSArIGkgKiBzaXplb2YgKGRhdGExNiksIHNpemVvZiAo ZGF0YTE2KSk7Ci0rICAgICAgICAgICAgICAgIHRhcmdldF9kYXRhMTZbaV0gPSBHVUlOVDE2X1NX QVBfTEVfQkUgKGRhdGExNik7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVs c2UgewotICAgICAgICAgaWYgKGlzXzMyYml0KQotQEAgLTEzNjUsOCArMTM2Nyw5IEBAIGlidXNf Y29tcG9zZV90YWJsZV9uZXdfd2l0aF9saXN0IChHTGlzdCAgICpjb21wb3NlX2xpc3QsCi0gICAg ICAgICBpZiAoaXNfMzJiaXQpIHsKLSAgICAgICAgICAgICBmb3IgKGogPSAwOyBjb21wb3NlX2Rh dGEtPnZhbHVlc1tqXTsgaisrKSB7Ci0gICAgICAgICAgICAgICAgIGdfYXNzZXJ0ICh2X2luZGV4 XzMyYml0ICsgaiA8ICB2X3NpemVfMzJiaXQpOwotLSAgICAgICAgICAgICAgICBpYnVzX2NvbXBv c2Vfc2Vxc18zMmJpdF9zZWNvbmRbdl9pbmRleF8zMmJpdCArIGpdID0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBjb21wb3NlX2RhdGEtPnZhbHVlc1tqXTsKLSsgICAgICAgICAgICAgICAgbWVt Y3B5KCZpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9zZWNvbmRbdl9pbmRleF8zMmJpdCArIGpdLAot KyAgICAgICAgICAgICAgICAgICAgICAgJmNvbXBvc2VfZGF0YS0+dmFsdWVzW2pdLAotKyAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mICppYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9zZWNvbmQp OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBnX2Fzc2VydCAobSArIDEgPCAoc19zaXpl X3RvdGFsIC0gc19zaXplXzE2Yml0KSAqIG5faW5kZXhfc3RyaWRlKTsKLSAgICAgICAgICAgICBp YnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9maXJzdFttKytdID0gajsKLS0tIAotMi40MC4wCi0KLUZy b20gZjA0OTJjODZmN2M0MmQzNWJlZGZmMWExOTEwMDc1NjE3MjQzZDFmMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IE1hdHQgVHVybmVyIDxtYXR0c3Q4OEBnbWFpbC5jb20+Ci1EYXRl OiBTdW4sIDE4IEp1biAyMDIzIDEwOjU5OjM1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIG00OiBV cGRhdGUgbTQgZmlsZXMKLQotLSBSZXZlcnQgLmdpdGlnbm9yZSBiZWNhdXNlIG00IGZpbGVzIGNh bm5vdCBiZSBhZGRlZAotLSBEZWxldGUgYXMtdmVyc2lvbi5tNCB3aGljaCBoYXMgYmVlbiB1bnVz ZWQgc2luY2UgMjAxMAotLSBVcGRhdGUgdGhlIGxhdGVzdCBpbnRyb3NwZWN0aW9uLm00Ci0tIFVw ZGF0ZSB0aGUgbGF0ZXN0IHZhcGlnZW4ubTQKLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9p YnVzL2lidXMvY29tbWl0L2QyM2JiZGQKLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9p YnVzL2NvbW1pdC8zYjNmNTZkCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL3B1 bGwvMjUyNwotLS0tCi0gbTQvTWFrZWZpbGUuYW0gICAgICB8ICAxIC0KLSBtNC9hcy12ZXJzaW9u Lm00ICAgIHwgNzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gbTQvaW50cm9zcGVjdGlvbi5tNCB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tCi0gbTQvdmFwaWdlbi5tNCAgICAgICB8IDE5ICsrKysrKystLS0tLQotIDUgZmls ZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgODYgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1v ZGUgMTAwNjQ0IG00L2FzLXZlcnNpb24ubTQKLQotZGlmZiAtLWdpdCBhL200L01ha2VmaWxlLmFt IGIvbTQvTWFrZWZpbGUuYW0KLWluZGV4IGRjZjg0YWMzLi40OWVjYmI4OSAxMDA2NDQKLS0tLSBh L200L01ha2VmaWxlLmFtCi0rKysgYi9tNC9NYWtlZmlsZS5hbQotQEAgLTIxLDcgKzIxLDYgQEAK LSAjIFVTQQotIAotIEVYVFJBX0RJU1QgPSBcCi0tICAgIGFzLXZlcnNpb24ubTQgXAotICAgICBp YnVzbG9jYWxlLm00IFwKLSAgICAgdmFwaWdlbi5tNCBcCi0gICAgICQoTlVMTCkKLWRpZmYgLS1n aXQgYS9tNC9hcy12ZXJzaW9uLm00IGIvbTQvYXMtdmVyc2lvbi5tNAotZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCBhNWI0Mzk5MC4uMDAwMDAwMDAKLS0tLSBhL200L2FzLXZlcnNpb24u bTQKLSsrKyAvZGV2L251bGwKLUBAIC0xLDcxICswLDAgQEAKLS1kbmwgYXMtdmVyc2lvbi5tNCAw LjIuMAotLQotLWRubCBhdXRvc3RhcnMgbTQgbWFjcm8gZm9yIHZlcnNpb25pbmcKLS0KLS1kbmwg VGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgotLQot LWRubCAkSWQ6IGFzLXZlcnNpb24ubTQsdiAxLjQgMjAwNC8wNi8wMSAwOTo0MDowNSB0aG9tYXN2 cyBFeHAgJAotLQotLWRubCBBU19WRVJTSU9OCi0tCi0tZG5sIGV4YW1wbGUKLS1kbmwgQVNfVkVS U0lPTgotLQotLWRubCB0aGlzIG1hY3JvCi0tZG5sIC0gQUNfU1VCU1QncyBQQUNLQUdFX1ZFUlNJ T05fTUFKT1IsIF9NSU5PUiwgX01JQ1JPCi0tZG5sIC0gQUNfU1VCU1QncyBQQUNLQUdFX1ZFUlNJ T05fUkVMRUFTRSwKLS1kbmwgICAgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIHJwbSByZWxlYXNlIGZp ZWxkcwotLWRubCAtIGRvZXNuJ3QgY2FsbCBBTV9JTklUX0FVVE9NQUtFIGFueW1vcmUgYmVjYXVz ZSBpdCBwcmV2ZW50cwotLWRubCAgIG1haW50YWluZXIgbW9kZSBmcm9tIHJ1bm5pbmcgY29ycmVj dGx5Ci0tZG5sCi0tZG5sIGRvbid0IGZvcmdldCB0byBwdXQgI3VuZGVmIFBBQ0tBR0VfVkVSU0lP Tl9SRUxFQVNFIGluIGFjY29uZmlnLmgKLS1kbmwgaWYgeW91IHVzZSBhY2NvbmZpZy5oCi0tCi0t QUNfREVGVU4oW0FTX1ZFUlNJT05dLAotLVsKLS0gIFBBQ0tBR0VfVkVSU0lPTl9NQUpPUj0kKGVj aG8gQUNfUEFDS0FHRV9WRVJTSU9OIHwgY3V0IC1kJy4nIC1mMSkKLS0gIFBBQ0tBR0VfVkVSU0lP Tl9NSU5PUj0kKGVjaG8gQUNfUEFDS0FHRV9WRVJTSU9OIHwgY3V0IC1kJy4nIC1mMikKLS0gIFBB Q0tBR0VfVkVSU0lPTl9NSUNSTz0kKGVjaG8gQUNfUEFDS0FHRV9WRVJTSU9OIHwgY3V0IC1kJy4n IC1mMykKLS0KLS0gIEFDX1NVQlNUKFBBQ0tBR0VfVkVSU0lPTl9NQUpPUikKLS0gIEFDX1NVQlNU KFBBQ0tBR0VfVkVSU0lPTl9NSU5PUikKLS0gIEFDX1NVQlNUKFBBQ0tBR0VfVkVSU0lPTl9NSUNS TykKLS1dKQotLQotLWRubCBBU19OQU5PKEFDVElPTi1JRi1OTy1OQU5PLCBbQUNUSU9OLUlGLU5B Tk9dKQotLQotLWRubCByZXF1aXJlcyBBQ19JTklUIHRvIGJlIGNhbGxlZCBiZWZvcmUKLS1kbmwg Rm9yIHByb2plY3RzIHVzaW5nIGEgZm91cnRoIG9yIG5hbm8gbnVtYmVyIGluIHlvdXIgdmVyc2lv bmluZyB0byBpbmRpY2F0ZQotLWRubCBkZXZlbG9wbWVudCBvciBwcmVyZWxlYXNlIHNuYXBzaG90 cywgdGhpcyBtYWNybyBhbGxvd3MgdGhlIGJ1aWxkIHRvIGJlCi0tZG5sIHNldCB1cCBkaWZmZXJl bnRseSBhY2NvcmRpbmdseS4KLS0KLS1kbmwgdGhpcyBtYWNybzoKLS1kbmwgLSBwYXJzZXMgQUNf UEFDS0FHRV9WRVJTSU9OLCBzZXQgYnkgQUNfSU5JVCwgYW5kIGV4dHJhY3RzIHRoZSBuYW5vIG51 bWJlcgotLWRubCAtIHNldHMgdGhlIHZhcmlhYmxlIFBBQ0tBR0VfVkVSU0lPTl9OQU5PCi0tZG5s IC0gc2V0cyB0aGUgdmFyaWFibGUgUEFDS0FHRV9WRVJTSU9OX1JFTEVBU0UsIHdoaWNoIGNhbiBi ZSB1c2VkCi0tZG5sICAgZm9yIHJwbSByZWxlYXNlIGZpZWxkcwotLWRubCAtIGV4ZWN1dGVzIEFD VElPTi1JRi1OTy1OQU5PIG9yIEFDVElPTi1JRi1OQU5PCi0tICAgIAotLWRubCBleGFtcGxlOgot LWRubCBBU19OQU5PKFJFTEVBU0U9InllcyIsIFJFTEVBU0U9Im5vIikKLS0KLS1BQ19ERUZVTihb QVNfTkFOT10sCi0tWwotLSAgQUNfTVNHX0NIRUNLSU5HKG5hbm8gdmVyc2lvbikKLS0KLS0gIE5B Tk89JChlY2hvIEFDX1BBQ0tBR0VfVkVSU0lPTiB8IGN1dCAtZCcuJyAtZjQpCi0tCi0tICBpZiB0 ZXN0IHgiJE5BTk8iID0geCB8fCB0ZXN0ICJ4JE5BTk8iID0gIngwIiA7IHRoZW4KLS0gICAgQUNf TVNHX1JFU1VMVChbMCAocmVsZWFzZSldKQotLSAgICBOQU5PPTAKLS0gICAgUEFDS0FHRV9WRVJT SU9OX1JFTEVBU0U9MQotLSAgICBpZmVsc2UoWyQxXSwgLCA6LCBbJDFdKQotLSAgZWxzZQotLSAg ICBBQ19NU0dfUkVTVUxUKCROQU5PKQotLSAgICBQQUNLQUdFX1ZFUlNJT05fUkVMRUFTRT0wLmBk YXRlICslWSVtJWQuJUglTSVTYAotLSAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQotLSAgZmkK LS0gIFBBQ0tBR0VfVkVSU0lPTl9OQU5PPSROQU5PCi0tICBBQ19TVUJTVChQQUNLQUdFX1ZFUlNJ T05fTkFOTykKLS0gIEFDX1NVQlNUKFBBQ0tBR0VfVkVSU0lPTl9SRUxFQVNFKQotLV0pCi1kaWZm IC0tZ2l0IGEvbTQvaW50cm9zcGVjdGlvbi5tNCBiL200L2ludHJvc3BlY3Rpb24ubTQKLWluZGV4 IDU4OTcyMWM1Li5iMGNjZDY4OSAxMDA2NDQKLS0tLSBhL200L2ludHJvc3BlY3Rpb24ubTQKLSsr KyBiL200L2ludHJvc3BlY3Rpb24ubTQKLUBAIC04LDYgKzgsNDcgQEAgZG5sCi0gCi0gIyBzZXJp YWwgMQotIAotK2RubCBUaGlzIGlzIGEgY29weSBvZiBBU19BQ19FWFBBTkQKLStkbmwKLStkbmwg KEMpIDIwMDMsIDIwMDQsIDIwMDUgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIGF0IGFw ZXN0YWFydCBkb3Qgb3JnPgotK2RubCBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBm aWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAotK2RubCBhcmUgcGVybWl0dGVkIGlu IGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKLStkbmwg bm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLgotK200X2RlZmluZShbX0dPQkpF Q1RfSU5UUk9TUEVDVElPTl9BU19BQ19FWFBBTkRdLAotK1sKLSsgIEVYUF9WQVI9WyQxXQotKyAg RlJPTV9WQVI9WyQyXQotKwotKyAgZG5sIGZpcnN0IGV4cGFuZCBwcmVmaXggYW5kIGV4ZWNfcHJl Zml4IGlmIG5lY2Vzc2FyeQotKyAgcHJlZml4X3NhdmU9JHByZWZpeAotKyAgZXhlY19wcmVmaXhf c2F2ZT0kZXhlY19wcmVmaXgKLSsKLSsgIGRubCBpZiBubyBwcmVmaXggZ2l2ZW4sIHRoZW4gdXNl IC91c3IvbG9jYWwsIHRoZSBkZWZhdWx0IHByZWZpeAotKyAgaWYgdGVzdCAieCRwcmVmaXgiID0g InhOT05FIjsgdGhlbgotKyAgICBwcmVmaXg9IiRhY19kZWZhdWx0X3ByZWZpeCIKLSsgIGZpCi0r ICBkbmwgaWYgbm8gZXhlY19wcmVmaXggZ2l2ZW4sIHRoZW4gdXNlIHByZWZpeAotKyAgaWYgdGVz dCAieCRleGVjX3ByZWZpeCIgPSAieE5PTkUiOyB0aGVuCi0rICAgIGV4ZWNfcHJlZml4PSRwcmVm aXgKLSsgIGZpCi0rCi0rICBmdWxsX3Zhcj0iJEZST01fVkFSIgotKyAgZG5sIGxvb3AgdW50aWwg aXQgZG9lc24ndCBjaGFuZ2UgYW55bW9yZQotKyAgd2hpbGUgdHJ1ZTsgZG8KLSsgICAgbmV3X2Z1 bGxfdmFyPSJgZXZhbCBlY2hvICRmdWxsX3ZhcmAiCi0rICAgIGlmIHRlc3QgIngkbmV3X2Z1bGxf dmFyIiA9ICJ4JGZ1bGxfdmFyIjsgdGhlbiBicmVhazsgZmkKLSsgICAgZnVsbF92YXI9JG5ld19m dWxsX3ZhcgotKyAgZG9uZQotKwotKyAgZG5sIGNsZWFuIHVwCi0rICBmdWxsX3Zhcj0kbmV3X2Z1 bGxfdmFyCi0rICBBQ19TVUJTVChbJDFdLCAiJGZ1bGxfdmFyIikKLSsKLSsgIGRubCByZXN0b3Jl IHByZWZpeCBhbmQgZXhlY19wcmVmaXgKLSsgIHByZWZpeD0kcHJlZml4X3NhdmUKLSsgIGV4ZWNf cHJlZml4PSRleGVjX3ByZWZpeF9zYXZlCi0rXSkKLSsKLSBtNF9kZWZpbmUoW19HT0JKRUNUX0lO VFJPU1BFQ1RJT05fQ0hFQ0tfSU5URVJOQUxdLAotIFsKLSAgICAgQUNfQkVGT1JFKFtBQ19QUk9H X0xJQlRPT0xdLFskMF0pZG5sIHNldHVwIGxpYnRvb2wgZmlyc3QKLUBAIC00MSw2ICs4Miw4IEBA IG00X2RlZmluZShbX0dPQkpFQ1RfSU5UUk9TUEVDVElPTl9DSEVDS19JTlRFUk5BTF0sCi0gICAg IF0sZG5sCi0gICAgIFthdXRvXSxbZG5sCi0gICAgICAgICBQS0dfQ0hFQ0tfRVhJU1RTKFtnb2Jq ZWN0LWludHJvc3BlY3Rpb24tMS4wID49ICQxXSwgZm91bmRfaW50cm9zcGVjdGlvbj15ZXMsIGZv dW5kX2ludHJvc3BlY3Rpb249bm8pCi0rCWRubCBDYW5vbmljYWxpemUgZW5hYmxlX2ludHJvc3Bl Y3Rpb24KLSsJZW5hYmxlX2ludHJvc3BlY3Rpb249JGZvdW5kX2ludHJvc3BlY3Rpb24KLSAgICAg XSxkbmwKLSAgICAgW2RubAkKLSAgICAgICAgIEFDX01TR19FUlJPUihbaW52YWxpZCBhcmd1bWVu dCBwYXNzZWQgdG8gLS1lbmFibGUtaW50cm9zcGVjdGlvbiwgc2hvdWxkIGJlIG9uZSBvZiBAPDpA bm8vYXV0by95ZXNAOj5AXSkKLUBAIC00OCwyMCArOTEsMjUgQEAgbTRfZGVmaW5lKFtfR09CSkVD VF9JTlRST1NQRUNUSU9OX0NIRUNLX0lOVEVSTkFMXSwKLSAKLSAgICAgQUNfTVNHX1JFU1VMVChb JGZvdW5kX2ludHJvc3BlY3Rpb25dKQotIAotKyAgICBkbmwgZXhwYW5kIGRhdGFkaXIvbGliZGly IHNvIHdlIGNhbiBwYXNzIHRoZW0gdG8gcGtnLWNvbmZpZwotKyAgICBkbmwgYW5kIGdldCBwYXRo cyByZWxhdGl2ZSB0byBvdXIgdGFyZ2V0IGRpcmVjdG9yaWVzCi0rICAgIF9HT0JKRUNUX0lOVFJP U1BFQ1RJT05fQVNfQUNfRVhQQU5EKF9HSV9FWFBfREFUQURJUiwgIiRkYXRhZGlyIikKLSsgICAg X0dPQkpFQ1RfSU5UUk9TUEVDVElPTl9BU19BQ19FWFBBTkQoX0dJX0VYUF9MSUJESVIsICIkbGli ZGlyIikKLSsKLSAgICAgSU5UUk9TUEVDVElPTl9TQ0FOTkVSPQotICAgICBJTlRST1NQRUNUSU9O X0NPTVBJTEVSPQotICAgICBJTlRST1NQRUNUSU9OX0dFTkVSQVRFPQotICAgICBJTlRST1NQRUNU SU9OX0dJUkRJUj0KLSAgICAgSU5UUk9TUEVDVElPTl9UWVBFTElCRElSPQotICAgICBpZiB0ZXN0 ICJ4JGZvdW5kX2ludHJvc3BlY3Rpb24iID0gInh5ZXMiOyB0aGVuCi0tICAgICAgIElOVFJPU1BF Q1RJT05fU0NBTk5FUj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1nX2lyX3NjYW5uZXIgZ29iamVj dC1pbnRyb3NwZWN0aW9uLTEuMGAKLS0gICAgICAgSU5UUk9TUEVDVElPTl9DT01QSUxFUj1gJFBL R19DT05GSUcgLS12YXJpYWJsZT1nX2lyX2NvbXBpbGVyIGdvYmplY3QtaW50cm9zcGVjdGlvbi0x LjBgCi0tICAgICAgIElOVFJPU1BFQ1RJT05fR0VORVJBVEU9YCRQS0dfQ09ORklHIC0tdmFyaWFi bGU9Z19pcl9nZW5lcmF0ZSBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wYAotLSAgICAgICBJTlRS T1NQRUNUSU9OX0dJUkRJUj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT1naXJkaXIgZ29iamVjdC1p bnRyb3NwZWN0aW9uLTEuMGAKLS0gICAgICAgSU5UUk9TUEVDVElPTl9UWVBFTElCRElSPSIkKCRQ S0dfQ09ORklHIC0tdmFyaWFibGU9dHlwZWxpYmRpciBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4w KSIKLSsgICAgICAgSU5UUk9TUEVDVElPTl9TQ0FOTkVSPSRQS0dfQ09ORklHX1NZU1JPT1RfRElS YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9Z19pcl9zY2FubmVyIGdvYmplY3QtaW50cm9zcGVjdGlv bi0xLjBgCi0rICAgICAgIElOVFJPU1BFQ1RJT05fQ09NUElMRVI9JFBLR19DT05GSUdfU1lTUk9P VF9ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1nX2lyX2NvbXBpbGVyIGdvYmplY3QtaW50cm9z cGVjdGlvbi0xLjBgCi0rICAgICAgIElOVFJPU1BFQ1RJT05fR0VORVJBVEU9JFBLR19DT05GSUdf U1lTUk9PVF9ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1nX2lyX2dlbmVyYXRlIGdvYmplY3Qt aW50cm9zcGVjdGlvbi0xLjBgCi0rICAgICAgIElOVFJPU1BFQ1RJT05fR0lSRElSPWAkUEtHX0NP TkZJRyAtLWRlZmluZS12YXJpYWJsZT1kYXRhZGlyPSIke19HSV9FWFBfREFUQURJUn0iIC0tdmFy aWFibGU9Z2lyZGlyIGdvYmplY3QtaW50cm9zcGVjdGlvbi0xLjBgCi0rICAgICAgIElOVFJPU1BF Q1RJT05fVFlQRUxJQkRJUj0iJCgkUEtHX0NPTkZJRyAtLWRlZmluZS12YXJpYWJsZT1saWJkaXI9 IiR7X0dJX0VYUF9MSUJESVJ9IiAtLXZhcmlhYmxlPXR5cGVsaWJkaXIgZ29iamVjdC1pbnRyb3Nw ZWN0aW9uLTEuMCkiCi0gICAgICAgIElOVFJPU1BFQ1RJT05fQ0ZMQUdTPWAkUEtHX0NPTkZJRyAt LWNmbGFncyBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wYAotICAgICAgICBJTlRST1NQRUNUSU9O X0xJQlM9YCRQS0dfQ09ORklHIC0tbGlicyBnb2JqZWN0LWludHJvc3BlY3Rpb24tMS4wYAotLSAg ICAgICBJTlRST1NQRUNUSU9OX01BS0VGSUxFPWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPWRhdGFk aXIgZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMGAvZ29iamVjdC1pbnRyb3NwZWN0aW9uLTEuMC9N YWtlZmlsZS5pbnRyb3NwZWN0aW9uCi0rICAgICAgIElOVFJPU1BFQ1RJT05fTUFLRUZJTEU9JFBL R19DT05GSUdfU1lTUk9PVF9ESVJgJFBLR19DT05GSUcgLS12YXJpYWJsZT1kYXRhZGlyIGdvYmpl Y3QtaW50cm9zcGVjdGlvbi0xLjBgL2dvYmplY3QtaW50cm9zcGVjdGlvbi0xLjAvTWFrZWZpbGUu aW50cm9zcGVjdGlvbgotICAgICBmaQotICAgICBBQ19TVUJTVChJTlRST1NQRUNUSU9OX1NDQU5O RVIpCi0gICAgIEFDX1NVQlNUKElOVFJPU1BFQ1RJT05fQ09NUElMRVIpCi1kaWZmIC0tZ2l0IGEv bTQvdmFwaWdlbi5tNCBiL200L3ZhcGlnZW4ubTQKLWluZGV4IDA1MWNjZDJlLi42MjI4OTkxYSAx MDA2NDQKLS0tLSBhL200L3ZhcGlnZW4ubTQKLSsrKyBiL200L3ZhcGlnZW4ubTQKLUBAIC0xNiwx NSArMTYsMjAgQEAgZG5sIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSBkbmwgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotIGRubCBGb3VuZGF0aW9u LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEw LTEzMDEgIFVTQQotIAotLSMgVkFQSUdFTl9DSEVDSyhbVkVSU0lPTl0sIFtBUElfVkVSU0lPTl0s IFtGT1VORC1JTlRST1NQRUNUSU9OXSwgW0RFRkFVTFRdKQotKyMgVkFQSUdFTl9DSEVDSyhbVkVS U0lPTl0sIFtBUElfVkVSU0lPTl0sIFtGT1VORF9JTlRST1NQRUNUSU9OXSwgW0RFRkFVTFRdKQot ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAjIENoZWNrIHZhcGln ZW4gZXhpc3RlbmNlIGFuZCB2ZXJzaW9uCi0gIwotICMgU2VlIGh0dHA6Ly9saXZlLmdub21lLm9y Zy9WYWxhL1Vwc3RyZWFtR3VpZGUgZm9yIGRldGFpbGVkIGRvY3VtZW50YXRpb24KLSBBQ19ERUZV TihbVkFQSUdFTl9DSEVDS10sCi0gWwotLSAgQUNfQkVGT1JFKFtHT0JKRUNUX0lOVFJPU1BFQ1RJ T05fQ0hFQ0tdLFskMF0pCi0tICBBQ19CRUZPUkUoW0dPQkpFQ1RfSU5UUk9TUEVDVElPTl9SRVFV SVJFXSxbJDBdKQotKyAgQVNfSUYoW3Rlc3QgIngkMyIgIT0gInh5ZXMiXSwgWwotKyAgICAgIG00 X3Byb3ZpZGVfaWYoW0dPQkpFQ1RfSU5UUk9TUEVDVElPTl9DSEVDS10sIFtdLCBbCi0rICAgICAg ICAgIG00X3Byb3ZpZGVfaWYoW0dPQkpFQ1RfSU5UUk9TUEVDVElPTl9SRVFVSVJFXSwgW10sIFsK LSsgICAgICAgICAgICAgIEFDX01TR19FUlJPUihbW1lvdSBtdXN0IGNhbGwgR09CSkVDVF9JTlRS T1NQRUNUSU9OX0NIRUNLIG9yIEdPQkpFQ1RfSU5UUk9TUEVDVElPTl9SRVFVSVJFIGJlZm9yZSB1 c2luZyBWQVBJR0VOX0NIRUNLIHVubGVzcyB1c2luZyB0aGUgRk9VTkRfSU5UUk9TUEVDVElPTiBh cmd1bWVudCBpcyAieWVzIl1dKQotKyAgICAgICAgICAgIF0pCi0rICAgICAgICBdKQotKyAgICBd KQotIAotICAgQUNfQVJHX0VOQUJMRShbdmFsYV0sCi0gICAgIFtBU19IRUxQX1NUUklORyhbLS1l bmFibGUtdmFsYVs9QDw6QG5vL2F1dG8veWVzQDo+QF1dLFtidWlsZCBWYWxhIGJpbmRpbmdzIEA8 OkBkZWZhdWx0PV1pZmVsc2UoJDQsLGF1dG8sJDQpW0A6PkBdKV0sLFsKLUBAIC03NywxMiArODIs MTIgQEAgQUNfREVGVU4oW1ZBUElHRU5fQ0hFQ0tdLAotIAotICAgQVNfQ0FTRShbJGVuYWJsZV92 YWxhXSwKLSAgICAgW3llc10sIFsKLS0gICAgICBWQVBJR0VOPWAkUEtHX0NPTkZJRyAtLXZhcmlh YmxlPXZhcGlnZW4gJHZhcGlnZW5fcGtnX25hbWVgCi0tICAgICAgVkFQSUdFTl9NQUtFRklMRT1g JFBLR19DT05GSUcgLS12YXJpYWJsZT1kYXRhZGlyICR2YXBpZ2VuX3BrZ19uYW1lYC92YWxhL01h a2VmaWxlLnZhcGlnZW4KLSsgICAgICBWQVBJR0VOPSRQS0dfQ09ORklHX1NZU1JPT1RfRElSYCRQ S0dfQ09ORklHIC0tdmFyaWFibGU9dmFwaWdlbiAkdmFwaWdlbl9wa2dfbmFtZWAKLSsgICAgICBW QVBJR0VOX01BS0VGSUxFPSRQS0dfQ09ORklHX1NZU1JPT1RfRElSYCRQS0dfQ09ORklHIC0tdmFy aWFibGU9ZGF0YWRpciAkdmFwaWdlbl9wa2dfbmFtZWAvdmFsYS9NYWtlZmlsZS52YXBpZ2VuCi0g ICAgICAgQVNfSUYoW3Rlc3QgIngkMiIgPSAieCJdLCBbCi0tICAgICAgICAgIFZBUElHRU5fVkFQ SURJUj1gJFBLR19DT05GSUcgLS12YXJpYWJsZT12YXBpZGlyICR2YXBpZ2VuX3BrZ19uYW1lYAot KyAgICAgICAgICBWQVBJR0VOX1ZBUElESVI9JFBLR19DT05GSUdfU1lTUk9PVF9ESVJgJFBLR19D T05GSUcgLS12YXJpYWJsZT12YXBpZGlyICR2YXBpZ2VuX3BrZ19uYW1lYAotICAgICAgICAgXSwg WwotLSAgICAgICAgICBWQVBJR0VOX1ZBUElESVI9YCRQS0dfQ09ORklHIC0tdmFyaWFibGU9dmFw aWRpcl92ZXJzaW9uZWQgJHZhcGlnZW5fcGtnX25hbWVgCi0rICAgICAgICAgIFZBUElHRU5fVkFQ SURJUj0kUEtHX0NPTkZJR19TWVNST09UX0RJUmAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPXZhcGlk aXJfdmVyc2lvbmVkICR2YXBpZ2VuX3BrZ19uYW1lYAotICAgICAgICAgXSkKLSAgICAgXSkKLSAK LS0tIAotMi40MS4wCi0KLUZyb20gMThmMGQ5ZjVmMjQ1ZjkyZGVlMDg2Y2U1N2E1YmI5NGU2M2Yx YzIyMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IG9yZW82MzkgPG9yZW82MzkxQGdt YWlsLmNvbT4KLURhdGU6IFN1biwgMTggSnVuIDIwMjMgMTE6MDg6NTkgKzA5MDAKLVN1YmplY3Q6 IFtQQVRDSF0gY29uZmlndXJlOiBGaXggY3Jvc3MgY29tcGlsaW5nCi0KLVVzZSBBWF9QUk9HX0ND X0ZPUl9CVUlMRCB0byBnZXQgYnVpbGQgQ0MvQ0ZMQUdTL0xERkxBR1MvZXRjLgotVXNlIFBLR19Q Uk9HX1BLR19DT05GSUdfRk9SX0JVSUxEIHRvIGZpbmQgYnVpbGQgcGtnLWNvbmZpZyBiaW5hcnku Ci0KLWh0dHBzOi8vc291cmNld2FyZS5vcmcvYXV0b2Jvb2svYXV0b2Jvb2svYXV0b2Jvb2tfMTQz Lmh0bWwjU3VwcG9ydGluZy1Dcm9zcy1Db21waWxlci1pbi1NYWtlCi0KLUJVRz1odHRwczovL2dp dGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yNDc5Ci0tLS0KLSBjb25maWd1cmUuYWMgICAgICAg ICAgICAgICB8ICAxMiArKysKLSBtNC9NYWtlZmlsZS5hbSAgICAgICAgICAgICB8ICAgMiArCi0g bTQvYXhfcHJvZ19jY19mb3JfYnVpbGQubTQgfCAxNTUgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwotIG00L3BrZ19jb25maWdfZm9yX2J1aWxkLm00IHwgIDIwICsrKysrCi0g c3JjL01ha2VmaWxlLmFtICAgICAgICAgICAgfCAgNjcgKysrKysrKysrKysrLS0tLQotIDUgZmls ZXMgY2hhbmdlZCwgMjQwIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBt b2RlIDEwMDY0NCBtNC9heF9wcm9nX2NjX2Zvcl9idWlsZC5tNAotIGNyZWF0ZSBtb2RlIDEwMDY0 NCBtNC9wa2dfY29uZmlnX2Zvcl9idWlsZC5tNAotCi1kaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFj IGIvY29uZmlndXJlLmFjCi1pbmRleCBjYmRmYmQwNS4uZmI1MTM2N2YgMTAwNjQ0Ci0tLS0gYS9j b25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTEyOSw2ICsxMjksNyBAQCBBTV9Q Uk9HX0NDX0NfTwotIEFNX1BST0dfVkFMQUMoWzAuMjBdKQotIEFDX1BST0dfSU5TVEFMTAotIEFD X1BST0dfTUFLRV9TRVQKLStBWF9QUk9HX0NDX0ZPUl9CVUlMRAotIAotICMgaTE4biBzdHVmZgot IEFNX0dOVV9HRVRURVhUX1ZFUlNJT04oWzAuMTkuOF0pCi1AQCAtMTUwLDYgKzE1MSw5IEBAIEFD X0NIRUNLX0ZVTkNTKGRhZW1vbikKLSBBQ19DSEVDS19MSUIoYywgZGxjbG9zZSwgTElCREw9IiIs IFtBQ19DSEVDS19MSUIoZGwsIGRsY2xvc2UsIExJQkRMPSItbGRsIildKQotIEFDX1NVQlNUKExJ QkRMKQotIAotKyMgQ2hlY2sgaWYgY3Jvc3MgY29tcGlsaW5nLgotK0FNX0NPTkRJVElPTkFMKENS T1NTX0NPTVBJTElORywgdGVzdCAieCRjcm9zc19jb21waWxpbmciID0geHllcykKLSsKLSAjIENo ZWNrIGVuZGlhbm5lc3MuCi0gQUNfQ19CSUdFTkRJQU4oW0VORElBTj1iaWddLCBbRU5ESUFOPWxp dHRsZV0sIFtFTkRJQU49dW5rbm93bl0sIFtFTkRJQU49YmlnXSkKLSBpZiB0ZXN0IHgiJEVORElB TiIgIT0geGxpdHRsZSAgLWEgeCIkRU5ESUFOIiAhPSB4YmlnOyB0aGVuCi1AQCAtMTgzLDYgKzE4 NywxNCBAQCBBSF9CT1RUT00oWwotICNlbmRpZgotIF0pCi0gCi0raWYgdGVzdCAieCRjcm9zc19j b21waWxpbmciID0gInh5ZXMiOyB0aGVuCi0rUEtHX1BST0dfUEtHX0NPTkZJR19GT1JfQlVJTEQK LStHTElCX0NGTEFHU19GT1JfQlVJTEQ9YCRQS0dfQ09ORklHX0ZPUl9CVUlMRCAtLWNmbGFncyBn bGliLTIuMCBnb2JqZWN0LTIuMCBnaW8tMi4wIGdpby11bml4LTIuMCBndGhyZWFkLTIuMGAKLStH TElCX0xJQlNfRk9SX0JVSUxEPWAkUEtHX0NPTkZJR19GT1JfQlVJTEQgLS1saWJzIGdsaWItMi4w IGdvYmplY3QtMi4wIGdpby0yLjAgZ2lvLXVuaXgtMi4wIGd0aHJlYWQtMi4wYAotK0FDX1NVQlNU KEdMSUJfQ0ZMQUdTX0ZPUl9CVUlMRCkKLStBQ19TVUJTVChHTElCX0xJQlNfRk9SX0JVSUxEKQot K2ZpCi0rCi0gIyAtLWRpc2FibGUtdGVzdHMgb3B0aW9uLgotIEFDX0FSR19FTkFCTEUodGVzdHMs Ci0gICAgIEFTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtdGVzdHNdLAotZGlmZiAtLWdpdCBhL200 L01ha2VmaWxlLmFtIGIvbTQvTWFrZWZpbGUuYW0KLWluZGV4IDQ5ZWNiYjg5Li44ZWE3NTllNiAx MDA2NDQKLS0tLSBhL200L01ha2VmaWxlLmFtCi0rKysgYi9tNC9NYWtlZmlsZS5hbQotQEAgLTIx LDcgKzIxLDkgQEAKLSAjIFVTQQotIAotIEVYVFJBX0RJU1QgPSBcCi0rICAgIGF4X3Byb2dfY2Nf Zm9yX2J1aWxkLm00IFwKLSAgICAgaWJ1c2xvY2FsZS5tNCBcCi0rICAgIHBrZ19jb25maWdfZm9y X2J1aWxkLm00IFwKLSAgICAgdmFwaWdlbi5tNCBcCi0gICAgICQoTlVMTCkKLSAKLWRpZmYgLS1n aXQgYS9tNC9heF9wcm9nX2NjX2Zvcl9idWlsZC5tNCBiL200L2F4X3Byb2dfY2NfZm9yX2J1aWxk Lm00Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAuLjFkYjhkNzNmCi0tLS0g L2Rldi9udWxsCi0rKysgYi9tNC9heF9wcm9nX2NjX2Zvcl9idWlsZC5tNAotQEAgLTAsMCArMSwx NTUgQEAKLSsjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKyMgICBodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfcHJvZ19jY19mb3JfYnVpbGQuaHRtbAotKyMgPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0rIwotKyMgU1lOT1BTSVMKLSsjCi0rIyAgIEFYX1BST0dfQ0NfRk9S X0JVSUxECi0rIwotKyMgREVTQ1JJUFRJT04KLSsjCi0rIyAgIFRoaXMgbWFjcm8gc2VhcmNoZXMg Zm9yIGEgQyBjb21waWxlciB0aGF0IGdlbmVyYXRlcyBuYXRpdmUgZXhlY3V0YWJsZXMsCi0rIyAg IHRoYXQgaXMgYSBDIGNvbXBpbGVyIHRoYXQgc3VyZWx5IGlzIG5vdCBhIGNyb3NzLWNvbXBpbGVy LiBUaGlzIGNhbiBiZQotKyMgICB1c2VmdWwgaWYgeW91IGhhdmUgdG8gZ2VuZXJhdGUgc291cmNl IGNvZGUgYXQgY29tcGlsZS10aW1lIGxpa2UgZm9yCi0rIyAgIGV4YW1wbGUgR0NDIGRvZXMuCi0r IwotKyMgICBUaGUgbWFjcm8gc2V0cyB0aGUgQ0NfRk9SX0JVSUxEIGFuZCBDUFBfRk9SX0JVSUxE IG1hY3JvcyB0byBhbnl0aGluZwotKyMgICBuZWVkZWQgdG8gY29tcGlsZSBvciBsaW5rIChDQ19G T1JfQlVJTEQpIGFuZCBwcmVwcm9jZXNzIChDUFBfRk9SX0JVSUxEKS4KLSsjICAgVGhlIHZhbHVl IG9mIHRoZXNlIHZhcmlhYmxlcyBjYW4gYmUgb3ZlcnJpZGRlbiBieSB0aGUgdXNlciBieSBzcGVj aWZ5aW5nCi0rIyAgIGEgY29tcGlsZXIgd2l0aCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSAobGlr ZSB5b3UgZG8gZm9yIHN0YW5kYXJkIENDKS4KLSsjCi0rIyAgIEl0IGFsc28gc2V0cyBCVUlMRF9F WEVFWFQgYW5kIEJVSUxEX09CSkVYVCB0byB0aGUgZXhlY3V0YWJsZSBhbmQgb2JqZWN0Ci0rIyAg IGZpbGUgZXh0ZW5zaW9ucyBmb3IgdGhlIGJ1aWxkIHBsYXRmb3JtLCBhbmQgR0NDX0ZPUl9CVUlM RCB0byBgeWVzJyBpZgotKyMgICB0aGUgY29tcGlsZXIgd2UgZm91bmQgaXMgR0NDLiBBbGwgdGhl c2UgdmFyaWFibGVzIGJ1dCBHQ0NfRk9SX0JVSUxEIGFyZQotKyMgICBzdWJzdGl0dXRlZCBpbiB0 aGUgTWFrZWZpbGUuCi0rIwotKyMgTElDRU5TRQotKyMKLSsjICAgQ29weXJpZ2h0IChjKSAyMDA4 IFBhb2xvIEJvbnppbmkgPGJvbnppbmlAZ251Lm9yZz4KLSsjCi0rIyAgIENvcHlpbmcgYW5kIGRp c3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIGFy ZQotKyMgICBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQg dGhlIGNvcHlyaWdodCBub3RpY2UKLSsjICAgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQu IFRoaXMgZmlsZSBpcyBvZmZlcmVkIGFzLWlzLCB3aXRob3V0IGFueQotKyMgICB3YXJyYW50eS4K LSsKLSsjc2VyaWFsIDIxCi0rCi0rQVVfQUxJQVMoW0FDX1BST0dfQ0NfRk9SX0JVSUxEXSwgW0FY X1BST0dfQ0NfRk9SX0JVSUxEXSkKLStBQ19ERUZVTihbQVhfUFJPR19DQ19GT1JfQlVJTERdLCBb ZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19D UFBdKWRubAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5sCi0rCi0rZG5sIFVz ZSB0aGUgc3RhbmRhcmQgbWFjcm9zLCBidXQgbWFrZSB0aGVtIHVzZSBvdGhlciB2YXJpYWJsZSBu YW1lcwotK2RubAotK3B1c2hkZWYoW2FjX2N2X3Byb2dfQ1BQXSwgYWNfY3ZfYnVpbGRfcHJvZ19D UFApZG5sCi0rcHVzaGRlZihbYWNfY3ZfcHJvZ19jY19jODldLCBhY19jdl9idWlsZF9wcm9nX2Nj X2M4OSlkbmwKLStwdXNoZGVmKFthY19jdl9wcm9nX2NjX2M5OV0sIGFjX2N2X2J1aWxkX3Byb2df Y2NfYzk5KWRubAotK3B1c2hkZWYoW2FjX2N2X3Byb2dfY2NfYzExXSwgYWNfY3ZfYnVpbGRfcHJv Z19jY19jMTEpZG5sCi0rcHVzaGRlZihbYWNfY3ZfcHJvZ19nY2NdLCBhY19jdl9idWlsZF9wcm9n X2djYylkbmwKLStwdXNoZGVmKFthY19jdl9wcm9nX2NjX3dvcmtzXSwgYWNfY3ZfYnVpbGRfcHJv Z19jY193b3JrcylkbmwKLStwdXNoZGVmKFthY19jdl9wcm9nX2NjX2Nyb3NzXSwgYWNfY3ZfYnVp bGRfcHJvZ19jY19jcm9zcylkbmwKLStwdXNoZGVmKFthY19jdl9wcm9nX2NjX2ddLCBhY19jdl9i dWlsZF9wcm9nX2NjX2cpZG5sCi0rcHVzaGRlZihbYWNfY3ZfY19jb21waWxlcl9nbnVdLCBhY19j dl9idWlsZF9jX2NvbXBpbGVyX2dudSlkbmwKLStwdXNoZGVmKFthY19jdl9leGVleHRdLCBhY19j dl9idWlsZF9leGVleHQpZG5sCi0rcHVzaGRlZihbYWNfY3Zfb2JqZXh0XSwgYWNfY3ZfYnVpbGRf b2JqZXh0KWRubAotK3B1c2hkZWYoW2FjX2V4ZWV4dF0sIGFjX2J1aWxkX2V4ZWV4dClkbmwKLStw dXNoZGVmKFthY19vYmpleHRdLCBhY19idWlsZF9vYmpleHQpZG5sCi0rcHVzaGRlZihbQ0NdLCBD Q19GT1JfQlVJTEQpZG5sCi0rcHVzaGRlZihbQ1BQXSwgQ1BQX0ZPUl9CVUlMRClkbmwKLStwdXNo ZGVmKFtHQ0NdLCBHQ0NfRk9SX0JVSUxEKWRubAotK3B1c2hkZWYoW0NGTEFHU10sIENGTEFHU19G T1JfQlVJTEQpZG5sCi0rcHVzaGRlZihbQ1BQRkxBR1NdLCBDUFBGTEFHU19GT1JfQlVJTEQpZG5s Ci0rcHVzaGRlZihbRVhFRVhUXSwgQlVJTERfRVhFRVhUKWRubAotK3B1c2hkZWYoW0xERkxBR1Nd LCBMREZMQUdTX0ZPUl9CVUlMRClkbmwKLStwdXNoZGVmKFtPQkpFWFRdLCBCVUlMRF9PQkpFWFQp ZG5sCi0rcHVzaGRlZihbaG9zdF0sIGJ1aWxkKWRubAotK3B1c2hkZWYoW2hvc3RfYWxpYXNdLCBi dWlsZF9hbGlhcylkbmwKLStwdXNoZGVmKFtob3N0X2NwdV0sIGJ1aWxkX2NwdSlkbmwKLStwdXNo ZGVmKFtob3N0X3ZlbmRvcl0sIGJ1aWxkX3ZlbmRvcilkbmwKLStwdXNoZGVmKFtob3N0X29zXSwg YnVpbGRfb3MpZG5sCi0rcHVzaGRlZihbYWNfY3ZfaG9zdF0sIGFjX2N2X2J1aWxkKWRubAotK3B1 c2hkZWYoW2FjX2N2X2hvc3RfYWxpYXNdLCBhY19jdl9idWlsZF9hbGlhcylkbmwKLStwdXNoZGVm KFthY19jdl9ob3N0X2NwdV0sIGFjX2N2X2J1aWxkX2NwdSlkbmwKLStwdXNoZGVmKFthY19jdl9o b3N0X3ZlbmRvcl0sIGFjX2N2X2J1aWxkX3ZlbmRvcilkbmwKLStwdXNoZGVmKFthY19jdl9ob3N0 X29zXSwgYWNfY3ZfYnVpbGRfb3MpZG5sCi0rcHVzaGRlZihbYWNfdG9vbF9wcmVmaXhdLCBhY19i dWlsZF90b29sX3ByZWZpeClkbmwKLStwdXNoZGVmKFthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29t cGlsZXJfdHlwZV0sIGFtX2N2X2J1aWxkX0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlKWRu bAotK3B1c2hkZWYoW2FtX2N2X3Byb2dfY2NfY19vXSwgYW1fY3ZfYnVpbGRfcHJvZ19jY19jX28p ZG5sCi0rcHVzaGRlZihbY3Jvc3NfY29tcGlsaW5nXSwgY3Jvc3NfY29tcGlsaW5nX2J1aWxkKWRu bAotKwotK2Nyb3NzX2NvbXBpbGluZ19idWlsZD1ubwotKwotK2FjX2J1aWxkX3Rvb2xfcHJlZml4 PQotK0FTX0lGKFt0ZXN0IC1uICIkYnVpbGQiXSwgICAgICBbYWNfYnVpbGRfdG9vbF9wcmVmaXg9 IiRidWlsZC0iXSwKLSsgICAgICBbdGVzdCAtbiAiJGJ1aWxkX2FsaWFzIl0sW2FjX2J1aWxkX3Rv b2xfcHJlZml4PSIkYnVpbGRfYWxpYXMtIl0pCi0rCi0rQUNfTEFOR19QVVNIKFtDXSkKLSsKLStk bmwgVGhlIHB1c2hkZWYoW2FjX2N2X2NfY29tcGlsZXJfZ251XSwgLi4uKSBjdXJyZW50bHkgZG9l cyBub3QgY292ZXIKLStkbmwgdGhlIHVzZSBvZiB0aGlzIHZhcmlhYmxlIGluIF9BQ19MQU5HX0NP TVBJTEVSX0dOVSBjYWxsZWQgYnkKLStkbmwgQUNfUFJPR19DQy4gVW5zZXQgdGhpcyBjYWNoZSB2 YXJpYWJsZSB0ZW1wb3JhcmlseSBhcyBhIHdvcmthcm91bmQuCi0rd2FzX3NldF9jX2NvbXBpbGVy X2dudT0ke1thY19jdl9jX2NvbXBpbGVyX2dudV0reX0KLStBU19JRihbdGVzdCAke3dhc19zZXRf Y19jb21waWxlcl9nbnV9XSwKLSsgICAgW3NhdmVkX2NfY29tcGlsZXJfZ251PSRbYWNfY3ZfY19j b21waWxlcl9nbnVdCi0rICAgIEFTX1VOU0VUKFtbYWNfY3ZfY19jb21waWxlcl9nbnVdXSldKQot KwotK0FDX1BST0dfQ0MKLSsKLStkbmwgUmVzdG9yZSBhY19jdl9jX2NvbXBpbGVyX2dudQotK0FT X0lGKFt0ZXN0ICR7d2FzX3NldF9jX2NvbXBpbGVyX2dudX1dLAotKyAgW1thY19jdl9jX2NvbXBp bGVyX2dudV09JFtzYXZlZF9jX2NvbXBpbGVyX2dudV1dKQotKwotK19BQ19DT01QSUxFUl9FWEVF WFQKLStfQUNfQ09NUElMRVJfT0JKRVhUCi0rQUNfUFJPR19DUFAKLSsKLStkbmwgUmVzdG9yZSB0 aGUgb2xkIGRlZmluaXRpb25zCi0rZG5sCi0rcG9wZGVmKFtjcm9zc19jb21waWxpbmddKWRubAot K3BvcGRlZihbYW1fY3ZfcHJvZ19jY19jX29dKWRubAotK3BvcGRlZihbYW1fY3ZfQ0NfZGVwZW5k ZW5jaWVzX2NvbXBpbGVyX3R5cGVdKWRubAotK3BvcGRlZihbYWNfdG9vbF9wcmVmaXhdKWRubAot K3BvcGRlZihbYWNfY3ZfaG9zdF9vc10pZG5sCi0rcG9wZGVmKFthY19jdl9ob3N0X3ZlbmRvcl0p ZG5sCi0rcG9wZGVmKFthY19jdl9ob3N0X2NwdV0pZG5sCi0rcG9wZGVmKFthY19jdl9ob3N0X2Fs aWFzXSlkbmwKLStwb3BkZWYoW2FjX2N2X2hvc3RdKWRubAotK3BvcGRlZihbaG9zdF9vc10pZG5s Ci0rcG9wZGVmKFtob3N0X3ZlbmRvcl0pZG5sCi0rcG9wZGVmKFtob3N0X2NwdV0pZG5sCi0rcG9w ZGVmKFtob3N0X2FsaWFzXSlkbmwKLStwb3BkZWYoW2hvc3RdKWRubAotK3BvcGRlZihbT0JKRVhU XSlkbmwKLStwb3BkZWYoW0xERkxBR1NdKWRubAotK3BvcGRlZihbRVhFRVhUXSlkbmwKLStwb3Bk ZWYoW0NQUEZMQUdTXSlkbmwKLStwb3BkZWYoW0NGTEFHU10pZG5sCi0rcG9wZGVmKFtHQ0NdKWRu bAotK3BvcGRlZihbQ1BQXSlkbmwKLStwb3BkZWYoW0NDXSlkbmwKLStwb3BkZWYoW2FjX29iamV4 dF0pZG5sCi0rcG9wZGVmKFthY19leGVleHRdKWRubAotK3BvcGRlZihbYWNfY3Zfb2JqZXh0XSlk bmwKLStwb3BkZWYoW2FjX2N2X2V4ZWV4dF0pZG5sCi0rcG9wZGVmKFthY19jdl9jX2NvbXBpbGVy X2dudV0pZG5sCi0rcG9wZGVmKFthY19jdl9wcm9nX2NjX2ddKWRubAotK3BvcGRlZihbYWNfY3Zf cHJvZ19jY19jcm9zc10pZG5sCi0rcG9wZGVmKFthY19jdl9wcm9nX2NjX3dvcmtzXSlkbmwKLStw b3BkZWYoW2FjX2N2X3Byb2dfY2NfYzg5XSlkbmwKLStwb3BkZWYoW2FjX2N2X3Byb2dfZ2NjXSlk bmwKLStwb3BkZWYoW2FjX2N2X3Byb2dfQ1BQXSlkbmwKLSsKLStkbmwgcmVzdG9yZSBnbG9iYWwg dmFyaWFibGVzIGFjX2V4dCwgYWNfY3BwLCBhY19jb21waWxlLAotK2RubCBhY19saW5rLCBhY19j b21waWxlcl9nbnUgKGRlcGVuZGFudCBvbiB0aGUgY3VycmVudAotK2RubCBsYW5ndWFnZSBhZnRl ciBwb3BwaW5nKToKLStBQ19MQU5HX1BPUChbQ10pCi0rCi0rZG5sIEZpbmFsbHksIHNldCBNYWtl ZmlsZSB2YXJpYWJsZXMKLStkbmwKLStBQ19TVUJTVChCVUlMRF9FWEVFWFQpZG5sCi0rQUNfU1VC U1QoQlVJTERfT0JKRVhUKWRubAotK0FDX1NVQlNUKFtDRkxBR1NfRk9SX0JVSUxEXSlkbmwKLStB Q19TVUJTVChbQ1BQRkxBR1NfRk9SX0JVSUxEXSlkbmwKLStBQ19TVUJTVChbTERGTEFHU19GT1Jf QlVJTERdKWRubAotK10pCi1kaWZmIC0tZ2l0IGEvbTQvcGtnX2NvbmZpZ19mb3JfYnVpbGQubTQg Yi9tNC9wa2dfY29uZmlnX2Zvcl9idWlsZC5tNAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwLi4wNDIyZjQ4MgotLS0tIC9kZXYvbnVsbAotKysrIGIvbTQvcGtnX2NvbmZpZ19m b3JfYnVpbGQubTQKLUBAIC0wLDAgKzEsMjAgQEAKLSsjIFBLR19QUk9HX1BLR19DT05GSUdfRk9S X0JVSUxEKFtNSU4tVkVSU0lPTl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rQUNfREVGVU4oW1BLR19QUk9HX1BLR19DT05GSUdfRk9SX0JVSUxEXSwKLStbbTRfcGF0 dGVybl9hbGxvdyhbXlBLR19DT05GSUdfRk9SX0JVSUxEJF0pCi0rQUNfQVJHX1ZBUihbUEtHX0NP TkZJR19GT1JfQlVJTERdLCBbcGF0aCB0byBidWlsZCBzeXN0ZW0ncyBwa2ctY29uZmlnIHV0aWxp dHldKQotKwotK2lmIHRlc3QgIngkYWNfY3ZfZW52X1BLR19DT05GSUdfRk9SX0JVSUxEX3NldCIg IT0gInhzZXQiOyB0aGVuCi0rCUFDX1BBVEhfUFJPRyhbUEtHX0NPTkZJR19GT1JfQlVJTERdLCBb cGtnLWNvbmZpZ10pCi0rZmkKLStpZiB0ZXN0IC1uICIkUEtHX0NPTkZJR19GT1JfQlVJTEQiOyB0 aGVuCi0rCV9wa2dfZm9yX2J1aWxkX21pbl92ZXJzaW9uPW00X2RlZmF1bHQoWyQxXSwgWzAuOS4w XSkKLSsJQUNfTVNHX0NIRUNLSU5HKFtidWlsZCBzeXN0ZW0ncyBwa2ctY29uZmlnIGlzIGF0IGxl YXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb25dKQotKwlpZiAkUEtHX0NPTkZJR19GT1JfQlVJ TEQgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uOyB0aGVuCi0r CQlBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKwllbHNlCi0rCQlBQ19NU0dfUkVTVUxUKFtub10pCi0r CQlQS0dfQ09ORklHX0ZPUl9CVUlMRD0iIgotKwlmaQotK2ZpW11kbmwKLStdKSMgUEtHX1BST0df UEtHX0NPTkZJR19GT1JfQlVJTEQKLWRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMv TWFrZWZpbGUuYW0KLWluZGV4IGFkYzdmMDRhLi42OGRkZTJmMyAxMDA2NDQKLS0tLSBhL3NyYy9N YWtlZmlsZS5hbQotKysrIGIvc3JjL01ha2VmaWxlLmFtCi1AQCAtNDYsOSArNDYsNiBAQCBub2lu c3RfUFJPR1JBTVMgPSBnZW4taW50ZXJuYWwtY29tcG9zZS10YWJsZQotICMgQyBwcmVwcm9jZXNz b3IgZmxhZ3MKLSBBTV9DUFBGTEFHUyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLSAgICAgLURHX0xPR19ET01BSU49XCJJQlVTXCIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLS0gICAgQEdMSUIyX0NGTEFHU0AgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLS0gICAgQEdPQkpFQ1QyX0NGTEFHU0AgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLS0gICAgQEdJTzJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgLURJQlVTX0NBQ0hFX0RJUj1cIiIkKGxvY2Fs c3RhdGVkaXIpL2NhY2hlL2lidXMiXCIgIFwKLSAgICAgLURJQlVTX0RBVEFfRElSPVwiJChwa2dk YXRhZGlyKVwiICAgICAgICAgICAgICAgICAgIFwKLSAgICAgLURJQlVTX0RJU0FCTEVfREVQUkVD QVRJT05fV0FSTklOR1MgICAgICAgICAgICAgICAgIFwKLUBAIC02NSw2ICs2MiwxMSBAQCBsaWJp YnVzXzFfMF9sYV9MSUJBREQgPSAgICAgXAotICAgICBAR09CSkVDVDJfTElCU0AgICAgICAgICBc Ci0gICAgIEBHSU8yX0xJQlNAICAgICAgICAgICAgIFwKLSAgICAgJChOVUxMKQotK2xpYmlidXNf MV8wX2xhX0NGTEFHUyA9ICAgICBcCi0rICAgIEBHTElCMl9DRkxBR1NAICAgICAgICAgIFwKLSsg ICAgQEdPQkpFQ1QyX0NGTEFHU0AgICAgICAgXAotKyAgICBAR0lPMl9DRkxBR1NAICAgICAgICAg ICBcCi0rICAgICQoTlVMTCkKLSBsaWJpYnVzXzFfMF9sYV9MREZMQUdTID0gICAgICAgICAgICBc Ci0gICAgIC1uby11bmRlZmluZWQgICAgICAgICAgICAgICAgICAgXAotICAgICAtZXhwb3J0LXN5 bWJvbHMtcmVnZXggImlidXNfLioiIFwKLUBAIC0xMDcsNyArMTA5LDcgQEAgaWJ1c19zb3VyY2Vz ID0gICAgICAgICAgICAgIFwKLSAgICAgaWJ1c3hldmVudC5jICAgICAgICAgICAgXAotICAgICBp YnVzeG1sLmMgICAgICAgICAgICAgICBcCi0gICAgICQoTlVMTCkKLS1saWJpYnVzXzFfMF9sYV9T T1VSQ0VTID0gICAgXAotK2xpYmlidXNfc291cmNlcyA9ICAgICAgICAgICBcCi0gICAgIGlidXNj b21wb3NldGFibGUuYyAgICAgIFwKLSAgICAgaWJ1c2VudW10eXBlcy5jICAgICAgICAgXAotICAg ICBpYnVzbWFyc2hhbGVycy5jICAgICAgICBcCi1AQCAtMTY2LDYgKzE2OCw3IEBAIGlidXNfaGVh ZGVycyA9ICAgICAgICAgICAgICBcCi0gICAgIGlidXN4ZXZlbnQuaCAgICAgICAgICAgIFwKLSAg ICAgaWJ1c3htbC5oICAgICAgICAgICAgICAgXAotICAgICAkKE5VTEwpCi0rbGliaWJ1c18xXzBf bGFfU09VUkNFUyA9ICQobGliaWJ1c19zb3VyY2VzKQotIGlidXNpbmNsdWRlZGlyID0gJChpbmNs dWRlZGlyKS9pYnVzLUBJQlVTX0FQSV9WRVJTSU9OQAotIGlidXNfcHVibGljX2hlYWRlcnMgPSAg ICAgICBcCi0gICAgICQoaWJ1c19oZWFkZXJzKSAgICAgICAgIFwKLUBAIC0xODgsNiArMTkxLDM1 IEBAIG5vaW5zdF9IRUFERVJTID0gICAgICAgICAgICBcCi0gICAgICQoaWJ1c19wcml2YXRlX2hl YWRlcnMpIFwKLSAgICAgJChOVUxMKQotIAotK2lmIENST1NTX0NPTVBJTElORwotKyMgQXZvaWQg bGlidG9vbCB3aGVuIGJ1aWxkaW5nIG5hdGl2ZSBsaWJyYXJpZXMKLStsaWJuYXRpdmVpYnVzID0K LStwYXJzZXJfZXh0cmFfc291cmNlcyA9ICQobGliaWJ1c19zb3VyY2VzKQotKwotK2dsaWJfY2Zs YWdzID0gQEdMSUJfQ0ZMQUdTX0ZPUl9CVUlMREAKLStnbGliX2xpYnMgPSBAR0xJQl9MSUJTX0ZP Ul9CVUlMREAKLSsKLSskKG5vaW5zdF9QUk9HUkFNUyk6IENDPSQoQ0NfRk9SX0JVSUxEKQotKyQo bm9pbnN0X1BST0dSQU1TKTogQ0NMRD0kKENDX0ZPUl9CVUlMRCkKLSskKG5vaW5zdF9QUk9HUkFN Uyk6IENGTEFHUz0kKENGTEFHU19GT1JfQlVJTEQpCi0rJChub2luc3RfUFJPR1JBTVMpOiBDUFBG TEFHUz0kKENQUEZMQUdTX0ZPUl9CVUlMRCkKLSskKG5vaW5zdF9QUk9HUkFNUyk6IExERkxBR1M9 JChMREZMQUdTX0ZPUl9CVUlMRCkKLStlbHNlCi0rbGlibmF0aXZlaWJ1cyA9ICQobGliaWJ1cykK LStwYXJzZXJfZXh0cmFfc291cmNlcyA9Ci0rCi0rZ2xpYl9saWJzID0gICAgICAgICAgICAgXAot KyAgICBAR0xJQjJfTElCU0AgICAgICAgIFwKLSsgICAgQEdPQkpFQ1QyX0xJQlNAICAgICBcCi0r ICAgIEBHSU8yX0xJQlNAICAgICAgICAgXAotKyAgICAkKE5VTEwpCi0rZ2xpYl9jZmxhZ3MgPSAg ICAgICAgICAgXAotKyAgICBAR0xJQjJfQ0ZMQUdTQCAgICAgIFwKLSsgICAgQEdPQkpFQ1QyX0NG TEFHU0AgICBcCi0rICAgIEBHSU8yX0NGTEFHU0AgICAgICAgXAotKyAgICAkKE5VTEwpCi0rZW5k aWYKLSsKLSBnZW5faW50ZXJuYWxfY29tcG9zZV90YWJsZV9TT1VSQ0VTID0gXAotICAgICBnZW5j b21wb3NldGFibGUuYyAgIFwKLSAgICAgaWJ1c2NvbXBvc2V0YWJsZS5jICBcCi1AQCAtMTk2LDEx ICsyMjgsMTIgQEAgZ2VuX2ludGVybmFsX2NvbXBvc2VfdGFibGVfU09VUkNFUyA9IFwKLSAgICAg aWJ1c2tleXVuaS5jICAgICAgICBcCi0gICAgIGlidXNlbnVtdHlwZXMuaCAgICAgXAotICAgICAk KE5VTEwpCi0tZ2VuX2ludGVybmFsX2NvbXBvc2VfdGFibGVfQ0ZMQUdTID0gJChBTV9DRkxBR1Mp Ci0rZ2VuX2ludGVybmFsX2NvbXBvc2VfdGFibGVfQ0ZMQUdTID0gIFwKLSsgICAgJChBTV9DRkxB R1MpICAgICAgICBcCi0rICAgICQoZ2xpYl9jZmxhZ3MpICAgICAgXAotKyAgICAkKE5VTEwpCi0g Z2VuX2ludGVybmFsX2NvbXBvc2VfdGFibGVfTERBREQgPSBcCi0tICAgIEBHTElCMl9MSUJTQCAg ICAgICAgXAotLSAgICBAR09CSkVDVDJfTElCU0AgICAgIFwKLS0gICAgQEdJTzJfTElCU0AgICAg ICAgICBcCi0rICAgICQoZ2xpYl9saWJzKSAgICAgICAgXAotICAgICAkKE5VTEwpCi0gCi0gQlVJ TFRfU09VUkNFUyA9ICAgICAgICAgICAgICAgICBcCi1AQCAtMzYzLDE1ICszOTYsMTUgQEAgaW5z dGFsbC1kYXRhLWhvb2s6Ci0gCi0gZW1vamlfcGFyc2VyX1NPVVJDRVMgPSAgICAgICAgICBcCi0g ICAgIGVtb2ppLXBhcnNlci5jICAgICAgICAgICAgICBcCi0rICAgICQocGFyc2VyX2V4dHJhX3Nv dXJjZXMpICAgICBcCi0gICAgICQoTlVMTCkKLSBlbW9qaV9wYXJzZXJfQ0ZMQUdTID0gICAgICAg ICAgIFwKLS0gICAgJChHTElCMl9DRkxBR1MpICAgICAgICAgICAgIFwKLS0gICAgJChHT0JKRUNU Ml9DRkxBR1MpICAgICAgICAgIFwKLSsgICAgJChBTV9DRkxBR1MpICAgICAgICAgICAgICAgIFwK LSsgICAgJChnbGliX2NmbGFncykgICAgICAgICAgICAgIFwKLSAgICAgJChOVUxMKQotIGVtb2pp X3BhcnNlcl9MREFERCA9ICAgICAgICAgICAgXAotLSAgICAkKGxpYmlidXMpICAgICAgICAgICAg ICAgICAgXAotLSAgICAkKEdMSUIyX0xJQlMpICAgICAgICAgICAgICAgXAotLSAgICAkKEdPQkpF Q1QyX0xJQlMpICAgICAgICAgICAgXAotKyAgICAkKGxpYm5hdGl2ZWlidXMpICAgICAgICAgICAg XAotKyAgICAkKGdsaWJfbGlicykgICAgICAgICAgICAgICAgXAotICAgICAkKE5VTEwpCi0gZW5k aWYKLSAKLUBAIC00MDgsMTMgKzQ0MSwxNSBAQCBpYnVzdW5pY29kZWdlbi5oOgotIAotIHVuaWNv ZGVfcGFyc2VyX1NPVVJDRVMgPSAgICAgICAgXAotICAgICB1bmljb2RlLXBhcnNlci5jICAgICAg ICAgICAgXAotKyAgICAkKHBhcnNlcl9leHRyYV9zb3VyY2VzKSAgICAgXAotICAgICAkKE5VTEwp Ci0gdW5pY29kZV9wYXJzZXJfQ0ZMQUdTID0gICAgICAgICBcCi0tICAgICQoR0xJQjJfQ0ZMQUdT KSAgICAgICAgICAgICBcCi0rICAgICQoQU1fQ0ZMQUdTKSAgICAgICAgICAgICAgICBcCi0rICAg ICQoZ2xpYl9jZmxhZ3MpICAgICAgICAgICAgICBcCi0gICAgICQoTlVMTCkKLSB1bmljb2RlX3Bh cnNlcl9MREFERCA9ICAgICAgICAgIFwKLS0gICAgJChHTElCMl9MSUJTKSAgICAgICAgICAgICAg IFwKLS0gICAgJChsaWJpYnVzKSAgICAgICAgICAgICAgICAgIFwKLSsgICAgJChnbGliX2xpYnMp ICAgICAgICAgICAgICAgIFwKLSsgICAgJChsaWJuYXRpdmVpYnVzKSAgICAgICAgICAgIFwKLSAg ICAgJChOVUxMKQotIGVuZGlmCi0gCi0tLSAKLTIuNDEuMAotCi1Gcm9tIDI1YTJkZmMxMjQxMGZm ZjVmMzJhM2NhZjc5M2E5NThkN2U0MWRjNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDQgSnVs IDIwMjMgMjI6NDY6MzEgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gYnVzOiBBdm9pZCB0byBoYW5n IHRoZSBwcm9jZXNzIHdpdGggU0lHVVNSMSBzaWduYWwKLQotU2VlbXMgbXVsdGlwbGUgYFhlcGh5 ciAtcXVlcnlgIHRvIGEgcmVtb3RlIEdETSBsb2dpbiBzZXNzaW9uIGNhdXNlcwotdG8gbGVhdmUg dGhlIHNvbWUgcHJvY2Vzc2VzIG9mIGlidXMtZGFlbW9uIGV2ZW4gaWYgdGhlIFhlcGh5ciBzZXNz aW9ucwotYXJlIHRlcm1pbmF0ZWQgYW5kIHRoZSBpc3N1ZSBpcyBjYXVzZWQgYnkgY2FsbGluZyBi dXNfc2VydmVyX3F1aXQoKQotd2l0aCBTSUdVU1IxIHNpZ25hbC4KLQotSSBjYW5ub3QgcmVwcm9k dWNlIHRoZSBpc3N1ZSBidXQgY2FsbGluZyB0aGUgdW5zYWZlIGNvZGUgZnJvbSBhIHNpZ25hbAot aGFuZGxlciBtaWdodCBsZWFkIHRvIGhhbmdzIGFuZCB0aGlzIGlzIGFub3RoZXIgc2lnbmFsIGNv bm5lY3Rpb24KLW5vdCB0byBoYW5nIGlidXMtZGFlbW9uLgotCi1CVUc9aHR0cHM6Ly9naXRodWIu Y29tL2lidXMvaWJ1cy9wdWxsLzI0OTkKLS0tLQotIGJ1cy9tYWluLmMgfCAxMSArKysrKystLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9idXMvbWFpbi5jIGIvYnVzL21haW4uYwotaW5kZXggZTgwMTg1YjEuLmM0Yjhk NjUxIDEwMDY0NAotLS0tIGEvYnVzL21haW4uYwotKysrIGIvYnVzL21haW4uYwotQEAgLTIsOCAr Miw4IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1 cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdA Z21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE4IFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJl ZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMyBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAyMyBS ZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTE2NiwxMSArMTY2LDEyIEBA IGRhZW1vbiAoZ2ludCBub2NoZGlyLCBnaW50IG5vY2xvc2UpCi0gI2VuZGlmCi0gCi0gI2lmZGVm IEhBVkVfU1lTX1BSQ1RMX0gKLS1zdGF0aWMgdm9pZAotLV9zaWdfdXNyMV9oYW5kbGVyIChpbnQg c2lnKQotK3N0YXRpYyBnYm9vbGVhbgotK19vbl9zaWd1c3IxICh2b2lkKQotIHsKLSAgICAgZ193 YXJuaW5nICgiVGhlIHBhcmVudCBwcm9jZXNzIGRpZWQuIik7Ci0gICAgIGJ1c19zZXJ2ZXJfcXVp dCAoRkFMU0UpOwotKyAgICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOwotIH0KLSAjZW5kaWYKLSAK LUBAIC0zNTAsNyArMzUxLDcgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqKmFyZ3YpCi0gICAg ICAgICBpZiAocHJjdGwgKFBSX1NFVF9QREVBVEhTSUcsIFNJR1VTUjEpKQotICAgICAgICAgICAg IGdfcHJpbnRlcnIgKCJDYW5ub3QgYmluZCBTSUdVU1IxIGZvciBwYXJlbnQgZGVhdGhcbiIpOwot ICAgICAgICAgZWxzZQotLSAgICAgICAgICAgIHNpZ25hbCAoU0lHVVNSMSwgX3NpZ191c3IxX2hh bmRsZXIpOwotKyAgICAgICAgICAgIGdfdW5peF9zaWduYWxfYWRkIChTSUdVU1IxLCAoR1NvdXJj ZUZ1bmMpX29uX3NpZ3VzcjEsIE5VTEwpOwotICNlbmRpZgotICAgICB9Ci0gICAgIGJ1c19zZXJ2 ZXJfcnVuICgpOwotLS0gCi0yLjQxLjAKLQotRnJvbSBiZTFmMWQwZGE4NjAwNmIwMTlhYWY3ODc4 MWQ4YzBjOWM2OGZkNDZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dCBUdXJu ZXIgPG1hdHRzdDg4QGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgNSBKdWwgMjAyMyAxMzozMzoyNSAr MDkwMAotU3ViamVjdDogW1BBVENIIDEvMl0gc3JjOiBGaXggbWlzc2luZyBpYnVzZW51bXR5cGVz Lmggd2l0aCBwYXJhbGxlbCBidWlsZAotCi1XaGVuIGAuL2F1dG9nZW4uc2ggJiYgbWFrZSAtQyBz cmMgaWJ1c3Jlc291cmNlcy5jIC1qMmAgcnVucywKLWl0IGNhdXNlcyBhIGJ1aWxkIGZhaWx1cmUg ZHVlIHRvIG5vIGlidXNlbnVtdHlwZXMuaCBmaWxlLgotCi1UaGUgY2hhaW5lZCBkZXBlbmRlbmNp ZXMgYXJlOgotaWJ1c3Jlc291cmNlcy5jIC0+IGNvbXBvc2Uvc2VxdWVuY2VzLSQoRU5ESUFOKS1l bmRpYW4KLS0+IGdlbi1pbnRlcm5hbC1jb21wb3NlLXRhYmxlIC0+IGdlbmNvbXBvc2V0YWJsZS5j Ci0KLWdlbmNvbXBvc2V0YWJsZS5jIGluY2x1ZGVzIGlidXMuaCBhbmQgaXQgY2F1c2VzIG5vIGli dXNlbnVtdHlwZXMuaCB3aXRoCi10aGUgcGFyYWxsZWwgYnVpbGQgd2l0aCBtdWx0aSBDUFVzLgot Ci1pYnVzZW51bXR5cGVzLmggaXMgaW4gQlVJTFRfU09VUkNFUyBzbyBpdCBpcyBidWlsdCAod2l0 aCBvdGhlciBmaWxlcyBpbgotQlVJTFRfU09VUkNFUykgYmVmb3JlIGFueSBvdGhlciBydWxlcy4K LUJ1dCBpYnVzLmggaXMgaW5jbHVkZWQgYnkgZ2VuY29tcG9zZXRhYmxlLmMgd2hpY2ggaXMgbmVl ZGVkIHRvIGdlbmVyYXRlCi1pYnVzcmVzb3VyY2VzLmMgaW4gQlVJTFRfU09VUkNFUy4KLQotU2lu Y2UgZ2VuY29tcG9zZXRhYmxlLmMgaXMgYW4gaW50ZXJuYWwgYnVpbGQgc291cmNlIGZpbGUgYW5k Ci1pdCBkb2Vzbid0IGhhdmUgdG8gaW5jbHVkZSBpYnVzLmggYnV0IGNhbiBpbmNsdWRlIGVhY2gg aWJ1cyBoZWFkZXIKLWZpbGVzLgotRGVsZXRpbmcgaWJ1cy5oIGluIGdlbmNvbXBvc2V0YWJsZS5j IGNhbiBmaXggdGhlIGJ1aWxkIGZhaWx1cmUuCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1 cy9pYnVzL3B1bGwvMjUyMwotLS0tCi0gc3JjL2dlbmNvbXBvc2V0YWJsZS5jIHwgMiArLQotIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0 IGEvc3JjL2dlbmNvbXBvc2V0YWJsZS5jIGIvc3JjL2dlbmNvbXBvc2V0YWJsZS5jCi1pbmRleCA2 ZTUyZDZhNi4uMzVkNmNlODMgMTAwNjQ0Ci0tLS0gYS9zcmMvZ2VuY29tcG9zZXRhYmxlLmMKLSsr KyBiL3NyYy9nZW5jb21wb3NldGFibGUuYwotQEAgLTIwLDcgKzIwLDcgQEAKLSAgKiBVU0EKLSAg Ki8KLSAKLS0jaW5jbHVkZSA8aWJ1cy5oPgotKy8qICMyNTIzIFNob3VsZCBub3QgaW5jbHVkZSA8 aWJ1cy5oPiBidXQgZWFjaCBJQnVzIGhlYWRlciBmaWxlLiAqLwotICNpbmNsdWRlIDxnbGliLmg+ Ci0gI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+Ci0gI2luY2x1ZGUgPGVycm5vLmg+Ci0tLSAKLTIu NDEuMAotCi1Gcm9tIGYyNWM0OGExOTg5YmUyMjFlOThiODYzYzk0N2U1MmVhZjgwZGM0YTMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXR0IFR1cm5lciA8bWF0dHN0ODhAZ21haWwu Y29tPgotRGF0ZTogV2VkLCA1IEp1bCAyMDIzIDEzOjQxOjMzICswOTAwCi1TdWJqZWN0OiBbUEFU Q0ggMi8yXSBzcmM6IEZpeCB0byBidWlsZCBsaWJpYnVzLTEuMC5sYSB0d2ljZQotCi1UaGUgcHVy cG9zZSBvZiBhdXRvdG9vbHMgaXMgdG8gYXV0b21hdGljYWxseSBoYW5kbGUgZGVwZW5kZW5jaWVz LiBCeQotY2FsbGluZyAkKE1BS0UpIG1hbnVhbGx5IGFuZCB3aXRob3V0IHNwZWNpZnlpbmcgYW55 IGRlcGVuZGVuY2llcyBiZWxvdywKLXdlIGFyZSBnb2luZyBvdXQgb2Ygb3VyIHdheSB0byBwcmV2 ZW50IGF1dG9tYWtlIGZyb20gZG9pbmcgaXRzIGpvYi4KLQotICAgIGlidXN1bmljb2RlZ2VuLmg6 Ci0gICAgICAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGRpY3RzL3VuaWNvZGUtYmxvY2tz LmRpY3QKLQotVGhpcyBhdm9pZHMgYSBidWlsZCBlcnJvciB3aGVyZWJ5IGxpYmlidXMtMS4wLmxh IGlzIGJ1aWx0IHR3aWNlCi1zaW11bHRhbmVvdXNseSwgcmFjZXMgd2l0aCBpdHNlbGYsIGFuZCBi cmVha3MgdGhlIGJ1aWxkLgotCi0gICAgZGljdHMvdW5pY29kZS1ibG9ja3MuZGljdCBpYnVzdW5p Y29kZWdlbi5oOiB1bmljb2RlLXBhcnNlcgotCi1UaGUgdHdvIGJ1aWxkIHRhcmdldHMgbGV0IGBt YWtlIGlidXN1bmljb2RlZ2VuLmhgIHRyeSB0byBtYWtlCi1gZGljdHMvdW5pY29kZS1ibG9ja3Mu ZGljdGAgYW5kIGBpYnVzdW5pY29kZWdlbi5oYCB3aXRoIHVuaWNvZGUtcGFyc2VyLgotCi1Vbmxp a2UgYGlidXN1bmljb2RlZ2VuLmhgLCB3ZSBjYW5ub3QgYWRkIGBpYnVzZW1vamlnZW4uaGAgdG8g dGhlIHJ1bGUKLXRoYXQgcHJvZHVjZXMgaXQgKGFzIGEgc2lkZS1lZmZlY3QpIGJlY2F1c2UgdGhl IHJ1bGUgaXMgc3BlY2lmaWVkIHdpdGgKLUdOVSBNYWtlIHN5bnRheDoKLQotICAgIGRpY3RzL2Vt b2ppLSUuZGljdDogZW1vamktcGFyc2VyCi0KLWFuZCBkb2luZyBzbyB5aWVsZHMgYW4gZXJyb3I6 Ci0KLSAgICBjb25maWcuc3RhdHVzOiBlcnJvcjogU29tZXRoaW5nIHdlbnQgd3JvbmcgYm9vdHN0 cmFwcGluZyBtYWtlZmlsZQotICAgICAgICBmcmFnbWVudHMgZm9yIGF1dG9tYXRpYyBkZXBlbmRl bmN5IHRyYWNraW5nLiAgSWYgR05VIG1ha2Ugd2FzCi0gICAgICAgIG5vdCB1c2VkLCBjb25zaWRl ciByZS1ydW5uaW5nIHRoZSBjb25maWd1cmUgc2NyaXB0IHdpdGgKLSAgICAgICAgTUFLRT0iZ21h a2UiIChvciB3aGF0ZXZlciBpcyBuZWNlc3NhcnkpLiAgWW91IGNhbiBhbHNvIHRyeQotICAgICAg ICByZS1ydW5uaW5nIGNvbmZpZ3VyZSB3aXRoIHRoZSAnLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJh Y2tpbmcnCi0gICAgICAgIG9wdGlvbiB0byBhdCBsZWFzdCBiZSBhYmxlIHRvIGJ1aWxkIHRoZSBw YWNrYWdlIChhbGJlaXQgd2l0aG91dAotICAgICAgICBzdXBwb3J0IGZvciBhdXRvbWF0aWMgZGVw ZW5kZW5jeSB0cmFja2luZykuCi0KLVNvIGluc3RlYWQsIGFkZCBhIHByZXJlcXVpc2l0ZSB0byB0 aGUgcnVsZS4KLQotQm90aCBlbW9qaS1wYXJzZXIgYW5kIHVuaWNvZGUtcGFyc2VyIGhhcyAkKGxp YmlidXMpIGluIExEQURECi1hbmQgJChsaWJpYnVzKSBpcyBidWlsdCBiZWZvcmUgZW1vamktcGFy c2VyIGFuZCB1bmljb2RlLXBhcnNlciBhcmUKLWJ1aWx0LgotCi1CVUc9aHR0cHM6Ly9naXRodWIu Y29tL2lidXMvaWJ1cy9wdWxsLzI1MjMKLS0tLQotIHNyYy9NYWtlZmlsZS5hbSB8IDExICsrKysr LS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQotaW5kZXgg NjhkZGUyZjMuLmZlZTBiM2VlIDEwMDY0NAotLS0tIGEvc3JjL01ha2VmaWxlLmFtCi0rKysgYi9z cmMvTWFrZWZpbGUuYW0KLUBAIC0zNzIsOCArMzcyLDkgQEAgZGljdHMvZW1vamktJS5kaWN0OiBl bW9qaS1wYXJzZXIKLSAJICAgIGVjaG8gIlNraXAgJCRwbHVzX2NvbW1lbnQgJEAiOyBcCi0gCWZp OwotIAotLWlidXNlbW9qaWdlbi5oOgotLQkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBkaWN0cy9l bW9qaS1lbi5kaWN0Ci0rIyAjMjUyMyBTaG91bGQgdXNlIGF1dG90b29sIGRlcGVuZGVuY3kKLStp YnVzZW1vamlnZW4uaDogZGljdHMvZW1vamktZW4uZGljdAotKwkkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSAkXgotIAotICMgV2UgcHV0IGRpY3RzL2Vtb2ppLSUuZGljdCBhcyB0aGUgbWFrZSB0YXJn ZXQgZm9yIHRoZSBwYXJhbGxlbCBidWlsZAotICMgYW5kIHRoZSBtYWtlIHRhcmdldCBoYXMgdG8g YmUgZ2VuYXJhdGVkIGV2ZW4gaWYgdGhlIGZpbGUgc2l6ZSBpcyB6ZXJvLgotQEAgLTQyNCw3ICs0 MjUsOCBAQCBkaWN0cy91bmljb2RlLW5hbWVzLmRpY3Q6IHVuaWNvZGUtcGFyc2VyCi0gCSAgICBl Y2hvICJHZW5lcmF0ZWQgJEAiOyBcCi0gCWZpOwotIAotLWRpY3RzL3VuaWNvZGUtYmxvY2tzLmRp Y3Q6IHVuaWNvZGUtcGFyc2VyCi0rIyAjMjUyMyBTaG91bGQgdXNlIGF1dG90b29sIGRlcGVuZGVu Y3kKLStkaWN0cy91bmljb2RlLWJsb2Nrcy5kaWN0IGlidXN1bmljb2RlZ2VuLmg6IHVuaWNvZGUt cGFyc2VyCi0gCSQoQU1fVl9hdClpbnB1dF9maWxlPSIkKFVDRF9ESVIpL0Jsb2Nrcy50eHQiOyBc Ci0gCWlmIHRlc3QgISAtZiAiJCRpbnB1dF9maWxlIiA7IHRoZW4gXAotIAkgICAgZWNobyAiV0FS TklORzogTm90IGZvdW5kICQkaW5wdXRfZmlsZSIgMT4mMjsgXAotQEAgLTQzNiw5ICs0MzgsNiBA QCBkaWN0cy91bmljb2RlLWJsb2Nrcy5kaWN0OiB1bmljb2RlLXBhcnNlcgotIAkgICAgZWNobyAi R2VuZXJhdGVkICRAIjsgXAotIAlmaTsKLSAKLS1pYnVzdW5pY29kZWdlbi5oOgotLQkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBkaWN0cy91bmljb2RlLWJsb2Nrcy5kaWN0Ci0tCi0gdW5pY29kZV9w YXJzZXJfU09VUkNFUyA9ICAgICAgICBcCi0gICAgIHVuaWNvZGUtcGFyc2VyLmMgICAgICAgICAg ICBcCi0gICAgICQocGFyc2VyX2V4dHJhX3NvdXJjZXMpICAgICBcCi0tLSAKLTIuNDEuMAotCi1G cm9tIDEzOWUwYmUwN2JmYmM5NmQ1ZmY5NWU1ZjVlYmQ3NjBmYmM3ZDk0YzAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci1EYXRlOiBXZWQsIDEyIEp1bCAyMDIzIDA3OjM5OjI3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0gg MS8zXSBidXM6IEFwcGx5IGNvZGUgc3R5bGUgdG8gaW5wdXRjb250ZXh0LmMKLQotLS0tCi0gYnVz L2lucHV0Y29udGV4dC5jIHwgNTI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzMTkgaW5zZXJ0aW9ucygrKSwgMjA5IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYnVzL2lucHV0Y29udGV4dC5jIGIvYnVzL2lucHV0Y29u dGV4dC5jCi1pbmRleCBlNzZiYmRmYy4uOGFkZWQ1ZDggMTAwNjQ0Ci0tLS0gYS9idXMvaW5wdXRj b250ZXh0LmMKLSsrKyBiL2J1cy9pbnB1dGNvbnRleHQuYwotQEAgLTM4LDcgKzM4LDggQEAgc3Ry dWN0IF9TZXRFbmdpbmVCeURlc2NEYXRhIHsKLSAgICAgR1Rhc2sgKnRhc2s7Ci0gICAgIC8qIGEg b2JqZWN0IHRvIGNhbmNlbCBidXNfZW5naW5lX3Byb3h5X25ldyBjYWxsICovCi0gICAgIEdDYW5j ZWxsYWJsZSAqY2FuY2VsbGFibGU7Ci0tICAgIC8qIGEgb2JqZWN0IGJlaW5nIHBhc3NlZCB0byB0 aGUgYnVzX2lucHV0X2NvbnRleHRfc2V0X2VuZ2luZV9ieV9kZXNjIGZ1bmN0aW9uLiBpZiBvcmln aW5fY2FuY2VsbGFibGUgaXMgY2FuY2VsbGVkIGJ5IHNvbWVvbmUsCi0rICAgIC8qIGEgb2JqZWN0 IGJlaW5nIHBhc3NlZCB0byB0aGUgYnVzX2lucHV0X2NvbnRleHRfc2V0X2VuZ2luZV9ieV9kZXNj Ci0rICAgICAqIGZ1bmN0aW9uLiBpZiBvcmlnaW5fY2FuY2VsbGFibGUgaXMgY2FuY2VsbGVkIGJ5 IHNvbWVvbmUsCi0gICAgICAqIHdlIGNhbmNlbCB0aGUgY2FuY2VsbGFibGUgYWJvdmUgYXMgd2Vs bC4gKi8KLSAgICAgR0NhbmNlbGxhYmxlICpvcmlnaW5fY2FuY2VsbGFibGU7Ci0gICAgIGd1bG9u ZyBjYW5jZWxsZWRfaGFuZGxlcl9pZDsKLUBAIC0yMTEsMTEyICsyMTIsMTE1IEBAIHN0YXRpYyBJ QnVzUHJvcExpc3QgICAgKnByb3BzX2VtcHR5ID0gTlVMTDsKLSAgKiBYTUwgd2lsbCBiZSBhdXRv bWF0aWNhbGx5IHJlamVjdGVkIGJ5IHRoZSBHREJ1cyBsaWJyYXJ5IChzZWUKLSAgKiBzcmMvaWJ1 c3NlcnZpY2UuYyBmb3IgZGV0YWlscy4pICovCi0gc3RhdGljIGNvbnN0IGdjaGFyIGludHJvc3Bl Y3Rpb25feG1sW10gPQotLSAgICAiPG5vZGU+IgotLSAgICAiICA8aW50ZXJmYWNlIG5hbWU9J29y Zy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4dCc+IgotKyAgICAiPG5vZGU+XG4iCi0rICAg ICIgIDxpbnRlcmZhY2UgbmFtZT0nb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0Jz5c biIKLSAgICAgLyogcHJvcGVydGllcyAqLwotLSAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdDb250 ZW50VHlwZScgdHlwZT0nKHV1KScgYWNjZXNzPSd3cml0ZScgLz4iCi0rICAgICIgICAgPHByb3Bl cnR5IG5hbWU9J0NvbnRlbnRUeXBlJyB0eXBlPScodXUpJyBhY2Nlc3M9J3dyaXRlJyAvPlxuIgot ICAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdDbGllbnRDb21taXRQcmVlZGl0JyB0eXBlPScoYikn IGFjY2Vzcz0nd3JpdGUnIC8+XG4iCi0gICAgIC8qIG1ldGhvZHMgKi8KLS0gICAgIiAgICA8bWV0 aG9kIG5hbWU9J1Byb2Nlc3NLZXlFdmVudCc+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249 J2luJyAgdHlwZT0ndScgbmFtZT0na2V5dmFsJyAvPiIKLS0gICAgIiAgICAgIDxhcmcgZGlyZWN0 aW9uPSdpbicgIHR5cGU9J3UnIG5hbWU9J2tleWNvZGUnIC8+IgotLSAgICAiICAgICAgPGFyZyBk aXJlY3Rpb249J2luJyAgdHlwZT0ndScgbmFtZT0nc3RhdGUnIC8+IgotLSAgICAiICAgICAgPGFy ZyBkaXJlY3Rpb249J291dCcgdHlwZT0nYicgbmFtZT0naGFuZGxlZCcgLz4iCi0tICAgICIgICAg PC9tZXRob2Q+IgotLSAgICAiICAgIDxtZXRob2QgbmFtZT0nU2V0Q3Vyc29yTG9jYXRpb24nPiIK LS0gICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0naScgbmFtZT0neCcgLz4iCi0t ICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J2knIG5hbWU9J3knIC8+IgotLSAg ICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1lPSd3JyAvPiIKLS0gICAg IiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0naScgbmFtZT0naCcgLz4iCi0tICAgICIg ICAgPC9tZXRob2Q+IgotLSAgICAiICAgIDxtZXRob2QgbmFtZT0nU2V0Q3Vyc29yTG9jYXRpb25S ZWxhdGl2ZSc+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1l PSd4JyAvPiIKLS0gICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0naScgbmFtZT0n eScgLz4iCi0tICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J2knIG5hbWU9J3cn IC8+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1lPSdoJyAv PiIKLS0gICAgIiAgICA8L21ldGhvZD4iCi0tICAgICIgICAgPG1ldGhvZCBuYW1lPSdQcm9jZXNz SGFuZFdyaXRpbmdFdmVudCc+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBl PSdhZCcgbmFtZT0nY29vcmRpbmF0ZXMnIC8+IgotLSAgICAiICAgIDwvbWV0aG9kPiIKLS0gICAg IiAgICA8bWV0aG9kIG5hbWU9J0NhbmNlbEhhbmRXcml0aW5nJz4iCi0tICAgICIgICAgICA8YXJn IGRpcmVjdGlvbj0naW4nIHR5cGU9J3UnIG5hbWU9J25fc3Ryb2tlcycgLz4iCi0tICAgICIgICAg PC9tZXRob2Q+IgotLSAgICAiICAgIDxtZXRob2QgbmFtZT0nRm9jdXNJbicgLz4iCi0tICAgICIg ICAgPG1ldGhvZCBuYW1lPSdGb2N1c091dCcgLz4iCi0tICAgICIgICAgPG1ldGhvZCBuYW1lPSdS ZXNldCcgLz4iCi0tICAgICIgICAgPG1ldGhvZCBuYW1lPSdTZXRDYXBhYmlsaXRpZXMnPiIKLS0g ICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0ndScgbmFtZT0nY2FwcycgLz4iCi0t ICAgICIgICAgPC9tZXRob2Q+IgotLSAgICAiICAgIDxtZXRob2QgbmFtZT0nUHJvcGVydHlBY3Rp dmF0ZSc+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSdzJyBuYW1lPSdu YW1lJyAvPiIKLS0gICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0ndScgbmFtZT0n c3RhdGUnIC8+IgotLSAgICAiICAgIDwvbWV0aG9kPiIKLS0gICAgIiAgICA8bWV0aG9kIG5hbWU9 J1NldEVuZ2luZSc+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSdzJyBu YW1lPSduYW1lJyAvPiIKLS0gICAgIiAgICA8L21ldGhvZD4iCi0tICAgICIgICAgPG1ldGhvZCBu YW1lPSdHZXRFbmdpbmUnPiIKLS0gICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdvdXQnIHR5cGU9 J3YnIG5hbWU9J2Rlc2MnIC8+IgotLSAgICAiICAgIDwvbWV0aG9kPiIKLS0gICAgIiAgICA8bWV0 aG9kIG5hbWU9J1NldFN1cnJvdW5kaW5nVGV4dCc+IgotLSAgICAiICAgICAgPGFyZyBkaXJlY3Rp b249J2luJyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAvPiIKLS0gICAgIiAgICAgIDxhcmcgZGlyZWN0 aW9uPSdpbicgdHlwZT0ndScgbmFtZT0nY3Vyc29yX3BvcycgLz4iCi0tICAgICIgICAgICA8YXJn IGRpcmVjdGlvbj0naW4nIHR5cGU9J3UnIG5hbWU9J2FuY2hvcl9wb3MnIC8+IgotLSAgICAiICAg IDwvbWV0aG9kPiIKLSsgICAgIiAgICA8bWV0aG9kIG5hbWU9J1Byb2Nlc3NLZXlFdmVudCc+XG4i Ci0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nICB0eXBlPSd1JyBuYW1lPSdrZXl2YWwn IC8+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nICB0eXBlPSd1JyBuYW1lPSdr ZXljb2RlJyAvPlxuIgotKyAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyAgdHlwZT0ndScg bmFtZT0nc3RhdGUnIC8+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0nb3V0JyB0eXBl PSdiJyBuYW1lPSdoYW5kbGVkJyAvPlxuIgotKyAgICAiICAgIDwvbWV0aG9kPlxuIgotKyAgICAi ICAgIDxtZXRob2QgbmFtZT0nU2V0Q3Vyc29yTG9jYXRpb24nPlxuIgotKyAgICAiICAgICAgPGFy ZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1lPSd4JyAvPlxuIgotKyAgICAiICAgICAgPGFy ZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1lPSd5JyAvPlxuIgotKyAgICAiICAgICAgPGFy ZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1lPSd3JyAvPlxuIgotKyAgICAiICAgICAgPGFy ZyBkaXJlY3Rpb249J2luJyB0eXBlPSdpJyBuYW1lPSdoJyAvPlxuIgotKyAgICAiICAgIDwvbWV0 aG9kPlxuIgotKyAgICAiICAgIDxtZXRob2QgbmFtZT0nU2V0Q3Vyc29yTG9jYXRpb25SZWxhdGl2 ZSc+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J2knIG5hbWU9J3gn IC8+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J2knIG5hbWU9J3kn IC8+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J2knIG5hbWU9J3cn IC8+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J2knIG5hbWU9J2gn IC8+XG4iCi0rICAgICIgICAgPC9tZXRob2Q+XG4iCi0rICAgICIgICAgPG1ldGhvZCBuYW1lPSdQ cm9jZXNzSGFuZFdyaXRpbmdFdmVudCc+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0n aW4nIHR5cGU9J2FkJyBuYW1lPSdjb29yZGluYXRlcycgLz5cbiIKLSsgICAgIiAgICA8L21ldGhv ZD5cbiIKLSsgICAgIiAgICA8bWV0aG9kIG5hbWU9J0NhbmNlbEhhbmRXcml0aW5nJz5cbiIKLSsg ICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0ndScgbmFtZT0nbl9zdHJva2VzJyAv PlxuIgotKyAgICAiICAgIDwvbWV0aG9kPlxuIgotKyAgICAiICAgIDxtZXRob2QgbmFtZT0nRm9j dXNJbicgLz5cbiIKLSsgICAgIiAgICA8bWV0aG9kIG5hbWU9J0ZvY3VzT3V0JyAvPlxuIgotKyAg ICAiICAgIDxtZXRob2QgbmFtZT0nUmVzZXQnIC8+XG4iCi0rICAgICIgICAgPG1ldGhvZCBuYW1l PSdTZXRDYXBhYmlsaXRpZXMnPlxuIgotKyAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0 eXBlPSd1JyBuYW1lPSdjYXBzJyAvPlxuIgotKyAgICAiICAgIDwvbWV0aG9kPlxuIgotKyAgICAi ICAgIDxtZXRob2QgbmFtZT0nUHJvcGVydHlBY3RpdmF0ZSc+XG4iCi0rICAgICIgICAgICA8YXJn IGRpcmVjdGlvbj0naW4nIHR5cGU9J3MnIG5hbWU9J25hbWUnIC8+XG4iCi0rICAgICIgICAgICA8 YXJnIGRpcmVjdGlvbj0naW4nIHR5cGU9J3UnIG5hbWU9J3N0YXRlJyAvPlxuIgotKyAgICAiICAg IDwvbWV0aG9kPlxuIgotKyAgICAiICAgIDxtZXRob2QgbmFtZT0nU2V0RW5naW5lJz5cbiIKLSsg ICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0ncycgbmFtZT0nbmFtZScgLz5cbiIK LSsgICAgIiAgICA8L21ldGhvZD5cbiIKLSsgICAgIiAgICA8bWV0aG9kIG5hbWU9J0dldEVuZ2lu ZSc+XG4iCi0rICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0nb3V0JyB0eXBlPSd2JyBuYW1lPSdk ZXNjJyAvPlxuIgotKyAgICAiICAgIDwvbWV0aG9kPlxuIgotKyAgICAiICAgIDxtZXRob2QgbmFt ZT0nU2V0U3Vycm91bmRpbmdUZXh0Jz5cbiIKLSsgICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdp bicgdHlwZT0ndicgbmFtZT0ndGV4dCcgLz5cbiIKLSsgICAgIiAgICAgIDxhcmcgZGlyZWN0aW9u PSdpbicgdHlwZT0ndScgbmFtZT0nY3Vyc29yX3BvcycgLz5cbiIKLSsgICAgIiAgICAgIDxhcmcg ZGlyZWN0aW9uPSdpbicgdHlwZT0ndScgbmFtZT0nYW5jaG9yX3BvcycgLz5cbiIKLSsgICAgIiAg ICA8L21ldGhvZD5cbiIKLSAKLSAgICAgLyogc2lnbmFscyAqLwotLSAgICAiICAgIDxzaWduYWwg bmFtZT0nQ29tbWl0VGV4dCc+IgotLSAgICAiICAgICAgPGFyZyB0eXBlPSd2JyBuYW1lPSd0ZXh0 JyAvPiIKLS0gICAgIiAgICA8L3NpZ25hbD4iCi0tICAgICIgICAgPHNpZ25hbCBuYW1lPSdGb3J3 YXJkS2V5RXZlbnQnPiIKLS0gICAgIiAgICAgIDxhcmcgdHlwZT0ndScgbmFtZT0na2V5dmFsJyAv PiIKLS0gICAgIiAgICAgIDxhcmcgdHlwZT0ndScgbmFtZT0na2V5Y29kZScgLz4iCi0tICAgICIg ICAgICA8YXJnIHR5cGU9J3UnIG5hbWU9J3N0YXRlJyAvPiIKLS0gICAgIiAgICA8L3NpZ25hbD4i Ci0tICAgICIgICAgPHNpZ25hbCBuYW1lPSdVcGRhdGVQcmVlZGl0VGV4dCc+IgotLSAgICAiICAg ICAgPGFyZyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAvPiIKLS0gICAgIiAgICAgIDxhcmcgdHlwZT0n dScgbmFtZT0nY3Vyc29yX3BvcycgLz4iCi0tICAgICIgICAgICA8YXJnIHR5cGU9J2InIG5hbWU9 J3Zpc2libGUnIC8+IgotLSAgICAiICAgIDwvc2lnbmFsPiIKLS0gICAgIiAgICA8c2lnbmFsIG5h bWU9J1VwZGF0ZVByZWVkaXRUZXh0V2l0aE1vZGUnPiIKLS0gICAgIiAgICAgIDxhcmcgdHlwZT0n dicgbmFtZT0ndGV4dCcgLz4iCi0tICAgICIgICAgICA8YXJnIHR5cGU9J3UnIG5hbWU9J2N1cnNv cl9wb3MnIC8+IgotLSAgICAiICAgICAgPGFyZyB0eXBlPSdiJyBuYW1lPSd2aXNpYmxlJyAvPiIK LS0gICAgIiAgICAgIDxhcmcgdHlwZT0ndScgbmFtZT0nbW9kZScgLz4iCi0tICAgICIgICAgPC9z aWduYWw+IgotLSAgICAiICAgIDxzaWduYWwgbmFtZT0nU2hvd1ByZWVkaXRUZXh0Jy8+IgotLSAg ICAiICAgIDxzaWduYWwgbmFtZT0nSGlkZVByZWVkaXRUZXh0Jy8+IgotLSAgICAiICAgIDxzaWdu YWwgbmFtZT0nVXBkYXRlQXV4aWxpYXJ5VGV4dCc+IgotLSAgICAiICAgICAgPGFyZyB0eXBlPSd2 JyBuYW1lPSd0ZXh0JyAvPiIKLS0gICAgIiAgICAgIDxhcmcgdHlwZT0nYicgbmFtZT0ndmlzaWJs ZScgLz4iCi0tICAgICIgICAgPC9zaWduYWw+IgotLSAgICAiICAgIDxzaWduYWwgbmFtZT0nU2hv d0F1eGlsaWFyeVRleHQnLz4iCi0tICAgICIgICAgPHNpZ25hbCBuYW1lPSdIaWRlQXV4aWxpYXJ5 VGV4dCcvPiIKLS0gICAgIiAgICA8c2lnbmFsIG5hbWU9J1VwZGF0ZUxvb2t1cFRhYmxlJz4iCi0t ICAgICIgICAgICA8YXJnIHR5cGU9J3YnIG5hbWU9J3RhYmxlJyAvPiIKLS0gICAgIiAgICAgIDxh cmcgdHlwZT0nYicgbmFtZT0ndmlzaWJsZScgLz4iCi0tICAgICIgICAgPC9zaWduYWw+IgotLSAg ICAiICAgIDxzaWduYWwgbmFtZT0nU2hvd0xvb2t1cFRhYmxlJy8+IgotLSAgICAiICAgIDxzaWdu YWwgbmFtZT0nSGlkZUxvb2t1cFRhYmxlJy8+IgotLSAgICAiICAgIDxzaWduYWwgbmFtZT0nUGFn ZVVwTG9va3VwVGFibGUnLz4iCi0tICAgICIgICAgPHNpZ25hbCBuYW1lPSdQYWdlRG93bkxvb2t1 cFRhYmxlJy8+IgotLSAgICAiICAgIDxzaWduYWwgbmFtZT0nQ3Vyc29yVXBMb29rdXBUYWJsZScv PiIKLS0gICAgIiAgICA8c2lnbmFsIG5hbWU9J0N1cnNvckRvd25Mb29rdXBUYWJsZScvPiIKLS0g ICAgIiAgICA8c2lnbmFsIG5hbWU9J1JlZ2lzdGVyUHJvcGVydGllcyc+IgotLSAgICAiICAgICAg PGFyZyB0eXBlPSd2JyBuYW1lPSdwcm9wcycgLz4iCi0tICAgICIgICAgPC9zaWduYWw+IgotLSAg ICAiICAgIDxzaWduYWwgbmFtZT0nVXBkYXRlUHJvcGVydHknPiIKLS0gICAgIiAgICAgIDxhcmcg dHlwZT0ndicgbmFtZT0ncHJvcCcgLz4iCi0tICAgICIgICAgPC9zaWduYWw+IgotLSAgICAiICA8 L2ludGVyZmFjZT4iCi0tICAgICI8L25vZGU+IjsKLSsgICAgIiAgICA8c2lnbmFsIG5hbWU9J0Nv bW1pdFRleHQnPlxuIgotKyAgICAiICAgICAgPGFyZyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAvPlxu IgotKyAgICAiICAgIDwvc2lnbmFsPlxuIgotKyAgICAiICAgIDxzaWduYWwgbmFtZT0nRm9yd2Fy ZEtleUV2ZW50Jz5cbiIKLSsgICAgIiAgICAgIDxhcmcgdHlwZT0ndScgbmFtZT0na2V5dmFsJyAv PlxuIgotKyAgICAiICAgICAgPGFyZyB0eXBlPSd1JyBuYW1lPSdrZXljb2RlJyAvPlxuIgotKyAg ICAiICAgICAgPGFyZyB0eXBlPSd1JyBuYW1lPSdzdGF0ZScgLz5cbiIKLSsgICAgIiAgICA8L3Np Z25hbD5cbiIKLSsgICAgIiAgICA8c2lnbmFsIG5hbWU9J1VwZGF0ZVByZWVkaXRUZXh0Jz5cbiIK LSsgICAgIiAgICAgIDxhcmcgdHlwZT0ndicgbmFtZT0ndGV4dCcgLz5cbiIKLSsgICAgIiAgICAg IDxhcmcgdHlwZT0ndScgbmFtZT0nY3Vyc29yX3BvcycgLz5cbiIKLSsgICAgIiAgICAgIDxhcmcg dHlwZT0nYicgbmFtZT0ndmlzaWJsZScgLz5cbiIKLSsgICAgIiAgICA8L3NpZ25hbD5cbiIKLSsg ICAgIiAgICA8c2lnbmFsIG5hbWU9J1VwZGF0ZVByZWVkaXRUZXh0V2l0aE1vZGUnPlxuIgotKyAg ICAiICAgICAgPGFyZyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAvPlxuIgotKyAgICAiICAgICAgPGFy ZyB0eXBlPSd1JyBuYW1lPSdjdXJzb3JfcG9zJyAvPlxuIgotKyAgICAiICAgICAgPGFyZyB0eXBl PSdiJyBuYW1lPSd2aXNpYmxlJyAvPlxuIgotKyAgICAiICAgICAgPGFyZyB0eXBlPSd1JyBuYW1l PSdtb2RlJyAvPlxuIgotKyAgICAiICAgIDwvc2lnbmFsPlxuIgotKyAgICAiICAgIDxzaWduYWwg bmFtZT0nU2hvd1ByZWVkaXRUZXh0Jy8+XG4iCi0rICAgICIgICAgPHNpZ25hbCBuYW1lPSdIaWRl UHJlZWRpdFRleHQnLz5cbiIKLSsgICAgIiAgICA8c2lnbmFsIG5hbWU9J1VwZGF0ZUF1eGlsaWFy eVRleHQnPlxuIgotKyAgICAiICAgICAgPGFyZyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAvPlxuIgot KyAgICAiICAgICAgPGFyZyB0eXBlPSdiJyBuYW1lPSd2aXNpYmxlJyAvPlxuIgotKyAgICAiICAg IDwvc2lnbmFsPlxuIgotKyAgICAiICAgIDxzaWduYWwgbmFtZT0nU2hvd0F1eGlsaWFyeVRleHQn Lz5cbiIKLSsgICAgIiAgICA8c2lnbmFsIG5hbWU9J0hpZGVBdXhpbGlhcnlUZXh0Jy8+XG4iCi0r ICAgICIgICAgPHNpZ25hbCBuYW1lPSdVcGRhdGVMb29rdXBUYWJsZSc+XG4iCi0rICAgICIgICAg ICA8YXJnIHR5cGU9J3YnIG5hbWU9J3RhYmxlJyAvPlxuIgotKyAgICAiICAgICAgPGFyZyB0eXBl PSdiJyBuYW1lPSd2aXNpYmxlJyAvPlxuIgotKyAgICAiICAgIDwvc2lnbmFsPlxuIgotKyAgICAi ICAgIDxzaWduYWwgbmFtZT0nU2hvd0xvb2t1cFRhYmxlJy8+XG4iCi0rICAgICIgICAgPHNpZ25h bCBuYW1lPSdIaWRlTG9va3VwVGFibGUnLz5cbiIKLSsgICAgIiAgICA8c2lnbmFsIG5hbWU9J1Bh Z2VVcExvb2t1cFRhYmxlJy8+XG4iCi0rICAgICIgICAgPHNpZ25hbCBuYW1lPSdQYWdlRG93bkxv b2t1cFRhYmxlJy8+XG4iCi0rICAgICIgICAgPHNpZ25hbCBuYW1lPSdDdXJzb3JVcExvb2t1cFRh YmxlJy8+XG4iCi0rICAgICIgICAgPHNpZ25hbCBuYW1lPSdDdXJzb3JEb3duTG9va3VwVGFibGUn Lz5cbiIKLSsgICAgIiAgICA8c2lnbmFsIG5hbWU9J1JlZ2lzdGVyUHJvcGVydGllcyc+XG4iCi0r ICAgICIgICAgICA8YXJnIHR5cGU9J3YnIG5hbWU9J3Byb3BzJyAvPlxuIgotKyAgICAiICAgIDwv c2lnbmFsPlxuIgotKyAgICAiICAgIDxzaWduYWwgbmFtZT0nVXBkYXRlUHJvcGVydHknPlxuIgot KyAgICAiICAgICAgPGFyZyB0eXBlPSd2JyBuYW1lPSdwcm9wJyAvPlxuIgotKyAgICAiICAgIDwv c2lnbmFsPlxuIgotKyAgICAiICA8L2ludGVyZmFjZT5cbiIKLSsgICAgIjwvbm9kZT5cbiI7Ci0g Ci0gR19ERUZJTkVfVFlQRSAoQnVzSW5wdXRDb250ZXh0LCBidXNfaW5wdXRfY29udGV4dCwgSUJV U19UWVBFX1NFUlZJQ0UpCi0gCi0tLyogVFJVRSBpZiB3ZSBjYW4gc2VuZCBwcmVlZGl0IHRleHQg dG8gY2xpZW50LiBGQUxTRSBpZiB0aGUgcGFuZWwgaGFzIHRvIGhhbmRsZSBpdC4gTm90ZSB0aGF0 IHdlIGNoZWNrIElCVVNfQ0FQX0ZPQ1VTIGhlcmUgc2luY2UKLS0gKiB3aGVuIHRoZSBjYXBhYmls aXR5IGlzIG5vdCBzZXQsIHRoZSBjbGllbnQgaGFzIHRvIGhhbmRsZSBhIHByZWVkaXQgdGV4dCBy ZWdhcmRsZXNzIG9mIHRoZSBlbWJlZF9wcmVlZGl0X3RleHQgY29uZmlnLiAqLwotKy8qIFRSVUUg aWYgd2UgY2FuIHNlbmQgcHJlZWRpdCB0ZXh0IHRvIGNsaWVudC4gRkFMU0UgaWYgdGhlIHBhbmVs IGhhcyB0byBoYW5kbGUKLSsgKiBpdC4gTm90ZSB0aGF0IHdlIGNoZWNrIElCVVNfQ0FQX0ZPQ1VT IGhlcmUgc2luY2UKLSsgKiB3aGVuIHRoZSBjYXBhYmlsaXR5IGlzIG5vdCBzZXQsIHRoZSBjbGll bnQgaGFzIHRvIGhhbmRsZSBhIHByZWVkaXQgdGV4dAotKyAqIHJlZ2FyZGxlc3Mgb2YgdGhlIGVt YmVkX3ByZWVkaXRfdGV4dCBjb25maWcuICovCi0gI2RlZmluZSBQUkVFRElUX0NPTkRJVElPTiAg XAotICAgICAoKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX1BSRUVESVRfVEVYVCkg JiYgXAotLSAgICAgKGJ1c19pYnVzX2ltcGxfaXNfZW1iZWRfcHJlZWRpdF90ZXh0IChCVVNfREVG QVVMVF9JQlVTKSB8fCAoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfRk9DVVMpID09 IDApKQotKyAgICAgKGJ1c19pYnVzX2ltcGxfaXNfZW1iZWRfcHJlZWRpdF90ZXh0IChcCi0rICAg ICAgICAgICAgQlVTX0RFRkFVTFRfSUJVUykgfHwgKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElC VVNfQ0FQX0ZPQ1VTKSA9PSAwKSkKLSAKLSBzdGF0aWMgdm9pZAotIF9jb25uZWN0aW9uX2Rlc3Ry b3lfY2IgKEJ1c0Nvbm5lY3Rpb24gICAqY29ubmVjdGlvbiwKLUBAIC0zNDMsMTcgKzM0NywyMSBA QCBidXNfaW5wdXRfY29udGV4dF9jbGFzc19pbml0IChCdXNJbnB1dENvbnRleHRDbGFzcyAqY2xh c3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIiKTsKLSAgICAgZ19vYmplY3RfcmVmX3NpbmsgKGNsYXNzLT5kZWZhdWx0X2VuZ2luZV9k ZXNjKTsKLSAKLS0gICAgaWJ1c19vYmplY3RfY2xhc3MtPmRlc3Ryb3kgPSAoSUJ1c09iamVjdERl c3Ryb3lGdW5jKSBidXNfaW5wdXRfY29udGV4dF9kZXN0cm95OwotKyAgICBpYnVzX29iamVjdF9j bGFzcy0+ZGVzdHJveSA9Ci0rICAgICAgICAgICAgKElCdXNPYmplY3REZXN0cm95RnVuYylidXNf aW5wdXRfY29udGV4dF9kZXN0cm95OwotIAotICAgICAvKiBvdmVycmlkZSB0aGUgcGFyZW50IGNs YXNzJ3MgaW1wbGVtZW50YXRpb24uICovCi0gICAgIElCVVNfU0VSVklDRV9DTEFTUyAoY2xhc3Mp LT5zZXJ2aWNlX21ldGhvZF9jYWxsID0KLSAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZp Y2VfbWV0aG9kX2NhbGw7Ci0gICAgIElCVVNfU0VSVklDRV9DTEFTUyAoY2xhc3MpLT5zZXJ2aWNl X3NldF9wcm9wZXJ0eSA9Ci0gICAgICAgICBidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX3NldF9w cm9wZXJ0eTsKLS0gICAgLyogcmVnaXN0ZXIgdGhlIHhtbCBzbyB0aGF0IGJ1c19pYnVzX2ltcGxf c2VydmljZV9tZXRob2RfY2FsbCB3aWxsIGJlIGNhbGxlZCBvbiBhIG1ldGhvZCBjYWxsIGRlZmlu ZWQgaW4gdGhlIHhtbCAoZS5nLiAnRm9jdXNJbicuKSAqLwotKyAgICAvKiByZWdpc3RlciB0aGUg eG1sIHNvIHRoYXQgYnVzX2lidXNfaW1wbF9zZXJ2aWNlX21ldGhvZF9jYWxsIHdpbGwgYmUKLSsg ICAgICogY2FsbGVkIG9uIGEgbWV0aG9kIGNhbGwgZGVmaW5lZCBpbiB0aGUgeG1sIChlLmcuICdG b2N1c0luJy4pICovCi0gICAgIGlidXNfc2VydmljZV9jbGFzc19hZGRfaW50ZXJmYWNlcyAoSUJV U19TRVJWSUNFX0NMQVNTIChjbGFzcyksIGludHJvc3BlY3Rpb25feG1sKTsKLSAKLS0gICAgLyog aW5zdGFsbCBnbGliIHNpZ25hbHMgdGhhdCB3b3VsZCBiZSBoYW5kbGVkIGJ5IG90aGVyIGNsYXNz ZXMgbGlrZSBpYnVzaW1wbC5jIGFuZCBwYW5lbHByb3h5LmMuICovCi0rICAgIC8qIGluc3RhbGwg Z2xpYiBzaWduYWxzIHRoYXQgd291bGQgYmUgaGFuZGxlZCBieSBvdGhlciBjbGFzc2VzIGxpa2UK LSsgICAgICogaWJ1c2ltcGwuYyBhbmQgcGFuZWxwcm94eS5jLgotKyAgICAgKi8KLSAgICAgY29u dGV4dF9zaWduYWxzW1BST0NFU1NfS0VZX0VWRU5UXSA9Ci0gICAgICAgICBnX3NpZ25hbF9uZXcg KElfKCJwcm9jZXNzLWtleS1ldmVudCIpLAotICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT IChjbGFzcyksCi1AQCAtNTc2LDggKzU4NCwxMSBAQCBidXNfaW5wdXRfY29udGV4dF9jbGFzc19p bml0IChCdXNJbnB1dENvbnRleHRDbGFzcyAqY2xhc3MpCi0gICAgICAgICAgICAgR19UWVBFX05P TkUsCi0gICAgICAgICAgICAgMCk7Ci0gCi0tICAgIC8qIFRoaXMgc2lnbmFsIGlzIG5vdCBmb3Ig bm90aWZ5aW5nIGFuIGV2ZW50IG9uIHRoaXMgb2JqZWN0LCBidXQgaXMgZm9yIHJlcXVlc3Rpbmcg YW4gZW5naW5lIGFzIHRoZSBuYW1lIHNob3dzLgotLSAgICAgKiBPbiB0aGUgc2lnbmFsIGVtaXNz aW9uLCBpYnVzaW1wbC5jIHdpbGwgaW1tZWRpYXRlbHkgdXBkYXRlIHRoZSBjb250ZXh0LT5lbmdp bmUgdmFyaWFibGUuICovCi0rICAgIC8qIFRoaXMgc2lnbmFsIGlzIG5vdCBmb3Igbm90aWZ5aW5n IGFuIGV2ZW50IG9uIHRoaXMgb2JqZWN0LCBidXQgaXMgZm9yCi0rICAgICAqIHJlcXVlc3Rpbmcg YW4gZW5naW5lIGFzIHRoZSBuYW1lIHNob3dzLgotKyAgICAgKiBPbiB0aGUgc2lnbmFsIGVtaXNz aW9uLCBpYnVzaW1wbC5jIHdpbGwgaW1tZWRpYXRlbHkgdXBkYXRlIHRoZQotKyAgICAgKiBjb250 ZXh0LT5lbmdpbmUgdmFyaWFibGUuCi0rICAgICAqLwotICAgICBjb250ZXh0X3NpZ25hbHNbUkVR VUVTVF9FTkdJTkVdID0KLSAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oInJlcXVlc3QtZW5naW5l IiksCi0gICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSwKLUBAIC02MTQsNyAr NjI1LDggQEAgYnVzX2lucHV0X2NvbnRleHRfY2xhc3NfaW5pdCAoQnVzSW5wdXRDb250ZXh0Q2xh c3MgKmNsYXNzKQotIAotICAgICB0ZXh0X2VtcHR5ID0gaWJ1c190ZXh0X25ld19mcm9tX3N0cmlu ZyAoIiIpOwotICAgICBnX29iamVjdF9yZWZfc2luayAodGV4dF9lbXB0eSk7Ci0tICAgIGxvb2t1 cF90YWJsZV9lbXB0eSA9IGlidXNfbG9va3VwX3RhYmxlX25ldyAoOSAvKiBwYWdlIHNpemUgKi8s IDAsIEZBTFNFLCBGQUxTRSk7Ci0rICAgIGxvb2t1cF90YWJsZV9lbXB0eSA9IGlidXNfbG9va3Vw X3RhYmxlX25ldyAoOSAvKiBwYWdlIHNpemUgKi8sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCwgRkFMU0UsIEZBTFNFKTsKLSAgICAgZ19vYmplY3Rf cmVmX3NpbmsgKGxvb2t1cF90YWJsZV9lbXB0eSk7Ci0gICAgIHByb3BzX2VtcHR5ID0gaWJ1c19w cm9wX2xpc3RfbmV3ICgpOwotICAgICBnX29iamVjdF9yZWZfc2luayAocHJvcHNfZW1wdHkpOwot QEAgLTY2Miw5ICs2NzQsMTAgQEAgYnVzX2lucHV0X2NvbnRleHRfZGVzdHJveSAoQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0KQotICAgICB9Ci0gCi0gICAgIGlmIChjb250ZXh0LT5jb25uZWN0aW9u KSB7Ci0tICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMgKGNvbnRl eHQtPmNvbm5lY3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoR0NhbGxiYWNrKSBfY29ubmVjdGlvbl9kZXN0cm95X2NiLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCk7Ci0rICAgICAgICBnX3NpZ25hbF9oYW5k bGVyc19kaXNjb25uZWN0X2J5X2Z1bmMgKAotKyAgICAgICAgICAgICAgICBjb250ZXh0LT5jb25u ZWN0aW9uLAotKyAgICAgICAgICAgICAgICAoR0NhbGxiYWNrKSBfY29ubmVjdGlvbl9kZXN0cm95 X2NiLAotKyAgICAgICAgICAgICAgICBjb250ZXh0KTsKLSAgICAgICAgIGdfb2JqZWN0X3VucmVm IChjb250ZXh0LT5jb25uZWN0aW9uKTsKLSAgICAgICAgIGNvbnRleHQtPmNvbm5lY3Rpb24gPSBO VUxMOwotICAgICB9Ci1AQCAtNjc0LDcgKzY4Nyw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X2Rlc3Ry b3kgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKLSAgICAgICAgIGNvbnRleHQtPmNsaWVudCA9 IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgSUJVU19PQkpFQ1RfQ0xBU1MgKGJ1c19pbnB1dF9jb250 ZXh0X3BhcmVudF9jbGFzcyktPmRlc3Ryb3kgKElCVVNfT0JKRUNUIChjb250ZXh0KSk7Ci0rICAg IElCVVNfT0JKRUNUX0NMQVNTIChidXNfaW5wdXRfY29udGV4dF9wYXJlbnRfY2xhc3MpLT4KLSsg ICAgICAgICAgICBkZXN0cm95IChJQlVTX09CSkVDVCAoY29udGV4dCkpOwotIH0KLSAKLSBzdGF0 aWMgZ2Jvb2xlYW4KLUBAIC02ODksMjUgKzcwMywzMCBAQCBidXNfaW5wdXRfY29udGV4dF9zZW5k X3NpZ25hbCAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgcmV0dXJuIFRSVUU7 Ci0gICAgIH0KLSAKLS0gICAgR0RCdXNNZXNzYWdlICptZXNzYWdlID0gZ19kYnVzX21lc3NhZ2Vf bmV3X3NpZ25hbCAoaWJ1c19zZXJ2aWNlX2dldF9vYmplY3RfcGF0aCAoKElCdXNTZXJ2aWNlICop Y29udGV4dCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludGVyZmFjZV9uYW1lLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWxfbmFtZSk7Ci0rICAgIEdEQnVzTWVzc2Fn ZSAqbWVzc2FnZSA9IGdfZGJ1c19tZXNzYWdlX25ld19zaWduYWwgKAotKyAgICAgICAgICAgIGli dXNfc2VydmljZV9nZXRfb2JqZWN0X3BhdGggKChJQnVzU2VydmljZSAqKWNvbnRleHQpLAotKyAg ICAgICAgICAgIGludGVyZmFjZV9uYW1lLAotKyAgICAgICAgICAgIHNpZ25hbF9uYW1lKTsKLSAg ICAgZ19kYnVzX21lc3NhZ2Vfc2V0X3NlbmRlciAobWVzc2FnZSwgIm9yZy5mcmVlZGVza3RvcC5J QnVzIik7Ci0tICAgIGdfZGJ1c19tZXNzYWdlX3NldF9kZXN0aW5hdGlvbiAobWVzc2FnZSwgYnVz X2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lIChjb250ZXh0LT5jb25uZWN0aW9uKSk7Ci0rICAg IGdfZGJ1c19tZXNzYWdlX3NldF9kZXN0aW5hdGlvbiAoCi0rICAgICAgICAgICAgbWVzc2FnZSwK LSsgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUgKGNvbnRleHQtPmNv bm5lY3Rpb24pKTsKLSAgICAgaWYgKHBhcmFtZXRlcnMgIT0gTlVMTCkKLSAgICAgICAgIGdfZGJ1 c19tZXNzYWdlX3NldF9ib2R5IChtZXNzYWdlLCBwYXJhbWV0ZXJzKTsKLSAKLS0gICAgZ2Jvb2xl YW4gcmV0dmFsID0gIGdfZGJ1c19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSAoYnVzX2Nvbm5lY3Rp b25fZ2V0X2RidXNfY29ubmVjdGlvbiAoY29udGV4dC0+Y29ubmVjdGlvbiksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf REJVU19TRU5EX01FU1NBR0VfRkxBR1NfTk9ORSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZXJyb3IpOwotKyAgICBnYm9vbGVh biByZXR2YWwgPSAgZ19kYnVzX2Nvbm5lY3Rpb25fc2VuZF9tZXNzYWdlICgKLSsgICAgICAgICAg ICBidXNfY29ubmVjdGlvbl9nZXRfZGJ1c19jb25uZWN0aW9uIChjb250ZXh0LT5jb25uZWN0aW9u KSwKLSsgICAgICAgICAgICBtZXNzYWdlLAotKyAgICAgICAgICAgIEdfREJVU19TRU5EX01FU1NB R0VfRkxBR1NfTk9ORSwKLSsgICAgICAgICAgICBOVUxMLCBlcnJvcik7Ci0gICAgIGdfb2JqZWN0 X3VucmVmIChtZXNzYWdlKTsKLSAgICAgcmV0dXJuIHJldHZhbDsKLSB9Ci0gCi0gLyoqCi0gICog YnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWw6Ci0tICogQHNpZ25hbF9uYW1lOiBUaGUgRC1C dXMgc2lnbmFsIG5hbWUgdG8gZW1pdCB3aGljaCBpcyBpbiB0aGUgaW50cm9zcGVjdGlvbl94bWwu Ci0rICogQHNpZ25hbF9uYW1lOiBUaGUgRC1CdXMgc2lnbmFsIG5hbWUgdG8gZW1pdCB3aGljaCBp cyBpbiB0aGUKLSsgKiBpbnRyb3NwZWN0aW9uX3htbC4KLSAgKgotICAqIEVtaXQgdGhlIEQtQnVz IHNpZ25hbC4KLSAgKi8KLUBAIC04NTAsOSArODY5LDkgQEAgX2ljX3Byb2Nlc3Nfa2V5X2V2ZW50 X3JlcGx5X2NiIChHT2JqZWN0ICAgICAgICAgICAgICAgKnNvdXJjZSwKLSAgKiBvcmcuZnJlZWRl c2t0b3AuSUJ1cy5JbnB1dENvbnRleHQgaW50ZXJmYWNlLgotICAqLwotIHN0YXRpYyB2b2lkCi0t X2ljX3Byb2Nlc3Nfa2V5X2V2ZW50ICAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAot LSAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAgICAqcGFyYW1ldGVy cywKLS0gICAgICAgICAgICAgICAgICAgICAgICBHREJ1c01ldGhvZEludm9jYXRpb24gKmludm9j YXRpb24pCi0rX2ljX3Byb2Nlc3Nfa2V5X2V2ZW50IChCdXNJbnB1dENvbnRleHQgICAgICAgKmNv bnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgKnBh cmFtZXRlcnMsCi0rICAgICAgICAgICAgICAgICAgICAgICBHREJ1c01ldGhvZEludm9jYXRpb24g Kmludm9jYXRpb24pCi0gewotICAgICBndWludCBrZXl2YWwgPSBJQlVTX0tFWV9Wb2lkU3ltYm9s OwotICAgICBndWludCBrZXljb2RlID0gMDsKLUBAIC05MjUsNyArOTQ0LDggQEAgX2ljX3Byb2Nl c3Nfa2V5X2V2ZW50ICAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotIC8qKgotICAq IF9pY19zZXRfY3Vyc29yX2xvY2F0aW9uOgotICAqCi0tICogSW1wbGVtZW50IHRoZSAiU2V0Q3Vy c29yTG9jYXRpb24iIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1 dENvbnRleHQgaW50ZXJmYWNlLgotKyAqIEltcGxlbWVudCB0aGUgIlNldEN1cnNvckxvY2F0aW9u IiBtZXRob2QgY2FsbCBvZiB0aGUKLSsgKiBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRl eHQgaW50ZXJmYWNlLgotICAqLwotIHN0YXRpYyB2b2lkCi0gX2ljX3NldF9jdXJzb3JfbG9jYXRp b24gKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLUBAIC0xMDA4LDcgKzEwMjgsOCBA QCBfaWNfcHJvY2Vzc19oYW5kX3dyaXRpbmdfZXZlbnQgKEJ1c0lucHV0Q29udGV4dCAgICAgICAq Y29udGV4dCwKLSAgICAgLyogZG8gbm90aGluZyBpZiBpdCBpcyBhIGZha2UgaW5wdXQgY29udGV4 dCAqLwotICAgICBpZiAoY29udGV4dC0+aGFzX2ZvY3VzICYmCi0gICAgICAgICBjb250ZXh0LT5l bmdpbmUgJiYgY29udGV4dC0+ZmFrZSA9PSBGQUxTRSkgewotLSAgICAgICAgYnVzX2VuZ2luZV9w cm94eV9wcm9jZXNzX2hhbmRfd3JpdGluZ19ldmVudCAoY29udGV4dC0+ZW5naW5lLCBwYXJhbWV0 ZXJzKTsKLSsgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfcHJvY2Vzc19oYW5kX3dyaXRpbmdfZXZl bnQgKGNvbnRleHQtPmVuZ2luZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMpOwotICAgICB9Ci0gICAgIGdfZGJ1c19tZXRo b2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUgKGludm9jYXRpb24sIE5VTEwpOwotIH0KLUBAIC0x MDMyLDcgKzEwNTMsOCBAQCBfaWNfY2FuY2VsX2hhbmRfd3JpdGluZyAoQnVzSW5wdXRDb250ZXh0 ICAgICAgICpjb250ZXh0LAotIC8qKgotICAqIF9pY19mb2N1c19pbjoKLSAgKgotLSAqIEltcGxl bWVudCB0aGUgIkZvY3VzSW4iIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1 cy5JbnB1dENvbnRleHQgaW50ZXJmYWNlLgotKyAqIEltcGxlbWVudCB0aGUgIkZvY3VzSW4iIG1l dGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQKLSsgKiBp bnRlcmZhY2UuCi0gICovCi0gc3RhdGljIHZvaWQKLSBfaWNfZm9jdXNfaW4gKEJ1c0lucHV0Q29u dGV4dCAgICAgICAqY29udGV4dCwKLUBAIC0xMDQ0LDE1ICsxMDY2LDE3IEBAIF9pY19mb2N1c19p biAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotICAgICAgICAgZ19kYnVzX21ldGhv ZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwgTlVMTCk7Ci0gICAgIH0KLSAg ICAgZWxzZSB7Ci0tICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX2Vycm9y IChpbnZvY2F0aW9uLCBHX0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlMRUQsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgIlRoZSBpbnB1dCBjb250ZXh0IGRvZXMgbm90IHN1cHBvcnQgZm9j dXMuIik7Ci0rICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX2Vycm9yICgK LSsgICAgICAgICAgICAgICAgaW52b2NhdGlvbiwgR19EQlVTX0VSUk9SLCBHX0RCVVNfRVJST1Jf RkFJTEVELAotKyAgICAgICAgICAgICAgICAiVGhlIGlucHV0IGNvbnRleHQgZG9lcyBub3Qgc3Vw cG9ydCBmb2N1cy4iKTsKLSAgICAgfQotIH0KLSAKLSAvKioKLSAgKiBfaWNfZm9jdXNfb3V0Ogot ICAqCi0tICogSW1wbGVtZW50IHRoZSAiRm9jdXNPdXQiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcu ZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQgaW50ZXJmYWNlLgotKyAqIEltcGxlbWVudCB0 aGUgIkZvY3VzT3V0IiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5w dXRDb250ZXh0Ci0rICogaW50ZXJmYWNlLgotICAqLwotIHN0YXRpYyB2b2lkCi0gX2ljX2ZvY3Vz X291dCAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotQEAgLTEwNjQsMTUgKzEwODgs MTcgQEAgX2ljX2ZvY3VzX291dCAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotICAg ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwg TlVMTCk7Ci0gICAgIH0KLSAgICAgZWxzZSB7Ci0tICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9j YXRpb25fcmV0dXJuX2Vycm9yIChpbnZvY2F0aW9uLCBHX0RCVVNfRVJST1IsIEdfREJVU19FUlJP Ul9GQUlMRUQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBpbnB1dCBjb250ZXh0IGRv ZXMgbm90IHN1cHBvcnQgZm9jdXMuIik7Ci0rICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRp b25fcmV0dXJuX2Vycm9yICgKLSsgICAgICAgICAgICAgICAgaW52b2NhdGlvbiwgR19EQlVTX0VS Uk9SLCBHX0RCVVNfRVJST1JfRkFJTEVELAotKyAgICAgICAgICAgICAgICAiVGhlIGlucHV0IGNv bnRleHQgZG9lcyBub3Qgc3VwcG9ydCBmb2N1cy4iKTsKLSAgICAgfQotIH0KLSAKLSAvKioKLSAg KiBfaWNfcmVzZXQ6Ci0gICoKLS0gKiBJbXBsZW1lbnQgdGhlICJSZXNldCIgbWV0aG9kIGNhbGwg b2YgdGhlIG9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4dCBpbnRlcmZhY2UuCi0rICog SW1wbGVtZW50IHRoZSAiUmVzZXQiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3Au SUJ1cy5JbnB1dENvbnRleHQKLSsgKiBpbnRlcmZhY2UuCi0gICovCi0gc3RhdGljIHZvaWQKLSBf aWNfcmVzZXQgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLUBAIC0xMDk0LDcgKzEx MjAsOCBAQCBfaWNfcmVzZXQgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLSAvKioK LSAgKiBfaWNfc2V0X2NhcGFiaWxpdGllczoKLSAgKgotLSAqIEltcGxlbWVudCB0aGUgIlNldENh cGFiaWxpdGllcyIgbWV0aG9kIGNhbGwgb2YgdGhlIG9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0 Q29udGV4dCBpbnRlcmZhY2UuCi0rICogSW1wbGVtZW50IHRoZSAiU2V0Q2FwYWJpbGl0aWVzIiBt ZXRob2QgY2FsbCBvZiB0aGUKLSsgKiBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQg aW50ZXJmYWNlLgotICAqLwotIHN0YXRpYyB2b2lkCi0gX2ljX3NldF9jYXBhYmlsaXRpZXMgKEJ1 c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLUBAIC0xMTEyLDcgKzExMzksOCBAQCBfaWNf c2V0X2NhcGFiaWxpdGllcyAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAotIC8qKgot ICAqIF9pY19wcm9wZXJ0eV9hY3RpdmF0ZToKLSAgKgotLSAqIEltcGxlbWVudCB0aGUgIlByb3Bl cnR5QWN0aXZhdGUiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1 dENvbnRleHQgaW50ZXJmYWNlLgotKyAqIEltcGxlbWVudCB0aGUgIlByb3BlcnR5QWN0aXZhdGUi IG1ldGhvZCBjYWxsIG9mIHRoZQotKyAqIG9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4 dCBpbnRlcmZhY2UuCi0gICovCi0gc3RhdGljIHZvaWQKLSBfaWNfcHJvcGVydHlfYWN0aXZhdGUg KEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLUBAIC0xMTI0LDcgKzExNTIsOSBAQCBf aWNfcHJvcGVydHlfYWN0aXZhdGUgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLSAg ICAgZ192YXJpYW50X2dldCAocGFyYW1ldGVycywgIigmc3UpIiwgJnByb3BfbmFtZSwgJnByb3Bf c3RhdGUpOwotIAotICAgICBpZiAoY29udGV4dC0+ZW5naW5lKSB7Ci0tICAgICAgICBidXNfZW5n aW5lX3Byb3h5X3Byb3BlcnR5X2FjdGl2YXRlIChjb250ZXh0LT5lbmdpbmUsIHByb3BfbmFtZSwg cHJvcF9zdGF0ZSk7Ci0rICAgICAgICBidXNfZW5naW5lX3Byb3h5X3Byb3BlcnR5X2FjdGl2YXRl IChjb250ZXh0LT5lbmdpbmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9wX25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9wX3N0YXRlKTsKLSAgICAgfQotIAotICNpZmRlZiBPU19DSFJPTUVPUwotQEAg LTExMzIsOSArMTE2MiwxMiBAQCBfaWNfcHJvcGVydHlfYWN0aXZhdGUgKEJ1c0lucHV0Q29udGV4 dCAgICAgICAqY29udGV4dCwKLSAgICAgICogc28gcGFzcyBQcm9wZXJ0eUFjdGl2YXRlIHNpZ25h bCB0byB0aGUgZm9jdXNlZCBjb250ZXh0LgotICAgICAgKi8KLSAgICAgZWxzZSBpZiAoY29udGV4 dC0+ZmFrZSkgewotLSAgICAgICAgQnVzSW5wdXRDb250ZXh0ICpmb2N1c2VkX2NvbnRleHQgPSBi dXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQgKEJVU19ERUZBVUxUX0lCVVMp OwotKyAgICAgICAgQnVzSW5wdXRDb250ZXh0ICpmb2N1c2VkX2NvbnRleHQgPQotKyAgICAgICAg ICAgICAgICBidXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQgKEJVU19ERUZB VUxUX0lCVVMpOwotICAgICAgICAgaWYgKGZvY3VzZWRfY29udGV4dCAmJiBmb2N1c2VkX2NvbnRl eHQtPmVuZ2luZSkKLS0gICAgICAgICAgICBidXNfZW5naW5lX3Byb3h5X3Byb3BlcnR5X2FjdGl2 YXRlIChmb2N1c2VkX2NvbnRleHQtPmVuZ2luZSwgcHJvcF9uYW1lLCBwcm9wX3N0YXRlKTsKLSsg ICAgICAgICAgICBidXNfZW5naW5lX3Byb3h5X3Byb3BlcnR5X2FjdGl2YXRlIChmb2N1c2VkX2Nv bnRleHQtPmVuZ2luZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9wX25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJvcF9zdGF0ZSk7Ci0gICAgIH0KLSAjZW5kaWYKLSAKLUBAIC0xMTY0LDcg KzExOTcsOCBAQCBfaWNfc2V0X2VuZ2luZV9kb25lIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNv bnRleHQsCi0gLyoqCi0gICogX2ljX3NldF9lbmdpbmU6Ci0gICoKLS0gKiBJbXBsZW1lbnQgdGhl ICJTZXRFbmdpbmUiIG1ldGhvZCBjYWxsIG9mIHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1 dENvbnRleHQgaW50ZXJmYWNlLgotKyAqIEltcGxlbWVudCB0aGUgIlNldEVuZ2luZSIgbWV0aG9k IGNhbGwgb2YgdGhlCi0rICogb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IGludGVy ZmFjZS4KLSAgKi8KLSBzdGF0aWMgdm9pZAotIF9pY19zZXRfZW5naW5lIChCdXNJbnB1dENvbnRl eHQgICAgICAgKmNvbnRleHQsCi1AQCAtMTIwNSw3ICsxMjM5LDggQEAgX2ljX3NldF9lbmdpbmUg KEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLSAvKioKLSAgKiBfaWNfZ2V0X2VuZ2lu ZToKLSAgKgotLSAqIEltcGxlbWVudCB0aGUgIkdldEVuZ2luZSIgbWV0aG9kIGNhbGwgb2YgdGhl IG9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4dCBpbnRlcmZhY2UuCi0rICogSW1wbGVt ZW50IHRoZSAiR2V0RW5naW5lIiBtZXRob2QgY2FsbCBvZgotKyAqIHRoZSBvcmcuZnJlZWRlc2t0 b3AuSUJ1cy5JbnB1dENvbnRleHQgaW50ZXJmYWNlLgotICAqLwotIHN0YXRpYyB2b2lkCi0gX2lj X2dldF9lbmdpbmUgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLUBAIC0xMjE4LDcg KzEyNTMsOSBAQCBfaWNfZ2V0X2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0 LAotIAotIAotICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlIChpbnZv Y2F0aW9uLAotLSAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIodikiLCBpYnVzX3NlcmlhbGl6 YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopZGVzYykpKTsKLSsgICAgICAgICAg ICBnX3ZhcmlhbnRfbmV3ICgiKHYpIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVz X3NlcmlhbGl6YWJsZV9zZXJpYWxpemUgKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKElCdXNTZXJpYWxpemFibGUgKilkZXNjKSkpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAot QEAgLTEyNzAsNyArMTMwNyw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2VfYXV0aG9yaXpl ZF9tZXRob2QgKElCdXNTZXJ2aWNlICAgICAqc2VydmljZSwKLSAvKioKLSAgKiBidXNfaW5wdXRf Y29udGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxsOgotICAqCi0tICogSGFuZGxlIGEgRC1CdXMgbWV0 aG9kIGNhbGwgd2hvc2UgZGVzdGluYXRpb24gYW5kIGludGVyZmFjZSBuYW1lIGFyZSBib3RoICJv cmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQiCi0rICogSGFuZGxlIGEgRC1CdXMgbWV0 aG9kIGNhbGwgd2hvc2UgZGVzdGluYXRpb24gYW5kIGludGVyZmFjZSBuYW1lIGFyZSBib3RoCi0r ICogIm9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4dCIKLSAgKi8KLSBzdGF0aWMgdm9p ZAotIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2VfbWV0aG9kX2NhbGwgKElCdXNTZXJ2aWNlICAg ICAgICAgICAgKnNlcnZpY2UsCi1AQCAtMTI4MywyMSArMTMyMSwyMyBAQCBidXNfaW5wdXRfY29u dGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxsIChJQnVzU2VydmljZSAgICAgICAgICAgICpzZXJ2aWNl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzTWV0aG9kSW52 b2NhdGlvbiAgKmludm9jYXRpb24pCi0gewotICAgICBpZiAoZ19zdHJjbXAwIChpbnRlcmZhY2Vf bmFtZSwgSUJVU19JTlRFUkZBQ0VfSU5QVVRfQ09OVEVYVCkgIT0gMCkgewotLSAgICAgICAgSUJV U19TRVJWSUNFX0NMQVNTIChidXNfaW5wdXRfY29udGV4dF9wYXJlbnRfY2xhc3MpLT5zZXJ2aWNl X21ldGhvZF9jYWxsICgKLS0gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAgICAg c2VuZGVyLAotLSAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9wYXRoLAotLSAgICAgICAg ICAgICAgICAgICAgICAgIGludGVyZmFjZV9uYW1lLAotLSAgICAgICAgICAgICAgICAgICAgICAg IG1ldGhvZF9uYW1lLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgaW52b2NhdGlvbik7Ci0rICAgICAgICBJQlVTX1NFUlZJQ0Vf Q0xBU1MgKGJ1c19pbnB1dF9jb250ZXh0X3BhcmVudF9jbGFzcyktPgotKyAgICAgICAgICAgICAg ICBzZXJ2aWNlX21ldGhvZF9jYWxsIChzZXJ2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25uZWN0aW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZW5kZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9i amVjdF9wYXRoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZh Y2VfbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kX25h bWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb24pOwotICAgICAg ICAgcmV0dXJuOwotICAgICB9Ci0gCi0gICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewotICAgICAg ICAgY29uc3QgZ2NoYXIgKm1ldGhvZF9uYW1lOwotLSAgICAgICAgdm9pZCAoKiBtZXRob2RfY2Fs bGJhY2spIChCdXNJbnB1dENvbnRleHQgKiwgR1ZhcmlhbnQgKiwgR0RCdXNNZXRob2RJbnZvY2F0 aW9uICopOwotKyAgICAgICAgdm9pZCAoKiBtZXRob2RfY2FsbGJhY2spIChCdXNJbnB1dENvbnRl eHQgKiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgKiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RCdXNNZXRob2RJbnZvY2F0aW9uICop OwotICAgICB9IG1ldGhvZHMgW10gPSAgewotICAgICAgICAgeyAiUHJvY2Vzc0tleUV2ZW50Iiwg ICBfaWNfcHJvY2Vzc19rZXlfZXZlbnQgfSwKLSAgICAgICAgIHsgIlNldEN1cnNvckxvY2F0aW9u IiwgX2ljX3NldF9jdXJzb3JfbG9jYXRpb24gfSwKLUBAIC0xMzIyLDcgKzEzNjIsOSBAQCBidXNf aW5wdXRfY29udGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxsIChJQnVzU2VydmljZSAgICAgICAgICAg ICpzZXJ2aWNlLAotIAotICAgICBmb3IgKGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTIChtZXRob2Rz KTsgaSsrKSB7Ci0gICAgICAgICBpZiAoZ19zdHJjbXAwIChtZXRob2RfbmFtZSwgbWV0aG9kc1tp XS5tZXRob2RfbmFtZSkgPT0gMCkgewotLSAgICAgICAgICAgIG1ldGhvZHNbaV0ubWV0aG9kX2Nh bGxiYWNrICgoQnVzSW5wdXRDb250ZXh0ICopc2VydmljZSwgcGFyYW1ldGVycywgaW52b2NhdGlv bik7Ci0rICAgICAgICAgICAgbWV0aG9kc1tpXS5tZXRob2RfY2FsbGJhY2sgKChCdXNJbnB1dENv bnRleHQgKilzZXJ2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYXJhbWV0ZXJzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnZvY2F0aW9uKTsKLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci0gICAgIH0KLUBA IC0xNDY1LDE1ICsxNTA3LDIzIEBAIGJ1c19pbnB1dF9jb250ZXh0X2ZvY3VzX2luIChCdXNJbnB1 dENvbnRleHQgKmNvbnRleHQpCi0gICAgICAgICAgICAgICAgIGlidXNfc2VydmljZV9nZXRfb2Jq ZWN0X3BhdGggKChJQnVzU2VydmljZSAqKWNvbnRleHQpOwotICAgICAgICAgYnVzX2VuZ2luZV9w cm94eV9mb2N1c19pbiAoY29udGV4dC0+ZW5naW5lLCBwYXRoLCBjb250ZXh0LT5jbGllbnQpOwot ICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9lbmFibGUgKGNvbnRleHQtPmVuZ2luZSk7Ci0tICAg ICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jYXBhYmlsaXRpZXMgKGNvbnRleHQtPmVuZ2luZSwg Y29udGV4dC0+Y2FwYWJpbGl0aWVzKTsKLS0gICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2N1 cnNvcl9sb2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT54LCBjb250ZXh0LT55LCBj b250ZXh0LT53LCBjb250ZXh0LT5oKTsKLS0gICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2Nv bnRlbnRfdHlwZSAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT5wdXJwb3NlLCBjb250ZXh0LT5o aW50cyk7Ci0rICAgICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jYXBhYmlsaXRpZXMgKGNvbnRl eHQtPmVuZ2luZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29udGV4dC0+Y2FwYWJpbGl0aWVzKTsKLSsgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2N1 cnNvcl9sb2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT54LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT55LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT53LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5oKTsKLSsgICAgICAgIGJ1 c19lbmdpbmVfcHJveHlfc2V0X2NvbnRlbnRfdHlwZSAoY29udGV4dC0+ZW5naW5lLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5wdXJwb3NlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5oaW50 cyk7Ci0gICAgIH0KLSAKLSAgICAgaWYgKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQ X0ZPQ1VTKSB7Ci0gICAgICAgICBnX3NpZ25hbF9lbWl0IChjb250ZXh0LCBjb250ZXh0X3NpZ25h bHNbRk9DVVNfSU5dLCAwKTsKLSAgICAgICAgIGlmIChjb250ZXh0LT5lbmdpbmUpIHsKLS0gICAg ICAgICAgICAvKiBpZiBuZWNlc3NhcnksIGVtaXQgZ2xpYiBzaWduYWxzIHRvIHRoZSBjb250ZXh0 IG9iamVjdCB0byB1cGRhdGUgcGFuZWwgc3RhdHVzLiBzZWUgdGhlIGNvbW1lbnQgZm9yIFBSRUVE SVRfQ09ORElUSU9OCi0rICAgICAgICAgICAgLyogaWYgbmVjZXNzYXJ5LCBlbWl0IGdsaWIgc2ln bmFscyB0byB0aGUgY29udGV4dCBvYmplY3QgdG8gdXBkYXRlCi0rICAgICAgICAgICAgICogcGFu ZWwgc3RhdHVzLiBzZWUgdGhlIGNvbW1lbnQgZm9yIFBSRUVESVRfQ09ORElUSU9OCi0gICAgICAg ICAgICAgICogZm9yIGRldGFpbHMuICovCi0gICAgICAgICAgICAgaWYgKGNvbnRleHQtPnByZWVk aXRfdmlzaWJsZSAmJiAhUFJFRURJVF9DT05ESVRJT04pIHsKLSAgICAgICAgICAgICAgICAgZ19z aWduYWxfZW1pdCAoY29udGV4dCwKLUBAIC0xNDgzLDE0ICsxNTMzLDE2IEBAIGJ1c19pbnB1dF9j b250ZXh0X2ZvY3VzX2luIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPnByZWVkaXRfY3Vyc29yX3BvcywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+cHJlZWRpdF92aXNpYmxlKTsKLSAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgaWYgKGNvbnRleHQtPmF1eGlsaWFyeV92aXNpYmxlICYm IChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9BVVhJTElBUllfVEVYVCkgPT0gMCkg ewotKyAgICAgICAgICAgIGlmIChjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSAmJgotKyAgICAg ICAgICAgICAgICAoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJQVJZX1RF WFQpID09IDApIHsKLSAgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9zaWduYWxzW1VQREFURV9BVVhJ TElBUllfVEVYVF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmF1eGlsaWFyeV90ZXh0LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSk7Ci0g ICAgICAgICAgICAgfQotLSAgICAgICAgICAgIGlmIChjb250ZXh0LT5sb29rdXBfdGFibGVfdmlz aWJsZSAmJiAoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKSA9 PSAwKSB7Ci0rICAgICAgICAgICAgaWYgKGNvbnRleHQtPmxvb2t1cF90YWJsZV92aXNpYmxlICYm Ci0rICAgICAgICAgICAgICAgIChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9MT09L VVBfVEFCTEUpID09IDApIHsKLSAgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4 dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9zaWduYWxzW1VQREFU RV9MT09LVVBfVEFCTEVdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotQEAg LTE2MzAsMTQgKzE2ODIsMTcgQEAgYnVzX2lucHV0X2NvbnRleHRfcHJvcGVydHlfYWN0aXZhdGUg KEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9D T05URVhUIChjb250ZXh0KSk7Ci0gCi0gICAgIGlmIChjb250ZXh0LT5lbmdpbmUpIHsKLS0gICAg ICAgIGJ1c19lbmdpbmVfcHJveHlfcHJvcGVydHlfYWN0aXZhdGUgKGNvbnRleHQtPmVuZ2luZSwg cHJvcF9uYW1lLCBwcm9wX3N0YXRlKTsKLSsgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfcHJvcGVy dHlfYWN0aXZhdGUgKGNvbnRleHQtPmVuZ2luZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByb3BfbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByb3Bfc3RhdGUpOwotICAgICB9Ci0gfQotIAotIC8qKgotICAq IGJ1c19pbnB1dF9jb250ZXh0X3Nob3dfcHJlZWRpdF90ZXh0OgotICAqCi0tICogU2hvdyBhIHBy ZWVkaXQgdGV4dC4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBjbGllbnQg b3Igc2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRp ZXMgb2YgdGhlIGNsaWVudC4KLSsgKiBTaG93IGEgcHJlZWRpdCB0ZXh0LiBTZW5kIEQtQnVzIHNp Z25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kCi0rICogZ2xpYiBzaWduYWwg dG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCi0g ICovCi0gc3RhdGljIHZvaWQKLSBidXNfaW5wdXRfY29udGV4dF9zaG93X3ByZWVkaXRfdGV4dCAo QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotQEAgLTE2NzgsNyArMTczMyw4IEBAIGJ1c19pbnB1 dF9jb250ZXh0X3Nob3dfcHJlZWRpdF90ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0g LyoqCi0gICogYnVzX2lucHV0X2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHQ6Ci0gICoKLS0gKiBI aWRlIGEgcHJlZWRpdCB0ZXh0LiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9m IGNsaWVudCBvciBzZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNh cGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgotKyAqIEhpZGUgYSBwcmVlZGl0IHRleHQuIFNlbmQg RC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQKLSsgKiBnbGli IHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNs aWVudC4KLSAgKi8KLSBzdGF0aWMgdm9pZAotIGJ1c19pbnB1dF9jb250ZXh0X2hpZGVfcHJlZWRp dF90ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi1AQCAtMTcxNyw3ICsxNzczLDggQEAg YnVzX2lucHV0X2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29u dGV4dCwKLSAvKioKLSAgKiBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfYXV4aWxpYXJ5X3RleHQ6 Ci0gICoKLS0gKiBVcGRhdGUgYW4gYXV4IHRleHQuIFNlbmQgRC1CdXMgc2lnbmFsIHRvIHVwZGF0 ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQgZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBl bmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCi0rICogVXBkYXRlIGFuIGF1eCB0 ZXh0LiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5k Ci0rICogZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVz IG9mIHRoZSBjbGllbnQuCi0gICovCi0gc3RhdGljIHZvaWQKLSBidXNfaW5wdXRfY29udGV4dF91 cGRhdGVfYXV4aWxpYXJ5X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLUBAIC0xNzMw LDExICsxNzg3LDEzIEBAIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9hdXhpbGlhcnlfdGV4dCAo QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGNvbnRl eHQtPmF1eGlsaWFyeV90ZXh0KTsKLSAgICAgfQotIAotLSAgICBjb250ZXh0LT5hdXhpbGlhcnlf dGV4dCA9IChJQnVzVGV4dCAqKSBnX29iamVjdF9yZWZfc2luayAodGV4dCA/IHRleHQgOiB0ZXh0 X2VtcHR5KTsKLSsgICAgY29udGV4dC0+YXV4aWxpYXJ5X3RleHQgPSAoSUJ1c1RleHQgKilnX29i amVjdF9yZWZfc2luayAoCi0rICAgICAgICAgICAgdGV4dCA/IHRleHQgOiB0ZXh0X2VtcHR5KTsK LSAgICAgY29udGV4dC0+YXV4aWxpYXJ5X3Zpc2libGUgPSB2aXNpYmxlOwotIAotICAgICBpZiAo Y29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJQVJZX1RFWFQpIHsKLS0gICAg ICAgIEdWYXJpYW50ICp2YXJpYW50ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1 c1NlcmlhbGl6YWJsZSAqKXRleHQpOwotKyAgICAgICAgR1ZhcmlhbnQgKnZhcmlhbnQgPQotKyAg ICAgICAgICAgICAgICBpYnVzX3NlcmlhbGl6YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXph YmxlICopdGV4dCk7Ci0gICAgICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29u dGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVXBkYXRlQXV4 aWxpYXJ5VGV4dCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192 YXJpYW50X25ldyAoIih2YikiLCB2YXJpYW50LCB2aXNpYmxlKSwKLUBAIC0xNzUyLDcgKzE4MTEs OCBAQCBidXNfaW5wdXRfY29udGV4dF91cGRhdGVfYXV4aWxpYXJ5X3RleHQgKEJ1c0lucHV0Q29u dGV4dCAqY29udGV4dCwKLSAvKioKLSAgKiBidXNfaW5wdXRfY29udGV4dF9zaG93X2F1eGlsaWFy eV90ZXh0OgotICAqCi0tICogU2hvdyBhbiBhdXggdGV4dC4gU2VuZCBELUJ1cyBzaWduYWwgdG8g dXBkYXRlIHN0YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWws IGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4KLSsgKiBTaG93IGFuIGF1 eCB0ZXh0LiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBz ZW5kIGdsaWIKLSsgKiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0 aWVzIG9mIHRoZSBjbGllbnQuCi0gICovCi0gc3RhdGljIHZvaWQKLSBidXNfaW5wdXRfY29udGV4 dF9zaG93X2F1eGlsaWFyeV90ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi1AQCAtMTc2 NSw3ICsxODI1LDggQEAgYnVzX2lucHV0X2NvbnRleHRfc2hvd19hdXhpbGlhcnlfdGV4dCAoQnVz SW5wdXRDb250ZXh0ICpjb250ZXh0KQotIAotICAgICBjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJs ZSA9IFRSVUU7Ci0gCi0tICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBf QVVYSUxJQVJZX1RFWFQpID09IElCVVNfQ0FQX0FVWElMSUFSWV9URVhUKSB7Ci0rICAgIGlmICgo Y29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfQVVYSUxJQVJZX1RFWFQpCi0rICAgICAg ICA9PSBJQlVTX0NBUF9BVVhJTElBUllfVEVYVCkgewotICAgICAgICAgYnVzX2lucHV0X2NvbnRl eHRfZW1pdF9zaWduYWwgKGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlNob3dBdXhpbGlhcnlUZXh0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAotQEAgLTE3ODEsNyArMTg0Miw4IEBAIGJ1c19pbnB1dF9jb250 ZXh0X3Nob3dfYXV4aWxpYXJ5X3RleHQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKLSAvKioK LSAgKiBidXNfaW5wdXRfY29udGV4dF9oaWRlX2F1eGlsaWFyeV90ZXh0OgotICAqCi0tICogSGlk ZSBhbiBhdXggdGV4dC4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBjbGll bnQgb3Igc2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmls aXRpZXMgb2YgdGhlIGNsaWVudC4KLSsgKiBIaWRlIGFuIGF1eCB0ZXh0LiBTZW5kIEQtQnVzIHNp Z25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIKLSsgKiBzaWduYWwg dG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCi0g ICovCi0gc3RhdGljIHZvaWQKLSBidXNfaW5wdXRfY29udGV4dF9oaWRlX2F1eGlsaWFyeV90ZXh0 IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi1AQCAtMTc5NCw3ICsxODU2LDggQEAgYnVzX2lu cHV0X2NvbnRleHRfaGlkZV9hdXhpbGlhcnlfdGV4dCAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0 KQotIAotICAgICBjb250ZXh0LT5hdXhpbGlhcnlfdmlzaWJsZSA9IEZBTFNFOwotIAotLSAgICBp ZiAoKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX0FVWElMSUFSWV9URVhUKSA9PSBJ QlVTX0NBUF9BVVhJTElBUllfVEVYVCkgewotKyAgICBpZiAoKGNvbnRleHQtPmNhcGFiaWxpdGll cyAmIElCVVNfQ0FQX0FVWElMSUFSWV9URVhUKQotKyAgICAgICAgPT0gSUJVU19DQVBfQVVYSUxJ QVJZX1RFWFQpIHsKLSAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250 ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaWRlQXV4aWxp YXJ5VGV4dCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK LUBAIC0xODI5LDExICsxODkyLDEzIEBAIGJ1c19pbnB1dF9jb250ZXh0X3VwZGF0ZV9sb29rdXBf dGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgIGdfb2JqZWN0X3VucmVm IChjb250ZXh0LT5sb29rdXBfdGFibGUpOwotICAgICB9Ci0gCi0tICAgIGNvbnRleHQtPmxvb2t1 cF90YWJsZSA9IChJQnVzTG9va3VwVGFibGUgKikgZ19vYmplY3RfcmVmX3NpbmsgKHRhYmxlID8g dGFibGUgOiBsb29rdXBfdGFibGVfZW1wdHkpOwotKyAgICBjb250ZXh0LT5sb29rdXBfdGFibGUg PSAoSUJ1c0xvb2t1cFRhYmxlICopZ19vYmplY3RfcmVmX3NpbmsgKAotKyAgICAgICAgICAgIHRh YmxlID8gdGFibGUgOiBsb29rdXBfdGFibGVfZW1wdHkpOwotICAgICBjb250ZXh0LT5sb29rdXBf dGFibGVfdmlzaWJsZSA9IHZpc2libGU7Ci0gCi0gICAgIGlmIChjb250ZXh0LT5jYXBhYmlsaXRp ZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKLS0gICAgICAgIEdWYXJpYW50ICp2YXJpYW50 ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXRhYmxl KTsKLSsgICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0KLSsgICAgICAgICAgICAgICAgaWJ1c19z ZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXRhYmxlKTsKLSAgICAg ICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVcGRhdGVMb29rdXBUYWJsZSIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih2YikiLCB2 YXJpYW50LCB2aXNpYmxlKSwKLUBAIC0xODUxLDcgKzE5MTYsOCBAQCBidXNfaW5wdXRfY29udGV4 dF91cGRhdGVfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gLyoqCi0g ICogYnVzX2lucHV0X2NvbnRleHRfc2hvd19sb29rdXBfdGFibGU6Ci0gICoKLS0gKiBTaG93IHRo ZSBsb29rdXAgdGFibGUuIFNlbmQgRC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xp ZW50IG9yIHNlbmQgZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJp bGl0aWVzIG9mIHRoZSBjbGllbnQuCi0rICogU2hvdyB0aGUgbG9va3VwIHRhYmxlLiBTZW5kIEQt QnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kCi0rICogZ2xpYiBz aWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGll bnQuCi0gICovCi0gc3RhdGljIHZvaWQKLSBidXNfaW5wdXRfY29udGV4dF9zaG93X2xvb2t1cF90 YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotQEAgLTE4NjQsNyArMTkzMCw4IEBAIGJ1 c19pbnB1dF9jb250ZXh0X3Nob3dfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRl eHQpCi0gCi0gICAgIGNvbnRleHQtPmxvb2t1cF90YWJsZV92aXNpYmxlID0gVFJVRTsKLSAKLS0g ICAgaWYgKChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpID09 IElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkgewotKyAgICBpZiAoKGNvbnRleHQtPmNhcGFiaWxpdGll cyAmIElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkKLSsgICAgICAgID09IElCVVNfQ0FQX0xPT0tVUF9U QUJMRSkgewotICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWwgKGNvbnRleHQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNob3dMb29rdXBUYWJs ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLUBAIC0x ODgwLDcgKzE5NDcsOCBAQCBidXNfaW5wdXRfY29udGV4dF9zaG93X2xvb2t1cF90YWJsZSAoQnVz SW5wdXRDb250ZXh0ICpjb250ZXh0KQotIC8qKgotICAqIGJ1c19pbnB1dF9jb250ZXh0X2hpZGVf bG9va3VwX3RhYmxlOgotICAqCi0tICogSGlkZSB0aGUgbG9va3VwIHRhYmxlLiBTZW5kIEQtQnVz IHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIgc2lnbmFsIHRv IHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgotKyAq IEhpZGUgdGhlIGxvb2t1cCB0YWJsZS4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1 cyBvZiBjbGllbnQgb3Igc2VuZAotKyAqIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5k aW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgotICAqLwotIHN0YXRpYyB2b2lkCi0g YnVzX2lucHV0X2NvbnRleHRfaGlkZV9sb29rdXBfdGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29u dGV4dCkKLUBAIC0xODkzLDcgKzE5NjEsOCBAQCBidXNfaW5wdXRfY29udGV4dF9oaWRlX2xvb2t1 cF90YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotIAotICAgICBjb250ZXh0LT5sb29r dXBfdGFibGVfdmlzaWJsZSA9IEZBTFNFOwotIAotLSAgICBpZiAoKGNvbnRleHQtPmNhcGFiaWxp dGllcyAmIElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkgPT0gSUJVU19DQVBfTE9PS1VQX1RBQkxFKSB7 Ci0rICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxF KQotKyAgICAgICAgPT0gSUJVU19DQVBfTE9PS1VQX1RBQkxFKSB7Ci0gICAgICAgICBidXNfaW5w dXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiSGlkZUxvb2t1cFRhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAotQEAgLTE5MDksNyArMTk3OCw4IEBAIGJ1c19pbnB1 dF9jb250ZXh0X2hpZGVfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0g LyoqCi0gICogYnVzX2lucHV0X2NvbnRleHRfcGFnZV91cF9sb29rdXBfdGFibGU6Ci0gICoKLS0g KiBDaGFuZ2UgY3Vyc29yIHBvc2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3Rh dHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5n IG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgotKyAqIENoYW5nZSBjdXJzb3IgcG9zaXRp b24uIFNlbmQgRC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQK LSsgKiBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMg b2YgdGhlIGNsaWVudC4KLSAgKi8KLSBzdGF0aWMgdm9pZAotIGJ1c19pbnB1dF9jb250ZXh0X3Bh Z2VfdXBfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi1AQCAtMTkyMCw3 ICsxOTkwLDggQEAgYnVzX2lucHV0X2NvbnRleHRfcGFnZV91cF9sb29rdXBfdGFibGUgKEJ1c0lu cHV0Q29udGV4dCAqY29udGV4dCkKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotLSAgICBp ZiAoKGNvbnRleHQtPmNhcGFiaWxpdGllcyAmIElCVVNfQ0FQX0xPT0tVUF9UQUJMRSkgPT0gSUJV U19DQVBfTE9PS1VQX1RBQkxFKSB7Ci0rICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYg SUJVU19DQVBfTE9PS1VQX1RBQkxFKQotKyAgICAgICAgPT0gSUJVU19DQVBfTE9PS1VQX1RBQkxF KSB7Ci0gICAgICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGFnZVVwTG9va3VwVGFibGUi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi1AQCAtMTkz Niw3ICsyMDA3LDggQEAgYnVzX2lucHV0X2NvbnRleHRfcGFnZV91cF9sb29rdXBfdGFibGUgKEJ1 c0lucHV0Q29udGV4dCAqY29udGV4dCkKLSAvKioKLSAgKiBidXNfaW5wdXRfY29udGV4dF9wYWdl X2Rvd25fbG9va3VwX3RhYmxlOgotICAqCi0tICogQ2hhbmdlIGN1cnNvciBwb3NpdGlvbi4gU2Vu ZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliIHNp Z25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVu dC4KLSsgKiBDaGFuZ2UgY3Vyc29yIHBvc2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRh dGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kCi0rICogZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVs LCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQuCi0gICovCi0gc3RhdGlj IHZvaWQKLSBidXNfaW5wdXRfY29udGV4dF9wYWdlX2Rvd25fbG9va3VwX3RhYmxlIChCdXNJbnB1 dENvbnRleHQgKmNvbnRleHQpCi1AQCAtMTk0Nyw3ICsyMDE5LDggQEAgYnVzX2lucHV0X2NvbnRl eHRfcGFnZV9kb3duX2xvb2t1cF90YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotICAg ICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVz ICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKSA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKLSsg ICAgaWYgKChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpCi0r ICAgICAgICA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKLSAgICAgICAgIGJ1c19pbnB1dF9j b250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJQYWdlRG93bkxvb2t1cFRhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAotQEAgLTE5NjMsNyArMjAzNiw4IEBAIGJ1c19pbnB1 dF9jb250ZXh0X3BhZ2VfZG93bl9sb29rdXBfdGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4 dCkKLSAvKioKLSAgKiBidXNfaW5wdXRfY29udGV4dF9jdXJzb3JfdXBfbG9va3VwX3RhYmxlOgot ICAqCi0tICogQ2hhbmdlIGN1cnNvciBwb3NpdGlvbi4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBk YXRlIHN0YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliIHNpZ25hbCB0byB0aGUgcGFuZWwsIGRl cGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVudC4KLSsgKiBDaGFuZ2UgY3Vyc29y IHBvc2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBv ciBzZW5kCi0rICogZ2xpYiBzaWduYWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJp bGl0aWVzIG9mIHRoZSBjbGllbnQuCi0gICovCi0gc3RhdGljIHZvaWQKLSBidXNfaW5wdXRfY29u dGV4dF9jdXJzb3JfdXBfbG9va3VwX3RhYmxlIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi1A QCAtMTk3NCw3ICsyMDQ4LDggQEAgYnVzX2lucHV0X2NvbnRleHRfY3Vyc29yX3VwX2xvb2t1cF90 YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotICAgICAgICAgcmV0dXJuOwotICAgICB9 Ci0gCi0tICAgIGlmICgoY29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RB QkxFKSA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsKLSsgICAgaWYgKChjb250ZXh0LT5jYXBh YmlsaXRpZXMgJiBJQlVTX0NBUF9MT09LVVBfVEFCTEUpCi0rICAgICAgICA9PSBJQlVTX0NBUF9M T09LVVBfVEFCTEUpIHsKLSAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChj b250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDdXJzb3JV cExvb2t1cFRhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLAotQEAgLTE5OTAsNyArMjA2NSw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X2N1cnNvcl91cF9s b29rdXBfdGFibGUgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKLSAvKioKLSAgKiBidXNfaW5w dXRfY29udGV4dF9jdXJzb3JfZG93bl9sb29rdXBfdGFibGU6Ci0gICoKLS0gKiBDaGFuZ2UgY3Vy c29yIHBvc2l0aW9uLiBTZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVu dCBvciBzZW5kIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxp dGllcyBvZiB0aGUgY2xpZW50LgotKyAqIENoYW5nZSBjdXJzb3IgcG9zaXRpb24uIFNlbmQgRC1C dXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQKLSsgKiBnbGliIHNp Z25hbCB0byB0aGUgcGFuZWwsIGRlcGVuZGluZyBvbiBjYXBhYmlsaXRpZXMgb2YgdGhlIGNsaWVu dC4KLSAgKi8KLSBzdGF0aWMgdm9pZAotIGJ1c19pbnB1dF9jb250ZXh0X2N1cnNvcl9kb3duX2xv b2t1cF90YWJsZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotQEAgLTIwMDEsNyArMjA3Nyw4 IEBAIGJ1c19pbnB1dF9jb250ZXh0X2N1cnNvcl9kb3duX2xvb2t1cF90YWJsZSAoQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0KQotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICAgIGlmICgo Y29udGV4dC0+Y2FwYWJpbGl0aWVzICYgSUJVU19DQVBfTE9PS1VQX1RBQkxFKSA9PSBJQlVTX0NB UF9MT09LVVBfVEFCTEUpIHsKLSsgICAgaWYgKChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJQlVT X0NBUF9MT09LVVBfVEFCTEUpCi0rICAgICAgICA9PSBJQlVTX0NBUF9MT09LVVBfVEFCTEUpIHsK LSAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDdXJzb3JEb3duTG9va3VwVGFibGUi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi1AQCAtMjAx Nyw3ICsyMDk0LDggQEAgYnVzX2lucHV0X2NvbnRleHRfY3Vyc29yX2Rvd25fbG9va3VwX3RhYmxl IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0gLyoqCi0gICogYnVzX2lucHV0X2NvbnRleHRf cmVnaXN0ZXJfcHJvcGVydGllczoKLSAgKgotLSAqIFJlZ2lzdGVyIHByb3BlcnRpZXMuIFNlbmQg RC1CdXMgc2lnbmFsIHRvIHVwZGF0ZSBzdGF0dXMgb2YgY2xpZW50IG9yIHNlbmQgZ2xpYiBzaWdu YWwgdG8gdGhlIHBhbmVsLCBkZXBlbmRpbmcgb24gY2FwYWJpbGl0aWVzIG9mIHRoZSBjbGllbnQu Ci0rICogUmVnaXN0ZXIgcHJvcGVydGllcy4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0 YXR1cyBvZiBjbGllbnQgb3Igc2VuZAotKyAqIGdsaWIgc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVw ZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgotICAqLwotIHN0YXRpYyB2b2lk Ci0gYnVzX2lucHV0X2NvbnRleHRfcmVnaXN0ZXJfcHJvcGVydGllcyAoQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0LAotQEAgLTIwMjcsNyArMjEwNSw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X3JlZ2lz dGVyX3Byb3BlcnRpZXMgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAgZ19hc3NlcnQg KElCVVNfSVNfUFJPUF9MSVNUIChwcm9wcykpOwotIAotICAgICBpZiAoY29udGV4dC0+Y2FwYWJp bGl0aWVzICYgSUJVU19DQVBfUFJPUEVSVFkpIHsKLS0gICAgICAgIEdWYXJpYW50ICp2YXJpYW50 ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXByb3Bz KTsKLSsgICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0KLSsgICAgICAgICAgICAgICAgaWJ1c19z ZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXByb3BzKTsKLSAgICAg ICAgIGJ1c19pbnB1dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWdpc3RlclByb3BlcnRpZXMiLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIodikiLCB2 YXJpYW50KSwKLUBAIC0yMDQ0LDcgKzIxMjMsOCBAQCBidXNfaW5wdXRfY29udGV4dF9yZWdpc3Rl cl9wcm9wZXJ0aWVzIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gLyoqCi0gICogYnVzX2lu cHV0X2NvbnRleHRfdXBkYXRlX3Byb3BlcnR5OgotICAqCi0tICogVXBkYXRlIHByb3BlcnR5LiBT ZW5kIEQtQnVzIHNpZ25hbCB0byB1cGRhdGUgc3RhdHVzIG9mIGNsaWVudCBvciBzZW5kIGdsaWIg c2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVwZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xp ZW50LgotKyAqIFVwZGF0ZSBwcm9wZXJ0eS4gU2VuZCBELUJ1cyBzaWduYWwgdG8gdXBkYXRlIHN0 YXR1cyBvZiBjbGllbnQgb3Igc2VuZCBnbGliCi0rICogc2lnbmFsIHRvIHRoZSBwYW5lbCwgZGVw ZW5kaW5nIG9uIGNhcGFiaWxpdGllcyBvZiB0aGUgY2xpZW50LgotICAqLwotIHN0YXRpYyB2b2lk Ci0gYnVzX2lucHV0X2NvbnRleHRfdXBkYXRlX3Byb3BlcnR5IChCdXNJbnB1dENvbnRleHQgKmNv bnRleHQsCi1AQCAtMjA1NCw3ICsyMTM0LDggQEAgYnVzX2lucHV0X2NvbnRleHRfdXBkYXRlX3By b3BlcnR5IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gICAgIGdfYXNzZXJ0IChJQlVTX0lT X1BST1BFUlRZIChwcm9wKSk7Ci0gCi0gICAgIGlmIChjb250ZXh0LT5jYXBhYmlsaXRpZXMgJiBJ QlVTX0NBUF9QUk9QRVJUWSkgewotLSAgICAgICAgR1ZhcmlhbnQgKnZhcmlhbnQgPSBpYnVzX3Nl cmlhbGl6YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopcHJvcCk7Ci0rICAgICAg ICBHVmFyaWFudCAqdmFyaWFudCA9Ci0rICAgICAgICAgICAgICAgIGlidXNfc2VyaWFsaXphYmxl X3NlcmlhbGl6ZSAoKElCdXNTZXJpYWxpemFibGUgKilwcm9wKTsKLSAgICAgICAgIGJ1c19pbnB1 dF9jb250ZXh0X2VtaXRfc2lnbmFsIChjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJVcGRhdGVQcm9wZXJ0eSIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih2KSIsIHZhcmlhbnQpLAotQEAgLTIw ODksNyArMjE3MCw4IEBAIF9lbmdpbmVfZGVzdHJveV9jYiAoQnVzRW5naW5lUHJveHkgICplbmdp bmUsCi0gLyoqCi0gICogX2VuZ2luZV9jb21taXRfdGV4dF9jYjoKLSAgKgotLSAqIEEgZnVuY3Rp b24gdG8gYmUgY2FsbGVkIHdoZW4gImNvbW1pdC10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRv IHRoZSBlbmdpbmUgb2JqZWN0LgotKyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gImNv bW1pdC10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBlbmdpbmUKLSsgKiBvYmplY3Qu Ci0gICovCi0gc3RhdGljIHZvaWQKLSBfZW5naW5lX2NvbW1pdF90ZXh0X2NiIChCdXNFbmdpbmVQ cm94eSAgKmVuZ2luZSwKLUBAIC0yMTA4LDcgKzIxOTAsOCBAQCBfZW5naW5lX2NvbW1pdF90ZXh0 X2NiIChCdXNFbmdpbmVQcm94eSAgKmVuZ2luZSwKLSAvKioKLSAgKiBfZW5naW5lX2ZvcndhcmRf a2V5X2V2ZW50X2NiOgotICAqCi0tICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAiZm9y d2FyZC1rZXktZXZlbnQiIGdsaWIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGVuZ2luZSBvYmplY3Qu Ci0rICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAiZm9yd2FyZC1rZXktZXZlbnQiIGds aWIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlCi0rICogZW5naW5lIG9iamVjdC4KLSAgKi8KLSBzdGF0 aWMgdm9pZAotIF9lbmdpbmVfZm9yd2FyZF9rZXlfZXZlbnRfY2IgKEJ1c0VuZ2luZVByb3h5ICAg ICplbmdpbmUsCi1AQCAtMjEyNCwxNCArMjIwNywxNiBAQCBfZW5naW5lX2ZvcndhcmRfa2V5X2V2 ZW50X2NiIChCdXNFbmdpbmVQcm94eSAgICAqZW5naW5lLAotIAotICAgICBidXNfaW5wdXRfY29u dGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJGb3J3YXJkS2V5RXZlbnQiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ192YXJpYW50X25ldyAoIih1dXUpIiwga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSksCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHV1dSki LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5 dmFsLCBrZXljb2RlLCBzdGF0ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMKTsKLSB9Ci0gCi0gLyoqCi0gICogX2VuZ2luZV9kZWxldGVfc3Vycm91bmRpbmdfdGV4 dF9jYjoKLSAgKgotLSAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gImRlbGV0ZS1zdXJy b3VuZGluZy10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBlbmdpbmUgb2JqZWN0Lgot KyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gImRlbGV0ZS1zdXJyb3VuZGluZy10ZXh0 IiBnbGliIHNpZ25hbCBpcyBzZW50Ci0rICogdG8gdGhlIGVuZ2luZSBvYmplY3QuCi0gICovCi0g c3RhdGljIHZvaWQKLSBfZW5naW5lX2RlbGV0ZV9zdXJyb3VuZGluZ190ZXh0X2NiIChCdXNFbmdp bmVQcm94eSAgICAqZW5naW5lLAotQEAgLTIxNDYsMTQgKzIyMzEsMTYgQEAgX2VuZ2luZV9kZWxl dGVfc3Vycm91bmRpbmdfdGV4dF9jYiAoQnVzRW5naW5lUHJveHkgICAgKmVuZ2luZSwKLSAKLSAg ICAgYnVzX2lucHV0X2NvbnRleHRfZW1pdF9zaWduYWwgKGNvbnRleHQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiRGVsZXRlU3Vycm91bmRpbmdUZXh0IiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoaXUpIiwgb2Zmc2V0 X2Zyb21fY3Vyc29yLCBuY2hhcnMpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ192YXJpYW50X25ldyAoIihpdSkiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0X2Zyb21fY3Vyc29yLCBuY2hhcnMpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gfQotIAotIC8qKgotICAqIF9l bmdpbmVfcmVxdWlyZV9zdXJyb3VuZGluZ190ZXh0X2NiOgotICAqCi0tICogQSBmdW5jdGlvbiB0 byBiZSBjYWxsZWQgd2hlbiAicmVxdWlyZS1zdXJyb3VuZGluZy10ZXh0IiBnbGliIHNpZ25hbCBp cyBzZW50IHRvIHRoZSBlbmdpbmUgb2JqZWN0LgotKyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVk IHdoZW4gInJlcXVpcmUtc3Vycm91bmRpbmctdGV4dCIgZ2xpYiBzaWduYWwgaXMgc2VudAotKyAq IHRvIHRoZSBlbmdpbmUgb2JqZWN0LgotICAqLwotIHN0YXRpYyB2b2lkCi0gX2VuZ2luZV9yZXF1 aXJlX3N1cnJvdW5kaW5nX3RleHRfY2IgKEJ1c0VuZ2luZVByb3h5ICAgICplbmdpbmUsCi1AQCAt MjE3Myw3ICsyMjYwLDggQEAgX2VuZ2luZV9yZXF1aXJlX3N1cnJvdW5kaW5nX3RleHRfY2IgKEJ1 c0VuZ2luZVByb3h5ICAgICplbmdpbmUsCi0gLyoqCi0gICogX2VuZ2luZV91cGRhdGVfcHJlZWRp dF90ZXh0X2NiOgotICAqCi0tICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAidXBkYXRl LXByZWVkaXQtdGV4dCIgZ2xpYiBzaWduYWwgaXMgc2VudCB0byB0aGUgZW5naW5lIG9iamVjdC4K LSsgKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuICJ1cGRhdGUtcHJlZWRpdC10ZXh0IiBn bGliIHNpZ25hbCBpcyBzZW50IHRvCi0rICogdGhlIGVuZ2luZSBvYmplY3QuCi0gICovCi0gc3Rh dGljIHZvaWQKLSBfZW5naW5lX3VwZGF0ZV9wcmVlZGl0X3RleHRfY2IgKEJ1c0VuZ2luZVByb3h5 ICAqZW5naW5lLAotQEAgLTIxOTcsNyArMjI4NSw4IEBAIF9lbmdpbmVfdXBkYXRlX3ByZWVkaXRf dGV4dF9jYiAoQnVzRW5naW5lUHJveHkgICplbmdpbmUsCi0gLyoqCi0gICogX2VuZ2luZV91cGRh dGVfYXV4aWxpYXJ5X3RleHRfY2I6Ci0gICoKLS0gKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3 aGVuICJ1cGRhdGUtYXV4aWxpYXJ5LXRleHQiIGdsaWIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGVu Z2luZSBvYmplY3QuCi0rICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAidXBkYXRlLWF1 eGlsaWFyeS10ZXh0IiBnbGliIHNpZ25hbCBpcyBzZW50IHRvCi0rICogdGhlIGVuZ2luZSBvYmpl Y3QuCi0gICovCi0gc3RhdGljIHZvaWQKLSBfZW5naW5lX3VwZGF0ZV9hdXhpbGlhcnlfdGV4dF9j YiAoQnVzRW5naW5lUHJveHkgICAqZW5naW5lLAotQEAgLTIyMTcsNyArMjMwNiw4IEBAIF9lbmdp bmVfdXBkYXRlX2F1eGlsaWFyeV90ZXh0X2NiIChCdXNFbmdpbmVQcm94eSAgICplbmdpbmUsCi0g LyoqCi0gICogX2VuZ2luZV91cGRhdGVfbG9va3VwX3RhYmxlX2NiOgotICAqCi0tICogQSBmdW5j dGlvbiB0byBiZSBjYWxsZWQgd2hlbiAidXBkYXRlLWxvb2t1cC10YWJsZSIgZ2xpYiBzaWduYWwg aXMgc2VudCB0byB0aGUgZW5naW5lIG9iamVjdC4KLSsgKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxl ZCB3aGVuICJ1cGRhdGUtbG9va3VwLXRhYmxlIiBnbGliIHNpZ25hbCBpcyBzZW50IHRvCi0rICog dGhlIGVuZ2luZSBvYmplY3QuCi0gICovCi0gc3RhdGljIHZvaWQKLSBfZW5naW5lX3VwZGF0ZV9s b29rdXBfdGFibGVfY2IgKEJ1c0VuZ2luZVByb3h5ICAgKmVuZ2luZSwKLUBAIC0yMjM3LDcgKzIz MjcsOCBAQCBfZW5naW5lX3VwZGF0ZV9sb29rdXBfdGFibGVfY2IgKEJ1c0VuZ2luZVByb3h5ICAg KmVuZ2luZSwKLSAvKioKLSAgKiBfZW5naW5lX3JlZ2lzdGVyX3Byb3BlcnRpZXNfY2I6Ci0gICoK LS0gKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuICJyZWdpc3Rlci1wcm9wZXJ0aWVzIiBn bGliIHNpZ25hbCBpcyBzZW50IHRvIHRoZSBlbmdpbmUgb2JqZWN0LgotKyAqIEEgZnVuY3Rpb24g dG8gYmUgY2FsbGVkIHdoZW4gInJlZ2lzdGVyLXByb3BlcnRpZXMiIGdsaWIgc2lnbmFsIGlzIHNl bnQgdG8KLSsgKiB0aGUgZW5naW5lIG9iamVjdC4KLSAgKi8KLSBzdGF0aWMgdm9pZAotIF9lbmdp bmVfcmVnaXN0ZXJfcHJvcGVydGllc19jYiAoQnVzRW5naW5lUHJveHkgICplbmdpbmUsCi1AQCAt MjI1Niw3ICsyMzQ3LDggQEAgX2VuZ2luZV9yZWdpc3Rlcl9wcm9wZXJ0aWVzX2NiIChCdXNFbmdp bmVQcm94eSAgKmVuZ2luZSwKLSAvKioKLSAgKiBfZW5naW5lX3VwZGF0ZV9wcm9wZXJ0eV9jYjoK LSAgKgotLSAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gInVwZGF0ZS1wcm9wZXJ0eSIg Z2xpYiBzaWduYWwgaXMgc2VudCB0byB0aGUgZW5naW5lIG9iamVjdC4KLSsgKiBBIGZ1bmN0aW9u IHRvIGJlIGNhbGxlZCB3aGVuICJ1cGRhdGUtcHJvcGVydHkiIGdsaWIgc2lnbmFsIGlzIHNlbnQg dG8gdGhlCi0rICogZW5naW5lIG9iamVjdC4KLSAgKi8KLSBzdGF0aWMgdm9pZAotIF9lbmdpbmVf dXBkYXRlX3Byb3BlcnR5X2NiIChCdXNFbmdpbmVQcm94eSAgKmVuZ2luZSwKLUBAIC0yMzQ2LDEw ICsyNDM4LDExIEBAIGJ1c19pbnB1dF9jb250ZXh0X25ldyAoQnVzQ29ubmVjdGlvbiAgICAqY29u bmVjdGlvbiwKLSAKLSAgICAgQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKLSAgICAg aWYgKGNvbm5lY3Rpb24pIHsKLS0gICAgICAgIGNvbnRleHQgPSAoQnVzSW5wdXRDb250ZXh0ICop IGdfb2JqZWN0X25ldyAoQlVTX1RZUEVfSU5QVVRfQ09OVEVYVCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdC1wYXRoIiwgcGF0aCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv bm5lY3Rpb24iLCBidXNfY29ubmVjdGlvbl9nZXRfZGJ1c19jb25uZWN0aW9uIChjb25uZWN0aW9u KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCk7Ci0rICAgICAgICBjb250ZXh0ID0gKEJ1c0lucHV0Q29udGV4dCAqKSBnX29iamVjdF9u ZXcgKAotKyAgICAgICAgICAgICAgICBCVVNfVFlQRV9JTlBVVF9DT05URVhULAotKyAgICAgICAg ICAgICAgICAib2JqZWN0LXBhdGgiLCBwYXRoLAotKyAgICAgICAgICAgICAgICAiY29ubmVjdGlv biIsIGJ1c19jb25uZWN0aW9uX2dldF9kYnVzX2Nvbm5lY3Rpb24gKGNvbm5lY3Rpb24pLAotKyAg ICAgICAgICAgICAgICBOVUxMKTsKLSAgICAgfQotICAgICBlbHNlIHsKLSAgICAgICAgIGNvbnRl eHQgPSAoQnVzSW5wdXRDb250ZXh0ICopIGdfb2JqZWN0X25ldyAoQlVTX1RZUEVfSU5QVVRfQ09O VEVYVCwKLUBAIC0yNDM5LDI4ICsyNTMyLDM3IEBAIGJ1c19pbnB1dF9jb250ZXh0X2Rpc2FibGUg KEJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkKLSAgICAgfQotIH0KLSAKLS0vKiBBIGxpc3Qgb2Yg c2lnbmFscyAoYW5kIHRoZWlyIGhhbmRsZXIgZnVuY3Rpb25zKSB0aGF0IGNvdWxkIGJlIGVtaXQg YnkgdGhlIGVuZ2luZSBwcm94eSBvYmplY3QuICovCi0rLyogQSBsaXN0IG9mIHNpZ25hbHMgKGFu ZCB0aGVpciBoYW5kbGVyIGZ1bmN0aW9ucykgdGhhdCBjb3VsZCBiZSBlbWl0IGJ5IHRoZQotKyAq IGVuZ2luZSBwcm94eSBvYmplY3QuCi0rICovCi0gY29uc3Qgc3RhdGljIHN0cnVjdCB7Ci0gICAg IGNvbnN0IGdjaGFyICpuYW1lOwotICAgICBHQ2FsbGJhY2sgICAgY2FsbGJhY2s7Ci0gfSBlbmdp bmVfc2lnbmFscyBbXSA9IHsKLSAgICAgeyAiY29tbWl0LXRleHQiLCAgICAgICAgICAgICAgR19D QUxMQkFDSyAoX2VuZ2luZV9jb21taXRfdGV4dF9jYikgfSwKLSAgICAgeyAiZm9yd2FyZC1rZXkt ZXZlbnQiLCAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9mb3J3YXJkX2tleV9ldmVudF9jYikg fSwKLS0gICAgeyAiZGVsZXRlLXN1cnJvdW5kaW5nLXRleHQiLCAgR19DQUxMQkFDSyAoX2VuZ2lu ZV9kZWxldGVfc3Vycm91bmRpbmdfdGV4dF9jYikgfSwKLS0gICAgeyAicmVxdWlyZS1zdXJyb3Vu ZGluZy10ZXh0IiwgR19DQUxMQkFDSyAoX2VuZ2luZV9yZXF1aXJlX3N1cnJvdW5kaW5nX3RleHRf Y2IpIH0sCi0rICAgIHsgImRlbGV0ZS1zdXJyb3VuZGluZy10ZXh0IiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChfZW5naW5lX2RlbGV0ZV9zdXJyb3VuZGluZ190 ZXh0X2NiKSB9LAotKyAgICB7ICJyZXF1aXJlLXN1cnJvdW5kaW5nLXRleHQiLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9yZXF1aXJlX3N1cnJvdW5k aW5nX3RleHRfY2IpIH0sCi0gICAgIHsgInVwZGF0ZS1wcmVlZGl0LXRleHQiLCAgICAgIEdfQ0FM TEJBQ0sgKF9lbmdpbmVfdXBkYXRlX3ByZWVkaXRfdGV4dF9jYikgfSwKLSAgICAgeyAic2hvdy1w cmVlZGl0LXRleHQiLCAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9zaG93X3ByZWVkaXRfdGV4 dF9jYikgfSwKLSAgICAgeyAiaGlkZS1wcmVlZGl0LXRleHQiLCAgICAgICAgR19DQUxMQkFDSyAo X2VuZ2luZV9oaWRlX3ByZWVkaXRfdGV4dF9jYikgfSwKLS0gICAgeyAidXBkYXRlLWF1eGlsaWFy eS10ZXh0IiwgICAgR19DQUxMQkFDSyAoX2VuZ2luZV91cGRhdGVfYXV4aWxpYXJ5X3RleHRfY2Ip IH0sCi0rICAgIHsgInVwZGF0ZS1hdXhpbGlhcnktdGV4dCIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0NBTExCQUNLIChfZW5naW5lX3VwZGF0ZV9hdXhpbGlhcnlfdGV4dF9j YikgfSwKLSAgICAgeyAic2hvdy1hdXhpbGlhcnktdGV4dCIsICAgICAgR19DQUxMQkFDSyAoX2Vu Z2luZV9zaG93X2F1eGlsaWFyeV90ZXh0X2NiKSB9LAotICAgICB7ICJoaWRlLWF1eGlsaWFyeS10 ZXh0IiwgICAgICBHX0NBTExCQUNLIChfZW5naW5lX2hpZGVfYXV4aWxpYXJ5X3RleHRfY2IpIH0s Ci0gICAgIHsgInVwZGF0ZS1sb29rdXAtdGFibGUiLCAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVf dXBkYXRlX2xvb2t1cF90YWJsZV9jYikgfSwKLSAgICAgeyAic2hvdy1sb29rdXAtdGFibGUiLCAg ICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9zaG93X2xvb2t1cF90YWJsZV9jYikgfSwKLSAgICAg eyAiaGlkZS1sb29rdXAtdGFibGUiLCAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9oaWRlX2xv b2t1cF90YWJsZV9jYikgfSwKLS0gICAgeyAicGFnZS11cC1sb29rdXAtdGFibGUiLCAgICAgR19D QUxMQkFDSyAoX2VuZ2luZV9wYWdlX3VwX2xvb2t1cF90YWJsZV9jYikgfSwKLS0gICAgeyAicGFn ZS1kb3duLWxvb2t1cC10YWJsZSIsICAgR19DQUxMQkFDSyAoX2VuZ2luZV9wYWdlX2Rvd25fbG9v a3VwX3RhYmxlX2NiKSB9LAotLSAgICB7ICJjdXJzb3ItdXAtbG9va3VwLXRhYmxlIiwgICBHX0NB TExCQUNLIChfZW5naW5lX2N1cnNvcl91cF9sb29rdXBfdGFibGVfY2IpIH0sCi0tICAgIHsgImN1 cnNvci1kb3duLWxvb2t1cC10YWJsZSIsIEdfQ0FMTEJBQ0sgKF9lbmdpbmVfY3Vyc29yX2Rvd25f bG9va3VwX3RhYmxlX2NiKSB9LAotKyAgICB7ICJwYWdlLXVwLWxvb2t1cC10YWJsZSIsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoX2VuZ2luZV9wYWdlX3Vw X2xvb2t1cF90YWJsZV9jYikgfSwKLSsgICAgeyAicGFnZS1kb3duLWxvb2t1cC10YWJsZSIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVfcGFnZV9k b3duX2xvb2t1cF90YWJsZV9jYikgfSwKLSsgICAgeyAiY3Vyc29yLXVwLWxvb2t1cC10YWJsZSIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVfY3Vy c29yX3VwX2xvb2t1cF90YWJsZV9jYikgfSwKLSsgICAgeyAiY3Vyc29yLWRvd24tbG9va3VwLXRh YmxlIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVf Y3Vyc29yX2Rvd25fbG9va3VwX3RhYmxlX2NiKSB9LAotICAgICB7ICJyZWdpc3Rlci1wcm9wZXJ0 aWVzIiwgICAgICBHX0NBTExCQUNLIChfZW5naW5lX3JlZ2lzdGVyX3Byb3BlcnRpZXNfY2IpIH0s Ci0gICAgIHsgInVwZGF0ZS1wcm9wZXJ0eSIsICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9lbmdpbmVf dXBkYXRlX3Byb3BlcnR5X2NiKSB9LAotICAgICB7ICJwYW5lbC1leHRlbnNpb24iLCAgICAgICAg ICBHX0NBTExCQUNLIChfZW5naW5lX3BhbmVsX2V4dGVuc2lvbl9jYikgfSwKLUBAIC0yNTMxLDkg KzI2MzMsMTYgQEAgYnVzX2lucHV0X2NvbnRleHRfc2V0X2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgaWJ1c19zZXJ2aWNlX2dldF9vYmplY3Rf cGF0aCAoKElCdXNTZXJ2aWNlICopY29udGV4dCk7Ci0gICAgICAgICAgICAgYnVzX2VuZ2luZV9w cm94eV9mb2N1c19pbiAoY29udGV4dC0+ZW5naW5lLCBwYXRoLCBjb250ZXh0LT5jbGllbnQpOwot ICAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfZW5hYmxlIChjb250ZXh0LT5lbmdpbmUpOwot LSAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2NhcGFiaWxpdGllcyAoY29udGV4dC0+ ZW5naW5lLCBjb250ZXh0LT5jYXBhYmlsaXRpZXMpOwotLSAgICAgICAgICAgIGJ1c19lbmdpbmVf cHJveHlfc2V0X2N1cnNvcl9sb2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT54LCBj b250ZXh0LT55LCBjb250ZXh0LT53LCBjb250ZXh0LT5oKTsKLS0gICAgICAgICAgICBidXNfZW5n aW5lX3Byb3h5X3NldF9jb250ZW50X3R5cGUgKGNvbnRleHQtPmVuZ2luZSwgY29udGV4dC0+cHVy cG9zZSwgY29udGV4dC0+aGludHMpOwotKyAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0 X2NhcGFiaWxpdGllcyAoY29udGV4dC0+ZW5naW5lLCAKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmNhcGFiaWxpdGllcyk7Ci0rICAgICAg ICAgICAgYnVzX2VuZ2luZV9wcm94eV9zZXRfY3Vyc29yX2xvY2F0aW9uIChjb250ZXh0LT5lbmdp bmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250ZXh0LT54LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGV4dC0+eSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRleHQtPncsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5oKTsKLSsgICAgICAgICAgICBidXNfZW5naW5l X3Byb3h5X3NldF9jb250ZW50X3R5cGUgKGNvbnRleHQtPmVuZ2luZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPnB1cnBvc2UsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5oaW50 cyk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAgICAgZ19zaWduYWxfZW1pdCAoY29udGV4dCwKLUBA IC0yNzc5LDcgKzI4ODgsOCBAQCBidXNfaW5wdXRfY29udGV4dF9zZXRfY2FwYWJpbGl0aWVzIChC dXNJbnB1dENvbnRleHQgICAgKmNvbnRleHQsCi0gewotICAgICBnX2Fzc2VydCAoQlVTX0lTX0lO UFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSAKLS0gICAgLyogSWYgdGhlIGNvbnRleHQgZG9lcyBu b3Qgc3VwcG9ydCBJQlVTX0NBUF9GT0NVUywgdGhlbiB0aGUgY2xpZW50IGFwcGxpY2F0aW9uIGhh dmUgdG8gaGFuZGxlIGFsbCBpbmZvcm1hdGlvbiBzdWNoIGFzCi0rICAgIC8qIElmIHRoZSBjb250 ZXh0IGRvZXMgbm90IHN1cHBvcnQgSUJVU19DQVBfRk9DVVMsIHRoZW4gdGhlIGNsaWVudAotKyAg ICAgKiBhcHBsaWNhdGlvbiBoYXZlIHRvIGhhbmRsZSBhbGwgaW5mb3JtYXRpb24gc3VjaCBhcwot ICAgICAgKiBwcmVlZGl0IGFuZCBhdXhpbGlhcnkgdGV4dC4gKi8KLSAgICAgaWYgKChjYXBhYmls aXRpZXMgJiBJQlVTX0NBUF9GT0NVUykgPT0gMCkgewotICAgICAgICAgY2FwYWJpbGl0aWVzIHw9 IChJQlVTX0NBUF9QUkVFRElUX1RFWFQgfCBJQlVTX0NBUF9BVVhJTElBUllfVEVYVCB8IElCVVNf Q0FQX0xPT0tVUF9UQUJMRSB8IElCVVNfQ0FQX1BST1BFUlRZKTsKLS0tIAotMi40MS4wCi0KLUZy b20gMzY3MGZhZjc0YTdiNDU5NGNlZGEzYjRhOGMwMTUxNTg0MGNjMTk5MSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4K LURhdGU6IFdlZCwgMTIgSnVsIDIwMjMgMDc6NTA6MjIgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCAy LzNdIHNyYzogRml4IHN5bmMgaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkK LQotVGhlIHN5bmNocm9ub3VzICJQcm9jZXNzS2V5RXZlbnQiIEQtQnVzIG1ldGhvZCBjYW5ub3Qg cmVjZWl2ZQotIkNvbW1pdFRleHQiIGFuZCAiRm9yd2FyZEtleUV2ZW50IiBELUJ1cyBzaWduYWxz IGR1cmluZyBjYWxsaW5nIHRoZSBtZXRob2QuCi1UbyByZXNvbHZlIHRoZSBpc3N1ZSwgbm93Ci1p YnVzX2lucHV0X2NvbnRleHRfc2V0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQoKSBhbmQKLWlidXNf aW5wdXRfY29udGV4dF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkgYXJlIGFkZGVkIG5ld2x5Lgot Ci1pYnVzX2lucHV0X2NvbnRleHRfcG9zdF9wcm9jZXNzX2tleV9ldmVudCgpIHJldHJpZXMgIkNv bW1pdFRleHQiIGFuZAotIkZvcndhcmRLZXlFdmVudCIgRC1CdXMgc2lnbmFscyBkdXJpbmcgY2Fs bGluZyB0aGUgIlByb2Nlc3NLZXlFdmVudCIgRC1CdXMKLW1ldGhvZCBhbmQgaWJ1cy1kYWVtb24g ZG9lcyBub3QgaGFuZGxlIHRob3NlIHNpZ25hbHMuCi0KLSJTaW5jZTogMS41LjAwIiBpcyBhZGRl ZCBpbiBoZWFkZXIgZmlsZXMgdG8gYXZhaWxhYmxlIEFQSXMgYmVmb3JlIDEuNS4yOQotaXMgcmVs ZWFzZWQuIFdpbGwgdGhpbmsgbGF0ZXIgaG93IHRvIGNvbnZlcnQgdGhlIHZlcnNpb24gY29tbWVu dHMgdG9nZXRoZXIKLXdoZW4gdGhlIG5ldyB2ZXJzaW9uIDEuNS4yOSBpcyBjb21taXR0ZWQuCi0K LUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yNDg2Ci0tLS0KLSBidXMv aW5wdXRjb250ZXh0LmMgICAgICAgICAgfCAyNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tCi0gY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIHwgMjI1ICsrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tCi0gc3JjL2lidXNpbnB1dGNvbnRleHQuYyAgICAgIHwgMTYy ICsrKysrKysrKysrKysrKysrKysrKy0tCi0gc3JjL2lidXNpbnB1dGNvbnRleHQuaCAgICAgIHwg IDM2ICsrKysrLQotIDQgZmlsZXMgY2hhbmdlZCwgNTY3IGluc2VydGlvbnMoKyksIDEwOCBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1cy9pbnB1dGNvbnRleHQuYyBiL2J1cy9pbnB1dGNv bnRleHQuYwotaW5kZXggOGFkZWQ1ZDguLjRkMWZiMDQxIDEwMDY0NAotLS0tIGEvYnVzL2lucHV0 Y29udGV4dC5jCi0rKysgYi9idXMvaW5wdXRjb250ZXh0LmMKLUBAIC0zMSw2ICszMSw4IEBACi0g I2luY2x1ZGUgIm1hcnNoYWxlcnMuaCIKLSAjaW5jbHVkZSAidHlwZXMuaCIKLSAKLSsjZGVmaW5l IE1BWF9TWU5DX0RBVEEgMzAKLSsKLSBzdHJ1Y3QgX1NldEVuZ2luZUJ5RGVzY0RhdGEgewotICAg ICAvKiBjb250ZXh0IHJlbGF0ZWQgdG8gdGhlIGRhdGEgKi8KLSAgICAgQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0OwotQEAgLTQ2LDYgKzQ4LDExIEBAIHN0cnVjdCBfU2V0RW5naW5lQnlEZXNjRGF0 YSB7Ci0gfTsKLSB0eXBlZGVmIHN0cnVjdCBfU2V0RW5naW5lQnlEZXNjRGF0YSBTZXRFbmdpbmVC eURlc2NEYXRhOwotIAotK3R5cGVkZWYgc3RydWN0IF9TeW5jRm9yd2FyZGluZ0RhdGEgewotKyAg ICBnY2hhciAgICAga2V5OwotKyAgICBJQnVzVGV4dCAqdGV4dDsKLSt9IFN5bmNGb3J3YXJkaW5n RGF0YTsKLSsKLSBzdHJ1Y3QgX0J1c0lucHV0Q29udGV4dCB7Ci0gICAgIElCdXNTZXJ2aWNlIHBh cmVudDsKLSAKLUBAIC05OSw2ICsxMDYsOSBAQCBzdHJ1Y3QgX0J1c0lucHV0Q29udGV4dCB7Ci0g Ci0gICAgIEJ1c1BhbmVsUHJveHkgKmVtb2ppX2V4dGVuc2lvbjsKLSAgICAgZ2Jvb2xlYW4gaXNf ZXh0ZW5zaW9uX2xvb2t1cF90YWJsZTsKLSsgICAgR1F1ZXVlICpxdWV1ZV9kdXJpbmdfcHJvY2Vz c19rZXlfZXZlbnQ7Ci0rICAgIGdib29sZWFuIHVzZV9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50Owot KyAgICBnYm9vbGVhbiBwcm9jZXNzaW5nX2tleV9ldmVudDsKLSB9OwotIAotIHN0cnVjdCBfQnVz SW5wdXRDb250ZXh0Q2xhc3MgewotQEAgLTE1Niw2ICsxNjYsMTUgQEAgc3RhdGljIHZvaWQgICAg IGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2VfbWV0aG9kX2NhbGwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKm1ldGhvZF9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAg ICAqcGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJ1 c01ldGhvZEludm9jYXRpb24gKmludm9jYXRpb24pOwotK3N0YXRpYyBHVmFyaWFudCAqCi0rICAg ICAgICAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2VfZ2V0X3Byb3BlcnR5Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1NlcnZpY2UgICAgICAgICAgICpz ZXJ2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzQ29ubmVj dGlvbiAgICAgICAqY29ubmVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKnNlbmRlciwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKm9iamVjdF9wYXRoLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAq aW50ZXJmYWNlX25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgICAgICAgICAgICpwcm9wZXJ0eV9uYW1lLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICoqZXJyb3IpOwotIHN0YXRpYyBn Ym9vbGVhbiBidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX3NldF9wcm9wZXJ0eQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNTZXJ2aWNlICAgICAgICAgICAqc2Vydmlj ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24g ICAgICAgKmNvbm5lY3Rpb24sCi1AQCAtMjE1LDggKzIzNCwyMSBAQCBzdGF0aWMgY29uc3QgZ2No YXIgaW50cm9zcGVjdGlvbl94bWxbXSA9Ci0gICAgICI8bm9kZT5cbiIKLSAgICAgIiAgPGludGVy ZmFjZSBuYW1lPSdvcmcuZnJlZWRlc2t0b3AuSUJ1cy5JbnB1dENvbnRleHQnPlxuIgotICAgICAv KiBwcm9wZXJ0aWVzICovCi0rICAgICIgICAgPHByb3BlcnR5IG5hbWU9J1Bvc3RQcm9jZXNzS2V5 RXZlbnQnIHR5cGU9JyhhKHl2KSknIGFjY2Vzcz0ncmVhZCc+XG4iCi0rICAgICIgICAgICA8YW5u b3RhdGlvbiBuYW1lPSdvcmcuZ3RrLkdEQnVzLlNpbmNlJ1xuIgotKyAgICAiICAgICAgICAgIHZh bHVlPScxLjUuMjknIC8+XG4iCi0rICAgICIgICAgICA8YW5ub3RhdGlvbiBuYW1lPSdvcmcuZ3Rr LkdEQnVzLkRvY1N0cmluZydcbiIKLSsgICAgIiAgICAgICAgICB2YWx1ZT0nU3RhYmlsaXR5OiBV bnN0YWJsZScgLz5cbiIKLSsgICAgIiAgICA8L3Byb3BlcnR5PlxuIgotICAgICAiICAgIDxwcm9w ZXJ0eSBuYW1lPSdDb250ZW50VHlwZScgdHlwZT0nKHV1KScgYWNjZXNzPSd3cml0ZScgLz5cbiIK LSAgICAgIiAgICA8cHJvcGVydHkgbmFtZT0nQ2xpZW50Q29tbWl0UHJlZWRpdCcgdHlwZT0nKGIp JyBhY2Nlc3M9J3dyaXRlJyAvPlxuIgotKyAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdFZmZlY3Rp dmVQb3N0UHJvY2Vzc0tleUV2ZW50JyB0eXBlPScoYiknIFxuIgotKyAgICAiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3M9J3dyaXRlJz5cbiIK LSsgICAgIiAgICAgIDxhbm5vdGF0aW9uIG5hbWU9J29yZy5ndGsuR0RCdXMuU2luY2UnXG4iCi0r ICAgICIgICAgICAgICAgdmFsdWU9JzEuNS4yOScgLz5cbiIKLSsgICAgIiAgICAgIDxhbm5vdGF0 aW9uIG5hbWU9J29yZy5ndGsuR0RCdXMuRG9jU3RyaW5nJ1xuIgotKyAgICAiICAgICAgICAgIHZh bHVlPSdTdGFiaWxpdHk6IFVuc3RhYmxlJyAvPlxuIgotKyAgICAiICAgIDwvcHJvcGVydHk+XG4i Ci0gICAgIC8qIG1ldGhvZHMgKi8KLSAgICAgIiAgICA8bWV0aG9kIG5hbWU9J1Byb2Nlc3NLZXlF dmVudCc+XG4iCi0gICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nICB0eXBlPSd1JyBuYW1l PSdrZXl2YWwnIC8+XG4iCi1AQCAtMzUzLDYgKzM4NSw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X2Ns YXNzX2luaXQgKEJ1c0lucHV0Q29udGV4dENsYXNzICpjbGFzcykKLSAgICAgLyogb3ZlcnJpZGUg dGhlIHBhcmVudCBjbGFzcydzIGltcGxlbWVudGF0aW9uLiAqLwotICAgICBJQlVTX1NFUlZJQ0Vf Q0xBU1MgKGNsYXNzKS0+c2VydmljZV9tZXRob2RfY2FsbCA9Ci0gICAgICAgICBidXNfaW5wdXRf Y29udGV4dF9zZXJ2aWNlX21ldGhvZF9jYWxsOwotKyAgICBJQlVTX1NFUlZJQ0VfQ0xBU1MgKGNs YXNzKS0+c2VydmljZV9nZXRfcHJvcGVydHkgPQotKyAgICAgICAgYnVzX2lucHV0X2NvbnRleHRf c2VydmljZV9nZXRfcHJvcGVydHk7Ci0gICAgIElCVVNfU0VSVklDRV9DTEFTUyAoY2xhc3MpLT5z ZXJ2aWNlX3NldF9wcm9wZXJ0eSA9Ci0gICAgICAgICBidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNl X3NldF9wcm9wZXJ0eTsKLSAgICAgLyogcmVnaXN0ZXIgdGhlIHhtbCBzbyB0aGF0IGJ1c19pYnVz X2ltcGxfc2VydmljZV9tZXRob2RfY2FsbCB3aWxsIGJlCi1AQCAtNzgyLDYgKzgxNiwxMSBAQCBi dXNfaW5wdXRfY29udGV4dF9wcm9wZXJ0eV9jaGFuZ2VkIChCdXNJbnB1dENvbnRleHQgKmNvbnRl eHQsCi0gfQotIAotIAotK3R5cGVkZWYgc3RydWN0IF9QYW5lbFByb2Nlc3NLZXlFdmVudERhdGEg ewotKyAgICBHREJ1c01ldGhvZEludm9jYXRpb24gKmludm9jYXRpb247Ci0rICAgIEJ1c0lucHV0 Q29udGV4dCAqY29udGV4dDsKLSt9IFBhbmVsUHJvY2Vzc0tleUV2ZW50RGF0YTsKLSsKLSAvKioK LSAgKiBfcGFuZWxfcHJvY2Vzc19rZXlfZXZlbnRfY2I6Ci0gICoKLUBAIC03ODksMTQgKzgyOCwy MSBAQCBidXNfaW5wdXRfY29udGV4dF9wcm9wZXJ0eV9jaGFuZ2VkIChCdXNJbnB1dENvbnRleHQg KmNvbnRleHQsCi0gICogYnVzX3BhbmVsX3Byb3h5X3Byb2Nlc3Nfa2V5X2V2ZW50KCkgaXMgZmlu aXNoZWQuCi0gICovCi0gc3RhdGljIHZvaWQKLS1fcGFuZWxfcHJvY2Vzc19rZXlfZXZlbnRfY2Ig KEdPYmplY3QgICAgICAgICAgICAgICAqc291cmNlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0FzeW5jUmVzdWx0ICAgICAgICAgICpyZXMsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHREJ1c01ldGhvZEludm9jYXRpb24gKmludm9jYXRpb24pCi0rX3BhbmVsX3Byb2Nl c3Nfa2V5X2V2ZW50X2NiIChHT2JqZWN0ICAgICAgICAgICAgICAgICAgKnNvdXJjZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAgICAqcmVzLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFuZWxQcm9jZXNzS2V5RXZlbnREYXRhICpk YXRhKQotIHsKLSAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0gICAgIEdWYXJpYW50ICp2YWx1 ZSA9IGdfZGJ1c19wcm94eV9jYWxsX2ZpbmlzaCAoKEdEQnVzUHJveHkgKilzb3VyY2UsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVycm9yKTsKLSsg ICAgR0RCdXNNZXRob2RJbnZvY2F0aW9uICppbnZvY2F0aW9uOwotKyAgICBCdXNJbnB1dENvbnRl eHQgKmNvbnRleHQ7Ci0rCi0rICAgIGdfYXNzZXJ0IChkYXRhKTsKLSsgICAgaW52b2NhdGlvbiA9 IGRhdGEtPmludm9jYXRpb247Ci0rICAgIGNvbnRleHQgPSBkYXRhLT5jb250ZXh0OwotKyAgICBn X3NsaWNlX2ZyZWUgKFBhbmVsUHJvY2Vzc0tleUV2ZW50RGF0YSwgZGF0YSk7Ci0gICAgIGlmICh2 YWx1ZSAhPSBOVUxMKSB7Ci0gICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJu X3ZhbHVlIChpbnZvY2F0aW9uLCB2YWx1ZSk7Ci0gICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZh bHVlKTsKLUBAIC04MDUsNiArODUxLDcgQEAgX3BhbmVsX3Byb2Nlc3Nfa2V5X2V2ZW50X2NiIChH T2JqZWN0ICAgICAgICAgICAgICAgKnNvdXJjZSwKLSAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52 b2NhdGlvbl9yZXR1cm5fZ2Vycm9yIChpbnZvY2F0aW9uLCBlcnJvcik7Ci0gICAgICAgICBnX2Vy cm9yX2ZyZWUgKGVycm9yKTsKLSAgICAgfQotKyAgICBjb250ZXh0LT5wcm9jZXNzaW5nX2tleV9l dmVudCA9IEZBTFNFOwotIH0KLSAKLSB0eXBlZGVmIHN0cnVjdCBfUHJvY2Vzc0tleUV2ZW50RGF0 YSBQcm9jZXNzS2V5RXZlbnREYXRhOwotQEAgLTg0MSwyMSArODg4LDI3IEBAIF9pY19wcm9jZXNz X2tleV9ldmVudF9yZXBseV9jYiAoR09iamVjdCAgICAgICAgICAgICAgICpzb3VyY2UsCi0gICAg ICAgICBnYm9vbGVhbiByZXR2YWwgPSBGQUxTRTsKLSAgICAgICAgIGdfdmFyaWFudF9nZXQgKHZh bHVlLCAiKGIpIiwgJnJldHZhbCk7Ci0gICAgICAgICBpZiAoY29udGV4dC0+ZW1vamlfZXh0ZW5z aW9uICYmICFyZXR2YWwpIHsKLSsgICAgICAgICAgICBQYW5lbFByb2Nlc3NLZXlFdmVudERhdGEg KnBkYXRhID0KLSsgICAgICAgICAgICAgICAgICAgIGdfc2xpY2VfbmV3IChQYW5lbFByb2Nlc3NL ZXlFdmVudERhdGEpOwotKyAgICAgICAgICAgIHBkYXRhLT5pbnZvY2F0aW9uID0gaW52b2NhdGlv bjsKLSsgICAgICAgICAgICBwZGF0YS0+Y29udGV4dCA9IGNvbnRleHQ7Ci0gICAgICAgICAgICAg YnVzX3BhbmVsX3Byb3h5X3Byb2Nlc3Nfa2V5X2V2ZW50IChjb250ZXh0LT5lbW9qaV9leHRlbnNp b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2 YWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlj b2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9k aWZpZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KEdBc3luY1JlYWR5Q2FsbGJhY2spCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF9wYW5lbF9wcm9jZXNzX2tleV9ldmVudF9jYiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb24pOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRhdGEpOwotICAg ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0 dXJuX3ZhbHVlIChpbnZvY2F0aW9uLCB2YWx1ZSk7Ci0rICAgICAgICAgICAgY29udGV4dC0+cHJv Y2Vzc2luZ19rZXlfZXZlbnQgPSBGQUxTRTsKLSAgICAgICAgIH0KLSAgICAgICAgIGdfdmFyaWFu dF91bnJlZiAodmFsdWUpOwotICAgICB9Ci0gICAgIGVsc2UgewotICAgICAgICAgZ19kYnVzX21l dGhvZF9pbnZvY2F0aW9uX3JldHVybl9nZXJyb3IgKGludm9jYXRpb24sIGVycm9yKTsKLSAgICAg ICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOwotKyAgICAgICAgY29udGV4dC0+cHJvY2Vzc2luZ19r ZXlfZXZlbnQgPSBGQUxTRTsKLSAgICAgfQotIAotICAgICBnX29iamVjdF91bnJlZiAoY29udGV4 dCk7Ci1AQCAtODc3LDYgKzkzMCw4IEBAIF9pY19wcm9jZXNzX2tleV9ldmVudCAoQnVzSW5wdXRD b250ZXh0ICAgICAgICpjb250ZXh0LAotICAgICBndWludCBrZXljb2RlID0gMDsKLSAgICAgZ3Vp bnQgbW9kaWZpZXJzID0gMDsKLSAKLSsgICAgaWYgKGNvbnRleHQtPnVzZV9wb3N0X3Byb2Nlc3Nf a2V5X2V2ZW50KQotKyAgICAgICAgY29udGV4dC0+cHJvY2Vzc2luZ19rZXlfZXZlbnQgPSBUUlVF OwotICAgICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJzLCAiKHV1dSkiLCAma2V5dmFsLCAma2V5 Y29kZSwgJm1vZGlmaWVycyk7Ci0gICAgIGlmIChHX1VOTElLRUxZICghY29udGV4dC0+aGFzX2Zv Y3VzKSkgewotICAgICAgICAgLyogd29ya2Fyb3VuZDogc2V0IGZvY3VzIGlmIGNvbnRleHQgZG9l cyBub3QgaGF2ZSBmb2N1cyAqLwotQEAgLTEzNzIsMTcgKzE0MjcsMTA5IEBAIGJ1c19pbnB1dF9j b250ZXh0X3NlcnZpY2VfbWV0aG9kX2NhbGwgKElCdXNTZXJ2aWNlICAgICAgICAgICAgKnNlcnZp Y2UsCi0gICAgIGdfcmV0dXJuX2lmX3JlYWNoZWQgKCk7Ci0gfQotIAotLXN0YXRpYyB2b2lkCi0r LyoqCi0rICogX2ljX2dldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50OgotKyAqCi0rICogSW1wbGVt ZW50IHRoZSAiUG9zdFByb2Nlc3NLZXlFdmVudCIgZ2V0IHByb3BlcnR5IG9mIHRoZQotKyAqIG9y Zy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4dCBpbnRlcmZhY2UgYmVjYXVzZSBjdXJyZW50 bHkgdGhlIEdpbwotKyAqIEQtQnVzIG1ldGhvZCBjYWxscyBkb24ndCBzdXBwb3J0IG11bHRpcGxl IG5lc3RlZCB0dXBsZXMgbGlrZXMKLSsgKiBHX1ZBUklBTlRfVFlQRSAoIigoYmEoeXYpKSkiKSkg aW4gIlByb2Nlc3NLZXlFdmVudCIgRC1CdXMgbWV0aG9kCi0rICogU28gdGhlc2UgcG9zdCBldmVu dHMgYXJlIHNlcGFyYXRlZCBmcm9tIHRoZSByZXR1cm4gdmFsdWUgImIiIG9mCi0rICogdGhlICJQ cm9jZXNzS2V5RXZlbnQiIEQtQnVzIG1ldGhvZCBjYWxsLgotKyAqLwotK3N0YXRpYyBHVmFyaWFu dCAqCi0rX2ljX2dldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50IChCdXNJbnB1dENvbnRleHQgKmNv bnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24g KmNvbm5lY3Rpb24sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAg ICAgICAqKmVycm9yKQotK3sKLSsgICAgY29uc3QgY2hhciAqZXJyb3JfbWVzc2FnZSA9IE5VTEw7 Ci0rICAgIEdWYXJpYW50QnVpbGRlciBhcnJheTsKLSsgICAgU3luY0ZvcndhcmRpbmdEYXRhICpk YXRhOwotKwotKyAgICBkbyB7Ci0rICAgICAgICBpZiAoIUJVU19JU19JTlBVVF9DT05URVhUIChj b250ZXh0KSkgewotKyAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgPSAiQnVzSW5wdXRDb250ZXh0 IGlzIGZyZWVkIjsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgICAgIGlm IChjb250ZXh0LT5wcm9jZXNzaW5nX2tleV9ldmVudCkgewotKyAgICAgICAgICAgIGVycm9yX21l c3NhZ2UgPSAiQW5vdGhlciBQcm9jZXNzS2V5RXZlbnQgaXMgY2FsbGVkLiI7Ci0rICAgICAgICAg ICAgYnJlYWs7Ci0rICAgICAgICB9Ci0rICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0ICgm YXJyYXksIEdfVkFSSUFOVF9UWVBFICgiYSh5dikiKSk7Ci0rICAgICAgICB3aGlsZSAoKGRhdGEg PQotKyAgICAgICAgICAgICAgICBnX3F1ZXVlX3BvcF9oZWFkIChjb250ZXh0LT5xdWV1ZV9kdXJp bmdfcHJvY2Vzc19rZXlfZXZlbnQpKSkgewotKyAgICAgICAgICAgIEdWYXJpYW50ICp2YXJpYW50 ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplX29iamVjdCAoCi0rICAgICAgICAgICAgICAg ICAgICBJQlVTX1NFUklBTElaQUJMRSAoZGF0YS0+dGV4dCkpOwotKyAgICAgICAgICAgIGdfdmFy aWFudF9idWlsZGVyX2FkZCAoJmFycmF5LCAiKHl2KSIsIGRhdGEtPmtleSwgdmFyaWFudCk7Ci0r ICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGRhdGEtPnRleHQpOwotKyAgICAgICAgICAgIGdf c2xpY2VfZnJlZSAoU3luY0ZvcndhcmRpbmdEYXRhLCBkYXRhKTsKLSsgICAgICAgIH0KLSsgICAg fSB3aGlsZSAoRkFMU0UpOwotKyAgICBpZiAoZXJyb3JfbWVzc2FnZSkgewotKyAgICAgICAgZ19z ZXRfZXJyb3IgKGVycm9yLAotKyAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUiwKLSsg ICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfRkFJTEVELAotKyAgICAgICAgICAgICAg ICAgICAgICIlcyIsIGVycm9yX21lc3NhZ2UpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rICAg IH0KLSsgICAgcmV0dXJuIGdfdmFyaWFudF9idWlsZGVyX2VuZCAoJmFycmF5KTsKLSt9Ci0rCi0r c3RhdGljIEdWYXJpYW50ICoKLStidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX2dldF9wcm9wZXJ0 eSAoSUJ1c1NlcnZpY2UgICAgICAgICAgICpzZXJ2aWNlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24gICAgICAgKmNvbm5lY3Rpb24sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAg ICAgICAqc2VuZGVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBnY2hhciAgICAgICAgICAgKm9iamVjdF9wYXRoLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKmludGVyZmFjZV9uYW1l LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg ICAgICAgICAgKnByb3BlcnR5X25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICoqZXJyb3IpCi0rewotKyAgICBpbnQgaTsK LSsgICAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Ci0rICAgICAgICBjb25zdCBjaGFyICpwcm9wZXJ0 eV9uYW1lOwotKyAgICAgICAgR1ZhcmlhbnQgKiAoKiBwcm9wZXJ0eV9jYWxsYmFjaykgKEJ1c0lu cHV0Q29udGV4dCAqLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdEQnVzQ29ubmVjdGlvbiAqLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdFcnJvciAqKik7Ci0rICAgIH0gcHJvcGVydGllcyBbXSA9ICB7Ci0rICAgICAgICB7 ICJQb3N0UHJvY2Vzc0tleUV2ZW50IiwgICBfaWNfZ2V0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQg fSwKLSsgICAgfTsKLSsKLSsgICAgaWYgKGVycm9yKQotKyAgICAgICAgKmVycm9yID0gTlVMTDsK LSsgICAgaWYgKGdfc3RyY21wMCAoaW50ZXJmYWNlX25hbWUsIElCVVNfSU5URVJGQUNFX0lOUFVU X0NPTlRFWFQpICE9IDApIHsKLSsgICAgICAgIHJldHVybiBJQlVTX1NFUlZJQ0VfQ0xBU1MgKGJ1 c19pbnB1dF9jb250ZXh0X3BhcmVudF9jbGFzcyktPgotKyAgICAgICAgICAgICAgICBzZXJ2aWNl X2dldF9wcm9wZXJ0eSAoCi0rICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSwgY29ubmVj dGlvbiwgc2VuZGVyLCBvYmplY3RfcGF0aCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBpbnRl cmZhY2VfbmFtZSwgcHJvcGVydHlfbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBlcnJv cik7Ci0rICAgIH0KLSsgICAgZm9yIChpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyAocHJvcGVydGll cyk7IGkrKykgewotKyAgICAgICAgaWYgKGdfc3RyY21wMCAocHJvcGVydGllc1tpXS5wcm9wZXJ0 eV9uYW1lLCBwcm9wZXJ0eV9uYW1lKSA9PSAwKSB7Ci0rICAgICAgICAgICAgcmV0dXJuIHByb3Bl cnRpZXNbaV0ucHJvcGVydHlfY2FsbGJhY2sgKChCdXNJbnB1dENvbnRleHQgKilzZXJ2aWNlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u ZWN0aW9uLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlcnJvcik7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgZ19zZXRfZXJyb3IgKGVy cm9yLAotKyAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SLAotKyAgICAgICAgICAgICAgICAg R19EQlVTX0VSUk9SX0ZBSUxFRCwKLSsgICAgICAgICAgICAgICAgICJzZXJ2aWNlX2dldF9wcm9w ZXJ0eSByZWNlaXZlZCBhbiB1bmtub3duIHByb3BlcnR5OiAlcyIsCi0rICAgICAgICAgICAgICAg ICBwcm9wZXJ0eV9uYW1lID8gcHJvcGVydHlfbmFtZSA6ICIobnVsbCkiKTsKLSsgICAgZ19yZXR1 cm5fdmFsX2lmX3JlYWNoZWQgKE5VTEwpOwotK30KLSsKLStzdGF0aWMgZ2Jvb2xlYW4KLSBfaWNf c2V0X2NvbnRlbnRfdHlwZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotLSAgICAgICAgICAg ICAgICAgICAgICBHVmFyaWFudCAgICAgICAgKnZhbHVlKQotKyAgICAgICAgICAgICAgICAgICAg ICBHVmFyaWFudCAgICAgICAgKnZhbHVlLAotKyAgICAgICAgICAgICAgICAgICAgICBHRXJyb3Ig ICAgICAgICAqKmVycm9yKQotIHsKLSAgICAgZ3VpbnQgcHVycG9zZSA9IDA7Ci0gICAgIGd1aW50 IGhpbnRzID0gMDsKLSsgICAgZ2Jvb2xlYW4gcmV0dmFsID0gVFJVRTsKLSAKLSAgICAgZ192YXJp YW50X2dldCAodmFsdWUsICIodXUpIiwgJnB1cnBvc2UsICZoaW50cyk7Ci0gICAgIGlmIChwdXJw b3NlICE9IGNvbnRleHQtPnB1cnBvc2UgfHwgaGludHMgIT0gY29udGV4dC0+aGludHMpIHsKLS0g ICAgICAgIEdFcnJvciAqZXJyb3I7Ci0tICAgICAgICBnYm9vbGVhbiByZXR2YWw7Ci0gCi0gICAg ICAgICBjb250ZXh0LT5wdXJwb3NlID0gcHVycG9zZTsKLSAgICAgICAgIGNvbnRleHQtPmhpbnRz ID0gaGludHM7Ci1AQCAtMTQwMCwyNCArMTU0NywzMCBAQCBfaWNfc2V0X2NvbnRlbnRfdHlwZSAo QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRleHQtPmhpbnRzKTsKLSAgICAgICAgIH0KLSAKLS0gICAgICAgIGVycm9yID0gTlVMTDsKLSAg ICAgICAgIHJldHZhbCA9IGJ1c19pbnB1dF9jb250ZXh0X3Byb3BlcnR5X2NoYW5nZWQgKGNvbnRl eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiQ29udGVudFR5cGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFsdWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmZXJyb3IpOwotLSAgICAgICAgaWYgKCFyZXR2YWwpIHsKLS0g ICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gZW1pdCBQcm9wZXJ0aWVzQ2hhbmdlZCBz aWduYWw6ICVzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgIGVycm9yLT5tZXNzYWdlKTsKLS0g ICAgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgIH0KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKTsKLSAgICAg fQotKyAgICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLS1zdGF0aWMgdm9pZAotK3N0YXRpYyBnYm9v bGVhbgotIF9pY19zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IChCdXNJbnB1dENvbnRleHQgKmNv bnRleHQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAq dmFsdWUpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAq dmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICoq ZXJyb3IpCi0gewotICAgICBnX3ZhcmlhbnRfZ2V0ICh2YWx1ZSwgIihiKSIsICZjb250ZXh0LT5j bGllbnRfY29tbWl0X3ByZWVkaXQpOwotKyAgICByZXR1cm4gVFJVRTsKLSt9Ci0rCi0rc3RhdGlj IGdib29sZWFuCi0rX2ljX3NldF91c2VfcG9zdF9wcm9jZXNzX2tleV9ldmVudCAoQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdW YXJpYW50ICAgICAgICAqdmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0Vycm9yICAgICAgICAgKiplcnJvcikKLSt7Ci0rICAgIGdfdmFyaWFudF9nZXQgKHZhbHVl LCAiKGIpIiwgJmNvbnRleHQtPnVzZV9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50KTsKLSsgICAgcmV0 dXJuIFRSVUU7Ci0gfQotIAotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTE0MzAsNiArMTU4MywxOCBA QCBidXNfaW5wdXRfY29udGV4dF9zZXJ2aWNlX3NldF9wcm9wZXJ0eSAoSUJ1c1NlcnZpY2UgICAg ICpzZXJ2aWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFy aWFudCAgICAgICAgKnZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHRXJyb3IgICAgICAgICAqKmVycm9yKQotIHsKLSsgICAgaW50IGk7Ci0rICAgIHN0YXRp YyBjb25zdCBzdHJ1Y3QgewotKyAgICAgICAgY29uc3QgY2hhciAqcHJvcGVydHlfbmFtZTsKLSsg ICAgICAgIGdib29sZWFuICgqIHByb3BlcnR5X2NhbGxiYWNrKSAoQnVzSW5wdXRDb250ZXh0ICos Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICosCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAqKik7Ci0rICAg IH0gcHJvcGVydGllcyBbXSA9ICB7Ci0rICAgICAgICB7ICJDb250ZW50VHlwZSIsICAgICAgICAg ICAgICAgICAgIF9pY19zZXRfY29udGVudF90eXBlIH0sCi0rICAgICAgICB7ICJDbGllbnRDb21t aXRQcmVlZGl0IiwgICAgICAgICAgIF9pY19zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IH0sCi0r ICAgICAgICB7ICJFZmZlY3RpdmVQb3N0UHJvY2Vzc0tleUV2ZW50IiwgIF9pY19zZXRfdXNlX3Bv c3RfcHJvY2Vzc19rZXlfZXZlbnQgfSwKLSsgICAgfTsKLSsKLSAgICAgaWYgKGVycm9yKQotICAg ICAgICAgKmVycm9yID0gTlVMTDsKLSAgICAgaWYgKGdfc3RyY21wMCAoaW50ZXJmYWNlX25hbWUs IElCVVNfSU5URVJGQUNFX0lOUFVUX0NPTlRFWFQpICE9IDApIHsKLUBAIC0xNDYwLDE0ICsxNjI1 LDEyIEBAIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2Vfc2V0X3Byb3BlcnR5IChJQnVzU2Vydmlj ZSAgICAgKnNlcnZpY2UsCi0gICAgICAgICAgICAgICAgICAgICAgIiAiKTsKLSAgICAgICAgIHJl dHVybiBGQUxTRTsKLSAgICAgfQotLQotLSAgICBpZiAoZ19zdHJjbXAwIChwcm9wZXJ0eV9uYW1l LCAiQ29udGVudFR5cGUiKSA9PSAwKSB7Ci0tICAgICAgICBfaWNfc2V0X2NvbnRlbnRfdHlwZSAo QlVTX0lOUFVUX0NPTlRFWFQgKHNlcnZpY2UpLCB2YWx1ZSk7Ci0tICAgICAgICByZXR1cm4gVFJV RTsKLS0gICAgfQotLSAgICBpZiAoZ19zdHJjbXAwIChwcm9wZXJ0eV9uYW1lLCAiQ2xpZW50Q29t bWl0UHJlZWRpdCIpID09IDApIHsKLS0gICAgICAgIF9pY19zZXRfY2xpZW50X2NvbW1pdF9wcmVl ZGl0IChCVVNfSU5QVVRfQ09OVEVYVCAoc2VydmljZSksIHZhbHVlKTsKLS0gICAgICAgIHJldHVy biBUUlVFOwotKyAgICBmb3IgKGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTIChwcm9wZXJ0aWVzKTsg aSsrKSB7Ci0rICAgICAgICBpZiAoZ19zdHJjbXAwIChwcm9wZXJ0aWVzW2ldLnByb3BlcnR5X25h bWUsIHByb3BlcnR5X25hbWUpID09IDApIHsKLSsgICAgICAgICAgICByZXR1cm4gcHJvcGVydGll c1tpXS5wcm9wZXJ0eV9jYWxsYmFjayAoKEJ1c0lucHV0Q29udGV4dCAqKSBzZXJ2aWNlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJy b3IpOwotKyAgICAgICAgfQotICAgICB9Ci0gCi0gICAgIGdfc2V0X2Vycm9yIChlcnJvciwKLUBA IC0yMjA0LDcgKzIzNjcsMjMgQEAgX2VuZ2luZV9mb3J3YXJkX2tleV9ldmVudF9jYiAoQnVzRW5n aW5lUHJveHkgICAgKmVuZ2luZSwKLSAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhU IChjb250ZXh0KSk7Ci0gCi0gICAgIGdfYXNzZXJ0IChjb250ZXh0LT5lbmdpbmUgPT0gZW5naW5l KTsKLS0KLSsgICAgZ19hc3NlcnQgKGNvbnRleHQtPnF1ZXVlX2R1cmluZ19wcm9jZXNzX2tleV9l dmVudCk7Ci0rCi0rICAgIGlmIChjb250ZXh0LT5wcm9jZXNzaW5nX2tleV9ldmVudCAmJiBnX3F1 ZXVlX2dldF9sZW5ndGggKAotKyAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5xdWV1ZV9kdXJp bmdfcHJvY2Vzc19rZXlfZXZlbnQpIDw9IE1BWF9TWU5DX0RBVEEpIHsKLSsgICAgICAgIFN5bmNG b3J3YXJkaW5nRGF0YSAqZGF0YTsKLSsgICAgICAgIElCdXNUZXh0ICp0ZXh0ID0gaWJ1c190ZXh0 X25ld19mcm9tX3ByaW50ZiAoIiV1LCV1LCV1IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSk7Ci0rICAg ICAgICBpZiAoZ19xdWV1ZV9nZXRfbGVuZ3RoIChjb250ZXh0LT5xdWV1ZV9kdXJpbmdfcHJvY2Vz c19rZXlfZXZlbnQpCi0rICAgICAgICAgICAgPT0gTUFYX1NZTkNfREFUQSkgewotKyAgICAgICAg ICAgIGdfd2FybmluZyAoIkV4Y2VlZCBtYXggbnVtYmVyIG9mIHBvc3QgcHJvY2Vzc19rZXlfZXZl bnQgZGF0YSIpOwotKyAgICAgICAgfQotKyAgICAgICAgZGF0YSA9IGdfc2xpY2VfbmV3IChTeW5j Rm9yd2FyZGluZ0RhdGEpOwotKyAgICAgICAgZGF0YS0+a2V5ID0gJ2YnOwotKyAgICAgICAgZGF0 YS0+dGV4dCA9IHRleHQ7Ci0rICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoY29udGV4dC0+cXVl dWVfZHVyaW5nX3Byb2Nlc3Nfa2V5X2V2ZW50LCBkYXRhKTsKLSsgICAgICAgIHJldHVybjsKLSsg ICAgfQotICAgICBidXNfaW5wdXRfY29udGV4dF9lbWl0X3NpZ25hbCAoY29udGV4dCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3J3YXJkS2V5RXZlbnQiLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIih1dXUpIiwKLUBA IC0yNDU1LDYgKzI2MzQsNyBAQCBidXNfaW5wdXRfY29udGV4dF9uZXcgKEJ1c0Nvbm5lY3Rpb24g ICAgKmNvbm5lY3Rpb24sCi0gCi0gICAgIC8qIGl0IGlzIGEgZmFrZSBpbnB1dCBjb250ZXh0LCBq dXN0IG5lZWQgcHJvY2VzcyBob3RrZXkgKi8KLSAgICAgY29udGV4dC0+ZmFrZSA9IChzdHJuY21w IChjbGllbnQsICJmYWtlIiwgNCkgPT0gMCk7Ci0rICAgIGNvbnRleHQtPnF1ZXVlX2R1cmluZ19w cm9jZXNzX2tleV9ldmVudCA9IGdfcXVldWVfbmV3ICgpOwotIAotICAgICBpZiAoY29ubmVjdGlv bikgewotICAgICAgICAgZ19vYmplY3RfcmVmX3NpbmsgKGNvbm5lY3Rpb24pOwotQEAgLTI5Mzgs MTEgKzMxMTgsMTcgQEAgYnVzX2lucHV0X2NvbnRleHRfc2V0X2NvbnRlbnRfdHlwZSAoQnVzSW5w dXRDb250ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGd1aW50ICAgICAgICAgICAgaGludHMpCi0gewotICAgICBHVmFyaWFudCAqdmFsdWU7Ci0rICAg IEdFcnJvciAqZXJyb3IgPSBOVUxMOwotIAotICAgICBnX2Fzc2VydCAoQlVTX0lTX0lOUFVUX0NP TlRFWFQgKGNvbnRleHQpKTsKLSAKLSAgICAgdmFsdWUgPSBnX3ZhcmlhbnRfcmVmX3NpbmsgKGdf dmFyaWFudF9uZXcgKCIodXUpIiwgcHVycG9zZSwgaGludHMpKTsKLS0gICAgX2ljX3NldF9jb250 ZW50X3R5cGUgKGNvbnRleHQsIHZhbHVlKTsKLSsgICAgX2ljX3NldF9jb250ZW50X3R5cGUgKGNv bnRleHQsIHZhbHVlLCAmZXJyb3IpOwotKyAgICBpZiAoZXJyb3IpIHsKLSsgICAgICAgIGdfd2Fy bmluZyAoIkZhaWxlZCB0byBlbWl0IFByb3BlcnRpZXNDaGFuZ2VkIHNpZ25hbDogJXMiLAotKyAg ICAgICAgICAgICAgICAgICBlcnJvci0+bWVzc2FnZSk7Ci0rICAgICAgICBnX2Vycm9yX2ZyZWUg KGVycm9yKTsKLSsgICAgfQotICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZhbHVlKTsKLSB9Ci0gCi1A QCAtMjk1MiwxMiArMzEzOCwyNCBAQCBidXNfaW5wdXRfY29udGV4dF9jb21taXRfdGV4dF91c2Vf ZXh0ZW5zaW9uIChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICB1c2VfZXh0ZW5zaW9u KQotIHsKLSAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0r ICAgIGdfYXNzZXJ0IChjb250ZXh0LT5xdWV1ZV9kdXJpbmdfcHJvY2Vzc19rZXlfZXZlbnQpOwot IAotICAgICBpZiAodGV4dCA9PSB0ZXh0X2VtcHR5IHx8IHRleHQgPT0gTlVMTCkKLSAgICAgICAg IHJldHVybjsKLSAKLSAgICAgaWYgKHVzZV9leHRlbnNpb24gJiYgY29udGV4dC0+ZW1vamlfZXh0 ZW5zaW9uKSB7Ci0gICAgICAgICBidXNfcGFuZWxfcHJveHlfY29tbWl0X3RleHRfcmVjZWl2ZWQg KGNvbnRleHQtPmVtb2ppX2V4dGVuc2lvbiwgdGV4dCk7Ci0rICAgIH0gZWxzZSBpZiAoY29udGV4 dC0+cHJvY2Vzc2luZ19rZXlfZXZlbnQgJiYgZ19xdWV1ZV9nZXRfbGVuZ3RoICgKLSsgICAgICAg ICAgICAgICAgICAgY29udGV4dC0+cXVldWVfZHVyaW5nX3Byb2Nlc3Nfa2V5X2V2ZW50KSA8PSBN QVhfU1lOQ19EQVRBKSB7Ci0rICAgICAgICBTeW5jRm9yd2FyZGluZ0RhdGEgKmRhdGE7Ci0rICAg ICAgICBpZiAoZ19xdWV1ZV9nZXRfbGVuZ3RoIChjb250ZXh0LT5xdWV1ZV9kdXJpbmdfcHJvY2Vz c19rZXlfZXZlbnQpCi0rICAgICAgICAgICAgPT0gTUFYX1NZTkNfREFUQSkgewotKyAgICAgICAg ICAgIGdfd2FybmluZyAoIkV4Y2VlZCBtYXggbnVtYmVyIG9mIHN5bmMgcHJvY2Vzc19rZXlfZXZl bnQgZGF0YSIpOwotKyAgICAgICAgfQotKyAgICAgICAgZGF0YSA9IGdfc2xpY2VfbmV3IChTeW5j Rm9yd2FyZGluZ0RhdGEpOwotKyAgICAgICAgZGF0YS0+a2V5ID0gJ2MnOwotKyAgICAgICAgZGF0 YS0+dGV4dCA9IGdfb2JqZWN0X3JlZiAodGV4dCk7Ci0rICAgICAgICBnX3F1ZXVlX3B1c2hfdGFp bCAoY29udGV4dC0+cXVldWVfZHVyaW5nX3Byb2Nlc3Nfa2V5X2V2ZW50LCBkYXRhKTsKLSAgICAg fSBlbHNlIHsKLSAgICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0gaWJ1c19zZXJpYWxpemFibGVf c2VyaWFsaXplICgKLSAgICAgICAgICAgICAgICAgKElCdXNTZXJpYWxpemFibGUgKil0ZXh0KTsK LWRpZmYgLS1naXQgYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgYi9jbGllbnQvZ3RrMi9p YnVzaW1jb250ZXh0LmMKLWluZGV4IGVhODI3MGJiLi43Y2NjMTI5ZCAxMDA2NDQKLS0tLSBhL2Ns aWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotKysrIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4 dC5jCi1AQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyBndWludCAgICBfc2lnbmFsX2RlbGV0ZV9z dXJyb3VuZGluZ19pZCA9IDA7Ci0gc3RhdGljIGd1aW50ICAgIF9zaWduYWxfcmV0cmlldmVfc3Vy cm91bmRpbmdfaWQgPSAwOwotIAotICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCi0t c3RhdGljIGNoYXIgX3VzZV9zeW5jX21vZGUgPSAyOwotK3N0YXRpYyBjaGFyIF91c2Vfc3luY19t b2RlID0gMTsKLSAjZWxzZQotIHN0YXRpYyBjb25zdCBnY2hhciAqX25vX3Nub29wZXJfYXBwcyA9 IE5PX1NOT09QRVJfQVBQUzsKLSBzdGF0aWMgZ2Jvb2xlYW4gX3VzZV9rZXlfc25vb3BlciA9IEVO QUJMRV9TTk9PUEVSOwotQEAgLTM4Niw2ICszODYsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Ci0gICAg IGdib29sZWFuICByZXR2YWw7Ci0gfSBQcm9jZXNzS2V5RXZlbnRSZXBseURhdGE7Ci0gCi0rCi0g c3RhdGljIHZvaWQKLSBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpvYmpl Y3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAqcmVzLAotQEAgLTQz NSw2ICs0MzYsNyBAQCBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpvYmpl Y3QsCi0gI2VuZGlmCi0gfQotIAotKwotIHN0YXRpYyB2b2lkCi0gX3Byb2Nlc3Nfa2V5X2V2ZW50 X3JlcGx5X2RvbmUgKEdPYmplY3QgICAgICAqb2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlcywKLUBAIC00NTcsNiArNDU5LDcgQEAgX3Byb2Nl c3Nfa2V5X2V2ZW50X3JlcGx5X2RvbmUgKEdPYmplY3QgICAgICAqb2JqZWN0LAotICAgICBnX3Nv dXJjZV9yZW1vdmUgKGRhdGEtPmNvdW50X2NiX2lkKTsKLSB9Ci0gCi0rCi0gc3RhdGljIGdib29s ZWFuCi0gX3Byb2Nlc3Nfa2V5X2V2ZW50X2NvdW50X2NiIChncG9pbnRlciB1c2VyX2RhdGEpCi0g ewotQEAgLTQ3Miw2ICs0NzUsMTAxIEBAIF9wcm9jZXNzX2tleV9ldmVudF9jb3VudF9jYiAoZ3Bv aW50ZXIgdXNlcl9kYXRhKQotICAgICByZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7Ci0gfQotIAot KwotK3N0YXRpYyBnYm9vbGVhbgotK19wcm9jZXNzX2tleV9ldmVudF9zeW5jIChJQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAg ICAgICBrZXl2YWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAg IGtleWNvZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgIHN0 YXRlKQotK3sKLSsgICAgZ2Jvb2xlYW4gcmV0dmFsOwotKwotKyAgICBnX2Fzc2VydCAoSUJVU19J U19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0rICAgIHJldHZhbCA9IGlidXNfaW5wdXRfY29u dGV4dF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWwsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5Y29kZSAtIDgsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUpOwotKyAgICBp YnVzX2lucHV0X2NvbnRleHRfcG9zdF9wcm9jZXNzX2tleV9ldmVudCAoY29udGV4dCk7Ci0rICAg IHJldHVybiByZXR2YWw7Ci0rfQotKwotKwotK3N0YXRpYyBnYm9vbGVhbgotK19wcm9jZXNzX2tl eV9ldmVudF9hc3luYyAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgIGtleXZhbCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgIGd1aW50ICAgICAgICAgICAgIGtleWNvZGUsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBndWludCAgICAgICAgICAgICBzdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgIEdka0V2ZW50ICAgICAgICAgKmV2ZW50LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg SUJ1c0lNQ29udGV4dCAgICAqaWJ1c2ltY29udGV4dCkKLSt7Ci0rICAgIFByb2Nlc3NLZXlFdmVu dERhdGEgKmRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudERhdGEpOwotKwotKyAg ICBnX2Fzc2VydCAoZXZlbnQpOwotKyAgICBpZiAoIWRhdGEpIHsKLSsgICAgICAgIGdfd2Fybmlu ZyAoIkNhbm5vdCBhbGxvY2F0ZSBhc3luYyBkYXRhIik7Ci0rICAgICAgICByZXR1cm4gX3Byb2Nl c3Nfa2V5X2V2ZW50X3N5bmMgKGNvbnRleHQsIGtleXZhbCwga2V5Y29kZSwgc3RhdGUpOwotKyAg ICB9Ci0rI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKLSsgICAgZGF0YS0+ZXZlbnQg PSBnZGtfZXZlbnRfcmVmIChldmVudCk7Ci0rI2Vsc2UKLSsgICAgZGF0YS0+ZXZlbnQgPSBnZGtf ZXZlbnRfY29weSAoZXZlbnQpOwotKyNlbmRpZgotKyAgICBkYXRhLT5pYnVzaW1jb250ZXh0ID0g aWJ1c2ltY29udGV4dDsKLSsgICAgaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50 X2FzeW5jIChjb250ZXh0LAotKyAgICAgICAgICAgIGtleXZhbCwKLSsgICAgICAgICAgICBrZXlj b2RlIC0gOCwKLSsgICAgICAgICAgICBzdGF0ZSwKLSsgICAgICAgICAgICAtMSwKLSsgICAgICAg ICAgICBOVUxMLAotKyAgICAgICAgICAgIF9wcm9jZXNzX2tleV9ldmVudF9kb25lLAotKyAgICAg ICAgICAgIGRhdGEpOwotKwotKyAgICByZXR1cm4gVFJVRTsKLSt9Ci0rCi0rCi0rc3RhdGljIGdi b29sZWFuCi0rX3Byb2Nlc3Nfa2V5X2V2ZW50X2h5YnJpZF9hc3luYyAoSUJ1c0lucHV0Q29udGV4 dCAqY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAg ICAgICAgICBrZXl2YWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQg ICAgICAgICAgICAga2V5Y29kZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn dWludCAgICAgICAgICAgICBzdGF0ZSkKLSt7Ci0rICAgIEdTb3VyY2UgKnNvdXJjZSA9IGdfdGlt ZW91dF9zb3VyY2VfbmV3ICgxKTsKLSsgICAgUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhICpkYXRh ID0gTlVMTDsKLSsgICAgZ2Jvb2xlYW4gcmV0dmFsID0gRkFMU0U7Ci0rCi0rICAgIGlmIChzb3Vy Y2UpCi0rICAgICAgICBkYXRhID0gZ19zbGljZV9uZXcwIChQcm9jZXNzS2V5RXZlbnRSZXBseURh dGEpOwotKyAgICBpZiAoIWRhdGEpIHsKLSsgICAgICAgIGdfd2FybmluZyAoIkNhbm5vdCB3YWl0 IGZvciB0aGUgcmVwbHkgb2YgdGhlIHByb2Nlc3Mga2V5IGV2ZW50LiIpOwotKyAgICAgICAgcmV0 dmFsID0gX3Byb2Nlc3Nfa2V5X2V2ZW50X3N5bmMgKGNvbnRleHQsIGtleXZhbCwga2V5Y29kZSwg c3RhdGUpOwotKyAgICAgICAgaWYgKHNvdXJjZSkKLSsgICAgICAgICAgICBnX3NvdXJjZV9kZXN0 cm95IChzb3VyY2UpOwotKyAgICAgICAgcmV0dXJuIHJldHZhbDsKLSsgICAgfQotKyAgICBkYXRh LT5jb3VudCA9IDE7Ci0rICAgIGdfc291cmNlX2F0dGFjaCAoc291cmNlLCBOVUxMKTsKLSsgICAg Z19zb3VyY2VfdW5yZWYgKHNvdXJjZSk7Ci0rICAgIGRhdGEtPmNvdW50X2NiX2lkID0gZ19zb3Vy Y2VfZ2V0X2lkIChzb3VyY2UpOwotKyAgICBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlf ZXZlbnRfYXN5bmMgKGNvbnRleHQsCi0rICAgICAgICAgICAga2V5dmFsLAotKyAgICAgICAgICAg IGtleWNvZGUgLSA4LAotKyAgICAgICAgICAgIHN0YXRlLAotKyAgICAgICAgICAgIC0xLAotKyAg ICAgICAgICAgIE5VTEwsCi0rICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50X3JlcGx5X2Rv bmUsCi0rICAgICAgICAgICAgZGF0YSk7Ci0rICAgIGdfc291cmNlX3NldF9jYWxsYmFjayAoc291 cmNlLCBfcHJvY2Vzc19rZXlfZXZlbnRfY291bnRfY2IsIGRhdGEsIE5VTEwpOwotKyAgICB3aGls ZSAoZGF0YS0+Y291bnQpCi0rICAgICAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKE5VTEws IFRSVUUpOwotKyAgICAvKiAjMjQ5OCBDaGVja2luZyBzb3VyY2UtPnJlZl9jb3VudCBtaWdodCBj YXVzZSBOYXV0aWx1cyBoYW5nIHVwCi0rICAgICAqLwotKyAgICByZXR2YWwgPSBkYXRhLT5yZXR2 YWw7Ci0rICAgIGdfc2xpY2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsK LSsgICAgcmV0dXJuIHJldHZhbDsKLSt9Ci0rCi0rCi0gc3RhdGljIGdib29sZWFuCi0gX3Byb2Nl c3Nfa2V5X2V2ZW50IChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICNpZiBHVEtfQ0hFQ0tf VkVSU0lPTiAoMywgOTgsIDQpCi1AQCAtNTA1LDcwICs2MDMsMjAgQEAgX3Byb2Nlc3Nfa2V5X2V2 ZW50IChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotIAotICAgICBzd2l0Y2ggKF91c2Vfc3lu Y19tb2RlKSB7Ci0gICAgIGNhc2UgMTogewotLSAgICAgICAgcmV0dmFsID0gaWJ1c19pbnB1dF9j b250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50IChjb250ZXh0LAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWwsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleWNvZGUgLSA4LAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGF0ZSk7Ci0rICAgICAgICByZXR2YWwgPSBfcHJvY2Vzc19rZXlfZXZlbnRfc3luYyAoY29udGV4 dCwga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSk7Ci0gICAgICAgICBicmVhazsKLSAgICAgfQotICAg ICBjYXNlIDI6IHsKLS0gICAgICAgIEdTb3VyY2UgKnNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2Vf bmV3ICgxKTsKLS0gICAgICAgIFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSAqZGF0YSA9IE5VTEw7 Ci0tCi0tICAgICAgICBpZiAoc291cmNlKQotLSAgICAgICAgICAgIGRhdGEgPSBnX3NsaWNlX25l dzAgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSk7Ci0tICAgICAgICBpZiAoIWRhdGEpIHsKLS0g ICAgICAgICAgICBnX3dhcm5pbmcgKCJDYW5ub3Qgd2FpdCBmb3IgdGhlIHJlcGx5IG9mIHRoZSBw cm9jZXNzIGtleSBldmVudC4iKTsKLS0gICAgICAgICAgICByZXR2YWwgPSBpYnVzX2lucHV0X2Nv bnRleHRfcHJvY2Vzc19rZXlfZXZlbnQgKGNvbnRleHQsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWwsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXljb2Rl IC0gOCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXRlKTsKLS0gICAgICAgICAgICBpZiAoc291cmNlKQotLSAgICAgICAgICAg ICAgICBnX3NvdXJjZV9kZXN0cm95IChzb3VyY2UpOwotLSAgICAgICAgICAgIGJyZWFrOwotLSAg ICAgICAgfQotLSAgICAgICAgZGF0YS0+Y291bnQgPSAxOwotLSAgICAgICAgZ19zb3VyY2VfYXR0 YWNoIChzb3VyY2UsIE5VTEwpOwotLSAgICAgICAgZ19zb3VyY2VfdW5yZWYgKHNvdXJjZSk7Ci0t ICAgICAgICBkYXRhLT5jb3VudF9jYl9pZCA9IGdfc291cmNlX2dldF9pZCAoc291cmNlKTsKLS0g ICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudF9hc3luYyAoY29udGV4 dCwKLS0gICAgICAgICAgICBrZXl2YWwsCi0tICAgICAgICAgICAga2V5Y29kZSAtIDgsCi0tICAg ICAgICAgICAgc3RhdGUsCi0tICAgICAgICAgICAgLTEsCi0tICAgICAgICAgICAgTlVMTCwKLS0g ICAgICAgICAgICBfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSwKLS0gICAgICAgICAgICBk YXRhKTsKLS0gICAgICAgIGdfc291cmNlX3NldF9jYWxsYmFjayAoc291cmNlLCBfcHJvY2Vzc19r ZXlfZXZlbnRfY291bnRfY2IsIGRhdGEsIE5VTEwpOwotLSAgICAgICAgd2hpbGUgKGRhdGEtPmNv dW50KQotLSAgICAgICAgICAgIGdfbWFpbl9jb250ZXh0X2l0ZXJhdGlvbiAoTlVMTCwgVFJVRSk7 Ci0tICAgICAgICBpZiAoc291cmNlLT5yZWZfY291bnQgPiAwKSB7Ci0tICAgICAgICAgICAgLyog Z19zb3VyY2VfZ2V0X2lkKCkgY291bGQgY2F1c2VzIGEgU0VHViAqLwotLSAgICAgICAgICAgIGdf aW5mbyAoIkJyb2tlbiBHU291cmNlLnJlZl9jb3VudCBhbmQgbWF5YmUgYSB0aW1pbmcgaXNzdWUg aW4gJXAuIiwKLS0gICAgICAgICAgICAgICAgICAgIHNvdXJjZSk7Ci0tICAgICAgICB9Ci0tICAg ICAgICByZXR2YWwgPSBkYXRhLT5yZXR2YWw7Ci0tICAgICAgICBnX3NsaWNlX2ZyZWUgKFByb2Nl c3NLZXlFdmVudFJlcGx5RGF0YSwgZGF0YSk7Ci0rICAgICAgICByZXR2YWwgPSBfcHJvY2Vzc19r ZXlfZXZlbnRfaHlicmlkX2FzeW5jIChjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBrZXljb2RlLCBzdGF0ZSk7Ci0gICAg ICAgICBicmVhazsKLSAgICAgfQotICAgICBkZWZhdWx0OiB7Ci0tICAgICAgICBQcm9jZXNzS2V5 RXZlbnREYXRhICpkYXRhID0gZ19zbGljZV9uZXcwIChQcm9jZXNzS2V5RXZlbnREYXRhKTsKLS0j aWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQotLSAgICAgICAgZGF0YS0+ZXZlbnQgPSBn ZGtfZXZlbnRfcmVmIChldmVudCk7Ci0tI2Vsc2UKLS0gICAgICAgIGRhdGEtPmV2ZW50ID0gZ2Rr X2V2ZW50X2NvcHkgKChHZGtFdmVudCAqKWV2ZW50KTsKLS0jZW5kaWYKLS0gICAgICAgIGRhdGEt PmlidXNpbWNvbnRleHQgPSBpYnVzaW1jb250ZXh0OwotLSAgICAgICAgaWJ1c19pbnB1dF9jb250 ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50X2FzeW5jIChjb250ZXh0LAotLSAgICAgICAgICAgIGtleXZh bCwKLS0gICAgICAgICAgICBrZXljb2RlIC0gOCwKLS0gICAgICAgICAgICBzdGF0ZSwKLS0gICAg ICAgICAgICAtMSwKLS0gICAgICAgICAgICBOVUxMLAotLSAgICAgICAgICAgIF9wcm9jZXNzX2tl eV9ldmVudF9kb25lLAotLSAgICAgICAgICAgIGRhdGEpOwotLQotLSAgICAgICAgcmV0dmFsID0g VFJVRTsKLSsgICAgICAgIHJldHZhbCA9IF9wcm9jZXNzX2tleV9ldmVudF9hc3luYyAoY29udGV4 dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBr ZXljb2RlLCBzdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKEdka0V2ZW50ICopZXZlbnQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlidXNpbWNvbnRleHQpOwotKyAgICAgICAgYnJlYWs7Ci0gICAgIH0KLSAgICAg fQotIAotQEAgLTg3Nyw3ICs5MjUsNTUgQEAgaWJ1c19pbV9jb250ZXh0X2NsYXNzX2luaXQgKElC dXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCi0gICAgIGdfYXNzZXJ0IChfc2lnbmFsX3JldHJpZXZl X3N1cnJvdW5kaW5nX2lkICE9IDApOwotIAotICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgs IDQpCi0tICAgIF91c2Vfc3luY19tb2RlID0gX2dldF9jaGFyX2VudiAoIklCVVNfRU5BQkxFX1NZ TkNfTU9ERSIsIDIpOwotKyAgICAvKiBJQnVzIEd0a0lNTW9kdWxlLCBRdElNTW9kbHVlLCBpYnVz LXgxMSwgaWJ1cy13YXlsYW5kIGFyZSBjYWxsZWQgYXMKLSsgICAgICogSUJ1cyBjbGllbnRzLgot KyAgICAgKiBFYWNoIEdUSyBhcHBsaWNhdGlvbiwgZWFjaCBRVCBhcHBsaWNhdGlvbiwgWG9yZyBz ZXJ2ZXIsIFdheWxhbmQKLSsgICAgICogY29tcHBzaXRvciBhcmUgY2FsbGVkIGFzIElCdXMgZXZl bnQgb3duZXJzIGhlcmUuCi0rICAgICAqCi0rICAgICAqIFRoZSBJQnVzIGNsaWVudCBwcm9jZXNz ZXMgdGhlIGtleSBldmVudHMgYmV0d2VlbiB0aGUgSUJ1cyBldmVudCBvd25lcgotKyAgICAgKiBh bmQgdGhlIElCdXMgZGFlbW9uIGFuZCB0aGUgcHJvY2VkdXJlIHN0ZXAgaXMgdG86Ci0rICAgICAq Ci0rICAgICAqIHJlY2VpdmUgdGhlIGtleSBldmVudCBmcm9tIHRoZSBJQnVzIGV2ZW50IG93bmVy IGFuZCBmb3J3YXJkIHRoZQotKyAgICAgKiBldmVudCB0byB0aGUgSUJ1cyBkYWVtb24gd2l0aCB0 aGUgIlByb2Nlc3NLZXlFdmVudCIgRC1CdXMgbWV0aG9kIGF0Ci0rICAgICAqIGZpcnN0LAotKyAg ICAgKgotKyAgICAgKiByZWNlaXZlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgSUJ1cyBkYWVt b24gd2l0aCB0aGUgIlByb2Vzc0tleUV2ZW50IgotKyAgICAgKiBELUJ1cyBtZXRob2QgYW5kIGZv cndhcmQgdGhlIHZhbHVlIHRvIHRoZSBJQnVzIGV2ZW50IG93bmVyIHNlY29uZGx5IGFuZAotKyAg ICAgKiB0aGUgcmV0dXJuIHZhbHVlIGluY2x1ZGVzIGlmIHRoZSBrZXkgZXZlbnQgaXMgcHJvY2Vz c2VkIG5vcm1hbGx5IG9yIG5vdC4KLSsgICAgICoKLSsgICAgICogVGhlIHByb2NlZHVyZSBiZWhh dmlvciBjYW4gYmUgY2hhbmdlZCBieSB0aGUgIklCVVNfRU5BQkxFX1NZTkNfTU9ERSIKLSsgICAg ICogZW52aXJvbm1lbnQgdmFyaWFibGUgd2l0aCB0aGUgc3luY2hyb25vdXMgcHJvY2VkdXJlIG9y IGFzeW5jaHJvbm91cwotKyAgICAgKiBvbmUgYW5kIHZhbHVlIGlzOgotKyAgICAgKgotKyAgICAg KiAxOiBTeW5jaHJvbm91cyBwcm9jZXNzIGtleSBldmVudDoKLSsgICAgICogICAgV2FpdCBmb3Ig dGhlIHJldHVybiBvZiB0aGUgSUJ1cyAiUHJvY2Vzc0tleUV2ZW50IiBELUJ1cyBtZXRob2QKLSsg ICAgICogICAgc3luY2hyb25vdXNseSBhbmQgZm9yd2FyZCB0aGUgcmV0dXJuIHZhbHVlIHRvIHRo ZSBJQnVzIGV2ZW50IG93bmVyCi0rICAgICAqICAgIHN5bmNocm9ub3VzbHkuCi0rICAgICAqIDA6 IEFzeW5jaHJvbm91cyBwcm9jZXNzIGtleSBldmVudDoKLSsgICAgICogICAgUmV0dXJuIHRvIHRo ZSBJQnVzIGV2ZW50IG93bmVyIGFzIHRoZSBrZXkgZXZlbnQgaXMgcHJvY2Vzc2VkIG5vcm1hbGx5 Ci0rICAgICAqICAgIGF0IGZpcnN0IGFzIHNvb24gYXMgdGhlIElCdXMgY2xpZW50IHJlY2VpdmVz IHRoZSBldmVudCBmcm9tIHRoZQotKyAgICAgKiAgICBJQnVzIGV2ZW50IG93bmVyIGFuZCBhbHNv IGZvcndhcmQgdGhlIGV2ZW50IHRvIHRoZSBJQnVzIGRhZW1vbiB3aXRoCi0rICAgICAqICAgIHRo ZSAiUHJvY2Vzc0tleUV2ZW50IiBELUJ1cyBtZXRob2QgYW5kIHdhaXQgZm9yIHRoZSByZXR1cm4g dmFsdWUgb2YKLSsgICAgICogICAgdGhlIEQtQnVzIG1ldGhvZCAqYXN5bmNocm9ub3VzbHkqLgot KyAgICAgKiAgICBJZiB0aGUgcmV0dXJuIHZhbHVlIGluZGljYXRlcyB0aGUga2V5IGV2ZW50IGlz IGRpc3Bvc2VkIGJ5IElCdXMsCi0rICAgICAqICAgIHRoZSBJQnVzIGNsaWVudCBkb2VzIG5vdCBw ZXJmb3JtIGFueXRoaW5nLiBPdGhlcndpc2UgdGhlIElCdXMgY2xpZW50Ci0rICAgICAqICAgIGZv cndhcmRzIHRoZSBrZXkgZXZlbnQgd2l0aCB0aGUgZ2RrX2V2ZW50X3B1dCgpIGluIEdUSzMsCi0r ICAgICAqICAgIGd0a19pbV9jb250ZXh0X2ZpbHRlcl9rZXkoKSBpbiBHVEs0LCBJTUZvcndhcmRF dmVudCgpIGluIFhJTSBBUEkuCi0rICAgICAqIDI6IEh5YnJpZCBhc3luY2hyb25vdXMgcHJvY2Vz cyBrZXkgZXZlbnQ6Ci0rICAgICAqICAgIFdhaXQgZm9yIHRoZSByZXR1cm4gb2YgdGhlIElCdXMg IlByb2Nlc3NLZXlFdmVudCIgRC1CdXMgbWV0aG9kCi0rICAgICAqICAgICphc3luY2hyb25vdXNs eSogd2l0aCBhIEdTb3VyY2UgbG9vcCBhbmQgZm9yd2FyZCB0aGUgcmV0dXJuIHZhbHVlCi0rICAg ICAqICAgIHRvIHRoZSBJQnVzIGV2ZW50IG93bmVyIHN5bmNocm9ub3VzbHkuIFNvIElCdXMgY2xp ZW50cyBwZXJmb3JtCi0rICAgICAqICAgIHZpcnR1YWxseSBzeW5jaHJvbm91c2x5IHRvIGNvdmVy IHByb2JsZW1zIG9mIElCdXMgc3luY2hyb25vdXMgQVBJcy4KLSsgICAgICoKLSsgICAgICogVGhl IHB1cnBvc2Ugb2YgdGhlIGFzeW5jaHJvbm91cyBwcm9jZXNzIGlzIHRoYXQgZWFjaCBJQnVzIGlu cHV0Ci0rICAgICAqIG1ldGhvZCBjYW4gcHJvY2VzcyB0aGUga2V5IGV2ZW50cyB3aXRob3V0IEQt QnVzIHRpbWVvdXQgYW5kIGFsc28KLSsgICAgICogdGhlIElCdXMgc3luY2hyb25vdXMgcHJvY2Vz cyBoYXMgYSBwcm9ibGVtIHRoYXQgdGhlIElCdXMKLSsgICAgICogIlByb2Nlc3NLZXlFdmVudCIg RC1CdXMgbWV0aG9kIGNhbm5vdCBzZW5kIHRoZSBjb21taXQtdGV4dCBhbmQKLSsgICAgICogZm9y d2FyLWtleS1ldmVudCBELUJ1cyBzaWduYWxzIHVudGlsIHRoZSBELUJ1cyBtZXRob2QgaXMgZmlu aXNoZWQuCi0rICAgICAqCi0rICAgICAqIFJlbGF0aXZlIGlzc3VlczogIzE3MTMsICMyNDg2Ci0r ICAgICAqLwotKyAgICBfdXNlX3N5bmNfbW9kZSA9IF9nZXRfY2hhcl9lbnYgKCJJQlVTX0VOQUJM RV9TWU5DX01PREUiLCAxKTsKLSAjZWxzZQotICAgICBfdXNlX2tleV9zbm9vcGVyID0gIV9nZXRf Ym9vbGVhbl9lbnYgKCJJQlVTX0RJU0FCTEVfU05PT1BFUiIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIShFTkFCTEVfU05PT1BFUikpOwotQEAgLTEwMDQsOCAr MTEwMCw2IEBAIGlidXNfaW1fY29udGV4dF9pbml0IChHT2JqZWN0ICpvYmopCi0gI2Vsc2UKLSAg ICAgaWJ1c2ltY29udGV4dC0+Y2FwcyA9IElCVVNfQ0FQX1BSRUVESVRfVEVYVCB8IElCVVNfQ0FQ X0ZPQ1VTOwotICNlbmRpZgotLSAgICBpZiAoX3VzZV9zeW5jX21vZGUgPT0gMSkKLS0gICAgICAg IGlidXNpbWNvbnRleHQtPmNhcHMgfD0gSUJVU19DQVBfU1lOQ19QUk9DRVNTX0tFWV9WMjsKLSAK LSAgICAgaWJ1c2ltY29udGV4dC0+ZXZlbnRzX3F1ZXVlID0gZ19xdWV1ZV9uZXcgKCk7Ci0gCi1A QCAtMjI2NSw2ICsyMzU5LDggQEAgX2NyZWF0ZV9pbnB1dF9jb250ZXh0X2RvbmUgKElCdXNCdXMg ICAgICAgKmJ1cywKLSAgICAgZWxzZSB7Ci0gICAgICAgICBnYm9vbGVhbiByZXF1ZXN0ZWRfc3Vy cm91bmRpbmdfdGV4dCA9IEZBTFNFOwotICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9j bGllbnRfY29tbWl0X3ByZWVkaXQgKGNvbnRleHQsIFRSVUUpOwotKyAgICAgICAgaWYgKF91c2Vf c3luY19tb2RlID09IDEpCi0rICAgICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9wb3N0 X3Byb2Nlc3Nfa2V5X2V2ZW50IChjb250ZXh0LCBUUlVFKTsKLSAgICAgICAgIGlidXNpbWNvbnRl eHQtPmlidXNjb250ZXh0ID0gY29udGV4dDsKLSAKLSAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qg KGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0LAotQEAgLTI0ODksOSArMjU4NSw4IEBAIF9jcmVh dGVfZmFrZV9pbnB1dF9jb250ZXh0X2RvbmUgKElCdXNCdXMgICAgICAgKmJ1cywKLSAgICAgICAg ICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoX2lidXNfZmFrZV9jb250ZXh0X2Rlc3Ryb3lfY2Ip LAotICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAKLS0gICAgZ3VpbnQzMiBjYXBzID0g SUJVU19DQVBfUFJFRURJVF9URVhUIHwgSUJVU19DQVBfRk9DVVMgfCBJQlVTX0NBUF9TVVJST1VO RElOR19URVhUOwotLSAgICBpZiAoX3VzZV9zeW5jX21vZGUgPT0gMSkKLS0gICAgICAgIGNhcHMg fD0gSUJVU19DQVBfU1lOQ19QUk9DRVNTX0tFWV9WMjsKLSsgICAgZ3VpbnQzMiBjYXBzID0gSUJV U19DQVBfUFJFRURJVF9URVhUIHwgSUJVU19DQVBfRk9DVVMKLSsgICAgICAgICAgICAgICAgICAg fCBJQlVTX0NBUF9TVVJST1VORElOR19URVhUOwotICAgICBpYnVzX2lucHV0X2NvbnRleHRfc2V0 X2NhcGFiaWxpdGllcyAoX2Zha2VfY29udGV4dCwgY2Fwcyk7Ci0gCi0gICAgIC8qIGZvY3VzIGlu L291dCB0aGUgZmFrZSBjb250ZXh0ICovCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXNpbnB1dGNvbnRl eHQuYyBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmMKLWluZGV4IDI4YWUwNGFkLi5kZWYyM2IyNSAx MDA2NDQKLS0tLSBhL3NyYy9pYnVzaW5wdXRjb250ZXh0LmMKLSsrKyBiL3NyYy9pYnVzaW5wdXRj b250ZXh0LmMKLUBAIC0yLDcgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyog aWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5nIEh1 YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAy MiBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmln aHQgKEMpIDIwMTgtMjAyMyBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBU aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCi1AQCAtMTE5MCwxNCArMTE5MCwxNCBAQCBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2NvbnRl bnRfdHlwZSAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAgZ19hc3NlcnQgKElCVVNf SVNfSU5QVVRfQ09OVEVYVCAoY29udGV4dCkpOwotIAotICAgICBjYWNoZWRfY29udGVudF90eXBl ID0KLS0gICAgICAgIGdfZGJ1c19wcm94eV9nZXRfY2FjaGVkX3Byb3BlcnR5ICgoR0RCdXNQcm94 eSAqKSBjb250ZXh0LAotKyAgICAgICAgZ19kYnVzX3Byb3h5X2dldF9jYWNoZWRfcHJvcGVydHkg KChHREJ1c1Byb3h5ICopY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiQ29udGVudFR5cGUiKTsKLSAgICAgY29udGVudF90eXBlID0gZ192YXJpYW50 X25ldyAoIih1dSkiLCBwdXJwb3NlLCBoaW50cyk7Ci0gCi0gICAgIGdfdmFyaWFudF9yZWZfc2lu ayAoY29udGVudF90eXBlKTsKLS0gICAgaWYgKGNhY2hlZF9jb250ZW50X3R5cGUgPT0gTlVMTCB8 fAotKyAgICBpZiAoIWNhY2hlZF9jb250ZW50X3R5cGUgfHwKLSAgICAgICAgICFnX3ZhcmlhbnRf ZXF1YWwgKGNvbnRlbnRfdHlwZSwgY2FjaGVkX2NvbnRlbnRfdHlwZSkpIHsKLS0gICAgICAgIGdf ZGJ1c19wcm94eV9jYWxsICgoR0RCdXNQcm94eSAqKSBjb250ZXh0LAotKyAgICAgICAgZ19kYnVz X3Byb3h5X2NhbGwgKChHREJ1c1Byb3h5ICopY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydGllcy5TZXQiLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3N2KSIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19JTlRFUkZBQ0VfSU5QVVRfQ09OVEVY VCwKLUBAIC0xMjA5LDkgKzEyMDksMTMgQEAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jb250ZW50 X3R5cGUgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwgLyogY2FsbGJhY2sgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMICAvKiB1c2VyX2RhdGEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAg ICAgICAgLyogTmVlZCB0byB1cGRhdGUgdGhlIGNhY2hlIGJ5IG1hbnVhbCBzaW5jZSB0aGVyZSBp cyBhIHRpbWluZyBpc3N1ZS4gKi8KLSsgICAgICAgIGdfZGJ1c19wcm94eV9zZXRfY2FjaGVkX3By b3BlcnR5ICgoR0RCdXNQcm94eSAqKWNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkNvbnRlbnRUeXBlIiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUpOwotICAgICB9Ci0gCi0tICAgIGlmIChj YWNoZWRfY29udGVudF90eXBlICE9IE5VTEwpCi0rICAgIGlmIChjYWNoZWRfY29udGVudF90eXBl KQotICAgICAgICAgZ192YXJpYW50X3VucmVmIChjYWNoZWRfY29udGVudF90eXBlKTsKLSAgICAg Z192YXJpYW50X3VucmVmIChjb250ZW50X3R5cGUpOwotIH0KLUBAIC0xMzI0LDE5ICsxMzI4LDIw IEBAIHZvaWQKLSBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2NsaWVudF9jb21taXRfcHJlZWRpdCAo SUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgY2xpZW50X2NvbW1pdCkKLSB7Ci0t ICAgIEdWYXJpYW50ICpjYWNoZWRfY29udGVudF90eXBlOwotKyAgICBHVmFyaWFudCAqY2FjaGVk X3Zhcl9jbGllbnRfY29tbWl0OwotICAgICBHVmFyaWFudCAqdmFyX2NsaWVudF9jb21taXQ7Ci0g Ci0gICAgIGdfYXNzZXJ0IChJQlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSAKLS0g ICAgY2FjaGVkX2NvbnRlbnRfdHlwZSA9Ci0tICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2NhY2hl ZF9wcm9wZXJ0eSAoKEdEQnVzUHJveHkgKikgY29udGV4dCwKLSsgICAgY2FjaGVkX3Zhcl9jbGll bnRfY29tbWl0ID0KLSsgICAgICAgIGdfZGJ1c19wcm94eV9nZXRfY2FjaGVkX3Byb3BlcnR5ICgo R0RCdXNQcm94eSAqKWNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkNsaWVudENvbW1pdFByZWVkaXQiKTsKLSAgICAgdmFyX2NsaWVudF9jb21taXQg PSBnX3ZhcmlhbnRfbmV3ICgiKGIpIiwgY2xpZW50X2NvbW1pdCk7Ci0gCi0gICAgIGdfdmFyaWFu dF9yZWZfc2luayAodmFyX2NsaWVudF9jb21taXQpOwotLSAgICBpZiAoY2FjaGVkX2NvbnRlbnRf dHlwZSA9PSBOVUxMKSB7Ci0tICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkg KikgY29udGV4dCwKLSsgICAgaWYgKCFjYWNoZWRfdmFyX2NsaWVudF9jb21taXQgfHwKLSsgICAg ICAgICFnX3ZhcmlhbnRfZXF1YWwgKHZhcl9jbGllbnRfY29tbWl0LCBjYWNoZWRfdmFyX2NsaWVu dF9jb21taXQpKSB7Ci0rICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkgKilj b250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuREJ1 cy5Qcm9wZXJ0aWVzLlNldCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50 X25ldyAoIihzc3YpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJQlVTX0lOVEVSRkFDRV9JTlBVVF9DT05URVhULAotQEAgLTEzNDgsMTMgKzEzNTMsMTQ2IEBA IGlidXNfaW5wdXRfY29udGV4dF9zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0IChJQnVzSW5wdXRD b250ZXh0ICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8qIGNh bGxiYWNrICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCAgLyogdXNlcl9kYXRh ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLSsgICAgICAgIC8qIE5lZWQgdG8g dXBkYXRlIHRoZSBjYWNoZSBieSBtYW51YWwgc2luY2UgdGhlcmUgaXMgYSB0aW1pbmcgaXNzdWUu ICovCi0rICAgICAgICBnX2RidXNfcHJveHlfc2V0X2NhY2hlZF9wcm9wZXJ0eSAoKEdEQnVzUHJv eHkgKiljb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJDbGllbnRDb21taXRQcmVlZGl0IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2YXJfY2xpZW50X2NvbW1pdCk7Ci0gICAgIH0KLSAKLS0gICAgaWYgKGNhY2hl ZF9jb250ZW50X3R5cGUgIT0gTlVMTCkKLS0gICAgICAgIGdfdmFyaWFudF91bnJlZiAoY2FjaGVk X2NvbnRlbnRfdHlwZSk7Ci0rICAgIGlmIChjYWNoZWRfdmFyX2NsaWVudF9jb21taXQpCi0rICAg ICAgICBnX3ZhcmlhbnRfdW5yZWYgKGNhY2hlZF92YXJfY2xpZW50X2NvbW1pdCk7Ci0gICAgIGdf dmFyaWFudF91bnJlZiAodmFyX2NsaWVudF9jb21taXQpOwotIH0KLSAKLSt2b2lkCi0raWJ1c19p bnB1dF9jb250ZXh0X3NldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50IChJQnVzSW5wdXRDb250ZXh0 ICpjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2Jvb2xlYW4gICAgICAgICAgZW5hYmxlKQotK3sKLSsgICAgR1ZhcmlhbnQgKmNhY2hlZF92 YXJfcG9zdDsKLSsgICAgR1ZhcmlhbnQgKnZhcl9wb3N0OwotKwotKyAgICBnX2Fzc2VydCAoSUJV U19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0rCi0rICAgIGNhY2hlZF92YXJfcG9zdCA9 Ci0rICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eSAoKEdEQnVzUHJveHkg Kiljb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJF ZmZlY3RpdmVQb3N0UHJvY2Vzc0tleUV2ZW50Iik7Ci0rICAgIHZhcl9wb3N0ID0gZ192YXJpYW50 X25ldyAoIihiKSIsIGVuYWJsZSk7Ci0rICAgIGdfdmFyaWFudF9yZWZfc2luayAodmFyX3Bvc3Qp OwotKyAgICBpZiAoIWNhY2hlZF92YXJfcG9zdCB8fAotKyAgICAgICAgIWdfdmFyaWFudF9lcXVh bCAodmFyX3Bvc3QsIGNhY2hlZF92YXJfcG9zdCkpIHsKLSsgICAgICAgIGdfZGJ1c19wcm94eV9j YWxsICgoR0RCdXNQcm94eSAqKWNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg Im9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnRpZXMuU2V0IiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdikiLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElCVVNfSU5URVJGQUNFX0lOUFVUX0NPTlRFWFQsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVmZmVjdGl2ZVBvc3RQcm9j ZXNzS2V5RXZlbnQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhcl9wb3N0KSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFH U19OT05FLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIC8qIGNhbmNlbGxhYmxlICovCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgLyogY2FsbGJhY2sgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMICAvKiB1c2VyX2RhdGEgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICApOwot KyAgICAgICAgLyogTmVlZCB0byB1cGRhdGUgdGhlIGNhY2hlIGJ5IG1hbnVhbCBzaW5jZSB0aGVy ZSBpcyBhIHRpbWluZyBpc3N1ZS4gKi8KLSsgICAgICAgIGdfZGJ1c19wcm94eV9zZXRfY2FjaGVk X3Byb3BlcnR5ICgoR0RCdXNQcm94eSAqKWNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkVmZmVjdGl2ZVBvc3RQcm9jZXNzS2V5RXZlbnQiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcl9wb3N0KTsKLSsgICAg fQotKwotKyAgICBpZiAoY2FjaGVkX3Zhcl9wb3N0KQotKyAgICAgICAgZ192YXJpYW50X3VucmVm IChjYWNoZWRfdmFyX3Bvc3QpOwotKyAgICBnX3ZhcmlhbnRfdW5yZWYgKHZhcl9wb3N0KTsKLSt9 Ci0rCi0rdm9pZAotK2lidXNfaW5wdXRfY29udGV4dF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50IChJ QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotK3sKLSsgICAgR1ZhcmlhbnQgKmNhY2hlZF92YXJf cG9zdDsKLSsgICAgZ2Jvb2xlYW4gZW5hYmxlID0gRkFMU0U7Ci0rICAgIEdWYXJpYW50ICpyZXN1 bHQ7Ci0rICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotKyAgICBHVmFyaWFudCAqdmFyaWFudCA9 IE5VTEw7Ci0rICAgIEdWYXJpYW50SXRlciBpdGVyOwotKyAgICBnc2l6ZSBzaXplOwotKyAgICBj aGFyIHR5cGUgPSAwOwotKyAgICBHVmFyaWFudCAqdnRleHQgPSBOVUxMOwotKwotKyAgICBnX2Fz c2VydCAoSUJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0rCi0rICAgIGNhY2hlZF92 YXJfcG9zdCA9Ci0rICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2NhY2hlZF9wcm9wZXJ0eSAoKEdE QnVzUHJveHkgKiljb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJFZmZlY3RpdmVQb3N0UHJvY2Vzc0tleUV2ZW50Iik7Ci0rICAgIGlmIChjYWNoZWRf dmFyX3Bvc3QpCi0rICAgICAgICBnX3ZhcmlhbnRfZ2V0IChjYWNoZWRfdmFyX3Bvc3QsICIoYiki LCAmZW5hYmxlKTsKLSsgICAgaWYgKCFlbmFibGUpIHsKLSsgICAgICAgIGdfd2FybmluZyAoIiVz OiBpYnVzX2lucHV0X2NvbnRleHRfc2V0X3Bvc3RfcHJvY2Vzc19rZXlfZXZlbnQoKSAiCi0rICAg ICAgICAgICAgICAgICAgICJuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlLiIsCi0rICAgICAgICAg ICAgICAgICAgIEdfU1RSRlVOQyk7Ci0rICAgICAgICBpZiAoY2FjaGVkX3Zhcl9wb3N0KQotKyAg ICAgICAgICAgIGdfdmFyaWFudF91bnJlZiAoY2FjaGVkX3Zhcl9wb3N0KTsKLSsgICAgICAgIHJl dHVybjsKLSsgICAgfQotKyAgICBnX3ZhcmlhbnRfdW5yZWYgKGNhY2hlZF92YXJfcG9zdCk7Ci0r ICAgIHJlc3VsdCA9IGdfZGJ1c19wcm94eV9jYWxsX3N5bmMgKAotKyAgICAgICAgICAgIChHREJ1 c1Byb3h5ICopY29udGV4dCwKLSsgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJv cGVydGllcy5HZXQiLAotKyAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoc3MpIiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICBJQlVTX0lOVEVSRkFDRV9JTlBVVF9DT05URVhULAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICJQb3N0UHJvY2Vzc0tleUV2ZW50IiksCi0rICAgICAg ICAgICAgR19EQlVTX0NBTExfRkxBR1NfTk9ORSwKLSsgICAgICAgICAgICAtMSwKLSsgICAgICAg ICAgICBOVUxMLAotKyAgICAgICAgICAgICZlcnJvcik7Ci0rICAgIGlmIChlcnJvcikgewotKyAg ICAgICAgZ193YXJuaW5nICgiJXM6ICVzIiwgR19TVFJGVU5DLCBlcnJvci0+bWVzc2FnZSk7Ci0r ICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQot KwotKyAgICBnX3ZhcmlhbnRfZ2V0IChyZXN1bHQsICIodikiLCAmdmFyaWFudCk7Ci0rICAgIGdf YXNzZXJ0ICh2YXJpYW50KTsKLSsgICAgZ192YXJpYW50X2l0ZXJfaW5pdCAoJml0ZXIsIHZhcmlh bnQpOwotKyAgICBzaXplID0gZ192YXJpYW50X2l0ZXJfbl9jaGlsZHJlbiAoJml0ZXIpOwotKyAg ICB3aGlsZSAoc2l6ZSA+MCAmJiBnX3ZhcmlhbnRfaXRlcl9sb29wICgmaXRlciwgIih5dikiLCAm dHlwZSwgJnZ0ZXh0KSkgewotKyAgICAgICAgSUJ1c1RleHQgKnRleHQgPQotKyAgICAgICAgICAg ICAgICAoSUJ1c1RleHQgKilpYnVzX3NlcmlhbGl6YWJsZV9kZXNlcmlhbGl6ZV9vYmplY3QgKHZ0 ZXh0KTsKLSsgICAgICAgIGlmICghSUJVU19JU19URVhUICh0ZXh0KSkgewotKyAgICAgICAgICAg IGdfd2FybmluZyAoIiVzOiAlcyIsIEdfU1RSRlVOQywgInRleHQgaXMgbm90IElCdXNUZXh0Iik7 Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICB9Ci0rICAgICAgICBzd2l0Y2ggKHR5cGUp IHsKLSsgICAgICAgIGNhc2UgJ2MnOgotKyAgICAgICAgICAgIGdfc2lnbmFsX2VtaXQgKGNvbnRl eHQsIGNvbnRleHRfc2lnbmFsc1tDT01NSVRfVEVYVF0sIDAsIHRleHQpOwotKyAgICAgICAgICAg IGJyZWFrOwotKyAgICAgICAgY2FzZSAnZic6IHsKLSsgICAgICAgICAgICBnY2hhciAqKmFycmF5 ID0gTlVMTDsKLSsgICAgICAgICAgICBndWludCBrZXl2YWwsIGtleWNvZGUsIHN0YXRlOwotKyAg ICAgICAgICAgIGFycmF5ID0gZ19zdHJzcGxpdCAodGV4dC0+dGV4dCwgIiwiLCAtMSk7Ci0rICAg ICAgICAgICAga2V5dmFsID0gZ19hc2NpaV9zdHJ0b3VsbCAoYXJyYXlbMF0sIE5VTEwsIDEwKTsK LSsgICAgICAgICAgICBrZXljb2RlID0gZ19hc2NpaV9zdHJ0b3VsbCAoYXJyYXlbMV0sIE5VTEws IDEwKTsKLSsgICAgICAgICAgICBzdGF0ZSA9IGdfYXNjaWlfc3RydG91bGwgKGFycmF5WzJdLCBO VUxMLCAxMCk7Ci0rICAgICAgICAgICAgZ19zdHJmcmVldiAoYXJyYXkpOwotKyAgICAgICAgICAg IGdfc2lnbmFsX2VtaXQgKGNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGV4dF9zaWduYWxzW0ZPUldBUkRfS0VZX0VWRU5UXSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXZhbCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICBrZXljb2RlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXRlIHwgSUJVU19GT1JXQVJEX01BU0spOwotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAg fQotKyAgICAgICAgZGVmYXVsdDoKLSsgICAgICAgICAgICBnX3dhcm5pbmcgKCIlczogVHlwZSAn JWMnIGlzIG5vdCBzdXBwb3J0ZWQuIiwgR19TVFJGVU5DLCB0eXBlKTsKLSsgICAgICAgIH0KLSsg ICAgICAgIGlmIChnX29iamVjdF9pc19mbG9hdGluZyAodGV4dCkpIHsKLSsgICAgICAgICAgICBn X29iamVjdF9yZWZfc2luayAodGV4dCk7Ci0rICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYgKHRl eHQpOwotKyAgICAgICAgfQotKyAgICAgICAgZ19jbGVhcl9wb2ludGVyICgmdnRleHQsIGdfdmFy aWFudF91bnJlZik7Ci0rICAgIH0KLSsKLSsgICAgZ192YXJpYW50X3VucmVmICh2YXJpYW50KTsK LSsgICAgZ192YXJpYW50X3VucmVmIChyZXN1bHQpOwotK30KLSsKLSAjZGVmaW5lIERFRklORV9G VU5DKG5hbWUsIE5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc Ci0gICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAgICBpYnVzX2lucHV0X2NvbnRleHRfIyNuYW1lIChJQnVz SW5wdXRDb250ZXh0ICpjb250ZXh0KSAgICAgICAgICAgICAgIFwKLWRpZmYgLS1naXQgYS9zcmMv aWJ1c2lucHV0Y29udGV4dC5oIGIvc3JjL2lidXNpbnB1dGNvbnRleHQuaAotaW5kZXggMDk5OTIx NDguLmNhNjA0NjcwIDEwMDY0NAotLS0tIGEvc3JjL2lidXNpbnB1dGNvbnRleHQuaAotKysrIGIv c3JjL2lidXNpbnB1dGNvbnRleHQuaAotQEAgLTIsNyArMiw3IEBACi0gLyogdmltOnNldCBldCBz dHM9NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAw OC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdo dCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsg KiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMyBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCi0g ICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi1AQCAtMjk4LDcgKzI5OCw2IEBAIGdib29sZWFuICAgICBpYnVzX2lucHV0 X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBndWludDMyICAgICAgICAgICAgIGtleWNvZGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQzMiAgICAgICAgICAgICBz dGF0ZSk7Ci0gCi0tCi0gLyoqCi0gICogaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jdXJzb3JfbG9j YXRpb246Ci0gICogQGNvbnRleHQ6IEFuIElCdXNJbnB1dENvbnRleHQuCi1AQCAtNTE5LDkgKzUx OCwzOCBAQCB2b2lkICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9jb250ZW50X3R5cGUK LSAgKgotICAqIFNlZSBhbHNvIGlidXNfZW5naW5lX3VwZGF0ZV9wcmVlZGl0X3RleHRfd2l0aF9t b2RlKCkuCi0gICovCi0tdm9pZCAgICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY2xpZW50 X2NvbW1pdF9wcmVlZGl0ICgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJQnVzSW5wdXRDb250ZXh0ICAgKmNvbnRleHQsCi0rdm9pZCAgICAgICAgIGlidXNf aW5wdXRfY29udGV4dF9zZXRfY2xpZW50X2NvbW1pdF9wcmVlZGl0Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c0lucHV0Q29udGV4dCAgICpjb250ZXh0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu ICAgICAgICAgICAgY2xpZW50X2NvbW1pdCk7Ci0gCi0rLyoqCi0rICogaWJ1c19pbnB1dF9jb250 ZXh0X3NldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50OgotKyAqIEBjb250ZXh0OiBBbiAjSUJ1c0lu cHV0Q29udGV4dC4KLSsgKiBAZW5hYmxlOiBDYW4gdXNlIGlidXNfaW5wdXRfY29udGV4dF9wb3N0 X3Byb2Nlc3Nfa2V5X2V2ZW50KCkgdG8gcmV0cmlldmUKLSsgKiBjb21taXQtdGV4dCBhbmQgZm9y d2FyLWtleS1ldmVudCBzaWduYWxzIGR1cmluZwotKyAqIGNhbGxpbmcgaWJ1c19pbnB1dF9jb250 ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkgaWYgaXQncyAlVFJVRS4KLSsgKgotKyAqIFNpbmNlOiAx LjUuMDAKLSsgKiBTdGFiaWxpdHk6IFVuc3RhYmxlCi0rICovCi0rdm9pZCAgICAgICAgIGlidXNf aW5wdXRfY29udGV4dF9zZXRfcG9zdF9wcm9jZXNzX2tleV9ldmVudAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNJbnB1dENvbnRleHQgICAqY29udGV4 dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVh biAgICAgICAgICAgIGVuYWJsZSk7Ci0rLyoqCi0rICogaWJ1c19pbnB1dF9jb250ZXh0X3Bvc3Rf cHJvY2Vzc19rZXlfZXZlbnQ6Ci0rICogQGNvbnRleHQ6IEFuICNJQnVzSW5wdXRDb250ZXh0Lgot KyAqCi0rICogQ2FsbCB0aGlzIEFQSSBhZnRlciBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19r ZXlfZXZlbnQoKSByZXR1cm5zCi0rICogdG8gcmV0cmlldmUgY29tbWl0LXRleHQgYW5kIGZvcndh ci1rZXktZXZlbnQgc2lnbmFscyBkdXJpbmcKLSsgKiBjYWxsaW5nIGlidXNfaW5wdXRfY29udGV4 dF9wcm9jZXNzX2tleV9ldmVudCgpLgotKyAqCi0rICogU2VlIGFsc28gaWJ1c19pbnB1dF9jb250 ZXh0X3NldF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkuCi0rICoKLSsgKiBTaW5jZTogMS41LjAw Ci0rICogU3RhYmlsaXR5OiBVbnN0YWJsZQotKyAqLwotK3ZvaWQgICAgICAgICBpYnVzX2lucHV0 X2NvbnRleHRfcG9zdF9wcm9jZXNzX2tleV9ldmVudAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKElCdXNJbnB1dENvbnRleHQgICAqY29udGV4dCk7Ci0rCi0g R19FTkRfREVDTFMKLSAjZW5kaWYKLS0tIAotMi40MS4wCi0KLUZyb20gZTQ5NWY4MDY4MzgwODU2 YzAxZmQyMmNlZWJiOTM5ODA3MmZkNjVkOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFdlZCwgMTIgSnVs IDIwMjMgMDc6NTI6MjEgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCAzLzNdIGNsaWVudC94MTE6IEZp eCBzeW5jCi0gaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkKLQotRml4IHRo ZSBzeW5jaHJvbm91cyAiUHJvY2Vzc0tleUV2ZW50IiBELUJ1cyBtZXRob2QgaW4gaWJ1cy14MTEg dG9vLgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9jb21taXQvMzY3MGZh ZgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjQ4NgotLS0tCi0g Y2xpZW50L3gxMS9tYWluLmMgfCAyMzQgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgMTAwIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L3gxMS9tYWluLmMgYi9jbGllbnQveDEx L21haW4uYwotaW5kZXggODNkOTVjYjcuLmI3ZWI1OTYxIDEwMDY0NAotLS0tIGEvY2xpZW50L3gx MS9tYWluLmMKLSsrKyBiL2NsaWVudC94MTEvbWFpbi5jCi1AQCAtMTI2LDcgKzEyNiw3IEBAIHN0 YXRpYyBnaW50ICAgICBnX2RlYnVnX2xldmVsID0gMDsKLSAKLSBzdGF0aWMgSUJ1c0J1cyAqX2J1 cyA9IE5VTEw7Ci0gCi0tc3RhdGljIGNoYXIgX3VzZV9zeW5jX21vZGUgPSAyOwotK3N0YXRpYyBj aGFyIF91c2Vfc3luY19tb2RlID0gMTsKLSAKLSBzdGF0aWMgdm9pZAotIF94aW1fcHJlZWRpdF9z dGFydCAoWElNUyB4aW1zLCBjb25zdCBYMTFJQyAqeDExaWMpCi1AQCAtMzgwLDkgKzM4MCw5IEBA IHhpbV9jcmVhdGVfaWMgKFhJTVMgeGltcywgSU1DaGFuZ2VJQ1N0cnVjdCAqY2FsbF9kYXRhKQot IAotICAgICBpZiAoeDExaWMtPmlucHV0X3N0eWxlICYgWElNUHJlZWRpdENhbGxiYWNrcykKLSAg ICAgICAgIGNhcGFiaWxpdGllcyB8PSBJQlVTX0NBUF9QUkVFRElUX1RFWFQ7Ci0tICAgIGlmIChf dXNlX3N5bmNfbW9kZSA9PSAxKQotLSAgICAgICAgY2FwYWJpbGl0aWVzIHw9IElCVVNfQ0FQX1NZ TkNfUFJPQ0VTU19LRVlfVjI7Ci0gICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY2FwYWJpbGl0 aWVzICh4MTFpYy0+Y29udGV4dCwgY2FwYWJpbGl0aWVzKTsKLSsgICAgaWYgKF91c2Vfc3luY19t b2RlID09IDEpCi0rICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfc2V0X3Bvc3RfcHJvY2Vzc19r ZXlfZXZlbnQgKHgxMWljLT5jb250ZXh0LCBUUlVFKTsKLSAKLSAgICAgZ19oYXNoX3RhYmxlX2lu c2VydCAoX3gxMV9pY190YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgR0lOVF9UT19Q T0lOVEVSICh4MTFpYy0+aWNpZCksIChncG9pbnRlcil4MTFpYyk7Ci1AQCAtNDI3LDYgKzQyNyw3 IEBAIHhpbV9kZXN0cm95X2ljIChYSU1TIHhpbXMsIElNQ2hhbmdlSUNTdHJ1Y3QgKmNhbGxfZGF0 YSkKLSAgICAgcmV0dXJuIDE7Ci0gfQotIAotKwotIHN0YXRpYyBpbnQKLSB4aW1fc2V0X2ljX2Zv Y3VzIChYSU1TIHhpbXMsIElNQ2hhbmdlRm9jdXNTdHJ1Y3QgKmNhbGxfZGF0YSkKLSB7Ci1AQCAt NDQ1LDYgKzQ0Niw3IEBAIHhpbV9zZXRfaWNfZm9jdXMgKFhJTVMgeGltcywgSU1DaGFuZ2VGb2N1 c1N0cnVjdCAqY2FsbF9kYXRhKQotICAgICByZXR1cm4gMTsKLSB9Ci0gCi0rCi0gc3RhdGljIGlu dAotIHhpbV91bnNldF9pY19mb2N1cyAoWElNUyB4aW1zLCBJTUNoYW5nZUZvY3VzU3RydWN0ICpj YWxsX2RhdGEpCi0gewotQEAgLTQ2Myw2ICs0NjUsNyBAQCB4aW1fdW5zZXRfaWNfZm9jdXMgKFhJ TVMgeGltcywgSU1DaGFuZ2VGb2N1c1N0cnVjdCAqY2FsbF9kYXRhKQotIAotIH0KLSAKLSsKLSBz dGF0aWMgdm9pZAotIF94aW1fZm9yd2FyZF9rZXlfZXZlbnRfZG9uZSAoWDExSUMgICAqeDExaWMs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRXZlbnQgICpldmVudCwKLUBAIC00OTgs NiArNTAxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewotICAgICBYRXZlbnQgICAgICAgICAgICAgICAg ZXZlbnQ7Ci0gfSBQcm9jZXNzS2V5RXZlbnRSZXBseURhdGE7Ci0gCi0rCi0gc3RhdGljIHZvaWQK LSBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3QsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAqcmVzLAotQEAgLTUyOSw2ICs1MzMsNyBA QCBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3QsCi0gICAgIGdf c2xpY2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKLSB9Ci0gCi0rCi0g c3RhdGljIHZvaWQKLSBfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSAoR09iamVjdCAgICAg ICpvYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAq cmVzLAotQEAgLTU2Niw2ICs1NzEsNyBAQCBfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSAo R09iamVjdCAgICAgICpvYmplY3QsCi0gICAgIGdfc291cmNlX3JlbW92ZSAoZGF0YS0+Y291bnRf Y2JfaWQpOwotIH0KLSAKLSsKLSBzdGF0aWMgZ2Jvb2xlYW4KLSBfcHJvY2Vzc19rZXlfZXZlbnRf Y291bnRfY2IgKGdwb2ludGVyIHVzZXJfZGF0YSkKLSB7Ci1AQCAtNTgwLDE5ICs1ODYsMTMxIEBA IF9wcm9jZXNzX2tleV9ldmVudF9jb3VudF9jYiAoZ3BvaW50ZXIgdXNlcl9kYXRhKQotICAgICBy ZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7Ci0gfQotIAotKwotK3N0YXRpYyBpbnQKLStfcHJvY2Vz c19rZXlfZXZlbnRfc3luYyAoWDExSUMgICAgICAgICAgICAgICAgKngxMWljLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICBJTUZvcndhcmRFdmVudFN0cnVjdCAqY2FsbF9kYXRhLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICBHZGtFdmVudEtleSAgICAgICAgICAqZXZlbnQpCi0rewotKyAg ICBnYm9vbGVhbiByZXR2YWw7Ci0rCi0rICAgIGdfYXNzZXJ0ICh4MTFpYyk7Ci0rICAgIGdfYXNz ZXJ0IChjYWxsX2RhdGEpOwotKyAgICBnX2Fzc2VydCAoZXZlbnQpOwotKyAgICByZXR2YWwgPSBp YnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnQgKAotKyAgICAgICAgICAgIHgxMWlj LT5jb250ZXh0LAotKyAgICAgICAgICAgIGV2ZW50LT5rZXl2YWwsCi0rICAgICAgICAgICAgZXZl bnQtPmhhcmR3YXJlX2tleWNvZGUgLSA4LAotKyAgICAgICAgICAgIGV2ZW50LT5zdGF0ZSk7Ci0r ICAgIGlidXNfaW5wdXRfY29udGV4dF9wb3N0X3Byb2Nlc3Nfa2V5X2V2ZW50ICh4MTFpYy0+Y29u dGV4dCk7Ci0rICAgIF94aW1fZm9yd2FyZF9rZXlfZXZlbnRfZG9uZSAoeDExaWMsICZjYWxsX2Rh dGEtPmV2ZW50LCByZXR2YWwpOwotKyAgICByZXR1cm4gMTsKLSt9Ci0rCi0rCi0rc3RhdGljIGlu dAotK19wcm9jZXNzX2tleV9ldmVudF9hc3luYyAoWDExSUMgICAgICAgICAgICAgICAgKngxMWlj LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgSU1Gb3J3YXJkRXZlbnRTdHJ1Y3QgKmNhbGxf ZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIEdka0V2ZW50S2V5ICAgICAgICAgICpl dmVudCkKLSt7Ci0rICAgIFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSAqZGF0YTsKLSsKLSsgICAg Z19hc3NlcnQgKHgxMWljKTsKLSsgICAgZ19hc3NlcnQgKGNhbGxfZGF0YSk7Ci0rICAgIGdfYXNz ZXJ0IChldmVudCk7Ci0rICAgIGlmICghKGRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlF dmVudFJlcGx5RGF0YSkpKSB7Ci0rICAgICAgICBnX3dhcm5pbmcgKCJDYW5ub3QgYWxsb2NhdGUg YXN5bmMgZGF0YSIpOwotKyAgICAgICAgcmV0dXJuIF9wcm9jZXNzX2tleV9ldmVudF9zeW5jICh4 MTFpYywgY2FsbF9kYXRhLCBldmVudCk7Ci0rICAgIH0KLSsgICAgZGF0YS0+Y29ubmVjdF9pZCA9 IGNhbGxfZGF0YS0+Y29ubmVjdF9pZDsKLSsgICAgZGF0YS0+eDExaWMgPSB4MTFpYzsKLSsgICAg ZGF0YS0+ZXZlbnQgPSBjYWxsX2RhdGEtPmV2ZW50OwotKyAgICBpYnVzX2lucHV0X2NvbnRleHRf cHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMgKHgxMWljLT5jb250ZXh0LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5rZXl2YWwsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPmhhcmR3YXJl X2tleWNvZGUgLSA4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGV2ZW50LT5zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9wcm9jZXNzX2tleV9ldmVudF9kb25lLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpOwotKyAgICByZXR1cm4gMTsKLSt9Ci0r Ci0rCi0rc3RhdGljIGludAotK19wcm9jZXNzX2tleV9ldmVudF9oeWJyaWRfYXN5bmMgKFgxMUlD ICAgICAgICAgICAgICAgICp4MTFpYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJTUZvcndhcmRFdmVudFN0cnVjdCAqY2FsbF9kYXRhLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdka0V2ZW50S2V5ICAgICAgICAgICpldmVudCkKLSt7Ci0rICAgIEdTb3Vy Y2UgKnNvdXJjZTsKLSsgICAgUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhICpkYXRhID0gTlVMTDsK LSsgICAgZ2Jvb2xlYW4gYnVzX3JldHZhbDsKLSsKLSsgICAgZ19hc3NlcnQgKHgxMWljKTsKLSsg ICAgZ19hc3NlcnQgKGNhbGxfZGF0YSk7Ci0rICAgIGdfYXNzZXJ0IChldmVudCk7Ci0rICAgIHNv dXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3ICgxKTsKLSsgICAgaWYgKHNvdXJjZSkKLSsgICAg ICAgIGRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSk7Ci0rICAg IGlmICghZGF0YSkgewotKyAgICAgICAgaW50IHhpbV9yZXR2YWw7Ci0rICAgICAgICBnX3dhcm5p bmcgKCJDYW5ub3Qgd2FpdCBmb3IgdGhlIHJlcGx5IG9mIHRoZSBwcm9jZXNzIGtleSBldmVudC4i KTsKLSsgICAgICAgIHhpbV9yZXR2YWwgPSBfcHJvY2Vzc19rZXlfZXZlbnRfc3luYyAoeDExaWMs IGNhbGxfZGF0YSwgZXZlbnQpOwotKyAgICAgICAgaWYgKHNvdXJjZSkKLSsgICAgICAgICAgICBn X3NvdXJjZV9kZXN0cm95IChzb3VyY2UpOwotKyAgICAgICAgcmV0dXJuIHhpbV9yZXR2YWw7Ci0r ICAgIH0KLSsgICAgZGF0YS0+Y291bnQgPSAxOwotKyAgICBnX3NvdXJjZV9hdHRhY2ggKHNvdXJj ZSwgTlVMTCk7Ci0rICAgIGdfc291cmNlX3VucmVmIChzb3VyY2UpOwotKyAgICBkYXRhLT5jb3Vu dF9jYl9pZCA9IGdfc291cmNlX2dldF9pZCAoc291cmNlKTsKLSsgICAgZGF0YS0+Y29ubmVjdF9p ZCA9IGNhbGxfZGF0YS0+Y29ubmVjdF9pZDsKLSsgICAgZGF0YS0+eDExaWMgPSB4MTFpYzsKLSsg ICAgZGF0YS0+ZXZlbnQgPSBjYWxsX2RhdGEtPmV2ZW50OwotKyAgICBpYnVzX2lucHV0X2NvbnRl eHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMgKHgxMWljLT5jb250ZXh0LAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LT5rZXl2YWwsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPmhhcmR3 YXJlX2tleWNvZGUgLSA4LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV2ZW50LT5zdGF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtMSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF9wcm9jZXNzX2tleV9ldmVudF9yZXBseV9kb25lLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpOwotKyAgICBnX3NvdXJj ZV9zZXRfY2FsbGJhY2sgKHNvdXJjZSwgX3Byb2Nlc3Nfa2V5X2V2ZW50X2NvdW50X2NiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIE5VTEwpOwotKyAgICB3aGlsZSAoZGF0YS0+ Y291bnQgPiAwICYmIGRhdGEtPmNvdW50IDwgTUFYX1dBSVRfS0VZX1RJTUUpCi0rICAgICAgICBn X21haW5fY29udGV4dF9pdGVyYXRpb24gKE5VTEwsIFRSVUUpOwotKyAgICAvKiAjMjQ5OCBDaGVj a2luZyBzb3VyY2UtPnJlZl9jb3VudCBtaWdodCBjYXVzZSBOYXV0aWx1cyBoYW5nIHVwCi0rICAg ICAqLwotKyAgICBidXNfcmV0dmFsID0gZGF0YS0+cmV0dmFsOwotKyAgICBpZiAoZGF0YS0+Y291 bnQgPT0gMCkgewotKyAgICAgICAgZ19zbGljZV9mcmVlIChQcm9jZXNzS2V5RXZlbnRSZXBseURh dGEsIGRhdGEpOwotKyAgICAgICAgcmV0dXJuIDE7Ci0rICAgIH0KLSsKLSsgICAgZ19zbGljZV9m cmVlIChQcm9jZXNzS2V5RXZlbnRSZXBseURhdGEsIGRhdGEpOwotKyAgICBpZiAoZ19oYXNoX3Rh YmxlX2xvb2t1cCAoX2Nvbm5lY3Rpb25zLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0lOVF9UT19QT0lOVEVSICgoZ2ludCljYWxsX2RhdGEtPmNvbm5lY3RfaWQpKQotKyAgICAgICAg PT0gTlVMTCkgewotKyAgICAgICAgcmV0dXJuIDE7Ci0rICAgIH0KLSsgICAgX3hpbV9mb3J3YXJk X2tleV9ldmVudF9kb25lICh4MTFpYywgJmNhbGxfZGF0YS0+ZXZlbnQsIGJ1c19yZXR2YWwpOwot KyAgICByZXR1cm4gMTsKLSt9Ci0rCi0rCi0gc3RhdGljIGludAotIHhpbV9mb3J3YXJkX2V2ZW50 IChYSU1TIHhpbXMsIElNRm9yd2FyZEV2ZW50U3RydWN0ICpjYWxsX2RhdGEpCi0gewotICAgICBY MTFJQyAqeDExaWM7Ci0gICAgIFhLZXlFdmVudCAqeGV2ZW50OwotICAgICBHZGtFdmVudEtleSBl dmVudDsKLS0gICAgZ2Jvb2xlYW4gcmV0dmFsOwotIAotICAgICBMT0cgKDEsICJYSU1fRk9SV0FS RF9FVkVOVCBpYz0lZCBjb25uZWN0X2lkPSVkIiwKLS0gICAgICAgICAgICAgICAgY2FsbF9kYXRh LT5pY2lkLCBjYWxsX2RhdGEtPmNvbm5lY3RfaWQpOwotKyAgICAgICAgIGNhbGxfZGF0YS0+aWNp ZCwgY2FsbF9kYXRhLT5jb25uZWN0X2lkKTsKLSAKLS0gICAgeDExaWMgPSAoWDExSUMgKikgZ19o YXNoX3RhYmxlX2xvb2t1cCAoX3gxMV9pY190YWJsZSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR0lOVF9UT19QT0lOVEVSICgoZ2ludCkgY2FsbF9kYXRhLT5p Y2lkKSk7Ci0rICAgIHgxMWljID0gKFgxMUlDICopIGdfaGFzaF90YWJsZV9sb29rdXAgKAotKyAg ICAgICAgICAgIF94MTFfaWNfdGFibGUsCi0rICAgICAgICAgICAgR0lOVF9UT19QT0lOVEVSICgo Z2ludCkgY2FsbF9kYXRhLT5pY2lkKSk7Ci0gICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsICh4MTFp YyAhPSBOVUxMLCAwKTsKLSAKLSAgICAgeGV2ZW50ID0gKFhLZXlFdmVudCopICYoY2FsbF9kYXRh LT5ldmVudCk7Ci1AQCAtNjA4LDk5ICs3MjYsMTUgQEAgeGltX2ZvcndhcmRfZXZlbnQgKFhJTVMg eGltcywgSU1Gb3J3YXJkRXZlbnRTdHJ1Y3QgKmNhbGxfZGF0YSkKLSAgICAgfQotIAotICAgICBz d2l0Y2ggKF91c2Vfc3luY19tb2RlKSB7Ci0tICAgIGNhc2UgMTogewotLSAgICAgICAgcmV0dmFs ID0gaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50ICgKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHgxMWljLT5jb250ZXh0LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQua2V5dmFsLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXZlbnQuaGFyZHdhcmVfa2V5Y29kZSAtIDgsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdGF0ZSk7Ci0tICAgICAgICBf eGltX2ZvcndhcmRfa2V5X2V2ZW50X2RvbmUgKHgxMWljLCAmY2FsbF9kYXRhLT5ldmVudCwgcmV0 dmFsKTsKLS0gICAgICAgIHJldHZhbCA9IDE7Ci0tICAgICAgICBicmVhazsKLS0gICAgfQotLSAg ICBjYXNlIDI6IHsKLS0gICAgICAgIEdTb3VyY2UgKnNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2Vf bmV3ICgxKTsKLS0gICAgICAgIFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSAqZGF0YSA9IE5VTEw7 Ci0tCi0tICAgICAgICBpZiAoc291cmNlKQotLSAgICAgICAgICAgIGRhdGEgPSBnX3NsaWNlX25l dzAgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSk7Ci0tICAgICAgICBpZiAoIWRhdGEpIHsKLS0g ICAgICAgICAgICBnX3dhcm5pbmcgKCJDYW5ub3Qgd2FpdCBmb3IgdGhlIHJlcGx5IG9mIHRoZSBw cm9jZXNzIGtleSBldmVudC4iKTsKLS0gICAgICAgICAgICByZXR2YWwgPSBpYnVzX2lucHV0X2Nv bnRleHRfcHJvY2Vzc19rZXlfZXZlbnQgKAotLSAgICAgICAgICAgICAgICAgICAgeDExaWMtPmNv bnRleHQsCi0tICAgICAgICAgICAgICAgICAgICBldmVudC5rZXl2YWwsCi0tICAgICAgICAgICAg ICAgICAgICBldmVudC5oYXJkd2FyZV9rZXljb2RlIC0gOCwKLS0gICAgICAgICAgICAgICAgICAg IGV2ZW50LnN0YXRlKTsKLS0gICAgICAgICAgICBpZiAoc291cmNlKQotLSAgICAgICAgICAgICAg ICBnX3NvdXJjZV9kZXN0cm95IChzb3VyY2UpOwotLSAgICAgICAgfSBlbHNlIHsKLS0gICAgICAg ICAgICBkYXRhLT5jb3VudCA9IDE7Ci0tICAgICAgICAgICAgZ19zb3VyY2VfYXR0YWNoIChzb3Vy Y2UsIE5VTEwpOwotLSAgICAgICAgICAgIGdfc291cmNlX3VucmVmIChzb3VyY2UpOwotLSAgICAg ICAgICAgIGRhdGEtPmNvdW50X2NiX2lkID0gZ19zb3VyY2VfZ2V0X2lkIChzb3VyY2UpOwotLSAg ICAgICAgICAgIGRhdGEtPmNvbm5lY3RfaWQgPSBjYWxsX2RhdGEtPmNvbm5lY3RfaWQ7Ci0tICAg ICAgICAgICAgZGF0YS0+eDExaWMgPSB4MTFpYzsKLS0gICAgICAgICAgICBkYXRhLT5ldmVudCA9 ICooKFhFdmVudCopeGV2ZW50KTsKLS0gICAgICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfcHJv Y2Vzc19rZXlfZXZlbnRfYXN5bmMgKAotLSAgICAgICAgICAgICAgICAgICAgeDExaWMtPmNvbnRl eHQsCi0tICAgICAgICAgICAgICAgICAgICBldmVudC5rZXl2YWwsCi0tICAgICAgICAgICAgICAg ICAgICBldmVudC5oYXJkd2FyZV9rZXljb2RlIC0gOCwKLS0gICAgICAgICAgICAgICAgICAgIGV2 ZW50LnN0YXRlLAotLSAgICAgICAgICAgICAgICAgICAgLTEsCi0tICAgICAgICAgICAgICAgICAg ICBOVUxMLAotLSAgICAgICAgICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50X3JlcGx5X2Rv bmUsCi0tICAgICAgICAgICAgICAgICAgICBkYXRhKTsKLS0gICAgICAgICAgICBnX3NvdXJjZV9z ZXRfY2FsbGJhY2sgKHNvdXJjZSwgX3Byb2Nlc3Nfa2V5X2V2ZW50X2NvdW50X2NiLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgTlVMTCk7Ci0tICAgICAgICAgICAg d2hpbGUgKGRhdGEtPmNvdW50ID4gMCAmJiBkYXRhLT5jb3VudCA8IE1BWF9XQUlUX0tFWV9USU1F KQotLSAgICAgICAgICAgICAgICBnX21haW5fY29udGV4dF9pdGVyYXRpb24gKE5VTEwsIFRSVUUp OwotLSAgICAgICAgICAgIGlmIChzb3VyY2UtPnJlZl9jb3VudCA+IDApIHsKLS0gICAgICAgICAg ICAgICAgLyogZ19zb3VyY2VfZ2V0X2lkKCkgY291bGQgY2F1c2VzIGEgU0VHViAqLwotLSAgICAg ICAgICAgICAgICBnX2luZm8gKCJCcm9rZW4gR1NvdXJjZS5yZWZfY291bnQgYW5kIG1heWJlIGEg dGltaW5nICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAiaXNzdWUgaW4gJXAuIiwgc291cmNl KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgcmV0dmFsID0gZGF0YS0+cmV0dmFsOwot LSAgICAgICAgICAgIGlmIChkYXRhLT5jb3VudCA9PSAwKSB7Ci0tICAgICAgICAgICAgICAgIGdf c2xpY2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhLCBkYXRhKTsKLS0gICAgICAgICAg ICAgICAgcmV0dXJuIDE7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAg Z19zbGljZV9mcmVlIChQcm9jZXNzS2V5RXZlbnRSZXBseURhdGEsIGRhdGEpOwotLSAgICAgICAg aWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKF9jb25uZWN0aW9ucywKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHSU5UX1RPX1BPSU5URVIgKChnaW50KWNhbGxfZGF0YS0+Y29ubmVj dF9pZCkpCi0tICAgICAgICAgICAgICAgID09IE5VTEwpIHsKLS0gICAgICAgICAgICAgICAgcmV0 dXJuIDE7Ci0tICAgICAgICB9Ci0tICAgICAgICBfeGltX2ZvcndhcmRfa2V5X2V2ZW50X2RvbmUg KHgxMWljLCAmY2FsbF9kYXRhLT5ldmVudCwgcmV0dmFsKTsKLS0gICAgICAgIHJldHZhbCA9IDE7 Ci0tICAgICAgICBicmVhazsKLS0gICAgfQotLSAgICBkZWZhdWx0OiB7Ci0tICAgICAgICBQcm9j ZXNzS2V5RXZlbnRSZXBseURhdGEgKmRhdGE7Ci0tCi0tICAgICAgICBpZiAoIShkYXRhID0gZ19z bGljZV9uZXcwIChQcm9jZXNzS2V5RXZlbnRSZXBseURhdGEpKSkgewotLSAgICAgICAgICAgIGdf d2FybmluZyAoIkNhbm5vdCBhbGxvY2F0ZSBhc3luYyBkYXRhIik7Ci0tICAgICAgICAgICAgX3hp bV9mb3J3YXJkX2tleV9ldmVudF9kb25lICh4MTFpYywgJmNhbGxfZGF0YS0+ZXZlbnQsIDApOwot LSAgICAgICAgICAgIHJldHVybiAxOwotLSAgICAgICAgfQotLSAgICAgICAgZGF0YS0+Y29ubmVj dF9pZCA9IGNhbGxfZGF0YS0+Y29ubmVjdF9pZDsKLS0gICAgICAgIGRhdGEtPngxMWljID0geDEx aWM7Ci0tICAgICAgICBkYXRhLT5ldmVudCA9IGNhbGxfZGF0YS0+ZXZlbnQ7Ci0tCi0tICAgICAg ICBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMgKAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDExaWMtPmNvbnRleHQsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5rZXl2YWwsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5oYXJkd2FyZV9rZXljb2RlIC0gOCwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0YXRlLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50X2RvbmUsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhKTsKLS0gICAgICAgIHJldHZhbCA9IDE7Ci0tICAgIH0KLSsg ICAgY2FzZSAxOgotKyAgICAgICAgcmV0dXJuIF9wcm9jZXNzX2tleV9ldmVudF9zeW5jICh4MTFp YywgY2FsbF9kYXRhLCAmZXZlbnQpOwotKyAgICBjYXNlIDI6Ci0rICAgICAgICByZXR1cm4gX3By b2Nlc3Nfa2V5X2V2ZW50X2h5YnJpZF9hc3luYyAoeDExaWMsIGNhbGxfZGF0YSwgJmV2ZW50KTsK LSsgICAgZGVmYXVsdDoKLSsgICAgICAgIHJldHVybiBfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmMg KHgxMWljLCBjYWxsX2RhdGEsICZldmVudCk7Ci0gICAgIH0KLS0gICAgcmV0dXJuIHJldHZhbDsK LSsgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQgKCk7Ci0rICAgIHJldHVybiAwOwotIH0KLSAKLSAK LUBAIC0xMTg2LDcgKzEyMjAsNyBAQCBfaW5pdF9pYnVzICh2b2lkKQotICAgICAgICAgICAgICAg ICAgICAgICAgIEdfQ0FMTEJBQ0sgKF9idXNfZGlzY29ubmVjdGVkX2NiKSwgTlVMTCk7Ci0gCi0g ICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzE3MTMgKi8KLS0gICAg X3VzZV9zeW5jX21vZGUgPSBfZ2V0X2NoYXJfZW52ICgiSUJVU19FTkFCTEVfU1lOQ19NT0RFIiwg Mik7Ci0rICAgIF91c2Vfc3luY19tb2RlID0gX2dldF9jaGFyX2VudiAoIklCVVNfRU5BQkxFX1NZ TkNfTU9ERSIsIDEpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotLS0gCi0yLjQxLjAKLQo=