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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to released FSF GDB 7.11.1. Date: Thu, 23 Jul 2026 18:32:22 GMT Message-ID: <178483154200.1.7262621379225296675.rpms-gdb-8e7b06e27c60@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 8e7b06e27c6061e9f3d3b6f162b02d293368a85c QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogOGU3YjA2ZTI3YzYwNjFlOWYzZDNiNmYxNjJiMDJkMjkz MzY4YTg1YwpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNi0wNi0wN1QxMDoxNDozOCswMjowMApTdGF0cyAgOiArOS8tMjk3MyBp biA1IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9n ZGIvYy84ZTdiMDZlMjdjNjA2MWU5ZjNkM2I2ZjE2MmIwMmQyOTMzNjhhODVjP2JyYW5jaD1maXgt ZHVwLXBhdGNoCgpMb2c6ClJlYmFzZSB0byByZWxlYXNlZCBGU0YgR0RCIDcuMTEuMS4KCi0tLQpk aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggOGZhYWU3YS4uZGJiMTVj YiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMiBA QAogL2dkYi1saWJzdGRjKystdjMtcHl0aG9uLXIyMjU1MjEudGFyLnh6Ci0vZ2RiLTcuMTEudGFy Lnh6CisvZ2RiLTcuMTEuMS50YXIueHoKCmRpZmYgLS1naXQgYS9nZGItcmhiejEzMTgwNDktZ2Ri LXAtY29udGFpbmVyLWludGVybmFsLWVycm9yLnBhdGNoIGIvZ2RiLXJoYnoxMzE4MDQ5LWdkYi1w LWNvbnRhaW5lci1pbnRlcm5hbC1lcnJvci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggODEyNmJlOC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejEzMTgwNDktZ2RiLXAtY29udGFp bmVyLWludGVybmFsLWVycm9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjMwICswLDAgQEAK LWh0dHA6Ly9wb3N0LW9mZmljZS5jb3JwLnJlZGhhdC5jb20vYXJjaGl2ZXMvZGVidWctbGlzdC8y MDE2LUFwcmlsL21zZzAwMDAzLmh0bWwKLQotPkZyb20gY2I4YmZlYWEyMWEyZGY0ODRkM2M0YzM1 Y2M2ZWExYzRiMzJjZWZjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFBlZHJvIEFs dmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgNiBBcHIgMjAxNiAxNTowNzo0OSAr MDEwMAotU3ViamVjdDogW1BBVENIXSBGaXggUFIgZ2RiLzE5ODI4OiBnZGIgLXAgPHByb2Nlc3Mg ZnJvbSBhIGNvbnRhaW5lcj46IGludGVybmFsCi0gZXJyb3IKLQotV2hlbiBHREIgYXR0YWNoZXMg dG8gYSBwcm9jZXNzLCBpdCBsb29rcyBhdCB0aGUgL3Byb2MvUElEL3Rhc2svIGRpcgotZm9yIGFs bCBjbG9uZSB0aHJlYWRzIG9mIHRoYXQgcHJvY2VzcywgYW5kIGF0dGFjaGVzIHRvIGVhY2ggb2Yg dGhlbS4KLQotVXN1YWxseSwgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBjbG9uZSB0aHJlYWQs IGl0IG1lYW5zIHRoZSBwcm9ncmFtCi1pcyBtdWx0aSB0aHJlYWRlZCBhbmQgbGlua2VkIHdpdGgg cHRocmVhZHMuICBUaHVzIHdoZW4gR0RCIHNvb24gYWZ0ZXIKLWF0dGFjaGluZyBmaW5kcyBhbmQg bG9hZHMgYSBsaWJ0aHJlYWRfZGIgbWF0Y2hpbmcgdGhlIHByb2Nlc3MsIGl0J2xsCi1hZGQgYSB0 aHJlYWQgdG8gdGhlIHRocmVhZCBsaXN0IGZvciBlYWNoIG9mIHRoZSBpbml0aWFsbHkgZm91bmQK LWxvd2VyLWxldmVsIExXUHMuCi0KLUlmLCBob3dldmVyLCBHREIgZmFpbHMgdG8gZmluZC9sb2Fk IGEgbWF0Y2hpbmcgbGlidGhyZWFkX2RiLCBub3RoaW5nCi1pcyBhZGRpbmcgdGhlIExXUHMgdG8g dGhlIHRocmVhZCBsaXN0LiAgQW5kIGJlY2F1c2Ugb2YgdGhhdCwgImRldGFjaCIKLWhpdHMgYW4g aW50ZXJuYWwgZXJyb3I6Ci0KLSAgKGdkYikgUEFTUzogZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNo LWRldGFjaC5leHA6IGZnIGF0dGFjaCAxOiBhdHRhY2gKLSAgaW5mbyB0aHJlYWRzCi0gICAgSWQg ICBUYXJnZXQgSWQgICAgICAgICBGcmFtZQotICAqIDEgICAgTFdQIDY4OTEgImNsb25lLWF0dGFj aC1kZSIgMHgwMDAwN2Y4N2U1ZmQwNzkwIGluIF9fbmFub3NsZWVwX25vY2FuY2VsICgpIGF0IC4u L3N5c2RlcHMvdW5peC9zeXNjYWxsLXRlbXBsYXRlLlM6ODQKLSAgKGdkYikgRkFJTDogZ2RiLnRo cmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5leHA6IGZnIGF0dGFjaCAxOiBpbmZvIHRocmVhZHMg c2hvd3MgdHdvIExXUHMKLSAgZGV0YWNoCi0gIC4uLi9zcmMvZ2RiL3RocmVhZC5jOjEwMTA6IGlu dGVybmFsLWVycm9yOiBpc19leGVjdXRpbmc6IEFzc2VydGlvbiBgdHAnIGZhaWxlZC4KLSAgQSBw cm9ibGVtIGludGVybmFsIHRvIEdEQiBoYXMgYmVlbiBkZXRlY3RlZCwKLSAgZnVydGhlciBkZWJ1 Z2dpbmcgbWF5IHByb3ZlIHVucmVsaWFibGUuCi0gIFF1aXQgdGhpcyBkZWJ1Z2dpbmcgc2Vzc2lv bj8gKHkgb3IgbikKLSAgRkFJTDogZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5leHA6 IGZnIGF0dGFjaCAxOiBkZXRhY2ggKEdEQiBpbnRlcm5hbCBlcnJvcikKLQotPkZyb20gaGVyZToK LQotICAuLi4KLSAgIzggIDB4MDAwMDAwMDAwMDdiYTdjYyBpbiBpbnRlcm5hbF9lcnJvciAoZmls ZT0weDk4ZWE2OCAiLi4uL3NyYy9nZGIvdGhyZWFkLmMiLCBsaW5lPTEwMTAsIGZtdD0weDk4ZWEz MCAiJXM6IEFzc2VydGlvbiBgJXMnIGZhaWxlZC4iKQotICAgICAgYXQgLi4uL3NyYy9nZGIvY29t bW9uL2Vycm9ycy5jOjU1Ci0gICM5ICAweDAwMDAwMDAwMDA2NGJiODMgaW4gaXNfZXhlY3V0aW5n IChwdGlkPS4uLikgYXQgLi4uL3NyYy9nZGIvdGhyZWFkLmM6MTAxMAotICAjMTAgMHgwMDAwMDAw MDAwNGMyM2JiIGluIGdldF9wZW5kaW5nX3N0YXR1cyAobHA9MHgxMmM1Y2MwLCBzdGF0dXM9MHg3 ZmZmZmZmZmRjMGMpIGF0IC4uLi9zcmMvZ2RiL2xpbnV4LW5hdC5jOjEyMzUKLSAgIzExIDB4MDAw MDAwMDAwMDRjMjczOCBpbiBkZXRhY2hfY2FsbGJhY2sgKGxwPTB4MTJjNWNjMCwgZGF0YT0weDAp IGF0IC4uLi9zcmMvZ2RiL2xpbnV4LW5hdC5jOjEzMTcKLSAgIzEyIDB4MDAwMDAwMDAwMDRjMWEy YSBpbiBpdGVyYXRlX292ZXJfbHdwcyAoZmlsdGVyPS4uLiwgY2FsbGJhY2s9MHg0YzI1OTkgPGRl dGFjaF9jYWxsYmFjaz4sIGRhdGE9MHgwKSBhdCAuLi4vc3JjL2dkYi9saW51eC1uYXQuYzo4OTkK LSAgIzEzIDB4MDAwMDAwMDAwMDRjMjk1YyBpbiBsaW51eF9uYXRfZGV0YWNoIChvcHM9MHhlN2Jk MzAsIGFyZ3M9MHgwLCBmcm9tX3R0eT0xKSBhdCAuLi4vc3JjL2dkYi9saW51eC1uYXQuYzoxMzU4 Ci0gICMxNCAweDAwMDAwMDAwMDA2ODI4NGQgaW4gZGVsZWdhdGVfZGV0YWNoIChzZWxmPTB4ZTdi ZDMwLCBhcmcxPTB4MCwgYXJnMj0xKSBhdCAuLi4vc3JjL2dkYi90YXJnZXQtZGVsZWdhdGVzLmM6 MzQKLSAgIzE1IDB4MDAwMDAwMDAwMDY5NDE0MSBpbiB0YXJnZXRfZGV0YWNoIChhcmdzPTB4MCwg ZnJvbV90dHk9MSkgYXQgLi4uL3NyYy9nZGIvdGFyZ2V0LmM6MjI0MQotICAjMTYgMHgwMDAwMDAw MDAwNjMwNTgyIGluIGRldGFjaF9jb21tYW5kIChhcmdzPTB4MCwgZnJvbV90dHk9MSkgYXQgLi4u L3NyYy9nZGIvaW5mY21kLmM6Mjk3NQotICAuLi4KLQotVGVzdGVkIG9uIHg4Ni02NCBGZWRvcmEg MjMuICBBbHNvIGNvbmZpcm1lZCB0aGUgdGVzdCBwYXNzZXMgYWdhaW5zdAotZ2Ric2VydmVyIHdp dGggd2l0aCAibWFpbnQgc2V0IHRhcmdldC1ub24tc3RvcCIuCi0KLWdkYi9DaGFuZ2VMb2c6Ci15 eXl5LW1tLWRkICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotCi0JKiBsaW51eC1u YXQuYyAoYXR0YWNoX3Byb2NfdGFza19sd3BfY2FsbGJhY2spOiBBZGQgdGhlIHRocmVhZCB0bwot CUdEQidzIHRocmVhZCBsaXN0LgotCi10ZXN0c3VpdGUvQ2hhbmdlTG9nOgoteXl5eS1tbS1kZCAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLQotCSogZ2RiLnRocmVhZHMvY2xvbmUt YXR0YWNoLWRldGFjaC5jOiBOZXcgZmlsZS4KLQkqIGdkYi50aHJlYWRzL2Nsb25lLWF0dGFjaC1k ZXRhY2guZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdkYi9saW51eC1uYXQuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNSArKwotIGdkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv Y2xvbmUtYXR0YWNoLWRldGFjaC5jICAgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKwotIGdk Yi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5leHAgfCA2MyArKysr KysrKysrKysrKysrKysrKysrCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKQot IGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2Nsb25lLWF0dGFj aC1kZXRhY2guYwotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRz L2Nsb25lLWF0dGFjaC1kZXRhY2guZXhwCi0KLWRpZmYgLS1naXQgYS9nZGIvbGludXgtbmF0LmMg Yi9nZGIvbGludXgtbmF0LmMKLWluZGV4IDA4MjliY2IuLjIwMjVjMTkgMTAwNjQ0Ci0tLS0gYS9n ZGIvbGludXgtbmF0LmMKLSsrKyBiL2dkYi9saW51eC1uYXQuYwotQEAgLTEwODgsNiArMTA4OCwx MSBAQCBhdHRhY2hfcHJvY190YXNrX2x3cF9jYWxsYmFjayAocHRpZF90IHB0aWQpCi0gCSAgLyog V2UgbmVlZCB0byB3YWl0IGZvciBhIHN0b3AgYmVmb3JlIGJlaW5nIGFibGUgdG8gbWFrZSB0aGUK LSAJICAgICBuZXh0IHB0cmFjZSBjYWxsIG9uIHRoaXMgTFdQLiAgKi8KLSAJICBscC0+bXVzdF9z ZXRfcHRyYWNlX2ZsYWdzID0gMTsKLSsKLSsJICAvKiBBbHNvIGFkZCB0aGUgTFdQIHRvIGdkYidz IHRocmVhZCBsaXN0LCBpbiBjYXNlIGEKLSsJICAgICBtYXRjaGluZyBsaWJ0aHJlYWRfZGIgaXMg bm90IGZvdW5kIChvciB0aGUgcHJvY2VzcyB1c2VzCi0rCSAgICAgcmF3IGNsb25lKS4gICovCi0r CSAgYWRkX3RocmVhZCAobHAtPnB0aWQpOwotIAl9Ci0gCi0gICAgICAgcmV0dXJuIDE7Ci1kaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9jbG9uZS1hdHRhY2gtZGV0YWNoLmMg Yi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2Nsb25lLWF0dGFjaC1kZXRhY2guYwotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmRhYThmMWYKLS0tLSAvZGV2L251bGwKLSsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5jCi1AQCAt MCwwICsxLDY2IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK LSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsqLwotKwot KyNkZWZpbmUgX0dOVV9TT1VSQ0UKLSsjaW5jbHVkZSA8c2NoZWQuaD4KLSsjaW5jbHVkZSA8YXNz ZXJ0Lmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSsj aW5jbHVkZSA8c3lzL3dhaXQuaD4KLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0rCi0rI2RlZmluZSBT VEFDS19TSVpFIDB4MTAwMAotKwotK2ludCBjbG9uZV9waWQ7Ci0rCi0rc3RhdGljIGludAotK2Ns b25lX2ZuICh2b2lkICp1bnVzZWQpCi0rewotKyAgLyogV2FpdCBmb3IgYWxhcm0uICAqLwotKyAg d2hpbGUgKDEpCi0rICAgIHNsZWVwICgxKTsKLSsgIHJldHVybiAwOwotK30KLSsKLStpbnQKLStt YWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0rewotKyAgdW5zaWduZWQgY2hhciAqc3RhY2s7 Ci0rICBpbnQgcmVzOwotKwotKyAgYWxhcm0gKDMwMCk7Ci0rCi0rICBzdGFjayA9IG1hbGxvYyAo U1RBQ0tfU0laRSk7Ci0rICBhc3NlcnQgKHN0YWNrICE9IE5VTEwpOwotKwotKyNkZWZpbmUgQ0xP TkVfRkxBR1MgKENMT05FX1RIUkVBRCB8IENMT05FX1NJR0hBTkQgfCBDTE9ORV9WTSkKLSsKLSsj aWZkZWYgX19pYTY0X18KLSsgIGNsb25lX3BpZCA9IF9fY2xvbmUyIChjbG9uZV9mbiwgc3RhY2ss IFNUQUNLX1NJWkUsIENMT05FX0ZMQUdTLCBOVUxMKTsKLSsjZWxzZQotKyAgY2xvbmVfcGlkID0g Y2xvbmUgKGNsb25lX2ZuLCBzdGFjayArIFNUQUNLX1NJWkUsIENMT05FX0ZMQUdTLCBOVUxMKTsK LSsjZW5kaWYKLSsKLSsgIGFzc2VydCAoY2xvbmVfcGlkID4gMCk7Ci0rCi0rICAvKiBXYWl0IGZv ciBhbGFybS4gICovCi0rICB3aGlsZSAoMSkKLSsgICAgc2xlZXAgKDEpOwotKwotKyAgcmV0dXJu IDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvY2xvbmUtYXR0 YWNoLWRldGFjaC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2Nsb25lLWF0dGFjaC1k ZXRhY2guZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMDY1MjEwOAot LS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9jbG9uZS1hdHRh Y2gtZGV0YWNoLmV4cAotQEAgLTAsMCArMSw2MyBAQAotKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsjIENvcHlyaWdodCAyMDE2IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsj Ci0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K LSsKLSsjIFRlc3QgYXR0YWNoIC8gZGV0YWNoIGZyb20gYSBwcm9jZXNzIHRoYXQgdXNlcyByYXcg Y2xvbmUuICBXZSB1c2UgcmF3Ci0rIyBjbG9uZSBhcyBwcm94eSBmb3Igd2hlbiBsaWJ0aHJlYWRf ZGIgaXMgbm90IGF2YWlsYWJsZS4KLSsKLSsjIFRoaXMgb25seSB3b3JrcyBvbiB0YXJnZXRzIHdp dGggdGhlIExpbnV4IGtlcm5lbC4KLStpZiAhW2lzdGFyZ2V0ICotKi1saW51eCpdIHsKLSsgICAg cmV0dXJuCi0rfQotKwotK2lmIHshW2Nhbl9zcGF3bl9mb3JfYXR0YWNoXX0gewotKyAgICByZXR1 cm4gMAotK30KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZQotKwotK2lmIFtwcmVwYXJlX2Zvcl90ZXN0 aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIHtkZWJ1Z31dIHsKLSsg ICAgcmV0dXJuIC0xCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgJHtiaW5maWxlfQotKwotK3NldCB0 ZXN0X3NwYXduX2lkIFtzcGF3bl93YWl0X2Zvcl9hdHRhY2ggJGJpbmZpbGVdCi0rc2V0IHRlc3Rw aWQgW3NwYXduX2lkX2dldF9waWQgJHRlc3Rfc3Bhd25faWRdCi0rCi0rIyBOYXRpdmUvZ2Ric2Vy dmVyLgotK3NldCB0aHJlYWRfcmUgIihMV1AgJGRlY2ltYWx8VGhyZWFkICkiCi0rCi0rIyBUcnkg YXR0YWNoIC8gZGV0YWNoIGEgZmV3IHRpbWVzLCBpbiBjYXNlIEdEQiBlbmRzIHVwIHdpdGggc3Rh bGUKLSsjIHN0YXRlIGFmdGVyIGRldGFjaGluZy4KLSsKLStzZXQgYXR0ZW1wdHMgMwotK2ZvciB7 c2V0IGF0dGVtcHQgMX0geyRhdHRlbXB0IDw9ICRhdHRlbXB0c30ge2luY3IgYXR0ZW1wdH0gewot KyAgICB3aXRoX3Rlc3RfcHJlZml4ICJmZyBhdHRhY2ggJGF0dGVtcHQiIHsKLSsKLSsJZ2RiX3Rl c3QgImF0dGFjaCAkdGVzdHBpZCIgXAotKwkgICAgIkF0dGFjaGluZyB0byBwcm9ncmFtLipwcm9j ZXNzICR0ZXN0cGlkLioiIFwKLSsJICAgICJhdHRhY2giCi0rCi0rCWdkYl90ZXN0ICJpbmZvIHRo cmVhZHMiIFwKLSsJICAgICIxLioke3RocmVhZF9yZX0uKlxyXG4uKjIuKiR7dGhyZWFkX3JlfS4q IiBcCi0rCSAgICAiaW5mbyB0aHJlYWRzIHNob3dzIHR3byBMV1BzIgotKwotKwlnZGJfdGVzdCAi ZGV0YWNoIiAiRGV0YWNoaW5nIGZyb20gLiosIHByb2Nlc3MgJHRlc3RwaWQiCi0rICAgIH0KLSt9 Ci0rCi0ra2lsbF93YWl0X3NwYXduZWRfcHJvY2VzcyAkdGVzdF9zcGF3bl9pZAotLS0gCi0yLjUu NQotCgpkaWZmIC0tZ2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmFhMWMyLi4wMDAwMDAwCi0tLSBhL2dk Yi11cHN0cmVhbS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3MzMgKzAsMCBAQAotaHR0cDov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDMvbXNnMDAwMTMuaHRtbAotU3Vi amVjdDogW1BBVENIIDEvMl0gRml4IFBSIGdkYi8xOTY3NjogRGlzYWJsZSBkaXNwbGFjZWQgc3Rl cHBpbmcgaWYgL3Byb2Mgbm90IG1vdW50ZWQKLQotT24gR05VL0xpbnV4IGFyY2hzIHRoYXQgc3Vw cG9ydCBkaXNwbGFjZWQgc3RlcHBpbmcsIGlmIC9wcm9jIGlzIG5vdAotbW91bnRlZCwgR0RCIGdl dHMgc3R1Y2sgbm90IGFibGUgdG8gc3RlcCBwYXN0IGJyZWFrcG9pbnRzOgotCi0gKGdkYikgYwot IENvbnRpbnVpbmcuCi0gZGxfbWFpbiAocGhkcj08b3B0aW1pemVkIG91dD4sIHBobnVtPTxvcHRp bWl6ZWQgb3V0PiwgdXNlcl9lbnRyeT08b3B0aW1pemVkIG91dD4sIGF1eHY9PG9wdGltaXplZCBv dXQ+KSBhdCBydGxkLmM6MjE2MwotIDIxNjMgICAgICBMSUJDX1BST0JFIChpbml0X2NvbXBsZXRl LCAyLCBMTV9JRF9CQVNFLCByKTsKLSBDYW5ub3QgZmluZCBBVF9FTlRSWSBhdXhpbGlhcnkgdmVj dG9yIGVudHJ5LgotIChnZGIpIGMKLSBDb250aW51aW5nLgotIGRsX21haW4gKHBoZHI9PG9wdGlt aXplZCBvdXQ+LCBwaG51bT08b3B0aW1pemVkIG91dD4sIHVzZXJfZW50cnk9PG9wdGltaXplZCBv dXQ+LCBhdXh2PTxvcHRpbWl6ZWQgb3V0PikgYXQgcnRsZC5jOjIxNjMKLSAyMTYzICAgICAgTElC Q19QUk9CRSAoaW5pdF9jb21wbGV0ZSwgMiwgTE1fSURfQkFTRSwgcik7Ci0gQ2Fubm90IGZpbmQg QVRfRU5UUlkgYXV4aWxpYXJ5IHZlY3RvciBlbnRyeS4KLSAoZ2RiKQotCi1UaGF0J3MgYmVjYXVz ZSBHREIgY2FuJ3QgZmlndXJlIG91dCB3aGVyZSB0aGUgc2NyYXRjaCBwYWQgaXMuCi0KLVRoaXMg aXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgdGhlIGVhcmxpZXIgY2hhbmdlcyB0byBtYWtl IHRoZQotTGludXggbmF0aXZlIHRhcmdldCBhbHdheXMgd29yayBpbiBub24tc3RvcCBtb2RlLgot Ci1UaGlzIGNvbW1pdCBtYWtlcyBHREIgZGV0ZWN0IHRoZSBjYXNlIGFuZCBmYWxsYmFjayB0byBz dGVwcGluZyBvdmVyCi1icmVha3BvaW50cyBpbi1saW5lLgotCi1nZGIvQ2hhbmdlTG9nOgotMjAx Ni0wMy0wMSAgUGVkcm8gQWx2ZXMgIDxwZWRyb0BjYXNjYWlzLmxhbj4KLQotCVBSIGdkYi8xOTY3 NgotCSogaW5mcnVuLmMgKGRpc3BsYWNlZF9zdGVwX3ByZXBhcmUpOiBBbHNvIGRpc2FibGUgZGlz cGxhY2VkCi0Jc3RlcHBpbmcgb24gTk9UX1NVUFBPUlRFRF9FUlJPUi4KLQkqIGxpbnV4LXRkZXAu YyAobGludXhfZGlzcGxhY2VkX3N0ZXBfbG9jYXRpb24pOiBJZiByZWFkaW5nIGF1eHYKLQlmYWls cywgdGhyb3cgTk9UX1NVUFBPUlRFRF9FUlJPUiBpbnN0ZWFkIG9mIGdlbmVyaWMgZXJyb3IuCi0t LS0KLSBnZGIvaW5mcnVuLmMgICAgIHwgMyArKy0KLSBnZGIvbGludXgtdGRlcC5jIHwgMyArKy0K LSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwotaW5kZXggM2U4YzllMC4uNjk2 MTA1ZCAxMDA2NDQKLS0tLSBhL2dkYi9pbmZydW4uYwotKysrIGIvZ2RiL2luZnJ1bi5jCi1AQCAt MTg5NCw3ICsxODk0LDggQEAgZGlzcGxhY2VkX3N0ZXBfcHJlcGFyZSAocHRpZF90IHB0aWQpCi0g ICAgIHsKLSAgICAgICBzdHJ1Y3QgZGlzcGxhY2VkX3N0ZXBfaW5mZXJpb3Jfc3RhdGUgKmRpc3Bs YWNlZF9zdGF0ZTsKLSAKLS0gICAgICBpZiAoZXguZXJyb3IgIT0gTUVNT1JZX0VSUk9SKQotKyAg ICAgIGlmIChleC5lcnJvciAhPSBNRU1PUllfRVJST1IKLSsJICAmJiBleC5lcnJvciAhPSBOT1Rf U1VQUE9SVEVEX0VSUk9SKQotIAl0aHJvd19leGNlcHRpb24gKGV4KTsKLSAKLSAgICAgICBpZiAo ZGVidWdfaW5mcnVuKQotZGlmZiAtLWdpdCBhL2dkYi9saW51eC10ZGVwLmMgYi9nZGIvbGludXgt dGRlcC5jCi1pbmRleCA1NTVjMzAyLi5mMTk3YWE3IDEwMDY0NAotLS0tIGEvZ2RiL2xpbnV4LXRk ZXAuYwotKysrIGIvZ2RiL2xpbnV4LXRkZXAuYwotQEAgLTI0MjYsNyArMjQyNiw4IEBAIGxpbnV4 X2Rpc3BsYWNlZF9zdGVwX2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKLSAgICAg IGxvY2F0aW9uLiAgVGhlIGF1eGlsaWFyeSB2ZWN0b3IgZ2V0cyB1cyB0aGUgUG93ZXJQQy1zaWRl IGVudHJ5Ci0gICAgICBwb2ludCBhZGRyZXNzIGluc3RlYWQuICAqLwotICAgaWYgKHRhcmdldF9h dXh2X3NlYXJjaCAoJmN1cnJlbnRfdGFyZ2V0LCBBVF9FTlRSWSwgJmFkZHIpIDw9IDApCi0tICAg IGVycm9yIChfKCJDYW5ub3QgZmluZCBBVF9FTlRSWSBhdXhpbGlhcnkgdmVjdG9yIGVudHJ5LiIp KTsKLSsgICAgdGhyb3dfZXJyb3IgKE5PVF9TVVBQT1JURURfRVJST1IsCi0rCQkgXygiQ2Fubm90 IGZpbmQgQVRfRU5UUlkgYXV4aWxpYXJ5IHZlY3RvciBlbnRyeS4iKSk7Ci0gCi0gICAvKiBNYWtl IGNlcnRhaW4gdGhhdCB0aGUgYWRkcmVzcyBwb2ludHMgYXQgcmVhbCBjb2RlLCBhbmQgbm90IGEK LSAgICAgIGZ1bmN0aW9uIGRlc2NyaXB0b3IuICAqLwotLS0gCi0yLjUuMAotCi0KLQotaHR0cDov L3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDMvbXNnMDAwMTQuaHRtbAotU3Vi amVjdDogW1BBVENIIDIvMl0gRml4IFBSIGdkYi8xOTY3NjogSW50ZXJuYWwgZXJyb3IgaW4gbGlu dXgtdGhyZWFkLmRiLmMgaWYgL3Byb2Mgbm90IG1vdW50ZWQKLQotSWYgL3Byb2MgaXMgbm90IG1v dW50ZWQsIEdEQiBmYWlscyBhbiBhc3NlcnRpb24gaW4gZmluZF9uZXdfdGhyZWFkc19vbmNlOgot Ci0gQ29udGludWluZy4KLSAvaG9tZS9wZWRyby9nZGIvbXlnaXQvc3JjL2dkYi9saW51eC10aHJl YWQtZGIuYzoxMjQ5OiBpbnRlcm5hbC1lcnJvcjogZmluZF9uZXdfdGhyZWFkc19vbmNlOiBBc3Nl cnRpb24gYCF0YXJnZXRfaGFzX2V4ZWN1dGlvbicgZmFpbGVkLgotIEEgcHJvYmxlbSBpbnRlcm5h bCB0byBHREIgaGFzIGJlZW4gZGV0ZWN0ZWQsCi0gZnVydGhlciBkZWJ1Z2dpbmcgbWF5IHByb3Zl IHVucmVsaWFibGUuCi0gUXVpdCB0aGlzIGRlYnVnZ2luZyBzZXNzaW9uPyAoeSBvciBuKQotCi1U aGF0IHdhcyBzdXBwb3NlZCB0byBjYXRjaCBtaXN1c2VzIG9mIHRkX3RhX3Rocl9pdGVyLCB3aGlj aCBpcyB1bnNhZmUKLWZvciBsaXZlIGRlYnVnZ2luZy4gIEhvd2V2ZXIsIGlmIC9wcm9jIGlzIG5v dCBtb3VudGVkLCB3ZSBzdGlsbAotZmFsbGJhY2sgdG8gdXNpbmcgaXQuCi0KLUkgZGlkbid0IGJv dGhlciB3aXRoIGEgd2FybmluZywgYmVjYXVzZSBHREIgYWxyZWFkeSBwcmludHMgc2V2ZXJhbAot b3RoZXJzIHJlbGF0ZWQgdG8gZmFpbGluZyB0byBvcGVuIC9wcm9jIGZpbGVzLgotCi1nZGIvQ2hh bmdlTG9nOgotMjAxNi0wMy0wMSAgUGVkcm8gQWx2ZXMgIDxwZWRyb0BjYXNjYWlzLmxhbj4KLQot CVBSIGdkYi8xOTY3NgotCSogbGludXgtdGhyZWFkLWRiLmMgKHRyeV90aHJlYWRfZGJfbG9hZF8x KTogTGVhdmUKLQlpbmZvLT50ZF90YV90aHJfaXRlcl9wIE5VTEwgaWZmIGRlYnVnZ2luZyBhIGxp dmUgcHJvY2VzcyBhbmQgd2UKLQloYXZlIC9wcm9jIGFjY2Vzcy4KLQkoZmluZF9uZXdfdGhyZWFk c19vbmNlKTogQXNzZXJ0IHRoYXQgd2UgaGF2ZSBhIG5vbi1OVUxMCi0JaW5mby0+dGRfdGFfdGhy X2l0ZXJfcCBpbnN0ZWFkIG9mIGNoZWNraW5nIHdoZXRoZXIgdGhlIHRhcmdldCBoYXMKLQlleGVj dXRpb24uCi0tLS0KLSBnZGIvbGludXgtdGhyZWFkLWRiLmMgfCAxNiArKysrKysrKysrLS0tLS0t Ci0gMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9nZGIvbGludXgtdGhyZWFkLWRiLmMgYi9nZGIvbGludXgtdGhyZWFkLWRiLmMK LWluZGV4IDFlYjQ1N2QuLmNlNjBiZWIgMTAwNjQ0Ci0tLS0gYS9nZGIvbGludXgtdGhyZWFkLWRi LmMKLSsrKyBiL2dkYi9saW51eC10aHJlYWQtZGIuYwotQEAgLTU2NCw3ICs1NjQsNiBAQCB0cnlf dGhyZWFkX2RiX2xvYWRfMSAoc3RydWN0IHRocmVhZF9kYl9pbmZvICppbmZvKQotIAotICAgLyog VGhlc2UgYXJlIGVzc2VudGlhbC4gICovCi0gICBDSEsgKFREQl9WRVJCT1NFX0RMU1lNIChpbmZv LCB0ZF90YV9tYXBfbHdwMnRocikpOwotLSAgQ0hLIChUREJfVkVSQk9TRV9ETFNZTSAoaW5mbywg dGRfdGFfdGhyX2l0ZXIpKTsKLSAgIENISyAoVERCX1ZFUkJPU0VfRExTWU0gKGluZm8sIHRkX3Ro cl92YWxpZGF0ZSkpOwotICAgQ0hLIChUREJfVkVSQk9TRV9ETFNZTSAoaW5mbywgdGRfdGhyX2dl dF9pbmZvKSk7Ci0gCi1AQCAtNTcyLDEwICs1NzEsNiBAQCB0cnlfdGhyZWFkX2RiX2xvYWRfMSAo c3RydWN0IHRocmVhZF9kYl9pbmZvICppbmZvKQotICAgVERCX0RMU1lNIChpbmZvLCB0ZF90aHJf dGxzX2dldF9hZGRyKTsKLSAgIFREQl9ETFNZTSAoaW5mbywgdGRfdGhyX3Rsc2Jhc2UpOwotIAot LSN1bmRlZiBUREJfVkVSQk9TRV9ETFNZTQotLSN1bmRlZiBUREJfRExTWU0KLS0jdW5kZWYgQ0hL Ci0tCi0gICAvKiBJdCdzIGJlc3QgdG8gYXZvaWQgdGRfdGFfdGhyX2l0ZXIgaWYgcG9zc2libGUu ICBUaGF0IHdhbGtzIGRhdGEKLSAgICAgIHN0cnVjdHVyZXMgaW4gdGhlIGluZmVyaW9yJ3MgYWRk cmVzcyBzcGFjZSB0aGF0IG1heSBiZSBjb3JydXB0ZWQsCi0gICAgICBvciwgaWYgdGhlIHRhcmdl dCBpcyBydW5uaW5nLCBtYXkgY2hhbmdlIHdoaWxlIHdlIHdhbGsgdGhlbS4gIElmCi1AQCAtNTg3 LDYgKzU4MiwxNSBAQCB0cnlfdGhyZWFkX2RiX2xvYWRfMSAoc3RydWN0IHRocmVhZF9kYl9pbmZv ICppbmZvKQotICAgICAgY3VycmVudGx5IG9uIGNvcmUgdGFyZ2V0cywgYXMgaXQgdXNlcyBwdHJh Y2UgZGlyZWN0bHkuICAqLwotICAgaWYgKHRhcmdldF9oYXNfZXhlY3V0aW9uCi0gICAgICAgJiYg bGludXhfcHJvY190YXNrX2xpc3RfZGlyX2V4aXN0cyAocHRpZF9nZXRfcGlkIChpbmZlcmlvcl9w dGlkKSkpCi0rICAgIGluZm8tPnRkX3RhX3Rocl9pdGVyX3AgPSBOVUxMOwotKyAgZWxzZQotKyAg ICBDSEsgKFREQl9WRVJCT1NFX0RMU1lNIChpbmZvLCB0ZF90YV90aHJfaXRlcikpOwotKwotKyN1 bmRlZiBUREJfVkVSQk9TRV9ETFNZTQotKyN1bmRlZiBUREJfRExTWU0KLSsjdW5kZWYgQ0hLCi0r Ci0rICBpZiAoaW5mby0+dGRfdGFfdGhyX2l0ZXJfcCA9PSBOVUxMKQotICAgICB7Ci0gICAgICAg c3RydWN0IGx3cF9pbmZvICpscDsKLSAgICAgICBpbnQgcGlkID0gcHRpZF9nZXRfcGlkIChpbmZl cmlvcl9wdGlkKTsKLUBAIC0xMjQ2LDcgKzEyNTAsNyBAQCBmaW5kX25ld190aHJlYWRzX29uY2Ug KHN0cnVjdCB0aHJlYWRfZGJfaW5mbyAqaW5mbywgaW50IGl0ZXJhdGlvbiwKLSAgIGRhdGEubmV3 X3RocmVhZHMgPSAwOwotIAotICAgLyogU2VlIGNvbW1lbnQgaW4gdGhyZWFkX2RiX3VwZGF0ZV90 aHJlYWRfbGlzdC4gICovCi0tICBnZGJfYXNzZXJ0ICghdGFyZ2V0X2hhc19leGVjdXRpb24pOwot KyAgZ2RiX2Fzc2VydCAoaW5mby0+dGRfdGFfdGhyX2l0ZXJfcCAhPSBOVUxMKTsKLSAKLSAgIFRS WQotICAgICB7Ci0tLSAKLTIuNS4wCi0KLQotCi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2Ri LXBhdGNoZXMvMjAxNi0wMy9tc2cwMDI0Ni5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIFN1Z2dlc3Qg cnVubmluZyBnZGJzZXJ2ZXIgZm9yIGEgUElEIGluIGNvbnRhaW5lcgotCi0KLS0tYXpMSEZOeU4z MllDUUdDVQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250 ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLWN1cnJlbnRseQotCWdkYiAtcCA8cGlk IGZyb20gYSBjb250YWluZXI+Ci13aWxsIHByaW50OgotCXdhcm5pbmc6IFRhcmdldCBhbmQgZGVi dWdnZXIgYXJlIGluIGRpZmZlcmVudCBQSUQgbmFtZXNwYWNlczsgdGhyZWFkIGxpc3RzIGFuZCBv dGhlciBkYXRhIGFyZSBsaWtlbHkgdW5yZWxpYWJsZQotCi1CVFcgaXQgaXMgYSBiaXQgbG9zdCBp biBhbGwgdGhlIG90aGVyIG1lc3NhZ2VzLiAgRnVsbCBzY3JlZW4gb3V0cHV0IGlzIGluOgotCWh0 dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE5ODI4Ci0KLUl0 IGNvcnJlY3RseSBzdGF0ZXMgdGhlIHByb2JsZW0gYnV0IGl0IGRvZXMgbm90IHNheSBob3cgdG8g c29sdmUgaXQuCi0KLUlzIGF0IGxlYXN0IHRoaXMgbGl0dGxlIHN1Z2dlc3Rpb24gT0s/Ci0KLU9y aWdpbmFsbHkgSSB3YW50ZWQgdG8gc3VnZ2VzdCBhbHNvIHRoZSBEb2NrZXIgIi1wIDEyMzQ6MTIz NCIgcGFyYW1ldGVyIGJ1dAotSSBzZWUgdGhlIGNvbnRhaW5lcnMgYXJlIG1vcmUgZ2VuZXJhbCB0 b3BpYyB0aGFuIGp1c3QgRG9ja2VyIChldmVuIEx4QyBldGMuKS4KLQotQWNjb3JkaW5nIHRvIEdh cnkgZnV0dXJlIEdEQnMgc2hvdWxkIGJlIGFibGUgdG8gd29yayBldmVuIHdpdGhvdXQgZ2Ric2Vy dmVyLgotQnV0IGN1cnJlbnRseSBnZGJzZXJ2ZXIgaXMgc3RpbGwgcmVxdWlyZWQuCi0KLQotVGhh bmtzLAotSmFuCi0KLS0tYXpMSEZOeU4zMllDUUdDVQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1l PTEKLQotZ2RiL0NoYW5nZUxvZwotMjAxNi0wMy0xNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBsaW51eC10aHJlYWQtZGIuYyAoY2hlY2tfcGlkX25h bWVzcGFjZV9tYXRjaCk6IEV4dGVuZCB0aGUgbWVzc2FnZS4KLQotZGlmZiAtLWdpdCBhL2dkYi9s aW51eC10aHJlYWQtZGIuYyBiL2dkYi9saW51eC10aHJlYWQtZGIuYwotaW5kZXggMWViNDU3ZC4u MjExNjZiZiAxMDA2NDQKLS0tLSBhL2dkYi9saW51eC10aHJlYWQtZGIuYwotKysrIGIvZ2RiL2xp bnV4LXRocmVhZC1kYi5jCi1AQCAtMTAyMCw3ICsxMDIwLDggQEAgY2hlY2tfcGlkX25hbWVzcGFj ZV9tYXRjaCAodm9pZCkKLSAJewotIAkgIHdhcm5pbmcgKF8gKCJUYXJnZXQgYW5kIGRlYnVnZ2Vy IGFyZSBpbiBkaWZmZXJlbnQgUElEICIKLSAJCSAgICAgICJuYW1lc3BhY2VzOyB0aHJlYWQgbGlz dHMgYW5kIG90aGVyIGRhdGEgYXJlICIKLS0JCSAgICAgICJsaWtlbHkgdW5yZWxpYWJsZSIpKTsK LSsJCSAgICAgICJsaWtlbHkgdW5yZWxpYWJsZS4gICIKLSsJCSAgICAgICJDb25uZWN0IHRvIGdk YnNlcnZlciBpbnNpZGUgdGhlIGNvbnRhaW5lci4iKSk7Ci0gCX0KLSAgICAgfQotIH0KLQotLS1h ekxIRk55TjMyWUNRR0NVLS0KLQotCi0KLWNvbW1pdCBmZWYzY2I5ZjNhYTg0MDE4ZDEwODY2Zjg5 MjI4YWUzZjIzZTVjYTdlCi1BdXRob3I6IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgotRGF0ZTogICBXZWQgQXByIDYgMTU6NTc6MDggMjAxNiArMDIwMAotCi0gICAg UHJpbnQgdGhlICJmaWxlIiBjb21tYW5kIHN1Z2dlc3Rpb24gaW4gZXhlY19maWxlX2xvY2F0ZV9h dHRhY2gKLSAgICAKLSAgICBjdXJyZW50bHk6Ci0gICAgCSQgZ2Ric2VydmVyLTcuOSA6MTIzNCB0 cnVlICYKLSAgICAJJCBnZGIgLXEgLWV4ICd0YXJnZXQgcmVtb3RlIDoxMjM0JyAjIHRoYXQgLXEg aXMgbm90IHJlbGV2YW50IGhlcmUKLSAgICAJUmVtb3RlIGRlYnVnZ2luZyB1c2luZyA6MTIzNAot ICAgIAl3YXJuaW5nOiBDb3VsZCBub3QgbG9hZCB2c3lzY2FsbCBwYWdlIGJlY2F1c2Ugbm8gZXhl Y3V0YWJsZSB3YXMgc3BlY2lmaWVkCi0gICAgCXRyeSB1c2luZyB0aGUgImZpbGUiIGNvbW1hbmQg Zmlyc3QuCi0gICAgCTB4MDAwMDdmZmZmN2RkY2M4MCBpbiA/PyAoKQotICAgIAkoZ2RiKSBiIG1h aW4KLSAgICAJTm8gc3ltYm9sIHRhYmxlIGlzIGxvYWRlZC4gIFVzZSB0aGUgImZpbGUiIGNvbW1h bmQuCi0gICAgCU1ha2UgYnJlYWtwb2ludCBwZW5kaW5nIG9uIGZ1dHVyZSBzaGFyZWQgbGlicmFy eSBsb2FkPyAoeSBvciBbbl0pIF8KLSAgICAKLSAgICBQcm92aWRlIG1vcmUgc3VnZ2VzdGl2ZSBt ZXNzYWdlIHRvIHVzZSB0aGUgImZpbGUiIGNvbW1hbmQuCi0gICAgCi0gICAgZ2RiL0NoYW5nZUxv ZwotICAgIDIwMTYtMDQtMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KLSAgICAJICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gICAgCi0g ICAgCSogZXhlYy5jIChleGVjX2ZpbGVfbG9jYXRlX2F0dGFjaCk6IFByaW50IHdhcm5pbmcgZm9y IHVuc3VwcG9ydGVkCi0gICAgCXRhcmdldF9waWRfdG9fZXhlY19maWxlLgotICAgIAkqIHN5bWZp bGUtbWVtLmMgKGFkZF92c3lzY2FsbF9wYWdlKTogUmVtb3ZlIHRoZSAiZmlsZSIgY29tbWFuZAot ICAgIAltZXNzYWdlIHBhcnQuCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFu Z2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsyMDE2LTA0LTA2ICBKYW4gS3JhdG9jaHZpbCAgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCSAgICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRo YXQuY29tPgotKwotKwkqIGV4ZWMuYyAoZXhlY19maWxlX2xvY2F0ZV9hdHRhY2gpOiBQcmludCB3 YXJuaW5nIGZvciB1bnN1cHBvcnRlZAotKwl0YXJnZXRfcGlkX3RvX2V4ZWNfZmlsZS4KLSsJKiBz eW1maWxlLW1lbS5jIChhZGRfdnN5c2NhbGxfcGFnZSk6IFJlbW92ZSB0aGUgImZpbGUiIGNvbW1h bmQKLSsJbWVzc2FnZSBwYXJ0LgotKwotIDIwMTYtMDQtMDQgIFNpbW9uIE1hcmNoaSAgPHNpbW9u Lm1hcmNoaUBlcmljc3Nvbi5jb20+Ci0gCi0gCSogY2xpL2NsaS1kZWNvZGUuYyAoaGVscF9jbWRf bGlzdCk6IEZpeCBmdW5jdGlvbiBkb2MgYW5kIHJlbW92ZQotLS0tIGEvZ2RiL2V4ZWMuYwotKysr IGIvZ2RiL2V4ZWMuYwotQEAgLTE1MSw3ICsxNTEsMTMgQEAgZXhlY19maWxlX2xvY2F0ZV9hdHRh Y2ggKGludCBwaWQsIGludCBmcm9tX3R0eSkKLSAgIC8qIFRyeSB0byBkZXRlcm1pbmUgYSBmaWxl bmFtZSBmcm9tIHRoZSBwcm9jZXNzIGl0c2VsZi4gICovCi0gICBleGVjX2ZpbGUgPSB0YXJnZXRf cGlkX3RvX2V4ZWNfZmlsZSAocGlkKTsKLSAgIGlmIChleGVjX2ZpbGUgPT0gTlVMTCkKLS0gICAg cmV0dXJuOwotKyAgICB7Ci0rICAgICAgd2FybmluZyAoXygiTm8gZXhlY3V0YWJsZSBoYXMgYmVl biBzcGVjaWZpZWQgYW5kIHRhcmdldCBkb2VzIG5vdCAiCi0rCQkgInN1cHBvcnRcbiIKLSsJCSAi ZGV0ZXJtaW5pbmcgZXhlY3V0YWJsZSBhdXRvbWF0aWNhbGx5LiAgIgotKwkJICJUcnkgdXNpbmcg dGhlIFwiZmlsZVwiIGNvbW1hbmQuIikpOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotIAotICAg LyogSWYgZ2RiX3N5c3Jvb3QgaXMgbm90IGVtcHR5IGFuZCB0aGUgZGlzY292ZXJlZCBmaWxlbmFt ZQotICAgICAgaXMgYWJzb2x1dGUgdGhlbiBwcmVmaXggdGhlIGZpbGVuYW1lIHdpdGggZ2RiX3N5 c3Jvb3QuICAqLwotLS0tIGEvZ2RiL3N5bWZpbGUtbWVtLmMKLSsrKyBiL2dkYi9zeW1maWxlLW1l bS5jCi1AQCAtMjE0LDggKzIxNCw3IEBAIGFkZF92c3lzY2FsbF9wYWdlIChzdHJ1Y3QgdGFyZ2V0 X29wcyAqdGFyZ2V0LCBpbnQgZnJvbV90dHkpCi0gCSAgZm9ybWF0IHNob3VsZCBmaXggdGhpcy4g ICovCi0gCXsKLSAJICB3YXJuaW5nIChfKCJDb3VsZCBub3QgbG9hZCB2c3lzY2FsbCBwYWdlICIK LS0JCSAgICAgImJlY2F1c2Ugbm8gZXhlY3V0YWJsZSB3YXMgc3BlY2lmaWVkXG4iCi0tCQkgICAg ICJ0cnkgdXNpbmcgdGhlIFwiZmlsZVwiIGNvbW1hbmQgZmlyc3QuIikpOwotKwkJICAgICAiYmVj YXVzZSBubyBleGVjdXRhYmxlIHdhcyBzcGVjaWZpZWQiKSk7Ci0gCSAgcmV0dXJuOwotIAl9Ci0g ICAgICAgYXJncy5iZmQgPSBiZmQ7Ci0KLQotCi1jb21taXQgMmVmMzRkMTFmNjFkNzlkY2IxNTI3 MTNhYTA1OTA1MWQ4Y2QzMjk1ZAotQXV0aG9yOiBNYXJrdXMgTWV0emdlciA8bWFya3VzLnQubWV0 emdlckBpbnRlbC5jb20+Ci1EYXRlOiAgIEZyaSBGZWIgNSAwOTozMjo1MyAyMDE2ICswMTAwCi0K LSAgICBidHJhY2U6IGZpeCBQUiBnZGIvMTk4MjkKLSAgICAKLSAgICBUaGlzIGlzIGEgYmFja3Bv cnQgb2YKLSAgICAKLSAgICAzM2I0Nzc3Y2ExYjcgYnRyYWNlLCBmcmFtZTogZml4IGNyYXNoIGlu IGdldF9mcmFtZV90eXBlCi0gICAgYTAzOGZhM2UxNGE0IHN0YWNrOiBjaGVjayBmcmFtZV91bndp bmRfY2FsbGVyX2lkCi0gICAgMmYzZWY2MDZiOTEyIGZyYW1lOiBhZGQgc2tpcF90YWlsY2FsbF9m cmFtZXMKLSAgICAKLSAgICBJbiBza2lwX2FydGlmaWNpYWxfZnJhbWVzIHdlIHJlcGVhdGVkbHkg Y2FsbCBnZXRfcHJldl9mcmFtZV9hbHdheXMgdW50aWwgd2UgZ2V0Ci0gICAgYSBub24taW5saW5l IGFuZCBub24tdGFpbGNhbGwgZnJhbWUgYXNzdW1pbmcgdGhhdCB0aGVyZSBtdXN0IGJlIHN1Y2gg YSBmcmFtZQotICAgIGV2ZW50dWFsbHkuCi0gICAgCi0gICAgRm9yIHJlY29yZCB0YXJnZXRzLCBo b3dldmVyLCB3ZSBtYXkgaGF2ZSBhIGZyYW1lIGNoYWluIHRoYXQgY29uc2lzdHMgb25seSBvZgot ICAgIGFydGlmaWNpYWwgZnJhbWVzLiAgVGhpcyBsZWFkcyB0byBhIGNyYXNoIGluIGdldF9mcmFt ZV90eXBlIHdoZW4gZGVyZWZlcmVuY2luZyBhCi0gICAgTlVMTCBmcmFtZSBwb2ludGVyLgotICAg IAotICAgIENoYW5nZSBza2lwX2FydGlmaWNpYWxfZnJhbWVzIGFuZCBza2lwX3RhaWxjYWxsX2Zy YW1lcyB0byByZXR1cm4gTlVMTCBpbiBzdWNoIGEKLSAgICBjYXNlIGFuZCBtb2RpZnkgZWFjaCBj YWxsZXIgdG8gY29wZSB3aXRoIGEgTlVMTCByZXR1cm4uCi0gICAgCi0gICAgSW4gZnJhbWVfdW53 aW5kX2NhbGxlcl9wYyBhbmQgZnJhbWVfdW53aW5kX2NhbGxlcl9hcmNoLCB3ZSBzaW1wbHkgYXNz ZXJ0IHRoYXQKLSAgICB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgbm90IE5VTEwuICBUaGVpciBjYWxs ZXIgd2FzIHN1cHBvc2VkIHRvIGNoZWNrCi0gICAgZnJhbWVfdW53aW5kX2NhbGxlcl9pZCBiZWZv cmUgY2FsbGluZyB0aG9zZSBmdW5jdGlvbnMuCi0gICAgCi0gICAgSW4gb3RoZXIgY2FzZXMsIHdl IHRocm93biBhbiBlcnJvci4KLSAgICAKLSAgICBJbiBpbmZjbWQgZnVydGhlciBtb3ZlIHRoZSBz a2lwX3RhaWxjYWxsX2ZyYW1lcyBjYWxsIHRvIHRoZSBmb3J3YXJkLXN0ZXBwaW5nCi0gICAgY2Fz ZSBzaW5jZSB3ZSBkb24ndCBuZWVkIGEgZnJhbWUgZm9yIHJldmVyc2UgZXhlY3V0aW9uIGFuZCB3 ZSBkb24ndCB3YW50IHRvIGZhaWwKLSAgICBiZWNhdXNlIG9mIHRoYXQuICBSZXZlcnNlLWZpbmlz aCBkb2VzIG1ha2Ugc2Vuc2UgZm9yIGEgdGFpbGNhbGwgZnJhbWUuCi0gICAgCi0gICAgZ2RiLwot ICAgIAkqIGZyYW1lLmggKHNraXBfdGFpbGNhbGxfZnJhbWVzKTogTmV3LgotICAgIAkqIGluZmNt ZC5jIChmaW5pc2hfY29tbWFuZCk6IENhbGwgc2tpcF90YWlsY2FsbF9mcmFtZXMuCi0gICAgCSog ZnJhbWUuYyAoc2tpcF9hcnRpZmljaWFsX2ZyYW1lcyk6IFJldHVybiBOVUxMIGlmIG9ubHkgYXJ0 aWZpY2lhbCBmcmFtZXMKLSAgICAJYXJlIGZvdW5kLiAgVXBkYXRlIGNvbW1lbnQuCi0gICAgCShm cmFtZV9wb3ApOiBDYWxsIHNraXBfdGFpbGNhbGxfZnJhbWVzLgotICAgIAkoZnJhbWVfdW53aW5k X2NhbGxlcl9pZCk6IEhhbmRsZSBOVUxMIHJldHVybi4KLSAgICAJKGZyYW1lX3Vud2luZF9jYWxs ZXJfcGMsIGZyYW1lX3Vud2luZF9jYWxsZXJfYXJjaCk6IEFzc2VydCB0aGF0Ci0gICAgCXNraXBf YXJ0aWZpY2lhbF9mcmFtZXMgZG9lcyBub3QgcmV0dXJuIE5VTEwuCi0gICAgCShmcmFtZV9wb3Ap OiBBZGQgYW4gZXJyb3IgaWYgb25seSB0YWlsY2FsbCBmcmFtZXMgYXJlIGZvdW5kLgotICAgIAkq IGluZmNtZC5jIChmaW5pc2hfY29tbWFuZCk6IE1vdmUgc2tpcF90YWlsY2FsbF9mcmFtZXMgY2Fs bCBpbnRvIGZvcndhcmQtCi0gICAgCWV4ZWN1dGlvbiBjYXNlLiAgQWRkIGFuIGVycm9yIGlmIG9u bHkgdGFpbGNhbGwgZnJhbWVzIGFyZSBmb3VuZC4KLSAgICAJKiBzdGFjay5jIChmcmFtZV9pbmZv KTogQ2hlY2sgZnJhbWVfdW53aW5kX2NhbGxlcl9pZC4KLSAgICAKLSAgICB0ZXN0c3VpdGUvCi0g ICAgCSogZ2RiLmJ0cmFjZS90YWlsY2FsbC1vbmx5LmV4cDogTmV3LgotICAgIAkqIGdkYi5idHJh Y2UvdGFpbGNhbGwtb25seS5jOiBOZXcuCi0gICAgCSogZ2RiLmJ0cmFjZS94ODZfNjQtdGFpbGNh bGwtb25seS5TOiBOZXcuCi0gICAgCSogZ2RiLmJ0cmFjZS9pNjg2LXRhaWxjYWxsLW9ubHkuUzog TmV3LgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwz ICsxLDE5IEBACi0rMjAxNi0wMy0xNyAgTWFya3VzIE1ldHpnZXIgIDxtYXJrdXMudC5tZXR6Z2Vy QGludGVsLmNvbT4KLSsKLSsJUFIgZ2RiLzE5ODI5Ci0rCSogZnJhbWUuaCAoc2tpcF90YWlsY2Fs bF9mcmFtZXMpOiBOZXcuCi0rCSogaW5mY21kLmMgKGZpbmlzaF9jb21tYW5kKTogQ2FsbCBza2lw X3RhaWxjYWxsX2ZyYW1lcy4KLSsJKiBmcmFtZS5jIChza2lwX2FydGlmaWNpYWxfZnJhbWVzKTog UmV0dXJuIE5VTEwgaWYgb25seSBhcnRpZmljaWFsCi0rCWZyYW1lcyBhcmUgZm91bmQuICBVcGRh dGUgY29tbWVudC4KLSsJKGZyYW1lX3BvcCk6IENhbGwgc2tpcF90YWlsY2FsbF9mcmFtZXMuCi0r CShmcmFtZV91bndpbmRfY2FsbGVyX2lkKTogSGFuZGxlIE5VTEwgcmV0dXJuLgotKwkoZnJhbWVf dW53aW5kX2NhbGxlcl9wYywgZnJhbWVfdW53aW5kX2NhbGxlcl9hcmNoKTogQXNzZXJ0IHRoYXQK LSsJc2tpcF9hcnRpZmljaWFsX2ZyYW1lcyBkb2VzIG5vdCByZXR1cm4gTlVMTC4KLSsJKGZyYW1l X3BvcCk6IEFkZCBhbiBlcnJvciBpZiBvbmx5IHRhaWxjYWxsIGZyYW1lcyBhcmUgZm91bmQuCi0r CSogaW5mY21kLmMgKGZpbmlzaF9jb21tYW5kKTogTW92ZSBza2lwX3RhaWxjYWxsX2ZyYW1lcyBj YWxsIGludG8KLSsJZm9yd2FyZC1leGVjdXRpb24gY2FzZS4gIEFkZCBhbiBlcnJvciBpZiBvbmx5 IHRhaWxjYWxsIGZyYW1lcyBhcmUgZm91bmQuCi0rCSogc3RhY2suYyAoZnJhbWVfaW5mbyk6IENo ZWNrIGZyYW1lX3Vud2luZF9jYWxsZXJfaWQuCi0rCi0gMjAxNi0wMy0xNSAgUGVkcm8gQWx2ZXMg IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJUFIgZ2RiLzE5Njc2Ci0tLS0gYS9nZGIvZnJhbWUu YwotKysrIGIvZ2RiL2ZyYW1lLmMKLUBAIC00MjAsNyArNDIwLDggQEAgZnByaW50X2ZyYW1lIChz dHJ1Y3QgdWlfZmlsZSAqZmlsZSwgc3RydWN0IGZyYW1lX2luZm8gKmZpKQotIAotIC8qIEdpdmVu IEZSQU1FLCByZXR1cm4gdGhlIGVuY2xvc2luZyBmcmFtZSBhcyBmb3VuZCBpbiByZWFsIGZyYW1l cyByZWFkLWluIGZyb20KLSAgICBpbmZlcmlvciBtZW1vcnkuICBTa2lwIGFueSBwcmV2aW91cyBm cmFtZXMgd2hpY2ggd2VyZSBtYWRlIHVwIGJ5IEdEQi4KLS0gICBSZXR1cm4gdGhlIG9yaWdpbmFs IGZyYW1lIGlmIG5vIGltbWVkaWF0ZSBwcmV2aW91cyBmcmFtZXMgZXhpc3QuICAqLwotKyAgIFJl dHVybiBGUkFNRSBpZiBGUkFNRSBpcyBhIG5vbi1hcnRpZmljaWFsIGZyYW1lLgotKyAgIFJldHVy biBOVUxMIGlmIEZSQU1FIGlzIHRoZSBzdGFydCBvZiBhbiBhcnRpZmljaWFsLW9ubHkgY2hhaW4u ICAqLwotIAotIHN0YXRpYyBzdHJ1Y3QgZnJhbWVfaW5mbyAqCi0gc2tpcF9hcnRpZmljaWFsX2Zy YW1lcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotQEAgLTQyOCwxMiArNDI5LDM0IEBAIHNr aXBfYXJ0aWZpY2lhbF9mcmFtZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSAgIC8qIE5v dGUgd2UgdXNlIGdldF9wcmV2X2ZyYW1lX2Fsd2F5cywgYW5kIG5vdCBnZXRfcHJldl9mcmFtZS4g IFRoZQotICAgICAgbGF0dGVyIHdpbGwgdHJ1bmNhdGUgdGhlIGZyYW1lIGNoYWluLCBsZWFkaW5n IHRvIHRoaXMgZnVuY3Rpb24KLSAgICAgIHVuaW50ZW50aW9uYWxseSByZXR1cm5pbmcgYSBudWxs X2ZyYW1lX2lkIChlLmcuLCB3aGVuIHRoZSB1c2VyCi0tICAgICBzZXRzIGEgYmFja3RyYWNlIGxp bWl0KS4gIFRoaXMgaXMgc2FmZSwgYmVjYXVzZSBhcyB0aGVzZSBmcmFtZXMKLS0gICAgIGFyZSBt YWRlIHVwIGJ5IEdEQiwgdGhlcmUgbXVzdCBiZSBhIHJlYWwgZnJhbWUgaW4gdGhlIGNoYWluCi0t ICAgICBiZWxvdy4gICovCi0rICAgICBzZXRzIGEgYmFja3RyYWNlIGxpbWl0KS4KLSsKLSsgICAg IE5vdGUgdGhhdCBmb3IgcmVjb3JkIHRhcmdldHMgd2UgbWF5IGdldCBhIGZyYW1lIGNoYWluIHRo YXQgY29uc2lzdHMKLSsgICAgIG9mIGFydGlmaWNpYWwgZnJhbWVzIG9ubHkuICAqLwotICAgd2hp bGUgKGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gSU5MSU5FX0ZSQU1FCi0gCSB8fCBnZXRfZnJh bWVfdHlwZSAoZnJhbWUpID09IFRBSUxDQUxMX0ZSQU1FKQotLSAgICBmcmFtZSA9IGdldF9wcmV2 X2ZyYW1lX2Fsd2F5cyAoZnJhbWUpOwotKyAgICB7Ci0rICAgICAgZnJhbWUgPSBnZXRfcHJldl9m cmFtZV9hbHdheXMgKGZyYW1lKTsKLSsgICAgICBpZiAoZnJhbWUgPT0gTlVMTCkKLSsJYnJlYWs7 Ci0rICAgIH0KLSsKLSsgIHJldHVybiBmcmFtZTsKLSt9Ci0rCi0rLyogU2VlIGZyYW1lLmguICAq LwotKwotK3N0cnVjdCBmcmFtZV9pbmZvICoKLStza2lwX3RhaWxjYWxsX2ZyYW1lcyAoc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lKQotK3sKLSsgIHdoaWxlIChnZXRfZnJhbWVfdHlwZSAoZnJhbWUp ID09IFRBSUxDQUxMX0ZSQU1FKQotKyAgICB7Ci0rICAgICAgLyogTm90ZSB0aGF0IGZvciByZWNv cmQgdGFyZ2V0cyB3ZSBtYXkgZ2V0IGEgZnJhbWUgY2hhaW4gdGhhdCBjb25zaXN0cyBvZgotKwkg dGFpbGNhbGwgZnJhbWVzIG9ubHkuICAqLwotKyAgICAgIGZyYW1lID0gZ2V0X3ByZXZfZnJhbWUg KGZyYW1lKTsKLSsgICAgICBpZiAoZnJhbWUgPT0gTlVMTCkKLSsJYnJlYWs7Ci0rICAgIH0KLSAK LSAgIHJldHVybiBmcmFtZTsKLSB9Ci1AQCAtNDk2LDYgKzUxOSw5IEBAIGZyYW1lX3Vud2luZF9j YWxsZXJfaWQgKHN0cnVjdCBmcmFtZV9pbmZvICpuZXh0X2ZyYW1lKQotICAgICAgcmVxdWVzdHMg dGhlIGZyYW1lIElEIG9mICJtYWluKCkicyBjYWxsZXIuICAqLwotIAotICAgbmV4dF9mcmFtZSA9 IHNraXBfYXJ0aWZpY2lhbF9mcmFtZXMgKG5leHRfZnJhbWUpOwotKyAgaWYgKG5leHRfZnJhbWUg PT0gTlVMTCkKLSsgICAgcmV0dXJuIG51bGxfZnJhbWVfaWQ7Ci0rCi0gICB0aGlzX2ZyYW1lID0g Z2V0X3ByZXZfZnJhbWVfYWx3YXlzIChuZXh0X2ZyYW1lKTsKLSAgIGlmICh0aGlzX2ZyYW1lKQot ICAgICByZXR1cm4gZ2V0X2ZyYW1lX2lkIChza2lwX2FydGlmaWNpYWxfZnJhbWVzICh0aGlzX2Zy YW1lKSk7Ci1AQCAtODY5LDcgKzg5NSwxNCBAQCBmcmFtZV91bndpbmRfcGMgKHN0cnVjdCBmcmFt ZV9pbmZvICp0aGlzX2ZyYW1lKQotIENPUkVfQUREUgotIGZyYW1lX3Vud2luZF9jYWxsZXJfcGMg KHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKQotIHsKLS0gIHJldHVybiBmcmFtZV91bndp bmRfcGMgKHNraXBfYXJ0aWZpY2lhbF9mcmFtZXMgKHRoaXNfZnJhbWUpKTsKLSsgIHRoaXNfZnJh bWUgPSBza2lwX2FydGlmaWNpYWxfZnJhbWVzICh0aGlzX2ZyYW1lKTsKLSsKLSsgIC8qIFdlIG11 c3QgaGF2ZSBhIG5vbi1hcnRpZmljaWFsIGZyYW1lLiAgVGhlIGNhbGxlciBpcyBzdXBwb3NlZCB0 byBjaGVjawotKyAgICAgdGhlIHJlc3VsdCBvZiBmcmFtZV91bndpbmRfY2FsbGVyX2lkICgpLCB3 aGljaCByZXR1cm5zIE5VTExfRlJBTUVfSUQKLSsgICAgIGluIHRoaXMgY2FzZS4gICovCi0rICBn ZGJfYXNzZXJ0ICh0aGlzX2ZyYW1lICE9IE5VTEwpOwotKwotKyAgcmV0dXJuIGZyYW1lX3Vud2lu ZF9wYyAodGhpc19mcmFtZSk7Ci0gfQotIAotIGludAotQEAgLTk3Miw4ICsxMDA1LDEwIEBAIGZy YW1lX3BvcCAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gCi0gICAvKiBJZ25vcmUg VEFJTENBTExfRlJBTUUgdHlwZSBmcmFtZXMsIHRoZXkgd2VyZSBleGVjdXRlZCBhbHJlYWR5IGJl Zm9yZQotICAgICAgZW50ZXJpbmcgVEhJU0ZSQU1FLiAgKi8KLS0gIHdoaWxlIChnZXRfZnJhbWVf dHlwZSAocHJldl9mcmFtZSkgPT0gVEFJTENBTExfRlJBTUUpCi0tICAgIHByZXZfZnJhbWUgPSBn ZXRfcHJldl9mcmFtZSAocHJldl9mcmFtZSk7Ci0rICBwcmV2X2ZyYW1lID0gc2tpcF90YWlsY2Fs bF9mcmFtZXMgKHByZXZfZnJhbWUpOwotKwotKyAgaWYgKHByZXZfZnJhbWUgPT0gTlVMTCkKLSsg ICAgZXJyb3IgKF8oIkNhbm5vdCBmaW5kIHRoZSBjYWxsZXIgZnJhbWUuIikpOwotIAotICAgLyog TWFrZSBhIGNvcHkgb2YgYWxsIHRoZSByZWdpc3RlciB2YWx1ZXMgdW53b3VuZCBmcm9tIHRoaXMg ZnJhbWUuCi0gICAgICBTYXZlIHRoZW0gaW4gYSBzY3JhdGNoIGJ1ZmZlciBzbyB0aGF0IHRoZXJl IGlzbid0IGEgcmFjZSBiZXR3ZWVuCi1AQCAtMjU2MSw3ICsyNTk2LDE0IEBAIGZyYW1lX3Vud2lu ZF9hcmNoIChzdHJ1Y3QgZnJhbWVfaW5mbyAqbmV4dF9mcmFtZSkKLSBzdHJ1Y3QgZ2RiYXJjaCAq Ci0gZnJhbWVfdW53aW5kX2NhbGxlcl9hcmNoIChzdHJ1Y3QgZnJhbWVfaW5mbyAqbmV4dF9mcmFt ZSkKLSB7Ci0tICByZXR1cm4gZnJhbWVfdW53aW5kX2FyY2ggKHNraXBfYXJ0aWZpY2lhbF9mcmFt ZXMgKG5leHRfZnJhbWUpKTsKLSsgIG5leHRfZnJhbWUgPSBza2lwX2FydGlmaWNpYWxfZnJhbWVz IChuZXh0X2ZyYW1lKTsKLSsKLSsgIC8qIFdlIG11c3QgaGF2ZSBhIG5vbi1hcnRpZmljaWFsIGZy YW1lLiAgVGhlIGNhbGxlciBpcyBzdXBwb3NlZCB0byBjaGVjawotKyAgICAgdGhlIHJlc3VsdCBv ZiBmcmFtZV91bndpbmRfY2FsbGVyX2lkICgpLCB3aGljaCByZXR1cm5zIE5VTExfRlJBTUVfSUQK LSsgICAgIGluIHRoaXMgY2FzZS4gICovCi0rICBnZGJfYXNzZXJ0IChuZXh0X2ZyYW1lICE9IE5V TEwpOwotKwotKyAgcmV0dXJuIGZyYW1lX3Vud2luZF9hcmNoIChuZXh0X2ZyYW1lKTsKLSB9Ci0g Ci0gLyogR2V0cyB0aGUgbGFuZ3VhZ2Ugb2YgRlJBTUUuICAqLwotLS0tIGEvZ2RiL2ZyYW1lLmgK LSsrKyBiL2dkYi9mcmFtZS5oCi1AQCAtODIwLDUgKzgyMCwxMCBAQCBleHRlcm4gaW50IGZyYW1l X3Vud2luZGVyX2lzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZmksCi0gCi0gZXh0ZXJuIGVudW0gbGFu Z3VhZ2UgZ2V0X2ZyYW1lX2xhbmd1YWdlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpOwotIAot Ky8qIFJldHVybiB0aGUgZmlyc3Qgbm9uLXRhaWxjYWxsIGZyYW1lIGFib3ZlIEZSQU1FIG9yIEZS QU1FIGlmIGl0IGlzIG5vdCBhCi0rICAgdGFpbGNhbGwgZnJhbWUuICBSZXR1cm4gTlVMTCBpZiBG UkFNRSBpcyB0aGUgc3RhcnQgb2YgYSB0YWlsY2FsbC1vbmx5Ci0rICAgY2hhaW4uICAqLwotKwot K2V4dGVybiBzdHJ1Y3QgZnJhbWVfaW5mbyAqc2tpcF90YWlsY2FsbF9mcmFtZXMgKHN0cnVjdCBm cmFtZV9pbmZvICpmcmFtZSk7Ci0gCi0gI2VuZGlmIC8qICFkZWZpbmVkIChGUkFNRV9IKSAgKi8K LS0tLSBhL2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAtMjAwMCwxMSArMjAw MCw2IEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgICAgICBy ZXR1cm47Ci0gICAgIH0KLSAKLS0gIC8qIElnbm9yZSBUQUlMQ0FMTF9GUkFNRSB0eXBlIGZyYW1l cywgdGhleSB3ZXJlIGV4ZWN1dGVkIGFscmVhZHkgYmVmb3JlCi0tICAgICBlbnRlcmluZyBUSElT RlJBTUUuICAqLwotLSAgd2hpbGUgKGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gVEFJTENBTExf RlJBTUUpCi0tICAgIGZyYW1lID0gZ2V0X3ByZXZfZnJhbWUgKGZyYW1lKTsKLS0KLSAgIC8qIEZp bmQgdGhlIGZ1bmN0aW9uIHdlIHdpbGwgcmV0dXJuIGZyb20uICAqLwotIAotICAgc20tPmZ1bmN0 aW9uID0gZmluZF9wY19mdW5jdGlvbiAoZ2V0X2ZyYW1lX3BjIChnZXRfc2VsZWN0ZWRfZnJhbWUg KE5VTEwpKSk7Ci1AQCAtMjAzMSw3ICsyMDI2LDE2IEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3R0eSkKLSAgIGlmIChleGVjdXRpb25fZGlyZWN0aW9uID09IEVYRUNfUkVW RVJTRSkKLSAgICAgZmluaXNoX2JhY2t3YXJkIChzbSk7Ci0gICBlbHNlCi0tICAgIGZpbmlzaF9m b3J3YXJkIChzbSwgZnJhbWUpOwotKyAgICB7Ci0rICAgICAgLyogSWdub3JlIFRBSUxDQUxMX0ZS QU1FIHR5cGUgZnJhbWVzLCB0aGV5IHdlcmUgZXhlY3V0ZWQgYWxyZWFkeSBiZWZvcmUKLSsJIGVu dGVyaW5nIFRISVNGUkFNRS4gICovCi0rICAgICAgZnJhbWUgPSBza2lwX3RhaWxjYWxsX2ZyYW1l cyAoZnJhbWUpOwotKwotKyAgICAgIGlmIChmcmFtZSA9PSBOVUxMKQotKwllcnJvciAoXygiQ2Fu bm90IGZpbmQgdGhlIGNhbGxlciBmcmFtZS4iKSk7Ci0rCi0rICAgICAgZmluaXNoX2ZvcndhcmQg KHNtLCBmcmFtZSk7Ci0rICAgIH0KLSB9Ci0gDAotIAotLS0tIGEvZ2RiL3N0YWNrLmMKLSsrKyBi L2dkYi9zdGFjay5jCi1AQCAtMTUwOSwyNyArMTUwOSwzMiBAQCBmcmFtZV9pbmZvIChjaGFyICph ZGRyX2V4cCwgaW50IGZyb21fdHR5KQotICAgd3JhcF9oZXJlICgiICAgICIpOwotICAgcHJpbnRm X2ZpbHRlcmVkICgic2F2ZWQgJXMgPSAiLCBwY19yZWduYW1lKTsKLSAKLS0gIFRSWQotLSAgICB7 Ci0tICAgICAgY2FsbGVyX3BjID0gZnJhbWVfdW53aW5kX2NhbGxlcl9wYyAoZmkpOwotLSAgICAg IGNhbGxlcl9wY19wID0gMTsKLS0gICAgfQotLSAgQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19FUlJP UikKLSsgIGlmICghZnJhbWVfaWRfcCAoZnJhbWVfdW53aW5kX2NhbGxlcl9pZCAoZmkpKSkKLSsg ICAgdmFsX3ByaW50X3VuYXZhaWxhYmxlIChnZGJfc3Rkb3V0KTsKLSsgIGVsc2UKLSAgICAgewot LSAgICAgIHN3aXRjaCAoZXguZXJyb3IpCi0rICAgICAgVFJZCi0gCXsKLS0JY2FzZSBOT1RfQVZB SUxBQkxFX0VSUk9SOgotLQkgIHZhbF9wcmludF91bmF2YWlsYWJsZSAoZ2RiX3N0ZG91dCk7Ci0t CSAgYnJlYWs7Ci0tCWNhc2UgT1BUSU1JWkVEX09VVF9FUlJPUjoKLS0JICB2YWxfcHJpbnRfbm90 X3NhdmVkIChnZGJfc3Rkb3V0KTsKLS0JICBicmVhazsKLS0JZGVmYXVsdDoKLS0JICBmcHJpbnRm X2ZpbHRlcmVkIChnZGJfc3Rkb3V0LCBfKCI8ZXJyb3I6ICVzPiIpLCBleC5tZXNzYWdlKTsKLS0J ICBicmVhazsKLSsJICBjYWxsZXJfcGMgPSBmcmFtZV91bndpbmRfY2FsbGVyX3BjIChmaSk7Ci0r CSAgY2FsbGVyX3BjX3AgPSAxOwotIAl9Ci0rICAgICAgQ0FUQ0ggKGV4LCBSRVRVUk5fTUFTS19F UlJPUikKLSsJewotKwkgIHN3aXRjaCAoZXguZXJyb3IpCi0rCSAgICB7Ci0rCSAgICBjYXNlIE5P VF9BVkFJTEFCTEVfRVJST1I6Ci0rCSAgICAgIHZhbF9wcmludF91bmF2YWlsYWJsZSAoZ2RiX3N0 ZG91dCk7Ci0rCSAgICAgIGJyZWFrOwotKwkgICAgY2FzZSBPUFRJTUlaRURfT1VUX0VSUk9SOgot KwkgICAgICB2YWxfcHJpbnRfbm90X3NhdmVkIChnZGJfc3Rkb3V0KTsKLSsJICAgICAgYnJlYWs7 Ci0rCSAgICBkZWZhdWx0OgotKwkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3Rkb3V0LCBf KCI8ZXJyb3I6ICVzPiIpLCBleC5tZXNzYWdlKTsKLSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0r CX0KLSsgICAgICBFTkRfQ0FUQ0gKLSAgICAgfQotLSAgRU5EX0NBVENICi0gCi0gICBpZiAoY2Fs bGVyX3BjX3ApCi0gICAgIGZwdXRzX2ZpbHRlcmVkIChwYWRkcmVzcyAoZ2RiYXJjaCwgY2FsbGVy X3BjKSwgZ2RiX3N0ZG91dCk7Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIv Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsyMDE2LTAzLTE3ICBN YXJrdXMgTWV0emdlciAgPG1hcmt1cy50Lm1ldHpnZXJAaW50ZWwuY29tPgotKwotKwlQUiBnZGIv MTk4MjkKLSsJKiBnZGIuYnRyYWNlL3RhaWxjYWxsLW9ubHkuZXhwOiBOZXcuCi0rCSogZ2RiLmJ0 cmFjZS90YWlsY2FsbC1vbmx5LmM6IE5ldy4KLSsJKiBnZGIuYnRyYWNlL3g4Nl82NC10YWlsY2Fs bC1vbmx5LlM6IE5ldy4KLSsJKiBnZGIuYnRyYWNlL2k2ODYtdGFpbGNhbGwtb25seS5TOiBOZXcu Ci0rCi0gMjAxNi0wMi0xNiAgRG9uIEJyZWF6ZWFsICA8ZG9uYkBjb2Rlc291cmNlcnkuY29tPgot IAotIAlQUiByZW1vdGUvMTk0OTYKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJ0cmFjZS9pNjg2LXRhaWxjYWxsLW9ubHkuUwotQEAgLTAsMCArMSw0NDcgQEAKLSsvKiBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENv cHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKwotKyAgIFRoaXMgZmlsZSBoYXMgYmVl biBnZW5lcmF0ZWQgdXNpbmc6Ci0rICAgZ2NjIC1tMzIgLW1hcmNoPWk2ODYgLVMgLU8yIC1kQSAt ZyB0YWlsY2FsbC1vbmx5LmMgLW8gaTY4Ni10YWlsY2FsbC1vbmx5LlMKLSsgKi8KLSsKLSsJLmZp bGUJInRhaWxjYWxsLW9ubHkuYyIKLSsJLnRleHQKLSsuTHRleHQwOgotKwkucDJhbGlnbiA0LCwx NQotKwkudHlwZQliYXJfMSwgQGZ1bmN0aW9uCi0rYmFyXzE6Ci0rLkxGQjA6Ci0rCS5maWxlIDEg InRhaWxjYWxsLW9ubHkuYyIKLSsJIyB0YWlsY2FsbC1vbmx5LmM6MjIKLSsJLmxvYyAxIDIyIDAK LSsJLmNmaV9zdGFydHByb2MKLSsjIEJMT0NLIDIgZnJlcToxMDAwMCBzZXE6MAotKyMgUFJFRDog RU5UUlkgWzEwMC4wJV0gIChGQUxMVEhSVSkKLSsJIyB0YWlsY2FsbC1vbmx5LmM6MjQKLSsJLmxv YyAxIDI0IDAKLSsJbW92bAkkNDIsICVlYXgKLSsjIFNVQ0M6IEVYSVQgWzEwMC4wJV0KLSsJcmV0 Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkUwOgotKwkuc2l6ZQliYXJfMSwgLi1iYXJfMQotKwkucDJh bGlnbiA0LCwxNQotKwkudHlwZQliYXIsIEBmdW5jdGlvbgotK2JhcjoKLSsuTEZCMToKLSsJIyB0 YWlsY2FsbC1vbmx5LmM6MjgKLSsJLmxvYyAxIDI4IDAKLSsJLmNmaV9zdGFydHByb2MKLSsjIEJM T0NLIDIgZnJlcToxMDAwMCBzZXE6MAotKyMgUFJFRDogRU5UUlkgWzEwMC4wJV0gIChGQUxMVEhS VSkKLSsJIyB0YWlsY2FsbC1vbmx5LmM6MjkKLSsJLmxvYyAxIDI5IDAKLSsJam1wCWJhcl8xCi0r IyBTVUNDOiBFWElUIFsxMDAuMCVdICAoQUJOT1JNQUwsU0lCQ0FMTCkKLSsuTFZMMDoKLSsJLmNm aV9lbmRwcm9jCi0rLkxGRTE6Ci0rCS5zaXplCWJhciwgLi1iYXIKLSsJLnAyYWxpZ24gNCwsMTUK LSsJLnR5cGUJZm9vXzEsIEBmdW5jdGlvbgotK2Zvb18xOgotKy5MRkIyOgotKwkjIHRhaWxjYWxs LW9ubHkuYzozNAotKwkubG9jIDEgMzQgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBm cmVxOjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQotKwkj IHRhaWxjYWxsLW9ubHkuYzozNQotKwkubG9jIDEgMzUgMAotKwlqbXAJYmFyCi0rIyBTVUNDOiBF WElUIFsxMDAuMCVdICAoQUJOT1JNQUwsU0lCQ0FMTCkKLSsuTFZMMToKLSsJLmNmaV9lbmRwcm9j Ci0rLkxGRTI6Ci0rCS5zaXplCWZvb18xLCAuLWZvb18xCi0rCS5wMmFsaWduIDQsLDE1Ci0rCS50 eXBlCWZvbywgQGZ1bmN0aW9uCi0rZm9vOgotKy5MRkIzOgotKwkjIHRhaWxjYWxsLW9ubHkuYzo0 MAotKwkubG9jIDEgNDAgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBmcmVxOjEwMDAw IHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQotKwkjIHRhaWxjYWxs LW9ubHkuYzo0MQotKwkubG9jIDEgNDEgMAotKwlqbXAJZm9vXzEKLSsjIFNVQ0M6IEVYSVQgWzEw MC4wJV0gIChBQk5PUk1BTCxTSUJDQUxMKQotKy5MVkwyOgotKwkuY2ZpX2VuZHByb2MKLSsuTEZF MzoKLSsJLnNpemUJZm9vLCAuLWZvbwotKwkuc2VjdGlvbgkudGV4dC5zdGFydHVwLCJheCIsQHBy b2diaXRzCi0rCS5wMmFsaWduIDQsLDE1Ci0rCS5nbG9ibAltYWluCi0rCS50eXBlCW1haW4sIEBm dW5jdGlvbgotK21haW46Ci0rLkxGQjQ6Ci0rCSMgdGFpbGNhbGwtb25seS5jOjQ2Ci0rCS5sb2Mg MSA0NiAwCi0rCS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAKLSsj IFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCSMgdGFpbGNhbGwtb25seS5jOjQ5 Ci0rCS5sb2MgMSA0OSAwCi0rCWNhbGwJZm9vCi0rLkxWTDM6Ci0rCSMgdGFpbGNhbGwtb25seS5j OjUwCi0rCS5sb2MgMSA1MCAwCi0rCWFkZGwJJDEsICVlYXgKLSsuTFZMNDoKLSsjIFNVQ0M6IEVY SVQgWzEwMC4wJV0KLSsJIyB0YWlsY2FsbC1vbmx5LmM6NTMKLSsJLmxvYyAxIDUzIDAKLSsJcmV0 Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkU0OgotKwkuc2l6ZQltYWluLCAuLW1haW4KLSsJLnRleHQK LSsuTGV0ZXh0MDoKLSsJLnNlY3Rpb24JLmRlYnVnX2luZm8sIiIsQHByb2diaXRzCi0rLkxkZWJ1 Z19pbmZvMDoKLSsJLmxvbmcJMHhkNQkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8K LSsJLnZhbHVlCTB4NAkjIERXQVJGIHZlcnNpb24gbnVtYmVyCi0rCS5sb25nCS5MZGVidWdfYWJi cmV2MAkjIE9mZnNldCBJbnRvIEFiYnJldi4gU2VjdGlvbgotKwkuYnl0ZQkweDQJIyBQb2ludGVy IFNpemUgKGluIGJ5dGVzKQotKwkudWxlYjEyOCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21w aWxlX3VuaXQpCi0rCS5sb25nCS5MQVNGMQkjIERXX0FUX3Byb2R1Y2VyOiAiR05VIEMgNC44LjMg MjAxNDA5MTEgKFJlZCBIYXQgNC44LjMtOSkgLW0zMiAtbWFyY2g9aTY4NiAtZyAtTzIiCi0rCS5i eXRlCTB4MQkjIERXX0FUX2xhbmd1YWdlCi0rCS5sb25nCS5MQVNGMgkjIERXX0FUX25hbWU6ICJ0 YWlsY2FsbC1vbmx5LmMiCi0rCS5sb25nCS5MQVNGMwkjIERXX0FUX2NvbXBfZGlyOiAiIgotKwku bG9uZwkuTGRlYnVnX3JhbmdlczArMAkjIERXX0FUX3JhbmdlcwotKwkubG9uZwkwCSMgRFdfQVRf bG93X3BjCi0rCS5sb25nCS5MZGVidWdfbGluZTAJIyBEV19BVF9zdG10X2xpc3QKLSsJLnVsZWIx MjggMHgyCSMgKERJRSAoMHgyNSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5MQVNGNAkj IERXX0FUX25hbWU6ICJiYXJfMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWls Y2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FU X3Byb3RvdHlwZWQKLSsJLmxvbmcJMHgzYQkjIERXX0FUX3R5cGUKLSsJLmxvbmcJLkxGQjAJIyBE V19BVF9sb3dfcGMKLSsJLmxvbmcJLkxGRTAtLkxGQjAJIyBEV19BVF9oaWdoX3BjCi0rCS51bGVi MTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJh bWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLnVsZWIxMjggMHgzCSMg KERJRSAoMHgzYSkgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9z aXplCi0rCS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5nCi0rCS5hc2NpaSAiaW50XDAiCSMgRFdf QVRfbmFtZQotKwkudWxlYjEyOCAweDQJIyAoRElFICgweDQxKSBEV19UQUdfc3VicHJvZ3JhbSkK LSsJLmFzY2lpICJiYXJcMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xf ZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDFiCSMgRFdfQVRfZGVjbF9saW5lCi0r CQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4M2EJIyBEV19BVF90eXBlCi0rCS5sb25n CS5MRkIxCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCS5MRkUxLS5MRkIxCSMgRFdfQVRfaGlnaF9w YwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0rCS5ieXRlCTB4OWMJIyBEV19P UF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCi0rCS5sb25n CTB4NjQJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkjIChESUUgKDB4NWEpIERXX1RB R19HTlVfY2FsbF9zaXRlKQotKwkubG9uZwkuTFZMMAkjIERXX0FUX2xvd19wYwotKwkJCSMgRFdf QVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDI1CSMgRFdfQVRfYWJzdHJhY3Rfb3JpZ2luCi0r CS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NDEKLSsJLnVsZWIxMjggMHg2CSMg KERJRSAoMHg2NCkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5MQVNGMAkjIERXX0FUX25h bWU6ICJmb29fMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2FsbC1vbmx5 LmMpCi0rCS5ieXRlCTB4MjEJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3Byb3RvdHlw ZWQKLSsJLmxvbmcJMHgzYQkjIERXX0FUX3R5cGUKLSsJLmxvbmcJLkxGQjIJIyBEV19BVF9sb3df cGMKLSsJLmxvbmcJLkxGRTItLkxGQjIJIyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4IDB4MQkj IERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCi0r CQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLmxvbmcJMHg4NwkjIERXX0FUX3NpYmxp bmcKLSsJLnVsZWIxMjggMHg1CSMgKERJRSAoMHg3ZCkgRFdfVEFHX0dOVV9jYWxsX3NpdGUpCi0r CS5sb25nCS5MVkwxCSMgRFdfQVRfbG93X3BjCi0rCQkJIyBEV19BVF9HTlVfdGFpbF9jYWxsCi0r CS5sb25nCTB4NDEJIyBEV19BVF9hYnN0cmFjdF9vcmlnaW4KLSsJLmJ5dGUJMAkjIGVuZCBvZiBj aGlsZHJlbiBvZiBESUUgMHg2NAotKwkudWxlYjEyOCAweDQJIyAoRElFICgweDg3KSBEV19UQUdf c3VicHJvZ3JhbSkKLSsJLmFzY2lpICJmb29cMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkj IERXX0FUX2RlY2xfZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDI3CSMgRFdfQVRf ZGVjbF9saW5lCi0rCQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4M2EJIyBEV19BVF90 eXBlCi0rCS5sb25nCS5MRkIzCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCS5MRkUzLS5MRkIzCSMg RFdfQVRfaGlnaF9wYwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0rCS5ieXRl CTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3Np dGVzCi0rCS5sb25nCTB4YWEJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkjIChESUUg KDB4YTApIERXX1RBR19HTlVfY2FsbF9zaXRlKQotKwkubG9uZwkuTFZMMgkjIERXX0FUX2xvd19w YwotKwkJCSMgRFdfQVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDY0CSMgRFdfQVRfYWJzdHJh Y3Rfb3JpZ2luCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4ODcKLSsJLnVs ZWIxMjggMHg3CSMgKERJRSAoMHhhYSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCQkJIyBEV19BVF9l eHRlcm5hbAotKwkubG9uZwkuTEFTRjUJIyBEV19BVF9uYW1lOiAibWFpbiIKLSsJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MmQJIyBEV19B VF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJMHgzYQkjIERXX0FU X3R5cGUKLSsJLmxvbmcJLkxGQjQJIyBEV19BVF9sb3dfcGMKLSsJLmxvbmcJLkxGRTQtLkxGQjQJ IyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5 dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxf c2l0ZXMKLSsJLnVsZWIxMjggMHg4CSMgKERJRSAoMHhiZikgRFdfVEFHX3ZhcmlhYmxlKQotKwku bG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiYW5zd2VyIgotKwkuYnl0ZQkweDEJIyBEV19BVF9k ZWNsX2ZpbGUgKHRhaWxjYWxsLW9ubHkuYykKLSsJLmJ5dGUJMHgyZgkjIERXX0FUX2RlY2xfbGlu ZQotKwkubG9uZwkweDNhCSMgRFdfQVRfdHlwZQotKwkubG9uZwkuTExTVDAJIyBEV19BVF9sb2Nh dGlvbgotKwkudWxlYjEyOCAweDkJIyAoRElFICgweGNlKSBEV19UQUdfR05VX2NhbGxfc2l0ZSkK LSsJLmxvbmcJLkxWTDMJIyBEV19BVF9sb3dfcGMKLSsJLmxvbmcJMHg4NwkjIERXX0FUX2Fic3Ry YWN0X29yaWdpbgotKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGFhCi0rCS5i eXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YgotKwkuc2VjdGlvbgkuZGVidWdfYWJi cmV2LCIiLEBwcm9nYml0cwotKy5MZGVidWdfYWJicmV2MDoKLSsJLnVsZWIxMjggMHgxCSMgKGFi YnJldiBjb2RlKQotKwkudWxlYjEyOCAweDExCSMgKFRBRzogRFdfVEFHX2NvbXBpbGVfdW5pdCkK LSsJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0rCS51bGViMTI4IDB4MjUJIyAoRFdfQVRf cHJvZHVjZXIpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4 MTMJIyAoRFdfQVRfbGFuZ3VhZ2UpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQot KwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1f c3RycCkKLSsJLnVsZWIxMjggMHgxYgkjIChEV19BVF9jb21wX2RpcikKLSsJLnVsZWIxMjggMHhl CSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHg1NQkjIChEV19BVF9yYW5nZXMpCi0rCS51 bGViMTI4IDB4MTcJIyAoRFdfRk9STV9zZWNfb2Zmc2V0KQotKwkudWxlYjEyOCAweDExCSMgKERX X0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjgg MHgxMAkjIChEV19BVF9zdG10X2xpc3QpCi0rCS51bGViMTI4IDB4MTcJIyAoRFdfRk9STV9zZWNf b2Zmc2V0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgyCSMgKGFiYnJldiBj b2RlKQotKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5ieXRl CTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVs ZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNs X2ZpbGUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDNi CSMgKERXX0FUX2RlY2xfbGluZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0r CS51bGViMTI4IDB4MjcJIyAoRFdfQVRfcHJvdG90eXBlZCkKLSsJLnVsZWIxMjggMHgxOQkjIChE V19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwku dWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9s b3dfcGMpCi0rCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJ IyAoRFdfQVRfaGlnaF9wYykKLSsJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCi0rCS51 bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJhbWVfYmFzZSkKLSsJLnVsZWIxMjggMHgxOAkjIChEV19G T1JNX2V4cHJsb2MpCi0rCS51bGViMTI4IDB4MjExNwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0 ZXMpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS5ieXRlCTAK LSsJLmJ5dGUJMAotKwkudWxlYjEyOCAweDMJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4 MjQJIyAoVEFHOiBEV19UQUdfYmFzZV90eXBlKQotKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8K LSsJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKLSsJLnVsZWIxMjggMHhiCSMgKERX X0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2UJIyAoRFdfQVRfZW5jb2RpbmcpCi0rCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkK LSsJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAK LSsJLnVsZWIxMjggMHg0CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDJlCSMgKFRBRzog RFdfVEFHX3N1YnByb2dyYW0pCi0rCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcwotKwkudWxl YjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5n KQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMg KERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQotKwku dWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgyNwkjIChEV19BVF9w cm90b3R5cGVkKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwku dWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9y ZWY0KQotKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMg KERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQotKwkudWxl YjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKLSsJLnVsZWIxMjggMHg0MAkjIChEV19BVF9mcmFt ZV9iYXNlKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKLSsJLnVsZWIxMjgg MHgyMTE3CSMgKERXX0FUX0dOVV9hbGxfY2FsbF9zaXRlcykKLSsJLnVsZWIxMjggMHgxOQkjIChE V19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCi0r CS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJ LnVsZWIxMjggMHg1CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDQxMDkJIyAoVEFHOiBE V19UQUdfR05VX2NhbGxfc2l0ZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGVi MTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRy KQotKwkudWxlYjEyOCAweDIxMTUJIyAoRFdfQVRfR05VX3RhaWxfY2FsbCkKLSsJLnVsZWIxMjgg MHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgzMQkjIChEV19BVF9h YnN0cmFjdF9vcmlnaW4pCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0 ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEy OCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5ieXRlCTB4MQkjIERXX2NoaWxk cmVuX3llcwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHhlCSMg KERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCi0rCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2Rl Y2xfbGluZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4 MjcJIyAoRFdfQVRfcHJvdG90eXBlZCkKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdf cHJlc2VudCkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEz CSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCi0rCS51 bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGln aF9wYykKLSsJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCi0rCS51bGViMTI4IDB4NDAJ IyAoRFdfQVRfZnJhbWVfYmFzZSkKLSsJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2Mp Ci0rCS51bGViMTI4IDB4MjExNwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMpCi0rCS51bGVi MTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MQkjIChEV19B VF9zaWJsaW5nKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAot KwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NwkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgy ZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95 ZXMKLSsJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKLSsJLnVsZWIxMjggMHgxOQkj IChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0r CS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRf ZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjgg MHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGEx KQotKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCi0rCS51bGViMTI4IDB4MTkJ IyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkK LSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS51bGViMTI4IDB4MTEJIyAoRFdf QVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAw eDEyCSMgKERXX0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4NgkjIChEV19GT1JNX2RhdGE0KQot KwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGViMTI4IDB4MTgJIyAo RFdfRk9STV9leHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05VX2FsbF9jYWxs X3NpdGVzKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwkuYnl0 ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg4CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEy OCAweDM0CSMgKFRBRzogRFdfVEFHX3ZhcmlhYmxlKQotKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5f bm8KLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19G T1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xp bmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDQ5CSMg KERXX0FUX3R5cGUpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEy OCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCi0rCS51bGViMTI4IDB4MTcJIyAoRFdfRk9STV9zZWNf b2Zmc2V0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg5CSMgKGFiYnJldiBj b2RlKQotKwkudWxlYjEyOCAweDQxMDkJIyAoVEFHOiBEV19UQUdfR05VX2NhbGxfc2l0ZSkKLSsJ LmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3Bj KQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDMxCSMgKERX X0FUX2Fic3RyYWN0X29yaWdpbikKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0r CS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS5zZWN0aW9uCS5kZWJ1Z19sb2MsIiIs QHByb2diaXRzCi0rLkxkZWJ1Z19sb2MwOgotKy5MTFNUMDoKLSsJLmxvbmcJLkxWTDMJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCi0rCS5sb25nCS5MVkw0CSMgTG9jYXRp b24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMCkKLSsJLnZhbHVlCTB4MwkjIExvY2F0aW9uIGV4 cHJlc3Npb24gc2l6ZQotKwkuYnl0ZQkweDcwCSMgRFdfT1BfYnJlZzAKLSsJLnNsZWIxMjggMQot KwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKLSsJLmxvbmcJLkxWTDQJIyBMb2NhdGlv biBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCi0rCS5sb25nCS5MRkU0CSMgTG9jYXRpb24g bGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMCkKLSsJLnZhbHVlCTB4MQkjIExvY2F0aW9uIGV4cHJl c3Npb24gc2l6ZQotKwkuYnl0ZQkweDUwCSMgRFdfT1BfcmVnMAotKwkubG9uZwkwCSMgTG9jYXRp b24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1QwKQotKwkubG9uZwkwCSMgTG9jYXRpb24g bGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUMCkKLSsJLnNlY3Rpb24JLmRlYnVnX2FyYW5nZXMs IiIsQHByb2diaXRzCi0rCS5sb25nCTB4MjQJIyBMZW5ndGggb2YgQWRkcmVzcyBSYW5nZXMgSW5m bwotKwkudmFsdWUJMHgyCSMgRFdBUkYgVmVyc2lvbgotKwkubG9uZwkuTGRlYnVnX2luZm8wCSMg T2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbwotKwkuYnl0ZQkweDQJIyBTaXplIG9mIEFk ZHJlc3MKLSsJLmJ5dGUJMAkjIFNpemUgb2YgU2VnbWVudCBEZXNjcmlwdG9yCi0rCS52YWx1ZQkw CSMgUGFkIHRvIDggYnl0ZSBib3VuZGFyeQotKwkudmFsdWUJMAotKwkubG9uZwkuTHRleHQwCSMg QWRkcmVzcwotKwkubG9uZwkuTGV0ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCi0rCS5sb25nCS5MRkI0 CSMgQWRkcmVzcwotKwkubG9uZwkuTEZFNC0uTEZCNAkjIExlbmd0aAotKwkubG9uZwkwCi0rCS5s b25nCTAKLSsJLnNlY3Rpb24JLmRlYnVnX3JhbmdlcywiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX3Jh bmdlczA6Ci0rCS5sb25nCS5MdGV4dDAJIyBPZmZzZXQgMAotKwkubG9uZwkuTGV0ZXh0MAotKwku bG9uZwkuTEZCNAkjIE9mZnNldCAweDgKLSsJLmxvbmcJLkxGRTQKLSsJLmxvbmcJMAotKwkubG9u ZwkwCi0rCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cwotKy5MZGVidWdfbGluZTA6 Ci0rCS5zZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQotKy5MQVNGNDoKLSsJLnN0 cmluZwkiYmFyXzEiCi0rLkxBU0YyOgotKwkuc3RyaW5nCSJ0YWlsY2FsbC1vbmx5LmMiCi0rLkxB U0YxOgotKwkuc3RyaW5nCSJHTlUgQyA0LjguMyAyMDE0MDkxMSAoUmVkIEhhdCA0LjguMy05KSAt bTMyIC1tYXJjaD1pNjg2IC1nIC1PMiIKLSsuTEFTRjY6Ci0rCS5zdHJpbmcJImFuc3dlciIKLSsu TEFTRjU6Ci0rCS5zdHJpbmcJIm1haW4iCi0rLkxBU0YzOgotKwkuc3RyaW5nCSIiCi0rLkxBU0Yw OgotKwkuc3RyaW5nCSJmb29fMSIKLSsJLmlkZW50CSJHQ0M6IChHTlUpIDQuOC4zIDIwMTQwOTEx IChSZWQgSGF0IDQuOC4zLTkpIgotKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2di aXRzCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdGFpbGNh bGwtb25seS5jCi1AQCAtMCwwICsxLDUzIEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBDb250cmlidXRlZCBieSBJbnRlbCBDb3JwLiA8 bWFya3VzLnQubWV0emdlckBpbnRlbC5jb20+Ci0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLwotKwotK3N0YXRpYyBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBp bnQKLStiYXJfMSAodm9pZCkKLSt7Ci0rICByZXR1cm4gNDI7Ci0rfQotKwotK3N0YXRpYyBfX2F0 dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBpbnQKLStiYXIgKHZvaWQpCi0rewotKyAgcmV0dXJuIGJh cl8xICgpOwotK30KLSsKLStzdGF0aWMgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkgaW50Ci0r Zm9vXzEgKHZvaWQpCi0rewotKyAgcmV0dXJuIGJhciAoKTsKLSt9Ci0rCi0rc3RhdGljIF9fYXR0 cmlidXRlX18gKChub2lubGluZSkpIGludAotK2ZvbyAodm9pZCkKLSt7Ci0rICByZXR1cm4gZm9v XzEgKCk7Ci0rfQotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgaW50IGFuc3dlcjsKLSsK LSsgIGFuc3dlciA9IGZvbyAoKTsKLSsgIGFuc3dlciArPSAxOwotKwotKyAgcmV0dXJuIGFuc3dl cjsKLSt9Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5idHJhY2UvdGFp bGNhbGwtb25seS5leHAKLUBAIC0wLDAgKzEsOTcgQEAKLSsjIFRoaXMgdGVzdGNhc2UgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rIwotKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KLSsjCi0rIwotKyMgVGhpcyBpcyBhIHZhcmlhbnQgb2YgdGFpbGNhbGwuZXhwIHdoZXJlIHRo ZSBlbnRpcmUgdHJhY2UgY29udGFpbnMgb25seSB0YWlsCi0rIyBjYWxscy4gIFRoaXMgdXNlZCB0 byBjYXVzZSBhIGNyYXNoIGluIGdldF9mcmFtZV90eXBlLgotKyMKLSsKLSsjIGNoZWNrIGZvciBi dHJhY2Ugc3VwcG9ydAotK2lmIHsgW3NraXBfYnRyYWNlX3Rlc3RzXSB9IHsgcmV0dXJuIC0xIH0K LSsKLSsjIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgY29tcGlsZXIgdG8gZ2VuZXJhdGUgYSB0YWls IGNhbGwuICBUbyBndWFyYW50ZWUgdGhhdAotKyMgd2UgYWx3YXlzIGdldCBvbmUsIHdlIHVzZSBh biBhc3NlbWJseSBzb3VyY2UgZmlsZS4KLSsjCi0rIyBXZSB1c2UgZGlmZmVyZW50IGFzc2VtYmx5 IHNvdXJjZXMgYmFzZWQgb24gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCi0rIwotKyMgTHVja2ls eSwgdGhleSBhcmUgc2ltaWxhciBlbm91Z2ggdGhhdCBhIHNpbmdsZSB0ZXN0IHNjcmlwdCBjYW4g aGFuZGxlCi0rIyBib3RoLgotK3NldCBvcHRzIHt9Ci0raWYgW2luZm8gZXhpc3RzIENPTVBJTEVd IHsKLSsgICAgIyBtYWtlIGNoZWNrIFJVTlRFU1RGTEFHUz0iZ2RiLmJ0cmFjZS90YWlsY2FsbC1v bmx5LmV4cCBDT01QSUxFPTEiCi0rICAgIHN0YW5kYXJkX3Rlc3RmaWxlIHRhaWxjYWxsLW9ubHku YwotKyAgICBsYXBwZW5kIG9wdHMgZGVidWcgb3B0aW1pemU9LU8yCi0rfSBlbHNlaWYge1tpc3Rh cmdldCAieDg2XzY0LSotKiJdfSB7Ci0rCXN0YW5kYXJkX3Rlc3RmaWxlIHg4Nl82NC10YWlsY2Fs bC1vbmx5LlMKLSt9IGVsc2VpZiB7W2lzdGFyZ2V0ICJpPzg2LSotKiJdfSB7Ci0rCXN0YW5kYXJk X3Rlc3RmaWxlIGk2ODYtdGFpbGNhbGwtb25seS5TCi0rfSBlbHNlIHsKLSsgICAgdmVyYm9zZSAi U2tpcHBpbmcgJHt0ZXN0ZmlsZX0uIgotKyAgICByZXR1cm4KLSt9Ci0rCi0raWYgW3ByZXBhcmVf Zm9yX3Rlc3RpbmcgdGFpbGNhbGwtb25seS5leHAgJHRlc3RmaWxlICRzcmNmaWxlICRvcHRzXSB7 Ci0rICAgIHJldHVybiAtMQotK30KLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgcmV0dXJuIC0x Ci0rfQotKwotKyMgd2Ugd2FudCB0byBzZWUgdGhlIGZ1bGwgdHJhY2UgZm9yIHRoaXMgdGVzdAot K2dkYl90ZXN0X25vX291dHB1dCAic2V0IHJlY29yZCBmdW5jdGlvbi1jYWxsLWhpc3Rvcnktc2l6 ZSAwIgotKwotKyMgdHJhY2UgZm9vCi0rZ2RiX3Rlc3QgInN0ZXAiICIuKiIgInByZXBhcmUgZm9y IHJlY29yZGluZyIKLStnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJhY2UiCi0rZ2RiX3Rl c3QgInN0ZXBpIDQiICIuKiIgInJlY29yZCBicmFuY2ggdHJhY2UiCi0rCi0rIyBmb3IgZGVidWdn aW5nCi0rZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiAiLioiCi0rCi0rIyBzaG93IHRoZSBicmFuY2gg dHJhY2Ugd2l0aCBjYWxscyBpbmRlbnRlZAotK2dkYl90ZXN0ICJyZWNvcmQgZnVuY3Rpb24tY2Fs bC1oaXN0b3J5IC9jIDEiIFttdWx0aV9saW5lIFwKLSsgICIxXHRmb28iIFwKLSsgICIyXHQgIGZv b18xIiBcCi0rICAiM1x0ICAgIGJhciIgXAotKyAgIjRcdCAgICAgIGJhcl8xIgotKyAgXSAiZnVu Y3Rpb24tY2FsbC1oaXN0b3J5IgotKwotKyMgV2UgY2FuIHN0ZXAKLStnZGJfdGVzdCAicmVjb3Jk IGdvdG8gYmVnaW4iICIuKmZvby4qIgotK2dkYl90ZXN0ICJzdGVwaSIgIi4qZm9vXzEuKiIgInN0 ZXAgaW50byBmb29fMSIKLStnZGJfdGVzdCAic3RlcCIgIi4qYmFyLioiICJzdGVwIGludG8gYmFy IgotK2dkYl90ZXN0ICJzdGVwaSIgIi4qYmFyXzEuKiIgInN0ZXAgaW50byBiYXJfMSIKLSsKLSsj IFdlIGNhbiBuZWl0aGVyIGZpbmlzaCBub3IgcmV0dXJuLgotK2dkYl90ZXN0ICJmaW5pc2giICJD YW5ub3QgZmluZCB0aGUgY2FsbGVyIGZyYW1lLioiCi0rZ2RiX3Rlc3RfbXVsdGlwbGUgInJldHVy biIgInJldHVybiIgewotKyAgLXJlICJNYWtlIC4qIHJldHVybiBub3cuKnkgb3Igbi4gJCIgewot KyAgICBzZW5kX2dkYiAieVxuIgotKyAgICBleHBfY29udGludWUKLSsgIH0KLSsgIC1yZSAiQ2Fu bm90IGZpbmQgdGhlIGNhbGxlciBmcmFtZS4qJGdkYl9wcm9tcHQgJCIgewotKyAgICBwYXNzICJy ZXR1cm4iCi0rICB9Ci0rfQotKwotKyMgQnV0IHdlIGNhbiByZXZlcnNlLWZpbmlzaAotK2dkYl90 ZXN0ICJyZXZlcnNlLWZpbmlzaCIgIi4qYmFyLioiCi0rZ2RiX3Rlc3QgInJldmVyc2Utc3RlcCIg Ii4qZm9vXzEuKiIKLSsKLSsjIEluZm8gZnJhbWUgaXNuJ3QgdXNlZnVsIGJ1dCBkb2Vzbid0IGNy YXNoIGFzIGl0IHVzZWQgdG8uCi0rZ2RiX3Rlc3QgInVwIiAiLipmb28uKiIKLStnZGJfdGVzdCAi aW5mbyBmcmFtZSIgIi4qIgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YnRyYWNlL3g4Nl82NC10YWlsY2FsbC1vbmx5LlMKLUBAIC0wLDAgKzEsNDQ2IEBACi0rLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5 cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQot KyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsKLSsgICBUaGlzIGZpbGUgaGFzIGJlZW4g Z2VuZXJhdGVkIHVzaW5nOgotKyAgIGdjYyAtUyAtTzIgLWRBIC1nIHRhaWxjYWxsLW9ubHkuYyAt byB4ODZfNjQtdGFpbGNhbGwtb25seS5TICAqLwotKwotKwkuZmlsZQkidGFpbGNhbGwtb25seS5j IgotKwkudGV4dAotKy5MdGV4dDA6Ci0rCS5wMmFsaWduIDQsLDE1Ci0rCS50eXBlCWJhcl8xLCBA ZnVuY3Rpb24KLStiYXJfMToKLSsuTEZCMDoKLSsJLmZpbGUgMSAidGFpbGNhbGwtb25seS5jIgot KwkjIHRhaWxjYWxsLW9ubHkuYzoyMgotKwkubG9jIDEgMjIgMAotKwkuY2ZpX3N0YXJ0cHJvYwot KyMgQkxPQ0sgMiBmcmVxOjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZB TExUSFJVKQotKwkjIHRhaWxjYWxsLW9ubHkuYzoyNAotKwkubG9jIDEgMjQgMAotKwltb3ZsCSQ0 MiwgJWVheAotKyMgU1VDQzogRVhJVCBbMTAwLjAlXQotKwlyZXQKLSsJLmNmaV9lbmRwcm9jCi0r LkxGRTA6Ci0rCS5zaXplCWJhcl8xLCAuLWJhcl8xCi0rCS5wMmFsaWduIDQsLDE1Ci0rCS50eXBl CWJhciwgQGZ1bmN0aW9uCi0rYmFyOgotKy5MRkIxOgotKwkjIHRhaWxjYWxsLW9ubHkuYzoyOAot KwkubG9jIDEgMjggMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBmcmVxOjEwMDAwIHNl cTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQotKwkjIHRhaWxjYWxsLW9u bHkuYzoyOQotKwkubG9jIDEgMjkgMAotKwlqbXAJYmFyXzEKLSsjIFNVQ0M6IEVYSVQgWzEwMC4w JV0gIChBQk5PUk1BTCxTSUJDQUxMKQotKy5MVkwwOgotKwkuY2ZpX2VuZHByb2MKLSsuTEZFMToK LSsJLnNpemUJYmFyLCAuLWJhcgotKwkucDJhbGlnbiA0LCwxNQotKwkudHlwZQlmb29fMSwgQGZ1 bmN0aW9uCi0rZm9vXzE6Ci0rLkxGQjI6Ci0rCSMgdGFpbGNhbGwtb25seS5jOjM0Ci0rCS5sb2Mg MSAzNCAwCi0rCS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAKLSsj IFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCSMgdGFpbGNhbGwtb25seS5jOjM1 Ci0rCS5sb2MgMSAzNSAwCi0rCWptcAliYXIKLSsjIFNVQ0M6IEVYSVQgWzEwMC4wJV0gIChBQk5P Uk1BTCxTSUJDQUxMKQotKy5MVkwxOgotKwkuY2ZpX2VuZHByb2MKLSsuTEZFMjoKLSsJLnNpemUJ Zm9vXzEsIC4tZm9vXzEKLSsJLnAyYWxpZ24gNCwsMTUKLSsJLnR5cGUJZm9vLCBAZnVuY3Rpb24K LStmb286Ci0rLkxGQjM6Ci0rCSMgdGFpbGNhbGwtb25seS5jOjQwCi0rCS5sb2MgMSA0MCAwCi0r CS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAKLSsjIFBSRUQ6IEVO VFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCSMgdGFpbGNhbGwtb25seS5jOjQxCi0rCS5sb2Mg MSA0MSAwCi0rCWptcAlmb29fMQotKyMgU1VDQzogRVhJVCBbMTAwLjAlXSAgKEFCTk9STUFMLFNJ QkNBTEwpCi0rLkxWTDI6Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkUzOgotKwkuc2l6ZQlmb28sIC4t Zm9vCi0rCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAsImF4IixAcHJvZ2JpdHMKLSsJLnAyYWxpZ24g NCwsMTUKLSsJLmdsb2JsCW1haW4KLSsJLnR5cGUJbWFpbiwgQGZ1bmN0aW9uCi0rbWFpbjoKLSsu TEZCNDoKLSsJIyB0YWlsY2FsbC1vbmx5LmM6NDYKLSsJLmxvYyAxIDQ2IDAKLSsJLmNmaV9zdGFy dHByb2MKLSsjIEJMT0NLIDIgZnJlcToxMDAwMCBzZXE6MAotKyMgUFJFRDogRU5UUlkgWzEwMC4w JV0gIChGQUxMVEhSVSkKLSsJIyB0YWlsY2FsbC1vbmx5LmM6NDkKLSsJLmxvYyAxIDQ5IDAKLSsJ Y2FsbAlmb28KLSsuTFZMMzoKLSsJIyB0YWlsY2FsbC1vbmx5LmM6NTAKLSsJLmxvYyAxIDUwIDAK LSsJYWRkbAkkMSwgJWVheAotKy5MVkw0OgotKyMgU1VDQzogRVhJVCBbMTAwLjAlXQotKwkjIHRh aWxjYWxsLW9ubHkuYzo1MwotKwkubG9jIDEgNTMgMAotKwlyZXQKLSsJLmNmaV9lbmRwcm9jCi0r LkxGRTQ6Ci0rCS5zaXplCW1haW4sIC4tbWFpbgotKwkudGV4dAotKy5MZXRleHQwOgotKwkuc2Vj dGlvbgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2luZm8wOgotKwkubG9uZwkw eDExMQkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KLSsJLnZhbHVlCTB4NAkjIERX QVJGIHZlcnNpb24gbnVtYmVyCi0rCS5sb25nCS5MZGVidWdfYWJicmV2MAkjIE9mZnNldCBJbnRv IEFiYnJldi4gU2VjdGlvbgotKwkuYnl0ZQkweDgJIyBQb2ludGVyIFNpemUgKGluIGJ5dGVzKQot KwkudWxlYjEyOCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21waWxlX3VuaXQpCi0rCS5sb25n CS5MQVNGMQkjIERXX0FUX3Byb2R1Y2VyOiAiR05VIEMgNC44LjMgMjAxNDA5MTEgKFJlZCBIYXQg NC44LjMtOSkgLW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4Ni02NCAtZyAtTzIiCi0rCS5ieXRlCTB4 MQkjIERXX0FUX2xhbmd1YWdlCi0rCS5sb25nCS5MQVNGMgkjIERXX0FUX25hbWU6ICJ0YWlsY2Fs bC1vbmx5LmMiCi0rCS5sb25nCS5MQVNGMwkjIERXX0FUX2NvbXBfZGlyOiAiIgotKwkubG9uZwku TGRlYnVnX3JhbmdlczArMAkjIERXX0FUX3JhbmdlcwotKwkucXVhZAkwCSMgRFdfQVRfbG93X3Bj Ci0rCS5sb25nCS5MZGVidWdfbGluZTAJIyBEV19BVF9zdG10X2xpc3QKLSsJLnVsZWIxMjggMHgy CSMgKERJRSAoMHgyOSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5MQVNGNAkjIERXX0FU X25hbWU6ICJiYXJfMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2FsbC1v bmx5LmMpCi0rCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3Byb3Rv dHlwZWQKLSsJLmxvbmcJMHg0NgkjIERXX0FUX3R5cGUKLSsJLnF1YWQJLkxGQjAJIyBEV19BVF9s b3dfcGMKLSsJLnF1YWQJLkxGRTAtLkxGQjAJIyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4IDB4 MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2Zh Ci0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLnVsZWIxMjggMHgzCSMgKERJRSAo MHg0NikgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCi0r CS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5nCi0rCS5hc2NpaSAiaW50XDAiCSMgRFdfQVRfbmFt ZQotKwkudWxlYjEyOCAweDQJIyAoRElFICgweDRkKSBEV19UQUdfc3VicHJvZ3JhbSkKLSsJLmFz Y2lpICJiYXJcMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAo dGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDFiCSMgRFdfQVRfZGVjbF9saW5lCi0rCQkJIyBE V19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4NDYJIyBEV19BVF90eXBlCi0rCS5xdWFkCS5MRkIx CSMgRFdfQVRfbG93X3BjCi0rCS5xdWFkCS5MRkUxLS5MRkIxCSMgRFdfQVRfaGlnaF9wYwotKwku dWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0rCS5ieXRlCTB4OWMJIyBEV19PUF9jYWxs X2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCi0rCS5sb25nCTB4N2MJ IyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkjIChESUUgKDB4NmUpIERXX1RBR19HTlVf Y2FsbF9zaXRlKQotKwkucXVhZAkuTFZMMAkjIERXX0FUX2xvd19wYwotKwkJCSMgRFdfQVRfR05V X3RhaWxfY2FsbAotKwkubG9uZwkweDI5CSMgRFdfQVRfYWJzdHJhY3Rfb3JpZ2luCi0rCS5ieXRl CTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NGQKLSsJLnVsZWIxMjggMHg2CSMgKERJRSAo MHg3YykgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5MQVNGMAkjIERXX0FUX25hbWU6ICJm b29fMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2FsbC1vbmx5LmMpCi0r CS5ieXRlCTB4MjEJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3Byb3RvdHlwZWQKLSsJ LmxvbmcJMHg0NgkjIERXX0FUX3R5cGUKLSsJLnF1YWQJLkxGQjIJIyBEV19BVF9sb3dfcGMKLSsJ LnF1YWQJLkxGRTItLkxGQjIJIyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4IDB4MQkjIERXX0FU X2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCi0rCQkJIyBE V19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLmxvbmcJMHhhYgkjIERXX0FUX3NpYmxpbmcKLSsJ LnVsZWIxMjggMHg1CSMgKERJRSAoMHg5ZCkgRFdfVEFHX0dOVV9jYWxsX3NpdGUpCi0rCS5xdWFk CS5MVkwxCSMgRFdfQVRfbG93X3BjCi0rCQkJIyBEV19BVF9HTlVfdGFpbF9jYWxsCi0rCS5sb25n CTB4NGQJIyBEV19BVF9hYnN0cmFjdF9vcmlnaW4KLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJl biBvZiBESUUgMHg3YwotKwkudWxlYjEyOCAweDQJIyAoRElFICgweGFiKSBEV19UQUdfc3VicHJv Z3JhbSkKLSsJLmFzY2lpICJmb29cMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDI3CSMgRFdfQVRfZGVjbF9s aW5lCi0rCQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4NDYJIyBEV19BVF90eXBlCi0r CS5xdWFkCS5MRkIzCSMgRFdfQVRfbG93X3BjCi0rCS5xdWFkCS5MRkUzLS5MRkIzCSMgRFdfQVRf aGlnaF9wYwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0rCS5ieXRlCTB4OWMJ IyBEV19PUF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCi0r CS5sb25nCTB4ZGEJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkjIChESUUgKDB4Y2Mp IERXX1RBR19HTlVfY2FsbF9zaXRlKQotKwkucXVhZAkuTFZMMgkjIERXX0FUX2xvd19wYwotKwkJ CSMgRFdfQVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDdjCSMgRFdfQVRfYWJzdHJhY3Rfb3Jp Z2luCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YWIKLSsJLnVsZWIxMjgg MHg3CSMgKERJRSAoMHhkYSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCQkJIyBEV19BVF9leHRlcm5h bAotKwkubG9uZwkuTEFTRjUJIyBEV19BVF9uYW1lOiAibWFpbiIKLSsJLmJ5dGUJMHgxCSMgRFdf QVRfZGVjbF9maWxlICh0YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MmQJIyBEV19BVF9kZWNs X2xpbmUKLSsJCQkjIERXX0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJMHg0NgkjIERXX0FUX3R5cGUK LSsJLnF1YWQJLkxGQjQJIyBEV19BVF9sb3dfcGMKLSsJLnF1YWQJLkxGRTQtLkxGQjQJIyBEV19B VF9oaWdoX3BjCi0rCS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5 YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMK LSsJLnVsZWIxMjggMHg4CSMgKERJRSAoMHhmNykgRFdfVEFHX3ZhcmlhYmxlKQotKwkubG9uZwku TEFTRjYJIyBEV19BVF9uYW1lOiAiYW5zd2VyIgotKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2Zp bGUgKHRhaWxjYWxsLW9ubHkuYykKLSsJLmJ5dGUJMHgyZgkjIERXX0FUX2RlY2xfbGluZQotKwku bG9uZwkweDQ2CSMgRFdfQVRfdHlwZQotKwkubG9uZwkuTExTVDAJIyBEV19BVF9sb2NhdGlvbgot KwkudWxlYjEyOCAweDkJIyAoRElFICgweDEwNikgRFdfVEFHX0dOVV9jYWxsX3NpdGUpCi0rCS5x dWFkCS5MVkwzCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCTB4YWIJIyBEV19BVF9hYnN0cmFjdF9v cmlnaW4KLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhkYQotKwkuYnl0ZQkw CSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGIKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwi IixAcHJvZ2JpdHMKLSsuTGRlYnVnX2FiYnJldjA6Ci0rCS51bGViMTI4IDB4MQkjIChhYmJyZXYg Y29kZSkKLSsJLnVsZWIxMjggMHgxMQkjIChUQUc6IERXX1RBR19jb21waWxlX3VuaXQpCi0rCS5i eXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcwotKwkudWxlYjEyOCAweDI1CSMgKERXX0FUX3Byb2R1 Y2VyKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDEzCSMg KERXX0FUX2xhbmd1YWdlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVs ZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnAp Ci0rCS51bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCi0rCS51bGViMTI4IDB4ZQkjIChE V19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4NTUJIyAoRFdfQVRfcmFuZ2VzKQotKwkudWxlYjEy OCAweDE3CSMgKERXX0ZPUk1fc2VjX29mZnNldCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9s b3dfcGMpCi0rCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTAJ IyAoRFdfQVRfc3RtdF9saXN0KQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1fc2VjX29mZnNl dCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29kZSkK LSsJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkwCSMg RFdfY2hpbGRyZW5fbm8KLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4 IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxl KQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChE V19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxl YjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9S TV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKLSsJLnVsZWIx MjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3Bj KQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDEyCSMgKERX X0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQotKwkudWxlYjEy OCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9l eHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzKQot KwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwkuYnl0ZQkwCi0rCS5i eXRlCTAKLSsJLnVsZWIxMjggMHgzCSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDI0CSMg KFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51 bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JN X2RhdGExKQotKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQotKwkudWxlYjEyOCAw eGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51 bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51 bGViMTI4IDB4NAkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RB R19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKLSsJLnVsZWIxMjgg MHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKLSsJ LnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCi0rCS51bGViMTI4IDB4YgkjIChEV19G T1JNX2RhdGExKQotKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkKLSsJLnVsZWIx MjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MjcJIyAoRFdfQVRfcHJvdG90 eXBlZCkKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIx MjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkK LSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCi0rCS51bGViMTI4IDB4MQkjIChEV19G T1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykKLSsJLnVsZWIxMjgg MHg3CSMgKERXX0ZPUk1fZGF0YTgpCi0rCS51bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJhbWVfYmFz ZSkKLSsJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCi0rCS51bGViMTI4IDB4MjEx NwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9S TV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJsaW5nKQotKwkudWxl YjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGVi MTI4IDB4NQkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHg0MTA5CSMgKFRBRzogRFdfVEFH X0dOVV9jYWxsX3NpdGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAw eDExCSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJ LnVsZWIxMjggMHgyMTE1CSMgKERXX0FUX0dOVV90YWlsX2NhbGwpCi0rCS51bGViMTI4IDB4MTkJ IyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MzEJIyAoRFdfQVRfYWJzdHJh Y3Rfb3JpZ2luKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAot KwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NgkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgy ZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95 ZXMKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19G T1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xp bmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDI3CSMg KERXX0FUX3Byb3RvdHlwZWQpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNl bnQpCi0rCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKLSsJLnVsZWIxMjggMHgxMwkjIChE V19GT1JNX3JlZjQpCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEy OCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMp Ci0rCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQotKwkudWxlYjEyOCAweDQwCSMgKERX X0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQotKwku dWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzKQotKwkudWxlYjEyOCAw eDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwkudWxlYjEyOCAweDEJIyAoRFdfQVRfc2li bGluZykKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS5ieXRlCTAKLSsJLmJ5 dGUJMAotKwkudWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCi0rCS51bGViMTI4IDB4MmUJIyAo VEFHOiBEV19UQUdfc3VicHJvZ3JhbSkKLSsJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0r CS51bGViMTI4IDB4M2YJIyAoRFdfQVRfZXh0ZXJuYWwpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdf Rk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxl YjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xf ZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJ IyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJ LnVsZWIxMjggMHgyNwkjIChEV19BVF9wcm90b3R5cGVkKQotKwkudWxlYjEyOCAweDE5CSMgKERX X0ZPUk1fZmxhZ19wcmVzZW50KQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0rCS51 bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xv d19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgxMgkj IChEV19BVF9oaWdoX3BjKQotKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9kYXRhOCkKLSsJLnVs ZWIxMjggMHg0MAkjIChEV19BVF9mcmFtZV9iYXNlKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZP Uk1fZXhwcmxvYykKLSsJLnVsZWIxMjggMHgyMTE3CSMgKERXX0FUX0dOVV9hbGxfY2FsbF9zaXRl cykKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLmJ5dGUJMAot KwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4OAkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgz NAkjIChUQUc6IERXX1RBR192YXJpYWJsZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0r CS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9z dHJwKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhi CSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQot KwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19B VF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgy CSMgKERXX0FUX2xvY2F0aW9uKQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1fc2VjX29mZnNl dCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4OQkjIChhYmJyZXYgY29kZSkK LSsJLnVsZWIxMjggMHg0MTA5CSMgKFRBRzogRFdfVEFHX0dOVV9jYWxsX3NpdGUpCi0rCS5ieXRl CTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKLSsJ LnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgzMQkjIChEV19BVF9h YnN0cmFjdF9vcmlnaW4pCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0 ZQkwCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkuc2VjdGlvbgkuZGVidWdfbG9jLCIiLEBwcm9n Yml0cwotKy5MZGVidWdfbG9jMDoKLSsuTExTVDA6Ci0rCS5xdWFkCS5MVkwzCSMgTG9jYXRpb24g bGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QwKQotKwkucXVhZAkuTFZMNAkjIExvY2F0aW9uIGxp c3QgZW5kIGFkZHJlc3MgKCouTExTVDApCi0rCS52YWx1ZQkweDMJIyBMb2NhdGlvbiBleHByZXNz aW9uIHNpemUKLSsJLmJ5dGUJMHg3MAkjIERXX09QX2JyZWcwCi0rCS5zbGViMTI4IDEKLSsJLmJ5 dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCi0rCS5xdWFkCS5MVkw0CSMgTG9jYXRpb24gbGlz dCBiZWdpbiBhZGRyZXNzICgqLkxMU1QwKQotKwkucXVhZAkuTEZFNAkjIExvY2F0aW9uIGxpc3Qg ZW5kIGFkZHJlc3MgKCouTExTVDApCi0rCS52YWx1ZQkweDEJIyBMb2NhdGlvbiBleHByZXNzaW9u IHNpemUKLSsJLmJ5dGUJMHg1MAkjIERXX09QX3JlZzAKLSsJLnF1YWQJMAkjIExvY2F0aW9uIGxp c3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMCkKLSsJLnF1YWQJMAkjIExvY2F0aW9uIGxpc3Qg dGVybWluYXRvciBlbmQgKCouTExTVDApCi0rCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBw cm9nYml0cwotKwkubG9uZwkweDNjCSMgTGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8KLSsJ LnZhbHVlCTB4MgkjIERXQVJGIFZlcnNpb24KLSsJLmxvbmcJLkxkZWJ1Z19pbmZvMAkjIE9mZnNl dCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KLSsJLmJ5dGUJMHg4CSMgU2l6ZSBvZiBBZGRyZXNz Ci0rCS5ieXRlCTAJIyBTaXplIG9mIFNlZ21lbnQgRGVzY3JpcHRvcgotKwkudmFsdWUJMAkjIFBh ZCB0byAxNiBieXRlIGJvdW5kYXJ5Ci0rCS52YWx1ZQkwCi0rCS5xdWFkCS5MdGV4dDAJIyBBZGRy ZXNzCi0rCS5xdWFkCS5MZXRleHQwLS5MdGV4dDAJIyBMZW5ndGgKLSsJLnF1YWQJLkxGQjQJIyBB ZGRyZXNzCi0rCS5xdWFkCS5MRkU0LS5MRkI0CSMgTGVuZ3RoCi0rCS5xdWFkCTAKLSsJLnF1YWQJ MAotKwkuc2VjdGlvbgkuZGVidWdfcmFuZ2VzLCIiLEBwcm9nYml0cwotKy5MZGVidWdfcmFuZ2Vz MDoKLSsJLnF1YWQJLkx0ZXh0MAkjIE9mZnNldCAwCi0rCS5xdWFkCS5MZXRleHQwCi0rCS5xdWFk CS5MRkI0CSMgT2Zmc2V0IDB4MTAKLSsJLnF1YWQJLkxGRTQKLSsJLnF1YWQJMAotKwkucXVhZAkw Ci0rCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cwotKy5MZGVidWdfbGluZTA6Ci0r CS5zZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQotKy5MQVNGNDoKLSsJLnN0cmlu ZwkiYmFyXzEiCi0rLkxBU0YyOgotKwkuc3RyaW5nCSJ0YWlsY2FsbC1vbmx5LmMiCi0rLkxBU0Yx OgotKwkuc3RyaW5nCSJHTlUgQyA0LjguMyAyMDE0MDkxMSAoUmVkIEhhdCA0LjguMy05KSAtbXR1 bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1PMiIKLSsuTEFTRjY6Ci0rCS5zdHJpbmcJImFu c3dlciIKLSsuTEFTRjU6Ci0rCS5zdHJpbmcJIm1haW4iCi0rLkxBU0YzOgotKwkuc3RyaW5nCSIi Ci0rLkxBU0YwOgotKwkuc3RyaW5nCSJmb29fMSIKLSsJLmlkZW50CSJHQ0M6IChHTlUpIDQuOC4z IDIwMTQwOTExIChSZWQgSGF0IDQuOC4zLTkpIgotKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ss IiIsQHByb2diaXRzCi0KLQotCi1jb21taXQgY2Q2NGNhYmI4YzY2YTU1NjVmYzMzYmY2NmEwN2Mw OGJjNzY3ZTQxMwotQXV0aG9yOiBZaWNoYW8gWXUgPHl5YzE5OTJAZ21haWwuY29tPgotRGF0ZTog ICBUaHUgTWFyIDMxIDE5OjI4OjQ3IDIwMTYgKzAxMDAKLQotICAgIEZpeCBQUiBnZGIvMTk4NTg6 IEdEQiBkb2Vzbid0IHJlZ2lzdGVyIHRoZSBKSVQgbGlicmFyaWVzIG9uIGF0dGFjaAotICAgIAot ICAgIFJlZjogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIvMjAxNi0wMy9tc2cwMDAyMy5o dG1sCi0gICAgCi0gICAgR0RCIGN1cnJlbnRseSBmYWlscyB0byBmZXRjaCB0aGUgbGlzdCBvZiBh bHJlYWR5LXJlZ2lzdGVyZWQgSklUCi0gICAgbW9kdWxlcyBvbiBhdHRhY2guCi0gICAgCi0gICAg Tm90aGluZyBpcyBjYWxsaW5nIGppdF9pbmZlcmlvcl9pbml0LCB3aGljaCBpcyB3aGF0IGlzIHJl c3BvbnNpYmxlIGZvcgotICAgIHdhbGtpbmcgdGhlIEpJVCBvYmplY3QgbGlzdCBhdCBpbml0IHRp bWUuCi0gICAgCi0gICAgRGVzcGl0ZSB0aGUgbWlzbGVhZGluZyBuYW1pbmcsIGppdF9pbmZlcmlv cl9jcmVhdGVkX2hvb2sgLT4KLSAgICBqaXRfaW5mZXJpb3JfaW5pdCBpcyBvbmx5IGNhbGxlZCB3 aGVuIHRoZSBpbmZlcmlvciBleGVjcy4KLSAgICAKLSAgICBUaGlzIHJlZ3Jlc3NlZCB3aXRoIHRo ZSBmaXggZm9yIFBSIGdkYi8xMzQzMSAoMDNiZWYyODNjMmQzKToKLSAgICAgaHR0cHM6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEyLTAyL21zZzAwMDIzLmh0bWwgd2hpY2gKLSAg ICByZW1vdmVkIHRoZSBpbmZlcmlvcl9jcmVhdGVkIChqaXRfaW5mZXJpb3JfY3JlYXRlZF9vYnNl cnZlcikKLSAgICBvYnNlcnZlci4KLSAgICAKLSAgICBBZGRpbmcgYW4gaW5mZXJpb3JfY3JlYXRl ZCBvYnNlcnZlciBiYWNrIGZpeGVzIHRoZSBpc3N1ZS4KLSAgICAKLSAgICBJbiB0dXJuLCB0aGlz IGV4cG9zZXMgYSBidWcgaW4gaml0X2JyZWFrcG9pbnRfcmVfc2V0X2ludGVybmFsIGFzIHdlbGws Ci0gICAgd2hpY2ggaXMgcmV0dXJuaW5nIHRoZSB3cm9uZyByZXN1bHQgd2hlbiB3ZSBhbHJlYWR5 IGhhdmUgdGhlCi0gICAgYnJlYWtwb2ludCBhdCB0aGUgcmlnaHQgYWRkcmVzcy4KLSAgICAKLSAg ICBnZGIvQ2hhbmdlTG9nOgotICAgIDIwMTYtMDMtMzEgIFlpY2hhbyBZdSAgPHl5YzE5OTJAZ21h aWwuY29tPgotICAgIAotICAgIAlQUiBnZGIvMTk4NTgKLSAgICAJKiBqaXQuYyAoaml0X2JyZWFr cG9pbnRfcmVfc2V0X2ludGVybmFsKTogUmV0dXJuIDAgaWYgd2UgYWxyZWFkeQotICAgIAlnb3Qg dGhlIGJyZWFrcG9pbnQgYXQgdGhlIHJpZ2h0IGFkZHJlc3MuCi0gICAgCShqaXRfaW5mZXJpb3Jf Y3JlYXRlZCk6IE5ldyBmdW5jdGlvbi4KLSAgICAJKF9pbml0aWFsaXplX2ppdCk6IEluc3RhbGwg aml0X2luZmVyaW9yX2NyZWF0ZWQgYXMKLSAgICAJaW5mZXJpb3JfY3JlYXRlZCBvYnNlcnZlci4K LSAgICAKLSAgICBTaWduZWQtb2ZmLWJ5OiBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+ Ci0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEs MTIgQEAKLSsyMDE2LTAzLTMxICBZaWNoYW8gWXUgIDx5eWMxOTkyQGdtYWlsLmNvbT4KLSsKLSsJ UFIgZ2RiLzE5ODU4Ci0rCSogaml0LmMgKGppdF9icmVha3BvaW50X3JlX3NldF9pbnRlcm5hbCk6 IFJldHVybiAwIGlmIHdlIGFscmVhZHkKLSsJZ290IHRoZSBicmVha3BvaW50IGF0IHRoZSByaWdo dCBhZGRyZXNzLgotKwkoaml0X2luZmVyaW9yX2NyZWF0ZWQpOiBOZXcgZnVuY3Rpb24uCi0rCShf aW5pdGlhbGl6ZV9qaXQpOiBJbnN0YWxsIGppdF9pbmZlcmlvcl9jcmVhdGVkIGFzCi0rCWluZmVy aW9yX2NyZWF0ZWQgb2JzZXJ2ZXIuCi0rCi0gMjAxNi0wMy0xNyAgTWFya3VzIE1ldHpnZXIgIDxt YXJrdXMudC5tZXR6Z2VyQGludGVsLmNvbT4KLSAKLSAJUFIgZ2RiLzE5ODI5Ci0tLS0gYS9nZGIv aml0LmMKLSsrKyBiL2dkYi9qaXQuYwotQEAgLTEwMjYsNyArMTAyNiw3IEBAIGppdF9icmVha3Bv aW50X2RlbGV0ZWQgKHN0cnVjdCBicmVha3BvaW50ICpiKQotIH0KLSAKLSAvKiAoUmUtKUluaXRp YWxpemUgdGhlIGppdCBicmVha3BvaW50IGlmIG5lY2Vzc2FyeS4KLS0gICBSZXR1cm4gMCBvbiBz dWNjZXNzLiAgKi8KLSsgICBSZXR1cm4gMCBpZiB0aGUgaml0IGJyZWFrcG9pbnQgaGFzIGJlZW4g c3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0gaml0X2JyZWFr cG9pbnRfcmVfc2V0X2ludGVybmFsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKLUBAIC0xMDcw LDcgKzEwNzAsNyBAQCBqaXRfYnJlYWtwb2ludF9yZV9zZXRfaW50ZXJuYWwgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLAotIAkJCXBhZGRyZXNzIChnZGJhcmNoLCBhZGRyKSk7Ci0gCi0gICBpZiAo cHNfZGF0YS0+Y2FjaGVkX2NvZGVfYWRkcmVzcyA9PSBhZGRyKQotLSAgICByZXR1cm4gMTsKLSsg ICAgcmV0dXJuIDA7Ci0gCi0gICAvKiBEZWxldGUgdGhlIG9sZCBicmVha3BvaW50LiAgKi8KLSAg IGlmIChwc19kYXRhLT5qaXRfYnJlYWtwb2ludCAhPSBOVUxMKQotQEAgLTEzNjcsNiArMTM2Nywx NCBAQCBqaXRfaW5mZXJpb3JfaW5pdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCi0gICAgIH0K LSB9Ci0gCi0rLyogaW5mZXJpb3JfY3JlYXRlZCBvYnNlcnZlci4gICovCi0rCi0rc3RhdGljIHZv aWQKLStqaXRfaW5mZXJpb3JfY3JlYXRlZCAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgaW50IGZy b21fdHR5KQotK3sKLSsgIGppdF9pbmZlcmlvcl9jcmVhdGVkX2hvb2sgKCk7Ci0rfQotKwotIC8q IEV4cG9ydGVkIHJvdXRpbmUgdG8gY2FsbCB3aGVuIGFuIGluZmVyaW9yIGhhcyBiZWVuIGNyZWF0 ZWQuICAqLwotIAotIHZvaWQKLUBAIC0xNDk2LDYgKzE1MDQsNyBAQCBfaW5pdGlhbGl6ZV9qaXQg KHZvaWQpCi0gCQkJICAgICBzaG93X2ppdF9kZWJ1ZywKLSAJCQkgICAgICZzZXRkZWJ1Z2xpc3Qs ICZzaG93ZGVidWdsaXN0KTsKLSAKLSsgIG9ic2VydmVyX2F0dGFjaF9pbmZlcmlvcl9jcmVhdGVk IChqaXRfaW5mZXJpb3JfY3JlYXRlZCk7Ci0gICBvYnNlcnZlcl9hdHRhY2hfaW5mZXJpb3JfZXhp dCAoaml0X2luZmVyaW9yX2V4aXRfaG9vayk7Ci0gICBvYnNlcnZlcl9hdHRhY2hfYnJlYWtwb2lu dF9kZWxldGVkIChqaXRfYnJlYWtwb2ludF9kZWxldGVkKTsKLSAKLQotCi0KLWNvbW1pdCA4OWRm NWQ2Y2NlMGU5MWM0YjM0YzdhNjJiYTRhNjg3NTZhOGVkNGU3Ci1BdXRob3I6IFBlZHJvIEFsdmVz IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6ICAgVGh1IE1hciAzMSAxOToyODo0NyAyMDE2ICsw MTAwCi0KLSAgICBNYWtlIGdkYi5iYXNlL2ppdC5leHAgYmluYXJpZXMgdW5pcXVlCi0gICAgCi0g ICAgVGhpcyB0ZXN0Y2FzZSBjb21waWxlcyB0aGUgc2FtZSBwcm9ncmFtIGFuZCBsaWJyYXJ5IGRp ZmZlcmVudGx5Ci0gICAgbXVsdGlwbGUgdGltZXMgdXNpbmcgdGhlIHNhbWUgZmlsZSBuYW1lcy4g IE1ha2UgdGhlbSB1bmlxdWUsIHRvIG1ha2UKLSAgICBpdCBlYXNpZXIgdG8gZGVidWcgdGVzdCBw cm9ibGVtcy4KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLSAgICAyMDE2LTAz LTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotICAgIAotICAgIAlQUiBnZGIv MTk4NTgKLSAgICAJKiBnZGIuYmFzZS9qaXQuZXhwIChjb21waWxlX2ppdF90ZXN0KTogQWRkIGlu dHJvIGNvbW1lbnQuICBBZGQKLSAgICAJQklOU1VGRklYIHBhcmFtZXRlciwgYW5kIGhhbmRsZSBp dC4KLSAgICAJKHRvcCBsZXZlbCk6IEFkanVzdCBjYWxscyBjb21waWxlX2ppdF90ZXN0LgotCi0j IyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cKLSMjIC0xLDMgKzEsMTAgQEAKLSsyMDE2LTAzLTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0By ZWRoYXQuY29tPgotKwotKwlQUiBnZGIvMTk4NTgKLSsJKiBnZGIuYmFzZS9qaXQuZXhwIChjb21w aWxlX2ppdF90ZXN0KTogQWRkIGludHJvIGNvbW1lbnQuICBBZGQKLSsJQklOU1VGRklYIHBhcmFt ZXRlciwgYW5kIGhhbmRsZSBpdC4KLSsJKHRvcCBsZXZlbCk6IEFkanVzdCBjYWxscyBjb21waWxl X2ppdF90ZXN0LgotKwotIDIwMTYtMDMtMTcgIE1hcmt1cyBNZXR6Z2VyICA8bWFya3VzLnQubWV0 emdlckBpbnRlbC5jb20+Ci0gCi0gCVBSIGdkYi8xOTgyOQotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9qaXQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC5leHAKLUBA IC0yNCwxOCArMjQsMTkgQEAgaWYge1tnZXRfY29tcGlsZXJfaW5mb119IHsKLSAgICAgcmV0dXJu IDEKLSB9Ci0gCi0tIwotLSMgdGVzdCBydW5uaW5nIHByb2dyYW1zCi0tIwotKyMgQ29tcGlsZSB0 aGUgdGVzdGNhc2UgcHJvZ3JhbSBhbmQgbGlicmFyeS4gIEJJTlNVRkZJWCBpcyB0aGUgc3VmZml4 Ci0rIyB0byBhcHBlbmQgdG8gdGhlIHByb2dyYW0gYW5kIGxpYnJhcnkgZmlsZW5hbWVzLCB0byBt YWtlIHRoZW0gdW5pcXVlCi0rIyBiZXR3ZWVuIGludm9jYXRpb25zLiAgT1BUSU9OUyBpcyBwYXNz ZWQgdG8gZ2RiX2NvbXBpbGUgd2hlbgotKyMgY29tcGlsaW5nIHRoZSBwcm9ncmFtLgotIAotLXBy b2MgY29tcGlsZV9qaXRfdGVzdCB7dGVzdG5hbWUgb3B0aW9uc30gewotK3Byb2MgY29tcGlsZV9q aXRfdGVzdCB7dGVzdG5hbWUgYmluc3VmZml4IG9wdGlvbnN9IHsKLSAgICAgZ2xvYmFsIHRlc3Rm aWxlIHNyY2ZpbGUgYmluZmlsZSBzcmNkaXIgc3ViZGlyCi0gICAgIGdsb2JhbCBzb2xpYl90ZXN0 ZmlsZSBzb2xpYl9zcmNmaWxlIHNvbGliX2JpbmZpbGUgc29saWJfYmluZmlsZV90ZXN0X21zZwot ICAgICBnbG9iYWwgc29saWJfYmluZmlsZV90YXJnZXQKLSAKLSAgICAgc2V0IHRlc3RmaWxlIGpp dC1tYWluCi0gICAgIHNldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKLS0gICAgc2V0IGJpbmZpbGUg W3N0YW5kYXJkX291dHB1dF9maWxlICR0ZXN0ZmlsZV0KLSsgICAgc2V0IGJpbmZpbGUgW3N0YW5k YXJkX291dHB1dF9maWxlICR0ZXN0ZmlsZSRiaW5zdWZmaXhdCi0gICAgIGlmIHsgW2dkYl9jb21w aWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBcCi0gCSAg ICAgIGV4ZWN1dGFibGUgW2NvbmNhdCBkZWJ1ZyAkb3B0aW9uc11dICE9ICIiIH0gewotIAl1bnRl c3RlZCAkdGVzdG5hbWUKLUBAIC00NCw4ICs0NSw4IEBAIHByb2MgY29tcGlsZV9qaXRfdGVzdCB7 dGVzdG5hbWUgb3B0aW9uc30gewotIAotICAgICBzZXQgc29saWJfdGVzdGZpbGUgImppdC1zb2xp YiIKLSAgICAgc2V0IHNvbGliX3NyY2ZpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzb2xpYl90 ZXN0ZmlsZX0uYyIKLS0gICAgc2V0IHNvbGliX2JpbmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxl ICR7c29saWJfdGVzdGZpbGV9LnNvXQotLSAgICBzZXQgc29saWJfYmluZmlsZV90ZXN0X21zZyAi U0hMSUJESVIvJHtzb2xpYl90ZXN0ZmlsZX0uc28iCi0rICAgIHNldCBzb2xpYl9iaW5maWxlIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAke3NvbGliX3Rlc3RmaWxlfSRiaW5zdWZmaXguc29dCi0rICAg IHNldCBzb2xpYl9iaW5maWxlX3Rlc3RfbXNnICJTSExJQkRJUi8ke3NvbGliX3Rlc3RmaWxlfSRi aW5zdWZmaXguc28iCi0gCi0gICAgICMgTm90ZTogY29tcGlsaW5nIHdpdGhvdXQgZGVidWcgaW5m bzogdGhlIGxpYnJhcnkgZ29lcyB0aHJvdWdoCi0gICAgICMgc3ltYm9sIHJlbmFtaW5nIGJ5IG11 bmdpbmcgb24gaXRzIHN5bWJvbCB0YWJsZSwgYW5kIHRoYXQKLUBAIC0xMDksNyArMTEwLDcgQEAg cHJvYyBvbmVfaml0X3Rlc3Qge2NvdW50IG1hdGNoX3N0cn0gewotICAgICB9Ci0gfQotIAotLWlm IHtbY29tcGlsZV9qaXRfdGVzdCBqaXQuZXhwIHt9XSA8IDB9IHsKLStpZiB7W2NvbXBpbGVfaml0 X3Rlc3Qgaml0LmV4cCAiIiB7fV0gPCAwfSB7Ci0gICAgIHJldHVybgotIH0KLSBvbmVfaml0X3Rl c3QgMSAiJHtoZXh9ICBqaXRfZnVuY3Rpb25fMDAwMCIKLUBAIC0xMTcsNyArMTE4LDcgQEAgb25l X2ppdF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5cXSske2hleH0gIGpp dF9mdW5jdGlvbl8wMDAxIgotIAotIHdpdGhfdGVzdF9wcmVmaXggUElFIHsKLSAgICAgaWYge1tj b21waWxlX2ppdF90ZXN0ICJqaXQuZXhwIFBJRSB0ZXN0cyIgXAotLQkgICAgIHthZGRpdGlvbmFs X2ZsYWdzPS1mUElFIGxkZmxhZ3M9LXBpZX1dIDwgMH0gewotKwkgICAgICItcGllIiB7YWRkaXRp b25hbF9mbGFncz0tZlBJRSBsZGZsYWdzPS1waWV9XSA8IDB9IHsKLSAJcmV0dXJuCi0gICAgIH0K LSAKLQotCi0KLWNvbW1pdCA4NWFmMzRlZTAyMTFlZWRmOGQzMGE1YzQ0ZGZjNTlkZGRmOGI1MTJh Ci1BdXRob3I6IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6ICAgVGh1IE1h ciAzMSAxOToyODo0NyAyMDE2ICswMTAwCi0KLSAgICBBZGQgcmVncmVzc2lvbiB0ZXN0IGZvciBQ UiBnZGIvMTk4NTggKEpJVCBjb2RlIHJlZ2lzdHJhdGlvbiBvbiBhdHRhY2gpCi0gICAgCi0gICAg VGhpcyB0ZXN0IHdvdWxkIGZhaWwgd2l0aG91dCB0aGUgcHJldmlvdXMgZ2RiL2ppdC5jIGZpeDoK LSAgICAKLSAgICAgIChnZGIpIGF0dGFjaCAyMzAzMQotICAgICAgQXR0YWNoaW5nIHRvIHByb2dy YW06IC4uLi9idWlsZC9nZGIvdGVzdHN1aXRlL291dHB1dHMvZ2RiLmJhc2Uvaml0L2ppdC1tYWlu LCBwcm9jZXNzIDIzMDMxCi0gICAgICBbLi4uXQotICAgICAgMjA3ICAgICAgICAgICBXQUlUX0ZP Ul9HREI7IGkgPSAwOyAgLyogZ2RiIGJyZWFrIGhlcmUgMSAqLwotICAgICAgKGdkYikgUEFTUzog Z2RiLmJhc2Uvaml0LmV4cDogYXR0YWNoOiBvbmVfaml0X3Rlc3QtMjogYXR0YWNoCi0gICAgICBz ZXQgdmFyIHdhaXRfZm9yX2dkYiA9IDAKLSAgICAgIChnZGIpIFBBU1M6IGdkYi5iYXNlL2ppdC5l eHA6IGF0dGFjaDogb25lX2ppdF90ZXN0LTI6IHNldCB2YXIgd2FpdF9mb3JfZ2RiID0gMAotICAg ICAgaW5mbyBmdW5jdGlvbiBeaml0X2Z1bmN0aW9uCi0gICAgICBBbGwgZnVuY3Rpb25zIG1hdGNo aW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiAiXmppdF9mdW5jdGlvbiI6Ci0gICAgICAoZ2RiKSBGQUlM OiBnZGIuYmFzZS9qaXQuZXhwOiBhdHRhY2g6IG9uZV9qaXRfdGVzdC0yOiBpbmZvIGZ1bmN0aW9u IF5qaXRfZnVuY3Rpb24KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKLSAgICAy MDE2LTAzLTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotICAgIAotICAgIAlQ UiBnZGIvMTk4NTgKLSAgICAJKiBnZGIuYmFzZS9qaXQtbWFpbi5jOiBJbmNsdWRlIHVuaXN0ZC5o LgotICAgIAkoQVRUQUNIKTogRGVmaW5lIHRvIDAgaWYgbm90IGFscmVhZHkgZGVmaW5lZC4KLSAg ICAJKHdhaXRfZm9yX2dkYiwgbXlwaWQpOiBOZXcgZ2xvYmFscy4KLSAgICAJKFdBSVRfRk9SX0dE Qik6IE5ldyBtYWNyby4KLSAgICAJKE1BSU4pOiBTZXQgYW4gYWxhcm0uICBTdG9yZSB0aGUgcHJv Y2VzcydzIHBpZC4gIFdhaXQgZm9yIEdEQiBhdAotICAgIAlzb21lIGJyZWFrcG9pbnQgbG9jYXRp b25zLgotICAgIAkqIGdkYi5iYXNlL2ppdC5leHAgKGNsZWFuX3JlYXR0YWNoLCBjb250aW51ZV90 b190ZXN0X2xvY2F0aW9uKToKLSAgICAJTmV3IHByb2NlZHVyZXMuCi0gICAgCShvbmVfaml0X3Rl c3QpOiBBZGQgUkVBVFRBQ0ggcGFyYW1ldGVyLCBhbmQgaGFuZGxlIGl0LiAgVXNlCi0gICAgCWNv bnRpbnVlX3RvX3Rlc3RfbG9jYXRpb24uCi0gICAgCSh0b3AgbGV2ZWwpOiBUZXN0IGF0dGFjaCwg YW5kIGFkanVzdHMgY2FsbHMgdG8gb25lX2ppdF90ZXN0LgotCi0jIyMgYS9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDYgKzEsMjEg QEAKLSAyMDE2LTAzLTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotIAlQ UiBnZGIvMTk4NTgKLSsJKiBnZGIuYmFzZS9qaXQtbWFpbi5jOiBJbmNsdWRlIHVuaXN0ZC5oLgot KwkoQVRUQUNIKTogRGVmaW5lIHRvIDAgaWYgbm90IGFscmVhZHkgZGVmaW5lZC4KLSsJKHdhaXRf Zm9yX2dkYiwgbXlwaWQpOiBOZXcgZ2xvYmFscy4KLSsJKFdBSVRfRk9SX0dEQik6IE5ldyBtYWNy by4KLSsJKE1BSU4pOiBTZXQgYW4gYWxhcm0uICBTdG9yZSB0aGUgcHJvY2VzcydzIHBpZC4gIFdh aXQgZm9yIEdEQiBhdAotKwlzb21lIGJyZWFrcG9pbnQgbG9jYXRpb25zLgotKwkqIGdkYi5iYXNl L2ppdC5leHAgKGNsZWFuX3JlYXR0YWNoLCBjb250aW51ZV90b190ZXN0X2xvY2F0aW9uKToKLSsJ TmV3IHByb2NlZHVyZXMuCi0rCShvbmVfaml0X3Rlc3QpOiBBZGQgUkVBVFRBQ0ggcGFyYW1ldGVy LCBhbmQgaGFuZGxlIGl0LiAgVXNlCi0rCWNvbnRpbnVlX3RvX3Rlc3RfbG9jYXRpb24uCi0rCSh0 b3AgbGV2ZWwpOiBUZXN0IGF0dGFjaCwgYW5kIGFkanVzdHMgY2FsbHMgdG8gb25lX2ppdF90ZXN0 LgotKwotKzIwMTYtMDMtMzEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0rCi0r CVBSIGdkYi8xOTg1OAotIAkqIGdkYi5iYXNlL2ppdC5leHAgKGNvbXBpbGVfaml0X3Rlc3QpOiBB ZGQgaW50cm8gY29tbWVudC4gIEFkZAotIAlCSU5TVUZGSVggcGFyYW1ldGVyLCBhbmQgaGFuZGxl IGl0LgotIAkodG9wIGxldmVsKTogQWRqdXN0IGNhbGxzIGNvbXBpbGVfaml0X3Rlc3QuCi0tLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1tYWluLmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2Uvaml0LW1haW4uYwotQEAgLTI3LDYgKzI3LDcgQEAKLSAjaW5jbHVkZSA8c3RyaW5n Lmg+Ci0gI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0gI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rI2lu Y2x1ZGUgPHVuaXN0ZC5oPgotIAotIC8qIEVsZlcgaXMgY29taW5nIGZyb20gbGludXguIE9uIG90 aGVyIHBsYXRmb3JtcyBpdCBkb2VzIG5vdCBleGlzdC4KLSAgICBMZXQgdXMgZGVmaW5lIGl0IGhl cmUuICovCi1AQCAtMTE2LDEwICsxMTcsMjIgQEAgdXBkYXRlX2xvY2F0aW9ucyAoY29uc3Qgdm9p ZCAqY29uc3QgYWRkciwgaW50IGlkeCkKLSAgICAgfQotIH0KLSAKLSsvKiBEZWZpbmVkIGJ5IHRo ZSAuZXhwIGZpbGUgaWYgdGVzdGluZyBhdHRhY2guICAqLwotKyNpZm5kZWYgQVRUQUNICi0rI2Rl ZmluZSBBVFRBQ0ggMAotKyNlbmRpZgotKwotICNpZm5kZWYgTUFJTgotICNkZWZpbmUgTUFJTiBt YWluCi0gI2VuZGlmCi0gCi0rLyogVXNlZCB0byBzcGluIHdhaXRpbmcgZm9yIEdEQi4gICovCi0r dm9sYXRpbGUgaW50IHdhaXRfZm9yX2dkYiA9IEFUVEFDSDsKLSsjZGVmaW5lIFdBSVRfRk9SX0dE QiB3aGlsZSAod2FpdF9mb3JfZ2RiKQotKwotKy8qIFRoZSBjdXJyZW50IHByb2Nlc3MncyBQSUQu ICBHREIgcmV0cmlldmVzIHRoaXMuICAqLwotK2ludCBteXBpZDsKLSsKLSBpbnQKLSBNQUlOIChp bnQgYXJnYywgY2hhciAqYXJndltdKQotIHsKLUBAIC0xMjcsNiArMTQwLDEwIEBAIE1BSU4gKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCi0gICBjb25zdCBjaGFyICpsaWJuYW1lID0gTlVMTDsKLSAg IGludCBjb3VudCA9IDA7Ci0gCi0rICBhbGFybSAoMzAwKTsKLSsKLSsgIG15cGlkID0gZ2V0cGlk ICgpOwotKwotICAgY291bnQgPSBjb3VudDsgIC8qIGdkYiBicmVhayBoZXJlIDAgICovCi0gCi0g ICBpZiAoYXJnYyA8IDIpCi1AQCAtMTkwLDcgKzIwNyw3IEBAIE1BSU4gKGludCBhcmdjLCBjaGFy ICphcmd2W10pCi0gICAgICAgICAgIF9faml0X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCk7Ci0gICAg ICAgICB9Ci0gCi0tICAgICAgaSA9IDA7ICAvKiBnZGIgYnJlYWsgaGVyZSAxICovCi0rICAgICAg V0FJVF9GT1JfR0RCOyBpID0gMDsgIC8qIGdkYiBicmVhayBoZXJlIDEgKi8KLSAKLSAgICAgICAv KiBOb3cgdW5yZWdpc3RlciB0aGVtIGFsbCBpbiByZXZlcnNlIG9yZGVyLiAgKi8KLSAgICAgICB3 aGlsZSAoX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeSAhPSBOVUxMKQotQEAg LTIxNSw1ICsyMzIsNSBAQCBNQUlOIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotICAgICAgICAg ICBmcmVlIChlbnRyeSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLS0gIHJldHVybiAwOyAgLyogZ2Ri IGJyZWFrIGhlcmUgMiAgKi8KLSsgIFdBSVRfRk9SX0dEQjsgcmV0dXJuIDA7ICAvKiBnZGIgYnJl YWsgaGVyZSAyICAqLwotIH0KLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LmV4cAot KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQuZXhwCi1AQCAtNjYsNyArNjYsNDkgQEAg cHJvYyBjb21waWxlX2ppdF90ZXN0IHt0ZXN0bmFtZSBiaW5zdWZmaXggb3B0aW9uc30gewotICAg ICByZXR1cm4gMAotIH0KLSAKLS1wcm9jIG9uZV9qaXRfdGVzdCB7Y291bnQgbWF0Y2hfc3RyfSB7 Ci0rIyBEZXRhY2gsIHJlc3RhcnQgR0RCLCBhbmQgcmUtYXR0YWNoIHRvIHRoZSBwcm9ncmFtLgot KwotK3Byb2MgY2xlYW5fcmVhdHRhY2gge30gewotKyAgICBnbG9iYWwgZGVjaW1hbCBnZGJfcHJv bXB0IHNyY2ZpbGUgdGVzdGZpbGUKLSsKLSsgICAgIyBHZXQgUElEIG9mIHRlc3QgcHJvZ3JhbS4K LSsgICAgc2V0IHRlc3RwaWQgLTEKLSsgICAgc2V0IHRlc3QgImdldCBpbmZlcmlvciBwcm9jZXNz IElEIgotKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAicCBteXBpZCIgJHRlc3QgewotKwktcmUgIi4q ID0gKCRkZWNpbWFsKS4qJGdkYl9wcm9tcHQgJCIgewotKwkgICAgc2V0IHRlc3RwaWQgJGV4cGVj dF9vdXQoMSxzdHJpbmcpCi0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsgICAgfQotKwotKyAgICBn ZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgd2FpdF9mb3JfZ2RiID0gMSIKLSsgICAgZ2RiX3Rl c3QgImRldGFjaCIgIkRldGFjaGluZyBmcm9tIC4qIgotKwotKyAgICBjbGVhbl9yZXN0YXJ0ICR0 ZXN0ZmlsZQotKwotKyAgICBzZXQgdGVzdCAiYXR0YWNoIgotKyAgICBnZGJfdGVzdF9tdWx0aXBs ZSAiYXR0YWNoICR0ZXN0cGlkIiAiJHRlc3QiIHsKLSsJLXJlICJBdHRhY2hpbmcgdG8gcHJvZ3Jh bS4qLiptYWluLiphdCAuKiRzcmNmaWxlOi4qJGdkYl9wcm9tcHQgJCIgewotKwkgICAgcGFzcyAi JHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIg d2FpdF9mb3JfZ2RiID0gMCIKLSt9Ci0rCi0rIyBDb250aW51ZSB0byBMT0NBVElPTiBpbiB0aGUg cHJvZ3JhbS4gIElmIFJFQVRUQUNILCBkZXRhY2ggYW5kCi0rIyByZS1hdHRhY2ggdG8gdGhlIHBy b2dyYW0gZnJvbSBzY3JhdGNoLgotK3Byb2MgY29udGludWVfdG9fdGVzdF9sb2NhdGlvbiB7bG9j YXRpb24gcmVhdHRhY2h9IHsKLSsgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgJGxvY2F0aW9uXQotKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAkbG9jYXRpb24K LSsgICAgaWYgeyRyZWF0dGFjaH0gewotKwl3aXRoX3Rlc3RfcHJlZml4ICIkbG9jYXRpb24iIHsK LSsJICAgIGNsZWFuX3JlYXR0YWNoCi0rCX0KLSsgICAgfQotK30KLSsKLStwcm9jIG9uZV9qaXRf dGVzdCB7Y291bnQgbWF0Y2hfc3RyIHJlYXR0YWNofSB7Ci0gICAgIHdpdGhfdGVzdF9wcmVmaXgg Im9uZV9qaXRfdGVzdC0kY291bnQiIHsKLSAJZ2xvYmFsIHZlcmJvc2UgdGVzdGZpbGUgc29saWJf YmluZmlsZV90YXJnZXQgc29saWJfYmluZmlsZV90ZXN0X21zZwotIAotQEAgLTkxLDggKzEzMyw3 IEBAIHByb2Mgb25lX2ppdF90ZXN0IHtjb3VudCBtYXRjaF9zdHJ9IHsKLSAJZ2RiX3Rlc3Rfbm9f b3V0cHV0ICJzZXQgdmFyIGxpYm5hbWUgPSBcIiRzb2xpYl9iaW5maWxlX3RhcmdldFwiIiAic2V0 IHZhciBsaWJuYW1lID0gXCIkc29saWJfYmluZmlsZV90ZXN0X21zZ1wiIgotIAlnZGJfdGVzdF9u b19vdXRwdXQgInNldCB2YXIgY291bnQgPSAkY291bnQiCi0gCi0tCWdkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVhayBoZXJlIDEiXQotLQlnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiYnJlYWsgaGVyZSAxIgotKwljb250aW51ZV90b190ZXN0X2xvY2F0aW9uICJicmVh ayBoZXJlIDEiICRyZWF0dGFjaAotIAotIAlnZGJfdGVzdCAiaW5mbyBmdW5jdGlvbiBeaml0X2Z1 bmN0aW9uIiAiJG1hdGNoX3N0ciIKLSAKLUBAIC0xMDIsOCArMTQzLDggQEAgcHJvYyBvbmVfaml0 X3Rlc3Qge2NvdW50IG1hdGNoX3N0cn0gewotIAkgICAgZ2RiX3Rlc3QgIm1haW50ZW5hbmNlIGlu Zm8gYnJlYWsiCi0gCX0KLSAKLS0JZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg ImJyZWFrIGhlcmUgMiJdCi0tCWdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJicmVhayBoZXJl IDIiCi0rCWNvbnRpbnVlX3RvX3Rlc3RfbG9jYXRpb24gImJyZWFrIGhlcmUgMiIgJHJlYXR0YWNo Ci0rCi0gCSMgQWxsIGppdCBsaWJyYXJlcyBtdXN0IGhhdmUgYmVlbiB1bnJlZ2lzdGVyZWQKLSAJ Z2RiX3Rlc3QgImluZm8gZnVuY3Rpb24gaml0X2Z1bmN0aW9uIiBcCi0gCSAgICAiQWxsIGZ1bmN0 aW9ucyBtYXRjaGluZyByZWd1bGFyIGV4cHJlc3Npb24gXCJqaXRfZnVuY3Rpb25cIjoiCi1AQCAt MTEzLDggKzE1NCwyMiBAQCBwcm9jIG9uZV9qaXRfdGVzdCB7Y291bnQgbWF0Y2hfc3RyfSB7Ci0g aWYge1tjb21waWxlX2ppdF90ZXN0IGppdC5leHAgIiIge31dIDwgMH0gewotICAgICByZXR1cm4K LSB9Ci0tb25lX2ppdF90ZXN0IDEgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDAiCi0tb25lX2pp dF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5cXSske2hleH0gIGppdF9m dW5jdGlvbl8wMDAxIgotK29uZV9qaXRfdGVzdCAxICIke2hleH0gIGppdF9mdW5jdGlvbl8wMDAw IiAwCi0rb25lX2ppdF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5cXSsk e2hleH0gIGppdF9mdW5jdGlvbl8wMDAxIiAwCi0rCi0rIyBUZXN0IGF0dGFjaGluZyB0byBhbiBp bmZlcmlvciB3aXRoIHNvbWUgSklUIGxpYnJhcmllcyBhbHJlYWR5Ci0rIyByZWdpc3RlcmVkLiAg V2UgcmV1c2UgdGhlIG5vcm1hbCB0ZXN0LCBhbmQgZGV0YWNoL3JlYXR0YWNoIGF0Ci0rIyBzcGVj aWZpYyBpbnRlcmVzdGluZyBwb2ludHMuCi0raWYge1tjYW5fc3Bhd25fZm9yX2F0dGFjaF19IHsK LSsgICAgaWYge1tjb21waWxlX2ppdF90ZXN0ICJqaXQuZXhwIGF0dGFjaCB0ZXN0cyIgXAotKwkg ICAgICItYXR0YWNoIiB7YWRkaXRpb25hbF9mbGFncz0tREFUVEFDSD0xfV0gPCAwfSB7Ci0rCXJl dHVybgotKyAgICB9Ci0rCi0rICAgIHdpdGhfdGVzdF9wcmVmaXggYXR0YWNoIHsKLSsJb25lX2pp dF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5cXSske2hleH0gIGppdF9m dW5jdGlvbl8wMDAxIiAxCi0rICAgIH0KLSt9Ci0gCi0gd2l0aF90ZXN0X3ByZWZpeCBQSUUgewot ICAgICBpZiB7W2NvbXBpbGVfaml0X3Rlc3QgImppdC5leHAgUElFIHRlc3RzIiBcCi1AQCAtMTIy LDUgKzE3Nyw1IEBAIHdpdGhfdGVzdF9wcmVmaXggUElFIHsKLSAJcmV0dXJuCi0gICAgIH0KLSAK LS0gICAgb25lX2ppdF90ZXN0IDEgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDAiCi0rICAgIG9u ZV9qaXRfdGVzdCAxICIke2hleH0gIGppdF9mdW5jdGlvbl8wMDAwIiAwCi0gfQotCi0KLQotY29t bWl0IDJkMzVlODcxMjc0YTQ4MzMxYzRkNmM3YjNlNGZiZWU0MmI5MDFmMzMKLUF1dGhvcjogSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiAgIFRodSBBcHIg NyAyMjoxODo0OSAyMDE2ICswMjAwCi0KLSAgICB0ZXN0c3VpdGU6IEZpeCBmYWxzZSBGQUlMcyB3 aXRoIC5iYXNocmMgR0RCSElTVEZJTEU9Li4uCi0gICAgCi0gICAgJCBHREJISVNURklMRT0vdG1w L2dkYmhpc3RmaWxlIHJ1bnRlc3QgZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlzdG9yeS5leHAgZ2Ri LmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cAotICAgIFJ1bm5pbmcgLi9nZGIuYmFzZS9nZGJpbml0 LWhpc3RvcnkuZXhwIC4uLgotICAgIEZBSUw6IGdkYi5iYXNlL2dkYmluaXQtaGlzdG9yeS5leHA6 IGhvbWU9Z2RiaW5pdC1oaXN0b3J5L3VubGltaXRlZCBnZGJoaXN0c2l6ZT0xMDAwOiBzaG93IGNv bW1hbmRzCi0gICAgRkFJTDogZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cDogaG9tZT1nZGJp bml0LWhpc3RvcnkvdW5saW1pdGVkIGdkYmhpc3RzaXplPWZvbzogc2hvdyBjb21tYW5kcwotICAg IFJ1bm5pbmcgLi9nZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cCAuLi4KLSAgICBGQUlM OiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9OiBzaG93IGNvbW1h bmRzCi0gICAgRkFJTDogZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlzdG9yeS5leHA6IGhpc3RzaXpl PTIwOiBzaG93IGNvbW1hbmRzCi0gICAgRkFJTDogZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlzdG9y eS5leHA6IGhpc3RzaXplPSAyMCA6IHNob3cgY29tbWFuZHMKLSAgICBGQUlMOiBnZGIuYmFzZS9n ZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9LTU6IHNob3cgY29tbWFuZHMKLSAgICBG QUlMOiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9bm90X2FuX2lu dGVnZXI6IHNob3cgY29tbWFuZHMKLSAgICBGQUlMOiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0 b3J5LmV4cDogaGlzdHNpemU9MTB6YWI6IHNob3cgY29tbWFuZHMKLSAgICBGQUlMOiBnZGIuYmFz ZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9LTVhYjogc2hvdyBjb21tYW5kcwot ICAgIEZBSUw6IGdkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwOiBoaXN0c2l6ZT05OTk5 OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTogc2hvdyBjb21tYW5kcwotICAgIEZBSUw6 IGdkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwOiBoaXN0c2l6ZT01MDogc2hvdyBjb21t YW5kcwotICAgIAotICAgIFRoaXMgaGFwcGVucyBmb3IgbXkgc2V0dXAgZHVlIHRvIG15OgotICAg IAkkIGdyZXAgR0RCIH4vLmJhc2hyYwotICAgIAlleHBvcnQgR0RCSElTVEZJTEU9IiRIT01FLy5n ZGJfaGlzdG9yeSIKLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotICAgIDIwMTYt MDQtMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAK LSAgICAJKiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogU2F2ZSBhbmQgdW5zZXQg R0RCSElTVEZJTEUgYW5kCi0gICAgCUdEQkhJU1RTSVpFIHByaW9yIHRvIHRoZSB0ZXN0cy4KLSAg ICAJKiBnZGIuYmFzZS9nZGJpbml0LWhpc3RvcnkuZXhwOiBMaWtld2lzZS4KLQotIyMjIGEvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAt MSw0ICsxLDEwIEBACi0tMjAxNS0wNC0wNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNv bT4KLSsyMDE2LTA0LTA3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0rCi0rCSogZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlzdG9yeS5leHA6IFNhdmUgYW5kIHVu c2V0IEdEQkhJU1RGSUxFIGFuZAotKwlHREJISVNUU0laRSBwcmlvciB0byB0aGUgdGVzdHMuCi0r CSogZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cDogTGlrZXdpc2UuCi0rCi0rMjAxNi0wNC0w NyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBnZGIuY29tcGlsZS9j b21waWxlLmV4cDogVXNlIGdkYl9jb21waWxlIHdpdGggInNobGliPSIgb3B0aW9uCi0gCWluc3Rl YWQgb2YgYnVpbGRfZXhlY3V0YWJsZS4gIFVzZSBnZGJfbG9hZF9zaGxpYnMuCi0tLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwCi0rKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwCi1AQCAtMzIsNyArMzIsMTMg QEAgaWYgeyBbaXNfcmVtb3RlIGhvc3RdIH0gewotIHByb2MgdGVzdF9oaXN0c2l6ZV9oaXN0b3J5 X3NldHRpbmcgeyBoaXN0c2l6ZSBzaXplIHsgZW52X3ZhciAiR0RCSElTVFNJWkUiIH0gfSB7Ci0g ICAgIGdsb2JhbCBlbnYKLSAKLS0gICAgc2F2ZV92YXJzIHsgZW52KCRlbnZfdmFyKSB9IHsKLSsg ICAgc2F2ZV92YXJzIHsgZW52KEdEQkhJU1RGSUxFKSBlbnYoR0RCSElTVFNJWkUpIGVudigkZW52 X3ZhcikgfSB7Ci0rCSMgVGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRha2UgcHJlY2VkZW5j ZSBvdmVyIHdoYXRldmVyCi0rCSMgaGlzdG9yeSBzaXplIGlzIHNldCBpbiAuZ2RiaW5pdC4gIE1h a2Ugc3VyZSB0aGUgZm9ybWVyIGlzIG5vdAotKwkjIHNldC4KLSsJdW5zZXQgLW5vY29tcGxhaW4g ZW52KEdEQkhJU1RGSUxFKQotKwl1bnNldCAtbm9jb21wbGFpbiBlbnYoR0RCSElTVFNJWkUpCi0r Ci0gCXNldCBlbnYoJGVudl92YXIpICRoaXN0c2l6ZQotIAotIAl3aXRoX3Rlc3RfcHJlZml4ICJo aXN0c2l6ZT0kaGlzdHNpemUiIHsKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ2RiaW5p dC1oaXN0b3J5LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJpbml0LWhpc3Rv cnkuZXhwCi1AQCAtMzYsMTIgKzM2LDEzIEBAIHByb2MgdGVzdF9nZGJpbml0X2hpc3Rvcnlfc2V0 dGluZyB7IGhvbWUgc2l6ZSB7IGdkYmhpc3RzaXplX3ZhbCAiLSIgfSB9IHsKLSAgICAgZ2xvYmFs IHNyY2RpcgotICAgICBnbG9iYWwgc3ViZGlyCi0gCi0tICAgIHNhdmVfdmFycyB7IElOVEVSTkFM X0dEQkZMQUdTIGVudihHREJISVNUU0laRSkgZW52KEhPTUUpIH0gewotKyAgICBzYXZlX3ZhcnMg eyBJTlRFUk5BTF9HREJGTEFHUyBlbnYoR0RCSElTVEZJTEUpIGVudihHREJISVNUU0laRSkgZW52 KEhPTUUpIH0gewotIAlzZXQgZW52KEhPTUUpICIkc3JjZGlyLyRzdWJkaXIvJGhvbWUiCi0gCi0t CSMgVGhlIEdEQkhJU1RTSVpFIGVudmlyb25tZW50IHZhcmlhYmxlIHRha2VzIHByZWNlZGVuY2Ug b3ZlciB3aGF0ZXZlcgotKwkjIFRoZXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0YWtlIHByZWNl ZGVuY2Ugb3ZlciB3aGF0ZXZlcgotIAkjIGhpc3Rvcnkgc2l6ZSBpcyBzZXQgaW4gLmdkYmluaXQu ICBNYWtlIHN1cmUgdGhlIGZvcm1lciBpcyBub3QKLSAJIyBzZXQuCi0rCXVuc2V0IC1ub2NvbXBs YWluIGVudihHREJISVNURklMRSkKLSAJdW5zZXQgLW5vY29tcGxhaW4gZW52KEdEQkhJU1RTSVpF KQotIAotIAlpZiB7ICRnZGJoaXN0c2l6ZV92YWwgIT0gIi0iIH0gewotQEAgLTc3LDEwICs3OCwx MSBAQCBwcm9jIHRlc3Rfbm9fdHJ1bmNhdGlvbl9vZl91bmxpbWl0ZWRfaGlzdG9yeV9maWxlIHsg fSB7Ci0gICAgIGdsb2JhbCBlbnYKLSAgICAgZ2xvYmFsIElOVEVSTkFMX0dEQkZMQUdTCi0gCi0t ICAgIHNhdmVfdmFycyB7IElOVEVSTkFMX0dEQkZMQUdTIGVudihHREJISVNUU0laRSkgfSB7Ci0t CSMgVGhlIEdEQkhJU1RTSVpFIGVudmlyb25tZW50IHZhcmlhYmxlIHRha2VzIHByZWNlZGVuY2Ug b3ZlciB3aGF0ZXZlcgotKyAgICBzYXZlX3ZhcnMgeyBJTlRFUk5BTF9HREJGTEFHUyBlbnYoR0RC SElTVEZJTEUpIGVudihHREJISVNUU0laRSkgfSB7Ci0rCSMgVGhlc2UgZW52aXJvbm1lbnQgdmFy aWFibGVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHdoYXRldmVyCi0gCSMgaGlzdG9yeSBzaXplIGlz IHNldCBpbiAuZ2RiaW5pdC4gIE1ha2Ugc3VyZSB0aGUgZm9ybWVyIGlzIG5vdAotIAkjIHNldC4K LSsJdW5zZXQgLW5vY29tcGxhaW4gZW52KEdEQkhJU1RGSUxFKQotIAl1bnNldCAtbm9jb21wbGFp biBlbnYoR0RCSElTVFNJWkUpCi0gCi0gCXNldCB0ZW1wX2dkYmluaXQgW3N0YW5kYXJkX291dHB1 dF9maWxlICJnZGJpbml0LWhpc3RvcnkuZ2RiaW5pdCJdCi0KLQotCi1jb21taXQgMDY1MDA1MzM2 NDkyMzM3YzkyZDA2ZTg3NTQ0NjQ2NjM1YTViOTU2NgotQXV0aG9yOiBKYW4gS3JhdG9jaHZpbCA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6ICAgRnJpIEFwciA4IDE1OjM4OjUzIDIw MTYgKzAyMDAKLQotICAgIHRlc3RzdWl0ZTogRml4IGZvciBnY2MtNC44OiBnZGIuYmFzZS9qaXQu ZXhwIGdkYi5iYXNlL2ppdC1zby5leHAKLSAgICAKLSAgICBvbiBDZW50T1MtNy4yIEkgZ2V0Ci0g ICAgCi0gICAgUnVubmluZyAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLXRlc3QtcmVnL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LmV4cCAuLi4KLSAgICBGQUlMOiBnZGIuYmFzZS9qaXQuZXhw OiBvbmVfaml0X3Rlc3QtMTogY29udGludWUgdG8gYnJlYWtwb2ludDogYnJlYWsgaGVyZSAyICh0 aGUgcHJvZ3JhbSBleGl0ZWQpCi0gICAgRkFJTDogZ2RiLmJhc2Uvaml0LmV4cDogb25lX2ppdF90 ZXN0LTI6IGNvbnRpbnVlIHRvIGJyZWFrcG9pbnQ6IGJyZWFrIGhlcmUgMiAodGhlIHByb2dyYW0g ZXhpdGVkKQotICAgIEZBSUw6IGdkYi5iYXNlL2ppdC5leHA6IGF0dGFjaDogb25lX2ppdF90ZXN0 LTI6IGNvbnRpbnVlIHRvIGJyZWFrcG9pbnQ6IGJyZWFrIGhlcmUgMiAodGhlIHByb2dyYW0gZXhp dGVkKQotICAgIEZBSUw6IGdkYi5iYXNlL2ppdC5leHA6IGF0dGFjaDogb25lX2ppdF90ZXN0LTI6 IGJyZWFrIGhlcmUgMjogc2V0IHZhciB3YWl0X2Zvcl9nZGIgPSAxCi0gICAgRkFJTDogZ2RiLmJh c2Uvaml0LmV4cDogYXR0YWNoOiBvbmVfaml0X3Rlc3QtMjogYnJlYWsgaGVyZSAyOiBkZXRhY2gg KHRoZSBwcm9ncmFtIGlzIG5vIGxvbmdlciBydW5uaW5nKQotICAgIEZBSUw6IGdkYi5iYXNlL2pp dC5leHA6IGF0dGFjaDogb25lX2ppdF90ZXN0LTI6IGJyZWFrIGhlcmUgMjogYXR0YWNoCi0gICAg RkFJTDogZ2RiLmJhc2Uvaml0LmV4cDogYXR0YWNoOiBvbmVfaml0X3Rlc3QtMjogYnJlYWsgaGVy ZSAyOiBzZXQgdmFyIHdhaXRfZm9yX2dkYiA9IDAKLSAgICBGQUlMOiBnZGIuYmFzZS9qaXQuZXhw OiBQSUU6IG9uZV9qaXRfdGVzdC0xOiBjb250aW51ZSB0byBicmVha3BvaW50OiBicmVhayBoZXJl IDIgKHRoZSBwcm9ncmFtIGV4aXRlZCkKLSAgICBSdW5uaW5nIC9ob21lL2prcmF0b2NoL3JlZGhh dC9nZGItdGVzdC1yZWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtc28uZXhwIC4uLgotICAg IEZBSUw6IGdkYi5iYXNlL2ppdC1zby5leHA6IG9uZV9qaXRfdGVzdC0xOiBjb250aW51ZSB0byBi cmVha3BvaW50OiBicmVhayBoZXJlIDIgKHRoZSBwcm9ncmFtIGV4aXRlZCkKLSAgICBGQUlMOiBn ZGIuYmFzZS9qaXQtc28uZXhwOiBvbmVfaml0X3Rlc3QtMjogY29udGludWUgdG8gYnJlYWtwb2lu dDogYnJlYWsgaGVyZSAyICh0aGUgcHJvZ3JhbSBleGl0ZWQpCi0gICAgCi0gICAgc2luY2U6Ci0g ICAgCi0gICAgODVhZjM0ZWUwMjExZWVkZjhkMzBhNWM0NGRmYzU5ZGRkZjhiNTEyYSBpcyB0aGUg Zmlyc3QgYmFkIGNvbW1pdAotICAgIGNvbW1pdCA4NWFmMzRlZTAyMTFlZWRmOGQzMGE1YzQ0ZGZj NTlkZGRmOGI1MTJhCi0gICAgQXV0aG9yOiBQZWRybyBBbHZlcyA8cGFsdmVzQHJlZGhhdC5jb20+ Ci0gICAgRGF0ZTogICBUaHUgTWFyIDMxIDE5OjI4OjQ3IDIwMTYgKzAxMDAKLSAgICAgICAgQWRk IHJlZ3Jlc3Npb24gdGVzdCBmb3IgUFIgZ2RiLzE5ODU4IChKSVQgY29kZSByZWdpc3RyYXRpb24g b24gYXR0YWNoKQotICAgIAotICAgIFRoZSBjb21waWxlZCBjb2RlJ3MgLmRlYnVnX2xpbmUgaXMg d3JvbmcgKGZvciB0aGUgc2ltcGxpc3RpYyBhcHByb2FjaCBvZiBHREIKLSAgICB0byBwdXQgYSBi cmVha3BvaW50IG9uIHRoZSBmaXJzdCBhZGRyZXNzIGJlbG9uZ2luZyB0byB0aGF0IHNvdXJjZSBs aW5lKSBhbmQgc28KLSAgICBHREIgbWlzc2VzIHRoZSBicmVha3BvaW50IGF0IHRoZSBsYXN0IGxp bmU6Ci0gICAgICAgICAgICAgIFdBSVRfRk9SX0dEQjsgcmV0dXJuIDA7ICAvKiBnZGIgYnJlYWsg aGVyZSAyICAqLwotICAgIAotICAgIE1vc3Qgb2YgdGhlIHBhdGNoIGlzIGp1c3QgYWJvdXQgcmVp bmRlbnRhdGlvbiwgbm8gY2hhbmdlcyB0aGVyZS4KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0No YW5nZUxvZwotICAgIDIwMTYtMDQtMDggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KLSAgICAKLSAgICAJRml4IGNvbXBhdGliaWxpdHkgd2l0aCBnY2MtNC44LjUt NC5lbDcueDg2XzY0LgotICAgIAkqIGdkYi5iYXNlL2ppdC1tYWluLmM6IFVzZSBleGl0IGFmdGVy IHVzYWdlLgotCi0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOCBAQAotKzIwMTYtMDQtMDggIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJRml4IGNvbXBhdGliaWxpdHkg d2l0aCBnY2MtNC44LjUtNC5lbDcueDg2XzY0LgotKwkqIGdkYi5iYXNlL2ppdC1tYWluLmM6IFVz ZSBleGl0IGFmdGVyIHVzYWdlLgotKwotIDIwMTYtMDQtMDcgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAKLSAJKiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0 b3J5LmV4cDogU2F2ZSBhbmQgdW5zZXQgR0RCSElTVEZJTEUgYW5kCi0tLS0gYS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2ppdC1tYWluLmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0 LW1haW4uYwotQEAgLTEzOCw3ICsxMzgsOCBAQCBNQUlOIChpbnQgYXJnYywgY2hhciAqYXJndltd KQotIHsKLSAgIC8qIFRoZXNlIHZhcmlhYmxlcyBhcmUgaGVyZSBzbyB0aGV5IGNhbiBlYXNpbHkg YmUgc2V0IGZyb20gaml0LmV4cC4gICovCi0gICBjb25zdCBjaGFyICpsaWJuYW1lID0gTlVMTDsK LS0gIGludCBjb3VudCA9IDA7Ci0rICBpbnQgY291bnQgPSAwLCBpLCBmZDsKLSsgIHN0cnVjdCBz dGF0IHN0OwotIAotICAgYWxhcm0gKDMwMCk7Ci0gCi1AQCAtMTQ3LDkwICsxNDgsODkgQEAgTUFJ TiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAgIGNvdW50ID0gY291bnQ7ICAvKiBnZGIgYnJl YWsgaGVyZSAwICAqLwotIAotICAgaWYgKGFyZ2MgPCAyKQotLSAgICB1c2FnZSAoYXJndlswXSk7 Ci0tICBlbHNlCi0gICAgIHsKLS0gICAgICBpbnQgaSwgZmQ7Ci0tICAgICAgc3RydWN0IHN0YXQg c3Q7Ci0rICAgICAgdXNhZ2UgKGFyZ3ZbMF0pOwotKyAgICAgIGV4aXQgKDEpOwotKyAgICB9Ci0g Ci0tICAgICAgaWYgKGxpYm5hbWUgPT0gTlVMTCkKLS0gICAgICAgIC8qIE9ubHkgc2V0IGlmIG5v dCBhbHJlYWR5IHNldCBmcm9tIEdEQi4gICovCi0tICAgICAgICBsaWJuYW1lID0gYXJndlsxXTsK LSsgIGlmIChsaWJuYW1lID09IE5VTEwpCi0rICAgIC8qIE9ubHkgc2V0IGlmIG5vdCBhbHJlYWR5 IHNldCBmcm9tIEdEQi4gICovCi0rICAgIGxpYm5hbWUgPSBhcmd2WzFdOwotIAotLSAgICAgIGlm IChhcmdjID4gMiAmJiBjb3VudCA9PSAwKQotLSAgICAgICAgLyogT25seSBzZXQgaWYgbm90IGFs cmVhZHkgc2V0IGZyb20gR0RCLiAgKi8KLS0gICAgICAgIGNvdW50ID0gYXRvaSAoYXJndlsyXSk7 Ci0rICBpZiAoYXJnYyA+IDIgJiYgY291bnQgPT0gMCkKLSsgICAgLyogT25seSBzZXQgaWYgbm90 IGFscmVhZHkgc2V0IGZyb20gR0RCLiAgKi8KLSsgICAgY291bnQgPSBhdG9pIChhcmd2WzJdKTsK LSAKLS0gICAgICBwcmludGYgKCIlczolZDogbGlibmFtZSA9ICVzLCBjb3VudCA9ICVkXG4iLCBf X0ZJTEVfXywgX19MSU5FX18sCi0tICAgICAgICAgICAgICBsaWJuYW1lLCBjb3VudCk7Ci0rICBw cmludGYgKCIlczolZDogbGlibmFtZSA9ICVzLCBjb3VudCA9ICVkXG4iLCBfX0ZJTEVfXywgX19M SU5FX18sCi0rCSAgbGlibmFtZSwgY291bnQpOwotIAotLSAgICAgIGlmICgoZmQgPSBvcGVuIChs aWJuYW1lLCBPX1JET05MWSkpID09IC0xKQotLSAgICAgICAgewotLSAgICAgICAgICBmcHJpbnRm IChzdGRlcnIsICJvcGVuIChcIiVzXCIsIE9fUkRPTkxZKTogJXNcbiIsIGxpYm5hbWUsCi0tICAg ICAgICAgICAgICAgICAgIHN0cmVycm9yIChlcnJubykpOwotLSAgICAgICAgICBleGl0ICgxKTsK LS0gICAgICAgIH0KLSsgIGlmICgoZmQgPSBvcGVuIChsaWJuYW1lLCBPX1JET05MWSkpID09IC0x KQotKyAgICB7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAib3BlbiAoXCIlc1wiLCBPX1JET05M WSk6ICVzXG4iLCBsaWJuYW1lLAotKwkgICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0rICAgICAg ZXhpdCAoMSk7Ci0rICAgIH0KLSAKLS0gICAgICBpZiAoZnN0YXQgKGZkLCAmc3QpICE9IDApCi0t ICAgICAgICB7Ci0tICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgImZzdGF0IChcIiVkXCIpOiAl c1xuIiwgZmQsIHN0cmVycm9yIChlcnJubykpOwotLSAgICAgICAgICBleGl0ICgxKTsKLS0gICAg ICAgIH0KLSsgIGlmIChmc3RhdCAoZmQsICZzdCkgIT0gMCkKLSsgICAgewotKyAgICAgIGZwcmlu dGYgKHN0ZGVyciwgImZzdGF0IChcIiVkXCIpOiAlc1xuIiwgZmQsIHN0cmVycm9yIChlcnJubykp OwotKyAgICAgIGV4aXQgKDEpOwotKyAgICB9Ci0gCi0tICAgICAgZm9yIChpID0gMDsgaSA8IGNv dW50OyArK2kpCi0tICAgICAgICB7Ci0tICAgICAgICAgIGNvbnN0IHZvaWQgKmNvbnN0IGFkZHIg PSBtbWFwICgwLCBzdC5zdF9zaXplLCBQUk9UX1JFQUR8UFJPVF9XUklURSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9QUklWQVRFLCBmZCwgMCk7Ci0tICAg ICAgICAgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqY29uc3QgZW50cnkgPSBjYWxsb2MgKDEsIHNp emVvZiAoKmVudHJ5KSk7Ci0tCi0tICAgICAgICAgIGlmIChhZGRyID09IE1BUF9GQUlMRUQpCi0t ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAibW1hcDogJXNc biIsIHN0cmVycm9yIChlcnJubykpOwotLSAgICAgICAgICAgICAgZXhpdCAoMSk7Ci0tICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICB1cGRhdGVfbG9jYXRpb25zIChhZGRyLCBpKTsKLS0KLS0g ICAgICAgICAgLyogTGluayBlbnRyeSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LiAgKi8KLS0gICAg ICAgICAgZW50cnktPnN5bWZpbGVfYWRkciA9IChjb25zdCBjaGFyICopYWRkcjsKLS0gICAgICAg ICAgZW50cnktPnN5bWZpbGVfc2l6ZSA9IHN0LnN0X3NpemU7Ci0tICAgICAgICAgIGVudHJ5LT5w cmV2X2VudHJ5ID0gX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeTsKLS0gICAg ICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeSA9IGVudHJ5OwotLQot LSAgICAgICAgICBpZiAoZW50cnktPnByZXZfZW50cnkgIT0gTlVMTCkKLS0gICAgICAgICAgICBl bnRyeS0+cHJldl9lbnRyeS0+bmV4dF9lbnRyeSA9IGVudHJ5OwotLSAgICAgICAgICBlbHNlCi0t ICAgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5maXJzdF9lbnRyeSA9IGVudHJ5Owot LQotLSAgICAgICAgICAvKiBOb3RpZnkgR0RCLiAgKi8KLS0gICAgICAgICAgX19qaXRfZGVidWdf ZGVzY3JpcHRvci5hY3Rpb25fZmxhZyA9IEpJVF9SRUdJU1RFUl9GTjsKLS0gICAgICAgICAgX19q aXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsKLS0gICAgICAgIH0KLSsgIGZvciAoaSA9IDA7IGkg PCBjb3VudDsgKytpKQotKyAgICB7Ci0rICAgICAgY29uc3Qgdm9pZCAqY29uc3QgYWRkciA9IG1t YXAgKDAsIHN0LnN0X3NpemUsIFBST1RfUkVBRHxQUk9UX1dSSVRFLAotKwkJCQkgICAgIE1BUF9Q UklWQVRFLCBmZCwgMCk7Ci0rICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25zdCBlbnRy eSA9IGNhbGxvYyAoMSwgc2l6ZW9mICgqZW50cnkpKTsKLSsKLSsgICAgICBpZiAoYWRkciA9PSBN QVBfRkFJTEVEKQotKwl7Ci0rCSAgZnByaW50ZiAoc3RkZXJyLCAibW1hcDogJXNcbiIsIHN0cmVy cm9yIChlcnJubykpOwotKwkgIGV4aXQgKDEpOwotKwl9Ci0rCi0rICAgICAgdXBkYXRlX2xvY2F0 aW9ucyAoYWRkciwgaSk7Ci0rCi0rICAgICAgLyogTGluayBlbnRyeSBhdCB0aGUgZW5kIG9mIHRo ZSBsaXN0LiAgKi8KLSsgICAgICBlbnRyeS0+c3ltZmlsZV9hZGRyID0gKGNvbnN0IGNoYXIgKilh ZGRyOwotKyAgICAgIGVudHJ5LT5zeW1maWxlX3NpemUgPSBzdC5zdF9zaXplOwotKyAgICAgIGVu dHJ5LT5wcmV2X2VudHJ5ID0gX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeTsK LSsgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5ID0gZW50cnk7Ci0r Ci0rICAgICAgaWYgKGVudHJ5LT5wcmV2X2VudHJ5ICE9IE5VTEwpCi0rCWVudHJ5LT5wcmV2X2Vu dHJ5LT5uZXh0X2VudHJ5ID0gZW50cnk7Ci0rICAgICAgZWxzZQotKwlfX2ppdF9kZWJ1Z19kZXNj cmlwdG9yLmZpcnN0X2VudHJ5ID0gZW50cnk7Ci0rCi0rICAgICAgLyogTm90aWZ5IEdEQi4gICov Ci0rICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5hY3Rpb25fZmxhZyA9IEpJVF9SRUdJU1RF Ul9GTjsKLSsgICAgICBfX2ppdF9kZWJ1Z19yZWdpc3Rlcl9jb2RlICgpOwotKyAgICB9Ci0gCi0t ICAgICAgV0FJVF9GT1JfR0RCOyBpID0gMDsgIC8qIGdkYiBicmVhayBoZXJlIDEgKi8KLSsgIFdB SVRfRk9SX0dEQjsgaSA9IDA7ICAvKiBnZGIgYnJlYWsgaGVyZSAxICovCi0gCi0tICAgICAgLyog Tm93IHVucmVnaXN0ZXIgdGhlbSBhbGwgaW4gcmV2ZXJzZSBvcmRlci4gICovCi0tICAgICAgd2hp bGUgKF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnkgIT0gTlVMTCkKLS0gICAg ICAgIHsKLS0gICAgICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25zdCBlbnRyeSA9Ci0t ICAgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeTsKLS0gICAg ICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25zdCBwcmV2X2VudHJ5ID0gZW50cnktPnBy ZXZfZW50cnk7Ci0tCi0tICAgICAgICAgIGlmIChwcmV2X2VudHJ5ICE9IE5VTEwpCi0tICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgcHJldl9lbnRyeS0+bmV4dF9lbnRyeSA9IE5VTEw7Ci0t ICAgICAgICAgICAgICBlbnRyeS0+cHJldl9lbnRyeSA9IE5VTEw7Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5maXJz dF9lbnRyeSA9IE5VTEw7Ci0tCi0tICAgICAgICAgIC8qIE5vdGlmeSBHREIuICAqLwotLSAgICAg ICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLmFjdGlvbl9mbGFnID0gSklUX1VOUkVHSVNURVJf Rk47Ci0tICAgICAgICAgIF9faml0X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCk7Ci0tCi0tICAgICAg ICAgIF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnkgPSBwcmV2X2VudHJ5Owot LSAgICAgICAgICBmcmVlIChlbnRyeSk7Ci0tICAgICAgICB9Ci0rICAvKiBOb3cgdW5yZWdpc3Rl ciB0aGVtIGFsbCBpbiByZXZlcnNlIG9yZGVyLiAgKi8KLSsgIHdoaWxlIChfX2ppdF9kZWJ1Z19k ZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5ICE9IE5VTEwpCi0rICAgIHsKLSsgICAgICBzdHJ1Y3Qg aml0X2NvZGVfZW50cnkgKmNvbnN0IGVudHJ5ID0KLSsJX19qaXRfZGVidWdfZGVzY3JpcHRvci5y ZWxldmFudF9lbnRyeTsKLSsgICAgICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKmNvbnN0IHByZXZf ZW50cnkgPSBlbnRyeS0+cHJldl9lbnRyeTsKLSsKLSsgICAgICBpZiAocHJldl9lbnRyeSAhPSBO VUxMKQotKwl7Ci0rCSAgcHJldl9lbnRyeS0+bmV4dF9lbnRyeSA9IE5VTEw7Ci0rCSAgZW50cnkt PnByZXZfZW50cnkgPSBOVUxMOwotKwl9Ci0rICAgICAgZWxzZQotKwlfX2ppdF9kZWJ1Z19kZXNj cmlwdG9yLmZpcnN0X2VudHJ5ID0gTlVMTDsKLSsKLSsgICAgICAvKiBOb3RpZnkgR0RCLiAgKi8K LSsgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLmFjdGlvbl9mbGFnID0gSklUX1VOUkVHSVNU RVJfRk47Ci0rICAgICAgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsKLSsKLSsgICAgICBf X2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5ID0gcHJldl9lbnRyeTsKLSsgICAg ICBmcmVlIChlbnRyeSk7Ci0gICAgIH0KLSsKLSAgIFdBSVRfRk9SX0dEQjsgcmV0dXJuIDA7ICAv KiBnZGIgYnJlYWsgaGVyZSAyICAqLwotIH0KLQotCi0KLWNvbW1pdCA2YjllZjBkNDg4YzU1NjMz OWFlYTdiMDk1ZWY3YTliNmJmNmIxYWYxCi1BdXRob3I6IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVk aGF0LmNvbT4KLURhdGU6ICAgV2VkIEFwciAxMyAxNDozNDowMCAyMDE2ICswMTAwCi0KLSAgICBG aXggUFIgcmVtb3RlLzE5ODQwOiBnZGIgY3Jhc2hlcyBvbiByZXZlcnNlLXN0ZXBpCi0gICAgCi0g ICAgUmV2ZXJzZSBkZWJ1Z2dpbmcgYWdhaW5zdCBhIHJlbW90ZSB0YXJnZXQgdGhhdCBkb2VzIHJl dmVyc2UgZGVidWdnaW5nCi0gICAgaXRzZWxmICh3aXRoIHRoZSBicy9iYyBwYWNrZXRzKSBhbHdh eXMgdHJpcHMgb246Ci0gICAgCi0gICAgIChnZGIpIHRhcmdldCByZW1vdGUgbG9jYWxob3N0Oi4u LgotICAgICAoZ2RiKSByZXZlcnNlLXN0ZXBpCi0gICAgIC4uLy4uL2dkYi90YXJnZXQuYzo2MDI6 IGludGVybmFsLWVycm9yOiBkZWZhdWx0X2V4ZWN1dGlvbl9kaXJlY3Rpb246IHRvX2V4ZWN1dGlv bl9kaXJlY3Rpb24gbXVzdCBiZSBpbXBsZW1lbnRlZCBmb3IgcmV2ZXJzZSBhc3luYwotICAgIAot ICAgIEkgbWlzc2VkIGFkZGluZyBhIHRvX2V4ZWN1dGlvbl9kaXJlY3Rpb24gbWV0aG9kIHRvIHJl bW90ZS5jIGluIGNvbW1pdAotICAgIDMyMjMxNDMyOTViNSAoQWRkcyB0YXJnZXRfZXhlY3V0aW9u X2RpcmVjdGlvbiB0byBtYWtlIHJlY29yZCB0YXJnZXRzCi0gICAgc3VwcG9ydCBhc3luYyBtb2Rl KSwgR0RCIDcuNCB0aW1lLiAgTGF0ZXIsIEdEQiA3Ljggc3dpdGNoZWQgdG8KLSAgICB0YXJnZXQt YXN5bmMgb24gYnkgZGVmYXVsdCwgbWFraW5nIHRoZSByZWdyZXNzaW9uIHVzZXItdmlzaWJsZSBi eQotICAgIGRlZmF1bHQgdG9vLgotICAgIAotICAgIEZpeCBpcyBzaW1wbHkgdG8gYWRkIHRoZSBt aXNzaW5nIHRvX2V4ZWN1dGlvbl9kaXJlY3Rpb24gaW1wbGVtZW50YXRpb24KLSAgICB0byB0YXJn ZXQgcmVtb3RlLgotICAgIAotICAgIFRlc3RlZCBieSBBbmRpIEtsZWVuIGFnYWluc3QgU2ltaWNz LgotICAgIAotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgMjAxNi0wNC0xMyAgUGVkcm8gQWx2ZXMg IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgcmVtb3RlLzE5ODQwCi0gICAgCSog cmVtb3RlLmMgKHN0cnVjdCByZW1vdGVfc3RhdGUpIDxsYXN0X3Jlc3VtZV9leGVjX2Rpcj46IE5l dwotICAgIAlmaWVsZC4KLSAgICAJKG5ld19yZW1vdGVfc3RhdGUpOiBEZWZhdWx0IGxhc3RfcmVz dW1lX2V4ZWNfZGlyIHRvIEVYRUNfRk9SV0FSRC4KLSAgICAJKHJlbW90ZV9vcGVuXzEpOiBSZXNl dCBsYXN0X3Jlc3VtZV9leGVjX2RpciB0byBFWEVDX0ZPUldBUkQuCi0gICAgCShyZW1vdGVfcmVz dW1lKTogU3RvcmUgdGhlIGxhc3QgZXhlY3V0aW9uIGRpcmVjdGlvbi4KLSAgICAJKHJlbW90ZV9l eGVjdXRpb25fZGlyZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgotICAgIAkoaW5pdF9yZW1vdGVfb3Bz KTogSW5zdGFsbCBpdCBhcyB0b19leGVjdXRpb25fZGlyZWN0aW9uIHRhcmdldF9vcHMKLSAgICAJ bWV0aG9kLgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAt MSwzICsxLDE1IEBACi0rMjAxNi0wNC0xMyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNv bT4KLSsKLSsJUFIgcmVtb3RlLzE5ODQwCi0rCSogcmVtb3RlLmMgKHN0cnVjdCByZW1vdGVfc3Rh dGUpIDxsYXN0X3Jlc3VtZV9leGVjX2Rpcj46IE5ldwotKwlmaWVsZC4KLSsJKG5ld19yZW1vdGVf c3RhdGUpOiBEZWZhdWx0IGxhc3RfcmVzdW1lX2V4ZWNfZGlyIHRvIEVYRUNfRk9SV0FSRC4KLSsJ KHJlbW90ZV9vcGVuXzEpOiBSZXNldCBsYXN0X3Jlc3VtZV9leGVjX2RpciB0byBFWEVDX0ZPUldB UkQuCi0rCShyZW1vdGVfcmVzdW1lKTogU3RvcmUgdGhlIGxhc3QgZXhlY3V0aW9uIGRpcmVjdGlv bi4KLSsJKHJlbW90ZV9leGVjdXRpb25fZGlyZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgotKwkoaW5p dF9yZW1vdGVfb3BzKTogSW5zdGFsbCBpdCBhcyB0b19leGVjdXRpb25fZGlyZWN0aW9uIHRhcmdl dF9vcHMKLSsJbWV0aG9kLgotKwotIDIwMTYtMDMtMzEgIFlpY2hhbyBZdSAgPHl5YzE5OTJAZ21h aWwuY29tPgotIAotIAlQUiBnZGIvMTk4NTgKLS0tLSBhL2dkYi9yZW1vdGUuYwotKysrIGIvZ2Ri L3JlbW90ZS5jCi1AQCAtMzg5LDYgKzM4OSw5IEBAIHN0cnVjdCByZW1vdGVfc3RhdGUKLSAKLSAg IGludCBsYXN0X3NlbnRfc3RlcDsKLSAKLSsgIC8qIFRoZSBleGVjdXRpb24gZGlyZWN0aW9uIG9m IHRoZSBsYXN0IHJlc3VtZSB3ZSBnb3QuICAqLwotKyAgZW51bSBleGVjX2RpcmVjdGlvbl9raW5k IGxhc3RfcmVzdW1lX2V4ZWNfZGlyOwotKwotICAgY2hhciAqZmluaXNoZWRfb2JqZWN0OwotICAg Y2hhciAqZmluaXNoZWRfYW5uZXg7Ci0gICBVTE9OR0VTVCBmaW5pc2hlZF9vZmZzZXQ7Ci1AQCAt NDc3LDYgKzQ4MCw3IEBAIG5ld19yZW1vdGVfc3RhdGUgKHZvaWQpCi0gICByZXN1bHQtPmJ1ZiA9 IChjaGFyICopIHhtYWxsb2MgKHJlc3VsdC0+YnVmX3NpemUpOwotICAgcmVzdWx0LT5yZW1vdGVf dHJhY2VmcmFtZV9udW1iZXIgPSAtMTsKLSAgIHJlc3VsdC0+bGFzdF9zZW50X3NpZ25hbCA9IEdE Ql9TSUdOQUxfMDsKLSsgIHJlc3VsdC0+bGFzdF9yZXN1bWVfZXhlY19kaXIgPSBFWEVDX0ZPUldB UkQ7Ci0gICByZXN1bHQtPmZzX3BpZCA9IC0xOwotIAotICAgcmV0dXJuIHJlc3VsdDsKLUBAIC00 OTI4LDYgKzQ5MzIsOCBAQCByZW1vdGVfb3Blbl8xIChjb25zdCBjaGFyICpuYW1lLCBpbnQgZnJv bV90dHksCi0gICBycy0+Y29udGludWVfdGhyZWFkID0gbm90X3NlbnRfcHRpZDsKLSAgIHJzLT5y ZW1vdGVfdHJhY2VmcmFtZV9udW1iZXIgPSAtMTsKLSAKLSsgIHJzLT5sYXN0X3Jlc3VtZV9leGVj X2RpciA9IEVYRUNfRk9SV0FSRDsKLSsKLSAgIC8qIFByb2JlIGZvciBhYmlsaXR5IHRvIHVzZSAi VGhyZWFkSW5mbyIgcXVlcnksIGFzIHJlcXVpcmVkLiAgKi8KLSAgIHJzLT51c2VfdGhyZWFkaW5m b19xdWVyeSA9IDE7Ci0gICBycy0+dXNlX3RocmVhZGV4dHJhX3F1ZXJ5ID0gMTsKLUBAIC01NTYz LDYgKzU1NjksOCBAQCByZW1vdGVfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAotICAg cnMtPmxhc3Rfc2VudF9zaWduYWwgPSBzaWdnbmFsOwotICAgcnMtPmxhc3Rfc2VudF9zdGVwID0g c3RlcDsKLSAKLSsgIHJzLT5sYXN0X3Jlc3VtZV9leGVjX2RpciA9IGV4ZWN1dGlvbl9kaXJlY3Rp b247Ci0rCi0gICAvKiBUaGUgdkNvbnQgcGFja2V0IGRvZXNuJ3QgbmVlZCB0byBzcGVjaWZ5IHRo cmVhZHMgdmlhIEhjLiAgKi8KLSAgIC8qIE5vIHJldmVyc2Ugc3VwcG9ydCAoeWV0KSBmb3IgdkNv bnQuICAqLwotICAgaWYgKGV4ZWN1dGlvbl9kaXJlY3Rpb24gIT0gRVhFQ19SRVZFUlNFKQotQEAg LTEzMDE4LDYgKzEzMDI2LDE3IEBAIHJlbW90ZV9jYW5fZG9fc2luZ2xlX3N0ZXAgKHN0cnVjdCB0 YXJnZXRfb3BzICpvcHMpCi0gICAgIHJldHVybiAwOwotIH0KLSAKLSsvKiBJbXBsZW1lbnRhdGlv biBvZiB0aGUgdG9fZXhlY3V0aW9uX2RpcmVjdGlvbiBtZXRob2QgZm9yIHRoZSByZW1vdGUKLSsg ICB0YXJnZXQuICAqLwotKwotK3N0YXRpYyBlbnVtIGV4ZWNfZGlyZWN0aW9uX2tpbmQKLStyZW1v dGVfZXhlY3V0aW9uX2RpcmVjdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYpCi0rewotKyAg c3RydWN0IHJlbW90ZV9zdGF0ZSAqcnMgPSBnZXRfcmVtb3RlX3N0YXRlICgpOwotKwotKyAgcmV0 dXJuIHJzLT5sYXN0X3Jlc3VtZV9leGVjX2RpcjsKLSt9Ci0rCi0gc3RhdGljIHZvaWQKLSBpbml0 X3JlbW90ZV9vcHMgKHZvaWQpCi0gewotQEAgLTEzMTYzLDYgKzEzMTgyLDcgQEAgU3BlY2lmeSB0 aGUgc2VyaWFsIGRldmljZSBpdCBpcyBjb25uZWN0ZWQgdG9cblwKLSAgIHJlbW90ZV9vcHMudG9f cmVtb3ZlX3Zmb3JrX2NhdGNocG9pbnQgPSByZW1vdGVfcmVtb3ZlX3Zmb3JrX2NhdGNocG9pbnQ7 Ci0gICByZW1vdGVfb3BzLnRvX2luc2VydF9leGVjX2NhdGNocG9pbnQgPSByZW1vdGVfaW5zZXJ0 X2V4ZWNfY2F0Y2hwb2ludDsKLSAgIHJlbW90ZV9vcHMudG9fcmVtb3ZlX2V4ZWNfY2F0Y2hwb2lu dCA9IHJlbW90ZV9yZW1vdmVfZXhlY19jYXRjaHBvaW50OwotKyAgcmVtb3RlX29wcy50b19leGVj dXRpb25fZGlyZWN0aW9uID0gcmVtb3RlX2V4ZWN1dGlvbl9kaXJlY3Rpb247Ci0gfQotIAotIC8q IFNldCB1cCB0aGUgZXh0ZW5kZWQgcmVtb3RlIHZlY3RvciBieSBtYWtpbmcgYSBjb3B5IG9mIHRo ZSBzdGFuZGFyZAotCi0KLQotY29tbWl0IGE2ZmYyMzA3NmY0OWM2MzIyZDk2YTc2ZTAwOThmODAx OTEzOWJjNGUKLUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci1EYXRlOiAgIFdlZCBBcHIgMjcgMjE6Mjc6NDAgMjAxNiArMDIwMAotCi0gICAgV29ya2Fy b3VuZCBnZGJzZXJ2ZXI8Ny43IGZvciBzZXRmcwotICAgIAotICAgIFdpdGggY3VycmVudCBGU0Yg R0RCIEhFQUQgYW5kIG9sZCBGU0YgZ2Ric2VydmVyIEkgZXhwZWN0ZWQgSSBjb3VsZCBkbzoKLSAg ICAJZ2RiIC1leCAnZmlsZSB0YXJnZXQ6L3Jvb3QvcmVkaGF0L3RocmVhZGl0JyAtZXggJ3Rhcmdl dCByZW1vdGUgOjEyMzQnCi0gICAgKHN1cHBseWluZyB0aGF0IHVuc3VwcG9ydGVkIHFYZmVyOmV4 ZWMtZmlsZTpyZWFkIGJ5ICJmaWxlIikKLSAgICBCdXQgdGhhdCBkb2VzIG5vdCB3b3JrIGJlY2F1 c2U6Ci0gICAgCVNlbmRpbmcgcGFja2V0OiAkdkZpbGU6c2V0ZnM6MCNiZi4uLlBhY2tldCByZWNl aXZlZDogT0sKLSAgICAJUGFja2V0IHZGaWxlOnNldGZzIChob3N0aW8tc2V0ZnMpIGlzIHN1cHBv cnRlZAotICAgIAkuLi4KLSAgICAJU2VuZGluZyBwYWNrZXQ6ICR2RmlsZTpzZXRmczoxMDQjMjQu Li5QYWNrZXQgcmVjZWl2ZWQ6IE9LCi0gICAgCSJ0YXJnZXQ6L3Jvb3QvcmVkaGF0L3RocmVhZGl0 IjogY291bGQgbm90IG9wZW4gYXMgYW4gZXhlY3V0YWJsZSBmaWxlOiBJbnZhbGlkIGFyZ3VtZW50 Ci0gICAgCi0gICAgR0RCIGRvY3VtZW50YXRpb24gc2F5czoKLSAgICAJVGhlIHZhbGlkIHJlc3Bv bnNlcyB0byBIb3N0IEkvTyBwYWNrZXRzIGFyZToKLSAgICAJQW4gZW1wdHkgcmVzcG9uc2UgaW5k aWNhdGVzIHRoYXQgdGhpcyBvcGVyYXRpb24gaXMgbm90IHJlY29nbml6ZWQuCi0gICAgCi0gICAg VGhpcyAiZW1wdHkgcmVzcG9uc2UiIHZzLiAiT0siIHdhcyBhIGJ1ZyBpbiBnZGJzZXJ2ZXIgPCA3 LjcuICBJdCB3YXMgZml4ZWQgYnk6Ci0gICAgCWNvbW1pdCBlN2YwZDk3OWRkNWNjNGY4YjY1OGRm ODkyZTkzZGI2OWQ2ZDY2MGI3Ci0gICAgCUF1dGhvcjogWWFvIFFpIDx5YW9AY29kZXNvdXJjZXJ5 LmNvbT4KLSAgICAJRGF0ZTogICBUdWUgRGVjIDEwIDIxOjU5OjIwIDIwMTMgKzA4MDAKLSAgICAJ ICAgIEZpeCBhIGJ1ZyBpbiBtYXRjaGluZyBub3RpZmljYXRpb25zLgotICAgIAlNZXNzYWdlLUlE OiA8MTM4NjY4NDYyNi0xMTQxNS0xLWdpdC1zZW5kLWVtYWlsLXlhb0Bjb2Rlc291cmNlcnkuY29t PgotICAgIAlodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTMtMTIvbXNn MDAzNzMuaHRtbAotICAgIAkyMDEzLTEyLTEwICBZYW8gUWkgIDx5YW9AY29kZXNvdXJjZXJ5LmNv bT4KLSAgICAJCSogbm90aWYuYyAoaGFuZGxlX25vdGlmX2Fjayk6IFJldHVybiAwIGlmIG5vIG5v dGlmaWNhdGlvbgotICAgIAkJbWF0Y2hlcy4KLSAgICAKLSAgICB3aXRoIHVucGF0Y2hlZCBvbGQg RlNGIGdkYnNlcnZlciBhbmQgcGF0Y2hlZCBGU0YgR0RCIEhFQUQ6Ci0gICAgCWdkYiAtZXggJ2Zp bGUgdGFyZ2V0Oi9yb290L3JlZGhhdC90aHJlYWRpdCcgLWV4ICd0YXJnZXQgcmVtb3RlIDoxMjM0 JwotICAgIAlTZW5kaW5nIHBhY2tldDogJHZGaWxlOnNldGZzOjAjYmYuLi5QYWNrZXQgcmVjZWl2 ZWQ6IE9LCi0gICAgCVBhY2tldCB2RmlsZTpzZXRmcyAoaG9zdGlvLXNldGZzKSBpcyBOT1Qgc3Vw cG9ydGVkCi0gICAgCS4uLgotICAgIAkoZ2RiKSBpbmZvIHNoYXJlZGxpYnJhcnkKLSAgICAJRnJv bSAgICAgICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgIFN5bXMgUmVhZCAgIFNoYXJlZCBP YmplY3QgTGlicmFyeQotICAgIAkweDAwMDA3ZmZmZjdkZGJhZTAgIDB4MDAwMDdmZmZmN2RmNjI3 YSAgWWVzICgqKSAgICAgdGFyZ2V0Oi9saWI2NC9sZC1saW51eC14ODYtNjQuc28uMgotICAgIAkw eDAwMDA3ZmZmZjdiYzQ4YTAgIDB4MDAwMDdmZmZmN2JjZjUxNCAgWWVzICgqKSAgICAgdGFyZ2V0 Oi9saWI2NC9saWJwdGhyZWFkLnNvLjAKLSAgICAKLSAgICBnZGIvQ2hhbmdlTG9nCi0gICAgMjAx Ni0wNC0yNyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotICAg IAotICAgIAkqIHJlbW90ZS5jIChyZW1vdGVfc3RhcnRfcmVtb3RlKTogRGV0ZWN0IFBBQ0tFVF92 RmlsZV9zZXRmcy5zdXBwb3J0LgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hh bmdlTG9nCi0jIyAtMSwzICsxLDcgQEAKLSsyMDE2LTA0LTI3ICBKYW4gS3JhdG9jaHZpbCAgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0rCSogcmVtb3RlLmMgKHJlbW90ZV9zdGFydF9y ZW1vdGUpOiBEZXRlY3QgUEFDS0VUX3ZGaWxlX3NldGZzLnN1cHBvcnQuCi0rCi0gMjAxNi0wNC0x NSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBuYXQvbGludXgtcHRy YWNlLmggW19fbWlwc19fXSAoR0RCX0FSQ0hfSVNfVFJBUF9CUktQVCk6IEFsc28KLS0tLSBhL2dk Yi9yZW1vdGUuYwotKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtNDAyMSw2ICs0MDIxLDI1IEBAIHJl bW90ZV9zdGFydF9yZW1vdGUgKGludCBmcm9tX3R0eSwgc3RydWN0IHRhcmdldF9vcHMgKnRhcmdl dCwgaW50IGV4dGVuZGVkX3ApCi0gICBpZiAocGFja2V0X3N1cHBvcnQgKFBBQ0tFVF9RQWxsb3cp ICE9IFBBQ0tFVF9ESVNBQkxFKQotICAgICByZW1vdGVfc2V0X3Blcm1pc3Npb25zICh0YXJnZXQp OwotIAotKyAgLyogZ2Ric2VydmVyIDwgNy43IChiZWZvcmUgaXRzIGZpeCBmcm9tIDIwMTMtMTIt MTEpIGRpZCByZXBseSB0byBhbnkKLSsgICAgIHVua25vd24gJ3YnIHBhY2tldCB3aXRoIHN0cmlu ZyAiT0siLiAgIk9LIiBnZXRzIGludGVycHJldGVkIGJ5IEdEQgotKyAgICAgYXMgYSByZXBseSB0 byBrbm93biBwYWNrZXQuICBGb3IgcGFja2V0ICJ2RmlsZTpzZXRmczoiIGl0IGlzIGFuCi0rICAg ICBpbnZhbGlkIHJlcGx5IGFuZCBHREIgd291bGQgcmV0dXJuIGVycm9yIGluCi0rICAgICByZW1v dGVfaG9zdGlvX3NldF9maWxlc3lzdGVtLCBtYWtpbmcgcmVtb3RlIGZpbGVzIGFjY2VzcyBpbXBv c3NpYmxlLgotKyAgICAgRGlzYWJsZSAidkZpbGU6c2V0ZnM6IiBpbiBzdWNoIGNhc2UuICBEbyBu b3QgZGlzYWJsZSBvdGhlciAndicgcGFja2V0cyBhcwotKyAgICAgb3RoZXIgInZGaWxlIiBwYWNr ZXRzIGdldCBjb3JyZWN0bHkgZGV0ZWN0ZWQgZXZlbiBvbiBnZGJzZXJ2ZXIgPCA3LjcuICAqLwot KyAgewotKyAgICBjb25zdCBjaGFyIHZfbXVzdHJlcGx5ZW1wdHlbXSA9ICJ2TXVzdFJlcGx5RW1w dHkiOwotKwotKyAgICBwdXRwa3QgKHZfbXVzdHJlcGx5ZW1wdHkpOwotKyAgICBnZXRwa3QgKCZy cy0+YnVmLCAmcnMtPmJ1Zl9zaXplLCAwKTsKLSsgICAgaWYgKHN0cmNtcCAocnMtPmJ1ZiwgIk9L IikgPT0gMCkKLSsgICAgICByZW1vdGVfcHJvdG9jb2xfcGFja2V0c1tQQUNLRVRfdkZpbGVfc2V0 ZnNdLnN1cHBvcnQgPSBQQUNLRVRfRElTQUJMRTsKLSsgICAgZWxzZSBpZiAoc3RyY21wIChycy0+ YnVmLCAiIikgIT0gMCkKLSsgICAgICBlcnJvciAoXygiUmVtb3RlIHJlcGxpZWQgdW5leHBlY3Rl ZGx5IHRvICclcyc6ICVzIiksIHZfbXVzdHJlcGx5ZW1wdHksCi0rCSAgICAgcnMtPmJ1Zik7Ci0r ICB9Ci0rCi0gICAvKiBOZXh0LCB3ZSBwb3NzaWJseSBhY3RpdmF0ZSBub2FjayBtb2RlLgotIAot ICAgICAgSWYgdGhlIFFTdGFydE5vQWNrTW9kZSBwYWNrZXQgY29uZmlndXJhdGlvbiBpcyBzZXQg dG8gQVVUTywKLQotCi0KLWNvbW1pdCBiNjMxZTU5YmEwNWFmN2M4ODg4MzhkM2UyZDZkNDA4YmZl NjBiNTdmCi1BdXRob3I6IEt5cnlsbyBUa2FjaG92IDxreXJ5bG8udGthY2hvdkBhcm0uY29tPgot RGF0ZTogICBUdWUgTWF5IDMgMDk6NDA6NTQgMjAxNiArMDEwMAotCi0gICAgW2dkYl0gRml4IC1X cGFyZW50aGVzZXMgd2FybmluZ3MKLSAgICAKLSAgICAyMDE2LTA1LTAzICBLeXJ5bG8gVGthY2hv diAgPGt5cnlsby50a2FjaG92QGFybS5jb20+Ci0gICAgCi0gICAgCSogc3ltZmlsZS5jIChmaW5k X3BjX292ZXJsYXkpOiBBZGQgYnJhY2VzIHRvIGF2b2lkIC1XcGFyZW50aGVzZXMKLSAgICAJd2Fy bmluZy4KLSAgICAJKGZpbmRfcGNfbWFwcGVkX3NlY3Rpb24pOiBMaWtld2lzZS4KLSAgICAJKGxp c3Rfb3ZlcmxheXNfY29tbWFuZCk6IExpa2V3aXNlLgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0j IyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDEwIEBACi0rMjAxNi0wNS0wMyAgS3lyeWxv IFRrYWNob3YgIDxreXJ5bG8udGthY2hvdkBhcm0uY29tPgotKwotKwkqIHN5bWZpbGUuYyAoZmlu ZF9wY19vdmVybGF5KTogQWRkIGJyYWNlcyB0byBhdm9pZCAtV3BhcmVudGhlc2VzCi0rCXdhcm5p bmcuCi0rCShmaW5kX3BjX21hcHBlZF9zZWN0aW9uKTogTGlrZXdpc2UuCi0rCShsaXN0X292ZXJs YXlzX2NvbW1hbmQpOiBMaWtld2lzZS4KLSsKLSAyMDE2LTA1LTAyICBFbGkgWmFyZXRza2lpICA8 ZWxpekBnbnUub3JnPgotIAotIAkqIHdpbmRvd3MtbmF0LmMgKF9pbml0aWFsaXplX2NoZWNrX2Zv cl9nZGJfaW5pKTogRml4IG9mZi1ieS1vbmUKLS0tLSBhL2dkYi9zeW1maWxlLmMKLSsrKyBiL2dk Yi9zeW1maWxlLmMKLUBAIC0zMjg1LDE5ICszMjg1LDIxIEBAIGZpbmRfcGNfb3ZlcmxheSAoQ09S RV9BRERSIHBjKQotICAgc3RydWN0IG9ial9zZWN0aW9uICpvc2VjdCwgKmJlc3RfbWF0Y2ggPSBO VUxMOwotIAotICAgaWYgKG92ZXJsYXlfZGVidWdnaW5nKQotLSAgICBBTExfT0JKU0VDVElPTlMg KG9iamZpbGUsIG9zZWN0KQotLSAgICAgIGlmIChzZWN0aW9uX2lzX292ZXJsYXkgKG9zZWN0KSkK LS0gICAgICB7Ci0tCWlmIChwY19pbl9tYXBwZWRfcmFuZ2UgKHBjLCBvc2VjdCkpCi0rICAgIHsK LSsgICAgICBBTExfT0JKU0VDVElPTlMgKG9iamZpbGUsIG9zZWN0KQotKwlpZiAoc2VjdGlvbl9p c19vdmVybGF5IChvc2VjdCkpCi0gCSAgewotLQkgICAgaWYgKHNlY3Rpb25faXNfbWFwcGVkIChv c2VjdCkpCi0tCSAgICAgIHJldHVybiBvc2VjdDsKLS0JICAgIGVsc2UKLSsJICAgIGlmIChwY19p bl9tYXBwZWRfcmFuZ2UgKHBjLCBvc2VjdCkpCi0rCSAgICAgIHsKLSsJCWlmIChzZWN0aW9uX2lz X21hcHBlZCAob3NlY3QpKQotKwkJICByZXR1cm4gb3NlY3Q7Ci0rCQllbHNlCi0rCQkgIGJlc3Rf bWF0Y2ggPSBvc2VjdDsKLSsJICAgICAgfQotKwkgICAgZWxzZSBpZiAocGNfaW5fdW5tYXBwZWRf cmFuZ2UgKHBjLCBvc2VjdCkpCi0gCSAgICAgIGJlc3RfbWF0Y2ggPSBvc2VjdDsKLSAJICB9Ci0t CWVsc2UgaWYgKHBjX2luX3VubWFwcGVkX3JhbmdlIChwYywgb3NlY3QpKQotLQkgIGJlc3RfbWF0 Y2ggPSBvc2VjdDsKLS0gICAgICB9Ci0rICAgIH0KLSAgIHJldHVybiBiZXN0X21hdGNoOwotIH0K LSAKLUBAIC0zMzEyLDkgKzMzMTQsMTEgQEAgZmluZF9wY19tYXBwZWRfc2VjdGlvbiAoQ09SRV9B RERSIHBjKQotICAgc3RydWN0IG9ial9zZWN0aW9uICpvc2VjdDsKLSAKLSAgIGlmIChvdmVybGF5 X2RlYnVnZ2luZykKLS0gICAgQUxMX09CSlNFQ1RJT05TIChvYmpmaWxlLCBvc2VjdCkKLS0gICAg ICBpZiAocGNfaW5fbWFwcGVkX3JhbmdlIChwYywgb3NlY3QpICYmIHNlY3Rpb25faXNfbWFwcGVk IChvc2VjdCkpCi0tCXJldHVybiBvc2VjdDsKLSsgICAgewotKyAgICAgIEFMTF9PQkpTRUNUSU9O UyAob2JqZmlsZSwgb3NlY3QpCi0rCWlmIChwY19pbl9tYXBwZWRfcmFuZ2UgKHBjLCBvc2VjdCkg JiYgc2VjdGlvbl9pc19tYXBwZWQgKG9zZWN0KSkKLSsJICByZXR1cm4gb3NlY3Q7Ci0rICAgIH0K LSAKLSAgIHJldHVybiBOVUxMOwotIH0KLUBAIC0zMzMwLDMxICszMzM0LDMzIEBAIGxpc3Rfb3Zl cmxheXNfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotICAgc3RydWN0IG9ial9z ZWN0aW9uICpvc2VjdDsKLSAKLSAgIGlmIChvdmVybGF5X2RlYnVnZ2luZykKLS0gICAgQUxMX09C SlNFQ1RJT05TIChvYmpmaWxlLCBvc2VjdCkKLSsgICAgewotKyAgICAgIEFMTF9PQkpTRUNUSU9O UyAob2JqZmlsZSwgb3NlY3QpCi0gICAgICAgaWYgKHNlY3Rpb25faXNfbWFwcGVkIChvc2VjdCkp Ci0tICAgICAgewotLQlzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2gg KG9iamZpbGUpOwotLQljb25zdCBjaGFyICpuYW1lOwotLQliZmRfdm1hIGxtYSwgdm1hOwotLQlp bnQgc2l6ZTsKLS0KLS0Jdm1hID0gYmZkX3NlY3Rpb25fdm1hIChvYmpmaWxlLT5vYmZkLCBvc2Vj dC0+dGhlX2JmZF9zZWN0aW9uKTsKLS0JbG1hID0gYmZkX3NlY3Rpb25fbG1hIChvYmpmaWxlLT5v YmZkLCBvc2VjdC0+dGhlX2JmZF9zZWN0aW9uKTsKLS0Jc2l6ZSA9IGJmZF9nZXRfc2VjdGlvbl9z aXplIChvc2VjdC0+dGhlX2JmZF9zZWN0aW9uKTsKLS0JbmFtZSA9IGJmZF9zZWN0aW9uX25hbWUg KG9iamZpbGUtPm9iZmQsIG9zZWN0LT50aGVfYmZkX3NlY3Rpb24pOwotLQotLQlwcmludGZfZmls dGVyZWQgKCJTZWN0aW9uICVzLCBsb2FkZWQgYXQgIiwgbmFtZSk7Ci0tCWZwdXRzX2ZpbHRlcmVk IChwYWRkcmVzcyAoZ2RiYXJjaCwgbG1hKSwgZ2RiX3N0ZG91dCk7Ci0tCXB1dHNfZmlsdGVyZWQg KCIgLSAiKTsKLS0JZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNoLCBsbWEgKyBzaXpl KSwgZ2RiX3N0ZG91dCk7Ci0tCXByaW50Zl9maWx0ZXJlZCAoIiwgbWFwcGVkIGF0ICIpOwotLQlm cHV0c19maWx0ZXJlZCAocGFkZHJlc3MgKGdkYmFyY2gsIHZtYSksIGdkYl9zdGRvdXQpOwotLQlw dXRzX2ZpbHRlcmVkICgiIC0gIik7Ci0tCWZwdXRzX2ZpbHRlcmVkIChwYWRkcmVzcyAoZ2RiYXJj aCwgdm1hICsgc2l6ZSksIGdkYl9zdGRvdXQpOwotLQlwdXRzX2ZpbHRlcmVkICgiXG4iKTsKLS0K LS0Jbm1hcHBlZCsrOwotLSAgICAgIH0KLSsJewotKwkgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7Ci0rCSAgY29uc3QgY2hhciAqbmFtZTsKLSsJ ICBiZmRfdm1hIGxtYSwgdm1hOwotKwkgIGludCBzaXplOwotKwotKwkgIHZtYSA9IGJmZF9zZWN0 aW9uX3ZtYSAob2JqZmlsZS0+b2JmZCwgb3NlY3QtPnRoZV9iZmRfc2VjdGlvbik7Ci0rCSAgbG1h ID0gYmZkX3NlY3Rpb25fbG1hIChvYmpmaWxlLT5vYmZkLCBvc2VjdC0+dGhlX2JmZF9zZWN0aW9u KTsKLSsJICBzaXplID0gYmZkX2dldF9zZWN0aW9uX3NpemUgKG9zZWN0LT50aGVfYmZkX3NlY3Rp b24pOwotKwkgIG5hbWUgPSBiZmRfc2VjdGlvbl9uYW1lIChvYmpmaWxlLT5vYmZkLCBvc2VjdC0+ dGhlX2JmZF9zZWN0aW9uKTsKLSsKLSsJICBwcmludGZfZmlsdGVyZWQgKCJTZWN0aW9uICVzLCBs b2FkZWQgYXQgIiwgbmFtZSk7Ci0rCSAgZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNo LCBsbWEpLCBnZGJfc3Rkb3V0KTsKLSsJICBwdXRzX2ZpbHRlcmVkICgiIC0gIik7Ci0rCSAgZnB1 dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNoLCBsbWEgKyBzaXplKSwgZ2RiX3N0ZG91dCk7 Ci0rCSAgcHJpbnRmX2ZpbHRlcmVkICgiLCBtYXBwZWQgYXQgIik7Ci0rCSAgZnB1dHNfZmlsdGVy ZWQgKHBhZGRyZXNzIChnZGJhcmNoLCB2bWEpLCBnZGJfc3Rkb3V0KTsKLSsJICBwdXRzX2ZpbHRl cmVkICgiIC0gIik7Ci0rCSAgZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNoLCB2bWEg KyBzaXplKSwgZ2RiX3N0ZG91dCk7Ci0rCSAgcHV0c19maWx0ZXJlZCAoIlxuIik7Ci0rCi0rCSAg bm1hcHBlZCsrOwotKwl9Ci0rICAgIH0KLSAgIGlmIChubWFwcGVkID09IDApCi0gICAgIHByaW50 Zl9maWx0ZXJlZCAoXygiTm8gc2VjdGlvbnMgYXJlIG1hcHBlZC5cbiIpKTsKLSB9CgpkaWZmIC0t Z2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA5Mzg3ZGI2Li5lOTIwMzk4IDEwMDY0NAot LS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMjMsMTEgKzIzLDExIEBAIE5hbWU6ICV7 P3NjbF9wcmVmaXh9Z2RiCiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdudWxpYiBpbnN0YWxs ZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAxNTA4MjIKICVnbG9i YWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQotVmVyc2lvbjogNy4xMQorVmVyc2lvbjogNy4xMS4x CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1i ZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScg dG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5n LgotUmVsZWFzZTogNzQlez9kaXN0fQorUmVsZWFzZTogNzUlez9kaXN0fQogCiBMaWNlbnNlOiBH UEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdp dGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9t YWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0yNDEsNyArMjQx LDcgQEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5w YXRjaAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0YXJiYWxsLgogI1hk cm9wOiBKdXN0IGJhY2twb3J0cy4KLVBhdGNoMjMyOiBnZGItdXBzdHJlYW0ucGF0Y2gKKyNQYXRj aDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQ IGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3JhdGVzdCtwcGMK QEAgLTU1OCw5ICs1NTgsNiBAQCBQYXRjaDExMTk6IGdkYi10ZXN0c3VpdGUtcmVhZGxpbmU2My1z aWdpbnQtcmV2ZXJ0LnBhdGNoCiAjPWZlZG9yYXRlc3QKIFBhdGNoMTExMzogZ2RiLXJoYnoxMjYx NTY0LWFhcmNoNjQtaHctd2F0Y2hwb2ludC10ZXN0LnBhdGNoIAogCi0jIEZpeCBub24tc3RvcCBn ZGIgLXAgPGNvbnRhaW5lcj46IGludGVybmFsIGVycm9yIChwZWRybyBBbHZlcywgUkggQlogMTMx ODA0OSkuCi1QYXRjaDExMTc6IGdkYi1yaGJ6MTMxODA0OS1nZGItcC1jb250YWluZXItaW50ZXJu YWwtZXJyb3IucGF0Y2gKLQogIyBBZGQgbWVzc2FnZXMgc3VnZ2VzdGluZyBtb3JlIHJlY2VudCBS SEVMIGdkYnNlcnZlciAoUkggQlogMTMyMTExNCkuCiBQYXRjaDExMTg6IGdkYi1jb250YWluZXIt cmgtcGtnLnBhdGNoCiAKQEAgLTc2Myw3ICs3NjAsNyBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4 YXJncyBybSAtZgogIyBNYXRjaCB0aGUgRmVkb3JhJ3MgdmVyc2lvbiBpbmZvLgogJXBhdGNoMiAt cDEKIAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNoMzQ5IC1wMQogJXBhdGNo MTA1OCAtcDEKICVwYXRjaDEwNTkgLXAxCkBAIC04ODIsNyArODc5LDYgQEAgZmluZCAtbmFtZSAi Ki5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDMzNyAtcDEKICVwYXRjaDMzMSAtcDEKICVwYXRj aDExMTMgLXAxCi0lcGF0Y2gxMTE3IC1wMQogJXBhdGNoMTExOCAtcDEKICVwYXRjaDExMjAgLXAx CiAlcGF0Y2gxMTIzIC1wMQpAQCAtMTQwNyw2ICsxNDAzLDkgQEAgdGhlbgogZmkKIAogJWNoYW5n ZWxvZworKiBNb24gSnVuICA2IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+IC0gNy4xMS4xLTc1LmZjMjQKKy0gUmViYXNlIHRvIHJlbGVhc2VkIEZTRiBHREIg Ny4xMS4xLgorCiAqIE1vbiBNYXkgMzAgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4gLSA3LjExLTc0LmZjMjQKIC0gSW1wb3J0IGJhcmUgRFdfVEFHX2xleGlj YWxfYmxvY2sgKFJIIEJaIDEzMjUzOTYpLgogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJj ZXMKaW5kZXggYjQ5M2FlYS4uMjY0NzhlYiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3Vy Y2VzCkBAIC0xLDIgKzEsMiBAQAogN2FkMzJkMzg5NGFhZjkwZDAwYTQzNDNhNzM1YzNlMWMgIGdk Yi1saWJzdGRjKystdjMtcHl0aG9uLXIyMjU1MjEudGFyLnh6Ci1iNWM3ODQ2ODVlMWNkZTY1YmEx MzVmZWVhODZiNmQ3NSAgZ2RiLTcuMTEudGFyLnh6Cis1YWE3MTUyMmU0ODhlMzU4MjQzOTE3OTY3 ZGI4NzQ3NiAgZ2RiLTcuMTEuMS50YXIueHoK