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] gdb-17.2-rebase-f44: Rebase to released FSF GDB 7.11.1. Date: Sat, 27 Jun 2026 23:57:40 GMT Message-ID: <178260466020.1.3587378136092373136.rpms-gdb-8e7b06e27c60@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 8e7b06e27c6061e9f3d3b6f162b02d293368a85c QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogOGU3YjA2ZTI3YzYwNjFlOWYzZDNiNmYxNjJi MDJkMjkzMzY4YTg1YwpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNi0wNi0wN1QxMDoxNDozOCswMjowMApTdGF0cyAgOiArOS8t Mjk3MyBpbiA1IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9nZGIvYy84ZTdiMDZlMjdjNjA2MWU5ZjNkM2I2ZjE2MmIwMmQyOTMzNjhhODVjP2JyYW5j aD1nZGItMTcuMi1yZWJhc2UtZjQ0CgpMb2c6ClJlYmFzZSB0byByZWxlYXNlZCBGU0YgR0RCIDcu MTEuMS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggOGZh YWU3YS4uZGJiMTVjYiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBA IC0xLDIgKzEsMiBAQAogL2dkYi1saWJzdGRjKystdjMtcHl0aG9uLXIyMjU1MjEudGFyLnh6Ci0v Z2RiLTcuMTEudGFyLnh6CisvZ2RiLTcuMTEuMS50YXIueHoKCmRpZmYgLS1naXQgYS9nZGItcmhi ejEzMTgwNDktZ2RiLXAtY29udGFpbmVyLWludGVybmFsLWVycm9yLnBhdGNoIGIvZ2RiLXJoYnox MzE4MDQ5LWdkYi1wLWNvbnRhaW5lci1pbnRlcm5hbC1lcnJvci5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggODEyNmJlOC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejEzMTgwNDkt Z2RiLXAtY29udGFpbmVyLWludGVybmFsLWVycm9yLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MjMwICswLDAgQEAKLWh0dHA6Ly9wb3N0LW9mZmljZS5jb3JwLnJlZGhhdC5jb20vYXJjaGl2ZXMv ZGVidWctbGlzdC8yMDE2LUFwcmlsL21zZzAwMDAzLmh0bWwKLQotPkZyb20gY2I4YmZlYWEyMWEy ZGY0ODRkM2M0YzM1Y2M2ZWExYzRiMzJjZWZjOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgNiBBcHIgMjAx NiAxNTowNzo0OSArMDEwMAotU3ViamVjdDogW1BBVENIXSBGaXggUFIgZ2RiLzE5ODI4OiBnZGIg LXAgPHByb2Nlc3MgZnJvbSBhIGNvbnRhaW5lcj46IGludGVybmFsCi0gZXJyb3IKLQotV2hlbiBH REIgYXR0YWNoZXMgdG8gYSBwcm9jZXNzLCBpdCBsb29rcyBhdCB0aGUgL3Byb2MvUElEL3Rhc2sv IGRpcgotZm9yIGFsbCBjbG9uZSB0aHJlYWRzIG9mIHRoYXQgcHJvY2VzcywgYW5kIGF0dGFjaGVz IHRvIGVhY2ggb2YgdGhlbS4KLQotVXN1YWxseSwgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBj bG9uZSB0aHJlYWQsIGl0IG1lYW5zIHRoZSBwcm9ncmFtCi1pcyBtdWx0aSB0aHJlYWRlZCBhbmQg bGlua2VkIHdpdGggcHRocmVhZHMuICBUaHVzIHdoZW4gR0RCIHNvb24gYWZ0ZXIKLWF0dGFjaGlu ZyBmaW5kcyBhbmQgbG9hZHMgYSBsaWJ0aHJlYWRfZGIgbWF0Y2hpbmcgdGhlIHByb2Nlc3MsIGl0 J2xsCi1hZGQgYSB0aHJlYWQgdG8gdGhlIHRocmVhZCBsaXN0IGZvciBlYWNoIG9mIHRoZSBpbml0 aWFsbHkgZm91bmQKLWxvd2VyLWxldmVsIExXUHMuCi0KLUlmLCBob3dldmVyLCBHREIgZmFpbHMg dG8gZmluZC9sb2FkIGEgbWF0Y2hpbmcgbGlidGhyZWFkX2RiLCBub3RoaW5nCi1pcyBhZGRpbmcg dGhlIExXUHMgdG8gdGhlIHRocmVhZCBsaXN0LiAgQW5kIGJlY2F1c2Ugb2YgdGhhdCwgImRldGFj aCIKLWhpdHMgYW4gaW50ZXJuYWwgZXJyb3I6Ci0KLSAgKGdkYikgUEFTUzogZ2RiLnRocmVhZHMv Y2xvbmUtYXR0YWNoLWRldGFjaC5leHA6IGZnIGF0dGFjaCAxOiBhdHRhY2gKLSAgaW5mbyB0aHJl YWRzCi0gICAgSWQgICBUYXJnZXQgSWQgICAgICAgICBGcmFtZQotICAqIDEgICAgTFdQIDY4OTEg ImNsb25lLWF0dGFjaC1kZSIgMHgwMDAwN2Y4N2U1ZmQwNzkwIGluIF9fbmFub3NsZWVwX25vY2Fu Y2VsICgpIGF0IC4uL3N5c2RlcHMvdW5peC9zeXNjYWxsLXRlbXBsYXRlLlM6ODQKLSAgKGdkYikg RkFJTDogZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5leHA6IGZnIGF0dGFjaCAxOiBp bmZvIHRocmVhZHMgc2hvd3MgdHdvIExXUHMKLSAgZGV0YWNoCi0gIC4uLi9zcmMvZ2RiL3RocmVh ZC5jOjEwMTA6IGludGVybmFsLWVycm9yOiBpc19leGVjdXRpbmc6IEFzc2VydGlvbiBgdHAnIGZh aWxlZC4KLSAgQSBwcm9ibGVtIGludGVybmFsIHRvIEdEQiBoYXMgYmVlbiBkZXRlY3RlZCwKLSAg ZnVydGhlciBkZWJ1Z2dpbmcgbWF5IHByb3ZlIHVucmVsaWFibGUuCi0gIFF1aXQgdGhpcyBkZWJ1 Z2dpbmcgc2Vzc2lvbj8gKHkgb3IgbikKLSAgRkFJTDogZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNo LWRldGFjaC5leHA6IGZnIGF0dGFjaCAxOiBkZXRhY2ggKEdEQiBpbnRlcm5hbCBlcnJvcikKLQot PkZyb20gaGVyZToKLQotICAuLi4KLSAgIzggIDB4MDAwMDAwMDAwMDdiYTdjYyBpbiBpbnRlcm5h bF9lcnJvciAoZmlsZT0weDk4ZWE2OCAiLi4uL3NyYy9nZGIvdGhyZWFkLmMiLCBsaW5lPTEwMTAs IGZtdD0weDk4ZWEzMCAiJXM6IEFzc2VydGlvbiBgJXMnIGZhaWxlZC4iKQotICAgICAgYXQgLi4u L3NyYy9nZGIvY29tbW9uL2Vycm9ycy5jOjU1Ci0gICM5ICAweDAwMDAwMDAwMDA2NGJiODMgaW4g aXNfZXhlY3V0aW5nIChwdGlkPS4uLikgYXQgLi4uL3NyYy9nZGIvdGhyZWFkLmM6MTAxMAotICAj MTAgMHgwMDAwMDAwMDAwNGMyM2JiIGluIGdldF9wZW5kaW5nX3N0YXR1cyAobHA9MHgxMmM1Y2Mw LCBzdGF0dXM9MHg3ZmZmZmZmZmRjMGMpIGF0IC4uLi9zcmMvZ2RiL2xpbnV4LW5hdC5jOjEyMzUK LSAgIzExIDB4MDAwMDAwMDAwMDRjMjczOCBpbiBkZXRhY2hfY2FsbGJhY2sgKGxwPTB4MTJjNWNj MCwgZGF0YT0weDApIGF0IC4uLi9zcmMvZ2RiL2xpbnV4LW5hdC5jOjEzMTcKLSAgIzEyIDB4MDAw MDAwMDAwMDRjMWEyYSBpbiBpdGVyYXRlX292ZXJfbHdwcyAoZmlsdGVyPS4uLiwgY2FsbGJhY2s9 MHg0YzI1OTkgPGRldGFjaF9jYWxsYmFjaz4sIGRhdGE9MHgwKSBhdCAuLi4vc3JjL2dkYi9saW51 eC1uYXQuYzo4OTkKLSAgIzEzIDB4MDAwMDAwMDAwMDRjMjk1YyBpbiBsaW51eF9uYXRfZGV0YWNo IChvcHM9MHhlN2JkMzAsIGFyZ3M9MHgwLCBmcm9tX3R0eT0xKSBhdCAuLi4vc3JjL2dkYi9saW51 eC1uYXQuYzoxMzU4Ci0gICMxNCAweDAwMDAwMDAwMDA2ODI4NGQgaW4gZGVsZWdhdGVfZGV0YWNo IChzZWxmPTB4ZTdiZDMwLCBhcmcxPTB4MCwgYXJnMj0xKSBhdCAuLi4vc3JjL2dkYi90YXJnZXQt ZGVsZWdhdGVzLmM6MzQKLSAgIzE1IDB4MDAwMDAwMDAwMDY5NDE0MSBpbiB0YXJnZXRfZGV0YWNo IChhcmdzPTB4MCwgZnJvbV90dHk9MSkgYXQgLi4uL3NyYy9nZGIvdGFyZ2V0LmM6MjI0MQotICAj MTYgMHgwMDAwMDAwMDAwNjMwNTgyIGluIGRldGFjaF9jb21tYW5kIChhcmdzPTB4MCwgZnJvbV90 dHk9MSkgYXQgLi4uL3NyYy9nZGIvaW5mY21kLmM6Mjk3NQotICAuLi4KLQotVGVzdGVkIG9uIHg4 Ni02NCBGZWRvcmEgMjMuICBBbHNvIGNvbmZpcm1lZCB0aGUgdGVzdCBwYXNzZXMgYWdhaW5zdAot Z2Ric2VydmVyIHdpdGggd2l0aCAibWFpbnQgc2V0IHRhcmdldC1ub24tc3RvcCIuCi0KLWdkYi9D aGFuZ2VMb2c6Ci15eXl5LW1tLWRkICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgot Ci0JKiBsaW51eC1uYXQuYyAoYXR0YWNoX3Byb2NfdGFza19sd3BfY2FsbGJhY2spOiBBZGQgdGhl IHRocmVhZCB0bwotCUdEQidzIHRocmVhZCBsaXN0LgotCi10ZXN0c3VpdGUvQ2hhbmdlTG9nOgot eXl5eS1tbS1kZCAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLQotCSogZ2RiLnRo cmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5jOiBOZXcgZmlsZS4KLQkqIGdkYi50aHJlYWRzL2Ns b25lLWF0dGFjaC1kZXRhY2guZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdkYi9saW51eC1uYXQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKwotIGdkYi90ZXN0c3VpdGUv Z2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5jICAgfCA2NiArKysrKysrKysrKysrKysr KysrKysrKwotIGdkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5l eHAgfCA2MyArKysrKysrKysrKysrKysrKysrKysrCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5z ZXJ0aW9ucygrKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRz L2Nsb25lLWF0dGFjaC1kZXRhY2guYwotIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRl L2dkYi50aHJlYWRzL2Nsb25lLWF0dGFjaC1kZXRhY2guZXhwCi0KLWRpZmYgLS1naXQgYS9nZGIv bGludXgtbmF0LmMgYi9nZGIvbGludXgtbmF0LmMKLWluZGV4IDA4MjliY2IuLjIwMjVjMTkgMTAw NjQ0Ci0tLS0gYS9nZGIvbGludXgtbmF0LmMKLSsrKyBiL2dkYi9saW51eC1uYXQuYwotQEAgLTEw ODgsNiArMTA4OCwxMSBAQCBhdHRhY2hfcHJvY190YXNrX2x3cF9jYWxsYmFjayAocHRpZF90IHB0 aWQpCi0gCSAgLyogV2UgbmVlZCB0byB3YWl0IGZvciBhIHN0b3AgYmVmb3JlIGJlaW5nIGFibGUg dG8gbWFrZSB0aGUKLSAJICAgICBuZXh0IHB0cmFjZSBjYWxsIG9uIHRoaXMgTFdQLiAgKi8KLSAJ ICBscC0+bXVzdF9zZXRfcHRyYWNlX2ZsYWdzID0gMTsKLSsKLSsJICAvKiBBbHNvIGFkZCB0aGUg TFdQIHRvIGdkYidzIHRocmVhZCBsaXN0LCBpbiBjYXNlIGEKLSsJICAgICBtYXRjaGluZyBsaWJ0 aHJlYWRfZGIgaXMgbm90IGZvdW5kIChvciB0aGUgcHJvY2VzcyB1c2VzCi0rCSAgICAgcmF3IGNs b25lKS4gICovCi0rCSAgYWRkX3RocmVhZCAobHAtPnB0aWQpOwotIAl9Ci0gCi0gICAgICAgcmV0 dXJuIDE7Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9jbG9uZS1hdHRh Y2gtZGV0YWNoLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2Nsb25lLWF0dGFjaC1kZXRh Y2guYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmRhYThmMWYKLS0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvY2xvbmUtYXR0YWNoLWRl dGFjaC5jCi1AQCAtMCwwICsxLDY2IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdE QiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KLSsqLwotKwotKyNkZWZpbmUgX0dOVV9TT1VSQ0UKLSsjaW5jbHVkZSA8c2NoZWQuaD4KLSsj aW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxzeXMv dHlwZXMuaD4KLSsjaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0r Ci0rI2RlZmluZSBTVEFDS19TSVpFIDB4MTAwMAotKwotK2ludCBjbG9uZV9waWQ7Ci0rCi0rc3Rh dGljIGludAotK2Nsb25lX2ZuICh2b2lkICp1bnVzZWQpCi0rewotKyAgLyogV2FpdCBmb3IgYWxh cm0uICAqLwotKyAgd2hpbGUgKDEpCi0rICAgIHNsZWVwICgxKTsKLSsgIHJldHVybiAwOwotK30K LSsKLStpbnQKLSttYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0rewotKyAgdW5zaWduZWQg Y2hhciAqc3RhY2s7Ci0rICBpbnQgcmVzOwotKwotKyAgYWxhcm0gKDMwMCk7Ci0rCi0rICBzdGFj ayA9IG1hbGxvYyAoU1RBQ0tfU0laRSk7Ci0rICBhc3NlcnQgKHN0YWNrICE9IE5VTEwpOwotKwot KyNkZWZpbmUgQ0xPTkVfRkxBR1MgKENMT05FX1RIUkVBRCB8IENMT05FX1NJR0hBTkQgfCBDTE9O RV9WTSkKLSsKLSsjaWZkZWYgX19pYTY0X18KLSsgIGNsb25lX3BpZCA9IF9fY2xvbmUyIChjbG9u ZV9mbiwgc3RhY2ssIFNUQUNLX1NJWkUsIENMT05FX0ZMQUdTLCBOVUxMKTsKLSsjZWxzZQotKyAg Y2xvbmVfcGlkID0gY2xvbmUgKGNsb25lX2ZuLCBzdGFjayArIFNUQUNLX1NJWkUsIENMT05FX0ZM QUdTLCBOVUxMKTsKLSsjZW5kaWYKLSsKLSsgIGFzc2VydCAoY2xvbmVfcGlkID4gMCk7Ci0rCi0r ICAvKiBXYWl0IGZvciBhbGFybS4gICovCi0rICB3aGlsZSAoMSkKLSsgICAgc2xlZXAgKDEpOwot KwotKyAgcmV0dXJuIDA7Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvY2xvbmUtYXR0YWNoLWRldGFjaC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2Ns b25lLWF0dGFjaC1kZXRhY2guZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uMDY1MjEwOAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFk cy9jbG9uZS1hdHRhY2gtZGV0YWNoLmV4cAotQEAgLTAsMCArMSw2MyBAQAotKyMgVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsjIENvcHlyaWdodCAy MDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KLSsKLSsjIFRlc3QgYXR0YWNoIC8gZGV0YWNoIGZyb20gYSBwcm9jZXNzIHRo YXQgdXNlcyByYXcgY2xvbmUuICBXZSB1c2UgcmF3Ci0rIyBjbG9uZSBhcyBwcm94eSBmb3Igd2hl biBsaWJ0aHJlYWRfZGIgaXMgbm90IGF2YWlsYWJsZS4KLSsKLSsjIFRoaXMgb25seSB3b3JrcyBv biB0YXJnZXRzIHdpdGggdGhlIExpbnV4IGtlcm5lbC4KLStpZiAhW2lzdGFyZ2V0ICotKi1saW51 eCpdIHsKLSsgICAgcmV0dXJuCi0rfQotKwotK2lmIHshW2Nhbl9zcGF3bl9mb3JfYXR0YWNoXX0g ewotKyAgICByZXR1cm4gMAotK30KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZQotKwotK2lmIFtwcmVw YXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxlIHtk ZWJ1Z31dIHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgJHtiaW5maWxl fQotKwotK3NldCB0ZXN0X3NwYXduX2lkIFtzcGF3bl93YWl0X2Zvcl9hdHRhY2ggJGJpbmZpbGVd Ci0rc2V0IHRlc3RwaWQgW3NwYXduX2lkX2dldF9waWQgJHRlc3Rfc3Bhd25faWRdCi0rCi0rIyBO YXRpdmUvZ2Ric2VydmVyLgotK3NldCB0aHJlYWRfcmUgIihMV1AgJGRlY2ltYWx8VGhyZWFkICki Ci0rCi0rIyBUcnkgYXR0YWNoIC8gZGV0YWNoIGEgZmV3IHRpbWVzLCBpbiBjYXNlIEdEQiBlbmRz IHVwIHdpdGggc3RhbGUKLSsjIHN0YXRlIGFmdGVyIGRldGFjaGluZy4KLSsKLStzZXQgYXR0ZW1w dHMgMwotK2ZvciB7c2V0IGF0dGVtcHQgMX0geyRhdHRlbXB0IDw9ICRhdHRlbXB0c30ge2luY3Ig YXR0ZW1wdH0gewotKyAgICB3aXRoX3Rlc3RfcHJlZml4ICJmZyBhdHRhY2ggJGF0dGVtcHQiIHsK LSsKLSsJZ2RiX3Rlc3QgImF0dGFjaCAkdGVzdHBpZCIgXAotKwkgICAgIkF0dGFjaGluZyB0byBw cm9ncmFtLipwcm9jZXNzICR0ZXN0cGlkLioiIFwKLSsJICAgICJhdHRhY2giCi0rCi0rCWdkYl90 ZXN0ICJpbmZvIHRocmVhZHMiIFwKLSsJICAgICIxLioke3RocmVhZF9yZX0uKlxyXG4uKjIuKiR7 dGhyZWFkX3JlfS4qIiBcCi0rCSAgICAiaW5mbyB0aHJlYWRzIHNob3dzIHR3byBMV1BzIgotKwot KwlnZGJfdGVzdCAiZGV0YWNoIiAiRGV0YWNoaW5nIGZyb20gLiosIHByb2Nlc3MgJHRlc3RwaWQi Ci0rICAgIH0KLSt9Ci0rCi0ra2lsbF93YWl0X3NwYXduZWRfcHJvY2VzcyAkdGVzdF9zcGF3bl9p ZAotLS0gCi0yLjUuNQotCgpkaWZmIC0tZ2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVw c3RyZWFtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmFhMWMyLi4wMDAw MDAwCi0tLSBhL2dkYi11cHN0cmVhbS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3MzMgKzAs MCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDMvbXNnMDAw MTMuaHRtbAotU3ViamVjdDogW1BBVENIIDEvMl0gRml4IFBSIGdkYi8xOTY3NjogRGlzYWJsZSBk aXNwbGFjZWQgc3RlcHBpbmcgaWYgL3Byb2Mgbm90IG1vdW50ZWQKLQotT24gR05VL0xpbnV4IGFy Y2hzIHRoYXQgc3VwcG9ydCBkaXNwbGFjZWQgc3RlcHBpbmcsIGlmIC9wcm9jIGlzIG5vdAotbW91 bnRlZCwgR0RCIGdldHMgc3R1Y2sgbm90IGFibGUgdG8gc3RlcCBwYXN0IGJyZWFrcG9pbnRzOgot Ci0gKGdkYikgYwotIENvbnRpbnVpbmcuCi0gZGxfbWFpbiAocGhkcj08b3B0aW1pemVkIG91dD4s IHBobnVtPTxvcHRpbWl6ZWQgb3V0PiwgdXNlcl9lbnRyeT08b3B0aW1pemVkIG91dD4sIGF1eHY9 PG9wdGltaXplZCBvdXQ+KSBhdCBydGxkLmM6MjE2MwotIDIxNjMgICAgICBMSUJDX1BST0JFIChp bml0X2NvbXBsZXRlLCAyLCBMTV9JRF9CQVNFLCByKTsKLSBDYW5ub3QgZmluZCBBVF9FTlRSWSBh dXhpbGlhcnkgdmVjdG9yIGVudHJ5LgotIChnZGIpIGMKLSBDb250aW51aW5nLgotIGRsX21haW4g KHBoZHI9PG9wdGltaXplZCBvdXQ+LCBwaG51bT08b3B0aW1pemVkIG91dD4sIHVzZXJfZW50cnk9 PG9wdGltaXplZCBvdXQ+LCBhdXh2PTxvcHRpbWl6ZWQgb3V0PikgYXQgcnRsZC5jOjIxNjMKLSAy MTYzICAgICAgTElCQ19QUk9CRSAoaW5pdF9jb21wbGV0ZSwgMiwgTE1fSURfQkFTRSwgcik7Ci0g Q2Fubm90IGZpbmQgQVRfRU5UUlkgYXV4aWxpYXJ5IHZlY3RvciBlbnRyeS4KLSAoZ2RiKQotCi1U aGF0J3MgYmVjYXVzZSBHREIgY2FuJ3QgZmlndXJlIG91dCB3aGVyZSB0aGUgc2NyYXRjaCBwYWQg aXMuCi0KLVRoaXMgaXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgdGhlIGVhcmxpZXIgY2hh bmdlcyB0byBtYWtlIHRoZQotTGludXggbmF0aXZlIHRhcmdldCBhbHdheXMgd29yayBpbiBub24t c3RvcCBtb2RlLgotCi1UaGlzIGNvbW1pdCBtYWtlcyBHREIgZGV0ZWN0IHRoZSBjYXNlIGFuZCBm YWxsYmFjayB0byBzdGVwcGluZyBvdmVyCi1icmVha3BvaW50cyBpbi1saW5lLgotCi1nZGIvQ2hh bmdlTG9nOgotMjAxNi0wMy0wMSAgUGVkcm8gQWx2ZXMgIDxwZWRyb0BjYXNjYWlzLmxhbj4KLQot CVBSIGdkYi8xOTY3NgotCSogaW5mcnVuLmMgKGRpc3BsYWNlZF9zdGVwX3ByZXBhcmUpOiBBbHNv IGRpc2FibGUgZGlzcGxhY2VkCi0Jc3RlcHBpbmcgb24gTk9UX1NVUFBPUlRFRF9FUlJPUi4KLQkq IGxpbnV4LXRkZXAuYyAobGludXhfZGlzcGxhY2VkX3N0ZXBfbG9jYXRpb24pOiBJZiByZWFkaW5n IGF1eHYKLQlmYWlscywgdGhyb3cgTk9UX1NVUFBPUlRFRF9FUlJPUiBpbnN0ZWFkIG9mIGdlbmVy aWMgZXJyb3IuCi0tLS0KLSBnZGIvaW5mcnVuLmMgICAgIHwgMyArKy0KLSBnZGIvbGludXgtdGRl cC5jIHwgMyArKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwotaW5kZXgg M2U4YzllMC4uNjk2MTA1ZCAxMDA2NDQKLS0tLSBhL2dkYi9pbmZydW4uYwotKysrIGIvZ2RiL2lu ZnJ1bi5jCi1AQCAtMTg5NCw3ICsxODk0LDggQEAgZGlzcGxhY2VkX3N0ZXBfcHJlcGFyZSAocHRp ZF90IHB0aWQpCi0gICAgIHsKLSAgICAgICBzdHJ1Y3QgZGlzcGxhY2VkX3N0ZXBfaW5mZXJpb3Jf c3RhdGUgKmRpc3BsYWNlZF9zdGF0ZTsKLSAKLS0gICAgICBpZiAoZXguZXJyb3IgIT0gTUVNT1JZ X0VSUk9SKQotKyAgICAgIGlmIChleC5lcnJvciAhPSBNRU1PUllfRVJST1IKLSsJICAmJiBleC5l cnJvciAhPSBOT1RfU1VQUE9SVEVEX0VSUk9SKQotIAl0aHJvd19leGNlcHRpb24gKGV4KTsKLSAK LSAgICAgICBpZiAoZGVidWdfaW5mcnVuKQotZGlmZiAtLWdpdCBhL2dkYi9saW51eC10ZGVwLmMg Yi9nZGIvbGludXgtdGRlcC5jCi1pbmRleCA1NTVjMzAyLi5mMTk3YWE3IDEwMDY0NAotLS0tIGEv Z2RiL2xpbnV4LXRkZXAuYwotKysrIGIvZ2RiL2xpbnV4LXRkZXAuYwotQEAgLTI0MjYsNyArMjQy Niw4IEBAIGxpbnV4X2Rpc3BsYWNlZF9zdGVwX2xvY2F0aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCkKLSAgICAgIGxvY2F0aW9uLiAgVGhlIGF1eGlsaWFyeSB2ZWN0b3IgZ2V0cyB1cyB0aGUg UG93ZXJQQy1zaWRlIGVudHJ5Ci0gICAgICBwb2ludCBhZGRyZXNzIGluc3RlYWQuICAqLwotICAg aWYgKHRhcmdldF9hdXh2X3NlYXJjaCAoJmN1cnJlbnRfdGFyZ2V0LCBBVF9FTlRSWSwgJmFkZHIp IDw9IDApCi0tICAgIGVycm9yIChfKCJDYW5ub3QgZmluZCBBVF9FTlRSWSBhdXhpbGlhcnkgdmVj dG9yIGVudHJ5LiIpKTsKLSsgICAgdGhyb3dfZXJyb3IgKE5PVF9TVVBQT1JURURfRVJST1IsCi0r CQkgXygiQ2Fubm90IGZpbmQgQVRfRU5UUlkgYXV4aWxpYXJ5IHZlY3RvciBlbnRyeS4iKSk7Ci0g Ci0gICAvKiBNYWtlIGNlcnRhaW4gdGhhdCB0aGUgYWRkcmVzcyBwb2ludHMgYXQgcmVhbCBjb2Rl LCBhbmQgbm90IGEKLSAgICAgIGZ1bmN0aW9uIGRlc2NyaXB0b3IuICAqLwotLS0gCi0yLjUuMAot Ci0KLQotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDMvbXNnMDAw MTQuaHRtbAotU3ViamVjdDogW1BBVENIIDIvMl0gRml4IFBSIGdkYi8xOTY3NjogSW50ZXJuYWwg ZXJyb3IgaW4gbGludXgtdGhyZWFkLmRiLmMgaWYgL3Byb2Mgbm90IG1vdW50ZWQKLQotSWYgL3By b2MgaXMgbm90IG1vdW50ZWQsIEdEQiBmYWlscyBhbiBhc3NlcnRpb24gaW4gZmluZF9uZXdfdGhy ZWFkc19vbmNlOgotCi0gQ29udGludWluZy4KLSAvaG9tZS9wZWRyby9nZGIvbXlnaXQvc3JjL2dk Yi9saW51eC10aHJlYWQtZGIuYzoxMjQ5OiBpbnRlcm5hbC1lcnJvcjogZmluZF9uZXdfdGhyZWFk c19vbmNlOiBBc3NlcnRpb24gYCF0YXJnZXRfaGFzX2V4ZWN1dGlvbicgZmFpbGVkLgotIEEgcHJv YmxlbSBpbnRlcm5hbCB0byBHREIgaGFzIGJlZW4gZGV0ZWN0ZWQsCi0gZnVydGhlciBkZWJ1Z2dp bmcgbWF5IHByb3ZlIHVucmVsaWFibGUuCi0gUXVpdCB0aGlzIGRlYnVnZ2luZyBzZXNzaW9uPyAo eSBvciBuKQotCi1UaGF0IHdhcyBzdXBwb3NlZCB0byBjYXRjaCBtaXN1c2VzIG9mIHRkX3RhX3Ro cl9pdGVyLCB3aGljaCBpcyB1bnNhZmUKLWZvciBsaXZlIGRlYnVnZ2luZy4gIEhvd2V2ZXIsIGlm IC9wcm9jIGlzIG5vdCBtb3VudGVkLCB3ZSBzdGlsbAotZmFsbGJhY2sgdG8gdXNpbmcgaXQuCi0K LUkgZGlkbid0IGJvdGhlciB3aXRoIGEgd2FybmluZywgYmVjYXVzZSBHREIgYWxyZWFkeSBwcmlu dHMgc2V2ZXJhbAotb3RoZXJzIHJlbGF0ZWQgdG8gZmFpbGluZyB0byBvcGVuIC9wcm9jIGZpbGVz LgotCi1nZGIvQ2hhbmdlTG9nOgotMjAxNi0wMy0wMSAgUGVkcm8gQWx2ZXMgIDxwZWRyb0BjYXNj YWlzLmxhbj4KLQotCVBSIGdkYi8xOTY3NgotCSogbGludXgtdGhyZWFkLWRiLmMgKHRyeV90aHJl YWRfZGJfbG9hZF8xKTogTGVhdmUKLQlpbmZvLT50ZF90YV90aHJfaXRlcl9wIE5VTEwgaWZmIGRl YnVnZ2luZyBhIGxpdmUgcHJvY2VzcyBhbmQgd2UKLQloYXZlIC9wcm9jIGFjY2Vzcy4KLQkoZmlu ZF9uZXdfdGhyZWFkc19vbmNlKTogQXNzZXJ0IHRoYXQgd2UgaGF2ZSBhIG5vbi1OVUxMCi0JaW5m by0+dGRfdGFfdGhyX2l0ZXJfcCBpbnN0ZWFkIG9mIGNoZWNraW5nIHdoZXRoZXIgdGhlIHRhcmdl dCBoYXMKLQlleGVjdXRpb24uCi0tLS0KLSBnZGIvbGludXgtdGhyZWFkLWRiLmMgfCAxNiArKysr KysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGIvbGludXgtdGhyZWFkLWRiLmMgYi9nZGIvbGludXgt dGhyZWFkLWRiLmMKLWluZGV4IDFlYjQ1N2QuLmNlNjBiZWIgMTAwNjQ0Ci0tLS0gYS9nZGIvbGlu dXgtdGhyZWFkLWRiLmMKLSsrKyBiL2dkYi9saW51eC10aHJlYWQtZGIuYwotQEAgLTU2NCw3ICs1 NjQsNiBAQCB0cnlfdGhyZWFkX2RiX2xvYWRfMSAoc3RydWN0IHRocmVhZF9kYl9pbmZvICppbmZv KQotIAotICAgLyogVGhlc2UgYXJlIGVzc2VudGlhbC4gICovCi0gICBDSEsgKFREQl9WRVJCT1NF X0RMU1lNIChpbmZvLCB0ZF90YV9tYXBfbHdwMnRocikpOwotLSAgQ0hLIChUREJfVkVSQk9TRV9E TFNZTSAoaW5mbywgdGRfdGFfdGhyX2l0ZXIpKTsKLSAgIENISyAoVERCX1ZFUkJPU0VfRExTWU0g KGluZm8sIHRkX3Rocl92YWxpZGF0ZSkpOwotICAgQ0hLIChUREJfVkVSQk9TRV9ETFNZTSAoaW5m bywgdGRfdGhyX2dldF9pbmZvKSk7Ci0gCi1AQCAtNTcyLDEwICs1NzEsNiBAQCB0cnlfdGhyZWFk X2RiX2xvYWRfMSAoc3RydWN0IHRocmVhZF9kYl9pbmZvICppbmZvKQotICAgVERCX0RMU1lNIChp bmZvLCB0ZF90aHJfdGxzX2dldF9hZGRyKTsKLSAgIFREQl9ETFNZTSAoaW5mbywgdGRfdGhyX3Rs c2Jhc2UpOwotIAotLSN1bmRlZiBUREJfVkVSQk9TRV9ETFNZTQotLSN1bmRlZiBUREJfRExTWU0K LS0jdW5kZWYgQ0hLCi0tCi0gICAvKiBJdCdzIGJlc3QgdG8gYXZvaWQgdGRfdGFfdGhyX2l0ZXIg aWYgcG9zc2libGUuICBUaGF0IHdhbGtzIGRhdGEKLSAgICAgIHN0cnVjdHVyZXMgaW4gdGhlIGlu ZmVyaW9yJ3MgYWRkcmVzcyBzcGFjZSB0aGF0IG1heSBiZSBjb3JydXB0ZWQsCi0gICAgICBvciwg aWYgdGhlIHRhcmdldCBpcyBydW5uaW5nLCBtYXkgY2hhbmdlIHdoaWxlIHdlIHdhbGsgdGhlbS4g IElmCi1AQCAtNTg3LDYgKzU4MiwxNSBAQCB0cnlfdGhyZWFkX2RiX2xvYWRfMSAoc3RydWN0IHRo cmVhZF9kYl9pbmZvICppbmZvKQotICAgICAgY3VycmVudGx5IG9uIGNvcmUgdGFyZ2V0cywgYXMg aXQgdXNlcyBwdHJhY2UgZGlyZWN0bHkuICAqLwotICAgaWYgKHRhcmdldF9oYXNfZXhlY3V0aW9u Ci0gICAgICAgJiYgbGludXhfcHJvY190YXNrX2xpc3RfZGlyX2V4aXN0cyAocHRpZF9nZXRfcGlk IChpbmZlcmlvcl9wdGlkKSkpCi0rICAgIGluZm8tPnRkX3RhX3Rocl9pdGVyX3AgPSBOVUxMOwot KyAgZWxzZQotKyAgICBDSEsgKFREQl9WRVJCT1NFX0RMU1lNIChpbmZvLCB0ZF90YV90aHJfaXRl cikpOwotKwotKyN1bmRlZiBUREJfVkVSQk9TRV9ETFNZTQotKyN1bmRlZiBUREJfRExTWU0KLSsj dW5kZWYgQ0hLCi0rCi0rICBpZiAoaW5mby0+dGRfdGFfdGhyX2l0ZXJfcCA9PSBOVUxMKQotICAg ICB7Ci0gICAgICAgc3RydWN0IGx3cF9pbmZvICpscDsKLSAgICAgICBpbnQgcGlkID0gcHRpZF9n ZXRfcGlkIChpbmZlcmlvcl9wdGlkKTsKLUBAIC0xMjQ2LDcgKzEyNTAsNyBAQCBmaW5kX25ld190 aHJlYWRzX29uY2UgKHN0cnVjdCB0aHJlYWRfZGJfaW5mbyAqaW5mbywgaW50IGl0ZXJhdGlvbiwK LSAgIGRhdGEubmV3X3RocmVhZHMgPSAwOwotIAotICAgLyogU2VlIGNvbW1lbnQgaW4gdGhyZWFk X2RiX3VwZGF0ZV90aHJlYWRfbGlzdC4gICovCi0tICBnZGJfYXNzZXJ0ICghdGFyZ2V0X2hhc19l eGVjdXRpb24pOwotKyAgZ2RiX2Fzc2VydCAoaW5mby0+dGRfdGFfdGhyX2l0ZXJfcCAhPSBOVUxM KTsKLSAKLSAgIFRSWQotICAgICB7Ci0tLSAKLTIuNS4wCi0KLQotCi1odHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMy9tc2cwMDI0Ni5odG1sCi1TdWJqZWN0OiBbcGF0 Y2hdIFN1Z2dlc3QgcnVubmluZyBnZGJzZXJ2ZXIgZm9yIGEgUElEIGluIGNvbnRhaW5lcgotCi0K LS0tYXpMSEZOeU4zMllDUUdDVQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVz LWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLWN1cnJlbnRseQot CWdkYiAtcCA8cGlkIGZyb20gYSBjb250YWluZXI+Ci13aWxsIHByaW50OgotCXdhcm5pbmc6IFRh cmdldCBhbmQgZGVidWdnZXIgYXJlIGluIGRpZmZlcmVudCBQSUQgbmFtZXNwYWNlczsgdGhyZWFk IGxpc3RzIGFuZCBvdGhlciBkYXRhIGFyZSBsaWtlbHkgdW5yZWxpYWJsZQotCi1CVFcgaXQgaXMg YSBiaXQgbG9zdCBpbiBhbGwgdGhlIG90aGVyIG1lc3NhZ2VzLiAgRnVsbCBzY3JlZW4gb3V0cHV0 IGlzIGluOgotCWh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lk PTE5ODI4Ci0KLUl0IGNvcnJlY3RseSBzdGF0ZXMgdGhlIHByb2JsZW0gYnV0IGl0IGRvZXMgbm90 IHNheSBob3cgdG8gc29sdmUgaXQuCi0KLUlzIGF0IGxlYXN0IHRoaXMgbGl0dGxlIHN1Z2dlc3Rp b24gT0s/Ci0KLU9yaWdpbmFsbHkgSSB3YW50ZWQgdG8gc3VnZ2VzdCBhbHNvIHRoZSBEb2NrZXIg Ii1wIDEyMzQ6MTIzNCIgcGFyYW1ldGVyIGJ1dAotSSBzZWUgdGhlIGNvbnRhaW5lcnMgYXJlIG1v cmUgZ2VuZXJhbCB0b3BpYyB0aGFuIGp1c3QgRG9ja2VyIChldmVuIEx4QyBldGMuKS4KLQotQWNj b3JkaW5nIHRvIEdhcnkgZnV0dXJlIEdEQnMgc2hvdWxkIGJlIGFibGUgdG8gd29yayBldmVuIHdp dGhvdXQgZ2Ric2VydmVyLgotQnV0IGN1cnJlbnRseSBnZGJzZXJ2ZXIgaXMgc3RpbGwgcmVxdWly ZWQuCi0KLQotVGhhbmtzLAotSmFuCi0KLS0tYXpMSEZOeU4zMllDUUdDVQotQ29udGVudC1UeXBl OiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxp bmU7IGZpbGVuYW1lPTEKLQotZ2RiL0NoYW5nZUxvZwotMjAxNi0wMy0xNSAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBsaW51eC10aHJlYWQtZGIuYyAo Y2hlY2tfcGlkX25hbWVzcGFjZV9tYXRjaCk6IEV4dGVuZCB0aGUgbWVzc2FnZS4KLQotZGlmZiAt LWdpdCBhL2dkYi9saW51eC10aHJlYWQtZGIuYyBiL2dkYi9saW51eC10aHJlYWQtZGIuYwotaW5k ZXggMWViNDU3ZC4uMjExNjZiZiAxMDA2NDQKLS0tLSBhL2dkYi9saW51eC10aHJlYWQtZGIuYwot KysrIGIvZ2RiL2xpbnV4LXRocmVhZC1kYi5jCi1AQCAtMTAyMCw3ICsxMDIwLDggQEAgY2hlY2tf cGlkX25hbWVzcGFjZV9tYXRjaCAodm9pZCkKLSAJewotIAkgIHdhcm5pbmcgKF8gKCJUYXJnZXQg YW5kIGRlYnVnZ2VyIGFyZSBpbiBkaWZmZXJlbnQgUElEICIKLSAJCSAgICAgICJuYW1lc3BhY2Vz OyB0aHJlYWQgbGlzdHMgYW5kIG90aGVyIGRhdGEgYXJlICIKLS0JCSAgICAgICJsaWtlbHkgdW5y ZWxpYWJsZSIpKTsKLSsJCSAgICAgICJsaWtlbHkgdW5yZWxpYWJsZS4gICIKLSsJCSAgICAgICJD b25uZWN0IHRvIGdkYnNlcnZlciBpbnNpZGUgdGhlIGNvbnRhaW5lci4iKSk7Ci0gCX0KLSAgICAg fQotIH0KLQotLS1hekxIRk55TjMyWUNRR0NVLS0KLQotCi0KLWNvbW1pdCBmZWYzY2I5ZjNhYTg0 MDE4ZDEwODY2Zjg5MjI4YWUzZjIzZTVjYTdlCi1BdXRob3I6IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogICBXZWQgQXByIDYgMTU6NTc6MDggMjAxNiAr MDIwMAotCi0gICAgUHJpbnQgdGhlICJmaWxlIiBjb21tYW5kIHN1Z2dlc3Rpb24gaW4gZXhlY19m aWxlX2xvY2F0ZV9hdHRhY2gKLSAgICAKLSAgICBjdXJyZW50bHk6Ci0gICAgCSQgZ2Ric2VydmVy LTcuOSA6MTIzNCB0cnVlICYKLSAgICAJJCBnZGIgLXEgLWV4ICd0YXJnZXQgcmVtb3RlIDoxMjM0 JyAjIHRoYXQgLXEgaXMgbm90IHJlbGV2YW50IGhlcmUKLSAgICAJUmVtb3RlIGRlYnVnZ2luZyB1 c2luZyA6MTIzNAotICAgIAl3YXJuaW5nOiBDb3VsZCBub3QgbG9hZCB2c3lzY2FsbCBwYWdlIGJl Y2F1c2Ugbm8gZXhlY3V0YWJsZSB3YXMgc3BlY2lmaWVkCi0gICAgCXRyeSB1c2luZyB0aGUgImZp bGUiIGNvbW1hbmQgZmlyc3QuCi0gICAgCTB4MDAwMDdmZmZmN2RkY2M4MCBpbiA/PyAoKQotICAg IAkoZ2RiKSBiIG1haW4KLSAgICAJTm8gc3ltYm9sIHRhYmxlIGlzIGxvYWRlZC4gIFVzZSB0aGUg ImZpbGUiIGNvbW1hbmQuCi0gICAgCU1ha2UgYnJlYWtwb2ludCBwZW5kaW5nIG9uIGZ1dHVyZSBz aGFyZWQgbGlicmFyeSBsb2FkPyAoeSBvciBbbl0pIF8KLSAgICAKLSAgICBQcm92aWRlIG1vcmUg c3VnZ2VzdGl2ZSBtZXNzYWdlIHRvIHVzZSB0aGUgImZpbGUiIGNvbW1hbmQuCi0gICAgCi0gICAg Z2RiL0NoYW5nZUxvZwotICAgIDIwMTYtMDQtMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLSAgICAJICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5j b20+Ci0gICAgCi0gICAgCSogZXhlYy5jIChleGVjX2ZpbGVfbG9jYXRlX2F0dGFjaCk6IFByaW50 IHdhcm5pbmcgZm9yIHVuc3VwcG9ydGVkCi0gICAgCXRhcmdldF9waWRfdG9fZXhlY19maWxlLgot ICAgIAkqIHN5bWZpbGUtbWVtLmMgKGFkZF92c3lzY2FsbF9wYWdlKTogUmVtb3ZlIHRoZSAiZmls ZSIgY29tbWFuZAotICAgIAltZXNzYWdlIHBhcnQuCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMj IyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsyMDE2LTA0LTA2ICBKYW4gS3Jh dG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCSAgICBQZWRybyBBbHZlcyAg PHBhbHZlc0ByZWRoYXQuY29tPgotKwotKwkqIGV4ZWMuYyAoZXhlY19maWxlX2xvY2F0ZV9hdHRh Y2gpOiBQcmludCB3YXJuaW5nIGZvciB1bnN1cHBvcnRlZAotKwl0YXJnZXRfcGlkX3RvX2V4ZWNf ZmlsZS4KLSsJKiBzeW1maWxlLW1lbS5jIChhZGRfdnN5c2NhbGxfcGFnZSk6IFJlbW92ZSB0aGUg ImZpbGUiIGNvbW1hbmQKLSsJbWVzc2FnZSBwYXJ0LgotKwotIDIwMTYtMDQtMDQgIFNpbW9uIE1h cmNoaSAgPHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+Ci0gCi0gCSogY2xpL2NsaS1kZWNvZGUu YyAoaGVscF9jbWRfbGlzdCk6IEZpeCBmdW5jdGlvbiBkb2MgYW5kIHJlbW92ZQotLS0tIGEvZ2Ri L2V4ZWMuYwotKysrIGIvZ2RiL2V4ZWMuYwotQEAgLTE1MSw3ICsxNTEsMTMgQEAgZXhlY19maWxl X2xvY2F0ZV9hdHRhY2ggKGludCBwaWQsIGludCBmcm9tX3R0eSkKLSAgIC8qIFRyeSB0byBkZXRl cm1pbmUgYSBmaWxlbmFtZSBmcm9tIHRoZSBwcm9jZXNzIGl0c2VsZi4gICovCi0gICBleGVjX2Zp bGUgPSB0YXJnZXRfcGlkX3RvX2V4ZWNfZmlsZSAocGlkKTsKLSAgIGlmIChleGVjX2ZpbGUgPT0g TlVMTCkKLS0gICAgcmV0dXJuOwotKyAgICB7Ci0rICAgICAgd2FybmluZyAoXygiTm8gZXhlY3V0 YWJsZSBoYXMgYmVlbiBzcGVjaWZpZWQgYW5kIHRhcmdldCBkb2VzIG5vdCAiCi0rCQkgInN1cHBv cnRcbiIKLSsJCSAiZGV0ZXJtaW5pbmcgZXhlY3V0YWJsZSBhdXRvbWF0aWNhbGx5LiAgIgotKwkJ ICJUcnkgdXNpbmcgdGhlIFwiZmlsZVwiIGNvbW1hbmQuIikpOwotKyAgICAgIHJldHVybjsKLSsg ICAgfQotIAotICAgLyogSWYgZ2RiX3N5c3Jvb3QgaXMgbm90IGVtcHR5IGFuZCB0aGUgZGlzY292 ZXJlZCBmaWxlbmFtZQotICAgICAgaXMgYWJzb2x1dGUgdGhlbiBwcmVmaXggdGhlIGZpbGVuYW1l IHdpdGggZ2RiX3N5c3Jvb3QuICAqLwotLS0tIGEvZ2RiL3N5bWZpbGUtbWVtLmMKLSsrKyBiL2dk Yi9zeW1maWxlLW1lbS5jCi1AQCAtMjE0LDggKzIxNCw3IEBAIGFkZF92c3lzY2FsbF9wYWdlIChz dHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0LCBpbnQgZnJvbV90dHkpCi0gCSAgZm9ybWF0IHNob3Vs ZCBmaXggdGhpcy4gICovCi0gCXsKLSAJICB3YXJuaW5nIChfKCJDb3VsZCBub3QgbG9hZCB2c3lz Y2FsbCBwYWdlICIKLS0JCSAgICAgImJlY2F1c2Ugbm8gZXhlY3V0YWJsZSB3YXMgc3BlY2lmaWVk XG4iCi0tCQkgICAgICJ0cnkgdXNpbmcgdGhlIFwiZmlsZVwiIGNvbW1hbmQgZmlyc3QuIikpOwot KwkJICAgICAiYmVjYXVzZSBubyBleGVjdXRhYmxlIHdhcyBzcGVjaWZpZWQiKSk7Ci0gCSAgcmV0 dXJuOwotIAl9Ci0gICAgICAgYXJncy5iZmQgPSBiZmQ7Ci0KLQotCi1jb21taXQgMmVmMzRkMTFm NjFkNzlkY2IxNTI3MTNhYTA1OTA1MWQ4Y2QzMjk1ZAotQXV0aG9yOiBNYXJrdXMgTWV0emdlciA8 bWFya3VzLnQubWV0emdlckBpbnRlbC5jb20+Ci1EYXRlOiAgIEZyaSBGZWIgNSAwOTozMjo1MyAy MDE2ICswMTAwCi0KLSAgICBidHJhY2U6IGZpeCBQUiBnZGIvMTk4MjkKLSAgICAKLSAgICBUaGlz IGlzIGEgYmFja3BvcnQgb2YKLSAgICAKLSAgICAzM2I0Nzc3Y2ExYjcgYnRyYWNlLCBmcmFtZTog Zml4IGNyYXNoIGluIGdldF9mcmFtZV90eXBlCi0gICAgYTAzOGZhM2UxNGE0IHN0YWNrOiBjaGVj ayBmcmFtZV91bndpbmRfY2FsbGVyX2lkCi0gICAgMmYzZWY2MDZiOTEyIGZyYW1lOiBhZGQgc2tp cF90YWlsY2FsbF9mcmFtZXMKLSAgICAKLSAgICBJbiBza2lwX2FydGlmaWNpYWxfZnJhbWVzIHdl IHJlcGVhdGVkbHkgY2FsbCBnZXRfcHJldl9mcmFtZV9hbHdheXMgdW50aWwgd2UgZ2V0Ci0gICAg YSBub24taW5saW5lIGFuZCBub24tdGFpbGNhbGwgZnJhbWUgYXNzdW1pbmcgdGhhdCB0aGVyZSBt dXN0IGJlIHN1Y2ggYSBmcmFtZQotICAgIGV2ZW50dWFsbHkuCi0gICAgCi0gICAgRm9yIHJlY29y ZCB0YXJnZXRzLCBob3dldmVyLCB3ZSBtYXkgaGF2ZSBhIGZyYW1lIGNoYWluIHRoYXQgY29uc2lz dHMgb25seSBvZgotICAgIGFydGlmaWNpYWwgZnJhbWVzLiAgVGhpcyBsZWFkcyB0byBhIGNyYXNo IGluIGdldF9mcmFtZV90eXBlIHdoZW4gZGVyZWZlcmVuY2luZyBhCi0gICAgTlVMTCBmcmFtZSBw b2ludGVyLgotICAgIAotICAgIENoYW5nZSBza2lwX2FydGlmaWNpYWxfZnJhbWVzIGFuZCBza2lw X3RhaWxjYWxsX2ZyYW1lcyB0byByZXR1cm4gTlVMTCBpbiBzdWNoIGEKLSAgICBjYXNlIGFuZCBt b2RpZnkgZWFjaCBjYWxsZXIgdG8gY29wZSB3aXRoIGEgTlVMTCByZXR1cm4uCi0gICAgCi0gICAg SW4gZnJhbWVfdW53aW5kX2NhbGxlcl9wYyBhbmQgZnJhbWVfdW53aW5kX2NhbGxlcl9hcmNoLCB3 ZSBzaW1wbHkgYXNzZXJ0IHRoYXQKLSAgICB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgbm90IE5VTEwu ICBUaGVpciBjYWxsZXIgd2FzIHN1cHBvc2VkIHRvIGNoZWNrCi0gICAgZnJhbWVfdW53aW5kX2Nh bGxlcl9pZCBiZWZvcmUgY2FsbGluZyB0aG9zZSBmdW5jdGlvbnMuCi0gICAgCi0gICAgSW4gb3Ro ZXIgY2FzZXMsIHdlIHRocm93biBhbiBlcnJvci4KLSAgICAKLSAgICBJbiBpbmZjbWQgZnVydGhl ciBtb3ZlIHRoZSBza2lwX3RhaWxjYWxsX2ZyYW1lcyBjYWxsIHRvIHRoZSBmb3J3YXJkLXN0ZXBw aW5nCi0gICAgY2FzZSBzaW5jZSB3ZSBkb24ndCBuZWVkIGEgZnJhbWUgZm9yIHJldmVyc2UgZXhl Y3V0aW9uIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZhaWwKLSAgICBiZWNhdXNlIG9mIHRoYXQuICBS ZXZlcnNlLWZpbmlzaCBkb2VzIG1ha2Ugc2Vuc2UgZm9yIGEgdGFpbGNhbGwgZnJhbWUuCi0gICAg Ci0gICAgZ2RiLwotICAgIAkqIGZyYW1lLmggKHNraXBfdGFpbGNhbGxfZnJhbWVzKTogTmV3Lgot ICAgIAkqIGluZmNtZC5jIChmaW5pc2hfY29tbWFuZCk6IENhbGwgc2tpcF90YWlsY2FsbF9mcmFt ZXMuCi0gICAgCSogZnJhbWUuYyAoc2tpcF9hcnRpZmljaWFsX2ZyYW1lcyk6IFJldHVybiBOVUxM IGlmIG9ubHkgYXJ0aWZpY2lhbCBmcmFtZXMKLSAgICAJYXJlIGZvdW5kLiAgVXBkYXRlIGNvbW1l bnQuCi0gICAgCShmcmFtZV9wb3ApOiBDYWxsIHNraXBfdGFpbGNhbGxfZnJhbWVzLgotICAgIAko ZnJhbWVfdW53aW5kX2NhbGxlcl9pZCk6IEhhbmRsZSBOVUxMIHJldHVybi4KLSAgICAJKGZyYW1l X3Vud2luZF9jYWxsZXJfcGMsIGZyYW1lX3Vud2luZF9jYWxsZXJfYXJjaCk6IEFzc2VydCB0aGF0 Ci0gICAgCXNraXBfYXJ0aWZpY2lhbF9mcmFtZXMgZG9lcyBub3QgcmV0dXJuIE5VTEwuCi0gICAg CShmcmFtZV9wb3ApOiBBZGQgYW4gZXJyb3IgaWYgb25seSB0YWlsY2FsbCBmcmFtZXMgYXJlIGZv dW5kLgotICAgIAkqIGluZmNtZC5jIChmaW5pc2hfY29tbWFuZCk6IE1vdmUgc2tpcF90YWlsY2Fs bF9mcmFtZXMgY2FsbCBpbnRvIGZvcndhcmQtCi0gICAgCWV4ZWN1dGlvbiBjYXNlLiAgQWRkIGFu IGVycm9yIGlmIG9ubHkgdGFpbGNhbGwgZnJhbWVzIGFyZSBmb3VuZC4KLSAgICAJKiBzdGFjay5j IChmcmFtZV9pbmZvKTogQ2hlY2sgZnJhbWVfdW53aW5kX2NhbGxlcl9pZC4KLSAgICAKLSAgICB0 ZXN0c3VpdGUvCi0gICAgCSogZ2RiLmJ0cmFjZS90YWlsY2FsbC1vbmx5LmV4cDogTmV3LgotICAg IAkqIGdkYi5idHJhY2UvdGFpbGNhbGwtb25seS5jOiBOZXcuCi0gICAgCSogZ2RiLmJ0cmFjZS94 ODZfNjQtdGFpbGNhbGwtb25seS5TOiBOZXcuCi0gICAgCSogZ2RiLmJ0cmFjZS9pNjg2LXRhaWxj YWxsLW9ubHkuUzogTmV3LgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdl TG9nCi0jIyAtMSwzICsxLDE5IEBACi0rMjAxNi0wMy0xNyAgTWFya3VzIE1ldHpnZXIgIDxtYXJr dXMudC5tZXR6Z2VyQGludGVsLmNvbT4KLSsKLSsJUFIgZ2RiLzE5ODI5Ci0rCSogZnJhbWUuaCAo c2tpcF90YWlsY2FsbF9mcmFtZXMpOiBOZXcuCi0rCSogaW5mY21kLmMgKGZpbmlzaF9jb21tYW5k KTogQ2FsbCBza2lwX3RhaWxjYWxsX2ZyYW1lcy4KLSsJKiBmcmFtZS5jIChza2lwX2FydGlmaWNp YWxfZnJhbWVzKTogUmV0dXJuIE5VTEwgaWYgb25seSBhcnRpZmljaWFsCi0rCWZyYW1lcyBhcmUg Zm91bmQuICBVcGRhdGUgY29tbWVudC4KLSsJKGZyYW1lX3BvcCk6IENhbGwgc2tpcF90YWlsY2Fs bF9mcmFtZXMuCi0rCShmcmFtZV91bndpbmRfY2FsbGVyX2lkKTogSGFuZGxlIE5VTEwgcmV0dXJu LgotKwkoZnJhbWVfdW53aW5kX2NhbGxlcl9wYywgZnJhbWVfdW53aW5kX2NhbGxlcl9hcmNoKTog QXNzZXJ0IHRoYXQKLSsJc2tpcF9hcnRpZmljaWFsX2ZyYW1lcyBkb2VzIG5vdCByZXR1cm4gTlVM TC4KLSsJKGZyYW1lX3BvcCk6IEFkZCBhbiBlcnJvciBpZiBvbmx5IHRhaWxjYWxsIGZyYW1lcyBh cmUgZm91bmQuCi0rCSogaW5mY21kLmMgKGZpbmlzaF9jb21tYW5kKTogTW92ZSBza2lwX3RhaWxj YWxsX2ZyYW1lcyBjYWxsIGludG8KLSsJZm9yd2FyZC1leGVjdXRpb24gY2FzZS4gIEFkZCBhbiBl cnJvciBpZiBvbmx5IHRhaWxjYWxsIGZyYW1lcyBhcmUgZm91bmQuCi0rCSogc3RhY2suYyAoZnJh bWVfaW5mbyk6IENoZWNrIGZyYW1lX3Vud2luZF9jYWxsZXJfaWQuCi0rCi0gMjAxNi0wMy0xNSAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJUFIgZ2RiLzE5Njc2Ci0tLS0g YS9nZGIvZnJhbWUuYwotKysrIGIvZ2RiL2ZyYW1lLmMKLUBAIC00MjAsNyArNDIwLDggQEAgZnBy aW50X2ZyYW1lIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgc3RydWN0IGZyYW1lX2luZm8gKmZpKQot IAotIC8qIEdpdmVuIEZSQU1FLCByZXR1cm4gdGhlIGVuY2xvc2luZyBmcmFtZSBhcyBmb3VuZCBp biByZWFsIGZyYW1lcyByZWFkLWluIGZyb20KLSAgICBpbmZlcmlvciBtZW1vcnkuICBTa2lwIGFu eSBwcmV2aW91cyBmcmFtZXMgd2hpY2ggd2VyZSBtYWRlIHVwIGJ5IEdEQi4KLS0gICBSZXR1cm4g dGhlIG9yaWdpbmFsIGZyYW1lIGlmIG5vIGltbWVkaWF0ZSBwcmV2aW91cyBmcmFtZXMgZXhpc3Qu ICAqLwotKyAgIFJldHVybiBGUkFNRSBpZiBGUkFNRSBpcyBhIG5vbi1hcnRpZmljaWFsIGZyYW1l LgotKyAgIFJldHVybiBOVUxMIGlmIEZSQU1FIGlzIHRoZSBzdGFydCBvZiBhbiBhcnRpZmljaWFs LW9ubHkgY2hhaW4uICAqLwotIAotIHN0YXRpYyBzdHJ1Y3QgZnJhbWVfaW5mbyAqCi0gc2tpcF9h cnRpZmljaWFsX2ZyYW1lcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotQEAgLTQyOCwxMiAr NDI5LDM0IEBAIHNraXBfYXJ0aWZpY2lhbF9mcmFtZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFt ZSkKLSAgIC8qIE5vdGUgd2UgdXNlIGdldF9wcmV2X2ZyYW1lX2Fsd2F5cywgYW5kIG5vdCBnZXRf cHJldl9mcmFtZS4gIFRoZQotICAgICAgbGF0dGVyIHdpbGwgdHJ1bmNhdGUgdGhlIGZyYW1lIGNo YWluLCBsZWFkaW5nIHRvIHRoaXMgZnVuY3Rpb24KLSAgICAgIHVuaW50ZW50aW9uYWxseSByZXR1 cm5pbmcgYSBudWxsX2ZyYW1lX2lkIChlLmcuLCB3aGVuIHRoZSB1c2VyCi0tICAgICBzZXRzIGEg YmFja3RyYWNlIGxpbWl0KS4gIFRoaXMgaXMgc2FmZSwgYmVjYXVzZSBhcyB0aGVzZSBmcmFtZXMK LS0gICAgIGFyZSBtYWRlIHVwIGJ5IEdEQiwgdGhlcmUgbXVzdCBiZSBhIHJlYWwgZnJhbWUgaW4g dGhlIGNoYWluCi0tICAgICBiZWxvdy4gICovCi0rICAgICBzZXRzIGEgYmFja3RyYWNlIGxpbWl0 KS4KLSsKLSsgICAgIE5vdGUgdGhhdCBmb3IgcmVjb3JkIHRhcmdldHMgd2UgbWF5IGdldCBhIGZy YW1lIGNoYWluIHRoYXQgY29uc2lzdHMKLSsgICAgIG9mIGFydGlmaWNpYWwgZnJhbWVzIG9ubHku ICAqLwotICAgd2hpbGUgKGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gSU5MSU5FX0ZSQU1FCi0g CSB8fCBnZXRfZnJhbWVfdHlwZSAoZnJhbWUpID09IFRBSUxDQUxMX0ZSQU1FKQotLSAgICBmcmFt ZSA9IGdldF9wcmV2X2ZyYW1lX2Fsd2F5cyAoZnJhbWUpOwotKyAgICB7Ci0rICAgICAgZnJhbWUg PSBnZXRfcHJldl9mcmFtZV9hbHdheXMgKGZyYW1lKTsKLSsgICAgICBpZiAoZnJhbWUgPT0gTlVM TCkKLSsJYnJlYWs7Ci0rICAgIH0KLSsKLSsgIHJldHVybiBmcmFtZTsKLSt9Ci0rCi0rLyogU2Vl IGZyYW1lLmguICAqLwotKwotK3N0cnVjdCBmcmFtZV9pbmZvICoKLStza2lwX3RhaWxjYWxsX2Zy YW1lcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotK3sKLSsgIHdoaWxlIChnZXRfZnJhbWVf dHlwZSAoZnJhbWUpID09IFRBSUxDQUxMX0ZSQU1FKQotKyAgICB7Ci0rICAgICAgLyogTm90ZSB0 aGF0IGZvciByZWNvcmQgdGFyZ2V0cyB3ZSBtYXkgZ2V0IGEgZnJhbWUgY2hhaW4gdGhhdCBjb25z aXN0cyBvZgotKwkgdGFpbGNhbGwgZnJhbWVzIG9ubHkuICAqLwotKyAgICAgIGZyYW1lID0gZ2V0 X3ByZXZfZnJhbWUgKGZyYW1lKTsKLSsgICAgICBpZiAoZnJhbWUgPT0gTlVMTCkKLSsJYnJlYWs7 Ci0rICAgIH0KLSAKLSAgIHJldHVybiBmcmFtZTsKLSB9Ci1AQCAtNDk2LDYgKzUxOSw5IEBAIGZy YW1lX3Vud2luZF9jYWxsZXJfaWQgKHN0cnVjdCBmcmFtZV9pbmZvICpuZXh0X2ZyYW1lKQotICAg ICAgcmVxdWVzdHMgdGhlIGZyYW1lIElEIG9mICJtYWluKCkicyBjYWxsZXIuICAqLwotIAotICAg bmV4dF9mcmFtZSA9IHNraXBfYXJ0aWZpY2lhbF9mcmFtZXMgKG5leHRfZnJhbWUpOwotKyAgaWYg KG5leHRfZnJhbWUgPT0gTlVMTCkKLSsgICAgcmV0dXJuIG51bGxfZnJhbWVfaWQ7Ci0rCi0gICB0 aGlzX2ZyYW1lID0gZ2V0X3ByZXZfZnJhbWVfYWx3YXlzIChuZXh0X2ZyYW1lKTsKLSAgIGlmICh0 aGlzX2ZyYW1lKQotICAgICByZXR1cm4gZ2V0X2ZyYW1lX2lkIChza2lwX2FydGlmaWNpYWxfZnJh bWVzICh0aGlzX2ZyYW1lKSk7Ci1AQCAtODY5LDcgKzg5NSwxNCBAQCBmcmFtZV91bndpbmRfcGMg KHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKQotIENPUkVfQUREUgotIGZyYW1lX3Vud2lu ZF9jYWxsZXJfcGMgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKQotIHsKLS0gIHJldHVy biBmcmFtZV91bndpbmRfcGMgKHNraXBfYXJ0aWZpY2lhbF9mcmFtZXMgKHRoaXNfZnJhbWUpKTsK LSsgIHRoaXNfZnJhbWUgPSBza2lwX2FydGlmaWNpYWxfZnJhbWVzICh0aGlzX2ZyYW1lKTsKLSsK LSsgIC8qIFdlIG11c3QgaGF2ZSBhIG5vbi1hcnRpZmljaWFsIGZyYW1lLiAgVGhlIGNhbGxlciBp cyBzdXBwb3NlZCB0byBjaGVjawotKyAgICAgdGhlIHJlc3VsdCBvZiBmcmFtZV91bndpbmRfY2Fs bGVyX2lkICgpLCB3aGljaCByZXR1cm5zIE5VTExfRlJBTUVfSUQKLSsgICAgIGluIHRoaXMgY2Fz ZS4gICovCi0rICBnZGJfYXNzZXJ0ICh0aGlzX2ZyYW1lICE9IE5VTEwpOwotKwotKyAgcmV0dXJu IGZyYW1lX3Vud2luZF9wYyAodGhpc19mcmFtZSk7Ci0gfQotIAotIGludAotQEAgLTk3Miw4ICsx MDA1LDEwIEBAIGZyYW1lX3BvcCAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gCi0g ICAvKiBJZ25vcmUgVEFJTENBTExfRlJBTUUgdHlwZSBmcmFtZXMsIHRoZXkgd2VyZSBleGVjdXRl ZCBhbHJlYWR5IGJlZm9yZQotICAgICAgZW50ZXJpbmcgVEhJU0ZSQU1FLiAgKi8KLS0gIHdoaWxl IChnZXRfZnJhbWVfdHlwZSAocHJldl9mcmFtZSkgPT0gVEFJTENBTExfRlJBTUUpCi0tICAgIHBy ZXZfZnJhbWUgPSBnZXRfcHJldl9mcmFtZSAocHJldl9mcmFtZSk7Ci0rICBwcmV2X2ZyYW1lID0g c2tpcF90YWlsY2FsbF9mcmFtZXMgKHByZXZfZnJhbWUpOwotKwotKyAgaWYgKHByZXZfZnJhbWUg PT0gTlVMTCkKLSsgICAgZXJyb3IgKF8oIkNhbm5vdCBmaW5kIHRoZSBjYWxsZXIgZnJhbWUuIikp OwotIAotICAgLyogTWFrZSBhIGNvcHkgb2YgYWxsIHRoZSByZWdpc3RlciB2YWx1ZXMgdW53b3Vu ZCBmcm9tIHRoaXMgZnJhbWUuCi0gICAgICBTYXZlIHRoZW0gaW4gYSBzY3JhdGNoIGJ1ZmZlciBz byB0aGF0IHRoZXJlIGlzbid0IGEgcmFjZSBiZXR3ZWVuCi1AQCAtMjU2MSw3ICsyNTk2LDE0IEBA IGZyYW1lX3Vud2luZF9hcmNoIChzdHJ1Y3QgZnJhbWVfaW5mbyAqbmV4dF9mcmFtZSkKLSBzdHJ1 Y3QgZ2RiYXJjaCAqCi0gZnJhbWVfdW53aW5kX2NhbGxlcl9hcmNoIChzdHJ1Y3QgZnJhbWVfaW5m byAqbmV4dF9mcmFtZSkKLSB7Ci0tICByZXR1cm4gZnJhbWVfdW53aW5kX2FyY2ggKHNraXBfYXJ0 aWZpY2lhbF9mcmFtZXMgKG5leHRfZnJhbWUpKTsKLSsgIG5leHRfZnJhbWUgPSBza2lwX2FydGlm aWNpYWxfZnJhbWVzIChuZXh0X2ZyYW1lKTsKLSsKLSsgIC8qIFdlIG11c3QgaGF2ZSBhIG5vbi1h cnRpZmljaWFsIGZyYW1lLiAgVGhlIGNhbGxlciBpcyBzdXBwb3NlZCB0byBjaGVjawotKyAgICAg dGhlIHJlc3VsdCBvZiBmcmFtZV91bndpbmRfY2FsbGVyX2lkICgpLCB3aGljaCByZXR1cm5zIE5V TExfRlJBTUVfSUQKLSsgICAgIGluIHRoaXMgY2FzZS4gICovCi0rICBnZGJfYXNzZXJ0IChuZXh0 X2ZyYW1lICE9IE5VTEwpOwotKwotKyAgcmV0dXJuIGZyYW1lX3Vud2luZF9hcmNoIChuZXh0X2Zy YW1lKTsKLSB9Ci0gCi0gLyogR2V0cyB0aGUgbGFuZ3VhZ2Ugb2YgRlJBTUUuICAqLwotLS0tIGEv Z2RiL2ZyYW1lLmgKLSsrKyBiL2dkYi9mcmFtZS5oCi1AQCAtODIwLDUgKzgyMCwxMCBAQCBleHRl cm4gaW50IGZyYW1lX3Vud2luZGVyX2lzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZmksCi0gCi0gZXh0 ZXJuIGVudW0gbGFuZ3VhZ2UgZ2V0X2ZyYW1lX2xhbmd1YWdlIChzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUpOwotIAotKy8qIFJldHVybiB0aGUgZmlyc3Qgbm9uLXRhaWxjYWxsIGZyYW1lIGFib3Zl IEZSQU1FIG9yIEZSQU1FIGlmIGl0IGlzIG5vdCBhCi0rICAgdGFpbGNhbGwgZnJhbWUuICBSZXR1 cm4gTlVMTCBpZiBGUkFNRSBpcyB0aGUgc3RhcnQgb2YgYSB0YWlsY2FsbC1vbmx5Ci0rICAgY2hh aW4uICAqLwotKwotK2V4dGVybiBzdHJ1Y3QgZnJhbWVfaW5mbyAqc2tpcF90YWlsY2FsbF9mcmFt ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSk7Ci0gCi0gI2VuZGlmIC8qICFkZWZpbmVkIChG UkFNRV9IKSAgKi8KLS0tLSBhL2dkYi9pbmZjbWQuYwotKysrIGIvZ2RiL2luZmNtZC5jCi1AQCAt MjAwMCwxMSArMjAwMCw2IEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0 eSkKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIC8qIElnbm9yZSBUQUlMQ0FMTF9GUkFN RSB0eXBlIGZyYW1lcywgdGhleSB3ZXJlIGV4ZWN1dGVkIGFscmVhZHkgYmVmb3JlCi0tICAgICBl bnRlcmluZyBUSElTRlJBTUUuICAqLwotLSAgd2hpbGUgKGdldF9mcmFtZV90eXBlIChmcmFtZSkg PT0gVEFJTENBTExfRlJBTUUpCi0tICAgIGZyYW1lID0gZ2V0X3ByZXZfZnJhbWUgKGZyYW1lKTsK LS0KLSAgIC8qIEZpbmQgdGhlIGZ1bmN0aW9uIHdlIHdpbGwgcmV0dXJuIGZyb20uICAqLwotIAot ICAgc20tPmZ1bmN0aW9uID0gZmluZF9wY19mdW5jdGlvbiAoZ2V0X2ZyYW1lX3BjIChnZXRfc2Vs ZWN0ZWRfZnJhbWUgKE5VTEwpKSk7Ci1AQCAtMjAzMSw3ICsyMDI2LDE2IEBAIGZpbmlzaF9jb21t YW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgIGlmIChleGVjdXRpb25fZGlyZWN0aW9u ID09IEVYRUNfUkVWRVJTRSkKLSAgICAgZmluaXNoX2JhY2t3YXJkIChzbSk7Ci0gICBlbHNlCi0t ICAgIGZpbmlzaF9mb3J3YXJkIChzbSwgZnJhbWUpOwotKyAgICB7Ci0rICAgICAgLyogSWdub3Jl IFRBSUxDQUxMX0ZSQU1FIHR5cGUgZnJhbWVzLCB0aGV5IHdlcmUgZXhlY3V0ZWQgYWxyZWFkeSBi ZWZvcmUKLSsJIGVudGVyaW5nIFRISVNGUkFNRS4gICovCi0rICAgICAgZnJhbWUgPSBza2lwX3Rh aWxjYWxsX2ZyYW1lcyAoZnJhbWUpOwotKwotKyAgICAgIGlmIChmcmFtZSA9PSBOVUxMKQotKwll cnJvciAoXygiQ2Fubm90IGZpbmQgdGhlIGNhbGxlciBmcmFtZS4iKSk7Ci0rCi0rICAgICAgZmlu aXNoX2ZvcndhcmQgKHNtLCBmcmFtZSk7Ci0rICAgIH0KLSB9Ci0gDAotIAotLS0tIGEvZ2RiL3N0 YWNrLmMKLSsrKyBiL2dkYi9zdGFjay5jCi1AQCAtMTUwOSwyNyArMTUwOSwzMiBAQCBmcmFtZV9p bmZvIChjaGFyICphZGRyX2V4cCwgaW50IGZyb21fdHR5KQotICAgd3JhcF9oZXJlICgiICAgICIp OwotICAgcHJpbnRmX2ZpbHRlcmVkICgic2F2ZWQgJXMgPSAiLCBwY19yZWduYW1lKTsKLSAKLS0g IFRSWQotLSAgICB7Ci0tICAgICAgY2FsbGVyX3BjID0gZnJhbWVfdW53aW5kX2NhbGxlcl9wYyAo ZmkpOwotLSAgICAgIGNhbGxlcl9wY19wID0gMTsKLS0gICAgfQotLSAgQ0FUQ0ggKGV4LCBSRVRV Uk5fTUFTS19FUlJPUikKLSsgIGlmICghZnJhbWVfaWRfcCAoZnJhbWVfdW53aW5kX2NhbGxlcl9p ZCAoZmkpKSkKLSsgICAgdmFsX3ByaW50X3VuYXZhaWxhYmxlIChnZGJfc3Rkb3V0KTsKLSsgIGVs c2UKLSAgICAgewotLSAgICAgIHN3aXRjaCAoZXguZXJyb3IpCi0rICAgICAgVFJZCi0gCXsKLS0J Y2FzZSBOT1RfQVZBSUxBQkxFX0VSUk9SOgotLQkgIHZhbF9wcmludF91bmF2YWlsYWJsZSAoZ2Ri X3N0ZG91dCk7Ci0tCSAgYnJlYWs7Ci0tCWNhc2UgT1BUSU1JWkVEX09VVF9FUlJPUjoKLS0JICB2 YWxfcHJpbnRfbm90X3NhdmVkIChnZGJfc3Rkb3V0KTsKLS0JICBicmVhazsKLS0JZGVmYXVsdDoK LS0JICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3Rkb3V0LCBfKCI8ZXJyb3I6ICVzPiIpLCBleC5t ZXNzYWdlKTsKLS0JICBicmVhazsKLSsJICBjYWxsZXJfcGMgPSBmcmFtZV91bndpbmRfY2FsbGVy X3BjIChmaSk7Ci0rCSAgY2FsbGVyX3BjX3AgPSAxOwotIAl9Ci0rICAgICAgQ0FUQ0ggKGV4LCBS RVRVUk5fTUFTS19FUlJPUikKLSsJewotKwkgIHN3aXRjaCAoZXguZXJyb3IpCi0rCSAgICB7Ci0r CSAgICBjYXNlIE5PVF9BVkFJTEFCTEVfRVJST1I6Ci0rCSAgICAgIHZhbF9wcmludF91bmF2YWls YWJsZSAoZ2RiX3N0ZG91dCk7Ci0rCSAgICAgIGJyZWFrOwotKwkgICAgY2FzZSBPUFRJTUlaRURf T1VUX0VSUk9SOgotKwkgICAgICB2YWxfcHJpbnRfbm90X3NhdmVkIChnZGJfc3Rkb3V0KTsKLSsJ ICAgICAgYnJlYWs7Ci0rCSAgICBkZWZhdWx0OgotKwkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChn ZGJfc3Rkb3V0LCBfKCI8ZXJyb3I6ICVzPiIpLCBleC5tZXNzYWdlKTsKLSsJICAgICAgYnJlYWs7 Ci0rCSAgICB9Ci0rCX0KLSsgICAgICBFTkRfQ0FUQ0gKLSAgICAgfQotLSAgRU5EX0NBVENICi0g Ci0gICBpZiAoY2FsbGVyX3BjX3ApCi0gICAgIGZwdXRzX2ZpbHRlcmVkIChwYWRkcmVzcyAoZ2Ri YXJjaCwgY2FsbGVyX3BjKSwgZ2RiX3N0ZG91dCk7Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5n ZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsy MDE2LTAzLTE3ICBNYXJrdXMgTWV0emdlciAgPG1hcmt1cy50Lm1ldHpnZXJAaW50ZWwuY29tPgot KwotKwlQUiBnZGIvMTk4MjkKLSsJKiBnZGIuYnRyYWNlL3RhaWxjYWxsLW9ubHkuZXhwOiBOZXcu Ci0rCSogZ2RiLmJ0cmFjZS90YWlsY2FsbC1vbmx5LmM6IE5ldy4KLSsJKiBnZGIuYnRyYWNlL3g4 Nl82NC10YWlsY2FsbC1vbmx5LlM6IE5ldy4KLSsJKiBnZGIuYnRyYWNlL2k2ODYtdGFpbGNhbGwt b25seS5TOiBOZXcuCi0rCi0gMjAxNi0wMi0xNiAgRG9uIEJyZWF6ZWFsICA8ZG9uYkBjb2Rlc291 cmNlcnkuY29tPgotIAotIAlQUiByZW1vdGUvMTk0OTYKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJ0cmFjZS9pNjg2LXRhaWxjYWxsLW9ubHkuUwotQEAgLTAsMCArMSw0 NDcgQEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgotKwotKyAgIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKwotKyAgIFRoaXMg ZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgdXNpbmc6Ci0rICAgZ2NjIC1tMzIgLW1hcmNoPWk2ODYg LVMgLU8yIC1kQSAtZyB0YWlsY2FsbC1vbmx5LmMgLW8gaTY4Ni10YWlsY2FsbC1vbmx5LlMKLSsg Ki8KLSsKLSsJLmZpbGUJInRhaWxjYWxsLW9ubHkuYyIKLSsJLnRleHQKLSsuTHRleHQwOgotKwku cDJhbGlnbiA0LCwxNQotKwkudHlwZQliYXJfMSwgQGZ1bmN0aW9uCi0rYmFyXzE6Ci0rLkxGQjA6 Ci0rCS5maWxlIDEgInRhaWxjYWxsLW9ubHkuYyIKLSsJIyB0YWlsY2FsbC1vbmx5LmM6MjIKLSsJ LmxvYyAxIDIyIDAKLSsJLmNmaV9zdGFydHByb2MKLSsjIEJMT0NLIDIgZnJlcToxMDAwMCBzZXE6 MAotKyMgUFJFRDogRU5UUlkgWzEwMC4wJV0gIChGQUxMVEhSVSkKLSsJIyB0YWlsY2FsbC1vbmx5 LmM6MjQKLSsJLmxvYyAxIDI0IDAKLSsJbW92bAkkNDIsICVlYXgKLSsjIFNVQ0M6IEVYSVQgWzEw MC4wJV0KLSsJcmV0Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkUwOgotKwkuc2l6ZQliYXJfMSwgLi1i YXJfMQotKwkucDJhbGlnbiA0LCwxNQotKwkudHlwZQliYXIsIEBmdW5jdGlvbgotK2JhcjoKLSsu TEZCMToKLSsJIyB0YWlsY2FsbC1vbmx5LmM6MjgKLSsJLmxvYyAxIDI4IDAKLSsJLmNmaV9zdGFy dHByb2MKLSsjIEJMT0NLIDIgZnJlcToxMDAwMCBzZXE6MAotKyMgUFJFRDogRU5UUlkgWzEwMC4w JV0gIChGQUxMVEhSVSkKLSsJIyB0YWlsY2FsbC1vbmx5LmM6MjkKLSsJLmxvYyAxIDI5IDAKLSsJ am1wCWJhcl8xCi0rIyBTVUNDOiBFWElUIFsxMDAuMCVdICAoQUJOT1JNQUwsU0lCQ0FMTCkKLSsu TFZMMDoKLSsJLmNmaV9lbmRwcm9jCi0rLkxGRTE6Ci0rCS5zaXplCWJhciwgLi1iYXIKLSsJLnAy YWxpZ24gNCwsMTUKLSsJLnR5cGUJZm9vXzEsIEBmdW5jdGlvbgotK2Zvb18xOgotKy5MRkIyOgot KwkjIHRhaWxjYWxsLW9ubHkuYzozNAotKwkubG9jIDEgMzQgMAotKwkuY2ZpX3N0YXJ0cHJvYwot KyMgQkxPQ0sgMiBmcmVxOjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZB TExUSFJVKQotKwkjIHRhaWxjYWxsLW9ubHkuYzozNQotKwkubG9jIDEgMzUgMAotKwlqbXAJYmFy Ci0rIyBTVUNDOiBFWElUIFsxMDAuMCVdICAoQUJOT1JNQUwsU0lCQ0FMTCkKLSsuTFZMMToKLSsJ LmNmaV9lbmRwcm9jCi0rLkxGRTI6Ci0rCS5zaXplCWZvb18xLCAuLWZvb18xCi0rCS5wMmFsaWdu IDQsLDE1Ci0rCS50eXBlCWZvbywgQGZ1bmN0aW9uCi0rZm9vOgotKy5MRkIzOgotKwkjIHRhaWxj YWxsLW9ubHkuYzo0MAotKwkubG9jIDEgNDAgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sg MiBmcmVxOjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQot KwkjIHRhaWxjYWxsLW9ubHkuYzo0MQotKwkubG9jIDEgNDEgMAotKwlqbXAJZm9vXzEKLSsjIFNV Q0M6IEVYSVQgWzEwMC4wJV0gIChBQk5PUk1BTCxTSUJDQUxMKQotKy5MVkwyOgotKwkuY2ZpX2Vu ZHByb2MKLSsuTEZFMzoKLSsJLnNpemUJZm9vLCAuLWZvbwotKwkuc2VjdGlvbgkudGV4dC5zdGFy dHVwLCJheCIsQHByb2diaXRzCi0rCS5wMmFsaWduIDQsLDE1Ci0rCS5nbG9ibAltYWluCi0rCS50 eXBlCW1haW4sIEBmdW5jdGlvbgotK21haW46Ci0rLkxGQjQ6Ci0rCSMgdGFpbGNhbGwtb25seS5j OjQ2Ci0rCS5sb2MgMSA0NiAwCi0rCS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAw MDAgc2VxOjAKLSsjIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCSMgdGFpbGNh bGwtb25seS5jOjQ5Ci0rCS5sb2MgMSA0OSAwCi0rCWNhbGwJZm9vCi0rLkxWTDM6Ci0rCSMgdGFp bGNhbGwtb25seS5jOjUwCi0rCS5sb2MgMSA1MCAwCi0rCWFkZGwJJDEsICVlYXgKLSsuTFZMNDoK LSsjIFNVQ0M6IEVYSVQgWzEwMC4wJV0KLSsJIyB0YWlsY2FsbC1vbmx5LmM6NTMKLSsJLmxvYyAx IDUzIDAKLSsJcmV0Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkU0OgotKwkuc2l6ZQltYWluLCAuLW1h aW4KLSsJLnRleHQKLSsuTGV0ZXh0MDoKLSsJLnNlY3Rpb24JLmRlYnVnX2luZm8sIiIsQHByb2di aXRzCi0rLkxkZWJ1Z19pbmZvMDoKLSsJLmxvbmcJMHhkNQkjIExlbmd0aCBvZiBDb21waWxhdGlv biBVbml0IEluZm8KLSsJLnZhbHVlCTB4NAkjIERXQVJGIHZlcnNpb24gbnVtYmVyCi0rCS5sb25n CS5MZGVidWdfYWJicmV2MAkjIE9mZnNldCBJbnRvIEFiYnJldi4gU2VjdGlvbgotKwkuYnl0ZQkw eDQJIyBQb2ludGVyIFNpemUgKGluIGJ5dGVzKQotKwkudWxlYjEyOCAweDEJIyAoRElFICgweGIp IERXX1RBR19jb21waWxlX3VuaXQpCi0rCS5sb25nCS5MQVNGMQkjIERXX0FUX3Byb2R1Y2VyOiAi R05VIEMgNC44LjMgMjAxNDA5MTEgKFJlZCBIYXQgNC44LjMtOSkgLW0zMiAtbWFyY2g9aTY4NiAt ZyAtTzIiCi0rCS5ieXRlCTB4MQkjIERXX0FUX2xhbmd1YWdlCi0rCS5sb25nCS5MQVNGMgkjIERX X0FUX25hbWU6ICJ0YWlsY2FsbC1vbmx5LmMiCi0rCS5sb25nCS5MQVNGMwkjIERXX0FUX2NvbXBf ZGlyOiAiIgotKwkubG9uZwkuTGRlYnVnX3JhbmdlczArMAkjIERXX0FUX3JhbmdlcwotKwkubG9u ZwkwCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCS5MZGVidWdfbGluZTAJIyBEV19BVF9zdG10X2xp c3QKLSsJLnVsZWIxMjggMHgyCSMgKERJRSAoMHgyNSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5s b25nCS5MQVNGNAkjIERXX0FUX25hbWU6ICJiYXJfMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVj bF9maWxlICh0YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUK LSsJCQkjIERXX0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJMHgzYQkjIERXX0FUX3R5cGUKLSsJLmxv bmcJLkxGQjAJIyBEV19BVF9sb3dfcGMKLSsJLmxvbmcJLkxGRTAtLkxGQjAJIyBEV19BVF9oaWdo X3BjCi0rCS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERX X09QX2NhbGxfZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLnVs ZWIxMjggMHgzCSMgKERJRSAoMHgzYSkgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMHg0CSMg RFdfQVRfYnl0ZV9zaXplCi0rCS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5nCi0rCS5hc2NpaSAi aW50XDAiCSMgRFdfQVRfbmFtZQotKwkudWxlYjEyOCAweDQJIyAoRElFICgweDQxKSBEV19UQUdf c3VicHJvZ3JhbSkKLSsJLmFzY2lpICJiYXJcMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkj IERXX0FUX2RlY2xfZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDFiCSMgRFdfQVRf ZGVjbF9saW5lCi0rCQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4M2EJIyBEV19BVF90 eXBlCi0rCS5sb25nCS5MRkIxCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCS5MRkUxLS5MRkIxCSMg RFdfQVRfaGlnaF9wYwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0rCS5ieXRl CTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3Np dGVzCi0rCS5sb25nCTB4NjQJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkjIChESUUg KDB4NWEpIERXX1RBR19HTlVfY2FsbF9zaXRlKQotKwkubG9uZwkuTFZMMAkjIERXX0FUX2xvd19w YwotKwkJCSMgRFdfQVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDI1CSMgRFdfQVRfYWJzdHJh Y3Rfb3JpZ2luCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NDEKLSsJLnVs ZWIxMjggMHg2CSMgKERJRSAoMHg2NCkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5MQVNG MAkjIERXX0FUX25hbWU6ICJmb29fMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0 YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MjEJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERX X0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJMHgzYQkjIERXX0FUX3R5cGUKLSsJLmxvbmcJLkxGQjIJ IyBEV19BVF9sb3dfcGMKLSsJLmxvbmcJLkxGRTItLkxGQjIJIyBEV19BVF9oaWdoX3BjCi0rCS51 bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxf ZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLmxvbmcJMHg4Nwkj IERXX0FUX3NpYmxpbmcKLSsJLnVsZWIxMjggMHg1CSMgKERJRSAoMHg3ZCkgRFdfVEFHX0dOVV9j YWxsX3NpdGUpCi0rCS5sb25nCS5MVkwxCSMgRFdfQVRfbG93X3BjCi0rCQkJIyBEV19BVF9HTlVf dGFpbF9jYWxsCi0rCS5sb25nCTB4NDEJIyBEV19BVF9hYnN0cmFjdF9vcmlnaW4KLSsJLmJ5dGUJ MAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHg2NAotKwkudWxlYjEyOCAweDQJIyAoRElFICgw eDg3KSBEV19UQUdfc3VicHJvZ3JhbSkKLSsJLmFzY2lpICJmb29cMCIJIyBEV19BVF9uYW1lCi0r CS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkw eDI3CSMgRFdfQVRfZGVjbF9saW5lCi0rCQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4 M2EJIyBEV19BVF90eXBlCi0rCS5sb25nCS5MRkIzCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCS5M RkUzLS5MRkIzCSMgRFdfQVRfaGlnaF9wYwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9i YXNlCi0rCS5ieXRlCTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05V X2FsbF9jYWxsX3NpdGVzCi0rCS5sb25nCTB4YWEJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4 IDB4NQkjIChESUUgKDB4YTApIERXX1RBR19HTlVfY2FsbF9zaXRlKQotKwkubG9uZwkuTFZMMgkj IERXX0FUX2xvd19wYwotKwkJCSMgRFdfQVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDY0CSMg RFdfQVRfYWJzdHJhY3Rfb3JpZ2luCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElF IDB4ODcKLSsJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhhYSkgRFdfVEFHX3N1YnByb2dyYW0pCi0r CQkJIyBEV19BVF9leHRlcm5hbAotKwkubG9uZwkuTEFTRjUJIyBEV19BVF9uYW1lOiAibWFpbiIK LSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRl CTB4MmQJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJ MHgzYQkjIERXX0FUX3R5cGUKLSsJLmxvbmcJLkxGQjQJIyBEV19BVF9sb3dfcGMKLSsJLmxvbmcJ LkxGRTQtLkxGQjQJIyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1l X2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9H TlVfYWxsX2NhbGxfc2l0ZXMKLSsJLnVsZWIxMjggMHg4CSMgKERJRSAoMHhiZikgRFdfVEFHX3Zh cmlhYmxlKQotKwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiYW5zd2VyIgotKwkuYnl0ZQkw eDEJIyBEV19BVF9kZWNsX2ZpbGUgKHRhaWxjYWxsLW9ubHkuYykKLSsJLmJ5dGUJMHgyZgkjIERX X0FUX2RlY2xfbGluZQotKwkubG9uZwkweDNhCSMgRFdfQVRfdHlwZQotKwkubG9uZwkuTExTVDAJ IyBEV19BVF9sb2NhdGlvbgotKwkudWxlYjEyOCAweDkJIyAoRElFICgweGNlKSBEV19UQUdfR05V X2NhbGxfc2l0ZSkKLSsJLmxvbmcJLkxWTDMJIyBEV19BVF9sb3dfcGMKLSsJLmxvbmcJMHg4Nwkj IERXX0FUX2Fic3RyYWN0X29yaWdpbgotKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJ RSAweGFhCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YgotKwkuc2VjdGlv bgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cwotKy5MZGVidWdfYWJicmV2MDoKLSsJLnVsZWIx MjggMHgxCSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDExCSMgKFRBRzogRFdfVEFHX2Nv bXBpbGVfdW5pdCkKLSsJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5feWVzCi0rCS51bGViMTI4IDB4 MjUJIyAoRFdfQVRfcHJvZHVjZXIpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0r CS51bGViMTI4IDB4MTMJIyAoRFdfQVRfbGFuZ3VhZ2UpCi0rCS51bGViMTI4IDB4YgkjIChEV19G T1JNX2RhdGExKQotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHhl CSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgxYgkjIChEV19BVF9jb21wX2RpcikKLSsJ LnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHg1NQkjIChEV19BVF9y YW5nZXMpCi0rCS51bGViMTI4IDB4MTcJIyAoRFdfRk9STV9zZWNfb2Zmc2V0KQotKwkudWxlYjEy OCAweDExCSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikK LSsJLnVsZWIxMjggMHgxMAkjIChEV19BVF9zdG10X2xpc3QpCi0rCS51bGViMTI4IDB4MTcJIyAo RFdfRk9STV9zZWNfb2Zmc2V0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgy CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dy YW0pCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRf bmFtZSkKLSsJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgzYQkj IChEV19BVF9kZWNsX2ZpbGUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwku dWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZP Uk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MjcJIyAoRFdfQVRfcHJvdG90eXBlZCkKLSsJLnVsZWIx MjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19B VF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgx MQkjIChEV19BVF9sb3dfcGMpCi0rCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51 bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykKLSsJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1f ZGF0YTQpCi0rCS51bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJhbWVfYmFzZSkKLSsJLnVsZWIxMjgg MHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCi0rCS51bGViMTI4IDB4MjExNwkjIChEV19BVF9HTlVf YWxsX2NhbGxfc2l0ZXMpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQp Ci0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkudWxlYjEyOCAweDMJIyAoYWJicmV2IGNvZGUpCi0r CS51bGViMTI4IDB4MjQJIyAoVEFHOiBEV19UQUdfYmFzZV90eXBlKQotKwkuYnl0ZQkwCSMgRFdf Y2hpbGRyZW5fbm8KLSsJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKLSsJLnVsZWIx MjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2UJIyAoRFdfQVRfZW5jb2Rp bmcpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDMJIyAo RFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQotKwkuYnl0ZQkw Ci0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg0CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAw eDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVu X3llcwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVsZWIxMjggMHg4CSMgKERX X0ZPUk1fc3RyaW5nKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKLSsJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVj bF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgy NwkjIChEV19BVF9wcm90b3R5cGVkKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19w cmVzZW50KQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0rCS51bGViMTI4IDB4MTMJ IyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKLSsJLnVs ZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdo X3BjKQotKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKLSsJLnVsZWIxMjggMHg0MAkj IChEV19BVF9mcmFtZV9iYXNlKQotKwkudWxlYjEyOCAweDE4CSMgKERXX0ZPUk1fZXhwcmxvYykK LSsJLnVsZWIxMjggMHgyMTE3CSMgKERXX0FUX0dOVV9hbGxfY2FsbF9zaXRlcykKLSsJLnVsZWIx MjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgxCSMgKERXX0FU X3NpYmxpbmcpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkuYnl0ZQkwCi0r CS5ieXRlCTAKLSsJLnVsZWIxMjggMHg1CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDQx MDkJIyAoVEFHOiBEV19UQUdfR05VX2NhbGxfc2l0ZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVu X25vCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAo RFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDIxMTUJIyAoRFdfQVRfR05VX3RhaWxfY2FsbCkK LSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgz MQkjIChEV19BVF9hYnN0cmFjdF9vcmlnaW4pCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9y ZWY0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg2CSMgKGFiYnJldiBjb2Rl KQotKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5ieXRlCTB4 MQkjIERXX2NoaWxkcmVuX3llcwotKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKLSsJLnVs ZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKLSsJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNs X2ZpbGUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDNi CSMgKERXX0FUX2RlY2xfbGluZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0r CS51bGViMTI4IDB4MjcJIyAoRFdfQVRfcHJvdG90eXBlZCkKLSsJLnVsZWIxMjggMHgxOQkjIChE V19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwku dWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9s b3dfcGMpCi0rCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJ IyAoRFdfQVRfaGlnaF9wYykKLSsJLnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCi0rCS51 bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJhbWVfYmFzZSkKLSsJLnVsZWIxMjggMHgxOAkjIChEV19G T1JNX2V4cHJsb2MpCi0rCS51bGViMTI4IDB4MjExNwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0 ZXMpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4 IDB4MQkjIChEV19BVF9zaWJsaW5nKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkK LSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NwkjIChhYmJyZXYgY29kZSkKLSsJ LnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBE V19jaGlsZHJlbl95ZXMKLSsJLnVsZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKLSsJLnVs ZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkKLSsJLnVsZWIxMjggMHgzCSMgKERX X0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4 M2EJIyAoRFdfQVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkK LSsJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChE V19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCi0rCS51 bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4NDkJIyAo RFdfQVRfdHlwZSkKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS51bGViMTI4 IDB4MTEJIyAoRFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQot KwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4NgkjIChEV19G T1JNX2RhdGE0KQotKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGVi MTI4IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRf R05VX2FsbF9jYWxsX3NpdGVzKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVz ZW50KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg4CSMgKGFiYnJldiBjb2Rl KQotKwkudWxlYjEyOCAweDM0CSMgKFRBRzogRFdfVEFHX3ZhcmlhYmxlKQotKwkuYnl0ZQkwCSMg RFdfY2hpbGRyZW5fbm8KLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4 IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxl KQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChE V19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxl YjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0 KQotKwkudWxlYjEyOCAweDIJIyAoRFdfQVRfbG9jYXRpb24pCi0rCS51bGViMTI4IDB4MTcJIyAo RFdfRk9STV9zZWNfb2Zmc2V0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHg5 CSMgKGFiYnJldiBjb2RlKQotKwkudWxlYjEyOCAweDQxMDkJIyAoVEFHOiBEV19UQUdfR05VX2Nh bGxfc2l0ZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCi0rCS51bGViMTI4IDB4MTEJIyAo RFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEy OCAweDMxCSMgKERXX0FUX2Fic3RyYWN0X29yaWdpbikKLSsJLnVsZWIxMjggMHgxMwkjIChEV19G T1JNX3JlZjQpCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS5zZWN0aW9uCS5k ZWJ1Z19sb2MsIiIsQHByb2diaXRzCi0rLkxkZWJ1Z19sb2MwOgotKy5MTFNUMDoKLSsJLmxvbmcJ LkxWTDMJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCi0rCS5sb25nCS5M Vkw0CSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMCkKLSsJLnZhbHVlCTB4Mwkj IExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQotKwkuYnl0ZQkweDcwCSMgRFdfT1BfYnJlZzAKLSsJ LnNsZWIxMjggMQotKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKLSsJLmxvbmcJLkxW TDQJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCi0rCS5sb25nCS5MRkU0 CSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMCkKLSsJLnZhbHVlCTB4MQkjIExv Y2F0aW9uIGV4cHJlc3Npb24gc2l6ZQotKwkuYnl0ZQkweDUwCSMgRFdfT1BfcmVnMAotKwkubG9u ZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1QwKQotKwkubG9uZwkw CSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUMCkKLSsJLnNlY3Rpb24JLmRl YnVnX2FyYW5nZXMsIiIsQHByb2diaXRzCi0rCS5sb25nCTB4MjQJIyBMZW5ndGggb2YgQWRkcmVz cyBSYW5nZXMgSW5mbwotKwkudmFsdWUJMHgyCSMgRFdBUkYgVmVyc2lvbgotKwkubG9uZwkuTGRl YnVnX2luZm8wCSMgT2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbwotKwkuYnl0ZQkweDQJ IyBTaXplIG9mIEFkZHJlc3MKLSsJLmJ5dGUJMAkjIFNpemUgb2YgU2VnbWVudCBEZXNjcmlwdG9y Ci0rCS52YWx1ZQkwCSMgUGFkIHRvIDggYnl0ZSBib3VuZGFyeQotKwkudmFsdWUJMAotKwkubG9u ZwkuTHRleHQwCSMgQWRkcmVzcwotKwkubG9uZwkuTGV0ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCi0r CS5sb25nCS5MRkI0CSMgQWRkcmVzcwotKwkubG9uZwkuTEZFNC0uTEZCNAkjIExlbmd0aAotKwku bG9uZwkwCi0rCS5sb25nCTAKLSsJLnNlY3Rpb24JLmRlYnVnX3JhbmdlcywiIixAcHJvZ2JpdHMK LSsuTGRlYnVnX3JhbmdlczA6Ci0rCS5sb25nCS5MdGV4dDAJIyBPZmZzZXQgMAotKwkubG9uZwku TGV0ZXh0MAotKwkubG9uZwkuTEZCNAkjIE9mZnNldCAweDgKLSsJLmxvbmcJLkxGRTQKLSsJLmxv bmcJMAotKwkubG9uZwkwCi0rCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cwotKy5M ZGVidWdfbGluZTA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQotKy5M QVNGNDoKLSsJLnN0cmluZwkiYmFyXzEiCi0rLkxBU0YyOgotKwkuc3RyaW5nCSJ0YWlsY2FsbC1v bmx5LmMiCi0rLkxBU0YxOgotKwkuc3RyaW5nCSJHTlUgQyA0LjguMyAyMDE0MDkxMSAoUmVkIEhh dCA0LjguMy05KSAtbTMyIC1tYXJjaD1pNjg2IC1nIC1PMiIKLSsuTEFTRjY6Ci0rCS5zdHJpbmcJ ImFuc3dlciIKLSsuTEFTRjU6Ci0rCS5zdHJpbmcJIm1haW4iCi0rLkxBU0YzOgotKwkuc3RyaW5n CSIiCi0rLkxBU0YwOgotKwkuc3RyaW5nCSJmb29fMSIKLSsJLmlkZW50CSJHQ0M6IChHTlUpIDQu OC4zIDIwMTQwOTExIChSZWQgSGF0IDQuOC4zLTkpIgotKwkuc2VjdGlvbgkubm90ZS5HTlUtc3Rh Y2ssIiIsQHByb2diaXRzCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5i dHJhY2UvdGFpbGNhbGwtb25seS5jCi1AQCAtMCwwICsxLDUzIEBACi0rLyogVGhpcyB0ZXN0Y2Fz ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAx NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBDb250cmlidXRlZCBieSBJ bnRlbCBDb3JwLiA8bWFya3VzLnQubWV0emdlckBpbnRlbC5jb20+Ci0rCi0rICAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKLSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotK3N0YXRpYyBfX2F0dHJpYnV0ZV9fICgo bm9pbmxpbmUpKSBpbnQKLStiYXJfMSAodm9pZCkKLSt7Ci0rICByZXR1cm4gNDI7Ci0rfQotKwot K3N0YXRpYyBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBpbnQKLStiYXIgKHZvaWQpCi0rewot KyAgcmV0dXJuIGJhcl8xICgpOwotK30KLSsKLStzdGF0aWMgX19hdHRyaWJ1dGVfXyAoKG5vaW5s aW5lKSkgaW50Ci0rZm9vXzEgKHZvaWQpCi0rewotKyAgcmV0dXJuIGJhciAoKTsKLSt9Ci0rCi0r c3RhdGljIF9fYXR0cmlidXRlX18gKChub2lubGluZSkpIGludAotK2ZvbyAodm9pZCkKLSt7Ci0r ICByZXR1cm4gZm9vXzEgKCk7Ci0rfQotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgaW50 IGFuc3dlcjsKLSsKLSsgIGFuc3dlciA9IGZvbyAoKTsKLSsgIGFuc3dlciArPSAxOwotKwotKyAg cmV0dXJuIGFuc3dlcjsKLSt9Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5idHJhY2UvdGFpbGNhbGwtb25seS5leHAKLUBAIC0wLDAgKzEsOTcgQEAKLSsjIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCi0rIwotKyMgQ29weXJpZ2h0 IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK LSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0r IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KLSsjCi0rIwotKyMgVGhpcyBpcyBhIHZhcmlhbnQgb2YgdGFpbGNhbGwu ZXhwIHdoZXJlIHRoZSBlbnRpcmUgdHJhY2UgY29udGFpbnMgb25seSB0YWlsCi0rIyBjYWxscy4g IFRoaXMgdXNlZCB0byBjYXVzZSBhIGNyYXNoIGluIGdldF9mcmFtZV90eXBlLgotKyMKLSsKLSsj IGNoZWNrIGZvciBidHJhY2Ugc3VwcG9ydAotK2lmIHsgW3NraXBfYnRyYWNlX3Rlc3RzXSB9IHsg cmV0dXJuIC0xIH0KLSsKLSsjIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgY29tcGlsZXIgdG8gZ2Vu ZXJhdGUgYSB0YWlsIGNhbGwuICBUbyBndWFyYW50ZWUgdGhhdAotKyMgd2UgYWx3YXlzIGdldCBv bmUsIHdlIHVzZSBhbiBhc3NlbWJseSBzb3VyY2UgZmlsZS4KLSsjCi0rIyBXZSB1c2UgZGlmZmVy ZW50IGFzc2VtYmx5IHNvdXJjZXMgYmFzZWQgb24gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuCi0r IwotKyMgTHVja2lseSwgdGhleSBhcmUgc2ltaWxhciBlbm91Z2ggdGhhdCBhIHNpbmdsZSB0ZXN0 IHNjcmlwdCBjYW4gaGFuZGxlCi0rIyBib3RoLgotK3NldCBvcHRzIHt9Ci0raWYgW2luZm8gZXhp c3RzIENPTVBJTEVdIHsKLSsgICAgIyBtYWtlIGNoZWNrIFJVTlRFU1RGTEFHUz0iZ2RiLmJ0cmFj ZS90YWlsY2FsbC1vbmx5LmV4cCBDT01QSUxFPTEiCi0rICAgIHN0YW5kYXJkX3Rlc3RmaWxlIHRh aWxjYWxsLW9ubHkuYwotKyAgICBsYXBwZW5kIG9wdHMgZGVidWcgb3B0aW1pemU9LU8yCi0rfSBl bHNlaWYge1tpc3RhcmdldCAieDg2XzY0LSotKiJdfSB7Ci0rCXN0YW5kYXJkX3Rlc3RmaWxlIHg4 Nl82NC10YWlsY2FsbC1vbmx5LlMKLSt9IGVsc2VpZiB7W2lzdGFyZ2V0ICJpPzg2LSotKiJdfSB7 Ci0rCXN0YW5kYXJkX3Rlc3RmaWxlIGk2ODYtdGFpbGNhbGwtb25seS5TCi0rfSBlbHNlIHsKLSsg ICAgdmVyYm9zZSAiU2tpcHBpbmcgJHt0ZXN0ZmlsZX0uIgotKyAgICByZXR1cm4KLSt9Ci0rCi0r aWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgdGFpbGNhbGwtb25seS5leHAgJHRlc3RmaWxlICRzcmNm aWxlICRvcHRzXSB7Ci0rICAgIHJldHVybiAtMQotK30KLStpZiAhW3J1bnRvX21haW5dIHsKLSsg ICAgcmV0dXJuIC0xCi0rfQotKwotKyMgd2Ugd2FudCB0byBzZWUgdGhlIGZ1bGwgdHJhY2UgZm9y IHRoaXMgdGVzdAotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHJlY29yZCBmdW5jdGlvbi1jYWxs LWhpc3Rvcnktc2l6ZSAwIgotKwotKyMgdHJhY2UgZm9vCi0rZ2RiX3Rlc3QgInN0ZXAiICIuKiIg InByZXBhcmUgZm9yIHJlY29yZGluZyIKLStnZGJfdGVzdF9ub19vdXRwdXQgInJlY29yZCBidHJh Y2UiCi0rZ2RiX3Rlc3QgInN0ZXBpIDQiICIuKiIgInJlY29yZCBicmFuY2ggdHJhY2UiCi0rCi0r IyBmb3IgZGVidWdnaW5nCi0rZ2RiX3Rlc3QgImluZm8gcmVjb3JkIiAiLioiCi0rCi0rIyBzaG93 IHRoZSBicmFuY2ggdHJhY2Ugd2l0aCBjYWxscyBpbmRlbnRlZAotK2dkYl90ZXN0ICJyZWNvcmQg ZnVuY3Rpb24tY2FsbC1oaXN0b3J5IC9jIDEiIFttdWx0aV9saW5lIFwKLSsgICIxXHRmb28iIFwK LSsgICIyXHQgIGZvb18xIiBcCi0rICAiM1x0ICAgIGJhciIgXAotKyAgIjRcdCAgICAgIGJhcl8x IgotKyAgXSAiZnVuY3Rpb24tY2FsbC1oaXN0b3J5IgotKwotKyMgV2UgY2FuIHN0ZXAKLStnZGJf dGVzdCAicmVjb3JkIGdvdG8gYmVnaW4iICIuKmZvby4qIgotK2dkYl90ZXN0ICJzdGVwaSIgIi4q Zm9vXzEuKiIgInN0ZXAgaW50byBmb29fMSIKLStnZGJfdGVzdCAic3RlcCIgIi4qYmFyLioiICJz dGVwIGludG8gYmFyIgotK2dkYl90ZXN0ICJzdGVwaSIgIi4qYmFyXzEuKiIgInN0ZXAgaW50byBi YXJfMSIKLSsKLSsjIFdlIGNhbiBuZWl0aGVyIGZpbmlzaCBub3IgcmV0dXJuLgotK2dkYl90ZXN0 ICJmaW5pc2giICJDYW5ub3QgZmluZCB0aGUgY2FsbGVyIGZyYW1lLioiCi0rZ2RiX3Rlc3RfbXVs dGlwbGUgInJldHVybiIgInJldHVybiIgewotKyAgLXJlICJNYWtlIC4qIHJldHVybiBub3cuKnkg b3Igbi4gJCIgewotKyAgICBzZW5kX2dkYiAieVxuIgotKyAgICBleHBfY29udGludWUKLSsgIH0K LSsgIC1yZSAiQ2Fubm90IGZpbmQgdGhlIGNhbGxlciBmcmFtZS4qJGdkYl9wcm9tcHQgJCIgewot KyAgICBwYXNzICJyZXR1cm4iCi0rICB9Ci0rfQotKwotKyMgQnV0IHdlIGNhbiByZXZlcnNlLWZp bmlzaAotK2dkYl90ZXN0ICJyZXZlcnNlLWZpbmlzaCIgIi4qYmFyLioiCi0rZ2RiX3Rlc3QgInJl dmVyc2Utc3RlcCIgIi4qZm9vXzEuKiIKLSsKLSsjIEluZm8gZnJhbWUgaXNuJ3QgdXNlZnVsIGJ1 dCBkb2Vzbid0IGNyYXNoIGFzIGl0IHVzZWQgdG8uCi0rZ2RiX3Rlc3QgInVwIiAiLipmb28uKiIK LStnZGJfdGVzdCAiaW5mbyBmcmFtZSIgIi4qIgotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYnRyYWNlL3g4Nl82NC10YWlsY2FsbC1vbmx5LlMKLUBAIC0wLDAgKzEsNDQ2 IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4K LSsKLSsgICBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsK LSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m Ci0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsKLSsgICBUaGlzIGZp bGUgaGFzIGJlZW4gZ2VuZXJhdGVkIHVzaW5nOgotKyAgIGdjYyAtUyAtTzIgLWRBIC1nIHRhaWxj YWxsLW9ubHkuYyAtbyB4ODZfNjQtdGFpbGNhbGwtb25seS5TICAqLwotKwotKwkuZmlsZQkidGFp bGNhbGwtb25seS5jIgotKwkudGV4dAotKy5MdGV4dDA6Ci0rCS5wMmFsaWduIDQsLDE1Ci0rCS50 eXBlCWJhcl8xLCBAZnVuY3Rpb24KLStiYXJfMToKLSsuTEZCMDoKLSsJLmZpbGUgMSAidGFpbGNh bGwtb25seS5jIgotKwkjIHRhaWxjYWxsLW9ubHkuYzoyMgotKwkubG9jIDEgMjIgMAotKwkuY2Zp X3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBmcmVxOjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBb MTAwLjAlXSAgKEZBTExUSFJVKQotKwkjIHRhaWxjYWxsLW9ubHkuYzoyNAotKwkubG9jIDEgMjQg MAotKwltb3ZsCSQ0MiwgJWVheAotKyMgU1VDQzogRVhJVCBbMTAwLjAlXQotKwlyZXQKLSsJLmNm aV9lbmRwcm9jCi0rLkxGRTA6Ci0rCS5zaXplCWJhcl8xLCAuLWJhcl8xCi0rCS5wMmFsaWduIDQs LDE1Ci0rCS50eXBlCWJhciwgQGZ1bmN0aW9uCi0rYmFyOgotKy5MRkIxOgotKwkjIHRhaWxjYWxs LW9ubHkuYzoyOAotKwkubG9jIDEgMjggMAotKwkuY2ZpX3N0YXJ0cHJvYwotKyMgQkxPQ0sgMiBm cmVxOjEwMDAwIHNlcTowCi0rIyBQUkVEOiBFTlRSWSBbMTAwLjAlXSAgKEZBTExUSFJVKQotKwkj IHRhaWxjYWxsLW9ubHkuYzoyOQotKwkubG9jIDEgMjkgMAotKwlqbXAJYmFyXzEKLSsjIFNVQ0M6 IEVYSVQgWzEwMC4wJV0gIChBQk5PUk1BTCxTSUJDQUxMKQotKy5MVkwwOgotKwkuY2ZpX2VuZHBy b2MKLSsuTEZFMToKLSsJLnNpemUJYmFyLCAuLWJhcgotKwkucDJhbGlnbiA0LCwxNQotKwkudHlw ZQlmb29fMSwgQGZ1bmN0aW9uCi0rZm9vXzE6Ci0rLkxGQjI6Ci0rCSMgdGFpbGNhbGwtb25seS5j OjM0Ci0rCS5sb2MgMSAzNCAwCi0rCS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAw MDAgc2VxOjAKLSsjIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCSMgdGFpbGNh bGwtb25seS5jOjM1Ci0rCS5sb2MgMSAzNSAwCi0rCWptcAliYXIKLSsjIFNVQ0M6IEVYSVQgWzEw MC4wJV0gIChBQk5PUk1BTCxTSUJDQUxMKQotKy5MVkwxOgotKwkuY2ZpX2VuZHByb2MKLSsuTEZF MjoKLSsJLnNpemUJZm9vXzEsIC4tZm9vXzEKLSsJLnAyYWxpZ24gNCwsMTUKLSsJLnR5cGUJZm9v LCBAZnVuY3Rpb24KLStmb286Ci0rLkxGQjM6Ci0rCSMgdGFpbGNhbGwtb25seS5jOjQwCi0rCS5s b2MgMSA0MCAwCi0rCS5jZmlfc3RhcnRwcm9jCi0rIyBCTE9DSyAyIGZyZXE6MTAwMDAgc2VxOjAK LSsjIFBSRUQ6IEVOVFJZIFsxMDAuMCVdICAoRkFMTFRIUlUpCi0rCSMgdGFpbGNhbGwtb25seS5j OjQxCi0rCS5sb2MgMSA0MSAwCi0rCWptcAlmb29fMQotKyMgU1VDQzogRVhJVCBbMTAwLjAlXSAg KEFCTk9STUFMLFNJQkNBTEwpCi0rLkxWTDI6Ci0rCS5jZmlfZW5kcHJvYwotKy5MRkUzOgotKwku c2l6ZQlmb28sIC4tZm9vCi0rCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAsImF4IixAcHJvZ2JpdHMK LSsJLnAyYWxpZ24gNCwsMTUKLSsJLmdsb2JsCW1haW4KLSsJLnR5cGUJbWFpbiwgQGZ1bmN0aW9u Ci0rbWFpbjoKLSsuTEZCNDoKLSsJIyB0YWlsY2FsbC1vbmx5LmM6NDYKLSsJLmxvYyAxIDQ2IDAK LSsJLmNmaV9zdGFydHByb2MKLSsjIEJMT0NLIDIgZnJlcToxMDAwMCBzZXE6MAotKyMgUFJFRDog RU5UUlkgWzEwMC4wJV0gIChGQUxMVEhSVSkKLSsJIyB0YWlsY2FsbC1vbmx5LmM6NDkKLSsJLmxv YyAxIDQ5IDAKLSsJY2FsbAlmb28KLSsuTFZMMzoKLSsJIyB0YWlsY2FsbC1vbmx5LmM6NTAKLSsJ LmxvYyAxIDUwIDAKLSsJYWRkbAkkMSwgJWVheAotKy5MVkw0OgotKyMgU1VDQzogRVhJVCBbMTAw LjAlXQotKwkjIHRhaWxjYWxsLW9ubHkuYzo1MwotKwkubG9jIDEgNTMgMAotKwlyZXQKLSsJLmNm aV9lbmRwcm9jCi0rLkxGRTQ6Ci0rCS5zaXplCW1haW4sIC4tbWFpbgotKwkudGV4dAotKy5MZXRl eHQwOgotKwkuc2VjdGlvbgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2luZm8w OgotKwkubG9uZwkweDExMQkjIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KLSsJLnZh bHVlCTB4NAkjIERXQVJGIHZlcnNpb24gbnVtYmVyCi0rCS5sb25nCS5MZGVidWdfYWJicmV2MAkj IE9mZnNldCBJbnRvIEFiYnJldi4gU2VjdGlvbgotKwkuYnl0ZQkweDgJIyBQb2ludGVyIFNpemUg KGluIGJ5dGVzKQotKwkudWxlYjEyOCAweDEJIyAoRElFICgweGIpIERXX1RBR19jb21waWxlX3Vu aXQpCi0rCS5sb25nCS5MQVNGMQkjIERXX0FUX3Byb2R1Y2VyOiAiR05VIEMgNC44LjMgMjAxNDA5 MTEgKFJlZCBIYXQgNC44LjMtOSkgLW10dW5lPWdlbmVyaWMgLW1hcmNoPXg4Ni02NCAtZyAtTzIi Ci0rCS5ieXRlCTB4MQkjIERXX0FUX2xhbmd1YWdlCi0rCS5sb25nCS5MQVNGMgkjIERXX0FUX25h bWU6ICJ0YWlsY2FsbC1vbmx5LmMiCi0rCS5sb25nCS5MQVNGMwkjIERXX0FUX2NvbXBfZGlyOiAi IgotKwkubG9uZwkuTGRlYnVnX3JhbmdlczArMAkjIERXX0FUX3JhbmdlcwotKwkucXVhZAkwCSMg RFdfQVRfbG93X3BjCi0rCS5sb25nCS5MZGVidWdfbGluZTAJIyBEV19BVF9zdG10X2xpc3QKLSsJ LnVsZWIxMjggMHgyCSMgKERJRSAoMHgyOSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5M QVNGNAkjIERXX0FUX25hbWU6ICJiYXJfMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl ICh0YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MTUJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkj IERXX0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJMHg0NgkjIERXX0FUX3R5cGUKLSsJLnF1YWQJLkxG QjAJIyBEV19BVF9sb3dfcGMKLSsJLnF1YWQJLkxGRTAtLkxGQjAJIyBEV19BVF9oaWdoX3BjCi0r CS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2Nh bGxfZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLnVsZWIxMjgg MHgzCSMgKERJRSAoMHg0NikgRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMHg0CSMgRFdfQVRf Ynl0ZV9zaXplCi0rCS5ieXRlCTB4NQkjIERXX0FUX2VuY29kaW5nCi0rCS5hc2NpaSAiaW50XDAi CSMgRFdfQVRfbmFtZQotKwkudWxlYjEyOCAweDQJIyAoRElFICgweDRkKSBEV19UQUdfc3VicHJv Z3JhbSkKLSsJLmFzY2lpICJiYXJcMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDFiCSMgRFdfQVRfZGVjbF9s aW5lCi0rCQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4NDYJIyBEV19BVF90eXBlCi0r CS5xdWFkCS5MRkIxCSMgRFdfQVRfbG93X3BjCi0rCS5xdWFkCS5MRkUxLS5MRkIxCSMgRFdfQVRf aGlnaF9wYwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0rCS5ieXRlCTB4OWMJ IyBEV19PUF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzCi0r CS5sb25nCTB4N2MJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkjIChESUUgKDB4NmUp IERXX1RBR19HTlVfY2FsbF9zaXRlKQotKwkucXVhZAkuTFZMMAkjIERXX0FUX2xvd19wYwotKwkJ CSMgRFdfQVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDI5CSMgRFdfQVRfYWJzdHJhY3Rfb3Jp Z2luCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NGQKLSsJLnVsZWIxMjgg MHg2CSMgKERJRSAoMHg3YykgRFdfVEFHX3N1YnByb2dyYW0pCi0rCS5sb25nCS5MQVNGMAkjIERX X0FUX25hbWU6ICJmb29fMSIKLSsJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2Fs bC1vbmx5LmMpCi0rCS5ieXRlCTB4MjEJIyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3By b3RvdHlwZWQKLSsJLmxvbmcJMHg0NgkjIERXX0FUX3R5cGUKLSsJLnF1YWQJLkxGQjIJIyBEV19B VF9sb3dfcGMKLSsJLnF1YWQJLkxGRTItLkxGQjIJIyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4 IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UKLSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVf Y2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMKLSsJLmxvbmcJMHhhYgkjIERXX0FU X3NpYmxpbmcKLSsJLnVsZWIxMjggMHg1CSMgKERJRSAoMHg5ZCkgRFdfVEFHX0dOVV9jYWxsX3Np dGUpCi0rCS5xdWFkCS5MVkwxCSMgRFdfQVRfbG93X3BjCi0rCQkJIyBEV19BVF9HTlVfdGFpbF9j YWxsCi0rCS5sb25nCTB4NGQJIyBEV19BVF9hYnN0cmFjdF9vcmlnaW4KLSsJLmJ5dGUJMAkjIGVu ZCBvZiBjaGlsZHJlbiBvZiBESUUgMHg3YwotKwkudWxlYjEyOCAweDQJIyAoRElFICgweGFiKSBE V19UQUdfc3VicHJvZ3JhbSkKLSsJLmFzY2lpICJmb29cMCIJIyBEV19BVF9uYW1lCi0rCS5ieXRl CTB4MQkjIERXX0FUX2RlY2xfZmlsZSAodGFpbGNhbGwtb25seS5jKQotKwkuYnl0ZQkweDI3CSMg RFdfQVRfZGVjbF9saW5lCi0rCQkJIyBEV19BVF9wcm90b3R5cGVkCi0rCS5sb25nCTB4NDYJIyBE V19BVF90eXBlCi0rCS5xdWFkCS5MRkIzCSMgRFdfQVRfbG93X3BjCi0rCS5xdWFkCS5MRkUzLS5M RkIzCSMgRFdfQVRfaGlnaF9wYwotKwkudWxlYjEyOCAweDEJIyBEV19BVF9mcmFtZV9iYXNlCi0r CS5ieXRlCTB4OWMJIyBEV19PUF9jYWxsX2ZyYW1lX2NmYQotKwkJCSMgRFdfQVRfR05VX2FsbF9j YWxsX3NpdGVzCi0rCS5sb25nCTB4ZGEJIyBEV19BVF9zaWJsaW5nCi0rCS51bGViMTI4IDB4NQkj IChESUUgKDB4Y2MpIERXX1RBR19HTlVfY2FsbF9zaXRlKQotKwkucXVhZAkuTFZMMgkjIERXX0FU X2xvd19wYwotKwkJCSMgRFdfQVRfR05VX3RhaWxfY2FsbAotKwkubG9uZwkweDdjCSMgRFdfQVRf YWJzdHJhY3Rfb3JpZ2luCi0rCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YWIK LSsJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhkYSkgRFdfVEFHX3N1YnByb2dyYW0pCi0rCQkJIyBE V19BVF9leHRlcm5hbAotKwkubG9uZwkuTEFTRjUJIyBEV19BVF9uYW1lOiAibWFpbiIKLSsJLmJ5 dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlICh0YWlsY2FsbC1vbmx5LmMpCi0rCS5ieXRlCTB4MmQJ IyBEV19BVF9kZWNsX2xpbmUKLSsJCQkjIERXX0FUX3Byb3RvdHlwZWQKLSsJLmxvbmcJMHg0Ngkj IERXX0FUX3R5cGUKLSsJLnF1YWQJLkxGQjQJIyBEV19BVF9sb3dfcGMKLSsJLnF1YWQJLkxGRTQt LkxGQjQJIyBEV19BVF9oaWdoX3BjCi0rCS51bGViMTI4IDB4MQkjIERXX0FUX2ZyYW1lX2Jhc2UK LSsJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCi0rCQkJIyBEV19BVF9HTlVfYWxs X2NhbGxfc2l0ZXMKLSsJLnVsZWIxMjggMHg4CSMgKERJRSAoMHhmNykgRFdfVEFHX3ZhcmlhYmxl KQotKwkubG9uZwkuTEFTRjYJIyBEV19BVF9uYW1lOiAiYW5zd2VyIgotKwkuYnl0ZQkweDEJIyBE V19BVF9kZWNsX2ZpbGUgKHRhaWxjYWxsLW9ubHkuYykKLSsJLmJ5dGUJMHgyZgkjIERXX0FUX2Rl Y2xfbGluZQotKwkubG9uZwkweDQ2CSMgRFdfQVRfdHlwZQotKwkubG9uZwkuTExTVDAJIyBEV19B VF9sb2NhdGlvbgotKwkudWxlYjEyOCAweDkJIyAoRElFICgweDEwNikgRFdfVEFHX0dOVV9jYWxs X3NpdGUpCi0rCS5xdWFkCS5MVkwzCSMgRFdfQVRfbG93X3BjCi0rCS5sb25nCTB4YWIJIyBEV19B VF9hYnN0cmFjdF9vcmlnaW4KLSsJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhk YQotKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGIKLSsJLnNlY3Rpb24JLmRl YnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2FiYnJldjA6Ci0rCS51bGViMTI4IDB4 MQkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgxMQkjIChUQUc6IERXX1RBR19jb21waWxl X3VuaXQpCi0rCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcwotKwkudWxlYjEyOCAweDI1CSMg KERXX0FUX3Byb2R1Y2VyKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxl YjEyOCAweDEzCSMgKERXX0FUX2xhbmd1YWdlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4ZQkjIChE V19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCi0rCS51bGVi MTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4NTUJIyAoRFdfQVRfcmFuZ2Vz KQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZPUk1fc2VjX29mZnNldCkKLSsJLnVsZWIxMjggMHgx MQkjIChEV19BVF9sb3dfcGMpCi0rCS51bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51 bGViMTI4IDB4MTAJIyAoRFdfQVRfc3RtdF9saXN0KQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZP Uk1fc2VjX29mZnNldCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4MgkjIChh YmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQot KwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUp Ci0rCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdf QVRfZGVjbF9maWxlKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIx MjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2Rh dGExKQotKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCi0rCS51bGViMTI4IDB4 MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlw ZSkKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS51bGViMTI4IDB4MTEJIyAo RFdfQVRfbG93X3BjKQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEy OCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4 KQotKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGViMTI4IDB4MTgJ IyAoRFdfRk9STV9leHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05VX2FsbF9j YWxsX3NpdGVzKQotKwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwku Ynl0ZQkwCi0rCS5ieXRlCTAKLSsJLnVsZWIxMjggMHgzCSMgKGFiYnJldiBjb2RlKQotKwkudWxl YjEyOCAweDI0CSMgKFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKLSsJLmJ5dGUJMAkjIERXX2NoaWxk cmVuX25vCi0rCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCi0rCS51bGViMTI4IDB4 YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQot KwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FU X25hbWUpCi0rCS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmluZykKLSsJLmJ5dGUJMAotKwku Ynl0ZQkwCi0rCS51bGViMTI4IDB4NAkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHgyZQkj IChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMK LSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4IDB4OAkjIChEV19GT1JN X3N0cmluZykKLSsJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCi0rCS51bGViMTI4 IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGlu ZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4MjcJIyAo RFdfQVRfcHJvdG90eXBlZCkKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2Vu dCkKLSsJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERX X0ZPUk1fcmVmNCkKLSsJLnVsZWIxMjggMHgxMQkjIChEV19BVF9sb3dfcGMpCi0rCS51bGViMTI4 IDB4MQkjIChEV19GT1JNX2FkZHIpCi0rCS51bGViMTI4IDB4MTIJIyAoRFdfQVRfaGlnaF9wYykK LSsJLnVsZWIxMjggMHg3CSMgKERXX0ZPUk1fZGF0YTgpCi0rCS51bGViMTI4IDB4NDAJIyAoRFdf QVRfZnJhbWVfYmFzZSkKLSsJLnVsZWIxMjggMHgxOAkjIChEV19GT1JNX2V4cHJsb2MpCi0rCS51 bGViMTI4IDB4MjExNwkjIChEV19BVF9HTlVfYWxsX2NhbGxfc2l0ZXMpCi0rCS51bGViMTI4IDB4 MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MQkjIChEV19BVF9zaWJs aW5nKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJLmJ5dGUJMAotKwkuYnl0 ZQkwCi0rCS51bGViMTI4IDB4NQkjIChhYmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHg0MTA5CSMg KFRBRzogRFdfVEFHX0dOVV9jYWxsX3NpdGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwot KwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZP Uk1fYWRkcikKLSsJLnVsZWIxMjggMHgyMTE1CSMgKERXX0FUX0dOVV90YWlsX2NhbGwpCi0rCS51 bGViMTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MzEJIyAo RFdfQVRfYWJzdHJhY3Rfb3JpZ2luKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkK LSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4NgkjIChhYmJyZXYgY29kZSkKLSsJ LnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJwcm9ncmFtKQotKwkuYnl0ZQkweDEJIyBE V19jaGlsZHJlbl95ZXMKLSsJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCi0rCS51bGViMTI4 IDB4ZQkjIChEV19GT1JNX3N0cnApCi0rCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxl KQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjggMHgzYgkjIChE V19BVF9kZWNsX2xpbmUpCi0rCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQotKwkudWxl YjEyOCAweDI3CSMgKERXX0FUX3Byb3RvdHlwZWQpCi0rCS51bGViMTI4IDB4MTkJIyAoRFdfRk9S TV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKLSsJLnVsZWIx MjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3Bj KQotKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQotKwkudWxlYjEyOCAweDEyCSMgKERX X0FUX2hpZ2hfcGMpCi0rCS51bGViMTI4IDB4NwkjIChEV19GT1JNX2RhdGE4KQotKwkudWxlYjEy OCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCi0rCS51bGViMTI4IDB4MTgJIyAoRFdfRk9STV9l eHBybG9jKQotKwkudWxlYjEyOCAweDIxMTcJIyAoRFdfQVRfR05VX2FsbF9jYWxsX3NpdGVzKQot KwkudWxlYjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwkudWxlYjEyOCAweDEJ IyAoRFdfQVRfc2libGluZykKLSsJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCi0rCS5i eXRlCTAKLSsJLmJ5dGUJMAotKwkudWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCi0rCS51bGVi MTI4IDB4MmUJIyAoVEFHOiBEV19UQUdfc3VicHJvZ3JhbSkKLSsJLmJ5dGUJMHgxCSMgRFdfY2hp bGRyZW5feWVzCi0rCS51bGViMTI4IDB4M2YJIyAoRFdfQVRfZXh0ZXJuYWwpCi0rCS51bGViMTI4 IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9u YW1lKQotKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDNhCSMg KERXX0FUX2RlY2xfZmlsZSkKLSsJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51 bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9S TV9kYXRhMSkKLSsJLnVsZWIxMjggMHgyNwkjIChEV19BVF9wcm90b3R5cGVkKQotKwkudWxlYjEy OCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQotKwkudWxlYjEyOCAweDQ5CSMgKERXX0FU X3R5cGUpCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQotKwkudWxlYjEyOCAweDEx CSMgKERXX0FUX2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVs ZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQotKwkudWxlYjEyOCAweDcJIyAoRFdfRk9STV9k YXRhOCkKLSsJLnVsZWIxMjggMHg0MAkjIChEV19BVF9mcmFtZV9iYXNlKQotKwkudWxlYjEyOCAw eDE4CSMgKERXX0ZPUk1fZXhwcmxvYykKLSsJLnVsZWIxMjggMHgyMTE3CSMgKERXX0FUX0dOVV9h bGxfY2FsbF9zaXRlcykKLSsJLnVsZWIxMjggMHgxOQkjIChEV19GT1JNX2ZsYWdfcHJlc2VudCkK LSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4OAkjIChhYmJyZXYgY29kZSkKLSsJ LnVsZWIxMjggMHgzNAkjIChUQUc6IERXX1RBR192YXJpYWJsZSkKLSsJLmJ5dGUJMAkjIERXX2No aWxkcmVuX25vCi0rCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQotKwkudWxlYjEyOCAweGUJ IyAoRFdfRk9STV9zdHJwKQotKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKLSsJ LnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCi0rCS51bGViMTI4IDB4M2IJIyAoRFdfQVRf ZGVjbF9saW5lKQotKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKLSsJLnVsZWIxMjgg MHg0OQkjIChEV19BVF90eXBlKQotKwkudWxlYjEyOCAweDEzCSMgKERXX0ZPUk1fcmVmNCkKLSsJ LnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQotKwkudWxlYjEyOCAweDE3CSMgKERXX0ZP Uk1fc2VjX29mZnNldCkKLSsJLmJ5dGUJMAotKwkuYnl0ZQkwCi0rCS51bGViMTI4IDB4OQkjIChh YmJyZXYgY29kZSkKLSsJLnVsZWIxMjggMHg0MTA5CSMgKFRBRzogRFdfVEFHX0dOVV9jYWxsX3Np dGUpCi0rCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubwotKwkudWxlYjEyOCAweDExCSMgKERXX0FU X2xvd19wYykKLSsJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKLSsJLnVsZWIxMjggMHgz MQkjIChEV19BVF9hYnN0cmFjdF9vcmlnaW4pCi0rCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9y ZWY0KQotKwkuYnl0ZQkwCi0rCS5ieXRlCTAKLSsJLmJ5dGUJMAotKwkuc2VjdGlvbgkuZGVidWdf bG9jLCIiLEBwcm9nYml0cwotKy5MZGVidWdfbG9jMDoKLSsuTExTVDA6Ci0rCS5xdWFkCS5MVkwz CSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QwKQotKwkucXVhZAkuTFZMNAkj IExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDApCi0rCS52YWx1ZQkweDMJIyBMb2Nh dGlvbiBleHByZXNzaW9uIHNpemUKLSsJLmJ5dGUJMHg3MAkjIERXX09QX2JyZWcwCi0rCS5zbGVi MTI4IDEKLSsJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCi0rCS5xdWFkCS5MVkw0CSMg TG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QwKQotKwkucXVhZAkuTEZFNAkjIExv Y2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDApCi0rCS52YWx1ZQkweDEJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKLSsJLmJ5dGUJMHg1MAkjIERXX09QX3JlZzAKLSsJLnF1YWQJMAkj IExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMCkKLSsJLnF1YWQJMAkjIExv Y2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDApCi0rCS5zZWN0aW9uCS5kZWJ1Z19h cmFuZ2VzLCIiLEBwcm9nYml0cwotKwkubG9uZwkweDNjCSMgTGVuZ3RoIG9mIEFkZHJlc3MgUmFu Z2VzIEluZm8KLSsJLnZhbHVlCTB4MgkjIERXQVJGIFZlcnNpb24KLSsJLmxvbmcJLkxkZWJ1Z19p bmZvMAkjIE9mZnNldCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KLSsJLmJ5dGUJMHg4CSMgU2l6 ZSBvZiBBZGRyZXNzCi0rCS5ieXRlCTAJIyBTaXplIG9mIFNlZ21lbnQgRGVzY3JpcHRvcgotKwku dmFsdWUJMAkjIFBhZCB0byAxNiBieXRlIGJvdW5kYXJ5Ci0rCS52YWx1ZQkwCi0rCS5xdWFkCS5M dGV4dDAJIyBBZGRyZXNzCi0rCS5xdWFkCS5MZXRleHQwLS5MdGV4dDAJIyBMZW5ndGgKLSsJLnF1 YWQJLkxGQjQJIyBBZGRyZXNzCi0rCS5xdWFkCS5MRkU0LS5MRkI0CSMgTGVuZ3RoCi0rCS5xdWFk CTAKLSsJLnF1YWQJMAotKwkuc2VjdGlvbgkuZGVidWdfcmFuZ2VzLCIiLEBwcm9nYml0cwotKy5M ZGVidWdfcmFuZ2VzMDoKLSsJLnF1YWQJLkx0ZXh0MAkjIE9mZnNldCAwCi0rCS5xdWFkCS5MZXRl eHQwCi0rCS5xdWFkCS5MRkI0CSMgT2Zmc2V0IDB4MTAKLSsJLnF1YWQJLkxGRTQKLSsJLnF1YWQJ MAotKwkucXVhZAkwCi0rCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cwotKy5MZGVi dWdfbGluZTA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQotKy5MQVNG NDoKLSsJLnN0cmluZwkiYmFyXzEiCi0rLkxBU0YyOgotKwkuc3RyaW5nCSJ0YWlsY2FsbC1vbmx5 LmMiCi0rLkxBU0YxOgotKwkuc3RyaW5nCSJHTlUgQyA0LjguMyAyMDE0MDkxMSAoUmVkIEhhdCA0 LjguMy05KSAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nIC1PMiIKLSsuTEFTRjY6Ci0r CS5zdHJpbmcJImFuc3dlciIKLSsuTEFTRjU6Ci0rCS5zdHJpbmcJIm1haW4iCi0rLkxBU0YzOgot Kwkuc3RyaW5nCSIiCi0rLkxBU0YwOgotKwkuc3RyaW5nCSJmb29fMSIKLSsJLmlkZW50CSJHQ0M6 IChHTlUpIDQuOC4zIDIwMTQwOTExIChSZWQgSGF0IDQuOC4zLTkpIgotKwkuc2VjdGlvbgkubm90 ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi0KLQotCi1jb21taXQgY2Q2NGNhYmI4YzY2YTU1NjVm YzMzYmY2NmEwN2MwOGJjNzY3ZTQxMwotQXV0aG9yOiBZaWNoYW8gWXUgPHl5YzE5OTJAZ21haWwu Y29tPgotRGF0ZTogICBUaHUgTWFyIDMxIDE5OjI4OjQ3IDIwMTYgKzAxMDAKLQotICAgIEZpeCBQ UiBnZGIvMTk4NTg6IEdEQiBkb2Vzbid0IHJlZ2lzdGVyIHRoZSBKSVQgbGlicmFyaWVzIG9uIGF0 dGFjaAotICAgIAotICAgIFJlZjogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIvMjAxNi0w My9tc2cwMDAyMy5odG1sCi0gICAgCi0gICAgR0RCIGN1cnJlbnRseSBmYWlscyB0byBmZXRjaCB0 aGUgbGlzdCBvZiBhbHJlYWR5LXJlZ2lzdGVyZWQgSklUCi0gICAgbW9kdWxlcyBvbiBhdHRhY2gu Ci0gICAgCi0gICAgTm90aGluZyBpcyBjYWxsaW5nIGppdF9pbmZlcmlvcl9pbml0LCB3aGljaCBp cyB3aGF0IGlzIHJlc3BvbnNpYmxlIGZvcgotICAgIHdhbGtpbmcgdGhlIEpJVCBvYmplY3QgbGlz dCBhdCBpbml0IHRpbWUuCi0gICAgCi0gICAgRGVzcGl0ZSB0aGUgbWlzbGVhZGluZyBuYW1pbmcs IGppdF9pbmZlcmlvcl9jcmVhdGVkX2hvb2sgLT4KLSAgICBqaXRfaW5mZXJpb3JfaW5pdCBpcyBv bmx5IGNhbGxlZCB3aGVuIHRoZSBpbmZlcmlvciBleGVjcy4KLSAgICAKLSAgICBUaGlzIHJlZ3Jl c3NlZCB3aXRoIHRoZSBmaXggZm9yIFBSIGdkYi8xMzQzMSAoMDNiZWYyODNjMmQzKToKLSAgICAg aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEyLTAyL21zZzAwMDIzLmh0 bWwgd2hpY2gKLSAgICByZW1vdmVkIHRoZSBpbmZlcmlvcl9jcmVhdGVkIChqaXRfaW5mZXJpb3Jf Y3JlYXRlZF9vYnNlcnZlcikKLSAgICBvYnNlcnZlci4KLSAgICAKLSAgICBBZGRpbmcgYW4gaW5m ZXJpb3JfY3JlYXRlZCBvYnNlcnZlciBiYWNrIGZpeGVzIHRoZSBpc3N1ZS4KLSAgICAKLSAgICBJ biB0dXJuLCB0aGlzIGV4cG9zZXMgYSBidWcgaW4gaml0X2JyZWFrcG9pbnRfcmVfc2V0X2ludGVy bmFsIGFzIHdlbGwsCi0gICAgd2hpY2ggaXMgcmV0dXJuaW5nIHRoZSB3cm9uZyByZXN1bHQgd2hl biB3ZSBhbHJlYWR5IGhhdmUgdGhlCi0gICAgYnJlYWtwb2ludCBhdCB0aGUgcmlnaHQgYWRkcmVz cy4KLSAgICAKLSAgICBnZGIvQ2hhbmdlTG9nOgotICAgIDIwMTYtMDMtMzEgIFlpY2hhbyBZdSAg PHl5YzE5OTJAZ21haWwuY29tPgotICAgIAotICAgIAlQUiBnZGIvMTk4NTgKLSAgICAJKiBqaXQu YyAoaml0X2JyZWFrcG9pbnRfcmVfc2V0X2ludGVybmFsKTogUmV0dXJuIDAgaWYgd2UgYWxyZWFk eQotICAgIAlnb3QgdGhlIGJyZWFrcG9pbnQgYXQgdGhlIHJpZ2h0IGFkZHJlc3MuCi0gICAgCShq aXRfaW5mZXJpb3JfY3JlYXRlZCk6IE5ldyBmdW5jdGlvbi4KLSAgICAJKF9pbml0aWFsaXplX2pp dCk6IEluc3RhbGwgaml0X2luZmVyaW9yX2NyZWF0ZWQgYXMKLSAgICAJaW5mZXJpb3JfY3JlYXRl ZCBvYnNlcnZlci4KLSAgICAKLSAgICBTaWduZWQtb2ZmLWJ5OiBQZWRybyBBbHZlcyA8cGFsdmVz QHJlZGhhdC5jb20+Ci0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cK LSMjIC0xLDMgKzEsMTIgQEAKLSsyMDE2LTAzLTMxICBZaWNoYW8gWXUgIDx5eWMxOTkyQGdtYWls LmNvbT4KLSsKLSsJUFIgZ2RiLzE5ODU4Ci0rCSogaml0LmMgKGppdF9icmVha3BvaW50X3JlX3Nl dF9pbnRlcm5hbCk6IFJldHVybiAwIGlmIHdlIGFscmVhZHkKLSsJZ290IHRoZSBicmVha3BvaW50 IGF0IHRoZSByaWdodCBhZGRyZXNzLgotKwkoaml0X2luZmVyaW9yX2NyZWF0ZWQpOiBOZXcgZnVu Y3Rpb24uCi0rCShfaW5pdGlhbGl6ZV9qaXQpOiBJbnN0YWxsIGppdF9pbmZlcmlvcl9jcmVhdGVk IGFzCi0rCWluZmVyaW9yX2NyZWF0ZWQgb2JzZXJ2ZXIuCi0rCi0gMjAxNi0wMy0xNyAgTWFya3Vz IE1ldHpnZXIgIDxtYXJrdXMudC5tZXR6Z2VyQGludGVsLmNvbT4KLSAKLSAJUFIgZ2RiLzE5ODI5 Ci0tLS0gYS9nZGIvaml0LmMKLSsrKyBiL2dkYi9qaXQuYwotQEAgLTEwMjYsNyArMTAyNiw3IEBA IGppdF9icmVha3BvaW50X2RlbGV0ZWQgKHN0cnVjdCBicmVha3BvaW50ICpiKQotIH0KLSAKLSAv KiAoUmUtKUluaXRpYWxpemUgdGhlIGppdCBicmVha3BvaW50IGlmIG5lY2Vzc2FyeS4KLS0gICBS ZXR1cm4gMCBvbiBzdWNjZXNzLiAgKi8KLSsgICBSZXR1cm4gMCBpZiB0aGUgaml0IGJyZWFrcG9p bnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLiAgKi8KLSAKLSBzdGF0aWMgaW50 Ci0gaml0X2JyZWFrcG9pbnRfcmVfc2V0X2ludGVybmFsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwKLUBAIC0xMDcwLDcgKzEwNzAsNyBAQCBqaXRfYnJlYWtwb2ludF9yZV9zZXRfaW50ZXJuYWwg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotIAkJCXBhZGRyZXNzIChnZGJhcmNoLCBhZGRyKSk7 Ci0gCi0gICBpZiAocHNfZGF0YS0+Y2FjaGVkX2NvZGVfYWRkcmVzcyA9PSBhZGRyKQotLSAgICBy ZXR1cm4gMTsKLSsgICAgcmV0dXJuIDA7Ci0gCi0gICAvKiBEZWxldGUgdGhlIG9sZCBicmVha3Bv aW50LiAgKi8KLSAgIGlmIChwc19kYXRhLT5qaXRfYnJlYWtwb2ludCAhPSBOVUxMKQotQEAgLTEz NjcsNiArMTM2NywxNCBAQCBqaXRfaW5mZXJpb3JfaW5pdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gpCi0gICAgIH0KLSB9Ci0gCi0rLyogaW5mZXJpb3JfY3JlYXRlZCBvYnNlcnZlci4gICovCi0r Ci0rc3RhdGljIHZvaWQKLStqaXRfaW5mZXJpb3JfY3JlYXRlZCAoc3RydWN0IHRhcmdldF9vcHMg Km9wcywgaW50IGZyb21fdHR5KQotK3sKLSsgIGppdF9pbmZlcmlvcl9jcmVhdGVkX2hvb2sgKCk7 Ci0rfQotKwotIC8qIEV4cG9ydGVkIHJvdXRpbmUgdG8gY2FsbCB3aGVuIGFuIGluZmVyaW9yIGhh cyBiZWVuIGNyZWF0ZWQuICAqLwotIAotIHZvaWQKLUBAIC0xNDk2LDYgKzE1MDQsNyBAQCBfaW5p dGlhbGl6ZV9qaXQgKHZvaWQpCi0gCQkJICAgICBzaG93X2ppdF9kZWJ1ZywKLSAJCQkgICAgICZz ZXRkZWJ1Z2xpc3QsICZzaG93ZGVidWdsaXN0KTsKLSAKLSsgIG9ic2VydmVyX2F0dGFjaF9pbmZl cmlvcl9jcmVhdGVkIChqaXRfaW5mZXJpb3JfY3JlYXRlZCk7Ci0gICBvYnNlcnZlcl9hdHRhY2hf aW5mZXJpb3JfZXhpdCAoaml0X2luZmVyaW9yX2V4aXRfaG9vayk7Ci0gICBvYnNlcnZlcl9hdHRh Y2hfYnJlYWtwb2ludF9kZWxldGVkIChqaXRfYnJlYWtwb2ludF9kZWxldGVkKTsKLSAKLQotCi0K LWNvbW1pdCA4OWRmNWQ2Y2NlMGU5MWM0YjM0YzdhNjJiYTRhNjg3NTZhOGVkNGU3Ci1BdXRob3I6 IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6ICAgVGh1IE1hciAzMSAxOToy ODo0NyAyMDE2ICswMTAwCi0KLSAgICBNYWtlIGdkYi5iYXNlL2ppdC5leHAgYmluYXJpZXMgdW5p cXVlCi0gICAgCi0gICAgVGhpcyB0ZXN0Y2FzZSBjb21waWxlcyB0aGUgc2FtZSBwcm9ncmFtIGFu ZCBsaWJyYXJ5IGRpZmZlcmVudGx5Ci0gICAgbXVsdGlwbGUgdGltZXMgdXNpbmcgdGhlIHNhbWUg ZmlsZSBuYW1lcy4gIE1ha2UgdGhlbSB1bmlxdWUsIHRvIG1ha2UKLSAgICBpdCBlYXNpZXIgdG8g ZGVidWcgdGVzdCBwcm9ibGVtcy4KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoK LSAgICAyMDE2LTAzLTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotICAgIAot ICAgIAlQUiBnZGIvMTk4NTgKLSAgICAJKiBnZGIuYmFzZS9qaXQuZXhwIChjb21waWxlX2ppdF90 ZXN0KTogQWRkIGludHJvIGNvbW1lbnQuICBBZGQKLSAgICAJQklOU1VGRklYIHBhcmFtZXRlciwg YW5kIGhhbmRsZSBpdC4KLSAgICAJKHRvcCBsZXZlbCk6IEFkanVzdCBjYWxscyBjb21waWxlX2pp dF90ZXN0LgotCi0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTAgQEAKLSsyMDE2LTAzLTMxICBQZWRybyBBbHZl cyAgPHBhbHZlc0ByZWRoYXQuY29tPgotKwotKwlQUiBnZGIvMTk4NTgKLSsJKiBnZGIuYmFzZS9q aXQuZXhwIChjb21waWxlX2ppdF90ZXN0KTogQWRkIGludHJvIGNvbW1lbnQuICBBZGQKLSsJQklO U1VGRklYIHBhcmFtZXRlciwgYW5kIGhhbmRsZSBpdC4KLSsJKHRvcCBsZXZlbCk6IEFkanVzdCBj YWxscyBjb21waWxlX2ppdF90ZXN0LgotKwotIDIwMTYtMDMtMTcgIE1hcmt1cyBNZXR6Z2VyICA8 bWFya3VzLnQubWV0emdlckBpbnRlbC5jb20+Ci0gCi0gCVBSIGdkYi8xOTgyOQotLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ppdC5leHAKLUBAIC0yNCwxOCArMjQsMTkgQEAgaWYge1tnZXRfY29tcGlsZXJfaW5mb119IHsK LSAgICAgcmV0dXJuIDEKLSB9Ci0gCi0tIwotLSMgdGVzdCBydW5uaW5nIHByb2dyYW1zCi0tIwot KyMgQ29tcGlsZSB0aGUgdGVzdGNhc2UgcHJvZ3JhbSBhbmQgbGlicmFyeS4gIEJJTlNVRkZJWCBp cyB0aGUgc3VmZml4Ci0rIyB0byBhcHBlbmQgdG8gdGhlIHByb2dyYW0gYW5kIGxpYnJhcnkgZmls ZW5hbWVzLCB0byBtYWtlIHRoZW0gdW5pcXVlCi0rIyBiZXR3ZWVuIGludm9jYXRpb25zLiAgT1BU SU9OUyBpcyBwYXNzZWQgdG8gZ2RiX2NvbXBpbGUgd2hlbgotKyMgY29tcGlsaW5nIHRoZSBwcm9n cmFtLgotIAotLXByb2MgY29tcGlsZV9qaXRfdGVzdCB7dGVzdG5hbWUgb3B0aW9uc30gewotK3By b2MgY29tcGlsZV9qaXRfdGVzdCB7dGVzdG5hbWUgYmluc3VmZml4IG9wdGlvbnN9IHsKLSAgICAg Z2xvYmFsIHRlc3RmaWxlIHNyY2ZpbGUgYmluZmlsZSBzcmNkaXIgc3ViZGlyCi0gICAgIGdsb2Jh bCBzb2xpYl90ZXN0ZmlsZSBzb2xpYl9zcmNmaWxlIHNvbGliX2JpbmZpbGUgc29saWJfYmluZmls ZV90ZXN0X21zZwotICAgICBnbG9iYWwgc29saWJfYmluZmlsZV90YXJnZXQKLSAKLSAgICAgc2V0 IHRlc3RmaWxlIGppdC1tYWluCi0gICAgIHNldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKLS0gICAg c2V0IGJpbmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR0ZXN0ZmlsZV0KLSsgICAgc2V0IGJp bmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR0ZXN0ZmlsZSRiaW5zdWZmaXhdCi0gICAgIGlm IHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZp bGV9IiBcCi0gCSAgICAgIGV4ZWN1dGFibGUgW2NvbmNhdCBkZWJ1ZyAkb3B0aW9uc11dICE9ICIi IH0gewotIAl1bnRlc3RlZCAkdGVzdG5hbWUKLUBAIC00NCw4ICs0NSw4IEBAIHByb2MgY29tcGls ZV9qaXRfdGVzdCB7dGVzdG5hbWUgb3B0aW9uc30gewotIAotICAgICBzZXQgc29saWJfdGVzdGZp bGUgImppdC1zb2xpYiIKLSAgICAgc2V0IHNvbGliX3NyY2ZpbGUgIiR7c3JjZGlyfS8ke3N1YmRp cn0vJHtzb2xpYl90ZXN0ZmlsZX0uYyIKLS0gICAgc2V0IHNvbGliX2JpbmZpbGUgW3N0YW5kYXJk X291dHB1dF9maWxlICR7c29saWJfdGVzdGZpbGV9LnNvXQotLSAgICBzZXQgc29saWJfYmluZmls ZV90ZXN0X21zZyAiU0hMSUJESVIvJHtzb2xpYl90ZXN0ZmlsZX0uc28iCi0rICAgIHNldCBzb2xp Yl9iaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3NvbGliX3Rlc3RmaWxlfSRiaW5zdWZm aXguc29dCi0rICAgIHNldCBzb2xpYl9iaW5maWxlX3Rlc3RfbXNnICJTSExJQkRJUi8ke3NvbGli X3Rlc3RmaWxlfSRiaW5zdWZmaXguc28iCi0gCi0gICAgICMgTm90ZTogY29tcGlsaW5nIHdpdGhv dXQgZGVidWcgaW5mbzogdGhlIGxpYnJhcnkgZ29lcyB0aHJvdWdoCi0gICAgICMgc3ltYm9sIHJl bmFtaW5nIGJ5IG11bmdpbmcgb24gaXRzIHN5bWJvbCB0YWJsZSwgYW5kIHRoYXQKLUBAIC0xMDks NyArMTEwLDcgQEAgcHJvYyBvbmVfaml0X3Rlc3Qge2NvdW50IG1hdGNoX3N0cn0gewotICAgICB9 Ci0gfQotIAotLWlmIHtbY29tcGlsZV9qaXRfdGVzdCBqaXQuZXhwIHt9XSA8IDB9IHsKLStpZiB7 W2NvbXBpbGVfaml0X3Rlc3Qgaml0LmV4cCAiIiB7fV0gPCAwfSB7Ci0gICAgIHJldHVybgotIH0K LSBvbmVfaml0X3Rlc3QgMSAiJHtoZXh9ICBqaXRfZnVuY3Rpb25fMDAwMCIKLUBAIC0xMTcsNyAr MTE4LDcgQEAgb25lX2ppdF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5c XSske2hleH0gIGppdF9mdW5jdGlvbl8wMDAxIgotIAotIHdpdGhfdGVzdF9wcmVmaXggUElFIHsK LSAgICAgaWYge1tjb21waWxlX2ppdF90ZXN0ICJqaXQuZXhwIFBJRSB0ZXN0cyIgXAotLQkgICAg IHthZGRpdGlvbmFsX2ZsYWdzPS1mUElFIGxkZmxhZ3M9LXBpZX1dIDwgMH0gewotKwkgICAgICIt cGllIiB7YWRkaXRpb25hbF9mbGFncz0tZlBJRSBsZGZsYWdzPS1waWV9XSA8IDB9IHsKLSAJcmV0 dXJuCi0gICAgIH0KLSAKLQotCi0KLWNvbW1pdCA4NWFmMzRlZTAyMTFlZWRmOGQzMGE1YzQ0ZGZj NTlkZGRmOGI1MTJhCi1BdXRob3I6IFBlZHJvIEFsdmVzIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURh dGU6ICAgVGh1IE1hciAzMSAxOToyODo0NyAyMDE2ICswMTAwCi0KLSAgICBBZGQgcmVncmVzc2lv biB0ZXN0IGZvciBQUiBnZGIvMTk4NTggKEpJVCBjb2RlIHJlZ2lzdHJhdGlvbiBvbiBhdHRhY2gp Ci0gICAgCi0gICAgVGhpcyB0ZXN0IHdvdWxkIGZhaWwgd2l0aG91dCB0aGUgcHJldmlvdXMgZ2Ri L2ppdC5jIGZpeDoKLSAgICAKLSAgICAgIChnZGIpIGF0dGFjaCAyMzAzMQotICAgICAgQXR0YWNo aW5nIHRvIHByb2dyYW06IC4uLi9idWlsZC9nZGIvdGVzdHN1aXRlL291dHB1dHMvZ2RiLmJhc2Uv aml0L2ppdC1tYWluLCBwcm9jZXNzIDIzMDMxCi0gICAgICBbLi4uXQotICAgICAgMjA3ICAgICAg ICAgICBXQUlUX0ZPUl9HREI7IGkgPSAwOyAgLyogZ2RiIGJyZWFrIGhlcmUgMSAqLwotICAgICAg KGdkYikgUEFTUzogZ2RiLmJhc2Uvaml0LmV4cDogYXR0YWNoOiBvbmVfaml0X3Rlc3QtMjogYXR0 YWNoCi0gICAgICBzZXQgdmFyIHdhaXRfZm9yX2dkYiA9IDAKLSAgICAgIChnZGIpIFBBU1M6IGdk Yi5iYXNlL2ppdC5leHA6IGF0dGFjaDogb25lX2ppdF90ZXN0LTI6IHNldCB2YXIgd2FpdF9mb3Jf Z2RiID0gMAotICAgICAgaW5mbyBmdW5jdGlvbiBeaml0X2Z1bmN0aW9uCi0gICAgICBBbGwgZnVu Y3Rpb25zIG1hdGNoaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbiAiXmppdF9mdW5jdGlvbiI6Ci0gICAg ICAoZ2RiKSBGQUlMOiBnZGIuYmFzZS9qaXQuZXhwOiBhdHRhY2g6IG9uZV9qaXRfdGVzdC0yOiBp bmZvIGZ1bmN0aW9uIF5qaXRfZnVuY3Rpb24KLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0NoYW5n ZUxvZzoKLSAgICAyMDE2LTAzLTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgot ICAgIAotICAgIAlQUiBnZGIvMTk4NTgKLSAgICAJKiBnZGIuYmFzZS9qaXQtbWFpbi5jOiBJbmNs dWRlIHVuaXN0ZC5oLgotICAgIAkoQVRUQUNIKTogRGVmaW5lIHRvIDAgaWYgbm90IGFscmVhZHkg ZGVmaW5lZC4KLSAgICAJKHdhaXRfZm9yX2dkYiwgbXlwaWQpOiBOZXcgZ2xvYmFscy4KLSAgICAJ KFdBSVRfRk9SX0dEQik6IE5ldyBtYWNyby4KLSAgICAJKE1BSU4pOiBTZXQgYW4gYWxhcm0uICBT dG9yZSB0aGUgcHJvY2VzcydzIHBpZC4gIFdhaXQgZm9yIEdEQiBhdAotICAgIAlzb21lIGJyZWFr cG9pbnQgbG9jYXRpb25zLgotICAgIAkqIGdkYi5iYXNlL2ppdC5leHAgKGNsZWFuX3JlYXR0YWNo LCBjb250aW51ZV90b190ZXN0X2xvY2F0aW9uKToKLSAgICAJTmV3IHByb2NlZHVyZXMuCi0gICAg CShvbmVfaml0X3Rlc3QpOiBBZGQgUkVBVFRBQ0ggcGFyYW1ldGVyLCBhbmQgaGFuZGxlIGl0LiAg VXNlCi0gICAgCWNvbnRpbnVlX3RvX3Rlc3RfbG9jYXRpb24uCi0gICAgCSh0b3AgbGV2ZWwpOiBU ZXN0IGF0dGFjaCwgYW5kIGFkanVzdHMgY2FsbHMgdG8gb25lX2ppdF90ZXN0LgotCi0jIyMgYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMj IC0xLDYgKzEsMjEgQEAKLSAyMDE2LTAzLTMxICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQu Y29tPgotIAotIAlQUiBnZGIvMTk4NTgKLSsJKiBnZGIuYmFzZS9qaXQtbWFpbi5jOiBJbmNsdWRl IHVuaXN0ZC5oLgotKwkoQVRUQUNIKTogRGVmaW5lIHRvIDAgaWYgbm90IGFscmVhZHkgZGVmaW5l ZC4KLSsJKHdhaXRfZm9yX2dkYiwgbXlwaWQpOiBOZXcgZ2xvYmFscy4KLSsJKFdBSVRfRk9SX0dE Qik6IE5ldyBtYWNyby4KLSsJKE1BSU4pOiBTZXQgYW4gYWxhcm0uICBTdG9yZSB0aGUgcHJvY2Vz cydzIHBpZC4gIFdhaXQgZm9yIEdEQiBhdAotKwlzb21lIGJyZWFrcG9pbnQgbG9jYXRpb25zLgot KwkqIGdkYi5iYXNlL2ppdC5leHAgKGNsZWFuX3JlYXR0YWNoLCBjb250aW51ZV90b190ZXN0X2xv Y2F0aW9uKToKLSsJTmV3IHByb2NlZHVyZXMuCi0rCShvbmVfaml0X3Rlc3QpOiBBZGQgUkVBVFRB Q0ggcGFyYW1ldGVyLCBhbmQgaGFuZGxlIGl0LiAgVXNlCi0rCWNvbnRpbnVlX3RvX3Rlc3RfbG9j YXRpb24uCi0rCSh0b3AgbGV2ZWwpOiBUZXN0IGF0dGFjaCwgYW5kIGFkanVzdHMgY2FsbHMgdG8g b25lX2ppdF90ZXN0LgotKwotKzIwMTYtMDMtMzEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhh dC5jb20+Ci0rCi0rCVBSIGdkYi8xOTg1OAotIAkqIGdkYi5iYXNlL2ppdC5leHAgKGNvbXBpbGVf aml0X3Rlc3QpOiBBZGQgaW50cm8gY29tbWVudC4gIEFkZAotIAlCSU5TVUZGSVggcGFyYW1ldGVy LCBhbmQgaGFuZGxlIGl0LgotIAkodG9wIGxldmVsKTogQWRqdXN0IGNhbGxzIGNvbXBpbGVfaml0 X3Rlc3QuCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1tYWluLmMKLSsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LW1haW4uYwotQEAgLTI3LDYgKzI3LDcgQEAKLSAjaW5j bHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0gI2luY2x1ZGUgPHN5cy9z dGF0Lmg+Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotIAotIC8qIEVsZlcgaXMgY29taW5nIGZyb20g bGludXguIE9uIG90aGVyIHBsYXRmb3JtcyBpdCBkb2VzIG5vdCBleGlzdC4KLSAgICBMZXQgdXMg ZGVmaW5lIGl0IGhlcmUuICovCi1AQCAtMTE2LDEwICsxMTcsMjIgQEAgdXBkYXRlX2xvY2F0aW9u cyAoY29uc3Qgdm9pZCAqY29uc3QgYWRkciwgaW50IGlkeCkKLSAgICAgfQotIH0KLSAKLSsvKiBE ZWZpbmVkIGJ5IHRoZSAuZXhwIGZpbGUgaWYgdGVzdGluZyBhdHRhY2guICAqLwotKyNpZm5kZWYg QVRUQUNICi0rI2RlZmluZSBBVFRBQ0ggMAotKyNlbmRpZgotKwotICNpZm5kZWYgTUFJTgotICNk ZWZpbmUgTUFJTiBtYWluCi0gI2VuZGlmCi0gCi0rLyogVXNlZCB0byBzcGluIHdhaXRpbmcgZm9y IEdEQi4gICovCi0rdm9sYXRpbGUgaW50IHdhaXRfZm9yX2dkYiA9IEFUVEFDSDsKLSsjZGVmaW5l IFdBSVRfRk9SX0dEQiB3aGlsZSAod2FpdF9mb3JfZ2RiKQotKwotKy8qIFRoZSBjdXJyZW50IHBy b2Nlc3MncyBQSUQuICBHREIgcmV0cmlldmVzIHRoaXMuICAqLwotK2ludCBteXBpZDsKLSsKLSBp bnQKLSBNQUlOIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotIHsKLUBAIC0xMjcsNiArMTQwLDEw IEBAIE1BSU4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gICBjb25zdCBjaGFyICpsaWJuYW1l ID0gTlVMTDsKLSAgIGludCBjb3VudCA9IDA7Ci0gCi0rICBhbGFybSAoMzAwKTsKLSsKLSsgIG15 cGlkID0gZ2V0cGlkICgpOwotKwotICAgY291bnQgPSBjb3VudDsgIC8qIGdkYiBicmVhayBoZXJl IDAgICovCi0gCi0gICBpZiAoYXJnYyA8IDIpCi1AQCAtMTkwLDcgKzIwNyw3IEBAIE1BSU4gKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCi0gICAgICAgICAgIF9faml0X2RlYnVnX3JlZ2lzdGVyX2Nv ZGUgKCk7Ci0gICAgICAgICB9Ci0gCi0tICAgICAgaSA9IDA7ICAvKiBnZGIgYnJlYWsgaGVyZSAx ICovCi0rICAgICAgV0FJVF9GT1JfR0RCOyBpID0gMDsgIC8qIGdkYiBicmVhayBoZXJlIDEgKi8K LSAKLSAgICAgICAvKiBOb3cgdW5yZWdpc3RlciB0aGVtIGFsbCBpbiByZXZlcnNlIG9yZGVyLiAg Ki8KLSAgICAgICB3aGlsZSAoX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeSAh PSBOVUxMKQotQEAgLTIxNSw1ICsyMzIsNSBAQCBNQUlOIChpbnQgYXJnYywgY2hhciAqYXJndltd KQotICAgICAgICAgICBmcmVlIChlbnRyeSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLS0gIHJldHVy biAwOyAgLyogZ2RiIGJyZWFrIGhlcmUgMiAgKi8KLSsgIFdBSVRfRk9SX0dEQjsgcmV0dXJuIDA7 ICAvKiBnZGIgYnJlYWsgaGVyZSAyICAqLwotIH0KLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvaml0LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQuZXhwCi1AQCAtNjYs NyArNjYsNDkgQEAgcHJvYyBjb21waWxlX2ppdF90ZXN0IHt0ZXN0bmFtZSBiaW5zdWZmaXggb3B0 aW9uc30gewotICAgICByZXR1cm4gMAotIH0KLSAKLS1wcm9jIG9uZV9qaXRfdGVzdCB7Y291bnQg bWF0Y2hfc3RyfSB7Ci0rIyBEZXRhY2gsIHJlc3RhcnQgR0RCLCBhbmQgcmUtYXR0YWNoIHRvIHRo ZSBwcm9ncmFtLgotKwotK3Byb2MgY2xlYW5fcmVhdHRhY2gge30gewotKyAgICBnbG9iYWwgZGVj aW1hbCBnZGJfcHJvbXB0IHNyY2ZpbGUgdGVzdGZpbGUKLSsKLSsgICAgIyBHZXQgUElEIG9mIHRl c3QgcHJvZ3JhbS4KLSsgICAgc2V0IHRlc3RwaWQgLTEKLSsgICAgc2V0IHRlc3QgImdldCBpbmZl cmlvciBwcm9jZXNzIElEIgotKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAicCBteXBpZCIgJHRlc3Qg ewotKwktcmUgIi4qID0gKCRkZWNpbWFsKS4qJGdkYl9wcm9tcHQgJCIgewotKwkgICAgc2V0IHRl c3RwaWQgJGV4cGVjdF9vdXQoMSxzdHJpbmcpCi0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsgICAg fQotKwotKyAgICBnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgd2FpdF9mb3JfZ2RiID0gMSIK LSsgICAgZ2RiX3Rlc3QgImRldGFjaCIgIkRldGFjaGluZyBmcm9tIC4qIgotKwotKyAgICBjbGVh bl9yZXN0YXJ0ICR0ZXN0ZmlsZQotKwotKyAgICBzZXQgdGVzdCAiYXR0YWNoIgotKyAgICBnZGJf dGVzdF9tdWx0aXBsZSAiYXR0YWNoICR0ZXN0cGlkIiAiJHRlc3QiIHsKLSsJLXJlICJBdHRhY2hp bmcgdG8gcHJvZ3JhbS4qLiptYWluLiphdCAuKiRzcmNmaWxlOi4qJGdkYl9wcm9tcHQgJCIgewot KwkgICAgcGFzcyAiJHRlc3QiCi0rCX0KLSsgICAgfQotKwotKyAgICBnZGJfdGVzdF9ub19vdXRw dXQgInNldCB2YXIgd2FpdF9mb3JfZ2RiID0gMCIKLSt9Ci0rCi0rIyBDb250aW51ZSB0byBMT0NB VElPTiBpbiB0aGUgcHJvZ3JhbS4gIElmIFJFQVRUQUNILCBkZXRhY2ggYW5kCi0rIyByZS1hdHRh Y2ggdG8gdGhlIHByb2dyYW0gZnJvbSBzY3JhdGNoLgotK3Byb2MgY29udGludWVfdG9fdGVzdF9s b2NhdGlvbiB7bG9jYXRpb24gcmVhdHRhY2h9IHsKLSsgICAgZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgJGxvY2F0aW9uXQotKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAkbG9jYXRpb24KLSsgICAgaWYgeyRyZWF0dGFjaH0gewotKwl3aXRoX3Rlc3RfcHJlZml4ICIk bG9jYXRpb24iIHsKLSsJICAgIGNsZWFuX3JlYXR0YWNoCi0rCX0KLSsgICAgfQotK30KLSsKLStw cm9jIG9uZV9qaXRfdGVzdCB7Y291bnQgbWF0Y2hfc3RyIHJlYXR0YWNofSB7Ci0gICAgIHdpdGhf dGVzdF9wcmVmaXggIm9uZV9qaXRfdGVzdC0kY291bnQiIHsKLSAJZ2xvYmFsIHZlcmJvc2UgdGVz dGZpbGUgc29saWJfYmluZmlsZV90YXJnZXQgc29saWJfYmluZmlsZV90ZXN0X21zZwotIAotQEAg LTkxLDggKzEzMyw3IEBAIHByb2Mgb25lX2ppdF90ZXN0IHtjb3VudCBtYXRjaF9zdHJ9IHsKLSAJ Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFyIGxpYm5hbWUgPSBcIiRzb2xpYl9iaW5maWxlX3Rh cmdldFwiIiAic2V0IHZhciBsaWJuYW1lID0gXCIkc29saWJfYmluZmlsZV90ZXN0X21zZ1wiIgot IAlnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgY291bnQgPSAkY291bnQiCi0gCi0tCWdkYl9i cmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVhayBoZXJlIDEiXQotLQlnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWsgaGVyZSAxIgotKwljb250aW51ZV90b190ZXN0X2xv Y2F0aW9uICJicmVhayBoZXJlIDEiICRyZWF0dGFjaAotIAotIAlnZGJfdGVzdCAiaW5mbyBmdW5j dGlvbiBeaml0X2Z1bmN0aW9uIiAiJG1hdGNoX3N0ciIKLSAKLUBAIC0xMDIsOCArMTQzLDggQEAg cHJvYyBvbmVfaml0X3Rlc3Qge2NvdW50IG1hdGNoX3N0cn0gewotIAkgICAgZ2RiX3Rlc3QgIm1h aW50ZW5hbmNlIGluZm8gYnJlYWsiCi0gCX0KLSAKLS0JZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgImJyZWFrIGhlcmUgMiJdCi0tCWdkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJicmVhayBoZXJlIDIiCi0rCWNvbnRpbnVlX3RvX3Rlc3RfbG9jYXRpb24gImJyZWFrIGhlcmUg MiIgJHJlYXR0YWNoCi0rCi0gCSMgQWxsIGppdCBsaWJyYXJlcyBtdXN0IGhhdmUgYmVlbiB1bnJl Z2lzdGVyZWQKLSAJZ2RiX3Rlc3QgImluZm8gZnVuY3Rpb24gaml0X2Z1bmN0aW9uIiBcCi0gCSAg ICAiQWxsIGZ1bmN0aW9ucyBtYXRjaGluZyByZWd1bGFyIGV4cHJlc3Npb24gXCJqaXRfZnVuY3Rp b25cIjoiCi1AQCAtMTEzLDggKzE1NCwyMiBAQCBwcm9jIG9uZV9qaXRfdGVzdCB7Y291bnQgbWF0 Y2hfc3RyfSB7Ci0gaWYge1tjb21waWxlX2ppdF90ZXN0IGppdC5leHAgIiIge31dIDwgMH0gewot ICAgICByZXR1cm4KLSB9Ci0tb25lX2ppdF90ZXN0IDEgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAw MDAiCi0tb25lX2ppdF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5cXSsk e2hleH0gIGppdF9mdW5jdGlvbl8wMDAxIgotK29uZV9qaXRfdGVzdCAxICIke2hleH0gIGppdF9m dW5jdGlvbl8wMDAwIiAwCi0rb25lX2ppdF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAw MDBcW1xyXG5cXSske2hleH0gIGppdF9mdW5jdGlvbl8wMDAxIiAwCi0rCi0rIyBUZXN0IGF0dGFj aGluZyB0byBhbiBpbmZlcmlvciB3aXRoIHNvbWUgSklUIGxpYnJhcmllcyBhbHJlYWR5Ci0rIyBy ZWdpc3RlcmVkLiAgV2UgcmV1c2UgdGhlIG5vcm1hbCB0ZXN0LCBhbmQgZGV0YWNoL3JlYXR0YWNo IGF0Ci0rIyBzcGVjaWZpYyBpbnRlcmVzdGluZyBwb2ludHMuCi0raWYge1tjYW5fc3Bhd25fZm9y X2F0dGFjaF19IHsKLSsgICAgaWYge1tjb21waWxlX2ppdF90ZXN0ICJqaXQuZXhwIGF0dGFjaCB0 ZXN0cyIgXAotKwkgICAgICItYXR0YWNoIiB7YWRkaXRpb25hbF9mbGFncz0tREFUVEFDSD0xfV0g PCAwfSB7Ci0rCXJldHVybgotKyAgICB9Ci0rCi0rICAgIHdpdGhfdGVzdF9wcmVmaXggYXR0YWNo IHsKLSsJb25lX2ppdF90ZXN0IDIgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAwMDBcW1xyXG5cXSsk e2hleH0gIGppdF9mdW5jdGlvbl8wMDAxIiAxCi0rICAgIH0KLSt9Ci0gCi0gd2l0aF90ZXN0X3By ZWZpeCBQSUUgewotICAgICBpZiB7W2NvbXBpbGVfaml0X3Rlc3QgImppdC5leHAgUElFIHRlc3Rz IiBcCi1AQCAtMTIyLDUgKzE3Nyw1IEBAIHdpdGhfdGVzdF9wcmVmaXggUElFIHsKLSAJcmV0dXJu Ci0gICAgIH0KLSAKLS0gICAgb25lX2ppdF90ZXN0IDEgIiR7aGV4fSAgaml0X2Z1bmN0aW9uXzAw MDAiCi0rICAgIG9uZV9qaXRfdGVzdCAxICIke2hleH0gIGppdF9mdW5jdGlvbl8wMDAwIiAwCi0g fQotCi0KLQotY29tbWl0IDJkMzVlODcxMjc0YTQ4MzMxYzRkNmM3YjNlNGZiZWU0MmI5MDFmMzMK LUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRl OiAgIFRodSBBcHIgNyAyMjoxODo0OSAyMDE2ICswMjAwCi0KLSAgICB0ZXN0c3VpdGU6IEZpeCBm YWxzZSBGQUlMcyB3aXRoIC5iYXNocmMgR0RCSElTVEZJTEU9Li4uCi0gICAgCi0gICAgJCBHREJI SVNURklMRT0vdG1wL2dkYmhpc3RmaWxlIHJ1bnRlc3QgZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlz dG9yeS5leHAgZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cAotICAgIFJ1bm5pbmcgLi9nZGIu YmFzZS9nZGJpbml0LWhpc3RvcnkuZXhwIC4uLgotICAgIEZBSUw6IGdkYi5iYXNlL2dkYmluaXQt aGlzdG9yeS5leHA6IGhvbWU9Z2RiaW5pdC1oaXN0b3J5L3VubGltaXRlZCBnZGJoaXN0c2l6ZT0x MDAwOiBzaG93IGNvbW1hbmRzCi0gICAgRkFJTDogZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4 cDogaG9tZT1nZGJpbml0LWhpc3RvcnkvdW5saW1pdGVkIGdkYmhpc3RzaXplPWZvbzogc2hvdyBj b21tYW5kcwotICAgIFJ1bm5pbmcgLi9nZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cCAu Li4KLSAgICBGQUlMOiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9 OiBzaG93IGNvbW1hbmRzCi0gICAgRkFJTDogZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlzdG9yeS5l eHA6IGhpc3RzaXplPTIwOiBzaG93IGNvbW1hbmRzCi0gICAgRkFJTDogZ2RiLmJhc2UvZ2RiaGlz dHNpemUtaGlzdG9yeS5leHA6IGhpc3RzaXplPSAyMCA6IHNob3cgY29tbWFuZHMKLSAgICBGQUlM OiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9LTU6IHNob3cgY29t bWFuZHMKLSAgICBGQUlMOiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNp emU9bm90X2FuX2ludGVnZXI6IHNob3cgY29tbWFuZHMKLSAgICBGQUlMOiBnZGIuYmFzZS9nZGJo aXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9MTB6YWI6IHNob3cgY29tbWFuZHMKLSAgICBG QUlMOiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogaGlzdHNpemU9LTVhYjogc2hv dyBjb21tYW5kcwotICAgIEZBSUw6IGdkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwOiBo aXN0c2l6ZT05OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTogc2hvdyBjb21tYW5k cwotICAgIEZBSUw6IGdkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwOiBoaXN0c2l6ZT01 MDogc2hvdyBjb21tYW5kcwotICAgIAotICAgIFRoaXMgaGFwcGVucyBmb3IgbXkgc2V0dXAgZHVl IHRvIG15OgotICAgIAkkIGdyZXAgR0RCIH4vLmJhc2hyYwotICAgIAlleHBvcnQgR0RCSElTVEZJ TEU9IiRIT01FLy5nZGJfaGlzdG9yeSIKLSAgICAKLSAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZwotICAgIDIwMTYtMDQtMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KLSAgICAKLSAgICAJKiBnZGIuYmFzZS9nZGJoaXN0c2l6ZS1oaXN0b3J5LmV4cDogU2F2 ZSBhbmQgdW5zZXQgR0RCSElTVEZJTEUgYW5kCi0gICAgCUdEQkhJU1RTSVpFIHByaW9yIHRvIHRo ZSB0ZXN0cy4KLSAgICAJKiBnZGIuYmFzZS9nZGJpbml0LWhpc3RvcnkuZXhwOiBMaWtld2lzZS4K LQotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nCi0jIyAtMSw0ICsxLDEwIEBACi0tMjAxNS0wNC0wNyAgUGVkcm8gQWx2ZXMgIDxwYWx2 ZXNAcmVkaGF0LmNvbT4KLSsyMDE2LTA0LTA3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci0rCi0rCSogZ2RiLmJhc2UvZ2RiaGlzdHNpemUtaGlzdG9yeS5leHA6 IFNhdmUgYW5kIHVuc2V0IEdEQkhJU1RGSUxFIGFuZAotKwlHREJISVNUU0laRSBwcmlvciB0byB0 aGUgdGVzdHMuCi0rCSogZ2RiLmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cDogTGlrZXdpc2UuCi0r Ci0rMjAxNi0wNC0wNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBn ZGIuY29tcGlsZS9jb21waWxlLmV4cDogVXNlIGdkYl9jb21waWxlIHdpdGggInNobGliPSIgb3B0 aW9uCi0gCWluc3RlYWQgb2YgYnVpbGRfZXhlY3V0YWJsZS4gIFVzZSBnZGJfbG9hZF9zaGxpYnMu Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwCi0r KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dkYmhpc3RzaXplLWhpc3RvcnkuZXhwCi1AQCAt MzIsNyArMzIsMTMgQEAgaWYgeyBbaXNfcmVtb3RlIGhvc3RdIH0gewotIHByb2MgdGVzdF9oaXN0 c2l6ZV9oaXN0b3J5X3NldHRpbmcgeyBoaXN0c2l6ZSBzaXplIHsgZW52X3ZhciAiR0RCSElTVFNJ WkUiIH0gfSB7Ci0gICAgIGdsb2JhbCBlbnYKLSAKLS0gICAgc2F2ZV92YXJzIHsgZW52KCRlbnZf dmFyKSB9IHsKLSsgICAgc2F2ZV92YXJzIHsgZW52KEdEQkhJU1RGSUxFKSBlbnYoR0RCSElTVFNJ WkUpIGVudigkZW52X3ZhcikgfSB7Ci0rCSMgVGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRh a2UgcHJlY2VkZW5jZSBvdmVyIHdoYXRldmVyCi0rCSMgaGlzdG9yeSBzaXplIGlzIHNldCBpbiAu Z2RiaW5pdC4gIE1ha2Ugc3VyZSB0aGUgZm9ybWVyIGlzIG5vdAotKwkjIHNldC4KLSsJdW5zZXQg LW5vY29tcGxhaW4gZW52KEdEQkhJU1RGSUxFKQotKwl1bnNldCAtbm9jb21wbGFpbiBlbnYoR0RC SElTVFNJWkUpCi0rCi0gCXNldCBlbnYoJGVudl92YXIpICRoaXN0c2l6ZQotIAotIAl3aXRoX3Rl c3RfcHJlZml4ICJoaXN0c2l6ZT0kaGlzdHNpemUiIHsKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvZ2RiaW5pdC1oaXN0b3J5LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9n ZGJpbml0LWhpc3RvcnkuZXhwCi1AQCAtMzYsMTIgKzM2LDEzIEBAIHByb2MgdGVzdF9nZGJpbml0 X2hpc3Rvcnlfc2V0dGluZyB7IGhvbWUgc2l6ZSB7IGdkYmhpc3RzaXplX3ZhbCAiLSIgfSB9IHsK LSAgICAgZ2xvYmFsIHNyY2RpcgotICAgICBnbG9iYWwgc3ViZGlyCi0gCi0tICAgIHNhdmVfdmFy cyB7IElOVEVSTkFMX0dEQkZMQUdTIGVudihHREJISVNUU0laRSkgZW52KEhPTUUpIH0gewotKyAg ICBzYXZlX3ZhcnMgeyBJTlRFUk5BTF9HREJGTEFHUyBlbnYoR0RCSElTVEZJTEUpIGVudihHREJI SVNUU0laRSkgZW52KEhPTUUpIH0gewotIAlzZXQgZW52KEhPTUUpICIkc3JjZGlyLyRzdWJkaXIv JGhvbWUiCi0gCi0tCSMgVGhlIEdEQkhJU1RTSVpFIGVudmlyb25tZW50IHZhcmlhYmxlIHRha2Vz IHByZWNlZGVuY2Ugb3ZlciB3aGF0ZXZlcgotKwkjIFRoZXNlIGVudmlyb25tZW50IHZhcmlhYmxl cyB0YWtlIHByZWNlZGVuY2Ugb3ZlciB3aGF0ZXZlcgotIAkjIGhpc3Rvcnkgc2l6ZSBpcyBzZXQg aW4gLmdkYmluaXQuICBNYWtlIHN1cmUgdGhlIGZvcm1lciBpcyBub3QKLSAJIyBzZXQuCi0rCXVu c2V0IC1ub2NvbXBsYWluIGVudihHREJISVNURklMRSkKLSAJdW5zZXQgLW5vY29tcGxhaW4gZW52 KEdEQkhJU1RTSVpFKQotIAotIAlpZiB7ICRnZGJoaXN0c2l6ZV92YWwgIT0gIi0iIH0gewotQEAg LTc3LDEwICs3OCwxMSBAQCBwcm9jIHRlc3Rfbm9fdHJ1bmNhdGlvbl9vZl91bmxpbWl0ZWRfaGlz dG9yeV9maWxlIHsgfSB7Ci0gICAgIGdsb2JhbCBlbnYKLSAgICAgZ2xvYmFsIElOVEVSTkFMX0dE QkZMQUdTCi0gCi0tICAgIHNhdmVfdmFycyB7IElOVEVSTkFMX0dEQkZMQUdTIGVudihHREJISVNU U0laRSkgfSB7Ci0tCSMgVGhlIEdEQkhJU1RTSVpFIGVudmlyb25tZW50IHZhcmlhYmxlIHRha2Vz IHByZWNlZGVuY2Ugb3ZlciB3aGF0ZXZlcgotKyAgICBzYXZlX3ZhcnMgeyBJTlRFUk5BTF9HREJG TEFHUyBlbnYoR0RCSElTVEZJTEUpIGVudihHREJISVNUU0laRSkgfSB7Ci0rCSMgVGhlc2UgZW52 aXJvbm1lbnQgdmFyaWFibGVzIHRha2UgcHJlY2VkZW5jZSBvdmVyIHdoYXRldmVyCi0gCSMgaGlz dG9yeSBzaXplIGlzIHNldCBpbiAuZ2RiaW5pdC4gIE1ha2Ugc3VyZSB0aGUgZm9ybWVyIGlzIG5v dAotIAkjIHNldC4KLSsJdW5zZXQgLW5vY29tcGxhaW4gZW52KEdEQkhJU1RGSUxFKQotIAl1bnNl dCAtbm9jb21wbGFpbiBlbnYoR0RCSElTVFNJWkUpCi0gCi0gCXNldCB0ZW1wX2dkYmluaXQgW3N0 YW5kYXJkX291dHB1dF9maWxlICJnZGJpbml0LWhpc3RvcnkuZ2RiaW5pdCJdCi0KLQotCi1jb21t aXQgMDY1MDA1MzM2NDkyMzM3YzkyZDA2ZTg3NTQ0NjQ2NjM1YTViOTU2NgotQXV0aG9yOiBKYW4g S3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6ICAgRnJpIEFwciA4 IDE1OjM4OjUzIDIwMTYgKzAyMDAKLQotICAgIHRlc3RzdWl0ZTogRml4IGZvciBnY2MtNC44OiBn ZGIuYmFzZS9qaXQuZXhwIGdkYi5iYXNlL2ppdC1zby5leHAKLSAgICAKLSAgICBvbiBDZW50T1Mt Ny4yIEkgZ2V0Ci0gICAgCi0gICAgUnVubmluZyAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLXRl c3QtcmVnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LmV4cCAuLi4KLSAgICBGQUlMOiBnZGIu YmFzZS9qaXQuZXhwOiBvbmVfaml0X3Rlc3QtMTogY29udGludWUgdG8gYnJlYWtwb2ludDogYnJl YWsgaGVyZSAyICh0aGUgcHJvZ3JhbSBleGl0ZWQpCi0gICAgRkFJTDogZ2RiLmJhc2Uvaml0LmV4 cDogb25lX2ppdF90ZXN0LTI6IGNvbnRpbnVlIHRvIGJyZWFrcG9pbnQ6IGJyZWFrIGhlcmUgMiAo dGhlIHByb2dyYW0gZXhpdGVkKQotICAgIEZBSUw6IGdkYi5iYXNlL2ppdC5leHA6IGF0dGFjaDog b25lX2ppdF90ZXN0LTI6IGNvbnRpbnVlIHRvIGJyZWFrcG9pbnQ6IGJyZWFrIGhlcmUgMiAodGhl IHByb2dyYW0gZXhpdGVkKQotICAgIEZBSUw6IGdkYi5iYXNlL2ppdC5leHA6IGF0dGFjaDogb25l X2ppdF90ZXN0LTI6IGJyZWFrIGhlcmUgMjogc2V0IHZhciB3YWl0X2Zvcl9nZGIgPSAxCi0gICAg RkFJTDogZ2RiLmJhc2Uvaml0LmV4cDogYXR0YWNoOiBvbmVfaml0X3Rlc3QtMjogYnJlYWsgaGVy ZSAyOiBkZXRhY2ggKHRoZSBwcm9ncmFtIGlzIG5vIGxvbmdlciBydW5uaW5nKQotICAgIEZBSUw6 IGdkYi5iYXNlL2ppdC5leHA6IGF0dGFjaDogb25lX2ppdF90ZXN0LTI6IGJyZWFrIGhlcmUgMjog YXR0YWNoCi0gICAgRkFJTDogZ2RiLmJhc2Uvaml0LmV4cDogYXR0YWNoOiBvbmVfaml0X3Rlc3Qt MjogYnJlYWsgaGVyZSAyOiBzZXQgdmFyIHdhaXRfZm9yX2dkYiA9IDAKLSAgICBGQUlMOiBnZGIu YmFzZS9qaXQuZXhwOiBQSUU6IG9uZV9qaXRfdGVzdC0xOiBjb250aW51ZSB0byBicmVha3BvaW50 OiBicmVhayBoZXJlIDIgKHRoZSBwcm9ncmFtIGV4aXRlZCkKLSAgICBSdW5uaW5nIC9ob21lL2pr cmF0b2NoL3JlZGhhdC9nZGItdGVzdC1yZWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtc28u ZXhwIC4uLgotICAgIEZBSUw6IGdkYi5iYXNlL2ppdC1zby5leHA6IG9uZV9qaXRfdGVzdC0xOiBj b250aW51ZSB0byBicmVha3BvaW50OiBicmVhayBoZXJlIDIgKHRoZSBwcm9ncmFtIGV4aXRlZCkK LSAgICBGQUlMOiBnZGIuYmFzZS9qaXQtc28uZXhwOiBvbmVfaml0X3Rlc3QtMjogY29udGludWUg dG8gYnJlYWtwb2ludDogYnJlYWsgaGVyZSAyICh0aGUgcHJvZ3JhbSBleGl0ZWQpCi0gICAgCi0g ICAgc2luY2U6Ci0gICAgCi0gICAgODVhZjM0ZWUwMjExZWVkZjhkMzBhNWM0NGRmYzU5ZGRkZjhi NTEyYSBpcyB0aGUgZmlyc3QgYmFkIGNvbW1pdAotICAgIGNvbW1pdCA4NWFmMzRlZTAyMTFlZWRm OGQzMGE1YzQ0ZGZjNTlkZGRmOGI1MTJhCi0gICAgQXV0aG9yOiBQZWRybyBBbHZlcyA8cGFsdmVz QHJlZGhhdC5jb20+Ci0gICAgRGF0ZTogICBUaHUgTWFyIDMxIDE5OjI4OjQ3IDIwMTYgKzAxMDAK LSAgICAgICAgQWRkIHJlZ3Jlc3Npb24gdGVzdCBmb3IgUFIgZ2RiLzE5ODU4IChKSVQgY29kZSBy ZWdpc3RyYXRpb24gb24gYXR0YWNoKQotICAgIAotICAgIFRoZSBjb21waWxlZCBjb2RlJ3MgLmRl YnVnX2xpbmUgaXMgd3JvbmcgKGZvciB0aGUgc2ltcGxpc3RpYyBhcHByb2FjaCBvZiBHREIKLSAg ICB0byBwdXQgYSBicmVha3BvaW50IG9uIHRoZSBmaXJzdCBhZGRyZXNzIGJlbG9uZ2luZyB0byB0 aGF0IHNvdXJjZSBsaW5lKSBhbmQgc28KLSAgICBHREIgbWlzc2VzIHRoZSBicmVha3BvaW50IGF0 IHRoZSBsYXN0IGxpbmU6Ci0gICAgICAgICAgICAgIFdBSVRfRk9SX0dEQjsgcmV0dXJuIDA7ICAv KiBnZGIgYnJlYWsgaGVyZSAyICAqLwotICAgIAotICAgIE1vc3Qgb2YgdGhlIHBhdGNoIGlzIGp1 c3QgYWJvdXQgcmVpbmRlbnRhdGlvbiwgbm8gY2hhbmdlcyB0aGVyZS4KLSAgICAKLSAgICBnZGIv dGVzdHN1aXRlL0NoYW5nZUxvZwotICAgIDIwMTYtMDQtMDggIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJRml4IGNvbXBhdGliaWxpdHkgd2l0 aCBnY2MtNC44LjUtNC5lbDcueDg2XzY0LgotICAgIAkqIGdkYi5iYXNlL2ppdC1tYWluLmM6IFVz ZSBleGl0IGFmdGVyIHVzYWdlLgotCi0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMj IGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOCBAQAotKzIwMTYtMDQtMDgg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJRml4IGNv bXBhdGliaWxpdHkgd2l0aCBnY2MtNC44LjUtNC5lbDcueDg2XzY0LgotKwkqIGdkYi5iYXNlL2pp dC1tYWluLmM6IFVzZSBleGl0IGFmdGVyIHVzYWdlLgotKwotIDIwMTYtMDQtMDcgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAKLSAJKiBnZGIuYmFzZS9nZGJo aXN0c2l6ZS1oaXN0b3J5LmV4cDogU2F2ZSBhbmQgdW5zZXQgR0RCSElTVEZJTEUgYW5kCi0tLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1tYWluLmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2Uvaml0LW1haW4uYwotQEAgLTEzOCw3ICsxMzgsOCBAQCBNQUlOIChpbnQgYXJnYywg Y2hhciAqYXJndltdKQotIHsKLSAgIC8qIFRoZXNlIHZhcmlhYmxlcyBhcmUgaGVyZSBzbyB0aGV5 IGNhbiBlYXNpbHkgYmUgc2V0IGZyb20gaml0LmV4cC4gICovCi0gICBjb25zdCBjaGFyICpsaWJu YW1lID0gTlVMTDsKLS0gIGludCBjb3VudCA9IDA7Ci0rICBpbnQgY291bnQgPSAwLCBpLCBmZDsK LSsgIHN0cnVjdCBzdGF0IHN0OwotIAotICAgYWxhcm0gKDMwMCk7Ci0gCi1AQCAtMTQ3LDkwICsx NDgsODkgQEAgTUFJTiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAgIGNvdW50ID0gY291bnQ7 ICAvKiBnZGIgYnJlYWsgaGVyZSAwICAqLwotIAotICAgaWYgKGFyZ2MgPCAyKQotLSAgICB1c2Fn ZSAoYXJndlswXSk7Ci0tICBlbHNlCi0gICAgIHsKLS0gICAgICBpbnQgaSwgZmQ7Ci0tICAgICAg c3RydWN0IHN0YXQgc3Q7Ci0rICAgICAgdXNhZ2UgKGFyZ3ZbMF0pOwotKyAgICAgIGV4aXQgKDEp OwotKyAgICB9Ci0gCi0tICAgICAgaWYgKGxpYm5hbWUgPT0gTlVMTCkKLS0gICAgICAgIC8qIE9u bHkgc2V0IGlmIG5vdCBhbHJlYWR5IHNldCBmcm9tIEdEQi4gICovCi0tICAgICAgICBsaWJuYW1l ID0gYXJndlsxXTsKLSsgIGlmIChsaWJuYW1lID09IE5VTEwpCi0rICAgIC8qIE9ubHkgc2V0IGlm IG5vdCBhbHJlYWR5IHNldCBmcm9tIEdEQi4gICovCi0rICAgIGxpYm5hbWUgPSBhcmd2WzFdOwot IAotLSAgICAgIGlmIChhcmdjID4gMiAmJiBjb3VudCA9PSAwKQotLSAgICAgICAgLyogT25seSBz ZXQgaWYgbm90IGFscmVhZHkgc2V0IGZyb20gR0RCLiAgKi8KLS0gICAgICAgIGNvdW50ID0gYXRv aSAoYXJndlsyXSk7Ci0rICBpZiAoYXJnYyA+IDIgJiYgY291bnQgPT0gMCkKLSsgICAgLyogT25s eSBzZXQgaWYgbm90IGFscmVhZHkgc2V0IGZyb20gR0RCLiAgKi8KLSsgICAgY291bnQgPSBhdG9p IChhcmd2WzJdKTsKLSAKLS0gICAgICBwcmludGYgKCIlczolZDogbGlibmFtZSA9ICVzLCBjb3Vu dCA9ICVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18sCi0tICAgICAgICAgICAgICBsaWJuYW1lLCBj b3VudCk7Ci0rICBwcmludGYgKCIlczolZDogbGlibmFtZSA9ICVzLCBjb3VudCA9ICVkXG4iLCBf X0ZJTEVfXywgX19MSU5FX18sCi0rCSAgbGlibmFtZSwgY291bnQpOwotIAotLSAgICAgIGlmICgo ZmQgPSBvcGVuIChsaWJuYW1lLCBPX1JET05MWSkpID09IC0xKQotLSAgICAgICAgewotLSAgICAg ICAgICBmcHJpbnRmIChzdGRlcnIsICJvcGVuIChcIiVzXCIsIE9fUkRPTkxZKTogJXNcbiIsIGxp Ym5hbWUsCi0tICAgICAgICAgICAgICAgICAgIHN0cmVycm9yIChlcnJubykpOwotLSAgICAgICAg ICBleGl0ICgxKTsKLS0gICAgICAgIH0KLSsgIGlmICgoZmQgPSBvcGVuIChsaWJuYW1lLCBPX1JE T05MWSkpID09IC0xKQotKyAgICB7Ci0rICAgICAgZnByaW50ZiAoc3RkZXJyLCAib3BlbiAoXCIl c1wiLCBPX1JET05MWSk6ICVzXG4iLCBsaWJuYW1lLAotKwkgICAgICAgc3RyZXJyb3IgKGVycm5v KSk7Ci0rICAgICAgZXhpdCAoMSk7Ci0rICAgIH0KLSAKLS0gICAgICBpZiAoZnN0YXQgKGZkLCAm c3QpICE9IDApCi0tICAgICAgICB7Ci0tICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgImZzdGF0 IChcIiVkXCIpOiAlc1xuIiwgZmQsIHN0cmVycm9yIChlcnJubykpOwotLSAgICAgICAgICBleGl0 ICgxKTsKLS0gICAgICAgIH0KLSsgIGlmIChmc3RhdCAoZmQsICZzdCkgIT0gMCkKLSsgICAgewot KyAgICAgIGZwcmludGYgKHN0ZGVyciwgImZzdGF0IChcIiVkXCIpOiAlc1xuIiwgZmQsIHN0cmVy cm9yIChlcnJubykpOwotKyAgICAgIGV4aXQgKDEpOwotKyAgICB9Ci0gCi0tICAgICAgZm9yIChp ID0gMDsgaSA8IGNvdW50OyArK2kpCi0tICAgICAgICB7Ci0tICAgICAgICAgIGNvbnN0IHZvaWQg KmNvbnN0IGFkZHIgPSBtbWFwICgwLCBzdC5zdF9zaXplLCBQUk9UX1JFQUR8UFJPVF9XUklURSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9QUklWQVRFLCBm ZCwgMCk7Ci0tICAgICAgICAgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqY29uc3QgZW50cnkgPSBj YWxsb2MgKDEsIHNpemVvZiAoKmVudHJ5KSk7Ci0tCi0tICAgICAgICAgIGlmIChhZGRyID09IE1B UF9GQUlMRUQpCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJy LCAibW1hcDogJXNcbiIsIHN0cmVycm9yIChlcnJubykpOwotLSAgICAgICAgICAgICAgZXhpdCAo MSk7Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICB1cGRhdGVfbG9jYXRpb25zIChhZGRy LCBpKTsKLS0KLS0gICAgICAgICAgLyogTGluayBlbnRyeSBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0 LiAgKi8KLS0gICAgICAgICAgZW50cnktPnN5bWZpbGVfYWRkciA9IChjb25zdCBjaGFyICopYWRk cjsKLS0gICAgICAgICAgZW50cnktPnN5bWZpbGVfc2l6ZSA9IHN0LnN0X3NpemU7Ci0tICAgICAg ICAgIGVudHJ5LT5wcmV2X2VudHJ5ID0gX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9l bnRyeTsKLS0gICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeSA9 IGVudHJ5OwotLQotLSAgICAgICAgICBpZiAoZW50cnktPnByZXZfZW50cnkgIT0gTlVMTCkKLS0g ICAgICAgICAgICBlbnRyeS0+cHJldl9lbnRyeS0+bmV4dF9lbnRyeSA9IGVudHJ5OwotLSAgICAg ICAgICBlbHNlCi0tICAgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5maXJzdF9lbnRy eSA9IGVudHJ5OwotLQotLSAgICAgICAgICAvKiBOb3RpZnkgR0RCLiAgKi8KLS0gICAgICAgICAg X19qaXRfZGVidWdfZGVzY3JpcHRvci5hY3Rpb25fZmxhZyA9IEpJVF9SRUdJU1RFUl9GTjsKLS0g ICAgICAgICAgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsKLS0gICAgICAgIH0KLSsgIGZv ciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKQotKyAgICB7Ci0rICAgICAgY29uc3Qgdm9pZCAqY29u c3QgYWRkciA9IG1tYXAgKDAsIHN0LnN0X3NpemUsIFBST1RfUkVBRHxQUk9UX1dSSVRFLAotKwkJ CQkgICAgIE1BUF9QUklWQVRFLCBmZCwgMCk7Ci0rICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5 ICpjb25zdCBlbnRyeSA9IGNhbGxvYyAoMSwgc2l6ZW9mICgqZW50cnkpKTsKLSsKLSsgICAgICBp ZiAoYWRkciA9PSBNQVBfRkFJTEVEKQotKwl7Ci0rCSAgZnByaW50ZiAoc3RkZXJyLCAibW1hcDog JXNcbiIsIHN0cmVycm9yIChlcnJubykpOwotKwkgIGV4aXQgKDEpOwotKwl9Ci0rCi0rICAgICAg dXBkYXRlX2xvY2F0aW9ucyAoYWRkciwgaSk7Ci0rCi0rICAgICAgLyogTGluayBlbnRyeSBhdCB0 aGUgZW5kIG9mIHRoZSBsaXN0LiAgKi8KLSsgICAgICBlbnRyeS0+c3ltZmlsZV9hZGRyID0gKGNv bnN0IGNoYXIgKilhZGRyOwotKyAgICAgIGVudHJ5LT5zeW1maWxlX3NpemUgPSBzdC5zdF9zaXpl OwotKyAgICAgIGVudHJ5LT5wcmV2X2VudHJ5ID0gX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxl dmFudF9lbnRyeTsKLSsgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5 ID0gZW50cnk7Ci0rCi0rICAgICAgaWYgKGVudHJ5LT5wcmV2X2VudHJ5ICE9IE5VTEwpCi0rCWVu dHJ5LT5wcmV2X2VudHJ5LT5uZXh0X2VudHJ5ID0gZW50cnk7Ci0rICAgICAgZWxzZQotKwlfX2pp dF9kZWJ1Z19kZXNjcmlwdG9yLmZpcnN0X2VudHJ5ID0gZW50cnk7Ci0rCi0rICAgICAgLyogTm90 aWZ5IEdEQi4gICovCi0rICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5hY3Rpb25fZmxhZyA9 IEpJVF9SRUdJU1RFUl9GTjsKLSsgICAgICBfX2ppdF9kZWJ1Z19yZWdpc3Rlcl9jb2RlICgpOwot KyAgICB9Ci0gCi0tICAgICAgV0FJVF9GT1JfR0RCOyBpID0gMDsgIC8qIGdkYiBicmVhayBoZXJl IDEgKi8KLSsgIFdBSVRfRk9SX0dEQjsgaSA9IDA7ICAvKiBnZGIgYnJlYWsgaGVyZSAxICovCi0g Ci0tICAgICAgLyogTm93IHVucmVnaXN0ZXIgdGhlbSBhbGwgaW4gcmV2ZXJzZSBvcmRlci4gICov Ci0tICAgICAgd2hpbGUgKF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnkgIT0g TlVMTCkKLS0gICAgICAgIHsKLS0gICAgICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25z dCBlbnRyeSA9Ci0tICAgICAgICAgICAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5yZWxldmFudF9l bnRyeTsKLS0gICAgICAgICAgc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb25zdCBwcmV2X2VudHJ5 ID0gZW50cnktPnByZXZfZW50cnk7Ci0tCi0tICAgICAgICAgIGlmIChwcmV2X2VudHJ5ICE9IE5V TEwpCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgcHJldl9lbnRyeS0+bmV4dF9lbnRy eSA9IE5VTEw7Ci0tICAgICAgICAgICAgICBlbnRyeS0+cHJldl9lbnRyeSA9IE5VTEw7Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgICBlbHNlCi0tICAgICAgICAgICAgX19qaXRfZGVidWdfZGVz Y3JpcHRvci5maXJzdF9lbnRyeSA9IE5VTEw7Ci0tCi0tICAgICAgICAgIC8qIE5vdGlmeSBHREIu ICAqLwotLSAgICAgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLmFjdGlvbl9mbGFnID0gSklU X1VOUkVHSVNURVJfRk47Ci0tICAgICAgICAgIF9faml0X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCk7 Ci0tCi0tICAgICAgICAgIF9faml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnkgPSBw cmV2X2VudHJ5OwotLSAgICAgICAgICBmcmVlIChlbnRyeSk7Ci0tICAgICAgICB9Ci0rICAvKiBO b3cgdW5yZWdpc3RlciB0aGVtIGFsbCBpbiByZXZlcnNlIG9yZGVyLiAgKi8KLSsgIHdoaWxlIChf X2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5ICE9IE5VTEwpCi0rICAgIHsKLSsg ICAgICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKmNvbnN0IGVudHJ5ID0KLSsJX19qaXRfZGVidWdf ZGVzY3JpcHRvci5yZWxldmFudF9lbnRyeTsKLSsgICAgICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkg KmNvbnN0IHByZXZfZW50cnkgPSBlbnRyeS0+cHJldl9lbnRyeTsKLSsKLSsgICAgICBpZiAocHJl dl9lbnRyeSAhPSBOVUxMKQotKwl7Ci0rCSAgcHJldl9lbnRyeS0+bmV4dF9lbnRyeSA9IE5VTEw7 Ci0rCSAgZW50cnktPnByZXZfZW50cnkgPSBOVUxMOwotKwl9Ci0rICAgICAgZWxzZQotKwlfX2pp dF9kZWJ1Z19kZXNjcmlwdG9yLmZpcnN0X2VudHJ5ID0gTlVMTDsKLSsKLSsgICAgICAvKiBOb3Rp ZnkgR0RCLiAgKi8KLSsgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLmFjdGlvbl9mbGFnID0g SklUX1VOUkVHSVNURVJfRk47Ci0rICAgICAgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsK LSsKLSsgICAgICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2YW50X2VudHJ5ID0gcHJldl9l bnRyeTsKLSsgICAgICBmcmVlIChlbnRyeSk7Ci0gICAgIH0KLSsKLSAgIFdBSVRfRk9SX0dEQjsg cmV0dXJuIDA7ICAvKiBnZGIgYnJlYWsgaGVyZSAyICAqLwotIH0KLQotCi0KLWNvbW1pdCA2Yjll ZjBkNDg4YzU1NjMzOWFlYTdiMDk1ZWY3YTliNmJmNmIxYWYxCi1BdXRob3I6IFBlZHJvIEFsdmVz IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLURhdGU6ICAgV2VkIEFwciAxMyAxNDozNDowMCAyMDE2ICsw MTAwCi0KLSAgICBGaXggUFIgcmVtb3RlLzE5ODQwOiBnZGIgY3Jhc2hlcyBvbiByZXZlcnNlLXN0 ZXBpCi0gICAgCi0gICAgUmV2ZXJzZSBkZWJ1Z2dpbmcgYWdhaW5zdCBhIHJlbW90ZSB0YXJnZXQg dGhhdCBkb2VzIHJldmVyc2UgZGVidWdnaW5nCi0gICAgaXRzZWxmICh3aXRoIHRoZSBicy9iYyBw YWNrZXRzKSBhbHdheXMgdHJpcHMgb246Ci0gICAgCi0gICAgIChnZGIpIHRhcmdldCByZW1vdGUg bG9jYWxob3N0Oi4uLgotICAgICAoZ2RiKSByZXZlcnNlLXN0ZXBpCi0gICAgIC4uLy4uL2dkYi90 YXJnZXQuYzo2MDI6IGludGVybmFsLWVycm9yOiBkZWZhdWx0X2V4ZWN1dGlvbl9kaXJlY3Rpb246 IHRvX2V4ZWN1dGlvbl9kaXJlY3Rpb24gbXVzdCBiZSBpbXBsZW1lbnRlZCBmb3IgcmV2ZXJzZSBh c3luYwotICAgIAotICAgIEkgbWlzc2VkIGFkZGluZyBhIHRvX2V4ZWN1dGlvbl9kaXJlY3Rpb24g bWV0aG9kIHRvIHJlbW90ZS5jIGluIGNvbW1pdAotICAgIDMyMjMxNDMyOTViNSAoQWRkcyB0YXJn ZXRfZXhlY3V0aW9uX2RpcmVjdGlvbiB0byBtYWtlIHJlY29yZCB0YXJnZXRzCi0gICAgc3VwcG9y dCBhc3luYyBtb2RlKSwgR0RCIDcuNCB0aW1lLiAgTGF0ZXIsIEdEQiA3Ljggc3dpdGNoZWQgdG8K LSAgICB0YXJnZXQtYXN5bmMgb24gYnkgZGVmYXVsdCwgbWFraW5nIHRoZSByZWdyZXNzaW9uIHVz ZXItdmlzaWJsZSBieQotICAgIGRlZmF1bHQgdG9vLgotICAgIAotICAgIEZpeCBpcyBzaW1wbHkg dG8gYWRkIHRoZSBtaXNzaW5nIHRvX2V4ZWN1dGlvbl9kaXJlY3Rpb24gaW1wbGVtZW50YXRpb24K LSAgICB0byB0YXJnZXQgcmVtb3RlLgotICAgIAotICAgIFRlc3RlZCBieSBBbmRpIEtsZWVuIGFn YWluc3QgU2ltaWNzLgotICAgIAotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgMjAxNi0wNC0xMyAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgcmVtb3RlLzE5 ODQwCi0gICAgCSogcmVtb3RlLmMgKHN0cnVjdCByZW1vdGVfc3RhdGUpIDxsYXN0X3Jlc3VtZV9l eGVjX2Rpcj46IE5ldwotICAgIAlmaWVsZC4KLSAgICAJKG5ld19yZW1vdGVfc3RhdGUpOiBEZWZh dWx0IGxhc3RfcmVzdW1lX2V4ZWNfZGlyIHRvIEVYRUNfRk9SV0FSRC4KLSAgICAJKHJlbW90ZV9v cGVuXzEpOiBSZXNldCBsYXN0X3Jlc3VtZV9leGVjX2RpciB0byBFWEVDX0ZPUldBUkQuCi0gICAg CShyZW1vdGVfcmVzdW1lKTogU3RvcmUgdGhlIGxhc3QgZXhlY3V0aW9uIGRpcmVjdGlvbi4KLSAg ICAJKHJlbW90ZV9leGVjdXRpb25fZGlyZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgotICAgIAkoaW5p dF9yZW1vdGVfb3BzKTogSW5zdGFsbCBpdCBhcyB0b19leGVjdXRpb25fZGlyZWN0aW9uIHRhcmdl dF9vcHMKLSAgICAJbWV0aG9kLgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hh bmdlTG9nCi0jIyAtMSwzICsxLDE1IEBACi0rMjAxNi0wNC0xMyAgUGVkcm8gQWx2ZXMgIDxwYWx2 ZXNAcmVkaGF0LmNvbT4KLSsKLSsJUFIgcmVtb3RlLzE5ODQwCi0rCSogcmVtb3RlLmMgKHN0cnVj dCByZW1vdGVfc3RhdGUpIDxsYXN0X3Jlc3VtZV9leGVjX2Rpcj46IE5ldwotKwlmaWVsZC4KLSsJ KG5ld19yZW1vdGVfc3RhdGUpOiBEZWZhdWx0IGxhc3RfcmVzdW1lX2V4ZWNfZGlyIHRvIEVYRUNf Rk9SV0FSRC4KLSsJKHJlbW90ZV9vcGVuXzEpOiBSZXNldCBsYXN0X3Jlc3VtZV9leGVjX2RpciB0 byBFWEVDX0ZPUldBUkQuCi0rCShyZW1vdGVfcmVzdW1lKTogU3RvcmUgdGhlIGxhc3QgZXhlY3V0 aW9uIGRpcmVjdGlvbi4KLSsJKHJlbW90ZV9leGVjdXRpb25fZGlyZWN0aW9uKTogTmV3IGZ1bmN0 aW9uLgotKwkoaW5pdF9yZW1vdGVfb3BzKTogSW5zdGFsbCBpdCBhcyB0b19leGVjdXRpb25fZGly ZWN0aW9uIHRhcmdldF9vcHMKLSsJbWV0aG9kLgotKwotIDIwMTYtMDMtMzEgIFlpY2hhbyBZdSAg PHl5YzE5OTJAZ21haWwuY29tPgotIAotIAlQUiBnZGIvMTk4NTgKLS0tLSBhL2dkYi9yZW1vdGUu YwotKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtMzg5LDYgKzM4OSw5IEBAIHN0cnVjdCByZW1vdGVf c3RhdGUKLSAKLSAgIGludCBsYXN0X3NlbnRfc3RlcDsKLSAKLSsgIC8qIFRoZSBleGVjdXRpb24g ZGlyZWN0aW9uIG9mIHRoZSBsYXN0IHJlc3VtZSB3ZSBnb3QuICAqLwotKyAgZW51bSBleGVjX2Rp cmVjdGlvbl9raW5kIGxhc3RfcmVzdW1lX2V4ZWNfZGlyOwotKwotICAgY2hhciAqZmluaXNoZWRf b2JqZWN0OwotICAgY2hhciAqZmluaXNoZWRfYW5uZXg7Ci0gICBVTE9OR0VTVCBmaW5pc2hlZF9v ZmZzZXQ7Ci1AQCAtNDc3LDYgKzQ4MCw3IEBAIG5ld19yZW1vdGVfc3RhdGUgKHZvaWQpCi0gICBy ZXN1bHQtPmJ1ZiA9IChjaGFyICopIHhtYWxsb2MgKHJlc3VsdC0+YnVmX3NpemUpOwotICAgcmVz dWx0LT5yZW1vdGVfdHJhY2VmcmFtZV9udW1iZXIgPSAtMTsKLSAgIHJlc3VsdC0+bGFzdF9zZW50 X3NpZ25hbCA9IEdEQl9TSUdOQUxfMDsKLSsgIHJlc3VsdC0+bGFzdF9yZXN1bWVfZXhlY19kaXIg PSBFWEVDX0ZPUldBUkQ7Ci0gICByZXN1bHQtPmZzX3BpZCA9IC0xOwotIAotICAgcmV0dXJuIHJl c3VsdDsKLUBAIC00OTI4LDYgKzQ5MzIsOCBAQCByZW1vdGVfb3Blbl8xIChjb25zdCBjaGFyICpu YW1lLCBpbnQgZnJvbV90dHksCi0gICBycy0+Y29udGludWVfdGhyZWFkID0gbm90X3NlbnRfcHRp ZDsKLSAgIHJzLT5yZW1vdGVfdHJhY2VmcmFtZV9udW1iZXIgPSAtMTsKLSAKLSsgIHJzLT5sYXN0 X3Jlc3VtZV9leGVjX2RpciA9IEVYRUNfRk9SV0FSRDsKLSsKLSAgIC8qIFByb2JlIGZvciBhYmls aXR5IHRvIHVzZSAiVGhyZWFkSW5mbyIgcXVlcnksIGFzIHJlcXVpcmVkLiAgKi8KLSAgIHJzLT51 c2VfdGhyZWFkaW5mb19xdWVyeSA9IDE7Ci0gICBycy0+dXNlX3RocmVhZGV4dHJhX3F1ZXJ5ID0g MTsKLUBAIC01NTYzLDYgKzU1NjksOCBAQCByZW1vdGVfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29w cyAqb3BzLAotICAgcnMtPmxhc3Rfc2VudF9zaWduYWwgPSBzaWdnbmFsOwotICAgcnMtPmxhc3Rf c2VudF9zdGVwID0gc3RlcDsKLSAKLSsgIHJzLT5sYXN0X3Jlc3VtZV9leGVjX2RpciA9IGV4ZWN1 dGlvbl9kaXJlY3Rpb247Ci0rCi0gICAvKiBUaGUgdkNvbnQgcGFja2V0IGRvZXNuJ3QgbmVlZCB0 byBzcGVjaWZ5IHRocmVhZHMgdmlhIEhjLiAgKi8KLSAgIC8qIE5vIHJldmVyc2Ugc3VwcG9ydCAo eWV0KSBmb3IgdkNvbnQuICAqLwotICAgaWYgKGV4ZWN1dGlvbl9kaXJlY3Rpb24gIT0gRVhFQ19S RVZFUlNFKQotQEAgLTEzMDE4LDYgKzEzMDI2LDE3IEBAIHJlbW90ZV9jYW5fZG9fc2luZ2xlX3N0 ZXAgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMpCi0gICAgIHJldHVybiAwOwotIH0KLSAKLSsvKiBJ bXBsZW1lbnRhdGlvbiBvZiB0aGUgdG9fZXhlY3V0aW9uX2RpcmVjdGlvbiBtZXRob2QgZm9yIHRo ZSByZW1vdGUKLSsgICB0YXJnZXQuICAqLwotKwotK3N0YXRpYyBlbnVtIGV4ZWNfZGlyZWN0aW9u X2tpbmQKLStyZW1vdGVfZXhlY3V0aW9uX2RpcmVjdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNl bGYpCi0rewotKyAgc3RydWN0IHJlbW90ZV9zdGF0ZSAqcnMgPSBnZXRfcmVtb3RlX3N0YXRlICgp OwotKwotKyAgcmV0dXJuIHJzLT5sYXN0X3Jlc3VtZV9leGVjX2RpcjsKLSt9Ci0rCi0gc3RhdGlj IHZvaWQKLSBpbml0X3JlbW90ZV9vcHMgKHZvaWQpCi0gewotQEAgLTEzMTYzLDYgKzEzMTgyLDcg QEAgU3BlY2lmeSB0aGUgc2VyaWFsIGRldmljZSBpdCBpcyBjb25uZWN0ZWQgdG9cblwKLSAgIHJl bW90ZV9vcHMudG9fcmVtb3ZlX3Zmb3JrX2NhdGNocG9pbnQgPSByZW1vdGVfcmVtb3ZlX3Zmb3Jr X2NhdGNocG9pbnQ7Ci0gICByZW1vdGVfb3BzLnRvX2luc2VydF9leGVjX2NhdGNocG9pbnQgPSBy ZW1vdGVfaW5zZXJ0X2V4ZWNfY2F0Y2hwb2ludDsKLSAgIHJlbW90ZV9vcHMudG9fcmVtb3ZlX2V4 ZWNfY2F0Y2hwb2ludCA9IHJlbW90ZV9yZW1vdmVfZXhlY19jYXRjaHBvaW50OwotKyAgcmVtb3Rl X29wcy50b19leGVjdXRpb25fZGlyZWN0aW9uID0gcmVtb3RlX2V4ZWN1dGlvbl9kaXJlY3Rpb247 Ci0gfQotIAotIC8qIFNldCB1cCB0aGUgZXh0ZW5kZWQgcmVtb3RlIHZlY3RvciBieSBtYWtpbmcg YSBjb3B5IG9mIHRoZSBzdGFuZGFyZAotCi0KLQotY29tbWl0IGE2ZmYyMzA3NmY0OWM2MzIyZDk2 YTc2ZTAwOThmODAxOTEzOWJjNGUKLUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci1EYXRlOiAgIFdlZCBBcHIgMjcgMjE6Mjc6NDAgMjAxNiArMDIwMAot Ci0gICAgV29ya2Fyb3VuZCBnZGJzZXJ2ZXI8Ny43IGZvciBzZXRmcwotICAgIAotICAgIFdpdGgg Y3VycmVudCBGU0YgR0RCIEhFQUQgYW5kIG9sZCBGU0YgZ2Ric2VydmVyIEkgZXhwZWN0ZWQgSSBj b3VsZCBkbzoKLSAgICAJZ2RiIC1leCAnZmlsZSB0YXJnZXQ6L3Jvb3QvcmVkaGF0L3RocmVhZGl0 JyAtZXggJ3RhcmdldCByZW1vdGUgOjEyMzQnCi0gICAgKHN1cHBseWluZyB0aGF0IHVuc3VwcG9y dGVkIHFYZmVyOmV4ZWMtZmlsZTpyZWFkIGJ5ICJmaWxlIikKLSAgICBCdXQgdGhhdCBkb2VzIG5v dCB3b3JrIGJlY2F1c2U6Ci0gICAgCVNlbmRpbmcgcGFja2V0OiAkdkZpbGU6c2V0ZnM6MCNiZi4u LlBhY2tldCByZWNlaXZlZDogT0sKLSAgICAJUGFja2V0IHZGaWxlOnNldGZzIChob3N0aW8tc2V0 ZnMpIGlzIHN1cHBvcnRlZAotICAgIAkuLi4KLSAgICAJU2VuZGluZyBwYWNrZXQ6ICR2RmlsZTpz ZXRmczoxMDQjMjQuLi5QYWNrZXQgcmVjZWl2ZWQ6IE9LCi0gICAgCSJ0YXJnZXQ6L3Jvb3QvcmVk aGF0L3RocmVhZGl0IjogY291bGQgbm90IG9wZW4gYXMgYW4gZXhlY3V0YWJsZSBmaWxlOiBJbnZh bGlkIGFyZ3VtZW50Ci0gICAgCi0gICAgR0RCIGRvY3VtZW50YXRpb24gc2F5czoKLSAgICAJVGhl IHZhbGlkIHJlc3BvbnNlcyB0byBIb3N0IEkvTyBwYWNrZXRzIGFyZToKLSAgICAJQW4gZW1wdHkg cmVzcG9uc2UgaW5kaWNhdGVzIHRoYXQgdGhpcyBvcGVyYXRpb24gaXMgbm90IHJlY29nbml6ZWQu Ci0gICAgCi0gICAgVGhpcyAiZW1wdHkgcmVzcG9uc2UiIHZzLiAiT0siIHdhcyBhIGJ1ZyBpbiBn ZGJzZXJ2ZXIgPCA3LjcuICBJdCB3YXMgZml4ZWQgYnk6Ci0gICAgCWNvbW1pdCBlN2YwZDk3OWRk NWNjNGY4YjY1OGRmODkyZTkzZGI2OWQ2ZDY2MGI3Ci0gICAgCUF1dGhvcjogWWFvIFFpIDx5YW9A Y29kZXNvdXJjZXJ5LmNvbT4KLSAgICAJRGF0ZTogICBUdWUgRGVjIDEwIDIxOjU5OjIwIDIwMTMg KzA4MDAKLSAgICAJICAgIEZpeCBhIGJ1ZyBpbiBtYXRjaGluZyBub3RpZmljYXRpb25zLgotICAg IAlNZXNzYWdlLUlEOiA8MTM4NjY4NDYyNi0xMTQxNS0xLWdpdC1zZW5kLWVtYWlsLXlhb0Bjb2Rl c291cmNlcnkuY29tPgotICAgIAlodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVz LzIwMTMtMTIvbXNnMDAzNzMuaHRtbAotICAgIAkyMDEzLTEyLTEwICBZYW8gUWkgIDx5YW9AY29k ZXNvdXJjZXJ5LmNvbT4KLSAgICAJCSogbm90aWYuYyAoaGFuZGxlX25vdGlmX2Fjayk6IFJldHVy biAwIGlmIG5vIG5vdGlmaWNhdGlvbgotICAgIAkJbWF0Y2hlcy4KLSAgICAKLSAgICB3aXRoIHVu cGF0Y2hlZCBvbGQgRlNGIGdkYnNlcnZlciBhbmQgcGF0Y2hlZCBGU0YgR0RCIEhFQUQ6Ci0gICAg CWdkYiAtZXggJ2ZpbGUgdGFyZ2V0Oi9yb290L3JlZGhhdC90aHJlYWRpdCcgLWV4ICd0YXJnZXQg cmVtb3RlIDoxMjM0JwotICAgIAlTZW5kaW5nIHBhY2tldDogJHZGaWxlOnNldGZzOjAjYmYuLi5Q YWNrZXQgcmVjZWl2ZWQ6IE9LCi0gICAgCVBhY2tldCB2RmlsZTpzZXRmcyAoaG9zdGlvLXNldGZz KSBpcyBOT1Qgc3VwcG9ydGVkCi0gICAgCS4uLgotICAgIAkoZ2RiKSBpbmZvIHNoYXJlZGxpYnJh cnkKLSAgICAJRnJvbSAgICAgICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgIFN5bXMgUmVh ZCAgIFNoYXJlZCBPYmplY3QgTGlicmFyeQotICAgIAkweDAwMDA3ZmZmZjdkZGJhZTAgIDB4MDAw MDdmZmZmN2RmNjI3YSAgWWVzICgqKSAgICAgdGFyZ2V0Oi9saWI2NC9sZC1saW51eC14ODYtNjQu c28uMgotICAgIAkweDAwMDA3ZmZmZjdiYzQ4YTAgIDB4MDAwMDdmZmZmN2JjZjUxNCAgWWVzICgq KSAgICAgdGFyZ2V0Oi9saWI2NC9saWJwdGhyZWFkLnNvLjAKLSAgICAKLSAgICBnZGIvQ2hhbmdl TG9nCi0gICAgMjAxNi0wNC0yNyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgotICAgIAotICAgIAkqIHJlbW90ZS5jIChyZW1vdGVfc3RhcnRfcmVtb3RlKTogRGV0 ZWN0IFBBQ0tFVF92RmlsZV9zZXRmcy5zdXBwb3J0LgotCi0jIyMgYS9nZGIvQ2hhbmdlTG9nCi0j IyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDcgQEAKLSsyMDE2LTA0LTI3ICBKYW4gS3Jh dG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0rCSogcmVtb3RlLmMgKHJl bW90ZV9zdGFydF9yZW1vdGUpOiBEZXRlY3QgUEFDS0VUX3ZGaWxlX3NldGZzLnN1cHBvcnQuCi0r Ci0gMjAxNi0wNC0xNSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBu YXQvbGludXgtcHRyYWNlLmggW19fbWlwc19fXSAoR0RCX0FSQ0hfSVNfVFJBUF9CUktQVCk6IEFs c28KLS0tLSBhL2dkYi9yZW1vdGUuYwotKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtNDAyMSw2ICs0 MDIxLDI1IEBAIHJlbW90ZV9zdGFydF9yZW1vdGUgKGludCBmcm9tX3R0eSwgc3RydWN0IHRhcmdl dF9vcHMgKnRhcmdldCwgaW50IGV4dGVuZGVkX3ApCi0gICBpZiAocGFja2V0X3N1cHBvcnQgKFBB Q0tFVF9RQWxsb3cpICE9IFBBQ0tFVF9ESVNBQkxFKQotICAgICByZW1vdGVfc2V0X3Blcm1pc3Np b25zICh0YXJnZXQpOwotIAotKyAgLyogZ2Ric2VydmVyIDwgNy43IChiZWZvcmUgaXRzIGZpeCBm cm9tIDIwMTMtMTItMTEpIGRpZCByZXBseSB0byBhbnkKLSsgICAgIHVua25vd24gJ3YnIHBhY2tl dCB3aXRoIHN0cmluZyAiT0siLiAgIk9LIiBnZXRzIGludGVycHJldGVkIGJ5IEdEQgotKyAgICAg YXMgYSByZXBseSB0byBrbm93biBwYWNrZXQuICBGb3IgcGFja2V0ICJ2RmlsZTpzZXRmczoiIGl0 IGlzIGFuCi0rICAgICBpbnZhbGlkIHJlcGx5IGFuZCBHREIgd291bGQgcmV0dXJuIGVycm9yIGlu Ci0rICAgICByZW1vdGVfaG9zdGlvX3NldF9maWxlc3lzdGVtLCBtYWtpbmcgcmVtb3RlIGZpbGVz IGFjY2VzcyBpbXBvc3NpYmxlLgotKyAgICAgRGlzYWJsZSAidkZpbGU6c2V0ZnM6IiBpbiBzdWNo IGNhc2UuICBEbyBub3QgZGlzYWJsZSBvdGhlciAndicgcGFja2V0cyBhcwotKyAgICAgb3RoZXIg InZGaWxlIiBwYWNrZXRzIGdldCBjb3JyZWN0bHkgZGV0ZWN0ZWQgZXZlbiBvbiBnZGJzZXJ2ZXIg PCA3LjcuICAqLwotKyAgewotKyAgICBjb25zdCBjaGFyIHZfbXVzdHJlcGx5ZW1wdHlbXSA9ICJ2 TXVzdFJlcGx5RW1wdHkiOwotKwotKyAgICBwdXRwa3QgKHZfbXVzdHJlcGx5ZW1wdHkpOwotKyAg ICBnZXRwa3QgKCZycy0+YnVmLCAmcnMtPmJ1Zl9zaXplLCAwKTsKLSsgICAgaWYgKHN0cmNtcCAo cnMtPmJ1ZiwgIk9LIikgPT0gMCkKLSsgICAgICByZW1vdGVfcHJvdG9jb2xfcGFja2V0c1tQQUNL RVRfdkZpbGVfc2V0ZnNdLnN1cHBvcnQgPSBQQUNLRVRfRElTQUJMRTsKLSsgICAgZWxzZSBpZiAo c3RyY21wIChycy0+YnVmLCAiIikgIT0gMCkKLSsgICAgICBlcnJvciAoXygiUmVtb3RlIHJlcGxp ZWQgdW5leHBlY3RlZGx5IHRvICclcyc6ICVzIiksIHZfbXVzdHJlcGx5ZW1wdHksCi0rCSAgICAg cnMtPmJ1Zik7Ci0rICB9Ci0rCi0gICAvKiBOZXh0LCB3ZSBwb3NzaWJseSBhY3RpdmF0ZSBub2Fj ayBtb2RlLgotIAotICAgICAgSWYgdGhlIFFTdGFydE5vQWNrTW9kZSBwYWNrZXQgY29uZmlndXJh dGlvbiBpcyBzZXQgdG8gQVVUTywKLQotCi0KLWNvbW1pdCBiNjMxZTU5YmEwNWFmN2M4ODg4Mzhk M2UyZDZkNDA4YmZlNjBiNTdmCi1BdXRob3I6IEt5cnlsbyBUa2FjaG92IDxreXJ5bG8udGthY2hv dkBhcm0uY29tPgotRGF0ZTogICBUdWUgTWF5IDMgMDk6NDA6NTQgMjAxNiArMDEwMAotCi0gICAg W2dkYl0gRml4IC1XcGFyZW50aGVzZXMgd2FybmluZ3MKLSAgICAKLSAgICAyMDE2LTA1LTAzICBL eXJ5bG8gVGthY2hvdiAgPGt5cnlsby50a2FjaG92QGFybS5jb20+Ci0gICAgCi0gICAgCSogc3lt ZmlsZS5jIChmaW5kX3BjX292ZXJsYXkpOiBBZGQgYnJhY2VzIHRvIGF2b2lkIC1XcGFyZW50aGVz ZXMKLSAgICAJd2FybmluZy4KLSAgICAJKGZpbmRfcGNfbWFwcGVkX3NlY3Rpb24pOiBMaWtld2lz ZS4KLSAgICAJKGxpc3Rfb3ZlcmxheXNfY29tbWFuZCk6IExpa2V3aXNlLgotCi0jIyMgYS9nZGIv Q2hhbmdlTG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDEwIEBACi0rMjAxNi0w NS0wMyAgS3lyeWxvIFRrYWNob3YgIDxreXJ5bG8udGthY2hvdkBhcm0uY29tPgotKwotKwkqIHN5 bWZpbGUuYyAoZmluZF9wY19vdmVybGF5KTogQWRkIGJyYWNlcyB0byBhdm9pZCAtV3BhcmVudGhl c2VzCi0rCXdhcm5pbmcuCi0rCShmaW5kX3BjX21hcHBlZF9zZWN0aW9uKTogTGlrZXdpc2UuCi0r CShsaXN0X292ZXJsYXlzX2NvbW1hbmQpOiBMaWtld2lzZS4KLSsKLSAyMDE2LTA1LTAyICBFbGkg WmFyZXRza2lpICA8ZWxpekBnbnUub3JnPgotIAotIAkqIHdpbmRvd3MtbmF0LmMgKF9pbml0aWFs aXplX2NoZWNrX2Zvcl9nZGJfaW5pKTogRml4IG9mZi1ieS1vbmUKLS0tLSBhL2dkYi9zeW1maWxl LmMKLSsrKyBiL2dkYi9zeW1maWxlLmMKLUBAIC0zMjg1LDE5ICszMjg1LDIxIEBAIGZpbmRfcGNf b3ZlcmxheSAoQ09SRV9BRERSIHBjKQotICAgc3RydWN0IG9ial9zZWN0aW9uICpvc2VjdCwgKmJl c3RfbWF0Y2ggPSBOVUxMOwotIAotICAgaWYgKG92ZXJsYXlfZGVidWdnaW5nKQotLSAgICBBTExf T0JKU0VDVElPTlMgKG9iamZpbGUsIG9zZWN0KQotLSAgICAgIGlmIChzZWN0aW9uX2lzX292ZXJs YXkgKG9zZWN0KSkKLS0gICAgICB7Ci0tCWlmIChwY19pbl9tYXBwZWRfcmFuZ2UgKHBjLCBvc2Vj dCkpCi0rICAgIHsKLSsgICAgICBBTExfT0JKU0VDVElPTlMgKG9iamZpbGUsIG9zZWN0KQotKwlp ZiAoc2VjdGlvbl9pc19vdmVybGF5IChvc2VjdCkpCi0gCSAgewotLQkgICAgaWYgKHNlY3Rpb25f aXNfbWFwcGVkIChvc2VjdCkpCi0tCSAgICAgIHJldHVybiBvc2VjdDsKLS0JICAgIGVsc2UKLSsJ ICAgIGlmIChwY19pbl9tYXBwZWRfcmFuZ2UgKHBjLCBvc2VjdCkpCi0rCSAgICAgIHsKLSsJCWlm IChzZWN0aW9uX2lzX21hcHBlZCAob3NlY3QpKQotKwkJICByZXR1cm4gb3NlY3Q7Ci0rCQllbHNl Ci0rCQkgIGJlc3RfbWF0Y2ggPSBvc2VjdDsKLSsJICAgICAgfQotKwkgICAgZWxzZSBpZiAocGNf aW5fdW5tYXBwZWRfcmFuZ2UgKHBjLCBvc2VjdCkpCi0gCSAgICAgIGJlc3RfbWF0Y2ggPSBvc2Vj dDsKLSAJICB9Ci0tCWVsc2UgaWYgKHBjX2luX3VubWFwcGVkX3JhbmdlIChwYywgb3NlY3QpKQot LQkgIGJlc3RfbWF0Y2ggPSBvc2VjdDsKLS0gICAgICB9Ci0rICAgIH0KLSAgIHJldHVybiBiZXN0 X21hdGNoOwotIH0KLSAKLUBAIC0zMzEyLDkgKzMzMTQsMTEgQEAgZmluZF9wY19tYXBwZWRfc2Vj dGlvbiAoQ09SRV9BRERSIHBjKQotICAgc3RydWN0IG9ial9zZWN0aW9uICpvc2VjdDsKLSAKLSAg IGlmIChvdmVybGF5X2RlYnVnZ2luZykKLS0gICAgQUxMX09CSlNFQ1RJT05TIChvYmpmaWxlLCBv c2VjdCkKLS0gICAgICBpZiAocGNfaW5fbWFwcGVkX3JhbmdlIChwYywgb3NlY3QpICYmIHNlY3Rp b25faXNfbWFwcGVkIChvc2VjdCkpCi0tCXJldHVybiBvc2VjdDsKLSsgICAgewotKyAgICAgIEFM TF9PQkpTRUNUSU9OUyAob2JqZmlsZSwgb3NlY3QpCi0rCWlmIChwY19pbl9tYXBwZWRfcmFuZ2Ug KHBjLCBvc2VjdCkgJiYgc2VjdGlvbl9pc19tYXBwZWQgKG9zZWN0KSkKLSsJICByZXR1cm4gb3Nl Y3Q7Ci0rICAgIH0KLSAKLSAgIHJldHVybiBOVUxMOwotIH0KLUBAIC0zMzMwLDMxICszMzM0LDMz IEBAIGxpc3Rfb3ZlcmxheXNfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotICAg c3RydWN0IG9ial9zZWN0aW9uICpvc2VjdDsKLSAKLSAgIGlmIChvdmVybGF5X2RlYnVnZ2luZykK LS0gICAgQUxMX09CSlNFQ1RJT05TIChvYmpmaWxlLCBvc2VjdCkKLSsgICAgewotKyAgICAgIEFM TF9PQkpTRUNUSU9OUyAob2JqZmlsZSwgb3NlY3QpCi0gICAgICAgaWYgKHNlY3Rpb25faXNfbWFw cGVkIChvc2VjdCkpCi0tICAgICAgewotLQlzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9v YmpmaWxlX2FyY2ggKG9iamZpbGUpOwotLQljb25zdCBjaGFyICpuYW1lOwotLQliZmRfdm1hIGxt YSwgdm1hOwotLQlpbnQgc2l6ZTsKLS0KLS0Jdm1hID0gYmZkX3NlY3Rpb25fdm1hIChvYmpmaWxl LT5vYmZkLCBvc2VjdC0+dGhlX2JmZF9zZWN0aW9uKTsKLS0JbG1hID0gYmZkX3NlY3Rpb25fbG1h IChvYmpmaWxlLT5vYmZkLCBvc2VjdC0+dGhlX2JmZF9zZWN0aW9uKTsKLS0Jc2l6ZSA9IGJmZF9n ZXRfc2VjdGlvbl9zaXplIChvc2VjdC0+dGhlX2JmZF9zZWN0aW9uKTsKLS0JbmFtZSA9IGJmZF9z ZWN0aW9uX25hbWUgKG9iamZpbGUtPm9iZmQsIG9zZWN0LT50aGVfYmZkX3NlY3Rpb24pOwotLQot LQlwcmludGZfZmlsdGVyZWQgKCJTZWN0aW9uICVzLCBsb2FkZWQgYXQgIiwgbmFtZSk7Ci0tCWZw dXRzX2ZpbHRlcmVkIChwYWRkcmVzcyAoZ2RiYXJjaCwgbG1hKSwgZ2RiX3N0ZG91dCk7Ci0tCXB1 dHNfZmlsdGVyZWQgKCIgLSAiKTsKLS0JZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNo LCBsbWEgKyBzaXplKSwgZ2RiX3N0ZG91dCk7Ci0tCXByaW50Zl9maWx0ZXJlZCAoIiwgbWFwcGVk IGF0ICIpOwotLQlmcHV0c19maWx0ZXJlZCAocGFkZHJlc3MgKGdkYmFyY2gsIHZtYSksIGdkYl9z dGRvdXQpOwotLQlwdXRzX2ZpbHRlcmVkICgiIC0gIik7Ci0tCWZwdXRzX2ZpbHRlcmVkIChwYWRk cmVzcyAoZ2RiYXJjaCwgdm1hICsgc2l6ZSksIGdkYl9zdGRvdXQpOwotLQlwdXRzX2ZpbHRlcmVk ICgiXG4iKTsKLS0KLS0Jbm1hcHBlZCsrOwotLSAgICAgIH0KLSsJewotKwkgIHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7Ci0rCSAgY29uc3QgY2hh ciAqbmFtZTsKLSsJICBiZmRfdm1hIGxtYSwgdm1hOwotKwkgIGludCBzaXplOwotKwotKwkgIHZt YSA9IGJmZF9zZWN0aW9uX3ZtYSAob2JqZmlsZS0+b2JmZCwgb3NlY3QtPnRoZV9iZmRfc2VjdGlv bik7Ci0rCSAgbG1hID0gYmZkX3NlY3Rpb25fbG1hIChvYmpmaWxlLT5vYmZkLCBvc2VjdC0+dGhl X2JmZF9zZWN0aW9uKTsKLSsJICBzaXplID0gYmZkX2dldF9zZWN0aW9uX3NpemUgKG9zZWN0LT50 aGVfYmZkX3NlY3Rpb24pOwotKwkgIG5hbWUgPSBiZmRfc2VjdGlvbl9uYW1lIChvYmpmaWxlLT5v YmZkLCBvc2VjdC0+dGhlX2JmZF9zZWN0aW9uKTsKLSsKLSsJICBwcmludGZfZmlsdGVyZWQgKCJT ZWN0aW9uICVzLCBsb2FkZWQgYXQgIiwgbmFtZSk7Ci0rCSAgZnB1dHNfZmlsdGVyZWQgKHBhZGRy ZXNzIChnZGJhcmNoLCBsbWEpLCBnZGJfc3Rkb3V0KTsKLSsJICBwdXRzX2ZpbHRlcmVkICgiIC0g Iik7Ci0rCSAgZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNoLCBsbWEgKyBzaXplKSwg Z2RiX3N0ZG91dCk7Ci0rCSAgcHJpbnRmX2ZpbHRlcmVkICgiLCBtYXBwZWQgYXQgIik7Ci0rCSAg ZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChnZGJhcmNoLCB2bWEpLCBnZGJfc3Rkb3V0KTsKLSsJ ICBwdXRzX2ZpbHRlcmVkICgiIC0gIik7Ci0rCSAgZnB1dHNfZmlsdGVyZWQgKHBhZGRyZXNzIChn ZGJhcmNoLCB2bWEgKyBzaXplKSwgZ2RiX3N0ZG91dCk7Ci0rCSAgcHV0c19maWx0ZXJlZCAoIlxu Iik7Ci0rCi0rCSAgbm1hcHBlZCsrOwotKwl9Ci0rICAgIH0KLSAgIGlmIChubWFwcGVkID09IDAp Ci0gICAgIHByaW50Zl9maWx0ZXJlZCAoXygiTm8gc2VjdGlvbnMgYXJlIG1hcHBlZC5cbiIpKTsK LSB9CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA5Mzg3ZGI2Li5lOTIw Mzk4IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMjMsMTEgKzIzLDEx IEBAIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2RiCiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdu dWxpYiBpbnN0YWxsZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAx NTA4MjIKICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQotVmVyc2lvbjogNy4xMQorVmVy c2lvbjogNy4xMS4xCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyBy ZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFy dCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9y IHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogNzQlez9kaXN0fQorUmVsZWFzZTogNzUlez9kaXN0fQog CiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBh bmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFu ZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBA IC0yNDEsNyArMjQxLDcgQEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0 aHJlYWQtdGVzdC5wYXRjaAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0 YXJiYWxsLgogI1hkcm9wOiBKdXN0IGJhY2twb3J0cy4KLVBhdGNoMjMyOiBnZGItdXBzdHJlYW0u cGF0Y2gKKyNQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQ QyBQb3dlcjYvREZQIGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVk b3JhdGVzdCtwcGMKQEAgLTU1OCw5ICs1NTgsNiBAQCBQYXRjaDExMTk6IGdkYi10ZXN0c3VpdGUt cmVhZGxpbmU2My1zaWdpbnQtcmV2ZXJ0LnBhdGNoCiAjPWZlZG9yYXRlc3QKIFBhdGNoMTExMzog Z2RiLXJoYnoxMjYxNTY0LWFhcmNoNjQtaHctd2F0Y2hwb2ludC10ZXN0LnBhdGNoIAogCi0jIEZp eCBub24tc3RvcCBnZGIgLXAgPGNvbnRhaW5lcj46IGludGVybmFsIGVycm9yIChwZWRybyBBbHZl cywgUkggQlogMTMxODA0OSkuCi1QYXRjaDExMTc6IGdkYi1yaGJ6MTMxODA0OS1nZGItcC1jb250 YWluZXItaW50ZXJuYWwtZXJyb3IucGF0Y2gKLQogIyBBZGQgbWVzc2FnZXMgc3VnZ2VzdGluZyBt b3JlIHJlY2VudCBSSEVMIGdkYnNlcnZlciAoUkggQlogMTMyMTExNCkuCiBQYXRjaDExMTg6IGdk Yi1jb250YWluZXItcmgtcGtnLnBhdGNoCiAKQEAgLTc2Myw3ICs3NjAsNyBAQCBmaW5kIC1uYW1l ICIqLmluZm8qInx4YXJncyBybSAtZgogIyBNYXRjaCB0aGUgRmVkb3JhJ3MgdmVyc2lvbiBpbmZv LgogJXBhdGNoMiAtcDEKIAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNoMzQ5 IC1wMQogJXBhdGNoMTA1OCAtcDEKICVwYXRjaDEwNTkgLXAxCkBAIC04ODIsNyArODc5LDYgQEAg ZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDMzNyAtcDEKICVwYXRjaDMz MSAtcDEKICVwYXRjaDExMTMgLXAxCi0lcGF0Y2gxMTE3IC1wMQogJXBhdGNoMTExOCAtcDEKICVw YXRjaDExMjAgLXAxCiAlcGF0Y2gxMTIzIC1wMQpAQCAtMTQwNyw2ICsxNDAzLDkgQEAgdGhlbgog ZmkKIAogJWNoYW5nZWxvZworKiBNb24gSnVuICA2IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS4xLTc1LmZjMjQKKy0gUmViYXNlIHRvIHJlbGVh c2VkIEZTRiBHREIgNy4xMS4xLgorCiAqIE1vbiBNYXkgMzAgMjAxNiBKYW4gS3JhdG9jaHZpbCA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLTc0LmZjMjQKIC0gSW1wb3J0IGJhcmUg RFdfVEFHX2xleGljYWxfYmxvY2sgKFJIIEJaIDEzMjUzOTYpLgogCgpkaWZmIC0tZ2l0IGEvc291 cmNlcyBiL3NvdXJjZXMKaW5kZXggYjQ5M2FlYS4uMjY0NzhlYiAxMDA2NDQKLS0tIGEvc291cmNl cworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAogN2FkMzJkMzg5NGFhZjkwZDAwYTQzNDNh NzM1YzNlMWMgIGdkYi1saWJzdGRjKystdjMtcHl0aG9uLXIyMjU1MjEudGFyLnh6Ci1iNWM3ODQ2 ODVlMWNkZTY1YmExMzVmZWVhODZiNmQ3NSAgZ2RiLTcuMTEudGFyLnh6Cis1YWE3MTUyMmU0ODhl MzU4MjQzOTE3OTY3ZGI4NzQ3NiAgZ2RiLTcuMTEuMS50YXIueHoK