From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: - Rebuild for Fedora 14. Date: Thu, 23 Jul 2026 18:29:28 GMT Message-ID: <178483136876.1.6475856411775990135.rpms-gdb-ee681d3b2f9f@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: ee681d3b2f9fce360dc30e10ab6fdcccb440fb13 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogZWU2ODFkM2IyZjlmY2UzNjBkYzMwZTEwYWI2ZmRjY2Ni NDQwZmIxMwpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVjdC5v cmc+CkRhdGUgICA6IDIwMTAtMDctMTFUMTg6MDY6MzMrMDA6MDAKU3RhdHMgIDogKzI5NTkxLy0y OTQyIGluIDgwIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcv cnBtcy9nZGIvYy9lZTY4MWQzYjJmOWZjZTM2MGRjMzBlMTBhYjZmZGNjY2I0NDBmYjEzP2JyYW5j aD1maXgtZHVwLXBhdGNoCgpMb2c6Ci0gUmVidWlsZCBmb3IgRmVkb3JhIDE0LgoKLS0tCmRpZmYg LS1naXQgYS8uY3ZzaWdub3JlIGIvLmN2c2lnbm9yZQppbmRleCAzYjM0ZTM3Li40N2M3Y2Q2IDEw MDY0NAotLS0gYS8uY3ZzaWdub3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEsMiArMSwyIEBACi1n ZGItNy4wLjUwLjIwMTAwMjAzLnRhci5iejIKK2dkYi03LjEudGFyLmJ6MgogbGlic3RkYysrLXYz LXB5dGhvbi1yMTU1OTc4LnRhci5iejIKCmRpZmYgLS1naXQgYS9nZGItNi4zLWdzdGFjay0yMDA1 MDQxMS5wYXRjaCBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCmluZGV4IDBhYTY0MjYu LjEwMGI4NzcgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCisrKyBi L2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCkBAIC00LDEwICs0LDkgQEAKIAl0byBpbnN0 YWxsIGFuZCB1bmluc3RhbGwuCiAJKiBnc3RhY2suc2gsIGdzdGFjay4xOiBOZXcgZmlsZXMuCiAK LUluZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9NYWtlZmlsZS5pbgotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvTWFrZWZpbGUuaW4JMjAwOS0wOS0xNyAx Mjo0NzowNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9NYWtl ZmlsZS5pbgkyMDA5LTA5LTE3IDEyOjQ3OjM4LjAwMDAwMDAwMCArMDIwMAorZGlmZiAtdXAgLXJ1 TnAgZ2RiLTcuMC4xLWVtcHR5L2dkYi9NYWtlZmlsZS5pbiBnZGItNy4wLjEvZ2RiL01ha2VmaWxl LmluCistLS0gZ2RiLTcuMC4xLWVtcHR5L2dkYi9NYWtlZmlsZS5pbgkyMDEwLTA0LTA3IDIwOjM2 OjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjAuMS9nZGIvTWFrZWZpbGUuaW4JMjAxMC0w NC0wNyAyMDozNjo0Mi4wMDAwMDAwMDAgKzAyMDAKIEBAIC05ODksNyArOTg5LDcgQEAgaW5zdGFs bDogYWxsIGluc3RhbGwtb25seSAKICAKICAjIFRoZSAiaW5zdGFsbC1vbmx5IiB0YXJnZXQgYWxz byBpbnN0YWxscyB0aGUgc3lzY2FsbHMnIFhNTCBmaWxlcyBpbgpAQCAtNjMsMTAgKzYyLDkgQEAg SW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL01ha2VmaWxlLmluCiAgCiAgIyBUaGUgQysr IG5hbWUgcGFyc2VyIGNhbiBiZSBidWlsdCBzdGFuZGFsb25lIGZvciB0ZXN0aW5nLgogIHRlc3Qt Y3AtbmFtZS1wYXJzZXIubzogY3AtbmFtZS1wYXJzZXIuYwotSW5kZXg6IGdkYi02LjguOTEuMjAw OTA5MTcvZ2RiL2dzdGFjay5zaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2dz dGFjay5zaAkyMDA5LTA5LTE3IDEyOjQ3OjE0LjAwMDAwMDAwMCArMDIwMAorZGlmZiAtdXAgLXJ1 TnAgZ2RiLTcuMC4xLWVtcHR5L2dkYi9nc3RhY2suc2ggZ2RiLTcuMC4xL2dkYi9nc3RhY2suc2gK Ky0tLSBnZGItNy4wLjEtZW1wdHkvZ2RiL2dzdGFjay5zaAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIGdkYi03LjAuMS9nZGIvZ3N0YWNrLnNoCTIwMTAtMDQtMDcgMjA6 MzY6NDcuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDQ4IEBACiArIyEvYmluL3NoCiArCkBA IC04NywxNyArODUsMTcgQEAgSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2dzdGFjay5z aAogK2JhY2t0cmFjZT0iYnQiCiAraWYgdGVzdCAtZCAvcHJvYy8kMS90YXNrIDsgdGhlbgogKyAg ICAjIE5ld2VyIGtlcm5lbDsgaGFzIGEgdGFzay8gZGlyZWN0b3J5LgotKyAgICBpZiB0ZXN0IGBs cyAvcHJvYy8kMS90YXNrIHwgd2MgLWxgIC1ndCAxIDI+L2Rldi9udWxsIDsgdGhlbgorKyAgICBp ZiB0ZXN0IGAvYmluL2xzIC9wcm9jLyQxL3Rhc2sgfCAvdXNyL2Jpbi93YyAtbGAgLWd0IDEgMj4v ZGV2L251bGwgOyB0aGVuCiArCWJhY2t0cmFjZT0idGhyZWFkIGFwcGx5IGFsbCBidCIKICsgICAg ZmkKICtlbGlmIHRlc3QgLWYgL3Byb2MvJDEvbWFwcyA7IHRoZW4KICsgICAgIyBPbGRlciBrZXJu ZWw7IGdvIGJ5IGl0IGxvYWRpbmcgbGlicHRocmVhZC4KLSsgICAgaWYgZ3JlcCAtZSBsaWJwdGhy ZWFkIC9wcm9jLyQxL21hcHMgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4KKysgICAgaWYgL2Jpbi9n cmVwIC1lIGxpYnB0aHJlYWQgL3Byb2MvJDEvbWFwcyA+IC9kZXYvbnVsbCAyPiYxIDsgdGhlbgog KwliYWNrdHJhY2U9InRocmVhZCBhcHBseSBhbGwgYnQiCiArICAgIGZpCiArZmkKICsKLStHREI9 JHtHREI6LWdkYn0KKytHREI9JHtHREI6LS91c3IvYmluL2dkYn0KICsKICtpZiAkR0RCIC1ueCAt LXF1aWV0IC0tYmF0Y2ggLS1yZWFkbmV2ZXIgPiAvZGV2L251bGwgMj4mMTsgdGhlbgogKyAgICBy ZWFkbmV2ZXI9LS1yZWFkbmV2ZXIKQEAgLTExMiw3ICsxMTAsMTI3IEBAIEluZGV4OiBnZGItNi44 LjkxLjIwMDkwOTE3L2dkYi9nc3RhY2suc2gKICtzZXQgcGFnaW5hdGlvbiBubwogKyRiYWNrdHJh Y2UKICtFT0YKLStzZWQgLW4gXAotKyAgICAtZSAncy9eKGdkYikgLy8nIFwKKysvYmluL3NlZCAt biBcCisrICAgIC1lICdzL15cKChnZGIpIFwpKi8vJyBcCiArICAgIC1lICcvXiMvcCcgXAogKyAg ICAtZSAnL15UaHJlYWQvcCcKKy0tLSAvZGV2L251bGwJMjAxMC0wNC0wNyAwNjoyMDo1Mi4yODk5 OTQ1MDggKzAyMDAKKysrKyBnZGItNy4wLjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2su ZXhwCTIwMTAtMDQtMDcgMjE6NTM6NTcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDcxIEBA CisrIyBDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3NldCB0ZXN0ZmlsZSBnc3RhY2sK KytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1 YmRpcn0vJGV4ZWN1dGFibGUKKytpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0gJHtl eGVjdXRhYmxlfSAiIiB7ZGVidWd9XSA9PSAtMX0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisr c2V0IHRlc3QgInNwYXduIGluZmVyaW9yIgorK3NldCBjb21tYW5kICIke2JpbmZpbGV9IgorK3Nl dCByZXMgW3JlbW90ZV9zcGF3biBob3N0ICRjb21tYW5kXTsKKytpZiB7ICRyZXMgPCAwIHx8ICRy ZXMgPT0gIiIgfSB7CisrICAgIHBlcnJvciAiU3Bhd25pbmcgJGNvbW1hbmQgZmFpbGVkLiIKKysg ICAgZmFpbCAkdGVzdAorKyAgICByZXR1cm4KKyt9Cisrc2V0IHBpZCBbZXhwX3BpZCAtaSAkcmVz XQorK2dkYl9leHBlY3QgeworKyAgICAtcmUgImxvb3BpbmdcclxuIiB7CisrCXBhc3MgJHRlc3QK KysgICAgfQorKyAgICBlb2YgeworKwlmYWlsICIkdGVzdCAoZW9mKSIKKysJcmV0dXJuCisrICAg IH0KKysgICAgdGltZW91dCB7CisrCWZhaWwgIiR0ZXN0ICh0aW1lb3V0KSIKKysJcmV0dXJuCisr ICAgIH0KKyt9CisrZ2RiX2V4aXQKKysKKysjIFRlc3RjYXNlIHVzZXMgdGhlIG1vc3Qgc2ltcGxl IG5vdGlmaWNhdGlvbiBub3QgdG8gZ2V0IGNhdWdodCBieSBhdHRhY2ggb24KKysjIGV4aXRpbmcg dGhlIGZ1bmN0aW9uLiAgU3RpbGwgd2UgY291bGQgcmV0cnkgdGhlIGdzdGFjayBjb21tYW5kIGlm IHdlIGZhaWwuCisrCisrc2V0IHRlc3QgInNwYXduIGdzdGFjayIKKytzZXQgY29tbWFuZCAic2gg LWMgR0RCPSRHREJcXCBzaFxcICR7c3JjZGlyfS8uLi9nc3RhY2suc2hcXCAkcGlkXFw7ZWNob1xc IEdTVEFDSy1FTkQiCisrc2V0IHJlcyBbcmVtb3RlX3NwYXduIGhvc3QgJGNvbW1hbmRdOworK2lm IHsgJHJlcyA8IDAgfHwgJHJlcyA9PSAiIiB9IHsKKysgICAgcGVycm9yICJTcGF3bmluZyAkY29t bWFuZCBmYWlsZWQuIgorKyAgICBmYWlsICR0ZXN0CisrfQorK3NldCBwaWQgW2V4cF9waWQgLWkg JHJlc10KKytnZGJfZXhwZWN0IHsKKysgICAgLXJlIHteIzAgKzB4WzAtOWEtZl0rIGluIFwuP2Z1 bmMgXChcKVxyXG4jMSArMHhbMC05YS1mXSsgaW4gXC4/bWFpbiBcKFwpXHJcbkdTVEFDSy1FTkRc clxuJH0geworKwlwYXNzICR0ZXN0CisrICAgIH0KKysgICAgZW9mIHsKKysJZmFpbCAiJHRlc3Qg KGVvZikiCisrICAgIH0KKysgICAgdGltZW91dCB7CisrCWZhaWwgIiR0ZXN0ICh0aW1lb3V0KSIK KysgICAgfQorK30KKytnZGJfZXhpdAorKworK3JlbW90ZV9leGVjIGhvc3QgImtpbGwgLTkgJHBp ZCIKKy0tLSAvZGV2L251bGwJMjAxMC0wNC0wNyAwNjoyMDo1Mi4yODk5OTQ1MDggKzAyMDAKKysr KyBnZGItNy4wLjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2suYwkyMDEwLTA0LTA3IDIx OjQ2OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0MyBAQAorKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIw MDUsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisr ICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxz dGRpby5oPgorKyNpbmNsdWRlIDx1bmlzdGQuaD4KKysjaW5jbHVkZSA8c3RyaW5nLmg+CisrCisr dm9pZAorK2Z1bmMgKHZvaWQpCisreworKyAgY29uc3QgY2hhciBtc2dbXSA9ICJsb29waW5nXG4i OworKworKyAgLyogVXNlIHRoZSBtb3N0IHNpbXBsZSBub3RpZmljYXRpb24gbm90IHRvIGdldCBj YXVnaHQgYnkgYXR0YWNoIG9uIGV4aXRpbmcKKysgICAgIHRoZSBmdW5jdGlvbi4gICovCisrICB3 cml0ZSAoMSwgbXNnLCBzdHJsZW4gKG1zZykpOworKyAgCisrICBmb3IgKDs7KTsKKyt9CisrCisr aW50CisrbWFpbiAodm9pZCkKKyt7CisrICBhbGFybSAoNjApOworKyAgbmljZSAoMTAwKTsKKysK KysgIGZ1bmMgKCk7CisrCisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1n c3RhY2std2l0aG91dC1wYXRoLTIwMDYwNDE0LnBhdGNoIGIvZ2RiLTYuMy1nc3RhY2std2l0aG91 dC1wYXRoLTIwMDYwNDE0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Nzdm OTM0Li4wMDAwMDAwCi0tLSBhL2dkYi02LjMtZ3N0YWNrLXdpdGhvdXQtcGF0aC0yMDA2MDQxNC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUluZGV4OiBnZGItNi4zL2dkYi9n c3RhY2suc2gKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi4zLm9yaWcvZ2RiL2dzdGFjay5zaAkyMDA2 LTAyLTE0IDE3OjIxOjA1LjAwMDAwMDAwMCAtMDIwMAotKysrIGdkYi02LjMvZ2RiL2dzdGFjay5z aAkyMDA2LTA0LTE0IDAzOjE3OjEyLjAwMDAwMDAwMCAtMDMwMAotQEAgLTE3LDE3ICsxNywxNyBA QCBmaQotIGJhY2t0cmFjZT0iYnQiCi0gaWYgdGVzdCAtZCAvcHJvYy8kMS90YXNrIDsgdGhlbgot ICAgICAjIE5ld2VyIGtlcm5lbDsgaGFzIGEgdGFzay8gZGlyZWN0b3J5LgotLSAgICBpZiB0ZXN0 IGBscyAvcHJvYy8kMS90YXNrIHwgd2MgLWxgIC1ndCAxIDI+L2Rldi9udWxsIDsgdGhlbgotKyAg ICBpZiB0ZXN0IGAvYmluL2xzIC9wcm9jLyQxL3Rhc2sgfCAvdXNyL2Jpbi93YyAtbGAgLWd0IDEg Mj4vZGV2L251bGwgOyB0aGVuCi0gCWJhY2t0cmFjZT0idGhyZWFkIGFwcGx5IGFsbCBidCIKLSAg ICAgZmkKLSBlbGlmIHRlc3QgLWYgL3Byb2MvJDEvbWFwcyA7IHRoZW4KLSAgICAgIyBPbGRlciBr ZXJuZWw7IGdvIGJ5IGl0IGxvYWRpbmcgbGlicHRocmVhZC4KLS0gICAgaWYgZ3JlcCAtZSBsaWJw dGhyZWFkIC9wcm9jLyQxL21hcHMgPiAvZGV2L251bGwgMj4mMSA7IHRoZW4KLSsgICAgaWYgL2Jp bi9ncmVwIC1lIGxpYnB0aHJlYWQgL3Byb2MvJDEvbWFwcyA+IC9kZXYvbnVsbCAyPiYxIDsgdGhl bgotIAliYWNrdHJhY2U9InRocmVhZCBhcHBseSBhbGwgYnQiCi0gICAgIGZpCi0gZmkKLSAKLS1H REI9JHtHREI6LWdkYn0KLStHREI9JHtHREI6LS91c3IvYmluL2dkYn0KLSAKLSBpZiAkR0RCIC1u eCAtLXF1aWV0IC0tYmF0Y2ggLS1yZWFkbmV2ZXIgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotICAg ICByZWFkbmV2ZXI9LS1yZWFkbmV2ZXIKLUBAIC0zOSw3ICszOSw3IEBAIGZpCi0gc2V0IHBhZ2lu YXRpb24gbm8KLSAkYmFja3RyYWNlCi0gRU9GCi0tc2VkIC1uIFwKLSsvYmluL3NlZCAtbiBcCi0g ICAgIC1lICdzL14oZ2RiKSAvLycgXAotICAgICAtZSAnL14jL3AnIFwKLSAgICAgLWUgJy9eVGhy ZWFkL3AnCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9n ZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAppbmRleCBiZDg5ZGQ1Li4xMzJmM2JmIDEw MDY0NAotLS0gYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4z LXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaApAQCAtMTEsMTEgKzExLDExIEBACiAKICAgICAgICAg KiBnZGIudGV4aW5mbyAoRmlsZSBPcHRpb25zKTogRG9jdW1lbnQgLS1yZWFkbmV2ZXIuCiAKLUlu ZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGIt Ny4wLjkwLjIwMTAwMzA2L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTAxLTIxIDE1OjEx OjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL2RvYy9nZGIu dGV4aW5mbwkyMDEwLTAxLTIxIDE1OjEzOjAyLjAwMDAwMDAwMCArMDEwMAotQEAgLTk5Nyw2ICs5 OTcsMTIgQEAgUmVhZCBlYWNoIHN5bWJvbCBmaWxlJ3MgZW50aXJlIHN5bWJvbCB0YQorLS0tIGdk Yi03LjAuOTAuMjAxMDAzMDYub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDMtMDYgMjM6 MTk6MTMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvZG9jL2dk Yi50ZXhpbmZvCTIwMTAtMDMtMDYgMjM6MjA6MzUuMDAwMDAwMDAwICswMTAwCitAQCAtOTk1LDYg Kzk5NSwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhl IGRlZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVk ZWQuCiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRp b25zIGZhc3Rlci4KICAKQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEw MDEyMS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0 aW9ucwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL21haW4uYworSW5kZXg6IGdkYi03 LjAuOTAuMjAxMDAzMDYvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAx MDAxMjEub3JpZy9nZGIvbWFpbi5jCTIwMTAtMDEtMjEgMTU6MTE6MTguMDAwMDAwMDAwICswMTAw Ci0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvbWFpbi5jCTIwMTAtMDEtMjEgMTU6MTM6MDIu MDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5vcmlnL2dkYi9tYWluLmMJ MjAxMC0wMy0wNiAyMzoyMDoyMy4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAw MzA2L2dkYi9tYWluLmMJMjAxMC0wMy0wNiAyMzoyMDozNS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0z ODIsNiArMzgyLDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7InhkYiIs IG5vX2FyZ3VtZW50LCAmeGRiX2NvbW1hbmRzLCAxfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3Vt ZW50LCAmZGJ4X2NvbW1hbmRzLCAxfSwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcu MC41MC4yMDEwMDEyMS9nZGIvbWFpbi5jCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRl cmVkIChfKCJcCiAgICAtLXNlPUZJTEUgICAgICAgICAgVXNlIEZJTEUgYXMgc3ltYm9sIGZpbGUg YW5kIGV4ZWN1dGFibGUgZmlsZS5cblwKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9z eW1maWxlLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9zeW1maWxlLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDEwLTAx LTIxIDE1OjExOjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2Ri L3N5bWZpbGUuYwkyMDEwLTAxLTIxIDE1OjEzOjAyLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03 LjAuOTAuMjAxMDAzMDYub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTAtMDMtMDYgMjM6MTk6MTMuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvc3ltZmlsZS5jCTIwMTAt MDMtMDYgMjM6MjA6MzUuMDAwMDAwMDAwICswMTAwCiBAQCAtNzksNiArNzksNyBAQCBzdGF0aWMg dm9pZCBjbGVhcl9zeW10YWJfdXNlcnNfY2xlYW51cCAoCiAgCiAgLyogR2xvYmFsIHZhcmlhYmxl cyBvd25lZCBieSB0aGlzIGZpbGUgKi8KQEAgLTYwLDE5ICs2MCwxOSBAQCBJbmRleDogZ2RiLTcu MC41MC4yMDEwMDEyMS9nZGIvc3ltZmlsZS5jCiAgCiAgLyogRXh0ZXJuYWwgdmFyaWFibGVzIGFu ZCBmdW5jdGlvbnMgcmVmZXJlbmNlZC4gKi8KICAKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIx L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9kd2FyZjJy ZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2R3YXJm MnJlYWQuYwkyMDEwLTAxLTIxIDE1OjExOjA5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAu NTAuMjAxMDAxMjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAxLTIxIDE1OjEzOjE1LjAwMDAwMDAw MCArMDEwMAotQEAgLTUzLDYgKzUzLDcgQEAKKy0tLSBnZGItNy4wLjkwLjIwMTAwMzA2Lm9yaWcv Z2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAzLTA2IDIzOjE5OjEzLjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAzLTA2IDIzOjIwOjU0 LjAwMDAwMDAwMCArMDEwMAorQEAgLTUyLDYgKzUyLDcgQEAKKyAjaW5jbHVkZSAiZi1sYW5nLmgi CiAgI2luY2x1ZGUgInR5cGVwcmludC5oIgogICNpbmNsdWRlICJqdi1sYW5nLmgiCi0gI2luY2x1 ZGUgInZlYy5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4KICAj aW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTEyMzcsNyArMTIzOCw4IEBAIGR3YXJmMl9oYXNf aW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKK0BAIC0xMjIyLDcgKzEyMjMsOCBAQCBkd2Fy ZjJfaGFzX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlCiAgCiAgICAgICAgYmZkX21hcF9v dmVyX3NlY3Rpb25zIChvYmpmaWxlLT5vYmZkLCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25zLCBOVUxM KTsKICAgICAgfQpAQCAtODIsMTAgKzgyLDEwIEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIx L2dkYi9kd2FyZjJyZWFkLmMKICAJICAmJiBkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5hc2Vj dGlvbiAhPSBOVUxMKTsKICB9CiAgCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdG9w LmgKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90b3AuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvdG9wLmgJMjAxMC0wMS0wMSAwODozMTo0Mi4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi90b3AuaAkyMDEwLTAx LTIxIDE1OjEzOjAyLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjAuOTAuMjAxMDAzMDYub3Jp Zy9nZGIvdG9wLmgJMjAxMC0wMS0wMSAwODozMTo0Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGIt Ny4wLjkwLjIwMTAwMzA2L2dkYi90b3AuaAkyMDEwLTAzLTA2IDIzOjIwOjM1LjAwMDAwMDAwMCAr MDEwMAogQEAgLTYzLDYgKzYzLDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3Byb21wdCAoY2hhciAqKTsK ICAKICAvKiBGcm9tIHJhbmRvbSBwbGFjZXMuICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjMtdGVz dC1waWUtMjAwNTAxMDcucGF0Y2ggYi9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCmlu ZGV4IGU0MjI3ZWYuLmY5ZDViYjQgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAx MDcucGF0Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5wYXRjaApAQCAtMSwyOSAr MSwyOSBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1 cmUuYWMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvY29uZmlndXJl LmFjCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3Vp dGUvY29uZmlndXJlLmFjCTIwMDktMDctMzEgMTc6Mzg6MTYuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDA5LTA5LTA5 IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi03LjAuOTAuMjAxMDAzMDYub3JpZy9n ZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDEwLTAyLTE5IDIwOjE2OjM2LjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJ MjAxMC0wMy0wNiAyMzoxOTo1Ni4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xNDQsNiArMTQ0LDYgQEAg QUNfT1VUUFVUKFtNYWtlZmlsZSBcCiAgICBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtl ZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIFwKLSAgIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5z ZXJ2ZXIvTWFrZWZpbGUgXAotICAgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdk Yi5tb2R1bGEyL01ha2VmaWxlIFwKKyAgIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIv TWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgXAorICAgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1 bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBcCiAtICBnZGIub2JqYy9NYWtlZmlsZSBn ZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgXAogKyAgZ2RiLm9iamMvTWFrZWZp bGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUg XAogICAgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBcCiAgICBnZGIu dGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZV0pCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQorSW5kZXg6 IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAw OS0wOC0yMiAxODo1Njo0My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMDktMDktMDkgMTk6MDY6MjcuMDAwMDAwMDAwICsw MjAwCistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJl CTIwMTAtMDItMTkgMjA6MTY6MzYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEw MDMwNi9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDEwLTAzLTA2IDIzOjIwOjEyLjAwMDAwMDAw MCArMDEwMAogQEAgLTM1MTUsNyArMzUxNSw3IEBAIGRvbmUKICAKICAKICAKLS1hY19jb25maWdf ZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJj aC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5jcC9NYWtl ZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4v TWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIubWkvTWFr ZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wdC9NYWtl ZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2Uv TWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwv TWFrZWZpbGUiCi0rYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdk Yi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFz ZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYy L01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmph dmEvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5vYmpj L01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01h a2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVh ZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCistYWNfY29u ZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2Ri LmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuY3Av TWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5mb3J0 cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1p L01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2Jq Yy9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnB5dGhv bi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIu dHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKythY19jb25maWdfZmlsZXM9IiRhY19j b25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBn ZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlz YXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2Ri LnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1v ZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5v cHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdkYi5weXRo b24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2Ri LnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCiAgCiAgY2F0ID5jb25mY2FjaGUgPDxc X0FDRU9GCiAgIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJl c3VsdHMgb2YgY29uZmlndXJlCi1AQCAtNDIzMSw2ICs0MjMxLDcgQEAgZG8KK0BAIC00MjMyLDYg KzQyMzIsNyBAQCBkbwogICAgICAiZ2RiLm9iamMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD T05GSUdfRklMRVMgZ2RiLm9iamMvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIub3B0L01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7CiAgICAg ICJnZGIucGFzY2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5w YXNjYWwvTWFrZWZpbGUiIDs7CkBAIC0zMSwxMCArMzEsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKICAgICAgImdkYi5weXRob24vTWFrZWZp bGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnB5dGhvbi9NYWtlZmlsZSIgOzsK ICAgICAgImdkYi5yZXZlcnNlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVT IGdkYi5yZXZlcnNlL01ha2VmaWxlIiA7OwogICAgICAiZ2RiLnRocmVhZHMvTWFrZWZpbGUiKSBD T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnRocmVhZHMvTWFrZWZpbGUiIDs7Ci1JbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKK0lu ZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFj aC5jCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMC45MC4y MDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxMC0wMy0wNiAyMzoxOToz MS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHByb2dyYW0gaXMg aW50ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsgICBhdHRh Y2hlZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxv b3AKQEAgLTU2LDEwICs1NiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVz dHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYworSW5k ZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFj aDIuYwkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjAuOTAu MjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDEwLTAzLTA2IDIzOjE5 OjMxLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwyNCBAQAogKy8qIFRoaXMgcHJvZ3JhbSBp cyBpbnRlbmRlZCB0byBiZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgogKyAgIGF0 dGFjaGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUg bG9vcApAQCAtODUsMTAgKzg1LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKICsgICAgfQogKyAgcmV0dXJuICgwKTsKICt9Ci1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwor SW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVh ay5jCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMC45MC4y MDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDEwLTAzLTA2IDIzOjE5OjMx LjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwxNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlz IHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjM2LDEwICsyMzYsMTAgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMK ICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCitJbmRleDogZ2RiLTcuMC45MC4yMDEwMDMwNi9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDA5LTA5LTA5IDE5OjA2OjAxLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2JyZWFrMS5jCTIwMTAtMDMtMDYgMjM6MTk6MzEuMDAwMDAwMDAwICswMTAwCiBAQCAtMCww ICsxLDQ0IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1 Z2dlci4KICsKQEAgLTI4NSwxMCArMjg1LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwogK3ZvaWQgbWFya2VyMyAoYSwgYikgY2hh ciAqYSwgKmI7IHt9CS8qIHNldCBicmVha3BvaW50IDE4IGhlcmUgKi8KICt2b2lkIG1hcmtlcjQg KGQpIGxvbmcgZDsge30JCS8qIHNldCBicmVha3BvaW50IDEzIGhlcmUgKi8KICsjZW5kaWYKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIu YworSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVt YWtlci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvY29yZW1ha2VyLmMJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBn ZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwkyMDEw LTAzLTA2IDIzOjE5OjMxLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSwxNDIgQEAKICsvKiBD b3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OQogKyAgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtNDMyLDEwICs0MzIsMTAgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCiArICByZXR1 cm4gMDsKICt9CiArCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvYXR0YWNoLmV4cAorSW5kZXg6IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL3Rlc3RzdWl0 ZS9nZGIucGllL2F0dGFjaC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0 YWNoLmV4cAkyMDEwLTAzLTA2IDIzOjE5OjMxLjAwMDAwMDAwMCArMDEwMAogQEAgLTAsMCArMSw0 MzMgQEAKICsjICAgQ29weXJpZ2h0IDE5OTcsIDE5OTksIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC04NzAsMTAgKzg3MCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogK2RvX2NhbGxfYXR0YWNo X3Rlc3RzCiArCiArcmV0dXJuIDAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9icmVhay5leHAJMjAxMC0wMy0wNiAyMzoxOTozMS4wMDAwMDAwMDAgKzAxMDAKIEBAIC0wLDAg KzEsOTc3IEBACiArIyAgIENvcHlyaWdodCAxOTg4LCAxOTkwLCAxOTkxLCAxOTkyLCAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAogKyMgICAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0 CkBAIC0xODUyLDEwICsxODUyLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKICsgICAgc2VuZF9nZGIgInNldCBhcmdzIG1haW5c biIKICsgICAgZ2RiX2V4cGVjdCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIge30KICt9Ci1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCitJ bmRleDogZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUv Y29yZWZpbGUuZXhwCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTcuMC45MC4yMDEwMDMwNi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCTIwMTAt MDMtMDYgMjM6MTk6MzEuMDAwMDAwMDAwICswMTAwCiBAQCAtMCwwICsxLDI0MyBAQAogKyMgQ29w eXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIw MDAKICsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjEwMCwxMCArMjEwMCwx MCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZWZpbGUuZXhwCiArZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xdKiBpbiAu KiBcXCguKlxcKS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgogKwogK2dkYl90ZXN0 ICJjb3JlIiAiTm8gY29yZSBmaWxlIG5vdy4iCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGItNy4wLjkwLjIwMTAw MzA2L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCTIwMDktMDktMDkg MTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdGVz dHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4JMjAxMC0wMy0wNiAyMzoxOTozMS4wMDAwMDAwMDAg KzAxMDAKIEBAIC0wLDAgKzEsMTkgQEAKICtWUEFUSCA9IEBzcmNkaXJACiArc3JjZGlyID0gQHNy Y2RpckAKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjAzNjYxLWVtaXQtcmVsb2NzLnBhdGNoIGIv Z2RiLTYuNS1iejIwMzY2MS1lbWl0LXJlbG9jcy5wYXRjaAppbmRleCBmNThjYzllLi42MWUwZDU2 IDEwMDY0NAotLS0gYS9nZGItNi41LWJ6MjAzNjYxLWVtaXQtcmVsb2NzLnBhdGNoCisrKyBiL2dk Yi02LjUtYnoyMDM2NjEtZW1pdC1yZWxvY3MucGF0Y2gKQEAgLTEsMTEgKzEsMTEgQEAKLUluZGV4 OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9zeW1maWxlLmMKK0luZGV4OiBnZGItNy4wLjkwLjIw MTAwMzA2L2dkYi9zeW1maWxlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAy Lm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTAzIDEyOjI5OjU4LjAwMDAwMDAwMCArMDIwMAot KysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTAzIDEyOjQwOjU4 LjAwMDAwMDAwMCArMDIwMAotQEAgLTQwMTIsNiArNDAxMiwxMiBAQCBzeW1maWxlX2R1bW15X291 dHB1dHMgKGJmZCAqYWJmZCwgYXNlY3RpCi0gYmZkX2J5dGUgKgotIHN5bWZpbGVfcmVsb2NhdGVf ZGVidWdfc2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIGJmZF9ieXRlICpidWYp CistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5vcmlnL2dkYi9zeW1maWxlLmMJMjAxMC0wMy0wNiAy MzoyMDozNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9zeW1m aWxlLmMJMjAxMC0wMy0wNiAyMzoyNjoyNS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0zNjQyLDYgKzM2 NDIsMTIgQEAgZGVmYXVsdF9zeW1maWxlX3JlbG9jYXRlIChzdHJ1Y3Qgb2JqZmlsZQogIHsKKyAg IGJmZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7CisgCiArICAvKiBFeGVjdXRhYmxlIGZpbGVzIGhh dmUgYWxsIHRoZSByZWxvY2F0aW9ucyBhbHJlYWR5IHJlc29sdmVkLgogKyAgICogSGFuZGxlIGZp bGVzIGxpbmtlZCB3aXRoIC0tZW1pdC1yZWxvY3MuCiArICAgKiBodHRwOi8vc291cmNlcy5yZWRo YXQuY29tL21sL2dkYi8yMDA2LTA4L21zZzAwMTM3Lmh0bWwgICovCgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuNS1iejIxNjcxMS1jbG9uZS1pcy1vdXRlcm1vc3QucGF0Y2ggYi9nZGItNi41LWJ6MjE2NzEx LWNsb25lLWlzLW91dGVybW9zdC5wYXRjaAppbmRleCBhYjBjOTAyLi5iZDAzOTg1IDEwMDY0NAot LS0gYS9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRjaAorKysgYi9nZGIt Ni41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRjaApAQCAtMTY0LDcgKzE2NCw3IEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9hbWQ2NC10ZGVwLmMKICAvKiBGbG9hdGlu Zy1wb2ludCByZWdpc3RlcnMuICAqLwogLS0tIGEvZ2RiL2lhNjQtdGRlcC5jCiArKysgYi9nZGIv aWE2NC10ZGVwLmMKLUBAIC0yMTIyLDYgKzIxMjIsMTM3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZnJhbWVfdW53aW5kIGlhNjRfZnJhbWVfdW53aW5kID0KK0BAIC0yMTIyLDYgKzIxMjIsMTM4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kIGlhNjRfZnJhbWVfdW53aW5kID0KICAg IGRlZmF1bHRfZnJhbWVfc25pZmZlcgogIH07CiAgCkBAIC0yMjgsMTIgKzIyOCwxMyBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvYW1kNjQtdGRlcC5jCiArICBpZiAobWluc3ltID09 IE5VTEwpCiArICAgIHJldHVybiAwOwogKwotKyAgaW5zdHIgPSBzbG90Tl9jb250ZW50cyAoJmJ1 ZltMSU5VWF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sIDIpOworKyAgaW5zdHIgPSBzbG90Tl9jb250 ZW50cyAoJmxpbnV4X2Nsb25lMl9jb2RlW0xJTlVYX0NMT05FX1BSRV9TTE9UUyAqIDE2XSwgMik7 CiArICBpbnN0ciAmPSB+KCgoMUwgPDwgMjApIC0gMSkgPDwgMTMpOwogKyAgLyogQWRkcmVzcyBp cyByZWxhdGl2ZSB0byB0aGUganVtcCBpbnN0cnVjdGlvbiBzbG90LCBub3QgdGhlIG5leHQgb25l LiAgKi8KICsgIGluc3RyIHw9ICgoKFNZTUJPTF9WQUxVRV9BRERSRVNTIChtaW5zeW0pIC0gKHBj ICYgfjB4ZkwpKSA+PiA0KQogKwkgICAgJiAoKDFMIDw8IDIwKSAtIDEpKSA8PCAxMzsKLSsgIHJl cGxhY2Vfc2xvdE5fY29udGVudHMgKCZidWZbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLCBp bnN0ciwgMik7CisrICByZXBsYWNlX3Nsb3ROX2NvbnRlbnRzICgmbGludXhfY2xvbmUyX2NvZGVb TElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLCBpbnN0ciwKKysJCQkgIDIpOwogKwogKyAgaWYg KG1lbWNtcCAoJmJ1ZltMSU5VWF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sCiArICAgICAgICAgICAg ICAmbGludXhfY2xvbmUyX2NvZGVbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLAoKZGlmZiAt LWdpdCBhL2dkYi02LjUtYnoyMTgzNzktcHBjLXNvbGliLXRyYW1wb2xpbmUtZml4LnBhdGNoIGIv Z2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJhbXBvbGluZS1maXgucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYjI2YjAuLjAwMDAwMDAKLS0tIGEvZ2RiLTYuNS1iejIx ODM3OS1wcGMtc29saWItdHJhbXBvbGluZS1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx OSArMCwwIEBACi1odHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcu Y2dpP2lkPTIxODM3OQotCi0KLUluZGV4OiBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi9taW5zeW1z LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDgxMTI4Lm9yaWcvZ2RiL21pbnN5bXMu YwkyMDA4LTEwLTAxIDE4OjU2OjUyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAw ODExMjgvZ2RiL21pbnN5bXMuYwkyMDA4LTEyLTAyIDIzOjI0OjI3LjAwMDAwMDAwMCArMDEwMAot QEAgLTU0NCw2ICs1NDQsMTEgQEAgbG9va3VwX21pbmltYWxfc3ltYm9sX2J5X3BjX3NlY3Rpb25f MSAoQwotIAkJCSBkb24ndCBmaWxsIHRoZSBiZmRfc2VjdGlvbiBtZW1iZXIsIHNvIGRvbid0Ci0g CQkJIHRocm93IGF3YXkgc3ltYm9scyBvbiB0aG9zZSBwbGF0Zm9ybXMuICAqLwotIAkJICAgICAg JiYgU1lNQk9MX09CSl9TRUNUSU9OICgmbXN5bWJvbFtoaV0pICE9IE5VTEwKLSsJCSAgICAgIC8q IERvbid0IGlnbm9yZSBzeW1ib2xzIGZvciBzb2xpYiB0cmFtcG9saW5lcy4KLSsJCQkgTGltaXQg aXRzIHNpZGVlZmZlY3RzIC0gb25seSBmb3Igbm9uLTAgc2l6ZWQgdHJhbXBvbGluZXMuCi0rCQkJ IFJlZCBIYXQgQnVnIDIwMDUzMyB3aXRoIGl0cyByZWdyZXNzaW9uIEJ1ZyAyMTgzNzkuICAqLwot KwkJICAgICAgJiYgKE1TWU1CT0xfVFlQRSAoJm1zeW1ib2xbaGldKSAhPSBtc3Rfc29saWJfdHJh bXBvbGluZQotKwkJICAgICAgICAgIHx8IE1TWU1CT0xfU0laRSAoJm1zeW1ib2xbaGldKSkKLSAJ CSAgICAgICYmICghbWF0Y2hpbmdfb2JqX3NlY3Rpb25zCi0gCQkJICAoU1lNQk9MX09CSl9TRUNU SU9OICgmbXN5bWJvbFtoaV0pLCBzZWN0aW9uKSkpCi0gCQkgICAgewoKZGlmZiAtLWdpdCBhL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCmluZGV4IGYyZmQ0ZmUuLjc4MDk5NDAgMTAwNjQ0Ci0t LSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKKysrIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaApAQCAtNTgsMTAgKzU4LDggQEAgSHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDEvbXNnMDA1MTcuaHRtbAog CSogZXhlYy5jIChleGVjX2ZpbGVfYXR0YWNoKTogUHJpbnQgYSBtb3JlIHVzZWZ1bCBlcnJvciBt ZXNzYWdlIGlmIHRoZQogCXVzZXIgZGlkICJnZGIgY29yZSIuCiAKLUluZGV4OiBnZGItNy4wLjUw LjIwMTAwMTI4L2dkYi9leGNlcHRpb25zLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIw MTAwMTI4Lm9yaWcvZ2RiL2V4Y2VwdGlvbnMuaAkyMDEwLTAxLTE4IDA3OjI1OjIyLjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjgvZ2RiL2V4Y2VwdGlvbnMuaAkyMDEwLTAx LTI4IDIyOjQ5OjAwLjAwMDAwMDAwMCArMDEwMAorLS0tIC4vZ2RiL2V4Y2VwdGlvbnMuaAkyMDEw LTA0LTExIDIyOjMxOjMwLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2V4Y2VwdGlvbnMuaAky MDEwLTA0LTExIDIyOjMxOjQ3LjAwMDAwMDAwMCArMDIwMAogQEAgLTc4LDYgKzc4LDkgQEAgZW51 bSBlcnJvcnMgewogICAgLyogRmVhdHVyZSBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgY29weSBv ZiBHREIuICAqLwogICAgVU5TVVBQT1JURURfRVJST1IsCkBAIC03Miw0MCArNzAsNDkgQEAgSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAxMjgvZ2RiL2V4Y2VwdGlvbnMuaAogICAgLyogQWRkIG1vcmUg ZXJyb3JzIGhlcmUuICAqLwogICAgTlJfRVJST1JTCiAgfTsKLUluZGV4OiBnZGItNy4wLjUwLjIw MTAwMTI4L2dkYi9leGVjLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTI4Lm9y aWcvZ2RiL2V4ZWMuYwkyMDEwLTAxLTI4IDIyOjQ4OjU5LjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjAuNTAuMjAxMDAxMjgvZ2RiL2V4ZWMuYwkyMDEwLTAxLTI4IDIyOjU4OjQ1LjAwMDAwMDAw MCArMDEwMAorLS0tIC4vZ2RiL2V4ZWMuYwkyMDEwLTA0LTExIDIyOjMxOjMwLjAwMDAwMDAwMCAr MDIwMAorKysrIC4vZ2RiL2V4ZWMuYwkyMDEwLTA0LTExIDIyOjQxOjI2LjAwMDAwMDAwMCArMDIw MAogQEAgLTM0LDYgKzM0LDcgQEAKKyAjaW5jbHVkZSAiYXJjaC11dGlscy5oIgogICNpbmNsdWRl ICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCi0gI2luY2x1ZGUgInNvbGli LmgiCiArI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4KICAj aW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0yNTgsNiArMjU5LDE3IEBAIGV4ZWNf ZmlsZV9hdHRhY2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKLSAJICAvKiBNYWtlIHN1cmUgdG8g Y2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRvIHVzZQotIAkgICAgIGl0 LiAgKi8KLSAJICBleGVjX2Nsb3NlICgpOworQEAgLTI1NiwxMiArMjU3LDI3IEBAIGV4ZWNfZmls ZV9hdHRhY2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKKyAKKyAgICAgICBpZiAoIWJmZF9jaGVj a19mb3JtYXRfbWF0Y2hlcyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCisgCXsK KysJICBpbnQgaXNfY29yZTsKICsKICsJICAvKiBJZiB0aGUgdXNlciBhY2NpZGVudGFsbHkgZGlk ICJnZGIgY29yZSIsIHByaW50IGEgdXNlZnVsCiArCSAgICAgZXJyb3IgbWVzc2FnZS4gIENoZWNr IGl0IG9ubHkgYWZ0ZXIgYmZkX29iamVjdCBoYXMgYmVlbiBjaGVja2VkIGFzCiArCSAgICAgYSB2 YWxpZCBleGVjdXRhYmxlIG1heSBnZXQgcmVjb2duaXplZCBmb3IgZXhhbXBsZSBhbHNvIGFzCiAr CSAgICAgInRyYWQtY29yZSIuICAqLwotKwkgIGlmIChiZmRfY2hlY2tfZm9ybWF0IChleGVjX2Jm ZCwgYmZkX2NvcmUpKQotKwkgICAgdGhyb3dfZXJyb3IgKElTX0NPUkVfRVJST1IsCi0rCQkJIF8o IlwiJXNcIiBpcyBhIGNvcmUgZmlsZS5cbiIKLSsJCQkgICAiUGxlYXNlIHNwZWNpZnkgYW4gZXhl Y3V0YWJsZSB0byBkZWJ1Zy4iKSwKLSsJCQkgc2NyYXRjaF9wYXRobmFtZSk7CisrCSAgaXNfY29y ZSA9IGJmZF9jaGVja19mb3JtYXQgKGV4ZWNfYmZkLCBiZmRfY29yZSk7CiArCi0gCSAgZXJyb3Ig KF8oIlwiJXNcIjogbm90IGluIGV4ZWN1dGFibGUgZm9ybWF0OiAlcyIpLAotIAkJIHNjcmF0Y2hf cGF0aG5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKKyAJICAvKiBNYWtlIHN1 cmUgdG8gY2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRvIHVzZQorIAkg ICAgIGl0LiAgKi8KKyAJICBleGVjX2Nsb3NlICgpOworLQkgIGVycm9yIChfKCJcIiVzXCI6IG5v dCBpbiBleGVjdXRhYmxlIGZvcm1hdDogJXMiKSwKKy0JCSBzY3JhdGNoX3BhdGhuYW1lLAorLQkJ IGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRjaGluZykpOworKworKwkgIGlm IChpc19jb3JlICE9IDApCisrCSAgICB0aHJvd19lcnJvciAoSVNfQ09SRV9FUlJPUiwKKysJCSAg IF8oIlwiJXNcIiBpcyBhIGNvcmUgZmlsZS5cbiIKKysJCSAgICAgIlBsZWFzZSBzcGVjaWZ5IGFu IGV4ZWN1dGFibGUgdG8gZGVidWcuIiksCisrCQkgICBzY3JhdGNoX3BhdGhuYW1lKTsKKysJICBl bHNlCisrCSAgICBlcnJvciAoXygiXCIlc1wiOiBub3QgaW4gZXhlY3V0YWJsZSBmb3JtYXQ6ICVz IiksCisrCQkgICBzY3JhdGNoX3BhdGhuYW1lLAorKwkJICAgZ2RiX2JmZF9lcnJtc2cgKGJmZF9n ZXRfZXJyb3IgKCksIG1hdGNoaW5nKSk7CiAgCX0KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTI4 L2dkYi9tYWluLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTI4Lm9yaWcvZ2Ri L21haW4uYwkyMDEwLTAxLTI4IDIyOjQ4OjU5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAu NTAuMjAxMDAxMjgvZ2RiL21haW4uYwkyMDEwLTAxLTI4IDIyOjQ5OjAwLjAwMDAwMDAwMCArMDEw MAorIAorICAgICAgIC8qIEZJWE1FIC0gVGhpcyBzaG91bGQgb25seSBiZSBydW4gZm9yIFJTNjAw MCwgYnV0IHRoZSBpZmRlZiBpcyBhIHBvb3IKKy0tLSAuL2dkYi9tYWluLmMJMjAxMC0wNC0xMSAy MjozMTozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyAuL2dkYi9tYWluLmMJMjAxMC0wNC0xMSAyMjoz MTo0Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC0yNDEsNiArMjQxLDM2IEBAIGNhcHR1cmVkX2NvbW1h bmRfbG9vcCAodm9pZCAqZGF0YSkKICAgIHJldHVybiAxOwogIH0KCmRpZmYgLS1naXQgYS9nZGIt Ni43LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0cy1wcmVsaW5rLnBhdGNoIGIvZ2RiLTYuNy10ZXN0 c3VpdGUtc3RhYmxlLXJlc3VsdHMtcHJlbGluay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4zYzUxNTc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLTYuNy10ZXN0c3Vp dGUtc3RhYmxlLXJlc3VsdHMtcHJlbGluay5wYXRjaApAQCAtMCwwICsxLDY4IEBACitodHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMy9tc2cwMTAwNi5odG1sCitTdWJq ZWN0OiBbcGF0Y2ggb3IgRllJXSB0ZXN0c3VpdGU6IEZpeCBwcmVsaW5rLmV4cCBvbiBzeXN0ZW0g dy91bnByZWxpbmtlZCAgc3lzdGVtIGxpYnMKKworSGksCisKK3RoaXMgaXMgYSBtb3JlIGNvbnNl cnZhdGl2ZSB2YXJpYW50IHN1cGVyc2VkZWQgYnk6CisJW3BhdGNoIDQvNl0gdGVzdHN1aXRlOiBV bmlmeSB0byBsaWIvcHJlbGluay1zdXBwb3J0LmV4cAorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAxMDAyLmh0bWwKK3doZXJlIGdkYi5iYXNlL3ByZWxp bmsuZXhwIGlzIHJld29ya2VkIG9uIGdlbmVyaWMgbGliL3ByZWxpbmstc3VwcG9ydC5leHAuCisK K0kgcHJlZmVyIHRoZSBbcGF0Y2ggNC82XSBvdmVyIHRoaXMgcGF0Y2ggYnV0IHRoaXMgbWFpbCBj YW4gc2VydmUgYWxzbyBhcyBhbgoraWxsdXN0cmF0aW9uIG9mIHRoZSBjdXJyZW50IHByb2JsZW0u CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3VyIHN5c3RlbSBmb3Igc29tZSByZWFz b24gY3VycmVudGx5IGRvZXMgbm90IGhhdmUgYWxsIHRoZSBsaWJyYXJpZXMKK3ByZWxpbmtlZCBn ZGIuYmFzZS9wcmVsaW5rLmV4cCB3aWxsIGdldCBVTlJFU09MVkVEIHJhbmRvbWx5IGFsc28gYWZm ZWN0aW5nCit0ZXN0c3VpdGUgcmVzdWx0cyBkaWZmLgorCitBcHBhcmVudGx5IHRoZSB0ZXN0Y2Fz ZSBhbHJlYWR5IHRyaWVkIHRvIGF2b2lkIGFueSBzeXN0ZW0gbGlicmFyaWVzCitkZXBlbmRlbmNp ZXMgYnkgIi1ub2RlZmF1bHRsaWJzIi4gIEJ1dCBjdXJyZW50bHkgaXQgZG9lcyBoYXMgbm90IHdv cmtlZCB0aGF0Cit3YXkuCisKKyItbG0iIGlzIGNvbnRhaW5lZCBhbHJlYWR5IGV2ZW4gaW4gZGVq YWdudSdzIGRlZmF1bHRfdGFyZ2V0X2NvbXBpbGUgKG5vdCBqdXN0CitpbiBnZGIvdGVzdHN1aXRl L2xpYi9hZGEuZXhwKS4gIEJ1dCBJIGRvIG5vdCBrbm93IHdoeSBpdCBpcyB0aGVyZSBhbmQgd2hp Y2gKK3N5c3RlbXMgd291bGQgZ2V0IGJyb2tlbiBieSBzb21lIGdsb2JhbCBnZGIvdGVzdHN1aXRl LyAiLWxtIiByZW1vdmFsLgorCisKK1RoYW5rcywKK0phbgorCisKKzIwMTAtMDMtMjkgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCUZpeCB0ZXN0Y2FzZSBm YWxzZSBVTlJFU09MVkVEIGlmIHN5c3RlbSBsaWJyYXJpZXMgYXJlIG5vdCBwcmVsaW5rZWQuCisJ KiBnZGIuYmFzZS9wcmVsaW5rLmV4cDogTmV3IHZhcmlhYmxlcyBjb21waWxlLCBib2FyZCwgZXJy IGFuZCBtYXRobGliLgorCVNldCBjbGVhciBib2FyZCBtYXRobGliIGZvciAke2xpYmZpbGV9IGNv bXBpbGF0aW9uLgorCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByZWxpbmsuZXhwCisr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ByZWxpbmsuZXhwCitAQCAtNDIsNyArNDIsMjUg QEAgc2V0IHRlc3RmaWxlICJwcmVsaW5rIgorIAorIHNldCBsaWJzcmNmaWxlICR7dGVzdGZpbGV9 LWxpYi5jCisgc2V0IGxpYmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS5zbwor LWlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7bGlic3JjZmlsZX0iICIk e2xpYmZpbGV9IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVnICJhZGRpdGlvbmFsX2ZsYWdzPS1mcGlj IC1zaGFyZWQgLW5vZGVmYXVsdGxpYnMiXV0gIT0gIiJ9IHsKKysKKysjIGRlZmF1bHRfdGFyZ2V0 X2NvbXBpbGUgd291bGQgb3RoZXJ3aXNlIGFkZCAiLWxtIiBtYWtpbmcgdGhlIHRlc3RjYXNlCisr IyBkZXBlbmRlbnQgb24gd2hldGhlciB0aGUgc3lzdGVtIGxpYnJhcmllcyBhcmUgYWxyZWFkeSBw cmVsaW5rZWQuCisrIyBwcmVsaW5rOiBDb3VsZCBub3Qgc2V0IC9saWI2NC9saWJtLTIuMTEuMS5z byBvd25lciBvciBtb2RlOiBPcGVyYXRpb24gbm90IHBlcm1pdHRlZAorK3NldCBjb21waWxlIHsK KysgICAgZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtsaWJzcmNmaWxlfSIgIiR7 bGliZmlsZX0iIGV4ZWN1dGFibGUgW2xpc3QgZGVidWcgImFkZGl0aW9uYWxfZmxhZ3M9LWZwaWMg LXNoYXJlZCAtbm9kZWZhdWx0bGlicyJdCisrfQorK3NldCBib2FyZCBbdGFyZ2V0X2luZm8gbmFt ZV0KKytpZiBbYm9hcmRfaW5mbyAkYm9hcmQgZXhpc3RzIG1hdGhsaWJdIHsKKysgICAgc2V0IG1h dGhsaWIgW2JvYXJkX2luZm8gJGRlc3QgbWF0aGxpYl0KKysgICAgc2V0X2JvYXJkX2luZm8gbWF0 aGxpYiAiIgorKyAgICBzZXQgZXJyIFtldmFsICRjb21waWxlXQorKyAgICBzZXRfYm9hcmRfaW5m byBtYXRobGliICRtYXRobGliCisrfSBlbHNlIHsKKysgICAgc2V0X2JvYXJkX2luZm8gbWF0aGxp YiAiIgorKyAgICBzZXQgZXJyIFtldmFsICRjb21waWxlXQorKyAgICB1bnNldF9ib2FyZF9pbmZv IG1hdGhsaWIKKyt9CisraWYgeyRlcnIgIT0gIiJ9IHsKKyAgICAgIyBJZiBjcmVhdGluZyB0aGUg c2hhcmVkIGxpYnJhcnkgZmFpbHMsIG1heWJlIHdlIGRvbid0IGhhdmUgdGhlIHJpZ2h0IHRvb2xz CisgICAgIHJldHVybiAtMQorIH0KKwoKZGlmZiAtLWdpdCBhL2dkYi02LjgtYnoyNTQyMjktZ2Nv cmUtcHJwc2luZm8ucGF0Y2ggYi9nZGItNi44LWJ6MjU0MjI5LWdjb3JlLXBycHNpbmZvLnBhdGNo CmluZGV4IGUwZTY4YjguLjI0OWFhODEgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtYnoyNTQyMjktZ2Nv cmUtcHJwc2luZm8ucGF0Y2gKKysrIGIvZ2RiLTYuOC1iejI1NDIyOS1nY29yZS1wcnBzaW5mby5w YXRjaApAQCAtMSw4ICsxLDggQEAKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2JmZC9lbGYt YmZkLmgKK0luZGV4OiBnZGItNy4xL2JmZC9lbGYtYmZkLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4wLjUwLjIwMTAwMjAzLm9yaWcvYmZkL2VsZi1iZmQuaAkyMDEwLTAyLTAyIDEzOjM3OjM5LjAw MDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvYmZkL2VsZi1iZmQuaAkyMDEw LTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAotQEAgLTIxNDAsNyArMjE0MCw3IEBAIGV4 dGVybiBFbGZfSW50ZXJuYWxfUGhkciAqIF9iZmRfZWxmX2ZpbmQKKy0tLSBnZGItNy4xLm9yaWcv YmZkL2VsZi1iZmQuaAkyMDEwLTAyLTA5IDEzOjE0OjQyLjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi03LjEvYmZkL2VsZi1iZmQuaAkyMDEwLTA1LTE2IDIwOjIyOjM4LjAwMDAwMDAwMCArMDIwMAor QEAgLTIxNjAsNyArMjE2MCw3IEBAIGV4dGVybiBFbGZfSW50ZXJuYWxfUGhkciAqIF9iZmRfZWxm X2ZpbmQKICBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9ub3RlCiAgICAoYmZkICosIGNoYXIg KiwgaW50ICosIGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCB2b2lkICosIGludCk7CiAgZXh0ZXJu IGNoYXIgKmVsZmNvcmVfd3JpdGVfcHJwc2luZm8KQEAgLTExLDExICsxMSwxMSBAQCBJbmRleDog Z2RiLTcuMC41MC4yMDEwMDIwMy9iZmQvZWxmLWJmZC5oCiAgZXh0ZXJuIGNoYXIgKmVsZmNvcmVf d3JpdGVfcHJzdGF0dXMKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgbG9uZywgaW50LCBjb25z dCB2b2lkICopOwogIGV4dGVybiBjaGFyICogZWxmY29yZV93cml0ZV9wc3RhdHVzCi1JbmRleDog Z2RiLTcuMC41MC4yMDEwMDIwMy9iZmQvZWxmLmMKK0luZGV4OiBnZGItNy4xL2JmZC9lbGYuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAyMDMub3JpZy9iZmQvZWxmLmMJMjAxMC0w Mi0wMiAxMzozNzozOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMjAzL2Jm ZC9lbGYuYwkyMDEwLTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAotQEAgLTg0NTksNiAr ODQ1OSw3IEBAIGNoYXIgKgorLS0tIGdkYi03LjEub3JpZy9iZmQvZWxmLmMJMjAxMC0wMi0xOCAw MTowOTowNi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2JmZC9lbGYuYwkyMDEwLTA1LTE2 IDIwOjI1OjE1LjAwMDAwMDAwMCArMDIwMAorQEAgLTg1NDUsNiArODU0NSw3IEBAIGNoYXIgKgog IGVsZmNvcmVfd3JpdGVfcHJwc2luZm8gKGJmZCAgKmFiZmQsCiAgCQkJY2hhciAqYnVmLAogIAkJ CWludCAgKmJ1ZnNpeiwKQEAgLTIzLDcgKzIzLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAy MDMvYmZkL2VsZi5jCiAgCQkJY29uc3QgY2hhciAqZm5hbWUsCiAgCQkJY29uc3QgY2hhciAqcHNh cmdzKQogIHsKLUBAIC04NDg1LDkgKzg0ODYsMTUgQEAgZWxmY29yZV93cml0ZV9wcnBzaW5mbyAo YmZkICAqYWJmZCwKK0BAIC04NTcxLDI2ICs4NTcyLDQwIEBAIGVsZmNvcmVfd3JpdGVfcHJwc2lu Zm8gKGJmZCAgKmFiZmQsCiAgICAgICAgaW50IG5vdGVfdHlwZSA9IE5UX1BSUFNJTkZPOwogICNl bmRpZgogIApAQCAtNDIsNyArNDIsMTYgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMvYmZk L2VsZi5jCiAgICAgICAgcmV0dXJuIGVsZmNvcmVfd3JpdGVfbm90ZSAoYWJmZCwgYnVmLCBidWZz aXosCiAgCQkJCSBub3RlX25hbWUsIG5vdGVfdHlwZSwgJmRhdGEsIHNpemVvZiAoZGF0YSkpOwog ICAgICB9Ci1AQCAtODUwMiw5ICs4NTA5LDE1IEBAIGVsZmNvcmVfd3JpdGVfcHJwc2luZm8gKGJm ZCAgKmFiZmQsCisgICBlbHNlCisgI2VuZGlmCisgICAgIHsKKysvKiBnZGItNi44LWJ6MjU0MjI5 LWdjb3JlLXBycHNpbmZvLnBhdGNoIG1pc2FwcGxpY2F0aW9uIGdsdWUuICAqLworICNpZiBkZWZp bmVkIChIQVZFX1BTSU5GT19UKQorICAgICAgIHBzaW5mb190IGRhdGE7CisrLyogZ2RiLTYuOC1i ejI1NDIyOS1nY29yZS1wcnBzaW5mby5wYXRjaCBtaXNhcHBsaWNhdGlvbiBnbHVlLiAgKi8KKyAg ICAgICBpbnQgbm90ZV90eXBlID0gTlRfUFNJTkZPOworICNlbHNlCisgICAgICAgcHJwc2luZm9f dCBkYXRhOwogICAgICAgIGludCBub3RlX3R5cGUgPSBOVF9QUlBTSU5GTzsKICAjZW5kaWYKICAK QEAgLTYxLDEwICs3MCwxMCBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDIwMy9iZmQvZWxmLmMK ICAgICAgICByZXR1cm4gZWxmY29yZV93cml0ZV9ub3RlIChhYmZkLCBidWYsIGJ1ZnNpeiwKICAJ CQkJIG5vdGVfbmFtZSwgbm90ZV90eXBlLCAmZGF0YSwgc2l6ZW9mIChkYXRhKSk7CiAgICAgIH0K LUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9hbWQ2NC1saW51eC1uYXQuYworSW5kZXg6 IGdkYi03LjEvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41 MC4yMDEwMDIwMy5vcmlnL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEwLTAyLTAzIDA3OjI4OjIw LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2FtZDY0LWxpbnV4 LW5hdC5jCTIwMTAtMDItMDMgMDc6Mjg6MjAuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMS5v cmlnL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEwLTA1LTE2IDIwOjIyOjM4LjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi03LjEvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCTIwMTAtMDUtMTYgMjA6MjI6 MzguMDAwMDAwMDAwICswMjAwCiBAQCAtMTQwLDYgKzE0MCw3IEBAIHN0YXRpYyBpbnQgYW1kNjRf bGludXhfZ3JlZ3NldDMyX3JlZ19vZmYKICAKICBzdGF0aWMgY2hhciAqCkBAIC05OCwxMCArMTA3 LDEwIEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9hbWQ2NC1saW51eC1uYXQuYwog IH0KICAKICBzdGF0aWMgdm9pZAotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2Zic2Qt bmF0LmMKK0luZGV4OiBnZGItNy4xL2dkYi9mYnNkLW5hdC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMC41MC4yMDEwMDIwMy5vcmlnL2dkYi9mYnNkLW5hdC5jCTIwMTAtMDEtMDEgMDg6MzE6MzEu MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDIwMy9nZGIvZmJzZC1uYXQuYwky MDEwLTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjEub3JpZy9nZGIv ZmJzZC1uYXQuYwkyMDEwLTAxLTAxIDA4OjMxOjMxLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjEvZ2RiL2Zic2QtbmF0LmMJMjAxMC0wNS0xNiAyMDoyMjozOC4wMDAwMDAwMDAgKzAyMDAKIEBA IC0yMTEsNiArMjExLDcgQEAgZmJzZF9tYWtlX2NvcmVmaWxlX25vdGVzIChiZmQgKm9iZmQsIGlu dAogIAlwc2FyZ3MgPSByZWNvbmNhdCAocHNhcmdzLCBwc2FyZ3MsICIgIiwgZ2V0X2luZmVyaW9y X2FyZ3MgKCksIE5VTEwpOwogIApAQCAtMTEwLDEwICsxMTksMTAgQEAgSW5kZXg6IGdkYi03LjAu NTAuMjAxMDAyMDMvZ2RiL2Zic2QtbmF0LmMKICAJCQkJCSAgZm5hbWUsIHBzYXJncyk7CiAgICAg IH0KICAKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9saW51eC1uYXQuYworSW5kZXg6 IGdkYi03LjEvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEw MDIwMy5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDEwLTAyLTAzIDA3OjI4OjIwLjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5jCTIwMTAtMDItMDMg MDc6Mjg6MjAuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMS5vcmlnL2dkYi9saW51eC1uYXQu YwkyMDEwLTA1LTE2IDIwOjIyOjM4LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2xp bnV4LW5hdC5jCTIwMTAtMDUtMTYgMjA6MjI6MzguMDAwMDAwMDAwICswMjAwCiBAQCAtNTYsNiAr NTYsNyBAQAogICNpbmNsdWRlICJ0ZXJtaW5hbC5oIgogICNpbmNsdWRlIDxzeXMvdmZzLmg+CkBA IC0xMzEsNyArMTQwLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5h dC5jCiAgY2hhciAqKCpsaW51eF9lbGZjb3JlX3dyaXRlX3Byc3RhdHVzKQogICAgKGJmZCAqLCBj aGFyICosIGludCAqLCBsb25nLCBpbnQsIGNvbnN0IHZvaWQgKikgPSBlbGZjb3JlX3dyaXRlX3By c3RhdHVzOwogIHN0YXRpYyBjaGFyICoKLUBAIC00NDIyLDYgKzQ0MjMsMTU5IEBAIGxpbnV4X3Nw dV9tYWtlX2NvcmVmaWxlX25vdGVzIChiZmQgKm9iZmQKK0BAIC00NTA3LDYgKzQ1MDgsMTU5IEBA IGxpbnV4X3NwdV9tYWtlX2NvcmVmaWxlX25vdGVzIChiZmQgKm9iZmQKICAgIHJldHVybiBhcmdz Lm5vdGVfZGF0YTsKICB9CiAgCkBAIC0yOTEsNyArMzAwLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAu MjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5jCiAgLyogRmlsbHMgdGhlICJ0b19tYWtlX2NvcmVmaWxl X25vdGUiIHRhcmdldCB2ZWN0b3IuICBCdWlsZHMgdGhlIG5vdGUKICAgICBzZWN0aW9uIGZvciBh IGNvcmVmaWxlLCBhbmQgcmV0dXJucyBpdCBpbiBhIG1hbGxvYyBidWZmZXIuICAqLwogIAotQEAg LTQ0NDIsOCArNDU5NiwxNCBAQCBsaW51eF9uYXRfbWFrZV9jb3JlZmlsZV9ub3RlcyAoYmZkICpv YmZkCitAQCAtNDUyNyw4ICs0NjgxLDE0IEBAIGxpbnV4X25hdF9tYWtlX2NvcmVmaWxlX25vdGVz IChiZmQgKm9iZmQKICAKICAgIGlmIChnZXRfZXhlY19maWxlICgwKSkKICAgICAgewpAQCAtMzA2 LDcgKzMxNSw3IEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9saW51eC1uYXQuYwog ICAgICAgIGlmIChnZXRfaW5mZXJpb3JfYXJncyAoKSkKICAJewogIAkgIGNoYXIgKnN0cmluZ19l bmQ7Ci1AQCAtNDQ1OSw5ICs0NjE5LDE1IEBAIGxpbnV4X25hdF9tYWtlX2NvcmVmaWxlX25vdGVz IChiZmQgKm9iZmQKK0BAIC00NTQ0LDkgKzQ3MDQsMTUgQEAgbGludXhfbmF0X21ha2VfY29yZWZp bGVfbm90ZXMgKGJmZCAqb2JmZAogIAkJICAgICAgIHBzYXJnc19lbmQgLSBzdHJpbmdfZW5kKTsK ICAJICAgIH0KICAJfQpAQCAtMzI0LDEwICszMzMsMTAgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAx MDAyMDMvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIH0KICAKICAgIC8qIER1bXAgaW5mb3JtYXRpb24g Zm9yIHRocmVhZHMuICAqLwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5h dC5oCitJbmRleDogZ2RiLTcuMS9nZGIvbGludXgtbmF0LmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4wLjUwLjIwMTAwMjAzLm9yaWcvZ2RiL2xpbnV4LW5hdC5oCTIwMTAtMDItMDMgMDc6Mjg6MTku MDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDIwMy9nZGIvbGludXgtbmF0LmgJ MjAxMC0wMi0wMyAwNzoyODoyMC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4xLm9yaWcvZ2Ri L2xpbnV4LW5hdC5oCTIwMTAtMDUtMTYgMjA6MjI6MzcuMDAwMDAwMDAwICswMjAwCisrKysgZ2Ri LTcuMS9nZGIvbGludXgtbmF0LmgJMjAxMC0wNS0xNiAyMDoyMjozOC4wMDAwMDAwMDAgKzAyMDAK IEBAIC0xNzMsNyArMTczLDcgQEAgaW50IGxpbnV4X25hdF9jb3JlX29mX3RocmVhZF8xIChwdGlk X3QgcAogIC8qIFRoZXNlIGZ1bmN0aW9ucyBtYWtlIGVsZmNvcmUgbm90ZSBzZWN0aW9ucy4KICAg ICBUaGV5IG1heSBnZXQgb3ZlcnJpZGVuIGJ5IGNvZGUgYWRqdXN0aW5nIGRhdGEgZm9yIG11bHRp LXRhcmdldCBidWlsZHMuICAqLwpAQCAtMzM3LDExICszNDYsMTEgQEAgSW5kZXg6IGdkYi03LjAu NTAuMjAxMDAyMDMvZ2RiL2xpbnV4LW5hdC5oCiAgZXh0ZXJuIGNoYXIgKigqbGludXhfZWxmY29y ZV93cml0ZV9wcnN0YXR1cykKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgbG9uZywgaW50LCBj b25zdCB2b2lkICopOwogIGV4dGVybiBjaGFyICooKmxpbnV4X2VsZmNvcmVfd3JpdGVfcHJmcHJl ZykKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMjAzL2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi03 LjEvZ2RiL3Byb2Nmcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDIwMy5vcmln L2dkYi9wcm9jZnMuYwkyMDEwLTAxLTI4IDA5OjE5OjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjAuNTAuMjAxMDAyMDMvZ2RiL3Byb2Nmcy5jCTIwMTAtMDItMDMgMDc6Mjg6MjAuMDAwMDAw MDAwICswMTAwCi1AQCAtNjE4Niw2ICs2MTg2LDcgQEAgcHJvY2ZzX21ha2Vfbm90ZV9zZWN0aW9u IChiZmQgKm9iZmQsIGludAorLS0tIGdkYi03LjEub3JpZy9nZGIvcHJvY2ZzLmMJMjAxMC0wMi0x NSAxODozNTo0OS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9wcm9jZnMuYwkyMDEw LTA1LTE2IDIwOjIyOjM4LjAwMDAwMDAwMCArMDIwMAorQEAgLTYxODQsNiArNjE4NCw3IEBAIHBy b2Nmc19tYWtlX25vdGVfc2VjdGlvbiAoYmZkICpvYmZkLCBpbnQKICAgIG5vdGVfZGF0YSA9IChj aGFyICopIGVsZmNvcmVfd3JpdGVfcHJwc2luZm8gKG9iZmQsCiAgCQkJCQkgICAgICAgbm90ZV9k YXRhLAogIAkJCQkJICAgICAgIG5vdGVfc2l6ZSwKCmRpZmYgLS1naXQgYS9nZGItNi44LWlubGlu aW5nLWFkZG9uLnBhdGNoIGIvZ2RiLTYuOC1pbmxpbmluZy1hZGRvbi5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggN2I4NGVmOS4uMDAwMDAwMAotLS0gYS9nZGItNi44LWlubGlu aW5nLWFkZG9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTcxICswLDAgQEAKLWluZmNhbGwu YyA8dW53aW5kX29uX3NpZ25hbF9wPjoKLVJldmVydCB0aGUgY2hhbmdlIG9mOiBnZGItNi44LWlu bGluaW5nLnBhdGNoCi1jYXVzaW5nOiBGQUlMOiBnZGIuYmFzZS91bndpbmRvbnNpZ25hbC5leHA6 IHVud2luZG9uc2lnbmFsLCBzdGFjayB1bndvdW5kCi0KLXJlc3VtZSgpIC0+IHRhcmdldF9yZXN1 bWUoKSBtb3ZlIG9mIGNsZWFyX2lubGluZV9mcmFtZV9zdGF0ZSgpIGlzIGZvcjoKLWdkYi5taS9t aS1uc21vcmlidW5kLmV4cAotCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAw MTIxLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIwMTAtMDEtMDEgMDg6 MzI6MDQuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAx MDAKLUBAIC0xMywxMCArMTMsMTYgQEAKLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KLSAKLS1pbnQgeCwgeTsKLSsvKiBWT0xBVElMRSBmb3JjZXMgYWxsIHRoZSBpbmxpbmluZyB0 byBoYXBwZW4gYXMgb3RoZXJ3aXNlIHRoZSB3aG9sZSBwcm9ncmFtCi0rICAgZ2V0cyBvcHRpbWl6 ZWQgYnkgQ1NFIHRvIGp1c3Qgc2ltcGxlIGFzc2lnbm1lbnRzIG9mIHRoZSByZXN1bHRzLiAgKi8K LSt2b2xhdGlsZSBpbnQgeCwgeTsKLSB2b2xhdGlsZSBpbnQgcmVzdWx0OwotIAotLXZvaWQgYmFy KHZvaWQpOwotK2lubGluZSB2b2lkIGJhcih2b2lkKQotK3sKLSsgIHggKz0geTsgLyogc2V0IGJy ZWFrcG9pbnQgMSBoZXJlICovCi0rfQotKwotIAotIGlubGluZSBpbnQgZnVuYzEodm9pZCkKLSB7 Ci1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LWNtZHMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwkyMDEwLTAxLTAxIDA4OjMyOjA0LjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lu bGluZS1jbWRzLmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMywx MyArMTMsMTkgQEAKLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSAKLS1pbnQg eCwgeTsKLSsvKiBWT0xBVElMRSBmb3JjZXMgYWxsIHRoZSBpbmxpbmluZyB0byBoYXBwZW4gYXMg b3RoZXJ3aXNlIHRoZSB3aG9sZSBwcm9ncmFtCi0rICAgZ2V0cyBvcHRpbWl6ZWQgYnkgQ1NFIHRv IGp1c3Qgc2ltcGxlIGFzc2lnbm1lbnRzIG9mIHRoZSByZXN1bHRzLiAgKi8KLSt2b2xhdGlsZSBp bnQgeCwgeTsKLSB2b2xhdGlsZSBpbnQgcmVzdWx0OwotIAotLXZvaWQgYmFyKHZvaWQpOwotIHZv aWQgbWFya2VyKHZvaWQpOwotIHZvaWQgbm9pbmxpbmUodm9pZCk7Ci0gCi0raW5saW5lIHZvaWQg YmFyKHZvaWQpCi0rewotKyAgeCArPSB5OyAvKiBzZXQgYnJlYWtwb2ludCAxIGhlcmUgKi8KLSt9 Ci0rCi0gaW5saW5lIGludCBmdW5jMSh2b2lkKQotIHsKLSAgIGJhciAoKTsKLUluZGV4OiBnZGIt Ny4wLjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2lubGluZS1jbWRzLmV4cAkyMDEwLTAxLTAxIDA4OjMyOjA0LjAwMDAwMDAwMCArMDEwMAot KysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRz LmV4cAkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTIzMCw3ICsyMzAs NyBAQCBzZXQgbGluZTMgW2dkYl9nZXRfbGluZV9udW1iZXIgInNldCBicmVhCi0gZ2RiX2JyZWFr cG9pbnQgJGxpbmUzCi0gZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnNlY3V0aXZlIGZ1 bmMxIgotIAotLWdkYl90ZXN0ICJuZXh0IiAiLipmdW5jMSAuKmZpcnN0IGNhbGwuKiIgIm5leHQg dG8gZmlyc3QgZnVuYzEiCi0rZ2RiX3Rlc3QgIm5leHQiICJmdW5jMSAuKmZpcnN0IGNhbGwuKiIg Im5leHQgdG8gZmlyc3QgZnVuYzEiCi0gc2V0IG1zZyAibmV4dCB0byBzZWNvbmQgZnVuYzEiCi0g Z2RiX3Rlc3RfbXVsdGlwbGUgIm5leHQiICRtc2cgewotICAgICAtcmUgIi4qZnVuYzEgLipzZWNv bmQgY2FsbC4qJGdkYl9wcm9tcHQgJCIgewotQEAgLTI1MywxNiArMjUzLDE2IEBAIHNldCBsaW5l NCBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWEKLSBnZGJfYnJlYWtwb2ludCAkbGluZTQK LSBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEgdGhlbiBmdW5jMyIKLSAKLS1nZGJf dGVzdCAibmV4dCIgIi4qZnVuYzEgXFxcKFxcXCk7IiAibmV4dCB0byBmdW5jMSBiZWZvcmUgZnVu YzMiCi0tZ2RiX3Rlc3QgIm5leHQiICIuKmZ1bmMzIFxcXChcXFwpOyIgIm5leHQgdG8gZnVuYzMi Ci0rZ2RiX3Rlc3QgIm5leHQiICJmdW5jMSBcXFwoXFxcKTsiICJuZXh0IHRvIGZ1bmMxIGJlZm9y ZSBmdW5jMyIKLStnZGJfdGVzdCAibmV4dCIgImZ1bmMzIFxcXChcXFwpOyIgIm5leHQgdG8gZnVu YzMiCi0gCi0gIyBUZXN0IGZpbmlzaGluZyBvdXQgb2Ygb25lIHRoaW5nIGFuZCBpbnRvIGFub3Ro ZXIuCi0gc2V0IGxpbmU1IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQgYnJlYWtwb2ludCA1IGhl cmUiXQotIGdkYl9icmVha3BvaW50ICRsaW5lNQotIGdkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJmaW5pc2ggaW50byBmdW5jMSIKLSAKLS1nZGJfdGVzdCAibmV4dCIgIi4qbWFya2VyIFxcXChc XFwpOyIgIm5leHQgdG8gZmluaXNoIG1hcmtlciIKLS1nZGJfdGVzdCAic3RlcCIgIi4qc2V0IGJy ZWFrcG9pbnQgMiBoZXJlLioiICJzdGVwIGludG8gZmluaXNoIG1hcmtlciIKLStnZGJfdGVzdCAi bmV4dCIgIm1hcmtlciBcXFwoXFxcKTsiICJuZXh0IHRvIGZpbmlzaCBtYXJrZXIiCi0rZ2RiX3Rl c3QgInN0ZXAiICJzZXQgYnJlYWtwb2ludCAyIGhlcmUuKiIgInN0ZXAgaW50byBmaW5pc2ggbWFy a2VyIgotIGdkYl90ZXN0ICJmaW5pc2giICJmdW5jMSBcXFwoXFxcKTsiICJmaW5pc2ggZnJvbSBt YXJrZXIgdG8gZnVuYzEiCi0gCi0gZ2RiX3Rlc3QgInN0ZXAiICJiYXIgXFxcKFxcXCk7IiAic3Rl cCBpbnRvIGZ1bmMxIGZvciBmaW5pc2giCi1AQCAtMjk3LDEyICsyOTcsMTIgQEAgZ2RiX3Rlc3Qg InN0ZXAiICJub2lubGluZSBcXFwoXFxcKSBhdCAuKgotIGdkYl90ZXN0ICJidCIgIiMwICBub2lu bGluZS4qIzEgIC4qb3V0ZXJfaW5saW5lMS4qIzIgIC4qb3V0ZXJfaW5saW5lMi4qIzMgIG1haW4u KiIgImJhY2t0cmFjZSBhdCBub2lubGluZSBmcm9tIG91dGVyX2lubGluZTEiCi0gZ2RiX3Rlc3Qg InN0ZXAiICJpbmxpbmVkX2ZuIFxcXChcXFwpIGF0IC4qIiAiZW50ZXIgaW5saW5lZF9mbiBmcm9t IG5vaW5saW5lIgotIGdkYl90ZXN0ICJidCIgIiMwICBpbmxpbmVkX2ZuLiojMSAgbm9pbmxpbmUu KiMyICAuKm91dGVyX2lubGluZTEuKiMzICAuKm91dGVyX2lubGluZTIuKiM0ICBtYWluLioiICJi YWNrdHJhY2UgYXQgaW5saW5lZF9mbiBmcm9tIG5vaW5saW5lIgotLWdkYl90ZXN0ICJpbmZvIGZy YW1lIiAiLippbmxpbmVkIGludG8gZnJhbWUuKiIgImlubGluZWRfZm4gZnJvbSBub2lubGluZSBp bmxpbmVkIgotLWdkYl90ZXN0ICJ1cCIgIiMxICBub2lubGluZS4qIiAidXAgdG8gbm9pbmxpbmUi Ci0tZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKlxuIGNhbGxlZCBieSBmcmFtZS4qIiAibm9pbmxp bmUgZnJvbSBvdXRlcl9pbmxpbmUxIG5vdCBpbmxpbmVkIgotLWdkYl90ZXN0ICJ1cCIgIiMyICAu Km91dGVyX2lubGluZTEuKiIgInVwIHRvIG91dGVyX2lubGluZTEiCi0tZ2RiX3Rlc3QgImluZm8g ZnJhbWUiICIuKmlubGluZWQgaW50byBmcmFtZS4qIiAib3V0ZXJfaW5saW5lMSBpbmxpbmVkIgot LWdkYl90ZXN0ICJ1cCIgIiMzICAuKm91dGVyX2lubGluZTIuKiIgInVwIHRvIG91dGVyX2lubGlu ZTIiCi0tZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKmlubGluZWQgaW50byBmcmFtZS4qIiAib3V0 ZXJfaW5saW5lMiBpbmxpbmVkIgotLWdkYl90ZXN0ICJ1cCIgIiM0ICBtYWluLioiICJ1cCBmcm9t IG91dGVyX2lubGluZTIiCi0tZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIuKlxuIGNhbGxlciBvZiBm cmFtZS4qIiAibWFpbiBub3QgaW5saW5lZCIKLStnZGJfdGVzdCAiaW5mbyBmcmFtZSIgImlubGlu ZWQgaW50byBmcmFtZS4qIiAiaW5saW5lZF9mbiBmcm9tIG5vaW5saW5lIGlubGluZWQiCi0rZ2Ri X3Rlc3QgImZpbmkiICIiICJ1cCB0byBub2lubGluZSIKLStnZGJfdGVzdCAiaW5mbyBmcmFtZSIg IlxuIGNhbGxlZCBieSBmcmFtZS4qIiAibm9pbmxpbmUgZnJvbSBvdXRlcl9pbmxpbmUxIG5vdCBp bmxpbmVkIgotK2dkYl90ZXN0ICJmaW5pIiAiIiAidXAgdG8gb3V0ZXJfaW5saW5lMSIKLStnZGJf dGVzdCAiaW5mbyBmcmFtZSIgImlubGluZWQgaW50byBmcmFtZS4qIiAib3V0ZXJfaW5saW5lMSBp bmxpbmVkIgotK2dkYl90ZXN0ICJmaW5pIiAiIiAidXAgdG8gb3V0ZXJfaW5saW5lMiIKLStnZGJf dGVzdCAiaW5mbyBmcmFtZSIgImlubGluZWQgaW50byBmcmFtZS4qIiAib3V0ZXJfaW5saW5lMiBp bmxpbmVkIgotK2dkYl90ZXN0ICJmaW5pIiAiIiAidXAgZnJvbSBvdXRlcl9pbmxpbmUyIgotK2dk Yl90ZXN0ICJpbmZvIGZyYW1lIiAiIGluIG1haW4gXFteXG5cXSpcbiBzb3VyY2UgbGFuZ3VhZ2Uu KiIgIm1haW4gbm90IGlubGluZWQiCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41 MC4yMDEwMDEyMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMJMjAx MC0wMS0wMSAwODozMjowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTIx L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMJMjAxMC0wMS0yMSAxNToxNDo0 Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMywxMSArMTMsMTYgQEAKLSAgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KLSAKLS1pbnQgeCwgeTsKLSsvKiBWT0xBVElMRSBmb3JjZXMgYWxs IHRoZSBpbmxpbmluZyB0byBoYXBwZW4gYXMgb3RoZXJ3aXNlIHRoZSB3aG9sZSBwcm9ncmFtCi0r ICAgZ2V0cyBvcHRpbWl6ZWQgYnkgQ1NFIHRvIGp1c3Qgc2ltcGxlIGFzc2lnbm1lbnRzIG9mIHRo ZSByZXN1bHRzLiAgKi8KLSt2b2xhdGlsZSBpbnQgeCwgeTsKLSB2b2xhdGlsZSBpbnQgcmVzdWx0 OwotIHZvbGF0aWxlIGludCAqYXJyYXlfcDsKLSAKLS12b2lkIGJhcih2b2lkKTsKLStpbmxpbmUg dm9pZCBiYXIodm9pZCkKLSt7Ci0rICB4ICs9IHk7IC8qIHNldCBicmVha3BvaW50IDEgaGVyZSAq LwotK30KLSAKLSBpbmxpbmUgaW50IGZ1bmMxKGludCBhcmcxKQotIHsKLUluZGV4OiBnZGItNy4w LjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvaW5saW5lLWxvY2Fscy5leHAJMjAxMC0wMS0wMSAwODozMjowNC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9j YWxzLmV4cAkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTc3LDYgKzc3 LDkgQEAgaWYgeyAhICRub19mcmFtZXMgfSB7Ci0gCi0gIyBNYWtlIHN1cmUgdGhhdCBsb2NhbHMg b24gdGhlIHN0YWNrIGFyZSBmb3VuZC4gIFRoaXMgaXMgYW4gYXJyYXkgdG8KLSAjIHByZXZlbnQg aXQgZnJvbSBsaXZpbmcgaW4gYSByZWdpc3Rlci4KLStpZiBbdGVzdF9jb21waWxlcl9pbmZvICJn Y2MtNC0zLSoiXSB7Ci0rICAgIHNldHVwX2tmYWlsICotKi0qICJnY2MvZGVidWcub3B0aW1pemF0 aW9uIgotK30KLSBnZGJfdGVzdCAicHJpbnQgYXJyYXlcWzBcXSIgIlxcXCQkZGVjaW1hbCA9IDAi ICJwcmludCBsb2NhbCAoMikiCi0gCi0gaWYgeyAhICRub19mcmFtZXMgfSB7Ci1AQCAtMTE1LDQg KzExOCw3IEBAIGlmIHsgISAkbm9fZnJhbWVzIH0gewotICAgICBnZGJfdGVzdCAiaW5mbyBsb2Nh bHMiICIuKmFyZzIgPSAxODQuKiIgImluZm8gbG9jYWxzIGFib3ZlIGJhciAoM2IpIgotIH0KLSAK LStpZiBbdGVzdF9jb21waWxlcl9pbmZvICJnY2MtNC0zLSoiXSB7Ci0rICAgIHNldHVwX2tmYWls ICotKi0qICJnY2MvZGVidWcub3B0aW1pemF0aW9uIgotK30KLSBnZGJfdGVzdCAicHJpbnQgYXJy YXlcWzBcXSIgIlxcXCQkZGVjaW1hbCA9IDE4NCIgInByaW50IGxvY2FsICgzKSIKLUluZGV4OiBn ZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9mcmFtZS5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41 MC4yMDEwMDEyMS5vcmlnL2dkYi9mcmFtZS5jCTIwMTAtMDEtMjEgMTU6MTM6MjYuMDAwMDAwMDAw ICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvZnJhbWUuYwkyMDEwLTAxLTIxIDE1 OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTMxNiw3ICszMTYsNyBAQCBmcHJpbnRfZnJhbWUg KHN0cnVjdCB1aV9maWxlICpmaWxlLCBzdHJ1Ci0gc3RhdGljIHN0cnVjdCBmcmFtZV9pbmZvICoK LSBza2lwX2lubGluZWRfZnJhbWVzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCi0gewotLSAg d2hpbGUgKGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gSU5MSU5FX0ZSQU1FKQotKyAgd2hpbGUg KGZyYW1lICYmIGdldF9mcmFtZV90eXBlIChmcmFtZSkgPT0gSU5MSU5FX0ZSQU1FKQotICAgICBm cmFtZSA9IGdldF9wcmV2X2ZyYW1lIChmcmFtZSk7Ci0gCi0gICByZXR1cm4gZnJhbWU7Ci1AQCAt MTc5Miw2ICsxNzkyLDcgQEAgZ2V0X2ZyYW1lX2FkZHJlc3NfaW5fYmxvY2sgKHN0cnVjdCBmcmFt ZQotIHsKLSAgIC8qIEEgZHJhZnQgYWRkcmVzcy4gICovCi0gICBDT1JFX0FERFIgcGMgPSBnZXRf ZnJhbWVfcGMgKHRoaXNfZnJhbWUpOwotKyAgc3RydWN0IHRocmVhZF9pbmZvICp0cCA9IGluZmVy aW9yX3RocmVhZCAoKTsKLSAKLSAgIHN0cnVjdCBmcmFtZV9pbmZvICpuZXh0X2ZyYW1lID0gdGhp c19mcmFtZS0+bmV4dDsKLSAKLUBAIC0xODM0LDYgKzE4MzUsOSBAQCBnZXRfZnJhbWVfYWRkcmVz c19pbl9ibG9jayAoc3RydWN0IGZyYW1lCi0gICAgICB3aGlsZSBpbiBhbiBpbmxpbmVkIGZ1bmN0 aW9uLCB0aGVuIHRoZSBjb2RlIGFkZHJlc3Mgb2YgdGhlCi0gICAgICAiY2FsbGluZyIgbm9ybWFs IGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgYWRqdXN0ZWQgZWl0aGVyLiAgKi8KLSAKLSsgIGlmICh0 cC0+Y3VycmVudF9wY19pc19ub3RjdXJyZW50KQotKyAgICByZXR1cm4gcGMgLSAxOwotKwotICAg d2hpbGUgKGdldF9mcmFtZV90eXBlIChuZXh0X2ZyYW1lKSA9PSBJTkxJTkVfRlJBTUUpCi0gICAg IG5leHRfZnJhbWUgPSBuZXh0X2ZyYW1lLT5uZXh0OwotIAotQEAgLTE4NjUsNyArMTg2OSw3IEBA IGZpbmRfZnJhbWVfc2FsIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUKLSAJc3ltID0gaW5saW5l X3NraXBwZWRfc3ltYm9sIChpbmZlcmlvcl9wdGlkKTsKLSAKLSAgICAgICBpbml0X3NhbCAoc2Fs KTsKLS0gICAgICBpZiAoU1lNQk9MX0xJTkUgKHN5bSkgIT0gMCkKLSsgICAgICBpZiAoc3ltICE9 IE5VTEwgJiYgU1lNQk9MX0xJTkUgKHN5bSkgIT0gMCkKLSAJewotIAkgIHNhbC0+c3ltdGFiID0g U1lNQk9MX1NZTVRBQiAoc3ltKTsKLSAJICBzYWwtPmxpbmUgPSBTWU1CT0xfTElORSAoc3ltKTsK LUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9icmVha3BvaW50LmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDEwLTAxLTIx IDE1OjE0OjQxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL2Jy ZWFrcG9pbnQuYwkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTYyLDYg KzYyLDcgQEAKLSAjaW5jbHVkZSAiaml0LmgiCi0gI2luY2x1ZGUgInhtbC1zeXNjYWxsLmgiCi0g I2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCi0rI2luY2x1ZGUgImlubGluZS1mcmFtZS5oIgotIAot IC8qIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMgKi8KLSAjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxp bmUuaCIKLUBAIC0zNTU4LDEwICszNTU5LDI0IEBAIGJwc3RhdF9jaGVja19icmVha3BvaW50X2Nv bmRpdGlvbnMgKGJwc3QKLSAgIGNvbnN0IHN0cnVjdCBicF9sb2NhdGlvbiAqYmwgPSBicy0+YnJl YWtwb2ludF9hdDsKLSAgIHN0cnVjdCBicmVha3BvaW50ICpiID0gYmwtPm93bmVyOwotIAotLSAg aWYgKGZyYW1lX2lkX3AgKGItPmZyYW1lX2lkKQotLSAgICAgICYmICFmcmFtZV9pZF9lcSAoYi0+ ZnJhbWVfaWQsIGdldF9zdGFja19mcmFtZV9pZCAoZ2V0X2N1cnJlbnRfZnJhbWUgKCkpKSkKLS0g ICAgYnMtPnN0b3AgPSAwOwotLSAgZWxzZSBpZiAoYnMtPnN0b3ApCi0rICBpZiAoZnJhbWVfaWRf cCAoYi0+ZnJhbWVfaWQpKQotKyAgICB7Ci0rICAgICAgc3RydWN0IGZyYW1lX2luZm8gKmJfZnJh bWUsICpmcmFtZTsKLSsgICAgICBzdHJ1Y3QgZnJhbWVfaWQgYl9mcmFtZV9pZCwgY3VycmVudF9m cmFtZV9pZDsKLSsKLSsgICAgICBiX2ZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoYi0+ZnJhbWVf aWQpOwotKwotKyAgICAgIC8qIGdldF9zdGFja19mcmFtZV9pZCBub3JtYWxpemVzIHRoZSBpZCB0 byB0aGUgcmVhbCBub24taW5saW5lZCBmdW5jdGlvbgotKwkgYnkgc2tpcF9pbmxpbmVkX2ZyYW1l cy4gICovCi0rICAgICAgYl9mcmFtZV9pZCA9IGdldF9zdGFja19mcmFtZV9pZCAoYl9mcmFtZSk7 Ci0rICAgICAgY3VycmVudF9mcmFtZV9pZCA9IGdldF9zdGFja19mcmFtZV9pZCAoZ2V0X2N1cnJl bnRfZnJhbWUgKCkpOwotKwotKyAgICAgIC8qIENvbXBsZXRlbHkgZGlmZmVyZW50IChpbmxpbmlu ZyBub3R3aXRoc3RhbmRpbmcpIGZyYW1lcz8gICovCi0rICAgICAgaWYgKCFmcmFtZV9pZF9lcSAo Yl9mcmFtZV9pZCwgY3VycmVudF9mcmFtZV9pZCkpCi0rCWJzLT5zdG9wID0gMDsKLSsgICAgfQot KwotKyAgaWYgKGJzLT5zdG9wKQotICAgICB7Ci0gICAgICAgaW50IHZhbHVlX2lzX3plcm8gPSAw OwotICAgICAgIAotQEAgLTM3MjksNiArMzc0NCwxMiBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKHN0 cnVjdCBhZGRyZXNzX3NwYWNlCi0gCQkgIGJzLT5wcmludCA9IDA7Ci0gCQl9Ci0gCSAgICAgIGJz LT5jb21tYW5kcyA9IGNvcHlfY29tbWFuZF9saW5lcyAoYnMtPmNvbW1hbmRzKTsKLSsKLSsJICAg ICAgLyogRGlzcGxheSB0aGUgaW5uZXJtb3N0IGlubGluZWQgZnJhbWUgYXQgYSBicmVha3BvbnQg YXMgaXQgZ2l2ZXMgdG8KLSsJCSBtb3N0IG9mIHRoZSBhdmFpbGFibGUgaW5mb3JtYXRpb24uICAq LwotKwkgICAgICBpZiAoYi0+dHlwZSAhPSBicF91bnRpbCAmJiBiLT50eXBlICE9IGJwX2Zpbmlz aCkKLSsJCXdoaWxlIChpbmxpbmVfc2tpcHBlZF9mcmFtZXMgKHB0aWQpKQotKwkJICBzdGVwX2lu dG9faW5saW5lX2ZyYW1lIChwdGlkKTsKLSAJICAgIH0KLSAKLSAJICAvKiBQcmludCBub3RoaW5n IGZvciB0aGlzIGVudHJ5IGlmIHdlIGRvbnQgc3RvcCBvciBkb250IHByaW50LiAgKi8KLUBAIC02 MDQzLDkgKzYwNjQsOSBAQCBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNo Ci0gewotICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7Ci0gCi0tICAvKiBJZiBGUkFNRV9JRCBpcyB2 YWxpZCwgaXQgc2hvdWxkIGJlIGEgcmVhbCBmcmFtZSwgbm90IGFuIGlubGluZWQKLS0gICAgIG9u ZS4gICovCi0tICBnZGJfYXNzZXJ0ICghZnJhbWVfaWRfaW5saW5lZF9wIChmcmFtZV9pZCkpOwot KyAgLyogV2UgY2FuIGJlIHJldHVybmluZyBldmVuIGludG8gYW4gaW5saW5lIGZyYW1lLiAgV2hp bGUgZmluaXNoX2NvbW1hbmQgd2lsbAotKyAgICAgc2hvcnRjdXQgdGhlIGNhc2Ugb2YgcmV0dXJu aW5nIF9mcm9tXyBhbiBpbmxpbmUgZnJhbWUgd2Ugc3RpbGwgbWF5IGJlCi0rICAgICByZXR1cm5p bmcgZnJvbSBub24taW5saW5lZCBmcmFtZSBfdG9fIGFuIGlubGluZWQgZnJhbWUuICAqLwotIAot ICAgYiA9IHNldF9yYXdfYnJlYWtwb2ludCAoZ2RiYXJjaCwgc2FsLCB0eXBlKTsKLSAgIGItPmVu YWJsZV9zdGF0ZSA9IGJwX2VuYWJsZWQ7Ci1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIv aW5saW5lLWZyYW1lLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcv Z2RiL2lubGluZS1mcmFtZS5jCTIwMTAtMDEtMDEgMDg6MzE6MzYuMDAwMDAwMDAwICswMTAwCi0r KysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvaW5saW5lLWZyYW1lLmMJMjAxMC0wMS0yMSAxNTox NDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yMTMsNiArMjEzLDEyIEBAIGlubGluZV9mcmFtZV9z bmlmZmVyIChjb25zdCBzdHJ1Y3QgZnJhbWUKLSAgIGlmIChmcmFtZV9ibG9jayA9PSBOVUxMKQot ICAgICByZXR1cm4gMDsKLSAKLSsgIC8qIEZvciA+PTIgaW5saW5lZCBmdW5jdGlvbnMgU0tJUFBF RF9TWU1CT0wgbmVlZHMgdG8gYmUgZGlmZmVyZW50IGFmdGVyIGVhY2gKLSsgICAgIHN0ZXBfaW50 b19pbmxpbmVfZnJhbWUgY2FsbC4gIEJ1dCBza2lwX2lubGluZV9mcmFtZXMgaXMgY2FsbGVkIG9u bHkgb25jZQotKyAgICAgYW5kIHRodXMgU0tJUFBFRF9TWU1CT0wgbmVlZHMgdG8gYmUgY2FsY3Vs YXRlZCBieSBJTkxJTkVfRlJBTUVfU05JRkZFUi4gICovCi0rICBpZiAoc3RhdGUpCi0rICAgIHN0 YXRlLT5za2lwcGVkX3N5bWJvbCA9IE5VTEw7Ci0rCi0gICAvKiBDYWxjdWxhdGUgREVQVEgsIHRo ZSBudW1iZXIgb2YgaW5saW5lZCBmdW5jdGlvbnMgYXQgdGhpcwotICAgICAgbG9jYXRpb24uICAq LwotICAgZGVwdGggPSAwOwotQEAgLTIyMiw2ICsyMjgsMTAgQEAgaW5saW5lX2ZyYW1lX3NuaWZm ZXIgKGNvbnN0IHN0cnVjdCBmcmFtZQotICAgICAgIGlmIChibG9ja19pbmxpbmVkX3AgKGN1cl9i bG9jaykpCi0gCWRlcHRoKys7Ci0gCi0rICAgICAgaWYgKHN0YXRlICYmIGRlcHRoID09IHN0YXRl LT5za2lwcGVkX2ZyYW1lcwotKwkgICYmIHN0YXRlLT5za2lwcGVkX3N5bWJvbCA9PSBOVUxMKQot KwlzdGF0ZS0+c2tpcHBlZF9zeW1ib2wgPSBCTE9DS19GVU5DVElPTiAoY3VyX2Jsb2NrKTsKLSsK LSAgICAgICBjdXJfYmxvY2sgPSBCTE9DS19TVVBFUkJMT0NLIChjdXJfYmxvY2spOwotICAgICB9 Ci0gCi1AQCAtMzAwLDcgKzMxMCw2IEBAIHNraXBfaW5saW5lX2ZyYW1lcyAocHRpZF90IHB0aWQp Ci0gewotICAgQ09SRV9BRERSIHRoaXNfcGM7Ci0gICBzdHJ1Y3QgYmxvY2sgKmZyYW1lX2Jsb2Nr LCAqY3VyX2Jsb2NrOwotLSAgc3RydWN0IHN5bWJvbCAqbGFzdF9zeW0gPSBOVUxMOwotICAgaW50 IHNraXBfY291bnQgPSAwOwotICAgc3RydWN0IGlubGluZV9zdGF0ZSAqc3RhdGU7Ci0gCi1AQCAt MzIxLDEwICszMzAsNyBAQCBza2lwX2lubGluZV9mcmFtZXMgKHB0aWRfdCBwdGlkKQotIAkJIG9m IEJMT0NLX1NUQVJULiAgKi8KLSAJICAgICAgaWYgKEJMT0NLX1NUQVJUIChjdXJfYmxvY2spID09 IHRoaXNfcGMKLSAJCSAgfHwgYmxvY2tfc3RhcnRpbmdfcG9pbnRfYXQgKHRoaXNfcGMsIGN1cl9i bG9jaykpCi0tCQl7Ci0tCQkgIHNraXBfY291bnQrKzsKLS0JCSAgbGFzdF9zeW0gPSBCTE9DS19G VU5DVElPTiAoY3VyX2Jsb2NrKTsKLS0JCX0KLSsJCXNraXBfY291bnQrKzsKLSAJICAgICAgZWxz ZQotIAkJYnJlYWs7Ci0gCSAgICB9Ci1AQCAtMzM2LDcgKzM0Miw2IEBAIHNraXBfaW5saW5lX2Zy YW1lcyAocHRpZF90IHB0aWQpCi0gICBzdGF0ZSA9IGFsbG9jYXRlX2lubGluZV9mcmFtZV9zdGF0 ZSAocHRpZCk7Ci0gICBzdGF0ZS0+c2tpcHBlZF9mcmFtZXMgPSBza2lwX2NvdW50OwotICAgc3Rh dGUtPnNhdmVkX3BjID0gdGhpc19wYzsKLS0gIHN0YXRlLT5za2lwcGVkX3N5bWJvbCA9IGxhc3Rf c3ltOwotIAotICAgaWYgKHNraXBfY291bnQgIT0gMCkKLSAgICAgcmVpbml0X2ZyYW1lX2NhY2hl ICgpOwotQEAgLTM1NCw2ICszNTksMjMgQEAgc3RlcF9pbnRvX2lubGluZV9mcmFtZSAocHRpZF90 IHB0aWQpCi0gICByZWluaXRfZnJhbWVfY2FjaGUgKCk7Ci0gfQotIAotKy8qIFN0ZXAgb3V0IG9m IGFuIGlubGluZWQgZnVuY3Rpb24gYnkgaGlkaW5nIGl0LiAgKi8KLSsKLSt2b2lkCi0rc3RlcF9v dXRfb2ZfaW5saW5lX2ZyYW1lIChwdGlkX3QgcHRpZCkKLSt7Ci0rICBzdHJ1Y3QgaW5saW5lX3N0 YXRlICpzdGF0ZSA9IGZpbmRfaW5saW5lX2ZyYW1lX3N0YXRlIChwdGlkKTsKLSsKLSsgIGdkYl9h c3NlcnQgKHN0YXRlICE9IE5VTEwpOwotKwotKyAgLyogU2ltdWxhdGUgdGhlIGNhbGxlciBhZGp1 c3RtZW50LiAgKi8KLSsgIGlmIChzdGF0ZS0+c2tpcHBlZF9mcmFtZXMgPT0gMCkKLSsgICAgc3Rh dGUtPnNhdmVkX3BjLS07Ci0rCi0rICBzdGF0ZS0+c2tpcHBlZF9mcmFtZXMrKzsKLSsgIHJlaW5p dF9mcmFtZV9jYWNoZSAoKTsKLSt9Ci0rCi0gLyogUmV0dXJuIHRoZSBudW1iZXIgb2YgaGlkZGVu IGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1cnJlbnQKLSAgICBmcmFtZS4gICovCi0gCi1J bmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLW1h cmtlcnMuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLW1hcmtlcnMuYwkyMDEwLTAxLTAxIDA4OjMyOjA0LjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2lubGluZS1tYXJrZXJzLmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBA IC0xNSwxMSArMTUsNiBAQAotIAotIGV4dGVybiBpbnQgeCwgeTsKLSAKLS12b2lkIGJhcih2b2lk KQotLXsKLS0gIHggKz0geTsgLyogc2V0IGJyZWFrcG9pbnQgMSBoZXJlICovCi0tfQotLQotIHZv aWQgbWFya2VyKHZvaWQpCi0gewotICAgeCArPSB5OyAvKiBzZXQgYnJlYWtwb2ludCAyIGhlcmUg Ki8KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9nZGJ0aHJlYWQuaAotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9nZGIvZ2RidGhyZWFkLmgJMjAxMC0wMS0y MSAxNToxMTowOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9n ZGJ0aHJlYWQuaAkyMDEwLTAxLTIxIDE1OjE0OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTE5NSw2 ICsxOTUsMTIgQEAgc3RydWN0IHRocmVhZF9pbmZvCi0gICAvKiBGdW5jdGlvbiB0aGF0IGlzIGNh bGxlZCB0byBmcmVlIFBSSVZBVEUuICBJZiB0aGlzIGlzIE5VTEwsIHRoZW4KLSAgICAgIHhmcmVl IHdpbGwgYmUgY2FsbGVkIG9uIFBSSVZBVEUuICAqLwotICAgdm9pZCAoKnByaXZhdGVfZHRvcikg KHN0cnVjdCBwcml2YXRlX3RocmVhZF9pbmZvICopOwotKwotKyAgLyogTm9uemVybyBpZiB0aGUg Y3VycmVudCBmcmFtZSBQQyBzaG91bGQgYmUgdW53b3VuZCBhcyB0aGUgY2FsbGVyLiAgSXQgaXMK LSsgICAgIHVzZWQgdG8ga2VlcCB0aGUgYmFja3RyYWNlIHVwcGVyIGxldmVscyBleGlzdGluZyBh ZnRlciBmaW5pc2hfY29tbWFuZCBpbnRvCi0rICAgICBhbiBpbmxpbmVkIGZyYW1lIGlmIHRoZSBj dXJyZW50IGlubGluZWQgZnVuY3Rpb24vYmxvY2sgd2FzIGVuZGluZyBhdCB0aGUKLSsgICAgIGN1 cnJlbnQgUEMuICAqLwotKyAgaW50IGN1cnJlbnRfcGNfaXNfbm90Y3VycmVudDsKLSB9OwotIAot IC8qIENyZWF0ZSBhbiBlbXB0eSB0aHJlYWQgbGlzdCwgb3IgZW1wdHkgdGhlIGV4aXN0aW5nIG9u ZS4gICovCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvaW5mY21kLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAwMTIxLm9yaWcvZ2RiL2luZmNtZC5jCTIwMTAtMDEtMjEg MTU6MTE6MDkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvaW5m Y21kLmMJMjAxMC0wMS0yMSAxNToxNDo0Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xNDM5LDExICsx NDM5LDExIEBAIGZpbmlzaF9jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQotICAgICAg IHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlOwotIAotICAgICAgIHZhbHVlX3R5cGUgPSBUWVBFX1RB UkdFVF9UWVBFIChTWU1CT0xfVFlQRSAoYS0+ZnVuY3Rpb24pKTsKLS0gICAgICBpZiAoIXZhbHVl X3R5cGUpCi0rICAgICAgaWYgKCFTWU1CT0xfSU5MSU5FRCAoYS0+ZnVuY3Rpb24pICYmICF2YWx1 ZV90eXBlKQotIAlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAotIAkJCV8oImZp bmlzaF9jb21tYW5kOiBmdW5jdGlvbiBoYXMgbm8gdGFyZ2V0IHR5cGUiKSk7Ci0gCi0tICAgICAg aWYgKFRZUEVfQ09ERSAodmFsdWVfdHlwZSkgIT0gVFlQRV9DT0RFX1ZPSUQpCi0rICAgICAgaWYg KHZhbHVlX3R5cGUgJiYgVFlQRV9DT0RFICh2YWx1ZV90eXBlKSAhPSBUWVBFX0NPREVfVk9JRCkK LSAJcHJpbnRfcmV0dXJuX3ZhbHVlIChTWU1CT0xfVFlQRSAoYS0+ZnVuY3Rpb24pLCB2YWx1ZV90 eXBlKTsKLSAgICAgfQotIAotQEAgLTE1NTEsNiArMTU1MSwxNiBAQCBmaW5pc2hfZm9yd2FyZCAo c3RydWN0IHN5bWJvbCAqZnVuY3Rpb24sCi0gICB0cC0+aW5pdGlhdGluZ19mcmFtZSA9IGdldF9m cmFtZV9pZCAoZnJhbWUpOwotICAgbWFrZV9jbGVhbnVwIChkZWxldGVfbG9uZ2ptcF9icmVha3Bv aW50X2NsZWFudXAsICZ0aHJlYWQpOwotIAotKyAgLyogV2Ugc2hvdWxkIF9hbHdheXNfIHNldCBD VVJSRU5UX1BDX0lTX05PVENVUlJFTlQgaGVyZSB0byBhbHdheXMgc2VlIHRoZQotKyAgICAgY2Fs bGluZyBsaW5lIHdpdGggdGhlIG1lc3NhZ2UgYFZhbHVlIHJldHVybmVkIGlzIC4uLicuICBDdXJy ZW50bHkgaXQgaXMKLSsgICAgIHNlZW4gb25seSBpZiBhdCBsZWFzdCBvbmUgaW5zdHJ1Y3Rpb24g aXMgb24gdGhhdCBzb3VyY2UgbGluZSBhZnRlciB0aGUKLSsgICAgIGNhbGwgaW5zdHJ1Y3Rpb24u ICBXZSB3b3VsZCBhbHNvIG5lZWQgdG8gaG9vayBzdGVwX29uY2UgYW5kIG9ubHkgY2xlYXIKLSsg ICAgIENVUlJFTlRfUENfSVNfTk9UQ1VSUkVOVCBvbiB0aGUgZmlyc3Qgc3RlcC4gIEJ1dCBpdCB3 b3VsZCBiZSBhIGNoYW5nZSBvZgotKyAgICAgZ2VuZXJhbCBub24taW5saW5pbmcgYmVoYXZpb3Ig YWdhaW5zdCB1cHN0cmVhbS4gICovCi0rCi0rICBpZiAoZ2V0X2ZyYW1lX3R5cGUgKGZyYW1lKSA9 PSBJTkxJTkVfRlJBTUUpCi0rICAgIHRwLT5jdXJyZW50X3BjX2lzX25vdGN1cnJlbnQgPSAxOwot KwotICAgdHAtPnByb2NlZWRfdG9fZmluaXNoID0gMTsgICAgLyogV2Ugd2FudCBzdG9wX3JlZ2lz dGVycywgcGxlYXNlLi4uICAqLwotICAgY2FyZ3MgPSB4bWFsbG9jIChzaXplb2YgKCpjYXJncykp OwotIAotQEAgLTE1NzEsNyArMTU4MSw5IEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9s ICpmdW5jdGlvbiwKLSBzdGF0aWMgdm9pZAotIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGlu dCBmcm9tX3R0eSkKLSB7Ci0tICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7Ci0rICAvKiBGSVhN RTogUmVuYW1lIGBjdXJyZW50X2ZyYW1lJyB0byBgZnJhbWUnIHVwb24gYSBtZXJnZS4gICovCi0r ICBzdHJ1Y3QgZnJhbWVfaW5mbyAqY3VycmVudF9mcmFtZSwgKnByZXZfZnJhbWU7Ci0rICBDT1JF X0FERFIgZnJhbWVfcGM7Ci0gICBzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbjsKLSAKLSAgIGludCBh c3luY19leGVjID0gMDsKLUBAIC0xNjAyLDQ1ICsxNjE0LDYzIEBAIGZpbmlzaF9jb21tYW5kIChj aGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgIGlmICghdGFyZ2V0X2hhc19leGVjdXRpb24pCi0g ICAgIGVycm9yIChfKCJUaGUgcHJvZ3JhbSBpcyBub3QgcnVubmluZy4iKSk7Ci0gCi0tICBmcmFt ZSA9IGdldF9wcmV2X2ZyYW1lIChnZXRfc2VsZWN0ZWRfZnJhbWUgKF8oIk5vIHNlbGVjdGVkIGZy YW1lLiIpKSk7Ci0tICBpZiAoZnJhbWUgPT0gMCkKLSsgIGN1cnJlbnRfZnJhbWUgPSBnZXRfc2Vs ZWN0ZWRfZnJhbWUgKF8oIk5vIHNlbGVjdGVkIGZyYW1lLiIpKTsKLSsgIGZyYW1lX3BjID0gZ2V0 X2ZyYW1lX3BjIChjdXJyZW50X2ZyYW1lKTsKLSsgIHByZXZfZnJhbWUgPSBnZXRfcHJldl9mcmFt ZSAoY3VycmVudF9mcmFtZSk7Ci0rICBpZiAocHJldl9mcmFtZSA9PSAwKQotICAgICBlcnJvciAo XygiXCJmaW5pc2hcIiBub3QgbWVhbmluZ2Z1bCBpbiB0aGUgb3V0ZXJtb3N0IGZyYW1lLiIpKTsK LSAKLS0gIGNsZWFyX3Byb2NlZWRfc3RhdHVzICgpOwotLQotICAgLyogRmluaXNoaW5nIGZyb20g YW4gaW5saW5lIGZyYW1lIGlzIGNvbXBsZXRlbHkgZGlmZmVyZW50LiAgV2UgZG9uJ3QKLSAgICAg IHRyeSB0byBzaG93IHRoZSAicmV0dXJuIHZhbHVlIiAtIG5vIHdheSB0byBsb2NhdGUgaXQuICBT byB3ZSBkbwotICAgICAgbm90IG5lZWQgYSBjb21wbGV0aW9uLiAgKi8KLS0gIGlmIChnZXRfZnJh bWVfdHlwZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChfKCJObyBzZWxlY3RlZCBmcmFtZS4iKSkpCi0t ICAgICAgPT0gSU5MSU5FX0ZSQU1FKQotKyAgaWYgKGdldF9mcmFtZV90eXBlIChjdXJyZW50X2Zy YW1lKSA9PSBJTkxJTkVfRlJBTUUpCi0gICAgIHsKLS0gICAgICAvKiBDbGFpbSB3ZSBhcmUgc3Rl cHBpbmcgaW4gdGhlIGNhbGxpbmcgZnJhbWUuICBBbiBlbXB0eSBzdGVwCi0tCSByYW5nZSBtZWFu cyB0aGF0IHdlIHdpbGwgc3RvcCBvbmNlIHdlIGFyZW4ndCBpbiBhIGZ1bmN0aW9uCi0tCSBjYWxs ZWQgYnkgdGhhdCBmcmFtZS4gIFdlIGRvbid0IHVzZSB0aGUgbWFnaWMgIjEiIHZhbHVlIGZvcgot LQkgc3RlcF9yYW5nZV9lbmQsIGJlY2F1c2UgdGhlbiBpbmZydW4gd2lsbCB0aGluayB0aGlzIGlz IG5leHRpLAotLQkgYW5kIG5vdCBzdGVwIG92ZXIgdGhlIHJlc3Qgb2YgdGhpcyBpbmxpbmVkIGZ1 bmN0aW9uIGNhbGwuICAqLwotICAgICAgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAgPSBpbmZlcmlv cl90aHJlYWQgKCk7Ci0gICAgICAgc3RydWN0IHN5bXRhYl9hbmRfbGluZSBlbXB0eV9zYWw7Ci0t ICAgICAgaW5pdF9zYWwgKCZlbXB0eV9zYWwpOwotLSAgICAgIHNldF9zdGVwX2luZm8gKGZyYW1l LCBlbXB0eV9zYWwpOwotLSAgICAgIHRwLT5zdGVwX3JhbmdlX3N0YXJ0ID0gdHAtPnN0ZXBfcmFu Z2VfZW5kID0gZ2V0X2ZyYW1lX3BjIChmcmFtZSk7Ci0tICAgICAgdHAtPnN0ZXBfb3Zlcl9jYWxs cyA9IFNURVBfT1ZFUl9BTEw7Ci0rICAgICAgc3RydWN0IGJsb2NrICpmcmFtZV9ibG9jazsKLSAK LSAgICAgICAvKiBQcmludCBpbmZvIG9uIHRoZSBzZWxlY3RlZCBmcmFtZSwgaW5jbHVkaW5nIGxl dmVsIG51bWJlciBidXQgbm90Ci0gCSBzb3VyY2UuICAqLwotICAgICAgIGlmIChmcm9tX3R0eSkK LSAJewotIAkgIHByaW50Zl9maWx0ZXJlZCAoXygiUnVuIHRpbGwgZXhpdCBmcm9tICIpKTsKLS0J ICBwcmludF9zdGFja19mcmFtZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChOVUxMKSwgMSwgTE9DQVRJ T04pOwotKwkgIHByaW50X3N0YWNrX2ZyYW1lIChjdXJyZW50X2ZyYW1lLCAxLCBMT0NBVElPTik7 Ci0rCX0KLSsKLSsgICAgICAvKiBFdmVuIGp1c3QgYSBzaW5nbGUgc3RlcGkgd291bGQgZ2V0IHVz IG91dCBvZiB0aGUgY2FsbGVyIGZ1bmN0aW9uIFBDCi0rCSByYW5nZS4gICovCi0rCi0rICAgICAg ZnJhbWVfYmxvY2sgPSBnZXRfZnJhbWVfYmxvY2sgKGN1cnJlbnRfZnJhbWUsIE5VTEwpOwotKwot KyAgICAgIC8qIEZSQU1FX0JMT0NLIG11c3QgYmUgaW5pdGlhbGl6ZWQgYW5kIGFsc28gdGhlIGZy YW1lIHByaW50aW5nIGFib3ZlIG11c3QKLSsgICAgICAgICBiZSBkb25lIHN0aWxsIHdpdGggdGhl IG9yaWdpbmFsIENVUlJFTlRfUENfSVNfTk9UQ1VSUkVOVCBzZXR0aW5nLiAgKi8KLSsgICAgICBj bGVhcl9wcm9jZWVkX3N0YXR1cyAoKTsKLSsKLSsgICAgICBpZiAoZnJhbWVfYmxvY2sgJiYgQkxP Q0tfRU5EIChmcmFtZV9ibG9jaykgPT0gZnJhbWVfcGMpCi0rCXsKLSsJICBzdGVwX291dF9vZl9p bmxpbmVfZnJhbWUgKHRwLT5wdGlkKTsKLSsJICB0cC0+Y3VycmVudF9wY19pc19ub3RjdXJyZW50 ID0gMTsKLSsJICBub3JtYWxfc3RvcCAoKTsKLSsJICByZXR1cm47Ci0gCX0KLSAKLSsgICAgICAv KiBDbGFpbSB3ZSBhcmUgc3RlcHBpbmcgaW4gdGhlIGNhbGxpbmcgZnJhbWUuICBBbiBlbXB0eSBz dGVwCi0rCSByYW5nZSBtZWFucyB0aGF0IHdlIHdpbGwgc3RvcCBvbmNlIHdlIGFyZW4ndCBpbiBh IGZ1bmN0aW9uCi0rCSBjYWxsZWQgYnkgdGhhdCBmcmFtZS4gIFdlIGRvbid0IHVzZSB0aGUgbWFn aWMgIjEiIHZhbHVlIGZvcgotKwkgc3RlcF9yYW5nZV9lbmQsIGJlY2F1c2UgdGhlbiBpbmZydW4g d2lsbCB0aGluayB0aGlzIGlzIG5leHRpLAotKwkgYW5kIG5vdCBzdGVwIG92ZXIgdGhlIHJlc3Qg b2YgdGhpcyBpbmxpbmVkIGZ1bmN0aW9uIGNhbGwuICAqLwotKyAgICAgIGluaXRfc2FsICgmZW1w dHlfc2FsKTsKLSsgICAgICBzZXRfc3RlcF9pbmZvIChwcmV2X2ZyYW1lLCBlbXB0eV9zYWwpOwot KyAgICAgIHRwLT5zdGVwX3JhbmdlX3N0YXJ0ID0gdHAtPnN0ZXBfcmFuZ2VfZW5kID0gZ2V0X2Zy YW1lX3BjIChwcmV2X2ZyYW1lKTsKLSsgICAgICB0cC0+c3RlcF9vdmVyX2NhbGxzID0gU1RFUF9P VkVSX0FMTDsKLSsKLSAgICAgICBwcm9jZWVkICgoQ09SRV9BRERSKSAtMSwgVEFSR0VUX1NJR05B TF9ERUZBVUxULCAxKTsKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLSAgIC8qIEZpbmQgdGhl IGZ1bmN0aW9uIHdlIHdpbGwgcmV0dXJuIGZyb20uICAqLwotIAotLSAgZnVuY3Rpb24gPSBmaW5k X3BjX2Z1bmN0aW9uIChnZXRfZnJhbWVfcGMgKGdldF9zZWxlY3RlZF9mcmFtZSAoTlVMTCkpKTsK LSsgIGZ1bmN0aW9uID0gZmluZF9wY19mdW5jdGlvbiAoZnJhbWVfcGMpOwotIAotICAgLyogUHJp bnQgaW5mbyBvbiB0aGUgc2VsZWN0ZWQgZnJhbWUsIGluY2x1ZGluZyBsZXZlbCBudW1iZXIgYnV0 IG5vdAotICAgICAgc291cmNlLiAgKi8KLUBAIC0xNjU0LDEwICsxNjg0LDE0IEBAIGZpbmlzaF9j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKLSAgICAgICBwcmludF9zdGFja19mcmFt ZSAoZ2V0X3NlbGVjdGVkX2ZyYW1lIChOVUxMKSwgMSwgTE9DQVRJT04pOwotICAgICB9Ci0gCi0r ICAvKiBGcmFtZXMgcHJpbnRpbmcgYWJvdmUgbXVzdCBiZSBkb25lIHN0aWxsIHdpdGggdGhlIG9y aWdpbmFsCi0rICAgICBDVVJSRU5UX1BDX0lTX05PVENVUlJFTlQgc2V0dGluZy4gICovCi0rICBj bGVhcl9wcm9jZWVkX3N0YXR1cyAoKTsKLSsKLSAgIGlmIChleGVjdXRpb25fZGlyZWN0aW9uID09 IEVYRUNfUkVWRVJTRSkKLSAgICAgZmluaXNoX2JhY2t3YXJkIChmdW5jdGlvbik7Ci0gICBlbHNl Ci0tICAgIGZpbmlzaF9mb3J3YXJkIChmdW5jdGlvbiwgZnJhbWUpOwotKyAgICBmaW5pc2hfZm9y d2FyZCAoZnVuY3Rpb24sIHByZXZfZnJhbWUpOwotIH0KLSAMCi0gCi1JbmRleDogZ2RiLTcuMC41 MC4yMDEwMDEyMS9nZGIvdGFyZ2V0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAw MTIxLm9yaWcvZ2RiL3RhcmdldC5jCTIwMTAtMDEtMjEgMTU6MTM6MjYuMDAwMDAwMDAwICswMTAw Ci0rKysgZ2RiLTcuMC41MC4yMDEwMDEyMS9nZGIvdGFyZ2V0LmMJMjAxMC0wMS0yMSAxNToxNDo0 Ny4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yMjE2LDYgKzIyMTYsNyBAQCB0YXJnZXRfcmVzdW1lIChw dGlkX3QgcHRpZCwgaW50IHN0ZXAsIGVuCi0gewotICAgc3RydWN0IHRhcmdldF9vcHMgKnQ7Ci0g Ci0rICBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUgKHB0aWQpOwotICAgdGFyZ2V0X2RjYWNoZV9p bnZhbGlkYXRlICgpOwotIAotICAgZm9yICh0ID0gY3VycmVudF90YXJnZXQuYmVuZWF0aDsgdCAh PSBOVUxMOyB0ID0gdC0+YmVuZWF0aCkKLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9p bmxpbmUtZnJhbWUuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMjEub3JpZy9n ZGIvaW5saW5lLWZyYW1lLmgJMjAxMC0wMS0wMSAwODozMTozNi4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNy4wLjUwLjIwMTAwMTIxL2dkYi9pbmxpbmUtZnJhbWUuaAkyMDEwLTAxLTIxIDE1OjE0 OjQ3LjAwMDAwMDAwMCArMDEwMAotQEAgLTQzLDYgKzQzLDEwIEBAIHZvaWQgY2xlYXJfaW5saW5l X2ZyYW1lX3N0YXRlIChwdGlkX3QgcHQKLSAKLSB2b2lkIHN0ZXBfaW50b19pbmxpbmVfZnJhbWUg KHB0aWRfdCBwdGlkKTsKLSAKLSsvKiBTdGVwIG91dCBvZiBhbiBpbmxpbmVkIGZ1bmN0aW9uIGJ5 IGhpZGluZyBpdC4gICovCi0rCi0rdm9pZCBzdGVwX291dF9vZl9pbmxpbmVfZnJhbWUgKHB0aWRf dCBwdGlkKTsKLSsKLSAvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBoaWRkZW4gZnVuY3Rpb25zIGlu bGluZWQgaW50byB0aGUgY3VycmVudAotICAgIGZyYW1lLiAgKi8KLSAKLUluZGV4OiBnZGItNy4w LjUwLjIwMTAwMTIxL2dkYi9kd2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUw LjIwMTAwMTIxLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTAxLTIxIDE1OjE0OjQxLjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEw LTAxLTIxIDE1OjE1OjA5LjAwMDAwMDAwMCArMDEwMAotQEAgLTQxMzcsNiArNDEzNyw3IEBAIHJl YWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKLSAgIHN0cnVjdCBibG9jayAq YmxvY2s7Ci0gICB1bnNpZ25lZCBkaWVfY2hpbGRyZW4gPSAwOwotICAgaW50IGlubGluZWRfZnVu YyA9IChkaWUtPnRhZyA9PSBEV19UQUdfaW5saW5lZF9zdWJyb3V0aW5lKTsKLSsgIHN0cnVjdCB0 eXBlICp0eXBlOwotIAotICAgaWYgKGlubGluZWRfZnVuYykKLSAgICAgewotQEAgLTQxNzgsNyAr NDE3OSwxMCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzCi0gICBh ZGRfdG9fY3VfZnVuY19saXN0IChuYW1lLCBsb3dwYywgaGlnaHBjLCBjdSk7Ci0gCi0gICBuZXcg PSBwdXNoX2NvbnRleHQgKDAsIGxvd3BjKTsKLS0gIG5ldy0+bmFtZSA9IG5ld19zeW1ib2wgKGRp ZSwgcmVhZF90eXBlX2RpZSAoZGllLCBjdSksIGN1KTsKLSsgIHR5cGUgPSByZWFkX3R5cGVfZGll IChkaWUsIGN1KTsKLSsgIGdkYl9hc3NlcnQgKHR5cGUgIT0gTlVMTCk7Ci0rICBuZXctPm5hbWUg PSBuZXdfc3ltYm9sIChkaWUsIHR5cGUsIGN1KTsKLSsgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAo U1lNQk9MX1RZUEUgKG5ldy0+bmFtZSkpID09IFRZUEVfQ09ERV9GVU5DKTsKLSAKLSAgIC8qIElm IHRoZXJlIGlzIGEgbG9jYXRpb24gZXhwcmVzc2lvbiBmb3IgRFdfQVRfZnJhbWVfYmFzZSwgcmVj b3JkCi0gICAgICBpdC4gICovCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1pbmxpbmluZy1ieS1uYW1l LnBhdGNoIGIvZ2RiLTYuOC1pbmxpbmluZy1ieS1uYW1lLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA2MDk2MjQ3Li4wMDAwMDAwCi0tLSBhL2dkYi02LjgtaW5saW5pbmctYnkt bmFtZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi1JbXBsZW1lbnQgYGIg PGZ1bmNuYW1lPicgZm9yIDxmdW5jbmFtZT4gd2l0aCBjb25jZXRlIGlubGluZWQgaW5zdGFuY2Vz IGJ5Ci1hIG11bHRpcGxlLVBDIGJyZWFrcG9pbnQuCi0KLUluZGV4OiBnZGItNi44LjUwLjIwMDgx MTI4L2dkYi9hZGEtbGFuZy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA4MTEyOC5v cmlnL2dkYi9hZGEtbGFuZy5jCTIwMDgtMTEtMjUgMDA6MjE6MTUuMDAwMDAwMDAwICswMTAwCi0r KysgZ2RiLTYuOC41MC4yMDA4MTEyOC9nZGIvYWRhLWxhbmcuYwkyMDA4LTEyLTA2IDIxOjM5OjU2 LjAwMDAwMDAwMCArMDEwMAotQEAgLTQ2MTQsNyArNDYxNCw3IEBAIHJlbW92ZV9pcnJlbGV2YW50 X3JlbmFtaW5ncyAoc3RydWN0IGFkYV8KLSAgIGlmIChjdXJyZW50X2Jsb2NrID09IE5VTEwpCi0g ICAgIHJldHVybiBuc3ltczsKLSAKLS0gIGN1cnJlbnRfZnVuY3Rpb24gPSBibG9ja19saW5rYWdl X2Z1bmN0aW9uIChjdXJyZW50X2Jsb2NrKTsKLSsgIGN1cnJlbnRfZnVuY3Rpb24gPSBibG9ja19m dW5jdGlvbiAoY3VycmVudF9ibG9jayk7Ci0gICBpZiAoY3VycmVudF9mdW5jdGlvbiA9PSBOVUxM KQotICAgICByZXR1cm4gbnN5bXM7Ci0gCi1AQCAtNjYyNSw3ICs2NjI1LDcgQEAgYWRhX2ZpbmRf cmVuYW1pbmdfc3ltYm9sIChjb25zdCBjaGFyICpuYQotIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICoK LSBmaW5kX29sZF9zdHlsZV9yZW5hbWluZ19zeW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVj dCBibG9jayAqYmxvY2spCi0gewotLSAgY29uc3Qgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb25fc3lt ID0gYmxvY2tfbGlua2FnZV9mdW5jdGlvbiAoYmxvY2spOwotKyAgY29uc3Qgc3RydWN0IHN5bWJv bCAqZnVuY3Rpb25fc3ltID0gYmxvY2tfZnVuY3Rpb24gKGJsb2NrKTsKLSAgIGNoYXIgKnJlbmFt ZTsKLSAKLSAgIGlmIChmdW5jdGlvbl9zeW0gIT0gTlVMTCkKLUluZGV4OiBnZGItNi44LjUwLjIw MDgxMTI4L2dkYi9ibG9jay5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA4MTEyOC5v cmlnL2dkYi9ibG9jay5jCTIwMDgtMTItMDYgMTQ6MDY6MTYuMDAwMDAwMDAwICswMTAwCi0rKysg Z2RiLTYuOC41MC4yMDA4MTEyOC9nZGIvYmxvY2suYwkyMDA4LTEyLTA2IDIxOjQwOjI5LjAwMDAw MDAwMCArMDEwMAotQEAgLTc1LDYgKzc1LDE5IEBAIGJsb2NrX2xpbmthZ2VfZnVuY3Rpb24gKGNv bnN0IHN0cnVjdCBibG8KLSAgIHJldHVybiBCTE9DS19GVU5DVElPTiAoYmwpOwotIH0KLSAKLSsv KiBSZXR1cm4gdGhlIHN5bWJvbCBmb3IgdGhlIGZ1bmN0aW9uIHdoaWNoIGNvbnRhaW5zIGEgc3Bl Y2lmaWVkCi0rICAgbGV4aWNhbCBibG9jaywgZGVzY3JpYmVkIGJ5IGEgc3RydWN0IGJsb2NrIEJM LiAgSW5saW5lZCBmdW5jdGlvbnMKLSsgICBjYW4gYmUgcmV0dXJuZWQuICAqLwotKwotK3N0cnVj dCBzeW1ib2wgKgotK2Jsb2NrX2Z1bmN0aW9uIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsKQotK3sK LSsgIHdoaWxlIChCTE9DS19GVU5DVElPTiAoYmwpID09IE5VTEwgJiYgQkxPQ0tfU1VQRVJCTE9D SyAoYmwpICE9IE5VTEwpCi0rICAgIGJsID0gQkxPQ0tfU1VQRVJCTE9DSyAoYmwpOwotKwotKyAg cmV0dXJuIEJMT0NLX0ZVTkNUSU9OIChibCk7Ci0rfQotKwotIC8qIFJldHVybiBvbmUgaWYgQkwg cmVwcmVzZW50cyBhbiBpbmxpbmVkIGZ1bmN0aW9uLiAgKi8KLSAKLSBpbnQKLUluZGV4OiBnZGIt Ni44LjUwLjIwMDgxMTI4L2dkYi9ibG9jay5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA4MTEyOC5vcmlnL2dkYi9ibG9jay5oCTIwMDgtMTItMDYgMTQ6MDY6MTYuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTYuOC41MC4yMDA4MTEyOC9nZGIvYmxvY2suaAkyMDA4LTEyLTA2IDIxOjM5 OjU2LjAwMDAwMDAwMCArMDEwMAotQEAgLTEzMyw2ICsxMzMsNyBAQCBzdHJ1Y3QgYmxvY2t2ZWN0 b3IKLSBlbnVtIHsgR0xPQkFMX0JMT0NLID0gMCwgU1RBVElDX0JMT0NLID0gMSwgRklSU1RfTE9D QUxfQkxPQ0sgPSAyIH07Ci0gCi0gZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmJsb2NrX2xpbmthZ2Vf ZnVuY3Rpb24gKGNvbnN0IHN0cnVjdCBibG9jayAqKTsKLStleHRlcm4gc3RydWN0IHN5bWJvbCAq YmxvY2tfZnVuY3Rpb24gKGNvbnN0IHN0cnVjdCBibG9jayAqYmwpOwotIAotIGV4dGVybiBpbnQg YmxvY2tfaW5saW5lZF9wIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrKTsKLSAKLUluZGV4OiBn ZGItNi44LjUwLjIwMDgxMTI4L2dkYi9ibG9ja2ZyYW1lLmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDgxMTI4Lm9yaWcvZ2RiL2Jsb2NrZnJhbWUuYwkyMDA4LTEyLTA2IDE0OjA2OjE2 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwODExMjgvZ2RiL2Jsb2NrZnJhbWUu YwkyMDA4LTEyLTA2IDIxOjM5OjU2LjAwMDAwMDAwMCArMDEwMAotQEAgLTE0Myw3ICsxNDMsNyBA QCBmaW5kX3BjX3NlY3RfZnVuY3Rpb24gKENPUkVfQUREUiBwYywgc3RyCi0gICBzdHJ1Y3QgYmxv Y2sgKmIgPSBibG9ja19mb3JfcGNfc2VjdCAocGMsIHNlY3Rpb24pOwotICAgaWYgKGIgPT0gMCkK LSAgICAgcmV0dXJuIDA7Ci0tICByZXR1cm4gYmxvY2tfbGlua2FnZV9mdW5jdGlvbiAoYik7Ci0r ICByZXR1cm4gYmxvY2tfZnVuY3Rpb24gKGIpOwotIH0KLSAKLSAvKiBSZXR1cm4gdGhlIGZ1bmN0 aW9uIGNvbnRhaW5pbmcgcGMgdmFsdWUgUEMuCi1JbmRleDogZ2RiLTYuOC41MC4yMDA4MTEyOC9n ZGIvYnJlYWtwb2ludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA4MTEyOC5vcmln L2dkYi9icmVha3BvaW50LmMJMjAwOC0xMi0wNiAxNDowNjoxNy4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi9icmVha3BvaW50LmMJMjAwOC0xMi0wNiAyMTozOTo1 Ni4wMDAwMDAwMDAgKzAxMDAKLUBAIC01NzEyLDcgKzU3MTIsNyBAQCByZXNvbHZlX3NhbF9wYyAo c3RydWN0IHN5bXRhYl9hbmRfbGluZSAqCi0gICAgICAgYnYgPSBibG9ja3ZlY3Rvcl9mb3JfcGNf c2VjdCAoc2FsLT5wYywgMCwgJmIsIHNhbC0+c3ltdGFiKTsKLSAgICAgICBpZiAoYnYgIT0gTlVM TCkKLSAJewotLQkgIHN5bSA9IGJsb2NrX2xpbmthZ2VfZnVuY3Rpb24gKGIpOwotKwkgIHN5bSA9 IGJsb2NrX2Z1bmN0aW9uIChiKTsKLSAJICBpZiAoc3ltICE9IE5VTEwpCi0gCSAgICB7Ci0gCSAg ICAgIGZpeHVwX3N5bWJvbF9zZWN0aW9uIChzeW0sIHNhbC0+c3ltdGFiLT5vYmpmaWxlKTsKLUlu ZGV4OiBnZGItNi44LjUwLjIwMDgxMTI4L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21k cy5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDgxMTI4Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA4LTEyLTA2IDIxOjM3OjI3LjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwODExMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lu bGluZS1jbWRzLmV4cAkyMDA4LTEyLTA2IDIxOjQxOjM3LjAwMDAwMDAwMCArMDEwMAotQEAgLTQ1 LDggKzQ1LDEwIEBAIGlmIHsgW3NraXBfaW5saW5lX2ZyYW1lX3Rlc3RzXSB9IHsKLSAKLSAjIEZp cnN0LCBjaGVjayB0aGF0IHRoZSB0aGluZ3Mgd2UgZXhwZWN0ZWQgdG8gYmUgaW5saW5lZCByZWFs bHkgd2VyZSwKLSAjIGFuZCB0aG9zZSB0aGF0IHNob3VsZG4ndCBiZSB3ZXJlbid0LgotLXNldCBs aW5lMSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgMSBoZXJlIiAke3NyY2Zp bGUyfV0KLS1nZGJfYnJlYWtwb2ludCAkc3JjZmlsZTI6JGxpbmUxCi0rIyBXZSB0ZXN0IGFsc28g aW5saW5pbmcgYnkgdGhlIGZ1bmN0aW9uIG5hbWUsIG90aGVyd2lzZSB3ZSB3b3VsZCB1c2U6Ci0r IyAgIHNldCBsaW5lMSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgMSBoZXJl IiAke3NyY2ZpbGUyfV0KLSsjICAgZ2RiX2JyZWFrcG9pbnQgJHNyY2ZpbGUyOiRsaW5lMQotK2dk Yl9icmVha3BvaW50ICJiYXIiCi0gc2V0IGxpbmUyIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZXQg YnJlYWtwb2ludCAyIGhlcmUiICR7c3JjZmlsZTJ9XQotIGdkYl9icmVha3BvaW50ICRzcmNmaWxl MjokbGluZTIKLSAKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLWFkYS5wYXRjaCBiL2dkYi1hcmNo ZXItYWRhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyODExMmIK LS0tIC9kZXYvbnVsbAorKysgYi9nZGItYXJjaGVyLWFkYS5wYXRjaApAQCAtMCwwICsxLDIzIEBA CitGcm9tOiBLZWl0aCBTZWl0eiA8a2VpdGhzQHJlZGhhdC5jb20+CitNZXNzYWdlLUlEOiA8NEI3 RjIwN0EuNzAyMDEwMkByZWRoYXQuY29tPgorCitbIHJlYWRfcGFydGlhbF9kaWUgcGFydCBkcm9w cGVkIGluIHRoZSBwb3J0IHRvIFJhd2hpZGUgXQorCistLS0gZ2RiLTcuMC4xLW9yaWcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDEwLTAyLTIwIDAxOjA2OjQ0LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03 LjAuMS9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMDItMjAgMDE6MDg6MjguMDAwMDAwMDAwICswMTAw CitAQCAtOTkyNCw5ICs5OTI4LDEzIEBAIGR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAoY2hhciAq bmFtZSwgc3QKKyBzdGF0aWMgY2hhciAqCisgZHdhcmYyX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CistICBzdHJ1Y3QgYXR0cmlidXRlICphdHRy OworKyAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9IE5VTEw7CisrCisrICBpZiAoY3UtPmxhbmd1 YWdlID09IGxhbmd1YWdlX2FkYSkKKysgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X01JUFNfbGlua2FnZV9uYW1lLCBjdSk7CisgCistICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwg RFdfQVRfbmFtZSwgY3UpOworKyAgaWYgKCFhdHRyKQorKyAgICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfbmFtZSwgY3UpOworICAgaWYgKCFhdHRyIHx8ICFEV19TVFJJTkcgKGF0dHIp KQorICAgICByZXR1cm4gTlVMTDsKKyAKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLW5leHQtb3Zl ci10aHJvdy1jeHgtZXhlYy5wYXRjaCBiL2dkYi1hcmNoZXItbmV4dC1vdmVyLXRocm93LWN4eC1l eGVjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNDA5ZjAKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItYXJjaGVyLW5leHQtb3Zlci10aHJvdy1jeHgtZXhlYy5wYXRj aApAQCAtMCwwICsxLDEwNCBAQAorQXJjaGVyLXVwc3RyZWFtZWQ6CitodHRwOi8vc291cmNld2Fy ZS5vcmcvbWwvYXJjaGVyLzIwMTAtcTIvbXNnMDAwMzEuaHRtbAorCistLS0gLi9nZGIvYnJlYWtw b2ludC5jCTIwMTAtMDUtMjkgMDE6MTI6MzIuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvYnJl YWtwb2ludC5jCTIwMTAtMDUtMjkgMDE6MjI6MjEuMDAwMDAwMDAwICswMjAwCitAQCAtMTY3OSwx NCArMTY3OSwxMSBAQCBjcmVhdGVfZXhjZXB0aW9uX21hc3Rlcl9icmVha3BvaW50ICh2b2lkCisg ICAgICAgZGVidWdfaG9vayA9IGxvb2t1cF9taW5pbWFsX3N5bWJvbF90ZXh0ICgiX1Vud2luZF9E ZWJ1Z0hvb2siLCBvYmpmaWxlKTsKKyAgICAgICBpZiAoZGVidWdfaG9vayAhPSBOVUxMKQorIAl7 CistCSAgQ09SRV9BRERSIHBjOworIAkgIHN0cnVjdCBicmVha3BvaW50ICpiOworIAorLQkgIHBj ID0gZmluZF9mdW5jdGlvbl9zdGFydF9wYyAoZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSksCist CQkJCSAgICAgICBTWU1CT0xfVkFMVUVfQUREUkVTUyAoZGVidWdfaG9vayksCistCQkJCSAgICAg ICBTWU1CT0xfT0JKX1NFQ1RJT04gKGRlYnVnX2hvb2spKTsKKyAJICBiID0gY3JlYXRlX2ludGVy bmFsX2JyZWFrcG9pbnQgKGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpLAorLQkJCQkJICBwYywg YnBfZXhjZXB0aW9uX21hc3Rlcik7CisrCQkJCQkgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChkZWJ1 Z19ob29rKSwKKysJCQkJCSAgYnBfZXhjZXB0aW9uX21hc3Rlcik7CisgCSAgYi0+YWRkcl9zdHJp bmcgPSB4c3RyZHVwICgiX1Vud2luZF9EZWJ1Z0hvb2siKTsKKyAJICBiLT5lbmFibGVfc3RhdGUg PSBicF9kaXNhYmxlZDsKKyAJfQorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3h4ZXhlYy5j YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvY3h4ZXhlYy5jYwkyMDEwLTA1LTI5IDAxOjE4OjU2LjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwyNSBAQAorKy8qIFRoaXMgdGVzdCBzY3JpcHQgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworKworKyNpbmNsdWRlIDx1bmlzdGQuaD4KKysKKytpbnQKKyttYWluKCkKKyt7CisrICBleGVj bHAgKCJ0cnVlIiwgInRydWUiLCBOVUxMKTsKKysgIHJldHVybiAxOworK30KKy0tLSAuL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL2N4eGV4ZWMuZXhwCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jeHhleGVjLmV4cAkyMDEwLTA1LTI5 IDAxOjI5OjI1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw1MSBAQAorKyMgQ29weXJpZ2h0 IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor KyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysj IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LgorKworK2lmIHsgW3NraXBfY3BsdXNfdGVzdHNdIH0geyBjb250aW51ZSB9 CisrCisrc2V0IHRlc3RmaWxlIGN4eGV4ZWMKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7 dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3Rlc3RmaWxlfS5jYyB7YysrIGRlYnVnfV0gfSB7 CisrICAgIHJldHVybiAtMQorK30KKysKKytydW50b19tYWluCisrCisrIyBXZSBjb3VsZCBzdG9w IGFmdGVyIGBjb250aW51ZScgYWdhaW4gYXQgYG1haW4nLgorK2RlbGV0ZV9icmVha3BvaW50cwor KworK3NldCB0ZXN0ICJwIF9VbndpbmRfRGVidWdIb29rIgorK2dkYl90ZXN0X211bHRpcGxlICR0 ZXN0ICR0ZXN0IHsKKysgICAgLXJlICIgPSAuKiAweFxbMC05YS1mXF0uKlxyXG4kZ2RiX3Byb21w dCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIlxyXG5ObyBzeW1ib2wgLipc clxuJGdkYl9wcm9tcHQgJCIgeworKwl4ZmFpbCAkdGVzdAorKwl1bnRlc3RlZCAke3Rlc3RmaWxl fS5leHAKKysJcmV0dXJuIC0xCisrICAgIH0KKyt9CisrCisrc2V0IHRlc3QgY29udGludWUKKytn ZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAiQ2Fubm90IGFjY2VzcyBt ZW1vcnkgYXQgYWRkcmVzcyAweFxbMC05YS1mXF0rXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJZmFp bCAkdGVzdAorKyAgICB9CisrICAgIC1yZSAiXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJcGFzcyAk dGVzdAorKyAgICB9CisrfQorKworKyMgYGluZm8gaW5mZXJpb3JzJyBjYW4gc2hvdyA8bnVsbD4g b24gb2xkZXIgR0RCcy4KKytnZGJfdGVzdCAiaW5mbyB0aHJlYWRzIiAiaW5mbyB0aHJlYWRzIiAi cHJvZ3JhbSBmaW5pc2hlZCIKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLXBpZS0wMzE1LWJyZWFr cG9pbnRfYWRkcmVzc19tYXRjaC5wYXRjaCBiL2dkYi1hcmNoZXItcGllLTAzMTUtYnJlYWtwb2lu dF9hZGRyZXNzX21hdGNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw NTk3Li4wMDAwMDAwCi0tLSBhL2dkYi1hcmNoZXItcGllLTAzMTUtYnJlYWtwb2ludF9hZGRyZXNz X21hdGNoLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotWyBGb3J3YXJkLXBv cnRlZCBjb250ZXh0LiAgXQotCi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAwOS0xMS9tc2cwMDE3MC5odG1sCi1TdWJqZWN0OiBbcGF0Y2ggMDMvMTVdIFBJRTogYnJlYWtw b2ludF9hZGRyZXNzX21hdGNoIGdkYmFyY2hfYWRkcl9iaXQgIHdvcmthcm91bmQKLQotSGksCi0K LXRoZXJlIGFyZSBhbHJlYWR5IG11bHRpcGxlIGNhc2VzIG9mIENPUkVfQUREUiBiZWluZyBtYXNr ZWQgYnkgdGhlIHdpZHRoIG9mCi1nZGJhcmNoX2FkZHJfYml0LiAgVGhpcyBzcGVjaWZpYyBuZXcg Y2FzZSB3YXMgcmVxdWlyZWQgdGhlIFBJRSBzdXBwb3J0LgotCi1QbGVhc2UgcmVhZCB0aGUgQyBj b21tZW50IGluIGF0dGFjaGVkIHBhdGNoLgotCi1DaGVja2VkIHRoYXQgQ09SRV9BRERSIG1hdGgg b3BlcmF0aW9ucyBhcmUgcHJlc2VudCBvbiA2MDAwKyBsaW5lcyBvZiBjb2RlIG9mCi1HREIgc291 cmNlcyB3aGljaCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGRvIHNvbWUgZ2VuZXJhbCBmaXggYnkg cmVwbGFjaW5nIGFsbAotCWEtPmFkZHIgPCBiLT5hZGRyCi1ieQotCWFkZHJfbGVzc190aGFuIChh LT5hZGRyLCBiLT5hZGRyKQotZXRjLgotCi1FdmVuIHdpdGggdGhpcyBwYXRjaCBJIHRoaW5rIHRo ZXJlIGFyZSBzdGlsbCBtYW55IGJ1Z3MgbGVmdCBpbiB0aGUgb3BlcmF0aW9uCi1vZiB4ODZfNjQg Z2RiIGRlYnVnZ2luZyBpMzg2IHRhcmdldHMuICBEbyB5b3UgZmluZCB0aGUgQysrIHdheSBhcyBh IHZpYWJsZQotb25lPwotCi0KLVRoYW5rcywKLUphbgotCi0gICAgCi1nZGIvCi0gICAgCSogYnJl YWtwb2ludC5jIChicmVha3BvaW50X2FkZHJlc3NfbWF0Y2gpOiBOZXcgdmFyaWFibGVzIGFkZHJf Yml0IGFuZAotICAgIAlhZGRyX21hc2ssIGluaXRpYWxpemUgaXQuICBNYXNrIGFkZHJlc3NlcyBi eSBBRERSX01BU0suCi0gICAgCSogZGVmcy5oIChDT1JFX0FERFIpOiBFeHRlbmQgdGhlIGNvbW1l bnQuCi0KLS0tLSBhL2dkYi9icmVha3BvaW50LmMKLSsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBA IC00NTU5LDkgKzQ1NTksMTUgQEAgc3RhdGljIGludAotIGJyZWFrcG9pbnRfYWRkcmVzc19tYXRj aCAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTEsIENPUkVfQUREUiBhZGRyMSwKLSAJCQkg IHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UyLCBDT1JFX0FERFIgYWRkcjIpCi0gewotKyAg aW50IGFkZHJfYml0ID0gZ2RiYXJjaF9hZGRyX2JpdCAodGFyZ2V0X2dkYmFyY2gpOwotKyAgQ09S RV9BRERSIGFkZHJfbWFzayA9IENPUkVfQUREUl9NQVg7Ci0rCi0rICBpZiAoYWRkcl9iaXQgPCAo c2l6ZW9mIChDT1JFX0FERFIpICogSE9TVF9DSEFSX0JJVCkpCi0rICAgIGFkZHJfbWFzayA9ICgo Q09SRV9BRERSKSAxIDw8IGFkZHJfYml0KSAtIDE7Ci0rCi0gICByZXR1cm4gKChnZGJhcmNoX2hh c19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoKQotIAkgICB8fCBhc3BhY2UxID09 IGFzcGFjZTIpCi0tCSAgJiYgYWRkcjEgPT0gYWRkcjIpOwotKwkgICYmIChhZGRyMSAmIGFkZHJf bWFzaykgPT0gKGFkZHIyICYgYWRkcl9tYXNrKSk7Ci0gfQotIAotIC8qIEFzc3VtaW5nIExPQzEg YW5kIExPQzIncyB0eXBlcycgaGF2ZSBtZWFuaW5nZnVsIHRhcmdldCBhZGRyZXNzZXMKLS0tLSBh L2dkYi9kZWZzLmgKLSsrKyBiL2dkYi9kZWZzLmgKLUBAIC05OCw3ICs5OCwyMCBAQAotIC8qIEEg Ynl0ZSBmcm9tIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkLiAgKi8KLSB0eXBlZGVmIGJmZF9i eXRlIGdkYl9ieXRlOwotIAotLS8qIEFuIGFkZHJlc3MgaW4gdGhlIHByb2dyYW0gYmVpbmcgZGVi dWdnZWQuICBIb3N0IGJ5dGUgb3JkZXIuICAqLwotKy8qIEFuIGFkZHJlc3MgaW4gdGhlIHByb2dy YW0gYmVpbmcgZGVidWdnZWQuICBIb3N0IGJ5dGUgb3JkZXIuCi0rCi0rICAgSXRzIHdpZHRoIGlz IHRoZSBtYXhpbXVtIHdpZHRoIG9mIGFsbCB0aGUgc3VwcG9ydGVkIHRhcmdldHMuICBUaGF0IG1l YW5zCi0rICAgMzItYml0IHRhcmdldCB3aWxsIHJ1biBvbiBzdWNoIEdEQiB1c2luZyA2NC1iaXQg Q09SRV9BRERSIGNsdXR0ZXJpbmcgdGhlCi0rICAgYml0cyAzMi4uLjYzIHdpdGggcmFuZG9tIGRh dGEgZnJvbSBpbnRlcm5hbCBHREIgY2FsY3VsYXRpb25zLiAgR0RCIGN1cnJlbnRseQotKyAgIGlu IGdlbmVyYWwgdHJ1bmNhdGVzIHRoZSBhZGRyZXNzIHdpZHRoIG9ubHkgd2hlbiBpdCBpcyBiZWlu ZyBwcmVzZW50ZWQvdXNlZAotKyAgIGV4dGVybmFsbHkgKHN1Y2ggYXMgYnkgdGhlIHBhZGRyZXNz IGZ1bmN0aW9uKS4KLSsKLSsgICBGSVhNRTogVGhpcyBpcyBzdGlsbCBub3QgcmlnaHQgYXMgYW55 IEdEQiBpbnRlcm5hbCBjb21wYXJpc29ucyAoc3VjaCBhcyA+PSkKLSsgICBvZiBDT1JFX0FERFIg ZG8gbm90IHVzZSB0aGUgcHJvcGVybHkgdHJ1bmNhdGVkIHdpZHRoLiAgQXMgY29udmVydGluZyBh bGwgdGhlCi0rICAgQ09SRV9BRERSIG9wZXJhdGlvbnMgdG8gd2lkdGgtYXdhcmUgZnVuY3Rpb25z IGlzIG5vdCBmZWFzaWJsZSB0aGUgd2F5IG91dAotKyAgIGNvdWxkIGJlIGEgd2lkdGgtYXdhcmUg QysrIGNsYXNzIENPUkVfQUREUiByZWZlcmVuY2luZyBnZGJhcmNoIGFzIGl0cwotKyAgIGNvbnN0 cnVjdG9yIHBhcmFtZXRlci4gICovCi0rCi0gdHlwZWRlZiBiZmRfdm1hIENPUkVfQUREUjsKLSAK LSAvKiBUaGUgbGFyZ2VzdCBDT1JFX0FERFIgdmFsdWUuICAqLwotCgpkaWZmIC0tZ2l0IGEvZ2Ri LWFyY2hlci1waWUtYWRkb25zLnBhdGNoIGIvZ2RiLWFyY2hlci1waWUtYWRkb25zLnBhdGNoCmlu ZGV4IDY1NzVkNWQuLjA2MGIxOWUgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5w YXRjaAorKysgYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1J bmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcu MC45MC4yMDEwMDMwNi9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41 MC4yMDEwMDExNS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMC0wMS0xNSAyMTo0MTozMi4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9kd2FyZjJyZWFkLmMJMjAx MC0wMS0xNSAyMTo0MjoxOS4wMDAwMDAwMDAgKzAxMDAKLUBAIC01ODIxLDcgKzU4MjEsMTIgQEAg cmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorLS0tIGdkYi03LjAuOTAu MjAxMDAzMDYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMDMtMDYgMjM6Mjc6MzAuMDAwMDAw MDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvZHdhcmYycmVhZC5jCTIwMTAt MDMtMDYgMjM6Mjg6NDMuMDAwMDAwMDAwICswMTAwCitAQCAtNTkxMCw3ICs1OTEwLDEyIEBAIHJl YWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICB7CiAgICBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyOwogICAgc3RydWN0IHN5bWJvbCAqc3ltOwpAQCAtMTYsNyArMTYsNyBAQCBJ bmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfbG9jYXRpb24sIGN1KTsKICAgIGlmIChhdHRyKQotQEAg LTU4MzAsNiArNTgzNSw3IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwKK0BAIC01OTE5LDYgKzU5MjQsNyBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9p bmZvICpkaWUsCiAgICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCiAgICAgICAg ICB7CiAgICAgICAgICAgIGJhc2UgPSBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBj dSk7CkBAIC0yNCw3ICsyNCw3IEBAIEluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9kd2Fy ZjJyZWFkLmMKICAgICAgICAgIH0KICAgICAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfc2VjdGlv bl9vZmZzZXQgKGF0dHIpKQogICAgICAgICAgewotQEAgLTU4OTEsMTIgKzU4OTcsMTUgQEAgcmVh ZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTU5ODAsMTIgKzU5ODYs MTUgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogIAkgICAgICBl bHNlCiAgCQlkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoKTsKICAKQEAg LTQyLDcgKzQyLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2R3YXJmMnJlYWQu YwogIAkgIGVsc2UKICAJICAgIFNFVF9GSUVMRF9QSFlTTkFNRSAoKmZpZWxkLCBTWU1CT0xfTElO S0FHRV9OQU1FIChzeW0pKTsKICAJICBGSUVMRF9UWVBFICgqZmllbGQpID0gU1lNQk9MX1RZUEUg KHN5bSk7Ci1AQCAtNTkxMCw3ICs1OTE5LDcgQEAgcmVhZF9jb21tb25fYmxvY2sgKHN0cnVjdCBk aWVfaW5mbyAqZGllLAorQEAgLTU5OTksNyArNjAwOCw3IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwKICAKICAgICAgICBzeW0gPSBuZXdfc3ltYm9sIChkaWUsIHR5 cGUsIGN1KTsKICAgICAgICAvKiBTWU1CT0xfVkFMVUVfQUREUkVTUyBuZXZlciBnZXRzIHVzZWQg YXMgYWxsIGl0cyBmaWVsZHMgYXJlIHN0YXRpYy4gICovCkBAIC01MSw2MCArNTEsMTEgQEAgSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAgICAgIHNldF9k aWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgICAgIH0KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAw MTE1L2dkYi9leGVjLmMKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9nZGJ0eXBlcy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9leGVjLmMJMjAx MC0wMS0xNSAyMTozNToxNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1 L2dkYi9leGVjLmMJMjAxMC0wMS0xNSAyMTo0NzoxOS4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zNSw2 ICszNSw3IEBACi0gI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKLSAjaW5jbHVkZSAiZ2RidGhyZWFk LmgiCi0gI2luY2x1ZGUgInByb2dzcGFjZS5oIgotKyNpbmNsdWRlICJzb2xpYi5oIgotIAotICNp bmNsdWRlIDxmY250bC5oPgotICNpbmNsdWRlICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTIy NSw2ICsyMjYsMTAgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5hbWUsIGludCBmcgot ICAgICAgIGNoYXIgKnNjcmF0Y2hfcGF0aG5hbWU7Ci0gICAgICAgaW50IHNjcmF0Y2hfY2hhbjsK LSAgICAgICBzdHJ1Y3QgdGFyZ2V0X3NlY3Rpb24gKnNlY3Rpb25zID0gTlVMTCwgKnNlY3Rpb25z X2VuZCA9IE5VTEw7Ci0rICAgICAgc3RydWN0IHRhcmdldF9zZWN0aW9uICpwOwotKyAgICAgIGlu dCBhZGRyX2JpdDsKLSsgICAgICBDT1JFX0FERFIgbWFzayA9IENPUkVfQUREUl9NQVg7Ci0rICAg ICAgQ09SRV9BRERSIGRpc3BsYWNlbWVudDsKLSAKLSAgICAgICBzY3JhdGNoX2NoYW4gPSBvcGVu cCAoZ2V0ZW52ICgiUEFUSCIpLCBPUEZfVFJZX0NXRF9GSVJTVCwgZmlsZW5hbWUsCi0gCQkgICB3 cml0ZV9maWxlcyA/IE9fUkRXUiB8IE9fQklOQVJZIDogT19SRE9OTFkgfCBPX0JJTkFSWSwKLUBA IC0yOTMsMTIgKzI5OCwyMyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50 IGZyCi0gCQkgc2NyYXRjaF9wYXRobmFtZSwgYmZkX2Vycm1zZyAoYmZkX2dldF9lcnJvciAoKSkp OwotIAl9Ci0gCi0rICAgICAgc2V0X2dkYmFyY2hfZnJvbV9maWxlIChleGVjX2JmZCk7Ci0rCi0r ICAgICAgYWRkcl9iaXQgPSBnZGJhcmNoX2FkZHJfYml0ICh0YXJnZXRfZ2RiYXJjaCk7Ci0rICAg ICAgaWYgKGFkZHJfYml0IDwgKHNpemVvZiAoQ09SRV9BRERSKSAqIEhPU1RfQ0hBUl9CSVQpKQot KwltYXNrID0gKChDT1JFX0FERFIpIDEgPDwgYWRkcl9iaXQpIC0gMTsKLSsKLSsgICAgICBkaXNw bGFjZW1lbnQgPSBzb2xpYl9leGVjX2Rpc3BsYWNlbWVudCAoKTsKLSsgICAgICBmb3IgKHAgPSBz ZWN0aW9uczsgcCA8IHNlY3Rpb25zX2VuZDsgcCsrKQotKwl7Ci0rCSAgcC0+YWRkciA9IChwLT5h ZGRyICsgZGlzcGxhY2VtZW50KSAmIG1hc2s7Ci0rCSAgcC0+ZW5kYWRkciA9IChwLT5lbmRhZGRy ICsgZGlzcGxhY2VtZW50KSAmIG1hc2s7Ci0rCX0KLSsKLSAgICAgICBleGVjX2JmZF9tdGltZSA9 IGJmZF9nZXRfbXRpbWUgKGV4ZWNfYmZkKTsKLSAKLSAgICAgICB2YWxpZGF0ZV9maWxlcyAoKTsK LSAKLS0gICAgICBzZXRfZ2RiYXJjaF9mcm9tX2ZpbGUgKGV4ZWNfYmZkKTsKLS0KLSAgICAgICAv KiBBZGQgdGhlIGV4ZWN1dGFibGUncyBzZWN0aW9ucyB0byB0aGUgY3VycmVudCBhZGRyZXNzIHNw YWNlcycKLSAJIGxpc3Qgb2Ygc2VjdGlvbnMuICBUaGlzIHBvc3NpYmx5IHB1c2hlcyB0aGUgZXhl Y19vcHMKLSAJIHRhcmdldC4gICovCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZ2Ri dHlwZXMuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvZ2Ri dHlwZXMuaAkyMDEwLTAxLTE1IDIxOjM1OjE2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAu NTAuMjAxMDAxMTUvZ2RiL2dkYnR5cGVzLmgJMjAxMC0wMS0xNSAyMTo0NDoyNC4wMDAwMDAwMDAg KzAxMDAKLUBAIC00MDYsNiArNDA2LDcgQEAgZW51bSB0eXBlX2luc3RhbmNlX2ZsYWdfdmFsdWUK Ky0tLSBnZGItNy4wLjkwLjIwMTAwMzA2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxMC0wMy0wNiAy MzoyNjozNC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9nZGJ0 eXBlcy5oCTIwMTAtMDMtMDYgMjM6Mjg6NDMuMDAwMDAwMDAwICswMTAwCitAQCAtNDEyLDYgKzQx Miw3IEBAIGVudW0gdHlwZV9pbnN0YW5jZV9mbGFnX3ZhbHVlCiAgZW51bSBmaWVsZF9sb2Nfa2lu ZAogICAgewogICAgICBGSUVMRF9MT0NfS0lORF9CSVRQT1MsCS8qIGJpdHBvcyAqLwpAQCAtMTEy LDcgKzYzLDcgQEAgSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2dkYnR5cGVzLmgKICAg ICAgRklFTERfTE9DX0tJTkRfUEhZU0FERFIsCS8qIHBoeXNhZGRyICovCiAgICAgIEZJRUxEX0xP Q19LSU5EX1BIWVNOQU1FCS8qIHBoeXNuYW1lICovCiAgICB9OwotQEAgLTU4Miw2ICs1ODMsNyBA QCBzdHJ1Y3QgbWFpbl90eXBlCitAQCAtNTkxLDYgKzU5Miw3IEBAIHN0cnVjdCBtYWluX3R5cGUK ICAJICAgaXMgdGhlIGxvY2F0aW9uIChpbiB0aGUgdGFyZ2V0KSBvZiB0aGUgc3RhdGljIGZpZWxk LgogIAkgICBPdGhlcndpc2UsIHBoeXNuYW1lIGlzIHRoZSBtYW5nbGVkIGxhYmVsIG9mIHRoZSBz dGF0aWMgZmllbGQuICovCiAgCkBAIC0xMjAsNyArNzEsNyBAQCBJbmRleDogZ2RiLTcuMC41MC4y MDEwMDExNS9nZGIvZ2RidHlwZXMuaAogIAlDT1JFX0FERFIgcGh5c2FkZHI7CiAgCWNoYXIgKnBo eXNuYW1lOwogICAgICAgIH0KLUBAIC0xMTAwLDYgKzExMDIsNyBAQCBleHRlcm4gdm9pZCBhbGxv Y2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CitAQCAtMTA5MSw2ICsxMDkzLDcgQEAgZXh0ZXJuIHZv aWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICNkZWZpbmUgRklFTERfTE9DX0tJTkQo dGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2Nfa2luZCkKICAjZGVmaW5lIEZJRUxEX0JJVFBPUyh0aGlz ZmxkKSAoKHRoaXNmbGQpLmxvYy5iaXRwb3MpCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU05B TUUodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c25hbWUpCkBAIC0xMjgsNyArNzksNyBAQCBJ bmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgRklFTERf U1RBVElDX1BIWVNBRERSKHRoaXNmbGQpICgodGhpc2ZsZCkubG9jLnBoeXNhZGRyKQogICNkZWZp bmUgU0VUX0ZJRUxEX0JJVFBPUyh0aGlzZmxkLCBiaXRwb3MpCQkJXAogICAgKEZJRUxEX0xPQ19L SU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJCVwKLUBAIC0xMTA3LDYgKzEx MTAsNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CitAQCAtMTA5 OCw2ICsxMTAxLDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQog ICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNOQU1FKHRoaXNmbGQsIG5hbWUpCQkJXAogICAgKEZJRUxE X0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNOQU1FLAkJXAogICAgIEZJ RUxEX1NUQVRJQ19QSFlTTkFNRSAodGhpc2ZsZCkgPSAobmFtZSkpCkBAIC0xMzYsNyArODcsNyBA QCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgU0VU X0ZJRUxEX1BIWVNBRERSKHRoaXNmbGQsIGFkZHIpCQkJXAogICAgKEZJRUxEX0xPQ19LSU5EICh0 aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkJXAogICAgIEZJRUxEX1NUQVRJQ19Q SFlTQUREUiAodGhpc2ZsZCkgPSAoYWRkcikpCi1AQCAtMTExOSw2ICsxMTIzLDcgQEAgZXh0ZXJu IHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTExMTAsNiArMTExNCw3IEBA IGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnUKICAjZGVmaW5lIFRZUEVf RklFTERfTE9DX0tJTkQodGhpc3R5cGUsIG4pIEZJRUxEX0xPQ19LSU5EIChUWVBFX0ZJRUxEICh0 aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0JJVFBPUyh0aGlzdHlwZSwgbikgRklF TERfQklUUE9TIChUWVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxE X1NUQVRJQ19QSFlTTkFNRSh0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BIWVNOQU1FIChUWVBF X0ZJRUxEICh0aGlzdHlwZSwgbikpCkBAIC0xNDQsMTAgKzk1LDEwIEBAIEluZGV4OiBnZGItNy4w LjUwLjIwMTAwMTE1L2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBUWVBFX0ZJRUxEX1NUQVRJQ19Q SFlTQUREUih0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BIWVNBRERSIChUWVBFX0ZJRUxEICh0 aGlzdHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwodGhpc3R5cGUsIG4p IEZJRUxEX0FSVElGSUNJQUwoVFlQRV9GSUVMRCh0aGlzdHlwZSxuKSkKICAjZGVmaW5lIFRZUEVf RklFTERfQklUU0laRSh0aGlzdHlwZSwgbikgRklFTERfQklUU0laRShUWVBFX0ZJRUxEKHRoaXN0 eXBlLG4pKQotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL2p2LWxhbmcuYworSW5kZXg6 IGdkYi03LjAuOTAuMjAxMDAzMDYvZ2RiL2p2LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvanYtbGFuZy5jCTIwMTAtMDEtMTUgMjE6MzU6MTMuMDAw MDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvanYtbGFuZy5jCTIwMTAt MDEtMTUgMjE6NDE6NTguMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMC45MC4yMDEwMDMwNi5v cmlnL2dkYi9qdi1sYW5nLmMJMjAxMC0wMy0wNiAyMzoxOToxMy4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi9qdi1sYW5nLmMJMjAxMC0wMy0wNiAyMzoyODo0My4w MDAwMDAwMDAgKzAxMDAKIEBAIC00MTYsNyArNDE2LDggQEAgamF2YV9saW5rX2NsYXNzX3R5cGUg KHN0cnVjdCBnZGJhcmNoICpnZAogIAogICAgZmllbGRzID0gTlVMTDsKQEAgLTE2OCwxNDIgKzEx OSwxMCBAQCBJbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvanYtbGFuZy5jCiAgICAgICAg ZWxzZQogIAlUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaSkgPSA4ICogYm9mZnNldDsKICAgICAg ICBpZiAoYWNjZmxhZ3MgJiAweDgwMDApCS8qIEZJRUxEX1VOUkVTT0xWRURfRkxBRyAqLwotSW5k ZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGliLXN2cjQuYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTAtMDEtMTUgMjE6 MzU6MTYuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvc29saWIt c3ZyNC5jCTIwMTAtMDEtMTUgMjE6NDQ6NTUuMDAwMDAwMDAwICswMTAwCi1AQCAtMTY4OSw3ICsx Njg5LDEwIEBAIHN2cjRfZXhlY19kaXNwbGFjZW1lbnQgKHZvaWQpCi0gICBpZiAodGFyZ2V0X2F1 eHZfc2VhcmNoICgmY3VycmVudF90YXJnZXQsIEFUX0VOVFJZLCAmZW50cnlfcG9pbnQpID09IDEp Ci0gICAgIHJldHVybiBlbnRyeV9wb2ludCAtIGJmZF9nZXRfc3RhcnRfYWRkcmVzcyAoZXhlY19i ZmQpOwotIAotLSAgcmV0dXJuIHN2cjRfc3RhdGljX2V4ZWNfZGlzcGxhY2VtZW50ICgpOwotKyAg aWYgKCFwdGlkX2VxdWFsIChpbmZlcmlvcl9wdGlkLCBudWxsX3B0aWQpKQotKyAgICByZXR1cm4g c3ZyNF9zdGF0aWNfZXhlY19kaXNwbGFjZW1lbnQgKCk7Ci0rCi0rICByZXR1cm4gMDsKLSB9Ci0g Ci0gLyogUmVsb2NhdGUgdGhlIG1haW4gZXhlY3V0YWJsZS4gIFRoaXMgZnVuY3Rpb24gc2hvdWxk IGJlIGNhbGxlZCB1cG9uCi1AQCAtMTcwMCw3ICsxNzAzLDcgQEAgc3ZyNF9leGVjX2Rpc3BsYWNl bWVudCAodm9pZCkKLSBzdGF0aWMgdm9pZAotIHN2cjRfcmVsb2NhdGVfbWFpbl9leGVjdXRhYmxl ICh2b2lkKQotIHsKLS0gIENPUkVfQUREUiBkaXNwbGFjZW1lbnQgPSBzdnI0X2V4ZWNfZGlzcGxh Y2VtZW50ICgpOwotKyAgQ09SRV9BRERSIGRpc3BsYWNlbWVudCA9IHNvbGliX2V4ZWNfZGlzcGxh Y2VtZW50ICgpOwotIAotICAgLyogRXZlbiBpZiBESVNQTEFDRU1FTlQgaXMgMCBzdGlsbCB0cnkg dG8gcmVsb2NhdGUgaXQgYXMgdGhpcyBpcyBhIG5ldwotICAgICAgZGlmZmVyZW5jZSBvZiBpbi1t ZW1vcnkgdnMuIGluLWZpbGUgYWRkcmVzc2VzIGFuZCB3ZSBjb3VsZCBhbHJlYWR5Ci1AQCAtMjA1 NCw2ICsyMDU3LDcgQEAgX2luaXRpYWxpemVfc3ZyNF9zb2xpYiAodm9pZCkKLSAgIHN2cjRfc29f b3BzLmZyZWVfc28gPSBzdnI0X2ZyZWVfc287Ci0gICBzdnI0X3NvX29wcy5jbGVhcl9zb2xpYiA9 IHN2cjRfY2xlYXJfc29saWI7Ci0gICBzdnI0X3NvX29wcy5zb2xpYl9jcmVhdGVfaW5mZXJpb3Jf aG9vayA9IHN2cjRfc29saWJfY3JlYXRlX2luZmVyaW9yX2hvb2s7Ci0rICBzdnI0X3NvX29wcy5l eGVjX2Rpc3BsYWNlbWVudCA9IHN2cjRfZXhlY19kaXNwbGFjZW1lbnQ7Ci0gICBzdnI0X3NvX29w cy5zcGVjaWFsX3N5bWJvbF9oYW5kbGluZyA9IHN2cjRfc3BlY2lhbF9zeW1ib2xfaGFuZGxpbmc7 Ci0gICBzdnI0X3NvX29wcy5jdXJyZW50X3NvcyA9IHN2cjRfY3VycmVudF9zb3M7Ci0gICBzdnI0 X3NvX29wcy5vcGVuX3N5bWJvbF9maWxlX29iamVjdCA9IG9wZW5fc3ltYm9sX2ZpbGVfb2JqZWN0 OwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGliLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4wLjUwLjIwMTAwMTE1Lm9yaWcvZ2RiL3NvbGliLmMJMjAxMC0wMS0xNSAyMTozNTox Ni4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9zb2xpYi5jCTIw MTAtMDEtMTUgMjE6NDE6NTguMDAwMDAwMDAwICswMTAwCi1AQCAtMTAzNyw2ICsxMDM3LDE5IEBA IHNvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rIChpbnQgZnJvbV90dHkKLSAgIG9wcy0+c29saWJf Y3JlYXRlX2luZmVyaW9yX2hvb2sgKGZyb21fdHR5KTsKLSB9Ci0gCi0rLyogUXVlcnkgdGhlIGRp ZmZlcmVuY2Ugb2YgaW4tbWVtb3J5IFZNQSBhZGRyZXNzZXMgdnMuIGV4ZWNfYmZkIFZNQXMuICAq LwotKwotK0NPUkVfQUREUgotK3NvbGliX2V4ZWNfZGlzcGxhY2VtZW50ICh2b2lkKQotK3sKLSsg IHN0cnVjdCB0YXJnZXRfc29fb3BzICpvcHMgPSBzb2xpYl9vcHMgKHRhcmdldF9nZGJhcmNoKTsK LSsKLSsgIGlmIChvcHMtPmV4ZWNfZGlzcGxhY2VtZW50ICE9IE5VTEwpCi0rICAgIHJldHVybiAo Km9wcy0+ZXhlY19kaXNwbGFjZW1lbnQpICgpOwotKyAgZWxzZQotKyAgICByZXR1cm4gMDsKLSt9 Ci0rCi0gLyogR0xPQkFMIEZVTkNUSU9OCi0gCi0gICAgaW5fc29saWJfZHluc3ltX3Jlc29sdmVf Y29kZSAtLSBjaGVjayB0byBzZWUgaWYgYW4gYWRkcmVzcyBpcyBpbgotSW5kZXg6IGdkYi03LjAu NTAuMjAxMDAxMTUvZ2RiL3NvbGliLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4wLjUwLjIwMTAw MTE1Lm9yaWcvZ2RiL3NvbGliLmgJMjAxMC0wMS0wOCAyMzo1MjowNC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9zb2xpYi5oCTIwMTAtMDEtMTUgMjE6NDI6MzYu MDAwMDAwMDAwICswMTAwCi1AQCAtNDQsNiArNDQsOCBAQCBleHRlcm4gaW50IHNvbGliX3JlYWRf c3ltYm9scyAoc3RydWN0IHNvCi0gCi0gZXh0ZXJuIHZvaWQgc29saWJfY3JlYXRlX2luZmVyaW9y X2hvb2sgKGludCBmcm9tX3R0eSk7Ci0gCi0rZXh0ZXJuIENPUkVfQUREUiBzb2xpYl9leGVjX2Rp c3BsYWNlbWVudCAodm9pZCk7Ci0rCi0gLyogSWYgQUREUiBsaWVzIGluIGEgc2hhcmVkIGxpYnJh cnksIHJldHVybiBpdHMgbmFtZS4gICovCi0gCi0gZXh0ZXJuIGNoYXIgKnNvbGliX25hbWVfZnJv bV9hZGRyZXNzIChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAqLCBDT1JFX0FERFIpOwotSW5kZXg6IGdk Yi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGlzdC5oCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41 MC4yMDEwMDExNS5vcmlnL2dkYi9zb2xpc3QuaAkyMDEwLTAxLTA4IDIzOjUyOjA0LjAwMDAwMDAw MCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3NvbGlzdC5oCTIwMTAtMDEtMTUg MjE6NDE6NTguMDAwMDAwMDAwICswMTAwCi1AQCAtOTIsNiArOTIsOSBAQCBzdHJ1Y3QgdGFyZ2V0 X3NvX29wcwotICAgICAvKiBUYXJnZXQgZGVwZW5kZW50IGNvZGUgdG8gcnVuIGFmdGVyIGNoaWxk IHByb2Nlc3MgZm9yay4gICovCi0gICAgIHZvaWQgKCpzb2xpYl9jcmVhdGVfaW5mZXJpb3JfaG9v aykgKGludCBmcm9tX3R0eSk7Ci0gCi0rICAgIC8qIFF1ZXJ5IHRoZSBkaWZmZXJlbmNlIG9mIGlu LW1lbW9yeSBWTUEgYWRkcmVzc2VzIHZzLiBleGVjX2JmZCBWTUFzLiAgKi8KLSsgICAgQ09SRV9B RERSICgqZXhlY19kaXNwbGFjZW1lbnQpICh2b2lkKTsKLSsKLSAgICAgLyogRG8gYWRkaXRpb25h bCBzeW1ib2wgaGFuZGxpbmcsIGxvb2t1cCwgZXRjLiBhZnRlciBzeW1ib2xzCi0gICAgICAgIGZv ciBhIHNoYXJlZCBvYmplY3QgaGF2ZSBiZWVuIGxvYWRlZC4gICovCi0gICAgIHZvaWQgKCpzcGVj aWFsX3N5bWJvbF9oYW5kbGluZykgKHZvaWQpOwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUv Z2RiL3N5bWZpbGUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9n ZGIvc3ltZmlsZS5jCTIwMTAtMDEtMTUgMjE6MzU6MTQuMDAwMDAwMDAwICswMTAwCi0rKysgZ2Ri LTcuMC41MC4yMDEwMDExNS9nZGIvc3ltZmlsZS5jCTIwMTAtMDEtMTUgMjE6NDE6NTguMDAwMDAw MDAwICswMTAwCi1AQCAtODMyLDE1ICs4MzIsMzYgQEAgc3ltc19mcm9tX29iamZpbGUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaQotICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBzeW1ib2wg cmVhZGluZy4gICovCi0gICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9vYmpmaWxlIChv YmpmaWxlKTsKLSAKLS0gIC8qIElmIEFERFJTIGFuZCBPRkZTRVRTIGFyZSBib3RoIE5VTEwsIHB1 dCB0b2dldGhlciBhIGR1bW15IGFkZHJlc3MKLS0gICAgIGxpc3QuICBXZSBub3cgZXN0YWJsaXNo IHRoZSBjb252ZW50aW9uIHRoYXQgYW4gYWRkciBvZiB6ZXJvIG1lYW5zCi0tICAgICBubyBsb2Fk IGFkZHJlc3Mgd2FzIHNwZWNpZmllZC4gKi8KLSsgIC8qIElmIEFERFJTIGFuZCBPRkZTRVRTIGFy ZSBib3RoIE5VTEwsIHB1dCB0b2dldGhlciBhIGR1bW15IG9mZnNldCBsaXN0LiAgKi8KLSsKLSAg IGlmICghIGFkZHJzICYmICEgb2Zmc2V0cykKLSAgICAgewotLSAgICAgIGxvY2FsX2FkZHIKLS0J PSBhbGxvY19zZWN0aW9uX2FkZHJfaW5mbyAoYmZkX2NvdW50X3NlY3Rpb25zIChvYmpmaWxlLT5v YmZkKSk7Ci0tICAgICAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgbG9jYWxfYWRkcik7Ci0tICAgICAg YWRkcnMgPSBsb2NhbF9hZGRyOwotKyAgICAgIC8qIFJlbG9jYXRlYmxlIGZpbGVzIGhhdmUgYW4g ZXhjZXB0aW9uIGluIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzIHdoaWNoCi0rCSBhcHBsaWVzIG9u bHkgZm9yIEFERFJTLiAgQnV0IGNhbGxpbmcgc29saWJfZXhlY19kaXNwbGFjZW1lbnQgaXMgbW9y ZQotKwkgc3VpdGFibGUgZm9yIE9GRlNFVFMuICBGb3J0dW5hdGVseSB3ZSBuZXZlciBuZWVkIHRo ZSBib3RoCi0rCSBmdW5jdGlvbmFsaXRpZXMgc2ltdWx0YW5lb3VzbHkgYW5kIGluIG90aGVyIGNh c2VzIHplcm9lZCBBRERSUyBhbmQKLSsJIHplcm9lZCBPRkZTRVRTIGFyZSBlcXVpdmFsZW50LiAg Ki8KLSsKLSsgICAgICBpZiAoKGJmZF9nZXRfZmlsZV9mbGFncyAob2JqZmlsZS0+b2JmZCkgJiAo RVhFQ19QIHwgRFlOQU1JQykpID09IDApCi0rCXsKLSsJICBsb2NhbF9hZGRyCi0rCQkgPSBhbGxv Y19zZWN0aW9uX2FkZHJfaW5mbyAoYmZkX2NvdW50X3NlY3Rpb25zIChvYmpmaWxlLT5vYmZkKSk7 Ci0rCSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgbG9jYWxfYWRkcik7Ci0rCSAgYWRkcnMgPSBsb2Nh bF9hZGRyOwotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgQ09SRV9BRERSIGRpc3BsYWNlbWVu dCA9IDA7Ci0rCSAgaW50IGk7Ci0rCi0rCSAgaWYgKG1haW5saW5lKQotKwkgICAgZGlzcGxhY2Vt ZW50ID0gc29saWJfZXhlY19kaXNwbGFjZW1lbnQgKCk7Ci0rCi0rCSAgbnVtX29mZnNldHMgPSBi ZmRfY291bnRfc2VjdGlvbnMgKG9iamZpbGUtPm9iZmQpOwotKwkgIG9mZnNldHMgPSBhbGxvY2Eg KFNJWkVPRl9OX1NFQ1RJT05fT0ZGU0VUUyAobnVtX29mZnNldHMpKTsKLSsJICBmb3IgKGkgPSAw OyBpIDwgbnVtX29mZnNldHM7IGkrKykKLSsJICAgIG9mZnNldHMtPm9mZnNldHNbaV0gPSBkaXNw bGFjZW1lbnQ7Ci0rCX0KLSAgICAgfQotIAotICAgLyogTm93IGVpdGhlciBhZGRycyBvciBvZmZz ZXRzIGlzIG5vbi16ZXJvLiAgKi8KLUluZGV4OiBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi92YWx1 ZS5jCitJbmRleDogZ2RiLTcuMC45MC4yMDEwMDMwNi9nZGIvdmFsdWUuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjAuNTAuMjAxMDAxMTUub3JpZy9nZGIvdmFsdWUuYwkyMDEwLTAxLTE1IDIxOjM1 OjEzLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3ZhbHVlLmMJ MjAxMC0wMS0xNSAyMTo0MTo1OC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4wLjkwLjIwMTAw MzA2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxMC0wMy0wNiAyMzoxOToxMy4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4wLjkwLjIwMTAwMzA2L2dkYi92YWx1ZS5jCTIwMTAtMDMtMDYgMjM6Mjg6NDMu MDAwMDAwMDAwICswMTAwCiBAQCAtMTg5Nyw3ICsxODk3LDggQEAgdmFsdWVfc3RhdGljX2ZpZWxk IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaQogICAgaWYgKFRZUEVfRklFTERfTE9DX0tJTkQgKHR5cGUs IGZpZWxkbm8pID09IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSKQogICAgICB7CgpkaWZmIC0tZ2l0 IGEvZ2RiLWFyY2hlci12bGEtcmVmLW9wdGltaXplZG91dC5wYXRjaCBiL2dkYi1hcmNoZXItdmxh LXJlZi1vcHRpbWl6ZWRvdXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNmI4NmJkYQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1hcmNoZXItdmxhLXJlZi1vcHRpbWl6 ZWRvdXQucGF0Y2gKQEAgLTAsMCArMSwxMDUgQEAKK2NvbW1pdCBhNjgzYmFjNzNhZjc0YTc1NzU5 MTY3MmQ4OWQ3MjAxNjljMGI1ZWM5CitBdXRob3I6IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBUaHUgTWF5IDEzIDE4OjA4OjMwIDIwMTAgKzAyMDAK KworICAgIFN1cHBvcnQgRFdfQVRfdXBwZXJfYm91bmQgaXMgcmVmZXJlbmNpbmcgYW4gb3B0aW1p emVkLW91dCB2YXJpYWJsZS4KKyAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19i dWcuY2dpP2lkPTU5MTg3OQorCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2Fy ZjJsb2MuYworQEAgLTM4Myw2ICszODMsOSBAQCBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwgKHN0 cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqZGxsYmF0b24sCisgICBzaXplX3Qgc2l6ZTsKKyAg IHN0cnVjdCB2YWx1ZSAqdmFsOworIAorKyAgaWYgKCFkbGxiYXRvbikKKysgICAgcmV0dXJuIDA7 CisrCisgICBkYXRhID0gZmluZF9sb2NhdGlvbl9leHByZXNzaW9uIChkbGxiYXRvbiwgJnNpemUs CisgCQkJCSAgIGdldF9mcmFtZV9hZGRyZXNzX2luX2Jsb2NrIChmcmFtZSkpOworICAgaWYgKGRh dGEgPT0gTlVMTCkKKy0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrKyBiL2dkYi9kd2FyZjJyZWFk LmMKK0BAIC0xMTY5Myw2ICsxMTY5MywxMSBAQCBkd2FyZjJfYXR0cl90b19sb2NsaXN0X2JhdG9u IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyB7CisgICBz dHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24gKmJhdG9uOworIAorKyAgLyogRFdfQVRfbG9jYXRp b24gb2YgdGhlIHJlZmVyZW5jZWQgRElFIG1heSBiZSBtaXNzaW5nIGlmIHRoZSByZWZlcmVuY2Vk CisrICAgICB2YXJpYWJsZSBoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0LiAgKi8KKysgIGlmICghYXR0 cikKKysgICAgcmV0dXJuIE5VTEw7CisrCisgICBpZiAoIShhdHRyX2Zvcm1faXNfc2VjdGlvbl9v ZmZzZXQgKGF0dHIpCisgCS8qICIuZGVidWdfbG9jIiBtYXkgbm90IGV4aXN0IGF0IGFsbCwgb3Ig dGhlIG9mZnNldCBtYXkgYmUgb3V0c2lkZQorIAkgICB0aGUgc2VjdGlvbi4gIElmIHNvLCBmYWxs IHRocm91Z2ggdG8gdGhlIGNvbXBsYWludCBpbiB0aGUKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLWJvdW5kLWxvY2xpc3QuUworQEAgLTUxLDYgKzUxLDE3IEBAIHZhcmRhdGE6CisgCS40 Ynl0ZQkJLkxsZW5fdmFyLS5MY3UxX2JlZ2luCS8qIERXX0FUX3VwcGVyX2JvdW5kICovCisgCS5i eXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVuIG9mIGRpZSAqLworIAorKwkvKiBEV19BVF91cHBl cl9ib3VuZCBpcyByZWZlcmVuY2luZyBhbiBvcHRpbWl6ZWQtb3V0IHZhcmlhYmxlLiAgKi8KKysu TGFycmF5Yl90eXBlOgorKwkudWxlYjEyOAkyCQkJLyogQWJicmV2OiBEV19UQUdfYXJyYXlfdHlw ZSAqLworKwkuNGJ5dGUJCS5MY2hhcl90eXBlLS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5cGUgKi8K KysKKysJLnVsZWIxMjgJMwkJCS8qIEFiYnJldjogRFdfVEFHX3N1YnJhbmdlX3R5cGUgKi8KKysJ LjRieXRlCQkuTHVpbnRfdHlwZS0uTGN1MV9iZWdpbgkvKiBEV19BVF90eXBlICovCisrCS5ieXRl CQkwCQkJLyogRFdfQVRfbG93ZXJfYm91bmQgKi8KKysJLjRieXRlCQkuTGxlbmJfdmFyLS5MY3Ux X2JlZ2luCS8qIERXX0FUX3VwcGVyX2JvdW5kICovCisrCS5ieXRlCQkwCQkJLyogRW5kIG9mIGNo aWxkcmVuIG9mIGRpZSAqLworKworIC5MdWludF90eXBlOgorIAkudWxlYjEyOAk0CQkJLyogQWJi cmV2OiBEV19UQUdfYmFzZV90eXBlICovCisgCS40Ynl0ZQkJLkx1aW50X3N0cgkJLyogRFdfQVRf bmFtZSAqLworQEAgLTY5LDkgKzgwLDI0IEBAIHZhcmRhdGE6CisgCS40Ynl0ZQkJLkx1aW50X3R5 cGUtLkxjdTFfYmVnaW4JLyogRFdfQVRfdHlwZSAqLworIAkuNGJ5dGUJCS5MbGVuX2xvY2xpc3Qt Lkxsb2NsaXN0CS8qIERXX0FUX2xvY2F0aW9uICovCisgCisrCS8qIG9wdGltaXplZC1vdXQgdmFy aWFibGUgZm9yIGJfc3RyaW5nLiAgKi8KKysuTGxlbmJfdmFyOgorKwkudWxlYjEyOAk3CQkJLyog QWJicmV2OiBEV19UQUdfdmFyaWFibGUgYXJ0aWZpY2lhbCBubyBEV19BVF9sb2NhdGlvbiAqLwor KwkuYnl0ZQkJMQkJCS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJLjRieXRlCQkuTHVpbnRfdHlw ZS0uTGN1MV9iZWdpbgkvKiBEV19BVF90eXBlICovCisrCisgCS51bGViMTI4CTYJCQkvKiBBYmJy ZXY6IERXX1RBR192YXJpYWJsZSBEV19GT1JNX3N0cmluZyAqLworIAkuc3RyaW5nCQkiYV9zdHJp bmciCQkvKiBEV19BVF9uYW1lICovCistCS40Ynl0ZQkJLkxhcnJheV90eXBlLS5MY3UxX2JlZ2lu LyogRFdfQVRfdHlwZSAqLworKwkuNGJ5dGUJCS5MYXJyYXlfdHlwZS0uTGN1MV9iZWdpbiAvKiBE V19BVF90eXBlICovCisrCS5ieXRlCQkyZiAtIDFmCQkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysx OgkuYnl0ZQkJMwkJCS8qICAgRFdfT1BfYWRkciAqLworKwkuNGJ5dGUJCXZhcmRhdGEJCQkvKiAg IDxhZGRyPiAqLworKzI6CisrCisrCS8qIERXX0FUX3VwcGVyX2JvdW5kIGlzIHJlZmVyZW5jaW5n IGFuIG9wdGltaXplZC1vdXQgdmFyaWFibGUuICAqLworKwkudWxlYjEyOAk2CQkJLyogQWJicmV2 OiBEV19UQUdfdmFyaWFibGUgRFdfRk9STV9zdHJpbmcgKi8KKysJLnN0cmluZwkJImJfc3RyaW5n IgkJLyogRFdfQVRfbmFtZSAqLworKwkuNGJ5dGUJCS5MYXJyYXliX3R5cGUtLkxjdTFfYmVnaW4g LyogRFdfQVRfdHlwZSAqLworIAkuYnl0ZQkJMmYgLSAxZgkJCS8qIERXX0FUX2xvY2F0aW9uICov CisgMToJLmJ5dGUJCTMJCQkvKiAgIERXX09QX2FkZHIgKi8KKyAJLjRieXRlCQl2YXJkYXRhCQkJ LyogICA8YWRkcj4gKi8KK0BAIC0xNjQsNiArMTkwLDE2IEBAIHZhcmRhdGE6CisgCS5ieXRlCQkw eDAJCQkvKiBUZXJtaW5hdG9yICovCisgCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisg CisrCS51bGViMTI4CTcJCQkvKiBBYmJyZXYgY29kZSAqLworKwkudWxlYjEyOAkweDM0CQkJLyog RFdfVEFHX3ZhcmlhYmxlICovCisrCS5ieXRlCQkweDAJCQkvKiBub19jaGlsZHJlbiAqLworKwku dWxlYjEyOAkweDM0CQkJLyogRFdfQVRfYXJ0aWZpY2lhbCAqLworKwkudWxlYjEyOAkweDBjCQkJ LyogRFdfRk9STV9mbGFnICovCisrCS51bGViMTI4CTB4NDkJCQkvKiBEV19BVF90eXBlICovCisr CS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRl cm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysKKyAJLmJ5dGUJ CTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKyAKKyAvKiBTdHJpbmcgdGFibGUgKi8KKy0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKKysrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKK0BAIC00NiwzICs0Niw2 IEBAIGlmICFbcnVudG8gIiptYWluIl0geworIAorIGdkYl90ZXN0ICJwIGFfc3RyaW5nIiB7ID0g InNlZW4ifQorIGdkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbNFxdfQor KworK2dkYl90ZXN0ICJwIGJfc3RyaW5nIiB7ID0gKDB4WzAtOWEtZl0rICk/InNlZW5ub3RzZWVu In0KKytnZGJfdGVzdCAicHR5cGUgYl9zdHJpbmciIHt0eXBlID0gY2hhciBcW1xdfQoKZGlmZiAt LWdpdCBhL2dkYi1hcmNoZXItdmxhLXRlc3Qtb29tLnBhdGNoIGIvZ2RiLWFyY2hlci12bGEtdGVz dC1vb20ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFkNWNhNAot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1hcmNoZXItdmxhLXRlc3Qtb29tLnBhdGNoCkBAIC0wLDAg KzEsMjEgQEAKK2NvbW1pdCBlYzVhNzc2OWQ1YzA1NTQyZDEyZmMyMWFmYTI1ZjMyMzYwZGI3ZGU0 CitBdXRob3I6IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0 ZTogICBXZWQgTWF5IDEyIDIyOjAwOjQ2IDIwMTAgKzAyMDAKKworICAgIEZpeCBtYl9yZXNlcnZl OgorICAgIAlodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU5MDYz NQorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitpbmRleCA3MjAzYTQ4 Li4yNGE2MDhmIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZs b3cuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5leHAKK0BA IC02Niw3ICs2Niw4IEBAIHByb2MgbWVtb3J5X3ZfcGFnZXNfZ2V0IHt9IHsKKyAKKyBzZXQgcGFn ZXNfZm91bmQgW21lbW9yeV92X3BhZ2VzX2dldF0KKyAKKy1zZXQgbWJfcmVzZXJ2ZSAxMAorKyMg czM5MHggd2l0aCBnbGliYy1kZWJ1Z2luZm8uczM5MHggaW5zdGFsbGVkIHVzZWQgYXBwcm94LiAx Nk1CLgorK3NldCBtYl9yZXNlcnZlIDQwCisgdmVyYm9zZSAtbG9nICJwYWdlc19mb3VuZCA9ICRw YWdlc19mb3VuZCwgbWJfcmVzZXJ2ZSA9ICRtYl9yZXNlcnZlIgorIHNldCBrYl9mb3VuZCBbZXhw ciAkcGFnZXNfZm91bmQgKiAkcGFnZXNpemUgLyAxMDI0XQorIHNldCBrYl9wZXJtaXQgW2V4cHIg JGtiX2ZvdW5kICsgMSAqIDEwMjQgKyAkbWJfcmVzZXJ2ZSAqIDEwMjRdCgpkaWZmIC0tZ2l0IGEv Z2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggM2VjNThjMy4uYzliNWM5 YiAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBA IC0yLDE3ICsyLDE3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJj aGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVu dAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgMjg1Y2Y2MThkOWI5MGI3ZjhmMjAxZjA5NGJjZmVh ZDNjOWJhODkyNQorY29tbWl0IDM5OTk4YzQ5Njk4OGZhYWExNTA5Y2M2YWI3NmI1YzQ3Nzc2NTli ZjQKIAogYnJhbmNoIGBhcmNoZXInIC0gdGhlIG1lcmdlIG9mIGJyYW5jaGVzOgotYXJjaGVyLXRy b21leS1kZWxheWVkLXN5bWZpbGUKK2FyY2hlci10cm9tZXktZGVsYXllZC1zeW1maWxlMgogYXJj aGVyLXRyb21leS1weXRob24KLWFyY2hlci1wbXVsZG9vbi1uZXh0LW92ZXItdGhyb3cKLWFyY2hl ci1qYW5rcmF0b2NodmlsLWZvcnRyYW4tbW9kdWxlCi1hcmNoZXItamFua3JhdG9jaHZpbC13YXRj aHBvaW50CithcmNoZXItcG11bGRvb24tbmV4dC1vdmVyLXRocm93MgorYXJjaGVyLWphbmtyYXRv Y2h2aWwtZm9ydHJhbi1tb2R1bGUyCithcmNoZXItamFua3JhdG9jaHZpbC13YXRjaHBvaW50Mgog YXJjaGVyLWphbmtyYXRvY2h2aWwtdmxhCiBhcmNoZXIta2VpdGhzLWV4cHItY3VtdWxhdGl2ZQot YXJjaGVyLWphbmtyYXRvY2h2aWwtaWZ1bmMKKyMgcGx1cyBvbGRlciBhcmNoZXItamFua3JhdG9j aHZpbC1pZnVuYwogCiAKIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZp bGUuaW4KQEAgLTE5MCw3ICsxOTAsNyBAQCBpbmRleCA5OGY0MmI5Li5kYmY4MjczIDEwMDY0NAog ICMgRGVwZW5kZW5jeSB0cmFja2luZy4gIE1vc3Qgb2YgdGhpcyBpcyBjb25kaXRpb25hbCBvbiBH TlUgTWFrZSBiZWluZwogICMgZm91bmQgYnkgY29uZmlndXJlOyBpZiBHTlUgTWFrZSBpcyBub3Qg Zm91bmQsIHdlIGZhbGwgYmFjayB0byBhCiBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9n ZGIvYWRhLWxhbmcuYwotaW5kZXggNDBiNzBhYi4uYjI5MWQ0MCAxMDA2NDQKK2luZGV4IDdhMmQy Y2EuLjRiZjRlMzEgMTAwNjQ0CiAtLS0gYS9nZGIvYWRhLWxhbmcuYwogKysrIGIvZ2RiL2FkYS1s YW5nLmMKIEBAIC00NzgxLDE0ICs0NzgxLDEwIEBAIGFkYV9sb29rdXBfc3ltYm9sIChjb25zdCBj aGFyICpuYW1lLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrMCwKQEAgLTIwOSw3ICsyMDksNyBA QCBpbmRleCA0MGI3MGFiLi5iMjkxZDQwIDEwMDY0NAogIH0KICAKICAKLUBAIC0xMDkzMSw2ICsx MDkyNyw0MCBAQCBhZGFfb3BlcmF0b3JfbGVuZ3RoIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBp bnQgcGMsIGludCAqb3BsZW5wLCBpbnQgKmFyZ3NwKQorQEAgLTEwOTM4LDYgKzEwOTM0LDQwIEBA IGFkYV9vcGVyYXRvcl9sZW5ndGggKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwYywgaW50 ICpvcGxlbnAsIGludCAqYXJnc3ApCiAgICAgIH0KICB9CiAgCkBAIC0yNTAsNyArMjUwLDcgQEAg aW5kZXggNDBiNzBhYi4uYjI5MWQ0MCAxMDA2NDQKICBzdGF0aWMgY2hhciAqCiAgYWRhX29wX25h bWUgKGVudW0gZXhwX29wY29kZSBvcGNvZGUpCiAgewotQEAgLTExMzE5LDYgKzExMzQ5LDcgQEAg cGFyc2UgKHZvaWQpCitAQCAtMTEzMjYsNiArMTEzNTYsNyBAQCBwYXJzZSAodm9pZCkKICBzdGF0 aWMgY29uc3Qgc3RydWN0IGV4cF9kZXNjcmlwdG9yIGFkYV9leHBfZGVzY3JpcHRvciA9IHsKICAg IGFkYV9wcmludF9zdWJleHAsCiAgICBhZGFfb3BlcmF0b3JfbGVuZ3RoLApAQCAtMzE0LDcgKzMx NCw3IEBAIGluZGV4IDVjOWU1NTguLjU1YTE4NzMgMTAwNjQ0CiAgCiAgICAvKiBPdmVycmlkZSB0 aGUgR05VL0xpbnV4IGluZmVyaW9yIHN0YXJ0dXAgaG9vay4gICovCiBkaWZmIC0tZ2l0IGEvZ2Ri L2FtZDY0LWxpbnV4LXRkZXAuYyBiL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMKLWluZGV4IDAxY2Mx Y2UuLjJhMGZhODQgMTAwNjQ0CitpbmRleCBjMjhlZWY3Li4wMmMxMWUxIDEwMDY0NAogLS0tIGEv Z2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogKysrIGIvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogQEAg LTE0ODEsNiArMTQ4MSw5IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9p bmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQpAQCAtMzQyLDEwICszNDIsMTAgQEAg aW5kZXggYWY0MDlmNi4uNDA2YzA2NiAxMDA2NDQKICAKICAvKiBQcm92aWRlIGEgcHJvdG90eXBl IHRvIHNpbGVuY2UgLVdtaXNzaW5nLXByb3RvdHlwZXMuICAqLwogZGlmZiAtLWdpdCBhL2dkYi9h eC1nZGIuYyBiL2dkYi9heC1nZGIuYwotaW5kZXggNTc3NmJiMC4uNjA5OWU5OSAxMDA2NDQKK2lu ZGV4IDNlMTUxZGUuLmRkYmNiNmUgMTAwNjQ0CiAtLS0gYS9nZGIvYXgtZ2RiLmMKICsrKyBiL2dk Yi9heC1nZGIuYwotQEAgLTE4MTAsNyArMTgxMCw3IEBAIGdlbl9leHByIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCB1bmlvbiBleHBfZWxlbWVudCAqKnBjLAorQEAgLTE4MTIsNyArMTgxMiw3IEBA IGdlbl9leHByIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCB1bmlvbiBleHBfZWxlbWVudCAqKnBj LAogIAogIAkvKiBDYWxsaW5nIGxvb2t1cF9ibG9ja19zeW1ib2wgaXMgbmVjZXNzYXJ5IHRvIGdl dCB0aGUgTE9DX1JFR0lTVEVSCiAgCSAgIHN5bWJvbCBpbnN0ZWFkIG9mIHRoZSBMT0NfQVJHIG9u ZSAoaWYgYm90aCBleGlzdCkuICAqLwpAQCAtNDMyLDcgKzQzMiw3IEBAIGluZGV4IDdlZWRiNmMu LmIxNDc4MjYgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIEJMT0NLX0ggKi8KIGRpZmYgLS1naXQgYS9n ZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwotaW5kZXggMGQ1NTg2Mi4uOTI1OGM2 YSAxMDA2NDQKK2luZGV4IDhjOTc5NDkuLjBiNjY3NDAgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtw b2ludC5jCiArKysgYi9nZGIvYnJlYWtwb2ludC5jCiBAQCAtNjEsNiArNjEsNyBAQApAQCAtNzg4 LDcgKzc4OCw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgICAgICAgY2FzZSBi cF90cmFjZXBvaW50OgogICAgICAgIGNhc2UgYnBfZmFzdF90cmFjZXBvaW50OgogICAgICAgIGNh c2UgYnBfaml0X2V2ZW50OgotQEAgLTQ4MTgsNiArNDkwNiw4IEBAIGFsbG9jYXRlX2JwX2xvY2F0 aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTQ4MTYsNiArNDkwNCw4IEBAIGFsbG9j YXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogICAgICBjYXNlIGJwX2Zp bmlzaDoKICAgICAgY2FzZSBicF9sb25nam1wOgogICAgICBjYXNlIGJwX2xvbmdqbXBfcmVzdW1l OgpAQCAtNzk3LDcgKzc5Nyw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgICAg IGNhc2UgYnBfc3RlcF9yZXN1bWU6CiAgICAgIGNhc2UgYnBfd2F0Y2hwb2ludF9zY29wZToKICAg ICAgY2FzZSBicF9jYWxsX2R1bW15OgotQEAgLTQ4MjYsNiArNDkxNiw3IEBAIGFsbG9jYXRlX2Jw X2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTQ4MjQsNiArNDkxNCw3IEBA IGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogICAgICBjYXNl IGJwX292ZXJsYXlfZXZlbnQ6CiAgICAgIGNhc2UgYnBfaml0X2V2ZW50OgogICAgICBjYXNlIGJw X2xvbmdqbXBfbWFzdGVyOgpAQCAtODU1LDcgKzg1NSw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThj NmEgMTAwNjQ0CiAgCWJyZWFrOwogICAgICAgIH0KICAKLUBAIC03NTA4LDYgKzc2MDIsNyBAQCBz dHJ1Y3QgdW50aWxfYnJlYWtfY29tbWFuZF9jb250aW51YXRpb25fYXJncworQEAgLTc1MDksNiAr NzYwMyw3IEBAIHN0cnVjdCB1bnRpbF9icmVha19jb21tYW5kX2NvbnRpbnVhdGlvbl9hcmdzCiAg ewogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9pbnQ7CiAgICBzdHJ1Y3QgYnJlYWtwb2lu dCAqYnJlYWtwb2ludDI7CkBAIC04NjMsNyArODYzLDcgQEAgaW5kZXggMGQ1NTg2Mi4uOTI1OGM2 YSAxMDA2NDQKICB9OwogIAogIC8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGZldGNoX2lu ZmVyaW9yX2V2ZW50IHZpYSB0aGUKLUBAIC03NTIyLDYgKzc2MTcsNyBAQCB1bnRpbF9icmVha19j b21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQorQEAgLTc1MjMsNiArNzYxOCw3IEBAIHVu dGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCiAgICBkZWxldGVfYnJl YWtwb2ludCAoYS0+YnJlYWtwb2ludCk7CiAgICBpZiAoYS0+YnJlYWtwb2ludDIpCiAgICAgIGRl bGV0ZV9icmVha3BvaW50IChhLT5icmVha3BvaW50Mik7CkBAIC04NzEsNyArODcxLDcgQEAgaW5k ZXggMGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICB9CiAgCiAgdm9pZAotQEAgLTc1MzMsNiArNzYy OSw4IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQg YW55d2hlcmUpCitAQCAtNzUzNCw2ICs3NjMwLDggQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hh ciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAgIHN0cnVjdCBicmVha3BvaW50 ICpicmVha3BvaW50OwogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9pbnQyID0gTlVMTDsK ICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47CkBAIC04ODAsNyArODgwLDcgQEAgaW5kZXgg MGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICAKICAgIGNsZWFyX3Byb2NlZWRfc3RhdHVzICgpOwog IAotQEAgLTc1NzEsNiArNzY2OSw5IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywg aW50IGZyb21fdHR5LCBpbnQgYW55d2hlcmUpCitAQCAtNzU3Miw2ICs3NjcwLDkgQEAgdW50aWxf YnJlYWtfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAK ICAgIG9sZF9jaGFpbiA9IG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAoYnJlYWtwb2lu dCk7CiAgCkBAIC04OTAsNyArODkwLDcgQEAgaW5kZXggMGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQK ICAgIC8qIEtlZXAgd2l0aGluIHRoZSBjdXJyZW50IGZyYW1lLCBvciBpbiBmcmFtZXMgY2FsbGVk IGJ5IHRoZSBjdXJyZW50CiAgICAgICBvbmUuICAqLwogIAotQEAgLTc1ODMsNiArNzY4NCwxMCBA QCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdo ZXJlKQorQEAgLTc1ODQsNiArNzY4NSwxMCBAQCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQogIAkJCQkJICAgICAgZnJhbWVfdW53aW5k X2NhbGxlcl9pZCAoZnJhbWUpLAogIAkJCQkJICAgICAgYnBfdW50aWwpOwogICAgICAgIG1ha2Vf Y2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAoYnJlYWtwb2ludDIpOwpAQCAtOTAxLDcgKzkwMSw3 IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgICAgIH0KICAKICAgIHByb2NlZWQg KC0xLCBUQVJHRVRfU0lHTkFMX0RFRkFVTFQsIDApOwotQEAgLTc1OTksNiArNzcwNCw3IEBAIHVu dGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQgYW55d2hlcmUp CitAQCAtNzYwMCw2ICs3NzA1LDcgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hhciAqYXJnLCBp bnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAKICAgICAgICBhcmdzLT5icmVha3BvaW50ID0g YnJlYWtwb2ludDsKICAgICAgICBhcmdzLT5icmVha3BvaW50MiA9IGJyZWFrcG9pbnQyOwpAQCAt OTA5LDcgKzkwOSw3IEBAIGluZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgCiAgICAgICAg ZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NoYWluKTsKICAgICAgICBhZGRfY29udGludWF0aW9uIChp bmZlcmlvcl90aHJlYWQgKCksCi1AQCAtODc4NCw2ICs4ODkwLDcgQEAgZGVsZXRlX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTg3OTYsNiArODkwMiw3IEBAIGRlbGV0ZV9j b21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAJICAgICYmIGItPnR5cGUgIT0gYnBf dGhyZWFkX2V2ZW50CiAgCSAgICAmJiBiLT50eXBlICE9IGJwX292ZXJsYXlfZXZlbnQKICAJICAg ICYmIGItPnR5cGUgIT0gYnBfbG9uZ2ptcF9tYXN0ZXIKQEAgLTkxNyw3ICs5MTcsNyBAQCBpbmRl eCAwZDU1ODYyLi45MjU4YzZhIDEwMDY0NAogIAkgICAgJiYgYi0+bnVtYmVyID49IDApCiAgCSAg ewogIAkgICAgYnJlYWtzX3RvX2RlbGV0ZSA9IDE7Ci1AQCAtODgwMyw2ICs4OTEwLDcgQEAgZGVs ZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTg4MTUsNiArODkyMiw3 IEBAIGRlbGV0ZV9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAJCSYmIGItPnR5 cGUgIT0gYnBfaml0X2V2ZW50CiAgCQkmJiBiLT50eXBlICE9IGJwX292ZXJsYXlfZXZlbnQKICAJ CSYmIGItPnR5cGUgIT0gYnBfbG9uZ2ptcF9tYXN0ZXIKQEAgLTkyNSw3ICs5MjUsNyBAQCBpbmRl eCAwZDU1ODYyLi45MjU4YzZhIDEwMDY0NAogIAkJJiYgYi0+bnVtYmVyID49IDApCiAgCSAgICAg IGRlbGV0ZV9icmVha3BvaW50IChiKTsKICAJICB9Ci1AQCAtOTExMyw2ICs5MjIxLDcgQEAgYnJl YWtwb2ludF9yZV9zZXRfb25lICh2b2lkICpiaW50KQorQEAgLTkxMjUsNiArOTIzMyw3IEBAIGJy ZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKICAJIHJlc2V0IGxhdGVyIGJ5IGJyZWFr cG9pbnRfcmVfc2V0LiAgKi8KICAgICAgY2FzZSBicF9vdmVybGF5X2V2ZW50OgogICAgICBjYXNl IGJwX2xvbmdqbXBfbWFzdGVyOgpAQCAtOTMzLDcgKzkzMyw3IEBAIGluZGV4IDBkNTU4NjIuLjky NThjNmEgMTAwNjQ0CiAgICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKGIpOwogICAgICAgIGJyZWFr OwogIAotQEAgLTkxMzUsNiArOTI0NCw4IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAq YmludCkKK0BAIC05MTQ3LDYgKzkyNTYsOCBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQg KmJpbnQpCiAgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CiAgICAgIGNhc2UgYnBfbG9uZ2ptcDoK ICAgICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKQEAgLTk0Miw3ICs5NDIsNyBAQCBpbmRleCAw ZDU1ODYyLi45MjU4YzZhIDEwMDY0NAogICAgICBjYXNlIGJwX2ppdF9ldmVudDoKICAgICAgICBi cmVhazsKICAgICAgfQotQEAgLTkxNzcsNiArOTI4OCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0ICh2 b2lkKQorQEAgLTkxODksNiArOTMwMCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0ICh2b2lkKQogICAg Y3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIpOwogICAgY3JlYXRl X2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7CiAgICBjcmVhdGVfbG9u Z2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CkBAIC05NTAsNyArOTUwLDcg QEAgaW5kZXggMGQ1NTg2Mi4uOTI1OGM2YSAxMDA2NDQKICB9CiAgDAogIC8qIFJlc2V0IHRoZSB0 aHJlYWQgbnVtYmVyIG9mIHRoaXMgYnJlYWtwb2ludDoKLUBAIC0xMDE3Miw2ICsxMDI4NCwyMiBA QCBhbGxfdHJhY2Vwb2ludHMgKCkKK0BAIC0xMDE4Nyw2ICsxMDI5OSwyMiBAQCBhbGxfdHJhY2Vw b2ludHMgKCkKICAgIHJldHVybiB0cF92ZWM7CiAgfQogIApAQCAtOTczLDcgKzk3Myw3IEBAIGlu ZGV4IDBkNTU4NjIuLjkyNThjNmEgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVscCBzdHJpbmcgaXMg dXNlZCBmb3IgdGhlIGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVhayBjb21tYW5kcy4K ICAgICBJdCBpcyBkZWZpbmVkIGFzIGEgbWFjcm8gdG8gcHJldmVudCBkdXBsaWNhdGlvbi4KLUBA IC0xMDcxNiw0ICsxMDg0NCw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhh dmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKK0BAIC0xMDczMSw0ICsx MDg1OSw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhhdmVzIGFzIGlmIGFs d2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKICAgIGF1dG9tYXRpY19oYXJkd2FyZV9icmVh a3BvaW50cyA9IDE7CiAgCiAgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJl YWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKQEAgLTEwMjksMTAgKzEwMjksNDkgQEAgaW5kZXgg NmIzNzNhMy4uNTlhYTQxMiAxMDA2NDQKICBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnQgKmdldF90 cmFjZXBvaW50IChpbnQgbnVtKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvYy1leHAueSBiL2dkYi9j LWV4cC55Ci1pbmRleCA4ZTAwOTc5Li5iODZmYzhlIDEwMDY0NAoraW5kZXggODQ1NzcxYy4uN2E3 NGQ3ZSAxMDA2NDQKIC0tLSBhL2dkYi9jLWV4cC55CiArKysgYi9nZGIvYy1leHAueQotQEAgLTQx OCw2ICs0MTgsMjQgQEAgZXhwICAgICA6ICAgICAgIGV4cCAnKCcgbm9uZW1wdHlfdHlwZWxpc3Qg JyknIGNvbnN0X29yX3ZvbGF0aWxlCitAQCAtMTg2LDYgKzE4Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qg c3Rva2VuIG9wZXJhdG9yX3N0b2tlbiAoY29uc3QgY2hhciAqKTsKKyAldG9rZW4gPHRzdmFsPiBT VFJJTkcKKyAldG9rZW4gPHRzdmFsPiBDSEFSCisgJXRva2VuIDxzc3ltPiBOQU1FIC8qIEJMT0NL TkFNRSBkZWZpbmVkIGJlbG93IHRvIGdpdmUgaXQgaGlnaGVyIHByZWNlZGVuY2UuICovCisrJXRv a2VuIDxzc3ltPiBVTktOT1dOX0NQUF9OQU1FCisgJXRva2VuIDx2b2lkdmFsPiBDT01QTEVURQor ICV0b2tlbiA8dHN5bT4gVFlQRU5BTUUKKyAldHlwZSA8c3ZhbD4gbmFtZQorQEAgLTM5MSw2ICsz OTIsMzAgQEAgZXhwCToJZXhwICcoJworIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKE9QX0ZV TkNBTEwpOyB9CisgCTsKKyAKKytleHAJOglVTktOT1dOX0NQUF9OQU1FICcoJworKwkJCXsKKysK KysJCQkgLyogVGhpcyBjb3VsZCBwb3RlbnRpYWxseSBiZSBhIGFuIGFyZ3VtZW50IGRlZmluZWQK KysJCQkgICAgbG9va3VwIGZ1bmN0aW9uIChLb2VuaWcpLiAgKi8KKysJCQkgIHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChPUF9BRExfRlVOQyk7CisrCQkJICB3cml0ZV9leHBfZWx0X2Jsb2NrIChleHBy ZXNzaW9uX2NvbnRleHRfYmxvY2spOworKwkJCSAgd3JpdGVfZXhwX2VsdF9zeW0gKE5VTEwpOyAv KiBQbGFjZSBob2xkZXIgKi8KKysJCQkgIHdyaXRlX2V4cF9zdHJpbmcgKCQxLnN0b2tlbik7Cisr CQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAoT1BfQURMX0ZVTkMpOworKworKwkJCS8qIFRoaXMg aXMgdG8gc2F2ZSB0aGUgdmFsdWUgb2YgYXJnbGlzdF9sZW4KKysJCQkgICBiZWluZyBhY2N1bXVs YXRlZCBieSBhbiBvdXRlciBmdW5jdGlvbiBjYWxsLiAgKi8KKysKKysJCQkgIHN0YXJ0X2FyZ2xp c3QgKCk7CisrCQkJfQorKwkJYXJnbGlzdCAnKScJJXByZWMgQVJST1cKKysJCQl7CisrCQkJICB3 cml0ZV9leHBfZWx0X29wY29kZSAoT1BfRlVOQ0FMTCk7CisrCQkJICB3cml0ZV9leHBfZWx0X2xv bmdjc3QgKChMT05HRVNUKSBlbmRfYXJnbGlzdCAoKSk7CisrCQkJICB3cml0ZV9leHBfZWx0X29w Y29kZSAoT1BfRlVOQ0FMTCk7CisrCQkJfQorKwk7CisrCisgbGN1cmx5CToJJ3snCisgCQkJeyBz dGFydF9hcmdsaXN0ICgpOyB9CisgCTsKK0BAIC00MTgsNiArNDQzLDI0IEBAIGV4cCAgICAgOiAg ICAgICBleHAgJygnIG5vbmVtcHR5X3R5cGVsaXN0ICcpJyBjb25zdF9vcl92b2xhdGlsZQogIAkJ CX0KICAJOwogIApAQCAtMTA1Nyw3ICsxMDk2LDcgQEAgaW5kZXggOGUwMDk3OS4uYjg2ZmM4ZSAx MDA2NDQKICByY3VybHkJOgknfScKICAJCQl7ICQkID0gZW5kX2FyZ2xpc3QgKCkgLSAxOyB9CiAg CTsKLUBAIC03ODUsMTIgKzgwMywxMyBAQCBxdWFsaWZpZWRfbmFtZToJdHlwZWJhc2UgQ09MT05D T0xPTiBuYW1lCitAQCAtNzg1LDEyICs4MjgsMTMgQEAgcXVhbGlmaWVkX25hbWU6CXR5cGViYXNl IENPTE9OQ09MT04gbmFtZQogIAk7CiAgCiAgdmFyaWFibGU6CXF1YWxpZmllZF9uYW1lCkBAIC0x MDcyLDEwICsxMTExLDE5IEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0CiAgCQkJICBz eW0gPQogIAkJCSAgICBsb29rdXBfc3ltYm9sIChuYW1lLCAoY29uc3Qgc3RydWN0IGJsb2NrICop IE5VTEwsCiAgCQkJCQkgICBWQVJfRE9NQUlOLCAoaW50ICopIE5VTEwpOwotQEAgLTEyOTgsNiAr MTMxNywxNCBAQCBuYW1lX25vdF90eXBlbmFtZSA6CU5BTUUKK0BAIC0xMjg2LDYgKzEzMzAsNyBA QCBuYW1lCToJTkFNRSB7ICQkID0gJDEuc3Rva2VuOyB9CisgCXwJQkxPQ0tOQU1FIHsgJCQgPSAk MS5zdG9rZW47IH0KKyAJfAlUWVBFTkFNRSB7ICQkID0gJDEuc3Rva2VuOyB9CisgCXwJTkFNRV9P Ul9JTlQgIHsgJCQgPSAkMS5zdG9rZW47IH0KKysJfAlVTktOT1dOX0NQUF9OQU1FICB7ICQkID0g JDEuc3Rva2VuOyB9CQorIAl8CW9wZXJhdG9yIHsgJCQgPSAkMTsgfQorIAk7CisgCitAQCAtMTI5 OCw2ICsxMzQzLDE1IEBAIG5hbWVfbm90X3R5cGVuYW1lIDoJTkFNRQogICAgIGNvbnRleHQgd2hl cmUgb25seSBhIG5hbWUgY291bGQgb2NjdXIsIHRoaXMgbWlnaHQgYmUgdXNlZnVsLgogICAgCXwJ TkFNRV9PUl9JTlQKICAgKi8KKysgIAl8CVVOS05PV05fQ1BQX05BTUUgCiArCXwJb3BlcmF0b3IK ICsJCQl7CiArCQkJICAkJC5zdG9rZW4gPSAkMTsKQEAgLTEwODcsNyArMTEzNSw3IEBAIGluZGV4 IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0CiAgCTsKICAKICAlJQotQEAgLTIwMzMsNiArMjA2MCwx MyBAQCBzdGF0aWMgaW50IGxhc3Rfd2FzX3N0cnVjdG9wOworQEAgLTIwMzMsNiArMjA4NywxMyBA QCBzdGF0aWMgaW50IGxhc3Rfd2FzX3N0cnVjdG9wOwogIHN0YXRpYyBpbnQKICB5eWxleCAodm9p ZCkKICB7CkBAIC0xMTAxLDcgKzExNDksNyBAQCBpbmRleCA4ZTAwOTc5Li5iODZmYzhlIDEwMDY0 NAogICAgaW50IGM7CiAgICBpbnQgbmFtZWxlbjsKICAgIHVuc2lnbmVkIGludCBpOwotQEAgLTIw NDEsOSArMjA3NSwxOSBAQCB5eWxleCAodm9pZCkKK0BAIC0yMDQxLDkgKzIxMDIsMTkgQEAgeXls ZXggKHZvaWQpCiAgICBjaGFyICpjb3B5OwogIAogICAgbGFzdF93YXNfc3RydWN0b3AgPSAwOwpA QCAtMTEyMyw3ICsxMTcxLDcgQEAgaW5kZXggOGUwMDk3OS4uYjg2ZmM4ZSAxMDA2NDQKICAgIC8q IENoZWNrIGlmIHRoaXMgaXMgYSBtYWNybyBpbnZvY2F0aW9uIHRoYXQgd2UgbmVlZCB0byBleHBh bmQuICAqLwogICAgaWYgKCEgc2Nhbm5pbmdfbWFjcm9fZXhwYW5zaW9uICgpKQogICAgICB7Ci1A QCAtMjA3OSwxMCArMjEyMywxOSBAQCB5eWxleCAodm9pZCkKK0BAIC0yMDc5LDEwICsyMTUwLDE5 IEBAIHl5bGV4ICh2b2lkKQogIAkgICAgJiYgcGFyc2VfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlICE9 IGxhbmd1YWdlX2NwbHVzKQogIAkgIGJyZWFrOwogIApAQCAtMTE0Myw3ICsxMTkxLDcgQEAgaW5k ZXggOGUwMDk3OS4uYjg2ZmM4ZSAxMDA2NDQKICAJcmV0dXJuIHRva2VudGFiMltpXS50b2tlbjsK ICAgICAgICB9CiAgCi1AQCAtMjExMSw2ICsyMTY0LDggQEAgeXlsZXggKHZvaWQpCitAQCAtMjEx MSw2ICsyMTkxLDggQEAgeXlsZXggKHZvaWQpCiAgICAgICAgICByZXR1cm4gMDsKICAKICAgICAg Y2FzZSAnICc6CkBAIC0xMTUyLDcgKzEyMDAsNyBAQCBpbmRleCA4ZTAwOTc5Li5iODZmYzhlIDEw MDY0NAogICAgICBjYXNlICdcdCc6CiAgICAgIGNhc2UgJ1xuJzoKICAgICAgICBsZXhwdHIrKzsK LUBAIC0yMjY4LDExICsyMzIzLDEzIEBAIHl5bGV4ICh2b2lkKQorQEAgLTIyNjgsMTEgKzIzNTAs MTMgQEAgeXlsZXggKHZvaWQpCiAgICAgIGVycm9yICgiSW52YWxpZCBjaGFyYWN0ZXIgJyVjJyBp biBleHByZXNzaW9uLiIsIGMpOwogIAogICAgLyogSXQncyBhIG5hbWUuICBTZWUgaG93IGxvbmcg aXQgaXMuICAqLwpAQCAtMTE2Niw3ICsxMjE0LDcgQEAgaW5kZXggOGUwMDk3OS4uYjg2ZmM4ZSAx MDA2NDQKICAgICAgICAvKiBUZW1wbGF0ZSBwYXJhbWV0ZXIgbGlzdHMgYXJlIHBhcnQgb2YgdGhl IG5hbWUuCiAgCSBGSVhNRTogVGhpcyBtaXNoYW5kbGVzIGBwcmludCAkYTw0JiYkYT4zJy4gICov CiAgCi1AQCAtMjM1NywxNCArMjQxNCwyOSBAQCB5eWxleCAodm9pZCkKK0BAIC0yMzU3LDE0ICsy NDQxLDMzIEBAIHl5bGV4ICh2b2lkKQogICAgICAgY3VycmVudGx5IGFzIG5hbWVzIG9mIHR5cGVz OyBOQU1FIGZvciBvdGhlciBzeW1ib2xzLgogICAgICAgVGhlIGNhbGxlciBpcyBub3QgY29uc3Ry YWluZWQgdG8gY2FyZSBhYm91dCB0aGUgZGlzdGluY3Rpb24uICAqLwogICAgewpAQCAtMTE3Nyw3 ICsxMjI1LDExIEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0CiAgCiAtICAgIHN5bSA9 IGxvb2t1cF9zeW1ib2wgKGNvcHksIGV4cHJlc3Npb25fY29udGV4dF9ibG9jaywKICsgICAgaWYg KG5hbWVfcHJlZml4ICE9IE5VTEwpCi0rICAgICAgdG1wID0gc2F2ZXN0cmluZyAobmFtZV9wcmVm aXgsIG5hbWVfcHJlZml4X2xlbituYW1lbGVuKTsKKysgICAgICB7CisrCXRtcCA9IGFsbG9jYSAo bmFtZV9wcmVmaXhfbGVuICsgbmFtZWxlbiArIDEpOworKwltZW1jcHkgKHRtcCwgbmFtZV9wcmVm aXgsIG5hbWVfcHJlZml4X2xlbiArIG5hbWVsZW4pOworKwl0bXBbbmFtZV9wcmVmaXhfbGVuICsg bmFtZWxlbl0gPSAnXDAnOworKyAgICAgIH0KICsKICsgICAgc3ltID0gbG9va3VwX3N5bWJvbCAo dG1wLCBleHByZXNzaW9uX2NvbnRleHRfYmxvY2ssCiAgCQkJIFZBUl9ET01BSU4sCkBAIC0xMTk3 LDExICsxMjQ5LDE2IEBAIGluZGV4IDhlMDA5NzkuLmI4NmZjOGUgMTAwNjQ0CiAgICAgIC8qIENh bGwgbG9va3VwX3N5bXRhYiwgbm90IGxvb2t1cF9wYXJ0aWFsX3N5bXRhYiwgaW4gY2FzZSB0aGVy ZSBhcmUKICAgICAgICAgbm8gcHN5bXRhYnMgKGNvZmYsIHhjb2ZmLCBvciBzb21lIGZ1dHVyZSBj aGFuZ2UgdG8gYmxvdyBhd2F5IHRoZQogICAgICAgICBwc3ltdGFicyBvbmNlIG9uY2Ugc3ltYm9s cyBhcmUgcmVhZCkuICAqLwotQEAgLTI0MjMsNiArMjQ5NSw3IEBAIHl5bGV4ICh2b2lkKQorQEAg LTI0MjMsNiArMjUyNiwxMiBAQCB5eWxleCAodm9pZCkKICAgICAgeXlsdmFsLnNzeW0uaXNfYV9m aWVsZF9vZl90aGlzID0gaXNfYV9maWVsZF9vZl90aGlzOwogICAgICBpZiAoaW5fcGFyc2VfZmll bGQgJiYgKmxleHB0ciA9PSAnXDAnKQogICAgICAgIHNhd19uYW1lX2F0X2VvZiA9IDE7CiArICAg ICAgICAKKysgICAgaWYgKHN5bSA9PSBOVUxMIAorKyAgICAgICAgJiYgcGFyc2VfbGFuZ3VhZ2Ut PmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCisrICAgICAgICAmJiAhbG9va3VwX21pbmlt YWxfc3ltYm9sICh0bXAsIE5VTEwsIE5VTEwpKQorKyAgICAgIHJldHVybiBVTktOT1dOX0NQUF9O QU1FOworKwogICAgICByZXR1cm4gTkFNRTsKICAgIH0KICB9CkBAIC0xMjE4LDcgKzEyNzUsNyBA QCBpbmRleCBkNjIwODgxLi4zNGNiMzRhIDEwMDY0NAogICAgZHVtcF9zdWJleHBfYm9keV9zdGFu ZGFyZCwKICAgIGV2YWx1YXRlX3N1YmV4cF9jCiBkaWZmIC0tZ2l0IGEvZ2RiL2MtdHlwZXByaW50 LmMgYi9nZGIvYy10eXBlcHJpbnQuYwotaW5kZXggMjc3NDZkOS4uZDRkYTE4MCAxMDA2NDQKK2lu ZGV4IGVkOTgzODEuLjMwNjFhYjcgMTAwNjQ0CiAtLS0gYS9nZGIvYy10eXBlcHJpbnQuYwogKysr IGIvZ2RiL2MtdHlwZXByaW50LmMKIEBAIC0zMiw2ICszMiw3IEBACkBAIC0xMzAxLDEyICsxMzU4 LDEzIEBAIGluZGV4IDI3NzQ2ZDkuLmQ0ZGExODAgMTAwNjQ0CiAgICAgICAgcHJpbnRlZF9hbnkg PSAxOwogICAgICB9CiAgCi1AQCAtNTU4LDcgKzU4NCwxMiBAQCBjX3R5cGVfcHJpbnRfdmFyc3Bl Y19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAg LTU1OCw3ICs1ODQsMTMgQEAgY190eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiKSIpOwogIAogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIlsiKTsKIC0g ICAgICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA+IDAKLSsgICAg ICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19EV0FSRl9CTE9DSyAodHlwZSkpCisrICAg ICAgaWYgKFRZUEVfUkFOR0VfREFUQSAoVFlQRV9JTkRFWF9UWVBFICh0eXBlKSktPmhpZ2gua2lu ZAorKwkgICE9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQpCiArCXsKICsJICAvKiBObyBfKCkg LSBwcmludGVkIHNvdXJjZXMgc2hvdWxkIG5vdCBiZSBsb2NhbGUgZGVwZW5kZW50LiAgKi8KICsJ ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJ2YXJpYWJsZSIpOwpAQCAtMTMxNSw3ICsxMzcz LDcgQEAgaW5kZXggMjc3NDZkOS4uZDRkYTE4MCAxMDA2NDQKICAJJiYgIVRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiJWQiLAogIAkJCSAgKFRZUEVfTEVOR1RIICh0eXBlKQotQEAgLTU5MSw3ICs2MjIsNyBAQCBj X3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLAorQEAgLTU5MSw3ICs2MjMsNyBAQCBjX3R5cGVfcHJpbnRfdmFyc3BlY19z dWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogICAgICAg IGlmIChwYXNzZWRfYV9wdHIpCiAgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikiKTsKICAg ICAgICBpZiAoIWRlbWFuZ2xlZF9hcmdzKQpAQCAtMTMyNSw3ICsxMzgzLDcgQEAgaW5kZXggMjc3 NDZkOS4uZDRkYTE4MCAxMDA2NDQKICAJCQkJICAgcGFzc2VkX2FfcHRyLCAwKTsKICAgICAgICBi cmVhazsKIGRpZmYgLS1naXQgYS9nZGIvY29mZnJlYWQuYyBiL2dkYi9jb2ZmcmVhZC5jCi1pbmRl eCA4ZTVkY2E5Li43ZTdmYjhiIDEwMDY0NAoraW5kZXggYmE0MTNhZC4uNDQ2NzZhOCAxMDA2NDQK IC0tLSBhL2dkYi9jb2ZmcmVhZC5jCiArKysgYi9nZGIvY29mZnJlYWQuYwogQEAgLTIxMjMsNiAr MjEyMyw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3ltX2ZucyBjb2ZmX3N5bV9mbnMgPQpAQCAtMTM2NSw3 ICsxNDIzLDcgQEAgaW5kZXggZWJkZTg3Ni4uOTA3YjI3NSAxMDA2NDQKICAjdW5kZWYgUkVMT0Nf U1JDRElSCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKLWlu ZGV4IGQ0NDRiMDguLmQ0Y2VkODkgMTAwNzU1CitpbmRleCAxOTgzZDA0Li44ZGNhMzdlIDEwMDc1 NQogLS0tIGEvZ2RiL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQogQEAgLTY3Niw2ICs2 NzYsOCBAQCBSRVBPUlRfQlVHU19UTwpAQCAtMTQ4MCw3ICsxNTM4LDcgQEAgaW5kZXggZDQ0NGIw OC4uZDRjZWQ4OSAxMDA3NTUKICAKICAgICMgRmxhZ3MgbmVlZGVkIHRvIGNvbXBpbGUgUHl0aG9u IGNvZGUgKHRha2VuIGZyb20gcHl0aG9uLWNvbmZpZyAtLWNmbGFncykuCiBkaWZmIC0tZ2l0IGEv Z2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKLWluZGV4IDhkYTY4NjcuLjhlMzky NTQgMTAwNjQ0CitpbmRleCA2Zjg3M2I1Li43Nzk4NWM4IDEwMDY0NAogLS0tIGEvZ2RiL2NvbmZp Z3VyZS5hYwogKysrIGIvZ2RiL2NvbmZpZ3VyZS5hYwogQEAgLTEwOCw2ICsxMDgsNTEgQEAgQVNf SEVMUF9TVFJJTkcoWy0td2l0aC1yZWxvY2F0ZWQtc291cmNlcz1QQVRIXSwgW2F1dG9tYXRpY2Fs bHkgcmVsb2NhdGUgdGhpcyBwYXQKQEAgLTE2NTYsNyArMTcxNCw3IEBAIGluZGV4IDgxZjZhNWQu LjA5N2RiNjUgMTAwNjQ0CiAgCQkJeyAkJCA9ICQxLmNvbXA7CiAgCQkJICBpZiAoJDIpICQkID0g ZmlsbF9jb21wIChERU1BTkdMRV9DT01QT05FTlRfTE9DQUxfTkFNRSwgJCQsICQyKTsgfQogZGlm ZiAtLWdpdCBhL2dkYi9jcC1uYW1lc3BhY2UuYyBiL2dkYi9jcC1uYW1lc3BhY2UuYwotaW5kZXgg OGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKK2luZGV4IDVlODk0ZDQuLjYzMjVlYWQgMTAwNjQ0CiAt LS0gYS9nZGIvY3AtbmFtZXNwYWNlLmMKICsrKyBiL2dkYi9jcC1uYW1lc3BhY2UuYwogQEAgLTM0 LDE0ICszNCwxNyBAQApAQCAtMTY4Myw4ICsxNzQxLDggQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEz YSAxMDA2NDQKICAJCSBhbm9ueW1vdXMgbmFtZXNwYWNlLiAgU28gYWRkIHN5bWJvbHMgaW4gaXQg dG8gdGhlCiAgCQkgbmFtZXNwYWNlIGdpdmVuIGJ5IHRoZSBwcmV2aW91cyBjb21wb25lbnQgaWYg dGhlcmUgaXMKICAJCSBvbmUsIG9yIHRvIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGlmIHRoZXJlIGlz bid0LiAgKi8KLS0JICAgICAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoZGVzdCwgc3JjKTsKLSsJ ICAgICAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoZGVzdCwgc3JjLCAiIiwgIiIsIDApOworLQkg ICAgICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChkZXN0LCBzcmMsIE5VTEwpOworKwkgICAgICBj cF9hZGRfdXNpbmdfZGlyZWN0aXZlIChkZXN0LCBzcmMsIE5VTEwsICIiLCAwKTsKICAJICAgIH0K ICAJICAvKiBUaGUgIisgMiIgaXMgZm9yIHRoZSAiOjoiLiAgKi8KICAJICBwcmV2aW91c19jb21w b25lbnQgPSBuZXh0X2NvbXBvbmVudCArIDI7CkBAIC0xNjkyLDM5ICsxNzUwLDQxIEBAIGluZGV4 IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgICAgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgZG9u J3QgYWRkIGl0IHR3aWNlLiAgKi8KICAKICB2b2lkCi0tY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAo Y29uc3QgY2hhciAqZGVzdCwgY29uc3QgY2hhciAqc3JjKQotK2NwX2FkZF91c2luZ19kaXJlY3Rp dmUgKGNvbnN0IGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgY29uc3QgY2hhciogYWxpYXMs CistY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqZGVzdCwgY29uc3QgY2hhciAq c3JjLCBjb25zdCBjaGFyICphbGlhcykKKytjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChjb25zdCBj aGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNoYXIgKmFsaWFzLAogKwkJCWNvbnN0 IGNoYXIgKmRlY2xhcmF0aW9uLCBjb25zdCBpbnQgbGluZV9udW1iZXIpCiAgewogICAgc3RydWN0 IHVzaW5nX2RpcmVjdCAqY3VycmVudDsKICAgIHN0cnVjdCB1c2luZ19kaXJlY3QgKm5ldzsKLUBA IC0xNDYsNyArMTUwLDggQEAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqZGVz dCwgY29uc3QgY2hhciAqc3JjKQorQEAgLTE0Niw3ICsxNTAsOCBAQCBjcF9hZGRfdXNpbmdfZGly ZWN0aXZlIChjb25zdCBjaGFyICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIGNvbnN0IGNoYXIgKmFs aWFzKQogIAlyZXR1cm47CiAgICAgIH0KICAKLS0gIHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9hZGRf dXNpbmcgKGRlc3QsIHNyYywgdXNpbmdfZGlyZWN0aXZlcyk7CistICB1c2luZ19kaXJlY3RpdmVz ID0gY3BfYWRkX3VzaW5nIChkZXN0LCBzcmMsIGFsaWFzLCB1c2luZ19kaXJlY3RpdmVzKTsKICsg IHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9hZGRfdXNpbmcgKGRlc3QsIHNyYywgYWxpYXMsIGRlY2xh cmF0aW9uLAogKwkJCQkgICBsaW5lX251bWJlciwgdXNpbmdfZGlyZWN0aXZlcyk7CiAgCiAgfQog IAotQEAgLTE5OSw3ICsyMDQsMTAgQEAgY3BfaXNfYW5vbnltb3VzIChjb25zdCBjaGFyICpuYW1l c3BhY2UpCitAQCAtMTk4LDkgKzIwMywxMSBAQCBjcF9pc19hbm9ueW1vdXMgKGNvbnN0IGNoYXIg Km5hbWVzcGFjZSkKKyAJICAhPSBOVUxMKTsKICB9CiAgCi0gLyogQ3JlYXRlIGEgbmV3IHN0cnVj dCB1c2luZyBkaXJlY3Qgd2hpY2ggaW1wb3J0cyB0aGUgbmFtZXNwYWNlIFNSQwotLSAgIGludG8g dGhlIHNjb3BlIERFU1QuCistLyogQ3JlYXRlIGEgbmV3IHN0cnVjdCB1c2luZyBkaXJlY3Qgd2hp Y2ggaW1wb3J0cyB0aGUgbmFtZXNwYWNlIFNSQyBpbnRvIHRoZQorLSAgIHNjb3BlIERFU1QuICBB TElBUyBpcyB0aGUgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgbmFtZXNwYWNlIGluIHRoZSBjdXJyZW50 CistICAgc2NvcGUuICBJZiBBTElBUyBpcyBOVUxMIHRoZW4gdGhlIG5hbWVzcGFjZSBpcyBrbm93 biBieSBpdHMgb3JpZ2luYWwgbmFtZS4KKysvKiBDcmVhdGUgYSBuZXcgc3RydWN0IHVzaW5nIGRp cmVjdCB3aGljaCBpbXBvcnRzIHRoZSBuYW1lc3BhY2UgU1JDCiArICAgaW50byB0aGUgc2NvcGUg REVTVC4gIEFMSUFTIGlzIHRoZSBuYW1lIG9mIHRoZSBpbXBvcnRlZCBuYW1lc3BhY2UKLSsgICBp biB0aGUgY3VycmVudCBzY29wZS4gIElmIEFMSUFTIGlzIGFuIGVtcHR5IHN0cmluZyAgdGhlbiB0 aGUKKysgICBpbiB0aGUgY3VycmVudCBzY29wZS4gIElmIEFMSUFTIGlzIE5VTEwgdGhlbiB0aGUK ICsgICBuYW1lc3BhY2UgaXMga25vd24gYnkgaXRzIG9yaWdpbmFsIG5hbWUuCiArCiAgICAgU2V0 IGl0cyBuZXh0IG1lbWJlciBpbiB0aGUgbGlua2VkIGxpc3QgdG8gTkVYVDsgYWxsb2NhdGUgYWxs IG1lbW9yeQogICAgIHVzaW5nIHhtYWxsb2MuICBJdCBjb3BpZXMgdGhlIHN0cmluZ3MsIHNvIE5B TUUgY2FuIGJlIGEgdGVtcG9yYXJ5CiAgICAgc3RyaW5nLiAgKi8KLUBAIC0yMDcsMTMgKzIxNSwx OSBAQCBjcF9pc19hbm9ueW1vdXMgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSkKLSBzdHJ1Y3QgdXNp bmdfZGlyZWN0ICoKK0BAIC0yMDksMTkgKzIxNiwyMyBAQCBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICoK ICBjcF9hZGRfdXNpbmcgKGNvbnN0IGNoYXIgKmRlc3QsCiAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpzcmMsCi0rICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcywKKyAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmFsaWFzLAogKyAgICAgICAgICAgICAgY29uc3QgY2hhciAqZGVjbGFy YXRpb24sCiArICAgICAgICAgICAgICBjb25zdCBpbnQgbGluZV9udW1iZXIsCiAgCSAgICAgIHN0 cnVjdCB1c2luZ19kaXJlY3QgKm5leHQpCkBAIC0xNzM2LDEzICsxNzk2LDE4IEBAIGluZGV4IDhj YTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAtICByZXR2YWwtPmltcG9ydF9kZXN0ID0gc2F2ZXN0cmlu ZyAoZGVzdCwgc3RybGVuKGRlc3QpKTsKICsgIHJldHZhbC0+aW1wb3J0X3NyYyA9IHNhdmVzdHJp bmcgKHNyYywgc3RybGVuIChzcmMpKTsKICsgIHJldHZhbC0+aW1wb3J0X2Rlc3QgPSBzYXZlc3Ry aW5nIChkZXN0LCBzdHJsZW4gKGRlc3QpKTsKLSsgIHJldHZhbC0+YWxpYXMgPSBzYXZlc3RyaW5n IChhbGlhcywgc3RybGVuIChhbGlhcykpOworIAorICAgaWYgKGFsaWFzICE9IE5VTEwpCisgICAg IHJldHZhbC0+YWxpYXMgPSBzYXZlc3RyaW5nIChhbGlhcywgc3RybGVuIChhbGlhcykpOworICAg ZWxzZQorICAgICByZXR2YWwtPmFsaWFzID0gTlVMTDsKKyAKICsgIHJldHZhbC0+ZGVjbGFyYXRp b24gPSBzYXZlc3RyaW5nIChkZWNsYXJhdGlvbiwgc3RybGVuIChkZWNsYXJhdGlvbikpOwogKyAg cmV0dmFsLT5saW5lX251bWJlciA9IGxpbmVfbnVtYmVyOwogICAgcmV0dmFsLT5uZXh0ID0gbmV4 dDsKICAgIHJldHZhbC0+c2VhcmNoZWQgPSAwOwogIAotQEAgLTIzMCwxOSArMjQ0LDEwMCBAQCBj cF9hZGRfdXNpbmcgKGNvbnN0IGNoYXIgKmRlc3QsCitAQCAtMjM4LDE5ICsyNDksMTAwIEBAIGNw X2FkZF91c2luZyAoY29uc3QgY2hhciAqZGVzdCwKICAKICBzdHJ1Y3Qgc3ltYm9sICoKICBjcF9s b29rdXBfc3ltYm9sX25vbmxvY2FsIChjb25zdCBjaGFyICpuYW1lLApAQCAtMTg0OCw3ICsxOTEz LDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICB9CiAgCiAgLyogTG9vayB1cCBO QU1FIGluIHRoZSBDKysgbmFtZXNwYWNlIE5BTUVTUEFDRS4gT3RoZXIgYXJndW1lbnRzIGFyZSBh cyBpbgotQEAgLTI1MCwyNSArMzQ1LDI0IEBAIGNwX2xvb2t1cF9zeW1ib2xfbm9ubG9jYWwgKGNv bnN0IGNoYXIgKm5hbWUsCitAQCAtMjU4LDI1ICszNTAsMjQgQEAgY3BfbG9va3VwX3N5bWJvbF9u b25sb2NhbCAoY29uc3QgY2hhciAqbmFtZSwKICAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqCiAg Y3BfbG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKQEAg LTE4ODMsNyArMTk0OCw3IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgICAgIH0K ICB9CiAgCi1AQCAtMjgzLDkgKzM3NywxNyBAQCByZXNldF9kaXJlY3RpdmVfc2VhcmNoZWQgKHZv aWQgKmRhdGEpCitAQCAtMjkxLDkgKzM4MiwxNyBAQCByZXNldF9kaXJlY3RpdmVfc2VhcmNoZWQg KHZvaWQgKmRhdGEpCiAgfQogIAogIC8qIFNlYXJjaCBmb3IgTkFNRSBieSBhcHBseWluZyBhbGwg aW1wb3J0IHN0YXRlbWVudHMgYmVsb25naW5nCkBAIC0xOTAzLDcgKzE5NjgsNyBAQCBpbmRleCA4 Y2E5YzIwLi4yMWUwMTNhIDEwMDY0NAogICAgIEV4YW1wbGU6CiAgCiAgICAgICBuYW1lc3BhY2Ug QXsKLUBAIC0yOTksMjYgKzQwMSwzMyBAQCByZXNldF9kaXJlY3RpdmVfc2VhcmNoZWQgKHZvaWQg KmRhdGEpCitAQCAtMzA3LDI2ICs0MDYsMzMgQEAgcmVzZXRfZGlyZWN0aXZlX3NlYXJjaGVkICh2 b2lkICpkYXRhKQogICAgIGFuZCBZIHdpbGwgYmUgY29uc2lkZXJlZC4gSWYgU0VBUkNIX1BBUkVO VFMgaXMgZmFsc2Ugb25seSB0aGUgaW1wb3J0IG9mIFkKICAgICBpcyBjb25zaWRlcmVkLiAgKi8K ICAKQEAgLTE5NDYsMjcgKzIwMTEsMjUgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQK ICAgIC8qIEdvIHRocm91Z2ggdGhlIHVzaW5nIGRpcmVjdGl2ZXMuICBJZiBhbnkgb2YgdGhlbSBh ZGQgbmV3CiAgICAgICBuYW1lcyB0byB0aGUgbmFtZXNwYWNlIHdlJ3JlIHNlYXJjaGluZyBpbiwg c2VlIGlmIHdlIGNhbiBmaW5kIGEKICAgICAgIG1hdGNoIGJ5IGFwcGx5aW5nIHRoZW0uICAqLwot QEAgLTMyNywxMjMgKzQzNiw3OCBAQCBjcF9sb29rdXBfc3ltYm9sX2ltcG9ydHMgKGNvbnN0IGNo YXIgKnNjb3BlLAorQEAgLTMzNSw3ICs0NDEsMTAgQEAgY3BfbG9va3VwX3N5bWJvbF9pbXBvcnRz IChjb25zdCBjaGFyICpzY29wZSwKICAgICAgICAgY3VycmVudCAhPSBOVUxMOwogICAgICAgICBj dXJyZW50ID0gY3VycmVudC0+bmV4dCkKICAgICAgewogLSAgICAgIGxlbiA9IHN0cmxlbiAoY3Vy cmVudC0+aW1wb3J0X2Rlc3QpOwotLSAgICAgIGRpcmVjdGl2ZV9tYXRjaCA9IChzZWFyY2hfcGFy ZW50cwotLSAgICAgICAgICAgICAgICAgICAgICAgICA/IChzdHJuY21wIChzY29wZSwgY3VycmVu dC0+aW1wb3J0X2Rlc3QsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cmxlbiAoY3VycmVudC0+aW1wb3J0X2Rlc3QpKSA9PSAwCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICYmIChsZW4gPT0gMAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg c2NvcGVbbGVuXSA9PSAnOicgfHwgc2NvcGVbbGVuXSA9PSAnXDAnKSkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgOiBzdHJjbXAgKHNjb3BlLCBjdXJyZW50LT5pbXBvcnRfZGVzdCkgPT0gMCk7 Ci0tCiArICAKLSAgICAgICAvKiBJZiB0aGUgaW1wb3J0IGRlc3RpbmF0aW9uIGlzIHRoZSBjdXJy ZW50IHNjb3BlIG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIHRoZW4KLSAgICAgICAgICBpdCBpcyBh cHBsaWNhYmxlLiAgKi8KKysgICAgICAvKiBJZiB0aGUgaW1wb3J0IGRlc3RpbmF0aW9uIGlzIHRo ZSBjdXJyZW50IHNjb3BlIG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIHRoZW4KKysgICAgICAgICBp dCBpcyBhcHBsaWNhYmxlLiAgKi8KKysgICAgICBpbnQgbGVuID0gc3RybGVuIChjdXJyZW50LT5p bXBvcnRfZGVzdCk7CisgICAgICAgZGlyZWN0aXZlX21hdGNoID0gKHNlYXJjaF9wYXJlbnRzCisg ICAgICAgICAgICAgICAgICAgICAgICAgID8gKHN0cm5jbXAgKHNjb3BlLCBjdXJyZW50LT5pbXBv cnRfZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuIChj dXJyZW50LT5pbXBvcnRfZGVzdCkpID09IDAKK0BAIC0zNDMsMTMwICs0NTIsNzAgQEAgY3BfbG9v a3VwX3N5bWJvbF9pbXBvcnRzIChjb25zdCBjaGFyICpzY29wZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHx8IHNjb3BlW2xlbl0gPT0gJzonIHx8IHNjb3BlW2xlbl0gPT0gJ1ww JykpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyY21wIChzY29wZSwgY3VycmVudC0+ aW1wb3J0X2Rlc3QpID09IDApOworIAorLSAgICAgIC8qIElmIHRoZSBpbXBvcnQgZGVzdGluYXRp b24gaXMgdGhlIGN1cnJlbnQgc2NvcGUgb3Igb25lIG9mIGl0cyBhbmNlc3RvcnMgdGhlbgorLSAg ICAgICAgIGl0IGlzIGFwcGxpY2FibGUuICAqLwogLSAgICAgIGlmIChkaXJlY3RpdmVfbWF0Y2gg JiYgIWN1cnJlbnQtPnNlYXJjaGVkKQotKyAgICAgIGRpcmVjdGl2ZV9tYXRjaCA9IHNlYXJjaF9w YXJlbnRzID8KLSsgICAgICAgICAgICAgICAgICAgICAgICBzdHJuY21wIChzY29wZSwgY3VycmVu dC0+aW1wb3J0X2Rlc3QsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVu KGN1cnJlbnQtPmltcG9ydF9kZXN0KSkgPT0gMCA6Ci0rICAgICAgICAgICAgICAgICAgICAgICAg c3RyY21wIChzY29wZSwgY3VycmVudC0+aW1wb3J0X2Rlc3QpID09IDA7Ci0rCiArICAgICAgaWYg KGRpcmVjdGl2ZV9tYXRjaCAmJgogKyAgICAgICAgICBjdXJyZW50LT5saW5lX251bWJlciA8IGN1 cnJlbnRfbGluZSAmJgogKyAgICAgICAgICAhY3VycmVudC0+c2VhcmNoZWQpCkBAIC0xOTc2LDEz ICsyMDM5LDY1IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAtCWN1cnJlbnQtPnNl YXJjaGVkID0gMTsKIC0Jc2VhcmNoZWRfY2xlYW51cCA9IG1ha2VfY2xlYW51cCAocmVzZXRfZGly ZWN0aXZlX3NlYXJjaGVkLCBjdXJyZW50KTsKIC0KLS0Jc3ltID0gY3BfbG9va3VwX3N5bWJvbF9u YW1lc3BhY2UgKGN1cnJlbnQtPmltcG9ydF9zcmMsCi0tCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lLAotLQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlu a2FnZV9uYW1lLAotLQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCi0t CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4sCi0tCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwKTsKLS0KKy0JaWYgKGN1cnJlbnQtPmFsaWFzICE9IE5V TEwgJiYgc3RyY21wIChuYW1lLCBjdXJyZW50LT5hbGlhcykgPT0gMCkKKy0JICAvKiBJZiB0aGUg aW1wb3J0IGlzIGNyZWF0aW5nIGFuIGFsaWFzIGFuZCB0aGUgYWxpYXMgbWF0Y2hlcyB0aGUKKy0J ICAgICBzb3VnaHQgbmFtZS4gIFBhc3MgY3VycmVudC0+aW1wb3J0X3NyYyBhcyB0aGUgTkFNRSB0 byBkaXJlY3QgdGhlCistCSAgICAgc2VhcmNoIHRvd2FyZHMgdGhlIGFsaWFzZWQgbmFtZXNwYWNl LiAgKi8KKy0JICB7CisrCSAgY3VycmVudC0+c2VhcmNoZWQgPSAxOworKwkgIHNlYXJjaGVkX2Ns ZWFudXAgPSBtYWtlX2NsZWFudXAgKHJlc2V0X2RpcmVjdGl2ZV9zZWFyY2hlZCwgY3VycmVudCk7 CisrCisrCSAgLyogSWYgdGhlcmUgaXMgYW4gaW1wb3J0IG9mIGEgc2luZ2xlIGRlY2xhcmF0aW9u LCBjb21wYXJlIHRoZSBpbXBvcnRlZAorKwkgICAgIGRlY2xhcmF0aW9uIHdpdGggdGhlIHNvdWdo dCBvdXQgbmFtZS4gSWYgdGhlcmUgaXMgYSBtYXRjaCBwYXNzCisrCSAgICAgY3VycmVudC0+aW1w b3J0X3NyYyBhcyBOQU1FU1BBQ0UgdG8gZGlyZWN0IHRoZSBzZWFyY2ggdG93YXJkcyB0aGUKKysJ ICAgICBpbXBvcnRlZCBuYW1lc3BhY2UuICAqLworKwkgIGlmIChzdHJjbXAgKCIiLCBjdXJyZW50 LT5kZWNsYXJhdGlvbikgIT0gMCkKKysJICAgIHsKKysJICAgIGlmIChzdHJjbXAgKG5hbWUsIGN1 cnJlbnQtPmRlY2xhcmF0aW9uKSA9PSAwKQorKwkgICAgICB7CisrCSAgICAgIHN5bSA9IGNwX2xv b2t1cF9zeW1ib2xfaW5fbmFtZXNwYWNlIChjdXJyZW50LT5pbXBvcnRfc3JjLAorKwkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKKysJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLAorKwkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluKTsKKysJICAgICAgfQorKworKwkgICAg Y3VycmVudC0+c2VhcmNoZWQgPSAwOworKwkgICAgaWYgKHN5bSkKKysJICAgICAgcmV0dXJuIHN5 bTsKKysKKysJICAgIGNvbnRpbnVlOworKwkgICAgfQorKwkgICAKKysJICBpZiAoZGVjbGFyYXRp b25fb25seSkKKysJICAgIHsKKysJICAgIGN1cnJlbnQtPnNlYXJjaGVkID0gMDsKKysJICAgIGRp c2NhcmRfY2xlYW51cHMgKHNlYXJjaGVkX2NsZWFudXApOworKwkgICAgY29udGludWU7CisrCSAg ICB9CisrCisrCSAgaWYgKGN1cnJlbnQtPmFsaWFzICE9IE5VTEwgJiYgc3RyY21wIChuYW1lLCBj dXJyZW50LT5hbGlhcykgPT0gMCkKKysJICAgIC8qIElmIHRoZSBpbXBvcnQgaXMgY3JlYXRpbmcg YW4gYWxpYXMgYW5kIHRoZSBhbGlhcyBtYXRjaGVzIHRoZQorKwkgICAgICAgc291Z2h0IG5hbWUu IFBhc3MgY3VycmVudC0+aW5uZXIgYXMgdGhlIE5BTUUgdG8gZGlyZWN0IHRoZQorKwkgICAgICAg c2VhcmNoIHRvd2FyZHMgdGhlIGFsaWFzZWQgbmFtZXNwYWNlICovCisrCSAgICB7CisgCSAgICBz eW0gPSBjcF9sb29rdXBfc3ltYm9sX2luX25hbWVzcGFjZSAoc2NvcGUsCisgCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+aW1wb3J0X3NyYywKKy0JICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rYWdlX25hbWUsCisgCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCisgCSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluKTsKKy0JICB9CistCWVsc2Ug aWYgKGN1cnJlbnQtPmFsaWFzID09IE5VTEwpCistCSAgeworKwkgICAgfSBlbHNlIGlmIChjdXJy ZW50LT5hbGlhcyA9PSBOVUxMKXsKKyAJICAgIC8qIElmIHRoaXMgaW1wb3J0IHN0YXRlbWVudCBj cmVhdGVzIG5vIGFsaWFzLCBwYXNzIGN1cnJlbnQtPmlubmVyIGFzCistICAgICAgICAgICAgICAg TkFNRVNQQUNFIHRvIGRpcmVjdCB0aGUgc2VhcmNoIHRvd2FyZHMgdGhlIGltcG9ydGVkIG5hbWVz cGFjZS4gICovCistCSAgICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX2ltcG9ydHMgKGN1cnJlbnQt PmltcG9ydF9zcmMsCistCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUs CistCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmthZ2VfbmFtZSwKKy0J ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCistCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiwKKy0JICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMCk7CistCSAgfQogLQljdXJyZW50LT5zZWFyY2hlZCA9IDA7CiAtCWRp c2NhcmRfY2xlYW51cHMgKHNlYXJjaGVkX2NsZWFudXApOwogLQpAQCAtMjA0Nyw1MSArMjE2Miwx MCBAQCBpbmRleCA4Y2E5YzIwLi4yMWUwMTNhIDEwMDY0NAogLQkJCWludCBzY29wZV9sZW4pCiAt ewogLSAgY2hhciAqbmFtZXNwYWNlOwotKwkgIGN1cnJlbnQtPnNlYXJjaGVkID0gMTsKLSsJICBz ZWFyY2hlZF9jbGVhbnVwID0gbWFrZV9jbGVhbnVwIChyZXNldF9kaXJlY3RpdmVfc2VhcmNoZWQs IGN1cnJlbnQpOwotKwotKwkgIC8qIElmIHRoZXJlIGlzIGFuIGltcG9ydCBvZiBhIHNpbmdsZSBk ZWNsYXJhdGlvbiwgY29tcGFyZSB0aGUgaW1wb3J0ZWQKLSsJICAgICBkZWNsYXJhdGlvbiB3aXRo IHRoZSBzb3VnaHQgb3V0IG5hbWUuIElmIHRoZXJlIGlzIGEgbWF0Y2ggcGFzcwotKwkgICAgIGN1 cnJlbnQtPmltcG9ydF9zcmMgYXMgTkFNRVNQQUNFIHRvIGRpcmVjdCB0aGUgc2VhcmNoIHRvd2Fy ZHMgdGhlCi0rCSAgICAgaW1wb3J0ZWQgbmFtZXNwYWNlLiAgKi8KLSsJICBpZiAoc3RyY21wICgi IiwgY3VycmVudC0+ZGVjbGFyYXRpb24pICE9IDApCi0rCSAgICB7Ci0rCSAgICBpZiAoc3RyY21w IChuYW1lLCBjdXJyZW50LT5kZWNsYXJhdGlvbikgPT0gMCkKLSsJICAgICAgewotKwkgICAgICBz eW0gPSBjcF9sb29rdXBfc3ltYm9sX2luX25hbWVzcGFjZSAoY3VycmVudC0+aW1wb3J0X3NyYywK LSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCi0rCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9jaywKLSsJICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbik7Ci0rCSAgICAgIH0K LSsKLSsJICAgIGN1cnJlbnQtPnNlYXJjaGVkID0gMDsKLSsJICAgIGlmIChzeW0pCi0rCSAgICAg IHJldHVybiBzeW07Ci0rCi0rCSAgICBjb250aW51ZTsKLSsJICAgIH0KLSsJICAgCi0rCSAgaWYg KGRlY2xhcmF0aW9uX29ubHkpCi0rCSAgICB7Ci0rCSAgICBjdXJyZW50LT5zZWFyY2hlZCA9IDA7 Ci0rCSAgICBkaXNjYXJkX2NsZWFudXBzIChzZWFyY2hlZF9jbGVhbnVwKTsKLSsJICAgIGNvbnRp bnVlOwotKwkgICAgfQotIAorLQogLSAgaWYgKHNjb3BlW3Njb3BlX2xlbl0gIT0gJ1wwJykKIC0g ICAgewogLSAgICAgIC8qIFJlY3Vyc2l2ZWx5IHNlYXJjaCBmb3IgbmFtZXMgaW4gY2hpbGQgbmFt ZXNwYWNlcyBmaXJzdC4gICovCi0rCSAgaWYgKHN0cmNtcCAobmFtZSwgY3VycmVudC0+YWxpYXMp ID09IDApCi0rCSAgICAvKiBJZiB0aGUgaW1wb3J0IGlzIGNyZWF0aW5nIGFuIGFsaWFzIGFuZCB0 aGUgYWxpYXMgbWF0Y2hlcyB0aGUKLSsJICAgICAgIHNvdWdodCBuYW1lLiBQYXNzIGN1cnJlbnQt PmlubmVyIGFzIHRoZSBOQU1FIHRvIGRpcmVjdCB0aGUKLSsJICAgICAgIHNlYXJjaCB0b3dhcmRz IHRoZSBhbGlhc2VkIG5hbWVzcGFjZSAqLwotKwkgICAgewotKwkgICAgc3ltID0gY3BfbG9va3Vw X3N5bWJvbF9pbl9uYW1lc3BhY2UgKHNjb3BlLAotKwkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGN1cnJlbnQtPmltcG9ydF9zcmMsCi0rCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2ssCi0rCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZG9tYWluKTsKLSsJICAgIH0gZWxzZSBpZiAoc3RyY21wICgiIiwg Y3VycmVudC0+YWxpYXMpID09IDApewotKwkgICAgLyogSWYgdGhpcyBpbXBvcnQgc3RhdGVtZW50 IGNyZWF0ZXMgbm8gYWxpYXMsIHBhc3MgY3VycmVudC0+aW5uZXIgYXMKICsJICAgICAgIE5BTUVT UEFDRSB0byBkaXJlY3QgdGhlIHNlYXJjaCB0b3dhcmRzIHRoZSBpbXBvcnRlZCBuYW1lc3BhY2Uu ICovCiArCSAgICAgIHN5bSA9IGNwX2xvb2t1cF9zeW1ib2xfaW1wb3J0cyAoY3VycmVudC0+aW1w b3J0X3NyYywKICsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLApA QCAtMjEzMyw3ICsyMjA3LDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICB9CiAg CiAgLyogTG9vayB1cCBOQU1FIGluIEJMT0NLJ3Mgc3RhdGljIGJsb2NrIGFuZCBpbiBnbG9iYWwg YmxvY2tzLiAgSWYKLUBAIC00NTMsMTcgKzUxNywxNSBAQCBsb29rdXBfbmFtZXNwYWNlX3Njb3Bl IChjb25zdCBjaGFyICpuYW1lLAorQEAgLTQ3NiwxNyArNTI1LDE1IEBAIGxvb2t1cF9uYW1lc3Bh Y2Vfc2NvcGUgKGNvbnN0IGNoYXIgKm5hbWUsCiAgCiAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKgog IGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uc3QgY2hhciAqbmFtZSwKQEAgLTIxNTIsNyArMjIyNiw3 IEBAIGluZGV4IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgICBpZiAoYW5vbnltb3VzX25hbWVz cGFjZSkKICAgICAgewogICAgICAgIC8qIFN5bWJvbHMgZGVmaW5lZCBpbiBhbm9ueW1vdXMgbmFt ZXNwYWNlcyBoYXZlIGV4dGVybmFsIGxpbmthZ2UKLUBAIC00NzMsMTIgKzUzNSwxMSBAQCBsb29r dXBfc3ltYm9sX2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtNDk2LDEyICs1NDMsMTEgQEAg bG9va3VwX3N5bWJvbF9maWxlIChjb25zdCBjaGFyICpuYW1lLAogICAgICAgIGNvbnN0IHN0cnVj dCBibG9jayAqZ2xvYmFsX2Jsb2NrID0gYmxvY2tfZ2xvYmFsX2Jsb2NrIChibG9jayk7CiAgICAg ICAgCiAgICAgICAgaWYgKGdsb2JhbF9ibG9jayAhPSBOVUxMKQpAQCAtMjE2Nyw3ICsyMjQxLDcg QEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICAgICAgfQogIAogICAgaWYgKHN5bSAh PSBOVUxMKQotQEAgLTQ5OSw2ICs1NjAsNyBAQCBsb29rdXBfc3ltYm9sX2ZpbGUgKGNvbnN0IGNo YXIgKm5hbWUsCitAQCAtNTIyLDYgKzU2OCw3IEBAIGxvb2t1cF9zeW1ib2xfZmlsZSAoY29uc3Qg Y2hhciAqbmFtZSwKICAgICAgICBzeW0gPSBsb29rdXBfcG9zc2libGVfbmFtZXNwYWNlX3N5bWJv bCAobmFtZSk7CiAgICAgICAgaWYgKHN5bSAhPSBOVUxMKQogIAlyZXR1cm4gc3ltOwpAQCAtMjE3 NSw3ICsyMjQ5LDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICAgICAgfQogIAog ICAgcmV0dXJuIE5VTEw7Ci1AQCAtNTI3LDEwICs1ODksOSBAQCBjcF9sb29rdXBfbmVzdGVkX3R5 cGUgKHN0cnVjdCB0eXBlICpwYXJlbnRfdHlwZSwKK0BAIC01NTAsMTAgKzU5Nyw5IEBAIGNwX2xv b2t1cF9uZXN0ZWRfdHlwZSAoc3RydWN0IHR5cGUgKnBhcmVudF90eXBlLAogIAogIAljb25zdCBj aGFyICpwYXJlbnRfbmFtZSA9IFRZUEVfVEFHX05BTUUgKHBhcmVudF90eXBlKTsKICAJc3RydWN0 IHN5bWJvbCAqc3ltID0gY3BfbG9va3VwX3N5bWJvbF9pbl9uYW1lc3BhY2UgKHBhcmVudF9uYW1l LApAQCAtMjE4OSw3ICsyMjYzLDcgQEAgaW5kZXggOGNhOWMyMC4uMjFlMDEzYSAxMDA2NDQKICAJ aWYgKHN5bSA9PSBOVUxMIHx8IFNZTUJPTF9DTEFTUyAoc3ltKSAhPSBMT0NfVFlQRURFRikKICAJ ICByZXR1cm4gTlVMTDsKICAJZWxzZQotQEAgLTc3NCw3ICs4MzUsNyBAQCBjaGVja19vbmVfcG9z c2libGVfbmFtZXNwYWNlX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbiwKK0BAIC03 OTcsNyArODQzLDcgQEAgY2hlY2tfb25lX3Bvc3NpYmxlX25hbWVzcGFjZV9zeW1ib2wgKGNvbnN0 IGNoYXIgKm5hbWUsIGludCBsZW4sCiAgCiAgICBtZW1jcHkgKG5hbWVfY29weSwgbmFtZSwgbGVu KTsKICAgIG5hbWVfY29weVtsZW5dID0gJ1wwJzsKQEAgLTIxOTgsNyArMjI3Miw3IEBAIGluZGV4 IDhjYTljMjAuLjIxZTAxM2EgMTAwNjQ0CiAgCiAgICBpZiAoc3ltID09IE5VTEwpCiAgICAgIHsK LUBAIC04MTUsNyArODc2LDcgQEAgbG9va3VwX3Bvc3NpYmxlX25hbWVzcGFjZV9zeW1ib2wgKGNv bnN0IGNoYXIgKm5hbWUpCitAQCAtODM4LDcgKzg4NCw3IEBAIGxvb2t1cF9wb3NzaWJsZV9uYW1l c3BhY2Vfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lKQogICAgICAgIHN0cnVjdCBzeW1ib2wgKnN5 bTsKICAKICAgICAgICBzeW0gPSBsb29rdXBfYmxvY2tfc3ltYm9sIChnZXRfcG9zc2libGVfbmFt ZXNwYWNlX2Jsb2NrIChvYmpmaWxlKSwKQEAgLTIyMDgsOSArMjI4MiwxOCBAQCBpbmRleCA4Y2E5 YzIwLi4yMWUwMTNhIDEwMDY0NAogICAgICAgIGlmIChzeW0gIT0gTlVMTCkKICAJcmV0dXJuIHN5 bTsKIGRpZmYgLS1naXQgYS9nZGIvY3Atc3VwcG9ydC5jIGIvZ2RiL2NwLXN1cHBvcnQuYwotaW5k ZXggYzMxZmNmZi4uZmMyOTRhZSAxMDA2NDQKK2luZGV4IGMzMWZjZmYuLjhjNWQ1NmYgMTAwNjQ0 CiAtLS0gYS9nZGIvY3Atc3VwcG9ydC5jCiArKysgYi9nZGIvY3Atc3VwcG9ydC5jCitAQCAtNTAs NyArNTAsNyBAQCBzdGF0aWMgdm9pZCBkZW1hbmdsZWRfbmFtZV9jb21wbGFpbnQgKGNvbnN0IGNo YXIgKm5hbWUpOworIAorIC8qIEZ1bmN0aW9ucy92YXJpYWJsZXMgcmVsYXRlZCB0byBvdmVybG9h ZCByZXNvbHV0aW9uLiAgKi8KKyAKKy1zdGF0aWMgaW50IHN5bV9yZXR1cm5fdmFsX3NpemU7Cisr c3RhdGljIGludCBzeW1fcmV0dXJuX3ZhbF9zaXplID0gLTE7Cisgc3RhdGljIGludCBzeW1fcmV0 dXJuX3ZhbF9pbmRleDsKKyBzdGF0aWMgc3RydWN0IHN5bWJvbCAqKnN5bV9yZXR1cm5fdmFsOwor IAogQEAgLTE5MCw3ICsxOTAsOCBAQCBtYW5nbGVkX25hbWVfdG9fY29tcCAoY29uc3QgY2hhciAq bWFuZ2xlZF9uYW1lLCBpbnQgb3B0aW9ucywKICAgIHJldHVybiByZXQ7CiAgfQpAQCAtMjIyMSw3 ICsyMzA0LDExMiBAQCBpbmRleCBjMzFmY2ZmLi5mYzI5NGFlIDEwMDY0NAogIAogIGNoYXIgKgog IGNwX2NsYXNzX25hbWVfZnJvbV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5c25hbWUpCi1AQCAt ODQwLDkgKzg0MSw5IEBAIHJlYWRfaW5fcHN5bXRhYnMgKGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSkK K0BAIC03MTEsNiArNzEyLDgyIEBAIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3QgKGNvbnN0IGNo YXIgKmZ1bmNfbmFtZSwKKyAKKyAgIHJldHVybiBzeW1fcmV0dXJuX3ZhbDsKKyB9CisrLyogQWRk cyB0aGUgZnVuY3Rpb24gRlVOQ19OQU1FIGZyb20gTkFNRVNQQUNFIHRvIHRoZSBvdmVybG9hZCBz ZXQuICAqLworKworK3N0YXRpYyB2b2lkCisrbWFrZV9zeW1ib2xfb3ZlcmxvYWRfbGlzdF9uYW1l c3BhY2UgKGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZXNwYWNlKQorK3sKKysKKysgIGlmIChuYW1lc3Bh Y2VbMF0gPT0gJ1wwJykKKysgICAgeworKyAgICAgIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3Rf cXVhbGlmaWVkIChmdW5jX25hbWUpOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBj aGFyICpjb25jYXRlbmF0ZWRfbmFtZQorKwk9IGFsbG9jYSAoc3RybGVuIChuYW1lc3BhY2UpICsg MiArIHN0cmxlbiAoZnVuY19uYW1lKSArIDEpOworKyAgICAgIHN0cmNweSAoY29uY2F0ZW5hdGVk X25hbWUsIG5hbWVzcGFjZSk7CisrICAgICAgc3RyY2F0IChjb25jYXRlbmF0ZWRfbmFtZSwgIjo6 Iik7CisrICAgICAgc3RyY2F0IChjb25jYXRlbmF0ZWRfbmFtZSwgZnVuY19uYW1lKTsKKysgICAg ICBtYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X3F1YWxpZmllZCAoY29uY2F0ZW5hdGVkX25hbWUp OworKyAgICB9CisrfQorKworKy8qIFNlYXJjaCB0aGUgbmFtZXNwYWNlIG9mIHRoZSBnaXZlbiB0 eXBlIGFuZCBuYW1lc3BhY2Ugb2YgYW5kIHB1YmxpYyBiYXNlCisrIHR5cGVzLiAgKi8KKytzdGF0 aWMgdm9pZCBtYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X2FkbF9uYW1lc3BhY2UgKHN0cnVjdCB0 eXBlICp0eXBlLAorKwkJCQkJCSAgICAgY29uc3QgY2hhciAqZnVuY19uYW1lKQorK3sKKysgIGNo YXIgKm5hbWVzcGFjZTsKKysgIGNoYXIgKnR5cGVfbmFtZTsKKysgIGludCBpLCBwcmVmaXhfbGVu OworKworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1BUUiB8fCBUWVBFX0NP REUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYKKysgICAgICB8fCBUWVBFX0NPREUgKHR5cGUpID09 IFRZUEVfQ09ERV9BUlJBWSkKKysgICAgcmV0dXJuIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3Rf YWRsX25hbWVzcGFjZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSk7CisrCisrICB0 eXBlX25hbWUgPSBUWVBFX05BTUUgKHR5cGUpOworKworKyAgcHJlZml4X2xlbiA9IGNwX2VudGly ZV9wcmVmaXhfbGVuICh0eXBlX25hbWUpOworKworKyAgaWYgKHByZWZpeF9sZW4gIT0gMCkKKysg ICAgeworKyAgICAgIG5hbWVzcGFjZSA9IGFsbG9jYSAocHJlZml4X2xlbiArIDEpOworKyAgICAg IHN0cm5jcHkgKG5hbWVzcGFjZSwgdHlwZV9uYW1lLCBwcmVmaXhfbGVuKTsKKysgICAgICBuYW1l c3BhY2VbcHJlZml4X2xlbl0gPSAnXDAnOworKworKyAgICAgIG1ha2Vfc3ltYm9sX292ZXJsb2Fk X2xpc3RfbmFtZXNwYWNlIChmdW5jX25hbWUsIG5hbWVzcGFjZSk7CisrICAgIH0KKysKKysgIC8q IENoZWNrIHB1YmxpYyBiYXNlIHR5cGUgKi8KKysgIGlmIChUWVBFX0NPREUodHlwZSkgPT0gVFlQ RV9DT0RFX0NMQVNTKQorKyAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTICh0 eXBlKTsgaSsrKQorKyAgICAgIHsKKysJaWYgKEJBU0VUWVBFX1ZJQV9QVUJMSUMgKHR5cGUsIGkp KQorKwkgIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfYWRsX25hbWVzcGFjZSAoVFlQRV9CQVNF Q0xBU1MgKHR5cGUsIGkpLAorKwkJCQkJCSAgIGZ1bmNfbmFtZSk7CisrICAgICAgfQorKworK30K KysKKysvKiBBZGRzIHRoZSB0aGUgb3ZlcmxvYWQgbGlzdCBvdmVybG9hZCBjYW5kaWRhdGVzIGZv ciBGVU5DX05BTUUgZm91bmQgdGhyb3VnaAorKyAgIGFyZ3VtZW50IGRlcGVuZGVudCBsb29rdXAu ICAqLworKworK3N0cnVjdCBzeW1ib2wgKioKKyttYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X2Fk bCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZnVuY19uYW1lKQorK3sKKysgIGludCBpOworKwor KyAgZ2RiX2Fzc2VydCAoc3ltX3JldHVybl92YWxfc2l6ZSAhPSAtMSk7CisrCisrICBmb3IgKGkg PSAxOyBpIDw9IG5hcmdzOyBpKyspCisrICAgIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfYWRs X25hbWVzcGFjZSAoYXJnX3R5cGVzW2kgLSAxXSwgZnVuY19uYW1lKTsKKysKKysgIHJldHVybiBz eW1fcmV0dXJuX3ZhbDsKKyt9CisgCisgLyogVGhpcyBhcHBsaWVzIHRoZSB1c2luZyBkaXJlY3Rp dmVzIHRvIGFkZCBuYW1lc3BhY2VzIHRvIHNlYXJjaCBpbiwKKyAgICBhbmQgdGhlbiBzZWFyY2hl cyBmb3Igb3ZlcmxvYWRzIGluIGFsbCBvZiB0aG9zZSBuYW1lc3BhY2VzLiAgSXQKK0BAIC03Mzks MjAgKzgxNiw3IEBAIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfdXNpbmcgKGNvbnN0IGNoYXIg KmZ1bmNfbmFtZSwKKyAgICAgfQorIAorICAgLyogTm93LCBhZGQgbmFtZXMgZm9yIHRoaXMgbmFt ZXNwYWNlLiAgKi8KKy0gIAorLSAgaWYgKG5hbWVzcGFjZVswXSA9PSAnXDAnKQorLSAgICB7Cist ICAgICAgbWFrZV9zeW1ib2xfb3ZlcmxvYWRfbGlzdF9xdWFsaWZpZWQgKGZ1bmNfbmFtZSk7Cist ICAgIH0KKy0gIGVsc2UKKy0gICAgeworLSAgICAgIGNoYXIgKmNvbmNhdGVuYXRlZF9uYW1lCist CT0gYWxsb2NhIChzdHJsZW4gKG5hbWVzcGFjZSkgKyAyICsgc3RybGVuIChmdW5jX25hbWUpICsg MSk7CistICAgICAgc3RyY3B5IChjb25jYXRlbmF0ZWRfbmFtZSwgbmFtZXNwYWNlKTsKKy0gICAg ICBzdHJjYXQgKGNvbmNhdGVuYXRlZF9uYW1lLCAiOjoiKTsKKy0gICAgICBzdHJjYXQgKGNvbmNh dGVuYXRlZF9uYW1lLCBmdW5jX25hbWUpOworLSAgICAgIG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xp c3RfcXVhbGlmaWVkIChjb25jYXRlbmF0ZWRfbmFtZSk7CistICAgIH0KKysgIG1ha2Vfc3ltYm9s X292ZXJsb2FkX2xpc3RfbmFtZXNwYWNlIChmdW5jX25hbWUsIG5hbWVzcGFjZSk7CisgfQorIAor IC8qIFRoaXMgZG9lcyB0aGUgYnVsayBvZiB0aGUgd29yayBvZiBmaW5kaW5nIG92ZXJsb2FkZWQg c3ltYm9scy4KK0BAIC04NDAsOSArOTA0LDkgQEAgcmVhZF9pbl9wc3ltdGFicyAoY29uc3QgY2hh ciAqZnVuY19uYW1lKQogICAgICBpZiAocHMtPnJlYWRpbikKICAgICAgICBjb250aW51ZTsKICAK QEAgLTIyMzQsNDMgKzI0MjIsNDEgQEAgaW5kZXggYzMxZmNmZi4uZmMyOTRhZSAxMDA2NDQKICAg ICAgICBwc3ltdGFiX3RvX3N5bXRhYiAocHMpOwogICAgfQogZGlmZiAtLWdpdCBhL2dkYi9jcC1z dXBwb3J0LmggYi9nZGIvY3Atc3VwcG9ydC5oCi1pbmRleCAzM2IxYjQ0Li41MGY4ZmU5IDEwMDY0 NAoraW5kZXggYTZhOWFmMS4uNTdhYTVlNSAxMDA2NDQKIC0tLSBhL2dkYi9jcC1zdXBwb3J0LmgK ICsrKyBiL2dkYi9jcC1zdXBwb3J0LmgKLUBAIC0zOCwxNCArMzgsMjkgQEAgc3RydWN0IGRlbWFu Z2xlX2NvbXBvbmVudDsKK0BAIC0zOCwyMCArMzgsMjQgQEAgc3RydWN0IGRlbWFuZ2xlX2NvbXBv bmVudDsKICAKICAvKiBUaGlzIHN0cnVjdCBpcyBkZXNpZ25lZCB0byBzdG9yZSBkYXRhIGZyb20g dXNpbmcgZGlyZWN0aXZlcy4gIEl0CiAgICAgc2F5cyB0aGF0IG5hbWVzIGZyb20gbmFtZXNwYWNl IElNUE9SVF9TUkMgc2hvdWxkIGJlIHZpc2libGUgd2l0aGluCi0tICAgbmFtZXNwYWNlIElNUE9S VF9ERVNULiBJTVBPUlRfREVTVCBzaG91bGQgYWx3YXlzIGJlIGEgc3RyaWN0IGluaXRpYWwKLS0g ICBzdWJzdHJpbmcgb2YgSU1QT1JUX1NSQy4gVGhlc2UgZm9ybSBhIGxpbmtlZCBsaXN0OyBORVhU IGlzIHRoZSBuZXh0IGVsZW1lbnQKLS0gICBvZiB0aGUgbGlzdC4gICovCi0rICAgbmFtZXNwYWNl IElNUE9SVF9ERVNULiAgSU1QT1JUX0RFU1Qgc2hvdWxkIGFsd2F5cyBiZSBhIHN0cmljdCBpbml0 aWFsCi0rICAgc3Vic3RyaW5nIG9mIElNUE9SVF9TUkMuICBUaGVzZSBmb3JtIGEgbGlua2VkIGxp c3Q7IE5FWFQgaXMgdGhlIG5leHQKKy0gICBuYW1lc3BhY2UgSU1QT1JUX0RFU1QuICBUaGVzZSBm b3JtIGEgbGlua2VkIGxpc3Q7IE5FWFQgaXMgdGhlIG5leHQgZWxlbWVudAorLSAgIG9mIHRoZSBs aXN0LiAgSWYgdGhlIGltcG9ydGVkIG5hbWVzcGFjZSBoYXMgYmVlbiBhbGlhc2VkLCBBTElBUyBp cyBzZXQgdG8gYQorLSAgIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGFsaWFzLiAgT3RoZXJ3aXNl LCBBTElBUyBpcyBOVUxMLgorLSAgIEVnOgorLSAgICAgICBuYW1lc3BhY2UgQyA9IEE6OkI7Cisr ICAgbmFtZXNwYWNlIElNUE9SVF9ERVNULiAgVGhlc2UgZm9ybSBhIGxpbmtlZCBsaXN0OyBORVhU IGlzIHRoZSBuZXh0CiArICAgZWxlbWVudCBvZiB0aGUgbGlzdC4gIEFMSUFTIGlzIHNldCB0byBh IG5vbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGltcG9ydGVkCiArICAgbmFtZXNwYWNlIGhhcyBiZWVu IGFsaWFzZWQuRWc6CiArICAgICAgIG5hbWVzcGFjZSBDPUE6OkI7Ci0rICAgQUxJQVMgPSAiQyIK KyAgICBBTElBUyA9ICJDIgogKyAgIERFQ0xBUkFUSU9OIGlzIHRoZSBuYW1lIG9mIHRoZSBpbXBv cnRlZCBkZWNsYXJhdGlvbiwgaWYgdGhpcyBpbXBvcnQgCiArICAgc3RhdGVtZW50IHJlcHJlc2Vu dHMgb25lLiBFZzoKICsgICAgICAgdXNpbmcgQTo6eDsKICsgICBXaGVyZSB4IGlzIHZhcmlhYmxl IGluIG5hbWVzcGFjZSBBLiBkZWNsYXJhdGlvbiBpcyBzZXQgdG8geC4gIAotKyovCisgKi8KICAK ICBzdHJ1Y3QgdXNpbmdfZGlyZWN0CiAgewogICAgY2hhciAqaW1wb3J0X3NyYzsKICAgIGNoYXIg KmltcG9ydF9kZXN0OwotKwotKyAgY2hhciAqYWxpYXM7Ci0rCistCisgICBjaGFyICphbGlhczsK ICsgIGNoYXIgKmRlY2xhcmF0aW9uOwotKwogKyAgaW50IGxpbmVfbnVtYmVyOwotKworIAogICAg c3RydWN0IHVzaW5nX2RpcmVjdCAqbmV4dDsKICAKLSAgIC8qIFVzZWQgZHVyaW5nIGltcG9ydCBz ZWFyY2ggdG8gdGVtcG9yYXJpbHkgbWFyayB0aGlzIG5vZGUgYXMgc2VhcmNoZWQuICAqLwotQEAg LTU3LDYgKzcyLDcgQEAgc3RydWN0IHVzaW5nX2RpcmVjdAorQEAgLTY0LDYgKzY4LDcgQEAgc3Ry dWN0IHVzaW5nX2RpcmVjdAogIAogIGV4dGVybiBjaGFyICpjcF9jYW5vbmljYWxpemVfc3RyaW5n IChjb25zdCBjaGFyICpzdHJpbmcpOwogIApAQCAtMjI3OCwyNSArMjQ2NCwzNSBAQCBpbmRleCAz M2IxYjQ0Li41MGY4ZmU5IDEwMDY0NAogIGV4dGVybiBjaGFyICpjcF9jbGFzc19uYW1lX2Zyb21f cGh5c25hbWUgKGNvbnN0IGNoYXIgKnBoeXNuYW1lKTsKICAKICBleHRlcm4gY2hhciAqbWV0aG9k X25hbWVfZnJvbV9waHlzbmFtZSAoY29uc3QgY2hhciAqcGh5c25hbWUpOwotQEAgLTgyLDEwICs5 OCwxNiBAQCBleHRlcm4gaW50IGNwX3ZhbGlkYXRlX29wZXJhdG9yIChjb25zdCBjaGFyICppbnB1 dCk7Ci0gZXh0ZXJuIGludCBjcF9pc19hbm9ueW1vdXMgKGNvbnN0IGNoYXIgKm5hbWVzcGFjZSk7 CitAQCAtNzksNiArODQsMTAgQEAgZXh0ZXJuIGNoYXIgKmNwX3JlbW92ZV9wYXJhbXMgKGNvbnN0 IGNoYXIgKmRlbWFuZ2xlZF9uYW1lKTsKKyBleHRlcm4gc3RydWN0IHN5bWJvbCAqKm1ha2Vfc3lt Ym9sX292ZXJsb2FkX2xpc3QgKGNvbnN0IGNoYXIgKiwKKyAJCQkJCQkgIGNvbnN0IGNoYXIgKik7 CisgCisrZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKiptYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X2Fk bCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5hcmdzLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZ1bmNfbmFt ZSk7CisrCisgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcF9sb29rdXBfcnR0aV90eXBlIChjb25zdCBj aGFyICpuYW1lLAorIAkJCQkJIHN0cnVjdCBibG9jayAqYmxvY2spOworIAorQEAgLTkwLDExICs5 OSwxNSBAQCBleHRlcm4gaW50IGNwX2lzX2Fub255bW91cyAoY29uc3QgY2hhciAqbmFtZXNwYWNl KTsKICAKICBleHRlcm4gdm9pZCBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChjb25zdCBjaGFyICpk ZXN0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNy Yyk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3Jj LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNyYywK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcyk7 CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYWxpYXMs CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZGVjbGFy YXRpb24sCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50IGxp bmVfbnVtYmVyKTsKICAKICBleHRlcm4gc3RydWN0IHVzaW5nX2RpcmVjdCAqY3BfYWRkX3VzaW5n IChjb25zdCBjaGFyICpkZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKnNyYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlhcywKICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkZWNsYXJhdGlvbiwKICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgbGluZV9udW1iZXIs CiAgCQkJCQkgIHN0cnVjdCB1c2luZ19kaXJlY3QgKm5leHQpOwogIAogIGV4dGVybiB2b2lkIGNw X2luaXRpYWxpemVfbmFtZXNwYWNlICh2b2lkKTsKLUBAIC0xMDIsMTYgKzEyNCwyMCBAQCBleHRl cm4gdm9pZCBjcF9zZXRfYmxvY2tfc2NvcGUgKGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwK K0BAIC0xMTEsMTYgKzEyNCwyMCBAQCBleHRlcm4gdm9pZCBjcF9zZXRfYmxvY2tfc2NvcGUgKGNv bnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwKICBleHRlcm4gdm9pZCBjcF9zY2FuX2Zvcl9hbm9u eW1vdXNfbmFtZXNwYWNlcyAoY29uc3Qgc3RydWN0IHN5bWJvbCAqc3ltYm9sKTsKICAKICBleHRl cm4gc3RydWN0IHN5bWJvbCAqY3BfbG9va3VwX3N5bWJvbF9ub25sb2NhbCAoY29uc3QgY2hhciAq bmFtZSwKQEAgLTIzMjQsNyArMjUyMCw3IEBAIGluZGV4IDMzYjFiNDQuLjUwZjhmZTkgMTAwNjQ0 CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcF9sb29rdXBfbmVzdGVkX3R5cGUgKHN0cnVjdCB0eXBl ICpwYXJlbnRfdHlwZSwKICAJCQkJCSAgIGNvbnN0IGNoYXIgKm5lc3RlZF9uYW1lLAogZGlmZiAt LWdpdCBhL2dkYi9kYnhyZWFkLmMgYi9nZGIvZGJ4cmVhZC5jCi1pbmRleCA2ZWY2NzY3Li41ZjQ4 MjVjIDEwMDY0NAoraW5kZXggYzlhNTc1NC4uZmMzM2RhMiAxMDA2NDQKIC0tLSBhL2dkYi9kYnhy ZWFkLmMKICsrKyBiL2dkYi9kYnhyZWFkLmMKIEBAIC0zNTY1LDYgKzM1NjUsNyBAQCBzdGF0aWMg c3RydWN0IHN5bV9mbnMgYW91dF9zeW1fZm5zID0KQEAgLTIzMzYsNyArMjUzMiw3IEBAIGluZGV4 IDZlZjY3NjcuLjVmNDgyNWMgMTAwNjQ0CiAgICBkZWZhdWx0X3N5bWZpbGVfb2Zmc2V0cywgLyog c3ltX29mZnNldHM6IHBhcnNlIHVzZXIncyBvZmZzZXRzIHRvCiAgCQkJICAgICAgaW50ZXJuYWwg Zm9ybSAqLwogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50 ZXhpbmZvCi1pbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAoraW5kZXggMGUzZTA5My4uNjYx YmExOCAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KICsrKyBiL2dkYi9kb2MvZ2Ri LnRleGluZm8KIEBAIC0xMTU3LDYgKzExNTcsMTYgQEAgZm9yIHJlbW90ZSBkZWJ1Z2dpbmcuCkBA IC0yMzU2LDcgKzI1NTIsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEBjIHJl c29sdmUgdGhlIHNpdHVhdGlvbiBvZiB0aGVzZSBldmVudHVhbGx5CiAgQGl0ZW0gLXR1aQogIEBj aW5kZXggQGNvZGV7LS10dWl9Ci1AQCAtMTkyMDYsNyArMTkyMTYsNyBAQCB1c2luZyB0aGUgQGNv ZGV7c2NyaXB0LWV4dGVuc2lvbn0gc2V0dGluZy4KK0BAIC0xOTIxNSw3ICsxOTIyNSw3IEBAIHVz aW5nIHRoZSBAY29kZXtzY3JpcHQtZXh0ZW5zaW9ufSBzZXR0aW5nLgogIEB0YWJsZSBAY29kZQog IEBraW5kZXggc291cmNlCiAgQGNpbmRleCBleGVjdXRlIGNvbW1hbmRzIGZyb20gYSBmaWxlCkBA IC0yMzY1LDcgKzI1NjEsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEV4ZWN1 dGUgdGhlIGNvbW1hbmQgZmlsZSBAdmFye2ZpbGVuYW1lfS4KICBAZW5kIHRhYmxlCiAgCi1AQCAt MTk0ODQsOCArMTk0OTQsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToK K0BAIC0xOTQ5Myw4ICsxOTUwMyw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFt cGxlOgogIAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRob24KQEAgLTIzNzQs NyArMjU3MCw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgPnByaW50IDIzCiAg PmVuZAogIDIzCi1AQCAtMTk0OTgsNiArMTk1MDYsMTQgQEAgaW4gYSBQeXRob24gc2NyaXB0LiAg VGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQKK0BAIC0xOTUwNyw2 ICsxOTUxNSwxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250cm9sbGVk IHVzaW5nIEBjb2Rle21haW50IHNldAogIHB5dGhvbiBwcmludC1zdGFja306IGlmIEBjb2Rle29u fSwgdGhlIGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCiAgcHJpbnRpbmcgaXMgZW5hYmxlZDsg aWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMKICBkaXNhYmxlZC4K QEAgLTIzODksNyArMjU4NSw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgQGVu ZCB0YWJsZQogIAogIEl0IGlzIGFsc28gcG9zc2libGUgdG8gZXhlY3V0ZSBhIFB5dGhvbiBzY3Jp cHQgZnJvbSB0aGUgQHZhbHVle0dEQk59Ci1AQCAtMTk1MTksNiArMTk1MzUsMTQgQEAgYW5kIHRo dXMgaXMgYWx3YXlzIGF2YWlsYWJsZS4KK0BAIC0xOTUyOCw2ICsxOTU0NCwxNCBAQCBhbmQgdGh1 cyBpcyBhbHdheXMgYXZhaWxhYmxlLgogIEBjaW5kZXggcHl0aG9uIGFwaQogIEBjaW5kZXggcHJv Z3JhbW1pbmcgaW4gcHl0aG9uCiAgCkBAIC0yNDA0LDcgKzI2MDAsNyBAQCBpbmRleCAyMTQ1ZjJi Li44NGNhZGQ0IDEwMDY0NAogIEBjaW5kZXggcHl0aG9uIHN0ZG91dAogIEBjaW5kZXggcHl0aG9u IHBhZ2luYXRpb24KICBBdCBzdGFydHVwLCBAdmFsdWV7R0RCTn0gb3ZlcnJpZGVzIFB5dGhvbidz IEBjb2Rle3N5cy5zdGRvdXR9IGFuZAotQEAgLTE5NTMxLDEzICsxOTU1NSwxNyBAQCBzaXR1YXRp b24sIGEgUHl0aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0fSBleGNlcHRpb24gaXMgdGhyb3du LgorQEAgLTE5NTQwLDEzICsxOTU2NCwxNyBAQCBzaXR1YXRpb24sIGEgUHl0aG9uIEBjb2Rle0tl eWJvYXJkSW50ZXJydXB0fSBleGNlcHRpb24gaXMgdGhyb3duLgogICogQmFzaWMgUHl0aG9uOjog ICAgICAgICAgICAgICAgQmFzaWMgUHl0aG9uIEZ1bmN0aW9ucy4KICAqIEV4Y2VwdGlvbiBIYW5k bGluZzo6CiAgKiBBdXRvLWxvYWRpbmc6OiAgICAgICAgICAgICAgICBBdXRvbWF0aWNhbGx5IGxv YWRpbmcgUHl0aG9uIGNvZGUuCkBAIC0yNDIzLDcgKzI2MTksNyBAQCBpbmRleCAyMTQ1ZjJiLi44 NGNhZGQ0IDEwMDY0NAogICogRnJhbWVzIEluIFB5dGhvbjo6ICAgICAgICAgICAgQWNlc3Npbmcg aW5mZXJpb3Igc3RhY2sgZnJhbWVzIGZyb20gUHl0aG9uLgogICogTGF6eSBTdHJpbmdzIEluIFB5 dGhvbjo6ICAgICAgUHl0aG9uIHJlcHJlc2VudGF0aW9uIG9mIGxhenkgc3RyaW5ncy4KICBAZW5k IG1lbnUKLUBAIC0xOTU2NSw2ICsxOTU5MywxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmlnaW5h dGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KK0BAIC0xOTU3NCw2 ICsxOTYwMiwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmlnaW5hdGVkIGZyb20gdGhlIHVzZXIg aW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KICBJdCBtdXN0IGJlIGEgYm9vbGVhbiB2YWx1ZS4g IElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIEBjb2Rle0ZhbHNlfS4KICBAZW5kIGRlZnVuCiAg CkBAIC0yNDM2LDcgKzI2MzIsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEBm aW5kZXggZ2RiLnBhcmFtZXRlcgogIEBkZWZ1biBwYXJhbWV0ZXIgcGFyYW1ldGVyCiAgUmV0dXJu IHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0ZXIuICBAdmFye3BhcmFtZXRlcn0g aXMgYQotQEAgLTE5NTgxLDYgKzE5NjE1LDcgQEAgYSBQeXRob24gdmFsdWUgb2YgdGhlIGFwcHJv cHJpYXRlIHR5cGUsIGFuZCByZXR1cm5lZC4KK0BAIC0xOTU5MCw2ICsxOTYyNCw3IEBAIGEgUHl0 aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBhbmQgcmV0dXJuZWQuCiAgQGRlZnVu IGhpc3RvcnkgbnVtYmVyCiAgUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RCTn0ncyB2YWx1 ZSBoaXN0b3J5IChAcHhyZWZ7VmFsdWUKICBIaXN0b3J5fSkuICBAdmFye251bWJlcn0gaW5kaWNh dGVzIHdoaWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCkBAIC0yNDQ0LDcgKzI2NDAsNyBA QCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIElmIEB2YXJ7bnVtYmVyfSBpcyBuZWdh dGl2ZSwgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbCB0YWtlIGl0cyBhYnNvbHV0ZSB2YWx1ZQogIGFu ZCBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZSBsYXN0IGVsZW1lbnQgKGkuZS4sIHRoZSBtb3N0IHJl Y2VudCBlbGVtZW50KSB0bwogIGZpbmQgdGhlIHZhbHVlIHRvIHJldHVybi4gIElmIEB2YXJ7bnVt YmVyfSBpcyB6ZXJvLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsCi1AQCAtMTk2MDUsNiArMTk2NDAs MjEgQEAgY29tcHV0ZSB2YWx1ZXMsIGZvciBleGFtcGxlLCBpdCBpcyB0aGUgb25seSB3YXkgdG8g Z2V0IHRoZSB2YWx1ZSBvZiBhCitAQCAtMTk2MTQsNiArMTk2NDksMjEgQEAgY29tcHV0ZSB2YWx1 ZXMsIGZvciBleGFtcGxlLCBpdCBpcyB0aGUgb25seSB3YXkgdG8gZ2V0IHRoZSB2YWx1ZSBvZiBh CiAgY29udmVuaWVuY2UgdmFyaWFibGUgKEBweHJlZntDb252ZW5pZW5jZSBWYXJzfSkgYXMgYSBA Y29kZXtnZGIuVmFsdWV9LgogIEBlbmQgZGVmdW4KICAKQEAgLTI0NjYsNyArMjY2Miw3IEBAIGlu ZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgQGZpbmRleCBnZGIud3JpdGUKICBAZGVmdW4g d3JpdGUgc3RyaW5nCiAgUHJpbnQgYSBzdHJpbmcgdG8gQHZhbHVle0dEQk59J3MgcGFnaW5hdGVk IHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uCi1AQCAtMTk2MTksNiArMTk2NjksMTEgQEAgRmx1c2gg QHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uICBGbHVzaGlu ZworQEAgLTE5NjI4LDYgKzE5Njc4LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRl ZCBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLiAgRmx1c2hpbmcKICBmdW5jdGlvbi4KICBAZW5kIGRl ZnVuCiAgCkBAIC0yNDc4LDcgKzI2NzQsNyBAQCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0 NAogIEBub2RlIEV4Y2VwdGlvbiBIYW5kbGluZwogIEBzdWJzdWJzZWN0aW9uIEV4Y2VwdGlvbiBI YW5kbGluZwogIEBjaW5kZXggcHl0aG9uIGV4Y2VwdGlvbnMKLUBAIC0xOTg1Nyw2ICsxOTkxMiw5 IEBAIG1vZHVsZToKK0BAIC0xOTg2Niw2ICsxOTkyMSw5IEBAIG1vZHVsZToKICBUaGlzIGZ1bmN0 aW9uIGxvb2tzIHVwIGEgdHlwZSBieSBuYW1lLiAgQHZhcntuYW1lfSBpcyB0aGUgbmFtZSBvZiB0 aGUKICB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJlIGEgc3RyaW5nLgogIApAQCAtMjQ4OCw3 ICsyNjg0LDcgQEAgaW5kZXggMjE0NWYyYi4uODRjYWRkNCAxMDA2NDQKICBPcmRpbmFyaWx5LCB0 aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEBjb2Rle2dkYi5UeXBlfS4K ICBJZiB0aGUgbmFtZWQgdHlwZSBjYW5ub3QgYmUgZm91bmQsIGl0IHdpbGwgdGhyb3cgYW4gZXhj ZXB0aW9uLgogIEBlbmQgZGVmdW4KLUBAIC0xOTk3OSw3ICsyMDAzNyw3IEBAIElmIHRoZSB0eXBl IGRvZXMgbm90IGhhdmUgYSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgYW4KK0BAIC0x OTk4OCw3ICsyMDA0Niw3IEBAIElmIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQsIHRo aXMgbWV0aG9kIHdpbGwgdGhyb3cgYW4KICBleGNlcHRpb24uCiAgQGVuZCBkZWZtZXRob2QKICAK QEAgLTI0OTcsNyArMjY5Myw3IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgSWYg dGhpcyBAY29kZXtnZGIuVHlwZX0gaXMgYW4gaW5zdGFudGlhdGlvbiBvZiBhIHRlbXBsYXRlLCB0 aGlzIHdpbGwKICByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNoIHJlcHJlc2VudHMg dGhlIHR5cGUgb2YgdGhlCiAgQHZhcntufXRoIHRlbXBsYXRlIGFyZ3VtZW50LgotQEAgLTE5OTg3 LDcgKzIwMDQ1LDggQEAgcmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSB3aGljaCByZXByZXNl bnRzIHRoZSB0eXBlIG9mIHRoZQorQEAgLTE5OTk2LDcgKzIwMDU0LDggQEAgcmV0dXJuIGEgbmV3 IEBjb2Rle2dkYi5UeXBlfSB3aGljaCByZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZQogIElmIHRo aXMgQGNvZGV7Z2RiLlR5cGV9IGlzIG5vdCBhIHRlbXBsYXRlIHR5cGUsIHRoaXMgd2lsbCB0aHJv dyBhbgogIGV4Y2VwdGlvbi4gIE9yZGluYXJpbHksIG9ubHkgQ0B0eysrfSBjb2RlIHdpbGwgaGF2 ZSB0ZW1wbGF0ZSB0eXBlcy4KICAKQEAgLTI1MDcsNyArMjcwMyw3IEBAIGluZGV4IDIxNDVmMmIu Ljg0Y2FkZDQgMTAwNjQ0CiAgQGVuZCBkZWZtZXRob2QKICBAZW5kIHRhYmxlCiAgCi1AQCAtMjAz NDEsNiArMjA0MDAsMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4LnY2CitAQCAtMjAzNTAsNiAr MjA0MDksMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4LnY2CiAgZ2RiLmxpYnN0ZGN4eC52Ni5y ZWdpc3Rlcl9wcmludGVycyAoZ2RiLmN1cnJlbnRfb2JqZmlsZSAoKSkKICBAZW5kIHNtYWxsZXhh bXBsZQogIApAQCAtMjYyOSw3ICsyODI1LDcgQEAgaW5kZXggMjE0NWYyYi4uODRjYWRkNCAxMDA2 NDQKICBAbm9kZSBDb21tYW5kcyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlvbiBDb21tYW5kcyBJ biBQeXRob24KICAKLUBAIC0yMDU5Myw2ICsyMDc2NywxMzUgQEAgcmVnaXN0cmF0aW9uIG9mIHRo ZSBjb21tYW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhvdyB0aGUKK0BAIC0y MDYwMiw2ICsyMDc3NiwxMzUgQEAgcmVnaXN0cmF0aW9uIG9mIHRoZSBjb21tYW5kIHdpdGggQHZh bHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhvdyB0aGUKICBQeXRob24gY29kZSBpcyByZWFkIGlu dG8gQHZhbHVle0dEQk59LCB5b3UgbWF5IG5lZWQgdG8gaW1wb3J0IHRoZQogIEBjb2Rle2dkYn0g bW9kdWxlIGV4cGxpY2l0bHkuCiAgCkBAIC0yNzY1LDcgKzI5NjEsNyBAQCBpbmRleCAyMTQ1ZjJi Li44NGNhZGQ0IDEwMDY0NAogIEBub2RlIEZ1bmN0aW9ucyBJbiBQeXRob24KICBAc3Vic3Vic2Vj dGlvbiBXcml0aW5nIG5ldyBjb252ZW5pZW5jZSBmdW5jdGlvbnMKICAKLUBAIC0yMDY5Nyw2ICsy MTAwMCw4MiBAQCB3aGljaCBpcyB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWUuICBAeHJlZntQcmV0 dHkgUHJpbnRpbmd9LCBmb3IgbW9yZQorQEAgLTIwNzA2LDYgKzIxMDA5LDgyIEBAIHdoaWNoIGlz IHVzZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmludGluZ30sIGZvciBt b3JlCiAgaW5mb3JtYXRpb24uCiAgQGVuZCBkZWZpdmFyCiAgCkBAIC0yODQ4LDcgKzMwNDQsNyBA QCBpbmRleCAyMTQ1ZjJiLi44NGNhZGQ0IDEwMDY0NAogIEBub2RlIEZyYW1lcyBJbiBQeXRob24K ICBAc3Vic3Vic2VjdGlvbiBBY2Vzc2luZyBpbmZlcmlvciBzdGFjayBmcmFtZXMgZnJvbSBQeXRo b24uCiAgCi1AQCAtMjA3NjEsNiArMjExNDAsMTQgQEAgZnVuY3Rpb24gdG8gYSBzdHJpbmcuCitA QCAtMjA3NzAsNiArMjExNDksMTQgQEAgZnVuY3Rpb24gdG8gYSBzdHJpbmcuCiAgUmV0dXJucyB0 aGUgZnJhbWUncyByZXN1bWUgYWRkcmVzcy4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMjg2Myw3 ICszMDU5LDcgQEAgaW5kZXggMjE0NWYyYi4uODRjYWRkNCAxMDA2NDQKICBAZGVmbWV0aG9kIEZy YW1lIG9sZGVyCiAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1lLgogIEBl bmQgZGVmbWV0aG9kCi1AQCAtMjA3NjksMTAgKzIxMTU2LDE4IEBAIFJldHVybiB0aGUgZnJhbWUg dGhhdCBjYWxsZWQgdGhpcyBmcmFtZS4KK0BAIC0yMDc3OCwxMCArMjExNjUsMTggQEAgUmV0dXJu IHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1lLgogIFJldHVybiB0aGUgZnJhbWUgY2Fs bGVkIGJ5IHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRob2QKICAKQEAgLTI4ODMsNyArMzA3OSw3 IEBAIGluZGV4IDIxNDVmMmIuLjg0Y2FkZDQgMTAwNjQ0CiAgCiAgQG5vZGUgTGF6eSBTdHJpbmdz IEluIFB5dGhvbgogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8gYi9nZGIvZG9j L2dkYmludC50ZXhpbmZvCi1pbmRleCAzNDdjODYwLi41ZDcwMDJlIDEwMDY0NAoraW5kZXggNzc0 MTg1NS4uZGYzZmM4NyAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KICsrKyBi L2dkYi9kb2MvZ2RiaW50LnRleGluZm8KIEBAIC0yMTA3LDYgKzIxMDcsMTggQEAgdGltZSwgYW5k IHNvIHdlIGF0dGVtcHQgdG8gaGFuZGxlIHN5bWJvbHMgaW5jcmVtZW50YWxseS4gIEZvciBpbnN0 YW5jZSwKQEAgLTMwODksMTAgKzMyODUsMjMgQEAgaW5kZXggNDM3Y2EzOS4uZjdmY2U5MiAxMDA2 NDQKICAgIC8qIFRoZSBjdXJyZW50IGRlcHRoIG9mIGR3YXJmIGV4cHJlc3Npb24gcmVjdXJzaW9u LCB2aWEgRFdfT1BfY2FsbCosCiAgICAgICBEV19PUF9mYnJlZywgRFdfT1BfcHVzaF9vYmplY3Rf YWRkcmVzcywgZXRjLiwgYW5kIHRoZSBtYXhpbXVtCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxv Yy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRleCA2Njc5ZDc0Li41NGQyYmFlIDEwMDY0NAoraW5k ZXggMWM0ZDA1Ny4uMjBkY2FjZCAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIv Z2RiL2R3YXJmMmxvYy5jCi1AQCAtMTIxLDYgKzEyMSw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2Jh dG9uCitAQCAtNDYsNiArNDYsMTIgQEAgc3RhdGljIHZvaWQKKyBkd2FyZl9leHByX2ZyYW1lX2Jh c2VfMSAoc3RydWN0IHN5bWJvbCAqZnJhbWVmdW5jLCBDT1JFX0FERFIgcGMsCisgCQkJIGdkYl9i eXRlICoqc3RhcnQsIHNpemVfdCAqbGVuZ3RoKTsKKyAKKytzdGF0aWMgc3RydWN0IHZhbHVlICpk d2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCB0eXBlICp0eXBlLAorKwkJCQkJICAgICAg IHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKKysJCQkJCSAgICAgICBnZGJfYnl0ZSAqZGF0YSwK KysJCQkJCSAgICAgICB1bnNpZ25lZCBzaG9ydCBzaXplLAorKwkJCQkJICAgICBzdHJ1Y3QgZHdh cmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpOworKworIC8qIEEgaGVscGVyIGZ1bmN0aW9uIGZvciBk ZWFsaW5nIHdpdGggbG9jYXRpb24gbGlzdHMuICBHaXZlbiBhCisgICAgc3ltYm9sIGJhdG9uIChC QVRPTikgYW5kIGEgcGMgdmFsdWUgKFBDKSwgZmluZCB0aGUgYXBwcm9wcmlhdGUKKyAgICBsb2Nh dGlvbiBleHByZXNzaW9uLCBzZXQgKkxPQ0VYUFJfTEVOR1RILCBhbmQgcmV0dXJuIGEgcG9pbnRl cgorQEAgLTEyMSw2ICsxMjcsOSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbgogIHsKICAgIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZTsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwpAQCAt MzEwMiw3ICszMzExLDcgQEAgaW5kZXggNjY3OWQ3NC4uNTRkMmJhZSAxMDA2NDQKICB9OwogIAog IC8qIEhlbHBlciBmdW5jdGlvbnMgZm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYy4gICovCi1A QCAtMTg5LDIyICsxOTIsMzMgQEAgZHdhcmZfZXhwcl9mcmFtZV9iYXNlXzEgKHN0cnVjdCBzeW1i b2wgKmZyYW1lZnVuYywgQ09SRV9BRERSIHBjLAorQEAgLTE4OSwyMiArMTk4LDMzIEBAIGR3YXJm X2V4cHJfZnJhbWVfYmFzZV8xIChzdHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMsIENPUkVfQUREUiBw YywKICAgICAgICBzeW1iYXRvbiA9IFNZTUJPTF9MT0NBVElPTl9CQVRPTiAoZnJhbWVmdW5jKTsK ICAgICAgICAqc3RhcnQgPSBmaW5kX2xvY2F0aW9uX2V4cHJlc3Npb24gKHN5bWJhdG9uLCBsZW5n dGgsIHBjKTsKICAgICAgfQpAQCAtMzE0NSw3ICszMzU0LDcgQEAgaW5kZXggNjY3OWQ3NC4uNTRk MmJhZSAxMDA2NDQKICB9CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9uIGZvciBkd2FyZjJfZXZhbHVh dGVfbG9jX2Rlc2MuICBDb21wdXRlcyB0aGUgQ0ZBIGZvcgotQEAgLTIyNyw2ICsyNDEsMTI5IEBA IGR3YXJmX2V4cHJfdGxzX2FkZHJlc3MgKHZvaWQgKmJhdG9uLCBDT1JFX0FERFIgb2Zmc2V0KQor QEAgLTIyNyw2ICsyNDcsMTU1IEBAIGR3YXJmX2V4cHJfdGxzX2FkZHJlc3MgKHZvaWQgKmJhdG9u LCBDT1JFX0FERFIgb2Zmc2V0KQogICAgcmV0dXJuIHRhcmdldF90cmFuc2xhdGVfdGxzX2FkZHJl c3MgKGRlYmF0b24tPm9iamZpbGUsIG9mZnNldCk7CiAgfQogIApAQCAtMzI3MiwxMCArMzQ4MSw0 MiBAQCBpbmRleCA2Njc5ZDc0Li41NGQyYmFlIDEwMDY0NAogKyAgcmV0dXJuIHJldHZhbDsKICt9 CiArCisrLyogRXZhbHVhdGUgRFdBUkYgbG9jYXRpb24gbGlzdCBhdCBETExCQVRPTiBleHBlY3Rp bmcgaXQgcHJvZHVjZXMgZXhhY3RseSBvbmUKKysgICBDT1JFX0FERFIgcmVzdWx0IHN0b3JlZCB0 byAqQUREUlAgb24gdGhlIERXQVJGIHN0YWNrIHN0YWNrLiAgSWYgdGhlIHJlc3VsdAorKyAgIGNv dWxkIG5vdCBiZSBmb3VuZCByZXR1cm4gemVybyBhbmQga2VlcCAqQUREUlAgdW5jaGFuZ2VkLiAg Ki8KKysKKytpbnQKKytkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwgKHN0cnVjdCBkd2FyZjJfbG9j bGlzdF9iYXRvbiAqZGxsYmF0b24sCisrCQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERS ICphZGRycCkKKyt7CisrICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBnZXRfc2VsZWN0ZWRf ZnJhbWUgKE5VTEwpOworKyAgZ2RiX2J5dGUgKmRhdGE7CisrICBzaXplX3Qgc2l6ZTsKKysgIHN0 cnVjdCB2YWx1ZSAqdmFsOworKworKyAgZGF0YSA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAo ZGxsYmF0b24sICZzaXplLAorKwkJCQkgICBnZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoZnJh bWUpKTsKKysgIGlmIChkYXRhID09IE5VTEwpCisrICAgIHJldHVybiAwOworKworKyAgdmFsID0g ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjICh0eXBlLCBmcmFtZSwgZGF0YSwgc2l6ZSwgZGxsYmF0 b24tPnBlcl9jdSk7CisrICBpZiAodmFsdWVfb3B0aW1pemVkX291dCAodmFsKSkKKysgICAgcmV0 dXJuIDA7CisrCisrICAqYWRkcnAgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOworKyAgcmV0dXJu IDE7CisrfQorKwogIHN0cnVjdCBwaWVjZV9jbG9zdXJlCiAgewogICAgLyogVGhlIG51bWJlciBv ZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxlLiAgKi8KLUBAIC00MDgsOSAr NTQ1LDggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKK0BAIC00MDEsNDggKzU3MCwzMSBAQCBzdGF0aWMgc3Ry dWN0IGx2YWxfZnVuY3MgcGllY2VkX3ZhbHVlX2Z1bmNzID0geworICAgIFNJWkUsIHRvIGZpbmQg dGhlIGN1cnJlbnQgbG9jYXRpb24gb2YgdmFyaWFibGUgVkFSIGluIHRoZSBjb250ZXh0CisgICAg b2YgRlJBTUUuICAqLworIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorLWR3YXJmMl9ldmFsdWF0ZV9s b2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisr ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLAorIAkJCSAgZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVkIHNob3J0IHNpemUs CiAgCQkJICBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgewogICAgc3RydWN0 IHZhbHVlICpyZXR2YWw7CkBAIC0zMjg2LDcgKzM1MjcsMTAgQEAgaW5kZXggNjY3OWQ3NC4uNTRk MmJhZSAxMDA2NDQKICAKICAgIGlmIChzaXplID09IDApCiAgICAgIHsKLUBAIC00MjAsMjIgKzU1 Niw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCistICAgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZ TUJPTF9UWVBFICh2YXIpKTsKKysgICAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAodHlwZSk7 CisgICAgICAgVkFMVUVfTFZBTCAocmV0dmFsKSA9IG5vdF9sdmFsOworICAgICAgIHNldF92YWx1 ZV9vcHRpbWl6ZWRfb3V0IChyZXR2YWwsIDEpOwogICAgICAgIHJldHVybiByZXR2YWw7CiAgICAg IH0KICAKQEAgLTMzMTAsMTkgKzM1NTQsODggQEAgaW5kZXggNjY3OWQ3NC4uNTRkMmJhZSAxMDA2 NDQKICAgIGlmIChjdHgtPm51bV9waWVjZXMgPiAwKQogICAgICB7CiAgICAgICAgc3RydWN0IHBp ZWNlX2Nsb3N1cmUgKmM7Ci1AQCAtNDY1LDYgKzU4NywxMSBAQCBkd2FyZjJfZXZhbHVhdGVfbG9j X2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorICAg ICAgIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCA9IGdldF9mcmFtZV9pZCAoZnJhbWUpOworIAor ICAgICAgIGMgPSBhbGxvY2F0ZV9waWVjZV9jbG9zdXJlIChjdHgtPm51bV9waWVjZXMsIGN0eC0+ cGllY2VzLCBjdHgtPmdkYmFyY2gpOworLSAgICAgIHJldHZhbCA9IGFsbG9jYXRlX2NvbXB1dGVk X3ZhbHVlIChTWU1CT0xfVFlQRSAodmFyKSwKKy0JCQkJCSZwaWVjZWRfdmFsdWVfZnVuY3MsCist CQkJCQljKTsKKysgICAgICByZXR2YWwgPSBhbGxvY2F0ZV9jb21wdXRlZF92YWx1ZSAodHlwZSwg JnBpZWNlZF92YWx1ZV9mdW5jcywgYyk7CisgICAgICAgVkFMVUVfRlJBTUVfSUQgKHJldHZhbCkg PSBmcmFtZV9pZDsKKyAgICAgfQorICAgZWxzZQorQEAgLTQ1NCw3ICs2MDYsNyBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLAorIAkgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJh bWUpOworIAkgICAgQ09SRV9BRERSIGR3YXJmX3JlZ251bSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0 eCwgMCk7CisgCSAgICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdu dW0gKGFyY2gsIGR3YXJmX3JlZ251bSk7CistCSAgICByZXR2YWwgPSB2YWx1ZV9mcm9tX3JlZ2lz dGVyIChTWU1CT0xfVFlQRSAodmFyKSwgZ2RiX3JlZ251bSwgZnJhbWUpOworKwkgICAgcmV0dmFs ID0gdmFsdWVfZnJvbV9yZWdpc3RlciAodHlwZSwgZ2RiX3JlZ251bSwgZnJhbWUpOworIAkgIH0K KyAJICBicmVhazsKKyAKK0BAIC00NjMsNyArNjE1LDEyIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2Nf ZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgCSAg ICBDT1JFX0FERFIgYWRkcmVzcyA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CiAgCSAgICBp bnQgaW5fc3RhY2tfbWVtb3J5ID0gZHdhcmZfZXhwcl9mZXRjaF9pbl9zdGFja19tZW1vcnkgKGN0 eCwgMCk7CiAgCistCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAoU1lNQk9MX1RZUEUgKHZh cikpOwogKwkgICAgLyogb2JqZWN0X2FkZHJlc3Nfc2V0IGNhbGxlZCBoZXJlIGlzIHJlcXVpcmVk IGluIEFMTE9DQVRFX1ZBTFVFJ3MKICsJICAgICAgIENIRUNLX1RZUEVERUYgZm9yIHRoZSBvYmpl Y3QncyBwb3NzaWJsZQogKwkgICAgICAgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcy4gICovCiAr CSAgICBvYmplY3RfYWRkcmVzc19zZXQgKGFkZHJlc3MpOwogKwotIAkgICAgcmV0dmFsID0gYWxs b2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKKysJICAgIHJldHZhbCA9IGFsbG9jYXRl X3ZhbHVlICh0eXBlKTsKICAJICAgIFZBTFVFX0xWQUwgKHJldHZhbCkgPSBsdmFsX21lbW9yeTsK ICAJICAgIHNldF92YWx1ZV9sYXp5IChyZXR2YWwsIDEpOwotQEAgLTg3Miw3ICs5OTksNyBAQCBz dGF0aWMgaW50CisgCSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5KQorQEAgLTQ3OCwxMCArNjM1LDEw IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUsCisgCSAgICBiZmRfYnl0ZSAqY29udGVudHM7CisgCSAgICBzaXpl X3QgbiA9IGN0eC0+YWRkcl9zaXplOworIAorLQkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUg KFNZTUJPTF9UWVBFICh2YXIpKTsKKysJICAgIHJldHZhbCA9IGFsbG9jYXRlX3ZhbHVlICh0eXBl KTsKKyAJICAgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3IChyZXR2YWwpOworLQkgICAg aWYgKG4gPiBUWVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpKQorLQkgICAgICBuID0gVFlQ RV9MRU5HVEggKFNZTUJPTF9UWVBFICh2YXIpKTsKKysJICAgIGlmIChuID4gVFlQRV9MRU5HVEgg KHR5cGUpKQorKwkgICAgICBuID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAkgICAgc3RvcmVfdW5z aWduZWRfaW50ZWdlciAoY29udGVudHMsIG4sCisgCQkJCSAgICBnZGJhcmNoX2J5dGVfb3JkZXIg KGN0eC0+Z2RiYXJjaCksCisgCQkJCSAgICB2YWx1ZSk7CitAQCAtNDkzLDEwICs2NTAsMTAgQEAg ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFt ZV9pbmZvICpmcmFtZSwKKyAJICAgIGJmZF9ieXRlICpjb250ZW50czsKKyAJICAgIHNpemVfdCBu ID0gY3R4LT5sZW47CisgCistCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAoU1lNQk9MX1RZ UEUgKHZhcikpOworKwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOworIAkgICAg Y29udGVudHMgPSB2YWx1ZV9jb250ZW50c19yYXcgKHJldHZhbCk7CistCSAgICBpZiAobiA+IFRZ UEVfTEVOR1RIIChTWU1CT0xfVFlQRSAodmFyKSkpCistCSAgICAgIG4gPSBUWVBFX0xFTkdUSCAo U1lNQk9MX1RZUEUgKHZhcikpOworKwkgICAgaWYgKG4gPiBUWVBFX0xFTkdUSCAodHlwZSkpCisr CSAgICAgIG4gPSBUWVBFX0xFTkdUSCAodHlwZSk7CisgCSAgICBtZW1jcHkgKGNvbnRlbnRzLCBj dHgtPmRhdGEsIG4pOworIAkgIH0KKyAJICBicmVhazsKK0BAIC03MjAsOCArODc3LDggQEAgbG9j ZXhwcl9yZWFkX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSkKKyB7CisgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24g PSBTWU1CT0xfTE9DQVRJT05fQkFUT04gKHN5bWJvbCk7CisgICBzdHJ1Y3QgdmFsdWUgKnZhbDsK Ky0gIHZhbCA9IGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3ltYm9sLCBmcmFtZSwgZGxiYXRv bi0+ZGF0YSwgZGxiYXRvbi0+c2l6ZSwKKy0JCQkJICBkbGJhdG9uLT5wZXJfY3UpOworKyAgdmFs ID0gZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChTWU1CT0xfVFlQRSAoc3ltYm9sKSwgZnJhbWUs IGRsYmF0b24tPmRhdGEsCisrCQkJCSAgZGxiYXRvbi0+c2l6ZSwgZGxiYXRvbi0+cGVyX2N1KTsK KyAKKyAgIHJldHVybiB2YWw7CisgfQorQEAgLTg0NCw3ICsxMDAxLDcgQEAgbG9jbGlzdF9yZWFk X3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFt ZSkKKyAgICAgICBzZXRfdmFsdWVfb3B0aW1pemVkX291dCAodmFsLCAxKTsKKyAgICAgfQorICAg ZWxzZQorLSAgICB2YWwgPSBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN5bWJvbCwgZnJhbWUs IGRhdGEsIHNpemUsCisrICAgIHZhbCA9IGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoU1lNQk9M X1RZUEUgKHN5bWJvbCksIGZyYW1lLCBkYXRhLCBzaXplLAorIAkJCQkgICAgZGxiYXRvbi0+cGVy X2N1KTsKKyAKKyAgIHJldHVybiB2YWw7CitAQCAtODY4LDcgKzEwMjUsNyBAQCBzdGF0aWMgaW50 CiAgbG9jbGlzdF9kZXNjcmliZV9sb2NhdGlvbiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIC8qIEZJWE1FOiBDb3VsZCBwcmludCB0aGUgZW50 aXJlIGxpc3Qgb2YgbG9jYXRpb25zLiAgKi8KQEAgLTMzMzEsNyArMzY0NCw3IEBAIGluZGV4IDY2 NzlkNzQuLjU0ZDJiYWUgMTAwNjQ0CiAgICByZXR1cm4gMTsKICB9CiAgCi1AQCAtODg4LDE2ICsx MDE1LDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1i b2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTg4NCwxNiArMTA0MSw1NiBAQCBsb2Ns aXN0X3RyYWNlcG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKICAKICAgIGRhdGEgPSBmaW5kX2xvY2F0aW9uX2V4cHJlc3Npb24gKGRs YmF0b24sICZzaXplLCBheC0+c2NvcGUpOwogICAgaWYgKGRhdGEgPT0gTlVMTCkKQEAgLTMzOTIs MTAgKzM3MDUsMTAgQEAgaW5kZXggNjY3OWQ3NC4uNTRkMmJhZSAxMDA2NDQKICsgIG1pc3Npbmdf dHJhY2Vwb2ludF92YXJfcmVmCiArfTsKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmggYi9n ZGIvZHdhcmYybG9jLmgKLWluZGV4IGZhMGJkMTEuLmZkZWEyYjQgMTAwNjQ0CitpbmRleCBmYTBi ZDExLi4zNTM1YzFmIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmxvYy5oCiArKysgYi9nZGIvZHdh cmYybG9jLmgKLUBAIC03Miw1ICs3MiwxMSBAQCBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24K K0BAIC03Miw1ICs3MiwxNCBAQCBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0b24KICAKICBleHRl cm4gY29uc3Qgc3RydWN0IHN5bWJvbF9jb21wdXRlZF9vcHMgZHdhcmYyX2xvY2V4cHJfZnVuY3M7 CiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzeW1ib2xfY29tcHV0ZWRfb3BzIGR3YXJmMl9sb2NsaXN0 X2Z1bmNzOwpAQCAtMzQwNSwxMyArMzcxOCwxNiBAQCBpbmRleCBmYTBiZDExLi5mZGVhMmI0IDEw MDY0NAogKwogK2V4dGVybiBDT1JFX0FERFIgZHdhcmZfbG9jZXhwcl9iYXRvbl9ldmFsCiArICAo c3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpkbGJhdG9uKTsKKysKKytleHRlcm4gaW50IGR3 YXJmX2xvY2xpc3RfYmF0b25fZXZhbCAoc3RydWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uICpkbGxi YXRvbiwKKysJCQkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSICphZGRycCk7CiAg CiAgI2VuZGlmIC8qIGR3YXJmMmxvYy5oICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQu YyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CitpbmRl eCBhMDVjOTQ2Li45NDUyODQ0IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwogKysrIGIv Z2RiL2R3YXJmMnJlYWQuYwotQEAgLTQ4LDYgKzQ4LDExIEBACitAQCAtNDgsNiArNDgsMTAgQEAK ICAjaW5jbHVkZSAiZ2RiY21kLmgiCiAgI2luY2x1ZGUgImJsb2NrLmgiCiAgI2luY2x1ZGUgImFk ZHJtYXAuaCIKQEAgLTM0MTksMTEgKzM3MzUsMTAgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAx MDA2NDQKICsjaW5jbHVkZSAiZi1sYW5nLmgiCiArI2luY2x1ZGUgInR5cGVwcmludC5oIgogKyNp bmNsdWRlICJqdi1sYW5nLmgiCi0rI2luY2x1ZGUgInZlYy5oIgogIAogICNpbmNsdWRlIDxmY250 bC5oPgogICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCi1AQCAtOTYsNyArMTAxLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgcHVibmFtZXNfaGVhZGVyCitAQCAtOTYsNyArMTAwLDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgcHVibmFtZXNfaGVhZGVyCiAgX1BVQk5BTUVTX0hFQURFUjsKICAjZGVmaW5lIF9BQ1RVQUxf UFVCTkFNRVNfSEVBREVSX1NJWkUgMTMKICAKQEAgLTM0MzIsNyArMzc0Nyw3IEBAIGluZGV4IDg2 YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAgQmVjYXVzZSBvZiBhbGlnbm1lbnQgY29uc3RyYWlu dHMsIHRoaXMgc3RydWN0dXJlIGhhcyBwYWRkaW5nIGFuZCBjYW5ub3QKICAgICBiZSBtYXBwZWQg ZGlyZWN0bHkgb250byB0aGUgYmVnaW5uaW5nIG9mIHRoZSAuZGVidWdfaW5mbyBzZWN0aW9uLiAg Ki8KICB0eXBlZGVmIHN0cnVjdCBhcmFuZ2VzX2hlYWRlcgotQEAgLTE1Myw3ICsxNTgsMTAgQEAg c3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8KK0BAIC0xNTMsNyArMTU3LDEwIEBAIHN0cnVjdCBk d2FyZjJfc2VjdGlvbl9pbmZvCiAgICBhc2VjdGlvbiAqYXNlY3Rpb247CiAgICBnZGJfYnl0ZSAq YnVmZmVyOwogICAgYmZkX3NpemVfdHlwZSBzaXplOwpAQCAtMzQ0NCw3ICszNzU5LDcgQEAgaW5k ZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9OwogIAogIHN0cnVjdCBkd2FyZjJfcGVyX29i amZpbGUKLUBAIC0zMzMsNiArMzQxLDE5IEBAIHN0cnVjdCBkd2FyZjJfY3UKK0BAIC0zMzMsNiAr MzQwLDE5IEBAIHN0cnVjdCBkd2FyZjJfY3UKICAgICAgIERJRXMgZm9yIG5hbWVzcGFjZXMsIHdl IGRvbid0IG5lZWQgdG8gdHJ5IHRvIGluZmVyIHRoZW0KICAgICAgIGZyb20gbWFuZ2xlZCBuYW1l cy4gICovCiAgICB1bnNpZ25lZCBpbnQgaGFzX25hbWVzcGFjZV9pbmZvIDogMTsKQEAgLTM0NjQs NyArMzc3OSw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgfTsKICAKICAvKiBQ ZXJzaXN0ZW50IGRhdGEgaGVsZCBmb3IgYSBjb21waWxhdGlvbiB1bml0LCBldmVuIHdoZW4gbm90 Ci1AQCAtNDg3LDggKzUwOCw3IEBAIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvCitAQCAtNDg3LDgg KzUwNyw3IEBAIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvCiAgICAgIHVuc2lnbmVkIGludCBoYXNf Ynl0ZV9zaXplIDogMTsKICAKICAgICAgLyogVGhlIG5hbWUgb2YgdGhpcyBESUUuICBOb3JtYWxs eSB0aGUgdmFsdWUgb2YgRFdfQVRfbmFtZSwgYnV0CkBAIC0zNDc0LDMxICszNzg5LDE3IEBAIGlu ZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAgIGNoYXIgKm5hbWU7CiAgCiAgICAgIC8q IFRoZSBzY29wZSB0byBwcmVwZW5kIHRvIG91ciBjaGlsZHJlbi4gIFRoaXMgaXMgZ2VuZXJhbGx5 Ci1AQCAtNjc3LDYgKzY5NywxMSBAQCBzdHJ1Y3QgZmllbGRfaW5mbwotICAgICBpbnQgbmZuZmll bGRzOwotICAgfTsKLSAKLSsvKiBBIHZlY3RvciB1c2VkIGR1cmluZyBsaW5rYWdlIG5hbWUgZ2Vu ZXJhdGlvbi4gICovCi0rdHlwZWRlZiBzdHJ1Y3QgZGllX2luZm8gKmRpZV9pbmZvX3A7Ci0rREVG X1ZFQ19QIChkaWVfaW5mb19wKTsKLStzdGF0aWMgVkVDKGRpZV9pbmZvX3ApICpkaWVfbGlzdDsK LSsKLSAvKiBPbmUgaXRlbSBvbiB0aGUgcXVldWUgb2YgY29tcGlsYXRpb24gdW5pdHMgdG8gcmVh ZCBpbiBmdWxsIHN5bWJvbHMKLSAgICBmb3IuICAqLwotIHN0cnVjdCBkd2FyZjJfcXVldWVfaXRl bQotQEAgLTc4OCw3ICs4MTMsMTAgQEAgc3RhdGljIHZvaWQgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMg KHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICosCitAQCAtNzg4LDcgKzgwNyw4IEBAIHN0YXRpYyB2 b2lkIHNjYW5fcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqLAogIHN0 YXRpYyB2b2lkIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwK ICAJCQkJc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKIC1zdGF0aWMgaW50IHBkaV9uZWVkc19uYW1l c3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZyk7CiArc3RhdGljIGdkYl9ieXRlICpyZWFkX2NvbXBf dW5pdF9oZWFkIChzdHJ1Y3QgY29tcF91bml0X2hlYWQgKiwgZ2RiX2J5dGUgKiwKICsJCQkJICAg ICAgYmZkICopOwotKwotK3N0YXRpYyBpbnQgZGllX25lZWRzX25hbWVzcGFjZSAoc3RydWN0IGRp ZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCiAgc3RhdGljIHZvaWQgYWRkX3BhcnRp YWxfbmFtZXNwYWNlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJCQkgICBDT1JF X0FERFIgKmxvd3BjLCBDT1JFX0FERFIgKmhpZ2hwYywKLUBAIC04MTMsNiArODQxLDEwIEBAIHN0 YXRpYyB2b2lkIGR3YXJmMl9wc3ltdGFiX3RvX3N5bXRhYiAoc3RydWN0IHBhcnRpYWxfc3ltdGFi ICopOworQEAgLTgxMyw2ICs4MzMsMTAgQEAgc3RhdGljIHZvaWQgZHdhcmYyX3BzeW10YWJfdG9f c3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIHZvaWQgcHN5bXRh Yl90b19zeW10YWJfMSAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIApAQCAtMzUwOSwxOSAr MzgxMCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgZHdh cmYyX3JlYWRfYWJicmV2cyAoYmZkICphYmZkLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCiAg c3RhdGljIHZvaWQgZHdhcmYyX2ZyZWVfYWJicmV2X3RhYmxlICh2b2lkICopOwotQEAgLTk0MCw2 ICs5NzIsMTEgQEAgc3RhdGljIHN0cnVjdCB0eXBlICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKLSAKLSBzdGF0aWMgc3RydWN0IHR5cGUg KnJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwot IAotK3N0YXRpYyBjaGFyICpwaHlzbmFtZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICopOwotKwotK3N0YXRpYyB2b2lkIHBoeXNuYW1lX3ByZWZpeF8xIChz dHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgZGllX2luZm8gKiwKLSsJCQkgICAgICAgc3RydWN0IGR3 YXJmMl9jdSAqKTsKLSsKLSBzdGF0aWMgY2hhciAqZGV0ZXJtaW5lX3ByZWZpeCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7Ci0gCi0gc3RhdGljIGNoYXIgKnR5cGVu YW1lX2NvbmNhdCAoc3RydWN0IG9ic3RhY2sgKiwKLUBAIC05ODQsMTcgKzEwMjEsMjUgQEAgc3Rh dGljIHZvaWQgZHdhcmYyX2F0dGFjaF9mbl9maWVsZHNfdG9fdHlwZSAoc3RydWN0IGZpZWxkX2lu Zm8gKiwKK0BAIC05ODQsMTcgKzEwMDgsMjUgQEAgc3RhdGljIHZvaWQgZHdhcmYyX2F0dGFjaF9m bl9maWVsZHNfdG9fdHlwZSAoc3RydWN0IGZpZWxkX2luZm8gKiwKICAKICBzdGF0aWMgdm9pZCBw cm9jZXNzX3N0cnVjdHVyZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJf Y3UgKik7CiAgCkBAIC0zNTUwLDE5ICszODM5LDI3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkg MTAwNjQ0CiAgc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVzcGFjZV9uYW1lIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwKICAJCQkJICAgaW50ICppc19hbm9ueW1vdXMsIHN0cnVjdCBkd2FyZjJfY3UgKik7 CiAgCi1AQCAtMTAyOCw3ICsxMDczLDEwIEBAIHN0YXRpYyBnZGJfYnl0ZSAqcmVhZF9mdWxsX2Rp ZSAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKK0BAIC0xMDI4LDcgKzEw NjAsOCBAQCBzdGF0aWMgZ2RiX2J5dGUgKnJlYWRfZnVsbF9kaWUgKGNvbnN0IHN0cnVjdCBkaWVf cmVhZGVyX3NwZWNzICpyZWFkZXIsCiAgCiAgc3RhdGljIHZvaWQgcHJvY2Vzc19kaWUgKHN0cnVj dCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAogLXN0YXRpYyBjaGFyICpkd2Fy ZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsK LStzdGF0aWMgY2hhciAqZHdhcmYyX3BoeXNuYW1lIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0 IGR3YXJmMl9jdSAqKTsKLSsKICtzdGF0aWMgY2hhciAqZm9ydHJhbl9tb2R1bGVfbGlua2FnZV9u YW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICsJCQkJCSAgc3RydWN0IGR3YXJmMl9jdSAqY3Up OwogIAogIHN0YXRpYyBjaGFyICpkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNoYXIgKiwgc3Ry dWN0IGR3YXJmMl9jdSAqLAogIAkJCQkgICAgICAgc3RydWN0IG9ic3RhY2sgKik7Ci1AQCAtMTE0 NCw2ICsxMTkyLDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hlZF9jb21wX3VuaXRzICh2b2lkKTsK K0BAIC0xMTE0LDYgKzExNDcsOSBAQCBzdGF0aWMgaW50IGF0dHJfZm9ybV9pc19zZWN0aW9uX29m ZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKKyAKKyBzdGF0aWMgaW50IGF0dHJfZm9ybV9pc19j b25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKKyAKKytzdGF0aWMgc3RydWN0IGR3YXJmMl9s b2NsaXN0X2JhdG9uICpkd2FyZjJfYXR0cl90b19sb2NsaXN0X2JhdG9uCisrICAoc3RydWN0IGF0 dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOworKworIHN0YXRpYyB2b2lkIGR3 YXJmMl9zeW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKKyAJCQkJ CSBzdHJ1Y3Qgc3ltYm9sICpzeW0sCisgCQkJCQkgc3RydWN0IGR3YXJmMl9jdSAqY3UpOworQEAg LTExNDQsNiArMTE4MCw5IEBAIHN0YXRpYyB2b2lkIGFnZV9jYWNoZWRfY29tcF91bml0cyAodm9p ZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2NvbXBfdW5pdCAodm9pZCAqKTsK ICAKQEAgLTM1NzIsNyArMzg2OSw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAg c3RhdGljIHN0cnVjdCB0eXBlICpzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1 Y3QgdHlwZSAqLAogIAkJCQkgIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi1AQCAtMTE2MywyMiAr MTIxNCwzMSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2FyZjJf cGVyX2N1X2RhdGEgKik7CitAQCAtMTE2MywyMiArMTIwMiwzMSBAQCBzdGF0aWMgdm9pZCBkd2Fy ZjJfY2xlYXJfbWFya3MgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CiAgCiAgc3RhdGlj IHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSk7CiAgCkBAIC0zNjEzLDcgKzM5MTAsNyBAQCBpbmRleCA4NmJmZWNiLi5k ZGYyMTg5IDEwMDY0NAogIH0KICAKICAvKiBXaGVuIGxvYWRpbmcgc2VjdGlvbnMsIHdlIGNhbiBl aXRoZXIgbG9vayBmb3IgIi48bmFtZT4iLCBvciBmb3IKLUBAIC0xMjcxLDEwICsxMzMxLDEzIEBA IGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNlY3RwLCB2b2lk ICppZ25vcmVfcHRyKQorQEAgLTEyNzEsMTAgKzEzMTksMTMgQEAgZHdhcmYyX2xvY2F0ZV9zZWN0 aW9ucyAoYmZkICphYmZkLCBhc2VjdGlvbiAqc2VjdHAsIHZvaWQgKmlnbm9yZV9wdHIpCiAgfQog IAogIC8qIERlY29tcHJlc3MgYSBzZWN0aW9uIHRoYXQgd2FzIGNvbXByZXNzZWQgdXNpbmcgemxp Yi4gIFN0b3JlIHRoZQpAQCAtMzYyOSw3ICszOTI2LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4 OSAxMDA2NDQKICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RiX2J5dGUgKipvdXRidWYsIGJm ZF9zaXplX3R5cGUgKm91dHNpemUpCiAgewogICAgYmZkICphYmZkID0gb2JqZmlsZS0+b2JmZDsK LUBAIC0xMjkxLDYgKzEzNTQsNyBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKK0BAIC0xMjkxLDYgKzEzNDIsNyBAQCB6 bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9u ICpzZWN0cCwKICAgIHpfc3RyZWFtIHN0cm07CiAgICBpbnQgcmM7CiAgICBpbnQgaGVhZGVyX3Np emUgPSAxMjsKQEAgLTM2MzcsNyArMzkzNCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAw NjQ0CiAgCiAgICBpZiAoYmZkX3NlZWsgKGFiZmQsIHNlY3RwLT5maWxlcG9zLCBTRUVLX1NFVCkg IT0gMAogICAgICAgIHx8IGJmZF9icmVhZCAoY29tcHJlc3NlZF9idWZmZXIsIGNvbXByZXNzZWRf c2l6ZSwgYWJmZCkgIT0gY29tcHJlc3NlZF9zaXplKQotQEAgLTEzMjAsOCArMTM4NCwxMyBAQCB6 bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9u ICpzZWN0cCwKK0BAIC0xMzIwLDggKzEzNzIsMTMgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAgICBzdHJtLmF2YWls X2luID0gY29tcHJlc3NlZF9zaXplIC0gaGVhZGVyX3NpemU7CiAgICBzdHJtLm5leHRfaW4gPSAo Qnl0ZWYqKSBjb21wcmVzc2VkX2J1ZmZlciArIGhlYWRlcl9zaXplOwogICAgc3RybS5hdmFpbF9v dXQgPSB1bmNvbXByZXNzZWRfc2l6ZTsKQEAgLTM2NTMsNyArMzk1MCw3IEBAIGluZGV4IDg2YmZl Y2IuLmRkZjIxODkgMTAwNjQ0CiAgICByYyA9IGluZmxhdGVJbml0ICgmc3RybSk7CiAgICB3aGls ZSAoc3RybS5hdmFpbF9pbiA+IDApCiAgICAgIHsKLUBAIC0xMzQyLDI2ICsxNDExLDE3NiBAQCB6 bGliX2RlY29tcHJlc3Nfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9u ICpzZWN0cCwKK0BAIC0xMzQyLDI2ICsxMzk5LDE3NiBAQCB6bGliX2RlY29tcHJlc3Nfc2VjdGlv biAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGFzZWN0aW9uICpzZWN0cCwKICAgICAgZXJyb3Ig KF8oIkR3YXJmIEVycm9yOiBjb25jbHVkaW5nIERXQVJGIHVuY29tcHJlc3Npb24gaW4gJyVzJzog JWQiKSwKICAgICAgICAgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLCByYyk7CiAgCkBAIC0z ODM1LDcgKzQxMzIsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogIAogICAgaWYg KGluZm8tPmFzZWN0aW9uID09IE5VTEwgfHwgaW5mby0+c2l6ZSA9PSAwKQogICAgICByZXR1cm47 Ci1AQCAtMTM3NCw3ICsxNTkzLDcgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQorQEAgLTEzNzQs NyArMTU4MSw3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAgICAgICAvKiBVcG9uIGRlY29t cHJlc3Npb24sIHVwZGF0ZSB0aGUgYnVmZmVyIGFuZCBpdHMgc2l6ZS4gICovCiAgICAgICAgaWYg KHN0cm5jbXAgKGhlYWRlciwgIlpMSUIiLCBzaXplb2YgKGhlYWRlcikpID09IDApCiAgICAgICAg ICB7CkBAIC0zODQ0LDcgKzQxNDEsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAog IAkJCQkgICAmaW5mby0+c2l6ZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KLUBA IC0xMzk3LDcgKzE2MTYsNyBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTM5Nyw3ICsx NjA0LDcgQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0 cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQogIAogICAgICAgIGlmIChyZXRidWYgIT0g TUFQX0ZBSUxFRCkKICAJewpAQCAtMzg1Myw3ICs0MTUwLDcgQEAgaW5kZXggODZiZmVjYi4uZGRm MjE4OSAxMDA2NDQKICAJICBpbmZvLT5idWZmZXIgPSByZXRidWYgKyAoc2VjdHAtPmZpbGVwb3Mg JiAocGFnZXNpemUgLSAxKSkgOwogIAkgIHJldHVybjsKICAJfQotQEAgLTE0MDUsOCArMTYyNCwx NSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0 IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQwNSw4ICsxNjEyLDE1IEBAIGR3YXJm Ml9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3Nl Y3Rpb25faW5mbyAqaW5mbykKICAjZW5kaWYKICAKICAgIC8qIElmIHdlIGdldCBoZXJlLCB3ZSBh cmUgYSBub3JtYWwsIG5vdC1jb21wcmVzc2VkIHNlY3Rpb24uICAqLwpAQCAtMzg3MSw4ICs0MTY4 LDggQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAKICAgIC8qIFdoZW4gZGVidWdn aW5nIC5vIGZpbGVzLCB3ZSBtYXkgbmVlZCB0byBhcHBseSByZWxvY2F0aW9uczsgc2VlCiAgICAg ICBodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAwMi0wNC9tc2cwMDEzNi5o dG1sIC4KLUBAIC0xNDE1LDYgKzE2NDEsOCBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCi0gICBy ZXRidWYgPSBzeW1maWxlX3JlbG9jYXRlX2RlYnVnX3NlY3Rpb24gKGFiZmQsIHNlY3RwLCBidWYp OworQEAgLTE0MTUsNiArMTYyOSw4IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKKyAgIHJldGJ1 ZiA9IHN5bWZpbGVfcmVsb2NhdGVfZGVidWdfc2VjdGlvbiAob2JqZmlsZSwgc2VjdHAsIGJ1Zik7 CiAgICBpZiAocmV0YnVmICE9IE5VTEwpCiAgICAgIHsKICsgICAgICBpZiAob2xkKQpAQCAtMzg4 MCw3ICs0MTc3LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgICAgICBpbmZv LT5idWZmZXIgPSByZXRidWY7CiAgICAgICAgcmV0dXJuOwogICAgICB9Ci1AQCAtMTQyMyw2ICsx NjUxLDE5IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBz dHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKK0BAIC0xNDIzLDYgKzE2MzksMTkgQEAg ZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2Fy ZjJfc2VjdGlvbl9pbmZvICppbmZvKQogICAgICAgIHx8IGJmZF9icmVhZCAoYnVmLCBpbmZvLT5z aXplLCBhYmZkKSAhPSBpbmZvLT5zaXplKQogICAgICBlcnJvciAoXygiRHdhcmYgRXJyb3I6IENh bid0IHJlYWQgRFdBUkYgZGF0YSBmcm9tICclcyciKSwKICAJICAgYmZkX2dldF9maWxlbmFtZSAo YWJmZCkpOwpAQCAtMzkwMCw3ICs0MTk3LDYyIEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAw NjQ0CiAgfQogIAogIC8qIEZpbGwgaW4gU0VDVFAsIEJVRlAgYW5kIFNJWkVQIHdpdGggc2VjdGlv biBpbmZvLCBnaXZlbiBPQkpGSUxFIGFuZAotQEAgLTIzODksMTEgKzI2MzAsMTggQEAgcGFydGlh bF9kaWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTIw NzAsNiArMjI5OSwyOSBAQCBidWlsZF90eXBlX3BzeW10YWJzIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSkKKyAJCQkgIHByb2Nlc3NfdHlwZV9jb21wX3VuaXQsIG9iamZpbGUpOworIH0KKyAKKysv KiBBIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBjbGVhcnMgYW4gb2JqZmlsZSdzIHBzeW10YWJzLiAg VGhlcmUgYXJlCisrICAgdHdvIGNhc2VzIHRvIGNvbnNpZGVyLiAgSWYgd2UgYXJlIHJlYWRpbmcg c3ltYm9scyBkaXJlY3RseSwgdGhlbiBvbgorKyAgIGEgZmFpbHVyZSB0aGUgb2JqZmlsZSB3aWxs IGJlIGRlc3Ryb3llZC4gIEluIHRoaXMgY2FzZSwgY2xlYXJpbmcKKysgICB0aGUgcHN5bXRhYnMg aXMgZmluZSAtLSBhIGxpdHRsZSB3YXN0ZWQgdGltZSwgYnV0IG5vdGhpbmcgc2VyaW91cy4KKysg ICBJZiB3ZSBhcmUgcmVhZGluZyBzeW1ib2xzIGxhemlseSwgdGhlbiBpdCBpcyB0b28gbGF0ZSB0 byBkZXN0cm95CisrICAgdGhlIG9iamZpbGUuICBJbnN0ZWFkIHdlIGp1c3QgbWFrZSBpdCBsb29r IGxpa2UgdGhlIG9iamZpbGUgaGFzIG5vCisrICAgcHN5bXRhYnMuICAqLworKworK3N0YXRpYyB2 b2lkCisrZG9fY2xlYXJfcHN5bXRhYnMgKHZvaWQgKmFyZykKKyt7CisrICBzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSA9IGFyZzsKKysKKysgIG9iamZpbGUtPnBzeW10YWJzX2FkZHJtYXAgPSBOVUxM OworKyAgb2JqZmlsZS0+cHN5bXRhYnMgPSBOVUxMOworKyAgYmNhY2hlX3hmcmVlIChvYmpmaWxl LT5wc3ltYm9sX2NhY2hlKTsKKysgIG9iamZpbGUtPnBzeW1ib2xfY2FjaGUgPSBiY2FjaGVfeG1h bGxvYyAoKTsKKysgIHhmcmVlIChvYmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMubGlzdCk7CisrICBt ZW1zZXQgKCZvYmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMsIDAsIHNpemVvZiAob2JqZmlsZS0+Z2xv YmFsX3BzeW1ib2xzKSk7CisrICB4ZnJlZSAob2JqZmlsZS0+c3RhdGljX3BzeW1ib2xzLmxpc3Qp OworKyAgbWVtc2V0ICgmb2JqZmlsZS0+c3RhdGljX3BzeW1ib2xzLCAwLCBzaXplb2YgKG9iamZp bGUtPnN0YXRpY19wc3ltYm9scykpOworK30KKysKKyAvKiBCdWlsZCB0aGUgcGFydGlhbCBzeW1i b2wgdGFibGUgYnkgZG9pbmcgYSBxdWljayBwYXNzIHRocm91Z2ggdGhlCisgICAgLmRlYnVnX2lu Zm8gYW5kIC5kZWJ1Z19hYmJyZXYgc2VjdGlvbnMuICAqLworIAorQEAgLTIwODAsNyArMjMzMiw3 IEBAIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkK KyAgICAgIG1tYXAoKSAgb24gYXJjaGl0ZWN0dXJlcyB0aGF0IHN1cHBvcnQgaXQuIChGSVhNRSkg Ki8KKyAgIGJmZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7CisgICBnZGJfYnl0ZSAqaW5mb19wdHI7 CistICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKKysgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3Rv LCAqY2xlYXJfcHN5bXRhYnM7CisgCisgICBpbmZvX3B0ciA9IGR3YXJmMl9wZXJfb2JqZmlsZS0+ aW5mby5idWZmZXI7CisgCitAQCAtMjA5NCw2ICsyMzQ2LDcgQEAgZHdhcmYyX2J1aWxkX3BzeW10 YWJzX2hhcmQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorIAorICAgb2JqZmlsZS0+cHN5bXRh YnNfYWRkcm1hcCA9CisgICAgIGFkZHJtYXBfY3JlYXRlX211dGFibGUgKCZvYmpmaWxlLT5vYmpm aWxlX29ic3RhY2spOworKyAgY2xlYXJfcHN5bXRhYnMgPSBtYWtlX2NsZWFudXAgKGRvX2NsZWFy X3BzeW10YWJzLCBvYmpmaWxlKTsKKyAKKyAgIC8qIFNpbmNlIHRoZSBvYmplY3RzIHdlJ3JlIGV4 dHJhY3RpbmcgZnJvbSAuZGVidWdfaW5mbyB2YXJ5IGluCisgICAgICBsZW5ndGgsIG9ubHkgdGhl IGluZGl2aWR1YWwgZnVuY3Rpb25zIHRvIGV4dHJhY3QgdGhlbSAobGlrZQorQEAgLTIxMjMsNiAr MjM3Niw3IEBAIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSkKKyAJCQkJCSAgICBkd2FyZjJfcGVyX29iamZpbGUtPmluZm8uc2l6ZSk7CisgICAgIH0K KyAKKysgIGRpc2NhcmRfY2xlYW51cHMgKGNsZWFyX3BzeW10YWJzKTsKKyAgIG9iamZpbGUtPnBz eW10YWJzX2FkZHJtYXAgPSBhZGRybWFwX2NyZWF0ZV9maXhlZCAob2JqZmlsZS0+cHN5bXRhYnNf YWRkcm1hcCwKKyAJCQkJCQkgICAgJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjayk7CisgCitAQCAt MjM4OSwxMSArMjY0MywxOCBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0 aWFsX2RpZV9pbmZvICpwZGksCiAgICAgICAgfHwgcGFyZW50LT50YWcgPT0gRFdfVEFHX3VuaW9u X3R5cGUKICAgICAgICB8fCBwYXJlbnQtPnRhZyA9PSBEV19UQUdfZW51bWVyYXRpb25fdHlwZSkK ICAgICAgewpAQCAtMzkyMSw3ICs0MjczLDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2 NDQKICAgICAgfQogICAgZWxzZSBpZiAocGFyZW50LT50YWcgPT0gRFdfVEFHX2VudW1lcmF0b3Ip CiAgICAgIC8qIEVudW1lcmF0b3JzIHNob3VsZCBub3QgZ2V0IHRoZSBuYW1lIG9mIHRoZSBlbnVt ZXJhdGlvbiBhcyBhIHByZWZpeC4gICovCi1AQCAtMjQwNSw3ICsyNjUzLDcgQEAgcGFydGlhbF9k aWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTI0MDUs NyArMjY2Niw3IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAoc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnBkaSwKICAJIGlnbm9yaW5nIHRoZW0uICAqLwogICAgICAgIGNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywKICAJCSBfKCJ1bmhhbmRsZWQgY29udGFpbmluZyBESUUgdGFnICVk IGZvciBESUUgYXQgJWQiKSwKQEAgLTM5MzAsNyArNDI4Miw3IEBAIGluZGV4IDg2YmZlY2IuLmRk ZjIxODkgMTAwNjQ0CiAgICAgICAgcGFyZW50LT5zY29wZSA9IGdyYW5kcGFyZW50X3Njb3BlOwog ICAgICB9CiAgCi1AQCAtMjQyMCwxMiArMjY2OCwyMiBAQCBwYXJ0aWFsX2RpZV9mdWxsX25hbWUg KHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCitAQCAtMjQyMCwxMiArMjY4MSwyMiBAQCBw YXJ0aWFsX2RpZV9mdWxsX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCiAgCQkg ICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgY2hhciAqcGFyZW50X3Njb3BlOwpA QCAtMzk1Nyw3ICs0MzA5LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9CiAg CiAgc3RhdGljIHZvaWQKLUBAIC0yNDQxLDEyICsyNjk5LDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9s IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC0yNDQxLDEyICsyNzEyLDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0gQU5P RkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkp OwogIApAQCAtMzk3Myw3ICs0MzI1LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQK ICAKICAgIGlmIChhY3R1YWxfbmFtZSA9PSBOVUxMKQogICAgICBhY3R1YWxfbmFtZSA9IHBkaS0+ bmFtZTsKLUBAIC0yNTQzLDYgKzI3OTgsMTMgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3Qg cGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0yNTQzLDYg KzI4MTEsMTMgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAq cGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJCQkgICAmb2JqZmlsZS0+Z2xvYmFsX3BzeW1i b2xzLAogIAkJCSAgIDAsIChDT1JFX0FERFIpIDAsIGN1LT5sYW5ndWFnZSwgb2JqZmlsZSk7CiAg ICAgICAgYnJlYWs7CkBAIC0zOTg3LDcgKzQzMzksNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5 IDEwMDY0NAogICAgICBjYXNlIERXX1RBR19jbGFzc190eXBlOgogICAgICBjYXNlIERXX1RBR19p bnRlcmZhY2VfdHlwZToKICAgICAgY2FzZSBEV19UQUdfc3RydWN0dXJlX3R5cGU6Ci1AQCAtMjU4 NiwzNCArMjg0OCwxNyBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1ODYsNDkgKzI4NjEsMTAgQEAg YWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtNDAxNCw1MCArNDM2 NiwzMCBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogLS8qIERldGVybWluZSB3aGV0 aGVyIGEgZGllIG9mIHR5cGUgVEFHIGxpdmluZyBpbiBhIEMrKyBjbGFzcyBvcgogLSAgIG5hbWVz cGFjZSBuZWVkcyB0byBoYXZlIHRoZSBuYW1lIG9mIHRoZSBzY29wZSBwcmVwZW5kZWQgdG8gdGhl CiAtICAgbmFtZSBsaXN0ZWQgaW4gdGhlIGRpZS4gICovCi0rLyogRGV0ZXJtaW5lIHdoZXRoZXIg RElFIG5lZWRzIHRvIGhhdmUgdGhlIG5hbWUgb2YgdGhlIHNjb3BlIHByZXBlbmRlZAotKyAgIHRv IHRoZSBuYW1lIGxpc3RlZCBpbiB0aGUgZGllLiAgKi8KLSAKLSBzdGF0aWMgaW50CistCistc3Rh dGljIGludAogLXBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKLStkaWVf bmVlZHNfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCi0geworLXsKIC0gIHN3aXRjaCAodGFnKQotKyAgc3dpdGNoIChkaWUtPnRhZykKLSAgICAg ewotICAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6Ci0gICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6 Ci1AQCAtMjYyMyw3ICsyODY4LDMwIEBAIHBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZf dGFnIHRhZykKLSAgICAgY2FzZSBEV19UQUdfdW5pb25fdHlwZToKLSAgICAgY2FzZSBEV19UQUdf ZW51bWVyYXRpb25fdHlwZToKLSAgICAgY2FzZSBEV19UQUdfZW51bWVyYXRvcjoKLSsgICAgY2Fz ZSBEV19UQUdfc3VicHJvZ3JhbToKLSsgICAgY2FzZSBEV19UQUdfbWVtYmVyOgotICAgICAgIHJl dHVybiAxOwotKwotKyAgICBjYXNlIERXX1RBR192YXJpYWJsZToKLSsgICAgICB7Ci0rCXN0cnVj dCBhdHRyaWJ1dGUgKmF0dHI7Ci0rCWF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9zcGVj aWZpY2F0aW9uLCBjdSk7Ci0rCWlmIChhdHRyKQotKwkgIHJldHVybiAxOwotKwlhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKLSsJaWYgKGF0dHIgPT0gTlVMTCAm JiBkaWUtPnBhcmVudC0+dGFnICE9IERXX1RBR19uYW1lc3BhY2UpCi0rCSAgcmV0dXJuIDA7Ci0r CS8qIEEgdmFyaWFibGUgaW4gYSBsZXhpY2FsIGJsb2NrIG9mIHNvbWUga2luZCBkb2VzIG5vdCBu ZWVkIGEKLSsJICAgbmFtZXNwYWNlLCBldmVuIHRob3VnaCBpbiBDKysgc3VjaCB2YXJpYWJsZXMg bWF5IGJlCi0rCSAgIGV4dGVybmFsIGFuZCBoYXZlIGEgbWFuZ2xlZCBuYW1lLiAgKi8KLSsJaWYg KGRpZS0+cGFyZW50LT50YWcgPT0gIERXX1RBR19sZXhpY2FsX2Jsb2NrCi0rCSAgICB8fCBkaWUt PnBhcmVudC0+dGFnID09ICBEV19UQUdfdHJ5X2Jsb2NrCi0rCSAgICB8fCBkaWUtPnBhcmVudC0+ dGFnID09ICBEV19UQUdfY2F0Y2hfYmxvY2spCi0rCSAgcmV0dXJuIDA7Ci0rCXJldHVybiAxOwot KyAgICAgIH0KLSsgICAgICBicmVhazsKLSsKLSAgICAgZGVmYXVsdDoKLSAgICAgICByZXR1cm4g MDsKLSAgICAgfQotQEAgLTI2NTYsMTIgKzI5MjQsMTIgQEAgc3RhdGljIHZvaWQKKy0gICAgewor LSAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6CistICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6Cist ICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CistICAgIGNhc2UgRFdfVEFHX2ludGVyZmFjZV90 eXBlOgorLSAgICBjYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToKKy0gICAgY2FzZSBEV19UQUdf dW5pb25fdHlwZToKKy0gICAgY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKKy0gICAgY2Fz ZSBEV19UQUdfZW51bWVyYXRvcjoKKy0gICAgICByZXR1cm4gMTsKKy0gICAgZGVmYXVsdDoKKy0g ICAgICByZXR1cm4gMDsKKy0gICAgfQorLX0KKy0KKyAvKiBSZWFkIGEgcGFydGlhbCBkaWUgY29y cmVzcG9uZGluZyB0byBhIG5hbWVzcGFjZTsgYWxzbywgYWRkIGEgc3ltYm9sCisgICAgY29ycmVz cG9uZGluZyB0byB0aGF0IG5hbWVzcGFjZSB0byB0aGUgc3ltYm9sIHRhYmxlLiAgTkFNRVNQQUNF IGlzCisgICAgdGhlIG5hbWUgb2YgdGhlIGVuY2xvc2luZyBuYW1lc3BhY2UuICAqLworQEAgLTI2 NTYsMTIgKzI4OTIsMTIgQEAgc3RhdGljIHZvaWQKICBhZGRfcGFydGlhbF9tb2R1bGUgKHN0cnVj dCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIENPUkVfQUREUiAqbG93cGMsCiAgCQkgICAgQ09SRV9B RERSICpoaWdocGMsIGludCBuZWVkX3BjLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CkBAIC00 MDc0LDcgKzQ0MDYsMTUgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9CiAgCiAg LyogUmVhZCBhIHBhcnRpYWwgZGllIGNvcnJlc3BvbmRpbmcgdG8gYSBzdWJwcm9ncmFtIGFuZCBj cmVhdGUgYSBwYXJ0aWFsCi1AQCAtMjc1MiwyNyArMzAyMCw2IEBAIGd1ZXNzX3N0cnVjdHVyZV9u YW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKK0BAIC0yNzM5LDcgKzI5 NzUsNiBAQCBndWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnN0 cnVjdF9wZGksCisgCSBjb3VsZCBmaXggdGhpcyBieSBvbmx5IHVzaW5nIHRoZSBkZW1hbmdsZWQg bmFtZSB0byBnZXQgdGhlCisgCSBwcmVmaXggKGJ1dCBzZWUgY29tbWVudCBpbiByZWFkX3N0cnVj dHVyZV90eXBlKS4gICovCisgCistICAgICAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKmNoaWxk X3BkaSA9IHN0cnVjdF9wZGktPmRpZV9jaGlsZDsKKyAgICAgICBzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqcmVhbF9wZGk7CisgCisgICAgICAgLyogSWYgdGhpcyBESUUgKHRoaXMgRElFJ3Mgc3Bl Y2lmaWNhdGlvbiwgaWYgYW55KSBoYXMgYSBwYXJlbnQsIHRoZW4KK0BAIC0yNzUyLDI3ICsyOTg3 LDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzdHJ1 Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3BhcmVudCAhPSBOVUxMKQogIAly ZXR1cm47CkBAIC00MDkxLDcgKzQ0MzEsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0 NAogLQkJICBzdHJ1Y3RfcGRpLT5uYW1lCiAtCQkgICAgPSBvYnNhdmVzdHJpbmcgKGFjdHVhbF9j bGFzc19uYW1lLAogLQkJCQkgICAgc3RybGVuIChhY3R1YWxfY2xhc3NfbmFtZSksCi0tCQkJCSAg ICAmY3UtPmNvbXBfdW5pdF9vYnN0YWNrKTsKKy0JCQkJICAgICZjdS0+b2JqZmlsZS0+b2JqZmls ZV9vYnN0YWNrKTsKIC0JCSAgeGZyZWUgKGFjdHVhbF9jbGFzc19uYW1lKTsKIC0JCX0KIC0JICAg ICAgYnJlYWs7CkBAIC00MTAyLDcgKzQ0NDIsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEw MDY0NAogICAgICB9CiAgfQogIAotQEAgLTMzMjUsNiArMzU3MiwxNCBAQCBwcm9jZXNzX2RpZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzMjUsNiAr MzUzOSwxNCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogICAgICBjYXNlIERXX1RBR19pbXBvcnRlZF9kZWNsYXJhdGlvbjoKICAgICAg Y2FzZSBEV19UQUdfaW1wb3J0ZWRfbW9kdWxlOgogICAgICAgIHByb2Nlc3NpbmdfaGFzX25hbWVz cGFjZV9pbmZvID0gMTsKQEAgLTQxMTcsMzEgKzQ0NTcsODEgQEAgaW5kZXggODZiZmVjYi4uZGRm MjE4OSAxMDA2NDQKICAgICAgICBpZiAoZGllLT5jaGlsZCAhPSBOVUxMICYmIChkaWUtPnRhZyA9 PSBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24KICAJCQkJIHx8IGN1LT5sYW5ndWFnZSAhPSBs YW5ndWFnZV9mb3J0cmFuKSkKICAJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJU YWcgJyVzJyBoYXMgdW5leHBlY3RlZCBjaGlsZHJlbiIpLAotQEAgLTMzNDAsNDEgKzM1OTUsNzEg QEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKLSAvKiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIERJRSwgYmFzZWQgb24g aXRzIERXX0FUX25hbWUuCi0gICAgSWYgc2NvcGUgcXVhbGlmaWVycyBhcmUgYXBwcm9wcmlhdGUg dGhleSB3aWxsIGJlIGFkZGVkLiAgVGhlIHJlc3VsdAotICAgIHdpbGwgYmUgYWxsb2NhdGVkIG9u IHRoZSBvYmpmaWxlX29ic3RhY2ssIG9yIE5VTEwgaWYgdGhlIERJRSBkb2VzCi0tICAgbm90IGhh dmUgYSBuYW1lLiAgKi8KLSsgICBub3QgaGF2ZSBhIG5hbWUuCi0rCi0rICAgVGhlIG91dHB1dCBz dHJpbmcgd2lsbCBiZSBjYW5vbmljYWxpemVkIChpZiBDKysvSmF2YSkuICovCi0gCi0gc3RhdGlj IGNvbnN0IGNoYXIgKgotIGR3YXJmMl9mdWxsX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSB7Ci0tICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwotLSAg Y2hhciAqcHJlZml4LCAqbmFtZTsKLS0gIHN0cnVjdCB1aV9maWxlICpidWYgPSBOVUxMOwotKyAg Y2hhciAqbmFtZTsKLSAKLSAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7Ci0tICBpZiAo IW5hbWUpCi0tICAgIHJldHVybiBOVUxMOworQEAgLTMzMzcsNDIgKzM1NTksMTgzIEBAIHByb2Nl c3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICAg IH0KKyB9CiAgCi0gICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdlIGtub3cgaG93 IHRvIHF1YWxpZnkgbmFtZXMgaW4uICAqLwotLSAgaWYgKGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFn ZV9jcGx1cwotLSAgICAgICYmIGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9qYXZhKQotLSAgICBy ZXR1cm4gbmFtZTsKKysvKiBBIGhlbHBlciBmdW5jdGlvbiBmb3IgZHdhcmYyX2NvbXB1dGVfbmFt ZSB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgRElFCisrICAgbmVlZHMgdG8gaGF2ZSB0aGUgbmFt ZSBvZiB0aGUgc2NvcGUgcHJlcGVuZGVkIHRvIHRoZSBuYW1lIGxpc3RlZCBpbiB0aGUKKysgICBk aWUuICAqLworKworK3N0YXRpYyBpbnQKKytkaWVfbmVlZHNfbmFtZXNwYWNlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisreworKyAgc3dpdGNoIChkaWUtPnRh ZykKKysgICAgeworKyAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6CisrICAgIGNhc2UgRFdfVEFH X3R5cGVkZWY6CisrICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CisrICAgIGNhc2UgRFdfVEFH X2ludGVyZmFjZV90eXBlOgorKyAgICBjYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToKKysgICAg Y2FzZSBEV19UQUdfdW5pb25fdHlwZToKKysgICAgY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlw ZToKKysgICAgY2FzZSBEV19UQUdfZW51bWVyYXRvcjoKKysgICAgY2FzZSBEV19UQUdfc3VicHJv Z3JhbToKKysgICAgY2FzZSBEV19UQUdfbWVtYmVyOgorKyAgICAgIHJldHVybiAxOworKworKyAg ICBjYXNlIERXX1RBR192YXJpYWJsZToKKysgICAgICB7CisrCXN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHI7CisrCisrCS8qIFdlIG9ubHkgbmVlZCB0byBwcmVmaXggImdsb2JhbGx5IiB2aXNpYmxlIHZh cmlhYmxlcy4gIFRoZXNlIGluY2x1ZGUKKysJICAgYW55IHZhcmlhYmxlIG1hcmtlZCB3aXRoIERX X0FUX2V4dGVybmFsIG9yIGFueSB2YXJpYWJsZSB0aGF0CisrCSAgIGxpdmVzIGluIGEgbmFtZXNw YWNlLiAgW1ZhcmlhYmxlcyBpbiBhbm9ueW1vdXMgbmFtZXNwYWNlcworKwkgICByZXF1aXJlIHBy ZWZpeGluZywgYnV0IHRoZXkgYXJlIG5vdCBEV19BVF9leHRlcm5hbC5dICAqLworKworKwlpZiAo ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfc3BlY2lmaWNhdGlvbiwgY3UpKQorKwkgIHsKKysJICAg IHN0cnVjdCBkd2FyZjJfY3UgKnNwZWNfY3UgPSBjdTsKKysJICAgIHJldHVybiBkaWVfbmVlZHNf bmFtZXNwYWNlIChkaWVfc3BlY2lmaWNhdGlvbiAoZGllLCAmc3BlY19jdSksCisrCQkJCQlzcGVj X2N1KTsKKysJICB9CisrCisrCS8qIEEgdmFyaWFibGUgaW4gYSBsZXhpY2FsIGJsb2NrIG9mIHNv bWUga2luZCBkb2VzIG5vdCBuZWVkCisrCSAgIGEgbmFtZXNwYWNlLCBldmVuIHRob3VnaCBpbiBD Kysgc3VjaCB2YXJpYWJsZXMgbWF5IGJlCisrCSAgIGV4dGVybmFsIGFuZCBoYXZlIGEgbWFuZ2xl ZCBuYW1lLiAgKi8KKysJaWYgKGRpZS0+cGFyZW50LT50YWcgPT0gRFdfVEFHX2xleGljYWxfYmxv Y2sKKysJICAgIHx8IGRpZS0+cGFyZW50LT50YWcgPT0gRFdfVEFHX3RyeV9ibG9jaworKwkgICAg fHwgZGllLT5wYXJlbnQtPnRhZyA9PSBEV19UQUdfY2F0Y2hfYmxvY2spCisrCSAgcmV0dXJuIDA7 CisrCisrCWF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9leHRlcm5hbCwgY3UpOworKwlp ZiAoYXR0ciB8fCBkaWUtPnBhcmVudC0+dGFnID09IERXX1RBR19uYW1lc3BhY2UpCisrCSAgcmV0 dXJuIDE7CisrCisrCXJldHVybiAwOworKyAgICAgIH0KKysKKysgICAgZGVmYXVsdDoKKysgICAg ICByZXR1cm4gMDsKKysgICAgfQorK30KKysKKysvKiBDb21wdXRlIHRoZSBmdWxseSBxdWFsaWZp ZWQgbmFtZSBvZiBESUUgaW4gQ1UuICBJZiBQSFlTTkFNRSBpcyBub256ZXJvLAorKyAgIGNvbXB1 dGUgdGhlIHBoeXNuYW1lIGZvciB0aGUgb2JqZWN0LCB3aGljaCBpbmNsdWRlIGEgbWV0aG9kJ3MK KysgICBmb3JtYWwgcGFyYW1ldGVycyAoQysrL0phdmEpIGFuZCByZXR1cm4gdHlwZSAoSmF2YSku CisrCisrICAgVGhlIHJlc3VsdCBpcyBhbGxvY2F0ZWQgb24gdGhlIG9iamZpbGVfb2JzdGFjayBh bmQgY2Fub25pY2FsaXplZC4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKgorK2R3YXJmMl9j b21wdXRlX25hbWUgKGNoYXIgKm5hbWUsIHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKKysJCSAgICAgaW50IHBoeXNuYW1lKQorK3sKKysgIGlmIChuYW1lID09IE5V TEwpCisrICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCisrICAvKiBUaGVzZSBh cmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdlIGtub3cgaG93IHRvIHF1YWxpZnkgbmFtZXMgaW4uICAq LwogKyAgaWYgKG5hbWUgIT0gTlVMTAogKyAgICAgICYmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3Vh Z2VfY3BsdXMgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpKQogKyAgICB7CkBAIC00 MTUwLDE3ICs0NTQwLDkgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICsJICBsb25n IGxlbmd0aDsKICsJICBjaGFyICpwcmVmaXg7CiArCSAgc3RydWN0IHVpX2ZpbGUgKmJ1ZjsKLSAK LS0gIC8qIElmIG5vIHByZWZpeCBpcyBuZWNlc3NhcnkgZm9yIHRoaXMgdHlwZSBvZiBESUUsIHJl dHVybiB0aGUKLS0gICAgIHVucXVhbGlmaWVkIG5hbWUuICBUaGUgb3RoZXIgdGhyZWUgdGFncyBs aXN0ZWQgY291bGQgYmUgaGFuZGxlZAotLSAgICAgaW4gcGRpX25lZWRzX25hbWVzcGFjZSwgYnV0 IHRoYXQgcmVxdWlyZXMgYnJvYWRlciBjaGFuZ2VzLiAgKi8KLS0gIGlmICghcGRpX25lZWRzX25h bWVzcGFjZSAoZGllLT50YWcpCi0tICAgICAgJiYgZGllLT50YWcgIT0gRFdfVEFHX3N1YnByb2dy YW0KLS0gICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKLS0gICAgICAmJiBkaWUt PnRhZyAhPSBEV19UQUdfbWVtYmVyKQotLSAgICByZXR1cm4gbmFtZTsKLSsJICBidWYgPSBtZW1f ZmlsZW9wZW4gKCk7CisrCiArCSAgcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSk7 CisrCSAgYnVmID0gbWVtX2ZpbGVvcGVuICgpOwogKwkgIGlmICgqcHJlZml4ICE9ICdcMCcpCiAr CSAgICB7CiArCSAgICAgIGNoYXIgKnByZWZpeGVkX25hbWUgPSB0eXBlbmFtZV9jb25jYXQgKE5V TEwsIHByZWZpeCwgbmFtZSwgY3UpOwpAQCAtNDE2OCwxMiArNDU1MCwzNiBAQCBpbmRleCA4NmJm ZWNiLi5kZGYyMTg5IDEwMDY0NAogKwkgICAgICB4ZnJlZSAocHJlZml4ZWRfbmFtZSk7CiArCSAg ICB9CiArCSAgZWxzZQotKwkgICAgZnB1dHNfdW5maWx0ZXJlZCAobmFtZSwgYnVmKTsKLSAKLS0g IHByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOwotLSAgaWYgKCpwcmVmaXggIT0g J1wwJykKLS0gICAgbmFtZSA9IHR5cGVuYW1lX2NvbmNhdCAoJmN1LT5vYmpmaWxlLT5vYmpmaWxl X29ic3RhY2ssIHByZWZpeCwKLS0JCQkgICAgbmFtZSwgY3UpOworKwkgICAgZnB1dHNfdW5maWx0 ZXJlZCAobmFtZSA/IG5hbWUgOiAiIiwgYnVmKTsKKysKKysJICAvKiBGb3IgSmF2YSBhbmQgQysr IG1ldGhvZHMsIGFwcGVuZCBmb3JtYWwgcGFyYW1ldGVyIHR5cGUKKysJICAgICBpbmZvcm1hdGlv biwgaWYgUEhZU05BTUUuICAqLworKworKwkgIGlmIChwaHlzbmFtZSAmJiBkaWUtPnRhZyA9PSBE V19UQUdfc3VicHJvZ3JhbQorKwkgICAgICAmJiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2Nw bHVzCisrCQkgIHx8IGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhKSkKKysJICAgIHsKKysJ ICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSByZWFkX3R5cGVfZGllIChkaWUsIGN1KTsKKysKKysJ ICAgICAgY190eXBlX3ByaW50X2FyZ3MgKHR5cGUsIGJ1ZiwgMCwgY3UtPmxhbmd1YWdlKTsKKysK KysJICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhKQorKwkJeworKwkJICAv KiBGb3IgamF2YSwgd2UgbXVzdCBhcHBlbmQgdGhlIHJldHVybiB0eXBlIHRvIG1ldGhvZAorKwkJ ICAgICBuYW1lcy4gKi8KKysJCSAgaWYgKGRpZS0+dGFnID09IERXX1RBR19zdWJwcm9ncmFtKQor KwkJICAgIGphdmFfcHJpbnRfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksICIiLCBidWYs CisrCQkJCSAgICAgMCwgMCk7CisrCQl9CisrCSAgICAgIGVsc2UgaWYgKGN1LT5sYW5ndWFnZSA9 PSBsYW5ndWFnZV9jcGx1cykKKysJCXsKKysJCSAgaWYgKFRZUEVfTkZJRUxEUyAodHlwZSkgPiAw CisrCQkgICAgICAmJiBUWVBFX0ZJRUxEX0FSVElGSUNJQUwgKHR5cGUsIDApCisrCQkgICAgICAm JiBUWVBFX0NPTlNUIChUWVBFX1RBUkdFVF9UWVBFIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDAp KSkpCisrCQkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIiBjb25zdCIsIGJ1Zik7CisrCQl9CisrCSAg ICB9CisrCiArCSAgbmFtZSA9IHVpX2ZpbGVfb2JzYXZlc3RyaW5nIChidWYsICZjdS0+b2JqZmls ZS0+b2JqZmlsZV9vYnN0YWNrLAogKwkJCQkgICAgICAgJmxlbmd0aCk7CiArCSAgdWlfZmlsZV9k ZWxldGUgKGJ1Zik7CkBAIC00MTg4LDEwICs0NTk0LDY0IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIx ODkgMTAwNjQ0CiArCSAgICB9CiArCX0KICsgICAgfQorKworKyAgcmV0dXJuIG5hbWU7CisrfQor KworIC8qIFJldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgRElFLCBiYXNlZCBvbiBp dHMgRFdfQVRfbmFtZS4KKyAgICBJZiBzY29wZSBxdWFsaWZpZXJzIGFyZSBhcHByb3ByaWF0ZSB0 aGV5IHdpbGwgYmUgYWRkZWQuICBUaGUgcmVzdWx0CisgICAgd2lsbCBiZSBhbGxvY2F0ZWQgb24g dGhlIG9iamZpbGVfb2JzdGFjaywgb3IgTlVMTCBpZiB0aGUgRElFIGRvZXMKKy0gICBub3QgaGF2 ZSBhIG5hbWUuICAqLworKyAgIG5vdCBoYXZlIGEgbmFtZS4gIE5BTUUgbWF5IGVpdGhlciBiZSBm cm9tIGEgcHJldmlvdXMgY2FsbCB0bworKyAgIGR3YXJmMl9uYW1lIG9yIE5VTEwuCisrCisrICAg VGhlIG91dHB1dCBzdHJpbmcgd2lsbCBiZSBjYW5vbmljYWxpemVkIChpZiBDKysvSmF2YSkuICov CiAgCi0gICByZXR1cm4gbmFtZTsKLSB9Cisgc3RhdGljIGNvbnN0IGNoYXIgKgorLWR3YXJmMl9m dWxsX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKytk d2FyZjJfZnVsbF9uYW1lIChjaGFyICpuYW1lLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCisgeworLSAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKy0gIGNoYXIg KnByZWZpeCwgKm5hbWU7CistICBzdHJ1Y3QgdWlfZmlsZSAqYnVmID0gTlVMTDsKKysgIHJldHVy biBkd2FyZjJfY29tcHV0ZV9uYW1lIChuYW1lLCBkaWUsIGN1LCAwKTsKKyt9CisgCistICBuYW1l ID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOworLSAgaWYgKCFuYW1lKQorLSAgICByZXR1cm4gTlVM TDsKKysvKiBDb25zdHJ1Y3QgYSBwaHlzbmFtZSBmb3IgdGhlIGdpdmVuIERJRSBpbiBDVS4gIE5B TUUgbWF5IGVpdGhlciBiZQorKyAgIGZyb20gYSBwcmV2aW91cyBjYWxsIHRvIGR3YXJmMl9uYW1l IG9yIE5VTEwuICBUaGUgcmVzdWx0IHdpbGwgYmUKKysgICBhbGxvY2F0ZWQgb24gdGVoIG9iamZp bGVfb2Jqc3RhY2sgb3IgTlVMTCBpZiB0aGUgRElFIGRvZXMgbm90IGhhdmUgYQorKyAgIG5hbWUu CisgCistICAvKiBUaGVzZSBhcmUgdGhlIG9ubHkgbGFuZ3VhZ2VzIHdlIGtub3cgaG93IHRvIHF1 YWxpZnkgbmFtZXMgaW4uICAqLworLSAgaWYgKGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9jcGx1 cworLSAgICAgICYmIGN1LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9qYXZhKQorLSAgICByZXR1cm4g bmFtZTsKKy0KKy0gIC8qIElmIG5vIHByZWZpeCBpcyBuZWNlc3NhcnkgZm9yIHRoaXMgdHlwZSBv ZiBESUUsIHJldHVybiB0aGUKKy0gICAgIHVucXVhbGlmaWVkIG5hbWUuICBUaGUgb3RoZXIgdGhy ZWUgdGFncyBsaXN0ZWQgY291bGQgYmUgaGFuZGxlZAorLSAgICAgaW4gcGRpX25lZWRzX25hbWVz cGFjZSwgYnV0IHRoYXQgcmVxdWlyZXMgYnJvYWRlciBjaGFuZ2VzLiAgKi8KKy0gIGlmICghcGRp X25lZWRzX25hbWVzcGFjZSAoZGllLT50YWcpCistICAgICAgJiYgZGllLT50YWcgIT0gRFdfVEFH X3N1YnByb2dyYW0KKy0gICAgICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKKy0gICAg ICAmJiBkaWUtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQorLSAgICByZXR1cm4gbmFtZTsKKy0KKy0g IHByZWZpeCA9IGRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpOworLSAgaWYgKCpwcmVmaXggIT0g J1wwJykKKy0gICAgbmFtZSA9IHR5cGVuYW1lX2NvbmNhdCAoJmN1LT5vYmpmaWxlLT5vYmpmaWxl X29ic3RhY2ssIHByZWZpeCwKKy0JCQkgICAgbmFtZSwgY3UpOworKyAgIFRoZSBvdXRwdXQgc3Ry aW5nIHdpbGwgYmUgY2Fub25pY2FsaXplZCAoaWYgQysrL0phdmEpLiAgKi8KICAKKy0gIHJldHVy biBuYW1lOworK3N0YXRpYyBjb25zdCBjaGFyICoKKytkd2FyZjJfcGh5c25hbWUgKGNoYXIgKm5h bWUsIHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyt7CisrICBy ZXR1cm4gZHdhcmYyX2NvbXB1dGVfbmFtZSAobmFtZSwgZGllLCBjdSwgMSk7CisrfQorKwogKy8q IFJlYWQgdGhlIGdpdmVuIERJRSdzIERXX0FUX2RlY2xfbGluZSBudW1iZXIuICBSZXR1cm4gLTEg aWYgaW4gY2FzZSBvZiBhbgogKyAgIGVycm9yLiAgKi8KICsKQEAgLTQyMDUsMTUgKzQ2NjUsMTUg QEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICsgICAgcmV0dXJuIERXX1VOU05EIChs aW5lX2F0dHIpOwogKwogKyAgcmV0dXJuIC0xOwotK30KLSsKLSAvKiBSZWFkIHRoZSBpbXBvcnQg c3RhdGVtZW50IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gZGllIGFuZCByZWNvcmQgaXQuICAqLwor IH0KICAKLSBzdGF0aWMgdm9pZAotQEAgLTMzODUsOSArMzY3MCwxNSBAQCByZWFkX2ltcG9ydF9z dGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAv KiBSZWFkIHRoZSBpbXBvcnQgc3RhdGVtZW50IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gZGllIGFu ZCByZWNvcmQgaXQuICAqLworQEAgLTMzODUsMTEgKzM3NDgsMTUgQEAgcmVhZF9pbXBvcnRfc3Rh dGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBz dHJ1Y3QgZHdhcmYyX2N1ICppbXBvcnRlZF9jdTsKICAgIGNvbnN0IGNoYXIgKmltcG9ydGVkX25h bWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lX3ByZWZpeDsKKy0gIGNoYXIgKmltcG9y dF9hbGlhczsKKy0KIC0gIGNvbnN0IGNoYXIgKmltcG9ydF9wcmVmaXg7CiAgICBjaGFyICpjYW5v bmljYWxfbmFtZTsKIC0KQEAgLTQyMjgsMTggKzQ2ODgsMTQgQEAgaW5kZXggODZiZmVjYi4uZGRm MjE4OSAxMDA2NDQKICAgIGltcG9ydF9hdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaW1w b3J0LCBjdSk7CiAgICBpZiAoaW1wb3J0X2F0dHIgPT0gTlVMTCkKICAgICAgewotQEAgLTM0MzYs MTcgKzM3MjcsMjcgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gICAgICAgcmV0dXJuOworQEAgLTM0MzksMTkgKzM4 MDYsMjUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIH0KICAKLS0gIC8qIEZJWE1FOiBkd2FyZjJfbmFtZSAo ZGllKTsgZm9yIHRoZSBsb2NhbCBuYW1lIGFmdGVyIGltcG9ydC4gICovCi0tCi0tICAvKiBGaWd1 cmUgb3V0IHdoZXJlIHRoZSBzdGF0ZW1lbnQgaXMgYmVpbmcgaW1wb3J0ZWQgdG8uICAqLwotKyAg LyogRmlndXJlIG91dCB0aGUgbG9jYWwgbmFtZSBhZnRlciBpbXBvcnQuICAqLworICAgLyogRmln dXJlIG91dCB0aGUgbG9jYWwgbmFtZSBhZnRlciBpbXBvcnQuICAqLworLSAgaW1wb3J0X2FsaWFz ID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwogKyAgaW1wb3J0X2FsaWFzID0gZHdhcmYyX25hbWUo ZGllLCBjdSk7Ci0rICBpZihpbXBvcnRfYWxpYXMgPT0gTlVMTCl7Ci0rICAgIGltcG9ydF9hbGlh cyA9ICIiOwotKyAgfQorIAorLSAgLyogRmlndXJlIG91dCB3aGVyZSB0aGUgc3RhdGVtZW50IGlz IGJlaW5nIGltcG9ydGVkIHRvLiAgKi8KICsgIAogKyAgLyogRGV0ZXJtaW5lIHRoZSBsaW5lIG51 bWJlciBhdCB3aGljaCB0aGUgaW1wb3J0IHdhcyBtYWRlICovCiArICBsaW5lX251bWJlciA9IGR3 YXJmMl9yZWFkX2RlY2xfbGluZShkaWUsIGN1KTsKQEAgLTQyNDksMzggKzQ3MDUsMzggQEAgaW5k ZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAKICAgIC8qIEZpZ3VyZSBvdXQgd2hhdCB0aGUg c2NvcGUgb2YgdGhlIGltcG9ydGVkIGRpZSBpcyBhbmQgcHJlcGVuZCBpdAogICAgICAgdG8gdGhl IG5hbWUgb2YgdGhlIGltcG9ydGVkIGRpZS4gICovCi0tICBpbXBvcnRlZF9uYW1lX3ByZWZpeCA9 IGRldGVybWluZV9wcmVmaXggKGltcG9ydGVkX2RpZSwgaW1wb3J0ZWRfY3UpOworICAgaW1wb3J0 ZWRfbmFtZV9wcmVmaXggPSBkZXRlcm1pbmVfcHJlZml4IChpbXBvcnRlZF9kaWUsIGltcG9ydGVk X2N1KTsKIC0KIC0gIGlmIChzdHJsZW4gKGltcG9ydGVkX25hbWVfcHJlZml4KSA+IDApCiAtICAg IHsKLSsgIGltcG9ydGVkX25hbWVfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoaW1wb3J0ZWRf ZGllLCBjdSk7CistICAgICAgY2Fub25pY2FsX25hbWUgPSBhbGxvY2EgKHN0cmxlbiAoaW1wb3J0 ZWRfbmFtZV9wcmVmaXgpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMiArIHN0 cmxlbiAoaW1wb3J0ZWRfbmFtZSkgKyAxKTsKICsgIAogKyAgaWYoaW1wb3J0ZWRfZGllLT50YWcg IT0gRFdfVEFHX25hbWVzcGFjZSl7CiArICAgIGltcG9ydGVkX2RlY2xhcmF0aW9uID0gaW1wb3J0 ZWRfbmFtZTsKICsgICAgY2Fub25pY2FsX25hbWUgPSAoY2hhciopaW1wb3J0ZWRfbmFtZV9wcmVm aXg7CiArICB9ZWxzZXsKICsgICAgaWYoc3RybGVuIChpbXBvcnRlZF9uYW1lX3ByZWZpeCkgPiAw KXsKLSAgICAgICBjYW5vbmljYWxfbmFtZSA9IGFsbG9jYSAoc3RybGVuIChpbXBvcnRlZF9uYW1l X3ByZWZpeCkgKyAyICsgc3RybGVuIChpbXBvcnRlZF9uYW1lKSArIDEpOworKyAgICAgIGNhbm9u aWNhbF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKGltcG9ydGVkX25hbWVfcHJlZml4KSArIDIgKyBz dHJsZW4gKGltcG9ydGVkX25hbWUpICsgMSk7CiAgICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFt ZSwgaW1wb3J0ZWRfbmFtZV9wcmVmaXgpOwogICAgICAgIHN0cmNhdCAoY2Fub25pY2FsX25hbWUs ICI6OiIpOwotQEAgLTM0NTcsOCArMzc1OCwxNCBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgICBzdHJjYXQg KGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1lKTsKK0BAIC0zNDYxLDEwICszODM0LDEzIEBA IHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogICAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKGltcG9y dGVkX25hbWUpICsgMSk7CiAgICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRf bmFtZSk7CiAgICAgIH0KIC0KLS0gIHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9hZGRfdXNpbmcgKGlt cG9ydF9wcmVmaXgsY2Fub25pY2FsX25hbWUsIHVzaW5nX2RpcmVjdGl2ZXMpOwogKyAgfQogKyAg Ci0rICB1c2luZ19kaXJlY3RpdmVzID0gY3BfYWRkX3VzaW5nIChpbXBvcnRfcHJlZml4LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsX25hbWUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRfYWxpYXMsCisgICB1c2luZ19kaXJl Y3RpdmVzID0gY3BfYWRkX3VzaW5nIChpbXBvcnRfcHJlZml4LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2Fub25pY2FsX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbXBvcnRfYWxpYXMsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbXBvcnRlZF9kZWNsYXJhdGlvbiwKICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpbmVfbnVtYmVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXNpbmdfZGlyZWN0aXZlcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1c2luZ19kaXJlY3RpdmVzKTsKICB9CiAgCi0gc3RhdGljIHZvaWQKLUBAIC0zNzI3LDYgKzQw MzQsMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzczNCw2ICs0MTEwLDE0IEBAIGluaGVyaXRfYWJzdHJh Y3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAg c3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTQyOTUsNyArNDc1MSw3IEBAIGluZGV4IDg2 YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICBpZiAoIWF0dHIpCiAgICAgIHJldHVybjsKICAKLUBA IC0zODI1LDYgKzQxNDAsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zODMyLDYgKzQyMTYsNyBAQCByZWFkX2Z1bmNf c2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIGNo YXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3QgYmxvY2sgKmJsb2Nr OwpAQCAtNDMwMyw3ICs0NzU5LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAg IGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGluZWRfc3Vicm91dGlu ZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4NDMsMTMgKzQxNTksMjMgQEAgcmVh ZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMzg1MCwxMyArNDIzNSwyMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQg KG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwogIApA QCAtNDMzMCw3ICs0Nzg2LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgIGxv d3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2VhZGRyOwogIAotQEAgLTM4NzYsMTQg KzQyMDIsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg4MywxNCArNDI3OCwxOSBAQCByZWFkX2Z1bmNfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGN1LT5s aXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC00MzU3LDcgKzQ4MTMsNyBAQCBp bmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgICB9CiAgCiAgICBpbmhlcml0X2Fic3Ry YWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM4OTksNiArNDIzMCwxMyBAQCByZWFkX2Z1bmNfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTA2 LDYgKzQzMDYsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSksCiAgCQkJ cHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8pOwogIApAQCAtNDM3MSwzMSArNDgyNywzMSBA QCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgLyogSWYgd2UgaGF2ZSBhZGRyZXNz IHJhbmdlcywgcmVjb3JkIHRoZW0uICAqLwogICAgZHdhcmYyX3JlY29yZF9ibG9ja19yYW5nZXMg KGRpZSwgYmxvY2ssIGJhc2VhZGRyLCBjdSk7CiAgICAKLUBAIC00NTE3LDcgKzQ4NTUsNyBAQCBk d2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8g KmRpZSwKK0BAIC00NTI0LDcgKzQ5MzEsNyBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJcmV0dXJuOwogIAogICAgICAg IC8qIEdldCBwaHlzaWNhbCBuYW1lLiAgKi8KIC0gICAgICBwaHlzbmFtZSA9IGR3YXJmMl9saW5r YWdlX25hbWUgKGRpZSwgY3UpOwotKyAgICAgIHBoeXNuYW1lID0gZHdhcmYyX3BoeXNuYW1lIChk aWUsIGN1KTsKKysgICAgICBwaHlzbmFtZSA9IChjaGFyICopIGR3YXJmMl9waHlzbmFtZSAoZmll bGRuYW1lLCBkaWUsIGN1KTsKICAKICAgICAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9j YXRlZCBhbG9uZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAJIG5lZWQgdG8gZHVw bGljYXRlIGl0IGZvciB0aGUgdHlwZS4gICovCi1AQCAtNDY3OSw3ICs1MDE3LDcgQEAgZHdhcmYy X2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAq ZGllLAorQEAgLTQ2ODYsNyArNTA5Myw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3Qg ZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgcmV0dXJuOwogIAog ICAgLyogR2V0IHRoZSBtYW5nbGVkIG5hbWUuICAqLwogLSAgcGh5c25hbWUgPSBkd2FyZjJfbGlu a2FnZV9uYW1lIChkaWUsIGN1KTsKLSsgIHBoeXNuYW1lID0gZHdhcmYyX3BoeXNuYW1lIChkaWUs IGN1KTsKKysgIHBoeXNuYW1lID0gKGNoYXIgKikgZHdhcmYyX3BoeXNuYW1lIChmaWVsZG5hbWUs IGRpZSwgY3UpOwogIAogICAgLyogTG9vayB1cCBtZW1iZXIgZnVuY3Rpb24gbmFtZSBpbiBmaWVs ZGxpc3QuICAqLwogICAgZm9yIChpID0gMDsgaSA8IGZpcC0+bmZuZmllbGRzOyBpKyspCi1AQCAt NDk4NiwxNCArNTMyNCwxOCBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDk5MywxNCArNTQwMCwxOCBAQCByZWFk X3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cwogIAkgIHx8IGN1 LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9qYXZhKQogIAl7CiAtCSAgY29uc3QgY2hhciAqbmV3X3By ZWZpeCA9IGRldGVybWluZV9jbGFzc19uYW1lIChkaWUsIGN1KTsKIC0JICBUWVBFX1RBR19OQU1F ICh0eXBlKSA9IChjaGFyICopIG5ld19wcmVmaXg7Ci0rCSAgVFlQRV9UQUdfTkFNRSAodHlwZSkg PSAoY2hhciAqKSBkd2FyZjJfZnVsbF9uYW1lIChkaWUsIGN1KTsKKysJICBUWVBFX1RBR19OQU1F ICh0eXBlKSA9IChjaGFyICopIGR3YXJmMl9mdWxsX25hbWUgKG5hbWUsIGRpZSwgY3UpOwogKwkg IGlmIChkaWUtPnRhZyA9PSBEV19UQUdfc3RydWN0dXJlX3R5cGUKICsJICAgICAgfHwgZGllLT50 YWcgPT0gRFdfVEFHX2NsYXNzX3R5cGUpCiArCSAgICBUWVBFX05BTUUgKHR5cGUpID0gVFlQRV9U QUdfTkFNRSAodHlwZSk7CkBAIC00NDExLDcgKzQ4NjcsMTYgQEAgaW5kZXggODZiZmVjYi4uZGRm MjE4OSAxMDA2NDQKICAJfQogICAgICB9CiAgCi1AQCAtNTIzNyw1MSArNTU3OSw2IEBAIHJlYWRf ZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTUyMTksNyArNTYzMCw3IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgdHlwZSA9IGFsbG9jX3R5 cGUgKG9iamZpbGUpOworIAorICAgVFlQRV9DT0RFICh0eXBlKSA9IFRZUEVfQ09ERV9FTlVNOwor LSAgbmFtZSA9IGR3YXJmMl9mdWxsX25hbWUgKGRpZSwgY3UpOworKyAgbmFtZSA9IGR3YXJmMl9m dWxsX25hbWUgKE5VTEwsIGRpZSwgY3UpOworICAgaWYgKG5hbWUgIT0gTlVMTCkKKyAgICAgVFlQ RV9UQUdfTkFNRSAodHlwZSkgPSAoY2hhciAqKSBuYW1lOworIAorQEAgLTUyNDQsNTEgKzU2NTUs NiBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwog IH0KICAKQEAgLTQ0NjMsNyArNDkyOCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0 CiAgLyogR2l2ZW4gYSBwb2ludGVyIHRvIGEgZGllIHdoaWNoIGJlZ2lucyBhbiBlbnVtZXJhdGlv biwgcHJvY2VzcyBhbGwKICAgICB0aGUgZGllcyB0aGF0IGRlZmluZSB0aGUgbWVtYmVycyBvZiB0 aGUgZW51bWVyYXRpb24sIGFuZCBjcmVhdGUgdGhlCiAgICAgc3ltYm9sIGZvciB0aGUgZW51bWVy YXRpb24gdHlwZS4KLUBAIC01MzU5LDYgKzU2NTYsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9z Y29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUz NjYsNiArNTczMiwyOSBAQCBwcm9jZXNzX2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBuZXdfc3ltYm9sIChkaWUsIHRoaXNf dHlwZSwgY3UpOwogIH0KICAKQEAgLTQ0OTMsNyArNDk1OCw3IEBAIGluZGV4IDg2YmZlY2IuLmRk ZjIxODkgMTAwNjQ0CiAgLyogRXh0cmFjdCBhbGwgaW5mb3JtYXRpb24gZnJvbSBhIERXX1RBR19h cnJheV90eXBlIERJRSBhbmQgcHV0IGl0IGluCiAgICAgdGhlIERJRSdzIHR5cGUgZmllbGQuICBG b3Igbm93LCB0aGlzIG9ubHkgaGFuZGxlcyBvbmUgZGltZW5zaW9uYWwKICAgICBhcnJheXMuICAq LwotQEAgLTUzNzIsNyArNTY5Miw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUzNzksNyArNTc2OCw3IEBAIHJlYWRf YXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQog ICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlOwog ICAgc3RydWN0IHR5cGUgKipyYW5nZV90eXBlcyA9IE5VTEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwpAQCAtNDUwMiw3ICs0OTY3LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2 NDQKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC01 NDE5LDE2ICs1NzM5LDExIEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU0MjYsMTYgKzU4MTUsMTEgQEAgcmVhZF9hcnJh eV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0 eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3Up ID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC00NTI0LDE2ICs0OTg5LDE2IEBAIGluZGV4IDg2YmZl Y2IuLmRkZjIxODkgMTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5kIER3YXJmMiBzdXBwb3J0IGZv ciB2ZWN0b3IgdHlwZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAgICAgdGhlIFBvd2VyUEMgdy8g QWx0aVZlYykuICBHY2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmlidXRlIHRvIHRoZQotQEAgLTU2 MTcsNyArNTkzMiw3IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTYyNCw3ICs2MDA4LDcgQEAgcmVhZF9uYW1lc3BhY2Ug KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBpZiAo aXNfYW5vbnltb3VzKQogIAl7CiAgCSAgY29uc3QgY2hhciAqcHJldmlvdXNfcHJlZml4ID0gZGV0 ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSk7Ci0tCSAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAocHJl dmlvdXNfcHJlZml4LCBUWVBFX05BTUUgKHR5cGUpKTsKLSsJICBjcF9hZGRfdXNpbmdfZGlyZWN0 aXZlIChwcmV2aW91c19wcmVmaXgsIFRZUEVfTkFNRSAodHlwZSksICIiLCAiIiwgZHdhcmYyX3Jl YWRfZGVjbF9saW5lKGRpZSwgY3UpKTsKKy0JICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChwcmV2 aW91c19wcmVmaXgsIFRZUEVfTkFNRSAodHlwZSksIE5VTEwpOworKwkgIGNwX2FkZF91c2luZ19k aXJlY3RpdmUgKHByZXZpb3VzX3ByZWZpeCwgVFlQRV9OQU1FICh0eXBlKSwgTlVMTCwgIiIsIGR3 YXJmMl9yZWFkX2RlY2xfbGluZShkaWUsIGN1KSk7CiAgCX0KICAgICAgfQogIAotQEAgLTU2MzMs MjAgKzU5NDgsMTU1IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTY0MCwyMCArNjAyNCwxNTUgQEAgcmVhZF9uYW1lc3Bh Y2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgfQog IH0KICAKQEAgLTQ1NDYsMTQgKzUwMTEsMTMgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2 NDQKICB7CiAtICBzdHJ1Y3QgZGllX2luZm8gKmNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7CiArICBz dHJ1Y3QgdHlwZSAqdHlwZTsKLSAKLS0gIC8qIEZJWE1FOiBTdXBwb3J0IHRoZSBzZXBhcmF0ZSBG b3J0cmFuIG1vZHVsZSBuYW1lc3BhY2VzLiAgKi8KKysKICsgIHR5cGUgPSByZWFkX21vZHVsZV90 eXBlIChkaWUsIGN1KTsKICsKICsgIGlmICh0eXBlKQogKyAgICBuZXdfc3ltYm9sIChkaWUsIHR5 cGUsIGN1KTsKICt9Ci0gCisrCiArLyogUmVhZCBhIEZvcnRyYW4gbW9kdWxlIGFzIHR5cGUuCiAr CiArICAgTW9kdWxlcyBwcmVzZW50IG9ubHkgYXMgZGVjbGFyYXRpb25zIC0gYmVpbmcgdXNlZCBv bmx5IGZvciBEV19BVF9pbXBvcnQgb2YKQEAgLTQ1OTAsOSArNTA1NCwxMCBAQCBpbmRleCA4NmJm ZWNiLi5kZGYyMTg5IDEwMDY0NAogKyAgc2F2ZV9nbG9iYWxfc3ltYm9scyA9IGdsb2JhbF9zeW1i b2xzOwogKyAgZ2xvYmFsX3N5bWJvbHMgPSBOVUxMOwogKyAgc2F2ZV9saXN0X2luX3Njb3BlID0g Y3UtPmxpc3RfaW5fc2NvcGU7Ci0rCisgCistICAvKiBGSVhNRTogU3VwcG9ydCB0aGUgc2VwYXJh dGUgRm9ydHJhbiBtb2R1bGUgbmFtZXNwYWNlcy4gICovCiArICAvKiBQcm9jZXNzIHRoZSBjaGls ZCBESUVzLiAgKi8KLSsKKyAKICsgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7CiAgICB3aGlsZSAo Y2hpbGRfZGllICYmIGNoaWxkX2RpZS0+dGFnKQogICAgICB7CkBAIC00NjkyLDcgKzUxNTcsNyBA QCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogIH0KICAKICAvKiBSZXR1cm4gdGhlIG5h bWUgb2YgdGhlIG5hbWVzcGFjZSByZXByZXNlbnRlZCBieSBESUUuICBTZXQKLUBAIC01ODExLDI5 ICs2MjYxLDExMyBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU4MTgsMjkgKzYzMzcsMTE1IEBAIHJlYWRfdGFn X3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUp OwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJf dHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC00Nzc3LDcgKzUyNDIsOCBAQCBp bmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogKwkJfQogKwkgICAgfQogKwotKwkgIFRZUEVf SElHSF9CT1VORF9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkgPSAxOworKwkgIFRZUEVfUkFO R0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gua2luZAorKwkgICAgPSBSQU5HRV9CT1VORF9LSU5E X0RXQVJGX0JMT0NLOwogKwkgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gudS5k d2FyZl9ibG9jayA9IGxlbmd0aF9iYXRvbjsKICsJICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUp ID0gMTsKICsJfQpAQCAtNDgwMSw3ICs1MjY3LDggQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAx MDA2NDQKIC0gICAgICAgIH0KICsgICAgICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfYmxvY2sg KGF0dHIpKQogKwl7Ci0rCSAgVFlQRV9ISUdIX0JPVU5EX0lTX0RXQVJGX0JMT0NLIChyYW5nZV90 eXBlKSA9IDE7CisrCSAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGlnaC5raW5kCisr CSAgICA9IFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfQkxPQ0s7CiArCSAgVFlQRV9SQU5HRV9EQVRB IChyYW5nZV90eXBlKS0+aGlnaC51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3Rv X2xvY2V4cHJfYmF0b24gKGF0dHIsIGN1KTsKICsJICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUp ID0gMTsKQEAgLTQ4MjAsNyArNTI4Nyw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0 CiAgICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2Vf ZGVmbiwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFy X3R5cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTU5MzMsNyArNjQ2Nyw2IEBAIHN0YXRpYyBzdHJ1 Y3QgdHlwZSAqCitAQCAtNTk0MCwxMSArNjU0NSwxMCBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKgog IHJlYWRfdHlwZWRlZiAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7CkBAIC00ODI4 LDcgKzUyOTUsMTIgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgIGNvbnN0IGNo YXIgKm5hbWUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC02MDQx LDggKzY1NzQsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKy0gIG5hbWUgPSBkd2FyZjJfZnVsbF9uYW1lIChkaWUsIGN1 KTsKKysgIG5hbWUgPSBkd2FyZjJfZnVsbF9uYW1lIChOVUxMLCBkaWUsIGN1KTsKKyAgIHRoaXNf dHlwZSA9IGluaXRfdHlwZSAoVFlQRV9DT0RFX1RZUEVERUYsIDAsCisgCQkJIFRZUEVfRkxBR19U QVJHRVRfU1RVQiwgTlVMTCwgb2JqZmlsZSk7CisgICBUWVBFX05BTUUgKHRoaXNfdHlwZSkgPSAo Y2hhciAqKSBuYW1lOworQEAgLTYwNDgsOCArNjY1Miw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5 cGUgKmJhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cjsKQEAgLTQ4MzgsNyArNTMxMCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIx ODkgMTAwNjQ0CiAgICBjaGFyICpuYW1lOwogICAgTE9OR0VTVCBuZWdhdGl2ZV9tYXNrOwogICAg Ci1AQCAtNjA1Niw0OSArNjU4OCwxMDEgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNjA2Myw0OSArNjY2NiwxNTcg QEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgCQkgICAgIDAsIE5VTEwsIGN1LT5vYmpmaWxlKTsKICAgICAgfQogIApAQCAt NDg2MSwxMyArNTMzMywzMiBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogLSAgICBs b3cgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDApOwogKyAgaWYgKGF0 dHIgJiYgYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewotKyAgICAgIFRZUEVfTE9X X0JPVU5EX0lTX0RXQVJGX0JMT0NLIChyYW5nZV90eXBlKSA9IDE7CisrICAgICAgVFlQRV9SQU5H RV9EQVRBIChyYW5nZV90eXBlKS0+bG93LmtpbmQgPSBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0JM T0NLOwogKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmxvdy51LmR3YXJmX2Js b2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3RvX2xvY2V4cHJfYmF0b24gKGF0dHIsIGN1KTsKICsg ICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0gMTsKICsgICAgICAvKiBGb3Igc2V0dGlu ZyBhIGRlZmF1bHQgaWYgRFdfQVRfVVBQRVJfQk9VTkQgd291bGQgYmUgbWlzc2luZy4gICovCiAr ICAgICAgbG93ID0gMDsKICsgICAgfQorKyAgZWxzZSBpZiAoYXR0ciAmJiBpc19yZWZfYXR0ciAo YXR0cikpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgZGllX2luZm8gKnRhcmdldF9kaWU7CisrICAg ICAgc3RydWN0IGR3YXJmMl9jdSAqdGFyZ2V0X2N1ID0gY3U7CisrICAgICAgc3RydWN0IGF0dHJp YnV0ZSAqdGFyZ2V0X2xvY19hdHRyOworKworKyAgICAgIHRhcmdldF9kaWUgPSBmb2xsb3dfZGll X3JlZl9vcl9zaWcgKGRpZSwgYXR0ciwgJnRhcmdldF9jdSk7CisrICAgICAgZ2RiX2Fzc2VydCAo dGFyZ2V0X2N1LT5vYmpmaWxlID09IGN1LT5vYmpmaWxlKTsKKysgICAgICB0YXJnZXRfbG9jX2F0 dHIgPSBkd2FyZjJfYXR0ciAodGFyZ2V0X2RpZSwgRFdfQVRfbG9jYXRpb24sIHRhcmdldF9jdSk7 CisrCisrICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+bG93LmtpbmQgPSBSQU5H RV9CT1VORF9LSU5EX0RXQVJGX0xPQ0xJU1Q7CisrICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+bG93LnUuZHdhcmZfbG9jbGlzdC5sb2NsaXN0CisrICAgICAgICA9IGR3YXJmMl9h dHRyX3RvX2xvY2xpc3RfYmF0b24gKHRhcmdldF9sb2NfYXR0ciwgdGFyZ2V0X2N1KTsKKysgICAg ICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5sb3cudS5kd2FyZl9sb2NsaXN0LnR5cGUK KysgICAgICAgID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CisrICAgICAgVFlQ RV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7CisrICAgICAgLyogRm9yIHNldHRpbmcgYSBkZWZh dWx0IGlmIERXX0FUX1VQUEVSX0JPVU5EIHdvdWxkIGJlIG1pc3NpbmcuICAqLworKyAgICAgIGxv dyA9IDA7CisrICAgIH0KICsgIGVsc2UKICsgICAgewogKyAgICAgIGlmIChhdHRyICYmIGF0dHJf Zm9ybV9pc19jb25zdGFudCAoYXR0cikpCkBAIC00OTExLDkgKzU0MDIsOCBAQCBpbmRleCA4NmJm ZWNiLi5kZGYyMTg5IDEwMDY0NAogLSAgICAgICAgICAgICB0aGUgbG93ZXIgYm91bmQgd2UndmUg Y29tcHV0ZWQgYWJvdmUuICAqLwogLSAgICAgICAgICBoaWdoID0gbG93IC0gMTsKIC0gICAgICAg IH0KLS0gICAgICBlbHNlCi0tICAgICAgICBoaWdoID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50 X3ZhbHVlIChhdHRyLCAxKTsKLSsgIGlmICghYXR0ciB8fCAoIWF0dHJfZm9ybV9pc19ibG9jayAo YXR0cikgJiYgIWF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpKQorKyAgaWYgKCFhdHRyIHx8 ICghYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSAmJiAhYXR0cl9mb3JtX2lzX2NvbnN0YW50IChh dHRyKQorKwkJJiYgIWlzX3JlZl9hdHRyIChhdHRyKSkpCiArICAgIHsKICsgICAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY291bnQsIGN1KTsKICsgICAgICAvKiBJdCBkb2VzIG5v dCBodXJ0IGJ1dCBpdCBpcyBuZWVkbGVzc2x5IGluZWZmZWN0aXZlIGluIGNoZWNrX3R5cGVkZWYu ICAqLwpAQCAtNDkyMywyMSArNTQxMywzMiBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0 NAogKwkgIFRZUEVfRFlOQU1JQyAocmFuZ2VfdHlwZSkgPSAxOwogKwl9CiArICAgICAgLyogUGFz cyBpdCBub3cgYXMgdGhlIHJlZ3VsYXIgRFdfQVRfdXBwZXJfYm91bmQuICAqLwotICAgICB9Ci0g Ci0tICBuZWdhdGl2ZV9tYXNrID0gCi0tICAgIChMT05HRVNUKSAtMSA8PCAoVFlQRV9MRU5HVEgg KGJhc2VfdHlwZSkgKiBUQVJHRVRfQ0hBUl9CSVQgLSAxKTsKLS0gIGlmICghVFlQRV9VTlNJR05F RCAoYmFzZV90eXBlKSAmJiAobG93ICYgbmVnYXRpdmVfbWFzaykpCi0tICAgIGxvdyB8PSBuZWdh dGl2ZV9tYXNrOwotLSAgaWYgKCFUWVBFX1VOU0lHTkVEIChiYXNlX3R5cGUpICYmIChoaWdoICYg bmVnYXRpdmVfbWFzaykpCi0tICAgIGhpZ2ggfD0gbmVnYXRpdmVfbWFzazsKKysgICAgfQorKwog KyAgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewotKyAgICAg IFRZUEVfSElHSF9CT1VORF9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkgPSAxOworKyAgICAg IFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gua2luZCA9IFJBTkdFX0JPVU5EX0tJ TkRfRFdBUkZfQkxPQ0s7CiArICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+aGln aC51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3RvX2xvY2V4cHJfYmF0b24gKGF0 dHIsIGN1KTsKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0gMTsKICsgICAgfQor KyAgZWxzZSBpZiAoYXR0ciAmJiBpc19yZWZfYXR0ciAoYXR0cikpCisrICAgIHsKKysgICAgICBz dHJ1Y3QgZGllX2luZm8gKnRhcmdldF9kaWU7CisrICAgICAgc3RydWN0IGR3YXJmMl9jdSAqdGFy Z2V0X2N1ID0gY3U7CisrICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqdGFyZ2V0X2xvY19hdHRyOwor KworKyAgICAgIHRhcmdldF9kaWUgPSBmb2xsb3dfZGllX3JlZl9vcl9zaWcgKGRpZSwgYXR0ciwg JnRhcmdldF9jdSk7CisrICAgICAgZ2RiX2Fzc2VydCAodGFyZ2V0X2N1LT5vYmpmaWxlID09IGN1 LT5vYmpmaWxlKTsKKysgICAgICB0YXJnZXRfbG9jX2F0dHIgPSBkd2FyZjJfYXR0ciAodGFyZ2V0 X2RpZSwgRFdfQVRfbG9jYXRpb24sIHRhcmdldF9jdSk7CisrCisrICAgICAgVFlQRV9SQU5HRV9E QVRBIChyYW5nZV90eXBlKS0+aGlnaC5raW5kID0gUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9MT0NM SVNUOworKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gudS5kd2FyZl9s b2NsaXN0LmxvY2xpc3QKKysgICAgICAgID0gZHdhcmYyX2F0dHJfdG9fbG9jbGlzdF9iYXRvbiAo dGFyZ2V0X2xvY19hdHRyLCB0YXJnZXRfY3UpOworKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFu Z2VfdHlwZSktPmhpZ2gudS5kd2FyZl9sb2NsaXN0LnR5cGUKKysgICAgICAgID0gZGllX3R5cGUg KHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CisrICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBl KSA9IDE7CisrICAgIH0KICsgIGVsc2UKICsgICAgewogKyAgICAgIGlmIChhdHRyICYmIGF0dHJf Zm9ybV9pc19jb25zdGFudCAoYXR0cikpCkBAIC00OTQ5LDIzICs1NDUwLDQ5IEBAIGluZGV4IDg2 YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiArCSAgICBoaWdoIHw9IG5lZ2F0aXZlX21hc2s7CiArCSAg VFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IGhpZ2g7CiArCX0KLSsgICAgICBlbHNlCisg ICAgICAgZWxzZQorLSAgICAgICAgaGlnaCA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1 ZSAoYXR0ciwgMSk7CiArCXsKICsJICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90 eXBlKSA9IDE7CiArCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IGxvdyAtIDE7CiAr CX0KLSsgICAgfQorICAgICB9CiAgCi0tICByYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUg KE5VTEwsIGJhc2VfdHlwZSwgbG93LCBoaWdoKTsKKy0gIG5lZ2F0aXZlX21hc2sgPSAKKy0gICAg KExPTkdFU1QpIC0xIDw8IChUWVBFX0xFTkdUSCAoYmFzZV90eXBlKSAqIFRBUkdFVF9DSEFSX0JJ VCAtIDEpOworLSAgaWYgKCFUWVBFX1VOU0lHTkVEIChiYXNlX3R5cGUpICYmIChsb3cgJiBuZWdh dGl2ZV9tYXNrKSkKKy0gICAgbG93IHw9IG5lZ2F0aXZlX21hc2s7CistICBpZiAoIVRZUEVfVU5T SUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2ggJiBuZWdhdGl2ZV9tYXNrKSkKKy0gICAgaGlnaCB8 PSBuZWdhdGl2ZV9tYXNrOwogKyAgLyogRFdfQVRfYml0X3N0cmlkZSBpcyBjdXJyZW50bHkgdW5z dXBwb3J0ZWQgYXMgd2UgY291bnQgaW4gYnl0ZXMuICAqLwogKyAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7CiArICBpZiAoYXR0ciAmJiBhdHRyX2Zvcm1f aXNfYmxvY2sgKGF0dHIpKQogKyAgICB7Ci0rICAgICAgVFlQRV9CWVRFX1NUUklERV9JU19EV0FS Rl9CTE9DSyAocmFuZ2VfdHlwZSkgPSAxOworKyAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2Vf dHlwZSktPmJ5dGVfc3RyaWRlLmtpbmQKKysgICAgICAgID0gUkFOR0VfQk9VTkRfS0lORF9EV0FS Rl9CTE9DSzsKICsgICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5ieXRlX3N0cmlk ZS51LmR3YXJmX2Jsb2NrID0KICsJCQkJCWR3YXJmMl9hdHRyX3RvX2xvY2V4cHJfYmF0b24gKGF0 dHIsIGN1KTsKICsgICAgICBUWVBFX0RZTkFNSUMgKHJhbmdlX3R5cGUpID0gMTsKICsgICAgfQor KyAgZWxzZSBpZiAoYXR0ciAmJiBpc19yZWZfYXR0ciAoYXR0cikpCisrICAgIHsKKysgICAgICBz dHJ1Y3QgZGllX2luZm8gKnRhcmdldF9kaWU7CisrICAgICAgc3RydWN0IGR3YXJmMl9jdSAqdGFy Z2V0X2N1ID0gY3U7CisrICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqdGFyZ2V0X2xvY19hdHRyOwor IAorLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBiYXNlX3R5cGUsIGxv dywgaGlnaCk7CisrICAgICAgdGFyZ2V0X2RpZSA9IGZvbGxvd19kaWVfcmVmX29yX3NpZyAoZGll LCBhdHRyLCAmdGFyZ2V0X2N1KTsKKysgICAgICBnZGJfYXNzZXJ0ICh0YXJnZXRfY3UtPm9iamZp bGUgPT0gY3UtPm9iamZpbGUpOworKyAgICAgIHRhcmdldF9sb2NfYXR0ciA9IGR3YXJmMl9hdHRy ICh0YXJnZXRfZGllLCBEV19BVF9sb2NhdGlvbiwgdGFyZ2V0X2N1KTsKKysKKysgICAgICBUWVBF X1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5ieXRlX3N0cmlkZS5raW5kCisrICAgICAgICA9IFJB TkdFX0JPVU5EX0tJTkRfRFdBUkZfTE9DTElTVDsKKysgICAgICBUWVBFX1JBTkdFX0RBVEEgKHJh bmdlX3R5cGUpLT5ieXRlX3N0cmlkZS51LmR3YXJmX2xvY2xpc3QubG9jbGlzdAorKyAgICAgICAg PSBkd2FyZjJfYXR0cl90b19sb2NsaXN0X2JhdG9uICh0YXJnZXRfbG9jX2F0dHIsIHRhcmdldF9j dSk7CisrICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5nZV90eXBlKS0+Ynl0ZV9zdHJpZGUudS5k d2FyZl9sb2NsaXN0LnR5cGUKKysgICAgICAgID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdl dF9jdSk7CisrICAgICAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7CisrICAgIH0KICsg IGVsc2UgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChhdHRyKSkKICsgICAgewog KyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpID0gZHdhcmYyX2dldF9hdHRyX2Nv bnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKQEAgLTQ5NzYsNyArNTUwMyw3IEBAIGluZGV4IDg2YmZl Y2IuLmRkZjIxODkgMTAwNjQ0CiAgCiAgICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwog ICAgaWYgKG5hbWUpCi1AQCAtNjU1Nyw2ICs3MTQxLDcgQEAgbG9hZF9wYXJ0aWFsX2RpZXMgKGJm ZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAorQEAgLTY1NjQs NiArNzI3NSw3IEBAIGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICpidWZm ZXIsIGdkYl9ieXRlICppbmZvX3B0ciwKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbGV4 aWNhbF9ibG9jawogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR192YXJpYWJsZQogIAkgICYm IGFiYnJldi0+dGFnICE9IERXX1RBR19uYW1lc3BhY2UKQEAgLTQ5ODQsMTggKzU1MTEsMTcgQEAg aW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19U QUdfbWVtYmVyKQogIAl7CiAgCSAgLyogT3RoZXJ3aXNlIHdlIHNraXAgdG8gdGhlIG5leHQgc2li bGluZywgaWYgYW55LiAgKi8KLUBAIC02NzY1LDggKzczNTAsOCBAQCByZWFkX3BhcnRpYWxfZGll IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjc3Miw3ICs3NDg0LDgg QEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAog IAkgICAgfQogIAkgIGJyZWFrOwogIAljYXNlIERXX0FUX01JUFNfbGlua2FnZV9uYW1lOgogLQkg IHBhcnRfZGllLT5uYW1lID0gRFdfU1RSSU5HICgmYXR0cik7Ci0tCSAgYnJlYWs7CiArCSAgaWYg KGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9hZGEpCiArCSAgICBwYXJ0X2RpZS0+bmFtZSA9IERX X1NUUklORyAoJmF0dHIpOworIAkgIGJyZWFrOwogIAljYXNlIERXX0FUX2xvd19wYzoKICAJICBo YXNfbG93X3BjX2F0dHIgPSAxOwotIAkgIHBhcnRfZGllLT5sb3dwYyA9IERXX0FERFIgKCZhdHRy KTsKLUBAIC02OTYzLDcgKzc1NDgsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRp YWxfZGllX2luZm8gKnBhcnRfZGllLAorQEAgLTY5NzAsNyArNzY4Myw4IEBAIGZpeHVwX3BhcnRp YWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgICAvKiBJZiB3ZSBm b3VuZCBhIHJlZmVyZW5jZSBhdHRyaWJ1dGUgYW5kIHRoZSBESUUgaGFzIG5vIG5hbWUsIHRyeQog ICAgICAgdG8gZmluZCBhIG5hbWUgaW4gdGhlIHJlZmVycmVkIHRvIERJRS4gICovCiAgCkBAIC01 MDA1LDcgKzU1MzEsNyBAQCBpbmRleCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgICB7CiAg ICAgICAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnNwZWNfZGllOwogIAotQEAgLTgzMDUsMTAg Kzg4OTEsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwg c3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTgzMTIsMTAgKzkwMjYsMTIgQEAgdmFyX2RlY29kZV9s b2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAg ICAgKGkuZS4gd2hlbiB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1vcnkgbG9jYXRpb24g aXMKICAgICAgIHJlZmVyZW5jZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2NrLCBldGMuKS4gIFRo ZW4gYWdhaW4sIGl0IG1pZ2h0CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4gIEknbSBhc3N1bWlu ZyB0aGF0IGl0IGlzbid0IHVubGVzcyBwZXJmb3JtYW5jZQpAQCAtNTAyMCw3ICs1NTQ2LDcgQEAg aW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSBwb2ludGVy IHRvIGEgRFdBUkYgaW5mb3JtYXRpb24gZW50cnksIGZpZ3VyZSBvdXQgaWYgd2UgbmVlZAotQEAg LTgzMzAsMjEgKzg5MTgsMjkgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04MzM3LDIxICs5MDUz LDI3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpm aWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTUw NDEsMTMgKzU1NjcsMTAgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICsgICAgICAv KiBTb21lIG1ldGhvZHMgYXJlIGNhbGxlZCB3L28gY2hlY2tpbmcgU1lNQk9MX0NPTVBVVEVEX09Q UyB2YWxpZGl0eS4gICovCiArICAgICAgU1lNQk9MX0NPTVBVVEVEX09QUyAoc3ltKSA9ICZkd2Fy ZjJfbWlzc2luZ19mdW5jczsKICAKLS0gICAgICAvKiBDYWNoZSB0aGlzIHN5bWJvbCdzIG5hbWUg YW5kIHRoZSBuYW1lJ3MgZGVtYW5nbGVkIGZvcm0gKGlmIGFueSkuICAqLworICAgICAgIC8qIENh Y2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAoaWYg YW55KS4gICovCiAgICAgICAgU1lNQk9MX0xBTkdVQUdFIChzeW0pID0gY3UtPmxhbmd1YWdlOwog LSAgICAgIFNZTUJPTF9TRVRfTkFNRVMgKHN5bSwgbmFtZSwgc3RybGVuIChuYW1lKSwgMCwgb2Jq ZmlsZSk7Ci0rCi0rICAgICAgLyogQ2FjaGUgdGhpcyBzeW1ib2wncyBuYW1lIGFuZCB0aGUgbmFt ZSdzIGRlbWFuZ2xlZCBmb3JtIChpZiBhbnkpLiAgKi8KLSsKLSsgICAgICBsaW5rYWdlbmFtZSA9 IGR3YXJmMl9waHlzbmFtZSAoZGllLCBjdSk7CisrICAgICAgbGlua2FnZW5hbWUgPSBkd2FyZjJf cGh5c25hbWUgKG5hbWUsIGRpZSwgY3UpOwogKyAgICAgIFNZTUJPTF9TRVRfTkFNRVMgKHN5bSwg bGlua2FnZW5hbWUsIHN0cmxlbiAobGlua2FnZW5hbWUpLCAwLCBvYmpmaWxlKTsKICsgICAgICBp ZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4pCiArCXsKQEAgLTUwNTcsNyArNTU4 MCw3IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgCiAgICAgICAgLyogRGVmYXVs dCBhc3N1bXB0aW9ucy4KICAgICAgICAgICBVc2UgdGhlIHBhc3NlZCB0eXBlIG9yIGRlY29kZSBp dCBmcm9tIHRoZSBkaWUuICAqLwotQEAgLTg0NDQsNyArOTA0MCwyNCBAQCBuZXdfc3ltYm9sIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTg0NTEsNyArOTE3MywyNCBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgICAgICB2 YXJfZGVjb2RlX2xvY2F0aW9uIChhdHRyLCBzeW0sIGN1KTsKICAJICAgICAgYXR0cjIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9leHRlcm5hbCwgY3UpOwogIAkgICAgICBpZiAoYXR0cjIgJiYg KERXX1VOU05EIChhdHRyMikgIT0gMCkpCkBAIC01MDgzLDcgKzU2MDYsMjcgQEAgaW5kZXggODZi ZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAJICAgICAgZWxzZQogIAkJYWRkX3N5bWJvbF90b19saXN0 IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKICAJICAgIH0KLUBAIC04NjA1LDYgKzkyMTgsMTEg QEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NTc2LDcgKzkzMTUsOCBAQCBuZXdfc3ltYm9sIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorIAkgIH0KKyAJICBicmVhazsKKyAJY2FzZSBEV19UQUdfdHlwZWRlZjoKKy0JICBTWU1C T0xfTElOS0FHRV9OQU1FIChzeW0pID0gKGNoYXIgKikgZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBj dSk7CisrCSAgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKQorKwkgICAgPSAoY2hhciAqKSBkd2Fy ZjJfZnVsbF9uYW1lIChuYW1lLCBkaWUsIGN1KTsKKyAJICBTWU1CT0xfQ0xBU1MgKHN5bSkgPSBM T0NfVFlQRURFRjsKKyAJICBTWU1CT0xfRE9NQUlOIChzeW0pID0gVkFSX0RPTUFJTjsKKyAJICBh ZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgY3UtPmxpc3RfaW5fc2NvcGUpOworQEAgLTg1ODgsNyAr OTMyOCw4IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCSAgYWRkX3N5bWJvbF90b19saXN0IChzeW0s IGN1LT5saXN0X2luX3Njb3BlKTsKKyAJICBicmVhazsKKyAJY2FzZSBEV19UQUdfZW51bWVyYXRv cjoKKy0JICBTWU1CT0xfTElOS0FHRV9OQU1FIChzeW0pID0gKGNoYXIgKikgZHdhcmYyX2Z1bGxf bmFtZSAoZGllLCBjdSk7CisrCSAgU1lNQk9MX0xJTktBR0VfTkFNRSAoc3ltKQorKwkgICAgPSAo Y2hhciAqKSBkd2FyZjJfZnVsbF9uYW1lIChuYW1lLCBkaWUsIGN1KTsKKyAJICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfY29uc3RfdmFsdWUsIGN1KTsKKyAJICBpZiAoYXR0cikKKyAJ ICAgIHsKK0BAIC04NjEyLDYgKzkzNTMsMTEgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICBTWU1C T0xfQ0xBU1MgKHN5bSkgPSBMT0NfVFlQRURFRjsKICAJICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5 bSwgJmdsb2JhbF9zeW1ib2xzKTsKICAJICBicmVhazsKQEAgLTUwOTUsNyArNTYzOCw3IEBAIGlu ZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgCWRlZmF1bHQ6CiAgCSAgLyogTm90IGEgdGFn IHdlIHJlY29nbml6ZS4gIEhvcGVmdWxseSB3ZSBhcmVuJ3QgcHJvY2Vzc2luZwogIAkgICAgIHRy YXNoIGRhdGEsIGJ1dCBzaW5jZSB3ZSBtdXN0IHNwZWNpZmljYWxseSBpZ25vcmUgdGhpbmdzCi1A QCAtODYxOCw4ICs5MjM2LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04NjI1LDggKzkzNzEs NyBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIC8qIEZvciB0aGUgYmVuZWZpdCBvZiBvbGQg dmVyc2lvbnMgb2YgR0NDLCBjaGVjayBmb3IgYW5vbnltb3VzCiAgCSBuYW1lc3BhY2VzIGJhc2Vk IG9uIHRoZSBkZW1hbmdsZWQgbmFtZS4gICovCiAgICAgICAgaWYgKCFwcm9jZXNzaW5nX2hhc19u YW1lc3BhY2VfaW5mbwpAQCAtNTEwNSw3ICs1NjQ4LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4 OSAxMDA2NDQKICAJY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMgKHN5bSk7CiAgICAg IH0KICAgIHJldHVybiAoc3ltKTsKLUBAIC04OTMxLDEyICs5NTQ4LDE4IEBAIHJlYWRfdHlwZV9k aWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04OTM4 LDEyICs5NjgzLDE4IEBAIHJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgY2FzZSBEV19UQUdfbmFtZXNwYWNlOgogICAgICAgIHRo aXNfdHlwZSA9IHJlYWRfbmFtZXNwYWNlX3R5cGUgKGRpZSwgY3UpOwogICAgICAgIGJyZWFrOwpA QCAtNTEyNCw3ICs1NjY3LDE4IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICBy ZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC05MDE4LDEwICs5NjQxLDEwMyBAQCBkZXRlcm1p bmVfcHJlZml4IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtOTAxMSw2ICs5NzYyLDEwIEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgICAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6 CisgCXBhcmVudF90eXBlID0gcmVhZF90eXBlX2RpZSAocGFyZW50LCBjdSk7CisgCS8qIFdlIGdp dmUgYSBuYW1lIHRvIGV2ZW4gYW5vbnltb3VzIG5hbWVzcGFjZXMuICAqLworKworKwkvKiBHKysg NC4xIHByb2R1Y2VkIERXX1RBR19uYW1lc3BhY2Ugd2l0aCBEV19BVF9uYW1lICI6OiIuICAqLwor KwlpZiAoc3RyY21wIChUWVBFX1RBR19OQU1FIChwYXJlbnRfdHlwZSksICI6OiIpID09IDApCisr CSAgcmV0dXJuICIiOworIAlyZXR1cm4gVFlQRV9UQUdfTkFNRSAocGFyZW50X3R5cGUpOworICAg ICAgIGNhc2UgRFdfVEFHX2NsYXNzX3R5cGU6CisgICAgICAgY2FzZSBEV19UQUdfaW50ZXJmYWNl X3R5cGU6CitAQCAtOTAyNSw3ICs5NzgwLDcgQEAgZGV0ZXJtaW5lX3ByZWZpeCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgICAgIFNvIGl0IGRvZXMgbm90 IG5lZWQgYSBwcmVmaXguICAqLwogIAkgIHJldHVybiAiIjsKICAgICAgICBkZWZhdWx0OgpAQCAt NTEzMywyMzMgKzU2ODcsNjQgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAgICAg ICB9CiAgfQogIAotKy8qIERldGVybWluZXMgdGhlIHByZWZpeCBmb3IgYSBzeW1ib2wncyBwaHlz bmFtZS4gIFVubGlrZSBkZXRlcm1pbmVfcHJlZml4LAotKyAgIHRoaXMgbWV0aG9kIGRvZXMgbm90 IHNpbXBseSBsb29rIGF0IHRoZSBESUUncyBpbW1lZGlhdGUgcGFyZW50LgotKyAgIEl0IHdpbGwg Y29tcHV0ZSB0aGUgc3ltYm9sJ3MgcGh5c25hbWUgYnkgc2Nhbm5pbmcgdGhyb3VnaCBhbGwgcGFy ZW50Ci0rICAgRElFcyB1bnRpbCBpdCBnZXRzIHRvIHRoZSBjb21waWxhdGlvbiB1bml0J3MgRElF LiAgKi8KLSsKLStzdGF0aWMgY2hhciAqCi0rcGh5c25hbWVfcHJlZml4IChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0rewotKyAgbG9uZyBsZW5ndGg7Ci0rICBz dHJ1Y3QgdWlfZmlsZSAqYnVmOwotKyAgc3RydWN0IGRpZV9pbmZvICpkLCAqc3BlY19kaWU7Ci0r ICBzdHJ1Y3QgZHdhcmYyX2N1ICpzcGVjX2N1OworQEAgLTkwNzgsMTcgKzk4MzMsMzcgQEAgc2li bGluZ19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllKQorICAgcmV0dXJuIGRpZS0+c2libGluZzsK KyB9CisgCistLyogR2V0IGxpbmthZ2UgbmFtZSBvZiBhIGRpZSwgcmV0dXJuIE5VTEwgaWYgbm90 IGZvdW5kLiAgKi8KKysvKiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCAuc3ltdGFiIG5hbWUg Zm9yIHN5bWJvbHMgY29udGFpbmVkIGluIEZvcnRyYW4KKysgICBtb2R1bGVzLiAgUmV0dXJuIERX QVJGMl9OQU1FIG90aGVyd2lzZS4gICovCisgCisgc3RhdGljIGNoYXIgKgorLWR3YXJmMl9saW5r YWdlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKytm b3J0cmFuX21vZHVsZV9saW5rYWdlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKKyB7CistICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogKyAgY2hhciAq bmFtZTsKICsKLSsgIC8qIENvbnN0cnVjdCBhIHN0YWNrIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBE SUUncyBwYXJlbnRzLiAgQ2F1dGlvbgotKyAgICAgbXVzdCBiZSBvYnNlcnZlZCBmb3IgZGVhbGlu ZyB3aXRoIERXX0FUX3NwZWNpZmljYXRpb24uICovCi0rICBzcGVjX2N1ID0gY3U7Ci0rICBzcGVj X2RpZSA9IGRpZV9zcGVjaWZpY2F0aW9uIChkaWUsICZzcGVjX2N1KTsKLSsgIGlmIChzcGVjX2Rp ZSAhPSBOVUxMKQotKyAgICBkID0gc3BlY19kaWUtPnBhcmVudDsKLSsgIGVsc2UKLSsgICAgZCA9 IGRpZS0+cGFyZW50OwotKyAgd2hpbGUgKGQgIT0gTlVMTCAmJiBkLT50YWcgIT0gRFdfVEFHX2Nv bXBpbGVfdW5pdCkKLSsgICAgewotKyAgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7Ci0rCi0r ICAgICAgc3BlY19kaWUgPSBkaWVfc3BlY2lmaWNhdGlvbiAoZCwgJnNwZWNfY3UpOwotKyAgICAg IGlmIChzcGVjX2RpZSAhPSBOVUxMKQotKwlkID0gc3BlY19kaWU7CisrICBnZGJfYXNzZXJ0IChj dS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbik7CiArCi0rICAgICAgVkVDX3F1aWNrX3B1 c2ggKGRpZV9pbmZvX3AsIGRpZV9saXN0LCBkKTsKLSsgICAgICBkID0gZC0+cGFyZW50OwotKyAg ICB9CisrICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwogKwotKyAgLyogTm93IHBvcCBh bGwgdGhlIGVsZW1lbnRzLCBwcmludGluZyB0aGVpciBuYW1lcyBhcyB3ZSBnby4gICovCi0rICBi dWYgPSBtZW1fZmlsZW9wZW4gKCk7Ci0rICB3aGlsZSAoIVZFQ19lbXB0eSAoZGllX2luZm9fcCwg ZGllX2xpc3QpKQorKyAgaWYgKG5hbWUgJiYgZGllLT5wYXJlbnQgJiYgZGllLT5wYXJlbnQtPnRh ZyA9PSBEV19UQUdfbW9kdWxlKQogKyAgICB7Ci0rICAgICAgZCA9IFZFQ19wb3AgKGRpZV9pbmZv X3AsIGRpZV9saXN0KTsKLSsgICAgICBwaHlzbmFtZV9wcmVmaXhfMSAoYnVmLCBkLCBjdSk7Cisr ICAgICAgY2hhciAqbW9kdWxlX25hbWUgPSBkd2FyZjJfbmFtZSAoZGllLT5wYXJlbnQsIGN1KTsK ICsKLSsgICAgICBpZiAoIVZFQ19lbXB0eSAoZGllX2luZm9fcCwgZGllX2xpc3QpKQorKyAgICAg IGlmIChtb2R1bGVfbmFtZSkKICsJewotKwkgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2Vf Y3BsdXMpCi0rCSAgICBmcHV0c191bmZpbHRlcmVkICgiOjoiLCBidWYpOwotKwkgIGVsc2UKLSsJ ICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIuIiwgYnVmKTsKKysJICBjaGFyICpyZXR2YWw7CisgCist ICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfTUlQU19saW5rYWdlX25hbWUsIGN1KTsK Ky0gIGlmIChhdHRyICYmIERXX1NUUklORyAoYXR0cikpCistICAgIHJldHVybiBEV19TVFJJTkcg KGF0dHIpOworLSAgcmV0dXJuIGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKKysJICAvKiBgX19tb2R1 bGVuYW1lX01PRF92YXJpYWJsZW5hbWUwJy4gICovCisrCSAgcmV0dmFsID0gb2JzdGFja19hbGxv YyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCQkJCSAgMiArIHN0cmxlbiAobW9k dWxlX25hbWUpICsgNSArIHN0cmxlbiAobmFtZSkKKysJCQkJICArIDEpOworKwkgIHNwcmludGYg KHJldHZhbCwgIl9fJXNfTU9EXyVzIiwgbW9kdWxlX25hbWUsIG5hbWUpOworKworKwkgIHJldHVy biByZXR2YWw7CiArCX0KICsgICAgfQogKwotKyAgbmFtZSA9IHVpX2ZpbGVfb2JzYXZlc3RyaW5n IChidWYsICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCAmbGVuZ3RoKTsKLSsgIHVpX2Zp bGVfZGVsZXRlIChidWYpOwogKyAgcmV0dXJuIG5hbWU7Ci0rfQorIH0KKyAKKyAvKiBHZXQgbmFt ZSBvZiBhIGRpZSwgcmV0dXJuIE5VTEwgaWYgbm90IGZvdW5kLiAgKi8KK0BAIC0xMTQzNiw2NCAr MTIyMTEsOTQgQEAgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRy KQorICAgICB9CisgfQorIAorKy8qIENvbnZlcnQgRFdfQkxPQ0sgaW50byBzdHJ1Y3QgZHdhcmYy X2xvY2V4cHJfYmF0b24uICBBVFRSIG11c3QgYmUgYSBEV19CTE9DSworKyAgIGF0dHJpYnV0ZSB0 eXBlLiAgKi8KICsKLStzdGF0aWMgdm9pZAotK3BoeXNuYW1lX3ByZWZpeF8xIChzdHJ1Y3QgdWlf ZmlsZSAqYnVmLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSsJCSAgIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorK3N0YXRpYyBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKgorK2R3YXJmMl9hdHRy X3RvX2xvY2V4cHJfYmF0b24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogK3sKLSsgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwotKyAgZ2RiX2Fzc2VydCAo YnVmICE9IE5VTEwpOworKyAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpiYXRvbjsKICsK LSsgIGlmIChkaWUgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIHN3aXRjaCAoZGllLT50YWcpCi0r CXsKLSsJY2FzZSBEV19UQUdfbmFtZXNwYWNlOgotKwkgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGll LCBjdSk7Ci0rCSAgaWYgKG5hbWUgPT0gTlVMTCkKLSsJICAgIG5hbWUgPSAiKGFub255bW91cyBu YW1lc3BhY2UpIjsKLSsJICAvKiBHKysgNC4xIHByb2R1Y2VkIERXX1RBR19uYW1lc3BhY2Ugd2l0 aCBEV19BVF9uYW1lICI6OiIuICAqLwotKwkgIGVsc2UgaWYgKHN0cmNtcCAobmFtZSwgIjo6Iikg PT0gMCkKLSsJICAgIG5hbWUgPSBOVUxMOwotKwkgIGJyZWFrOwotKwotKwljYXNlIERXX1RBR19j bGFzc190eXBlOgotKwljYXNlIERXX1RBR19zdHJ1Y3R1cmVfdHlwZToKLSsJY2FzZSBEV19UQUdf dW5pb25fdHlwZToKLSsJY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKLSsJY2FzZSBEV19U QUdfaW50ZXJmYWNlX3R5cGU6Ci0rCWNhc2UgRFdfVEFHX3N1YnByb2dyYW06Ci0rCSAgbmFtZSA9 IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKLSsJICBicmVhazsKLSsKLSsJZGVmYXVsdDoKLSsJICBi cmVhazsKLSsJfQotKyAgICB9Ci0rCi0rICBpZiAobmFtZSAhPSBOVUxMKQotKyAgICBmcHV0c191 bmZpbHRlcmVkIChuYW1lLCBidWYpOwotK30KLSsKLSAvKiBSZXR1cm4gYSBuZXdseS1hbGxvY2F0 ZWQgc3RyaW5nIGZvcm1lZCBieSBjb25jYXRlbmF0aW5nIFBSRUZJWCBhbmQKLSAgICBTVUZGSVgg d2l0aCBhcHByb3ByaWF0ZSBzZXBhcmF0b3IuICBJZiBQUkVGSVggb3IgU1VGRklYIGlzIE5VTEwg b3IgZW1wdHksIHRoZW4KLSAgICBzaW1wbHkgY29weSB0aGUgU1VGRklYIG9yIFBSRUZJWCwgcmVz cGVjdGl2ZWx5LiAgSWYgT0JTIGlzIG5vbi1udWxsLAotQEAgLTkwNzEsMTcgKzk3ODcsMTExIEBA IHNpYmxpbmdfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSkKLSAgIHJldHVybiBkaWUtPnNpYmxp bmc7Ci0gfQotIAotLS8qIEdldCBsaW5rYWdlIG5hbWUgb2YgYSBkaWUsIHJldHVybiBOVUxMIGlm IG5vdCBmb3VuZC4gICovCi0rLyogQ29uc3RydWN0IGEgcGh5c25hbWUgZm9yIHRoZSBnaXZlbiBE SUUgaW4gQ1UuICovCi0gCi0gc3RhdGljIGNoYXIgKgotLWR3YXJmMl9saW5rYWdlX25hbWUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLStkd2FyZjJfcGh5c25h bWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSB7Ci0gICBz dHJ1Y3QgYXR0cmlidXRlICphdHRyOwotKyAgY2hhciAqbmFtZTsKLSAKLS0gIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9NSVBTX2xpbmthZ2VfbmFtZSwgY3UpOwotLSAgaWYgKGF0dHIg JiYgRFdfU1RSSU5HIChhdHRyKSkKLS0gICAgcmV0dXJuIERXX1NUUklORyAoYXR0cik7Ci0tICBy ZXR1cm4gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwotKyAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUs IGN1KTsKLSsKLSsgIC8qIFRoZXNlIGFyZSB0aGUgb25seSBsYW5ndWFnZXMgd2Uga25vdyBob3cg dG8gcXVhbGlmeSBuYW1lcyBpbi4gICovCi0rICBpZiAoY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdl X2NwbHVzCi0rICAgICAgJiYgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2phdmEpCi0rICAgIHJl dHVybiBuYW1lOwotKwotKyAgaWYgKGRpZV9uZWVkc19uYW1lc3BhY2UgKGRpZSwgY3UpKQotKyAg ICB7Ci0rICAgICAgbG9uZyBsZW5ndGg7Ci0rICAgICAgY2hhciAqcHJlZml4OwotKyAgICAgIHN0 cnVjdCB1aV9maWxlICpidWY7Ci0rCi0rICAgICAgcHJlZml4ID0gcGh5c25hbWVfcHJlZml4IChk aWUsIGN1KTsKLSsgICAgICBidWYgPSBtZW1fZmlsZW9wZW4gKCk7Ci0rICAgICAgaWYgKCpwcmVm aXggIT0gJ1wwJykKLSsJewotKwkgIGNoYXIgKnByZWZpeGVkX25hbWUgPSB0eXBlbmFtZV9jb25j YXQgKE5VTEwsIHByZWZpeCwgbmFtZSwgY3UpOwotKwkgIGZwdXRzX3VuZmlsdGVyZWQgKHByZWZp eGVkX25hbWUsIGJ1Zik7Ci0rCSAgeGZyZWUgKHByZWZpeGVkX25hbWUpOwotKwl9Ci0rICAgICAg ZWxzZQotKwlmcHV0c191bmZpbHRlcmVkIChuYW1lID8gbmFtZSA6ICIiLCBidWYpOwotKwotKyAg ICAgIC8qIEZvciBKYXZhIGFuZCBDKysgbWV0aG9kcywgYXBwZW5kIGZvcm1hbCBwYXJhbWV0ZXIg dHlwZQotKwkgaW5mb3JtYXRpb24uICovCi0rICAgICAgaWYgKChjdS0+bGFuZ3VhZ2UgPT0gbGFu Z3VhZ2VfY3BsdXMgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2phdmEpCi0rCSAgJiYgZGll LT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCi0rCXsKLSsJICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwotKwotKwkgIGNfdHlwZV9wcmludF9hcmdzICh0eXBl LCBidWYsIDAsIGN1LT5sYW5ndWFnZSk7Ci0rCi0rCSAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9qYXZhKQotKwkgICAgewotKwkgICAgICAvKiBGb3IgamF2YSwgd2UgbXVzdCBhcHBlbmQg dGhlIHJldHVybiB0eXBlIHRvIG1ldGhvZCBuYW1lcy4gKi8KLSsJICAgICAgaWYgKGRpZS0+dGFn ID09IERXX1RBR19zdWJwcm9ncmFtKQotKwkJamF2YV9wcmludF90eXBlIChUWVBFX1RBUkdFVF9U WVBFICh0eXBlKSwgIiIsIGJ1ZiwgMCwgMCk7Ci0rCSAgICB9Ci0rCSAgZWxzZSBpZiAoY3UtPmxh bmd1YWdlID09IGxhbmd1YWdlX2NwbHVzKQotKwkgICAgewotKwkgICAgICAvKiBjX3R5cGVfcHJp bnRfYXJncyBhZGRzIGFyZ3VtZW50IHR5cGVzLCBidXQgaXQgZG9lcwotKwkJIG5vdCBhZGQgYW55 IG5lY2Vzc2FyeSAiY29uc3QiLiAqLwotKwkgICAgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA+ IDAgJiYgVFlQRV9GSUVMRF9BUlRJRklDSUFMICh0eXBlLCAwKQotKwkJICAmJiBUWVBFX0NPTlNU IChUWVBFX1RBUkdFVF9UWVBFIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIDApKSkpCi0rCQlmcHV0 c191bmZpbHRlcmVkICgiIGNvbnN0IiwgYnVmKTsKLSsJICAgIH0KLSsJfQotKwotKyAgICAgIG5h bWUgPSB1aV9maWxlX29ic2F2ZXN0cmluZyAoYnVmLCAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2Jz dGFjaywKLSsJCQkJICAgJmxlbmd0aCk7Ci0rICAgICAgdWlfZmlsZV9kZWxldGUgKGJ1Zik7Ci0r Ci0rICAgICAgaWYgKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cykKLSsJewotKwkgIGNo YXIgKmNuYW1lCi0rCSAgICA9IGR3YXJmMl9jYW5vbmljYWxpemVfbmFtZSAobmFtZSwgY3UsCi0r CQkJCQkmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjayk7Ci0rCSAgaWYgKGNuYW1lICE9IE5V TEwpCi0rCSAgICBuYW1lID0gY25hbWU7Ci0rCX0KLSsgICAgfQotKwotKyAgcmV0dXJuIG5hbWU7 Ci0rfQotKwotKy8qIFJldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIC5zeW10YWIgbmFtZSBmb3Ig c3ltYm9scyBjb250YWluZWQgaW4gRm9ydHJhbgotKyAgIG1vZHVsZXMuICBSZXR1cm4gRFdBUkYy X05BTUUgb3RoZXJ3aXNlLiAgKi8KLSsKLStzdGF0aWMgY2hhciAqCi0rZm9ydHJhbl9tb2R1bGVf bGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up Ci0rewotKyAgY2hhciAqbmFtZTsKLSsKLSsgIGdkYl9hc3NlcnQgKGN1LT5sYW5ndWFnZSA9PSBs YW5ndWFnZV9mb3J0cmFuKTsKLSsKLSsgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7Ci0r Ci0rICBpZiAobmFtZSAmJiBkaWUtPnBhcmVudCAmJiBkaWUtPnBhcmVudC0+dGFnID09IERXX1RB R19tb2R1bGUpCi0rICAgIHsKLSsgICAgICBjaGFyICptb2R1bGVfbmFtZSA9IGR3YXJmMl9uYW1l IChkaWUtPnBhcmVudCwgY3UpOwotKwotKyAgICAgIGlmIChtb2R1bGVfbmFtZSkKLSsJewotKwkg IGNoYXIgKnJldHZhbDsKLSsKLSsJICAvKiBgX19tb2R1bGVuYW1lX01PRF92YXJpYWJsZW5hbWUw Jy4gICovCi0rCSAgcmV0dmFsID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxl X29ic3RhY2ssCi0rCQkJCSAgMiArIHN0cmxlbiAobW9kdWxlX25hbWUpICsgNSArIHN0cmxlbiAo bmFtZSkKLSsJCQkJICArIDEpOwotKwkgIHNwcmludGYgKHJldHZhbCwgIl9fJXNfTU9EXyVzIiwg bW9kdWxlX25hbWUsIG5hbWUpOwotKwotKwkgIHJldHVybiByZXR2YWw7Ci0rCX0KLSsgICAgfQot KwotKyAgcmV0dXJuIG5hbWU7Ci0gfQotIAotIC8qIEdldCBuYW1lIG9mIGEgZGllLCByZXR1cm4g TlVMTCBpZiBub3QgZm91bmQuICAqLwotQEAgLTExNDI5LDYgKzEyMjM5LDM0IEBAIGF0dHJfZm9y bV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKLSAgICAgfQotIH0KLSAKLSsv KiBDb252ZXJ0IERXX0JMT0NLIGludG8gc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uLiAgQVRU UiBtdXN0IGJlIGEgRFdfQkxPQ0sKLSsgICBhdHRyaWJ1dGUgdHlwZS4gICovCi0rCi0rc3RhdGlj IHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqCi0rZHdhcmYyX2F0dHJfdG9fbG9jZXhwcl9i YXRvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0rewot KyAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9uICpiYXRvbjsKLSsKLSsgIGdkYl9hc3NlcnQg KGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpOworKyAgZ2RiX2Fzc2VydCAoYXR0cl9mb3JtX2lz X2Jsb2NrIChhdHRyKSk7CiArCiArICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKCZjdS0+b2JqZmls ZS0+b2JqZmlsZV9vYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOwogKyAgYmF0b24tPnBlcl9jdSA9 IGN1LT5wZXJfY3U7CkBAIC01Mzc3LDIwICs1NzYyLDc2IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIx ODkgMTAwNjQ0CiArICByZXR1cm4gYmF0b247CiArfQogKworK3N0YXRpYyBzdHJ1Y3QgZHdhcmYy X2xvY2xpc3RfYmF0b24gKgorK2R3YXJmMl9hdHRyX3RvX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sKKysgIHN0cnVjdCBkd2Fy ZjJfbG9jbGlzdF9iYXRvbiAqYmF0b247CisrCisrICBpZiAoIShhdHRyX2Zvcm1faXNfc2VjdGlv bl9vZmZzZXQgKGF0dHIpCisrCS8qICIuZGVidWdfbG9jIiBtYXkgbm90IGV4aXN0IGF0IGFsbCwg b3IgdGhlIG9mZnNldCBtYXkgYmUgb3V0c2lkZQorKwkgICB0aGUgc2VjdGlvbi4gIElmIHNvLCBm YWxsIHRocm91Z2ggdG8gdGhlIGNvbXBsYWludCBpbiB0aGUKKysJICAgb3RoZXIgYnJhbmNoLiAg Ki8KKysJJiYgRFdfVU5TTkQgKGF0dHIpIDwgZHdhcmYyX3Blcl9vYmpmaWxlLT5sb2Muc2l6ZSkp CisrICAgIHJldHVybiBOVUxMOworKworKyAgYmF0b24gPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9i amZpbGUtPm9iamZpbGVfb2JzdGFjaywKKysJCQkgc2l6ZW9mIChzdHJ1Y3QgZHdhcmYyX2xvY2xp c3RfYmF0b24pKTsKKysgIGJhdG9uLT5wZXJfY3UgPSBjdS0+cGVyX2N1OworKyAgZ2RiX2Fzc2Vy dCAoYmF0b24tPnBlcl9jdSk7CisrCisrICAvKiBXZSBkb24ndCBrbm93IGhvdyBsb25nIHRoZSBs b2NhdGlvbiBsaXN0IGlzLCBidXQgbWFrZSBzdXJlIHdlCisrICAgICBkb24ndCBydW4gb2ZmIHRo ZSBlZGdlIG9mIHRoZSBzZWN0aW9uLiAgKi8KKysgIGJhdG9uLT5zaXplID0gZHdhcmYyX3Blcl9v YmpmaWxlLT5sb2Muc2l6ZSAtIERXX1VOU05EIChhdHRyKTsKKysgIGJhdG9uLT5kYXRhID0gZHdh cmYyX3Blcl9vYmpmaWxlLT5sb2MuYnVmZmVyICsgRFdfVU5TTkQgKGF0dHIpOworKyAgYmF0b24t PmJhc2VfYWRkcmVzcyA9IGN1LT5iYXNlX2FkZHJlc3M7CisrICBpZiAoY3UtPmJhc2Vfa25vd24g PT0gMCkKKysgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkgICAgICAgXygi TG9jYXRpb24gbGlzdCB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgQ1UgYmFzZSBhZGRyZXNz LiIpKTsKKysKKysgIHJldHVybiBiYXRvbjsKKyt9CisrCiArLyogU1lNIG1heSBnZXQgaXRzIFNZ TUJPTF9DTEFTUyBvdmVycmlkZW4gb24gaW52YWxpZCBBVFRSIGNvbnRlbnQuICAqLwogKwogIHN0 YXRpYyB2b2lkCiAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRl ICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgCQkJICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKLUBAIC0xMTQ1OCwzNSArMTIyOTYsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVk IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCisgeworLSAgaWYg KGF0dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikKKy0gICAgICAvKiAiLmRlYnVnX2xv YyIgbWF5IG5vdCBleGlzdCBhdCBhbGwsIG9yIHRoZSBvZmZzZXQgbWF5IGJlIG91dHNpZGUKKy0J IHRoZSBzZWN0aW9uLiAgSWYgc28sIGZhbGwgdGhyb3VnaCB0byB0aGUgY29tcGxhaW50IGluIHRo ZQorLQkgb3RoZXIgYnJhbmNoLiAgKi8KKy0gICAgICAmJiBEV19VTlNORCAoYXR0cikgPCBkd2Fy ZjJfcGVyX29iamZpbGUtPmxvYy5zaXplKQorLSAgICB7CistICAgICAgc3RydWN0IGR3YXJmMl9s b2NsaXN0X2JhdG9uICpiYXRvbjsKKy0KKy0gICAgICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKCZj dS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAorLQkJCSAgICAgc2l6ZW9mIChzdHJ1Y3QgZHdh cmYyX2xvY2xpc3RfYmF0b24pKTsKKy0gICAgICBiYXRvbi0+cGVyX2N1ID0gY3UtPnBlcl9jdTsK Ky0gICAgICBnZGJfYXNzZXJ0IChiYXRvbi0+cGVyX2N1KTsKKy0KKy0gICAgICAvKiBXZSBkb24n dCBrbm93IGhvdyBsb25nIHRoZSBsb2NhdGlvbiBsaXN0IGlzLCBidXQgbWFrZSBzdXJlIHdlCist CSBkb24ndCBydW4gb2ZmIHRoZSBlZGdlIG9mIHRoZSBzZWN0aW9uLiAgKi8KKy0gICAgICBiYXRv bi0+c2l6ZSA9IGR3YXJmMl9wZXJfb2JqZmlsZS0+bG9jLnNpemUgLSBEV19VTlNORCAoYXR0cik7 CistICAgICAgYmF0b24tPmRhdGEgPSBkd2FyZjJfcGVyX29iamZpbGUtPmxvYy5idWZmZXIgKyBE V19VTlNORCAoYXR0cik7CistICAgICAgYmF0b24tPmJhc2VfYWRkcmVzcyA9IGN1LT5iYXNlX2Fk ZHJlc3M7CistICAgICAgaWYgKGN1LT5iYXNlX2tub3duID09IDApCistCWNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywKKy0JCSAgIF8oIkxvY2F0aW9uIGxpc3QgdXNlZCB3aXRob3V0IHNw ZWNpZnlpbmcgdGhlIENVIGJhc2UgYWRkcmVzcy4iKSk7CisrICBzdHJ1Y3QgZHdhcmYyX2xvY2xp c3RfYmF0b24gKmxvY2xpc3RfYmF0b247CisgCisrICBsb2NsaXN0X2JhdG9uID0gZHdhcmYyX2F0 dHJfdG9fbG9jbGlzdF9iYXRvbiAoYXR0ciwgY3UpOworKyAgaWYgKGxvY2xpc3RfYmF0b24pCisr ICAgIHsKICAgICAgICBTWU1CT0xfQ09NUFVURURfT1BTIChzeW0pID0gJmR3YXJmMl9sb2NsaXN0 X2Z1bmNzOwotICAgICAgIFNZTUJPTF9MT0NBVElPTl9CQVRPTiAoc3ltKSA9IGJhdG9uOwotICAg ICB9CistICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gYmF0b247CisrICAgICAg U1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gbG9jbGlzdF9iYXRvbjsKKysgICAgfQogKyAg ZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICsgICAgewogKyAgICAgIFNZTUJP TF9DT01QVVRFRF9PUFMgKHN5bSkgPSAmZHdhcmYyX2xvY2V4cHJfZnVuY3M7CiArICAgICAgU1lN Qk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gZHdhcmYyX2F0dHJfdG9fbG9jZXhwcl9iYXRvbiAo YXR0ciwgY3UpOwotKyAgICB9CisgICAgIH0KICAgIGVsc2UKICAgICAgewogLSAgICAgIHN0cnVj dCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqYmF0b247CkBAIC01NDMzLDcgKzU4NzQsNyBAQCBpbmRl eCA4NmJmZWNiLi5kZGYyMTg5IDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTExNzc0LDYgKzEy NjAyLDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0 IHZvaWQgKml0ZW1fcmhzKQorQEAgLTExNzgxLDYgKzEyNTg2LDMxIEBAIG9mZnNldF9hbmRfdHlw ZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogICAgcmV0 dXJuIG9mc19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZzZXQ7CiAgfQogIApAQCAtNTQ2NSw3 ICs1OTA2LDcgQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICAvKiBTZXQgdGhlIHR5 cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAg ICB0YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLiAgKi8K ICAKLUBAIC0xMTc4Miw2ICsxMjYzNSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTc4 OSw2ICsxMjYxOSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3QgZHdhcmYy X29mZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAKQEAgLTU0NzQsNyArNTkxNSw3IEBAIGlu ZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgICAvKiBGb3IgQWRhIHR5cGVzLCBtYWtlIHN1 cmUgdGhhdCB0aGUgZ25hdC1zcGVjaWZpYyBkYXRhIGlzIGFsd2F5cwogICAgICAgaW5pdGlhbGl6 ZWQgKGlmIG5vdCBhbHJlYWR5IHNldCkuICBUaGVyZSBhcmUgYSBmZXcgdHlwZXMgd2hlcmUKICAg ICAgIHdlIHNob3VsZCBub3QgYmUgZG9pbmcgc28sIGJlY2F1c2UgdGhlIHR5cGUtc3BlY2lmaWMg YXJlYSBpcwotQEAgLTExOTM3LDIzICsxMjc5MiwxMyBAQCBzaG93X2R3YXJmMl9jbWQgKGNoYXIg KmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0xMTk0NCwyMyArMTI3NzYsMTMgQEAgc2hvd19kd2Fy ZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgICBjbWRfc2hvd19saXN0IChzaG93 X2R3YXJmMl9jbWRsaXN0LCBmcm9tX3R0eSwgIiIpOwogIH0KICAKQEAgLTU1MDIsNyArNTk0Myw3 IEBAIGluZGV4IDg2YmZlY2IuLmRkZjIxODkgMTAwNjQ0CiAgfQogIAogIC8qIG11bm1hcCBkZWJ1 ZyBzZWN0aW9ucyBmb3IgT0JKRklMRSwgaWYgbmVjZXNzYXJ5LiAgKi8KLUBAIC0xMTk2MiwxNSAr MTI4MDcsMTUgQEAgc3RhdGljIHZvaWQKK0BAIC0xMTk2OSwxNSArMTI3OTEsMTUgQEAgc3RhdGlj IHZvaWQKICBkd2FyZjJfcGVyX29iamZpbGVfZnJlZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSAqZGF0YSA9IGQ7CkBA IC01NTI3LDE2ICs1OTY4LDggQEAgaW5kZXggODZiZmVjYi4uZGRmMjE4OSAxMDA2NDQKICB9CiAg CiAgdm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAtMTE5NzgsNiArMTI4 MjMsNyBAQCB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKLSB2b2lkCi0gX2lu aXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpCi0gewotKyAgZGllX2xpc3QgPSBWRUNfYWxsb2Mg KGRpZV9pbmZvX3AsIDMyKTsKLSAgIGR3YXJmMl9vYmpmaWxlX2RhdGFfa2V5Ci0gICAgID0gcmVn aXN0ZXJfb2JqZmlsZV9kYXRhX3dpdGhfY2xlYW51cCAoTlVMTCwgZHdhcmYyX3Blcl9vYmpmaWxl X2ZyZWUpOwotIAogZGlmZiAtLWdpdCBhL2dkYi9lbGZyZWFkLmMgYi9nZGIvZWxmcmVhZC5jCi1p bmRleCA3OGU5MTYzLi5kYzhhNzUyIDEwMDY0NAoraW5kZXggOWEyYTFlMy4uNzJiMWQxMyAxMDA2 NDQKIC0tLSBhL2dkYi9lbGZyZWFkLmMKICsrKyBiL2dkYi9lbGZyZWFkLmMKIEBAIC0xNzksNyAr MTc5LDggQEAgcmVjb3JkX21pbmltYWxfc3ltYm9sIChjb25zdCBjaGFyICpuYW1lLCBpbnQgbmFt ZV9sZW4sIGludCBjb3B5X25hbWUsCkBAIC01NjE1LDcgKzYwNDgsNyBAQCBpbmRleCA3OGU5MTYz Li5kYzhhNzUyIDEwMDY0NAogICAgZGVmYXVsdF9zeW1maWxlX29mZnNldHMsCS8qIHN5bV9vZmZz ZXRzOiAgVHJhbnNsYXRlIGV4dC4gdG8gaW50LiByZWxvY2F0aW9uICovCiAgICBlbGZfc3ltZmls ZV9zZWdtZW50cywJCS8qIHN5bV9zZWdtZW50czogR2V0IHNlZ21lbnQgaW5mb3JtYXRpb24gZnJv bQogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCBhMDU1NmNmLi5h YmU2YTA2IDEwMDY0NAoraW5kZXggZTJjZWVhNy4uMWJjYjRhNyAxMDA2NDQKIC0tLSBhL2dkYi9l dmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKIEBAIC00Myw2ICs0Myw3IEBACkBAIC01NjMxLDEwICs2 MDY0LDE4IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAq KmFyZ190eXBlczsKICAgIGludCBzYXZlX3BvczE7CiArICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2No YWluOworICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOworICAgY2hhciAqZnVuY3Rp b25fbmFtZSA9IE5VTEw7CiAgCi0gICBwYyA9ICgqcG9zKSsrOwotICAgb3AgPSBleHAtPmVsdHNb cGNdLm9wY29kZTsKLUBAIC0xMzMyLDcgKzEzMzQsNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC03MzEsNiArNzMzLDcgQEAgZXZhbHVh dGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgICAgICAgcmV0 dXJuIHZhbHVlX2Zyb21fZGVjZmxvYXQgKGV4cC0+ZWx0c1twYyArIDFdLnR5cGUsCisgCQkJCSAg ZXhwLT5lbHRzW3BjICsgMl0uZGVjZmxvYXRjb25zdCk7CisgCisrICAgIGNhc2UgT1BfQURMX0ZV TkM6CisgICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgorICAgICAgICgqcG9zKSArPSAzOworICAgICAg IGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQorQEAgLTEzMzQsNyArMTMzNyw2IEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgIGFyZ3Zl YyA9IChzdHJ1Y3QgdmFsdWUgKiopIGFsbG9jYSAoc2l6ZW9mIChzdHJ1Y3QgdmFsdWUgKikgKiAo bmFyZ3MgKyAzKSk7CiAgICAgICAgaWYgKG9wID09IFNUUlVDVE9QX01FTUJFUiB8fCBvcCA9PSBT VFJVQ1RPUF9NUFRSKQogIAl7CkBAIC01NjQyLDcgKzYwODMsNyBAQCBpbmRleCBhMDU1NmNmLi5h YmU2YTA2IDEwMDY0NAogIAkgIC8qIEZpcnN0LCBldmFsdWF0ZSB0aGUgc3RydWN0dXJlIGludG8g YXJnMiAqLwogIAkgIHBjMiA9ICgqcG9zKSsrOwogIAotQEAgLTEzNTYsMjEgKzEzNTcsNDAgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAt MTM1OCwyMSArMTM2MCw0MCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBl ICpleHBlY3RfdHlwZSwKICAKICAJICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUs IGV4cCwgcG9zLCBub3NpZGUpOwogIApAQCAtNTY5NSw3ICs2MTM2LDcxIEBAIGluZGV4IGEwNTU2 Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCX0KICAgICAgICBlbHNlIGlmIChvcCA9PSBTVFJVQ1RPUF9T VFJVQ1QgfHwgb3AgPT0gU1RSVUNUT1BfUFRSKQogIAl7Ci1AQCAtMTQ5Niw4ICsxNTE2LDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAt MTQxMiw2ICsxNDMzLDE3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUg KmV4cGVjdF90eXBlLAorIAkgIC8qIE5vdywgc2F5IHdoaWNoIGFyZ3VtZW50IHRvIHN0YXJ0IGV2 YWx1YXRpbmcgZnJvbSAqLworIAkgIHRlbSA9IDI7CisgCX0KKysgICAgICBlbHNlIGlmIChvcCA9 PSBPUF9BRExfRlVOQykKKysgICAgICAgIHsKKysgICAgICAgICAgLyogU2F2ZSB0aGUgZnVuY3Rp b24gcG9zaXRpb24gYW5kIG1vdmUgcG9zIHNvIHRoYXQgdGhlIGFyZ3VtZW50cworKyAgICAgICAg ICAgICBjYW4gYmUgZXZhbHVhdGVkLiAqLworKyAgICAgICAgICBpbnQgZnVuY19uYW1lX2xlbjsK KysgICAgICAgICAgc2F2ZV9wb3MxID0gKnBvczsKKysgICAgICAgICAgdGVtID0gMTsKKysKKysg ICAgICAgICAgZnVuY19uYW1lX2xlbiA9IGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbc2F2ZV9w b3MxICsgM10ubG9uZ2NvbnN0KTsKKysgICAgICAgICAgKCpwb3MpICs9IDYgKyBCWVRFU19UT19F WFBfRUxFTSAoZnVuY19uYW1lX2xlbiArIDEpOworKyAgICAgICAgfQorICAgICAgIGVsc2UgaWYg KG9wID09IE9QX1NDT1BFCisgCSAgICAgICAmJiBvdmVybG9hZF9yZXNvbHV0aW9uCisgCSAgICAg ICAmJiAoZXhwLT5sYW5ndWFnZV9kZWZuLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1cykp CitAQCAtMTQzMyw5ICsxNDY1LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCisgCSAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RF X05BTUVTUEFDRSkKKyAJICAgIHsKKyAJICAgICAgZnVuY3Rpb24gPSBjcF9sb29rdXBfc3ltYm9s X25hbWVzcGFjZSAoVFlQRV9UQUdfTkFNRSAodHlwZSksCistCQkJCQkJICAgICBuYW1lLCBOVUxM LAorKwkJCQkJCSAgICAgbmFtZSwKKyAJCQkJCQkgICAgIGdldF9zZWxlY3RlZF9ibG9jayAoMCks CistCQkJCQkJICAgICBWQVJfRE9NQUlOLCAxKTsKKysJCQkJCQkgICAgIFZBUl9ET01BSU4pOwor IAkgICAgICBpZiAoZnVuY3Rpb24gPT0gTlVMTCkKKyAJCWVycm9yIChfKCJObyBzeW1ib2wgXCIl c1wiIGluIG5hbWVzcGFjZSBcIiVzXCIuIiksIAorIAkJICAgICAgIG5hbWUsIFRZUEVfVEFHX05B TUUgKHR5cGUpKTsKK0BAIC0xNDg0LDYgKzE1MTYsMzMgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCisgICAgICAgLyogc2lnbmFsIGVuZCBvZiBh cmdsaXN0ICovCisgICAgICAgYXJndmVjW3RlbV0gPSAwOworIAorKyAgICAgIGlmIChvcCA9PSBP UF9BRExfRlVOQykKKysgICAgICAgIHsKKysgICAgICAgICAgc3RydWN0IHN5bWJvbCAqc3ltcDsK KysgICAgICAgICAgY2hhciAqZnVuY19uYW1lOworKyAgICAgICAgICBpbnQgIG5hbWVfbGVuOwor KyAgICAgICAgICBpbnQgc3RyaW5nX3BjID0gc2F2ZV9wb3MxICsgMzsKKysKKysgICAgICAgICAg LyogRXh0cmFjdCB0aGUgZnVuY3Rpb24gbmFtZS4gICovCisrICAgICAgICAgIG5hbWVfbGVuID0g bG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1tzdHJpbmdfcGNdLmxvbmdjb25zdCk7CisrICAgICAg ICAgIGZ1bmNfbmFtZSA9IChjaGFyICopIGFsbG9jYSAobmFtZV9sZW4gKyAxKTsKKysgICAgICAg ICAgc3RyY3B5IChmdW5jX25hbWUsICZleHAtPmVsdHNbc3RyaW5nX3BjICsgMV0uc3RyaW5nKTsK KysKKysgICAgICAgICAgLyogUHJlcGFyZSBsaXN0IG9mIGFyZ3VtZW50IHR5cGVzIGZvciBvdmVy bG9hZCByZXNvbHV0aW9uICovCisrICAgICAgICAgIGFyZ190eXBlcyA9IChzdHJ1Y3QgdHlwZSAq KikgYWxsb2NhIChuYXJncyAqIChzaXplb2YgKHN0cnVjdCB0eXBlICopKSk7CisrICAgICAgICAg IGZvciAoaXggPSAxOyBpeCA8PSBuYXJnczsgaXgrKykKKysgICAgICAgICAgICBhcmdfdHlwZXNb aXggLSAxXSA9IHZhbHVlX3R5cGUgKGFyZ3ZlY1tpeF0pOworKworKyAgICAgICAgICBmaW5kX292 ZXJsb2FkX21hdGNoIChhcmdfdHlwZXMsIG5hcmdzLCBmdW5jX25hbWUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDAgLyogbm90IG1ldGhvZCAqLyAsIDAgLyogc3RyaWN0IG1hdGNo ICovICwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCAvKiBwYXNz IE5VTEwgc3ltYm9sIHNpbmNlIHN5bWJvbCBpcyB1bmtub3duICovICwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgJnN5bXAsIE5VTEwpOworKworKyAgICAgICAgICAvKiBO b3cgZml4IHRoZSBleHByZXNzaW9uIGJlaW5nIGV2YWx1YXRlZCAqLworKyAgICAgICAgICBleHAt PmVsdHNbc2F2ZV9wb3MxICsgMl0uc3ltYm9sID0gc3ltcDsKKysgICAgICAgICAgYXJndmVjWzBd ID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgJnNhdmVfcG9zMSwgbm9zaWRl KTsKKysgICAgICAgIH0KKysKKyAgICAgICBpZiAob3AgPT0gU1RSVUNUT1BfU1RSVUNUIHx8IG9w ID09IFNUUlVDVE9QX1BUUgorIAkgIHx8IChvcCA9PSBPUF9TQ09QRSAmJiBmdW5jdGlvbl9uYW1l ICE9IE5VTEwpKQorIAl7CitAQCAtMTU1Miw4ICsxNjExLDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCX0KICAgICAgICBlbHNlIGlmIChv cCA9PSBTVFJVQ1RPUF9NRU1CRVIgfHwgb3AgPT0gU1RSVUNUT1BfTVBUUikKICAJewpAQCAtNTcw Myw5ICs2MjA4LDkgQEAgaW5kZXggYTA1NTZjZi4uYWJlNmEwNiAxMDA2NDQKIC0JICBhcmd2ZWNb MF0gPSBhcmcxOwogKwkgIC8qIFBvaW50ZXIgdG8gbWVtYmVyLiAgYXJndmVjIGlzIGFscmVhZHkg c2V0IHVwLiAgKi8KICAJfQotICAgICAgIGVsc2UgaWYgKG9wID09IE9QX1ZBUl9WQUxVRSkKKyAg ICAgICBlbHNlIGlmIChvcCA9PSBPUF9WQVJfVkFMVUUgfHwgKG9wID09IE9QX1NDT1BFICYmIGZ1 bmN0aW9uICE9IE5VTEwpKQogIAl7Ci1AQCAtMTU4OCw2ICsxNjA3LDggQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTY1Myw2ICsxNzEx LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUs CiAgCiAgICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUgd2UgYXJlIGRlYWxp bmcgd2l0aC4gICovCiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKTsKQEAgLTU3MTQsNyArNjIxOSw3IEBAIGluZGV4IGEwNTU2Y2YuLmFi ZTZhMDYgMTAwNjQ0CiAgICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFy ZzEpKTsKICAgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKLUBAIC0xNjA4LDYgKzE2 MjksNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlw ZSwKK0BAIC0xNjczLDYgKzE3MzMsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVj dCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAgICAgY29kZSA9IFRZUEVfQ09ERSAodHlwZSk7CiAg CSAgICB9CiAgCX0gCkBAIC01NzIyLDcgKzYyMjcsNyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2 IDEwMDY0NAogIAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJewotQEAgLTE3NjksNiArMTc5MSwy NyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK K0BAIC0xODM0LDYgKzE4OTUsMjYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgeGZyZWUgKGV4cGVjdF90eXBlKTsKICAgICAgICBy ZXR1cm4gYXJnMTsKICAKQEAgLTU3MzIsNyArNjIzNyw2IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZh MDYgMTAwNjQ0CiArCXN0cnVjdCBzeW1ib2wgKnN5bTsKICsJc3RydWN0IHR5cGUgKiphcmdfdHlw ZXM7CiArCSgqcG9zKSArPSAzOwotKwlwcmludGYgKCJUWVBFX0lOU1RBTkNFX0xPT0tVUFxuIik7 CiArCWFyZ190eXBlcyA9IChzdHJ1Y3QgdHlwZSAqKikgYWxsb2NhIChUWVBFX05GSUVMRFMgKGV4 cGVjdF90eXBlKQogKwkJCQkJICAgICAqIHNpemVvZiAoc3RydWN0IHR5cGUgKikpOwogKwlmb3Ig KGkgPSAwOyBpIDwgVFlQRV9ORklFTERTIChleHBlY3RfdHlwZSk7ICsraSkKQEAgLTU3NTAsNyAr NjI1NCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgICAgIGNhc2UgQklOT1Bf Q09OQ0FUOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhw LCBwb3MsIG5vc2lkZSk7CiAgICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJj aW9uIChleHAsIHBvcywgbm9zaWRlKTsKLUBAIC0yMDQwLDEzICsyMDgzLDE5IEBAIGV2YWx1YXRl X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIxMDUsMTMg KzIxODYsMTkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0 X3R5cGUsCiAgICAgICAgewogIAlpbnQgc3Vic2NyaXB0X2FycmF5W01BWF9GT1JUUkFOX0RJTVNd OwogIAlpbnQgYXJyYXlfc2l6ZV9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsKQEAgLTU3NzAsNyAr NjI3NCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCXRtcF90eXBlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogIAluZGltZW5zaW9ucyA9IGNhbGNfZjc3 X2FycmF5X2RpbXMgKHR5cGUpOwogIAotQEAgLTIwNzYsNiArMjEyNSw5IEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIxNDEsNiArMjIy OCw5IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBl LAogIAkgICAgdXBwZXIgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHRtcF90eXBlKTsKICAJICAgIGxv d2VyID0gZjc3X2dldF9sb3dlcmJvdW5kICh0bXBfdHlwZSk7CiAgCkBAIC01NzgwLDcgKzYyODQs NyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2IDEwMDY0NAogIAkgICAgYXJyYXlfc2l6ZV9hcnJh eVtuYXJncyAtIGkgLSAxXSA9IHVwcGVyIC0gbG93ZXIgKyAxOwogIAogIAkgICAgLyogWmVyby1u b3JtYWxpemUgc3Vic2NyaXB0cyBzbyB0aGF0IG9mZnNldHRpbmcgd2lsbCB3b3JrLiAqLwotQEAg LTIwOTQsMTMgKzIxNDYsMjUgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlw ZSAqZXhwZWN0X3R5cGUsCitAQCAtMjE1OSwxMyArMjI0OSwyNSBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAgICAgdG1wX3R5cGUgPSBj aGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSkpOwogIAkgIH0KICAKQEAg LTU4MTAsNyArNjMxNCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCiAgCS8q IExldCB1cyBub3cgcGxheSBhIGRpcnR5IHRyaWNrOiB3ZSB3aWxsIHRha2UgYXJnMSAKICAJICAg d2hpY2ggaXMgYSB2YWx1ZSBub2RlIHBvaW50aW5nIHRvIHRoZSB0b3Btb3N0IGxldmVsCi1AQCAt MjExMCw3ICsyMTc0LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAq ZXhwZWN0X3R5cGUsCitAQCAtMjE3NSw3ICsyMjc3LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5k YXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgIHJldHVybnMgdGhlIGNvcnJlY3Qg dHlwZSB2YWx1ZSAqLwogIAogIAlkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChhcmcxLCB0bXBf dHlwZSk7CkBAIC01ODE5LDcgKzYzMjMsNyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2IDEwMDY0 NAogICAgICAgIH0KICAKICAgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoKLUBAIC0yMzQ0LDE0 ICsyNDA4LDIyIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAorQEAgLTI0MDksMTQgKzI1MTEsMjIgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgaWYgKGV4cGVjdF90eXBlICYmIFRZ UEVfQ09ERSAoZXhwZWN0X3R5cGUpID09IFRZUEVfQ09ERV9QVFIpCiAgCWV4cGVjdF90eXBlID0g VFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAoZXhwZWN0X3R5cGUpKTsKICAgICAgICBh cmcxID0gZXZhbHVhdGVfc3ViZXhwIChleHBlY3RfdHlwZSwgZXhwLCBwb3MsIG5vc2lkZSk7CkBA IC01ODQ0LDcgKzYzNDgsNyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2IDEwMDY0NAogICAgICAg IGVsc2UgaWYgKG5vc2lkZSA9PSBFVkFMX0FWT0lEX1NJREVfRUZGRUNUUykKICAJewogIAkgIHR5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7Ci1AQCAtMjM2MCwxMiArMjQz MiwxOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlw ZSwKK0BAIC0yNDI1LDEyICsyNTM1LDE4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3Ry dWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgIC8qIEluIEMgeW91IGNhbiBkZXJlZmVyZW5jZSBh biBhcnJheSB0byBnZXQgdGhlIDFzdCBlbHQuICAqLwogIAkgICAgICB8fCBUWVBFX0NPREUgKHR5 cGUpID09IFRZUEVfQ09ERV9BUlJBWQogIAkgICAgKQpAQCAtNTg2OCw3ICs2MzcyLDcgQEAgaW5k ZXggYTA1NTZjZi4uYWJlNmEwNiAxMDA2NDQKICAJICBlbHNlCiAgCSAgICBlcnJvciAoXygiQXR0 ZW1wdCB0byB0YWtlIGNvbnRlbnRzIG9mIGEgbm9uLXBvaW50ZXIgdmFsdWUuIikpOwogIAl9Ci1A QCAtMjM3NSw5ICsyNDUzLDE0IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmV4cGVjdF90eXBlLAorQEAgLTI0NDAsOSArMjU1NiwxNCBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJIGRvLiAgImxvbmcgbG9uZyIg dmFyaWFibGVzIGFyZSByYXJlIGVub3VnaCB0aGF0CiAgCSBCVUlMVElOX1RZUEVfTE9OR0VTVCB3 b3VsZCBzZWVtIHRvIGJlIGEgbWlzdGFrZS4gICovCiAgICAgICAgaWYgKFRZUEVfQ09ERSAodHlw ZSkgPT0gVFlQRV9DT0RFX0lOVCkKQEAgLTU4ODYsNyArNjM5MCw3IEBAIGluZGV4IGEwNTU2Y2Yu LmFiZTZhMDYgMTAwNjQ0CiAgCiAgICAgIGNhc2UgVU5PUF9BRERSOgogICAgICAgIC8qIEMrKzog Y2hlY2sgZm9yIGFuZCBoYW5kbGUgcG9pbnRlciB0byBtZW1iZXJzLiAgKi8KLUBAIC0yNzEyLDcg KzI3OTUsNyBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKK0BAIC0yNzc3LDcgKzI4OTgsNyBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2Vy Y2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICB7CiAgICBlbnVtIGV4cF9vcGNvZGUgb3A7 CiAgICBpbnQgcGM7CkBAIC01ODk1LDcgKzYzOTksNyBAQCBpbmRleCBhMDU1NmNmLi5hYmU2YTA2 IDEwMDY0NAogICAgc3RydWN0IHN5bWJvbCAqdmFyOwogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAg Ci1AQCAtMjcyMywxMiArMjgwNiwxNyBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC0yNzg4LDEyICsyOTA5LDE3IEBAIGV2YWx1YXRl X3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogICAgICB7CiAg ICAgIGNhc2UgT1BfVkFSX1ZBTFVFOgogICAgICAgIHZhciA9IGV4cC0+ZWx0c1twYyArIDJdLnN5 bWJvbDsKQEAgLTU5MTQsNyArNjQxOCw3IEBAIGluZGV4IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0 CiAgCSAgcmV0dXJuIHZhbHVlX2Nhc3QgKGxvb2t1cF9wb2ludGVyX3R5cGUgKFRZUEVfVEFSR0VU X1RZUEUgKHR5cGUpKSwKICAJCQkgICAgIHZhbCk7CiAgCX0KLUBAIC0yNzgwLDkgKzI4NjgsMTMg QEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGlu dCAqcG9zKQorQEAgLTI4NDUsOSArMjk3MSwxMyBAQCBldmFsdWF0ZV9zdWJleHBfZm9yX3NpemVv ZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MpCiAgCiAgICAgIGNhc2UgT1BfVkFS X1ZBTFVFOgogICAgICAgICgqcG9zKSArPSA0OwpAQCAtNTkzMSw4ICs2NDM1LDIxIEBAIGluZGV4 IGEwNTU2Y2YuLmFiZTZhMDYgMTAwNjQ0CiAgCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdmFsID0g ZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBFVkFMX0FWT0lEX1NJREVfRUZG RUNUUyk7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQuYworaW5k ZXggZTM3ODgzMS4uNDVkZWZmZSAxMDA2NDQKKy0tLSBhL2dkYi9leHBwcmludC5jCisrKysgYi9n ZGIvZXhwcHJpbnQuYworQEAgLTgxNiw2ICs4MTYsOCBAQCBvcF9uYW1lX3N0YW5kYXJkIChlbnVt IGV4cF9vcGNvZGUgb3Bjb2RlKQorICAgICAgIHJldHVybiAiT1BfVFlQRSI7CisgICAgIGNhc2Ug T1BfTEFCRUxFRDoKKyAgICAgICByZXR1cm4gIk9QX0xBQkVMRUQiOworKyAgICBjYXNlIE9QX0FE TF9GVU5DOgorKyAgICAgIHJldHVybiAiT1BfQURMX0ZVTkMiOworICAgICB9CisgfQorIAogZGlm ZiAtLWdpdCBhL2dkYi9leHByZXNzaW9uLmggYi9nZGIvZXhwcmVzc2lvbi5oCi1pbmRleCBjYTIx NmNmLi4yMTk1ZmVmIDEwMDY0NAoraW5kZXggY2EyMTZjZi4uNmJlMGIxZSAxMDA2NDQKIC0tLSBh L2dkYi9leHByZXNzaW9uLmgKICsrKyBiL2dkYi9leHByZXNzaW9uLmgKIEBAIC05NSw2ICs5NSwx MSBAQCBlbnVtIGV4cF9vcGNvZGUKQEAgLTU5NDcsNyArNjQ2NCwxOCBAQCBpbmRleCBjYTIxNmNm Li4yMTk1ZmVmIDEwMDY0NAogICAgICAvKiBlbmQgb2YgQysrLiAgKi8KICAKICAgICAgLyogRm9y IE1vZHVsYS0yIGludGVnZXIgZGl2aXNpb24gRElWICovCi1AQCAtNDUxLDQgKzQ1Niw1IEBAIGV4 dGVybiBjaGFyICpvcF9zdHJpbmcgKGVudW0gZXhwX29wY29kZSk7CitAQCAtMzQ3LDYgKzM1Miwx MCBAQCBlbnVtIGV4cF9vcGNvZGUKKyAgICAgICAgVGhlbiBjb21lcyBhbm90aGVyIE9QX0RFQ0ZM T0FULiAgKi8KKyAgICAgT1BfREVDRkxPQVQsCisgCisrICAgIC8qIE9QX0FETF9GVU5DIHNwZWNp ZmllcyB0aGF0IHRoZSBhcmd1bWVudCBpcyB0byBiZSBsb29rZWQgdXAgaW4gYW4KKysgICAgICAg QXJndW1lbnQgRGVwZW5kZW50IG1hbm5lciAoS29lbmlnIGxvb2t1cCkgKi8KKysgICAgT1BfQURM X0ZVTkMsCisrCisgICAgICAvKiBGaXJzdCBleHRlbnNpb24gb3BlcmF0b3IuICBJbmRpdmlkdWFs IGxhbmd1YWdlIG1vZHVsZXMgZGVmaW5lCisgCWV4dHJhIG9wZXJhdG9ycyBpbiAqLmluYyBpbmNs dWRlIGZpbGVzIGJlbG93IGFsd2F5cyBzdGFydGluZyB3aXRoCisgCW51bWJlcmluZyBhdCBPUF9F WFRFTkRFRDA6CitAQCAtNDUxLDQgKzQ2MCw1IEBAIGV4dGVybiBjaGFyICpvcF9zdHJpbmcgKGVu dW0gZXhwX29wY29kZSk7CiAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0 IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKiwgY2hhciAqKTsKICBleHRlcm4gdm9pZCBk dW1wX3ByZWZpeF9leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmls ZSAqKTsKICAKQEAgLTY3NDksNyArNzI3Nyw3IEBAIGluZGV4IGNkMjRlYWYuLjExOWFmN2QgMTAw NjQ0CiAgICAgb25jZSBmb3IgZWFjaCBrbm93biB0aHJlYWQuICAqLwogIHR5cGVkZWYgaW50ICgq dGhyZWFkX2NhbGxiYWNrX2Z1bmMpIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiwgdm9pZCAqKTsKIGRp ZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCi1pbmRleCA0Njg0NmM0 Li5iZjZlODkxIDEwMDY0NAoraW5kZXggNDY4NDZjNC4uOTViY2NhNCAxMDA2NDQKIC0tLSBhL2dk Yi9nZGJ0eXBlcy5jCiArKysgYi9nZGIvZ2RidHlwZXMuYwogQEAgLTM5LDYgKzM5LDkgQEAKQEAg LTY4NzgsOCArNzQwNiw4IEBAIGluZGV4IDQ2ODQ2YzQuLmJmNmU4OTEgMTAwNjQ0CiArICAvKiBE V0FSRiBibG9ja3MgbWF5IGRlcGVuZCBvbiBydW50aW1lIGluZm9ybWF0aW9uIGxpa2UKICsgICAg IERXX09QX1BVU0hfT0JKRUNUX0FERFJFU1Mgbm90IGJlaW5nIGF2YWlsYWJsZSBkdXJpbmcgdGhl CiArICAgICBDUkVBVEVfQVJSQVlfVFlQRSB0aW1lLiAgKi8KLSsgIGlmIChUWVBFX0xPV19CT1VO RF9JU19EV0FSRl9CTE9DSyAocmFuZ2VfdHlwZSkKLSsgICAgICB8fCBUWVBFX0hJR0hfQk9VTkRf SVNfRFdBUkZfQkxPQ0sgKHJhbmdlX3R5cGUpCisrICBpZiAoVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+bG93LmtpbmQgIT0gUkFOR0VfQk9VTkRfS0lORF9DT05TVEFOVAorKyAgICAgIHx8 IFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2gua2luZCAhPSBSQU5HRV9CT1VORF9L SU5EX0NPTlNUQU5UCiArICAgICAgfHwgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90 eXBlKSAKICsgICAgICB8fCBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChyYW5nZV90eXBlKSAK ICsgICAgICB8fCBnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5kLCAm aGlnaF9ib3VuZCkgPCAwKQpAQCAtNzIxMSw3ICs3NzM5LDcgQEAgaW5kZXggNDY4NDZjNC4uYmY2 ZTg5MSAxMDA2NDQKICAgIGlmIChUWVBFX05BTUUgKHR5cGUpKQogICAgICBUWVBFX05BTUUgKG5l d190eXBlKSA9IHhzdHJkdXAgKFRZUEVfTkFNRSAodHlwZSkpOwogICAgaWYgKFRZUEVfVEFHX05B TUUgKHR5cGUpKQotQEAgLTMwNTMsMTIgKzMyNDEsNDUgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzA1MywxMiArMzI0MSw0OCBAQCBjb3B5X3R5 cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIFRZUEVfSU5TVEFOQ0Vf RkxBR1MgKG5ld190eXBlKSA9IFRZUEVfSU5TVEFOQ0VfRkxBR1MgKHR5cGUpOwogICAgVFlQRV9M RU5HVEggKG5ld190eXBlKSA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAKQEAgLTcyNTIsMTIgKzc3 ODAsMTUgQEAgaW5kZXggNDY4NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAgICAgewogICAgICAgIGlu dCBpLCBuZmllbGRzOwogIAorKyAgICAgIC8qIFRZUEVfQ09ERV9SQU5HRSB1c2VzIFRZUEVfUkFO R0VfREFUQSBvZiB0aGUgdW5pb24gd2l0aCBUWVBFX0ZJRUxEUy4gICovCisrICAgICAgZ2RiX2Fz c2VydCAoVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfUkFOR0UpOworKwogICAgICAgIG5m aWVsZHMgPSBUWVBFX05GSUVMRFMgKHR5cGUpOwogKyAgICAgIFRZUEVfTkZJRUxEUyAobmV3X3R5 cGUpID0gbmZpZWxkczsKICAgICAgICBUWVBFX0ZJRUxEUyAobmV3X3R5cGUpID0gWENBTExPQyAo bmZpZWxkcywgc3RydWN0IGZpZWxkKTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmZpZWxkczsg aSsrKQogIAl7Ci1AQCAtMzA2Nyw4ICszMjg4LDggQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzA2Nyw4ICszMjkxLDggQEAgY29weV90eXBlX3Jl Y3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCSAgVFlQRV9GSUVMRF9CSVRTSVpF IChuZXdfdHlwZSwgaSkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkpOwogIAkgIGlmIChU WVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9UWVBFIChuZXdfdHlw ZSwgaSkKQEAgLTcyNjgsNyArNzc5OSw3IEBAIGluZGV4IDQ2ODQ2YzQuLmJmNmU4OTEgMTAwNjQ0 CiAgCSAgaWYgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSkpCiAgCSAgICBUWVBFX0ZJRUxEX05B TUUgKG5ld190eXBlLCBpKSA9IAogIAkgICAgICB4c3RyZHVwIChUWVBFX0ZJRUxEX05BTUUgKHR5 cGUsIGkpKTsKLUBAIC0zMDk1LDI0ICszMzE2LDc1IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMwOTUsMjQgKzMzMTksMTY2IEBAIGNvcHlfdHlw ZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAl9CiAgICAgIH0KICAKQEAg LTcyNzcsNTUgKzc4MDgsMTQ3IEBAIGluZGV4IDQ2ODQ2YzQuLmJmNmU4OTEgMTAwNjQ0CiArICBU WVBFX0RZTkFNSUMgKG5ld190eXBlKSA9IDA7CiArCiAgICAvKiBGb3IgcmFuZ2UgdHlwZXMsIGNv cHkgdGhlIGJvdW5kcyBpbmZvcm1hdGlvbi4gKi8KLSAgIGlmIChUWVBFX0NPREUgKHR5cGUpID09 IFRZUEVfQ09ERV9SQU5HRSkKKy0gIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9S QU5HRSkKKysgIGlmIChUWVBFX0NPREUgKG5ld190eXBlKSA9PSBUWVBFX0NPREVfUkFOR0UpCiAg ICAgIHsKICAgICAgICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKSA9IHhtYWxsb2MgKHNpemVv ZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwogICAgICAgICpUWVBFX1JBTkdFX0RBVEEgKG5ld190 eXBlKSA9ICpUWVBFX1JBTkdFX0RBVEEgKHR5cGUpOwogKwotKyAgICAgIGlmIChUWVBFX0xPV19C T1VORF9JU19EV0FSRl9CTE9DSyAodHlwZSkpCisrICAgICAgc3dpdGNoIChUWVBFX1JBTkdFX0RB VEEgKG5ld190eXBlKS0+bG93LmtpbmQpCiArCXsKKysJY2FzZSBSQU5HRV9CT1VORF9LSU5EX0NP TlNUQU5UOgorKwkgIGJyZWFrOworKwljYXNlIFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfQkxPQ0s6 CiArCSAgLyogYHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbicgaXMgdG9vIGJvdW5kIHRvIGl0 cyBvYmpmaWxlIHNvCi0rCSAgICAgaXQgaXMgZXhwZWN0ZWQgdG8gYmUgbWFkZSBjb25zdGFudCBi eSBDSEVDS19UWVBFREVGLiAgKi8KLSsJICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKQot KwkgICAgICB8fCBUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsJICAgIFRZUEVfUkFOR0Vf REFUQSAobmV3X3R5cGUpLT5sb3cudS5kd2FyZl9ibG9jayA9IE5VTEw7CisrCSAgICAgaXQgaXMg ZXhwZWN0ZWQgdG8gYmUgbWFkZSBjb25zdGFudCBieSBDSEVDS19UWVBFREVGLgorKwkgICAgIFRZ UEVfTk9UX0FMTE9DQVRFRCBhbmQgVFlQRV9OT1RfQVNTT0NJQVRFRCBhcmUgbm90IHZhbGlkIGZv ciBUWVBFLgorKwkgICAgICovCisrCSAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAobmV3X3R5cGUp IHx8IFRZUEVfTk9UX0FTU09DSUFURUQgKG5ld190eXBlKQorKwkgICAgICB8fCAhIGhhc19zdGFj a19mcmFtZXMgKCkpCisrCSAgICB7CisrCSAgICAgIC8qIFdlIHNob3VsZCBzZXQgMSBmb3IgRm9y dHJhbiBidXQgaG93IHRvIGZpbmQgdGhlIGxhbmd1YWdlPyAgKi8KKysJICAgICAgVFlQRV9MT1df Qk9VTkQgKG5ld190eXBlKSA9IDA7CisrCSAgICAgIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRCAo bmV3X3R5cGUpID0gMTsKKysJICAgIH0KICsJICBlbHNlCiArCSAgICBUWVBFX0xPV19CT1VORCAo bmV3X3R5cGUpID0gZHdhcmZfbG9jZXhwcl9iYXRvbl9ldmFsCiArCQkJCShUWVBFX1JBTkdFX0RB VEEgKG5ld190eXBlKS0+bG93LnUuZHdhcmZfYmxvY2spOwotKwkgIFRZUEVfTE9XX0JPVU5EX0lT X0RXQVJGX0JMT0NLIChuZXdfdHlwZSkgPSAwOworKwkgIFRZUEVfUkFOR0VfREFUQSAobmV3X3R5 cGUpLT5sb3cua2luZCA9IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQ7CisrCSAgYnJlYWs7Cisr CWNhc2UgUkFOR0VfQk9VTkRfS0lORF9EV0FSRl9MT0NMSVNUOgorKwkgIHsKKysJICAgIENPUkVf QUREUiBhZGRyOworKworKwkgICAgLyogYHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbicgaXMg dG9vIGJvdW5kIHRvIGl0cyBvYmpmaWxlIHNvCisrCSAgICAgICBpdCBpcyBleHBlY3RlZCB0byBi ZSBtYWRlIGNvbnN0YW50IGJ5IENIRUNLX1RZUEVERUYuCisrCSAgICAgICBUWVBFX05PVF9BTExP Q0FURUQgYW5kIFRZUEVfTk9UX0FTU09DSUFURUQgYXJlIG5vdCB2YWxpZCBmb3IgVFlQRS4KKysJ ICAgICAgICovCisrCSAgICBpZiAoISBUWVBFX05PVF9BTExPQ0FURUQgKG5ld190eXBlKQorKwkg ICAgICAgICYmICEgVFlQRV9OT1RfQVNTT0NJQVRFRCAobmV3X3R5cGUpICYmIGhhc19zdGFja19m cmFtZXMgKCkKKysJICAgICAgICAmJiBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwKKysJCSAgKFRZ UEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5sb3cudS5kd2FyZl9sb2NsaXN0LmxvY2xpc3QsCisr CQkgICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+bG93LnUuZHdhcmZfbG9jbGlzdC50eXBl LCAmYWRkcikpCisrCSAgICAgIFRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkgPSBhZGRyOworKwkg ICAgZWxzZQorKwkgICAgICB7CisrCQkvKiBXZSBzaG91bGQgc2V0IDEgZm9yIEZvcnRyYW4gYnV0 IGhvdyB0byBmaW5kIHRoZSBsYW5ndWFnZT8gICovCisrCQlUWVBFX0xPV19CT1VORCAobmV3X3R5 cGUpID0gMDsKKysJCVRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRCAobmV3X3R5cGUpID0gMTsKKysJ ICAgICAgfQorKwkgICAgVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSktPmxvdy5raW5kID0gUkFO R0VfQk9VTkRfS0lORF9DT05TVEFOVDsKKysJICB9CisrCSAgYnJlYWs7CiArCX0KICsKLSsgICAg ICBpZiAoVFlQRV9ISUdIX0JPVU5EX0lTX0RXQVJGX0JMT0NLICh0eXBlKSkKKysgICAgICBzd2l0 Y2ggKFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5oaWdoLmtpbmQpCiArCXsKKysJY2FzZSBS QU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOgorKwkgIGJyZWFrOworKwljYXNlIFJBTkdFX0JPVU5E X0tJTkRfRFdBUkZfQkxPQ0s6CiArCSAgLyogYHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbicg aXMgdG9vIGJvdW5kIHRvIGl0cyBvYmpmaWxlIHNvCi0rCSAgICAgaXQgaXMgZXhwZWN0ZWQgdG8g YmUgbWFkZSBjb25zdGFudCBieSBDSEVDS19UWVBFREVGLiAgKi8KLSsJICBpZiAoVFlQRV9OT1Rf QUxMT0NBVEVEICh0eXBlKQotKwkgICAgICB8fCBUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkK LSsJICAgIFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpLT5oaWdoLnUuZHdhcmZfYmxvY2sgPSBO VUxMOworKwkgICAgIGl0IGlzIGV4cGVjdGVkIHRvIGJlIG1hZGUgY29uc3RhbnQgYnkgQ0hFQ0tf VFlQRURFRi4KKysJICAgICBUWVBFX05PVF9BTExPQ0FURUQgYW5kIFRZUEVfTk9UX0FTU09DSUFU RUQgYXJlIG5vdCB2YWxpZCBmb3IgVFlQRS4KKysJICAgICAqLworKwkgIGlmIChUWVBFX05PVF9B TExPQ0FURUQgKG5ld190eXBlKSB8fCBUWVBFX05PVF9BU1NPQ0lBVEVEIChuZXdfdHlwZSkKKysJ ICAgICAgfHwgISBoYXNfc3RhY2tfZnJhbWVzICgpKQorKwkgICAgeworKwkgICAgICBUWVBFX0hJ R0hfQk9VTkQgKG5ld190eXBlKSA9IFRZUEVfTE9XX0JPVU5EIChuZXdfdHlwZSkgLSAxOworKwkg ICAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEIChuZXdfdHlwZSkgPSAxOworKwkgICAgfQog KwkgIGVsc2UKICsJICAgIFRZUEVfSElHSF9CT1VORCAobmV3X3R5cGUpID0gZHdhcmZfbG9jZXhw cl9iYXRvbl9ldmFsCiArCQkJICAgICAgIChUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+aGln aC51LmR3YXJmX2Jsb2NrKTsKLSsJICBUWVBFX0hJR0hfQk9VTkRfSVNfRFdBUkZfQkxPQ0sgKG5l d190eXBlKSA9IDA7CisrCSAgVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSktPmhpZ2gua2luZCA9 IFJBTkdFX0JPVU5EX0tJTkRfQ09OU1RBTlQ7CisrCSAgYnJlYWs7CisrCWNhc2UgUkFOR0VfQk9V TkRfS0lORF9EV0FSRl9MT0NMSVNUOgorKwkgIHsKKysJICAgIENPUkVfQUREUiBhZGRyOworKwor KwkgICAgLyogYHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbicgaXMgdG9vIGJvdW5kIHRvIGl0 cyBvYmpmaWxlIHNvCisrCSAgICAgICBpdCBpcyBleHBlY3RlZCB0byBiZSBtYWRlIGNvbnN0YW50 IGJ5IENIRUNLX1RZUEVERUYuCisrCSAgICAgICBUWVBFX05PVF9BTExPQ0FURUQgYW5kIFRZUEVf Tk9UX0FTU09DSUFURUQgYXJlIG5vdCB2YWxpZCBmb3IgVFlQRS4KKysJICAgICAgICovCisrCSAg ICBpZiAoISBUWVBFX05PVF9BTExPQ0FURUQgKG5ld190eXBlKQorKwkgICAgICAgICYmICEgVFlQ RV9OT1RfQVNTT0NJQVRFRCAobmV3X3R5cGUpICYmIGhhc19zdGFja19mcmFtZXMgKCkKKysJICAg ICAgICAmJiBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwKKysJCSAgICAgIChUWVBFX1JBTkdFX0RB VEEgKG5ld190eXBlKS0+aGlnaC51LmR3YXJmX2xvY2xpc3QubG9jbGlzdCwKKysJCSAgICAgICBU WVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+aGlnaC51LmR3YXJmX2xvY2xpc3QudHlwZSwKKysJ CSAgICAgICAmYWRkcikpCisrCSAgICAgIFRZUEVfSElHSF9CT1VORCAobmV3X3R5cGUpID0gYWRk cjsKKysJICAgIGVsc2UKKysJICAgICAgeworKwkJVFlQRV9ISUdIX0JPVU5EIChuZXdfdHlwZSkg PSBUWVBFX0xPV19CT1VORCAobmV3X3R5cGUpIC0gMTsKKysJCVRZUEVfSElHSF9CT1VORF9VTkRF RklORUQgKG5ld190eXBlKSA9IDE7CisrCSAgICAgIH0KKysJICAgIFRZUEVfUkFOR0VfREFUQSAo bmV3X3R5cGUpLT5oaWdoLmtpbmQgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOworKwkgIH0K KysJICBicmVhazsKICsJfQogKwotKyAgICAgIGlmIChUWVBFX0JZVEVfU1RSSURFX0lTX0RXQVJG X0JMT0NLICh0eXBlKSkKKysgICAgICBzd2l0Y2ggKFRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUp LT5ieXRlX3N0cmlkZS5raW5kKQogKwl7CisrCWNhc2UgUkFOR0VfQk9VTkRfS0lORF9DT05TVEFO VDoKKysJICBicmVhazsKKysJY2FzZSBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0JMT0NLOgogKwkg IC8qIGBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24nIGlzIHRvbyBib3VuZCB0byBpdHMgb2Jq ZmlsZSBzbwotKwkgICAgIGl0IGlzIGV4cGVjdGVkIHRvIGJlIG1hZGUgY29uc3RhbnQgYnkgQ0hF Q0tfVFlQRURFRi4gICovCi0rCSAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlwZSkKLSsJICAg ICAgfHwgVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rCSAgICBUWVBFX1JBTkdFX0RBVEEg KG5ld190eXBlKS0+Ynl0ZV9zdHJpZGUudS5kd2FyZl9ibG9jayA9IE5VTEw7CisrCSAgICAgaXQg aXMgZXhwZWN0ZWQgdG8gYmUgbWFkZSBjb25zdGFudCBieSBDSEVDS19UWVBFREVGLgorKwkgICAg IFRZUEVfTk9UX0FMTE9DQVRFRCBhbmQgVFlQRV9OT1RfQVNTT0NJQVRFRCBhcmUgbm90IHZhbGlk IGZvciBUWVBFLgorKwkgICAgICovCisrCSAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAobmV3X3R5 cGUpIHx8IFRZUEVfTk9UX0FTU09DSUFURUQgKG5ld190eXBlKQorKwkgICAgICB8fCAhIGhhc19z dGFja19mcmFtZXMgKCkpCisrCSAgICBUWVBFX0JZVEVfU1RSSURFIChuZXdfdHlwZSkgPSAwOwog KwkgIGVsc2UKICsJICAgIFRZUEVfQllURV9TVFJJREUgKG5ld190eXBlKSA9IGR3YXJmX2xvY2V4 cHJfYmF0b25fZXZhbAogKwkJCShUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJp ZGUudS5kd2FyZl9ibG9jayk7Ci0rCSAgVFlQRV9CWVRFX1NUUklERV9JU19EV0FSRl9CTE9DSyAo bmV3X3R5cGUpID0gMDsKKysJICBUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJp ZGUua2luZAorKwkgICAgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOworKwkgIGJyZWFrOwor KwljYXNlIFJBTkdFX0JPVU5EX0tJTkRfRFdBUkZfTE9DTElTVDoKKysJICB7CisrCSAgICBDT1JF X0FERFIgYWRkciA9IDA7CisrCisrCSAgICAvKiBgc3RydWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9u JyBpcyB0b28gYm91bmQgdG8gaXRzIG9iamZpbGUgc28KKysJICAgICAgIGl0IGlzIGV4cGVjdGVk IHRvIGJlIG1hZGUgY29uc3RhbnQgYnkgQ0hFQ0tfVFlQRURFRi4KKysJICAgICAgIFRZUEVfTk9U X0FMTE9DQVRFRCBhbmQgVFlQRV9OT1RfQVNTT0NJQVRFRCBhcmUgbm90IHZhbGlkIGZvciBUWVBF LgorKwkgICAgICAgKi8KKysJICAgIGlmICghIFRZUEVfTk9UX0FMTE9DQVRFRCAobmV3X3R5cGUp CisrCQkmJiAhIFRZUEVfTk9UX0FTU09DSUFURUQgKG5ld190eXBlKSAmJiBoYXNfc3RhY2tfZnJh bWVzICgpKQorKwkgICAgICBkd2FyZl9sb2NsaXN0X2JhdG9uX2V2YWwKKysJICAgICAgIChUWVBF X1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJpZGUudS5kd2FyZl9sb2NsaXN0LmxvY2xp c3QsCisrCQlUWVBFX1JBTkdFX0RBVEEgKG5ld190eXBlKS0+Ynl0ZV9zdHJpZGUudS5kd2FyZl9s b2NsaXN0LnR5cGUsCisrCQkmYWRkcik7CisrCSAgICBUWVBFX0JZVEVfU1RSSURFIChuZXdfdHlw ZSkgPSBhZGRyOworKwkgICAgVFlQRV9SQU5HRV9EQVRBIChuZXdfdHlwZSktPmJ5dGVfc3RyaWRl LmtpbmQKKysJICAgICAgPSBSQU5HRV9CT1VORF9LSU5EX0NPTlNUQU5UOworKwkgIH0KKysJICBi cmVhazsKICsJfQogKwogKyAgICAgIC8qIENvbnZlcnQgVFlQRV9SQU5HRV9ISUdIX0JPVU5EX0lT X0NPVU5UIGludG8gYSByZWd1bGFyIGJvdW5kLiAgKi8KLSsgICAgICBpZiAoVFlQRV9SQU5HRV9I SUdIX0JPVU5EX0lTX0NPVU5UICh0eXBlKSkKKysgICAgICBpZiAoVFlQRV9SQU5HRV9ISUdIX0JP VU5EX0lTX0NPVU5UIChuZXdfdHlwZSkpCiArCXsKLSsJICBUWVBFX0hJR0hfQk9VTkQgKG5ld190 eXBlKSA9IFRZUEVfTE9XX0JPVU5EICh0eXBlKQotKwkJCQkgICAgICAgKyBUWVBFX0hJR0hfQk9V TkQgKHR5cGUpIC0gMTsKKysJICBUWVBFX0hJR0hfQk9VTkQgKG5ld190eXBlKSA9IFRZUEVfTE9X X0JPVU5EIChuZXdfdHlwZSkKKysJCQkJICAgICAgICsgVFlQRV9ISUdIX0JPVU5EIChuZXdfdHlw ZSkgLSAxOwogKwkgIFRZUEVfUkFOR0VfSElHSF9CT1VORF9JU19DT1VOVCAobmV3X3R5cGUpID0g MDsKICsJfQogICAgICB9CkBAIC03MzUwLDcgKzc5NzMsNyBAQCBpbmRleCA0Njg0NmM0Li5iZjZl ODkxIDEwMDY0NAogICAgLyogTWF5YmUgY29weSB0aGUgdHlwZV9zcGVjaWZpYyBiaXRzLgogIAog ICAgICAgTk9URSBkcm93LzIwMDUtMTItMDk6IFdlIGRvIG5vdCBjb3B5IHRoZSBDKystc3BlY2lm aWMgYml0cyBsaWtlCi1AQCAtMzEzMCw2ICszNDAyLDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMxMzAsNiArMzQ5NiwxNyBAQCBjb3B5X3R5 cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIHJldHVybiBuZXdfdHlw ZTsKICB9CiAgCkBAIC03MzY4LDcgKzc5OTEsNyBAQCBpbmRleCA0Njg0NmM0Li5iZjZlODkxIDEw MDY0NAogIC8qIE1ha2UgYSBjb3B5IG9mIHRoZSBnaXZlbiBUWVBFLCBleGNlcHQgdGhhdCB0aGUg cG9pbnRlciAmIHJlZmVyZW5jZQogICAgIHR5cGVzIGFyZSBub3QgcHJlc2VydmVkLgogICAgIAot QEAgLTMxNTIsNiArMzQzNSwyMTEgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlw ZSkKK0BAIC0zMTUyLDYgKzM1MjksMjExIEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUg KnR5cGUpCiAgICByZXR1cm4gbmV3X3R5cGU7CiAgfQogIApAQCAtNzU4MCw3ICs4MjAzLDcgQEAg aW5kZXggNDY4NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRv IGluaXRpYWxpemUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHR5cGVzLiAgKi8KICAKLUBAIC0zNDc1 LDYgKzM5NjMsOCBAQCBnZGJ0eXBlc19wb3N0X2luaXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo KQorQEAgLTM0NzUsNiArNDA1Nyw4IEBAIGdkYnR5cGVzX3Bvc3RfaW5pdCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gpCiAgICAgID0gbG9va3VwX3BvaW50ZXJfdHlwZSAoYnVpbHRpbl90eXBlLT5i dWlsdGluX3ZvaWQpOwogICAgYnVpbHRpbl90eXBlLT5idWlsdGluX2Z1bmNfcHRyCiAgICAgID0g bG9va3VwX3BvaW50ZXJfdHlwZSAobG9va3VwX2Z1bmN0aW9uX3R5cGUgKGJ1aWx0aW5fdHlwZS0+ YnVpbHRpbl92b2lkKSk7CkBAIC03NTg5LDcgKzgyMTIsNyBAQCBpbmRleCA0Njg0NmM0Li5iZjZl ODkxIDEwMDY0NAogIAogICAgLyogVGhpcyB0eXBlIHJlcHJlc2VudHMgYSBHREIgaW50ZXJuYWwg ZnVuY3Rpb24uICAqLwogICAgYnVpbHRpbl90eXBlLT5pbnRlcm5hbF9mbgotQEAgLTM1ODgsNiAr NDA3OCwxMSBAQCBvYmpmaWxlX3R5cGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTM1 ODgsNiArNDE3MiwxMSBAQCBvYmpmaWxlX3R5cGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQog IAkJICI8dGV4dCB2YXJpYWJsZSwgbm8gZGVidWcgaW5mbz4iLCBvYmpmaWxlKTsKICAgIFRZUEVf VEFSR0VUX1RZUEUgKG9iamZpbGVfdHlwZS0+bm9kZWJ1Z190ZXh0X3N5bWJvbCkKICAgICAgPSBv YmpmaWxlX3R5cGUtPmJ1aWx0aW5faW50OwpAQCAtNzYwMSw3ICs4MjI0LDcgQEAgaW5kZXggNDY4 NDZjNC4uYmY2ZTg5MSAxMDA2NDQKICAgIG9iamZpbGVfdHlwZS0+bm9kZWJ1Z19kYXRhX3N5bWJv bAogICAgICA9IGluaXRfdHlwZSAoVFlQRV9DT0RFX0lOVCwKICAJCSBnZGJhcmNoX2ludF9iaXQg KGdkYmFyY2gpIC8gSE9TVF9DSEFSX0JJVCwgMCwKLUBAIC0zNjQyLDYgKzQxMzcsMTEgQEAgdm9p ZAorQEAgLTM2NDIsNiArNDIzMSwxMSBAQCB2b2lkCiAgX2luaXRpYWxpemVfZ2RidHlwZXMgKHZv aWQpCiAgewogICAgZ2RidHlwZXNfZGF0YSA9IGdkYmFyY2hfZGF0YV9yZWdpc3Rlcl9wb3N0X2lu aXQgKGdkYnR5cGVzX3Bvc3RfaW5pdCk7CkBAIC03NjE0LDcgKzgyMzcsNyBAQCBpbmRleCA0Njg0 NmM0Li5iZjZlODkxIDEwMDY0NAogIAogICAgYWRkX3NldHNob3dfemludGVnZXJfY21kICgib3Zl cmxvYWQiLCBub19jbGFzcywgJm92ZXJsb2FkX2RlYnVnLCBfKCJcCiBkaWZmIC0tZ2l0IGEvZ2Ri L2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAotaW5kZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2 NDQKK2luZGV4IDY0M2ZhMDMuLmVmZTU1MTIgMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuaAog KysrIGIvZ2RiL2dkYnR5cGVzLmgKIEBAIC0xMzgsNiArMTM4LDggQEAgZW51bSB0eXBlX2NvZGUK QEAgLTc3NzIsNyArODM5NSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgICAg ICAgfQogICAgICAgIGxvYzsKICAKLUBAIC01NDQsMTMgKzYxNSwyMiBAQCBzdHJ1Y3QgbWFpbl90 eXBlCitAQCAtNTQ0LDEzICs2MTUsMzQgQEAgc3RydWN0IG1haW5fdHlwZQogIAogICAgICBzdHJ1 Y3QgcmFuZ2VfYm91bmRzCiAgICAgIHsKQEAgLTc3ODAsMTEgKzg0MDMsMjMgQEAgaW5kZXggNjQz ZmEwMy4uNjM4MWRjZiAxMDA2NDQKICsJewogKwkgIHVuaW9uCiArCSAgICB7Ci0rCSAgICAgIHN0 cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqZHdhcmZfYmxvY2s7CiArCSAgICAgIExPTkdFU1Qg Y29uc3RhbnQ7CisrCSAgICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqZHdhcmZfYmxv Y2s7CisrCSAgICAgIHN0cnVjdAorKwkJeworKwkJICBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0 b24gKmxvY2xpc3Q7CisrCQkgIHN0cnVjdCB0eXBlICp0eXBlOworKwkJfQorKwkgICAgICBkd2Fy Zl9sb2NsaXN0OwogKwkgICAgfQogKwkgIHU7Ci0rCSAgdW5zaWduZWQgaXNfZHdhcmZfYmxvY2sg OiAxOworKwkgIGVudW0gcmFuZ2VfYm91bmRfa2luZAorKwkgICAgeworKwkgICAgICBSQU5HRV9C T1VORF9LSU5EX0NPTlNUQU5ULAorKwkgICAgICBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0JMT0NL LAorKwkgICAgICBSQU5HRV9CT1VORF9LSU5EX0RXQVJGX0xPQ0xJU1QKKysJICAgIH0KKysJICBr aW5kOwogKwl9CiAgICAgICAgLyogTG93IGJvdW5kIG9mIHJhbmdlLiAqLwogLQpAQCAtNzgwMCw3 ICs4NDM1LDcgQEAgaW5kZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQKICAKICAgICAgICAvKiBG bGFncyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHZhbHVlcyBvZiBsb3cgYW5kIGhpZ2ggYXJlCiAg ICAgICAgICAgdmFsaWQuICBXaGVuIHRydWUsIHRoZSByZXNwZWN0aXZlIHJhbmdlIHZhbHVlIGlz Ci1AQCAtNjAyLDYgKzY4Miw5IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC02MDIsNiArNjk0LDkg QEAgc3RydWN0IG1haW5fdHlwZQogICAgICAgICBzdXBwb3J0aW5nIG11bHRpcGxlIEFCSXMuICBS aWdodCBub3cgdGhpcyBpcyBvbmx5IGZldGNoZWQgZnJvbQogICAgICAgICB0aGUgRHdhcmYtMiBE V19BVF9jYWxsaW5nX2NvbnZlbnRpb24gYXR0cmlidXRlLiAgKi8KICAgICAgdW5zaWduZWQgY2Fs bGluZ19jb252ZW50aW9uOwpAQCAtNzgxMCw3ICs4NDQ1LDcgQEAgaW5kZXggNjQzZmEwMy4uNjM4 MWRjZiAxMDA2NDQKICAgIH0gdHlwZV9zcGVjaWZpYzsKICB9OwogIAotQEAgLTgzOCwxMyArOTIx LDYgQEAgc3RydWN0IGNwbHVzX3N0cnVjdF90eXBlCitAQCAtODM4LDEzICs5MzMsNiBAQCBzdHJ1 Y3QgY3BsdXNfc3RydWN0X3R5cGUKICAgICAgaW50IGlzX2R5bmFtaWMgOiAyOwogICAgfTsKICAK QEAgLTc4MjQsNyArODQ1OSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgLyog U3RydWN0IHVzZWQgZm9yIHJhbmtpbmcgYSBmdW5jdGlvbiBmb3Igb3ZlcmxvYWQgcmVzb2x1dGlv biAqLwogIHN0cnVjdCBiYWRuZXNzX3ZlY3RvcgogICAgewotQEAgLTg5OSw5ICs5NzUsOSBAQCBl eHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC04 OTksOSArOTg3LDkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0 IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX1BPSU5URVJfVFlQRSh0aGlzdHlwZSkgKHRoaXN0eXBl KS0+cG9pbnRlcl90eXBlCiAgI2RlZmluZSBUWVBFX1JFRkVSRU5DRV9UWVBFKHRoaXN0eXBlKSAo dGhpc3R5cGUpLT5yZWZlcmVuY2VfdHlwZQogICNkZWZpbmUgVFlQRV9DSEFJTih0aGlzdHlwZSkg KHRoaXN0eXBlKS0+Y2hhaW4KQEAgLTc4MzcsNyArODQ3Miw3IEBAIGluZGV4IDY0M2ZhMDMuLjYz ODFkY2YgMTAwNjQ0CiAgICAgY2FsbHMgY2hlY2tfdHlwZWRlZiwgVFlQRV9MRU5HVEggKFZBTFVF X1RZUEUgKFgpKSBpcyBzYWZlLiAgKi8KICAjZGVmaW5lIFRZUEVfTEVOR1RIKHRoaXN0eXBlKSAo dGhpc3R5cGUpLT5sZW5ndGgKICAvKiBOb3RlIHRoYXQgVFlQRV9DT0RFIGNhbiBiZSBUWVBFX0NP REVfVFlQRURFRiwgc28gaWYgeW91IHdhbnQgdGhlIHJlYWwKLUBAIC05MTAsMTUgKzk4NiwyNiBA QCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BA IC05MTAsMTEgKzk5OCwxNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChz dHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVfTkZJRUxEUyh0aGlzdHlwZSkgVFlQRV9NQUlO X1RZUEUodGhpc3R5cGUpLT5uZmllbGRzCiAgI2RlZmluZSBUWVBFX0ZJRUxEUyh0aGlzdHlwZSkg VFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT5mbGRzX2JuZHMuZmllbGRzCiAgI2RlZmluZSBUWVBF X1RFTVBMQVRFX0FSR1ModGhpc3R5cGUpIFRZUEVfQ1BMVVNfU1BFQ0lGSUModGhpc3R5cGUpLT50 ZW1wbGF0ZV9hcmdzCkBAIC03ODU2LDI2ICs4NDkxLDcgQEAgaW5kZXggNjQzZmEwMy4uNjM4MWRj ZiAxMDA2NDQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRChyYW5nZV90eXBlKSBc CiAgICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3dfdW5kZWZpbmVkCiAgI2RlZmlu ZSBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKHJhbmdlX3R5cGUpIFwKLSAgICBUWVBFX1JBTkdF X0RBVEEocmFuZ2VfdHlwZSktPmhpZ2hfdW5kZWZpbmVkCi0rI2RlZmluZSBUWVBFX0xPV19CT1VO RF9JU19EV0FSRl9CTE9DSyhyYW5nZV90eXBlKSBcCi0rICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdl X3R5cGUpLT5sb3cuaXNfZHdhcmZfYmxvY2sKLSsjZGVmaW5lIFRZUEVfSElHSF9CT1VORF9JU19E V0FSRl9CTE9DSyhyYW5nZV90eXBlKSBcCi0rICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUp LT5oaWdoLmlzX2R3YXJmX2Jsb2NrCi0rI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFX0lTX0RXQVJG X0JMT0NLKHJhbmdlX3R5cGUpIFwKLSsgICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmJ5 dGVfc3RyaWRlLmlzX2R3YXJmX2Jsb2NrCi0gCi0gLyogTW90by1zcGVjaWZpYyBzdHVmZiBmb3Ig Rk9SVFJBTiBhcnJheXMgKi8KLSAKLUBAIC05MjcsMTEgKzEwMTQsMjMgQEAgZXh0ZXJuIHZvaWQg YWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7Ci0gI2RlZmluZSBUWVBFX0FS UkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKLSAgICBUWVBFX0xPV19C T1VORF9VTkRFRklORUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCi0gCi0rI2RlZmluZSBU WVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lTX0RXQVJGX0JMT0NLKGFycmF5dHlwZSkgXAotKyAgIFRZ UEVfSElHSF9CT1VORF9JU19EV0FSRl9CTE9DSyhUWVBFX0lOREVYX1RZUEUoYXJyYXl0eXBlKSkK LSsjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfSVNfRFdBUkZfQkxPQ0soYXJyYXl0eXBl KSBcCi0rICAgVFlQRV9MT1dfQk9VTkRfSVNfRFdBUkZfQkxPQ0soVFlQRV9JTkRFWF9UWVBFKGFy cmF5dHlwZSkpCi0rCi0gI2RlZmluZSBUWVBFX0FSUkFZX1VQUEVSX0JPVU5EX1ZBTFVFKGFycmF5 dHlwZSkgXAorQEAgLTkzMSw3ICsxMDI0LDE0IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRf YXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOwogICAgIChUWVBFX0hJR0hfQk9VTkQoVFlQRV9JTkRF WF9UWVBFKChhcnJheXR5cGUpKSkpCiAgCiAgI2RlZmluZSBUWVBFX0FSUkFZX0xPV0VSX0JPVU5E X1ZBTFVFKGFycmF5dHlwZSkgXApAQCAtNzg5MSw3ICs4NTA3LDcgQEAgaW5kZXggNjQzZmEwMy4u NjM4MWRjZiAxMDA2NDQKICAKICAvKiBDKysgKi8KICAKLUBAIC05NTksNiArMTA1OCw3IEBAIGV4 dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAgLTk1 OSw2ICsxMDU5LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0 IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX0dOQVRfU1BFQ0lGSUModGhpc3R5cGUpIFRZUEVfTUFJ Tl9UWVBFKHRoaXN0eXBlKS0+dHlwZV9zcGVjaWZpYy5nbmF0X3N0dWZmCiAgI2RlZmluZSBUWVBF X0RFU0NSSVBUSVZFX1RZUEUodGhpc3R5cGUpIFRZUEVfR05BVF9TUEVDSUZJQyh0aGlzdHlwZSkt PmRlc2NyaXB0aXZlX3R5cGUKICAjZGVmaW5lIFRZUEVfQ0FMTElOR19DT05WRU5USU9OKHRoaXN0 eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPnR5cGVfc3BlY2lmaWMuY2FsbGluZ19jb252 ZW50aW9uCkBAIC03ODk5LDcgKzg1MTUsNyBAQCBpbmRleCA2NDNmYTAzLi42MzgxZGNmIDEwMDY0 NAogICNkZWZpbmUgVFlQRV9CQVNFQ0xBU1ModGhpc3R5cGUsaW5kZXgpIFRZUEVfRklFTERfVFlQ RSh0aGlzdHlwZSwgaW5kZXgpCiAgI2RlZmluZSBUWVBFX05fQkFTRUNMQVNTRVModGhpc3R5cGUp IFRZUEVfQ1BMVVNfU1BFQ0lGSUModGhpc3R5cGUpLT5uX2Jhc2VjbGFzc2VzCiAgI2RlZmluZSBU WVBFX0JBU0VDTEFTU19OQU1FKHRoaXN0eXBlLGluZGV4KSBUWVBFX0ZJRUxEX05BTUUodGhpc3R5 cGUsIGluZGV4KQotQEAgLTk3Nyw3ICsxMDc3LDYgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25h dF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7CitAQCAtOTc3LDcgKzEwNzgsNiBAQCBleHRlcm4g dm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIEZJ RUxEX0JJVFBPUyh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5iaXRwb3MpCiAgI2RlZmluZSBGSUVM RF9TVEFUSUNfUEhZU05BTUUodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c25hbWUpCiAgI2Rl ZmluZSBGSUVMRF9TVEFUSUNfUEhZU0FERFIodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c2Fk ZHIpCkBAIC03OTA3LDcgKzg1MjMsNyBAQCBpbmRleCA2NDNmYTAzLi42MzgxZGNmIDEwMDY0NAog ICNkZWZpbmUgU0VUX0ZJRUxEX0JJVFBPUyh0aGlzZmxkLCBiaXRwb3MpCQkJXAogICAgKEZJRUxE X0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJCVwKICAgICBGSUVM RF9CSVRQT1MgKHRoaXNmbGQpID0gKGJpdHBvcykpCi1AQCAtOTg3LDkgKzEwODYsNiBAQCBleHRl cm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKK0BAIC05ODcs OSArMTA4Nyw2IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0 eXBlICopOwogICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNBRERSKHRoaXNmbGQsIGFkZHIpCQkJXAog ICAgKEZJRUxEX0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkJ XAogICAgIEZJRUxEX1NUQVRJQ19QSFlTQUREUiAodGhpc2ZsZCkgPSAoYWRkcikpCkBAIC03OTE3 LDcgKzg1MzMsNyBAQCBpbmRleCA2NDNmYTAzLi42MzgxZGNmIDEwMDY0NAogICNkZWZpbmUgRklF TERfQVJUSUZJQ0lBTCh0aGlzZmxkKSAoKHRoaXNmbGQpLmFydGlmaWNpYWwpCiAgI2RlZmluZSBG SUVMRF9CSVRTSVpFKHRoaXNmbGQpICgodGhpc2ZsZCkuYml0c2l6ZSkKICAKLUBAIC0xMDAwLDcg KzEwOTYsNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlw ZSAqKTsKK0BAIC0xMDAwLDcgKzEwOTcsNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1 eF90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVfRklFTERfQklUUE9TKHRoaXN0 eXBlLCBuKSBGSUVMRF9CSVRQT1MgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5l IFRZUEVfRklFTERfU1RBVElDX1BIWVNOQU1FKHRoaXN0eXBlLCBuKSBGSUVMRF9TVEFUSUNfUEhZ U05BTUUgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfU1RB VElDX1BIWVNBRERSKHRoaXN0eXBlLCBuKSBGSUVMRF9TVEFUSUNfUEhZU0FERFIgKFRZUEVfRklF TEQgKHRoaXN0eXBlLCBuKSkKQEAgLTc5MjUsNyArODU0MSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYz ODFkY2YgMTAwNjQ0CiAgI2RlZmluZSBUWVBFX0ZJRUxEX0FSVElGSUNJQUwodGhpc3R5cGUsIG4p IEZJRUxEX0FSVElGSUNJQUwoVFlQRV9GSUVMRCh0aGlzdHlwZSxuKSkKICAjZGVmaW5lIFRZUEVf RklFTERfQklUU0laRSh0aGlzdHlwZSwgbikgRklFTERfQklUU0laRShUWVBFX0ZJRUxEKHRoaXN0 eXBlLG4pKQogICNkZWZpbmUgVFlQRV9GSUVMRF9QQUNLRUQodGhpc3R5cGUsIG4pIChGSUVMRF9C SVRTSVpFKFRZUEVfRklFTEQodGhpc3R5cGUsbikpIT0wKQotQEAgLTExMzksNiArMTIzNCwxMCBA QCBzdHJ1Y3QgYnVpbHRpbl90eXBlCitAQCAtMTEzOSw2ICsxMjM1LDEwIEBAIHN0cnVjdCBidWls dGluX3R5cGUKICAgICAgICgqKSAoKSBjYW4gc2VydmVyIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiBw b2ludGVyLiAgKi8KICAgIHN0cnVjdCB0eXBlICpidWlsdGluX2Z1bmNfcHRyOwogIApAQCAtNzkz Niw3ICs4NTUyLDcgQEAgaW5kZXggNjQzZmEwMy4uNjM4MWRjZiAxMDA2NDQKICAKICAgIC8qIFNw ZWNpYWwtcHVycG9zZSB0eXBlcy4gICovCiAgCi1AQCAtMTE3OSw2ICsxMjc4LDcgQEAgc3RydWN0 IG9iamZpbGVfdHlwZQorQEAgLTExNzksNiArMTI3OSw3IEBAIHN0cnVjdCBvYmpmaWxlX3R5cGUK ICAKICAgIC8qIFR5cGVzIHVzZWQgZm9yIHN5bWJvbHMgd2l0aCBubyBkZWJ1ZyBpbmZvcm1hdGlv bi4gICovCiAgICBzdHJ1Y3QgdHlwZSAqbm9kZWJ1Z190ZXh0X3N5bWJvbDsKQEAgLTc5NDQsNyAr ODU2MCw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAq bm9kZWJ1Z19kYXRhX3N5bWJvbDsKICAgIHN0cnVjdCB0eXBlICpub2RlYnVnX3Vua25vd25fc3lt Ym9sOwogICAgc3RydWN0IHR5cGUgKm5vZGVidWdfdGxzX3N5bWJvbDsKLUBAIC0xMzMzLDYgKzE0 MzMsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHR5cGUgKiwKK0BAIC0xMzMzLDYgKzE0MzQsMTggQEAgZXh0ZXJuIHN0cnVj dCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwK ICAJCQkJICAgICAgIHN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3Vw X2FycmF5X3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKQEAgLTc5NjMs NyArODU3OSw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVj dCB0eXBlICpjcmVhdGVfc3RyaW5nX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICos CiAgCQkJCQlzdHJ1Y3QgdHlwZSAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmxvb2t1cF9zdHJp bmdfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwotQEAgLTEzNzUsNiArMTQ4 Nyw4IEBAIGV4dGVybiBpbnQgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1 Y3QgdHlwZSAqKTsKK0BAIC0xMzc1LDYgKzE0ODgsOCBAQCBleHRlcm4gaW50IGlzX3B1YmxpY19h bmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIGludCBp c191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKICAKQEAg LTc5NzIsNyArODU4OCw3IEBAIGluZGV4IDY0M2ZhMDMuLjYzODFkY2YgMTAwNjQ0CiAgLyogT3Zl cmxvYWQgcmVzb2x1dGlvbiAqLwogIAogICNkZWZpbmUgTEVOR1RIX01BVENIKGJ2KSAoKGJ2KS0+ cmFua1swXSkKLUBAIC0xNDM3LDEwICsxNTUxLDExIEBAIGV4dGVybiB2b2lkIG1haW50ZW5hbmNl X3ByaW50X3R5cGUgKGNoYXIgKiwgaW50KTsKK0BAIC0xNDM3LDEwICsxNTUyLDExIEBAIGV4dGVy biB2b2lkIG1haW50ZW5hbmNlX3ByaW50X3R5cGUgKGNoYXIgKiwgaW50KTsKICAKICBleHRlcm4g aHRhYl90IGNyZWF0ZV9jb3BpZWRfdHlwZXNfaGFzaCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUp OwogIApAQCAtODI1OCwxMCArODg3NCwxMCBAQCBpbmRleCBlNjQyODk0Li42YWM5NWNjIDEwMDY0 NAogICAgICB9CiAgICBlbHNlIGlmIChjb2RlID09IFRZUEVfQ09ERV9JTlQpCiBkaWZmIC0tZ2l0 IGEvZ2RiL2luZmNtZC5jIGIvZ2RiL2luZmNtZC5jCi1pbmRleCBmOTlhNGFlLi41NTk5OTA4IDEw MDY0NAoraW5kZXggMjljZjQyNy4uMGVjNTk4ZSAxMDA2NDQKIC0tLSBhL2dkYi9pbmZjbWQuYwog KysrIGIvZ2RiL2luZmNtZC5jCi1AQCAtODA2LDcgKzgwNiw3IEBAIG5leHRpX2NvbW1hbmQgKGNo YXIgKmNvdW50X3N0cmluZywgaW50IGZyb21fdHR5KQorQEAgLTgwOCw3ICs4MDgsNyBAQCBuZXh0 aV9jb21tYW5kIChjaGFyICpjb3VudF9zdHJpbmcsIGludCBmcm9tX3R0eSkKICAgIHN0ZXBfMSAo MSwgMSwgY291bnRfc3RyaW5nKTsKICB9CiAgCkBAIC04MjcwLDcgKzg4ODYsNyBAQCBpbmRleCBm OTlhNGFlLi41NTk5OTA4IDEwMDY0NAogIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnRfY2xlYW51 cCAodm9pZCAqYXJnKQogIHsKICAgIGludCB0aHJlYWQgPSAqIChpbnQgKikgYXJnOwotQEAgLTg0 NiwxMCArODQ2LDEzIEBAIHN0ZXBfMSAoaW50IHNraXBfc3Vicm91dGluZXMsIGludCBzaW5nbGVf aW5zdCwgY2hhciAqY291bnRfc3RyaW5nKQorQEAgLTg0OCwxMCArODQ4LDEzIEBAIHN0ZXBfMSAo aW50IHNraXBfc3Vicm91dGluZXMsIGludCBzaW5nbGVfaW5zdCwgY2hhciAqY291bnRfc3RyaW5n KQogIAogICAgaWYgKCFzaW5nbGVfaW5zdCB8fCBza2lwX3N1YnJvdXRpbmVzKQkJLyogbGVhdmUg c2kgY29tbWFuZCBhbG9uZSAqLwogICAgICB7CkBAIC04Mjg0LDcgKzg5MDAsNyBAQCBpbmRleCBm OTlhNGFlLi41NTk5OTA4IDEwMDY0NAogIAogICAgICAgIG1ha2VfY2xlYW51cCAoZGVsZXRlX2xv bmdqbXBfYnJlYWtwb2ludF9jbGVhbnVwLCAmdGhyZWFkKTsKICAgICAgfQotQEAgLTExOTgsNiAr MTIwMSwxNSBAQCBzaWduYWxfY29tbWFuZCAoY2hhciAqc2lnbnVtX2V4cCwgaW50IGZyb21fdHR5 KQorQEAgLTEyMDAsNiArMTIwMywxNSBAQCBzaWduYWxfY29tbWFuZCAoY2hhciAqc2lnbnVtX2V4 cCwgaW50IGZyb21fdHR5KQogICAgcHJvY2VlZCAoKENPUkVfQUREUikgLTEsIG91cnNpZywgMCk7 CiAgfQogIApAQCAtODMwMCw3ICs4OTE2LDcgQEAgaW5kZXggZjk5YTRhZS4uNTU5OTkwOCAxMDA2 NDQKICAvKiBQcm9jZWVkIHVudGlsIHdlIHJlYWNoIGEgZGlmZmVyZW50IHNvdXJjZSBsaW5lIHdp dGggcGMgZ3JlYXRlciB0aGFuCiAgICAgb3VyIGN1cnJlbnQgb25lIG9yIGV4aXQgdGhlIGZ1bmN0 aW9uLiAgV2Ugc2tpcCBjYWxscyBpbiBib3RoIGNhc2VzLgogIAotQEAgLTEyMTQsNiArMTIyNiw4 IEBAIHVudGlsX25leHRfY29tbWFuZCAoaW50IGZyb21fdHR5KQorQEAgLTEyMTYsNiArMTIyOCw4 IEBAIHVudGlsX25leHRfY29tbWFuZCAoaW50IGZyb21fdHR5KQogICAgc3RydWN0IHN5bWJvbCAq ZnVuYzsKICAgIHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgc2FsOwogICAgc3RydWN0IHRocmVhZF9p bmZvICp0cCA9IGluZmVyaW9yX3RocmVhZCAoKTsKQEAgLTgzMDksNyArODkyNSw3IEBAIGluZGV4 IGY5OWE0YWUuLjU1OTk5MDggMTAwNjQ0CiAgCiAgICBjbGVhcl9wcm9jZWVkX3N0YXR1cyAoKTsK ICAgIHNldF9zdGVwX2ZyYW1lICgpOwotQEAgLTEyNDksNyArMTI2MywxOSBAQCB1bnRpbF9uZXh0 X2NvbW1hbmQgKGludCBmcm9tX3R0eSkKK0BAIC0xMjUxLDcgKzEyNjUsMTkgQEAgdW50aWxfbmV4 dF9jb21tYW5kIChpbnQgZnJvbV90dHkpCiAgCiAgICB0cC0+c3RlcF9tdWx0aSA9IDA7CQkvKiBP bmx5IG9uZSBjYWxsIHRvIHByb2NlZWQgKi8KICAKQEAgLTgzMjksNyArODk0NSw3IEBAIGluZGV4 IGY5OWE0YWUuLjU1OTk5MDggMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTQyNiw2 ICsxNDUyLDcgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCitAQCAt MTQyOCw2ICsxNDU0LDcgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcp CiAgICBpZiAoYnMgIT0gTlVMTCAmJiB0cC0+cHJvY2VlZF90b19maW5pc2gpCiAgICAgIG9ic2Vy dmVyX25vdGlmeV9ub3JtYWxfc3RvcCAoYnMsIDEgLyogcHJpbnQgZnJhbWUgKi8pOwogICAgZGVs ZXRlX2JyZWFrcG9pbnQgKGEtPmJyZWFrcG9pbnQpOwpAQCAtODMzNyw3ICs4OTUzLDcgQEAgaW5k ZXggZjk5YTRhZS4uNTU5OTkwOCAxMDA2NDQKICB9CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0xNTA5 LDYgKzE1MzYsNyBAQCBmaW5pc2hfZm9yd2FyZCAoc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24sIHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC0xNTExLDYgKzE1MzgsNyBAQCBmaW5pc2hfZm9y d2FyZCAoc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkK ICAgIHN0cnVjdCBicmVha3BvaW50ICpicmVha3BvaW50OwogICAgc3RydWN0IGNsZWFudXAgKm9s ZF9jaGFpbjsKICAgIHN0cnVjdCBmaW5pc2hfY29tbWFuZF9jb250aW51YXRpb25fYXJncyAqY2Fy Z3M7CkBAIC04MzQ1LDcgKzg5NjEsNyBAQCBpbmRleCBmOTlhNGFlLi41NTk5OTA4IDEwMDY0NAog IAogICAgc2FsID0gZmluZF9wY19saW5lIChnZXRfZnJhbWVfcGMgKGZyYW1lKSwgMCk7CiAgICBz YWwucGMgPSBnZXRfZnJhbWVfcGMgKGZyYW1lKTsKLUBAIC0xNTE5LDYgKzE1NDcsMTAgQEAgZmlu aXNoX2ZvcndhcmQgKHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUpCitAQCAtMTUyMSw2ICsxNTQ5LDEwIEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3lt Ym9sICpmdW5jdGlvbiwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQogIAogICAgb2xkX2NoYWlu ID0gbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3BvaW50IChicmVha3BvaW50KTsKICAKQEAgLTgz NzAsNyArODk4Niw3IEBAIGluZGV4IGU1NTdkNmMuLmQ0YWUxZGYgMTAwNjQ0CiAgCiAgZXh0ZXJu IHZvaWQgbm90aWNlX25ld19pbmZlcmlvciAocHRpZF90LCBpbnQsIGludCk7CiBkaWZmIC0tZ2l0 IGEvZ2RiL2luZnJ1bi5jIGIvZ2RiL2luZnJ1bi5jCi1pbmRleCA4MzA3OTg2Li5iNDExMGE4IDEw MDY0NAoraW5kZXggOWE1YzNhOC4uZWQyZjUzMCAxMDA2NDQKIC0tLSBhL2dkYi9pbmZydW4uYwog KysrIGIvZ2RiL2luZnJ1bi5jCiBAQCAtNDUsNiArNDUsOCBAQApAQCAtODM4Miw3ICs4OTk4LDcg QEAgaW5kZXggODMwNzk4Ni4uYjQxMTBhOCAxMDA2NDQKICAjaW5jbHVkZSAiZ2RiX2Fzc2VydC5o IgogICNpbmNsdWRlICJtaS9taS1jb21tb24uaCIKICAjaW5jbHVkZSAiZXZlbnQtdG9wLmgiCi1A QCAtMjAxMyw2ICsyMDE1LDggQEAgc3RhdGljIHZvaWQgaW5zZXJ0X3N0ZXBfcmVzdW1lX2JyZWFr cG9pbnRfYXRfc2FsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0yMDI0LDYgKzIwMjYs OCBAQCBzdGF0aWMgdm9pZCBpbnNlcnRfc3RlcF9yZXN1bWVfYnJlYWtwb2ludF9hdF9zYWwgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCQkJCSAgc3RydWN0IHN5bXRhYl9hbmRfbGluZSBz cl9zYWwsCiAgCQkJCQkJICBzdHJ1Y3QgZnJhbWVfaWQgc3JfaWQpOwogIHN0YXRpYyB2b2lkIGlu c2VydF9sb25nam1wX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqLCBDT1JFX0FE RFIpOwpAQCAtODM5MSw3ICs5MDA3LDcgQEAgaW5kZXggODMwNzk4Ni4uYjQxMTBhOCAxMDA2NDQK ICAKICBzdGF0aWMgdm9pZCBzdG9wX3N0ZXBwaW5nIChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xf c3RhdGUgKmVjcyk7CiAgc3RhdGljIHZvaWQgcHJlcGFyZV90b193YWl0IChzdHJ1Y3QgZXhlY3V0 aW9uX2NvbnRyb2xfc3RhdGUgKmVjcyk7Ci1AQCAtMjk1OCw2ICsyOTYyLDEwIEBAIGhhbmRsZV9p bmZlcmlvcl9ldmVudCAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpCitAQCAt Mjk3MSw2ICsyOTc1LDEwIEBAIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3RydWN0IGV4ZWN1dGlv bl9jb250cm9sX3N0YXRlICplY3MpCiAgCiAgICAgICAgc3RvcF9wYyA9IHJlZ2NhY2hlX3JlYWRf cGMgKGdldF90aHJlYWRfcmVnY2FjaGUgKGVjcy0+cHRpZCkpOwogIApAQCAtODQwMiw3ICs5MDE4 LDcgQEAgaW5kZXggODMwNzk4Ni4uYjQxMTBhOCAxMDA2NDQKICAgICAgICBlY3MtPmV2ZW50X3Ro cmVhZC0+c3RvcF9icHN0YXQKICAJPSBicHN0YXRfc3RvcF9zdGF0dXMgKGdldF9yZWdjYWNoZV9h c3BhY2UgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKSwKICAJCQkgICAgICBzdG9wX3BjLCBlY3Mt PnB0aWQpOwotQEAgLTMwNDIsNiArMzA1MCwxMCBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0 cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQorQEAgLTMwNTUsNiArMzA2MywxMCBA QCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAq ZWNzKQogIAogICAgICAgIHN0b3BfcGMgPSByZWdjYWNoZV9yZWFkX3BjIChnZXRfdGhyZWFkX3Jl Z2NhY2hlIChlY3MtPnB0aWQpKTsKICAKQEAgLTg0MTMsNyArOTAyOSw3IEBAIGluZGV4IDgzMDc5 ODYuLmI0MTEwYTggMTAwNjQ0CiAgICAgICAgLyogRG8gd2hhdGV2ZXIgaXMgbmVjZXNzYXJ5IHRv IHRoZSBwYXJlbnQgYnJhbmNoIG9mIHRoZSB2Zm9yay4gICovCiAgICAgICAgaGFuZGxlX3Zmb3Jr X2NoaWxkX2V4ZWNfb3JfZXhpdCAoMSk7CiAgCi1AQCAtMzc4MCwyMyArMzc5MiwzMyBAQCBwcm9j ZXNzX2V2ZW50X3N0b3BfdGVzdDoKK0BAIC0zNzkzLDIzICszODA1LDMzIEBAIHByb2Nlc3NfZXZl bnRfc3RvcF90ZXN0OgogIAogIAllY3MtPmV2ZW50X3RocmVhZC0+c3RlcHBpbmdfb3Zlcl9icmVh a3BvaW50ID0gMTsKICAKQEAgLTg0NTksNyArOTA3NSw3IEBAIGluZGV4IDgzMDc5ODYuLmI0MTEw YTggMTAwNjQ0CiAgCWtlZXBfZ29pbmcgKGVjcyk7CiAgCXJldHVybjsKICAKLUBAIC0zODA4LDYg KzM4MzAsNTMgQEAgaW5mcnVuOiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9SRVNVTUUgKCFnZGJh cmNoX2dldF9sb25nam1wX3RhcmdldClcbiIpOworQEAgLTM4MjEsNiArMzg0Myw1MyBAQCBpbmZy dW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdkYmFyY2hfZ2V0X2xvbmdqbXBf dGFyZ2V0KVxuIik7CiAgCWdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3Jlc3Vt ZV9icmVha3BvaW50ICE9IE5VTEwpOwogIAlkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAo ZWNzLT5ldmVudF90aHJlYWQpOwogIApAQCAtODUxMyw3ICs5MTI5LDcgQEAgaW5kZXggODMwNzk4 Ni4uYjQxMTBhOCAxMDA2NDQKICAJZWNzLT5ldmVudF90aHJlYWQtPnN0b3Bfc3RlcCA9IDE7CiAg CXByaW50X3N0b3BfcmVhc29uIChFTkRfU1RFUFBJTkdfUkFOR0UsIDApOwogIAlzdG9wX3N0ZXBw aW5nIChlY3MpOwotQEAgLTQ4MjcsNiArNDg5Niw5NiBAQCBpbnNlcnRfbG9uZ2ptcF9yZXN1bWVf YnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBwYykKK0BAIC00 ODQwLDYgKzQ5MDksOTYgQEAgaW5zZXJ0X2xvbmdqbXBfcmVzdW1lX2JyZWFrcG9pbnQgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgcGMpCiAgICAgIHNldF9tb21lbnRhcnlfYnJl YWtwb2ludF9hdF9wYyAoZ2RiYXJjaCwgcGMsIGJwX2xvbmdqbXBfcmVzdW1lKTsKICB9CiAgCkBA IC04NjM1LDE0ICs5MjUxLDE0IEBAIGluZGV4IDRmNzhhMjguLmUwMDk2ZjUgMTAwNjQ0CiAgCQkJ CQkJIGNvbnN0IGRvbWFpbl9lbnVtKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvbGluZXNwZWMuYyBi L2dkYi9saW5lc3BlYy5jCi1pbmRleCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0NAoraW5kZXggNzVh NzRlMi4uZWM0ZDU2OSAxMDA2NDQKIC0tLSBhL2dkYi9saW5lc3BlYy5jCiArKysgYi9nZGIvbGlu ZXNwZWMuYwogQEAgLTQwLDYgKzQwLDcgQEAKICAjaW5jbHVkZSAiaW50ZXJwcy5oIgogICNpbmNs dWRlICJtaS9taS1jbWRzLmgiCiAgI2luY2x1ZGUgInRhcmdldC5oIgotKyNpbmNsdWRlIDxjdHlw ZS5oPgorKyNpbmNsdWRlICJhcmNoLXV0aWxzLmgiCiAgCiAgLyogV2Ugc2hhcmUgdGhpcyBvbmUg d2l0aCBzeW10YWIuYywgYnV0IGl0IGlzIG5vdCBleHBvcnRlZCB3aWRlbHkuICovCiAgCkBAIC04 NjU1LDcgKzkyNzEsNTcgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKICBzdGF0aWMg c3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzIGRlY29kZV9pbmRpcmVjdCAoY2hhciAqKmFyZ3B0cik7 CiAgCiAgc3RhdGljIGNoYXIgKmxvY2F0ZV9maXJzdF9oYWxmIChjaGFyICoqYXJncHRyLCBpbnQg KmlzX3F1b3RlX2VuY2xvc2VkKTsKLUBAIC02ODgsOSArNjg3LDYgQEAgZGVjb2RlX2xpbmVfMSAo Y2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9z eW10YWIsCitAQCAtMzEzLDEwICszMTIsNyBAQCBhZGRfbWF0Y2hpbmdfbWV0aG9kcyAoaW50IG1l dGhvZF9jb3VudGVyLCBzdHJ1Y3QgdHlwZSAqdCwKKyAJCQkJICAgTlVMTCwgVkFSX0RPTUFJTiwK KyAJCQkJICAgbGFuZ3VhZ2UsCisgCQkJCSAgIChpbnQgKikgTlVMTCk7CistICAgICAgLyogU2Vl IFBSMTA5NjYuICBSZW1vdmUgY2hlY2sgb24gc3ltYm9sIGRvbWFpbiBhbmQgY2xhc3Mgd2hlbgor LQkgd2Ugc3RvcCB1c2luZyAoYmFkKSBsaW5rYWdlIG5hbWVzIG9uIGNvbnN0cnVjdG9ycy4gICov CistICAgICAgaWYgKHN5bV9hcnJbaTFdICYmIChTWU1CT0xfRE9NQUlOIChzeW1fYXJyW2kxXSkg PT0gVkFSX0RPTUFJTgorLQkJCSAgJiYgU1lNQk9MX0NMQVNTIChzeW1fYXJyW2kxXSkgPT0gTE9D X0JMT0NLKSkKKysgICAgICBpZiAoc3ltX2FycltpMV0pCisgCWkxKys7CisgICAgICAgZWxzZQor IAl7CitAQCAtNjMxLDYgKzYyNywzNyBAQCBTZWUgc2V0L3Nob3cgbXVsdGlwbGUtc3ltYm9sLiIp KTsKKyAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jaGFpbik7CisgICByZXR1cm4gcmV0dXJuX3Zh bHVlczsKKyB9CisrCisrLyogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGRlY29kZV9saW5lXzEgYW5k IGZyaWVuZHMgd2hpY2ggc2tpcHMgUAorKyAgIHBhc3QgYW55IG1ldGhvZCBvdmVybG9hZCBpbmZv cm1hdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIFAsIGUuZy4sCisrICAgIihjb25zdCBzdHJ1Y3Qg Zm9vICopIi4KKysKKysgICBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCBQIGhhcyBhbHJlYWR5 IGJlZW4gdmFsaWRhdGVkIHRvIGNvbnRhaW4KKysgICBvdmVybG9hZCBpbmZvcm1hdGlvbiwgYW5k IGl0IHdpbGwgYXNzZXJ0IGlmICpQICE9ICcoJy4gICovCisrc3RhdGljIGNoYXIgKgorK2ZpbmRf bWV0aG9kX292ZXJsb2FkX2VuZCAoY2hhciAqcCkKKyt7CisrICBpbnQgZGVwdGggPSAwOworKwor KyAgZ2RiX2Fzc2VydCAoKnAgPT0gJygnKTsKKysKKysgIHdoaWxlICgqcCkKKysgICAgeworKyAg ICAgIGlmICgqcCA9PSAnKCcpCisrCSsrZGVwdGg7CisrICAgICAgZWxzZSBpZiAoKnAgPT0gJykn KQorKwl7CisrCSAgaWYgKC0tZGVwdGggPT0gMCkKKysJICAgIHsKKysJICAgICAgKytwOworKwkg ICAgICBicmVhazsKKysJICAgIH0KKysJfQorKyAgICAgICsrcDsKKysgICAgfQorKworKyAgcmV0 dXJuIHA7CisrfQorIAwKKyAvKiBUaGUgcGFyc2VyIG9mIGxpbmVzcGVjIGl0c2VsZi4gKi8KKyAK K0BAIC02OTEsMTggKzcxOCwxNyBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJncHRyLCBpbnQg ZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKICAgIHN0cnVjdCBz eW10YWIgKmZpbGVfc3ltdGFiID0gTlVMTDsKICAKICAgIGNoYXIgKmNvcHk7CkBAIC04NjY1LDcg KzkzMzEsMTkgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKICAgIC8qIFRoaXMgc2F5 cyB3aGV0aGVyIG9yIG5vdCBzb21ldGhpbmcgaW4gKkFSR1BUUiBpcyBxdW90ZWQgd2l0aAogICAg ICAgY29tcGxldGVyX3F1b3RlcyAoaS5lLiB3aXRoIHNpbmdsZSBxdW90ZXMpLiAgKi8KICAgIGlu dCBpc19xdW90ZWQ7Ci1AQCAtNzExLDEyICs3MDcsOSBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoq YXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwK Ky0gIC8qIElzIHBhcnQgb2YgKkFSR1BUUiBpcyBlbmNsb3NlZCBpbiBkb3VibGUgcXVvdGVzPyAg Ki8KKysgIC8qIElzICpBUkdQVFIgaXMgZW5jbG9zZWQgaW4gZG91YmxlIHF1b3Rlcz8gICovCisg ICBpbnQgaXNfcXVvdGVfZW5jbG9zZWQ7CisgICBpbnQgaXNfb2JqY19tZXRob2QgPSAwOworICAg Y2hhciAqc2F2ZWRfYXJnID0gKmFyZ3B0cjsKKyAgIC8qIElmIElTX1FVT1RFRCwgdGhlIGVuZCBv ZiB0aGUgcXVvdGVkIGJpdC4gICovCisgICBjaGFyICplbmRfcXVvdGUgPSBOVUxMOworKyAgLyog VGhlICJmaXJzdCBoYWxmIiBvZiB0aGUgbGluZXNwZWMuICAqLworKyAgY2hhciAqZmlyc3RfaGFs ZjsKKyAKKyAgIGlmIChub3RfZm91bmRfcHRyKQorICAgICAqbm90X2ZvdW5kX3B0ciA9IDA7CitA QCAtNzE2LDEyICs3NDIsOSBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJncHRyLCBpbnQgZnVu Zmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKICAgIGlmICgqKmFyZ3B0 ciA9PSAnKicpCiAgICAgIHJldHVybiBkZWNvZGVfaW5kaXJlY3QgKGFyZ3B0cik7CiAgCkBAIC04 Njc4LDEwICs5MzU2LDE2IEBAIGluZGV4IDc0OTAyYjYuLjRlNTRhM2EgMTAwNjQ0CiArICBpc19x dW90ZWQgPSAoKmFyZ3B0cgogKwkgICAgICAgJiYgc3RyY2hyIChnZXRfZ2RiX2NvbXBsZXRlcl9x dW90ZV9jaGFyYWN0ZXJzICgpLAogKwkJCSAgKiphcmdwdHIpICE9IE5VTEwpOworICAgaWYgKGlz X3F1b3RlZCkKKyAgICAgZW5kX3F1b3RlID0gc2tpcF9xdW90ZWQgKCphcmdwdHIpOworIAorQEAg LTczNCwxNSArNzU3LDEyIEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5m aXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAorICAgICAgd2lsbCBwb2lu dCB0byAiIi4gSWYgdGhpcyBpcyBhIEMrKyBuYW1lLCBsaWtlICJBOjpCOjpmb28iLCBwIHdpbGwK KyAgICAgIHBvaW50IHRvICI6OkI6OmZvbyIuIEFyZ3B0ciBpcyBub3QgY2hhbmdlZCBieSB0aGlz IGNhbGwuICAqLworIAorLSAgcCA9IGxvY2F0ZV9maXJzdF9oYWxmIChhcmdwdHIsICZpc19xdW90 ZV9lbmNsb3NlZCk7CisrICBmaXJzdF9oYWxmID0gcCA9IGxvY2F0ZV9maXJzdF9oYWxmIChhcmdw dHIsICZpc19xdW90ZV9lbmNsb3NlZCk7CiAgCi0gICAvKiBDaGVjayB0byBzZWUgaWYgaXQncyBh IG11bHRpcGFydCBsaW5lc3BlYyAod2l0aCBjb2xvbnMgb3IKLSAgICAgIHBlcmlvZHMpLiAgKi8K LUBAIC03MzIsMTAgKzcyNSw3IEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBm dW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAogICAgLyogQ2hlY2sg aWYgdGhpcyBpcyBhbiBPYmplY3RpdmUtQyBtZXRob2QgKGFueXRoaW5nIHRoYXQgc3RhcnRzIHdp dGgKICAgICAgIGEgJysnIG9yICctJyBhbmQgYSAnWycpLiAgKi8KICAgIGlmIChpc19vYmpjX21l dGhvZF9mb3JtYXQgKHApKQpAQCAtODY5Myw0MyArOTM3Nyw1MyBAQCBpbmRleCA3NDkwMmI2Li40 ZTU0YTNhIDEwMDY0NAogIAogICAgLyogQ2hlY2sgaWYgdGhlIHN5bWJvbCBjb3VsZCBiZSBhbiBP YmplY3RpdmUtQyBzZWxlY3Rvci4gICovCiAgCi1AQCAtNzQ5LDExICs3MzksMTEgQEAgZGVjb2Rl X2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAq ZGVmYXVsdF9zeW10YWIsCitAQCAtNzU0LDkgKzc3NCw2IEBAIGRlY29kZV9saW5lXzEgKGNoYXIg KiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFi LAorICAgICAgIHJldHVybiB2YWx1ZXM7CisgICB9CiAgCistICBpZiAoaXNfcXVvdGVkKQorLSAg ICAqYXJncHRyID0gKmFyZ3B0ciArIDE7CistCiAgICAvKiBEb2VzIGl0IGxvb2sgbGlrZSB0aGVy ZSBhY3R1YWxseSB3ZXJlIHR3byBwYXJ0cz8gICovCiAgCi0tICBpZiAoKHBbMF0gPT0gJzonIHx8 IHBbMF0gPT0gJy4nKSAmJiBwYXJlbl9wb2ludGVyID09IE5VTEwpCi0rICBpZiAocFswXSA9PSAn OicgfHwgcFswXSA9PSAnLicpCi0gICAgIHsKLSAgICAgICBpZiAoaXNfcXVvdGVkKQotIAkqYXJn cHRyID0gKmFyZ3B0ciArIDE7Ci0tICAgICAgCi0rCi0gICAgICAgLyogSXMgaXQgYSBDKysgb3Ig SmF2YSBjb21wb3VuZCBkYXRhIHN0cnVjdHVyZT8KLSAJIFRoZSBjaGVjayBvbiBwWzFdID09ICc6 JyBpcyBjYXB0dXJpbmcgdGhlIGNhc2Ugb2YgIjo6IiwKLSAJIHNpbmNlIHBbMF09PSc6JyB3YXMg Y2hlY2tlZCBhYm92ZS4gIAotQEAgLTc2Miw0OCArNzUyLDMxIEBAIGRlY29kZV9saW5lXzEgKGNo YXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3lt dGFiLAotIAkgY2FuIHJldHVybiBub3cuICovCisgICBpZiAocFswXSA9PSAnOicgfHwgcFswXSA9 PSAnLicpCitAQCAtNzcwLDY3ICs3ODcsNDggQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0 ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgCQog ICAgICAgIGlmIChwWzBdID09ICcuJyB8fCBwWzFdID09ICc6JykKLS0JcmV0dXJuIGRlY29kZV9j b21wb3VuZCAoYXJncHRyLCBmdW5maXJzdGxpbmUsIGNhbm9uaWNhbCwKLS0JCQkJc2F2ZWRfYXJn LCBwLCBub3RfZm91bmRfcHRyKTsKLSsJeworIAl7CistCSAgaWYgKHBhcmVuX3BvaW50ZXIgPT0g TlVMTCkKKy0JICAgIHJldHVybiBkZWNvZGVfY29tcG91bmQgKGFyZ3B0ciwgZnVuZmlyc3RsaW5l LCBjYW5vbmljYWwsCiArCSAgc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzIHZhbHVlczsKICsKICsJ ICBpZiAoaXNfcXVvdGVfZW5jbG9zZWQpCiArCSAgICArK3NhdmVkX2FyZzsKICsJICB2YWx1ZXMg PSBkZWNvZGVfY29tcG91bmQgKGFyZ3B0ciwgZnVuZmlyc3RsaW5lLCBjYW5vbmljYWwsCi0rCQkJ CSAgICBzYXZlZF9hcmcsIHAsIG5vdF9mb3VuZF9wdHIpOworIAkJCQkgICAgc2F2ZWRfYXJnLCBw LCBub3RfZm91bmRfcHRyKTsKKy0JICAvKiBPdGhlcndpc2UsIGZhbGwgdGhyb3VnaCB0byBkZWNv ZGVfdmFyaWFibGUgYmVsb3cuICAqLwogKwkgIGlmIChpc19xdW90ZWQgJiYgKiphcmdwdHIgPT0g J1wnJykKICsJICAgICphcmdwdHIgPSAqYXJncHRyICsgMTsKICsJICByZXR1cm4gdmFsdWVzOwot Kwl9CisgCX0KKy0gICAgICBlbHNlCistCXsKKy0JICAvKiBObywgdGhlIGZpcnN0IHBhcnQgaXMg YSBmaWxlbmFtZTsgc2V0IGZpbGVfc3ltdGFiIHRvIGJlIHRoYXQgZmlsZSdzCistCSAgICAgc3lt dGFiLiAgQWxzbywgbW92ZSBhcmdwdHIgcGFzdCB0aGUgZmlsZW5hbWUuICAqLwogIAotICAgICAg IC8qIE5vLCB0aGUgZmlyc3QgcGFydCBpcyBhIGZpbGVuYW1lOyBzZXQgZmlsZV9zeW10YWIgdG8g YmUgdGhhdCBmaWxlJ3MKLSAJIHN5bXRhYi4gIEFsc28sIG1vdmUgYXJncHRyIHBhc3QgdGhlIGZp bGVuYW1lLiAgKi8KKy0JICBmaWxlX3N5bXRhYiA9IHN5bXRhYl9mcm9tX2ZpbGVuYW1lIChhcmdw dHIsIHAsIGlzX3F1b3RlX2VuY2xvc2VkLAorLQkJCQkJICAgICAgbm90X2ZvdW5kX3B0cik7Cisr ICAgICAgLyogTm8sIHRoZSBmaXJzdCBwYXJ0IGlzIGEgZmlsZW5hbWU7IHNldCBmaWxlX3N5bXRh YiB0byBiZSB0aGF0IGZpbGUncworKwkgc3ltdGFiLiAgQWxzbywgbW92ZSBhcmdwdHIgcGFzdCB0 aGUgZmlsZW5hbWUuICAqLwogIAotICAgICAgIGZpbGVfc3ltdGFiID0gc3ltdGFiX2Zyb21fZmls ZW5hbWUgKGFyZ3B0ciwgcCwgaXNfcXVvdGVfZW5jbG9zZWQsIAotIAkJICAgICAgCQkJICBub3Rf Zm91bmRfcHRyKTsKKy0JICAvKiBDaGVjayBmb3Igc2luZ2xlIHF1b3RlcyBvbiB0aGUgbm9uLWZp bGVuYW1lIHBhcnQuICAqLworLQkgIGlmICghaXNfcXVvdGVkKQorLQkgICAgeworLQkgICAgICBp c19xdW90ZWQgPSAoKiphcmdwdHIKKy0JCQkgICAmJiBzdHJjaHIgKGdldF9nZGJfY29tcGxldGVy X3F1b3RlX2NoYXJhY3RlcnMgKCksCistCQkJCSAgICAgICoqYXJncHRyKSAhPSBOVUxMKTsKKy0J ICAgICAgaWYgKGlzX3F1b3RlZCkKKy0JCWVuZF9xdW90ZSA9IHNraXBfcXVvdGVkICgqYXJncHRy KTsKKy0JICAgIH0KKy0JfQogLSAgICB9CiAtI2lmIDAKIC0gIC8qIE5vIG9uZSByZWFsbHkgc2Vl bXMgdG8ga25vdyB3aHkgdGhpcyB3YXMgYWRkZWQuIEl0IGNlcnRhaW5seQpAQCAtODc0Miw3ICs5 NDM2LDkgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKIC0gIGVsc2UKIC0gICAgewog LSAgICAgIC8qIENoZWNrIGlmIHdoYXQgd2UgaGF2ZSB0aWxsIG5vdyBpcyBhIHN5bWJvbCBuYW1l ICovCi0tCisrICAgICAgZmlsZV9zeW10YWIgPSBzeW10YWJfZnJvbV9maWxlbmFtZSAoYXJncHRy LCBwLCBpc19xdW90ZV9lbmNsb3NlZCwKKysJCQkJCSAgbm90X2ZvdW5kX3B0cik7CisgCiAtICAg ICAgLyogV2UgbWF5IGJlIGxvb2tpbmcgYXQgYSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIHN1Y2gK IC0gICAgICAgICBhcyAiZm9vPGludD4iLiAgQ2hlY2sgaGVyZSB3aGV0aGVyIHdlIGtub3cgYWJv dXQgaXQsCiAtICAgICAgICAgaW5zdGVhZCBvZiBmYWxsaW5nIHRocm91Z2ggdG8gdGhlIGNvZGUg YmVsb3cgd2hpY2gKQEAgLTg3NTYsMTQgKzk0NTIsMTYgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEz YSAxMDA2NDQKIC0gICAgICBjb3B5W3AgLSAqYXJncHRyXSA9ICdcMDAwJzsKIC0gICAgICBzeW0g PSBsb29rdXBfc3ltYm9sIChjb3B5LCAwLCBWQVJfRE9NQUlOLCAwKTsKIC0gICAgICBpZiAoc3lt KQotKyAgICAgIGlmIChmaWxlX3N5bXRhYiAhPSBOVUxMKQorKyAgICAgIC8qIENoZWNrIGZvciBz aW5nbGUgcXVvdGVzIG9uIHRoZSBub24tZmlsZW5hbWUgcGFydC4gICovCisrICAgICAgaWYgKCFp c19xdW90ZWQpCiAgCXsKIC0JICAqYXJncHRyID0gKCpwID09ICdcJycpID8gcCArIDEgOiBwOwog LQkgIHJldHVybiBzeW1ib2xfZm91bmQgKGZ1bmZpcnN0bGluZSwgY2Fub25pY2FsLCBjb3B5LCBz eW0sIE5VTEwpOwotKwkgIC8qIERvdWJsZS1jaGVjayBpZiB0aGUgcmVtYWluZGVyIG9mIHRoZSBh cmd1bWVudCBpcyBxdW90ZWQuCi0rCSAgICAgVGhlIHJicmVhayBjb21tYW5kIHVzZXMgc3ludGF4 IGxpa2UgdGhpcy4gICovCi0rCSAgaWYgKCoqYXJncHRyID09ICdcJycpCi0rCSAgICBpc19xdW90 ZWQgPSAxOworKwkgIGlzX3F1b3RlZCA9ICgqKmFyZ3B0cgorKwkJICAgICAgICYmIHN0cmNociAo Z2V0X2dkYl9jb21wbGV0ZXJfcXVvdGVfY2hhcmFjdGVycyAoKSwKKysJCQkJICAqKmFyZ3B0cikg IT0gTlVMTCk7CisrCSAgaWYgKGlzX3F1b3RlZCkKKysJICAgIGVuZF9xdW90ZSA9IHNraXBfcXVv dGVkICgqYXJncHRyKTsKICAJfQogLSAgICAgIC8qIE90aGVyd2lzZSBmYWxsIG91dCBmcm9tIGhl cmUgYW5kIGdvIHRvIGZpbGUvbGluZSBzcGVjCiAtICAgICAgICAgcHJvY2Vzc2luZywgZXRjLiAq LwpAQCAtODc3Miw3ICs5NDcwLDIyIEBAIGluZGV4IDc0OTAyYjYuLjRlNTRhM2EgMTAwNjQ0CiAg CiAgICAvKiBmaWxlX3N5bXRhYiBpcyBzcGVjaWZpZWQgZmlsZSdzIHN5bXRhYiwgb3IgMCBpZiBu byBmaWxlIHNwZWNpZmllZC4KICAgICAgIGFyZyBubyBsb25nZXIgY29udGFpbnMgdGhlIGZpbGUg bmFtZS4gICovCi1AQCAtODM4LDEwICs4MTEsNiBAQCBkZWNvZGVfbGluZV8xIChjaGFyICoqYXJn cHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5bXRhYiwKKyAK KysgIC8qIElmIHRoZSBmaWxlbmFtZSB3YXMgcXVvdGVkLCB3ZSBtdXN0IHJlLWNoZWNrIHRoZSBx dW90YXRpb24uICAqLworKworKyAgaWYgKGVuZF9xdW90ZSA9PSBmaXJzdF9oYWxmICYmICplbmRf cXVvdGUhPSAnXDAnKQorKyAgICB7CisrICAgICAgaXNfcXVvdGVkID0gKCoqYXJncHRyCisrCQkg ICAmJiBzdHJjaHIgKGdldF9nZGJfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMgKCksCisrCQkJ ICAgICAgKiphcmdwdHIpICE9IE5VTEwpOworKyAgICAgIGlmIChpc19xdW90ZWQpCisrCWVuZF9x dW90ZSA9IHNraXBfcXVvdGVkICgqYXJncHRyKTsKKysgICAgfQorKworICAgLyogQ2hlY2sgd2hl dGhlciBhcmcgaXMgYWxsIGRpZ2l0cyAoYW5kIHNpZ24pLiAgKi8KKyAKKyAgIHEgPSAqYXJncHRy OworQEAgLTg2MSwxMCArODU5LDYgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50 IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgICAgICAgLyog YWxsb3cgd29yZCBzZXBhcmF0b3JzIGluIG1ldGhvZCBuYW1lcyBmb3IgT2JqLUMgKi8KICAgICAg ICBwID0gc2tpcF9xdW90ZWRfY2hhcnMgKCphcmdwdHIsIE5VTEwsICIiKTsKICAgICAgfQpAQCAt ODc4MywyMCArOTQ5NiwxMyBAQCBpbmRleCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0NAogICAgZWxz ZQogICAgICB7CiAgICAgICAgcCA9IHNraXBfcXVvdGVkICgqYXJncHRyKTsKLUBAIC04NTEsNiAr ODIwLDIxIEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUs IHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAorQEAgLTg3NCw2ICs4NjgsMTQgQEAgZGVj b2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRh YiAqZGVmYXVsdF9zeW10YWIsCiAgICBpZiAoKnAgPT0gJzwnKQogICAgICBwID0gZmluZF90ZW1w bGF0ZV9uYW1lX2VuZCAocCk7CiAgCiArICAvKiBLZWVwIG1ldGhvZCBvdmVybG9hZCBpbmZvcm1h dGlvbi4gICovCi0rICBxID0gc3RyY2hyIChwLCAnKCcpOwotKyAgaWYgKHEgIT0gTlVMTCkKLSsg ICAgewotKyAgICAgIC8qIElnbm9yZSAnKCcgdXNlZCBhZnRlciAiIGlmIi4gICovCi0rICAgICAg d2hpbGUgKHEgPiBwICYmIGlzc3BhY2UgKHFbLTFdKSkKLSsJcS0tOwotKyAgICAgIGlmICghKHEg Pj0gcCArIDMgJiYgc3RybmNtcCAoJnFbLTJdLCAiaWYiLCAyKSA9PSAwICYmIGlzc3BhY2UgKHFb LTNdKSkpCi0rCXAgPSBzdHJyY2hyIChxLCAnKScpICsgMTsKLSsgICAgfQorKyAgaWYgKCpwID09 ICcoJykKKysgICAgcCA9IGZpbmRfbWV0aG9kX292ZXJsb2FkX2VuZCAocCk7CiArCiArICAvKiBN YWtlIHN1cmUgd2Uga2VlcCBpbXBvcnRhbnQga2V3b3JkcyBsaWtlICJjb25zdCIgKi8KICsgIGlm IChzdHJuY21wIChwLCAiIGNvbnN0IiwgNikgPT0gMCkKQEAgLTg4MDUsNyArOTUxMSwyMSBAQCBp bmRleCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0NAogICAgY29weSA9IChjaGFyICopIGFsbG9jYSAo cCAtICphcmdwdHIgKyAxKTsKICAgIG1lbWNweSAoY29weSwgKmFyZ3B0ciwgcCAtICphcmdwdHIp OwogICAgY29weVtwIC0gKmFyZ3B0cl0gPSAnXDAnOwotQEAgLTkyNiw0NCArOTEwLDYgQEAgaW5p dGlhbGl6ZV9kZWZhdWx0cyAoc3RydWN0IHN5bXRhYiAqKmRlZmF1bHRfc3ltdGFiLCBpbnQgKmRl ZmF1bHRfbGluZSkKK0BAIC05MjEsMTAgKzkyMyw5IEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiph cmdwdHIsIGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3ltdGFiLAor ICAgIGZ1bmN0aW9uIGlzIHBhc3NlZCBBUkdQVFIgYXMgYW4gYXJndW1lbnQsIGl0IG1vZGlmaWVz IHdoYXQgQVJHUFRSCisgICAgcG9pbnRzIHRvOyB0eXBpY2FsbHksIGl0IGFkdmFuY2VzICpBUkdQ VFIgcGFzdCB3aGF0ZXZlciBzdWJzdHJpbmcKKyAgICBpdCBoYXMganVzdCBsb29rZWQgYXQuICAo SWYgaXQgZG9lc24ndCBtb2RpZnkgKkFSR1BUUiwgdGhlbiB0aGUKKy0gICBmdW5jdGlvbiBnZXRz IHBhc3NlZCAqQVJHUFRSIGluc3RlYWQsIHdoaWNoIGlzIHRoZW4gY2FsbGVkIEFSRzogc2VlCist ICAgc2V0X2ZsYWdzLCBmb3IgZXhhbXBsZS4pICBBbHNvLCBmdW5jdGlvbnMgdGhhdCByZXR1cm4g YSBzdHJ1Y3QKKy0gICBzeW10YWJzX2FuZF9saW5lcyBtYXkgbW9kaWZ5IENBTk9OSUNBTCwgYXMg aW4gdGhlIGRlc2NyaXB0aW9uIG9mCistICAgZGVjb2RlX2xpbmVfMS4KKysgICBmdW5jdGlvbiBn ZXRzIHBhc3NlZCAqQVJHUFRSIGluc3RlYWQsIHdoaWNoIGlzIHRoZW4gY2FsbGVkIEFSRy4pCisr ICAgQWxzbywgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEgc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVz IG1heSBtb2RpZnkKKysgICBDQU5PTklDQUwsIGFzIGluIHRoZSBkZXNjcmlwdGlvbiBvZiBkZWNv ZGVfbGluZV8xLgorIAorICAgIElmIGEgZnVuY3Rpb24gcmV0dXJucyBhIHN0cnVjdCBzeW10YWJz X2FuZF9saW5lcywgdGhlbiB0aGF0IHN0cnVjdAorICAgIHdpbGwgaW1tZWRpYXRlbHkgbWFrZSBp dHMgd2F5IHVwIHRoZSBjYWxsIGNoYWluIHRvIGJlIHJldHVybmVkIGJ5CitAQCAtOTUxLDQ0ICs5 NTIsNiBAQCBpbml0aWFsaXplX2RlZmF1bHRzIChzdHJ1Y3Qgc3ltdGFiICoqZGVmYXVsdF9zeW10 YWIsIGludCAqZGVmYXVsdF9saW5lKQogICAgICB9CiAgfQogIApAQCAtODg1MCw3ICs5NTcwLDQz IEBAIGluZGV4IDc0OTAyYjYuLjRlNTRhM2EgMTAwNjQ0CiAgDAogIAogIC8qIERlY29kZSBhcmcg b2YgdGhlIGZvcm0gKlBDLiAgKi8KLUBAIC0xMjY0LDcgKzEyMTAsOCBAQCBkZWNvZGVfY29tcG91 bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAor QEAgLTEwNTksNyArMTAyMiwxNCBAQCBsb2NhdGVfZmlyc3RfaGFsZiAoY2hhciAqKmFyZ3B0ciwg aW50ICppc19xdW90ZV9lbmNsb3NlZCkKKyAgICAgICBwKys7CisgICAgIH0KKyAgIGVsc2UKKy0g ICAgKmlzX3F1b3RlX2VuY2xvc2VkID0gMDsKKysgICAgeworKyAgICAgICppc19xdW90ZV9lbmNs b3NlZCA9IDA7CisrICAgICAgaWYgKHN0cmNociAoZ2V0X2dkYl9jb21wbGV0ZXJfcXVvdGVfY2hh cmFjdGVycyAoKSwgKnApKQorKwl7CisrCSAgKysoKmFyZ3B0cik7CisrCSAgKytwOworKwl9Cisr ICAgIH0KKyAgIGZvciAoOyAqcDsgcCsrKQorICAgICB7CisgICAgICAgaWYgKHBbMF0gPT0gJzwn KQorQEAgLTEwODgsOCArMTA1OCw5IEBAIGxvY2F0ZV9maXJzdF9oYWxmIChjaGFyICoqYXJncHRy LCBpbnQgKmlzX3F1b3RlX2VuY2xvc2VkKQorICAgICAgIGlmIChwWzBdID09ICcuJyAmJiBzdHJj aHIgKHAsICc6JykgPT0gTlVMTCkKKyAJeworIAkgIC8qIEphdmEgcXVhbGlmaWVkIG1ldGhvZC4g IEZpbmQgdGhlICpsYXN0KiAnLicsIHNpbmNlIHRoZQorLQkgICAgIG90aGVycyBhcmUgcGFja2Fn ZSBxdWFsaWZpZXJzLiAgKi8KKy0JICBmb3IgKHAxID0gcDsgKnAxOyBwMSsrKQorKwkgICAgIG90 aGVycyBhcmUgcGFja2FnZSBxdWFsaWZpZXJzLiAgU3RvcCBhdCBhbnkgb3BlbiBwYXJlbnRoZXNp cworKwkgICAgIHdoaWNoIG1pZ2h0IHByb3ZpZGUgb3ZlcmxvYWQgaW5mb3JtYXRpb24uICAqLwor KwkgIGZvciAocDEgPSBwOyAqcDEgJiYgKnAxICE9ICcoJzsgcDErKykKKyAJICAgIHsKKyAJICAg ICAgaWYgKCpwMSA9PSAnLicpCisgCQlwID0gcDE7CitAQCAtMTI0MSw2ICsxMjEyLDcgQEAgZGVj b2RlX2NvbXBvdW5kIChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBjaGFyICoqKmNh bm9uaWNhbCwKKyAgIHN0cnVjdCBzeW1ib2wgKnN5bV9jbGFzczsKKyAgIHN0cnVjdCBzeW1ib2wg KipzeW1fYXJyOworICAgc3RydWN0IHR5cGUgKnQ7CisrICBjaGFyICpzYXZlZF9qYXZhX2FyZ3B0 ciA9IE5VTEw7CisgCisgICAvKiBGaXJzdCBjaGVjayBmb3IgImdsb2JhbCIgbmFtZXNwYWNlIHNw ZWNpZmljYXRpb24sIG9mIHRoZSBmb3JtCisgICAgICAiOjpmb28iLiAgSWYgZm91bmQsIHNraXAg b3ZlciB0aGUgY29sb25zIGFuZCBqdW1wIHRvIG5vcm1hbAorQEAgLTEyODksNyArMTI2MSw4IEBA IGRlY29kZV9jb21wb3VuZCAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0bGluZSwgY2hhciAq KipjYW5vbmljYWwsCiAgICAgICAgLyogUEFTUzI6IHAyLT4iOjpmdW4iLCBwLT4iOmZ1biIgKi8K ICAKICAgICAgICAvKiBNb3ZlIHBvaW50ZXIgYWhlYWQgdG8gbmV4dCBkb3VibGUtY29sb24uICAq LwpAQCAtODg2MCw3ICs5NjE2LDcgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKICAJ ewogIAkgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9jcGx1 cykKICAJICAgIHAgKz0gY3BfdmFsaWRhdGVfb3BlcmF0b3IgKHApOwotQEAgLTEzNDIsOCArMTI4 OSwxMCBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUs IGNoYXIgKioqY2Fub25pY2FsLAorQEAgLTEzNjcsOCArMTM0MCwxMCBAQCBkZWNvZGVfY29tcG91 bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAog ICAgICAgIGVsc2UKICAJewogIAkgIC8qIEF0IHRoaXMgcG9pbnQgYXJncHRyLT4iZnVuIi4gICov CkBAIC04ODcyLDcgKzk2MjgsNyBAQCBpbmRleCA3NDkwMmI2Li40ZTU0YTNhIDEwMDY0NAogIAkg ICAgcCsrOwogIAkgIC8qIEF0IHRoaXMgcG9pbnQgcC0+IiIuICBTdHJpbmcgZW5kZWQuICAqLwog IAkgIC8qIE5vcGUsIEMrKyBvcGVyYXRvcnMgY291bGQgaGF2ZSBzcGFjZXMgaW4gdGhlbQotQEAg LTEzNTUsNiArMTMwNCwxOSBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBm dW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorQEAgLTEzODAsNiArMTM1NSw0MiBAQCBk ZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioq Y2Fub25pY2FsLAogIAkgICAgICAvKiBUaGUgYWJvdmUgbG9vcCBoYXMgYWxyZWFkeSBzd2FsbG93 ZWQgIm9wZXJhdG9yIi4gICovCiAgCSAgICAgIHAgKz0gY3BfdmFsaWRhdGVfb3BlcmF0b3IgKHAg LSA4KSAtIDg7CiAgCSAgICB9CkBAIC04ODg0LDE1ICs5NjQwLDY4IEBAIGluZGV4IDc0OTAyYjYu LjRlNTRhM2EgMTAwNjQ0CiArCSAgLyogS2VlcCBtZXRob2Qgb3ZlcmxvYWQgaW5mb3JtYXRpb24u ICAqLwogKwkgIGEgPSBzdHJjaHIgKHAsICcoJyk7CiArCSAgaWYgKGEgIT0gTlVMTCkKLSsJICAg IHAgPSBzdHJyY2hyIChhLCAnKScpICsgMTsKKysJICAgIHAgPSBmaW5kX21ldGhvZF9vdmVybG9h ZF9lbmQgKGEpOwogKwogKwkgIC8qIE1ha2Ugc3VyZSB3ZSBrZWVwIGltcG9ydGFudCBrZXdvcmRz IGxpa2UgImNvbnN0IiAqLwogKwkgIGlmIChzdHJuY21wIChwLCAiIGNvbnN0IiwgNikgPT0gMCkK ICsJICAgIHAgKz0gNjsKKysKKysJICAvKiBKYXZhIG1heSBhcHBlbmQgdHlwZW5hbWVzLCAgc28g YXNzdW1lIHRoYXQgaWYgdGhlcmUgaXMKKysJICAgICBhbnl0aGluZyBlbHNlIGxlZnQgaW4gKmFy Z3B0ciwgaXQgbXVzdCBiZSBhIHR5cGVuYW1lLiAgKi8KKysJICBpZiAoKnAgJiYgY3VycmVudF9s YW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YSkKKysJICAgIHsKKysJICAgICAg c3RydWN0IHR5cGUgKnR5cGU7CisrCSAgICAgIHAyID0gcDsKKysJICAgICAgd2hpbGUgKCpwMikK KysJCSsrcDI7CisrCSAgICAgIGNvcHkgPSAoY2hhciAqKSBhbGxvY2EgKHAyIC0gcCArIDEpOwor KwkgICAgICBtZW1jcHkgKGNvcHksIHAsIHAyIC0gcCk7CisrCSAgICAgIGNvcHlbcDIgLSBwXSA9 ICdcMCc7CisrCSAgICAgIHR5cGUgPSBsb29rdXBfdHlwZW5hbWUgKGN1cnJlbnRfbGFuZ3VhZ2Us IGdldF9jdXJyZW50X2FyY2ggKCksCisrCQkJCSAgICAgIGNvcHksIE5VTEwsIDEpOworKwkgICAg ICBpZiAodHlwZSAhPSBOVUxMKQorKwkJeworKwkJICAvKiBTYXZlIHRoZSBsb2NhdGlvbiBvZiB0 aGlzIGp1c3QgaW4gY2FzZSB0aGlzCisrCQkgICAgIG1ldGhvZC90eXBlIGNvbWJpbmF0aW9uIGlz bid0IGFjdHVhbGx5IGRlZmluZWQuCisrCQkgICAgIEl0IHdpbGwgYmUgY2hlY2tlZCBsYXRlci4g ICovCisrCQkgIHNhdmVkX2phdmFfYXJncHRyID0gcDsKKysJCSAgcCA9IHAyOworKwkJfQorKwkg ICAgfQogIAl9CiAgCiAgICAgICAgLyogQWxsb2NhdGUgb3VyIG93biBjb3B5IG9mIHRoZSBzdWJz dHJpbmcgYmV0d2VlbiBhcmdwdHIgYW5kCi1AQCAtMTUwOSw4ICsxNDcxLDM5IEBAIGZpbmRfbWV0 aG9kIChpbnQgZnVuZmlyc3RsaW5lLCBjaGFyICoqKmNhbm9uaWNhbCwgY2hhciAqc2F2ZWRfYXJn LAorQEAgLTE0MDgsOSArMTQxOSwyNiBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIs IGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorIAkgaGVyZSwgd2UgcmV0dXJu LiBJZiBub3QsIGFuZCB3ZSBhcmUgYXQgdGhlIGFuZCBvZiB0aGUgc3RyaW5nLAorIAkgd2UnbGwg bG9va3VwIHRoZSB3aG9sZSBzdHJpbmcgaW4gdGhlIHN5bWJvbCB0YWJsZXMuICAqLworIAorLSAg ICAgIHJldHVybiBmaW5kX21ldGhvZCAoZnVuZmlyc3RsaW5lLCBjYW5vbmljYWwsIHNhdmVkX2Fy ZywKKy0JCQkgIGNvcHksIHQsIHN5bV9jbGFzcywgbm90X2ZvdW5kX3B0cik7CistCisrICAgICAg dmFsdWVzID0gZmluZF9tZXRob2QgKGZ1bmZpcnN0bGluZSwgY2Fub25pY2FsLCBzYXZlZF9hcmcs CisrCQkJICAgIGNvcHksIHQsIHN5bV9jbGFzcywgbm90X2ZvdW5kX3B0cik7CisrICAgICAgaWYg KHNhdmVkX2phdmFfYXJncHRyICE9IE5VTEwgJiYgdmFsdWVzLm5lbHRzID09IDEpCisrCXsKKysJ ICAvKiBUaGUgdXNlciBzcGVjaWZpZWQgYSBzcGVjaWZpYyByZXR1cm4gdHlwZSBmb3IgYSBqYXZh IG1ldGhvZC4KKysJICAgICBEb3VibGUtY2hlY2sgdGhhdCBpdCByZWFsbHkgaXMgdGhlIG9uZSB0 aGUgdXNlciBzcGVjaWZpZWQuCisrCSAgICAgW1RoaXMgaXMgYSBuZWNlc3NhcnkgZXZpbCBiZWNh dXNlIHN0cmNtcF9pd19vcmRlcmVkIHN0b3BzCisrCSAgICAgY29tcGFyaXNvbnMgdG9vIHByZW1h dHVyZWx5Ll0gICovCisrCSAgc3ltID0gZmluZF9wY19zZWN0X2Z1bmN0aW9uICh2YWx1ZXMuc2Fs c1swXS5wYywKKysJCQkJICAgICAgIHZhbHVlcy5zYWxzWzBdLnNlY3Rpb24pOworKwkgIC8qIFdl IGp1c3QgZm91bmQgYSBTQUwsIHdlIGhhZCBiZXR0ZXIgYmUgYWJsZSB0byBnbyBiYWNrd2FyZHMh ICAqLworKwkgIGdkYl9hc3NlcnQgKHN5bSAhPSBOVUxMKTsKKysJICBpZiAoc3RyY21wX2l3IChT WU1CT0xfTElOS0FHRV9OQU1FIChzeW0pLCBzYXZlZF9hcmcpICE9IDApCisrCSAgICB7CisrCSAg ICAgIHhmcmVlICh2YWx1ZXMuc2Fscyk7CisrCSAgICAgIGVycm9yIChfKCJ0aGUgY2xhc3MgYCVz JyBkb2VzIG5vdCBoYXZlIGFueSBtZXRob2QgaW5zdGFuY2UgbmFtZWQgJXNcbiIpLAorKwkJICAg ICBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltX2NsYXNzKSwgY29weSk7CisrCSAgICB9CisrCX0KKysg ICAgICByZXR1cm4gdmFsdWVzOworICAgICB9IC8qIEVuZCBpZiBzeW1ib2wgZm91bmQgKi8KKyAK KyAKK0BAIC0xNTM0LDggKzE1NjIsMzkgQEAgZmluZF9tZXRob2QgKGludCBmdW5maXJzdGxpbmUs IGNoYXIgKioqY2Fub25pY2FsLCBjaGFyICpzYXZlZF9hcmcsCiAgICAgIH0KICAgIGlmIChpMSA+ IDApCiAgICAgIHsKQEAgLTg5MjgsMTMgKzk3MzcsMjMgQEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEz YSAxMDA2NDQKICsJICAgIH0KICsKICsJICBlcnJvciAoXygidGhlIGNsYXNzIGAlcycgZG9lcyBu b3QgaGF2ZSBhbnkgbWV0aG9kIGluc3RhbmNlIG5hbWVkICVzXG4iKSwKLSsJCSAgIFNZTUJPTF9Q UklOVF9OQU1FIChzeW1fY2xhc3MpLCBjb3B5KTsKKysJCSBTWU1CT0xfUFJJTlRfTkFNRSAoc3lt X2NsYXNzKSwgY29weSk7CiArCX0KICsKICAgICAgICByZXR1cm4gZGVjb2RlX2xpbmVfMiAoc3lt X2FyciwgaTEsIGZ1bmZpcnN0bGluZSwgY2Fub25pY2FsKTsKICAgICAgfQogICAgZWxzZQotQEAg LTE4MTUsNyArMTgwOCw3IEBAIHN5bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0bGluZSwgY2hhciAq KipjYW5vbmljYWwsIGNoYXIgKmNvcHksCitAQCAtMTU3Nyw3ICsxNjM2LDggQEAgc3ltdGFiX2Zy b21fZmlsZW5hbWUgKGNoYXIgKiphcmdwdHIsIGNoYXIgKnAsIGludCBpc19xdW90ZV9lbmNsb3Nl ZCwKKyAgIGNvcHkgPSAoY2hhciAqKSBhbGxvY2EgKHAgLSAqYXJncHRyICsgMSk7CisgICBtZW1j cHkgKGNvcHksICphcmdwdHIsIHAgLSAqYXJncHRyKTsKKyAgIC8qIEl0IG1heSBoYXZlIHRoZSBl bmRpbmcgcXVvdGUgcmlnaHQgYWZ0ZXIgdGhlIGZpbGUgbmFtZS4gICovCistICBpZiAoaXNfcXVv dGVfZW5jbG9zZWQgJiYgY29weVtwIC0gKmFyZ3B0ciAtIDFdID09ICciJykKKysgIGlmICgoaXNf cXVvdGVfZW5jbG9zZWQgJiYgY29weVtwIC0gKmFyZ3B0ciAtIDFdID09ICciJykKKysgICAgICB8 fCBjb3B5W3AgLSAqYXJncHRyIC0gMV0gPT0gJ1wnJykKKyAgICAgY29weVtwIC0gKmFyZ3B0ciAt IDFdID0gMDsKKyAgIGVsc2UKKyAgICAgY29weVtwIC0gKmFyZ3B0cl0gPSAwOworQEAgLTE4NDAs NyArMTkwMCw3IEBAIHN5bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0bGluZSwgY2hhciAqKipjYW5v bmljYWwsIGNoYXIgKmNvcHksCiAgCXsKICAJICBzdHJ1Y3QgYmxvY2t2ZWN0b3IgKmJ2ID0gQkxP Q0tWRUNUT1IgKFNZTUJPTF9TWU1UQUIgKHN5bSkpOwogIAkgIHN0cnVjdCBibG9jayAqYiA9IEJM T0NLVkVDVE9SX0JMT0NLIChidiwgU1RBVElDX0JMT0NLKTsKQEAgLTg5NDQsMTAgKzk3NjMsMTAg QEAgaW5kZXggNzQ5MDJiNi4uNGU1NGEzYSAxMDA2NDQKICAJfQogICAgICAgIHJldHVybiB2YWx1 ZXM7CiBkaWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4LW5hdC5jCi1pbmRl eCA3ZmM5NTg0Li5iMjg2ZGZkIDEwMDY0NAoraW5kZXggZTU1ZDk1OC4uZTQxZWQ3NCAxMDA2NDQK IC0tLSBhL2dkYi9saW51eC1uYXQuYwogKysrIGIvZ2RiL2xpbnV4LW5hdC5jCi1AQCAtMjYyNCw2 ICsyNjI0LDM5IEBAIGxpbnV4X25hdF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdl dF9vcHMgKm9wcywgQ09SRV9BRERSICphZGRyX3ApCitAQCAtMjYxOCw2ICsyNjE4LDM5IEBAIGxp bnV4X25hdF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgQ09S RV9BRERSICphZGRyX3ApCiAgICByZXR1cm4gbHAtPnN0b3BwZWRfZGF0YV9hZGRyZXNzX3A7CiAg fQogIApAQCAtODk4Nyw3ICs5ODA2LDcgQEAgaW5kZXggN2ZjOTU4NC4uYjI4NmRmZCAxMDA2NDQK ICAvKiBXYWl0IHVudGlsIExQIGlzIHN0b3BwZWQuICAqLwogIAogIHN0YXRpYyBpbnQKLUBAIC01 NTAwLDYgKzU1MzMsOCBAQCBsaW51eF9uYXRfYWRkX3RhcmdldCAoc3RydWN0IHRhcmdldF9vcHMg KnQpCitAQCAtNTU4NCw2ICs1NjE3LDggQEAgbGludXhfbmF0X2FkZF90YXJnZXQgKHN0cnVjdCB0 YXJnZXRfb3BzICp0KQogICAgdC0+dG9fdGhyZWFkX2FkZHJlc3Nfc3BhY2UgPSBsaW51eF9uYXRf dGhyZWFkX2FkZHJlc3Nfc3BhY2U7CiAgICB0LT50b19zdG9wcGVkX2J5X3dhdGNocG9pbnQgPSBs aW51eF9uYXRfc3RvcHBlZF9ieV93YXRjaHBvaW50OwogICAgdC0+dG9fc3RvcHBlZF9kYXRhX2Fk ZHJlc3MgPSBsaW51eF9uYXRfc3RvcHBlZF9kYXRhX2FkZHJlc3M7CkBAIC05MTA0LDEwICs5OTIz LDEwIEBAIGluZGV4IDY4MDQ2MDkuLjJjYjFiZjkgMTAwNjQ0CiAgCiAgLyogUHJvdmlkZSBhIHBy b3RvdHlwZSB0byBzaWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8KIGRpZmYgLS1naXQg YS9nZGIvbWFjaG9yZWFkLmMgYi9nZGIvbWFjaG9yZWFkLmMKLWluZGV4IDAyYjYxZDMuLjEzYWI1 OTUgMTAwNjQ0CitpbmRleCBhODEwYmIyLi5iNDE2OTcwIDEwMDY0NAogLS0tIGEvZ2RiL21hY2hv cmVhZC5jCiArKysgYi9nZGIvbWFjaG9yZWFkLmMKLUBAIC03NTUsNiArNzU1LDcgQEAgc3RhdGlj IHN0cnVjdCBzeW1fZm5zIG1hY2hvX3N5bV9mbnMgPSB7CitAQCAtODQyLDYgKzg0Miw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgc3ltX2ZucyBtYWNob19zeW1fZm5zID0gewogICAgbWFjaG9fbmV3X2luaXQs ICAgICAgICAgICAgICAgLyogc3ltX25ld19pbml0OiBpbml0IGFueXRoaW5nIGdibCB0byBlbnRp cmUgc3ltdGFiICovCiAgICBtYWNob19zeW1maWxlX2luaXQsICAgICAgICAgICAvKiBzeW1faW5p dDogcmVhZCBpbml0aWFsIGluZm8sIHNldHVwIGZvciBzeW1fcmVhZCgpICovCiAgICBtYWNob19z eW1maWxlX3JlYWQsICAgICAgICAgICAvKiBzeW1fcmVhZDogcmVhZCBhIHN5bWJvbCBmaWxlIGlu dG8gc3ltdGFiICovCkBAIC05MzY5LDcgKzEwMTg4LDcgQEAgaW5kZXggMjg3ZjlkZS4uMWZlMGZi ZSAxMDA2NDQKICAJCSAgICAgICBTWU1CT0xfTElOS0FHRV9OQU1FICh0c3ltYm9sKSkgPT0gMCkK ICAJICByZXR1cm4gU1lNQk9MX1ZBTFVFX0FERFJFU1MgKG1zeW1ib2wpOwogZGlmZiAtLWdpdCBh L2dkYi9taXBzLWxpbnV4LXRkZXAuYyBiL2dkYi9taXBzLWxpbnV4LXRkZXAuYwotaW5kZXggNmJi NGViNi4uMmIwNzk0MiAxMDA2NDQKK2luZGV4IDU5MjRiMzAuLjI5NTcwMjQgMTAwNjQ0CiAtLS0g YS9nZGIvbWlwcy1saW51eC10ZGVwLmMKICsrKyBiL2dkYi9taXBzLWxpbnV4LXRkZXAuYwogQEAg LTM4LDYgKzM4LDcgQEAKQEAgLTkzODAsNyArMTAxOTksNyBAQCBpbmRleCA2YmI0ZWI2Li4yYjA3 OTQyIDEwMDY0NAogIAogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X3NvX29wcyBtaXBzX3N2cjRfc29f b3BzOwogIAotQEAgLTEyMjUsNiArMTIyNiw5IEBAIG1pcHNfbGludXhfaW5pdF9hYmkgKHN0cnVj dCBnZGJhcmNoX2luZm8gaW5mbywKK0BAIC0xMjIyLDYgKzEyMjMsOSBAQCBtaXBzX2xpbnV4X2lu aXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sCiAgCXRkZXNjX251bWJlcmVkX3JlZ2lz dGVyIChmZWF0dXJlLCB0ZGVzY19kYXRhLCBNSVBTX1JFU1RBUlRfUkVHTlVNLAogIAkJCQkgInJl c3RhcnQiKTsKICAgICAgfQpAQCAtOTM5MSw3ICsxMDIxMCw3IEBAIGluZGV4IDZiYjRlYjYuLjJi MDc5NDIgMTAwNjQ0CiAgCiAgLyogUHJvdmlkZSBhIHByb3RvdHlwZSB0byBzaWxlbmNlIC1XbWlz c2luZy1wcm90b3R5cGVzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvbWlwc3JlYWQuYyBiL2dkYi9t aXBzcmVhZC5jCi1pbmRleCA0ZWY4MTdlLi4xYzUzNTc0IDEwMDY0NAoraW5kZXggMDkzMzEzZS4u OTE0NGQwMCAxMDA2NDQKIC0tLSBhL2dkYi9taXBzcmVhZC5jCiArKysgYi9nZGIvbWlwc3JlYWQu YwogQEAgLTM5NCw2ICszOTQsNyBAQCBzdGF0aWMgc3RydWN0IHN5bV9mbnMgZWNvZmZfc3ltX2Zu cyA9CkBAIC05NDY0LDEwICsxMDI4MywxMCBAQCBpbmRleCBhMDUwZjE1Li4wNGQxZjFjIDEwMDY0 NAogIAkgIGlmIChzeW0gIT0gTlVMTCkKICAJICAgIHsKIGRpZmYgLS1naXQgYS9nZGIvb2JqZmls ZXMuYyBiL2dkYi9vYmpmaWxlcy5jCi1pbmRleCAwYjA3ZTM3Li41ZGU1MzAwIDEwMDY0NAoraW5k ZXggYzI3NjNjMi4uNWQ2MjAyMCAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5jCiArKysgYi9n ZGIvb2JqZmlsZXMuYwotQEAgLTc4OSw2ICs3ODksMTAgQEAgb2JqZmlsZV9yZWxvY2F0ZTEgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3Qgc2VjdGlvbl9vZmZzZXRzICpuZXdfb2Zmc2V0 cykKK0BAIC03OTIsNiArNzkyLDEwIEBAIG9iamZpbGVfcmVsb2NhdGUxIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgc3RydWN0IHNlY3Rpb25fb2Zmc2V0cyAqbmV3X29mZnNldHMpCiAgICAgIH0K ICAgIH0KICAKQEAgLTk0NzgsNyArMTAyOTcsNyBAQCBpbmRleCAwYjA3ZTM3Li41ZGU1MzAwIDEw MDY0NAogICAgewogICAgICBzdHJ1Y3QgcGFydGlhbF9zeW1ib2wgKipwc3ltOwogIAotQEAgLTkx NCw3ICs5MTgsNyBAQCBvYmpmaWxlX3JlbG9jYXRlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwg c3RydWN0IHNlY3Rpb25fb2Zmc2V0cyAqbmV3X29mZnNldHMpCitAQCAtOTE3LDcgKzkyMSw3IEBA IG9iamZpbGVfcmVsb2NhdGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3Qgc2VjdGlv bl9vZmZzZXRzICpuZXdfb2Zmc2V0cykKICBpbnQKICBvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJv bHMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKQEAgLTk0ODcsNyArMTAzMDYsNyBAQCBp bmRleCAwYjA3ZTM3Li41ZGU1MzAwIDEwMDY0NAogIH0KICAKICAvKiBSZXR1cm4gbm9uLXplcm8g aWYgT0JKRklMRSBoYXMgZnVsbCBzeW1ib2xzLiAgKi8KLUBAIC05NTQsNiArOTU4LDIwIEBAIGhh dmVfcGFydGlhbF9zeW1ib2xzICh2b2lkKQorQEAgLTk1Nyw2ICs5NjEsMjAgQEAgaGF2ZV9wYXJ0 aWFsX3N5bWJvbHMgKHZvaWQpCiAgICAgIGlmIChvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMg KG9mcCkpCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CkBAIC05NTU1LDcgKzEwMzc0LDcgQEAgaW5k ZXggYzY4OTYyMi4uZWIzYWUxMCAxMDA2NDQKICAgIEFMTF9QU1BBQ0VfT0JKRklMRVMgKHNzLCBv YmpmaWxlKQkJCVwKICAgICAgQUxMX09CSkZJTEVfUFNZTVRBQlMgKG9iamZpbGUsIHApCiBkaWZm IC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggZDVhMTk5Yi4uYzNlZjll MSAxMDA2NDQKK2luZGV4IGFhYmM0NjEuLmUyYWI4ZDkgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2Uu YwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC02Miw2ICs2Miw3IEBAIGNvbnN0IHN0cnVjdCBleHBf ZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9zdGFuZGFyZCA9CkBAIC05NTY2LDcgKzEwMzg1LDcg QEAgaW5kZXggZDVhMTk5Yi4uYzNlZjllMSAxMDA2NDQKICAgICAgb3BfbmFtZV9zdGFuZGFyZCwK ICAgICAgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCwKICAgICAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkCi1AQCAtNTExLDYgKzUxMiwxMSBAQCB3cml0ZV9leHBfbXN5bWJvbCAoc3RydWN0IG1p bmltYWxfc3ltYm9sICptc3ltYm9sKQorQEAgLTUyMyw2ICs1MjQsMTEgQEAgd3JpdGVfZXhwX21z eW1ib2wgKHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbXN5bWJvbCkKICAgICAgICB3cml0ZV9leHBf ZWx0X3R5cGUgKG9iamZpbGVfdHlwZSAob2JqZmlsZSktPm5vZGVidWdfdGV4dF9zeW1ib2wpOwog ICAgICAgIGJyZWFrOwogIApAQCAtOTU3OCw3ICsxMDM5Nyw3IEBAIGluZGV4IGQ1YTE5OWIuLmMz ZWY5ZTEgMTAwNjQ0CiAgICAgIGNhc2UgbXN0X2RhdGE6CiAgICAgIGNhc2UgbXN0X2ZpbGVfZGF0 YToKICAgICAgY2FzZSBtc3RfYnNzOgotQEAgLTg0MSw2ICs4NDcsMTAgQEAgb3BlcmF0b3JfbGVu Z3RoX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgaW50IGVuZHBvcywKK0BAIC04 NTMsNiArODU5LDEwIEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Np b24gKmV4cHIsIGludCBlbmRwb3MsCiAgICAgICAgYXJncyA9IDE7CiAgICAgICAgYnJlYWs7CiAg CkBAIC05NTg5LDcgKzEwNDA4LDIxIEBAIGluZGV4IGQ1YTE5OWIuLmMzZWY5ZTEgMTAwNjQ0CiAg ICAgIGNhc2UgT1BfT0JKQ19NU0dDQUxMOgkvKiBPYmplY3RpdmUgQyBtZXNzYWdlIChtZXRob2Qp IGNhbGwgKi8KICAgICAgICBvcGxlbiA9IDQ7CiAgICAgICAgYXJncyA9IDEgKyBsb25nZXN0X3Rv X2ludCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOwotQEAgLTEzNjEsNiArMTM3 MSwxNTEgQEAgcGFyc2VyX2ZwcmludGYgKEZJTEUgKngsIGNvbnN0IGNoYXIgKnksIC4uLikKK0BA IC04ODksNiArODk5LDEzIEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoc3RydWN0IGV4cHJl c3Npb24gKmV4cHIsIGludCBlbmRwb3MsCisgICAgICAgYXJncyA9IDE7CisgICAgICAgYnJlYWs7 CisgCisrICAgIGNhc2UgT1BfQURMX0ZVTkM6CisrICAgICAgb3BsZW4gPSBsb25nZXN0X3RvX2lu dCAoZXhwci0+ZWx0c1tlbmRwb3MgLSAyXS5sb25nY29uc3QpOworKyAgICAgIG9wbGVuID0gNCAr IEJZVEVTX1RPX0VYUF9FTEVNIChvcGxlbiArIDEpOworKyAgICAgIG9wbGVuKys7CisrICAgICAg b3BsZW4rKzsKKysgICAgICBicmVhazsKKysKKyAgICAgY2FzZSBPUF9MQUJFTEVEOgorICAgICBj YXNlIFNUUlVDVE9QX1NUUlVDVDoKKyAgICAgY2FzZSBTVFJVQ1RPUF9QVFI6CitAQCAtMTM3Myw2 ICsxMzkwLDE1MSBAQCBwYXJzZXJfZnByaW50ZiAoRklMRSAqeCwgY29uc3QgY2hhciAqeSwgLi4u KQogICAgdmFfZW5kIChhcmdzKTsKICB9CiAgCkBAIC05NzQyLDEwICsxMDU3NSwxMCBAQCBpbmRl eCBkNWExOTliLi5jM2VmOWUxIDEwMDY0NAogIF9pbml0aWFsaXplX3BhcnNlICh2b2lkKQogIHsK IGRpZmYgLS1naXQgYS9nZGIvcGFyc2VyLWRlZnMuaCBiL2dkYi9wYXJzZXItZGVmcy5oCi1pbmRl eCA2ZmNmN2FlLi4zZjVlZmU4IDEwMDY0NAoraW5kZXggYzRlYjFhMC4uMmE0M2ZlMyAxMDA2NDQK IC0tLSBhL2dkYi9wYXJzZXItZGVmcy5oCiArKysgYi9nZGIvcGFyc2VyLWRlZnMuaAotQEAgLTE5 MCw2ICsxOTAsMTMgQEAgZXh0ZXJuIHZvaWQgb3BlcmF0b3JfbGVuZ3RoIChzdHJ1Y3QgZXhwcmVz c2lvbiAqLCBpbnQsIGludCAqLCBpbnQgKik7CitAQCAtMTkyLDYgKzE5MiwxMyBAQCBleHRlcm4g dm9pZCBvcGVyYXRvcl9sZW5ndGggKHN0cnVjdCBleHByZXNzaW9uICosIGludCwgaW50ICosIGlu dCAqKTsKICAKICBleHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKHN0cnVjdCBl eHByZXNzaW9uICosIGludCwgaW50ICosIGludCAqKTsKICAKQEAgLTk3NTksNyArMTA1OTIsNyBA QCBpbmRleCA2ZmNmN2FlLi4zZjVlZmU4IDEwMDY0NAogIGV4dGVybiBjaGFyICpvcF9uYW1lX3N0 YW5kYXJkIChlbnVtIGV4cF9vcGNvZGUpOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqZm9sbG93 X3R5cGVzIChzdHJ1Y3QgdHlwZSAqKTsKLUBAIC0yNjgsNiArMjc1LDIwIEBAIHN0cnVjdCBleHBf ZGVzY3JpcHRvcgorQEAgLTI3MCw2ICsyNzcsMjAgQEAgc3RydWN0IGV4cF9kZXNjcmlwdG9yCiAg ICAgICAgIHRoZSBudW1iZXIgb2Ygc3ViZXhwcmVzc2lvbnMgaXQgdGFrZXMuICAqLwogICAgICB2 b2lkICgqb3BlcmF0b3JfbGVuZ3RoKSAoc3RydWN0IGV4cHJlc3Npb24qLCBpbnQsIGludCosIGlu dCAqKTsKICAKQEAgLTk3ODAsNyArMTA2MTMsNyBAQCBpbmRleCA2ZmNmN2FlLi4zZjVlZmU4IDEw MDY0NAogICAgICAvKiBOYW1lIG9mIHRoaXMgb3BlcmF0b3IgZm9yIGR1bXBpbmcgcHVycG9zZXMu ICAqLwogICAgICBjaGFyICooKm9wX25hbWUpIChlbnVtIGV4cF9vcGNvZGUpOwogIAotQEAgLTMw MCw0ICszMjEsOCBAQCBleHRlcm4gdm9pZCBwcmludF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBl eHByZXNzaW9uICosIGludCAqLAorQEAgLTMwMiw0ICszMjMsOCBAQCBleHRlcm4gdm9pZCBwcmlu dF9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICosIGludCAqLAogIAogIGV4dGVy biB2b2lkIHBhcnNlcl9mcHJpbnRmIChGSUxFICosIGNvbnN0IGNoYXIgKiwgLi4uKSBBVFRSX0ZP Uk1BVCAocHJpbnRmLCAyICwzKTsKICAKQEAgLTE1NDUxLDcgKzE2Mjg0LDcgQEAgaW5kZXggYTc5 MjgxOS4uYmRhYzgwZSAxMDA2NDQKICAKICAMCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKLWluZGV4IDkxOTZm MDguLjUyMzBhOGMgMTAwNjQ0CitpbmRleCAxYmZhNzAwLi41MmY5YjM5IDEwMDY0NAogLS0tIGEv Z2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogKysrIGIvZ2RiL3B5dGhvbi9weXRob24taW50 ZXJuYWwuaAogQEAgLTYxLDM2ICs2MSw3OSBAQCB0eXBlZGVmIGludCBQeV9zc2l6ZV90OwpAQCAt MTYxNjYsMTAgKzE2OTk5LDEwIEBAIGluZGV4IDk0YTc3ZmIuLjdlYTY4ZDIgMTAwNjQ0CiAgfQog IAogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0LmMgYi9nZGIvc29saWItc3ZyNC5jCi1pbmRl eCA1Njg5YmYzLi4yYjYwOWFmIDEwMDY0NAoraW5kZXggOGVkYzg4OS4uNWVhMTc3OSAxMDA2NDQK IC0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKICsrKyBiL2dkYi9zb2xpYi1zdnI0LmMKLUBAIC0xMjE4 LDcgKzEyMTgsOCBAQCBzdnI0X2luX2R5bnN5bV9yZXNvbHZlX2NvZGUgKENPUkVfQUREUiBwYykK K0BAIC0xMjQxLDcgKzEyNDEsOCBAQCBzdnI0X2luX2R5bnN5bV9yZXNvbHZlX2NvZGUgKENPUkVf QUREUiBwYykKICAJICAgJiYgcGMgPCBpbmZvLT5pbnRlcnBfdGV4dF9zZWN0X2hpZ2gpCiAgCSAg fHwgKHBjID49IGluZm8tPmludGVycF9wbHRfc2VjdF9sb3cKICAJICAgICAgJiYgcGMgPCBpbmZv LT5pbnRlcnBfcGx0X3NlY3RfaGlnaCkKQEAgLTE2MTc5LDcgKzE3MDEyLDcgQEAgaW5kZXggNTY4 OWJmMy4uMmI2MDlhZiAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYW4gZXhlY3V0YWJsZSdzIEFC RkQgYW5kIHRhcmdldCwgY29tcHV0ZSB0aGUgZW50cnktcG9pbnQKLUBAIC0xOTcxLDcgKzE5NzIs NiBAQCBzdHJ1Y3QgdGFyZ2V0X3NvX29wcyBzdnI0X3NvX29wczsKK0BAIC0yMDM4LDcgKzIwMzks NiBAQCBzdHJ1Y3QgdGFyZ2V0X3NvX29wcyBzdnI0X3NvX29wczsKICBzdGF0aWMgc3RydWN0IHN5 bWJvbCAqCiAgZWxmX2xvb2t1cF9saWJfc3ltYm9sIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwKICAJCSAgICAgICBjb25zdCBjaGFyICpuYW1lLApAQCAtMTYxODcsNyArMTcwMjAsNyBA QCBpbmRleCA1Njg5YmYzLi4yYjYwOWFmIDEwMDY0NAogIAkJICAgICAgIGNvbnN0IGRvbWFpbl9l bnVtIGRvbWFpbikKICB7CiAgICBiZmQgKmFiZmQ7Ci1AQCAtMTk4OSw4ICsxOTg5LDcgQEAgZWxm X2xvb2t1cF9saWJfc3ltYm9sIChjb25zdCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0y MDU2LDggKzIwNTYsNyBAQCBlbGZfbG9va3VwX2xpYl9zeW1ib2wgKGNvbnN0IHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLAogICAgaWYgKGFiZmQgPT0gTlVMTCB8fCBzY2FuX2R5bnRhZyAoRFRfU1lN Qk9MSUMsIGFiZmQsIE5VTEwpICE9IDEpCiAgICAgIHJldHVybiBOVUxMOwogIApAQCAtMTYyMzcs NyArMTcwNzAsNyBAQCBpbmRleCA1NzNmNzM2Li41MWJmY2U5IDEwMDY0NAogIAogICNlbmRpZgog ZGlmZiAtLWdpdCBhL2dkYi9zb21yZWFkLmMgYi9nZGIvc29tcmVhZC5jCi1pbmRleCBjN2JlYWJh Li5lMzExNjRjIDEwMDY0NAoraW5kZXggM2Q5M2M1ZS4uYTk0MzgwNiAxMDA2NDQKIC0tLSBhL2dk Yi9zb21yZWFkLmMKICsrKyBiL2dkYi9zb21yZWFkLmMKIEBAIC00MzIsNiArNDMyLDcgQEAgc3Rh dGljIHN0cnVjdCBzeW1fZm5zIHNvbV9zeW1fZm5zID0KQEAgLTE2MzUzLDEwICsxNzE4NiwxMCBA QCBpbmRleCAyY2FmOWQyLi43YWRjMzk5IDEwMDY0NAogICAgZm9yIChpID0gMCwgZmkgPSB0cmFp bGluZzsgZmkgJiYgY291bnQtLTsgaSsrLCBmaSA9IGdldF9wcmV2X2ZyYW1lIChmaSkpCiAgICAg IHsKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmlsZS5jIGIvZ2RiL3N5bWZpbGUuYwotaW5kZXggYmM1 MjQwNi4uNWQ1ZDgzZiAxMDA2NDQKK2luZGV4IDg3MDU0MjAuLjE2Zjk2YTEgMTAwNjQ0CiAtLS0g YS9nZGIvc3ltZmlsZS5jCiArKysgYi9nZGIvc3ltZmlsZS5jCi1AQCAtOTY2LDEzICs5NjYsMTYg QEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICphYmZkLAorQEAg LTk2OCwxMyArOTY4LDE2IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMg KGJmZCAqYWJmZCwKICAgIC8qIEdpdmUgdXNlciBhIGNoYW5jZSB0byBidXJwIGlmIHdlJ2QgYmUK ICAgICAgIGludGVyYWN0aXZlbHkgd2lwaW5nIG91dCBhbnkgZXhpc3Rpbmcgc3ltYm9scy4gICov CiAgCkBAIC0xNjM3NSw3ICsxNzIwOCw3IEBAIGluZGV4IGJjNTI0MDYuLjVkNWQ4M2YgMTAwNjQ0 CiAgICBkaXNjYXJkX2NsZWFudXBzIChteV9jbGVhbnVwcyk7CiAgCiAgICAvKiBXZSBlaXRoZXIg Y3JlYXRlZCBhIG5ldyBtYXBwZWQgc3ltYm9sIHRhYmxlLCBtYXBwZWQgYW4gZXhpc3RpbmcKLUBA IC05OTksNiArMTAwMiw4IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMg KGJmZCAqYWJmZCwKK0BAIC0xMDAxLDYgKzEwMDQsOCBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9h ZGRyc19vcl9vZmZzZXRzIChiZmQgKmFiZmQsCiAgCiAgICBpZiAoKGZsYWdzICYgT0JKRl9SRUFE Tk9XKSB8fCByZWFkbm93X3N5bWJvbF9maWxlcykKICAgICAgewpAQCAtMTYzODQsNyArMTcyMTcs NyBAQCBpbmRleCBiYzUyNDA2Li41ZDVkODNmIDEwMDY0NAogICAgICAgIGlmIChmcm9tX3R0eSB8 fCBpbmZvX3ZlcmJvc2UpCiAgCXsKICAJICBwcmludGZfdW5maWx0ZXJlZCAoXygiZXhwYW5kaW5n IHRvIGZ1bGwgc3ltYm9scy4uLiIpKTsKLUBAIC0yMzIxLDYgKzIzMjYsNyBAQCByZXJlYWRfc3lt Ym9scyAodm9pZCkKK0BAIC0yMzIzLDYgKzIzMjgsNyBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkK ICAJICBvYmpmaWxlLT5zeW10YWJzID0gTlVMTDsKICAJICBvYmpmaWxlLT5wc3ltdGFicyA9IE5V TEw7CiAgCSAgb2JqZmlsZS0+cHN5bXRhYnNfYWRkcm1hcCA9IE5VTEw7CkBAIC0xNjM5Miw3ICsx NzIyNSw3IEBAIGluZGV4IGJjNTI0MDYuLjVkNWQ4M2YgMTAwNjQ0CiAgCSAgb2JqZmlsZS0+ZnJl ZV9wc3ltdGFicyA9IE5VTEw7CiAgCSAgb2JqZmlsZS0+Y3BfbmFtZXNwYWNlX3N5bXRhYiA9IE5V TEw7CiAgCSAgb2JqZmlsZS0+bXN5bWJvbHMgPSBOVUxMOwotQEAgLTIzMzEsNiArMjMzNyw4IEBA IHJlcmVhZF9zeW1ib2xzICh2b2lkKQorQEAgLTIzMzMsNiArMjMzOSw4IEBAIHJlcmVhZF9zeW1i b2xzICh2b2lkKQogIAkgIG1lbXNldCAoJm9iamZpbGUtPm1zeW1ib2xfZGVtYW5nbGVkX2hhc2gs IDAsCiAgCQkgIHNpemVvZiAob2JqZmlsZS0+bXN5bWJvbF9kZW1hbmdsZWRfaGFzaCkpOwogIApA QCAtMTY0MDIsMTAgKzE3MjM1LDEwIEBAIGluZGV4IGJjNTI0MDYuLjVkNWQ4M2YgMTAwNjQ0CiAg CSAgb2JqZmlsZS0+bWFjcm9fY2FjaGUgPSBiY2FjaGVfeG1hbGxvYyAoKTsKICAJICBvYmpmaWxl LT5maWxlbmFtZV9jYWNoZSA9IGJjYWNoZV94bWFsbG9jICgpOwogZGlmZiAtLWdpdCBhL2dkYi9z eW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCi1pbmRleCBlZmEwNjllLi5iNTIwYjkzIDEwMDY0NAor aW5kZXggZmU5NTI1NS4uMDc1NjEwYiAxMDA2NDQKIC0tLSBhL2dkYi9zeW1maWxlLmgKICsrKyBi L2dkYi9zeW1maWxlLmgKLUBAIC0xMzksNiArMTM5LDEyIEBAIHN0cnVjdCBzeW1fZm5zCitAQCAt MTQxLDYgKzE0MSwxMiBAQCBzdHJ1Y3Qgc3ltX2ZucwogIAogICAgdm9pZCAoKnN5bV9yZWFkKSAo c3RydWN0IG9iamZpbGUgKiwgaW50KTsKICAKQEAgLTE2NDE4LDcgKzE3MjUxLDcgQEAgaW5kZXgg ZWZhMDY5ZS4uYjUyMGI5MyAxMDA2NDQKICAgIC8qIENhbGxlZCB3aGVuIHdlIGFyZSBmaW5pc2hl ZCB3aXRoIGFuIG9iamZpbGUuICBTaG91bGQgZG8gYWxsCiAgICAgICBjbGVhbnVwIHRoYXQgaXMg c3BlY2lmaWMgdG8gdGhlIG9iamVjdCBmaWxlIGZvcm1hdCBmb3IgdGhlCiAgICAgICBwYXJ0aWN1 bGFyIG9iamZpbGUuICAqLwotQEAgLTMxNSw4ICszMjEsNyBAQCBleHRlcm4gaW50IGF1dG9fc29s aWJfbGltaXQ7CitAQCAtMzMwLDggKzMzNiw3IEBAIGV4dGVybiBpbnQgYXV0b19zb2xpYl9saW1p dDsKICAKICBleHRlcm4gdm9pZCBzZXRfaW5pdGlhbF9sYW5ndWFnZSAodm9pZCk7CiAgCkBAIC0x NjQyOCw3ICsxNzI2MSw3IEBAIGluZGV4IGVmYTA2OWUuLmI1MjBiOTMgMTAwNjQ0CiAgCiAgZXh0 ZXJuIHZvaWQgZGlzY2FyZF9wc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCi1A QCAtMzg3LDcgKzM5Miw3IEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0 IHN5bWZpbGVfc2VnbWVudF9kYXRhICpkYXRhKTsKK0BAIC00MDIsNyArNDA3LDcgQEAgdm9pZCBm cmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1Y3Qgc3ltZmlsZV9zZWdtZW50X2RhdGEgKmRh dGEpOwogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAgCiAgZXh0ZXJuIGludCBkd2FyZjJfaGFz X2luZm8gKHN0cnVjdCBvYmpmaWxlICopOwpAQCAtMTkxNzgsMTggKzIwMDExLDE4IEBAIGluZGV4 IDAwMDAwMDAuLjVkYTczNzgKICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcyJyA8cmVwZWF0cyA3 OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJwIHRlbXAzIiAiID0g JzMnIDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMiCiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4gYi9nZGIvdGVzdHN1aXRlL2dkYi5j cC9NYWtlZmlsZS5pbgotaW5kZXggYzk5MGE2NC4uYzk2NGRiOSAxMDA2NDQKK2luZGV4IGQ3ODI1 OGUuLjE3NzQyNDQgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9NYWtlZmlsZS5p bgogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4KIEBAIC00LDcgKzQsNyBA QCBzcmNkaXIgPSBAc3JjZGlyQAogIEVYRUNVVEFCTEVTID0gYW1iaWd1b3VzIGFubm90YTIgYW5v bi11bmlvbiBjcGx1c2Z1bmNzIGN0dGlhZGQgXAogIAlkZXJpdmF0aW9uIGluaGVyaXQgbG9jYWwg bWVtYmVyLXB0ciBtZXRob2QgbWlzYyBcCiAgICAgICAgICBvdmVybG9hZCBvdmxkYnJlYWsgcmVm LXR5cCByZWYtdHlwMiB0ZW1wbGF0ZXMgdXNlcmRlZiB2aXJ0ZnVuYyBuYW1lc3BhY2UgXAotLQly ZWYtdHlwZXMgcmVmLXBhcmFtcyBtZXRob2QyIHByOTU5NCBnZGIyNDk1IHZpcnRmdW5jMgotKwly ZWYtdHlwZXMgcmVmLXBhcmFtcyBtZXRob2QyIHByOTU5NCBnZGIyNDk1IGdkYjk1OTMgdmlydGZ1 bmMyCistCXJlZi10eXBlcyByZWYtcGFyYW1zIG1ldGhvZDIgcHI5NTk0IGdkYjI0OTUgdmlydGZ1 bmMyIHByOTA2NyBcCisrCXJlZi10eXBlcyByZWYtcGFyYW1zIG1ldGhvZDIgcHI5NTk0IGdkYjI0 OTUgZ2RiOTU5MyB2aXJ0ZnVuYzIgcHI5MDY3IFwKKyAJcHIxMDcyCiAgCiAgYWxsIGluZm8gaW5z dGFsbC1pbmZvIGR2aSBpbnN0YWxsIHVuaW5zdGFsbCBpbnN0YWxsY2hlY2sgY2hlY2s6Ci0gCUBl Y2hvICJOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICRALi4uIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2NwLXJlbG9jYXRlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwLXJl bG9jYXRlLmV4cAogaW5kZXggZjgxYTIxMi4uMzBkMzYyYSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2NwLXJlbG9jYXRlLmV4cApAQCAtMTkyMTMsMTEgKzIwMDQ2LDExNzggQEAg aW5kZXggZjgxYTIxMi4uMzBkMzYyYSAxMDA2NDQKIC1nZGJfdGVzdCAiYnJlYWsgKickZnVuYzJf bmFtZSciIFwKICtnZGJfdGVzdCAiYnJlYWsgKiRmdW5jMl9uYW1lIiBcCiAgICAgICJCcmVha3Bv aW50ICRkZWNpbWFsIGF0IDB4Mi4uLi46IGZpbGUgLioiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVu Y3MuY2MKLWluZGV4IGY0Zjc4YTYuLjExZGJhMDYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRl L2dkYi5jcC9jcGx1c2Z1bmNzLmNjCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1 bmNzLmNjCi1AQCAtMTk1LDYgKzE5NSwxMiBAQCBjaGFyICoJZG1fdHlwZV9jaGFyX3N0YXIgKGNo YXIgKiBwKQkJeyByZXR1cm4gcDsgfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L2NwZXhwcnMuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGV4cHJzLmNjCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMmJjYTRjZAorLS0tIC9kZXYvbnVsbAorKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BleHBycy5jYworQEAgLTAsMCArMSw0MzEgQEAKKysvKiBU aGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENv cHlyaWdodCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyAgIENvbnRyaWJ1dGVkIGJ5IFJlZCBIYXQsIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBLZWl0 aCBTZWl0ei4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysg ICBQbGVhc2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRpb25zIHRvIHRo aXMgZmlsZSB0bzoKKysgICBidWctZ2RiQGdudS5vcmcgICovCisrCisrI2luY2x1ZGUgPHN0ZGxp Yi5oPgorKyNpbmNsdWRlIDxpb3N0cmVhbT4KKysKKysvLyBGb3J3YXJkIGRlY2xzCisrY2xhc3Mg YmFzZTsKKytjbGFzcyBkZXJpdmVkOworKworKy8vIEEgc2ltcGxlIHRlbXBsYXRlIHdpdGggc3Bl Y2lhbGl6YXRpb25zCisrdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisrY2xhc3MgdGNsYXNzCisrewor K3B1YmxpYzoKKysgIHZvaWQgZG9fc29tZXRoaW5nICgpIHsgfSAvLyB0Y2xhc3M8VD46OmRvX3Nv bWV0aGluZworK307CisrCisrdGVtcGxhdGUgPD4KKyt2b2lkIHRjbGFzczxjaGFyPjo6ZG9fc29t ZXRoaW5nICgpIHsgfSAvLyB0Y2xhc3M8Y2hhcj46OmRvX3NvbWV0aGluZworKworK3RlbXBsYXRl IDw+Cisrdm9pZCB0Y2xhc3M8aW50Pjo6ZG9fc29tZXRoaW5nICgpIHsgfSAvLyB0Y2xhc3M8aW50 Pjo6ZG9fc29tZXRoaW5nCisrCisrdGVtcGxhdGU8PgorK3ZvaWQgdGNsYXNzPGxvbmc+Ojpkb19z b21ldGhpbmcgKCkgeyB9IC8vIHRjbGFzczxsb25nPjo6ZG9fc29tZXRoaW5nCisrCisrdGVtcGxh dGU8PgorK3ZvaWQgdGNsYXNzPHNob3J0Pjo6ZG9fc29tZXRoaW5nICgpIHsgfSAvLyB0Y2xhc3M8 c2hvcnQ+Ojpkb19zb21ldGhpbmcKKysKKysvLyBBIHNpbXBsZSB0ZW1wbGF0ZSB3aXRoIG11bHRp cGxlIHRlbXBsYXRlIHBhcmFtZXRlcnMKKyt0ZW1wbGF0ZSA8Y2xhc3MgQSwgY2xhc3MgQiwgY2xh c3MgQywgY2xhc3MgRCwgY2xhc3MgRT4KKyt2b2lkIGZsdWJiZXIgKHZvaWQpIC8vIGZsdWJiZXIK Kyt7CisrICBBIGE7CisrICBCIGI7CisrICBDIGM7CisrICBEIGQ7CisrICBFIGU7CisrCisrICAr K2E7CisrICArK2I7CisrICArK2M7CisrICArK2Q7CisrICArK2U7CisrfQorKworKy8vIFNvbWUg Y29udHJpdmVkIHBvbGljaWVzCisrdGVtcGxhdGUgPGNsYXNzIFQ+Cisrc3RydWN0IG9wZXJhdGlv bl8xCisreworKyAgc3RhdGljIHZvaWQgZnVuY3Rpb24gKHZvaWQpIHsgfSAvLyBvcGVyYXRpb25f MTxUPjo6ZnVuY3Rpb24KKyt9OworKworK3RlbXBsYXRlIDxjbGFzcyBUPgorK3N0cnVjdCBvcGVy YXRpb25fMgorK3sKKysgIHN0YXRpYyB2b2lkIGZ1bmN0aW9uICh2b2lkKSB7IH0gLy8gb3BlcmF0 aW9uXzI8VD46OmZ1bmN0aW9uCisrfTsKKysKKyt0ZW1wbGF0ZSA8Y2xhc3MgVD4KKytzdHJ1Y3Qg b3BlcmF0aW9uXzMKKyt7CisrICBzdGF0aWMgdm9pZCBmdW5jdGlvbiAodm9pZCkgeyB9IC8vIG9w ZXJhdGlvbl8zPFQ+OjpmdW5jdGlvbgorK307CisrCisrdGVtcGxhdGUgPGNsYXNzIFQ+Cisrc3Ry dWN0IG9wZXJhdGlvbl80CisreworKyAgc3RhdGljIHZvaWQgZnVuY3Rpb24gKHZvaWQpIHsgfSAv LyBvcGVyYXRpb25fNDxUPjo6ZnVuY3Rpb24KKyt9OworKworKy8vIEEgcG9saWN5LWJhc2VkIGNs YXNzIHcvIGFuZCB3L28gZGVmYXVsdCBwb2xpY3kKKyt0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3Mg UG9saWN5PgorK2NsYXNzIHBvbGljeSA6IHB1YmxpYyBQb2xpY3kKKyt7CisrcHVibGljOgorKyAg cG9saWN5IChUIG9iaikgOiBvYmpfIChvYmopIHsgfSAvLyBwb2xpY3k8VCwgUG9saWN5Pjo6cG9s aWN5CisrCisrcHJpdmF0ZToKKysgIFQgb2JqXzsKKyt9OworKworK3RlbXBsYXRlIDxjbGFzcyBU LCBjbGFzcyBQb2xpY3kgPSBvcGVyYXRpb25fMTxUPiA+CisrY2xhc3MgcG9saWN5ZCA6IHB1Ymxp YyBQb2xpY3kKKyt7CisrcHVibGljOgorKyAgcG9saWN5ZCAoVCBvYmopIDogb2JqXyAob2JqKSB7 IH0gLy8gcG9saWN5ZDxULCBQb2xpY3k+Ojpwb2xpY3lkCisrICB+cG9saWN5ZCAodm9pZCkgeyB9 IC8vIHBvbGljeWQ8VCwgUG9saWN5Pjo6fnBvbGljeWQKKysKKytwcml2YXRlOgorKyAgVCBvYmpf OworK307CisrCisrdHlwZWRlZiBwb2xpY3k8aW50LCBvcGVyYXRpb25fMTx2b2lkKj4gPiBwb2xp Y3kxOworK3R5cGVkZWYgcG9saWN5PGludCwgb3BlcmF0aW9uXzI8dm9pZCo+ID4gcG9saWN5MjsK Kyt0eXBlZGVmIHBvbGljeTxpbnQsIG9wZXJhdGlvbl8zPHZvaWQqPiA+IHBvbGljeTM7CisrdHlw ZWRlZiBwb2xpY3k8aW50LCBvcGVyYXRpb25fNDx2b2lkKj4gPiBwb2xpY3k0OworKworK3R5cGVk ZWYgcG9saWN5ZDxpbnQ+IHBvbGljeWQxOworK3R5cGVkZWYgcG9saWN5ZDxsb25nPiBwb2xpY3lk MjsKKyt0eXBlZGVmIHBvbGljeWQ8Y2hhcj4gcG9saWN5ZDM7CisrdHlwZWRlZiBwb2xpY3lkPGJh c2U+IHBvbGljeWQ0OworK3R5cGVkZWYgcG9saWN5ZDx0Y2xhc3M8aW50PiA+IHBvbGljeWQ1Owor KworK2NsYXNzIGZsdWZmIHsgfTsKKytzdGF0aWMgZmx1ZmYgKmdfZmx1ZmYgPSBuZXcgZmx1ZmYg KCk7CisrCisrY2xhc3MgYmFzZQorK3sKKytwcm90ZWN0ZWQ6CisrICBpbnQgZm9vXzsKKysKKytw dWJsaWM6CisrICBiYXNlICh2b2lkKSA6IGZvb18gKDQyKSB7IH0gLy8gYmFzZTo6YmFzZSh2b2lk KQorKyAgYmFzZSAoaW50IGZvbykgOiBmb29fIChmb28pIHsgfSAvLyBiYXNlOjpiYXNlKGludCkK KysgIH5iYXNlICh2b2lkKSB7IH0gLy8gYmFzZTo6fmJhc2UKKysKKysgIC8vIFNvbWUgb3Zlcmxv YWRlZCBtZXRob2RzCisrICBpbnQgb3ZlcmxvYWQgKHZvaWQpIGNvbnN0IHsgcmV0dXJuIDA7IH0g Ly8gYmFzZTo6b3ZlcmxvYWQodm9pZCkgY29uc3QKKysgIGludCBvdmVybG9hZCAoaW50IGkpIGNv bnN0IHsgcmV0dXJuIDE7IH0gLy8gYmFzZTo6b3ZlcmxvYWQoaW50KSBjb25zdAorKyAgaW50IG92 ZXJsb2FkIChzaG9ydCBzKSBjb25zdCB7IHJldHVybiAyOyB9IC8vIGJhc2U6Om92ZXJsb2FkKHNo b3J0KSBjb25zdAorKyAgaW50IG92ZXJsb2FkIChsb25nIGwpIGNvbnN0IHsgcmV0dXJuIDM7IH0g Ly8gYmFzZTo6b3ZlcmxvYWQobG9uZykgY29uc3QKKysgIGludCBvdmVybG9hZCAoY2hhciogYSkg Y29uc3QgeyByZXR1cm4gNDsgfSAvLyBiYXNlOjpvdmVybG9hZChjaGFyKikgY29uc3QKKysgIGlu dCBvdmVybG9hZCAoYmFzZSYgYikgY29uc3QgeyByZXR1cm4gNTsgfSAvLyBiYXNlOjpvdmVybG9h ZChiYXNlJikgY29uc3QKKysKKysgIC8vIE9wZXJhdG9ycworKyAgaW50IG9wZXJhdG9yKyAoYmFz ZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3IrCisrICB7IHJldHVybiBmb29fICsg by5mb29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yKysgKHZvaWQpIC8vIGJhc2U6Om9wZXJhdG9y KysKKysgIHsgKytmb29fOyByZXR1cm4gKnRoaXM7IH0KKysKKysgIGJhc2Ugb3BlcmF0b3IrPShi YXNlIGNvbnN0JiBvKSAvLyBiYXNlOjpvcGVyYXRvcis9CisrICB7IGZvb18gKz0gby5mb29fOyBy ZXR1cm4gKnRoaXM7IH0KKysKKysgIGludCBvcGVyYXRvci0gKGJhc2UgY29uc3QmIG8pIGNvbnN0 IC8vIGJhc2U6Om9wZXJhdG9yLQorKyAgeyByZXR1cm4gZm9vXyAtIG8uZm9vXzsgfQorKworKyAg YmFzZSBvcGVyYXRvci0tICh2b2lkKSAvLyBiYXNlOjpvcGVyYXRvci0tCisrICB7IC0tZm9vXzsg cmV0dXJuICp0aGlzOyB9CisrCisrICBiYXNlIG9wZXJhdG9yLT0gKGJhc2UgY29uc3QmIG8pIC8v IGJhc2U6Om9wZXJhdG9yLT0KKysgIHsgZm9vXyAtPSBvLmZvb187IHJldHVybiAqdGhpczsgfQor KworKyAgaW50IG9wZXJhdG9yKiAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0 b3IqCisrICB7IHJldHVybiBmb29fICogby5mb29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yKj0g KGJhc2UgY29uc3QmIG8pIC8vIGJhc2U6Om9wZXJhdG9yKj0KKysgIHsgZm9vXyAqPSBvLmZvb187 IHJldHVybiAqdGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yLyAoYmFzZSBjb25zdCYgbykgY29u c3QgLy8gYmFzZTo6b3BlcmF0b3IvCisrICB7IHJldHVybiBmb29fIC8gby5mb29fOyB9CisrCisr ICBiYXNlIG9wZXJhdG9yLz0gKGJhc2UgY29uc3QmIG8pIC8vIGJhc2U6Om9wZXJhdG9yLz0KKysg IHsgZm9vXyAvPSBvLmZvb187IHJldHVybiAqdGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yJSAo YmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3IlCisrICB7IHJldHVybiBmb29f ICUgby5mb29fOyB9CisrICAKKysgIGJhc2Ugb3BlcmF0b3IlPSAoYmFzZSBjb25zdCYgbykgLy8g YmFzZTo6b3BlcmF0b3IlPQorKyAgeyBmb29fICU9IG8uZm9vXzsgcmV0dXJuICp0aGlzOyB9Cisr CisrICBib29sIG9wZXJhdG9yPCAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0 b3I8CisrICB7IHJldHVybiBmb29fIDwgby5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yPD0g KGJhc2UgY29uc3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yPD0KKysgIHsgcmV0dXJuIGZv b18gPD0gby5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yPiAoYmFzZSBjb25zdCYgbykgY29u c3QgLy8gYmFzZTo6b3BlcmF0b3I+CisrICB7IHJldHVybiBmb29fID4gby5mb29fOyB9CisrCisr ICBib29sIG9wZXJhdG9yPj0gKGJhc2UgY29uc3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9y Pj0KKysgIHsgcmV0dXJuIGZvb18gPj0gby5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yIT0g KGJhc2UgY29uc3QmIG8pIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9yIT0KKysgIHsgcmV0dXJuIGZv b18gIT0gby5mb29fOyB9CisrCisrICBib29sIG9wZXJhdG9yPT0gKGJhc2UgY29uc3QmIG8pIGNv bnN0IC8vIGJhc2U6Om9wZXJhdG9yPT0KKysgIHsgcmV0dXJuIGZvb18gPT0gby5mb29fOyB9Cisr CisrICBib29sIG9wZXJhdG9yISAodm9pZCkgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3IhCisrICB7 IHJldHVybiAhZm9vXzsgfQorKworKyAgYm9vbCBvcGVyYXRvciYmIChiYXNlIGNvbnN0JiBvKSBj b25zdCAvLyBiYXNlOjpvcGVyYXRvciYmCisrICB7IHJldHVybiBmb29fICYmIG8uZm9vXzsgfQor KworKyAgYm9vbCBvcGVyYXRvcnx8IChiYXNlIGNvbnN0JiBvKSBjb25zdCAvLyBiYXNlOjpvcGVy YXRvcnx8CisrICB7IHJldHVybiBmb29fIHx8IG8uZm9vXzsgfQorKworKyAgaW50IG9wZXJhdG9y PDwgKGludCB2YWx1ZSkgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3I8PAorKyAgeyByZXR1cm4gZm9v XyAgPDwgdmFsdWU7IH0KKysKKysgIGJhc2Ugb3BlcmF0b3I8PD0gKGludCB2YWx1ZSkgLy8gYmFz ZTo6b3BlcmF0b3I8PD0KKysgIHsgZm9vXyA8PD0gdmFsdWU7IHJldHVybiAqdGhpczsgfQorKwor KyAgaW50IG9wZXJhdG9yPj4gKGludCB2YWx1ZSkgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3I+Pgor KyAgeyByZXR1cm4gZm9vXyAgPj4gdmFsdWU7IH0KKysKKysgIGJhc2Ugb3BlcmF0b3I+Pj0gKGlu dCB2YWx1ZSkgLy8gYmFzZTo6b3BlcmF0b3I+Pj0KKysgIHsgZm9vXyA+Pj0gdmFsdWU7IHJldHVy biAqdGhpczsgfQorKworKyAgaW50IG9wZXJhdG9yfiAodm9pZCkgY29uc3QgLy8gYmFzZTo6b3Bl cmF0b3J+CisrICB7IHJldHVybiB+Zm9vXzsgfQorKworKyAgaW50IG9wZXJhdG9yJiAoYmFzZSBj b25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3ImCisrICB7IHJldHVybiBmb29fICYgby5m b29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yJj0gKGJhc2UgY29uc3QmIG8pIC8vIGJhc2U6Om9w ZXJhdG9yJj0KKysgIHsgZm9vXyAmPSBvLmZvb187IHJldHVybiAqdGhpczsgfQorKworKyAgaW50 IG9wZXJhdG9yfCAoYmFzZSBjb25zdCYgbykgY29uc3QgLy8gYmFzZTo6b3BlcmF0b3J8CisrICB7 IHJldHVybiBmb29fIHwgby5mb29fOyB9CisrCisrICBiYXNlIG9wZXJhdG9yfD0gKGJhc2UgY29u c3QmIG8pIC8vIGJhc2U6Om9wZXJhdG9yfD0KKysgIHsgZm9vXyB8PSBvLmZvb187IHJldHVybiAq dGhpczsgfQorKyAgCisrICBpbnQgb3BlcmF0b3JeIChiYXNlIGNvbnN0JiBvKSBjb25zdCAvLyBi YXNlOjpvcGVyYXRvcl4KKysgIHsgcmV0dXJuIGZvb18gXiBvLmZvb187IH0KKysKKysgIGJhc2Ug b3BlcmF0b3JePSAoYmFzZSBjb25zdCYgbykgLy8gYmFzZTo6b3BlcmF0b3JePQorKyAgeyBmb29f IF49IG8uZm9vXzsgcmV0dXJuICp0aGlzOyB9CisrCisrICBiYXNlIG9wZXJhdG9yPSAoYmFzZSBj b25zdCYgbykgLy8gYmFzZTo6b3BlcmF0b3I9CisrICB7IGZvb18gPSBvLmZvb187IHJldHVybiAq dGhpczsgfQorKworKyAgdm9pZCBvcGVyYXRvcigpICh2b2lkKSBjb25zdCAvLyBiYXNlOjpvcGVy YXRvcigpCisrICB7IHJldHVybjsgfQorKworKyAgaW50IG9wZXJhdG9yW10gKGludCBpZHgpIGNv bnN0IC8vIGJhc2U6Om9wZXJhdG9yW10KKysgIHsgcmV0dXJuIGlkeDsgfQorKworKyAgdm9pZCog b3BlcmF0b3IgbmV3IChzaXplX3Qgc2l6ZSkgdGhyb3cgKCkgLy8gYmFzZTo6b3BlcmF0b3IgbmV3 CisrICB7IHJldHVybiBtYWxsb2MgKHNpemUpOyB9CisrCisrICB2b2lkIG9wZXJhdG9yIGRlbGV0 ZSAodm9pZCogcHRyKSAvLyBiYXNlOjpvcGVyYXRvciBkZWxldGUKKysgIHsgZnJlZSAocHRyKTsg fQorKworKyAgdm9pZCogb3BlcmF0b3IgbmV3W10gKHNpemVfdCBzaXplKSB0aHJvdyAoKSAvLyBi YXNlOjpvcGVyYXRvciBuZXdbXQorKyAgeyByZXR1cm4gbWFsbG9jIChzaXplKTsgfQorKworKyAg dm9pZCBvcGVyYXRvciBkZWxldGVbXSAodm9pZCogcHRyKSAvLyBiYXNlOjpvcGVyYXRvciBkZWxl dGVbXQorKyAgeyBmcmVlIChwdHIpOyB9CisrCisrICBiYXNlIGNvbnN0KiBvcGVyYXRvci0+ICh2 b2lkKSBjb25zdCAvLyBiYXNlOjpvcGVhcnRvci0+CisrICB7IHJldHVybiB0aGlzOyB9CisrCisr ICBpbnQgb3BlcmF0b3ItPiogKGJhc2UgY29uc3QmIGIpIGNvbnN0IC8vIGJhc2U6Om9wZXJhdG9y LT4qCisrICB7ICByZXR1cm4gZm9vXyAqIGIuZm9vXzsgfQorKworKyAgb3BlcmF0b3IgY2hhciog KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxjaGFyKj4gKCJoZWxsbyIpOyB9IC8vIGJhc2U6 Om9wZXJhdG9yIGNoYXIqCisrICBvcGVyYXRvciBpbnQgKCkgY29uc3QgeyByZXR1cm4gMjE7IH0g Ly8gYmFzZTo6b3BlcmF0b3IgaW50CisrICBvcGVyYXRvciBmbHVmZiogKCkgY29uc3QgeyByZXR1 cm4gbmV3IGZsdWZmICgpOyB9IC8vIGJhc2U6Om9wZXJhdG9yIGZsdWZmKgorKyAgb3BlcmF0b3Ig Zmx1ZmYqKiAoKSBjb25zdCB7IHJldHVybiAmZ19mbHVmZjsgfSAvLyBiYXNlOjpvcGVyYXRvciBm bHVmZioqCisrfTsKKysKKytjbGFzcyBiYXNlMSA6IHB1YmxpYyB2aXJ0dWFsIGJhc2UKKyt7Cisr cHVibGljOgorKyAgYmFzZTEgKHZvaWQpIDogZm9vXyAoMjEpIHsgfSAvLyBiYXNlMTo6YmFzZTEo dm9pZCkKKysgIGJhc2UxIChpbnQgYSkgOiBmb29fKGEpIHsgfSAvLyBiYXNlMTo6YmFzZTEoaW50 KQorKyAgdm9pZCBhX2Z1bmN0aW9uICh2b2lkKSBjb25zdCB7IH0gLy8gYmFzZTE6OmFfZnVuY3Rp b24KKysKKytwcm90ZWN0ZWQ6CisrICBpbnQgZm9vXzsKKyt9OworKworK2NsYXNzIGJhc2UyIDog cHVibGljIHZpcnR1YWwgYmFzZQorK3sKKytwdWJsaWM6CisrICBiYXNlMiAoKSA6IGZvb18gKDMp IHsgfSAvLyBiYXNlMjo6YmFzZTIKKysKKytwcm90ZWN0ZWQ6CisrICB2b2lkIGFfZnVuY3Rpb24g KHZvaWQpIGNvbnN0IHsgfSAvLyBiYXNlMjo6YV9mdW5jdGlvbgorKyAgaW50IGZvb187CisrfTsK KysKKytjbGFzcyBkZXJpdmVkIDogcHVibGljIGJhc2UxLCBwdWJsaWMgYmFzZTIKKyt7CisrICBw dWJsaWM6CisrICBkZXJpdmVkKHZvaWQpIDogZm9vXyAoNCkgeyB9IC8vIGRlcml2ZWQ6OmRlcml2 ZWQKKysgIHZvaWQgYV9mdW5jdGlvbiAodm9pZCkgY29uc3QgLy8gZGVyaXZlZDo6YV9mdW5jdGlv bgorKyAgeyAKKysgICAgdGhpcy0+YmFzZTE6OmFfZnVuY3Rpb24gKCk7CisrICAgIHRoaXMtPmJh c2UyOjphX2Z1bmN0aW9uICgpOworKyAgfQorKworKyAgcHJvdGVjdGVkOgorKyAgaW50IGZvb187 CisrfTsKKysKKytpbnQKKyttYWluIChpbnQgYXJnYywgY2hhciogYXJndltdKSAvLyBtYWluCisr eyAvLyBtYWluCisrICBkZXJpdmVkIGQ7CisrICB2b2lkIChkZXJpdmVkOjoqcGZ1bmMpICh2b2lk KSBjb25zdCA9ICZkZXJpdmVkOjphX2Z1bmN0aW9uOworKyAgKGQuKnBmdW5jKSAoKTsKKysKKysg IGJhc2UgYSAoMSksIGIgKDMpLCBjICg4KTsKKysgICh2b2lkKSBhLm92ZXJsb2FkICgpOworKyAg KHZvaWQpIGEub3ZlcmxvYWQgKHN0YXRpY19jYXN0PGludD4gKDApKTsKKysgICh2b2lkKSBhLm92 ZXJsb2FkIChzdGF0aWNfY2FzdDxzaG9ydD4gKDApKTsKKysgICh2b2lkKSBhLm92ZXJsb2FkIChz dGF0aWNfY2FzdDxsb25nPiAoMCkpOworKyAgKHZvaWQpIGEub3ZlcmxvYWQgKHN0YXRpY19jYXN0 PGNoYXIqPiAoMCkpOworKyAgKHZvaWQpIGEub3ZlcmxvYWQgKGEpOworKworKyAgaW50IHI7Cisr ICByID0gYiArIGM7CisrICArK2E7CisrICBhICs9IGI7CisrICByID0gYiAtIGM7CisrICAtLWE7 CisrICBhIC09IGI7CisrICByID0gYiAqIGM7CisrICBhICo9IGI7CisrICByID0gYiAvIGM7Cisr ICBhIC89IGI7CisrICByID0gYiAlIGM7CisrICBhICU9IGI7CisrICBib29sIHggPSAoYiA8IGMp OworKyAgeCA9IChiIDw9IGMpOworKyAgeCA9IChiID4gYyk7CisrICB4ID0gKGIgPj0gYyk7Cisr ICB4ID0gKGIgIT0gYyk7CisrICB4ID0gKGIgPT0gYyk7CisrICB4ID0gKCFiKTsKKysgIHggPSAo YiAmJiBjKTsKKysgIHggPSAoYiB8fCBjKTsKKysgIHIgPSBiIDw8IDI7CisrICBhIDw8PSAxOwor KyAgciA9IGIgPj4gMjsKKysgIGEgPj49IDE7CisrICByID0gfmI7CisrICByID0gYiAmIGM7Cisr ICBhICY9IGM7CisrICByID0gYiB8IGM7CisrICBhIHw9IGM7CisrICByID0gYiBeIGM7CisrICBh IF49IGM7CisrICBhID0gYzsKKysgIGEgKCk7CisrICBpbnQgaSA9IGFbM107CisrICBkZXJpdmVk KiBmID0gbmV3IGRlcml2ZWQgKCk7CisrICBkZXJpdmVkKiBnID0gbmV3IGRlcml2ZWRbM107Cisr ICBkZWxldGUgZjsKKysgIGRlbGV0ZVtdIGc7CisrICBhLT5vdmVybG9hZCAoKTsKKysgIHIgPSBh LT4qYjsKKysKKysgIHRjbGFzczxjaGFyPiBjaGFyX3RjbGFzczsKKysgIHRjbGFzczxpbnQ+IGlu dF90Y2xhc3M7CisrICB0Y2xhc3M8c2hvcnQ+IHNob3J0X3RjbGFzczsKKysgIHRjbGFzczxsb25n PiBsb25nX3RjbGFzczsKKysgIHRjbGFzczxiYXNlPiBiYXNlX3RjbGFzczsKKysgIGNoYXJfdGNs YXNzLmRvX3NvbWV0aGluZyAoKTsKKysgIGludF90Y2xhc3MuZG9fc29tZXRoaW5nICgpOworKyAg c2hvcnRfdGNsYXNzLmRvX3NvbWV0aGluZyAoKTsKKysgIGxvbmdfdGNsYXNzLmRvX3NvbWV0aGlu ZyAoKTsKKysgIGJhc2VfdGNsYXNzLmRvX3NvbWV0aGluZyAoKTsKKysKKysgIGZsdWJiZXI8aW50 LCBpbnQsIGludCwgaW50LCBpbnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBpbnQs IHNob3J0PiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgaW50LCBsb25nPiAoKTsKKysg IGZsdWJiZXI8aW50LCBpbnQsIGludCwgaW50LCBjaGFyPiAoKTsKKysgIGZsdWJiZXI8aW50LCBp bnQsIGludCwgc2hvcnQsIGludD4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBpbnQsIHNob3J0 LCBzaG9ydD4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBpbnQsIHNob3J0LCBsb25nPiAoKTsK KysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgc2hvcnQsIGNoYXI+ICgpOworKyAgZmx1YmJlcjxp bnQsIGludCwgaW50LCBsb25nLCBpbnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBs b25nLCBzaG9ydD4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBpbnQsIGxvbmcsIGxvbmc+ICgp OworKyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBsb25nLCBjaGFyPiAoKTsKKysgIGZsdWJiZXI8 aW50LCBpbnQsIGludCwgY2hhciwgaW50PiAoKTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwg Y2hhciwgc2hvcnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgaW50LCBjaGFyLCBsb25nPiAo KTsKKysgIGZsdWJiZXI8aW50LCBpbnQsIGludCwgY2hhciwgY2hhcj4gKCk7CisrICBmbHViYmVy PGludCwgaW50LCBzaG9ydCwgaW50LCBpbnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgc2hv cnQsIGludCwgc2hvcnQ+ICgpOworKyAgZmx1YmJlcjxpbnQsIGludCwgc2hvcnQsIGludCwgbG9u Zz4gKCk7CisrICBmbHViYmVyPGludCwgaW50LCBzaG9ydCwgaW50LCBjaGFyPiAoKTsKKysgIGZs dWJiZXI8aW50LCBpbnQsIHNob3J0LCBzaG9ydCwgaW50PiAoKTsKKysgIGZsdWJiZXI8c2hvcnQs IGludCwgc2hvcnQsIGludCwgc2hvcnQ+ICgpOworKyAgZmx1YmJlcjxsb25nLCBzaG9ydCwgbG9u Zywgc2hvcnQsIGxvbmc+ICgpOworKworKyAgcG9saWN5MSBwMSAoMSk7CisrICBwMS5mdW5jdGlv biAoKTsKKysgIHBvbGljeTIgcDIgKDIpOworKyAgcDIuZnVuY3Rpb24gKCk7CisrICBwb2xpY3kz IHAzICgzKTsKKysgIHAzLmZ1bmN0aW9uICgpOworKyAgcG9saWN5NCBwNCAoNCk7CisrICBwNC5m dW5jdGlvbiAoKTsKKysKKysgIHBvbGljeWQxIHBkMSAoNSk7CisrICBwZDEuZnVuY3Rpb24gKCk7 CisrICBwb2xpY3lkMiBwZDIgKDYpOworKyAgcGQyLmZ1bmN0aW9uICgpOworKyAgcG9saWN5ZDMg cGQzICg3KTsKKysgIHBkMy5mdW5jdGlvbiAoKTsKKysgIHBvbGljeWQ0IHBkNCAoZCk7CisrICBw ZDQuZnVuY3Rpb24gKCk7CisrICBwb2xpY3lkNSBwZDUgKGludF90Y2xhc3MpOworKyAgcGQ1LmZ1 bmN0aW9uICgpOworKworKyAgYmFzZTEgYjEgKDMpOworKworKyAgciA9IGE7CisrICBjaGFyKiBz dHIgPSBhOworKyAgZmx1ZmYqIGZscCA9IGE7CisrICBmbHVmZioqIGZscHAgPSBhOworK30KKysK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGV4cHJzLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2NwZXhwcnMuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMC4uNjA3NDc2MworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av Y3BleHBycy5leHAKK0BAIC0wLDAgKzEsNzI0IEBACisrIyBjcGV4cHJzLmV4cCAtIEMrKyBleHBy ZXNzaW9ucyB0ZXN0cworKyMKKysjIENvcHlyaWdodCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIENvbnRyaWJ1dGVkIGJ5IFJlZCBIYXQsIG9y aWdpbmFsbHkgd3JpdHRlbiBieSBLZWl0aCBTZWl0ei4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorKworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUu CisrCisrIyBBIGhlbHBlciBwcm9jIHdoaWNoIHNldHMgYSBicmVha3BvaW50IGF0IEZVTkMgYW5k IGF0dGVtcHRzIHRvCisrIyBydW4gdG8gdGhlIGJyZWFrcG9pbnQuCisrcHJvYyB0ZXN0X2JyZWFr cG9pbnQge2Z1bmN9IHsKKysgICAgZ2xvYmFsIERFQworKworKyAgICAjIFJlc3RhcnQgZXZlcnkg dGltZQorKyAgICBpZiB7IVtydW50b19tYWluXX0geworKwlwZXJyb3IgImNvdWxkIG5vdCBydW4g dG8gbWFpbiB3aGVuIGF0dGVtcHRpbmcgdG8gYnJlYWsgYXQgJGZ1bmMiCisrICAgIH0gZWxzZSB7 CisrCWdkYl9icmVha3BvaW50ICIkZnVuYyIKKysJc2V0IGkgW2V4cHIge1tzdHJpbmcgbGFzdCA6 ICRmdW5jXSArIDF9XQorKwlzZXQgZWZ1bmMgW3N0cmluZ190b19yZWdleHAgW3N0cmluZyByYW5n ZSAkZnVuYyAkaSBlbmRdXQorKwlnZGJfdGVzdCAiY29udGludWUiIFwKKysJICAgICJDb250aW51 aW5nLlxyXG5cclxuQnJlYWtwb2ludCAkREVDKywuKiRlZnVuYy4qIiBcCisrCSAgICAiY29udGlu dWUgdG8gJGZ1bmMiCisrICAgIH0KKyt9CisrCisrIyBBZGQgYSBmdW5jdGlvbiB0byB0aGUgbGlz dCBvZiB0ZXN0ZWQgZnVuY3Rpb25zCisrIyBGVU5DIGlzIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlv biAod2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gZ2RiIGNvbW1hbmRzKQorKyMgVFlQRSBpcyB0aGUg dHlwZSBvZiB0aGUgZnVuY3Rpb24sIGFzIGV4cGVjdGVkIGZyb20gdGhlICJwcmludCIgY29tbWFu ZAorKyMgUFJJTlQgaXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLCBhcyBleHBlY3RlZCByZXN1 bHQgb2YgdGhlIHByaW50IGNvbW1hbmQKKysjICAqT1IqICItIiwgaW5kaWNhdGluZyB0aGF0IEZV TkMgc2hvdWxkIGJlIHVzZWQgKG5lZWRlZCBmb3IgdmlydHVhbC9pbmhlcml0ZWQKKysjICAgZnVu Y3MpCisrIyBMU1QgaXMgZWl0aGVyIHRoZSBleHBlY3RlZCByZXN1bHQgb2YgdGhlIGxpc3QgY29t bWFuZCAodGhlIGNvbW1lbnQgZnJvbQorKyMgIHRoZSBzb3VyY2UgY29kZSkgKk9SKiAiLSIsIGlu IHdoaWNoIGNhc2UgRlVOQyB3aWxsIGJlIHVzZWQKKysjCisrIyBVc2FnZToKKysjIGFkZCBOQU1F IFRZUEUgUFJJTlQgTFNUCisrIyBhZGQgTkFNRSBUWVBFIFBSSU5UIC0KKytwcm9jIGFkZCB7ZnVu YyB0eXBlIHByaW50IGxzdH0geworKyAgICBnbG9iYWwgYWxsX2Z1bmN0aW9ucyBDT05WQVIgQURE UgorKworKyAgICBzZXQgYWxsX2Z1bmN0aW9ucygkZnVuYyx0eXBlKSAkdHlwZQorKyAgICBpZiB7 JHByaW50ID09ICItIn0geworKwlzZXQgcHJpbnQgJGZ1bmMKKysgICAgfQorKworKyAgICAjIEFu IGV4Y2VwdGlvbjogc2luY2UgZ2RiIGNhbm9uaWNhbGl6ZXMgQysrIG91dHB1dCwKKysgICAgIyAi KHZvaWQpIiBtdXN0IGJlIG11dGF0ZWQgdG8gIigpIi4KKysgICAgcmVnc3ViIHtcKHZvaWRcKX0g JHByaW50IHsoKX0gcHJpbnQKKysKKysgICAgc2V0IGFsbF9mdW5jdGlvbnMoJGZ1bmMscHJpbnQp IFwKKysJIiRDT05WQVIgPSB7W3N0cmluZ190b19yZWdleHAgJHR5cGVdfSAkQUREUiA8W3N0cmlu Z190b19yZWdleHAgJHByaW50XS4qPiIKKysgICAgaWYgeyRsc3QgPT0gIi0ifSB7CisrCXNldCBs c3QgIiRmdW5jIgorKyAgICB9CisrICAgIHNldCBhbGxfZnVuY3Rpb25zKCRmdW5jLGxpc3QpICIu Ki8vIFtzdHJpbmdfdG9fcmVnZXhwICRsc3RdIgorK30KKysKKytwcm9jIGdldCB7ZnVuYyBjbWR9 IHsKKysgICAgZ2xvYmFsIGFsbF9mdW5jdGlvbnMKKysgICAgcmV0dXJuICRhbGxfZnVuY3Rpb25z KCRmdW5jLCRjbWQpCisrfQorKworKyMgUmV0dXJucyBhIGxpc3Qgb2YgZnVuY3Rpb24gbmFtZXMg Zm9yIGEgZ2l2ZW4gY29tbWFuZAorK3Byb2MgZ2V0X2Z1bmN0aW9ucyB7Y21kfSB7CisrICAgIGds b2JhbCBhbGxfZnVuY3Rpb25zCisrICAgIHNldCByZXN1bHQge30KKysgICAgZm9yZWFjaCBpIFth cnJheSBuYW1lcyBhbGxfZnVuY3Rpb25zICosJGNtZF0geworKwlpZiB7JGFsbF9mdW5jdGlvbnMo JGkpICE9ICIifSB7CisrCSAgICBzZXQgaWR4IFtzdHJpbmcgbGFzdCAsICRpXQorKwkgICAgaWYg eyRpZHggIT0gLTF9IHsKKysJCWxhcHBlbmQgcmVzdWx0IFtzdHJpbmcgcmFuZ2UgJGkgMCBbZXhw ciB7JGlkeCAtIDF9XV0KKysJICAgIH0KKysJfQorKyAgICB9CisrCisrICAgIHJldHVybiBbbHNv cnQgJHJlc3VsdF0KKyt9CisrCisrIyBTb21lIGNvbnZlbmllbmNlIHZhcmlhYmxlcyBmb3IgdGhp cyB0ZXN0Cisrc2V0IERFQyB7WzAtOV19OyAjIGEgZGVjaW1hbCBudW1iZXIKKytzZXQgSEVYIHtb MC05YS1mQS1GXX07ICMgYSBoZXhpZGVjaW1hbCBudW1iZXIKKytzZXQgQ09OVkFSICJcXFwkJERF QysiOyAjIGNvbnZlbmllbmNlIHZhcmlhYmxlIHJlZ2V4cAorK3NldCBBRERSICIweCRIRVgrIjsg IyBhZGRyZXNzCisrCisrIyBBbiBhcnJheSBvZiBmdW5jdGlvbnMvbWV0aG9kcyB0aGF0IHdlIGFy ZSB0ZXN0aW5nLi4uCisrIyBFYWNoIGVsZW1lbnQgY29uc2lzdHMgaXMgaW5kZXhlZCBieSBOQU1F LENPTU1BTkQsIHdoZXJlCisrIyBOQU1FIGlzIHRoZSBmdW5jdGlvbiBuYW1lIGFuZCBDT01NQU5E IGlzIHRoZSBnZGIgY29tbWFuZCB0aGF0CisrIyB3ZSBhcmUgdGVzdGluZy4gVGhlIHZhbHVlIG9m IHRoZSBhcnJheSBmb3IgYW55IGluZGV4IHBhaXIgaXMKKysjIHRoZSBleHBlY3RlZCByZXN1bHQg b2YgcnVubmluZyBDT01NQU5EIHdpdGggdGhlIE5BTUUgYXMgYXJndW1lbnQuCisrCisrIyBUaGUg YXJyYXkgaG9sZGluZyBhbGwgZnVuY3Rpb25zL21ldGhvZHMgdG8gdGVzdC4gVmFsaWQgc3ViaW5k ZXhlcworKyMgYXJlIChub25lIG5lZWQgY2hhcmFjdGVyIGVzY2FwaW5nIC0tICJhZGQiIHdpbGwg dGFrZSBjYXJlIG9mIHRoYXQpOgorKworKyMgYWRkIG5hbWUgdHlwZSBwcmludF9uYW1lIGxpc3QK KysjIE5BTUUsdHlwZTogdmFsdWUgaXMgdHlwZSBvZiBmdW5jdGlvbiAKKysjIE5BTUUscHJpbnQ6 IHZhbHVlIGlzIHByaW50IG5hbWUgb2YgZnVuY3Rpb24gKGNhcmVmdWwgdy9pbmhlcml0ZWQvdmly dHVhbCEpCisrIyBOQU1FLGxpc3Q6IHZhbHVlIGlzIGNvbW1lbnQgaW4gc291cmNlIGNvZGUgb24g Zmlyc3QgbGluZSBvZiBmdW5jdGlvbgorKyMgICAod2l0aG91dCB0aGUgbGVhZGluZyAiLy8iKQor K2FycmF5IHNldCBhbGxfZnVuY3Rpb25zIHt9CisrCisrIyAiTm9ybWFsIiBmdW5jdGlvbnMvbWV0 aG9kcworK2FkZCB7bWFpbn0gXAorKyAgICB7aW50IChpbnQsIGNoYXIgKiopfSBcCisrICAgIC0g XAorKyAgICAtCisrYWRkIHtkZXJpdmVkOjphX2Z1bmN0aW9ufSBcCisrICAgIHt2b2lkIChjb25z dCBkZXJpdmVkICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlMTo6YV9m dW5jdGlvbn0gXAorKyAgICB7dm9pZCAoY29uc3QgYmFzZTEgKiBjb25zdCl9IFwKKysgICAgLSBc CisrICAgIC0KKythZGQge2Jhc2UyOjphX2Z1bmN0aW9ufSBcCisrICAgIHt2b2lkIChjb25zdCBi YXNlMiAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorKworKyMgQ29uc3RydWN0b3JzCisr CisrIyBPbiB0YXJnZXRzIHVzaW5nIHRoZSBBUk0gRUFCSSwgdGhlIGNvbnN0cnVjdG9yIGlzIGV4 cGVjdGVkIHRvIHJldHVybgorKyMgInRoaXMiLgorK3Byb2MgY3RvciB7IHR5cGUgYXJnbGlzdCB9 IHsKKysgICAgaWYgeyBbaXN0YXJnZXQgYXJtKi0qZWFiaSpdIH0geworKwlzZXQgcmV0ICIkdHlw ZSAqIgorKyAgICB9IGVsc2UgeworKwlzZXQgcmV0ICJ2b2lkICIKKysgICAgfQorKyAgICBpZiB7 ICRhcmdsaXN0ICE9ICIiIH0geworKwlzZXQgYXJnbGlzdCAiLCAkYXJnbGlzdCIKKysgICAgfQor KyAgICByZXR1cm4gIiR7cmV0fSgkdHlwZSAqIGNvbnN0JGFyZ2xpc3QpIgorK30KKysKKythZGQg e2Rlcml2ZWQ6OmRlcml2ZWR9IFwKKysgICAgW2N0b3IgZGVyaXZlZCAiIl0gXAorKyAgICAtIFwK KysgICAgLQorK2FkZCB7YmFzZTE6OmJhc2UxKHZvaWQpfSBcCisrICAgIFtjdG9yIGJhc2UxICJj b25zdCB2b2lkICoqIGNvbnN0Il0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTE6OmJh c2UxKGludCl9IFwKKysgICAgW2N0b3IgYmFzZTEgImludCJdIFwKKysgICAgLSBcCisrICAgIC0K KythZGQge2Jhc2UyOjpiYXNlMn0gXAorKyAgICBbY3RvciBiYXNlMiAiY29uc3Qgdm9pZCAqKiBj b25zdCJdIFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6OmJhc2Uodm9pZCl9IFwKKysg ICAgW2N0b3IgYmFzZSAiIl0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6YmFzZShp bnQpfSBcCisrICAgIFtjdG9yIGJhc2UgImludCJdIFwKKysgICAgLSBcCisrICAgIC0KKysKKysj IERlc3RydWN0b3JzCisrCisrIyBPbiB0YXJnZXRzIHVzaW5nIHRoZSBBUk0gRUFCSSwgc29tZSBk ZXN0cnVjdG9ycyBhcmUgZXhwZWN0ZWQKKysjIHRvIHJldHVybiAidGhpcyIuICBPdGhlcnMgYXJl IHZvaWQuICBGb3IgaW50ZXJuYWwgcmVhc29ucywKKysjIEdDQyByZXR1cm5zIHZvaWQgKiBpbnN0 ZWFkIG9mICR0eXBlICo7IFJlYWxWaWV3IGFwcGVhcnMgdG8gZG8KKysjIHRoZSBzYW1lLgorK3By b2MgZHRvciB7IHR5cGUgfSB7CisrICAgIGlmIHsgW2lzdGFyZ2V0IGFybSotKmVhYmkqXSB9IHsK KysJc2V0IHJldCAidm9pZCAqIgorKyAgICB9IGVsc2UgeworKwlzZXQgcmV0ICJ2b2lkICIKKysg ICAgfQorKyAgICByZXR1cm4gIiR7cmV0fSgkdHlwZSAqIGNvbnN0KSIKKyt9CisrCisrYWRkIHti YXNlOjp+YmFzZX0gXAorKyAgICBbZHRvciBiYXNlXSBcCisrICAgIC0gXAorKyAgICAtCisrCisr IyBPdmVybG9hZGVkIG1ldGhvZHMgKGFsbCBhcmUgY29uc3QgLS0gd2UgdHJ5IHRvIHVzZSB0aGUg dm9pZAorKyMgbWV0aG9kIHdpdGggYW5kIHdpdGhvdXQgc3BlY2lmeWluZyAiY29uc3QiKQorK2Fk ZCB7YmFzZTo6b3ZlcmxvYWQodm9pZCl9IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0 KX0gXAorKyAgICAtIFwKKysgICAge2Jhc2U6Om92ZXJsb2FkKHZvaWQpIGNvbnN0fQorK2FkZCB7 YmFzZTo6b3ZlcmxvYWQodm9pZCkgY29uc3R9IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNv bnN0KX0gXAorKyAgICAtIFwKKysgICAge2Jhc2U6Om92ZXJsb2FkKHZvaWQpIGNvbnN0fQorK2Fk ZCB7YmFzZTo6b3ZlcmxvYWQoaW50KSBjb25zdH0gXAorKyAgICB7aW50IChjb25zdCBiYXNlICog Y29uc3QsIGludCl9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om92ZXJsb2FkKHNo b3J0KSBjb25zdH0gXAorKyAgICB7aW50IChjb25zdCBiYXNlICogY29uc3QsIHNob3J0KX0gXAor KyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3ZlcmxvYWQobG9uZykgY29uc3R9IFwKKysg ICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBsb25nKX0gXAorKyAgICAtIFwKKysgICAgLQor K2FkZCB7YmFzZTo6b3ZlcmxvYWQoY2hhciopIGNvbnN0fSBcCisrICAgIHtpbnQgKGNvbnN0IGJh c2UgKiBjb25zdCwgY2hhciAqKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3Zl cmxvYWQoYmFzZSYpIGNvbnN0fSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwgYmFz ZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorKworKyMgT3BlcmF0b3JzCisrYWRkIHtiYXNlOjpv cGVyYXRvcit9IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYp fSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcisrfSBcCisrICAgIHti YXNlIChiYXNlICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVy YXRvcis9fSBcCisrICAgIHtiYXNlIChiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysg ICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yLX0gXAorKyAgICB7aW50IChjb25z dCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQg e2Jhc2U6Om9wZXJhdG9yLS19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25zdCl9IFwKKysgICAg LSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yLT19IFwKKysgICAge2Jhc2UgKGJhc2Ug KiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6 b3BlcmF0b3IqfSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAm KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3IqPX0gXAorKyAgICB7 YmFzZSAoYmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisr YWRkIHtiYXNlOjpvcGVyYXRvci99IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBj b25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvci89 fSBcCisrICAgIHtiYXNlIChiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBc CisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yJX0gXAorKyAgICB7aW50IChjb25zdCBiYXNl ICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6 Om9wZXJhdG9yJT19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0g XAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3I8fSBcCisrICAgIHtib29s IChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0K KythZGQge2Jhc2U6Om9wZXJhdG9yPD19IFwKKysgICAge2Jvb2wgKGNvbnN0IGJhc2UgKiBjb25z dCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0 b3I+fSBcCisrICAgIHtib29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwK KysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yPj19IFwKKysgICAge2Jvb2wg KGNvbnN0IGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQor K2FkZCB7YmFzZTo6b3BlcmF0b3IhPX0gXAorKyAgICB7Ym9vbCAoY29uc3QgYmFzZSAqIGNvbnN0 LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRv cj09fSBcCisrICAgIHtib29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwK KysgICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yIX0gXAorKyAgICB7Ym9vbCAo Y29uc3QgYmFzZSAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3Bl cmF0b3ImJn0gXAorKyAgICB7Ym9vbCAoY29uc3QgYmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYp fSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcnx8fSBcCisrICAgIHti b29sIChjb25zdCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAg IC0KKythZGQge2Jhc2U6Om9wZXJhdG9yPDx9IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNv bnN0LCBpbnQpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcjw8PX0g XAorKyAgICB7YmFzZSAoYmFzZSAqIGNvbnN0LCBpbnQpfSBcCisrICAgIC0gXAorKyAgICAtCisr YWRkIHtiYXNlOjpvcGVyYXRvcj4+fSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwg aW50KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3I+Pj19IFwKKysg ICAge2Jhc2UgKGJhc2UgKiBjb25zdCwgaW50KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7 YmFzZTo6b3BlcmF0b3J+fSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCl9IFwKKysg ICAgLSBcCisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yJn0gXAorKyAgICB7aW50IChjb25z dCBiYXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQg e2Jhc2U6Om9wZXJhdG9yJj19IFwKKysgICAge2Jhc2UgKGJhc2UgKiBjb25zdCwgY29uc3QgYmFz ZSAmKX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3J8fSBcCisrICAg IHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwgY29uc3QgYmFzZSAmKX0gXAorKyAgICAtIFwKKysg ICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3J8PX0gXAorKyAgICB7YmFzZSAoYmFzZSAqIGNvbnN0 LCBjb25zdCBiYXNlICYpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRv cl59IFwKKysgICAge2ludCAoY29uc3QgYmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYpfSBcCisr ICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcl49fSBcCisrICAgIHtiYXNlIChi YXNlICogY29uc3QsIGNvbnN0IGJhc2UgJil9IFwKKysgICAgLSBcCisrICAgIC0KKythZGQge2Jh c2U6Om9wZXJhdG9yPX0gXAorKyAgICB7YmFzZSAoYmFzZSAqIGNvbnN0LCBjb25zdCBiYXNlICYp fSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvcigpfSBcCisrICAgIHt2 b2lkIChjb25zdCBiYXNlICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNl OjpvcGVyYXRvcltdfSBcCisrICAgIHtpbnQgKGNvbnN0IGJhc2UgKiBjb25zdCwgaW50KX0gXAor KyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3IgbmV3fSBcCisrICAgIHt2b2lk ICooc2l6ZV90KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7YmFzZTo6b3BlcmF0b3IgZGVs ZXRlfSBcCisrICAgIHt2b2lkICh2b2lkICopfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHti YXNlOjpvcGVyYXRvciBuZXdbXX0gXAorKyAgICB7dm9pZCAqKHNpemVfdCl9IFwKKysgICAgLSBc CisrICAgIC0KKythZGQge2Jhc2U6Om9wZXJhdG9yIGRlbGV0ZVtdfSBcCisrICAgIHt2b2lkICh2 b2lkICopfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvciBjaGFyKn0g XAorKyAgICB7Y2hhciAqKGNvbnN0IGJhc2UgKiBjb25zdCl9IFwKKysgICAgLSBcCisrICAgIC0K KythZGQge2Jhc2U6Om9wZXJhdG9yIGZsdWZmKn0gXAorKyAgICB7Zmx1ZmYgKihjb25zdCBiYXNl ICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvciBmbHVm ZioqfSBcCisrICAgIHtmbHVmZiAqKihjb25zdCBiYXNlICogY29uc3QpfSBcCisrICAgIC0gXAor KyAgICAtCisrYWRkIHtiYXNlOjpvcGVyYXRvciBpbnR9IFwKKysgICAge2ludCAoY29uc3QgYmFz ZSAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorKworKyMgVGVtcGxhdGVzCisrYWRkIHt0 Y2xhc3M8Y2hhcj46OmRvX3NvbWV0aGluZ30gXAorKyAgICB7dm9pZCAodGNsYXNzPGNoYXI+ICog Y29uc3QpfSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHt0Y2xhc3M8aW50Pjo6ZG9fc29tZXRo aW5nfSBcCisrICAgIHt2b2lkICh0Y2xhc3M8aW50PiAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysg ICAgLQorK2FkZCB7dGNsYXNzPGxvbmc+Ojpkb19zb21ldGhpbmd9IFwKKysgICAge3ZvaWQgKHRj bGFzczxsb25nPiAqIGNvbnN0KX0gXAorKyAgICAtIFwKKysgICAgLQorK2FkZCB7dGNsYXNzPHNo b3J0Pjo6ZG9fc29tZXRoaW5nfSBcCisrICAgIHt2b2lkICh0Y2xhc3M8c2hvcnQ+ICogY29uc3Qp fSBcCisrICAgIC0gXAorKyAgICAtCisrYWRkIHt0Y2xhc3M8YmFzZT46OmRvX3NvbWV0aGluZ30g XAorKyAgICB7dm9pZCAodGNsYXNzPGJhc2U+ICogY29uc3QpfSBcCisrICAgIC0gXAorKyAgICAt CisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGludCwgaW50Pn0gXAorKyAgICB7dm9pZCAo dm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQs IGludCwgaW50LCBzaG9ydD59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAg ICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGludCwgbG9uZz59IFwKKysg ICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVy PGludCwgaW50LCBpbnQsIGludCwgY2hhcj59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAg IC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIHNob3J0LCBp bnQ+fSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgorK2Fk ZCB7Zmx1YmJlcjxpbnQsIGludCwgaW50LCBzaG9ydCwgc2hvcnQ+fSBcCisrICAgIHt2b2lkICh2 b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJlcjxpbnQsIGludCwg aW50LCBzaG9ydCwgbG9uZz59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAg ICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIHNob3J0LCBjaGFyPn0gXAor KyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJi ZXI8aW50LCBpbnQsIGludCwgbG9uZywgaW50Pn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysg ICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQsIGludCwgbG9uZywg c2hvcnQ+fSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgor K2FkZCB7Zmx1YmJlcjxpbnQsIGludCwgaW50LCBsb25nLCBsb25nPn0gXAorKyAgICB7dm9pZCAo dm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQs IGludCwgbG9uZywgY2hhcj59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAg ICBmbHViYmVyCisrYWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGNoYXIsIGludD59IFwKKysg ICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVy PGludCwgaW50LCBpbnQsIGNoYXIsIHNob3J0Pn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysg ICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQsIGludCwgY2hhciwg bG9uZz59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisr YWRkIHtmbHViYmVyPGludCwgaW50LCBpbnQsIGNoYXIsIGNoYXI+fSBcCisrICAgIHt2b2lkICh2 b2lkKX0gXAorKyAgICAtIFwKKysgICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJlcjxpbnQsIGludCwg c2hvcnQsIGludCwgaW50Pn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAg IGZsdWJiZXIKKythZGQge2ZsdWJiZXI8aW50LCBpbnQsIHNob3J0LCBpbnQsIHNob3J0Pn0gXAor KyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJi ZXI8aW50LCBpbnQsIHNob3J0LCBpbnQsIGxvbmc+fSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAor KyAgICAtIFwKKysgICAgZmx1YmJlcgorK2FkZCB7Zmx1YmJlcjxpbnQsIGludCwgc2hvcnQsIGlu dCwgY2hhcj59IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVy CisrYWRkIHtmbHViYmVyPGludCwgaW50LCBzaG9ydCwgc2hvcnQsIGludD59IFwKKysgICAge3Zv aWQgKHZvaWQpfSBcCisrICAgIC0gXAorKyAgICBmbHViYmVyCisrYWRkIHtmbHViYmVyPHNob3J0 LCBpbnQsIHNob3J0LCBpbnQsIHNob3J0Pn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAg LSBcCisrICAgIGZsdWJiZXIKKythZGQge2ZsdWJiZXI8bG9uZywgc2hvcnQsIGxvbmcsIHNob3J0 LCBsb25nPn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAgLSBcCisrICAgIGZsdWJiZXIK KythZGQge3RjbGFzczxiYXNlPjo6ZG9fc29tZXRoaW5nfSBcCisrICAgIHt2b2lkICh0Y2xhc3M8 YmFzZT4gKiBjb25zdCl9IFwKKysgICAgLSBcCisrICAgIHt0Y2xhc3M8VD46OmRvX3NvbWV0aGlu Z30KKythZGQge3BvbGljeTE6OnBvbGljeX0gXAorKyAgICBbY3RvciAicG9saWN5PGludCwgb3Bl cmF0aW9uXzE8dm9pZCo+ID4iICJpbnQiXSBcCisrICAgIHtwb2xpY3k8aW50LCBvcGVyYXRpb25f MTx2b2lkKj4gPjo6cG9saWN5fSBcCisrICAgIHtwb2xpY3k8VCwgUG9saWN5Pjo6cG9saWN5fQor K2FkZCB7cG9saWN5Mjo6cG9saWN5fSBcCisrICAgIFtjdG9yICJwb2xpY3k8aW50LCBvcGVyYXRp b25fMjx2b2lkKj4gPiIgaW50XSBcCisrICAgIHtwb2xpY3k8aW50LCBvcGVyYXRpb25fMjx2b2lk Kj4gPjo6cG9saWN5fSBcCisrICAgIHtwb2xpY3k8VCwgUG9saWN5Pjo6cG9saWN5fQorK2FkZCB7 cG9saWN5Mzo6cG9saWN5fSBcCisrICAgIFtjdG9yICJwb2xpY3k8aW50LCBvcGVyYXRpb25fMzx2 b2lkKj4gPiIgImludCJdIFwKKysgICAge3BvbGljeTxpbnQsIG9wZXJhdGlvbl8zPHZvaWQqPiA+ Ojpwb2xpY3l9IFwKKysgICAge3BvbGljeTxULCBQb2xpY3k+Ojpwb2xpY3l9CisrYWRkIHtwb2xp Y3k0Ojpwb2xpY3l9IFwKKysgICAgW2N0b3IgInBvbGljeTxpbnQsIG9wZXJhdGlvbl80PHZvaWQq PiA+IiAiaW50Il0gXAorKyAgICB7cG9saWN5PGludCwgb3BlcmF0aW9uXzQ8dm9pZCo+ID46OnBv bGljeX0gXAorKyAgICB7cG9saWN5PFQsIFBvbGljeT46OnBvbGljeX0KKythZGQge3BvbGljeTE6 OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzE8dm9p ZCo+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9uXzE8VD46OmZ1bmN0aW9ufQorK2FkZCB7 cG9saWN5Mjo6ZnVuY3Rpb259IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIHtvcGVyYXRp b25fMjx2b2lkKj46OmZ1bmN0aW9ufSBcCisrICAgIHtvcGVyYXRpb25fMjxUPjo6ZnVuY3Rpb259 CisrYWRkIHtwb2xpY3kzOjpmdW5jdGlvbn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAg e29wZXJhdGlvbl8zPHZvaWQqPjo6ZnVuY3Rpb259IFwKKysgICAge29wZXJhdGlvbl8zPFQ+Ojpm dW5jdGlvbn0KKythZGQge3BvbGljeTQ6OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0g XAorKyAgICB7b3BlcmF0aW9uXzQ8dm9pZCo+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9u XzQ8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDxpbnQsIG9wZXJhdGlvbl8xPGludD4gPjo6 cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDxpbnQsIG9wZXJhdGlvbl8xPGludD4gPiIg ImludCJdIFwKKysgICAgLSBcCisrICAgIHtwb2xpY3lkPFQsIFBvbGljeT46OnBvbGljeWR9Cisr YWRkIHtwb2xpY3lkMTo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDxpbnQsIG9wZXJh dGlvbl8xPGludD4gPiIgImludCJdIFwKKysgICAge3BvbGljeWQ8aW50LCBvcGVyYXRpb25fMTxp bnQ+ID46OnBvbGljeWR9IFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6cG9saWN5ZH0KKyth ZGQge3BvbGljeWQ8aW50LCBvcGVyYXRpb25fMTxpbnQ+ID46On5wb2xpY3lkfSBcCisrICAgIFtk dG9yICJwb2xpY3lkPGludCwgb3BlcmF0aW9uXzE8aW50PiA+Il0gXAorKyAgICAtIFwKKysgICAg e3BvbGljeWQ8VCwgUG9saWN5Pjo6fnBvbGljeWR9CisrYWRkIHtwb2xpY3lkMTo6fnBvbGljeWR9 IFwKKysgICAgW2R0b3IgInBvbGljeWQ8aW50LCBvcGVyYXRpb25fMTxpbnQ+ID4iXSBcCisrICAg IHtwb2xpY3lkPGludCwgb3BlcmF0aW9uXzE8aW50PiA+Ojp+cG9saWN5ZH0gXAorKyAgICB7cG9s aWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0KKythZGQge3BvbGljeWQ8bG9uZywgb3BlcmF0aW9u XzE8bG9uZz4gPjo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDxsb25nLCBvcGVyYXRp b25fMTxsb25nPiA+IiAibG9uZyJdIFwKKysgICAgLSBcCisrICAgIHtwb2xpY3lkPFQsIFBvbGlj eT46OnBvbGljeWR9CisrYWRkIHtwb2xpY3lkMjo6cG9saWN5ZH0gXAorKyAgICBbY3RvciAicG9s aWN5ZDxsb25nLCBvcGVyYXRpb25fMTxsb25nPiA+IiAibG9uZyJdIFwKKysgICAge3BvbGljeWQ8 bG9uZywgb3BlcmF0aW9uXzE8bG9uZz4gPjo6cG9saWN5ZH0gXAorKyAgICB7cG9saWN5ZDxULCBQ b2xpY3k+Ojpwb2xpY3lkfQorK2FkZCB7cG9saWN5ZDxsb25nLCBvcGVyYXRpb25fMTxsb25nPiA+ Ojp+cG9saWN5ZH0gXAorKyAgICBbZHRvciAicG9saWN5ZDxsb25nLCBvcGVyYXRpb25fMTxsb25n PiA+Il0gXAorKyAgICAtIFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6fnBvbGljeWR9Cisr YWRkIHtwb2xpY3lkMjo6fnBvbGljeWR9IFwKKysgICAgW2R0b3IgInBvbGljeWQ8bG9uZywgb3Bl cmF0aW9uXzE8bG9uZz4gPiJdIFwKKysgICAge3BvbGljeWQ8bG9uZywgb3BlcmF0aW9uXzE8bG9u Zz4gPjo6fnBvbGljeWR9IFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6fnBvbGljeWR9Cisr YWRkIHtwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID46OnBvbGljeWR9IFwKKysgICAg W2N0b3IgInBvbGljeWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4gPiIgImNoYXIiXSBcCisrICAg IC0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojpwb2xpY3lkfQorK2FkZCB7cG9saWN5ZDM6 OnBvbGljeWR9IFwKKysgICAgW2N0b3IgInBvbGljeWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4g PiIgImNoYXIiXSBcCisrICAgIHtwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID46OnBv bGljeWR9IFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5Pjo6cG9saWN5ZH0KKythZGQge3BvbGlj eWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4gPjo6fnBvbGljeWR9IFwKKysgICAgW2R0b3IgInBv bGljeWQ8Y2hhciwgb3BlcmF0aW9uXzE8Y2hhcj4gPiJdIFwKKysgICAgLSBcCisrICAgIHtwb2xp Y3lkPFQsIFBvbGljeT46On5wb2xpY3lkfQorK2FkZCB7cG9saWN5ZDM6On5wb2xpY3lkfSBcCisr ICAgIFtkdG9yICJwb2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID4iXSBcCisrICAgIHtw b2xpY3lkPGNoYXIsIG9wZXJhdGlvbl8xPGNoYXI+ID46On5wb2xpY3lkfSBcCisrICAgIHtwb2xp Y3lkPFQsIFBvbGljeT46On5wb2xpY3lkfQorK2FkZCB7cG9saWN5ZDxiYXNlLCBvcGVyYXRpb25f MTxiYXNlPiA+Ojpwb2xpY3lkfSBcCisrICAgIFtjdG9yICJwb2xpY3lkPGJhc2UsIG9wZXJhdGlv bl8xPGJhc2U+ID4iICJiYXNlIl0gXAorKyAgICAtIFwKKysgICAge3BvbGljeWQ8VCwgUG9saWN5 Pjo6cG9saWN5ZH0KKythZGQge3BvbGljeWQ0Ojpwb2xpY3lkfSBcCisrICAgIFtjdG9yICJwb2xp Y3lkPGJhc2UsIG9wZXJhdGlvbl8xPGJhc2U+ID4iICJiYXNlIl0gXAorKyAgICB7cG9saWN5ZDxi YXNlLCBvcGVyYXRpb25fMTxiYXNlPiA+Ojpwb2xpY3lkfSBcCisrICAgIHtwb2xpY3lkPFQsIFBv bGljeT46OnBvbGljeWR9CisrYWRkIHtwb2xpY3lkPGJhc2UsIG9wZXJhdGlvbl8xPGJhc2U+ID46 On5wb2xpY3lkfSBcCisrICAgIFtkdG9yICJwb2xpY3lkPGJhc2UsIG9wZXJhdGlvbl8xPGJhc2U+ ID4iXSBcCisrICAgIC0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0KKyth ZGQge3BvbGljeWQ0Ojp+cG9saWN5ZH0gXAorKyAgICBbZHRvciAicG9saWN5ZDxiYXNlLCBvcGVy YXRpb25fMTxiYXNlPiA+Il0gXAorKyAgICB7cG9saWN5ZDxiYXNlLCBvcGVyYXRpb25fMTxiYXNl PiA+Ojp+cG9saWN5ZH0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0KKyth ZGQge3BvbGljeWQ8dGNsYXNzPGludD4sIG9wZXJhdGlvbl8xPHRjbGFzczxpbnQ+ID4gPjo6cG9s aWN5ZH0gXAorKyAgICBbY3RvciAicG9saWN5ZDx0Y2xhc3M8aW50Piwgb3BlcmF0aW9uXzE8dGNs YXNzPGludD4gPiA+IiAidGNsYXNzPGludD4iXSBcCisrICAgIC0gXAorKyAgICB7cG9saWN5ZDxU LCBQb2xpY3k+Ojpwb2xpY3lkfQorK2FkZCB7cG9saWN5ZDU6OnBvbGljeWR9IFwKKysgICAgW2N0 b3IgInBvbGljeWQ8dGNsYXNzPGludD4sIG9wZXJhdGlvbl8xPHRjbGFzczxpbnQ+ID4gPiIgInRj bGFzczxpbnQ+Il0gXAorKyAgICB7cG9saWN5ZDx0Y2xhc3M8aW50Piwgb3BlcmF0aW9uXzE8dGNs YXNzPGludD4gPiA+Ojpwb2xpY3lkfSBcCisrICAgIHtwb2xpY3lkPFQsIFBvbGljeT46OnBvbGlj eWR9CisrYWRkIHtwb2xpY3lkPHRjbGFzczxpbnQ+LCBvcGVyYXRpb25fMTx0Y2xhc3M8aW50PiA+ ID46On5wb2xpY3lkfSBcCisrICAgIFtkdG9yICJwb2xpY3lkPHRjbGFzczxpbnQ+LCBvcGVyYXRp b25fMTx0Y2xhc3M8aW50PiA+ID4iXSBcCisrICAgIC0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xp Y3k+Ojp+cG9saWN5ZH0KKythZGQge3BvbGljeWQ1Ojp+cG9saWN5ZH0gXAorKyAgICBbZHRvciAi cG9saWN5ZDx0Y2xhc3M8aW50Piwgb3BlcmF0aW9uXzE8dGNsYXNzPGludD4gPiA+Il0gXAorKyAg ICB7cG9saWN5ZDx0Y2xhc3M8aW50Piwgb3BlcmF0aW9uXzE8dGNsYXNzPGludD4gPiA+Ojp+cG9s aWN5ZH0gXAorKyAgICB7cG9saWN5ZDxULCBQb2xpY3k+Ojp+cG9saWN5ZH0KKythZGQge3BvbGlj eWQ8aW50LCBvcGVyYXRpb25fMTxpbnQ+ID46OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lk KX0gXAorKyAgICB7b3BlcmF0aW9uXzE8aW50Pjo6ZnVuY3Rpb259XAorKyAgICB7b3BlcmF0aW9u XzE8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDE6OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lk ICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzE8aW50Pjo6ZnVuY3Rpb259IFwKKysgICAge29w ZXJhdGlvbl8xPFQ+OjpmdW5jdGlvbn0KKythZGQge3BvbGljeWQyOjpmdW5jdGlvbn0gXAorKyAg ICB7dm9pZCAodm9pZCl9IFwKKysgICAge29wZXJhdGlvbl8xPGxvbmc+OjpmdW5jdGlvbn0gXAor KyAgICB7b3BlcmF0aW9uXzE8VD46OmZ1bmN0aW9ufQorK2FkZCB7cG9saWN5ZDxjaGFyLCBvcGVy YXRpb25fMTxjaGFyPiA+OjpmdW5jdGlvbn0gXAorKyAgICB7dm9pZCAodm9pZCl9IFwKKysgICAg e29wZXJhdGlvbl8xPGNoYXI+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9uXzE8VD46OmZ1 bmN0aW9ufQorK2FkZCB7cG9saWN5ZDM6OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0g XAorKyAgICB7b3BlcmF0aW9uXzE8Y2hhcj46OmZ1bmN0aW9ufSBcCisrICAgIHtvcGVyYXRpb25f MTxUPjo6ZnVuY3Rpb259CisrYWRkIHtwb2xpY3lkPGJhc2UsIG9wZXJhdGlvbl8xPGJhc2U+ID46 OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICB7b3BlcmF0aW9uXzE8YmFz ZT46OmZ1bmN0aW9ufSBcCisrICAgIHtvcGVyYXRpb25fMTxUPjo6ZnVuY3Rpb259CisrYWRkIHtw b2xpY3lkNDo6ZnVuY3Rpb259IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIHtvcGVyYXRp b25fMTxiYXNlPjo6ZnVuY3Rpb259IFwKKysgICAge29wZXJhdGlvbl8xPFQ+OjpmdW5jdGlvbn0K KythZGQge3BvbGljeWQ8dGNsYXNzPGludD4sIG9wZXJhdGlvbl8xPHRjbGFzczxpbnQ+ID4gPjo6 ZnVuY3Rpb259IFwKKysgICAge3ZvaWQgKHZvaWQpfSBcCisrICAgIHtvcGVyYXRpb25fMTx0Y2xh c3M8aW50PiA+OjpmdW5jdGlvbn0gXAorKyAgICB7b3BlcmF0aW9uXzE8VD46OmZ1bmN0aW9ufQor K2FkZCB7cG9saWN5ZDU6OmZ1bmN0aW9ufSBcCisrICAgIHt2b2lkICh2b2lkKX0gXAorKyAgICB7 b3BlcmF0aW9uXzE8dGNsYXNzPGludD4gPjo6ZnVuY3Rpb259IFwKKysgICAge29wZXJhdGlvbl8x PFQ+OjpmdW5jdGlvbn0KKysKKysjIFN0YXJ0IHRoZSB0ZXN0CisraWYgeyR0cmFjZWxldmVsfSB7 CisrICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30KKysKKytpZiB7W3NraXBfY3BsdXNfdGVzdHNd fSB7IGNvbnRpbnVlIH0KKysKKysjCisrIyB0ZXN0IHJ1bm5pbmcgcHJvZ3JhbXMKKysjCisrc2V0 IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK3NldCB0ZXN0ZmlsZSAiY3BleHBycyIKKytz ZXQgc3JjZmlsZSAiJHt0ZXN0ZmlsZX0uY2MiCisrc2V0IGJpbmZpbGUgW2ZpbGUgam9pbiAkb2Jq ZGlyICRzdWJkaXIgJHRlc3RmaWxlXQorKworK2lmICB7W2dkYl9jb21waWxlIFtmaWxlIGpvaW4g JHNyY2RpciAkc3ViZGlyICRzcmNmaWxlXSAkYmluZmlsZSBcCisrCSAgZXhlY3V0YWJsZSB7ZGVi dWcgYysrfV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICIkdGVzdGZpbGUuZXhwIgorKyAgICBy ZXR1cm4gLTEKKyt9CisrCisraWYge1tnZXRfY29tcGlsZXJfaW5mbyAkYmluZmlsZSAiYysrIl19 IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3Jl aW5pdGlhbGl6ZV9kaXIgW2ZpbGUgam9pbiAkc3JjZGlyICRzdWJkaXJdCisrZ2RiX2xvYWQgJGJp bmZpbGUKKysKKytpZiB7IVtydW50b19tYWluXX0geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1 biB0byBicmVha3BvaW50IgorKyAgICBjb250aW51ZQorK30KKysKKysjIFNldCB0aGUgbGlzdHNp emUgdG8gb25lLiBUaGlzIHdpbGwgaGVscCB3aXRoIHRlc3RpbmcgImxpc3QiLgorK2dkYl90ZXN0 ICJzZXQgbGlzdHNpemUgMSIKKysKKysjICJwcmludCBNRVRIT0QiCisrZm9yZWFjaCBuYW1lIFtn ZXRfZnVuY3Rpb25zIHByaW50XSB7CisrICAgIGdkYl90ZXN0ICJwcmludCAkbmFtZSIgW2dldCAk bmFtZSBwcmludF0gInByaW50ICRuYW1lIgorK30KKysKKysjICJsaXN0IE1FVEhPRCIKKytmb3Jl YWNoIG5hbWUgW2dldF9mdW5jdGlvbnMgbGlzdF0geworKyAgICBnZGJfdGVzdCAibGlzdCAkbmFt ZSIgW2dldCAkbmFtZSBsaXN0XSAibGlzdCAkbmFtZSIKKyt9CisrCisrIyBSdW5uaW5nIHRvIGJy ZWFrcG9pbnQgLS0gdXNlIGFueSBmdW5jdGlvbiB3ZSBjYW4gImxpc3QiCisrZm9yZWFjaCBuYW1l IFtnZXRfZnVuY3Rpb25zIGxpc3RdIHsKKysgICAgIyBTa2lwICJtYWluIiwgc2luY2UgdGVzdF9i cmVha3BvaW50IHVzZXMgaXQKKysgICAgaWYge1tzdHJpbmcgY29tcGFyZSAkbmFtZSAibWFpbiJd ICE9IDB9IHsKKysJdGVzdF9icmVha3BvaW50ICRuYW1lCisrICAgIH0KKyt9CisrCisrZ2RiX2V4 aXQKKytyZXR1cm4gMAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVu Y3MuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmNjCitpbmRleCBmNGY3OGE2 Li4xMWRiYTA2IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5j YworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5jYworQEAgLTE5NSw2ICsx OTUsMTIgQEAgY2hhciAqCWRtX3R5cGVfY2hhcl9zdGFyIChjaGFyICogcCkJCXsgcmV0dXJuIHA7 IH0KICBpbnQJZG1fdHlwZV9mb29fcmVmIChmb28gJiBmb28pCQl7IHJldHVybiBmb28uaWZvbzsg fQogIGludCAqCWRtX3R5cGVfaW50X3N0YXIgKGludCAqIHApCQl7IHJldHVybiBwOyB9CiAgbG9u ZyAqCWRtX3R5cGVfbG9uZ19zdGFyIChsb25nICogcCkJCXsgcmV0dXJuIHA7IH0KQEAgLTIwMDk0 LDQ2ICsyMjA5NCw0MDIgQEAgaW5kZXggNjgzMmYzYi4uYmFmMDhkNyAxMDA2NDQKICtnZGJfdGVz dCAicHJpbnQgZGlhbW9uZC4qZGlhbW9uZF9wZnVuY19wdHIgKDIwKSIgXAogKyAgICAiSW52YWxp ZCBkYXRhIHR5cGUgZm9yIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZC4iCiArCi0rIyBXaXRoIHBhcmVu dGhlc2VzLCBpdCBpcyB2YWxpZC4KKysjIFdpdGggcGFyZW50aGVzZXMsIGl0IGlzIHZhbGlkLgor KworK2dkYl90ZXN0ICJwcmludCAoZGlhbW9uZC4qZGlhbW9uZF9wZnVuY19wdHIpICgyMCkiIFwK KysgICAgIiR2aG4gPSAzOSIKKysKKysjIE1ha2Ugc3VyZSB0aGF0IHdlIGRvIG5vdCBpbnRlcnBy ZXQgdGhpcyBhcyBlaXRoZXIgYSBtZW1iZXIgcG9pbnRlcgorKyMgY2FsbCBvciBhIG1lbWJlciBm dW5jdGlvbiBjYWxsLgorKworK2dkYl90ZXN0ICJwcmludCBkaWFtb25kLmZ1bmNfcHRyICgyMCki IFwKKysgICAgIiR2aG4gPSAzOSIKKysKKyAjID09PT09PT09PT09PT09PT09PT09PT09PT09Cisg IyBwb2ludGVyIHRvIG1lbWJlciBmdW5jdGlvbgorICMgPT09PT09PT09PT09PT09PT09PT09PT09 PT0KK0BAIC00MjAsNyArNDQ3LDcgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIHBtZiIgJG5h bWUgeworIAorIHNldCBuYW1lICJwcmludCBwbWYiCisgZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50 IHBtZiIgJG5hbWUgeworLSAgICAtcmUgIiR2aG4gPSAkaGV4IDxBOjpiYXJcXChpbnRcXCk+XHJc biRnZGJfcHJvbXB0ICQiIHsKKysgICAgLXJlICIkdmhuID0gXFwoaW50IFxcKEE6OlxcKlxcKVxc KEEgXFwqLCBpbnRcXClcXCkgJGhleCA8QTo6YmFyXFwoaW50XFwpPlxyXG4kZ2RiX3Byb21wdCAk IiB7CisgCXBhc3MgJG5hbWUKKyAgICAgfQorICAgICAtcmUgIiR2aG4gPSAuKm5vdCBzdXBwb3J0 ZWQgd2l0aCBIUCBhQ0MuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CitAQCAtNjA4LDYgKzYzNSw5IEBA IGdkYl90ZXN0X211bHRpcGxlICJwcmludCAoYS4qcG1mKSgzKSIgJG5hbWUgeworICAgICB9Cisg fQorIAorK2dkYl90ZXN0ICJwdHlwZSBhLipwbWYiICJ0eXBlID0gaW50IFxcKEEgXFwqLCBpbnRc XCkiCisrZ2RiX3Rlc3QgInB0eXBlIChhLipwbWYpKDMpIiAidHlwZSA9IGludCIKKysKKyAjIFBy aW50IG91dCBhIHBvaW50ZXIgdG8gZGF0YSBtZW1iZXIgd2hpY2ggcmVxdWlyZXMgbG9va2luZyBp bnRvCisgIyBhIGJhc2UgY2xhc3MuCisgZ2RiX3Rlc3QgInByaW50IGRpYW1vbmRfcG1pIiAiJHZo biA9ICZCYXNlOjp4IgorQEAgLTY1OCw1ICs2ODgsNSBAQCBnZGJfdGVzdCAicHJpbnQgbnVsbF9w bWkgPSAmQTo6aiIgIiR2aG4gPSAmQTo6aiIKKyBnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWkgPSAw IiAiJHZobiA9IE5VTEwiCisgCisgZ2RiX3Rlc3QgInByaW50IG51bGxfcG1mIiAiJHZobiA9IE5V TEwiCistZ2RiX3Rlc3QgInByaW50IG51bGxfcG1mID0gJkE6OmZvbyIgIiR2aG4gPSAkaGV4IDxB Ojpmb28gP1xcKGludFxcKT4iCisrZ2RiX3Rlc3QgInByaW50IG51bGxfcG1mID0gJkE6OmZvbyIg IiR2aG4gPSBcXChpbnQgXFwoQTo6XFwqXFwpXFwoQSBcXCosIGludFxcKVxcKSAkaGV4IDxBOjpm b28gP1xcKGludFxcKT4iCisgZ2RiX3Rlc3QgInByaW50IG51bGxfcG1mID0gMCIgIiR2aG4gPSBO VUxMIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1rb2VuaWcu Y2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2Uta29lbmlnLmNjCituZXcgZmlsZSBt b2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uM2MzMGNiMgorLS0tIC9kZXYvbnVsbAorKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLWtvZW5pZy5jYworQEAgLTAsMCArMSwyMzIg QEAKKytuYW1lc3BhY2UgQQorK3sKKysgIGNsYXNzIEMKKysgIHsKKysgIHB1YmxpYzoKKysgICAg c3RhdGljIGNvbnN0IGludCB4ID0gMTE7CisrICB9OworKworKyAgaW50CisrICBmaXJzdCAoQyBj KQorKyAgeworKyAgICByZXR1cm4gMTE7CisrICB9CisrCisrICBpbnQKKysgIGZpcnN0IChpbnQg YSwgQyBjKQorKyAgeworKyAgICByZXR1cm4gMjI7CisrICB9CisrCisrICBpbnQKKysgIHNlY29u ZCAoaW50IGEsIGludCBiLCBDIGNjLCBpbnQgYywgaW50IGQpCisrICB7CisrICAgIHJldHVybiAz MzsKKysgIH0KKysKKyt9CisrCisrc3RydWN0IEIKKyt7CisrICBBOjpDIGM7CisrfTsKKysKKysv Ly0tLS0tLS0tLS0tLQorKworK25hbWVzcGFjZSBFCisreworKyAgY2xhc3MgT3t9OworKyAgaW50 IGZvbyAoTyBvKXtyZXR1cm4gMTsgfQorKyAgaW50IGZvbyAoTyBvLCBPIG8yKXtyZXR1cm4gMjsg fQorKyAgaW50IGZvbyAoTyBvLCBPIG8yLCBpbnQgaSl7cmV0dXJuIDM7IH0KKyt9CisrCisrbmFt ZXNwYWNlIEYKKyt7CisrICBjbGFzcyBPe307CisrICBpbnQgZm9vICggICAgICAgTyBmbywgOjpF OjpPIGVvKXsgcmV0dXJuIDQ7fQorKyAgaW50IGZvbyAoaW50IGksIE8gZm8sIDo6RTo6TyBlbyl7 IHJldHVybiA1O30KKyt9CisrCisrbmFtZXNwYWNlIEcKKyt7CisrICBjbGFzcyBPe307CisrICBp bnQgZm9vIChPIGdvLCA6OkY6Ok8gZm8sIDo6RTo6TyBlbyl7IHJldHVybiA2OyB9CisrfQorKwor Ky8vLS0tLS0tLS0tLS0tCisrCisrbmFtZXNwYWNlIEgKKyt7CisrICBjbGFzcyBPe307CisrICBp bnQgZm9vIChPKXsgcmV0dXJuIDc7fQorK30KKysKKytuYW1lc3BhY2UgSQorK3sKKysgIGNsYXNz IE86IHB1YmxpYyBIOjpPIHt9OworKyAgY2xhc3MgWDogSDo6T3t9OworK30KKysKKysvLy0tLS0t LS0tLS0tLQorKworK25hbWVzcGFjZSBKCisreworKyAgdW5pb24gVXt9OworKyAgc3RydWN0IFN7 fTsKKysgIGVudW0gRXt9OworKworKyAgY2xhc3MgQXsKKysgIHB1YmxpYzoKKysgICAgY2xhc3Mg Qnt9OworKyAgfTsKKysKKysgIGNsYXNzIEN7fTsKKysKKysgIGludCBmb28gKFUpeyByZXR1cm4g ODt9CisrICBpbnQgZm9vIChTKXsgcmV0dXJuIDk7fQorKyAgaW50IGZvbyAoRSl7IHJldHVybiAx MDt9CisrICBpbnQgZm9vIChBOjpCKXsgcmV0dXJuIDExO30KKysgIGludCBmb28gKEEqKXsgcmV0 dXJuIDEyO30KKysgIGludCBmb28gKEEqKil7IHJldHVybiAxMzt9CisrICBpbnQgZm9vIChDW10p eyByZXR1cm4gMTQ7fQorKworK30KKysvLy0tLS0tLS0tLS0tLQorKworK25hbWVzcGFjZSBLewor KyAgY2xhc3MgT3t9OworKworKyAgaW50IGZvbyhPLCBpbnQpeworKyAgICByZXR1cm4gMTU7Cisr ICB9CisrCisrICBpbnQgYmFyKE8sIGludCl7CisrICAgIHJldHVybiAxNTsKKysgIH0KKyt9Cisr CisraW50IGZvbyhLOjpPLCBmbG9hdCl7CisrICByZXR1cm4gMTY7CisrfQorKworK2ludCBiYXIo Szo6TywgaW50KXsKKysgIHJldHVybiAxNjsKKyt9CisrLy8tLS0tLS0tLS0tLS0KKysKKytuYW1l c3BhY2UgTCB7CisrICBuYW1lc3BhY2UgQXsKKysgICAgbmFtZXNwYWNlIEJ7CisrICAgIGNsYXNz IE8ge307CisrCisrICAgIGludCBmb28gKE8peworKyAgICAgIHJldHVybiAxNzsKKysgICAgfQor KworKyAgICB9CisrICB9CisrfQorKworKy8vLS0tLS0tLS0tLS0tCisrCisrbmFtZXNwYWNlIE0g eworKyAgY2xhc3MgT3sKKysgIHB1YmxpYzoKKysgICAgaW50IG9wZXJhdG9yPT0gKGludCl7Cisr ICAgICAgcmV0dXJuIDE4OworKyAgICB9CisrCisrICAgIGludCBvcGVyYXRvcj09IChmbG9hdCl7 CisrICAgICAgcmV0dXJuIDE5OworKyAgICB9CisrCisrICAgIGludCBvcGVyYXRvcisgKGZsb2F0 KXsKKysgICAgICByZXR1cm4gMjI7CisrICAgIH0KKysKKysgIH07CisrCisrICBpbnQgb3BlcmF0 b3IhPSAoTywgaW50KXsKKysgICAgcmV0dXJuIDIwOworKyAgfQorKworKyAgaW50IG9wZXJhdG9y IT0gKE8sIGRvdWJsZSl7CisrICAgIHJldHVybiAyMTsKKysgIH0KKysKKysgIGludCBvcGVyYXRv cisgKE8sIGludCl7CisrICAgIHJldHVybiAyMzsKKysgIH0KKysKKysgIGludCBvcGVyYXRvcisr IChPKXsKKysgICAgcmV0dXJuIDI0OworKyAgfQorKworK30KKysvLy0tLS0tLS0tLS0tLQorK2lu dAorK21haW4gKCkKKyt7CisrICBBOjpDIGM7CisrICBCIGI7CisrCisrICBBOjpmaXJzdCAoYyk7 CisrICBmaXJzdCAoMCwgYyk7CisrICBzZWNvbmQgKDAsIDAsIGMsIDAsIDApOworKyAgQTo6Zmly c3QgKGIuYyk7CisrCisrICBFOjpPIGVvOworKyAgRjo6TyBmbzsKKysgIEc6Ok8gZ287CisrCisr ICBmb28gKGVvKTsKKysgIGZvbyAoZW8sIGVvKTsKKysgIGZvbyAoZW8sIGVvLCAxKTsKKysgIGZv byAoZm8sIGVvKTsKKysgIGZvbyAoMSAgLGZvLCBlbyk7CisrICBmb28gKGdvLCBmbywgZW8pOwor KworKyAgSTo6TyBpbzsKKysgIEk6OlggaXg7CisrCisrICBmb28gKGlvKTsKKysvL2ZvbyAoaXgp OworKworKyAgSjo6VSBqdTsKKysgIEo6OlMganM7CisrICBKOjpFIGplOworKyAgSjo6QTo6QiBq YWI7CisrICBKOjpBICpqYXA7CisrICBKOjpBICoqamFwcDsKKysgIEo6OkMgamNhWzNdOworKwor KyAgZm9vIChqdSk7CisrICBmb28gKGpzKTsKKysgIGZvbyAoamUpOworKyAgZm9vIChqYWIpOwor KyAgZm9vIChqYXApOworKyAgZm9vIChqYXBwKTsKKysgIGZvbyAoamNhKTsKKysKKysgIEs6Ok8g a287CisrICBmb28gKGtvLCAxKTsKKysgIGZvbyAoa28sIDEuMGYpOworKyAgLy9iYXIoa28sMSk7 CisrCisrICBMOjpBOjpCOjpPIGxhYm87CisrICBmb28gKGxhYm8pOworKworKyAgTTo6TyBvOwor KyAgbyA9PSA1OworKyAgbyA9PSA1LjBmOworKyAgbyAhPSA1OworKyAgbyAhPSA1LjBmOworKyAg byArIDU7CisrICBvICsgNS4wZjsKKysKKysgIHJldHVybiBmaXJzdCAoMCwgYykgKyBmb28gKGVv KSArCisrICAgICAgICAgZm9vIChlbywgZW8pICsgZm9vIChlbywgZW8sIDEpICArCisrICAgICAg ICAgZm9vIChmbywgZW8pICsgZm9vICgxICAsZm8sIGVvKSArCisrICAgICAgICAgZm9vIChnbywg Zm8sIGVvKTsKKyt9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNl LWtvZW5pZy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2Uta29lbmlnLmV4cAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmM3M2UyMzkKKy0tLSAvZGV2L251 bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1rb2VuaWcuZXhwCitAQCAt MCwwICsxLDExMiBAQAorKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lmICR0cmFjZWxl dmVsIHRoZW4geworKyAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKKyt9CisrCisrc2V0IHBybXNfaWQg MAorK3NldCBidWdfaWQgMAorKworK3NldCB0ZXN0ZmlsZSBuYW1lc3BhY2Uta29lbmlnCisrc2V0 IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9 LyR7dGVzdGZpbGV9CisraWYgIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7 c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1ZyBjKyt9XSAhPSAiIiB9IHsK KysgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgdGVzdCBwcm9ncmFtIgorKyAgICByZXR1 cm4gLTEKKyt9CisrCisrIyBHZXQgdGhpbmdzIHN0YXJ0ZWQuCisrCisrZ2RiX2V4aXQKKytnZGJf c3RhcnQKKytnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKytnZGJfbG9hZCAk e2JpbmZpbGV9CisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1 biB0byBicmVha3BvaW50IG1haW4iCisrICAgIGNvbnRpbnVlCisrfQorKworKyMgVGVzdCB0aGF0 IGtvZW5pZyBsb29rdXAgZmluZHMgY29ycmVjdCBmdW5jdGlvbgorK2dkYl90ZXN0ICJwIGZpcnN0 KGMpIiAiPSAxMSIKKysKKysjIENoYW5nZSB0aGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgYW5kIHBv c2l0aW9uIG9mCisrIyB0aGUgcXVhbGlmeWluZyBwYXJhbWV0ZXIKKytnZGJfdGVzdCAicCBzZWNv bmQoMCwwLGMsMCwwKSIgIj0gMzMiCisrCisrIyBUZXN0IHRoYXQga29lbmlnIGxvb2t1cCBmaW5k cyBjb3JyZWN0IGZ1bmN0aW9uCisrIyBldmVuIGlmIGl0IGlzIG92ZXJsb2FkZWQKKytnZGJfdGVz dCAicCBmaXJzdCgwLGMpIiAiPSAyMiIKKysKKysjIFRlc3QgdGhhdCBrb2VuaWcgbG9va3VwIGZp bmRzIGNvcnJlY3QgZnVuY3Rpb24KKysjIHdoZW4gdGhlIGFyZ3VtZW50IGlzIGFuIGV4cHJlc3Np b24KKytnZGJfdGVzdCAicCBmaXJzdChiLmMpIiAiPSAxMSIKKysKKysjIHRlc3QgdGhhdCByZXNv bHV0aW9ucyBjYW4gYmUgbWFkZSBhY3Jvc3MgbmFtZXNwYWNlcworK2dkYl90ZXN0ICJwIGZvbyhl bykiICAgICAgICAgIj0gMSIKKytnZGJfdGVzdCAicCBmb28oZW8sIGVvKSIgICAgICI9IDIiCisr Z2RiX3Rlc3QgInAgZm9vKGVvLCBlbywgMSkiICAiPSAzIgorK2dkYl90ZXN0ICJwIGZvbyhmbywg ZW8pIiAgICAgIj0gNCIKKytnZGJfdGVzdCAicCBmb28oMSAsZm8sIGVvKSIgICI9IDUiCisrZ2Ri X3Rlc3QgInAgZm9vKGdvLCBmbywgZW8pIiAiPSA2IgorKworKyN0ZXN0IHRoYXQgZ2RiIGZhaWxz IGdyYWNlZnVsbHkKKytnZGJfdGVzdCAicCBmYWtlKGVvKSIgIk5vIHN5bWJvbCBcImZha2VcIiBp biBjdXJyZW50IGNvbnRleHQuIgorKworKyN0ZXN0IHRoYXQgbmFtZXNwYWNlcyBvZiBiYXNlIGNs YXNzZXMgYXJlIHNlYXJjaGVkCisrZ2RiX3Rlc3QgInAgZm9vKGlvKSIgIj0gNyIKKytnZGJfdGVz dCAicCBmb28oaXgpIiAiQ2Fubm90IHJlc29sdmUgZnVuY3Rpb24gZm9vIHRvIGFueSBvdmVybG9h ZGVkIGluc3RhbmNlIgorKworKyN0ZXN0IGZvciBvdGhlciB0eXBlcworK2dkYl90ZXN0ICJwIGZv byhqdSkiICI9IDgiCisrZ2RiX3Rlc3QgInAgZm9vKGpzKSIgIj0gOSIKKytnZGJfdGVzdCAicCBm b28oamUpIiAiPSAxMCIKKysKKysjdGVzdCBmb3IgY2xhc3MgbWVtYmVycworK3NldHVwX3hmYWls ICIqLSotKiIKKytnZGJfdGVzdCAicCBmb28oamFiKSIgIj0gMTEiCisrCisrZ2RiX3Rlc3QgInAg Zm9vKGphcCkiICI9IDEyIgorK2dkYl90ZXN0ICJwIGZvbyhqYXBwKSIgIj0gMTMiCisrZ2RiX3Rl c3QgInAgZm9vKGpjYSkiICI9IDE0IgorKworKyN0ZXN0IG92ZXJsb2FkIHJlc29sdXRpb24KKytn ZGJfdGVzdCAicCBmb28oa28sMSkiICI9IDE1IgorK2dkYl90ZXN0ICJwIGZvbyhrbywxLjBmKSIg Ij0gMTYiCisrc2V0dXBfeGZhaWwgIiotKi0qIgorK2dkYl90ZXN0ICJwIGJhcihrbywxKSIgIj0g LTEiCiArCi0rZ2RiX3Rlc3QgInByaW50IChkaWFtb25kLipkaWFtb25kX3BmdW5jX3B0cikgKDIw KSIgXAotKyAgICAiJHZobiA9IDM5IgorKyN0ZXN0IGxvb2t1cCBvZiBvYmplY3RzIGJlbG9uZ2lu ZyB0byBuZXN0ZWQgbmFtZXNwYWNlcworK2dkYl90ZXN0ICJwIGZvbyhsYWJvKSIgIj0gMTciCiAr Ci0rIyBNYWtlIHN1cmUgdGhhdCB3ZSBkbyBub3QgaW50ZXJwcmV0IHRoaXMgYXMgZWl0aGVyIGEg bWVtYmVyIHBvaW50ZXIKLSsjIGNhbGwgb3IgYSBtZW1iZXIgZnVuY3Rpb24gY2FsbC4KKysjIHRl c3QgbG9va3VwIG9mIG5hbWVzcGFjZSB1c2VyLWRlZmluZWQgb3BlcmF0b3JzCisrIyBhbmQgb3Zl cmxvYWQgcmVzb2x1dGlvbjoKICsKLStnZGJfdGVzdCAicHJpbnQgZGlhbW9uZC5mdW5jX3B0ciAo MjApIiBcCi0rICAgICIkdmhuID0gMzkiCisrIyB3aXRoaW4gY2xhc3MKKytnZGJfdGVzdCAicCBv ID09IDUiICI9IDE4IgorK2dkYl90ZXN0ICJwIG8gPT0gNS4wZiIgIj0gMTkiCiArCi0gIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PQotICMgcG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24KLSAj ID09PT09PT09PT09PT09PT09PT09PT09PT09Ci1AQCAtNDIwLDcgKzQ0Nyw3IEBAIGdkYl90ZXN0 X211bHRpcGxlICJwdHlwZSBwbWYiICRuYW1lIHsKLSAKLSBzZXQgbmFtZSAicHJpbnQgcG1mIgot IGdkYl90ZXN0X211bHRpcGxlICJwcmludCBwbWYiICRuYW1lIHsKLS0gICAgLXJlICIkdmhuID0g JGhleCA8QTo6YmFyXFwoaW50XFwpPlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rICAgIC1yZSAiJHZo biA9IFxcKGludCBcXChBOjpcXCpcXClcXChBIFxcKiwgaW50XFwpXFwpICRoZXggPEE6OmJhclxc KGludFxcKT5cclxuJGdkYl9wcm9tcHQgJCIgewotIAlwYXNzICRuYW1lCi0gICAgIH0KLSAgICAg LXJlICIkdmhuID0gLipub3Qgc3VwcG9ydGVkIHdpdGggSFAgYUNDLipcclxuJGdkYl9wcm9tcHQg JCIgewotQEAgLTYwOCw2ICs2MzUsOSBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgKGEuKnBt ZikoMykiICRuYW1lIHsKLSAgICAgfQotIH0KLSAKLStnZGJfdGVzdCAicHR5cGUgYS4qcG1mIiAi dHlwZSA9IGludCBcXChBIFxcKiwgaW50XFwpIgotK2dkYl90ZXN0ICJwdHlwZSAoYS4qcG1mKSgz KSIgInR5cGUgPSBpbnQiCisrIyB3aXRoaW4gbmFtZXNwYWNlCisrZ2RiX3Rlc3QgInAgbyAhPSA1 IiAiPSAyMCIKKytnZGJfdGVzdCAicCBvICE9IDUuMGYiICI9IDIxIgogKwotICMgUHJpbnQgb3V0 IGEgcG9pbnRlciB0byBkYXRhIG1lbWJlciB3aGljaCByZXF1aXJlcyBsb29raW5nIGludG8KLSAj IGEgYmFzZSBjbGFzcy4KLSBnZGJfdGVzdCAicHJpbnQgZGlhbW9uZF9wbWkiICIkdmhuID0gJkJh c2U6OngiCi1AQCAtNjU4LDUgKzY4OCw1IEBAIGdkYl90ZXN0ICJwcmludCBudWxsX3BtaSA9ICZB OjpqIiAiJHZobiA9ICZBOjpqIgotIGdkYl90ZXN0ICJwcmludCBudWxsX3BtaSA9IDAiICIkdmhu ID0gTlVMTCIKLSAKLSBnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYiICIkdmhuID0gTlVMTCIKLS1n ZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYgPSAmQTo6Zm9vIiAiJHZobiA9ICRoZXggPEE6OmZvbyA/ XFwoaW50XFwpPiIKLStnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYgPSAmQTo6Zm9vIiAiJHZobiA9 IFxcKGludCBcXChBOjpcXCpcXClcXChBIFxcKiwgaW50XFwpXFwpICRoZXggPEE6OmZvbyA/XFwo aW50XFwpPiIKLSBnZGJfdGVzdCAicHJpbnQgbnVsbF9wbWYgPSAwIiAiJHZobiA9IE5VTEwiCisr IyBhY3Jvc3MgbmFtZXNwYWNlIGFuZCBjbGFzcworK2dkYl90ZXN0ICJwIG8gKyA1LjBmIiAiPSAy MiIKKytnZGJfdGVzdCAicCBvICsgNSIgIj0gMjMiCisrCisrZ2RiX3Rlc3QgInAgbysrIiAiPSAy NCIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtbXVsdGlwbGUt aW1wb3J0cy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1tdWx0aXBsZS1pbXBv cnRzLmNjCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uNmIxODBkNgpAQCAt MjA5MDcsNyArMjMyNjMsNyBAQCBpbmRleCA0MzYyZmQ4Li5mN2NmZDU3IDEwMDY0NAogIAogICMg U29tZSBhbm9ueW1vdXMgbmFtZXNwYWNlIHRlc3RzLgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL25zdXNpbmcuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbnN1c2luZy5leHAK LWluZGV4IGJkMTE1YzQuLjVmODBmN2QgMTAwNjQ0CitpbmRleCA3MmE2MTZlLi5mZDk5Zjg3IDEw MDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbnN1c2luZy5leHAKICsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmNwL25zdXNpbmcuZXhwCiBAQCAtMzAsNyArMzAsNyBAQCBpZiAgeyBbZ2Ri X2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4 ZWN1dGFibGUgXApAQCAtMjA5MjAsNyArMjMyNzYsNyBAQCBpbmRleCBiZDExNWM0Li41ZjgwZjdk IDEwMDY0NAogIAogIAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL292ZXJsb2Fk LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL292ZXJsb2FkLmV4cAotaW5kZXggMWJmYTBmMy4u OWZkMzFhOCAxMDA2NDQKK2luZGV4IGFlOGZkMjYuLjgyOTEwMjIgMTAwNjQ0CiAtLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5jcC9vdmVybG9hZC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L292ZXJsb2FkLmV4cAogQEAgLTc0LDEyICs3NCwxMiBAQCBzZXQgcmVfbWV0aG9kcwkiJHtyZV9t ZXRob2RzfSR7d3N9aW50IG92ZXJsb2FkMWFyZ1xcKCh2b2lkfClcXCk7IgpAQCAtMjI3NDksNiAr MjUxMDUsMjQyIEBAIGluZGV4IDAwMDAwMDAuLjM5NjMyZDUKICsKICsjIEZhaWxlZCBnZGJfbG9h ZCB3b3VsZCBhYm9ydCB0aGUgdGVzdGNhc2UgZXhlY3V0aW9uIGVhcmxpZXIuCiArcGFzcyAiZmls ZSBsb2FkZWQiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3Vu ZC1sb2NsaXN0LlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu UworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjkzNTM2OTgKKy0tLSAvZGV2 L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5T CitAQCAtMCwwICsxLDE3NiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworKworKy8qIERlYnVnIGluZm9ybWF0aW9uICovCisrCisrLyogV2Ugd2lsbCBgYnJlYWsgKm1h aW4nIGF0IHRoZSB2ZXJ5IGZpcnN0IGluc3RydWN0aW9uLiAgKi8KKysjZGVmaW5lIG1haW5fbGVu Z3RoIDEKKysKKysJLnNlY3Rpb24JLmRhdGEKKyt2YXJkYXRhOgorKwkvKiBTZWUgRFdfT1BfbGl0 MyArIDEgKDAtYmFzZWQpLiAgKi8KKysJLnN0cmluZwkJInNlZW5ub3RzZWVuIgorKworKwkuc2Vj dGlvbgkuZGVidWdfaW5mbworKy5MY3UxX2JlZ2luOgorKwkuNGJ5dGUJCS5MY3UxX2VuZCAtIC5M Y3UxX3N0YXJ0CS8qIExlbmd0aCBvZiBDb21waWxhdGlvbiBVbml0ICovCisrLkxjdTFfc3RhcnQ6 CisrCS4yYnl0ZQkJMgkJCS8qIERXQVJGIHZlcnNpb24gbnVtYmVyICovCisrCS40Ynl0ZQkJLkxk ZWJ1Z19hYmJyZXYwCQkvKiBPZmZzZXQgSW50byBBYmJyZXYuIFNlY3Rpb24gKi8KKysJLmJ5dGUJ CTQJCQkvKiBQb2ludGVyIFNpemUgKGluIGJ5dGVzKSAqLworKworKwkvKiBDVSBkaWUgKi8KKysJ LnVsZWIxMjgJMQkJCS8qIEFiYnJldjogRFdfVEFHX2NvbXBpbGVfdW5pdCAqLworKwkuNGJ5dGUJ CS5McHJvZHVjZXIJCS8qIERXX0FUX3Byb2R1Y2VyICovCisrCS8qIFVzZSBDKysgdG8gZXhwbG9p dCBhIGJ1ZyBpbiBwYXJzaW5nIERXX0FUX25hbWUgIiIuICAqLworKwkuYnl0ZQkJNAkJCS8qIERX X0FUX2xhbmd1YWdlIChDKyspIC0gICovCisrCS40Ynl0ZQkJbWFpbgkJCS8qIERXX0FUX2xvd19w YyAqLworKwkuYnl0ZQkJbWFpbl9sZW5ndGgJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKysKKysuTGFy cmF5X3R5cGU6CisrCS51bGViMTI4CTIJCQkvKiBBYmJyZXY6IERXX1RBR19hcnJheV90eXBlICov CisrCS40Ynl0ZQkJLkxjaGFyX3R5cGUtLkxjdTFfYmVnaW4JLyogRFdfQVRfdHlwZSAqLworKwor KwkudWxlYjEyOAkzCQkJLyogQWJicmV2OiBEV19UQUdfc3VicmFuZ2VfdHlwZSAqLworKwkuNGJ5 dGUJCS5MdWludF90eXBlLS5MY3UxX2JlZ2luCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJCTAJ CQkvKiBEV19BVF9sb3dlcl9ib3VuZCAqLworKwkuNGJ5dGUJCS5MbGVuX3Zhci0uTGN1MV9iZWdp bgkvKiBEV19BVF91cHBlcl9ib3VuZCAqLworKwkuYnl0ZQkJMAkJCS8qIEVuZCBvZiBjaGlsZHJl biBvZiBkaWUgKi8KKysKKysuTHVpbnRfdHlwZToKKysJLnVsZWIxMjgJNAkJCS8qIEFiYnJldjog RFdfVEFHX2Jhc2VfdHlwZSAqLworKwkuNGJ5dGUJCS5MdWludF9zdHIJCS8qIERXX0FUX25hbWUg Ki8KKysJLmJ5dGUJCTQJCQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKysJLmJ5dGUJCTcJCQkvKiBE V19BVF9lbmNvZGluZyAqLworKworKy5MY2hhcl90eXBlOgorKwkudWxlYjEyOAk0CQkJLyogQWJi cmV2OiBEV19UQUdfYmFzZV90eXBlICovCisrCS40Ynl0ZQkJLkxjaGFyX3N0cgkJLyogRFdfQVRf bmFtZSAqLworKwkuYnl0ZQkJMQkJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworKwkuYnl0ZQkJNgkJ CS8qIERXX0FUX2VuY29kaW5nICovCisrCisrLkxsZW5fdmFyOgorKwkudWxlYjEyOAk1CQkJLyog QWJicmV2OiBEV19UQUdfdmFyaWFibGUgYXJ0aWZpY2lhbCAqLworKwkuYnl0ZQkJMQkJCS8qIERX X0FUX2FydGlmaWNpYWwgKi8KKysJLjRieXRlCQkuTHVpbnRfdHlwZS0uTGN1MV9iZWdpbgkvKiBE V19BVF90eXBlICovCisrCS40Ynl0ZQkJLkxsZW5fbG9jbGlzdC0uTGxvY2xpc3QJLyogRFdfQVRf bG9jYXRpb24gKi8KKysKKysJLnVsZWIxMjgJNgkJCS8qIEFiYnJldjogRFdfVEFHX3ZhcmlhYmxl IERXX0ZPUk1fc3RyaW5nICovCisrCS5zdHJpbmcJCSJhX3N0cmluZyIJCS8qIERXX0FUX25hbWUg Ki8KKysJLjRieXRlCQkuTGFycmF5X3R5cGUtLkxjdTFfYmVnaW4vKiBEV19BVF90eXBlICovCisr CS5ieXRlCQkyZiAtIDFmCQkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysxOgkuYnl0ZQkJMwkJCS8q ICAgRFdfT1BfYWRkciAqLworKwkuNGJ5dGUJCXZhcmRhdGEJCQkvKiAgIDxhZGRyPiAqLworKzI6 CisrCisrCS5ieXRlCQkwCQkJLyogRW5kIG9mIGNoaWxkcmVuIG9mIENVICovCisrLkxjdTFfZW5k OgorKworKwkuc2VjdGlvbgkuZGVidWdfbG9jCisrLkxsb2NsaXN0OgorKy5MbGVuX2xvY2xpc3Q6 CisrCS40Ynl0ZQkwCQkJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MKKysJLjRieXRlCW1h aW5fbGVuZ3RoCQkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MKKysJLnZhbHVlCTJmLTFmCSMg TG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrMToJLmJ5dGUJMHgzMwkjIERXX09QX2xpdDMKKysJ LmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrMjoKKysJLnF1YWQJMHgwCSMgTG9jYXRp b24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1QyKQorKwkucXVhZAkweDAJIyBMb2NhdGlv biBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QyKQorKworKwkuc2VjdGlvbiAuZGVidWdfYWJi cmV2CisrLkxkZWJ1Z19hYmJyZXYwOgorKwkudWxlYjEyOAkxCQkJLyogQWJicmV2IGNvZGUgKi8K KysJLnVsZWIxMjgJMHgxMQkJCS8qIERXX1RBR19jb21waWxlX3VuaXQgKi8KKysJLmJ5dGUJCTB4 MQkJCS8qIGhhc19jaGlsZHJlbiAqLworKwkudWxlYjEyOAkweDI1CQkJLyogRFdfQVRfcHJvZHVj ZXIgKi8KKysJLnVsZWIxMjgJMHhlCQkJLyogRFdfRk9STV9zdHJwICovCisrCS51bGViMTI4CTB4 MTMJCQkvKiBEV19BVF9sYW5ndWFnZSAqLworKwkudWxlYjEyOAkweGIJCQkvKiBEV19GT1JNX2Rh dGExICovCisrCS51bGViMTI4CTB4MTEJCQkvKiBEV19BVF9sb3dfcGMgKi8KKysJLnVsZWIxMjgJ MHgxCQkJLyogRFdfRk9STV9hZGRyICovCisrCS51bGViMTI4CTB4MTIJCQkvKiBEV19BVF9oaWdo X3BjICovCisrCS51bGViMTI4CTB4YgkJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLmJ5dGUJCTB4 MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysK KysJLnVsZWIxMjgJMgkJCS8qIEFiYnJldiBjb2RlICovCisrCS51bGViMTI4CTB4MQkJCS8qIFRB RzogRFdfVEFHX2FycmF5X3R5cGUgKi8KKysJLmJ5dGUJCTB4MQkJCS8qIERXX2NoaWxkcmVuX3ll cyAqLworKwkudWxlYjEyOAkweDQ5CQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOAkweDEz CQkJLyogRFdfRk9STV9yZWY0ICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisr CS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCisrCS51bGViMTI4CTMJCQkvKiBBYmJy ZXYgY29kZSAqLworKwkudWxlYjEyOAkweDIxCQkJLyogRFdfVEFHX3N1YnJhbmdlX3R5cGUgKi8K KysJLmJ5dGUJCTB4MAkJCS8qIG5vIGNoaWxkcmVuICovCisrCS51bGViMTI4CTB4NDkJCQkvKiBE V19BVF90eXBlICovCisrCS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLnVs ZWIxMjgJMHgyMgkJCS8qIERXX0FUX2xvd2VyX2JvdW5kICovCisrCS51bGViMTI4CTB4YgkJCS8q IERXX0ZPUk1fZGF0YTEgKi8KKysJLnVsZWIxMjgJMHgyZgkJCS8qIERXX0FUX3VwcGVyX2JvdW5k ICovCisrCS51bGViMTI4CTB4MTMJCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLmJ5dGUJCTB4MAkJ CS8qIFRlcm1pbmF0b3IgKi8KKysJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KKysKKysJ LnVsZWIxMjgJNAkJCS8qIEFiYnJldiBjb2RlICovCisrCS51bGViMTI4CTB4MjQJCQkvKiBEV19U QUdfYmFzZV90eXBlICovCisrCS5ieXRlCQkweDAJCQkvKiBub19jaGlsZHJlbiAqLworKwkudWxl YjEyOAkweDMJCQkvKiBEV19BVF9uYW1lICovCisrCS51bGViMTI4CTB4ZQkJCS8qIERXX0ZPUk1f c3RycCAqLworKwkudWxlYjEyOAkweGIJCQkvKiBEV19BVF9ieXRlX3NpemUgKi8KKysJLnVsZWIx MjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLworKwkudWxlYjEyOAkweDNlCQkJLyogRFdfQVRf ZW5jb2RpbmcgKi8KKysJLnVsZWIxMjgJMHhiCQkJLyogRFdfRk9STV9kYXRhMSAqLworKwkuYnl0 ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAq LworKworKwkudWxlYjEyOAk1CQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjgJMHgzNAkJ CS8qIERXX1RBR192YXJpYWJsZSAqLworKwkuYnl0ZQkJMHgwCQkJLyogbm9fY2hpbGRyZW4gKi8K KysJLnVsZWIxMjgJMHgzNAkJCS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJLnVsZWIxMjgJMHgw YwkJCS8qIERXX0ZPUk1fZmxhZyAqLworKwkudWxlYjEyOAkweDQ5CQkJLyogRFdfQVRfdHlwZSAq LworKwkudWxlYjEyOAkweDEzCQkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4CTB4MDIJ CQkvKiBEV19BVF9sb2NhdGlvbiAqLworKwkudWxlYjEyOAkweDA2CQkJLyogRFdfRk9STV9kYXRh NCAqLworKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLworKwkuYnl0ZQkJMHgwCQkJLyog VGVybWluYXRvciAqLworKworKwkudWxlYjEyOAk2CQkJLyogQWJicmV2IGNvZGUgKi8KKysJLnVs ZWIxMjgJMHgzNAkJCS8qIERXX1RBR192YXJpYWJsZSAqLworKwkuYnl0ZQkJMHgwCQkJLyogbm9f Y2hpbGRyZW4gKi8KKysJLnVsZWIxMjgJMHgzCQkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEy OAkweDgJCQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOAkweDQ5CQkJLyogRFdfQVRf dHlwZSAqLworKwkudWxlYjEyOAkweDEzCQkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4 CTB4MgkJCS8qIERXX0FUX2xvY2F0aW9uICovCisrCS51bGViMTI4CTB4YQkJCS8qIERXX0ZPUk1f YmxvY2sxICovCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisrCS5ieXRlCQkweDAJ CQkvKiBUZXJtaW5hdG9yICovCisrCisrCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCisr CisrLyogU3RyaW5nIHRhYmxlICovCisrCS5zZWN0aW9uIC5kZWJ1Z19zdHIKKysuTHByb2R1Y2Vy OgorKwkuc3RyaW5nCQkiR05VIEMgMy4zLjMiCisrLkxjaGFyX3N0cjoKKysJLnN0cmluZwkJImNo YXIiCisrLkx1aW50X3N0cjoKKysJLnN0cmluZwkJInVuc2lnbmVkIGludCIKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAorbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAuLjI4ZGIwMDUKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAKK0BAIC0wLDAgKzEsNDgg QEAKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMK KysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgcHJpbnRpbmcgdmFyaWFi bGUgd2l0aCBkeW5hbWljIGJvdW5kcyB3aGljaCByZWZlcmVuY2UgYSBkaWZmZXJlbnQKKysjIChh cnRpZmljaWFsIGluIHRoZSBHQ0MgY2FzZSkgdmFyaWFibGUgY29udGFpbmluZyBsb2NsaXN0IGFz IGl0cyBsb2NhdGlvbi4KKysjIFRoaXMgdGVzdGNhc2UgdXNlcyB2YWx1ZSAobm90IGFkZHJlc3Mp IG9mIHRoZSByZWZlcmVuY2VkIHZhcmlhYmxlOgorKyMgaHR0cDovL2djYy5nbnUub3JnL2J1Z3pp bGxhL3Nob3dfYnVnLmNnaT9pZD00Mzc2MgorKworKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1 biBvbiB0YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KKysjIEZvciBu b3cgcGljayBhIHNhbXBsaW5nIG9mIGxpa2VseSB0YXJnZXRzLgorK2lmIHshW2lzdGFyZ2V0ICot Ki1saW51eCpdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLWdudSpdCisrICAgICYmICFbaXN0YXJn ZXQgKi0qLWVsZipdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLW9wZW5ic2QqXQorKyAgICAmJiAh W2lzdGFyZ2V0IGFybS0qLWVhYmkqXQorKyAgICAmJiAhW2lzdGFyZ2V0IHBvd2VycGMtKi1lYWJp Kl19IHsKKysgICAgcmV0dXJuIDAKKyt9CisrCisrc2V0IHRlc3RmaWxlIGR3Mi1ib3VuZC1sb2Ns aXN0CisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0Zmls ZX0gW2xpc3QgJHt0ZXN0ZmlsZX0uUyBtYWluLmNdIHt9XSB9IHsKKysgICAgcmV0dXJuIC0xCisr fQorKworKyMgVmVyaWZ5IGl0IGJlaGF2ZXMgYXQgbGVhc3QgYXMgYW4gdW5ib3VuZCBhcnJheSB3 aXRob3V0IGluZmVyaW9yLgorKworK2dkYl90ZXN0ICJwIGFfc3RyaW5nIiB7ID0gMHhbMC05YS1m XSsgInNlZW5ub3RzZWVuIn0KKytnZGJfdGVzdCAicHR5cGUgYV9zdHJpbmciIHt0eXBlID0gY2hh ciBcW1xdfQorKworKyMgTm90IHJ1bnRvX21haW4gYXMgZHcyLWJvdW5kLWxvY2xpc3QuUyBoYW5k bGVzIG9ubHkgdGhlIGZpcnN0IGJ5dGUgb2YgbWFpbi4KKytpZiAhW3J1bnRvICIqbWFpbiJdIHsK KysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl90ZXN0ICJwIGFfc3RyaW5nIiB7ID0gInNlZW4i fQorK2dkYl90ZXN0ICJwdHlwZSBhX3N0cmluZyIge3R5cGUgPSBjaGFyIFxbNFxdfQogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItZW1wdHktbmFtZXNwYWNlLlMgYi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWVtcHR5LW5hbWVzcGFjZS5TCiBuZXcgZmlsZSBt b2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uN2IwM2ZmMQpAQCAtMjM4NzUsNiArMjY0NjcsNDMg QEAgaW5kZXggOWU3ODdmMC4uNWNhMTVkNSAxMDA2NDQKICAJICAgIC1yZSAiLip0aW1lX2F0X3N0 YXJ0dXAgPSBnZXRfcnVuX3RpbWUuKiRnZGJfcHJvbXB0ICQiIHsKICAJCXNldCBkZXNjcmlwdGlv biAibmV4dCBvdmVyIGdldF9ydW5fdGltZSBhbmQgZXZlcnl0aGluZyBpdCBjYWxscyIKICAJCXNl dCBjb21tYW5kICJuZXh0IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvam1h aW4uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbWFpbi5leHAKK2luZGV4IGFiOTUyNDcu Ljk4MTQ5MjEgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2ptYWluLmV4cAor KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbWFpbi5leHAKK0BAIC02NSw3ICs2NSw3IEBA IGdkYl90ZXN0ICJicmVhayBqbWFpbi5tYWluIiAiJHticG1haW59IgorIAorICMgQ2hlY2sgdGhh dCBhIGZ1bGx5IHF1YWxpZmllZCAibWFpbiIgd29ya3MuCisgZ2RiX2xvYWQgIiR7YmluZmlsZX0i Cistc2V0IGNtZCAiYnJlYWsgXCcke3Rlc3RmaWxlfS5tYWluKGphdmEubGFuZy5TdHJpbmdcW1xd KVwnIgorK3NldCBjbWQgImJyZWFrICR7dGVzdGZpbGV9Lm1haW4oamF2YS5sYW5nLlN0cmluZ1xb XF0pIgorIHNldCBtc2cgJGNtZAorIGdkYl90ZXN0X211bHRpcGxlICRjbWQgJG1zZyB7CisgICAg IC1yZSAiJHticG1haW59XHJcbiRnZGJfcHJvbXB0ICQiIHsKK0BAIC03OSw3ICs3OSw3IEBAIGdk Yl90ZXN0X211bHRpcGxlICRjbWQgJG1zZyB7CisgCWdkYl90ZXN0ICJuIiAiIiAiIgorIAorIAkj IENoZWNrIGFnYWluIHdpdGggYSBtZXRob2Qgc2lnbmF0dXJlIGF0IHRoZSBlbmQuCistCXNldCBj bWQgImJyZWFrIFwnJHt0ZXN0ZmlsZX0ubWFpbihqYXZhLmxhbmcuU3RyaW5nXFtcXSl2b2lkXCci CisrCXNldCBjbWQgImJyZWFrICR7dGVzdGZpbGV9Lm1haW4oamF2YS5sYW5nLlN0cmluZ1xbXF0p dm9pZCIKKyAJc2V0IG1zZyAkY21kCisgCWdkYl90ZXN0X211bHRpcGxlICRjbWQgJG1zZyB7Cisg CSAgICAtcmUgIiR7YnBtYWlufVxyXG4kZ2RiX3Byb21wdCAkIiB7CitkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuamF2YS9qbWlzYy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pt aXNjLmV4cAoraW5kZXggNmY3MTg4ZC4uZTNhYjY1NyAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmphdmEvam1pc2MuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2ptaXNj LmV4cAorQEAgLTcxLDggKzcxLDggQEAgaWYgIVtzZXRfbGFuZ19qYXZhXSB0aGVuIHsKKyAgICAg IyBzaWduYXR1cmUuCisgICAgIHJ1bnRvX21haW4KKyAgICAgc2V0IGZ1bmN0aW9uICIke3Rlc3Rm aWxlfS5tYWluKGphdmEubGFuZy5TdHJpbmdcW1xdKSIKKy0gICAgZ2RiX2JyZWFrcG9pbnQgIlwn JGZ1bmN0aW9uXCciIHsgYWxsb3ctcGVuZGluZyB9CistICAgIGdkYl9icmVha3BvaW50ICJcJyR7 ZnVuY3Rpb259dm9pZFwnIiB7IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtwb2ludCAi JGZ1bmN0aW9uIiB7IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtwb2ludCAiJHtmdW5j dGlvbn12b2lkIiB7IGFsbG93LXBlbmRpbmcgfQorICAgICBnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAkZnVuY3Rpb24KKyAKKyAgICAgc2VuZF9nZGIgInB0eXBlIGptaXNjXG4iICAgCiBkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbnBlLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmphdmEvam5wZS5leHAKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi5l NzEzOTFlCkBAIC0yNDAwMiw2ICsyNjYzMSwyMSBAQCBpbmRleCAwMDAwMDAwLi4zNTI0ODMwCiAr ICAgICAgfQogKyAgfQogK30KK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pw cmludC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pwcmludC5leHAKK2luZGV4IDI5ZGJm NGIuLjQ0N2NhNzMgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pwcmludC5l eHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvanByaW50LmV4cAorQEAgLTcwLDggKzcw LDggQEAgaWYgIVtzZXRfbGFuZ19qYXZhXSB0aGVuIHsKKyAgICAgIyBzaWduYXR1cmUuCisgICAg IHJ1bnRvX21haW4KKyAgICAgc2V0IGZ1bmN0aW9uICIke3Rlc3RmaWxlfS5tYWluKGphdmEubGFu Zy5TdHJpbmdcW1xdKSIKKy0gICAgZ2RiX2JyZWFrcG9pbnQgIlwnJGZ1bmN0aW9uXCciIHsgYWxs b3ctcGVuZGluZyB9CistICAgIGdkYl9icmVha3BvaW50ICJcJyR7ZnVuY3Rpb259dm9pZFwnIiB7 IGFsbG93LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtwb2ludCAiJGZ1bmN0aW9uIiB7IGFsbG93 LXBlbmRpbmcgfQorKyAgICBnZGJfYnJlYWtwb2ludCAiJHtmdW5jdGlvbn12b2lkIiB7IGFsbG93 LXBlbmRpbmcgfQorICAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAkZnVuY3Rpb24KKyAK KyAgICAgZ2RiX3Rlc3QgInAganZjbGFzcy5hZGRwcmludCg0LDUsNikiICJzdW0gaXMgMTVcclxu LioiICJ1bmFtYmlndW91cyBzdGF0aWMgY2FsbCIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvYXJyYXktZnJvbS1yZWdpc3Rlci1mdW5jLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRl eCAwMDAwMDAwLi43MjlmNDU3CkBAIC0yNDc5MiwxMCArMjc0MzYsMTAgQEAgaW5kZXggNzEzYWQ1 Zi4uNWQxN2IyNiAxMDA2NDQKICAgICAgZ2xvYmFsIHRlc3RmaWxlIHNyY2RpciBzdWJkaXIgc3Jj ZmlsZSBiaW5maWxlCiAgICAgIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBcCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1 ZS5leHAKLWluZGV4IGFhNGU1MTkuLmY4NzI3N2QgMTAwNjQ0CitpbmRleCBkOTgwYTNkLi42YTc1 NTk1IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAog KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAotQEAgLTMwNSw2ICsz MDUsMTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKK0BAIC0zMDcsNiArMzA3 LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CiAgICAgICJwcmludCB2YWx1 ZSdzIHR5cGUiCiAgfQogIApAQCAtMjQ4MTEsNyArMjc0NTUsNyBAQCBpbmRleCBhYTRlNTE5Li5m ODcyNzdkIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBv cGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdh cyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vic2NyaXB0IG9wZXJh dGlvbiB0byBwcm9jZWVkLgotQEAgLTM5MCwxNiArMzk5LDIzIEBAIHByb2MgdGVzdF9wYXJzZV9h bmRfZXZhbCB7fSB7CitAQCAtMzkyLDE2ICs0MDEsMjMgQEAgcHJvYyB0ZXN0X3BhcnNlX2FuZF9l dmFsIHt9IHsKICBnZGJfZXhpdAogIGdkYl9zdGFydAogIGdkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcgpAQCAtMjQ4NDIsNyArMjc0ODYsNyBAQCBpbmRleCBhYTRlNTE5Li5mODcy NzdkIDEwMDY0NAogIHRlc3RfdmFsdWVfY3JlYXRpb24KICB0ZXN0X3ZhbHVlX251bWVyaWNfb3Bz CiAgdGVzdF92YWx1ZV9ib29sZWFuCi1AQCAtNDE3LDYgKzQzMyw3IEBAIGlmICFbcnVudG9fbWFp bl0gdGhlbiB7CitAQCAtNDE5LDYgKzQzNSw3IEBAIGlmICFbcnVudG9fbWFpbl0gdGhlbiB7CiAg dGVzdF92YWx1ZV9pbl9pbmZlcmlvcgogIHRlc3RfbGF6eV9zdHJpbmdzCiAgdGVzdF92YWx1ZV9h ZnRlcl9kZWF0aApAQCAtMjU0MTUsNyArMjgwNTksNyBAQCBpbmRleCA2ZmJlZTg0Li4xMTg5Y2Zk IDEwMDY0NAogIAogICAgICAjIENoZWNrIHRoZSBhY3R1YWwga2V5LiAgSXQgd291bGQgYmUgbmlj ZSB0byByZXF1aXJlIHRoYXQgaXQgbWF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotaW5kZXggOWIwNmEyZi4uNDE5 ZDVhOSAxMDA2NDQKK2luZGV4IDYyNzk0MWQuLjFmOWIyMjggMTAwNjQ0CiAtLS0gYS9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiBAQCAt MjcsNiArMjcsNyBAQCBpZiB7JHRvb2wgPT0gIiJ9IHsKQEAgLTI1NjYyLDM2ICsyODMwNiwxOSBA QCBpbmRleCA2MTU1Njk5Li5iYjk0ZjRiIDEwMDY0NAogIAogIGV4dGVybiBsb25nIHVpX2ZpbGVf cmVhZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwgbG9uZyBsZW5ndGhfYnVmKTsK ICAKLWRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dkYi91dGlscy5jCi1pbmRleCA4MmE2NmEx Li5jMzA1NTA2IDEwMDY0NAotLS0tIGEvZ2RiL3V0aWxzLmMKLSsrKyBiL2dkYi91dGlscy5jCi1A QCAtMjY1Niw3ICsyNjU2LDEwIEBAIGZwcmludGZfc3ltYm9sX2ZpbHRlcmVkIChzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBjaGFyICpuYW1lLAotICAgIEFzIGFuIGV4dHJhIGhhY2ssIHN0cmluZzE9 PSJGT08oQVJHUykiIG1hdGNoZXMgc3RyaW5nMj09IkZPTyIuCi0gICAgVGhpcyAiZmVhdHVyZSIg aXMgdXNlZnVsIHdoZW4gc2VhcmNoaW5nIGZvciBtYXRjaGluZyBDKysgZnVuY3Rpb24gbmFtZXMK LSAgICAoc3VjaCBhcyBpZiB0aGUgdXNlciB0eXBlcyAnYnJlYWsgRk9PJywgd2hlcmUgRk9PIGlz IGEgbWFuZ2xlZCBDKysKLS0gICBmdW5jdGlvbikuICovCi0rICAgZnVuY3Rpb24pLgotKwotKyAg IEFzIGFuIGV4dHJhLXNwZWNpYWwgaGFjaywgd2UgZG8gdGhlIHNhbWUgd2l0aCAnICcsIHNvIHRo YXQKLSsgICAiRk9PKEFSR1MpIGNvbnN0IiBjYW4gbWF0Y2ggIkZPTyIsIHRvby4gICovCi0gCi0g aW50Ci0gc3RyY21wX2l3IChjb25zdCBjaGFyICpzdHJpbmcxLCBjb25zdCBjaGFyICpzdHJpbmcy KQotQEAgLTI2ODEsNyArMjY4NCw3IEBAIHN0cmNtcF9pdyAoY29uc3QgY2hhciAqc3RyaW5nMSwg Y29uc3QgY2hhciAqc3RyaW5nMikKLSAJICBzdHJpbmcyKys7Ci0gCX0KLSAgICAgfQotLSAgcmV0 dXJuICgqc3RyaW5nMSAhPSAnXDAnICYmICpzdHJpbmcxICE9ICcoJykgfHwgKCpzdHJpbmcyICE9 ICdcMCcpOwotKyAgcmV0dXJuICgqc3RyaW5nMSAhPSAnICcgJiYgKnN0cmluZzEgIT0gJ1wwJyAm JiAqc3RyaW5nMSAhPSAnKCcpIHx8ICgqc3RyaW5nMiAhPSAnXDAnICYmICpzdHJpbmcyICE9ICco Jyk7Ci0gfQotIAotIC8qIFRoaXMgaXMgbGlrZSBzdHJjbXAgZXhjZXB0IHRoYXQgaXQgaWdub3Jl cyB3aGl0ZXNwYWNlIGFuZCB0cmVhdHMKIGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dk Yi92YWxhcml0aC5jCi1pbmRleCBlZDc2YjA5Li44YmYzNjM0IDEwMDY0NAoraW5kZXggOWY5MWY0 ZS4uNzUzOTI3ZiAxMDA2NDQKIC0tLSBhL2dkYi92YWxhcml0aC5jCiArKysgYi9nZGIvdmFsYXJp dGguYwotQEAgLTEzOSw3ICsxMzksNiBAQCBhbiBpbnRlZ2VyIG5vciBhIHBvaW50ZXIgb2YgdGhl IHNhbWUgdHlwZS4iKSk7CitAQCAtMzEsNiArMzEsNyBAQAorICNpbmNsdWRlICJkZnAuaCIKKyAj aW5jbHVkZSA8bWF0aC5oPgorICNpbmNsdWRlICJpbmZjYWxsLmgiCisrI2luY2x1ZGUgImV4Y2Vw dGlvbnMuaCIKKyAKKyAvKiBEZWZpbmUgd2hldGhlciBvciBub3QgdGhlIEMgb3BlcmF0b3IgJy8n IHRydW5jYXRlcyB0b3dhcmRzIHplcm8gZm9yCisgICAgZGlmZmVyZW50bHkgc2lnbmVkIG9wZXJh bmRzICh0cnVuY2F0aW9uIGRpcmVjdGlvbiBpcyB1bmRlZmluZWQgaW4gQykuICovCitAQCAtMTQ2 LDcgKzE0Nyw2IEBAIGFuIGludGVnZXIgbm9yIGEgcG9pbnRlciBvZiB0aGUgc2FtZSB0eXBlLiIp KTsKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJh eSwgTE9OR0VTVCBpbmRleCkKICB7CkBAIC0yNTY5OSw3ICsyODMyNiw3IEBAIGluZGV4IGVkNzZi MDkuLjhiZjM2MzQgMTAwNjQ0CiAgICBpbnQgY19zdHlsZSA9IGN1cnJlbnRfbGFuZ3VhZ2UtPmNf c3R5bGVfYXJyYXlzOwogICAgc3RydWN0IHR5cGUgKnRhcnJheTsKICAKLUBAIC0xNTQsMTIgKzE1 MywyNiBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5k ZXgpCitAQCAtMTYxLDEyICsxNjEsMjYgQEAgdmFsdWVfc3Vic2NyaXB0IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBMT05HRVNUIGluZGV4KQogICAgICAgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdl X3R5cGUsICZsb3dlcmJvdW5kLCAmdXBwZXJib3VuZCk7CiAgCiAgICAgICAgaWYgKFZBTFVFX0xW QUwgKGFycmF5KSAhPSBsdmFsX21lbW9yeSkKQEAgLTI1NzI4LDcgKzI4MzU1LDcgQEAgaW5kZXgg ZWQ3NmIwOS4uOGJmMzYzNCAxMDA2NDQKICAJICAvKiBFbWl0IHdhcm5pbmcgdW5sZXNzIHdlIGhh dmUgYW4gYXJyYXkgb2YgdW5rbm93biBzaXplLgogIAkgICAgIEFuIGFycmF5IG9mIHVua25vd24g c2l6ZSBoYXMgbG93ZXJib3VuZCAwIGFuZCB1cHBlcmJvdW5kIC0xLiAgKi8KICAJICBpZiAodXBw ZXJib3VuZCA+IC0xKQotQEAgLTE3OCwzMyArMTkxLDM3IEBAIHZhbHVlX3N1YnNjcmlwdCAoc3Ry dWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCkKK0BAIC0xODUsMzMgKzE5OSwzNyBAQCB2 YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5kZXgpCiAgICAg IGVycm9yIChfKCJub3QgYW4gYXJyYXkgb3Igc3RyaW5nIikpOwogIH0KICAKQEAgLTI1Nzc3LDgg KzI4NDA0LDk3IEBAIGluZGV4IGVkNzZiMDkuLjhiZjM2MzQgMTAwNjQ0CiAgICByZXR1cm4gdjsK ICB9CiAgCitAQCAtMzE4LDYgKzMzNiw2OCBAQCB1bm9wX3VzZXJfZGVmaW5lZF9wIChlbnVtIGV4 cF9vcGNvZGUgb3AsIHN0cnVjdCB2YWx1ZSAqYXJnMSkKKyAgICAgfQorIH0KKyAKKysvKiBUcnkg dG8gZmluZCBPUEVSQVRPUiBhcyB0aHJvdWdoIGFyZ3VtZW50IGRlcGVuZGVudCBsb29rdXAuICAq LworKworK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorK3ZhbHVlX3VzZXJfZGVmaW5lZF9hZGxfb3Ag KHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIGludCBuYXJncywgY2hhciAqb3BlcmF0b3IpCisreworKwor KyAgc3RydWN0IHN5bWJvbCAqc3ltcDsKKysgIHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzOworKyAg aW50IGk7CisrCisrICAvKiBUaGlzIGZ1bmN0aW9uLCBpZiBmb3VuZCwgd2lsbCBub3QgYmUgYSBt ZW1iZXIgZnVuY3Rpb24KKysgICAgIGFuZCBkb2VzIG5vdCBleHBlY3QgYSBwb2ludGVyIGFzIGl0 cyBmaXJzdCBhcmd1bWVudAorKyAgICAgcmF0aGVyIHRoZSBleHBsaWNpdCBzdHJ1Y3R1cmUuICAq LworKyAgYXJnc1swXSA9IHZhbHVlX2luZCAoYXJnc1swXSk7CisrCisrICBhcmdfdHlwZXMgPSAo c3RydWN0IHR5cGUgKiopYWxsb2NhIChuYXJncyAqIChzaXplb2YgKHN0cnVjdCB0eXBlICopKSk7 CisrICAvKiBQcmVwYXJlIGxpc3Qgb2YgYXJndW1lbnQgdHlwZXMgZm9yIG92ZXJsb2FkIHJlc29s dXRpb24gKi8KKysgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQorKyAgICBhcmdfdHlwZXMg W2ldID0gdmFsdWVfdHlwZSAoYXJncyBbaV0pOworKworKyAgZmluZF9vdmVybG9hZF9tYXRjaCAo YXJnX3R5cGVzLCBuYXJncywgb3BlcmF0b3IsIDAgLyogbm90IG1ldGhvZCAqLywKKysgICAgICAg ICAgICAgICAgICAgICAgIDAgLyogc3RyaWN0IG1hdGNoICovLCBOVUxMLAorKyAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCAvKiBwYXNzIE5VTEwgc3ltYm9sIHNpbmNlIHN5bWJvbCBpcyB1bmtu b3duICovLAorKyAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJnN5bXAsIE5VTEwpOworKwor KyAgaWYgKHN5bXApCisrICAgIHJldHVybiB2YWx1ZV9vZl92YXJpYWJsZSAoc3ltcCwgMCk7Cisr CisrICByZXR1cm4gTlVMTDsKKyt9CisrCisrLyogTG9va3VwIHVzZXIgZGVmaW5lZCBvcGVyYXRv ciBOQU1FLiBGaXJzdCB0cnkgdG8gZmluZCBpdCBhcyBhIG1lbWJlcgorKyAgIG9mIHRoZSBzdHJ1 Y3QgQVJHUFswXS4gSWYgbm90IGZvdW5kIHRyeSB0byBmaW5kIHRoZSBvcGVyYXRvciB0aHJvdWdo CisrICAgYXJndW1lbnQgZGVwZW5kZW50IGxvb2t1cC4gICovCisrCisrc3RhdGljIHN0cnVjdCB2 YWx1ZSAqCisrdmFsdWVfdXNlcl9kZWZpbmVkX29wIChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBzdHJ1 Y3QgdmFsdWUgKiphcmdzLCBjaGFyICpuYW1lLAorKyAgICAgICAgICAgICAgICAgICAgICAgaW50 ICpzdGF0aWNfbWVtZnVuY3AsIGludCBuYXJncykKKyt7CisrICBzdHJ1Y3QgdmFsdWUgKnJlc3Vs dCA9IE5VTEw7CisrICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7CisrCisr ICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfRVJST1IpCisrICAgIHsKKysgICAgICBy ZXN1bHQgPSB2YWx1ZV9zdHJ1Y3RfZWx0IChhcmdwLCBhcmdzLCBuYW1lLCBzdGF0aWNfbWVtZnVu Y3AsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cnVjdHVyZSIpOworKyAg ICB9CisrCisrICBpZiAoZXhjZXB0LnJlYXNvbiA8IDApCisrICAgIHsKKysKKysgICAgICBpZiAo Y3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMpCisrICAgICAg ICAvKiBUcnkgQURMLiAgKi8KKysgICAgICAgIHJlc3VsdCA9IHZhbHVlX3VzZXJfZGVmaW5lZF9h ZGxfb3AgKGFyZ3MsIG5hcmdzLCBuYW1lKTsKKysKKysgICAgICBpZiAoIXJlc3VsdCkKKysgICAg ICAgIGVycm9yICgiJXMiLCBleGNlcHQubWVzc2FnZSk7CisrICAgIH0KKysKKysgIHJldHVybiBy ZXN1bHQ7CisrfQorKworIC8qIFdlIGtub3cgZWl0aGVyIGFyZzEgb3IgYXJnMiBpcyBhIHN0cnVj dHVyZSwgc28gdHJ5IHRvIGZpbmQgdGhlIHJpZ2h0CisgICAgdXNlciBkZWZpbmVkIGZ1bmN0aW9u LiAgQ3JlYXRlIGFuIGFyZ3VtZW50IHZlY3RvciB0aGF0IGNhbGxzIAorICAgIGFyZzEub3BlcmF0 b3IgQCAoYXJnMSxhcmcyKSBhbmQgcmV0dXJuIHRoYXQgdmFsdWUgKHdoZXJlICdAJyBpcyBhbnkK K0BAIC00NTgsNyArNTM4LDggQEAgdmFsdWVfeF9iaW5vcCAoc3RydWN0IHZhbHVlICphcmcxLCBz dHJ1Y3QgdmFsdWUgKmFyZzIsIGVudW0gZXhwX29wY29kZSBvcCwKKyAgICAgICBlcnJvciAoXygi SW52YWxpZCBiaW5hcnkgb3BlcmF0aW9uIHNwZWNpZmllZC4iKSk7CisgICAgIH0KKyAKKy0gIGFy Z3ZlY1swXSA9IHZhbHVlX3N0cnVjdF9lbHQgKCZhcmcxLCBhcmd2ZWMgKyAxLCB0c3RyLCAmc3Rh dGljX21lbWZ1bmNwLCAic3RydWN0dXJlIik7CisrICBhcmd2ZWNbMF0gPSB2YWx1ZV91c2VyX2Rl ZmluZWRfb3AgKCZhcmcxLCBhcmd2ZWMgKyAxLCB0c3RyLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmc3RhdGljX21lbWZ1bmNwLCAyKTsKKyAKKyAgIGlmIChhcmd2ZWNb MF0pCisgICAgIHsKK0BAIC01NTUsNyArNjM2LDggQEAgdmFsdWVfeF91bm9wIChzdHJ1Y3QgdmFs dWUgKmFyZzEsIGVudW0gZXhwX29wY29kZSBvcCwgZW51bSBub3NpZGUgbm9zaWRlKQorICAgICAg IGVycm9yIChfKCJJbnZhbGlkIHVuYXJ5IG9wZXJhdGlvbiBzcGVjaWZpZWQuIikpOworICAgICB9 CisgCistICBhcmd2ZWNbMF0gPSB2YWx1ZV9zdHJ1Y3RfZWx0ICgmYXJnMSwgYXJndmVjICsgMSwg dHN0ciwgJnN0YXRpY19tZW1mdW5jcCwgInN0cnVjdHVyZSIpOworKyAgYXJndmVjWzBdID0gdmFs dWVfdXNlcl9kZWZpbmVkX29wICgmYXJnMSwgYXJndmVjICsgMSwgdHN0ciwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXRpY19tZW1mdW5jcCwgMSk7CisgCisgICBp ZiAoYXJndmVjWzBdKQorICAgICB7CiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3Zh bG9wcy5jCi1pbmRleCBjZWUxMGZiLi5iMDhjYjIxIDEwMDY0NAoraW5kZXggYjk0YzQxMS4uOTg3 NWY5NiAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwogKysrIGIvZ2RiL3ZhbG9wcy5jCiBAQCAt MzgsNiArMzgsNyBAQApAQCAtMjU5MzQsNyArMjg2NTAsMTYgQEAgaW5kZXggY2VlMTBmYi4uYjA4 Y2IyMSAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSB3aGljaCBpcyBhIGZ1bmN0aW9u LCByZXR1cm4gYSB2YWx1ZSB3aGljaCBpcyBhIHBvaW50ZXIKLUBAIC0yMzUyLDEyICsyNDMxLDI1 IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFy Z3MsCitAQCAtMjMzNiw3ICsyNDE1LDcgQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5 cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKyAgIGludCBib2Zmc2V0OworICAgaW50IGl4Owor ICAgaW50IHN0YXRpY19vZmZzZXQ7CistICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBzID0g TlVMTDsKKysgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51 bGxfY2xlYW51cCwgTlVMTCk7CisgCisgICBjb25zdCBjaGFyICpvYmpfdHlwZV9uYW1lID0gTlVM TDsKKyAgIGNoYXIgKmZ1bmNfbmFtZSA9IE5VTEw7CitAQCAtMjM0NiwxMiArMjQyNSwyNSBAQCBm aW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdHlwZSAqKmFyZ190eXBlcywgaW50IG5hcmdzLAog ICAgaWYgKG1ldGhvZCkKICAgICAgewogICAgICAgIGdkYl9hc3NlcnQgKG9iaik7CkBAIC0yNTk2 NSw0NSArMjg2OTAsMTA4IEBAIGluZGV4IGNlZTEwZmIuLmIwOGNiMjEgMTAwNjQ0CiAgCiAgICAg ICAgZm5zX3B0ciA9IHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKCZ0ZW1wLCBuYW1lLCAK ICAJCQkJCSAgICAgIDAsICZudW1fZm5zLCAKLUBAIC0yMzc3LDE2ICsyNDY5LDI5IEBAIGZpbmRf b3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFyZ3MsCitAQCAt MjM3MSwyMyArMjQ2Myw0NSBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdHlwZSAqKmFy Z190eXBlcywgaW50IG5hcmdzLAogICAgICB9CiAgICBlbHNlCiAgICAgIHsKIC0gICAgICBjb25z dCBjaGFyICpxdWFsaWZpZWRfbmFtZSA9IFNZTUJPTF9DUExVU19ERU1BTkdMRURfTkFNRSAoZnN5 bSk7Ci0rICAgICAgY29uc3QgY2hhciAqcXVhbGlmaWVkX25hbWUgPSBTWU1CT0xfTkFUVVJBTF9O QU1FIChmc3ltKTsKKysgICAgICBjb25zdCBjaGFyICpxdWFsaWZpZWRfbmFtZSA9IE5VTEw7CiAg CiAtICAgICAgLyogSWYgd2UgaGF2ZSBhIEMrKyBuYW1lLCB0cnkgdG8gZXh0cmFjdCBqdXN0IHRo ZSBmdW5jdGlvbgogLQkgcGFydC4gICovCiAtICAgICAgaWYgKHF1YWxpZmllZF9uYW1lKQogLQlm dW5jX25hbWUgPSBjcF9mdW5jX25hbWUgKHF1YWxpZmllZF9uYW1lKTsKLSsgICAgICAvKiBJZiB3 ZSBoYXZlIGEgZnVuY3Rpb24gd2l0aCBhIEMrKyBuYW1lLCB0cnkgdG8gZXh0cmFjdCBqdXN0Ci0r CSB0aGUgZnVuY3Rpb24gcGFydC4gIERvIG5vdCB0cnkgdGhpcyBmb3Igbm9uLWZ1bmN0aW9ucyAo ZS5nLgotKwkgZnVuY3Rpb24gcG9pbnRlcnMpLiAgKi8KLSsgICAgICBpZiAocXVhbGlmaWVkX25h bWUKLSsJICAmJiBUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKFNZTUJPTF9UWVBFIChmc3ltKSkp ID09IFRZUEVfQ09ERV9GVU5DKQotKwl7Ci0rCSAgZnVuY19uYW1lID0gY3BfZnVuY19uYW1lIChx dWFsaWZpZWRfbmFtZSk7Ci0rCi0rCSAgLyogSWYgY3BfZnVuY19uYW1lIGRpZCBub3QgcmVtb3Zl IGFueXRoaW5nLCB0aGUgbmFtZSBvZiB0aGUKLSsJICAgICBzeW1ib2wgZGlkIG5vdCBpbmNsdWRl IHNjb3BlIG9yIGFyZ3VtZW50IHR5cGVzIC0gaXQgd2FzCi0rCSAgICAgcHJvYmFibHkgYSBDLXN0 eWxlIGZ1bmN0aW9uLiAgKi8KLSsJICBpZiAoZnVuY19uYW1lICYmIHN0cmNtcCAoZnVuY19uYW1l LCBxdWFsaWZpZWRfbmFtZSkgPT0gMCkKLSsJICAgIHsKLSsJICAgICAgeGZyZWUgKGZ1bmNfbmFt ZSk7Ci0rCSAgICAgIGZ1bmNfbmFtZSA9IE5VTEw7Ci0rCSAgICB9Ci0rCX0KLSAKKy0KIC0gICAg ICAvKiBJZiB0aGVyZSB3YXMgbm8gQysrIG5hbWUsIHRoaXMgbXVzdCBiZSBhIEMtc3R5bGUgZnVu Y3Rpb24uCiAtCSBKdXN0IHJldHVybiB0aGUgc2FtZSBzeW1ib2wuICBEbyB0aGUgc2FtZSBpZiBj cF9mdW5jX25hbWUKIC0JIGZhaWxzIGZvciBzb21lIHJlYXNvbi4gICovCisrICAgICAgaWYgKGZz eW0pCisrICAgICAgICB7CisrICAgICAgICAgIHF1YWxpZmllZF9uYW1lID0gU1lNQk9MX05BVFVS QUxfTkFNRSAoZnN5bSk7CisrCisrICAgICAgICAgIC8qIElmIHdlIGhhdmUgYSBmdW5jdGlvbiB3 aXRoIGEgQysrIG5hbWUsIHRyeSB0byBleHRyYWN0IGp1c3QKKysJICAgICB0aGUgZnVuY3Rpb24g cGFydC4gIERvIG5vdCB0cnkgdGhpcyBmb3Igbm9uLWZ1bmN0aW9ucyAoZS5nLgorKwkgICAgIGZ1 bmN0aW9uIHBvaW50ZXJzKS4gICovCisrICAgICAgICAgIGlmIChxdWFsaWZpZWRfbmFtZQorKyAg ICAgICAgICAgICAgJiYgVFlQRV9DT0RFIChjaGVja190eXBlZGVmIChTWU1CT0xfVFlQRSAoZnN5 bSkpKSA9PSBUWVBFX0NPREVfRlVOQykKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBm dW5jX25hbWUgPSBjcF9mdW5jX25hbWUgKHF1YWxpZmllZF9uYW1lKTsKKysKKysgICAgICAgICAg ICAgIC8qIElmIGNwX2Z1bmNfbmFtZSBkaWQgbm90IHJlbW92ZSBhbnl0aGluZywgdGhlIG5hbWUg b2YgdGhlCisrCSAgICAgICAgIHN5bWJvbCBkaWQgbm90IGluY2x1ZGUgc2NvcGUgb3IgYXJndW1l bnQgdHlwZXMgLSBpdCB3YXMKKysJICAgICAgICAgcHJvYmFibHkgYSBDLXN0eWxlIGZ1bmN0aW9u LiAgKi8KKysgICAgICAgICAgICAgIGlmIChmdW5jX25hbWUgJiYgc3RyY21wIChmdW5jX25hbWUs IHF1YWxpZmllZF9uYW1lKSA9PSAwKQorKyAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgICAgeGZyZWUgKGZ1bmNfbmFtZSk7CisrICAgICAgICAgICAgICAgICAgZnVuY19uYW1lID0g TlVMTDsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysg ICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgIGZ1bmNfbmFtZSA9IChjaGFyICopIG5h bWU7CisrICAgICAgICAgIHF1YWxpZmllZF9uYW1lID0gbmFtZTsKKysgICAgICAgIH0KKysgICAg ICAKICsgICAgICAvKiBJZiB0aGVyZSB3YXMgbm8gQysrIG5hbWUsIHRoaXMgbXVzdCBiZSBhIEMt c3R5bGUgZnVuY3Rpb24gb3IKICsJIG5vdCBhIGZ1bmN0aW9uIGF0IGFsbC4gIEp1c3QgcmV0dXJu IHRoZSBzYW1lIHN5bWJvbC4gIERvIHRoZQogKwkgc2FtZSBpZiBjcF9mdW5jX25hbWUgZmFpbHMg Zm9yIHNvbWUgcmVhc29uLiAgKi8KICAgICAgICBpZiAoZnVuY19uYW1lID09IE5VTEwpCiAgICAg ICAgICB7CiAgCSAgKnN5bXAgPSBmc3ltOwotQEAgLTMxMjMsOSArMzIyOCw5IEBAIHZhbHVlX21h eWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdCB0eXBlICpjdXJ0eXBlLAorICAgICAgICAg ICByZXR1cm4gMDsKKyAgICAgICAgIH0KKyAKKy0gICAgICBvbGRfY2xlYW51cHMgPSBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBmdW5jX25hbWUpOworICAgICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIG9s b2FkX3N5bXMpOworICAgICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIG9sb2FkX2NoYW1wX2J2KTsK KyAKK0BAIC0yMzk4LDggKzI1MTIsMTEgQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5 cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKKyAJCQkJCQkmb2xvYWRfY2hhbXBfYnYpOworICAg ICB9CisgCistICAvKiBDaGVjayBob3cgYmFkIHRoZSBiZXN0IG1hdGNoIGlzLiAgKi8KKysgIC8q IERpZCB3ZSBmaW5kIGEgbWF0Y2ggPyAgKi8KKysgIGlmIChvbG9hZF9jaGFtcCA9PSAtMSkKKysg ICAgZXJyb3IgKCJObyBzeW1ib2wgXCIlc1wiIGluIGN1cnJlbnQgY29udGV4dC4iLCBuYW1lKTsK KyAKKysgIC8qIENoZWNrIGhvdyBiYWQgdGhlIGJlc3QgbWF0Y2ggaXMuICAqLworICAgbWF0Y2hf cXVhbGl0eSA9CisgICAgIGNsYXNzaWZ5X29sb2FkX21hdGNoIChvbG9hZF9jaGFtcF9idiwgbmFy Z3MsCisgCQkJICBvbG9hZF9tZXRob2Rfc3RhdGljIChtZXRob2QsIGZuc19wdHIsCitAQCAtMjQ1 Niw4ICsyNTczLDggQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5cGUgKiphcmdfdHlw ZXMsIGludCBuYXJncywKKyAJfQorICAgICAgICpvYmpwID0gdGVtcDsKKyAgICAgfQorLSAgaWYg KG9sZF9jbGVhbnVwcyAhPSBOVUxMKQorLSAgICBkb19jbGVhbnVwcyAob2xkX2NsZWFudXBzKTsK KysKKysgIGRvX2NsZWFudXBzIChvbGRfY2xlYW51cHMpOworIAorICAgc3dpdGNoIChtYXRjaF9x dWFsaXR5KQorICAgICB7CitAQCAtMjU2NSw2ICsyNjgyLDEyIEBAIGZpbmRfb2xvYWRfY2hhbXBf bmFtZXNwYWNlX2xvb3AgKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFyZ3MsCisgICBu ZXdfbmFtZXNwYWNlW25hbWVzcGFjZV9sZW5dID0gJ1wwJzsKKyAgIG5ld19vbG9hZF9zeW1zID0g bWFrZV9zeW1ib2xfb3ZlcmxvYWRfbGlzdCAoZnVuY19uYW1lLAorIAkJCQkJICAgICAgbmV3X25h bWVzcGFjZSk7CisrCisrICAvKiBJZiB3ZSBoYXZlIHJlYWNoZWQgdGhlIGRlZXBlc3N0IGxldmVs IHBlcmZvcm0gYXJndW1lbnQKKysgICAgIGRldGVybWluZWQgbG9va3VwLiAgKi8KKysgIGlmICgh c2VhcmNoZWRfZGVlcGVyKQorKyAgICBtYWtlX3N5bWJvbF9vdmVybG9hZF9saXN0X2FkbCAoYXJn X3R5cGVzLCBuYXJncywgZnVuY19uYW1lKTsKKysKKyAgIHdoaWxlIChuZXdfb2xvYWRfc3ltc1tu dW1fZm5zXSkKKyAgICAgKytudW1fZm5zOworIAorQEAgLTI1OTcsNyArMjcyMCw2IEBAIGZpbmRf b2xvYWRfY2hhbXBfbmFtZXNwYWNlX2xvb3AgKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQg bmFyZ3MsCisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworLSAgICAgIGdkYl9hc3NlcnQgKG5ld19v bG9hZF9jaGFtcCAhPSAtMSk7CisgICAgICAgKm9sb2FkX3N5bXMgPSBuZXdfb2xvYWRfc3ltczsK KyAgICAgICAqb2xvYWRfY2hhbXAgPSBuZXdfb2xvYWRfY2hhbXA7CisgICAgICAgKm9sb2FkX2No YW1wX2J2ID0gbmV3X29sb2FkX2NoYW1wX2J2OworQEAgLTMxMTcsOSArMzIzOSw5IEBAIHZhbHVl X21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdCB0eXBlICpjdXJ0eXBlLAogICAgc3Ry dWN0IHN5bWJvbCAqc3ltOwogICAgc3RydWN0IHZhbHVlICpyZXN1bHQ7CiAgCkBAIC0yNjAxNiw3 ICsyODgwNCw3IEBAIGluZGV4IGNlZTEwZmIuLmIwOGNiMjEgMTAwNjQ0CiAgCiAgICBpZiAoc3lt ID09IE5VTEwpCiAgICAgIHJldHVybiBOVUxMOwotQEAgLTMyNjcsNyArMzM3Miw3IEBAIHZhbHVl X29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQgY29tcGxhaW4pCitAQCAtMzI2MSw3ICsz MzgzLDcgQEAgdmFsdWVfb2ZfbG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsIGludCBjb21wbGFpbikK ICAKICAgIC8qIENhbGxpbmcgbG9va3VwX2Jsb2NrX3N5bWJvbCBpcyBuZWNlc3NhcnkgdG8gZ2V0 IHRoZSBMT0NfUkVHSVNURVIKICAgICAgIHN5bWJvbCBpbnN0ZWFkIG9mIHRoZSBMT0NfQVJHIG9u ZSAoaWYgYm90aCBleGlzdCkuICAqLwpAQCAtMjYwMjUsNyArMjg4MTMsNyBAQCBpbmRleCBjZWUx MGZiLi5iMDhjYjIxIDEwMDY0NAogICAgaWYgKHN5bSA9PSBOVUxMKQogICAgICB7CiAgICAgICAg aWYgKGNvbXBsYWluKQotQEAgLTMzMjEsOCArMzQyNiw2IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCitAQCAtMzMxNSw4ICszNDM3 LDYgQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50 IGxlbmd0aCkKICAgICAgICB8fCBsb3dib3VuZCArIGxlbmd0aCAtIDEgPiB1cHBlcmJvdW5kKQog ICAgICBlcnJvciAoXygic2xpY2Ugb3V0IG9mIHJhbmdlIikpOwogIApAQCAtMjYzMTgsNyArMjkx MDYsNyBAQCBpbmRleCBhNDYyZWU0Li45NjhjZGY0IDEwMDY0NAogKyAgb2JzZXJ2ZXJfYXR0YWNo X21hcmtfdXNlZCAodmFsdWVfdHlwZXNfbWFya191c2VkKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2Ri L3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5kZXggNDJiNDQ5Ny4uNmY5OTIzYyAxMDA2NDQKK2lu ZGV4IDFmMjA4NmUuLmRkNTAzYWQgMTAwNjQ0CiAtLS0gYS9nZGIvdmFsdWUuaAogKysrIGIvZ2Ri L3ZhbHVlLmgKIEBAIC0zNDIsMTEgKzM0MiwxNiBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmll bGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yNjMzOCw3ICsyOTEyNiw3IEBAIGlu ZGV4IDQyYjQ0OTcuLjZmOTkyM2MgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVf YXQgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcik7CiAgZXh0ZXJuIHN0cnVjdCB2 YWx1ZSAqdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKTsK ICAKLUBAIC02ODksNyArNjk0LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfYWxsb2Nh dGVfc3BhY2VfaW5faW5mZXJpb3IgKGludCk7CitAQCAtNjk0LDcgKzY5OSw3IEBAIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChpbnQpOwogIGV4 dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX29mX2xvY2FsIChjb25zdCBjaGFyICpuYW1lLCBpbnQg Y29tcGxhaW4pOwogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdGVkX3J2 YWx1ZSAoc3RydWN0IHZhbHVlICphcnJheSwKQEAgLTI2MzQ4LDcgKzI5MTM2LDcgQEAgaW5kZXgg NDJiNDQ5Ny4uNmY5OTIzYyAxMDA2NDQKICAvKiBVc2VyIGZ1bmN0aW9uIGhhbmRsZXIuICAqLwog IAogZGlmZiAtLWdpdCBhL2dkYi92YXJvYmouYyBiL2dkYi92YXJvYmouYwotaW5kZXggNmVjODdi My4uYjI3NGFkZSAxMDA2NDQKK2luZGV4IGI0YjI0NjEuLjNhN2E4ODQgMTAwNjQ0CiAtLS0gYS9n ZGIvdmFyb2JqLmMKICsrKyBiL2dkYi92YXJvYmouYwogQEAgLTI2LDYgKzI2LDggQEAKQEAgLTI2 MzYwLDE3ICsyOTE0OCw4IEBAIGluZGV4IDZlYzg3YjMuLmIyNzRhZGUgMTAwNjQ0CiAgCiAgI2lu Y2x1ZGUgImdkYl9hc3NlcnQuaCIKICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTM0OTUs NyArMzQ5Nyw3IEBAIGFsbF9yb290X3Zhcm9ianMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9i aiAqdmFyLCB2b2lkICpkYXRhKSwgdm9pZCAqZGF0YSkKLSAgICAgICAoKmZ1bmMpICh2YXJfcm9v dC0+cm9vdHZhciwgZGF0YSk7Ci0gICAgIH0KLSB9Ci0tDAotKwotIGV4dGVybiB2b2lkIF9pbml0 aWFsaXplX3Zhcm9iaiAodm9pZCk7Ci0gdm9pZAotIF9pbml0aWFsaXplX3Zhcm9iaiAodm9pZCkK IGRpZmYgLS1naXQgYS9nZGIveGNvZmZyZWFkLmMgYi9nZGIveGNvZmZyZWFkLmMKLWluZGV4IDI1 Y2MyZDkuLjY3ODQ2NTQgMTAwNjQ0CitpbmRleCBhY2Q3YjUwLi4wOTI5YTMzIDEwMDY0NAogLS0t IGEvZ2RiL3hjb2ZmcmVhZC5jCiArKysgYi9nZGIveGNvZmZyZWFkLmMKIEBAIC0zMDMwLDYgKzMw MzAsNyBAQCBzdGF0aWMgc3RydWN0IHN5bV9mbnMgeGNvZmZfc3ltX2ZucyA9CgpkaWZmIC0tZ2l0 IGEvZ2RiLWJ6NTM5NTkwLWdudS1pZnVuYy1maXgtY29uZC5wYXRjaCBiL2dkYi1iejUzOTU5MC1n bnUtaWZ1bmMtZml4LWNvbmQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uOThiZjVjMAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejUzOTU5MC1nbnUtaWZ1bmMtZml4 LWNvbmQucGF0Y2gKQEAgLTAsMCArMSwxNCBAQAorLS0tIC4vZ2RiL2JyZWFrcG9pbnQuYwkyMDEw LTA0LTI2IDAyOjM1OjUzLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2JyZWFrcG9pbnQuYwky MDEwLTA0LTI2IDAyOjMzOjI2LjAwMDAwMDAwMCArMDIwMAorQEAgLTg0OTksNiArODQ5OSwxMSBA QCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBicmVhCisgCXsKKyAJICBzdHJ1 Y3QgZ2RiX2V4Y2VwdGlvbiBlOworIAorKwkgIC8qIFRlbXBvcmFyeSB3b3JrYXJvdW5kIGJlZm9y ZSB0aGUgbm9uLWludHJ1c2l2ZSBpZnVuYyBwYXRjaCBnZXRzIGluLgorKwkgICAgIGV4cCBwYXJz aW5nIGNhbiBub3cgY2FsbCBpbmZlcmlvciBmdW5jdGlvbiBpbnZhbGlkYXRpbmcKKysJICAgICBF WElTVElOR19MT0NBVElPTlMuICAqLworKwkgIGV4aXN0aW5nX2xvY2F0aW9ucyA9IE5VTEw7Cisr CisgCSAgcyA9IGItPmNvbmRfc3RyaW5nOworIAkgIFRSWV9DQVRDSCAoZSwgUkVUVVJOX01BU0tf RVJST1IpCisgCSAgICB7CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0y ZC12ZWN0b3JzLWxpYnN0ZGN4eC5wYXRjaCBiL2dkYi1iejU2Mjc2My1wcmV0dHktcHJpbnQtMmQt dmVjdG9ycy1saWJzdGRjeHgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uODcyOWE2MgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU2Mjc2My1wcmV0dHktcHJpbnQt MmQtdmVjdG9ycy1saWJzdGRjeHgucGF0Y2gKQEAgLTAsMCArMSw0MyBAQAorMjAxMC0wNi0wMSAg Q2hyaXMgTW9sbGVyICA8Y21vbGxlckByZWRoYXQuY29tPgorCisJKiBweXRob24vbGlic3RkY3h4 L3Y2L3ByaW50ZXJzLnB5IChTdGRWZWN0b3JQcmludGVyKTogQWRkCisJZGV0ZWN0aW9uIGZvciBt YXRyaWNlcyBhcyBuZXN0ZWQgdmVjdG9ycy4KKworSW5kZXg6IGxpYnN0ZGMrKy12My9weXRob24v bGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gLi9saWJzdGRjKystdjMt cHl0aG9uLXIxNTU5NzgvbGlic3RkY3h4L3Y2L3ByaW50ZXJzLnB5CShyZXZpc2lvbiAxNTk5Mzcp CisrKysgLi9saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgvbGlic3RkY3h4L3Y2L3ByaW50ZXJz LnB5CSh3b3JraW5nIGNvcHkpCitAQCAtMTksNiArMTksOSBAQAorIGltcG9ydCBpdGVydG9vbHMK KyBpbXBvcnQgcmUKKyAKKyt2ZWN0b3Jfc2lnID0gJ3N0ZDo6dmVjdG9yJworK3ZlY3Rvcl9yZWdl eCA9IHJlLmNvbXBpbGUoJ14nICsgdmVjdG9yX3NpZyArICc8Lio+JCcpCisrCisgY2xhc3MgU3Rk UG9pbnRlclByaW50ZXI6CisgICAgICJQcmludCBhIHNtYXJ0IHBvaW50ZXIgb2Ygc29tZSBraW5k IgorIAorQEAgLTE4Niw3ICsxODksMTMgQEAKKyAgICAgICAgICAgICAgICAgJSAoc2VsZi50eXBl bmFtZSwgaW50IChmaW5pc2ggLSBzdGFydCksIGludCAoZW5kIC0gc3RhcnQpKSkKKyAKKyAgICAg ZGVmIGRpc3BsYXlfaGludChzZWxmKToKKy0gICAgICAgIHJldHVybiAnYXJyYXknCisrICAgICAg ICBpdHlwZTAgID0gc2VsZi52YWwudHlwZS50ZW1wbGF0ZV9hcmd1bWVudCgwKQorKyAgICAgICAg aXRhZyA9IGl0eXBlMC50YWcKKysgICAgICAgIGlmIGl0YWcgYW5kIHJlLm1hdGNoKHZlY3Rvcl9y ZWdleCwgaXRhZyk6CisrICAgICAgICAgICAgcmMgPSAnbWF0cml4JworKyAgICAgICAgZWxzZToK KysgICAgICAgICAgICByYyA9ICdhcnJheScKKysgICAgICAgIHJldHVybiByYyAKKyAKKyBjbGFz cyBTdGRWZWN0b3JJdGVyYXRvclByaW50ZXI6CisgICAgICJQcmludCBzdGQ6OnZlY3Rvcjo6aXRl cmF0b3IiCitAQCAtNjkyLDcgKzcwMSw3IEBACisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3Jl LmNvbXBpbGUoJ15zdGQ6OnNldDwuKj4kJyldID0gbGFtYmRhIHZhbDogU3RkU2V0UHJpbnRlcigi c3RkOjpzZXQiLCB2YWwpCisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUoJ15z dGQ6OnN0YWNrPC4qPiQnKV0gPSBsYW1iZGEgdmFsOiBTdGRTdGFja09yUXVldWVQcmludGVyKCJz dGQ6OnN0YWNrIiwgdmFsKQorICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlKCde c3RkOjp1bmlxdWVfcHRyPC4qPiQnKV0gPSBVbmlxdWVQb2ludGVyUHJpbnRlcgorLSAgICBwcmV0 dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlKCdec3RkOjp2ZWN0b3I8Lio+JCcpXSA9IGxhbWJk YSB2YWw6IFN0ZFZlY3RvclByaW50ZXIoInN0ZDo6dmVjdG9yIiwgdmFsKQorKyAgICBwcmV0dHlf cHJpbnRlcnNfZGljdFt2ZWN0b3JfcmVnZXhdID0gbGFtYmRhIHZhbDogU3RkVmVjdG9yUHJpbnRl cih2ZWN0b3Jfc2lnLCB2YWwpCisgICAgICMgdmVjdG9yPGJvb2w+CisgCisgICAgICMgUHJpbnRl ciByZWdpc3RyYXRpb25zIGZvciBjbGFzc2VzIGNvbXBpbGVkIHdpdGggLURfR0xJQkNYWF9ERUJV Ry4KCmRpZmYgLS1naXQgYS9nZGItYno1NjI3NjMtcHJldHR5LXByaW50LTJkLXZlY3RvcnMtcHJl cmVxLnBhdGNoIGIvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3JzLXByZXJlcS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2MxZTE3Ci0tLSAvZGV2 L251bGwKKysrIGIvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3JzLXByZXJlcS5w YXRjaApAQCAtMCwwICsxLDQyNyBAQAorY29tbWl0IGU1ZWE4ZDAyNjAxNWMyYTBjNzc3NDc4OGI0 MjU5MTQ4NTdkZTFmZmIKK0F1dGhvcjogcG11bGRvb24gPHBtdWxkb29uPgorRGF0ZTogICBXZWQg QXByIDE0IDEyOjAyOjQyIDIwMTAgKzAwMDAKKworICAgIDIwMTAtMDQtMTQgIFBoaWwgTXVsZG9v biAgPHBtdWxkb29uQHJlZGhhdC5jb20+CisgICAgCisgICAgCVBSIHB5dGhvbi8xMTM4MQorICAg IAorICAgIAkqIHB5dGhvbi9weS1wcmV0dHlwcmludC5jIChwcmV0dHlfcHJpbnRfb25lX3ZhbHVl KTogVGVzdCBmb3IKKyAgICAJUHlfTm9uZS4KKyAgICAJKHByaW50X3N0cmluZ19yZXByKTogVGVz dCBmb3IgUHlfTm9uZS4gIFNldCBmbGFncyBhY2NvcmRpbmdseS4KKyAgICAJUmV0dXJuIHZhbHVl IGRlcGVuZGluZyBvbiByZXR1cm4gdHlwZS4KKyAgICAJKHByaW50X2NoaWxkcmVuKTogVGFrZSBh IHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHdhcyBwcmludGVkCisgICAgCWJlZm9yZSB0 aGlzIGZ1bmN0aW9uIHdhcyBjYWxsZWQuICBBbHRlciBvdXRwdXQgYWNjb3JkaW5nbHkuCisgICAg CShhcHBseV92YWxfcHJldHR5X3ByaW50ZXIpOiBDYXB0dXJlIHJldHVybiB2YWx1ZSBmcm9tCisg ICAgCXByaW50X3N0cmluZ19yZXByIGFuZCBwYXNzIHRvIHByaW50X2NoaWxkcmVuLgorICAgIAor ICAgIDIwMTAtMDQtMTQgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+CisgICAg CisgICAgCSogZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weSAoTm9TdHJpbmdDb250YWluZXJQ cmludGVyKTogTmV3IHByaW50ZXIuCisgICAgCSogZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5j OiBBZGQganVzdGNoaWxkcmVuIHN0cnVjdCwgdHlwZWRlZnMuCisgICAgCSogZ2RiLnB5dGhvbi9w eS1wcmV0dHlwcmludC5leHA6IE5ldyB0ZXN0IGZvciB0b19zdHJpbmcgcmV0dXJuaW5nIE5vbmUu CisgICAgCSogZ2RiLnB5dGhvbi9weS1taS5leHA6IE5ldyB0ZXN0IGZvciB0b19zdHJpbmcgcmV0 dXJuaW5nIE5vbmUuCisgICAgCisgICAgMjAxMC0wNC0xNCAgUGhpbCBNdWxkb29uICA8cG11bGRv b25AcmVkaGF0LmNvbT4KKyAgICAKKyAgICAJKiBnZGIudGV4aW5mbyAoUHJldHR5IFByaW50aW5n KTogRG9jdW1lbnQgYmVoYXZpb3VyIHdoZW4gdG9fc3RyaW5nCisgICAgCXJldHVybnMgTm9uZS4K KworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSwx NiBAQAorKzIwMTAtMDQtMTQgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+Cisr CisrCVBSIHB5dGhvbi8xMTM4MQorKworKwkqIHB5dGhvbi9weS1wcmV0dHlwcmludC5jIChwcmV0 dHlfcHJpbnRfb25lX3ZhbHVlKTogVGVzdCBmb3IKKysJUHlfTm9uZS4KKysJKHByaW50X3N0cmlu Z19yZXByKTogVGVzdCBmb3IgUHlfTm9uZS4gIFNldCBmbGFncyBhY2NvcmRpbmdseS4KKysJUmV0 dXJuIHZhbHVlIGRlcGVuZGluZyBvbiByZXR1cm4gdHlwZS4KKysJKHByaW50X2NoaWxkcmVuKTog VGFrZSBhIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHdhcyBwcmludGVkCisrCWJlZm9y ZSB0aGlzIGZ1bmN0aW9uIHdhcyBjYWxsZWQuICBBbHRlciBvdXRwdXQgYWNjb3JkaW5nbHkuCisr CShhcHBseV92YWxfcHJldHR5X3ByaW50ZXIpOiBDYXB0dXJlIHJldHVybiB2YWx1ZSBmcm9tCisr CXByaW50X3N0cmluZ19yZXByIGFuZCBwYXNzIHRvIHByaW50X2NoaWxkcmVuLgorKworIDIwMTAt MDQtMTMgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgorIAorIAlQUiBjb3JlZmls ZXMvMTE0ODEKKyMjIyBhL2dkYi9kb2MvQ2hhbmdlTG9nCisjIyMgYi9nZGIvZG9jL0NoYW5nZUxv ZworIyMgLTEsMyArMSw4IEBACisrMjAxMC0wNC0xNCAgUGhpbCBNdWxkb29uICA8cG11bGRvb25A cmVkaGF0LmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoUHJldHR5IFByaW50aW5nKTogRG9jdW1l bnQgYmVoYXZpb3VyIHdoZW4gdG9fc3RyaW5nCisrCXJldHVybnMgTm9uZS4KKysKKyAyMDEwLTA0 LTA5ICBTdGFuIFNoZWJzICA8c3RhbkBjb2Rlc291cmNlcnkuY29tPgorIAorIAkqIGdkYi50ZXhp bmZvIChnZGIvbWkgVHJhY2Vwb2ludCBDb21tYW5kcykgPC10cmFjZS1zdGF0dXM+OgorSW5kZXg6 IGdkYi03LjEvZ2RiL2RvYy9nZGIudGV4aW5mbworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3Jp Zy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDYtMzAgMDM6MjI6MDcuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDYtMzAgMDM6MjI6MjAuMDAw MDAwMDAwICswMjAwCitAQCAtMjAzNDQsNiArMjAzNDQsOSBAQCB0aGUgcmVzdWx0aW5nIHZhbHVl LiAgQWdhaW4sIHRoaXMgbWF5IHJlCisgcHJldHR5LXByaW50ZXIuICBQeXRob24gc2NhbGFycyAo aW50ZWdlcnMsIGZsb2F0cywgYW5kIGJvb2xlYW5zKSBhbmQKKyBzdHJpbmdzIGFyZSBjb252ZXJ0 aWJsZSB0byBAY29kZXtnZGIuVmFsdWV9OyBvdGhlciB0eXBlcyBhcmUgbm90LgorIAorK0ZpbmFs bHksIGlmIHRoaXMgbWV0aG9kIHJldHVybnMgQGNvZGV7Tm9uZX0gdGhlbiBubyBmdXJ0aGVyIG9w ZXJhdGlvbnMKKythcmUgcGVmb3JtZWQgaW4gdGhpcyBtZXRob2QgYW5kIG5vdGhpbmcgaXMgcHJp bnRlZC4KKysKKyBJZiB0aGUgcmVzdWx0IGlzIG5vdCBvbmUgb2YgdGhlc2UgdHlwZXMsIGFuIGV4 Y2VwdGlvbiBpcyByYWlzZWQuCisgQGVuZCBkZWZvcAorIAorSW5kZXg6IGdkYi03LjEvZ2RiL3B5 dGhvbi9weS1wcmV0dHlwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi9w eXRob24vcHktcHJldHR5cHJpbnQuYwkyMDEwLTA2LTMwIDAzOjIyOjAyLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjEvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTAtMDYtMzAgMDM6 MjM6MzguMDAwMDAwMDAwICswMjAwCitAQCAtMTI1LDkgKzEyNSwxMiBAQCBmaW5kX3ByZXR0eV9w cmludGVyIChQeU9iamVjdCAqdmFsdWUpCisgCisgLyogUHJldHR5LXByaW50IGEgc2luZ2xlIHZh bHVlLCB2aWEgdGhlIHByaW50ZXIgb2JqZWN0IFBSSU5URVIuCisgICAgSWYgdGhlIGZ1bmN0aW9u IHJldHVybnMgYSBzdHJpbmcsIGEgUHlPYmplY3QgY29udGFpbmluZyB0aGUgc3RyaW5nCistICAg aXMgcmV0dXJuZWQuICBPdGhlcndpc2UsIGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgdmFsdWUs CistICAgKk9VVF9WQUxVRSBpcyBzZXQgdG8gdGhlIHZhbHVlLCBhbmQgTlVMTCBpcyByZXR1cm5l ZC4gIE9uIGVycm9yLAorLSAgICpPVVRfVkFMVUUgaXMgc2V0IHRvIE5VTEwsIGFuZCBOVUxMIGlz IHJldHVybmVkLiAgKi8KKysgICBpcyByZXR1cm5lZC4gIElmIHRoZSBmdW5jdGlvbiByZXR1cm5z IFB5X05PTkUgdGhhdCBtZWFucyB0aGUgcHJldHR5CisrICAgcHJpbnRlciByZXR1cm5lZCB0aGUg UHl0aG9uIE5vbmUgYXMgYSB2YWx1ZS4gIE90aGVyd2lzZSwgaWYgdGhlCisrICAgZnVuY3Rpb24g cmV0dXJucyBhIHZhbHVlLCAgKk9VVF9WQUxVRSBpcyBzZXQgdG8gdGhlIHZhbHVlLCBhbmQgTlVM TAorKyAgIGlzIHJldHVybmVkLiAgT24gZXJyb3IsICpPVVRfVkFMVUUgaXMgc2V0IHRvIE5VTEws IGFuZCBOVUxMIGlzCisrICAgcmV0dXJuZWQuICAqLworKworIHN0YXRpYyBQeU9iamVjdCAqCisg cHJldHR5X3ByaW50X29uZV92YWx1ZSAoUHlPYmplY3QgKnByaW50ZXIsIHN0cnVjdCB2YWx1ZSAq Km91dF92YWx1ZSkKKyB7CitAQCAtMTQwLDcgKzE0Myw4IEBAIHByZXR0eV9wcmludF9vbmVfdmFs dWUgKFB5T2JqZWN0ICpwcmludGUKKyAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9k T2JqQXJncyAocHJpbnRlciwgZ2RicHlfdG9fc3RyaW5nX2NzdCwgTlVMTCk7CisgICAgICAgaWYg KHJlc3VsdCkKKyAJeworLQkgIGlmICghIGdkYnB5X2lzX3N0cmluZyAocmVzdWx0KSAmJiAhIGdk YnB5X2lzX2xhenlfc3RyaW5nIChyZXN1bHQpKQorKwkgIGlmICghIGdkYnB5X2lzX3N0cmluZyAo cmVzdWx0KSAmJiAhIGdkYnB5X2lzX2xhenlfc3RyaW5nIChyZXN1bHQpICAKKysJICAgICAgJiYg cmVzdWx0ICE9IFB5X05vbmUpCisgCSAgICB7CisgCSAgICAgICpvdXRfdmFsdWUgPSBjb252ZXJ0 X3ZhbHVlX2Zyb21fcHl0aG9uIChyZXN1bHQpOworICAJICAgICAgaWYgKFB5RXJyX09jY3VycmVk ICgpKQorQEAgLTE4NCw4ICsxODgsMTEgQEAgZ2RicHlfZ2V0X2Rpc3BsYXlfaGludCAoUHlPYmpl Y3QgKnByaW50ZQorIH0KKyAKKyAvKiBIZWxwZXIgZm9yIGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRl ciB3aGljaCBjYWxscyB0b19zdHJpbmcgYW5kCistICAgZm9ybWF0cyB0aGUgcmVzdWx0LiAgKi8K Ky1zdGF0aWMgdm9pZAorKyAgIGZvcm1hdHMgdGhlIHJlc3VsdC4gIElmIHRoZSB2YWx1ZSByZXR1 cm5kIGlzIFB5X05vbmUsIG5vdGhpbmcgaXMKKysgICBwcmludGVkIGFuZCB0aGUgZnVuY3Rpb24g cmV0dXJucyBhIDE7IGluIGFsbCBvdGhlciBjYXNlcyBkYXRhIGlzCisrICAgcHJpbnRlZCBhcyBn aXZlbiBieSB0aGUgcHJldHR5IHByaW50ZXIgYW5kIHRoZSBmdW5jdGlvbiByZXR1cm5zIDAuCisr Ki8KKytzdGF0aWMgaW50CisgcHJpbnRfc3RyaW5nX3JlcHIgKFB5T2JqZWN0ICpwcmludGVyLCBj b25zdCBjaGFyICpoaW50LAorIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCisgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKK0BA IC0xOTQsNTIgKzIwMSw1OCBAQCBwcmludF9zdHJpbmdfcmVwciAoUHlPYmplY3QgKnByaW50ZXIs IGNvCisgeworICAgc3RydWN0IHZhbHVlICpyZXBsYWNlbWVudCA9IE5VTEw7CisgICBQeU9iamVj dCAqcHlfc3RyID0gTlVMTDsKKysgIGludCBpc19weV9ub25lID0gMDsKKyAKKyAgIHB5X3N0ciA9 IHByZXR0eV9wcmludF9vbmVfdmFsdWUgKHByaW50ZXIsICZyZXBsYWNlbWVudCk7CisgICBpZiAo cHlfc3RyKQorICAgICB7CistICAgICAgZ2RiX2J5dGUgKm91dHB1dCA9IE5VTEw7CistICAgICAg bG9uZyBsZW5ndGg7CistICAgICAgc3RydWN0IHR5cGUgKnR5cGU7CistICAgICAgY2hhciAqZW5j b2RpbmcgPSBOVUxMOworLSAgICAgIFB5T2JqZWN0ICpzdHJpbmcgPSBOVUxMOworLSAgICAgIGlu dCBpc19sYXp5OworLSAgICAgIAorLSAgICAgIGlzX2xhenkgPSBnZGJweV9pc19sYXp5X3N0cmlu ZyAocHlfc3RyKTsKKy0gICAgICBpZiAoaXNfbGF6eSkKKy0Jb3V0cHV0ID0gZ2RicHlfZXh0cmFj dF9sYXp5X3N0cmluZyAocHlfc3RyLCAmdHlwZSwgJmxlbmd0aCwgJmVuY29kaW5nKTsKKysgICAg ICBpZiAocHlfc3RyID09IFB5X05vbmUpCisrCWlzX3B5X25vbmUgPSAxOworICAgICAgIGVsc2UK KyAJeworLQkgIHN0cmluZyA9IHB5dGhvbl9zdHJpbmdfdG9fdGFyZ2V0X3B5dGhvbl9zdHJpbmcg KHB5X3N0cik7CistCSAgaWYgKHN0cmluZykKKysJICBnZGJfYnl0ZSAqb3V0cHV0ID0gTlVMTDsK KysJICBsb25nIGxlbmd0aDsKKysJICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKysJICBjaGFyICplbmNv ZGluZyA9IE5VTEw7CisrCSAgUHlPYmplY3QgKnN0cmluZyA9IE5VTEw7CisrCSAgaW50IGlzX2xh enk7CisrCisrCSAgaXNfbGF6eSA9IGdkYnB5X2lzX2xhenlfc3RyaW5nIChweV9zdHIpOworKwkg IGlmIChpc19sYXp5KQorKwkgICAgb3V0cHV0ID0gZ2RicHlfZXh0cmFjdF9sYXp5X3N0cmluZyAo cHlfc3RyLCAmdHlwZSwgJmxlbmd0aCwgJmVuY29kaW5nKTsKKysJICBlbHNlCisgCSAgICB7Cist CSAgICAgIG91dHB1dCA9IFB5U3RyaW5nX0FzU3RyaW5nIChzdHJpbmcpOworLQkgICAgICBsZW5n dGggPSBQeVN0cmluZ19TaXplIChzdHJpbmcpOworLQkgICAgICB0eXBlID0gYnVpbHRpbl90eXBl IChnZGJhcmNoKS0+YnVpbHRpbl9jaGFyOworKwkgICAgICBzdHJpbmcgPSBweXRob25fc3RyaW5n X3RvX3RhcmdldF9weXRob25fc3RyaW5nIChweV9zdHIpOworKwkgICAgICBpZiAoc3RyaW5nKQor KwkJeworKwkJICBvdXRwdXQgPSBQeVN0cmluZ19Bc1N0cmluZyAoc3RyaW5nKTsKKysJCSAgbGVu Z3RoID0gUHlTdHJpbmdfU2l6ZSAoc3RyaW5nKTsKKysJCSAgdHlwZSA9IGJ1aWx0aW5fdHlwZSAo Z2RiYXJjaCktPmJ1aWx0aW5fY2hhcjsKKysJCX0KKysJICAgICAgZWxzZQorKwkJZ2RicHlfcHJp bnRfc3RhY2sgKCk7CisrCSAgICAgIAorKwkgICAgfQorKwkKKysJICBpZiAob3V0cHV0KQorKwkg ICAgeworKwkgICAgICBpZiAoaXNfbGF6eSB8fCAoaGludCAmJiAhc3RyY21wIChoaW50LCAic3Ry aW5nIikpKQorKwkJTEFfUFJJTlRfU1RSSU5HIChzdHJlYW0sIHR5cGUsIG91dHB1dCwgbGVuZ3Ro LCBlbmNvZGluZywKKysJCQkJIDAsIG9wdGlvbnMpOworKwkgICAgICBlbHNlCisrCQlmcHV0c19m aWx0ZXJlZCAob3V0cHV0LCBzdHJlYW0pOworIAkgICAgfQorIAkgIGVsc2UKKyAJICAgIGdkYnB5 X3ByaW50X3N0YWNrICgpOworIAkgIAorLQl9CistICAgICAgCistICAgICAgaWYgKG91dHB1dCkK Ky0JeworLQkgIGlmIChpc19sYXp5IHx8IChoaW50ICYmICFzdHJjbXAgKGhpbnQsICJzdHJpbmci KSkpCistCSAgICBMQV9QUklOVF9TVFJJTkcgKHN0cmVhbSwgdHlwZSwgb3V0cHV0LCBsZW5ndGgs IGVuY29kaW5nLAorLQkJCSAgICAgMCwgb3B0aW9ucyk7CisrCSAgaWYgKHN0cmluZykKKysJICAg IFB5X0RFQ1JFRiAoc3RyaW5nKTsKKyAJICBlbHNlCistCSAgICBmcHV0c19maWx0ZXJlZCAob3V0 cHV0LCBzdHJlYW0pOworLQl9CistICAgICAgZWxzZQorLQlnZGJweV9wcmludF9zdGFjayAoKTsK Ky0gICAgICAKKy0gICAgICBpZiAoc3RyaW5nKQorLQlQeV9ERUNSRUYgKHN0cmluZyk7CistICAg ICAgZWxzZQorLQl4ZnJlZSAob3V0cHV0KTsKKysJICAgIHhmcmVlIChvdXRwdXQpOworICAgICAg IAorLSAgICAgIHhmcmVlIChlbmNvZGluZyk7CistICAgICAgUHlfREVDUkVGIChweV9zdHIpOwor KwkgIHhmcmVlIChlbmNvZGluZyk7CisrCSAgUHlfREVDUkVGIChweV9zdHIpOworKwl9CisgICAg IH0KKyAgIGVsc2UgaWYgKHJlcGxhY2VtZW50KQorICAgICB7CitAQCAtMjUwLDYgKzI2Myw4IEBA IHByaW50X3N0cmluZ19yZXByIChQeU9iamVjdCAqcHJpbnRlciwgY28KKyAgICAgfQorICAgZWxz ZQorICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKKysKKysgIHJldHVybiBpc19weV9ub25lOwor IH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTMyOCwxMiArMzQzLDE0IEBAIHB1c2hfZHVtbXlfcHl0 aG9uX2ZyYW1lICgpCisgfQorIAorIC8qIEhlbHBlciBmb3IgYXBwbHlfdmFsX3ByZXR0eV9wcmlu dGVyIHRoYXQgZm9ybWF0cyBjaGlsZHJlbiBvZiB0aGUKKy0gICBwcmludGVyLCBpZiBhbnkgZXhp c3QuICAqLworKyAgIHByaW50ZXIsIGlmIGFueSBleGlzdC4gIElmIGlzX3B5X25vbmUgaXMgdHJ1 ZSwgdGhlbiBub3RoaW5nIGhhcworKyAgIGJlZW4gcHJpbnRlZCBieSB0b19zdHJpbmcsIGFuZCBm b3JtYXQgb3V0cHV0IGFjY29yZGluZ2x5LiAqLworIHN0YXRpYyB2b2lkCisgcHJpbnRfY2hpbGRy ZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdCBjaGFyICpoaW50LAorIAkJc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCisgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucywKKy0JCWNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkK KysJCWNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSwKKysJCWludCBpc19weV9u b25lKQorIHsKKyAgIGludCBpc19tYXAsIGlzX2FycmF5LCBkb25lX2ZsYWcsIHByZXR0eTsKKyAg IHVuc2lnbmVkIGludCBpOworQEAgLTQxMyw3ICs0MzAsMTMgQEAgcHJpbnRfY2hpbGRyZW4gKFB5 T2JqZWN0ICpwcmludGVyLCBjb25zdAorIAkgMi4gQXJyYXlzLiAgQWx3YXlzIHByaW50IGEgIiwi LgorIAkgMy4gT3RoZXIuICBBbHdheXMgcHJpbnQgYSAiLCIuICAqLworICAgICAgIGlmIChpID09 IDApCistCWZwdXRzX2ZpbHRlcmVkICgiID0geyIsIHN0cmVhbSk7CisrCXsKKysgICAgICAgICBp ZiAoaXNfcHlfbm9uZSkKKysgICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgieyIsIHN0cmVhbSk7 CisrICAgICAgICAgZWxzZQorKyAgICAgICAgICAgZnB1dHNfZmlsdGVyZWQgKCIgPSB7Iiwgc3Ry ZWFtKTsKKysgICAgICAgfQorKworICAgICAgIGVsc2UgaWYgKCEgaXNfbWFwIHx8IGkgJSAyID09 IDApCisgCWZwdXRzX2ZpbHRlcmVkIChwcmV0dHkgPyAiLCIgOiAiLCAiLCBzdHJlYW0pOworIAor QEAgLTUzNyw3ICs1NjAsNyBAQCBhcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKHN0cnVjdCB0eXBl ICp0CisgICBjaGFyICpoaW50ID0gTlVMTDsKKyAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwczsK KyAgIGludCByZXN1bHQgPSAwOworLQorKyAgaW50IGlzX3B5X25vbmUgPSAwOworICAgY2xlYW51 cHMgPSBlbnN1cmVfcHl0aG9uX2VudiAoZ2RiYXJjaCwgbGFuZ3VhZ2UpOworIAorICAgLyogSW5z dGFudGlhdGUgdGhlIHByaW50ZXIuICAqLworQEAgLTU2Miw5ICs1ODUsMTEgQEAgYXBwbHlfdmFs X3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdHlwZSAqdAorICAgbWFrZV9jbGVhbnVwIChmcmVlX2N1 cnJlbnRfY29udGVudHMsICZoaW50KTsKKyAKKyAgIC8qIFByaW50IHRoZSBzZWN0aW9uICovCist ICBwcmludF9zdHJpbmdfcmVwciAocHJpbnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLCBvcHRp b25zLCBsYW5ndWFnZSwKKy0JCSAgICAgZ2RiYXJjaCk7CistICBwcmludF9jaGlsZHJlbiAocHJp bnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25zLCBsYW5ndWFnZSk7CisrICBpc19w eV9ub25lID0gcHJpbnRfc3RyaW5nX3JlcHIgKHByaW50ZXIsIGhpbnQsIHN0cmVhbSwgcmVjdXJz ZSwKKysJCQkJICBvcHRpb25zLCBsYW5ndWFnZSwgZ2RiYXJjaCk7CisrICBwcmludF9jaGlsZHJl biAocHJpbnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25zLCBsYW5ndWFnZSwKKysJ CSAgaXNfcHlfbm9uZSk7CisrCisgICByZXN1bHQgPSAxOworIAorIAorSW5kZXg6IGdkYi03LjEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LW1pLmV4cAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktbWkuZXhwCTIwMTAtMDEtMTQgMDk6 MDM6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktbWkuZXhwCTIwMTAtMDYtMzAgMDM6MjI6MjAuMDAwMDAwMDAwICswMjAwCitAQCAtNjEs NiArNjEsMTYgQEAgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsKKyAKKyBtaV9k ZWxldGVfdmFyb2JqIGNvbnRhaW5lciAiZGVsZXRlIHZhcm9iaiIKKyAKKyttaV9jcmVhdGVfZHlu YW1pY192YXJvYmogbnNjb250IG5zdHlwZSBcCisrICAiY3JlYXRlIG5zY29udCB2YXJvYmosIG5v IHByZXR0eS1wcmludGluZyIKKysKKyttaV9saXN0X3Zhcm9ial9jaGlsZHJlbiBuc2NvbnQgewor KyAgeyBuc2NvbnQubGVuIGxlbiAwIGludCB9CisrICB7IG5zY29udC5lbGVtZW50cyBlbGVtZW50 cyAxICJpbnQgLiIgfQorK30gImV4YW1pbmUgbnNjb250IGNoaWxkcmVuPTAsIG5vIHByZXR0eS1w cmludGluZyIKKysKKyttaV9kZWxldGVfdmFyb2JqIG5zY29udCAiZGVsZXRlIHZhcm9iaiIKKysK KyBtaV9nZGJfdGVzdCAiLWVuYWJsZS1wcmV0dHktcHJpbnRpbmciICIiCisgCisgbWlfY3JlYXRl X3Zhcm9ial9jaGVja2VkIHN0cmluZyBzdHJpbmdfMSBcCitAQCAtMjM5LDQgKzI0OSwyOSBAQCBt aV9jb250aW51ZV90b19saW5lIFwKKyAKKyBtaV92YXJvYmpfdXBkYXRlX3dpdGhfdHlwZV9jaGFu Z2UgY29udGFpbmVyIGludCAwICJ1cGRhdGUgYWZ0ZXIgdHlwZSBjaGFuZ2UiCisgCisrCisrbWlf Y29udGludWVfdG9fbGluZSBcCisrICAgIFtnZGJfZ2V0X2xpbmVfbnVtYmVyIHticmVhayB0byBp bnNwZWN0IHN0cnVjdCBhbmQgdW5pb259ICR7dGVzdGZpbGV9LmNdIFwKKysgICAgInN0ZXAgdG8g b3V0ZXIgYnJlYWtwb2ludCIKKysKKyttaV9jcmVhdGVfZHluYW1pY192YXJvYmogbnNjb250IG5z dHlwZSBcCisrICAiY3JlYXRlIG5zdHlwZSB2YXJvYmoiCisrCisrbWlfbGlzdF92YXJvYmpfY2hp bGRyZW4gbnNjb250IHsKKysgICAgeyB7bnNjb250LlxbMFxdfSB7XFswXF19IDAgaW50IH0KKysg ICAgeyB7bnNjb250LlxbMVxdfSB7XFsxXF19IDAgaW50IH0KKyt9ICJsaXN0IGNoaWxkcmVuIGFm dGVyIHNldHRpbmcgdXBkYXRlIHJhbmdlIgorKworK21pX2dkYl90ZXN0ICItdmFyLXNldC12aXN1 YWxpemVyIG5zY29udCBOb25lIiBcCisrICAiXFxeZG9uZSIgXAorKyAgImNsZWFyIHZpc3VhbGl6 ZXIiCisrCisrbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIG5zY29udCIgXAorKyAgIlxcXmRvbmUs Y2hhbmdlbGlzdD1cXFxbXFxcXSIgXAorKyAgInZhcm9iaiB1cGRhdGUgYWZ0ZXIgY2xlYXJpbmci CisrCisrbWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIgbnNjb250IGdkYi5kZWZhdWx0 X3Zpc3VhbGl6ZXIiIFwKKysgICJcXF5kb25lIiBcCisrICAiY2hvb3NlIGRlZmF1bHQgdmlzdWFs aXplciIKKysKKyByZW1vdGVfZmlsZSBob3N0IGRlbGV0ZSAke3JlbW90ZV9weXRob25fZmlsZX0K K0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5j Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1wcmV0dHlwcmludC5jCTIwMTAtMDEtMTQgMDk6MDM6MzcuMDAwMDAwMDAwICswMTAwCisrKysg Z2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDEwLTA2 LTMwIDAzOjIyOjIwLjAwMDAwMDAwMCArMDIwMAorQEAgLTExOSw2ICsxMTksMTUgQEAgdHlwZWRl ZiBzdHJ1Y3Qgc3RyaW5nX3JlcHIKKyAKKyAvKiBUaGlzIGxldHMgdXMgYXZvaWQgbWFsbG9jLiAg Ki8KKyBpbnQgYXJyYXlbMTAwXTsKKytpbnQgbmFycmF5WzEwXTsKKysKKytzdHJ1Y3QganVzdGNo aWxkcmVuCisreworKyAgaW50IGxlbjsKKysgIGludCAqZWxlbWVudHM7CisrfTsKKysKKyt0eXBl ZGVmIHN0cnVjdCBqdXN0Y2hpbGRyZW4gbm9zdHJpbmdfdHlwZTsKKyAKKyBzdHJ1Y3QgY29udGFp bmVyCisgeworQEAgLTE5Niw3ICsyMDUsOSBAQCBtYWluICgpCisgICBjb25zdCBzdHJ1Y3Qgc3Ry aW5nX3JlcHIgY3N0cmluZyA9IHsgeyAiY29uc3Qgc3RyaW5nIiB9IH07CisgICAvKiBDbGVhcmlu ZyBieSBiZWluZyBgc3RhdGljJyBjb3VsZCBpbnZva2UgYW4gb3RoZXIgR0RCIEMrKyBidWcuICAq LworICAgc3RydWN0IG51bGxzdHIgbnVsbHN0cjsKKy0KKysgIG5vc3RyaW5nX3R5cGUgbnN0eXBl OworKyAgbnN0eXBlLmVsZW1lbnRzID0gbmFycmF5OworKyAgbnN0eXBlLmxlbiA9IDA7CisgCisg ICBpbml0X3NzKCZzcywgMSwgMik7CisgICBpbml0X3NzKHNzYSswLCAzLCA0KTsKK0BAIC0yNDks NSArMjYwLDkgQEAgbWFpbiAoKQorICAgZG9fbm90aGluZyAoKTsKKyAjZW5kaWYKKyAKKysgIG5z dHlwZS5lbGVtZW50c1swXSA9IDc7CisrICBuc3R5cGUuZWxlbWVudHNbMV0gPSA0MjsKKysgIG5z dHlwZS5sZW4gPSAyOworKyAgCisgICByZXR1cm4gMDsgICAgICAvKiBicmVhayB0byBpbnNwZWN0 IHN0cnVjdCBhbmQgdW5pb24gKi8KKyB9CitJbmRleDogZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmln L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAJMjAxMC0wNi0zMCAw MzoyMjowMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1wcmV0dHlwcmludC5leHAJMjAxMC0wNi0zMCAwMzoyNDoxNC4wMDAwMDAwMDAgKzAy MDAKK0BAIC0xMTUsNiArMTE1LDcgQEAgcHJvYyBydW5fbGFuZ190ZXN0cyB7bGFuZ30geworIAor ICAgICBnZGJfdGVzdCAicHJpbnQgbnVsbHN0ciIgIlJ1bnRpbWVFcnJvcjogRXJyb3IgcmVhZGlu ZyBzdHJpbmcgZnJvbSBpbmZlcmlvci4qIgorIAorKyAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBl IiAiID0geyRubCAqLjAuID0gNywkbmwgKi4xLiA9IDQyJG5sfSIKKyAgICAgZ2RiX3Rlc3QgImNv bnRpbnVlIiAiUHJvZ3JhbSBleGl0ZWQgbm9ybWFsbHlcLiIKKyAKKyAgICAgcmVtb3RlX2ZpbGUg aG9zdCBkZWxldGUgJHtyZW1vdGVfcHl0aG9uX2ZpbGV9CitJbmRleDogZ2RiLTcuMS9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4xLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5CTIwMTAt MDEtMTQgMDk6MDM6MzcuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkJMjAxMC0wNi0zMCAwMzoyMjoyMC4wMDAwMDAw MDAgKzAyMDAKK0BAIC01Myw2ICs1MywzMyBAQCBjbGFzcyBDb250YWluZXJQcmludGVyOgorICAg ICBkZWYgY2hpbGRyZW4oc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5faXRlcmF0b3Ioc2Vs Zi52YWxbJ2VsZW1lbnRzJ10sIHNlbGYudmFsWydsZW4nXSkKKyAKKysjIFRlc3QgYSBwcmludGVy IHdoZXJlIHRvX3N0cmluZyBpcyBOb25lCisrY2xhc3MgTm9TdHJpbmdDb250YWluZXJQcmludGVy OgorKyAgICBjbGFzcyBfaXRlcmF0b3I6CisrICAgICAgICBkZWYgX19pbml0X18gKHNlbGYsIHBv aW50ZXIsIGxlbik6CisrICAgICAgICAgICAgc2VsZi5zdGFydCA9IHBvaW50ZXIKKysgICAgICAg ICAgICBzZWxmLnBvaW50ZXIgPSBwb2ludGVyCisrICAgICAgICAgICAgc2VsZi5lbmQgPSBwb2lu dGVyICsgbGVuCisrCisrICAgICAgICBkZWYgX19pdGVyX18oc2VsZik6CisrICAgICAgICAgICAg cmV0dXJuIHNlbGYKKysKKysgICAgICAgIGRlZiBuZXh0KHNlbGYpOgorKyAgICAgICAgICAgIGlm IHNlbGYucG9pbnRlciA9PSBzZWxmLmVuZDoKKysgICAgICAgICAgICAgICAgcmFpc2UgU3RvcEl0 ZXJhdGlvbgorKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucG9pbnRlcgorKyAgICAgICAgICAg IHNlbGYucG9pbnRlciA9IHNlbGYucG9pbnRlciArIDEKKysgICAgICAgICAgICByZXR1cm4gKCdb JWRdJyAlIGludCAocmVzdWx0IC0gc2VsZi5zdGFydCksIHJlc3VsdC5kZXJlZmVyZW5jZSgpKQor KworKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsKToKKysgICAgICAgIHNlbGYudmFsID0gdmFs CisrCisrICAgIGRlZiB0b19zdHJpbmcoc2VsZik6CisrICAgICAgICByZXR1cm4gTm9uZQorKwor KyAgICBkZWYgY2hpbGRyZW4oc2VsZik6CisrICAgICAgICByZXR1cm4gc2VsZi5faXRlcmF0b3Io c2VsZi52YWxbJ2VsZW1lbnRzJ10sIHNlbGYudmFsWydsZW4nXSkKKysKKyBjbGFzcyBwcF9zOgor ICAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsKToKKyAgICAgICAgIHNlbGYudmFsID0gdmFsCitA QCAtMTkwLDggKzIxNywxMCBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpOgorICAg ICAjIGJvdGggdGhlIEMgYW5kIEMrKyBjYXNlcy4KKyAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3Rb cmUuY29tcGlsZSAoJ15zdHJ1Y3Qgc3RyaW5nX3JlcHIkJyldID0gc3RyaW5nX3ByaW50CisgICAg IHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdec3RydWN0IGNvbnRhaW5lciQnKV0g PSBDb250YWluZXJQcmludGVyCisrICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUg KCdec3RydWN0IGp1c3RjaGlsZHJlbiQnKV0gPSBOb1N0cmluZ0NvbnRhaW5lclByaW50ZXIKKyAg ICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15zdHJpbmdfcmVwciQnKV0gPSBz dHJpbmdfcHJpbnQKKyAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15jb250 YWluZXIkJyldID0gQ29udGFpbmVyUHJpbnRlcgorKyAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFty ZS5jb21waWxlICgnXmp1c3RjaGlsZHJlbiQnKV0gPSBOb1N0cmluZ0NvbnRhaW5lclByaW50ZXIK KyAgICAgCisgICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdec3RydWN0IG5z JCcpXSAgPSBwcF9ucworICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgnXm5z JCcpXSAgPSBwcF9ucwoKZGlmZiAtLWdpdCBhL2dkYi1iejU2Mjc2My1wcmV0dHktcHJpbnQtMmQt dmVjdG9ycy5wYXRjaCBiL2dkYi1iejU2Mjc2My1wcmV0dHktcHJpbnQtMmQtdmVjdG9ycy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWE4OTczCi0tLSAvZGV2L251 bGwKKysrIGIvZ2RiLWJ6NTYyNzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3JzLnBhdGNoCkBAIC0w LDAgKzEsNDA0IEBACisyMDEwLTA1LTMxICBDaHJpcyBNb2xsZXIgIDxjbW9sbGVyQHJlZGhhdC5j b20+CisKKwkqIHB5dGhvbi9weS1wcmV0dHlwcmludC5jIChwcmludF9jaGlsZHJlbik6IEFkZCBm b3JtYXR0aW5nIGZvcgorCW1hdHJpY2VzLiAoYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyKTogRGV0 ZWN0IGFuZCBkZWFsIHdpdGggbWF0cml4CisJaGludHMuIAorCisKKzIwMTAtMDUtMzEgIENocmlz IE1vbGxlciAgPGNtb2xsZXJAcmVkaGF0LmNvbT4KKworCSogZ2RiLnB5dGhvbi9NYWtlZmlsZS5p biAoRVhFQ1VUQUJMRVMpOiAgQWRkZWQgcHIxMDY1OS4KKwkqIGdkYi5weXRob24vcHIxMDY1OS5j YzogIE5ldyBmaWxlLgorCSogZ2RiLnB5dGhvbi9wcjEwNjU5LmV4cC4gIE5ldyBmaWxlLgorCSog Z2RiLnB5dGhvbi9wcjEwNjU5LnB5OiBOZXcgZmlsZS4KKworSW5kZXg6IGdkYi03LjEvZ2RiL3Zh bHByaW50LmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAx MC0wNi0zMCAxNDowMjoxNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi92YWxwcmlu dC5oCTIwMTAtMDYtMzAgMTQ6MzU6MjQuMDAwMDAwMDAwICswMjAwCitAQCAtOTAsNiArOTAsOSBA QCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucworIAorICAgLyogSWYgbm9uemVybywgcHJpbnQg dGhlIHZhbHVlIGluICJzdW1tYXJ5IiBmb3JtLiAgKi8KKyAgIGludCBzdW1tYXJ5OworKworKyAg LyogQWZmZWN0cyBwcmV0dHkgcHJpbnRpbmcgb2YgbWF0cmljZXMuICAqLworKyAgaW50IHByZXR0 eXByaW50X21hdHJpeDsKKyB9OworIAorIC8qIFRoZSBnbG9iYWwgcHJpbnQgb3B0aW9ucyBzZXQg YnkgdGhlIHVzZXIuICBJbiBnZW5lcmFsIHRoaXMgc2hvdWxkCitJbmRleDogZ2RiLTcuMS9nZGIv cHl0aG9uL3B5LXByZXR0eXByaW50LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2Ri L3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTAtMDYtMzAgMTQ6MDE6NDAuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTcuMS9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxMC0wNi0zMCAx NDozNDo0OS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zODUsNyArMzg1LDggQEAgcHJpbnRfY2hpbGRy ZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAorIAorICAgLyogVXNlIHRoZSBwcmV0dHlwcmlu dF9hcnJheXMgb3B0aW9uIGlmIHdlIGFyZSBwcmludGluZyBhbiBhcnJheSwKKyAgICAgIGFuZCB0 aGUgcHJldHR5IG9wdGlvbiBvdGhlcndpc2UuICAqLworLSAgcHJldHR5ID0gaXNfYXJyYXkgPyBv cHRpb25zLT5wcmV0dHlwcmludF9hcnJheXMgOiBvcHRpb25zLT5wcmV0dHk7CisrICBwcmV0dHkg PSAoaXNfYXJyYXkgfHwgb3B0aW9ucy0+cHJldHR5cHJpbnRfbWF0cml4KSA/CisrICAgIG9wdGlv bnMtPnByZXR0eXByaW50X2FycmF5cyA6IG9wdGlvbnMtPnByZXR0eTsKKyAKKyAgIC8qIE1hbnVm YWN0dXJlIGEgZHVtbXkgUHl0aG9uIGZyYW1lIHRvIHdvcmsgYXJvdW5kIFB5dGhvbiAyLjQgYnVn LAorICAgICAgd2hlcmUgaXQgaW5zaXN0cyBvbiBoYXZpbmcgYSBub24tTlVMTCB0c3RhdGUtPmZy YW1lIHdoZW4KK0BAIC0zOTcsNiArMzk4LDkgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpw cmludGVyLCBjb25zdAorICAgICAgIGdvdG8gZG9uZTsKKyAgICAgfQorICAgbWFrZV9jbGVhbnVw X3B5X2RlY3JlZiAoZnJhbWUpOworKyAgCisrICBpZiAob3B0aW9ucy0+cHJldHR5cHJpbnRfbWF0 cml4ICYmIHJlY3Vyc2UgPT0gMCkKKysgICAgZnB1dHNfZmlsdGVyZWQgKCJcbiIsIHN0cmVhbSk7 CisgCisgICBkb25lX2ZsYWcgPSAwOworICAgZm9yIChpID0gMDsgaSA8IG9wdGlvbnMtPnByaW50 X21heDsgKytpKQorQEAgLTQzMSwxMiArNDM1LDIzIEBAIHByaW50X2NoaWxkcmVuIChQeU9iamVj dCAqcHJpbnRlciwgY29uc3QKKyAJIDMuIE90aGVyLiAgQWx3YXlzIHByaW50IGEgIiwiLiAgKi8K KyAgICAgICBpZiAoaSA9PSAwKQorIAl7CistICAgICAgICAgaWYgKGlzX3B5X25vbmUpCistICAg ICAgICAgICBmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOworLSAgICAgICAgIGVsc2UKKy0g ICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgiID0geyIsIHN0cmVhbSk7CisrCSAgaWYgKG9wdGlv bnMtPnByZXR0eXByaW50X21hdHJpeCAmJiByZWN1cnNlID09IDApCisrCSAgICBwcmludF9zcGFj ZXNfZmlsdGVyZWQgKDIgKyAyICogcmVjdXJzZSwgc3RyZWFtKTsKKysJICBpZiAoaXNfcHlfbm9u ZSkKKysJICAgIHsKKysJICAgICAgaWYgKG9wdGlvbnMtPnByZXR0eXByaW50X21hdHJpeCAmJiBz dHJjbXAgKGhpbnQsICJhcnJheSIpKQorKwkJeworKwkJICBmcHV0c19maWx0ZXJlZCAoIntcbiIs IHN0cmVhbSk7CisrCQkgIHByaW50X3NwYWNlc19maWx0ZXJlZCAoNCArIDIgKiByZWN1cnNlLCBz dHJlYW0pOworKwkJfQorKwkgICAgICBlbHNlCisrCQlmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJl YW0pOworKwkgICAgfQorKwkgIGVsc2UKKysJICAgIGZwdXRzX2ZpbHRlcmVkICgiID0geyIsIHN0 cmVhbSk7CisgICAgICAgIH0KKy0KKysgICAgICBlbHNlIGlmIChvcHRpb25zLT5wcmV0dHlwcmlu dF9tYXRyaXgpCisrCXByaW50X3NwYWNlc19maWx0ZXJlZCAoNCArIDIgKiByZWN1cnNlLCBzdHJl YW0pOworICAgICAgIGVsc2UgaWYgKCEgaXNfbWFwIHx8IGkgJSAyID09IDApCisgCWZwdXRzX2Zp bHRlcmVkIChwcmV0dHkgPyAiLCIgOiAiLCAiLCBzdHJlYW0pOworIAorQEAgLTQ2NSw2ICs0ODAs MTAgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAorIAorICAgICAg IGlmIChpc19tYXAgJiYgaSAlIDIgPT0gMCkKKyAJZnB1dHNfZmlsdGVyZWQgKCJbIiwgc3RyZWFt KTsKKysgICAgICBlbHNlIGlmIChvcHRpb25zLT5wcmV0dHlwcmludF9tYXRyaXgpCisrCXsKKysJ ICAvKiBGb3JjZSBhIGRvLW5vdGhpbmcuICAqLworKwl9CisgICAgICAgZWxzZSBpZiAoaXNfYXJy YXkpCisgCXsKKyAJICAvKiBXZSBwcmludCB0aGUgaW5kZXgsIG5vdCB3aGF0ZXZlciB0aGUgY2hp bGQgbWV0aG9kCitAQCAtNTM5LDcgKzU1OCwxMiBAQCBwcmludF9jaGlsZHJlbiAoUHlPYmplY3Qg KnByaW50ZXIsIGNvbnN0CisgCSAgZnB1dHNfZmlsdGVyZWQgKCJcbiIsIHN0cmVhbSk7CisgCSAg cHJpbnRfc3BhY2VzX2ZpbHRlcmVkICgyICogcmVjdXJzZSwgc3RyZWFtKTsKKyAJfQorLSAgICAg IGZwdXRzX2ZpbHRlcmVkICgifSIsIHN0cmVhbSk7CisrICAgICAgaWYgKG9wdGlvbnMtPnByZXR0 eXByaW50X21hdHJpeCkKKysgICAgICB7CisrCXByaW50X3NwYWNlc19maWx0ZXJlZCAoNCAqIHJl Y3Vyc2UsIHN0cmVhbSk7CisrCWZwdXRzX2ZpbHRlcmVkICgifVxuIiwgc3RyZWFtKTsKKysgICAg ICB9CisrICAgICAgZWxzZSBmcHV0c19maWx0ZXJlZCAoIn0iLCBzdHJlYW0pOworICAgICB9Cisg CisgIGRvbmU6CitAQCAtNTYxLDYgKzU4NSw3IEBAIGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAo c3RydWN0IHR5cGUgKnQKKyAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwczsKKyAgIGludCByZXN1 bHQgPSAwOworICAgaW50IGlzX3B5X25vbmUgPSAwOworKyAgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnNfY29weTsKKyAgIGNsZWFudXBzID0gZW5zdXJlX3B5dGhvbl9lbnYgKGdk YmFyY2gsIGxhbmd1YWdlKTsKKyAKKyAgIC8qIEluc3RhbnRpYXRlIHRoZSBwcmludGVyLiAgKi8K K0BAIC01ODIsMTIgKzYwNywyMyBAQCBhcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKHN0cnVjdCB0 eXBlICp0CisgCisgICAvKiBJZiB3ZSBhcmUgcHJpbnRpbmcgYSBtYXAsIHdlIHdhbnQgc29tZSBz cGVjaWFsIGZvcm1hdHRpbmcuICAqLworICAgaGludCA9IGdkYnB5X2dldF9kaXNwbGF5X2hpbnQg KHByaW50ZXIpOworKyAgCisrICBpZiAocmVjdXJzZSA9PSAwKQorKyAgICB7CisrICAgICAgb3B0 aW9uc19jb3B5ID0gYWxsb2NhIChzaXplb2YgKHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zKSk7 CisrICAgICAgbWVtY3B5IChvcHRpb25zX2NvcHksIG9wdGlvbnMsIHNpemVvZiAoc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMpKTsKKysgICAgICBvcHRpb25zX2NvcHktPnByZXR0eXByaW50X21h dHJpeCA9IGhpbnQgJiYgIXN0cmNtcCAoaGludCwgIm1hdHJpeCIpOworKyAgICB9CisrICBlbHNl IG9wdGlvbnNfY29weSA9IChzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKW9wdGlvbnM7Cisr CisgICBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmhpbnQpOworIAorICAg LyogUHJpbnQgdGhlIHNlY3Rpb24gKi8KKy0gIGlzX3B5X25vbmUgPSBwcmludF9zdHJpbmdfcmVw ciAocHJpbnRlciwgaGludCwgc3RyZWFtLCByZWN1cnNlLAorLQkJCQkgIG9wdGlvbnMsIGxhbmd1 YWdlLCBnZGJhcmNoKTsKKy0gIHByaW50X2NoaWxkcmVuIChwcmludGVyLCBoaW50LCBzdHJlYW0s IHJlY3Vyc2UsIG9wdGlvbnMsIGxhbmd1YWdlLAorKyAgaXNfcHlfbm9uZSA9IG9wdGlvbnNfY29w eS0+cHJldHR5cHJpbnRfbWF0cml4ID8KKysgICAgMSA6IHByaW50X3N0cmluZ19yZXByIChwcmlu dGVyLCBoaW50LCBzdHJlYW0sCisrCQkJICAgcmVjdXJzZSwgb3B0aW9uc19jb3B5LAorKwkJCSAg IGxhbmd1YWdlLCBnZGJhcmNoKTsKKysgIHByaW50X2NoaWxkcmVuIChwcmludGVyLCBoaW50LCBz dHJlYW0sIHJlY3Vyc2UsIG9wdGlvbnNfY29weSwgbGFuZ3VhZ2UsCisgCQkgIGlzX3B5X25vbmUp OworIAorICAgcmVzdWx0ID0gMTsKK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9wcjEwNjU5LmNjCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHIxMDY1OS5jYwkyMDEwLTA2LTMwIDE0OjM0OjQ5LjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSw0MyBAQAorKyNpbmNsdWRlIDxsaXN0PgorKyNpbmNsdWRlIDx2ZWN0b3I+ICAvLyAvdXNy L2luY2x1ZGUvYysrLzQuNC4xL2JpdHMvdmVjdG9yLnRjYworKyNpbmNsdWRlIDxpb3N0cmVhbT4K KysKKyt1c2luZyBuYW1lc3BhY2Ugc3RkOworKworK2ludCB1c2Vfd2luZG93cyA9IDk5OTk7Cisr CisraW50CisrbWFpbigpeworKyAgdmVjdG9yPGludD4gdGVzdDEoMiwwKTsKKysgIHRlc3QxWzBd PTg7CisrICB0ZXN0MVsxXT05OworKyAgCisrICB2ZWN0b3I8IHZlY3RvcjxpbnQ+ID4gdGVzdDIo MywgdmVjdG9yPGludD4oMiwwKSk7CisrICB0ZXN0MlswXVswXT0wOworKyAgdGVzdDJbMF1bMV09 MTsKKysgIHRlc3QyWzFdWzBdPTI7CisrICB0ZXN0MlsxXVsxXT0zOworKyAgdGVzdDJbMl1bMF09 NDsKKysgIHRlc3QyWzJdWzFdPTU7CisrCisrI2RlZmluZSBOUl9ST1dTICAgIDIKKysjZGVmaW5l IE5SX0NPTFMgICAgMworKyNkZWZpbmUgTlJfUExBTkVTICA0CisrICB2ZWN0b3I8aW50PiByb3dz KE5SX1JPV1MsIDApOworKyAgdmVjdG9yPCB2ZWN0b3I8aW50PiA+IGNvbHVtbnMoTlJfQ09MUywg cm93cyk7CisrICB2ZWN0b3I8IHZlY3RvciA8IHZlY3RvcjxpbnQ+ID4gPiB0ZXN0MyhOUl9QTEFO RVMsIGNvbHVtbnMpOworKworKyAgY291dCA8PCAicm93cy5zaXplKCkgPSAiIDw8IHJvd3Muc2l6 ZSgpCisrICAgICAgIDw8ICIsIGNvbHVtbnMuc2l6ZSgpID0gIiA8PCBjb2x1bW5zLnNpemUoKQor KyAgICAgICA8PCAiLCB0ZXN0My5zaXplKCkgPSAiIDw8IHRlc3QzLnNpemUoKSA8PCAiXG4iOwor KworKyAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzLnNpemUoKTsgaSsrKSB7CisrICAgIGZvciAo aW50IGogPSAwOyBqIDwgY29sdW1ucy5zaXplKCk7IGorKykgeworKyAgICAgIGZvciAoaW50IGsg PSAwOyBrIDwgdGVzdDMuc2l6ZSgpOyBrKyspIHsKKysJdGVzdDNba11bal1baV0gPSBrICogMTAw ICsgaiAqIDEwICsgaTsKKysgICAgICB9CisrICAgIH0KKysgIH0KKysgIAorKyAgcmV0dXJuIDA7 ICAvLyBicmVhaworK30KK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w cjEwNjU5LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3By MTA2NTkuZXhwCTIwMTAtMDYtMzAgMTQ6MzQ6NDkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDgyIEBACisrI0NvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzZXQgbmwgICAgICAgICAgICAg IlxbXHJcblxdKyIKKysKKytzZXQgdGVzdGZpbGUgcHIxMDY1OQorK3NldCBzcmNmaWxlICR7dGVz dGZpbGV9LmNjCisraWYgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHRlc3RmaWxlLmV4cCAkdGVzdGZp bGUgJHNyY2ZpbGUge2RlYnVnIGMrK31dIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyNpZiB7 IFtza2lwX3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVlIH0KKysKKytnZGJfdGVzdCAicHl0aG9u IGV4ZWNmaWxlKFwiJHNyY2Rpci8kc3ViZGlyL3ByMTA2NTkucHlcIikiICIiCisrZ2RiX3Rlc3Qg InB5dGhvbiBnZGIucHJldHR5X3ByaW50ZXJzID0gXFtsb29rdXBfZnVuY3Rpb25cXSIgIiIKKysK KytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIK KysgICAgcmV0dXJuCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJicmVhayJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJyZWFrIgorKworK2dkYl90 ZXN0ICJwIHRlc3QxIiAidmVjdG9yIG9mIGxlbmd0aCAyLCBjYXBhY2l0eSAyID0uKiIKKysKKytn ZGJfdGVzdCAicCB0ZXN0MiIgIj0gJG5sICB7JG5sICAgIHsuKiIKKysKKysjIENvbXBsZXRlIHJl c3VsdCBpczoKKysjCisrIyAoZ2RiKSBwIHRlc3QyCisrIyAkMiA9CisrIyAgIHsKKysjICAgICB7 MCAgICAgIDEgICAgfQorKyMgICAgIHsyICAgICAgMyAgICB9CisrIyAgICAgezQgICAgICA1ICAg IH0KKysjICB9CisrCisrCisrZ2RiX3Rlc3QgInAgdGVzdDMiICI9ICRubCAgeyRubCAgICB7JG5s ICAgICAgey4qIgorKworKyMgQ29tcGxldGUgcmVzdWx0IGlzOgorKyMKKysjIChnZGIpIHAgdGVz dDMKKysjICQzID0KKysjICAgeworKyMgICAgIHsKKysjICAgICAgIHswICAgICAgICAxICAgICAg ICB9CisrIyAgICAgICB7MTAgICAgICAgIDExICAgICAgICB9CisrIyAgICAgICB7MjAgICAgICAg IDIxICAgICAgICB9CisrIyAgICAgfQorKyMgICAgIHsKKysjICAgICAgIHsxMDAgICAgICAgIDEw MSAgICAgICAgfQorKyMgICAgICAgezExMCAgICAgICAgMTExICAgICAgICB9CisrIyAgICAgICB7 MTIwICAgICAgICAxMjEgICAgICAgIH0KKysjICAgICB9CisrIyAgICAgeworKyMgICAgICAgezIw MCAgICAgICAgMjAxICAgICAgICB9CisrIyAgICAgICB7MjEwICAgICAgICAyMTEgICAgICAgIH0K KysjICAgICAgIHsyMjAgICAgICAgIDIyMSAgICAgICAgfQorKyMgICAgIH0KKysjICAgICB7Cisr IyAgICAgICB7MzAwICAgICAgICAzMDEgICAgICAgIH0KKysjICAgICAgIHszMTAgICAgICAgIDMx MSAgICAgICAgfQorKyMgICAgICAgezMyMCAgICAgICAgMzIxICAgICAgICB9CisrIyAgICAgfQor KyMgIH0KKysjIAorKworKworSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3ByMTA2NTkucHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w cjEwNjU5LnB5CTIwMTAtMDYtMzAgMTQ6MzQ6NDkuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsx LDEwOSBAQAorKyMgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQg Z2RiCisraW1wb3J0IGl0ZXJ0b29scworK2ltcG9ydCByZQorKworK3ZlY3Rvcl9zaWcgPSAnc3Rk Ojp2ZWN0b3InCisrdmVjdG9yX3JlZ2V4ID0gcmUuY29tcGlsZSgnXicgKyB2ZWN0b3Jfc2lnICsg JzwuKj4kJykKKysKKytjbGFzcyBGYWtlVmVjdG9yUHJpbnRlcjoKKysgICAgIlByaW50IGEgc3Rk Ojp2ZWN0b3IiCisrCisrICAgIGNsYXNzIF9pdGVyYXRvcjoKKysgICAgICAgIGRlZiBfX2luaXRf XyAoc2VsZiwgc3RhcnQsIGZpbmlzaCk6CisrICAgICAgICAgICAgc2VsZi5pdGVtID0gc3RhcnQK KysgICAgICAgICAgICBzZWxmLmZpbmlzaCA9IGZpbmlzaAorKyAgICAgICAgICAgIHNlbGYuY291 bnQgPSAwCisrCisrICAgICAgICBkZWYgX19pdGVyX18oc2VsZik6CisrICAgICAgICAgICAgcmV0 dXJuIHNlbGYKKysKKysgICAgICAgIGRlZiBuZXh0KHNlbGYpOgorKyAgICAgICAgICAgIGlmIHNl bGYuaXRlbSA9PSBzZWxmLmZpbmlzaDoKKysgICAgICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJh dGlvbgorKyAgICAgICAgICAgIGNvdW50ID0gc2VsZi5jb3VudAorKyAgICAgICAgICAgIHNlbGYu Y291bnQgPSBzZWxmLmNvdW50ICsgMQorKyAgICAgICAgICAgIGVsdCA9IHNlbGYuaXRlbS5kZXJl ZmVyZW5jZSgpCisrICAgICAgICAgICAgc2VsZi5pdGVtID0gc2VsZi5pdGVtICsgMQorKyAgICAg ICAgICAgIHJldHVybiAoJ1slZF0nICUgY291bnQsIGVsdCkKKysKKysgICAgZGVmIF9faW5pdF9f KHNlbGYsIHR5cGVuYW1lLCB2YWwpOgorKyAgICAgICAgc2VsZi50eXBlbmFtZSA9IHR5cGVuYW1l CisrICAgICAgICBzZWxmLnZhbCA9IHZhbAorKworKyAgICBkZWYgY2hpbGRyZW4oc2VsZik6Cisr ICAgICAgICByZXR1cm4gc2VsZi5faXRlcmF0b3Ioc2VsZi52YWxbJ19NX2ltcGwnXVsnX01fc3Rh cnQnXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZhbFsnX01faW1wbCdd WydfTV9maW5pc2gnXSkKKysKKysgICAgZGVmIHRvX3N0cmluZyhzZWxmKToKKysgICAgICAgIHN0 YXJ0ID0gc2VsZi52YWxbJ19NX2ltcGwnXVsnX01fc3RhcnQnXQorKyAgICAgICAgZmluaXNoID0g c2VsZi52YWxbJ19NX2ltcGwnXVsnX01fZmluaXNoJ10KKysgICAgICAgIGVuZCA9IHNlbGYudmFs WydfTV9pbXBsJ11bJ19NX2VuZF9vZl9zdG9yYWdlJ10KKysgICAgICAgIHJldHVybiAoJ3N0ZDo6 dmVjdG9yIG9mIGxlbmd0aCAlZCwgY2FwYWNpdHkgJWQnCisrICAgICAgICAgICAgICAgICUgKGlu dCAoZmluaXNoIC0gc3RhcnQpLCBpbnQgKGVuZCAtIHN0YXJ0KSkpCisrCisrICAgIGRlZiBkaXNw bGF5X2hpbnQoc2VsZik6CisrICAgICAgICBpdHlwZTAgID0gc2VsZi52YWwudHlwZS50ZW1wbGF0 ZV9hcmd1bWVudCgwKQorKyAgICAgICAgaXRhZyA9IGl0eXBlMC50YWcKKysgICAgICAgIGlmIGl0 YWcgYW5kIHJlLm1hdGNoKHZlY3Rvcl9yZWdleCwgaXRhZyk6CisrICAgICAgICAgICAgcmMgPSAn bWF0cml4JworKyAgICAgICAgZWxzZToKKysgICAgICAgICAgICByYyA9ICdhcnJheScKKysgICAg ICAgIHJldHVybiByYworKworK2RlZiByZWdpc3Rlcl9saWJzdGRjeHhfcHJpbnRlcnMgKG9iaik6 CisrICAgICJSZWdpc3RlciBsaWJzdGRjKysgcHJldHR5LXByaW50ZXJzIHdpdGggb2JqZmlsZSBP YmouIgorKworKyAgICBpZiBvYmogPT0gTm9uZToKKysgICAgICAgIG9iaiA9IGdkYgorKworKyAg ICBvYmoucHJldHR5X3ByaW50ZXJzLmFwcGVuZCAobG9va3VwX2Z1bmN0aW9uKQorKworK2RlZiBs b29rdXBfZnVuY3Rpb24gKHZhbCk6CisrICAgICJMb29rLXVwIGFuZCByZXR1cm4gYSBwcmV0dHkt cHJpbnRlciB0aGF0IGNhbiBwcmludCB2YWwuIgorKworKyAgICAjIEdldCB0aGUgdHlwZS4KKysg ICAgdHlwZSA9IHZhbC50eXBlOworKworKyAgICAjIElmIGl0IHBvaW50cyB0byBhIHJlZmVyZW5j ZSwgZ2V0IHRoZSByZWZlcmVuY2UuCisrICAgIGlmIHR5cGUuY29kZSA9PSBnZGIuVFlQRV9DT0RF X1JFRjoKKysgICAgICAgIHR5cGUgPSB0eXBlLnRhcmdldCAoKQorKworKyAgICAjIEdldCB0aGUg dW5xdWFsaWZpZWQgdHlwZSwgc3RyaXBwZWQgb2YgdHlwZWRlZnMuCisrICAgIHR5cGUgPSB0eXBl LnVucXVhbGlmaWVkICgpLnN0cmlwX3R5cGVkZWZzICgpCisrCisrICAgICMgR2V0IHRoZSB0eXBl IG5hbWUuICAgIAorKyAgICB0eXBlbmFtZSA9IHR5cGUudGFnCisrICAgIGlmIHR5cGVuYW1lID09 IE5vbmU6CisrICAgICAgICByZXR1cm4gTm9uZQorKworKyAgICAjIEl0ZXJhdGUgb3ZlciBsb2Nh bCBkaWN0aW9uYXJ5IG9mIHR5cGVzIHRvIGRldGVybWluZQorKyAgICAjIGlmIGEgcHJpbnRlciBp cyByZWdpc3RlcmVkIGZvciB0aGF0IHR5cGUuICBSZXR1cm4gYW4KKysgICAgIyBpbnN0YW50aWF0 aW9uIG9mIHRoZSBwcmludGVyIGlmIGZvdW5kLgorKyAgICBmb3IgZnVuY3Rpb24gaW4gZmFrZV9w cmV0dHlfcHJpbnRlcnNfZGljdDoKKysgICAgICAgIGlmIGZ1bmN0aW9uLnNlYXJjaCAodHlwZW5h bWUpOgorKyAgICAgICAgICAgIHJldHVybiBmYWtlX3ByZXR0eV9wcmludGVyc19kaWN0W2Z1bmN0 aW9uXSAodmFsKQorKyAgICAgICAgCisrICAgICMgQ2Fubm90IGZpbmQgYSBwcmV0dHkgcHJpbnRl ci4gIFJldHVybiBOb25lLgorKyAgICByZXR1cm4gTm9uZQorKworK2RlZiBidWlsZF9saWJmYWtl Y3h4X2RpY3Rpb25hcnkgKCk6CisrICAgIGZha2VfcHJldHR5X3ByaW50ZXJzX2RpY3RbdmVjdG9y X3JlZ2V4XSA9IGxhbWJkYSB2YWw6IEZha2VWZWN0b3JQcmludGVyKHZlY3Rvcl9zaWcsIHZhbCkK KysKKytmYWtlX3ByZXR0eV9wcmludGVyc19kaWN0ID0ge30KKysKKytidWlsZF9saWJmYWtlY3h4 X2RpY3Rpb25hcnkgKCkKK0luZGV4OiBnZGItNy4xL2dkYi92YWxwcmludC5jCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuMS5vcmlnL2dkYi92YWxwcmludC5jCTIwMTAtMDYtMzAgMTM6NTE6MjYuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdmFscHJpbnQuYwkyMDEwLTA2LTMwIDE0OjM1 OjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTgzLDcgKzgzLDggQEAgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgdXNlcl9wcmludF9vcAorICAgMSwJCQkJLyogc3RhdGljX2ZpZWxkX3ByaW50ICov CisgICAxLAkJCQkvKiBwYXNjYWxfc3RhdGljX2ZpZWxkX3ByaW50ICovCisgICAwLAkJCQkvKiBy YXcgKi8KKy0gIDAJCQkJLyogc3VtbWFyeSAqLworKyAgMCwJCQkJLyogc3VtbWFyeSAqLworKyAg MAkJCQkvKiBwcmV0dHlwcmludF9tYXRyaXggKi8KKyB9OworIAorIC8qIEluaXRpYWxpemUgKk9Q VFMgdG8gYmUgYSBjb3B5IG9mIHRoZSB1c2VyIHByaW50IG9wdGlvbnMuICAqLwoKZGlmZiAtLWdp dCBhL2dkYi1iejU2Mjk3NS1zdGQtdGVybWluYXRlLWRvdWJsZS1mcmVlLnBhdGNoIGIvZ2RiLWJ6 NTYyOTc1LXN0ZC10ZXJtaW5hdGUtZG91YmxlLWZyZWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYTU0YzU1MAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU2Mjk3 NS1zdGQtdGVybWluYXRlLWRvdWJsZS1mcmVlLnBhdGNoCkBAIC0wLDAgKzEsMTU5IEBACitodHRw Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMi9tc2cwMDYyNS5odG1sCitT dWJqZWN0OiBSRkM6IGZpeCBidWcgd2l0aCBzdGQ6OnRlcm1pbmF0ZSBoYW5kbGVyCisKK0kgd291 bGQgYXBwcmVjaWF0ZSBjb21tZW50cyBvbiB0aGlzIHBhdGNoLgorCitUaGlzIGNvbWVzIGZyb20g YW4gYXV0b21hdGljYWxseS1yZXBvcnRlZCBidWcgaW4gdGhlIFJlZCBIYXQgYnVnemlsbGE6CisK KyAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU2Mjk3NQor CitjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgaW5zdGFsbHMgYSBtb21lbnRhcnkgYnJlYWtwb2ludCBv biBzdGQ6OnRlcm1pbmF0ZSwKK2FuZCB0aGVuIGRlbGV0ZXMgaXQgbGF0ZXIuICBIb3dldmVyLCB0 aGlzIGNhbiBjYXVzZSBhIGRvdWJsZSBkZWxldGlvbiBvZgordGhlIGJyZWFrcG9pbnQuICBJbiB0 aGUgYnVnLCB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIGRsb3Blbiwgd2hpY2ggY2F1c2VzCitnZGIg dG8gZW50ZXIgc29saWJfYWRkLCB3aGljaCBjYWxscyBicmVha3BvaW50X3JlX3NldCwgZGVsZXRp bmcgdGhlCittb21lbnRhcnkgYnJlYWtwb2ludC4KKworVGhpcyBmaXggd29ya3MgYnkgY3JlYXRp bmcgdGhlIG1vbWVudGFyeSBicmVha3BvaW50IHdpdGggYW4gaW50ZXJuYWwKK2JyZWFrcG9pbnQg bnVtYmVyLCBhbmQgdGhlbiB0cnlpbmcgdG8gZGVsZXRlIHRoZSBicmVha3BvaW50IGJ5IG51bWJl ci4KKworVGhpcyBidWcgZG9lcyBub3QgYWx3YXlzIG1hbmlmZXN0IGluIGEgY3Jhc2guICBJbiBm YWN0LCBJIGNvdWxkbid0IG1ha2UKK2l0IGNyYXNoIGhlcmUsIGJ1dCBJIGNvdWxkIG9ic2VydmUg dGhlIHByb2JsZW0gdW5kZXIgdmFsZ3JpbmQuCisKK0J1aWx0IGFuZCByZWd0ZXN0ZWQgb24geDg2 LTY0IChjb21waWxlIGZhcm0pLiAgSSBhbHNvIG1hbnVhbGx5IHZlcmlmaWVkCitpdCB1c2luZyB2 YWxncmluZC4KKworSSB0aGluayB0aGlzIHBhdGNoIGlzIG1pbGRseSB1Z2x5LCBkdWUgdG8gdGhl IGludHJvZHVjdGlvbiBvZgorc2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjX3dpdGhfbnVt YmVyLiAgSG93ZXZlciwgaW4gdGhlIGFic2VuY2Ugb2YKK2NvbW1lbnRzLCBJIHBsYW4gdG8gY2hl Y2sgaXQgaW4gYWZ0ZXIgYSByZWFzb25hYmxlIHdhaXRpbmcgcGVyaW9kLgorCitUb20KKworMjAx MC0wMi0yNSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorCisJKiBpbmZjYWxsLmMg KGRvX2RlbGV0ZV9icmVha3BvaW50X2J5X251bWJlcik6IE5ldyBmdW5jdGlvbi4KKwkoY2FsbF9m dW5jdGlvbl9ieV9oYW5kKTogUmVmZXIgdG8gbW9tZW50YXJ5IGJyZWFrcG9pbnQgYnkgbnVtYmVy LgorCSogYnJlYWtwb2ludC5oIChzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGNfd2l0aF9u dW1iZXIpOgorCURlY2xhcmUuCisJKiBicmVha3BvaW50LmMgKHNldF9tb21lbnRhcnlfYnJlYWtw b2ludF9hdF9wY193aXRoX251bWJlcik6IE5ldworCWZ1bmN0aW9uLgorCitJbmRleDogZ2RiLTcu MC45MC4yMDEwMDMxMi9nZGIvYnJlYWtwb2ludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMC45 MC4yMDEwMDMxMi5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxMC0wMy0xMiAxNDo1NDoyNi4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4wLjkwLjIwMTAwMzEyL2dkYi9icmVha3BvaW50LmMJMjAx MC0wMy0xMiAxNDo1NDo1My4wMDAwMDAwMDAgKzAxMDAKK0BAIC02MTE1LDYgKzYxMTUsMjAgQEAg c2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjIChzdHJ1Y3QgZworIAorICAgcmV0dXJuIHNl dF9tb21lbnRhcnlfYnJlYWtwb2ludCAoZ2RiYXJjaCwgc2FsLCBudWxsX2ZyYW1lX2lkLCB0eXBl KTsKKyB9CisrCisrLyogTGlrZSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGMsIGJ1dCBl bnN1cmUgdGhhdCB0aGUgbmV3CisrICAgYnJlYWtwb2ludCBoYXMgYSBudW1iZXIuICAqLworKwor K3N0cnVjdCBicmVha3BvaW50ICoKKytzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGNfd2l0 aF9udW1iZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorKwkJCQkJICAgIENPUkVfQUREUiBw YywKKysJCQkJCSAgICBlbnVtIGJwdHlwZSB0eXBlKQorK3sKKysgIHN0cnVjdCBicmVha3BvaW50 ICpyZXN1bHQgPSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGMgKGdkYmFyY2gsIHBjLAor KwkJCQkJCQkgICAgICB0eXBlKTsKKysgIHJlc3VsdC0+bnVtYmVyID0gaW50ZXJuYWxfYnJlYWtw b2ludF9udW1iZXItLTsKKysgIHJldHVybiByZXN1bHQ7CisrfQorIAwKKyAKKyAvKiBUZWxsIHRo ZSB1c2VyIHdlIGhhdmUganVzdCBzZXQgYSBicmVha3BvaW50IEIuICAqLworSW5kZXg6IGdkYi03 LjAuOTAuMjAxMDAzMTIvZ2RiL2JyZWFrcG9pbnQuaAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjAu OTAuMjAxMDAzMTIub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTAtMDMtMTIgMTQ6NTQ6MjYuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMC45MC4yMDEwMDMxMi9nZGIvYnJlYWtwb2ludC5oCTIw MTAtMDMtMTIgMTQ6NTQ6NTMuMDAwMDAwMDAwICswMTAwCitAQCAtNzc0LDYgKzc3NCw5IEBAIGV4 dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqc2V0X21vbWVudGFyeV8KKyBleHRlcm4gc3RydWN0IGJy ZWFrcG9pbnQgKnNldF9tb21lbnRhcnlfYnJlYWtwb2ludF9hdF9wYworICAgKHN0cnVjdCBnZGJh cmNoICosIENPUkVfQUREUiBwYywgZW51bSBicHR5cGUgdHlwZSk7CisgCisrZXh0ZXJuIHN0cnVj dCBicmVha3BvaW50ICpzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGNfd2l0aF9udW1iZXIK KysgIChzdHJ1Y3QgZ2RiYXJjaCAqLCBDT1JFX0FERFIgcGMsIGVudW0gYnB0eXBlIHR5cGUpOwor KworIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqY2xvbmVfbW9tZW50YXJ5X2JyZWFrcG9pbnQg KHN0cnVjdCBicmVha3BvaW50ICpicGt0KTsKKyAKKyBleHRlcm4gdm9pZCBzZXRfaWdub3JlX2Nv dW50IChpbnQsIGludCwgaW50KTsKK0luZGV4OiBnZGItNy4wLjkwLjIwMTAwMzEyL2dkYi9pbmZj YWxsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4wLjkwLjIwMTAwMzEyLm9yaWcvZ2RiL2luZmNh bGwuYwkyMDEwLTAzLTEyIDE0OjU0OjI2LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjAuOTAu MjAxMDAzMTIvZ2RiL2luZmNhbGwuYwkyMDEwLTAzLTEyIDE0OjU1OjE5LjAwMDAwMDAwMCArMDEw MAorQEAgLTQxMCw2ICs0MTAsMTggQEAgcnVuX2luZmVyaW9yX2NhbGwgKHN0cnVjdCB0aHJlYWRf aW5mbyAqYworICAgcmV0dXJuIGU7CisgfQorIAorKy8qIEEgY2xlYW51cCBmdW5jdGlvbiB0aGF0 IGRlbGV0ZXMgYSBicmVha3BvaW50LCBpZiBpdCBzdGlsbCBleGlzdHMsCisrICAgZ2l2ZW4gdGhl IGJyZWFrcG9pbnQncyBudW1iZXIuICAqLworKworK3N0YXRpYyB2b2lkCisrZG9fZGVsZXRlX2Jy ZWFrcG9pbnRfYnlfbnVtYmVyICh2b2lkICphcmcpCisreworKyAgaW50ICpudW0gPSBhcmc7Cisr ICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnAgPSBnZXRfYnJlYWtwb2ludCAoKm51bSk7CisrICBpZiAo YnApCisrICAgIGRlbGV0ZV9icmVha3BvaW50IChicCk7CisrfQorKworIC8qIEFsbCB0aGlzIHN0 dWZmIHdpdGggYSBkdW1teSBmcmFtZSBtYXkgc2VlbSB1bm5lY2Vzc2FyaWx5IGNvbXBsaWNhdGVk CisgICAgKHdoeSBub3QganVzdCBzYXZlIHJlZ2lzdGVycyBpbiBHREI/KS4gIFRoZSBwdXJwb3Nl IG9mIHB1c2hpbmcgYSBkdW1teQorICAgIGZyYW1lIHdoaWNoIGxvb2tzIGp1c3QgbGlrZSBhIHJl YWwgZnJhbWUgaXMgc28gdGhhdCBpZiB5b3UgY2FsbCBhCitAQCAtNDQ3LDcgKzQ1OSw4IEBAIGNh bGxfZnVuY3Rpb25fYnlfaGFuZCAoc3RydWN0IHZhbHVlICpmdW4KKyAgIHN0cnVjdCBjbGVhbnVw ICphcmdzX2NsZWFudXA7CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7CisgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaDsKKy0gIHN0cnVjdCBicmVha3BvaW50ICp0ZXJtaW5hdGVfYnAgPSBO VUxMOworKyAgaW50IHRlcm1pbmF0ZV9icF9udW0gPSAwOworKyAgQ09SRV9BRERSIHRlcm1pbmF0 ZV9icF9hZGRyID0gMDsKKyAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqdG07CisgICBzdHJ1Y3Qg Y2xlYW51cCAqdGVybWluYXRlX2JwX2NsZWFudXAgPSBOVUxMOworICAgcHRpZF90IGNhbGxfdGhy ZWFkX3B0aWQ7CitAQCAtNzY1LDggKzc3OCwxMyBAQCBjYWxsX2Z1bmN0aW9uX2J5X2hhbmQgKHN0 cnVjdCB2YWx1ZSAqZnVuCisgICAgICAgIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqdG0gPSBsb29r dXBfbWluaW1hbF9zeW1ib2wgICgic3RkOjp0ZXJtaW5hdGUoKSIsCisgCQkJCQkJCSAgIE5VTEws IE5VTEwpOworICAgICAgICBpZiAodG0gIT0gTlVMTCkKKy0JICAgdGVybWluYXRlX2JwID0gc2V0 X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjCisrCSB7CisrCSAgIHN0cnVjdCBicmVha3BvaW50 ICpicDsKKysJICAgYnAgPSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGNfd2l0aF9udW1i ZXIKKyAJICAgICAoZ2RiYXJjaCwgU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHRtKSwgIGJwX2JyZWFr cG9pbnQpOworKwkgICB0ZXJtaW5hdGVfYnBfbnVtID0gYnAtPm51bWJlcjsKKysJICAgdGVybWlu YXRlX2JwX2FkZHIgPSBicC0+bG9jLT5hZGRyZXNzOworKwkgfQorICAgICAgfQorIAorICAgLyog RXZlcnl0aGluZydzIHJlYWR5LCBwdXNoIGFsbCB0aGUgaW5mbyBuZWVkZWQgdG8gcmVzdG9yZSB0 aGUKK0BAIC03ODAsOCArNzk4LDkgQEAgY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChzdHJ1Y3QgdmFs dWUgKmZ1bgorICAgZGlzY2FyZF9jbGVhbnVwcyAoaW5mX3N0YXR1c19jbGVhbnVwKTsKKyAKKyAg IC8qIFJlZ2lzdGVyIGEgY2xlYW4tdXAgZm9yIHVud2luZF9vbl90ZXJtaW5hdGluZ19leGNlcHRp b25fYnJlYWtwb2ludC4gICovCistICBpZiAodGVybWluYXRlX2JwKQorLSAgICB0ZXJtaW5hdGVf YnBfY2xlYW51cCA9IG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAodGVybWluYXRlX2Jw KTsKKysgIGlmICh0ZXJtaW5hdGVfYnBfbnVtICE9IDApCisrICAgIHRlcm1pbmF0ZV9icF9jbGVh bnVwID0gbWFrZV9jbGVhbnVwIChkb19kZWxldGVfYnJlYWtwb2ludF9ieV9udW1iZXIsCisrCQkJ CQkgJnRlcm1pbmF0ZV9icF9udW0pOworIAorICAgLyogLSBTTklQIC0gU05JUCAtIFNOSVAgLSBT TklQIC0gU05JUCAtIFNOSVAgLSBTTklQIC0gU05JUCAtIFNOSVAgLQorICAgICAgSWYgeW91J3Jl IGxvb2tpbmcgdG8gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBkdW1teS1mcmFtZXMsIHRoZW4KK0BA IC05NDcsOSArOTY2LDkgQEAgV2hlbiB0aGUgZnVuY3Rpb24gaXMgZG9uZSBleGVjdXRpbmcsIEdE QgorIAkJIGluIGFuIGluZmVyaW9yIGZ1bmN0aW9uIGNhbGwuIFJld2luZCwgYW5kIHdhcm4gdGhl CisgCQkgdXNlci4gICovCisgCistCSAgICAgIGlmICh0ZXJtaW5hdGVfYnAgIT0gTlVMTAorKwkg ICAgICBpZiAodGVybWluYXRlX2JwX251bSAhPSAwCisgCQkgICYmIChpbmZlcmlvcl90aHJlYWQg KCktPnN0b3BfYnBzdGF0LT5icmVha3BvaW50X2F0LT5hZGRyZXNzCistCQkgICAgICA9PSB0ZXJt aW5hdGVfYnAtPmxvYy0+YWRkcmVzcykpCisrCQkgICAgICA9PSB0ZXJtaW5hdGVfYnBfYWRkcikp CisgCQl7CisgCQkgIC8qIFdlIG11c3QgZ2V0IGJhY2sgdG8gdGhlIGZyYW1lIHdlIHdlcmUgYmVm b3JlIHRoZQorIAkJICAgICBkdW1teSBjYWxsLiAgKi8KK0BAIC05OTgsNyArMTAxNyw3IEBAIFdo ZW4gdGhlIGZ1bmN0aW9uIGlzIGRvbmUgZXhlY3V0aW5nLCBHREIKKyAKKyAgIC8qIElmIHdlIGdl dCBoZXJlIGFuZCB0aGUgc3RkOjp0ZXJtaW5hdGUoKSBicmVha3BvaW50IGhhcyBiZWVuIHNldCwK KyAgICAgIGl0IGhhcyB0byBiZSBjbGVhbmVkIG1hbnVhbGx5LiAgKi8KKy0gIGlmICh0ZXJtaW5h dGVfYnApCisrICBpZiAodGVybWluYXRlX2JwX251bSAhPSAwKQorICAgICBkb19jbGVhbnVwcyAo dGVybWluYXRlX2JwX2NsZWFudXApOworIAorICAgLyogSWYgd2UgZ2V0IGhlcmUgdGhlIGNhbGxl ZCBGVU5DVElPTiByYW4gdG8gY29tcGxldGlvbiwKCmRpZmYgLS1naXQgYS9nZGItYno1NzA2MzUt cHJldHR5cHJpbnQtZG9jMS5wYXRjaCBiL2dkYi1iejU3MDYzNS1wcmV0dHlwcmludC1kb2MxLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOTEwZjQKLS0tIC9kZXYv bnVsbAorKysgYi9nZGItYno1NzA2MzUtcHJldHR5cHJpbnQtZG9jMS5wYXRjaApAQCAtMCwwICsx LDQwIEBACitSRkE6IHVwZGF0ZSBgcHJpbnQnIGRvY3MKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwMjM2Lmh0bWwKK2h0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItY3ZzLzIwMTAtMDMvbXNnMDAwNDguaHRtbAorCisjIyMgc3JjL2dkYi9kb2MvQ2hh bmdlTG9nCTIwMTAvMDMvMDEgMTc6MTk6MjIJMS4xMDE3CisjIyMgc3JjL2dkYi9kb2MvQ2hhbmdl TG9nCTIwMTAvMDMvMDUgMjA6MDE6MjEJMS4xMDE4CisjIyAtMSwzICsxLDggQEAKKysyMDEwLTAz LTA1ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSogZ2RiLnRleGluZm8g KERhdGEpOiBMaW5rIHRvIHByZXR0eS1wcmludGluZy4KKysJKE91dHB1dCBGb3JtYXRzKTogTGlr ZXdpc2UuICBDb3JyZWN0IHRleHQuCisrCisgMjAxMC0wMy0wMSAgRGFuaWVsIEphY29ib3dpdHog IDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiBnZGIudGV4aW5mbyAoVHlwZXMpOiBEZXNj cmliZSA8c3RydWN0PiBhbmQgPGZsYWdzPi4KKy0tLSBzcmMvZ2RiL2RvYy9nZGIudGV4aW5mbwky MDEwLzAzLzAxIDE3OjE5OjIyCTEuNjc2CisrKysgc3JjL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx MC8wMy8wNSAyMDowMToyMQkxLjY3NworQEAgLTY2NjEsNyArNjY2MSw4IEBACisgY29tbWFuZCAo YWJicmV2aWF0ZWQgQGNvZGV7cH0pLCBvciBpdHMgc3lub255bSBAY29kZXtpbnNwZWN0fS4gIEl0 CisgZXZhbHVhdGVzIGFuZCBwcmludHMgdGhlIHZhbHVlIG9mIGFuIGV4cHJlc3Npb24gb2YgdGhl IGxhbmd1YWdlIHlvdXIKKyBwcm9ncmFtIGlzIHdyaXR0ZW4gaW4gKEBweHJlZntMYW5ndWFnZXMs ICxVc2luZyBAdmFsdWV7R0RCTn0gd2l0aAorLURpZmZlcmVudCBMYW5ndWFnZXN9KS4KKytEaWZm ZXJlbnQgTGFuZ3VhZ2VzfSkuICBJdCBtYXkgYWxzbyBwcmludCB0aGUgZXhwcmVzc2lvbiB1c2lu ZyBhCisrUHl0aG9uLWJhc2VkIHByZXR0eS1wcmludGVyIChAcHhyZWZ7UHJldHR5IFByaW50aW5n fSkuCisgCisgQHRhYmxlIEBjb2RlCisgQGl0ZW0gcHJpbnQgQHZhcntleHByfQorQEAgLTcxNTks OCArNzE2MCwxMCBAQAorIEBpdGVtIHIKKyBAY2luZGV4IHJhdyBwcmludGluZworIFByaW50IHVz aW5nIHRoZSBAc2FtcHtyYXd9IGZvcm1hdHRpbmcuICBCeSBkZWZhdWx0LCBAdmFsdWV7R0RCTn0g d2lsbAorLXVzZSBhIHR5cGUtc3BlY2lmaWMgcHJldHR5LXByaW50ZXIuICBUaGUgQHNhbXB7cn0g Zm9ybWF0IGJ5cGFzc2VzIGFueQorLXByZXR0eS1wcmludGVyIHdoaWNoIG1pZ2h0IGV4aXN0IGZv ciB0aGUgdmFsdWUncyB0eXBlLgorK3VzZSBhIFB5dGhvbi1iYXNlZCBwcmV0dHktcHJpbnRlciwg aWYgb25lIGlzIGF2YWlsYWJsZSAoQHB4cmVme1ByZXR0eQorK1ByaW50aW5nfSkuICBUaGlzIHR5 cGljYWxseSByZXN1bHRzIGluIGEgaGlnaGVyLWxldmVsIGRpc3BsYXkgb2YgdGhlCisrdmFsdWUn cyBjb250ZW50cy4gIFRoZSBAc2FtcHtyfSBmb3JtYXQgYnlwYXNzZXMgYW55IFB5dGhvbgorK3By ZXR0eS1wcmludGVyIHdoaWNoIG1pZ2h0IGV4aXN0LgorIEBlbmQgdGFibGUKKyAKKyBGb3IgZXhh bXBsZSwgdG8gcHJpbnQgdGhlIHByb2dyYW0gY291bnRlciBpbiBoZXggKEBweHJlZntSZWdpc3Rl cnN9KSwgdHlwZQoKZGlmZiAtLWdpdCBhL2dkYi1iejU3MDYzNS1wcmV0dHlwcmludC1kb2MyLnBh dGNoIGIvZ2RiLWJ6NTcwNjM1LXByZXR0eXByaW50LWRvYzIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYWE3NmZlMQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU3 MDYzNS1wcmV0dHlwcmludC1kb2MyLnBhdGNoCkBAIC0wLDAgKzEsMTgyIEBACitSZTogW3BhdGNo XSBkb2MtcHl0aG9uOiBQcmV0dHkgUHJpbnRpbmcgc3BsaXQgdXNlciAvIGRldmVsb3BlcgoraHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDQvbXNnMDA3NTcuaHRtbAor aHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMC0wNC9tc2cwMDIyMS5odG1sCisK K1sgQmFja3BvcnRlZCBmb3IgRmVkb3JhLiAgXQorCisjIyMgc3JjL2dkYi9kb2MvQ2hhbmdlTG9n CTIwMTAvMDQvMjIgMDQ6MDk6MjUJMS4xMDUzCisjIyMgc3JjL2dkYi9kb2MvQ2hhbmdlTG9nCTIw MTAvMDQvMjIgMTY6MzI6NDMJMS4xMDU0CisjIyAtMSwzICsxLDE0IEBACisrMjAxMC0wNC0yMiAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKworKwkqIGdkYi50 ZXhpbmZvIChEYXRhKTogTmV3IEBtZW51IHJlZmVyZW5jZSB0byBQcmV0dHkgUHJpbnRpbmcuCisr CShQeXRob24gQVBJKTogQ2hhbmdlIHRoZSByZWZlcmVuY2UgdG8gUHJldHR5IFByaW50aW5nIEFQ SS4KKysJKFByZXR0eSBQcmludGluZyk6IE1vdmUgdGhlIHVzZXIgcGFydCB1bmRlciB0aGUgRGF0 YSBub2RlLiAgUmVmb3JtYXQKKysJdGhlIHNhbXBsZSBvdXRwdXQgdG8gNzIgY29sdW1ucy4gIENy ZWF0ZSBhIG5ldyByZWZlcmVuY2UgdG8gUHJldHR5CisrCVByaW50aW5nIEFQSS4gIFJlbmFtZSB0 aGUgQVBJIHBhcnQgLi4uCisrCShQcmV0dHkgUHJpbnRpbmcgQVBJKTogVG8gYSBuZXcgbm9kZSBu YW1lLgorKwkoU2VsZWN0aW5nIFByZXR0eS1QcmludGVycywgUHJvZ3NwYWNlcyBJbiBQeXRob24s IE9iamZpbGVzIEluIFB5dGhvbikKKysJKEdEQi9NSSBWYXJpYWJsZSBPYmplY3RzKTogQ2hhbmdl IHJlZmVyZW5jZXMgdG8gUHJldHR5IFByaW50aW5nIEFQSS4KKysKKyAyMDEwLTA0LTIxICBTdGFu IFNoZWJzICA8c3RhbkBjb2Rlc291cmNlcnkuY29tPgorIAorIAkqIGdkYi50ZXhpbmZvIChUcmFj ZXBvaW50IEFjdGlvbnMpOiBNZW50aW9uIHN5bm9ueW15IG9mIGFjdGlvbnMKKy0tLSBnZGItNy4x L2dkYi9kb2MvZ2RiLnRleGluZm8ub3JpZwkyMDEwLTA0LTIyIDE5OjA4OjMwLjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi03LjEvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTA0LTIyIDE5OjEwOjQx LjAwMDAwMDAwMCArMDIwMAorQEAgLTY3MjcsNiArNjcyNyw3IEBAIFRhYmxlfS4KKyAqIE1lbW9y eTo6ICAgICAgICAgICAgICAgICAgICAgIEV4YW1pbmluZyBtZW1vcnkKKyAqIEF1dG8gRGlzcGxh eTo6ICAgICAgICAgICAgICAgIEF1dG9tYXRpYyBkaXNwbGF5CisgKiBQcmludCBTZXR0aW5nczo6 ICAgICAgICAgICAgICBQcmludCBzZXR0aW5ncworKyogUHJldHR5IFByaW50aW5nOjogICAgICAg ICAgICAgUHl0aG9uIHByZXR0eSBwcmludGluZworICogVmFsdWUgSGlzdG9yeTo6ICAgICAgICAg ICAgICAgVmFsdWUgaGlzdG9yeQorICogQ29udmVuaWVuY2UgVmFyczo6ICAgICAgICAgICAgQ29u dmVuaWVuY2UgdmFyaWFibGVzCisgKiBSZWdpc3RlcnM6OiAgICAgICAgICAgICAgICAgICBSZWdp c3RlcnMKK0BAIC03ODk3LDYgKzc4OTgsNDIgQEAgRG8gbm90IHByZXR0eSBwcmludCBDQHR7Kyt9 IHZpcnR1YWwgZnVuYworIFNob3cgd2hldGhlciBDQHR7Kyt9IHZpcnR1YWwgZnVuY3Rpb24gdGFi bGVzIGFyZSBwcmV0dHkgcHJpbnRlZCwgb3Igbm90LgorIEBlbmQgdGFibGUKKyAKKytAbm9kZSBQ cmV0dHkgUHJpbnRpbmcKKytAc2VjdGlvbiBQcmV0dHkgUHJpbnRpbmcKKysKKytAdmFsdWV7R0RC Tn0gcHJvdmlkZXMgYSBtZWNoYW5pc20gdG8gYWxsb3cgcHJldHR5LXByaW50aW5nIG9mIHZhbHVl cyB1c2luZworK1B5dGhvbiBjb2RlLiAgSXQgZ3JlYXRseSBzaW1wbGlmaWVzIHRoZSBkaXNwbGF5 IG9mIGNvbXBsZXggb2JqZWN0cy4gIFRoaXMKKyttZWNoYW5pc20gd29ya3MgZm9yIGJvdGggTUkg YW5kIHRoZSBDTEkuCisrCisrRm9yIGV4YW1wbGUsIGhlcmUgaXMgaG93IGEgQ0B0eysrfSBAY29k ZXtzdGQ6OnN0cmluZ30gbG9va3Mgd2l0aG91dCBhCisrcHJldHR5LXByaW50ZXI6CisrCisrQHNt YWxsZXhhbXBsZQorKyhAdmFsdWV7R0RCUH0pIHByaW50IHMKKyskMSA9IEB7CisrICBzdGF0aWMg bnBvcyA9IDQyOTQ5NjcyOTUsIAorKyAgX01fZGF0YXBsdXMgPSBAeworKyAgICA8c3RkOjphbGxv Y2F0b3I8Y2hhcj4+ID0gQHsKKysgICAgICA8X19nbnVfY3h4OjpuZXdfYWxsb2NhdG9yPGNoYXI+ PiA9IEB7CisrICAgICAgICA8Tm8gZGF0YSBmaWVsZHM+QH0sIDxObyBkYXRhIGZpZWxkcz4KKysg ICAgICBAfSwKKysgICAgbWVtYmVycyBvZiBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNo YXJfdHJhaXRzPGNoYXI+LAorKyAgICAgIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9BbGxvY19o aWRlcjoKKysgICAgX01fcCA9IDB4ODA0YTAxNCAiYWJjZCIKKysgIEB9CisrQH0KKytAZW5kIHNt YWxsZXhhbXBsZQorKworK1dpdGggYSBwcmV0dHktcHJpbnRlciBmb3IgQGNvZGV7c3RkOjpzdHJp bmd9IG9ubHkgdGhlIGNvbnRlbnRzIGFyZSBwcmludGVkOgorKworK0BzbWFsbGV4YW1wbGUKKyso QHZhbHVle0dEQlB9KSBwcmludCBzCisrJDIgPSAiYWJjZCIKKytAZW5kIHNtYWxsZXhhbXBsZQor KworK0ZvciBpbXBsZW1lbnRpbmcgcHJldHR5IHByaW50ZXJzIGZvciBuZXcgdHlwZXMgeW91IHNo b3VsZCByZWFkIHRoZSBQeXRob24gQVBJCisrZGV0YWlscyAoQHB4cmVme1ByZXR0eSBQcmludGlu ZyBBUEl9KS4KKysKKyBAbm9kZSBWYWx1ZSBIaXN0b3J5CisgQHNlY3Rpb24gVmFsdWUgSGlzdG9y eQorIAorQEAgLTE5NjA4LDggKzE5NjQ1LDggQEAgc2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtL ZXlib2FyZEludGVycgorICogRXhjZXB0aW9uIEhhbmRsaW5nOjoKKyAqIEF1dG8tbG9hZGluZzo6 ICAgICAgICAgICAgICAgIEF1dG9tYXRpY2FsbHkgbG9hZGluZyBQeXRob24gY29kZS4KKyAqIFZh bHVlcyBGcm9tIEluZmVyaW9yOjoJUHl0aG9uIHJlcHJlc2VudGF0aW9uIG9mIHZhbHVlcy4KKy0q IFR5cGVzIEluIFB5dGhvbjo6CQlQeXRob24gcmVwcmVzZW50YXRpb24gb2YgdHlwZXMuCistKiBQ cmV0dHkgUHJpbnRpbmc6OgkJUHJldHR5LXByaW50aW5nIHZhbHVlcy4KKysqIFR5cGVzIEluIFB5 dGhvbjo6ICAgICAgICAgICAgIFB5dGhvbiByZXByZXNlbnRhdGlvbiBvZiB0eXBlcy4KKysqIFBy ZXR0eSBQcmludGluZyBBUEk6OiAgICAgICAgIFByZXR0eS1wcmludGluZyB2YWx1ZXMuCisgKiBT ZWxlY3RpbmcgUHJldHR5LVByaW50ZXJzOjogICBIb3cgR0RCIGNob29zZXMgYSBwcmV0dHktcHJp bnRlci4KKyAqIEluZmVyaW9ycyBJbiBQeXRob246OgkJUHl0aG9uIHJlcHJlc2VudGF0aW9uIG9m IGluZmVyaW9ycyAocHJvY2Vzc2VzKQorICogVGhyZWFkcyBJbiBQeXRob246OiAgICAgICAgICAg QWNjZXNzaW5nIGluZmVyaW9yIHRocmVhZHMgZnJvbSBQeXRob24uCitAQCAtMjAyNDEsMzcgKzIw Mjc4LDEwIEBAIEEgZnVuY3Rpb24gaW50ZXJuYWwgdG8gQHZhbHVle0dEQk59LiAgVGgKKyBjb252 ZW5pZW5jZSBmdW5jdGlvbnMuCisgQGVuZCB0YWJsZQorIAorLUBub2RlIFByZXR0eSBQcmludGlu ZworLUBzdWJzdWJzZWN0aW9uIFByZXR0eSBQcmludGluZworLQorLUB2YWx1ZXtHREJOfSBwcm92 aWRlcyBhIG1lY2hhbmlzbSB0byBhbGxvdyBwcmV0dHktcHJpbnRpbmcgb2YgdmFsdWVzCistdXNp bmcgUHl0aG9uIGNvZGUuICBUaGUgcHJldHR5LXByaW50ZXIgQVBJIGFsbG93cyBhcHBsaWNhdGlv bi1zcGVjaWZpYworLWNvZGUgdG8gZ3JlYXRseSBzaW1wbGlmeSB0aGUgZGlzcGxheSBvZiBjb21w bGV4IG9iamVjdHMuICBUaGlzCistbWVjaGFuaXNtIHdvcmtzIGZvciBib3RoIE1JIGFuZCB0aGUg Q0xJLgorLQorLUZvciBleGFtcGxlLCBoZXJlIGlzIGhvdyBhIENAdHsrK30gQGNvZGV7c3RkOjpz dHJpbmd9IGxvb2tzIHdpdGhvdXQgYQorLXByZXR0eS1wcmludGVyOgorK0Bub2RlIFByZXR0eSBQ cmludGluZyBBUEkKKytAc3Vic3Vic2VjdGlvbiBQcmV0dHkgUHJpbnRpbmcgQVBJCisgCistQHNt YWxsZXhhbXBsZQorLShAdmFsdWV7R0RCUH0pIHByaW50IHMKKy0kMSA9IEB7CistICBzdGF0aWMg bnBvcyA9IDQyOTQ5NjcyOTUsIAorLSAgX01fZGF0YXBsdXMgPSBAeworLSAgICA8c3RkOjphbGxv Y2F0b3I8Y2hhcj4+ID0gQHsKKy0gICAgICA8X19nbnVfY3h4OjpuZXdfYWxsb2NhdG9yPGNoYXI+ PiA9IEB7PE5vIGRhdGEgZmllbGRzPkB9LCA8Tm8gZGF0YSBmaWVsZHM+QH0sIAorLSAgICBtZW1i ZXJzIG9mIHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0 ZDo6YWxsb2NhdG9yPGNoYXI+ID46Ol9BbGxvY19oaWRlcjogCistICAgIF9NX3AgPSAweDgwNGEw MTQgImFiY2QiCistICBAfQorLUB9CistQGVuZCBzbWFsbGV4YW1wbGUKKy0KKy1BZnRlciBhIHBy ZXR0eS1wcmludGVyIGZvciBAY29kZXtzdGQ6OnN0cmluZ30gaGFzIGJlZW4gaW5zdGFsbGVkLCBv bmx5CistdGhlIGNvbnRlbnRzIGFyZSBwcmludGVkOgorLQorLUBzbWFsbGV4YW1wbGUKKy0oQHZh bHVle0dEQlB9KSBwcmludCBzCistJDIgPSAiYWJjZCIKKy1AZW5kIHNtYWxsZXhhbXBsZQorK0Fu IGV4YW1wbGUgb3V0cHV0IGlzIHByb3ZpZGVkIChAcHhyZWZ7UHJldHR5IFByaW50aW5nfSkuCisg CisgQSBwcmV0dHktcHJpbnRlciBpcyBqdXN0IGFuIG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUg YW5kIGltcGxlbWVudHMgYQorIHNwZWNpZmljIGludGVyZmFjZSwgZGVmaW5lZCBoZXJlLgorQEAg LTIwMzU5LDcgKzIwMzY5LDcgQEAgYXR0cmlidXRlLgorIAorIEEgZnVuY3Rpb24gb24gb25lIG9m IHRoZXNlIGxpc3RzIGlzIHBhc3NlZCBhIHNpbmdsZSBAY29kZXtnZGIuVmFsdWV9CisgYXJndW1l bnQgYW5kIHNob3VsZCByZXR1cm4gYSBwcmV0dHktcHJpbnRlciBvYmplY3QgY29uZm9ybWluZyB0 byB0aGUKKy1pbnRlcmZhY2UgZGVmaW5pdGlvbiBhYm92ZSAoQHB4cmVme1ByZXR0eSBQcmludGlu Z30pLiAgSWYgYSBmdW5jdGlvbgorK2ludGVyZmFjZSBkZWZpbml0aW9uIGFib3ZlIChAcHhyZWZ7 UHJldHR5IFByaW50aW5nIEFQSX0pLiAgSWYgYSBmdW5jdGlvbgorIGNhbm5vdCBjcmVhdGUgYSBw cmV0dHktcHJpbnRlciBmb3IgdGhlIHZhbHVlLCBpdCBzaG91bGQgcmV0dXJuCisgQGNvZGV7Tm9u ZX0uCisgCitAQCAtMjA0MzYsNyArMjA0NDYsNyBAQCBwcmludGVycyB3aXRoIGEgc3BlY2lmaWMg b2JqZmlsZSwgQHZhbHVlCisgcHJpbnRlcnMgZm9yIHRoZSBzcGVjaWZpYyB2ZXJzaW9uIG9mIHRo ZSBsaWJyYXJ5IHVzZWQgYnkgZWFjaAorIGluZmVyaW9yLgorIAorLVRvIGNvbnRpbnVlIHRoZSBA Y29kZXtzdGQ6OnN0cmluZ30gZXhhbXBsZSAoQHB4cmVme1ByZXR0eSBQcmludGluZ30pLAorK1Rv IGNvbnRpbnVlIHRoZSBAY29kZXtzdGQ6OnN0cmluZ30gZXhhbXBsZSAoQHB4cmVme1ByZXR0eSBQ cmludGluZyBBUEl9KSwKKyB0aGlzIGNvZGUgbWlnaHQgYXBwZWFyIGluIEBjb2Rle2dkYi5saWJz dGRjeHgudjZ9OgorIAorIEBzbWFsbGV4YW1wbGUKK0BAIC0yMTA0OCw3ICsyMTA1OCw3IEBAIFRo ZSBAY29kZXtwcmV0dHlfcHJpbnRlcnN9IGF0dHJpYnV0ZSBpcyAKKyB1c2VkIHRvIGxvb2sgdXAg cHJldHR5LXByaW50ZXJzLiAgQSBAY29kZXtWYWx1ZX0gaXMgcGFzc2VkIHRvIGVhY2gKKyBmdW5j dGlvbiBpbiBvcmRlcjsgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgQGNvZGV7Tm9uZX0sIHRoZW4g dGhlCisgc2VhcmNoIGNvbnRpbnVlcy4gIE90aGVyd2lzZSwgdGhlIHJldHVybiB2YWx1ZSBzaG91 bGQgYmUgYW4gb2JqZWN0Cistd2hpY2ggaXMgdXNlZCB0byBmb3JtYXQgdGhlIHZhbHVlLiAgQHhy ZWZ7UHJldHR5IFByaW50aW5nfSwgZm9yIG1vcmUKKyt3aGljaCBpcyB1c2VkIHRvIGZvcm1hdCB0 aGUgdmFsdWUuICBAeHJlZntQcmV0dHkgUHJpbnRpbmcgQVBJfSwgZm9yIG1vcmUKKyBpbmZvcm1h dGlvbi4KKyBAZW5kIGRlZml2YXIKKyAKK0BAIC0yNDg3NSw3ICsyNDg4NSw3IEBAIHRoZW4gdGhp cyBhdHRyaWJ1dGUgd2lsbCBub3QgYmUgcHJlc2VudC4KKyBAaXRlbSBkaXNwbGF5aGludAorIEEg ZHluYW1pYyB2YXJvYmogY2FuIHN1cHBseSBhIGRpc3BsYXkgaGludCB0byB0aGUgZnJvbnQgZW5k LiAgVGhlCisgdmFsdWUgY29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgUHl0aG9uIHByZXR0eS1wcmlu dGVyIG9iamVjdCdzCistQGNvZGV7ZGlzcGxheV9oaW50fSBtZXRob2QuICBAeHJlZntQcmV0dHkg UHJpbnRpbmd9LgorK0Bjb2Rle2Rpc3BsYXlfaGludH0gbWV0aG9kLiAgQHhyZWZ7UHJldHR5IFBy aW50aW5nIEFQSX0uCisgQGVuZCB0YWJsZQorIAorIFR5cGljYWwgb3V0cHV0IHdpbGwgbG9vayBs aWtlIHRoaXM6CitAQCAtMjUwNDcsNyArMjUwNTcsNyBAQCBUaGUgcmVzdWx0IG1heSBoYXZlIGl0 cyBvd24gYXR0cmlidXRlczoKKyBAaXRlbSBkaXNwbGF5aGludAorIEEgZHluYW1pYyB2YXJvYmog Y2FuIHN1cHBseSBhIGRpc3BsYXkgaGludCB0byB0aGUgZnJvbnQgZW5kLiAgVGhlCisgdmFsdWUg Y29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgUHl0aG9uIHByZXR0eS1wcmludGVyIG9iamVjdCdzCist QGNvZGV7ZGlzcGxheV9oaW50fSBtZXRob2QuICBAeHJlZntQcmV0dHkgUHJpbnRpbmd9LgorK0Bj b2Rle2Rpc3BsYXlfaGludH0gbWV0aG9kLiAgQHhyZWZ7UHJldHR5IFByaW50aW5nIEFQSX0uCisg CisgQGl0ZW0gaGFzX21vcmUKKyBUaGlzIGlzIGFuIGludGVnZXIgYXR0cmlidXRlIHdoaWNoIGlz IG5vbnplcm8gaWYgdGhlcmUgYXJlIGNoaWxkcmVuCitAQCAtMjU0MTEsNyArMjU0MjEsNyBAQCBz aW5nbGUgYXJndW1lbnQuICBAdmFsdWV7R0RCTn0gd2lsbCBjYWxsCisgdGhlIHZhcm9iaiBAdmFy e25hbWV9IGFzIGFuIGFyZ3VtZW50ICh0aGlzIGlzIGRvbmUgc28gdGhhdCB0aGUgc2FtZQorIFB5 dGhvbiBwcmV0dHktcHJpbnRpbmcgY29kZSBjYW4gYmUgdXNlZCBmb3IgYm90aCB0aGUgQ0xJIGFu ZCBNSSkuCisgV2hlbiBjYWxsZWQsIHRoaXMgb2JqZWN0IG11c3QgcmV0dXJuIGFuIG9iamVjdCB3 aGljaCBjb25mb3JtcyB0byB0aGUKKy1wcmV0dHktcHJpbnRpbmcgaW50ZXJmYWNlIChAcHhyZWZ7 UHJldHR5IFByaW50aW5nfSkuCisrcHJldHR5LXByaW50aW5nIGludGVyZmFjZSAoQHB4cmVme1By ZXR0eSBQcmludGluZyBBUEl9KS4KKyAKKyBUaGUgcHJlLWRlZmluZWQgZnVuY3Rpb24gQGNvZGV7 Z2RiLmRlZmF1bHRfdmlzdWFsaXplcn0gbWF5IGJlIHVzZWQgdG8KKyBzZWxlY3QgYSB2aXN1YWxp emVyIGJ5IGZvbGxvd2luZyB0aGUgYnVpbHQtaW4gcHJvY2VzcwoKZGlmZiAtLWdpdCBhL2dkYi1i ejU3NDQ4My1kaXNwbGF5LXNlcGRlYnVnLnBhdGNoIGIvZ2RiLWJ6NTc0NDgzLWRpc3BsYXktc2Vw ZGVidWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRkZGZhNwot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU3NDQ4My1kaXNwbGF5LXNlcGRlYnVnLnBhdGNoCkBA IC0wLDAgKzEsNzMgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEw LTA0L21zZzAwMDU1Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaF0gRml4IGRhbmdsaW5nIGRpc3BsYXlz IGluIHNlcGFyYXRlIGRlYnVnCisKK1sgQmFja3BvcnRlZC4gIF0KKworSGksCisKK2dkYi5iYXNl L3NvbGliLWRpc3BsYXkuZXhwIHVzaW5nIF9zZXBhcmF0ZV8gZGVidWcgaW5mbzoKKzM6IGNfZ2xv YmFsID0gZ2RidHlwZXMuYzoxMzY5OiBpbnRlcm5hbC1lcnJvcjogY2hlY2tfdHlwZWRlZjogQXNz ZXJ0aW9uIGB0eXBlJyBmYWlsZWQuCitBIHByb2JsZW0gaW50ZXJuYWwgdG8gR0RCIGhhcyBiZWVu IGRldGVjdGVkLAorCitUaGlzIHByb2JsZW0gd2FzIGZpeGVkIGJlZm9yZSBieToKKwlbcGF0Y2gg MS84XSBUeXBlcyBHQyBbdW5sb2FkaW5nIG9ic2VydmVyXQorCWh0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItcGF0Y2hlcy8yMDA5LTA1L21zZzAwNTQ0Lmh0bWwKKwlSZTogW3BhdGNoIDMvOF0g VHlwZXMgR0MgW2Rpc3BsYXlfdXNlc19zb2xpYl9wIHRvIGV4cF9pdGVyYXRlXQorCWh0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTA3L21zZzAwMDU0Lmh0bWwKKworYnV0 IGFzIHRoYXQgcGF0Y2hzZXQgaXMgc3RpbGwgbm90IGluIHByb3ZpZGluZyB0aGlzIHRlbXBvcmFy eSBmaXh1cCBpbnN0ZWFkLgorCitPbmUgbWF5IG9ubHkgYWRkcmVzcyB0aGF0IGdkYi5iYXNlL3Nv bGliLWRpc3BsYXkuZXhwIHdhcyB0ZXN0aW5nIHN5bWJvbAoraW4tb2JqZmlsZSB3aGlsZSBub3cg aXQgdGVzdHMgb25seSBzeW1ib2wgaW4tc2VwZGVidWctb2JqZmlsZSBhbmQgbm8gbG9uZ2VyCit0 aGUgaW4tb2JqZmlsZSBjYXNlLiAgSSBmaW5kIHRoZSBpbi1zZXBkZWJ1Zy1vYmpmaWxlIGFzIGEg c3VwZXJzZXQgb2YKK2luLW9iamZpbGUgdGVzdCBidXQgSSBjYW4gcmV3b3JrIGl0IGlmIGFueW9u ZXMgYWRkcmVzc2VzIHRoaXMgdGVzdCBjaGFuZ2UuCisKK05vIHJlZ3Jlc3Npb25zIG9uIHt4ODZf NjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmExMi1saW51eC1nbnUuCisKKworVGhhbmtzLAorSmFu CisKKworZ2RiLworMjAxMC0wNC0wMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgorCisJKiBwcmludGNtZC5jIChkaXNwbGF5X3VzZXNfc29saWJfcCk6IENoZWNr IGFsc28KKwlTRVBBUkFURV9ERUJVR19PQkpGSUxFLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0w NC0wMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBn ZGIuYmFzZS9zb2xpYi1kaXNwbGF5LmV4cCAoc3BsaXQgc29saWIpOiBOZXcuCisKKy0tLSBhL2dk Yi9wcmludGNtZC5jCisrKysgYi9nZGIvcHJpbnRjbWQuYworQEAgLTE4NDUsNyArMTg0NSwxMCBA QCBjbGVhcl9kYW5nbGluZ19kaXNwbGF5X2V4cHJlc3Npb25zIChzdHJ1CisgCisgICBmb3IgKGQg PSBkaXNwbGF5X2NoYWluOyBkICE9IE5VTEw7IGQgPSBkLT5uZXh0KQorICAgICBpZiAoYmxvY2tf b2JqZmlsZSAoZC0+YmxvY2spID09IG9iamZpbGUKKy0JfHwgKGQtPmV4cCAmJiBleHBfdXNlc19v YmpmaWxlIChkLT5leHAsIG9iamZpbGUpKSkKKysJfHwgKGQtPmV4cCAmJiBleHBfdXNlc19vYmpm aWxlIChkLT5leHAsIG9iamZpbGUpKQorKwl8fCAob2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2Jq ZmlsZQorKwkgICAgJiYgKGJsb2NrX29iamZpbGUgKGQtPmJsb2NrKSA9PSBvYmpmaWxlLT5zZXBh cmF0ZV9kZWJ1Z19vYmpmaWxlCisrCQl8fCAoZC0+ZXhwICYmIGV4cF91c2VzX29iamZpbGUgKGQt PmV4cCwgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSkpKSkpCisgICAgICAgeworIAl4 ZnJlZSAoZC0+ZXhwKTsKKyAJZC0+ZXhwID0gTlVMTDsKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2Uvc29saWItZGlzcGxheS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29s aWItZGlzcGxheS5leHAKK0BAIC01Myw2ICs1MywxMyBAQCBpZiB7IFtnZGJfY29tcGlsZV9zaGxp YiAke3NyY2ZpbGVfbGlifSAke2JpbmZpbGVfbGlifSAkbGliX2ZsYWdzXSAhPSAiIgorICAgcmV0 dXJuIC0xCisgfQorIAorK3NldCB0ZXN0ICJzcGxpdCBzb2xpYiIKKytpZiB7W2dkYl9nbnVfc3Ry aXBfZGVidWcgJGJpbmZpbGVfbGliXSAhPSAwfSB7CisrICAgIGZhaWwgJHRlc3QKKyt9IGVsc2Ug eworKyAgICBwYXNzICR0ZXN0CisrfQorKworIGdkYl9leGl0CisgZ2RiX3N0YXJ0CisgZ2RiX3Jl aW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisKCmRpZmYgLS1naXQgYS9nZGItYno1NzUy OTItZGVsYXllZC1waHlzbmFtZS5wYXRjaCBiL2dkYi1iejU3NTI5Mi1kZWxheWVkLXBoeXNuYW1l LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MGQ1MmQKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItYno1NzUyOTItZGVsYXllZC1waHlzbmFtZS5wYXRjaApAQCAtMCww ICsxLDYyNCBAQAorTWFkZSBtb3JlIHNhZmUgKGJ1dCBsZXNzIGVmZmVjdGl2ZSkgYnkgdXNpbmcg YSBsaW5rZWQgbGlzdC4KKworQmFzZWQgb246CisJUmU6IFtSRkFdIERlbGF5ZWQgcGh5c25hbWUg Y29tcHV0YXRpb24KKwlodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0w NS9tc2cwMDI0OC5odG1sCisKK05laXRoZXIgaXRzIG9ic3RhY2stbGVhay5wYXRjaCBub3IKKwlb cGF0Y2hdIEZpeCBkdXBsaWNhdGUgdHlwZXMgZm9yIHNpbmdsZSBESUUKKwlodHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wNS9tc2cwMDI3MS5odG1sCitpcyBuZWVkZWQg YXMgdGhlIGxpbmtlZCBsaXN0IGlzIHVzZWQgaW5zdGVhZC4KKworLS0tIC4vZ2RiL2R3YXJmMnJl YWQuYwkyMDEwLTA1LTEzIDE4OjI2OjIyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2R3YXJm MnJlYWQuYwkyMDEwLTA1LTEzIDE4OjQ1OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTI1MSw2ICsy NTEsMjggQEAgc3RydWN0IGNvbXBfdW5pdF9oZWFkCisgICB1bnNpZ25lZCBpbnQgZmlyc3RfZGll X29mZnNldDsKKyB9OworIAorKy8qIFR5cGUgdXNlZCBmb3IgZGVsYXlpbmcgY29tcHV0YXRpb24g b2YgbWV0aG9kIHBoeXNuYW1lcy4KKysgICBTZWUgY29tbWVudHMgZm9yIGNvbXB1dGVfZGVsYXll ZF9waHlzbmFtZXMuICAqLworK3N0cnVjdCBkZWxheWVkX21ldGhvZF9pbmZvCisreworKyAgc3Ry dWN0IGRlbGF5ZWRfbWV0aG9kX2luZm8gKm5leHQ7CisrCisrICAvKiBUaGUgdHlwZSB0byB3aGlj aCB0aGUgbWV0aG9kIGlzIGF0dGFjaGVkLCBpLmUuLCBpdHMgcGFyZW50IGNsYXNzLiAgKi8KKysg IHN0cnVjdCB0eXBlICp0eXBlOworKworKyAgLyogVGhlIGluZGV4IG9mIHRoZSBtZXRob2QgaW4g dGhlIHR5cGUncyBmdW5jdGlvbiBmaWVsZGxpc3RzLiAgKi8KKysgIGludCBmbmZpZWxkX2luZGV4 OworKworKyAgLyogVGhlIGluZGV4IG9mIHRoZSBtZXRob2QgaW4gdGhlIGZpZWxkbGlzdC4gICov CisrICBpbnQgaW5kZXg7CisrCisrICAvKiBUaGUgbmFtZSBvZiB0aGUgRElFLiAgKi8KKysgIGNv bnN0IGNoYXIgKm5hbWU7CisrCisrICAvKiAgVGhlIERJRSBhc3NvY2lhdGVkIHdpdGggdGhpcyBt ZXRob2QuICAqLworKyAgc3RydWN0IGRpZV9pbmZvICpkaWU7CisrfTsKKysKKyAvKiBJbnRlcm5h bCBzdGF0ZSB3aGVuIGRlY29kaW5nIGEgcGFydGljdWxhciBjb21waWxhdGlvbiB1bml0LiAgKi8K KyBzdHJ1Y3QgZHdhcmYyX2N1CisgeworQEAgLTMyOSw2ICszNTEsMTAgQEAgc3RydWN0IGR3YXJm Ml9jdQorICAgLyogSGVhZGVyIGRhdGEgZnJvbSB0aGUgbGluZSB0YWJsZSwgZHVyaW5nIGZ1bGwg c3ltYm9sIHByb2Nlc3NpbmcuICAqLworICAgc3RydWN0IGxpbmVfaGVhZGVyICpsaW5lX2hlYWRl cjsKKyAKKysgIC8qIEEgbGlzdCBvZiBtZXRob2RzIHdoaWNoIG5lZWQgdG8gaGF2ZSBwaHlzbmFt ZXMgY29tcHV0ZWQKKysgICAgIGFmdGVyIGFsbCB0eXBlIGluZm9ybWF0aW9uIGhhcyBiZWVuIHJl YWQuICAqLworKyAgc3RydWN0IGRlbGF5ZWRfbWV0aG9kX2luZm8gKm1ldGhvZF9saXN0OworKwor ICAgLyogTWFyayB1c2VkIHdoZW4gcmVsZWFzaW5nIGNhY2hlZCBkaWVzLiAgKi8KKyAgIHVuc2ln bmVkIGludCBtYXJrIDogMTsKKyAKK0BAIC0xMjA4LDYgKzEyMzQsOSBAQCBzdGF0aWMgdm9pZCBk ZXN0cm95X3NlY3Rpb24gKHN0cnVjdCBkd2FyCisgc3RhdGljIHN0cnVjdCBkd2FyZjJfbG9jZXhw cl9iYXRvbiAqZHdhcmYyX2F0dHJfdG9fbG9jZXhwcl9iYXRvbgorICAgKHN0cnVjdCBhdHRyaWJ1 dGUgKmF0dHIsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKKyAKKytzdGF0aWMgY29uc3QgY2hhciAq ZHdhcmYyX3BoeXNuYW1lIChjaGFyICpuYW1lLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKysJCQkJ ICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKKysKKyAvKiBUcnkgdG8gbG9jYXRlIHRoZSBzZWN0 aW9ucyB3ZSBuZWVkIGZvciBEV0FSRiAyIGRlYnVnZ2luZworICAgIGluZm9ybWF0aW9uIGFuZCBy ZXR1cm4gdHJ1ZSBpZiB3ZSBoYXZlIGVub3VnaCB0byBkbyBzb21ldGhpbmcuICAqLworIAorQEAg LTM0MzUsNiArMzQ2NCw1OCBAQCBsb2FkX2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Bl cl9jCisgICBkaXNjYXJkX2NsZWFudXBzIChmcmVlX2N1X2NsZWFudXApOworIH0KKyAKKysvKiBB ZGQgYSBESUUgdG8gdGhlIGRlbGF5ZWQgcGh5c25hbWUgbGlzdC4gICovCisrc3RhdGljIHZvaWQK KythZGRfdG9fbWV0aG9kX2xpc3QgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZm5maWVsZF9pbmRl eCwgaW50IGluZGV4LAorKwkJICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkaWVfaW5mbyAq ZGllLAorKwkJICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sKKysgIHN0cnVjdCBkZWxheWVk X21ldGhvZF9pbmZvICptaTsKKysKKysgIG1pID0geG1hbGxvYyAoc2l6ZW9mICgqbWkpKTsKKysg IG1pLT5uZXh0ID0gY3UtPm1ldGhvZF9saXN0OworKyAgY3UtPm1ldGhvZF9saXN0ID0gbWk7Cisr ICBtaS0+dHlwZSA9IHR5cGU7CisrICBtaS0+Zm5maWVsZF9pbmRleCA9IGZuZmllbGRfaW5kZXg7 CisrICBtaS0+aW5kZXggPSBpbmRleDsKKysgIG1pLT5uYW1lID0gbmFtZTsKKysgIG1pLT5kaWUg PSBkaWU7CisrfQorKworKy8qIENvbXB1dGUgdGhlIHBoeXNuYW1lcyBvZiBhbnkgbWV0aG9kcyBv biB0aGUgQ1UncyBtZXRob2QgbGlzdC4KKysKKysgICBUaGUgY29tcHV0YXRpb24gb2YgbWV0aG9k IHBoeXNuYW1lcyBpcyBkZWxheWVkIGluIG9yZGVyIHRvIGF2b2lkIHRoZQorKyAgIChiYWQpIGNv bmRpdGlvbiB0aGF0IG9uZSBvZiB0aGUgbWV0aG9kJ3MgZm9ybWFsIHBhcmFtZXRlcnMgaXMgb2Yg YW4gYXMgeWV0CisrICAgaW5jb21wbGV0ZSB0eXBlLiAgKi8KKytzdGF0aWMgdm9pZAorK2NvbXB1 dGVfZGVsYXllZF9waHlzbmFtZXMgKHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorK3sKKysgIHN0cnVj dCBkZWxheWVkX21ldGhvZF9pbmZvICptaTsKKysgIAorKyAgZm9yIChtaSA9IGN1LT5tZXRob2Rf bGlzdDsgbWk7IG1pID0gbWktPm5leHQpCisrICAgIHsKKysgICAgICBjaGFyICpwaHlzbmFtZTsK KysgICAgICBzdHJ1Y3QgZm5fZmllbGRsaXN0ICpmbl9mbHAKKysJPSAmVFlQRV9GTl9GSUVMRExJ U1QgKG1pLT50eXBlLCBtaS0+Zm5maWVsZF9pbmRleCk7CisrICAgICAgcGh5c25hbWUgPSAoY2hh ciAqKSBkd2FyZjJfcGh5c25hbWUgKChjaGFyICopIG1pLT5uYW1lLCBtaS0+ZGllLCBjdSk7Cisr ICAgICAgZm5fZmxwLT5mbl9maWVsZHNbbWktPmluZGV4XS5waHlzbmFtZSA9IHBoeXNuYW1lID8g cGh5c25hbWUgOiAiIjsKKysgICAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK21ldGhvZF9saXN0 X2NsZWFudXAgKHZvaWQgKmFyZykKKyt7CisrICBzdHJ1Y3QgZGVsYXllZF9tZXRob2RfaW5mbyAq Km1ldGhvZF9saXN0X3BvaW50ZXIgPSBhcmc7CisrCisrICB3aGlsZSAoKm1ldGhvZF9saXN0X3Bv aW50ZXIpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgZGVsYXllZF9tZXRob2RfaW5mbyAqbWkgPSAq bWV0aG9kX2xpc3RfcG9pbnRlcjsKKysKKysgICAgICAqbWV0aG9kX2xpc3RfcG9pbnRlciA9IG1p LT5uZXh0OworKyAgICAgIHhmcmVlIChtaSk7CisrICAgIH0KKyt9CisrCisgLyogR2VuZXJhdGUg ZnVsbCBzeW1ib2wgaW5mb3JtYXRpb24gZm9yIFBTVCBhbmQgQ1UsIHdob3NlIERJRXMgaGF2ZQor ICAgIGFscmVhZHkgYmVlbiBsb2FkZWQgaW50byBtZW1vcnkuICAqLworIAorQEAgLTM0NDcsNyAr MzUyOCw3IEBAIHByb2Nlc3NfZnVsbF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGUKKyAgIGJm ZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7CisgICBDT1JFX0FERFIgbG93cGMsIGhpZ2hwYzsKKyAg IHN0cnVjdCBzeW10YWIgKnN5bXRhYjsKKy0gIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOworKyAg c3RydWN0IGNsZWFudXAgKmJhY2tfdG8sICpkZWxheWVkX2xpc3RfY2xlYW51cDsKKyAgIENPUkVf QUREUiBiYXNlYWRkcjsKKyAKKyAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rp b25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOworQEAgLTM0NTcsMTEgKzM1Mzgs MjIgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZQorIAorICAgY3Ut Pmxpc3RfaW5fc2NvcGUgPSAmZmlsZV9zeW1ib2xzOworIAorKyAgLyogSWYgbWV0aG9kcyB3ZXJl IGZvdW5kIGluIHRoZSBwYXJ0aWFsIHN5bWJvbCB0YWJsZSwgd2UgYWxsb2NhdGUgb25lCisrICAg ICBiaWcgYnVmZmVyIHRvIGhvbGQgdGhlIGVudGlyZSBkZWxheWVkIGxpc3QgZm9yIHRoZSBDVS4g ICovCisrICBkZWxheWVkX2xpc3RfY2xlYW51cCA9IG1ha2VfY2xlYW51cCAobWV0aG9kX2xpc3Rf Y2xlYW51cCwKKysJCQkJICAgICAgICZjdS0+bWV0aG9kX2xpc3QpOworKworICAgZHdhcmYyX2Zp bmRfYmFzZV9hZGRyZXNzIChjdS0+ZGllcywgY3UpOworIAorICAgLyogRG8gbGluZSBudW1iZXIg ZGVjb2RpbmcgaW4gcmVhZF9maWxlX3Njb3BlICgpICovCisgICBwcm9jZXNzX2RpZSAoY3UtPmRp ZXMsIGN1KTsKKyAKKysgIC8qIE5vdyB0aGF0IHdlIGhhdmUgcHJvY2Vzc2VkIGFsbCB0aGUgRElF cyBpbiB0aGUgQ1UsIGFsbCB0aGUgdHlwZXMgCisrICAgICBzaG91bGQgYmUgY29tcGxldGUsIGFu ZCBpdCBzaG91bGQgbm93IGJlIHNhZmUgdG8gY29tcHV0ZSBhbGwgb2YgdGhlCisrICAgICBwaHlz bmFtZXMuICAqLworKyAgY29tcHV0ZV9kZWxheWVkX3BoeXNuYW1lcyAoY3UpOworKyAgZG9fY2xl YW51cHMgKGRlbGF5ZWRfbGlzdF9jbGVhbnVwKTsKKysKKyAgIC8qIFNvbWUgY29tcGlsZXJzIGRv bid0IGRlZmluZSBhIERXX0FUX2hpZ2hfcGMgYXR0cmlidXRlIGZvciB0aGUKKyAgICAgIGNvbXBp bGF0aW9uIHVuaXQuICBJZiB0aGUgRFdfQVRfaGlnaF9wYyBpcyBtaXNzaW5nLCBzeW50aGVzaXpl CisgICAgICBpdCwgYnkgc2Nhbm5pbmcgdGhlIERJRSdzIGJlbG93IHRoZSBjb21waWxhdGlvbiB1 bml0LiAgKi8KK0BAIC01MDkzLDcgKzUxODUsNiBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3Ry dWN0IGZpZWxkX2luZm8gCisgICBpbnQgaTsKKyAgIHN0cnVjdCBmbl9maWVsZCAqZm5wOworICAg Y2hhciAqZmllbGRuYW1lOworLSAgY2hhciAqcGh5c25hbWU7CisgICBzdHJ1Y3QgbmV4dGZuZmll bGQgKm5ld19mbmZpZWxkOworICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKKyAKK0BAIC01MTA1 LDkgKzUxOTYsNiBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gCisg ICBpZiAoZmllbGRuYW1lID09IE5VTEwpCisgICAgIHJldHVybjsKKyAKKy0gIC8qIEdldCB0aGUg bWFuZ2xlZCBuYW1lLiAgKi8KKy0gIHBoeXNuYW1lID0gKGNoYXIgKikgZHdhcmYyX3BoeXNuYW1l IChmaWVsZG5hbWUsIGRpZSwgY3UpOworLQorICAgLyogTG9vayB1cCBtZW1iZXIgZnVuY3Rpb24g bmFtZSBpbiBmaWVsZGxpc3QuICAqLworICAgZm9yIChpID0gMDsgaSA8IGZpcC0+bmZuZmllbGRz OyBpKyspCisgICAgIHsKK0BAIC01MTMzLDcgKzUyMjEsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9m biAoc3RydWN0IGZpZWxkX2luZm8gCisgICAgICAgZmxwLT5uYW1lID0gZmllbGRuYW1lOworICAg ICAgIGZscC0+bGVuZ3RoID0gMDsKKyAgICAgICBmbHAtPmhlYWQgPSBOVUxMOworLSAgICAgIGZp cC0+bmZuZmllbGRzKys7CisrICAgICAgaSA9IGZpcC0+bmZuZmllbGRzKys7CisgICAgIH0KKyAK KyAgIC8qIENyZWF0ZSBhIG5ldyBtZW1iZXIgZnVuY3Rpb24gZmllbGQgYW5kIGNoYWluIGl0IHRv IHRoZSBmaWVsZCBsaXN0CitAQCAtNTE0Nyw5ICs1MjM1LDE5IEBAIGR3YXJmMl9hZGRfbWVtYmVy X2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAKKyAKKyAgIC8qIEZpbGwgaW4gdGhlIG1lbWJlciBmdW5j dGlvbiBmaWVsZCBpbmZvLiAgKi8KKyAgIGZucCA9ICZuZXdfZm5maWVsZC0+Zm5maWVsZDsKKy0g IC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBvYmpmaWxl LCBzbyB3ZSBkb24ndAorLSAgICAgbmVlZCB0byBkdXBsaWNhdGUgaXQgZm9yIHRoZSB0eXBlLiAg Ki8KKy0gIGZucC0+cGh5c25hbWUgPSBwaHlzbmFtZSA/IHBoeXNuYW1lIDogIiI7CisrCisrICAv KiBEZWxheSBwcm9jZXNzaW5nIG9mIHRoZSBwaHlzbmFtZSB1bnRpbCBsYXRlci4gICovCisrICBp ZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzIHx8IGN1LT5sYW5ndWFnZSA9PSBsYW5n dWFnZV9qYXZhKQorKyAgICB7CisrICAgICAgYWRkX3RvX21ldGhvZF9saXN0ICh0eXBlLCBpLCBm bHAtPmxlbmd0aCAtIDEsIGZpZWxkbmFtZSwKKysJCQkgIGRpZSwgY3UpOworKyAgICB9CisrICBl bHNlCisrICAgIHsKKysgICAgICBjaGFyICpwaHlzbmFtZSA9IChjaGFyICopIGR3YXJmMl9waHlz bmFtZSAoZmllbGRuYW1lLCBkaWUsIGN1KTsKKysgICAgICBmbnAtPnBoeXNuYW1lID0gcGh5c25h bWUgPyBwaHlzbmFtZSA6ICIiOworKyAgICB9CisrCisgICBmbnAtPnR5cGUgPSBhbGxvY190eXBl IChvYmpmaWxlKTsKKyAgIHRoaXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOworICAg aWYgKHRoaXNfdHlwZSAmJiBUWVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMp CitAQCAtNTE3NSw3ICs1MjczLDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVs ZF9pbmZvIAorICAgICB9CisgICBlbHNlCisgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxh aW50cywgXygibWVtYmVyIGZ1bmN0aW9uIHR5cGUgbWlzc2luZyBmb3IgJyVzJyIpLAorLQkgICAg ICAgcGh5c25hbWUpOworKwkgICAgICAgZHdhcmYyX2Z1bGxfbmFtZSAoZmllbGRuYW1lLCBkaWUs IGN1KSk7CisgCisgICAvKiBHZXQgZmNvbnRleHQgZnJvbSBEV19BVF9jb250YWluaW5nX3R5cGUg aWYgcHJlc2VudC4gICovCisgICBpZiAoZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY29udGFpbmlu Z190eXBlLCBjdSkgIT0gTlVMTCkKK0BAIC03NTAwLDcgKzc1OTgsOSBAQCBsb2FkX3BhcnRpYWxf ZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqCisgCQkgICAgICB8fCBsYXN0X2RpZS0+dGFnID09 IERXX1RBR19pbnRlcmZhY2VfdHlwZQorIAkJICAgICAgfHwgbGFzdF9kaWUtPnRhZyA9PSBEV19U QUdfc3RydWN0dXJlX3R5cGUKKyAJCSAgICAgIHx8IGxhc3RfZGllLT50YWcgPT0gRFdfVEFHX3Vu aW9uX3R5cGUpKQorLQkgICAgICB8fCAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2FkYQorKwkg ICAgICB8fCAoKGN1LT5sYW5ndWFnZSA9PSBsYW5ndWFnZV9hZGEKKysJCSAgIHx8IGN1LT5sYW5n dWFnZSA9PSBsYW5ndWFnZV9jcGx1cworKwkJICAgfHwgY3UtPmxhbmd1YWdlID09IGxhbmd1YWdl X2phdmEpCisgCQkgICYmIChsYXN0X2RpZS0+dGFnID09IERXX1RBR19zdWJwcm9ncmFtCisgCQkg ICAgICB8fCBsYXN0X2RpZS0+dGFnID09IERXX1RBR19sZXhpY2FsX2Jsb2NrKSkpKQorIAl7Cist LS0gLi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcHIxMTQ2NS5TCTE5NzAtMDEtMDEgMDE6MDA6 MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcHIxMTQ2 NS5TCTIwMTAtMDUtMTMgMTg6Mzk6MDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM1NSBA QAorKy8qIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysvKiBDb21waWxl ZCBmcm9tOgorKworKyAgICBuYW1lc3BhY2UgTgorKyAgICB7CisrICAgICAgY2xhc3MgQworKyAg ICAgIHsKKysgICAgICBwdWJsaWM6CisrICAgICAgICB0eXBlZGVmIHZvaWQgKCp0KSAoQyk7Cisr ICAgICAgICBDICh0KSB7fQorKyAgICAgIH07CisrICAgICAgdHlwZWRlZiBDOjp0IHU7CisrICAg ICAgdSBmOworKyAgICAgIEMgYyAoZik7CisrICAgIH07CisrCisrICAgIGludAorKyAgICBtYWlu ICgpCisrICAgIHsKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorKyovCisrCisrCS50ZXh0Cisr X1pOMU4xY0U6CQorKwkuc2VjdGlvbgkuZGVidWdfaW5mbworK2Q6CisrCS5sb25nCS5MZGVidWdf aW5mb19lbmQgLSAxZiAvKiBMZW5ndGggb2YgQ1UgaW5mbyAqLworKzE6CisrCS4yYnl0ZQkweDIJ CS8qIERXQVJGIHZlcnNpb24gbnVtYmVyICovCisrCS5sb25nCS5MZGVidWdfYWJicmV2MAkvKiBB YmJyZXYgb2Zmc2V0ICovCisrCS5ieXRlCTB4NAkJLyogUG9pbnRlciBzaXplICovCisrZGllYjoJ LnVsZWIxMjggMHgxCQkvKiBEV19UQUdfY29tcGlsZV91bml0ICovCisrCS5sb25nCS5MQVNGNAkJ LyogRFdfQVRfcHJvZHVjZXIgKi8KKysJLmJ5dGUJMHg0CQkvKiBEV19BVF9sYW5ndWFnZSAqLwor KwkubG9uZwkuTEFTRjUJCS8qIERXX0FUX25hbWUgKi8KKysJLmxvbmcJLkxBU0Y2CQkvKiBEV19B VF9jb21wX2RpciAqLworKwkubG9uZwkweDAJCS8qIERXX0FUX2xvd19wYyAqLworKwkubG9uZwkw eDAJCS8qIERXX0FUX2hpZ2hfcGMgKi8KKysJLmxvbmcJMHgwCQkvKiBEV19BVF9lbnRyeV9wYyAq LworK2RpZTI5OgkudWxlYjEyOCAweDIJCS8qIERXX1RBR19uYW1lc3BhY2UgKi8KKysJLnN0cmlu ZwkiTiIJCS8qIERXX0FUX25hbWUgKi8KKytkaWUzMjoJLnVsZWIxMjggMHgzCQkvKiBEV19UQUdf Y2xhc3NfdHlwZSAqLworKwkuc3RyaW5nCSJDIgkJLyogRFdfQVRfbmFtZSAqLworKwkuYnl0ZQkw eDEJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrZGllMzY6CS51bGViMTI4IDB4NAkJLyogRFdf VEFHX3R5cGVkZWYgKi8KKysJLnN0cmluZwkidSIJCS8qIERXX0FUX25hbWUgKi8KKysJLmxvbmcJ ZGllN2UtZAkJLyogRFdfQVRfdHlwZSAqLworK2RpZTNmOgkudWxlYjEyOCAweDUJCS8qIERXX1RB R192YXJpYWJsZSAqLworKwkuc3RyaW5nCSJmIgkJLyogRFdfQVRfbmFtZSAqLworKwkubG9uZwku TEFTRjAJCS8qIERXX0FUX01JUFNfbGlua2FnZV9uYW1lICovCisrCS5sb25nCWRpZTM2LWQJCS8q IERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19BVF9leHRlcm5hbCAqLworKwkuYnl0 ZQkweDEJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrZGllNGU6CS51bGViMTI4IDB4NQkJLyog RFdfVEFHX3ZhcmlhYmxlICovCisrCS5zdHJpbmcJImMiCQkvKiBEV19BVF9uYW1lICovCisrCS5s b25nCS5MQVNGMQkJLyogRFdfQVRfTUlQU19saW5rYWdlX25hbWUgKi8KKysJLmxvbmcJZGllNWUt ZAkJLyogRFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDEJCS8qIERXX0FUX2V4dGVybmFsICovCisr CS5ieXRlCTB4MQkJLyogRFdfQVRfZGVjbGFyYXRpb24gKi8KKysJLmJ5dGUJMHgwCisrZGllNWU6 CS51bGViMTI4IDB4NgkJLyogRFdfVEFHX2NsYXNzX3R5cGUgKi8KKysJLmxvbmcJZGllMzItZAkJ LyogRFdfQVRfc3BlY2lmaWNhdGlvbiAqLworKwkuYnl0ZQkweDEJCS8qIERXX0FUX2J5dGVfc2l6 ZSAqLworK2RpZTZhOgkudWxlYjEyOCAweDcJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5i eXRlCTB4MQkJLyogRFdfQVRfZXh0ZXJuYWwgKi8KKysJLnN0cmluZwkiQyIJCS8qIERXX0FUX25h bWUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19BVF9kZWNsYXJhdGlvbiAqLworK2RpZTcxOgkudWxl YjEyOCAweDgJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisrCS5sb25nCWRpZThmLWQJ CS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19BVF9hcnRpZmljaWFsICovCisr ZGllNzc6CS51bGViMTI4IDB4OQkJLyogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIgKi8KKysJLmxv bmcJZGllN2UtZAkJLyogRFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisr ZGllN2U6CS51bGViMTI4IDB4YQkJLyogRFdfVEFHX3BvaW50ZXJfdHlwZSAqLworKwkuYnl0ZQkw eDQJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworKwkubG9uZwlkaWU4NC1kCQkvKiBEV19BVF90eXBl ICovCisrZGllODQ6CS51bGViMTI4IDB4YgkJLyogRFdfVEFHX3N1YnJvdXRpbmVfdHlwZSAqLwor K2RpZTg5OgkudWxlYjEyOCAweDkJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisrCS5s b25nCWRpZTVlLWQJCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgwCisrZGllOGY6CS51bGVi MTI4IDB4YQkJLyogRFdfVEFHX3BvaW50ZXJfdHlwZSAqLworKwkuYnl0ZQkweDQJCS8qIERXX0FU X2J5dGVfc2l6ZSAqLworKwkubG9uZwlkaWU1ZS1kCQkvKiBEV19BVF90eXBlICovCisrZGllOTU6 CS51bGViMTI4IDB4YwkJLyogRFdfVEFHX3N1YnByb2dyYW0gKi8KKysJLmxvbmcJZGllNmEtZAkJ LyogRFdfQVRfc3BlY2lmaWNhdGlvbiAqLworKwkuYnl0ZQkweDIJCS8qIERXX0FUX2lubGluZSAq LworK2RpZTlmOgkudWxlYjEyOCAweGQJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisr CS5sb25nCS5MQVNGNwkJLyogRFdfQVRfbmFtZSAqLworKwkubG9uZwlkaWVhZi1kCQkvKiBEV19B VF90eXBlICovCisrCS5ieXRlCTB4MQkJLyogRFdfQVRfYXJ0aWZpY2lhbCAqLworK2RpZWE5Ogku dWxlYjEyOCAweDkJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisrCS5sb25nCWRpZTdl LWQJCS8qIERXX0FUX3R5cGUgKi8KKysJLmJ5dGUJMHgwCisrZGllYWY6CS51bGViMTI4IDB4ZQkJ LyogRFdfVEFHX2NvbnN0X3R5cGUgKi8KKysJLmxvbmcJZGllOGYtZAkJLyogRFdfQVRfdHlwZSAq LworK2RpZWI0OgkudWxlYjEyOCAweGYJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5sb25n CWRpZTk1LWQJCS8qIERXX0FUX2Fic3RyYWN0X29yaWdpbiAqLworKwkubG9uZwlfWk4xTjFjRQkv KiBEV19BVF9sb3dfcGMgKi8KKysJLmxvbmcJX1pOMU4xY0UJLyogRFdfQVRfaGlnaF9wYyAqLwor K2RpZWM5OgkudWxlYjEyOCAweDEwCQkvKiBEV19UQUdfc3VicHJvZ3JhbSAqLworKwkubG9uZwlk aWU5Zi1kCQkvKiBEV19BVF9hYnN0cmFjdF9vcmlnaW4gKi8KKysJLmJ5dGUJMmYtMWYJCS8qIERX X0FUX2xvY2F0aW9uICovCisrMToKKysJLmJ5dGUJMHg1MAkJLyogRFdfT1BfcmVnMCAqLworKzI6 CisrZGllZDE6CS51bGViMTI4IDB4MTAJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisr CS5sb25nCWRpZWE5LWQJCS8qIERXX0FUX2Fic3RyYWN0X29yaWdpbiAqLworKwkuYnl0ZQkyZi0x ZgkJLyogRFdfQVRfbG9jYXRpb24gKi8KKysxOgorKwkuYnl0ZQkweDUxCQkvKiBEV19PUF9yZWcx ICovCisrMjoKKysJLmJ5dGUJMHgwCisrZGllZGE6CS51bGViMTI4IDB4MTEJCS8qIERXX1RBR19z dWJwcm9ncmFtICovCisrCS5ieXRlCTB4MQkJLyogRFdfQVRfZXh0ZXJuYWwgKi8KKysJLmxvbmcJ LkxBU0Y4CQkvKiBEV19BVF9uYW1lICovCisrCS5sb25nCWRpZWYyLWQJCS8qIERXX0FUX3R5cGUg Ki8KKysJLmxvbmcJX1pOMU4xY0UJLyogRFdfQVRfbG93X3BjICovCisrCS5sb25nCV9aTjFOMWNF CS8qIERXX0FUX2hpZ2hfcGMgKi8KKytkaWVmMjoJLnVsZWIxMjggMHgxMgkJLyogRFdfVEFHX2Jh c2VfdHlwZSAqLworKwkuYnl0ZQkweDQJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworKwkuYnl0ZQkw eDUJCS8qIERXX0FUX2VuY29kaW5nICovCisrCS5zdHJpbmcJImludCIJCS8qIERXX0FUX25hbWUg Ki8KKytkaWUxNDk6CS51bGViMTI4IDB4MTYJCS8qIERXX1RBR192YXJpYWJsZSAqLworKwkubG9u ZwlkaWU0ZS1kCQkvKiBEV19BVF9zcGVjaWZpY2F0aW9uICovCisrCS5ieXRlCTB4NQkJLyogRFdf QVRfbG9jYXRpb24gKi8KKysJLmJ5dGUJMHgzCisrCS5sb25nCV9aTjFOMWNFCisrCS5ieXRlCTB4 MAorKy5MZGVidWdfaW5mb19lbmQ6CisrCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYKKysuTGRlYnVn X2FiYnJldjA6CisrCS51bGViMTI4IDB4MQkJLyogYWJicmV2IGNvZGUqLworKwkudWxlYjEyOCAw eDExCQkvKiBEV19UQUdfY29tcGlsZV91bml0ICovCisrCS5ieXRlCTB4MQkJLyogRFdfY2hpbGRy ZW5feWVzICovCisrCS51bGViMTI4IDB4MjUJCS8qIERXX0FUX3Byb2R1Y2VyKi8KKysJLnVsZWIx MjggMHhlCQkvKiBEV19GT1JNX3N0cnAgKi8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfQVRfbGFu Z3VhZ2UgKi8KKysJLnVsZWIxMjggMHhiCQkvKiBEV19GT1JNX2RhdGExICovCisrCS51bGViMTI4 IDB4MwkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOCAweGUJCS8qIERXX0ZPUk1fc3RycCAq LworKwkudWxlYjEyOCAweDFiCQkvKiBEV19BVF9jb21wX2RpciAqLworKwkudWxlYjEyOCAweGUJ CS8qIERXX0ZPUk1fc3RycCAqLworKwkudWxlYjEyOCAweDExCQkvKiBEV19BVF9sb3dfcGMgKi8K KysJLnVsZWIxMjggMHgxCQkvKiBEV19GT1JNX2FkZHIgKi8KKysJLnVsZWIxMjggMHgxMgkJLyog RFdfQVRfaGlnaF9wYyAqLworKwkudWxlYjEyOCAweDEJCS8qIERXX0ZPUk1fYWRkciAqLworKwku dWxlYjEyOCAweDUyCQkvKiBEV19BVF9lbnRyeV9wYyAqLworKwkudWxlYjEyOCAweDEJCS8qIERX X0ZPUk1fYWRkciAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MgkJ LyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHgzOQkJLyogRFdfVEFHX25hbWVzcGFjZSAq LworKwkuYnl0ZQkweDEJCS8qIERXX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDMJCS8q IERXX0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHg4CQkvKiBEV19GT1JNX3N0cmluZyAqLworKwku Ynl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MwkJLyogYWJicmV2IGNvZGUgKi8K KysJLnVsZWIxMjggMHgyCQkvKiBEV19UQUdfY2xhc3NfdHlwZSAqLworKwkuYnl0ZQkweDAJCS8q IERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMJCS8qIERXX0FUX25hbWUgKi8K KysJLnVsZWIxMjggMHg4CQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOCAweDNjCQkv KiBEV19BVF9kZWNsYXJhdGlvbiAqLworKwkudWxlYjEyOCAweGMJCS8qIERXX0ZPUk1fZmxhZyAq LworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4NAkJLyogYWJicmV2IGNv ZGUgKi8KKysJLnVsZWIxMjggMHgxNgkJLyogRFdfVEFHX3R5cGVkZWYgKi8KKysJLmJ5dGUJMHgw CQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHgzCQkvKiBEV19BVF9uYW1l ICovCisrCS51bGViMTI4IDB4OAkJLyogRFdfRk9STV9zdHJpbmcgKi8KKysJLnVsZWIxMjggMHg0 OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8K KysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweDUJCS8qIGFiYnJldiBjb2Rl ICovCisrCS51bGViMTI4IDB4MzQJCS8qIERXX1RBR192YXJpYWJsZSAqLworKwkuYnl0ZQkweDAJ CS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMJCS8qIERXX0FUX25hbWUg Ki8KKysJLnVsZWIxMjggMHg4CQkvKiBEV19GT1JNX3N0cmluZyAqLworKwkudWxlYjEyOCAweDIw MDcJCS8qIERXX0FUX01JUFNfbGlua2FnZV9uYW1lICovCisrCS51bGViMTI4IDB4ZQkJLyogRFdf Rk9STV9zdHJwICovCisrCS51bGViMTI4IDB4NDkJCS8qIERXX0FUX1RZUEUgKi8KKysJLnVsZWIx MjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4IDB4M2YJCS8qIERXX0FUX2V4 dGVybmFsICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9STV9mbGFnICovCisrCS51bGViMTI4 IDB4M2MJCS8qIERXX0FUX2RlY2xhcmF0aW9uICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9S TV9mbGFnICovCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHg2CQkvKiBh YmJyZXYgY29kZSAqLworKwkudWxlYjEyOCAweDIJCS8qIERXX1RBR19jbGFzc190eXBlICovCisr CS5ieXRlCTB4MQkJLyogRFdfaGFzX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDQ3CQkv KiBEV19BVF9zcGVjaWZpY2F0aW9uICovCisrCS51bGViMTI4IDB4MTMJCS8qIERXX0ZPUk1fcmVm NCAqLworKwkudWxlYjEyOCAweGIJCS8qIERXX0FUX2J5dGVfc2l6ZSAqLworKwkudWxlYjEyOCAw eGIJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxl YjEyOCAweDcJCS8qIGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MmUJCS8qIERXX1RBR19z dWJwcm9ncmEgKi8KKysJLmJ5dGUJMHgxCQkvKiBEV19oYXNfY2hpbGRyZW5feWVzICovCisrCS51 bGViMTI4IDB4M2YJCS8qIERXX0FUX2V4dGVybmFsICovCisrCS51bGViMTI4IDB4YwkJLyogRFdf Rk9STV9mbGFnICovCisrCS51bGViMTI4IDB4MwkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEy OCAweDgJCS8qIERXX0ZPUk1fc3RyaW5nICovCisrCS51bGViMTI4IDB4M2MJCS8qIERXX0FUX2Rl Y2xhcmF0aW9uICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9STV9mbGFnICovCisrCS5ieXRl CTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHg4CQkvKiBhYmJyZXYgY29kZSAqLworKwku dWxlYjEyOCAweDUJCS8qIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyICovCisrCS5ieXRlCTB4MAkJ LyogRFdfaGFzX2NoaWxkcmVuX25vICovCisrCS51bGViMTI4IDB4NDkJCS8qIERXX0FUX3R5cGUg Ki8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4IDB4MzQJ CS8qIERXX0FUX2FydGlmaWNpYWwgKi8KKysJLnVsZWIxMjggMHhjCQkvKiBEV19GT1JNX2ZsYWcg Ki8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweDkJCS8qIGFiYnJldiBj b2RlICovCisrCS51bGViMTI4IDB4NQkJLyogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIgKi8KKysJ LmJ5dGUJMHgwCQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHg0OQkJLyog RFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLmJ5 dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweGEJCS8qIGFiYnJldiBjb2RlICovCisr CS51bGViMTI4IDB4ZgkJLyogRFdfVEFHX3BvaW50ZXJfdHlwZSAqLworKwkuYnl0ZQkweDAJCS8q IERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweGIJCS8qIERXX0FUX2J5dGVfc2l6 ZSAqLworKwkudWxlYjEyOCAweGIJCS8qIERXX0ZPUk1fZGF0YTEgKi8KKysJLnVsZWIxMjggMHg0 OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8K KysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweGIJCS8qIGFiYnJldiBjb2Rl ICovCisrCS51bGViMTI4IDB4MTUJCS8qIERXX1RBR19zdWJyb3V0aW5lX3R5cGUgKi8KKysJLmJ5 dGUJMHgxCQkvKiBEV19oYXNfY2hpbGRyZW5feWVzICovCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkw eDAKKysJLnVsZWIxMjggMHhjCQkvKiBhYmJyZXYgY29kZSAqLworKwkudWxlYjEyOCAweDJlCQkv KiBEV19UQUdfc3VicHJvZ3JhbSAqLworKwkuYnl0ZQkweDEJCS8qIERXX2hhc19jaGlsZHJlbl95 ZXMgKi8KKysJLnVsZWIxMjggMHg0NwkJLyogRFdfQVRfc3BlY2lmaWNhdGlvbiAqLworKwkudWxl YjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLnVsZWIxMjggMHgyMAkJLyogRFdfQVRf aW5saW5lICovCisrCS51bGViMTI4IDB4YgkJLyogRFdfRk9STV9kYXRhMSAqLworKwkuYnl0ZQkw eDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4ZAkJLyogYWJicmV2IGNvZGUgKi8KKysJLnVs ZWIxMjggMHg1CQkvKiBEV19UQUdfZm9ybWFsX3BhcmFtZXRlciAqLworKwkuYnl0ZQkweDAJCS8q IERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDMJCS8qIERXX0FUX25hbWUgKi8K KysJLnVsZWIxMjggMHhlCQkvKiBEV19GT1JNX3N0cnAgKi8KKysJLnVsZWIxMjggMHg0OQkJLyog RFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8KKysJLnVs ZWIxMjggMHgzNAkJLyogRFdfQVRfYXJ0aWZpY2lhbCAqLworKwkudWxlYjEyOCAweGMJCS8qIERX X0ZPUk1fZmxhZyAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4ZQkJ LyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHgyNgkJLyogRFdfVEFHX2NvbnN0X3R5cGUg Ki8KKysJLmJ5dGUJMHgwCQkvKiBEV19oYXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHg0 OQkJLyogRFdfQVRfdHlwZSAqLworKwkudWxlYjEyOCAweDEzCQkvKiBEV19GT1JNX3JlZjQgKi8K KysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkudWxlYjEyOCAweGYJCS8qIGFiYnJldiBjb2Rl ICovCisrCS51bGViMTI4IDB4MmUJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5ieXRlCTB4 MQkJLyogRFdfaGFzX2NoaWxkcmVuX3llcyAqLworKwkudWxlYjEyOCAweDMxCQkvKiBEV19BVF9h YnN0cmFjdF9vcmlnaW4gKi8KKysJLnVsZWIxMjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisr CS51bGViMTI4IDB4MTEJCS8qIERXX0FUX2xvd19wYyAqLworKwkudWxlYjEyOCAweDEJCS8qIERX X0ZPUk1fYWRkciAqLworKwkudWxlYjEyOCAweDEyCQkvKiBEV19BVF9oaWdoX3BjICovCisrCS51 bGViMTI4IDB4MQkJLyogRFdfRk9STV9hZGRyICovCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkweDAK KysJLnVsZWIxMjggMHgxMAkJLyogYWJicmV2IGNvZGUgKi8KKysJLnVsZWIxMjggMHg1CQkvKiBE V19UQUdfZm9ybWFsX3BhcmFtZXRlciAqLworKwkuYnl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJl bl9ubyAqLworKwkudWxlYjEyOCAweDMxCQkvKiBEV19BVF9hYnN0cmFjdF9vcmlnaW4gKi8KKysJ LnVsZWIxMjggMHgxMwkJLyogRFdfRk9STV9yZWY0ICovCisrCS51bGViMTI4IDB4MgkJLyogRFdf QVRfbG9jYXRpb24gKi8KKysJLnVsZWIxMjggMHhhCQkvKiBEV19GT1JNX2Jsb2NrMSAqLworKwku Ynl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MTEJCS8qIGFiYnJldiBjb2RlICov CisrCS51bGViMTI4IDB4MmUJCS8qIERXX1RBR19zdWJwcm9ncmFtICovCisrCS5ieXRlCTB4MAkJ LyogRFdfaGFzX2NoaWxkcmVuX25vICovCisrCS51bGViMTI4IDB4M2YJCS8qIERXX0FUX2V4dGVy bmFsICovCisrCS51bGViMTI4IDB4YwkJLyogRFdfRk9STV9mbGFnICovCisrCS51bGViMTI4IDB4 MwkJLyogRFdfQVRfbmFtZSAqLworKwkudWxlYjEyOCAweGUJCS8qIERXX0ZPUk1fc3RycCAqLwor KwkudWxlYjEyOCAweDQ5CQkvKiBEV19BVF90eXBlICovCisrCS51bGViMTI4IDB4MTMJCS8qIERX X0ZPUk1fcmVmNCAqLworKwkudWxlYjEyOCAweDExCQkvKiBEV19BVF9sb3dfcGMgKi8KKysJLnVs ZWIxMjggMHgxCQkvKiBEV19GT1JNX2FkZHIgKi8KKysJLnVsZWIxMjggMHgxMgkJLyogRFdfQVRf aGlnaF9wYyAqLworKwkudWxlYjEyOCAweDEJCS8qIERXX0ZPUk1fYWRkciAqLworKwkuYnl0ZQkw eDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MTIJCS8qIGFiYnJldiBjb2RlICovCisrCS51 bGViMTI4IDB4MjQJCS8qIERXX1RBR19iYXNlX3R5cGUgKi8KKysJLmJ5dGUJMHgwCQkvKiBEV19o YXNfY2hpbGRyZW5fbm8gKi8KKysJLnVsZWIxMjggMHhiCQkvKiBEV19BVF9ieXRlX3NpemUgKi8K KysJLnVsZWIxMjggMHhiCQkvKiBEV19GT1JNX2RhdGExICovCisrCS51bGViMTI4IDB4M2UJCS8q IERXX0FUX2VuY29kaW5nICovCisrCS51bGViMTI4IDB4YgkJLyogRFdfRk9STV9kYXRhMSAqLwor KwkudWxlYjEyOCAweDMJCS8qIERXX0FUX25hbWUgKi8KKysJLnVsZWIxMjggMHg4CQkvKiBEV19G T1JNX3N0cmluZyAqLworKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51bGViMTI4IDB4MTYJ CS8qIGFiYnJldiBjb2RlICovCisrCS51bGViMTI4IDB4MzQJCS8qIERXX1RBR192YXJpYWJsZSAq LworKwkuYnl0ZQkweDAJCS8qIERXX2hhc19jaGlsZHJlbl9ubyAqLworKwkudWxlYjEyOCAweDQ3 CQkvKiBEV19BVF9zcGVjaWZpY2F0aW9uICovCisrCS51bGViMTI4IDB4MTMJCS8qIERXX0ZPUk1f cmVmNCAqLworKwkudWxlYjEyOCAweDIJCS8qIERXX0FUX2xvY2F0aW9uICovCisrCS51bGViMTI4 IDB4YQkJLyogRFdfRk9STV9ibG9jazEgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwku Ynl0ZQkweDAKKysJLnNlY3Rpb24JLmRlYnVnX3N0cgorKy5MQVNGMDoKKysJLnN0cmluZwkiX1pO MU4xZkUiCisrLkxBU0Y3OgorKwkuc3RyaW5nCSJ0aGlzIgorKy5MQVNGNjoKKysJLnN0cmluZwki IgorKy5MQVNGODoKKysJLnN0cmluZwkibWFpbiIKKysuTEFTRjE6CisrCS5zdHJpbmcJIl9aTjFO MWNFIgorKy5MQVNGNToKKysJLnN0cmluZwkicHIxMTQ2NS5jYyIKKysuTEFTRjQ6CisrCS5zdHJp bmcJIkdOVSBDKysgNC40LjIiCisrCS5pZGVudAkiR0NDOiAoR05VKSA0LjQuMiIKKy0tLSAuL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9wcjExNDY1LmV4cAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3ByMTE0NjUuZXhw CTIwMTAtMDUtMTMgMTg6Mzk6MDAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM5IEBACisr IyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVu IG9uIHRhcmdldHMgd2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgorKyMgRm9yIG5v dyBwaWNrIGEgc2FtcGxpbmcgb2YgbGlrZWx5IHRhcmdldHMuCisraWYgeyFbaXN0YXJnZXQgKi0q LWxpbnV4Kl0KKysgICAgJiYgIVtpc3RhcmdldCAqLSotZ251Kl0KKysgICAgJiYgIVtpc3Rhcmdl dCAqLSotZWxmKl0KKysgICAgJiYgIVtpc3RhcmdldCAqLSotb3BlbmJzZCpdCisrICAgICYmICFb aXN0YXJnZXQgYXJtLSotZWFiaSpdCisrICAgICYmICFbaXN0YXJnZXQgcG93ZXJwYy0qLWVhYmkq XX0geworKyAgICByZXR1cm4gMCAgCisrfQorKworK3NldCB0ZXN0ZmlsZSAicHIxMTQ2NSIKKytz ZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCisrc2V0IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0ueAor K3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmICB7 IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxl fSIgb2JqZWN0IHt9XSAhPSAiIiB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2NsZWFuX3Jl c3RhcnQgJGV4ZWN1dGFibGUKKysKKysjIFRlc3QgZGVsYXllZCBwaHlzbmFtZSBjb21wdXRhdGlv bnMKKytnZGJfdGVzdCAicCBOOjpjLkMiIHsgPSB7dm9pZCBcKE46OkMgXCosIHZvaWQgXChcKlwp XChOOjpDXClcKX0uKn0KCmRpZmYgLS1naXQgYS9nZGItYno1NzUyOTItdm9pZC13b3JrYXJvdW5k LnBhdGNoIGIvZ2RiLWJ6NTc1MjkyLXZvaWQtd29ya2Fyb3VuZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDVhOTM0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6 NTc1MjkyLXZvaWQtd29ya2Fyb3VuZC5wYXRjaApAQCAtMCwwICsxLDE4NyBAQAoraHR0cDovL3Nv dXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNnMDEwMzkuaHRtbAorU3ViamVj dDogW3BhdGNoXSBGaXggY3Jhc2ggb24gTlVMTCBmdW5jdGlvbidzIFRZUEVfRklFTERfVFlQRQor CitIaSwKKworc2VlbiBvbmUgcG9zc2liaWxpdHkgb2YgYSBjcmFzaC4KKworIzAgIGNfcHJpbnRf dHlwZSAodHlwZT0weDAsIC4uLikKKyMxICBpbiBjX3R5cGVfcHJpbnRfYXJncyAodHlwZT0weGZj ZWI4OTAsCisKKyhUaGUgcmVhbCByZWFzb24gb2YgYSByZXBvcnRlZCBHREIgY3Jhc2ggd2FzIGRp ZmZlcmVudCwgdGhvdWdoLikKKworCitUaGFua3MsCitKYW4KKworCitnZGIvCisyMDEwLTAzLTMw ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwlGaXggY3Jh c2ggb24gcmVhZGluZyB3cm9uZyBmdW5jdGlvbiBkZWNsYXJhdGlvbiBEV0FSRi4KKwkqIGR3YXJm MnJlYWQuYyAocmVhZF9zdWJyb3V0aW5lX3R5cGUpOiBOZXcgdmFyaWFibGUgdm9pZF90eXBlLgor CVByZS1maWxsIGFsbCBUWVBFX0ZJRUxEX1RZUEVzLiAgTW92ZSBucGFyYW1zIGFuZCBpcGFyYW1z IGluaXRpYWxpemF0aW9uCisJbW9yZSBjbG9zZSB0byB0aGVpciB1c2UuCisKK2dkYi90ZXN0c3Vp dGUvCisyMDEwLTAzLTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+CisKKwkqIGdkYi5kd2FyZjIvZHcyLWJhZC1wYXJhbWV0ZXItdHlwZS5leHAsCisJZ2RiLmR3 YXJmMi9kdzItYmFkLXBhcmFtZXRlci10eXBlLlM6IE5ldy4KKworLS0tIGEvZ2RiL2R3YXJmMnJl YWQuYworKysrIGIvZ2RiL2R3YXJmMnJlYWQuYworQEAgLTU5MzgsMTMgKzU5MzgsMTQgQEAgcmVh ZF9zdWJyb3V0aW5lX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKKyAgIAorICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKKyAgICAgeworKyAgICAgIHN0 cnVjdCB0eXBlICp2b2lkX3R5cGUgPSBvYmpmaWxlX3R5cGUgKGN1LT5vYmpmaWxlKS0+YnVpbHRp bl92b2lkOworICAgICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGRfZGllOworLSAgICAgIGludCBu cGFyYW1zID0gMDsKKy0gICAgICBpbnQgaXBhcmFtcyA9IDA7CisrICAgICAgaW50IG5wYXJhbXMs IGlwYXJhbXM7CisgCisgICAgICAgLyogQ291bnQgdGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzLgor ICAgICAgICAgIEZJWE1FOiBHREIgY3VycmVudGx5IGlnbm9yZXMgdmFyYXJnIGZ1bmN0aW9ucywg YnV0IGtub3dzIGFib3V0CisgICAgICAgICAgdmFyYXJnIG1lbWJlciBmdW5jdGlvbnMuICAqLwor KyAgICAgIG5wYXJhbXMgPSAwOworICAgICAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7CisgICAg ICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKKyAJeworQEAgLTU5NjAsNiAr NTk2MSwxMiBAQCByZWFkX3N1YnJvdXRpbmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgICAgIFRZUEVfRklFTERTIChmdHlwZSkgPSAoc3RydWN0 IGZpZWxkICopCisgCVRZUEVfWkFMTE9DIChmdHlwZSwgbnBhcmFtcyAqIHNpemVvZiAoc3RydWN0 IGZpZWxkKSk7CisgCisrICAgICAgLyogVFlQRV9GSUVMRF9UWVBFIG11c3QgbmV2ZXIgYmUgTlVM TC4gIFByZS1maWxsIHRoZSBhcnJheSB0byBlbnN1cmUgaXQKKysJIGV2ZW4gaWYgd2UgZXJyb3Ig b3V0IGR1cmluZyB0aGUgcGFyYW1ldGVycyByZWFkaW5nIGJlbG93LiAgKi8KKysgICAgICBmb3Ig KGlwYXJhbXMgPSAwOyBpcGFyYW1zIDwgbnBhcmFtczsgaXBhcmFtcysrKQorKwlUWVBFX0ZJRUxE X1RZUEUgKGZ0eXBlLCBpcGFyYW1zKSA9IHZvaWRfdHlwZTsKKysKKysgICAgICBpcGFyYW1zID0g MDsKKyAgICAgICBjaGlsZF9kaWUgPSBkaWUtPmNoaWxkOworICAgICAgIHdoaWxlIChjaGlsZF9k aWUgJiYgY2hpbGRfZGllLT50YWcpCisgCXsKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItYmFkLXBhcmFtZXRlci10eXBlLlMKK0BAIC0wLDAgKzEsNzMg QEAKKysvKiBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysK KysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrCS5zZWN0aW9u CS5kZWJ1Z19pbmZvCisrZGVidWdfc3RhcnQ6CisrCS5sb25nCWRlYnVnX2VuZCAtIDFmCS8qIExl bmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8gKi8KKysxOgorKwkuMmJ5dGUJMHgzCS8qIERX QVJGIHZlcnNpb24gbnVtYmVyICovCisrCS5sb25nCS5MZGVidWdfYWJicmV2MAkvKiBPZmZzZXQg SW50byBBYmJyZXYuIFNlY3Rpb24gKi8KKysJLmJ5dGUJMHg0CS8qIFBvaW50ZXIgU2l6ZSAoaW4g Ynl0ZXMpICovCisrCS51bGViMTI4IDB4MQkvKiAoRElFICgweGIpIERXX1RBR19jb21waWxlX3Vu aXQpICovCisrCS5hc2NpaSAiR05VIEMgNC40LjNcMCIJLyogRFdfQVRfcHJvZHVjZXIgKi8KKysJ LmJ5dGUJMHgxCS8qIERXX0FUX2xhbmd1YWdlICovCisrCS5hc2NpaSAiMS5jXDAiCS8qIERXX0FU X25hbWUgKi8KKysJLnVsZWIxMjggMHg0CS8qIChESUUgKDB4M2MpIERXX1RBR19zdWJwcm9ncmFt KSAqLworKwkuYXNjaWkgImZcMCIJLyogRFdfQVRfbmFtZSAqLworKy8qIFZhbHVlIDAgd291bGQg cmVxdWlyZSBoYXNfc2VjdGlvbl9hdF96ZXJvICE9IDAgKHdoaWNoIGlzIHRydWUsIHRob3VnaCku ICAqLworKwkubG9uZwkxCS8qIERXX0FUX2xvd19wYyAqLworKwkubG9uZwkyCS8qIERXX0FUX2hp Z2hfcGMgKi8KKysJLmJ5dGUJMHgxCS8qIERXX0FUX3Byb3RvdHlwZWQgKi8KKysJLnVsZWIxMjgg MHg1CS8qIChESUUgKDB4NDIpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKSAqLworKy8qIEludmFs aWQgdmFsdWUuICAqLworKwkubG9uZwkweDAJLyogRFdfQVRfdHlwZSAqLworKwkuYnl0ZQkweDAJ LyogZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDNjICovCisrCS5ieXRlCTB4MAkvKiBlbmQgb2Yg Y2hpbGRyZW4gb2YgRElFIDB4YiAqLworK2RlYnVnX2VuZDoKKysKKysJLnNlY3Rpb24JLmRlYnVn X2FiYnJldgorKy5MZGVidWdfYWJicmV2MDoKKysJLnVsZWIxMjggMHgxCS8qIChhYmJyZXYgY29k ZSkgKi8KKysJLnVsZWIxMjggMHgxMQkvKiAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KSAqLwor KwkuYnl0ZQkweDEJLyogRFdfY2hpbGRyZW5feWVzICovCisrCS51bGViMTI4IDB4MjUJLyogKERX X0FUX3Byb2R1Y2VyKSAqLworKwkudWxlYjEyOCAweDgJLyogKERXX0ZPUk1fc3RyaW5nKSAqLwor KwkudWxlYjEyOCAweDEzCS8qIChEV19BVF9sYW5ndWFnZSkgKi8KKysJLnVsZWIxMjggMHhiCS8q IChEV19GT1JNX2RhdGExKSAqLworKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCisr CS51bGViMTI4IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcpICovCisrCS5ieXRlCTB4MAorKwkuYnl0 ZQkweDAKKysJLnVsZWIxMjggMHg0CS8qIChhYmJyZXYgY29kZSkgKi8KKysJLnVsZWIxMjggMHgy ZQkvKiAoVEFHOiBEV19UQUdfc3VicHJvZ3JhbSkgKi8KKysJLmJ5dGUJMHgxCS8qIERXX2NoaWxk cmVuX3llcyAqLworKwkudWxlYjEyOCAweDMJLyogKERXX0FUX25hbWUpICovCisrCS51bGViMTI4 IDB4OAkvKiAoRFdfRk9STV9zdHJpbmcpICovCisrCS51bGViMTI4IDB4MTEJLyogKERXX0FUX2xv d19wYykgKi8KKysJLnVsZWIxMjggMHgxCS8qIChEV19GT1JNX2FkZHIpICovCisrCS51bGViMTI4 IDB4MTIJLyogKERXX0FUX2hpZ2hfcGMpICovCisrCS51bGViMTI4IDB4MQkvKiAoRFdfRk9STV9h ZGRyKSAqLworKwkudWxlYjEyOCAweDI3CS8qIChEV19BVF9wcm90b3R5cGVkKSAqLworKwkudWxl YjEyOCAweGMJLyogKERXX0ZPUk1fZmxhZykgKi8KKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAor KwkudWxlYjEyOCAweDUJLyogKGFiYnJldiBjb2RlKSAqLworKwkudWxlYjEyOCAweDUJLyogKFRB RzogRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpICovCisrCS5ieXRlCTB4MAkvKiBEV19jaGlsZHJl bl9ubyAqLworKwkudWxlYjEyOCAweDQ5CS8qIChEV19BVF90eXBlKSAqLworKwkudWxlYjEyOCAw eDEzCS8qIChEV19GT1JNX3JlZjQpICovCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLmJ5 dGUJMHgwCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LWJhZC1wYXJhbWV0ZXItdHlwZS5leHAKK0BAIC0wLDAgKzEsNDQgQEAKKysjIENvcHlyaWdodCAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKysKKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3 aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCisrIyBGb3Igbm93IHBpY2sgYSBzYW1w bGluZyBvZiBsaWtlbHkgdGFyZ2V0cy4KKytpZiB7IVtpc3RhcmdldCAqLSotbGludXgqXQorKyAg ICAmJiAhW2lzdGFyZ2V0ICotKi1nbnUqXQorKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1lbGYqXQor KyAgICAmJiAhW2lzdGFyZ2V0ICotKi1vcGVuYnNkKl0KKysgICAgJiYgIVtpc3RhcmdldCBhcm0t Ki1lYWJpKl0KKysgICAgJiYgIVtpc3RhcmdldCBwb3dlcnBjLSotZWFiaSpdfSB7CisrICAgIHJl dHVybiAwICAKKyt9CisrCisrc2V0IHRlc3RmaWxlICJkdzItYmFkLXBhcmFtZXRlci10eXBlIgor K3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LlMKKytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS54 Cisrc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke2V4ZWN1dGFibGV9CisrCisrIyBG aXJzdCB0cnkgcmVmZXJlbmNpbmcgRFdfQVRfZnJhbWVfYmFzZSB3aGljaCBpcyBub3QgZGVmaW5l ZC4KKytpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIg IiR7YmluZmlsZX0iIG9iamVjdCB7fV0gIT0gIiIgfSB7CisrICAgIHJldHVybiAtMQorK30KKysK KytjbGVhbl9yZXN0YXJ0ICRleGVjdXRhYmxlCisrCisrIyBUaGUgZmlyc3QgYWNjZXNzIChhcyB3 ZSBkbyBub3QgdXNlIC1yZWFkbm93KSBwcmludHMgc29tZToKKysjIER3YXJmIEVycm9yOiBDYW5u b3QgZmluZCBESUUgYXQgMHgwIHJlZmVyZW5jZWQgZnJvbSBESUUgYXQgMHgyOSBbaW4gbW9kdWxl IC4uLl0KKytnZGJfdGVzdCAicHR5cGUgZiIKKysKKytnZGJfdGVzdCAicHR5cGUgZiIKKytnZGJf dGVzdCAicCA1IiAiID0gNSIgImlzIGFsaXZlIgorCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTc4MjUw LWF2eC0wMW9mMTAucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTAxb2YxMC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGZkYzBkCi0tLSAvZGV2L251bGwKKysrIGIv Z2RiLWJ6NTc4MjUwLWF2eC0wMW9mMTAucGF0Y2gKQEAgLTAsMCArMSwxNzMzIEBACitbIEJhY2tw b3J0ZWQuICBdCisKK2NvbW1pdCBkNDU0Yjc1MjlhNWU2MTM0YWNlODU0MWIzNDFkMDc5NTM0ZjIw NjJhCitBdXRob3I6IEguSi4gTHUgPGhqbC50b29sc0BnbWFpbC5jb20+CitEYXRlOiAgIE1vbiBN YXIgMSAxNTozMzoyOSAyMDEwICswMDAwCisKKyAgICBFbmFibGUgWE1MIHRhcmdldCBkZXNjcmlw dGlvbnMgZm9yIHg4Ni4KKyAgICAKKyAgICBnZGIvCisgICAgCisgICAgMjAxMC0wMy0wMSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAorICAgIAkqIGFtZDY0LWxpbnV4LW5h dC5jIChBTUQ2NF9MSU5VWF9VU0VSNjRfQ1MpOiBOZXcuCisgICAgCShhbWQ2NF9saW51eF9yZWFk X2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisgICAgCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9u YXQpOiBTZXQgdG9fcmVhZF9kZXNjcmlwdGlvbiB0bworICAgIAlhbWQ2NF9saW51eF9yZWFkX2Rl c2NyaXB0aW9uLgorICAgIAorICAgIAkqIGFtZDY0LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAiZmVh dHVyZXMvaTM4Ni9hbWQ2NC1saW51eC5jIi4KKyAgICAJKGFtZDY0X2xpbnV4X3JlZ2lzdGVyX25h bWUpOiBSZW1vdmVkLgorICAgIAkoYW1kNjRfbGludXhfcmVnaXN0ZXJfdHlwZSk6IExpa2V3aXNl LgorICAgIAkoYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3LgorICAgIAko YW1kNjRfbGludXhfaW5pdF9hYmkpOiBTZXQgdGFyZ2V0IGRlc2NyaXB0aW9uIHRvCisgICAgCXRk ZXNjX2FtZDY0X2xpbnV4IGlmIG5lZWRlZC4gIFN1cHBvcnQgb3JpZ19yYXggaW4gdGFyZ2V0Cisg ICAgCWRlc2NyaXB0aW9uLiAgRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lIG5v cgorICAgIAlzZXRfZ2RiYXJjaF9yZWdpc3Rlcl90eXBlLiAgQ2FsbAorICAgIAlzZXRfZ2RiYXJj aF9jb3JlX3JlYWRfZGVzY3JpcHRpb24uCisgICAgCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF90 ZGVwKTogQ2FsbAorICAgIAlpbml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4LgorICAgIAorICAg IAkqIGFtZDY0LWxpbnV4LXRkZXAuaCAodGRlc2NfYW1kNjRfbGludXgpOiBOZXcuCisgICAgCisg ICAgCSogYW1kNjQtdGRlcC5jOiAgSW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jIi4KKyAg ICAJKGFtZDY0X3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKyAgICAJKGFtZDY0X3JlZ2lzdGVy X25hbWUpOiBMaWtld2lzZS4KKyAgICAJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4K KyAgICAJKGFtZDY0X2luaXRfYWJpKTogIFNldCBudW1fY29yZV9yZWdzIGFuZCByZWdpc3Rlcl9u YW1lcy4gIFNldAorICAgIAl0YXJnZXQgZGVzY3JpcHRpb24gdG8gdGRlc2NfYW1kNjQgaWYgbmVl ZGVkLiAgRG9uJ3QgY2FsbAorICAgIAlzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lIG5vciBzZXRf Z2RiYXJjaF9yZWdpc3Rlcl90eXBlLgorICAgIAkoX2luaXRpYWxpemVfYW1kNjRfdGRlcCk6IE5l dy4KKyAgICAKKyAgICAJKiBpMzg2LWxpbnV4LW5hdC5jIChpMzg2X2xpbnV4X3JlYWRfZGVzY3Jp cHRpb24pOiBOZXcuCisgICAgCShfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X25hdCk6IFNldCB0b19y ZWFkX2Rlc2NyaXB0aW9uIHRvCisgICAgCWkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbi4KKyAg ICAKKyAgICAJKiBpMzg2LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9pMzg2 LWxpbnV4LmMiLgorICAgIAkoaTM4Nl9saW51eF9yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlZC4KKyAg ICAJKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3LgorICAgIAkoaTM4Nl9s aW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisgICAgCShpMzg2X2xpbnV4X2luaXRf YWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lLgorICAgIAlTZXQgdGFy Z2V0IGRlc2NyaXB0aW9uIHRvIHRkZXNjX2kzODZfbGludXggaWYgbmVlZGVkLiAgU3VwcG9ydAor ICAgIAlvcmlnX2VheC4gIFNldCByZWdpc3Rlcl9yZWdncm91cF9wLiAgQ2FsbAorICAgIAlzZXRf Z2RiYXJjaF9jb3JlX3JlYWRfZGVzY3JpcHRpb24uCisgICAgCShfaW5pdGlhbGl6ZV9pMzg2X2xp bnV4X3RkZXApOiBDYWxsIGluaXRpYWxpemVfdGRlc2NfaTM4Nl9saW51eC4KKyAgICAKKyAgICAJ KiBpMzg2LWxpbnV4LXRkZXAuaCAodGRlc2NfaTM4Nl9saW51eCk6IE5ldy4KKyAgICAKKyAgICAJ KiBpMzg2LW50by10ZGVwLmMgKGkzODZudG9fcmVnc2V0X2lkKTogUmVwbGFjZSBJMzg2X05VTV9G UkVHUworICAgIAl3aXRoIEkzODdfTlVNX1JFR1MuCisgICAgCisgICAgCSogaTM4Ni10ZGVwLmM6 IEluY2x1ZGUgImZlYXR1cmVzL2kzODYvaTM4Ni5jIi4KKyAgICAJKGkzODZfcmVnaXN0ZXJfbmFt ZXMpOiBNYWtlIGl0IGNvbnN0LgorICAgIAkoaTM4Nl9tbXhfbmFtZXMpOiBMaWtld2lzZS4KKyAg ICAJKGkzODZfbnVtX3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKyAgICAJKGkzODZfcmVnaXN0 ZXJfbmFtZSk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9lZmxhZ3NfdHlwZSk6IExpa2V3aXNlLgor ICAgIAkoaTM4Nl9teGNzcl90eXBlKTogTGlrZXdpc2UuCisgICAgCShpMzg2X3NzZV90eXBlKTog TGlrZXdpc2UuCisgICAgCShpMzg2X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKyAgICAJKGkz ODdfZXh0X3R5cGUpOiBDYWxsIHRkZXNjX2ZpbmRfdHlwZSBpbnN0ZWFkIG9mIGFyY2hfZmxvYXRf dHlwZS4KKyAgICAJKGkzODZfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBOZXcuCisgICAgCShpMzg2 X3BzZXVkb19yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisgICAgCShpMzg2X21teF90eXBlKTog TWFrZSBpdCBzdGF0aWMuCisgICAgCShpMzg2X2dkYmFyY2hfaW5pdCk6IENoZWNrIGFyY2guICBS ZXBsYWNlIEkzODZfTlVNX0ZSRUdTIHdpdGgKKyAgICAJSTM4N19OVU1fUkVHUy4gIFNldCBudW1f Y29yZV9yZWdzIGFuZCByZWdpc3Rlcl9uYW1lcy4gIERvbid0CisgICAgCWNhbGwgc2V0X2dkYmFy Y2hfcmVnaXN0ZXJfbmFtZSBub3Igc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZS4KKyAgICAJU2V0 IHJlZ2lzdGVyX3JlZ2dyb3VwX3AuICBTZXQgdGFyZ2V0IGRlc2NyaXB0aW9uIHRvIHRkZXNjX2kz ODYKKyAgICAJaWYgbmVlZGVkLiAgQ2FsbCBzZXRfdGRlc2NfcHNldWRvX3JlZ2lzdGVyX3R5cGUs CisgICAgCXNldF90ZGVzY19wc2V1ZG9fcmVnaXN0ZXJfbmFtZSBhbmQgdGRlc2NfdXNlX3JlZ2lz dGVycy4KKyAgICAJKF9pbml0aWFsaXplX2kzODZfdGRlcCk6IENhbGwgaW5pdGlhbGl6ZV90ZGVz Y19pMzg2LgorICAgIAlpbml0aWFsaXplX3RkZXNjX3g4Nl82NC4KKyAgICAKKyAgICAJKiBpMzg2 LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogUmVtb3ZlIGkzODZfZWZsYWdzX3R5cGUsCisgICAgCWkz ODZfbXhjc3JfdHlwZSBhbmQgaTM4Nl9zc2VfdHlwZS4gIEFkZCBudW1fY29yZV9yZWdzLAorICAg IAlyZWdpc3Rlcl9uYW1lcywgdGRlc2MgYW5kIHJlZ2lzdGVyX3JlZ2dyb3VwX3AuCisgICAgCShJ Mzg2X05VTV9GUkVHUyk6IFJlbW92ZWQuCisgICAgCShpMzg2X2VmbGFnc190eXBlKTogTGlrZXdp c2UuCisgICAgCShpMzg2X214Y3NyX3R5cGUpOiBMaWtld2lzZS4KKyAgICAJKGkzODZfbW14X3R5 cGUpOiBMaWtld2lzZS4KKyAgICAJKGkzODZfc3NlX3R5cGUpOiBMaWtld2lzZS4KKyAgICAJKGkz ODZfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9yZWdudW0pOiBBZGQgSTM4 Nl9NWENTUl9SRUdOVU0uCisgICAgCShJMzg2X1NTRV9OVU1fUkVHUyk6IERlZmluZWQgd2l0aCBJ Mzg2X01YQ1NSX1JFR05VTS4KKyAgICAKKyAgICAJKiBpMzg3LXRkZXAuaCAoSTM4N19OVU1fUkVH Uyk6IE5ldy4KKyAgICAKKyAgICAJKiByZWdmb3JtYXRzL2kzODYvaTM4Ni1saW51eC5kYXQ6IEdl bmVyYXRlZC4KKyAgICAJKiByZWdmb3JtYXRzL2kzODYvaTM4Ni5kYXQ6IExpa2V3aXNlLgorICAg IAkqIHJlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1saW51eC5kYXQ6IExpa2V3aXNlLgorICAgIAkqIHJl Z2Zvcm1hdHMvaTM4Ni9hbWQ2NC5kYXQ6IExpa2V3aXNlLgorICAgIAorICAgIAkqIHJlZ2Zvcm1h dHMvcmVnLWkzODYtbGludXguZGF0OiBSZW1vdmVkLgorICAgIAkqIHJlZ2Zvcm1hdHMvcmVnLWkz ODYuZGF0OiBMaWtld2lzZS4KKyAgICAJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQtbGludXguZGF0 OiBMaWtld2lzZS4KKyAgICAJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQuZGF0OiBMaWtld2lzZS4K KyAgICAKKyAgICBnZGIvZ2Ric2VydmVyLworICAgIAorICAgIDIwMTAtMDMtMDEgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBNYWtlZmlsZS5pbiAoY2xlYW4p OiBSZXBsYWNlIHJlZy1pMzg2LmMsIHJlZy14ODYtNjQuYywKKyAgICAJcmVnLWkzODYtbGludXgu YyBhbmQgcmVnLXg4Ni02NC1saW51eC5jIHdpdGggaTM4Ni5jLCBhbWQ2NC5jLAorICAgIAlpMzg2 LWxpbnV4LmMgYW5kIGFtZDY0LWxpbnV4LmMuCisgICAgCShyZWctaTM4Ni5vKTogUmVtb3ZlZC4K KyAgICAJKHJlZy1pMzg2LmMpOiBMaWtld2lzZS4KKyAgICAJKHJlZy1pMzg2LWxpbnV4Lm8pOiBM aWtld2lzZS4KKyAgICAJKHJlZy1pMzg2LWxpbnV4LmMpOiBMaWtld2lzZS4KKyAgICAJKHJlZy14 ODYtNjQubyk6IExpa2V3aXNlLgorICAgIAkocmVnLXg4Ni02NC5jKTogTGlrZXdpc2UuCisgICAg CShyZWcteDg2LTY0LWxpbnV4Lm8pOiBMaWtld2lzZS4KKyAgICAJKHJlZy14ODYtNjQtbGludXgu Yyk6IExpa2V3aXNlLgorICAgIAkoaTM4Ni5vKTogTmV3LgorICAgIAkoaTM4Ni5jKTogTGlrZXdp c2UuCisgICAgCShpMzg2LWxpbnV4Lm8pOiBMaWtld2lzZS4KKyAgICAJKGkzODYtbGludXguYyk6 IExpa2V3aXNlLgorICAgIAkoYW1kNjQubyk6IExpa2V3aXNlLgorICAgIAkoYW1kNjQuYyk6IExp a2V3aXNlLgorICAgIAkoYW1kNjQtbGludXgubyk6IExpa2V3aXNlLgorICAgIAkoYW1kNjQtbGlu dXguYyk6IExpa2V3aXNlLgorICAgIAorICAgIAkqIGNvbmZpZ3VyZS5zcnYgKHNydl9pMzg2X3Jl Z29iaik6IE5ldy4KKyAgICAJKHNydl9pMzg2X2xpbnV4X3JlZ29iaik6IExpa2V3aXNlLgorICAg IAkoc3J2X2FtZDY0X3JlZ29iaik6IExpa2V3aXNlLgorICAgIAkoc3J2X2FtZDY0X2xpbnV4X3Jl Z29iaik6IExpa2V3aXNlLgorICAgIAkoc3J2X2kzODZfMzJiaXRfeG1sZmlsZXMpOiBMaWtld2lz ZS4KKyAgICAJKHNydl9pMzg2XzY0Yml0X3htbGZpbGVzKTogTGlrZXdpc2UuCisgICAgCShzcnZf aTM4Nl94bWxmaWxlcyk6IExpa2V3aXNlLgorICAgIAkoc3J2X2FtZDY0X3htbGZpbGVzKTogTGlr ZXdpc2UuCisgICAgCShzcnZfaTM4Nl9saW51eF94bWxmaWxlcyk6IExpa2V3aXNlLgorICAgIAko c3J2X2FtZDY0X2xpbnV4X3htbGZpbGVzKTogTGlrZXdpc2UuCisgICAgCShpWzM0NTY3XTg2LSot Y3lnd2luKik6IFNldCBzcnZfcmVnb2JqIHRvICRzcnZfaTM4Nl9yZWdvYmouICBTZXQKKyAgICAJ c3J2X3htbGZpbGVzIHRvICRzcnZfaTM4Nl94bWxmaWxlcy4KKyAgICAJKGlbMzQ1NjddODYtKi1t aW5ndzMyY2UqKTogTGlrZXdpc2UuCisgICAgCShpWzM0NTY3XTg2LSotbWluZ3cqKTogTGlrZXdp c2UuCisgICAgCShpWzM0NTY3XTg2LSotbnRvKik6IExpa2V3aXNlLgorICAgIAkoaVszNDU2N104 Ni0qLWxpbnV4Kik6IFNldCBzcnZfcmVnb2JqIHRvICRzcnZfaTM4Nl9saW51eF9yZWdvYmoKKyAg ICAJYW5kICRzcnZfYW1kNjRfbGludXhfcmVnb2JqLiAgU2V0IHNydl94bWxmaWxlcyB0bworICAg IAkkc3J2X2kzODZfbGludXhfeG1sZmlsZXMgYW5kICRzcnZfYW1kNjRfbGludXhfeG1sZmlsZXMu CisgICAgCSh4ODZfNjQtKi1saW51eCopOiBMaWtld2lzZS4KKyAgICAKKyAgICAJKiBsaW51eC14 ODYtbG93LmMgKGluaXRfcmVnaXN0ZXJzX3g4Nl82NF9saW51eCk6IFJlbW92ZWQuCisgICAgCShp bml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCk6IE5ldy4KKyAgICAJKHg4Nl9hcmNoX3NldHVwKTog UmVwbGFjZSBpbml0X3JlZ2lzdGVyc194ODZfNjRfbGludXggd2l0aAorICAgIAlpbml0X3JlZ2lz dGVyc19hbWQ2NF9saW51eC4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlLworICAgIAorICAgIDIw MTAtMDMtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBn ZGIueG1sL3RkZXNjLXJlZ3MuZXhwIChhcmNoaXRlY3R1cmUpOiBOZXcuICBTZXQgaXQgZm9yIHg4 Ni4KKyAgICAJKGxvYWRfZGVzY3JpcHRpb24pOiBTZXQgYXJjaGl0ZWN0dXJlIGlmIGRlZmluZWQu CisKKy0tLSAuL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEwLTA0LTAzIDIwOjI0OjUxLjAwMDAw MDAwMCArMDIwMAorKysrIC4vZ2RiL2FtZDY0LWxpbnV4LW5hdC5jCTIwMTAtMDQtMDMgMjA6NTk6 NTIuMDAwMDAwMDAwICswMjAwCitAQCAtODE3LDYgKzgxNywzOSBAQCBhbWQ2NF9saW51eF9zaWdp bmZvX2ZpeHVwIChzdHJ1Y3Qgc2lnaW5mCisgICAgIHJldHVybiAwOworIH0KKyAKKysvKiBHZXQg TGludXgveDg2IHRhcmdldCBkZXNjcmlwdGlvbiBmcm9tIHJ1bm5pbmcgdGFyZ2V0LgorKworKyAg IFZhbHVlIG9mIENTIHNlZ21lbnQgcmVnaXN0ZXI6CisrICAgICAxLiA2NGJpdCBwcm9jZXNzOiAw eDMzLgorKyAgICAgMi4gMzJiaXQgcHJvY2VzczogMHgyMy4KKysgKi8KKysKKysjZGVmaW5lIEFN RDY0X0xJTlVYX1VTRVI2NF9DUwkweDMzCisrCisrc3RhdGljIGNvbnN0IHN0cnVjdCB0YXJnZXRf ZGVzYyAqCisrYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0IHRhcmdldF9vcHMg Km9wcykKKyt7CisrICB1bnNpZ25lZCBsb25nIGNzOworKyAgaW50IHRpZDsKKysKKysgIC8qIEdO VS9MaW51eCBMV1AgSUQncyBhcmUgcHJvY2VzcyBJRCdzLiAgKi8KKysgIHRpZCA9IFRJREdFVCAo aW5mZXJpb3JfcHRpZCk7CisrICBpZiAodGlkID09IDApCisrICAgIHRpZCA9IFBJREdFVCAoaW5m ZXJpb3JfcHRpZCk7IC8qIE5vdCBhIHRocmVhZGVkIHByb2dyYW0uICAqLworKworKyAgLyogR2V0 IENTIHJlZ2lzdGVyLiAgKi8KKysgIGVycm5vID0gMDsKKysgIGNzID0gcHRyYWNlIChQVFJBQ0Vf UEVFS1VTRVIsIHRpZCwKKysJICAgICAgIG9mZnNldG9mIChzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVj dCwgY3MpLCAwKTsKKysgIGlmIChlcnJubyAhPSAwKQorKyAgICBwZXJyb3Jfd2l0aF9uYW1lIChf KCJDb3VsZG4ndCBnZXQgQ1MgcmVnaXN0ZXIiKSk7CisrCisrICBpZiAoY3MgPT0gQU1ENjRfTElO VVhfVVNFUjY0X0NTKQorKyAgICByZXR1cm4gdGRlc2NfYW1kNjRfbGludXg7CisrICBlbHNlCisr ICAgIHJldHVybiB0ZGVzY19pMzg2X2xpbnV4OworK30KKysKKyAvKiBQcm92aWRlIGEgcHJvdG90 eXBlIHRvIHNpbGVuY2UgLVdtaXNzaW5nLXByb3RvdHlwZXMuICAqLworIHZvaWQgX2luaXRpYWxp emVfYW1kNjRfbGludXhfbmF0ICh2b2lkKTsKKyAKK0BAIC04NjEsNiArODk0LDggQEAgX2luaXRp YWxpemVfYW1kNjRfbGludXhfbmF0ICh2b2lkKQorICAgbGludXhfZWxmY29yZV93cml0ZV9wcnN0 YXR1cyA9IGFtZDY0X2xpbnV4X2VsZmNvcmVfd3JpdGVfcHJzdGF0dXM7CisgICBsaW51eF9lbGZj b3JlX3dyaXRlX3ByZnByZWcgPSBhbWQ2NF9saW51eF9lbGZjb3JlX3dyaXRlX3ByZnByZWc7Cisg CisrICB0LT50b19yZWFkX2Rlc2NyaXB0aW9uID0gYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlv bjsKKysKKyAgIC8qIFJlZ2lzdGVyIHRoZSB0YXJnZXQuICAqLworICAgbGludXhfbmF0X2FkZF90 YXJnZXQgKHQpOworICAgbGludXhfbmF0X3NldF9uZXdfdGhyZWFkICh0LCBhbWQ2NF9saW51eF9u ZXdfdGhyZWFkKTsKKy0tLSAuL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMJMjAxMC0wNC0wMyAyMDoy NDo1MS4wMDAwMDAwMDAgKzAyMDAKKysrKyAuL2dkYi9hbWQ2NC1saW51eC10ZGVwLmMJMjAxMC0w NC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zNyw2ICszNyw4IEBACisgI2luY2x1 ZGUgInNvbGliLXN2cjQuaCIKKyAjaW5jbHVkZSAieG1sLXN5c2NhbGwuaCIKKyAKKysjaW5jbHVk ZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC1saW51eC5jIgorKworIC8qIFRoZSBzeXNjYWxsJ3MgWE1M IGZpbGVuYW1lIGZvciBpMzg2LiAgKi8KKyAjZGVmaW5lIFhNTF9TWVNDQUxMX0ZJTEVOQU1FX0FN RDY0ICJzeXNjYWxscy9hbWQ2NC1saW51eC54bWwiCisgCitAQCAtMjM0LDI2ICsyMzYsNiBAQCBz dGF0aWMgaW50IGFtZDY0X2xpbnV4X3NjX3JlZ19vZmZzZXRbXSA9CisgICAtMQkJCQkvKiAlZ3Mg Ki8KKyB9OworIAorLS8qIFJlcGxhY2VtZW50IHJlZ2lzdGVyIGZ1bmN0aW9ucyB3aGljaCBrbm93 IGFib3V0ICVvcmlnX3JheC4gICovCistCistc3RhdGljIGNvbnN0IGNoYXIgKgorLWFtZDY0X2xp bnV4X3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnKQorLXsK Ky0gIGlmIChyZWcgPT0gQU1ENjRfTElOVVhfT1JJR19SQVhfUkVHTlVNKQorLSAgICByZXR1cm4g Im9yaWdfcmF4IjsKKy0KKy0gIHJldHVybiBhbWQ2NF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBy ZWcpOworLX0KKy0KKy1zdGF0aWMgc3RydWN0IHR5cGUgKgorLWFtZDY0X2xpbnV4X3JlZ2lzdGVy X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnKQorLXsKKy0gIGlmIChyZWcg PT0gQU1ENjRfTElOVVhfT1JJR19SQVhfUkVHTlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBl IChnZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsKKy0KKy0gIHJldHVybiBhbWQ2NF9yZWdpc3Rlcl90 eXBlIChnZGJhcmNoLCByZWcpOworLX0KKy0KKyBzdGF0aWMgaW50CisgYW1kNjRfbGludXhfcmVn aXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0sCisg CQkJCSBzdHJ1Y3QgcmVnZ3JvdXAgKmdyb3VwKQorQEAgLTEzMzQsMTAgKzEzMTYsMzIgQEAgYW1k NjRfbGludXhfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyYworICAgcmV0dXJuIDA7CisgfQor IAorKy8qIEdldCBMaW51eC94ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZyb20gY29yZSBkdW1wLiAg Ki8KKysKKytzdGF0aWMgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoKKythbWQ2NF9saW51eF9j b3JlX3JlYWRfZGVzY3JpcHRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorKwkJCQkgIHN0 cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCisrCQkJCSAgYmZkICphYmZkKQorK3sKKysgIGFzZWN0 aW9uICpzZWN0aW9uID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGFiZmQsICIucmVnMiIpOwor KworKyAgaWYgKHNlY3Rpb24gPT0gTlVMTCkKKysgICAgcmV0dXJuIE5VTEw7CisrCisrICAvKiBM aW51eC94ODYtNjQuICAqLworKyAgcmV0dXJuIHRkZXNjX2FtZDY0X2xpbnV4OworK30KKysKKyBz dGF0aWMgdm9pZAorIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGlu Zm8sIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAgY29uc3Qgc3RydWN0IHRhcmdldF9k ZXNjICp0ZGVzYyA9IGluZm8udGFyZ2V0X2Rlc2M7CisrICBzdHJ1Y3QgdGRlc2NfYXJjaF9kYXRh ICp0ZGVzY19kYXRhID0gKHZvaWQgKikgaW5mby50ZGVwX2luZm87CisrICBjb25zdCBzdHJ1Y3Qg dGRlc2NfZmVhdHVyZSAqZmVhdHVyZTsKKysgIGludCB2YWxpZF9wOworKworKyAgZ2RiX2Fzc2Vy dCAodGRlc2NfZGF0YSk7CisgCisgICB0ZGVwLT5ncmVnc2V0X3JlZ19vZmZzZXQgPSBhbWQ2NF9s aW51eF9ncmVnc2V0X3JlZ19vZmZzZXQ7CisgICB0ZGVwLT5ncmVnc2V0X251bV9yZWdzID0gQVJS QVlfU0laRSAoYW1kNjRfbGludXhfZ3JlZ3NldF9yZWdfb2Zmc2V0KTsKK0BAIC0xMzQ1LDYgKzEz NDksMjMgQEAgYW1kNjRfbGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZgorIAorICAg YW1kNjRfaW5pdF9hYmkgKGluZm8sIGdkYmFyY2gpOworIAorKyAgLyogUmVzZXJ2ZSBhIG51bWJl ciBmb3Igb3JpZ19yYXguICAqLworKyAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEFN RDY0X0xJTlVYX05VTV9SRUdTKTsKKysKKysgIGlmICghIHRkZXNjX2hhc19yZWdpc3RlcnMgKHRk ZXNjKSkKKysgICAgdGRlc2MgPSB0ZGVzY19hbWQ2NF9saW51eDsKKysgIHRkZXAtPnRkZXNjID0g dGRlc2M7CisrCisrICBmZWF0dXJlID0gdGRlc2NfZmluZF9mZWF0dXJlICh0ZGVzYywgIm9yZy5n bnUuZ2RiLmkzODYubGludXgiKTsKKysgIGlmIChmZWF0dXJlID09IE5VTEwpCisrICAgIHJldHVy bjsKKysKKysgIHZhbGlkX3AgPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVyZSwgdGRl c2NfZGF0YSwKKysJCQkJICAgICBBTUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdOVU0sCisrCQkJCSAg ICAgIm9yaWdfcmF4Iik7CisrICBpZiAoIXZhbGlkX3ApCisrICAgIHJldHVybjsKKysKKyAgIHRk ZXAtPnNpZ3RyYW1wX3AgPSBhbWQ2NF9saW51eF9zaWd0cmFtcF9wOworICAgdGRlcC0+c2lnY29u dGV4dF9hZGRyID0gYW1kNjRfbGludXhfc2lnY29udGV4dF9hZGRyOworICAgdGRlcC0+c2NfcmVn X29mZnNldCA9IGFtZDY0X2xpbnV4X3NjX3JlZ19vZmZzZXQ7CitAQCAtMTM1OCwxMCArMTM3OSw4 IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmYKKyAKKyAgIC8qIEFk ZCB0aGUgJW9yaWdfcmF4IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4gICov CisgICBzZXRfZ2RiYXJjaF93cml0ZV9wYyAoZ2RiYXJjaCwgYW1kNjRfbGludXhfd3JpdGVfcGMp OworLSAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEFNRDY0X0xJTlVYX05VTV9SRUdT KTsKKy0gIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIGFtZDY0X2xpbnV4X3Jl Z2lzdGVyX25hbWUpOworLSAgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwgYW1k NjRfbGludXhfcmVnaXN0ZXJfdHlwZSk7CistICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9yZWdncm91 cF9wIChnZGJhcmNoLCBhbWQ2NF9saW51eF9yZWdpc3Rlcl9yZWdncm91cF9wKTsKKysKKysgIHRk ZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3AgPSBhbWQ2NF9saW51eF9yZWdpc3Rlcl9yZWdncm91cF9w OworIAorICAgLyogRnVuY3Rpb25zIGZvciAnY2F0Y2ggc3lzY2FsbCcuICAqLworICAgc2V0X3ht bF9zeXNjYWxsX2ZpbGVfbmFtZSAoWE1MX1NZU0NBTExfRklMRU5BTUVfQU1ENjQpOworQEAgLTEz NzUsNiArMTM5NCw5IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmYK KyAgIC8qIEdOVS9MaW51eCB1c2VzIFNWUjQtc3R5bGUgc2hhcmVkIGxpYnJhcmllcy4gICovCisg ICBzZXRfZ2RiYXJjaF9za2lwX3RyYW1wb2xpbmVfY29kZSAoZ2RiYXJjaCwgZmluZF9zb2xpYl90 cmFtcG9saW5lX3RhcmdldCk7CisgCisrICBzZXRfZ2RiYXJjaF9jb3JlX3JlYWRfZGVzY3JpcHRp b24gKGdkYmFyY2gsCisrCQkJCSAgICAgYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9u KTsKKysKKyAgIC8qIERpc3BsYWNlZCBzdGVwcGluZy4gICovCisgICBzZXRfZ2RiYXJjaF9kaXNw bGFjZWRfc3RlcF9jb3B5X2luc24gKGdkYmFyY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFtZDY0X2Rpc3BsYWNlZF9zdGVwX2NvcHlfaW5zbik7CitAQCAtMTU3 MSw0ICsxNTkzLDcgQEAgX2luaXRpYWxpemVfYW1kNjRfbGludXhfdGRlcCAodm9pZCkKKyB7Cisg ICBnZGJhcmNoX3JlZ2lzdGVyX29zYWJpIChiZmRfYXJjaF9pMzg2LCBiZmRfbWFjaF94ODZfNjQs CisgCQkJICBHREJfT1NBQklfTElOVVgsIGFtZDY0X2xpbnV4X2luaXRfYWJpKTsKKysKKysgIC8q IEluaXRpYWxpemUgdGhlIExpbnV4IHRhcmdldCBkZXNjcmlwdGlvbiAgKi8KKysgIGluaXRpYWxp emVfdGRlc2NfYW1kNjRfbGludXggKCk7CisgfQorLS0tIC4vZ2RiL2FtZDY0LWxpbnV4LXRkZXAu aAkyMDEwLTAxLTAxIDA4OjMxOjI5LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2FtZDY0LWxp bnV4LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTMxLDYg KzMxLDkgQEAKKyAvKiBUb3RhbCBudW1iZXIgb2YgcmVnaXN0ZXJzIGZvciBHTlUvTGludXguICAq LworICNkZWZpbmUgQU1ENjRfTElOVVhfTlVNX1JFR1MgKEFNRDY0X0xJTlVYX09SSUdfUkFYX1JF R05VTSArIDEpCisgCisrLyogTGludXggdGFyZ2V0IGRlc2NyaXB0aW9uLiAgKi8KKytleHRlcm4g c3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19hbWQ2NF9saW51eDsKKysKKyAvKiBFbnVtIHRoYXQg ZGVmaW5lcyB0aGUgc3lzY2FsbCBpZGVudGlmaWVycyBmb3IgYW1kNjQgbGludXguCisgICAgVXNl ZCBmb3IgcHJvY2VzcyByZWNvcmQvcmVwbGF5LCB0aGVzZSB3aWxsIGJlIHRyYW5zbGF0ZWQgaW50 bworICAgIGEgZ2RiLWNhbm9uaWNhbCBzZXQgb2Ygc3lzY2FsbCBpZHMgaW4gbGludXgtcmVjb3Jk LmMuICAqLworLS0tIC4vZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIwOjI0OjUxLjAwMDAw MDAwMCArMDIwMAorKysrIC4vZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAw MDAwMDAwMCArMDIwMAorQEAgLTQyLDYgKzQyLDggQEAKKyAjaW5jbHVkZSAiYW1kNjQtdGRlcC5o IgorICNpbmNsdWRlICJpMzg3LXRkZXAuaCIKKyAKKysjaW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9h bWQ2NC5jIgorKworIC8qIE5vdGUgdGhhdCB0aGUgQU1ENjQgYXJjaGl0ZWN0dXJlIHdhcyBwcmV2 aW91c2x5IGtub3duIGFzIHg4Ni02NC4KKyAgICBUaGUgbGF0dGVyIGlzIChmb3JldmVyKSBlbmdy YXZlZCBpbnRvIHRoZSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgYXMKKyAgICByZXR1cm5lZCBieSBj b25maWcuZ3Vlc3MsIGFuZCB1c2VkIGFzIHRoZSBuYW1lIGZvciB0aGUgQU1ENjQgcG9ydAorQEAg LTgzLDQ3ICs4NSw2IEBAIHN0YXRpYyBpbnQgYW1kNjRfZHVtbXlfY2FsbF9pbnRlZ2VyX3JlZ3MK KyAgIDkJCQkJLyogJXI5ICovCisgfTsKKyAKKy0vKiBSZXR1cm4gdGhlIG5hbWUgb2YgcmVnaXN0 ZXIgUkVHTlVNLiAgKi8KKy0KKy1jb25zdCBjaGFyICoKKy1hbWQ2NF9yZWdpc3Rlcl9uYW1lIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKKy17CistICBpZiAocmVnbnVtID49 IDAgJiYgcmVnbnVtIDwgQU1ENjRfTlVNX1JFR1MpCistICAgIHJldHVybiBhbWQ2NF9yZWdpc3Rl cl9uYW1lc1tyZWdudW1dOworLQorLSAgcmV0dXJuIE5VTEw7CistfQorLQorLS8qIFJldHVybiB0 aGUgR0RCIHR5cGUgb2JqZWN0IGZvciB0aGUgInN0YW5kYXJkIiBkYXRhIHR5cGUgb2YgZGF0YSBp bgorLSAgIHJlZ2lzdGVyIFJFR05VTS4gKi8KKy0KKy1zdHJ1Y3QgdHlwZSAqCistYW1kNjRfcmVn aXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCisteworLSAg aWYgKHJlZ251bSA+PSBBTUQ2NF9SQVhfUkVHTlVNICYmIHJlZ251bSA8PSBBTUQ2NF9SRElfUkVH TlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQ2NDsK Ky0gIGlmIChyZWdudW0gPT0gQU1ENjRfUkJQX1JFR05VTSB8fCByZWdudW0gPT0gQU1ENjRfUlNQ X1JFR05VTSkKKy0gICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fZGF0 YV9wdHI7CistICBpZiAocmVnbnVtID49IEFNRDY0X1I4X1JFR05VTSAmJiByZWdudW0gPD0gQU1E NjRfUjE1X1JFR05VTSkKKy0gICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0 aW5faW50NjQ7CistICBpZiAocmVnbnVtID09IEFNRDY0X1JJUF9SRUdOVU0pCistICAgIHJldHVy biBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2Z1bmNfcHRyOworLSAgaWYgKHJlZ251 bSA9PSBBTUQ2NF9FRkxBR1NfUkVHTlVNKQorLSAgICByZXR1cm4gaTM4Nl9lZmxhZ3NfdHlwZSAo Z2RiYXJjaCk7CistICBpZiAocmVnbnVtID49IEFNRDY0X0NTX1JFR05VTSAmJiByZWdudW0gPD0g QU1ENjRfR1NfUkVHTlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVp bHRpbl9pbnQzMjsKKy0gIGlmIChyZWdudW0gPj0gQU1ENjRfU1QwX1JFR05VTSAmJiByZWdudW0g PD0gQU1ENjRfU1QwX1JFR05VTSArIDcpCistICAgIHJldHVybiBpMzg3X2V4dF90eXBlIChnZGJh cmNoKTsKKy0gIGlmIChyZWdudW0gPj0gQU1ENjRfRkNUUkxfUkVHTlVNICYmIHJlZ251bSA8PSBB TUQ2NF9GQ1RSTF9SRUdOVU0gKyA3KQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNo KS0+YnVpbHRpbl9pbnQzMjsKKy0gIGlmIChyZWdudW0gPj0gQU1ENjRfWE1NMF9SRUdOVU0gJiYg cmVnbnVtIDw9IEFNRDY0X1hNTTBfUkVHTlVNICsgMTUpCistICAgIHJldHVybiBpMzg2X3NzZV90 eXBlIChnZGJhcmNoKTsKKy0gIGlmIChyZWdudW0gPT0gQU1ENjRfTVhDU1JfUkVHTlVNKQorLSAg ICByZXR1cm4gaTM4Nl9teGNzcl90eXBlIChnZGJhcmNoKTsKKy0KKy0gIGludGVybmFsX2Vycm9y IChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgcmVnbnVtIikpOworLX0KKy0KKyAvKiBE V0FSRiBSZWdpc3RlciBOdW1iZXIgTWFwcGluZyBhcyBkZWZpbmVkIGluIHRoZSBTeXN0ZW0gViBw c0FCSSwKKyAgICBzZWN0aW9uIDMuNi4gICovCisgCitAQCAtMjE1OCwxMSArMjExOSwxOSBAQCB2 b2lkCisgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gpCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFy Y2hfdGRlcCAoZ2RiYXJjaCk7CisrICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjID0g aW5mby50YXJnZXRfZGVzYzsKKyAKKyAgIC8qIEFNRDY0IGdlbmVyYWxseSB1c2VzIGBmeHNhdmUn IGluc3RlYWQgb2YgYGZzYXZlJyBmb3Igc2F2aW5nIGl0cworICAgICAgZmxvYXRpbmctcG9pbnQg cmVnaXN0ZXJzLiAgKi8KKyAgIHRkZXAtPnNpemVvZl9mcHJlZ3NldCA9IEkzODdfU0laRU9GX0ZY U0FWRTsKKyAKKysgIGlmICghIHRkZXNjX2hhc19yZWdpc3RlcnMgKHRkZXNjKSkKKysgICAgdGRl c2MgPSB0ZGVzY19hbWQ2NDsKKysgIHRkZXAtPnRkZXNjID0gdGRlc2M7CisrCisrICB0ZGVwLT5u dW1fY29yZV9yZWdzID0gQU1ENjRfTlVNX0dSRUdTICsgSTM4N19OVU1fUkVHUzsKKysgIHRkZXAt PnJlZ2lzdGVyX25hbWVzID0gYW1kNjRfcmVnaXN0ZXJfbmFtZXM7CisrCisgICAvKiBBTUQ2NCBo YXMgYW4gRlBVIGFuZCAxNiBTU0UgcmVnaXN0ZXJzLiAgKi8KKyAgIHRkZXAtPnN0MF9yZWdudW0g PSBBTUQ2NF9TVDBfUkVHTlVNOworICAgdGRlcC0+bnVtX3htbV9yZWdzID0gMTY7CitAQCAtMjE3 OCw4ICsyMTQ3LDYgQEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbwor ICAgc2V0X2dkYmFyY2hfbG9uZ19kb3VibGVfYml0IChnZGJhcmNoLCAxMjgpOworIAorICAgc2V0 X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEFNRDY0X05VTV9SRUdTKTsKKy0gIHNldF9nZGJh cmNoX3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIGFtZDY0X3JlZ2lzdGVyX25hbWUpOworLSAgc2V0 X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZSAoZ2RiYXJjaCwgYW1kNjRfcmVnaXN0ZXJfdHlwZSk7Cisg CisgICAvKiBSZWdpc3RlciBudW1iZXJzIG9mIHZhcmlvdXMgaW1wb3J0YW50IHJlZ2lzdGVycy4g ICovCisgICBzZXRfZ2RiYXJjaF9zcF9yZWdudW0gKGdkYmFyY2gsIEFNRDY0X1JTUF9SRUdOVU0p OyAvKiAlcnNwICovCitAQCAtMjI0MSw2ICsyMjA4LDE1IEBAIGFtZDY0X2luaXRfYWJpIChzdHJ1 Y3QgZ2RiYXJjaF9pbmZvIGluZm8KKyAKKyAgIHNldF9nZGJhcmNoX2dldF9sb25nam1wX3Rhcmdl dCAoZ2RiYXJjaCwgYW1kNjRfZ2V0X2xvbmdqbXBfdGFyZ2V0KTsKKyB9CisrCisrLyogUHJvdmlk ZSBhIHByb3RvdHlwZSB0byBzaWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8KKyt2b2lk IF9pbml0aWFsaXplX2FtZDY0X3RkZXAgKHZvaWQpOworKworK3ZvaWQKKytfaW5pdGlhbGl6ZV9h bWQ2NF90ZGVwICh2b2lkKQorK3sKKysgIGluaXRpYWxpemVfdGRlc2NfYW1kNjQgKCk7CisrfQor IAwKKyAKKyAvKiBUaGUgNjQtYml0IEZYU0FWRSBmb3JtYXQgZGlmZmVycyBmcm9tIHRoZSAzMi1i aXQgZm9ybWF0IGluIHRoZQorLS0tIC4vZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbgkyMDEwLTAx LTA0IDE2OjAzOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9NYWtlZmls ZS5pbgkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTIwMyw5ICsyMDMs OSBAQCBjbGVhbjoKKyAJcm0gLWYgKi5vICR7QUREX0ZJTEVTfSAqfgorIAlybSAtZiB2ZXJzaW9u LmMKKyAJcm0gLWYgZ2Ric2VydmVyJChFWEVFWFQpIGdkYnJlcGxheSQoRVhFRVhUKSBjb3JlIG1h a2UubG9nCistCXJtIC1mIHJlZy1hcm0uYyByZWctaTM4Ni5jIHJlZy1pYTY0LmMgcmVnLW0zMnIu YyByZWctbTY4ay5jCistCXJtIC1mIHJlZy1zaC5jIHJlZy1zcGFyYy5jIHJlZy1zcHUuYyByZWct eDg2LTY0LmMgcmVnLWkzODYtbGludXguYworLQlybSAtZiByZWctY3Jpcy5jIHJlZy1jcmlzdjMy LmMgcmVnLXg4Ni02NC1saW51eC5jIHJlZy14dGVuc2EuYworKwlybSAtZiByZWctYXJtLmMgaTM4 Ni5jIHJlZy1pYTY0LmMgcmVnLW0zMnIuYyByZWctbTY4ay5jCisrCXJtIC1mIHJlZy1zaC5jIHJl Zy1zcGFyYy5jIHJlZy1zcHUuYyBhbWQ2NC5jIGkzODYtbGludXguYworKwlybSAtZiByZWctY3Jp cy5jIHJlZy1jcmlzdjMyLmMgYW1kNjQtbGludXguYyByZWcteHRlbnNhLmMKKyAJcm0gLWYgYXJt LXdpdGgtaXdtbXh0LmMKKyAJcm0gLWYgYXJtLXdpdGgtdmZwdjIuYyBhcm0td2l0aC12ZnB2My5j IGFybS13aXRoLW5lb24uYworIAlybSAtZiBtaXBzLWxpbnV4LmMgbWlwczY0LWxpbnV4LmMKK0BA IC0zNDUsMTIgKzM0NSwxMiBAQCByZWctY3Jpcy5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMv cmVnCisgcmVnLWNyaXN2MzIubyA6IHJlZy1jcmlzdjMyLmMgJChyZWdkZWZfaCkKKyByZWctY3Jp c3YzMi5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLWNyaXN2MzIuZGF0ICQocmVnZGF0 X3NoKQorIAkkKFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVn LWNyaXN2MzIuZGF0IHJlZy1jcmlzdjMyLmMKKy1yZWctaTM4Ni5vIDogcmVnLWkzODYuYyAkKHJl Z2RlZl9oKQorLXJlZy1pMzg2LmMgOiAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9yZWctaTM4Ni5k YXQgJChyZWdkYXRfc2gpCistCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVn Zm9ybWF0cy9yZWctaTM4Ni5kYXQgcmVnLWkzODYuYworLXJlZy1pMzg2LWxpbnV4Lm8gOiByZWct aTM4Ni1saW51eC5jICQocmVnZGVmX2gpCistcmVnLWkzODYtbGludXguYyA6ICQoc3JjZGlyKS8u Li9yZWdmb3JtYXRzL3JlZy1pMzg2LWxpbnV4LmRhdCAkKHJlZ2RhdF9zaCkKKy0JJChTSEVMTCkg JChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pMzg2LWxpbnV4LmRhdCBy ZWctaTM4Ni1saW51eC5jCisraTM4Ni5vIDogaTM4Ni5jICQocmVnZGVmX2gpCisraTM4Ni5jIDog JChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LmRhdCAkKHJlZ2RhdF9zaCkKKysJJChT SEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL2kzODYvaTM4Ni5kYXQg aTM4Ni5jCisraTM4Ni1saW51eC5vIDogaTM4Ni1saW51eC5jICQocmVnZGVmX2gpCisraTM4Ni1s aW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWxpbnV4LmRhdCAkKHJl Z2RhdF9zaCkKKysJJChTSEVMTCkgJChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRz L2kzODYvaTM4Ni1saW51eC5kYXQgaTM4Ni1saW51eC5jCisgcmVnLWlhNjQubyA6IHJlZy1pYTY0 LmMgJChyZWdkZWZfaCkKKyByZWctaWE2NC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVn LWlhNjQuZGF0ICQocmVnZGF0X3NoKQorIAkkKFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNkaXIp Ly4uL3JlZ2Zvcm1hdHMvcmVnLWlhNjQuZGF0IHJlZy1pYTY0LmMKK0BAIC00MzIsMTIgKzQzMiwx MiBAQCByZWctc3BhcmM2NC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvCisgcmVnLXNwdS5v IDogcmVnLXNwdS5jICQocmVnZGVmX2gpCisgcmVnLXNwdS5jIDogJChzcmNkaXIpLy4uL3JlZ2Zv cm1hdHMvcmVnLXNwdS5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAk KHNyY2RpcikvLi4vcmVnZm9ybWF0cy9yZWctc3B1LmRhdCByZWctc3B1LmMKKy1yZWcteDg2LTY0 Lm8gOiByZWcteDg2LTY0LmMgJChyZWdkZWZfaCkKKy1yZWcteDg2LTY0LmMgOiAkKHNyY2Rpcikv Li4vcmVnZm9ybWF0cy9yZWcteDg2LTY0LmRhdCAkKHJlZ2RhdF9zaCkKKy0JJChTSEVMTCkgJChy ZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy14ODYtNjQuZGF0IHJlZy14ODYt NjQuYworLXJlZy14ODYtNjQtbGludXgubyA6IHJlZy14ODYtNjQtbGludXguYyAkKHJlZ2RlZl9o KQorLXJlZy14ODYtNjQtbGludXguYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy14ODYt NjQtbGludXguZGF0ICQocmVnZGF0X3NoKQorLQkkKFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNk aXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1saW51eC5kYXQgcmVnLXg4Ni02NC1saW51eC5j CisrYW1kNjQubyA6IGFtZDY0LmMgJChyZWdkZWZfaCkKKythbWQ2NC5jIDogJChzcmNkaXIpLy4u L3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC5kYXQgJChyZWdkYXRfc2gpCisrCSQoU0hFTEwpICQocmVn ZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9pMzg2L2FtZDY0LmRhdCBhbWQ2NC5jCisr YW1kNjQtbGludXgubyA6IGFtZDY0LWxpbnV4LmMgJChyZWdkZWZfaCkKKythbWQ2NC1saW51eC5j IDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1saW51eC5kYXQgJChyZWdkYXRf c2gpCisrCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9pMzg2 L2FtZDY0LWxpbnV4LmRhdCBhbWQ2NC1saW51eC5jCisgcmVnLXh0ZW5zYS5vIDogcmVnLXh0ZW5z YS5jICQocmVnZGVmX2gpCisgcmVnLXh0ZW5zYS5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMv cmVnLXh0ZW5zYS5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNy Y2RpcikvLi4vcmVnZm9ybWF0cy9yZWcteHRlbnNhLmRhdCByZWcteHRlbnNhLmMKKy0tLSAuL2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlLnNydgkyMDEwLTAxLTA0IDE2OjAzOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuc3J2CTIwMTAtMDQtMDMgMjA6NTk6 NTIuMDAwMDAwMDAwICswMjAwCitAQCAtMjIsNiArMjIsMTggQEAKKyAjIERlZmF1bHQgaG9zdGlv X2xhc3RfZXJyb3IgaW1wbGVtZW50YXRpb24KKyBzcnZfaG9zdGlvX2Vycl9vYmpzPSJob3N0aW8t ZXJybm8ubyIKKyAKKytzcnZfaTM4Nl9yZWdvYmo9aTM4Ni5vCisrc3J2X2kzODZfbGludXhfcmVn b2JqPWkzODYtbGludXgubworK3Nydl9hbWQ2NF9yZWdvYmo9YW1kNjQubworK3Nydl9hbWQ2NF9s aW51eF9yZWdvYmo9YW1kNjQtbGludXgubworKworK3Nydl9pMzg2XzMyYml0X3htbGZpbGVzPSJp Mzg2LzMyYml0LWNvcmUueG1sIGkzODYvMzJiaXQtc3NlLnhtbCIKKytzcnZfaTM4Nl82NGJpdF94 bWxmaWxlcz0iaTM4Ni82NGJpdC1jb3JlLnhtbCBpMzg2LzY0Yml0LXNzZS54bWwiCisrc3J2X2kz ODZfeG1sZmlsZXM9ImkzODYvaTM4Ni54bWwgJHNydl9pMzg2XzMyYml0X3htbGZpbGVzIgorK3Ny dl9hbWQ2NF94bWxmaWxlcz0iaTM4Ni9hbWQ2NC54bWwgJHNydl9pMzg2XzY0Yml0X3htbGZpbGVz IgorK3Nydl9pMzg2X2xpbnV4X3htbGZpbGVzPSJpMzg2L2kzODYtbGludXgueG1sIGkzODYvMzJi aXQtbGludXgueG1sICRzcnZfaTM4Nl8zMmJpdF94bWxmaWxlcyIKKytzcnZfYW1kNjRfbGludXhf eG1sZmlsZXM9ImkzODYvYW1kNjQtbGludXgueG1sIGkzODYvNjRiaXQtbGludXgueG1sICRzcnZf aTM4Nl82NGJpdF94bWxmaWxlcyIKKysKKyAjIElucHV0IGlzIHRha2VuIGZyb20gdGhlICIke3Rh cmdldH0iIHZhcmlhYmxlLgorIAorIGNhc2UgIiR7dGFyZ2V0fSIgaW4KK0BAIC02MCwxMiArNzIs MTUgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorIAkJCXNydl9saW51eF91c3JyZWdzPXllcworIAkJ CXNydl9saW51eF90aHJlYWRfZGI9eWVzCisgCQkJOzsKKy0gIGlbMzQ1NjddODYtKi1jeWd3aW4q KQlzcnZfcmVnb2JqPXJlZy1pMzg2Lm8KKysgIGlbMzQ1NjddODYtKi1jeWd3aW4qKQlzcnZfcmVn b2JqPSIkc3J2X2kzODZfcmVnb2JqIgorIAkJCXNydl90Z3RvYmo9ImkzODYtbG93Lm8gd2luMzIt bG93Lm8gd2luMzItaTM4Ni1sb3cubyIKKysJCQlzcnZfeG1sZmlsZXM9IiRzcnZfaTM4Nl94bWxm aWxlcyIKKyAJCQk7OworLSAgaVszNDU2N104Ni0qLWxpbnV4KikJc3J2X3JlZ29iaj1yZWctaTM4 Ni1saW51eC5vCisrICBpWzM0NTY3XTg2LSotbGludXgqKQlzcnZfcmVnb2JqPSIkc3J2X2kzODZf bGludXhfcmVnb2JqIgorKwkJCXNydl94bWxmaWxlcz0iJHNydl9pMzg2X2xpbnV4X3htbGZpbGVz IgorIAkJCWlmIHRlc3QgIiRnZGJfY3ZfaTM4Nl9pc194ODZfNjQiID0geWVzIDsgdGhlbgorLQkJ CSAgICBzcnZfcmVnb2JqPSJyZWcteDg2LTY0LWxpbnV4Lm8gJHNydl9yZWdvYmoiCisrCQkJICAg IHNydl9yZWdvYmo9IiRzcnZfcmVnb2JqICRzcnZfYW1kNjRfbGludXhfcmVnb2JqIgorKwkJCSAg ICBzcnZfeG1sZmlsZXM9IiR7c3J2X3htbGZpbGVzfSAkc3J2X2FtZDY0X2xpbnV4X3htbGZpbGVz IgorIAkJCWZpCisgCQkJc3J2X3RndG9iaj0ibGludXgtbG93Lm8gbGludXgteDg2LWxvdy5vIGkz ODYtbG93Lm8gaTM4Ny1mcC5vIgorIAkJCXNydl9saW51eF91c3JyZWdzPXllcworQEAgLTczLDIw ICs4OCwyMyBAQCBjYXNlICIke3RhcmdldH0iIGluCisgCQkJc3J2X2xpbnV4X3RocmVhZF9kYj15 ZXMKKyAJCQk7OworICAgaVszNDU2N104Ni0qLW1pbmd3MzJjZSopCistCQkJc3J2X3JlZ29iaj1y ZWctaTM4Ni5vCisrCQkJc3J2X3JlZ29iaj0iJHNydl9pMzg2X3JlZ29iaiIKKyAJCQlzcnZfdGd0 b2JqPSJpMzg2LWxvdy5vIHdpbjMyLWxvdy5vIHdpbjMyLWkzODYtbG93Lm8iCisgCQkJc3J2X3Rn dG9iaj0iJHtzcnZfdGd0b2JqfSB3aW5jZWNvbXBhdC5vIgorKwkJCXNydl94bWxmaWxlcz0iJHNy dl9pMzg2X3htbGZpbGVzIgorIAkJCSMgaG9zdGlvX2xhc3RfZXJyb3IgaW1wbGVtZW50YXRpb24g aXMgaW4gd2luMzItbG93LmMKKyAJCQlzcnZfaG9zdGlvX2Vycl9vYmpzPSIiCisgCQkJc3J2X21p bmd3PXllcworIAkJCXNydl9taW5nd2NlPXllcworIAkJCTs7CistICBpWzM0NTY3XTg2LSotbWlu Z3cqKQlzcnZfcmVnb2JqPXJlZy1pMzg2Lm8KKysgIGlbMzQ1NjddODYtKi1taW5ndyopCXNydl9y ZWdvYmo9IiRzcnZfaTM4Nl9yZWdvYmoiCisgCQkJc3J2X3RndG9iaj0iaTM4Ni1sb3cubyB3aW4z Mi1sb3cubyB3aW4zMi1pMzg2LWxvdy5vIgorKwkJCXNydl94bWxmaWxlcz0iJHNydl9pMzg2X3ht bGZpbGVzIgorIAkJCXNydl9taW5ndz15ZXMKKyAJCQk7OworLSAgaVszNDU2N104Ni0qLW50byop CXNydl9yZWdvYmo9cmVnLWkzODYubworKyAgaVszNDU2N104Ni0qLW50byopCXNydl9yZWdvYmo9 IiRzcnZfaTM4Nl9yZWdvYmoiCisgCQkJc3J2X3RndG9iaj0ibnRvLWxvdy5vIG50by14ODYtbG93 Lm8iCisrCQkJc3J2X3htbGZpbGVzPSIkc3J2X2kzODZfeG1sZmlsZXMiCisgCQkJc3J2X3FueD0i eWVzIgorIAkJCTs7CisgICBpYTY0LSotbGludXgqKQlzcnZfcmVnb2JqPXJlZy1pYTY0Lm8KK0BA IC0yMDYsOCArMjI0LDkgQEAgY2FzZSAiJHt0YXJnZXR9IiBpbgorICAgc3B1Ki0qLSopCQlzcnZf cmVnb2JqPXJlZy1zcHUubworIAkJCXNydl90Z3RvYmo9InNwdS1sb3cubyIKKyAJCQk7OworLSAg eDg2XzY0LSotbGludXgqKQlzcnZfcmVnb2JqPSJyZWcteDg2LTY0LWxpbnV4Lm8gcmVnLWkzODYt bGludXgubyIKKysgIHg4Nl82NC0qLWxpbnV4KikJc3J2X3JlZ29iaj0iJHNydl9hbWQ2NF9saW51 eF9yZWdvYmogJHNydl9pMzg2X2xpbnV4X3JlZ29iaiIKKyAJCQlzcnZfdGd0b2JqPSJsaW51eC1s b3cubyBsaW51eC14ODYtbG93Lm8gaTM4Ni1sb3cubyBpMzg3LWZwLm8iCisrCQkJc3J2X3htbGZp bGVzPSIkc3J2X2kzODZfbGludXhfeG1sZmlsZXMgJHNydl9hbWQ2NF9saW51eF94bWxmaWxlcyIK KyAJCQlzcnZfbGludXhfdXNycmVncz15ZXMgIyBUaGlzIGlzIGZvciBpMzg2IHByb2dzLgorIAkJ CXNydl9saW51eF9yZWdzZXRzPXllcworIAkJCXNydl9saW51eF90aHJlYWRfZGI9eWVzCistLS0g Li9nZGIvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuYwkyMDEwLTAxLTIwIDIzOjU1OjM4LjAwMDAw MDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9saW51eC14ODYtbG93LmMJMjAxMC0wNC0w MyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNywxMCArMjcsMTAgQEAKKyAKKyAjaW5j bHVkZSAiZ2RiX3Byb2Nfc2VydmljZS5oIgorIAorLS8qIERlZmluZWQgaW4gYXV0by1nZW5lcmF0 ZWQgZmlsZSByZWctaTM4Ni1saW51eC5jLiAgKi8KKysvKiBEZWZpbmVkIGluIGF1dG8tZ2VuZXJh dGVkIGZpbGUgaTM4Ni1saW51eC5jLiAgKi8KKyB2b2lkIGluaXRfcmVnaXN0ZXJzX2kzODZfbGlu dXggKHZvaWQpOworLS8qIERlZmluZWQgaW4gYXV0by1nZW5lcmF0ZWQgZmlsZSByZWcteDg2LTY0 LWxpbnV4LmMuICAqLworLXZvaWQgaW5pdF9yZWdpc3RlcnNfeDg2XzY0X2xpbnV4ICh2b2lkKTsK KysvKiBEZWZpbmVkIGluIGF1dG8tZ2VuZXJhdGVkIGZpbGUgYW1kNjQtbGludXguYy4gICovCisr dm9pZCBpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCAodm9pZCk7CisgCisgI2luY2x1ZGUgPHN5 cy9yZWcuaD4KKyAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorQEAgLTc5Miw3ICs3OTIsNyBAQCB4 ODZfYXJjaF9zZXR1cCAodm9pZCkKKyAgICAgfQorICAgZWxzZSBpZiAodXNlXzY0Yml0KQorICAg ICB7CistICAgICAgaW5pdF9yZWdpc3RlcnNfeDg2XzY0X2xpbnV4ICgpOworKyAgICAgIGluaXRf cmVnaXN0ZXJzX2FtZDY0X2xpbnV4ICgpOworIAorICAgICAgIC8qIEFtZDY0IGRvZXNuJ3QgaGF2 ZSBIQVZFX0xJTlVYX1VTUlJFR1MuICAqLworICAgICAgIHRoZV9sb3dfdGFyZ2V0Lm51bV9yZWdz ID0gLTE7CistLS0gLi9nZGIvaTM4Ni1saW51eC1uYXQuYwkyMDEwLTA0LTAzIDIwOjI0OjUxLjAw MDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODYtbGludXgtbmF0LmMJMjAxMC0wNC0wMyAyMDo1 OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC04NjgsNiArODY4LDE0IEBAIGkzODZfbGludXhfY2hp bGRfcG9zdF9zdGFydHVwX2luZmVyaW9yICgKKyAgIHN1cGVyX3Bvc3Rfc3RhcnR1cF9pbmZlcmlv ciAocHRpZCk7CisgfQorIAorKy8qIEdldCBMaW51eC94ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZy b20gcnVubmluZyB0YXJnZXQuICAqLworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rl c2MgKgorK2kzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKm9w cykKKyt7CisrICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKyt9CisrCisgdm9pZAorIF9pbml0 aWFsaXplX2kzODZfbGludXhfbmF0ICh2b2lkKQorIHsKK0BAIC04OTcsNiArOTA1LDggQEAgX2lu aXRpYWxpemVfaTM4Nl9saW51eF9uYXQgKHZvaWQpCisgICB0LT50b19mZXRjaF9yZWdpc3RlcnMg PSBpMzg2X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVyczsKKyAgIHQtPnRvX3N0b3JlX3Jl Z2lzdGVycyA9IGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzOworIAorKyAgdC0+ dG9fcmVhZF9kZXNjcmlwdGlvbiA9IGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbjsKKysKKyAg IC8qIFJlZ2lzdGVyIHRoZSB0YXJnZXQuICAqLworICAgbGludXhfbmF0X2FkZF90YXJnZXQgKHQp OworICAgbGludXhfbmF0X3NldF9uZXdfdGhyZWFkICh0LCBpMzg2X2xpbnV4X25ld190aHJlYWQp OworLS0tIC4vZ2RiL2kzODYtbGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAw MDAwICswMjAwCisrKysgLi9nZGIvaTM4Ni1saW51eC10ZGVwLmMJMjAxMC0wNC0wMyAyMDo1OTo1 Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC00Niw2ICs0Niw4IEBACisgI2luY2x1ZGUgImxpbnV4LXJl Y29yZC5oIgorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKysjaW5jbHVkZSAiZmVhdHVyZXMvaTM4 Ni9pMzg2LWxpbnV4LmMiCisrCisgLyogU3VwcG9ydGVkIHJlZ2lzdGVyIG5vdGUgc2VjdGlvbnMu ICAqLworIHN0YXRpYyBzdHJ1Y3QgY29yZV9yZWdzZXRfc2VjdGlvbiBpMzg2X2xpbnV4X3JlZ3Nl dF9zZWN0aW9uc1tdID0KKyB7CitAQCAtNTUsMTggKzU3LDYgQEAgc3RhdGljIHN0cnVjdCBjb3Jl X3JlZ3NldF9zZWN0aW9uIGkzODZfbAorICAgeyBOVUxMLCAwIH0KKyB9OworIAorLS8qIFJldHVy biB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUcuICAqLworLQorLXN0YXRpYyBjb25zdCBjaGFyICoK Ky1pMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQg cmVnKQorLXsKKy0gIC8qIERlYWwgd2l0aCB0aGUgZXh0cmEgIm9yaWdfZWF4IiBwc2V1ZG8gcmVn aXN0ZXIuICAqLworLSAgaWYgKHJlZyA9PSBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSkKKy0g ICAgcmV0dXJuICJvcmlnX2VheCI7CistCistICByZXR1cm4gaTM4Nl9yZWdpc3Rlcl9uYW1lIChn ZGJhcmNoLCByZWcpOworLX0KKy0KKyAvKiBSZXR1cm4gbm9uLXplcm8sIHdoZW4gdGhlIHJlZ2lz dGVyIGlzIGluIHRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyCisgICAgZ3JvdXAuICBQdXQgdGhl IExJTlVYX09SSUdfRUFYIHJlZ2lzdGVyIGluIHRoZSBzeXN0ZW0gZ3JvdXAuICAqLworIHN0YXRp YyBpbnQKK0BAIC01NzAsMjEgKzU2MCw1NyBAQCBzdGF0aWMgaW50IGkzODZfbGludXhfc2NfcmVn X29mZnNldFtdID0KKyAgIDAgKiA0CQkJCS8qICVncyAqLworIH07CisgCisrLyogR2V0IExpbnV4 L3g4NiB0YXJnZXQgZGVzY3JpcHRpb24gZnJvbSBjb3JlIGR1bXAuICAqLworKworK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKgorK2kzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0 aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKysJCQkJICBzdHJ1Y3QgdGFyZ2V0X29wcyAq dGFyZ2V0LAorKwkJCQkgIGJmZCAqYWJmZCkKKyt7CisrICBhc2VjdGlvbiAqc2VjdGlvbiA9IGJm ZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChhYmZkLCAiLnJlZzIiKTsKKysKKysgIGlmIChzZWN0aW9u ID09IE5VTEwpCisrICAgIHJldHVybiBOVUxMOworKworKyAgLyogTGludXgvaTM4Ni4gICovCisr ICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKyt9CisrCisgc3RhdGljIHZvaWQKKyBpMzg2X2xp bnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoKQorIHsKKyAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAg KGdkYmFyY2gpOworKyAgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzYyA9IGluZm8udGFy Z2V0X2Rlc2M7CisrICBzdHJ1Y3QgdGRlc2NfYXJjaF9kYXRhICp0ZGVzY19kYXRhID0gKHZvaWQg KikgaW5mby50ZGVwX2luZm87CisrICBjb25zdCBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVy ZTsKKysgIGludCB2YWxpZF9wOworKworKyAgZ2RiX2Fzc2VydCAodGRlc2NfZGF0YSk7CisgCisg ICAvKiBHTlUvTGludXggdXNlcyBFTEYuICAqLworICAgaTM4Nl9lbGZfaW5pdF9hYmkgKGluZm8s IGdkYmFyY2gpOworIAorLSAgLyogU2luY2Ugd2UgaGF2ZSB0aGUgZXh0cmEgIm9yaWdfZWF4IiBy ZWdpc3RlciBvbiBHTlUvTGludXgsIHdlIGhhdmUKKy0gICAgIHRvIGFkanVzdCBhIGZldyB0aGlu Z3MuICAqLworKyAgLyogUmVzZXJ2ZSBhIG51bWJlciBmb3Igb3JpZ19lYXguICAqLworKyAgc2V0 X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEkzODZfTElOVVhfTlVNX1JFR1MpOworKworKyAg aWYgKCEgdGRlc2NfaGFzX3JlZ2lzdGVycyAodGRlc2MpKQorKyAgICB0ZGVzYyA9IHRkZXNjX2kz ODZfbGludXg7CisrICB0ZGVwLT50ZGVzYyA9IHRkZXNjOworKworKyAgZmVhdHVyZSA9IHRkZXNj X2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcuZ251LmdkYi5pMzg2LmxpbnV4Iik7CisrICBpZiAo ZmVhdHVyZSA9PSBOVUxMKQorKyAgICByZXR1cm47CisrCisrICB2YWxpZF9wID0gdGRlc2NfbnVt YmVyZWRfcmVnaXN0ZXIgKGZlYXR1cmUsIHRkZXNjX2RhdGEsCisrCQkJCSAgICAgSTM4Nl9MSU5V WF9PUklHX0VBWF9SRUdOVU0sCisrCQkJCSAgICAgIm9yaWdfZWF4Iik7CisrICBpZiAoIXZhbGlk X3ApCisrICAgIHJldHVybjsKKyAKKysgIC8qIEFkZCB0aGUgJW9yaWdfZWF4IHJlZ2lzdGVyIHVz ZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4gICovCisgICBzZXRfZ2RiYXJjaF93cml0ZV9wYyAo Z2RiYXJjaCwgaTM4Nl9saW51eF93cml0ZV9wYyk7CistICBzZXRfZ2RiYXJjaF9udW1fcmVncyAo Z2RiYXJjaCwgSTM4Nl9MSU5VWF9OVU1fUkVHUyk7CistICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9u YW1lIChnZGJhcmNoLCBpMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUpOworLSAgc2V0X2dkYmFyY2hf cmVnaXN0ZXJfcmVnZ3JvdXBfcCAoZ2RiYXJjaCwgaTM4Nl9saW51eF9yZWdpc3Rlcl9yZWdncm91 cF9wKTsKKysKKysgIHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3AgPSBpMzg2X2xpbnV4X3JlZ2lz dGVyX3JlZ2dyb3VwX3A7CisgCisgICB0ZGVwLT5ncmVnc2V0X3JlZ19vZmZzZXQgPSBpMzg2X2xp bnV4X2dyZWdzZXRfcmVnX29mZnNldDsKKyAgIHRkZXAtPmdyZWdzZXRfbnVtX3JlZ3MgPSBBUlJB WV9TSVpFIChpMzg2X2xpbnV4X2dyZWdzZXRfcmVnX29mZnNldCk7CitAQCAtNzgzLDYgKzgwOSw5 IEBAIGkzODZfbGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8KKyAgIC8qIEluc3Rh bGwgc3VwcG9ydGVkIHJlZ2lzdGVyIG5vdGUgc2VjdGlvbnMuICAqLworICAgc2V0X2dkYmFyY2hf Y29yZV9yZWdzZXRfc2VjdGlvbnMgKGdkYmFyY2gsIGkzODZfbGludXhfcmVnc2V0X3NlY3Rpb25z KTsKKyAKKysgIHNldF9nZGJhcmNoX2NvcmVfcmVhZF9kZXNjcmlwdGlvbiAoZ2RiYXJjaCwKKysJ CQkJICAgICBpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik7CisrCisgICAvKiBEaXNw bGFjZWQgc3RlcHBpbmcuICAqLworICAgc2V0X2dkYmFyY2hfZGlzcGxhY2VkX3N0ZXBfY29weV9p bnNuIChnZGJhcmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aW1wbGVfZGlzcGxhY2VkX3N0ZXBfY29weV9pbnNuKTsKK0BAIC04MTEsNCArODQwLDcgQEAgX2lu aXRpYWxpemVfaTM4Nl9saW51eF90ZGVwICh2b2lkKQorIHsKKyAgIGdkYmFyY2hfcmVnaXN0ZXJf b3NhYmkgKGJmZF9hcmNoX2kzODYsIDAsIEdEQl9PU0FCSV9MSU5VWCwKKyAJCQkgIGkzODZfbGlu dXhfaW5pdF9hYmkpOworKworKyAgLyogSW5pdGlhbGl6ZSB0aGUgTGludXggdGFyZ2V0IGRlc2Ny aXB0aW9uICAqLworKyAgaW5pdGlhbGl6ZV90ZGVzY19pMzg2X2xpbnV4ICgpOworIH0KKy0tLSAu L2dkYi9pMzg2LWxpbnV4LXRkZXAuaAkyMDEwLTAxLTAxIDA4OjMxOjM0LjAwMDAwMDAwMCArMDEw MAorKysrIC4vZ2RiL2kzODYtbGludXgtdGRlcC5oCTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAw MDAwICswMjAwCitAQCAtMzUsNCArMzUsNyBAQAorIC8qIFRvdGFsIG51bWJlciBvZiByZWdpc3Rl cnMgZm9yIEdOVS9MaW51eC4gICovCisgI2RlZmluZSBJMzg2X0xJTlVYX05VTV9SRUdTIChJMzg2 X0xJTlVYX09SSUdfRUFYX1JFR05VTSArIDEpCisgCisrLyogTGludXggdGFyZ2V0IGRlc2NyaXB0 aW9uLiAgKi8KKytleHRlcm4gc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19pMzg2X2xpbnV4Owor KworICNlbmRpZiAvKiBpMzg2LWxpbnV4LXRkZXAuaCAqLworLS0tIC4vZ2RiL2kzODYtbnRvLXRk ZXAuYwkyMDEwLTAxLTAxIDA4OjMxOjM0LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2kzODYt bnRvLXRkZXAuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTEyMiw3 ICsxMjIsNyBAQCBpMzg2bnRvX3JlZ3NldF9pZCAoaW50IHJlZ25vKQorICAgICByZXR1cm4gTlRP X1JFR19FTkQ7CisgICBlbHNlIGlmIChyZWdubyA8IEkzODZfTlVNX0dSRUdTKQorICAgICByZXR1 cm4gTlRPX1JFR19HRU5FUkFMOworLSAgZWxzZSBpZiAocmVnbm8gPCBJMzg2X05VTV9HUkVHUyAr IEkzODZfTlVNX0ZSRUdTKQorKyAgZWxzZSBpZiAocmVnbm8gPCBJMzg2X05VTV9HUkVHUyArIEkz ODdfTlVNX1JFR1MpCisgICAgIHJldHVybiBOVE9fUkVHX0ZMT0FUOworICAgZWxzZSBpZiAocmVn bm8gPCBJMzg2X1NTRV9OVU1fUkVHUykKKyAgICAgcmV0dXJuIE5UT19SRUdfRkxPQVQ7IC8qIFdl IHN0b3JlIHhtbSByZWdpc3RlcnMgaW4gZnhzYXZlX2FyZWEuICAqLworLS0tIC4vZ2RiL2kzODYt dGRlcC5jCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvaTM4 Ni10ZGVwLmMJMjAxMC0wNC0wMyAyMDo1OTo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC01NCw5ICs1 NCwxMSBAQAorICNpbmNsdWRlICJyZWNvcmQuaCIKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CisgCisr I2luY2x1ZGUgImZlYXR1cmVzL2kzODYvaTM4Ni5jIgorKworIC8qIFJlZ2lzdGVyIG5hbWVzLiAg Ki8KKyAKKy1zdGF0aWMgY2hhciAqaTM4Nl9yZWdpc3Rlcl9uYW1lc1tdID0KKytzdGF0aWMgY29u c3QgY2hhciAqaTM4Nl9yZWdpc3Rlcl9uYW1lc1tdID0KKyB7CisgICAiZWF4IiwgICAiZWN4Iiwg ICAgImVkeCIsICAgImVieCIsCisgICAiZXNwIiwgICAiZWJwIiwgICAgImVzaSIsICAgImVkaSIs CitAQCAtNzEsMTEgKzczLDkgQEAgc3RhdGljIGNoYXIgKmkzODZfcmVnaXN0ZXJfbmFtZXNbXSA9 CisgICAibXhjc3IiCisgfTsKKyAKKy1zdGF0aWMgY29uc3QgaW50IGkzODZfbnVtX3JlZ2lzdGVy X25hbWVzID0gQVJSQVlfU0laRSAoaTM4Nl9yZWdpc3Rlcl9uYW1lcyk7CistCisgLyogUmVnaXN0 ZXIgbmFtZXMgZm9yIE1NWCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8KKyAKKy1zdGF0aWMgY2hhciAq aTM4Nl9tbXhfbmFtZXNbXSA9Cisrc3RhdGljIGNvbnN0IGNoYXIgKmkzODZfbW14X25hbWVzW10g PQorIHsKKyAgICJtbTAiLCAibW0xIiwgIm1tMiIsICJtbTMiLAorICAgIm1tNCIsICJtbTUiLCAi bW02IiwgIm1tNyIKK0BAIC0xNDcsMTYgKzE0NywxMSBAQCBpMzg2X2ZwY19yZWdudW1fcCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyCisgCisgLyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJF R05VTS4gICovCisgCistY29uc3QgY2hhciAqCistaTM4Nl9yZWdpc3Rlcl9uYW1lIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKKytzdGF0aWMgY29uc3QgY2hhciAqCisraTM4 Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdu dW0pCisgeworLSAgaWYgKGkzODZfbW14X3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorLSAg ICByZXR1cm4gaTM4Nl9tbXhfbmFtZXNbcmVnbnVtIC0gSTM4N19NTTBfUkVHTlVNIChnZGJhcmNo X3RkZXAgKGdkYmFyY2gpKV07CistCistICBpZiAocmVnbnVtID49IDAgJiYgcmVnbnVtIDwgaTM4 Nl9udW1fcmVnaXN0ZXJfbmFtZXMpCistICAgIHJldHVybiBpMzg2X3JlZ2lzdGVyX25hbWVzW3Jl Z251bV07CistCistICByZXR1cm4gTlVMTDsKKysgIGdkYl9hc3NlcnQgKGkzODZfbW14X3JlZ251 bV9wIChnZGJhcmNoLCByZWdudW0pKTsKKysgIHJldHVybiBpMzg2X21teF9uYW1lc1tyZWdudW0g LSBJMzg3X01NMF9SRUdOVU0gKGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCkpXTsKKyB9CisgCisgLyog Q29udmVydCBhIGRieCByZWdpc3RlciBudW1iZXIgUkVHIHRvIHRoZSBhcHByb3ByaWF0ZSByZWdp c3RlcgorQEAgLTIxMTIsODcgKzIxMDcsMjIgQEAgaTM4Nl9yZXR1cm5fdmFsdWUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcgorIH0KKyAMCisgCistLyogQ29uc3RydWN0IHR5cGVzIGZvciBJU0Etc3Bl Y2lmaWMgcmVnaXN0ZXJzLiAgKi8KKy1zdHJ1Y3QgdHlwZSAqCistaTM4Nl9lZmxhZ3NfdHlwZSAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCisteworLSAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRl cCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CistCistICBpZiAoIXRkZXAtPmkzODZfZWZsYWdz X3R5cGUpCistICAgIHsKKy0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKy0KKy0gICAgICB0eXBl ID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90eXBlX2kzODZfZWZsYWdzIiwg NCk7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMCwgIkNGIik7CistICAg ICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMSwgTlVMTCk7CistICAgICAgYXBwZW5k X2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMiwgIlBGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5 cGVfZmxhZyAodHlwZSwgNCwgIkFGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAo dHlwZSwgNiwgIlpGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNywg IlNGIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgOCwgIlRGIik7Cist ICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgOSwgIklGIik7CistICAgICAgYXBw ZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTAsICJERiIpOworLSAgICAgIGFwcGVuZF9mbGFn c190eXBlX2ZsYWcgKHR5cGUsIDExLCAiT0YiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9m bGFnICh0eXBlLCAxNCwgIk5UIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlw ZSwgMTYsICJSRiIpOworLSAgICAgIGFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDE3LCAi Vk0iKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxOCwgIkFDIik7Cist ICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTksICJWSUYiKTsKKy0gICAgICBh cHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAyMCwgIlZJUCIpOworLSAgICAgIGFwcGVuZF9m bGFnc190eXBlX2ZsYWcgKHR5cGUsIDIxLCAiSUQiKTsKKy0KKy0gICAgICB0ZGVwLT5pMzg2X2Vm bGFnc190eXBlID0gdHlwZTsKKy0gICAgfQorLQorLSAgcmV0dXJuIHRkZXAtPmkzODZfZWZsYWdz X3R5cGU7CistfQorLQorLXN0cnVjdCB0eXBlICoKKy1pMzg2X214Y3NyX3R5cGUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoKQorLXsKKy0gIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJh cmNoX3RkZXAgKGdkYmFyY2gpOworLQorLSAgaWYgKCF0ZGVwLT5pMzg2X214Y3NyX3R5cGUpCist ICAgIHsKKy0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKy0KKy0gICAgICB0eXBlID0gYXJjaF9m bGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90eXBlX2kzODZfbXhjc3IiLCA0KTsKKy0gICAg ICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAwLCAiSUUiKTsKKy0gICAgICBhcHBlbmRf ZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxLCAiREUiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlw ZV9mbGFnICh0eXBlLCAyLCAiWkUiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0 eXBlLCAzLCAiT0UiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA0LCAi VUUiKTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA1LCAiUEUiKTsKKy0g ICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA2LCAiREFaIik7CistICAgICAgYXBw ZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNywgIklNIik7CistICAgICAgYXBwZW5kX2ZsYWdz X3R5cGVfZmxhZyAodHlwZSwgOCwgIkRNIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxh ZyAodHlwZSwgOSwgIlpNIik7CistICAgICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwg MTAsICJPTSIpOworLSAgICAgIGFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDExLCAiVU0i KTsKKy0gICAgICBhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxMiwgIlBNIik7CistICAg ICAgYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTUsICJGWiIpOworLQorLSAgICAgIHRk ZXAtPmkzODZfbXhjc3JfdHlwZSA9IHR5cGU7CistICAgIH0KKy0KKy0gIHJldHVybiB0ZGVwLT5p Mzg2X214Y3NyX3R5cGU7CistfQorLQorIHN0cnVjdCB0eXBlICoKKyBpMzg3X2V4dF90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVw ID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAKKyAgIGlmICghdGRlcC0+aTM4N19leHRfdHlw ZSkKKy0gICAgdGRlcC0+aTM4N19leHRfdHlwZQorLSAgICAgID0gYXJjaF9mbG9hdF90eXBlIChn ZGJhcmNoLCAtMSwgImJ1aWx0aW5fdHlwZV9pMzg3X2V4dCIsCistCQkJIGZsb2F0Zm9ybWF0c19p Mzg3X2V4dCk7CisrICAgIHsKKysgICAgICB0ZGVwLT5pMzg3X2V4dF90eXBlID0gdGRlc2NfZmlu ZF90eXBlIChnZGJhcmNoLCAiaTM4N19leHQiKTsKKysgICAgICBnZGJfYXNzZXJ0ICh0ZGVwLT5p Mzg3X2V4dF90eXBlICE9IE5VTEwpOworKyAgICB9CisgCisgICByZXR1cm4gdGRlcC0+aTM4N19l eHRfdHlwZTsKKyB9CisgCisgLyogQ29uc3RydWN0IHZlY3RvciB0eXBlIGZvciBNTVggcmVnaXN0 ZXJzLiAgKi8KKy1zdHJ1Y3QgdHlwZSAqCisrc3RhdGljIHN0cnVjdCB0eXBlICoKKyBpMzg2X21t eF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKKyB7CisgICBzdHJ1Y3QgZ2RiYXJjaF90 ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKK0BAIC0yMjMzLDg0ICsyMTYzLDE0 IEBAIGkzODZfbW14X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorICAgcmV0dXJuIHRk ZXAtPmkzODZfbW14X3R5cGU7CisgfQorIAorLXN0cnVjdCB0eXBlICoKKy1pMzg2X3NzZV90eXBl IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKKy17CistICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKy0KKy0gIGlmICghdGRlcC0+aTM4Nl9zc2Vf dHlwZSkKKy0gICAgeworLSAgICAgIGNvbnN0IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ0ID0gYnVp bHRpbl90eXBlIChnZGJhcmNoKTsKKy0KKy0gICAgICAvKiBUaGUgdHlwZSB3ZSdyZSBidWlsZGlu ZyBpcyB0aGlzOiAqLworLSNpZiAwCistICAgICAgdW5pb24gX19nZGJfYnVpbHRpbl90eXBlX3Zl YzEyOGkKKy0gICAgICB7CistICAgICAgICBpbnQxMjhfdCB1aW50MTI4OworLSAgICAgICAgaW50 NjRfdCB2Ml9pbnQ2NFsyXTsKKy0gICAgICAgIGludDMyX3QgdjRfaW50MzJbNF07CistICAgICAg ICBpbnQxNl90IHY4X2ludDE2WzhdOworLSAgICAgICAgaW50OF90IHYxNl9pbnQ4WzE2XTsKKy0g ICAgICAgIGRvdWJsZSB2Ml9kb3VibGVbMl07CistICAgICAgICBmbG9hdCB2NF9mbG9hdFs0XTsK Ky0gICAgICB9OworLSNlbmRpZgorLQorLSAgICAgIHN0cnVjdCB0eXBlICp0OworLQorLSAgICAg IHQgPSBhcmNoX2NvbXBvc2l0ZV90eXBlIChnZGJhcmNoLAorLQkJCSAgICAgICAiX19nZGJfYnVp bHRpbl90eXBlX3ZlYzEyOGkiLCBUWVBFX0NPREVfVU5JT04pOworLSAgICAgIGFwcGVuZF9jb21w b3NpdGVfdHlwZV9maWVsZCAodCwgInY0X2Zsb2F0IiwKKy0JCQkJICAgaW5pdF92ZWN0b3JfdHlw ZSAoYnQtPmJ1aWx0aW5fZmxvYXQsIDQpKTsKKy0gICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVf ZmllbGQgKHQsICJ2Ml9kb3VibGUiLAorLQkJCQkgICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVp bHRpbl9kb3VibGUsIDIpKTsKKy0gICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQgKHQs ICJ2MTZfaW50OCIsCistCQkJCSAgIGluaXRfdmVjdG9yX3R5cGUgKGJ0LT5idWlsdGluX2ludDgs IDE2KSk7CistICAgICAgYXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0LCAidjhfaW50MTYi LAorLQkJCQkgICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRpbl9pbnQxNiwgOCkpOworLSAg ICAgIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodCwgInY0X2ludDMyIiwKKy0JCQkJICAg aW5pdF92ZWN0b3JfdHlwZSAoYnQtPmJ1aWx0aW5faW50MzIsIDQpKTsKKy0gICAgICBhcHBlbmRf Y29tcG9zaXRlX3R5cGVfZmllbGQgKHQsICJ2Ml9pbnQ2NCIsCistCQkJCSAgIGluaXRfdmVjdG9y X3R5cGUgKGJ0LT5idWlsdGluX2ludDY0LCAyKSk7CistICAgICAgYXBwZW5kX2NvbXBvc2l0ZV90 eXBlX2ZpZWxkICh0LCAidWludDEyOCIsIGJ0LT5idWlsdGluX2ludDEyOCk7CistCistICAgICAg VFlQRV9WRUNUT1IgKHQpID0gMTsKKy0gICAgICBUWVBFX05BTUUgKHQpID0gImJ1aWx0aW5fdHlw ZV92ZWMxMjhpIjsKKy0gICAgICB0ZGVwLT5pMzg2X3NzZV90eXBlID0gdDsKKy0gICAgfQorLQor LSAgcmV0dXJuIHRkZXAtPmkzODZfc3NlX3R5cGU7CistfQorLQorIC8qIFJldHVybiB0aGUgR0RC IHR5cGUgb2JqZWN0IGZvciB0aGUgInN0YW5kYXJkIiBkYXRhIHR5cGUgb2YgZGF0YSBpbgorLSAg IHJlZ2lzdGVyIFJFR05VTS4gIFBlcmhhcHMgJWVzaSBhbmQgJWVkaSBzaG91bGQgZ28gaGVyZSwg YnV0CistICAgcG90ZW50aWFsbHkgdGhleSBjb3VsZCBiZSB1c2VkIGZvciB0aGluZ3Mgb3RoZXIg dGhhbiBhZGRyZXNzLiAgKi8KKysgICByZWdpc3RlciBSRUdOVU0uICovCisgCisgc3RhdGljIHN0 cnVjdCB0eXBlICoKKy1pMzg2X3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBpbnQgcmVnbnVtKQorK2kzODZfcHNldWRvX3JlZ2lzdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorIHsKKy0gIGlmIChyZWdudW0gPT0gSTM4Nl9FSVBfUkVH TlVNKQorLSAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9mdW5jX3B0 cjsKKy0KKy0gIGlmIChyZWdudW0gPT0gSTM4Nl9FRkxBR1NfUkVHTlVNKQorLSAgICByZXR1cm4g aTM4Nl9lZmxhZ3NfdHlwZSAoZ2RiYXJjaCk7CistCistICBpZiAocmVnbnVtID09IEkzODZfRUJQ X1JFR05VTSB8fCByZWdudW0gPT0gSTM4Nl9FU1BfUkVHTlVNKQorLSAgICByZXR1cm4gYnVpbHRp bl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKKy0KKy0gIGlmIChpMzg2X2ZwX3Jl Z251bV9wIChnZGJhcmNoLCByZWdudW0pKQorLSAgICByZXR1cm4gaTM4N19leHRfdHlwZSAoZ2Ri YXJjaCk7CistCistICBpZiAoaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCist ICAgIHJldHVybiBpMzg2X21teF90eXBlIChnZGJhcmNoKTsKKy0KKy0gIGlmIChpMzg2X3NzZV9y ZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKy0gICAgcmV0dXJuIGkzODZfc3NlX3R5cGUgKGdk YmFyY2gpOworLQorLSAgaWYgKHJlZ251bSA9PSBJMzg3X01YQ1NSX1JFR05VTSAoZ2RiYXJjaF90 ZGVwIChnZGJhcmNoKSkpCistICAgIHJldHVybiBpMzg2X214Y3NyX3R5cGUgKGdkYmFyY2gpOwor LQorLSAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50OworKyAgZ2Ri X2Fzc2VydCAoaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpOworKyAgcmV0dXJu IGkzODZfbW14X3R5cGUgKGdkYmFyY2gpOworIH0KKyAKKyAvKiBNYXAgYSBjb29rZWQgcmVnaXN0 ZXIgb250byBhIHJhdyByZWdpc3RlciBvciBtZW1vcnkuICBGb3IgdGhlIGkzODYsCitAQCAtMjc2 MSw3ICsyNjIxLDcgQEAgaTM4Nl9nbzMyX2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIAor IAorICAgLyogREpHUFAgZG9lcyBub3Qgc3VwcG9ydCB0aGUgU1NFIHJlZ2lzdGVycy4gICovCisg ICB0ZGVwLT5udW1feG1tX3JlZ3MgPSAwOworLSAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFy Y2gsIEkzODZfTlVNX0dSRUdTICsgSTM4Nl9OVU1fRlJFR1MpOworKyAgc2V0X2dkYmFyY2hfbnVt X3JlZ3MgKGdkYmFyY2gsIEkzODZfTlVNX0dSRUdTICsgSTM4N19OVU1fUkVHUyk7CisgCisgICAv KiBOYXRpdmUgY29tcGlsZXIgaXMgR0NDLCB3aGljaCB1c2VzIHRoZSBTVlI0IHJlZ2lzdGVyIG51 bWJlcmluZworICAgICAgZXZlbiBpbiBDT0ZGIGFuZCBTVEFCUy4gIFNlZSB0aGUgY29tbWVudCBp biBpMzg2X2dkYmFyY2hfaW5pdCwKK0BAIC01NjIzLDEyICs1NDgzLDUwIEBAIGkzODZfZmFzdF90 cmFjZXBvaW50X3ZhbGlkX2F0IChzdHJ1Y3QgZ2QKKyAgIHJldHVybiAxOworIH0KKyAKKytzdGF0 aWMgaW50CisraTM4Nl92YWxpZGF0ZV90ZGVzY19wIChzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVw LAorKwkJICAgICAgIHN0cnVjdCB0ZGVzY19hcmNoX2RhdGEgKnRkZXNjX2RhdGEpCisreworKyAg Y29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzYyA9IHRkZXAtPnRkZXNjOworKyAgY29uc3Qg c3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmVfY29yZSwgKmZlYXR1cmVfdmVjdG9yOworKyAg aW50IGksIG51bV9yZWdzLCB2YWxpZF9wOworKworKyAgaWYgKCEgdGRlc2NfaGFzX3JlZ2lzdGVy cyAodGRlc2MpKQorKyAgICByZXR1cm4gMDsKKysKKysgIC8qIEdldCBjb3JlIHJlZ2lzdGVycy4g ICovCisrICBmZWF0dXJlX2NvcmUgPSB0ZGVzY19maW5kX2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdu dS5nZGIuaTM4Ni5jb3JlIik7CisrCisrICAvKiBHZXQgU1NFIHJlZ2lzdGVycy4gICovCisrICBm ZWF0dXJlX3ZlY3RvciA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcuZ251LmdkYi5p Mzg2LnNzZSIpOworKworKyAgaWYgKGZlYXR1cmVfY29yZSA9PSBOVUxMIHx8IGZlYXR1cmVfdmVj dG9yID09IE5VTEwpCisrICAgIHJldHVybiAwOworKworKyAgdmFsaWRfcCA9IDE7CisrCisrICBu dW1fcmVncyA9IHRkZXAtPm51bV9jb3JlX3JlZ3M7CisrICBmb3IgKGkgPSAwOyBpIDwgbnVtX3Jl Z3M7IGkrKykKKysgICAgdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVy ZV9jb3JlLCB0ZGVzY19kYXRhLCBpLAorKwkJCQkJdGRlcC0+cmVnaXN0ZXJfbmFtZXNbaV0pOwor KworKyAgLyogTmVlZCB0byBpbmNsdWRlICVteGNzciwgc28gYWRkIG9uZS4gICovCisrICBudW1f cmVncyArPSB0ZGVwLT5udW1feG1tX3JlZ3MgKyAxOworKyAgZm9yICg7IGkgPCBudW1fcmVnczsg aSsrKQorKyAgICB2YWxpZF9wICY9IHRkZXNjX251bWJlcmVkX3JlZ2lzdGVyIChmZWF0dXJlX3Zl Y3RvciwgdGRlc2NfZGF0YSwgaSwKKysJCQkJCXRkZXAtPnJlZ2lzdGVyX25hbWVzW2ldKTsKKysK KysgIHJldHVybiB2YWxpZF9wOworK30KKysKKyAMCisgc3RhdGljIHN0cnVjdCBnZGJhcmNoICoK KyBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2Ri YXJjaF9saXN0ICphcmNoZXMpCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcDsKKyAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOworKyAgc3RydWN0IHRkZXNjX2FyY2hfZGF0YSAqdGRl c2NfZGF0YTsKKysgIGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2M7CisgCisgICAvKiBJ ZiB0aGVyZSBpcyBhbHJlYWR5IGEgY2FuZGlkYXRlLCB1c2UgaXQuICAqLworICAgYXJjaGVzID0g Z2RiYXJjaF9saXN0X2xvb2t1cF9ieV9pbmZvIChhcmNoZXMsICZpbmZvKTsKK0BAIC01Njk5LDEy ICs1NTk3LDYgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorICAg ICAgYWxpZ25tZW50LiAgKi8KKyAgIHNldF9nZGJhcmNoX2xvbmdfZG91YmxlX2JpdCAoZ2RiYXJj aCwgOTYpOworIAorLSAgLyogVGhlIGRlZmF1bHQgQUJJIGluY2x1ZGVzIGdlbmVyYWwtcHVycG9z ZSByZWdpc3RlcnMsIAorLSAgICAgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzLCBhbmQgdGhlIFNT RSByZWdpc3RlcnMuICAqLworLSAgc2V0X2dkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gsIEkzODZf U1NFX05VTV9SRUdTKTsKKy0gIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUgKGdkYmFyY2gsIGkz ODZfcmVnaXN0ZXJfbmFtZSk7CistICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl90eXBlIChnZGJhcmNo LCBpMzg2X3JlZ2lzdGVyX3R5cGUpOworLQorICAgLyogUmVnaXN0ZXIgbnVtYmVycyBvZiB2YXJp b3VzIGltcG9ydGFudCByZWdpc3RlcnMuICAqLworICAgc2V0X2dkYmFyY2hfc3BfcmVnbnVtIChn ZGJhcmNoLCBJMzg2X0VTUF9SRUdOVU0pOyAvKiAlZXNwICovCisgICBzZXRfZ2RiYXJjaF9wY19y ZWdudW0gKGdkYmFyY2gsIEkzODZfRUlQX1JFR05VTSk7IC8qICVlaXAgKi8KK0BAIC01Nzc1LDEx ICs1NjY3LDYgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorIAor ICAgc2V0X2dkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZGJhcmNoLCA4KTsKKyAKKy0gIC8qIFdp cmUgaW4gdGhlIE1NWCByZWdpc3RlcnMuICAqLworLSAgc2V0X2dkYmFyY2hfbnVtX3BzZXVkb19y ZWdzIChnZGJhcmNoLCBpMzg2X251bV9tbXhfcmVncyk7CistICBzZXRfZ2RiYXJjaF9wc2V1ZG9f cmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk7CistICBz ZXRfZ2RiYXJjaF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKGdkYmFyY2gsIGkzODZfcHNldWRvX3Jl Z2lzdGVyX3dyaXRlKTsKKy0KKyAgIHNldF9nZGJhcmNoX3ByaW50X2luc24gKGdkYmFyY2gsIGkz ODZfcHJpbnRfaW5zbik7CisgCisgICBzZXRfZ2RiYXJjaF9kdW1teV9pZCAoZ2RiYXJjaCwgaTM4 Nl9kdW1teV9pZCk7CitAQCAtNTc4OCw3ICs1Njc1LDcgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0 cnVjdCBnZGJhcmNoX2luZm8gaQorIAorICAgLyogQWRkIHRoZSBpMzg2IHJlZ2lzdGVyIGdyb3Vw cy4gICovCisgICBpMzg2X2FkZF9yZWdncm91cHMgKGdkYmFyY2gpOworLSAgc2V0X2dkYmFyY2hf cmVnaXN0ZXJfcmVnZ3JvdXBfcCAoZ2RiYXJjaCwgaTM4Nl9yZWdpc3Rlcl9yZWdncm91cF9wKTsK KysgIHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3AgPSBpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3A7 CisgCisgICAvKiBIZWxwZXIgZm9yIGZ1bmN0aW9uIGFyZ3VtZW50IGluZm9ybWF0aW9uLiAgKi8K KyAgIHNldF9nZGJhcmNoX2ZldGNoX3BvaW50ZXJfYXJndW1lbnQgKGdkYmFyY2gsIGkzODZfZmV0 Y2hfcG9pbnRlcl9hcmd1bWVudCk7CitAQCAtNTgwNiw5ICs1NjkzLDQ5IEBAIGkzODZfZ2RiYXJj aF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAKKyAgIGZyYW1lX2Jhc2Vfc2V0X2RlZmF1 bHQgKGdkYmFyY2gsICZpMzg2X2ZyYW1lX2Jhc2UpOworIAorKyAgLyogV2lyZSBpbiB0aGUgTU1Y IHJlZ2lzdGVycy4gICovCisrICBzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MgKGdkYmFyY2gs IGkzODZfbnVtX21teF9yZWdzKTsKKysgIHNldF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rlcl9yZWFk IChnZGJhcmNoLCBpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTsKKysgIHNldF9nZGJhcmNoX3Bz ZXVkb19yZWdpc3Rlcl93cml0ZSAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUp OworKworKyAgc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl90eXBlIChnZGJhcmNoLCBpMzg2X3Bz ZXVkb19yZWdpc3Rlcl90eXBlKTsKKysgIHNldF90ZGVzY19wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAo Z2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk7CisrCisrICAvKiBUaGUgZGVmYXVs dCBBQkkgaW5jbHVkZXMgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycywgCisrICAgICBmbG9hdGlu Zy1wb2ludCByZWdpc3RlcnMsIGFuZCB0aGUgU1NFIHJlZ2lzdGVycy4gICovCisrICBzZXRfZ2Ri YXJjaF9udW1fcmVncyAoZ2RiYXJjaCwgSTM4Nl9TU0VfTlVNX1JFR1MpOworKworKyAgLyogR2V0 IHRoZSB4ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZyb20gSU5GTy4gICovCisrICB0ZGVzYyA9IGlu Zm8udGFyZ2V0X2Rlc2M7CisrICBpZiAoISB0ZGVzY19oYXNfcmVnaXN0ZXJzICh0ZGVzYykpCisr ICAgIHRkZXNjID0gdGRlc2NfaTM4NjsKKysgIHRkZXAtPnRkZXNjID0gdGRlc2M7CisrCisrICB0 ZGVwLT5udW1fY29yZV9yZWdzID0gSTM4Nl9OVU1fR1JFR1MgKyBJMzg3X05VTV9SRUdTOworKyAg dGRlcC0+cmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3JlZ2lzdGVyX25hbWVzOworKworKyAgdGRlc2Nf ZGF0YSA9IHRkZXNjX2RhdGFfYWxsb2MgKCk7CisrCisgICAvKiBIb29rIGluIEFCSS1zcGVjaWZp YyBvdmVycmlkZXMsIGlmIHRoZXkgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQuICAqLworKyAgaW5mby50 ZGVwX2luZm8gPSAodm9pZCAqKSB0ZGVzY19kYXRhOworICAgZ2RiYXJjaF9pbml0X29zYWJpIChp bmZvLCBnZGJhcmNoKTsKKyAKKysgIC8qIFRhcmdldCBkZXNjcmlwdGlvbiBtYXkgYmUgY2hhbmdl ZC4gICovCisrICB0ZGVzYyA9IHRkZXAtPnRkZXNjOworKworKyAgaWYgKCFpMzg2X3ZhbGlkYXRl X3RkZXNjX3AgKHRkZXAsIHRkZXNjX2RhdGEpKQorKyAgICB7CisrICAgICAgdGRlc2NfZGF0YV9j bGVhbnVwICh0ZGVzY19kYXRhKTsKKysgICAgICB4ZnJlZSAodGRlcCk7CisrICAgICAgZ2RiYXJj aF9mcmVlIChnZGJhcmNoKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKworKyAgdGRl c2NfdXNlX3JlZ2lzdGVycyAoZ2RiYXJjaCwgdGRlc2MsIHRkZXNjX2RhdGEpOworKworKyAgLyog T3ZlcnJpZGUgZ2RiYXJjaF9yZWdpc3Rlcl9yZWdncm91cF9wIHNldCBpbiB0ZGVzY191c2VfcmVn aXN0ZXJzLiAgKi8KKysgIHNldF9nZGJhcmNoX3JlZ2lzdGVyX3JlZ2dyb3VwX3AgKGdkYmFyY2gs IHRkZXAtPnJlZ2lzdGVyX3JlZ2dyb3VwX3ApOworKworICAgLyogSG9vayBpbiB0aGUgbGVnYWN5 IHByb2xvZ3VlLWJhc2VkIHVud2luZGVycyBsYXN0IChmYWxsYmFjaykuICAqLworICAgZnJhbWVf dW53aW5kX2FwcGVuZF91bndpbmRlciAoZ2RiYXJjaCwgJmkzODZfc2lndHJhbXBfZnJhbWVfdW53 aW5kKTsKKyAgIGZyYW1lX3Vud2luZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsICZpMzg2X2Zy YW1lX3Vud2luZCk7CitAQCAtNTg4NSw0ICs1ODEyLDcgQEAgaXMgXCJkZWZhdWx0XCIuIiksCisg CisgICAvKiBJbml0aWFsaXplIHRoZSBpMzg2LXNwZWNpZmljIHJlZ2lzdGVyIGdyb3Vwcy4gICov CisgICBpMzg2X2luaXRfcmVnZ3JvdXBzICgpOworKworKyAgLyogSW5pdGlhbGl6ZSB0aGUgc3Rh bmRhcmQgdGFyZ2V0IGRlc2NyaXB0aW9ucy4gICovCisrICBpbml0aWFsaXplX3RkZXNjX2kzODYg KCk7CisgfQorLS0tIC4vZ2RiL2kzODYtdGRlcC5oCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAw MDAwICswMjAwCisrKysgLi9nZGIvaTM4Ni10ZGVwLmgJMjAxMC0wNC0wMyAyMDo1OTo1Mi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0xMTgsOSArMTE4LDIxIEBAIHN0cnVjdCBnZGJhcmNoX3RkZXAKKyAg ICAgIG9mIE1NWCBzdXBwb3J0LiAgKi8KKyAgIGludCBtbTBfcmVnbnVtOworIAorKyAgLyogTnVt YmVyIG9mIGNvcmUgcmVnaXN0ZXJzLiAgKi8KKysgIGludCBudW1fY29yZV9yZWdzOworKworICAg LyogTnVtYmVyIG9mIFNTRSByZWdpc3RlcnMuICAqLworICAgaW50IG51bV94bW1fcmVnczsKKyAK KysgIC8qIFJlZ2lzdGVyIG5hbWVzLiAgKi8KKysgIGNvbnN0IGNoYXIgKipyZWdpc3Rlcl9uYW1l czsKKysKKysgIC8qIFRhcmdldCBkZXNjcmlwdGlvbi4gICovCisrICBjb25zdCBzdHJ1Y3QgdGFy Z2V0X2Rlc2MgKnRkZXNjOworKworKyAgLyogUmVnaXN0ZXIgZ3JvdXAgZnVuY3Rpb24uICAqLwor KyAgY29uc3Qgdm9pZCAqcmVnaXN0ZXJfcmVnZ3JvdXBfcDsKKysKKyAgIC8qIE9mZnNldCBvZiBz YXZlZCBQQyBpbiBqbXBfYnVmLiAgKi8KKyAgIGludCBqYl9wY19vZmZzZXQ7CisgCitAQCAtMTQ3 LDEwICsxNTksNyBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisgICBpbnQgc2Nfc3Bfb2Zmc2V0Owor IAorICAgLyogSVNBLXNwZWNpZmljIGRhdGEgdHlwZXMuICAqLworLSAgc3RydWN0IHR5cGUgKmkz ODZfZWZsYWdzX3R5cGU7CistICBzdHJ1Y3QgdHlwZSAqaTM4Nl9teGNzcl90eXBlOworICAgc3Ry dWN0IHR5cGUgKmkzODZfbW14X3R5cGU7CistICBzdHJ1Y3QgdHlwZSAqaTM4Nl9zc2VfdHlwZTsK KyAgIHN0cnVjdCB0eXBlICppMzg3X2V4dF90eXBlOworIAorICAgLyogUHJvY2VzcyByZWNvcmQv cmVwbGF5IHRhcmdldC4gICovCitAQCAtMTk5LDcgKzIwOCw4IEBAIGVudW0gaTM4Nl9yZWdudW0K KyAgIEkzODZfRVNfUkVHTlVNLAkJLyogJWVzICovCisgICBJMzg2X0ZTX1JFR05VTSwJCS8qICVm cyAqLworICAgSTM4Nl9HU19SRUdOVU0sCQkvKiAlZ3MgKi8KKy0gIEkzODZfU1QwX1JFR05VTQkJ LyogJXN0KDApICovCisrICBJMzg2X1NUMF9SRUdOVU0sCQkvKiAlc3QoMCkgKi8KKysgIEkzODZf TVhDU1JfUkVHTlVNID0gNDAJLyogJW14Y3NyICovIAorIH07CisgCisgLyogUmVnaXN0ZXIgbnVt YmVycyBvZiBSRUNPUkRfUkVHTUFQLiAgKi8KK0BAIC0yMzMsMjAgKzI0MywxNCBAQCBlbnVtIHJl Y29yZF9pMzg2X3JlZ251bQorIH07CisgCisgI2RlZmluZSBJMzg2X05VTV9HUkVHUwkxNgorLSNk ZWZpbmUgSTM4Nl9OVU1fRlJFR1MJMTYKKyAjZGVmaW5lIEkzODZfTlVNX1hSRUdTICA5CisgCist I2RlZmluZSBJMzg2X1NTRV9OVU1fUkVHUwkoSTM4Nl9OVU1fR1JFR1MgKyBJMzg2X05VTV9GUkVH UyBcCistCQkJCSArIEkzODZfTlVNX1hSRUdTKQorKyNkZWZpbmUgSTM4Nl9TU0VfTlVNX1JFR1MJ KEkzODZfTVhDU1JfUkVHTlVNICsgMSkKKyAKKyAvKiBTaXplIG9mIHRoZSBsYXJnZXN0IHJlZ2lz dGVyLiAgKi8KKyAjZGVmaW5lIEkzODZfTUFYX1JFR0lTVEVSX1NJWkUJMTYKKyAKKyAvKiBUeXBl cyBmb3IgaTM4Ni1zcGVjaWZpYyByZWdpc3RlcnMuICAqLworLWV4dGVybiBzdHJ1Y3QgdHlwZSAq aTM4Nl9lZmxhZ3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpOworLWV4dGVybiBzdHJ1 Y3QgdHlwZSAqaTM4Nl9teGNzcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCk7CistZXh0 ZXJuIHN0cnVjdCB0eXBlICppMzg2X21teF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCk7 CistZXh0ZXJuIHN0cnVjdCB0eXBlICppMzg2X3NzZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCk7CisgZXh0ZXJuIHN0cnVjdCB0eXBlICppMzg3X2V4dF90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCk7CisgCisgLyogU2VnbWVudCBzZWxlY3RvcnMuICAqLworQEAgLTI2Niw5ICsy NzAsNiBAQCBleHRlcm4gQ09SRV9BRERSIGkzODZfc2tpcF9tYWluX3Byb2xvZ3VlCisgLyogUmV0 dXJuIHdoZXRoZXIgdGhlIFRISVNfRlJBTUUgY29ycmVzcG9uZHMgdG8gYSBzaWd0cmFtcCByb3V0 aW5lLiAgKi8KKyBleHRlcm4gaW50IGkzODZfc2lndHJhbXBfcCAoc3RydWN0IGZyYW1lX2luZm8g KnRoaXNfZnJhbWUpOworIAorLS8qIFJldHVybiB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUdOVU0u ICAqLworLWV4dGVybiBjaGFyIGNvbnN0ICppMzg2X3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJh cmNoICogZ2RiYXJjaCwgaW50IHJlZ251bSk7CistCisgLyogUmV0dXJuIG5vbi16ZXJvIGlmIFJF R05VTSBpcyBhIG1lbWJlciBvZiB0aGUgc3BlY2lmaWVkIGdyb3VwLiAgKi8KKyBleHRlcm4gaW50 IGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCBy ZWdudW0sCisgCQkJCSAgICAgc3RydWN0IHJlZ2dyb3VwICpncm91cCk7CistLS0gLi9nZGIvaTM4 Ny10ZGVwLmgJMjAxMC0wMS0wMSAwODozMTozNi4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9p Mzg3LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTI3LDYg KzI3LDkgQEAgc3RydWN0IHJlZ2NhY2hlOworIHN0cnVjdCB0eXBlOworIHN0cnVjdCB1aV9maWxl OworIAorKy8qIE51bWJlciBvZiBpMzg3IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4gICovCisr I2RlZmluZSBJMzg3X05VTV9SRUdTCTE2CisrCisgI2RlZmluZSBJMzg3X1NUMF9SRUdOVU0odGRl cCkgKCh0ZGVwKS0+c3QwX3JlZ251bSkKKyAjZGVmaW5lIEkzODdfTlVNX1hNTV9SRUdTKHRkZXAp ICgodGRlcCktPm51bV94bW1fcmVncykKKyAjZGVmaW5lIEkzODdfTU0wX1JFR05VTSh0ZGVwKSAo KHRkZXApLT5tbTBfcmVnbnVtKQorLS0tIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1saW51 eC5kYXQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9yZWdm b3JtYXRzL2kzODYvYW1kNjQtbGludXguZGF0CTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDYyIEBACisrIyBETyBOT1QgRURJVDogZ2VuZXJhdGVkIGZyb20g aTM4Ni9hbWQ2NC1saW51eC54bWwKKytuYW1lOmFtZDY0X2xpbnV4CisreG1sdGFyZ2V0OmFtZDY0 LWxpbnV4LnhtbAorK2V4cGVkaXRlOnJicCxyc3AscmlwCisrNjQ6cmF4CisrNjQ6cmJ4CisrNjQ6 cmN4CisrNjQ6cmR4CisrNjQ6cnNpCisrNjQ6cmRpCisrNjQ6cmJwCisrNjQ6cnNwCisrNjQ6cjgK Kys2NDpyOQorKzY0OnIxMAorKzY0OnIxMQorKzY0OnIxMgorKzY0OnIxMworKzY0OnIxNAorKzY0 OnIxNQorKzY0OnJpcAorKzMyOmVmbGFncworKzMyOmNzCisrMzI6c3MKKyszMjpkcworKzMyOmVz CisrMzI6ZnMKKyszMjpncworKzgwOnN0MAorKzgwOnN0MQorKzgwOnN0MgorKzgwOnN0MworKzgw OnN0NAorKzgwOnN0NQorKzgwOnN0NgorKzgwOnN0NworKzMyOmZjdHJsCisrMzI6ZnN0YXQKKysz MjpmdGFnCisrMzI6ZmlzZWcKKyszMjpmaW9mZgorKzMyOmZvc2VnCisrMzI6Zm9vZmYKKyszMjpm b3AKKysxMjg6eG1tMAorKzEyODp4bW0xCisrMTI4OnhtbTIKKysxMjg6eG1tMworKzEyODp4bW00 CisrMTI4OnhtbTUKKysxMjg6eG1tNgorKzEyODp4bW03CisrMTI4OnhtbTgKKysxMjg6eG1tOQor KzEyODp4bW0xMAorKzEyODp4bW0xMQorKzEyODp4bW0xMgorKzEyODp4bW0xMworKzEyODp4bW0x NAorKzEyODp4bW0xNQorKzMyOm14Y3NyCisrNjQ6b3JpZ19yYXgKKy0tLSAuL2dkYi9yZWdmb3Jt YXRzL2kzODYvYW1kNjQuZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2FtZDY0LmRhdAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAw MDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw2MSBAQAorKyMgRE8gTk9UIEVESVQ6IGdlbmVyYXRl ZCBmcm9tIGkzODYvYW1kNjQueG1sCisrbmFtZTphbWQ2NAorK3htbHRhcmdldDphbWQ2NC54bWwK KytleHBlZGl0ZTpyYnAscnNwLHJpcAorKzY0OnJheAorKzY0OnJieAorKzY0OnJjeAorKzY0OnJk eAorKzY0OnJzaQorKzY0OnJkaQorKzY0OnJicAorKzY0OnJzcAorKzY0OnI4CisrNjQ6cjkKKys2 NDpyMTAKKys2NDpyMTEKKys2NDpyMTIKKys2NDpyMTMKKys2NDpyMTQKKys2NDpyMTUKKys2NDpy aXAKKyszMjplZmxhZ3MKKyszMjpjcworKzMyOnNzCisrMzI6ZHMKKyszMjplcworKzMyOmZzCisr MzI6Z3MKKys4MDpzdDAKKys4MDpzdDEKKys4MDpzdDIKKys4MDpzdDMKKys4MDpzdDQKKys4MDpz dDUKKys4MDpzdDYKKys4MDpzdDcKKyszMjpmY3RybAorKzMyOmZzdGF0CisrMzI6ZnRhZworKzMy OmZpc2VnCisrMzI6ZmlvZmYKKyszMjpmb3NlZworKzMyOmZvb2ZmCisrMzI6Zm9wCisrMTI4Onht bTAKKysxMjg6eG1tMQorKzEyODp4bW0yCisrMTI4OnhtbTMKKysxMjg6eG1tNAorKzEyODp4bW01 CisrMTI4OnhtbTYKKysxMjg6eG1tNworKzEyODp4bW04CisrMTI4OnhtbTkKKysxMjg6eG1tMTAK KysxMjg6eG1tMTEKKysxMjg6eG1tMTIKKysxMjg6eG1tMTMKKysxMjg6eG1tMTQKKysxMjg6eG1t MTUKKyszMjpteGNzcgorLS0tIC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWxpbnV4LmRhdAkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL3JlZ2Zvcm1hdHMv aTM4Ni9pMzg2LWxpbnV4LmRhdAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSw0NiBAQAorKyMgRE8gTk9UIEVESVQ6IGdlbmVyYXRlZCBmcm9tIGkzODYvaTM4 Ni1saW51eC54bWwKKytuYW1lOmkzODZfbGludXgKKyt4bWx0YXJnZXQ6aTM4Ni1saW51eC54bWwK KytleHBlZGl0ZTplYnAsZXNwLGVpcAorKzMyOmVheAorKzMyOmVjeAorKzMyOmVkeAorKzMyOmVi eAorKzMyOmVzcAorKzMyOmVicAorKzMyOmVzaQorKzMyOmVkaQorKzMyOmVpcAorKzMyOmVmbGFn cworKzMyOmNzCisrMzI6c3MKKyszMjpkcworKzMyOmVzCisrMzI6ZnMKKyszMjpncworKzgwOnN0 MAorKzgwOnN0MQorKzgwOnN0MgorKzgwOnN0MworKzgwOnN0NAorKzgwOnN0NQorKzgwOnN0Ngor KzgwOnN0NworKzMyOmZjdHJsCisrMzI6ZnN0YXQKKyszMjpmdGFnCisrMzI6ZmlzZWcKKyszMjpm aW9mZgorKzMyOmZvc2VnCisrMzI6Zm9vZmYKKyszMjpmb3AKKysxMjg6eG1tMAorKzEyODp4bW0x CisrMTI4OnhtbTIKKysxMjg6eG1tMworKzEyODp4bW00CisrMTI4OnhtbTUKKysxMjg6eG1tNgor KzEyODp4bW03CisrMzI6bXhjc3IKKyszMjpvcmlnX2VheAorLS0tIC4vZ2RiL3JlZ2Zvcm1hdHMv aTM4Ni9pMzg2LmRhdAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4v Z2RiL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LmRhdAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAw MCArMDIwMAorQEAgLTAsMCArMSw0NSBAQAorKyMgRE8gTk9UIEVESVQ6IGdlbmVyYXRlZCBmcm9t IGkzODYvaTM4Ni54bWwKKytuYW1lOmkzODYKKyt4bWx0YXJnZXQ6aTM4Ni54bWwKKytleHBlZGl0 ZTplYnAsZXNwLGVpcAorKzMyOmVheAorKzMyOmVjeAorKzMyOmVkeAorKzMyOmVieAorKzMyOmVz cAorKzMyOmVicAorKzMyOmVzaQorKzMyOmVkaQorKzMyOmVpcAorKzMyOmVmbGFncworKzMyOmNz CisrMzI6c3MKKyszMjpkcworKzMyOmVzCisrMzI6ZnMKKyszMjpncworKzgwOnN0MAorKzgwOnN0 MQorKzgwOnN0MgorKzgwOnN0MworKzgwOnN0NAorKzgwOnN0NQorKzgwOnN0NgorKzgwOnN0Nwor KzMyOmZjdHJsCisrMzI6ZnN0YXQKKyszMjpmdGFnCisrMzI6ZmlzZWcKKyszMjpmaW9mZgorKzMy OmZvc2VnCisrMzI6Zm9vZmYKKyszMjpmb3AKKysxMjg6eG1tMAorKzEyODp4bW0xCisrMTI4Onht bTIKKysxMjg6eG1tMworKzEyODp4bW00CisrMTI4OnhtbTUKKysxMjg6eG1tNgorKzEyODp4bW03 CisrMzI6bXhjc3IKKy0tLSAuL2dkYi9yZWdmb3JtYXRzL3JlZy1pMzg2LWxpbnV4LmRhdAkyMDA5 LTA3LTIwIDIwOjUxOjQyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL3JlZ2Zvcm1hdHMvcmVn LWkzODYtbGludXguZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCitAQCAt MSw0NiArMCwwIEBACistbmFtZTppMzg2X2xpbnV4CisteG1sYXJjaDppMzg2Cistb3NhYmk6R05V L0xpbnV4CistZXhwZWRpdGU6ZWJwLGVzcCxlaXAKKy0zMjplYXgKKy0zMjplY3gKKy0zMjplZHgK Ky0zMjplYngKKy0zMjplc3AKKy0zMjplYnAKKy0zMjplc2kKKy0zMjplZGkKKy0zMjplaXAKKy0z MjplZmxhZ3MKKy0zMjpjcworLTMyOnNzCistMzI6ZHMKKy0zMjplcworLTMyOmZzCistMzI6Z3MK Ky04MDpzdDAKKy04MDpzdDEKKy04MDpzdDIKKy04MDpzdDMKKy04MDpzdDQKKy04MDpzdDUKKy04 MDpzdDYKKy04MDpzdDcKKy0zMjpmY3RybAorLTMyOmZzdGF0CistMzI6ZnRhZworLTMyOmZpc2Vn CistMzI6ZmlvZmYKKy0zMjpmb3NlZworLTMyOmZvb2ZmCistMzI6Zm9wCistMTI4OnhtbTAKKy0x Mjg6eG1tMQorLTEyODp4bW0yCistMTI4OnhtbTMKKy0xMjg6eG1tNAorLTEyODp4bW01CistMTI4 OnhtbTYKKy0xMjg6eG1tNworLTMyOm14Y3NyCistMzI6b3JpZ19lYXgKKy0tLSAuL2dkYi9yZWdm b3JtYXRzL3JlZy1pMzg2LmRhdAkyMDA4LTAyLTI4IDA2OjU0OjEwLjAwMDAwMDAwMCArMDEwMAor KysrIC4vZ2RiL3JlZ2Zvcm1hdHMvcmVnLWkzODYuZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCitAQCAtMSw0NCArMCwwIEBACistbmFtZTppMzg2CisteG1sYXJjaDppMzg2 CistZXhwZWRpdGU6ZWJwLGVzcCxlaXAKKy0zMjplYXgKKy0zMjplY3gKKy0zMjplZHgKKy0zMjpl YngKKy0zMjplc3AKKy0zMjplYnAKKy0zMjplc2kKKy0zMjplZGkKKy0zMjplaXAKKy0zMjplZmxh Z3MKKy0zMjpjcworLTMyOnNzCistMzI6ZHMKKy0zMjplcworLTMyOmZzCistMzI6Z3MKKy04MDpz dDAKKy04MDpzdDEKKy04MDpzdDIKKy04MDpzdDMKKy04MDpzdDQKKy04MDpzdDUKKy04MDpzdDYK Ky04MDpzdDcKKy0zMjpmY3RybAorLTMyOmZzdGF0CistMzI6ZnRhZworLTMyOmZpc2VnCistMzI6 ZmlvZmYKKy0zMjpmb3NlZworLTMyOmZvb2ZmCistMzI6Zm9wCistMTI4OnhtbTAKKy0xMjg6eG1t MQorLTEyODp4bW0yCistMTI4OnhtbTMKKy0xMjg6eG1tNAorLTEyODp4bW01CistMTI4OnhtbTYK Ky0xMjg6eG1tNworLTMyOm14Y3NyCistLS0gLi9nZGIvcmVnZm9ybWF0cy9yZWcteDg2LTY0LWxp bnV4LmRhdAkyMDA5LTA3LTIwIDIwOjUxOjQyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL3Jl Z2Zvcm1hdHMvcmVnLXg4Ni02NC1saW51eC5kYXQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKK0BAIC0xLDYyICswLDAgQEAKKy1uYW1lOng4Nl82NF9saW51eAorLXhtbGFyY2g6 aTM4Njp4ODYtNjQKKy1vc2FiaTpHTlUvTGludXgKKy1leHBlZGl0ZTpyYnAscnNwLHJpcAorLTY0 OnJheAorLTY0OnJieAorLTY0OnJjeAorLTY0OnJkeAorLTY0OnJzaQorLTY0OnJkaQorLTY0OnJi cAorLTY0OnJzcAorLTY0OnI4CistNjQ6cjkKKy02NDpyMTAKKy02NDpyMTEKKy02NDpyMTIKKy02 NDpyMTMKKy02NDpyMTQKKy02NDpyMTUKKy02NDpyaXAKKy0zMjplZmxhZ3MKKy0zMjpjcworLTMy OnNzCistMzI6ZHMKKy0zMjplcworLTMyOmZzCistMzI6Z3MKKy04MDpzdDAKKy04MDpzdDEKKy04 MDpzdDIKKy04MDpzdDMKKy04MDpzdDQKKy04MDpzdDUKKy04MDpzdDYKKy04MDpzdDcKKy0zMjpm Y3RybAorLTMyOmZzdGF0CistMzI6ZnRhZworLTMyOmZpc2VnCistMzI6ZmlvZmYKKy0zMjpmb3Nl ZworLTMyOmZvb2ZmCistMzI6Zm9wCistMTI4OnhtbTAKKy0xMjg6eG1tMQorLTEyODp4bW0yCist MTI4OnhtbTMKKy0xMjg6eG1tNAorLTEyODp4bW01CistMTI4OnhtbTYKKy0xMjg6eG1tNworLTEy ODp4bW04CistMTI4OnhtbTkKKy0xMjg6eG1tMTAKKy0xMjg6eG1tMTEKKy0xMjg6eG1tMTIKKy0x Mjg6eG1tMTMKKy0xMjg6eG1tMTQKKy0xMjg6eG1tMTUKKy0zMjpteGNzcgorLTY0Om9yaWdfcmF4 CistLS0gLi9nZGIvcmVnZm9ybWF0cy9yZWcteDg2LTY0LmRhdAkyMDA0LTAxLTEwIDEzOjUyOjQx LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL3JlZ2Zvcm1hdHMvcmVnLXg4Ni02NC5kYXQJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xLDU5ICswLDAgQEAKKy1uYW1l Ong4Nl82NAorLWV4cGVkaXRlOnJicCxyc3AscmlwCistNjQ6cmF4CistNjQ6cmJ4CistNjQ6cmN4 CistNjQ6cmR4CistNjQ6cnNpCistNjQ6cmRpCistNjQ6cmJwCistNjQ6cnNwCistNjQ6cjgKKy02 NDpyOQorLTY0OnIxMAorLTY0OnIxMQorLTY0OnIxMgorLTY0OnIxMworLTY0OnIxNAorLTY0OnIx NQorLTY0OnJpcAorLTMyOmVmbGFncworLTMyOmNzCistMzI6c3MKKy0zMjpkcworLTMyOmVzCist MzI6ZnMKKy0zMjpncworLTgwOnN0MAorLTgwOnN0MQorLTgwOnN0MgorLTgwOnN0MworLTgwOnN0 NAorLTgwOnN0NQorLTgwOnN0NgorLTgwOnN0NworLTMyOmZjdHJsCistMzI6ZnN0YXQKKy0zMjpm dGFnCistMzI6ZmlzZWcKKy0zMjpmaW9mZgorLTMyOmZvc2VnCistMzI6Zm9vZmYKKy0zMjpmb3AK Ky0xMjg6eG1tMAorLTEyODp4bW0xCistMTI4OnhtbTIKKy0xMjg6eG1tMworLTEyODp4bW00Cist MTI4OnhtbTUKKy0xMjg6eG1tNgorLTEyODp4bW03CistMTI4OnhtbTgKKy0xMjg6eG1tOQorLTEy ODp4bW0xMAorLTEyODp4bW0xMQorLTEyODp4bW0xMgorLTEyODp4bW0xMworLTEyODp4bW0xNAor LTEyODp4bW0xNQorLTMyOm14Y3NyCistLS0gLi9nZGIvdGVzdHN1aXRlL2dkYi54bWwvdGRlc2Mt cmVncy5leHAJMjAxMC0wMi0xNiAyMjoyNjo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90 ZXN0c3VpdGUvZ2RiLnhtbC90ZGVzYy1yZWdzLmV4cAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAw MDAwMCArMDIwMAorQEAgLTI1LDYgKzI1LDcgQEAgZ2RiX3N0YXJ0CisgCisgc2V0IGNvcmUtcmVn cyAiIgorIHNldCByZWdkaXIgIiIKKytzZXQgYXJjaGl0ZWN0dXJlICIiCisgc3dpdGNoIC1nbG9i IC0tIFtpc3RhcmdldF0geworICAgICAiKmFybS0qLSoiIHsKKyAgICAgICAgIHNldCBjb3JlLXJl Z3Mge2FybS1jb3JlLnhtbH0KK0BAIC01NSw2ICs1NiwxNiBAQCBzd2l0Y2ggLWdsb2IgLS0gW2lz dGFyZ2V0XSB7CisgCXVuc3VwcG9ydGVkICJyZWdpc3RlciB0ZXN0cyIKKyAJcmV0dXJuIDAKKyAg ICAgfQorKyAgICAiaT84Ni0qLSoiIHsKKysJc2V0IGFyY2hpdGVjdHVyZSAiaTM4NiIKKysJc2V0 IHJlZ2RpciAiaTM4Ni8iCisrICAgICAgICBzZXQgY29yZS1yZWdzIHszMmJpdC1jb3JlLnhtbCAz MmJpdC1zc2UueG1sfQorKyAgICB9CisrICAgICJ4ODZfNjQtKi0qIiB7CisrCXNldCBhcmNoaXRl Y3R1cmUgImkzODY6eDg2LTY0IgorKwlzZXQgcmVnZGlyICJpMzg2LyIKKysgICAgICAgIHNldCBj b3JlLXJlZ3MgezY0Yml0LWNvcmUueG1sIDY0Yml0LXNzZS54bWx9CisrICAgIH0KKyB9CisgCisg IyBJZiBubyBjb3JlIHJlZ2lzdGVycyB3ZXJlIHNwZWNpZmllZCwgYXNzdW1lIHRoaXMgdGFyZ2V0 IGRvZXMgbm90CitAQCAtODksMTIgKzEwMCwxNiBAQCBwcm9jIGxvYWRfZGVzY3JpcHRpb24geyBm aWxlIGVycm1zZyB9IHsKKyAgICAgZ2xvYmFsIHN1YmRpcgorICAgICBnbG9iYWwgZ2RiX3Byb21w dAorICAgICBnbG9iYWwgY29yZS1yZWdzCisrICAgIGdsb2JhbCBhcmNoaXRlY3R1cmUKKyAKKyAg ICAgZmlsZSBkZWxldGUgIiRzdWJkaXIvcmVncy54bWwiCisgICAgIHNldCBpZmQgW29wZW4gIiRz cmNkaXIvJHN1YmRpci8kZmlsZSIgcl0KKyAgICAgc2V0IG9mZCBbb3BlbiAiJHN1YmRpci9yZWdz LnhtbCIgd10KKyAgICAgd2hpbGUge1tnZXRzICRpZmQgbGluZV0gPj0gMH0geworIAlpZiB7W3Jl Z2V4cCB7PHhpOmluY2x1ZGUgaHJlZj0iY29yZS1yZWdzLnhtbCIvPn0gJGxpbmVdfSB7CisrCSAg ICBpZiB7ISBbc3RyaW5nIGVxdWFsICR7YXJjaGl0ZWN0dXJlfSAiIl19IHsKKysJCXB1dHMgJG9m ZCAiICA8YXJjaGl0ZWN0dXJlPiR7YXJjaGl0ZWN0dXJlfTwvYXJjaGl0ZWN0dXJlPiIKKysJICAg IH0KKyAJICAgIGZvcmVhY2ggc3JjICR7Y29yZS1yZWdzfSB7CisgCQlwdXRzICRvZmQgIiAgPHhp OmluY2x1ZGUgaHJlZj1cIiRzcmNcIi8+IgorIAkgICAgfQoKZGlmZiAtLWdpdCBhL2dkYi1iejU3 ODI1MC1hdngtMDJvZjEwLnBhdGNoIGIvZ2RiLWJ6NTc4MjUwLWF2eC0wMm9mMTAucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJhZjA1NQotLS0gL2Rldi9udWxsCisr KyBiL2dkYi1iejU3ODI1MC1hdngtMDJvZjEwLnBhdGNoCkBAIC0wLDAgKzEsNzUxIEBACitbIEJh Y2twb3J0ZWQuICBdCisKK2NvbW1pdCBjYjkyOGM2N2M5MGNmYjViYmIwNjM2ZDkxODU1Yjk1ZTUx YWQyNzVkCitBdXRob3I6IERhbmllbCBKYWNvYm93aXR6IDxkYW5AZGViaWFuLm9yZz4KK0RhdGU6 ICAgTW9uIE1hciAxIDE3OjE5OjIxIDIwMTAgKzAwMDAKKworICAgIAkqIGdkYnR5cGVzLmMgKGFw cGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9yYXcpOiBOZXcuCisgICAgCShhcHBlbmRfY29tcG9z aXRlX3R5cGVfZmllbGRfYWxpZ25lZCk6IFVzZSB0aGUgbmV3IGZ1bmN0aW9uLgorICAgIAkqIGdk YnR5cGVzLmggKGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9yYXcpOiBEZWNsYXJlLgorICAg IAkqIHRhcmdldC1kZXNjcmlwdGlvbnMuYyAoc3RydWN0IHRkZXNjX3R5cGVfZmllbGQpOiBBZGQg c3RhcnQgYW5kIGVuZC4KKyAgICAJKHN0cnVjdCB0ZGVzY190eXBlX2ZsYWcpOiBOZXcgdHlwZS4K KyAgICAJKHN0cnVjdCB0ZGVzY190eXBlKTogQWRkIFRERVNDX1RZUEVfU1RSVUNUIGFuZCBUREVT Q19UWVBFX0ZMQUdTIHRvCisgICAgCWtpbmQuICBBZGQgc2l6ZSB0byB1LnUuICBBZGQgdS5mIGZv ciBmbGFncy4KKyAgICAJKHRkZXNjX2dkYl90eXBlKTogSGFuZGxlIFRERVNDX1RZUEVfU1RSVUNU IGFuZCBUREVTQ19UWVBFX0ZMQUdTLgorICAgIAkodGRlc2NfZnJlZV90eXBlKTogTGlrZXdpc2Uu CisgICAgCSh0ZGVzY19jcmVhdGVfc3RydWN0LCB0ZGVzY19zZXRfc3RydWN0X3NpemUsIHRkZXNj X2NyZWF0ZV9mbGFncyk6IE5ldy4KKyAgICAJKHRkZXNjX2FkZF9maWVsZCk6IEhhbmRsZSBUREVT Q19UWVBFX1NUUlVDVC4KKyAgICAJKHRkZXNjX2FkZF9iaXRmaWVsZCwgdGRlc2NfYWRkX2ZsYWcp OiBOZXcuCisgICAgCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5oICh0ZGVzY19jcmVhdGVfc3RydWN0 LCB0ZGVzY19zZXRfc3RydWN0X3NpemUpCisgICAgCSh0ZGVzY19jcmVhdGVfZmxhZ3MsIHRkZXNj X2FkZF9iaXRmaWVsZCwgdGRlc2NfYWRkX2ZsYWcpOiBEZWNsYXJlLgorICAgIAkqIHhtbC10ZGVz Yy5jIChzdHJ1Y3QgdGRlc2NfcGFyc2luZ19kYXRhKTogUmVuYW1lIGN1cnJlbnRfdW5pb24gdG8K KyAgICAJY3VycmVudF90eXBlLiAgQWRkIGN1cnJlbnRfdHlwZV9zaXplIGFuZCBjdXJyZW50X3R5 cGVfaXNfZmxhZ3MuCisgICAgCSh0ZGVzY19zdGFydF91bmlvbik6IENsZWFyIHRoZSBuZXcgZmll bGRzLgorICAgIAkodGRlc2Nfc3RhcnRfc3RydWN0LCB0ZGVzY19zdGFydF9mbGFncyk6IE5ldy4K KyAgICAJKHRkZXNjX3N0YXJ0X2ZpZWxkKTogSGFuZGxlIHN0cnVjdCBmaWVsZHMsIGluY2x1ZGlu ZyBiaXRmaWVsZHMuCisgICAgCShmaWVsZF9hdHRyaWJ1dGVzKTogTWFrZSB0eXBlIG9wdGlvbmFs LiAgQWRkIHN0YXJ0IGFuZCBlbmQuCisgICAgCSh1bmlvbl9jaGlsZHJlbik6IFJlbmFtZSB0byBz dHJ1Y3RfdW5pb25fY2hpbGRyZW4uCisgICAgCSh1bmlvbl9hdHRyaWJ1dGVzKTogUmVuYW1lIHRv IHN0cnVjdF91bmlvbl9hdHRyaWJ1dGVzLiAgQWRkIG9wdGlvbmFsCisgICAgCXNpemUuCisgICAg CShmbGFnc19hdHRyaWJ1dGVzKTogTmV3LgorICAgIAkoZmVhdHVyZV9jaGlsZHJlbik6IEFkZCBz dHJ1Y3QgYW5kIGZsYWdzLgorICAgIAkqIGZlYXR1cmVzL2dkYi10YXJnZXQuZHRkOiBBZGQgZmxh Z3MgYW5kIHN0cnVjdCB0byBmZWF0dXJlcy4KKyAgICAJTWFrZSBmaWVsZCB0eXBlIG9wdGlvbmFs LiAgQWRkIGZpZWxkIHN0YXJ0IGFuZCBlbmQuCisgICAgCisgICAgCWRvYy8KKyAgICAJKiBnZGIu dGV4aW5mbyAoVHlwZXMpOiBEZXNjcmliZSA8c3RydWN0PiBhbmQgPGZsYWdzPi4KKyAgICAKKyAg ICAJdGVzdHN1aXRlLworICAgIAkqIGdkYi54bWwvZXh0cmEtcmVncy54bWw6IEFkZCBzdHJ1Y3Qx LCBzdHJ1Y3QyLCBhbmQgZmxhZ3MKKyAgICAJdHlwZXMuICBBZGQgc3RydWN0cmVnLCBiaXRmaWVs ZHMsIGFuZCBmbGFncyByZWdpc3RlcnMuCisgICAgCSogZ2RiLnhtbC90ZGVzYy1yZWdzLmV4cDog VGVzdCBzdHJ1Y3RyZWcgYW5kIGJpdGZpZWxkcworICAgIAlyZWdpc3RlcnMuCisKKy0tLSBnZGIt Ny4xLXAwL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMC0wNC0wMyAyMDoyNDo1MS4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy4xL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMC0wNC0wMyAyMTowNDox My4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zMzExNSw2ICszMzExNSw0NyBAQCBlYWNoIG9mIHdoaWNo IGhhcyBhIEB2YXJ7bmFtZX0gYW5kIGEgQHZhCisgPC91bmlvbj4KKyBAZW5kIHNtYWxsZXhhbXBs ZQorIAorK0BjaW5kZXggPHN0cnVjdD4KKytJZiBhIHJlZ2lzdGVyJ3MgdmFsdWUgaXMgY29tcG9z ZWQgZnJvbSBzZXZlcmFsIHNlcGFyYXRlIHZhbHVlcywgZGVmaW5lCisraXQgd2l0aCBhIHN0cnVj dHVyZSB0eXBlLiAgVGhlcmUgYXJlIHR3byBmb3JtcyBvZiB0aGUgQHNhbXB7PHN0cnVjdD59Cisr ZWxlbWVudDsgYSBAc2FtcHs8c3RydWN0Pn0gZWxlbWVudCBtdXN0IGVpdGhlciBjb250YWluIG9u bHkgYml0ZmllbGRzCisrb3IgY29udGFpbiBubyBiaXRmaWVsZHMuICBJZiB0aGUgc3RydWN0dXJl IGNvbnRhaW5zIG9ubHkgYml0ZmllbGRzLAorK2l0cyB0b3RhbCBzaXplIGluIGJ5dGVzIG11c3Qg YmUgc3BlY2lmaWVkLCBlYWNoIGJpdGZpZWxkIG11c3QgaGF2ZSBhbgorK2V4cGxpY2l0IHN0YXJ0 IGFuZCBlbmQsIGFuZCBiaXRmaWVsZHMgYXJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgYW4KKytp bnRlZ2VyIHR5cGUuICBUaGUgZmllbGQncyBAdmFye3N0YXJ0fSBzaG91bGQgYmUgbGVzcyB0aGFu IG9yCisrZXF1YWwgdG8gaXRzIEB2YXJ7ZW5kfSwgYW5kIHplcm8gcmVwcmVzZW50cyB0aGUgbGVh c3Qgc2lnbmlmaWNhbnQgYml0LgorKworK0BzbWFsbGV4YW1wbGUKKys8c3RydWN0IGlkPSJAdmFy e2lkfSIgc2l6ZT0iQHZhcntzaXplfSI+CisrICA8ZmllbGQgbmFtZT0iQHZhcntuYW1lfSIgc3Rh cnQ9IkB2YXJ7c3RhcnR9IiBlbmQ9IkB2YXJ7ZW5kfSIvPgorKyAgQGRvdHN7fQorKzwvc3RydWN0 PgorK0BlbmQgc21hbGxleGFtcGxlCisrCisrSWYgdGhlIHN0cnVjdHVyZSBjb250YWlucyBubyBi aXRmaWVsZHMsIHRoZW4gZWFjaCBmaWVsZCBoYXMgYW4KKytleHBsaWNpdCB0eXBlLCBhbmQgbm8g aW1wbGljaXQgcGFkZGluZyBpcyBhZGRlZC4KKysKKytAc21hbGxleGFtcGxlCisrPHN0cnVjdCBp ZD0iQHZhcntpZH0iPgorKyAgPGZpZWxkIG5hbWU9IkB2YXJ7bmFtZX0iIHR5cGU9IkB2YXJ7dHlw ZX0iLz4KKysgIEBkb3Rze30KKys8L3N0cnVjdD4KKytAZW5kIHNtYWxsZXhhbXBsZQorKworK0Bj aW5kZXggPGZsYWdzPgorK0lmIGEgcmVnaXN0ZXIncyB2YWx1ZSBpcyBhIHNlcmllcyBvZiBzaW5n bGUtYml0IGZsYWdzLCBkZWZpbmUgaXQgd2l0aAorK2EgZmxhZ3MgdHlwZS4gIFRoZSBAc2FtcHs8 ZmxhZ3M+fSBlbGVtZW50IGhhcyBhbiBleHBsaWNpdCBAdmFye3NpemV9CisrYW5kIGNvbnRhaW5z IG9uZSBvciBtb3JlIEBzYW1wezxmaWVsZD59IGVsZW1lbnRzLiAgRWFjaCBmaWVsZCBoYXMgYQor K0B2YXJ7bmFtZX0sIGEgQHZhcntzdGFydH0sIGFuZCBhbiBAdmFye2VuZH0uICBPbmx5IHNpbmds ZS1iaXQgZmxhZ3MKKythcmUgc3VwcG9ydGVkLgorKworK0BzbWFsbGV4YW1wbGUKKys8ZmxhZ3Mg aWQ9IkB2YXJ7aWR9IiBzaXplPSJAdmFye3NpemV9Ij4KKysgIDxmaWVsZCBuYW1lPSJAdmFye25h bWV9IiBzdGFydD0iQHZhcntzdGFydH0iIGVuZD0iQHZhcntlbmR9Ii8+CisrICBAZG90c3t9Cisr PC9mbGFncz4KKytAZW5kIHNtYWxsZXhhbXBsZQorKworIEBzdWJzZWN0aW9uIFJlZ2lzdGVycwor IEBjaW5kZXggPHJlZz4KKyAKKy0tLSBnZGItNy4xLXAwL2dkYi9mZWF0dXJlcy9nZGItdGFyZ2V0 LmR0ZAkyMDEwLTAxLTAxIDA4OjMxOjQ4LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2Ri L2ZlYXR1cmVzL2dkYi10YXJnZXQuZHRkCTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICsw MjAwCitAQCAtMTksNyArMTksOCBAQAorIAorIDwhRUxFTUVOVCBjb21wYXRpYmxlCSgjUENEQVRB KT4KKyAKKy08IUVMRU1FTlQgZmVhdHVyZQkoKHZlY3RvciB8IHVuaW9uKSosIHJlZyopPgorKzwh RUxFTUVOVCBmZWF0dXJlCisrCSgodmVjdG9yIHwgZmxhZ3MgfCBzdHJ1Y3QgfCB1bmlvbiApKiwg cmVnKik+CisgPCFBVFRMSVNUIGZlYXR1cmUKKyAJbmFtZQkJSUQJI1JFUVVJUkVEPgorIAorQEAg LTM5LDYgKzQwLDE2IEBACisgCXR5cGUJCUNEQVRBCSNSRVFVSVJFRAorIAljb3VudAkJQ0RBVEEJ I1JFUVVJUkVEPgorIAorKzwhRUxFTUVOVCBmbGFncwkJKGZpZWxkKyk+CisrPCFBVFRMSVNUIGZs YWdzCisrCWlkCQlDREFUQQkjUkVRVUlSRUQKKysJc2l6ZQkJQ0RBVEEJI1JFUVVJUkVEPgorKwor KzwhRUxFTUVOVCBzdHJ1Y3QJKGZpZWxkKyk+CisrPCFBVFRMSVNUIHN0cnVjdAorKwlpZAkJQ0RB VEEJI1JFUVVJUkVECisrCXNpemUJCUNEQVRBCSNJTVBMSUVEPgorKworIDwhRUxFTUVOVCB1bmlv bgkJKGZpZWxkKyk+CisgPCFBVFRMSVNUIHVuaW9uCisgCWlkCQlDREFUQQkjUkVRVUlSRUQ+CitA QCAtNDYsNyArNTcsOSBAQAorIDwhRUxFTUVOVCBmaWVsZAkJRU1QVFk+CisgPCFBVFRMSVNUIGZp ZWxkCisgCW5hbWUJCUNEQVRBCSNSRVFVSVJFRAorLQl0eXBlCQlDREFUQQkjUkVRVUlSRUQ+Cisr CXR5cGUJCUNEQVRBCSNJTVBMSUVECisrCXN0YXJ0CQlDREFUQQkjSU1QTElFRAorKwllbmQJCUNE QVRBCSNJTVBMSUVEPgorIAorIDwhRU5USVRZICUgeGluY2x1ZGUgU1lTVEVNICJ4aW5jbHVkZS5k dGQiPgorICV4aW5jbHVkZTsKKy0tLSBnZGItNy4xLXAwL2dkYi9nZGJ0eXBlcy5jCTIwMTAtMDQt MDMgMjA6MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZ2RidHlwZXMuYwky MDEwLTA0LTAzIDIxOjA0OjEzLjAwMDAwMDAwMCArMDIwMAorQEAgLTM3OTgsMTAgKzM3OTgsMTEg QEAgYXJjaF9jb21wb3NpdGVfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgorIH0KKyAKKyAvKiBB ZGQgbmV3IGZpZWxkIHdpdGggbmFtZSBOQU1FIGFuZCB0eXBlIEZJRUxEIHRvIGNvbXBvc2l0ZSB0 eXBlIFQuCistICAgQUxJR05NRU5UIChpZiBub24temVybykgc3BlY2lmaWVzIHRoZSBtaW5pbXVt IGZpZWxkIGFsaWdubWVudC4gICovCistdm9pZAorLWFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVs ZF9hbGlnbmVkIChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFtZSwKKy0JCQkJICAgICBzdHJ1Y3Qg dHlwZSAqZmllbGQsIGludCBhbGlnbm1lbnQpCisrICAgRG8gbm90IHNldCB0aGUgZmllbGQncyBw b3NpdGlvbiBvciBhZGp1c3QgdGhlIHR5cGUncyBsZW5ndGg7CisrICAgdGhlIGNhbGxlciBzaG91 bGQgZG8gc28uICBSZXR1cm4gdGhlIG5ldyBmaWVsZC4gICovCisrc3RydWN0IGZpZWxkICoKKyth cHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGRfcmF3IChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFt ZSwKKysJCQkJIHN0cnVjdCB0eXBlICpmaWVsZCkKKyB7CisgICBzdHJ1Y3QgZmllbGQgKmY7Cisg ICBUWVBFX05GSUVMRFMgKHQpID0gVFlQRV9ORklFTERTICh0KSArIDE7CitAQCAtMzgxMSw2ICsz ODEyLDE2IEBAIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZF9hbGlnbmVkIChzdHIKKyAgIG1l bXNldCAoZiwgMCwgc2l6ZW9mIGZbMF0pOworICAgRklFTERfVFlQRSAoZlswXSkgPSBmaWVsZDsK KyAgIEZJRUxEX05BTUUgKGZbMF0pID0gbmFtZTsKKysgIHJldHVybiBmOworK30KKysKKysvKiBB ZGQgbmV3IGZpZWxkIHdpdGggbmFtZSBOQU1FIGFuZCB0eXBlIEZJRUxEIHRvIGNvbXBvc2l0ZSB0 eXBlIFQuCisrICAgQUxJR05NRU5UIChpZiBub24temVybykgc3BlY2lmaWVzIHRoZSBtaW5pbXVt IGZpZWxkIGFsaWdubWVudC4gICovCisrdm9pZAorK2FwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVs ZF9hbGlnbmVkIChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFtZSwKKysJCQkJICAgICBzdHJ1Y3Qg dHlwZSAqZmllbGQsIGludCBhbGlnbm1lbnQpCisreworKyAgc3RydWN0IGZpZWxkICpmID0gYXBw ZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkX3JhdyAodCwgbmFtZSwgZmllbGQpOworICAgaWYgKFRZ UEVfQ09ERSAodCkgPT0gVFlQRV9DT0RFX1VOSU9OKQorICAgICB7CisgICAgICAgaWYgKFRZUEVf TEVOR1RIICh0KSA8IFRZUEVfTEVOR1RIIChmaWVsZCkpCistLS0gZ2RiLTcuMS1wMC9nZGIvZ2Ri dHlwZXMuaAkyMDEwLTA0LTAzIDIwOjI0OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEv Z2RiL2dkYnR5cGVzLmgJMjAxMC0wNC0wMyAyMTowNDoxMy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0x Mzk1LDYgKzEzOTUsOCBAQCBleHRlcm4gdm9pZCBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGRf CisgCQkJCQkJIGNoYXIgKm5hbWUsCisgCQkJCQkJIHN0cnVjdCB0eXBlICpmaWVsZCwKKyAJCQkJ CQkgaW50IGFsaWdubWVudCk7Cisrc3RydWN0IGZpZWxkICphcHBlbmRfY29tcG9zaXRlX3R5cGVf ZmllbGRfcmF3IChzdHJ1Y3QgdHlwZSAqdCwgY2hhciAqbmFtZSwKKysJCQkJCSAgICAgICBzdHJ1 Y3QgdHlwZSAqZmllbGQpOworIAorIC8qIEhlbHBlciBmdW5jdGlvbnMgdG8gY29uc3RydWN0IGEg Yml0IGZsYWdzIHR5cGUuICBBbiBpbml0aWFsbHkgZW1wdHkKKyAgICB0eXBlIGlzIGNyZWF0ZWQg dXNpbmcgYXJjaF9mbGFnX3R5cGUoKS4gIEZsYWdzIGFyZSB0aGVuIGFkZGVkIHVzaW5nCistLS0g Z2RiLTcuMS1wMC9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5jCTIwMTAtMDItMTAgMTk6NDU6MDIu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5jCTIw MTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtOTAsOSArOTAsMTcgQEAgdHlw ZWRlZiBzdHJ1Y3QgdGRlc2NfdHlwZV9maWVsZAorIHsKKyAgIGNoYXIgKm5hbWU7CisgICBzdHJ1 Y3QgdGRlc2NfdHlwZSAqdHlwZTsKKysgIGludCBzdGFydCwgZW5kOworIH0gdGRlc2NfdHlwZV9m aWVsZDsKKyBERUZfVkVDX08odGRlc2NfdHlwZV9maWVsZCk7CisgCisrdHlwZWRlZiBzdHJ1Y3Qg dGRlc2NfdHlwZV9mbGFnCisreworKyAgY2hhciAqbmFtZTsKKysgIGludCBzdGFydDsKKyt9IHRk ZXNjX3R5cGVfZmxhZzsKKytERUZfVkVDX08odGRlc2NfdHlwZV9mbGFnKTsKKysKKyB0eXBlZGVm IHN0cnVjdCB0ZGVzY190eXBlCisgeworICAgLyogVGhlIG5hbWUgb2YgdGhpcyB0eXBlLiAgKi8K K0BAIC0xMjMsNyArMTMxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgdGRlc2NfdHlwZQorIAorICAgICAv KiBUeXBlcyBkZWZpbmVkIGJ5IGEgdGFyZ2V0IGZlYXR1cmUuICAqLworICAgICBUREVTQ19UWVBF X1ZFQ1RPUiwKKy0gICAgVERFU0NfVFlQRV9VTklPTgorKyAgICBUREVTQ19UWVBFX1NUUlVDVCwK KysgICAgVERFU0NfVFlQRV9VTklPTiwKKysgICAgVERFU0NfVFlQRV9GTEFHUworICAgfSBraW5k OworIAorICAgLyogS2luZC1zcGVjaWZpYyBkYXRhLiAgKi8KK0BAIC0xMzYsMTEgKzE0NiwxOSBA QCB0eXBlZGVmIHN0cnVjdCB0ZGVzY190eXBlCisgICAgICAgaW50IGNvdW50OworICAgICB9IHY7 CisgCistICAgIC8qIFVuaW9uIHR5cGUuICAqLworKyAgICAvKiBTdHJ1Y3Qgb3IgdW5pb24gdHlw ZS4gICovCisgICAgIHN0cnVjdAorICAgICB7CisgICAgICAgVkVDKHRkZXNjX3R5cGVfZmllbGQp ICpmaWVsZHM7CisrICAgICAgTE9OR0VTVCBzaXplOworICAgICB9IHU7CisrCisrICAgIC8qIEZs YWdzIHR5cGUuICAqLworKyAgICBzdHJ1Y3QKKysgICAgeworKyAgICAgIFZFQyh0ZGVzY190eXBl X2ZsYWcpICpmbGFnczsKKysgICAgICBMT05HRVNUIHNpemU7CisrICAgIH0gZjsKKyAgIH0gdTsK KyB9ICp0ZGVzY190eXBlX3A7CisgREVGX1ZFQ19QKHRkZXNjX3R5cGVfcCk7CitAQCAtNjUyLDYg KzY3MCw2NiBAQCB0ZGVzY19nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCXJl dHVybiB0eXBlOworICAgICAgIH0KKyAKKysgICAgY2FzZSBUREVTQ19UWVBFX1NUUlVDVDoKKysg ICAgICB7CisrCXN0cnVjdCB0eXBlICp0eXBlLCAqZmllbGRfdHlwZTsKKysJc3RydWN0IHRkZXNj X3R5cGVfZmllbGQgKmY7CisrCWludCBpeDsKKysKKysJdHlwZSA9IGFyY2hfY29tcG9zaXRlX3R5 cGUgKGdkYmFyY2gsIE5VTEwsIFRZUEVfQ09ERV9TVFJVQ1QpOworKwlUWVBFX05BTUUgKHR5cGUp ID0geHN0cmR1cCAodGRlc2NfdHlwZS0+bmFtZSk7CisrCVRZUEVfVEFHX05BTUUgKHR5cGUpID0g VFlQRV9OQU1FICh0eXBlKTsKKysKKysJZm9yIChpeCA9IDA7CisrCSAgICAgVkVDX2l0ZXJhdGUg KHRkZXNjX3R5cGVfZmllbGQsIHRkZXNjX3R5cGUtPnUudS5maWVsZHMsIGl4LCBmKTsKKysJICAg ICBpeCsrKQorKwkgIHsKKysJICAgIGlmIChmLT50eXBlID09IE5VTEwpCisrCSAgICAgIHsKKysJ CS8qIEJpdGZpZWxkLiAgKi8KKysJCXN0cnVjdCBmaWVsZCAqZmxkOworKwkJc3RydWN0IHR5cGUg KmZpZWxkX3R5cGU7CisrCQlpbnQgYml0c2l6ZSwgdG90YWxfc2l6ZTsKKysKKysJCS8qIFRoaXMg aW52YXJpYW50IHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hpbGUgY3JlYXRpbmcKKysJCSAgIHR5cGVz LiAgKi8KKysJCWdkYl9hc3NlcnQgKHRkZXNjX3R5cGUtPnUudS5zaXplICE9IDApOworKwkJaWYg KHRkZXNjX3R5cGUtPnUudS5zaXplID4gNCkKKysJCSAgZmllbGRfdHlwZSA9IGJ1aWx0aW5fdHlw ZSAoZ2RiYXJjaCktPmJ1aWx0aW5fdWludDY0OworKwkJZWxzZQorKwkJICBmaWVsZF90eXBlID0g YnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50MzI7CisrCisrCQlmbGQgPSBhcHBl bmRfY29tcG9zaXRlX3R5cGVfZmllbGRfcmF3ICh0eXBlLCB4c3RyZHVwIChmLT5uYW1lKSwKKysJ CQkJCQkgICAgICAgZmllbGRfdHlwZSk7CisrCisrCQkvKiBGb3IgbGl0dGxlLWVuZGlhbiwgQklU UE9TIGNvdW50cyBmcm9tIHRoZSBMU0Igb2YKKysJCSAgIHRoZSBzdHJ1Y3R1cmUgYW5kIG1hcmtz IHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgRm9yCisrCQkgICBiaWctZW5kaWFuLCBCSVRQT1MgY291 bnRzIGZyb20gdGhlIE1TQiBvZiB0aGUKKysJCSAgIHN0cnVjdHVyZSBhbmQgbWFya3MgdGhlIE1T QiBvZiB0aGUgZmllbGQuICBFaXRoZXIKKysJCSAgIHdheSwgaXQgaXMgdGhlIG51bWJlciBvZiBi aXRzIHRvIHRoZSAibGVmdCIgb2YgdGhlCisrCQkgICBmaWVsZC4gIFRvIGNhbGN1bGF0ZSB0aGlz IGluIGJpZy1lbmRpYW4sIHdlIG5lZWQKKysJCSAgIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBzdHJ1 Y3R1cmUuICAqLworKwkJYml0c2l6ZSA9IGYtPmVuZCAtIGYtPnN0YXJ0ICsgMTsKKysJCXRvdGFs X3NpemUgPSB0ZGVzY190eXBlLT51LnUuc2l6ZSAqIFRBUkdFVF9DSEFSX0JJVDsKKysJCWlmIChn ZGJhcmNoX2JpdHNfYmlnX2VuZGlhbiAoZ2RiYXJjaCkpCisrCQkgIEZJRUxEX0JJVFBPUyAoZmxk WzBdKSA9IHRvdGFsX3NpemUgLSBmLT5zdGFydCAtIGJpdHNpemU7CisrCQllbHNlCisrCQkgIEZJ RUxEX0JJVFBPUyAoZmxkWzBdKSA9IGYtPnN0YXJ0OworKwkJRklFTERfQklUU0laRSAoZmxkWzBd KSA9IGJpdHNpemU7CisrCSAgICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgeworKwkJZmllbGRf dHlwZSA9IHRkZXNjX2dkYl90eXBlIChnZGJhcmNoLCBmLT50eXBlKTsKKysJCWFwcGVuZF9jb21w b3NpdGVfdHlwZV9maWVsZCAodHlwZSwgeHN0cmR1cCAoZi0+bmFtZSksCisrCQkJCQkgICAgIGZp ZWxkX3R5cGUpOworKwkgICAgICB9CisrCSAgfQorKworKwlpZiAodGRlc2NfdHlwZS0+dS51LnNp emUgIT0gMCkKKysJICBUWVBFX0xFTkdUSCAodHlwZSkgPSB0ZGVzY190eXBlLT51LnUuc2l6ZTsK KysJcmV0dXJuIHR5cGU7CisrICAgICAgfQorKworICAgICBjYXNlIFRERVNDX1RZUEVfVU5JT046 CisgICAgICAgeworIAlzdHJ1Y3QgdHlwZSAqdHlwZSwgKmZpZWxkX3R5cGU7CitAQCAtNjY4LDEy ICs3NDYsMzAgQEAgdGRlc2NfZ2RiX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkg ICAgZmllbGRfdHlwZSA9IHRkZXNjX2dkYl90eXBlIChnZGJhcmNoLCBmLT50eXBlKTsKKyAJICAg IGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVsZCAodHlwZSwgeHN0cmR1cCAoZi0+bmFtZSksIGZp ZWxkX3R5cGUpOworIAorLQkgICAgLyogSWYgYW55IG9mIHRoZSBjaGlsZHJlbiBvZiB0aGlzIHVu aW9uIGFyZSB2ZWN0b3JzLCBmbGFnIHRoZQorKwkgICAgLyogSWYgYW55IG9mIHRoZSBjaGlsZHJl biBvZiBhIHVuaW9uIGFyZSB2ZWN0b3JzLCBmbGFnIHRoZQorIAkgICAgICAgdW5pb24gYXMgYSB2 ZWN0b3IgYWxzby4gIFRoaXMgYWxsb3dzIGUuZy4gYSB1bmlvbiBvZiB0d28KKyAJICAgICAgIHZl Y3RvciB0eXBlcyB0byBzaG93IHVwIGF1dG9tYXRpY2FsbHkgaW4gImluZm8gdmVjdG9yIi4gICov CisgCSAgICBpZiAoVFlQRV9WRUNUT1IgKGZpZWxkX3R5cGUpKQorIAkgICAgICBUWVBFX1ZFQ1RP UiAodHlwZSkgPSAxOworIAkgIH0KKysJcmV0dXJuIHR5cGU7CisrICAgICAgfQorKworKyAgICBj YXNlIFRERVNDX1RZUEVfRkxBR1M6CisrICAgICAgeworKwlzdHJ1Y3QgdHlwZSAqdHlwZSwgKmZp ZWxkX3R5cGU7CisrCXN0cnVjdCB0ZGVzY190eXBlX2ZsYWcgKmY7CisrCWludCBpeDsKKysKKysJ dHlwZSA9IGFyY2hfZmxhZ3NfdHlwZSAoZ2RiYXJjaCwgeHN0cmR1cCAodGRlc2NfdHlwZS0+bmFt ZSksCisrCQkJCXRkZXNjX3R5cGUtPnUuZi5zaXplKTsKKysJZm9yIChpeCA9IDA7CisrCSAgICAg VkVDX2l0ZXJhdGUgKHRkZXNjX3R5cGVfZmxhZywgdGRlc2NfdHlwZS0+dS5mLmZsYWdzLCBpeCwg Zik7CisrCSAgICAgaXgrKykKKysJICAvKiBOb3RlIHRoYXQgY29udHJhcnkgdG8gdGhlIGZ1bmN0 aW9uIG5hbWUsIHRoaXMgY2FsbCB3aWxsCisrCSAgICAganVzdCBzZXQgdGhlIHByb3BlcnRpZXMg b2YgYW4gYWxyZWFkeS1hbGxvY2F0ZWQKKysJICAgICBmaWVsZC4gICovCisrCSAgYXBwZW5kX2Zs YWdzX3R5cGVfZmxhZyAodHlwZSwgZi0+c3RhcnQsIGYtPm5hbWUpOworIAorIAlyZXR1cm4gdHlw ZTsKKyAgICAgICB9CitAQCAtMTE2MSw2ICsxMjU3LDcgQEAgdGRlc2NfZnJlZV90eXBlIChzdHJ1 Y3QgdGRlc2NfdHlwZSAqdHlwZQorIAorICAgc3dpdGNoICh0eXBlLT5raW5kKQorICAgICB7Cisr ICAgIGNhc2UgVERFU0NfVFlQRV9TVFJVQ1Q6CisgICAgIGNhc2UgVERFU0NfVFlQRV9VTklPTjoK KyAgICAgICB7CisgCXN0cnVjdCB0ZGVzY190eXBlX2ZpZWxkICpmOworQEAgLTExNzUsNiArMTI3 MiwyMCBAQCB0ZGVzY19mcmVlX3R5cGUgKHN0cnVjdCB0ZGVzY190eXBlICp0eXBlCisgICAgICAg fQorICAgICAgIGJyZWFrOworIAorKyAgICBjYXNlIFRERVNDX1RZUEVfRkxBR1M6CisrICAgICAg eworKwlzdHJ1Y3QgdGRlc2NfdHlwZV9mbGFnICpmOworKwlpbnQgaXg7CisrCisrCWZvciAoaXgg PSAwOworKwkgICAgIFZFQ19pdGVyYXRlICh0ZGVzY190eXBlX2ZsYWcsIHR5cGUtPnUuZi5mbGFn cywgaXgsIGYpOworKwkgICAgIGl4KyspCisrCSAgeGZyZWUgKGYtPm5hbWUpOworKworKwlWRUNf ZnJlZSAodGRlc2NfdHlwZV9mbGFnLCB0eXBlLT51LmYuZmxhZ3MpOworKyAgICAgIH0KKysgICAg ICBicmVhazsKKysKKyAgICAgZGVmYXVsdDoKKyAgICAgICBicmVhazsKKyAgICAgfQorQEAgLTEx OTksNiArMTMxMCwyOSBAQCB0ZGVzY19jcmVhdGVfdmVjdG9yIChzdHJ1Y3QgdGRlc2NfZmVhdHVy CisgfQorIAorIHN0cnVjdCB0ZGVzY190eXBlICoKKyt0ZGVzY19jcmVhdGVfc3RydWN0IChzdHJ1 Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZSwgY29uc3QgY2hhciAqbmFtZSkKKyt7CisrICBzdHJ1 Y3QgdGRlc2NfdHlwZSAqdHlwZSA9IFhaQUxMT0MgKHN0cnVjdCB0ZGVzY190eXBlKTsKKysKKysg IHR5cGUtPm5hbWUgPSB4c3RyZHVwIChuYW1lKTsKKysgIHR5cGUtPmtpbmQgPSBUREVTQ19UWVBF X1NUUlVDVDsKKysKKysgIFZFQ19zYWZlX3B1c2ggKHRkZXNjX3R5cGVfcCwgZmVhdHVyZS0+dHlw ZXMsIHR5cGUpOworKyAgcmV0dXJuIHR5cGU7CisrfQorKworKy8qIFNldCB0aGUgdG90YWwgbGVu Z3RoIG9mIFRZUEUuICBTdHJ1Y3RzIHdoaWNoIGNvbnRhaW4gYml0ZmllbGRzIG1heQorKyAgIG9t aXQgdGhlIHJlc2VydmVkIGJpdHMsIHNvIHRoZSBlbmQgb2YgdGhlIGxhc3QgZmllbGQgbWF5IG5v dAorKyAgIHN1ZmZpY2UuICAqLworKworK3ZvaWQKKyt0ZGVzY19zZXRfc3RydWN0X3NpemUgKHN0 cnVjdCB0ZGVzY190eXBlICp0eXBlLCBMT05HRVNUIHNpemUpCisreworKyAgZ2RiX2Fzc2VydCAo dHlwZS0+a2luZCA9PSBUREVTQ19UWVBFX1NUUlVDVCk7CisrICB0eXBlLT51LnUuc2l6ZSA9IHNp emU7CisrfQorKworK3N0cnVjdCB0ZGVzY190eXBlICoKKyB0ZGVzY19jcmVhdGVfdW5pb24gKHN0 cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlLCBjb25zdCBjaGFyICpuYW1lKQorIHsKKyAgIHN0 cnVjdCB0ZGVzY190eXBlICp0eXBlID0gWFpBTExPQyAoc3RydWN0IHRkZXNjX3R5cGUpOworQEAg LTEyMTAsMTMgKzEzNDQsMzIgQEAgdGRlc2NfY3JlYXRlX3VuaW9uIChzdHJ1Y3QgdGRlc2NfZmVh dHVyZQorICAgcmV0dXJuIHR5cGU7CisgfQorIAorK3N0cnVjdCB0ZGVzY190eXBlICoKKyt0ZGVz Y19jcmVhdGVfZmxhZ3MgKHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlLCBjb25zdCBjaGFy ICpuYW1lLAorKwkJICAgIExPTkdFU1Qgc2l6ZSkKKyt7CisrICBzdHJ1Y3QgdGRlc2NfdHlwZSAq dHlwZSA9IFhaQUxMT0MgKHN0cnVjdCB0ZGVzY190eXBlKTsKKysKKysgIHR5cGUtPm5hbWUgPSB4 c3RyZHVwIChuYW1lKTsKKysgIHR5cGUtPmtpbmQgPSBUREVTQ19UWVBFX0ZMQUdTOworKyAgdHlw ZS0+dS5mLnNpemUgPSBzaXplOworKworKyAgVkVDX3NhZmVfcHVzaCAodGRlc2NfdHlwZV9wLCBm ZWF0dXJlLT50eXBlcywgdHlwZSk7CisrICByZXR1cm4gdHlwZTsKKyt9CisrCisrLyogQWRkIGEg bmV3IGZpZWxkLiAgUmV0dXJuIGEgdGVtcG9yYXJ5IHBvaW50ZXIgdG8gdGhlIGZpZWxkLCB3aGlj aAorKyAgIGlzIG9ubHkgdmFsaWQgdW50aWwgdGhlIG5leHQgY2FsbCB0byB0ZGVzY19hZGRfZmll bGQgKHRoZSB2ZWN0b3IKKysgICBtaWdodCBiZSByZWFsbG9jYXRlZCkuICAqLworKworIHZvaWQK KyB0ZGVzY19hZGRfZmllbGQgKHN0cnVjdCB0ZGVzY190eXBlICp0eXBlLCBjb25zdCBjaGFyICpm aWVsZF9uYW1lLAorIAkJIHN0cnVjdCB0ZGVzY190eXBlICpmaWVsZF90eXBlKQorIHsKKyAgIHN0 cnVjdCB0ZGVzY190eXBlX2ZpZWxkIGYgPSB7IDAgfTsKKyAKKy0gIGdkYl9hc3NlcnQgKHR5cGUt PmtpbmQgPT0gVERFU0NfVFlQRV9VTklPTik7CisrICBnZGJfYXNzZXJ0ICh0eXBlLT5raW5kID09 IFRERVNDX1RZUEVfVU5JT04KKysJICAgICAgfHwgdHlwZS0+a2luZCA9PSBUREVTQ19UWVBFX1NU UlVDVCk7CisgCisgICBmLm5hbWUgPSB4c3RyZHVwIChmaWVsZF9uYW1lKTsKKyAgIGYudHlwZSA9 IGZpZWxkX3R5cGU7CitAQCAtMTIyNCw2ICsxMzc3LDM3IEBAIHRkZXNjX2FkZF9maWVsZCAoc3Ry dWN0IHRkZXNjX3R5cGUgKnR5cGUKKyAgIFZFQ19zYWZlX3B1c2ggKHRkZXNjX3R5cGVfZmllbGQs IHR5cGUtPnUudS5maWVsZHMsICZmKTsKKyB9CisgCisrLyogQWRkIGEgbmV3IGJpdGZpZWxkLiAg Ki8KKysKKyt2b2lkCisrdGRlc2NfYWRkX2JpdGZpZWxkIChzdHJ1Y3QgdGRlc2NfdHlwZSAqdHlw ZSwgY29uc3QgY2hhciAqZmllbGRfbmFtZSwKKysJCSAgICBpbnQgc3RhcnQsIGludCBlbmQpCisr eworKyAgc3RydWN0IHRkZXNjX3R5cGVfZmllbGQgZiA9IHsgMCB9OworKworKyAgZ2RiX2Fzc2Vy dCAodHlwZS0+a2luZCA9PSBUREVTQ19UWVBFX1NUUlVDVCk7CisrCisrICBmLm5hbWUgPSB4c3Ry ZHVwIChmaWVsZF9uYW1lKTsKKysgIGYuc3RhcnQgPSBzdGFydDsKKysgIGYuZW5kID0gZW5kOwor KworKyAgVkVDX3NhZmVfcHVzaCAodGRlc2NfdHlwZV9maWVsZCwgdHlwZS0+dS51LmZpZWxkcywg JmYpOworK30KKysKKyt2b2lkCisrdGRlc2NfYWRkX2ZsYWcgKHN0cnVjdCB0ZGVzY190eXBlICp0 eXBlLCBpbnQgc3RhcnQsCisrCQljb25zdCBjaGFyICpmbGFnX25hbWUpCisreworKyAgc3RydWN0 IHRkZXNjX3R5cGVfZmxhZyBmID0geyAwIH07CisrCisrICBnZGJfYXNzZXJ0ICh0eXBlLT5raW5k ID09IFRERVNDX1RZUEVfRkxBR1MpOworKworKyAgZi5uYW1lID0geHN0cmR1cCAoZmxhZ19uYW1l KTsKKysgIGYuc3RhcnQgPSBzdGFydDsKKysKKysgIFZFQ19zYWZlX3B1c2ggKHRkZXNjX3R5cGVf ZmxhZywgdHlwZS0+dS5mLmZsYWdzLCAmZik7CisrfQorKworIHN0YXRpYyB2b2lkCisgdGRlc2Nf ZnJlZV9mZWF0dXJlIChzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZSkKKyB7CistLS0gZ2Ri LTcuMS1wMC9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5oCTIwMTAtMDItMTAgMTk6NDU6MDMuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGFyZ2V0LWRlc2NyaXB0aW9ucy5oCTIwMTAt MDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMjA1LDEwICsyMDUsMjAgQEAgc3Ry dWN0IHRkZXNjX3R5cGUgKnRkZXNjX2NyZWF0ZV92ZWN0b3IgKAorIAkJCQkJY29uc3QgY2hhciAq bmFtZSwKKyAJCQkJCXN0cnVjdCB0ZGVzY190eXBlICpmaWVsZF90eXBlLAorIAkJCQkJaW50IGNv dW50KTsKKytzdHJ1Y3QgdGRlc2NfdHlwZSAqdGRlc2NfY3JlYXRlX3N0cnVjdCAoc3RydWN0IHRk ZXNjX2ZlYXR1cmUgKmZlYXR1cmUsCisrCQkJCQljb25zdCBjaGFyICpuYW1lKTsKKyt2b2lkIHRk ZXNjX3NldF9zdHJ1Y3Rfc2l6ZSAoc3RydWN0IHRkZXNjX3R5cGUgKnR5cGUsIExPTkdFU1Qgc2l6 ZSk7Cisgc3RydWN0IHRkZXNjX3R5cGUgKnRkZXNjX2NyZWF0ZV91bmlvbiAoc3RydWN0IHRkZXNj X2ZlYXR1cmUgKmZlYXR1cmUsCisgCQkJCSAgICAgICBjb25zdCBjaGFyICpuYW1lKTsKKytzdHJ1 Y3QgdGRlc2NfdHlwZSAqdGRlc2NfY3JlYXRlX2ZsYWdzIChzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAq ZmVhdHVyZSwKKysJCQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCisrCQkJCSAgICAgICBMT05H RVNUIHNpemUpOworIHZvaWQgdGRlc2NfYWRkX2ZpZWxkIChzdHJ1Y3QgdGRlc2NfdHlwZSAqdHlw ZSwgY29uc3QgY2hhciAqZmllbGRfbmFtZSwKKyAJCSAgICAgIHN0cnVjdCB0ZGVzY190eXBlICpm aWVsZF90eXBlKTsKKyt2b2lkIHRkZXNjX2FkZF9iaXRmaWVsZCAoc3RydWN0IHRkZXNjX3R5cGUg KnR5cGUsIGNvbnN0IGNoYXIgKmZpZWxkX25hbWUsCisrCQkJIGludCBzdGFydCwgaW50IGVuZCk7 Cisrdm9pZCB0ZGVzY19hZGRfZmxhZyAoc3RydWN0IHRkZXNjX3R5cGUgKnR5cGUsIGludCBzdGFy dCwKKysJCSAgICAgY29uc3QgY2hhciAqZmxhZ19uYW1lKTsKKyB2b2lkIHRkZXNjX2NyZWF0ZV9y ZWcgKHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlLCBjb25zdCBjaGFyICpuYW1lLAorIAkJ ICAgICAgIGludCByZWdudW0sIGludCBzYXZlX3Jlc3RvcmUsIGNvbnN0IGNoYXIgKmdyb3VwLAor IAkJICAgICAgIGludCBiaXRzaXplLCBjb25zdCBjaGFyICp0eXBlKTsKKy0tLSBnZGItNy4xLXAw L2dkYi90ZXN0c3VpdGUvZ2RiLnhtbC9leHRyYS1yZWdzLnhtbAkyMDA3LTAyLTA4IDIyOjAwOjM2 LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIueG1sL2V4dHJh LXJlZ3MueG1sCTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtOCw5ICs4 LDI3IEBACisgICAgICAgPGZpZWxkIG5hbWU9InYyIiB0eXBlPSJ2MmludDE2Ii8+CisgICAgIDwv dW5pb24+CisgCisrICAgIDxzdHJ1Y3QgaWQ9InN0cnVjdDEiPgorKyAgICAgIDxmaWVsZCBuYW1l PSJ2NCIgdHlwZT0idjRpbnQ4Ii8+CisrICAgICAgPGZpZWxkIG5hbWU9InYyIiB0eXBlPSJ2Mmlu dDE2Ii8+CisrICAgIDwvc3RydWN0PgorKworKyAgICA8c3RydWN0IGlkPSJzdHJ1Y3QyIiBzaXpl PSI4Ij4KKysgICAgICA8ZmllbGQgbmFtZT0iZjEiIHN0YXJ0PSIwIiBlbmQ9IjM0Ii8+CisrICAg ICAgPGZpZWxkIG5hbWU9ImYyIiBzdGFydD0iNjMiIGVuZD0iNjMiLz4KKysgICAgPC9zdHJ1Y3Q+ CisrCisrICAgIDxmbGFncyBpZD0iZmxhZ3MiIHNpemU9IjQiPgorKyAgICAgIDxmaWVsZCBuYW1l PSJYIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgICAgPGZpZWxkIG5hbWU9IlkiIHN0YXJ0PSIy IiBlbmQ9IjIiLz4KKysgICAgPC9mbGFncz4KKysKKyAgICAgPHJlZyBuYW1lPSJleHRyYXJlZyIg Yml0c2l6ZT0iMzIiLz4KKyAgICAgPHJlZyBuYW1lPSJ1aW50cmVnIiBiaXRzaXplPSIzMiIgdHlw ZT0idWludDMyIi8+CisgICAgIDxyZWcgbmFtZT0idmVjcmVnIiBiaXRzaXplPSIzMiIgdHlwZT0i djRpbnQ4Ii8+CisgICAgIDxyZWcgbmFtZT0idW5pb25yZWciIGJpdHNpemU9IjMyIiB0eXBlPSJ2 ZWNpbnQiLz4KKysgICAgPHJlZyBuYW1lPSJzdHJ1Y3RyZWciIGJpdHNpemU9IjY0IiB0eXBlPSJz dHJ1Y3QxIi8+CisrICAgIDxyZWcgbmFtZT0iYml0ZmllbGRzIiBiaXRzaXplPSI2NCIgdHlwZT0i c3RydWN0MiIvPgorKyAgICA8cmVnIG5hbWU9ImZsYWdzIiBiaXRzaXplPSIzMiIgdHlwZT0iZmxh Z3MiLz4KKyAgIDwvZmVhdHVyZT4KKyA8L3RhcmdldD4KKy0tLSBnZGItNy4xLXAwL2dkYi90ZXN0 c3VpdGUvZ2RiLnhtbC90ZGVzYy1yZWdzLmV4cAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIueG1sL3RkZXNjLXJlZ3MuZXhw CTIwMTAtMDQtMDMgMjE6MDQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMTQxLDYgKzE0MSwxMSBA QCBnZGJfdGVzdCAicHR5cGUgXCR2ZWNyZWciICJ0eXBlID0gaW50OF90CisgZ2RiX3Rlc3QgInB0 eXBlIFwkdW5pb25yZWciIFwKKyAgICAgInR5cGUgPSB1bmlvbiB7XHJcbiAqdjRpbnQ4IHY0O1xy XG4gKnYyaW50MTYgdjI7XHJcbn0iCisgZ2RiX3Rlc3QgInB0eXBlIFwkdW5pb25yZWcudjQiICJ0 eXBlID0gaW50OF90IFxcXFs0XFxcXSIKKytnZGJfdGVzdCAicHR5cGUgXCRzdHJ1Y3RyZWciIFwK KysgICAgInR5cGUgPSBzdHJ1Y3Qgc3RydWN0MSB7XHJcbiAqdjRpbnQ4IHY0O1xyXG4gKnYyaW50 MTYgdjI7XHJcbn0iCisrZ2RiX3Rlc3QgInB0eXBlIFwkc3RydWN0cmVnLnY0IiAidHlwZSA9IGlu dDhfdCBcXFxbNFxcXF0iCisrZ2RiX3Rlc3QgInB0eXBlIFwkYml0ZmllbGRzIiBcCisrICAgICJ0 eXBlID0gc3RydWN0IHN0cnVjdDIge1xyXG4gKnVpbnQ2NF90IGYxIDogMzU7XHJcbiAqdWludDY0 X3QgZjIgOiAxO1xyXG59IgorIAorIGxvYWRfZGVzY3JpcHRpb24gImNvcmUtb25seS54bWwiICIi CisgIyBUaGUgZXh0cmEgcmVnaXN0ZXIgZnJvbSB0aGUgcHJldmlvdXMgZGVzY3JpcHRpb24gc2hv dWxkIGJlIGdvbmUuCistLS0gZ2RiLTcuMS1wMC9nZGIveG1sLXRkZXNjLmMJMjAxMC0wMS0wMSAw ODozMTo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi94bWwtdGRlc2MuYwkyMDEw LTA0LTAzIDIxOjA0OjEzLjAwMDAwMDAwMCArMDIwMAorQEAgLTg1LDggKzg1LDE1IEBAIHN0cnVj dCB0ZGVzY19wYXJzaW5nX2RhdGEKKyAgICAgIGl0IGRvZXMgbm90IGhhdmUgaXRzIG93bi4gIFRo aXMgc3RhcnRzIGF0IHplcm8uICAqLworICAgaW50IG5leHRfcmVnbnVtOworIAorLSAgLyogVGhl IHVuaW9uIHdlIGFyZSBjdXJyZW50bHkgcGFyc2luZywgb3IgbGFzdCBwYXJzZWQuICAqLworLSAg c3RydWN0IHRkZXNjX3R5cGUgKmN1cnJlbnRfdW5pb247CisrICAvKiBUaGUgc3RydWN0IG9yIHVu aW9uIHdlIGFyZSBjdXJyZW50bHkgcGFyc2luZywgb3IgbGFzdCBwYXJzZWQuICAqLworKyAgc3Ry dWN0IHRkZXNjX3R5cGUgKmN1cnJlbnRfdHlwZTsKKysKKysgIC8qIFRoZSBieXRlIHNpemUgb2Yg dGhlIGN1cnJlbnQgc3RydWN0IHR5cGUsIGlmIHNwZWNpZmllZC4gIFplcm8KKysgICAgIGlmIG5v dCBzcGVjaWZpZWQuICAqLworKyAgaW50IGN1cnJlbnRfdHlwZV9zaXplOworKworKyAgLyogV2hl dGhlciB0aGUgY3VycmVudCB0eXBlIGlzIGEgZmxhZ3MgdHlwZS4gICovCisrICBpbnQgY3VycmVu dF90eXBlX2lzX2ZsYWdzOworIH07CisgCisgLyogSGFuZGxlIHRoZSBlbmQgb2YgYW4gPGFyY2hp dGVjdHVyZT4gZWxlbWVudCBhbmQgaXRzIHZhbHVlLiAgKi8KK0BAIC0yMjksMTEgKzIzNiw1NyBA QCB0ZGVzY19zdGFydF91bmlvbiAoc3RydWN0IGdkYl94bWxfcGFyc2VyCisgICBzdHJ1Y3QgdGRl c2NfcGFyc2luZ19kYXRhICpkYXRhID0gdXNlcl9kYXRhOworICAgY2hhciAqaWQgPSBWRUNfaW5k ZXggKGdkYl94bWxfdmFsdWVfcywgYXR0cmlidXRlcywgMCktPnZhbHVlOworIAorLSAgZGF0YS0+ Y3VycmVudF91bmlvbiA9IHRkZXNjX2NyZWF0ZV91bmlvbiAoZGF0YS0+Y3VycmVudF9mZWF0dXJl LCBpZCk7CisrICBkYXRhLT5jdXJyZW50X3R5cGUgPSB0ZGVzY19jcmVhdGVfdW5pb24gKGRhdGEt PmN1cnJlbnRfZmVhdHVyZSwgaWQpOworKyAgZGF0YS0+Y3VycmVudF90eXBlX3NpemUgPSAwOwor KyAgZGF0YS0+Y3VycmVudF90eXBlX2lzX2ZsYWdzID0gMDsKKyt9CisrCisrLyogSGFuZGxlIHRo ZSBzdGFydCBvZiBhIDxzdHJ1Y3Q+IGVsZW1lbnQuICBJbml0aWFsaXplIHRoZSB0eXBlIGFuZAor KyAgIHJlY29yZCBpdCB3aXRoIHRoZSBjdXJyZW50IGZlYXR1cmUuICAqLworKworK3N0YXRpYyB2 b2lkCisrdGRlc2Nfc3RhcnRfc3RydWN0IChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIgKnBhcnNlciwK KysJCSAgIGNvbnN0IHN0cnVjdCBnZGJfeG1sX2VsZW1lbnQgKmVsZW1lbnQsCisrCQkgICB2b2lk ICp1c2VyX2RhdGEsIFZFQyhnZGJfeG1sX3ZhbHVlX3MpICphdHRyaWJ1dGVzKQorK3sKKysgIHN0 cnVjdCB0ZGVzY19wYXJzaW5nX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7CisrICBjaGFyICppZCA9 IFZFQ19pbmRleCAoZ2RiX3htbF92YWx1ZV9zLCBhdHRyaWJ1dGVzLCAwKS0+dmFsdWU7CisrICBz dHJ1Y3QgdGRlc2NfdHlwZSAqdHlwZTsKKysKKysgIHR5cGUgPSB0ZGVzY19jcmVhdGVfc3RydWN0 IChkYXRhLT5jdXJyZW50X2ZlYXR1cmUsIGlkKTsKKysgIGRhdGEtPmN1cnJlbnRfdHlwZSA9IHR5 cGU7CisrICBkYXRhLT5jdXJyZW50X3R5cGVfc2l6ZSA9IDA7CisrICBkYXRhLT5jdXJyZW50X3R5 cGVfaXNfZmxhZ3MgPSAwOworKworKyAgaWYgKFZFQ19sZW5ndGggKGdkYl94bWxfdmFsdWVfcywg YXR0cmlidXRlcykgPiAxKQorKyAgICB7CisrICAgICAgaW50IHNpemUgPSAoaW50KSAqIChVTE9O R0VTVCAqKQorKwlWRUNfaW5kZXggKGdkYl94bWxfdmFsdWVfcywgYXR0cmlidXRlcywgMSktPnZh bHVlOworKyAgICAgIHRkZXNjX3NldF9zdHJ1Y3Rfc2l6ZSAodHlwZSwgc2l6ZSk7CisrICAgICAg ZGF0YS0+Y3VycmVudF90eXBlX3NpemUgPSBzaXplOworKyAgICB9CisrfQorKworK3N0YXRpYyB2 b2lkCisrdGRlc2Nfc3RhcnRfZmxhZ3MgKHN0cnVjdCBnZGJfeG1sX3BhcnNlciAqcGFyc2VyLAor KwkJICAgY29uc3Qgc3RydWN0IGdkYl94bWxfZWxlbWVudCAqZWxlbWVudCwKKysJCSAgIHZvaWQg KnVzZXJfZGF0YSwgVkVDKGdkYl94bWxfdmFsdWVfcykgKmF0dHJpYnV0ZXMpCisreworKyAgc3Ry dWN0IHRkZXNjX3BhcnNpbmdfZGF0YSAqZGF0YSA9IHVzZXJfZGF0YTsKKysgIGNoYXIgKmlkID0g VkVDX2luZGV4IChnZGJfeG1sX3ZhbHVlX3MsIGF0dHJpYnV0ZXMsIDApLT52YWx1ZTsKKysgIGlu dCBsZW5ndGggPSAoaW50KSAqIChVTE9OR0VTVCAqKQorKyAgICBWRUNfaW5kZXggKGdkYl94bWxf dmFsdWVfcywgYXR0cmlidXRlcywgMSktPnZhbHVlOworKyAgc3RydWN0IHRkZXNjX3R5cGUgKnR5 cGU7CisrCisrICB0eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChkYXRhLT5jdXJyZW50X2ZlYXR1 cmUsIGlkLCBsZW5ndGgpOworKworKyAgZGF0YS0+Y3VycmVudF90eXBlID0gdHlwZTsKKysgIGRh dGEtPmN1cnJlbnRfdHlwZV9zaXplID0gMDsKKysgIGRhdGEtPmN1cnJlbnRfdHlwZV9pc19mbGFn cyA9IDE7CisgfQorIAorIC8qIEhhbmRsZSB0aGUgc3RhcnQgb2YgYSA8ZmllbGQ+IGVsZW1lbnQu ICBBdHRhY2ggdGhlIGZpZWxkIHRvIHRoZQorLSAgIGN1cnJlbnQgdW5pb24uICAqLworKyAgIGN1 cnJlbnQgc3RydWN0IG9yIHVuaW9uLiAgKi8KKyAKKyBzdGF0aWMgdm9pZAorIHRkZXNjX3N0YXJ0 X2ZpZWxkIChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIgKnBhcnNlciwKK0BAIC0yNDEsMjAgKzI5NCw4 NCBAQCB0ZGVzY19zdGFydF9maWVsZCAoc3RydWN0IGdkYl94bWxfcGFyc2VyCisgCQkgICB2b2lk ICp1c2VyX2RhdGEsIFZFQyhnZGJfeG1sX3ZhbHVlX3MpICphdHRyaWJ1dGVzKQorIHsKKyAgIHN0 cnVjdCB0ZGVzY19wYXJzaW5nX2RhdGEgKmRhdGEgPSB1c2VyX2RhdGE7CisrICBpbnQgaXggPSAw LCBsZW5ndGg7CisgICBzdHJ1Y3QgZ2RiX3htbF92YWx1ZSAqYXR0cnMgPSBWRUNfYWRkcmVzcyAo Z2RiX3htbF92YWx1ZV9zLCBhdHRyaWJ1dGVzKTsKKyAgIHN0cnVjdCB0ZGVzY190eXBlICpmaWVs ZF90eXBlOworICAgY2hhciAqZmllbGRfbmFtZSwgKmZpZWxkX3R5cGVfaWQ7CisrICBpbnQgc3Rh cnQsIGVuZDsKKyAKKy0gIGZpZWxkX25hbWUgPSBhdHRyc1swXS52YWx1ZTsKKy0gIGZpZWxkX3R5 cGVfaWQgPSBhdHRyc1sxXS52YWx1ZTsKKysgIGxlbmd0aCA9IFZFQ19sZW5ndGggKGdkYl94bWxf dmFsdWVfcywgYXR0cmlidXRlcyk7CisgCistICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlw ZSAoZGF0YS0+Y3VycmVudF9mZWF0dXJlLCBmaWVsZF90eXBlX2lkKTsKKy0gIGlmIChmaWVsZF90 eXBlID09IE5VTEwpCistICAgIGdkYl94bWxfZXJyb3IgKHBhcnNlciwgXygiVW5pb24gZmllbGQg XCIlc1wiIHJlZmVyZW5jZXMgdW5kZWZpbmVkICIKKy0JCQkgICAgICJ0eXBlIFwiJXNcIiIpLAor LQkJICAgZmllbGRfbmFtZSwgZmllbGRfdHlwZV9pZCk7CisrICBmaWVsZF9uYW1lID0gYXR0cnNb aXgrK10udmFsdWU7CisrCisrICBpZiAoaXggPCBsZW5ndGggJiYgc3RyY21wIChhdHRyc1tpeF0u bmFtZSwgInR5cGUiKSA9PSAwKQorKyAgICBmaWVsZF90eXBlX2lkID0gYXR0cnNbaXgrK10udmFs dWU7CisrICBlbHNlCisrICAgIGZpZWxkX3R5cGVfaWQgPSBOVUxMOworKworKyAgaWYgKGl4IDwg bGVuZ3RoICYmIHN0cmNtcCAoYXR0cnNbaXhdLm5hbWUsICJzdGFydCIpID09IDApCisrICAgIHN0 YXJ0ID0gKiAoVUxPTkdFU1QgKikgYXR0cnNbaXgrK10udmFsdWU7CisrICBlbHNlCisrICAgIHN0 YXJ0ID0gLTE7CisrCisrICBpZiAoaXggPCBsZW5ndGggJiYgc3RyY21wIChhdHRyc1tpeF0ubmFt ZSwgImVuZCIpID09IDApCisrICAgIGVuZCA9ICogKFVMT05HRVNUICopIGF0dHJzW2l4KytdLnZh bHVlOworKyAgZWxzZQorKyAgICBlbmQgPSAtMTsKKysKKysgIGlmIChmaWVsZF90eXBlX2lkICE9 IE5VTEwpCisrICAgIHsKKysgICAgICBpZiAoZGF0YS0+Y3VycmVudF90eXBlX2lzX2ZsYWdzKQor KwlnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8oIkNhbm5vdCBhZGQgdHlwZWQgZmllbGQgXCIlc1wi IHRvIGZsYWdzIiksIAorKwkJICAgICAgIGZpZWxkX25hbWUpOworKyAgICAgIGlmIChkYXRhLT5j dXJyZW50X3R5cGVfc2l6ZSAhPSAwKQorKwlnZGJfeG1sX2Vycm9yIChwYXJzZXIsCisrCQkgICAg ICAgXygiRXhwbGljaXRseSBzaXplZCB0eXBlIGNhbiBub3QgY29udGFpbiBub24tYml0ZmllbGQg XCIlc1wiIiksIAorKwkJICAgICAgIGZpZWxkX25hbWUpOworKworKyAgICAgIGZpZWxkX3R5cGUg PSB0ZGVzY19uYW1lZF90eXBlIChkYXRhLT5jdXJyZW50X2ZlYXR1cmUsIGZpZWxkX3R5cGVfaWQp OworKyAgICAgIGlmIChmaWVsZF90eXBlID09IE5VTEwpCisrCWdkYl94bWxfZXJyb3IgKHBhcnNl ciwgXygiRmllbGQgXCIlc1wiIHJlZmVyZW5jZXMgdW5kZWZpbmVkICIKKysJCQkJICJ0eXBlIFwi JXNcIiIpLAorKwkJICAgICAgIGZpZWxkX25hbWUsIGZpZWxkX3R5cGVfaWQpOworKworKyAgICAg IHRkZXNjX2FkZF9maWVsZCAoZGF0YS0+Y3VycmVudF90eXBlLCBmaWVsZF9uYW1lLCBmaWVsZF90 eXBlKTsKKysgICAgfQorKyAgZWxzZSBpZiAoc3RhcnQgIT0gLTEgJiYgZW5kICE9IC0xKQorKyAg ICB7CisrICAgICAgc3RydWN0IHRkZXNjX3R5cGUgKnQgPSBkYXRhLT5jdXJyZW50X3R5cGU7Cisr CisrICAgICAgaWYgKGRhdGEtPmN1cnJlbnRfdHlwZV9pc19mbGFncykKKysJdGRlc2NfYWRkX2Zs YWcgKHQsIHN0YXJ0LCBmaWVsZF9uYW1lKTsKKysgICAgICBlbHNlCisrCXsKKysJICBpZiAoZGF0 YS0+Y3VycmVudF90eXBlX3NpemUgPT0gMCkKKysJICAgIGdkYl94bWxfZXJyb3IgKHBhcnNlciwK KysJCQkgICBfKCJJbXBsaWNpdGx5IHNpemVkIHR5cGUgY2FuIG5vdCBjb250YWluIGJpdGZpZWxk IFwiJXNcIiIpLCAKKysJCQkgICBmaWVsZF9uYW1lKTsKKysKKysJICBpZiAoZW5kID49IDY0KQor KwkgICAgZ2RiX3htbF9lcnJvciAocGFyc2VyLAorKwkJCSAgIF8oIkJpdGZpZWxkIFwiJXNcIiBn b2VzIHBhc3QgNjQgYml0cyAodW5zdXBwb3J0ZWQpIiksCisrCQkJICAgZmllbGRfbmFtZSk7Cisr CisrCSAgLyogQXNzdW1lIHRoYXQgdGhlIGJpdCBudW1iZXJpbmcgaW4gWE1MIGlzICJsc2ItemVy byIuICBNb3N0CisrCSAgICAgYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIFBvd2VyUEMgdXNlIHRo aXMgb3JkZXJpbmcuICBJbgorKwkgICAgIHRoZSBmdXR1cmUsIHdlIGNhbiBhZGQgYW4gWE1MIHRh ZyB0byBpbmRpY2F0ZSAibXNiLXplcm8iCisrCSAgICAgbnVtYmVyaW5nLiAgKi8KKysJICBpZiAo c3RhcnQgPiBlbmQpCisrCSAgICBnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8oIkJpdGZpZWxkIFwi JXNcIiBoYXMgc3RhcnQgYWZ0ZXIgZW5kIiksCisrCQkJICAgZmllbGRfbmFtZSk7CisgCistICB0 ZGVzY19hZGRfZmllbGQgKGRhdGEtPmN1cnJlbnRfdW5pb24sIGZpZWxkX25hbWUsIGZpZWxkX3R5 cGUpOworKwkgIGlmIChlbmQgPj0gZGF0YS0+Y3VycmVudF90eXBlX3NpemUgKiBUQVJHRVRfQ0hB Ul9CSVQpCisrCSAgICBnZGJfeG1sX2Vycm9yIChwYXJzZXIsIF8oIkJpdGZpZWxkIFwiJXNcIiBk b2VzIG5vdCBmaXQgaW4gc3RydWN0IikpOworKworKwkgIHRkZXNjX2FkZF9iaXRmaWVsZCAodCwg ZmllbGRfbmFtZSwgc3RhcnQsIGVuZCk7CisrCX0KKysgICAgfQorKyAgZWxzZQorKyAgICBnZGJf eG1sX2Vycm9yIChwYXJzZXIsIF8oIkZpZWxkIFwiJXNcIiBoYXMgbmVpdGhlciB0eXBlIG5vciBi aXQgcG9zaXRpb24iKSwKKysJCSAgIGZpZWxkX25hbWUpOworIH0KKyAKKyAvKiBIYW5kbGUgdGhl IHN0YXJ0IG9mIGEgPHZlY3Rvcj4gZWxlbWVudC4gIEluaXRpYWxpemUgdGhlIHR5cGUgYW5kCitA QCAtMjg3LDExICs0MDQsMTMgQEAgdGRlc2Nfc3RhcnRfdmVjdG9yIChzdHJ1Y3QgZ2RiX3htbF9w YXJzZQorIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgZmllbGRfYXR0 cmlidXRlc1tdID0geworICAgeyAibmFtZSIsIEdEQl9YTUxfQUZfTk9ORSwgTlVMTCwgTlVMTCB9 LAorLSAgeyAidHlwZSIsIEdEQl9YTUxfQUZfTk9ORSwgTlVMTCwgTlVMTCB9LAorKyAgeyAidHlw ZSIsIEdEQl9YTUxfQUZfT1BUSU9OQUwsIE5VTEwsIE5VTEwgfSwKKysgIHsgInN0YXJ0IiwgR0RC X1hNTF9BRl9PUFRJT05BTCwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vsb25nZXN0LCBOVUxMIH0sCisr ICB7ICJlbmQiLCBHREJfWE1MX0FGX09QVElPTkFMLCBnZGJfeG1sX3BhcnNlX2F0dHJfdWxvbmdl c3QsIE5VTEwgfSwKKyAgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0KKyB9 OworIAorLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9lbGVtZW50IHVuaW9uX2NoaWxkcmVu W10gPSB7Cisrc3RhdGljIGNvbnN0IHN0cnVjdCBnZGJfeG1sX2VsZW1lbnQgc3RydWN0X3VuaW9u X2NoaWxkcmVuW10gPSB7CisgICB7ICJmaWVsZCIsIGZpZWxkX2F0dHJpYnV0ZXMsIE5VTEwsIEdE Ql9YTUxfRUZfUkVQRUFUQUJMRSwKKyAgICAgdGRlc2Nfc3RhcnRfZmllbGQsIE5VTEwgfSwKKyAg IHsgTlVMTCwgTlVMTCwgTlVMTCwgR0RCX1hNTF9FRl9OT05FLCBOVUxMLCBOVUxMIH0KK0BAIC0z MDgsOCArNDI3LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgcmUK KyAgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0KKyB9OworIAorLXN0YXRp YyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgdW5pb25fYXR0cmlidXRlc1tdID0gewor K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgc3RydWN0X3VuaW9uX2F0dHJp YnV0ZXNbXSA9IHsKKyAgIHsgImlkIiwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0sCisr ICB7ICJzaXplIiwgR0RCX1hNTF9BRl9PUFRJT05BTCwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vsb25n ZXN0LCBOVUxMfSwKKysgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0KKyt9 OworKworK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgZmxhZ3NfYXR0cmli dXRlc1tdID0geworKyAgeyAiaWQiLCBHREJfWE1MX0FGX05PTkUsIE5VTEwsIE5VTEwgfSwKKysg IHsgInNpemUiLCBHREJfWE1MX0FGX05PTkUsIGdkYl94bWxfcGFyc2VfYXR0cl91bG9uZ2VzdCwg TlVMTH0sCisgICB7IE5VTEwsIEdEQl9YTUxfQUZfTk9ORSwgTlVMTCwgTlVMTCB9CisgfTsKKyAK K0BAIC0zMjksOSArNDU1LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9lbGVtZW50 IGZlYXQKKyAgIHsgInJlZyIsIHJlZ19hdHRyaWJ1dGVzLCBOVUxMLAorICAgICBHREJfWE1MX0VG X09QVElPTkFMIHwgR0RCX1hNTF9FRl9SRVBFQVRBQkxFLAorICAgICB0ZGVzY19zdGFydF9yZWcs IE5VTEwgfSwKKy0gIHsgInVuaW9uIiwgdW5pb25fYXR0cmlidXRlcywgdW5pb25fY2hpbGRyZW4s CisrICB7ICJzdHJ1Y3QiLCBzdHJ1Y3RfdW5pb25fYXR0cmlidXRlcywgc3RydWN0X3VuaW9uX2No aWxkcmVuLAorKyAgICBHREJfWE1MX0VGX09QVElPTkFMIHwgR0RCX1hNTF9FRl9SRVBFQVRBQkxF LAorKyAgICB0ZGVzY19zdGFydF9zdHJ1Y3QsIE5VTEwgfSwKKysgIHsgInVuaW9uIiwgc3RydWN0 X3VuaW9uX2F0dHJpYnV0ZXMsIHN0cnVjdF91bmlvbl9jaGlsZHJlbiwKKyAgICAgR0RCX1hNTF9F Rl9PUFRJT05BTCB8IEdEQl9YTUxfRUZfUkVQRUFUQUJMRSwKKyAgICAgdGRlc2Nfc3RhcnRfdW5p b24sIE5VTEwgfSwKKysgIHsgImZsYWdzIiwgZmxhZ3NfYXR0cmlidXRlcywgc3RydWN0X3VuaW9u X2NoaWxkcmVuLAorKyAgICBHREJfWE1MX0VGX09QVElPTkFMIHwgR0RCX1hNTF9FRl9SRVBFQVRB QkxFLAorKyAgICB0ZGVzY19zdGFydF9mbGFncywgTlVMTCB9LCAgICAKKyAgIHsgInZlY3RvciIs IHZlY3Rvcl9hdHRyaWJ1dGVzLCBOVUxMLAorICAgICBHREJfWE1MX0VGX09QVElPTkFMIHwgR0RC X1hNTF9FRl9SRVBFQVRBQkxFLAorICAgICB0ZGVzY19zdGFydF92ZWN0b3IsIE5VTEwgfSwKCmRp ZmYgLS1naXQgYS9nZGItYno1NzgyNTAtYXZ4LTAzb2YxMC5wYXRjaCBiL2dkYi1iejU3ODI1MC1h dngtMDNvZjEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZmI1 NTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzgyNTAtYXZ4LTAzb2YxMC5wYXRjaApAQCAt MCwwICsxLDQ1NyBAQAorWyBCYWNrcG9ydGVkLiAgXQorCitjb21taXQgMDI1N2Q2MzlkNDJmODk2 YTM1OTk5M2FlOGFkYjU3OTJlMjgwZjY1ZgorQXV0aG9yOiBILkouIEx1IDxoamwudG9vbHNAZ21h aWwuY29tPgorRGF0ZTogICBNb24gTWFyIDEgMTc6MjY6MDIgMjAxMCArMDAwMAorCisgICAgUmVt b3ZlIFRERVNDX1RZUEVfSTM4Nl9FRkxBR1MgYW5kIFRERVNDX1RZUEVfSTM4Nl9NWENTUi4KKyAg ICAKKyAgICAyMDEwLTAzLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisgICAg CisgICAgCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5jICh0ZGVzY190eXBlKTogUmVtb3ZlCisgICAg CVRERVNDX1RZUEVfSTM4Nl9FRkxBR1MgYW5kIFRERVNDX1RZUEVfSTM4Nl9NWENTUi4KKyAgICAJ KHRkZXNjX3ByZWRlZmluZWRfdHlwZXMpOiBMaWtld2lzZS4KKyAgICAJKHRkZXNjX2dkYl90eXBl KTogTGlrZXdpc2UuICBQYXNzIE5VTEwgdG8gYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZworICAgIAlp ZiBmbGFnIG5hbWUgaXMgZW1wdHkuCisgICAgCShtYWludF9wcmludF9jX3RkZXNjX2NtZCk6IEhh bmRsZSBUREVTQ19UWVBFX0ZMQUdTLgorICAgIAorICAgIAkqIGZlYXR1cmVzL2kzODYvMzJiaXQt Y29yZS54bWw6IERlZmluZSBpMzg2X2VmbGFncy4KKyAgICAJKiBmZWF0dXJlcy9pMzg2LzY0Yml0 LWNvcmUueG1sOiBMaWtld2lzZS4KKyAgICAKKyAgICAJKiBmZWF0dXJlcy9pMzg2LzMyYml0LXNz ZS54bWw6IERlZmluZSBpMzg2X214Y3NyLgorICAgIAkqIGZlYXR1cmVzL2kzODYvNjRiaXQtc3Nl LnhtbDogTGlrZXdpc2UuCisgICAgCisgICAgCSogZmVhdHVyZXMvaTM4Ni9hbWQ2NC1saW51eC5j OiBSZWdlbmVyYXRlZC4KKyAgICAJKiBmZWF0dXJlcy9pMzg2L2FtZDY0LmM6IExpa2V3aXNlLgor ICAgIAkqIGZlYXR1cmVzL2kzODYvaTM4Ni1saW51eC5jOiBMaWtld2lzZS4KKyAgICAJKiBmZWF0 dXJlcy9pMzg2L2kzODYuYzogTGlrZXdpc2UuCisKKy0tLSBnZGItNy4xLXAxL2dkYi9mZWF0dXJl cy9pMzg2LzMyYml0LWNvcmUueG1sCTIwMTAtMDItMDggMDY6MDg6NDYuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMS9nZGIvZmVhdHVyZXMvaTM4Ni8zMmJpdC1jb3JlLnhtbAkyMDEwLTA0LTAz IDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTcsNiArNywyNiBAQAorIAorIDwhRE9DVFlQ RSBmZWF0dXJlIFNZU1RFTSAiZ2RiLXRhcmdldC5kdGQiPgorIDxmZWF0dXJlIG5hbWU9Im9yZy5n bnUuZ2RiLmkzODYuY29yZSI+CisrICA8ZmxhZ3MgaWQ9ImkzODZfZWZsYWdzIiBzaXplPSI0Ij4K KysgICAgPGZpZWxkIG5hbWU9IkNGIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgIDxmaWVsZCBu YW1lPSIiIHN0YXJ0PSIxIiBlbmQ9IjEiLz4KKysgICAgPGZpZWxkIG5hbWU9IlBGIiBzdGFydD0i MiIgZW5kPSIyIi8+CisrICAgIDxmaWVsZCBuYW1lPSJBRiIgc3RhcnQ9IjQiIGVuZD0iNCIvPgor KyAgICA8ZmllbGQgbmFtZT0iWkYiIHN0YXJ0PSI2IiBlbmQ9IjYiLz4KKysgICAgPGZpZWxkIG5h bWU9IlNGIiBzdGFydD0iNyIgZW5kPSI3Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJURiIgc3RhcnQ9 IjgiIGVuZD0iOCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUYiIHN0YXJ0PSI5IiBlbmQ9IjkiLz4K KysgICAgPGZpZWxkIG5hbWU9IkRGIiBzdGFydD0iMTAiIGVuZD0iMTAiLz4KKysgICAgPGZpZWxk IG5hbWU9Ik9GIiBzdGFydD0iMTEiIGVuZD0iMTEiLz4KKysgICAgPGZpZWxkIG5hbWU9Ik5UIiBz dGFydD0iMTQiIGVuZD0iMTQiLz4KKysgICAgPGZpZWxkIG5hbWU9IlJGIiBzdGFydD0iMTYiIGVu ZD0iMTYiLz4KKysgICAgPGZpZWxkIG5hbWU9IlZNIiBzdGFydD0iMTciIGVuZD0iMTciLz4KKysg ICAgPGZpZWxkIG5hbWU9IkFDIiBzdGFydD0iMTgiIGVuZD0iMTgiLz4KKysgICAgPGZpZWxkIG5h bWU9IlZJRiIgc3RhcnQ9IjE5IiBlbmQ9IjE5Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJWSVAiIHN0 YXJ0PSIyMCIgZW5kPSIyMCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUQiIHN0YXJ0PSIyMSIgZW5k PSIyMSIvPgorKyAgPC9mbGFncz4KKysKKyAgIDxyZWcgbmFtZT0iZWF4IiBiaXRzaXplPSIzMiIg dHlwZT0iaW50MzIiLz4KKyAgIDxyZWcgbmFtZT0iZWN4IiBiaXRzaXplPSIzMiIgdHlwZT0iaW50 MzIiLz4KKyAgIDxyZWcgbmFtZT0iZWR4IiBiaXRzaXplPSIzMiIgdHlwZT0iaW50MzIiLz4KKy0t LSBnZGItNy4xLXAxL2dkYi9mZWF0dXJlcy9pMzg2LzMyYml0LXNzZS54bWwJMjAxMC0wMi0wOCAw NjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0dXJlcy9pMzg2LzMy Yml0LXNzZS54bWwJMjAxMC0wNC0wMyAyMTowNjoxMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMiw2 ICsyMiwyMiBAQAorICAgICA8ZmllbGQgbmFtZT0idjJfaW50NjQiIHR5cGU9InYyaTY0Ii8+Cisg ICAgIDxmaWVsZCBuYW1lPSJ1aW50MTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisgICA8L3VuaW9uPgor KyAgPGZsYWdzIGlkPSJpMzg2X214Y3NyIiBzaXplPSI0Ij4KKysgICAgPGZpZWxkIG5hbWU9IklF IiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgIDxmaWVsZCBuYW1lPSJERSIgc3RhcnQ9IjEiIGVu ZD0iMSIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkUiIHN0YXJ0PSIyIiBlbmQ9IjIiLz4KKysgICAg PGZpZWxkIG5hbWU9Ik9FIiBzdGFydD0iMyIgZW5kPSIzIi8+CisrICAgIDxmaWVsZCBuYW1lPSJV RSIgc3RhcnQ9IjQiIGVuZD0iNCIvPgorKyAgICA8ZmllbGQgbmFtZT0iUEUiIHN0YXJ0PSI1IiBl bmQ9IjUiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRBWiIgc3RhcnQ9IjYiIGVuZD0iNiIvPgorKyAg ICA8ZmllbGQgbmFtZT0iSU0iIHN0YXJ0PSI3IiBlbmQ9IjciLz4KKysgICAgPGZpZWxkIG5hbWU9 IkRNIiBzdGFydD0iOCIgZW5kPSI4Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJaTSIgc3RhcnQ9Ijki IGVuZD0iOSIvPgorKyAgICA8ZmllbGQgbmFtZT0iT00iIHN0YXJ0PSIxMCIgZW5kPSIxMCIvPgor KyAgICA8ZmllbGQgbmFtZT0iVU0iIHN0YXJ0PSIxMSIgZW5kPSIxMSIvPgorKyAgICA8ZmllbGQg bmFtZT0iUE0iIHN0YXJ0PSIxMiIgZW5kPSIxMiIvPgorKyAgICA8ZmllbGQgbmFtZT0iRloiIHN0 YXJ0PSIxNSIgZW5kPSIxNSIvPgorKyAgPC9mbGFncz4KKyAKKyAgIDxyZWcgbmFtZT0ieG1tMCIg Yml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiIHJlZ251bT0iMzIiLz4KKyAgIDxyZWcgbmFtZT0i eG1tMSIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiLz4KKy0tLSBnZGItNy4xLXAxL2dkYi9m ZWF0dXJlcy9pMzg2LzY0Yml0LWNvcmUueG1sCTIwMTAtMDItMDggMDY6MDg6NDYuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMS9nZGIvZmVhdHVyZXMvaTM4Ni82NGJpdC1jb3JlLnhtbAkyMDEw LTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTcsNiArNywyNiBAQAorIAorIDwh RE9DVFlQRSBmZWF0dXJlIFNZU1RFTSAiZ2RiLXRhcmdldC5kdGQiPgorIDxmZWF0dXJlIG5hbWU9 Im9yZy5nbnUuZ2RiLmkzODYuY29yZSI+CisrICA8ZmxhZ3MgaWQ9ImkzODZfZWZsYWdzIiBzaXpl PSI0Ij4KKysgICAgPGZpZWxkIG5hbWU9IkNGIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgIDxm aWVsZCBuYW1lPSIiIHN0YXJ0PSIxIiBlbmQ9IjEiLz4KKysgICAgPGZpZWxkIG5hbWU9IlBGIiBz dGFydD0iMiIgZW5kPSIyIi8+CisrICAgIDxmaWVsZCBuYW1lPSJBRiIgc3RhcnQ9IjQiIGVuZD0i NCIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkYiIHN0YXJ0PSI2IiBlbmQ9IjYiLz4KKysgICAgPGZp ZWxkIG5hbWU9IlNGIiBzdGFydD0iNyIgZW5kPSI3Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJURiIg c3RhcnQ9IjgiIGVuZD0iOCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUYiIHN0YXJ0PSI5IiBlbmQ9 IjkiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRGIiBzdGFydD0iMTAiIGVuZD0iMTAiLz4KKysgICAg PGZpZWxkIG5hbWU9Ik9GIiBzdGFydD0iMTEiIGVuZD0iMTEiLz4KKysgICAgPGZpZWxkIG5hbWU9 Ik5UIiBzdGFydD0iMTQiIGVuZD0iMTQiLz4KKysgICAgPGZpZWxkIG5hbWU9IlJGIiBzdGFydD0i MTYiIGVuZD0iMTYiLz4KKysgICAgPGZpZWxkIG5hbWU9IlZNIiBzdGFydD0iMTciIGVuZD0iMTci Lz4KKysgICAgPGZpZWxkIG5hbWU9IkFDIiBzdGFydD0iMTgiIGVuZD0iMTgiLz4KKysgICAgPGZp ZWxkIG5hbWU9IlZJRiIgc3RhcnQ9IjE5IiBlbmQ9IjE5Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJW SVAiIHN0YXJ0PSIyMCIgZW5kPSIyMCIvPgorKyAgICA8ZmllbGQgbmFtZT0iSUQiIHN0YXJ0PSIy MSIgZW5kPSIyMSIvPgorKyAgPC9mbGFncz4KKysKKyAgIDxyZWcgbmFtZT0icmF4IiBiaXRzaXpl PSI2NCIgdHlwZT0iaW50NjQiLz4KKyAgIDxyZWcgbmFtZT0icmJ4IiBiaXRzaXplPSI2NCIgdHlw ZT0iaW50NjQiLz4KKyAgIDxyZWcgbmFtZT0icmN4IiBiaXRzaXplPSI2NCIgdHlwZT0iaW50NjQi Lz4KKy0tLSBnZGItNy4xLXAxL2dkYi9mZWF0dXJlcy9pMzg2LzY0Yml0LXNzZS54bWwJMjAxMC0w Mi0wOCAwNjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0dXJlcy9p Mzg2LzY0Yml0LXNzZS54bWwJMjAxMC0wNC0wMyAyMTowNjoxMi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0yMiw2ICsyMiwyMiBAQAorICAgICA8ZmllbGQgbmFtZT0idjJfaW50NjQiIHR5cGU9InYyaTY0 Ii8+CisgICAgIDxmaWVsZCBuYW1lPSJ1aW50MTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisgICA8L3Vu aW9uPgorKyAgPGZsYWdzIGlkPSJpMzg2X214Y3NyIiBzaXplPSI0Ij4KKysgICAgPGZpZWxkIG5h bWU9IklFIiBzdGFydD0iMCIgZW5kPSIwIi8+CisrICAgIDxmaWVsZCBuYW1lPSJERSIgc3RhcnQ9 IjEiIGVuZD0iMSIvPgorKyAgICA8ZmllbGQgbmFtZT0iWkUiIHN0YXJ0PSIyIiBlbmQ9IjIiLz4K KysgICAgPGZpZWxkIG5hbWU9Ik9FIiBzdGFydD0iMyIgZW5kPSIzIi8+CisrICAgIDxmaWVsZCBu YW1lPSJVRSIgc3RhcnQ9IjQiIGVuZD0iNCIvPgorKyAgICA8ZmllbGQgbmFtZT0iUEUiIHN0YXJ0 PSI1IiBlbmQ9IjUiLz4KKysgICAgPGZpZWxkIG5hbWU9IkRBWiIgc3RhcnQ9IjYiIGVuZD0iNiIv PgorKyAgICA8ZmllbGQgbmFtZT0iSU0iIHN0YXJ0PSI3IiBlbmQ9IjciLz4KKysgICAgPGZpZWxk IG5hbWU9IkRNIiBzdGFydD0iOCIgZW5kPSI4Ii8+CisrICAgIDxmaWVsZCBuYW1lPSJaTSIgc3Rh cnQ9IjkiIGVuZD0iOSIvPgorKyAgICA8ZmllbGQgbmFtZT0iT00iIHN0YXJ0PSIxMCIgZW5kPSIx MCIvPgorKyAgICA8ZmllbGQgbmFtZT0iVU0iIHN0YXJ0PSIxMSIgZW5kPSIxMSIvPgorKyAgICA8 ZmllbGQgbmFtZT0iUE0iIHN0YXJ0PSIxMiIgZW5kPSIxMiIvPgorKyAgICA8ZmllbGQgbmFtZT0i RloiIHN0YXJ0PSIxNSIgZW5kPSIxNSIvPgorKyAgPC9mbGFncz4KKyAKKyAgIDxyZWcgbmFtZT0i eG1tMCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiIHJlZ251bT0iNDAiLz4KKyAgIDxyZWcg bmFtZT0ieG1tMSIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ2ZWMxMjgiLz4KKy0tLSBnZGItNy4xLXAx L2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWxpbnV4LmMJMjAxMC0wMi0wOCAwNjowODo0Ni4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWxpbnV4LmMJ MjAxMC0wNC0wMyAyMTowNjoxMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xNyw2ICsxNywyNSBAQCBp bml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4ICh2b2lkKQorICAgc2V0X3RkZXNjX29zYWJpIChy ZXN1bHQsIG9zYWJpX2Zyb21fdGRlc2Nfc3RyaW5nICgiR05VL0xpbnV4IikpOworIAorICAgZmVh dHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmNv cmUiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19jcmVhdGVfZmxhZ3MgKGZlYXR1cmUsICJpMzg2 X2VmbGFncyIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJDRiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICIiKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCAyLCAiUEYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA0 LCAiQUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA2LCAiWkYiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiU0YiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCA4LCAiVEYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAi SUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIkRGIik7CisrICB0ZGVz Y19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJPRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDE0LCAiTlQiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNiwg IlJGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTcsICJWTSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE4LCAiQUMiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCAxOSwgIlZJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIw LCAiVklQIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjEsICJJRCIpOworKwor ICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJheCIsIDAsIDEsIE5VTEwsIDY0LCAiaW50 NjQiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyYngiLCAxLCAxLCBOVUxMLCA2 NCwgImludDY0Iik7CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmN4IiwgMiwgMSwg TlVMTCwgNjQsICJpbnQ2NCIpOworQEAgLTkzLDYgKzExMiwyMiBAQCBpbml0aWFsaXplX3RkZXNj X2FtZDY0X2xpbnV4ICh2b2lkKQorICAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZl YXR1cmUsICJ1aW50MTI4Iik7CisgICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ1aW50MTI4Iiwg ZmllbGRfdHlwZSk7CisgCisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0 dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAs ICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICJERSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJaRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJV RSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDUsICJQRSIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJEQVoiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiRE0i KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiWk0iKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9NIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0i KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNSwgIkZaIik7CisrCisgICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMCIsIDQwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgi KTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xIiwgNDEsIDEsIE5VTEwsIDEy OCwgInZlYzEyOCIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTIiLCA0Miwg MSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CistLS0gZ2RiLTcuMS1wMS9nZGIvZmVhdHVyZXMvaTM4 Ni9hbWQ2NC5jCTIwMTAtMDItMDggMDY6MDg6NDYuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu MS9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jCTIwMTAtMDQtMDMgMjE6MDY6MTIuMDAwMDAwMDAw ICswMjAwCitAQCAtMTUsNiArMTUsMjUgQEAgaW5pdGlhbGl6ZV90ZGVzY19hbWQ2NCAodm9pZCkK KyAgIHNldF90ZGVzY19hcmNoaXRlY3R1cmUgKHJlc3VsdCwgYmZkX3NjYW5fYXJjaCAoImkzODY6 eDg2LTY0IikpOworIAorICAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQs ICJvcmcuZ251LmdkYi5pMzg2LmNvcmUiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19jcmVhdGVf ZmxhZ3MgKGZlYXR1cmUsICJpMzg2X2VmbGFncyIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDAsICJDRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICIi KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiUEYiKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCA0LCAiQUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCA2LCAiWkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiU0YiKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiVEYiKTsKKysgIHRkZXNjX2FkZF9m bGFnIChmaWVsZF90eXBlLCA5LCAiSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCAxMCwgIkRGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJPRiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE0LCAiTlQiKTsKKysgIHRkZXNjX2FkZF9m bGFnIChmaWVsZF90eXBlLCAxNiwgIlJGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgMTcsICJWTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE4LCAiQUMiKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxOSwgIlZJRiIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDIwLCAiVklQIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgMjEsICJJRCIpOworKworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJheCIs IDAsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJyYngiLCAxLCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisgICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAicmN4IiwgMiwgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworQEAgLTkxLDYgKzExMCwy MiBAQCBpbml0aWFsaXplX3RkZXNjX2FtZDY0ICh2b2lkKQorICAgZmllbGRfdHlwZSA9IHRkZXNj X25hbWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7CisgICB0ZGVzY19hZGRfZmllbGQgKHR5 cGUsICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7CisgCisrICBmaWVsZF90eXBlID0gdGRlc2NfY3Jl YXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEs ICJERSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJaRSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDUsICJQ RSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJEQVoiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiWk0i KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9NIik7CisrICB0ZGVzY19h ZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNSwgIkZa Iik7CisrCisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMCIsIDQwLCAxLCBOVUxM LCAxMjgsICJ2ZWMxMjgiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xIiwg NDEsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CistLS0gZ2RiLTcuMS1wMS9n ZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWxpbnV4LmMJMjAxMC0wMi0wOCAwNjowODo0Ni4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYtbGludXguYwkyMDEw LTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAorQEAgLTE3LDYgKzE3LDI1IEBAIGluaXRp YWxpemVfdGRlc2NfaTM4Nl9saW51eCAodm9pZCkKKyAgIHNldF90ZGVzY19vc2FiaSAocmVzdWx0 LCBvc2FiaV9mcm9tX3RkZXNjX3N0cmluZyAoIkdOVS9MaW51eCIpKTsKKyAKKyAgIGZlYXR1cmUg PSB0ZGVzY19jcmVhdGVfZmVhdHVyZSAocmVzdWx0LCAib3JnLmdudS5nZGIuaTM4Ni5jb3JlIik7 CisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9lZmxh Z3MiLCA0KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAwLCAiQ0YiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxLCAiIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmll bGRfdHlwZSwgMiwgIlBGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNCwgIkFG Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNiwgIlpGIik7CisrICB0ZGVzY19h ZGRfZmxhZyAoZmllbGRfdHlwZSwgNywgIlNGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgOCwgIlRGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOSwgIklGIik7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTAsICJERiIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDExLCAiT0YiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90 eXBlLCAxNCwgIk5UIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTYsICJSRiIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE3LCAiVk0iKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCAxOCwgIkFDIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgMTksICJWSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMCwgIlZJ UCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIxLCAiSUQiKTsKKysKKyAgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlYXgiLCAwLCAxLCBOVUxMLCAzMiwgImludDMyIik7 CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWN4IiwgMSwgMSwgTlVMTCwgMzIsICJp bnQzMiIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVkeCIsIDIsIDEsIE5VTEws IDMyLCAiaW50MzIiKTsKK0BAIC04OCw2ICsxMDcsMjIgQEAgaW5pdGlhbGl6ZV90ZGVzY19pMzg2 X2xpbnV4ICh2b2lkKQorICAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUs ICJ1aW50MTI4Iik7CisgICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ1aW50MTI4IiwgZmllbGRf dHlwZSk7CisgCisrICBmaWVsZF90eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAi aTM4Nl9teGNzciIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJJRSIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICJERSIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJaRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDMsICJPRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJVRSIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDUsICJQRSIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDYsICJEQVoiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCA3LCAiSU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiRE0iKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA5LCAiWk0iKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCAxMCwgIk9NIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwg MTEsICJVTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0iKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNSwgIkZaIik7CisrCisgICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAieG1tMCIsIDMyLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKyAg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xIiwgMzMsIDEsIE5VTEwsIDEyOCwgInZl YzEyOCIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTIiLCAzNCwgMSwgTlVM TCwgMTI4LCAidmVjMTI4Iik7CistLS0gZ2RiLTcuMS1wMS9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2 LmMJMjAxMC0wMi0wOCAwNjowODo0Ni4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9m ZWF0dXJlcy9pMzg2L2kzODYuYwkyMDEwLTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCArMDIwMAor QEAgLTE1LDYgKzE1LDI1IEBAIGluaXRpYWxpemVfdGRlc2NfaTM4NiAodm9pZCkKKyAgIHNldF90 ZGVzY19hcmNoaXRlY3R1cmUgKHJlc3VsdCwgYmZkX3NjYW5fYXJjaCAoImkzODYiKSk7CisgCisg ICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkz ODYuY29yZSIpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVyZSwg ImkzODZfZWZsYWdzIiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIkNG Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIiIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJQRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDQsICJBRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJaRiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDcsICJTRiIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDgsICJURiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDksICJJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiREYiKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMSwgIk9GIik7CisrICB0ZGVzY19hZGRfZmxh ZyAoZmllbGRfdHlwZSwgMTQsICJOVCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDE2LCAiUkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNywgIlZNIik7Cisr ICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTgsICJBQyIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDE5LCAiVklGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgMjAsICJWSVAiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMSwgIklEIik7 CisrCisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWF4IiwgMCwgMSwgTlVMTCwgMzIs ICJpbnQzMiIpOworICAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVjeCIsIDEsIDEsIE5V TEwsIDMyLCAiaW50MzIiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlZHgiLCAy LCAxLCBOVUxMLCAzMiwgImludDMyIik7CitAQCAtODMsNiArMTAyLDIyIEBAIGluaXRpYWxpemVf dGRlc2NfaTM4NiAodm9pZCkKKyAgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0 dXJlLCAidWludDEyOCIpOworICAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidWludDEyOCIsIGZp ZWxkX3R5cGUpOworIAorKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVy ZSwgImkzODZfbXhjc3IiLCA0KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAwLCAi SUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxLCAiREUiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiWkUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAzLCAiT0UiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA0LCAiVUUi KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA1LCAiUEUiKTsKKysgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCA2LCAiREFaIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRf dHlwZSwgNywgIklNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOCwgIkRNIik7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOSwgIlpNIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgMTAsICJPTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDExLCAiVU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMiwgIlBNIik7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTUsICJGWiIpOworKworICAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTAiLCAzMiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7 CisgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMSIsIDMzLCAxLCBOVUxMLCAxMjgs ICJ2ZWMxMjgiKTsKKyAgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0yIiwgMzQsIDEs IE5VTEwsIDEyOCwgInZlYzEyOCIpOworLS0tIGdkYi03LjEtcDEvZ2RiL3RhcmdldC1kZXNjcmlw dGlvbnMuYwkyMDEwLTA0LTAzIDIxOjA0OjEzLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEv Z2RiL3RhcmdldC1kZXNjcmlwdGlvbnMuYwkyMDEwLTA0LTAzIDIxOjA2OjEyLjAwMDAwMDAwMCAr MDIwMAorQEAgLTEyNiw4ICsxMjYsNiBAQCB0eXBlZGVmIHN0cnVjdCB0ZGVzY190eXBlCisgICAg IFRERVNDX1RZUEVfSUVFRV9ET1VCTEUsCisgICAgIFRERVNDX1RZUEVfQVJNX0ZQQV9FWFQsCisg ICAgIFRERVNDX1RZUEVfSTM4N19FWFQsCistICAgIFRERVNDX1RZUEVfSTM4Nl9FRkxBR1MsCist ICAgIFRERVNDX1RZUEVfSTM4Nl9NWENTUiwKKyAKKyAgICAgLyogVHlwZXMgZGVmaW5lZCBieSBh IHRhcmdldCBmZWF0dXJlLiAgKi8KKyAgICAgVERFU0NfVFlQRV9WRUNUT1IsCitAQCAtNDgzLDkg KzQ4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdGRlc2NfdHlwZSB0ZGVzY19wcmVkZWZpbmUKKyAgIHsg ImllZWVfc2luZ2xlIiwgVERFU0NfVFlQRV9JRUVFX1NJTkdMRSB9LAorICAgeyAiaWVlZV9kb3Vi bGUiLCBUREVTQ19UWVBFX0lFRUVfRE9VQkxFIH0sCisgICB7ICJhcm1fZnBhX2V4dCIsIFRERVND X1RZUEVfQVJNX0ZQQV9FWFQgfSwKKy0gIHsgImkzODdfZXh0IiwgVERFU0NfVFlQRV9JMzg3X0VY VCB9LAorLSAgeyAiaTM4Nl9lZmxhZ3MiLCBUREVTQ19UWVBFX0kzODZfRUZMQUdTIH0sCistICB7 ICJpMzg2X214Y3NyIiwgVERFU0NfVFlQRV9JMzg2X01YQ1NSIH0KKysgIHsgImkzODdfZXh0Iiwg VERFU0NfVFlQRV9JMzg3X0VYVCB9CisgfTsKKyAKKyAvKiBSZXR1cm4gdGhlIHR5cGUgYXNzb2Np YXRlZCB3aXRoIElEIGluIHRoZSBjb250ZXh0IG9mIEZFQVRVUkUsIG9yCitAQCAtNjA3LDU3ICs2 MDMsNiBAQCB0ZGVzY19nZGJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgICAgICAg cmV0dXJuIGFyY2hfZmxvYXRfdHlwZSAoZ2RiYXJjaCwgLTEsICJidWlsdGluX3R5cGVfaTM4N19l eHQiLAorIAkJCSAgICAgIGZsb2F0Zm9ybWF0c19pMzg3X2V4dCk7CisgCistICAgIGNhc2UgVERF U0NfVFlQRV9JMzg2X0VGTEFHUzoKKy0gICAgICB7CistCXN0cnVjdCB0eXBlICp0eXBlOworLQor LQl0eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90eXBlX2kzODZfZWZs YWdzIiwgNCk7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDAsICJDRiIpOworLQlh cHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxLCBOVUxMKTsKKy0JYXBwZW5kX2ZsYWdzX3R5 cGVfZmxhZyAodHlwZSwgMiwgIlBGIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUs IDQsICJBRiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA2LCAiWkYiKTsKKy0J YXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNywgIlNGIik7CistCWFwcGVuZF9mbGFnc190 eXBlX2ZsYWcgKHR5cGUsIDgsICJURiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBl LCA5LCAiSUYiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTAsICJERiIpOwor LQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxMSwgIk9GIik7CistCWFwcGVuZF9mbGFn c190eXBlX2ZsYWcgKHR5cGUsIDE0LCAiTlQiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAo dHlwZSwgMTYsICJSRiIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxNywgIlZN Iik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDE4LCAiQUMiKTsKKy0JYXBwZW5k X2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMTksICJWSUYiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZyAodHlwZSwgMjAsICJWSVAiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwg MjEsICJJRCIpOworLQorLQlyZXR1cm4gdHlwZTsKKy0gICAgICB9CistICAgIGJyZWFrOworLQor LSAgICBjYXNlIFRERVNDX1RZUEVfSTM4Nl9NWENTUjoKKy0gICAgICB7CistCXN0cnVjdCB0eXBl ICp0eXBlOworLQorLQl0eXBlID0gYXJjaF9mbGFnc190eXBlIChnZGJhcmNoLCAiYnVpbHRpbl90 eXBlX2kzODZfbXhjc3IiLCA0KTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgMCwg IklFIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDEsICJERSIpOworLQlhcHBl bmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAyLCAiWkUiKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVf ZmxhZyAodHlwZSwgMywgIk9FIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDQs ICJVRSIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCA1LCAiUEUiKTsKKy0JYXBw ZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwgNiwgIkRBWiIpOworLQlhcHBlbmRfZmxhZ3NfdHlw ZV9mbGFnICh0eXBlLCA3LCAiSU0iKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlwZSwg OCwgIkRNIik7CistCWFwcGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIDksICJaTSIpOworLQlh cHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxMCwgIk9NIik7CistCWFwcGVuZF9mbGFnc190 eXBlX2ZsYWcgKHR5cGUsIDExLCAiVU0iKTsKKy0JYXBwZW5kX2ZsYWdzX3R5cGVfZmxhZyAodHlw ZSwgMTIsICJQTSIpOworLQlhcHBlbmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCAxNSwgIkZaIik7 CistCistCXJldHVybiB0eXBlOworLSAgICAgIH0KKy0gICAgYnJlYWs7CistCisgICAgIC8qIFR5 cGVzIGRlZmluZWQgYnkgYSB0YXJnZXQgZmVhdHVyZS4gICovCisgICAgIGNhc2UgVERFU0NfVFlQ RV9WRUNUT1I6CisgICAgICAgeworQEAgLTc2OSw3ICs3MTQsOCBAQCB0ZGVzY19nZGJfdHlwZSAo c3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCSAgLyogTm90ZSB0aGF0IGNvbnRyYXJ5IHRvIHRo ZSBmdW5jdGlvbiBuYW1lLCB0aGlzIGNhbGwgd2lsbAorIAkgICAgIGp1c3Qgc2V0IHRoZSBwcm9w ZXJ0aWVzIG9mIGFuIGFscmVhZHktYWxsb2NhdGVkCisgCSAgICAgZmllbGQuICAqLworLQkgIGFw cGVuZF9mbGFnc190eXBlX2ZsYWcgKHR5cGUsIGYtPnN0YXJ0LCBmLT5uYW1lKTsKKysJICBhcHBl bmRfZmxhZ3NfdHlwZV9mbGFnICh0eXBlLCBmLT5zdGFydCwKKysJCQkJICAqZi0+bmFtZSA/IGYt Pm5hbWUgOiBOVUxMKTsKKyAKKyAJcmV0dXJuIHR5cGU7CisgICAgICAgfQorQEAgLTE2MDIsNiAr MTU0OCw3IEBAIG1haW50X3ByaW50X2NfdGRlc2NfY21kIChjaGFyICphcmdzLCBpbnQKKyAgIHN0 cnVjdCB0ZGVzY19yZWcgKnJlZzsKKyAgIHN0cnVjdCB0ZGVzY190eXBlICp0eXBlOworICAgc3Ry dWN0IHRkZXNjX3R5cGVfZmllbGQgKmY7CisrICBzdHJ1Y3QgdGRlc2NfdHlwZV9mbGFnICpmbGFn OworICAgaW50IGl4LCBpeDIsIGl4MzsKKyAKKyAgIC8qIFVzZSB0aGUgZ2xvYmFsIHRhcmdldC1z dXBwbGllZCBkZXNjcmlwdGlvbiwgbm90IHRoZSBjdXJyZW50CitAQCAtMTcxNSw2ICsxNjYyLDE4 IEBAIG1haW50X3ByaW50X2NfdGRlc2NfY21kIChjaGFyICphcmdzLCBpbnQKKyAJCSAgICAgZi0+ bmFtZSk7CisgCQl9CisgCSAgICAgIGJyZWFrOworKwkgICAgY2FzZSBUREVTQ19UWVBFX0ZMQUdT OgorKwkgICAgICBwcmludGZfdW5maWx0ZXJlZAorKwkJKCIgIGZpZWxkX3R5cGUgPSB0ZGVzY19j cmVhdGVfZmxhZ3MgKGZlYXR1cmUsIFwiJXNcIiwgJWQpO1xuIiwKKysJCSB0eXBlLT5uYW1lLCAo aW50KSB0eXBlLT51LmYuc2l6ZSk7CisrCSAgICAgIGZvciAoaXgzID0gMDsKKysJCSAgIFZFQ19p dGVyYXRlICh0ZGVzY190eXBlX2ZsYWcsIHR5cGUtPnUuZi5mbGFncywgaXgzLAorKwkJCQlmbGFn KTsKKysJCSAgIGl4MysrKQorKwkJcHJpbnRmX3VuZmlsdGVyZWQKKysJCSAgKCIgIHRkZXNjX2Fk ZF9mbGFnIChmaWVsZF90eXBlLCAlZCwgXCIlc1wiKTtcbiIsCisrCQkgICBmbGFnLT5zdGFydCwg ZmxhZy0+bmFtZSk7CisrCSAgICAgIGJyZWFrOworIAkgICAgZGVmYXVsdDoKKyAJICAgICAgZXJy b3IgKF8oIkMgb3V0cHV0IGlzIG5vdCBzdXBwb3J0ZWQgdHlwZSBcIiVzXCIuIiksIHR5cGUtPm5h bWUpOworIAkgICAgfQoKZGlmZiAtLWdpdCBhL2dkYi1iejU3ODI1MC1hdngtMDRvZjEwLnBhdGNo IGIvZ2RiLWJ6NTc4MjUwLWF2eC0wNG9mMTAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYjM2MTlkYwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU3ODI1MC1hdngt MDRvZjEwLnBhdGNoCkBAIC0wLDAgKzEsMTM2NiBAQAorWyBCYWNrcG9ydGVkLiAgXQorCitjb21t aXQgOWQ2MjU4MTJmMjQ2MDhmOTlmZDk5ZTg1OTFlZjNjODBkNzI5ZjliNQorQXV0aG9yOiBILkou IEx1IDxoamwudG9vbHNAZ21haWwuY29tPgorRGF0ZTogICBUdWUgTWFyIDIgMTM6MTQ6MjggMjAx MCArMDAwMAorCisgICAgU3VwcG9ydCB4ODYgcHNldWRvIGJ5dGUsIHdvcmQgYW5kIGR3b3JkIHJl Z2lzdGVycy4KKyAgICAKKyAgICBnZGIvCisgICAgCisgICAgMjAxMC0wMy0wMiAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAorICAgIAkqIGFtZDY0LXRkZXAuYyAoYW1kNjRf Ynl0ZV9uYW1lcyk6IE5ldy4KKyAgICAJKGFtZDY0X3dvcmRfbmFtZXMpOiBMaWtld2lzZS4KKyAg ICAJKGFtZDY0X2R3b3JkX25hbWVzKTogTGlrZXdpc2UuCisgICAgCShhbWQ2NF9wc2V1ZG9fcmVn aXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorICAgIAkoYW1kNjRfcHNldWRvX3JlZ2lzdGVyX3JlYWQp OiBMaWtld2lzZS4KKyAgICAJKGFtZDY0X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNl LgorICAgIAkoYW1kNjRfaW5pdF9hYmkpOiBTZXQgbnVtX2J5dGVfcmVncywgbnVtX3dvcmRfcmVn cywgbnVtX2R3b3JkX3JlZ3MKKyAgICAJYW5kIG51bV9tbXhfcmVncy4gIENhbGwgc2V0X2dkYmFy Y2hfcHNldWRvX3JlZ2lzdGVyX3JlYWQsCisgICAgCXNldF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rl cl93cml0ZSBhbmQKKyAgICAJc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl9uYW1lLiAgRG9uJ3Qg Y2FsbAorICAgIAlzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MuICBEb24ndCBzZXQgbW0wX3Jl Z251bS4KKyAgICAKKyAgICAJKiBpMzg2LXRkZXAuYyAoaTM4Nl9udW1fbW14X3JlZ3MpOiBSZW1v dmVkLgorICAgIAkoaTM4Nl9udW1fcHNldWRvX3JlZ3MpOiBMaWtld2lzZS4KKyAgICAJKGkzODZf Ynl0ZV9uYW1lcyk6IE5ldy4KKyAgICAJKGkzODZfd29yZF9uYW1lcyk6IExpa2V3aXNlLgorICAg IAkoaTM4Nl9ieXRlX3JlZ251bV9wKTogTGlrZXdpc2UuCisgICAgCShpMzg2X3dvcmRfcmVnbnVt X3ApOiBMaWtld2lzZS4KKyAgICAJKGkzODZfbW14X3JlZ251bV9wKTogVXBkYXRlZC4KKyAgICAJ KGkzODZfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBNYWtlIGl0IGdsb2JhbC4gIEhhbmRsZSBieXRl IGFuZAorICAgIAl3b3JkIHBzZXVkby1yZWdpc3RlcnMuCisgICAgCShpMzg2X3BzZXVkb19yZWdp c3Rlcl9yZWFkKTogTGlrZXdpc2UuCisgICAgCShpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6 IExpa2V3aXNlLgorICAgIAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSk6IEhhbmRsZSBieXRl LCB3b3JkIGFuZCBkd29yZAorICAgIAlwc2V1ZG8tcmVnaXN0ZXJzCisgICAgCShpMzg2X3JlZ2lz dGVyX3JlZ2dyb3VwX3ApOiBEb24ndCBpbmNsdWRlIHBzZXVkbworICAgIAlyZWdpc3RlcnMsIGV4 Y2VwdCBmb3IgTVhYLCBpbiBhbnkgcmVnaXN0ZXIgZ3JvdXBzLiAgRG9uJ3QKKyAgICAJaW5jbHVk ZSBwc2V1ZG8gYnl0ZSwgd29yZCwgZHdvcmQgcmVnaXN0ZXJzIGluIGdlbmVyYWxfcmVnZ3JvdXAu CisgICAgCShpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCBudW1fYnl0ZV9yZWdzLCBudW1fd29yZF9y ZWdzLAorICAgIAludW1fZHdvcmRfcmVncywgYWxfcmVnbnVtLCBheF9yZWdudW0gYW5kIGVheF9y ZWdudW0uICBQdXQgTU1YCisgICAgCXBzZXVkby1yZWdpc3RlcnMgYWZ0ZXIgd29yZCBwc2V1ZG8t cmVnaXN0ZXJzLiAgQ2FsbAorICAgIAlzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MgYWZ0ZXIg Y2FsbGluZyBnZGJhcmNoX2luaXRfb3NhYmkuCisgICAgCisgICAgCSogaTM4Ni10ZGVwLmggKGdk YmFyY2hfdGRlcCk6IEFkZCBudW1fbW14X3JlZ3MsIG51bV9ieXRlX3JlZ3MsCisgICAgCWFsX3Jl Z251bSwgbnVtX3dvcmRfcmVncywgYXhfcmVnbnVtLCBudW1fZHdvcmRfcmVncyBhbmQKKyAgICAJ ZWF4X3JlZ251bS4KKyAgICAJKGkzODZfYnl0ZV9yZWdudW1fcCk6IE5ldy4KKyAgICAJKGkzODZf d29yZF9yZWdudW1fcCk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9kd29yZF9yZWdudW1fcCk6IExp a2V3aXNlLgorICAgIAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorICAg IAkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk6IExpa2V3aXNlLgorICAgIAkoaTM4Nl9wc2V1 ZG9fcmVnaXN0ZXJfd3JpdGUpOiBMaWtld2lzZS4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlLwor ICAgIAorICAgIDIwMTAtMDMtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAg ICAKKyAgICAJKiBnZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cDogTmV3LgorICAgIAkqIGdkYi5hcmNo L2FtZDY0LWR3b3JkLmV4cDogTGlrZXdpc2UuCisgICAgCSogZ2RiLmFyY2gvYW1kNjQtcHNldWRv LmM6IExpa2V3aXNlLgorICAgIAkqIGdkYi5hcmNoL2FtZDY0LXdvcmQuZXhwOiBMaWtld2lzZS4K KyAgICAJKiBnZGIuYXJjaC9pMzg2LWJ5dGUuZXhwOiBMaWtld2lzZS4KKyAgICAJKiBnZGIuYXJj aC9pMzg2LXBzZXVkby5jOiBMaWtld2lzZS4KKyAgICAJKiBnZGIuYXJjaC9pMzg2LXdvcmQuZXhw OiBMaWtld2lzZS4KKworLS0tIGdkYi03LjEtcDIvZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAz IDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2FtZDY0LXRkZXAuYwky MDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTIxMCw2ICsyMTAsMTA3IEBA IGFtZDY0X2FyY2hfcmVnX3RvX3JlZ251bSAoaW50IHJlZykKKyAgIHJldHVybiBhbWQ2NF9hcmNo X3JlZ21hcFtyZWddOworIH0KKyAKKysvKiBSZWdpc3RlciBuYW1lcyBmb3IgYnl0ZSBwc2V1ZG8t cmVnaXN0ZXJzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRfYnl0ZV9uYW1lc1td ID0KKyt7CisrICAiYWwiLCAiYmwiLCAiY2wiLCAiZGwiLCAic2lsIiwgImRpbCIsICJicGwiLCAi c3BsIiwKKysgICJyOGwiLCAicjlsIiwgInIxMGwiLCAicjExbCIsICJyMTJsIiwgInIxM2wiLCAi cjE0bCIsICJyMTVsIgorK307CisrCisrLyogUmVnaXN0ZXIgbmFtZXMgZm9yIHdvcmQgcHNldWRv LXJlZ2lzdGVycy4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKmFtZDY0X3dvcmRfbmFtZXNb XSA9CisreworKyAgImF4IiwgImJ4IiwgImN4IiwgImR4IiwgInNpIiwgImRpIiwgImJwIiwgInNw IiwgCisrICAicjh3IiwgInI5dyIsICJyMTB3IiwgInIxMXciLCAicjEydyIsICJyMTN3IiwgInIx NHciLCAicjE1dyIKKyt9OworKworKy8qIFJlZ2lzdGVyIG5hbWVzIGZvciBkd29yZCBwc2V1ZG8t cmVnaXN0ZXJzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRfZHdvcmRfbmFtZXNb XSA9CisreworKyAgImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIsICJlc2kiLCAiZWRpIiwgImVi cCIsICJlc3AiLCAKKysgICJyOGQiLCAicjlkIiwgInIxMGQiLCAicjExZCIsICJyMTJkIiwgInIx M2QiLCAicjE0ZCIsICJyMTVkIgorK307CisrCisrLyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lz dGVyIFJFR05VTS4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKgorK2FtZDY0X3BzZXVkb19y ZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSkKKyt7Cisr ICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysg IGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHJldHVybiBh bWQ2NF9ieXRlX25hbWVzW3JlZ251bSAtIHRkZXAtPmFsX3JlZ251bV07CisrICBlbHNlIGlmIChp Mzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHJldHVybiBhbWQ2NF93 b3JkX25hbWVzW3JlZ251bSAtIHRkZXAtPmF4X3JlZ251bV07CisrICBlbHNlIGlmIChpMzg2X2R3 b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICByZXR1cm4gYW1kNjRfZHdvcmRf bmFtZXNbcmVnbnVtIC0gdGRlcC0+ZWF4X3JlZ251bV07CisrICBlbHNlCisrICAgIHJldHVybiBp Mzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCByZWdudW0pOworK30KKysKKytzdGF0 aWMgdm9pZAorK2FtZDY0X3BzZXVkb19yZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKKysJCQkgICAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJCQkgICAgaW50IHJl Z251bSwgZ2RiX2J5dGUgKmJ1ZikKKyt7CisrICBnZGJfYnl0ZSByYXdfYnVmW01BWF9SRUdJU1RF Ul9TSVpFXTsKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdk YmFyY2gpOworKworKyAgaWYgKGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkK KysgICAgeworKyAgICAgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmFsX3JlZ251bTsKKysK KysgICAgICAvKiBFeHRyYWN0IChhbHdheXMgbGl0dGxlIGVuZGlhbikuICAqLworKyAgICAgIHJl Z2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgZ3BudW0sIHJhd19idWYpOworKyAgICAgIG1lbWNw eSAoYnVmLCByYXdfYnVmLCAxKTsKKysgICAgfQorKyAgZWxzZSBpZiAoaTM4Nl9kd29yZF9yZWdu dW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysgICAgeworKyAgICAgIGludCBncG51bSA9IHJlZ251 bSAtIHRkZXAtPmVheF9yZWdudW07CisrICAgICAgLyogRXh0cmFjdCAoYWx3YXlzIGxpdHRsZSBl bmRpYW4pLiAgKi8KKysgICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdwbnVtLCBy YXdfYnVmKTsKKysgICAgICBtZW1jcHkgKGJ1ZiwgcmF3X2J1ZiwgNCk7CisrICAgIH0KKysgIGVs c2UKKysgICAgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwgcmVnY2FjaGUsIHJl Z251bSwgYnVmKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKythbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJf d3JpdGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorKwkJCSAgICAgc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwKKysJCQkgICAgIGludCByZWdudW0sIGNvbnN0IGdkYl9ieXRlICpidWYpCisr eworKyAgZ2RiX2J5dGUgcmF3X2J1ZltNQVhfUkVHSVNURVJfU0laRV07CisrICBzdHJ1Y3QgZ2Ri YXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysKKysgIGlmIChpMzg2 X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAgIHsKKysgICAgICBpbnQgZ3Bu dW0gPSByZWdudW0gLSB0ZGVwLT5hbF9yZWdudW07CisrCisrICAgICAgLyogUmVhZCAuLi4gICov CisrICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCBncG51bSwgcmF3X2J1Zik7Cisr ICAgICAgLyogLi4uIE1vZGlmeSAuLi4gKGFsd2F5cyBsaXR0bGUgZW5kaWFuKS4gICovCisrICAg ICAgbWVtY3B5IChyYXdfYnVmLCBidWYsIDEpOworKyAgICAgIC8qIC4uLiBXcml0ZS4gICovCisr ICAgICAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgZ3BudW0sIHJhd19idWYpOworKyAg ICB9CisrICBlbHNlIGlmIChpMzg2X2R3b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQor KyAgICB7CisrICAgICAgaW50IGdwbnVtID0gcmVnbnVtIC0gdGRlcC0+ZWF4X3JlZ251bTsKKysK KysgICAgICAvKiBSZWFkIC4uLiAgKi8KKysgICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIGdwbnVtLCByYXdfYnVmKTsKKysgICAgICAvKiAuLi4gTW9kaWZ5IC4uLiAoYWx3YXlzIGxp dHRsZSBlbmRpYW4pLiAgKi8KKysgICAgICBtZW1jcHkgKHJhd19idWYsIGJ1ZiwgNCk7CisrICAg ICAgLyogLi4uIFdyaXRlLiAgKi8KKysgICAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hl LCBncG51bSwgcmF3X2J1Zik7CisrICAgIH0KKysgIGVsc2UKKysgICAgaTM4Nl9wc2V1ZG9fcmVn aXN0ZXJfd3JpdGUgKGdkYmFyY2gsIHJlZ2NhY2hlLCByZWdudW0sIGJ1Zik7CisrfQorKworIAwK KyAKKyAvKiBSZXR1cm4gdGhlIHVuaW9uIGNsYXNzIG9mIENMQVNTMSBhbmQgQ0xBU1MyLiAgU2Vl IHRoZSBwc0FCSSBmb3IKK0BAIC0yMTMyLDYgKzIyMzMsMTkgQEAgYW1kNjRfaW5pdF9hYmkgKHN0 cnVjdCBnZGJhcmNoX2luZm8gaW5mbworICAgdGRlcC0+bnVtX2NvcmVfcmVncyA9IEFNRDY0X05V TV9HUkVHUyArIEkzODdfTlVNX1JFR1M7CisgICB0ZGVwLT5yZWdpc3Rlcl9uYW1lcyA9IGFtZDY0 X3JlZ2lzdGVyX25hbWVzOworIAorKyAgdGRlcC0+bnVtX2J5dGVfcmVncyA9IDE2OworKyAgdGRl cC0+bnVtX3dvcmRfcmVncyA9IDE2OworKyAgdGRlcC0+bnVtX2R3b3JkX3JlZ3MgPSAxNjsKKysg IC8qIEF2b2lkIHdpcmluZyBpbiB0aGUgTU1YIHJlZ2lzdGVycyBmb3Igbm93LiAgKi8KKysgIHRk ZXAtPm51bV9tbXhfcmVncyA9IDA7CisrCisrICBzZXRfZ2RiYXJjaF9wc2V1ZG9fcmVnaXN0ZXJf cmVhZCAoZ2RiYXJjaCwKKysJCQkJICAgIGFtZDY0X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTsKKysg IHNldF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoZ2RiYXJjaCwKKysJCQkJICAgICBh bWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUpOworKworKyAgc2V0X3RkZXNjX3BzZXVkb19yZWdp c3Rlcl9uYW1lIChnZGJhcmNoLCBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk7CisrCisgICAv KiBBTUQ2NCBoYXMgYW4gRlBVIGFuZCAxNiBTU0UgcmVnaXN0ZXJzLiAgKi8KKyAgIHRkZXAtPnN0 MF9yZWdudW0gPSBBTUQ2NF9TVDBfUkVHTlVNOworICAgdGRlcC0+bnVtX3htbV9yZWdzID0gMTY7 CitAQCAtMjE4MywxMCArMjI5Nyw2IEBAIGFtZDY0X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9p bmZvIGluZm8KKyAKKyAgIHNldF9nZGJhcmNoX3NraXBfcHJvbG9ndWUgKGdkYmFyY2gsIGFtZDY0 X3NraXBfcHJvbG9ndWUpOworIAorLSAgLyogQXZvaWQgd2lyaW5nIGluIHRoZSBNTVggcmVnaXN0 ZXJzIGZvciBub3cuICAqLworLSAgc2V0X2dkYmFyY2hfbnVtX3BzZXVkb19yZWdzIChnZGJhcmNo LCAwKTsKKy0gIHRkZXAtPm1tMF9yZWdudW0gPSAtMTsKKy0KKyAgIHRkZXAtPnJlY29yZF9yZWdt YXAgPSBhbWQ2NF9yZWNvcmRfcmVnbWFwOworIAorICAgc2V0X2dkYmFyY2hfZHVtbXlfaWQgKGdk YmFyY2gsIGFtZDY0X2R1bW15X2lkKTsKKy0tLSBnZGItNy4xLXAyL2dkYi9pMzg2LXRkZXAuYwky MDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2kzODYt dGRlcC5jCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAwMDAwICswMjAwCitAQCAtODEsMTcgKzgx LDcyIEBAIHN0YXRpYyBjb25zdCBjaGFyICppMzg2X21teF9uYW1lc1tdID0KKyAgICJtbTQiLCAi bW01IiwgIm1tNiIsICJtbTciCisgfTsKKyAKKy1zdGF0aWMgY29uc3QgaW50IGkzODZfbnVtX21t eF9yZWdzID0gQVJSQVlfU0laRSAoaTM4Nl9tbXhfbmFtZXMpOworKy8qIFJlZ2lzdGVyIG5hbWVz IGZvciBieXRlIHBzZXVkby1yZWdpc3RlcnMuICAqLworKworK3N0YXRpYyBjb25zdCBjaGFyICpp Mzg2X2J5dGVfbmFtZXNbXSA9CisreworKyAgImFsIiwgImNsIiwgImRsIiwgImJsIiwgCisrICAi YWgiLCAiY2giLCAiZGgiLCAiYmgiCisrfTsKKysKKysvKiBSZWdpc3RlciBuYW1lcyBmb3Igd29y ZCBwc2V1ZG8tcmVnaXN0ZXJzLiAgKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAqaTM4Nl93b3Jk X25hbWVzW10gPQorK3sKKysgICJheCIsICJjeCIsICJkeCIsICJieCIsCisrICAic3AiLCAiYnAi LCAic2kiLCAiZGkiCisrfTsKKysKKysvKiBNTVggcmVnaXN0ZXI/ICAqLworIAorIHN0YXRpYyBp bnQKKyBpMzg2X21teF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdu dW0pCisgeworLSAgaW50IG1tMF9yZWdudW0gPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpLT5tbTBf cmVnbnVtOworKyAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2Ri YXJjaCk7CisrICBpbnQgbW0wX3JlZ251bSA9IHRkZXAtPm1tMF9yZWdudW07CisgCisgICBpZiAo bW0wX3JlZ251bSA8IDApCisgICAgIHJldHVybiAwOworIAorLSAgcmV0dXJuIChyZWdudW0gPj0g bW0wX3JlZ251bSAmJiByZWdudW0gPCBtbTBfcmVnbnVtICsgaTM4Nl9udW1fbW14X3JlZ3MpOwor KyAgcmVnbnVtIC09IG1tMF9yZWdudW07CisrICByZXR1cm4gcmVnbnVtID49IDAgJiYgcmVnbnVt IDwgdGRlcC0+bnVtX21teF9yZWdzOworK30KKysKKysvKiBCeXRlIHJlZ2lzdGVyPyAgKi8KKysK KytpbnQKKytpMzg2X2J5dGVfcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQg cmVnbnVtKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAg KGdkYmFyY2gpOworKworKyAgcmVnbnVtIC09IHRkZXAtPmFsX3JlZ251bTsKKysgIHJldHVybiBy ZWdudW0gPj0gMCAmJiByZWdudW0gPCB0ZGVwLT5udW1fYnl0ZV9yZWdzOworK30KKysKKysvKiBX b3JkIHJlZ2lzdGVyPyAgKi8KKysKKytpbnQKKytpMzg2X3dvcmRfcmVnbnVtX3AgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKworKyAgcmVnbnVtIC09IHRkZXAtPmF4 X3JlZ251bTsKKysgIHJldHVybiByZWdudW0gPj0gMCAmJiByZWdudW0gPCB0ZGVwLT5udW1fd29y ZF9yZWdzOworK30KKysKKysvKiBEd29yZCByZWdpc3Rlcj8gICovCisrCisraW50CisraTM4Nl9k d29yZF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCisrewor KyAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7Cisr ICBpbnQgZWF4X3JlZ251bSA9IHRkZXAtPmVheF9yZWdudW07CisrCisrICBpZiAoZWF4X3JlZ251 bSA8IDApCisrICAgIHJldHVybiAwOworKworKyAgcmVnbnVtIC09IGVheF9yZWdudW07CisrICBy ZXR1cm4gcmVnbnVtID49IDAgJiYgcmVnbnVtIDwgdGRlcC0+bnVtX2R3b3JkX3JlZ3M7CisgfQor IAorIC8qIFNTRSByZWdpc3Rlcj8gICovCitAQCAtMTQ3LDExICsyMDIsMTggQEAgaTM4Nl9mcGNf cmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcgorIAorIC8qIFJldHVybiB0aGUgbmFtZSBv ZiByZWdpc3RlciBSRUdOVU0uICAqLworIAorLXN0YXRpYyBjb25zdCBjaGFyICoKKytjb25zdCBj aGFyICoKKyBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwgaW50IHJlZ251bSkKKyB7CistICBnZGJfYXNzZXJ0IChpMzg2X21teF9yZWdudW1fcCAoZ2Ri YXJjaCwgcmVnbnVtKSk7CistICByZXR1cm4gaTM4Nl9tbXhfbmFtZXNbcmVnbnVtIC0gSTM4N19N TTBfUkVHTlVNIChnZGJhcmNoX3RkZXAgKGdkYmFyY2gpKV07CisrICBzdHJ1Y3QgZ2RiYXJjaF90 ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysgIGlmIChpMzg2X21teF9yZWdu dW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysgICAgcmV0dXJuIGkzODZfbW14X25hbWVzW3JlZ251 bSAtIEkzODdfTU0wX1JFR05VTSAodGRlcCldOworKyAgZWxzZSBpZiAoaTM4Nl9ieXRlX3JlZ251 bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICByZXR1cm4gaTM4Nl9ieXRlX25hbWVzW3JlZ251 bSAtIHRkZXAtPmFsX3JlZ251bV07CisrICBlbHNlIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSkpCisrICAgIHJldHVybiBpMzg2X3dvcmRfbmFtZXNbcmVnbnVtIC0gdGRl cC0+YXhfcmVnbnVtXTsKKysKKysgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18s IF8oImludmFsaWQgcmVnbnVtIikpOworIH0KKyAKKyAvKiBDb252ZXJ0IGEgZGJ4IHJlZ2lzdGVy IG51bWJlciBSRUcgdG8gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyCitAQCAtMjE2OSw4ICsyMjMx LDIwIEBAIGkzODZfbW14X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQorIHN0YXRpYyBz dHJ1Y3QgdHlwZSAqCisgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIGludCByZWdudW0pCisgeworLSAgZ2RiX2Fzc2VydCAoaTM4Nl9tbXhfcmVnbnVt X3AgKGdkYmFyY2gsIHJlZ251bSkpOworLSAgcmV0dXJuIGkzODZfbW14X3R5cGUgKGdkYmFyY2gp OworKyAgaWYgKGkzODZfbW14X3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICByZXR1 cm4gaTM4Nl9tbXhfdHlwZSAoZ2RiYXJjaCk7CisrICBlbHNlCisrICAgIHsKKysgICAgICBjb25z dCBzdHJ1Y3QgYnVpbHRpbl90eXBlICpidCA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CisrICAg ICAgaWYgKGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysJcmV0dXJuIGJ0 LT5idWlsdGluX2ludDg7CisrICAgICAgZWxzZSBpZiAoaTM4Nl93b3JkX3JlZ251bV9wIChnZGJh cmNoLCByZWdudW0pKQorKwlyZXR1cm4gYnQtPmJ1aWx0aW5faW50MTY7CisrICAgICAgZWxzZSBp ZiAoaTM4Nl9kd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKysJcmV0dXJuIGJ0LT5i dWlsdGluX2ludDMyOworKyAgICB9CisrCisrICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9f TElORV9fLCBfKCJpbnZhbGlkIHJlZ251bSIpKTsKKyB9CisgCisgLyogTWFwIGEgY29va2VkIHJl Z2lzdGVyIG9udG8gYSByYXcgcmVnaXN0ZXIgb3IgbWVtb3J5LiAgRm9yIHRoZSBpMzg2LAorQEAg LTIxOTIsNDEgKzIyNjYsMTA0IEBAIGkzODZfbW14X3JlZ251bV90b19mcF9yZWdudW0gKHN0cnVj dCByZWcKKyAgIHJldHVybiAoSTM4N19TVDBfUkVHTlVNICh0ZGVwKSArIGZwcmVnKTsKKyB9Cisg Cistc3RhdGljIHZvaWQKKyt2b2lkCisgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisgCQkJICAgaW50 IHJlZ251bSwgZ2RiX2J5dGUgKmJ1ZikKKyB7CisrICBnZGJfYnl0ZSByYXdfYnVmW01BWF9SRUdJ U1RFUl9TSVpFXTsKKysKKyAgIGlmIChpMzg2X21teF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVt KSkKKyAgICAgeworLSAgICAgIGdkYl9ieXRlIG1teF9idWZbTUFYX1JFR0lTVEVSX1NJWkVdOwor ICAgICAgIGludCBmcG51bSA9IGkzODZfbW14X3JlZ251bV90b19mcF9yZWdudW0gKHJlZ2NhY2hl LCByZWdudW0pOworIAorICAgICAgIC8qIEV4dHJhY3QgKGFsd2F5cyBsaXR0bGUgZW5kaWFuKS4g ICovCistICAgICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2NhY2hlLCBmcG51bSwgbW14X2J1Zik7 CistICAgICAgbWVtY3B5IChidWYsIG1teF9idWYsIHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIHJl Z251bSkpOworKyAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgZnBudW0sIHJhd19i dWYpOworKyAgICAgIG1lbWNweSAoYnVmLCByYXdfYnVmLCByZWdpc3Rlcl9zaXplIChnZGJhcmNo LCByZWdudW0pKTsKKyAgICAgfQorICAgZWxzZQorLSAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVn Y2FjaGUsIHJlZ251bSwgYnVmKTsKKysgICAgeworKyAgICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAg KnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKworKyAgICAgIGlmIChpMzg2X3dvcmRf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrCXsKKysJICBpbnQgZ3BudW0gPSByZWdudW0g LSB0ZGVwLT5heF9yZWdudW07CisrCisrCSAgLyogRXh0cmFjdCAoYWx3YXlzIGxpdHRsZSBlbmRp YW4pLiAgKi8KKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdwbnVtLCByYXdfYnVm KTsKKysJICBtZW1jcHkgKGJ1ZiwgcmF3X2J1ZiwgMik7CisrCX0KKysgICAgICBlbHNlIGlmIChp Mzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrCXsKKysJICAvKiBDaGVjayBi eXRlIHBzZXVkbyByZWdpc3RlcnMgbGFzdCBzaW5jZSB0aGlzIGZ1bmN0aW9uIHdpbGwKKysJICAg ICBiZSBjYWxsZWQgZnJvbSBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCwgd2hpY2ggaGFuZGxl cworKwkgICAgIGJ5dGUgcHNldWRvIHJlZ2lzdGVycyBkaWZmZXJlbnRseS4gICovCisrCSAgaW50 IGdwbnVtID0gcmVnbnVtIC0gdGRlcC0+YWxfcmVnbnVtOworKworKwkgIC8qIEV4dHJhY3QgKGFs d2F5cyBsaXR0bGUgZW5kaWFuKS4gIFdlIHJlYWQgYm90aCBsb3dlciBhbmQKKysJICAgICB1cHBl ciByZWdpc3RlcnMuICAqLworKwkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgZ3BudW0g JSA0LCByYXdfYnVmKTsKKysJICBpZiAoZ3BudW0gPj0gNCkKKysJICAgIG1lbWNweSAoYnVmLCBy YXdfYnVmICsgMSwgMSk7CisrCSAgZWxzZQorKwkgICAgbWVtY3B5IChidWYsIHJhd19idWYsIDEp OworKwl9CisrICAgICAgZWxzZQorKwlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9f LCBfKCJpbnZhbGlkIHJlZ251bSIpKTsKKysgICAgfQorIH0KKyAKKy1zdGF0aWMgdm9pZAorK3Zv aWQKKyBpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisgCQkJICAgIGludCByZWdudW0sIGNvbnN0IGdk Yl9ieXRlICpidWYpCisgeworKyAgZ2RiX2J5dGUgcmF3X2J1ZltNQVhfUkVHSVNURVJfU0laRV07 CisrCisgICBpZiAoaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgICAgIHsK Ky0gICAgICBnZGJfYnl0ZSBtbXhfYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKKyAgICAgICBpbnQg ZnBudW0gPSBpMzg2X21teF9yZWdudW1fdG9fZnBfcmVnbnVtIChyZWdjYWNoZSwgcmVnbnVtKTsK KyAKKyAgICAgICAvKiBSZWFkIC4uLiAgKi8KKy0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVn Y2FjaGUsIGZwbnVtLCBtbXhfYnVmKTsKKysgICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2Fj aGUsIGZwbnVtLCByYXdfYnVmKTsKKyAgICAgICAvKiAuLi4gTW9kaWZ5IC4uLiAoYWx3YXlzIGxp dHRsZSBlbmRpYW4pLiAgKi8KKy0gICAgICBtZW1jcHkgKG1teF9idWYsIGJ1ZiwgcmVnaXN0ZXJf c2l6ZSAoZ2RiYXJjaCwgcmVnbnVtKSk7CisrICAgICAgbWVtY3B5IChyYXdfYnVmLCBidWYsIHJl Z2lzdGVyX3NpemUgKGdkYmFyY2gsIHJlZ251bSkpOworICAgICAgIC8qIC4uLiBXcml0ZS4gICov CistICAgICAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgZnBudW0sIG1teF9idWYpOwor KyAgICAgIHJlZ2NhY2hlX3Jhd193cml0ZSAocmVnY2FjaGUsIGZwbnVtLCByYXdfYnVmKTsKKyAg ICAgfQorICAgZWxzZQorLSAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCByZWdudW0s IGJ1Zik7CisrICAgIHsKKysgICAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKKysKKysgICAgICBpZiAoaTM4Nl93b3JkX3JlZ251bV9wIChnZGJh cmNoLCByZWdudW0pKQorKwl7CisrCSAgaW50IGdwbnVtID0gcmVnbnVtIC0gdGRlcC0+YXhfcmVn bnVtOworKworKwkgIC8qIFJlYWQgLi4uICAqLworKwkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdj YWNoZSwgZ3BudW0sIHJhd19idWYpOworKwkgIC8qIC4uLiBNb2RpZnkgLi4uIChhbHdheXMgbGl0 dGxlIGVuZGlhbikuICAqLworKwkgIG1lbWNweSAocmF3X2J1ZiwgYnVmLCAyKTsKKysJICAvKiAu Li4gV3JpdGUuICAqLworKwkgIHJlZ2NhY2hlX3Jhd193cml0ZSAocmVnY2FjaGUsIGdwbnVtLCBy YXdfYnVmKTsKKysJfQorKyAgICAgIGVsc2UgaWYgKGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSkKKysJeworKwkgIC8qIENoZWNrIGJ5dGUgcHNldWRvIHJlZ2lzdGVycyBsYXN0 IHNpbmNlIHRoaXMgZnVuY3Rpb24gd2lsbAorKwkgICAgIGJlIGNhbGxlZCBmcm9tIGFtZDY0X3Bz ZXVkb19yZWdpc3Rlcl9yZWFkLCB3aGljaCBoYW5kbGVzCisrCSAgICAgYnl0ZSBwc2V1ZG8gcmVn aXN0ZXJzIGRpZmZlcmVudGx5LiAgKi8KKysJICBpbnQgZ3BudW0gPSByZWdudW0gLSB0ZGVwLT5h bF9yZWdudW07CisrCisrCSAgLyogUmVhZCAuLi4gIFdlIHJlYWQgYm90aCBsb3dlciBhbmQgdXBw ZXIgcmVnaXN0ZXJzLiAgKi8KKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdwbnVt ICUgNCwgcmF3X2J1Zik7CisrCSAgLyogLi4uIE1vZGlmeSAuLi4gKGFsd2F5cyBsaXR0bGUgZW5k aWFuKS4gICovCisrCSAgaWYgKGdwbnVtID49IDQpCisrCSAgICBtZW1jcHkgKHJhd19idWYgKyAx LCBidWYsIDEpOworKwkgIGVsc2UKKysJICAgIG1lbWNweSAocmF3X2J1ZiwgYnVmLCAxKTsKKysJ ICAvKiAuLi4gV3JpdGUuICAqLworKwkgIHJlZ2NhY2hlX3Jhd193cml0ZSAocmVnY2FjaGUsIGdw bnVtICUgNCwgcmF3X2J1Zik7CisrCX0KKysgICAgICBlbHNlCisrCWludGVybmFsX2Vycm9yIChf X0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgcmVnbnVtIikpOworKyAgICB9CisgfQorIAwK KyAKK0BAIC0yNjYzLDIyICsyODAwLDQ2IEBAIGludAorIGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBf cCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0sCisgCQkJICBzdHJ1Y3QgcmVn Z3JvdXAgKmdyb3VwKQorIHsKKy0gIGludCBzc2VfcmVnbnVtX3AgPSAoaTM4Nl9zc2VfcmVnbnVt X3AgKGdkYmFyY2gsIHJlZ251bSkKKy0JCSAgICAgIHx8IGkzODZfbXhjc3JfcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSkpOworLSAgaW50IGZwX3JlZ251bV9wID0gKGkzODZfZnBfcmVnbnVtX3Ag KGdkYmFyY2gsIHJlZ251bSkKKy0JCSAgICAgfHwgaTM4Nl9mcGNfcmVnbnVtX3AgKGdkYmFyY2gs IHJlZ251bSkpOworLSAgaW50IG1teF9yZWdudW1fcCA9IChpMzg2X21teF9yZWdudW1fcCAoZ2Ri YXJjaCwgcmVnbnVtKSk7CisrICBpbnQgc3NlX3JlZ251bV9wLCBmcF9yZWdudW1fcCwgbW14X3Jl Z251bV9wLCBieXRlX3JlZ251bV9wLAorKyAgICAgIHdvcmRfcmVnbnVtX3AsIGR3b3JkX3JlZ251 bV9wOworKworKyAgLyogRG9uJ3QgaW5jbHVkZSBwc2V1ZG8gcmVnaXN0ZXJzLCBleGNlcHQgZm9y IE1NWCwgaW4gYW55IHJlZ2lzdGVyCisrICAgICBncm91cHMuICAqLworKyAgYnl0ZV9yZWdudW1f cCA9IGkzODZfYnl0ZV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKTsKKysgIGlmIChieXRlX3Jl Z251bV9wKQorKyAgICByZXR1cm4gMDsKKyAKKysgIHdvcmRfcmVnbnVtX3AgPSBpMzg2X3dvcmRf cmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7CisrICBpZiAod29yZF9yZWdudW1fcCkKKysgICAg cmV0dXJuIDA7CisrCisrICBkd29yZF9yZWdudW1fcCA9IGkzODZfZHdvcmRfcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSk7CisrICBpZiAoZHdvcmRfcmVnbnVtX3ApCisrICAgIHJldHVybiAwOwor KworKyAgbW14X3JlZ251bV9wID0gaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7 CisgICBpZiAoZ3JvdXAgPT0gaTM4Nl9tbXhfcmVnZ3JvdXApCisgICAgIHJldHVybiBtbXhfcmVn bnVtX3A7CisrCisrICBzc2VfcmVnbnVtX3AgPSAoaTM4Nl9zc2VfcmVnbnVtX3AgKGdkYmFyY2gs IHJlZ251bSkKKysJCSAgfHwgaTM4Nl9teGNzcl9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSk7 CisgICBpZiAoZ3JvdXAgPT0gaTM4Nl9zc2VfcmVnZ3JvdXApCisgICAgIHJldHVybiBzc2VfcmVn bnVtX3A7CisgICBpZiAoZ3JvdXAgPT0gdmVjdG9yX3JlZ2dyb3VwKQorLSAgICByZXR1cm4gKG1t eF9yZWdudW1fcCB8fCBzc2VfcmVnbnVtX3ApOworKyAgICByZXR1cm4gbW14X3JlZ251bV9wIHx8 IHNzZV9yZWdudW1fcDsKKysKKysgIGZwX3JlZ251bV9wID0gKGkzODZfZnBfcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSkKKysJCSB8fCBpMzg2X2ZwY19yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVt KSk7CisgICBpZiAoZ3JvdXAgPT0gZmxvYXRfcmVnZ3JvdXApCisgICAgIHJldHVybiBmcF9yZWdu dW1fcDsKKysKKyAgIGlmIChncm91cCA9PSBnZW5lcmFsX3JlZ2dyb3VwKQorLSAgICByZXR1cm4g KCFmcF9yZWdudW1fcCAmJiAhbW14X3JlZ251bV9wICYmICFzc2VfcmVnbnVtX3ApOworKyAgICBy ZXR1cm4gKCFmcF9yZWdudW1fcAorKwkgICAgJiYgIW1teF9yZWdudW1fcAorKwkgICAgJiYgIXNz ZV9yZWdudW1fcAorKwkgICAgJiYgIWJ5dGVfcmVnbnVtX3AKKysJICAgICYmICF3b3JkX3JlZ251 bV9wCisrCSAgICAmJiAhZHdvcmRfcmVnbnVtX3ApOworIAorICAgcmV0dXJuIGRlZmF1bHRfcmVn aXN0ZXJfcmVnZ3JvdXBfcCAoZ2RiYXJjaCwgcmVnbnVtLCBncm91cCk7CisgfQorQEAgLTU1Mjcs NiArNTY4OCw3IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOworICAgc3RydWN0IHRkZXNjX2FyY2hfZGF0YSAqdGRl c2NfZGF0YTsKKyAgIGNvbnN0IHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2M7CisrICBpbnQgbW0w X3JlZ251bTsKKyAKKyAgIC8qIElmIHRoZXJlIGlzIGFscmVhZHkgYSBjYW5kaWRhdGUsIHVzZSBp dC4gICovCisgICBhcmNoZXMgPSBnZGJhcmNoX2xpc3RfbG9va3VwX2J5X2luZm8gKGFyY2hlcywg JmluZm8pOworQEAgLTU1NjMsMTEgKzU3MjUsNiBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0 IGdkYmFyY2hfaW5mbyBpCisgCisgICB0ZGVwLT5zdDBfcmVnbnVtID0gSTM4Nl9TVDBfUkVHTlVN OworIAorLSAgLyogVGhlIE1NWCByZWdpc3RlcnMgYXJlIGltcGxlbWVudGVkIGFzIHBzZXVkby1y ZWdpc3RlcnMuICBQdXQgb2ZmCistICAgICBjYWxjdWxhdGluZyB0aGUgcmVnaXN0ZXIgbnVtYmVy IGZvciAlbW0wIHVudGlsIHdlIGtub3cgdGhlIG51bWJlcgorLSAgICAgb2YgcmF3IHJlZ2lzdGVy cy4gICovCistICB0ZGVwLT5tbTBfcmVnbnVtID0gMDsKKy0KKyAgIC8qIEkzODZfTlVNX1hSRUdT IGluY2x1ZGVzICVteGNzciwgc28gc3Vic3RyYWN0IG9uZS4gICovCisgICB0ZGVwLT5udW1feG1t X3JlZ3MgPSBJMzg2X05VTV9YUkVHUyAtIDE7CisgCitAQCAtNTY5Myw4ICs1ODUwLDcgQEAgaTM4 Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorIAorICAgZnJhbWVfYmFzZV9z ZXRfZGVmYXVsdCAoZ2RiYXJjaCwgJmkzODZfZnJhbWVfYmFzZSk7CisgCistICAvKiBXaXJlIGlu IHRoZSBNTVggcmVnaXN0ZXJzLiAgKi8KKy0gIHNldF9nZGJhcmNoX251bV9wc2V1ZG9fcmVncyAo Z2RiYXJjaCwgaTM4Nl9udW1fbW14X3JlZ3MpOworKyAgLyogUHNldWRvIHJlZ2lzdGVycyBtYXkg YmUgY2hhbmdlZCBieSBhbWQ2NF9pbml0X2FiaS4gICovCisgICBzZXRfZ2RiYXJjaF9wc2V1ZG9f cmVnaXN0ZXJfcmVhZCAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk7CisgICBz ZXRfZ2RiYXJjaF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKGdkYmFyY2gsIGkzODZfcHNldWRvX3Jl Z2lzdGVyX3dyaXRlKTsKKyAKK0BAIC01NzE0LDEyICs1ODcwLDI0IEBAIGkzODZfZ2RiYXJjaF9p bml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAgIHRkZXAtPm51bV9jb3JlX3JlZ3MgPSBJMzg2 X05VTV9HUkVHUyArIEkzODdfTlVNX1JFR1M7CisgICB0ZGVwLT5yZWdpc3Rlcl9uYW1lcyA9IGkz ODZfcmVnaXN0ZXJfbmFtZXM7CisgCisrICB0ZGVwLT5udW1fYnl0ZV9yZWdzID0gODsKKysgIHRk ZXAtPm51bV93b3JkX3JlZ3MgPSA4OworKyAgdGRlcC0+bnVtX2R3b3JkX3JlZ3MgPSAwOworKyAg dGRlcC0+bnVtX21teF9yZWdzID0gODsKKysKKyAgIHRkZXNjX2RhdGEgPSB0ZGVzY19kYXRhX2Fs bG9jICgpOworIAorICAgLyogSG9vayBpbiBBQkktc3BlY2lmaWMgb3ZlcnJpZGVzLCBpZiB0aGV5 IGhhdmUgYmVlbiByZWdpc3RlcmVkLiAgKi8KKyAgIGluZm8udGRlcF9pbmZvID0gKHZvaWQgKikg dGRlc2NfZGF0YTsKKyAgIGdkYmFyY2hfaW5pdF9vc2FiaSAoaW5mbywgZ2RiYXJjaCk7CisgCisr ICAvKiBXaXJlIGluIHBzZXVkbyByZWdpc3RlcnMuICBOdW1iZXIgb2YgcHNldWRvIHJlZ2lzdGVy cyBtYXkgYmUKKysgICAgIGNoYW5nZWQuICAqLworKyAgc2V0X2dkYmFyY2hfbnVtX3BzZXVkb19y ZWdzIChnZGJhcmNoLCAodGRlcC0+bnVtX2J5dGVfcmVncworKwkJCQkJICsgdGRlcC0+bnVtX3dv cmRfcmVncworKwkJCQkJICsgdGRlcC0+bnVtX2R3b3JkX3JlZ3MKKysJCQkJCSArIHRkZXAtPm51 bV9tbXhfcmVncykpOworKworICAgLyogVGFyZ2V0IGRlc2NyaXB0aW9uIG1heSBiZSBjaGFuZ2Vk LiAgKi8KKyAgIHRkZXNjID0gdGRlcC0+dGRlc2M7CisgCitAQCAtNTczNiw2ICs1OTA0LDI4IEBA IGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAgIC8qIE92ZXJyaWRl IGdkYmFyY2hfcmVnaXN0ZXJfcmVnZ3JvdXBfcCBzZXQgaW4gdGRlc2NfdXNlX3JlZ2lzdGVycy4g ICovCisgICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9yZWdncm91cF9wIChnZGJhcmNoLCB0ZGVwLT5y ZWdpc3Rlcl9yZWdncm91cF9wKTsKKyAKKysgIC8qIE1ha2UgJWFsIHRoZSBmaXJzdCBwc2V1ZG8t cmVnaXN0ZXIuICAqLworKyAgdGRlcC0+YWxfcmVnbnVtID0gZ2RiYXJjaF9udW1fcmVncyAoZ2Ri YXJjaCk7CisrICB0ZGVwLT5heF9yZWdudW0gPSB0ZGVwLT5hbF9yZWdudW0gKyB0ZGVwLT5udW1f Ynl0ZV9yZWdzOworKworKyAgbW0wX3JlZ251bSA9IHRkZXAtPmF4X3JlZ251bSArIHRkZXAtPm51 bV93b3JkX3JlZ3M7CisrICBpZiAodGRlcC0+bnVtX2R3b3JkX3JlZ3MpCisrICAgIHsKKysgICAg ICAvKiBTdXBwb3J0IGR3b3JkIHBzZXVkby1yZWdpc3Rlc3IgaWYgaXQgaGFzbid0IGJlZW4gZGlz YWJsZWQsICAqLworKyAgICAgIHRkZXAtPmVheF9yZWdudW0gPSBtbTBfcmVnbnVtOworKyAgICAg IG1tMF9yZWdudW0gPSB0ZGVwLT5lYXhfcmVnbnVtICsgdGRlcC0+bnVtX2R3b3JkX3JlZ3M7Cisr ICAgIH0KKysgIGVsc2UKKysgICAgdGRlcC0+ZWF4X3JlZ251bSA9IC0xOworKworKyAgaWYgKHRk ZXAtPm51bV9tbXhfcmVncyAhPSAwKQorKyAgICB7CisrICAgICAgLyogU3VwcG9ydCBNTVggcHNl dWRvLXJlZ2lzdGVzciBpZiBNTVggaGFzbid0IGJlZW4gZGlzYWJsZWQsICAqLworKyAgICAgIHRk ZXAtPm1tMF9yZWdudW0gPSBtbTBfcmVnbnVtOworKyAgICB9CisrICBlbHNlCisrICAgIHRkZXAt Pm1tMF9yZWdudW0gPSAtMTsKKysKKyAgIC8qIEhvb2sgaW4gdGhlIGxlZ2FjeSBwcm9sb2d1ZS1i YXNlZCB1bndpbmRlcnMgbGFzdCAoZmFsbGJhY2spLiAgKi8KKyAgIGZyYW1lX3Vud2luZF9hcHBl bmRfdW53aW5kZXIgKGdkYmFyY2gsICZpMzg2X3NpZ3RyYW1wX2ZyYW1lX3Vud2luZCk7CisgICBm cmFtZV91bndpbmRfYXBwZW5kX3Vud2luZGVyIChnZGJhcmNoLCAmaTM4Nl9mcmFtZV91bndpbmQp OworQEAgLTU3NDcsMTEgKzU5MzcsNiBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpCisgICAgIHNldF9nZGJhcmNoX3JlZ3NldF9mcm9tX2NvcmVfc2VjdGlvbiAoZ2Ri YXJjaCwKKyAJCQkJCSAgaTM4Nl9yZWdzZXRfZnJvbV9jb3JlX3NlY3Rpb24pOworIAorLSAgLyog VW5sZXNzIHN1cHBvcnQgZm9yIE1NWCBoYXMgYmVlbiBkaXNhYmxlZCwgbWFrZSAlbW0wIHRoZSBm aXJzdAorLSAgICAgcHNldWRvLXJlZ2lzdGVyLiAgKi8KKy0gIGlmICh0ZGVwLT5tbTBfcmVnbnVt ID09IDApCistICAgIHRkZXAtPm1tMF9yZWdudW0gPSBnZGJhcmNoX251bV9yZWdzIChnZGJhcmNo KTsKKy0KKyAgIHNldF9nZGJhcmNoX3NraXBfcGVybWFuZW50X2JyZWFrcG9pbnQgKGdkYmFyY2gs CisgCQkJCQkgaTM4Nl9za2lwX3Blcm1hbmVudF9icmVha3BvaW50KTsKKyAKKy0tLSBnZGItNy4x LXAyL2dkYi9pMzg2LXRkZXAuaAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjEvZ2RiL2kzODYtdGRlcC5oCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAwMDAw ICswMjAwCitAQCAtMTE0LDEwICsxMTQsMzIgQEAgc3RydWN0IGdkYmFyY2hfdGRlcAorICAgICAg YWJzZW5jZSBvZiBhbiBGUFUuICAqLworICAgaW50IHN0MF9yZWdudW07CisgCisrICAvKiBOdW1i ZXIgb2YgTU1YIHJlZ2lzdGVycy4gICovCisrICBpbnQgbnVtX21teF9yZWdzOworKworICAgLyog UmVnaXN0ZXIgbnVtYmVyIGZvciAlbW0wLiAgU2V0IHRoaXMgdG8gLTEgdG8gaW5kaWNhdGUgdGhl IGFic2VuY2UKKyAgICAgIG9mIE1NWCBzdXBwb3J0LiAgKi8KKyAgIGludCBtbTBfcmVnbnVtOwor IAorKyAgLyogTnVtYmVyIG9mIGJ5dGUgcmVnaXN0ZXJzLiAgKi8KKysgIGludCBudW1fYnl0ZV9y ZWdzOworKworKyAgLyogUmVnaXN0ZXIgcHNldWRvIG51bWJlciBmb3IgJWFsLiAgKi8KKysgIGlu dCBhbF9yZWdudW07CisrCisrICAvKiBOdW1iZXIgb2YgcHNldWRvIHdvcmQgcmVnaXN0ZXJzLiAg Ki8KKysgIGludCBudW1fd29yZF9yZWdzOworKworKyAgLyogUmVnaXN0ZXIgbnVtYmVyIGZvciAl YXguICAqLworKyAgaW50IGF4X3JlZ251bTsKKysKKysgIC8qIE51bWJlciBvZiBwc2V1ZG8gZHdv cmQgcmVnaXN0ZXJzLiAgKi8KKysgIGludCBudW1fZHdvcmRfcmVnczsKKysKKysgIC8qIFJlZ2lz dGVyIG51bWJlciBmb3IgJWVheC4gIFNldCB0aGlzIHRvIC0xIHRvIGluZGljYXRlIHRoZSBhYnNl bmNlCisrICAgICBvZiBwc2V1ZG8gZHdvcmQgcmVnaXN0ZXIgc3VwcG9ydC4gICovCisrICBpbnQg ZWF4X3JlZ251bTsKKysKKyAgIC8qIE51bWJlciBvZiBjb3JlIHJlZ2lzdGVycy4gICovCisgICBp bnQgbnVtX2NvcmVfcmVnczsKKyAKK0BAIC0yNTMsNiArMjc1LDIxIEBAIGVudW0gcmVjb3JkX2kz ODZfcmVnbnVtCisgLyogVHlwZXMgZm9yIGkzODYtc3BlY2lmaWMgcmVnaXN0ZXJzLiAgKi8KKyBl eHRlcm4gc3RydWN0IHR5cGUgKmkzODdfZXh0X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo KTsKKyAKKysvKiBDaGVja3Mgb2YgZGlmZmVyZW50IHBzZXVkby1yZWdpc3RlcnMuICAqLworK2V4 dGVybiBpbnQgaTM4Nl9ieXRlX3JlZ251bV9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50 IHJlZ251bSk7CisrZXh0ZXJuIGludCBpMzg2X3dvcmRfcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKytleHRlcm4gaW50IGkzODZfZHdvcmRfcmVnbnVtX3Ag KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKysKKytleHRlcm4gY29uc3Qg Y2hhciAqaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs CisrCQkJCQkgICAgICBpbnQgcmVnbnVtKTsKKysKKytleHRlcm4gdm9pZCBpMzg2X3BzZXVkb19y ZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKysJCQkJICAgICAgIHN0cnVj dCByZWdjYWNoZSAqcmVnY2FjaGUsCisrCQkJCSAgICAgICBpbnQgcmVnbnVtLCBnZGJfYnl0ZSAq YnVmKTsKKytleHRlcm4gdm9pZCBpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCisrCQkJCQlzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAorKwkJCQkJ aW50IHJlZ251bSwgY29uc3QgZ2RiX2J5dGUgKmJ1Zik7CisrCisgLyogU2VnbWVudCBzZWxlY3Rv cnMuICAqLworICNkZWZpbmUgSTM4Nl9TRUxfUlBMCTB4MDAwMyAgLyogUmVxdWVzdGVyJ3MgUHJp dmlsZWdlIExldmVsIG1hc2suICAqLworICNkZWZpbmUgSTM4Nl9TRUxfVVBMCTB4MDAwMwkvKiBV c2VyIFByaXZpbGlnZSBMZXZlbC4gKi8KKy0tLSBnZGItNy4xLXAyL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gvYW1kNjQtYnl0ZS5leHAJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvYW1kNjQtYnl0ZS5leHAJMjAxMC0w NC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTIxIEBACisrIyBDb3B5 cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBQbGVhc2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRz LCBhbmQvb3IgYWRkaXRpb25zIHRvIHRoaXMgZmlsZSB0bzoKKysjIGJ1Zy1nZGJAZ251Lm9yZwor KworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUuCisrCisraWYgJHRy YWNlbGV2ZWwgeworKyAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKKyt9CisrCisrc2V0IHBybXNfaWQg MAorK3NldCBidWdfaWQgMAorKworK2lmIHsgIVtpc3RhcmdldCB4ODZfNjQtKi0qIF0gfSB7Cisr ICAgIHZlcmJvc2UgIlNraXBwaW5nIGFtZDY0IGJ5dGUgcmVnaXN0ZXIgdGVzdHMuIgorKyAgICBy ZXR1cm4KKyt9CisrCisrc2V0IHRlc3RmaWxlICJhbWQ2NC1ieXRlIgorK3NldCBzcmNmaWxlIGFt ZDY0LXBzZXVkby5jCisrc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxl fQorKworK2lmIFtnZXRfY29tcGlsZXJfaW5mbyAke2JpbmZpbGV9XSB7CisrICAgIHJldHVybiAt MQorK30KKysKKytpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2Zp bGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBbbGlzdCBkZWJ1Z11dICE9ICIiIH0geworKyAg ICB1bnRlc3RlZCAke3Rlc3RmaWxlfQorKyAgICByZXR1cm4KKyt9CisrCisrZ2RiX2V4aXQKKytn ZGJfc3RhcnQKKytnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKytnZGJfbG9h ZCAke2JpbmZpbGV9CisrCisraWYgIVtydW50b19tYWluXSB0aGVuIHsKKysgICAgZ2RiX3N1cHBy ZXNzX3Rlc3RzCisrfQorKworK3NldCBucl9yZWdzIDE0Cisrc2V0IGJ5dGVfcmVncygxKSBhbAor K3NldCBieXRlX3JlZ3MoMikgYmwKKytzZXQgYnl0ZV9yZWdzKDMpIGNsCisrc2V0IGJ5dGVfcmVn cyg0KSBkbAorK3NldCBieXRlX3JlZ3MoNSkgc2lsCisrc2V0IGJ5dGVfcmVncyg2KSBkaWwKKytz ZXQgYnl0ZV9yZWdzKDcpIHI4bAorK3NldCBieXRlX3JlZ3MoOCkgcjlsCisrc2V0IGJ5dGVfcmVn cyg5KSByMTBsCisrc2V0IGJ5dGVfcmVncygxMCkgcjExbAorK3NldCBieXRlX3JlZ3MoMTEpIHIx MmwKKytzZXQgYnl0ZV9yZWdzKDEyKSByMTNsCisrc2V0IGJ5dGVfcmVncygxMykgcjE0bAorK3Nl dCBieXRlX3JlZ3MoMTQpIHIxNWwKKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9u dW1iZXIgImZpcnN0IGJyZWFrcG9pbnQgaGVyZSJdIiBcCisrICAgICAgICAgIkJyZWFrcG9pbnQg LiogYXQgLioke3NyY2ZpbGV9LioiIFwKKysgICAgICAgICAic2V0IGZpcnN0IGJyZWFrcG9pbnQg aW4gbWFpbiIKKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8gZmlyc3Qg YnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDYgIH0geyBp bmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludC94IFwkJGJ5dGVfcmVncygkcikiIFwKKysg ICAgICAgICIuLiA9IDB4W2Zvcm1hdCAleCAkcl0xIiBcCisrICAgICAgICAiY2hlY2sgY29udGVu dHMgb2YgJSRieXRlX3JlZ3MoJHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRf bGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVh a3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNldCBzZWNvbmQgYnJl YWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0 byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDcgfSB7ICRyIDw9 ICRucl9yZWdzICB9IHsgaW5jciByIH0geworKyAgICBnZGJfdGVzdCAicHJpbnQveCBcJCRieXRl X3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXggJHJdMSIgXAorKyAgICAg ICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKKyt9CisrCisrZm9yIHsgc2V0 IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IHsKKysgIGdkYl90ZXN0ICJzZXQgdmFyIFwk JGJ5dGVfcmVncygkcikgPSAkciIgIiIgInNldCAlJGJ5dGVfcmVncygkcikiCisrfQorKworK2dk Yl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAidGhpcmQgYnJlYWtwb2ludCBoZXJl Il0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3JjZmlsZX0uKiIgXAorKyAg ICAgICAgICJzZXQgdGhpcmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJjb250aW51ZSB0byB0aGlyZCBicmVha3BvaW50IGluIG1haW4iCisrCisrZm9y IHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IHsKKysgICAgZ2RiX3Rlc3QgInBy aW50IFwkJGJ5dGVfcmVncygkcikiIFwKKysgICAgICAgICIuLiA9ICRyIiBcCisrICAgICAgICAi Y2hlY2sgY29udGVudHMgb2YgJSRieXRlX3JlZ3MoJHIpIgorK30KKysKKytmb3IgeyBzZXQgciA3 IH0geyAkciA8PSAkbnJfcmVncyAgfSB7IGluY3IgciB9IHsKKysgIGdkYl90ZXN0ICJzZXQgdmFy IFwkJGJ5dGVfcmVncygkcikgPSAkciIgIiIgInNldCAlJGJ5dGVfcmVncygkcikiCisrfQorKwor K2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZm9ydGggYnJlYWtwb2ludCBo ZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3JjZmlsZX0uKiIgXAor KyAgICAgICAgICJzZXQgZm9ydGggYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJjb250aW51ZSB0byBmb3J0aCBicmVha3BvaW50IGluIG1haW4iCisrCisr Zm9yIHsgc2V0IHIgNyB9IHsgJHIgPD0gJG5yX3JlZ3MgIH0geyBpbmNyIHIgfSB7CisrICAgIGdk Yl90ZXN0ICJwcmludCBcJCRieXRlX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAkciIgXAor KyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKKyt9CistLS0gZ2Ri LTcuMS1wMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LWR3b3JkLmV4cAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC9hbWQ2NC1kd29yZC5leHAJMjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsMTIzIEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBQbGVh c2UgZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRpb25zIHRvIHRoaXMgZmls ZSB0bzoKKysjIGJ1Zy1nZGJAZ251Lm9yZworKworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IGdkYiB0ZXN0c3VpdGUuCisrCisraWYgJHRyYWNlbGV2ZWwgeworKyAgICBzdHJhY2UgJHRyYWNl bGV2ZWwKKyt9CisrCisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK2lmIHsgIVtp c3RhcmdldCB4ODZfNjQtKi0qIF0gfSB7CisrICAgIHZlcmJvc2UgIlNraXBwaW5nIGFtZDY0IGR3 b3JkIHJlZ2lzdGVyIHRlc3RzLiIKKysgICAgcmV0dXJuCisrfQorKworK3NldCB0ZXN0ZmlsZSAi YW1kNjQtZHdvcmQiCisrc2V0IHNyY2ZpbGUgYW1kNjQtcHNldWRvLmMKKytzZXQgYmluZmlsZSAk e29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisrCisraWYgW2dldF9jb21waWxlcl9pbmZv ICR7YmluZmlsZX1dIHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmIHsgW2dkYl9jb21waWxl ICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxl IFtsaXN0IGRlYnVnXV0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9CisrICAg IHJldHVybgorK30KKysKKytnZGJfZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVf ZGlyICRzcmNkaXIvJHN1YmRpcgorK2dkYl9sb2FkICR7YmluZmlsZX0KKysKKytpZiAhW3J1bnRv X21haW5dIHRoZW4geworKyAgICBnZGJfc3VwcHJlc3NfdGVzdHMKKyt9CisrCisrc2V0IG5yX3Jl Z3MgMTQKKytzZXQgZHdvcmRfcmVncygxKSBlYXgKKytzZXQgZHdvcmRfcmVncygyKSBlYngKKytz ZXQgZHdvcmRfcmVncygzKSBlY3gKKytzZXQgZHdvcmRfcmVncyg0KSBlZHgKKytzZXQgZHdvcmRf cmVncyg1KSBlc2kKKytzZXQgZHdvcmRfcmVncyg2KSBlZGkKKytzZXQgZHdvcmRfcmVncyg3KSBy OGQKKytzZXQgZHdvcmRfcmVncyg4KSByOWQKKytzZXQgZHdvcmRfcmVncyg5KSByMTBkCisrc2V0 IGR3b3JkX3JlZ3MoMTApIHIxMWQKKytzZXQgZHdvcmRfcmVncygxMSkgcjEyZAorK3NldCBkd29y ZF9yZWdzKDEyKSByMTNkCisrc2V0IGR3b3JkX3JlZ3MoMTMpIHIxNGQKKytzZXQgZHdvcmRfcmVn cygxNCkgcjE1ZAorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZmly c3QgYnJlYWtwb2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7 c3JjZmlsZX0uKiIgXAorKyAgICAgICAgICJzZXQgZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgor K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBmaXJzdCBicmVha3BvaW50 IGluIG1haW4iCisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IHsK KysgICAgc2V0IGhleCBbZm9ybWF0ICV4ICRyXQorKyAgICBnZGJfdGVzdCAicHJpbnQveCBcJCRk d29yZF9yZWdzKCRyKSIgXAorKwkiLi4gPSAweCR7aGV4fTQke2hleH0zJHtoZXh9MiR7aGV4fTEi IFwKKysgICAgICAgICJjaGVjayBjb250ZW50cyBvZiAlJGR3b3JkX3JlZ3MoJHIpIgorK30KKysK KytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50 IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBc CisrICAgICAgICAgInNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgor KworK2ZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworKyAg ICBzZXQgaGV4IFtmb3JtYXQgJXggJHJdCisrICAgIGdkYl90ZXN0ICJwcmludC94IFwkJGR3b3Jk X3JlZ3MoJHIpIiBcCisrCSIuLiA9IDB4JHtoZXh9NCR7aGV4fTMke2hleH0yJHtoZXh9MSIgXAor KyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkZHdvcmRfcmVncygkcikiCisrfQorKworK2Zv ciB7IHNldCByIDEgfSB7ICRyIDw9IDYgIH0geyBpbmNyIHIgfSB7CisrICBnZGJfdGVzdCAic2V0 IHZhciBcJCRkd29yZF9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkZHdvcmRfcmVncygkcikiCisr fQorKworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAidGhpcmQgYnJlYWtw b2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3JjZmlsZX0u KiIgXAorKyAgICAgICAgICJzZXQgdGhpcmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byB0aGlyZCBicmVha3BvaW50IGluIG1haW4i CisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IHsKKysgICAgZ2Ri X3Rlc3QgInByaW50IFwkJGR3b3JkX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAkciIgXAor KyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkZHdvcmRfcmVncygkcikiCisrfQorKworK2Zv ciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworKyAgZ2RiX3Rl c3QgInNldCB2YXIgXCQkZHdvcmRfcmVncygkcikgPSAkciIgIiIgInNldCAlJGR3b3JkX3JlZ3Mo JHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgImZvcnRo IGJyZWFrcG9pbnQgaGVyZSJdIiBcCisrICAgICAgICAgIkJyZWFrcG9pbnQgLiogYXQgLioke3Ny Y2ZpbGV9LioiIFwKKysgICAgICAgICAic2V0IGZvcnRoIGJyZWFrcG9pbnQgaW4gbWFpbiIKKytn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8gZm9ydGggYnJlYWtwb2ludCBp biBtYWluIgorKworK2ZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciBy IH0geworKyAgICBnZGJfdGVzdCAicHJpbnQgXCQkZHdvcmRfcmVncygkcikiIFwKKysgICAgICAg ICIuLiA9ICRyIiBcCisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSRkd29yZF9yZWdzKCRy KSIKKyt9CistLS0gZ2RiLTcuMS1wMi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LXBzZXVk by5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2FtZDY0LXBzZXVkby5jCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAw MDAwMDAwICswMjAwCitAQCAtMCwwICsxLDkxIEBACisrLyogVGVzdCBwcm9ncmFtIGZvciBieXRl IHJlZ2lzdGVycy4KKysKKysgICBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisrCisrICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpbmNsdWRlIDxzdGRpby5oPgor KworK2ludCBkYXRhW10gPSB7CisrICAweDE0MTMxMjExLAorKyAgMHgyNDIzMjIyMSwKKysgIDB4 MzQzMzMyMzEsCisrICAweDQ0NDM0MjQxLAorKyAgMHg1NDUzNTI1MSwKKysgIDB4NjQ2MzYyNjEs CisrICAweDc0NzM3MjcxLAorKyAgMHg4NDgzODI4MSwKKysgIDB4OTQ5MzkyOTEsCisrICAweGE0 YTNhMmExLAorKyAgMHhiNGIzYjJiMSwKKysgIDB4YzRjM2MyYzEsCisrICAweGQ0ZDNkMmQxLAor KyAgMHhlNGUzZTJlMSwKKyt9OworKworK2ludAorK21haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikKKyt7CisrICBhc20gKCJtb3YgMCglMCksICUlZWF4XG5cdCIKKysgICAgICAgIm1vdiA0KCUw KSwgJSVlYnhcblx0IgorKyAgICAgICAibW92IDgoJTApLCAlJWVjeFxuXHQiCisrICAgICAgICJt b3YgMTIoJTApLCAlJWVkeFxuXHQiCisrICAgICAgICJtb3YgMTYoJTApLCAlJWVzaVxuXHQiCisr ICAgICAgICJtb3YgMjAoJTApLCAlJWVkaVxuXHQiCisrICAgICAgIDogLyogbm8gb3V0cHV0IG9w ZXJhbmRzICovCisrICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAgOiAiZWF4IiwgImVieCIs ICJlY3giLCAiZWR4IiwgImVzaSIsICJlZGkiKTsKKysgIGFzbSAoIm5vcCIpOyAvKiBmaXJzdCBi cmVha3BvaW50IGhlcmUgKi8KKysKKysgIGFzbSAoIm1vdiAyNCglMCksICUlcjhkXG5cdCIKKysg ICAgICAgIm1vdiAyOCglMCksICUlcjlkXG5cdCIKKysgICAgICAgIm1vdiAzMiglMCksICUlcjEw ZFxuXHQiCisrICAgICAgICJtb3YgMzYoJTApLCAlJXIxMVxuXHQiCisrICAgICAgICJtb3YgNDAo JTApLCAlJXIxMmRcblx0IgorKyAgICAgICAibW92IDQ0KCUwKSwgJSVyMTNkXG5cdCIKKysgICAg ICAgIm1vdiA0OCglMCksICUlcjE0ZFxuXHQiCisrICAgICAgICJtb3YgNTIoJTApLCAlJXIxNWRc blx0IgorKyAgICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICA6ICJyIiAo ZGF0YSkgCisrICAgICAgIDogInI4IiwgInI5IiwgInIxMCIsICJyMTEiLCAicjEyIiwgInIxMyIs ICJyMTQiLCAicjE1Iik7CisrICBhc20gKCJub3AiKTsgLyogc2Vjb25kIGJyZWFrcG9pbnQgaGVy ZSAqLworKworKyAgYXNtICgibW92ICUlZWF4LCAwKCUwKVxuXHQiCisrICAgICAgICJtb3YgJSVl YngsIDQoJTApXG5cdCIKKysgICAgICAgIm1vdiAlJWVjeCwgOCglMClcblx0IgorKyAgICAgICAi bW92ICUlZWR4LCAxMiglMClcblx0IgorKyAgICAgICAibW92ICUlZXNpLCAxNiglMClcblx0Igor KyAgICAgICAibW92ICUlZWRpLCAyMCglMClcblx0IgorKyAgICAgICA6IC8qIG5vIG91dHB1dCBv cGVyYW5kcyAqLworKyAgICAgICA6ICJyIiAoZGF0YSkgCisrICAgICAgIDogImVheCIsICJlYngi LCAiZWN4IiwgImVkeCIsICJlc2kiLCAiZWRpIik7CisrICBhc20gKCJub3AiKTsgLyogdGhpcmQg YnJlYWtwb2ludCBoZXJlICovCisrCisrICBhc20gKCJtb3YgJSVyOGQsIDI0KCUwKVxuXHQiCisr ICAgICAgICJtb3YgJSVyOWQsIDI4KCUwKVxuXHQiCisrICAgICAgICJtb3YgJSVyMTBkLCAzMigl MClcblx0IgorKyAgICAgICAibW92ICUlcjExZCwgMzYoJTApXG5cdCIKKysgICAgICAgIm1vdiAl JXIxMmQsIDQwKCUwKVxuXHQiCisrICAgICAgICJtb3YgJSVyMTNkLCA0NCglMClcblx0IgorKyAg ICAgICAibW92ICUlcjE0ZCwgNDgoJTApXG5cdCIKKysgICAgICAgIm1vdiAlJXIxNWQsIDUyKCUw KVxuXHQiCisrICAgICAgIDogLyogbm8gb3V0cHV0IG9wZXJhbmRzICovCisrICAgICAgIDogInIi IChkYXRhKSAKKysgICAgICAgOiAicjgiLCAicjkiLCAicjEwIiwgInIxMSIsICJyMTIiLCAicjEz IiwgInIxNCIsICJyMTUiKTsKKysgIHB1dHMgKCJCeWUhIik7IC8qIGZvcnRoIGJyZWFrcG9pbnQg aGVyZSAqLworKworKyAgcmV0dXJuIDA7CisrfQorLS0tIGdkYi03LjEtcDIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9hbWQ2NC13b3JkLmV4cAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC13b3JkLmV4cAky MDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxMjMgQEAKKysj IENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisr IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFBsZWFzZSBlbWFpbCBhbnkgYnVncywgY29t bWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRvOgorKyMgYnVnLWdkYkBnbnUu b3JnCisrCisrIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0ZS4KKysKKytp ZiAkdHJhY2VsZXZlbCB7CisrICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30KKysKKytzZXQgcHJt c19pZCAwCisrc2V0IGJ1Z19pZCAwCisrCisraWYgeyAhW2lzdGFyZ2V0IHg4Nl82NC0qLSogXSB9 IHsKKysgICAgdmVyYm9zZSAiU2tpcHBpbmcgYW1kNjQgd29yZCByZWdpc3RlciB0ZXN0cy4iCisr ICAgIHJldHVybgorK30KKysKKytzZXQgdGVzdGZpbGUgImFtZDY0LXdvcmQiCisrc2V0IHNyY2Zp bGUgYW1kNjQtcHNldWRvLmMKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVz dGZpbGV9CisrCisraWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKKysgICAgcmV0 dXJuIC0xCisrfQorKworK2lmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7 c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVnXV0gIT0gIiIgfSB7 CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9CisrICAgIHJldHVybgorK30KKysKKytnZGJfZXhp dAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorK2dk Yl9sb2FkICR7YmluZmlsZX0KKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBnZGJf c3VwcHJlc3NfdGVzdHMKKyt9CisrCisrc2V0IG5yX3JlZ3MgMTQKKytzZXQgd29yZF9yZWdzKDEp IGF4Cisrc2V0IHdvcmRfcmVncygyKSBieAorK3NldCB3b3JkX3JlZ3MoMykgY3gKKytzZXQgd29y ZF9yZWdzKDQpIGR4Cisrc2V0IHdvcmRfcmVncyg1KSBzaQorK3NldCB3b3JkX3JlZ3MoNikgZGkK KytzZXQgd29yZF9yZWdzKDcpIHI4dworK3NldCB3b3JkX3JlZ3MoOCkgcjl3Cisrc2V0IHdvcmRf cmVncyg5KSByMTB3Cisrc2V0IHdvcmRfcmVncygxMCkgcjExdworK3NldCB3b3JkX3JlZ3MoMTEp IHIxMncKKytzZXQgd29yZF9yZWdzKDEyKSByMTN3Cisrc2V0IHdvcmRfcmVncygxMykgcjE0dwor K3NldCB3b3JkX3JlZ3MoMTQpIHIxNXcKKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGlu ZV9udW1iZXIgImZpcnN0IGJyZWFrcG9pbnQgaGVyZSJdIiBcCisrICAgICAgICAgIkJyZWFrcG9p bnQgLiogYXQgLioke3NyY2ZpbGV9LioiIFwKKysgICAgICAgICAic2V0IGZpcnN0IGJyZWFrcG9p bnQgaW4gbWFpbiIKKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8gZmly c3QgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDYgIH0g eyBpbmNyIHIgfSB7CisrICAgIHNldCBoZXggW2Zvcm1hdCAleCAkcl0KKysgICAgZ2RiX3Rlc3Qg InByaW50L3ggXCQkd29yZF9yZWdzKCRyKSIgXAorKyAgICAgICAgIi4uID0gMHgke2hleH0yJHto ZXh9MSIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkd29yZF9yZWdzKCRyKSIKKyt9 CisrCisrZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzZWNvbmQgYnJlYWtw b2ludCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3JjZmlsZX0u KiIgXAorKyAgICAgICAgICJzZXQgc2Vjb25kIGJyZWFrcG9pbnQgaW4gbWFpbiIKKytnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8gc2Vjb25kIGJyZWFrcG9pbnQgaW4gbWFp biIKKysKKytmb3IgeyBzZXQgciA3IH0geyAkciA8PSAkbnJfcmVncyAgfSB7IGluY3IgciB9IHsK KysgICAgc2V0IGhleCBbZm9ybWF0ICV4ICRyXQorKyAgICBnZGJfdGVzdCAicHJpbnQveCBcJCR3 b3JkX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAweCR7aGV4fTIke2hleH0xIiBcCisrICAg ICAgICAiY2hlY2sgY29udGVudHMgb2YgJSR3b3JkX3JlZ3MoJHIpIgorK30KKysKKytmb3IgeyBz ZXQgciAxIH0geyAkciA8PSA2ICB9IHsgaW5jciByIH0geworKyAgZ2RiX3Rlc3QgInNldCB2YXIg XCQkd29yZF9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkd29yZF9yZWdzKCRyKSIKKyt9CisrCisr Z2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ0aGlyZCBicmVha3BvaW50IGhl cmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisr ICAgICAgICAgInNldCB0aGlyZCBicmVha3BvaW50IGluIG1haW4iCisrZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIHRoaXJkIGJyZWFrcG9pbnQgaW4gbWFpbiIKKysKKytm b3IgeyBzZXQgciAxIH0geyAkciA8PSA2ICB9IHsgaW5jciByIH0geworKyAgICBnZGJfdGVzdCAi cHJpbnQgXCQkd29yZF9yZWdzKCRyKSIgXAorKyAgICAgICAgIi4uID0gJHIiIFwKKysgICAgICAg ICJjaGVjayBjb250ZW50cyBvZiAlJHdvcmRfcmVncygkcikiCisrfQorKworK2ZvciB7IHNldCBy IDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworKyAgZ2RiX3Rlc3QgInNldCB2 YXIgXCQkd29yZF9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkd29yZF9yZWdzKCRyKSIKKyt9Cisr CisrZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmb3J0aCBicmVha3BvaW50 IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBc CisrICAgICAgICAgInNldCBmb3J0aCBicmVha3BvaW50IGluIG1haW4iCisrZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIGZvcnRoIGJyZWFrcG9pbnQgaW4gbWFpbiIKKysK Kytmb3IgeyBzZXQgciA3IH0geyAkciA8PSAkbnJfcmVncyAgfSB7IGluY3IgciB9IHsKKysgICAg Z2RiX3Rlc3QgInByaW50IFwkJHdvcmRfcmVncygkcikiIFwKKysgICAgICAgICIuLiA9ICRyIiBc CisrICAgICAgICAiY2hlY2sgY29udGVudHMgb2YgJSR3b3JkX3JlZ3MoJHIpIgorK30KKy0tLSBn ZGItNy4xLXAyL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1ieXRlLmV4cAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC9pMzg2LWJ5dGUuZXhwCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDk4IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBQbGVhc2Ug ZW1haWwgYW55IGJ1Z3MsIGNvbW1lbnRzLCBhbmQvb3IgYWRkaXRpb25zIHRvIHRoaXMgZmlsZSB0 bzoKKysjIGJ1Zy1nZGJAZ251Lm9yZworKworKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdk YiB0ZXN0c3VpdGUuCisrCisraWYgJHRyYWNlbGV2ZWwgeworKyAgICBzdHJhY2UgJHRyYWNlbGV2 ZWwKKyt9CisrCisrc2V0IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAorKworK2lmIHsgIVtpc3Rh cmdldCBpPzg2LSotKl0gfSB7CisrICAgIHZlcmJvc2UgIlNraXBwaW5nIGkzODYgYnl0ZSByZWdp c3RlciB0ZXN0cy4iCisrICAgIHJldHVybgorK30KKysKKytzZXQgdGVzdGZpbGUgImkzODYtYnl0 ZSIKKytzZXQgc3JjZmlsZSBpMzg2LXBzZXVkby5jCisrc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7 c3ViZGlyfS8ke3Rlc3RmaWxlfQorKworK2lmIFtnZXRfY29tcGlsZXJfaW5mbyAke2JpbmZpbGV9 XSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBbbGlzdCBkZWJ1 Z11dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCAke3Rlc3RmaWxlfQorKyAgICByZXR1cm4KKyt9 CisrCisrZ2RiX2V4aXQKKytnZGJfc3RhcnQKKytnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGly LyRzdWJkaXIKKytnZGJfbG9hZCAke2JpbmZpbGV9CisrCisraWYgIVtydW50b19tYWluXSB0aGVu IHsKKysgICAgZ2RiX3N1cHByZXNzX3Rlc3RzCisrfQorKworK3NldCBieXRlX3JlZ3MoMSkgYWwK KytzZXQgYnl0ZV9yZWdzKDIpIGJsCisrc2V0IGJ5dGVfcmVncygzKSBjbAorK3NldCBieXRlX3Jl Z3MoNCkgZGwKKytzZXQgYnl0ZV9yZWdzKDUpIGFoCisrc2V0IGJ5dGVfcmVncyg2KSBiaAorK3Nl dCBieXRlX3JlZ3MoNykgY2gKKytzZXQgYnl0ZV9yZWdzKDgpIGRoCisrCisrZ2RiX3Rlc3QgImJy ZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmaXJzdCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAg ICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNl dCBmaXJzdCBicmVha3BvaW50IGluIG1haW4iCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImNvbnRpbnVlIHRvIGZpcnN0IGJyZWFrcG9pbnQgaW4gbWFpbiIKKysKKytmb3IgeyBzZXQgciAx IH0geyAkciA8PSA0ICB9IHsgaW5jciByIH0geworKyAgICBnZGJfdGVzdCAicHJpbnQveCBcJCRi eXRlX3JlZ3MoJHIpIiBcCisrICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXggJHJdMSIgXAorKyAg ICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKKysgICAgc2V0IGggW2V4 cHIgJHIgKyA0XQorKyAgICBnZGJfdGVzdCAicHJpbnQveCBcJCRieXRlX3JlZ3MoJGgpIiBcCisr ICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXggJHJdMiIgXAorKyAgICAgICAgImNoZWNrIGNvbnRl bnRzIG9mICUkYnl0ZV9yZWdzKCRoKSIKKyt9CisrCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0g NCAgfSB7IGluY3IgciB9IHsKKysgIGdkYl90ZXN0ICJzZXQgdmFyIFwkJGJ5dGVfcmVncygkcikg PSAkciIgIiIgInNldCAlJGJ5dGVfcmVncygkcikiCisrICBzZXQgaCBbZXhwciAkciArIDRdCisr ICBnZGJfdGVzdCAic2V0IHZhciBcJCRieXRlX3JlZ3MoJGgpID0gJGgiICIiICJzZXQgJSRieXRl X3JlZ3MoJGgpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIg InNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0 IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBt YWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJl YWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDQgIH0geyBpbmNy IHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJCRieXRlX3JlZ3MoJHIpIiBcCisrICAgICAg ICAiLi4gPSAkciIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRy KSIKKysgICAgc2V0IGggW2V4cHIgJHIgKyA0XQorKyAgICBnZGJfdGVzdCAicHJpbnQgXCQkYnl0 ZV9yZWdzKCRoKSIgXAorKyAgICAgICAgIi4uID0gJGgiIFwKKysgICAgICAgICJjaGVjayBjb250 ZW50cyBvZiAlJGJ5dGVfcmVncygkaCkiCisrfQorLS0tIGdkYi03LjEtcDIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9pMzg2LXBzZXVkby5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtcHNldWRvLmMJMjAx MC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTEgQEAKKysvKiBU ZXN0IHByb2dyYW0gZm9yIGJ5dGUgcmVnaXN0ZXJzLgorKworKyAgIENvcHlyaWdodCAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr I2luY2x1ZGUgPHN0ZGlvLmg+CisrCisraW50IGRhdGFbXSA9IHsKKysgIDB4MTQxMzEyMTEsCisr ICAweDI0MjMyMjIxLAorKyAgMHgzNDMzMzIzMSwKKysgIDB4NDQ0MzQyNDEsCisrfTsKKysKKytp bnQKKyttYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisreworKyAgYXNtICgibW92IDAoJTAp LCAlJWVheFxuXHQiCisrICAgICAgICJtb3YgNCglMCksICUlZWJ4XG5cdCIKKysgICAgICAgIm1v diA4KCUwKSwgJSVlY3hcblx0IgorKyAgICAgICAibW92IDEyKCUwKSwgJSVlZHhcblx0IgorKyAg ICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICA6ICJyIiAoZGF0YSkgCisr ICAgICAgIDogImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIpOworKyAgYXNtICgibm9wIik7IC8q IGZpcnN0IGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgYXNtICgibW92ICUlZWF4LCAwKCUwKVxu XHQiCisrICAgICAgICJtb3YgJSVlYngsIDQoJTApXG5cdCIKKysgICAgICAgIm1vdiAlJWVjeCwg OCglMClcblx0IgorKyAgICAgICAibW92ICUlZWR4LCAxMiglMClcblx0IgorKyAgICAgICA6IC8q IG5vIG91dHB1dCBvcGVyYW5kcyAqLworKyAgICAgICA6ICJyIiAoZGF0YSkgCisrICAgICAgIDog ImVheCIsICJlYngiLCAiZWN4IiwgImVkeCIpOworKyAgcHV0cyAoIkJ5ZSEiKTsgLyogc2Vjb25k IGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgcmV0dXJuIDA7CisrfQorLS0tIGdkYi03LjEtcDIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXdvcmQuZXhwCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYt d29yZC5leHAJMjAxMC0wNC0wMyAyMTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEs ODQgQEAKKysjIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFBsZWFzZSBlbWFpbCBhbnkg YnVncywgY29tbWVudHMsIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhpcyBmaWxlIHRvOgorKyMgYnVn LWdkYkBnbnUub3JnCisrCisrIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgZ2RiIHRlc3RzdWl0 ZS4KKysKKytpZiAkdHJhY2VsZXZlbCB7CisrICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30KKysK KytzZXQgcHJtc19pZCAwCisrc2V0IGJ1Z19pZCAwCisrCisraWYgeyAhW2lzdGFyZ2V0IGk/ODYt Ki0qXSB9IHsKKysgICAgdmVyYm9zZSAiU2tpcHBpbmcgaTM4NiB3b3JkIHJlZ2lzdGVyIHRlc3Rz LiIKKysgICAgcmV0dXJuCisrfQorKworK3NldCB0ZXN0ZmlsZSAiaTM4Ni13b3JkIgorK3NldCBz cmNmaWxlIGkzODYtcHNldWRvLmMKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7 dGVzdGZpbGV9CisrCisraWYgW2dldF9jb21waWxlcl9pbmZvICR7YmluZmlsZX1dIHsKKysgICAg cmV0dXJuIC0xCisrfQorKworK2lmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIFtsaXN0IGRlYnVnXV0gIT0gIiIg fSB7CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9CisrICAgIHJldHVybgorK30KKysKKytnZGJf ZXhpdAorK2dkYl9zdGFydAorK2dkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgor K2dkYl9sb2FkICR7YmluZmlsZX0KKysKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBn ZGJfc3VwcHJlc3NfdGVzdHMKKyt9CisrCisrc2V0IHdvcmRfcmVncygxKSBheAorK3NldCB3b3Jk X3JlZ3MoMikgYngKKytzZXQgd29yZF9yZWdzKDMpIGN4Cisrc2V0IHdvcmRfcmVncyg0KSBkeAor KworK2dkYl90ZXN0ICJicmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZmlyc3QgYnJlYWtwb2lu dCBoZXJlIl0iIFwKKysgICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKiR7c3JjZmlsZX0uKiIg XAorKyAgICAgICAgICJzZXQgZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0byBmaXJzdCBicmVha3BvaW50IGluIG1haW4iCisr CisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNCAgfSB7IGluY3IgciB9IHsKKysgICAgZ2RiX3Rl c3QgInByaW50L3ggXCQkd29yZF9yZWdzKCRyKSIgXAorKyAgICAgICAgIi4uID0gMHhbZm9ybWF0 ICV4ICRyXTJbZm9ybWF0ICV4ICRyXTEiIFwKKysgICAgICAgICJjaGVjayBjb250ZW50cyBvZiAl JHdvcmRfcmVncygkcikiCisrfQorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDQgIH0geyBp bmNyIHIgfSB7CisrICBnZGJfdGVzdCAic2V0IHZhciBcJCR3b3JkX3JlZ3MoJHIpID0gJHIiICIi ICJzZXQgJSR3b3JkX3JlZ3MoJHIpIgorK30KKysKKytnZGJfdGVzdCAiYnJlYWsgW2dkYl9nZXRf bGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAorKyAgICAgICAgICJCcmVh a3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisrICAgICAgICAgInNldCBzZWNvbmQgYnJl YWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJjb250aW51ZSB0 byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9 IDQgIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJCR3b3JkX3JlZ3MoJHIp IiBcCisrICAgICAgICAiLi4gPSAkciIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUk d29yZF9yZWdzKCRyKSIKKyt9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTc4MjUwLWF2eC0wNW9mMTAu cGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTA1b2YxMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5hOWYwOTA4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTc4MjUw LWF2eC0wNW9mMTAucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorWyBCYWNrcG9ydGVkLiAgXQorCitj b21taXQgNjQ0OGFhY2U2Mzc4NDNlOGU3YzAyMWQ3ZjhjNWQ1ZDVmZGQ3MTk3NAorQXV0aG9yOiBI LkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgorRGF0ZTogICBXZWQgTWFyIDMgMjA6MTk6NDgg MjAxMCArMDAwMAorCisgICAgTWVudGlvbiBpbXByb3ZlbWVudCBmb3IgWDg2IGdlbmVyYWwgcHVy cG9zZSByZWdpc3RlcnMuCisgICAgCisgICAgMjAxMC0wMy0wMyAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorICAgIAkgICAgRWxpIFphcmV0c2tpaSAgPGVsaXpAZ251Lm9yZz4KKyAg ICAKKyAgICAJKiBORVdTOiBBZGQgWDg2IGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMgc2VjdGlv bi4KKworLS0tIGdkYi03LjEtcDMvZ2RiL05FV1MJMjAxMC0wMy0xOCAyMjowMTo1NS4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi9ORVdTCTIwMTAtMDQtMDMgMjE6MDc6NDYuMDAwMDAw MDAwICswMjAwCitAQCAtNDM4LDYgKzQzOCwxNCBAQCBHREIgd2lsbCBub3cgY29ycmVjdGx5IGhh bmRsZSBhbGwgb2Y6CisgICAgIG5vdyBzdXBwb3J0IGhhcmR3YXJlIHdhdGNocG9pbnRzLCBhbmQg d2lsbCB1c2UgdGhlbSBhdXRvbWF0aWNhbGx5CisgICAgIGFzIGFwcHJvcHJpYXRlLgorIAorKyog WDg2IGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMKKysKKysgIEdEQiBub3cgc3VwcG9ydHMgcmVh ZGluZy93cml0aW5nIGJ5dGUsIHdvcmQgYW5kIGRvdWJsZS13b3JkIHg4NgorKyAgZ2VuZXJhbCBw dXJwb3NlIHJlZ2lzdGVycyBkaXJlY3RseS4gIFRoaXMgbWVhbnMgeW91IGNhbiB1c2UsIHNheSwK KysgICRhaCBvciAkYXggdG8gcmVmZXIsIHJlc3BlY3RpdmVseSwgdG8gdGhlIGJ5dGUgcmVnaXN0 ZXIgQUggYW5kCisrICAxNi1iaXQgd29yZCByZWdpc3RlciBBWCB0aGF0IGFyZSBhY3R1YWxseSBw b3J0aW9ucyBvZiB0aGUgMzItYml0CisrICByZWdpc3RlciBFQVggb3IgNjQtYml0IHJlZ2lzdGVy IFJBWC4KKysKKyAqIFB5dGhvbiBzY3JpcHRpbmcKKyAKKyAgIEdEQiBub3cgaGFzIHN1cHBvcnQg Zm9yIHNjcmlwdGluZyB1c2luZyBQeXRob24uICBXaGV0aGVyIHRoaXMgaXMKCmRpZmYgLS1naXQg YS9nZGItYno1NzgyNTAtYXZ4LTA2b2YxMC5wYXRjaCBiL2dkYi1iejU3ODI1MC1hdngtMDZvZjEw LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZTU1ZjIKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItYno1NzgyNTAtYXZ4LTA2b2YxMC5wYXRjaApAQCAtMCwwICsxLDM1 IEBACitbIEJhY2twb3J0ZWQuICBdCisKK2NvbW1pdCA0OWY4ZDFjMjRjNjM5ZDg5MWY1OGEzYjlm ZWRhNDI1ODMzYjcwMmZiCitBdXRob3I6IEguSi4gTHUgPGhqbC50b29sc0BnbWFpbC5jb20+CitE YXRlOiAgIEZyaSBNYXIgMTIgMTU6MTI6MzQgMjAxMCArMDAwMAorCisgICAgUmVzdG9yZSBzcCBm b3IgeDg2LgorICAgIAorICAgIDIwMTAtMDMtMTIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKyAgICAKKyAgICAJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X3dvcmRfbmFtZXMpOiBSZXBs YWNlICJzcCIgd2l0aCAiIi4KKyAgICAJKiBpMzg2LXRkZXAuYyAoaTM4Nl93b3JkX25hbWVzKTog TGlrZXdpc2UuCisKKy0tLSBnZGItNy4xLXA0L2dkYi9hbWQ2NC10ZGVwLmMJMjAxMC0wNC0wMyAy MTowNjo1Mi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi9hbWQ2NC10ZGVwLmMJMjAx MC0wNC0wMyAyMTowODoyMS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMjIsNyArMjIyLDcgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmFtZDY0X2J5dGVfbmFtZXNbXSA9CisgCisgc3RhdGljIGNvbnN0IGNo YXIgKmFtZDY0X3dvcmRfbmFtZXNbXSA9CisgeworLSAgImF4IiwgImJ4IiwgImN4IiwgImR4Iiwg InNpIiwgImRpIiwgImJwIiwgInNwIiwgCisrICAiYXgiLCAiYngiLCAiY3giLCAiZHgiLCAic2ki LCAiZGkiLCAiYnAiLCAiIiwgCisgICAicjh3IiwgInI5dyIsICJyMTB3IiwgInIxMXciLCAicjEy dyIsICJyMTN3IiwgInIxNHciLCAicjE1dyIKKyB9OworIAorLS0tIGdkYi03LjEtcDQvZ2RiL2kz ODYtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MDY6NTIuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu MS9nZGIvaTM4Ni10ZGVwLmMJMjAxMC0wNC0wMyAyMTowODoyMS4wMDAwMDAwMDAgKzAyMDAKK0BA IC05NCw3ICs5NCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICppMzg2X2J5dGVfbmFtZXNbXSA9Cisg c3RhdGljIGNvbnN0IGNoYXIgKmkzODZfd29yZF9uYW1lc1tdID0KKyB7CisgICAiYXgiLCAiY3gi LCAiZHgiLCAiYngiLAorLSAgInNwIiwgImJwIiwgInNpIiwgImRpIgorKyAgIiIsICJicCIsICJz aSIsICJkaSIKKyB9OworIAorIC8qIE1NWCByZWdpc3Rlcj8gICovCgpkaWZmIC0tZ2l0IGEvZ2Ri LWJ6NTc4MjUwLWF2eC0wN29mMTAucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTA3b2YxMC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzAyOWUwCi0tLSAvZGV2L251 bGwKKysrIGIvZ2RiLWJ6NTc4MjUwLWF2eC0wN29mMTAucGF0Y2gKQEAgLTAsMCArMSwxODMgQEAK K1sgQmFja3BvcnRlZC4gIF0KKworY29tbWl0IGQ1ZWE3MDQyMjEwZjVhZDMxOWFkMTk5MTBiY2Ux M2ZkNTcxN2M2ZDYKK0F1dGhvcjogSC5KLiBMdSA8aGpsLnRvb2xzQGdtYWlsLmNvbT4KK0RhdGU6 ICAgVHVlIE1hciAzMCAxNTo0NTowOCAyMDEwICswMDAwCisKKyAgICBBZGQgeG1sUmVnaXN0ZXJz PSB0byBxU3VwcG9ydGVkIHBhY2tldC4KKyAgICAKKyAgICBnZGIvCisgICAgCisgICAgMjAxMC0w My0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAorICAgIAkqIE5FV1M6 IE1lbnRpb24geG1sUmVnaXN0ZXJzPSBpbiBxU3VwcG9ydGVkIHBhY2tldC4KKyAgICAKKyAgICAJ KiBpMzg2LXRkZXAuYzogSW5jbHVkZSAicmVtb3RlLmgiLgorICAgIAkoX2luaXRpYWxpemVfaTM4 Nl90ZGVwKTogQ2FsbCByZWdpc3Rlcl9yZW1vdGVfc3VwcG9ydF94bWwuCisgICAgCisgICAgCSog cmVtb3RlLmMgKHJlbW90ZV9zdXBwb3J0X3htbCk6IE5ldy4KKyAgICAJKHJlZ2lzdGVyX3JlbW90 ZV9zdXBwb3J0X3htbCk6IExpa2V3aXNlLgorICAgIAkocmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZF9h cHBlbmQpOiBMaWtld2lzZS4KKyAgICAJKHJlbW90ZV9xdWVyeV9zdXBwb3J0ZWQpOiBTdXBwb3J0 IHJlbW90ZV9zdXBwb3J0X3htbC4KKyAgICAKKyAgICAJKiByZW1vdGUuaCAocmVnaXN0ZXJfcmVt b3RlX3N1cHBvcnRfeG1sKTogTmV3LgorICAgIAorICAgIGdkYi9kb2MvCisgICAgCisgICAgMjAx MC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorICAgIAorICAgIAkqIGdk Yi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5IFBhY2tldHMpOiBBZGQgeG1sUmVnaXN0ZXJzLgorCist LS0gZ2RiLTcuMS1wNS9nZGIvTkVXUwkyMDEwLTA0LTAzIDIxOjA3OjQ2LjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjEvZ2RiL05FV1MJMjAxMC0wNC0wMyAyMToxMDowNi4wMDAwMDAwMDAgKzAy MDAKK0BAIC0xLDYgKzEsMTEgQEAKKyAJCVdoYXQgaGFzIGNoYW5nZWQgaW4gR0RCPworIAkgICAg IChPcmdhbml6ZWQgcmVsZWFzZSBieSByZWxlYXNlKQorIAorKyoqKiBDaGFuZ2VzIHNpbmNlIEdE QiA3LjEKKysKKysqIEdEQiBub3cgc2VuZHMgeG1sUmVnaXN0ZXJzPSBpbiBxU3VwcG9ydGVkIHBh Y2tldCB0byBpbmRpY2F0ZSB0aGF0CisrICBpdCB1bmRlcnN0YW5kcyByZWdpc3RlciBkZXNjcmlw dGlvbi4KKysKKyAqKiogQ2hhbmdlcyBpbiBHREIgNy4xCisgCisgKiBDKysgSW1wcm92ZW1lbnRz CistLS0gZ2RiLTcuMS1wNS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDQtMDMgMjE6MDQ6MTMu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDQt MDMgMjE6MDk6MjkuMDAwMDAwMDAwICswMjAwCitAQCAtMzAyOTIsNiArMzAyOTIsMTIgQEAgZXh0 ZW5zaW9ucyB0byB0aGUgcmVtb3RlIHByb3RvY29sLiAgQHZhbAorIGV4dGVuc2lvbnMgdW5sZXNz IHRoZSBzdHViIGFsc28gcmVwb3J0cyB0aGF0IGl0IHN1cHBvcnRzIHRoZW0gYnkKKyBpbmNsdWRp bmcgQHNhbXB7bXVsdGlwcm9jZXNzK30gaW4gaXRzIEBzYW1we3FTdXBwb3J0ZWR9IHJlcGx5Lgor IEB4cmVme211bHRpcHJvY2VzcyBleHRlbnNpb25zfSwgZm9yIGRldGFpbHMuCisrCisrQGl0ZW0g eG1sUmVnaXN0ZXJzCisrVGhpcyBmZWF0dXJlIGluZGljYXRlcyB0aGF0IEB2YWx1ZXtHREJOfSBz dXBwb3J0cyB0aGUgWE1MIHRhcmdldAorK2Rlc2NyaXB0aW9uLiAgSWYgdGhlIHN0dWIgc2VlcyBA c2FtcHt4bWxSZWdpc3RlcnM9fSB3aXRoIHRhcmdldAorK3NwZWNpZmljIHN0cmluZ3Mgc2VwYXJh dGVkIGJ5IGEgY29tbWEsIGl0IHdpbGwgcmVwb3J0IHJlZ2lzdGVyCisrZGVzY3JpcHRpb24uCisg QGVuZCB0YWJsZQorIAorIFN0dWJzIHNob3VsZCBpZ25vcmUgYW55IHVua25vd24gdmFsdWVzIGZv cgorLS0tIGdkYi03LjEtcDUvZ2RiL2kzODYtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MDg6MjEuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvaTM4Ni10ZGVwLmMJMjAxMC0wNC0wMyAyMTow OToyOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC00NCw2ICs0NCw3IEBACisgI2luY2x1ZGUgInZhbHVl LmgiCisgI2luY2x1ZGUgImRpcy1hc20uaCIKKyAjaW5jbHVkZSAiZGlzYXNtLmgiCisrI2luY2x1 ZGUgInJlbW90ZS5oIgorIAorICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCisgI2luY2x1ZGUgImdk Yl9zdHJpbmcuaCIKK0BAIC02MDAwLDQgKzYwMDEsNyBAQCBpcyBcImRlZmF1bHRcIi4iKSwKKyAK KyAgIC8qIEluaXRpYWxpemUgdGhlIHN0YW5kYXJkIHRhcmdldCBkZXNjcmlwdGlvbnMuICAqLwor ICAgaW5pdGlhbGl6ZV90ZGVzY19pMzg2ICgpOworKworKyAgLyogVGVsbCByZW1vdGUgc3R1YiB0 aGF0IHdlIHN1cHBvcnQgWE1MIHRhcmdldCBkZXNjcmlwdGlvbi4gICovCisrICByZWdpc3Rlcl9y ZW1vdGVfc3VwcG9ydF94bWwgKCJpMzg2Iik7CisgfQorLS0tIGdkYi03LjEtcDUvZ2RiL3JlbW90 ZS5jCTIwMTAtMDQtMDMgMjA6MjQ6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIv cmVtb3RlLmMJMjAxMC0wNC0wMyAyMTowOToyOS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zNDY3LDYg KzM0NjcsNTMgQEAgc3RhdGljIHN0cnVjdCBwcm90b2NvbF9mZWF0dXJlIHJlbW90ZV9wcgorICAg ICBQQUNLRVRfYnMgfSwKKyB9OworIAorK3N0YXRpYyBjaGFyICpyZW1vdGVfc3VwcG9ydF94bWw7 CisrCisrLyogUmVnaXN0ZXIgc3RyaW5nIGFwcGVuZGVkIHRvICJ4bWxSZWdpc3RlcnM9IiBpbiBx U3VwcG9ydGVkIHF1ZXJ5LiAgKi8KKysKKyt2b2lkCisrcmVnaXN0ZXJfcmVtb3RlX3N1cHBvcnRf eG1sIChjb25zdCBjaGFyICp4bWwgQVRUUklCVVRFX1VOVVNFRCkKKyt7CisrI2lmIGRlZmluZWQo SEFWRV9MSUJFWFBBVCkKKysgIGlmIChyZW1vdGVfc3VwcG9ydF94bWwgPT0gTlVMTCkKKysgICAg cmVtb3RlX3N1cHBvcnRfeG1sID0gY29uY2F0ICgieG1sUmVnaXN0ZXJzPSIsIHhtbCwgTlVMTCk7 CisrICBlbHNlCisrICAgIHsKKysgICAgICBjaGFyICpjb3B5ID0geHN0cmR1cCAocmVtb3RlX3N1 cHBvcnRfeG1sICsgMTMpOworKyAgICAgIGNoYXIgKnAgPSBzdHJ0b2sgKGNvcHksICIsIik7Cisr CisrICAgICAgZG8KKysJeworKwkgIGlmIChzdHJjbXAgKHAsIHhtbCkgPT0gMCkKKysJICAgIHsK KysJICAgICAgLyogYWxyZWFkeSB0aGVyZSAqLworKwkgICAgICB4ZnJlZSAoY29weSk7CisrCSAg ICAgIHJldHVybjsKKysJICAgIH0KKysJfQorKyAgICAgIHdoaWxlICgocCA9IHN0cnRvayAoTlVM TCwgIiwiKSkgIT0gTlVMTCk7CisrICAgICAgeGZyZWUgKGNvcHkpOworKworKyAgICAgIHAgPSBj b25jYXQgKHJlbW90ZV9zdXBwb3J0X3htbCwgIiwiLCB4bWwsIE5VTEwpOworKyAgICAgIHhmcmVl IChyZW1vdGVfc3VwcG9ydF94bWwpOworKyAgICAgIHJlbW90ZV9zdXBwb3J0X3htbCA9IHA7Cisr ICAgIH0KKysjZW5kaWYKKyt9CisrCisrc3RhdGljIGNoYXIgKgorK3JlbW90ZV9xdWVyeV9zdXBw b3J0ZWRfYXBwZW5kIChjaGFyICptc2csIGNvbnN0IGNoYXIgKmFwcGVuZCkKKyt7CisrICBpZiAo bXNnKQorKyAgICB7CisrICAgICAgY2hhciAqcCA9IGNvbmNhdCAobXNnLCAiOyIsIGFwcGVuZCwg TlVMTCk7CisrICAgICAgeGZyZWUgKG1zZyk7CisrICAgICAgcmV0dXJuIHA7CisrICAgIH0KKysg IGVsc2UKKysgICAgcmV0dXJuIHhzdHJkdXAgKGFwcGVuZCk7CisrfQorKworIHN0YXRpYyB2b2lk CisgcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZCAodm9pZCkKKyB7CitAQCAtMzQ4NSwyNCArMzUzMiwy NyBAQCByZW1vdGVfcXVlcnlfc3VwcG9ydGVkICh2b2lkKQorICAgcnMtPmJ1ZlswXSA9IDA7Cisg ICBpZiAocmVtb3RlX3Byb3RvY29sX3BhY2tldHNbUEFDS0VUX3FTdXBwb3J0ZWRdLnN1cHBvcnQg IT0gUEFDS0VUX0RJU0FCTEUpCisgICAgIHsKKysgICAgICBjaGFyICpxID0gTlVMTDsKKyAgICAg ICBjb25zdCBjaGFyICpxc3VwcG9ydGVkID0gZ2RiYXJjaF9xc3VwcG9ydGVkICh0YXJnZXRfZ2Ri YXJjaCk7CisrCisrICAgICAgaWYgKHJzLT5leHRlbmRlZCkKKysJcSA9IHJlbW90ZV9xdWVyeV9z dXBwb3J0ZWRfYXBwZW5kIChxLCAibXVsdGlwcm9jZXNzKyIpOworKyAgICAgIAorICAgICAgIGlm IChxc3VwcG9ydGVkKQorKwlxID0gcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZF9hcHBlbmQgKHEsIHFz dXBwb3J0ZWQpOworKworKyAgICAgIGlmIChyZW1vdGVfc3VwcG9ydF94bWwpCisrCXEgPSByZW1v dGVfcXVlcnlfc3VwcG9ydGVkX2FwcGVuZCAocSwgcmVtb3RlX3N1cHBvcnRfeG1sKTsKKysKKysg ICAgICBpZiAocSkKKyAJeworLQkgIGNoYXIgKnE7CistCSAgaWYgKHJzLT5leHRlbmRlZCkKKy0J ICAgIHEgPSBjb25jYXQgKCJxU3VwcG9ydGVkOm11bHRpcHJvY2Vzcys7IiwgcXN1cHBvcnRlZCwg TlVMTCk7CistCSAgZWxzZQorLQkgICAgcSA9IGNvbmNhdCAoInFTdXBwb3J0ZWQ6IiwgcXN1cHBv cnRlZCwgTlVMTCk7CistCSAgcHV0cGt0IChxKTsKKysJICBjaGFyICpwID0gY29uY2F0ICgicVN1 cHBvcnRlZDoiLCBxLCBOVUxMKTsKKyAJICB4ZnJlZSAocSk7CisrCSAgcHV0cGt0IChwKTsKKysJ ICB4ZnJlZSAocCk7CisgCX0KKyAgICAgICBlbHNlCistCXsKKy0JICBpZiAocnMtPmV4dGVuZGVk KQorLQkgICAgcHV0cGt0ICgicVN1cHBvcnRlZDptdWx0aXByb2Nlc3MrIik7CistCSAgZWxzZQor LQkgICAgcHV0cGt0ICgicVN1cHBvcnRlZCIpOworLQl9CisrCXB1dHBrdCAoInFTdXBwb3J0ZWQi KTsKKyAKKyAgICAgICBnZXRwa3QgKCZycy0+YnVmLCAmcnMtPmJ1Zl9zaXplLCAwKTsKKyAKKy0t LSBnZGItNy4xLXA1L2dkYi9yZW1vdGUuaAkyMDEwLTAxLTAxIDA4OjMxOjQxLjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjEvZ2RiL3JlbW90ZS5oCTIwMTAtMDQtMDMgMjE6MDk6MjkuMDAwMDAw MDAwICswMjAwCitAQCAtNjYsNiArNjYsNyBAQCBleHRlcm4gdm9pZCAoKmRlcHJlY2F0ZWRfdGFy Z2V0X3dhaXRfbG9vCisgCisgdm9pZCByZWdpc3Rlcl9yZW1vdGVfZ19wYWNrZXRfZ3Vlc3MgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgYnl0ZXMsCisgCQkJCSAgICAgY29uc3Qgc3RydWN0 IHRhcmdldF9kZXNjICp0ZGVzYyk7Cisrdm9pZCByZWdpc3Rlcl9yZW1vdGVfc3VwcG9ydF94bWwg KGNvbnN0IGNoYXIgKik7CisgCisgdm9pZCByZW1vdGVfZmlsZV9wdXQgKGNvbnN0IGNoYXIgKmxv Y2FsX2ZpbGUsIGNvbnN0IGNoYXIgKnJlbW90ZV9maWxlLAorIAkJICAgICAgaW50IGZyb21fdHR5 KTsKCmRpZmYgLS1naXQgYS9nZGItYno1NzgyNTAtYXZ4LTA4b2YxMC5wYXRjaCBiL2dkYi1iejU3 ODI1MC1hdngtMDhvZjEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjRmMWU0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1NzgyNTAtYXZ4LTA4b2YxMC5wYXRj aApAQCAtMCwwICsxLDMyIEBACitbIEJhY2twb3J0ZWQuICBdCisKK2NvbW1pdCA2ODQzNDEzOTJm M2NhNjcwM2RjMjhkYWM1NDhkMzA1MTgxMWJmZjQ3CitBdXRob3I6IEguSi4gTHUgPGhqbC50b29s c0BnbWFpbC5jb20+CitEYXRlOiAgIFR1ZSBNYXIgMzAgMTg6Mzc6MDMgMjAxMCArMDAwMAorCisg ICAgQWRkIG9yZy5nbnUuZ2RiLmkzODYuYXZ4LgorICAgIAorICAgIDIwMTAtMDMtMzAgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBnZGIudGV4aW5mbyAoaTM4 NiBGZWF0dXJlcyk6IEFkZCBvcmcuZ251LmdkYi5pMzg2LmF2eC4KKworLS0tIGdkYi03LjEtcDYv Z2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTA0LTAzIDIxOjA5OjI5LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi03LjEvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTA0LTAzIDIxOjEwOjU3LjAwMDAw MDAwMCArMDIwMAorQEAgLTMzMzgwLDYgKzMzMzgwLDE3IEBAIGRlc2NyaWJlIHJlZ2lzdGVyczoK KyBAc2FtcHtteGNzcn0KKyBAZW5kIGl0ZW1pemUKKyAKKytUaGUgQHNhbXB7b3JnLmdudS5nZGIu aTM4Ni5hdnh9IGZlYXR1cmUgaXMgb3B0aW9uYWwuICBJdCBzaG91bGQKKytkZXNjcmliZSB0aGUg dXBwZXIgMTI4IGJpdHMgb2YgQHNje3ltbX0gcmVnaXN0ZXJzOgorKworK0BpdGVtaXplIEBtaW51 cworK0BpdGVtCisrQHNhbXB7eW1tMGh9IHRocm91Z2ggQHNhbXB7eW1tN2h9IGZvciBpMzg2Cisr QGl0ZW0KKytAc2FtcHt5bW0waH0gdGhyb3VnaCBAc2FtcHt5bW0xNWh9IGZvciBhbWQ2NAorK0Bp dGVtIAorK0BlbmQgaXRlbWl6ZQorKworIFRoZSBAc2FtcHtvcmcuZ251LmdkYi5pMzg2LmxpbnV4 fSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSXQgc2hvdWxkCisgZGVzY3JpYmUgYSBzaW5nbGUgcmVn aXN0ZXIsIEBzYW1we29yaWdfZWF4fS4KKyAKCmRpZmYgLS1naXQgYS9nZGItYno1NzgyNTAtYXZ4 LTA5b2YxMC5wYXRjaCBiL2dkYi1iejU3ODI1MC1hdngtMDlvZjEwLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YTQxYjEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt Yno1NzgyNTAtYXZ4LTA5b2YxMC5wYXRjaApAQCAtMCwwICsxLDE4MyBAQAorWyBCYWNrcG9ydGVk LiAgXQorCitjb21taXQgNTM2MmU1ZTFkYzRjZmFjMjRmYmQ1ODc3M2FhYTdhODJjNjE1YjY2Mgor QXV0aG9yOiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgorRGF0ZTogICBUaHUgQXByIDEg MjA6MDI6MDcgMjAxMCArMDAwMAorCisgICAgU3VwcG9ydCAiYWgiLCAiYmgiLCAiY2giLCAiZGgi IG9uIGFtZDY0LgorICAgIAorICAgIGdkYi8KKyAgICAKKyAgICAyMDEwLTA0LTAxICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisgICAgCisgICAgCSogYW1kNjQtdGRlcC5jIChhbWQ2 NF9ieXRlX25hbWVzKTogQWRkICJhaCIsICJiaCIsICJjaCIsICJkaCIuCisgICAgCShBTUQ2NF9O VU1fTE9XRVJfQllURV9SRUdTKTogTmV3LgorICAgIAkoYW1kNjRfcHNldWRvX3JlZ2lzdGVyX3Jl YWQpOiBIYW5kbGUgImFoIiwgImJoIiwgImNoIiwgImRoIi4KKyAgICAJKGFtZDY0X3BzZXVkb19y ZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgorICAgIAkoYW1kNjRfaW5pdF9hYmkpOiBTZXQgbnVt X2J5dGVfcmVncyB0byAyMC4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlLworICAgIAorICAgIDIw MTAtMDQtMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKyAgICAKKyAgICAJKiBn ZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cDogQ2hlY2sgImFoIiwgImJoIiwgImNoIiwgImRoIi4KKwor LS0tIGdkYi03LjEtcDcvZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIxOjA4OjIxLjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2FtZDY0LXRkZXAuYwkyMDEwLTA0LTAzIDIxOjEx OjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTIxNSw5ICsyMTUsMTMgQEAgYW1kNjRfYXJjaF9yZWdf dG9fcmVnbnVtIChpbnQgcmVnKQorIHN0YXRpYyBjb25zdCBjaGFyICphbWQ2NF9ieXRlX25hbWVz W10gPQorIHsKKyAgICJhbCIsICJibCIsICJjbCIsICJkbCIsICJzaWwiLCAiZGlsIiwgImJwbCIs ICJzcGwiLAorLSAgInI4bCIsICJyOWwiLCAicjEwbCIsICJyMTFsIiwgInIxMmwiLCAicjEzbCIs ICJyMTRsIiwgInIxNWwiCisrICAicjhsIiwgInI5bCIsICJyMTBsIiwgInIxMWwiLCAicjEybCIs ICJyMTNsIiwgInIxNGwiLCAicjE1bCIsCisrICAiYWgiLCAiYmgiLCAiY2giLCAiZGgiCisgfTsK KyAKKysvKiBOdW1iZXIgb2YgbG93ZXIgYnl0ZSByZWdpc3RlcnMuICAqLworKyNkZWZpbmUgQU1E NjRfTlVNX0xPV0VSX0JZVEVfUkVHUyAxNgorKworIC8qIFJlZ2lzdGVyIG5hbWVzIGZvciB3b3Jk IHBzZXVkby1yZWdpc3RlcnMuICAqLworIAorIHN0YXRpYyBjb25zdCBjaGFyICphbWQ2NF93b3Jk X25hbWVzW10gPQorQEAgLTI2Myw4ICsyNjcsMTggQEAgYW1kNjRfcHNldWRvX3JlZ2lzdGVyX3Jl YWQgKHN0cnVjdCBnZGJhcgorICAgICAgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmFsX3Jl Z251bTsKKyAKKyAgICAgICAvKiBFeHRyYWN0IChhbHdheXMgbGl0dGxlIGVuZGlhbikuICAqLwor LSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwgZ3BudW0sIHJhd19idWYpOworLSAg ICAgIG1lbWNweSAoYnVmLCByYXdfYnVmLCAxKTsKKysgICAgICBpZiAoZ3BudW0gPj0gQU1ENjRf TlVNX0xPV0VSX0JZVEVfUkVHUykKKysJeworKwkgIC8qIFNwZWNpYWwgaGFuZGxpbmcgZm9yIEFI LCBCSCwgQ0gsIERILiAgKi8KKysJICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsCisrCQkJ ICAgICBncG51bSAtIEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MsIHJhd19idWYpOworKwkgIG1l bWNweSAoYnVmLCByYXdfYnVmICsgMSwgMSk7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBy ZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdwbnVtLCByYXdfYnVmKTsKKysJICBtZW1jcHkg KGJ1ZiwgcmF3X2J1ZiwgMSk7CisrCX0KKyAgICAgfQorICAgZWxzZSBpZiAoaTM4Nl9kd29yZF9y ZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAgICAgeworQEAgLTI4OSwxMiArMzAzLDI2IEBA IGFtZDY0X3BzZXVkb19yZWdpc3Rlcl93cml0ZSAoc3RydWN0IGdkYmEKKyAgICAgeworICAgICAg IGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmFsX3JlZ251bTsKKyAKKy0gICAgICAvKiBSZWFk IC4uLiAgKi8KKy0gICAgICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIGdwbnVtLCByYXdf YnVmKTsKKy0gICAgICAvKiAuLi4gTW9kaWZ5IC4uLiAoYWx3YXlzIGxpdHRsZSBlbmRpYW4pLiAg Ki8KKy0gICAgICBtZW1jcHkgKHJhd19idWYsIGJ1ZiwgMSk7CistICAgICAgLyogLi4uIFdyaXRl LiAgKi8KKy0gICAgICByZWdjYWNoZV9yYXdfd3JpdGUgKHJlZ2NhY2hlLCBncG51bSwgcmF3X2J1 Zik7CisrICAgICAgaWYgKGdwbnVtID49IEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MpCisrCXsK KysJICAvKiBSZWFkIC4uLiBBSCwgQkgsIENILCBESC4gICovCisrCSAgcmVnY2FjaGVfcmF3X3Jl YWQgKHJlZ2NhY2hlLAorKwkJCSAgICAgZ3BudW0gLSBBTUQ2NF9OVU1fTE9XRVJfQllURV9SRUdT LCByYXdfYnVmKTsKKysJICAvKiAuLi4gTW9kaWZ5IC4uLiAoYWx3YXlzIGxpdHRsZSBlbmRpYW4p LiAgKi8KKysJICBtZW1jcHkgKHJhd19idWYgKyAxLCBidWYsIDEpOworKwkgIC8qIC4uLiBXcml0 ZS4gICovCisrCSAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwKKysJCQkgICAgICBncG51 bSAtIEFNRDY0X05VTV9MT1dFUl9CWVRFX1JFR1MsIHJhd19idWYpOworKwl9CisrICAgICAgZWxz ZQorKwl7CisrCSAgLyogUmVhZCAuLi4gICovCisrCSAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlZ2Nh Y2hlLCBncG51bSwgcmF3X2J1Zik7CisrCSAgLyogLi4uIE1vZGlmeSAuLi4gKGFsd2F5cyBsaXR0 bGUgZW5kaWFuKS4gICovCisrCSAgbWVtY3B5IChyYXdfYnVmLCBidWYsIDEpOworKwkgIC8qIC4u LiBXcml0ZS4gICovCisrCSAgcmVnY2FjaGVfcmF3X3dyaXRlIChyZWdjYWNoZSwgZ3BudW0sIHJh d19idWYpOworKwl9CisgICAgIH0KKyAgIGVsc2UgaWYgKGkzODZfZHdvcmRfcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSkpCisgICAgIHsKK0BAIC0yMjMzLDcgKzIyNjEsNyBAQCBhbWQ2NF9pbml0 X2FiaSAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvCisgICB0ZGVwLT5udW1fY29yZV9yZWdzID0g QU1ENjRfTlVNX0dSRUdTICsgSTM4N19OVU1fUkVHUzsKKyAgIHRkZXAtPnJlZ2lzdGVyX25hbWVz ID0gYW1kNjRfcmVnaXN0ZXJfbmFtZXM7CisgCistICB0ZGVwLT5udW1fYnl0ZV9yZWdzID0gMTY7 CisrICB0ZGVwLT5udW1fYnl0ZV9yZWdzID0gMjA7CisgICB0ZGVwLT5udW1fd29yZF9yZWdzID0g MTY7CisgICB0ZGVwLT5udW1fZHdvcmRfcmVncyA9IDE2OworICAgLyogQXZvaWQgd2lyaW5nIGlu IHRoZSBNTVggcmVnaXN0ZXJzIGZvciBub3cuICAqLworLS0tIGdkYi03LjEtcDcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cAkyMDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9hbWQ2NC1ieXRlLmV4 cAkyMDEwLTA0LTAzIDIxOjExOjQxLjAwMDAwMDAwMCArMDIwMAorQEAgLTUyLDcgKzUyLDYgQEAg aWYgIVtydW50b19tYWluXSB0aGVuIHsKKyAgICAgZ2RiX3N1cHByZXNzX3Rlc3RzCisgfQorIAor LXNldCBucl9yZWdzIDE0Cisgc2V0IGJ5dGVfcmVncygxKSBhbAorIHNldCBieXRlX3JlZ3MoMikg YmwKKyBzZXQgYnl0ZV9yZWdzKDMpIGNsCitAQCAtNjcsNiArNjYsMTAgQEAgc2V0IGJ5dGVfcmVn cygxMSkgcjEybAorIHNldCBieXRlX3JlZ3MoMTIpIHIxM2wKKyBzZXQgYnl0ZV9yZWdzKDEzKSBy MTRsCisgc2V0IGJ5dGVfcmVncygxNCkgcjE1bAorK3NldCBieXRlX3JlZ3MoMTUpIGFoCisrc2V0 IGJ5dGVfcmVncygxNikgYmgKKytzZXQgYnl0ZV9yZWdzKDE3KSBjaAorK3NldCBieXRlX3JlZ3Mo MTgpIGRoCisgCisgZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmaXJzdCBi cmVha3BvaW50IGhlcmUiXSIgXAorICAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNm aWxlfS4qIiBcCitAQCAtNzksMTIgKzgyLDE5IEBAIGZvciB7IHNldCByIDEgfSB7ICRyIDw9IDYg IH0geyBpbmNyIHIgfSAKKyAgICAgICAgICJjaGVjayBjb250ZW50cyBvZiAlJGJ5dGVfcmVncygk cikiCisgfQorIAorK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDQgIH0geyBpbmNyIHIgfSB7Cisr ICAgIHNldCBoIFtleHByICRyICsgMTRdCisrICAgIGdkYl90ZXN0ICJwcmludC94IFwkJGJ5dGVf cmVncygkaCkiIFwKKysgICAgICAgICIuLiA9IDB4W2Zvcm1hdCAleCAkcl0yIiBcCisrICAgICAg ICAiY2hlY2sgY29udGVudHMgb2YgJSRieXRlX3JlZ3MoJGgpIgorK30KKysKKyBnZGJfdGVzdCAi YnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUiXSIgXAor ICAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qJHtzcmNmaWxlfS4qIiBcCisgICAgICAgICAg InNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorIGdkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorIAorLWZvciB7IHNl dCByIDcgfSB7ICRyIDw9ICRucl9yZWdzICB9IHsgaW5jciByIH0geworK2ZvciB7IHNldCByIDcg fSB7ICRyIDw9IDE0ICB9IHsgaW5jciByIH0geworICAgICBnZGJfdGVzdCAicHJpbnQveCBcJCRi eXRlX3JlZ3MoJHIpIiBcCisgICAgICAgICAiLi4gPSAweFtmb3JtYXQgJXggJHJdMSIgXAorICAg ICAgICAgImNoZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKK0BAIC05NCw2ICsxMDQs MTEgQEAgZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNiAgfSB7IGluY3IgciB9IAorICAgZ2RiX3Rl c3QgInNldCB2YXIgXCQkYnl0ZV9yZWdzKCRyKSA9ICRyIiAiIiAic2V0ICUkYnl0ZV9yZWdzKCRy KSIKKyB9CisgCisrZm9yIHsgc2V0IHIgMSB9IHsgJHIgPD0gNCAgfSB7IGluY3IgciB9IHsKKysg IHNldCBoIFtleHByICRyICsgMTRdCisrICBnZGJfdGVzdCAic2V0IHZhciBcJCRieXRlX3JlZ3Mo JGgpID0gJGgiICIiICJzZXQgJSRieXRlX3JlZ3MoJGgpIgorK30KKysKKyBnZGJfdGVzdCAiYnJl YWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInRoaXJkIGJyZWFrcG9pbnQgaGVyZSJdIiBcCisgICAg ICAgICAgIkJyZWFrcG9pbnQgLiogYXQgLioke3NyY2ZpbGV9LioiIFwKKyAgICAgICAgICAic2V0 IHRoaXJkIGJyZWFrcG9pbnQgaW4gbWFpbiIKK0BAIC0xMDUsNyArMTIwLDE0IEBAIGZvciB7IHNl dCByIDEgfSB7ICRyIDw9IDYgIH0geyBpbmNyIHIgfSAKKyAgICAgICAgICJjaGVjayBjb250ZW50 cyBvZiAlJGJ5dGVfcmVncygkcikiCisgfQorIAorLWZvciB7IHNldCByIDcgfSB7ICRyIDw9ICRu cl9yZWdzICB9IHsgaW5jciByIH0geworK2ZvciB7IHNldCByIDEgfSB7ICRyIDw9IDQgIH0geyBp bmNyIHIgfSB7CisrICAgIHNldCBoIFtleHByICRyICsgMTRdCisrICAgIGdkYl90ZXN0ICJwcmlu dCBcJCRieXRlX3JlZ3MoJGgpIiBcCisrICAgICAgICAiLi4gPSAkaCIgXAorKyAgICAgICAgImNo ZWNrIGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRoKSIKKyt9CisrCisrZm9yIHsgc2V0IHIgNyB9 IHsgJHIgPD0gMTQgIH0geyBpbmNyIHIgfSB7CisgICBnZGJfdGVzdCAic2V0IHZhciBcJCRieXRl X3JlZ3MoJHIpID0gJHIiICIiICJzZXQgJSRieXRlX3JlZ3MoJHIpIgorIH0KKyAKK0BAIC0xMTQs NyArMTM2LDcgQEAgZ2RiX3Rlc3QgImJyZWFrIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmbworICAg ICAgICAgICJzZXQgZm9ydGggYnJlYWtwb2ludCBpbiBtYWluIgorIGdkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJjb250aW51ZSB0byBmb3J0aCBicmVha3BvaW50IGluIG1haW4iCisgCistZm9y IHsgc2V0IHIgNyB9IHsgJHIgPD0gJG5yX3JlZ3MgIH0geyBpbmNyIHIgfSB7CisrZm9yIHsgc2V0 IHIgNyB9IHsgJHIgPD0gMTQgIH0geyBpbmNyIHIgfSB7CisgICAgIGdkYl90ZXN0ICJwcmludCBc JCRieXRlX3JlZ3MoJHIpIiBcCisgICAgICAgICAiLi4gPSAkciIgXAorICAgICAgICAgImNoZWNr IGNvbnRlbnRzIG9mICUkYnl0ZV9yZWdzKCRyKSIKCmRpZmYgLS1naXQgYS9nZGItYno1NzgyNTAt YXZ4LTEwb2YxMC1wcGMucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTEwb2YxMC1wcGMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVjZTI3NQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1iejU3ODI1MC1hdngtMTBvZjEwLXBwYy5wYXRjaApAQCAtMCwwICsxLDE2IEBA CitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wNC9tc2cwMDA1Ni5o dG1sCisKK2xpbnV4LXBwYy1sb3cuYzo1OTk6IGVycm9yOiBpbmNvbXBhdGlibGUgdHlwZXMgd2hl biBpbml0aWFsaXppbmcgdHlwZSDigJhlbnVtIHJlZ3NldF90eXBl4oCZIHVzaW5nIHR5cGUg4oCY dm9pZCAoKikoc3RydWN0IHJlZ2NhY2hlICosIHZvaWQgKinigJkKK2xpbnV4LXBwYy1sb3cuYzo1 OTk6IHdhcm5pbmc6IGluaXRpYWxpemF0aW9uIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlw ZQorCistLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LXBwYy1sb3cuYworKysrIGIvZ2RiL2dkYnNl cnZlci9saW51eC1wcGMtbG93LmMKK0BAIC01OTQsNyArNTk0LDcgQEAgc3RydWN0IHJlZ3NldF9p bmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgICAgICBQUENfUFRSQUNFX0dFVFJFR1MuICAqLwor ICAgeyBQVFJBQ0VfR0VUVlNYUkVHUywgUFRSQUNFX1NFVFZTWFJFR1MsIDAsIFNJWkVPRl9WU1hS RUdTLCBFWFRFTkRFRF9SRUdTLAorICAgcHBjX2ZpbGxfdnN4cmVnc2V0LCBwcGNfc3RvcmVfdnN4 cmVnc2V0IH0sCistICB7IFBUUkFDRV9HRVRWUlJFR1MsIFBUUkFDRV9TRVRWUlJFR1MsIFNJWkVP Rl9WUlJFR1MsIEVYVEVOREVEX1JFR1MsCisrICB7IFBUUkFDRV9HRVRWUlJFR1MsIFBUUkFDRV9T RVRWUlJFR1MsIDAsIFNJWkVPRl9WUlJFR1MsIEVYVEVOREVEX1JFR1MsCisgICAgIHBwY19maWxs X3ZycmVnc2V0LCBwcGNfc3RvcmVfdnJyZWdzZXQgfSwKKyAgIHsgUFRSQUNFX0dFVEVWUlJFR1Ms IFBUUkFDRV9TRVRFVlJSRUdTLCAwLCAzMiAqIDQgKyA4ICsgNCwgRVhURU5ERURfUkVHUywKKyAg ICAgcHBjX2ZpbGxfZXZycmVnc2V0LCBwcGNfc3RvcmVfZXZycmVnc2V0IH0sCgpkaWZmIC0tZ2l0 IGEvZ2RiLWJ6NTc4MjUwLWF2eC0xMG9mMTAucGF0Y2ggYi9nZGItYno1NzgyNTAtYXZ4LTEwb2Yx MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTE5NmMzCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLWJ6NTc4MjUwLWF2eC0xMG9mMTAucGF0Y2gKQEAgLTAsMCArMSw4 MjcxIEBACitbIEJhY2twb3J0ZWQuICBdCisKK2dpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20v ZGV2ZWwvZ2RiL2hqbC9hdnguZ2l0CitoamwvYXZ4aAorYWViYWUzNmMyYThiNzNhZTUxMzE5ZmZm NTRmYzM5ZjIyMGYwODI0YQorCistLS0gLi9iZmQvQ2hhbmdlTG9nLnhzdGF0ZQkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vYmZkL0NoYW5nZUxvZy54c3RhdGUJMjAx MC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTQgQEAKKysyMDEw LTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogZWxmLmMgKGVs ZmNvcmVfZ3Jva19ub3RlKTogUmVwbGFjZSBOVF8zODZfWFNUQVRFIHdpdGgKKysJTlRfWDg2X1hT VEFURS4KKysJKGVsZmNvcmVfd3JpdGVfeHN0YXRlcmVnKTogTGlrZXdpc2UuCisrCisrMjAxMC0w MS0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGVsZi1iZmQuaCAo ZWxmY29yZV93cml0ZV94c3RhdGVyZWcpOiBOZXcuCisrCisrCSogZWxmLmMgKGVsZmNvcmVfZ3Jv a194c3RhdGVyZWcpOiBOZXcuCisrCShlbGZjb3JlX3dyaXRlX3hzdGF0ZXJlZyk6IExpa2V3aXNl LgorKwkoZWxmY29yZV9ncm9rX25vdGUpOiBIYW5kbGUgTlRfMzg2X1hTVEFURS4KKysJKGVsZmNv cmVfd3JpdGVfcmVnaXN0ZXJfbm90ZSk6IEhhbmRsZSAucmVnLXhzdGF0ZSBzZWN0aW9uLgorLS0t IC4vZ2RiL0NoYW5nZUxvZy5hdngJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK KysrKyAuL2dkYi9DaGFuZ2VMb2cuYXZ4CTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICsw MjAwCitAQCAtMCwwICsxLDMwNiBAQAorKzIwMTAtMDMtMDQgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuaCAoSTM4Nl9YU1RBVEVfU1NF X01BU0tfU1RSSU5HKTogUmVtb3ZlZC4KKysJKEkzODZfWFNUQVRFX0FWWF9NQVNLX1NUUklORyk6 IExpa2V3aXNlLgorKwkoSTM4Nl9YU1RBVEVfTUFYX01BU0tfU1RSSU5HKTogTGlrZXdpc2UuCisr CShJMzg2X1hTVEFURV9TU0VfU0laRV9TVFJJTkcpOiBMaWtld2lzZS4KKysJKEkzODZfWFNUQVRF X0FWWF9TSVpFX1NUUklORyk6IExpa2V3aXNlLgorKwkoSTM4Nl9YU1RBVEVfTUFYX1NJWkVfU1RS SU5HKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTog UmVwbGFjZQorKwlJMzg2X1hTVEFURV9NQVhfU0laRV9TVFJJTkcvSTM4Nl9YU1RBVEVfTUFYX01B U0tfU1RSSU5HIHdpdGgKKysJSTM4Nl9YU1RBVEVfTUFYX1NJWkUvSTM4Nl9YU1RBVEVfTUFYX01B U0suCisrCisrMjAxMC0wMy0wNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3VwcGx5X3hzdGF0ZXJlZ3NldCk6IERvbid0IGNoZWNr CisrCXNpemVvZl94c3RhdGVyZWdzZXQuCisrCShhbWQ2NF9jb2xsZWN0X3hzdGF0ZXJlZ3NldCk6 IExpa2V3aXNlLgorKwkoYW1kNjRfcmVnc2V0X2Zyb21fY29yZV9zZWN0aW9uKTogTGlrZXdpc2Uu CisrCShhbWQ2NF9pbml0X2FiaSk6IERvbid0IHNldCBzaXplb2ZfeHN0YXRlcmVnc2V0LgorKwor KwkqIGkzODYtdGRlcC5jIChpMzg2X3N1cHBseV94c3RhdGVyZWdzZXQpOiBEb24ndCBjaGVjawor KwlzaXplb2ZfeHN0YXRlcmVnc2V0LgorKwkoaTM4Nl9jb2xsZWN0X3hzdGF0ZXJlZ3NldCk6IExp a2V3aXNlLgorKwkoaTM4Nl9yZWdzZXRfZnJvbV9jb3JlX3NlY3Rpb24pOiBMaWtld2lzZS4KKysJ KGkzODZfZ2RiYXJjaF9pbml0KTogRG9uJ3Qgc2V0IHNpemVvZl94c3RhdGVyZWdzZXQuCisrCisr CSogaTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IFJlbW92ZSBzaXplb2ZfeHN0YXRlcmVnc2V0 LgorKworKzIwMTAtMDMtMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IENhbGwK KysJaTM4Nl9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0LgorKwkqIGkzODYtbGludXgtbmF0LmMg KGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKworKwkqIGkzODYtbGlu dXgtdGRlcC5jIChpMzg2X2xpbnV4X3VwZGF0ZV94c3RhdGVyZWdzZXQpOiBOZXcuCisrCSogaTM4 Ni1saW51eC10ZGVwLmggKGkzODZfbGludXhfdXBkYXRlX3hzdGF0ZXJlZ3NldCk6IExpa2V3aXNl LgorKworKzIwMTAtMDMtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBhbWQ2NC1saW51eC1uYXQuYyAoeHN0YXRlX3NpemUpOiBOZXcuCisrCSh4c3RhdGVfc2l6ZV9u X29mX2ludDY0KTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdp c3RlcnMpOiBVcGRhdGVkLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJz KTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogVXNlIEkzODZf WFNUQVRFX1NTRV9TSVpFCisrCWluc3RlYWQgb2YgSTM4Nl9YU1RBVEVfTUFYX1NJWkUuICBTZXQg eHN0YXRlX3NpemUgYW5kCisrCXhzdGF0ZV9zaXplX25fb2ZfaW50NjQuCisrCisrCSogaTM4Ni1s aW51eC1uYXQuYyAoeHN0YXRlX3NpemUpOiBOZXcuCisrCSh4c3RhdGVfc2l6ZV9uX29mX2ludDY0 KTogTGlrZXdpc2UuCisrCShmZXRjaF94c3RhdGVyZWdzKTogVXBkYXRlZC4KKysJKHN0b3JlX3hz dGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IFVz ZSBJMzg2X1hTVEFURV9TU0VfU0laRQorKwlpbnN0ZWFkIG9mIEkzODZfWFNUQVRFX01BWF9TSVpF LiAgU2V0IHhzdGF0ZV9zaXplIGFuZAorKwl4c3RhdGVfc2l6ZV9uX29mX2ludDY0LgorKworKwkq IGNvbW1vbi9pMzg2LXhzdGF0ZS5oIChJMzg2X1hTVEFURV9TSVpFKTogTmV3LgorKworKzIwMTAt MDMtMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBjb25maWcvZGpn cHAvZm5jaGFuZ2UubHN0OiBBZGQgeDg2IEFWWCBYTUwgZmlsZXMuCisrCisrMjAxMC0wMy0wMiAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5j IChYU1RBVEVfTUFYX1NJWkVfTl9PRl9JTlQ2NCk6IE5ldy4KKysJKGFtZDY0X2xpbnV4X2ZldGNo X2luZmVyaW9yX3JlZ2lzdGVycyk6IFVwZGF0ZWQuCisrCShhbWQ2NF9saW51eF9zdG9yZV9pbmZl cmlvcl9yZWdpc3RlcnMpOiBMaWtld2lzZS4KKysJKGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRp b24pOiBMaWtld2lzZS4KKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2NvcmVf cmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKworKwkqIGkzODYtbGludXgtbmF0LmMgIChY U1RBVEVfTUFYX1NJWkVfTl9PRl9JTlQ2NCk6IE5ldy4KKysJKGZldGNoX3hzdGF0ZXJlZ3MpOiBV cGRhdGVkLgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9y ZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkz ODZfbGludXhfY29yZV9yZWFkX3hjcjApOiBVcGRhdGVkLgorKwkoaTM4Nl9saW51eF9jb3JlX3Jl YWRfeGNyMCk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24p OiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9yZWdpc3Rlcl9yZWdncm91cF9w KTogVXBkYXRlZC4KKysJKGkzODZfdmFsaWRhdGVfdGRlc2NfcCk6IExpa2V3aXNlLgorKwkoaTM4 Nl9nZGJhcmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBw bHlfZnhzYXZlKTogVXBkYXRlZC4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgor KworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oOiBDaGFuZ2UgWFNUQVRFIHRvIEkzODZfWFNUQVRF IGluIG1hY3Jvcy4KKysKKysyMDEwLTAzLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogTWFrZWZpbGUuaW4gKGkzODYteHN0YXRlLm8pOiBSZW1vdmVkLgorKworKwkq IGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMp OiBVc2UKKysJWFNUQVRFX01BWF9TSVpFX05fT0ZfSU5UNjQgYW5kIFhTVEFURV9NQVhfU0laRS4K KysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwko YW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IEFkZCBzdGF0aWMgeGNyMCBhbmQgZ2V0IGl0 CisrCWZyb20gSTM4Nl9MSU5VWF9YU0FWRV9YQ1IwX09GRlNFVC4gIFVzZSBYU1RBVEVfTUFYX1NJ WkVfTl9PRl9JTlQ2NAorKwlhbmQgWFNUQVRFX01BWF9TSVpFLgorKwkoX2luaXRpYWxpemVfYW1k NjRfbGludXhfbmF0KTogRG9uJ3QgY2FsbCBpMzg2X3hzdGF0ZV9pbml0LgorKworKwkqIGNvbmZp Z3VyZS5hYzogUmVtb3ZlIGNoZWNrIGZvciBjcHVpZC5oLgorKwkqIGNvbmZpZy5pbjogUmVnZW5l cmF0ZWQuCisrCSogY29uZmlndXJlOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5j IChmZXRjaF94c3RhdGVyZWdzKTogVXNlCisrCVhTVEFURV9NQVhfU0laRV9OX09GX0lOVDY0IGFu ZCBYU1RBVEVfTUFYX1NJWkUuCisrCShzdG9yZV94c3RhdGVyZWdzKTogTGlrZXdpc2UuCisrCShp Mzg2X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBBZGQgc3RhdGljIHhjcjAgYW5kIGdldCBpdAor Kwlmcm9tIEkzODZfTElOVVhfWFNBVkVfWENSMF9PRkZTRVQuICBVc2UgWFNUQVRFX01BWF9TSVpF X05fT0ZfSU5UNjQKKysJYW5kIFhTVEFURV9NQVhfU0laRS4KKysJKF9pbml0aWFsaXplX2kzODZf bGludXhfbmF0KTogRG9uJ3QgY2FsbCBpMzg2X3hzdGF0ZV9pbml0LgorKworKwkqIGNvbW1vbi9p Mzg2LWNwdWlkLmg6IFJlbW92ZWQuCisrCSogY29tbW9uL2kzODYteHN0YXRlLmM6IExpa2V3aXNl LgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oICh4c3RhdGVfc3RhdHVzKTogUmVtb3ZlZC4K KysJKGkzODZfeHN0YXRlX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfeHN0YXRlKTogTGlrZXdp c2UuCisrCShpMzg2X3hzdGF0ZV9pbml0KTogTGlrZXdpc2UuCisrCShYU1RBVEVfTUFYX1NJWkVf Tl9PRl9JTlQ2NCk6IE5ldy4KKysKKysJKiBjb25maWcvaTM4Ni9saW51eC5taCAoTkFUREVQRklM RVMpOiBSZW1vdmUgaTM4Ni14c3RhdGUuby4KKysJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oIChO QVRERVBGSUxFUyk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDEgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2df cGFja2V0X3NpemUpOiBNYWtlIGl0IGNvbnN0LgorKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfZ19w YWNrZXRfc2l6ZSk6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4 X2dfcGFja2V0X3NpemUpOiBMaWtld2lzZS4KKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nX3BhY2tl dF9zaXplKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhf aW5pdF9hYmkpOiBSZW1vdmUKKysJaTM4Nl9saW51eF9nX3BhY2tldF9zaXplLgorKworKwkqIGkz ODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMpOiBVcGRhdGVkLgorKwkq IGkzODYtdGRlcC5oIChpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMpOiBMaWtld2lzZS4K KysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog YW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9nX3BhY2tldF9zaXplKTogQWRkIGtleS4K KysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9nX3BhY2tldF9zaXplKTogTGlrZXdp c2UuCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ19wYWNrZXRfc2l6ZSk6IExpa2V3aXNlLgorKwor KwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfZ19wYWNrZXRfc2l6ZSk6IE5ldy4KKysJKGFtZDY0X2lu aXRfYWJpKTogQ2FsbCBpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuCisrCisrCSogaTM4 Ni10ZGVwLmMgKEkzODZfUFJPUEVSVFlfU1NFKTogUmVtb3ZlZC4KKysJKEkzODZfUFJPUEVSVFlf QVZYKTogTGlrZXdpc2UuCisrCShpMzg2X3RkZXNjX3NzZSk6IExpa2V3aXNlLgorKwkoaTM4Nl90 ZGVzY19hdngpOiBMaWtld2lzZS4KKysJKGkzODZfaW5pdF90ZGVzYyk6IExpa2V3aXNlLgorKwko aTM4Nl9yZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogVXBkYXRlZC4KKysJKGkzODZfZ2RiYXJj aF92ZWN0b3JfdW5pdF9pbml0KTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10ZGVwLmggKEkzODZf UFJPUEVSVFlfU1NFKTogTmV3LgorKwkoSTM4Nl9QUk9QRVJUWV9BVlgpOiBMaWtld2lzZS4KKysJ KEFNRDY0X1BST1BFUlRZX1NTRSk6IExpa2V3aXNlLgorKwkoQU1ENjRfUFJPUEVSVFlfQVZYKTog TGlrZXdpc2UuCisrCShpMzg2X2dfcGFja2V0X3NpemUpOiBBZGQga2V5LgorKwkoaTM4Nl9yZWdp c3Rlcl9nX3BhY2tldF9ndWVzc2VzKTogVXBkYXRlZC4KKysKKysyMDEwLTAxLTMxICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVnZm9ybWF0cy9yZWctaTM4Ni1hdngt bGludXguZGF0OiBBZGQgYSBjb21tZW50IGZvciBvc2FiaS4KKysJKiByZWdmb3JtYXRzL3JlZy14 ODYtNjQtYXZ4LWxpbnV4LmRhdDogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIHJlZ2Zvcm1hdHMvcmVnLWkzODYtYXZ4LWxp bnV4LmRhdDogQWRkIGEgY29tbWVudCBmb3IgeG1sYXJjaC4KKysJKiByZWdmb3JtYXRzL3JlZy1p Mzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdngtbGlu dXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQtYXZ4LmRhdDogTGlr ZXdpc2UuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoYW1kNjRfbGludXhfZ19wYWNrZXRfc2l6ZSk6IE5l dy4KKysJKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogUGFzcyBhbWQ2NF9saW51eF9nX3BhY2tldF9z aXplIHRvCisrCWkzODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBpMzg2LWxp bnV4LXRkZXAuYyAoaTM4Nl9saW51eF9nX3BhY2tldF9zaXplKTogTmV3LgorKwkoaTM4Nl9saW51 eF9pbml0X2FiaSk6IFBhc3MgaTM4Nl9saW51eF9nX3BhY2tldF9zaXplIHRvCisrCWkzODZfcmVn aXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9yZWdpc3Rl cl9nX3BhY2tldF9ndWVzc2VzKTogVXBkYXRlZCB0bworKwl0YWtlIGFuIGFycmF5IG9mIHRoZSBn L0cgcGFja2V0IHNpemVzLgorKwkoaTM4Nl9nX3BhY2tldF9zaXplKTogTmV3LgorKwkoaTM4Nl9n ZGJhcmNoX2luaXQpOiBQYXNzIGkzODZfZ19wYWNrZXRfc2l6ZSB0bworKwlpMzg2X3JlZ2lzdGVy X2dfcGFja2V0X2d1ZXNzZXMuCisrCisrCSogaTM4Ni10ZGVwLmggKGkzODZfZ19wYWNrZXRfc2l6 ZV9pbmRleCk6IE5ldy4KKysJKGkzODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcyk6IFVwZGF0 ZWQuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGFtZDY0LXRkZXAuaCAoQU1ENjRfR19QQUNLRVRfU0laRV9BVlgpOiBDb3JyZWN0IGNvbW1l bnRzLgorKwkqIGkzODYtdGRlcC5oIChJMzg2X0dfUEFDS0VUX1NJWkVfQVZYKTogTGlrZXdpc2Uu CisrCQorKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfZnhzYXZlKTogUmVtb3ZlIHZlY3RvciB1bml0IGNo ZWNrLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBSZW1vdmUg dGhlCisrCWR1cGxpY2F0ZS4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9p bml0KTogQ2FsbCAKKysJaTM4Nl94c3RhdGVfaW5pdCBhbmQgaW5pdGlhbGl6ZSB2ZWN0b3JfdW5p dCBwcm9wZXJseS4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTog SW5pdGlhbGl6ZQorKwl2ZWN0b3JfdW5pdCBvbmx5IGlmIHRhcmdldF9kZXNjIGlzbid0IE5VTEwu CisrCisrMjAxMC0wMS0yMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGkzODYtdGRlcC5jIChpMzg2X3NzZV90eXBlKTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZfdmVj dG9yX3R5cGUpOiBUaGlzLiAgVXBkYXRlZC4KKysJKGkzODZfcmVnaXN0ZXJfdHlwZSk6IFVwZGF0 ZWQuCisrCisrCSogaTM4Ni10ZGVwLmggKGkzODZfc3NlX3R5cGUpOiBSZW5hbWVkIHRvIC4uLgor KwkoaTM4Nl92ZWN0b3JfdHlwZSk6IFRoaXMuCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9y ZWdpc3Rlcl90eXBlKTogVXBkYXRlZC4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9yZWdpc3Rlcl9uYW1l KTogUmVwbGFjZSBzc2VfdW5pdCB3aXRoCisrCXZlY3Rvcl91bml0LgorKwkoYW1kNjRfaW5pdF9h YmkpOiBMaWtld2lzZS4KKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9yZWdpc3Rlcl9uYW1lKTogTGlr ZXdpc2UuCisrCShpMzg2X3NzZV90eXBlKTogTGlrZXdpc2UuCisrCShpMzg2X3JlZ2lzdGVyX2df cGFja2V0X2d1ZXNzZXMpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9zc2VfdW5pdF9pbml0 KTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogVGhp cy4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogVXBkYXRlZC4KKysKKysJKiBpMzg2LXRkZXAuaCAo eDg2X3NzZV91bml0KTogUmVuYW1lZCB0byAuLi4KKysJKHg4Nl92ZWN0b3JfdW5pdCk6IFRoaXMu CisrCShpMzg2X2dkYmFyY2hfc3NlX3VuaXRfaW5pdCk6IFJlbmFtZWQgdG8gLi4uCisrCShpMzg2 X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IFRoaXMuCisrCisrCSogaTM4Ny10ZGVwLmMgKGkz ODdfc3VwcGx5X2Z4c2F2ZSk6IFJlcGxhY2Ugc3NlX3VuaXQgd2l0aAorKwl2ZWN0b3JfdW5pdC4K KysKKysyMDA5LTEwLTE0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog YW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9pbml0X2FiaSk6IENhbGwKKysJcmVnaXN0 ZXJfcmVtb3RlX2dfcGFja2V0X2d1ZXNzLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfcmVn aXN0ZXJfbmFtZXMpOiBSZW5hbWVkIHRvIC4uLgorKwkoYW1kNjRfc3NlX3JlZ2lzdGVyX25hbWVz KTogVGhpcy4gIFJlbW92ZSBBVlggcmVnaXN0ZXJzLgorKwkoYW1kNjRfYXZ4X3JlZ2lzdGVyX25h bWVzKTogTmV3LgorKwkoQU1ENjRfTlVNX1JFR1MpOiBVcGRhdGVkLgorKwkoYW1kNjRfcmVnaXN0 ZXJfbmFtZSk6IEhhbmRsZSBzc2VfdW5pdC4KKysJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBSZW1v dmUgQVZYIHJlZ2lzdGVycy4KKysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBpMzg2X2dkYmFyY2hf c3NlX3VuaXRfaW5pdCB0bworKwlpbml0aWFsaXplIHNzZV91bml0LgorKworKwkqIGFtZDY0LXRk ZXAuaCAoQU1ENjRfR19QQUNLRVRfU0laRV9TU0UpOiBOZXcuCisrCShBTUQ2NF9HX1BBQ0tFVF9T SVpFX0FWWCk6IExpa2V3aXNlLgorKworKwkqIGRlZnMuaCAoTUFYX1JFR0lTVEVSX1NJWkUpOiBJ bmNyZWFzZSB0byAzMi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9pbml0 X2FiaSk6IENhbGwKKysJaTM4Nl9yZWdpc3Rlcl9nX3BhY2tldF9ndWVzc2VzLgorKworKwkqIGkz ODYtdGRlcC5jOiBJbmNsdWRlICJyZW1vdGUuaCIgYW5kICJ0YXJnZXQtZGVzY3JpcHRpb25zLmgi LgorKwkoSTM4Nl9QUk9QRVJUWV9TU0UpOiBOZXcuCisrCShJMzg2X1BST1BFUlRZX0FWWCk6IExp a2V3aXNlLgorKwkoaTM4Nl90ZGVzY19zc2UpOiBMaWtld2lzZS4KKysJKGkzODZfdGRlc2NfYXZ4 KTogTGlrZXdpc2UuCisrCShpMzg2X2F2eF9yZWdpc3Rlcl9uYW1lcyk6IExpa2V3aXNlLgorKwko aTM4Nl92ZWMxMjhfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl92ZWMyNTZfdHlwZSk6IExpa2V3 aXNlLgorKwkoaTM4Nl9pbml0X3RkZXNjKTogTGlrZXdpc2UuCisrCShpMzg2X3JlZ2lzdGVyX2df cGFja2V0X2d1ZXNzZXMpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9zc2VfdW5pdF9pbml0 KTogTGlrZXdpc2UuCisrCShpMzg2X3JlZ2lzdGVyX25hbWVzKTogUmVuYW1lZCB0byAuLi4KKysJ KGkzODZfc3NlX3JlZ2lzdGVyX25hbWVzKTogVGhpcy4KKysJKGkzODZfbnVtX3JlZ2lzdGVyX25h bWVzKTogVXBkYXRlZC4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IEhhbmRsZSBzc2VfdW5pdC4K KysJKGkzODZfc3NlX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogQ2Fs bCBpMzg2X2dkYmFyY2hfc3NlX3VuaXRfaW5pdCB0bworKwlpbml0aWFsaXplIHNzZV91bml0LiAg Q2FsbCBpMzg2X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuCisrCShfaW5pdGlhbGl6ZV9pMzg2 X3RkZXApOiBDYWxsIGkzODZfdGRlc2NfaW5pdC4KKysKKysJKiBpMzg2LXRkZXAuaCAoeDg2X3Nz ZV91bml0KTogTmV3LgorKwkoSTM4Nl9HX1BBQ0tFVF9TSVpFX1NTRSk6IExpa2V3aXNlLgorKwko STM4Nl9HX1BBQ0tFVF9TSVpFX0FWWCk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9nX3Bh Y2tldF9ndWVzc2VzKTogTGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfc3NlX3VuaXRfaW5pdCk6 IExpa2V3aXNlLgorKwkoZ2RiYXJjaF90ZGVwKTogQWRkIHNzZV91bml0LgorKwkoSTM4Nl9NQVhf UkVHSVNURVJfU0laRSk6IEluY3JlYXNlIHRvIDMyLgorKworKwkqIGkzODctdGRlcC5jIChpMzg3 X3N1cHBseV9meHNhdmUpOiBBc3NlcnQgc3NlX3VuaXQgb24gU1NFCisrCXJlZ2lzdGVycy4KKysK KysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC1saW51eC5kYXQ6IE5ldy4KKysJKiByZWdmb3Jt YXRzL3JlZy1pMzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02 NC1hdngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQtYXZ4 LmRhdDogTGlrZXdpc2UuCisrCisrCSogcmVnZm9ybWF0cy9yZWcteDg2LTY0LmRhdDogQWRkIHht bGFyY2guCistLS0gLi9nZGIvQ2hhbmdlTG9nLnBzZXVkbwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL0NoYW5nZUxvZy5wc2V1ZG8JMjAxMC0wNC0wMyAyMTox MjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTg5IEBACisrMjAxMC0wMi0yNSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X21t eF9yZWdudW1fcCk6IE9wdGltaXplZC4KKysJKGkzODZfYnl0ZV9yZWdudW1fcCk6IExpa2V3aXNl LgorKwkoaTM4Nl93b3JkX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X2R3b3JkX3JlZ251 bV9wKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBN aW5pbWl6ZSBmdW5jdGlvbgorKwljYWxscy4KKysKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfcmVnaXN0ZXJfcmVn Z3JvdXBfcCk6IERvbid0IGluY2x1ZGUgcHNldWRvCisrCXJlZ2lzdGVycywgZXhjZXB0IGZvciBN WFgsIGluIGFueSByZWdpc3RlciBncm91cHMuCisrCisrMjAxMC0wMi0xOCAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5p dCk6IFNldCBtbTBfcmVnbnVtIG9ubHkgb25jZS4KKysKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9wc2V1ZG9f cmVnaXN0ZXJfbmFtZSk6IERvbid0IGNoZWNrIE1NWAorKwlwc2V1ZG8gcmVnaXN0ZXJzLiAgQ2Fs bCBpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lLgorKwkoYW1kNjRfaW5pdF9hYmkpOiBSZXN0b3Jl IG51bV94bW1fcmVncy4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9tbXhfbmFtZXMpOiBNYWtl IGl0IHN0YXRpYy4KKysJKGkzODZfbW14X3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X3Bz ZXVkb19yZWdpc3Rlcl9uYW1lKTogTWFrZSBpdCBnbG9iYWwuCisrCisrCSogaTM4Ni10ZGVwLmgg KGkzODZfbW14X3JlZ251bV9wKTogUmVtb3ZlZC4KKysJKGkzODZfbW14X25hbWVzKTogTGlrZXdp c2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogTmV3LgorKworKzIwMTAtMDItMTgg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4 Nl9nZGJhcmNoX2luaXQpOiBDYWxsIHNldF9nZGJhcmNoX251bV9wc2V1ZG9fcmVncworKwliZWZv cmUgdGRlc2NfdXNlX3JlZ2lzdGVycy4KKysKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfcHNldWRvX3JlZ2lzdGVy X3JlYWQpOiBDaGVjayBpbnZhbGlkCisrCXJlZ2lzdGVyIG51bWJlci4KKysJKGkzODZfcHNldWRv X3JlZ2lzdGVyX3dyaXRlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xOCAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfcHNldWRvX3Jl Z2lzdGVyX3JlYWQpOiBOZXcuCisrCShhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUpOiBMaWtl d2lzZS4KKysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJjaF9wc2V1ZG9fcmVnaXN0 ZXJfcmVhZCBhbmQKKysJc2V0X2dkYmFyY2hfcHNldWRvX3JlZ2lzdGVyX3dyaXRlLgorKworKwkq IGkzODYtdGRlcC5jIChpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTWFrZSBpdCBnbG9iYWwu CisrCURvbid0IGhhbmRsZSA2NGJpdCBub3IgRFdPUkQuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rl cl93cml0ZSk6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2X3BzZXVkb19yZWdp c3Rlcl9yZWFkKTogTmV3LgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUpOiBMaWtld2lz ZS4KKysKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogYW1kNjQtdGRlcC5jIChhbWQ2NF9ieXRlX25hbWVzKTogTWFrZSBpdCBzdGF0aWMuCisrCShh bWQ2NF93b3JkX25hbWVzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9kd29yZF9uYW1lcyk6IExpa2V3 aXNlLgorKwkoYW1kNjRfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBOZXcuCisrCShhbWQ2NF9pbml0 X2FiaSk6IFNldCBudW1fYnl0ZV9yZWdzLCBudW1fd29yZF9yZWdzLCBudW1fZHdvcmRfcmVncwor KwlhbmQgbnVtX21teF9yZWdzLiAgQ2FsbCBzZXRfdGRlc2NfcHNldWRvX3JlZ2lzdGVyX25hbWUu CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfbW14X25hbWVzKTogTWFrZSBpdCBnbG9iYWwuCisr CShpMzg2X21teF9yZWdudW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl9ieXRlX3JlZ251bV9wKTog TGlrZXdpc2UuCisrCShpMzg2X3dvcmRfcmVnbnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfZHdv cmRfcmVnbnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX25hbWUpOiBS ZW1vdmUgWEJGRDY0LgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCk6IFJlbW92ZSBCRkQ2 NC4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTogTGlrZXdpc2UuCisrCShpMzg2X2dk YmFyY2hfaW5pdCk6IE1vdmUgc2V0X2dkYmFyY2hfcHNldWRvX3JlZ2lzdGVyX3JlYWQgYW5kCisr CXNldF9nZGJhcmNoX3BzZXVkb19yZWdpc3Rlcl93cml0ZSBiZWZvcmUgZ2RiYXJjaF9pbml0X29z YWJpLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2X2J5dGVfcmVnbnVtX3ApOiBOZXcuCisrCShp Mzg2X3dvcmRfcmVnbnVtX3ApOiBMaWtld2lzZS4KKysJKGkzODZfZHdvcmRfcmVnbnVtX3ApOiBM aWtld2lzZS4KKysJKGkzODZfbW14X3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X21teF9u YW1lcyk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKEFNRDY0X05VTV9SRUdTKTogUmVzdG9yZWQu CisrCisrCSogYW1kNjQtdGRlcC5oIChBTUQ2NF9OVU1fR1JFR1MpOiBSZW1vdmVkLgorKworKzIw MTAtMDItMTAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10 ZGVwLmMgKEFNRDY0X05VTV9SRUdTKTogUmVtb3ZlZC4KKysKKysJKiBhbWQ2NC10ZGVwLmggKEFN RDY0X05VTV9HUkVHUyk6IE5ldy4KKysKKysJKiBpMzg2LW50by10ZGVwLmMgKGkzODZudG9fcmVn c2V0X2lkKTogUmVwbGFjZSBJMzg2X05VTV9GUkVHUworKwl3aXRoIEkzODdfTlVNX1JFR1MuCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfZ28zMl9pbml0X2FiaSk6IExpa2V3aXNlLgorKwkoaTM4Nl9n ZGJhcmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuaCAoaTM4Nl9yZWdudW0p OiBBZGQgSTM4Nl9NWENTUl9SRUdOVU0uCisrCShJMzg2X05VTV9GUkVHUyk6IFJlbW92ZWQuCisr CShJMzg2X1NTRV9OVU1fUkVHUyk6IERlZmluZWQgd2l0aCBJMzg2X01YQ1NSX1JFR05VTS4KKysK KysJKiBpMzg3LXRkZXAuaCAoSTM4N19OVU1fUkVHUyk6IE5ldy4KKysKKysyMDEwLTAyLTEwICBI LkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2 NF9pbml0X2FiaSk6IERvbid0IHNldCBudW1feG1tX3JlZ3MuCisrCisrMjAxMC0wMi0wOSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAo YW1kNjRfbGludXhfcmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IENhbGwKKysJaTM4Nl9yZWdpc3Rlcl9y ZWdncm91cF9wIGluc3RlYWQgb2YgZGVmYXVsdF9yZWdpc3Rlcl9yZWdncm91cF9wLgorKworKwkq IGFtZDY0LXRkZXAuYyAoYW1kNjRfbnVtX3BzZXVkb19yZWdzKTogUmVtb3ZlZC4KKysJKGFtZDY0 X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcHNldWRvX3JlZ3MuIERvbid0 CisrCXNldCBtbTBfcmVnbnVtLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X251bV9tbXhfcmVn cyk6IFJlbW92ZWQuCisrCShpMzg2X251bV9wc2V1ZG9fcmVncyk6IExpa2V3aXNlLgorKwkoaTM4 Nl9tbXhfcmVnbnVtX3ApOiBVcGRhdGVkLgorKwkoaTM4Nl9yZWdpc3Rlcl9yZWdncm91cF9wKTog RG9uJ3QgaW5jbHVkZSBwc2V1ZG8gYnl0ZSwgd29yZCwKKysJZHdvcmQgcmVnaXN0ZXJzIGluIGdl bmVyYWxfcmVnZ3JvdXAuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IFVwZGF0ZWQuCisrCisrCSog aTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IEFkZCBudW1fbW14X3JlZ3MuCisrCisrMjAxMC0w Mi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAu YyAoYW1kNjRfd29yZF9uYW1lcyk6IEFkZCBhIG1pc3NpbmcgJywnLgorKwkoYW1kNjRfZHdvcmRf bmFtZXMpOiBOZXcuCisrCShhbWQ2NF9udW1fcHNldWRvX3JlZ3MpOiBVcGRhdGVkLgorKworKwkq IGFtZDY0LXRkZXAuaCAoYW1kNjRfZHdvcmRfbmFtZXMpOiBOZXcuCisrCisrCSogaTM4Ni10ZGVw LmMgKGkzODZfZHdvcmRfcmVnbnVtX3ApOiBOZXcuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9u YW1lKTogVXNlIGkzODZfZHdvcmRfcmVnbnVtX3AuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl90 eXBlKTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTGlrZXdpc2Uu CisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9nZGJh cmNoX2luaXQpOiBTZXQgbnVtX2R3b3JkX3JlZ3MgYW5kIGVheF9yZWdudW0uCisrCisrMjAxMC0w Mi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5j IChpMzg2X2dkYmFyY2hfaW5pdCk6IE9wdGltaXplZC4KKysKKysyMDEwLTAyLTA4ICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9ieXRl X25hbWVzKTogTmV3LgorKwkoYW1kNjRfd29yZF9uYW1lcyk6IExpa2V3aXNlLgorKwkoYW1kNjRf bnVtX3BzZXVkb19yZWdzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9pbml0X2FiaSk6IENhbGwgc2V0 X2dkYmFyY2hfbnVtX3BzZXVkb19yZWdzIHdpdGgKKysJYW1kNjRfbnVtX3BzZXVkb19yZWdzLAor KworKwkqIGFtZDY0LXRkZXAuaCAoYW1kNjRfYnl0ZV9uYW1lcyk6IE5ldy4KKysJKGFtZDY0X3dv cmRfbmFtZXMpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9udW1fYnl0ZV9y ZWdzKTogUmVtb3ZlZC4KKysJKGkzODZfbnVtX3dvcmRfcmVncyk6IExpa2V3aXNlLgorKwkoaTM4 Nl9ieXRlX3JlZ251bV9wKTogVXBkYXRlZC4KKysJKGkzODZfd29yZF9yZWdudW1fcCk6IExpa2V3 aXNlLgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IFN1cHBvcnQgNjRiaXQuCisrCShp Mzg2X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19yZWdp c3Rlcl93cml0ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDggIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9ieXRlX25hbWVzKTogTmV3 LgorKwkoaTM4Nl93b3JkX25hbWVzKTogTGlrZXdpc2UuCisrCShpMzg2X251bV9ieXRlX3JlZ3Mp OiBMaWtld2lzZS4KKysJKGkzODZfbnVtX3dvcmRfcmVncyk6IExpa2V3aXNlLgorKwkoaTM4Nl9u dW1fcHNldWRvX3JlZ3MpOiBMaWtld2lzZS4KKysJKGkzODZfYnl0ZV9yZWdudW1fcCk6IExpa2V3 aXNlLgorKwkoaTM4Nl93b3JkX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19y ZWdpc3Rlcl9uYW1lKTogSGFuZGxlIGJ5dGUgYW5kIHdvcmQgcHNldWRvLXJlZ2lzdGVycy4KKysJ KGkzODZfcHNldWRvX3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3Jl Z2lzdGVyX3JlYWQpOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3dyaXRlKTog TGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IENhbGwgc2V0X2dkYmFyY2hfbnVtX3Bz ZXVkb19yZWdzIHdpdGgKKysJaTM4Nl9udW1fcHNldWRvX3JlZ3MuICBTZXQgbnVtX2J5dGVfcmVn cywgbnVtX3dvcmRfcmVncywKKysJYWxfcmVnbnVtLCBheF9yZWdudW0uICBQdXQgTU1YIHBzZXVk by1yZWdpc3RlcnMgYWZ0ZXIgd29yZAorKwlwc2V1ZG8tcmVnaXN0ZXJzLgorKworKwkqIGkzODYt dGRlcC5oIChnZGJhcmNoX3RkZXApOiBBZGQgbnVtX2J5dGVfcmVncywgYWxfcmVnbnVtLAorKwlu dW1fd29yZF9yZWdzLCBheF9yZWdudW0sIG51bV9kd29yZF9yZWdzIGFuZCBlYXhfcmVnbnVtLgor LS0tIC4vZ2RiL0NoYW5nZUxvZy54Y3IJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyAuL2dkYi9DaGFuZ2VMb2cueGNyCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDEzMDQgQEAKKysyMDEwLTA0LTAyICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X3Jl YWRfZGVzY3JpcHRpb24pOiBDYWxsCisrCWkzODZfbGludXhfdXBkYXRlX3hzdGF0ZXJlZ3NldC4K KysKKysyMDEwLTA0LTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog aTM4Ni10ZGVwLmMgKGkzODZfcHJvY2Vzc19yZWNvcmQpOiBSZXBsYWNlIGkzODZfc3NlX3JlZ251 bV9wCisrCXdpdGggaTM4Nl94bW1fcmVnbnVtX3AuCisrCisrMjAxMC0wMy0yOCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9s aW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogQ2FsbAorKwlhbWQ2NF9saW51eF91cGRhdGVfeHN0YXRl cmVnc2V0IGluc3RlYWQgb2YKKysJaTM4Nl9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0LgorKwor KwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoYW1kNjRfbGludXhfcmVnc2V0X3NlY3Rpb25zKTogTWFr ZSBpdAorKwlzdGF0aWMuCisrCShhbWQ2NF9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0KTogTmV3 LgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuaCAoYW1kNjRfbGludXhfcmVnc2V0X3NlY3Rpb25z KTogUmVtb3ZlZC4KKysJKGFtZDY0X2xpbnV4X3VwZGF0ZV94c3RhdGVyZWdzZXQpOiBOZXcuCisr CisrCSogaTM4Ni1saW51eC1uYXQuYyAoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogUmVt b3ZlCisrCWkzODZfbGludXhfcmVnc2V0X3NlY3Rpb25zIGZyb20gaTM4Nl9saW51eF91cGRhdGVf eHN0YXRlcmVnc2V0LgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X3JlZ3Nl dF9zZWN0aW9ucyk6IE1ha2UgaXQKKysJc3RhdGljLgorKwkoaTM4Nl9saW51eF91cGRhdGVfeHN0 YXRlcmVnc2V0KTogUmVtb3ZlIHJlZ3NldF9zZWN0aW9ucy4gIFVzZQorKwlpMzg2X2xpbnV4X3Jl Z3NldF9zZWN0aW9ucy4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4Nl9saW51eF9yZWdz ZXRfc2VjdGlvbnMpOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0 KTogUmVtb3ZlIHJlZ3NldF9zZWN0aW9ucy4KKysJaTM4Nl9saW51eF9yZWdzZXRfc2VjdGlvbnMu CisrCisrMjAxMC0wMy0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGkzODYtbGludXgtbmF0LmMgKGZldGNoX3hzdGF0ZXJlZ3MpOiBEb24ndCBjYXN0ICZpb3YgdG8g aW50LgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9yZWFk X2Rlc2NyaXB0aW9uKTogRG9uJ3QgY2FzdCAmaW92IHRvIGxvbmcuCisrCisrMjAxMC0wMy0yOCAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5o IChJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUKTogVXBkYXRlCisrCWNvbW1lbnRzLgorKwor KzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2 NC1saW51eC1uYXQuYyAoeHN0YXRlX3NpemUpOiBSZW1vdmVkLgorKwkoYW1kNjRfbGludXhfZmV0 Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzKTogUmVwbGFjZSB4c3RhdGVfc2l6ZQorKwl3aXRoIEkzODZf WFNUQVRFX01BWF9TSVpFLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJz KTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogVXBkYXRlZC4K KysKKysJKiBpMzg2LWxpbnV4LW5hdC5jICh4c3RhdGVfc2l6ZSk6IFJlbW92ZWQuCisrCShmZXRj aF94c3RhdGVyZWdzKTogUmVwbGFjZSB4c3RhdGVfc2l6ZSB3aXRoCisrCUkzODZfWFNUQVRFX01B WF9TSVpFLgorKwkoZmV0Y2hfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9y ZWFkX2Rlc2NyaXB0aW9uKTogVXBkYXRlZC4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuaCAo STM4Nl9YU1RBVEVfTUFYX1NJWkUpOiBOZXcuCisrCisrMjAxMC0wMy0yOCAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51 eF9yZWFkX2Rlc2NyaXB0aW9uKTogUmVwbGFjZQorKwl1bnNpZ25lZCBsb25nIGxvbmcgd2l0aCB1 aW50NjRfdC4KKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2NvcmVfcmVhZF9k ZXNjcmlwdGlvbik6CisrCUxpa2V3aXNlLgorKwkqIGkzODYtbGludXgtbmF0LmMgKGkzODZfbGlu dXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgtdGRlcC5oIChp Mzg2X2xpbnV4X2NvcmVfcmVhZF94Y3IwKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC10 ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX3hjcjApOiBSZXBsYWNlCisrCXVuc2lnbmVkIGxv bmcgbG9uZyB3aXRoIHVpbnQ2NF90LiAgRG9uJ3QgYXNzZXJ0IHNlY3Rpb24gc2l6ZS4KKysJKGkz ODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogUmVwbGFjZSB1bnNpZ25lZCBsb25nIGxv bmcKKysJd2l0aCB1aW50NjRfdC4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl95bW1fdHlwZSk6 IEZpeCB0eXBvcyBpbiBjb21tZW50cy4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3JlYWQpOiBD aGFuZ2UgMTZieXRlIHRvIDEyOGJpdHMgaW4KKysJY29tbWVudHMuCisrCShpMzg2X3ZhbGlkYXRl X3RkZXNjX3ApOiBVcGRhdGUgY29tbWVudHMuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IExpa2V3 aXNlLgorKworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBSZXBsYWNlIHVuc2lnbmVk IGxvbmcgbG9uZyB3aXRoCisrCXVpbnQ2NF90LiAgUmVwbGFjZSBnZGIgd2l0aCBHREIgaW4gY29t bWVudHMuCisrCisrMjAxMC0wMy0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IFJlcGxhY2UgIng4Nj14bWwi IHdpdGgKKysJInhtbFJlZ2lzdGVycysiLgorKworKzIwMTAtMDMtMTIgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoeHN0YXRlX3NpemVf bl9vZl9pbnQ2NCk6IFJlbW92ZWQuCisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdp c3RlcnMpOiBVcGRhdGVkLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJz KTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2Uu CisrCisrCSogaTM4Ni1saW51eC1uYXQuYyAoeHN0YXRlX3NpemVfbl9vZl9pbnQ2NCk6IFJlbW92 ZWQuCisrCShmZXRjaF94c3RhdGVyZWdzKTogVXBkYXRlZC4KKysJKHN0b3JlX3hzdGF0ZXJlZ3Mp OiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgor KworKzIwMTAtMDMtMTIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBh bWQ2NC1saW51eC1uYXQuYzogSW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIuCisrCShQVFJBQ0VfR0VU UkVHU0VUKTogTmV3LgorKwkoUFRSQUNFX1NFVFJFR1NFVCk6IExpa2V3aXNlLgorKwkqIGkzODYt bGludXgtbmF0LmM6IExpa2V3aXNlLgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYzogSW5jbHVk ZSAiaTM4Ni14c3RhdGUuaCIuCisrCisrCSogY29uZmlnL2kzODYvbGludXg2NC5taCAoTkFUX0ZJ TEUpOiBTZXQgdG8gY29uZmlnL25tLWxpbnV4LmguCisrCisrCSogY29uZmlnL2kzODYvbm0tbGlu dXguaDogRG9uJ3QgaW5jbHVkZQorKwkiY29uZmlnL2kzODYvbm0tbGludXgteHN0YXRlLmgiLgor KworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oOiBSZW1vdmVkLgorKwkqIGNvbmZp Zy9pMzg2L25tLWxpbnV4NjQuaDogTGlrZXdpc2UuCisrCisrMjAxMC0wMy0xMiAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctdGRlcC5jIChpMzg3X3N1cHBseV94 c2F2ZSk6IFJlcGxhY2UgSTM4Nl9YU1RBVEVfTUFYX01BU0sKKysJd2l0aCBJMzg2X1hTVEFURV9B VlhfTUFTSy4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuaCAoSTM4Nl9YU1RBVEVfTUFYX01B U0spOiBSZW1vdmVkLgorKwkoSTM4Nl9YU1RBVEVfTUFYX1NJWkUpOiBMaWtld2lzZS4KKysKKysy MDEwLTAzLTEyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10 ZGVwLmMgKGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IFJlcGxhY2UKKysJYml0X0kzODZfWFNU QVRFX1hYWCB3aXRoIEkzODZfWFNUQVRFX1hYWC4KKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBw bHlfeHNhdmUpOiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgor KworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oIChiaXRfSTM4Nl9YU1RBVEVfWFhYKTogUmVuYW1l ZCB0byAuLi4KKysJKEkzODZfWFNUQVRFX1hYWCk6IFRoaXMuCisrCShJMzg2X1hTVEFURV9YWFhf TUFTSyk6IFJlcGxhY2UgYml0X0kzODZfWFNUQVRFX1hYWCB3aXRoCisrCUkzODZfWFNUQVRFX1hY WC4KKysJKEkzODZfWFNUQVRFX1NJWkUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAzLTA3ICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9k d2FyZl9yZWdfdG9fcmVnbnVtKTogUmV0dXJuICV5bW1OCisrCXJlZ2lzdGVyIG51bWJlciBmb3Ig JXhtbU4gaWYgQVZYIGlzIGF2YWlsYWJsZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl94bW1f cmVnbnVtX3ApOiBNYWtlIGl0IGdsb2JhbC4KKysJKGkzODZfZGJ4X3JlZ190b19yZWdudW0pOiBS ZXR1cm4gJXltbU4gcmVnaXN0ZXIgbnVtYmVyIGZvcgorKwkleG1tTiBpZiBBVlggaXMgYXZhaWxh YmxlLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2X3htbV9yZWdudW1fcCk6IE5ldy4KKysKKysy MDEwLTAzLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQt dGRlcC5jIChhbWQ2NF9pbml0X2FiaSk6IFJlcGxhY2UgQU1ENjRfQVZYX05VTV9SRUdTCisrCXdp dGggQU1ENjRfTlVNX1JFR1MuCisrCisrCSogYW1kNjQtdGRlcC5oIChBTUQ2NF9BVlhfTlVNX1JF R1MpOiBSZW5hbWVkIHRvIC4uLgorKwkoQU1ENjRfTlVNX1JFR1MpOiBUaGlzLgorKworKwkqIGkz ODYtbGludXgtbmF0LmMgKEdFVEZQWFJFR1NfU1VQUExJRVMpOiBSZXBsYWNlCisrCUkzODZfQVZY X05VTV9SRUdTIHdpdGggSTM4Nl9TU0VfTlVNX1JFR1MuCisrCShHRVRYU1RBVEVSRUdTX1NVUFBM SUVTKTogTmV3LgorKwkoaTM4Nl9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBVc2Ug R0VUWFNUQVRFUkVHU19TVVBQTElFUy4KKysJKGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVn aXN0ZXJzKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMy0wNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X2dyZWdzZXRf cmVnX29mZnNldCk6IENvdW50IDgKKysJdXBwZXIgWU1NIHJlZ2lzdGVycy4KKysKKysyMDEwLTAz LTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMg KGkzODZfcmVnaXN0ZXJfcmVnZ3JvdXBfcCk6IEZvciBhbGxfZ3JvdXAsIGRvbid0CisrCWluY2x1 ZGUgdXBwZXIgWU1NIHJlZ2lzdGVycyBub3IgWE1NIHJlZ2lzdGVycyB3aGVuIEFWWCBpcworKwlz dXBwb3J0ZWQuCisrCisrMjAxMC0wMy0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29t PgorKworKwkqIGkzODctdGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBSZXBsYWNlIHJlZ2Nh Y2hlX3Jhd19yZWFkCisrCXdpdGggcmVnY2FjaGVfcmF3X2NvbGxlY3QuCisrCisrMjAxMC0wMy0w NSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChp Mzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBEb24ndCByZXR1cm4gMAorKwlmb3IgdXBwcGVyIFlN TSBub3IgWE1NIHJlZ2lzdGVycy4KKysKKysJKiBpMzg3LXRkZXAuYyAoeHNhdmVfc3NlX29mZnNl dCk6IFJlbW92ZWQuCisrCShYU0FWRV9TU0VfQUREUik6IExpa2V3aXNlLgorKwkoaTM4N19zdXBw bHlfeHNhdmUpOiBSZXBsYWNlIFhTQVZFX1NTRV9BRERSIHdpdGggRlhTQVZFX0FERFIuCisrCShp Mzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4gIFJlcGxhY2UgdGhlIHNlY29uZAorKwlyZWdj YWNoZV9yYXdfY29sbGVjdCB3aXRoIG1lbWNweS4KKysKKysyMDEwLTAzLTA1ICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKHhzYXZlX29mZnNldCk6 IFJlbW92ZWQuCisrCShYU0FWRV9BRERSKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9zc2Vfb2Zmc2V0 KTogTmV3LgorKwkoWFNBVkVfU1NFX0FERFIpOiBMaWtld2lzZS4KKysJKHhzYXZlX2F2eGhfb2Zm c2V0KTogTGlrZXdpc2UuCisrCShYU0FWRV9BVlhIX0FERFIpOiBMaWtld2lzZS4KKysJKGkzODdf c3VwcGx5X3hzYXZlKTogVXBkYXRlZC4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNl LgorKworKzIwMTAtMDMtMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNhdmUpOiBGaXggdHlwb3MuCisrCShpMzg3X2Nv bGxlY3RfeHNhdmUpOiBQcm9wZXJseSBoYW5kbGUgZ2NvcmUuCisrCisrMjAxMC0wMy0wNSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChh bWQ2NF9saW51eF9ncmVnc2V0NjRfcmVnX29mZnNldCk6IENvdW50CisrCTE2IHVwcGVyIFlNTSBy ZWdpc3RlcnMuCisrCShhbWQ2NF9saW51eF9ncmVnc2V0MzJfcmVnX29mZnNldCk6IENvdW50IDgg dXBwZXIgWU1NIHJlZ2lzdGVycy4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmggKEFNRDY0X0xJ TlVYX09SSUdfUkFYX1JFR05VTSk6IFJlcGxhY2UKKysJQU1ENjRfTVhDU1JfUkVHTlVNIHdpdGgg QU1ENjRfWU1NMTVIX1JFR05VTS4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X3NzZV9yZWdp c3Rlcl9uYW1lcyk6IFJlbmFtZWQgdG8gLi4uCisrCShhbWQ2NF9yZWdpc3Rlcl9uYW1lcyk6IFRo aXMuCisrCShhbWQ2NF9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmVkLgorKwkoYW1kNjRfeG1t X25hbWVzKTogTGlrZXdpc2UuCisrCShBTUQ2NF9OVU1fUkVHUyk6IExpa2V3aXNlLgorKwkoYW1k NjRfeW1tX25hbWVzKTogTmV3LgorKwkoYW1kNjRfeW1taF9uYW1lcyk6IExpa2V3aXNlLgorKwko YW1kNjRfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorKwkoYW1kNjRfcHNldWRvX3JlZ2lzdGVy X25hbWUpOiBSZW1vdmUgaTM4Nl94bW1fcmVnbnVtX3AuICBBZGQKKysJaTM4Nl95bW1fcmVnbnVt X3AuCisrCShhbWQ2NF9pbml0X2FiaSk6IFNldCB5bW1oX3JlZ2lzdGVyX25hbWVzLCBudW1feW1t X3JlZ3MKKysJYW5kIHltbTBoX3JlZ251bS4gIENhbGwgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfbmFt ZS4gIFJlcGxhY2UKKysJbnVtX3ZlY3Rvcl9yZWdzIHdpdGggbnVtX3htbV9yZWdzLiAgUmVwbGFj ZSBBTUQ2NF9OVU1fUkVHUworKwl3aXRoIEFNRDY0X0FWWF9OVU1fUkVHUy4KKysKKysJKiBhbWQ2 NC10ZGVwLmggKGFtZDY0X3JlZ251bSk6IEFkZCBBTUQ2NF9ZTU0wSF9SRUdOVU0gYW5kCisrCUFN RDY0X1lNTTE1SF9SRUdOVU0uCisrCShBTUQ2NF9BVlhfTlVNX1JFR1MpOiBOZXcuCisrCShhbWQ2 NF9yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlZC4KKysJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBMaWtl d2lzZS4KKysKKysJKiBpMzg2LWRhcndpbi10ZGVwLmMgKGkzODZfZGFyd2luX2luaXRfYWJpKTog UmVwbGFjZQorKwludW1fdmVjdG9yX3JlZ3Mgd2l0aCBudW1feG1tX3JlZ3MuCisrCisrCSogaTM4 Ni1saW51eC1uYXQuYyAocmVnbWFwKTogQ291bnQgOCB1cHBlciBZTU0gcmVnaXN0ZXJzLgorKwko R0VURlBYUkVHU19TVVBQTElFUyk6IFJlcGxhY2UgSTM4Nl9TU0VfTlVNX1JFR1Mgd2l0aAorKwlJ Mzg2X0FWWF9OVU1fUkVHUy4KKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoSTM4Nl9MSU5VWF9PUklH X0VBWF9SRUdOVU0pOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LW50by10ZGVwLmMgKGkzODZudG9f cmVnaXN0ZXJfYXJlYSk6IFJlcGxhY2UKKysJSTM4N19WRUNUT1IwX1JFR05VTSB3aXRoIEkzODdf WE1NMF9SRUdOVU0uCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfc3NlX3JlZ2lzdGVyX25hbWVz KTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZXMpOiBUaGlzLgorKwkoaTM4 Nl9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmVkLgorKwkoaTM4Nl94bW1fbmFtZXMpOiBMaWtl d2lzZS4KKysJKGkzODZfdmVjdG9yX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X3htbV90 eXBlKTogTGlrZXdpc2UuCisrCSgpOiBMaWtld2lzZS4KKysJKCk6IExpa2V3aXNlLgorKwkoaTM4 Nl95bW1fbmFtZXMpOiBOZXcuCisrCShpMzg2X3ltbWhfbmFtZXMpOiBMaWtld2lzZS4KKysJKGkz ODZfeW1taF9yZWdudW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl95bW1fcmVnbnVtX3ApOiBMaWtl d2lzZS4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IExpa2V3aXNlLgorKwkoaTM4Nl95bW1fdHlw ZSk6IExpa2V3aXNlLgorKwkoKTogTGlrZXdpc2UuCisrCShpMzg2X214Y3NyX3JlZ251bV9wKTog UmVwbGFjZSBJMzg3X1ZFQ1RPUjBfUkVHTlVNIHdpdGgKKysJSTM4N19YTU0wX1JFR05VTS4KKysJ KGkzODZfZGJ4X3JlZ190b19yZWdudW0pOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lz dGVyX25hbWUpOiBSZW1vdmUgaTM4Nl94bW1fcmVnbnVtX3AuICBBZGQKKysJaTM4Nl95bW1fcmVn bnVtX3AuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisrCShpMzg2 X3BzZXVkb19yZWdpc3Rlcl9yZWFkKTogTGlrZXdpc2UuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rl cl93cml0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9nbzMyX2luaXRfYWJpKTogUmVwbGFjZSBudW1f dmVjdG9yX3JlZ3Mgd2l0aCBudW1feG1tX3JlZ3MuCisrCShpMzg2X3JlZ2lzdGVyX3JlZ2dyb3Vw X3ApOiBSZXBsYWNlIGkzODZfdmVjdG9yX3JlZ251bV9wLiBBZGQKKysJaTM4Nl95bW1fcmVnbnVt X3AuCisrCShpMzg2X3ZhbGlkYXRlX3RkZXNjX3ApOiBHZXQgU1NFIHJlZ2lzdGVycy4gIFRyeSBB VlggcmVnaXN0ZXJzLgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBSZXBsYWNlIG51bV92ZWN0b3Jf cmVncyB3aXRoIG51bV94bW1fcmVncy4KKysJQ2FsbCBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1l LiAgUmVwbGFjZSBJMzg2X1NTRV9OVU1fUkVHUworKwl3aXRoIEkzODZfQVZYX05VTV9SRUdTLiAg U2V0IHltbWhfcmVnaXN0ZXJfbmFtZXMsIHltbTBoX3JlZ251bSwKKysJbnVtX3ltbV9yZWdzIGFu ZCB5bW0wX3JlZ251bS4gIENhbGwgc2V0X2dkYmFyY2hfcXN1cHBvcnRlZAorKwl3aXRoICJ4ODY9 eG1sIi4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogQWRkIG51bV95bW1fcmVn cywgeW1tMF9yZWdudW0sCisrCXltbTBoX3JlZ251bSwgeW1taF9yZWdpc3Rlcl9uYW1lcyBhbmQg aTM4Nl95bW1fdHlwZS4gIFJlbW92ZQorKwl4bW0wX3JlZ251bSwgbnVtX3ZlY3Rvcl9yZWdzIGFu ZCBpMzg2X3htbV90eXBlLgorKwkoaTM4Nl9yZWdudW0pOiBBZGQgSTM4Nl9ZTU0wSF9SRUdOVU0g YW5kIEkzODZfWU1NN0hfUkVHTlVNLgorKwkoSTM4Nl9BVlhfTlVNX1JFR1MpOiBOZXcuCisrCShp Mzg2X3ltbV9yZWdudW1fcCk6IExpa2V3aXNlLgorKwkoaTM4Nl95bW1oX3JlZ251bV9wKTogTGlr ZXdpc2UuCisrCShJMzg2X01BWF9SRUdJU1RFUl9TSVpFKTogQ2hhbmdlZCB0byAxNi4KKysJKGkz ODZfeG1tX3JlZ251bV9wKTogUmVtb3ZlZC4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBw bHlfZnNhdmUpOiBSZXBsYWNlIEkzODdfVkVDVE9SMF9SRUdOVU0KKysJd2l0aCBJMzg3X1hNTTBf UkVHTlVNLgorKwkoaTM4N19jb2xsZWN0X2ZzYXZlKTogTGlrZXdpc2UuCisrCShpMzg3X3N1cHBs eV9meHNhdmUpOiBSZXBsYWNlIEkzODdfVkVDVE9SMF9SRUdOVU0vbnVtX3ZlY3Rvcl9yZWdzCisr CXdpdGggSTM4N19YTU0wX1JFR05VTS9udW1fdmVjdG9yX3JlZ3MuCisrCShpMzg3X2NvbGxlY3Rf ZnhzYXZlKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9zc2Vfb2Zmc2V0KTogUmVtb3ZlZC4KKysJKFhT QVZFX1NTRV9BRERSKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9hdnhoX29mZnNldCk6IExpa2V3aXNl LgorKwkoWFNBVkVfQVZYSF9BRERSKTogTGlrZXdpc2UuCisrCSh4c2F2ZV9vZmZzZXQpOiBOZXcu CisrCShYU0FWRV9BRERSKTogTGlrZXdpc2UuCisrCShpMzg3X3N1cHBseV94c2F2ZSk6IFJld3Jp dGUuCisrCShpMzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4KKysKKysJKiBpMzg3LXRkZXAu aCAoSTM4N19OVU1fVkVDVE9SX1JFR1MpOiBSZW5hbWVkIHRvIC4uLgorKwkoSTM4N19OVU1fWE1N X1JFR1MpOiBUaGlzLgorKwkoSTM4N19OVU1fWU1NX1JFR1MpOiBOZXcuCisrCShJMzg3X1lNTTBI X1JFR05VTSk6IExpa2V3aXNlLgorKwkoSTM4N19WRUNUT1IwX1JFR05VTSk6IFJlbmFtZWQgdG8g Li4uCisrCShJMzg3X1hNTTBfUkVHTlVNKTogVGhpcy4KKysJKEkzODdfTVhDU1JfUkVHTlVNKTog VXBkYXRlZC4KKysJKEkzODdfWU1NRU5ESF9SRUdOVU0pOiBOZXcuCisrCisrMjAxMC0wMy0wNSAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGZlYXR1cmVzL2kzODYvMzJi aXQtYXZ4LnhtbDogT25seSBkZWZpbmUgdXBwZXIgWU1NIHJlZ2lzdGVycy4KKysJKiBmZWF0dXJl cy9pMzg2LzY0Yml0LWF2eC54bWw6IExpa2V3aXNlLgorKworKwkqIGZlYXR1cmVzL2kzODYvYW1k NjQtYXZ4LWxpbnV4LnhtbDogSW5jbHVkZSA2NGJpdC1zc2UueG1sLgorKwkqIGZlYXR1cmVzL2kz ODYvYW1kNjQtYXZ4LnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2 eC1saW51eC54bWw6IEluY2x1ZGUgMzJiaXQtc3NlLnhtbC4KKysJKiBmZWF0dXJlcy9pMzg2L2kz ODYtYXZ4LnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngtbGlu dXguYzogUmVnZW5lcmF0ZWQuCisrCSogZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdnguYzogTGlrZXdp c2UuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC5jOiBMaWtld2lzZS4KKysJKiBm ZWF0dXJlcy9pMzg2L2kzODYtYXZ4LmM6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvaTM4Ni9h bWQ2NC1hdngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL2kzODYvYW1kNjQt YXZ4LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LWxpbnV4LmRh dDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LmRhdDogTGlrZXdpc2Uu CisrCisrMjAxMC0wMy0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkq IGkzODYtbGludXgtdGRlcC5oIChYU0FWRV9YQ1IwX09GRlNFVCk6IFJlbmFtZWQgdG8gLi4uCisr CShJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUKTogVGhpcy4KKysJKiBhbWQ2NC1saW51eC10 ZGVwLmMgKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogVXBkYXRlZC4KKysJKiBpMzg2LWxpbnV4LXRk ZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfeGNyMCk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51 eF9pbml0X2FiaSk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDIgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2lu aXRfYWJpKTogU2V0IHhzYXZlX3hjcjBfb2Zmc2V0LgorKwkqIGkzODYtbGludXgtdGRlcC5jIChp Mzg2X2xpbnV4X2luaXRfYWJpKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZf Z2RiYXJjaF9pbml0KTogU2V0IHhzYXZlX3hjcjBfb2Zmc2V0IHRvIC0xLgorKworKwkqIGkzODct dGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBVcGRhdGVkLgorKworKwkqIGkzODctdGRlcC5o IChYU0FWRV9YQ1IwX09GRlNFVCk6IE1vdmVkIHRvIC4uLgorKwkqIGkzODYtbGludXgtdGRlcC5o IChYU0FWRV9YQ1IwX09GRlNFVCk6IEhlcmUuCisrCisrMjAxMC0wMy0wMSAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGZlYXR1cmVzL2kzODYvMzJiaXQtYXZ4LnhtbDog RGVmaW5lIGkzODZfbXhjc3IuCisrCSogZmVhdHVyZXMvaTM4Ni82NGJpdC1hdngueG1sOiBMaWtl d2lzZS4KKysKKysJKiBmZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC1saW51eC5jOiBSZWdlbmVyYXRl ZC4KKysJKiBmZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC5jOiBMaWtld2lzZS4KKysJKiBmZWF0dXJl cy9pMzg2L2kzODYtYXZ4LWxpbnV4LmM6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYvaTM4 Ni1hdnguYzogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0yNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3htbV9yZWdudW1fcCk6IE9wdGlt aXplZC4KKysJKGkzODZfdmVjdG9yX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0y NCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5h dC5jIChhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMpOiBQYXNzCisrCTAgdG8g YW1kNjRfY29sbGVjdF94c2F2ZS4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X2NvbGxlY3Rf eHN0YXRlcmVnc2V0KTogUGFzcyAxIHRvCisrCWFtZDY0X2NvbGxlY3RfeHNhdmUuCisrCShhbWQ2 NF9jb2xsZWN0X3hzYXZlKTogQWRkIGFuIGludGVnZXIgYXJndW1lbnQgYW5kIHBhc3MgaXQgdG8K KysJaTM4N19jb2xsZWN0X3hzYXZlLgorKworKwkqIGFtZDY0LXRkZXAuaCAoYW1kNjRfY29sbGVj dF94c2F2ZSk6IEFkZCBhbiBpbnRlZ2VyIGFyZ3VtZW50LgorKwkqIGkzODctdGRlcC5oIChpMzg3 X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5jIChzdG9y ZV94c3RhdGVyZWdzKTogUGFzcyAxIHRvCisrCWkzODdfY29sbGVjdF94c2F2ZS4KKysJKiBpMzg2 LXRkZXAuYyAoaTM4Nl9jb2xsZWN0X3hzdGF0ZXJlZ3NldCk6IExpa2V3aXNlLgorKworKwkqIGkz ODctdGRlcC5jIChpMzg3X2NvbGxlY3RfeHNhdmUpOiBBZGQgYW4gaW50ZWdlciBhcmd1bWVudAor Kwl0byBpbmRpY2F0ZSBnY29yZS4gIFVwZGF0ZSB0aGUgZmlyc3QgOCBieXRlcyBvZiB0aGUKKysJ c3dfdXNhYmxlX2J5dGVzWzQ2NC4uNDY3XSBhbmQgYHhzdGF0ZV9idicgd2l0aCBYQ1IwIGZvciBn Y29yZS4KKysKKysyMDEwLTAyLTI0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogaTM4Ny10ZGVwLmMgKGkzODdfY29sbGVjdF94c2F2ZSk6IEZpeCBtb3JlIHR5cG9zLgor KworKzIwMTAtMDItMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBp Mzg3LXRkZXAuYyAoaTM4N19jb2xsZWN0X3hzYXZlKTogRml4IGEgdHlwby4KKysKKysyMDEwLTAy LTI0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgt bmF0LmMgKGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBGaXggYSB0eXBvLgorKworKwkq IGkzODYtdGRlcC5jIChpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBSZXR1cm4gMCBmb3IgcHNl dWRvCisrCVhNTSByZWdpc3RlcnMgaWYgZ3JvdXAgaXNuJ3QgU1NFLgorKworKzIwMTAtMDItMjQg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQu YzogSW5jbHVkZSAicmVnc2V0LmgiLgorKwkoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6 IFNldCAucmVnLXhzdGF0ZSBzZWN0aW9uIHNpemUgaWYKKysJaXQgaXMgc3VwcG9ydGVkLgorKwko X2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogQ2FsbCBpMzg2X3hzdGF0ZV9pbml0LgorKwor KwkqIGFtZDY0LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAicmVnc2V0LmgiIGJlZm9yZQorKwkiYW1k NjQtbGludXgtdGRlcC5oIi4KKysJKGFtZDY0X2xpbnV4X3JlZ3NldF9zZWN0aW9ucyk6IE1ha2Ug aXQgZ2xvYmFsLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfdGRlcCk6IERvbid0IGNhbGwg aTM4Nl94c3RhdGVfaW5pdC4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmggKGFtZDY0X2xpbnV4 X3JlZ3NldF9zZWN0aW9ucyk6IE5ldy4KKysKKysJKiBjb25maWcvaTM4Ni9ubS1saW51eC14c3Rh dGUuaCAoRklMTF9YU1RBVEVSRUdTRVQpOiBSZW1vdmVkLgorKworKwkqIGkzODYtbGludXgtbmF0 LmM6IEluY2x1ZGUgInJlZ3NldC5oIi4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6 IFNldCAucmVnLXhzdGF0ZSBzZWN0aW9uIHNpemUgaWYKKysJaXQgaXMgc3VwcG9ydGVkLgorKwko X2luaXRpYWxpemVfaTM4Nl9saW51eF9uYXQpOiBDYWxsIGkzODZfeHN0YXRlX2luaXQuCisrCisr CSogaTM4Ni1saW51eC10ZGVwLmM6IEluY2x1ZGUgInJlZ3NldC5oIiBiZWZvcmUgImluZmVyaW9y LmgiLgorKwkoaTM4Nl9saW51eF9yZWdzZXRfc2VjdGlvbnMpOiBNYWtlIGl0IGdsb2JhbC4KKysJ KF9pbml0aWFsaXplX2kzODZfbGludXhfdGRlcCk6IERvbid0IGNhbGwgaTM4Nl94c3RhdGVfaW5p dC4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4Nl9saW51eF9yZWdzZXRfc2VjdGlvbnMp OiBOZXcuCisrCisrMjAxMC0wMi0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGkzODYtdGRlcC5jIChpMzg2X3ZhbGlkYXRlX3RkZXNjX3ApOiBVc2UgbnVtX3ZlY3Rv cl9yZWdzIGluc3RlYWQKKysJb2YgbnVtX3htbV9yZWdzIHRvIGNoZWNrIHZlY3RvciByZWdpc3Rl cnMuCisrCisrMjAxMC0wMi0yMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGZlYXR1cmVzL2kzODYvTWFrZWZpbGU6IE5ldy4KKysKKysyMDEwLTAyLTE5ICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5 X3hzYXZlKTogUmVtb3ZlIG9uZSByZWdjYWNoZV9yYXdfc3VwcGx5CisrCWZvciB4ODcuCisrCisr MjAxMC0wMi0xOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0 LWxpbnV4LW5hdC5jIChoYXZlX3B0cmFjZV9nZXRyZWdzZXQpOiBNYWtlIGl0IHN0YXRpYworKwlh bmQgaW5pdGlhbGl6ZWQgdG8gLTEuCisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdp c3RlcnMpOiBFcnJvciBpZiBQVFJBQ0VfR0VUUkVHU0VUCisrCWZhaWxzLgorKwkoYW1kNjRfbGlu dXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51eF9y ZWFkX2Rlc2NyaXB0aW9uKTogU2V0IGhhdmVfcHRyYWNlX2dldHJlZ3NldC4KKysJQ2hlY2sgdGhl IG5hdGl2ZSBYQ1IwIG9ubHkgaWYgUFRSQUNFX0dFVFJFR1NFVCBpcyBhdmFpbGFibGUuCisrCShf aW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQpOiBEb24ndCBzZXQgaGF2ZV9wdHJhY2VfZ2V0cmVn c2V0LgorKworKwkqIGkzODYtbGludXgtbmF0LmMgKGhhdmVfcHRyYWNlX2dldHJlZ3NldCk6IE1h a2UgaXQgc3RhdGljCisrCWFuZCBpbml0aWFsaXplZCB0byAtMS4KKysJKGZldGNoX3hzdGF0ZXJl Z3MpOiBFcnJvciBpZiBQVFJBQ0VfR0VUUkVHU0VUIGZhaWxzLgorKwkoc3RvcmVfeHN0YXRlcmVn cyk6IExpa2V3aXNlLgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogU2V0IGhhdmVf cHRyYWNlX2dldHJlZ3NldC4KKysJQ2hlY2sgdGhlIG5hdGl2ZSBYQ1IwIG9ubHkgaWYgUFRSQUNF X0dFVFJFR1NFVCBpcyBhdmFpbGFibGUuCisrCShfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X25hdCk6 IERvbid0IHNldCBoYXZlX3B0cmFjZV9nZXRyZWdzZXQuCisrCisrMjAxMC0wMi0xOSAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5oIChY U1RBVEVfU1NFX01BU0spOiBBZGQgYml0X1hTVEFURV9YODcuCisrCShYU1RBVEVfTUFYX01BU0sp OiBEZWZpbmVkIHdpdGggWFNUQVRFX0FWWF9NQVNLIG9ubHkuCisrCShYU1RBVEVfU1NFX01BU0tf U1RSSU5HKTogVXBkYXRlZC4KKysJKFhTVEFURV9BVlhfTUFTS19TVFJJTkcpOiBMaWtld2lzZS4K KysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNhdmUpOiBBbHNvIGNoZWNrIHg4NyBy ZWdpc3RlcnMuCisrCShpMzg3X2NvbGxlY3RfeHNhdmUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAy LTE5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMg KGkzODZfZ2RiYXJjaF9pbml0KTogVXNlIG51bV92ZWN0b3JfcmVncyBpbnN0ZWFkCisrCW9mIG51 bV94bW1fcmVncyB0byBjaGVjayB2ZWN0b3IgcmVnaXN0ZXJzLgorKworKzIwMTAtMDItMTggIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0 X2luaXRfYWJpKTogU2V0IG51bV94bW1fcmVncyBiYXNlZCBvbgorKwl2ZWN0b3IgZmVhdHVyZS4K KysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBp Mzg2LWRhcndpbi10ZGVwLmMgKGkzODZfZGFyd2luX2luaXRfYWJpKTogUmVwbGFjZSBudW1feG1t X3JlZ3MKKysJd2l0aCBudW1fdmVjdG9yX3JlZ3MuCisrCisrMjAxMC0wMi0xOCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfaW5pdF9h YmkpOiBTZXQgbnVtX3ZlY3Rvcl9yZWdzIHRvIDE2LgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2 X2dkYmFyY2hfaW5pdCk6IEFkZCBudW1feG1tX3JlZ3MgdG8KKysJc2V0X2dkYmFyY2hfbnVtX3Bz ZXVkb19yZWdzLgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlv bik6IENoZWNrIHRoZQorKwluYXRpdmUgWENSMC4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmM6 IEluY2x1ZGUgImZlYXR1cmVzL2kzODYvYW1kNjQtYXZ4LWxpbnV4LmMiLgorKwkoYW1kNjRfbGlu dXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogQ2hlY2sgWENSMCBmcm9tIGNvcmUgZHVtcC4KKysJ KF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXApOiBDYWxsCisrCWluaXRpYWxpemVfdGRlc2Nf YW1kNjRfYXZ4X2xpbnV4LgorKworKwkqIGFtZDY0LXRkZXAuYzogSW5jbHVkZSAiZmVhdHVyZXMv aTM4Ni9hbWQ2NC1hdnguYyIuCisrCShBTUQ2NF9OVU1fUkVHUyk6IFVzZSBhbWQ2NF9zc2VfcmVn aXN0ZXJfbmFtZXMuCisrCShhbWQ2NF94bW1fbmFtZXMpOiBNYWtlIGl0IHN0YXRpYy4KKysJKGFt ZDY0X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogSGFuZGxlIFhNTSBwc2V1ZCByZWdpc3RlcnMuCisr CShhbWQ2NF9pbml0X2FiaSk6IFNldCByZWdpc3Rlcl9uYW1lcyBiYXNlZCBvbiB0YXJnZXQgZGVz Y3JpcHRpb24uCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF90ZGVwKTogQ2FsbCBpbml0aWFsaXplX3Rk ZXNjX2FtZDY0X2F2eC4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5jIChpMzg2X2xpbnV4X3JlYWRf ZGVzY3JpcHRpb24pOiBDaGVjayB0aGUKKysJbmF0aXZlIFhDUjAuCisrCisrCSogaTM4Ni1saW51 eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX3hjcjApOiBOZXcuCisrCShpMzg2X2xpbnV4 X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFVzZSBpdC4gIFJlbW92ZSBCRkQ2NC4KKysJKGkzODZf bGludXhfcmVhZF9kZXNjcmlwdGlvbik6IFJlbW92ZWQuCisrCShfaW5pdGlhbGl6ZV9pMzg2X2xp bnV4X3RkZXApOiBDYWxsCisrCWluaXRpYWxpemVfdGRlc2NfaTM4Nl9hdnhfbGludXguCisrCisr CSogaTM4Ni10ZGVwLmMgKGkzODZfeG1tX3JlZ251bV9wKTogTWFrZSBpdCBnbG9iYWwuCisrCShp Mzg2X3BzZXVkb19yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlIEJGRDY0LgorKwkoaTM4Nl9wc2V1ZG9f cmVnaXN0ZXJfcmVhZCk6IExpa2V3aXNlLgorKwkoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUp OiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogU2V0IHJlZ2lzdGVyX25hbWVzIGJh c2VkIG9uIHRhcmdldAorKwlkZXNjcmlwdGlvbi4KKysKKysyMDEwLTAyLTEzICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGlu dXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogUHJvcGVybHkKKysJY2hlY2sgZXh0ZW5kZWQgc3Rh dGUgc2l6ZS4KKysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IFByb3Blcmx5IGNoZWNr IHRoZSBuYXRpdmUgWENSMC4KKysKKysyMDEwLTAyLTEzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogY29tbW9uL2kzODYteHN0YXRlLmggKFhTVEFURV9TU0VfTUFTSyk6 IERlZmluZWQgd2l0aAorKwliaXRfWFNUQVRFX1NTRS4KKysJKFhTVEFURV9BVlhfTUFTSyk6IERl ZmluZWQgd2l0aCBYU1RBVEVfU1NFX01BU0sgYW5kIGJpdF9YU1RBVEVfQVZYLgorKwkoWFNUQVRF X01BWF9NQVNLKTogRGVmaW5lZCB3aXRoIFhTVEFURV9BVlhfTUFTSyBhbmQgYml0X1hTVEFURV9Y ODcuCisrCShYU1RBVEVfU1NFX01BU0tfU1RSSU5HKTogVXBkYXRlZC4KKysJKFhTVEFURV9BVlhf TUFTS19TVFJJTkcpOiBMaWtld2lzZS4KKysKKysJKiAzODYtbGludXgtdGRlcC5jIChpMzg2X2xp bnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFVzZQorKwlYU1RBVEVfWFhYX01BU0suCisrCShp Mzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKworKwkqIGkzODYt dGRlcC5jIChpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBDaGVjayB4Y3IwIGluc3RlYWQKKysJ b2YgdmVjdG9yX3VuaXQuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCB4Y3IwIGluc3RlYWQg b2YgdmVjdG9yX3VuaXQuCisrCisrCSogaTM4Ni10ZGVwLmggKHg4Nl92ZWN0b3JfdW5pdCk6IFJl bW92ZWQuCisrCShnZGJhcmNoX3RkZXApOiBSZW1vdmUgdmVjdG9yX3VuaXQuICBBZGQgeGNyMC4K KysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfZnhzYXZlKTogQ2hlY2sgeGNyMCBpbnN0 ZWFkIG9mCisrCXZlY3Rvcl91bml0LgorKwkoaTM4N19zdXBwbHlfeHNhdmUpOiBMaWtld2lzZS4K KysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMTEgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJh cmNoX2luaXQpOiBEb24ndCBzZXQgeGNyMCBvbiB4ODYgaG9zdC4KKysJKF9pbml0aWFsaXplX2kz ODZfdGRlcCk6IERvbid0IGNhbGwgaTM4Nl94c3RhdGVfaW5pdCBvbiB4ODYgaG9zdC4KKysKKysJ KiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogUmVtb3ZlIHhjcjAuCisrCisrCSogaTM4Ny10 ZGVwLmMgKGkzODdfc3VwcGx5X3hzYXZlKTogUmVwbGFjZSB0ZGVwLT54Y3IwIHdpdGgKKysJaTM4 Nl94c3RhdGUueGNyMC4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIw MTAtMDItMTEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LWxp bnV4LXRkZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBEb24ndAorKwlz ZXQgeGNyMCBoZXJlLgorKworKzIwMTAtMDItMTEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4 X3RkZXApOiBSZS1pbmRlbnQuCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhf cmVhZF9kZXNjcmlwdGlvbik6IERvbid0IHNldAorKwl4Y3IwIGhlcmUuCisrCShfaW5pdGlhbGl6 ZV9pMzg2X2xpbnV4X3RkZXApOiBSZS1pbmRlbnQuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZf Z2RiYXJjaF9pbml0KTogU2V0IHhjcjAgb24geDg2IGhvc3QuCisrCShfaW5pdGlhbGl6ZV9pMzg2 X3RkZXApOiBDYWxsIGkzODZfeHN0YXRlX2luaXQgb24geDg2IGhvc3QuCisrCisrCSogaTM4Ni10 ZGVwLmggKGdkYmFyY2hfdGRlcCk6IE1lbnRpb24geGNyMCBpcyB1c2VkIG9ubHkgZm9yCisrCW5h dGl2ZSBkZWJ1Zy4KKysKKysyMDEwLTAyLTExICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X2ZldGNoX2luZmVyaW9y X3JlZ2lzdGVycyk6IENhc3QKKysJTlRfWDg2X1hTVEFURSB0byB1bnNpZ25lZCBpbnQuCisrCShh bWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMpOiBMaWtld2lzZS4KKysJKiBpMzg2 LWxpbnV4LW5hdC5jIChmZXRjaF94c3RhdGVyZWdzKTogTGlrZXdpc2UuCisrCShzdG9yZV94c3Rh dGVyZWdzKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jOiBJbmNsdWRlICJlbGYvY29tbW9u LmgiIGFuZCA8c3lzL3Vpby5oPi4KKysJKGFtZDY0X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lz dGVycyk6IFVzZSBpb3ZlYy4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVy cyk6IExpa2V3aXNlLgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoX2luaXRpYWxpemVfYW1k NjRfbGludXhfdGRlcCk6IERvbid0CisrCWNoZWNrIGkzODZfeHN0YXRlLnNpemUuCisrCSogaTM4 Ni1saW51eC10ZGVwLmMgKF9pbml0aWFsaXplX2kzODZfbGludXhfdGRlcCk6IExpa2V3aXNlLgor KworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oOiBEb24ndCBpbmNsdWRlICJlbGYv Y29tbW9uLmgiLgorKwkoUFRSQUNFX1JFR1NFVF9OVF9TSElGVCk6IFJlbW92ZWQuCisrCShQVFJB Q0VfUkVHU0VUX01BWF9TSVpFKTogTGlrZXdpc2UuCisrCShQVFJBQ0VfUkVHU0VUX1hTVEFURV9B RERSKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni1saW51eC1uYXQuYzogSW5jbHVkZSAiZWxmL2Nv bW1vbi5oIiBhbmQgPHN5cy91aW8uaD4uCisrCShmZXRjaF94c3RhdGVyZWdzKTogVXNlIGlvdmVj LgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDkgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9wc2V1 ZG9fcmVnaXN0ZXJfcmVhZCk6IFByb3Blcmx5IGNvbnZlcnQKKysJWE1NIHBzZXVkbyByZWdpc3Rl ciB0byB2ZWN0b3IgcmVnaXN0ZXIuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl93cml0ZSk6IExp a2V3aXNlLgorKworKzIwMTAtMDItMDkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBmZWF0dXJlcy9pMzg2LzMyYml0LWF2eC54bWw6IEZpeCB0eXBvcy4KKysJKiBmZWF0 dXJlcy9pMzg2LzY0Yml0LWF2eC54bWw6IExpa2V3aXNlLgorKworKwkqIGZlYXR1cmVzL2kzODYv YW1kNjQtYXZ4LWxpbnV4LmM6IFJlZ2VuZXJhdGVkLgorKwkqIGZlYXR1cmVzL2kzODYvYW1kNjQt YXZ4LmM6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYvaTM4Ni1hdngtbGludXguYzogTGlr ZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jOiBMaWtld2lzZS4KKysKKysyMDEw LTAyLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVw LmMgKGkzODZfZ2RiYXJjaF9pbml0KTogQ291bnQgWE1NIHBzZXVkbyByZWdpc3RlcnMuCisrCisr MjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODct dGRlcC5oIChJMzg3X1hNTTBfUkVHTlVNKTogUmVuYW1lZCB0byAuLi4KKysJKEkzODdfVkVDVE9S MF9SRUdOVU0pOiBUaGlzLgorKwkoSTM4N19NWENTUl9SRUdOVU0pOiBVcGRhdGVkLgorKworKwkq IGkzODYtbnRvLXRkZXAuYyAoaTM4Nm50b19yZWdpc3Rlcl9hcmVhKTogUmVwbGFjZQorKwlJMzg3 X1hNTTBfUkVHTlVNIHdpdGggSTM4N19WRUNUT1IwX1JFR05VTS4KKysKKysJKiBpMzg2LXRkZXAu YyAoaTM4Nl9zc2VfcmVnbnVtX3ApOiBSZW5hbWVkIHRvIC4uLgorKwkoaTM4Nl92ZWN0b3JfcmVn bnVtX3ApOiBUaGlzLiAgUmVwbGFjZSBJMzg3X1hNTTBfUkVHTlVNCisrCXdpdGggSTM4N19WRUNU T1IwX1JFR05VTS4KKysJKGkzODZfZnBjX3JlZ251bV9wKTogUmVwbGFjZSBJMzg3X1hNTTBfUkVH TlVNIHdpdGgKKysJSTM4N19WRUNUT1IwX1JFR05VTS4KKysJKGkzODZfcmVnaXN0ZXJfcmVnZ3Jv dXBfcCk6IFVwZGF0ZWQuICBIYW5kbGUgWE1NIHBzZXVkbworKwlyZWdpc3RlcnMuCisrCisrCSog aTM4Ny10ZGVwLmMgKGkzODZfZnBjX3JlZ251bV9wKTogUmVwbGFjZSBJMzg3X1hNTTBfUkVHTlVN CisrCXdpdGggSTM4N19WRUNUT1IwX1JFR05VTS4KKysJKGkzODdfc3VwcGx5X2Z4c2F2ZSk6IExp a2V3aXNlLgorKwkoaTM4N19jb2xsZWN0X2Z4c2F2ZSk6IExpa2V3aXNlLgorKwkoWFNBVkVfU1NF X0FERFIpOiBMaWtld2lzZS4KKysJKFhTQVZFX0FWWEhfQUREUik6IExpa2V3aXNlLgorKwkoaTM4 N19zdXBwbHlfeHNhdmUpOiBMaWtld2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3 aXNlLgorKworKzIwMTAtMDItMDkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk6IEhhbmRsZSBYTU0g cHNldWRvCisrCXJlZ2lzdGVycy4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3R5cGUpOiBMaWtl d2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVyX3JlYWQpOiBMaWtld2lzZS4KKysJKGkzODZf cHNldWRvX3JlZ2lzdGVyX3dyaXRlKTogTGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6 IExpa2V3aXNlLgorKwkoaTM4Nl94bW1fdHlwZSk6IE5ldy4KKysKKysJKiAzODYtdGRlcC5oIChn ZGJhcmNoX3RkZXApOiBBZGQgbnVtX3htbV9yZWdzLCB4bW0wX3JlZ251bQorKwlhbmQgaTM4Nl94 bW1fdHlwZS4KKysKKysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF94bW1fbmFtZXMpOiBOZXcuCisrCShhbWQ2NF9u dW1fcHNldWRvX3JlZ3MpOiBVcGRhdGVkLgorKworKwkqIGFtZDY0LXRkZXAuaCAoYW1kNjRfeG1t X25hbWVzKTogTmV3LgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3htbV9uYW1lcyk6IE5ldy4K KysJKGkzODZfeG1tX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X251bV9wc2V1ZG9fcmVn cyk6IFVwZGF0ZWQuCisrCisrMjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBSZW5hbWUgbnVtX3htbV9y ZWdzIHRvCisrCW51bV92ZWN0b3JfcmVncy4KKysKKysJKiBpMzg3LXRkZXAuaCAoSTM4N19OVU1f WE1NX1JFR1MpOiBSZW1vdmVkLgorKwkoSTM4N19OVU1fVkVDVE9SX1JFR1MpOiBOZXcuCisrCShJ Mzg3X01YQ1NSX1JFR05VTSk6IFVwZGF0ZWQuCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9p bml0X2FiaSk6IFVwZGF0ZWQuCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfc3NlX3JlZ251bV9wKTog TGlrZXdpc2UuCisrCShpMzg2X214Y3NyX3JlZ251bV9wKTogTGlrZXdpc2UuCisrCShpMzg2X2dv MzJfaW5pdF9hYmkpOiBMaWtld2lzZS4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogTGlrZXdpc2Uu CisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5X2Z4c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4 N19jb2xsZWN0X2Z4c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4N19zdXBwbHlfeHNhdmUpOiBMaWtl d2lzZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDkg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQu YzogUmVwbGFjZSBQVFJBQ0VfR0VUWFNUQVRFUkVHUyB3aXRoCisrCVBUUkFDRV9HRVRSRUdTRVQg aW4gY29tbWVudHMuCisrCShoYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTogUmVuYW1lZCB0byAu Li4KKysJKGhhdmVfcHRyYWNlX2dldHJlZ3NldCk6IFRoaXMuCisrCShhbWQ2NF9saW51eF9mZXRj aF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBVcGRhdGVkIHRvIHVzZQorKwlQVFJBQ0VfR0VUUkVHU0VU LgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTogVXBkYXRlZCB0byB1 c2UKKysJUFRSQUNFX0dFVFJFR1NFVCBhbmQgUFRSQUNFX1NFVFJFR1NFVC4KKysKKysJKiBhbWQ2 NC1saW51eC10ZGVwLmMgKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXApOiBBc3NlcnQKKysJ dGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHNpemUuCisrCisrCSogaTM4Ni1saW51eC1uYXQuYzog UmVwbGFjZSBQVFJBQ0VfR0VUWFNUQVRFUkVHUyB3aXRoCisrCVBUUkFDRV9HRVRSRUdTRVQgaW4g Y29tbWVudHMuCisrCShoYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTogUmVuYW1lZCB0byAuLi4K KysJKGhhdmVfcHRyYWNlX2dldHJlZ3NldCk6IFRoaXMuCisrCShmZXRjaF94c3RhdGVyZWdzKTog VXBkYXRlZCB0byB1c2UgUFRSQUNFX0dFVFJFR1NFVC4KKysJKHN0b3JlX3hzdGF0ZXJlZ3MpOiBV cGRhdGVkIHRvIHVzZSBQVFJBQ0VfR0VUUkVHU0VUIGFuZAorKwlQVFJBQ0VfU0VUUkVHU0VULgor KworKwkqIGkzODYtbGludXgtdGRlcC5jIChfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X3RkZXApOiBB c3NlcnQKKysJdGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHNpemUuCisrCisrCSogY29uZmlnL2kz ODYvbm0tbGludXgteHN0YXRlLmg6IEluY2x1ZGUgImVsZi9jb21tb24uaCIuCisrCShQVFJBQ0Vf R0VUWFNUQVRFUkVHUyk6IFJlbW92ZWQuCisrCShQVFJBQ0VfU0VUWFNUQVRFUkVHUyk6IExpa2V3 aXNlLgorKwkoUFRSQUNFX0dFVFJFR1NFVCk6IE5ldy4KKysJKFBUUkFDRV9TRVRSRUdTRVQpOiBM aWtld2lzZS4KKysJKFBUUkFDRV9SRUdTRVRfTlRfU0hJRlQpOiBMaWtld2lzZS4KKysJKFBUUkFD RV9SRUdTRVRfTUFYX1NJWkUpOiBMaWtld2lzZS4KKysJKFBUUkFDRV9SRUdTRVRfWFNUQVRFX0FE RFIpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmM6IFJlcGxhY2UgeDg2LTY0L3g4Nl82NCB3 aXRoIGFtZDY0LgorKwkqIGkzODYtdGRlcC5jOiBMaWtld2lzZS4KKysKKysJKiBmZWF0dXJlcy9N YWtlZmlsZTogUmVwbGFjZSB4ODYtNjQgd2l0aCBhbWQ2NC4KKysJKiBmZWF0dXJlcy9pMzg2Lyo6 IFJlbmFtZSB4ODYtNjQqIHRvIGFtZDY0Ki4KKysKKysJKiByZWdmb3JtYXRzL2kzODYvKjogUmVu YW1lIHg4Ni02NCogdG8gYW1kNjQqLgorKworKzIwMTAtMDItMDcgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBjb21tb24vaTM4Ni14c3RhdGUuYzogRG9uJ3QgaW5jbHVk ZSAiY29uZmlnLmgiIGlmIFhTVEFURV9NQUlOCisrCWlzIGRlZmluZWQuCisrCShtYWluKTogRml4 IHR5cG8uCisrCisrMjAxMC0wMi0wNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5jIChtYWluKTogTmV3LiAgRGVmaW5lZCBvbmx5IGlm IFhTVEFURV9NQUlOCisrCWlzIGRlZmluZWQuCisrCisrMjAxMC0wMi0wNSAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5p dCk6IFNldCB2ZWN0b3JfdW5pdC4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogY29uZmlnL2kzODYvbm0tbGludXgteHN0YXRlLmg6IERvbid0 IGluY2x1ZGUgPHN5cy9wdHJhY2UuaD4uCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZf bGludXhfcmVhZF9kZXNjcmlwdGlvbik6IERvbid0IHVzZQorKwlwdHJhY2UuCisrCisrMjAxMC0w Mi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4 LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBQYXNzCisrCWkz ODZfeHN0YXRlLnNpemUgdG8gWFNUQVRFIHB0cmFjZS4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2lu ZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgtbmF0LmMgKGZldGNo X3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKHN0b3JlX3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4K KysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog YW1kNjQtbGludXgtbmF0LmMgKFBUUkFDRV9HRVRYU1RBVEVSRUdTKTogRG9uJ3QgZGVmaW5lLgor KwkoUFRSQUNFX1NFVFhTVEFURVJFR1MpOiBMaWtld2lzZS4KKysJKiBpMzg2LWxpbnV4LW5hdC5j IChQVFJBQ0VfR0VUWFNUQVRFUkVHUyk6CisrCShQVFJBQ0VfU0VUWFNUQVRFUkVHUyk6IExpa2V3 aXNlLgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4Lmg6IEluY2x1ZGUgImNvbmZpZy9pMzg2 L25tLWxpbnV4LXhzdGF0ZS5oIi4KKysJKiBjb25maWcvaTM4Ni9ubS1saW51eDY0Lmg6IExpa2V3 aXNlLgorKworKwkqIDM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlv bik6IERlZmluZSBvbmx5IGlmCisrCUZJTExfWFNUQVRFUkVHU0VUIGlzIGRlZmluZWQuICBVc2Ug cHRyYWNlIHRvIGdldCB4Y3IwIGZyb20KKysJa2VybmVsLgorKworKzIwMTAtMDItMDUgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKF9p bml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXApOiBVcGRhdGUKKysJY29tbWVudHMuCisrCisrCSog aTM4Ni1saW51eC10ZGVwLmM6IEluY2x1ZGUgZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC5j CisrCWFuZCBmZWF0dXJlcy9pMzg2L3g4Ni02NC1hdngtbGludXguYy4KKysJKGkzODZfbGludXhf Y29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogSGFuZGxlIEFWWC4KKysJKF9pbml0aWFsaXplX2kzODZf bGludXhfdGRlcCk6IENhbGwgaW5pdGlhbGl6ZV90ZGVzY19pMzg2X2F2eF9saW51eAorKwlhbmQg aW5pdGlhbGl6ZV90ZGVzY194ODZfNjRfYXZ4X2xpbnV4LgorKworKwkqIGkzODYtdGRlcC5jOiBJ bmNsdWRlIGZlYXR1cmVzL2kzODYvaTM4Ni1hdnguYyBhbmQKKysJZmVhdHVyZXMvaTM4Ni94ODYt NjQtYXZ4LmMuCisrCShfaW5pdGlhbGl6ZV9pMzg2X3RkZXApOiBDYWxsIGluaXRpYWxpemVfdGRl c2NfaTM4Nl9hdnggYW5kCisrCWluaXRpYWxpemVfdGRlc2NfeDg2XzY0X2F2eC4KKysKKysyMDEw LTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVw LmMgKGkzODZfZ2RiYXJjaF9pbml0KTogVHJ5IG9yZy5nbnUuZ2RiLmkzODYuYXZ4LgorKworKzIw MTAtMDItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBmZWF0dXJl cy9pMzg2LzMyYml0LWF2eC54bWw6IE5ldy4KKysJKiBmZWF0dXJlcy9pMzg2LzY0Yml0LWF2eC54 bWw6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYvaTM4Ni1hdngtbGludXguYzogTGlrZXdp c2UuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC54bWw6IExpa2V3aXNlLgorKwkq IGZlYXR1cmVzL2kzODYvaTM4Ni1hdnguYzogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni9p Mzg2LWF2eC54bWw6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYveDg2LTY0LWF2eC1saW51 eC5jOiBMaWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L3g4Ni02NC1hdngtbGludXgueG1sOiBM aWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L3g4Ni02NC1hdnguYzogTGlrZXdpc2UuCisrCSog ZmVhdHVyZXMvaTM4Ni94ODYtNjQtYXZ4LnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMv TWFrZWZpbGUgKFdISUNIKTogQWRkIGkzODYvaTM4Ni1hdngsCisrCWkzODYvaTM4Ni1hdngtbGlu dXgsIGkzODYveDg2LTY0LWF2eCBhbmQgaTM4Ni94ODYtNjQtYXZ4LWxpbnV4LgorKwkoaTM4Ni9p Mzg2LWF2eC1leHBlZGl0ZSk6IE5ldy4KKysJKGkzODYvaTM4Ni1hdngtbGludXgtZXhwZWRpdGUp OiBMaWtld2lzZS4KKysJKGkzODYveDg2LTY0LWF2eC1leHBlZGl0ZSk6TGlrZXdpc2UuCisrCShp Mzg2L3g4Ni02NC1hdngtbGludXgtZXhwZWRpdGUpOiBMaWtld2lzZS4KKysJKCQob3V0ZGlyKS9p Mzg2L2kzODYtYXZ4LmRhdCk6IE5ldyBkZXBlbmRlbmN5LgorKwkoJChvdXRkaXIpL2kzODYvaTM4 Ni1hdngtbGludXguZGF0KTogTGlrZXdpc2UuCisrCSgkKG91dGRpcikvaTM4Ni94ODYtYXZ4LTY0 LmRhdCk6IExpa2V3aXNlLgorKwkoJChvdXRkaXIpL2kzODYveDg2LTY0LWF2eC1saW51eC5kYXQp OiBMaWtld2lzZS4KKysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC1saW51eC5kYXQ6IE1v dmVkIHRvIC4uCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYtYXZ4LWxpbnV4LmRhdDogSGVyZS4K KysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IE1vdmVkIHRvIC4uCisrCSogcmVn Zm9ybWF0cy9pMzg2L2kzODYtYXZ4LmRhdDogSGVyZS4KKysKKysJKiByZWdmb3JtYXRzL3JlZy14 ODYtNjQtYXZ4LWxpbnV4LmRhdDogTW92ZWQgdG8gLi4uCisrCSogcmVnZm9ybWF0cy9pMzg2L3g4 Ni02NC1hdngtbGludXguZGF0OiBIZXJlLgorKworKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1h dnguZGF0OiBNb3ZlZCB0byAuLi4KKysJKiByZWdmb3JtYXRzL2kzODYveDg2LTY0LWF2eC5kYXQ6 IEhlcmUuCisrCisrMjAxMC0wMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3NlX3JlZ2lzdGVyX25hbWVzKTogTWFrZSBpdCBn bG9iYWwuCisrCShhbWQ2NF9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBMaWtld2lzZS4KKysJKGFtZDY0 X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdC4KKysK KysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBSZW1vdmVk LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBEb24ndCBjYWxsIGkzODZfZ2RiYXJjaF92ZWN0b3Jf dW5pdF9pbml0LgorKwkqIGkzODYtdGRlcC5oIChpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5p dCk6IFJlbW92ZWQuCisrCisrMjAxMC0wMi0wNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNj cmlwdGlvbik6IENoZWNrCisrCWNvcmUgc2l6ZSBmb3IgQVZYIHN1cHBvcnQuCisrCisrMjAxMC0w Mi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctdGRlcC5j IChpMzg3X3N1cHBseV9meHNhdmUpOiBPcHRpbWl6ZSB4c3RhdGVfYnYgPT0gMC4KKysKKysyMDEw LTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVw LmMgKGkzODdfc3VwcGx5X2Z4c2F2ZSk6IERvbid0IHVzZQorKwlyZWdjYWNoZV9yYXdfc3VwcGx5 X3BhcnQuCisrCShpMzg3X3N1cHBseV94c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4N19jb2xsZWN0 X2Z4c2F2ZSk6IERvbid0IHVzZSByZWdjYWNoZV9yYXdfY29sbGVjdF9wYXJ0LgorKwkoaTM4N19j b2xsZWN0X3hzYXZlKTogTGlrZXdpc2UuCisrCisrCSogcmVnY2FjaGUuYyAocmVnY2FjaGVfcmF3 X3N1cHBseV9wYXJ0KTogUmVtb3ZlZC4KKysJKHJlZ2NhY2hlX3Jhd19jb2xsZWN0X3BhcnQpOiBM aWtld2lzZS4KKysJKiByZWdjYWNoZS5oIChyZWdjYWNoZV9yYXdfc3VwcGx5X3BhcnQpOiBMaWtl d2lzZS4KKysJKHJlZ2NhY2hlX3Jhd19jb2xsZWN0X3BhcnQpOiBMaWtld2lzZS4KKysKKysyMDEw LTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51 eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogVXBkYXRlCisrCXdh cm5pbmcgbWVzc2FnZSBmb3IgeGNyMC4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19jb2xsZWN0 X3hzYXZlKTogTW92ZSBjb21tZW50cyBvbiB4c3RhdGVfYnYuCisrCisrMjAxMC0wMi0wMiAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dk YmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IENoZWNrCisrCUZJTExfWFNUQVRFUkVHU0VUIGluc3Rl YWQgb2YgYml0X1hTVEFURV9BVlguCisrCisrCSogY29uZmlnL2kzODYvbm0tbGludXguaCAoRklM TF9YU1RBVEVSRUdTRVQpOiBVcGRhdGUgY29tbWVudHMuCisrCSogY29uZmlnL2kzODYvbm0tbGlu dXg2NC5oIChGSUxMX1hTVEFURVJFR1NFVCk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDIgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYzogSW5jbHVk ZSAiaTM4Ni14c3RhdGUuaCIuCisrCSogaTM4Ny10ZGVwLmM6IExpa2V3aXNlLgorKworKzIwMTAt MDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAu YyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBDaGVjayBpZgorKwliaXRfWFNUQVRF X0FWWCBpcyBkZWZpbmVkIGJlZm9yZSB1c2luZyBpdC4KKysKKysyMDEwLTAyLTAyICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKHhzdGF0ZS1uYXQu byk6IFJlbmFtZWQgdG8gLi4uCisrCShpMzg2LXhzdGF0ZS5vKTogVGhpcy4KKysKKysJKiBpMzg2 LWxpbnV4LXRkZXAuYzogSW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIgaW5zdGVhZCBvZgorKwkieHN0 YXRlLW5hdC5oIi4KKysJKiBjb25maWcvaTM4Ni9ubS1saW51eC5oOiBMaWtld2lzZS4KKysJKiBj b25maWcvaTM4Ni9ubS1saW51eDY0Lmg6IExpa2V3aXNlLgorKworKwkqIGNvbW1vbi94c3RhdGUt bmF0LmM6IE1vdmVkIHRvIC4uLgorKwkqIGNvbW1vbi9pMzg2LXhzdGF0ZS5jOiBUaGlzLgorKwor KwkqIGNvbW1vbi94c3RhdGUtbmF0Lmg6IE1vdmVkIHRvIC4uLgorKwkqIGNvbW1vbi9pMzg2LXhz dGF0ZS5oOiBUaGlzLgorKworKwkqIGNvbmZpZy9pMzg2L2xpbnV4Lm1oIChOQVRERVBGSUxFUyk6 IFJlcGxhY2UgeHN0YXRlLW5hdC5vIHdpdGgKKysJaTM4Ni14c3RhdGUuby4KKysJKiBjb25maWcv aTM4Ni9saW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDIg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQu YyAoYW1kNjRfbGludXhfZ3JlZ3NldDY0X3JlZ19vZmZzZXQpOiBSZW1vdmUKKysJeHN0YXRlX2J2 IG9mZnNldC4KKysJKGFtZDY0X2xpbnV4X2dyZWdzZXQzMl9yZWdfb2Zmc2V0KTogTGlrZXdpc2Uu CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5oIChBTUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdOVU0p OiBVcGRhdGVkLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3NlX3JlZ2lzdGVyX25hbWVz KTogUmVtb3ZlIHhzdGF0ZV9idi4KKysJKGFtZDY0X2F2eF9yZWdpc3Rlcl9uYW1lcyk6IExpa2V3 aXNlLgorKwkoYW1kNjRfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZSBBTUQ2NF9YU1RBVEVfQlZfUkVH TlVNLgorKwkoYW1kNjRfcmVnaXN0ZXJfdHlwZSk6IExpa2V3aXNlLgorKworKwkqIGFtZDY0LXRk ZXAuaCAoQU1ENjRfWFNUQVRFX0JWX1JFR05VTSk6IFJlbW92ZWQuCisrCisrCSogaTM4Ni1saW51 eC1uYXQuYyAocmVnbWFwKTogUmVtb3ZlIHhzdGF0ZV9idi4KKysKKysJKiBpMzg2LXRkZXAuYyAo aTM4Nl9zc2VfcmVnaXN0ZXJfbmFtZXMpOiBSZW1vdmUgeHN0YXRlX2J2LgorKwkoaTM4Nl9hdnhf cmVnaXN0ZXJfbmFtZXMpOiBMaWtld2lzZS4KKysJKGkzODZfeHN0YXRlX3JlZ251bV9wKTogUmVt b3ZlZC4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZSBJMzg3X1hTVEFURV9CVl9SRUdO VU0uCisrCisrCSogaTM4Ni10ZGVwLmggKEkzODZfU1NFX05VTV9SRUdTKTogUmVtb3ZlIHhzdGF0 ZV9idi4KKysKKysJKiBpMzg3LXRkZXAuYyAoWFNBVkVfWFNUQVRFX0JWX0FERFIpOiBVcGRhdGUg Y29tbWVudHMuCisrCisrCSogaTM4Ny10ZGVwLmggKEkzODdfWFNUQVRFX0JWX1JFR05VTSk6IFJl bW92ZWQuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfaW5pdF9hYmkpOiBVcGRhdGUgY2FsbCB0bworKwlp Mzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdC4KKysKKysJKiBnZGJhcmNoLmMgKGdkYmFyY2hf cXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IFJldHVybiB2b2lkLgorKwkqIGdkYmFyY2guaCAoZ2Ri YXJjaF9xc3VwcG9ydGVkX3Byb2Nlc3NfYWNrX2Z0eXBlKTogTGlrZXdpc2UuCisrCShnZGJhcmNo X3FzdXBwb3J0ZWRfcHJvY2Vzc19hY2spOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAo cmVtb3RlX3hjcjApOiBOZXcuCisrCShpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IFVz ZSByZW1vdGVfeGNyMCBmb3IgcmVtb3RlCisrCWNsaWVudC4KKysJKGkzODZfcXN1cHBvcnRlZF9w cm9jZXNzX2Fjayk6IFNldCByZW1vdGVfeGNyMC4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogVXBk YXRlIGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0IGNhbGwuCisrCisrCSogaTM4Ni10ZGVw LmggKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogVXBkYXRlZC4KKysKKysJKiByZW1v dGUuYyAocmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZCk6IENhbGwKKysJZ2RiYXJjaF9xc3VwcG9ydGVk X3Byb2Nlc3NfYWNrIHdpdGggTlVMTCB0byBwcmVwYXJlIHFTdXBwb3J0ZWQKKysJQUNLIHByb2Nl c3NpbmcuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIHJlZ2Zvcm1hdHMvcmVnLWkzODYtYXZ4LWxpbnV4LmRhdDogQWRkIHhtbGFyY2ggYW5k IG9zYWJpLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdngtbGludXguZGF0OiBMaWtld2lz ZS4KKysKKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5kYXQ6IEFkZCB4bWxhcmNoLgorKwkq IHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdnguZGF0OiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTAy ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVw LmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogVXNlCisrCVhTVEFURV9TU0Vf U0laRSBpbnN0ZWFkIG9mIDU3Ni4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9nX3Bh Y2tldF9zaXplKTogUmVtb3ZlZC4KKysJKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogUmVtb3ZlIGkz ODZfcmVnaXN0ZXJfZ19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0 X2dfcGFja2V0X3NpemUpOiBSZW1vdmVkLgorKwkoYW1kNjRfaW5pdF9hYmkpOiBVcGRhdGUgaTM4 Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQgY2FsbC4KKysJUmVtb3ZlIGkzODZfcmVnaXN0ZXJf Z19wYWNrZXRfZ3Vlc3Nlcy4KKysKKysJKiBhbWQ2NC10ZGVwLmggKEFNRDY0X0dfUEFDS0VUX1NJ WkVfU1NFKTogUmVtb3ZlZC4KKysJKEFNRDY0X0dfUEFDS0VUX1NJWkVfQVZYKTogTGlrZXdpc2Uu CisrCisrCSogZ2RiYXJjaC5jIChnZGJhcmNoX3FzdXBwb3J0ZWRfcHJvY2Vzc19hY2spOiBBZGQg dmFsdWUuCisrCSogZ2RiYXJjaC5oIChnZGJhcmNoX3FzdXBwb3J0ZWRfcHJvY2Vzc19hY2tfZnR5 cGUpOiBMaWtld2lzZS4KKysJKGdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IExpa2V3 aXNlLgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X2dfcGFja2V0X3NpemUp OiBSZW1vdmVkLgorKwkoaTM4Nl9saW51eF9pbml0X2FiaSk6IFJlbW92ZSBpMzg2X3JlZ2lzdGVy X2dfcGFja2V0X2d1ZXNzZXMuCisrCisrCSogaTM4Ni10ZGVwLmM6IERvbid0IGluY2x1ZGUgInJl bW90ZS5oIiBub3IKKysJInRhcmdldC1kZXNjcmlwdGlvbnMuaCIuCisrCShpMzg2X3JlZ2lzdGVy X2dfcGFja2V0X2d1ZXNzZXMpOiBSZW1vdmVkLgorKwkoaTM4Nl9nX3BhY2tldF9zaXplKTogTGlr ZXdpc2UuCisrCSgzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogUmV3cml0ZS4KKysJKGkz ODZfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IE5ldy4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTog VXBkYXRlIGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0IGNhbGwuCisrCVJlbW92ZSBpMzg2 X3JlZ2lzdGVyX2dfcGFja2V0X2d1ZXNzZXMuIENhbGwKKysJc2V0X2dkYmFyY2hfcXN1cHBvcnRl ZF9wcm9jZXNzX2Fjay4KKysKKysJKiBpMzg2LXRkZXAuaCAoeDg2X3ZlY3Rvcl91bml0KTogUmVt b3ZlIHVua25vd24uCisrCShJMzg2X0dfUEFDS0VUX1NJWkVfU1NFKTogUmVtb3ZlZC4KKysJKEkz ODZfR19QQUNLRVRfU0laRV9BVlgpOiBMaWtld2lzZS4KKysJKEkzODZfUFJPUEVSVFlfU1NFKTog TGlrZXdpc2UuCisrCShJMzg2X1BST1BFUlRZX0FWWCk6IExpa2V3aXNlLgorKwkoQU1ENjRfUFJP UEVSVFlfU1NFKTogTGlrZXdpc2UuCisrCShBTUQ2NF9QUk9QRVJUWV9BVlgpOiBMaWtld2lzZS4K KysJKGkzODZfZ19wYWNrZXRfc2l6ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9nX3Bh Y2tldF9ndWVzc2VzKTogTGlrZXdpc2UuCisrCShpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5p dCk6IFVwZGF0ZWQuCisrCisrCSogcmVtb3RlLmMgKHJlbW90ZV9xdWVyeV9zdXBwb3J0ZWQpOiBQ YXNzIHZhbHVlIHRvCisrCWdkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjay4KKysKKysyMDEw LTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVw LmMgKGkzODdfY29sbGVjdF94c2F2ZSk6IE9wdGltaXplZC4KKysKKysyMDEwLTAyLTAyICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVnZm9ybWF0cy9yZWctaTM4Ni1h dngtbGludXguZGF0OiBSZW1vdmUgeGNyMC4KKysJKiByZWdmb3JtYXRzL3JlZy1pMzg2LWF2eC5k YXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdngtbGludXguZGF0OiBM aWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQtYXZ4LmRhdDogTGlrZXdpc2UuCisr CisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNv bW1vbi94c3RhdGUtbmF0LmggKFhTVEFURV9TU0VfTUFTSyk6IE5ldy4KKysJKFhTVEFURV9BVlhf TUFTSyk6IExpa2V3aXNlLgorKwkoWFNUQVRFX01BWF9NQVNLKTogTGlrZXdpc2UuCisrCShYU1RB VEVfU1NFX01BU0tfU1RSSU5HKTogTGlrZXdpc2UuCisrCShYU1RBVEVfQVZYX01BU0tfU1RSSU5H KTogTGlrZXdpc2UuCisrCShYU1RBVEVfTUFYX01BU0tfU1RSSU5HKTogTGlrZXdpc2UuCisrCShY U1RBVEVfU1NFX1NJWkUpOiBMaWtld2lzZS4KKysJKFhTVEFURV9BVlhfU0laRSk6IExpa2V3aXNl LgorKwkoWFNUQVRFX01BWF9TSVpFKTogTGlrZXdpc2UuCisrCShYU1RBVEVfU1NFX1NJWkVfU1RS SU5HKTogTGlrZXdpc2UuCisrCShYU1RBVEVfQVZYX1NJWkVfU1RSSU5HKTogTGlrZXdpc2UuCisr CShYU1RBVEVfTUFYX1NJWkVfU1RSSU5HKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10ZGVwLmMg KGkzODZfZ2RiYXJjaF9pbml0KTogVXNlIFhTVEFURV9NQVhfU0laRV9TVFJJTkcKKysJYW5kIFhT VEFURV9NQVhfTUFTS19TVFJJTkcgb24gc2V0X2dkYmFyY2hfcXN1cHBvcnRlZC4KKysKKysyMDEw LTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogZ2RiYXJjaC5j IChnZGJhcmNoKTogQWRkIHFzdXBwb3J0ZWRfcHJvY2Vzc19hY2suCisrCShzdGFydHVwX2dkYmFy Y2gpOiBMaWtld2lzZS4KKysJKGdkYmFyY2hfYWxsb2MpOiBMaWtld2lzZS4KKysJKHZlcmlmeV9n ZGJhcmNoKTogTGlrZXdpc2UuCisrCShnZGJhcmNoX2R1bXApOiBMaWtld2lzZS4KKysJKGdkYmFy Y2hfcXN1cHBvcnRlZF9wcm9jZXNzX2Fjayk6IE5ldy4KKysJKHNldF9nZGJhcmNoX3FzdXBwb3J0 ZWRfcHJvY2Vzc19hY2spOiBMaWtld2lzZS4KKysKKysJKiBnZGJhcmNoLmggKGdkYmFyY2hfcXN1 cHBvcnRlZF9wcm9jZXNzX2Fja19mdHlwZSk6IE5ldy4KKysJKGdkYmFyY2hfcXN1cHBvcnRlZF9w cm9jZXNzX2Fjayk6IExpa2V3aXNlLgorKwkoc2V0X2dkYmFyY2hfcXN1cHBvcnRlZF9wcm9jZXNz X2Fjayk6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6 IFVwZGF0ZSBjYWxsIHRvCisrCXNldF9nZGJhcmNoX3FzdXBwb3J0ZWQuCisrCisrCSogcmVtb3Rl LmMgKHJlbW90ZV9zdGF0ZSk6IFJlcGxhY2UgcXN1cHBvcnRlZCB3aXRoIGdkYmFyY2guCisrCShp bml0X3JlbW90ZV9zdGF0ZSk6IFNldCBnZGJhcmNoIGluc3RlYWQgb2YgIHFzdXBwb3J0ZWQuCisr CShyZW1vdGVfcXVlcnlfc3VwcG9ydGVkKTogUmVwbGFjZSBxc3VwcG9ydGVkIHdpdGgKKysJZ2Ri YXJjaF9xc3VwcG9ydGVkLiAgQ2FsbCBnZGJhcmNoX3FzdXBwb3J0ZWRfcHJvY2Vzc19hY2sgb24K KysJdW5wcm9jZXNzZWQgQUNLcy4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5X3hzYXZlKTogQXBw bHkgWENSMCBtYXNrIHRvIGNsZWFyX2J2LgorKwkoaTM4N19jb2xsZWN0X3hzYXZlKTogTGlrZXdp c2UuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9ncmVnc2V0NjRfcmVnX29mZnNldCk6 IFJlbW92ZQorKwl4Y3IwIG9mZnNldC4KKysJKGFtZDY0X2xpbnV4X2dyZWdzZXQzMl9yZWdfb2Zm c2V0KTogTGlrZXdpc2UuCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zc2VfcmVnaXN0ZXJf bmFtZXMpOiBSZW1vdmUgeGNyMC4KKysJKGFtZDY0X2F2eF9yZWdpc3Rlcl9uYW1lcyk6IExpa2V3 aXNlLgorKwkoYW1kNjRfcmVnaXN0ZXJfbmFtZSk6IFJlbW92ZSBBTUQ2NF9YQ1IwX1JFR05VTS4K KysJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBSZW1vdmUgQU1ENjRfWENSMF9SRUdOVU0uICBVcGRh dGUKKysJQU1ENjRfWFNUQVRFX0JWX1JFR05VTS4KKysKKysJKiBhbWQ2NC10ZGVwLmggKEFNRDY0 X1hDUjBfUkVHTlVNKTogUmVtb3ZlZC4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5jIChyZWdtYXAp OiBSZW1vdmUgeGNyMC4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9zc2VfcmVnaXN0ZXJfbmFt ZXMpOiBSZW1vdmUgeGNyMC4KKysJKGkzODZfYXZ4X3JlZ2lzdGVyX25hbWVzKTogTGlrZXdpc2Uu CisrCShpMzg2X3hzdGF0ZV9yZWdudW1fcCk6IFJlbW92ZWQuCisrCShpMzg2X3JlZ2lzdGVyX25h bWUpOiBSZW1vdmUgSTM4N19YQ1IwX1JFR05VTS4KKysJKGkzODZfeGNyMF90eXBlKTogUmVtb3Zl ZC4KKysJKGkzODZfcmVnaXN0ZXJfdHlwZSk6IFJlbW92ZSBJMzg3X1hDUjBfUkVHTlVNIGFuZAor KwlJMzg3X1hTVEFURV9CVl9SRUdOVU0uCisrCShpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3ApOiBS ZW1vdmUgaTM4Nl94c3RhdGVfcmVnbnVtX3AuCisrCisrCSogaTM4Ni10ZGVwLmggKGdkYmFyY2hf dGRlcCk6IFJlbW92ZSBpMzg2X3hjcjBfdHlwZS4KKysJKEkzODZfU1NFX05VTV9SRUdTKTogUmVt b3ZlIHhjcjAuCisrCShpMzg2X3hjcjBfdHlwZSk6IFJlbW92ZWQuCisrCisrCSogaTM4Ny10ZGVw LmMgKFhTQVZFX1hDUjBfQUREUik6IFJlbW92ZWQuCisrCShpMzg3X3N1cHBseV94c2F2ZSk6IENs ZWFyIHBhcnQgaW4gdmVjdG9yIHJlZ2lzdGVycyBpZiBpdHMgYml0IGluCisrCXhzdGF0X2J2IGlz IHplcm8uICBEb24ndCB1cGRhdGUgSTM4N19YQ1IwX1JFR05VTSBub3IKKysJSTM4N19YU1RBVEVf QlZfUkVHTlVNLgorKwkoaTM4N19jb2xsZWN0X3hzYXZlKTogQ2xlYXIgcGFydCBpbiB2ZWN0b3Ig cmVnaXN0ZXJzIGlmIGl0cyBiaXQKKysJaW4geHN0YXRfYnYgaXMgemVyby4gIFVwZGF0ZSB4c3Rh dF9idiBkaXJlY3RseS4KKysKKysJKiBpMzg3LXRkZXAuaCAoSTM4N19YQ1IwX1JFR05VTSk6IFJl bW92ZWQuCisrCisrMjAxMC0wMi0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGdkYmFyY2guYyAoZ2RiYXJjaCk6IEFkZCBxc3VwcG9ydGVkLgorKwkoc3RhcnR1cF9n ZGJhcmNoKTogTGlrZXdpc2UuCisrCShnZGJhcmNoX2FsbG9jKTogTGlrZXdpc2UuCisrCSh2ZXJp ZnlfZ2RiYXJjaCk6IExpa2V3aXNlLgorKwkoZ2RiYXJjaF9kdW1wKTogTGlrZXdpc2UuCisrCShn ZGJhcmNoX3FzdXBwb3J0ZWQpOiBOZXcuCisrCShzZXRfZ2RiYXJjaF9xc3VwcG9ydGVkKTogTGlr ZXdpc2UuCisrCisrCSogZ2RiYXJjaC5oIChnZGJhcmNoX3FzdXBwb3J0ZWQpOiBOZXcuCisrCShz ZXRfZ2RiYXJjaF9xc3VwcG9ydGVkKTogTGlrZXdpc2UuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkz ODZfZ2RiYXJjaF9pbml0KTogQ2FsbCBzZXRfZ2RiYXJjaF9xc3VwcG9ydGVkLgorKworKwkqIHJl bW90ZS5jIChyZW1vdGVfc3RhdGUpOiBBZGQgcXN1cHBvcnRlZC4KKysJKGluaXRfcmVtb3RlX3N0 YXRlKTogU2V0IHFzdXBwb3J0ZWQgZnJvbSBnZGJhcmNoX3FzdXBwb3J0ZWQuCisrCShyZW1vdGVf cXVlcnlfc3VwcG9ydGVkKTogU3VwcG9ydCBxc3VwcG9ydGVkLgorKworKzIwMTAtMDItMDEgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRkZXAuYyAoaTM4N19j b2xsZWN0X3hzYXZlKTogT3B0aW1pemUgdXBkYXRpbmcgc2luZ2xlCisrCXZlY3RvciByZWdpc3Rl ci4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogaTM4Ny10ZGVwLmMgKGkzODdfY29sbGVjdF94c2F2ZSk6IEdldCB0aGUgb3JpZ2luYWwgYHhz dGF0X2J2Jy4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogVXNl CisrCXJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkLgorKworKwkqIGkzODctdGRlcC5jIChp Mzg3X2NvbGxlY3RfeHNhdmUpOiBVcGRhdGUgdGhlIGJpdHMgaW4KKysJYHhzdGF0ZV9idicgaWYg YW55IFNTRS9BVlggcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgRG9uJ3QgY2hhbmdlCisrCWB4Y3Iw Jy4KKysKKysyMDEwLTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zc2VfcmVnaXN0ZXJfbmFtZXMpOiBVc2UgTlVMTCBvbiB4 c3RhdGVfYnYuCisrCShhbWQ2NF9hdnhfcmVnaXN0ZXJfbmFtZXMpOiBMaWtld2lzZS4KKysJKGFt ZDY0X3JlZ2lzdGVyX25hbWUpOiBSZXR1cm4gTlVMTCBmb3IgQU1ENjRfWFNUQVRFX0JWX1JFR05V TS4KKysKKysJKiBhbWQ2NC10ZGVwLiAoQU1ENjRfR19QQUNLRVRfU0laRV9BVlgpOiBEb24ndCBp bmNsdWRlIHhzdGF0ZV9idi4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9zc2VfcmVnaXN0ZXJf bmFtZXMpOiBVc2UgTlVMTCBvbiB4c3RhdGVfYnYuCisrCShpMzg2X2F2eF9yZWdpc3Rlcl9uYW1l cyk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9uYW1lKTogUmV0dXJuIE5VTEwgZm9yIEkz ODZfWFNUQVRFX0JWX1JFR05VTS4KKysKKysJKiBpMzg2LXRkZXAuIChJMzg2X0dfUEFDS0VUX1NJ WkVfQVZYKTogRG9uJ3QgaW5jbHVkZSB4c3RhdGVfYnYuCisrCisrCSogaTM4Ny10ZGVwLmMgKFhT QVZFX1hTVEFURV9CVl9BRERSKTogVXBkYXRlIGNvbW1lbnRzLgorKworKwkqIHJlZ2Zvcm1hdHMv cmVnLWkzODYtYXZ4LWxpbnV4LmRhdDogUmVtb3ZlIHhzdGF0ZV9idi4KKysJKiByZWdmb3JtYXRz L3JlZy1pMzg2LWF2eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1h dngtbGludXguZGF0OiBMaWtld2lzZS4KKysJKiByZWdmb3JtYXRzL3JlZy14ODYtNjQtYXZ4LmRh dDogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6 IENvcnJlY3QgdGhlCisrCVhDUjAgcmVnaXN0ZXIgbnVtYmVyIGZvciA2NGJpdC4KKysKKysyMDEw LTAyLTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVw LmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0KTogR2V0IHhjcjAgZnJvbQorKwl0aGUg cmVtb3RlIHRhcmdldC4KKysKKysyMDEwLTAxLTMxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogYW1kNjQtdGRlcC5oIChBTUQ2NF9HX1BBQ0tFVF9TSVpFX0FWWCk6IEFk ZCBzaXplcyBmb3IgeGNyMAorKwlhbmQgeHN0YXRlX2J2LgorKwkqIGkzODYtdGRlcC5oIChJMzg2 X0dfUEFDS0VUX1NJWkVfQVZYKTogTGlrZXdpc2UuCisrCisrCSogcmVnZm9ybWF0cy9yZWctaTM4 Ni1hdngtbGludXguZGF0OiBBZGQgeGNyMCBhbmQgeHN0YXRlX2J2LgorKwkqIHJlZ2Zvcm1hdHMv cmVnLWkzODYtYXZ4LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9yZWcteDg2LTY0LWF2 eC1saW51eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1hdnguZGF0 OiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTMwICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2Ny aXB0aW9uKTogUmVhZCA4CisrCWJ5dGVzIGZvciB4Y3IwLgorKworKzIwMTAtMDEtMzAgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRkZXAuaCAoWFNBVkVfWENS MF9PRkZTRVQpOiBVcGRhdGUgY29tbWVudHMuCisrCisrMjAxMC0wMS0zMCAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfcmVnaXN0ZXJf bmFtZSk6IFJldHVybiBOVUxMIGZvciB4Y3IwCisrCWFuZCB4c3RhdGVfYnYgaWYgWFNBVkUgZXh0 ZW5kZWQgc3RhdGUgaXNuJ3Qgc3VwcG9ydGVkLgorKwkqIGkzODYtdGRlcC5jIChpMzg2X3JlZ2lz dGVyX25hbWUpOiBMaWtld2lzZS4KKysJKGkzODZfeHN0YXRlX3JlZ251bV9wKTogUmV0dXJuIDAg b2YgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgaXNuJ3QKKysJc3VwcG9ydGVkLgorKworKzIwMTAtMDEt MzAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAo aTM4Nl94c3RhdGVfcmVnbnVtX3ApOiBOZXcuCisrCShpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3Ap OiBVc2UgaXQuCisrCisrMjAxMC0wMS0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29t PgorKworKwkqIGkzODYtbGludXgtdGRlcC5jOiBJbmNsdWRlIGkzODctdGRlcC5oIGFuZCB4c3Rh dGUtbmF0LmguCisrCShpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IFJlYWQgeGNy MCBmcm9tIGNvcmUgZmlsZS4KKysKKysJKiBpMzg3LXRkZXAuYyAoWFNBVkVfWENSMF9BRERSKTog TmV3LgorKwkoWFNBVkVfWFNUQVRFX0JWX0FERFIpOiBMaWtld2lzZS4KKysKKysJKiBpMzg3LXRk ZXAuaCAoWFNBVkVfWENSMF9PRkZTRVQpOiBOZXcuCisrCShYU0FWRV9YQ1IwX0FERFIpOiBSZW1v dmVkLgorKwkoWFNBVkVfWFNUQVRFX0JWX0FERFIpOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTMw ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0 LmMgKGFtZDY0X2xpbnV4X2dyZWdzZXQ2NF9yZWdfb2Zmc2V0KTogQWRkCisrCWVudHJpZXMgb2Yg LTEgZm9yIHhjcjAgYW5kIHhzdGF0ZV9idi4KKysJKGFtZDY0X2xpbnV4X2dyZWdzZXQzMl9yZWdf b2Zmc2V0KTogTGlrZXdpc2UuCisrCSogaTM4Ni1saW51eC1uYXQuYyAocmVnbWFwKTogTGlrZXdp c2UuCisrCisrCSogYW1kNjQtbGludXgtdGRlcC5oIChBTUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdO VU0pOiBSZXBsYWNlCisrCUFNRDY0X01YQ1NSX1JFR05VTSB3aXRoIEFNRDY0X1hTVEFURV9CVl9S RUdOVU0uCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zc2VfcmVnaXN0ZXJfbmFtZXMpOiBB ZGQgeGNyMCBhbmQgeHN0YXRlX2J2LgorKwkoYW1kNjRfYXZ4X3JlZ2lzdGVyX25hbWVzKTogTGlr ZXdpc2UuCisrCShhbWQ2NF9yZWdpc3Rlcl90eXBlKTogSGFuZGxlIEFNRDY0X1hDUjBfUkVHTlVN IGFuZAorKwlBTUQ2NF9YU1RBVEVfQlZfUkVHTlVNLgorKworKwkqIGFtZDY0LXRkZXAuaCAoYW1k NjRfcmVnbnVtKTogQWRkIEFNRDY0X1hDUjBfUkVHTlVNIGFuZAorKwlBTUQ2NF9YU1RBVEVfQlZf UkVHTlVNLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X3NzZV9yZWdpc3Rlcl9uYW1lcyk6IEFk ZCB4Y3IwIGFuZCB4c3RhdGVfYnYuCisrCShpMzg2X2F2eF9yZWdpc3Rlcl9uYW1lcyk6IExpa2V3 aXNlLgorKwkoaTM4Nl94Y3IwX3R5cGUpOiBOZXcuCisrCShpMzg2X3JlZ2lzdGVyX3R5cGUpOiBI YW5kbGUgQU1ENjRfWENSMF9SRUdOVU0gYW5kCisrCUFNRDY0X1hTVEFURV9CVl9SRUdOVU0uCisr CShpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IFNldCB0aGUgeGNyMCBmaWVsZC4KKysK KysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogQWRkIHhjcjAgYW5kIGkzODZfeGNyMF90 eXBlLgorKwkoSTM4Nl9TU0VfTlVNX1JFR1MpOiBJbmNyZWFzZSBieSAyLgorKwkoaTM4Nl94Y3Iw X3R5cGUpOiBOZXcuCisrCisrCSogaTM4Ny10ZGVwLmMgKGkzODdfc3VwcGx5X3hzYXZlKTogSGFu ZGxlIEkzODdfWENSMF9SRUdOVU0KKysJYW5kIEkzODdfWFNUQVRFX0JWX1JFR05VTS4KKysJKGkz ODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKwkqIGkzODctdGRlcC5oIChJMzg3X1hD UjBfUkVHTlVNKTogTmV3LgorKwkoSTM4N19YU1RBVEVfQlZfUkVHTlVNKTogTGlrZXdpc2UuCisr CShYU0FWRV9YQ1IwX0FERFIpOiBMaWtld2lzZS4KKysJKFhTQVZFX1hTVEFURV9CVl9BRERSKTog TGlrZXdpc2UuCisrCisrMjAxMC0wMS0yOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29t PgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9y ZWdpc3RlcnMpOiBGYWxsCisrCWJhY2sgYWZ0ZXIgUFRSQUNFX0dFVFhTVEFURVJFR1MgaWYgaGF2 ZV9wdHJhY2VfZ2V0eHN0YXRlcmVncyA9PSAxLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJp b3JfcmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQp OiBJbml0aWFsaXplIGhhdmVfcHRyYWNlX2dldHhzdGF0ZXJlZ3MKKysJdG8gMiBmb3IgQVZYLgor KworKwkqIGkzODYtbGludXgtbmF0LmMgKGZldGNoX3hzdGF0ZXJlZ3MpOiBGYWxsIGJhY2sgYWZ0 ZXIKKysJUFRSQUNFX0dFVFhTVEFURVJFR1MgaWYgaGF2ZV9wdHJhY2VfZ2V0eHN0YXRlcmVncyA9 PSAxLgorKwkoc3RvcmVfeHN0YXRlcmVncyk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfaTM4 Nl9saW51eF9uYXQpOiBJbml0aWFsaXplIGhhdmVfcHRyYWNlX2dldHhzdGF0ZXJlZ3MKKysJdG8g MiBmb3IgQVZYLgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRf aW5pdCk6IFVwZGF0ZWQuCisrCisrCSogY29tbW9uL3hzdGF0ZS1uYXQuaCAoeHN0YXRlKTogUmVt b3ZlZC4KKysJKHhzdGF0ZV9zdGF0dXMpOiBOZXcuCisrCShiaXRfWFNUQVRFX1g4Nyk6IExpa2V3 aXNlLgorKwkoYml0X1hTVEFURV9TU0UpOiBMaWtld2lzZS4KKysJKGJpdF9YU1RBVEVfQVZYKTog TGlrZXdpc2UuCisrCShpMzg2X3hzdGF0ZV90eXBlKTogUmVtb3ZlIHN0YXRlLiAgQWRkIHN0YXR1 cyBhbmQgeGNyMC4KKysKKysJKiBjb21tb24veHN0YXRlLW5hdC5jIChpMzg2X3hzdGF0ZV9pbml0 KTogVXBkYXRlZC4KKy0tLSAuL2dkYi9DaGFuZ2VMb2cueG1sCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvQ2hhbmdlTG9nLnhtbAkyMDEwLTA0LTAzIDIxOjEy OjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw0NjQgQEAKKysyMDEwLTAzLTMwICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVtb3RlLmMgKHJlZ2lzdGVyX3Jl bW90ZV9zdXBwb3J0X3htbCk6IFVzZSBzdHJ0b2suCisrCisrMjAxMC0wMy0zMCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIE5FV1M6IE1lbnRpb24geG1sUmVnaXN0ZXJz PSBpbiBxU3VwcG9ydGVkIHBhY2tldC4KKysKKysyMDEwLTAzLTMwICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF9pbml0KTog TW92ZQorKwlyZWdpc3Rlcl9yZW1vdGVfc3VwcG9ydF94bWwgY2FsbCB0byAuLi4KKysJKF9pbml0 aWFsaXplX2kzODZfdGRlcCk6IEhlcmUuCisrCisrMjAxMC0wMy0yOSAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6 IFBhc3MgImkzODYiIGluc3RlYWQgb2YgIng4NiIKKysJdG8gcmVnaXN0ZXJfcmVtb3RlX3N1cHBv cnRfeG1sLgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiByZW1vdGUuYyAocmVnaXN0ZXJfcmVtb3RlX3N1cHBvcnRfeG1sKTogRG8gbm90aGlu ZyBpZgorKwlIQVZFX0xJQkVYUEFUIGlzIHVuZGVmaW5lZC4KKysKKysyMDEwLTAzLTI4ICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogcmVtb3RlLmMgKHJlZ2lzdGVyX3Jl bW90ZV9zdXBwb3J0X3htbCk6IEFkZCAieG1sUmVnaXN0ZXJzPSIKKysJcHJlZml4LiAgRnJlZSB0 aGUgdW51c2VkIG9sZCBtZW1vcnkuCisrCShyZW1vdGVfcXVlcnlfc3VwcG9ydGVkX2FwcGVuZCk6 IE5ldy4KKysJKHJlbW90ZV9xdWVyeV9zdXBwb3J0ZWQpOiBDYWxsIHJlbW90ZV9xdWVyeV9zdXBw b3J0ZWRfYXBwZW5kLgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYzogSW5jbHVkZSAicmVtb3RlLmgiLgorKwkoaTM4Nl9n ZGJhcmNoX2luaXQpOiBDYWxsIHJlZ2lzdGVyX3JlbW90ZV9zdXBwb3J0X3htbC4KKysKKysJKiBy ZW1vdGUuYyAocmVtb3RlX3N1cHBvcnRfeG1sKTogTmV3LgorKwkocmVnaXN0ZXJfcmVtb3RlX3N1 cHBvcnRfeG1sKTogTGlrZXdpc2UuCisrCShyZW1vdGVfcXVlcnlfc3VwcG9ydGVkKTogU3VwcG9y dCByZW1vdGVfc3VwcG9ydF94bWwuCisrCisrCSogcmVtb3RlLmggKHJlZ2lzdGVyX3JlbW90ZV9z dXBwb3J0X3htbCk6IE5ldy4KKysKKysyMDEwLTAyLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9jb3JlX3Jl YWRfZGVzY3JpcHRpb24pOiBEb24ndAorKwljaGVjayAucmVnIHNlY3Rpb24gc2l6ZS4KKysJKiBp Mzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBMaWtl d2lzZS4KKysKKysyMDEwLTAyLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogYW1kNjQtbGludXgtbmF0LmMgKEFNRDY0X0xJTlVYX1VTRVI2NF9DUyk6IE5ldy4KKysJ KGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24pOiBVc2UgaXQuCisrCisrMjAxMC0wMi0yMiAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAu YyAoYW1kNjRfbGludXhfaW5pdF9hYmkpOiBDaGVjayBvcmlnX3JheAorKwlyaWdodCBhZnRlciBh bWQ2NF9pbml0X2FiaS4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9pbml0 X2FiaSk6IENoZWNrIG9yaWdfZWF4CisrCXJpZ2h0IGFmdGVyIGkzODZfZWxmX2luaXRfYWJpLgor KworKzIwMTAtMDItMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBh bWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IFJlYWQgQ1MK KysJcmVnaXN0ZXIgdG8gY2hlY2sgcHJvY2VzcyBhZGRyZXNzIHNwYWNlLgorKworKzIwMTAtMDIt MjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAo aTM4Nl92YWxpZGF0ZV90ZGVzY19wKTogTmV3LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBVc2Ug aXQuCisrCisrMjAxMC0wMi0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGFtZDY0LWxpbnV4LW5hdC5jIChhbWQ2NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogUmV0 dXJuCisrCXRkZXNjX2kzODZfbGludXggZm9yIDMyYml0LgorKworKzIwMTAtMDItMTggIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X2lu aXRfYWJpKTogU2V0IG51bV9jb3JlX3JlZ3MgYW5kCisrCXJlZ2lzdGVyX25hbWVzIGFmdGVyIHRk ZXNjLgorKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IERvbid0IGNoZWNrIGJm ZF9hcmNoX2kzODYuICBTZXQgCisrCW51bV9jb3JlX3JlZ3MgYW5kIHJlZ2lzdGVyX25hbWVzIGFm dGVyIHRkZXNjLgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBhbWQ2NC1saW51eC10ZGVwLmMgKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogUmVt b3ZlIGEgc3RyYXllZAorKwljb21tZW50LgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYzogRG9uJ3QgaW5jbHVk ZSAiaTM4Ny10ZGVwLmgiLgorKwkqIGFtZDY0LWxpbnV4LXRkZXAuYzogTGlrZXdpc2UuCisrCSog aTM4Ni1saW51eC10ZGVwLmM6IExpa2V3aXNlLgorKworKwkqIGkzODYtdGRlcC5oIChpMzg2X3Jl Z251bSk6IEFkZCBJMzg2X01YQ1NSX1JFR05VTS4KKysJKEkzODZfU1NFX05VTV9SRUdTKTogRGVm aW5lZCB3aXRoIEkzODZfTVhDU1JfUkVHTlVNLgorKworKzIwMTAtMDItMTcgIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuaCAodGRlc2NfaTM4Nik6IFJl bW92ZWQuCisrCisrMjAxMC0wMi0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGFtZDY0LWxpbnV4LW5hdC5jOiBJbmNsdWRlICJpMzg3LXRkZXAuaCIuCisrCShhbWQ2 NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogSnVzdCByZXR1cm4gdGRlc2NfYW1kNjRfbGludXgu CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jOiBEb24ndCBpbmNsdWRlICJpMzg2LWxpbnV4LXRk ZXAuaCIuCisrCUluY2x1ZGUgImkzODctdGRlcC5oIi4KKysJKGFtZDY0X2xpbnV4X3JlZ2lzdGVy X25hbWUpOiBSZW1vdmVkLgorKwkoYW1kNjRfbGludXhfcmVnaXN0ZXJfdHlwZSk6IExpa2V3aXNl LgorKwkoYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogSnVzdCByZXR1cm4KKysJ dGRlc2NfYW1kNjRfbGludXguCisrCShhbWQ2NF9saW51eF9pbml0X2FiaSk6IFNldCB0YXJnZXQg ZGVzY3JpcHRpb24gdG8KKysJdGRlc2NfYW1kNjRfbGludXggaWYgbmVlZGVkLiAgU3VwcG9ydCBv cmlnX3JheC4gIFNldAorKwlyZWdpc3Rlcl9yZWdncm91cF9wLgorKworKwkqIGFtZDY0LXRkZXAu YyAoYW1kNjRfcmVnaXN0ZXJfbmFtZXMpOiBNYWtlIGl0IHN0YXRpYy4KKysJKGFtZDY0X2NvcmVf cmVhZF9kZXNjcmlwdGlvbik6IFJlbW92ZWQuCisrCShhbWQ2NF9pbml0X2FiaSk6IFNldCBudW1f Y29yZV9yZWdzIGFuZCByZWdpc3Rlcl9uYW1lcy4gIFNldAorKwl0YXJnZXQgZGVzY3JpcHRpb24g dG8gdGRlc2NfYW1kNjQgaWYgbmVlZGVkLiAgQ2FsbAorKwlzZXRfZ2RiYXJjaF9udW1fcmVncy4g CisrCisrCSogYW1kNjQtdGRlcC5oIChhbWQ2NF9yZWdpc3Rlcl9uYW1lcyk6IFJlbW92ZWQuCisr CSh0ZGVzY19hbWQ2NCk6IExpa2V3aXNlLgorKworKwkqIGkzODYtbGludXgtdGRlcC5jOiBJbmNs dWRlICJpMzg3LXRkZXAuaCIuCisrCShpMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUpOiBSZW1vdmVk LgorKwkoaTM4Nl9saW51eF9yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51 eF9pbml0X2FiaSk6IFNldCB0YXJnZXQgZGVzY3JpcHRpb24gdG8KKysJdGRlc2NfaTM4Nl9saW51 eCBpZiBuZWVkZWQuICBTdXBwb3J0IG9yaWdfZWF4LiAgU2V0CisrCXJlZ2lzdGVyX3JlZ2dyb3Vw X3AuCisrCisrCSogaTM4Ni1udG8tdGRlcC5jIChpMzg2bnRvX3JlZ3NldF9pZCk6IFJlcGxhY2Ug STM4Nl9OVU1fRlJFR1MKKysJd2l0aCBJMzg3X05VTV9SRUdTLgorKworKwkqIGkzODYtdGRlcC5j OiBEb24ndCBpbmNsdWRlICJhbWQ2NC10ZGVwLmgiLgorKwkoaTM4Nl9nbzMyX2luaXRfYWJpKTog UmVwbGFjZSBJMzg2X05VTV9GUkVHUyB3aXRoIEkzODdfTlVNX1JFR1MuCisrCShpMzg2X2NvcmVf cmVhZF9kZXNjcmlwdGlvbik6IFJlbW92ZWQuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCB0 YXJnZXQgZGVzY3JpcHRpb24gdG8gdGRlc2NfaTM4NiBpZgorKwluZWVkZWQuICBTZXQgZ3JlZ3Nl dF9udW1fcmVncyB0byBJMzg2X05VTV9HUkVHUy4gIFNldAorKwludW1fY29yZV9yZWdzIGFuZCBy ZWdpc3Rlcl9uYW1lcy4gIFNldCByZWdpc3Rlcl9yZWdncm91cF9wLgorKworKzIwMTAtMDItMTcg IEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4 Nl9nZGJhcmNoX2luaXQpOiBNb3ZlIHRkZXNjX3VzZV9yZWdpc3RlcnMKKysJbW9yZSB0b3dhcmQg dGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uICBDYWxsIHRkZXNjX3VzZV9yZWdpc3RlcnMKKysJYWZ0 ZXIgZ2RiYXJjaF9pbml0X29zYWJpLiAgVXBkYXRlCisrCXNldF9nZGJhcmNoX3JlZ2lzdGVyX3Jl Z2dyb3VwX3AuCisrCisrCSogaTM4Ni10ZGVwLmggKGdkYmFyY2hfdGRlcCk6IEFkZCBudW1fY29y ZV9yZWdzLAorKwlyZWdpc3Rlcl9uYW1lcywgdGRlc2MgYW5kIHJlZ2lzdGVyX3JlZ2dyb3VwX3Au CisrCShJMzg2X05VTV9GUkVHUyk6IFJlbW92ZWQuCisrCShJMzg2X1NTRV9OVU1fUkVHUyk6IFJl cGxhY2UgSTM4Nl9OVU1fRlJFR1Mgd2l0aCBJMzg3X05VTV9SRUdTLgorKworKwkqIGkzODctdGRl cC5oIChJMzg3X05VTV9SRUdTKTogTmV3LgorKworKzIwMTAtMDItMTcgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX2luaXQp OiBNb3ZlIHRkZXNjX3VzZV9yZWdpc3RlcnMKKysJZnVydGhlciB0b3dhcmQgdGhlIGVuZCBvZiB0 aGUgZnVuY3Rpb24uCisrCisrMjAxMC0wMi0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IE1vdmUgdGRlc2Nf dXNlX3JlZ2lzdGVycworKwl0b3dhcmQgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24uCisrCisrMjAx MC0wMi0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LXRk ZXAuYzogSW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jIi4KKysJKGFtZDY0X2NvcmVfcmVh ZF9kZXNjcmlwdGlvbik6IE5ldy4KKysJKF9pbml0aWFsaXplX2FtZDY0X3RkZXApOiBMaWtld2lz ZS4KKysJKGFtZDY0X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJjaF9jb3JlX3JlYWRfZGVzY3Jp cHRpb24uCisrCisrCSogYW1kNjQtdGRlcC5oICh0ZGVzY19hbWQ2NCk6IE5ldy4KKysKKysJKiBp Mzg2LXRkZXAuYzogSW5jbHVkZSBpMzg2LXRkZXAuaCIgaW5zdGVhZCBvZiAiYW1kNjQtdGRlcC5o Ii4KKysJSW5jbHVkZSAiYW1kNjQtdGRlcC5oIiBpbnN0ZWFkIG9mICJmZWF0dXJlcy9pMzg2L2Ft ZDY0LmMiIHdoZW4KKysJQkZENjQgaXMgZGVmaW5lZC4KKysJKGkzODZfY29yZV9yZWFkX2Rlc2Ny aXB0aW9uKTogTmV3LgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBDYWxsIHNldF9nZGJhcmNoX2Nv cmVfcmVhZF9kZXNjcmlwdGlvbi4KKysJKF9pbml0aWFsaXplX2kzODZfdGRlcCk6IERvbid0IENh bGwgaW5pdGlhbGl6ZV90ZGVzY19hbWQ2NC4KKysKKysJKiBpMzg2LXRkZXAuaCAodGRlc2NfaTM4 Nik6IE5ldy4KKysKKysyMDEwLTAyLTE3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+ CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24p OiBOZXcuCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQpOiBVc2UgaXQuCisrCisrCSog YW1kNjQtbGludXgtdGRlcC5jOiBJbmNsdWRlICJpMzg2LWxpbnV4LXRkZXAuaCIgYW5kCisrCWZl YXR1cmVzL2kzODYvYW1kNjQtbGludXguYy4KKysJKGFtZDY0X2xpbnV4X3JlZ2lzdGVyX25hbWUp OiBOZXcuCisrCShhbWQ2NF9saW51eF9yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisrCShhbWQ2 NF9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBMaWtld2lzZS4KKysJKGFtZDY0X2xpbnV4 X2luaXRfYWJpKTogU3VwcG9ydCByZW1vdGUgc3R1YiB3aXRob3V0IFhNTCB0YXJnZXQKKysJZGVz Y3JpcHRpb24uICBVc2UgYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uIGluc3RlYWQg b2YKKysJaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24uCisrCShfaW5pdGlhbGl6ZV9h bWQ2NF9saW51eF90ZGVwKTogQ2FsbCBpbml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4LgorKwor KwkqIGFtZDY0LWxpbnV4LXRkZXAuaDogRG9uJ3QgaW5jbHVkZSAiaTM4Ni1saW51eC10ZGVwLmgi LgorKwkodGRlc2NfYW1kNjRfbGludXgpOiBOZXcuCisrCisrCSogaTM4Ni1saW51eC1uYXQuYyAo aTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3LgorKworKwkqIGkzODYtbGludXgtdGRl cC5jOiBJbmNsdWRlICJpMzg2LXRkZXAuaC8iaTM4Ni1saW51eC10ZGVwLmgiCisrCWluc3RlYWQg b2YgImFtZDY0LXRkZXAuaCIvImFtZDY0LWxpbnV4LXRkZXAuaCIuCisrCShpMzg2X2xpbnV4X3Jl Z2lzdGVyX25hbWUpOiBEb24ndCBjaGVjayBCRkQ2NC4KKysJKGkzODZfbGludXhfcmVnaXN0ZXJf dHlwZSk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF90ZGVwKTogTGlrZXdp c2UuCisrCShpMzg2X2xpbnV4X2luaXRfb3JpZ19lYXgpOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51 eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24pOiBNYWtlIGl0IHN0YXRpYy4gIERvbid0CisrCWNoZWNr IEJGRDY0LgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogUmVtb3ZlZC4KKysJKGkz ODZfbGludXhfaW5pdF9hYmkpOiBTdXBwb3J0IHJlbW90ZSBzdHViIHdpdGhvdXQgWE1MIHRhcmdl dAorKwlkZXNjcmlwdGlvbi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4Nl9saW51eF9j b3JlX3JlYWRfZGVzY3JpcHRpb24pOiBSZW1vdmVkLgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2Ny aXB0aW9uKTogTGlrZXdpc2UuCisrCShpMzg2X2xpbnV4X2luaXRfb3JpZ19lYXgpOiBMaWtld2lz ZS4KKysJKHRkZXNjX2kzODZfbGludXgpOiBOZXcuCisrCisrMjAxMC0wMi0xMCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hf aW5pdCk6IE9wdGltaXplIGZvciBCRkQ2NC4KKysKKysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9u Z2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhf cmVnaXN0ZXJfbmFtZSk6IE9wdGltaXplZCBmb3IKKysJQkZENjQuCisrCShpMzg2X2xpbnV4X3Jl Z2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfbGludXhfaW5pdF9vcmlnX2VheCk6IExp a2V3aXNlLgorKwkoaTM4Nl9saW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisrCisr MjAxMC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIHRhcmdl dC1kZXNjcmlwdGlvbnMuYyAodGRlc2NfZ2RiX3R5cGUpOiBDb3JyZWN0IGkzODZfZWZsYWdzCisr CXR5cGUuCisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgor KworKwkqIGkzODYtdGRlcC5jIChpMzg2X2dkYmFyY2hfaW5pdCk6IFNldCBudW1iZXJzIG9mIGRp ZmZlcmVudAorKwlyZWdpc3RlcnMgc2VwYXJhdGVseSBmb3IgMzJiaXQgYW5kIDY0Yml0LgorKwor KzIwMTAtMDItMDggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2 LXRkZXAuYyAoaTM4N19leHRfdHlwZSk6IENhbGwgdGRlc2NfZmluZF90eXBlIGluc3RlYWQgb2YK KysJYXJjaF9mbG9hdF90eXBlLgorKworKwkqIHRhcmdldC1kZXNjcmlwdGlvbnMuYyAodGRlc2Nf ZmluZF90eXBlKTogTmV3LgorKwkodGRlc2NfZ2RiX3R5cGUpOiBVc2UgaXQuCisrCisrCSogdGFy Z2V0LWRlc2NyaXB0aW9ucy5oICh0ZGVzY19maW5kX3R5cGUpOiBOZXcuCisrCisrMjAxMC0wMi0w NyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODYtbGludXgtdGRl cC5jOiBSZXBsYWNlIHg4Ni02NC94ODZfNjQgd2l0aCBhbWQ2NC4KKysJKiBpMzg2LXRkZXAuYzog TGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvTWFrZWZpbGU6IFJlcGxhY2UgeDg2LTY0IHdpdGgg YW1kNjQuCisrCSogZmVhdHVyZXMvaTM4Ni8qOiBSZW5hbWUgeDg2LTY0KiB0byBhbWQ2NCouCisr CisrCSogcmVnZm9ybWF0cy9pMzg2Lyo6IFJlbmFtZSB4ODYtNjQqIHRvIGFtZDY0Ki4KKysKKysy MDEwLTAyLTA3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogZmVhdHVy ZXMvTWFrZWZpbGUgKEkzODYtWE1MVE9DKTogUmVtb3ZlZC4gCisrCShJMzg2LUNGSUxFUyk6IExp a2V3aXNlLgorKwkoaTM4Ni1jZmlsZXMpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA2ICBILkou IEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkz ODZfbGludXhfaW5pdF9vcmlnX2VheCk6IFJldHVybiBvbmx5CisrCWlmIFhNTCB0YXJnZXQgZGVz Y3JpcHRpb24gaXMgYXZhaWxhYmxlLgorKworKzIwMTAtMDItMDYgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9pbml0 X29yaWdfZWF4KTogQ2hlY2sKKysJb3JnLmdudS5nZGIuaTM4Ni5saW51eCBpbnN0ZWFkIG9mIG9y Zy5nbnUuZ2RiLmkzODYuY29yZS4KKysKKysyMDEwLTAyLTA2ICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2NF9saW51eF9pbml0 X2FiaSk6IFJldmVydCB0aGUgbGFzdAorKwljaGFuZ2UuICBDYWxsIGkzODZfbGludXhfaW5pdF9v cmlnX2VheC4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9yZWdpc3Rlcl9u YW1lKTogTWFrZSBpdCBzdGF0aWMuCisrCShpMzg2X2xpbnV4X3JlZ2lzdGVyX3R5cGUpOiBMaWtl d2lzZS4KKysJKGkzODZfbGludXhfaW5pdF9vcmlnX2VheCk6IE5ldy4KKysJKGkzODZfbGludXhf aW5pdF9hYmkpOiBSZXZlcnQgdGhlIGxhc3QgY2hhbmdlLiAgQ2FsbAorKwlpMzg2X2xpbnV4X2lu aXRfb3JpZ19lYXguCisrCisrCSogaTM4Ni1saW51eC10ZGVwLmggKGkzODZfbGludXhfcmVnaXN0 ZXJfbmFtZSk6IFJlbW92ZWQuCisrCShpMzg2X2xpbnV4X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lz ZS4KKysJKGkzODZfbGludXhfaW5pdF9vcmlnX2VheCk6IE5ldy4KKysKKysyMDEwLTAyLTA1ICBI LkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogYW1kNjQtbGludXgtdGRlcC5j IChhbWQ2NF9saW51eF9pbml0X2FiaSk6IFJlc3RvcmUKKysJc2V0X2dkYmFyY2hfbnVtX3JlZ3Mu ICBDYWxsIHNldF9nZGJhcmNoX3JlZ2lzdGVyX25hbWUsCisrCXNldF9nZGJhcmNoX3JlZ2lzdGVy X3R5cGUgYW5kIHNldF9nZGJhcmNoX3JlbW90ZV9yZWdpc3Rlcl9udW1iZXIuCisrCisrCSogYW1k NjQtbGludXgtdGRlcC5oOiBJbmNsdWRlICJpMzg2LWxpbnV4LXRkZXAuaCIuCisrCisrCSogaTM4 Ni1saW51eC10ZGVwLmM6IEluY2x1ZGUgImkzODYtdGRlcC5oIiBhbmQKKysJImkzODYtbGludXgt dGRlcC5oIiB3aXRoICJhbWQ2NC10ZGVwLmgiIGFuZCAiYW1kNjQtbGludXgtdGRlcC5oIi4KKysJ KGkzODZfbGludXhfcmVnaXN0ZXJfbmFtZSk6IFJlc3RvcmVkIGFuZCByZXdvdGUuICBNYWtlIGl0 IGdsb2JhbC4KKysJKGkzODZfbGludXhfcmVnaXN0ZXJfdHlwZSk6IE5ldy4KKysJKGkzODZfbGlu dXhfaW5pdF9hYmkpOiBSZXN0b3JlIHNldF9nZGJhcmNoX251bV9yZWdzIGFuZAorKwlzZXRfZ2Ri YXJjaF9yZWdpc3Rlcl9uYW1lLiAgQ2FsbCBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl90eXBlIGFuZAor KwlzZXRfZ2RiYXJjaF9yZW1vdGVfcmVnaXN0ZXJfbnVtYmVyLgorKworKwkqIGkzODYtbGludXgt dGRlcC5oIChpMzg2X2xpbnV4X3JlZ2lzdGVyX25hbWUpOiBOZXcuCisrCShpMzg2X2xpbnV4X3Jl Z2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29y ZV9yZWFkX2Rlc2NyaXB0aW9uKTogRml4IGEKKysJdHlwbyBpbiBjb21tZW50cy4KKysKKysyMDEw LTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ni10ZGVw LmMgKGkzODZfZ2RiYXJjaF9pbml0KTogT3B0aW1pemUgdGFyZ2V0IGRlc2NyaXB0aW9uCisrCWNo ZWNrLgorKworKzIwMTAtMDItMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBhbWQ2NC1saW51eC10ZGVwLmM6IEluY2x1ZGUgImkzODYtbGludXgtdGRlcC5oIgorKwko YW1kNjRfbGludXhfaW5pdF9hYmkpOiBDYWxsIHNldF9nZGJhcmNoX2NvcmVfcmVhZF9kZXNjcmlw dGlvbi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuYyAoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVz Y3JpcHRpb24pOiBGaXggYQorKwl0eXBvLgorKworKzIwMTAtMDItMDQgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoX2luaXRpYWxpemVf YW1kNjRfbGludXhfbmF0KTogU2V0CisrCXRvX3JlYWRfZGVzY3JpcHRpb24gdG8gaTM4Nl9saW51 eF9yZWFkX2Rlc2NyaXB0aW9uLgorKwkqIGkzODYtbGludXgtbmF0LmMgKF9pbml0aWFsaXplX2kz ODZfbGludXhfbmF0KTogTGlrZXdpc2UuCisrCisrCSogYW1kNjQtbGludXgtdGRlcC5jIChhbWQ2 NF9saW51eF9yZWdpc3Rlcl9uYW1lKTogUmVtb3ZlZC4KKysJKGFtZDY0X2xpbnV4X3JlZ2lzdGVy X3R5cGUpOiBMaWtld2lzZS4KKysJKGFtZDY0X2xpbnV4X2luaXRfYWJpKTogRG9uJ3QgY2FsbCBz ZXRfZ2RiYXJjaF9udW1fcmVncywKKysJc2V0X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZSBub3Igc2V0 X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZS4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X3JlZ2lz dGVyX25hbWVzKTogTWFrZSBpdCBnbG9iYWwuCisrCShhbWQ2NF9yZWdpc3Rlcl9uYW1lKTogUmVt b3ZlZC4KKysJKGFtZDY0X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGFtZDY0X2luaXRf YWJpKTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcmVncywKKysJc2V0X2dkYmFyY2hfcmVn aXN0ZXJfbmFtZSBub3Igc2V0X2dkYmFyY2hfcmVnaXN0ZXJfdHlwZS4KKysKKysJKiBhbWQ2NC10 ZGVwLmggKGFtZDY0X3JlZ2lzdGVyX25hbWVzKTogTmV3LgorKworKwkqIGkzODYtbGludXgtdGRl cC5jOiBJbmNsdWRlIGZlYXR1cmVzL2kzODYvaTM4Ni1saW51eC5jIGFuZAorKwlmZWF0dXJlcy9p Mzg2L3g4Ni02NC1saW51eC5jLgorKwkoaTM4Nl9saW51eF9yZWdpc3Rlcl9uYW1lKTogUmVtb3Zl ZC4KKysJKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uKTogTmV3LgorKwkoaTM4Nl9s aW51eF9yZWFkX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCisrCShpMzg2X2xpbnV4X2luaXRfYWJp KTogRG9uJ3QgY2FsbCBzZXRfZ2RiYXJjaF9udW1fcmVncyBub3IKKysJc2V0X2dkYmFyY2hfcmVn aXN0ZXJfbmFtZS4gIENhbGwKKysJc2V0X2dkYmFyY2hfY29yZV9yZWFkX2Rlc2NyaXB0aW9uLgor KwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF90ZGVwKTogQ2FsbCBpbml0aWFsaXplX3RkZXNjX2kz ODZfbGludXgKKysJYW5kIGluaXRpYWxpemVfdGRlc2NfeDg2XzY0X2xpbnV4LgorKworKwkqIGkz ODYtbGludXgtdGRlcC5oIChpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbik6IE5ldy4K KysJKGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbik6IExpa2V3aXNlLgorKworKwkqIGkzODYt dGRlcC5jOiBJbmNsdWRlICJhbWQ2NC10ZGVwLmgiIGluc3RlYWQgb2YgImkzODYtdGRlcC5oIi4K KysJSW5jbHVkZSBmZWF0dXJlcy9pMzg2L2kzODYuYyBhbmQgZmVhdHVyZXMvaTM4Ni94ODYtNjQu Yy4KKysJKGkzODZfbnVtX3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKysJKGkzODZfcmVnaXN0 ZXJfbmFtZXMpOiBNYWtlIGl0IGNvbnN0LgorKwkoaTM4Nl9tbXhfbmFtZXMpOiBMaWtld2lzZS4K KysJKGkzODZfbnVtX3JlZ2lzdGVyX25hbWVzKTogUmVtb3ZlZC4KKysJKGkzODZfcmVnaXN0ZXJf bmFtZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9lZmxhZ3NfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4 Nl9teGNzcl90eXBlKTogTGlrZXdpc2UuCisrCShpMzg2X3NzZV90eXBlKTogTGlrZXdpc2UuCisr CShpMzg2X3JlZ2lzdGVyX3R5cGUpOiBMaWtld2lzZS4KKysJKGkzODZfcHNldWRvX3JlZ2lzdGVy X25hbWUpOiBOZXcuCisrCShpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTogTGlrZXdpc2UuCisr CShpMzg2X21teF90eXBlKTogTWFrZSBpdCBzdGF0aWMuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6 IERvbid0IGNhbGwgc2V0X2dkYmFyY2hfcmVnaXN0ZXJfbmFtZQorKwlub3Igc2V0X2dkYmFyY2hf cmVnaXN0ZXJfdHlwZS4gIENhbGwKKysJc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl90eXBlLCBz ZXRfdGRlc2NfcHNldWRvX3JlZ2lzdGVyX25hbWUKKysJYW5kIHRkZXNjX3VzZV9yZWdpc3RlcnMu CisrCShfaW5pdGlhbGl6ZV9pMzg2X3RkZXApOiBDYWxsIGluaXRpYWxpemVfdGRlc2NfaTM4NiBh bmQKKysJaW5pdGlhbGl6ZV90ZGVzY194ODZfNjQuCisrCisrCSogaTM4Ni10ZGVwLmggKGdkYmFy Y2hfdGRlcCk6IFJlbW92ZSBpMzg2X2VmbGFnc190eXBlLAorKwlpMzg2X214Y3NyX3R5cGUgYW5k IGkzODZfc3NlX3R5cGUuCisrCShpMzg2X2VmbGFnc190eXBlKTogUmVtb3ZlZC4KKysJKGkzODZf bXhjc3JfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9tbXhfdHlwZSk6IExpa2V3aXNlLgorKwko aTM4Nl9zc2VfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl9yZWdpc3Rlcl9uYW1lKTogTGlrZXdp c2UuCisrCisrCSogZmVhdHVyZXMvTWFrZWZpbGUgKEkzODYtWE1MVE9DKTogTmV3LgorKwkoSTM4 Ni1DRklMRVMpOiBMaWtld2lzZS4KKysJKGkzODYtY2ZpbGVzKTogTGlrZXdpc2UuCisrCisrCSog ZmVhdHVyZXMvaTM4Ni8zMmJpdC1zc2UueG1sOiBVcGRhdGUgdmVjMTI4IHR5cGUuCisrCSogZmVh dHVyZXMvaTM4Ni82NGJpdC1zc2UueG1sOiBMaWtld2lzZS4KKysKKysJKiBmZWF0dXJlcy9pMzg2 L2kzODYtbGludXguYzogUmVnZW5lcmF0ZWQuCisrCSogZmVhdHVyZXMvaTM4Ni9pMzg2LmM6IExp a2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYveDg2LTY0LWxpbnV4LmM6IExpa2V3aXNlLgorKwkq IGZlYXR1cmVzL2kzODYveDg2LTY0LmM6IExpa2V3aXNlLgorKworKzIwMTAtMDItMDMgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiB0YXJnZXQtZGVzY3JpcHRpb25zLmMg KHRkZXNjX3R5cGUpOiBBZGQgVERFU0NfVFlQRV9JMzg3X0VYVCwKKysJVERFU0NfVFlQRV9JMzg2 X0VGTEFHUyBhbmQgVERFU0NfVFlQRV9JMzg2X01YQ1NSLgorKwkodGRlc2NfcHJlZGVmaW5lZF90 eXBlcyk6IEFkZCBpMzg3X2V4dCwgaTM4Nl9lZmxhZ3MgYW5kCisrCWkzODZfbXhjc3IuCisrCSh0 ZGVzY19nZGJfdHlwZSk6IEhhbmRsZSBUREVTQ19UWVBFX0kzODdfRVhULAorKwlUREVTQ19UWVBF X0kzODZfRUZMQUdTIGFuZCBUREVTQ19UWVBFX0kzODZfTVhDU1IuCisrCSgKKysJKiBmZWF0dXJl cy9pMzg2LzMyYml0LWNvcmUueG1sOiBSZXBsYWNlIGkzODZfZXh0IHdpdGggaTM4N19leHQuCisr CSogZmVhdHVyZXMvaTM4Ni82NGJpdC1jb3JlLnhtbDogTGlrZXdpc2UuCisrCisrCSogZmVhdHVy ZXMvaTM4Ni9pMzg2LWxpbnV4LmM6IE5ldy4KKysJKiBmZWF0dXJlcy9pMzg2L2kzODYuYzogTGlr ZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni94ODYtNjQtbGludXguYzogTGlrZXdpc2UuCisrCSog ZmVhdHVyZXMvaTM4Ni94ODYtNjQuYzogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMyAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGZlYXR1cmVzL2kzODYvMzJiaXQtY29y ZS54bWw6IE5ldy4KKysJKiBmZWF0dXJlcy9pMzg2LzMyYml0LWxpbnV4LnhtbDogTGlrZXdpc2Uu CisrCSogZmVhdHVyZXMvaTM4Ni8zMmJpdC1zc2UueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0dXJl cy9pMzg2LzY0Yml0LWNvcmUueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2LzY0Yml0 LWxpbnV4LnhtbDogTGlrZXdpc2UuCisrCSogZmVhdHVyZXMvaTM4Ni82NGJpdC1zc2UueG1sOiBM aWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L2kzODYtbGludXgueG1sOiBMaWtld2lzZS4KKysJ KiBmZWF0dXJlcy9pMzg2L2kzODYueG1sOiBMaWtld2lzZS4KKysJKiBmZWF0dXJlcy9pMzg2L3g4 Ni02NC1saW51eC54bWw6IExpa2V3aXNlLgorKwkqIGZlYXR1cmVzL2kzODYveDg2LTY0LnhtbDog TGlrZXdpc2UuCisrCisrCSogZmVhdHVyZXMvTWFrZWZpbGUgKFdISUNIKTogQWRkIGkzODYvaTM4 NiwgaTM4Ni9pMzg2LWxpbnV4LAorKwlpMzg2L3g4Ni02NCBhbmQgaTM4Ni94ODYtNjQtbGludXgu CisrCShpMzg2L2kzODYtZXhwZWRpdGUpOiBOZXcuCisrCShpMzg2L2kzODYtbGludXgtZXhwZWRp dGUpOiBMaWtld2lzZS4KKysJKGkzODYveDg2LTY0LWV4cGVkaXRlKTpMaWtld2lzZS4KKysJKGkz ODYveDg2LTY0LWxpbnV4LWV4cGVkaXRlKTogTGlrZXdpc2UuCisrCSgkKG91dGRpcikvaTM4Ni9p Mzg2LmRhdCk6IE5ldyBkZXBlbmRlbmN5LgorKwkoJChvdXRkaXIpL2kzODYvaTM4Ni1saW51eC5k YXQpOiBMaWtld2lzZS4KKysJKCQob3V0ZGlyKS9pMzg2L3g4Ni02NC5kYXQpOiBMaWtld2lzZS4K KysJKCQob3V0ZGlyKS9pMzg2L3g4Ni02NC1saW51eC5kYXQpOiBMaWtld2lzZS4KKysKKysJKiBy ZWdmb3JtYXRzL2kzODYvaTM4Ni1saW51eC5kYXQ6IFJlZ2VuZXJhdGVkLgorKwkqIHJlZ2Zvcm1h dHMvaTM4Ni9pMzg2LmRhdDogTGlrZXdpc2UuCisrCSogcmVnZm9ybWF0cy9pMzg2L3g4Ni02NC1s aW51eC5kYXQ6IExpa2V3aXNlLgorKwkqIHJlZ2Zvcm1hdHMvaTM4Ni94ODYtNjQuZGF0OiBMaWtl d2lzZS4KKysKKysyMDEwLTAyLTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogcmVnZm9ybWF0cy9yZWctaTM4Ni1saW51eC5kYXQ6IE1vdmVkIHRvIC4uLgorKwkqIHJl Z2Zvcm1hdHMvaTM4Ni9pMzg2LWxpbnV4LmRhdDogSGVyZS4KKysKKysJKiByZWdmb3JtYXRzL3Jl Zy1pMzg2LmRhdDogTW92ZWQgdG8gLi4uCisrCSogcmVnZm9ybWF0cy9pMzg2L2kzODYuZGF0OiBI ZXJlLgorKworKwkqIHJlZ2Zvcm1hdHMvcmVnLXg4Ni02NC1saW51eC5kYXQ6IE1vdmVkIHRvIC4u LgorKwkqIHJlZ2Zvcm1hdHMvaTM4Ni94ODYtNjQtbGludXguZGF0OiBIZXJlLgorKworKwkqIHJl Z2Zvcm1hdHMvcmVnLXg4Ni02NC5kYXQ6IE1vdmVkIHRvIC4uLgorKwkqIHJlZ2Zvcm1hdHMvaTM4 Ni94ODYtNjQuZGF0OiBIZXJlLgorLS0tIC4vZ2RiL0NoYW5nZUxvZy54c3RhdGUJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9DaGFuZ2VMb2cueHN0YXRlCTIw MTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDM4NCBAQAorKzIw MTAtMDItMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LXRk ZXAuYyAoaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBVcGRhdGVkLgorKworKzIwMTAt MDEtMzEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVw LmMgKGFtZDY0X2luaXRfYWJpKTogVXBkYXRlZC4KKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJh cmNoX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4Nl9nZGJhcmNoX3Zl Y3Rvcl91bml0X2luaXQpOiBDaGFuZ2UgZnVuY3Rpb24KKysJYXJndW1lbnRzLgorKwkqIGkzODYt dGRlcC5oIChpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdCk6IExpa2Vpc2UuCisrCisrMjAx MC0wMS0yOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbW1vbi94 c3RhdGUtbmF0LmMgKGkzODZfeHN0YXRlX2luaXQpOiBVc2UgZW5hYmxlZCBzaXplLgorKworKzIw MTAtMDEtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRk ZXAuYyAoaTM4N19zdXBwbHlfZnhzYXZlKTogQ2hlY2sgdmVjdG9yX3VuaXQuCisrCShpMzg3X2Nv bGxlY3RfZnhzYXZlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0yOCAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIHJlZ2NhY2hlLmMgKHJlZ2NhY2hlX3Jhd19zdXBwbHlf cGFydCk6IEdyb3VwIGl0IHdpdGggLi4uCisrCShyZWdjYWNoZV9yYXdfY29sbGVjdF9wYXJ0KTog VGhpcy4KKysKKysyMDEwLTAxLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogaTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9u KTogU2V0CisrCXZlY3Rvcl91bml0IHRvIHNzZSBpZiB0aGVyZSBpcyBubyAucmVnLXhzdGF0ZSBz ZWN0aW9uLgorKworKzIwMTAtMDEtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBhbWQ2NC1saW51eC1uYXQuYyAoX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTog QXNzZXJ0CisrCWkzODZfeHN0YXRlLnN0YXRlICE9IFhTVEFURV9VTktOT1dOIGluc3RlYWQgb2Yg Y2FsbGluZyBpMzg2X3hzdGF0ZV9pbml0LgorKwkqIGkzODYtbGludXgtbmF0LmMgKF9pbml0aWFs aXplX2kzODZfbGludXhfbmF0KTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0yNyAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoX2luaXRp YWxpemVfYW1kNjRfbGludXhfdGRlcCk6IENhbGwKKysJaTM4Nl94c3RhdGVfaW5pdCBhbmQgdXBk YXRlIHRoZSBYU0FWRSBleHRlbmRlZCBzdGF0ZSBzaXplIG9uCisrCUxpbnV4L3g4NiBob3N0Lgor KwkqIGkzODYtbGludXgtdGRlcC5jIChfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X3RkZXApOiBMaWtl d2lzZS4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Cisr CisrCSogYW1kNjQtbGludXgtdGRlcC5jOiBJbmNsdWRlICJpMzg2LWxpbnV4LXRkZXAuaCIgYW5k ICJyZWdzZXQuaCIuCisrCShhbWQ2NF9saW51eF9yZWdzZXRfc2VjdGlvbnMpOiBOZXcuCisrCShh bWQ2NF9saW51eF9pbml0X2FiaSk6IENhbGwgc2V0X2dkYmFyY2hfY29yZV9yZWdzZXRfc2VjdGlv bnMKKysJd2l0aCBhbWQ2NF9saW51eF9yZWdzZXRfc2VjdGlvbnMuICBDYWxsCisrCXNldF9nZGJh cmNoX2NvcmVfcmVhZF9kZXNjcmlwdGlvbiB3aXRoCisrCWkzODZfbGludXhfY29yZV9yZWFkX2Rl c2NyaXB0aW9uLgorKworKwkqIGFtZDY0LXRkZXAuYyAoYW1kNjRfc3VwcGx5X3hzdGF0ZXJlZ3Nl dCk6IE5ldy4KKysJKGFtZDY0X2NvbGxlY3RfeHN0YXRlcmVnc2V0KTogTGlrZXdpc2UuCisrCShh bWQ2NF9yZWdzZXRfZnJvbV9jb3JlX3NlY3Rpb24pOiBDaGVjayAucmVnLXhzdGF0ZSBzZWN0aW9u LgorKworKwkqIGkzODYtbGludXgtdGRlcC5jIChpMzg2X2xpbnV4X3JlZ3NldF9zZWN0aW9ucyk6 IEFkZAorKwkucmVnLXhzdGF0ZSBzZWN0aW9uLgorKwkoaTM4Nl9saW51eF9jb3JlX3JlYWRfZGVz Y3JpcHRpb24pOiBOZXcuCisrCShpMzg2X2xpbnV4X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJj aF9jb3JlX3JlYWRfZGVzY3JpcHRpb24KKysJd2l0aCBpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNj cmlwdGlvbi4KKysKKysJKiBpMzg2LWxpbnV4LXRkZXAuaCAoaTM4Nl9saW51eF9jb3JlX3JlYWRf ZGVzY3JpcHRpb24pOiBOZXcuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfc3VwcGx5X3hzdGF0 ZXJlZ3NldCk6IE5ldy4KKysJKGkzODZfY29sbGVjdF94c3RhdGVyZWdzZXQpOiBMaWtld2lzZS4K KysJKGkzODZfcmVnc2V0X2Zyb21fY29yZV9zZWN0aW9uKTogQ2hlY2sgLnJlZy14c3RhdGUgc2Vj dGlvbi4KKysJKGkzODZfZ2RiYXJjaF9pbml0KTogSW5pdGlhbGl6ZSB4c3RhdGVyZWdzZXQgdG8g TlVMTC4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogQWRkIHhzdGF0ZXJlZ3Nl dC4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogYW1kNjQtdGRlcC5jIChhbWQ2NF9pbml0X2FiaSk6IFNldCBzaXplb2ZfeHN0YXRlcmVnc2V0 IHRvIDAuCisrCisrCSogaTM4Ni10ZGVwLmMgKGkzODZfZ2RiYXJjaF92ZWN0b3JfdW5pdF9pbml0 KTogU2V0CisrCXNpemVvZl94c3RhdGVyZWdzZXQgaWYgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgaXMg c3VwcG9ydGVkLgorKwkoaTM4Nl9nZGJhcmNoX2luaXQpOiBTZXQgc2l6ZW9mX3hzdGF0ZXJlZ3Nl dCB0byAwLgorKworKwkqIGkzODYtdGRlcC5oIChnZGJhcmNoX3RkZXApOiBBZGQgc2l6ZW9mX3hz dGF0ZXJlZ3NldC4KKysKKysJKiBjb21tb24veHN0YXRlLW5hdC5jIChpMzg2X3hzdGF0ZV9pbml0 KTogU2V0IGkzODZfeHN0YXRlLnNpemUuCisrCisrCSogY29tbW9uL3hzdGF0ZS1uYXQuaCAoaTM4 Nl94c3RhdGVfdHlwZSk6IEFkZCBzaXplLgorKworKzIwMTAtMDEtMjcgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC10ZGVwLmMgKGFtZDY0X3JlZ2lzdGVyX25h bWVzKTogUmVuYW1lZCB0byAuLi4KKysJKGFtZDY0X3NzZV9yZWdpc3Rlcl9uYW1lcyk6IFRoaXMu ICBSZW1vdmUgQVZYIHJlZ2lzdGVycy4KKysJKGFtZDY0X2F2eF9yZWdpc3Rlcl9uYW1lcyk6IE5l dy4KKysJKEFNRDY0X05VTV9SRUdTKTogVXBkYXRlZC4KKysJKGFtZDY0X3JlZ2lzdGVyX25hbWUp OiBIYW5kbGUgdmVjdG9yX3VuaXQuCisrCShhbWQ2NF9yZWdpc3Rlcl90eXBlKTogUmVwbGFjZSBp Mzg2X3NzZV90eXBlIHdpdGgKKysJaTM4Nl92ZWN0b3JfdHlwZS4KKysKKysJKiBkZWZzLmggKE1B WF9SRUdJU1RFUl9TSVpFKTogSW5jcmVhc2UgdG8gMzIuCisrCisrCSogaTM4Ni10ZGVwLmM6IChp Mzg2X3JlZ2lzdGVyX25hbWVzKTogUmVuYW1lZCB0byAuLi4KKysJKGkzODZfc3NlX3JlZ2lzdGVy X25hbWVzKTogVGhpcy4KKysJKGkzODZfYXZ4X3JlZ2lzdGVyX25hbWVzKTogTmV3LgorKwkoaTM4 Nl92ZWMxMjhfdHlwZSk6IExpa2V3aXNlLgorKwkoaTM4Nl92ZWMyNTZfdHlwZSk6IExpa2V3aXNl LgorKwkoaTM4Nl9udW1fcmVnaXN0ZXJfbmFtZXMpOiBVcGRhdGVkLgorKwkoaTM4Nl9nZGJhcmNo X3NzZV91bml0X2luaXQpOiBMaWtld2lzZS4KKysJKGkzODZfcmVnaXN0ZXJfbmFtZSk6IEhhbmRs ZSB2ZWN0b3JfdW5pdC4KKysJKGkzODZfc3NlX3R5cGUpOiBSZW5hbWVkIHRvIC4uLgorKwkoaTM4 Nl92ZWN0b3JfdHlwZSk6IFRoaXMuICBIYW5kbGUgdmVjdG9yX3VuaXQuCisrCShhbWQ2NF9yZWdp c3Rlcl90eXBlKTogUmVwbGFjZSBpMzg2X3NzZV90eXBlIHdpdGgKKysJaTM4Nl92ZWN0b3JfdHlw ZS4KKysKKysJKiBpMzg2LXRkZXAuaCAoZ2RiYXJjaF90ZGVwKTogUmVwbGFjZSBpMzg2X3NzZV90 eXBlIHdpdGgKKysJaTM4Nl92ZWN0b3JfdHlwZS4KKysJKEkzODZfTUFYX1JFR0lTVEVSX1NJWkUp OiBJbmNyZWFzZSB0byAzMi4KKysJKGkzODZfc3NlX3R5cGUpOiBSZW5hbWVkIHRvIC4uLgorKwko aTM4Nl92ZWN0b3JfdHlwZSk6IFRoaXMuCisrCisrMjAxMC0wMS0yNSAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIE1ha2VmaWxlLmluICh4c2F2ZS1uYXQubyk6IFJlbmFt ZWQgdG8gLi4uCisrCSh4c3RhdGUtbmF0Lm8pOiBUaGlzLgorKworKwkqIGNvbW1vbi94c2F2ZS1u YXQuYzogTW92ZWQgdG8gLi4uCisrCSogY29tbW9uL3hzdGF0ZS1uYXQuYzogVGhpcy4KKysKKysJ KiBjb21tb24veHNhdmUtbmF0Lmg6IE1vdmVkIHRvIC4uLgorKwkqIGNvbW1vbi94c3RhdGUtbmF0 Lmg6IFRoaXMuCisrCisrCSogY29uZmlnL2kzODYvbGludXgubWggKE5BVERFUEZJTEVTKTogUmVw bGFjZSB4c2F2ZS1uYXQubyB3aXRoCisrCXhzdGF0ZS1uYXQuby4KKysJKiBjb25maWcvaTM4Ni9s aW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExpa2V3aXNlLgorKworKwkqIGNvbmZpZy9pMzg2L25t LWxpbnV4Lmg6IEluY2x1ZGUgInhzdGF0ZS1uYXQuaCIgaW5zdGVhZCBvZgorKwkieHNhdmUtbmF0 LmgiLgorKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4NjQuaDogTGlrZXdpc2UuCisrCisrMjAxMC0w MS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4 LW5hdC5jIChhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOgorKwlJc3N1ZSBh biBlcnJvciBpZiBQVFJBQ0VfR0VUWFNUQVRFUkVHUyBmYWlsZWQgYW5kIFhTQVZFCisrCWV4dGVu ZGVkIHN0YXRlIGlzIGhpZ2hlciB0aGFuIFNTRS4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVy aW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKwkqIGkzODYtbGludXgtbmF0LmMgKGZldGNoX3hz dGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysJKHN0b3JlX3hzdGF0ZXJlZ3MpOiBMaWtld2lzZS4KKysK KysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29t bW9uL3hzYXZlLW5hdC5jOiBJbmNsdWRlICJpMzg2LWNwdWlkLmgiIGluc3RlYWQgb2YKKysJImNv bmZpZy9pMzg2L2kzODYtY3B1aWQuaCIuCisrCisrCSogY29uZmlnL2kzODYvaTM4Ni1jcHVpZC5o OiBNb3ZlZCB0byAuLi4KKysJKiBjb21tb24vaTM4Ni1jcHVpZC5oOiBIZXJlLgorKworKzIwMTAt MDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5p biAoeHNhdmUtbmF0Lm8pOiBOZXcuCisrCisrCSogeHNhdmUtbmF0LmM6IE1vdmVkIHRvIC4uLgor KwkqIGNvbW1vbi94c2F2ZS1uYXQuYzogSGVyZS4KKysKKysJKiB4c2F2ZS1uYXQuaDogTW92ZWQg dG8gLi4uCisrCSogY29tbW9uL3hzYXZlLW5hdC5oOiBIZXJlLgorKworKzIwMTAtMDEtMjIgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg2LWxpbnV4LW5hdC5jICho YXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzKTogTmV3LgorKwkoUFRSQUNFX0dFVFhTVEFURVJFR1Mp OiBMaWtld2lzZS4KKysJKFBUUkFDRV9TRVRYU1RBVEVSRUdTKTogTGlrZXdpc2UuCisrCShmZXRj aF94c3RhdGVyZWdzKTogTGlrZXdpc2UuCisrCShzdG9yZV94c3RhdGVyZWdzKTogTGlrZXdpc2Uu CisrCShpMzg2X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVycyk6IFN1cHBvcnQgWFNBVkUg ZXh0ZW5kZWQKKysJc3RhdGUuCisrCShpMzg2X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVy cyk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfaTM4Nl9saW51eF9uYXQpOiBDYWxsIGkzODZf eHN0YXRlX2luaXQgYW5kIHNldAorKwloYXZlX3B0cmFjZV9nZXR4c3RhdGVyZWdzLgorKworKzIw MTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRk ZXAuYyAoeHNhdmVfYXZ4aF9vZmZzZXQpOiBOZXcuCisrCShYU0FWRV9BVlhIX0FERFIpOiBMaWtl d2lzZS4KKysJKGkzODdfc3VwcGx5X3hzYXZlKTogVXNlIFhTQVZFX1NTRV9BRERSIGFuZCBYU0FW RV9BVlhIX0FERFIgZm9yCisrCUFWWCB2ZWN0b3IgdW5pdC4KKysJKGkzODdfY29sbGVjdF94c2F2 ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBpMzg3LXRkZXAuYyAoeHNhdmVfc3NlX29mZnNldCk6IE5ldy4KKysJKFhT QVZFX1NTRV9BRERSKTogTGlrZXdpc2UuCisrCShpMzg3X3N1cHBseV94c2F2ZSk6IFVzZSBYU0FW RV9TU0VfQUREUi4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAt MDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LXRkZXAu YyAoaTM4N19zdXBwbHlfeHNhdmUpOiBDaGVjayB2ZWN0b3IgdW5pdC4KKysJKGkzODdfY29sbGVj dF94c2F2ZSk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBncmVnc2V0LmggKEdEQl9YU1RBVEVfU1NFX1JFR1NFVF9UKTog UmVtb3ZlZC4KKysJKEdEQl9YU1RBVEVfQVZYX1JFR1NFVF9UKTogTGlrZXdpc2UuCisrCShnZGJf eHN0YXRlX3NzZV9yZWdzZXRfdCk6IExpa2V3aXNlLgorKwkoZ2RiX3hzdGF0ZV9hdnhfcmVnc2V0 X3QpOiBMaWtld2lzZS4KKysJKHN1cHBseV94c3RhdGVfc3NlX3JlZ3NldCk6IExpa2V3aXNlLgor Kwkoc3VwcGx5X3hzdGF0ZV9hdnhfcmVnc2V0KTogTGlrZXdpc2UuCisrCShmaWxsX3hzdGF0ZV9z c2VfcmVnc2V0KTogTGlrZXdpc2UuCisrCShmaWxsX3hzdGF0ZV9hdnhfcmVnc2V0KTogTGlrZXdp c2UuCisrCisrMjAxMC0wMS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIHJlZ2NhY2hlLmMgKHJlZ2NhY2hlX3Jhd19zdXBwbHlfcGFydCk6IE5ldy4KKysJKHJlZ2Nh Y2hlX3Jhd19jb2xsZWN0X3BhcnQpOiBMaWtld2lzZS4KKysJKiByZWdjYWNoZS5oIChyZWdjYWNo ZV9yYXdfc3VwcGx5X3BhcnQpOiBMaWtld2lzZS4KKysJKHJlZ2NhY2hlX3Jhd19jb2xsZWN0X3Bh cnQpOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmMgKGFtZDY0X2luaXRfYWJpKTogQ2FsbAor KwlpMzg2X2dkYmFyY2hfdmVjdG9yX3VuaXRfaW5pdC4KKysKKysJKiBpMzg2LXRkZXAuYyAoaTM4 Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQpOiBOZXcuCisrCShpMzg2X2dkYmFyY2hfaW5pdCk6 IENhbGwgaTM4Nl9nZGJhcmNoX3ZlY3Rvcl91bml0X2luaXQuCisrCisrCSogaTM4Ni10ZGVwLmgg KHg4Nl92ZWN0b3JfdW5pdCk6IE5ldy4KKysJKGdkYmFyY2hfdGRlcCk6IEFkZCB2ZWN0b3JfdW5p dC4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisr CSogYW1kNjQtbGludXgtbmF0LmMgKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X25hdCk6IEFsd2F5 cyBjYWxsCisrCWkzODZfeHN0YXRlX2luaXQgKCkuCisrCisrMjAxMC0wMS0yMiAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jIChoYXZlX3B0 cmFjZV9nZXR4c3RhdGVyZWdzKTogTmV3LgorKwkoUFRSQUNFX0dFVFhTVEFURVJFR1MpOiBMaWtl d2lzZS4KKysJKFBUUkFDRV9TRVRYU1RBVEVSRUdTKTogTGlrZXdpc2UuCisrCShhbWQ2NF9saW51 eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBTdXBwb3J0IFhTQVZFIGV4dGVuZGVkCisrCXN0 YXRlLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzKTogTGlrZXdpc2Uu CisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnNfd2l0aF94c2F2ZSk6IFJl bW92ZWQuCisrCShhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnNfd2l0aF94c2F2 ZSk6IExpa2V3aXNlLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogVXBkYXRlZC4K KysKKysJKiBjb25maWd1cmUuYWM6IFJlbW92ZSBjaGVjayBmb3IgUFRSQUNFX0dFVFhTVEFURVJF R1MuCisrCSogY29uZmlnLmluOiBSZWdlbmVyYXRlZC4KKysJKiBjb25maWd1cmU6IExpa2V3aXNl LgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4LmggKFVTRV9YU0FWRSk6IENoYW5nZWQgdG8g Li4uCisrCShGSUxMX1hTVEFURVJFR1NFVCk6IFRoaXMuCisrCSogb25maWcvaTM4Ni9ubS1saW51 eDY0Lmg6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiB4c2F2ZS1uYXQuYyAoaTM4Nl94c3RhdGVfaW5pdCk6IFByb3Blcmx5 IHNldCBzdGF0ZS4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogYW1kNjQtbGludXgtbmF0LmM6IERvbid0IGluY2x1ZGUgInhzYXZlLW5hdC5o Ii4KKysJKGFtZDY0X2xpbnV4X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVyc193aXRoX3hzdGF0ZSk6 IFJlbmFtZWQgdG8gLi4uCisrCShhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnNf d2l0aF94c2F2ZSk6IFRoaXMuCisrCShhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3Rl cnNfd2l0aF94c3RhdGUpOiBSZW5hbWVkIHRvIC4uLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5m ZXJpb3JfcmVnaXN0ZXJzX3dpdGhfeHNhdmUpOiBUaGlzLgorKworKwkqIGNvbmZpZy9pMzg2L25t LWxpbnV4Lmg6IEluY2x1ZGUgInhzYXZlLW5hdC5oIi4KKysJKiBjb25maWcvaTM4Ni9ubS1saW51 eDY0Lmg6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oIChOQVRfRklMRSk6IFNldCB0 byBubS1saW51eDY0LmguCisrCisrCSogY29uZmlnL2kzODYvbm0tbGludXguaCAoVVNFX1hTQVZF KTogTmV3LgorKworKwkqIGNvbmZpZy9pMzg2L25tLWxpbnV4NjQuaDogTmV3LgorKworKzIwMTAt MDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiB4c2F2ZS1uYXQu YzogSW5jbHVkZSAiY29uZmlnL2kzODYvaTM4Ni1jcHVpZC5oIiBpZiA8Y3B1aWQuaD4KKysJaXNu J3QgYXZhaWxhYmxlLgorKworKwkqIGNvbmZpZy9pMzg2L2kzODYtY3B1aWQuaDogTmV3LiBUYWtl biBmcm9tIGdjYyA0LjQuCisrCisrMjAxMC0wMS0yMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGFtZDY0LWxpbnV4LW5hdC5jOiBJbmNsdWRlICJ4c2F2ZS1uYXQuaCIK KysJKF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X25hdCk6IENoZWNrIEhBVkVfUFRSQUNFX0dFVFhT VEFURVJFR1MKKysJaW5zdGVhZCBvZiBIQVZFX1NZU19YU1RBVEVfSC4KKysKKysJKiBjb25maWd1 cmUuYWM6IEFkZCBjaGVjayBmb3IgY3B1aWQuaC4gIFJlbW92ZSBjaGVjayBmb3IKKysJc3lzL3hz dGF0ZS5oLCBfX2dldF94c3RhdGUgYW5kIF9fZ2V0X3hzdGF0ZV9zaXplLgorKwkqIGNvbmZpZy5p bjogUmVnZW5lcmF0ZWQuCisrCSogY29uZmlndXJlOiBMaWtld2lzZS4KKysKKysJKiBpMzg2LW5h dC5jIChpMzg2X3hzdGF0ZSk6IFJlbW92ZWQuCisrCShpMzg2X3hzdGF0ZV9pbml0KTogTGlrZXdp c2UuCisrCisrCSogaTM4Ni1uYXQuaCAoaTM4Nl94c3RhdGVfdHlwZSk6IFJlbW92ZWQuCisrCShp Mzg2X3hzdGF0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl94c3RhdGVfaW5pdCk6IExpa2V3aXNlLgor KworKwkqIHhzYXZlLW5hdC5jOiBOZXcuCisrCSogeHNhdmUtbmF0Lmg6IExpa2V3aXNlLgorKwor KwkqIGNvbmZpZy9pMzg2L2xpbnV4Lm1oIChOQVRERVBGSUxFUyk6IEFkZCB4c2F2ZS1uYXQuby4K KysJKiBjb25maWcvaTM4Ni9saW51eDY0Lm1oIChOQVRERVBGSUxFUyk6IExpa2V3aXNlLgorKwor KzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2 NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzX3dpdGhf eHN0YXRlKToKKysJQ2FsbCBhbWQ2NF9zdXBwbHlfeHNhdmUgaW5zdGVhZCBvZiBhbWQ2NF9zdXBw bHlfZnhzYXZlLgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzX3dpdGhf eHN0YXRlKTogQ2FsbAorKwlhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSBpbnN0ZWFkIG9mIGFtZDY0X2Nv bGxlY3RfeHNhdmUuCisrCisrCSogYW1kNjQtdGRlcC5jIChhbWQ2NF9zdXBwbHlfeHNhdmUpOiBO ZXcuCisrCShhbWQ2NF9jb2xsZWN0X3hzYXZlKTogTGlrZXdpc2UuCisrCSogYW1kNjQtdGRlcC5o IChhbWQ2NF9zdXBwbHlfeHNhdmUpOiBMaWtld2lzZS4KKysJKGFtZDY0X2NvbGxlY3RfeHNhdmUp OiBMaWtld2lzZS4KKysJKiBpMzg3LXRkZXAuYyAoaTM4N19zdXBwbHlfeHNhdmUpOiBMaWtld2lz ZS4KKysJKGkzODdfY29sbGVjdF94c2F2ZSk6IExpa2V3aXNlLgorKwkqIGkzODctdGRlcC5oIChp Mzg3X3N1cHBseV94c2F2ZSk6IExpa2V3aXNlLgorKwkoaTM4N19jb2xsZWN0X3hzYXZlKTogTGlr ZXdpc2UuCisrCisrCSogaTM4Ni1uYXQuaDogVXBkYXRlIGNvbW1lbnRzLgorKworKzIwMTAtMDEt MjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1u YXQuYyAoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzKTogUmV2ZXJ0CisrCXRo ZSBsYXN0IGNoYW5nZSwKKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6 IExpa2V3aXNlLgorKwkoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzX3dpdGhf eHN0YXRlKTogTmV3LgorKwkoYW1kNjRfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzX3dp dGhfeHN0YXRlKTogTGlrZXdpc2UuCisrCShfaW5pdGlhbGl6ZV9hbWQ2NF9saW51eF9uYXQpOiBV c2UKKysJYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzX3dpdGhfeHN0YXRlIGFu ZAorKwlhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnNfd2l0aF94c3RhdGUgaWYg cG9zc2libGUuCisrCisrCSogaTM4Ni1uYXQuaCAoaTM4Nl94c3RhdGVfdHlwZSk6IFJlbmFtZSBz aXplIHRvIG5fb2ZfaW50NjQuCisrCSogaTM4Ni1uYXQuYyAoaTM4Nl94c3RhdGUpOiBVcGRhdGVk LgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBhbWQ2NC1saW51eC1uYXQuYyAoYW1kNjRfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJz KToKKysJVXNlIFBUUkFDRV9HRVRYU1RBVEVSRUdTL1BUUkFDRV9TRVRYU1RBVEVSRUdTIGlmIHBv c3NzaWJsZS4KKysJKGFtZDY0X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3 aXNlLgorKwkoX2luaXRpYWxpemVfYW1kNjRfbGludXhfbmF0KTogQ2FsbCBpMzg2X3hzdGF0ZV9p bml0LgorKworKwkqIGkzODYtbmF0LmMgKGkzODZfeHN0YXRlKTogTmV3LgorKwkoaTM4Nl94c3Rh dGVfaW5pdCk6IExpa2V3aXNlLgorKworKwkqIGkzODYtbmF0LmggKGkzODZfeHN0YXRlX3R5cGUp OiBOZXcuCisrCShpMzg2X3hzdGF0ZSk6IExpa2V3aXNlLgorKwkoaTM4Nl94c3RhdGVfaW5pdCk6 IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBhbWQ2NC1saW51eC1uYXQuYzogUmV2ZXJ0IHRoZSBjaGFuZ2UgY2hhbmdlLgor KworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBj b25maWd1cmUuYWM6IEFkZCBjaGVjayBmb3IgX19nZXRfeHN0YXRlX3NpemUuCisrCSogY29uZmln LmluOiBSZWdlbmVyYXRlZC4KKysJKiBjb25maWd1cmU6IExpa2V3aXNlLgorKworKzIwMTAtMDEt MjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBhbWQ2NC1saW51eC1u YXQuYzogSW5jbHVkZSA8c3lzL3hzdGF0ZS5oPiBpZiBIQVZFX1NZU19YU1RBVEVfSAorKwlpcyBk ZWZpbmVkLgorKwkoaGF2ZV9wdHJhY2VfZ2V0eHN0YXRlcmVncyk6IE5ldy4KKysJKF9pbml0aWFs aXplX2FtZDY0X2xpbnV4X25hdCk6IENsZWFyIGhhdmVfcHRyYWNlX2dldHhzdGF0ZXJlZ3MKKysJ aWYgbmVlZGVkLgorKworKwkqIGdyZWdzZXQuaCAoR0RCX1hTVEFURV9TU0VfUkVHU0VUX1QpOiBO ZXcuCisrCShHREJfWFNUQVRFX0FWWF9SRUdTRVRfVCk6IExpa2V3aXNlLgorKwkoZ2RiX3hzdGF0 ZV9zc2VfcmVnc2V0X3QpOiBMaWtld2lzZS4KKysJKGdkYl94c3RhdGVfYXZ4X3JlZ3NldF90KTog TGlrZXdpc2UuCisrCShzdXBwbHlfeHN0YXRlX3NzZV9yZWdzZXQpOiBMaWtld2lzZS4KKysJKHN1 cHBseV94c3RhdGVfYXZ4X3JlZ3NldCk6IExpa2V3aXNlLgorKwkoZmlsbF94c3RhdGVfc3NlX3Jl Z3NldCk6IExpa2V3aXNlLgorKwkoZmlsbF94c3RhdGVfYXZ4X3JlZ3NldCk6IExpa2V3aXNlLgor KworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBj b25maWd1cmUuYWM6IEFkZCBjaGVjayBmb3Igc3lzL3hzdGF0ZS5oLCBfX2dldF94c3RhdGUgYW5k CisrCVBUUkFDRV9HRVRYU1RBVEVSRUdTLgorKwkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZWQuCisr CSogY29uZmlndXJlOiBMaWtld2lzZS4KKy0tLSAuL2dkYi9hbWQ2NC1saW51eC1uYXQuYwkyMDEw LTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2FtZDY0LWxpbnV4LW5h dC5jCTIwMTAtMDQtMDMgMjE6MTU6MDguMDAwMDAwMDAwICswMjAwCitAQCAtMjMsMTEgKzIzLDE0 IEBACisgI2luY2x1ZGUgImluZmVyaW9yLmgiCisgI2luY2x1ZGUgImdkYmNvcmUuaCIKKyAjaW5j bHVkZSAicmVnY2FjaGUuaCIKKysjaW5jbHVkZSAicmVnc2V0LmgiCisgI2luY2x1ZGUgImxpbnV4 LW5hdC5oIgorICNpbmNsdWRlICJhbWQ2NC1saW51eC10ZGVwLmgiCisgCisgI2luY2x1ZGUgImdk Yl9hc3NlcnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorKyNpbmNsdWRlICJlbGYvY29t bW9uLmgiCisrI2luY2x1ZGUgPHN5cy91aW8uaD4KKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgor ICNpbmNsdWRlIDxzeXMvZGVidWdyZWcuaD4KKyAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KK0BA IC01NCw2ICs1NywxOCBAQAorICNpbmNsdWRlICJpMzg3LXRkZXAuaCIKKyAjaW5jbHVkZSAiZWxm LWJmZC5oIgorICNpbmNsdWRlICJnZGJfcHJvY2ZzMzIuaCIKKysjaW5jbHVkZSAiaTM4Ni14c3Rh dGUuaCIKKysKKysjaWZuZGVmIFBUUkFDRV9HRVRSRUdTRVQKKysjZGVmaW5lIFBUUkFDRV9HRVRS RUdTRVQJMHg0MjA0CisrI2VuZGlmCisrCisrI2lmbmRlZiBQVFJBQ0VfU0VUUkVHU0VUCisrI2Rl ZmluZSBQVFJBQ0VfU0VUUkVHU0VUCTB4NDIwNQorKyNlbmRpZgorKworKy8qIERvZXMgdGhlIGN1 cnJlbnQgaG9zdCBzdXBwb3J0IFBUUkFDRV9HRVRSRUdTRVQ/ICAqLworK3N0YXRpYyBpbnQgaGF2 ZV9wdHJhY2VfZ2V0cmVnc2V0ID0gLTE7CisgCisgLyogTWFwcGluZyBiZXR3ZWVuIHRoZSBnZW5l cmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGluIEdOVS9MaW51eCB4ODYtNjQKKyAgICBgc3RydWN0IHVz ZXInIGZvcm1hdCBhbmQgR0RCJ3MgcmVnaXN0ZXIgY2FjaGUgbGF5b3V0LiAgKi8KK0BAIC03Niw2 ICs5MSw4IEBAIHN0YXRpYyBpbnQgYW1kNjRfbGludXhfZ3JlZ3NldDY0X3JlZ19vZmYKKyAgIC0x LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEs IC0xLCAtMSwKKyAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisrICAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCisrICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAt MSwgLTEsCisgICBPUklHX1JBWCAqIDgKKyB9OworIAwKK0BAIC0xMzEsNiArMTQ4LDcgQEAgc3Rh dGljIGludCBhbWQ2NF9saW51eF9ncmVnc2V0MzJfcmVnX29mZgorICAgLTEsIC0xLCAtMSwgLTEs IC0xLCAtMSwgLTEsIC0xLAorICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwKKysgIC0xLCAtMSwgLTEsIC0xLCAt MSwgLTEsIC0xLCAtMSwKKyAgIE9SSUdfUkFYICogOAkJCS8qICJvcmlnX2VheCIgKi8KKyB9Owor IAwKK0BAIC0zMTIsMTAgKzMzMCwyNiBAQCBhbWQ2NF9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdp c3RlcnMgKHN0CisgICAgIHsKKyAgICAgICBlbGZfZnByZWdzZXRfdCBmcHJlZ3M7CisgCistICAg ICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVEZQUkVHUywgdGlkLCAwLCAobG9uZykgJmZwcmVncykg PCAwKQorLQlwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxvYXRpbmcgcG9pbnQg c3RhdHVzIikpOworKyAgICAgIGlmIChoYXZlX3B0cmFjZV9nZXRyZWdzZXQpCisrCXsKKysJICBj aGFyIHhzdGF0ZXJlZ3NbSTM4Nl9YU1RBVEVfTUFYX1NJWkVdOworKwkgIHN0cnVjdCBpb3ZlYyBp b3Y7CisrCisrCSAgaW92Lmlvdl9iYXNlID0geHN0YXRlcmVnczsKKysJICBpb3YuaW92X2xlbiA9 IHNpemVvZiAoeHN0YXRlcmVncyk7CisrCSAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVFJFR1NFVCwg dGlkLAorKwkJICAgICAgKHVuc2lnbmVkIGludCkgTlRfWDg2X1hTVEFURSwgKGxvbmcpICZpb3Yp IDwgMCkKKysJICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIkNvdWxkbid0IGdldCBleHRlbmRlZCBz dGF0ZSBzdGF0dXMiKSk7CisgCistICAgICAgYW1kNjRfc3VwcGx5X2Z4c2F2ZSAocmVnY2FjaGUs IC0xLCAmZnByZWdzKTsKKysJICBhbWQ2NF9zdXBwbHlfeHNhdmUgKHJlZ2NhY2hlLCAtMSwgeHN0 YXRlcmVncyk7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBpZiAocHRyYWNlIChQVFJBQ0Vf R0VURlBSRUdTLCB0aWQsIDAsIChsb25nKSAmZnByZWdzKSA8IDApCisrCSAgICBwZXJyb3Jfd2l0 aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxvYXRpbmcgcG9pbnQgc3RhdHVzIikpOworKworKwkg IGFtZDY0X3N1cHBseV9meHNhdmUgKHJlZ2NhY2hlLCAtMSwgJmZwcmVncyk7CisrCX0KKyAgICAg fQorIH0KKyAKK0BAIC0zNTUsMTUgKzM4OSwzMyBAQCBhbWQ2NF9saW51eF9zdG9yZV9pbmZlcmlv cl9yZWdpc3RlcnMgKHN0CisgICAgIHsKKyAgICAgICBlbGZfZnByZWdzZXRfdCBmcHJlZ3M7Cisg CistICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVEZQUkVHUywgdGlkLCAwLCAobG9uZykgJmZw cmVncykgPCAwKQorLQlwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxvYXRpbmcg cG9pbnQgc3RhdHVzIikpOworKyAgICAgIGlmIChoYXZlX3B0cmFjZV9nZXRyZWdzZXQpCisrCXsK KysJICBjaGFyIHhzdGF0ZXJlZ3NbSTM4Nl9YU1RBVEVfTUFYX1NJWkVdOworKwkgIHN0cnVjdCBp b3ZlYyBpb3Y7CisgCistICAgICAgYW1kNjRfY29sbGVjdF9meHNhdmUgKHJlZ2NhY2hlLCByZWdu dW0sICZmcHJlZ3MpOworKwkgIGlvdi5pb3ZfYmFzZSA9IHhzdGF0ZXJlZ3M7CisrCSAgaW92Lmlv dl9sZW4gPSBzaXplb2YgKHhzdGF0ZXJlZ3MpOworKwkgIGlmIChwdHJhY2UgKFBUUkFDRV9HRVRS RUdTRVQsIHRpZCwKKysJCSAgICAgICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsIChsb25n KSAmaW92KSA8IDApCisrCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZXh0 ZW5kZWQgc3RhdGUgc3RhdHVzIikpOworKworKwkgIGFtZDY0X2NvbGxlY3RfeHNhdmUgKHJlZ2Nh Y2hlLCByZWdudW0sIHhzdGF0ZXJlZ3MsIDApOworKworKwkgIGlmIChwdHJhY2UgKFBUUkFDRV9T RVRSRUdTRVQsIHRpZCwKKysJCSAgICAgICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsIChs b25nKSAmaW92KSA8IDApCisrCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCB3cml0 ZSBleHRlbmRlZCBzdGF0ZSBzdGF0dXMiKSk7CisrCX0KKysgICAgICBlbHNlCisrCXsKKysJICBp ZiAocHRyYWNlIChQVFJBQ0VfR0VURlBSRUdTLCB0aWQsIDAsIChsb25nKSAmZnByZWdzKSA8IDAp CisrCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQgZmxvYXRpbmcgcG9pbnQg c3RhdHVzIikpOworIAorLSAgICAgIGlmIChwdHJhY2UgKFBUUkFDRV9TRVRGUFJFR1MsIHRpZCwg MCwgKGxvbmcpICZmcHJlZ3MpIDwgMCkKKy0JcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qg d3JpdGUgZmxvYXRpbmcgcG9pbnQgc3RhdHVzIikpOworKwkgIGFtZDY0X2NvbGxlY3RfZnhzYXZl IChyZWdjYWNoZSwgcmVnbnVtLCAmZnByZWdzKTsKKyAKKy0gICAgICByZXR1cm47CisrCSAgaWYg KHB0cmFjZSAoUFRSQUNFX1NFVEZQUkVHUywgdGlkLCAwLCAobG9uZykgJmZwcmVncykgPCAwKQor KwkgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qgd3JpdGUgZmxvYXRpbmcgcG9pbnQg c3RhdHVzIikpOworKwl9CisgICAgIH0KKyB9CisgDAorQEAgLTgzMSw2ICs4ODMsOCBAQCBhbWQ2 NF9saW51eF9yZWFkX2Rlc2NyaXB0aW9uIChzdHJ1Y3QgdGFyCisgeworICAgdW5zaWduZWQgbG9u ZyBjczsKKyAgIGludCB0aWQ7CisrICBpbnQgaXNfNjRiaXQ7CisrICBzdGF0aWMgdWludDY0X3Qg eGNyMDsKKyAKKyAgIC8qIEdOVS9MaW51eCBMV1AgSUQncyBhcmUgcHJvY2VzcyBJRCdzLiAgKi8K KyAgIHRpZCA9IFRJREdFVCAoaW5mZXJpb3JfcHRpZCk7CitAQCAtODQ0LDEwICs4OTgsNTUgQEAg YW1kNjRfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0IHRhcgorICAgaWYgKGVycm5vICE9 IDApCisgICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIkNvdWxkbid0IGdldCBDUyByZWdpc3RlciIp KTsKKyAKKy0gIGlmIChjcyA9PSBBTUQ2NF9MSU5VWF9VU0VSNjRfQ1MpCistICAgIHJldHVybiB0 ZGVzY19hbWQ2NF9saW51eDsKKysgIGlzXzY0Yml0ID0gY3MgPT0gQU1ENjRfTElOVVhfVVNFUjY0 X0NTOworKworKyAgaWYgKGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9PSAtMSkKKysgICAgeworKyAg ICAgIHVpbnQ2NF90IHhzdGF0ZXJlZ3NbKEkzODZfWFNUQVRFX1NTRV9TSVpFIC8gc2l6ZW9mICh1 aW50NjRfdCkpXTsKKysgICAgICBzdHJ1Y3QgaW92ZWMgaW92OworKyAgICAgIHVuc2lnbmVkIGlu dCB4c3RhdGVfc2l6ZTsKKysKKysgICAgICBpb3YuaW92X2Jhc2UgPSB4c3RhdGVyZWdzOworKyAg ICAgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mICh4c3RhdGVyZWdzKTsKKysKKysgICAgICAvKiBDaGVj ayBpZiBQVFJBQ0VfR0VUUkVHU0VUIHdvcmtzLiAgKi8KKysgICAgICBpZiAocHRyYWNlIChQVFJB Q0VfR0VUUkVHU0VULCB0aWQsCisrCQkgICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsIChs b25nKSAmaW92KSA8IDApCisrCXsKKysJICBoYXZlX3B0cmFjZV9nZXRyZWdzZXQgPSAwOworKwkg IHhzdGF0ZV9zaXplID0gMDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGhhdmVfcHRyYWNl X2dldHJlZ3NldCA9IDE7CisrCisrCSAgLyogR2V0IFhDUjAgZnJvbSBYU0FWRSBleHRlbmRlZCBz dGF0ZS4gICovCisrCSAgeGNyMCA9IHhzdGF0ZXJlZ3NbKEkzODZfTElOVVhfWFNBVkVfWENSMF9P RkZTRVQKKysJCQkgICAgIC8gc2l6ZW9mICh1aW50NjRfdCkpXTsKKysKKysJICB4c3RhdGVfc2l6 ZSA9IEkzODZfWFNUQVRFX1NJWkUgKHhjcjApOworKwl9CisrCisrICAgICAgaTM4Nl9saW51eF91 cGRhdGVfeHN0YXRlcmVnc2V0ICh4c3RhdGVfc2l6ZSk7CisrICAgICAgYW1kNjRfbGludXhfdXBk YXRlX3hzdGF0ZXJlZ3NldCAoeHN0YXRlX3NpemUpOworKyAgICB9CisrCisrICAvKiBDaGVjayB0 aGUgbmF0aXZlIFhDUjAgb25seSBpZiBQVFJBQ0VfR0VUUkVHU0VUIGlzIGF2YWlsYWJsZS4gICov CisrICBpZiAoaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0CisrICAgICAgJiYgKHhjcjAgJiBJMzg2X1hT VEFURV9BVlhfTUFTSykgPT0gSTM4Nl9YU1RBVEVfQVZYX01BU0spCisrICAgIHsKKysgICAgICBp ZiAoaXNfNjRiaXQpCisrCXJldHVybiB0ZGVzY19hbWQ2NF9hdnhfbGludXg7CisrICAgICAgZWxz ZQorKwlyZXR1cm4gdGRlc2NfaTM4Nl9hdnhfbGludXg7CisrICAgIH0KKyAgIGVsc2UKKy0gICAg cmV0dXJuIHRkZXNjX2kzODZfbGludXg7CisrICAgIHsKKysgICAgICBpZiAoaXNfNjRiaXQpCisr CXJldHVybiB0ZGVzY19hbWQ2NF9saW51eDsKKysgICAgICBlbHNlCisrCXJldHVybiB0ZGVzY19p Mzg2X2xpbnV4OworKyAgICB9CisgfQorIAorIC8qIFByb3ZpZGUgYSBwcm90b3R5cGUgdG8gc2ls ZW5jZSAtV21pc3NpbmctcHJvdG90eXBlcy4gICovCistLS0gLi9nZGIvYW1kNjQtbGludXgtdGRl cC5jCTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvYW1kNjQt bGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjgs OCArMjgsMTEgQEAKKyAjaW5jbHVkZSAic3ltdGFiLmgiCisgI2luY2x1ZGUgImdkYnR5cGVzLmgi CisgI2luY2x1ZGUgInJlZ2dyb3Vwcy5oIgorKyNpbmNsdWRlICJyZWdzZXQuaCIKKyAjaW5jbHVk ZSAiYW1kNjQtbGludXgtdGRlcC5oIgorKyNpbmNsdWRlICJpMzg2LWxpbnV4LXRkZXAuaCIKKyAj aW5jbHVkZSAibGludXgtdGRlcC5oIgorKyNpbmNsdWRlICJpMzg2LXhzdGF0ZS5oIgorIAorICNp bmNsdWRlICJnZGJfc3RyaW5nLmgiCisgCitAQCAtMzgsNiArNDEsNyBAQAorICNpbmNsdWRlICJ4 bWwtc3lzY2FsbC5oIgorIAorICNpbmNsdWRlICJmZWF0dXJlcy9pMzg2L2FtZDY0LWxpbnV4LmMi CisrI2luY2x1ZGUgImZlYXR1cmVzL2kzODYvYW1kNjQtYXZ4LWxpbnV4LmMiCisgCisgLyogVGhl IHN5c2NhbGwncyBYTUwgZmlsZW5hbWUgZm9yIGkzODYuICAqLworICNkZWZpbmUgWE1MX1NZU0NB TExfRklMRU5BTUVfQU1ENjQgInN5c2NhbGxzL2FtZDY0LWxpbnV4LnhtbCIKK0BAIC00NSw2ICs0 OSwxNSBAQAorICNpbmNsdWRlICJyZWNvcmQuaCIKKyAjaW5jbHVkZSAibGludXgtcmVjb3JkLmgi CisgCisrLyogU3VwcG9ydGVkIHJlZ2lzdGVyIG5vdGUgc2VjdGlvbnMuICAqLworK3N0YXRpYyBz dHJ1Y3QgY29yZV9yZWdzZXRfc2VjdGlvbiBhbWQ2NF9saW51eF9yZWdzZXRfc2VjdGlvbnNbXSA9 CisreworKyAgeyAiLnJlZyIsIDE0NCwgImdlbmVyYWwtcHVycG9zZSIgfSwKKysgIHsgIi5yZWcy IiwgNTEyLCAiZmxvYXRpbmctcG9pbnQiIH0sCisrICB7ICIucmVnLXhzdGF0ZSIsIDAsICJYU0FW RSBleHRlbmRlZCBzdGF0ZSIgfSwKKysgIHsgTlVMTCwgMCB9CisrfTsKKysKKyAvKiBNYXBwaW5n IGJldHdlZW4gdGhlIGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gYHN0cnVjdCB1c2VyJwor ICAgIGZvcm1hdCBhbmQgR0RCJ3MgcmVnaXN0ZXIgY2FjaGUgbGF5b3V0LiAgKi8KKyAKK0BAIC0x MzE2LDYgKzEzMjksMjIgQEAgYW1kNjRfbGludXhfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFy YworICAgcmV0dXJuIDA7CisgfQorIAorKy8qIFVwZGF0ZSBYU0FWRSBleHRlbmRlZCBzdGF0ZSBy ZWdpc3RlciBub3RlIHNlY3Rpb24uICAqLworKworK3ZvaWQKKythbWQ2NF9saW51eF91cGRhdGVf eHN0YXRlcmVnc2V0ICh1bnNpZ25lZCBpbnQgeHN0YXRlX3NpemUpCisreworKyAgc3RydWN0IGNv cmVfcmVnc2V0X3NlY3Rpb24gKnhzdGF0ZSA9ICZhbWQ2NF9saW51eF9yZWdzZXRfc2VjdGlvbnNb Ml07CisrCisrICAvKiBVcGRhdGUgdGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lzdGVyIG5v dGUgc2VjdGlvbiBmb3IgImdjb3JlIi4KKysgICAgIERpc2FibGUgaXQgaWYgaXRzIHNpemUgaXMg MC4gICovCisrICBnZGJfYXNzZXJ0IChzdHJjbXAgKHhzdGF0ZS0+c2VjdF9uYW1lLCAiLnJlZy14 c3RhdGUiKSA9PSAwKTsKKysgIGlmICh4c3RhdGVfc2l6ZSkKKysgICAgeHN0YXRlLT5zaXplID0g eHN0YXRlX3NpemU7CisrICBlbHNlCisrICAgIHhzdGF0ZS0+c2VjdF9uYW1lID0gTlVMTDsKKyt9 CisrCisgLyogR2V0IExpbnV4L3g4NiB0YXJnZXQgZGVzY3JpcHRpb24gZnJvbSBjb3JlIGR1bXAu ICAqLworIAorIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKgorQEAgLTEzMjQsMTIg KzEzNTMsMTcgQEAgYW1kNjRfbGludXhfY29yZV9yZWFkX2Rlc2NyaXB0aW9uIChzdHJ1YworIAkJ CQkgIGJmZCAqYWJmZCkKKyB7CisgICBhc2VjdGlvbiAqc2VjdGlvbiA9IGJmZF9nZXRfc2VjdGlv bl9ieV9uYW1lIChhYmZkLCAiLnJlZzIiKTsKKysgIHVpbnQ2NF90IHhjcjA7CisgCisgICBpZiAo c2VjdGlvbiA9PSBOVUxMKQorICAgICByZXR1cm4gTlVMTDsKKyAKKyAgIC8qIExpbnV4L3g4Ni02 NC4gICovCistICByZXR1cm4gdGRlc2NfYW1kNjRfbGludXg7CisrICB4Y3IwID0gaTM4Nl9saW51 eF9jb3JlX3JlYWRfeGNyMCAoZ2RiYXJjaCwgdGFyZ2V0LCBhYmZkKTsKKysgIGlmICgoeGNyMCAm IEkzODZfWFNUQVRFX0FWWF9NQVNLKSA9PSBJMzg2X1hTVEFURV9BVlhfTUFTSykKKysgICAgcmV0 dXJuIHRkZXNjX2FtZDY0X2F2eF9saW51eDsKKysgIGVsc2UKKysgICAgcmV0dXJuIHRkZXNjX2Ft ZDY0X2xpbnV4OworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTEzNzMsNiArMTQwNyw4IEBAIGFt ZDY0X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmYKKyAKKyAgIHRkZXAtPm91dGVy bW9zdF9mcmFtZV9wID0gYW1kNjRfbGludXhfb3V0ZXJtb3N0X2ZyYW1lOworIAorKyAgdGRlcC0+ eHNhdmVfeGNyMF9vZmZzZXQgPSBJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUOworKworICAg LyogR05VL0xpbnV4IHVzZXMgU1ZSNC1zdHlsZSBzaGFyZWQgbGlicmFyaWVzLiAgKi8KKyAgIHNl dF9zb2xpYl9zdnI0X2ZldGNoX2xpbmtfbWFwX29mZnNldHMKKyAgICAgKGdkYmFyY2gsIHN2cjRf bHA2NF9mZXRjaF9saW5rX21hcF9vZmZzZXRzKTsKK0BAIC0xMzk0LDYgKzE0MzAsOSBAQCBhbWQ2 NF9saW51eF9pbml0X2FiaSAoc3RydWN0IGdkYmFyY2hfaW5mCisgICAvKiBHTlUvTGludXggdXNl cyBTVlI0LXN0eWxlIHNoYXJlZCBsaWJyYXJpZXMuICAqLworICAgc2V0X2dkYmFyY2hfc2tpcF90 cmFtcG9saW5lX2NvZGUgKGdkYmFyY2gsIGZpbmRfc29saWJfdHJhbXBvbGluZV90YXJnZXQpOwor IAorKyAgLyogSW5zdGFsbCBzdXBwb3J0ZWQgcmVnaXN0ZXIgbm90ZSBzZWN0aW9ucy4gICovCisr ICBzZXRfZ2RiYXJjaF9jb3JlX3JlZ3NldF9zZWN0aW9ucyAoZ2RiYXJjaCwgYW1kNjRfbGludXhf cmVnc2V0X3NlY3Rpb25zKTsKKysKKyAgIHNldF9nZGJhcmNoX2NvcmVfcmVhZF9kZXNjcmlwdGlv biAoZ2RiYXJjaCwKKyAJCQkJICAgICBhbWQ2NF9saW51eF9jb3JlX3JlYWRfZGVzY3JpcHRpb24p OworIAorQEAgLTE1OTYsNCArMTYzNSw1IEBAIF9pbml0aWFsaXplX2FtZDY0X2xpbnV4X3RkZXAg KHZvaWQpCisgCisgICAvKiBJbml0aWFsaXplIHRoZSBMaW51eCB0YXJnZXQgZGVzY3JpcHRpb24g ICovCisgICBpbml0aWFsaXplX3RkZXNjX2FtZDY0X2xpbnV4ICgpOworKyAgaW5pdGlhbGl6ZV90 ZGVzY19hbWQ2NF9hdnhfbGludXggKCk7CisgfQorLS0tIC4vZ2RiL2FtZDY0LWxpbnV4LXRkZXAu aAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2FtZDY0LWxp bnV4LXRkZXAuaAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTI2LDEz ICsyNiwxNyBAQAorIC8qIFJlZ2lzdGVyIG51bWJlciBmb3IgdGhlICJvcmlnX3JheCIgcmVnaXN0 ZXIuICBJZiB0aGlzIHJlZ2lzdGVyCisgICAgY29udGFpbnMgYSB2YWx1ZSA+PSAwIGl0IGlzIGlu dGVycHJldGVkIGFzIHRoZSBzeXN0ZW0gY2FsbCBudW1iZXIKKyAgICB0aGF0IHRoZSBrZXJuZWwg aXMgc3VwcG9zZWQgdG8gcmVzdGFydC4gICovCistI2RlZmluZSBBTUQ2NF9MSU5VWF9PUklHX1JB WF9SRUdOVU0gKEFNRDY0X01YQ1NSX1JFR05VTSArIDEpCisrI2RlZmluZSBBTUQ2NF9MSU5VWF9P UklHX1JBWF9SRUdOVU0gKEFNRDY0X1lNTTE1SF9SRUdOVU0gKyAxKQorIAorIC8qIFRvdGFsIG51 bWJlciBvZiByZWdpc3RlcnMgZm9yIEdOVS9MaW51eC4gICovCisgI2RlZmluZSBBTUQ2NF9MSU5V WF9OVU1fUkVHUyAoQU1ENjRfTElOVVhfT1JJR19SQVhfUkVHTlVNICsgMSkKKyAKKyAvKiBMaW51 eCB0YXJnZXQgZGVzY3JpcHRpb24uICAqLworIGV4dGVybiBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRk ZXNjX2FtZDY0X2xpbnV4OworK2V4dGVybiBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjX2FtZDY0 X2F2eF9saW51eDsKKysKKysvKiBVcGRhdGUgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgcmVnaXN0ZXIg bm90ZSBzZWN0aW9uLiAgKi8KKytleHRlcm4gdm9pZCBhbWQ2NF9saW51eF91cGRhdGVfeHN0YXRl cmVnc2V0ICh1bnNpZ25lZCBpbnQgeHN0YXRlX3NpemUpOworIAorIC8qIEVudW0gdGhhdCBkZWZp bmVzIHRoZSBzeXNjYWxsIGlkZW50aWZpZXJzIGZvciBhbWQ2NCBsaW51eC4KKyAgICBVc2VkIGZv ciBwcm9jZXNzIHJlY29yZC9yZXBsYXksIHRoZXNlIHdpbGwgYmUgdHJhbnNsYXRlZCBpbnRvCist LS0gLi9nZGIvYW1kNjQtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTE6NDEuMDAwMDAwMDAwICswMjAw CisrKysgLi9nZGIvYW1kNjQtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICsw MjAwCitAQCAtNDMsNiArNDMsNyBAQAorICNpbmNsdWRlICJpMzg3LXRkZXAuaCIKKyAKKyAjaW5j bHVkZSAiZmVhdHVyZXMvaTM4Ni9hbWQ2NC5jIgorKyNpbmNsdWRlICJmZWF0dXJlcy9pMzg2L2Ft ZDY0LWF2eC5jIgorIAorIC8qIE5vdGUgdGhhdCB0aGUgQU1ENjQgYXJjaGl0ZWN0dXJlIHdhcyBw cmV2aW91c2x5IGtub3duIGFzIHg4Ni02NC4KKyAgICBUaGUgbGF0dGVyIGlzIChmb3JldmVyKSBl bmdyYXZlZCBpbnRvIHRoZSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgYXMKK0BAIC03MSw4ICs3Miwy MSBAQCBzdGF0aWMgY29uc3QgY2hhciAqYW1kNjRfcmVnaXN0ZXJfbmFtZXNbCisgICAibXhjc3Ii LAorIH07CisgCistLyogVG90YWwgbnVtYmVyIG9mIHJlZ2lzdGVycy4gICovCistI2RlZmluZSBB TUQ2NF9OVU1fUkVHUwlBUlJBWV9TSVpFIChhbWQ2NF9yZWdpc3Rlcl9uYW1lcykKKytzdGF0aWMg Y29uc3QgY2hhciAqYW1kNjRfeW1tX25hbWVzW10gPSAKKyt7CisrICAieW1tMCIsICJ5bW0xIiwg InltbTIiLCAieW1tMyIsCisrICAieW1tNCIsICJ5bW01IiwgInltbTYiLCAieW1tNyIsCisrICAi eW1tOCIsICJ5bW05IiwgInltbTEwIiwgInltbTExIiwKKysgICJ5bW0xMiIsICJ5bW0xMyIsICJ5 bW0xNCIsICJ5bW0xNSIKKyt9OworKworK3N0YXRpYyBjb25zdCBjaGFyICphbWQ2NF95bW1oX25h bWVzW10gPSAKKyt7CisrICAieW1tMGgiLCAieW1tMWgiLCAieW1tMmgiLCAieW1tM2giLAorKyAg InltbTRoIiwgInltbTVoIiwgInltbTZoIiwgInltbTdoIiwKKysgICJ5bW04aCIsICJ5bW05aCIs ICJ5bW0xMGgiLCAieW1tMTFoIiwKKysgICJ5bW0xMmgiLCAieW1tMTNoIiwgInltbTE0aCIsICJ5 bW0xNWgiCisrfTsKKyAKKyAvKiBUaGUgcmVnaXN0ZXJzIHVzZWQgdG8gcGFzcyBpbnRlZ2VyIGFy Z3VtZW50cyBkdXJpbmcgYSBmdW5jdGlvbiBjYWxsLiAgKi8KKyBzdGF0aWMgaW50IGFtZDY0X2R1 bW15X2NhbGxfaW50ZWdlcl9yZWdzW10gPQorQEAgLTE2Myw2ICsxNzcsOCBAQCBzdGF0aWMgY29u c3QgaW50IGFtZDY0X2R3YXJmX3JlZ21hcF9sZW4gCisgc3RhdGljIGludAorIGFtZDY0X2R3YXJm X3JlZ190b19yZWdudW0gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnKQorIHsKKysg IHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAg aW50IHltbTBfcmVnbnVtID0gdGRlcC0+eW1tMF9yZWdudW07CisgICBpbnQgcmVnbnVtID0gLTE7 CisgCisgICBpZiAocmVnID49IDAgJiYgcmVnIDwgYW1kNjRfZHdhcmZfcmVnbWFwX2xlbikKK0BA IC0xNzAsNiArMTg2LDkgQEAgYW1kNjRfZHdhcmZfcmVnX3RvX3JlZ251bSAoc3RydWN0IGdkYmFy YworIAorICAgaWYgKHJlZ251bSA9PSAtMSkKKyAgICAgd2FybmluZyAoXygiVW5tYXBwZWQgRFdB UkYgUmVnaXN0ZXIgIyVkIGVuY291bnRlcmVkLiIpLCByZWcpOworKyAgZWxzZSBpZiAoeW1tMF9y ZWdudW0gPj0gMAorKwkgICAmJiBpMzg2X3htbV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkK KysgICAgcmVnbnVtICs9IHltbTBfcmVnbnVtIC0gSTM4N19YTU0wX1JFR05VTSAodGRlcCk7Cisg CisgICByZXR1cm4gcmVnbnVtOworIH0KK0BAIC0yMzgsNiArMjU3LDE5IEBAIHN0YXRpYyBjb25z dCBjaGFyICphbWQ2NF9kd29yZF9uYW1lc1tdID0KKyAgICJyOGQiLCAicjlkIiwgInIxMGQiLCAi cjExZCIsICJyMTJkIiwgInIxM2QiLCAicjE0ZCIsICJyMTVkIgorIH07CisgCisrLyogUmV0dXJu IHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJFR05VTSwgb3IgdGhlIGVtcHR5IHN0cmluZyBpZiBpdCBp cworKyAgIGFuIGFub255bW91cyByZWdpc3Rlci4gKi8KKysKKytzdGF0aWMgY29uc3QgY2hhciAq CisrYW1kNjRfcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdu dW0pCisreworKyAgLyogSGlkZSB0aGUgdXBwZXIgWU1NIHJlZ2lzdGVycy4gICovCisrICBpZiAo aTM4Nl95bW1oX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorKyAgICByZXR1cm4gIiI7Cisr CisrICByZXR1cm4gdGRlc2NfcmVnaXN0ZXJfbmFtZSAoZ2RiYXJjaCwgcmVnbnVtKTsKKyt9Cisr CisgLyogUmV0dXJuIHRoZSBuYW1lIG9mIHJlZ2lzdGVyIFJFR05VTS4gICovCisgCisgc3RhdGlj IGNvbnN0IGNoYXIgKgorQEAgLTI0Niw2ICsyNzgsOCBAQCBhbWQ2NF9wc2V1ZG9fcmVnaXN0ZXJf bmFtZSAoc3RydWN0IGdkYmFyCisgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKKyAgIGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gsIHJl Z251bSkpCisgICAgIHJldHVybiBhbWQ2NF9ieXRlX25hbWVzW3JlZ251bSAtIHRkZXAtPmFsX3Jl Z251bV07CisrICBlbHNlIGlmIChpMzg2X3ltbV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkK KysgICAgcmV0dXJuIGFtZDY0X3ltbV9uYW1lc1tyZWdudW0gLSB0ZGVwLT55bW0wX3JlZ251bV07 CisgICBlbHNlIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgICAg IHJldHVybiBhbWQ2NF93b3JkX25hbWVzW3JlZ251bSAtIHRkZXAtPmF4X3JlZ251bV07CisgICBl bHNlIGlmIChpMzg2X2R3b3JkX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQorQEAgLTIxODEs NiArMjIxNSwyOCBAQCBhbWQ2NF9jb2xsZWN0X2ZwcmVnc2V0IChjb25zdCBzdHJ1Y3QgcmVnCisg ICBhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgZnByZWdzKTsKKyB9Cisg CisrLyogU2ltaWxhciB0byBhbWQ2NF9zdXBwbHlfZnByZWdzZXQsIGJ1dCB1c2UgWFNBVkUgZXh0 ZW5kZWQgc3RhdGUuICAqLworKworK3N0YXRpYyB2b2lkCisrYW1kNjRfc3VwcGx5X3hzdGF0ZXJl Z3NldCAoY29uc3Qgc3RydWN0IHJlZ3NldCAqcmVnc2V0LAorKwkJCSAgIHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsIGludCByZWdudW0sCisrCQkJICAgY29uc3Qgdm9pZCAqeHN0YXRlcmVncywg c2l6ZV90IGxlbikKKyt7CisrICBjb25zdCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2Ri YXJjaF90ZGVwIChyZWdzZXQtPmFyY2gpOworKyAgYW1kNjRfc3VwcGx5X3hzYXZlIChyZWdjYWNo ZSwgcmVnbnVtLCB4c3RhdGVyZWdzKTsKKyt9CisrCisrLyogU2ltaWxhciB0byBhbWQ2NF9jb2xs ZWN0X2ZwcmVnc2V0LCBidXQgdXNlIFhTQVZFIGV4dGVuZGVkIHN0YXRlLiAgKi8KKysKKytzdGF0 aWMgdm9pZAorK2FtZDY0X2NvbGxlY3RfeHN0YXRlcmVnc2V0IChjb25zdCBzdHJ1Y3QgcmVnc2V0 ICpyZWdzZXQsCisrCQkJICAgIGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisrCQkJ ICAgIGludCByZWdudW0sIHZvaWQgKnhzdGF0ZXJlZ3MsIHNpemVfdCBsZW4pCisreworKyAgY29u c3Qgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAocmVnc2V0LT5hcmNo KTsKKysgIGFtZDY0X2NvbGxlY3RfeHNhdmUgKHJlZ2NhY2hlLCByZWdudW0sIHhzdGF0ZXJlZ3Ms IDEpOworK30KKysKKyAvKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyIHNldCBmb3Ig dGhlIGNvcmUgc2VjdGlvbiBpZGVudGlmaWVkCisgICAgYnkgU0VDVF9OQU1FIGFuZCBTRUNUX1NJ WkUuICAqLworIAorQEAgLTIxOTksNiArMjI1NSwxNiBAQCBhbWQ2NF9yZWdzZXRfZnJvbV9jb3Jl X3NlY3Rpb24gKHN0cnVjdCBnCisgICAgICAgcmV0dXJuIHRkZXAtPmZwcmVnc2V0OworICAgICB9 CisgCisrICBpZiAoc3RyY21wIChzZWN0X25hbWUsICIucmVnLXhzdGF0ZSIpID09IDApCisrICAg IHsKKysgICAgICBpZiAodGRlcC0+eHN0YXRlcmVnc2V0ID09IE5VTEwpCisrCXRkZXAtPnhzdGF0 ZXJlZ3NldCA9IHJlZ3NldF9hbGxvYyAoZ2RiYXJjaCwKKysJCQkJCSAgIGFtZDY0X3N1cHBseV94 c3RhdGVyZWdzZXQsCisrCQkJCQkgICBhbWQ2NF9jb2xsZWN0X3hzdGF0ZXJlZ3NldCk7CisrCisr ICAgICAgcmV0dXJuIHRkZXAtPnhzdGF0ZXJlZ3NldDsKKysgICAgfQorKworICAgcmV0dXJuIGkz ODZfcmVnc2V0X2Zyb21fY29yZV9zZWN0aW9uIChnZGJhcmNoLCBzZWN0X25hbWUsIHNlY3Rfc2l6 ZSk7CisgfQorIAwKK0BAIC0yMjYxLDYgKzIzMjcsMTMgQEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVj dCBnZGJhcmNoX2luZm8gaW5mbworICAgdGRlcC0+bnVtX2NvcmVfcmVncyA9IEFNRDY0X05VTV9H UkVHUyArIEkzODdfTlVNX1JFR1M7CisgICB0ZGVwLT5yZWdpc3Rlcl9uYW1lcyA9IGFtZDY0X3Jl Z2lzdGVyX25hbWVzOworIAorKyAgaWYgKHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRlc2MsICJvcmcu Z251LmdkYi5pMzg2LmF2eCIpICE9IE5VTEwpCisrICAgIHsKKysgICAgICB0ZGVwLT55bW1oX3Jl Z2lzdGVyX25hbWVzID0gYW1kNjRfeW1taF9uYW1lczsKKysgICAgICB0ZGVwLT5udW1feW1tX3Jl Z3MgPSAxNjsKKysgICAgICB0ZGVwLT55bW0waF9yZWdudW0gPSBBTUQ2NF9ZTU0wSF9SRUdOVU07 CisrICAgIH0KKysKKyAgIHRkZXAtPm51bV9ieXRlX3JlZ3MgPSAyMDsKKyAgIHRkZXAtPm51bV93 b3JkX3JlZ3MgPSAxNjsKKyAgIHRkZXAtPm51bV9kd29yZF9yZWdzID0gMTY7CitAQCAtMjI3NCw2 ICsyMzQ3LDggQEAgYW1kNjRfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbworIAor ICAgc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBhbWQ2NF9wc2V1ZG9f cmVnaXN0ZXJfbmFtZSk7CisgCisrICBzZXRfZ2RiYXJjaF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNo LCBhbWQ2NF9yZWdpc3Rlcl9uYW1lKTsKKysKKyAgIC8qIEFNRDY0IGhhcyBhbiBGUFUgYW5kIDE2 IFNTRSByZWdpc3RlcnMuICAqLworICAgdGRlcC0+c3QwX3JlZ251bSA9IEFNRDY0X1NUMF9SRUdO VU07CisgICB0ZGVwLT5udW1feG1tX3JlZ3MgPSAxNjsKK0BAIC0yMzU0LDYgKzI0MjksNyBAQCB2 b2lkCisgX2luaXRpYWxpemVfYW1kNjRfdGRlcCAodm9pZCkKKyB7CisgICBpbml0aWFsaXplX3Rk ZXNjX2FtZDY0ICgpOworKyAgaW5pdGlhbGl6ZV90ZGVzY19hbWQ2NF9hdnggKCk7CisgfQorIAwK KyAKK0BAIC0yMzg5LDYgKzI0NjUsMzAgQEAgYW1kNjRfc3VwcGx5X2Z4c2F2ZSAoc3RydWN0IHJl Z2NhY2hlICpyZQorICAgICB9CisgfQorIAorKy8qIFNpbWlsYXIgdG8gYW1kNjRfc3VwcGx5X2Z4 c2F2ZSwgYnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrCisrdm9pZAorK2FtZDY0 X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKysJ CSAgICBjb25zdCB2b2lkICp4c2F2ZSkKKyt7CisrICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CisrICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKysKKysgIGkzODdfc3VwcGx5X3hzYXZlIChy ZWdjYWNoZSwgcmVnbnVtLCB4c2F2ZSk7CisrCisrICBpZiAoeHNhdmUgJiYgZ2RiYXJjaF9wdHJf Yml0IChnZGJhcmNoKSA9PSA2NCkKKysgICAgeworKyAgICAgIGNvbnN0IGdkYl9ieXRlICpyZWdz ID0geHNhdmU7CisrCisrICAgICAgaWYgKHJlZ251bSA9PSAtMSB8fCByZWdudW0gPT0gSTM4N19G SVNFR19SRUdOVU0gKHRkZXApKQorKwlyZWdjYWNoZV9yYXdfc3VwcGx5IChyZWdjYWNoZSwgSTM4 N19GSVNFR19SRUdOVU0gKHRkZXApLAorKwkJCSAgICAgcmVncyArIDEyKTsKKysgICAgICBpZiAo cmVnbnVtID09IC0xIHx8IHJlZ251bSA9PSBJMzg3X0ZPU0VHX1JFR05VTSAodGRlcCkpCisrCXJl Z2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCBJMzg3X0ZPU0VHX1JFR05VTSAodGRlcCksCisr CQkJICAgICByZWdzICsgMjApOworKyAgICB9CisrfQorKworIC8qIEZpbGwgcmVnaXN0ZXIgUkVH TlVNIChpZiBpdCBpcyBhIGZsb2F0aW5nLXBvaW50IG9yIFNTRSByZWdpc3RlcikgaW4KKyAgICAq RlhTQVZFIHdpdGggdGhlIHZhbHVlIGZyb20gUkVHQ0FDSEUuICBJZiBSRUdOVU0gaXMgLTEsIGRv IHRoaXMgZm9yCisgICAgYWxsIHJlZ2lzdGVycy4gIFRoaXMgZnVuY3Rpb24gZG9lc24ndCB0b3Vj aCBhbnkgb2YgdGhlIHJlc2VydmVkCitAQCAtMjQxMiwzICsyNTEyLDI2IEBAIGFtZDY0X2NvbGxl Y3RfZnhzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2EKKyAJcmVnY2FjaGVfcmF3X2NvbGxlY3QgKHJl Z2NhY2hlLCBJMzg3X0ZPU0VHX1JFR05VTSAodGRlcCksIHJlZ3MgKyAyMCk7CisgICAgIH0KKyB9 CisrCisrLyogU2ltaWxhciB0byBhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSwgYnV0IGJ1dCB1c2UgWFNB VkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK3ZvaWQKKythbWQ2NF9jb2xsZWN0X3hzYXZlIChj b25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorKwkJICAgICB2b2lk ICp4c2F2ZSwgaW50IGdjb3JlKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0 X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAg PSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOworKyAgZ2RiX2J5dGUgKnJlZ3MgPSB4c2F2ZTsKKysK KysgIGkzODdfY29sbGVjdF94c2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgeHNhdmUsIGdjb3JlKTsK KysKKysgIGlmIChnZGJhcmNoX3B0cl9iaXQgKGdkYmFyY2gpID09IDY0KQorKyAgICB7CisrICAg ICAgaWYgKHJlZ251bSA9PSAtMSB8fCByZWdudW0gPT0gSTM4N19GSVNFR19SRUdOVU0gKHRkZXAp KQorKwlyZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIEkzODdfRklTRUdfUkVHTlVNICh0 ZGVwKSwKKysJCQkgICAgICByZWdzICsgMTIpOworKyAgICAgIGlmIChyZWdudW0gPT0gLTEgfHwg cmVnbnVtID09IEkzODdfRk9TRUdfUkVHTlVNICh0ZGVwKSkKKysJcmVnY2FjaGVfcmF3X2NvbGxl Y3QgKHJlZ2NhY2hlLCBJMzg3X0ZPU0VHX1JFR05VTSAodGRlcCksCisrCQkJICAgICAgcmVncyAr IDIwKTsKKysgICAgfQorK30KKy0tLSAuL2dkYi9hbWQ2NC10ZGVwLmgJMjAxMC0wMS0yOSAwNjox OToyMi4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9hbWQ2NC10ZGVwLmgJMjAxMC0wNC0wMyAy MToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC02MSwxMiArNjEsMTYgQEAgZW51bSBhbWQ2NF9y ZWdudW0KKyAgIEFNRDY0X0ZTVEFUX1JFR05VTSA9IEFNRDY0X1NUMF9SRUdOVU0gKyA5LAorICAg QU1ENjRfWE1NMF9SRUdOVU0gPSA0MCwJLyogJXhtbTAgKi8KKyAgIEFNRDY0X1hNTTFfUkVHTlVN LAkJLyogJXhtbTEgKi8KKy0gIEFNRDY0X01YQ1NSX1JFR05VTSA9IEFNRDY0X1hNTTBfUkVHTlVN ICsgMTYKKysgIEFNRDY0X01YQ1NSX1JFR05VTSA9IEFNRDY0X1hNTTBfUkVHTlVNICsgMTYsCisr ICBBTUQ2NF9ZTU0wSF9SRUdOVU0sCQkvKiAleW1tMGggKi8KKysgIEFNRDY0X1lNTTE1SF9SRUdO VU0gPSBBTUQ2NF9ZTU0wSF9SRUdOVU0gKyAxNQorIH07CisgCisgLyogTnVtYmVyIG9mIGdlbmVy YWwgcHVycG9zZSByZWdpc3RlcnMuICAqLworICNkZWZpbmUgQU1ENjRfTlVNX0dSRUdTCQkyNAor IAorKyNkZWZpbmUgQU1ENjRfTlVNX1JFR1MJCShBTUQ2NF9ZTU0xNUhfUkVHTlVNICsgMSkKKysK KyBleHRlcm4gc3RydWN0IGRpc3BsYWNlZF9zdGVwX2Nsb3N1cmUgKmFtZDY0X2Rpc3BsYWNlZF9z dGVwX2NvcHlfaW5zbgorICAgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgZnJv bSwgQ09SRV9BRERSIHRvLAorICAgIHN0cnVjdCByZWdjYWNoZSAqcmVncyk7CitAQCAtNzcsMTIg KzgxLDYgQEAgZXh0ZXJuIHZvaWQgYW1kNjRfZGlzcGxhY2VkX3N0ZXBfZml4dXAgKAorIAorIGV4 dGVybiB2b2lkIGFtZDY0X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoKTsKKyAKKy0vKiBGdW5jdGlvbnMgZnJvbSBhbWQ2NC10ZGVwLmMg d2hpY2ggbWF5IGJlIG5lZWRlZCBvbiBhcmNoaXRlY3R1cmVzCistICAgd2l0aCBleHRyYSByZWdp c3RlcnMuICAqLworLQorLWV4dGVybiBjb25zdCBjaGFyICphbWQ2NF9yZWdpc3Rlcl9uYW1lIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSk7CistZXh0ZXJuIHN0cnVjdCB0eXBl ICphbWQ2NF9yZWdpc3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251 bSk7CistCisgLyogRmlsbCByZWdpc3RlciBSRUdOVU0gaW4gUkVHQ0FDSEUgd2l0aCB0aGUgYXBw cm9wcmlhdGUKKyAgICBmbG9hdGluZy1wb2ludCBvciBTU0UgcmVnaXN0ZXIgdmFsdWUgZnJvbSAq RlhTQVZFLiAgSWYgUkVHTlVNIGlzCisgICAgLTEsIGRvIHRoaXMgZm9yIGFsbCByZWdpc3RlcnMu ICBUaGlzIGZ1bmN0aW9uIG1hc2tzIG9mZiBhbnkgb2YgdGhlCitAQCAtOTEsNiArODksMTAgQEAg ZXh0ZXJuIHN0cnVjdCB0eXBlICphbWQ2NF9yZWdpc3Rlcl90eXBlIAorIGV4dGVybiB2b2lkIGFt ZDY0X3N1cHBseV9meHNhdmUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0s CisgCQkJCSBjb25zdCB2b2lkICpmeHNhdmUpOworIAorKy8qIFNpbWlsYXIgdG8gYW1kNjRfc3Vw cGx5X2Z4c2F2ZSwgYnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrZXh0ZXJuIHZv aWQgYW1kNjRfc3VwcGx5X3hzYXZlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVn bnVtLAorKwkJCQljb25zdCB2b2lkICp4c2F2ZSk7CisrCisgLyogRmlsbCByZWdpc3RlciBSRUdO VU0gKGlmIGl0IGlzIGEgZmxvYXRpbmctcG9pbnQgb3IgU1NFIHJlZ2lzdGVyKSBpbgorICAgICpG WFNBVkUgd2l0aCB0aGUgdmFsdWUgZnJvbSBSRUdDQUNIRS4gIElmIFJFR05VTSBpcyAtMSwgZG8g dGhpcyBmb3IKKyAgICBhbGwgcmVnaXN0ZXJzLiAgVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRvdWNo IGFueSBvZiB0aGUgcmVzZXJ2ZWQKK0BAIC05OSw2ICsxMDEsMTAgQEAgZXh0ZXJuIHZvaWQgYW1k NjRfc3VwcGx5X2Z4c2F2ZSAoc3RydWN0IAorIGV4dGVybiB2b2lkIGFtZDY0X2NvbGxlY3RfZnhz YXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorIAkJCQkg IHZvaWQgKmZ4c2F2ZSk7CisgCisrLyogU2ltaWxhciB0byBhbWQ2NF9jb2xsZWN0X2Z4c2F2ZSwg YnV0IGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworK2V4dGVybiB2b2lkIGFtZDY0 X2NvbGxlY3RfeHNhdmUgKGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCisrCQkJCSBp bnQgcmVnbnVtLCB2b2lkICp4c2F2ZSwgaW50IGdjb3JlKTsKKysKKyB2b2lkIGFtZDY0X2NsYXNz aWZ5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl0pOwor IAorIAwKKy0tLSAuL2dkYi9jb21tb24vaTM4Ni14c3RhdGUuaAkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2NvbW1vbi9pMzg2LXhzdGF0ZS5oCTIwMTAtMDQt MDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDQxIEBACisrLyogQ29tbW9u IGNvZGUgZm9yIGkzODYgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuCisrCisrICAgQ29weXJpZ2h0IChD KSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisrCisrI2lmbmRlZiBJMzg2X1hTVEFURV9ICisrI2RlZmluZSBJMzg2X1hTVEFURV9IIDEK KysKKysvKiBUaGUgZXh0ZW5kZWQgc3RhdGUgZmVhdHVyZSBiaXRzLiAgKi8KKysjZGVmaW5lIEkz ODZfWFNUQVRFX1g4NwkJKDFVTEwgPDwgMCkKKysjZGVmaW5lIEkzODZfWFNUQVRFX1NTRQkJKDFV TEwgPDwgMSkKKysjZGVmaW5lIEkzODZfWFNUQVRFX0FWWAkJKDFVTEwgPDwgMikKKysKKysvKiBT dXBwb3J0ZWQgbWFzayBhbmQgc2l6ZSBvZiB0aGUgZXh0ZW5kZWQgc3RhdGUuICAqLworKyNkZWZp bmUgSTM4Nl9YU1RBVEVfU1NFX01BU0sJKEkzODZfWFNUQVRFX1g4NyB8IEkzODZfWFNUQVRFX1NT RSkKKysjZGVmaW5lIEkzODZfWFNUQVRFX0FWWF9NQVNLCShJMzg2X1hTVEFURV9TU0VfTUFTSyB8 IEkzODZfWFNUQVRFX0FWWCkKKysKKysjZGVmaW5lIEkzODZfWFNUQVRFX1NTRV9TSVpFCTU3Ngor KyNkZWZpbmUgSTM4Nl9YU1RBVEVfQVZYX1NJWkUJODMyCisrI2RlZmluZSBJMzg2X1hTVEFURV9N QVhfU0laRQk4MzIKKysKKysvKiBHZXQgSTM4NiBYU0FWRSBleHRlbmRlZCBzdGF0ZSBzaXplLiAg Ki8KKysjZGVmaW5lIEkzODZfWFNUQVRFX1NJWkUoWENSMCkJXAorKyAgKCgoWENSMCkgJiBJMzg2 X1hTVEFURV9BVlgpICE9IDAgXAorKyAgID8gSTM4Nl9YU1RBVEVfQVZYX1NJWkUgOiBJMzg2X1hT VEFURV9TU0VfU0laRSkKKysKKysjZW5kaWYgLyogSTM4Nl9YU1RBVEVfSCAqLworLS0tIC4vZ2Ri L2NvbmZpZy9kamdwcC9mbmNoYW5nZS5sc3QJMjAxMC0wMi0wMSAyMDoyNzo1NS4wMDAwMDAwMDAg KzAxMDAKKysrKyAuL2dkYi9jb25maWcvZGpncHAvZm5jaGFuZ2UubHN0CTIwMTAtMDQtMDMgMjE6 MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjI4LDYgKzIyOCwxNCBAQAorIEBWQC9nZGIvZmVh dHVyZXMvcnM2MDAwL3Bvd2VycGMtdnN4NjRsLnhtbCBAVkAvZ2RiL2ZlYXR1cmVzL3JzNjAwMC9w cGMtdjY0bC54bWwKKyBAVkAvZ2RiL2ZlYXR1cmVzL3JzNjAwMC9wb3dlcnBjLWNlbGwzMmwueG1s IEBWQC9nZGIvZmVhdHVyZXMvcnM2MDAwL3BwYy1jMzJsLnhtbAorIEBWQC9nZGIvZmVhdHVyZXMv cnM2MDAwL3Bvd2VycGMtY2VsbDY0bC54bWwgQFZAL2dkYi9mZWF0dXJlcy9yczYwMDAvcHBjLWM2 NGwueG1sCisrQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC1saW51eC5jIEBWQC9nZGIv ZmVhdHVyZXMvaTM4Ni9hNjQtYWwuYworK0BWQC9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngu YyBAVkAvZ2RiL2ZlYXR1cmVzL2kzODYvYTY0LWEuYworK0BWQC9nZGIvZmVhdHVyZXMvaTM4Ni9h bWQ2NC1hdngtbGludXgueG1sIEBWQC9nZGIvZmVhdHVyZXMvaTM4Ni9hNjQtYWwueG1sCisrQFZA L2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC54bWwgQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2E2 NC1hLnhtbAorK0BWQC9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC5jIEBWQC9mZWF0 dXJlcy9pMzg2L2kzMi1hbC5jCisrQFZAL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYtYXZ4LmMgQFZA L2dkYi9mZWF0dXJlcy9pMzg2L2kzMi1hLmMKKytAVkAvZ2RiL2ZlYXR1cmVzL2kzODYvaTM4Ni1h dngtbGludXgueG1sIEBWQC9nZGIvZmVhdHVyZXMvaTM4Ni9pMzItYWwueG1sCisrQFZAL2dkYi9m ZWF0dXJlcy9pMzg2L2kzODYtYXZ4LnhtbCBAVkAvZ2RiL2ZlYXR1cmVzL2kzODYvaTMyLWEueG1s CisgQFZAL2dkYi9mLWV4cC50YWIuYyBAVkAvZ2RiL2YtZXhwX3RhYi5jCisgQFZAL2dkYi9nZGJz ZXJ2ZXIvbGludXgtY3Jpcy1sb3cuYyBAVkAvZ2RiL2dkYnNlcnZlci9seC1jcmlzLmMKKyBAVkAv Z2RiL2dkYnNlcnZlci9saW51eC1jcmlzdjMyLWxvdy5jIEBWQC9nZGIvZ2Ric2VydmVyL2x4LWNy aXMzMi5jCistLS0gLi9nZGIvZG9jL0NoYW5nZUxvZy54Y3IJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9kb2MvQ2hhbmdlTG9nLnhjcgkyMDEwLTA0LTAzIDIx OjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzMSBAQAorKzIwMTAtMDMtMjcgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoR2VuZXJh bCBRdWVyeSBQYWNrZXRzKTogUmVwbGFjZSAieDg2PXhtbCIgd2l0aAorKwkieG1sUmVnaXN0ZXJz KyIuCisrCisrMjAxMC0wMy0xMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGdkYi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5IFBhY2tldHMpOiBVcGRhdGVkLgorKwkoaTM4 NiBGZWF0dXJlcyk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDYgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoaTM4NiBGZWF0dXJlcyk6IE1ha2Ug b3JnLmdudS5nZGIuaTM4Ni5hdnggb3B0aW9uYWwuCisrCisrMjAxMC0wMy0wNSAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5 IFBhY2tldHMpOiBSZW1vdmUgeDg2OnhzdGF0ZSBleHRlbnNpb24uCisrCURvY3VtZW50IHg4Nj14 bWwgZXh0ZW5zaW9uIGluIGdkYiByZW1vdGUgcHJvdG9jb2wuCisrCisrMjAxMC0wMi0xMSAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvIChpMzg2IEZl YXR1cmVzKTogQWRkIG9yZy5nbnUuZ2RiLmkzODYuYXZ4LgorKworKzIwMTAtMDItMDMgIEguSi4g THUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbzogUmVtb3ZlIHg4 Njp4c3RhdGUgZnJvbSBzdHViIHJlcGx5LgorKworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbzogRG9jdW1lbnQgeDg2OnhzdGF0 ZSBleHRlbnNpb24gaW4gZ2RiIHJlbW90ZQorKwlwcm90b2NvbC4KKy0tLSAuL2dkYi9kb2MvQ2hh bmdlTG9nLnhtbAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2Ri L2RvYy9DaGFuZ2VMb2cueG1sCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitA QCAtMCwwICsxLDI4IEBACisrMjAxMC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwu Y29tPgorKworKwkqIGdkYi50ZXhpbmZvIChHZW5lcmFsIFF1ZXJ5IFBhY2tldHMpOiBVcGRhdGVk LgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBnZGIudGV4aW5mbyAoR2VuZXJhbCBRdWVyeSBQYWNrZXRzKTogVXBkYXRlZC4KKysKKysyMDEw LTAzLTI5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogZ2RiLnRleGlu Zm8gKEdlbmVyYWwgUXVlcnkgUGFja2V0cyk6IFJlbW92ZSBleHRyYSBzdXBwb3J0cy4KKysKKysy MDEwLTAzLTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogZ2RiLnRl eGluZm8gKEdlbmVyYWwgUXVlcnkgUGFja2V0cyk6IEFkZCB4bWxSZWdpc3RlcnMuCisrCisrMjAx MC0wMi0wOSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhp bmZvIChQcmVkZWZpbmVkIFRhcmdldCBUeXBlcyk6IEFkZCBpMzg3X2V4dCwKKysJaTM4Nl9lZmxh Z3MgYW5kIGkzODZfbXhjc3IuCisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGdkYi50ZXhpbmZvOiBVcGRhdGUgaTM4NiB0YXJnZXQgZmVhdHVy ZXMuCisrCisrMjAxMC0wMi0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGdkYi50ZXhpbmZvOiBEb2N1bWVudCBpMzg2IHRhcmdldCBmZWF0dXJlcy4KKy0tLSAuL2dk Yi9mZWF0dXJlcy9NYWtlZmlsZQkyMDEwLTAyLTA4IDA2OjA4OjQ2LjAwMDAwMDAwMCArMDEwMAor KysrIC4vZ2RiL2ZlYXR1cmVzL01ha2VmaWxlCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMzMsNiArMzMsOCBAQAorIFdISUNIID0gYXJtLXdpdGgtaXdtbXh0IGFybS13 aXRoLXZmcHYyIGFybS13aXRoLXZmcHYzIGFybS13aXRoLW5lb24gXAorIAlpMzg2L2kzODYgaTM4 Ni9pMzg2LWxpbnV4IFwKKyAJaTM4Ni9hbWQ2NCBpMzg2L2FtZDY0LWxpbnV4IFwKKysJaTM4Ni9p Mzg2LWF2eCBpMzg2L2kzODYtYXZ4LWxpbnV4IFwKKysJaTM4Ni9hbWQ2NC1hdnggaTM4Ni9hbWQ2 NC1hdngtbGludXggXAorIAltaXBzLWxpbnV4IG1pcHM2NC1saW51eCBcCisgCXJzNjAwMC9wb3dl cnBjLTMybCByczYwMDAvcG93ZXJwYy1hbHRpdmVjMzJsIHJzNjAwMC9wb3dlcnBjLWU1MDBsIFwK KyAJcnM2MDAwL3Bvd2VycGMtNjRsIHJzNjAwMC9wb3dlcnBjLWFsdGl2ZWM2NGwgcnM2MDAwL3Bv d2VycGMtdnN4MzJsIFwKK0BAIC00NSw2ICs0NywxMCBAQCBpMzg2L2kzODYtZXhwZWRpdGUgPSBl YnAsZXNwLGVpcAorIGkzODYvaTM4Ni1saW51eC1leHBlZGl0ZSA9IGVicCxlc3AsZWlwCisgaTM4 Ni9hbWQ2NC1leHBlZGl0ZSA9IHJicCxyc3AscmlwCisgaTM4Ni9hbWQ2NC1saW51eC1leHBlZGl0 ZSA9IHJicCxyc3AscmlwCisraTM4Ni9pMzg2LWF2eC1leHBlZGl0ZSA9IGVicCxlc3AsZWlwCisr aTM4Ni9pMzg2LWF2eC1saW51eC1leHBlZGl0ZSA9IGVicCxlc3AsZWlwCisraTM4Ni9hbWQ2NC1h dngtZXhwZWRpdGUgPSByYnAscnNwLHJpcAorK2kzODYvYW1kNjQtYXZ4LWxpbnV4LWV4cGVkaXRl ID0gcmJwLHJzcCxyaXAKKyBtaXBzLWV4cGVkaXRlID0gcjI5LHBjCisgbWlwczY0LWV4cGVkaXRl ID0gcjI5LHBjCisgcG93ZXJwYy1leHBlZGl0ZSA9IHIxLHBjCitAQCAtOTAsMyArOTYsOSBAQCAk KG91dGRpcikvaTM4Ni9pMzg2LWxpbnV4LmRhdDogaTM4Ni8zMmJpCisgJChvdXRkaXIpL2kzODYv YW1kNjQuZGF0OiBpMzg2LzY0Yml0LWNvcmUueG1sIGkzODYvNjRiaXQtc3NlLnhtbAorICQob3V0 ZGlyKS9pMzg2L2FtZDY0LWxpbnV4LmRhdDogaTM4Ni82NGJpdC1jb3JlLnhtbCBpMzg2LzY0Yml0 LXNzZS54bWwgXAorIAkJCSAgICAgICAgaTM4Ni82NGJpdC1saW51eC54bWwKKyskKG91dGRpcikv aTM4Ni9pMzg2LWF2eC5kYXQ6IGkzODYvMzJiaXQtY29yZS54bWwgaTM4Ni8zMmJpdC1hdngueG1s CisrJChvdXRkaXIpL2kzODYvaTM4Ni1hdngtbGludXguZGF0OiBpMzg2LzMyYml0LWNvcmUueG1s IGkzODYvMzJiaXQtYXZ4LnhtbCBcCisrCQkJICAgICAgIGkzODYvMzJiaXQtbGludXgueG1sCisr JChvdXRkaXIpL2kzODYvYW1kNjQtYXZ4LmRhdDogaTM4Ni82NGJpdC1jb3JlLnhtbCBpMzg2LzY0 Yml0LWF2eC54bWwKKyskKG91dGRpcikvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0OiBpMzg2LzY0 Yml0LWNvcmUueG1sIGkzODYvNjRiaXQtYXZ4LnhtbCBcCisrCQkJCSAgICBpMzg2LzY0Yml0LWxp bnV4LnhtbAorLS0tIC4vZ2RiL2ZlYXR1cmVzL2kzODYvMzJiaXQtYXZ4LnhtbAkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2ZlYXR1cmVzL2kzODYvMzJiaXQt YXZ4LnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwx OCBAQAorKzw/eG1sIHZlcnNpb249IjEuMCI/PgorKzwhLS0gQ29weXJpZ2h0IChDKSAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgICAgQ29weWluZyBhbmQgZGlzdHJp YnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKysgICAg IGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhl IGNvcHlyaWdodAorKyAgICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAg LS0+CisrCisrPCFET0NUWVBFIGZlYXR1cmUgU1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+CisrPGZl YXR1cmUgbmFtZT0ib3JnLmdudS5nZGIuaTM4Ni5hdngiPgorKyAgPHJlZyBuYW1lPSJ5bW0waCIg Yml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTFoIiBiaXRz aXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tMmgiIGJpdHNpemU9 IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW0zaCIgYml0c2l6ZT0iMTI4 IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTRoIiBiaXRzaXplPSIxMjgiIHR5 cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tNWgiIGJpdHNpemU9IjEyOCIgdHlwZT0i dWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW02aCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50 MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTdoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgi Lz4KKys8L2ZlYXR1cmU+CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni82NGJpdC1hdngueG1sCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZmVhdHVyZXMvaTM4 Ni82NGJpdC1hdngueG1sCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAt MCwwICsxLDI2IEBACisrPD94bWwgdmVyc2lvbj0iMS4wIj8+CisrPCEtLSBDb3B5cmlnaHQgKEMp IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgICBDb3B5aW5nIGFu ZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u LAorKyAgICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92 aWRlZCB0aGUgY29weXJpZ2h0CisrICAgICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVz ZXJ2ZWQuICAtLT4KKysKKys8IURPQ1RZUEUgZmVhdHVyZSBTWVNURU0gImdkYi10YXJnZXQuZHRk Ij4KKys8ZmVhdHVyZSBuYW1lPSJvcmcuZ251LmdkYi5pMzg2LmF2eCI+CisrICA8cmVnIG5hbWU9 InltbTBoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1t MWgiIGJpdHNpemU9IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW0yaCIg Yml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTNoIiBiaXRz aXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tNGgiIGJpdHNpemU9 IjEyOCIgdHlwZT0idWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW01aCIgYml0c2l6ZT0iMTI4 IiB0eXBlPSJ1aW50MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTZoIiBiaXRzaXplPSIxMjgiIHR5 cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFtZT0ieW1tN2giIGJpdHNpemU9IjEyOCIgdHlwZT0i dWludDEyOCIvPgorKyAgPHJlZyBuYW1lPSJ5bW04aCIgYml0c2l6ZT0iMTI4IiB0eXBlPSJ1aW50 MTI4Ii8+CisrICA8cmVnIG5hbWU9InltbTloIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgi Lz4KKysgIDxyZWcgbmFtZT0ieW1tMTBoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4K KysgIDxyZWcgbmFtZT0ieW1tMTFoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysg IDxyZWcgbmFtZT0ieW1tMTJoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxy ZWcgbmFtZT0ieW1tMTNoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcg bmFtZT0ieW1tMTRoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKysgIDxyZWcgbmFt ZT0ieW1tMTVoIiBiaXRzaXplPSIxMjgiIHR5cGU9InVpbnQxMjgiLz4KKys8L2ZlYXR1cmU+Cist LS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9NYWtlZmlsZQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAorKysrIC4vZ2RiL2ZlYXR1cmVzL2kzODYvTWFrZWZpbGUJMjAxMC0wNC0wMyAy MToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNSBAQAorK2luY2x1ZGUgTWFrZWZp bGUKKysKKytYTUxUT0MgPSAkKGFkZHN1ZmZpeCAueG1sLCAkKGZpbHRlciBpMzg2LyUsICQoV0hJ Q0gpKSkKKytDRklMRVMgPSAkKHBhdHN1YnN0ICUueG1sLCUuYywkKFhNTFRPQykpCisrY2ZpbGVz OiAkKENGSUxFUykKKy0tLSAuL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC1saW51eC5jCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZmVhdHVyZXMvaTM4 Ni9hbWQ2NC1hdngtbGludXguYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAor QEAgLTAsMCArMSwxNzEgQEAKKysvKiBUSElTIEZJTEUgSVMgR0VORVJBVEVELiAgT3JpZ2luYWw6 IGFtZDY0LWF2eC1saW51eC54bWwgKi8KKysKKysjaW5jbHVkZSAiZGVmcy5oIgorKyNpbmNsdWRl ICJvc2FiaS5oIgorKyNpbmNsdWRlICJ0YXJnZXQtZGVzY3JpcHRpb25zLmgiCisrCisrc3RydWN0 IHRhcmdldF9kZXNjICp0ZGVzY19hbWQ2NF9hdnhfbGludXg7Cisrc3RhdGljIHZvaWQKKytpbml0 aWFsaXplX3RkZXNjX2FtZDY0X2F2eF9saW51eCAodm9pZCkKKyt7CisrICBzdHJ1Y3QgdGFyZ2V0 X2Rlc2MgKnJlc3VsdCA9IGFsbG9jYXRlX3RhcmdldF9kZXNjcmlwdGlvbiAoKTsKKysgIHN0cnVj dCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOworKyAgc3RydWN0IHRkZXNjX3R5cGUgKmZpZWxkX3R5 cGUsICp0eXBlOworKworKyAgc2V0X3RkZXNjX2FyY2hpdGVjdHVyZSAocmVzdWx0LCBiZmRfc2Nh bl9hcmNoICgiaTM4Njp4ODYtNjQiKSk7CisrCisrICBzZXRfdGRlc2Nfb3NhYmkgKHJlc3VsdCwg b3NhYmlfZnJvbV90ZGVzY19zdHJpbmcgKCJHTlUvTGludXgiKSk7CisrCisrICBmZWF0dXJlID0g dGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuY29yZSIpOwor KyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVyZSwgImkzODZfZWZsYWdz IiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIkNGIik7CisrICB0ZGVz Y19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDIsICJQRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJBRiIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJaRiIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDcsICJTRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDgsICJURiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJJRiIpOwor KyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiREYiKTsKKysgIHRkZXNjX2FkZF9m bGFnIChmaWVsZF90eXBlLCAxMSwgIk9GIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlw ZSwgMTQsICJOVCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE2LCAiUkYiKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNywgIlZNIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgMTgsICJBQyIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDE5LCAiVklGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjAsICJWSVAi KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMSwgIklEIik7CisrCisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmF4IiwgMCwgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJieCIsIDEsIDEsIE5VTEwsIDY0LCAiaW50 NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyY3giLCAyLCAxLCBOVUxMLCA2 NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmR4IiwgMywgMSwg TlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJzaSIs IDQsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJyZGkiLCA1LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAicmJwIiwgNiwgMSwgTlVMTCwgNjQsICJkYXRhX3B0ciIpOworKyAgdGRlc2NfY3Jl YXRlX3JlZyAoZmVhdHVyZSwgInJzcCIsIDcsIDEsIE5VTEwsIDY0LCAiZGF0YV9wdHIiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOCIsIDgsIDEsIE5VTEwsIDY0LCAiaW50NjQi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOSIsIDksIDEsIE5VTEwsIDY0LCAi aW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyMTAiLCAxMCwgMSwgTlVM TCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIxMSIsIDEx LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi cjEyIiwgMTIsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJyMTMiLCAxMywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInIxNCIsIDE0LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjE1IiwgMTUsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsK KysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyaXAiLCAxNiwgMSwgTlVMTCwgNjQsICJj b2RlX3B0ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVmbGFncyIsIDE3LCAx LCBOVUxMLCAzMiwgImkzODZfZWZsYWdzIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAiY3MiLCAxOCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgInNzIiwgMTksIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJkcyIsIDIwLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZXMiLCAyMSwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZzIiwgMjIsIDEsIE5VTEwsIDMyLCAiaW50 MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJncyIsIDIzLCAxLCBOVUxMLCAz MiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QwIiwgMjQsIDEs IE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJz dDEiLCAyNSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgInN0MiIsIDI2LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAic3QzIiwgMjcsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsK KysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDQiLCAyOCwgMSwgTlVMTCwgODAsICJp Mzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NSIsIDI5LCAxLCBO VUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3Q2 IiwgMzAsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJzdDciLCAzMSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3Jl YXRlX3JlZyAoZmVhdHVyZSwgImZjdHJsIiwgMzIsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZnN0YXQiLCAzMywgMSwgImZsb2F0IiwgMzIs ICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmdGFnIiwgMzQsIDEsICJm bG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZmlzZWci LCAzNSwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJmaW9mZiIsIDM2LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgImZvc2VnIiwgMzcsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZm9vZmYiLCAzOCwgMSwgImZsb2F0IiwgMzIsICJp bnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmb3AiLCAzOSwgMSwgImZsb2F0 IiwgMzIsICJpbnQiKTsKKysKKysgIGZlYXR1cmUgPSB0ZGVzY19jcmVhdGVfZmVhdHVyZSAocmVz dWx0LCAib3JnLmdudS5nZGIuaTM4Ni5zc2UiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1l ZF90eXBlIChmZWF0dXJlLCAiaWVlZV9zaW5nbGUiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3Ig KGZlYXR1cmUsICJ2NGYiLCBmaWVsZF90eXBlLCA0KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVz Y19uYW1lZF90eXBlIChmZWF0dXJlLCAiaWVlZV9kb3VibGUiKTsKKysgIHRkZXNjX2NyZWF0ZV92 ZWN0b3IgKGZlYXR1cmUsICJ2MmQiLCBmaWVsZF90eXBlLCAyKTsKKysKKysgIGZpZWxkX3R5cGUg PSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50OCIpOworKyAgdGRlc2NfY3JlYXRlX3Zl Y3RvciAoZmVhdHVyZSwgInYxNmk4IiwgZmllbGRfdHlwZSwgMTYpOworKworKyAgZmllbGRfdHlw ZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpbnQxNiIpOworKyAgdGRlc2NfY3JlYXRl X3ZlY3RvciAoZmVhdHVyZSwgInY4aTE2IiwgZmllbGRfdHlwZSwgOCk7CisrCisrICBmaWVsZF90 eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImludDMyIik7CisrICB0ZGVzY19jcmVh dGVfdmVjdG9yIChmZWF0dXJlLCAidjRpMzIiLCBmaWVsZF90eXBlLCA0KTsKKysKKysgIGZpZWxk X3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50NjQiKTsKKysgIHRkZXNjX2Ny ZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2Mmk2NCIsIGZpZWxkX3R5cGUsIDIpOworKworKyAgdHlw ZSA9IHRkZXNjX2NyZWF0ZV91bmlvbiAoZmVhdHVyZSwgInZlYzEyOCIpOworKyAgZmllbGRfdHlw ZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2NGYiKTsKKysgIHRkZXNjX2FkZF9maWVs ZCAodHlwZSwgInY0X2Zsb2F0IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2Nf bmFtZWRfdHlwZSAoZmVhdHVyZSwgInYyZCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAi djJfZG91YmxlIiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlw ZSAoZmVhdHVyZSwgInYxNmk4Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2MTZfaW50 OCIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1 cmUsICJ2OGkxNiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjhfaW50MTYiLCBmaWVs ZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjRp MzIiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInY0X2ludDMyIiwgZmllbGRfdHlwZSk7 CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInYyaTY0Iik7Cisr ICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2Ml9pbnQ2NCIsIGZpZWxkX3R5cGUpOworKyAgZmll bGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7CisrICB0ZGVz Y19hZGRfZmllbGQgKHR5cGUsICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7CisrCisrICBmaWVsZF90 eXBlID0gdGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAg dGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDEsICJERSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIs ICJaRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDUsICJQRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJE QVoiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCA5LCAiWk0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9N Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAxNSwgIkZaIik7CisrCisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1t MCIsIDQwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJ4bW0xIiwgNDEsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3Jl YXRlX3JlZyAoZmVhdHVyZSwgInhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMyIsIDQzLCAxLCBOVUxMLCAxMjgsICJ2 ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW00IiwgNDQsIDEsIE5V TEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTUi LCA0NSwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0 dXJlLCAieG1tNiIsIDQ2LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJ4bW03IiwgNDcsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTgiLCA0OCwgMSwgTlVMTCwgMTI4LCAidmVj MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tOSIsIDQ5LCAxLCBOVUxM LCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMCIs IDUwLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJ4bW0xMSIsIDUxLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMiIsIDUyLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMyIsIDUzLCAxLCBOVUxMLCAxMjgsICJ2 ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xNCIsIDU0LCAxLCBO VUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0x NSIsIDU1LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJteGNzciIsIDU2LCAxLCAidmVjdG9yIiwgMzIsICJpMzg2X214Y3NyIik7CisrCisr ICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkz ODYubGludXgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJvcmlnX3JheCIsIDU3 LCAxLCBOVUxMLCA2NCwgImludCIpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0 dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInltbTBoIiwgNTgsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xaCIsIDU5LCAxLCBOVUxMLCAxMjgsICJ1aW50 MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMmgiLCA2MCwgMSwgTlVM TCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTNo IiwgNjEsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJ5bW00aCIsIDYyLCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAieW1tNWgiLCA2MywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTZoIiwgNjQsIDEsIE5VTEwsIDEy OCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW03aCIsIDY1 LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAieW1tOGgiLCA2NiwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInltbTloIiwgNjcsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xMGgiLCA2OCwgMSwgTlVMTCwgMTI4LCAi dWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTExaCIsIDY5LCAx LCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi eW1tMTJoIiwgNzAsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJ5bW0xM2giLCA3MSwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTE0aCIsIDcyLCAxLCBOVUxMLCAxMjgsICJ1 aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMTVoIiwgNzMsIDEs IE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysKKysgIHRkZXNjX2FtZDY0X2F2eF9saW51eCA9IHJl c3VsdDsKKyt9CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdngtbGludXgueG1sCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZmVhdHVyZXMvaTM4 Ni9hbWQ2NC1hdngtbGludXgueG1sCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAw CitAQCAtMCwwICsxLDE4IEBACisrPD94bWwgdmVyc2lvbj0iMS4wIj8+CisrPCEtLSBDb3B5cmln aHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgICBDb3B5 aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp Y2F0aW9uLAorKyAgICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0 eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CisrICAgICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFy ZSBwcmVzZXJ2ZWQuICAtLT4KKysKKys8IS0tIEFNRDY0IHdpdGggQVZYIC0gSW5jbHVkZXMgTGlu dXgtb25seSBzcGVjaWFsICJyZWdpc3RlciIuICAtLT4KKysKKys8IURPQ1RZUEUgdGFyZ2V0IFNZ U1RFTSAiZ2RiLXRhcmdldC5kdGQiPgorKzx0YXJnZXQ+CisrICA8YXJjaGl0ZWN0dXJlPmkzODY6 eDg2LTY0PC9hcmNoaXRlY3R1cmU+CisrICA8b3NhYmk+R05VL0xpbnV4PC9vc2FiaT4KKysgIDx4 aTppbmNsdWRlIGhyZWY9IjY0Yml0LWNvcmUueG1sIi8+CisrICA8eGk6aW5jbHVkZSBocmVmPSI2 NGJpdC1zc2UueG1sIi8+CisrICA8eGk6aW5jbHVkZSBocmVmPSI2NGJpdC1saW51eC54bWwiLz4K KysgIDx4aTppbmNsdWRlIGhyZWY9IjY0Yml0LWF2eC54bWwiLz4KKys8L3RhcmdldD4KKy0tLSAu L2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKysgLi9nZGIvZmVhdHVyZXMvaTM4Ni9hbWQ2NC1hdnguYwkyMDEwLTA0LTAz IDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwxNjYgQEAKKysvKiBUSElTIEZJ TEUgSVMgR0VORVJBVEVELiAgT3JpZ2luYWw6IGFtZDY0LWF2eC54bWwgKi8KKysKKysjaW5jbHVk ZSAiZGVmcy5oIgorKyNpbmNsdWRlICJvc2FiaS5oIgorKyNpbmNsdWRlICJ0YXJnZXQtZGVzY3Jp cHRpb25zLmgiCisrCisrc3RydWN0IHRhcmdldF9kZXNjICp0ZGVzY19hbWQ2NF9hdng7Cisrc3Rh dGljIHZvaWQKKytpbml0aWFsaXplX3RkZXNjX2FtZDY0X2F2eCAodm9pZCkKKyt7CisrICBzdHJ1 Y3QgdGFyZ2V0X2Rlc2MgKnJlc3VsdCA9IGFsbG9jYXRlX3RhcmdldF9kZXNjcmlwdGlvbiAoKTsK KysgIHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOworKyAgc3RydWN0IHRkZXNjX3R5cGUg KmZpZWxkX3R5cGUsICp0eXBlOworKworKyAgc2V0X3RkZXNjX2FyY2hpdGVjdHVyZSAocmVzdWx0 LCBiZmRfc2Nhbl9hcmNoICgiaTM4Njp4ODYtNjQiKSk7CisrCisrICBmZWF0dXJlID0gdGRlc2Nf Y3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuY29yZSIpOworKyAgZmll bGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVhdHVyZSwgImkzODZfZWZsYWdzIiwgNCk7 CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIkNGIik7CisrICB0ZGVzY19hZGRf ZmxhZyAoZmllbGRfdHlwZSwgMSwgIiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUs IDIsICJQRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJBRiIpOworKyAg dGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJaRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDcsICJTRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDgs ICJURiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJJRiIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEwLCAiREYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCAxMSwgIk9GIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTQs ICJOVCIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE2LCAiUkYiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxNywgIlZNIik7CisrICB0ZGVzY19hZGRfZmxhZyAo ZmllbGRfdHlwZSwgMTgsICJBQyIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE5 LCAiVklGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjAsICJWSVAiKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyMSwgIklEIik7CisrCisrICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAicmF4IiwgMCwgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJieCIsIDEsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsK KysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyY3giLCAyLCAxLCBOVUxMLCA2NCwgImlu dDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicmR4IiwgMywgMSwgTlVMTCwg NjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInJzaSIsIDQsIDEs IE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyZGki LCA1LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAicmJwIiwgNiwgMSwgTlVMTCwgNjQsICJkYXRhX3B0ciIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInJzcCIsIDcsIDEsIE5VTEwsIDY0LCAiZGF0YV9wdHIiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOCIsIDgsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysg IHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyOSIsIDksIDEsIE5VTEwsIDY0LCAiaW50NjQi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyMTAiLCAxMCwgMSwgTlVMTCwgNjQs ICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInIxMSIsIDExLCAxLCBO VUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAicjEyIiwg MTIsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJyMTMiLCAxMywgMSwgTlVMTCwgNjQsICJpbnQ2NCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgInIxNCIsIDE0LCAxLCBOVUxMLCA2NCwgImludDY0Iik7CisrICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAicjE1IiwgMTUsIDEsIE5VTEwsIDY0LCAiaW50NjQiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJyaXAiLCAxNiwgMSwgTlVMTCwgNjQsICJjb2RlX3B0 ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVmbGFncyIsIDE3LCAxLCBOVUxM LCAzMiwgImkzODZfZWZsYWdzIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiY3Mi LCAxOCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInNzIiwgMTksIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJkcyIsIDIwLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAiZXMiLCAyMSwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZzIiwgMjIsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsK KysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJncyIsIDIzLCAxLCBOVUxMLCAzMiwgImlu dDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QwIiwgMjQsIDEsIE5VTEws IDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDEiLCAy NSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInN0MiIsIDI2LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAic3QzIiwgMjcsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDQiLCAyOCwgMSwgTlVMTCwgODAsICJpMzg3X2V4 dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NSIsIDI5LCAxLCBOVUxMLCA4 MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3Q2IiwgMzAs IDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJzdDciLCAzMSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgImZjdHJsIiwgMzIsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZnN0YXQiLCAzMywgMSwgImZsb2F0IiwgMzIsICJpbnQi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmdGFnIiwgMzQsIDEsICJmbG9hdCIs IDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZmlzZWciLCAzNSwg MSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJm aW9mZiIsIDM2LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgImZvc2VnIiwgMzcsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAiZm9vZmYiLCAzOCwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsK KysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmb3AiLCAzOSwgMSwgImZsb2F0IiwgMzIs ICJpbnQiKTsKKysKKysgIGZlYXR1cmUgPSB0ZGVzY19jcmVhdGVfZmVhdHVyZSAocmVzdWx0LCAi b3JnLmdudS5nZGIuaTM4Ni5zc2UiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBl IChmZWF0dXJlLCAiaWVlZV9zaW5nbGUiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1 cmUsICJ2NGYiLCBmaWVsZF90eXBlLCA0KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1l ZF90eXBlIChmZWF0dXJlLCAiaWVlZV9kb3VibGUiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3Ig KGZlYXR1cmUsICJ2MmQiLCBmaWVsZF90eXBlLCAyKTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVz Y19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50OCIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAo ZmVhdHVyZSwgInYxNmk4IiwgZmllbGRfdHlwZSwgMTYpOworKworKyAgZmllbGRfdHlwZSA9IHRk ZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpbnQxNiIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3Rv ciAoZmVhdHVyZSwgInY4aTE2IiwgZmllbGRfdHlwZSwgOCk7CisrCisrICBmaWVsZF90eXBlID0g dGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfdmVj dG9yIChmZWF0dXJlLCAidjRpMzIiLCBmaWVsZF90eXBlLCA0KTsKKysKKysgIGZpZWxkX3R5cGUg PSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50NjQiKTsKKysgIHRkZXNjX2NyZWF0ZV92 ZWN0b3IgKGZlYXR1cmUsICJ2Mmk2NCIsIGZpZWxkX3R5cGUsIDIpOworKworKyAgdHlwZSA9IHRk ZXNjX2NyZWF0ZV91bmlvbiAoZmVhdHVyZSwgInZlYzEyOCIpOworKyAgZmllbGRfdHlwZSA9IHRk ZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2NGYiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlw ZSwgInY0X2Zsb2F0IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRf dHlwZSAoZmVhdHVyZSwgInYyZCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjJfZG91 YmxlIiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVh dHVyZSwgInYxNmk4Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2MTZfaW50OCIsIGZp ZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2 OGkxNiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjhfaW50MTYiLCBmaWVsZF90eXBl KTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjRpMzIiKTsK KysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInY0X2ludDMyIiwgZmllbGRfdHlwZSk7CisrICBm aWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInYyaTY0Iik7CisrICB0ZGVz Y19hZGRfZmllbGQgKHR5cGUsICJ2Ml9pbnQ2NCIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlw ZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ1aW50MTI4Iik7CisrICB0ZGVzY19hZGRf ZmllbGQgKHR5cGUsICJ1aW50MTI4IiwgZmllbGRfdHlwZSk7CisrCisrICBmaWVsZF90eXBlID0g dGRlc2NfY3JlYXRlX2ZsYWdzIChmZWF0dXJlLCAiaTM4Nl9teGNzciIsIDQpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDAsICJJRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDEsICJERSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJaRSIp OworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDMsICJPRSIpOworKyAgdGRlc2NfYWRk X2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJVRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDUsICJQRSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDYsICJEQVoiKTsK KysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiSU0iKTsKKysgIHRkZXNjX2FkZF9m bGFnIChmaWVsZF90eXBlLCA4LCAiRE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCA5LCAiWk0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwgIk9NIik7Cisr ICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJVTSIpOworKyAgdGRlc2NfYWRkX2Zs YWcgKGZpZWxkX3R5cGUsIDEyLCAiUE0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBl LCAxNSwgIkZaIik7CisrCisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMCIsIDQw LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJ4bW0xIiwgNDEsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInhtbTIiLCA0MiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMyIsIDQzLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW00IiwgNDQsIDEsIE5VTEwsIDEy OCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTUiLCA0NSwg MSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi eG1tNiIsIDQ2LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJ4bW03IiwgNDcsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTgiLCA0OCwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tOSIsIDQ5LCAxLCBOVUxMLCAxMjgs ICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMCIsIDUwLCAx LCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4 bW0xMSIsIDUxLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJ4bW0xMiIsIDUyLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xMyIsIDUzLCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xNCIsIDU0LCAxLCBOVUxMLCAx MjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0xNSIsIDU1 LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJteGNzciIsIDU2LCAxLCAidmVjdG9yIiwgMzIsICJpMzg2X214Y3NyIik7CisrCisrICBmZWF0 dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuYXZ4 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMGgiLCA1NywgMSwgTlVMTCwg MTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTFoIiwg NTgsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJ5bW0yaCIsIDU5LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVh dGVfcmVnIChmZWF0dXJlLCAieW1tM2giLCA2MCwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTRoIiwgNjEsIDEsIE5VTEwsIDEyOCwg InVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW01aCIsIDYyLCAx LCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi eW1tNmgiLCA2MywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3Jl ZyAoZmVhdHVyZSwgInltbTdoIiwgNjQsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRk ZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW04aCIsIDY1LCAxLCBOVUxMLCAxMjgsICJ1aW50 MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tOWgiLCA2NiwgMSwgTlVM TCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTEw aCIsIDY3LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAieW1tMTFoIiwgNjgsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xMmgiLCA2OSwgMSwgTlVMTCwgMTI4LCAidWludDEy OCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTEzaCIsIDcwLCAxLCBOVUxM LCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMTRo IiwgNzEsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZl YXR1cmUsICJ5bW0xNWgiLCA3MiwgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKworKyAgdGRl c2NfYW1kNjRfYXZ4ID0gcmVzdWx0OworK30KKy0tLSAuL2dkYi9mZWF0dXJlcy9pMzg2L2FtZDY0 LWF2eC54bWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9m ZWF0dXJlcy9pMzg2L2FtZDY0LWF2eC54bWwJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMTYgQEAKKys8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKys8IS0tIENv cHlyaWdodCAoQykgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICAg IENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBt b2RpZmljYXRpb24sCisrICAgICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCBy b3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKKysgICAgIG5vdGljZSBhbmQgdGhpcyBub3Rp Y2UgYXJlIHByZXNlcnZlZC4gIC0tPgorKworKzwhLS0gQU1ENjQgd2l0aCBBVlggLS0+CisrCisr PCFET0NUWVBFIHRhcmdldCBTWVNURU0gImdkYi10YXJnZXQuZHRkIj4KKys8dGFyZ2V0PgorKyAg PGFyY2hpdGVjdHVyZT5pMzg2Ong4Ni02NDwvYXJjaGl0ZWN0dXJlPgorKyAgPHhpOmluY2x1ZGUg aHJlZj0iNjRiaXQtY29yZS54bWwiLz4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjY0Yml0LXNzZS54 bWwiLz4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjY0Yml0LWF2eC54bWwiLz4KKys8L3RhcmdldD4K Ky0tLSAuL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYtYXZ4LWxpbnV4LmMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYtYXZ4LWxp bnV4LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsMTQ3 IEBACisrLyogVEhJUyBGSUxFIElTIEdFTkVSQVRFRC4gIE9yaWdpbmFsOiBpMzg2LWF2eC1saW51 eC54bWwgKi8KKysKKysjaW5jbHVkZSAiZGVmcy5oIgorKyNpbmNsdWRlICJvc2FiaS5oIgorKyNp bmNsdWRlICJ0YXJnZXQtZGVzY3JpcHRpb25zLmgiCisrCisrc3RydWN0IHRhcmdldF9kZXNjICp0 ZGVzY19pMzg2X2F2eF9saW51eDsKKytzdGF0aWMgdm9pZAorK2luaXRpYWxpemVfdGRlc2NfaTM4 Nl9hdnhfbGludXggKHZvaWQpCisreworKyAgc3RydWN0IHRhcmdldF9kZXNjICpyZXN1bHQgPSBh bGxvY2F0ZV90YXJnZXRfZGVzY3JpcHRpb24gKCk7CisrICBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAq ZmVhdHVyZTsKKysgIHN0cnVjdCB0ZGVzY190eXBlICpmaWVsZF90eXBlLCAqdHlwZTsKKysKKysg IHNldF90ZGVzY19hcmNoaXRlY3R1cmUgKHJlc3VsdCwgYmZkX3NjYW5fYXJjaCAoImkzODYiKSk7 CisrCisrICBzZXRfdGRlc2Nfb3NhYmkgKHJlc3VsdCwgb3NhYmlfZnJvbV90ZGVzY19zdHJpbmcg KCJHTlUvTGludXgiKSk7CisrCisrICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJl c3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuY29yZSIpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2Ny ZWF0ZV9mbGFncyAoZmVhdHVyZSwgImkzODZfZWZsYWdzIiwgNCk7CisrICB0ZGVzY19hZGRfZmxh ZyAoZmllbGRfdHlwZSwgMCwgIkNGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwg MSwgIiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDIsICJQRiIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDQsICJBRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDYsICJaRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDcsICJT RiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDgsICJURiIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDEwLCAiREYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMSwgIk9G Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTQsICJOVCIpOworKyAgdGRlc2Nf YWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE2LCAiUkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVs ZF90eXBlLCAxNywgIlZNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTgsICJB QyIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE5LCAiVklGIik7CisrICB0ZGVz Y19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMjAsICJWSVAiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCAyMSwgIklEIik7CisrCisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAi ZWF4IiwgMCwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVh dHVyZSwgImVjeCIsIDEsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJlZHgiLCAyLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19j cmVhdGVfcmVnIChmZWF0dXJlLCAiZWJ4IiwgMywgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAg dGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVzcCIsIDQsIDEsIE5VTEwsIDMyLCAiZGF0YV9w dHIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlYnAiLCA1LCAxLCBOVUxMLCAz MiwgImRhdGFfcHRyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZXNpIiwgNiwg MSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVk aSIsIDcsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJlaXAiLCA4LCAxLCBOVUxMLCAzMiwgImNvZGVfcHRyIik7CisrICB0ZGVzY19jcmVhdGVf cmVnIChmZWF0dXJlLCAiZWZsYWdzIiwgOSwgMSwgTlVMTCwgMzIsICJpMzg2X2VmbGFncyIpOwor KyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImNzIiwgMTAsIDEsIE5VTEwsIDMyLCAiaW50 MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzcyIsIDExLCAxLCBOVUxMLCAz MiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZHMiLCAxMiwgMSwg TlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVzIiwg MTMsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUs ICJmcyIsIDE0LCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAiZ3MiLCAxNSwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInN0MCIsIDE2LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QxIiwgMTcsIDEsIE5VTEwsIDgwLCAiaTM4N19l eHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDIiLCAxOCwgMSwgTlVMTCwg ODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0MyIsIDE5 LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAic3Q0IiwgMjAsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJzdDUiLCAyMSwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NiIsIDIyLCAxLCBOVUxMLCA4MCwgImkzODdfZXh0 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3Q3IiwgMjMsIDEsIE5VTEwsIDgw LCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmY3RybCIsIDI0 LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg ImZzdGF0IiwgMjUsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAiZnRhZyIsIDI2LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgImZpc2VnIiwgMjcsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZmlvZmYiLCAyOCwgMSwgImZsb2F0Iiwg MzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmb3NlZyIsIDI5LCAx LCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZv b2ZmIiwgMzAsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChm ZWF0dXJlLCAiZm9wIiwgMzEsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7CisrCisrICBmZWF0dXJl ID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYuc3NlIik7 CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImllZWVfc2luZ2xl Iik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjRmIiwgZmllbGRfdHlwZSwg NCk7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImllZWVf ZG91YmxlIik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjJkIiwgZmllbGRf dHlwZSwgMik7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwg ImludDgiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2MTZpOCIsIGZpZWxk X3R5cGUsIDE2KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJl LCAiaW50MTYiKTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2OGkxNiIsIGZp ZWxkX3R5cGUsIDgpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1 cmUsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInY0aTMyIiwg ZmllbGRfdHlwZSwgNCk7CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVh dHVyZSwgImludDY0Iik7CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjJpNjQi LCBmaWVsZF90eXBlLCAyKTsKKysKKysgIHR5cGUgPSB0ZGVzY19jcmVhdGVfdW5pb24gKGZlYXR1 cmUsICJ2ZWMxMjgiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJl LCAidjRmIik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUsICJ2NF9mbG9hdCIsIGZpZWxkX3R5 cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2MmQiKTsK KysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInYyX2RvdWJsZSIsIGZpZWxkX3R5cGUpOworKyAg ZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJ2MTZpOCIpOworKyAgdGRl c2NfYWRkX2ZpZWxkICh0eXBlLCAidjE2X2ludDgiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5 cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjhpMTYiKTsKKysgIHRkZXNjX2FkZF9m aWVsZCAodHlwZSwgInY4X2ludDE2IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRl c2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInY0aTMyIik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5 cGUsICJ2NF9pbnQzMiIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVk X3R5cGUgKGZlYXR1cmUsICJ2Mmk2NCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjJf aW50NjQiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChm ZWF0dXJlLCAidWludDEyOCIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidWludDEyOCIs IGZpZWxkX3R5cGUpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX2NyZWF0ZV9mbGFncyAoZmVh dHVyZSwgImkzODZfbXhjc3IiLCA0KTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAw LCAiSUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxLCAiREUiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiWkUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCAzLCAiT0UiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA0LCAi VUUiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA1LCAiUEUiKTsKKysgIHRkZXNj X2FkZF9mbGFnIChmaWVsZF90eXBlLCA2LCAiREFaIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmll bGRfdHlwZSwgNywgIklNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOCwgIkRN Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgOSwgIlpNIik7CisrICB0ZGVzY19h ZGRfZmxhZyAoZmllbGRfdHlwZSwgMTAsICJPTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxk X3R5cGUsIDExLCAiVU0iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMiwgIlBN Iik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTUsICJGWiIpOworKworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTAiLCAzMiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMSIsIDMzLCAxLCBOVUxMLCAx MjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0yIiwgMzQs IDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg InhtbTMiLCAzNSwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAieG1tNCIsIDM2LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW01IiwgMzcsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTYiLCAzOCwgMSwgTlVMTCwgMTI4 LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tNyIsIDM5LCAx LCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJt eGNzciIsIDQwLCAxLCAidmVjdG9yIiwgMzIsICJpMzg2X214Y3NyIik7CisrCisrICBmZWF0dXJl ID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkzODYubGludXgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJvcmlnX2VheCIsIDQxLCAxLCBOVUxM LCAzMiwgImludCIpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1 bHQsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInltbTBoIiwgNDIsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJ5bW0xaCIsIDQzLCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMmgiLCA0NCwgMSwgTlVMTCwgMTI4LCAi dWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTNoIiwgNDUsIDEs IE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5 bW00aCIsIDQ2LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAieW1tNWgiLCA0NywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTZoIiwgNDgsIDEsIE5VTEwsIDEyOCwgInVpbnQx MjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW03aCIsIDQ5LCAxLCBOVUxM LCAxMjgsICJ1aW50MTI4Iik7CisrCisrICB0ZGVzY19pMzg2X2F2eF9saW51eCA9IHJlc3VsdDsK Kyt9CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC1saW51eC54bWwJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9mZWF0dXJlcy9pMzg2L2kzODYt YXZ4LWxpbnV4LnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwxOCBAQAorKzw/eG1sIHZlcnNpb249IjEuMCI/PgorKzwhLS0gQ29weXJpZ2h0IChDKSAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgICAgQ29weWluZyBhbmQg ZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK KysgICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlk ZWQgdGhlIGNvcHlyaWdodAorKyAgICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2Vy dmVkLiAgLS0+CisrCisrPCEtLSBJMzg2IHdpdGggQVZYLSBJbmNsdWRlcyBMaW51eC1vbmx5IHNw ZWNpYWwgInJlZ2lzdGVyIi4gIC0tPgorKworKzwhRE9DVFlQRSB0YXJnZXQgU1lTVEVNICJnZGIt dGFyZ2V0LmR0ZCI+CisrPHRhcmdldD4KKysgIDxhcmNoaXRlY3R1cmU+aTM4NjwvYXJjaGl0ZWN0 dXJlPgorKyAgPG9zYWJpPkdOVS9MaW51eDwvb3NhYmk+CisrICA8eGk6aW5jbHVkZSBocmVmPSIz MmJpdC1jb3JlLnhtbCIvPgorKyAgPHhpOmluY2x1ZGUgaHJlZj0iMzJiaXQtc3NlLnhtbCIvPgor KyAgPHhpOmluY2x1ZGUgaHJlZj0iMzJiaXQtbGludXgueG1sIi8+CisrICA8eGk6aW5jbHVkZSBo cmVmPSIzMmJpdC1hdngueG1sIi8+CisrPC90YXJnZXQ+CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4 Ni9pMzg2LWF2eC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9n ZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDE0MiBAQAorKy8qIFRISVMgRklMRSBJUyBHRU5FUkFURUQuICBP cmlnaW5hbDogaTM4Ni1hdngueG1sICovCisrCisrI2luY2x1ZGUgImRlZnMuaCIKKysjaW5jbHVk ZSAib3NhYmkuaCIKKysjaW5jbHVkZSAidGFyZ2V0LWRlc2NyaXB0aW9ucy5oIgorKworK3N0cnVj dCB0YXJnZXRfZGVzYyAqdGRlc2NfaTM4Nl9hdng7Cisrc3RhdGljIHZvaWQKKytpbml0aWFsaXpl X3RkZXNjX2kzODZfYXZ4ICh2b2lkKQorK3sKKysgIHN0cnVjdCB0YXJnZXRfZGVzYyAqcmVzdWx0 ID0gYWxsb2NhdGVfdGFyZ2V0X2Rlc2NyaXB0aW9uICgpOworKyAgc3RydWN0IHRkZXNjX2ZlYXR1 cmUgKmZlYXR1cmU7CisrICBzdHJ1Y3QgdGRlc2NfdHlwZSAqZmllbGRfdHlwZSwgKnR5cGU7Cisr CisrICBzZXRfdGRlc2NfYXJjaGl0ZWN0dXJlIChyZXN1bHQsIGJmZF9zY2FuX2FyY2ggKCJpMzg2 IikpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2NyZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcu Z251LmdkYi5pMzg2LmNvcmUiKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19jcmVhdGVfZmxhZ3Mg KGZlYXR1cmUsICJpMzg2X2VmbGFncyIsIDQpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5 cGUsIDAsICJDRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDEsICIiKTsKKysg IHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAyLCAiUEYiKTsKKysgIHRkZXNjX2FkZF9mbGFn IChmaWVsZF90eXBlLCA0LCAiQUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA2 LCAiWkYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA3LCAiU0YiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCA4LCAiVEYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCA5LCAiSUYiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMCwg IkRGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTEsICJPRiIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE0LCAiTlQiKTsKKysgIHRkZXNjX2FkZF9mbGFnIChm aWVsZF90eXBlLCAxNiwgIlJGIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTcs ICJWTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE4LCAiQUMiKTsKKysgIHRk ZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxOSwgIlZJRiIpOworKyAgdGRlc2NfYWRkX2ZsYWcg KGZpZWxkX3R5cGUsIDIwLCAiVklQIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwg MjEsICJJRCIpOworKworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVheCIsIDAsIDEs IE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlY3gi LCAxLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAiZWR4IiwgMiwgMSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAo ZmVhdHVyZSwgImVieCIsIDMsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJlc3AiLCA0LCAxLCBOVUxMLCAzMiwgImRhdGFfcHRyIik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWJwIiwgNSwgMSwgTlVMTCwgMzIsICJkYXRhX3B0 ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImVzaSIsIDYsIDEsIE5VTEwsIDMy LCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlZGkiLCA3LCAxLCBO VUxMLCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZWlwIiwg OCwgMSwgTlVMTCwgMzIsICJjb2RlX3B0ciIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgImVmbGFncyIsIDksIDEsIE5VTEwsIDMyLCAiaTM4Nl9lZmxhZ3MiKTsKKysgIHRkZXNjX2Ny ZWF0ZV9yZWcgKGZlYXR1cmUsICJjcyIsIDEwLCAxLCBOVUxMLCAzMiwgImludDMyIik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3MiLCAxMSwgMSwgTlVMTCwgMzIsICJpbnQzMiIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImRzIiwgMTIsIDEsIE5VTEwsIDMyLCAi aW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJlcyIsIDEzLCAxLCBOVUxM LCAzMiwgImludDMyIik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZnMiLCAxNCwg MSwgTlVMTCwgMzIsICJpbnQzMiIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImdz IiwgMTUsIDEsIE5VTEwsIDMyLCAiaW50MzIiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1 cmUsICJzdDAiLCAxNiwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRl X3JlZyAoZmVhdHVyZSwgInN0MSIsIDE3LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0 ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAic3QyIiwgMTgsIDEsIE5VTEwsIDgwLCAiaTM4N19l eHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJzdDMiLCAxOSwgMSwgTlVMTCwg ODAsICJpMzg3X2V4dCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NCIsIDIw LCAxLCBOVUxMLCA4MCwgImkzODdfZXh0Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJl LCAic3Q1IiwgMjEsIDEsIE5VTEwsIDgwLCAiaTM4N19leHQiKTsKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJzdDYiLCAyMiwgMSwgTlVMTCwgODAsICJpMzg3X2V4dCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInN0NyIsIDIzLCAxLCBOVUxMLCA4MCwgImkzODdfZXh0 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZmN0cmwiLCAyNCwgMSwgImZsb2F0 IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmc3RhdCIsIDI1 LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg ImZ0YWciLCAyNiwgMSwgImZsb2F0IiwgMzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsICJmaXNlZyIsIDI3LCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgImZpb2ZmIiwgMjgsIDEsICJmbG9hdCIsIDMyLCAiaW50Iik7 CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAiZm9zZWciLCAyOSwgMSwgImZsb2F0Iiwg MzIsICJpbnQiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJmb29mZiIsIDMwLCAx LCAiZmxvYXQiLCAzMiwgImludCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImZv cCIsIDMxLCAxLCAiZmxvYXQiLCAzMiwgImludCIpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2Ny ZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LnNzZSIpOworKyAgZmllbGRf dHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpZWVlX3NpbmdsZSIpOworKyAgdGRl c2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInY0ZiIsIGZpZWxkX3R5cGUsIDQpOworKworKyAg ZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpZWVlX2RvdWJsZSIpOwor KyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInYyZCIsIGZpZWxkX3R5cGUsIDIpOwor KworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpbnQ4Iik7Cisr ICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjE2aTgiLCBmaWVsZF90eXBlLCAxNik7 CisrCisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgImludDE2Iik7 CisrICB0ZGVzY19jcmVhdGVfdmVjdG9yIChmZWF0dXJlLCAidjhpMTYiLCBmaWVsZF90eXBlLCA4 KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAiaW50MzIi KTsKKysgIHRkZXNjX2NyZWF0ZV92ZWN0b3IgKGZlYXR1cmUsICJ2NGkzMiIsIGZpZWxkX3R5cGUs IDQpOworKworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5cGUgKGZlYXR1cmUsICJpbnQ2 NCIpOworKyAgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgInYyaTY0IiwgZmllbGRfdHlw ZSwgMik7CisrCisrICB0eXBlID0gdGRlc2NfY3JlYXRlX3VuaW9uIChmZWF0dXJlLCAidmVjMTI4 Iik7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInY0ZiIpOwor KyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjRfZmxvYXQiLCBmaWVsZF90eXBlKTsKKysgIGZp ZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjJkIik7CisrICB0ZGVzY19h ZGRfZmllbGQgKHR5cGUsICJ2Ml9kb3VibGUiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUg PSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidjE2aTgiKTsKKysgIHRkZXNjX2FkZF9maWVs ZCAodHlwZSwgInYxNl9pbnQ4IiwgZmllbGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2Nf bmFtZWRfdHlwZSAoZmVhdHVyZSwgInY4aTE2Iik7CisrICB0ZGVzY19hZGRfZmllbGQgKHR5cGUs ICJ2OF9pbnQxNiIsIGZpZWxkX3R5cGUpOworKyAgZmllbGRfdHlwZSA9IHRkZXNjX25hbWVkX3R5 cGUgKGZlYXR1cmUsICJ2NGkzMiIpOworKyAgdGRlc2NfYWRkX2ZpZWxkICh0eXBlLCAidjRfaW50 MzIiLCBmaWVsZF90eXBlKTsKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0 dXJlLCAidjJpNjQiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInYyX2ludDY0IiwgZmll bGRfdHlwZSk7CisrICBmaWVsZF90eXBlID0gdGRlc2NfbmFtZWRfdHlwZSAoZmVhdHVyZSwgInVp bnQxMjgiKTsKKysgIHRkZXNjX2FkZF9maWVsZCAodHlwZSwgInVpbnQxMjgiLCBmaWVsZF90eXBl KTsKKysKKysgIGZpZWxkX3R5cGUgPSB0ZGVzY19jcmVhdGVfZmxhZ3MgKGZlYXR1cmUsICJpMzg2 X214Y3NyIiwgNCk7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMCwgIklFIik7Cisr ICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMSwgIkRFIik7CisrICB0ZGVzY19hZGRfZmxh ZyAoZmllbGRfdHlwZSwgMiwgIlpFIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwg MywgIk9FIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNCwgIlVFIik7CisrICB0 ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgNSwgIlBFIik7CisrICB0ZGVzY19hZGRfZmxhZyAo ZmllbGRfdHlwZSwgNiwgIkRBWiIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDcs ICJJTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDgsICJETSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDksICJaTSIpOworKyAgdGRlc2NfYWRkX2ZsYWcgKGZp ZWxkX3R5cGUsIDEwLCAiT00iKTsKKysgIHRkZXNjX2FkZF9mbGFnIChmaWVsZF90eXBlLCAxMSwg IlVNIik7CisrICB0ZGVzY19hZGRfZmxhZyAoZmllbGRfdHlwZSwgMTIsICJQTSIpOworKyAgdGRl c2NfYWRkX2ZsYWcgKGZpZWxkX3R5cGUsIDE1LCAiRloiKTsKKysKKysgIHRkZXNjX2NyZWF0ZV9y ZWcgKGZlYXR1cmUsICJ4bW0wIiwgMzIsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTEiLCAzMywgMSwgTlVMTCwgMTI4LCAidmVjMTI4 Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieG1tMiIsIDM0LCAxLCBOVUxMLCAx MjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW0zIiwgMzUs IDEsIE5VTEwsIDEyOCwgInZlYzEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg InhtbTQiLCAzNiwgMSwgTlVMTCwgMTI4LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVn IChmZWF0dXJlLCAieG1tNSIsIDM3LCAxLCBOVUxMLCAxMjgsICJ2ZWMxMjgiKTsKKysgIHRkZXNj X2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ4bW02IiwgMzgsIDEsIE5VTEwsIDEyOCwgInZlYzEyOCIp OworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInhtbTciLCAzOSwgMSwgTlVMTCwgMTI4 LCAidmVjMTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAibXhjc3IiLCA0MCwg MSwgInZlY3RvciIsIDMyLCAiaTM4Nl9teGNzciIpOworKworKyAgZmVhdHVyZSA9IHRkZXNjX2Ny ZWF0ZV9mZWF0dXJlIChyZXN1bHQsICJvcmcuZ251LmdkYi5pMzg2LmF2eCIpOworKyAgdGRlc2Nf Y3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTBoIiwgNDEsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgi KTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5bW0xaCIsIDQyLCAxLCBOVUxMLCAx MjgsICJ1aW50MTI4Iik7CisrICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tMmgiLCA0 MywgMSwgTlVMTCwgMTI4LCAidWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVy ZSwgInltbTNoIiwgNDQsIDEsIE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0 ZV9yZWcgKGZlYXR1cmUsICJ5bW00aCIsIDQ1LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7Cisr ICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0dXJlLCAieW1tNWgiLCA0NiwgMSwgTlVMTCwgMTI4LCAi dWludDEyOCIpOworKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgInltbTZoIiwgNDcsIDEs IE5VTEwsIDEyOCwgInVpbnQxMjgiKTsKKysgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsICJ5 bW03aCIsIDQ4LCAxLCBOVUxMLCAxMjgsICJ1aW50MTI4Iik7CisrCisrICB0ZGVzY19pMzg2X2F2 eCA9IHJlc3VsdDsKKyt9CistLS0gLi9nZGIvZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC54bWwJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9mZWF0dXJlcy9pMzg2 L2kzODYtYXZ4LnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAs MCArMSwxNiBAQAorKzw/eG1sIHZlcnNpb249IjEuMCI/PgorKzwhLS0gQ29weXJpZ2h0IChDKSAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgICAgQ29weWluZyBhbmQg ZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK KysgICAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlk ZWQgdGhlIGNvcHlyaWdodAorKyAgICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2Vy dmVkLiAgLS0+CisrCisrPCEtLSBJMzg2IHdpdGggQVZYIC0tPgorKworKzwhRE9DVFlQRSB0YXJn ZXQgU1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+CisrPHRhcmdldD4KKysgIDxhcmNoaXRlY3R1cmU+ aTM4NjwvYXJjaGl0ZWN0dXJlPgorKyAgPHhpOmluY2x1ZGUgaHJlZj0iMzJiaXQtY29yZS54bWwi Lz4KKysgIDx4aTppbmNsdWRlIGhyZWY9IjMyYml0LXNzZS54bWwiLz4KKysgIDx4aTppbmNsdWRl IGhyZWY9IjMyYml0LWF2eC54bWwiLz4KKys8L3RhcmdldD4KKy0tLSAuL2dkYi9nZGJzZXJ2ZXIv Q2hhbmdlTG9nLmF2eAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIC4v Z2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cuYXZ4CTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDg0IEBACisrMjAxMC0wMy0wMyAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X2xpbnV4X3Byb2Nlc3Nf cXN1cHBvcnRlZCk6IFVzZQorKwlJMzg2X1hTVEFURV9TU0VfU0laRSBpbnN0ZWFkIG9mIEkzODZf WFNUQVRFX01BWF9TSVpFLiAgVXNlCisrCUkzODZfWFNUQVRFX1NJWkUuCisrCisrMjAxMC0wMy0w MiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4 N19jYWNoZV90b194c2F2ZSk6IFVwZGF0ZWQuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogTGlr ZXdpc2UuCisrCSh4ODZfeGNyMCk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2 X2xpbnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IExpa2V3aXNlLgorKworKzIwMTAtMDMtMDIgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbiAoaTM4Ni14 c3RhdGUubyk6IFJlbW92ZWQuCisrCisrCSogY29uZmlndXJlLnNydiAoc3J2X3RndG9iaik6IFJl bW92ZSBpMzg2LXhzdGF0ZS5vIGZvcgorKwlpWzM0NTY3XTg2LSotbGludXgqIGFuZCB4ODZfNjQt Ki1saW51eCouCisrCisrCSogaTM4Ny1mcC5jICh4ODZfeGNyMCk6IEluaXRpYWxpemVkIHRvIFhT VEFURV9TU0VfTUFTSy4KKysJKHg4Nl94Y3IwX2luaXQpOiBSZW1vdmVkLgorKworKwkqIGkzODct ZnAuaCAoeDg2X3hjcjBfaW5pdCk6IFJlbW92ZWQuCisrCisrCSogbGludXgteDg2LWxvdy5jICh4 ODZfbGludXhfcHJvY2Vzc19xc3VwcG9ydGVkKTogVXNlCisrCVhTVEFURV9NQVhfU0laRV9OX09G X0lOVDY0IGFuZCBYU1RBVEVfTUFYX1NJWkUuICBHZXQgeGNyMAorKwlmcm9tIFhTQVZFIGV4dGVu ZGVkIHN0YXRlLgorKworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBNYWtlZmlsZS5pbiAoY2xlYW4pOiBSZXBsYWNlIHJlZy1pMzg2LWxpbnV4LWF2 eC5jIHdpdGgKKysJcmVnLWkzODYtYXZ4LWxpbnV4LmMuCisrCShyZWcteDg2LTY0LWF2eC5jKTog Rml4ZWQuCisrCShyZWcteDg2LTY0LWF2eC1saW51eC5jKTogTGlrZXdpc2UuCisrCisrMjAxMC0w MS0yMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbmZpZ3VyZS5z cnYgKHNydl90Z3RvYmopOiBBZGQgeHNhdmUtbmF0Lm8gZm9yCisrCWlbMzQ1NjddODYtKi1saW51 eCogYW5kIHg4Nl82NC0qLWxpbnV4Ki4KKysKKysyMDEwLTAxLTIxICBILkouIEx1ICA8aG9uZ2pp dS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jICh4ODZfc3NlX3VuaXQpOiBSZW5hbWVk IHRvIC4uLgorKwkoeDg2X3ZlY3Rvcl91bml0KTogVGhpcy4KKysJKHg4Nl9nZXRfc3NlX3VuaXQp OiBSZW5hbWVkIHRvIC4uLgorKwkoeDg2X2dldF92ZWN0b3JfdW5pdCk6IFRoaXMuCisrCShpMzg3 X2NhY2hlX3RvX2Z4c2F2ZSk6IFVwZGF0ZWQuCisrCSogbGludXgteDg2LWxvdy5jICh4ODZfYXJj aF9zZXR1cCk6IExpa2V3aXNlLgorKworKzIwMTAtMDEtMjEgIEguSi4gTHUgIDxob25naml1Lmx1 QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmggKHg4Nl9zc2VfdW5pdCk6IFJlbmFtZWQgdG8g Li4uCisrCSh4ODZfdmVjdG9yX3VuaXQpOiBUaGlzLgorKworKzIwMDktMTAtMTQgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbiAoY2xlYW4pOiBBbHNv IHJlbW92ZSByZWctaTM4Ni1hdnguYywKKysJcmVnLWkzODYtYXZ4LWxpbnV4LmMsIHJlZy14ODYt NjQtYXZ4LmMgYW5kIHJlZy14ODYtNjQtYXZ4LWxpbnV4LmMuCisrCShyZWctaTM4Ni1hdngubyk6 IE5ldyB0YXJnZXQuCisrCShyZWctaTM4Ni1hdnguYyk6IExpa2V3aXNlLgorKwkocmVnLWkzODYt YXZ4LWxpbnV4Lm8pOiBMaWtld2lzZS4KKysJKHJlZy1pMzg2LWF2eC1saW51eC5jKTogTGlrZXdp c2UuCisrCShyZWcteDg2LTY0LWF2eC5vKTogTGlrZXdpc2UuCisrCShyZWcteDg2LTY0LWF2eC5j KTogTGlrZXdpc2UuCisrCShyZWcteDg2LTY0LWF2eC1saW51eC5vKTogTGlrZXdpc2UuCisrCShy ZWcteDg2LTY0LWF2eC1saW51eC5jKTogTGlrZXdpc2UuCisrCisrCSogZ2Ric2VydmVyL2NvbmZp Z3VyZS5zcnYgKHNydl9yZWdvYmopOiBBZGQgcmVnLWkzODYtYXZ4LWxpbnV4Lm8KKysJZm9yIGlb MzQ1NjddODYtKi1saW51eCouICBBZGQgcmVnLXg4Ni02NC1hdngtbGludXgubyBhbmQKKysJcmVn LWkzODYtYXZ4LWxpbnV4Lm8gZm9yIHg4Nl82NC0qLWxpbnV4Ki4KKysKKysJKiBpMzg3LWZwLmMg KHg4Nl9zc2VfdW5pdCk6IE5ldy4KKysJKHg4Nl9nZXRfc3NlX3VuaXQpOiBMaWtld2lzZS4KKysJ KGkzODdfY2FjaGVfdG9fZnhzYXZlKTogSGFuZGxlIHg4Nl9zc2VfdW5pdC4gU3VwcG9ydCBmYWtl CisrCUFWWCByZWdpc3RlcnMuCisrCShpMzg3X2Z4c2F2ZV90b19jYWNoZSk6IExpa2V3aXNlLgor KworKwkqIGkzODctZnAuaCAoeDg2X3NzZV91bml0KTogTmV3LgorKwkoeDg2X2dldF9zc2VfdW5p dCk6IExpa2V3aXNlLgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoaW5pdF9yZWdpc3RlcnNfaTM4 Nl9hdnhfbGludXgpOiBOZXcuCisrCShpbml0X3JlZ2lzdGVyc194ODZfNjRfYXZ4X2xpbnV4KTog TGlrZXdpc2UuCisrCSh4ODZfYXJjaF9zZXR1cCk6IENhbGwgeDg2X2dldF9zc2VfdW5pdCAoKSB0 byBoYW5kbGUgeDg2X3NzZV91bml0LgorLS0tIC4vZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cueGNy CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVy L0NoYW5nZUxvZy54Y3IJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsMzczIEBACisrMjAxMC0wMy0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29t PgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYzogRG9uJ3QgaW5jbHVkZSA8dW5pc3RkLmg+LgorKwor KzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51 eC14ODYtbG93LmMgKHg4Nl9saW51eF91cGRhdGVfeG1sdGFyZ2V0KTogQ2FsbCBwdHJhY2UKKysJ b25seSBvbmNlLgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNv bT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHVzZV94bWwpOiBOZXcuCisrCSh4ODZfbGludXhf dXBkYXRlX3htbHRhcmdldCk6IExpa2V3aXNlLgorKwkoeDg2X2xpbnV4X3Byb2Nlc3NfcXN1cHBv cnRlZCk6IFVzZSB4ODZfbGludXhfdXBkYXRlX3htbHRhcmdldC4KKysJKHg4Nl9hcmNoX3NldHVw KTogRG9uJ3QgY2FsbCBpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCwKKysJaW5pdF9yZWdpc3Rl cnNfaTM4Nl9saW51eC4gIERvbid0IHNldCBnZGJzZXJ2ZXJfeG1sdGFyZ2V0LiAgVXNlCisrCXg4 Nl9saW51eF91cGRhdGVfeG1sdGFyZ2V0LgorKworKwkqIHNlcnZlci5jIChoYW5kbGVfcXVlcnkp OiBDYWxsIHRhcmdldF9wcm9jZXNzX3FzdXBwb3J0ZWQgd2l0aAorKwlOVUxMIHF1ZXJ5IGZpcnN0 LgorKworKzIwMTAtMDMtMjkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJ KiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBSZXBsYWNl CisrCXVpbnQ2NF90IHdpdGggdW5zaWduZWQgbG9uZyBsb25nLgorKworKzIwMTAtMDMtMjggIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4 Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjaworKwkieG1sUmVnaXN0ZXJzPSIgaW5z dGVhZCBvZiAieG1sUmVnaXN0ZXJzKyIuCisrCisrMjAxMC0wMy0yOCAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAodGFyZ2V0X3JlZ3NldHMp OiBBbHdheXMgdXNlIEVYVEVOREVEX1JFR1MKKysJd2l0aCBOVF9YODZfWFNUQVRFLgorKworKzIw MTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14 ODYtbG93LmMgKHhtbHRhcmdldF9hbWQ2NF9saW51eF9ub194bWwpOiBOZXcuCisrCSh4bWx0YXJn ZXRfaTM4Nl9saW51eF9ub194bWwpOiBMaWtld2lzZS4KKysJKHg4Nl9saW51eF9wcm9jZXNzX3Fz dXBwb3J0ZWQpOiBSZW1vdmUgdXNlX3htbC4gIFVwZGF0ZQorKwlnZGJzZXJ2ZXJfeG1sdGFyZ2V0 LgorKwkoeDg2X2FyY2hfc2V0dXApOiBTZXQgZ2Ric2VydmVyX3htbHRhcmdldCB0bworKwl4bWx0 YXJnZXRfYW1kNjRfbGludXhfbm9feG1sL3htbHRhcmdldF9pMzg2X2xpbnV4X25vX3htbC4KKysK KysJKiBzZXJ2ZXIuYyAodXNlX3htbCk6IFJlbW92ZWQuCisrCShnZXRfZmVhdHVyZXNfeG1sKTog VXBkYXRlZC4KKysJKGhhbmRsZV9xdWVyeSk6IERvbid0IGNhbGwgdGFyZ2V0X3Byb2Nlc3NfcXN1 cHBvcnRlZCB3aXRoIE5VTEwuCisrCisrCSogc2VydmVyLmggKHVzZV94bWwpOiBSZW1vdmVkLgor KworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBs aW51eC14ODYtbG93LmM6IEluY2x1ZGUgPHVuaXN0ZC5oPi4KKysJKHg4Nl9saW51eF9wcm9jZXNz X3FzdXBwb3J0ZWQpOiBVc2UgZ2V0cGlkLgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9j ZXNzX3FzdXBwb3J0ZWQpOiBSZXBsYWNlCisrCXVuc2lnbmVkIGxvbmcgbG9uZyB3aXRoIHVpbnQ2 NF90LgorKworKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBTZXQg dXNlX3htbAorKwl0byAxIGlmIFhNTCBpcyBzdXBwb3J0ZWQuCisrCisrMjAxMC0wMy0yNyAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIHNlcnZlci5jIChoYW5kbGVfcXVl cnkpOiBEb24ndCBjaGVjayAieDg2OnhzdGF0ZT0iLgorKworKzIwMTAtMDMtMjcgIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51 eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjaworKwl4bWxSZWdpc3RlcnMrIGluc3RlYWQgb2Yg eDg2PXhtbC4KKysKKysJKiBzZXJ2ZXIuYyAoVVNFX1hNTCk6IERlZmF1bHQgdG8gMC4KKysJKHVz ZV94bWwpOiBJbml0aWFsaXplIHRvIFVTRV9YTUwuCisrCisrMjAxMC0wMy0xMiAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N19jYWNoZV90b194 c2F2ZSk6IFJlcGxhY2UgYml0X0kzODZfWFNUQVRFX1hYWAorKwl3aXRoIEkzODZfWFNUQVRFX1hY WC4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAzLTA1ICBI LkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jIChpMzg3X2Nh Y2hlX3RvX3hzYXZlKTogQ2hlY2sgYml0X0kzODZfWFNUQVRFX1g4Ny4KKysJKGkzODdfeHNhdmVf dG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAzLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5s dUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogT3B0 aW1pemVkLgorKworKzIwMTAtMDMtMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBIYW5kbGUgdXBwZXIgWU1N IHJlZ2lzdGVycy4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysJKiBs aW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjayB4ODY9 eG1sLgorKworKzIwMTAtMDItMTkgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBBbHNvIGNoZWNrIHg4NyByZWdp c3RlcnMuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogTGlrZXdpc2UuCisrCisrCSogbGludXgt eDg2LWxvdy5jOiBJbmNsdWRlIDxzeXMvdWlvLmg+LgorKwkoeDg2X2xpbnV4X3Byb2Nlc3NfcXN1 cHBvcnRlZCk6IFN1cHBvcnQgQVZYIG9ubHkgaWYKKysJUFRSQUNFX0dFVFJFR1NFVCB3b3Jrcy4K KysKKysyMDEwLTAyLTEzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSog aTM4Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQ2hlY2sgeDg2X3hjcjAgaW5zdGVhZCBv ZgorKwl4ODZfdmVjdG9yX3VuaXQuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogTGlrZXdpc2Uu CisrCSh4ODZfdmVjdG9yX3VuaXQpOiBSZW1vdmVkLgorKwkoeDg2X3ZlY3Rvcl91bml0X2luaXQp OiBMaWtld2lzZS4KKysJKHg4Nl94Y3IwKTogTmV3LgorKwkoeDg2X3hjcjBfaW5pdCk6IExpa2V3 aXNlLgorKworKwkqIGkzODctZnAuaCAoeDg2X3ZlY3Rvcl91bml0KTogUmVtb3ZlZC4KKysJKHg4 Nl92ZWN0b3JfdW5pdF9pbml0KTogTGlrZXdpc2UuCisrCSh4ODZfeGNyMCk6IE5ldy4KKysJKHg4 Nl94Y3IwX2luaXQpOiBMaWtld2lzZS4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51 eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBDaGVjayB4ODZfeGNyMAorKwlpbnN0ZWFkIG9mIHg4Nl92 ZWN0b3JfdW5pdC4KKysKKysyMDEwLTAyLTExICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogbGludXgtYXJtLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IEluaXRpYWxpemUg bnRfdHlwZSB0byAwLgorKwkqIGxpbnV4LWNyaXN2MzItbG93LmMgKHRhcmdldF9yZWdzZXRzKTog TGlrZXdpc2UuCisrCSogbGludXgtbTY4ay1sb3cuYyAodGFyZ2V0X3JlZ3NldHMpOiBMaWtld2lz ZS4KKysJKiBsaW51eC1taXBzLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkq IGxpbnV4LXBwYy1sb3cuYyAodGFyZ2V0X3JlZ3NldHMpOiBMaWtld2lzZS4KKysJKiBsaW51eC1z MzkwLWxvdy5jICh0YXJnZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXNoLWxvdy5j ICh0YXJnZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXNwYXJjLWxvdy5jICh0YXJn ZXRfcmVnc2V0cyk6IExpa2V3aXNlLgorKwkqIGxpbnV4LXh0ZW5zYS1sb3cuYyAodGFyZ2V0X3Jl Z3NldHMpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTExICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogbGludXgtbG93LmMgKHJlZ3NldHNfZmV0Y2hfaW5mZXJpb3JfcmVn aXN0ZXJzKTogU2ltcGxpZnkKKysJbnRfdHlwZS4KKysJKHJlZ3NldHNfc3RvcmVfaW5mZXJpb3Jf cmVnaXN0ZXJzKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0xMCAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LWxvdy5jOiBJbmNsdWRlIDxzeXMvdWlvLmg+Lgor KwkocmVnc2V0c19mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMpOiBTdXBwb3J0IG50X3R5cGUuCisr CShyZWdzZXRzX3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyk6IExpa2V3aXNlLgorKworKwkqIGxp bnV4LWxvdy5oIChyZWdzZXRfaW5mbyk6IEFkZCBudF90eXBlLgorKworKwkqIGxpbnV4LXg4Ni1s b3cuYzogSW5jbHVkZSAiZWxmL2NvbW1vbi5oIi4gIERvbid0IGluY2x1ZGUKKysJIi4uL2NvbmZp Zy9pMzg2L25tLWxpbnV4LXhzdGF0ZS5oIi4KKysJKFBUUkFDRV9HRVRSRUdTRVQpOiBOZXcuCisr CShQVFJBQ0VfU0VUUkVHU0VUKTogTGlrZXdpc2UuCisrCSh0YXJnZXRfcmVnc2V0cyk6IEluaXRp YWxpemUgbnRfdHlwZS4KKysKKysyMDEwLTAyLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogbGludXgteDg2LWxvdy5jOiBSZXBsYWNlIFBUUkFDRV9HRVRYU1RBVEVS RUdTIHdpdGgKKysJUFRSQUNFX0dFVFJFR1NFVCBpbiBjb21tZW50cy4KKysKKysyMDEwLTAyLTA5 ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgteDg2LWxvdy5j OiBJbmNsdWRlICIuLi9jb25maWcvaTM4Ni9ubS1saW51eC14c3RhdGUuaCIuCisrCShQVFJBQ0Vf U0VUWFNUQVRFUkVHUyk6IFJlbW92ZWQuCisrCShQVFJBQ0VfU0VUWFNUQVRFUkVHUyk6IExpa2V3 aXNlLgorKwkodGFyZ2V0X3JlZ3NldHMpOiBVc2UgUFRSQUNFX0dFVFJFR1NFVC9QVFJBQ0VfU0VU UkVHU0VUIGluc3RlYWQKKysJb2YgUFRSQUNFX0dFVFhTVEFURVJFR1MvUFRSQUNFX1NFVFhTVEFU RVJFR1MuCisrCSh4ODZfbGludXhfcHJvY2Vzc19xc3VwcG9ydGVkKTogQ2hlY2sgUFRSQUNFX0dF VFJFR1NFVCBpbnN0ZWFkCisrCW9mIFBUUkFDRV9HRVRYU1RBVEVSRUdTLgorKworKzIwMTAtMDIt MDYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKHg4 Nl92ZWN0b3JfdW5pdF9pbml0KTogUHJvcGVybHkgY2hlY2sgeGNyMC4KKysKKysJKiBsaW51eC14 ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBTZXQgdXNlX3htbAorKwl0 byAwIGFuZCByZXR1cm4gZm9yIE5VTEwgcXVlcnkuICBTZXQgdXNlX3htbCB0byAxIGlmIHRoZXJl IGlzCisrCSJ4ODY6eHN0YXRlPSIgaW4gcVN1cHBvcnRlZCBwYWNrZXQuCisrCisrCSogc2VydmVy LmMgKGdldF9mZWF0dXJlc194bWwpOiBPcHRpbWl6ZWQuCisrCShoYW5kbGVfcXVlcnkpOiBDYWxs IHRhcmdldF9wcm9jZXNzX3FzdXBwb3J0ZWQgd2l0aCBOVUxMCisrCXF1ZXJ5IGZpcnN0LgorKwor KzIwMTAtMDItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3 LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBSZW1vdmUgdW5zaWduZWQgZnJvbSByYXcuCisr CShpMzg3X3hzYXZlX3RvX2NhY2hlKTogUmVtb3ZlIHVuc2lnbmVkIGZyb20gcmF3IGFuZCB4bW0u ICBGaXgKKysJYSB0eXBvLgorKworKzIwMTAtMDItMDUgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBw b3J0ZWQpOiBTZXQgdXNlX3htbAorKwl0byAwIGlmIHRoZXJlIGlzIG5vICJ4ODY6eHN0YXRlPSIg aW4gcVN1cHBvcnRlZCBwYWNrZXQuCisrCisrCSogc2VydmVyLmMgKHVzZV94bWwpOiBOZXcuCisr CShnZXRfZmVhdHVyZXNfeG1sKTogRG9uJ3QgdXNlIFhNTCBmaWxlIGlmIHVzZV94bWwgaXMgMC4K KysJKGhhbmRsZV9xdWVyeSk6IEFsd2F5cyBjYWxsIHRhcmdldF9wcm9jZXNzX3FzdXBwb3J0ZWQu CisrCisrCSogc2VydmVyLmggKHVzZV94bWwpOiBOZXcuCisrCisrMjAxMC0wMi0wNSAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIE1ha2VmaWxlLmluIChjbGVhbik6IFVw ZGF0ZWQuCisrCShpMzg2LWF2eC5vKTogTmV3LgorKwkoaTM4Ni1hdnguYyk6IExpa2V3aXNlLgor KwkoaTM4Ni1hdngtbGludXgubyk6IExpa2V3aXNlLgorKwkoaTM4Ni1hdngtbGludXguYyk6IExp a2V3aXNlLgorKwkoeDg2LTY0LWF2eC5vKTogTGlrZXdpc2UuCisrCSh4ODYtNjQtYXZ4LmMpOiBM aWtld2lzZS4KKysJKHg4Ni02NC1hdngtbGludXgubyk6IExpa2V3aXNlLgorKwkoeDg2LTY0LWF2 eC1saW51eC5jKTogTGlrZXdpc2UuCisrCisrCSogY29uZmlndXJlLnNydiAoc3J2X2kzODZfcmVn b2JqKTogQWRkIGkzODYtYXZ4Lm8uCisrCShzcnZfaTM4Nl9saW51eF9yZWdvYmopOiBBZGQgaTM4 Ni1hdngtbGludXguby4KKysJKHNydl94ODZfNjRfcmVnb2JqKTogQWRkIHg4Ni02NC1hdnguby4K KysJKHNydl94ODZfNjRfbGludXhfcmVnb2JqKTogQWRkIHg4Ni02NC1hdngtbGludXguby4KKysK KysyMDEwLTAyLTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29u ZmlndXJlLnNydiAoc3J2X2kzODZfMzJiaXRfeG1sZmlsZXMpOiBBZGQKKysJaTM4Ni8zMmJpdC1h dngueG1sLgorKwkoc3J2X2kzODZfNjRiaXRfeG1sZmlsZXMpOiBBZGQgaTM4Ni82NGJpdC1hdngu eG1sLgorKwkoc3J2X2kzODZfeG1sZmlsZXMpOiBBZGQgaTM4Ni9pMzg2LWF2eC54bWwuCisrCShz cnZfeDg2XzY0X3htbGZpbGVzKTogQWRkIGkzODYveDg2LTY0LWF2eC54bWwuCisrCShzcnZfaTM4 Nl9saW51eF94bWxmaWxlcyk6IEFkZCBpMzg2L2kzODYtYXZ4LWxpbnV4LnhtbC4KKysJKHNydl94 ODZfNjRfbGludXhfeG1sZmlsZXMpOiBBZGQgaTM4Ni94ODYtNjQtYXZ4LWxpbnV4LnhtbC4KKysK KysyMDEwLTAyLTA0ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGlu dXgtbG93LmMgKGxpbnV4X3Byb2Nlc3NfcXN1cHBvcnRlZCk6IE1ha2UgaXQgdm9pZC4KKysJKiBs aW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBMaWtld2lzZS4K KysKKysJKiBsaW51eC1sb3cuaCAobGludXhfdGFyZ2V0X29wcyk6IE1ha2UgcHJvY2Vzc19xc3Vw cG9ydGVkIHZvaWQuCisrCisrCSogc2VydmVyLmMgKGhhbmRsZV9xdWVyeSk6IE1ha2UgdGFyZ2V0 X3Byb2Nlc3NfcXN1cHBvcnRlZCB2b2lkLgorKworKwkqIHRhcmdldC5oICh0YXJnZXRfb3BzKTog TWFrZSBwcm9jZXNzX3FzdXBwb3J0ZWQgdm9pZC4KKysJKHRhcmdldF9wcm9jZXNzX3FzdXBwb3J0 ZWQpOiBNYWtlIGl0IHZvaWQuCisrCisrMjAxMC0wMi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N19jYWNoZV90b194c2F2ZSk6IFJlcGxh Y2UgeG1tWzMyXSB3aXRoIHJhd1szMl0uCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogT3B0aW1p emUgeHN0YXRlX2J2ID09IDAuCisrCisrMjAxMC0wMi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N19jYWNoZV90b194c2F2ZSk6IFJlbW92 ZSBjb2xsZWN0X3JlZ2lzdGVyX3BhcnQuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogUmVtb3Zl IHN1cHBseV9yZWdpc3Rlcl9wYXJ0LgorKworKwkqIHJlZ2NhY2hlLmMgKHN1cHBseV9yZWdpc3Rl cl9wYXJ0KTogUmVtb3ZlZC4KKysJKGNvbGxlY3RfcmVnaXN0ZXJfcGFydCk6IExpa2V3aXNlLgor KwkqIHJlZ2NhY2hlLmggKHN1cHBseV9yZWdpc3Rlcl9wYXJ0KTogTGlrZXdpc2UuCisrCShjb2xs ZWN0X3JlZ2lzdGVyX3BhcnQpOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTAyICBILkouIEx1ICA8 aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKHhzdGF0ZS1uYXQubyk6 IFJlbmFtZWQgdG8gLi4uCisrCShpMzg2LXhzdGF0ZS5vKTogVGhpcy4KKysKKysJKiBjb25maWd1 cmUuc3J2IChzcnZfdGd0b2JqKTogQWRkIGkzODYteHN0YXRlLm8gaW5zdGVhZCBvZgorKwl4c3Rh dGUtbmF0Lm8gZm9yIGlbMzQ1NjddODYtKi1saW51eCogYW5kIHg4Nl82NC0qLWxpbnV4Ki4KKysK KysJKiBpMzg3LWZwLmM6IEluY2x1ZGUgImkzODYteHN0YXRlLmgiIGluc3RlYWQgb2YgInhzdGF0 ZS1uYXQuaCIuCisrCSogbGludXgteDg2LWxvdy5jOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTAy ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jIChpMzg3 X2NhY2hlX3RvX3hzYXZlKTogQWRkIGFub3RoZXIgbWlzc2luZyBicmVhay4KKysKKysyMDEwLTAy LTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jIChp Mzg3X2NhY2hlX3RvX3hzYXZlKTogQWRkIHRoZSBtaXNzaW5nIGJyZWFrLgorKworKzIwMTAtMDIt MDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiByZWdjYWNoZS5jIChz dXBwbHlfcmVnaXN0ZXJfcGFydCk6IENsZWFyIHJlZ2NhY2hlIGlmIGJ1ZiBpcworKwlOVUxMLgor KworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBs aW51eC14ODYtbG93LmMgKHg4Nl9saW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBBbHdheXMKKysJ aW5pdGlhbGl6ZSBzaXplIGFuZCB4Y3IwLgorKworKzIwMTAtMDItMDIgIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKHg4Nl92ZWN0b3JfdW5pdF9pbml0 KTogU3VwcG9ydCBvbmx5IHdoYXQgYm90aCBnZGIKKysJYW5kIGhvc3Qgc3VwcG9ydC4KKysKKysy MDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1m cC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogQ2xlYXIgcGFydCBpbiB2ZWN0b3IgcmVnaXN0ZXJz CisrCWlmIGl0cyBiaXQgaW4geHN0YXRfYnYgaXMgemVyby4gIFVwZGF0ZSB4c3RhdF9idiBpZiBu ZWVkZWQuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogQ2xlYXIgcGFydCBpbiB2ZWN0b3IgcmVn aXN0ZXJzIGlmIGl0cyBiaXQKKysJaW4geHN0YXRfYnYgaXMgemVyby4KKysKKysJKiByZWdjYWNo ZS5jIChzdXBwbHlfcmVnaXN0ZXIpOiBDbGVhciByZWdjYWNoZSBpZiBidWYgaXMgTlVMTC4KKysK KysyMDEwLTAyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4 Ny1mcC5jIChpMzg3X2NhY2hlX3RvX3hzYXZlKTogUmVtb3ZlIHhjcjAuCisrCShpMzg3X3hzYXZl X3RvX2NhY2hlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMiAgSC5KLiBMdSAgPGhvbmdqaXUu bHVAaW50ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoeDg2X3ZlY3Rvcl91bml0X2luaXQpOiBV cGRhdGVkLgorKwkqIGkzODctZnAuaCAoeDg2X3ZlY3Rvcl91bml0X2luaXQpOiBMaWtld2lzZS4K KysKKysJKiBsaW51eC1sb3cuYyAobGludXhfdXBkYXRlX3g4Nl94c3RhdGVfc2l6ZSk6IFJlbmFt ZWQgdG8gLi4uCisrCShsaW51eF9wcm9jZXNzX3FzdXBwb3J0ZWQpOiBUaGlzLiAgVXBkYXRlZC4K KysJKGxpbnV4X3RhcmdldF9vcHMpOiBVcGRhdGVkLgorKworKwkqIGxpbnV4LWxvdy5oIChsaW51 eF90YXJnZXRfb3BzKTogUmVwbGFjZSB1cGRhdGVfeDg2X3hzdGF0ZV9zaXplCisrCXdpdGggcHJv Y2Vzc19xc3VwcG9ydGVkLgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X2xpbnV4X3VwZGF0 ZV94ODZfeHN0YXRlX3NpemUpOiBSZW5hbWVkCisrCXRvIC4uLgorKwkoeDg2X2xpbnV4X3Byb2Nl c3NfcXN1cHBvcnRlZCk6IFRoaXMuICBBc3NlbWJsZSBxU3VwcG9ydGVkIEFDSy4KKysKKysJKiBz ZXJ2ZXIuYyAoaGFuZGxlX3F1ZXJ5KTogQ2FsbCB0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkCisr CWZvciB1bmhhbmRsZWQgcXVlcnkuCisrCisrCSogdGFyZ2V0LmggKHRhcmdldF9vcHMpOiBSZXBs YWNlIHVwZGF0ZV94ODZfeHN0YXRlX3NpemUgd2l0aAorKwlwcm9jZXNzX3FzdXBwb3J0ZWQuCisr CSh0YXJnZXRfdXBkYXRlX3g4Nl94c3RhdGVfc2l6ZSk6IFJlbW92ZWQuCisrCSh0YXJnZXRfcHJv Y2Vzc19xc3VwcG9ydGVkKTogTmV3LgorKworKzIwMTAtMDItMDEgIEguSi4gTHUgIDxob25naml1 Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBS ZW1vdmUgeHN0YXRlX2J2LgorKwkoaTM4N194c2F2ZV90b19jYWNoZSk6IExpa2V3aXNlLgorKwor KzIwMTAtMDItMDEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3 LWZwLmMgKHg4Nl92ZWN0b3JfdW5pdF9pbml0KTogQWRkIGFuZCBjaGVjayBzaXplIGFyZ3VtZW50 LgorKworKwkqIGkzODctZnAuaCAoeDg2X3ZlY3Rvcl91bml0KTogUmVtb3ZlIHVua25vd24uCisr CSh4ODZfdmVjdG9yX3VuaXRfaW5pdCk6IEFkZCBzaXplIGFyZ3VtZW50LgorKworKwkqIGxpbnV4 LWxvdy5jIChsaW51eF91cGRhdGVfeDg2X3hzdGF0ZV9zaXplKTogTmV3LgorKwkobGludXhfdGFy Z2V0X29wcyk6IEFkZCBsaW51eF91cGRhdGVfeDg2X3hzdGF0ZV9zaXplLgorKworKwkqIGxpbnV4 LWxvdy5oIChsaW51eF90YXJnZXRfb3BzKTogQWRkIHVwZGF0ZV94ODZfeHN0YXRlX3NpemUuCisr CisrCSogbGludXgteDg2LWxvdy5jICh4ODZfdXBkYXRlX3hzdGF0ZXJlZ3NldF9zaXplKTogUmVu YW1lZCB0bworKwkuLi4KKysJKHg4Nl9saW51eF91cGRhdGVfeDg2X3hzdGF0ZV9zaXplKTogVGhp cy4gIFVwZGF0ZWQuCisrCSh4ODZfYXJjaF9zZXR1cCk6IERvbid0IGNhbGwgeDg2X3VwZGF0ZV94 c3RhdGVyZWdzZXRfc2l6ZS4KKysJKHRoZV9sb3dfdGFyZ2V0KTogQWRkIHg4Nl9saW51eF91cGRh dGVfeDg2X3hzdGF0ZV9zaXplLgorKworKwkqIHNlcnZlci5jIChoYW5kbGVfcXVlcnkpOiBIYW5k bGUgIng4Njp4c3RhdGU6U0laRSIuCisrCisrCSogdGFyZ2V0LmggKHRhcmdldF9vcHMpOiBBZGQg dXBkYXRlX3g4Nl94c3RhdGVfc2l6ZS4KKysJKHRhcmdldF91cGRhdGVfeDg2X3hzdGF0ZV9zaXpl KTogTmV3LgorKworKzIwMTAtMDEtMzEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2FjaGVfdG9feHNhdmUpOiBIYW5kbGUgeGNyMCBhbmQg eHN0YXRlX2J2CisrCW9ubHkgZm9yIEFWWCBhbmQgYWJvdmUuCisrCShpMzg3X3hzYXZlX3RvX2Nh Y2hlKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0zMSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50 ZWwuY29tPgorKworKwkqIGkzODctZnAuYyAoaTM4N194c2F2ZSk6IEFkZCB4Y3IwIGFuZCB4c3Rh dGVfYnYuCisrCShpMzg3X2NhY2hlX3RvX3hzYXZlKTogSGFuZGxlIHhjcjAgYW5kIHhzdGF0ZV9i di4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTI5ICBI LkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogaTM4Ny1mcC5jICh4ODZfdmVj dG9yX3VuaXRfaW5pdCk6IFVwZGF0ZWQuCisrCSogbGludXgteDg2LWxvdy5jICh4ODZfdXBkYXRl X3hzdGF0ZXJlZ3NldF9zaXplKTogTGlrZXdpc2UuCistLS0gLi9nZGIvZ2Ric2VydmVyL0NoYW5n ZUxvZy54bWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9n ZGJzZXJ2ZXIvQ2hhbmdlTG9nLnhtbAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIw MAorQEAgLTAsMCArMSw2OCBAQAorKzIwMTAtMDItMDggIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKGluaXRfcmVnaXN0ZXJzX2kzODZfbGlu dXgpOiBVcGRhdGUgY29tbWVudHMuCisrCShpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCk6IExp a2V3aXNlLgorKworKzIwMTAtMDItMDcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4K KysKKysJKiBNYWtlZmlsZS5pbjogUmVwbGFjZSB4ODYtNjQgd2l0aCBhbWQ2NC4KKysKKysJKiBj b25maWd1cmUuc3J2OiBSZXBsYWNlIHg4Ni02NC94ODZfNjQgd2l0aCBhbWQ2NC4KKysKKysJKiBs aW51eC14ODYtbG93LmM6IFJlcGxhY2UgeDg2XzY0IHdpdGggYW1kNjQuCisrCisrMjAxMC0wMi0w NCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbmZpZ3VyZS5zcnYg KHNydl9pMzg2X3JlZ29iaik6IE5ldy4KKysJKHNydl9pMzg2X2xpbnV4X3JlZ29iaik6IExpa2V3 aXNlLgorKwkoc3J2X3g4Nl82NF9yZWdvYmopOiBMaWtld2lzZS4KKysJKHNydl94ODZfNjRfbGlu dXhfcmVnb2JqKTogTGlrZXdpc2UuCisrCShpWzM0NTY3XTg2LSotY3lnd2luKik6IFNldCBzcnZf cmVnb2JqIHRvICRzcnZfaTM4Nl9yZWdvYmouCisrCShpWzM0NTY3XTg2LSotbWluZ3czMmNlKik6 IExpa2V3aXNlLgorKwkoaVszNDU2N104Ni0qLW1pbmd3Kik6IExpa2V3aXNlLgorKwkoaVszNDU2 N104Ni0qLW50byopOiBMaWtld2lzZS4KKysJKGlbMzQ1NjddODYtKi1saW51eCopOiBTZXQgc3J2 X3JlZ29iaiB0byAkc3J2X2kzODZfbGludXhfcmVnb2JqCisrCWFuZCAkc3J2X3g4Nl82NF9saW51 eF9yZWdvYmouCisrCSh4ODZfNjQtKi1saW51eCopOiBMaWtld2lzZS4KKysKKysyMDEwLTAyLTA0 ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogY29uZmlndXJlLnNydiAo c3J2X2kzODZfMzJiaXRfeG1sZmlsZXMpOiBOZXcuCisrCShzcnZfaTM4Nl82NGJpdF94bWxmaWxl cyk6IExpa2V3aXNlLgorKwkoc3J2X2kzODZfeG1sZmlsZXMpOiBMaWtld2lzZS4KKysJKHNydl94 ODZfNjRfeG1sZmlsZXMpOiBMaWtld2lzZS4KKysJKHNydl9pMzg2X2xpbnV4X3htbGZpbGVzKTog TGlrZXdpc2UuCisrCShzcnZfeDg2XzY0X2xpbnV4X3htbGZpbGVzKTogTGlrZXdpc2UuCisrCShp WzM0NTY3XTg2LSotY3lnd2luKik6IFNldCBzcnZfeG1sZmlsZXMgdG8gJHNydl9pMzg2X3htbGZp bGVzLgorKwkoaVszNDU2N104Ni0qLW1pbmd3MzJjZSopOiBMaWtld2lzZS4KKysJKGlbMzQ1Njdd ODYtKi1taW5ndyopOiBMaWtld2lzZS4KKysJKGlbMzQ1NjddODYtKi1udG8qKTogTGlrZXdpc2Uu CisrCShpWzM0NTY3XTg2LSotbGludXgqKTogU2V0IHNydl94bWxmaWxlcyB0bworKwkkc3J2X2kz ODZfbGludXhfeG1sZmlsZXMgYW5kICRzcnZfeDg2XzY0X2xpbnV4X3htbGZpbGVzLgorKwkoeDg2 XzY0LSotbGludXgqKTogTGlrZXdpc2UuCisrCisrMjAxMC0wMi0wMyAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgorKworKwkqIE1ha2VmaWxlLmluIChjbGVhbik6IFJlcGxhY2UgcmVn LWkzODYuYywgcmVnLXg4Ni02NC5jLAorKwlyZWctaTM4Ni1saW51eC5jIGFuZCByZWcteDg2LTY0 LWxpbnV4LmMgd2l0aCBpMzg2LmMsIHg4Ni02NC5jLAorKwlpMzg2LWxpbnV4LmMgYW5kIHg4Ni02 NC1saW51eC5jLgorKwkocmVnLWkzODYubyk6IFJlbW92ZWQuCisrCShyZWctaTM4Ni5jKTogTGlr ZXdpc2UuCisrCShyZWctaTM4Ni1saW51eC5vKTogTGlrZXdpc2UuCisrCShyZWctaTM4Ni1saW51 eC5jKTogTGlrZXdpc2UuCisrCShyZWcteDg2LTY0Lm8pOiBMaWtld2lzZS4KKysJKHJlZy14ODYt NjQuYyk6IExpa2V3aXNlLgorKwkocmVnLXg4Ni02NC1saW51eC5vKTogTGlrZXdpc2UuCisrCShy ZWcteDg2LTY0LWxpbnV4LmMpOiBMaWtld2lzZS4KKysJKGkzODYubyk6IE5ldy4KKysJKGkzODYu Yyk6IExpa2V3aXNlLgorKwkoaTM4Ni1saW51eC5vKTogTGlrZXdpc2UuCisrCShpMzg2LWxpbnV4 LmMpOiBMaWtld2lzZS4KKysJKHg4Ni02NC5vKTogTGlrZXdpc2UuCisrCSh4ODYtNjQuYyk6IExp a2V3aXNlLgorKwkoeDg2LTY0LWxpbnV4Lm8pOiBMaWtld2lzZS4KKysJKHg4Ni02NC1saW51eC5j KTogTGlrZXdpc2UuCisrCisrCSogY29uZmlndXJlLnNydjogUmVwbGFjZSByZWctaTM4Ni5vLCBy ZWcteDg2LTY0Lm8sCisrCXJlZy1pMzg2LWxpbnV4Lm8gYW5kIHJlZy14ODYtNjQtbGludXgubyB3 aXRoIGkzODYubywgeDg2LTY0Lm8sCisrCWkzODYtbGludXgubyBhbmQgeDg2LTY0LWxpbnV4Lm8u CistLS0gLi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZy54c3RhdGUJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nLnhzdGF0ZQky MDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSw4OSBAQAorKzIw MTAtMDEtMzEgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZw LmMgKGkzODdfeHNhdmUpOiBDb3JyZWN0IGxheW91dC4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1 ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisrCisrCSogbGludXgteDg2LWxvdy5jICh4ODZfdXBk YXRlX3hzdGF0ZXJlZ3NldF9zaXplKTogVXNlCisrCWkzODZfeHN0YXRlLnNpemUuCisrCisrMjAx MC0wMS0yNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4 Ni1sb3cuYyAoeDg2X3VwZGF0ZV94c3RhdGVyZWdzZXRfc2l6ZSk6IENhbGwKKysJeDg2X3ZlY3Rv cl91bml0X2luaXQgaGVyZS4gVHVybiBvZmYgb3RoZXIgRlAgUFRSQUNFIHJlcXVlc3RzCisrCW9u bHkgb24gQVZYIGhvc3QuCisrCSh4ODZfYXJjaF9zZXR1cCk6IERvbid0IGNhbGwgeDg2X3ZlY3Rv cl91bml0X2luaXQgaGVyZS4KKysKKysyMDEwLTAxLTI2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogbGludXgteDg2LWxvdy5jICh4ODZfdXBkYXRlX3hzdGF0ZXJlZ3Nl dF9zaXplKTogVXBkYXRlCisrCXNpemUgZm9yIFBUUkFDRV9HRVRYU1RBVEVSRUdTIG9ubHkgaWYg aXQgaXMgc3VwcG9ydGVkLgorKworKzIwMTAtMDEtMjYgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBsaW51eC14ODYtbG93LmMgKHg4Nl91cGRhdGVfeHN0YXRlcmVnc2V0 X3NpemUpOiBVc2Ugb25seQorKwlQVFJBQ0VfR0VUWFNUQVRFUkVHUyBpZiBpdCBpcyBzdXBwb3J0 ZWQuCisrCisrMjAxMC0wMS0yNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKwor KwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X3VwZGF0ZV94c3RhdGVyZWdzZXRfc2l6ZSk6IEZvciBB VlgsCisrCW9ubHkgdXNlIFBUUkFDRV9HRVRYU1RBVEVSRUdTLgorKworKzIwMTAtMDEtMjYgIEgu Si4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfY2Fj aGVfdG9feHNhdmUpOiBGaW5kIHltbTAgZm9yIEFWWC4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUp OiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogTWFrZWZpbGUuaW4gKHhzYXZlLW5hdC5vKTogUmVuYW1lZCB0byAuLi4KKysJ KHhzdGF0ZS1uYXQubyk6IFRoaXMuCisrCisrCSogY29uZmlndXJlLnNydiAoc3J2X3RndG9iaik6 IEFkZCB4c3RhdGUtbmF0Lm8gaW5zdGVhZCBvZgorKwl4c2F2ZS1uYXQubyBmb3IgaVszNDU2N104 Ni0qLWxpbnV4KiBhbmQgeDg2XzY0LSotbGludXgqLgorKworKwkqIGkzODctZnAuYzogSW5jbHVk ZSAieHN0YXRlLW5hdC5oIiBpbnN0ZWFkIG9mICJ4c2F2ZS1uYXQuaCIuCisrCSogbGludXgteDg2 LWxvdy5jOiBMaWtld2lzZS4KKysKKysyMDEwLTAxLTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBp bnRlbC5jb20+CisrCisrCSogcmVnY2FjaGUuYyAoc3VwcGx5X3JlZ2lzdGVyX3BhcnQpOiBDaGFu Z2Ugc2l6ZSB0byB1bnNpZ25lZCBpbnQuCisrCShjb2xsZWN0X3JlZ2lzdGVyX3BhcnQpOiBMaWtl d2lzZS4KKysJKiByZWdjYWNoZS5oIChzdXBwbHlfcmVnaXN0ZXJfcGFydCk6IExpa2V3aXNlLgor KwkoY29sbGVjdF9yZWdpc3Rlcl9wYXJ0KTogTGlrZXdpc2UuCisrCisrMjAxMC0wMS0yMiAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYzogSW5j bHVkZSAieHNhdmUtbmF0LmgiCisrCShQVFJBQ0VfR0VUWFNUQVRFUkVHUyk6IE5ldy4KKysJKFBU UkFDRV9TRVRYU1RBVEVSRUdTKTogTGlrZXdpc2UuCisrCSh4ODZfZmlsbF94c3RhdGVyZWdzZXQp OiBMaWtld2lzZS4KKysJKHg4Nl9zdG9yZV94c3RhdGVyZWdzZXQpOiBMaWtld2lzZS4KKysJKHg4 Nl91cGRhdGVfeHN0YXRlcmVnc2V0X3NpemUpOiBMaWtld2lzZS4KKysJKHRhcmdldF9yZWdzZXRz KTogQWRkIFBUUkFDRV9HRVRYU1RBVEVSRUdTIGVudHJ5LgorKwkoeDg2X2FyY2hfc2V0dXApOiBD YWxsIHg4Nl91cGRhdGVfeHN0YXRlcmVnc2V0X3NpemUuCisrCisrMjAxMC0wMS0yMiAgSC5KLiBM dSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGNvbmZpZ3VyZS5zcnYgKHNydl90Z3Rv YmopOiBBZGQgeHNhdmUtbmF0Lm8gZm9yCisrCWlbMzQ1NjddODYtKi1saW51eCogYW5kIHg4Nl82 NC0qLWxpbnV4Ki4KKysKKysJKiBpMzg3LWZwLmMgKGkzODdfeHNhdmUpOiBOZXcuCisrCShpMzg3 X2NhY2hlX3RvX3hzYXZlKTogTGlrZXdpc2UuCisrCShpMzg3X3hzYXZlX3RvX2NhY2hlKTogTGlr ZXdpc2UuCisrCSh4ODZfdmVjdG9yX3VuaXQpOiBMaWtld2lzZS4KKysJKHg4Nl92ZWN0b3JfdW5p dF9pbml0KTogTGlrZXdpc2UuCisrCSogMzg3LWZwLmggKGkzODdfY2FjaGVfdG9feHNhdmUpOiBM aWtld2lzZS4KKysJKGkzODdfeHNhdmVfdG9fY2FjaGUpOiBMaWtld2lzZS4KKysJKHg4Nl92ZWN0 b3JfdW5pdCk6IExpa2V3aXNlLgorKwkoeDg2X3ZlY3Rvcl91bml0X2luaXQpOiBMaWtld2lzZS4K KysJKiByZWdjYWNoZS5jIChzdXBwbHlfcmVnaXN0ZXJfcGFydCk6IExpa2V3aXNlLgorKwkoY29s bGVjdF9yZWdpc3Rlcl9wYXJ0KTogTGlrZXdpc2UuCisrCSogcmVnY2FjaGUuaCAoc3VwcGx5X3Jl Z2lzdGVyX3BhcnQpOiBMaWtld2lzZS4KKysJKGNvbGxlY3RfcmVnaXN0ZXJfcGFydCk6IExpa2V3 aXNlLgorKworKwkqIGxpbnV4LXg4Ni1sb3cuYyAoeDg2X2FyY2hfc2V0dXApOiBDYWxsIHg4Nl92 ZWN0b3JfdW5pdF9pbml0LgorKworKzIwMTAtMDEtMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGlu dGVsLmNvbT4KKysKKysJKiBNYWtlZmlsZS5pbiAoeHNhdmUtbmF0Lm8pOiBOZXcuCistLS0gLi9n ZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICsw MjAwCisrKysgLi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCTIwMTAtMDQtMDMgMjE6MTI6MzIu MDAwMDAwMDAwICswMjAwCitAQCAtMjE3LDYgKzIxNyw4IEBAIGNsZWFuOgorIAlybSAtZiBwb3dl cnBjLWlzYTIwNS12c3g2NGwuYworIAlybSAtZiBzMzkwLWxpbnV4MzIuYyBzMzkwLWxpbnV4NjQu YyBzMzkweC1saW51eDY0LmMKKyAJcm0gLWYgeG1sLWJ1aWx0aW4uYyBzdGFtcC14bWwKKysJcm0g LWYgaTM4Ni1hdnguYyBpMzg2LWF2eC1saW51eC5jCisrCXJtIC1mIGFtZDY0LWF2eC5jIGFtZDY0 LWF2eC1saW51eC5jCisgCisgbWFpbnRhaW5lci1jbGVhbiByZWFsY2xlYW4gZGlzdGNsZWFuOiBj bGVhbgorIAlybSAtZiBubS5oIHRtLmggeG0uaCBjb25maWcuc3RhdHVzIGNvbmZpZy5oIHN0YW1w LWggY29uZmlnLmxvZworQEAgLTM1MSw2ICszNTMsMTIgQEAgaTM4Ni5jIDogJChzcmNkaXIpLy4u L3JlZ2Zvcm1hdHMvaTM4Ni9pMworIGkzODYtbGludXgubyA6IGkzODYtbGludXguYyAkKHJlZ2Rl Zl9oKQorIGkzODYtbGludXguYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL2kzODYvaTM4Ni1s aW51eC5kYXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2Rpcikv Li4vcmVnZm9ybWF0cy9pMzg2L2kzODYtbGludXguZGF0IGkzODYtbGludXguYworK2kzODYtYXZ4 Lm8gOiBpMzg2LWF2eC5jICQocmVnZGVmX2gpCisraTM4Ni1hdnguYyA6ICQoc3JjZGlyKS8uLi9y ZWdmb3JtYXRzL2kzODYvaTM4Ni1hdnguZGF0ICQocmVnZGF0X3NoKQorKwkkKFNIRUxMKSAkKHJl Z2RhdF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWF2eC5kYXQgaTM4Ni1h dnguYworK2kzODYtYXZ4LWxpbnV4Lm8gOiBpMzg2LWF2eC1saW51eC5jICQocmVnZGVmX2gpCisr aTM4Ni1hdngtbGludXguYyA6ICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL2kzODYvaTM4Ni1hdngt bGludXguZGF0ICQocmVnZGF0X3NoKQorKwkkKFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChzcmNkaXIp Ly4uL3JlZ2Zvcm1hdHMvaTM4Ni9pMzg2LWF2eC1saW51eC5kYXQgaTM4Ni1hdngtbGludXguYwor IHJlZy1pYTY0Lm8gOiByZWctaWE2NC5jICQocmVnZGVmX2gpCisgcmVnLWlhNjQuYyA6ICQoc3Jj ZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pYTY0LmRhdCAkKHJlZ2RhdF9zaCkKKyAJJChTSEVMTCkg JChyZWdkYXRfc2gpICQoc3JjZGlyKS8uLi9yZWdmb3JtYXRzL3JlZy1pYTY0LmRhdCByZWctaWE2 NC5jCitAQCAtNDM4LDYgKzQ0NiwxMiBAQCBhbWQ2NC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1h dHMvaTM4Ni9hCisgYW1kNjQtbGludXgubyA6IGFtZDY0LWxpbnV4LmMgJChyZWdkZWZfaCkKKyBh bWQ2NC1saW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1saW51eC5k YXQgJChyZWdkYXRfc2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVn Zm9ybWF0cy9pMzg2L2FtZDY0LWxpbnV4LmRhdCBhbWQ2NC1saW51eC5jCisrYW1kNjQtYXZ4Lm8g OiBhbWQ2NC1hdnguYyAkKHJlZ2RlZl9oKQorK2FtZDY0LWF2eC5jIDogJChzcmNkaXIpLy4uL3Jl Z2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdnguZGF0ICQocmVnZGF0X3NoKQorKwkkKFNIRUxMKSAkKHJl Z2RhdF9zaCkgJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdnguZGF0IGFtZDY0 LWF2eC5jCisrYW1kNjQtYXZ4LWxpbnV4Lm8gOiBhbWQ2NC1hdngtbGludXguYyAkKHJlZ2RlZl9o KQorK2FtZDY0LWF2eC1saW51eC5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2 NC1hdngtbGludXguZGF0ICQocmVnZGF0X3NoKQorKwkkKFNIRUxMKSAkKHJlZ2RhdF9zaCkgJChz cmNkaXIpLy4uL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0IGFtZDY0LWF2eC1s aW51eC5jCisgcmVnLXh0ZW5zYS5vIDogcmVnLXh0ZW5zYS5jICQocmVnZGVmX2gpCisgcmVnLXh0 ZW5zYS5jIDogJChzcmNkaXIpLy4uL3JlZ2Zvcm1hdHMvcmVnLXh0ZW5zYS5kYXQgJChyZWdkYXRf c2gpCisgCSQoU0hFTEwpICQocmVnZGF0X3NoKSAkKHNyY2RpcikvLi4vcmVnZm9ybWF0cy9yZWct eHRlbnNhLmRhdCByZWcteHRlbnNhLmMKKy0tLSAuL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLnNy dgkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2dkYnNlcnZl ci9jb25maWd1cmUuc3J2CTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAt MjIsMTcgKzIyLDE3IEBACisgIyBEZWZhdWx0IGhvc3Rpb19sYXN0X2Vycm9yIGltcGxlbWVudGF0 aW9uCisgc3J2X2hvc3Rpb19lcnJfb2Jqcz0iaG9zdGlvLWVycm5vLm8iCisgCistc3J2X2kzODZf cmVnb2JqPWkzODYubworLXNydl9pMzg2X2xpbnV4X3JlZ29iaj1pMzg2LWxpbnV4Lm8KKy1zcnZf YW1kNjRfcmVnb2JqPWFtZDY0Lm8KKy1zcnZfYW1kNjRfbGludXhfcmVnb2JqPWFtZDY0LWxpbnV4 Lm8KKytzcnZfaTM4Nl9yZWdvYmo9ImkzODYubyBpMzg2LWF2eC5vIgorK3Nydl9pMzg2X2xpbnV4 X3JlZ29iaj0iaTM4Ni1saW51eC5vIGkzODYtYXZ4LWxpbnV4Lm8iCisrc3J2X2FtZDY0X3JlZ29i aj0iYW1kNjQubyB4ODYtNjQtYXZ4Lm8iCisrc3J2X2FtZDY0X2xpbnV4X3JlZ29iaj0iYW1kNjQt bGludXgubyBhbWQ2NC1hdngtbGludXgubyIKKyAKKy1zcnZfaTM4Nl8zMmJpdF94bWxmaWxlcz0i aTM4Ni8zMmJpdC1jb3JlLnhtbCBpMzg2LzMyYml0LXNzZS54bWwiCistc3J2X2kzODZfNjRiaXRf eG1sZmlsZXM9ImkzODYvNjRiaXQtY29yZS54bWwgaTM4Ni82NGJpdC1zc2UueG1sIgorLXNydl9p Mzg2X3htbGZpbGVzPSJpMzg2L2kzODYueG1sICRzcnZfaTM4Nl8zMmJpdF94bWxmaWxlcyIKKy1z cnZfYW1kNjRfeG1sZmlsZXM9ImkzODYvYW1kNjQueG1sICRzcnZfaTM4Nl82NGJpdF94bWxmaWxl cyIKKy1zcnZfaTM4Nl9saW51eF94bWxmaWxlcz0iaTM4Ni9pMzg2LWxpbnV4LnhtbCBpMzg2LzMy Yml0LWxpbnV4LnhtbCAkc3J2X2kzODZfMzJiaXRfeG1sZmlsZXMiCistc3J2X2FtZDY0X2xpbnV4 X3htbGZpbGVzPSJpMzg2L2FtZDY0LWxpbnV4LnhtbCBpMzg2LzY0Yml0LWxpbnV4LnhtbCAkc3J2 X2kzODZfNjRiaXRfeG1sZmlsZXMiCisrc3J2X2kzODZfMzJiaXRfeG1sZmlsZXM9ImkzODYvMzJi aXQtY29yZS54bWwgaTM4Ni8zMmJpdC1zc2UueG1sIGkzODYvMzJiaXQtYXZ4LnhtbCIKKytzcnZf aTM4Nl82NGJpdF94bWxmaWxlcz0iaTM4Ni82NGJpdC1jb3JlLnhtbCBpMzg2LzY0Yml0LXNzZS54 bWwgaTM4Ni82NGJpdC1hdngueG1sIgorK3Nydl9pMzg2X3htbGZpbGVzPSJpMzg2L2kzODYueG1s IGkzODYvaTM4Ni1hdngueG1sICRzcnZfaTM4Nl8zMmJpdF94bWxmaWxlcyIKKytzcnZfYW1kNjRf eG1sZmlsZXM9ImkzODYvYW1kNjQueG1sIGkzODYvYW1kNjQtYXZ4LnhtbCAkc3J2X2kzODZfNjRi aXRfeG1sZmlsZXMiCisrc3J2X2kzODZfbGludXhfeG1sZmlsZXM9ImkzODYvaTM4Ni1saW51eC54 bWwgaTM4Ni9pMzg2LWF2eC1saW51eC54bWwgaTM4Ni8zMmJpdC1saW51eC54bWwgJHNydl9pMzg2 XzMyYml0X3htbGZpbGVzIgorK3Nydl9hbWQ2NF9saW51eF94bWxmaWxlcz0iaTM4Ni9hbWQ2NC1s aW51eC54bWwgaTM4Ni9hbWQ2NC1hdngtbGludXgueG1sIGkzODYvNjRiaXQtbGludXgueG1sICRz cnZfaTM4Nl82NGJpdF94bWxmaWxlcyIKKyAKKyAjIElucHV0IGlzIHRha2VuIGZyb20gdGhlICIk e3RhcmdldH0iIHZhcmlhYmxlLgorIAorLS0tIC4vZ2RiL2dkYnNlcnZlci9pMzg3LWZwLmMJMjAx MC0wMS0yMCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvaTM4 Ny1mcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMTksNiArMTks NyBAQAorIAorICNpbmNsdWRlICJzZXJ2ZXIuaCIKKyAjaW5jbHVkZSAiaTM4Ny1mcC5oIgorKyNp bmNsdWRlICJpMzg2LXhzdGF0ZS5oIgorIAorIGludCBudW1feG1tX3JlZ2lzdGVycyA9IDg7Cisg CitAQCAtNzIsNiArNzMsNDYgQEAgc3RydWN0IGkzODdfZnhzYXZlIHsKKyAgIHVuc2lnbmVkIGNo YXIgeG1tX3NwYWNlWzI1Nl07CisgfTsKKyAKKytzdHJ1Y3QgaTM4N194c2F2ZSB7CisrICAvKiBB bGwgdGhlc2UgYXJlIG9ubHkgc2l4dGVlbiBiaXRzLCBwbHVzIHBhZGRpbmcsIGV4Y2VwdCBmb3Ig Zm9wICh3aGljaAorKyAgICAgaXMgb25seSBlbGV2ZW4gYml0cyksIGFuZCBmb29mZiAvIGZpb2Zm ICh3aGljaCBhcmUgMzIgYml0cyBlYWNoKS4gICovCisrICB1bnNpZ25lZCBzaG9ydCBmY3RybDsK KysgIHVuc2lnbmVkIHNob3J0IGZzdGF0OworKyAgdW5zaWduZWQgc2hvcnQgZnRhZzsKKysgIHVu c2lnbmVkIHNob3J0IGZvcDsKKysgIHVuc2lnbmVkIGludCBmaW9mZjsKKysgIHVuc2lnbmVkIHNo b3J0IGZpc2VnOworKyAgdW5zaWduZWQgc2hvcnQgcGFkMTsKKysgIHVuc2lnbmVkIGludCBmb29m ZjsKKysgIHVuc2lnbmVkIHNob3J0IGZvc2VnOworKyAgdW5zaWduZWQgc2hvcnQgcGFkMTI7Cisr CisrICB1bnNpZ25lZCBpbnQgbXhjc3I7CisrICB1bnNpZ25lZCBpbnQgbXhjc3JfbWFzazsKKysK KysgIC8qIFNwYWNlIGZvciBlaWdodCA4MC1iaXQgRlAgdmFsdWVzIGluIDEyOC1iaXQgc3BhY2Vz LiAgKi8KKysgIHVuc2lnbmVkIGNoYXIgc3Rfc3BhY2VbMTI4XTsKKysKKysgIC8qIFNwYWNlIGZv ciBlaWdodCAxMjgtYml0IFhNTSB2YWx1ZXMsIG9yIDE2IG9uIHg4Ni02NC4gICovCisrICB1bnNp Z25lZCBjaGFyIHhtbV9zcGFjZVsyNTZdOworKworKyAgdW5zaWduZWQgY2hhciByZXNlcnZlZDFb NDhdOworKworKyAgLyogVGhlIGV4dGVuZGVkIGNvbnRyb2wgcmVnaXN0ZXIgMCAodGhlIFhGRUFU VVJFX0VOQUJMRURfTUFTSworKyAgICAgcmVnaXN0ZXIpLiAgKi8KKysgIHVuc2lnbmVkIGxvbmcg bG9uZyB4Y3IwOworKworKyAgdW5zaWduZWQgY2hhciByZXNlcnZlZDJbNDBdOworKworKyAgLyog VGhlIFhTVEFURV9CViBiaXQgdmVjdG9yLiAgKi8KKysgIHVuc2lnbmVkIGxvbmcgbG9uZyB4c3Rh dGVfYnY7CisrCisrICB1bnNpZ25lZCBjaGFyIHJlc2VydmVkM1s1Nl07CisrCisrICAvKiBTcGFj ZSBmb3IgZWlnaHQgdXBwZXIgMTI4LWJpdCBZTU0gdmFsdWVzLCBvciAxNiBvbiB4ODYtNjQuICAq LworKyAgdW5zaWduZWQgY2hhciB5bW1oX3NwYWNlWzI1Nl07CisrfTsKKysKKyB2b2lkCisgaTM4 N19jYWNoZV90b19mc2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdm9pZCAqYnVmKQor IHsKK0BAIC0xOTksNiArMjQwLDEyOCBAQCBpMzg3X2NhY2hlX3RvX2Z4c2F2ZSAoc3RydWN0IHJl Z2NhY2hlICpyCisgICBmcC0+Zm9zZWcgPSB2YWw7CisgfQorIAorK3ZvaWQKKytpMzg3X2NhY2hl X3RvX3hzYXZlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCB2b2lkICpidWYpCisreworKyAg c3RydWN0IGkzODdfeHNhdmUgKmZwID0gKHN0cnVjdCBpMzg3X3hzYXZlICopIGJ1ZjsKKysgIGlu dCBpOworKyAgdW5zaWduZWQgbG9uZyB2YWwsIHZhbDI7CisrICB1bnNpZ25lZCBpbnQgY2xlYXJf YnY7CisrICB1bnNpZ25lZCBsb25nIGxvbmcgeHN0YXRlX2J2ID0gMDsKKysgIGNoYXIgcmF3WzE2 XTsKKysgIGNoYXIgKnA7CisrCisrICAvKiBUaGUgc3VwcG9ydGVkIGJpdHMgaW4gYHhzdGF0X2J2 JyBhcmUgMSBieXRlLiAgQ2xlYXIgcGFydCBpbgorKyAgICAgdmVjdG9yIHJlZ2lzdGVycyBpZiBp dHMgYml0IGluIHhzdGF0X2J2IGlzIHplcm8uICAqLworKyAgY2xlYXJfYnYgPSAofmZwLT54c3Rh dGVfYnYpICYgeDg2X3hjcjA7CisrCisrICAvKiBDbGVhciBwYXJ0IGluIHg4NyBhbmQgdmVjdG9y IHJlZ2lzdGVycyBpZiBpdHMgYml0IGluIHhzdGF0X2J2IGlzCisrICAgICB6ZXJvLiAgKi8KKysg IGlmIChjbGVhcl9idikKKysgICAgeworKyAgICAgIGlmICgoY2xlYXJfYnYgJiBJMzg2X1hTVEFU RV9YODcpKQorKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorKwkgIG1lbXNldCAoKChjaGFyICop ICZmcC0+c3Rfc3BhY2VbMF0pICsgaSAqIDE2LCAwLCAxMCk7CisrCisrICAgICAgaWYgKChjbGVh cl9idiAmIEkzODZfWFNUQVRFX1NTRSkpCisrCWZvciAoaSA9IDA7IGkgPCBudW1feG1tX3JlZ2lz dGVyczsgaSsrKSAKKysJICBtZW1zZXQgKCgoY2hhciAqKSAmZnAtPnhtbV9zcGFjZVswXSkgKyBp ICogMTYsIDAsIDE2KTsKKysKKysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVfQVZY KSkKKysJZm9yIChpID0gMDsgaSA8IG51bV94bW1fcmVnaXN0ZXJzOyBpKyspIAorKwkgIG1lbXNl dCAoKChjaGFyICopICZmcC0+eW1taF9zcGFjZVswXSkgKyBpICogMTYsIDAsIDE2KTsKKysgICAg fQorKworKyAgLyogQ2hlY2sgaWYgYW55IHg4NyByZWdpc3RlcnMgYXJlIGNoYW5nZWQuICAqLwor KyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNUQVRFX1g4NykpCisrICAgIHsKKysgICAgICBpbnQg c3QwX3JlZ251bSA9IGZpbmRfcmVnbm8gKCJzdDAiKTsKKysKKysgICAgICBmb3IgKGkgPSAwOyBp IDwgODsgaSsrKQorKwl7CisrCSAgY29sbGVjdF9yZWdpc3RlciAocmVnY2FjaGUsIGkgKyBzdDBf cmVnbnVtLCByYXcpOworKwkgIHAgPSAoKGNoYXIgKikgJmZwLT5zdF9zcGFjZVswXSkgKyBpICog MTY7CisrCSAgaWYgKG1lbWNtcCAocmF3LCBwLCAxMCkpCisrCSAgICB7CisrCSAgICAgIHhzdGF0 ZV9idiB8PSBJMzg2X1hTVEFURV9YODc7CisrCSAgICAgIG1lbWNweSAocCwgcmF3LCAxMCk7Cisr CSAgICB9CisrCX0KKysgICAgfQorKworKyAgLyogQ2hlY2sgaWYgYW55IFNTRSByZWdpc3RlcnMg YXJlIGNoYW5nZWQuICAqLworKyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNUQVRFX1NTRSkpCisr ICAgIHsKKysgICAgICBpbnQgeG1tMF9yZWdudW0gPSBmaW5kX3JlZ25vICgieG1tMCIpOworKwor KyAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1feG1tX3JlZ2lzdGVyczsgaSsrKSAKKysJeworKwkg IGNvbGxlY3RfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBpICsgeG1tMF9yZWdudW0sIHJhdyk7CisrCSAg cCA9ICgoY2hhciAqKSAmZnAtPnhtbV9zcGFjZVswXSkgKyBpICogMTY7CisrCSAgaWYgKG1lbWNt cCAocmF3LCBwLCAxNikpCisrCSAgICB7CisrCSAgICAgIHhzdGF0ZV9idiB8PSBJMzg2X1hTVEFU RV9TU0U7CisrCSAgICAgIG1lbWNweSAocCwgcmF3LCAxNik7CisrCSAgICB9CisrCX0KKysgICAg fQorKworKyAgLyogQ2hlY2sgaWYgYW55IEFWWCByZWdpc3RlcnMgYXJlIGNoYW5nZWQuICAqLwor KyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNUQVRFX0FWWCkpCisrICAgIHsKKysgICAgICBpbnQg eW1tMGhfcmVnbnVtID0gZmluZF9yZWdubyAoInltbTBoIik7CisrCisrICAgICAgZm9yIChpID0g MDsgaSA8IG51bV94bW1fcmVnaXN0ZXJzOyBpKyspIAorKwl7CisrCSAgY29sbGVjdF9yZWdpc3Rl ciAocmVnY2FjaGUsIGkgKyB5bW0waF9yZWdudW0sIHJhdyk7CisrCSAgcCA9ICgoY2hhciAqKSAm ZnAtPnltbWhfc3BhY2VbMF0pICsgaSAqIDE2OworKwkgIGlmIChtZW1jbXAgKHJhdywgcCwgMTYp KQorKwkgICAgeworKwkgICAgICB4c3RhdGVfYnYgfD0gSTM4Nl9YU1RBVEVfQVZYOworKwkgICAg ICBtZW1jcHkgKHAsIHJhdywgMTYpOworKwkgICAgfQorKwl9CisrICAgIH0KKysKKysgIC8qIFVw ZGF0ZSB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHhzdGF0ZV9idiBpZiBhbnkgU1NFL0FWWAor KyAgICAgcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgKi8KKysgIGZwLT54c3RhdGVfYnYgfD0geHN0 YXRlX2J2OworKworKyAgY29sbGVjdF9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgImZpb2Zm IiwgJmZwLT5maW9mZik7CisrICBjb2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAi Zm9vZmYiLCAmZnAtPmZvb2ZmKTsKKysgIGNvbGxlY3RfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2Fj aGUsICJteGNzciIsICZmcC0+bXhjc3IpOworKworKyAgLyogVGhpcyBvbmUncyAxMSBiaXRzLi4u ICovCisrICBjb2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZm9wIiwgJnZhbDIp OworKyAgZnAtPmZvcCA9ICh2YWwyICYgMHg3RkYpIHwgKGZwLT5mb3AgJiAweEY4MDApOworKwor KyAgLyogU29tZSByZWdpc3RlcnMgYXJlIDE2LWJpdC4gICovCisrICBjb2xsZWN0X3JlZ2lzdGVy X2J5X25hbWUgKHJlZ2NhY2hlLCAiZmN0cmwiLCAmdmFsKTsKKysgIGZwLT5mY3RybCA9IHZhbDsK KysKKysgIGNvbGxlY3RfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJmc3RhdCIsICZ2YWwp OworKyAgZnAtPmZzdGF0ID0gdmFsOworKworKyAgLyogQ29udmVydCB0byB0aGUgc2ltcGxpZmVk IHRhZyBmb3JtIHN0b3JlZCBpbiBmeHNhdmUgZGF0YS4gICovCisrICBjb2xsZWN0X3JlZ2lzdGVy X2J5X25hbWUgKHJlZ2NhY2hlLCAiZnRhZyIsICZ2YWwpOworKyAgdmFsICY9IDB4RkZGRjsKKysg IHZhbDIgPSAwOworKyAgZm9yIChpID0gNzsgaSA+PSAwOyBpLS0pCisrICAgIHsKKysgICAgICBp bnQgdGFnID0gKHZhbCA+PiAoaSAqIDIpKSAmIDM7CisrCisrICAgICAgaWYgKHRhZyAhPSAzKQor Kwl2YWwyIHw9ICgxIDw8IGkpOworKyAgICB9CisrICBmcC0+ZnRhZyA9IHZhbDI7CisrCisrICBj b2xsZWN0X3JlZ2lzdGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZmlzZWciLCAmdmFsKTsKKysgIGZw LT5maXNlZyA9IHZhbDsKKysKKysgIGNvbGxlY3RfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUs ICJmb3NlZyIsICZ2YWwpOworKyAgZnAtPmZvc2VnID0gdmFsOworK30KKysKKyBzdGF0aWMgaW50 CisgaTM4N19mdGFnIChzdHJ1Y3QgaTM4N19meHNhdmUgKmZwLCBpbnQgcmVnbm8pCisgeworQEAg LTI5NiwzICs0NTksMTA3IEBAIGkzODdfZnhzYXZlX3RvX2NhY2hlIChzdHJ1Y3QgcmVnY2FjaGUg KnIKKyAgIHZhbCA9IChmcC0+Zm9wKSAmIDB4N0ZGOworICAgc3VwcGx5X3JlZ2lzdGVyX2J5X25h bWUgKHJlZ2NhY2hlLCAiZm9wIiwgJnZhbCk7CisgfQorKworK3ZvaWQKKytpMzg3X3hzYXZlX3Rv X2NhY2hlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBjb25zdCB2b2lkICpidWYpCisrewor KyAgc3RydWN0IGkzODdfeHNhdmUgKmZwID0gKHN0cnVjdCBpMzg3X3hzYXZlICopIGJ1ZjsKKysg IHN0cnVjdCBpMzg3X2Z4c2F2ZSAqZnhwID0gKHN0cnVjdCBpMzg3X2Z4c2F2ZSAqKSBidWY7Cisr ICBpbnQgaSwgdG9wOworKyAgdW5zaWduZWQgbG9uZyB2YWw7CisrICB1bnNpZ25lZCBpbnQgY2xl YXJfYnY7CisrICBjaGFyICpwOworKworKyAgLyogVGhlIHN1cHBvcnRlZCBiaXRzIGluIGB4c3Rh dF9idicgYXJlIDEgYnl0ZS4gIENsZWFyIHBhcnQgaW4KKysgICAgIHZlY3RvciByZWdpc3RlcnMg aWYgaXRzIGJpdCBpbiB4c3RhdF9idiBpcyB6ZXJvLiAgKi8KKysgIGNsZWFyX2J2ID0gKH5mcC0+ eHN0YXRlX2J2KSAmIHg4Nl94Y3IwOworKworKyAgLyogQ2hlY2sgaWYgYW55IHg4NyByZWdpc3Rl cnMgYXJlIGNoYW5nZWQuICAqLworKyAgaWYgKCh4ODZfeGNyMCAmIEkzODZfWFNUQVRFX1g4Nykp CisrICAgIHsKKysgICAgICBpbnQgc3QwX3JlZ251bSA9IGZpbmRfcmVnbm8gKCJzdDAiKTsKKysK KysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVfWDg3KSkKKysJcCA9IE5VTEw7Cisr ICAgICAgZWxzZQorKwlwID0gKGNoYXIgKikgYnVmOworKworKyAgICAgIGZvciAoaSA9IDA7IGkg PCA4OyBpKyspCisrCXsKKysJICBpZiAocCkKKysJICAgIHAgPSAoKGNoYXIgKikgJmZwLT5zdF9z cGFjZVswXSkgKyBpICogMTY7CisrCSAgc3VwcGx5X3JlZ2lzdGVyIChyZWdjYWNoZSwgaSArIHN0 MF9yZWdudW0sIHApOworKwl9CisrICAgIH0KKysKKysgIGlmICgoeDg2X3hjcjAgJiBJMzg2X1hT VEFURV9TU0UpKQorKyAgICB7CisrICAgICAgaW50IHhtbTBfcmVnbnVtID0gZmluZF9yZWdubyAo InhtbTAiKTsKKysKKysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVfU1NFKSkKKysJ cCA9IE5VTEw7CisrICAgICAgZWxzZQorKwlwID0gKGNoYXIgKikgYnVmOworKworKyAgICAgIGZv ciAoaSA9IDA7IGkgPCBudW1feG1tX3JlZ2lzdGVyczsgaSsrKQorKwl7CisrCSAgaWYgKHApCisr CSAgICBwID0gKChjaGFyICopICZmcC0+eG1tX3NwYWNlWzBdKSArIGkgKiAxNjsKKysJICBzdXBw bHlfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBpICsgeG1tMF9yZWdudW0sIHApOworKwl9CisrICAgIH0K KysKKysgIGlmICgoeDg2X3hjcjAgJiBJMzg2X1hTVEFURV9BVlgpKQorKyAgICB7CisrICAgICAg aW50IHltbTBoX3JlZ251bSA9IGZpbmRfcmVnbm8gKCJ5bW0waCIpOworKworKyAgICAgIGlmICgo Y2xlYXJfYnYgJiBJMzg2X1hTVEFURV9BVlgpKQorKwlwID0gTlVMTDsKKysgICAgICBlbHNlCisr CXAgPSAoY2hhciAqKSBidWY7CisrCisrICAgICAgZm9yIChpID0gMDsgaSA8IG51bV94bW1fcmVn aXN0ZXJzOyBpKyspCisrCXsKKysJICBpZiAocCkKKysJICAgIHAgPSAoKGNoYXIgKikgJmZwLT55 bW1oX3NwYWNlWzBdKSArIGkgKiAxNjsKKysJICBzdXBwbHlfcmVnaXN0ZXIgKHJlZ2NhY2hlLCBp ICsgeW1tMGhfcmVnbnVtLCBwKTsKKysJfQorKyAgICB9CisrCisrICBzdXBwbHlfcmVnaXN0ZXJf YnlfbmFtZSAocmVnY2FjaGUsICJmaW9mZiIsICZmcC0+ZmlvZmYpOworKyAgc3VwcGx5X3JlZ2lz dGVyX2J5X25hbWUgKHJlZ2NhY2hlLCAiZm9vZmYiLCAmZnAtPmZvb2ZmKTsKKysgIHN1cHBseV9y ZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgIm14Y3NyIiwgJmZwLT5teGNzcik7CisrCisrICAv KiBTb21lIHJlZ2lzdGVycyBhcmUgMTYtYml0LiAgKi8KKysgIHZhbCA9IGZwLT5mY3RybCAmIDB4 RkZGRjsKKysgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgImZjdHJsIiwgJnZh bCk7CisrCisrICB2YWwgPSBmcC0+ZnN0YXQgJiAweEZGRkY7CisrICBzdXBwbHlfcmVnaXN0ZXJf YnlfbmFtZSAocmVnY2FjaGUsICJmc3RhdCIsICZ2YWwpOworKworKyAgLyogR2VuZXJhdGUgdGhl IGZvcm0gb2YgZnRhZyBkYXRhIHRoYXQgR0RCIGV4cGVjdHMuICAqLworKyAgdG9wID0gKGZwLT5m c3RhdCA+PiAxMSkgJiAweDc7CisrICB2YWwgPSAwOworKyAgZm9yIChpID0gNzsgaSA+PSAwOyBp LS0pCisrICAgIHsKKysgICAgICBpbnQgdGFnOworKyAgICAgIGlmIChmcC0+ZnRhZyAmICgxIDw8 IGkpKQorKwl0YWcgPSBpMzg3X2Z0YWcgKGZ4cCwgKGkgKyA4IC0gdG9wKSAlIDgpOworKyAgICAg IGVsc2UKKysJdGFnID0gMzsKKysgICAgICB2YWwgfD0gdGFnIDw8ICgyICogaSk7CisrICAgIH0K KysgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1lIChyZWdjYWNoZSwgImZ0YWciLCAmdmFsKTsKKysK KysgIHZhbCA9IGZwLT5maXNlZyAmIDB4RkZGRjsKKysgIHN1cHBseV9yZWdpc3Rlcl9ieV9uYW1l IChyZWdjYWNoZSwgImZpc2VnIiwgJnZhbCk7CisrCisrICB2YWwgPSBmcC0+Zm9zZWcgJiAweEZG RkY7CisrICBzdXBwbHlfcmVnaXN0ZXJfYnlfbmFtZSAocmVnY2FjaGUsICJmb3NlZyIsICZ2YWwp OworKworKyAgdmFsID0gKGZwLT5mb3ApICYgMHg3RkY7CisrICBzdXBwbHlfcmVnaXN0ZXJfYnlf bmFtZSAocmVnY2FjaGUsICJmb3AiLCAmdmFsKTsKKyt9CisrCisrLyogRGVmYXVsdCB0byBTU0Uu ICAqLworK3Vuc2lnbmVkIGxvbmcgbG9uZyB4ODZfeGNyMCA9IEkzODZfWFNUQVRFX1NTRV9NQVNL OworLS0tIC4vZ2RiL2dkYnNlcnZlci9pMzg3LWZwLmgJMjAxMC0wMS0yMCAyMzo1NTozOC4wMDAw MDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvaTM4Ny1mcC5oCTIwMTAtMDQtMDMgMjE6 MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMjYsNiArMjYsMTEgQEAgdm9pZCBpMzg3X2ZzYXZl X3RvX2NhY2hlIChzdHJ1Y3QgcmVnY2FjaAorIHZvaWQgaTM4N19jYWNoZV90b19meHNhdmUgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHZvaWQgKmJ1Zik7Cisgdm9pZCBpMzg3X2Z4c2F2ZV90 b19jYWNoZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgY29uc3Qgdm9pZCAqYnVmKTsKKyAK Kyt2b2lkIGkzODdfY2FjaGVfdG9feHNhdmUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHZv aWQgKmJ1Zik7Cisrdm9pZCBpMzg3X3hzYXZlX3RvX2NhY2hlIChzdHJ1Y3QgcmVnY2FjaGUgKnJl Z2NhY2hlLCBjb25zdCB2b2lkICpidWYpOworKworK2V4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcg eDg2X3hjcjA7CisrCisgZXh0ZXJuIGludCBudW1feG1tX3JlZ2lzdGVyczsKKyAKKyAjZW5kaWYg LyogSTM4N19GUF9IICovCistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWFybS1sb3cuYwkyMDEw LTAyLTAxIDE3OjEzOjE2LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9saW51 eC1hcm0tbG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zNTQs MTYgKzM1NCwxNiBAQCBhcm1fYXJjaF9zZXR1cCAodm9pZCkKKyB9CisgCisgc3RydWN0IHJlZ3Nl dF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CistICB7IFBUUkFDRV9HRVRSRUdTLCBQVFJBQ0Vf U0VUUkVHUywgMTggKiA0LAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJFR1MsIDAs IDE4ICogNCwKKyAgICAgR0VORVJBTF9SRUdTLAorICAgICBhcm1fZmlsbF9ncmVnc2V0LCBhcm1f c3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VUV01NWFJFR1MsIFBUUkFDRV9TRVRXTU1Y UkVHUywgMTYgKiA4ICsgNiAqIDQsCisrICB7IFBUUkFDRV9HRVRXTU1YUkVHUywgUFRSQUNFX1NF VFdNTVhSRUdTLCAwLCAxNiAqIDggKyA2ICogNCwKKyAgICAgRVhURU5ERURfUkVHUywKKyAgICAg YXJtX2ZpbGxfd21teHJlZ3NldCwgYXJtX3N0b3JlX3dtbXhyZWdzZXQgfSwKKy0gIHsgUFRSQUNF X0dFVFZGUFJFR1MsIFBUUkFDRV9TRVRWRlBSRUdTLCAzMiAqIDggKyA0LAorKyAgeyBQVFJBQ0Vf R0VUVkZQUkVHUywgUFRSQUNFX1NFVFZGUFJFR1MsIDAsIDMyICogOCArIDQsCisgICAgIEVYVEVO REVEX1JFR1MsCisgICAgIGFybV9maWxsX3ZmcHJlZ3NldCwgYXJtX3N0b3JlX3ZmcHJlZ3NldCB9 LAorLSAgeyAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAtMSwgLTEs IE5VTEwsIE5VTEwgfQorIH07CisgCisgc3RydWN0IGxpbnV4X3RhcmdldF9vcHMgdGhlX2xvd190 YXJnZXQgPSB7CistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWNyaXN2MzItbG93LmMJMjAxMC0w MS0yMCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvbGludXgt Y3Jpc3YzMi1sb3cuYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTM2 NSw5ICszNjUsOSBAQCBjcmlzX3N0b3JlX2dyZWdzZXQgKGNvbnN0IHZvaWQgKmJ1ZikKKyB0eXBl ZGVmIHVuc2lnbmVkIGxvbmcgZWxmX2dyZWdzZXRfdFtjcmlzX251bV9yZWdzXTsKKyAKKyBzdHJ1 Y3QgcmVnc2V0X2luZm8gdGFyZ2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgUFRSQUNFX0dFVFJFR1Ms IFBUUkFDRV9TRVRSRUdTLCBzaXplb2YgKGVsZl9ncmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VU UkVHUywgUFRSQUNFX1NFVFJFR1MsIDAsIHNpemVvZiAoZWxmX2dyZWdzZXRfdCksCisgICAgIEdF TkVSQUxfUkVHUywgY3Jpc19maWxsX2dyZWdzZXQsIGNyaXNfc3RvcmVfZ3JlZ3NldCB9LAorLSAg eyAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAtMSwgLTEsIE5VTEws IE5VTEwgfQorIH07CisgCisgc3RydWN0IGxpbnV4X3RhcmdldF9vcHMgdGhlX2xvd190YXJnZXQg PSB7CistLS0gLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTAtMDMtMDYgMDE6MTI6NTcu MDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTAtMDQt MDMgMjE6MTk6MTQuMDAwMDAwMDAwICswMjAwCitAQCAtMzksNiArMzksNyBAQAorICNpbmNsdWRl IDxkaXJlbnQuaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyAjaW5jbHVkZSA8c3lzL3Zmcy5o PgorKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisgI2lmbmRlZiBFTEZNQUcwCisgLyogRG9uJ3QgaW5j bHVkZSA8bGludXgvZWxmLmg+IGhlcmUuICBJZiBpdCBnb3QgaW5jbHVkZWQgYnkgZ2RiX3Byb2Nf c2VydmljZS5oCisgICAgdGhlbiBFTEZNQUcwIHdpbGwgaGF2ZSBiZWVuIGRlZmluZWQuICBJZiBp dCBkaWRuJ3QgZ2V0IGluY2x1ZGVkIGJ5CitAQCAtMjI4MSwxNCArMjI4MiwxNSBAQCByZWdzZXRz X2ZldGNoX2luZmVyaW9yX3JlZ2lzdGVycyAoc3RydWN0CisgICBzdHJ1Y3QgcmVnc2V0X2luZm8g KnJlZ3NldDsKKyAgIGludCBzYXdfZ2VuZXJhbF9yZWdzID0gMDsKKyAgIGludCBwaWQ7CisrICBz dHJ1Y3QgaW92ZWMgaW92OworIAorICAgcmVnc2V0ID0gdGFyZ2V0X3JlZ3NldHM7CisgCisgICBw aWQgPSBsd3BpZF9vZiAoZ2V0X3RocmVhZF9sd3AgKGN1cnJlbnRfaW5mZXJpb3IpKTsKKyAgIHdo aWxlIChyZWdzZXQtPnNpemUgPj0gMCkKKyAgICAgeworLSAgICAgIHZvaWQgKmJ1ZjsKKy0gICAg ICBpbnQgcmVzOworKyAgICAgIHZvaWQgKmJ1ZiwgKmRhdGE7CisrICAgICAgaW50IG50X3R5cGUs IHJlczsKKyAKKyAgICAgICBpZiAocmVnc2V0LT5zaXplID09IDAgfHwgZGlzYWJsZWRfcmVnc2V0 c1tyZWdzZXQgLSB0YXJnZXRfcmVnc2V0c10pCisgCXsKK0BAIC0yMjk3LDEwICsyMjk5LDIxIEBA IHJlZ3NldHNfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3QKKyAJfQorIAorICAgICAg IGJ1ZiA9IHhtYWxsb2MgKHJlZ3NldC0+c2l6ZSk7CisrCisrICAgICAgbnRfdHlwZSA9IHJlZ3Nl dC0+bnRfdHlwZTsKKysgICAgICBpZiAobnRfdHlwZSkKKysJeworKwkgIGlvdi5pb3ZfYmFzZSA9 IGJ1ZjsKKysJICBpb3YuaW92X2xlbiA9IHJlZ3NldC0+c2l6ZTsKKysJICBkYXRhID0gKHZvaWQg KikgJmlvdjsKKysJfQorKyAgICAgIGVsc2UKKysJZGF0YSA9IGJ1ZjsKKysKKyAjaWZuZGVmIF9f c3BhcmNfXworLSAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVxdWVzdCwgcGlkLCAw LCBidWYpOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVxdWVzdCwgcGlkLCBu dF90eXBlLCBkYXRhKTsKKyAjZWxzZQorLSAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRf cmVxdWVzdCwgcGlkLCBidWYsIDApOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRf cmVxdWVzdCwgcGlkLCBkYXRhLCBudF90eXBlKTsKKyAjZW5kaWYKKyAgICAgICBpZiAocmVzIDwg MCkKKyAJeworQEAgLTIzMzgsMTQgKzIzNTEsMTUgQEAgcmVnc2V0c19zdG9yZV9pbmZlcmlvcl9y ZWdpc3RlcnMgKHN0cnVjdAorICAgc3RydWN0IHJlZ3NldF9pbmZvICpyZWdzZXQ7CisgICBpbnQg c2F3X2dlbmVyYWxfcmVncyA9IDA7CisgICBpbnQgcGlkOworKyAgc3RydWN0IGlvdmVjIGlvdjsK KyAKKyAgIHJlZ3NldCA9IHRhcmdldF9yZWdzZXRzOworIAorICAgcGlkID0gbHdwaWRfb2YgKGdl dF90aHJlYWRfbHdwIChjdXJyZW50X2luZmVyaW9yKSk7CisgICB3aGlsZSAocmVnc2V0LT5zaXpl ID49IDApCisgICAgIHsKKy0gICAgICB2b2lkICpidWY7CistICAgICAgaW50IHJlczsKKysgICAg ICB2b2lkICpidWYsICpkYXRhOworKyAgICAgIGludCBudF90eXBlLCByZXM7CisgCisgICAgICAg aWYgKHJlZ3NldC0+c2l6ZSA9PSAwIHx8IGRpc2FibGVkX3JlZ3NldHNbcmVnc2V0IC0gdGFyZ2V0 X3JlZ3NldHNdKQorIAl7CitAQCAtMjM1OCwxMCArMjM3MiwyMSBAQCByZWdzZXRzX3N0b3JlX2lu ZmVyaW9yX3JlZ2lzdGVycyAoc3RydWN0CisgICAgICAgLyogRmlyc3QgZmlsbCB0aGUgYnVmZmVy IHdpdGggdGhlIGN1cnJlbnQgcmVnaXN0ZXIgc2V0IGNvbnRlbnRzLAorIAkgaW4gY2FzZSB0aGVy ZSBhcmUgYW55IGl0ZW1zIGluIHRoZSBrZXJuZWwncyByZWdzZXQgdGhhdCBhcmUKKyAJIG5vdCBp biBnZGJzZXJ2ZXIncyByZWdjYWNoZS4gICovCisrCisrICAgICAgbnRfdHlwZSA9IHJlZ3NldC0+ bnRfdHlwZTsKKysgICAgICBpZiAobnRfdHlwZSkKKysJeworKwkgIGlvdi5pb3ZfYmFzZSA9IGJ1 ZjsKKysJICBpb3YuaW92X2xlbiA9IHJlZ3NldC0+c2l6ZTsKKysJICBkYXRhID0gKHZvaWQgKikg JmlvdjsKKysJfQorKyAgICAgIGVsc2UKKysJZGF0YSA9IGJ1ZjsKKysKKyAjaWZuZGVmIF9fc3Bh cmNfXworLSAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVxdWVzdCwgcGlkLCAwLCBi dWYpOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVxdWVzdCwgcGlkLCBudF90 eXBlLCBkYXRhKTsKKyAjZWxzZQorLSAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVx dWVzdCwgcGlkLCBidWYsIDApOworKyAgICAgIHJlcyA9IHB0cmFjZSAocmVnc2V0LT5nZXRfcmVx dWVzdCwgcGlkLCAmaW92LCBkYXRhKTsKKyAjZW5kaWYKKyAKKyAgICAgICBpZiAocmVzID09IDAp CitAQCAtMjM3MSw5ICsyMzk2LDkgQEAgcmVnc2V0c19zdG9yZV9pbmZlcmlvcl9yZWdpc3RlcnMg KHN0cnVjdAorIAorIAkgIC8qIE9ubHkgbm93IGRvIHdlIHdyaXRlIHRoZSByZWdpc3RlciBzZXQu ICAqLworICNpZm5kZWYgX19zcGFyY19fCistCSAgcmVzID0gcHRyYWNlIChyZWdzZXQtPnNldF9y ZXF1ZXN0LCBwaWQsIDAsIGJ1Zik7CisrCSAgcmVzID0gcHRyYWNlIChyZWdzZXQtPnNldF9yZXF1 ZXN0LCBwaWQsIG50X3R5cGUsIGRhdGEpOworICNlbHNlCistCSAgcmVzID0gcHRyYWNlIChyZWdz ZXQtPnNldF9yZXF1ZXN0LCBwaWQsIGJ1ZiwgMCk7CisrCSAgcmVzID0gcHRyYWNlIChyZWdzZXQt PnNldF9yZXF1ZXN0LCBwaWQsIGRhdGEsIG50X3R5cGUpOworICNlbmRpZgorIAl9CisgCitAQCAt MzQzNCw2ICszNDU5LDEzIEBAIGxpbnV4X2NvcmVfb2ZfdGhyZWFkIChwdGlkX3QgcHRpZCkKKyAg IHJldHVybiBjb3JlOworIH0KKyAKKytzdGF0aWMgdm9pZAorK2xpbnV4X3Byb2Nlc3NfcXN1cHBv cnRlZCAoY29uc3QgY2hhciAqcXVlcnkpCisreworKyAgaWYgKHRoZV9sb3dfdGFyZ2V0LnByb2Nl c3NfcXN1cHBvcnRlZCAhPSBOVUxMKQorKyAgICB0aGVfbG93X3RhcmdldC5wcm9jZXNzX3FzdXBw b3J0ZWQgKHF1ZXJ5KTsKKyt9CisrCisgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzIGxpbnV4X3Rh cmdldF9vcHMgPSB7CisgICBsaW51eF9jcmVhdGVfaW5mZXJpb3IsCisgICBsaW51eF9hdHRhY2gs CitAQCAtMzQ3Nyw3ICszNTA5LDggQEAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzIGxpbnV4X3Rh cmdldF9vcAorICNlbHNlCisgICBOVUxMLAorICNlbmRpZgorLSAgbGludXhfY29yZV9vZl90aHJl YWQKKysgIGxpbnV4X2NvcmVfb2ZfdGhyZWFkLAorKyAgbGludXhfcHJvY2Vzc19xc3VwcG9ydGVk CisgfTsKKyAKKyBzdGF0aWMgdm9pZAorLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuaAky MDEwLTAxLTIwIDIzOjU1OjM4LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuaAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTM1LDYg KzM1LDkgQEAgZW51bSByZWdzZXRfdHlwZSB7Cisgc3RydWN0IHJlZ3NldF9pbmZvCisgeworICAg aW50IGdldF9yZXF1ZXN0LCBzZXRfcmVxdWVzdDsKKysgIC8qIElmIE5UX1RZUEUgaXNuJ3QgMCwg aXQgd2lsbCBiZSBwYXNzZWQgdG8gcHRyYWNlIGFzIHRoZSAzcmQKKysgICAgIGFyZ3VtZW50IGFu ZCB0aGUgNHRoIGFyZ3VtZW50IHNob3VsZCBiZSAiY29uc3Qgc3RydWN0IGlvdmVjICoiLiAgKi8K KysgIGludCBudF90eXBlOworICAgaW50IHNpemU7CisgICBlbnVtIHJlZ3NldF90eXBlIHR5cGU7 CisgICByZWdzZXRfZmlsbF9mdW5jIGZpbGxfZnVuY3Rpb247CitAQCAtMTExLDYgKzExNCw5IEBA IHN0cnVjdCBsaW51eF90YXJnZXRfb3BzCisgCisgICAvKiBIb29rIHRvIGNhbGwgcHJpb3IgdG8g cmVzdW1pbmcgYSB0aHJlYWQuICAqLworICAgdm9pZCAoKnByZXBhcmVfdG9fcmVzdW1lKSAoc3Ry dWN0IGx3cF9pbmZvICopOworKworKyAgLyogSG9vayB0byBzdXBwb3J0IHRhcmdldCBzcGVjaWZp YyBxU3VwcG9ydGVkLiAgKi8KKysgIHZvaWQgKCpwcm9jZXNzX3FzdXBwb3J0ZWQpIChjb25zdCBj aGFyICopOworIH07CisgCisgZXh0ZXJuIHN0cnVjdCBsaW51eF90YXJnZXRfb3BzIHRoZV9sb3df dGFyZ2V0OworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1tNjhrLWxvdy5jCTIwMTAtMDEtMjAg MjM6NTU6MzguMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL2xpbnV4LW02OGst bG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMTIsMTQgKzEx MiwxNCBAQCBtNjhrX3N0b3JlX2ZwcmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlCisgCisgc3Ry dWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgI2lmZGVmIEhBVkVfUFRSQUNF X0dFVFJFR1MKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCBzaXplb2YgKGVs Zl9ncmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJFR1MsIDAsIHNp emVvZiAoZWxmX2dyZWdzZXRfdCksCisgICAgIEdFTkVSQUxfUkVHUywKKyAgICAgbTY4a19maWxs X2dyZWdzZXQsIG02OGtfc3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VURlBSRUdTLCBQ VFJBQ0VfU0VURlBSRUdTLCBzaXplb2YgKGVsZl9mcHJlZ3NldF90KSwKKysgIHsgUFRSQUNFX0dF VEZQUkVHUywgUFRSQUNFX1NFVEZQUkVHUywgMCwgc2l6ZW9mIChlbGZfZnByZWdzZXRfdCksCisg ICAgIEZQX1JFR1MsCisgICAgIG02OGtfZmlsbF9mcHJlZ3NldCwgbTY4a19zdG9yZV9mcHJlZ3Nl dCB9LAorICNlbmRpZiAvKiBIQVZFX1BUUkFDRV9HRVRSRUdTICovCistICB7IDAsIDAsIC0xLCAt MSwgTlVMTCwgTlVMTCB9CisrICB7IDAsIDAsIDAsIC0xLCAtMSwgTlVMTCwgTlVMTCB9CisgfTsK KyAKKyBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtNjhrX2JyZWFrcG9pbnRbXSA9IHsgMHg0 RSwgMHg0RiB9OworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1taXBzLWxvdy5jCTIwMTAtMDEt MjAgMjM6NTU6MzguMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL2xpbnV4LW1p cHMtbG93LmMJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zNDMsMTIg KzM0MywxMiBAQCBtaXBzX3N0b3JlX2ZwcmVnc2V0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlCisgCisg c3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgI2lmZGVmIEhBVkVfUFRS QUNFX0dFVFJFR1MKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCAzOCAqIDgs IEdFTkVSQUxfUkVHUywKKysgIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCAwLCAz OCAqIDgsIEdFTkVSQUxfUkVHUywKKyAgICAgbWlwc19maWxsX2dyZWdzZXQsIG1pcHNfc3RvcmVf Z3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VURlBSRUdTLCBQVFJBQ0VfU0VURlBSRUdTLCAzMyAq IDgsIEZQX1JFR1MsCisrICB7IFBUUkFDRV9HRVRGUFJFR1MsIFBUUkFDRV9TRVRGUFJFR1MsIDAs IDMzICogOCwgRlBfUkVHUywKKyAgICAgbWlwc19maWxsX2ZwcmVnc2V0LCBtaXBzX3N0b3JlX2Zw cmVnc2V0IH0sCisgI2VuZGlmIC8qIEhBVkVfUFRSQUNFX0dFVFJFR1MgKi8KKy0gIHsgMCwgMCwg LTEsIC0xLCBOVUxMLCBOVUxMIH0KKysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0K KyB9OworIAorIHN0cnVjdCBsaW51eF90YXJnZXRfb3BzIHRoZV9sb3dfdGFyZ2V0ID0geworLS0t IC4vZ2RiL2dkYnNlcnZlci9saW51eC1wcGMtbG93LmMJMjAxMC0wMS0yMSAyMzoxMDoxOC4wMDAw MDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvbGludXgtcHBjLWxvdy5jCTIwMTAtMDQt MDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtNTkzLDE0ICs1OTMsMTQgQEAgc3RydWN0 IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CisgICAgICBmZXRjaCB0aGVtIGV2ZXJ5 IHRpbWUsIGJ1dCBzdGlsbCBmYWxsIGJhY2sgdG8gUFRSQUNFX1BFRUtVU0VSIGZvciB0aGUKKyAg ICAgIGdlbmVyYWwgcmVnaXN0ZXJzLiAgU29tZSBrZXJuZWxzIHN1cHBvcnQgdGhlc2UsIGJ1dCBu b3QgdGhlIG5ld2VyCisgICAgICBQUENfUFRSQUNFX0dFVFJFR1MuICAqLworLSAgeyBQVFJBQ0Vf R0VUVlNYUkVHUywgUFRSQUNFX1NFVFZTWFJFR1MsIFNJWkVPRl9WU1hSRUdTLCBFWFRFTkRFRF9S RUdTLAorKyAgeyBQVFJBQ0VfR0VUVlNYUkVHUywgUFRSQUNFX1NFVFZTWFJFR1MsIDAsIFNJWkVP Rl9WU1hSRUdTLCBFWFRFTkRFRF9SRUdTLAorICAgcHBjX2ZpbGxfdnN4cmVnc2V0LCBwcGNfc3Rv cmVfdnN4cmVnc2V0IH0sCisgICB7IFBUUkFDRV9HRVRWUlJFR1MsIFBUUkFDRV9TRVRWUlJFR1Ms IFNJWkVPRl9WUlJFR1MsIEVYVEVOREVEX1JFR1MsCisgICAgIHBwY19maWxsX3ZycmVnc2V0LCBw cGNfc3RvcmVfdnJyZWdzZXQgfSwKKy0gIHsgUFRSQUNFX0dFVEVWUlJFR1MsIFBUUkFDRV9TRVRF VlJSRUdTLCAzMiAqIDQgKyA4ICsgNCwgRVhURU5ERURfUkVHUywKKysgIHsgUFRSQUNFX0dFVEVW UlJFR1MsIFBUUkFDRV9TRVRFVlJSRUdTLCAwLCAzMiAqIDQgKyA4ICsgNCwgRVhURU5ERURfUkVH UywKKyAgICAgcHBjX2ZpbGxfZXZycmVnc2V0LCBwcGNfc3RvcmVfZXZycmVnc2V0IH0sCistICB7 IDAsIDAsIDAsIEdFTkVSQUxfUkVHUywgcHBjX2ZpbGxfZ3JlZ3NldCwgTlVMTCB9LAorLSAgeyAw LCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAwLCBHRU5FUkFMX1JFR1Ms IHBwY19maWxsX2dyZWdzZXQsIE5VTEwgfSwKKysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxMLCBO VUxMIH0KKyB9OworIAorIHN0cnVjdCBsaW51eF90YXJnZXRfb3BzIHRoZV9sb3dfdGFyZ2V0ID0g eworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC1zMzkwLWxvdy5jCTIwMTAtMDEtMjEgMjA6MjY6 NDkuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL2xpbnV4LXMzOTAtbG93LmMJ MjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xODEsOCArMTgxLDggQEAg c3RhdGljIHZvaWQgczM5MF9maWxsX2dyZWdzZXQgKHN0cnVjdCByZQorIH0KKyAKKyBzdHJ1Y3Qg cmVnc2V0X2luZm8gdGFyZ2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgMCwgMCwgMCwgR0VORVJBTF9S RUdTLCBzMzkwX2ZpbGxfZ3JlZ3NldCwgTlVMTCB9LAorLSAgeyAwLCAwLCAtMSwgLTEsIE5VTEws IE5VTEwgfQorKyAgeyAwLCAwLCAwLCAwLCBHRU5FUkFMX1JFR1MsIHMzOTBfZmlsbF9ncmVnc2V0 LCBOVUxMIH0sCisrICB7IDAsIDAsIDAsIC0xLCAtMSwgTlVMTCwgTlVMTCB9CisgfTsKKyAKKyAK Ky0tLSAuL2dkYi9nZGJzZXJ2ZXIvbGludXgtc2gtbG93LmMJMjAxMC0wMS0yMCAyMzo1NTozOC4w MDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvbGludXgtc2gtbG93LmMJMjAxMC0w NC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMDQsOCArMTA0LDggQEAgc3RhdGlj IHZvaWQgc2hfZmlsbF9ncmVnc2V0IChzdHJ1Y3QgcmVnYworIH0KKyAKKyBzdHJ1Y3QgcmVnc2V0 X2luZm8gdGFyZ2V0X3JlZ3NldHNbXSA9IHsKKy0gIHsgMCwgMCwgMCwgR0VORVJBTF9SRUdTLCBz aF9maWxsX2dyZWdzZXQsIE5VTEwgfSwKKy0gIHsgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0K KysgIHsgMCwgMCwgMCwgMCwgR0VORVJBTF9SRUdTLCBzaF9maWxsX2dyZWdzZXQsIE5VTEwgfSwK KysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKyB9OworIAorIHN0cnVjdCBsaW51 eF90YXJnZXRfb3BzIHRoZV9sb3dfdGFyZ2V0ID0geworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51 eC1zcGFyYy1sb3cuYwkyMDEwLTAxLTIwIDIzOjU1OjM4LjAwMDAwMDAwMCArMDEwMAorKysrIC4v Z2RiL2dkYnNlcnZlci9saW51eC1zcGFyYy1sb3cuYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAw MDAwMCArMDIwMAorQEAgLTI2MCwxMyArMjYwLDEzIEBAIHNwYXJjX3JlaW5zZXJ0X2FkZHIgKHZv aWQpCisgCisgCisgc3RydWN0IHJlZ3NldF9pbmZvIHRhcmdldF9yZWdzZXRzW10gPSB7CistICB7 IFBUUkFDRV9HRVRSRUdTLCBQVFJBQ0VfU0VUUkVHUywgc2l6ZW9mIChlbGZfZ3JlZ3NldF90KSwK KysgIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCAwLCBzaXplb2YgKGVsZl9ncmVn c2V0X3QpLAorICAgICBHRU5FUkFMX1JFR1MsCisgICAgIHNwYXJjX2ZpbGxfZ3JlZ3NldCwgc3Bh cmNfc3RvcmVfZ3JlZ3NldCB9LAorLSAgeyBQVFJBQ0VfR0VURlBSRUdTLCBQVFJBQ0VfU0VURlBS RUdTLCBzaXplb2YgKGZwcmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VURlBSRUdTLCBQVFJBQ0Vf U0VURlBSRUdTLCAwLCBzaXplb2YgKGZwcmVnc2V0X3QpLAorICAgICBGUF9SRUdTLAorICAgICBz cGFyY19maWxsX2ZwcmVnc2V0LCBzcGFyY19zdG9yZV9mcHJlZ3NldCB9LAorLSAgeyAwLCAwLCAt MSwgLTEsIE5VTEwsIE5VTEwgfQorKyAgeyAwLCAwLCAwLCAtMSwgLTEsIE5VTEwsIE5VTEwgfQor IH07CisgCisgc3RydWN0IGxpbnV4X3RhcmdldF9vcHMgdGhlX2xvd190YXJnZXQgPSB7CistLS0g Li9nZGIvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAw MDAwMCArMDIwMAorKysrIC4vZ2RiL2dkYnNlcnZlci9saW51eC14ODYtbG93LmMJMjAxMC0wNC0w MyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yNCw2ICsyNCw4IEBACisgI2luY2x1ZGUg ImxpbnV4LWxvdy5oIgorICNpbmNsdWRlICJpMzg3LWZwLmgiCisgI2luY2x1ZGUgImkzODYtbG93 LmgiCisrI2luY2x1ZGUgImkzODYteHN0YXRlLmgiCisrI2luY2x1ZGUgImVsZi9jb21tb24uaCIK KyAKKyAjaW5jbHVkZSAiZ2RiX3Byb2Nfc2VydmljZS5oIgorIAorQEAgLTMxLDEwICszMywzNSBA QAorIHZvaWQgaW5pdF9yZWdpc3RlcnNfaTM4Nl9saW51eCAodm9pZCk7CisgLyogRGVmaW5lZCBp biBhdXRvLWdlbmVyYXRlZCBmaWxlIGFtZDY0LWxpbnV4LmMuICAqLworIHZvaWQgaW5pdF9yZWdp c3RlcnNfYW1kNjRfbGludXggKHZvaWQpOworKy8qIERlZmluZWQgaW4gYXV0by1nZW5lcmF0ZWQg ZmlsZSBpMzg2LWF2eC1saW51eC5jLiAgKi8KKyt2b2lkIGluaXRfcmVnaXN0ZXJzX2kzODZfYXZ4 X2xpbnV4ICh2b2lkKTsKKysvKiBEZWZpbmVkIGluIGF1dG8tZ2VuZXJhdGVkIGZpbGUgYW1kNjQt YXZ4LWxpbnV4LmMuICAqLworK3ZvaWQgaW5pdF9yZWdpc3RlcnNfYW1kNjRfYXZ4X2xpbnV4ICh2 b2lkKTsKKysKKysvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBnZGIgd2l0aG91dCBYTUwg c3VwcG9ydC4gICovCisrCisrc3RhdGljIGNvbnN0IGNoYXIgKnhtbHRhcmdldF9pMzg2X2xpbnV4 X25vX3htbCA9ICJAPHRhcmdldD5cCisrPGFyY2hpdGVjdHVyZT5pMzg2PC9hcmNoaXRlY3R1cmU+ XAorKzxvc2FiaT5HTlUvTGludXg8L29zYWJpPlwKKys8L3RhcmdldD4iOworK3N0YXRpYyBjb25z dCBjaGFyICp4bWx0YXJnZXRfYW1kNjRfbGludXhfbm9feG1sID0gIkA8dGFyZ2V0PlwKKys8YXJj aGl0ZWN0dXJlPmkzODY6eDg2LTY0PC9hcmNoaXRlY3R1cmU+XAorKzxvc2FiaT5HTlUvTGludXg8 L29zYWJpPlwKKys8L3RhcmdldD4iOworIAorICNpbmNsdWRlIDxzeXMvcmVnLmg+CisgI2luY2x1 ZGUgPHN5cy9wcm9jZnMuaD4KKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorKyNpbmNsdWRlIDxz eXMvdWlvLmg+CisrCisrI2lmbmRlZiBQVFJBQ0VfR0VUUkVHU0VUCisrI2RlZmluZSBQVFJBQ0Vf R0VUUkVHU0VUCTB4NDIwNAorKyNlbmRpZgorKworKyNpZm5kZWYgUFRSQUNFX1NFVFJFR1NFVAor KyNkZWZpbmUgUFRSQUNFX1NFVFJFR1NFVAkweDQyMDUKKysjZW5kaWYKKysKKyAKKyAjaWZuZGVm IFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEKKyAjZGVmaW5lIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEg MjUKK0BAIC0yNTIsNiArMjc5LDE4IEBAIHg4Nl9zdG9yZV9mcHhyZWdzZXQgKHN0cnVjdCByZWdj YWNoZSAqcmUKKyAKKyAjZW5kaWYKKyAKKytzdGF0aWMgdm9pZAorK3g4Nl9maWxsX3hzdGF0ZXJl Z3NldCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgdm9pZCAqYnVmKQorK3sKKysgIGkzODdf Y2FjaGVfdG9feHNhdmUgKHJlZ2NhY2hlLCBidWYpOworK30KKysKKytzdGF0aWMgdm9pZAorK3g4 Nl9zdG9yZV94c3RhdGVyZWdzZXQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGNvbnN0IHZv aWQgKmJ1ZikKKyt7CisrICBpMzg3X3hzYXZlX3RvX2NhY2hlIChyZWdjYWNoZSwgYnVmKTsKKyt9 CisrCisgLyogPz8/IFRoZSBub24tYmlhcmNoIGkzODYgY2FzZSBzdG9yZXMgYWxsIHRoZSBpMzg3 IHJlZ3MgdHdpY2UuCisgICAgT25jZSBpbiBpMzg3Xy4qZnNhdmUuKiBhbmQgb25jZSBpbiBpMzg3 Xy4qZnhzYXZlLiouCisgICAgVGhpcyBpcywgcHJlc3VtYWJseSwgdG8gaGFuZGxlIHRoZSBjYXNl IHdoZXJlIFBUUkFDRV9bR1NdRVRGUFhSRUdTCitAQCAtMjY0LDIxICszMDMsMjMgQEAgeDg2X3N0 b3JlX2ZweHJlZ3NldCAoc3RydWN0IHJlZ2NhY2hlICpyZQorIHN0cnVjdCByZWdzZXRfaW5mbyB0 YXJnZXRfcmVnc2V0c1tdID0KKyB7CisgI2lmZGVmIEhBVkVfUFRSQUNFX0dFVFJFR1MKKy0gIHsg UFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCBzaXplb2YgKGVsZl9ncmVnc2V0X3QpLAor KyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJFR1MsIDAsIHNpemVvZiAoZWxmX2dyZWdz ZXRfdCksCisgICAgIEdFTkVSQUxfUkVHUywKKyAgICAgeDg2X2ZpbGxfZ3JlZ3NldCwgeDg2X3N0 b3JlX2dyZWdzZXQgfSwKKysgIHsgUFRSQUNFX0dFVFJFR1NFVCwgUFRSQUNFX1NFVFJFR1NFVCwg TlRfWDg2X1hTVEFURSwgMCwKKysgICAgRVhURU5ERURfUkVHUywgeDg2X2ZpbGxfeHN0YXRlcmVn c2V0LCB4ODZfc3RvcmVfeHN0YXRlcmVnc2V0IH0sCisgIyBpZm5kZWYgX194ODZfNjRfXworICMg IGlmZGVmIEhBVkVfUFRSQUNFX0dFVEZQWFJFR1MKKy0gIHsgUFRSQUNFX0dFVEZQWFJFR1MsIFBU UkFDRV9TRVRGUFhSRUdTLCBzaXplb2YgKGVsZl9mcHhyZWdzZXRfdCksCisrICB7IFBUUkFDRV9H RVRGUFhSRUdTLCBQVFJBQ0VfU0VURlBYUkVHUywgMCwgc2l6ZW9mIChlbGZfZnB4cmVnc2V0X3Qp LAorICAgICBFWFRFTkRFRF9SRUdTLAorICAgICB4ODZfZmlsbF9mcHhyZWdzZXQsIHg4Nl9zdG9y ZV9mcHhyZWdzZXQgfSwKKyAjICBlbmRpZgorICMgZW5kaWYKKy0gIHsgUFRSQUNFX0dFVEZQUkVH UywgUFRSQUNFX1NFVEZQUkVHUywgc2l6ZW9mIChlbGZfZnByZWdzZXRfdCksCisrICB7IFBUUkFD RV9HRVRGUFJFR1MsIFBUUkFDRV9TRVRGUFJFR1MsIDAsIHNpemVvZiAoZWxmX2ZwcmVnc2V0X3Qp LAorICAgICBGUF9SRUdTLAorICAgICB4ODZfZmlsbF9mcHJlZ3NldCwgeDg2X3N0b3JlX2ZwcmVn c2V0IH0sCisgI2VuZGlmIC8qIEhBVkVfUFRSQUNFX0dFVFJFR1MgKi8KKy0gIHsgMCwgMCwgLTEs IC0xLCBOVUxMLCBOVUxMIH0KKysgIHsgMCwgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKyB9 OworIAorIHN0YXRpYyBDT1JFX0FERFIKK0BAIC03NzIsNiArODEzLDEyMSBAQCB4ODZfc2lnaW5m b19maXh1cCAoc3RydWN0IHNpZ2luZm8gKm5hdGl2CisgICByZXR1cm4gMDsKKyB9CisgDAorK3N0 YXRpYyBpbnQgdXNlX3htbDsKKysKKysvKiBVcGRhdGUgZ2Ric2VydmVyX3htbHRhcmdldC4gICov CisrCisrc3RhdGljIHZvaWQKKyt4ODZfbGludXhfdXBkYXRlX3htbHRhcmdldCAodm9pZCkKKyt7 CisrICBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIHhjcjA7CisrICBzdGF0aWMgaW50IGhhdmVf cHRyYWNlX2dldHJlZ3NldCA9IC0xOworKworKyAgaWYgKCFjdXJyZW50X2luZmVyaW9yKQorKyAg ICByZXR1cm47CisrCisrI2lmZGVmIF9feDg2XzY0X18KKysgIGlmIChudW1feG1tX3JlZ2lzdGVy cyA9PSA4KQorKyAgICBpbml0X3JlZ2lzdGVyc19pMzg2X2xpbnV4ICgpOworKyAgZWxzZQorKyAg ICBpbml0X3JlZ2lzdGVyc19hbWQ2NF9saW51eCAoKTsKKysjZWxzZQorKyAgaW5pdF9yZWdpc3Rl cnNfaTM4Nl9saW51eCAoKTsKKysjZW5kaWYKKysKKysgIGlmICghdXNlX3htbCkKKysgICAgewor KyAgICAgIC8qIERvbid0IHVzZSBYTUwuICAqLworKyNpZmRlZiBfX3g4Nl82NF9fCisrICAgICAg aWYgKG51bV94bW1fcmVnaXN0ZXJzID09IDgpCisrCWdkYnNlcnZlcl94bWx0YXJnZXQgPSB4bWx0 YXJnZXRfaTM4Nl9saW51eF9ub194bWw7CisrICAgICAgZWxzZQorKwlnZGJzZXJ2ZXJfeG1sdGFy Z2V0ID0geG1sdGFyZ2V0X2FtZDY0X2xpbnV4X25vX3htbDsKKysjZWxzZQorKyAgICAgIGdkYnNl cnZlcl94bWx0YXJnZXQgPSB4bWx0YXJnZXRfaTM4Nl9saW51eF9ub194bWw7CisrI2VuZGlmCisr CisrICAgICAgeDg2X3hjcjAgPSBJMzg2X1hTVEFURV9TU0VfTUFTSzsKKysKKysgICAgICByZXR1 cm47CisrICAgIH0KKysKKysgIC8qIFVwZGF0ZSBnZGJzZXJ2ZXJfeG1sdGFyZ2V0IHdpdGggWE1M IHN1cHBvcnQuICAqLworKyNpZmRlZiBfX3g4Nl82NF9fCisrICBpZiAobnVtX3htbV9yZWdpc3Rl cnMgPT0gOCkKKysgICAgZ2Ric2VydmVyX3htbHRhcmdldCA9ICJpMzg2LWxpbnV4LnhtbCI7Cisr ICBlbHNlCisrICAgIGdkYnNlcnZlcl94bWx0YXJnZXQgPSAiYW1kNjQtbGludXgueG1sIjsKKysj ZWxzZQorKyAgZ2Ric2VydmVyX3htbHRhcmdldCA9ICJpMzg2LWxpbnV4LnhtbCI7CisrI2VuZGlm CisrCisrICAvKiBDaGVjayBpZiBYU0FWRSBleHRlbmRlZCBzdGF0ZSBpcyBzdXBwb3J0ZWQuICAq LworKyAgaWYgKGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9PSAtMSkKKysgICAgeworKyAgICAgIGlu dCBwaWQgPSBwaWRfb2YgKGdldF90aHJlYWRfbHdwIChjdXJyZW50X2luZmVyaW9yKSk7CisrICAg ICAgdW5zaWduZWQgbG9uZyBsb25nIHhzdGF0ZXJlZ3NbSTM4Nl9YU1RBVEVfU1NFX1NJWkUgLyBz aXplb2YgKGxvbmcgbG9uZyldOworKyAgICAgIHN0cnVjdCBpb3ZlYyBpb3Y7CisrICAgICAgc3Ry dWN0IHJlZ3NldF9pbmZvICpyZWdzZXQ7CisrCisrICAgICAgaW92Lmlvdl9iYXNlID0geHN0YXRl cmVnczsKKysgICAgICBpb3YuaW92X2xlbiA9IHNpemVvZiAoeHN0YXRlcmVncyk7CisrCisrICAg ICAgLyogQ2hlY2sgaWYgUFRSQUNFX0dFVFJFR1NFVCB3b3Jrcy4gICovCisrICAgICAgaWYgKHB0 cmFjZSAoUFRSQUNFX0dFVFJFR1NFVCwgcGlkLCAodW5zaWduZWQgaW50KSBOVF9YODZfWFNUQVRF LAorKwkJICAmaW92KSA8IDApCisrCXsKKysJICBoYXZlX3B0cmFjZV9nZXRyZWdzZXQgPSAwOwor KwkgIHJldHVybjsKKysJfQorKyAgICAgIGVsc2UKKysJaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID0g MTsKKysKKysgICAgICAvKiBHZXQgWENSMCBmcm9tIFhTQVZFIGV4dGVuZGVkIHN0YXRlIGF0IGJ5 dGUgNDY0LiAgKi8KKysgICAgICB4Y3IwID0geHN0YXRlcmVnc1s0NjQgLyBzaXplb2YgKGxvbmcg bG9uZyldOworKworKyAgICAgIC8qIFVzZSBQVFJBQ0VfR0VUUkVHU0VUIGlmIGl0IGlzIGF2YWls YWJsZS4gICovCisrICAgICAgZm9yIChyZWdzZXQgPSB0YXJnZXRfcmVnc2V0czsKKysJICAgcmVn c2V0LT5maWxsX2Z1bmN0aW9uICE9IE5VTEw7IHJlZ3NldCsrKQorKwlpZiAocmVnc2V0LT5nZXRf cmVxdWVzdCA9PSBQVFJBQ0VfR0VUUkVHU0VUKQorKwkgIHJlZ3NldC0+c2l6ZSA9IEkzODZfWFNU QVRFX1NJWkUgKHhjcjApOworKwllbHNlIGlmIChyZWdzZXQtPnR5cGUgIT0gR0VORVJBTF9SRUdT KQorKwkgIHJlZ3NldC0+c2l6ZSA9IDA7CisrICAgIH0KKysKKysgIGlmIChoYXZlX3B0cmFjZV9n ZXRyZWdzZXQpCisrICAgIHsKKysgICAgICAvKiBBVlggaXMgdGhlIGhpZ2hlc3QgZmVhdHVyZSB3 ZSBzdXBwb3J0LiAgKi8KKysgICAgICBpZiAoKHhjcjAgJiBJMzg2X1hTVEFURV9BVlhfTUFTSykg PT0gSTM4Nl9YU1RBVEVfQVZYX01BU0spCisrCXsKKysJICB4ODZfeGNyMCA9IHhjcjA7CisrCisr I2lmZGVmIF9feDg2XzY0X18KKysJICAvKiBJMzg2IGhhcyA4IHhtbSByZWdzLiAgKi8KKysJICBp ZiAobnVtX3htbV9yZWdpc3RlcnMgPT0gOCkKKysJICAgIGluaXRfcmVnaXN0ZXJzX2kzODZfYXZ4 X2xpbnV4ICgpOworKwkgIGVsc2UKKysJICAgIGluaXRfcmVnaXN0ZXJzX2FtZDY0X2F2eF9saW51 eCAoKTsKKysjZWxzZQorKwkgIGluaXRfcmVnaXN0ZXJzX2kzODZfYXZ4X2xpbnV4ICgpOworKyNl bmRpZgorKwl9CisrICAgIH0KKyt9CisrCisrLyogUHJvY2VzcyBxU3VwcG9ydGVkIHF1ZXJ5LCAi eG1sUmVnaXN0ZXJzPSIuICBVcGRhdGUgdGhlIGJ1ZmZlciBzaXplIGZvcgorKyAgIFBUUkFDRV9H RVRSRUdTRVQuICAqLworKworK3N0YXRpYyB2b2lkCisreDg2X2xpbnV4X3Byb2Nlc3NfcXN1cHBv cnRlZCAoY29uc3QgY2hhciAqcXVlcnkpCisreworKyAgLyogUmV0dXJuIGlmIGdkYiBkb2Vzbid0 IHN1cHBvcnQgWE1MLiAgSWYgZ2RiIHNlbmRzICJ4bWxSZWdpc3RlcnM9IgorKyAgICAgaW4gcVN1 cHBvcnRlZCBxdWVyeSwgaXQgc3VwcG9ydHMgeDg2IFhNTCB0YXJnZXQgZGVzY3JpcHRpb25zLiAg Ki8KKysgIHVzZV94bWwgPSBxdWVyeSAhPSBOVUxMICYmIHN0cm5jbXAgKHF1ZXJ5LCAieG1sUmVn aXN0ZXJzPSIsIDEzKSA9PSAwOworKworKyAgeDg2X2xpbnV4X3VwZGF0ZV94bWx0YXJnZXQgKCk7 CisrfQorKworIC8qIEluaXRpYWxpemUgZ2Ric2VydmVyIGZvciB0aGUgYXJjaGl0ZWN0dXJlIG9m IHRoZSBpbmZlcmlvci4gICovCisgCisgc3RhdGljIHZvaWQKK0BAIC03OTIsOCArOTQ4LDYgQEAg eDg2X2FyY2hfc2V0dXAgKHZvaWQpCisgICAgIH0KKyAgIGVsc2UgaWYgKHVzZV82NGJpdCkKKyAg ICAgeworLSAgICAgIGluaXRfcmVnaXN0ZXJzX2FtZDY0X2xpbnV4ICgpOworLQorICAgICAgIC8q IEFtZDY0IGRvZXNuJ3QgaGF2ZSBIQVZFX0xJTlVYX1VTUlJFR1MuICAqLworICAgICAgIHRoZV9s b3dfdGFyZ2V0Lm51bV9yZWdzID0gLTE7CisgICAgICAgdGhlX2xvd190YXJnZXQucmVnbWFwID0g TlVMTDsKK0BAIC04MDMsMTQgKzk1NywxMyBAQCB4ODZfYXJjaF9zZXR1cCAodm9pZCkKKyAgICAg ICAvKiBBbWQ2NCBoYXMgMTYgeG1tIHJlZ3MuICAqLworICAgICAgIG51bV94bW1fcmVnaXN0ZXJz ID0gMTY7CisgCisrICAgICAgeDg2X2xpbnV4X3VwZGF0ZV94bWx0YXJnZXQgKCk7CisgICAgICAg cmV0dXJuOworICAgICB9CisgI2VuZGlmCisgCisgICAvKiBPayB3ZSBoYXZlIGEgMzItYml0IGlu ZmVyaW9yLiAgKi8KKyAKKy0gIGluaXRfcmVnaXN0ZXJzX2kzODZfbGludXggKCk7CistCisgICB0 aGVfbG93X3RhcmdldC5udW1fcmVncyA9IEkzODZfTlVNX1JFR1M7CisgICB0aGVfbG93X3Rhcmdl dC5yZWdtYXAgPSBpMzg2X3JlZ21hcDsKKyAgIHRoZV9sb3dfdGFyZ2V0LmNhbm5vdF9mZXRjaF9y ZWdpc3RlciA9IGkzODZfY2Fubm90X2ZldGNoX3JlZ2lzdGVyOworQEAgLTgxOCw2ICs5NzEsOCBA QCB4ODZfYXJjaF9zZXR1cCAodm9pZCkKKyAKKyAgIC8qIEkzODYgaGFzIDggeG1tIHJlZ3MuICAq LworICAgbnVtX3htbV9yZWdpc3RlcnMgPSA4OworKworKyAgeDg2X2xpbnV4X3VwZGF0ZV94bWx0 YXJnZXQgKCk7CisgfQorIAorIC8qIFRoaXMgaXMgaW5pdGlhbGl6ZWQgYXNzdW1pbmcgYW4gYW1k NjQgdGFyZ2V0LgorQEAgLTg1MCw1ICsxMDA1LDYgQEAgc3RydWN0IGxpbnV4X3RhcmdldF9vcHMg dGhlX2xvd190YXJnZXQgPQorICAgeDg2X3NpZ2luZm9fZml4dXAsCisgICB4ODZfbGludXhfbmV3 X3Byb2Nlc3MsCisgICB4ODZfbGludXhfbmV3X3RocmVhZCwKKy0gIHg4Nl9saW51eF9wcmVwYXJl X3RvX3Jlc3VtZQorKyAgeDg2X2xpbnV4X3ByZXBhcmVfdG9fcmVzdW1lLAorKyAgeDg2X2xpbnV4 X3Byb2Nlc3NfcXN1cHBvcnRlZCAKKyB9OworLS0tIC4vZ2RiL2dkYnNlcnZlci9saW51eC14dGVu c2EtbG93LmMJMjAxMC0wMS0yMCAyMzo1NTozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9n ZGJzZXJ2ZXIvbGludXgteHRlbnNhLWxvdy5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtMTMxLDEzICsxMzEsMTMgQEAgeHRlbnNhX3N0b3JlX3h0cmVnc2V0IChzdHJ1 Y3QgcmVnY2FjaGUgKgorIH0KKyAKKyBzdHJ1Y3QgcmVnc2V0X2luZm8gdGFyZ2V0X3JlZ3NldHNb XSA9IHsKKy0gIHsgUFRSQUNFX0dFVFJFR1MsIFBUUkFDRV9TRVRSRUdTLCBzaXplb2YgKGVsZl9n cmVnc2V0X3QpLAorKyAgeyBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX1NFVFJFR1MsIDAsIHNpemVv ZiAoZWxmX2dyZWdzZXRfdCksCisgICAgIEdFTkVSQUxfUkVHUywKKyAgICAgeHRlbnNhX2ZpbGxf Z3JlZ3NldCwgeHRlbnNhX3N0b3JlX2dyZWdzZXQgfSwKKy0gIHsgUFRSQUNFX0dFVFhUUkVHUywg UFRSQUNFX1NFVFhUUkVHUywgWFRFTlNBX0VMRl9YVFJFR19TSVpFLAorKyAgeyBQVFJBQ0VfR0VU WFRSRUdTLCBQVFJBQ0VfU0VUWFRSRUdTLCAwLCBYVEVOU0FfRUxGX1hUUkVHX1NJWkUsCisgICAg IEVYVEVOREVEX1JFR1MsCisgICAgIHh0ZW5zYV9maWxsX3h0cmVnc2V0LCB4dGVuc2Ffc3RvcmVf eHRyZWdzZXQgfSwKKy0gIHsgMCwgMCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKysgIHsgMCwgMCwg MCwgLTEsIC0xLCBOVUxMLCBOVUxMIH0KKyB9OworIAorICNpZiBYQ0hBTF9IQVZFX0JFCistLS0g Li9nZGIvZ2Ric2VydmVyL3NlcnZlci5jCTIwMTAtMDEtMjAgMjM6NTU6MzguMDAwMDAwMDAwICsw MTAwCisrKysgLi9nZGIvZ2Ric2VydmVyL3NlcnZlci5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAw MDAwMDAwICswMjAwCitAQCAtMTIzNiw2ICsxMjM2LDkgQEAgaGFuZGxlX3F1ZXJ5IChjaGFyICpv d25fYnVmLCBpbnQgcGFja2V0XworICAgICB7CisgICAgICAgY2hhciAqcCA9ICZvd25fYnVmWzEw XTsKKyAKKysgICAgICAvKiBTdGFydCBwcm9jZXNzaW5nIHFTdXBwb3J0ZWQgcGFja2V0LiAgKi8K KysgICAgICB0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkIChOVUxMKTsKKysKKyAgICAgICAvKiBQ cm9jZXNzIGVhY2ggZmVhdHVyZSBiZWluZyBwcm92aWRlZCBieSBHREIuICBUaGUgZmlyc3QKKyAJ IGZlYXR1cmUgd2lsbCBmb2xsb3cgYSAnOicsIGFuZCBsYXR0ZXIgZmVhdHVyZXMgd2lsbCBmb2xs b3cKKyAJICc7Jy4gICovCitAQCAtMTI1MSw2ICsxMjU0LDggQEAgaGFuZGxlX3F1ZXJ5IChjaGFy ICpvd25fYnVmLCBpbnQgcGFja2V0XworIAkJaWYgKHRhcmdldF9zdXBwb3J0c19tdWx0aV9wcm9j ZXNzICgpKQorIAkJICBtdWx0aV9wcm9jZXNzID0gMTsKKyAJICAgICAgfQorKwkgICAgZWxzZQor KwkgICAgICB0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkIChwKTsKKyAJICB9CisgCisgICAgICAg c3ByaW50ZiAob3duX2J1ZiwgIlBhY2tldFNpemU9JXg7UVBhc3NTaWduYWxzKyIsIFBCVUZTSVog LSAxKTsKKy0tLSAuL2dkYi9nZGJzZXJ2ZXIvdGFyZ2V0LmgJMjAxMC0wMS0yMCAyMzo1NTozOC4w MDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi9nZGJzZXJ2ZXIvdGFyZ2V0LmgJMjAxMC0wNC0wMyAy MToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yODYsNiArMjg2LDkgQEAgc3RydWN0IHRhcmdl dF9vcHMKKyAKKyAgIC8qIFJldHVybnMgdGhlIGNvcmUgZ2l2ZW4gYSB0aHJlYWQsIG9yIC0xIGlm IG5vdCBrbm93bi4gICovCisgICBpbnQgKCpjb3JlX29mX3RocmVhZCkgKHB0aWRfdCk7CisrCisr ICAvKiBUYXJnZXQgc3BlY2lmaWMgcVN1cHBvcnRlZCBzdXBwb3J0LiAgKi8KKysgIHZvaWQgKCpw cm9jZXNzX3FzdXBwb3J0ZWQpIChjb25zdCBjaGFyICopOworIH07CisgCisgZXh0ZXJuIHN0cnVj dCB0YXJnZXRfb3BzICp0aGVfdGFyZ2V0OworQEAgLTMyNiw2ICszMjksMTAgQEAgdm9pZCBzZXRf dGFyZ2V0X29wcyAoc3RydWN0IHRhcmdldF9vcHMgKgorICAgKHRoZV90YXJnZXQtPnN1cHBvcnRz X211bHRpX3Byb2Nlc3MgPyBcCisgICAgKCp0aGVfdGFyZ2V0LT5zdXBwb3J0c19tdWx0aV9wcm9j ZXNzKSAoKSA6IDApCisgCisrI2RlZmluZSB0YXJnZXRfcHJvY2Vzc19xc3VwcG9ydGVkKHF1ZXJ5 KSBcCisrICBpZiAodGhlX3RhcmdldC0+cHJvY2Vzc19xc3VwcG9ydGVkKSBcCisrICAgIHRoZV90 YXJnZXQtPnByb2Nlc3NfcXN1cHBvcnRlZCAocXVlcnkpCisrCisgLyogU3RhcnQgbm9uLXN0b3Ag bW9kZSwgcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuICAgKi8KKyAKKyBpbnQg c3RhcnRfbm9uX3N0b3AgKGludCBub25zdG9wKTsKKy0tLSAuL2dkYi9pMzg2LWxpbnV4LW5hdC5j CTIwMTAtMDQtMDMgMjA6NTk6NTIuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvaTM4Ni1saW51 eC1uYXQuYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAgLTIzLDExICsy MywxNCBAQAorICNpbmNsdWRlICJpbmZlcmlvci5oIgorICNpbmNsdWRlICJnZGJjb3JlLmgiCisg I2luY2x1ZGUgInJlZ2NhY2hlLmgiCisrI2luY2x1ZGUgInJlZ3NldC5oIgorICNpbmNsdWRlICJ0 YXJnZXQuaCIKKyAjaW5jbHVkZSAibGludXgtbmF0LmgiCisgCisgI2luY2x1ZGUgImdkYl9hc3Nl cnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgorKyNpbmNsdWRlICJlbGYvY29tbW9uLmgi CisrI2luY2x1ZGUgPHN5cy91aW8uaD4KKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorICNpbmNs dWRlIDxzeXMvdXNlci5oPgorICNpbmNsdWRlIDxzeXMvcHJvY2ZzLmg+CitAQCAtNjksNiArNzIs MTkgQEAKKyAKKyAvKiBEZWZpbmVzIHBzX2Vycl9lLCBzdHJ1Y3QgcHNfcHJvY2hhbmRsZS4gICov CisgI2luY2x1ZGUgImdkYl9wcm9jX3NlcnZpY2UuaCIKKysKKysjaW5jbHVkZSAiaTM4Ni14c3Rh dGUuaCIKKysKKysjaWZuZGVmIFBUUkFDRV9HRVRSRUdTRVQKKysjZGVmaW5lIFBUUkFDRV9HRVRS RUdTRVQJMHg0MjA0CisrI2VuZGlmCisrCisrI2lmbmRlZiBQVFJBQ0VfU0VUUkVHU0VUCisrI2Rl ZmluZSBQVFJBQ0VfU0VUUkVHU0VUCTB4NDIwNQorKyNlbmRpZgorKworKy8qIERvZXMgdGhlIGN1 cnJlbnQgaG9zdCBzdXBwb3J0IFBUUkFDRV9HRVRSRUdTRVQ/ICAqLworK3N0YXRpYyBpbnQgaGF2 ZV9wdHJhY2VfZ2V0cmVnc2V0ID0gLTE7CisgDAorIAorIC8qIFRoZSByZWdpc3RlciBzZXRzIHVz ZWQgaW4gR05VL0xpbnV4IEVMRiBjb3JlLWR1bXBzIGFyZSBpZGVudGljYWwgdG8KK0BAIC05OCw2 ICsxMTQsOCBAQCBzdGF0aWMgaW50IHJlZ21hcFtdID0gCisgICAtMSwgLTEsIC0xLCAtMSwJCS8q IHhtbTAsIHhtbTEsIHhtbTIsIHhtbTMgKi8KKyAgIC0xLCAtMSwgLTEsIC0xLAkJLyogeG1tNCwg eG1tNSwgeG1tNiwgeG1tNiAqLworICAgLTEsCQkJCS8qIG14Y3NyICovCisrICAtMSwgLTEsIC0x LCAtMSwJCS8qIHltbTBoLCB5bW0xaCwgeW1tMmgsIHltbTNoICovCisrICAtMSwgLTEsIC0xLCAt MSwJCS8qIHltbTRoLCB5bW01aCwgeW1tNmgsIHltbTZoICovCisgICBPUklHX0VBWAorIH07Cisg CitAQCAtMTEwLDYgKzEyOCw5IEBAIHN0YXRpYyBpbnQgcmVnbWFwW10gPSAKKyAjZGVmaW5lIEdF VEZQWFJFR1NfU1VQUExJRVMocmVnbm8pIFwKKyAgIChJMzg2X1NUMF9SRUdOVU0gPD0gKHJlZ25v KSAmJiAocmVnbm8pIDwgSTM4Nl9TU0VfTlVNX1JFR1MpCisgCisrI2RlZmluZSBHRVRYU1RBVEVS RUdTX1NVUFBMSUVTKHJlZ25vKSBcCisrICAoSTM4Nl9TVDBfUkVHTlVNIDw9IChyZWdubykgJiYg KHJlZ25vKSA8IEkzODZfQVZYX05VTV9SRUdTKQorKworIC8qIERvZXMgdGhlIGN1cnJlbnQgaG9z dCBzdXBwb3J0IHRoZSBHRVRSRUdTIHJlcXVlc3Q/ICAqLworIGludCBoYXZlX3B0cmFjZV9nZXRy ZWdzID0KKyAjaWZkZWYgSEFWRV9QVFJBQ0VfR0VUUkVHUworQEAgLTM1NSw2ICszNzYsNTcgQEAg c3RhdGljIHZvaWQgc3RvcmVfZnByZWdzIChjb25zdCBzdHJ1Y3QgcgorIAorIC8qIFRyYW5zZmVy aW5nIGZsb2F0aW5nLXBvaW50IGFuZCBTU0UgcmVnaXN0ZXJzIHRvIGFuZCBmcm9tIEdEQi4gICov CisgCisrLyogRmV0Y2ggYWxsIHJlZ2lzdGVycyBjb3ZlcmVkIGJ5IHRoZSBQVFJBQ0VfR0VUUkVH U0VUIHJlcXVlc3QgZnJvbQorKyAgIHByb2Nlc3MvdGhyZWFkIFRJRCBhbmQgc3RvcmUgdGhlaXIg dmFsdWVzIGluIEdEQidzIHJlZ2lzdGVyIGFycmF5LgorKyAgIFJldHVybiBub24temVybyBpZiBz dWNjZXNzZnVsLCB6ZXJvIG90aGVyd2lzZS4gICovCisrCisrc3RhdGljIGludAorK2ZldGNoX3hz dGF0ZXJlZ3MgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCB0aWQpCisreworKyAgY2hh ciB4c3RhdGVyZWdzW0kzODZfWFNUQVRFX01BWF9TSVpFXTsKKysgIHN0cnVjdCBpb3ZlYyBpb3Y7 CisrCisrICBpZiAoIWhhdmVfcHRyYWNlX2dldHJlZ3NldCkKKysgICAgcmV0dXJuIDA7CisrCisr ICBpb3YuaW92X2Jhc2UgPSB4c3RhdGVyZWdzOworKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoeHN0 YXRlcmVncyk7CisrICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh1bnNpZ25l ZCBpbnQpIE5UX1g4Nl9YU1RBVEUsCisrCSAgICAgICZpb3YpIDwgMCkKKysgICAgcGVycm9yX3dp dGhfbmFtZSAoXygiQ291bGRuJ3QgcmVhZCBleHRlbmRlZCBzdGF0ZSBzdGF0dXMiKSk7CisrCisr ICBpMzg3X3N1cHBseV94c2F2ZSAocmVnY2FjaGUsIC0xLCB4c3RhdGVyZWdzKTsKKysgIHJldHVy biAxOworK30KKysKKysvKiBTdG9yZSBhbGwgdmFsaWQgcmVnaXN0ZXJzIGluIEdEQidzIHJlZ2lz dGVyIGFycmF5IGNvdmVyZWQgYnkgdGhlCisrICAgUFRSQUNFX1NFVFJFR1NFVCByZXF1ZXN0IGlu dG8gdGhlIHByb2Nlc3MvdGhyZWFkIHNwZWNpZmllZCBieSBUSUQuCisrICAgUmV0dXJuIG5vbi16 ZXJvIGlmIHN1Y2Nlc3NmdWwsIHplcm8gb3RoZXJ3aXNlLiAgKi8KKysKKytzdGF0aWMgaW50Cisr c3RvcmVfeHN0YXRlcmVncyAoY29uc3Qgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHRp ZCwgaW50IHJlZ25vKQorK3sKKysgIGNoYXIgeHN0YXRlcmVnc1tJMzg2X1hTVEFURV9NQVhfU0la RV07CisrICBzdHJ1Y3QgaW92ZWMgaW92OworKworKyAgaWYgKCFoYXZlX3B0cmFjZV9nZXRyZWdz ZXQpCisrICAgIHJldHVybiAwOworKyAgCisrICBpb3YuaW92X2Jhc2UgPSB4c3RhdGVyZWdzOwor KyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoeHN0YXRlcmVncyk7CisrICBpZiAocHRyYWNlIChQVFJB Q0VfR0VUUkVHU0VULCB0aWQsICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsCisrCSAgICAg ICZpb3YpIDwgMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3QgcmVhZCBleHRl bmRlZCBzdGF0ZSBzdGF0dXMiKSk7CisrCisrICBpMzg3X2NvbGxlY3RfeHNhdmUgKHJlZ2NhY2hl LCByZWdubywgeHN0YXRlcmVncywgMCk7CisrCisrICBpZiAocHRyYWNlIChQVFJBQ0VfU0VUUkVH U0VULCB0aWQsICh1bnNpZ25lZCBpbnQpIE5UX1g4Nl9YU1RBVEUsCisrCSAgICAgIChpbnQpICZp b3YpIDwgMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3Qgd3JpdGUgZXh0ZW5k ZWQgc3RhdGUgc3RhdHVzIikpOworKworKyAgcmV0dXJuIDE7CisrfQorKworICNpZmRlZiBIQVZF X1BUUkFDRV9HRVRGUFhSRUdTCisgCisgLyogRmlsbCBHREIncyByZWdpc3RlciBhcnJheSB3aXRo IHRoZSBmbG9hdGluZy1wb2ludCBhbmQgU1NFIHJlZ2lzdGVyCitAQCAtNDg5LDYgKzU2MSw4IEBA IGkzODZfbGludXhfZmV0Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHIKKyAJICByZXR1cm47Cisg CX0KKyAKKysgICAgICBpZiAoZmV0Y2hfeHN0YXRlcmVncyAocmVnY2FjaGUsIHRpZCkpCisrCXJl dHVybjsKKyAgICAgICBpZiAoZmV0Y2hfZnB4cmVncyAocmVnY2FjaGUsIHRpZCkpCisgCXJldHVy bjsKKyAgICAgICBmZXRjaF9mcHJlZ3MgKHJlZ2NhY2hlLCB0aWQpOworQEAgLTUwMSw2ICs1NzUs MTIgQEAgaTM4Nl9saW51eF9mZXRjaF9pbmZlcmlvcl9yZWdpc3RlcnMgKHN0cgorICAgICAgIHJl dHVybjsKKyAgICAgfQorIAorKyAgaWYgKEdFVFhTVEFURVJFR1NfU1VQUExJRVMgKHJlZ25vKSkK KysgICAgeworKyAgICAgIGlmIChmZXRjaF94c3RhdGVyZWdzIChyZWdjYWNoZSwgdGlkKSkKKysJ cmV0dXJuOworKyAgICB9CisrCisgICBpZiAoR0VURlBYUkVHU19TVVBQTElFUyAocmVnbm8pKQor ICAgICB7CisgICAgICAgaWYgKGZldGNoX2ZweHJlZ3MgKHJlZ2NhY2hlLCB0aWQpKQorQEAgLTU1 Myw2ICs2MzMsOCBAQCBpMzg2X2xpbnV4X3N0b3JlX2luZmVyaW9yX3JlZ2lzdGVycyAoc3RyCisg ICBpZiAocmVnbm8gPT0gLTEpCisgICAgIHsKKyAgICAgICBzdG9yZV9yZWdzIChyZWdjYWNoZSwg dGlkLCByZWdubyk7CisrICAgICAgaWYgKHN0b3JlX3hzdGF0ZXJlZ3MgKHJlZ2NhY2hlLCB0aWQs IHJlZ25vKSkKKysJcmV0dXJuOworICAgICAgIGlmIChzdG9yZV9mcHhyZWdzIChyZWdjYWNoZSwg dGlkLCByZWdubykpCisgCXJldHVybjsKKyAgICAgICBzdG9yZV9mcHJlZ3MgKHJlZ2NhY2hlLCB0 aWQsIHJlZ25vKTsKK0BAIC01NjUsNiArNjQ3LDEyIEBAIGkzODZfbGludXhfc3RvcmVfaW5mZXJp b3JfcmVnaXN0ZXJzIChzdHIKKyAgICAgICByZXR1cm47CisgICAgIH0KKyAKKysgIGlmIChHRVRY U1RBVEVSRUdTX1NVUFBMSUVTIChyZWdubykpCisrICAgIHsKKysgICAgICBpZiAoc3RvcmVfeHN0 YXRlcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pKQorKwlyZXR1cm47CisrICAgIH0KKysKKyAg IGlmIChHRVRGUFhSRUdTX1NVUFBMSUVTIChyZWdubykpCisgICAgIHsKKyAgICAgICBpZiAoc3Rv cmVfZnB4cmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pKQorQEAgLTg3Myw3ICs5NjEsNTAgQEAg aTM4Nl9saW51eF9jaGlsZF9wb3N0X3N0YXJ0dXBfaW5mZXJpb3IgKAorIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdGFyZ2V0X2Rlc2MgKgorIGkzODZfbGludXhfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0 IHRhcmdldF9vcHMgKm9wcykKKyB7CistICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKysgIHN0 YXRpYyB1aW50NjRfdCB4Y3IwOworKworKyAgaWYgKGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9PSAt MSkKKysgICAgeworKyAgICAgIGludCB0aWQ7CisrICAgICAgdWludDY0X3QgeHN0YXRlcmVnc1so STM4Nl9YU1RBVEVfU1NFX1NJWkUgLyBzaXplb2YgKHVpbnQ2NF90KSldOworKyAgICAgIHN0cnVj dCBpb3ZlYyBpb3Y7CisrICAgICAgdW5zaWduZWQgaW50IHhzdGF0ZV9zaXplOworKworKyAgICAg IC8qIEdOVS9MaW51eCBMV1AgSUQncyBhcmUgcHJvY2VzcyBJRCdzLiAgKi8KKysgICAgICB0aWQg PSBUSURHRVQgKGluZmVyaW9yX3B0aWQpOworKyAgICAgIGlmICh0aWQgPT0gMCkKKysJdGlkID0g UElER0VUIChpbmZlcmlvcl9wdGlkKTsgLyogTm90IGEgdGhyZWFkZWQgcHJvZ3JhbS4gICovCisr CisrICAgICAgaW92Lmlvdl9iYXNlID0geHN0YXRlcmVnczsKKysgICAgICBpb3YuaW92X2xlbiA9 IHNpemVvZiAoeHN0YXRlcmVncyk7CisrCisrICAgICAgLyogQ2hlY2sgaWYgUFRSQUNFX0dFVFJF R1NFVCB3b3Jrcy4gICovCisrICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVFJFR1NFVCwgdGlk LCAodW5zaWduZWQgaW50KSBOVF9YODZfWFNUQVRFLAorKwkJICAmaW92KSA8IDApCisrCXsKKysJ ICBoYXZlX3B0cmFjZV9nZXRyZWdzZXQgPSAwOworKwkgIHhzdGF0ZV9zaXplID0gMDsKKysJfQor KyAgICAgIGVsc2UKKysJeworKwkgIGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9IDE7CisrCisrCSAg LyogR2V0IFhDUjAgZnJvbSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrCSAgeGNyMCA9IHhz dGF0ZXJlZ3NbKEkzODZfTElOVVhfWFNBVkVfWENSMF9PRkZTRVQKKysJCQkgICAgIC8gc2l6ZW9m IChsb25nIGxvbmcpKV07CisrCisrCSAgeHN0YXRlX3NpemUgPSBJMzg2X1hTVEFURV9TSVpFICh4 Y3IwKTsKKysJfQorKworKyAgICAgIGkzODZfbGludXhfdXBkYXRlX3hzdGF0ZXJlZ3NldCAoeHN0 YXRlX3NpemUpOworKyAgICB9CisrCisrICAvKiBDaGVjayB0aGUgbmF0aXZlIFhDUjAgb25seSBp ZiBQVFJBQ0VfR0VUUkVHU0VUIGlzIGF2YWlsYWJsZS4gICovCisrICBpZiAoaGF2ZV9wdHJhY2Vf Z2V0cmVnc2V0CisrICAgICAgJiYgKHhjcjAgJiBJMzg2X1hTVEFURV9BVlhfTUFTSykgPT0gSTM4 Nl9YU1RBVEVfQVZYX01BU0spCisrICAgIHJldHVybiB0ZGVzY19pMzg2X2F2eF9saW51eDsKKysg IGVsc2UKKysgICAgcmV0dXJuIHRkZXNjX2kzODZfbGludXg7CisgfQorIAorIHZvaWQKKy0tLSAu L2dkYi9pMzg2LWxpbnV4LXRkZXAuYwkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIw MAorKysrIC4vZ2RiL2kzODYtbGludXgtdGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAw MDAwICswMjAwCitAQCAtMjMsNiArMjMsNyBAQAorICNpbmNsdWRlICJmcmFtZS5oIgorICNpbmNs dWRlICJ2YWx1ZS5oIgorICNpbmNsdWRlICJyZWdjYWNoZS5oIgorKyNpbmNsdWRlICJyZWdzZXQu aCIKKyAjaW5jbHVkZSAiaW5mZXJpb3IuaCIKKyAjaW5jbHVkZSAib3NhYmkuaCIKKyAjaW5jbHVk ZSAicmVnZ3JvdXBzLmgiCitAQCAtMzYsOSArMzcsMTEgQEAKKyAjaW5jbHVkZSAic29saWItc3Zy NC5oIgorICNpbmNsdWRlICJzeW10YWIuaCIKKyAjaW5jbHVkZSAiYXJjaC11dGlscy5oIgorLSNp bmNsdWRlICJyZWdzZXQuaCIKKyAjaW5jbHVkZSAieG1sLXN5c2NhbGwuaCIKKyAKKysjaW5jbHVk ZSAiaTM4Ny10ZGVwLmgiCisrI2luY2x1ZGUgImkzODYteHN0YXRlLmgiCisrCisgLyogVGhlIHN5 c2NhbGwncyBYTUwgZmlsZW5hbWUgZm9yIGkzODYuICAqLworICNkZWZpbmUgWE1MX1NZU0NBTExf RklMRU5BTUVfSTM4NiAic3lzY2FsbHMvaTM4Ni1saW51eC54bWwiCisgCitAQCAtNDcsNiArNTAs NyBAQAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAjaW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9p Mzg2LWxpbnV4LmMiCisrI2luY2x1ZGUgImZlYXR1cmVzL2kzODYvaTM4Ni1hdngtbGludXguYyIK KyAKKyAvKiBTdXBwb3J0ZWQgcmVnaXN0ZXIgbm90ZSBzZWN0aW9ucy4gICovCisgc3RhdGljIHN0 cnVjdCBjb3JlX3JlZ3NldF9zZWN0aW9uIGkzODZfbGludXhfcmVnc2V0X3NlY3Rpb25zW10gPQor QEAgLTU0LDYgKzU4LDcgQEAgc3RhdGljIHN0cnVjdCBjb3JlX3JlZ3NldF9zZWN0aW9uIGkzODZf bAorICAgeyAiLnJlZyIsIDE0NCwgImdlbmVyYWwtcHVycG9zZSIgfSwKKyAgIHsgIi5yZWcyIiwg MTA4LCAiZmxvYXRpbmctcG9pbnQiIH0sCisgICB7ICIucmVnLXhmcCIsIDUxMiwgImV4dGVuZGVk IGZsb2F0aW5nLXBvaW50IiB9LAorKyAgeyAiLnJlZy14c3RhdGUiLCAwLCAiWFNBVkUgZXh0ZW5k ZWQgc3RhdGUiIH0sCisgICB7IE5VTEwsIDAgfQorIH07CisgCitAQCAtNTMzLDYgKzUzOCw3IEBA IHN0YXRpYyBpbnQgaTM4Nl9saW51eF9ncmVnc2V0X3JlZ19vZmZzZXQKKyAgIC0xLCAtMSwgLTEs IC0xLCAtMSwgLTEsIC0xLCAtMSwKKyAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwK KyAgIC0xLAorKyAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLAorICAgMTEgKiA0CQkJ LyogIm9yaWdfZWF4IiAqLworIH07CisgCitAQCAtNTYwLDYgKzU2Niw1OSBAQCBzdGF0aWMgaW50 IGkzODZfbGludXhfc2NfcmVnX29mZnNldFtdID0KKyAgIDAgKiA0CQkJCS8qICVncyAqLworIH07 CisgCisrLyogVXBkYXRlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lzdGVyIG5vdGUgc2VjdGlv bi4gICovCisrCisrdm9pZAorK2kzODZfbGludXhfdXBkYXRlX3hzdGF0ZXJlZ3NldCAodW5zaWdu ZWQgaW50IHhzdGF0ZV9zaXplKQorK3sKKysgIHN0cnVjdCBjb3JlX3JlZ3NldF9zZWN0aW9uICp4 c3RhdGUgPSAmaTM4Nl9saW51eF9yZWdzZXRfc2VjdGlvbnNbM107CisrCisrICAvKiBVcGRhdGUg dGhlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lzdGVyIG5vdGUgc2VjdGlvbiBmb3IgImdjb3Jl Ii4KKysgICAgIERpc2FibGUgaXQgaWYgaXRzIHNpemUgaXMgMC4gICovCisrICBnZGJfYXNzZXJ0 IChzdHJjbXAgKHhzdGF0ZS0+c2VjdF9uYW1lLCAiLnJlZy14c3RhdGUiKSA9PSAwKTsKKysgIGlm ICh4c3RhdGVfc2l6ZSkKKysgICAgeHN0YXRlLT5zaXplID0geHN0YXRlX3NpemU7CisrICBlbHNl CisrICAgIHhzdGF0ZS0+c2VjdF9uYW1lID0gTlVMTDsKKyt9CisrCisrLyogR2V0IFhTQVZFIGV4 dGVuZGVkIHN0YXRlIHhjcjAgZnJvbSBjb3JlIGR1bXAuICAqLworKworK3VpbnQ2NF90CisraTM4 Nl9saW51eF9jb3JlX3JlYWRfeGNyMCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisrCQkJICAg c3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgYmZkICphYmZkKQorK3sKKysgIGFzZWN0aW9uICp4 c3RhdGUgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJmZCwgIi5yZWcteHN0YXRlIik7Cisr ICB1aW50NjRfdCB4Y3IwOworKworKyAgaWYgKHhzdGF0ZSkKKysgICAgeworKyAgICAgIHNpemVf dCBzaXplID0gYmZkX3NlY3Rpb25fc2l6ZSAoYWJmZCwgeHN0YXRlKTsKKysKKysgICAgICAvKiBD aGVjayBleHRlbmRlZCBzdGF0ZSBzaXplLiAgKi8KKysgICAgICBpZiAoc2l6ZSA8IEkzODZfWFNU QVRFX0FWWF9TSVpFKQorKwl4Y3IwID0gSTM4Nl9YU1RBVEVfU1NFX01BU0s7CisrICAgICAgZWxz ZQorKwl7CisrCSAgY2hhciBjb250ZW50c1s4XTsKKysKKysJICBpZiAoISBiZmRfZ2V0X3NlY3Rp b25fY29udGVudHMgKGFiZmQsIHhzdGF0ZSwgY29udGVudHMsCisrCQkJCQkgIEkzODZfTElOVVhf WFNBVkVfWENSMF9PRkZTRVQsCisrCQkJCQkgIDgpKQorKwkgICAgeworKwkgICAgICB3YXJuaW5n IChfKCJDb3VsZG4ndCByZWFkIGB4Y3IwJyBieXRlcyBmcm9tIGAucmVnLXhzdGF0ZScgc2VjdGlv biBpbiBjb3JlIGZpbGUuIikpOworKwkgICAgICByZXR1cm4gMDsKKysJICAgIH0KKysKKysJICB4 Y3IwID0gYmZkX2dldF82NCAoYWJmZCwgY29udGVudHMpOworKwl9CisrICAgIH0KKysgIGVsc2UK KysgICAgeGNyMCA9IEkzODZfWFNUQVRFX1NTRV9NQVNLOworKworKyAgcmV0dXJuIHhjcjA7Cisr fQorKworIC8qIEdldCBMaW51eC94ODYgdGFyZ2V0IGRlc2NyaXB0aW9uIGZyb20gY29yZSBkdW1w LiAgKi8KKyAKKyBzdGF0aWMgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICoKK0BAIC01NjgsMTIg KzYyNywxNyBAQCBpMzg2X2xpbnV4X2NvcmVfcmVhZF9kZXNjcmlwdGlvbiAoc3RydWN0CisgCQkJ CSAgYmZkICphYmZkKQorIHsKKyAgIGFzZWN0aW9uICpzZWN0aW9uID0gYmZkX2dldF9zZWN0aW9u X2J5X25hbWUgKGFiZmQsICIucmVnMiIpOworKyAgdWludDY0X3QgeGNyMDsKKyAKKyAgIGlmIChz ZWN0aW9uID09IE5VTEwpCisgICAgIHJldHVybiBOVUxMOworIAorICAgLyogTGludXgvaTM4Ni4g ICovCistICByZXR1cm4gdGRlc2NfaTM4Nl9saW51eDsKKysgIHhjcjAgPSBpMzg2X2xpbnV4X2Nv cmVfcmVhZF94Y3IwIChnZGJhcmNoLCB0YXJnZXQsIGFiZmQpOworKyAgaWYgKCh4Y3IwICYgSTM4 Nl9YU1RBVEVfQVZYX01BU0spID09IEkzODZfWFNUQVRFX0FWWF9NQVNLKQorKyAgICByZXR1cm4g dGRlc2NfaTM4Nl9hdnhfbGludXg7CisrICBlbHNlCisrICAgIHJldHVybiB0ZGVzY19pMzg2X2xp bnV4OworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTYyMyw2ICs2ODcsOCBAQCBpMzg2X2xpbnV4 X2luaXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvCisgICB0ZGVwLT5zY19yZWdfb2Zmc2V0ID0g aTM4Nl9saW51eF9zY19yZWdfb2Zmc2V0OworICAgdGRlcC0+c2NfbnVtX3JlZ3MgPSBBUlJBWV9T SVpFIChpMzg2X2xpbnV4X3NjX3JlZ19vZmZzZXQpOworIAorKyAgdGRlcC0+eHNhdmVfeGNyMF9v ZmZzZXQgPSBJMzg2X0xJTlVYX1hTQVZFX1hDUjBfT0ZGU0VUOworKworICAgc2V0X2dkYmFyY2hf cHJvY2Vzc19yZWNvcmQgKGdkYmFyY2gsIGkzODZfcHJvY2Vzc19yZWNvcmQpOworICAgc2V0X2dk YmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLCBpMzg2X2xpbnV4X3JlY29yZF9z aWduYWwpOworIAorQEAgLTg0Myw0ICs5MDksNSBAQCBfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X3Rk ZXAgKHZvaWQpCisgCisgICAvKiBJbml0aWFsaXplIHRoZSBMaW51eCB0YXJnZXQgZGVzY3JpcHRp b24gICovCisgICBpbml0aWFsaXplX3RkZXNjX2kzODZfbGludXggKCk7CisrICBpbml0aWFsaXpl X3RkZXNjX2kzODZfYXZ4X2xpbnV4ICgpOworIH0KKy0tLSAuL2dkYi9pMzg2LWxpbnV4LXRkZXAu aAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODYtbGlu dXgtdGRlcC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMzAsMTIg KzMwLDQxIEBACisgLyogUmVnaXN0ZXIgbnVtYmVyIGZvciB0aGUgIm9yaWdfZWF4IiBwc2V1ZG8t cmVnaXN0ZXIuICBJZiB0aGlzCisgICAgcHNldWRvLXJlZ2lzdGVyIGNvbnRhaW5zIGEgdmFsdWUg Pj0gMCBpdCBpcyBpbnRlcnByZXRlZCBhcyB0aGUKKyAgICBzeXN0ZW0gY2FsbCBudW1iZXIgdGhh dCB0aGUga2VybmVsIGlzIHN1cHBvc2VkIHRvIHJlc3RhcnQuICAqLworLSNkZWZpbmUgSTM4Nl9M SU5VWF9PUklHX0VBWF9SRUdOVU0gSTM4Nl9TU0VfTlVNX1JFR1MKKysjZGVmaW5lIEkzODZfTElO VVhfT1JJR19FQVhfUkVHTlVNIEkzODZfQVZYX05VTV9SRUdTCisgCisgLyogVG90YWwgbnVtYmVy IG9mIHJlZ2lzdGVycyBmb3IgR05VL0xpbnV4LiAgKi8KKyAjZGVmaW5lIEkzODZfTElOVVhfTlVN X1JFR1MgKEkzODZfTElOVVhfT1JJR19FQVhfUkVHTlVNICsgMSkKKyAKKysvKiBHZXQgWFNBVkUg ZXh0ZW5kZWQgc3RhdGUgeGNyMCBmcm9tIGNvcmUgZHVtcC4gICovCisrZXh0ZXJuIHVpbnQ2NF90 IGkzODZfbGludXhfY29yZV9yZWFkX3hjcjAKKysgIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwg c3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwgYmZkICphYmZkKTsKKysKKyAvKiBMaW51eCB0YXJn ZXQgZGVzY3JpcHRpb24uICAqLworIGV4dGVybiBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjX2kz ODZfbGludXg7CisrZXh0ZXJuIHN0cnVjdCB0YXJnZXRfZGVzYyAqdGRlc2NfaTM4Nl9hdnhfbGlu dXg7CisrCisrLyogVXBkYXRlIFhTQVZFIGV4dGVuZGVkIHN0YXRlIHJlZ2lzdGVyIG5vdGUgc2Vj dGlvbi4gICovCisrZXh0ZXJuIHZvaWQgaTM4Nl9saW51eF91cGRhdGVfeHN0YXRlcmVnc2V0ICh1 bnNpZ25lZCBpbnQgeHN0YXRlX3NpemUpOworKworKy8qIEZvcm1hdCBvZiBYU0FWRSBleHRlbmRl ZCBzdGF0ZSBpczoKKysgCXN0cnVjdAorKwl7CisrCSAgZnhzYXZlX2J5dGVzWzAuLjQ2M10KKysJ ICBzd191c2FibGVfYnl0ZXNbNDY0Li41MTFdCisrCSAgeHN0YXRlX2hkcl9ieXRlc1s1MTIuLjU3 NV0KKysJICBhdnhfYnl0ZXNbNTc2Li44MzFdCisrCSAgZnV0dXJlX3N0YXRlIGV0YworKwl9Owor KworKyAgU2FtZSBtZW1vcnkgbGF5b3V0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIGNvcmVkdW1wIE5U X1g4Nl9YU1RBVEUKKysgIHJlcHJlc2VudGluZyB0aGUgWFNBVkUgZXh0ZW5kZWQgc3RhdGUgcmVn aXN0ZXJzLgorKworKyAgVGhlIGZpcnN0IDggYnl0ZXMgb2YgdGhlIHN3X3VzYWJsZV9ieXRlc1s0 NjQuLjQ2N10gaXMgdGhlIE9TIGVuYWJsZWQKKysgIGV4dGVuZGVkIHN0YXRlIG1hc2ssIHdoaWNo IGlzIHRoZSBzYW1lIGFzIHRoZSBleHRlbmRlZCBjb250cm9sIHJlZ2lzdGVyCisrICAwICh0aGUg WEZFQVRVUkVfRU5BQkxFRF9NQVNLIHJlZ2lzdGVyKSwgWENSMC4gIFdlIGNhbiB1c2UgdGhpcyBt YXNrCisrICB0b2dldGhlciB3aXRoIHRoZSBtYXNrIHNhdmVkIGluIHRoZSB4c3RhdGVfaGRyX2J5 dGVzIHRvIGRldGVybWluZSB3aGF0CisrICBzdGF0ZXMgdGhlIHByb2Nlc3Nvci9PUyBzdXBwb3J0 cyBhbmQgd2hhdCBzdGF0ZSwgdXNlZCBvciBpbml0aWFsaXplZCwKKysgIHRoZSBwcm9jZXNzL3Ro cmVhZCBpcyBpbi4gICovIAorKyNkZWZpbmUgSTM4Nl9MSU5VWF9YU0FWRV9YQ1IwX09GRlNFVCA0 NjQKKyAKKyAjZW5kaWYgLyogaTM4Ni1saW51eC10ZGVwLmggKi8KKy0tLSAuL2dkYi9pMzg2LXRk ZXAuYwkyMDEwLTA0LTAzIDIxOjA5OjI5LjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODYt dGRlcC5jCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtNTEsMTEgKzUx LDEzIEBACisgCisgI2luY2x1ZGUgImkzODYtdGRlcC5oIgorICNpbmNsdWRlICJpMzg3LXRkZXAu aCIKKysjaW5jbHVkZSAiaTM4Ni14c3RhdGUuaCIKKyAKKyAjaW5jbHVkZSAicmVjb3JkLmgiCisg I2luY2x1ZGUgPHN0ZGludC5oPgorIAorICNpbmNsdWRlICJmZWF0dXJlcy9pMzg2L2kzODYuYyIK KysjaW5jbHVkZSAiZmVhdHVyZXMvaTM4Ni9pMzg2LWF2eC5jIgorIAorIC8qIFJlZ2lzdGVyIG5h bWVzLiAgKi8KKyAKK0BAIC03NCw2ICs3NiwxOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqaTM4Nl9y ZWdpc3Rlcl9uYW1lc1tdCisgICAibXhjc3IiCisgfTsKKyAKKytzdGF0aWMgY29uc3QgY2hhciAq aTM4Nl95bW1fbmFtZXNbXSA9CisreworKyAgInltbTAiLCAgInltbTEiLCAgICJ5bW0yIiwgICJ5 bW0zIiwKKysgICJ5bW00IiwgICJ5bW01IiwgICAieW1tNiIsICAieW1tNyIsCisrfTsKKysKKytz dGF0aWMgY29uc3QgY2hhciAqaTM4Nl95bW1oX25hbWVzW10gPQorK3sKKysgICJ5bW0waCIsICAi eW1tMWgiLCAgICJ5bW0yaCIsICAieW1tM2giLAorKyAgInltbTRoIiwgICJ5bW01aCIsICAgInlt bTZoIiwgICJ5bW03aCIsCisrfTsKKysKKyAvKiBSZWdpc3RlciBuYW1lcyBmb3IgTU1YIHBzZXVk by1yZWdpc3RlcnMuICAqLworIAorIHN0YXRpYyBjb25zdCBjaGFyICppMzg2X21teF9uYW1lc1td ID0KK0BAIC0xNTAsMTggKzE2NCw0NyBAQCBpMzg2X2R3b3JkX3JlZ251bV9wIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiCisgICByZXR1cm4gcmVnbnVtID49IDAgJiYgcmVnbnVtIDwgdGRlcC0+bnVtX2R3 b3JkX3JlZ3M7CisgfQorIAorK2ludAorK2kzODZfeW1taF9yZWdudW1fcCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIGludCByZWdudW0pCisreworKyAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRl cCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrICBpbnQgeW1tMGhfcmVnbnVtID0gdGRlcC0+ eW1tMGhfcmVnbnVtOworKworKyAgaWYgKHltbTBoX3JlZ251bSA8IDApCisrICAgIHJldHVybiAw OworKworKyAgcmVnbnVtIC09IHltbTBoX3JlZ251bTsKKysgIHJldHVybiByZWdudW0gPj0gMCAm JiByZWdudW0gPCB0ZGVwLT5udW1feW1tX3JlZ3M7CisrfQorKworKy8qIEFWWCByZWdpc3Rlcj8g ICovCisrCisraW50CisraTM4Nl95bW1fcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBpbnQgcmVnbnVtKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNo X3RkZXAgKGdkYmFyY2gpOworKyAgaW50IHltbTBfcmVnbnVtID0gdGRlcC0+eW1tMF9yZWdudW07 CisrCisrICBpZiAoeW1tMF9yZWdudW0gPCAwKQorKyAgICByZXR1cm4gMDsKKysKKysgIHJlZ251 bSAtPSB5bW0wX3JlZ251bTsKKysgIHJldHVybiByZWdudW0gPj0gMCAmJiByZWdudW0gPCB0ZGVw LT5udW1feW1tX3JlZ3M7CisrfQorKworIC8qIFNTRSByZWdpc3Rlcj8gICovCisgCistc3RhdGlj IGludAorLWkzODZfc3NlX3JlZ251bV9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJl Z251bSkKKytpbnQKKytpMzg2X3htbV9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IGludCByZWdudW0pCisgeworICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hf dGRlcCAoZ2RiYXJjaCk7CisrICBpbnQgbnVtX3htbV9yZWdzID0gSTM4N19OVU1fWE1NX1JFR1Mg KHRkZXApOworIAorLSAgaWYgKEkzODdfTlVNX1hNTV9SRUdTICh0ZGVwKSA9PSAwKQorKyAgaWYg KG51bV94bW1fcmVncyA9PSAwKQorICAgICByZXR1cm4gMDsKKyAKKy0gIHJldHVybiAoSTM4N19Y TU0wX1JFR05VTSAodGRlcCkgPD0gcmVnbnVtCistCSAgJiYgcmVnbnVtIDwgSTM4N19NWENTUl9S RUdOVU0gKHRkZXApKTsKKysgIHJlZ251bSAtPSBJMzg3X1hNTTBfUkVHTlVNICh0ZGVwKTsKKysg IHJldHVybiByZWdudW0gPj0gMCAmJiByZWdudW0gPCBudW1feG1tX3JlZ3M7CisgfQorIAorIHN0 YXRpYyBpbnQKK0BAIC0yMDEsNiArMjQ0LDE5IEBAIGkzODZfZnBjX3JlZ251bV9wIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXIKKyAJICAmJiByZWdudW0gPCBJMzg3X1hNTTBfUkVHTlVNICh0ZGVwKSk7 CisgfQorIAorKy8qIFJldHVybiB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUdOVU0sIG9yIHRoZSBl bXB0eSBzdHJpbmcgaWYgaXQgaXMKKysgICBhbiBhbm9ueW1vdXMgcmVnaXN0ZXIuICAqLworKwor K3N0YXRpYyBjb25zdCBjaGFyICoKKytpMzg2X3JlZ2lzdGVyX25hbWUgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLCBpbnQgcmVnbnVtKQorK3sKKysgIC8qIEhpZGUgdGhlIHVwcGVyIFlNTSByZWdp c3RlcnMuICAqLworKyAgaWYgKGkzODZfeW1taF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkK KysgICAgcmV0dXJuICIiOworKworKyAgcmV0dXJuIHRkZXNjX3JlZ2lzdGVyX25hbWUgKGdkYmFy Y2gsIHJlZ251bSk7CisrfQorKworIC8qIFJldHVybiB0aGUgbmFtZSBvZiByZWdpc3RlciBSRUdO VU0uICAqLworIAorIGNvbnN0IGNoYXIgKgorQEAgLTIwOSw2ICsyNjUsOCBAQCBpMzg2X3BzZXVk b19yZWdpc3Rlcl9uYW1lIChzdHJ1Y3QgZ2RiYXJjCisgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKKyAgIGlmIChpMzg2X21teF9yZWdudW1fcCAo Z2RiYXJjaCwgcmVnbnVtKSkKKyAgICAgcmV0dXJuIGkzODZfbW14X25hbWVzW3JlZ251bSAtIEkz ODdfTU0wX1JFR05VTSAodGRlcCldOworKyAgZWxzZSBpZiAoaTM4Nl95bW1fcmVnbnVtX3AgKGdk YmFyY2gsIHJlZ251bSkpCisrICAgIHJldHVybiBpMzg2X3ltbV9uYW1lc1tyZWdudW0gLSB0ZGVw LT55bW0wX3JlZ251bV07CisgICBlbHNlIGlmIChpMzg2X2J5dGVfcmVnbnVtX3AgKGdkYmFyY2gs IHJlZ251bSkpCisgICAgIHJldHVybiBpMzg2X2J5dGVfbmFtZXNbcmVnbnVtIC0gdGRlcC0+YWxf cmVnbnVtXTsKKyAgIGVsc2UgaWYgKGkzODZfd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVt KSkKK0BAIC0yNDYsNyArMzA0LDEzIEBAIGkzODZfZGJ4X3JlZ190b19yZWdudW0gKHN0cnVjdCBn ZGJhcmNoICoKKyAgIGVsc2UgaWYgKHJlZyA+PSAyMSAmJiByZWcgPD0gMjgpCisgICAgIHsKKyAg ICAgICAvKiBTU0UgcmVnaXN0ZXJzLiAgKi8KKy0gICAgICByZXR1cm4gcmVnIC0gMjEgKyBJMzg3 X1hNTTBfUkVHTlVNICh0ZGVwKTsKKysgICAgICBpbnQgeW1tMF9yZWdudW0gPSB0ZGVwLT55bW0w X3JlZ251bTsKKysKKysgICAgICBpZiAoeW1tMF9yZWdudW0gPj0gMAorKwkgICYmIGkzODZfeG1t X3JlZ251bV9wIChnZGJhcmNoLCByZWcpKQorKwlyZXR1cm4gcmVnIC0gMjEgKyB5bW0wX3JlZ251 bTsKKysgICAgICBlbHNlCisrCXJldHVybiByZWcgLSAyMSArIEkzODdfWE1NMF9SRUdOVU0gKHRk ZXApOworICAgICB9CisgICBlbHNlIGlmIChyZWcgPj0gMjkgJiYgcmVnIDw9IDM2KQorICAgICB7 CitAQCAtMjE4NCw2ICsyMjQ4LDU5IEBAIGkzODdfZXh0X3R5cGUgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoKQorICAgcmV0dXJuIHRkZXAtPmkzODdfZXh0X3R5cGU7CisgfQorIAorKy8qIENvbnN0 cnVjdCB2ZWN0b3IgdHlwZSBmb3IgcHNldWRvIFlNTSByZWdpc3RlcnMuICBXZSBjYW4ndCB1c2UK KysgICB0ZGVzY19maW5kX3R5cGUgc2luY2UgWU1NIGlzbid0IGRlc2NyaWJlZCBpbiB0YXJnZXQg ZGVzY3JpcHRpb24uICAqLworKworK3N0YXRpYyBzdHJ1Y3QgdHlwZSAqCisraTM4Nl95bW1fdHlw ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCisreworKyAgc3RydWN0IGdkYmFyY2hfdGRlcCAq dGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrCisrICBpZiAoIXRkZXAtPmkzODZfeW1t X3R5cGUpCisrICAgIHsKKysgICAgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90eXBlICpidCA9IGJ1 aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CisrCisrICAgICAgLyogVGhlIHR5cGUgd2UncmUgYnVpbGRp bmcgaXMgdGhpczogKi8KKysjaWYgMAorKyAgICAgIHVuaW9uIF9fZ2RiX2J1aWx0aW5fdHlwZV92 ZWMyNTZpCisrICAgICAgeworKyAgICAgICAgaW50MTI4X3QgdWludDEyOFsyXTsKKysgICAgICAg IGludDY0X3QgdjJfaW50NjRbNF07CisrICAgICAgICBpbnQzMl90IHY0X2ludDMyWzhdOworKyAg ICAgICAgaW50MTZfdCB2OF9pbnQxNlsxNl07CisrICAgICAgICBpbnQ4X3QgdjE2X2ludDhbMzJd OworKyAgICAgICAgZG91YmxlIHYyX2RvdWJsZVs0XTsKKysgICAgICAgIGZsb2F0IHY0X2Zsb2F0 WzhdOworKyAgICAgIH07CisrI2VuZGlmCisrCisrICAgICAgc3RydWN0IHR5cGUgKnQ7CisrCisr ICAgICAgdCA9IGFyY2hfY29tcG9zaXRlX3R5cGUgKGdkYmFyY2gsCisrCQkJICAgICAgICJfX2dk Yl9idWlsdGluX3R5cGVfdmVjMjU2aSIsIFRZUEVfQ09ERV9VTklPTik7CisrICAgICAgYXBwZW5k X2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0LCAidjhfZmxvYXQiLAorKwkJCQkgICBpbml0X3ZlY3Rv cl90eXBlIChidC0+YnVpbHRpbl9mbG9hdCwgOCkpOworKyAgICAgIGFwcGVuZF9jb21wb3NpdGVf dHlwZV9maWVsZCAodCwgInY0X2RvdWJsZSIsCisrCQkJCSAgIGluaXRfdmVjdG9yX3R5cGUgKGJ0 LT5idWlsdGluX2RvdWJsZSwgNCkpOworKyAgICAgIGFwcGVuZF9jb21wb3NpdGVfdHlwZV9maWVs ZCAodCwgInYzMl9pbnQ4IiwKKysJCQkJICAgaW5pdF92ZWN0b3JfdHlwZSAoYnQtPmJ1aWx0aW5f aW50OCwgMzIpKTsKKysgICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQgKHQsICJ2MTZf aW50MTYiLAorKwkJCQkgICBpbml0X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRpbl9pbnQxNiwgMTYp KTsKKysgICAgICBhcHBlbmRfY29tcG9zaXRlX3R5cGVfZmllbGQgKHQsICJ2OF9pbnQzMiIsCisr CQkJCSAgIGluaXRfdmVjdG9yX3R5cGUgKGJ0LT5idWlsdGluX2ludDMyLCA4KSk7CisrICAgICAg YXBwZW5kX2NvbXBvc2l0ZV90eXBlX2ZpZWxkICh0LCAidjRfaW50NjQiLAorKwkJCQkgICBpbml0 X3ZlY3Rvcl90eXBlIChidC0+YnVpbHRpbl9pbnQ2NCwgNCkpOworKyAgICAgIGFwcGVuZF9jb21w b3NpdGVfdHlwZV9maWVsZCAodCwgInYyX2ludDEyOCIsCisrCQkJCSAgIGluaXRfdmVjdG9yX3R5 cGUgKGJ0LT5idWlsdGluX2ludDEyOCwgMikpOworKworKyAgICAgIFRZUEVfVkVDVE9SICh0KSA9 IDE7CisrICAgICAgVFlQRV9OQU1FICh0KSA9ICJidWlsdGluX3R5cGVfdmVjMTI4aSI7CisrICAg ICAgdGRlcC0+aTM4Nl95bW1fdHlwZSA9IHQ7CisrICAgIH0KKysKKysgIHJldHVybiB0ZGVwLT5p Mzg2X3ltbV90eXBlOworK30KKysKKyAvKiBDb25zdHJ1Y3QgdmVjdG9yIHR5cGUgZm9yIE1NWCBy ZWdpc3RlcnMuICAqLworIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCisgaTM4Nl9tbXhfdHlwZSAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gpCitAQCAtMjIzNCw2ICsyMzUxLDggQEAgaTM4Nl9wc2V1ZG9f cmVnaXN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyYworIHsKKyAgIGlmIChpMzg2X21teF9yZWdudW1f cCAoZ2RiYXJjaCwgcmVnbnVtKSkKKyAgICAgcmV0dXJuIGkzODZfbW14X3R5cGUgKGdkYmFyY2gp OworKyAgZWxzZSBpZiAoaTM4Nl95bW1fcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisrICAg IHJldHVybiBpMzg2X3ltbV90eXBlIChnZGJhcmNoKTsKKyAgIGVsc2UKKyAgICAgeworICAgICAg IGNvbnN0IHN0cnVjdCBidWlsdGluX3R5cGUgKmJ0ID0gYnVpbHRpbl90eXBlIChnZGJhcmNoKTsK K0BAIC0yMjg1LDcgKzI0MDQsMjIgQEAgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfcmVhZCAoc3RydWN0 IGdkYmFyYworICAgICB7CisgICAgICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFy Y2hfdGRlcCAoZ2RiYXJjaCk7CisgCistICAgICAgaWYgKGkzODZfd29yZF9yZWdudW1fcCAoZ2Ri YXJjaCwgcmVnbnVtKSkKKysgICAgICBpZiAoaTM4Nl95bW1fcmVnbnVtX3AgKGdkYmFyY2gsIHJl Z251bSkpCisrCXsKKysJICByZWdudW0gLT0gdGRlcC0+eW1tMF9yZWdudW07CisrCisrCSAgLyog RXh0cmFjdCAoYWx3YXlzIGxpdHRsZSBlbmRpYW4pLiAgUmVhZCBsb3dlciAxMjhiaXRzLiAqLwor KwkgIHJlZ2NhY2hlX3Jhd19yZWFkIChyZWdjYWNoZSwKKysJCQkgICAgIEkzODdfWE1NMF9SRUdO VU0gKHRkZXApICsgcmVnbnVtLAorKwkJCSAgICAgcmF3X2J1Zik7CisrCSAgbWVtY3B5IChidWYs IHJhd19idWYsIDE2KTsKKysJICAvKiBSZWFkIHVwcGVyIDEyOGJpdHMuICAqLworKwkgIHJlZ2Nh Y2hlX3Jhd19yZWFkIChyZWdjYWNoZSwKKysJCQkgICAgIHRkZXAtPnltbTBoX3JlZ251bSArIHJl Z251bSwKKysJCQkgICAgIHJhd19idWYpOworKwkgIG1lbWNweSAoYnVmICsgMTYsIHJhd19idWYs IDE2KTsKKysJfQorKyAgICAgIGVsc2UgaWYgKGkzODZfd29yZF9yZWdudW1fcCAoZ2RiYXJjaCwg cmVnbnVtKSkKKyAJeworIAkgIGludCBncG51bSA9IHJlZ251bSAtIHRkZXAtPmF4X3JlZ251bTsK KyAKK0BAIC0yMzM0LDcgKzI0NjgsMjAgQEAgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfd3JpdGUgKHN0 cnVjdCBnZGJhcgorICAgICB7CisgICAgICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdk YmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisgCistICAgICAgaWYgKGkzODZfd29yZF9yZWdudW1fcCAo Z2RiYXJjaCwgcmVnbnVtKSkKKysgICAgICBpZiAoaTM4Nl95bW1fcmVnbnVtX3AgKGdkYmFyY2gs IHJlZ251bSkpCisrCXsKKysJICByZWdudW0gLT0gdGRlcC0+eW1tMF9yZWdudW07CisrCisrCSAg LyogLi4uIFdyaXRlIGxvd2VyIDEyOGJpdHMuICAqLworKwkgIHJlZ2NhY2hlX3Jhd193cml0ZSAo cmVnY2FjaGUsCisrCQkJICAgICBJMzg3X1hNTTBfUkVHTlVNICh0ZGVwKSArIHJlZ251bSwKKysJ CQkgICAgIGJ1Zik7CisrCSAgLyogLi4uIFdyaXRlIHVwcGVyIDEyOGJpdHMuICAqLworKwkgIHJl Z2NhY2hlX3Jhd193cml0ZSAocmVnY2FjaGUsCisrCQkJICAgICB0ZGVwLT55bW0waF9yZWdudW0g KyByZWdudW0sCisrCQkJICAgICBidWYgKyAxNik7CisrCX0KKysgICAgICBlbHNlIGlmIChpMzg2 X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgCXsKKyAJICBpbnQgZ3BudW0gPSBy ZWdudW0gLSB0ZGVwLT5heF9yZWdudW07CisgCitAQCAtMjU4MSw2ICsyNzI4LDI4IEBAIGkzODZf Y29sbGVjdF9mcHJlZ3NldCAoY29uc3Qgc3RydWN0IHJlZ3MKKyAgIGkzODdfY29sbGVjdF9mc2F2 ZSAocmVnY2FjaGUsIHJlZ251bSwgZnByZWdzKTsKKyB9CisgCisrLyogU2ltaWxhciB0byBpMzg2 X3N1cHBseV9mcHJlZ3NldCwgYnV0IHVzZSBYU0FWRSBleHRlbmRlZCBzdGF0ZS4gICovCisrCisr c3RhdGljIHZvaWQKKytpMzg2X3N1cHBseV94c3RhdGVyZWdzZXQgKGNvbnN0IHN0cnVjdCByZWdz ZXQgKnJlZ3NldCwKKysJCQkgIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0s CisrCQkJICBjb25zdCB2b2lkICp4c3RhdGVyZWdzLCBzaXplX3QgbGVuKQorK3sKKysgIGNvbnN0 IHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKHJlZ3NldC0+YXJjaCk7 CisrICBpMzg3X3N1cHBseV94c2F2ZSAocmVnY2FjaGUsIHJlZ251bSwgeHN0YXRlcmVncyk7Cisr fQorKworKy8qIFNpbWlsYXIgdG8gaTM4Nl9jb2xsZWN0X2ZwcmVnc2V0ICwgYnV0IHVzZSBYU0FW RSBleHRlbmRlZCBzdGF0ZS4gICovCisrCisrc3RhdGljIHZvaWQKKytpMzg2X2NvbGxlY3RfeHN0 YXRlcmVnc2V0IChjb25zdCBzdHJ1Y3QgcmVnc2V0ICpyZWdzZXQsCisrCQkJICAgY29uc3Qgc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJCQkgICBpbnQgcmVnbnVtLCB2b2lkICp4c3RhdGVy ZWdzLCBzaXplX3QgbGVuKQorK3sKKysgIGNvbnN0IHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAg PSBnZGJhcmNoX3RkZXAgKHJlZ3NldC0+YXJjaCk7CisrICBpMzg3X2NvbGxlY3RfeHNhdmUgKHJl Z2NhY2hlLCByZWdudW0sIHhzdGF0ZXJlZ3MsIDEpOworK30KKysKKyAvKiBSZXR1cm4gdGhlIGFw cHJvcHJpYXRlIHJlZ2lzdGVyIHNldCBmb3IgdGhlIGNvcmUgc2VjdGlvbiBpZGVudGlmaWVkCisg ICAgYnkgU0VDVF9OQU1FIGFuZCBTRUNUX1NJWkUuICAqLworIAorQEAgLTI2MDgsNiArMjc3Nywx NiBAQCBpMzg2X3JlZ3NldF9mcm9tX2NvcmVfc2VjdGlvbiAoc3RydWN0IGdkCisgICAgICAgcmV0 dXJuIHRkZXAtPmZwcmVnc2V0OworICAgICB9CisgCisrICBpZiAoc3RyY21wIChzZWN0X25hbWUs ICIucmVnLXhzdGF0ZSIpID09IDApCisrICAgIHsKKysgICAgICBpZiAodGRlcC0+eHN0YXRlcmVn c2V0ID09IE5VTEwpCisrCXRkZXAtPnhzdGF0ZXJlZ3NldCA9IHJlZ3NldF9hbGxvYyAoZ2RiYXJj aCwKKysJCQkJCSAgIGkzODZfc3VwcGx5X3hzdGF0ZXJlZ3NldCwKKysJCQkJCSAgIGkzODZfY29s bGVjdF94c3RhdGVyZWdzZXQpOworKworKyAgICAgIHJldHVybiB0ZGVwLT54c3RhdGVyZWdzZXQ7 CisrICAgIH0KKysKKyAgIHJldHVybiBOVUxMOworIH0KKyAMCitAQCAtMjgwMSw0NiArMjk4MCw2 MCBAQCBpbnQKKyBpMzg2X3JlZ2lzdGVyX3JlZ2dyb3VwX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBpbnQgcmVnbnVtLAorIAkJCSAgc3RydWN0IHJlZ2dyb3VwICpncm91cCkKKyB7CistICBp bnQgc3NlX3JlZ251bV9wLCBmcF9yZWdudW1fcCwgbW14X3JlZ251bV9wLCBieXRlX3JlZ251bV9w LAorLSAgICAgIHdvcmRfcmVnbnVtX3AsIGR3b3JkX3JlZ251bV9wOworKyAgY29uc3Qgc3RydWN0 IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CisrICBpbnQgZnBf cmVnbnVtX3AsIG1teF9yZWdudW1fcCwgeG1tX3JlZ251bV9wLCBteGNzcl9yZWdudW1fcCwKKysg ICAgICB5bW1fcmVnbnVtX3AsIHltbWhfcmVnbnVtX3A7CisgCisgICAvKiBEb24ndCBpbmNsdWRl IHBzZXVkbyByZWdpc3RlcnMsIGV4Y2VwdCBmb3IgTU1YLCBpbiBhbnkgcmVnaXN0ZXIKKyAgICAg IGdyb3Vwcy4gICovCistICBieXRlX3JlZ251bV9wID0gaTM4Nl9ieXRlX3JlZ251bV9wIChnZGJh cmNoLCByZWdudW0pOworLSAgaWYgKGJ5dGVfcmVnbnVtX3ApCisrICBpZiAoaTM4Nl9ieXRlX3Jl Z251bV9wIChnZGJhcmNoLCByZWdudW0pKQorICAgICByZXR1cm4gMDsKKyAKKy0gIHdvcmRfcmVn bnVtX3AgPSBpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7CistICBpZiAod29y ZF9yZWdudW1fcCkKKysgIGlmIChpMzg2X3dvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkp CisgICAgIHJldHVybiAwOworIAorLSAgZHdvcmRfcmVnbnVtX3AgPSBpMzg2X2R3b3JkX3JlZ251 bV9wIChnZGJhcmNoLCByZWdudW0pOworLSAgaWYgKGR3b3JkX3JlZ251bV9wKQorKyAgaWYgKGkz ODZfZHdvcmRfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSkpCisgICAgIHJldHVybiAwOworIAor ICAgbW14X3JlZ251bV9wID0gaTM4Nl9tbXhfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251bSk7Cisg ICBpZiAoZ3JvdXAgPT0gaTM4Nl9tbXhfcmVnZ3JvdXApCisgICAgIHJldHVybiBtbXhfcmVnbnVt X3A7CisgCistICBzc2VfcmVnbnVtX3AgPSAoaTM4Nl9zc2VfcmVnbnVtX3AgKGdkYmFyY2gsIHJl Z251bSkKKy0JCSAgfHwgaTM4Nl9teGNzcl9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSk7Cisr ICB4bW1fcmVnbnVtX3AgPSBpMzg2X3htbV9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKTsKKysg IG14Y3NyX3JlZ251bV9wID0gaTM4Nl9teGNzcl9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKTsK KyAgIGlmIChncm91cCA9PSBpMzg2X3NzZV9yZWdncm91cCkKKy0gICAgcmV0dXJuIHNzZV9yZWdu dW1fcDsKKysgICAgcmV0dXJuIHhtbV9yZWdudW1fcCB8fCBteGNzcl9yZWdudW1fcDsKKysKKysg IHltbV9yZWdudW1fcCA9IGkzODZfeW1tX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pOworICAg aWYgKGdyb3VwID09IHZlY3Rvcl9yZWdncm91cCkKKy0gICAgcmV0dXJuIG1teF9yZWdudW1fcCB8 fCBzc2VfcmVnbnVtX3A7CisrICAgIHJldHVybiAobW14X3JlZ251bV9wCisrCSAgICB8fCB5bW1f cmVnbnVtX3AKKysJICAgIHx8IG14Y3NyX3JlZ251bV9wCisrCSAgICB8fCAoeG1tX3JlZ251bV9w CisrCQkmJiAoKHRkZXAtPnhjcjAgJiBJMzg2X1hTVEFURV9BVlhfTUFTSykKKysJCSAgICA9PSBJ Mzg2X1hTVEFURV9TU0VfTUFTSykpKTsKKyAKKyAgIGZwX3JlZ251bV9wID0gKGkzODZfZnBfcmVn bnVtX3AgKGdkYmFyY2gsIHJlZ251bSkKKyAJCSB8fCBpMzg2X2ZwY19yZWdudW1fcCAoZ2RiYXJj aCwgcmVnbnVtKSk7CisgICBpZiAoZ3JvdXAgPT0gZmxvYXRfcmVnZ3JvdXApCisgICAgIHJldHVy biBmcF9yZWdudW1fcDsKKyAKKysgIC8qIEZvciAiaW5mbyByZWcgYWxsIiwgZG9uJ3QgaW5jbHVk ZSB1cHBlciBZTU0gcmVnaXN0ZXJzIG5vciBYTU0KKysgICAgIHJlZ2lzdGVycyB3aGVuIEFWWCBp cyBzdXBwb3J0ZWQuICAqLworKyAgeW1taF9yZWdudW1fcCA9IGkzODZfeW1taF9yZWdudW1fcCAo Z2RiYXJjaCwgcmVnbnVtKTsKKysgIGlmIChncm91cCA9PSBhbGxfcmVnZ3JvdXAKKysgICAgICAm JiAoKHhtbV9yZWdudW1fcAorKwkgICAmJiAodGRlcC0+eGNyMCAmIEkzODZfWFNUQVRFX0FWWCkp CisrCSAgfHwgeW1taF9yZWdudW1fcCkpCisrICAgIHJldHVybiAwOworKworICAgaWYgKGdyb3Vw ID09IGdlbmVyYWxfcmVnZ3JvdXApCisgICAgIHJldHVybiAoIWZwX3JlZ251bV9wCisgCSAgICAm JiAhbW14X3JlZ251bV9wCistCSAgICAmJiAhc3NlX3JlZ251bV9wCistCSAgICAmJiAhYnl0ZV9y ZWdudW1fcAorLQkgICAgJiYgIXdvcmRfcmVnbnVtX3AKKy0JICAgICYmICFkd29yZF9yZWdudW1f cCk7CisrCSAgICAmJiAhbXhjc3JfcmVnbnVtX3AKKysJICAgICYmICF4bW1fcmVnbnVtX3AKKysJ ICAgICYmICF5bW1fcmVnbnVtX3AKKysJICAgICYmICF5bW1oX3JlZ251bV9wKTsKKyAKKyAgIHJl dHVybiBkZWZhdWx0X3JlZ2lzdGVyX3JlZ2dyb3VwX3AgKGdkYmFyY2gsIHJlZ251bSwgZ3JvdXAp OworIH0KK0BAIC01NjUwLDcgKzU4NDMsOCBAQCBpMzg2X3ZhbGlkYXRlX3RkZXNjX3AgKHN0cnVj dCBnZGJhcmNoX3RkCisgCQkgICAgICAgc3RydWN0IHRkZXNjX2FyY2hfZGF0YSAqdGRlc2NfZGF0 YSkKKyB7CisgICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjID0gdGRlcC0+dGRlc2M7 CistICBjb25zdCBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZV9jb3JlLCAqZmVhdHVyZV92 ZWN0b3I7CisrICBjb25zdCBzdHJ1Y3QgdGRlc2NfZmVhdHVyZSAqZmVhdHVyZV9jb3JlOworKyAg Y29uc3Qgc3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmVfc3NlLCAqZmVhdHVyZV9hdng7Cisg ICBpbnQgaSwgbnVtX3JlZ3MsIHZhbGlkX3A7CisgCisgICBpZiAoISB0ZGVzY19oYXNfcmVnaXN0 ZXJzICh0ZGVzYykpCitAQCAtNTY2MCwxMyArNTg1NCwzNyBAQCBpMzg2X3ZhbGlkYXRlX3RkZXNj X3AgKHN0cnVjdCBnZGJhcmNoX3RkCisgICBmZWF0dXJlX2NvcmUgPSB0ZGVzY19maW5kX2ZlYXR1 cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5jb3JlIik7CisgCisgICAvKiBHZXQgU1NFIHJl Z2lzdGVycy4gICovCistICBmZWF0dXJlX3ZlY3RvciA9IHRkZXNjX2ZpbmRfZmVhdHVyZSAodGRl c2MsICJvcmcuZ251LmdkYi5pMzg2LnNzZSIpOworKyAgZmVhdHVyZV9zc2UgPSB0ZGVzY19maW5k X2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5zc2UiKTsKKyAKKy0gIGlmIChmZWF0 dXJlX2NvcmUgPT0gTlVMTCB8fCBmZWF0dXJlX3ZlY3RvciA9PSBOVUxMKQorKyAgaWYgKGZlYXR1 cmVfY29yZSA9PSBOVUxMIHx8IGZlYXR1cmVfc3NlID09IE5VTEwpCisgICAgIHJldHVybiAwOwor IAorKyAgLyogVHJ5IEFWWCByZWdpc3RlcnMuICAqLworKyAgZmVhdHVyZV9hdnggPSB0ZGVzY19m aW5kX2ZlYXR1cmUgKHRkZXNjLCAib3JnLmdudS5nZGIuaTM4Ni5hdngiKTsKKysKKyAgIHZhbGlk X3AgPSAxOworIAorKyAgLyogVGhlIFhDUjAgYml0cy4gICovCisrICBpZiAoZmVhdHVyZV9hdngp CisrICAgIHsKKysgICAgICB0ZGVwLT54Y3IwID0gSTM4Nl9YU1RBVEVfQVZYX01BU0s7CisrCisr ICAgICAgLyogSXQgbWF5IGhhdmUgYmVlbiBzZXQgYnkgT1NBQkkgaW5pdGlhbGl6YXRpb24gZnVu Y3Rpb24uICAqLworKyAgICAgIGlmICh0ZGVwLT5udW1feW1tX3JlZ3MgPT0gMCkKKysJeworKwkg IHRkZXAtPnltbWhfcmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3ltbWhfbmFtZXM7CisrCSAgdGRlcC0+ bnVtX3ltbV9yZWdzID0gODsKKysJICB0ZGVwLT55bW0waF9yZWdudW0gPSBJMzg2X1lNTTBIX1JF R05VTTsKKysJfQorKworKyAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZGVwLT5udW1feW1tX3JlZ3M7 IGkrKykKKysJdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVyZV9hdngs IHRkZXNjX2RhdGEsCisrCQkJCQkgICAgdGRlcC0+eW1tMGhfcmVnbnVtICsgaSwKKysJCQkJCSAg ICB0ZGVwLT55bW1oX3JlZ2lzdGVyX25hbWVzW2ldKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB0 ZGVwLT54Y3IwID0gSTM4Nl9YU1RBVEVfU1NFX01BU0s7CisrCisgICBudW1fcmVncyA9IHRkZXAt Pm51bV9jb3JlX3JlZ3M7CisgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3JlZ3M7IGkrKykKKyAgICAg dmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3RlciAoZmVhdHVyZV9jb3JlLCB0ZGVzY19k YXRhLCBpLAorQEAgLTU2NzUsNyArNTg5Myw3IEBAIGkzODZfdmFsaWRhdGVfdGRlc2NfcCAoc3Ry dWN0IGdkYmFyY2hfdGQKKyAgIC8qIE5lZWQgdG8gaW5jbHVkZSAlbXhjc3IsIHNvIGFkZCBvbmUu ICAqLworICAgbnVtX3JlZ3MgKz0gdGRlcC0+bnVtX3htbV9yZWdzICsgMTsKKyAgIGZvciAoOyBp IDwgbnVtX3JlZ3M7IGkrKykKKy0gICAgdmFsaWRfcCAmPSB0ZGVzY19udW1iZXJlZF9yZWdpc3Rl ciAoZmVhdHVyZV92ZWN0b3IsIHRkZXNjX2RhdGEsIGksCisrICAgIHZhbGlkX3AgJj0gdGRlc2Nf bnVtYmVyZWRfcmVnaXN0ZXIgKGZlYXR1cmVfc3NlLCB0ZGVzY19kYXRhLCBpLAorIAkJCQkJdGRl cC0+cmVnaXN0ZXJfbmFtZXNbaV0pOworIAorICAgcmV0dXJuIHZhbGlkX3A7CitAQCAtNTY5MCw2 ICs1OTA4LDcgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorICAg c3RydWN0IHRkZXNjX2FyY2hfZGF0YSAqdGRlc2NfZGF0YTsKKyAgIGNvbnN0IHN0cnVjdCB0YXJn ZXRfZGVzYyAqdGRlc2M7CisgICBpbnQgbW0wX3JlZ251bTsKKysgIGludCB5bW0wX3JlZ251bTsK KyAKKyAgIC8qIElmIHRoZXJlIGlzIGFscmVhZHkgYSBjYW5kaWRhdGUsIHVzZSBpdC4gICovCisg ICBhcmNoZXMgPSBnZGJhcmNoX2xpc3RfbG9va3VwX2J5X2luZm8gKGFyY2hlcywgJmluZm8pOwor QEAgLTU3MTAsNiArNTkyOSw4IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9p bmZvIGkKKyAgIHRkZXAtPmZwcmVnc2V0ID0gTlVMTDsKKyAgIHRkZXAtPnNpemVvZl9mcHJlZ3Nl dCA9IEkzODdfU0laRU9GX0ZTQVZFOworIAorKyAgdGRlcC0+eHN0YXRlcmVnc2V0ID0gTlVMTDsK KysKKyAgIC8qIFRoZSBkZWZhdWx0IHNldHRpbmdzIGluY2x1ZGUgdGhlIEZQVSByZWdpc3RlcnMs IHRoZSBNTVggcmVnaXN0ZXJzCisgICAgICBhbmQgdGhlIFNTRSByZWdpc3RlcnMuICBUaGlzIGNh biBiZSBvdmVycmlkZGVuIGZvciBhIHNwZWNpZmljIEFCSQorICAgICAgYnkgYWRqdXN0aW5nIHRo ZSBtZW1iZXJzIGBzdDBfcmVnbnVtJywgYG1tMF9yZWdudW0nIGFuZAorQEAgLTU3NDIsNiArNTk2 Myw4IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKyAgIC8qIFVu d2luZGluZyBzdG9wcyBvbiBpMzg2IGF1dG9tYXRpY2FsbHkuICAqLworICAgdGRlcC0+b3V0ZXJt b3N0X2ZyYW1lX3AgPSBOVUxMOworIAorKyAgdGRlcC0+eHNhdmVfeGNyMF9vZmZzZXQgPSAtMTsK KysKKyAgIHRkZXAtPnJlY29yZF9yZWdtYXAgPSBpMzg2X3JlY29yZF9yZWdtYXA7CisgCisgICAv KiBUaGUgZm9ybWF0IHVzZWQgZm9yIGBsb25nIGRvdWJsZScgb24gYWxtb3N0IGFsbCBpMzg2IHRh cmdldHMgaXMKK0BAIC01ODU4LDkgKzYwODEsMTQgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVj dCBnZGJhcmNoX2luZm8gaQorICAgc2V0X3RkZXNjX3BzZXVkb19yZWdpc3Rlcl90eXBlIChnZGJh cmNoLCBpMzg2X3BzZXVkb19yZWdpc3Rlcl90eXBlKTsKKyAgIHNldF90ZGVzY19wc2V1ZG9fcmVn aXN0ZXJfbmFtZSAoZ2RiYXJjaCwgaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSk7CisgCistICAv KiBUaGUgZGVmYXVsdCBBQkkgaW5jbHVkZXMgZ2VuZXJhbC1wdXJwb3NlIHJlZ2lzdGVycywgCist ICAgICBmbG9hdGluZy1wb2ludCByZWdpc3RlcnMsIGFuZCB0aGUgU1NFIHJlZ2lzdGVycy4gICov CistICBzZXRfZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCwgSTM4Nl9TU0VfTlVNX1JFR1MpOwor KyAgLyogT3ZlcnJpZGUgdGhlIG5vcm1hbCB0YXJnZXQgZGVzY3JpcHRpb24gbWV0aG9kIHRvIG1h a2UgdGhlIEFWWAorKyAgICAgdXBwZXIgaGFsdmVzIGFub255bW91cy4gICovCisrICBzZXRfZ2Ri YXJjaF9yZWdpc3Rlcl9uYW1lIChnZGJhcmNoLCBpMzg2X3JlZ2lzdGVyX25hbWUpOworKworKyAg LyogRXZlbiB0aG91Z2ggdGhlIGRlZmF1bHQgQUJJIG9ubHkgaW5jbHVkZXMgZ2VuZXJhbC1wdXJw b3NlIHJlZ2lzdGVycywKKysgICAgIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycyBhbmQgdGhlIFNT RSByZWdpc3RlcnMsIHdlIGhhdmUgdG8gbGVhdmUgYQorKyAgICAgZ2FwIGZvciB0aGUgdXBwZXIg QVZYIHJlZ2lzdGVycy4gICovCisrICBzZXRfZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCwgSTM4 Nl9BVlhfTlVNX1JFR1MpOworIAorICAgLyogR2V0IHRoZSB4ODYgdGFyZ2V0IGRlc2NyaXB0aW9u IGZyb20gSU5GTy4gICovCisgICB0ZGVzYyA9IGluZm8udGFyZ2V0X2Rlc2M7CitAQCAtNTg3MSwx MCArNjA5OSwxNSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCisg ICB0ZGVwLT5udW1fY29yZV9yZWdzID0gSTM4Nl9OVU1fR1JFR1MgKyBJMzg3X05VTV9SRUdTOwor ICAgdGRlcC0+cmVnaXN0ZXJfbmFtZXMgPSBpMzg2X3JlZ2lzdGVyX25hbWVzOworIAorKyAgLyog Tm8gdXBwZXIgWU1NIHJlZ2lzdGVycy4gICovCisrICB0ZGVwLT55bW1oX3JlZ2lzdGVyX25hbWVz ID0gTlVMTDsKKysgIHRkZXAtPnltbTBoX3JlZ251bSA9IC0xOworKworICAgdGRlcC0+bnVtX2J5 dGVfcmVncyA9IDg7CisgICB0ZGVwLT5udW1fd29yZF9yZWdzID0gODsKKyAgIHRkZXAtPm51bV9k d29yZF9yZWdzID0gMDsKKyAgIHRkZXAtPm51bV9tbXhfcmVncyA9IDg7CisrICB0ZGVwLT5udW1f eW1tX3JlZ3MgPSAwOworIAorICAgdGRlc2NfZGF0YSA9IHRkZXNjX2RhdGFfYWxsb2MgKCk7Cisg CitAQCAtNTg4MiwyNCArNjExNSwyNSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFy Y2hfaW5mbyBpCisgICBpbmZvLnRkZXBfaW5mbyA9ICh2b2lkICopIHRkZXNjX2RhdGE7CisgICBn ZGJhcmNoX2luaXRfb3NhYmkgKGluZm8sIGdkYmFyY2gpOworIAorKyAgaWYgKCFpMzg2X3ZhbGlk YXRlX3RkZXNjX3AgKHRkZXAsIHRkZXNjX2RhdGEpKQorKyAgICB7CisrICAgICAgdGRlc2NfZGF0 YV9jbGVhbnVwICh0ZGVzY19kYXRhKTsKKysgICAgICB4ZnJlZSAodGRlcCk7CisrICAgICAgZ2Ri YXJjaF9mcmVlIChnZGJhcmNoKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKworICAg LyogV2lyZSBpbiBwc2V1ZG8gcmVnaXN0ZXJzLiAgTnVtYmVyIG9mIHBzZXVkbyByZWdpc3RlcnMg bWF5IGJlCisgICAgICBjaGFuZ2VkLiAgKi8KKyAgIHNldF9nZGJhcmNoX251bV9wc2V1ZG9fcmVn cyAoZ2RiYXJjaCwgKHRkZXAtPm51bV9ieXRlX3JlZ3MKKyAJCQkJCSArIHRkZXAtPm51bV93b3Jk X3JlZ3MKKyAJCQkJCSArIHRkZXAtPm51bV9kd29yZF9yZWdzCistCQkJCQkgKyB0ZGVwLT5udW1f bW14X3JlZ3MpKTsKKysJCQkJCSArIHRkZXAtPm51bV9tbXhfcmVncworKwkJCQkJICsgdGRlcC0+ bnVtX3ltbV9yZWdzKSk7CisgCisgICAvKiBUYXJnZXQgZGVzY3JpcHRpb24gbWF5IGJlIGNoYW5n ZWQuICAqLworICAgdGRlc2MgPSB0ZGVwLT50ZGVzYzsKKyAKKy0gIGlmICghaTM4Nl92YWxpZGF0 ZV90ZGVzY19wICh0ZGVwLCB0ZGVzY19kYXRhKSkKKy0gICAgeworLSAgICAgIHRkZXNjX2RhdGFf Y2xlYW51cCAodGRlc2NfZGF0YSk7CistICAgICAgeGZyZWUgKHRkZXApOworLSAgICAgIGdkYmFy Y2hfZnJlZSAoZ2RiYXJjaCk7CistICAgICAgcmV0dXJuIE5VTEw7CistICAgIH0KKy0KKyAgIHRk ZXNjX3VzZV9yZWdpc3RlcnMgKGdkYmFyY2gsIHRkZXNjLCB0ZGVzY19kYXRhKTsKKyAKKyAgIC8q IE92ZXJyaWRlIGdkYmFyY2hfcmVnaXN0ZXJfcmVnZ3JvdXBfcCBzZXQgaW4gdGRlc2NfdXNlX3Jl Z2lzdGVycy4gICovCitAQCAtNTkwOSwxNiArNjE0MywyNiBAQCBpMzg2X2dkYmFyY2hfaW5pdCAo c3RydWN0IGdkYmFyY2hfaW5mbyBpCisgICB0ZGVwLT5hbF9yZWdudW0gPSBnZGJhcmNoX251bV9y ZWdzIChnZGJhcmNoKTsKKyAgIHRkZXAtPmF4X3JlZ251bSA9IHRkZXAtPmFsX3JlZ251bSArIHRk ZXAtPm51bV9ieXRlX3JlZ3M7CisgCistICBtbTBfcmVnbnVtID0gdGRlcC0+YXhfcmVnbnVtICsg dGRlcC0+bnVtX3dvcmRfcmVnczsKKysgIHltbTBfcmVnbnVtID0gdGRlcC0+YXhfcmVnbnVtICsg dGRlcC0+bnVtX3dvcmRfcmVnczsKKyAgIGlmICh0ZGVwLT5udW1fZHdvcmRfcmVncykKKyAgICAg eworICAgICAgIC8qIFN1cHBvcnQgZHdvcmQgcHNldWRvLXJlZ2lzdGVzciBpZiBpdCBoYXNuJ3Qg YmVlbiBkaXNhYmxlZCwgICovCistICAgICAgdGRlcC0+ZWF4X3JlZ251bSA9IG1tMF9yZWdudW07 CistICAgICAgbW0wX3JlZ251bSA9IHRkZXAtPmVheF9yZWdudW0gKyB0ZGVwLT5udW1fZHdvcmRf cmVnczsKKysgICAgICB0ZGVwLT5lYXhfcmVnbnVtID0geW1tMF9yZWdudW07CisrICAgICAgeW1t MF9yZWdudW0gKz0gdGRlcC0+bnVtX2R3b3JkX3JlZ3M7CisgICAgIH0KKyAgIGVsc2UKKyAgICAg dGRlcC0+ZWF4X3JlZ251bSA9IC0xOworIAorKyAgbW0wX3JlZ251bSA9IHltbTBfcmVnbnVtOwor KyAgaWYgKHRkZXAtPm51bV95bW1fcmVncykKKysgICAgeworKyAgICAgIC8qIFN1cHBvcnQgWU1N IHBzZXVkby1yZWdpc3Rlc3IgaWYgaXQgaXMgYXZhaWxhYmxlLCAgKi8KKysgICAgICB0ZGVwLT55 bW0wX3JlZ251bSA9IHltbTBfcmVnbnVtOworKyAgICAgIG1tMF9yZWdudW0gKz0gdGRlcC0+bnVt X3ltbV9yZWdzOworKyAgICB9CisrICBlbHNlCisrICAgIHRkZXAtPnltbTBfcmVnbnVtID0gLTE7 CisrCisgICBpZiAodGRlcC0+bnVtX21teF9yZWdzICE9IDApCisgICAgIHsKKyAgICAgICAvKiBT dXBwb3J0IE1NWCBwc2V1ZG8tcmVnaXN0ZXNyIGlmIE1NWCBoYXNuJ3QgYmVlbiBkaXNhYmxlZCwg ICovCitAQCAtNjAwMSw2ICs2MjQ1LDcgQEAgaXMgXCJkZWZhdWx0XCIuIiksCisgCisgICAvKiBJ bml0aWFsaXplIHRoZSBzdGFuZGFyZCB0YXJnZXQgZGVzY3JpcHRpb25zLiAgKi8KKyAgIGluaXRp YWxpemVfdGRlc2NfaTM4NiAoKTsKKysgIGluaXRpYWxpemVfdGRlc2NfaTM4Nl9hdnggKCk7Cisg CisgICAvKiBUZWxsIHJlbW90ZSBzdHViIHRoYXQgd2Ugc3VwcG9ydCBYTUwgdGFyZ2V0IGRlc2Ny aXB0aW9uLiAgKi8KKyAgIHJlZ2lzdGVyX3JlbW90ZV9zdXBwb3J0X3htbCAoImkzODYiKTsKKy0t LSAuL2dkYi9pMzg2LXRkZXAuaAkyMDEwLTA0LTAzIDIxOjA2OjUyLjAwMDAwMDAwMCArMDIwMAor KysrIC4vZ2RiL2kzODYtdGRlcC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAw CitAQCAtMTA5LDYgKzEwOSw5IEBAIHN0cnVjdCBnZGJhcmNoX3RkZXAKKyAgIHN0cnVjdCByZWdz ZXQgKmZwcmVnc2V0OworICAgc2l6ZV90IHNpemVvZl9mcHJlZ3NldDsKKyAKKysgIC8qIFhTQVZF IGV4dGVuZGVkIHN0YXRlLiAgKi8KKysgIHN0cnVjdCByZWdzZXQgKnhzdGF0ZXJlZ3NldDsKKysK KyAgIC8qIFJlZ2lzdGVyIG51bWJlciBmb3IgJXN0KDApLiAgVGhlIHJlZ2lzdGVyIG51bWJlcnMg Zm9yIHRoZSBvdGhlcgorICAgICAgcmVnaXN0ZXJzIGZvbGxvdyBmcm9tIHRoaXMgb25lLiAgU2V0 IHRoaXMgdG8gLTEgdG8gaW5kaWNhdGUgdGhlCisgICAgICBhYnNlbmNlIG9mIGFuIEZQVS4gICov CitAQCAtMTIxLDYgKzEyNCwxMyBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisgICAgICBvZiBNTVgg c3VwcG9ydC4gICovCisgICBpbnQgbW0wX3JlZ251bTsKKyAKKysgIC8qIE51bWJlciBvZiBwc2V1 ZG8gWU1NIHJlZ2lzdGVycy4gICovCisrICBpbnQgbnVtX3ltbV9yZWdzOworKworKyAgLyogUmVn aXN0ZXIgbnVtYmVyIGZvciAleW1tMC4gIFNldCB0aGlzIHRvIC0xIHRvIGluZGljYXRlIHRoZSBh YnNlbmNlCisrICAgICBvZiBwc2V1ZG8gWU1NIHJlZ2lzdGVyIHN1cHBvcnQuICAqLworKyAgaW50 IHltbTBfcmVnbnVtOworKworICAgLyogTnVtYmVyIG9mIGJ5dGUgcmVnaXN0ZXJzLiAgKi8KKyAg IGludCBudW1fYnl0ZV9yZWdzOworIAorQEAgLTE0Niw5ICsxNTYsMjQgQEAgc3RydWN0IGdkYmFy Y2hfdGRlcAorICAgLyogTnVtYmVyIG9mIFNTRSByZWdpc3RlcnMuICAqLworICAgaW50IG51bV94 bW1fcmVnczsKKyAKKysgIC8qIEJpdHMgb2YgdGhlIGV4dGVuZGVkIGNvbnRyb2wgcmVnaXN0ZXIg MCAodGhlIFhGRUFUVVJFX0VOQUJMRURfTUFTSworKyAgICAgcmVnaXN0ZXIpLCBleGNsdWRpbmcg dGhlIHg4NyBiaXQsIHdoaWNoIGFyZSBzdXBwb3J0ZWQgYnkgdGhpcyBHREIuCisrICAgKi8KKysg IHVpbnQ2NF90IHhjcjA7CisrCisrICAvKiBPZmZzZXQgb2YgWENSMCBpbiBYU0FWRSBleHRlbmRl ZCBzdGF0ZS4gICovCisrICBpbnQgeHNhdmVfeGNyMF9vZmZzZXQ7CisrCisgICAvKiBSZWdpc3Rl ciBuYW1lcy4gICovCisgICBjb25zdCBjaGFyICoqcmVnaXN0ZXJfbmFtZXM7CisgCisrICAvKiBS ZWdpc3RlciBudW1iZXIgZm9yICV5bW0waC4gIFNldCB0aGlzIHRvIC0xIHRvIGluZGljYXRlIHRo ZSBhYnNlbmNlCisrICAgICBvZiB1cHBlciBZTU0gcmVnaXN0ZXIgc3VwcG9ydC4gICovCisrICBp bnQgeW1tMGhfcmVnbnVtOworKworKyAgLyogVXBwZXIgWU1NIHJlZ2lzdGVyIG5hbWVzLiAgT25s eSB1c2VkIGZvciB0ZGVzY19udW1iZXJlZF9yZWdpc3Rlci4gICovCisrICBjb25zdCBjaGFyICoq eW1taF9yZWdpc3Rlcl9uYW1lczsKKysKKyAgIC8qIFRhcmdldCBkZXNjcmlwdGlvbi4gICovCisg ICBjb25zdCBzdHJ1Y3QgdGFyZ2V0X2Rlc2MgKnRkZXNjOworIAorQEAgLTE4Miw2ICsyMDcsNyBA QCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisgCisgICAvKiBJU0Etc3BlY2lmaWMgZGF0YSB0eXBlcy4g ICovCisgICBzdHJ1Y3QgdHlwZSAqaTM4Nl9tbXhfdHlwZTsKKysgIHN0cnVjdCB0eXBlICppMzg2 X3ltbV90eXBlOworICAgc3RydWN0IHR5cGUgKmkzODdfZXh0X3R5cGU7CisgCisgICAvKiBQcm9j ZXNzIHJlY29yZC9yZXBsYXkgdGFyZ2V0LiAgKi8KK0BAIC0yMzEsNyArMjU3LDkgQEAgZW51bSBp Mzg2X3JlZ251bQorICAgSTM4Nl9GU19SRUdOVU0sCQkvKiAlZnMgKi8KKyAgIEkzODZfR1NfUkVH TlVNLAkJLyogJWdzICovCisgICBJMzg2X1NUMF9SRUdOVU0sCQkvKiAlc3QoMCkgKi8KKy0gIEkz ODZfTVhDU1JfUkVHTlVNID0gNDAJLyogJW14Y3NyICovIAorKyAgSTM4Nl9NWENTUl9SRUdOVU0g PSA0MCwJLyogJW14Y3NyICovIAorKyAgSTM4Nl9ZTU0wSF9SRUdOVU0sCQkvKiAleW1tMGggKi8K KysgIEkzODZfWU1NN0hfUkVHTlVNID0gSTM4Nl9ZTU0wSF9SRUdOVU0gKyA3CisgfTsKKyAKKyAv KiBSZWdpc3RlciBudW1iZXJzIG9mIFJFQ09SRF9SRUdNQVAuICAqLworQEAgLTI2OCw2ICsyOTYs NyBAQCBlbnVtIHJlY29yZF9pMzg2X3JlZ251bQorICNkZWZpbmUgSTM4Nl9OVU1fWFJFR1MgIDkK KyAKKyAjZGVmaW5lIEkzODZfU1NFX05VTV9SRUdTCShJMzg2X01YQ1NSX1JFR05VTSArIDEpCisr I2RlZmluZSBJMzg2X0FWWF9OVU1fUkVHUwkoSTM4Nl9ZTU03SF9SRUdOVU0gKyAxKQorIAorIC8q IFNpemUgb2YgdGhlIGxhcmdlc3QgcmVnaXN0ZXIuICAqLworICNkZWZpbmUgSTM4Nl9NQVhfUkVH SVNURVJfU0laRQkxNgorQEAgLTI3OSw2ICszMDgsOSBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmkz ODdfZXh0X3R5cGUgKHN0cnVjCisgZXh0ZXJuIGludCBpMzg2X2J5dGVfcmVnbnVtX3AgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKyBleHRlcm4gaW50IGkzODZfd29yZF9y ZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pOworIGV4dGVybiBp bnQgaTM4Nl9kd29yZF9yZWdudW1fcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdu dW0pOworK2V4dGVybiBpbnQgaTM4Nl94bW1fcmVnbnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBpbnQgcmVnbnVtKTsKKytleHRlcm4gaW50IGkzODZfeW1tX3JlZ251bV9wIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwgaW50IHJlZ251bSk7CisrZXh0ZXJuIGludCBpMzg2X3ltbWhfcmVn bnVtX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnbnVtKTsKKyAKKyBleHRlcm4g Y29uc3QgY2hhciAqaTM4Nl9wc2V1ZG9fcmVnaXN0ZXJfbmFtZSAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCisgCQkJCQkgICAgICBpbnQgcmVnbnVtKTsKKy0tLSAuL2dkYi9pMzg3LXRkZXAuYwky MDEwLTAxLTAxIDA4OjMxOjM2LjAwMDAwMDAwMCArMDEwMAorKysrIC4vZ2RiL2kzODctdGRlcC5j CTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMzQsNiArMzQsNyBAQAor IAorICNpbmNsdWRlICJpMzg2LXRkZXAuaCIKKyAjaW5jbHVkZSAiaTM4Ny10ZGVwLmgiCisrI2lu Y2x1ZGUgImkzODYteHN0YXRlLmgiCisgCisgLyogUHJpbnQgdGhlIGZsb2F0aW5nIHBvaW50IG51 bWJlciBzcGVjaWZpZWQgYnkgUkFXLiAgKi8KKyAKK0BAIC02NzcsNiArNjc4LDUxOCBAQCBpMzg3 X2NvbGxlY3RfZnhzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjCisgCQkJICBGWFNBVkVfTVhDU1Jf QUREUiAocmVncykpOworIH0KKyAKKysvKiBgeHN0YXRlX2J2JyBpcyBhdCBieXRlIG9mZnNldCA1 MTIuICAqLworKyNkZWZpbmUgWFNBVkVfWFNUQVRFX0JWX0FERFIoeHNhdmUpICh4c2F2ZSArIDUx MikKKysKKysvKiBBdCB4c2F2ZV9hdnhoX29mZnNldFtSRUdOVU1dIHlvdSdsbCBmaW5kIHRoZSBv ZmZzZXQgdG8gdGhlIGxvY2F0aW9uIGluCisrICAgdGhlIHVwcGVyIDEyOGJpdCBvZiBBVlggcmVn aXN0ZXIgZGF0YSBzdHJ1Y3R1cmUgdXNlZCBieSB0aGUgInhzYXZlIgorKyAgIGluc3RydWN0aW9u IHdoZXJlIEdEQiByZWdpc3RlciBSRUdOVU0gaXMgc3RvcmVkLiAgKi8KKysKKytzdGF0aWMgaW50 IHhzYXZlX2F2eGhfb2Zmc2V0W10gPQorK3sKKysgIDU3NiArIDAgKiAxNiwJCS8qIFVwcGVyIDEy OGJpdCBvZiAleW1tMCB0aHJvdWdoIC4uLiAgKi8KKysgIDU3NiArIDEgKiAxNiwKKysgIDU3NiAr IDIgKiAxNiwKKysgIDU3NiArIDMgKiAxNiwKKysgIDU3NiArIDQgKiAxNiwKKysgIDU3NiArIDUg KiAxNiwKKysgIDU3NiArIDYgKiAxNiwKKysgIDU3NiArIDcgKiAxNiwKKysgIDU3NiArIDggKiAx NiwKKysgIDU3NiArIDkgKiAxNiwKKysgIDU3NiArIDEwICogMTYsCisrICA1NzYgKyAxMSAqIDE2 LAorKyAgNTc2ICsgMTIgKiAxNiwKKysgIDU3NiArIDEzICogMTYsCisrICA1NzYgKyAxNCAqIDE2 LAorKyAgNTc2ICsgMTUgKiAxNgkJLyogVXBwZXIgMTI4Yml0IG9mIC4uLiAleW1tMTUgKDEyOCBi aXRzIGVhY2gpLiAgKi8KKyt9OworKworKyNkZWZpbmUgWFNBVkVfQVZYSF9BRERSKHRkZXAsIHhz YXZlLCByZWdudW0pIFwKKysgICh4c2F2ZSArIHhzYXZlX2F2eGhfb2Zmc2V0W3JlZ251bSAtIEkz ODdfWU1NMEhfUkVHTlVNICh0ZGVwKV0pCisrCisrLyogU2ltaWxhciB0byBpMzg3X3N1cHBseV9m eHNhdmUsIGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK3ZvaWQKKytpMzg3 X3N1cHBseV94c2F2ZSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKKysJ CSAgIGNvbnN0IHZvaWQgKnhzYXZlKQorK3sKKysgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAg PSBnZGJhcmNoX3RkZXAgKGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSkpOworKyAgY29uc3Qg Z2RiX2J5dGUgKnJlZ3MgPSB4c2F2ZTsKKysgIGludCBpOworKyAgdW5zaWduZWQgaW50IGNsZWFy X2J2OworKyAgY29uc3QgZ2RiX2J5dGUgKnA7CisrICBlbnVtCisrICAgIHsKKysgICAgICBub25l ID0gMHgwLAorKyAgICAgIHg4NyA9IDB4MSwKKysgICAgICBzc2UgPSAweDIsCisrICAgICAgYXZ4 aCA9IDB4NCwKKysgICAgICBhbGwgPSB4ODcgfCBzc2UgfCBhdnhoCisrICAgIH0gcmVnY2xhc3M7 CisrCisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5zdDBfcmVnbnVtID49IEkzODZfU1QwX1JFR05VTSk7 CisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5udW1feG1tX3JlZ3MgPiAwKTsKKysKKysgIGlmIChyZWdu dW0gPT0gLTEpCisrICAgIHJlZ2NsYXNzID0gYWxsOworKyAgZWxzZSBpZiAocmVnbnVtID49IEkz ODdfWU1NMEhfUkVHTlVNICh0ZGVwKQorKwkgICAmJiByZWdudW0gPCBJMzg3X1lNTUVOREhfUkVH TlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSBhdnhoOworKyAgZWxzZSBpZiAocmVnbnVtID49 IEkzODdfWE1NMF9SRUdOVU0odGRlcCkKKysJICAgJiYgcmVnbnVtIDwgSTM4N19NWENTUl9SRUdO VU0gKHRkZXApKQorKyAgICByZWdjbGFzcyA9IHNzZTsKKysgIGVsc2UgaWYgKHJlZ251bSA+PSBJ Mzg3X1NUMF9SRUdOVU0gKHRkZXApCisrCSAgICYmIHJlZ251bSA8IEkzODdfRkNUUkxfUkVHTlVN ICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSB4ODc7CisrICBlbHNlCisrICAgIHJlZ2NsYXNzID0g bm9uZTsKKysKKysgIGlmIChyZWdzICE9IE5VTEwgJiYgcmVnY2xhc3MgIT0gbm9uZSkKKysgICAg eworKyAgICAgIC8qIEdldCBgeHN0YXRfYnYnLiAgKi8KKysgICAgICBjb25zdCBnZGJfYnl0ZSAq eHN0YXRlX2J2X3AgPSBYU0FWRV9YU1RBVEVfQlZfQUREUiAocmVncyk7CisrCisrICAgICAgLyog VGhlIHN1cHBvcnRlZCBiaXRzIGluIGB4c3RhdF9idicgYXJlIDEgYnl0ZS4gIENsZWFyIHBhcnQg aW4KKysJIHZlY3RvciByZWdpc3RlcnMgaWYgaXRzIGJpdCBpbiB4c3RhdF9idiBpcyB6ZXJvLiAg Ki8KKysgICAgICBjbGVhcl9idiA9ICh+KCp4c3RhdGVfYnZfcCkpICYgdGRlcC0+eGNyMDsKKysg ICAgfQorKyAgZWxzZQorKyAgICBjbGVhcl9idiA9IEkzODZfWFNUQVRFX0FWWF9NQVNLOworKwor KyAgc3dpdGNoIChyZWdjbGFzcykKKysgICAgeworKyAgICBjYXNlIG5vbmU6CisrICAgICAgYnJl YWs7CisrCisrICAgIGNhc2UgYXZ4aDoKKysgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RB VEVfQVZYKSkKKysJcCA9IE5VTEw7CisrICAgICAgZWxzZQorKwlwID0gWFNBVkVfQVZYSF9BRERS ICh0ZGVwLCByZWdzLCByZWdudW0pOworKyAgICAgIHJlZ2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2Nh Y2hlLCByZWdudW0sIHApOworKyAgICAgIHJldHVybjsKKysKKysgICAgY2FzZSBzc2U6CisrICAg ICAgaWYgKChjbGVhcl9idiAmIEkzODZfWFNUQVRFX1NTRSkpCisrCXAgPSBOVUxMOworKyAgICAg IGVsc2UKKysJcCA9IEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCByZWdudW0pOworKyAgICAgIHJl Z2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCByZWdudW0sIHApOworKyAgICAgIHJldHVybjsK KysKKysgICAgY2FzZSB4ODc6CisrICAgICAgaWYgKChjbGVhcl9idiAmIEkzODZfWFNUQVRFX1g4 NykpCisrCXAgPSBOVUxMOworKyAgICAgIGVsc2UKKysJcCA9IEZYU0FWRV9BRERSICh0ZGVwLCBy ZWdzLCByZWdudW0pOworKyAgICAgIHJlZ2NhY2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCByZWdu dW0sIHApOworKyAgICAgIHJldHVybjsKKysKKysgICAgY2FzZSBhbGw6CisrICAgICAgLyogSGFu bGUgdGhlIHVwcGVyIFlNTSByZWdpc3RlcnMuICAqLworKyAgICAgIGlmICgodGRlcC0+eGNyMCAm IEkzODZfWFNUQVRFX0FWWCkpCisrCXsKKysJICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVf QVZYKSkKKysJICAgIHAgPSBOVUxMOworKwkgIGVsc2UKKysJICAgIHAgPSByZWdzOworKworKwkg IGZvciAoaSA9IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKTsKKysJICAgICAgIGkgPCBJMzg3X1lN TUVOREhfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkgICAgeworKwkgICAgICBpZiAocCAhPSBOVUxM KQorKwkJcCA9IFhTQVZFX0FWWEhfQUREUiAodGRlcCwgcmVncywgaSk7CisrCSAgICAgIHJlZ2Nh Y2hlX3Jhd19zdXBwbHkgKHJlZ2NhY2hlLCBpLCBwKTsKKysJICAgIH0KKysJfQorKworKyAgICAg IC8qIEhhbmRsZSB0aGUgWE1NIHJlZ2lzdGVycy4gICovCisrICAgICAgaWYgKCh0ZGVwLT54Y3Iw ICYgSTM4Nl9YU1RBVEVfU1NFKSkKKysJeworKwkgIGlmICgoY2xlYXJfYnYgJiBJMzg2X1hTVEFU RV9TU0UpKQorKwkgICAgcCA9IE5VTEw7CisrCSAgZWxzZQorKwkgICAgcCA9IHJlZ3M7CisrCisr CSAgZm9yIChpID0gSTM4N19YTU0wX1JFR05VTSAodGRlcCk7CisrCSAgICAgICBpIDwgSTM4N19N WENTUl9SRUdOVU0gKHRkZXApOyBpKyspCisrCSAgICB7CisrCSAgICAgIGlmIChwICE9IE5VTEwp CisrCQlwID0gRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpOworKwkgICAgICByZWdjYWNoZV9y YXdfc3VwcGx5IChyZWdjYWNoZSwgaSwgcCk7CisrCSAgICB9CisrCX0KKysKKysgICAgICAvKiBI YW5kbGUgdGhlIHg4NyByZWdpc3RlcnMuICAqLworKyAgICAgIGlmICgodGRlcC0+eGNyMCAmIEkz ODZfWFNUQVRFX1g4NykpCisrCXsKKysJICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVfWDg3 KSkKKysJICAgIHAgPSBOVUxMOworKwkgIGVsc2UKKysJICAgIHAgPSByZWdzOworKworKwkgIGZv ciAoaSA9IEkzODdfU1QwX1JFR05VTSAodGRlcCk7CisrCSAgICAgICBpIDwgSTM4N19GQ1RSTF9S RUdOVU0gKHRkZXApOyBpKyspCisrCSAgICB7CisrCSAgICAgIGlmIChwICE9IE5VTEwpCisrCQlw ID0gRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpOworKwkgICAgICByZWdjYWNoZV9yYXdfc3Vw cGx5IChyZWdjYWNoZSwgaSwgcCk7CisrCSAgICB9CisrCX0KKysgICAgICBicmVhazsKKysgICAg fQorKworKyAgLyogT25seSBoYW5kbGUgeDg3IGNvbnRyb2wgcmVnaXN0ZXJzLiAgKi8KKysgIGZv ciAoaSA9IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKTsgaSA8IEkzODdfWE1NMF9SRUdOVU0gKHRk ZXApOyBpKyspCisrICAgIGlmIChyZWdudW0gPT0gLTEgfHwgcmVnbnVtID09IGkpCisrICAgICAg eworKwlpZiAocmVncyA9PSBOVUxMKQorKwkgIHsKKysJICAgIHJlZ2NhY2hlX3Jhd19zdXBwbHkg KHJlZ2NhY2hlLCBpLCBOVUxMKTsKKysJICAgIGNvbnRpbnVlOworKwkgIH0KKysKKysJLyogTW9z dCBvZiB0aGUgRlBVIGNvbnRyb2wgcmVnaXN0ZXJzIG9jY3VweSBvbmx5IDE2IGJpdHMgaW4KKysJ ICAgdGhlIHhzYXZlIGV4dGVuZGVkIHN0YXRlLiAgR2l2ZSB0aG9zZSBhIHNwZWNpYWwgdHJlYXRt ZW50LiAgKi8KKysJaWYgKGkgIT0gSTM4N19GSU9GRl9SRUdOVU0gKHRkZXApCisrCSAgICAmJiBp ICE9IEkzODdfRk9PRkZfUkVHTlVNICh0ZGVwKSkKKysJICB7CisrCSAgICBnZGJfYnl0ZSB2YWxb NF07CisrCisrCSAgICBtZW1jcHkgKHZhbCwgRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpLCAy KTsKKysJICAgIHZhbFsyXSA9IHZhbFszXSA9IDA7CisrCSAgICBpZiAoaSA9PSBJMzg3X0ZPUF9S RUdOVU0gKHRkZXApKQorKwkgICAgICB2YWxbMV0gJj0gKCgxIDw8IDMpIC0gMSk7CisrCSAgICBl bHNlIGlmIChpPT0gSTM4N19GVEFHX1JFR05VTSAodGRlcCkpCisrCSAgICAgIHsKKysJCS8qIFRo ZSBmeHNhdmUgYXJlYSBjb250YWlucyBhIHNpbXBsaWZpZWQgdmVyc2lvbiBvZgorKwkJICAgdGhl IHRhZyB3b3JkLiAgV2UgaGF2ZSB0byBsb29rIGF0IHRoZSBhY3R1YWwgODAtYml0CisrCQkgICBG UCBkYXRhIHRvIHJlY3JlYXRlIHRoZSB0cmFkaXRpb25hbCBpMzg3IHRhZyB3b3JkLiAgKi8KKysK KysJCXVuc2lnbmVkIGxvbmcgZnRhZyA9IDA7CisrCQlpbnQgZnByZWc7CisrCQlpbnQgdG9wOwor KworKwkJdG9wID0gKChGWFNBVkVfQUREUiAodGRlcCwgcmVncywKKysJCQkJICAgICBJMzg3X0ZT VEFUX1JFR05VTSAodGRlcCkpKVsxXSA+PiAzKTsKKysJCXRvcCAmPSAweDc7CisrCisrCQlmb3Ig KGZwcmVnID0gNzsgZnByZWcgPj0gMDsgZnByZWctLSkKKysJCSAgeworKwkJICAgIGludCB0YWc7 CisrCisrCQkgICAgaWYgKHZhbFswXSAmICgxIDw8IGZwcmVnKSkKKysJCSAgICAgIHsKKysJCQlp bnQgcmVnbnVtID0gKGZwcmVnICsgOCAtIHRvcCkgJSA4IAorKwkJCQkgICAgICAgKyBJMzg3X1NU MF9SRUdOVU0gKHRkZXApOworKwkJCXRhZyA9IGkzODdfdGFnIChGWFNBVkVfQUREUiAodGRlcCwg cmVncywgcmVnbnVtKSk7CisrCQkgICAgICB9CisrCQkgICAgZWxzZQorKwkJICAgICAgdGFnID0g MzsJCS8qIEVtcHR5ICovCisrCisrCQkgICAgZnRhZyB8PSB0YWcgPDwgKDIgKiBmcHJlZyk7Cisr CQkgIH0KKysJCXZhbFswXSA9IGZ0YWcgJiAweGZmOworKwkJdmFsWzFdID0gKGZ0YWcgPj4gOCkg JiAweGZmOworKwkgICAgICB9CisrCSAgICByZWdjYWNoZV9yYXdfc3VwcGx5IChyZWdjYWNoZSwg aSwgdmFsKTsKKysJICB9CisrCWVsc2UgCisrCSAgcmVnY2FjaGVfcmF3X3N1cHBseSAocmVnY2Fj aGUsIGksIEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCBpKSk7CisrICAgICAgfQorKworKyAgaWYg KHJlZ251bSA9PSBJMzg3X01YQ1NSX1JFR05VTSAodGRlcCkgfHwgcmVnbnVtID09IC0xKQorKyAg ICB7CisrICAgICAgcCA9IHJlZ3MgPT0gTlVMTCA/IE5VTEwgOiBGWFNBVkVfTVhDU1JfQUREUiAo cmVncyk7CisrICAgICAgcmVnY2FjaGVfcmF3X3N1cHBseSAocmVnY2FjaGUsIEkzODdfTVhDU1Jf UkVHTlVNICh0ZGVwKSwgcCk7CisrICAgIH0KKyt9CisrCisrLyogU2ltaWxhciB0byBpMzg3X2Nv bGxlY3RfZnhzYXZlLCBidXQgdXNlIFhTQVZFIGV4dGVuZGVkIHN0YXRlLiAgKi8KKysKKyt2b2lk CisraTM4N19jb2xsZWN0X3hzYXZlIChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBp bnQgcmVnbnVtLAorKwkJICAgIHZvaWQgKnhzYXZlLCBpbnQgZ2NvcmUpCisreworKyAgc3RydWN0 IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2V0X3JlZ2NhY2hlX2FyY2ggKHJl Z2NhY2hlKSk7CisrICBnZGJfYnl0ZSAqcmVncyA9IHhzYXZlOworKyAgaW50IGk7CisrICBlbnVt CisrICAgIHsKKysgICAgICBub25lID0gMHgwLAorKyAgICAgIGNoZWNrID0gMHgxLAorKyAgICAg IHg4NyA9IDB4MiB8IGNoZWNrLAorKyAgICAgIHNzZSA9IDB4NCB8IGNoZWNrLAorKyAgICAgIGF2 eGggPSAweDggfCBjaGVjaywKKysgICAgICBhbGwgPSB4ODcgfCBzc2UgfCBhdnhoCisrICAgIH0g cmVnY2xhc3M7CisrCisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5zdDBfcmVnbnVtID49IEkzODZfU1Qw X1JFR05VTSk7CisrICBnZGJfYXNzZXJ0ICh0ZGVwLT5udW1feG1tX3JlZ3MgPiAwKTsKKysKKysg IGlmIChyZWdudW0gPT0gLTEpCisrICAgIHJlZ2NsYXNzID0gYWxsOworKyAgZWxzZSBpZiAocmVn bnVtID49IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKQorKwkgICAmJiByZWdudW0gPCBJMzg3X1lN TUVOREhfUkVHTlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSBhdnhoOworKyAgZWxzZSBpZiAo cmVnbnVtID49IEkzODdfWE1NMF9SRUdOVU0odGRlcCkKKysJICAgJiYgcmVnbnVtIDwgSTM4N19N WENTUl9SRUdOVU0gKHRkZXApKQorKyAgICByZWdjbGFzcyA9IHNzZTsKKysgIGVsc2UgaWYgKHJl Z251bSA+PSBJMzg3X1NUMF9SRUdOVU0gKHRkZXApCisrCSAgICYmIHJlZ251bSA8IEkzODdfRkNU UkxfUkVHTlVNICh0ZGVwKSkKKysgICAgcmVnY2xhc3MgPSB4ODc7CisrICBlbHNlCisrICAgIHJl Z2NsYXNzID0gbm9uZTsKKysKKysgIGlmIChnY29yZSkKKysgICAgeworKyAgICAgIC8qIFVwZGF0 ZSBYQ1IwIGFuZCBgeHN0YXRlX2J2JyB3aXRoIFhDUjAgZm9yIGdjb3JlLiAgKi8KKysgICAgICBp ZiAodGRlcC0+eHNhdmVfeGNyMF9vZmZzZXQgIT0gLTEpCisrCW1lbWNweSAocmVncyArIHRkZXAt PnhzYXZlX3hjcjBfb2Zmc2V0LCAmdGRlcC0+eGNyMCwgOCk7CisrICAgICAgbWVtY3B5IChYU0FW RV9YU1RBVEVfQlZfQUREUiAocmVncyksICZ0ZGVwLT54Y3IwLCA4KTsKKysKKysgICAgICBzd2l0 Y2ggKHJlZ2NsYXNzKQorKwl7CisrCWRlZmF1bHQ6CisrCSAgYWJvcnQgKCk7CisrCisrCWNhc2Ug YWxsOgorKwkgIC8qIEhhbmRsZSB0aGUgdXBwZXIgWU1NIHJlZ2lzdGVycy4gICovCisrCSAgaWYg KCh0ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfQVZYKSkKKysJICAgIGZvciAoaSA9IEkzODdfWU1N MEhfUkVHTlVNICh0ZGVwKTsKKysJCSBpIDwgSTM4N19ZTU1FTkRIX1JFR05VTSAodGRlcCk7IGkr KykKKysJICAgICAgcmVnY2FjaGVfcmF3X2NvbGxlY3QgKHJlZ2NhY2hlLCBpLAorKwkJCQkgICAg WFNBVkVfQVZYSF9BRERSICh0ZGVwLCByZWdzLCBpKSk7CisrCisrCSAgLyogSGFuZGxlIHRoZSBY TU0gcmVnaXN0ZXJzLiAgKi8KKysJICBpZiAoKHRkZXAtPnhjcjAgJiBJMzg2X1hTVEFURV9TU0Up KQorKwkgICAgZm9yIChpID0gSTM4N19YTU0wX1JFR05VTSAodGRlcCk7CisrCQkgaSA8IEkzODdf TVhDU1JfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkgICAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAo cmVnY2FjaGUsIGksCisrCQkJCSAgICBGWFNBVkVfQUREUiAodGRlcCwgcmVncywgaSkpOworKwor KwkgIC8qIEhhbmRsZSB0aGUgeDg3IHJlZ2lzdGVycy4gICovCisrCSAgaWYgKCh0ZGVwLT54Y3Iw ICYgSTM4Nl9YU1RBVEVfWDg3KSkKKysJICAgIGZvciAoaSA9IEkzODdfU1QwX1JFR05VTSAodGRl cCk7CisrCQkgaSA8IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkgICAgICByZWdj YWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIGksCisrCQkJCSAgICBGWFNBVkVfQUREUiAodGRl cCwgcmVncywgaSkpOworKwkgIGJyZWFrOworKworKwljYXNlIHg4NzoKKysJICByZWdjYWNoZV9y YXdfY29sbGVjdCAocmVnY2FjaGUsIHJlZ251bSwKKysJCQkJRlhTQVZFX0FERFIgKHRkZXAsIHJl Z3MsIHJlZ251bSkpOworKwkgIHJldHVybjsKKysKKysJY2FzZSBzc2U6CisrCSAgcmVnY2FjaGVf cmF3X2NvbGxlY3QgKHJlZ2NhY2hlLCByZWdudW0sCisrCQkJCUZYU0FWRV9BRERSICh0ZGVwLCBy ZWdzLCByZWdudW0pKTsKKysJICByZXR1cm47CisrCisrCWNhc2UgYXZ4aDoKKysJICByZWdjYWNo ZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIHJlZ251bSwKKysJCQkJWFNBVkVfQVZYSF9BRERSICh0 ZGVwLCByZWdzLCByZWdudW0pKTsKKysJICByZXR1cm47CisrCX0KKysgICAgfQorKyAgZWxzZQor KyAgICB7CisrICAgICAgaWYgKChyZWdjbGFzcyAmIGNoZWNrKSkKKysJeworKwkgIGdkYl9ieXRl IHJhd1tJMzg2X01BWF9SRUdJU1RFUl9TSVpFXTsKKysJICBnZGJfYnl0ZSAqeHN0YXRlX2J2X3Ag PSBYU0FWRV9YU1RBVEVfQlZfQUREUiAocmVncyk7CisrCSAgdW5zaWduZWQgaW50IHhzdGF0ZV9i diA9IDA7CisrCSAgLyogVGhlIHN1cHBvcnRlZCBiaXRzIGluIGB4c3RhdF9idicgYXJlIDEgYnl0 ZS4gKi8KKysJICB1bnNpZ25lZCBpbnQgY2xlYXJfYnYgPSAofigqeHN0YXRlX2J2X3ApKSAmIHRk ZXAtPnhjcjA7CisrCSAgZ2RiX2J5dGUgKnA7CisrCisrCSAgLyogQ2xlYXIgcmVnaXN0ZXIgc2V0 IGlmIGl0cyBiaXQgaW4geHN0YXRfYnYgaXMgemVyby4gICovCisrCSAgaWYgKGNsZWFyX2J2KQor KwkgICAgeworKwkgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RBVEVfQVZYKSkKKysJCWZv ciAoaSA9IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKTsKKysJCSAgICAgaSA8IEkzODdfWU1NRU5E SF9SRUdOVU0gKHRkZXApOyBpKyspCisrCQkgIG1lbXNldCAoWFNBVkVfQVZYSF9BRERSICh0ZGVw LCByZWdzLCBpKSwgMCwgMTYpOworKworKwkgICAgICBpZiAoKGNsZWFyX2J2ICYgSTM4Nl9YU1RB VEVfU1NFKSkKKysJCWZvciAoaSA9IEkzODdfWE1NMF9SRUdOVU0gKHRkZXApOworKwkJICAgICBp IDwgSTM4N19NWENTUl9SRUdOVU0gKHRkZXApOyBpKyspCisrCQkgIG1lbXNldCAoRlhTQVZFX0FE RFIgKHRkZXAsIHJlZ3MsIGkpLCAwLCAxNik7CisrCisrCSAgICAgIGlmICgoY2xlYXJfYnYgJiBJ Mzg2X1hTVEFURV9YODcpKQorKwkJZm9yIChpID0gSTM4N19TVDBfUkVHTlVNICh0ZGVwKTsKKysJ CSAgICAgaSA8IEkzODdfRkNUUkxfUkVHTlVNICh0ZGVwKTsgaSsrKQorKwkJICBtZW1zZXQgKEZY U0FWRV9BRERSICh0ZGVwLCByZWdzLCBpKSwgMCwgMTApOworKwkgICAgfQorKworKwkgIGlmIChy ZWdjbGFzcyA9PSBhbGwpCisrCSAgICB7CisrCSAgICAgIC8qIENoZWNrIGlmIGFueSB1cHBlciBZ TU0gcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgKi8KKysJICAgICAgaWYgKCh0ZGVwLT54Y3IwICYg STM4Nl9YU1RBVEVfQVZYKSkKKysJCWZvciAoaSA9IEkzODdfWU1NMEhfUkVHTlVNICh0ZGVwKTsK KysJCSAgICAgaSA8IEkzODdfWU1NRU5ESF9SRUdOVU0gKHRkZXApOyBpKyspCisrCQkgIHsKKysJ CSAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIGksIHJhdyk7CisrCQkgICAgcCA9 IFhTQVZFX0FWWEhfQUREUiAodGRlcCwgcmVncywgaSk7CisrCQkgICAgaWYgKG1lbWNtcCAocmF3 LCBwLCAxNikpCisrCQkgICAgICB7CisrCQkJeHN0YXRlX2J2IHw9IEkzODZfWFNUQVRFX0FWWDsK KysJCQltZW1jcHkgKHAsIHJhdywgMTYpOworKwkJICAgICAgfQorKwkJICB9CisrCisrCSAgICAg IC8qIENoZWNrIGlmIGFueSBTU0UgcmVnaXN0ZXJzIGFyZSBjaGFuZ2VkLiAgKi8KKysJICAgICAg aWYgKCh0ZGVwLT54Y3IwICYgSTM4Nl9YU1RBVEVfU1NFKSkKKysJCWZvciAoaSA9IEkzODdfWE1N MF9SRUdOVU0gKHRkZXApOworKwkJICAgICBpIDwgSTM4N19NWENTUl9SRUdOVU0gKHRkZXApOyBp KyspCisrCQkgIHsKKysJCSAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIGksIHJh dyk7CisrCQkgICAgcCA9IEZYU0FWRV9BRERSICh0ZGVwLCByZWdzLCBpKTsKKysJCSAgICBpZiAo bWVtY21wIChyYXcsIHAsIDE2KSkKKysJCSAgICAgIHsKKysJCQl4c3RhdGVfYnYgfD0gSTM4Nl9Y U1RBVEVfU1NFOworKwkJCW1lbWNweSAocCwgcmF3LCAxNik7CisrCQkgICAgICB9CisrCQkgIH0K KysKKysJICAgICAgLyogQ2hlY2sgaWYgYW55IFg4NyByZWdpc3RlcnMgYXJlIGNoYW5nZWQuICAq LworKwkgICAgICBpZiAoKHRkZXAtPnhjcjAgJiBJMzg2X1hTVEFURV9YODcpKQorKwkJZm9yIChp ID0gSTM4N19TVDBfUkVHTlVNICh0ZGVwKTsKKysJCSAgICAgaSA8IEkzODdfRkNUUkxfUkVHTlVN ICh0ZGVwKTsgaSsrKQorKwkJICB7CisrCQkgICAgcmVnY2FjaGVfcmF3X2NvbGxlY3QgKHJlZ2Nh Y2hlLCBpLCByYXcpOworKwkJICAgIHAgPSBGWFNBVkVfQUREUiAodGRlcCwgcmVncywgaSk7Cisr CQkgICAgaWYgKG1lbWNtcCAocmF3LCBwLCAxMCkpCisrCQkgICAgICB7CisrCQkJeHN0YXRlX2J2 IHw9IEkzODZfWFNUQVRFX1g4NzsKKysJCQltZW1jcHkgKHAsIHJhdywgMTApOworKwkJICAgICAg fQorKwkJICB9CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICAvKiBDaGVjayBp ZiBSRUdOVU0gaXMgY2hhbmdlZC4gICovCisrCSAgICAgIHJlZ2NhY2hlX3Jhd19jb2xsZWN0IChy ZWdjYWNoZSwgcmVnbnVtLCByYXcpOworKworKwkgICAgICBzd2l0Y2ggKHJlZ2NsYXNzKQorKwkJ eworKwkJZGVmYXVsdDoKKysJCSAgYWJvcnQgKCk7CisrCisrCQljYXNlIGF2eGg6CisrCQkgIC8q IFRoaXMgaXMgYW4gdXBwZXIgWU1NIHJlZ2lzdGVyLiAgKi8KKysJCSAgcCA9IFhTQVZFX0FWWEhf QUREUiAodGRlcCwgcmVncywgcmVnbnVtKTsKKysJCSAgaWYgKG1lbWNtcCAocmF3LCBwLCAxNikp CisrCQkgICAgeworKwkJICAgICAgeHN0YXRlX2J2IHw9IEkzODZfWFNUQVRFX0FWWDsKKysJCSAg ICAgIG1lbWNweSAocCwgcmF3LCAxNik7CisrCQkgICAgfQorKwkJICBicmVhazsKKysKKysJCWNh c2Ugc3NlOgorKwkJICAvKiBUaGlzIGlzIGFuIFNTRSByZWdpc3Rlci4gICovCisrCQkgIHAgPSBG WFNBVkVfQUREUiAodGRlcCwgcmVncywgcmVnbnVtKTsKKysJCSAgaWYgKG1lbWNtcCAocmF3LCBw LCAxNikpCisrCQkgICAgeworKwkJICAgICAgeHN0YXRlX2J2IHw9IEkzODZfWFNUQVRFX1NTRTsK KysJCSAgICAgIG1lbWNweSAocCwgcmF3LCAxNik7CisrCQkgICAgfQorKwkJICBicmVhazsKKysK KysJCWNhc2UgeDg3OgorKwkJICAvKiBUaGlzIGlzIGFuIHg4NyByZWdpc3Rlci4gICovCisrCQkg IHAgPSBGWFNBVkVfQUREUiAodGRlcCwgcmVncywgcmVnbnVtKTsKKysJCSAgaWYgKG1lbWNtcCAo cmF3LCBwLCAxMCkpCisrCQkgICAgeworKwkJICAgICAgeHN0YXRlX2J2IHw9IEkzODZfWFNUQVRF X1g4NzsKKysJCSAgICAgIG1lbWNweSAocCwgcmF3LCAxMCk7CisrCQkgICAgfQorKwkJICBicmVh azsKKysJCX0KKysJICAgIH0KKysKKysJICAvKiBVcGRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgYml0 cyBpbiBgeHN0YXRlX2J2JyBpZiBhbnkgU1NFL0FWWAorKwkgICAgIHJlZ2lzdGVycyBhcmUgY2hh bmdlZC4gICovCisrCSAgaWYgKHhzdGF0ZV9idikKKysJICAgIHsKKysJICAgICAgLyogVGhlIHN1 cHBvcnRlZCBiaXRzIGluIGB4c3RhdF9idicgYXJlIDEgYnl0ZS4gICovCisrCSAgICAgICp4c3Rh dGVfYnZfcCB8PSAoZ2RiX2J5dGUpIHhzdGF0ZV9idjsKKysKKysJICAgICAgc3dpdGNoIChyZWdj bGFzcykKKysJCXsKKysJCWRlZmF1bHQ6CisrCQkgIGFib3J0ICgpOworKworKwkJY2FzZSBhbGw6 CisrCQkgIGJyZWFrOworKworKwkJY2FzZSB4ODc6CisrCQljYXNlIHNzZToKKysJCWNhc2UgYXZ4 aDoKKysJCSAgLyogUmVnaXN0ZXIgUkVHTlVNIGhhcyBiZWVuIHVwZGF0ZWQuICBSZXR1cm4uICAq LworKwkJICByZXR1cm47CisrCQl9CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgeworKwkgICAg ICAvKiBSZXR1cm4gaWYgUkVHTlVNIGlzbid0IGNoYW5nZWQuICAqLworKwkgICAgICBpZiAocmVn Y2xhc3MgIT0gYWxsKQorKwkJcmV0dXJuOworKwkgICAgfQorKwl9CisrICAgIH0KKysKKysgIC8q IE9ubHkgaGFuZGxlIHg4NyBjb250cm9sIHJlZ2lzdGVycy4gICovCisrICBmb3IgKGkgPSBJMzg3 X0ZDVFJMX1JFR05VTSAodGRlcCk7IGkgPCBJMzg3X1hNTTBfUkVHTlVNICh0ZGVwKTsgaSsrKQor KyAgICBpZiAocmVnbnVtID09IC0xIHx8IHJlZ251bSA9PSBpKQorKyAgICAgIHsKKysJLyogTW9z dCBvZiB0aGUgRlBVIGNvbnRyb2wgcmVnaXN0ZXJzIG9jY3VweSBvbmx5IDE2IGJpdHMgaW4KKysJ ICAgdGhlIHhzYXZlIGV4dGVuZGVkIHN0YXRlLiAgR2l2ZSB0aG9zZSBhIHNwZWNpYWwgdHJlYXRt ZW50LiAgKi8KKysJaWYgKGkgIT0gSTM4N19GSU9GRl9SRUdOVU0gKHRkZXApCisrCSAgICAmJiBp ICE9IEkzODdfRk9PRkZfUkVHTlVNICh0ZGVwKSkKKysJICB7CisrCSAgICBnZGJfYnl0ZSBidWZb NF07CisrCisrCSAgICByZWdjYWNoZV9yYXdfY29sbGVjdCAocmVnY2FjaGUsIGksIGJ1Zik7Cisr CisrCSAgICBpZiAoaSA9PSBJMzg3X0ZPUF9SRUdOVU0gKHRkZXApKQorKwkgICAgICB7CisrCQkv KiBUaGUgb3Bjb2RlIG9jY3VwaWVzIG9ubHkgMTEgYml0cy4gIE1ha2Ugc3VyZSB3ZQorKyAgICAg ICAgICAgICAgICAgICBkb24ndCB0b3VjaCB0aGUgb3RoZXIgYml0cy4gICovCisrCQlidWZbMV0g Jj0gKCgxIDw8IDMpIC0gMSk7CisrCQlidWZbMV0gfD0gKChGWFNBVkVfQUREUiAodGRlcCwgcmVn cywgaSkpWzFdICYgfigoMSA8PCAzKSAtIDEpKTsKKysJICAgICAgfQorKwkgICAgZWxzZSBpZiAo aSA9PSBJMzg3X0ZUQUdfUkVHTlVNICh0ZGVwKSkKKysJICAgICAgeworKwkJLyogQ29udmVydGlu ZyBiYWNrIGlzIG11Y2ggZWFzaWVyLiAgKi8KKysKKysJCXVuc2lnbmVkIHNob3J0IGZ0YWc7Cisr CQlpbnQgZnByZWc7CisrCisrCQlmdGFnID0gKGJ1ZlsxXSA8PCA4KSB8IGJ1ZlswXTsKKysJCWJ1 ZlswXSA9IDA7CisrCQlidWZbMV0gPSAwOworKworKwkJZm9yIChmcHJlZyA9IDc7IGZwcmVnID49 IDA7IGZwcmVnLS0pCisrCQkgIHsKKysJCSAgICBpbnQgdGFnID0gKGZ0YWcgPj4gKGZwcmVnICog MikpICYgMzsKKysKKysJCSAgICBpZiAodGFnICE9IDMpCisrCQkgICAgICBidWZbMF0gfD0gKDEg PDwgZnByZWcpOworKwkJICB9CisrCSAgICAgIH0KKysJICAgIG1lbWNweSAoRlhTQVZFX0FERFIg KHRkZXAsIHJlZ3MsIGkpLCBidWYsIDIpOworKwkgIH0KKysJZWxzZQorKwkgIHJlZ2NhY2hlX3Jh d19jb2xsZWN0IChyZWdjYWNoZSwgaSwgRlhTQVZFX0FERFIgKHRkZXAsIHJlZ3MsIGkpKTsKKysg ICAgICB9CisrCisrICBpZiAocmVnbnVtID09IEkzODdfTVhDU1JfUkVHTlVNICh0ZGVwKSB8fCBy ZWdudW0gPT0gLTEpCisrICAgIHJlZ2NhY2hlX3Jhd19jb2xsZWN0IChyZWdjYWNoZSwgSTM4N19N WENTUl9SRUdOVU0gKHRkZXApLAorKwkJCSAgRlhTQVZFX01YQ1NSX0FERFIgKHJlZ3MpKTsKKyt9 CisrCisgLyogUmVjcmVhdGUgdGhlIEZUVyAodGFnIHdvcmQpIHZhbGlkIGJpdHMgZnJvbSB0aGUg ODAtYml0IEZQIGRhdGEgaW4KKyAgICAqUkFXLiAgKi8KKyAKKy0tLSAuL2dkYi9pMzg3LXRkZXAu aAkyMDEwLTA0LTAzIDIwOjU5OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIC4vZ2RiL2kzODctdGRl cC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMzMsNiArMzMsOCBA QCBzdHJ1Y3QgdWlfZmlsZTsKKyAjZGVmaW5lIEkzODdfU1QwX1JFR05VTSh0ZGVwKSAoKHRkZXAp LT5zdDBfcmVnbnVtKQorICNkZWZpbmUgSTM4N19OVU1fWE1NX1JFR1ModGRlcCkgKCh0ZGVwKS0+ bnVtX3htbV9yZWdzKQorICNkZWZpbmUgSTM4N19NTTBfUkVHTlVNKHRkZXApICgodGRlcCktPm1t MF9yZWdudW0pCisrI2RlZmluZSBJMzg3X05VTV9ZTU1fUkVHUyh0ZGVwKSAoKHRkZXApLT5udW1f eW1tX3JlZ3MpCisrI2RlZmluZSBJMzg3X1lNTTBIX1JFR05VTSh0ZGVwKSAoKHRkZXApLT55bW0w aF9yZWdudW0pCisgCisgI2RlZmluZSBJMzg3X0ZDVFJMX1JFR05VTSh0ZGVwKSAoSTM4N19TVDBf UkVHTlVNICh0ZGVwKSArIDgpCisgI2RlZmluZSBJMzg3X0ZTVEFUX1JFR05VTSh0ZGVwKSAoSTM4 N19GQ1RSTF9SRUdOVU0gKHRkZXApICsgMSkKK0BAIC00NSw2ICs0Nyw4IEBAIHN0cnVjdCB1aV9m aWxlOworICNkZWZpbmUgSTM4N19YTU0wX1JFR05VTSh0ZGVwKSAoSTM4N19TVDBfUkVHTlVNICh0 ZGVwKSArIDE2KQorICNkZWZpbmUgSTM4N19NWENTUl9SRUdOVU0odGRlcCkgXAorICAgKEkzODdf WE1NMF9SRUdOVU0gKHRkZXApICsgSTM4N19OVU1fWE1NX1JFR1MgKHRkZXApKQorKyNkZWZpbmUg STM4N19ZTU1FTkRIX1JFR05VTSh0ZGVwKSBcCisrICAoSTM4N19ZTU0wSF9SRUdOVU0gKHRkZXAp ICsgSTM4N19OVU1fWU1NX1JFR1MgKHRkZXApKQorIAorIC8qIFByaW50IG91dCB0aGUgaTM4NyBm bG9hdGluZyBwb2ludCBzdGF0ZS4gICovCisgCitAQCAtOTksNiArMTAzLDExIEBAIGV4dGVybiB2 b2lkIGkzODdfY29sbGVjdF9mc2F2ZSAoY29uc3Qgc3QKKyBleHRlcm4gdm9pZCBpMzg3X3N1cHBs eV9meHNhdmUgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCisgCQkJCWNv bnN0IHZvaWQgKmZ4c2F2ZSk7CisgCisrLyogU2ltaWxhciB0byBpMzg3X3N1cHBseV9meHNhdmUs IGJ1dCB1c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK2V4dGVybiB2b2lkIGkzODdf c3VwcGx5X3hzYXZlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorKwkJ CSAgICAgICBjb25zdCB2b2lkICp4c2F2ZSk7CisrCisgLyogRmlsbCByZWdpc3RlciBSRUdOVU0g KGlmIGl0IGlzIGEgZmxvYXRpbmctcG9pbnQgb3IgU1NFIHJlZ2lzdGVyKSBpbgorICAgICpGWFNB VkUgd2l0aCB0aGUgdmFsdWUgZnJvbSBSRUdDQUNIRS4gIElmIFJFR05VTSBpcyAtMSwgZG8gdGhp cyBmb3IKKyAgICBhbGwgcmVnaXN0ZXJzLiAgVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRvdWNoIGFu eSBvZiB0aGUgcmVzZXJ2ZWQKK0BAIC0xMDcsNiArMTE2LDExIEBAIGV4dGVybiB2b2lkIGkzODdf c3VwcGx5X2Z4c2F2ZSAoc3RydWN0IHIKKyBleHRlcm4gdm9pZCBpMzg3X2NvbGxlY3RfZnhzYXZl IChjb25zdCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLAorIAkJCQkgdm9p ZCAqZnhzYXZlKTsKKyAKKysvKiBTaW1pbGFyIHRvIGkzODdfY29sbGVjdF9meHNhdmUsIGJ1dCB1 c2UgWFNBVkUgZXh0ZW5kZWQgc3RhdGUuICAqLworKworK2V4dGVybiB2b2lkIGkzODdfY29sbGVj dF94c2F2ZSAoY29uc3Qgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKKysJCQkJaW50IHJlZ251 bSwgdm9pZCAqeHNhdmUsIGludCBnY29yZSk7CisrCisgLyogUHJlcGFyZSB0aGUgRlBVIHN0YWNr IGluIFJFR0NBQ0hFIGZvciBhIGZ1bmN0aW9uIHJldHVybi4gICovCisgCisgZXh0ZXJuIHZvaWQg aTM4N19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorLS0tIC4vZ2RiL3Jl Z2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdngtbGludXguZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCisrKysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2FtZDY0LWF2eC1saW51eC5k YXQJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNzggQEAK KysjIERPIE5PVCBFRElUOiBnZW5lcmF0ZWQgZnJvbSBpMzg2L2FtZDY0LWF2eC1saW51eC54bWwK KytuYW1lOmFtZDY0X2F2eF9saW51eAorK3htbHRhcmdldDphbWQ2NC1hdngtbGludXgueG1sCisr ZXhwZWRpdGU6cmJwLHJzcCxyaXAKKys2NDpyYXgKKys2NDpyYngKKys2NDpyY3gKKys2NDpyZHgK Kys2NDpyc2kKKys2NDpyZGkKKys2NDpyYnAKKys2NDpyc3AKKys2NDpyOAorKzY0OnI5CisrNjQ6 cjEwCisrNjQ6cjExCisrNjQ6cjEyCisrNjQ6cjEzCisrNjQ6cjE0CisrNjQ6cjE1CisrNjQ6cmlw CisrMzI6ZWZsYWdzCisrMzI6Y3MKKyszMjpzcworKzMyOmRzCisrMzI6ZXMKKyszMjpmcworKzMy OmdzCisrODA6c3QwCisrODA6c3QxCisrODA6c3QyCisrODA6c3QzCisrODA6c3Q0CisrODA6c3Q1 CisrODA6c3Q2CisrODA6c3Q3CisrMzI6ZmN0cmwKKyszMjpmc3RhdAorKzMyOmZ0YWcKKyszMjpm aXNlZworKzMyOmZpb2ZmCisrMzI6Zm9zZWcKKyszMjpmb29mZgorKzMyOmZvcAorKzEyODp4bW0w CisrMTI4OnhtbTEKKysxMjg6eG1tMgorKzEyODp4bW0zCisrMTI4OnhtbTQKKysxMjg6eG1tNQor KzEyODp4bW02CisrMTI4OnhtbTcKKysxMjg6eG1tOAorKzEyODp4bW05CisrMTI4OnhtbTEwCisr MTI4OnhtbTExCisrMTI4OnhtbTEyCisrMTI4OnhtbTEzCisrMTI4OnhtbTE0CisrMTI4OnhtbTE1 CisrMzI6bXhjc3IKKys2NDpvcmlnX3JheAorKzEyODp5bW0waAorKzEyODp5bW0xaAorKzEyODp5 bW0yaAorKzEyODp5bW0zaAorKzEyODp5bW00aAorKzEyODp5bW01aAorKzEyODp5bW02aAorKzEy ODp5bW03aAorKzEyODp5bW04aAorKzEyODp5bW05aAorKzEyODp5bW0xMGgKKysxMjg6eW1tMTFo CisrMTI4OnltbTEyaAorKzEyODp5bW0xM2gKKysxMjg6eW1tMTRoCisrMTI4OnltbTE1aAorLS0t IC4vZ2RiL3JlZ2Zvcm1hdHMvaTM4Ni9hbWQ2NC1hdnguZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvcmVnZm9ybWF0cy9pMzg2L2FtZDY0LWF2eC5kYXQJ MjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNzcgQEAKKysj IERPIE5PVCBFRElUOiBnZW5lcmF0ZWQgZnJvbSBpMzg2L2FtZDY0LWF2eC54bWwKKytuYW1lOmFt ZDY0X2F2eAorK3htbHRhcmdldDphbWQ2NC1hdngueG1sCisrZXhwZWRpdGU6cmJwLHJzcCxyaXAK Kys2NDpyYXgKKys2NDpyYngKKys2NDpyY3gKKys2NDpyZHgKKys2NDpyc2kKKys2NDpyZGkKKys2 NDpyYnAKKys2NDpyc3AKKys2NDpyOAorKzY0OnI5CisrNjQ6cjEwCisrNjQ6cjExCisrNjQ6cjEy CisrNjQ6cjEzCisrNjQ6cjE0CisrNjQ6cjE1CisrNjQ6cmlwCisrMzI6ZWZsYWdzCisrMzI6Y3MK KyszMjpzcworKzMyOmRzCisrMzI6ZXMKKyszMjpmcworKzMyOmdzCisrODA6c3QwCisrODA6c3Qx CisrODA6c3QyCisrODA6c3QzCisrODA6c3Q0CisrODA6c3Q1CisrODA6c3Q2CisrODA6c3Q3Cisr MzI6ZmN0cmwKKyszMjpmc3RhdAorKzMyOmZ0YWcKKyszMjpmaXNlZworKzMyOmZpb2ZmCisrMzI6 Zm9zZWcKKyszMjpmb29mZgorKzMyOmZvcAorKzEyODp4bW0wCisrMTI4OnhtbTEKKysxMjg6eG1t MgorKzEyODp4bW0zCisrMTI4OnhtbTQKKysxMjg6eG1tNQorKzEyODp4bW02CisrMTI4OnhtbTcK KysxMjg6eG1tOAorKzEyODp4bW05CisrMTI4OnhtbTEwCisrMTI4OnhtbTExCisrMTI4OnhtbTEy CisrMTI4OnhtbTEzCisrMTI4OnhtbTE0CisrMTI4OnhtbTE1CisrMzI6bXhjc3IKKysxMjg6eW1t MGgKKysxMjg6eW1tMWgKKysxMjg6eW1tMmgKKysxMjg6eW1tM2gKKysxMjg6eW1tNGgKKysxMjg6 eW1tNWgKKysxMjg6eW1tNmgKKysxMjg6eW1tN2gKKysxMjg6eW1tOGgKKysxMjg6eW1tOWgKKysx Mjg6eW1tMTBoCisrMTI4OnltbTExaAorKzEyODp5bW0xMmgKKysxMjg6eW1tMTNoCisrMTI4Onlt bTE0aAorKzEyODp5bW0xNWgKKy0tLSAuL2dkYi9yZWdmb3JtYXRzL2kzODYvaTM4Ni1hdngtbGlu dXguZGF0CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvcmVn Zm9ybWF0cy9pMzg2L2kzODYtYXZ4LWxpbnV4LmRhdAkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAw MDAwMCArMDIwMAorQEAgLTAsMCArMSw1NCBAQAorKyMgRE8gTk9UIEVESVQ6IGdlbmVyYXRlZCBm cm9tIGkzODYvaTM4Ni1hdngtbGludXgueG1sCisrbmFtZTppMzg2X2F2eF9saW51eAorK3htbHRh cmdldDppMzg2LWF2eC1saW51eC54bWwKKytleHBlZGl0ZTplYnAsZXNwLGVpcAorKzMyOmVheAor KzMyOmVjeAorKzMyOmVkeAorKzMyOmVieAorKzMyOmVzcAorKzMyOmVicAorKzMyOmVzaQorKzMy OmVkaQorKzMyOmVpcAorKzMyOmVmbGFncworKzMyOmNzCisrMzI6c3MKKyszMjpkcworKzMyOmVz CisrMzI6ZnMKKyszMjpncworKzgwOnN0MAorKzgwOnN0MQorKzgwOnN0MgorKzgwOnN0MworKzgw OnN0NAorKzgwOnN0NQorKzgwOnN0NgorKzgwOnN0NworKzMyOmZjdHJsCisrMzI6ZnN0YXQKKysz MjpmdGFnCisrMzI6ZmlzZWcKKyszMjpmaW9mZgorKzMyOmZvc2VnCisrMzI6Zm9vZmYKKyszMjpm b3AKKysxMjg6eG1tMAorKzEyODp4bW0xCisrMTI4OnhtbTIKKysxMjg6eG1tMworKzEyODp4bW00 CisrMTI4OnhtbTUKKysxMjg6eG1tNgorKzEyODp4bW03CisrMzI6bXhjc3IKKyszMjpvcmlnX2Vh eAorKzEyODp5bW0waAorKzEyODp5bW0xaAorKzEyODp5bW0yaAorKzEyODp5bW0zaAorKzEyODp5 bW00aAorKzEyODp5bW01aAorKzEyODp5bW02aAorKzEyODp5bW03aAorLS0tIC4vZ2RiL3JlZ2Zv cm1hdHMvaTM4Ni9pMzg2LWF2eC5kYXQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrKyAuL2dkYi9yZWdmb3JtYXRzL2kzODYvaTM4Ni1hdnguZGF0CTIwMTAtMDQtMDMgMjE6 MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDUzIEBACisrIyBETyBOT1QgRURJVDog Z2VuZXJhdGVkIGZyb20gaTM4Ni9pMzg2LWF2eC54bWwKKytuYW1lOmkzODZfYXZ4CisreG1sdGFy Z2V0OmkzODYtYXZ4LnhtbAorK2V4cGVkaXRlOmVicCxlc3AsZWlwCisrMzI6ZWF4CisrMzI6ZWN4 CisrMzI6ZWR4CisrMzI6ZWJ4CisrMzI6ZXNwCisrMzI6ZWJwCisrMzI6ZXNpCisrMzI6ZWRpCisr MzI6ZWlwCisrMzI6ZWZsYWdzCisrMzI6Y3MKKyszMjpzcworKzMyOmRzCisrMzI6ZXMKKyszMjpm cworKzMyOmdzCisrODA6c3QwCisrODA6c3QxCisrODA6c3QyCisrODA6c3QzCisrODA6c3Q0Cisr ODA6c3Q1CisrODA6c3Q2CisrODA6c3Q3CisrMzI6ZmN0cmwKKyszMjpmc3RhdAorKzMyOmZ0YWcK KyszMjpmaXNlZworKzMyOmZpb2ZmCisrMzI6Zm9zZWcKKyszMjpmb29mZgorKzMyOmZvcAorKzEy ODp4bW0wCisrMTI4OnhtbTEKKysxMjg6eG1tMgorKzEyODp4bW0zCisrMTI4OnhtbTQKKysxMjg6 eG1tNQorKzEyODp4bW02CisrMTI4OnhtbTcKKyszMjpteGNzcgorKzEyODp5bW0waAorKzEyODp5 bW0xaAorKzEyODp5bW0yaAorKzEyODp5bW0zaAorKzEyODp5bW00aAorKzEyODp5bW01aAorKzEy ODp5bW02aAorKzEyODp5bW03aAorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cucHNldWRv CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZy5wc2V1ZG8JMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BA IC0wLDAgKzEsMjYgQEAKKysyMDEwLTAyLTE4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CisrCisrCSogZ2RiLmFyY2gvYW1kNjQtZHdvcmQuZXhwOiBOZXcuCisrCisrCSogZ2RiLmFy Y2gvYW1kNjQtd29yZC5leHA6IFNpbXBsaWZpZWQuCisrCisrMjAxMC0wMi0xOCAgSC5KLiBMdSAg PGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi5hcmNoL2FtZDY0LXdvcmQuZXhwOiBO ZXcuCisrCSogZ2RiLmFyY2gvaTM4Ni13b3JkLmV4cDogTGlrZXdpc2UuCisrCisrCSogZ2RiLmFy Y2gvaTM4Ni1ieXRlLmV4cCAobnJfcmVncyk6IFJlbW92ZWQuCisrCisrMjAxMC0wMi0xOCAgSC5K LiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorKworKwkqIGdkYi5hcmNoL2FtZDY0LXBzZXVk by5jOiBOZXcuCisrCSogZ2RiLmFyY2gvaTM4Ni1ieXRlLmV4cDogTGlrZXdpc2UuCisrCisrCSog Z2RiLmFyY2gvYW1kNjQtYnl0ZS5leHA6IFVwZGF0ZWQuCisrCisrCSogZ2RiLmFyY2gvaTM4Ni1w c2V1ZG8uYzogTWFrZSBpdCAzMmJpdCBvbmx5LgorKworKzIwMTAtMDItMTggIEguSi4gTHUgIDxo b25naml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIuYXJjaC9hbWQ2NC1ieXRlLmV4cDogTmV3 LgorKwkqIGdkYi5hcmNoL2kzODYtcHNldWRvLmM6IExpa2V3aXNlLgorLS0tIC4vZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cueGNyCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgLi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZy54Y3IJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAw MDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNiBAQAorKzIwMTAtMDMtMjggIEguSi4gTHUgIDxob25n aml1Lmx1QGludGVsLmNvbT4KKysKKysJKiBnZGIuYXJjaC9pMzg2LWF2eC5jOiBOZXcuCisrCSog Z2RiLmFyY2gvaTM4Ni1hdnguZXhwOiBMaWtld2lzZS4KKysKKysJKiBnZGIuYXJjaC9pMzg2LWNw dWlkLmg6IFVwZGF0ZWQgZnJvbSBnY2MgNC40LgorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cueG1sCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVz dHN1aXRlL0NoYW5nZUxvZy54bWwJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAK K0BAIC0wLDAgKzEsNCBAQAorKzIwMTAtMDItMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVs LmNvbT4KKysKKysJKiBnZGIueG1sL3RkZXNjLXJlZ3MuZXhwIChhcmNoaXRlY3R1cmUpOiBOZXcu ICBTZXQgaXQgZm9yIHg4Ni4KKysJKGxvYWRfZGVzY3JpcHRpb24pOiBTZXQgYXJjaGl0ZWN0dXJl IGlmIGRlZmluZWQuCistLS0gLi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtYXZ4LmMJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gvaTM4Ni1hdnguYwkyMDEwLTA0LTAzIDIxOjEyOjMyLjAwMDAwMDAwMCArMDIwMAorQEAg LTAsMCArMSwxMjggQEAKKysvKiBUZXN0IHByb2dyYW0gZm9yIEFWWCByZWdpc3RlcnMuCisrCisr ICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysjaW5jbHVkZSAiaTM4Ni1j cHVpZC5oIgorKworK3R5cGVkZWYgc3RydWN0IHsKKysgIGZsb2F0IGZbOF07CisrfSB2OHNmX3Q7 CisrCisrCisrdjhzZl90IGRhdGFbXSA9CisrICB7CisrICAgIHsgeyAgMC4wLCAgMC4xMjUsICAw LjI1LCAgMC4zNzUsICAwLjUwLCAgMC42MjUsICAwLjc1LCAgMC44NzUgfSB9LAorKyAgICB7IHsg IDEuMCwgIDEuMTI1LCAgMS4yNSwgIDEuMzc1LCAgMS41MCwgIDEuNjI1LCAgMS43NSwgIDEuODc1 IH0gfSwKKysgICAgeyB7ICAyLjAsICAyLjEyNSwgIDIuMjUsICAyLjM3NSwgIDIuNTAsICAyLjYy NSwgIDIuNzUsICAyLjg3NSB9IH0sCisrICAgIHsgeyAgMy4wLCAgMy4xMjUsICAzLjI1LCAgMy4z NzUsICAzLjUwLCAgMy42MjUsICAzLjc1LCAgMy44NzUgfSB9LAorKyAgICB7IHsgIDQuMCwgIDQu MTI1LCAgNC4yNSwgIDQuMzc1LCAgNC41MCwgIDQuNjI1LCAgNC43NSwgIDQuODc1IH0gfSwKKysg ICAgeyB7ICA1LjAsICA1LjEyNSwgIDUuMjUsICA1LjM3NSwgIDUuNTAsICA1LjYyNSwgIDUuNzUs ICA1Ljg3NSB9IH0sCisrICAgIHsgeyAgNi4wLCAgNi4xMjUsICA2LjI1LCAgNi4zNzUsICA2LjUw LCAgNi42MjUsICA2Ljc1LCAgNi44NzUgfSB9LAorKyAgICB7IHsgIDcuMCwgIDcuMTI1LCAgNy4y NSwgIDcuMzc1LCAgNy41MCwgIDcuNjI1LCAgNy43NSwgIDcuODc1IH0gfSwKKysjaWZkZWYgX194 ODZfNjRfXworKyAgICB7IHsgIDguMCwgIDguMTI1LCAgOC4yNSwgIDguMzc1LCAgOC41MCwgIDgu NjI1LCAgOC43NSwgIDguODc1IH0gfSwKKysgICAgeyB7ICA5LjAsICA5LjEyNSwgIDkuMjUsICA5 LjM3NSwgIDkuNTAsICA5LjYyNSwgIDkuNzUsICA5Ljg3NSB9IH0sCisrICAgIHsgeyAxMC4wLCAx MC4xMjUsIDEwLjI1LCAxMC4zNzUsIDEwLjUwLCAxMC42MjUsIDEwLjc1LCAxMC44NzUgfSB9LAor KyAgICB7IHsgMTEuMCwgMTEuMTI1LCAxMS4yNSwgMTEuMzc1LCAxMS41MCwgMTEuNjI1LCAxMS43 NSwgMTEuODc1IH0gfSwKKysgICAgeyB7IDEyLjAsIDEyLjEyNSwgMTIuMjUsIDEyLjM3NSwgMTIu NTAsIDEyLjYyNSwgMTIuNzUsIDEyLjg3NSB9IH0sCisrICAgIHsgeyAxMy4wLCAxMy4xMjUsIDEz LjI1LCAxMy4zNzUsIDEzLjUwLCAxMy42MjUsIDEzLjc1LCAxMy44NzUgfSB9LAorKyAgICB7IHsg MTQuMCwgMTQuMTI1LCAxNC4yNSwgMTQuMzc1LCAxNC41MCwgMTQuNjI1LCAxNC43NSwgMTQuODc1 IH0gfSwKKysgICAgeyB7IDE1LjAsIDE1LjEyNSwgMTUuMjUsIDE1LjM3NSwgMTUuNTAsIDE1LjYy NSwgMTUuNzUsIDE1Ljg3NSB9IH0sCisrI2VuZGlmCisrICB9OworKworKworK2ludAorK2hhdmVf YXZ4ICh2b2lkKQorK3sKKysgIHVuc2lnbmVkIGludCBlYXgsIGVieCwgZWN4LCBlZHg7CisrCisr ICBpZiAoIV9fZ2V0X2NwdWlkICgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KSkKKysgICAgcmV0 dXJuIDA7CisrCisrICBpZiAoKGVjeCAmIChiaXRfQVZYIHwgYml0X09TWFNBVkUpKSA9PSAoYml0 X0FWWCB8IGJpdF9PU1hTQVZFKSkKKysgICAgcmV0dXJuIDE7CisrICBlbHNlCisrICAgIHJldHVy biAwOworK30KKysKKytpbnQKKyttYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisreworKyAg aWYgKGhhdmVfYXZ4ICgpKQorKyAgICB7CisrICAgICAgYXNtICgidm1vdmFwcyAwKCUwKSwgJSV5 bW0wXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDMyKCUwKSwgJSV5bW0xXG5cdCIKKysgICAg ICAgICAgICJ2bW92YXBzIDY0KCUwKSwgJSV5bW0yXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBz IDk2KCUwKSwgJSV5bW0zXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDEyOCglMCksICUleW1t NFxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAxNjAoJTApLCAlJXltbTVcblx0IgorKyAgICAg ICAgICAgInZtb3ZhcHMgMTkyKCUwKSwgJSV5bW02XG5cdCIKKysgICAgICAgICAgICJ2bW92YXBz IDIyNCglMCksICUleW1tN1xuXHQiCisrICAgICAgICAgICA6IC8qIG5vIG91dHB1dCBvcGVyYW5k cyAqLworKyAgICAgICAgICAgOiAiciIgKGRhdGEpIAorKyAgICAgICAgICAgOiAieG1tMCIsICJ4 bW0xIiwgInhtbTIiLCAieG1tMyIsICJ4bW00IiwgInhtbTUiLCAieG1tNiIsICJ4bW03Iik7Cisr I2lmZGVmIF9feDg2XzY0X18KKysgICAgICBhc20gKCJ2bW92YXBzIDI1NiglMCksICUleW1tOFxu XHQiCisrICAgICAgICAgICAidm1vdmFwcyAyODgoJTApLCAlJXltbTlcblx0IgorKyAgICAgICAg ICAgInZtb3ZhcHMgMzIwKCUwKSwgJSV5bW0xMFxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAz NTIoJTApLCAlJXltbTExXG5cdCIKKysgICAgICAgICAgICJ2bW92YXBzIDM4NCglMCksICUleW1t MTJcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgNDE2KCUwKSwgJSV5bW0xM1xuXHQiCisrICAg ICAgICAgICAidm1vdmFwcyA0NDgoJTApLCAlJXltbTE0XG5cdCIKKysgICAgICAgICAgICJ2bW92 YXBzIDQ4MCglMCksICUleW1tMTVcblx0IgorKyAgICAgICAgICAgOiAvKiBubyBvdXRwdXQgb3Bl cmFuZHMgKi8KKysgICAgICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAgICAgIDogInhtbTgi LCAieG1tOSIsICJ4bW0xMCIsICJ4bW0xMSIsICJ4bW0xMiIsICJ4bW0xMyIsICJ4bW0xNCIsICJ4 bW0xNSIpOworKyNlbmRpZgorKworKyAgICAgIGFzbSAoIm5vcCIpOyAvKiBmaXJzdCBicmVha3Bv aW50IGhlcmUgKi8KKysKKysgICAgICBhc20gKAorKyAgICAgICAgICAgInZtb3ZhcHMgJSV5bW0w LCAwKCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTEsIDMyKCUwKVxuXHQiCisr ICAgICAgICAgICAidm1vdmFwcyAlJXltbTIsIDY0KCUwKVxuXHQiCisrICAgICAgICAgICAidm1v dmFwcyAlJXltbTMsIDk2KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTQsIDEy OCglMClcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgJSV5bW01LCAxNjAoJTApXG5cdCIKKysg ICAgICAgICAgICJ2bW92YXBzICUleW1tNiwgMTkyKCUwKVxuXHQiCisrICAgICAgICAgICAidm1v dmFwcyAlJXltbTcsIDIyNCglMClcblx0IgorKyAgICAgICAgICAgOiAvKiBubyBvdXRwdXQgb3Bl cmFuZHMgKi8KKysgICAgICAgICAgIDogInIiIChkYXRhKSAKKysgICAgICAgICAgIDogInhtbTAi LCAieG1tMSIsICJ4bW0yIiwgInhtbTMiLCAieG1tNCIsICJ4bW01IiwgInhtbTYiLCAieG1tNyIp OworKyNpZmRlZiBfX3g4Nl82NF9fCisrICAgICAgYXNtICgKKysgICAgICAgICAgICJ2bW92YXBz ICUleW1tOCwgMjU2KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTksIDI4OCgl MClcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgJSV5bW0xMCwgMzIwKCUwKVxuXHQiCisrICAg ICAgICAgICAidm1vdmFwcyAlJXltbTExLCAzNTIoJTApXG5cdCIKKysgICAgICAgICAgICJ2bW92 YXBzICUleW1tMTIsIDM4NCglMClcblx0IgorKyAgICAgICAgICAgInZtb3ZhcHMgJSV5bW0xMywg NDE2KCUwKVxuXHQiCisrICAgICAgICAgICAidm1vdmFwcyAlJXltbTE0LCA0NDgoJTApXG5cdCIK KysgICAgICAgICAgICJ2bW92YXBzICUleW1tMTUsIDQ4MCglMClcblx0IgorKyAgICAgICAgICAg OiAvKiBubyBvdXRwdXQgb3BlcmFuZHMgKi8KKysgICAgICAgICAgIDogInIiIChkYXRhKSAKKysg ICAgICAgICAgIDogInhtbTgiLCAieG1tOSIsICJ4bW0xMCIsICJ4bW0xMSIsICJ4bW0xMiIsICJ4 bW0xMyIsICJ4bW0xNCIsICJ4bW0xNSIpOworKyNlbmRpZgorKworKyAgICAgIHB1dHMgKCJCeWUh Iik7IC8qIHNlY29uZCBicmVha3BvaW50IGhlcmUgKi8KKysgICAgfQorKworKyAgcmV0dXJuIDA7 CisrfQorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWF2eC5leHAJMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv aTM4Ni1hdnguZXhwCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDExMCBAQAorKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgUGxlYXNlIGVtYWls IGFueSBidWdzLCBjb21tZW50cywgYW5kL29yIGFkZGl0aW9ucyB0byB0aGlzIGZpbGUgdG86Cisr IyBidWctZ2RiQGdudS5vcmcKKysKKysjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIgdGVz dHN1aXRlLgorKworK2lmICR0cmFjZWxldmVsIHsKKysgICAgc3RyYWNlICR0cmFjZWxldmVsCisr fQorKworK3NldCBwcm1zX2lkIDAKKytzZXQgYnVnX2lkIDAKKysKKytpZiB7ICFbaXN0YXJnZXQg aT84Ni0qLSpdICYmICFbaXN0YXJnZXQgeDg2XzY0LSotKiBdIH0geworKyAgICB2ZXJib3NlICJT a2lwcGluZyB4ODYgQVZYIHRlc3RzLiIKKysgICAgcmV0dXJuCisrfQorKworK3NldCB0ZXN0Zmls ZSAiaTM4Ni1hdngiCisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYworK3NldCBiaW5maWxlICR7 b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKysKKytpZiBbZ2V0X2NvbXBpbGVyX2luZm8g JHtiaW5maWxlfV0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrc2V0IGFkZGl0aW9uYWxfZmxh Z3MgIiIKKytpZiBbdGVzdF9jb21waWxlcl9pbmZvIGdjYypdIHsKKysgICAgc2V0IGFkZGl0aW9u YWxfZmxhZ3MgImFkZGl0aW9uYWxfZmxhZ3M9LW1hdngiCisrfQorKworK2lmIHsgW2dkYl9jb21w aWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRh YmxlIFtsaXN0IGRlYnVnICRhZGRpdGlvbmFsX2ZsYWdzXV0gIT0gIiIgfSB7CisrICAgIHVuc3Vw cG9ydGVkICJjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IEFWWCIKKysgICAgcmV0dXJuCisrfQor KworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8k c3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxlfQorKworK2lmICFbcnVudG9fbWFpbl0gdGhlbiB7 CisrICAgIGdkYl9zdXBwcmVzc190ZXN0cworK30KKysKKytzZW5kX2dkYiAicHJpbnQgaGF2ZV9h dnggKClcciIKKytnZGJfZXhwZWN0IHsKKysgICAgLXJlICIuLiA9IDFcclxuJGdkYl9wcm9tcHQg IiB7CisrICAgICAgICBwYXNzICJjaGVjayB3aGV0aGVyIHByb2Nlc3NvciBzdXBwb3J0cyBBVlgi CisrICAgIH0KKysgICAgLXJlICIuLiA9IDBcclxuJGdkYl9wcm9tcHQgIiB7CisrICAgICAgICB2 ZXJib3NlICJwcm9jZXNzb3IgZG9lcyBub3Qgc3VwcG9ydCBBVlg7IHNraXBwaW5nIEFWWCB0ZXN0 cyIKKysgICAgICAgIHJldHVybgorKyAgICB9CisrICAgIC1yZSAiLiokZ2RiX3Byb21wdCAkIiB7 CisrICAgICAgICBmYWlsICJjaGVjayB3aGV0aGVyIHByb2Nlc3NvciBzdXBwb3J0cyBBVlgiCisr ICAgIH0KKysgICAgdGltZW91dCB7CisrICAgICAgICBmYWlsICJjaGVjayB3aGV0aGVyIHByb2Nl c3NvciBzdXBwb3J0cyBBVlggKHRpbWVvdXQpIgorKyAgICB9CisrfQorKworK2dkYl90ZXN0ICJi cmVhayBbZ2RiX2dldF9saW5lX251bWJlciAiZmlyc3QgYnJlYWtwb2ludCBoZXJlIl0iIFwKKysg ICAgICAgICAiQnJlYWtwb2ludCAuKiBhdCAuKmkzODYtYXZ4LmMuKiIgXAorKyAgICAgICAgICJz ZXQgZmlyc3QgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJjb250aW51ZSB0byBmaXJzdCBicmVha3BvaW50IGluIG1haW4iCisrCisraWYgW2lzdGFyZ2V0 IGk/ODYtKi0qXSB7CisrICAgIHNldCBucl9yZWdzIDgKKyt9IGVsc2UgeworKyAgICBzZXQgbnJf cmVncyAxNgorK30KKysKKytmb3IgeyBzZXQgciAwIH0geyAkciA8ICRucl9yZWdzIH0geyBpbmNy IHIgfSB7CisrICAgIGdkYl90ZXN0ICJwcmludCBcJHltbSRyLnY4X2Zsb2F0IiBcCisrICAgICAg ICAiLi4gPSBcXHskciwgJHIuMTI1LCAkci4yNSwgJHIuMzc1LCAkci41LCAkci42MjUsICRyLjc1 LCAkci44NzVcXH0uKiIgXAorKyAgICAgICAgImNoZWNrIGZsb2F0IGNvbnRlbnRzIG9mICV5bW0k ciIKKysgICAgZ2RiX3Rlc3QgInByaW50IFwkeW1tJHIudjMyX2ludDgiIFwKKysgICAgICAgICIu LiA9IFxceygtP1xbMC05XF0rLCApezMxfS0/XFswLTlcXStcXH0uKiIgXAorKyAgICAgICAgImNo ZWNrIGludDggY29udGVudHMgb2YgJXltbSRyIgorK30KKysKKytmb3IgeyBzZXQgciAwIH0geyAk ciA8ICRucl9yZWdzIH0geyBpbmNyIHIgfSB7CisrICAgIGdkYl90ZXN0ICJzZXQgdmFyIFwkeW1t JHIudjhfZmxvYXRcWzBcXSA9ICRyICsgMTAiICIiICJzZXQgJXltbSRyIgorK30KKysKKytnZGJf dGVzdCAiYnJlYWsgW2dkYl9nZXRfbGluZV9udW1iZXIgInNlY29uZCBicmVha3BvaW50IGhlcmUi XSIgXAorKyAgICAgICAgICJCcmVha3BvaW50IC4qIGF0IC4qaTM4Ni1hdnguYy4qIiBcCisrICAg ICAgICAgInNldCBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJjb250aW51ZSB0byBzZWNvbmQgYnJlYWtwb2ludCBpbiBtYWluIgorKworK2Zv ciB7IHNldCByIDAgfSB7ICRyIDwgJG5yX3JlZ3MgfSB7IGluY3IgciB9IHsKKysgICAgZ2RiX3Rl c3QgInByaW50IGRhdGFcWyRyXF0iIFwKKysgICAgICAgICIuLiA9IFxce2YgPSBcXHtbZXhwciAk ciArIDEwXSwgJHIuMTI1LCAkci4yNSwgJHIuMzc1LCAkci41LCAkci42MjUsICRyLjc1LCAkci44 NzVcXH1cXH0uKiIgXAorKyAgICAgICAgImNoZWNrIGNvbnRlbnRzIG9mIGRhdGFcWyRyXF0iCisr fQorLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LWNwdWlkLmgJMjAxMC0wMS0wMSAw ODozMjowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4 Ni1jcHVpZC5oCTIwMTAtMDQtMDMgMjE6MTI6MzIuMDAwMDAwMDAwICswMjAwCitAQCAtMSwzMCAr MSwxODYgQEAKKy0vKiBIZWxwZXIgZmlsZSBmb3IgaTM4NiBwbGF0Zm9ybS4gIFJ1bnRpbWUgY2hl Y2sgZm9yIE1NWC9TU0UvU1NFMiBzdXBwb3J0LgorKy8qIEhlbHBlciBmaWxlIGZvciBpMzg2IHBs YXRmb3JtLiAgUnVudGltZSBjaGVjayBmb3IgTU1YL1NTRS9TU0UyL0FWWAorKyAqIHN1cHBvcnQu IENvcGllZCBmcm9tIGdjYyA0LjQuCisrICoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgs IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICoKKysgKiBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dAorKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZQorKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKKysgKiBsYXRlciB2ZXJzaW9uLgor KyAqIAorKyAqIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQKKysgKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgKiBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICogCisrICogVW5kZXIgU2VjdGlvbiA3IG9m IEdQTCB2ZXJzaW9uIDMsIHlvdSBhcmUgZ3JhbnRlZCBhZGRpdGlvbmFsCisrICogcGVybWlzc2lv bnMgZGVzY3JpYmVkIGluIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiwgdmVyc2lv bgorKyAqIDMuMSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24u CisrICogCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCisrICogYSBjb3B5IG9mIHRoZSBHQ0MgUnVudGltZSBM aWJyYXJ5IEV4Y2VwdGlvbiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsKKysgKiBzZWUgdGhlIGZp bGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBz ZWUKKysgKiA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrICovCisrCisrLyogJWVj eCAqLworKyNkZWZpbmUgYml0X1NTRTMJKDEgPDwgMCkKKysjZGVmaW5lIGJpdF9QQ0xNVUwJKDEg PDwgMSkKKysjZGVmaW5lIGJpdF9TU1NFMwkoMSA8PCA5KQorKyNkZWZpbmUgYml0X0ZNQQkJKDEg PDwgMTIpCisrI2RlZmluZSBiaXRfQ01QWENIRzE2QgkoMSA8PCAxMykKKysjZGVmaW5lIGJpdF9T U0U0XzEJKDEgPDwgMTkpCisrI2RlZmluZSBiaXRfU1NFNF8yCSgxIDw8IDIwKQorKyNkZWZpbmUg Yml0X01PVkJFCSgxIDw8IDIyKQorKyNkZWZpbmUgYml0X1BPUENOVAkoMSA8PCAyMykKKysjZGVm aW5lIGJpdF9BRVMJCSgxIDw8IDI1KQorKyNkZWZpbmUgYml0X1hTQVZFCSgxIDw8IDI2KQorKyNk ZWZpbmUgYml0X09TWFNBVkUJKDEgPDwgMjcpCisrI2RlZmluZSBiaXRfQVZYCQkoMSA8PCAyOCkK KysKKysvKiAlZWR4ICovCisrI2RlZmluZSBiaXRfQ01QWENIRzhCCSgxIDw8IDgpCisrI2RlZmlu ZSBiaXRfQ01PVgkoMSA8PCAxNSkKKysjZGVmaW5lIGJpdF9NTVgJCSgxIDw8IDIzKQorKyNkZWZp bmUgYml0X0ZYU0FWRQkoMSA8PCAyNCkKKysjZGVmaW5lIGJpdF9TU0UJCSgxIDw8IDI1KQorKyNk ZWZpbmUgYml0X1NTRTIJKDEgPDwgMjYpCisrCisrLyogRXh0ZW5kZWQgRmVhdHVyZXMgKi8KKysv KiAlZWN4ICovCisrI2RlZmluZSBiaXRfTEFIRl9MTQkoMSA8PCAwKQorKyNkZWZpbmUgYml0X0FC TQkJKDEgPDwgNSkKKysjZGVmaW5lIGJpdF9TU0U0YQkoMSA8PCA2KQorKyNkZWZpbmUgYml0X1hP UCAgICAgICAgICgxIDw8IDExKQorKyNkZWZpbmUgYml0X0xXUCAJKDEgPDwgMTUpCisrI2RlZmlu ZSBiaXRfRk1BNCAgICAgICAgKDEgPDwgMTYpCisrCisrLyogJWVkeCAqLworKyNkZWZpbmUgYml0 X0xNCQkoMSA8PCAyOSkKKysjZGVmaW5lIGJpdF8zRE5PV1AJKDEgPDwgMzApCisrI2RlZmluZSBi aXRfM0ROT1cJKDEgPDwgMzEpCisrCisrCisrI2lmIGRlZmluZWQoX19pMzg2X18pICYmIGRlZmlu ZWQoX19QSUNfXykKKysvKiAlZWJ4IG1heSBiZSB0aGUgUElDIHJlZ2lzdGVyLiAgKi8KKysjaWYg X19HTlVDX18gPj0gMworKyNkZWZpbmUgX19jcHVpZChsZXZlbCwgYSwgYiwgYywgZCkJCQlcCisr ICBfX2FzbV9fICgieGNoZ3tsfVx0eyUlfWVieCwgJTFcblx0IgkJCVwKKysJICAgImNwdWlkXG5c dCIJCQkJCVwKKysJICAgInhjaGd7bH1cdHslJX1lYngsICUxXG5cdCIJCQlcCisrCSAgIDogIj1h IiAoYSksICI9ciIgKGIpLCAiPWMiIChjKSwgIj1kIiAoZCkJXAorKwkgICA6ICIwIiAobGV2ZWwp KQorKworKyNkZWZpbmUgX19jcHVpZF9jb3VudChsZXZlbCwgY291bnQsIGEsIGIsIGMsIGQpCQlc CisrICBfX2FzbV9fICgieGNoZ3tsfVx0eyUlfWVieCwgJTFcblx0IgkJCVwKKysJICAgImNwdWlk XG5cdCIJCQkJCVwKKysJICAgInhjaGd7bH1cdHslJX1lYngsICUxXG5cdCIJCQlcCisrCSAgIDog Ij1hIiAoYSksICI9ciIgKGIpLCAiPWMiIChjKSwgIj1kIiAoZCkJXAorKwkgICA6ICIwIiAobGV2 ZWwpLCAiMiIgKGNvdW50KSkKKysjZWxzZQorKy8qIEhvc3QgR0NDcyBvbGRlciB0aGFuIDMuMCB3 ZXJlbid0IHN1cHBvcnRpbmcgSW50ZWwgYXNtIHN5bnRheAorKyAgIG5vciBhbHRlcm5hdGl2ZXMg aW4gaTM4NiBjb2RlLiAgKi8KKysjZGVmaW5lIF9fY3B1aWQobGV2ZWwsIGEsIGIsIGMsIGQpCQkJ XAorKyAgX19hc21fXyAoInhjaGdsXHQlJWVieCwgJTFcblx0IgkJCVwKKysJICAgImNwdWlkXG5c dCIJCQkJCVwKKysJICAgInhjaGdsXHQlJWVieCwgJTFcblx0IgkJCVwKKysJICAgOiAiPWEiIChh KSwgIj1yIiAoYiksICI9YyIgKGMpLCAiPWQiIChkKQlcCisrCSAgIDogIjAiIChsZXZlbCkpCisr CisrI2RlZmluZSBfX2NwdWlkX2NvdW50KGxldmVsLCBjb3VudCwgYSwgYiwgYywgZCkJCVwKKysg IF9fYXNtX18gKCJ4Y2hnbFx0JSVlYngsICUxXG5cdCIJCQlcCisrCSAgICJjcHVpZFxuXHQiCQkJ CQlcCisrCSAgICJ4Y2hnbFx0JSVlYngsICUxXG5cdCIJCQlcCisrCSAgIDogIj1hIiAoYSksICI9 ciIgKGIpLCAiPWMiIChjKSwgIj1kIiAoZCkJXAorKwkgICA6ICIwIiAobGV2ZWwpLCAiMiIgKGNv dW50KSkKKysjZW5kaWYKKysjZWxzZQorKyNkZWZpbmUgX19jcHVpZChsZXZlbCwgYSwgYiwgYywg ZCkJCQlcCisrICBfX2FzbV9fICgiY3B1aWRcblx0IgkJCQkJXAorKwkgICA6ICI9YSIgKGEpLCAi PWIiIChiKSwgIj1jIiAoYyksICI9ZCIgKGQpCVwKKysJICAgOiAiMCIgKGxldmVsKSkKKysKKysj ZGVmaW5lIF9fY3B1aWRfY291bnQobGV2ZWwsIGNvdW50LCBhLCBiLCBjLCBkKQkJXAorKyAgX19h c21fXyAoImNwdWlkXG5cdCIJCQkJCVwKKysJICAgOiAiPWEiIChhKSwgIj1iIiAoYiksICI9YyIg KGMpLCAiPWQiIChkKQlcCisrCSAgIDogIjAiIChsZXZlbCksICIyIiAoY291bnQpKQorKyNlbmRp ZgorKworKy8qIFJldHVybiBoaWdoZXN0IHN1cHBvcnRlZCBpbnB1dCB2YWx1ZSBmb3IgY3B1aWQg aW5zdHJ1Y3Rpb24uICBleHQgY2FuCisrICAgYmUgZWl0aGVyIDB4MCBvciAweDgwMDAwMDAgdG8g cmV0dXJuIGhpZ2hlc3Qgc3VwcG9ydGVkIHZhbHVlIGZvcgorKyAgIGJhc2ljIG9yIGV4dGVuZGVk IGNwdWlkIGluZm9ybWF0aW9uLiAgRnVuY3Rpb24gcmV0dXJucyAwIGlmIGNwdWlkCisrICAgaXMg bm90IHN1cHBvcnRlZCBvciB3aGF0ZXZlciBjcHVpZCByZXR1cm5zIGluIGVheCByZWdpc3Rlci4g IElmIHNpZworKyAgIHBvaW50ZXIgaXMgbm9uLW51bGwsIHRoZW4gZmlyc3QgZm91ciBieXRlcyBv ZiB0aGUgc2lnbmF0dXJlCisrICAgKGFzIGZvdW5kIGluIGVieCByZWdpc3RlcikgYXJlIHJldHVy bmVkIGluIGxvY2F0aW9uIHBvaW50ZWQgYnkgc2lnLiAgKi8KKysKKytzdGF0aWMgX19pbmxpbmUg dW5zaWduZWQgaW50CisrX19nZXRfY3B1aWRfbWF4ICh1bnNpZ25lZCBpbnQgX19leHQsIHVuc2ln bmVkIGludCAqX19zaWcpCisreworKyAgdW5zaWduZWQgaW50IF9fZWF4LCBfX2VieCwgX19lY3gs IF9fZWR4OworKworKyNpZm5kZWYgX194ODZfNjRfXworKyNpZiBfX0dOVUNfXyA+PSAzCisrICAv KiBTZWUgaWYgd2UgY2FuIHVzZSBjcHVpZC4gIE9uIEFNRDY0IHdlIGFsd2F5cyBjYW4uICAqLwor KyAgX19hc21fXyAoInB1c2hme2x8ZH1cblx0IgorKwkgICAicHVzaGZ7bHxkfVxuXHQiCisrCSAg ICJwb3B7bH1cdCUwXG5cdCIKKysJICAgIm1vdntsfVx0eyUwLCAlMXwlMSwgJTB9XG5cdCIKKysJ ICAgInhvcntsfVx0eyUyLCAlMHwlMCwgJTJ9XG5cdCIKKysJICAgInB1c2h7bH1cdCUwXG5cdCIK KysJICAgInBvcGZ7bHxkfVxuXHQiCisrCSAgICJwdXNoZntsfGR9XG5cdCIKKysJICAgInBvcHts fVx0JTBcblx0IgorKwkgICAicG9wZntsfGR9XG5cdCIKKysJICAgOiAiPSZyIiAoX19lYXgpLCAi PSZyIiAoX19lYngpCisrCSAgIDogImkiICgweDAwMjAwMDAwKSk7CisrI2Vsc2UKKysvKiBIb3N0 IEdDQ3Mgb2xkZXIgdGhhbiAzLjAgd2VyZW4ndCBzdXBwb3J0aW5nIEludGVsIGFzbSBzeW50YXgK KysgICBub3IgYWx0ZXJuYXRpdmVzIGluIGkzODYgY29kZS4gICovCisrICBfX2FzbV9fICgicHVz aGZsXG5cdCIKKysJICAgInB1c2hmbFxuXHQiCisrCSAgICJwb3BsXHQlMFxuXHQiCisrCSAgICJt b3ZsXHQlMCwgJTFcblx0IgorKwkgICAieG9ybFx0JTIsICUwXG5cdCIKKysJICAgInB1c2hsXHQl MFxuXHQiCisrCSAgICJwb3BmbFxuXHQiCisrCSAgICJwdXNoZmxcblx0IgorKwkgICAicG9wbFx0 JTBcblx0IgorKwkgICAicG9wZmxcblx0IgorKwkgICA6ICI9JnIiIChfX2VheCksICI9JnIiIChf X2VieCkKKysJICAgOiAiaSIgKDB4MDAyMDAwMDApKTsKKysjZW5kaWYKKyAKKy0gICBDb3B5cmln aHQgMjAwNCwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysgIGlmICghKChfX2VheCBeIF9fZWJ4KSAmIDB4MDAyMDAwMDApKQorKyAgICByZXR1 cm4gMDsKKysjZW5kaWYKKyAKKy0gICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisrICAvKiBI b3N0IHN1cHBvcnRzIGNwdWlkLiAgUmV0dXJuIGhpZ2hlc3Qgc3VwcG9ydGVkIGNwdWlkIGlucHV0 IHZhbHVlLiAgKi8KKysgIF9fY3B1aWQgKF9fZXh0LCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2Vk eCk7CisgCistICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0gICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLSAgIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCist ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgIGlmIChfX3NpZykKKysg ICAgKl9fc2lnID0gX19lYng7CisgCistICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCist ICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysgIHJldHVy biBfX2VheDsKKyt9CisgCistICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrLyog UmV0dXJuIGNwdWlkIGRhdGEgZm9yIHJlcXVlc3RlZCBjcHVpZCBsZXZlbCwgYXMgZm91bmQgaW4g cmV0dXJuZWQKKysgICBlYXgsIGVieCwgZWN4IGFuZCBlZHggcmVnaXN0ZXJzLiAgVGhlIGZ1bmN0 aW9uIGNoZWNrcyBpZiBjcHVpZCBpcworKyAgIHN1cHBvcnRlZCBhbmQgcmV0dXJucyAxIGZvciB2 YWxpZCBjcHVpZCBpbmZvcm1hdGlvbiBvciAwIGZvcgorKyAgIHVuc3VwcG9ydGVkIGNwdWlkIGxl dmVsLiAgQWxsIHBvaW50ZXJzIGFyZSByZXF1aXJlZCB0byBiZSBub24tbnVsbC4gICovCisrCisr c3RhdGljIF9faW5saW5lIGludAorK19fZ2V0X2NwdWlkICh1bnNpZ25lZCBpbnQgX19sZXZlbCwK KysJICAgICB1bnNpZ25lZCBpbnQgKl9fZWF4LCB1bnNpZ25lZCBpbnQgKl9fZWJ4LAorKwkgICAg IHVuc2lnbmVkIGludCAqX19lY3gsIHVuc2lnbmVkIGludCAqX19lZHgpCisreworKyAgdW5zaWdu ZWQgaW50IF9fZXh0ID0gX19sZXZlbCAmIDB4ODAwMDAwMDA7CisgCistLyogVXNlZCBieSAyMDAy MDUyMy0yLmMgYW5kIGkzODYtc3NlLTYuYywgYW5kIHBvc3NpYmx5IG90aGVycy4gICovCistLyog UGxhZ2FyaXplZCBmcm9tIDIwMDIwNTIzLTIuYy4gICovCistLyogUGxhZ2FyaXplZCBmcm9tIGdj Yy4gICovCisrICBpZiAoX19nZXRfY3B1aWRfbWF4IChfX2V4dCwgMCkgPCBfX2xldmVsKQorKyAg ICByZXR1cm4gMDsKKyAKKy0jZGVmaW5lIGJpdF9DTU9WICgxIDw8IDE1KQorLSNkZWZpbmUgYml0 X01NWCAoMSA8PCAyMykKKy0jZGVmaW5lIGJpdF9TU0UgKDEgPDwgMjUpCistI2RlZmluZSBiaXRf U1NFMiAoMSA8PCAyNikKKysgIF9fY3B1aWQgKF9fbGV2ZWwsICpfX2VheCwgKl9fZWJ4LCAqX19l Y3gsICpfX2VkeCk7CisrICByZXR1cm4gMTsKKyt9CisgCisgI2lmbmRlZiBOT0lOTElORQorICNk ZWZpbmUgTk9JTkxJTkUgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkKK0BAIC0zNSw0MSArMTkx LDEwIEBAIHVuc2lnbmVkIGludCBpMzg2X2NwdWlkICh2b2lkKSBOT0lOTElORTsKKyB1bnNpZ25l ZCBpbnQgTk9JTkxJTkUKKyBpMzg2X2NwdWlkICh2b2lkKQorIHsKKy0gIGludCBmbDEsIGZsMjsK Ky0KKy0jaWZuZGVmIF9feDg2XzY0X18KKy0gIC8qIFNlZSBpZiB3ZSBjYW4gdXNlIGNwdWlkLiAg T24gQU1ENjQgd2UgYWx3YXlzIGNhbi4gICovCistICBfX2FzbV9fICgicHVzaGZsOyBwdXNoZmw7 IHBvcGwgJTA7IG1vdmwgJTAsJTE7IHhvcmwgJTIsJTA7IgorLQkgICAicHVzaGwgJTA7IHBvcGZs OyBwdXNoZmw7IHBvcGwgJTA7IHBvcGZsIgorLQkgICA6ICI9JnIiIChmbDEpLCAiPSZyIiAoZmwy KQorLQkgICA6ICJpIiAoMHgwMDIwMDAwMCkpOworLSAgaWYgKCgoZmwxIF4gZmwyKSAmIDB4MDAy MDAwMDApID09IDApCistICAgIHJldHVybiAoMCk7CistI2VuZGlmCisrICB1bnNpZ25lZCBpbnQg ZWF4LCBlYngsIGVjeCwgZWR4OworIAorLSAgLyogSG9zdCBzdXBwb3J0cyBjcHVpZC4gIFNlZSBp ZiBjcHVpZCBnaXZlcyBjYXBhYmlsaXRpZXMsIHRyeQorLSAgICAgQ1BVSUQoMCkuICBQcmVzZXJ2 ZSAlZWJ4IGFuZCAlZWN4OyBjcHVpZCBpbnNuIGNsb2JiZXJzIHRoZXNlLCB3ZQorLSAgICAgZG9u J3QgbmVlZCB0aGVpciBDUFVJRCB2YWx1ZXMgaGVyZSwgYW5kICVlYnggbWF5IGJlIHRoZSBQSUMK Ky0gICAgIHJlZ2lzdGVyLiAgKi8KKy0jaWZkZWYgX194ODZfNjRfXworLSAgX19hc21fXyAoInB1 c2hxICUlcmN4OyBwdXNocSAlJXJieDsgY3B1aWQ7IHBvcHEgJSVyYng7IHBvcHEgJSVyY3giCist CSAgIDogIj1hIiAoZmwxKSA6ICIwIiAoMCkgOiAicmR4IiwgImNjIik7CistI2Vsc2UKKy0gIF9f YXNtX18gKCJwdXNobCAlJWVjeDsgcHVzaGwgJSVlYng7IGNwdWlkOyBwb3BsICUlZWJ4OyBwb3Bs ICUlZWN4IgorLQkgICA6ICI9YSIgKGZsMSkgOiAiMCIgKDApIDogImVkeCIsICJjYyIpOworLSNl bmRpZgorLSAgaWYgKGZsMSA9PSAwKQorLSAgICByZXR1cm4gKDApOworLQorLSAgLyogSW52b2tl IENQVUlEKDEpLCByZXR1cm4gJWVkeDsgY2FsbGVyIGNhbiBleGFtaW5lIGJpdHMgdG8KKy0gICAg IGRldGVybWluZSB3aGF0J3Mgc3VwcG9ydGVkLiAgKi8KKy0jaWZkZWYgX194ODZfNjRfXworLSAg X19hc21fXyAoInB1c2hxICUlcmN4OyBwdXNocSAlJXJieDsgY3B1aWQ7IHBvcHEgJSVyYng7IHBv cHEgJSVyY3giCistCSAgIDogIj1kIiAoZmwyKSwgIj1hIiAoZmwxKSA6ICIxIiAoMSkgOiAiY2Mi KTsKKy0jZWxzZQorLSAgX19hc21fXyAoInB1c2hsICUlZWN4OyBwdXNobCAlJWVieDsgY3B1aWQ7 IHBvcGwgJSVlYng7IHBvcGwgJSVlY3giCistCSAgIDogIj1kIiAoZmwyKSwgIj1hIiAoZmwxKSA6 ICIxIiAoMSkgOiAiY2MiKTsKKy0jZW5kaWYKKysgIGlmICghX19nZXRfY3B1aWQgKDEsICZlYXgs ICZlYngsICZlY3gsICZlZHgpKQorKyAgICByZXR1cm4gMDsKKyAKKy0gIHJldHVybiBmbDI7Cisr ICByZXR1cm4gZWR4OworIH0KKy0tLSAuL2luY2x1ZGUvZWxmL0NoYW5nZUxvZy54c3RhdGUJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2luY2x1ZGUvZWxmL0NoYW5n ZUxvZy54c3RhdGUJMjAxMC0wNC0wMyAyMToxMjozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAg KzEsOCBAQAorKzIwMTAtMDEtMjcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKysK KysJKiBjb21tb24uaCAoTlRfMzg2X1hTVEFURSk6IFJlbmFtZWQgdG8gLi4uCisrCShOVF9YODZf WFNUQVRFKTogVGhpcy4KKysKKysyMDEwLTAxLTI3ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRl bC5jb20+CisrCisrCSogY29tbW9uLmggKE5UXzM4Nl9YU1RBVEUpOiBOZXcuCgpkaWZmIC0tZ2l0 IGEvZ2RiLWJ6NTg5NDY3LXBpZWNlcy12bGEtY29tcGF0LnBhdGNoIGIvZ2RiLWJ6NTg5NDY3LXBp ZWNlcy12bGEtY29tcGF0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmNhNTc2MmQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1ODk0NjctcGllY2VzLXZsYS1jb21w YXQucGF0Y2gKQEAgLTAsMCArMSw1OSBAQAorMDZlMzU3ZjUzNGFiY2Y4OTEyZTRmZDU5N2RhYWU4 ZjEzODdkNjMxYworCitGaXggY29tcGF0aWJpbGl0eSB3aXRoOiBGWUk6IGZpeCBCSU5PUF9TVUJT Q1JJUFQgd2l0aCBwaWVjZWQgYXJyYXlzCisgCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDEwLTA1L21zZzAwMjgxLmh0bWwKKworMjAxMC0wNS0zMCAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiB2YWxhcml0aC5jIChiaW5vcF91 c2VyX2RlZmluZWRfcCk6IFJldHVybiAwIG9uIEFSRzEgb3IgQVJHMiBiZWluZworCVRZUEVfRFlO QU1JQy4KKwkqIHZhbHVlLmMgKGNvZXJjZV9yZWYpOiBVc2Ugb2JqZWN0X2FkZHJlc3NfZ2V0X2Rh dGEgcmVzb2x1dGlvbiBmb3IKKwlUWVBFX0RZTkFNSUMgQVJHLgorCitbIEJhY2twb3J0ZWQuICBd CisKK0luZGV4OiBnZGItNy4xL2dkYi92YWxhcml0aC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu MS5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTAtMDUtMzAgMTg6NTQ6MjguMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMS9nZGIvdmFsYXJpdGguYwkyMDEwLTA1LTMwIDE4OjU0OjQzLjAwMDAwMDAw MCArMDIwMAorQEAgLTMwOSw2ICszMDksMTAgQEAgaW50CisgYmlub3BfdXNlcl9kZWZpbmVkX3Ag KGVudW0gZXhwX29wY29kZSBvcCwKKyAJCSAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0 IHZhbHVlICphcmcyKQorIHsKKysgIC8qIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCB1c2VyIGRl ZmluZWQgb3BzIGZvciBkeW5hbWljIHR5cGVzLiAgKi8KKysgIGlmIChUWVBFX0RZTkFNSUMgKHZh bHVlX3R5cGUgKGFyZzEpKSB8fCBUWVBFX0RZTkFNSUMgKHZhbHVlX3R5cGUgKGFyZzIpKSkKKysg ICAgcmV0dXJuIDA7CisrCisgICByZXR1cm4gYmlub3BfdHlwZXNfdXNlcl9kZWZpbmVkX3AgKG9w LCB2YWx1ZV90eXBlIChhcmcxKSwgdmFsdWVfdHlwZSAoYXJnMikpOworIH0KKyAKK0luZGV4OiBn ZGItNy4xL2dkYi92YWx1ZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi92YWx1 ZS5jCTIwMTAtMDUtMzAgMTg6NTQ6MzYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIv dmFsdWUuYwkyMDEwLTA1LTMwIDE4OjU1OjUyLjAwMDAwMDAwMCArMDIwMAorQEAgLTI0MDAsNyAr MjQwMCwyNCBAQCB2YWx1ZV9mcm9tX2RlY2Zsb2F0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgCisgc3Ry dWN0IHZhbHVlICoKKyBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykKKyB7CistICBzdHJ1 Y3QgdHlwZSAqdmFsdWVfdHlwZV9hcmdfdG1wID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJnKSk7CisrICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZV9hcmdfdG1wOworKworKyAgaWYgKFRZ UEVfRFlOQU1JQyAodmFsdWVfdHlwZSAoYXJnKSkpCisrICAgIHsKKysgICAgICBzdHJ1Y3QgY2xl YW51cCAqY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7CisrICAg ICAgQ09SRV9BRERSIGFkZHJlc3M7CisrCisrICAgICAgdmFsdWVfdHlwZV9hcmdfdG1wID0gdmFs dWVfdHlwZSAoYXJnKTsKKysgICAgICBhZGRyZXNzID0gdmFsdWVfcmF3X2FkZHJlc3MgKGFyZyk7 CisrICAgICAgaWYgKCEgb2JqZWN0X2FkZHJlc3NfZ2V0X2RhdGEgKHZhbHVlX3R5cGVfYXJnX3Rt cCwgJmFkZHJlc3MpKQorKwllcnJvciAoXygiQXR0ZW1wdCB0byBjb2VyY2Ugbm9uLXZhbGlkIHZh bHVlLiIpKTsKKysgICAgICBDSEVDS19UWVBFREVGICh2YWx1ZV90eXBlX2FyZ190bXApOworKyAg ICAgIGFyZyA9IHZhbHVlX2F0X2xhenkgKHZhbHVlX3R5cGVfYXJnX3RtcCwgYWRkcmVzcyk7Cisr ICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKKysgICAgfQorKyAgZWxzZQorKyAgICB2YWx1 ZV90eXBlX2FyZ190bXAgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKKysKKyAg IGlmIChUWVBFX0NPREUgKHZhbHVlX3R5cGVfYXJnX3RtcCkgPT0gVFlQRV9DT0RFX1JFRikKKyAg ICAgYXJnID0gdmFsdWVfYXRfbGF6eSAoVFlQRV9UQVJHRVRfVFlQRSAodmFsdWVfdHlwZV9hcmdf dG1wKSwKKyAJCQkgdW5wYWNrX3BvaW50ZXIgKHZhbHVlX3R5cGUgKGFyZyksCQkKCmRpZmYgLS1n aXQgYS9nZGItYno1ODk0NjctcGllY2VzMDFvZjQucGF0Y2ggYi9nZGItYno1ODk0NjctcGllY2Vz MDFvZjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3N2QxOQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU4OTQ2Ny1waWVjZXMwMW9mNC5wYXRjaApAQCAtMCww ICsxLDgwIEBACitjb21taXQgOTZjMjNiZmQyODYzYmNjYTczODg2NTNhN2JjNGM5ZjhhNjRhMDNi ZQorQXV0aG9yOiBVbHJpY2ggV2VpZ2FuZCA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KK0RhdGU6ICAg RnJpIEZlYiAyNiAxMjo0ODoxNyAyMDEwICswMDAwCisKKyAgICAJKiBkd2FyZjJsb2MuYyAoc3Ry dWN0IHBpZWNlX2Nsb3N1cmUpOiBSZW1vdmUgQVJDSCBtZW1iZXIsCisgICAgCWFkZCBBRERSX1NJ WkUgbWVtYmVyLgorICAgIAkoYWxsb2NhdGVfcGllY2VfY2xvc3VyZSk6IFVwZGF0ZS4KKyAgICAJ KGNvcHlfcGllY2VkX3ZhbHVlX2Nsb3N1cmUpOiBMaWtld2lzZS4KKyAgICAJKGR3YXJmMl9ldmFs dWF0ZV9sb2NfZGVzYyk6IExpa2V3aXNlLgorICAgIAkocmVhZF9waWVjZWRfdmFsdWUpOiBVc2Ug RFdBUkYgYWRkcmVzcyBzaXplIGluc3RlYWQgb2YKKyAgICAJR0RCJ3MgZ2RiYXJjaF9hZGRyX2Jp dCBhcyBzaXplIG9mIHZhbHVlcyBvbiB0aGUgRFdBUkYgc3RhY2suCisKK2RpZmYgLS1naXQgYS9n ZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKK2luZGV4IDFjNGQwNTcuLjIwZWRlM2Ug MTAwNjQ0CistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAg LTIzMiw4ICsyMzIsOCBAQCBzdHJ1Y3QgcGllY2VfY2xvc3VyZQorICAgLyogVGhlIG51bWJlciBv ZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxlLiAgKi8KKyAgIGludCBuX3Bp ZWNlczsKKyAKKy0gIC8qIFRoZSBhcmNoaXRlY3R1cmUsIHVzZWQgb25seSBmb3IgRFdBUkZfVkFM VUVfU1RBQ0suICAqLworLSAgc3RydWN0IGdkYmFyY2ggKmFyY2g7CisrICAvKiBUaGUgdGFyZ2V0 IGFkZHJlc3Mgc2l6ZSwgdXNlZCBvbmx5IGZvciBEV0FSRl9WQUxVRV9TVEFDSy4gICovCisrICBp bnQgYWRkcl9zaXplOworIAorICAgLyogVGhlIHBpZWNlcyB0aGVtc2VsdmVzLiAgKi8KKyAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZXM7CitAQCAtMjQ0LDEyICsyNDQsMTIgQEAgc3Ry dWN0IHBpZWNlX2Nsb3N1cmUKKyAKKyBzdGF0aWMgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKgorIGFs bG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGludCBuX3BpZWNlcywgc3RydWN0IGR3YXJmX2V4cHJfcGll Y2UgKnBpZWNlcywKKy0JCQlzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCkKKysJCQlpbnQgYWRkcl9zaXpl KQorIHsKKyAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjID0gWFpBTExPQyAoc3RydWN0IHBpZWNl X2Nsb3N1cmUpOworIAorICAgYy0+bl9waWVjZXMgPSBuX3BpZWNlczsKKy0gIGMtPmFyY2ggPSBh cmNoOworKyAgYy0+YWRkcl9zaXplID0gYWRkcl9zaXplOworICAgYy0+cGllY2VzID0gWENBTExP QyAobl9waWVjZXMsIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlKTsKKyAKKyAgIG1lbWNweSAoYy0+ cGllY2VzLCBwaWVjZXMsIG5fcGllY2VzICogc2l6ZW9mIChzdHJ1Y3QgZHdhcmZfZXhwcl9waWVj ZSkpOworQEAgLTI5OCwxMyArMjk4LDEyIEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnYpCisgCisgCWNhc2UgRFdBUkZfVkFMVUVfU1RBQ0s6CisgCSAgeworLQkgICAgc2l6ZV90 IG47CistCSAgICBpbnQgYWRkcl9zaXplID0gZ2RiYXJjaF9hZGRyX2JpdCAoYy0+YXJjaCkgLyA4 OworLQkgICAgbiA9IHAtPnNpemU7CistCSAgICBpZiAobiA+IGFkZHJfc2l6ZSkKKy0JICAgICAg biA9IGFkZHJfc2l6ZTsKKysJICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVf YXJjaCAodmFsdWVfdHlwZSAodikpOworKwkgICAgc2l6ZV90IG4gPSBwLT5zaXplOworKwkgICAg aWYgKG4gPiBjLT5hZGRyX3NpemUpCisrCSAgICAgIG4gPSBjLT5hZGRyX3NpemU7CisgCSAgICBz dG9yZV91bnNpZ25lZF9pbnRlZ2VyIChjb250ZW50cyArIG9mZnNldCwgbiwKKy0JCQkJICAgIGdk YmFyY2hfYnl0ZV9vcmRlciAoYy0+YXJjaCksCisrCQkJCSAgICBnZGJhcmNoX2J5dGVfb3JkZXIg KGdkYmFyY2gpLAorIAkJCQkgICAgcC0+di5leHByLnZhbHVlKTsKKyAJICB9CisgCSAgYnJlYWs7 CitAQCAtMzc3LDcgKzM3Niw3IEBAIGNvcHlfcGllY2VkX3ZhbHVlX2Nsb3N1cmUgKHN0cnVjdCB2 YWx1ZSAqdikKKyB7CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgcGllY2Vf Y2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKKyAgIAorLSAgcmV0dXJuIGFs bG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGMtPm5fcGllY2VzLCBjLT5waWVjZXMsIGMtPmFyY2gpOwor KyAgcmV0dXJuIGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGMtPm5fcGllY2VzLCBjLT5waWVjZXMs IGMtPmFkZHJfc2l6ZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNDM5LDcgKzQzOCw4IEBA IGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJh bWVfaW5mbyAqZnJhbWUsCisgICAgICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmM7CisgICAgICAg c3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmcmFtZSk7CisgCistICAg ICAgYyA9IGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGN0eC0+bnVtX3BpZWNlcywgY3R4LT5waWVj ZXMsIGN0eC0+Z2RiYXJjaCk7CisrICAgICAgYyA9IGFsbG9jYXRlX3BpZWNlX2Nsb3N1cmUgKGN0 eC0+bnVtX3BpZWNlcywgY3R4LT5waWVjZXMsCisrCQkJCSAgY3R4LT5hZGRyX3NpemUpOworICAg ICAgIHJldHZhbCA9IGFsbG9jYXRlX2NvbXB1dGVkX3ZhbHVlICh0eXBlLCAmcGllY2VkX3ZhbHVl X2Z1bmNzLCBjKTsKKyAgICAgICBWQUxVRV9GUkFNRV9JRCAocmV0dmFsKSA9IGZyYW1lX2lkOwor ICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTg5NDY3LXBpZWNlczAyb2Y0LnBhdGNoIGIvZ2Ri LWJ6NTg5NDY3LXBpZWNlczAyb2Y0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmY5OTg2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1ODk0NjctcGllY2VzMDJv ZjQucGF0Y2gKQEAgLTAsMCArMSw2OCBAQAorY29tbWl0IDYwZDE1ZmY2ZDc4OTIxZDA4MGFlZTY4 MWU2MDM3MmFiZTY2Mjc1NzAKK0F1dGhvcjogbWdyZXR0b24gPG1ncmV0dG9uPgorRGF0ZTogICBU dWUgTWF5IDQgMDk6NTQ6MTcgMjAxMCArMDAwMAorCisgICAgCSogZ2RiL2R3YXJmMmxvYy5jIChy ZWFkX3BpZWNlZF92YWx1ZSwgd3JpdGVfcGllY2VkX3ZhbHVlLAorICAgIAlkd2FyZjJfZXZhbHVh dGVfbG9jX2Rlc2MpOiBIYW5kbGUgbm90IGJlaW5nIGFibGUgdG8gYWNjZXNzIERXQVJGCisgICAg CXJlZ2lzdGVycyBncmFjZWZ1bGx5LgorCitJbmRleDogZ2RiLTcuMS9nZGIvZHdhcmYybG9jLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTAtMDUtMjUg MjE6MzU6MTAuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZHdhcmYybG9jLmMJMjAx MC0wNS0yNSAyMTozNzozMi4wMDAwMDAwMDAgKzAyMDAKK0BAIC00NTgsOCArNDU4LDE2IEBAIHJl YWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgICAgIC8qIEJpZy1lbmRpYW4s IGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLworIAkgICAgICByZWdfb2Zmc2V0 ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkgLSBwLT5zaXplOworIAorLQkgICAg Z2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVnX29mZnNldCwg cC0+c2l6ZSwKKy0JCQkJICAgICAgY29udGVudHMgKyBvZmZzZXQpOworKwkgICAgaWYgKGdkYl9y ZWdudW0gIT0gLTEpCisrCSAgICAgIHsKKysJCWdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJh bWUsIGdkYl9yZWdudW0sIHJlZ19vZmZzZXQsIAorKwkJCQkJICBwLT5zaXplLCBjb250ZW50cyAr IG9mZnNldCk7CisrCSAgICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgeworKwkJZXJyb3IgKF8o IlVuYWJsZSB0byBhY2Nlc3MgRFdBUkYgcmVnaXN0ZXIgbnVtYmVyICVzIiksCisrCQkgICAgICAg cGFkZHJlc3MgKGFyY2gsIHAtPnYuZXhwci52YWx1ZSkpOworKwkgICAgICB9CisgCSAgfQorIAkg IGJyZWFrOworIAorQEAgLTUzMSw4ICs1MzksMTYgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1 Y3QgdmFsdWUgKnRvLCBzdAorIAkgICAgICAvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNz IHRoYW4gZnVsbCBzaXplLiAgKi8KKyAJICAgICAgcmVnX29mZnNldCA9IHJlZ2lzdGVyX3NpemUg KGFyY2gsIGdkYl9yZWdudW0pIC0gcC0+c2l6ZTsKKyAKKy0JICAgIHB1dF9mcmFtZV9yZWdpc3Rl cl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sIHJlZ19vZmZzZXQsIHAtPnNpemUsCistCQkJCSAg ICAgIGNvbnRlbnRzICsgb2Zmc2V0KTsKKysJICAgIGlmIChnZGJfcmVnbnVtICE9IC0xKQorKwkg ICAgICB7CisrCQlwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVtLCBy ZWdfb2Zmc2V0LCAKKysJCQkJCSAgcC0+c2l6ZSwgY29udGVudHMgKyBvZmZzZXQpOworKwkgICAg ICB9CisrCSAgICBlbHNlCisrCSAgICAgIHsKKysJCWVycm9yIChfKCJVbmFibGUgdG8gd3JpdGUg dG8gRFdBUkYgcmVnaXN0ZXIgbnVtYmVyICVzIiksCisrCQkgICAgICAgcGFkZHJlc3MgKGFyY2gs IHAtPnYuZXhwci52YWx1ZSkpOworKwkgICAgICB9CisgCSAgfQorIAkgIGJyZWFrOworIAljYXNl IERXQVJGX1ZBTFVFX01FTU9SWToKK0BAIC02MTEsNyArNjI3LDE2IEBAIGR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzYyAoc3RydWN0IHR5cGUgKnQKKyAJICAgIHN0cnVjdCBnZGJhcmNoICphcmNoID0g Z2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKKyAJICAgIENPUkVfQUREUiBkd2FyZl9yZWdudW0gPSBk d2FyZl9leHByX2ZldGNoIChjdHgsIDApOworIAkgICAgaW50IGdkYl9yZWdudW0gPSBnZGJhcmNo X2R3YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLCBkd2FyZl9yZWdudW0pOworLQkgICAgcmV0dmFs ID0gdmFsdWVfZnJvbV9yZWdpc3RlciAodHlwZSwgZ2RiX3JlZ251bSwgZnJhbWUpOworKwkgICAg aWYgKGdkYl9yZWdudW0gIT0gLTEpCisrCSAgICAgIHsKKysJCXJldHZhbCA9IHZhbHVlX2Zyb21f cmVnaXN0ZXIgKHR5cGUsCisrCQkJCQkgICAgICBnZGJfcmVnbnVtLCBmcmFtZSk7CisrCSAgICAg IH0KKysJICAgIGVsc2UKKysJICAgICAgeworKwkJZXJyb3IgKF8oIlVuYWJsZSB0byBhY2Nlc3Mg RFdBUkYgcmVnaXN0ZXIgbnVtYmVyICVzIiksCisrCQkgICAgICAgcGFkZHJlc3MgKGFyY2gsIGR3 YXJmX3JlZ251bSkpOworKwkgICAgICB9CisgCSAgfQorIAkgIGJyZWFrOworIAoKZGlmZiAtLWdp dCBhL2dkYi1iejU4OTQ2Ny1waWVjZXMwM29mNC5wYXRjaCBiL2dkYi1iejU4OTQ2Ny1waWVjZXMw M29mNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZmM3M2Y5Ci0t LSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTg5NDY3LXBpZWNlczAzb2Y0LnBhdGNoCkBAIC0wLDAg KzEsOTkgQEAKK2NvbW1pdCBkYWNkNjZhNTNiNTU5YmU5YzI2ZDJjNTIzZjE2OGYxZWYwMjYxZjRk CitBdXRob3I6IE1pY2hhZWwgU255ZGVyIDxtc255ZGVyQHNwZWNpZml4LmNvbT4KK0RhdGU6ICAg RnJpIE1heSAxNCAxNzo1MzoxMSAyMDEwICswMDAwCisKKyAgICAyMDEwLTA1LTE0ICBNaWNoYWVs IFNueWRlciAgPG1zbnlkZXJAdm13YXJlLmNvbT4KKyAgICAKKyAgICAJKiBkYnhyZWFkLmM6IFdo aXRlIHNwYWNlLgorICAgIAkqIGRjYWNoZS5jOiBXaGl0ZSBzcGFjZS4KKyAgICAJKiBkaXNhc20u YzogV2hpdGUgc3BhY2UuCisgICAgCSogZG91Ymxlc3QuYzogV2hpdGUgc3BhY2UuCisgICAgCSog ZHNyZWMuYzogV2hpdGUgc3BhY2UuCisgICAgCSogZHVtbXktZnJhbWUuYzogV2hpdGUgc3BhY2Uu CisgICAgCSogZHdhcmYyZXhwci5jOiBXaGl0ZSBzcGFjZS4KKyAgICAJKiBkd2FyZjItZnJhbWUu YzogV2hpdGUgc3BhY2UuCisgICAgCSogZHdhcmYybG9jLmM6IFdoaXRlIHNwYWNlLgorICAgIAkq IGR3YXJmMnJlYWQuYzogV2hpdGUgc3BhY2UuCisKKy0tLSBnZGItNy4xL2dkYi9kd2FyZjJsb2Mu Yy5vcmlnCTIwMTAtMDUtMjUgMjM6MDY6NDYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9n ZGIvZHdhcmYybG9jLmMJMjAxMC0wNS0yNSAyMzowNjo0Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0y MzYsNiArMjM2LDcgQEAgc3RhdGljIENPUkVfQUREUgorIGR3YXJmX2V4cHJfZnJhbWVfY2ZhICh2 b2lkICpiYXRvbikKKyB7CisgICBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbiAqZGViYXRvbiA9IChz dHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbiAqKSBiYXRvbjsKKysKKyAgIHJldHVybiBkd2FyZjJfZnJh bWVfY2ZhIChkZWJhdG9uLT5mcmFtZSk7CisgfQorIAorQEAgLTQ0NCw2ICs0NDUsNyBAQCByZWFk X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorICAgZm9yIChpID0gMDsgaSA8IGMtPm5f cGllY2VzOyBpKyspCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9 ICZjLT5waWVjZXNbaV07CisrCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlvbikKKyAJeworIAlj YXNlIERXQVJGX1ZBTFVFX1JFR0lTVEVSOgorQEAgLTQ4Miw2ICs0ODQsNyBAQCByZWFkX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgIHsKKyAJICAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodmFsdWVfdHlwZSAodikpOworIAkgICAgc2l6ZV90IG4g PSBwLT5zaXplOworKworIAkgICAgaWYgKG4gPiBjLT5hZGRyX3NpemUpCisgCSAgICAgIG4gPSBj LT5hZGRyX3NpemU7CisgCSAgICBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChjb250ZW50cyArIG9m ZnNldCwgbiwKK0BAIC00OTMsNiArNDk2LDcgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2 YWx1ZSAqdikKKyAJY2FzZSBEV0FSRl9WQUxVRV9MSVRFUkFMOgorIAkgIHsKKyAJICAgIHNpemVf dCBuID0gcC0+c2l6ZTsKKysKKyAJICAgIGlmIChuID4gcC0+di5saXRlcmFsLmxlbmd0aCkKKyAJ ICAgICAgbiA9IHAtPnYubGl0ZXJhbC5sZW5ndGg7CisgCSAgICBtZW1jcHkgKGNvbnRlbnRzICsg b2Zmc2V0LCBwLT52LmxpdGVyYWwuZGF0YSwgbik7CitAQCAtNTI1LDYgKzUyOSw3IEBAIHdyaXRl X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKKyAgIGZvciAoaSA9IDA7IGkgPCBj LT5uX3BpZWNlczsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2Ug KnAgPSAmYy0+cGllY2VzW2ldOworKworICAgICAgIHN3aXRjaCAocC0+bG9jYXRpb24pCisgCXsK KyAJY2FzZSBEV0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC03MTIsNiArNzE3LDcgQEAgc3RhdGlj IENPUkVfQUREUgorIG5lZWRzX2ZyYW1lX3JlYWRfcmVnICh2b2lkICpiYXRvbiwgaW50IHJlZ251 bSkKKyB7CisgICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gKm5mX2JhdG9uID0gYmF0b247Cisr CisgICBuZl9iYXRvbi0+bmVlZHNfZnJhbWUgPSAxOworICAgcmV0dXJuIDE7CisgfQorQEAgLTc0 Miw2ICs3NDgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCisgbmVlZHNfZnJhbWVfZnJhbWVfY2ZhICh2 b2lkICpiYXRvbikKKyB7CisgICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gKm5mX2JhdG9uID0g YmF0b247CisrCisgICBuZl9iYXRvbi0+bmVlZHNfZnJhbWUgPSAxOworICAgcmV0dXJuIDE7Cisg fQorQEAgLTc1MSw2ICs3NTgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCisgbmVlZHNfZnJhbWVfdGxz X2FkZHJlc3MgKHZvaWQgKmJhdG9uLCBDT1JFX0FERFIgb2Zmc2V0KQorIHsKKyAgIHN0cnVjdCBu ZWVkc19mcmFtZV9iYXRvbiAqbmZfYmF0b24gPSBiYXRvbjsKKysKKyAgIG5mX2JhdG9uLT5uZWVk c19mcmFtZSA9IDE7CisgICByZXR1cm4gMTsKKyB9CitAQCAtOTA3LDYgKzkxNSw3IEBAIGxvY2V4 cHJfcmVhZF92YXJpYWJsZSAoc3RydWN0IHN5bWJvbCAqc3kKKyB7CisgICBzdHJ1Y3QgZHdhcmYy X2xvY2V4cHJfYmF0b24gKmRsYmF0b24gPSBTWU1CT0xfTE9DQVRJT05fQkFUT04gKHN5bWJvbCk7 CisgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKKysKKyAgIHZhbCA9IGR3YXJmMl9ldmFsdWF0ZV9sb2Nf ZGVzYyAoU1lNQk9MX1RZUEUgKHN5bWJvbCksIGZyYW1lLCBkbGJhdG9uLT5kYXRhLAorIAkJCQkg IGRsYmF0b24tPnNpemUsIGRsYmF0b24tPnBlcl9jdSk7CisgCitAQCAtOTE4LDYgKzkyNyw3IEBA IHN0YXRpYyBpbnQKKyBsb2NleHByX3JlYWRfbmVlZHNfZnJhbWUgKHN0cnVjdCBzeW1ib2wgKnN5 bWJvbCkKKyB7CisgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24gPSBTWU1C T0xfTE9DQVRJT05fQkFUT04gKHN5bWJvbCk7CisrCisgICByZXR1cm4gZHdhcmYyX2xvY19kZXNj X25lZWRzX2ZyYW1lIChkbGJhdG9uLT5kYXRhLCBkbGJhdG9uLT5zaXplLAorIAkJCQkgICAgICBk bGJhdG9uLT5wZXJfY3UpOworIH0KCmRpZmYgLS1naXQgYS9nZGItYno1ODk0NjctcGllY2VzMW9m NC5wYXRjaCBiL2dkYi1iejU4OTQ2Ny1waWVjZXMxb2Y0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjUyMTYzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1ODk0 NjctcGllY2VzMW9mNC5wYXRjaApAQCAtMCwwICsxLDIwNzUgQEAKK2h0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAxODYuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFu Z2VMb2cJMjAxMC8wNS8yMSAyMDozNDo0NQkxLjExODI4CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJ MjAxMC8wNS8yMSAyMDozOTo1MAkxLjExODI5CisjIyAtMSwzICsxLDkgQEAKKysyMDEwLTA1LTIx ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSogZHdhcmYybG9jLmMgKHJl YWRfcGllY2VkX3ZhbHVlKTogV29yayBwcm9wZXJseSB3aGVuICd2JyBoYXMgYW4KKysJb2Zmc2V0 LgorKwkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCisrCisjIyMgc3JjL2dkYi90ZXN0 c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjAgMTk6MTg6NTcJMS4yMjcyCisjIyMgc3JjL2dkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjA6Mzk6NTAJMS4yMjczCisjIyAtMSwzICsx LDkgQEAKKysyMDEwLTA1LTIxICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisr CSogZ2RiLmR3YXJmMi5waWVjZXMuZXhwOiBOZXcgZmlsZS4KKysJKiBnZGIuZHdhcmYyLnBpZWNl cy5TOiBOZXcgZmlsZS4KKysJKiBnZGIuZHdhcmYyLnBpZWNlcy5jOiBOZXcgZmlsZS4KKysKKy0t LSBzcmMvZ2RiL2R3YXJmMmxvYy5jCTIwMTAvMDUvMTQgMTc6NTM6MTYJMS43OAorKysrIHNyYy9n ZGIvZHdhcmYybG9jLmMJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjc5CitAQCAtMjY0LDE0ICsyNjQs NDYgQEAKKyB7CisgICBpbnQgaTsKKyAgIGxvbmcgb2Zmc2V0ID0gMDsKKysgIFVMT05HRVNUIGJ5 dGVzX3RvX3NraXA7CisgICBnZGJfYnl0ZSAqY29udGVudHM7CisgICBzdHJ1Y3QgcGllY2VfY2xv c3VyZSAqYyA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJl ICh2KTsKKyAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSA9IGZyYW1lX2ZpbmRfYnlfaWQgKFZB TFVFX0ZSQU1FX0lEICh2KSk7CisrICBzaXplX3QgdHlwZV9sZW47CisrCisrICBpZiAodmFsdWVf dHlwZSAodikgIT0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHYpKQorKyAgICBpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLAorKwkJICAgIF8oIlNob3VsZCBub3QgYmUgYWJsZSB0byBj cmVhdGUgYSBsYXp5IHZhbHVlIHdpdGggIgorKwkJICAgICAgImFuIGVuY2xvc2luZyB0eXBlIikp OworIAorICAgY29udGVudHMgPSB2YWx1ZV9jb250ZW50c19yYXcgKHYpOworLSAgZm9yIChpID0g MDsgaSA8IGMtPm5fcGllY2VzOyBpKyspCisrICBieXRlc190b19za2lwID0gdmFsdWVfb2Zmc2V0 ICh2KTsKKysgIHR5cGVfbGVuID0gVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHYpKTsKKysgIGZv ciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQorICAg ICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwor KyAgICAgIHNpemVfdCB0aGlzX3NpemU7CisrICAgICAgbG9uZyBkZXN0X29mZnNldCwgc291cmNl X29mZnNldDsKKysKKysgICAgICBpZiAoYnl0ZXNfdG9fc2tpcCA+IDAgJiYgYnl0ZXNfdG9fc2tp cCA+PSBwLT5zaXplKQorKwl7CisrCSAgYnl0ZXNfdG9fc2tpcCAtPSBwLT5zaXplOworKwkgIGNv bnRpbnVlOworKwl9CisrICAgICAgdGhpc19zaXplID0gcC0+c2l6ZTsKKysgICAgICBpZiAodGhp c19zaXplID4gdHlwZV9sZW4gLSBvZmZzZXQpCisrCXRoaXNfc2l6ZSA9IHR5cGVfbGVuIC0gb2Zm c2V0OworKyAgICAgIGlmIChieXRlc190b19za2lwID4gMCkKKysJeworKwkgIGRlc3Rfb2Zmc2V0 ID0gMDsKKysJICBzb3VyY2Vfb2Zmc2V0ID0gYnl0ZXNfdG9fc2tpcDsKKysJICB0aGlzX3NpemUg LT0gYnl0ZXNfdG9fc2tpcDsKKysJICBieXRlc190b19za2lwID0gMDsKKysJfQorKyAgICAgIGVs c2UKKysJeworKwkgIGRlc3Rfb2Zmc2V0ID0gb2Zmc2V0OworKwkgIHNvdXJjZV9vZmZzZXQgPSAw OworKwl9CisgCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlvbikKKyAJeworQEAgLTI4MCwxNyAr MzEyLDE3IEBACisgCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGdldF9mcmFtZV9hcmNoIChm cmFtZSk7CisgCSAgICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdu dW0gKGFyY2gsCisgCQkJCQkJCSAgIHAtPnYuZXhwci52YWx1ZSk7CistCSAgICBpbnQgcmVnX29m ZnNldCA9IDA7CisrCSAgICBpbnQgcmVnX29mZnNldCA9IHNvdXJjZV9vZmZzZXQ7CisgCisgCSAg ICBpZiAoZ2RiYXJjaF9ieXRlX29yZGVyIChhcmNoKSA9PSBCRkRfRU5ESUFOX0JJRworLQkJJiYg cC0+c2l6ZSA8IHJlZ2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pKQorKwkJJiYgdGhpc19z aXplIDwgcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkpCisgCSAgICAgIC8qIEJpZy1l bmRpYW4sIGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLworLQkgICAgICByZWdf b2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkgLSBwLT5zaXplOworKwkg ICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkgLSB0aGlz X3NpemU7CisgCisgCSAgICBpZiAoZ2RiX3JlZ251bSAhPSAtMSkKKyAJICAgICAgeworIAkJZ2V0 X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVnX29mZnNldCwgCist CQkJCQkgIHAtPnNpemUsIGNvbnRlbnRzICsgb2Zmc2V0KTsKKysJCQkJCSAgdGhpc19zaXplLCBj b250ZW50cyArIGRlc3Rfb2Zmc2V0KTsKKyAJICAgICAgfQorIAkgICAgZWxzZQorIAkgICAgICB7 CitAQCAtMzAyLDM4ICszMzQsNjAgQEAKKyAKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6Cisg CSAgaWYgKHAtPnYuZXhwci5pbl9zdGFja19tZW1vcnkpCistCSAgICByZWFkX3N0YWNrIChwLT52 LmV4cHIudmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKysJICAgIHJlYWRfc3Rh Y2sgKHAtPnYuZXhwci52YWx1ZSArIHNvdXJjZV9vZmZzZXQsCisrCQkJY29udGVudHMgKyBkZXN0 X29mZnNldCwgdGhpc19zaXplKTsKKyAJICBlbHNlCistCSAgICByZWFkX21lbW9yeSAocC0+di5l eHByLnZhbHVlLCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7CisrCSAgICByZWFkX21lbW9y eSAocC0+di5leHByLnZhbHVlICsgc291cmNlX29mZnNldCwKKysJCQkgY29udGVudHMgKyBkZXN0 X29mZnNldCwgdGhpc19zaXplKTsKKyAJICBicmVhazsKKyAKKyAJY2FzZSBEV0FSRl9WQUxVRV9T VEFDSzoKKyAJICB7CisgCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2Fy Y2ggKHZhbHVlX3R5cGUgKHYpKTsKKy0JICAgIHNpemVfdCBuID0gcC0+c2l6ZTsKKysJICAgIHNp emVfdCBuID0gdGhpc19zaXplOworKworKwkgICAgaWYgKG4gPiBjLT5hZGRyX3NpemUgLSBzb3Vy Y2Vfb2Zmc2V0KQorKwkgICAgICBuID0gKGMtPmFkZHJfc2l6ZSA+PSBzb3VyY2Vfb2Zmc2V0Cisr CQkgICA/IGMtPmFkZHJfc2l6ZSAtIHNvdXJjZV9vZmZzZXQKKysJCSAgIDogMCk7CisrCSAgICBp ZiAobiA9PSAwKQorKwkgICAgICB7CisrCQkvKiBOb3RoaW5nLiAgKi8KKysJICAgICAgfQorKwkg ICAgZWxzZSBpZiAoc291cmNlX29mZnNldCA9PSAwKQorKwkgICAgICBzdG9yZV91bnNpZ25lZF9p bnRlZ2VyIChjb250ZW50cyArIGRlc3Rfb2Zmc2V0LCBuLAorKwkJCQkgICAgICBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpLAorKwkJCQkgICAgICBwLT52LmV4cHIudmFsdWUpOworKwkgICAg ZWxzZQorKwkgICAgICB7CisrCQlnZGJfYnl0ZSBieXRlc1tzaXplb2YgKFVMT05HRVNUKV07Cisg CistCSAgICBpZiAobiA+IGMtPmFkZHJfc2l6ZSkKKy0JICAgICAgbiA9IGMtPmFkZHJfc2l6ZTsK Ky0JICAgIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgKGNvbnRlbnRzICsgb2Zmc2V0LCBuLAorLQkJ CQkgICAgZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKSwKKy0JCQkJICAgIHAtPnYuZXhwci52 YWx1ZSk7CisrCQlzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChieXRlcywgbiArIHNvdXJjZV9vZmZz ZXQsCisrCQkJCQlnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpLAorKwkJCQkJcC0+di5leHBy LnZhbHVlKTsKKysJCW1lbWNweSAoY29udGVudHMgKyBkZXN0X29mZnNldCwgYnl0ZXMgKyBzb3Vy Y2Vfb2Zmc2V0LCBuKTsKKysJICAgICAgfQorIAkgIH0KKyAJICBicmVhazsKKyAKKyAJY2FzZSBE V0FSRl9WQUxVRV9MSVRFUkFMOgorIAkgIHsKKy0JICAgIHNpemVfdCBuID0gcC0+c2l6ZTsKKysJ ICAgIHNpemVfdCBuID0gdGhpc19zaXplOworIAorLQkgICAgaWYgKG4gPiBwLT52LmxpdGVyYWwu bGVuZ3RoKQorLQkgICAgICBuID0gcC0+di5saXRlcmFsLmxlbmd0aDsKKy0JICAgIG1lbWNweSAo Y29udGVudHMgKyBvZmZzZXQsIHAtPnYubGl0ZXJhbC5kYXRhLCBuKTsKKysJICAgIGlmIChuID4g cC0+di5saXRlcmFsLmxlbmd0aCAtIHNvdXJjZV9vZmZzZXQpCisrCSAgICAgIG4gPSAocC0+di5s aXRlcmFsLmxlbmd0aCA+PSBzb3VyY2Vfb2Zmc2V0CisrCQkgICA/IHAtPnYubGl0ZXJhbC5sZW5n dGggLSBzb3VyY2Vfb2Zmc2V0CisrCQkgICA6IDApOworKwkgICAgaWYgKG4gIT0gMCkKKysJICAg ICAgbWVtY3B5IChjb250ZW50cyArIGRlc3Rfb2Zmc2V0LAorKwkJICAgICAgcC0+di5saXRlcmFs LmRhdGEgKyBzb3VyY2Vfb2Zmc2V0LCBuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCisgCWRlZmF1 bHQ6CisgCSAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywgXygiaW52YWxpZCBs b2NhdGlvbiB0eXBlIikpOworIAl9CistICAgICAgb2Zmc2V0ICs9IHAtPnNpemU7CisrICAgICAg b2Zmc2V0ICs9IHRoaXNfc2l6ZTsKKyAgICAgfQorIH0KKyAKK0BAIC0zNDIsOSArMzk2LDExIEBA CisgeworICAgaW50IGk7CisgICBsb25nIG9mZnNldCA9IDA7CistICBnZGJfYnl0ZSAqY29udGVu dHM7CisrICBVTE9OR0VTVCBieXRlc190b19za2lwOworKyAgY29uc3QgZ2RiX2J5dGUgKmNvbnRl bnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUg KikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodG8pOworICAgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFMVUVfRlJBTUVfSUQgKHRvKSk7CisrICBzaXplX3Qg dHlwZV9sZW47CisgCisgICBpZiAoZnJhbWUgPT0gTlVMTCkKKyAgICAgeworQEAgLTM1MiwxMCAr NDA4LDM1IEBACisgICAgICAgcmV0dXJuOworICAgICB9CisgCistICBjb250ZW50cyA9IHZhbHVl X2NvbnRlbnRzX3JhdyAoZnJvbSk7CistICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXM7IGkr KykKKysgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHMgKGZyb20pOworKyAgYnl0ZXNfdG9fc2tp cCA9IHZhbHVlX29mZnNldCAodG8pOworKyAgdHlwZV9sZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVf dHlwZSAodG8pKTsKKysgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0 eXBlX2xlbjsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAg PSAmYy0+cGllY2VzW2ldOworKyAgICAgIHNpemVfdCB0aGlzX3NpemU7CisrICAgICAgbG9uZyBk ZXN0X29mZnNldCwgc291cmNlX29mZnNldDsKKysKKysgICAgICBpZiAoYnl0ZXNfdG9fc2tpcCA+ IDAgJiYgYnl0ZXNfdG9fc2tpcCA+PSBwLT5zaXplKQorKwl7CisrCSAgYnl0ZXNfdG9fc2tpcCAt PSBwLT5zaXplOworKwkgIGNvbnRpbnVlOworKwl9CisrICAgICAgdGhpc19zaXplID0gcC0+c2l6 ZTsKKysgICAgICBpZiAodGhpc19zaXplID4gdHlwZV9sZW4gLSBvZmZzZXQpCisrCXRoaXNfc2l6 ZSA9IHR5cGVfbGVuIC0gb2Zmc2V0OworKyAgICAgIGlmIChieXRlc190b19za2lwID4gMCkKKysJ eworKwkgIGRlc3Rfb2Zmc2V0ID0gYnl0ZXNfdG9fc2tpcDsKKysJICBzb3VyY2Vfb2Zmc2V0ID0g MDsKKysJICB0aGlzX3NpemUgLT0gYnl0ZXNfdG9fc2tpcDsKKysJICBieXRlc190b19za2lwID0g MDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGRlc3Rfb2Zmc2V0ID0gMDsKKysJICBzb3Vy Y2Vfb2Zmc2V0ID0gb2Zmc2V0OworKwl9CisgCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlvbikK KyAJeworQEAgLTM2MywxNyArNDQ0LDE3IEBACisgCSAgeworIAkgICAgc3RydWN0IGdkYmFyY2gg KmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOworIAkgICAgaW50IGdkYl9yZWdudW0gPSBn ZGJhcmNoX2R3YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLCBwLT52LmV4cHIudmFsdWUpOworLQkg ICAgaW50IHJlZ19vZmZzZXQgPSAwOworKwkgICAgaW50IHJlZ19vZmZzZXQgPSBkZXN0X29mZnNl dDsKKyAKKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3JkZXIgKGFyY2gpID09IEJGRF9FTkRJQU5f QklHCistCQkmJiBwLT5zaXplIDwgcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkpCisr CQkmJiB0aGlzX3NpemUgPD0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkpCisgCSAg ICAgIC8qIEJpZy1lbmRpYW4sIGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLwor LQkgICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkgLSBw LT5zaXplOworKwkgICAgICByZWdfb2Zmc2V0ID0gcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3Jl Z251bSkgLSB0aGlzX3NpemU7CisgCisgCSAgICBpZiAoZ2RiX3JlZ251bSAhPSAtMSkKKyAJICAg ICAgeworIAkJcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVn X29mZnNldCwgCistCQkJCQkgIHAtPnNpemUsIGNvbnRlbnRzICsgb2Zmc2V0KTsKKysJCQkJCSAg dGhpc19zaXplLCBjb250ZW50cyArIHNvdXJjZV9vZmZzZXQpOworIAkgICAgICB9CisgCSAgICBl bHNlCisgCSAgICAgIHsKK0BAIC0zODMsMTMgKzQ2NCwxNCBAQAorIAkgIH0KKyAJICBicmVhazsK KyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CistCSAgd3JpdGVfbWVtb3J5IChwLT52LmV4cHIu dmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKysJICB3cml0ZV9tZW1vcnkgKHAt PnYuZXhwci52YWx1ZSArIGRlc3Rfb2Zmc2V0LAorKwkJCWNvbnRlbnRzICsgc291cmNlX29mZnNl dCwgdGhpc19zaXplKTsKKyAJICBicmVhazsKKyAJZGVmYXVsdDoKKyAJICBzZXRfdmFsdWVfb3B0 aW1pemVkX291dCAodG8sIDEpOworIAkgIHJldHVybjsKKyAJfQorLSAgICAgIG9mZnNldCArPSBw LT5zaXplOworKyAgICAgIG9mZnNldCArPSB0aGlzX3NpemU7CisgICAgIH0KKyB9CisgCistLS0g c3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuUworKysrIHNyYy9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvcGllY2VzLlMJMjAxMC0wNS0yNSAyMDoxNzo1MS45ODg3MTgwMDAgKzAw MDAKK0BAIC0wLDAgKzEsMTY1NSBAQAorKy8qCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisrICovCisrCisrLyogVGhpcyB3YXMgY29tcGlsZWQgd2l0aCBhIHZlcnNpb24gb2Yg Z2NjIG1vZGlmaWVkIHRvIGVtaXQgYmV0dGVyCisrICAgZGVidWdpbmZvIGZvciBTUkEnZCBzdHJ1 Y3R1cmVzLiAgU2VlOgorKwlodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp P2lkPTQzOTgzCisrCQorKyAgICBUaGUgb3JpZ2luYWwgcHJvZ3JhbSBpcyAicGllY2VzLmMiLCBp biB0aGlzIGRpcmVjdG9yeS4KKysqLworKworKwkuZmlsZQkicGllY2VzLmMiCisrCS5zZWN0aW9u CS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19hYmJyZXYwOgorKwkuc2VjdGlv bgkuZGVidWdfaW5mbywiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2luZm8wOgorKwkuc2VjdGlvbgku ZGVidWdfbGluZSwiIixAcHJvZ2JpdHMKKysuTGRlYnVnX2xpbmUwOgorKwkudGV4dAorKy5MdGV4 dDA6CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIGJhcgorKwkudHlwZQliYXIsIEBmdW5jdGlv bgorK2JhcjoKKysuTEZCMDoKKysJLmZpbGUgMSAicGllY2VzLmMiCisrCSMgcGllY2VzLmM6MjgK KysJLmxvYyAxIDI4IDAKKysuTFZMMDoKKysJIyBiYXNpYyBibG9jayAyCisrCXB1c2hsCSVlYnAK KysuTENGSTA6CisrCW1vdmwJJWVzcCwgJWVicAorKy5MQ0ZJMToKKysJIyBwaWVjZXMuYzoyOQor KwkubG9jIDEgMjkgMAorKwltb3ZsCTgoJWVicCksICVlYXgKKysJIyBwaWVjZXMuYzozMAorKwku bG9jIDEgMzAgMAorKwlwb3BsCSVlYnAKKysuTENGSTI6CisrCXJldAorKy5MRkUwOgorKwkuc2l6 ZQliYXIsIC4tYmFyCisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIGYxCisrCS50eXBlCWYxLCBA ZnVuY3Rpb24KKytmMToKKysuTEZCMToKKysJIyBwaWVjZXMuYzozNAorKwkubG9jIDEgMzQgMAor Ky5MVkwxOgorKwkjIGJhc2ljIGJsb2NrIDIKKysJcHVzaGwJJWVicAorKy5MQ0ZJMzoKKysJbW92 bAklZXNwLCAlZWJwCisrLkxDRkk0OgorKy5MVkwyOgorKwlzdWJsCSQxMiwgJWVzcAorKy5MQ0ZJ NToKKysJbW92bAklZXNpLCAtNCglZWJwKQorKy5MQ0ZJNjoKKysJIyBwaWVjZXMuYzozNworKwku bG9jIDEgMzcgMAorKwltb3ZsCTgoJWVicCksICVlc2kKKysJIyBwaWVjZXMuYzozNAorKwkubG9j IDEgMzQgMAorKwltb3ZsCSVlYngsIC04KCVlYnApCisrLkxDRkk3OgorKwkjIHBpZWNlcy5jOjM2 CisrCS5sb2MgMSAzNiAwCisrCW1vdmwJJDQsICVlYngKKysuTFZMMzoKKysJIyBwaWVjZXMuYzoz OAorKwkubG9jIDEgMzggMAorKwltb3ZsCSVlYngsICglZXNwKQorKwkjIHBpZWNlcy5jOjM3Cisr CS5sb2MgMSAzNyAwCisrCWFkZGwJJDcsICVlc2kKKysuTFZMNDoKKysJIyBwaWVjZXMuYzozOAor KwkubG9jIDEgMzggMAorKwljYWxsCWJhcgorKwkjIHBpZWNlcy5jOjM5CisrCS5sb2MgMSAzOSAw CisrCW1vdmwJJWVzaSwgKCVlc3ApCisrCWNhbGwJYmFyCisrCSMgcGllY2VzLmM6NDAKKysJLmxv YyAxIDQwIDAKKysJbGVhbAkoJWVieCwlZXNpKSwgJWVheAorKwkjIHBpZWNlcy5jOjQxCisrCS5s b2MgMSA0MSAwCisrCW1vdmwJLTgoJWVicCksICVlYngKKysuTFZMNToKKysJbW92bAktNCglZWJw KSwgJWVzaQorKy5MVkw2OgorKwltb3ZsCSVlYnAsICVlc3AKKysuTENGSTg6CisrCXBvcGwJJWVi cAorKy5MQ0ZJOToKKysJcmV0CisrLkxGRTE6CisrCS5zaXplCWYxLCAuLWYxCisrCS5wMmFsaWdu IDQsLDE1CisrLmdsb2JsIGYyCisrCS50eXBlCWYyLCBAZnVuY3Rpb24KKytmMjoKKysuTEZCMjoK KysJIyBwaWVjZXMuYzo0NQorKwkubG9jIDEgNDUgMAorKy5MVkw3OgorKwkjIGJhc2ljIGJsb2Nr IDIKKysJcHVzaGwJJWVicAorKy5MQ0ZJMTA6CisrCW1vdmwJJWVzcCwgJWVicAorKy5MQ0ZJMTE6 CisrLkxWTDg6CisrCXN1YmwJJDEyLCAlZXNwCisrLkxDRkkxMjoKKysJbW92bAklZXNpLCAtNCgl ZWJwKQorKy5MQ0ZJMTM6CisrCSMgcGllY2VzLmM6NDgKKysJLmxvYyAxIDQ4IDAKKysJbW92bAk4 KCVlYnApLCAlZXNpCisrCSMgcGllY2VzLmM6NDUKKysJLmxvYyAxIDQ1IDAKKysJbW92bAklZWJ4 LCAtOCglZWJwKQorKy5MQ0ZJMTQ6CisrCSMgcGllY2VzLmM6NDcKKysJLmxvYyAxIDQ3IDAKKysJ bW92bAkkNCwgJWVieAorKy5MVkw5OgorKwkjIHBpZWNlcy5jOjQ5CisrCS5sb2MgMSA0OSAwCisr CW1vdmwJJWVieCwgKCVlc3ApCisrCSMgcGllY2VzLmM6NDgKKysJLmxvYyAxIDQ4IDAKKysJYWRk bAkkNywgJWVzaQorKy5MVkwxMDoKKysJIyBwaWVjZXMuYzo0OQorKwkubG9jIDEgNDkgMAorKwlj YWxsCWJhcgorKwkjIHBpZWNlcy5jOjUwCisrCS5sb2MgMSA1MCAwCisrCW1vdmwJJWVzaSwgKCVl c3ApCisrCWNhbGwJYmFyCisrCSMgcGllY2VzLmM6NTEKKysJLmxvYyAxIDUxIDAKKysJbGVhbAko JWVieCwlZXNpKSwgJWVheAorKwkjIHBpZWNlcy5jOjUyCisrCS5sb2MgMSA1MiAwCisrCW1vdmwJ LTgoJWVicCksICVlYngKKysuTFZMMTE6CisrCW1vdmwJLTQoJWVicCksICVlc2kKKysuTFZMMTI6 CisrCW1vdmwJJWVicCwgJWVzcAorKy5MQ0ZJMTU6CisrCXBvcGwJJWVicAorKy5MQ0ZJMTY6Cisr CXJldAorKy5MRkUyOgorKwkuc2l6ZQlmMiwgLi1mMgorKwkucDJhbGlnbiA0LCwxNQorKy5nbG9i bCBmMworKwkudHlwZQlmMywgQGZ1bmN0aW9uCisrZjM6CisrLkxGQjM6CisrCSMgcGllY2VzLmM6 NTYKKysJLmxvYyAxIDU2IDAKKysuTFZMMTM6CisrCSMgYmFzaWMgYmxvY2sgMgorKwlwdXNobAkl ZWJwCisrLkxDRkkxNzoKKysJIyBwaWVjZXMuYzo1OAorKwkubG9jIDEgNTggMAorKwltb3ZsCSQ0 LCAlZWR4CisrCSMgcGllY2VzLmM6NTYKKysJLmxvYyAxIDU2IDAKKysJbW92bAklZXNwLCAlZWJw CisrLkxDRkkxODoKKysuTFZMMTQ6CisrCXN1YmwJJDEyLCAlZXNwCisrLkxDRkkxOToKKysJIyBw aWVjZXMuYzo1OAorKwkubG9jIDEgNTggMAorKy5MVkwxNToKKysJIyBwaWVjZXMuYzo1NgorKwku bG9jIDEgNTYgMAorKwltb3ZsCSVlc2ksIC00KCVlYnApCisrLkxDRkkyMDoKKysJIyBwaWVjZXMu Yzo2MAorKwkubG9jIDEgNjAgMAorKwltb3Zzd2wJJWR4LCAlZXNpCisrCSMgcGllY2VzLmM6NTYK KysJLmxvYyAxIDU2IDAKKysJbW92bAklZWJ4LCAtOCglZWJwKQorKy5MQ0ZJMjE6CisrCSMgcGll Y2VzLmM6NjAKKysJLmxvYyAxIDYwIDAKKysJbW92bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIK KysuTFZMMTY6CisrCSMgcGllY2VzLmM6NTcKKysJLmxvYyAxIDU3IDAKKysJbW92bAk4KCVlYnAp LCAlZWR4CisrCXNhbGwJJDQsICVlZHgKKysJIyBwaWVjZXMuYzo1OQorKwkubG9jIDEgNTkgMAor KwlhZGRsCSQxMTIsICVlZHgKKysJc2FydwkkNCwgJWR4CisrCSMgcGllY2VzLmM6NjEKKysJLmxv YyAxIDYxIDAKKysJbW92c3dsCSVkeCwgJWVieAorKwltb3ZsCSVlYngsICglZXNwKQorKwljYWxs CWJhcgorKwkjIHBpZWNlcy5jOjYyCisrCS5sb2MgMSA2MiAwCisrCWxlYWwJKCVlc2ksJWVieCks ICVlYXgKKysJIyBwaWVjZXMuYzo2MworKwkubG9jIDEgNjMgMAorKwltb3ZsCS04KCVlYnApLCAl ZWJ4CisrCW1vdmwJLTQoJWVicCksICVlc2kKKysuTFZMMTc6CisrCW1vdmwJJWVicCwgJWVzcAor Ky5MQ0ZJMjI6CisrCXBvcGwJJWVicAorKy5MQ0ZJMjM6CisrCXJldAorKy5MRkUzOgorKwkuc2l6 ZQlmMywgLi1mMworKwkucDJhbGlnbiA0LCwxNQorKy5nbG9ibCBmNAorKwkudHlwZQlmNCwgQGZ1 bmN0aW9uCisrZjQ6CisrLkxGQjQ6CisrCSMgcGllY2VzLmM6NjcKKysJLmxvYyAxIDY3IDAKKysu TFZMMTg6CisrCSMgYmFzaWMgYmxvY2sgMgorKwlwdXNobAklZWJwCisrLkxDRkkyNDoKKysJbW92 bAklZXNwLCAlZWJwCisrLkxDRkkyNToKKysJc3VibAkkMTIsICVlc3AKKysuTENGSTI2OgorKwlt b3ZsCSVlc2ksIC00KCVlYnApCisrLkxDRkkyNzoKKysJbW92bAk4KCVlYnApLCAlZXNpCisrLkxW TDE5OgorKwltb3ZsCSVlYngsIC04KCVlYnApCisrLkxDRkkyODoKKysJIyBwaWVjZXMuYzo2OQor KwkubG9jIDEgNjkgMAorKwltb3ZsCSVlc2ksICVlYngKKysJIyBwaWVjZXMuYzo3MAorKwkubG9j IDEgNzAgMAorKwlhZGRsCSQxLCAlZXNpCisrCSMgcGllY2VzLmM6NjkKKysJLmxvYyAxIDY5IDAK KysuTFZMMjA6CisrCSMgcGllY2VzLmM6NzEKKysJLmxvYyAxIDcxIDAKKysJbW92bAklZWJ4LCAo JWVzcCkKKysJY2FsbAliYXIKKysJIyBwaWVjZXMuYzo3MgorKwkubG9jIDEgNzIgMAorKwltb3Zs CSVlc2ksICglZXNwKQorKwljYWxsCWJhcgorKwkjIHBpZWNlcy5jOjczCisrCS5sb2MgMSA3MyAw CisrCWxlYWwJKCVlYngsJWVzaSksICVlYXgKKysJIyBwaWVjZXMuYzo3NAorKwkubG9jIDEgNzQg MAorKwltb3ZsCS04KCVlYnApLCAlZWJ4CisrLkxWTDIxOgorKwltb3ZsCS00KCVlYnApLCAlZXNp CisrLkxWTDIyOgorKwltb3ZsCSVlYnAsICVlc3AKKysuTENGSTI5OgorKwlwb3BsCSVlYnAKKysu TENGSTMwOgorKwlyZXQKKysuTEZFNDoKKysJLnNpemUJZjQsIC4tZjQKKysJLnAyYWxpZ24gNCws MTUKKysuZ2xvYmwgZjUKKysJLnR5cGUJZjUsIEBmdW5jdGlvbgorK2Y1OgorKy5MRkI1OgorKwkj IHBpZWNlcy5jOjc4CisrCS5sb2MgMSA3OCAwCisrLkxWTDIzOgorKwkjIGJhc2ljIGJsb2NrIDIK KysJcHVzaGwJJWVicAorKy5MQ0ZJMzE6CisrCW1vdmwJJWVzcCwgJWVicAorKy5MQ0ZJMzI6Cisr CXN1YmwJJDEyLCAlZXNwCisrLkxDRkkzMzoKKysJbW92bAklZXNpLCAtNCglZWJwKQorKy5MQ0ZJ MzQ6CisrCW1vdmwJOCglZWJwKSwgJWVzaQorKy5MVkwyNDoKKysJbW92bAklZWJ4LCAtOCglZWJw KQorKy5MQ0ZJMzU6CisrCSMgcGllY2VzLmM6ODAKKysJLmxvYyAxIDgwIDAKKysJbW92bAklZXNp LCAlZWJ4CisrCSMgcGllY2VzLmM6ODEKKysJLmxvYyAxIDgxIDAKKysJYWRkbAkkMSwgJWVzaQor KwkjIHBpZWNlcy5jOjgwCisrCS5sb2MgMSA4MCAwCisrLkxWTDI1OgorKwkjIHBpZWNlcy5jOjgy CisrCS5sb2MgMSA4MiAwCisrCW1vdmwJJWVieCwgKCVlc3ApCisrCWNhbGwJYmFyCisrCSMgcGll Y2VzLmM6ODMKKysJLmxvYyAxIDgzIDAKKysJbW92bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIK KysJIyBwaWVjZXMuYzo4NAorKwkubG9jIDEgODQgMAorKwlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4 CisrCSMgcGllY2VzLmM6ODUKKysJLmxvYyAxIDg1IDAKKysJbW92bAktOCglZWJwKSwgJWVieAor Ky5MVkwyNjoKKysJbW92bAktNCglZWJwKSwgJWVzaQorKy5MVkwyNzoKKysJbW92bAklZWJwLCAl ZXNwCisrLkxDRkkzNjoKKysJcG9wbAklZWJwCisrLkxDRkkzNzoKKysJcmV0CisrLkxGRTU6Cisr CS5zaXplCWY1LCAuLWY1CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIG1haW4KKysJLnR5cGUJ bWFpbiwgQGZ1bmN0aW9uCisrbWFpbjoKKysuTEZCNjoKKysJIyBwaWVjZXMuYzo4OQorKwkubG9j IDEgODkgMAorKwkjIGJhc2ljIGJsb2NrIDIKKysJcHVzaGwJJWVicAorKy5MQ0ZJMzg6CisrCW1v dmwJJWVzcCwgJWVicAorKy5MQ0ZJMzk6CisrCXB1c2hsCSVlYngKKysuTENGSTQwOgorKwkjIHBp ZWNlcy5jOjkxCisrCS5sb2MgMSA5MSAwCisrCW1vdmwJJDcsICVlYngKKysJIyBwaWVjZXMuYzo4 OQorKwkubG9jIDEgODkgMAorKwlzdWJsCSQ0LCAlZXNwCisrLkxDRkk0MToKKysJIyBwaWVjZXMu Yzo5MQorKwkubG9jIDEgOTEgMAorKy5MVkwyODoKKysJIyBwaWVjZXMuYzo5MgorKwkubG9jIDEg OTIgMAorKwltb3ZsCSVlYngsICglZXNwKQorKwljYWxsCWYxCisrCSMgcGllY2VzLmM6OTMKKysJ LmxvYyAxIDkzIDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMgorKwkjIHBpZWNlcy5j Ojk0CisrCS5sb2MgMSA5NCAwCisrCW1vdmwJJWVieCwgKCVlc3ApCisrCWNhbGwJZjMKKysJIyBw aWVjZXMuYzo5NQorKwkubG9jIDEgOTUgMAorKwltb3ZsCSVlYngsICglZXNwKQorKwljYWxsCWY0 CisrCSMgcGllY2VzLmM6OTYKKysJLmxvYyAxIDk2IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJ Y2FsbAlmNQorKwkjIHBpZWNlcy5jOjk4CisrCS5sb2MgMSA5OCAwCisrCWFkZGwJJDQsICVlc3AK KysJeG9ybAklZWF4LCAlZWF4CisrCXBvcGwJJWVieAorKy5MQ0ZJNDI6CisrLkxWTDI5OgorKwlw b3BsCSVlYnAKKysuTENGSTQzOgorKwlyZXQKKysuTEZFNjoKKysJLnNpemUJbWFpbiwgLi1tYWlu CisrI0FQUAorKwkuc2VjdGlvbgkuZGVidWdfZnJhbWUsIiIsQHByb2diaXRzCisrLkxmcmFtZTA6 CisrCS5sb25nCS5MRUNJRTAtLkxTQ0lFMAkjIExlbmd0aCBvZiBDb21tb24gSW5mb3JtYXRpb24g RW50cnkKKysuTFNDSUUwOgorKwkubG9uZwkweGZmZmZmZmZmCSMgQ0lFIElkZW50aWZpZXIgVGFn CisrCS5ieXRlCTB4MQkjIENJRSBWZXJzaW9uCisrCS5hc2NpaSAiXDAiCSMgQ0lFIEF1Z21lbnRh dGlvbgorKwkudWxlYjEyOCAweDEJIyBDSUUgQ29kZSBBbGlnbm1lbnQgRmFjdG9yCisrCS5zbGVi MTI4IC00CSMgQ0lFIERhdGEgQWxpZ25tZW50IEZhY3RvcgorKwkuYnl0ZQkweDgJIyBDSUUgUkEg Q29sdW1uCisrCS5ieXRlCTB4YwkjIERXX0NGQV9kZWZfY2ZhCisrCS51bGViMTI4IDB4NAorKwku dWxlYjEyOCAweDQKKysJLmJ5dGUJMHg4OAkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDgKKysJ LnVsZWIxMjggMHgxCisrCS5hbGlnbiA0CisrLkxFQ0lFMDoKKysuTFNGREUwOgorKwkubG9uZwku TEVGREUwLS5MQVNGREUwCSMgRkRFIExlbmd0aAorKy5MQVNGREUwOgorKwkubG9uZwkuTGZyYW1l MAkjIEZERSBDSUUgb2Zmc2V0CisrCS5sb25nCS5MRkIwCSMgRkRFIGluaXRpYWwgbG9jYXRpb24K KysJLmxvbmcJLkxGRTAtLkxGQjAJIyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkweDQJIyBE V19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMC0uTEZCMAorKwkuYnl0ZQkweGUJIyBE V19DRkFfZGVmX2NmYV9vZmZzZXQKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTB4ODUJIyBEV19D RkFfb2Zmc2V0LCBjb2x1bW4gMHg1CisrCS51bGViMTI4IDB4MgorKwkuYnl0ZQkweDQJIyBEV19D RkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMS0uTENGSTAKKysJLmJ5dGUJMHhkCSMgRFdf Q0ZBX2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4NAkjIERXX0NG QV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkyLS5MQ0ZJMQorKwkuYnl0ZQkweGM1CSMgRFdf Q0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDUKKysJLmJ5dGUJMHhjCSMgRFdfQ0ZBX2RlZl9jZmEKKysJ LnVsZWIxMjggMHg0CisrCS51bGViMTI4IDB4NAorKwkuYWxpZ24gNAorKy5MRUZERTA6CisrLkxT RkRFMjoKKysJLmxvbmcJLkxFRkRFMi0uTEFTRkRFMgkjIEZERSBMZW5ndGgKKysuTEFTRkRFMjoK KysJLmxvbmcJLkxmcmFtZTAJIyBGREUgQ0lFIG9mZnNldAorKwkubG9uZwkuTEZCMQkjIEZERSBp bml0aWFsIGxvY2F0aW9uCisrCS5sb25nCS5MRkUxLS5MRkIxCSMgRkRFIGFkZHJlc3MgcmFuZ2UK KysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTMtLkxGQjEK KysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4OAorKwku Ynl0ZQkweDg1CSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4NQorKwkudWxlYjEyOCAweDIKKysJ LmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTQtLkxDRkkzCisr CS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGViMTI4IDB4NQorKwku Ynl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJNi0uTENGSTQKKysJ LmJ5dGUJMHg4NgkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisr CS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkk3LS5MQ0ZJNgor KwkuYnl0ZQkweDgzCSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4MworKwkudWxlYjEyOCAweDQK KysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTgtLkxDRkk3 CisrCS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGViMTI4IDB4NAor KwkuYnl0ZQkweGM2CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDYKKysJLmJ5dGUJMHhjMwkj IERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHgzCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNl X2xvYzQKKysJLmxvbmcJLkxDRkk5LS5MQ0ZJOAorKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3Rv cmUsIGNvbHVtbiAweDUKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51 bGViMTI4IDB4NAorKwkuYWxpZ24gNAorKy5MRUZERTI6CisrLkxTRkRFNDoKKysJLmxvbmcJLkxF RkRFNC0uTEFTRkRFNAkjIEZERSBMZW5ndGgKKysuTEFTRkRFNDoKKysJLmxvbmcJLkxmcmFtZTAJ IyBGREUgQ0lFIG9mZnNldAorKwkubG9uZwkuTEZCMgkjIEZERSBpbml0aWFsIGxvY2F0aW9uCisr CS5sb25nCS5MRkUyLS5MRkIyCSMgRkRFIGFkZHJlc3MgcmFuZ2UKKysJLmJ5dGUJMHg0CSMgRFdf Q0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTEwLS5MRkIyCisrCS5ieXRlCTB4ZQkjIERX X0NGQV9kZWZfY2ZhX29mZnNldAorKwkudWxlYjEyOCAweDgKKysJLmJ5dGUJMHg4NQkjIERXX0NG QV9vZmZzZXQsIGNvbHVtbiAweDUKKysJLnVsZWIxMjggMHgyCisrCS5ieXRlCTB4NAkjIERXX0NG QV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkxMS0uTENGSTEwCisrCS5ieXRlCTB4ZAkjIERX X0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGViMTI4IDB4NQorKwkuYnl0ZQkweDQJIyBEV19D RkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMTMtLkxDRkkxMQorKwkuYnl0ZQkweDg2CSMg RFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4NgorKwkudWxlYjEyOCAweDMKKysJLmJ5dGUJMHg0CSMg RFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTE0LS5MQ0ZJMTMKKysJLmJ5dGUJMHg4 MwkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAweDMKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4 NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkkxNS0uTENGSTE0CisrCS5ieXRl CTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkw eGM2CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDYKKysJLmJ5dGUJMHhjMwkjIERXX0NGQV9y ZXN0b3JlLCBjb2x1bW4gMHgzCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJ LmxvbmcJLkxDRkkxNi0uTENGSTE1CisrCS5ieXRlCTB4YzUJIyBEV19DRkFfcmVzdG9yZSwgY29s dW1uIDB4NQorKwkuYnl0ZQkweGUJIyBEV19DRkFfZGVmX2NmYV9vZmZzZXQKKysJLnVsZWIxMjgg MHg0CisrCS5hbGlnbiA0CisrLkxFRkRFNDoKKysuTFNGREU2OgorKwkubG9uZwkuTEVGREU2LS5M QVNGREU2CSMgRkRFIExlbmd0aAorKy5MQVNGREU2OgorKwkubG9uZwkuTGZyYW1lMAkjIEZERSBD SUUgb2Zmc2V0CisrCS5sb25nCS5MRkIzCSMgRkRFIGluaXRpYWwgbG9jYXRpb24KKysJLmxvbmcJ LkxGRTMtLkxGQjMJIyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2 YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMTctLkxGQjMKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2Rl Zl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4OAorKwkuYnl0ZQkweDg1CSMgRFdfQ0ZBX29mZnNl dCwgY29sdW1uIDB4NQorKwkudWxlYjEyOCAweDIKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFu Y2VfbG9jNAorKwkubG9uZwkuTENGSTE4LS5MQ0ZJMTcKKysJLmJ5dGUJMHhkCSMgRFdfQ0ZBX2Rl Zl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZh bmNlX2xvYzQKKysJLmxvbmcJLkxDRkkyMC0uTENGSTE4CisrCS5ieXRlCTB4ODYJIyBEV19DRkFf b2Zmc2V0LCBjb2x1bW4gMHg2CisrCS51bGViMTI4IDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFf YWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMjEtLkxDRkkyMAorKwkuYnl0ZQkweDgzCSMgRFdf Q0ZBX29mZnNldCwgY29sdW1uIDB4MworKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg0CSMgRFdf Q0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTIyLS5MQ0ZJMjEKKysJLmJ5dGUJMHhkCSMg RFdfQ0ZBX2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4YzYJIyBE V19DRkFfcmVzdG9yZSwgY29sdW1uIDB4NgorKwkuYnl0ZQkweGMzCSMgRFdfQ0ZBX3Jlc3RvcmUs IGNvbHVtbiAweDMKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwku TENGSTIzLS5MQ0ZJMjIKKysJLmJ5dGUJMHhjNQkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHg1 CisrCS5ieXRlCTB4ZQkjIERXX0NGQV9kZWZfY2ZhX29mZnNldAorKwkudWxlYjEyOCAweDQKKysJ LmFsaWduIDQKKysuTEVGREU2OgorKy5MU0ZERTg6CisrCS5sb25nCS5MRUZERTgtLkxBU0ZERTgJ IyBGREUgTGVuZ3RoCisrLkxBU0ZERTg6CisrCS5sb25nCS5MZnJhbWUwCSMgRkRFIENJRSBvZmZz ZXQKKysJLmxvbmcJLkxGQjQJIyBGREUgaW5pdGlhbCBsb2NhdGlvbgorKwkubG9uZwkuTEZFNC0u TEZCNAkjIEZERSBhZGRyZXNzIHJhbmdlCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xv YzQKKysJLmxvbmcJLkxDRkkyNC0uTEZCNAorKwkuYnl0ZQkweGUJIyBEV19DRkFfZGVmX2NmYV9v ZmZzZXQKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTB4ODUJIyBEV19DRkFfb2Zmc2V0LCBjb2x1 bW4gMHg1CisrCS51bGViMTI4IDB4MgorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0 CisrCS5sb25nCS5MQ0ZJMjUtLkxDRkkyNAorKwkuYnl0ZQkweGQJIyBEV19DRkFfZGVmX2NmYV9y ZWdpc3RlcgorKwkudWxlYjEyOCAweDUKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9j NAorKwkubG9uZwkuTENGSTI3LS5MQ0ZJMjUKKysJLmJ5dGUJMHg4NgkjIERXX0NGQV9vZmZzZXQs IGNvbHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNl X2xvYzQKKysJLmxvbmcJLkxDRkkyOC0uTENGSTI3CisrCS5ieXRlCTB4ODMJIyBEV19DRkFfb2Zm c2V0LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2 YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMjktLkxDRkkyOAorKwkuYnl0ZQkweGQJIyBEV19DRkFf ZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHhjNgkjIERXX0NGQV9y ZXN0b3JlLCBjb2x1bW4gMHg2CisrCS5ieXRlCTB4YzMJIyBEV19DRkFfcmVzdG9yZSwgY29sdW1u IDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMzAt LkxDRkkyOQorKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDUKKysJLmJ5 dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4NAorKwkuYWxpZ24g NAorKy5MRUZERTg6CisrLkxTRkRFMTA6CisrCS5sb25nCS5MRUZERTEwLS5MQVNGREUxMAkjIEZE RSBMZW5ndGgKKysuTEFTRkRFMTA6CisrCS5sb25nCS5MZnJhbWUwCSMgRkRFIENJRSBvZmZzZXQK KysJLmxvbmcJLkxGQjUJIyBGREUgaW5pdGlhbCBsb2NhdGlvbgorKwkubG9uZwkuTEZFNS0uTEZC NQkjIEZERSBhZGRyZXNzIHJhbmdlCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQK KysJLmxvbmcJLkxDRkkzMS0uTEZCNQorKwkuYnl0ZQkweGUJIyBEV19DRkFfZGVmX2NmYV9vZmZz ZXQKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTB4ODUJIyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4g MHg1CisrCS51bGViMTI4IDB4MgorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0Cisr CS5sb25nCS5MQ0ZJMzItLkxDRkkzMQorKwkuYnl0ZQkweGQJIyBEV19DRkFfZGVmX2NmYV9yZWdp c3RlcgorKwkudWxlYjEyOCAweDUKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAor KwkubG9uZwkuTENGSTM0LS5MQ0ZJMzIKKysJLmJ5dGUJMHg4NgkjIERXX0NGQV9vZmZzZXQsIGNv bHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xv YzQKKysJLmxvbmcJLkxDRkkzNS0uTENGSTM0CisrCS5ieXRlCTB4ODMJIyBEV19DRkFfb2Zmc2V0 LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5j ZV9sb2M0CisrCS5sb25nCS5MQ0ZJMzYtLkxDRkkzNQorKwkuYnl0ZQkweGQJIyBEV19DRkFfZGVm X2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHhjNgkjIERXX0NGQV9yZXN0 b3JlLCBjb2x1bW4gMHg2CisrCS5ieXRlCTB4YzMJIyBEV19DRkFfcmVzdG9yZSwgY29sdW1uIDB4 MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJMzctLkxD RkkzNgorKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVtbiAweDUKKysJLmJ5dGUJ MHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4NAorKwkuYWxpZ24gNAor Ky5MRUZERTEwOgorKy5MU0ZERTEyOgorKwkubG9uZwkuTEVGREUxMi0uTEFTRkRFMTIJIyBGREUg TGVuZ3RoCisrLkxBU0ZERTEyOgorKwkubG9uZwkuTGZyYW1lMAkjIEZERSBDSUUgb2Zmc2V0Cisr CS5sb25nCS5MRkI2CSMgRkRFIGluaXRpYWwgbG9jYXRpb24KKysJLmxvbmcJLkxGRTYtLkxGQjYJ IyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0Cisr CS5sb25nCS5MQ0ZJMzgtLkxGQjYKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0 CisrCS51bGViMTI4IDB4OAorKwkuYnl0ZQkweDg1CSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDB4 NQorKwkudWxlYjEyOCAweDIKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwku bG9uZwkuTENGSTM5LS5MQ0ZJMzgKKysJLmJ5dGUJMHhkCSMgRFdfQ0ZBX2RlZl9jZmFfcmVnaXN0 ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKysJ LmxvbmcJLkxDRkk0MC0uTENGSTM5CisrCS5ieXRlCTB4ODMJIyBEV19DRkFfb2Zmc2V0LCBjb2x1 bW4gMHgzCisrCS51bGViMTI4IDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0 CisrCS5sb25nCS5MQ0ZJNDItLkxDRkk0MAorKwkuYnl0ZQkweGMzCSMgRFdfQ0ZBX3Jlc3RvcmUs IGNvbHVtbiAweDMKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAorKwkubG9uZwku TENGSTQzLS5MQ0ZJNDIKKysJLmJ5dGUJMHhjNQkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHg1 CisrCS5ieXRlCTB4YwkjIERXX0NGQV9kZWZfY2ZhCisrCS51bGViMTI4IDB4NAorKwkudWxlYjEy OCAweDQKKysJLmFsaWduIDQKKysuTEVGREUxMjoKKysjTk9fQVBQCisrCS50ZXh0CisrLkxldGV4 dDA6CisrCS5zZWN0aW9uCS5kZWJ1Z19sb2MsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19sb2MwOgor Ky5MTFNUMDoKKysJLmxvbmcJLkxGQjAtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRk cmVzcyAoKi5MTFNUMCkKKysJLmxvbmcJLkxDRkkwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVu ZCBhZGRyZXNzICgqLkxMU1QwKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBz aXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25nCS5M Q0ZJMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QwKQorKwku bG9uZwkuTENGSTEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDAp CisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkj IERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkkxLS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDApCisrCS5sb25nCS5MQ0ZJMi0uTHRleHQw CSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMCkKKysJLnZhbHVlCTB4MgkjIExv Y2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc1CSMgRFdfT1BfYnJlZzUKKysJLnNs ZWIxMjggOAorKwkubG9uZwkuTENGSTItLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRk cmVzcyAoKi5MTFNUMCkKKysJLmxvbmcJLkxGRTAtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5k IGFkZHJlc3MgKCouTExTVDApCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNp emUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJMAkj IExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMCkKKysJLmxvbmcJMAkjIExv Y2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDApCisrLkxMU1QxOgorKwkubG9uZwku TEZCMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxKQorKwku bG9uZwkuTENGSTMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEp CisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkj IERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJLkxDRkkzLS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEpCisrCS5sb25nCS5MQ0ZJNC0uTHRleHQw CSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMSkKKysJLnZhbHVlCTB4MgkjIExv Y2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNs ZWIxMjggOAorKwkubG9uZwkuTENGSTQtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRk cmVzcyAoKi5MTFNUMSkKKysJLmxvbmcJLkxDRkk4LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVu ZCBhZGRyZXNzICgqLkxMU1QxKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBz aXplCisrCS5ieXRlCTB4NzUJIyBEV19PUF9icmVnNQorKwkuc2xlYjEyOCA4CisrCS5sb25nCS5M Q0ZJOC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxKQorKwku bG9uZwkuTENGSTktLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEp CisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkj IERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk5LS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEpCisrCS5sb25nCS5MRkUxLS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxKQorKwkudmFsdWUJMHgyCSMgTG9j YXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xl YjEyOCA0CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCouTExT VDEpCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QxKQor Ky5MTFNUMjoKKysJLmxvbmcJLkxWTDEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRk cmVzcyAoKi5MTFNUMikKKysJLmxvbmcJLkxWTDItLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5k IGFkZHJlc3MgKCouTExTVDIpCisrCS52YWx1ZQkweDYJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNp emUKKysJLmJ5dGUJMHgzNAkjIERXX09QX2xpdDQKKysJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNr X3ZhbHVlCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5 dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZMMi0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QyKQorKwkubG9uZwkuTFZM My0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMikKKysJLnZhbHVl CTB4YwkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDM0CSMgRFdfT1BfbGl0 NAorKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJLmJ5dGUJMHg5MwkjIERXX09Q X3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNs ZWIxMjggMAorKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorKwkuYnl0ZQkweDIzCSMgRFdfT1Bf cGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg2CisrCS5ieXRlCTB4OWYJIyBEV19PUF9zdGFja192 YWx1ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5sb25n CS5MVkwzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDIpCisr CS5sb25nCS5MVkw0LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Qy KQorKwkudmFsdWUJMHhiCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NTMJ IyBEV19PUF9yZWczCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQK KysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IDAKKysJLmJ5dGUJMHg2CSMg RFdfT1BfZGVyZWYKKysJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0CisrCS51bGViMTI4 IDB4NgorKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJLmJ5dGUJMHg5MwkjIERX X09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZMNC0uTHRleHQwCSMgTG9jYXRp b24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QyKQorKwkubG9uZwkuTFZMNS0uTHRleHQwCSMg TG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMikKKysJLnZhbHVlCTB4NgkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDUzCSMgRFdfT1BfcmVnMworKwkuYnl0ZQkw eDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4NTYJIyBEV19PUF9y ZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmxvbmcJ LkxWTDUtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMikKKysJ LmxvbmcJLkxWTDYtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDIp CisrCS52YWx1ZQkweDUJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg5Mwkj IERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDU2CSMgRFdfT1BfcmVnNgor KwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5sb25nCTAJIyBM b2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCouTExTVDIpCisrCS5sb25nCTAJIyBMb2Nh dGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QyKQorKy5MTFNUMzoKKysJLmxvbmcJLkxG QjItLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMykKKysJLmxv bmcJLkxDRkkxMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMykK KysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc0CSMg RFdfT1BfYnJlZzQKKysJLnNsZWIxMjggNAorKwkubG9uZwkuTENGSTEwLS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDMpCisrCS5sb25nCS5MQ0ZJMTEtLkx0ZXh0 MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDMpCisrCS52YWx1ZQkweDIJIyBM b2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5z bGViMTI4IDgKKysJLmxvbmcJLkxDRkkxMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBh ZGRyZXNzICgqLkxMU1QzKQorKwkubG9uZwkuTENGSTE1LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0 IGVuZCBhZGRyZXNzICgqLkxMU1QzKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lv biBzaXplCisrCS5ieXRlCTB4NzUJIyBEV19PUF9icmVnNQorKwkuc2xlYjEyOCA4CisrCS5sb25n CS5MQ0ZJMTUtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMykK KysJLmxvbmcJLkxDRkkxNi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5M TFNUMykKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkw eDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTE2LS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDMpCisrCS5sb25nCS5MRkUyLS5M dGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QzKQorKwkudmFsdWUJMHgy CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAor Kwkuc2xlYjEyOCA0CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4g KCouTExTVDMpCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxM U1QzKQorKy5MTFNUNDoKKysJLmxvbmcJLkxWTDctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVn aW4gYWRkcmVzcyAoKi5MTFNUNCkKKysJLmxvbmcJLkxWTDgtLkx0ZXh0MAkjIExvY2F0aW9uIGxp c3QgZW5kIGFkZHJlc3MgKCouTExTVDQpCisrCS52YWx1ZQkweDYJIyBMb2NhdGlvbiBleHByZXNz aW9uIHNpemUKKysJLmJ5dGUJMHgzNAkjIERXX09QX2xpdDQKKysJLmJ5dGUJMHg5ZgkjIERXX09Q X3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQK KysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZM OC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q0KQorKwkubG9u ZwkuTFZMOS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNCkKKysJ LnZhbHVlCTB4YwkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDM0CSMgRFdf T1BfbGl0NAorKwkuYnl0ZQkweDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKysJLmJ5dGUJMHg5Mwkj IERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcK KysJLnNsZWIxMjggMAorKwkuYnl0ZQkweDYJIyBEV19PUF9kZXJlZgorKwkuYnl0ZQkweDIzCSMg RFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg2CisrCS5ieXRlCTB4OWYJIyBEV19PUF9z dGFja192YWx1ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0Cisr CS5sb25nCS5MVkw5LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExT VDQpCisrCS5sb25nCS5MVkwxMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAo Ki5MTFNUNCkKKysJLnZhbHVlCTB4YgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0 ZQkweDUzCSMgRFdfT1BfcmVnMworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIx MjggMHg0CisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRl CTB4NgkjIERXX09QX2RlcmVmCisrCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorKwku dWxlYjEyOCAweDYKKysJLmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4 OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmxvbmcJLkxWTDEwLS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDQpCisrCS5sb25nCS5MVkwxMS0u THRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNCkKKysJLnZhbHVlCTB4 NgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDUzCSMgRFdfT1BfcmVnMwor KwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4NTYJ IyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQK KysJLmxvbmcJLkxWTDExLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCou TExTVDQpCisrCS5sb25nCS5MVkwxMi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVz cyAoKi5MTFNUNCkKKysJLnZhbHVlCTB4NQkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwku Ynl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTB4NTYJIyBE V19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJ LmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUNCkKKysJLmxv bmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDQpCisrLkxMU1Q1Ogor KwkubG9uZwkuTEZCMy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxM U1Q1KQorKwkubG9uZwkuTENGSTE3LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNz ICgqLkxMU1Q1KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5i eXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA0CisrCS5sb25nCS5MQ0ZJMTctLkx0 ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNSkKKysJLmxvbmcJLkxD RkkxOC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNSkKKysJLnZh bHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1Bf YnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTE4LS5MdGV4dDAJIyBMb2NhdGlvbiBs aXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDUpCisrCS5sb25nCS5MQ0ZJMjItLkx0ZXh0MAkjIExv Y2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDUpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NQkjIERXX09QX2JyZWc1CisrCS5zbGViMTI4 IDgKKysJLmxvbmcJLkxDRkkyMi0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNz ICgqLkxMU1Q1KQorKwkubG9uZwkuTENGSTIzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBh ZGRyZXNzICgqLkxMU1Q1KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXpl CisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA4CisrCS5sb25nCS5MQ0ZJ MjMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNSkKKysJLmxv bmcJLkxGRTMtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDUpCisr CS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERX X09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWlu YXRvciBiZWdpbiAoKi5MTFNUNSkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRv ciBlbmQgKCouTExTVDUpCisrLkxMU1Q2OgorKwkubG9uZwkuTFZMMTMtLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKysJLmxvbmcJLkxWTDE0LS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorKwkudmFsdWUJMHhhCSMgTG9j YXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKysJ LnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHgzNAkjIERXX09QX2xpdDQKKysJ LmJ5dGUJMHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRf cGllY2UKKysJLnVsZWIxMjggMHhjCisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09Q X3BpZWNlCisrCS51bGViMTI4IDB4MgorKwkubG9uZwkuTFZMMTQtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKysJLmxvbmcJLkxWTDE1LS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorKwkudmFsdWUJMHgxNQkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisrCS51 bGViMTI4IDB4NAorKwkudWxlYjEyOCAwCisrCS5ieXRlCTB4MzQJIyBEV19PUF9saXQ0CisrCS5i eXRlCTB4OWYJIyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3Bp ZWNlCisrCS51bGViMTI4IDB4YworKwkudWxlYjEyOCAwCisrCS5ieXRlCTB4OTEJIyBEV19PUF9m YnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRlCTB4OTQJIyBEV19PUF9kZXJlZl9zaXplCisrCS5i eXRlCTB4MgorKwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg2 CisrCS5ieXRlCTB4OWYJIyBEV19PUF9zdGFja192YWx1ZQorKwkuYnl0ZQkweDlkCSMgRFdfT1Bf Yml0X3BpZWNlCisrCS51bGViMTI4IDB4YworKwkudWxlYjEyOCAwCisrCS5ieXRlCTB4OWQJIyBE V19PUF9iaXRfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAKKysJLmxvbmcJLkxW TDE1LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDYpCisrCS5s b25nCS5MVkwxNi0xLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2 KQorKwkudmFsdWUJMHgxNAkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDlk CSMgRFdfT1BfYml0X3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkudWxlYjEyOCAwCisrCS5ieXRl CTB4NTIJIyBEV19PUF9yZWcyCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKysJLnVs ZWIxMjggMHhjCisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5z bGViMTI4IDAKKysJLmJ5dGUJMHg5NAkjIERXX09QX2RlcmVmX3NpemUKKysJLmJ5dGUJMHgyCisr CS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorKwkudWxlYjEyOCAweDcKKysJLmJ5dGUJ MHg5ZgkjIERXX09QX3N0YWNrX3ZhbHVlCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UK KysJLnVsZWIxMjggMHhjCisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9w aWVjZQorKwkudWxlYjEyOCAweDQKKysJLnVsZWIxMjggMAorKwkubG9uZwkuTFZMMTYtMS0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQorKwkubG9uZwkuTFZM MTctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDYpCisrCS52YWx1 ZQkweDE0CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OWQJIyBEV19PUF9i aXRfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS51bGViMTI4IDAKKysJLmJ5dGUJMHg1NgkjIERX X09QX3JlZzYKKysJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQorKwkudWxlYjEyOCAweGMK KysJLnVsZWIxMjggMAorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAor KwkuYnl0ZQkweDk0CSMgRFdfT1BfZGVyZWZfc2l6ZQorKwkuYnl0ZQkweDIKKysJLmJ5dGUJMHgy MwkjIERXX09QX3BsdXNfdWNvbnN0CisrCS51bGViMTI4IDB4NworKwkuYnl0ZQkweDlmCSMgRFdf T1Bfc3RhY2tfdmFsdWUKKysJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQorKwkudWxlYjEy OCAweGMKKysJLnVsZWIxMjggMAorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisrCS51 bGViMTI4IDB4NAorKwkudWxlYjEyOCAwCisrCS5sb25nCS5MVkwxNy0uTHRleHQwCSMgTG9jYXRp b24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQorKwkubG9uZwkuTEZFMy0uTHRleHQwCSMg TG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNikKKysJLnZhbHVlCTB4ZgkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIx MjggMHgyCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRl CTB4OTQJIyBEV19PUF9kZXJlZl9zaXplCisrCS5ieXRlCTB4MgorKwkuYnl0ZQkweDIzCSMgRFdf T1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg3CisrCS5ieXRlCTB4OWYJIyBEV19PUF9zdGFj a192YWx1ZQorKwkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisrCS51bGViMTI4IDB4Ywor KwkudWxlYjEyOCAwCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKysJLnVsZWIxMjgg MHg0CisrCS51bGViMTI4IDAKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBi ZWdpbiAoKi5MTFNUNikKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQg KCouTExTVDYpCisrLkxMU1Q3OgorKwkubG9uZwkuTEZCNC0uTHRleHQwCSMgTG9jYXRpb24gbGlz dCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q3KQorKwkubG9uZwkuTENGSTI0LS5MdGV4dDAJIyBMb2Nh dGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q3KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24g ZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA0 CisrCS5sb25nCS5MQ0ZJMjQtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAo Ki5MTFNUNykKKysJLmxvbmcJLkxDRkkyNS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRk cmVzcyAoKi5MTFNUNykKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQor KwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTI1 LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDcpCisrCS5sb25n CS5MQ0ZJMjktLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDcpCisr CS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NQkjIERX X09QX2JyZWc1CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkkyOS0uTHRleHQwCSMgTG9jYXRp b24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q3KQorKwkubG9uZwkuTENGSTMwLS5MdGV4dDAJ IyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q3KQorKwkudmFsdWUJMHgyCSMgTG9j YXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xl YjEyOCA4CisrCS5sb25nCS5MQ0ZJMzAtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRk cmVzcyAoKi5MTFNUNykKKysJLmxvbmcJLkxGRTQtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5k IGFkZHJlc3MgKCouTExTVDcpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNp emUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJMAkj IExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUNykKKysJLmxvbmcJMAkjIExv Y2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDcpCisrLkxMU1Q4OgorKwkubG9uZwku TFZMMTktLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUOCkKKysJ LmxvbmcJLkxWTDIwLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q4 KQorKwkudmFsdWUJMHg4CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OTEJ IyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQor KwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisrCS5zbGViMTI4IDAK KysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZM MjAtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUOCkKKysJLmxv bmcJLkxWTDIxLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q4KQor KwkudmFsdWUJMHg2CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NTMJIyBE V19PUF9yZWczCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJ LmJ5dGUJMHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51 bGViMTI4IDB4NAorKwkubG9uZwkuTFZMMjEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4g YWRkcmVzcyAoKi5MTFNUOCkKKysJLmxvbmcJLkxWTDIyLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0 IGVuZCBhZGRyZXNzICgqLkxMU1Q4KQorKwkudmFsdWUJMHg1CSMgTG9jYXRpb24gZXhwcmVzc2lv biBzaXplCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5 dGUJMHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGVi MTI4IDB4NAorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxM U1Q4KQorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUOCkK KysuTExTVDk6CisrCS5sb25nCS5MRkI1LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFk ZHJlc3MgKCouTExTVDkpCisrCS5sb25nCS5MQ0ZJMzEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3Qg ZW5kIGFkZHJlc3MgKCouTExTVDkpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9u IHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJ LkxDRkkzMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q5KQor KwkubG9uZwkuTENGSTMyLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxM U1Q5KQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCisrCS5ieXRlCTB4 NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA4CisrCS5sb25nCS5MQ0ZJMzItLkx0ZXh0MAkj IExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUOSkKKysJLmxvbmcJLkxDRkkzNi0u THRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUOSkKKysJLnZhbHVlCTB4 MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc1CSMgRFdfT1BfYnJlZzUK KysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTM2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJl Z2luIGFkZHJlc3MgKCouTExTVDkpCisrCS5sb25nCS5MQ0ZJMzctLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDkpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHBy ZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJ LmxvbmcJLkxDRkkzNy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxM U1Q5KQorKwkubG9uZwkuTEZFNS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAo Ki5MTFNUOSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0 ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggNAorKwkubG9uZwkwCSMgTG9jYXRpb24g bGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1Q5KQorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlz dCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUOSkKKysuTExTVDEwOgorKwkubG9uZwkuTFZMMjQtLkx0 ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUMTApCisrCS5sb25nCS5M VkwyNS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTApCisrCS52 YWx1ZQkweDgJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg5MQkjIERXX09Q X2ZicmVnCisrCS5zbGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGVi MTI4IDB4NAorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAorKwkuYnl0 ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5sb25nCS5MVkwyNS0uTHRl eHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMCkKKysJLmxvbmcJLkxW TDI2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxMCkKKysJLnZh bHVlCTB4NgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDUzCSMgRFdfT1Bf cmVnMworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0CisrCS5ieXRl CTB4NTYJIyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEy OCAweDQKKysJLmxvbmcJLkxWTDI2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJl c3MgKCouTExTVDEwKQorKwkubG9uZwkuTFZMMjctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5k IGFkZHJlc3MgKCouTExTVDEwKQorKwkudmFsdWUJMHg1CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBz aXplCisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJ MHg1NgkjIERXX09QX3JlZzYKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4 IDB4NAorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1Qx MCkKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBlbmQgKCouTExTVDEwKQor Ky5MTFNUMTE6CisrCS5sb25nCS5MRkI2LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFk ZHJlc3MgKCouTExTVDExKQorKwkubG9uZwkuTENGSTM4LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0 IGVuZCBhZGRyZXNzICgqLkxMU1QxMSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Np b24gc2l6ZQorKwkuYnl0ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggNAorKwkubG9u ZwkuTENGSTM4LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDEx KQorKwkubG9uZwkuTENGSTM5LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgq LkxMU1QxMSkKKysJLnZhbHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0 ZQkweDc0CSMgRFdfT1BfYnJlZzQKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTM5LS5MdGV4 dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDExKQorKwkubG9uZwkuTENG STQzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1QxMSkKKysJLnZh bHVlCTB4MgkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQorKwkuYnl0ZQkweDc1CSMgRFdfT1Bf YnJlZzUKKysJLnNsZWIxMjggOAorKwkubG9uZwkuTENGSTQzLS5MdGV4dDAJIyBMb2NhdGlvbiBs aXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDExKQorKwkubG9uZwkuTEZFNi0uTHRleHQwCSMgTG9j YXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTEpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlv biBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4 IDQKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMTEp CisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QxMSkKKysu TExTVDEyOgorKwkubG9uZwkuTFZMMjgtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVnaW4gYWRk cmVzcyAoKi5MTFNUMTIpCisrCS5sb25nCS5MVkwyOS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBl bmQgYWRkcmVzcyAoKi5MTFNUMTIpCisrCS52YWx1ZQkweDEJIyBMb2NhdGlvbiBleHByZXNzaW9u IHNpemUKKysJLmJ5dGUJMHg1MwkjIERXX09QX3JlZzMKKysJLmxvbmcJMAkjIExvY2F0aW9uIGxp c3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMTIpCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0 IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QxMikKKysJLnNlY3Rpb24JLmRlYnVnX2luZm8KKysJLmxv bmcJMHgxZTMJIyBMZW5ndGggb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCisrCS52YWx1ZQkweDIJ IyBEV0FSRiB2ZXJzaW9uIG51bWJlcgorKwkubG9uZwkuTGRlYnVnX2FiYnJldjAJIyBPZmZzZXQg SW50byBBYmJyZXYuIFNlY3Rpb24KKysJLmJ5dGUJMHg0CSMgUG9pbnRlciBTaXplIChpbiBieXRl cykKKysJLnVsZWIxMjggMHgxCSMgKERJRSAoMHhiKSBEV19UQUdfY29tcGlsZV91bml0KQorKwku bG9uZwkuTEFTRjEJIyBEV19BVF9wcm9kdWNlcjogIkdOVSBDIDQuNi4wIDIwMTAwNTA2IChleHBl cmltZW50YWwpIFt0cnVuayByZXZpc2lvbiAxNTkxMTddIgorKwkuYnl0ZQkweDEJIyBEV19BVF9s YW5ndWFnZQorKwkubG9uZwkuTEFTRjIJIyBEV19BVF9uYW1lOiAicGllY2VzLmMiCisrCS5sb25n CS5MQVNGMwkjIERXX0FUX2NvbXBfZGlyOiAiL2hvbWUvdHJvbWV5L2dudS9hcmNoZXIvYXJjaGVy L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMiIKKysJLmxvbmcJLkx0ZXh0MAkjIERXX0FUX2xvd19w YworKwkubG9uZwkuTGV0ZXh0MAkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJLkxkZWJ1Z19saW5l MAkjIERXX0FUX3N0bXRfbGlzdAorKwkudWxlYjEyOCAweDIJIyAoRElFICgweDI1KSBEV19UQUdf c3RydWN0dXJlX3R5cGUpCisrCS5hc2NpaSAiQVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHg4 CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2Vz LmMpCisrCS5ieXRlCTB4MTcJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FU X3NpYmxpbmcKKysJLnVsZWIxMjggMHgzCSMgKERJRSAoMHgyZikgRFdfVEFHX21lbWJlcikKKysJ LmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUg KHBpZWNlcy5jKQorKwkuYnl0ZQkweDE3CSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJ IyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uCisr CS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorKwkudWxlYjEyOCAwCisrCS51bGViMTI4 IDB4MwkjIChESUUgKDB4M2IpIERXX1RBR19tZW1iZXIpCisrCS5hc2NpaSAialwwIgkjIERXX0FU X25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJ MHgxNwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkuYnl0 ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwkuYnl0ZQkweDIzCSMgRFdfT1Bf cGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg0CisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4g b2YgRElFIDB4MjUKKysJLnVsZWIxMjggMHg0CSMgKERJRSAoMHg0OCkgRFdfVEFHX2Jhc2VfdHlw ZSkKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4NQkjIERXX0FUX2Vu Y29kaW5nCisrCS5hc2NpaSAiaW50XDAiCSMgRFdfQVRfbmFtZQorKwkudWxlYjEyOCAweDIJIyAo RElFICgweDRmKSBEV19UQUdfc3RydWN0dXJlX3R5cGUpCisrCS5hc2NpaSAiQlwwIgkjIERXX0FU X25hbWUKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4MQkjIERXX0FU X2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MTgJIyBEV19BVF9kZWNsX2xpbmUKKysJ LmxvbmcJMHg3OAkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg1CSMgKERJRSAoMHg1OSkg RFdfVEFHX21lbWJlcikKKysJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJ IyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDE4CSMgRFdfQVRfZGVjbF9s aW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVf c2l6ZQorKwkuYnl0ZQkweGMJIyBEV19BVF9iaXRfc2l6ZQorKwkuYnl0ZQkweDEwCSMgRFdfQVRf Yml0X29mZnNldAorKwkuYnl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwku Ynl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMAorKwkudWxlYjEyOCAw eDUJIyAoRElFICgweDY4KSBEV19UQUdfbWVtYmVyKQorKwkuYXNjaWkgImpcMCIJIyBEV19BVF9u YW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4 MTgJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKysJLmJ5dGUJ MHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4YwkjIERXX0FUX2JpdF9zaXplCisrCS5i eXRlCTB4NAkjIERXX0FUX2JpdF9vZmZzZXQKKysJLmJ5dGUJMHgyCSMgRFdfQVRfZGF0YV9tZW1i ZXJfbG9jYXRpb24KKysJLmJ5dGUJMHgyMwkjIERXX09QX3BsdXNfdWNvbnN0CisrCS51bGViMTI4 IDAKKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHg0ZgorKwkudWxlYjEyOCAw eDYJIyAoRElFICgweDc4KSBEV19UQUdfc3VicHJvZ3JhbSkKKysJLmJ5dGUJMHgxCSMgRFdfQVRf ZXh0ZXJuYWwKKysJLmFzY2lpICJiYXJcMCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERX X0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MWIJIyBEV19BVF9kZWNsX2xpbmUK KysJLmJ5dGUJMHgxCSMgRFdfQVRfcHJvdG90eXBlZAorKwkubG9uZwkuTEZCMAkjIERXX0FUX2xv d19wYworKwkubG9uZwkuTEZFMAkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJLkxMU1QwCSMgRFdf QVRfZnJhbWVfYmFzZQorKwkubG9uZwkweDllCSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAw eDcJIyAoRElFICgweDkxKSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmFzY2lpICJ4XDAi CSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQor KwkuYnl0ZQkweDFiCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBl CisrCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJl ZworKwkuc2xlYjEyOCAwCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4NzgK KysJLnVsZWIxMjggMHg4CSMgKERJRSAoMHg5ZSkgRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRl CTB4MQkjIERXX0FUX2V4dGVybmFsCisrCS5hc2NpaSAiZjFcMCIJIyBEV19BVF9uYW1lCisrCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MjEJIyBEV19B VF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfcHJvdG90eXBlZAorKwkubG9uZwkweDQ4 CSMgRFdfQVRfdHlwZQorKwkubG9uZwkuTEZCMQkjIERXX0FUX2xvd19wYworKwkubG9uZwkuTEZF MQkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJLkxMU1QxCSMgRFdfQVRfZnJhbWVfYmFzZQorKwku bG9uZwkweGQ0CSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAweDcJIyAoRElFICgweGJhKSBE V19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmFzY2lpICJrXDAiCSMgRFdfQVRfbmFtZQorKwku Ynl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDIxCSMgRFdf QVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERX X0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisr CS51bGViMTI4IDB4OQkjIChESUUgKDB4YzYpIERXX1RBR192YXJpYWJsZSkKKysJLmFzY2lpICJh XDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5j KQorKwkuYnl0ZQkweDIzCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4MjUJIyBEV19BVF90 eXBlCisrCS5sb25nCS5MTFNUMgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTAJIyBlbmQgb2Yg Y2hpbGRyZW4gb2YgRElFIDB4OWUKKysJLnVsZWIxMjggMHg4CSMgKERJRSAoMHhkNCkgRFdfVEFH X3N1YnByb2dyYW0pCisrCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisrCS5hc2NpaSAiZjJc MCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMp CisrCS5ieXRlCTB4MmMJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfcHJv dG90eXBlZAorKwkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkubG9uZwkuTEZCMgkjIERXX0FU X2xvd19wYworKwkubG9uZwkuTEZFMgkjIERXX0FUX2hpZ2hfcGMKKysJLmxvbmcJLkxMU1QzCSMg RFdfQVRfZnJhbWVfYmFzZQorKwkubG9uZwkweDEwYQkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIx MjggMHg3CSMgKERJRSAoMHhmMCkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5hc2NpaSAi a1wwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMu YykKKysJLmJ5dGUJMHgyYwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4CSMgRFdfQVRf dHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkweDkxCSMgRFdfT1Bf ZmJyZWcKKysJLnNsZWIxMjggMAorKwkudWxlYjEyOCAweDkJIyAoRElFICgweGZjKSBEV19UQUdf dmFyaWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdf QVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHgyZQkjIERXX0FUX2RlY2xfbGluZQor KwkubG9uZwkweDEwYQkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxMU1Q0CSMgRFdfQVRfbG9jYXRp b24KKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhkNAorKwkudWxlYjEyOCAw eGEJIyAoRElFICgweDEwYSkgRFdfVEFHX2FycmF5X3R5cGUpCisrCS5sb25nCTB4NDgJIyBEV19B VF90eXBlCisrCS5sb25nCTB4MTFhCSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAweGIJIyAo RElFICgweDExMykgRFdfVEFHX3N1YnJhbmdlX3R5cGUpCisrCS5sb25nCTB4MTFhCSMgRFdfQVRf dHlwZQorKwkuYnl0ZQkweDEJIyBEV19BVF91cHBlcl9ib3VuZAorKwkuYnl0ZQkwCSMgZW5kIG9m IGNoaWxkcmVuIG9mIERJRSAweDEwYQorKwkudWxlYjEyOCAweGMJIyAoRElFICgweDExYSkgRFdf VEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4 NwkjIERXX0FUX2VuY29kaW5nCisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4MTFkKSBEV19UQUdf c3VicHJvZ3JhbSkKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJuYWwKKysJLmFzY2lpICJmM1ww IgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykK KysJLmJ5dGUJMHgzNwkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDEJIyBEV19BVF9wcm90 b3R5cGVkCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5sb25nCS5MRkIzCSMgRFdfQVRf bG93X3BjCisrCS5sb25nCS5MRkUzCSMgRFdfQVRfaGlnaF9wYworKwkubG9uZwkuTExTVDUJIyBE V19BVF9mcmFtZV9iYXNlCisrCS5sb25nCTB4MTUzCSMgRFdfQVRfc2libGluZworKwkudWxlYjEy OCAweDcJIyAoRElFICgweDEzOSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5hc2NpaSAi a1wwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMu YykKKysJLmJ5dGUJMHgzNwkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4CSMgRFdfQVRf dHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorKwkuYnl0ZQkweDkxCSMgRFdfT1Bf ZmJyZWcKKysJLnNsZWIxMjggMAorKwkudWxlYjEyOCAweDkJIyAoRElFICgweDE0NSkgRFdfVEFH X3ZhcmlhYmxlKQorKwkuYXNjaWkgImFcMCIJIyBEV19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERX X0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MzkJIyBEV19BVF9kZWNsX2xpbmUK KysJLmxvbmcJMHg0ZgkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxMU1Q2CSMgRFdfQVRfbG9jYXRp b24KKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxMWQKKysJLnVsZWIxMjgg MHg4CSMgKERJRSAoMHgxNTMpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19B VF9leHRlcm5hbAorKwkuYXNjaWkgImY0XDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBE V19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDQyCSMgRFdfQVRfZGVjbF9saW5l CisrCS5ieXRlCTB4MQkjIERXX0FUX3Byb3RvdHlwZWQKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5 cGUKKysJLmxvbmcJLkxGQjQJIyBEV19BVF9sb3dfcGMKKysJLmxvbmcJLkxGRTQJIyBEV19BVF9o aWdoX3BjCisrCS5sb25nCS5MTFNUNwkjIERXX0FUX2ZyYW1lX2Jhc2UKKysJLmxvbmcJMHgxODkJ IyBEV19BVF9zaWJsaW5nCisrCS51bGViMTI4IDB4NwkjIChESUUgKDB4MTZmKSBEV19UQUdfZm9y bWFsX3BhcmFtZXRlcikKKysJLmFzY2lpICJrXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJ IyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDQyCSMgRFdfQVRfZGVjbF9s aW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0 aW9uCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisrCS51bGViMTI4 IDB4OQkjIChESUUgKDB4MTdiKSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERX X0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5 dGUJMHg0NAkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDEwYQkjIERXX0FUX3R5cGUKKysJ LmxvbmcJLkxMU1Q4CSMgRFdfQVRfbG9jYXRpb24KKysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJl biBvZiBESUUgMHgxNTMKKysJLnVsZWIxMjggMHg4CSMgKERJRSAoMHgxODkpIERXX1RBR19zdWJw cm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19BVF9leHRlcm5hbAorKwkuYXNjaWkgImY1XDAiCSMg RFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwku Ynl0ZQkweDRkCSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4MQkjIERXX0FUX3Byb3RvdHlw ZWQKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKysJLmxvbmcJLkxGQjUJIyBEV19BVF9sb3df cGMKKysJLmxvbmcJLkxGRTUJIyBEV19BVF9oaWdoX3BjCisrCS5sb25nCS5MTFNUOQkjIERXX0FU X2ZyYW1lX2Jhc2UKKysJLmxvbmcJMHgxYmYJIyBEV19BVF9zaWJsaW5nCisrCS51bGViMTI4IDB4 NwkjIChESUUgKDB4MWE1KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmFzY2lpICJrXDAi CSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQor KwkuYnl0ZQkweDRkCSMgRFdfQVRfZGVjbF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBl CisrCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJl ZworKwkuc2xlYjEyOCAwCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MWIxKSBEV19UQUdfdmFy aWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRf ZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg0ZgkjIERXX0FUX2RlY2xfbGluZQorKwku bG9uZwkweDI1CSMgRFdfQVRfdHlwZQorKwkubG9uZwkuTExTVDEwCSMgRFdfQVRfbG9jYXRpb24K KysJLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxODkKKysJLnVsZWIxMjggMHhk CSMgKERJRSAoMHgxYmYpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19BVF9l eHRlcm5hbAorKwkubG9uZwkuTEFTRjAJIyBEV19BVF9uYW1lOiAibWFpbiIKKysJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg1OAkjIERXX0FUX2RlY2xf bGluZQorKwkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisrCS5sb25nCTB4NDgJIyBEV19B VF90eXBlCisrCS5sb25nCS5MRkI2CSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MRkU2CSMgRFdf QVRfaGlnaF9wYworKwkubG9uZwkuTExTVDExCSMgRFdfQVRfZnJhbWVfYmFzZQorKwkudWxlYjEy OCAweDkJIyAoRElFICgweDFkOCkgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkgImtcMCIJIyBE V19BVF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5i eXRlCTB4NWEJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKysJ LmxvbmcJLkxMU1QxMgkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRy ZW4gb2YgRElFIDB4MWJmCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4Ygor Kwkuc2VjdGlvbgkuZGVidWdfYWJicmV2CisrCS51bGViMTI4IDB4MQkjIChhYmJyZXYgY29kZSkK KysJLnVsZWIxMjggMHgxMQkjIChUQUc6IERXX1RBR19jb21waWxlX3VuaXQpCisrCS5ieXRlCTB4 MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweDI1CSMgKERXX0FUX3Byb2R1Y2VyKQor KwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAweDEzCSMgKERXX0FU X2xhbmd1YWdlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjgg MHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnApCisrCS51 bGViMTI4IDB4MWIJIyAoRFdfQVRfY29tcF9kaXIpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JN X3N0cnApCisrCS51bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwkudWxlYjEyOCAweDEJ IyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisrCS51 bGViMTI4IDB4MQkjIChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4MTAJIyAoRFdfQVRfc3Rt dF9saXN0KQorKwkudWxlYjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKysJLmJ5dGUJMAorKwku Ynl0ZQkwCisrCS51bGViMTI4IDB4MgkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgxMwkj IChUQUc6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSkKKysJLmJ5dGUJMHgxCSMgRFdfY2hpbGRyZW5f eWVzCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdf Rk9STV9zdHJpbmcpCisrCS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGVi MTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xf ZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4M2IJ IyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJ LnVsZWIxMjggMHgxCSMgKERXX0FUX3NpYmxpbmcpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9S TV9yZWY0KQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHgzCSMgKGFiYnJldiBj b2RlKQorKwkudWxlYjEyOCAweGQJIyAoVEFHOiBEV19UQUdfbWVtYmVyKQorKwkuYnl0ZQkwCSMg RFdfY2hpbGRyZW5fbm8KKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4 IDB4OAkjIChEV19GT1JNX3N0cmluZykKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2Zp bGUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMg KERXX0FUX2RlY2xfbGluZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51 bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCisrCS51bGViMTI4IDB4MzgJIyAoRFdfQVRfZGF0YV9tZW1iZXJfbG9jYXRpb24pCisrCS51 bGViMTI4IDB4YQkjIChEV19GT1JNX2Jsb2NrMSkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51 bGViMTI4IDB4NAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyNAkjIChUQUc6IERXX1RB R19iYXNlX3R5cGUpCisrCS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweGIJ IyAoRFdfQVRfYnl0ZV9zaXplKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJ LnVsZWIxMjggMHgzZQkjIChEV19BVF9lbmNvZGluZykKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZP Uk1fZGF0YTEpCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweDgJ IyAoRFdfRk9STV9zdHJpbmcpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDUJ IyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4ZAkjIChUQUc6IERXX1RBR19tZW1iZXIpCisr CS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkK KysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkudWxlYjEyOCAweDNhCSMgKERX X0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGVi MTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKKysJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQorKwkudWxlYjEyOCAweDEzCSMg KERXX0ZPUk1fcmVmNCkKKysJLnVsZWIxMjggMHhiCSMgKERXX0FUX2J5dGVfc2l6ZSkKKysJLnVs ZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4ZAkjIChEV19BVF9iaXRf c2l6ZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4Ywkj IChEV19BVF9iaXRfb2Zmc2V0KQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJ LnVsZWIxMjggMHgzOAkjIChEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbikKKysJLnVsZWIxMjgg MHhhCSMgKERXX0ZPUk1fYmxvY2sxKQorKwkuYnl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjgg MHg2CSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnBy b2dyYW0pCisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweDNmCSMg KERXX0FUX2V4dGVybmFsKQorKwkudWxlYjEyOCAweGMJIyAoRFdfRk9STV9mbGFnKQorKwkudWxl YjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5n KQorKwkudWxlYjEyOCAweDNhCSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMg KERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwku dWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgyNwkjIChEV19BVF9w cm90b3R5cGVkKQorKwkudWxlYjEyOCAweGMJIyAoRFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAw eDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJ LnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9S TV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4 IDB4NgkjIChEV19GT1JNX2RhdGE0KQorKwkudWxlYjEyOCAweDEJIyAoRFdfQVRfc2libGluZykK KysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAor KwkudWxlYjEyOCAweDcJIyAoYWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4NQkjIChUQUc6IERX X1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkuYnl0ZQkwCSMgRFdfY2hpbGRyZW5fbm8KKysJLnVs ZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4OAkjIChEV19GT1JNX3N0cmlu ZykKKysJLnVsZWIxMjggMHgzYQkjIChEV19BVF9kZWNsX2ZpbGUpCisrCS51bGViMTI4IDB4Ygkj IChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNiCSMgKERXX0FUX2RlY2xfbGluZSkKKysJ LnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRf dHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4Mgkj IChEV19BVF9sb2NhdGlvbikKKysJLnVsZWIxMjggMHhhCSMgKERXX0ZPUk1fYmxvY2sxKQorKwku Ynl0ZQkwCisrCS5ieXRlCTAKKysJLnVsZWIxMjggMHg4CSMgKGFiYnJldiBjb2RlKQorKwkudWxl YjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTB4MQkjIERXX2No aWxkcmVuX3llcworKwkudWxlYjEyOCAweDNmCSMgKERXX0FUX2V4dGVybmFsKQorKwkudWxlYjEy OCAweGMJIyAoRFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkKKysJ LnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkudWxlYjEyOCAweDNhCSMgKERXX0FU X2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGViMTI4 IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRh MSkKKysJLnVsZWIxMjggMHgyNwkjIChEV19BVF9wcm90b3R5cGVkKQorKwkudWxlYjEyOCAweGMJ IyAoRFdfRk9STV9mbGFnKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGVi MTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19w YykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChE V19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEy OCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4IDB4NgkjIChEV19GT1JNX2Rh dGE0KQorKwkudWxlYjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKKysJLnVsZWIxMjggMHgxMwkj IChEV19GT1JNX3JlZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweDkJIyAo YWJicmV2IGNvZGUpCisrCS51bGViMTI4IDB4MzQJIyAoVEFHOiBEV19UQUdfdmFyaWFibGUpCisr CS5ieXRlCTAJIyBEV19jaGlsZHJlbl9ubworKwkudWxlYjEyOCAweDMJIyAoRFdfQVRfbmFtZSkK KysJLnVsZWIxMjggMHg4CSMgKERXX0ZPUk1fc3RyaW5nKQorKwkudWxlYjEyOCAweDNhCSMgKERX X0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGVi MTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9k YXRhMSkKKysJLnVsZWIxMjggMHg0OQkjIChEV19BVF90eXBlKQorKwkudWxlYjEyOCAweDEzCSMg KERXX0ZPUk1fcmVmNCkKKysJLnVsZWIxMjggMHgyCSMgKERXX0FUX2xvY2F0aW9uKQorKwkudWxl YjEyOCAweDYJIyAoRFdfRk9STV9kYXRhNCkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGVi MTI4IDB4YQkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgxCSMgKFRBRzogRFdfVEFHX2Fy cmF5X3R5cGUpCisrCS5ieXRlCTB4MQkjIERXX2NoaWxkcmVuX3llcworKwkudWxlYjEyOCAweDQ5 CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxl YjEyOCAweDEJIyAoRFdfQVRfc2libGluZykKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3Jl ZjQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwkudWxlYjEyOCAweGIJIyAoYWJicmV2IGNvZGUp CisrCS51bGViMTI4IDB4MjEJIyAoVEFHOiBEV19UQUdfc3VicmFuZ2VfdHlwZSkKKysJLmJ5dGUJ MAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVs ZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51bGViMTI4IDB4MmYJIyAoRFdfQVRfdXBw ZXJfYm91bmQpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkuYnl0ZQkwCisr CS5ieXRlCTAKKysJLnVsZWIxMjggMHhjCSMgKGFiYnJldiBjb2RlKQorKwkudWxlYjEyOCAweDI0 CSMgKFRBRzogRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisr CS51bGViMTI4IDB4YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4IDB4YgkjIChEV19G T1JNX2RhdGExKQorKwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQorKwkudWxlYjEy OCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLmJ5dGUJMAorKwkuYnl0ZQkwCisrCS51bGViMTI4 IDB4ZAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyZQkjIChUQUc6IERXX1RBR19zdWJw cm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgzZgkj IChEV19BVF9leHRlcm5hbCkKKysJLnVsZWIxMjggMHhjCSMgKERXX0ZPUk1fZmxhZykKKysJLnVs ZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4ZQkjIChEV19GT1JNX3N0cnAp CisrCS51bGViMTI4IDB4M2EJIyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAo RFdfRk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51 bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQorKwkudWxlYjEyOCAweDI3CSMgKERXX0FUX3By b3RvdHlwZWQpCisrCS51bGViMTI4IDB4YwkjIChEV19GT1JNX2ZsYWcpCisrCS51bGViMTI4IDB4 NDkJIyAoRFdfQVRfdHlwZSkKKysJLnVsZWIxMjggMHgxMwkjIChEV19GT1JNX3JlZjQpCisrCS51 bGViMTI4IDB4MTEJIyAoRFdfQVRfbG93X3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9h ZGRyKQorKwkudWxlYjEyOCAweDEyCSMgKERXX0FUX2hpZ2hfcGMpCisrCS51bGViMTI4IDB4MQkj IChEV19GT1JNX2FkZHIpCisrCS51bGViMTI4IDB4NDAJIyAoRFdfQVRfZnJhbWVfYmFzZSkKKysJ LnVsZWIxMjggMHg2CSMgKERXX0ZPUk1fZGF0YTQpCisrCS5ieXRlCTAKKysJLmJ5dGUJMAorKwku Ynl0ZQkwCisrCS5zZWN0aW9uCS5kZWJ1Z19wdWJuYW1lcywiIixAcHJvZ2JpdHMKKysJLmxvbmcJ MHg0MgkjIExlbmd0aCBvZiBQdWJsaWMgTmFtZXMgSW5mbworKwkudmFsdWUJMHgyCSMgRFdBUkYg VmVyc2lvbgorKwkubG9uZwkuTGRlYnVnX2luZm8wCSMgT2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVu aXQgSW5mbworKwkubG9uZwkweDFlNwkjIENvbXBpbGF0aW9uIFVuaXQgTGVuZ3RoCisrCS5sb25n CTB4NzgJIyBESUUgb2Zmc2V0CisrCS5hc2NpaSAiYmFyXDAiCSMgZXh0ZXJuYWwgbmFtZQorKwku bG9uZwkweDllCSMgRElFIG9mZnNldAorKwkuYXNjaWkgImYxXDAiCSMgZXh0ZXJuYWwgbmFtZQor KwkubG9uZwkweGQ0CSMgRElFIG9mZnNldAorKwkuYXNjaWkgImYyXDAiCSMgZXh0ZXJuYWwgbmFt ZQorKwkubG9uZwkweDExZAkjIERJRSBvZmZzZXQKKysJLmFzY2lpICJmM1wwIgkjIGV4dGVybmFs IG5hbWUKKysJLmxvbmcJMHgxNTMJIyBESUUgb2Zmc2V0CisrCS5hc2NpaSAiZjRcMCIJIyBleHRl cm5hbCBuYW1lCisrCS5sb25nCTB4MTg5CSMgRElFIG9mZnNldAorKwkuYXNjaWkgImY1XDAiCSMg ZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkweDFiZgkjIERJRSBvZmZzZXQKKysJLmFzY2lpICJtYWlu XDAiCSMgZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkwCisrCS5zZWN0aW9uCS5kZWJ1Z19wdWJ0eXBl cywiIixAcHJvZ2JpdHMKKysJLmxvbmcJMHgxYQkjIExlbmd0aCBvZiBQdWJsaWMgVHlwZSBOYW1l cyBJbmZvCisrCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJzaW9uCisrCS5sb25nCS5MZGVidWdfaW5m bzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCisrCS5sb25nCTB4MWU3CSMgQ29t cGlsYXRpb24gVW5pdCBMZW5ndGgKKysJLmxvbmcJMHgyNQkjIERJRSBvZmZzZXQKKysJLmFzY2lp ICJBXDAiCSMgZXh0ZXJuYWwgbmFtZQorKwkubG9uZwkweDRmCSMgRElFIG9mZnNldAorKwkuYXNj aWkgIkJcMCIJIyBleHRlcm5hbCBuYW1lCisrCS5sb25nCTAKKysJLnNlY3Rpb24JLmRlYnVnX2Fy YW5nZXMsIiIsQHByb2diaXRzCisrCS5sb25nCTB4MWMJIyBMZW5ndGggb2YgQWRkcmVzcyBSYW5n ZXMgSW5mbworKwkudmFsdWUJMHgyCSMgRFdBUkYgVmVyc2lvbgorKwkubG9uZwkuTGRlYnVnX2lu Zm8wCSMgT2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKwkuYnl0ZQkweDQJIyBTaXpl IG9mIEFkZHJlc3MKKysJLmJ5dGUJMAkjIFNpemUgb2YgU2VnbWVudCBEZXNjcmlwdG9yCisrCS52 YWx1ZQkwCSMgUGFkIHRvIDggYnl0ZSBib3VuZGFyeQorKwkudmFsdWUJMAorKwkubG9uZwkuTHRl eHQwCSMgQWRkcmVzcworKwkubG9uZwkuTGV0ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCisrCS5sb25n CTAKKysJLmxvbmcJMAorKwkuc2VjdGlvbgkuZGVidWdfc3RyLCJNUyIsQHByb2diaXRzLDEKKysu TEFTRjI6CisrCS5zdHJpbmcJInBpZWNlcy5jIgorKy5MQVNGMzoKKysJLnN0cmluZwkiL2hvbWUv dHJvbWV5L2dudS9hcmNoZXIvYXJjaGVyL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMiIKKysuTEFT RjE6CisrCS5zdHJpbmcJIkdOVSBDIDQuNi4wIDIwMTAwNTA2IChleHBlcmltZW50YWwpIFt0cnVu ayByZXZpc2lvbiAxNTkxMTddIgorKy5MQVNGMDoKKysJLnN0cmluZwkibWFpbiIKKysJLmlkZW50 CSJHQ0M6IChHTlUpIDQuNi4wIDIwMTAwNTA2IChleHBlcmltZW50YWwpIFt0cnVuayByZXZpc2lv biAxNTkxMTddIgorKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCistLS0g c3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuYworKysrIHNyYy9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvcGllY2VzLmMJMjAxMC0wNS0yNSAyMDoxODowMC42Mjc2MjIwMDAgKzAw MDAKK0BAIC0wLDAgKzEsOTggQEAKKysvKiBDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKwor KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysvKiBUaGUgb3Jp Z2luYWwgcHJvZ3JhbSBjb3JyZXNwb25kaW5nIHRvIHBpZWNlcy5TLgorKyAgIFRoaXMgY2FtZSBm cm9tIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTg5NDY3Cisr ICAgTm90ZSB0aGF0IGl0IGlzIG5vdCBldmVyIGNvbXBpbGVkLCBwaWVjZXMuUyBpcyB1c2VkIGlu c3RlYWQuCisrICAgSG93ZXZlciwgaXQgaXMgdXNlZCB0byBleHRyYWN0IGJyZWFrcG9pbnQgbGlu ZSBudW1iZXJzLiAgKi8KKysKKytzdHJ1Y3QgQSB7IGludCBpOyBpbnQgajsgfTsKKytzdHJ1Y3Qg QiB7IGludCA6IDQ7IGludCBpIDogMTI7IGludCBqIDogMTI7IGludCA6IDQ7IH07CisrCisrX19h dHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCisrYmFyIChpbnQgeCkKKyt7CisrICBhc20gdm9s YXRpbGUgKCIiIDogOiAiciIgKHgpIDogIm1lbW9yeSIpOworK30KKysKKytfX2F0dHJpYnV0ZV9f KChub2lubGluZSkpIGludAorK2YxIChpbnQgaykKKyt7CisrICBzdHJ1Y3QgQSBhID0geyA0LCBr ICsgNiB9OworKyAgYXNtICgiIiA6ICIrciIgKGEuaSkpOworKyAgYS5qKys7CisrICBiYXIgKGEu aSk7CQkvKiB7IGRnLWZpbmFsIHsgZ2RiLXRlc3QgMjAgImEuaSIgIjQiIH0gfSAqLworKyAgYmFy IChhLmopOwkJLyogeyBkZy1maW5hbCB7IGdkYi10ZXN0IDIwICJhLmoiICIxNCIgfSB9ICovCisr ICByZXR1cm4gYS5pICsgYS5qOwkvKiBmMSBicmVha3BvaW50ICovCisrfQorKworK19fYXR0cmli dXRlX18oKG5vaW5saW5lKSkgaW50CisrZjIgKGludCBrKQorK3sKKysgIGludCBhWzJdID0geyA0 LCBrICsgNiB9OworKyAgYXNtICgiIiA6ICIrciIgKGFbMF0pKTsKKysgIGFbMV0rKzsKKysgIGJh ciAoYVswXSk7CQkvKiB7IGRnLWZpbmFsIHsgZ2RiLXRlc3QgMzEgImFcWzBcXSIgIjQiIH0gfSAq LworKyAgYmFyIChhWzFdKTsJCS8qIHsgZGctZmluYWwgeyBnZGItdGVzdCAzMSAiYVxbMVxdIiAi MTQiIH0gfSAqLworKyAgcmV0dXJuIGFbMF0gKyBhWzFdOwkvKiBmMiBicmVha3BvaW50ICovCisr fQorKworK19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50CisrZjMgKGludCBrKQorK3sKKysg IHN0cnVjdCBCIGEgPSB7IDQsIGsgKyA2IH07CisrICBhc20gKCIiIDogIityIiAoYS5pKSk7Cisr ICBhLmorKzsKKysgIGJhciAoYS5pKTsJCS8qIHsgZGctZmluYWwgeyBnZGItdGVzdCA0MiAiYS5p IiAiNCIgfSB9ICovCisrICBiYXIgKGEuaik7CQkvKiB7IGRnLWZpbmFsIHsgZ2RiLXRlc3QgNDIg ImEuaiIgIjE0IiB9IH0gKi8KKysgIHJldHVybiBhLmkgKyBhLmo7CS8qIGYzIGJyZWFrcG9pbnQg Ki8KKyt9CisrCisrX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBpbnQKKytmNCAoaW50IGspCisr eworKyAgaW50IGFbMl0gPSB7IGssIGsgfTsKKysgIGFzbSAoIiIgOiAiK3IiIChhWzBdKSk7Cisr ICBhWzFdKys7CisrICBiYXIgKGFbMF0pOworKyAgYmFyIChhWzFdKTsKKysgIHJldHVybiBhWzBd ICsgYVsxXTsJCS8qIGY0IGJyZWFrcG9pbnQgKi8KKyt9CisrCisrX19hdHRyaWJ1dGVfXygobm9p bmxpbmUpKSBpbnQKKytmNSAoaW50IGspCisreworKyAgc3RydWN0IEEgYSA9IHsgaywgayB9Owor KyAgYXNtICgiIiA6ICIrciIgKGEuaSkpOworKyAgYS5qKys7CisrICBiYXIgKGEuaSk7CisrICBi YXIgKGEuaik7CisrICByZXR1cm4gYS5pICsgYS5qOwkJLyogZjUgYnJlYWtwb2ludCAqLworK30K KysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIGludCBrOworKyAgYXNtICgiIiA6ICI9ciIg KGspIDogIjAiICg3KSk7CisrICBmMSAoayk7CisrICBmMiAoayk7CisrICBmMyAoayk7CisrICBm NCAoayk7CisrICBmNSAoayk7CisrICByZXR1cm4gMDsKKyt9CistLS0gc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9waWVjZXMuZXhwCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9waWVjZXMuZXhwCTIwMTAtMDUtMjUgMjA6MTg6MDMuOTYxMTExMDAwICswMDAwCitAQCAtMCww ICsxLDU3IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBUZXN0IHNvbWUgRFdB UkYgcGllY2Ugb3BlcmF0b3JzLgorKworKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBvbiB0 YXJnZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KKysjIEZvciBub3cgcGlj ayBhIHNhbXBsaW5nIG9mIGxpa2VseSB0YXJnZXRzLgorK2lmIHshW2lzdGFyZ2V0ICotKi1saW51 eCpdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLWdudSpdCisrICAgICYmICFbaXN0YXJnZXQgKi0q LWVsZipdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLW9wZW5ic2QqXQorKyAgICAmJiAhW2lzdGFy Z2V0IGFybS0qLWVhYmkqXQorKyAgICAmJiAhW2lzdGFyZ2V0IHBvd2VycGMtKi1lYWJpKl19IHsK KysgICAgcmV0dXJuIDAgIAorK30KKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24geDg2 IHRhcmdldHMuCisraWYgeyFbaXN0YXJnZXQgaT84Ni0qXX0geworKyAgICByZXR1cm4gMCAgCisr fQorKworK3NldCB0ZXN0ZmlsZSAicGllY2VzIgorK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LlMK KytzZXQgY3NyY2ZpbGUgJHt0ZXN0ZmlsZX0uYworK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1 YmRpcn0vJHt0ZXN0ZmlsZX0ueAorKworK2lmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3Rm aWxlfS5leHAgJHt0ZXN0ZmlsZX0ueCAkc3JjZmlsZV19IHsKKysgICAgcmV0dXJuIC0xCisrfQor KworK2lmICFbcnVudG9fbWFpbl0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBGdW5jdGlv biBmMSB0ZXN0cyBhIHBhcnRpY3VsYXIgZ2RiIGJ1ZyBpbnZvbHZpbmcgRFdfT1BfcGllY2UuCisr cHJvYyBwaWVjZXNfdGVzdF9mMSB7fSB7CisrICAgIGdsb2JhbCBjc3JjZmlsZQorKyAgICBzZXQg bGluZSBbZ2RiX2dldF9saW5lX251bWJlciAiZjEgYnJlYWtwb2ludCIgJGNzcmNmaWxlXQorKyAg ICBnZGJfdGVzdCAiYnJlYWsgcGllY2VzLmM6JGxpbmUiICJCcmVha3BvaW50IDIuKiIgXAorKwki c2V0IGYxIGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIKKysgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgImNvbnRpbnVlIHRvIGYxIGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIKKysgICAgZ2RiX3Rl c3QgInByaW50IGEiICIgPSB7aSA9IDQsIGogPSAxNH0iICJwcmludCBhIGluIHBpZWNlczpmMSIK KysgICAgZ2RiX3Rlc3QgInByaW50IGEuaiIgIiA9IDE0IiAicHJpbnQgYS5qIGluIHBpZWNlczpm MSIKKyt9CisrCisrcGllY2VzX3Rlc3RfZjEKCmRpZmYgLS1naXQgYS9nZGItYno1ODk0NjctcGll Y2VzMm9mNC5wYXRjaCBiL2dkYi1iejU4OTQ2Ny1waWVjZXMyb2Y0LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMjcwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt Yno1ODk0NjctcGllY2VzMm9mNC5wYXRjaApAQCAtMCwwICsxLDUzIEBACitodHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEwLTA1L21zZzAwMTg4Lmh0bWwKK2h0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAxODkuaHRtbAorCisjIyMgc3JjL2dkYi9D aGFuZ2VMb2cJMjAxMC8wNS8yMSAyMDo0NToxOAkxLjExODMwCisjIyMgc3JjL2dkYi9DaGFuZ2VM b2cJMjAxMC8wNS8yMSAyMDo1Njo0OAkxLjExODMxCisjIyAtMSwzICsxLDggQEAKKysyMDEwLTA1 LTIxICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSogZXZhbC5jIChldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQpIDxCSU5PUF9TVUJTQ1JJUFQ+OiBDYWxsCisrCWV2YWx1YXRl X3N1YmV4cCwgbm90IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uLgorKworIyMjIHNyYy9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIwOjM5OjUwCTEuMjI3MworIyMjIHNy Yy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIwOjU2OjQ5CTEuMjI3NAorIyMg LTEsNSArMSwxMCBAQAorIDIwMTAtMDUtMjEgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNv bT4KKyAKKysJKiBnZGIuZHdhcmYyL3BpZWNlcy5leHAgKHBpZWNlc190ZXN0X2YyKTogTmV3IHBy b2MuCisrCUNhbGwgaXQuCisrCistLS0gc3JjL2dkYi9ldmFsLmMJMjAxMC8wNS8xNCAxODozNTox MQkxLjEzNAorKysrIHNyYy9nZGIvZXZhbC5jCTIwMTAvMDUvMjEgMjA6NTY6NDkJMS4xMzUKK0BA IC0yMDU5LDggKzIwNTksOCBAQAorICAgICAgIGVycm9yIChfKCInOicgb3BlcmF0b3IgdXNlZCBp biBpbnZhbGlkIGNvbnRleHQiKSk7CisgCisgICAgIGNhc2UgQklOT1BfU1VCU0NSSVBUOgorLSAg ICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lk ZSk7CistICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBv cywgbm9zaWRlKTsKKysgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4 cCwgcG9zLCBub3NpZGUpOworKyAgICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQ RSwgZXhwLCBwb3MsIG5vc2lkZSk7CisgICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCisg CWdvdG8gbm9zaWRlcmV0OworICAgICAgIGlmIChiaW5vcF91c2VyX2RlZmluZWRfcCAob3AsIGFy ZzEsIGFyZzIpKQorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcGllY2VzLmV4cAky MDEwLzA1LzIxIDIwOjM5OjUwCTEuMQorKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv cGllY2VzLmV4cAkyMDEwLzA1LzIxIDIxOjAwOjI3CTEuMgorQEAgLTU0LDQgKzU0LDE4IEBACisg ICAgIGdkYl90ZXN0ICJwcmludCBhLmoiICIgPSAxNCIgInByaW50IGEuaiBpbiBwaWVjZXM6ZjEi CisgfQorIAorKyMgRnVuY3Rpb24gZjIgdGVzdHMgZm9yIGEgYnVnIHdoZW4gaW5kZXhpbmcgaW50 byBhbiBhcnJheSBjcmVhdGVkCisrIyB1c2luZyBEV19PUF9waWVjZS4KKytwcm9jIHBpZWNlc190 ZXN0X2YyIHt9IHsKKysgICAgZ2xvYmFsIGNzcmNmaWxlCisrICAgIHNldCBsaW5lIFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJmMiBicmVha3BvaW50IiAkY3NyY2ZpbGVdCisrICAgIGdkYl90ZXN0ICJi cmVhayBwaWVjZXMuYzokbGluZSIgIkJyZWFrcG9pbnQgMy4qIiBcCisrICAgICAgICJzZXQgZjIg YnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi Y29udGludWUgdG8gZjIgYnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBnZGJfdGVzdCAicHJp bnQgYSIgIiA9IC40LCAxNC4iICJwcmludCBhIGluIHBpZWNlczpmMiIKKysgICAgZ2RiX3Rlc3Qg InByaW50IGFcWzBcXSIgIiA9IDQiICJwcmludCBhXFswXF0gaW4gcGllY2VzOmYyIgorKyAgICBn ZGJfdGVzdCAicHJpbnQgYVxbMVxdIiAiID0gMTQiICJwcmludCBhXFsxXF0gaW4gcGllY2VzOmYy IgorK30KKysKKyBwaWVjZXNfdGVzdF9mMQorK3BpZWNlc190ZXN0X2YyCgpkaWZmIC0tZ2l0IGEv Z2RiLWJ6NTg5NDY3LXBpZWNlczNvZjQucGF0Y2ggYi9nZGItYno1ODk0NjctcGllY2VzM29mNC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDc3ZmNmCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiLWJ6NTg5NDY3LXBpZWNlczNvZjQucGF0Y2gKQEAgLTAsMCArMSwxMTk4 IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDEwLTA1L21zZzAwMTkwLmh0 bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjA6NTY6NDgJMS4xMTgzMQor IyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4xMTgzMgorIyMgLTEs NSArMSwxNiBAQAorIDIwMTAtMDUtMjEgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4K KyAKKysJKiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFsdWUpOiBFeGl0IGxvb3Agd2hlbiBy ZXN1bHQgaXMgZnVsbC4KKysJPERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQ+OiBOZXcgY2FzZS4K KysJKiBkd2FyZjJleHByLmggKGVudW0gZHdhcmZfdmFsdWVfbG9jYXRpb24pCisrCTxEV0FSRl9W QUxVRV9PUFRJTUlaRURfT1VUPjogTmV3IGNvbnN0YW50LgorKwkqIGR3YXJmMmV4cHIuYyAoZHdh cmZfZXhwcl9zdGFja19lbXB0eV9wKTogTmV3IGZ1bmN0aW9uLgorKwkoYWRkX3BpZWNlKTogSGFu ZGxlIGVtcHR5IHBpZWNlLgorKwkoZXhlY3V0ZV9zdGFja19vcCkgPERXX09QX3BpZWNlPjogSGFu ZGxlCisrCURXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQuCisrCisjIyMgc3JjL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjA6NTY6NDkJMS4yMjc0CisjIyMgc3JjL2dkYi90ZXN0 c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4yMjc1CisjIyAtMSw1ICsxLDEz IEBACisgMjAxMC0wNS0yMSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorIAorKwkq IGdkYi5kd2FyZjIvcGllY2VzLmV4cCAocGllY2VzX3Rlc3RfZjYpOiBOZXcgcHJvYy4KKysJQ2Fs bCBpdC4KKysJKiBnZGIuZHdhcmYyL3BpZWNlcy5jIChzdHJ1Y3QgQyk6IE5ldy4KKysJKGY2KTog TmV3IGZ1bmN0aW9uLgorKwkqIGdkYi5kd2FyZjIvcGllY2VzLlM6IFJlcGxhY2UuCisrCistLS0g c3JjL2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8xNCAxNzo1MzoxNgkxLjQyCisrKysgc3JjL2dk Yi9kd2FyZjJleHByLmMJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjQzCitAQCAtMTQzLDYgKzE0Mywx NCBAQAorIAorIH0KKyAKKysvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXhwcmVzc2lvbiBzdGFjayBp cyBlbXB0eS4gICovCisrCisrc3RhdGljIGludAorK2R3YXJmX2V4cHJfc3RhY2tfZW1wdHlfcCAo c3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4KQorK3sKKysgIHJldHVybiBjdHgtPnN0YWNr X2xlbiA9PSAwOworK30KKysKKyAvKiBBZGQgYSBuZXcgcGllY2UgdG8gQ1RYJ3MgcGllY2UgbGlz dC4gICovCisgc3RhdGljIHZvaWQKKyBhZGRfcGllY2UgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRl eHQgKmN0eCwgVUxPTkdFU1Qgc2l6ZSkKK0BAIC0xNjcsNiArMTc1LDE1IEBACisgICAgICAgcC0+ di5saXRlcmFsLmRhdGEgPSBjdHgtPmRhdGE7CisgICAgICAgcC0+di5saXRlcmFsLmxlbmd0aCA9 IGN0eC0+bGVuOworICAgICB9CisrICBlbHNlIGlmIChkd2FyZl9leHByX3N0YWNrX2VtcHR5X3Ag KGN0eCkpCisrICAgIHsKKysgICAgICBwLT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX09QVElNSVpF RF9PVVQ7CisrICAgICAgLyogQWxzbyByZXNldCB0aGUgY29udGV4dCdzIGxvY2F0aW9uLCBmb3Ig b3VyIGNhbGxlcnMuICBUaGlzIGlzCisrCSBhIHNvbWV3aGF0IHN0cmFuZ2UgYXBwcm9hY2gsIGJ1 dCB0aGlzIGxldHMgdXMgYXZvaWQgc2V0dGluZworKwkgdGhlIGxvY2F0aW9uIHRvIERXQVJGX1ZB TFVFX01FTU9SWSBpbiBhbGwgdGhlIGluZGl2aWR1YWwKKysJIGNhc2VzIGluIHRoZSBldmFsdWF0 b3IuICAqLworKyAgICAgIGN0eC0+bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9PUFRJTUlaRURfT1VU OworKyAgICB9CisgICBlbHNlCisgICAgIHsKKyAgICAgICBwLT52LmV4cHIudmFsdWUgPSBkd2Fy Zl9leHByX2ZldGNoIChjdHgsIDApOworQEAgLTg1OSw3ICs4NzYsOCBAQAorIAorICAgICAgICAg ICAgIC8qIFBvcCBvZmYgdGhlIGFkZHJlc3MvcmVnbnVtLCBhbmQgcmVzZXQgdGhlIGxvY2F0aW9u CisgCSAgICAgICB0eXBlLiAgKi8KKy0JICAgIGlmIChjdHgtPmxvY2F0aW9uICE9IERXQVJGX1ZB TFVFX0xJVEVSQUwpCisrCSAgICBpZiAoY3R4LT5sb2NhdGlvbiAhPSBEV0FSRl9WQUxVRV9MSVRF UkFMCisrCQkmJiBjdHgtPmxvY2F0aW9uICE9IERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQpCisg CSAgICAgIGR3YXJmX2V4cHJfcG9wIChjdHgpOworICAgICAgICAgICAgIGN0eC0+bG9jYXRpb24g PSBEV0FSRl9WQUxVRV9NRU1PUlk7CisgICAgICAgICAgIH0KKy0tLSBzcmMvZ2RiL2R3YXJmMmV4 cHIuaAkyMDEwLzAxLzAxIDA3OjMxOjMwCTEuMjAKKysrKyBzcmMvZ2RiL2R3YXJmMmV4cHIuaAky MDEwLzA1LzIxIDIxOjAxOjQ2CTEuMjEKK0BAIC0zOCw3ICszOCwxMCBAQAorICAgRFdBUkZfVkFM VUVfU1RBQ0ssCisgCisgICAvKiBUaGUgcGllY2UgaXMgYSBsaXRlcmFsLiAgKi8KKy0gIERXQVJG X1ZBTFVFX0xJVEVSQUwKKysgIERXQVJGX1ZBTFVFX0xJVEVSQUwsCisrCisrICAvKiBUaGUgcGll Y2Ugd2FzIG9wdGltaXplZCBvdXQuICAqLworKyAgRFdBUkZfVkFMVUVfT1BUSU1JWkVEX09VVAor IH07CisgCisgLyogVGhlIGR3YXJmIGV4cHJlc3Npb24gc3RhY2suICAqLworLS0tIHNyYy9nZGIv ZHdhcmYybG9jLmMJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjc5CisrKysgc3JjL2dkYi9kd2FyZjJs b2MuYwkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuODAKK0BAIC0zODQsNiArMzg0LDE2IEBACisgCSAg fQorIAkgIGJyZWFrOworIAorKwljYXNlIERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQ6CisrCSAg LyogV2UganVzdCBsZWF2ZSB0aGUgYml0cyBlbXB0eSBmb3Igbm93LiAgVGhpcyBpcyBub3QgaWRl YWwKKysJICAgICBidXQgZ2RiIGN1cnJlbnRseSBkb2VzIG5vdCBoYXZlIGEgbmljZSB3YXkgdG8g cmVwcmVzZW50CisrCSAgICAgb3B0aW1pemVkLW91dCBwaWVjZXMuICAqLworKwkgIHdhcm5pbmcg KF8oImJ5dGVzICVsZC0lbGQgaW4gY29tcHV0ZWQgb2JqZWN0IHdlcmUgb3B0aW1pemVkIG91dDsg IgorKwkJICAgICAicmVwbGFjaW5nIHdpdGggemVyb2VzIiksCisrCQkgICBvZmZzZXQsCisrCQkg ICBvZmZzZXQgKyAobG9uZykgdGhpc19zaXplKTsKKysJICBicmVhazsKKysKKyAJZGVmYXVsdDoK KyAJICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCBfKCJpbnZhbGlkIGxvY2F0 aW9uIHR5cGUiKSk7CisgCX0KK0BAIC02MDksNiArNjE5LDkgQEAKKyAJICB9CisgCSAgYnJlYWs7 CisgCisrCSAgLyogRFdBUkZfVkFMVUVfT1BUSU1JWkVEX09VVCBjYW4ndCBvY2N1ciBpbiB0aGlz IGNvbnRleHQgLS0KKysJICAgICBpdCBjYW4gb25seSBiZSBlbmNvdW50ZXJlZCB3aGVuIG1ha2lu ZyBhIHBpZWNlLiAgKi8KKysJY2FzZSBEV0FSRl9WQUxVRV9PUFRJTUlaRURfT1VUOgorIAlkZWZh dWx0OgorIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQg bG9jYXRpb24gdHlwZSIpKTsKKyAJfQorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv cGllY2VzLlMJMjAxMC8wNS8yMSAyMDozOTo1MAkxLjEKKysrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL3BpZWNlcy5TCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4yCitAQCAtMzcsMTkgKzM3 LDE5IEBACisgYmFyOgorIC5MRkIwOgorIAkuZmlsZSAxICJwaWVjZXMuYyIKKy0JIyBwaWVjZXMu YzoyOAorLQkubG9jIDEgMjggMAorKwkjIHBpZWNlcy5jOjI5CisrCS5sb2MgMSAyOSAwCisgLkxW TDA6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlwdXNobAklZWJwCisgLkxDRkkwOgorIAltb3ZsCSVl c3AsICVlYnAKKyAuTENGSTE6CistCSMgcGllY2VzLmM6MjkKKy0JLmxvYyAxIDI5IDAKKy0JbW92 bAk4KCVlYnApLCAlZWF4CisgCSMgcGllY2VzLmM6MzAKKyAJLmxvYyAxIDMwIDAKKysJbW92bAk4 KCVlYnApLCAlZWF4CisrCSMgcGllY2VzLmM6MzEKKysJLmxvYyAxIDMxIDAKKyAJcG9wbAklZWJw CisgLkxDRkkyOgorIAlyZXQKK0BAIC02MCw4ICs2MCw4IEBACisgCS50eXBlCWYxLCBAZnVuY3Rp b24KKyBmMToKKyAuTEZCMToKKy0JIyBwaWVjZXMuYzozNAorLQkubG9jIDEgMzQgMAorKwkjIHBp ZWNlcy5jOjM1CisrCS5sb2MgMSAzNSAwCisgLkxWTDE6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlw dXNobAklZWJwCitAQCAtNzMsMzYgKzczLDM2IEBACisgLkxDRkk1OgorIAltb3ZsCSVlc2ksIC00 KCVlYnApCisgLkxDRkk2OgorLQkjIHBpZWNlcy5jOjM3CistCS5sb2MgMSAzNyAwCisrCSMgcGll Y2VzLmM6MzgKKysJLmxvYyAxIDM4IDAKKyAJbW92bAk4KCVlYnApLCAlZXNpCistCSMgcGllY2Vz LmM6MzQKKy0JLmxvYyAxIDM0IDAKKysJIyBwaWVjZXMuYzozNQorKwkubG9jIDEgMzUgMAorIAlt b3ZsCSVlYngsIC04KCVlYnApCisgLkxDRkk3OgorLQkjIHBpZWNlcy5jOjM2CistCS5sb2MgMSAz NiAwCisrCSMgcGllY2VzLmM6MzcKKysJLmxvYyAxIDM3IDAKKyAJbW92bAkkNCwgJWVieAorIC5M VkwzOgorKwkjIHBpZWNlcy5jOjM5CisrCS5sb2MgMSAzOSAwCisrCW1vdmwJJWVieCwgKCVlc3Ap CisgCSMgcGllY2VzLmM6MzgKKyAJLmxvYyAxIDM4IDAKKy0JbW92bAklZWJ4LCAoJWVzcCkKKy0J IyBwaWVjZXMuYzozNworLQkubG9jIDEgMzcgMAorIAlhZGRsCSQ3LCAlZXNpCisgLkxWTDQ6Cist CSMgcGllY2VzLmM6MzgKKy0JLmxvYyAxIDM4IDAKKy0JY2FsbAliYXIKKyAJIyBwaWVjZXMuYzoz OQorIAkubG9jIDEgMzkgMAorLQltb3ZsCSVlc2ksICglZXNwKQorIAljYWxsCWJhcgorIAkjIHBp ZWNlcy5jOjQwCisgCS5sb2MgMSA0MCAwCistCWxlYWwJKCVlYngsJWVzaSksICVlYXgKKysJbW92 bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIKKyAJIyBwaWVjZXMuYzo0MQorIAkubG9jIDEgNDEg MAorKwlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4CisrCSMgcGllY2VzLmM6NDIKKysJLmxvYyAxIDQy IDAKKyAJbW92bAktOCglZWJwKSwgJWVieAorIC5MVkw1OgorIAltb3ZsCS00KCVlYnApLCAlZXNp CitAQCAtMTE5LDggKzExOSw4IEBACisgCS50eXBlCWYyLCBAZnVuY3Rpb24KKyBmMjoKKyAuTEZC MjoKKy0JIyBwaWVjZXMuYzo0NQorLQkubG9jIDEgNDUgMAorKwkjIHBpZWNlcy5jOjQ2CisrCS5s b2MgMSA0NiAwCisgLkxWTDc6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlwdXNobAklZWJwCitAQCAt MTMyLDM2ICsxMzIsMzYgQEAKKyAuTENGSTEyOgorIAltb3ZsCSVlc2ksIC00KCVlYnApCisgLkxD RkkxMzoKKy0JIyBwaWVjZXMuYzo0OAorLQkubG9jIDEgNDggMAorKwkjIHBpZWNlcy5jOjQ5Cisr CS5sb2MgMSA0OSAwCisgCW1vdmwJOCglZWJwKSwgJWVzaQorLQkjIHBpZWNlcy5jOjQ1CistCS5s b2MgMSA0NSAwCisrCSMgcGllY2VzLmM6NDYKKysJLmxvYyAxIDQ2IDAKKyAJbW92bAklZWJ4LCAt OCglZWJwKQorIC5MQ0ZJMTQ6CistCSMgcGllY2VzLmM6NDcKKy0JLmxvYyAxIDQ3IDAKKysJIyBw aWVjZXMuYzo0OAorKwkubG9jIDEgNDggMAorIAltb3ZsCSQ0LCAlZWJ4CisgLkxWTDk6CisrCSMg cGllY2VzLmM6NTAKKysJLmxvYyAxIDUwIDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKyAJIyBwaWVj ZXMuYzo0OQorIAkubG9jIDEgNDkgMAorLQltb3ZsCSVlYngsICglZXNwKQorLQkjIHBpZWNlcy5j OjQ4CistCS5sb2MgMSA0OCAwCisgCWFkZGwJJDcsICVlc2kKKyAuTFZMMTA6CistCSMgcGllY2Vz LmM6NDkKKy0JLmxvYyAxIDQ5IDAKKy0JY2FsbAliYXIKKyAJIyBwaWVjZXMuYzo1MAorIAkubG9j IDEgNTAgMAorLQltb3ZsCSVlc2ksICglZXNwKQorIAljYWxsCWJhcgorIAkjIHBpZWNlcy5jOjUx CisgCS5sb2MgMSA1MSAwCistCWxlYWwJKCVlYngsJWVzaSksICVlYXgKKysJbW92bAklZXNpLCAo JWVzcCkKKysJY2FsbAliYXIKKyAJIyBwaWVjZXMuYzo1MgorIAkubG9jIDEgNTIgMAorKwlsZWFs CSglZWJ4LCVlc2kpLCAlZWF4CisrCSMgcGllY2VzLmM6NTMKKysJLmxvYyAxIDUzIDAKKyAJbW92 bAktOCglZWJwKSwgJWVieAorIC5MVkwxMToKKyAJbW92bAktNCglZWJwKSwgJWVzaQorQEAgLTE3 OCw1OSArMTc4LDU5IEBACisgCS50eXBlCWYzLCBAZnVuY3Rpb24KKyBmMzoKKyAuTEZCMzoKKy0J IyBwaWVjZXMuYzo1NgorLQkubG9jIDEgNTYgMAorKwkjIHBpZWNlcy5jOjU3CisrCS5sb2MgMSA1 NyAwCisgLkxWTDEzOgorIAkjIGJhc2ljIGJsb2NrIDIKKyAJcHVzaGwJJWVicAorIC5MQ0ZJMTc6 CistCSMgcGllY2VzLmM6NTgKKy0JLmxvYyAxIDU4IDAKKysJIyBwaWVjZXMuYzo1OQorKwkubG9j IDEgNTkgMAorIAltb3ZsCSQ0LCAlZWR4CistCSMgcGllY2VzLmM6NTYKKy0JLmxvYyAxIDU2IDAK KysJIyBwaWVjZXMuYzo1NworKwkubG9jIDEgNTcgMAorIAltb3ZsCSVlc3AsICVlYnAKKyAuTENG STE4OgorIC5MVkwxNDoKKyAJc3VibAkkMTIsICVlc3AKKyAuTENGSTE5OgorLQkjIHBpZWNlcy5j OjU4CistCS5sb2MgMSA1OCAwCisrCSMgcGllY2VzLmM6NTkKKysJLmxvYyAxIDU5IDAKKyAuTFZM MTU6CistCSMgcGllY2VzLmM6NTYKKy0JLmxvYyAxIDU2IDAKKysJIyBwaWVjZXMuYzo1NworKwku bG9jIDEgNTcgMAorIAltb3ZsCSVlc2ksIC00KCVlYnApCisgLkxDRkkyMDoKKy0JIyBwaWVjZXMu Yzo2MAorLQkubG9jIDEgNjAgMAorKwkjIHBpZWNlcy5jOjYxCisrCS5sb2MgMSA2MSAwCisgCW1v dnN3bAklZHgsICVlc2kKKy0JIyBwaWVjZXMuYzo1NgorLQkubG9jIDEgNTYgMAorKwkjIHBpZWNl cy5jOjU3CisrCS5sb2MgMSA1NyAwCisgCW1vdmwJJWVieCwgLTgoJWVicCkKKyAuTENGSTIxOgor LQkjIHBpZWNlcy5jOjYwCistCS5sb2MgMSA2MCAwCisrCSMgcGllY2VzLmM6NjEKKysJLmxvYyAx IDYxIDAKKyAJbW92bAklZXNpLCAoJWVzcCkKKyAJY2FsbAliYXIKKyAuTFZMMTY6CistCSMgcGll Y2VzLmM6NTcKKy0JLmxvYyAxIDU3IDAKKysJIyBwaWVjZXMuYzo1OAorKwkubG9jIDEgNTggMAor IAltb3ZsCTgoJWVicCksICVlZHgKKyAJc2FsbAkkNCwgJWVkeAorLQkjIHBpZWNlcy5jOjU5Cist CS5sb2MgMSA1OSAwCisrCSMgcGllY2VzLmM6NjAKKysJLmxvYyAxIDYwIDAKKyAJYWRkbAkkMTEy LCAlZWR4CisgCXNhcncJJDQsICVkeAorLQkjIHBpZWNlcy5jOjYxCistCS5sb2MgMSA2MSAwCisr CSMgcGllY2VzLmM6NjIKKysJLmxvYyAxIDYyIDAKKyAJbW92c3dsCSVkeCwgJWVieAorIAltb3Zs CSVlYngsICglZXNwKQorIAljYWxsCWJhcgorLQkjIHBpZWNlcy5jOjYyCistCS5sb2MgMSA2MiAw CistCWxlYWwJKCVlc2ksJWVieCksICVlYXgKKyAJIyBwaWVjZXMuYzo2MworIAkubG9jIDEgNjMg MAorKwlsZWFsCSglZXNpLCVlYngpLCAlZWF4CisrCSMgcGllY2VzLmM6NjQKKysJLmxvYyAxIDY0 IDAKKyAJbW92bAktOCglZWJwKSwgJWVieAorIAltb3ZsCS00KCVlYnApLCAlZXNpCisgLkxWTDE3 OgorQEAgLTI0Niw4ICsyNDYsOCBAQAorIAkudHlwZQlmNCwgQGZ1bmN0aW9uCisgZjQ6CisgLkxG QjQ6CistCSMgcGllY2VzLmM6NjcKKy0JLmxvYyAxIDY3IDAKKysJIyBwaWVjZXMuYzo2OAorKwku bG9jIDEgNjggMAorIC5MVkwxODoKKyAJIyBiYXNpYyBibG9jayAyCisgCXB1c2hsCSVlYnAKK0BA IC0yNjIsMjggKzI2MiwyOCBAQAorIC5MVkwxOToKKyAJbW92bAklZWJ4LCAtOCglZWJwKQorIC5M Q0ZJMjg6CistCSMgcGllY2VzLmM6NjkKKy0JLmxvYyAxIDY5IDAKKy0JbW92bAklZXNpLCAlZWJ4 CisgCSMgcGllY2VzLmM6NzAKKyAJLmxvYyAxIDcwIDAKKy0JYWRkbAkkMSwgJWVzaQorLQkjIHBp ZWNlcy5jOjY5CistCS5sb2MgMSA2OSAwCistLkxWTDIwOgorKwltb3ZsCSVlc2ksICVlYngKKyAJ IyBwaWVjZXMuYzo3MQorIAkubG9jIDEgNzEgMAorLQltb3ZsCSVlYngsICglZXNwKQorLQljYWxs CWJhcgorKwlhZGRsCSQxLCAlZXNpCisrCSMgcGllY2VzLmM6NzAKKysJLmxvYyAxIDcwIDAKKysu TFZMMjA6CisgCSMgcGllY2VzLmM6NzIKKyAJLmxvYyAxIDcyIDAKKy0JbW92bAklZXNpLCAoJWVz cCkKKysJbW92bAklZWJ4LCAoJWVzcCkKKyAJY2FsbAliYXIKKyAJIyBwaWVjZXMuYzo3MworIAku bG9jIDEgNzMgMAorLQlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4CisrCW1vdmwJJWVzaSwgKCVlc3Ap CisrCWNhbGwJYmFyCisgCSMgcGllY2VzLmM6NzQKKyAJLmxvYyAxIDc0IDAKKysJbGVhbAkoJWVi eCwlZXNpKSwgJWVheAorKwkjIHBpZWNlcy5jOjc1CisrCS5sb2MgMSA3NSAwCisgCW1vdmwJLTgo JWVicCksICVlYngKKyAuTFZMMjE6CisgCW1vdmwJLTQoJWVicCksICVlc2kKK0BAIC0zMDAsOCAr MzAwLDggQEAKKyAJLnR5cGUJZjUsIEBmdW5jdGlvbgorIGY1OgorIC5MRkI1OgorLQkjIHBpZWNl cy5jOjc4CistCS5sb2MgMSA3OCAwCisrCSMgcGllY2VzLmM6NzkKKysJLmxvYyAxIDc5IDAKKyAu TFZMMjM6CisgCSMgYmFzaWMgYmxvY2sgMgorIAlwdXNobAklZWJwCitAQCAtMzE2LDI4ICszMTYs MjggQEAKKyAuTFZMMjQ6CisgCW1vdmwJJWVieCwgLTgoJWVicCkKKyAuTENGSTM1OgorLQkjIHBp ZWNlcy5jOjgwCistCS5sb2MgMSA4MCAwCistCW1vdmwJJWVzaSwgJWVieAorIAkjIHBpZWNlcy5j OjgxCisgCS5sb2MgMSA4MSAwCistCWFkZGwJJDEsICVlc2kKKy0JIyBwaWVjZXMuYzo4MAorLQku bG9jIDEgODAgMAorLS5MVkwyNToKKysJbW92bAklZXNpLCAlZWJ4CisgCSMgcGllY2VzLmM6ODIK KyAJLmxvYyAxIDgyIDAKKy0JbW92bAklZWJ4LCAoJWVzcCkKKy0JY2FsbAliYXIKKysJYWRkbAkk MSwgJWVzaQorKwkjIHBpZWNlcy5jOjgxCisrCS5sb2MgMSA4MSAwCisrLkxWTDI1OgorIAkjIHBp ZWNlcy5jOjgzCisgCS5sb2MgMSA4MyAwCistCW1vdmwJJWVzaSwgKCVlc3ApCisrCW1vdmwJJWVi eCwgKCVlc3ApCisgCWNhbGwJYmFyCisgCSMgcGllY2VzLmM6ODQKKyAJLmxvYyAxIDg0IDAKKy0J bGVhbAkoJWVieCwlZXNpKSwgJWVheAorKwltb3ZsCSVlc2ksICglZXNwKQorKwljYWxsCWJhcgor IAkjIHBpZWNlcy5jOjg1CisgCS5sb2MgMSA4NSAwCisrCWxlYWwJKCVlYngsJWVzaSksICVlYXgK KysJIyBwaWVjZXMuYzo4NgorKwkubG9jIDEgODYgMAorIAltb3ZsCS04KCVlYnApLCAlZWJ4Cisg LkxWTDI2OgorIAltb3ZsCS00KCVlYnApLCAlZXNpCitAQCAtMzUwLDYwICszNTAsMTE4IEBACisg LkxGRTU6CisgCS5zaXplCWY1LCAuLWY1CisgCS5wMmFsaWduIDQsLDE1CistLmdsb2JsIG1haW4K Ky0JLnR5cGUJbWFpbiwgQGZ1bmN0aW9uCistbWFpbjoKKysuZ2xvYmwgZjYKKysJLnR5cGUJZjYs IEBmdW5jdGlvbgorK2Y2OgorIC5MRkI2OgorLQkjIHBpZWNlcy5jOjg5CistCS5sb2MgMSA4OSAw CisrCSMgcGllY2VzLmM6OTAKKysJLmxvYyAxIDkwIDAKKysuTFZMMjg6CisgCSMgYmFzaWMgYmxv Y2sgMgorIAlwdXNobAklZWJwCisgLkxDRkkzODoKKyAJbW92bAklZXNwLCAlZWJwCisgLkxDRkkz OToKKy0JcHVzaGwJJWVieAorKwlzdWJsCSQxMiwgJWVzcAorIC5MQ0ZJNDA6CistCSMgcGllY2Vz LmM6OTEKKy0JLmxvYyAxIDkxIDAKKy0JbW92bAkkNywgJWVieAorLQkjIHBpZWNlcy5jOjg5Cist CS5sb2MgMSA4OSAwCistCXN1YmwJJDQsICVlc3AKKysJbW92bAklZXNpLCAtNCglZWJwKQorIC5M Q0ZJNDE6CistCSMgcGllY2VzLmM6OTEKKy0JLmxvYyAxIDkxIDAKKy0uTFZMMjg6CistCSMgcGll Y2VzLmM6OTIKKy0JLmxvYyAxIDkyIDAKKy0JbW92bAklZWJ4LCAoJWVzcCkKKy0JY2FsbAlmMQor Kwltb3ZsCTgoJWVicCksICVlc2kKKysuTFZMMjk6CisrCW1vdmwJJWVieCwgLTgoJWVicCkKKysu TENGSTQyOgorIAkjIHBpZWNlcy5jOjkzCisgCS5sb2MgMSA5MyAwCistCW1vdmwJJWVieCwgKCVl c3ApCistCWNhbGwJZjIKKysJbW92bAklZXNpLCAlZWJ4CisgCSMgcGllY2VzLmM6OTQKKyAJLmxv YyAxIDk0IDAKKy0JbW92bAklZWJ4LCAoJWVzcCkKKy0JY2FsbAlmMworKwlhZGRsCSQxLCAlZXNp CisrCSMgcGllY2VzLmM6OTMKKysJLmxvYyAxIDkzIDAKKysuTFZMMzA6CisgCSMgcGllY2VzLmM6 OTUKKyAJLmxvYyAxIDk1IDAKKyAJbW92bAklZWJ4LCAoJWVzcCkKKy0JY2FsbAlmNAorKwljYWxs CWJhcgorIAkjIHBpZWNlcy5jOjk2CisgCS5sb2MgMSA5NiAwCistCW1vdmwJJWVieCwgKCVlc3Ap CistCWNhbGwJZjUKKysJbW92bAklZXNpLCAoJWVzcCkKKysJY2FsbAliYXIKKysJIyBwaWVjZXMu Yzo5NworKwkubG9jIDEgOTcgMAorKwlsZWFsCSglZWJ4LCVlc2kpLCAlZWF4CisgCSMgcGllY2Vz LmM6OTgKKyAJLmxvYyAxIDk4IDAKKysJbW92bAktOCglZWJwKSwgJWVieAorKy5MVkwzMToKKysJ bW92bAktNCglZWJwKSwgJWVzaQorKy5MVkwzMjoKKysJbW92bAklZWJwLCAlZXNwCisrLkxDRkk0 MzoKKysJcG9wbAklZWJwCisrLkxDRkk0NDoKKysJcmV0CisrLkxGRTY6CisrCS5zaXplCWY2LCAu LWY2CisrCS5wMmFsaWduIDQsLDE1CisrLmdsb2JsIG1haW4KKysJLnR5cGUJbWFpbiwgQGZ1bmN0 aW9uCisrbWFpbjoKKysuTEZCNzoKKysJIyBwaWVjZXMuYzoxMDIKKysJLmxvYyAxIDEwMiAwCisr CSMgYmFzaWMgYmxvY2sgMgorKwlwdXNobAklZWJwCisrLkxDRkk0NToKKysJbW92bAklZXNwLCAl ZWJwCisrLkxDRkk0NjoKKysJcHVzaGwJJWVieAorKy5MQ0ZJNDc6CisrCSMgcGllY2VzLmM6MTA0 CisrCS5sb2MgMSAxMDQgMAorKwltb3ZsCSQ3LCAlZWJ4CisrCSMgcGllY2VzLmM6MTAyCisrCS5s b2MgMSAxMDIgMAorKwlzdWJsCSQ0LCAlZXNwCisrLkxDRkk0ODoKKysJIyBwaWVjZXMuYzoxMDQK KysJLmxvYyAxIDEwNCAwCisrLkxWTDMzOgorKwkjIHBpZWNlcy5jOjEwNQorKwkubG9jIDEgMTA1 IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMQorKwkjIHBpZWNlcy5jOjEwNgorKwku bG9jIDEgMTA2IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMgorKwkjIHBpZWNlcy5j OjEwNworKwkubG9jIDEgMTA3IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2FsbAlmMworKwkj IHBpZWNlcy5jOjEwOAorKwkubG9jIDEgMTA4IDAKKysJbW92bAklZWJ4LCAoJWVzcCkKKysJY2Fs bAlmNAorKwkjIHBpZWNlcy5jOjEwOQorKwkubG9jIDEgMTA5IDAKKysJbW92bAklZWJ4LCAoJWVz cCkKKysJY2FsbAlmNQorKwkjIHBpZWNlcy5jOjExMAorKwkubG9jIDEgMTEwIDAKKysJbW92bAkl ZWJ4LCAoJWVzcCkKKysJY2FsbAlmNgorKwkjIHBpZWNlcy5jOjExMgorKwkubG9jIDEgMTEyIDAK KyAJYWRkbAkkNCwgJWVzcAorIAl4b3JsCSVlYXgsICVlYXgKKyAJcG9wbAklZWJ4CistLkxDRkk0 MjoKKy0uTFZMMjk6CisrLkxDRkk0OToKKysuTFZMMzQ6CisgCXBvcGwJJWVicAorLS5MQ0ZJNDM6 CisrLkxDRkk1MDoKKyAJcmV0CistLkxGRTY6CisrLkxGRTc6CisgCS5zaXplCW1haW4sIC4tbWFp bgorICNBUFAKKyAJLnNlY3Rpb24JLmRlYnVnX2ZyYW1lLCIiLEBwcm9nYml0cworQEAgLTY0OSwy MCArNzA3LDU3IEBACisgCS5ieXRlCTB4ZAkjIERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCisgCS51 bGViMTI4IDB4NQorIAkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CistCS5sb25nCS5M Q0ZJNDAtLkxDRkkzOQorKwkubG9uZwkuTENGSTQxLS5MQ0ZJMzkKKysJLmJ5dGUJMHg4NgkjIERX X0NGQV9vZmZzZXQsIGNvbHVtbiAweDYKKysJLnVsZWIxMjggMHgzCisrCS5ieXRlCTB4NAkjIERX X0NGQV9hZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkk0Mi0uTENGSTQxCisrCS5ieXRlCTB4ODMJ IyBEV19DRkFfb2Zmc2V0LCBjb2x1bW4gMHgzCisrCS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDQJ IyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJNDMtLkxDRkk0MgorKwkuYnl0ZQkw eGQJIyBEV19DRkFfZGVmX2NmYV9yZWdpc3RlcgorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHhj NgkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHg2CisrCS5ieXRlCTB4YzMJIyBEV19DRkFfcmVz dG9yZSwgY29sdW1uIDB4MworKwkuYnl0ZQkweDQJIyBEV19DRkFfYWR2YW5jZV9sb2M0CisrCS5s b25nCS5MQ0ZJNDQtLkxDRkk0MworKwkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNvbHVt biAweDUKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4 NAorKwkuYWxpZ24gNAorKy5MRUZERTEyOgorKy5MU0ZERTE0OgorKwkubG9uZwkuTEVGREUxNC0u TEFTRkRFMTQJIyBGREUgTGVuZ3RoCisrLkxBU0ZERTE0OgorKwkubG9uZwkuTGZyYW1lMAkjIEZE RSBDSUUgb2Zmc2V0CisrCS5sb25nCS5MRkI3CSMgRkRFIGluaXRpYWwgbG9jYXRpb24KKysJLmxv bmcJLkxGRTctLkxGQjcJIyBGREUgYWRkcmVzcyByYW5nZQorKwkuYnl0ZQkweDQJIyBEV19DRkFf YWR2YW5jZV9sb2M0CisrCS5sb25nCS5MQ0ZJNDUtLkxGQjcKKysJLmJ5dGUJMHhlCSMgRFdfQ0ZB X2RlZl9jZmFfb2Zmc2V0CisrCS51bGViMTI4IDB4OAorKwkuYnl0ZQkweDg1CSMgRFdfQ0ZBX29m ZnNldCwgY29sdW1uIDB4NQorKwkudWxlYjEyOCAweDIKKysJLmJ5dGUJMHg0CSMgRFdfQ0ZBX2Fk dmFuY2VfbG9jNAorKwkubG9uZwkuTENGSTQ2LS5MQ0ZJNDUKKysJLmJ5dGUJMHhkCSMgRFdfQ0ZB X2RlZl9jZmFfcmVnaXN0ZXIKKysJLnVsZWIxMjggMHg1CisrCS5ieXRlCTB4NAkjIERXX0NGQV9h ZHZhbmNlX2xvYzQKKysJLmxvbmcJLkxDRkk0Ny0uTENGSTQ2CisgCS5ieXRlCTB4ODMJIyBEV19D RkFfb2Zmc2V0LCBjb2x1bW4gMHgzCisgCS51bGViMTI4IDB4MworIAkuYnl0ZQkweDQJIyBEV19D RkFfYWR2YW5jZV9sb2M0CistCS5sb25nCS5MQ0ZJNDItLkxDRkk0MAorKwkubG9uZwkuTENGSTQ5 LS5MQ0ZJNDcKKyAJLmJ5dGUJMHhjMwkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMHgzCisgCS5i eXRlCTB4NAkjIERXX0NGQV9hZHZhbmNlX2xvYzQKKy0JLmxvbmcJLkxDRkk0My0uTENGSTQyCisr CS5sb25nCS5MQ0ZJNTAtLkxDRkk0OQorIAkuYnl0ZQkweGM1CSMgRFdfQ0ZBX3Jlc3RvcmUsIGNv bHVtbiAweDUKKyAJLmJ5dGUJMHhjCSMgRFdfQ0ZBX2RlZl9jZmEKKyAJLnVsZWIxMjggMHg0Cisg CS51bGViMTI4IDB4NAorIAkuYWxpZ24gNAorLS5MRUZERTEyOgorKy5MRUZERTE0OgorICNOT19B UFAKKyAJLnRleHQKKyAuTGV0ZXh0MDoKK0BAIC0xMTMwLDYgKzEyMjUsMTEgQEAKKyAJLmJ5dGUJ MHg3NQkjIERXX09QX2JyZWc1CisgCS5zbGViMTI4IDgKKyAJLmxvbmcJLkxDRkk0My0uTHRleHQw CSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMSkKKysJLmxvbmcJLkxDRkk0 NC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTEpCisrCS52YWx1 ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2Jy ZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk0NC0uTHRleHQwCSMgTG9jYXRpb24gbGlz dCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMSkKKyAJLmxvbmcJLkxGRTYtLkx0ZXh0MAkjIExvY2F0 aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDExKQorIAkudmFsdWUJMHgyCSMgTG9jYXRpb24g ZXhwcmVzc2lvbiBzaXplCisgCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorQEAgLTExMzcsMTQg KzEyMzcsNzQgQEAKKyAJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAo Ki5MTFNUMTEpCisgCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxM U1QxMSkKKyAuTExTVDEyOgorLQkubG9uZwkuTFZMMjgtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3Qg YmVnaW4gYWRkcmVzcyAoKi5MTFNUMTIpCistCS5sb25nCS5MVkwyOS0uTHRleHQwCSMgTG9jYXRp b24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTIpCistCS52YWx1ZQkweDEJIyBMb2NhdGlvbiBl eHByZXNzaW9uIHNpemUKKysJLmxvbmcJLkxWTDI5LS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJl Z2luIGFkZHJlc3MgKCouTExTVDEyKQorKwkubG9uZwkuTFZMMzAtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEyKQorKwkudmFsdWUJMHhhCSMgTG9jYXRpb24gZXhw cmVzc2lvbiBzaXplCisrCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworKwkuc2xlYjEyOCAwCisr CS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MQkj IERXX09QX2ZicmVnCisrCS5zbGViMTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisr CS51bGViMTI4IDB4NAorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJLnVsZWIxMjggMHg0 CisrCS5sb25nCS5MVkwzMC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgq LkxMU1QxMikKKysJLmxvbmcJLkxWTDMxLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGVuZCBhZGRy ZXNzICgqLkxMU1QxMikKKysJLnZhbHVlCTB4OAkjIExvY2F0aW9uIGV4cHJlc3Npb24gc2l6ZQor IAkuYnl0ZQkweDUzCSMgRFdfT1BfcmVnMworKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJ LnVsZWIxMjggMHg0CisrCS5ieXRlCTB4NTYJIyBEV19PUF9yZWc2CisrCS5ieXRlCTB4OTMJIyBE V19PUF9waWVjZQorKwkudWxlYjEyOCAweDQKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisr CS51bGViMTI4IDB4NAorKwkubG9uZwkuTFZMMzEtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgYmVn aW4gYWRkcmVzcyAoKi5MTFNUMTIpCisrCS5sb25nCS5MVkwzMi0uTHRleHQwCSMgTG9jYXRpb24g bGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTIpCisrCS52YWx1ZQkweDcJIyBMb2NhdGlvbiBleHBy ZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4NAor KwkuYnl0ZQkweDU2CSMgRFdfT1BfcmVnNgorKwkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKysJ LnVsZWIxMjggMHg0CisrCS5ieXRlCTB4OTMJIyBEV19PUF9waWVjZQorKwkudWxlYjEyOCAweDQK KyAJLmxvbmcJMAkjIExvY2F0aW9uIGxpc3QgdGVybWluYXRvciBiZWdpbiAoKi5MTFNUMTIpCisg CS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgZW5kICgqLkxMU1QxMikKKysuTExT VDEzOgorKwkubG9uZwkuTEZCNy0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNz ICgqLkxMU1QxMykKKysJLmxvbmcJLkxDRkk0NS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQg YWRkcmVzcyAoKi5MTFNUMTMpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNp emUKKysJLmJ5dGUJMHg3NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDQKKysJLmxvbmcJLkxD Rkk0NS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMykKKysJ LmxvbmcJLkxDRkk0Ni0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNU MTMpCisrCS52YWx1ZQkweDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3 NAkjIERXX09QX2JyZWc0CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk0Ni0uTHRleHQwCSMg TG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1QxMykKKysJLmxvbmcJLkxDRkk1MC0u THRleHQwCSMgTG9jYXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUMTMpCisrCS52YWx1ZQkw eDIJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKysJLmJ5dGUJMHg3NQkjIERXX09QX2JyZWc1 CisrCS5zbGViMTI4IDgKKysJLmxvbmcJLkxDRkk1MC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBi ZWdpbiBhZGRyZXNzICgqLkxMU1QxMykKKysJLmxvbmcJLkxGRTctLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgZW5kIGFkZHJlc3MgKCouTExTVDEzKQorKwkudmFsdWUJMHgyCSMgTG9jYXRpb24gZXhw cmVzc2lvbiBzaXplCisrCS5ieXRlCTB4NzQJIyBEV19PUF9icmVnNAorKwkuc2xlYjEyOCA0Cisr CS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRlcm1pbmF0b3IgYmVnaW4gKCouTExTVDEzKQorKwku bG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUMTMpCisrLkxMU1Qx NDoKKysJLmxvbmcJLkxWTDMzLS5MdGV4dDAJIyBMb2NhdGlvbiBsaXN0IGJlZ2luIGFkZHJlc3Mg KCouTExTVDE0KQorKwkubG9uZwkuTFZMMzQtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFk ZHJlc3MgKCouTExTVDE0KQorKwkudmFsdWUJMHgxCSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXpl CisrCS5ieXRlCTB4NTMJIyBEV19PUF9yZWczCisrCS5sb25nCTAJIyBMb2NhdGlvbiBsaXN0IHRl cm1pbmF0b3IgYmVnaW4gKCouTExTVDE0KQorKwkubG9uZwkwCSMgTG9jYXRpb24gbGlzdCB0ZXJt aW5hdG9yIGVuZCAoKi5MTFNUMTQpCisgCS5zZWN0aW9uCS5kZWJ1Z19pbmZvCistCS5sb25nCTB4 MWUzCSMgTGVuZ3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKwkubG9uZwkweDI1MgkjIExl bmd0aCBvZiBDb21waWxhdGlvbiBVbml0IEluZm8KKyAJLnZhbHVlCTB4MgkjIERXQVJGIHZlcnNp b24gbnVtYmVyCisgCS5sb25nCS5MZGVidWdfYWJicmV2MAkjIE9mZnNldCBJbnRvIEFiYnJldi4g U2VjdGlvbgorIAkuYnl0ZQkweDQJIyBQb2ludGVyIFNpemUgKGluIGJ5dGVzKQorQEAgLTEyMTIs MTgyICsxMzcyLDI0NSBAQAorIAkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKyAJLnVs ZWIxMjggMAorIAkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDRmCistCS51bGVi MTI4IDB4NgkjIChESUUgKDB4NzgpIERXX1RBR19zdWJwcm9ncmFtKQorKwkudWxlYjEyOCAweDIJ IyAoRElFICgweDc4KSBEV19UQUdfc3RydWN0dXJlX3R5cGUpCisrCS5hc2NpaSAiQ1wwIgkjIERX X0FUX25hbWUKKysJLmJ5dGUJMHhjCSMgRFdfQVRfYnl0ZV9zaXplCisrCS5ieXRlCTB4MQkjIERX X0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRlCTB4MTkJIyBEV19BVF9kZWNsX2xpbmUK KysJLmxvbmcJMHhhNwkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHgzCSMgKERJRSAoMHg4 MikgRFdfVEFHX21lbWJlcikKKysJLmFzY2lpICJpXDAiCSMgRFdfQVRfbmFtZQorKwkuYnl0ZQkw eDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorKwkuYnl0ZQkweDE5CSMgRFdfQVRfZGVj bF9saW5lCisrCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisrCS5ieXRlCTB4MgkjIERXX0FUX2Rh dGFfbWVtYmVyX2xvY2F0aW9uCisrCS5ieXRlCTB4MjMJIyBEV19PUF9wbHVzX3Vjb25zdAorKwku dWxlYjEyOCAwCisrCS51bGViMTI4IDB4MwkjIChESUUgKDB4OGUpIERXX1RBR19tZW1iZXIpCisr CS5hc2NpaSAialwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl IChwaWVjZXMuYykKKysJLmJ5dGUJMHgxOQkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4 CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgor KwkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg0CisrCS51bGVi MTI4IDB4MwkjIChESUUgKDB4OWEpIERXX1RBR19tZW1iZXIpCisrCS5hc2NpaSAicVwwIgkjIERX X0FUX25hbWUKKysJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5 dGUJMHgxOQkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwku Ynl0ZQkweDIJIyBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbgorKwkuYnl0ZQkweDIzCSMgRFdf T1BfcGx1c191Y29uc3QKKysJLnVsZWIxMjggMHg4CisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRy ZW4gb2YgRElFIDB4NzgKKysJLnVsZWIxMjggMHg2CSMgKERJRSAoMHhhNykgRFdfVEFHX3N1YnBy b2dyYW0pCisgCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisgCS5hc2NpaSAiYmFyXDAiCSMg RFdfQVRfbmFtZQorIAkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorLQku Ynl0ZQkweDFiCSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4MWMJIyBEV19BVF9kZWNsX2xp bmUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfcHJvdG90eXBlZAorIAkubG9uZwkuTEZCMAkjIERXX0FU X2xvd19wYworIAkubG9uZwkuTEZFMAkjIERXX0FUX2hpZ2hfcGMKKyAJLmxvbmcJLkxMU1QwCSMg RFdfQVRfZnJhbWVfYmFzZQorLQkubG9uZwkweDllCSMgRFdfQVRfc2libGluZworLQkudWxlYjEy OCAweDcJIyAoRElFICgweDkxKSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKysJLmxvbmcJMHhj ZAkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhjMCkgRFdfVEFHX2Zv cm1hbF9wYXJhbWV0ZXIpCisgCS5hc2NpaSAieFwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgx CSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgxYgkjIERXX0FUX2RlY2xf bGluZQorKwkuYnl0ZQkweDFjCSMgRFdfQVRfZGVjbF9saW5lCisgCS5sb25nCTB4NDgJIyBEV19B VF90eXBlCisgCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisgCS5ieXRlCTB4OTEJIyBEV19P UF9mYnJlZworIAkuc2xlYjEyOCAwCistCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElF IDB4NzgKKy0JLnVsZWIxMjggMHg4CSMgKERJRSAoMHg5ZSkgRFdfVEFHX3N1YnByb2dyYW0pCisr CS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YTcKKysJLnVsZWIxMjggMHg4CSMg KERJRSAoMHhjZCkgRFdfVEFHX3N1YnByb2dyYW0pCisgCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVy bmFsCisgCS5hc2NpaSAiZjFcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2Rl Y2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4MjEJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5 dGUJMHgyMgkjIERXX0FUX2RlY2xfbGluZQorIAkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVk CisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5sb25nCS5MRkIxCSMgRFdfQVRfbG93X3Bj CisgCS5sb25nCS5MRkUxCSMgRFdfQVRfaGlnaF9wYworIAkubG9uZwkuTExTVDEJIyBEV19BVF9m cmFtZV9iYXNlCistCS5sb25nCTB4ZDQJIyBEV19BVF9zaWJsaW5nCistCS51bGViMTI4IDB4Nwkj IChESUUgKDB4YmEpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkubG9uZwkweDEwMwkjIERX X0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHhlOSkgRFdfVEFHX2Zvcm1hbF9w YXJhbWV0ZXIpCisgCS5hc2NpaSAia1wwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdf QVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgyMQkjIERXX0FUX2RlY2xfbGluZQor KwkuYnl0ZQkweDIyCSMgRFdfQVRfZGVjbF9saW5lCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBl CisgCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisgCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJl ZworIAkuc2xlYjEyOCAwCistCS51bGViMTI4IDB4OQkjIChESUUgKDB4YzYpIERXX1RBR192YXJp YWJsZSkKKysJLnVsZWIxMjggMHg5CSMgKERJRSAoMHhmNSkgRFdfVEFHX3ZhcmlhYmxlKQorIAku YXNjaWkgImFcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAo cGllY2VzLmMpCistCS5ieXRlCTB4MjMJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHgyNAkj IERXX0FUX2RlY2xfbGluZQorIAkubG9uZwkweDI1CSMgRFdfQVRfdHlwZQorIAkubG9uZwkuTExT VDIJIyBEV19BVF9sb2NhdGlvbgorLQkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAw eDllCistCS51bGViMTI4IDB4OAkjIChESUUgKDB4ZDQpIERXX1RBR19zdWJwcm9ncmFtKQorKwku Ynl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweGNkCisrCS51bGViMTI4IDB4OAkjIChE SUUgKDB4MTAzKSBEV19UQUdfc3VicHJvZ3JhbSkKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJu YWwKKyAJLmFzY2lpICJmMlwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVj bF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHgyYwkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0 ZQkweDJkCSMgRFdfQVRfZGVjbF9saW5lCisgCS5ieXRlCTB4MQkjIERXX0FUX3Byb3RvdHlwZWQK KyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxGQjIJIyBEV19BVF9sb3dfcGMK KyAJLmxvbmcJLkxGRTIJIyBEV19BVF9oaWdoX3BjCisgCS5sb25nCS5MTFNUMwkjIERXX0FUX2Zy YW1lX2Jhc2UKKy0JLmxvbmcJMHgxMGEJIyBEV19BVF9zaWJsaW5nCistCS51bGViMTI4IDB4Nwkj IChESUUgKDB4ZjApIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorKwkubG9uZwkweDEzOQkjIERX X0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMgKERJRSAoMHgxMWYpIERXX1RBR19mb3JtYWxf cGFyYW1ldGVyKQorIAkuYXNjaWkgImtcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERX X0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4MmMJIyBEV19BVF9kZWNsX2xpbmUK KysJLmJ5dGUJMHgyZAkjIERXX0FUX2RlY2xfbGluZQorIAkubG9uZwkweDQ4CSMgRFdfQVRfdHlw ZQorIAkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlvbgorIAkuYnl0ZQkweDkxCSMgRFdfT1BfZmJy ZWcKKyAJLnNsZWIxMjggMAorLQkudWxlYjEyOCAweDkJIyAoRElFICgweGZjKSBEV19UQUdfdmFy aWFibGUpCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MTJiKSBEV19UQUdfdmFyaWFibGUpCisg CS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxl IChwaWVjZXMuYykKKy0JLmJ5dGUJMHgyZQkjIERXX0FUX2RlY2xfbGluZQorLQkubG9uZwkweDEw YQkjIERXX0FUX3R5cGUKKysJLmJ5dGUJMHgyZgkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkw eDEzOQkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxMU1Q0CSMgRFdfQVRfbG9jYXRpb24KKy0JLmJ5 dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHhkNAorLQkudWxlYjEyOCAweGEJIyAoRElF ICgweDEwYSkgRFdfVEFHX2FycmF5X3R5cGUpCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4g b2YgRElFIDB4MTAzCisrCS51bGViMTI4IDB4YQkjIChESUUgKDB4MTM5KSBEV19UQUdfYXJyYXlf dHlwZSkKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKy0JLmxvbmcJMHgxMWEJIyBEV19BVF9z aWJsaW5nCistCS51bGViMTI4IDB4YgkjIChESUUgKDB4MTEzKSBEV19UQUdfc3VicmFuZ2VfdHlw ZSkKKy0JLmxvbmcJMHgxMWEJIyBEV19BVF90eXBlCisrCS5sb25nCTB4MTQ5CSMgRFdfQVRfc2li bGluZworKwkudWxlYjEyOCAweGIJIyAoRElFICgweDE0MikgRFdfVEFHX3N1YnJhbmdlX3R5cGUp CisrCS5sb25nCTB4MTQ5CSMgRFdfQVRfdHlwZQorIAkuYnl0ZQkweDEJIyBEV19BVF91cHBlcl9i b3VuZAorLQkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDEwYQorLQkudWxlYjEy OCAweGMJIyAoRElFICgweDExYSkgRFdfVEFHX2Jhc2VfdHlwZSkKKysJLmJ5dGUJMAkjIGVuZCBv ZiBjaGlsZHJlbiBvZiBESUUgMHgxMzkKKysJLnVsZWIxMjggMHhjCSMgKERJRSAoMHgxNDkpIERX X1RBR19iYXNlX3R5cGUpCisgCS5ieXRlCTB4NAkjIERXX0FUX2J5dGVfc2l6ZQorIAkuYnl0ZQkw eDcJIyBEV19BVF9lbmNvZGluZworLQkudWxlYjEyOCAweDgJIyAoRElFICgweDExZCkgRFdfVEFH X3N1YnByb2dyYW0pCisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4MTRjKSBEV19UQUdfc3VicHJv Z3JhbSkKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJuYWwKKyAJLmFzY2lpICJmM1wwIgkjIERX X0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5 dGUJMHgzNwkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDM4CSMgRFdfQVRfZGVjbF9saW5l CisgCS5ieXRlCTB4MQkjIERXX0FUX3Byb3RvdHlwZWQKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5 cGUKKyAJLmxvbmcJLkxGQjMJIyBEV19BVF9sb3dfcGMKKyAJLmxvbmcJLkxGRTMJIyBEV19BVF9o aWdoX3BjCisgCS5sb25nCS5MTFNUNQkjIERXX0FUX2ZyYW1lX2Jhc2UKKy0JLmxvbmcJMHgxNTMJ IyBEV19BVF9zaWJsaW5nCistCS51bGViMTI4IDB4NwkjIChESUUgKDB4MTM5KSBEV19UQUdfZm9y bWFsX3BhcmFtZXRlcikKKysJLmxvbmcJMHgxODIJIyBEV19BVF9zaWJsaW5nCisrCS51bGViMTI4 IDB4NwkjIChESUUgKDB4MTY4KSBEV19UQUdfZm9ybWFsX3BhcmFtZXRlcikKKyAJLmFzY2lpICJr XDAiCSMgRFdfQVRfbmFtZQorIAkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5j KQorLQkuYnl0ZQkweDM3CSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4MzgJIyBEV19BVF9k ZWNsX2xpbmUKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmJ5dGUJMHgyCSMgRFdfQVRf bG9jYXRpb24KKyAJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisgCS5zbGViMTI4IDAKKy0JLnVs ZWIxMjggMHg5CSMgKERJRSAoMHgxNDUpIERXX1RBR192YXJpYWJsZSkKKysJLnVsZWIxMjggMHg5 CSMgKERJRSAoMHgxNzQpIERXX1RBR192YXJpYWJsZSkKKyAJLmFzY2lpICJhXDAiCSMgRFdfQVRf bmFtZQorIAkuYnl0ZQkweDEJIyBEV19BVF9kZWNsX2ZpbGUgKHBpZWNlcy5jKQorLQkuYnl0ZQkw eDM5CSMgRFdfQVRfZGVjbF9saW5lCisrCS5ieXRlCTB4M2EJIyBEV19BVF9kZWNsX2xpbmUKKyAJ LmxvbmcJMHg0ZgkjIERXX0FUX3R5cGUKKyAJLmxvbmcJLkxMU1Q2CSMgRFdfQVRfbG9jYXRpb24K Ky0JLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxMWQKKy0JLnVsZWIxMjggMHg4 CSMgKERJRSAoMHgxNTMpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNo aWxkcmVuIG9mIERJRSAweDE0YworKwkudWxlYjEyOCAweDgJIyAoRElFICgweDE4MikgRFdfVEFH X3N1YnByb2dyYW0pCisgCS5ieXRlCTB4MQkjIERXX0FUX2V4dGVybmFsCisgCS5hc2NpaSAiZjRc MCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMp CistCS5ieXRlCTB4NDIJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg0MwkjIERXX0FUX2Rl Y2xfbGluZQorIAkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisgCS5sb25nCTB4NDgJIyBE V19BVF90eXBlCisgCS5sb25nCS5MRkI0CSMgRFdfQVRfbG93X3BjCisgCS5sb25nCS5MRkU0CSMg RFdfQVRfaGlnaF9wYworIAkubG9uZwkuTExTVDcJIyBEV19BVF9mcmFtZV9iYXNlCistCS5sb25n CTB4MTg5CSMgRFdfQVRfc2libGluZworLQkudWxlYjEyOCAweDcJIyAoRElFICgweDE2ZikgRFdf VEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisrCS5sb25nCTB4MWI4CSMgRFdfQVRfc2libGluZworKwku dWxlYjEyOCAweDcJIyAoRElFICgweDE5ZSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisgCS5h c2NpaSAia1wwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChw aWVjZXMuYykKKy0JLmJ5dGUJMHg0MgkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDQzCSMg RFdfQVRfZGVjbF9saW5lCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5ieXRlCTB4Mgkj IERXX0FUX2xvY2F0aW9uCisgCS5ieXRlCTB4OTEJIyBEV19PUF9mYnJlZworIAkuc2xlYjEyOCAw CistCS51bGViMTI4IDB4OQkjIChESUUgKDB4MTdiKSBEV19UQUdfdmFyaWFibGUpCisrCS51bGVi MTI4IDB4OQkjIChESUUgKDB4MWFhKSBEV19UQUdfdmFyaWFibGUpCisgCS5hc2NpaSAiYVwwIgkj IERXX0FUX25hbWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0J LmJ5dGUJMHg0NAkjIERXX0FUX2RlY2xfbGluZQorLQkubG9uZwkweDEwYQkjIERXX0FUX3R5cGUK KysJLmJ5dGUJMHg0NQkjIERXX0FUX2RlY2xfbGluZQorKwkubG9uZwkweDEzOQkjIERXX0FUX3R5 cGUKKyAJLmxvbmcJLkxMU1Q4CSMgRFdfQVRfbG9jYXRpb24KKy0JLmJ5dGUJMAkjIGVuZCBvZiBj aGlsZHJlbiBvZiBESUUgMHgxNTMKKy0JLnVsZWIxMjggMHg4CSMgKERJRSAoMHgxODkpIERXX1RB R19zdWJwcm9ncmFtKQorKwkuYnl0ZQkwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDE4Mgor KwkudWxlYjEyOCAweDgJIyAoRElFICgweDFiOCkgRFdfVEFHX3N1YnByb2dyYW0pCisgCS5ieXRl CTB4MQkjIERXX0FUX2V4dGVybmFsCisgCS5hc2NpaSAiZjVcMCIJIyBEV19BVF9uYW1lCisgCS5i eXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4NGQJIyBEV19B VF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg0ZQkjIERXX0FUX2RlY2xfbGluZQorIAkuYnl0ZQkweDEJ IyBEV19BVF9wcm90b3R5cGVkCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5sb25nCS5M RkI1CSMgRFdfQVRfbG93X3BjCisgCS5sb25nCS5MRkU1CSMgRFdfQVRfaGlnaF9wYworIAkubG9u ZwkuTExTVDkJIyBEV19BVF9mcmFtZV9iYXNlCistCS5sb25nCTB4MWJmCSMgRFdfQVRfc2libGlu ZworLQkudWxlYjEyOCAweDcJIyAoRElFICgweDFhNSkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIp CisrCS5sb25nCTB4MWVlCSMgRFdfQVRfc2libGluZworKwkudWxlYjEyOCAweDcJIyAoRElFICgw eDFkNCkgRFdfVEFHX2Zvcm1hbF9wYXJhbWV0ZXIpCisgCS5hc2NpaSAia1wwIgkjIERXX0FUX25h bWUKKyAJLmJ5dGUJMHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHg0 ZAkjIERXX0FUX2RlY2xfbGluZQorKwkuYnl0ZQkweDRlCSMgRFdfQVRfZGVjbF9saW5lCisgCS5s b25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5ieXRlCTB4MgkjIERXX0FUX2xvY2F0aW9uCisgCS5i eXRlCTB4OTEJIyBEV19PUF9mYnJlZworIAkuc2xlYjEyOCAwCistCS51bGViMTI4IDB4OQkjIChE SUUgKDB4MWIxKSBEV19UQUdfdmFyaWFibGUpCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MWUw KSBEV19UQUdfdmFyaWFibGUpCisgCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKyAJLmJ5dGUJ MHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKy0JLmJ5dGUJMHg0ZgkjIERXX0FUX2Rl Y2xfbGluZQorKwkuYnl0ZQkweDUwCSMgRFdfQVRfZGVjbF9saW5lCisgCS5sb25nCTB4MjUJIyBE V19BVF90eXBlCisgCS5sb25nCS5MTFNUMTAJIyBEV19BVF9sb2NhdGlvbgorLQkuYnl0ZQkwCSMg ZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAweDE4OQorLQkudWxlYjEyOCAweGQJIyAoRElFICgweDFi ZikgRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElF IDB4MWI4CisrCS51bGViMTI4IDB4OAkjIChESUUgKDB4MWVlKSBEV19UQUdfc3VicHJvZ3JhbSkK KyAJLmJ5dGUJMHgxCSMgRFdfQVRfZXh0ZXJuYWwKKy0JLmxvbmcJLkxBU0YwCSMgRFdfQVRfbmFt ZTogIm1haW4iCisrCS5hc2NpaSAiZjZcMCIJIyBEV19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERX X0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5ieXRlCTB4NTgJIyBEV19BVF9kZWNsX2xpbmUK KysJLmJ5dGUJMHg1OQkjIERXX0FUX2RlY2xfbGluZQorIAkuYnl0ZQkweDEJIyBEV19BVF9wcm90 b3R5cGVkCisgCS5sb25nCTB4NDgJIyBEV19BVF90eXBlCisgCS5sb25nCS5MRkI2CSMgRFdfQVRf bG93X3BjCisgCS5sb25nCS5MRkU2CSMgRFdfQVRfaGlnaF9wYworIAkubG9uZwkuTExTVDExCSMg RFdfQVRfZnJhbWVfYmFzZQorLQkudWxlYjEyOCAweDkJIyAoRElFICgweDFkOCkgRFdfVEFHX3Zh cmlhYmxlKQorKwkubG9uZwkweDIyZQkjIERXX0FUX3NpYmxpbmcKKysJLnVsZWIxMjggMHg3CSMg KERJRSAoMHgyMGEpIERXX1RBR19mb3JtYWxfcGFyYW1ldGVyKQorIAkuYXNjaWkgImtcMCIJIyBE V19BVF9uYW1lCisgCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCistCS5i eXRlCTB4NWEJIyBEV19BVF9kZWNsX2xpbmUKKysJLmJ5dGUJMHg1OQkjIERXX0FUX2RlY2xfbGlu ZQorIAkubG9uZwkweDQ4CSMgRFdfQVRfdHlwZQorKwkuYnl0ZQkweDIJIyBEV19BVF9sb2NhdGlv bgorKwkuYnl0ZQkweDkxCSMgRFdfT1BfZmJyZWcKKysJLnNsZWIxMjggMAorKwkudWxlYjEyOCAw eGQJIyAoRElFICgweDIxNikgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkgInpcMCIJIyBEV19B VF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRl CTB4NWIJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKysJLmJ5 dGUJMHgxNwkjIERXX0FUX2NvbnN0X3ZhbHVlCisrCS51bGViMTI4IDB4OQkjIChESUUgKDB4MjIw KSBEV19UQUdfdmFyaWFibGUpCisrCS5hc2NpaSAiYVwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJ MHgxCSMgRFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg1YwkjIERXX0FUX2Rl Y2xfbGluZQorKwkubG9uZwkweDc4CSMgRFdfQVRfdHlwZQorIAkubG9uZwkuTExTVDEyCSMgRFdf QVRfbG9jYXRpb24KKy0JLmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxYmYKKysJ LmJ5dGUJMAkjIGVuZCBvZiBjaGlsZHJlbiBvZiBESUUgMHgxZWUKKysJLnVsZWIxMjggMHhlCSMg KERJRSAoMHgyMmUpIERXX1RBR19zdWJwcm9ncmFtKQorKwkuYnl0ZQkweDEJIyBEV19BVF9leHRl cm5hbAorKwkubG9uZwkuTEFTRjAJIyBEV19BVF9uYW1lOiAibWFpbiIKKysJLmJ5dGUJMHgxCSMg RFdfQVRfZGVjbF9maWxlIChwaWVjZXMuYykKKysJLmJ5dGUJMHg2NQkjIERXX0FUX2RlY2xfbGlu ZQorKwkuYnl0ZQkweDEJIyBEV19BVF9wcm90b3R5cGVkCisrCS5sb25nCTB4NDgJIyBEV19BVF90 eXBlCisrCS5sb25nCS5MRkI3CSMgRFdfQVRfbG93X3BjCisrCS5sb25nCS5MRkU3CSMgRFdfQVRf aGlnaF9wYworKwkubG9uZwkuTExTVDEzCSMgRFdfQVRfZnJhbWVfYmFzZQorKwkudWxlYjEyOCAw eDkJIyAoRElFICgweDI0NykgRFdfVEFHX3ZhcmlhYmxlKQorKwkuYXNjaWkgImtcMCIJIyBEV19B VF9uYW1lCisrCS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAocGllY2VzLmMpCisrCS5ieXRl CTB4NjcJIyBEV19BVF9kZWNsX2xpbmUKKysJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKysJLmxv bmcJLkxMU1QxNAkjIERXX0FUX2xvY2F0aW9uCisrCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4g b2YgRElFIDB4MjJlCisgCS5ieXRlCTAJIyBlbmQgb2YgY2hpbGRyZW4gb2YgRElFIDB4YgorIAku c2VjdGlvbgkuZGVidWdfYWJicmV2CisgCS51bGViMTI4IDB4MQkjIChhYmJyZXYgY29kZSkKK0BA IC0xNTc3LDYgKzE4MDAsMjEgQEAKKyAJLmJ5dGUJMAorIAkuYnl0ZQkwCisgCS51bGViMTI4IDB4 ZAkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgzNAkjIChUQUc6IERXX1RBR192YXJpYWJs ZSkKKysJLmJ5dGUJMAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4MwkjIChEV19BVF9u YW1lKQorKwkudWxlYjEyOCAweDgJIyAoRFdfRk9STV9zdHJpbmcpCisrCS51bGViMTI4IDB4M2EJ IyAoRFdfQVRfZGVjbF9maWxlKQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJ LnVsZWIxMjggMHgzYgkjIChEV19BVF9kZWNsX2xpbmUpCisrCS51bGViMTI4IDB4YgkjIChEV19G T1JNX2RhdGExKQorKwkudWxlYjEyOCAweDQ5CSMgKERXX0FUX3R5cGUpCisrCS51bGViMTI4IDB4 MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAweDFjCSMgKERXX0FUX2NvbnN0X3ZhbHVl KQorKwkudWxlYjEyOCAweGIJIyAoRFdfRk9STV9kYXRhMSkKKysJLmJ5dGUJMAorKwkuYnl0ZQkw CisrCS51bGViMTI4IDB4ZQkjIChhYmJyZXYgY29kZSkKKyAJLnVsZWIxMjggMHgyZQkjIChUQUc6 IERXX1RBR19zdWJwcm9ncmFtKQorIAkuYnl0ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKyAJLnVs ZWIxMjggMHgzZgkjIChEV19BVF9leHRlcm5hbCkKK0BAIC0xNjAxLDM0ICsxODM5LDM4IEBACisg CS5ieXRlCTAKKyAJLmJ5dGUJMAorIAkuc2VjdGlvbgkuZGVidWdfcHVibmFtZXMsIiIsQHByb2di aXRzCistCS5sb25nCTB4NDIJIyBMZW5ndGggb2YgUHVibGljIE5hbWVzIEluZm8KKysJLmxvbmcJ MHg0OQkjIExlbmd0aCBvZiBQdWJsaWMgTmFtZXMgSW5mbworIAkudmFsdWUJMHgyCSMgRFdBUkYg VmVyc2lvbgorIAkubG9uZwkuTGRlYnVnX2luZm8wCSMgT2Zmc2V0IG9mIENvbXBpbGF0aW9uIFVu aXQgSW5mbworLQkubG9uZwkweDFlNwkjIENvbXBpbGF0aW9uIFVuaXQgTGVuZ3RoCistCS5sb25n CTB4NzgJIyBESUUgb2Zmc2V0CisrCS5sb25nCTB4MjU2CSMgQ29tcGlsYXRpb24gVW5pdCBMZW5n dGgKKysJLmxvbmcJMHhhNwkjIERJRSBvZmZzZXQKKyAJLmFzY2lpICJiYXJcMCIJIyBleHRlcm5h bCBuYW1lCistCS5sb25nCTB4OWUJIyBESUUgb2Zmc2V0CisrCS5sb25nCTB4Y2QJIyBESUUgb2Zm c2V0CisgCS5hc2NpaSAiZjFcMCIJIyBleHRlcm5hbCBuYW1lCistCS5sb25nCTB4ZDQJIyBESUUg b2Zmc2V0CisrCS5sb25nCTB4MTAzCSMgRElFIG9mZnNldAorIAkuYXNjaWkgImYyXDAiCSMgZXh0 ZXJuYWwgbmFtZQorLQkubG9uZwkweDExZAkjIERJRSBvZmZzZXQKKysJLmxvbmcJMHgxNGMJIyBE SUUgb2Zmc2V0CisgCS5hc2NpaSAiZjNcMCIJIyBleHRlcm5hbCBuYW1lCistCS5sb25nCTB4MTUz CSMgRElFIG9mZnNldAorKwkubG9uZwkweDE4MgkjIERJRSBvZmZzZXQKKyAJLmFzY2lpICJmNFww IgkjIGV4dGVybmFsIG5hbWUKKy0JLmxvbmcJMHgxODkJIyBESUUgb2Zmc2V0CisrCS5sb25nCTB4 MWI4CSMgRElFIG9mZnNldAorIAkuYXNjaWkgImY1XDAiCSMgZXh0ZXJuYWwgbmFtZQorLQkubG9u ZwkweDFiZgkjIERJRSBvZmZzZXQKKysJLmxvbmcJMHgxZWUJIyBESUUgb2Zmc2V0CisrCS5hc2Np aSAiZjZcMCIJIyBleHRlcm5hbCBuYW1lCisrCS5sb25nCTB4MjJlCSMgRElFIG9mZnNldAorIAku YXNjaWkgIm1haW5cMCIJIyBleHRlcm5hbCBuYW1lCisgCS5sb25nCTAKKyAJLnNlY3Rpb24JLmRl YnVnX3B1YnR5cGVzLCIiLEBwcm9nYml0cworLQkubG9uZwkweDFhCSMgTGVuZ3RoIG9mIFB1Ymxp YyBUeXBlIE5hbWVzIEluZm8KKysJLmxvbmcJMHgyMAkjIExlbmd0aCBvZiBQdWJsaWMgVHlwZSBO YW1lcyBJbmZvCisgCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJzaW9uCisgCS5sb25nCS5MZGVidWdf aW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJbmZvCistCS5sb25nCTB4MWU3CSMg Q29tcGlsYXRpb24gVW5pdCBMZW5ndGgKKysJLmxvbmcJMHgyNTYJIyBDb21waWxhdGlvbiBVbml0 IExlbmd0aAorIAkubG9uZwkweDI1CSMgRElFIG9mZnNldAorIAkuYXNjaWkgIkFcMCIJIyBleHRl cm5hbCBuYW1lCisgCS5sb25nCTB4NGYJIyBESUUgb2Zmc2V0CisgCS5hc2NpaSAiQlwwIgkjIGV4 dGVybmFsIG5hbWUKKysJLmxvbmcJMHg3OAkjIERJRSBvZmZzZXQKKysJLmFzY2lpICJDXDAiCSMg ZXh0ZXJuYWwgbmFtZQorIAkubG9uZwkwCisgCS5zZWN0aW9uCS5kZWJ1Z19hcmFuZ2VzLCIiLEBw cm9nYml0cworIAkubG9uZwkweDFjCSMgTGVuZ3RoIG9mIEFkZHJlc3MgUmFuZ2VzIEluZm8KKy0t LSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5jCTIwMTAvMDUvMjEgMjA6Mzk6 NTAJMS4xCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9waWVjZXMuYwkyMDEwLzA1 LzIxIDIxOjAxOjQ2CTEuMgorQEAgLTIyLDYgKzIyLDcgQEAKKyAKKyBzdHJ1Y3QgQSB7IGludCBp OyBpbnQgajsgfTsKKyBzdHJ1Y3QgQiB7IGludCA6IDQ7IGludCBpIDogMTI7IGludCBqIDogMTI7 IGludCA6IDQ7IH07Cisrc3RydWN0IEMgeyBpbnQgaTsgaW50IGo7IGludCBxOyB9OworIAorIF9f YXR0cmlidXRlX18oKG5vaW5saW5lKSkgdm9pZAorIGJhciAoaW50IHgpCitAQCAtODQsNiArODUs MTggQEAKKyAgIHJldHVybiBhLmkgKyBhLmo7CQkvKiBmNSBicmVha3BvaW50ICovCisgfQorIAor K19fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgaW50CisrZjYgKGludCBrKQorK3sKKysgIGludCB6 ID0gMjM7CisrICBzdHJ1Y3QgQyBhID0geyBrLCBrLCB6fTsKKysgIGFzbSAoIiIgOiAiK3IiIChh LmkpKTsKKysgIGEuaisrOworKyAgYmFyIChhLmkpOworKyAgYmFyIChhLmopOworKyAgcmV0dXJu IGEuaSArIGEuajsJCS8qIGY2IGJyZWFrcG9pbnQgKi8KKyt9CisrCisgaW50CisgbWFpbiAodm9p ZCkKKyB7CitAQCAtOTQsNSArMTA3LDYgQEAKKyAgIGYzIChrKTsKKyAgIGY0IChrKTsKKyAgIGY1 IChrKTsKKysgIGY2IChrKTsKKyAgIHJldHVybiAwOworIH0KKy0tLSBzcmMvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8yMSAyMTowMDoyNwkxLjIKKysrKyBzcmMv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8yMSAyMTowMTo0Ngkx LjMKK0BAIC02Nyw1ICs2NywyOCBAQAorICAgICBnZGJfdGVzdCAicHJpbnQgYVxbMVxdIiAiID0g MTQiICJwcmludCBhXFsxXF0gaW4gcGllY2VzOmYyIgorIH0KKyAKKysjIEZ1bmN0aW9uIGY2IHRl c3RzIGZvciBhbiBlbXB0eSBEV19PUF9waWVjZS4KKytwcm9jIHBpZWNlc190ZXN0X2Y2IHt9IHsK KysgICAgZ2xvYmFsIGNzcmNmaWxlCisrICAgIHNldCBsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJmNiBicmVha3BvaW50IiAkY3NyY2ZpbGVdCisrICAgIGdkYl90ZXN0ICJicmVhayBwaWVjZXMu YzokbGluZSIgIkJyZWFrcG9pbnQgNC4qIiBcCisrICAgICAgICJzZXQgZjYgYnJlYWtwb2ludCBm b3IgcGllY2VzIgorKyAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiY29udGludWUgdG8g ZjYgYnJlYWtwb2ludCBmb3IgcGllY2VzIgorKyAgICBnZGJfdGVzdCAicHJpbnQgYSIgXAorKwki d2FybmluZzogYnl0ZXMgLiogaW4gY29tcHV0ZWQgb2JqZWN0IHdlcmUuKiA9IHtpID0gNywgaiA9 IDgsIHEgPSAwfSIgXAorKwkicHJpbnQgYSB3aXRoIG9wdGltaXplZCBvdXQgcGllY2UiCisrICAg ICMgTm90ZTogbm8gd2FybmluZyBmb3IgdGhpcyBjYXNlLgorKyAgICBnZGJfdGVzdF9tdWx0aXBs ZSAicHJpbnQgYS5pIiBcCisrCSJwcmludCBhLmkgd2l0aCBvcHRpbWl6ZWQgb3V0IHBpZWNlIiB7 CisrCSAgICAtcmUgIndhcm5pbmc6IHNvbWUgYml0cyBpbiBjb21wdXRlZCBvYmplY3QiIHsKKysJ CWZhaWwgInByaW50IGEuaSB3aXRoIG9wdGltaXplZCBvdXQgcGllY2UiCisrCSAgICB9CisrCSAg ICAtcmUgIiA9IDciIHsKKysJCXBhc3MgInByaW50IGEuaSB3aXRoIG9wdGltaXplZCBvdXQgcGll Y2UiCisrCSAgICB9CisrCX0KKyt9CisrCisgcGllY2VzX3Rlc3RfZjEKKyBwaWVjZXNfdGVzdF9m MgorK3BpZWNlc190ZXN0X2Y2CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTg5NDY3LXBpZWNlczRvZjQu cGF0Y2ggYi9nZGItYno1ODk0NjctcGllY2VzNG9mNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40MmZmYjQxCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6NTg5NDY3 LXBpZWNlczRvZjQucGF0Y2gKQEAgLTAsMCArMSw4MjAgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9tbC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAxOTEuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VM b2cJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjExODMyCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAx MC8wNS8yMSAyMToxMzoxMAkxLjExODMzCisjIyAtMSw1ICsxLDIwIEBACisgMjAxMC0wNS0yMSAg VG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgorIAorKwkqIGR3YXJmMmxvYy5jIChleHRy YWN0X2JpdHNfcHJpbWl0aXZlKTogTmV3IGZ1bmN0aW9uLgorKwkoZXh0cmFjdF9iaXRzKTogTGlr ZXdpc2UuCisrCShpbnNlcnRfYml0cyk6IExpa2V3aXNlLgorKwkoY29weV9iaXR3aXNlKTogTGlr ZXdpc2UuCisrCShyZWFkX3BpZWNlZF92YWx1ZSk6IERvIGFsbCBvcGVyYXRpb25zIGluIGJpdHMu CisrCSh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKysJKiBkd2FyZjJleHByLmggKHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlKSA8b2Zmc2V0PjogTmV3IGZpZWxkLgorKwkqIGR3YXJmMmV4 cHIuYyAoYWRkX3BpZWNlKTogTmV3IGFyZ3VtZW50cyBiaXRfcGllY2UsIG9mZnNldC4KKysJQWx3 YXlzIHVzZSB4cmVhbGxvYyB0byByZXNpemUgcGllY2UgYXJyYXkuCisrCShleGVjdXRlX3N0YWNr X29wKSA8RFdfT1BfcmVnMD46IEhhbmRsZSBEV19PUF9iaXRfcGllY2UuCisrCTxEV19PUF9waWVj ZT46IFVwZGF0ZS4KKysJPERXX09QX2JpdF9waWVjZT46IE5ldyBjYXNlLgorKworIyMjIHNyYy9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuMjI3NQorIyMjIHNy Yy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDEwLzA1LzIxIDIxOjEzOjEzCTEuMjI3NgorIyMg LTEsNSArMSwxMiBAQAorIDIwMTAtMDUtMjEgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNv bT4KKyAKKysJKiBnZGIuZHdhcmYyL3BpZWNlcy5leHAgKHBpZWNlc190ZXN0X2YzKTogTmV3IHBy b2MuCisrCUNhbGwgaXQuCisrCSogZ2RiLmR3YXJmMi9waWVjZXMuUzogVXBkYXRlLgorKwkqIGdk Yi5kd2FyZjIvcGllY2VzLmMgKHN0cnVjdCBCKTogUmVtb3ZlIGluaXRpYWwgZmllbGQuCisrCist LS0gc3JjL2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjQzCisrKysgc3Jj L2dkYi9kd2FyZjJleHByLmMJMjAxMC8wNS8yMSAyMToxMzoxMAkxLjQ0CitAQCAtMTUzLDIzICsx NTMsMjEgQEAKKyAKKyAvKiBBZGQgYSBuZXcgcGllY2UgdG8gQ1RYJ3MgcGllY2UgbGlzdC4gICov Cisgc3RhdGljIHZvaWQKKy1hZGRfcGllY2UgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0 eCwgVUxPTkdFU1Qgc2l6ZSkKKythZGRfcGllY2UgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQg KmN0eCwgVUxPTkdFU1Qgc2l6ZSwgVUxPTkdFU1Qgb2Zmc2V0KQorIHsKKyAgIHN0cnVjdCBkd2Fy Zl9leHByX3BpZWNlICpwOworIAorICAgY3R4LT5udW1fcGllY2VzKys7CisgCistICBpZiAoY3R4 LT5waWVjZXMpCistICAgIGN0eC0+cGllY2VzID0geHJlYWxsb2MgKGN0eC0+cGllY2VzLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4LT5udW1fcGllY2VzCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIHNpemVvZiAoc3RydWN0IGR3YXJmX2V4cHJfcGllY2UpKSk7Cist ICBlbHNlCistICAgIGN0eC0+cGllY2VzID0geG1hbGxvYyAoY3R4LT5udW1fcGllY2VzCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgKiBzaXplb2YgKHN0cnVjdCBkd2FyZl9leHByX3BpZWNl KSk7CisrICBjdHgtPnBpZWNlcyA9IHhyZWFsbG9jIChjdHgtPnBpZWNlcywKKysJCQkgIChjdHgt Pm51bV9waWVjZXMKKysJCQkgICAqIHNpemVvZiAoc3RydWN0IGR3YXJmX2V4cHJfcGllY2UpKSk7 CisgCisgICBwID0gJmN0eC0+cGllY2VzW2N0eC0+bnVtX3BpZWNlcyAtIDFdOworICAgcC0+bG9j YXRpb24gPSBjdHgtPmxvY2F0aW9uOworICAgcC0+c2l6ZSA9IHNpemU7CisrICBwLT5vZmZzZXQg PSBvZmZzZXQ7CisrCisgICBpZiAocC0+bG9jYXRpb24gPT0gRFdBUkZfVkFMVUVfTElURVJBTCkK KyAgICAgeworICAgICAgIHAtPnYubGl0ZXJhbC5kYXRhID0gY3R4LT5kYXRhOworQEAgLTQ5OSw5 ICs0OTcsMTEgQEAKKyAJY2FzZSBEV19PUF9yZWczMToKKyAJICBpZiAob3BfcHRyICE9IG9wX2Vu ZCAKKyAJICAgICAgJiYgKm9wX3B0ciAhPSBEV19PUF9waWVjZQorKwkgICAgICAmJiAqb3BfcHRy ICE9IERXX09QX2JpdF9waWVjZQorIAkgICAgICAmJiAqb3BfcHRyICE9IERXX09QX0dOVV91bmlu aXQpCisgCSAgICBlcnJvciAoXygiRFdBUkYtMiBleHByZXNzaW9uIGVycm9yOiBEV19PUF9yZWcg b3BlcmF0aW9ucyBtdXN0IGJlICIKKy0JCSAgICJ1c2VkIGVpdGhlciBhbG9uZSBvciBpbiBjb25q dWN0aW9uIHdpdGggRFdfT1BfcGllY2UuIikpOworKwkJICAgICAidXNlZCBlaXRoZXIgYWxvbmUg b3IgaW4gY29uanVjdGlvbiB3aXRoIERXX09QX3BpZWNlICIKKysJCSAgICAgIm9yIERXX09QX2Jp dF9waWVjZS4iKSk7CisgCisgCSAgcmVzdWx0ID0gb3AgLSBEV19PUF9yZWcwOworIAkgIGN0eC0+ bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9SRUdJU1RFUjsKK0BAIC04NzIsNyArODcyLDcgQEAKKyAK KyAgICAgICAgICAgICAvKiBSZWNvcmQgdGhlIHBpZWNlLiAgKi8KKyAgICAgICAgICAgICBvcF9w dHIgPSByZWFkX3VsZWIxMjggKG9wX3B0ciwgb3BfZW5kLCAmc2l6ZSk7CistCSAgICBhZGRfcGll Y2UgKGN0eCwgc2l6ZSk7CisrCSAgICBhZGRfcGllY2UgKGN0eCwgOCAqIHNpemUsIDApOworIAor ICAgICAgICAgICAgIC8qIFBvcCBvZmYgdGhlIGFkZHJlc3MvcmVnbnVtLCBhbmQgcmVzZXQgdGhl IGxvY2F0aW9uCisgCSAgICAgICB0eXBlLiAgKi8KK0BAIC04ODMsNiArODgzLDI0IEBACisgICAg ICAgICAgIH0KKyAgICAgICAgICAgZ290byBub19wdXNoOworIAorKwljYXNlIERXX09QX2JpdF9w aWVjZToKKysJICB7CisrCSAgICBVTE9OR0VTVCBzaXplLCBvZmZzZXQ7CisrCisrICAgICAgICAg ICAgLyogUmVjb3JkIHRoZSBwaWVjZS4gICovCisrCSAgICBvcF9wdHIgPSByZWFkX3VsZWIxMjgg KG9wX3B0ciwgb3BfZW5kLCAmc2l6ZSk7CisrCSAgICBvcF9wdHIgPSByZWFkX3VsZWIxMjggKG9w X3B0ciwgb3BfZW5kLCAmb2Zmc2V0KTsKKysJICAgIGFkZF9waWVjZSAoY3R4LCBzaXplLCBvZmZz ZXQpOworKworKyAgICAgICAgICAgIC8qIFBvcCBvZmYgdGhlIGFkZHJlc3MvcmVnbnVtLCBhbmQg cmVzZXQgdGhlIGxvY2F0aW9uCisrCSAgICAgICB0eXBlLiAgKi8KKysJICAgIGlmIChjdHgtPmxv Y2F0aW9uICE9IERXQVJGX1ZBTFVFX0xJVEVSQUwKKysJCSYmIGN0eC0+bG9jYXRpb24gIT0gRFdB UkZfVkFMVUVfT1BUSU1JWkVEX09VVCkKKysJICAgICAgZHdhcmZfZXhwcl9wb3AgKGN0eCk7Cisr ICAgICAgICAgICAgY3R4LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX01FTU9SWTsKKysJICB9Cisr CSAgZ290byBub19wdXNoOworKworIAljYXNlIERXX09QX0dOVV91bmluaXQ6CisgCSAgaWYgKG9w X3B0ciAhPSBvcF9lbmQpCisgCSAgICBlcnJvciAoXygiRFdBUkYtMiBleHByZXNzaW9uIGVycm9y OiBEV19PUF9HTlVfdW5pbml0IG11c3QgYWx3YXlzICIKKy0tLSBzcmMvZ2RiL2R3YXJmMmV4cHIu aAkyMDEwLzA1LzIxIDIxOjAxOjQ2CTEuMjEKKysrKyBzcmMvZ2RiL2R3YXJmMmV4cHIuaAkyMDEw LzA1LzIxIDIxOjEzOjExCTEuMjIKK0BAIC0xNTUsNyArMTU1LDcgQEAKKyB9OworIAorIAorLS8q IEEgcGllY2Ugb2YgYW4gb2JqZWN0LCBhcyByZWNvcmRlZCBieSBEV19PUF9waWVjZS4gICovCisr LyogQSBwaWVjZSBvZiBhbiBvYmplY3QsIGFzIHJlY29yZGVkIGJ5IERXX09QX3BpZWNlIG9yIERX X09QX2JpdF9waWVjZS4gICovCisgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UKKyB7CisgICBlbnVt IGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGxvY2F0aW9uOworQEAgLTE4MSw4ICsxODEsMTAgQEAKKyAg ICAgfSBsaXRlcmFsOworICAgfSB2OworIAorLSAgLyogVGhlIGxlbmd0aCBvZiB0aGUgcGllY2Us IGluIGJ5dGVzLiAgKi8KKysgIC8qIFRoZSBsZW5ndGggb2YgdGhlIHBpZWNlLCBpbiBiaXRzLiAg Ki8KKyAgIFVMT05HRVNUIHNpemU7CisrICAvKiBUaGUgcGllY2Ugb2Zmc2V0LCBpbiBiaXRzLiAg Ki8KKysgIFVMT05HRVNUIG9mZnNldDsKKyB9OworIAorIHN0cnVjdCBkd2FyZl9leHByX2NvbnRl eHQgKm5ld19kd2FyZl9leHByX2NvbnRleHQgKHZvaWQpOworLS0tIHNyYy9nZGIvZHdhcmYybG9j LmMJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjgwCisrKysgc3JjL2dkYi9kd2FyZjJsb2MuYwkyMDEw LzA1LzIxIDIxOjEzOjExCTEuODEKK0BAIC0yNTksNTIgKzI1OSwyNDUgQEAKKyAgIHJldHVybiBj OworIH0KKyAKKysvKiBUaGUgbG93ZXN0LWxldmVsIGZ1bmN0aW9uIHRvIGV4dHJhY3QgYml0cyBm cm9tIGEgYnl0ZSBidWZmZXIuCisrICAgU09VUkNFIGlzIHRoZSBidWZmZXIuICBJdCBpcyB1cGRh dGVkIGlmIHdlIHJlYWQgdG8gdGhlIGVuZCBvZiBhCisrICAgYnl0ZS4KKysgICBTT1VSQ0VfT0ZG U0VUX0JJVFMgaXMgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgYml0IHRvIHJlYWQuICBJdCBpcwor KyAgIHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgbnVtYmVyIG9mIGJpdHMgYWN0dWFsbHkgcmVhZC4K KysgICBOQklUUyBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgd2Ugd2FudCB0byByZWFkLiAgSXQgaXMg dXBkYXRlZCB0bworKyAgIHJlZmxlY3QgdGhlIG51bWJlciBvZiBiaXRzIGFjdHVhbGx5IHJlYWQu ICBUaGlzIGZ1bmN0aW9uIG1heSByZWFkCisrICAgZmV3ZXIgYml0cy4KKysgICBCSVRTX0JJR19F TkRJQU4gaXMgdGFrZW4gZGlyZWN0bHkgZnJvbSBnZGJhcmNoLgorKyAgIFRoaXMgZnVuY3Rpb24g cmV0dXJucyB0aGUgZXh0cmFjdGVkIGJpdHMuICAqLworKworK3N0YXRpYyB1bnNpZ25lZCBpbnQK KytleHRyYWN0X2JpdHNfcHJpbWl0aXZlIChjb25zdCBnZGJfYnl0ZSAqKnNvdXJjZSwKKysJCQl1 bnNpZ25lZCBpbnQgKnNvdXJjZV9vZmZzZXRfYml0cywKKysJCQlpbnQgKm5iaXRzLCBpbnQgYml0 c19iaWdfZW5kaWFuKQorK3sKKysgIHVuc2lnbmVkIGludCBhdmFpbCwgbWFzaywgZGF0dW07Cisr CisrICBnZGJfYXNzZXJ0ICgqc291cmNlX29mZnNldF9iaXRzIDwgOCk7CisrCisrICBhdmFpbCA9 IDggLSAqc291cmNlX29mZnNldF9iaXRzOworKyAgaWYgKGF2YWlsID4gKm5iaXRzKQorKyAgICBh dmFpbCA9ICpuYml0czsKKysKKysgIG1hc2sgPSAoMSA8PCBhdmFpbCkgLSAxOworKyAgZGF0dW0g PSAqKnNvdXJjZTsKKysgIGlmIChiaXRzX2JpZ19lbmRpYW4pCisrICAgIGRhdHVtID4+PSA4IC0g KCpzb3VyY2Vfb2Zmc2V0X2JpdHMgKyAqbmJpdHMpOworKyAgZWxzZQorKyAgICBkYXR1bSA+Pj0g KnNvdXJjZV9vZmZzZXRfYml0czsKKysgIGRhdHVtICY9IG1hc2s7CisrCisrICAqbmJpdHMgLT0g YXZhaWw7CisrICAqc291cmNlX29mZnNldF9iaXRzICs9IGF2YWlsOworKyAgaWYgKCpzb3VyY2Vf b2Zmc2V0X2JpdHMgPj0gOCkKKysgICAgeworKyAgICAgICpzb3VyY2Vfb2Zmc2V0X2JpdHMgLT0g ODsKKysgICAgICArKypzb3VyY2U7CisrICAgIH0KKysKKysgIHJldHVybiBkYXR1bTsKKyt9Cisr CisrLyogRXh0cmFjdCBzb21lIGJpdHMgZnJvbSBhIHNvdXJjZSBidWZmZXIgYW5kIG1vdmUgZm9y d2FyZCBpbiB0aGUKKysgICBidWZmZXIuCisrICAgCisrICAgU09VUkNFIGlzIHRoZSBzb3VyY2Ug YnVmZmVyLiAgSXQgaXMgdXBkYXRlZCBhcyBieXRlcyBhcmUgcmVhZC4KKysgICBTT1VSQ0VfT0ZG U0VUX0JJVFMgaXMgdGhlIG9mZnNldCBpbnRvIFNPVVJDRS4gIEl0IGlzIHVwZGF0ZWQgYXMKKysg ICBiaXRzIGFyZSByZWFkLgorKyAgIE5CSVRTIGlzIHRoZSBudW1iZXIgb2YgYml0cyB0byByZWFk LgorKyAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guCisr ICAgCisrICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBiaXRzIHRoYXQgd2VyZSByZWFkLiAg Ki8KKysKKytzdGF0aWMgdW5zaWduZWQgaW50CisrZXh0cmFjdF9iaXRzIChjb25zdCBnZGJfYnl0 ZSAqKnNvdXJjZSwgdW5zaWduZWQgaW50ICpzb3VyY2Vfb2Zmc2V0X2JpdHMsCisrCSAgICAgIGlu dCBuYml0cywgaW50IGJpdHNfYmlnX2VuZGlhbikKKyt7CisrICB1bnNpZ25lZCBpbnQgZGF0dW07 CisrCisrICBnZGJfYXNzZXJ0IChuYml0cyA+IDAgJiYgbmJpdHMgPD0gOCk7CisrCisrICBkYXR1 bSA9IGV4dHJhY3RfYml0c19wcmltaXRpdmUgKHNvdXJjZSwgc291cmNlX29mZnNldF9iaXRzLCAm bmJpdHMsCisrCQkJCSAgYml0c19iaWdfZW5kaWFuKTsKKysgIGlmIChuYml0cyA+IDApCisrICAg IHsKKysgICAgICB1bnNpZ25lZCBpbnQgbW9yZTsKKysKKysgICAgICBtb3JlID0gZXh0cmFjdF9i aXRzX3ByaW1pdGl2ZSAoc291cmNlLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsICZuYml0cywKKysJCQkJ ICAgICBiaXRzX2JpZ19lbmRpYW4pOworKyAgICAgIGlmIChiaXRzX2JpZ19lbmRpYW4pCisrCWRh dHVtIDw8PSBuYml0czsKKysgICAgICBlbHNlCisrCW1vcmUgPDw9IG5iaXRzOworKyAgICAgIGRh dHVtIHw9IG1vcmU7CisrICAgIH0KKysKKysgIHJldHVybiBkYXR1bTsKKyt9CisrCisrLyogV3Jp dGUgc29tZSBiaXRzIGludG8gYSBidWZmZXIgYW5kIG1vdmUgZm9yd2FyZCBpbiB0aGUgYnVmZmVy LgorKyAgIAorKyAgIERBVFVNIGlzIHRoZSBiaXRzIHRvIHdyaXRlLiAgVGhlIGxvdy1vcmRlciBi aXRzIG9mIERBVFVNIGFyZSB1c2VkLgorKyAgIERFU1QgaXMgdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl ci4gIEl0IGlzIHVwZGF0ZWQgYXMgYnl0ZXMgYXJlCisrICAgd3JpdHRlbi4KKysgICBERVNUX09G RlNFVF9CSVRTIGlzIHRoZSBiaXQgb2Zmc2V0IGluIERFU1QgYXQgd2hpY2ggd3JpdGluZyBpcwor KyAgIGRvbmUuCisrICAgTkJJVFMgaXMgdGhlIG51bWJlciBvZiB2YWxpZCBiaXRzIGluIERBVFVN LgorKyAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAq LworKworK3N0YXRpYyB2b2lkCisraW5zZXJ0X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKKysJ ICAgICBnZGJfYnl0ZSAqZGVzdCwgdW5zaWduZWQgaW50IGRlc3Rfb2Zmc2V0X2JpdHMsCisrCSAg ICAgaW50IG5iaXRzLCBpbnQgYml0c19iaWdfZW5kaWFuKQorK3sKKysgIHVuc2lnbmVkIGludCBt YXNrOworKworKyAgZ2RiX2Fzc2VydCAoZGVzdF9vZmZzZXRfYml0cyA+PSAwICYmIGRlc3Rfb2Zm c2V0X2JpdHMgKyBuYml0cyA8PSA4KTsKKysKKysgIG1hc2sgPSAoMSA8PCBuYml0cykgLSAxOwor KyAgaWYgKGJpdHNfYmlnX2VuZGlhbikKKysgICAgeworKyAgICAgIGRhdHVtIDw8PSA4IC0gKGRl c3Rfb2Zmc2V0X2JpdHMgKyBuYml0cyk7CisrICAgICAgbWFzayA8PD0gOCAtIChkZXN0X29mZnNl dF9iaXRzICsgbmJpdHMpOworKyAgICB9CisrICBlbHNlCisrICAgIHsKKysgICAgICBkYXR1bSA8 PD0gZGVzdF9vZmZzZXRfYml0czsKKysgICAgICBtYXNrIDw8PSBkZXN0X29mZnNldF9iaXRzOwor KyAgICB9CisrCisrICBnZGJfYXNzZXJ0ICgoZGF0dW0gJiB+bWFzaykgPT0gMCk7CisrCisrICAq ZGVzdCA9ICgqZGVzdCAmIH5tYXNrKSB8IGRhdHVtOworK30KKysKKysvKiBDb3B5IGJpdHMgZnJv bSBhIHNvdXJjZSB0byBhIGRlc3RpbmF0aW9uLgorKyAgIAorKyAgIERFU1QgaXMgd2hlcmUgdGhl IGJpdHMgc2hvdWxkIGJlIHdyaXR0ZW4uCisrICAgREVTVF9PRkZTRVRfQklUUyBpcyB0aGUgYml0 IG9mZnNldCBpbnRvIERFU1QuCisrICAgU09VUkNFIGlzIHRoZSBzb3VyY2Ugb2YgYml0cy4KKysg ICBTT1VSQ0VfT0ZGU0VUX0JJVFMgaXMgdGhlIGJpdCBvZmZzZXQgaW50byBTT1VSQ0UuCisrICAg QklUX0NPVU5UIGlzIHRoZSBudW1iZXIgb2YgYml0cyB0byBjb3B5LgorKyAgIEJJVFNfQklHX0VO RElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAqLworKworK3N0YXRpYyB2b2lk CisrY29weV9iaXR3aXNlIChnZGJfYnl0ZSAqZGVzdCwgdW5zaWduZWQgaW50IGRlc3Rfb2Zmc2V0 X2JpdHMsCisrCSAgICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsIHVuc2lnbmVkIGludCBzb3Vy Y2Vfb2Zmc2V0X2JpdHMsCisrCSAgICAgIHVuc2lnbmVkIGludCBiaXRfY291bnQsCisrCSAgICAg IGludCBiaXRzX2JpZ19lbmRpYW4pCisreworKyAgdW5zaWduZWQgaW50IGRlc3RfYXZhaWw7Cisr ICBpbnQgZGF0dW07CisrCisrICAvKiBSZWR1Y2UgZXZlcnl0aGluZyB0byBieXRlLXNpemUgcGll Y2VzLiAgKi8KKysgIGRlc3QgKz0gZGVzdF9vZmZzZXRfYml0cyAvIDg7CisrICBkZXN0X29mZnNl dF9iaXRzICU9IDg7CisrICBzb3VyY2UgKz0gc291cmNlX29mZnNldF9iaXRzIC8gODsKKysgIHNv dXJjZV9vZmZzZXRfYml0cyAlPSA4OworKworKyAgZGVzdF9hdmFpbCA9IDggLSBkZXN0X29mZnNl dF9iaXRzICUgODsKKysKKysgIC8qIFNlZSBpZiB3ZSBjYW4gZmlsbCB0aGUgZmlyc3QgZGVzdGlu YXRpb24gYnl0ZS4gICovCisrICBpZiAoZGVzdF9hdmFpbCA8IGJpdF9jb3VudCkKKysgICAgewor KyAgICAgIGRhdHVtID0gZXh0cmFjdF9iaXRzICgmc291cmNlLCAmc291cmNlX29mZnNldF9iaXRz LCBkZXN0X2F2YWlsLAorKwkJCSAgICBiaXRzX2JpZ19lbmRpYW4pOworKyAgICAgIGluc2VydF9i aXRzIChkYXR1bSwgZGVzdCwgZGVzdF9vZmZzZXRfYml0cywgZGVzdF9hdmFpbCwgYml0c19iaWdf ZW5kaWFuKTsKKysgICAgICArK2Rlc3Q7CisrICAgICAgZGVzdF9vZmZzZXRfYml0cyA9IDA7Cisr ICAgICAgYml0X2NvdW50IC09IGRlc3RfYXZhaWw7CisrICAgIH0KKysKKysgIC8qIE5vdywgZWl0 aGVyIERFU1RfT0ZGU0VUX0JJVFMgaXMgYnl0ZS1hbGlnbmVkLCBvciB3ZSBoYXZlIGZld2VyCisr ICAgICB0aGFuIDggYml0cyByZW1haW5pbmcuICAqLworKyAgZ2RiX2Fzc2VydCAoZGVzdF9vZmZz ZXRfYml0cyAlIDggPT0gMCB8fCBiaXRfY291bnQgPCA4KTsKKysgIGZvciAoOyBiaXRfY291bnQg Pj0gODsgYml0X2NvdW50IC09IDgpCisrICAgIHsKKysgICAgICBkYXR1bSA9IGV4dHJhY3RfYml0 cyAoJnNvdXJjZSwgJnNvdXJjZV9vZmZzZXRfYml0cywgOCwgYml0c19iaWdfZW5kaWFuKTsKKysg ICAgICAqZGVzdCsrID0gKGdkYl9ieXRlKSBkYXR1bTsKKysgICAgfQorKworKyAgLyogRmluYWxs eSwgd2UgbWF5IGhhdmUgYSBmZXcgbGVmdG92ZXIgYml0cy4gICovCisrICBnZGJfYXNzZXJ0IChi aXRfY291bnQgPD0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4KTsKKysgIGlmIChiaXRfY291bnQg PiAwKQorKyAgICB7CisrICAgICAgZGF0dW0gPSBleHRyYWN0X2JpdHMgKCZzb3VyY2UsICZzb3Vy Y2Vfb2Zmc2V0X2JpdHMsIGJpdF9jb3VudCwKKysJCQkgICAgYml0c19iaWdfZW5kaWFuKTsKKysg ICAgICBpbnNlcnRfYml0cyAoZGF0dW0sIGRlc3QsIGRlc3Rfb2Zmc2V0X2JpdHMsIGJpdF9jb3Vu dCwgYml0c19iaWdfZW5kaWFuKTsKKysgICAgfQorK30KKysKKyBzdGF0aWMgdm9pZAorIHJlYWRf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgeworICAgaW50IGk7CisgICBsb25nIG9m ZnNldCA9IDA7CistICBVTE9OR0VTVCBieXRlc190b19za2lwOworKyAgVUxPTkdFU1QgYml0c190 b19za2lwOworICAgZ2RiX2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUg KmMgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7 CisgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBmcmFtZV9maW5kX2J5X2lkIChWQUxVRV9G UkFNRV9JRCAodikpOworICAgc2l6ZV90IHR5cGVfbGVuOworKyAgc2l6ZV90IGJ1ZmZlcl9zaXpl ID0gMDsKKysgIGNoYXIgKmJ1ZmZlciA9IE5VTEw7CisrICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51 cDsKKysgIGludCBiaXRzX2JpZ19lbmRpYW4KKysgICAgPSBnZGJhcmNoX2JpdHNfYmlnX2VuZGlh biAoZ2V0X3R5cGVfYXJjaCAodmFsdWVfdHlwZSAodikpKTsKKyAKKyAgIGlmICh2YWx1ZV90eXBl ICh2KSAhPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodikpCisgICAgIGludGVybmFsX2Vycm9yIChf X0ZJTEVfXywgX19MSU5FX18sCisgCQkgICAgXygiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNyZWF0 ZSBhIGxhenkgdmFsdWUgd2l0aCAiCisgCQkgICAgICAiYW4gZW5jbG9zaW5nIHR5cGUiKSk7Cisg CisrICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChmcmVlX2N1cnJlbnRfY29udGVudHMsICZidWZm ZXIpOworKworICAgY29udGVudHMgPSB2YWx1ZV9jb250ZW50c19yYXcgKHYpOworLSAgYnl0ZXNf dG9fc2tpcCA9IHZhbHVlX29mZnNldCAodik7CistICB0eXBlX2xlbiA9IFRZUEVfTEVOR1RIICh2 YWx1ZV90eXBlICh2KSk7CisrICBiaXRzX3RvX3NraXAgPSA4ICogdmFsdWVfb2Zmc2V0ICh2KTsK KysgIHR5cGVfbGVuID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2KSk7CisrCisgICBm b3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKKyAg ICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsK Ky0gICAgICBzaXplX3QgdGhpc19zaXplOworLSAgICAgIGxvbmcgZGVzdF9vZmZzZXQsIHNvdXJj ZV9vZmZzZXQ7CistCistICAgICAgaWYgKGJ5dGVzX3RvX3NraXAgPiAwICYmIGJ5dGVzX3RvX3Nr aXAgPj0gcC0+c2l6ZSkKKysgICAgICBzaXplX3QgdGhpc19zaXplLCB0aGlzX3NpemVfYml0czsK KysgICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0cywgc291cmNl X29mZnNldDsKKysgICAgICBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsKKysKKysgICAg ICAvKiBDb21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMgZm9yIGNv cHlpbmcsIGluCisrCSBiaXRzLiAgKi8KKysgICAgICB0aGlzX3NpemVfYml0cyA9IHAtPnNpemU7 CisrICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDAgJiYgYml0c190b19za2lwID49IHRoaXNfc2l6 ZV9iaXRzKQorIAl7CistCSAgYnl0ZXNfdG9fc2tpcCAtPSBwLT5zaXplOworKwkgIGJpdHNfdG9f c2tpcCAtPSB0aGlzX3NpemVfYml0czsKKyAJICBjb250aW51ZTsKKyAJfQorLSAgICAgIHRoaXNf c2l6ZSA9IHAtPnNpemU7CistICAgICAgaWYgKHRoaXNfc2l6ZSA+IHR5cGVfbGVuIC0gb2Zmc2V0 KQorLQl0aGlzX3NpemUgPSB0eXBlX2xlbiAtIG9mZnNldDsKKy0gICAgICBpZiAoYnl0ZXNfdG9f c2tpcCA+IDApCistCXsKKy0JICBkZXN0X29mZnNldCA9IDA7CistCSAgc291cmNlX29mZnNldCA9 IGJ5dGVzX3RvX3NraXA7CistCSAgdGhpc19zaXplIC09IGJ5dGVzX3RvX3NraXA7CistCSAgYnl0 ZXNfdG9fc2tpcCA9IDA7CisrICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gdHlwZV9sZW4gLSBv ZmZzZXQpCisrCXRoaXNfc2l6ZV9iaXRzID0gdHlwZV9sZW4gLSBvZmZzZXQ7CisrICAgICAgaWYg KGJpdHNfdG9fc2tpcCA+IDApCisrCXsKKysJICBkZXN0X29mZnNldF9iaXRzID0gMDsKKysJICBz b3VyY2Vfb2Zmc2V0X2JpdHMgPSBiaXRzX3RvX3NraXA7CisrCSAgdGhpc19zaXplX2JpdHMgLT0g Yml0c190b19za2lwOworKwkgIGJpdHNfdG9fc2tpcCA9IDA7CisgCX0KKyAgICAgICBlbHNlCisg CXsKKy0JICBkZXN0X29mZnNldCA9IG9mZnNldDsKKy0JICBzb3VyY2Vfb2Zmc2V0ID0gMDsKKysJ ICBkZXN0X29mZnNldF9iaXRzID0gb2Zmc2V0OworKwkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IDA7 CisrCX0KKysKKysgICAgICB0aGlzX3NpemUgPSAodGhpc19zaXplX2JpdHMgKyBzb3VyY2Vfb2Zm c2V0X2JpdHMgJSA4ICsgNykgLyA4OworKyAgICAgIHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zm c2V0X2JpdHMgLyA4OworKyAgICAgIGlmIChidWZmZXJfc2l6ZSA8IHRoaXNfc2l6ZSkKKysJewor KwkgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworKwkgIGJ1ZmZlciA9IHhyZWFsbG9jIChidWZm ZXIsIGJ1ZmZlcl9zaXplKTsKKyAJfQorKyAgICAgIGludGVybWVkaWF0ZV9idWZmZXIgPSBidWZm ZXI7CisgCisrICAgICAgLyogQ29weSBmcm9tIHRoZSBzb3VyY2UgdG8gREVTVF9CVUZGRVIuICAq LworICAgICAgIHN3aXRjaCAocC0+bG9jYXRpb24pCisgCXsKKyAJY2FzZSBEV0FSRl9WQUxVRV9S RUdJU1RFUjoKK0BAIC0zMTYsMTMgKzUwOSwxOCBAQAorIAorIAkgICAgaWYgKGdkYmFyY2hfYnl0 ZV9vcmRlciAoYXJjaCkgPT0gQkZEX0VORElBTl9CSUcKKyAJCSYmIHRoaXNfc2l6ZSA8IHJlZ2lz dGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pKQorLQkgICAgICAvKiBCaWctZW5kaWFuLCBhbmQg d2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JICAgICAgcmVnX29mZnNldCA9IHJl Z2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pIC0gdGhpc19zaXplOworKwkgICAgICB7Cisr CQkvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKysJ CXJlZ19vZmZzZXQgPSByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJfcmVnbnVtKSAtIHRoaXNfc2l6 ZTsKKysJCS8qIFdlIHdhbnQgdGhlIGxvd2VyLW9yZGVyIFRISVNfU0laRV9CSVRTIG9mIHRoZSBi eXRlcworKwkJICAgd2UgZXh0cmFjdCBmcm9tIHRoZSByZWdpc3Rlci4gICovCisrCQlzb3VyY2Vf b2Zmc2V0X2JpdHMgKz0gOCAqIHRoaXNfc2l6ZSAtIHRoaXNfc2l6ZV9iaXRzOworKwkgICAgICB9 CisgCisgCSAgICBpZiAoZ2RiX3JlZ251bSAhPSAtMSkKKyAJICAgICAgeworIAkJZ2V0X2ZyYW1l X3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVnX29mZnNldCwgCistCQkJCQkg IHRoaXNfc2l6ZSwgY29udGVudHMgKyBkZXN0X29mZnNldCk7CisrCQkJCQkgIHRoaXNfc2l6ZSwg YnVmZmVyKTsKKyAJICAgICAgfQorIAkgICAgZWxzZQorIAkgICAgICB7CitAQCAtMzM0LDExICs1 MzIsOSBAQAorIAorIAljYXNlIERXQVJGX1ZBTFVFX01FTU9SWToKKyAJICBpZiAocC0+di5leHBy LmluX3N0YWNrX21lbW9yeSkKKy0JICAgIHJlYWRfc3RhY2sgKHAtPnYuZXhwci52YWx1ZSArIHNv dXJjZV9vZmZzZXQsCistCQkJY29udGVudHMgKyBkZXN0X29mZnNldCwgdGhpc19zaXplKTsKKysJ ICAgIHJlYWRfc3RhY2sgKHAtPnYuZXhwci52YWx1ZSArIHNvdXJjZV9vZmZzZXQsIGJ1ZmZlciwg dGhpc19zaXplKTsKKyAJICBlbHNlCistCSAgICByZWFkX21lbW9yeSAocC0+di5leHByLnZhbHVl ICsgc291cmNlX29mZnNldCwKKy0JCQkgY29udGVudHMgKyBkZXN0X29mZnNldCwgdGhpc19zaXpl KTsKKysJICAgIHJlYWRfbWVtb3J5IChwLT52LmV4cHIudmFsdWUgKyBzb3VyY2Vfb2Zmc2V0LCBi dWZmZXIsIHRoaXNfc2l6ZSk7CisgCSAgYnJlYWs7CisgCisgCWNhc2UgRFdBUkZfVkFMVUVfU1RB Q0s6CitAQCAtMzU1LDcgKzU1MSw3IEBACisgCQkvKiBOb3RoaW5nLiAgKi8KKyAJICAgICAgfQor IAkgICAgZWxzZSBpZiAoc291cmNlX29mZnNldCA9PSAwKQorLQkgICAgICBzdG9yZV91bnNpZ25l ZF9pbnRlZ2VyIChjb250ZW50cyArIGRlc3Rfb2Zmc2V0LCBuLAorKwkgICAgICBzdG9yZV91bnNp Z25lZF9pbnRlZ2VyIChidWZmZXIsIG4sCisgCQkJCSAgICAgIGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCksCisgCQkJCSAgICAgIHAtPnYuZXhwci52YWx1ZSk7CisgCSAgICBlbHNlCitAQCAt MzY1LDcgKzU2MSw3IEBACisgCQlzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIChieXRlcywgbiArIHNv dXJjZV9vZmZzZXQsCisgCQkJCQlnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpLAorIAkJCQkJ cC0+di5leHByLnZhbHVlKTsKKy0JCW1lbWNweSAoY29udGVudHMgKyBkZXN0X29mZnNldCwgYnl0 ZXMgKyBzb3VyY2Vfb2Zmc2V0LCBuKTsKKysJCW1lbWNweSAoYnVmZmVyLCBieXRlcyArIHNvdXJj ZV9vZmZzZXQsIG4pOworIAkgICAgICB9CisgCSAgfQorIAkgIGJyZWFrOworQEAgLTM3OSw4ICs1 NzUsNyBAQAorIAkJICAgPyBwLT52LmxpdGVyYWwubGVuZ3RoIC0gc291cmNlX29mZnNldAorIAkJ ICAgOiAwKTsKKyAJICAgIGlmIChuICE9IDApCistCSAgICAgIG1lbWNweSAoY29udGVudHMgKyBk ZXN0X29mZnNldCwKKy0JCSAgICAgIHAtPnYubGl0ZXJhbC5kYXRhICsgc291cmNlX29mZnNldCwg bik7CisrCSAgICAgIGludGVybWVkaWF0ZV9idWZmZXIgPSBwLT52LmxpdGVyYWwuZGF0YSArIHNv dXJjZV9vZmZzZXQ7CisgCSAgfQorIAkgIGJyZWFrOworIAorQEAgLTM4OCwxNyArNTgzLDI1IEBA CisgCSAgLyogV2UganVzdCBsZWF2ZSB0aGUgYml0cyBlbXB0eSBmb3Igbm93LiAgVGhpcyBpcyBu b3QgaWRlYWwKKyAJICAgICBidXQgZ2RiIGN1cnJlbnRseSBkb2VzIG5vdCBoYXZlIGEgbmljZSB3 YXkgdG8gcmVwcmVzZW50CisgCSAgICAgb3B0aW1pemVkLW91dCBwaWVjZXMuICAqLworLQkgIHdh cm5pbmcgKF8oImJ5dGVzICVsZC0lbGQgaW4gY29tcHV0ZWQgb2JqZWN0IHdlcmUgb3B0aW1pemVk IG91dDsgIgorKwkgIHdhcm5pbmcgKF8oImJpdHMgJWxkLSVsZCBpbiBjb21wdXRlZCBvYmplY3Qg d2VyZSBvcHRpbWl6ZWQgb3V0OyAiCisgCQkgICAgICJyZXBsYWNpbmcgd2l0aCB6ZXJvZXMiKSwK KyAJCSAgIG9mZnNldCwKKy0JCSAgIG9mZnNldCArIChsb25nKSB0aGlzX3NpemUpOworKwkJICAg b2Zmc2V0ICsgKGxvbmcpIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICBicmVhazsKKyAKKyAJZGVmYXVs dDoKKyAJICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLCBfKCJpbnZhbGlkIGxv Y2F0aW9uIHR5cGUiKSk7CisgCX0KKy0gICAgICBvZmZzZXQgKz0gdGhpc19zaXplOworKworKyAg ICAgIGlmIChwLT5sb2NhdGlvbiAhPSBEV0FSRl9WQUxVRV9PUFRJTUlaRURfT1VUKQorKwljb3B5 X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorKwkJICAgICAgaW50ZXJtZWRp YXRlX2J1ZmZlciwgc291cmNlX29mZnNldF9iaXRzICUgOCwKKysJCSAgICAgIHRoaXNfc2l6ZV9i aXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKworKyAgICAgIG9mZnNldCArPSB0aGlzX3NpemVfYml0 czsKKyAgICAgfQorKworKyAgZG9fY2xlYW51cHMgKGNsZWFudXApOworIH0KKyAKKyBzdGF0aWMg dm9pZAorQEAgLTQwNiwxMSArNjA5LDE2IEBACisgeworICAgaW50IGk7CisgICBsb25nIG9mZnNl dCA9IDA7CistICBVTE9OR0VTVCBieXRlc190b19za2lwOworKyAgVUxPTkdFU1QgYml0c190b19z a2lwOworICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1 cmUgKmMgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAo dG8pOworICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoVkFM VUVfRlJBTUVfSUQgKHRvKSk7CisgICBzaXplX3QgdHlwZV9sZW47CisrICBzaXplX3QgYnVmZmVy X3NpemUgPSAwOworKyAgY2hhciAqYnVmZmVyID0gTlVMTDsKKysgIHN0cnVjdCBjbGVhbnVwICpj bGVhbnVwOworKyAgaW50IGJpdHNfYmlnX2VuZGlhbgorKyAgICA9IGdkYmFyY2hfYml0c19iaWdf ZW5kaWFuIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90eXBlICh0bykpKTsKKyAKKyAgIGlmIChmcmFt ZSA9PSBOVUxMKQorICAgICB7CitAQCAtNDE4LDM0ICs2MjYsNTcgQEAKKyAgICAgICByZXR1cm47 CisgICAgIH0KKyAKKysgIGNsZWFudXAgPSBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250 ZW50cywgJmJ1ZmZlcik7CisrCisgICBjb250ZW50cyA9IHZhbHVlX2NvbnRlbnRzIChmcm9tKTsK Ky0gIGJ5dGVzX3RvX3NraXAgPSB2YWx1ZV9vZmZzZXQgKHRvKTsKKy0gIHR5cGVfbGVuID0gVFlQ RV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSk7CisrICBiaXRzX3RvX3NraXAgPSA4ICogdmFsdWVf b2Zmc2V0ICh0byk7CisrICB0eXBlX2xlbiA9IDggKiBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAo dG8pKTsKKyAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xl bjsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+ cGllY2VzW2ldOworLSAgICAgIHNpemVfdCB0aGlzX3NpemU7CistICAgICAgbG9uZyBkZXN0X29m ZnNldCwgc291cmNlX29mZnNldDsKKysgICAgICBzaXplX3QgdGhpc19zaXplX2JpdHMsIHRoaXNf c2l6ZTsKKysgICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRfYml0cywg ZGVzdF9vZmZzZXQsIHNvdXJjZV9vZmZzZXQ7CisrICAgICAgaW50IG5lZWRfYml0d2lzZTsKKysg ICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlX2J1ZmZlcjsKKyAKKy0gICAgICBpZiAoYnl0ZXNf dG9fc2tpcCA+IDAgJiYgYnl0ZXNfdG9fc2tpcCA+PSBwLT5zaXplKQorKyAgICAgIHRoaXNfc2l6 ZV9iaXRzID0gcC0+c2l6ZTsKKysgICAgICBpZiAoYml0c190b19za2lwID4gMCAmJiBiaXRzX3Rv X3NraXAgPj0gdGhpc19zaXplX2JpdHMpCisgCXsKKy0JICBieXRlc190b19za2lwIC09IHAtPnNp emU7CisrCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworIAkgIGNvbnRpbnVlOwor IAl9CistICAgICAgdGhpc19zaXplID0gcC0+c2l6ZTsKKy0gICAgICBpZiAodGhpc19zaXplID4g dHlwZV9sZW4gLSBvZmZzZXQpCistCXRoaXNfc2l6ZSA9IHR5cGVfbGVuIC0gb2Zmc2V0OworLSAg ICAgIGlmIChieXRlc190b19za2lwID4gMCkKKy0JeworLQkgIGRlc3Rfb2Zmc2V0ID0gYnl0ZXNf dG9fc2tpcDsKKy0JICBzb3VyY2Vfb2Zmc2V0ID0gMDsKKy0JICB0aGlzX3NpemUgLT0gYnl0ZXNf dG9fc2tpcDsKKy0JICBieXRlc190b19za2lwID0gMDsKKysgICAgICBpZiAodGhpc19zaXplX2Jp dHMgPiB0eXBlX2xlbiAtIG9mZnNldCkKKysJdGhpc19zaXplX2JpdHMgPSB0eXBlX2xlbiAtIG9m ZnNldDsKKysgICAgICBpZiAoYml0c190b19za2lwID4gMCkKKysJeworKwkgIGRlc3Rfb2Zmc2V0 X2JpdHMgPSBiaXRzX3RvX3NraXA7CisrCSAgc291cmNlX29mZnNldF9iaXRzID0gMDsKKysJICB0 aGlzX3NpemVfYml0cyAtPSBiaXRzX3RvX3NraXA7CisrCSAgYml0c190b19za2lwID0gMDsKKysJ fQorKyAgICAgIGVsc2UKKysJeworKwkgIGRlc3Rfb2Zmc2V0X2JpdHMgPSAwOworKwkgIHNvdXJj ZV9vZmZzZXRfYml0cyA9IG9mZnNldDsKKysJfQorKworKyAgICAgIHRoaXNfc2l6ZSA9ICh0aGlz X3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7CisrICAgICAgc291 cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisrICAgICAgZGVzdF9vZmZzZXQg PSBkZXN0X29mZnNldF9iaXRzIC8gODsKKysgICAgICBpZiAoZGVzdF9vZmZzZXRfYml0cyAlIDgg PT0gMCAmJiBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ID09IDApCisrCXsKKysJICBzb3VyY2VfYnVm ZmVyID0gY29udGVudHMgKyBzb3VyY2Vfb2Zmc2V0OworKwkgIG5lZWRfYml0d2lzZSA9IDA7Cisg CX0KKyAgICAgICBlbHNlCisgCXsKKy0JICBkZXN0X29mZnNldCA9IDA7CistCSAgc291cmNlX29m ZnNldCA9IG9mZnNldDsKKysJICBpZiAoYnVmZmVyX3NpemUgPCB0aGlzX3NpemUpCisrCSAgICB7 CisrCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOworKwkgICAgICBidWZmZXIgPSB4cmVh bGxvYyAoYnVmZmVyLCBidWZmZXJfc2l6ZSk7CisrCSAgICB9CisrCSAgc291cmNlX2J1ZmZlciA9 IGJ1ZmZlcjsKKysJICBuZWVkX2JpdHdpc2UgPSAxOworIAl9CisgCisgICAgICAgc3dpdGNoIChw LT5sb2NhdGlvbikKK0BAIC00NjMsOCArNjk0LDE4IEBACisgCisgCSAgICBpZiAoZ2RiX3JlZ251 bSAhPSAtMSkKKyAJICAgICAgeworKwkJaWYgKG5lZWRfYml0d2lzZSkKKysJCSAgeworKwkJICAg IGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sIHJlZ19vZmZzZXQs CisrCQkJCQkgICAgICB0aGlzX3NpemUsIGJ1ZmZlcik7CisrCQkgICAgY29weV9iaXR3aXNlIChi dWZmZXIsIGRlc3Rfb2Zmc2V0X2JpdHMsCisrCQkJCSAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRf Yml0cywKKysJCQkJICB0aGlzX3NpemVfYml0cywKKysJCQkJICBiaXRzX2JpZ19lbmRpYW4pOwor KwkJICB9CisrCisgCQlwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVt LCByZWdfb2Zmc2V0LCAKKy0JCQkJCSAgdGhpc19zaXplLCBjb250ZW50cyArIHNvdXJjZV9vZmZz ZXQpOworKwkJCQkJICB0aGlzX3NpemUsIHNvdXJjZV9idWZmZXIpOworIAkgICAgICB9CisgCSAg ICBlbHNlCisgCSAgICAgIHsKK0BAIC00NzQsMTUgKzcxNSwzMSBAQAorIAkgIH0KKyAJICBicmVh azsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CisrCSAgaWYgKG5lZWRfYml0d2lzZSkKKysJ ICAgIHsKKysJICAgICAgLyogT25seSB0aGUgZmlyc3QgYW5kIGxhc3QgYnl0ZXMgY2FuIHBvc3Np Ymx5IGhhdmUgYW55CisrCQkgYml0cyByZXVzZWQuICAqLworKwkgICAgICByZWFkX21lbW9yeSAo cC0+di5leHByLnZhbHVlICsgZGVzdF9vZmZzZXQsIGJ1ZmZlciwgMSk7CisrCSAgICAgIHJlYWRf bWVtb3J5IChwLT52LmV4cHIudmFsdWUgKyBkZXN0X29mZnNldCArIHRoaXNfc2l6ZSAtIDEsCisr CQkJICAgYnVmZmVyICsgdGhpc19zaXplIC0gMSwgMSk7CisrCSAgICAgIGNvcHlfYml0d2lzZSAo YnVmZmVyLCBkZXN0X29mZnNldF9iaXRzLAorKwkJCSAgICBjb250ZW50cywgc291cmNlX29mZnNl dF9iaXRzLAorKwkJCSAgICB0aGlzX3NpemVfYml0cywKKysJCQkgICAgYml0c19iaWdfZW5kaWFu KTsKKysJICAgIH0KKysKKyAJICB3cml0ZV9tZW1vcnkgKHAtPnYuZXhwci52YWx1ZSArIGRlc3Rf b2Zmc2V0LAorLQkJCWNvbnRlbnRzICsgc291cmNlX29mZnNldCwgdGhpc19zaXplKTsKKysJCQlz b3VyY2VfYnVmZmVyLCB0aGlzX3NpemUpOworIAkgIGJyZWFrOworIAlkZWZhdWx0OgorIAkgIHNl dF92YWx1ZV9vcHRpbWl6ZWRfb3V0ICh0bywgMSk7CistCSAgcmV0dXJuOworKwkgIGdvdG8gZG9u ZTsKKyAJfQorLSAgICAgIG9mZnNldCArPSB0aGlzX3NpemU7CisrICAgICAgb2Zmc2V0ICs9IHRo aXNfc2l6ZV9iaXRzOworICAgICB9CisrCisrIGRvbmU6CisrICBkb19jbGVhbnVwcyAoY2xlYW51 cCk7CisgfQorIAorIHN0YXRpYyB2b2lkICoKKy0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL3BpZWNlcy5TCTIwMTAvMDUvMjEgMjE6MDE6NDYJMS4yCisrKysgc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9waWVjZXMuUwkyMDEwLzA1LzIxIDIxOjEzOjEzCTEuMworQEAgLTk4OSwy MyArOTg5LDE4IEBACisgLkxMU1Q2OgorIAkubG9uZwkuTFZMMTMtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKyAJLmxvbmcJLkxWTDE0LS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorLQkudmFsdWUJMHhhCSMgTG9jYXRp b24gZXhwcmVzc2lvbiBzaXplCistCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVs ZWIxMjggMHg0CistCS51bGViMTI4IDAKKysJLnZhbHVlCTB4OAkjIExvY2F0aW9uIGV4cHJlc3Np b24gc2l6ZQorIAkuYnl0ZQkweDM0CSMgRFdfT1BfbGl0NAorIAkuYnl0ZQkweDlmCSMgRFdfT1Bf c3RhY2tfdmFsdWUKKyAJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQorIAkudWxlYjEyOCAw eGMKKyAJLnVsZWIxMjggMAorLQkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKy0JLnVsZWIxMjgg MHgyCistCS5sb25nCS5MVkwxNC0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNz ICgqLkxMU1Q2KQorLQkubG9uZwkuTFZMMTUtLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFk ZHJlc3MgKCouTExTVDYpCistCS52YWx1ZQkweDE1CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXpl CisgCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjggMHg0CisrCS51bGVi MTI4IDB4MTQKKyAJLnVsZWIxMjggMAorKwkubG9uZwkuTFZMMTQtLkx0ZXh0MAkjIExvY2F0aW9u IGxpc3QgYmVnaW4gYWRkcmVzcyAoKi5MTFNUNikKKysJLmxvbmcJLkxWTDE1LS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorKwkudmFsdWUJMHgxMQkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorIAkuYnl0ZQkweDM0CSMgRFdfT1BfbGl0NAorIAkuYnl0ZQkw eDlmCSMgRFdfT1Bfc3RhY2tfdmFsdWUKKyAJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQor QEAgLTEwMjEsMTUgKzEwMTYsMTEgQEAKKyAJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQor IAkudWxlYjEyOCAweGMKKyAJLnVsZWIxMjggMAorLQkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3Bp ZWNlCistCS51bGViMTI4IDB4NAorLQkudWxlYjEyOCAwCisrCS5ieXRlCTB4OTMJIyBEV19PUF9w aWVjZQorKwkudWxlYjEyOCAweDEKKyAJLmxvbmcJLkxWTDE1LS5MdGV4dDAJIyBMb2NhdGlvbiBs aXN0IGJlZ2luIGFkZHJlc3MgKCouTExTVDYpCisgCS5sb25nCS5MVkwxNi0xLS5MdGV4dDAJIyBM b2NhdGlvbiBsaXN0IGVuZCBhZGRyZXNzICgqLkxMU1Q2KQorLQkudmFsdWUJMHgxNAkjIExvY2F0 aW9uIGV4cHJlc3Npb24gc2l6ZQorLQkuYnl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCistCS51 bGViMTI4IDB4NAorLQkudWxlYjEyOCAwCisrCS52YWx1ZQkweDEwCSMgTG9jYXRpb24gZXhwcmVz c2lvbiBzaXplCisgCS5ieXRlCTB4NTIJIyBEV19PUF9yZWcyCisgCS5ieXRlCTB4OWQJIyBEV19P UF9iaXRfcGllY2UKKyAJLnVsZWIxMjggMHhjCitAQCAtMTA0NCwxNSArMTAzNSwxMSBAQAorIAku Ynl0ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisgCS51bGViMTI4IDB4YworIAkudWxlYjEyOCAw CistCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjggMHg0CistCS51bGVi MTI4IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4MQorIAkubG9u ZwkuTFZMMTYtMS0uTHRleHQwCSMgTG9jYXRpb24gbGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2 KQorIAkubG9uZwkuTFZMMTctLkx0ZXh0MAkjIExvY2F0aW9uIGxpc3QgZW5kIGFkZHJlc3MgKCou TExTVDYpCistCS52YWx1ZQkweDE0CSMgTG9jYXRpb24gZXhwcmVzc2lvbiBzaXplCistCS5ieXRl CTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjggMHg0CistCS51bGViMTI4IDAKKysJ LnZhbHVlCTB4MTAJIyBMb2NhdGlvbiBleHByZXNzaW9uIHNpemUKKyAJLmJ5dGUJMHg1NgkjIERX X09QX3JlZzYKKyAJLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9waWVjZQorIAkudWxlYjEyOCAweGMK K0BAIC0xMDY3LDE0ICsxMDU0LDE0IEBACisgCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UK KyAJLnVsZWIxMjggMHhjCisgCS51bGViMTI4IDAKKy0JLmJ5dGUJMHg5ZAkjIERXX09QX2JpdF9w aWVjZQorLQkudWxlYjEyOCAweDQKKy0JLnVsZWIxMjggMAorKwkuYnl0ZQkweDkzCSMgRFdfT1Bf cGllY2UKKysJLnVsZWIxMjggMHgxCisgCS5sb25nCS5MVkwxNy0uTHRleHQwCSMgTG9jYXRpb24g bGlzdCBiZWdpbiBhZGRyZXNzICgqLkxMU1Q2KQorIAkubG9uZwkuTEZFMy0uTHRleHQwCSMgTG9j YXRpb24gbGlzdCBlbmQgYWRkcmVzcyAoKi5MTFNUNikKKyAJLnZhbHVlCTB4ZgkjIExvY2F0aW9u IGV4cHJlc3Npb24gc2l6ZQorLQkuYnl0ZQkweDkzCSMgRFdfT1BfcGllY2UKKy0JLnVsZWIxMjgg MHgyCisrCS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKysJLnVsZWIxMjggMHhjCisrCS51 bGViMTI4IDAKKyAJLmJ5dGUJMHg5MQkjIERXX09QX2ZicmVnCisgCS5zbGViMTI4IDAKKyAJLmJ5 dGUJMHg5NAkjIERXX09QX2RlcmVmX3NpemUKK0BAIC0xMDg1LDkgKzEwNzIsOCBAQAorIAkuYnl0 ZQkweDlkCSMgRFdfT1BfYml0X3BpZWNlCisgCS51bGViMTI4IDB4YworIAkudWxlYjEyOCAwCist CS5ieXRlCTB4OWQJIyBEV19PUF9iaXRfcGllY2UKKy0JLnVsZWIxMjggMHg0CistCS51bGViMTI4 IDAKKysJLmJ5dGUJMHg5MwkjIERXX09QX3BpZWNlCisrCS51bGViMTI4IDB4MQorIAkubG9uZwkw CSMgTG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGJlZ2luICgqLkxMU1Q2KQorIAkubG9uZwkwCSMg TG9jYXRpb24gbGlzdCB0ZXJtaW5hdG9yIGVuZCAoKi5MTFNUNikKKyAuTExTVDc6CitAQCAtMTM1 Niw3ICsxMzQyLDcgQEAKKyAJLmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmJ5dGUJMHg0CSMg RFdfQVRfYnl0ZV9zaXplCisgCS5ieXRlCTB4YwkjIERXX0FUX2JpdF9zaXplCistCS5ieXRlCTB4 MTAJIyBEV19BVF9iaXRfb2Zmc2V0CisrCS5ieXRlCTB4MTQJIyBEV19BVF9iaXRfb2Zmc2V0Cisg CS5ieXRlCTB4MgkjIERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uCisgCS5ieXRlCTB4MjMJIyBE V19PUF9wbHVzX3Vjb25zdAorIAkudWxlYjEyOCAwCitAQCAtMTM2Nyw3ICsxMzUzLDcgQEAKKyAJ LmxvbmcJMHg0OAkjIERXX0FUX3R5cGUKKyAJLmJ5dGUJMHg0CSMgRFdfQVRfYnl0ZV9zaXplCisg CS5ieXRlCTB4YwkjIERXX0FUX2JpdF9zaXplCistCS5ieXRlCTB4NAkjIERXX0FUX2JpdF9vZmZz ZXQKKysJLmJ5dGUJMHg4CSMgRFdfQVRfYml0X29mZnNldAorIAkuYnl0ZQkweDIJIyBEV19BVF9k YXRhX21lbWJlcl9sb2NhdGlvbgorIAkuYnl0ZQkweDIzCSMgRFdfT1BfcGx1c191Y29uc3QKKyAJ LnVsZWIxMjggMAorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcGllY2VzLmMJMjAx MC8wNS8yMSAyMTowMTo0NgkxLjIKKysrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3Bp ZWNlcy5jCTIwMTAvMDUvMjEgMjE6MTM6MTMJMS4zCitAQCAtMjEsNyArMjEsNyBAQAorICAgIEhv d2V2ZXIsIGl0IGlzIHVzZWQgdG8gZXh0cmFjdCBicmVha3BvaW50IGxpbmUgbnVtYmVycy4gICov CisgCisgc3RydWN0IEEgeyBpbnQgaTsgaW50IGo7IH07Cistc3RydWN0IEIgeyBpbnQgOiA0OyBp bnQgaSA6IDEyOyBpbnQgaiA6IDEyOyBpbnQgOiA0OyB9OworK3N0cnVjdCBCIHsgaW50IGkgOiAx MjsgaW50IGogOiAxMjsgaW50IDogNDsgfTsKKyBzdHJ1Y3QgQyB7IGludCBpOyBpbnQgajsgaW50 IHE7IH07CisgCisgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSB2b2lkCitAQCAtODksNyArODks NyBAQAorIGY2IChpbnQgaykKKyB7CisgICBpbnQgeiA9IDIzOworLSAgc3RydWN0IEMgYSA9IHsg aywgaywgen07CisrICBzdHJ1Y3QgQyBhID0geyBrLCBrLCB6IH07CisgICBhc20gKCIiIDogIity IiAoYS5pKSk7CisgICBhLmorKzsKKyAgIGJhciAoYS5pKTsKKy0tLSBzcmMvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8yMSAyMTowMTo0NgkxLjMKKysrKyBzcmMv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3BpZWNlcy5leHAJMjAxMC8wNS8yMSAyMToxMzoxMwkx LjQKK0BAIC02NywxNSArNjcsMzAgQEAKKyAgICAgZ2RiX3Rlc3QgInByaW50IGFcWzFcXSIgIiA9 IDE0IiAicHJpbnQgYVxbMVxdIGluIHBpZWNlczpmMiIKKyB9CisgCisrIyBGdW5jdGlvbiBmMyB0 ZXN0cyBEV19PUF9iaXRfcGllY2UuCisrcHJvYyBwaWVjZXNfdGVzdF9mMyB7fSB7CisrICAgIGds b2JhbCBjc3JjZmlsZQorKyAgICBzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAiZjMgYnJl YWtwb2ludCIgJGNzcmNmaWxlXQorKyAgICBnZGJfdGVzdCAiYnJlYWsgcGllY2VzLmM6JGxpbmUi ICJCcmVha3BvaW50IDQuKiIgXAorKyAgICAgICAic2V0IGYzIGJyZWFrcG9pbnQgZm9yIHBpZWNl cyIKKysgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIGYzIGJyZWFr cG9pbnQgZm9yIHBpZWNlcyIKKysgICAgZ2RiX3Rlc3QgInByaW50IGEuaSIgIiA9IDQiICJwcmlu dCBhLmkgaW4gcGllY2VzOmYzIgorKyAgICBnZGJfdGVzdCAicHJpbnQgYS5qIiAiID0gMTQiICJw cmludCBhLmogaW4gcGllY2VzOmYzIgorKyAgICAjIFJpZ2h0IG5vdyBnZGIgc2F5cyAidmFsdWUg b3B0aW1pemVkIG91dCIgaGVyZSwgYnV0IHRoYXQgaXMgd3JvbmcuCisrICAgIHNldHVwX2tmYWls ICJubyBidWcgeWV0IiAqLSotKgorKyAgICBnZGJfdGVzdCAicHJpbnQgYS5pID0gNyIgIiA9IDci ICJzZXQgYS5pIGluIHBpZWNlczpmMyIKKysgICAgZ2RiX3Rlc3QgInByaW50IGEuaSIgIiA9IDci ICJwcmludCBuZXcgYS5pIGluIHBpZWNlczpmMyIKKyt9CisrCisgIyBGdW5jdGlvbiBmNiB0ZXN0 cyBmb3IgYW4gZW1wdHkgRFdfT1BfcGllY2UuCisgcHJvYyBwaWVjZXNfdGVzdF9mNiB7fSB7Cisg ICAgIGdsb2JhbCBjc3JjZmlsZQorICAgICBzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAi ZjYgYnJlYWtwb2ludCIgJGNzcmNmaWxlXQorLSAgICBnZGJfdGVzdCAiYnJlYWsgcGllY2VzLmM6 JGxpbmUiICJCcmVha3BvaW50IDQuKiIgXAorKyAgICBnZGJfdGVzdCAiYnJlYWsgcGllY2VzLmM6 JGxpbmUiICJCcmVha3BvaW50IDUuKiIgXAorICAgICAgICAic2V0IGY2IGJyZWFrcG9pbnQgZm9y IHBpZWNlcyIKKyAgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnRpbnVlIHRvIGY2 IGJyZWFrcG9pbnQgZm9yIHBpZWNlcyIKKyAgICAgZ2RiX3Rlc3QgInByaW50IGEiIFwKKy0JIndh cm5pbmc6IGJ5dGVzIC4qIGluIGNvbXB1dGVkIG9iamVjdCB3ZXJlLiogPSB7aSA9IDcsIGogPSA4 LCBxID0gMH0iIFwKKysJIndhcm5pbmc6IGJpdHMgLiogaW4gY29tcHV0ZWQgb2JqZWN0IHdlcmUu KiA9IHtpID0gNywgaiA9IDgsIHEgPSAwfSIgXAorIAkicHJpbnQgYSB3aXRoIG9wdGltaXplZCBv dXQgcGllY2UiCisgICAgICMgTm90ZTogbm8gd2FybmluZyBmb3IgdGhpcyBjYXNlLgorICAgICBn ZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgYS5pIiBcCitAQCAtOTEsNCArMTA2LDUgQEAKKyAKKyBw aWVjZXNfdGVzdF9mMQorIHBpZWNlc190ZXN0X2YyCisrcGllY2VzX3Rlc3RfZjMKKyBwaWVjZXNf dGVzdF9mNgoKZGlmZiAtLWdpdCBhL2dkYi1iejU5NDU2MC1jb3JlLXZzLXByb2Nlc3MucGF0Y2gg Yi9nZGItYno1OTQ1NjAtY29yZS12cy1wcm9jZXNzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjVmN2I5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno1OTQ1NjAt Y29yZS12cy1wcm9jZXNzLnBhdGNoCkBAIC0wLDAgKzEsMTY0IEBACistLS0gLi9nZGIvZG9jL2dk Yi50ZXhpbmZvCTIwMTAtMDUtMjQgMTk6Mzc6MDEuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIv ZG9jL2dkYi50ZXhpbmZvCTIwMTAtMDUtMjQgMTk6Mzg6NTYuMDAwMDAwMDAwICswMjAwCitAQCAt MTQ3NjgsMzMgKzE0NzY4LDIxIEBAIGFuZCBAY29kZXtzaG93IGFyY2hpdGVjdHVyZX0uCisgQGNp bmRleCBhY3RpdmUgdGFyZ2V0cworIEBjaW5kZXggbXVsdGlwbGUgdGFyZ2V0cworIAorLVRoZXJl IGFyZSB0aHJlZSBjbGFzc2VzIG9mIHRhcmdldHM6IHByb2Nlc3NlcywgY29yZSBmaWxlcywgYW5k CistZXhlY3V0YWJsZSBmaWxlcy4gIEB2YWx1ZXtHREJOfSBjYW4gd29yayBjb25jdXJyZW50bHkg b24gdXAgdG8gdGhyZWUKKy1hY3RpdmUgdGFyZ2V0cywgb25lIGluIGVhY2ggY2xhc3MuICBUaGlz IGFsbG93cyB5b3UgdG8gKGZvciBleGFtcGxlKQorLXN0YXJ0IGEgcHJvY2VzcyBhbmQgaW5zcGVj dCBpdHMgYWN0aXZpdHkgd2l0aG91dCBhYmFuZG9uaW5nIHlvdXIgd29yayBvbgorLWEgY29yZSBm aWxlLgorLQorLUZvciBleGFtcGxlLCBpZiB5b3UgZXhlY3V0ZSBAc2FtcHtnZGIgYS5vdXR9LCB0 aGVuIHRoZSBleGVjdXRhYmxlIGZpbGUKKy1AY29kZXthLm91dH0gaXMgdGhlIG9ubHkgYWN0aXZl IHRhcmdldC4gIElmIHlvdSBkZXNpZ25hdGUgYSBjb3JlIGZpbGUgYXMKKy13ZWxsLS0tcHJlc3Vt YWJseSBmcm9tIGEgcHJpb3IgcnVuIHRoYXQgY3Jhc2hlZCBhbmQgY29yZWR1bXBlZC0tLXRoZW4K Ky1AdmFsdWV7R0RCTn0gaGFzIHR3byBhY3RpdmUgdGFyZ2V0cyBhbmQgdXNlcyB0aGVtIGluIHRh bmRlbSwgbG9va2luZworLWZpcnN0IGluIHRoZSBjb3JlZmlsZSB0YXJnZXQsIHRoZW4gaW4gdGhl IGV4ZWN1dGFibGUgZmlsZSwgdG8gc2F0aXNmeQorLXJlcXVlc3RzIGZvciBtZW1vcnkgYWRkcmVz c2VzLiAgKFR5cGljYWxseSwgdGhlc2UgdHdvIGNsYXNzZXMgb2YgdGFyZ2V0CistYXJlIGNvbXBs ZW1lbnRhcnksIHNpbmNlIGNvcmUgZmlsZXMgY29udGFpbiBvbmx5IGEgcHJvZ3JhbSdzCistcmVh ZC13cml0ZSBtZW1vcnktLS12YXJpYWJsZXMgYW5kIHNvIG9uLS0tcGx1cyBtYWNoaW5lIHN0YXR1 cywgd2hpbGUKKy1leGVjdXRhYmxlIGZpbGVzIGNvbnRhaW4gb25seSB0aGUgcHJvZ3JhbSB0ZXh0 IGFuZCBpbml0aWFsaXplZCBkYXRhLikKKy0KKy1XaGVuIHlvdSB0eXBlIEBjb2Rle3J1bn0sIHlv dXIgZXhlY3V0YWJsZSBmaWxlIGJlY29tZXMgYW4gYWN0aXZlIHByb2Nlc3MKKy10YXJnZXQgYXMg d2VsbC4gIFdoZW4gYSBwcm9jZXNzIHRhcmdldCBpcyBhY3RpdmUsIGFsbCBAdmFsdWV7R0RCTn0K Ky1jb21tYW5kcyByZXF1ZXN0aW5nIG1lbW9yeSBhZGRyZXNzZXMgcmVmZXIgdG8gdGhhdCB0YXJn ZXQ7IGFkZHJlc3NlcyBpbgorLWFuIGFjdGl2ZSBjb3JlIGZpbGUgb3IgZXhlY3V0YWJsZSBmaWxl IHRhcmdldCBhcmUgb2JzY3VyZWQgd2hpbGUgdGhlCistcHJvY2VzcyB0YXJnZXQgaXMgYWN0aXZl LgorLQorLVVzZSB0aGUgQGNvZGV7Y29yZS1maWxlfSBhbmQgQGNvZGV7ZXhlYy1maWxlfSBjb21t YW5kcyB0byBzZWxlY3QgYSBuZXcKKy1jb3JlIGZpbGUgb3IgZXhlY3V0YWJsZSB0YXJnZXQgKEBw eHJlZntGaWxlcywgLENvbW1hbmRzIHRvIFNwZWNpZnkKKy1GaWxlc30pLiAgVG8gc3BlY2lmeSBh cyBhIHRhcmdldCBhIHByb2Nlc3MgdGhhdCBpcyBhbHJlYWR5IHJ1bm5pbmcsIHVzZQorLXRoZSBA Y29kZXthdHRhY2h9IGNvbW1hbmQgKEBweHJlZntBdHRhY2gsICxEZWJ1Z2dpbmcgYW4gQWxyZWFk eS1ydW5uaW5nCistUHJvY2Vzc30pLgorK1RoZXJlIGFyZSBtdWx0aXBsZSBjbGFzc2VzIG9mIHRh cmdldHMgc3VjaCBhczogcHJvY2Vzc2VzLCBleGVjdXRhYmxlIGZpbGVzIG9yCisrcmVjb3JkaW5n IHNlc3Npb25zLiAgQ29yZSBmaWxlcyBiZWxvbmcgdG8gdGhlIHByb2Nlc3MgY2xhc3MsIHRoZXJl IGNhbiBiZQorK2FjdGl2ZSBvbmx5IG9uZSBvZiBhIGNvcmUgb3IgYSBydW5uaW5nIHByb2Nlc3Mu ICBPdGhlcndpc2UgQHZhbHVle0dEQk59IGNhbgorK3dvcmsgY29uY3VycmVudGx5IG9uIG11bHRp cGxlIGFjdGl2ZSB0YXJnZXRzLCBvbmUgaW4gZWFjaCBjbGFzcy4gIFRoaXMgYWxsb3dzCisreW91 IHRvIChmb3IgZXhhbXBsZSkgc3RhcnQgYSBwcm9jZXNzIGFuZCBpbnNwZWN0IGl0cyBhY3Rpdml0 eSB3aGlsZSBzdGlsbAorK2hhdmluZyBhY2Nlc3MgdG8gdGhlIGV4ZWN1dGFibGUgZmlsZSBhZnRl ciB0aGUgcHJvY2VzcyBmaW5pc2hlcy4gIE9yIGlmIHlvdQorK3N0YXJ0IHByb2Nlc3MgcmVjb3Jk aW5nIChAcHhyZWZ7UmV2ZXJzZSBFeGVjdXRpb259KSBhbmQgQGNvZGV7cmV2ZXJzZS1zdGVwfQor K3RoZXJlIHlvdSBhcmUgcHJlc2VudGVkIGEgdmlydHVhbCBsYXllciBvZiB0aGUgcmVjb3JkaW5n IHRhcmdldCB3aGlsZSB0aGUKKytwcm9jZXNzIHRhcmdldCByZW1haW5zIHN0b3BwZWQgYXQgdGhl IGNocm9ub2xvZ2ljYWxseSBsYXN0IHBvaW50IG9mIHRoZSBwcm9jZXNzCisrZXhlY3V0aW9uLgor KworK1VzZSB0aGUgQGNvZGV7Y29yZS1maWxlfSBhbmQgQGNvZGV7ZXhlYy1maWxlfSBjb21tYW5k cyB0byBzZWxlY3QgYSBuZXcgY29yZQorK2ZpbGUgb3IgZXhlY3V0YWJsZSB0YXJnZXQgKEBweHJl ZntGaWxlcywgLENvbW1hbmRzIHRvIFNwZWNpZnkgRmlsZXN9KS4gIFRvCisrc3BlY2lmeSBhcyBh IHRhcmdldCBhIHByb2Nlc3MgdGhhdCBpcyBhbHJlYWR5IHJ1bm5pbmcsIHVzZSB0aGUgQGNvZGV7 YXR0YWNofQorK2NvbW1hbmQgKEBweHJlZntBdHRhY2gsICxEZWJ1Z2dpbmcgYW4gQWxyZWFkeS1y dW5uaW5nIFByb2Nlc3N9KS4KKyAKKyBAbm9kZSBUYXJnZXQgQ29tbWFuZHMKKyBAc2VjdGlvbiBD b21tYW5kcyBmb3IgTWFuYWdpbmcgVGFyZ2V0cworLS0tIC4vZ2RiL2luZmNtZC5jCTIwMTAtMDUt MjQgMTk6Mzc6MDEuMDAwMDAwMDAwICswMjAwCisrKysgLi9nZGIvaW5mY21kLmMJMjAxMC0wNS0y NCAxOTo0MToyMS4wMDAwMDAwMDAgKzAyMDAKK0BAIC00ODMsNiArNDgzLDEzIEBAIHJ1bl9jb21t YW5kXzEgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKKyAKKyAgIGRvbnRfcmVwZWF0ICgpOwor IAorKyAgaWYgKGNvcmVfYmZkKQorKyAgICB7CisrICAgICAgY29yZV9maWxlX2NvbW1hbmQgKE5V TEwsIGZyb21fdHR5KTsKKysgICAgICBpZiAoY29yZV9iZmQpCisrCXdhcm5pbmcgKF8oIkNvcmUg ZmlsZSBub3QgdW5sb2FkZWQuIikpOworKyAgICB9CisrCisgICBraWxsX2lmX2FscmVhZHlfcnVu bmluZyAoZnJvbV90dHkpOworIAorICAgaW5pdF93YWl0X2Zvcl9pbmZlcmlvciAoKTsKK0BAIC0y MzczLDYgKzIzODAsMTMgQEAgYXR0YWNoX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0 eQorIAllcnJvciAoXygiTm90IGtpbGxlZC4iKSk7CisgICAgIH0KKyAKKysgIGlmIChjb3JlX2Jm ZCkKKysgICAgeworKyAgICAgIGNvcmVfZmlsZV9jb21tYW5kIChOVUxMLCBmcm9tX3R0eSk7Cisr ICAgICAgaWYgKGNvcmVfYmZkKQorKwl3YXJuaW5nIChfKCJDb3JlIGZpbGUgbm90IHVubG9hZGVk LiIpKTsKKysgICAgfQorKworICAgLyogQ2xlYW4gdXAgYW55IGxlZnRvdmVycyBmcm9tIG90aGVy IHJ1bnMuICBTb21lIG90aGVyIHRoaW5ncyBmcm9tCisgICAgICB0aGlzIGZ1bmN0aW9uIHNob3Vs ZCBwcm9iYWJseSBiZSBtb3ZlZCBpbnRvIHRhcmdldF9wcmVfaW5mZXJpb3IuICAqLworICAgdGFy Z2V0X3ByZV9pbmZlcmlvciAoZnJvbV90dHkpOworLS0tIC4vZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jb3JlZmlsZS5leHAJMjAxMC0wMS0wOSAwMToxNDoxMS4wMDAwMDAwMDAgKzAxMDAKKysrKyAu L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTAtMDUtMjQgMTk6Mzg6NTYu MDAwMDAwMDAwICswMjAwCitAQCAtMTgyLDMgKzE4Miw2MiBAQCBnZGJfbG9hZCAke2JpbmZpbGV9 CisgZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xdKiBpbiAuKiBcXCguKlxc KS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgorIAorIGdkYl90ZXN0ICJjb3JlIiAi Tm8gY29yZSBmaWxlIG5vdy4iCisrCisrCisrIyBUZXN0IGEgcnVuIChzdGFydCkgY29tbWFuZCB3 aWxsIGNsZWFyIGFueSBsb2FkZWQgY29yZSBmaWxlLgorKworK2dkYl90ZXN0ICJjb3JlLWZpbGUg JGNvcmVmaWxlIiAiQ29yZSB3YXMgZ2VuZXJhdGVkIGJ5IC4qIiAicnVuOiBsb2FkIGNvcmUgYWdh aW4iCisrZ2RiX3Rlc3QgImluZm8gZmlsZXMiICJcclxuTG9jYWwgY29yZSBkdW1wIGZpbGU6XHJc bi4qIiAicnVuOiBzYW5pdHkgY2hlY2sgd2Ugc2VlIHRoZSBjb3JlIGZpbGUiCisrCisrc2V0IHRl c3QgInJ1bjogd2l0aCBjb3JlIgorK2lmIFtydW50b19tYWluXSB7CisrICAgIHBhc3MgJHRlc3QK Kyt9IGVsc2UgeworKyAgICBmYWlsICR0ZXN0CisrfQorKworK3NldCB0ZXN0ICJydW46IGNvcmUg ZmlsZSBpcyBjbGVhcmVkIgorK2dkYl90ZXN0X211bHRpcGxlICJpbmZvIGZpbGVzIiAkdGVzdCB7 CisrICAgICJcclxuTG9jYWwgY29yZSBkdW1wIGZpbGU6XHJcbi4qXHJcbiRnZGJfcHJvbXB0ICQi IHsKKysJZmFpbCAkdGVzdAorKyAgICB9CisrICAgICJcclxuJGdkYl9wcm9tcHQgJCIgeworKwlw YXNzICR0ZXN0CisrICAgIH0KKyt9CisrCisrZ2RiX2V4aXQKKysKKysKKysjIFRlc3QgYW4gYXR0 YWNoIGNvbW1hbmQgd2lsbCBjbGVhciBhbnkgbG9hZGVkIGNvcmUgZmlsZS4KKysKKytpZiAhW2lz X3JlbW90ZSB0YXJnZXRdIHsKKysgICAgc2V0IHRlc3QgImF0dGFjaDogc3Bhd24gc2xlZXAiCisr ICAgIHNldCByZXMgW3JlbW90ZV9zcGF3biBob3N0ICIkYmluZmlsZSBzbGVlcCJdOworKyAgICBp ZiB7ICRyZXMgPCAwIHx8ICRyZXMgPT0gIiIgfSB7CisrCXBlcnJvciAiJHRlc3QgZmFpbGVkLiIK KysJZmFpbCAkdGVzdAorKwlyZXR1cm4KKysgICAgfQorKyAgICBzZXQgcGlkIFtleHBfcGlkIC1p ICRyZXNdCisrICAgICMgV2UgZG8gbm90IGNhcmUgb2YgdGhlIHN0YXJ0dXAgcGhhc2Ugd2hlcmUg aXQgd2lsbCBiZSBjYXVnaHQuCisrCisrICAgIGdkYl9zdGFydAorKworKyAgICBnZGJfdGVzdCAi Y29yZS1maWxlICRjb3JlZmlsZSIgIkNvcmUgd2FzIGdlbmVyYXRlZCBieSAuKiIgImF0dGFjaDog bG9hZCBjb3JlIGFnYWluIgorKyAgICBnZGJfdGVzdCAiaW5mbyBmaWxlcyIgIlxyXG5Mb2NhbCBj b3JlIGR1bXAgZmlsZTpcclxuLioiICJhdHRhY2g6IHNhbml0eSBjaGVjayB3ZSBzZWUgdGhlIGNv cmUgZmlsZSIKKysKKysgICAgZ2RiX3Rlc3QgImF0dGFjaCAkcGlkIiAiQXR0YWNoaW5nIHRvIHBy b2Nlc3MgJHBpZFxyXG4uKiIgImF0dGFjaDogd2l0aCBjb3JlIgorKworKyAgICBzZXQgdGVzdCAi YXR0YWNoOiBjb3JlIGZpbGUgaXMgY2xlYXJlZCIKKysgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImlu Zm8gZmlsZXMiICR0ZXN0IHsKKysJIlxyXG5Mb2NhbCBjb3JlIGR1bXAgZmlsZTpcclxuLipcclxu JGdkYl9wcm9tcHQgJCIgeworKwkgICAgZmFpbCAkdGVzdAorKwl9CisrCSJcclxuJGdkYl9wcm9t cHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysKKysgICAgZ2RiX2V4aXQK Kyt9CistLS0gLi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVtYWtlci5jCTIwMTAtMDEtMDEg MDg6MzI6MDAuMDAwMDAwMDAwICswMTAwCisrKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Nv cmVtYWtlci5jCTIwMTAtMDUtMjQgMTk6Mzg6NTYuMDAwMDAwMDAwICswMjAwCitAQCAtMTMzLDgg KzEzMywxNCBAQCBmdW5jMSAoKQorICAgZnVuYzIgKCk7CisgfQorIAorLWludCBtYWluICgpCisr aW50CisrbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorIHsKKysgIGlmIChhcmdjID09IDIg JiYgc3RyY21wIChhcmd2WzFdLCAic2xlZXAiKSA9PSAwKQorKyAgICB7CisrICAgICAgc2xlZXAg KDYwKTsKKysgICAgICByZXR1cm4gMDsKKysgICAgfQorICAgbW1hcGRhdGEgKCk7CisgICBmdW5j MSAoKTsKKyAgIHJldHVybiAwOwoKZGlmZiAtLWdpdCBhL2dkYi1iejU5NTQ3NS10dWktbGF5b3V0 LnBhdGNoIGIvZ2RiLWJ6NTk1NDc1LXR1aS1sYXlvdXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNzE3NDJmOAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejU5NTQ3 NS10dWktbGF5b3V0LnBhdGNoCkBAIC0wLDAgKzEsNzkgQEAKK2h0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTg2NTY2CitodHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAxMC0wMy9tc2cwMDc0Ni5odG1sCitodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLXBhdGNoZXMvMjAxMC0wNS9tc2cwMDU1MS5odG1sCitodHRwOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLWN2cy8yMDEwLTAzL21zZzAwMTk0Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdl TG9nCTIwMTAvMDMvMTkgMjI6MDA6MTYJMS4xMTUwOAorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIw MTAvMDMvMjAgMDU6MTc6MTAJMS4xMTUwOQorIyMgLTEsMyArMSw5IEBACisrMjAxMC0wMy0yMCAg RGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KKysKKysJKiB0dWkvdHVp LWRpc2FzbS5jICh0dWlfZ2V0X2JlZ2luX2FzbV9hZGRyZXNzKTogRGVmYXVsdCB0bworKwlnZXRf Y3VycmVudF9hcmNoLgorKwkqIHR1aS90dWktbGF5b3V0LmMgKGV4dHJhY3RfZGlzcGxheV9zdGFy dF9hZGRyKTogTGlrZXdpc2UuCisrCisgMjAxMC0wMy0xOSAgU3RhbiBTaGVicyAgPHN0YW5AY29k ZXNvdXJjZXJ5LmNvbT4KKyAKKyAJKiBheC1nZGIuYyAoZ2VuX2ZldGNoKTogSGFuZGxlIGJvb2wu CistLS0gc3JjL2dkYi90dWkvdHVpLWRpc2FzbS5jCTIwMTAvMDEvMDEgMDc6MzI6MDcJMS4zMwor KysrIHNyYy9nZGIvdHVpL3R1aS1kaXNhc20uYwkyMDEwLzAzLzIwIDA1OjE3OjEwCTEuMzQKK0BA IC0yMSw2ICsyMSw3IEBACisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworIAorICNpbmNsdWRlICJkZWZz LmgiCisrI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKKyAjaW5jbHVkZSAic3ltdGFiLmgiCisgI2lu Y2x1ZGUgImJyZWFrcG9pbnQuaCIKKyAjaW5jbHVkZSAiZnJhbWUuaCIKK0BAIC0zMzAsNyArMzMx LDcgQEAKKyB7CisgICBzdHJ1Y3QgdHVpX2dlbl93aW5faW5mbyAqbG9jYXRvcjsKKyAgIHN0cnVj dCB0dWlfbG9jYXRvcl9lbGVtZW50ICplbGVtZW50OworLSAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBOVUxMOworKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfY3VycmVudF9hcmNo ICgpOworICAgQ09SRV9BRERSIGFkZHI7CisgCisgICBsb2NhdG9yID0gdHVpX2xvY2F0b3Jfd2lu X2luZm9fcHRyICgpOworLS0tIHNyYy9nZGIvdHVpL3R1aS1sYXlvdXQuYwkyMDEwLzAxLzAxIDA3 OjMyOjA3CTEuMzYKKysrKyBzcmMvZ2RiL3R1aS90dWktbGF5b3V0LmMJMjAxMC8wMy8yMCAwNTox NzoxMAkxLjM3CitAQCAtMjEsNiArMjEsNyBAQAorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKyAKKyAj aW5jbHVkZSAiZGVmcy5oIgorKyNpbmNsdWRlICJhcmNoLXV0aWxzLmgiCisgI2luY2x1ZGUgImNv bW1hbmQuaCIKKyAjaW5jbHVkZSAic3ltdGFiLmgiCisgI2luY2x1ZGUgImZyYW1lLmgiCitAQCAt NTIyLDcgKzUyMyw3IEBACisgZXh0cmFjdF9kaXNwbGF5X3N0YXJ0X2FkZHIgKHN0cnVjdCBnZGJh cmNoICoqZ2RiYXJjaF9wLCBDT1JFX0FERFIgKmFkZHJfcCkKKyB7CisgICBlbnVtIHR1aV9sYXlv dXRfdHlwZSBjdXJfbGF5b3V0ID0gdHVpX2N1cnJlbnRfbGF5b3V0ICgpOworLSAgc3RydWN0IGdk YmFyY2ggKmdkYmFyY2ggPSBOVUxMOworKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRf Y3VycmVudF9hcmNoICgpOworICAgQ09SRV9BRERSIGFkZHI7CisgICBDT1JFX0FERFIgcGM7Cisg ICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIGN1cnNhbCA9IGdldF9jdXJyZW50X3NvdXJjZV9zeW10 YWJfYW5kX2xpbmUgKCk7CistLS0gL2Rldi9udWxsCTIwMTAtMDUtMjQgMDQ6NDM6MzIuNjMyNzk0 MDIxICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3R1aS1sYXlvdXQu ZXhwCTIwMTAtMDUtMjQgMjA6MTM6MzAuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDIxIEBA CisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisr IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc2V0IHRlc3RmaWxlIHR1aS1sYXlvdXQK KytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSBz dGFydC5jXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl90ZXN0ICJsYXlvdXQgYXNt IgoKZGlmZiAtLWdpdCBhL2dkYi1iejYwMDc0Ni1rb2VuaWctY3Jhc2gucGF0Y2ggYi9nZGItYno2 MDA3NDYta29lbmlnLWNyYXNoLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjdiNmUyMDkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno2MDA3NDYta29lbmlnLWNyYXNo LnBhdGNoCkBAIC0wLDAgKzEsNjYgQEAKK1twYXRjaF0gRml4IEFETCBhbm9ueW1vdXMgdHlwZSBj cmFzaAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDYvbXNnMDAw MDQuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMC0wNi9tc2cwMDAx Mi5odG1sCisKK1sgQmFja3BvcnRlZCB0aGUgdGVzdGNhc2UuICBdCisKKyMjIyBzcmMvZ2RiL0No YW5nZUxvZwkyMDEwLzA2LzAyIDA2OjI0OjAwCTEuMTE4NjIKKyMjIyBzcmMvZ2RiL0NoYW5nZUxv ZwkyMDEwLzA2LzAyIDE1OjMxOjI5CTEuMTE4NjMKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTAtMDYt MDIgIFNhbWkgV2FnaWFhbGxhICA8c3dhZ2lhYWxAcmVkaGF0LmNvbT4KKysKKysJKiBjcC1zdXBw b3J0LmMgKG1ha2Vfc3ltYm9sX292ZXJsb2FkX2xpc3RfYWRsX25hbWVzcGFjZSk6IEhhbmRsZQor Kwlhbm9ueW1vdXMgdHlwZSBjYXNlLgorKworIDIwMTAtMDYtMDIgIFBpZXJyZSBNdWxsZXIgIDxt dWxsZXJAaWNzLnUtc3RyYXNiZy5mcj4KKyAKKyAJKiBkd2FyZjJyZWFkLmMgKHJlYWRfc3VicmFu Z2VfdHlwZSk6IEhhbmRsZSBtaXNzaW5nIGJhc2UgdHlwZQorIyMjIHNyYy9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZwkyMDEwLzA2LzAxIDIxOjI5OjIxCTEuMjI5OAorIyMjIHNyYy9nZGIvdGVzdHN1 aXRlL0NoYW5nZUxvZwkyMDEwLzA2LzAyIDE1OjMxOjMwCTEuMjI5OQorIyMgLTEsMyArMSw4IEBA CisrMjAxMC0wNi0wMiAgU2FtaSBXYWdpYWFsbGEgIDxzd2FnaWFhbEByZWRoYXQuY29tPgorKwor KwkqIGdkYi5jcC9uYW1lc3BhY2Uta29lbmlnLmV4cDogQWRkZWQgbmV3IHRlc3QgY2FzZS4KKysJ KiBnZGIuY3AvbmFtZXNwYWNlLWtvZW5pZy5jYzogRGl0dG8uCisrCisgMjAxMC0wNi0wMSAgTWlj aGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+CisgCisgCSogZ2RiLmJhc2UvYXJpdGht ZXQuZXhwOiBVc2UgZ2RiX3Rlc3Rfbm9fb3V0cHV0LgorLS0tIHNyYy9nZGIvY3Atc3VwcG9ydC5j CTIwMTAvMDUvMTMgMjM6NTM6MzIJMS40MAorKysrIHNyYy9nZGIvY3Atc3VwcG9ydC5jCTIwMTAv MDYvMDIgMTU6MzE6MzAJMS40MQorQEAgLTc1Miw2ICs3NTIsOSBAQAorIAorICAgdHlwZV9uYW1l ID0gVFlQRV9OQU1FICh0eXBlKTsKKyAKKysgIGlmICh0eXBlX25hbWUgPT0gTlVMTCkKKysgICAg cmV0dXJuOworKworICAgcHJlZml4X2xlbiA9IGNwX2VudGlyZV9wcmVmaXhfbGVuICh0eXBlX25h bWUpOworIAorICAgaWYgKHByZWZpeF9sZW4gIT0gMCkKKy0tLSBnZGItNy4xL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL25hbWVzcGFjZS1rb2VuaWcuY2Mub3JpZwkyMDEwLTA2LTA5IDA4OjIwOjE0LjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNl LWtvZW5pZy5jYwkyMDEwLTA2LTA5IDExOjA5OjI5LjAwMDAwMDAwMCArMDIwMAorQEAgLTE2NSw2 ICsxNjUsMTMgQEAgbmFtZXNwYWNlIE0geworIAorIH0KKyAvLy0tLS0tLS0tLS0tLQorK3N0YXRp YyB1bmlvbiB7CisrICAgIGludCAgYTsKKysgICAgY2hhciBiOworK31wX3VuaW9uOworKworKy8v LS0tLS0tLS0tLS0tCisrCisgaW50CisgbWFpbiAoKQorIHsKKy0tLSBnZGItNy4xL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1rb2VuaWcuZXhwLm9yaWcJMjAxMC0wNi0wOSAwODoyMDox NC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVz cGFjZS1rb2VuaWcuZXhwCTIwMTAtMDYtMDkgMTE6MDk6NDguMDAwMDAwMDAwICswMjAwCitAQCAt MTEwLDMgKzExMSw3IEBAIGdkYl90ZXN0ICJwIG8gKyA1LjBmIiAiPSAyMiIKKyBnZGJfdGVzdCAi cCBvICsgNSIgIj0gMjMiCisgCisgZ2RiX3Rlc3QgInAgbysrIiAiPSAyNCIKKysKKysjdGVzdCB0 aGF0IGxvb2t1cCBpcyBub3QgdGh3YXJ0ZWQgYnkgYW5vbnltb3VzIHR5cGVzCisrZ2RiX3Rlc3Qg InAgZm9vIChwX3VuaW9uKSIgXAorKyAgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGZvbyB0byBh bnkgb3ZlcmxvYWRlZCBpbnN0YW5jZSIKCmRpZmYgLS1naXQgYS9nZGItYno2MDE4ODctZHdhcmY0 LTFvZjIucGF0Y2ggYi9nZGItYno2MDE4ODctZHdhcmY0LTFvZjIucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI3MDhkZgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejYwMTg4Ny1kd2FyZjQtMW9mMi5wYXRjaApAQCAtMCwwICsxLDMyOSBAQAorY29tbWl0IGJlMWY1 N2M5MGJkZjg2NDc3YjliYzY5Y2M5ODIxNzFkNmFkNWRmNTYKK0F1dGhvcjogVG9tIFRyb21leSA8 dHJvbWV5QHJlZGhhdC5jb20+CitEYXRlOiAgIFR1ZSBBcHIgMjAgMTc6MzM6MTMgMjAxMCArMDAw MAorCisgICAgCSogZHdhcmYyLWZyYW1lLmMgKGRlY29kZV9mcmFtZV9lbnRyeV8xKTogSGFuZGxl IENJRSB2ZXJzaW9uIDQuCisgICAgCShzdHJ1Y3QgZHdhcmYyX2NpZSkgPHNlZ21lbnRfc2l6ZT46 IE5ldyBmaWVsZC4KKyAgICAJKiBkd2FyZjJyZWFkLmMgKHBhcnRpYWxfcmVhZF9jb21wX3VuaXRf aGVhZCk6IEFjY2VwdCBEV0FSRiA0LgorICAgIAkoc2tpcF9vbmVfZGllKTogSGFuZGxlIERXX0ZP Uk1fZmxhZ19wcmVzZW50LCBEV19GT1JNX3NlY19vZmZzZXQsCisgICAgCURXX0ZPUk1fZXhwcmxv Yy4KKyAgICAJKHJlYWRfYXR0cmlidXRlX3ZhbHVlKTogSGFuZGxlIERXX0ZPUk1fZmxhZ19wcmVz ZW50LAorICAgIAlEV19GT1JNX3NlY19vZmZzZXQsIERXX0ZPUk1fZXhwcmxvYy4KKyAgICAJKGR1 bXBfZGllX3NoYWxsb3cpOiBMaWtld2lzZS4KKyAgICAJKGF0dHJfZm9ybV9pc19zZWN0aW9uX29m ZnNldCk6IEhhbmRsZSBEV19GT1JNX3NlY19vZmZzZXQuCisgICAgCShkd2FyZjJfY29uc3RfdmFs dWUpOiBIYW5kbGUgRFdfRk9STV9leHBybG9jLgorICAgIAkoYXR0cl9mb3JtX2lzX2Jsb2NrKTog TGlrZXdpc2UuCisgICAgCShzdHJ1Y3QgbGluZV9oZWFkZXIpIDxtYXhpbXVtX29wc19wZXJfaW5z dHJ1Y3Rpb24+OiBOZXcgZmllbGQuCisgICAgCShkd2FyZl9kZWNvZGVfbGluZV9oZWFkZXIpOiBT ZXQgbmV3IGZpZWxkLgorICAgIAkoZHdhcmZfZGVjb2RlX2xpbmVzKTogSGFuZGxlIG5ldyBmaWVs ZC4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyAr MSwyMCBAQAorKzIwMTAtMDQtMjAgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KKysK KysJKiBkd2FyZjItZnJhbWUuYyAoZGVjb2RlX2ZyYW1lX2VudHJ5XzEpOiBIYW5kbGUgQ0lFIHZl cnNpb24gNC4KKysJKHN0cnVjdCBkd2FyZjJfY2llKSA8c2VnbWVudF9zaXplPjogTmV3IGZpZWxk LgorKwkqIGR3YXJmMnJlYWQuYyAocGFydGlhbF9yZWFkX2NvbXBfdW5pdF9oZWFkKTogQWNjZXB0 IERXQVJGIDQuCisrCShza2lwX29uZV9kaWUpOiBIYW5kbGUgRFdfRk9STV9mbGFnX3ByZXNlbnQs IERXX0ZPUk1fc2VjX29mZnNldCwKKysJRFdfRk9STV9leHBybG9jLgorKwkocmVhZF9hdHRyaWJ1 dGVfdmFsdWUpOiBIYW5kbGUgRFdfRk9STV9mbGFnX3ByZXNlbnQsCisrCURXX0ZPUk1fc2VjX29m ZnNldCwgRFdfRk9STV9leHBybG9jLgorKwkoZHVtcF9kaWVfc2hhbGxvdyk6IExpa2V3aXNlLgor KwkoYXR0cl9mb3JtX2lzX3NlY3Rpb25fb2Zmc2V0KTogSGFuZGxlIERXX0ZPUk1fc2VjX29mZnNl dC4KKysJKGR3YXJmMl9jb25zdF92YWx1ZSk6IEhhbmRsZSBEV19GT1JNX2V4cHJsb2MuCisrCShh dHRyX2Zvcm1faXNfYmxvY2spOiBMaWtld2lzZS4KKysJKHN0cnVjdCBsaW5lX2hlYWRlcikgPG1h eGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbj46IE5ldyBmaWVsZC4KKysJKGR3YXJmX2RlY29kZV9s aW5lX2hlYWRlcik6IFNldCBuZXcgZmllbGQuCisrCShkd2FyZl9kZWNvZGVfbGluZXMpOiBIYW5k bGUgbmV3IGZpZWxkLgorKworIDIwMTAtMDQtMjAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KKyAKKyAJKiBmLWV4cC55OiBBZGQgbmV3IHByb2R1Y3Rpb24gdG8g cmVjb2duaXplIHRoZSBgbG9naWNhbCo4JyB0eXBlLgorLS0tIGEvZ2RiL2R3YXJmMi1mcmFtZS5j CisrKysgYi9nZGIvZHdhcmYyLWZyYW1lLmMKK0BAIC04NSw2ICs4NSw5IEBAIHN0cnVjdCBkd2Fy ZjJfY2llCisgCisgICAvKiBUaGUgdmVyc2lvbiByZWNvcmRlZCBpbiB0aGUgQ0lFLiAgKi8KKyAg IHVuc2lnbmVkIGNoYXIgdmVyc2lvbjsKKysKKysgIC8qIFRoZSBzZWdtZW50IHNpemUuICAqLwor KyAgdW5zaWduZWQgY2hhciBzZWdtZW50X3NpemU7CisgfTsKKyAKKyBzdHJ1Y3QgZHdhcmYyX2Np ZV90YWJsZQorQEAgLTE3MTQsNyArMTcxNyw3IEBAIGRlY29kZV9mcmFtZV9lbnRyeV8xIChzdHJ1 Y3QgY29tcF91bml0ICp1bml0LCBnZGJfYnl0ZSAqc3RhcnQsIGludCBlaF9mcmFtZV9wLAorIAor ICAgICAgIC8qIENoZWNrIHZlcnNpb24gbnVtYmVyLiAgKi8KKyAgICAgICBjaWVfdmVyc2lvbiA9 IHJlYWRfMV9ieXRlICh1bml0LT5hYmZkLCBidWYpOworLSAgICAgIGlmIChjaWVfdmVyc2lvbiAh PSAxICYmIGNpZV92ZXJzaW9uICE9IDMpCisrICAgICAgaWYgKGNpZV92ZXJzaW9uICE9IDEgJiYg Y2llX3ZlcnNpb24gIT0gMyAmJiBjaWVfdmVyc2lvbiAhPSA0KQorIAlyZXR1cm4gTlVMTDsKKyAg ICAgICBjaWUtPnZlcnNpb24gPSBjaWVfdmVyc2lvbjsKKyAgICAgICBidWYgKz0gMTsKK0BAIC0x NzM4LDYgKzE3NDEsMjAgQEAgZGVjb2RlX2ZyYW1lX2VudHJ5XzEgKHN0cnVjdCBjb21wX3VuaXQg KnVuaXQsIGdkYl9ieXRlICpzdGFydCwgaW50IGVoX2ZyYW1lX3AsCisgCSAgYXVnbWVudGF0aW9u ICs9IDI7CisgCX0KKyAKKysgICAgICBpZiAoY2llLT52ZXJzaW9uID49IDQpCisrCXsKKysJICAv KiBGSVhNRTogY2hlY2sgdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIGZyb20gdGhlIENVIGhlYWRl ci4gICovCisrCSAgY2llLT5hZGRyX3NpemUgPSByZWFkXzFfYnl0ZSAodW5pdC0+YWJmZCwgYnVm KTsKKysJICArK2J1ZjsKKysJICBjaWUtPnNlZ21lbnRfc2l6ZSA9IHJlYWRfMV9ieXRlICh1bml0 LT5hYmZkLCBidWYpOworKwkgICsrYnVmOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgY2ll LT5hZGRyX3NpemUgPSBnZGJhcmNoX3B0cl9iaXQgKGdkYmFyY2gpIC8gVEFSR0VUX0NIQVJfQklU OworKwkgIGNpZS0+c2VnbWVudF9zaXplID0gMDsKKysJfQorKworICAgICAgIGNpZS0+Y29kZV9h bGlnbm1lbnRfZmFjdG9yID0KKyAJcmVhZF91bnNpZ25lZF9sZWIxMjggKHVuaXQtPmFiZmQsIGJ1 ZiwgJmJ5dGVzX3JlYWQpOworICAgICAgIGJ1ZiArPSBieXRlc19yZWFkOworLS0tIGEvZ2RiL2R3 YXJmMnJlYWQuYworKysrIGIvZ2RiL2R3YXJmMnJlYWQuYworQEAgLTM5Niw2ICszOTYsNyBAQCBz dHJ1Y3QgbGluZV9oZWFkZXIKKyAgIHVuc2lnbmVkIHNob3J0IHZlcnNpb247CisgICB1bnNpZ25l ZCBpbnQgaGVhZGVyX2xlbmd0aDsKKyAgIHVuc2lnbmVkIGNoYXIgbWluaW11bV9pbnN0cnVjdGlv bl9sZW5ndGg7CisrICB1bnNpZ25lZCBjaGFyIG1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbjsK KyAgIHVuc2lnbmVkIGNoYXIgZGVmYXVsdF9pc19zdG10OworICAgaW50IGxpbmVfYmFzZTsKKyAg IHVuc2lnbmVkIGNoYXIgbGluZV9yYW5nZTsKK0BAIC0xNDg4LDEwICsxNDg5LDEwIEBAIHBhcnRp YWxfcmVhZF9jb21wX3VuaXRfaGVhZCAoc3RydWN0IGNvbXBfdW5pdF9oZWFkICpoZWFkZXIsIGdk Yl9ieXRlICppbmZvX3B0ciwKKyAKKyAgIGluZm9fcHRyID0gcmVhZF9jb21wX3VuaXRfaGVhZCAo aGVhZGVyLCBpbmZvX3B0ciwgYWJmZCk7CisgCistICBpZiAoaGVhZGVyLT52ZXJzaW9uICE9IDIg JiYgaGVhZGVyLT52ZXJzaW9uICE9IDMpCisrICBpZiAoaGVhZGVyLT52ZXJzaW9uICE9IDIgJiYg aGVhZGVyLT52ZXJzaW9uICE9IDMgJiYgaGVhZGVyLT52ZXJzaW9uICE9IDQpCisgICAgIGVycm9y IChfKCJEd2FyZiBFcnJvcjogd3JvbmcgdmVyc2lvbiBpbiBjb21waWxhdGlvbiB1bml0IGhlYWRl ciAiCistCSAgICIoaXMgJWQsIHNob3VsZCBiZSAlZCkgW2luIG1vZHVsZSAlc10iKSwgaGVhZGVy LT52ZXJzaW9uLAorLQkgICAyLCBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7CisrCSAgICIoaXMg JWQsIHNob3VsZCBiZSAyLCAzLCBvciA0KSBbaW4gbW9kdWxlICVzXSIpLCBoZWFkZXItPnZlcnNp b24sCisrCSAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsKKyAKKyAgIGlmIChoZWFkZXItPmFi YnJldl9vZmZzZXQgPj0gZHdhcmYyX3Blcl9vYmpmaWxlLT5hYmJyZXYuc2l6ZSkKKyAgICAgZXJy b3IgKF8oIkR3YXJmIEVycm9yOiBiYWQgb2Zmc2V0ICgweCVseCkgaW4gY29tcGlsYXRpb24gdW5p dCBoZWFkZXIgIgorQEAgLTI3NzYsNiArMjc3Nyw4IEBAIHNraXBfb25lX2RpZSAoZ2RiX2J5dGUg KmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAorIAljYXNlIERXX0ZPUk1fZmxhZzoKKyAJICBp bmZvX3B0ciArPSAxOworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fZmxhZ19wcmVzZW50Ogor KwkgIGJyZWFrOworIAljYXNlIERXX0ZPUk1fZGF0YTI6CisgCWNhc2UgRFdfRk9STV9yZWYyOgor IAkgIGluZm9fcHRyICs9IDI7CitAQCAtMjc5Myw5ICsyNzk2LDExIEBAIHNraXBfb25lX2RpZSAo Z2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAorIAkgIHJlYWRfc3RyaW5nIChh YmZkLCBpbmZvX3B0ciwgJmJ5dGVzX3JlYWQpOworIAkgIGluZm9fcHRyICs9IGJ5dGVzX3JlYWQ7 CisgCSAgYnJlYWs7CisrCWNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgorIAljYXNlIERXX0ZPUk1f c3RycDoKKyAJICBpbmZvX3B0ciArPSBjdS0+aGVhZGVyLm9mZnNldF9zaXplOworIAkgIGJyZWFr OworKwljYXNlIERXX0ZPUk1fZXhwcmxvYzoKKyAJY2FzZSBEV19GT1JNX2Jsb2NrOgorIAkgIGlu Zm9fcHRyICs9IHJlYWRfdW5zaWduZWRfbGViMTI4IChhYmZkLCBpbmZvX3B0ciwgJmJ5dGVzX3Jl YWQpOworIAkgIGluZm9fcHRyICs9IGJ5dGVzX3JlYWQ7CitAQCAtNzEyOSw2ICs3MTM0LDEwIEBA IHJlYWRfYXR0cmlidXRlX3ZhbHVlIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCB1bnNpZ25lZCBm b3JtLAorICAgICAgIERXX1VOU05EIChhdHRyKSA9IHJlYWRfOF9ieXRlcyAoYWJmZCwgaW5mb19w dHIpOworICAgICAgIGluZm9fcHRyICs9IDg7CisgICAgICAgYnJlYWs7CisrICAgIGNhc2UgRFdf Rk9STV9zZWNfb2Zmc2V0OgorKyAgICAgIERXX1VOU05EIChhdHRyKSA9IHJlYWRfb2Zmc2V0IChh YmZkLCBpbmZvX3B0ciwgJmN1LT5oZWFkZXIsICZieXRlc19yZWFkKTsKKysgICAgICBpbmZvX3B0 ciArPSBieXRlc19yZWFkOworKyAgICAgIGJyZWFrOworICAgICBjYXNlIERXX0ZPUk1fc3RyaW5n OgorICAgICAgIERXX1NUUklORyAoYXR0cikgPSByZWFkX3N0cmluZyAoYWJmZCwgaW5mb19wdHIs ICZieXRlc19yZWFkKTsKKyAgICAgICBEV19TVFJJTkdfSVNfQ0FOT05JQ0FMIChhdHRyKSA9IDA7 CitAQCAtNzE0MCw2ICs3MTQ5LDcgQEAgcmVhZF9hdHRyaWJ1dGVfdmFsdWUgKHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsIHVuc2lnbmVkIGZvcm0sCisgICAgICAgRFdfU1RSSU5HX0lTX0NBTk9OSUNB TCAoYXR0cikgPSAwOworICAgICAgIGluZm9fcHRyICs9IGJ5dGVzX3JlYWQ7CisgICAgICAgYnJl YWs7CisrICAgIGNhc2UgRFdfRk9STV9leHBybG9jOgorICAgICBjYXNlIERXX0ZPUk1fYmxvY2s6 CisgICAgICAgYmxrID0gZHdhcmZfYWxsb2NfYmxvY2sgKGN1KTsKKyAgICAgICBibGstPnNpemUg PSByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYWJmZCwgaW5mb19wdHIsICZieXRlc19yZWFkKTsKK0BA IC03MTY0LDYgKzcxNzQsOSBAQCByZWFkX2F0dHJpYnV0ZV92YWx1ZSAoc3RydWN0IGF0dHJpYnV0 ZSAqYXR0ciwgdW5zaWduZWQgZm9ybSwKKyAgICAgICBEV19VTlNORCAoYXR0cikgPSByZWFkXzFf Ynl0ZSAoYWJmZCwgaW5mb19wdHIpOworICAgICAgIGluZm9fcHRyICs9IDE7CisgICAgICAgYnJl YWs7CisrICAgIGNhc2UgRFdfRk9STV9mbGFnX3ByZXNlbnQ6CisrICAgICAgRFdfVU5TTkQgKGF0 dHIpID0gMTsKKysgICAgICBicmVhazsKKyAgICAgY2FzZSBEV19GT1JNX3NkYXRhOgorICAgICAg IERXX1NORCAoYXR0cikgPSByZWFkX3NpZ25lZF9sZWIxMjggKGFiZmQsIGluZm9fcHRyLCAmYnl0 ZXNfcmVhZCk7CisgICAgICAgaW5mb19wdHIgKz0gYnl0ZXNfcmVhZDsKK0BAIC03NjgwLDcgKzc2 OTMsNyBAQCBkd2FyZjJfYXR0cl9ub19mb2xsb3cgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCB1bnNp Z25lZCBpbnQgbmFtZSwKKyAKKyAvKiBSZXR1cm4gbm9uLXplcm8gaWZmIHRoZSBhdHRyaWJ1dGUg TkFNRSBpcyBkZWZpbmVkIGZvciB0aGUgZ2l2ZW4gRElFLAorICAgIGFuZCBob2xkcyBhIG5vbi16 ZXJvIHZhbHVlLiAgVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSB1c2VkIGZvcgorLSAgIERX X0ZPUk1fZmxhZyBhdHRyaWJ1dGVzLiAgKi8KKysgICBEV19GT1JNX2ZsYWcgb3IgRFdfRk9STV9m bGFnX3ByZXNlbnQgYXR0cmlidXRlcy4gICovCisgCisgc3RhdGljIGludAorIGR3YXJmMl9mbGFn X3RydWVfcCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHVuc2lnbmVkIG5hbWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTc4NjIsNiArNzg3NSwyMSBAQCBkd2FyZl9kZWNvZGVfbGluZV9oZWFk ZXIgKHVuc2lnbmVkIGludCBvZmZzZXQsIGJmZCAqYWJmZCwKKyAgIGxpbmVfcHRyICs9IG9mZnNl dF9zaXplOworICAgbGgtPm1pbmltdW1faW5zdHJ1Y3Rpb25fbGVuZ3RoID0gcmVhZF8xX2J5dGUg KGFiZmQsIGxpbmVfcHRyKTsKKyAgIGxpbmVfcHRyICs9IDE7CisrICBpZiAobGgtPnZlcnNpb24g Pj0gNCkKKysgICAgeworKyAgICAgIGxoLT5tYXhpbXVtX29wc19wZXJfaW5zdHJ1Y3Rpb24gPSBy ZWFkXzFfYnl0ZSAoYWJmZCwgbGluZV9wdHIpOworKyAgICAgIGxpbmVfcHRyICs9IDE7CisrICAg IH0KKysgIGVsc2UKKysgICAgbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbiA9IDE7Cisr CisrICBpZiAobGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbiA9PSAwKQorKyAgICB7Cisr ICAgICAgbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbiA9IDE7CisrICAgICAgY29tcGxh aW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJIF8oImludmFsaWQgbWF4aW11bV9vcHNfcGVy X2luc3RydWN0aW9uIGluIGAuZGVidWdfbGluZScgc2VjdGlvbiIpKTsKKysgICAgfQorKworICAg bGgtPmRlZmF1bHRfaXNfc3RtdCA9IHJlYWRfMV9ieXRlIChhYmZkLCBsaW5lX3B0cik7CisgICBs aW5lX3B0ciArPSAxOworICAgbGgtPmxpbmVfYmFzZSA9IHJlYWRfMV9zaWduZWRfYnl0ZSAoYWJm ZCwgbGluZV9wdHIpOworQEAgLTgwMTAsNiArODAzOCw3IEBAIGR3YXJmX2RlY29kZV9saW5lcyAo c3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY2hhciAqY29tcF9kaXIsIGJmZCAqYWJmZCwKKyAgICAg ICBpbnQgYmFzaWNfYmxvY2sgPSAwOworICAgICAgIGludCBlbmRfc2VxdWVuY2UgPSAwOworICAg ICAgIENPUkVfQUREUiBhZGRyOworKyAgICAgIHVuc2lnbmVkIGNoYXIgb3BfaW5kZXggPSAwOwor IAorICAgICAgIGlmICghZGVjb2RlX2Zvcl9wc3RfcCAmJiBsaC0+bnVtX2ZpbGVfbmFtZXMgPj0g ZmlsZSkKKyAJeworQEAgLTgwNDEsMTIgKzgwNzAsMTcgQEAgZHdhcmZfZGVjb2RlX2xpbmVzIChz dHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwgYmZkICphYmZkLAorIAkgICAg ewkJCisgCSAgICAgIC8qIFNwZWNpYWwgb3BlcmFuZC4gICovCisgCSAgICAgIGFkal9vcGNvZGUg PSBvcF9jb2RlIC0gbGgtPm9wY29kZV9iYXNlOworLQkgICAgICBhZGRyZXNzICs9IChhZGpfb3Bj b2RlIC8gbGgtPmxpbmVfcmFuZ2UpCistCQkqIGxoLT5taW5pbXVtX2luc3RydWN0aW9uX2xlbmd0 aDsKKysJICAgICAgYWRkcmVzcyArPSAoKChvcF9pbmRleCArIChhZGpfb3Bjb2RlIC8gbGgtPmxp bmVfcmFuZ2UpKQorKwkJCSAgIC8gbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbikKKysJ CQkgICogbGgtPm1pbmltdW1faW5zdHJ1Y3Rpb25fbGVuZ3RoKTsKKysJICAgICAgb3BfaW5kZXgg PSAoKG9wX2luZGV4ICsgKGFkal9vcGNvZGUgLyBsaC0+bGluZV9yYW5nZSkpCisrCQkJICAlIGxo LT5tYXhpbXVtX29wc19wZXJfaW5zdHJ1Y3Rpb24pOworIAkgICAgICBsaW5lICs9IGxoLT5saW5l X2Jhc2UgKyAoYWRqX29wY29kZSAlIGxoLT5saW5lX3JhbmdlKTsKKyAJICAgICAgaWYgKGxoLT5u dW1fZmlsZV9uYW1lcyA8IGZpbGUgfHwgZmlsZSA9PSAwKQorIAkJZHdhcmYyX2RlYnVnX2xpbmVf bWlzc2luZ19maWxlX2NvbXBsYWludCAoKTsKKy0JICAgICAgZWxzZQorKwkgICAgICAvKiBGb3Ig bm93IHdlIGlnbm9yZSBsaW5lcyBub3Qgc3RhcnRpbmcgb24gYW4KKysJCSBpbnN0cnVjdGlvbiBi b3VuZGFyeS4gICovCisrCSAgICAgIGVsc2UgaWYgKG9wX2luZGV4ID09IDApCisgCQl7CisgCQkg IGxoLT5maWxlX25hbWVzW2ZpbGUgLSAxXS5pbmNsdWRlZF9wID0gMTsKKyAJCSAgaWYgKCFkZWNv ZGVfZm9yX3BzdF9wICYmIGlzX3N0bXQpCitAQCAtODA4MSw2ICs4MTE1LDcgQEAgZHdhcmZfZGVj b2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwgYmZkICph YmZkLAorIAkJICBicmVhazsKKyAJCWNhc2UgRFdfTE5FX3NldF9hZGRyZXNzOgorIAkJICBhZGRy ZXNzID0gcmVhZF9hZGRyZXNzIChhYmZkLCBsaW5lX3B0ciwgY3UsICZieXRlc19yZWFkKTsKKysJ CSAgb3BfaW5kZXggPSAwOworIAkJICBsaW5lX3B0ciArPSBieXRlc19yZWFkOworIAkJICBhZGRy ZXNzICs9IGJhc2VhZGRyOworIAkJICBicmVhazsKK0BAIC04MTQ2LDkgKzgxODEsMTcgQEAgZHdh cmZfZGVjb2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjaGFyICpjb21wX2Rpciwg YmZkICphYmZkLAorIAkgICAgICBiYXNpY19ibG9jayA9IDA7CisgCSAgICAgIGJyZWFrOworIAkg ICAgY2FzZSBEV19MTlNfYWR2YW5jZV9wYzoKKy0JICAgICAgYWRkcmVzcyArPSBsaC0+bWluaW11 bV9pbnN0cnVjdGlvbl9sZW5ndGgKKy0JCSogcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIGxp bmVfcHRyLCAmYnl0ZXNfcmVhZCk7CistCSAgICAgIGxpbmVfcHRyICs9IGJ5dGVzX3JlYWQ7Cisr CSAgICAgIHsKKysJCUNPUkVfQUREUiBhZGp1c3QKKysJCSAgPSByZWFkX3Vuc2lnbmVkX2xlYjEy OCAoYWJmZCwgbGluZV9wdHIsICZieXRlc19yZWFkKTsKKysKKysJCWFkZHJlc3MgKz0gKCgob3Bf aW5kZXggKyBhZGp1c3QpCisrCQkJICAgICAvIGxoLT5tYXhpbXVtX29wc19wZXJfaW5zdHJ1Y3Rp b24pCisrCQkJICAgICogbGgtPm1pbmltdW1faW5zdHJ1Y3Rpb25fbGVuZ3RoKTsKKysJCW9wX2lu ZGV4ID0gKChvcF9pbmRleCArIGFkanVzdCkKKysJCQkgICAgJSBsaC0+bWF4aW11bV9vcHNfcGVy X2luc3RydWN0aW9uKTsKKysJCWxpbmVfcHRyICs9IGJ5dGVzX3JlYWQ7CisrCSAgICAgIH0KKyAJ ICAgICAgYnJlYWs7CisgCSAgICBjYXNlIERXX0xOU19hZHZhbmNlX2xpbmU6CisgCSAgICAgIGxp bmUgKz0gcmVhZF9zaWduZWRfbGViMTI4IChhYmZkLCBsaW5lX3B0ciwgJmJ5dGVzX3JlYWQpOwor QEAgLTgxOTUsMTEgKzgyMzgsMTkgQEAgZHdhcmZfZGVjb2RlX2xpbmVzIChzdHJ1Y3QgbGluZV9o ZWFkZXIgKmxoLCBjaGFyICpjb21wX2RpciwgYmZkICphYmZkLAorIAkgICAgICAgaW5zdHJ1Y3Rp b24gbGVuZ3RoIHNpbmNlIHNwZWNpYWwgb3Bjb2RlIDI1NSB3b3VsZCBoYXZlCisgCSAgICAgICBz Y2FsZWQgdGhlIHRoZSBpbmNyZW1lbnQuICAqLworIAkgICAgY2FzZSBEV19MTlNfY29uc3RfYWRk X3BjOgorLQkgICAgICBhZGRyZXNzICs9IChsaC0+bWluaW11bV9pbnN0cnVjdGlvbl9sZW5ndGgK Ky0JCQkgICogKCgyNTUgLSBsaC0+b3Bjb2RlX2Jhc2UpIC8gbGgtPmxpbmVfcmFuZ2UpKTsKKysJ ICAgICAgeworKwkJQ09SRV9BRERSIGFkanVzdCA9ICgyNTUgLSBsaC0+b3Bjb2RlX2Jhc2UpIC8g bGgtPmxpbmVfcmFuZ2U7CisrCisrCQlhZGRyZXNzICs9ICgoKG9wX2luZGV4ICsgYWRqdXN0KQor KwkJCSAgICAgLyBsaC0+bWF4aW11bV9vcHNfcGVyX2luc3RydWN0aW9uKQorKwkJCSAgICAqIGxo LT5taW5pbXVtX2luc3RydWN0aW9uX2xlbmd0aCk7CisrCQlvcF9pbmRleCA9ICgob3BfaW5kZXgg KyBhZGp1c3QpCisrCQkJICAgICUgbGgtPm1heGltdW1fb3BzX3Blcl9pbnN0cnVjdGlvbik7Cisr CSAgICAgIH0KKyAJICAgICAgYnJlYWs7CisgCSAgICBjYXNlIERXX0xOU19maXhlZF9hZHZhbmNl X3BjOgorIAkgICAgICBhZGRyZXNzICs9IHJlYWRfMl9ieXRlcyAoYWJmZCwgbGluZV9wdHIpOwor KwkgICAgICBvcF9pbmRleCA9IDA7CisgCSAgICAgIGxpbmVfcHRyICs9IDI7CisgCSAgICAgIGJy ZWFrOworIAkgICAgZGVmYXVsdDoKK0BAIC04NzYxLDYgKzg4MTIsNyBAQCBkd2FyZjJfY29uc3Rf dmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKKyAgICAg Y2FzZSBEV19GT1JNX2Jsb2NrMjoKKyAgICAgY2FzZSBEV19GT1JNX2Jsb2NrNDoKKyAgICAgY2Fz ZSBEV19GT1JNX2Jsb2NrOgorKyAgICBjYXNlIERXX0ZPUk1fZXhwcmxvYzoKKyAgICAgICBibGsg PSBEV19CTE9DSyAoYXR0cik7CisgICAgICAgaWYgKFRZUEVfTEVOR1RIIChTWU1CT0xfVFlQRSAo c3ltKSkgIT0gYmxrLT5zaXplKQorIAlkd2FyZjJfY29uc3RfdmFsdWVfbGVuZ3RoX21pc21hdGNo X2NvbXBsYWludCAoU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksCitAQCAtMTAzMDgsNiArMTAzNjAs MTAgQEAgZHVtcF9kaWVfc2hhbGxvdyAoc3RydWN0IHVpX2ZpbGUgKmYsIGludCBpbmRlbnQsIHN0 cnVjdCBkaWVfaW5mbyAqZGllKQorIAljYXNlIERXX0ZPUk1fYmxvY2sxOgorIAkgIGZwcmludGZf dW5maWx0ZXJlZCAoZiwgImJsb2NrOiBzaXplICVkIiwgRFdfQkxPQ0sgKCZkaWUtPmF0dHJzW2ld KS0+c2l6ZSk7CisgCSAgYnJlYWs7CisrCWNhc2UgRFdfRk9STV9leHBybG9jOgorKwkgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZiwgImV4cHJlc3Npb246IHNpemUgJXUiLAorKwkJCSAgICAgIERXX0JM T0NLICgmZGllLT5hdHRyc1tpXSktPnNpemUpOworKwkgIGJyZWFrOworIAljYXNlIERXX0ZPUk1f cmVmMToKKyAJY2FzZSBEV19GT1JNX3JlZjI6CisgCWNhc2UgRFdfRk9STV9yZWY0OgorQEAgLTEw MzIzLDYgKzEwMzc5LDEwIEBAIGR1bXBfZGllX3NoYWxsb3cgKHN0cnVjdCB1aV9maWxlICpmLCBp bnQgaW5kZW50LCBzdHJ1Y3QgZGllX2luZm8gKmRpZSkKKyAJICBmcHJpbnRmX3VuZmlsdGVyZWQg KGYsICJjb25zdGFudDogJXMiLAorIAkJCSAgICAgIHB1bG9uZ2VzdCAoRFdfVU5TTkQgKCZkaWUt PmF0dHJzW2ldKSkpOworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fc2VjX29mZnNldDoKKysJ ICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJzZWN0aW9uIG9mZnNldDogJXMiLAorKwkJCSAgICAg IHB1bG9uZ2VzdCAoRFdfVU5TTkQgKCZkaWUtPmF0dHJzW2ldKSkpOworKwkgIGJyZWFrOworIAlj YXNlIERXX0ZPUk1fc2lnODoKKyAJICBpZiAoRFdfU0lHTkFUVVJFRF9UWVBFICgmZGllLT5hdHRy c1tpXSkgIT0gTlVMTCkKKyAJICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZiwgInNpZ25hdHVyZWQg dHlwZSwgb2Zmc2V0OiAweCV4IiwKK0BAIC0xMDM0Myw2ICsxMDQwMyw5IEBAIGR1bXBfZGllX3No YWxsb3cgKHN0cnVjdCB1aV9maWxlICpmLCBpbnQgaW5kZW50LCBzdHJ1Y3QgZGllX2luZm8gKmRp ZSkKKyAJICBlbHNlCisgCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGYsICJmbGFnOiBGQUxTRSIp OworIAkgIGJyZWFrOworKwljYXNlIERXX0ZPUk1fZmxhZ19wcmVzZW50OgorKwkgIGZwcmludGZf dW5maWx0ZXJlZCAoZiwgImZsYWc6IFRSVUUiKTsKKysJICBicmVhazsKKyAJY2FzZSBEV19GT1JN X2luZGlyZWN0OgorIAkgIC8qIHRoZSByZWFkZXIgd2lsbCBoYXZlIHJlZHVjZWQgdGhlIGluZGly ZWN0IGZvcm0gdG8KKyAJICAgICB0aGUgImJhc2UgZm9ybSIgc28gdGhpcyBmb3JtIHNob3VsZCBu b3Qgb2NjdXIgKi8KK0BAIC0xMTUyMCw3ICsxMTU4Myw4IEBAIGF0dHJfZm9ybV9pc19ibG9jayAo c3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKKyAgICAgICBhdHRyLT5mb3JtID09IERXX0ZPUk1fYmxv Y2sxCisgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2Jsb2NrMgorICAgICAgIHx8IGF0 dHItPmZvcm0gPT0gRFdfRk9STV9ibG9jazQKKy0gICAgICB8fCBhdHRyLT5mb3JtID09IERXX0ZP Uk1fYmxvY2spOworKyAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9ibG9jaworKyAgICAg IHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9leHBybG9jKTsKKyB9CisgCisgLyogUmV0dXJuIG5v bi16ZXJvIGlmIEFUVFIncyB2YWx1ZSBpcyBhIHNlY3Rpb24gb2Zmc2V0IC0tLSBjbGFzc2VzCitA QCAtMTE1MzUsNyArMTE1OTksOCBAQCBzdGF0aWMgaW50CisgYXR0cl9mb3JtX2lzX3NlY3Rpb25f b2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorIHsKKyAgIHJldHVybiAoYXR0ci0+Zm9y bSA9PSBEV19GT1JNX2RhdGE0CistICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9k YXRhOCk7CisrICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9kYXRhOAorKwkgIHx8 IGF0dHItPmZvcm0gPT0gRFdfRk9STV9zZWNfb2Zmc2V0KTsKKyB9CisgCisgCgpkaWZmIC0tZ2l0 IGEvZ2RiLWJ6NjAxODg3LWR3YXJmNC0yb2YyLnBhdGNoIGIvZ2RiLWJ6NjAxODg3LWR3YXJmNC0y b2YyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3Zjg4YjAKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItYno2MDE4ODctZHdhcmY0LTJvZjIucGF0Y2gKQEAgLTAsMCAr MSw1NiBAQAorY29tbWl0IDY2OTkwN2JkNmQ1NGFlOGU4NWIxMjc4ZjBmMTZmODY0MWNlNjgwMmQK K0F1dGhvcjogVG9tIFRyb21leSA8dHJvbWV5QHJlZGhhdC5jb20+CitEYXRlOiAgIFR1ZSBBcHIg MjAgMjE6MTk6MDcgMjAxMCArMDAwMAorCisgICAgCSogZHdhcmYycmVhZC5jIChkd2FyZjJfY29t cHV0ZV9uYW1lKTogSGFuZGxlIERXX0FUX2xpbmthZ2VfbmFtZS4KKyAgICAJKHJlYWRfcGFydGlh bF9kaWUpOiBMaWtld2lzZS4KKyAgICAJKGR3YXJmX2F0dHJfbmFtZSk6IExpa2V3aXNlLgorCisj IyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSwzICsxLDkgQEAK KysyMDEwLTA0LTIwICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CisrCisrCSogZHdh cmYycmVhZC5jIChkd2FyZjJfY29tcHV0ZV9uYW1lKTogSGFuZGxlIERXX0FUX2xpbmthZ2VfbmFt ZS4KKysJKHJlYWRfcGFydGlhbF9kaWUpOiBMaWtld2lzZS4KKysJKGR3YXJmX2F0dHJfbmFtZSk6 IExpa2V3aXNlLgorKworIDIwMTAtMDQtMjAgIENocmlzIE1vbGxlciAgPGNtb2xsZXJAcmVkaGF0 LmNvbT4KKyAJCisgCVBSIDEwODY3CistLS0gZ2RiLTcuMS9nZGIvZHdhcmYycmVhZC5jLm9yaWcJ MjAxMC0wNi0wOSAxNDozODowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi9kd2Fy ZjJyZWFkLmMJMjAxMC0wNi0wOSAxNDo0OTo1My4wMDAwMDAwMDAgKzAyMDAKK0BAIC03Njc1LDcg Kzc2NzUsMTEgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZgorIAkg ICAgICBicmVhazsKKyAJICAgIH0KKyAJICBicmVhazsKKysJY2FzZSBEV19BVF9saW5rYWdlX25h bWU6CisgCWNhc2UgRFdfQVRfTUlQU19saW5rYWdlX25hbWU6CisrCSAgLyogTm90ZSB0aGF0IGJv dGggZm9ybXMgb2YgbGlua2FnZSBuYW1lIG1pZ2h0IGFwcGVhci4gIFdlCisrCSAgICAgYXNzdW1l IHRoZXkgd2lsbCBiZSB0aGUgc2FtZSwgYW5kIHdlIG9ubHkgc3RvcmUgdGhlIGxhc3QKKysJICAg ICBvbmUgd2Ugc2VlLiAgKi8KKyAJICBpZiAoY3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2FkYSkK KyAJICAgIHBhcnRfZGllLT5uYW1lID0gRFdfU1RSSU5HICgmYXR0cik7CisgCSAgYnJlYWs7CitA QCAtMTAxNjcsNyArMTAxNzEsMTEgQEAgZHdhcmYyX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1YworICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciA9IE5VTEw7CisgCisgICBpZiAoY3Ut Pmxhbmd1YWdlID09IGxhbmd1YWdlX2FkYSkKKy0gICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUs IERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7CisrICAgIHsKKysgICAgICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfbGlua2FnZV9uYW1lLCBjdSk7CisrICAgICAgaWYgKGF0dHIg PT0gTlVMTCkKKysJYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9u YW1lLCBjdSk7CisrICAgIH0KKyAKKyAgIGlmICghYXR0cikKKyAgICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX25hbWUsIGN1KTsKK0BAIC0xMDU1NSw2ICsxMDU2Myw4IEBAIGR3YXJm X2F0dHJfbmFtZSAodW5zaWduZWQgYXR0cikKKyAgICAgLyogRFdBUkYgNCB2YWx1ZXMuICAqLwor ICAgICBjYXNlIERXX0FUX3NpZ25hdHVyZToKKyAgICAgICByZXR1cm4gIkRXX0FUX3NpZ25hdHVy ZSI7CisrICAgIGNhc2UgRFdfQVRfbGlua2FnZV9uYW1lOgorKyAgICAgIHJldHVybiAiRFdfQVRf bGlua2FnZV9uYW1lIjsKKyAgICAgLyogU0dJL01JUFMgZXh0ZW5zaW9ucy4gICovCisgI2lmZGVm IE1JUFMgLyogY29sbGlkZXMgd2l0aCBEV19BVF9IUF9ibG9ja19pbmRleCAqLworICAgICBjYXNl IERXX0FUX01JUFNfZmRlOgoKZGlmZiAtLWdpdCBhL2dkYi1iejYwMTg4Ny1kd2FyZjQtcmgtdGVz dC5wYXRjaCBiL2dkYi1iejYwMTg4Ny1kd2FyZjQtcmgtdGVzdC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi40Nzc0YmRhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6 NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsMjQwIEBACistLS0gL2Rldi9u dWxsCTIwMTAtMDYtMDggMjA6MzU6NDYuODAwMjc4NDUyICswMjAwCisrKysgZ2RiLTcuMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5TCTIwMTAtMDYtMDkgMTU6MjI6 NTcuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDE2NyBAQAorKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworKworKwkuZmlsZQkicmgtZHdhcmY0LXg4Nl82NC5jIgorKwku c2VjdGlvbgkuZGVidWdfYWJicmV2LCIiLEBwcm9nYml0cworKy5MZGVidWdfYWJicmV2MDoKKysJ LnNlY3Rpb24JLmRlYnVnX2luZm8sIiIsQHByb2diaXRzCisrLkxkZWJ1Z19pbmZvMDoKKysJLnNl Y3Rpb24JLmRlYnVnX2xpbmUsIiIsQHByb2diaXRzCisrLkxkZWJ1Z19saW5lMDoKKysJLnRleHQK KysuTHRleHQwOgorKy5nbG9ibCBtYWluCisrCS50eXBlCW1haW4sIEBmdW5jdGlvbgorK21haW46 CisrLkxGQjA6CisrCS5maWxlIDEgImdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5jIgorKwkj IGdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5jOjIwCisrCS5sb2MgMSAyMCAwCisrCS5jZmlf c3RhcnRwcm9jCisrCSMgYmFzaWMgYmxvY2sgMgorKwlwdXNocQklcmJwCisrCS5jZmlfZGVmX2Nm YV9vZmZzZXQgMTYKKysJbW92cQklcnNwLCAlcmJwCisrCS5jZmlfb2Zmc2V0IDYsIC0xNgorKwku Y2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNgorKwkjIGdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5j OjIxCisrCS5sb2MgMSAyMSAwCisrCW1vdmwJJDAsICVlYXgKKysJIyBnZGIuZHdhcmYyL3JoLWR3 YXJmNC14ODZfNjQuYzoyMgorKwkubG9jIDEgMjIgMAorKwlsZWF2ZQorKwkuY2ZpX2RlZl9jZmEg NywgOAorKwlyZXQKKysJLmNmaV9lbmRwcm9jCisrLkxGRTA6CisrCS5zaXplCW1haW4sIC4tbWFp bgorKy5MZXRleHQwOgorKwkuc2VjdGlvbgkuZGVidWdfaW5mbworKwkubG9uZwkweDRlCSMgTGVu Z3RoIG9mIENvbXBpbGF0aW9uIFVuaXQgSW5mbworKwkudmFsdWUJMHg0CSMgRFdBUkYgdmVyc2lv biBudW1iZXIKKysJLmxvbmcJLkxkZWJ1Z19hYmJyZXYwCSMgT2Zmc2V0IEludG8gQWJicmV2LiBT ZWN0aW9uCisrCS5ieXRlCTB4OAkjIFBvaW50ZXIgU2l6ZSAoaW4gYnl0ZXMpCisrCS51bGViMTI4 IDB4MQkjIChESUUgKDB4YikgRFdfVEFHX2NvbXBpbGVfdW5pdCkKKysJLmxvbmcJLkxBU0YwCSMg RFdfQVRfcHJvZHVjZXI6ICJHTlUgQyA0LjQuNCAyMDEwMDUwMyAoUmVkIEhhdCA0LjQuNC0yKSIK KysJLmJ5dGUJMHgxCSMgRFdfQVRfbGFuZ3VhZ2UKKysJLmxvbmcJLkxBU0YxCSMgRFdfQVRfbmFt ZTogImdkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5jIgorKwkubG9uZwkuTEFTRjIJIyBEV19B VF9jb21wX2RpcgorKwkucXVhZAkuTHRleHQwCSMgRFdfQVRfbG93X3BjCisrCS5xdWFkCS5MZXRl eHQwCSMgRFdfQVRfaGlnaF9wYworKwkubG9uZwkuTGRlYnVnX2xpbmUwCSMgRFdfQVRfc3RtdF9s aXN0CisrCS51bGViMTI4IDB4MgkjIChESUUgKDB4MmQpIERXX1RBR19zdWJwcm9ncmFtKQorKwkJ CSMgRFdfQVRfZXh0ZXJuYWwKKysJLmxvbmcJLkxBU0YzCSMgRFdfQVRfbmFtZTogIm1haW4iCisr CS5ieXRlCTB4MQkjIERXX0FUX2RlY2xfZmlsZSAoZ2RiLmR3YXJmMi9yaC1kd2FyZjQteDg2XzY0 LmMpCisrCS5ieXRlCTB4MTMJIyBEV19BVF9kZWNsX2xpbmUKKysJCQkjIERXX0FUX3Byb3RvdHlw ZWQKKysJLmxvbmcJMHg0YQkjIERXX0FUX3R5cGUKKysJLnF1YWQJLkxGQjAJIyBEV19BVF9sb3df cGMKKysJLnF1YWQJLkxGRTAJIyBEV19BVF9oaWdoX3BjCisrCS51bGViMTI4IDB4MQkjIERXX0FU X2ZyYW1lX2Jhc2UKKysJLmJ5dGUJMHg5YwkjIERXX09QX2NhbGxfZnJhbWVfY2ZhCisrCS51bGVi MTI4IDB4MwkjIChESUUgKDB4NGEpIERXX1RBR19iYXNlX3R5cGUpCisrCS5ieXRlCTB4NAkjIERX X0FUX2J5dGVfc2l6ZQorKwkuYnl0ZQkweDUJIyBEV19BVF9lbmNvZGluZworKwkuYXNjaWkgImlu dFwwIgkjIERXX0FUX25hbWUKKysJLmJ5dGUJMHgwCSMgZW5kIG9mIGNoaWxkcmVuIG9mIERJRSAw eGIKKysJLnNlY3Rpb24JLmRlYnVnX2FiYnJldgorKwkudWxlYjEyOCAweDEJIyAoYWJicmV2IGNv ZGUpCisrCS51bGViMTI4IDB4MTEJIyAoVEFHOiBEV19UQUdfY29tcGlsZV91bml0KQorKwkuYnl0 ZQkweDEJIyBEV19jaGlsZHJlbl95ZXMKKysJLnVsZWIxMjggMHgyNQkjIChEV19BVF9wcm9kdWNl cikKKysJLnVsZWIxMjggMHhlCSMgKERXX0ZPUk1fc3RycCkKKysJLnVsZWIxMjggMHgxMwkjIChE V19BVF9sYW5ndWFnZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisrCS51bGVi MTI4IDB4MwkjIChEV19BVF9uYW1lKQorKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQor KwkudWxlYjEyOCAweDFiCSMgKERXX0FUX2NvbXBfZGlyKQorKwkudWxlYjEyOCAweGUJIyAoRFdf Rk9STV9zdHJwKQorKwkudWxlYjEyOCAweDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjgg MHgxCSMgKERXX0ZPUk1fYWRkcikKKysJLnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQor KwkudWxlYjEyOCAweDEJIyAoRFdfRk9STV9hZGRyKQorKwkudWxlYjEyOCAweDEwCSMgKERXX0FU X3N0bXRfbGlzdCkKKysJLnVsZWIxMjggMHgxNwkjIChEV19GT1JNX3NlY19vZmZzZXQpCisrCS5i eXRlCTB4MAorKwkuYnl0ZQkweDAKKysJLnVsZWIxMjggMHgyCSMgKGFiYnJldiBjb2RlKQorKwku dWxlYjEyOCAweDJlCSMgKFRBRzogRFdfVEFHX3N1YnByb2dyYW0pCisrCS5ieXRlCTB4MAkjIERX X2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4M2YJIyAoRFdfQVRfZXh0ZXJuYWwpCisrCS51bGVi MTI4IDB4MTkJIyAoRFdfRk9STV9mbGFnX3ByZXNlbnQpCisrCS51bGViMTI4IDB4MwkjIChEV19B VF9uYW1lKQorKwkudWxlYjEyOCAweGUJIyAoRFdfRk9STV9zdHJwKQorKwkudWxlYjEyOCAweDNh CSMgKERXX0FUX2RlY2xfZmlsZSkKKysJLnVsZWIxMjggMHhiCSMgKERXX0ZPUk1fZGF0YTEpCisr CS51bGViMTI4IDB4M2IJIyAoRFdfQVRfZGVjbF9saW5lKQorKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgyNwkjIChEV19BVF9wcm90b3R5cGVkKQorKwkudWxl YjEyOCAweDE5CSMgKERXX0ZPUk1fZmxhZ19wcmVzZW50KQorKwkudWxlYjEyOCAweDQ5CSMgKERX X0FUX3R5cGUpCisrCS51bGViMTI4IDB4MTMJIyAoRFdfRk9STV9yZWY0KQorKwkudWxlYjEyOCAw eDExCSMgKERXX0FUX2xvd19wYykKKysJLnVsZWIxMjggMHgxCSMgKERXX0ZPUk1fYWRkcikKKysJ LnVsZWIxMjggMHgxMgkjIChEV19BVF9oaWdoX3BjKQorKwkudWxlYjEyOCAweDEJIyAoRFdfRk9S TV9hZGRyKQorKwkudWxlYjEyOCAweDQwCSMgKERXX0FUX2ZyYW1lX2Jhc2UpCisrCS51bGViMTI4 IDB4MTgJIyAoRFdfRk9STV9leHBybG9jKQorKwkuYnl0ZQkweDAKKysJLmJ5dGUJMHgwCisrCS51 bGViMTI4IDB4MwkjIChhYmJyZXYgY29kZSkKKysJLnVsZWIxMjggMHgyNAkjIChUQUc6IERXX1RB R19iYXNlX3R5cGUpCisrCS5ieXRlCTB4MAkjIERXX2NoaWxkcmVuX25vCisrCS51bGViMTI4IDB4 YgkjIChEV19BVF9ieXRlX3NpemUpCisrCS51bGViMTI4IDB4YgkjIChEV19GT1JNX2RhdGExKQor KwkudWxlYjEyOCAweDNlCSMgKERXX0FUX2VuY29kaW5nKQorKwkudWxlYjEyOCAweGIJIyAoRFdf Rk9STV9kYXRhMSkKKysJLnVsZWIxMjggMHgzCSMgKERXX0FUX25hbWUpCisrCS51bGViMTI4IDB4 OAkjIChEV19GT1JNX3N0cmluZykKKysJLmJ5dGUJMHgwCisrCS5ieXRlCTB4MAorKwkuYnl0ZQkw eDAKKysJLnNlY3Rpb24JLmRlYnVnX3B1Ym5hbWVzLCIiLEBwcm9nYml0cworKwkubG9uZwkweDE3 CSMgTGVuZ3RoIG9mIFB1YmxpYyBOYW1lcyBJbmZvCisrCS52YWx1ZQkweDIJIyBEV0FSRiBWZXJz aW9uCisrCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5pdCBJ bmZvCisrCS5sb25nCTB4NTIJIyBDb21waWxhdGlvbiBVbml0IExlbmd0aAorKwkubG9uZwkweDJk CSMgRElFIG9mZnNldAorKwkuYXNjaWkgIm1haW5cMCIJIyBleHRlcm5hbCBuYW1lCisrCS5sb25n CTB4MAorKwkuc2VjdGlvbgkuZGVidWdfYXJhbmdlcywiIixAcHJvZ2JpdHMKKysJLmxvbmcJMHgy YwkjIExlbmd0aCBvZiBBZGRyZXNzIFJhbmdlcyBJbmZvCisrCS52YWx1ZQkweDIJIyBEV0FSRiBW ZXJzaW9uCisrCS5sb25nCS5MZGVidWdfaW5mbzAJIyBPZmZzZXQgb2YgQ29tcGlsYXRpb24gVW5p dCBJbmZvCisrCS5ieXRlCTB4OAkjIFNpemUgb2YgQWRkcmVzcworKwkuYnl0ZQkweDAJIyBTaXpl IG9mIFNlZ21lbnQgRGVzY3JpcHRvcgorKwkudmFsdWUJMHgwCSMgUGFkIHRvIDE2IGJ5dGUgYm91 bmRhcnkKKysJLnZhbHVlCTB4MAorKwkucXVhZAkuTHRleHQwCSMgQWRkcmVzcworKwkucXVhZAku TGV0ZXh0MC0uTHRleHQwCSMgTGVuZ3RoCisrCS5xdWFkCTB4MAorKwkucXVhZAkweDAKKysJLnNl Y3Rpb24JLmRlYnVnX3N0ciwiTVMiLEBwcm9nYml0cywxCisrLkxBU0YyOgorKwkuc3RyaW5nCSIu IgorKy5MQVNGMDoKKysJLnN0cmluZwkiR05VIEMgNC40LjQgMjAxMDA1MDMgKFJlZCBIYXQgNC40 LjQtMikiCisrLkxBU0YxOgorKwkuc3RyaW5nCSJnZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQu YyIKKysuTEFTRjM6CisrCS5zdHJpbmcJIm1haW4iCisrCS5pZGVudAkiR0NDOiAoR05VKSA0LjQu NCAyMDEwMDUwMyAoUmVkIEhhdCA0LjQuNC0yKSIKKysJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNr LCIiLEBwcm9nYml0cworLS0tIC9kZXYvbnVsbAkyMDEwLTA2LTA4IDIwOjM1OjQ2LjgwMDI3ODQ1 MiArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3JoLWR3YXJmNC14 ODZfNjQuYwkyMDEwLTA2LTA5IDE1OjIxOjM1LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwy MiBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIu CisrCisrICAgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworK2ludAorK21h aW4gKHZvaWQpCisreworKyAgcmV0dXJuIDA7CisrfQorLS0tIC9kZXYvbnVsbAkyMDEwLTA2LTA4 IDIwOjM1OjQ2LjgwMDI3ODQ1MiArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuZXhwCTIwMTAtMDYtMDkgMTU6MjY6MjEuMDAwMDAwMDAw ICswMjAwCitAQCAtMCwwICsxLDQyIEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisr IyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdldHMgd2hpY2ggc3VwcG9ydCBEV0FS Ri0yIGFuZCB1c2UgZ2FzLgorKyMgRm9yIG5vdyBwaWNrIGEgc2FtcGxpbmcgb2YgbGlrZWx5IHRh cmdldHMuCisraWYgeyFbaXN0YXJnZXQgKi0qLWxpbnV4Kl0KKysgICAgJiYgIVtpc3RhcmdldCAq LSotZ251Kl0KKysgICAgJiYgIVtpc3RhcmdldCAqLSotZWxmKl0KKysgICAgJiYgIVtpc3Rhcmdl dCAqLSotb3BlbmJzZCpdCisrICAgICYmICFbaXN0YXJnZXQgYXJtLSotZWFiaSpdCisrICAgICYm ICFbaXN0YXJnZXQgcG93ZXJwYy0qLWVhYmkqXX0geworKyAgICByZXR1cm4gMCAgCisrfQorKwor K2lmIHshW2lzdGFyZ2V0IHg4Nl82NC0qXX0geworKyAgICByZXR1cm4gMCAgCisrfQorKworK3Nl dCB0ZXN0ZmlsZSAicmgtZHdhcmY0LXg4Nl82NCIKKytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5T Cisrc2V0IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0ueAorK3NldCBiaW5maWxlICR7b2JqZGlyfS8k e3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgb2JqZWN0IHt9XSAhPSAiIiB9IHsK KysgICAgcmV0dXJuIC0xCisrfQorKworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFibGUKKysKKytn ZGJfdGVzdCAicHR5cGUgbWFpbiIge3R5cGUgPSBpbnQgXCh2b2lkXCl9CgpkaWZmIC0tZ2l0IGEv Z2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYtMW9mMy5wYXRjaCBiL2dkYi1iejYwMjMx NC1wdHlwZS1jbGFzcy10eXBlZGVmLTFvZjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMWQzMWJmMgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejYwMjMxNC1wdHlw ZS1jbGFzcy10eXBlZGVmLTFvZjMucGF0Y2gKQEAgLTAsMCArMSwyNzQgQEAKK2NvbW1pdCBmNDlm OTFlOWMzZWFiYTg0N2Y3NWY1YzQ2ZTc3ZTI2MWE3NmQ5YTliCitBdXRob3I6IEphbiBLcmF0b2No dmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBNb24gSnVuIDI4IDIwOjM1 OjUxIDIwMTAgKzAwMDAKKworICAgIGdkYi8KKyAgICAJKiBjcC1uYW1lc3BhY2UuYyAoY3BfbG9v a3VwX25lc3RlZF90eXBlKTogTmV3IHZhcmlhYmxlCisgICAgCWNvbmNhdGVuYXRlZF9uYW1lLiAg VHVybiB0aGUgY3VycmVudCByZXR1cm4gY29uZGl0aW9uIGludG8gYSByZXZlcnNlCisgICAgCW9u ZS4gIENhbGwgYWxzbyBsb29rdXBfc3RhdGljX3N5bWJvbF9hdXggb24gdGhlIGNvbnN0cnVjdGVk IHF1YWxpZmllZAorICAgIAluYW1lLgorICAgIAkqIHN5bXRhYi5jIChsb29rdXBfc3ltYm9sX2F1 eCk6IE1vdmUgdmFyaWFibGUgb2JqZmlsZSBhbmQgc2VhcmNoaW5nIGluCisgICAgCW90aGVyIGZp bGVzIGludG8gYSBjYWxsZWQgLi4uCisgICAgCShsb29rdXBfc3RhdGljX3N5bWJvbF9hdXgpOiAu Li4gbmV3IGZ1bmN0aW9uIGhlcmUuCisgICAgCSogc3ltdGFiLmggKGxvb2t1cF9zdGF0aWNfc3lt Ym9sX2F1eCk6IE5ldyBwcm90b3R5cGUuCisgICAgCSogdmFsb3BzLmMgKHZhbHVlX21heWJlX25h bWVzcGFjZV9lbHQpOiBDYWxsIGFsc28KKyAgICAJbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IGlm IHdlIGZhaWxlZCBvdGhlcndpc2UuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS8KKyAgICAJKiBn ZGIuY3AvbmFtZXNwYWNlLmV4cCAod2hhdGlzIEM6OmNPdGhlckZpbGVUeXBlKQorICAgIAkod2hh dGlzIDo6Qzo6Y090aGVyRmlsZVR5cGUsIHdoYXRpcyBDOjpjT3RoZXJGaWxlVmFyKQorICAgIAko d2hhdGlzIDo6Qzo6Y090aGVyRmlsZVZhciwgcHJpbnQgQzo6Y090aGVyRmlsZVZhcikKKyAgICAJ KHByaW50IDo6Qzo6Y090aGVyRmlsZVZhcikKKyAgICAJKHdoYXRpcyBDOjpPdGhlckZpbGVDbGFz czo6Y090aGVyRmlsZUNsYXNzVHlwZSkKKyAgICAJKHdoYXRpcyA6OkM6Ok90aGVyRmlsZUNsYXNz OjpjT3RoZXJGaWxlQ2xhc3NUeXBlKQorICAgIAkocHJpbnQgQzo6T3RoZXJGaWxlQ2xhc3M6OmNP dGhlckZpbGVDbGFzc1ZhcikKKyAgICAJKHByaW50IDo6Y090aGVyRmlsZUNsYXNzVmFyKQorICAg IAkocHJpbnQgOjpDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVmFyKTogTmV3IHRl c3RzLgorICAgIAkocHR5cGUgT3RoZXJGaWxlQ2xhc3MsIHB0eXBlIDo6Qzo6T3RoZXJGaWxlQ2xh c3MpOiBQZXJtaXQgYXJiaXRyYXJ5CisgICAgCXRyYWlsaW5nIGNvbnRlbnQuCisgICAgCSogZ2Ri LmNwL25hbWVzcGFjZTEuY2MgKEM6Ok90aGVyRmlsZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NUeXBl KQorICAgIAkoQzo6T3RoZXJGaWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFzc1ZhcikKKyAgICAJKEM6 Ok90aGVyRmlsZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NWYXJfdXNlLCBDOjpjT3RoZXJGaWxlVHlw ZSkKKyAgICAJKEM6OmNPdGhlckZpbGVWYXIsIEM6OmNPdGhlckZpbGVWYXJfdXNlKTogTmV3Lgor CisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDE4 IEBACisgMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPgorIAorKwkqIGNwLW5hbWVzcGFjZS5jIChjcF9sb29rdXBfbmVzdGVkX3R5cGUpOiBOZXcg dmFyaWFibGUKKysJY29uY2F0ZW5hdGVkX25hbWUuICBUdXJuIHRoZSBjdXJyZW50IHJldHVybiBj b25kaXRpb24gaW50byBhIHJldmVyc2UKKysJb25lLiAgQ2FsbCBhbHNvIGxvb2t1cF9zdGF0aWNf c3ltYm9sX2F1eCBvbiB0aGUgY29uc3RydWN0ZWQgcXVhbGlmaWVkCisrCW5hbWUuCisrCSogc3lt dGFiLmMgKGxvb2t1cF9zeW1ib2xfYXV4KTogTW92ZSB2YXJpYWJsZSBvYmpmaWxlIGFuZCBzZWFy Y2hpbmcgaW4KKysJb3RoZXIgZmlsZXMgaW50byBhIGNhbGxlZCAuLi4KKysJKGxvb2t1cF9zdGF0 aWNfc3ltYm9sX2F1eCk6IC4uLiBuZXcgZnVuY3Rpb24gaGVyZS4KKysJKiBzeW10YWIuaCAobG9v a3VwX3N0YXRpY19zeW1ib2xfYXV4KTogTmV3IHByb3RvdHlwZS4KKysJKiB2YWxvcHMuYyAodmFs dWVfbWF5YmVfbmFtZXNwYWNlX2VsdCk6IENhbGwgYWxzbworKwlsb29rdXBfc3RhdGljX3N5bWJv bF9hdXggaWYgd2UgZmFpbGVkIG90aGVyd2lzZS4KKysKKysyMDEwLTA2LTI4ICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisgCUZpeCBQUiBjKysvMTE3MDMg YW5kIFBSIGdkYi8xNDQ4LgorIAkqIGMtZXhwLnkgKHl5bGV4KSA8bGFzdF93YXNfY29sb25jb2xv biAmJiBmaXJzdF93YXNfY29sb25jb2xvbj46IEFkZAorIAlGSVJTVF9JVEVSIGNoZWNrLgorSW5k ZXg6IGdkYi03LjEvZ2RiL2NwLW5hbWVzcGFjZS5jCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5v cmlnL2dkYi9jcC1uYW1lc3BhY2UuYwkyMDEwLTA2LTI5IDE3OjU0OjE3LjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjEvZ2RiL2NwLW5hbWVzcGFjZS5jCTIwMTAtMDYtMjkgMTc6NTk6MzIuMDAw MDAwMDAwICswMjAwCitAQCAtNTg1LDEwICs1ODUsMjQgQEAgY3BfbG9va3VwX25lc3RlZF90eXBl IChzdHJ1Y3QgdHlwZSAqcGFyZQorIAkJCQkJCQkgbmVzdGVkX25hbWUsCisgCQkJCQkJCSBibG9j aywKKyAJCQkJCQkJIFZBUl9ET01BSU4pOworLQlpZiAoc3ltID09IE5VTEwgfHwgU1lNQk9MX0NM QVNTIChzeW0pICE9IExPQ19UWVBFREVGKQorLQkgIHJldHVybiBOVUxMOworLQllbHNlCisrCWNo YXIgKmNvbmNhdGVuYXRlZF9uYW1lOworKworKwlpZiAoc3ltICE9IE5VTEwgJiYgU1lNQk9MX0NM QVNTIChzeW0pID09IExPQ19UWVBFREVGKQorKwkgIHJldHVybiBTWU1CT0xfVFlQRSAoc3ltKTsK KysKKysJLyogTm93IHNlYXJjaCBhbGwgc3RhdGljIGZpbGUtbGV2ZWwgc3ltYm9scy4gIE5vdCBz dHJpY3RseSBjb3JyZWN0LAorKwkgICBidXQgbW9yZSB1c2VmdWwgdGhhbiBhbiBlcnJvci4gIFdl IGRvIG5vdCB0cnkgdG8gZ3Vlc3MgYW55IGltcG9ydGVkCisrCSAgIG5hbWVzcGFjZSBhcyBldmVu IHRoZSBmdWxseSBzcGVjaWZpZWQgbmFtZXNwYWNlIHNlYWNoIGlzIGlzIGFscmVhZHkKKysJICAg bm90IEMrKyBjb21wbGlhbnQgYW5kIG1vcmUgYXNzdW1wdGlvbnMgY291bGQgbWFrZSBpdCB0b28g bWFnaWMuICAqLworKworKwljb25jYXRlbmF0ZWRfbmFtZSA9IGFsbG9jYSAoc3RybGVuIChwYXJl bnRfbmFtZSkgKyAyCisrCQkJCSAgICArIHN0cmxlbiAobmVzdGVkX25hbWUpICsgMSk7CisrCXNw cmludGYgKGNvbmNhdGVuYXRlZF9uYW1lLCAiJXM6OiVzIiwgcGFyZW50X25hbWUsIG5lc3RlZF9u YW1lKTsKKysJc3ltID0gbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IChjb25jYXRlbmF0ZWRfbmFt ZSwgVkFSX0RPTUFJTik7CisrCWlmIChzeW0gIT0gTlVMTCAmJiBTWU1CT0xfQ0xBU1MgKHN5bSkg PT0gTE9DX1RZUEVERUYpCisgCSAgcmV0dXJuIFNZTUJPTF9UWVBFIChzeW0pOworKworKwlyZXR1 cm4gTlVMTDsKKyAgICAgICB9CisgICAgIGRlZmF1bHQ6CisgICAgICAgaW50ZXJuYWxfZXJyb3Ig KF9fRklMRV9fLCBfX0xJTkVfXywKK0luZGV4OiBnZGItNy4xL2dkYi9zeW10YWIuaAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvc3ltdGFiLmgJMjAxMC0wNi0yOSAxNzo1NDoxNi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4xL2dkYi9zeW10YWIuaAkyMDEwLTA2LTI5IDE4OjAw OjM3LjAwMDAwMDAwMCArMDIwMAorQEAgLTEwMzYsNiArMTAzNiwxMiBAQCBleHRlcm4gc3RydWN0 IHBhcnRpYWxfc3ltYm9sICpsb29rdXBfcGFyCisgCQkJCQkJICAgICBjb25zdCBjaGFyICosIGlu dCwKKyAJCQkJCQkgICAgIGRvbWFpbl9lbnVtKTsKKyAKKysvKiBMb29rdXAgYSBzeW1ib2wgb25s eSBpbiB0aGUgZmlsZSBzdGF0aWMgc2NvcGUgb2YgYWxsIHRoZSBvYmpmaWxlcy4gICovCisrCisr c3RydWN0IHN5bWJvbCAqbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IChjb25zdCBjaGFyICpuYW1l LAorKwkJCQkJIGNvbnN0IGRvbWFpbl9lbnVtIGRvbWFpbik7CisrCisrCisgLyogbG9va3VwIGEg c3ltYm9sIGJ5IG5hbWUsIHdpdGhpbiBhIHNwZWNpZmllZCBibG9jayAqLworIAorIGV4dGVybiBz dHJ1Y3Qgc3ltYm9sICpsb29rdXBfYmxvY2tfc3ltYm9sIChjb25zdCBzdHJ1Y3QgYmxvY2sgKiwg Y29uc3QgY2hhciAqLAorSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNw YWNlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5j cC9uYW1lc3BhY2UuZXhwCTIwMTAtMDYtMjkgMTc6NTQ6MTEuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UuZXhwCTIwMTAtMDYtMjkgMTg6 MTc6MTcuMDAwMDAwMDAwICswMjAwCitAQCAtMjE3LDYgKzIxNyw3MCBAQCBnZGJfZXhwZWN0IHsK KyBnZGJfdGVzdCAiYnJlYWsgQkJCOjpDbGFzczo6eHl6cSIgXAorICAgICAiQnJlYWtwb2ludC4q YXQgJGhleDogZmlsZS4qbmFtZXNwYWNlLmNjLCBsaW5lIDY4XFwuIgorIAorKyMgVGVzdHMgYWNj ZXNzaW5nIHN0YXRpYyBlbGVtZW50cyBpbiBuYW1lc3BhY2Ugb2Ygb3RoZXIgZmlsZS4KKysKKytn ZGJfdGVzdCAid2hhdGlzIEM6OmNPdGhlckZpbGVUeXBlIiAidHlwZSA9IHNob3J0IgorK2dkYl90 ZXN0ICJ3aGF0aXMgOjpDOjpjT3RoZXJGaWxlVHlwZSIgInR5cGUgPSBzaG9ydCIKKytnZGJfdGVz dCAid2hhdGlzIEM6OmNPdGhlckZpbGVWYXIiICJ0eXBlID0gY29uc3QgQzo6Y090aGVyRmlsZVR5 cGUiCisrZ2RiX3Rlc3QgIndoYXRpcyA6OkM6OmNPdGhlckZpbGVWYXIiICJ0eXBlID0gY29uc3Qg Qzo6Y090aGVyRmlsZVR5cGUiCisrZ2RiX3Rlc3QgInByaW50IEM6OmNPdGhlckZpbGVWYXIiICJc XCRcWzAtOVxdLiogPSAzMTkiCisrZ2RiX3Rlc3QgInByaW50IDo6Qzo6Y090aGVyRmlsZVZhciIg IlxcJFxbMC05XF0uKiA9IDMxOSIKKysKKytpZiB7W3Rlc3RfY29tcGlsZXJfaW5mbyB7Z2NjLVsw LTNdLSp9XQorKyAgICB8fCBbdGVzdF9jb21waWxlcl9pbmZvIHtnY2MtNC1bMC00XS0qfV19IHsK KysgICAgIyBUaGUgdHlwZSBpbiBjbGFzcyBpcyBtaXNzaW5nIGluIG9sZGVyIEdDQ3MuCisrICAg IHNldHVwX3hmYWlsICotKi0qIAorK30KKytnZGJfdGVzdCAid2hhdGlzIEM6Ok90aGVyRmlsZUNs YXNzOjpjT3RoZXJGaWxlQ2xhc3NUeXBlIiAidHlwZSA9IHNob3J0IgorK2lmIHtbdGVzdF9jb21w aWxlcl9pbmZvIHtnY2MtWzAtM10tKn1dCisrICAgIHx8IFt0ZXN0X2NvbXBpbGVyX2luZm8ge2dj Yy00LVswLTRdLSp9XX0geworKyAgICAjIFRoZSB0eXBlIGluIGNsYXNzIGlzIG1pc3NpbmcgaW4g b2xkZXIgR0NDcy4KKysgICAgc2V0dXBfeGZhaWwgKi0qLSogCisrfQorK2dkYl90ZXN0ICJ3aGF0 aXMgOjpDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVHlwZSIgInR5cGUgPSBzaG9y dCIKKysKKytzZXQgdGVzdCAicHJpbnQgQzo6T3RoZXJGaWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFz c1ZhciIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAiXFwkXFsw LTlcXS4qID0gMzE4XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJcGFzcyAkdGVzdAorKyAgICB9Cisr ICAgIC1yZSAic3RhdGljIGZpZWxkIGNPdGhlckZpbGVDbGFzc1ZhciBoYXMgYmVlbiBvcHRpbWl6 ZWQgb3V0XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJc2V0dXBfa2ZhaWwgImMrKy8xMTcwMiIgIiot Ki0qIgorKwlmYWlsICR0ZXN0CisrICAgIH0KKyt9CisrCisrIyBGU0YgR0NDIDw9NC40IGNyZWF0 ZXMgdW5xdWFsaWZpZWQgRElFICJjT3RoZXJGaWxlQ2xhc3NWYXIiIGlnbm9yaW5nIHRoZQorKyMg bmFtZXNwYWNlIHRoZSBzYW1lIHdheSBvbGRlciBHREIgZGlkLgorK3NldCB0ZXN0ICJwcmludCA6 OmNPdGhlckZpbGVDbGFzc1ZhciIKKytzZXQgdGVzdDIgInByaW50IDo6Qzo6T3RoZXJGaWxlQ2xh c3M6OmNPdGhlckZpbGVDbGFzc1ZhciIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7 CisrICAgIC1yZSAiTm8gc3ltYm9sIFwiY090aGVyRmlsZUNsYXNzVmFyXCIgaW4gY3VycmVudCBj b250ZXh0XFwuXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJcGFzcyAkdGVzdAorKworKwlnZGJfdGVz dF9tdWx0aXBsZSAkdGVzdDIgJHRlc3QyIHsKKysJICAgIC1yZSAiXFwkXFswLTlcXS4qID0gMzE4 XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJCXBhc3MgJHRlc3QyCisrCSAgICB9CisrCSAgICAtcmUg InN0YXRpYyBmaWVsZCBjT3RoZXJGaWxlQ2xhc3NWYXIgaGFzIGJlZW4gb3B0aW1pemVkIG91dFxy XG4kZ2RiX3Byb21wdCAkIiB7CisrCQlzZXR1cF9rZmFpbCAiYysrLzExNzAyIiAiKi0qLSoiCisr CQlmYWlsICR0ZXN0MgorKwkgICAgfQorKwl9CisrCisrICAgIH0KKysgICAgLXJlICJcXCRcWzAt OVxdLiogPSAzMThcclxuJGdkYl9wcm9tcHQgJCIgeworKwlpZiB7W3Rlc3RfY29tcGlsZXJfaW5m byB7Z2NjLVswLTNdLSp9XQorKwkgICAgfHwgW3Rlc3RfY29tcGlsZXJfaW5mbyB7Z2NjLTQtWzAt NF0tKn1dfSB7CisrCSAgICAjIERvIG5vdCBwZXJtaXQgdG8gWEZBSUwgb24gcmVjZW50IEdDQ3Mu CisrCSAgICBzZXR1cF94ZmFpbCAqLSotKiAKKysJfQorKwlmYWlsICR0ZXN0CisrCisrCXVucmVz b2x2ZWQgJHRlc3QyCisrICAgIH0KKyt9CisrCisgIyBUZXN0IHRvIHNlZSBpZiB0aGUgYXBwcm9w cmlhdGUgbmFtZXNwYWNlcyBhcmUgaW4gc2NvcGUgd2hlbiB0cnlpbmcKKyAjIHRvIHByaW50IG91 dCBzdHVmZiBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIGRlZmluZWQgd2l0aGluIGEKKyAjIG5hbWVz cGFjZS4KK0BAIC0yNjAsNyArMzI0LDcgQEAgZ2RiX3Rlc3QgInB0eXBlIEM6Ok5lc3RlZENsYXNz IiAiTm8gc3ltYgorICMgVGVzdHMgaW52b2x2aW5nIG11bHRpcGxlIGZpbGVzCisgCisgZ2RiX3Rl c3QgInByaW50IGNPdGhlckZpbGUiICJcXCRcWzAtOVxdLiogPSAzMTYiCistZ2RiX3Rlc3QgInB0 eXBlIE90aGVyRmlsZUNsYXNzIiAidHlwZSA9IChjbGFzcyBDOjpPdGhlckZpbGVDbGFzcyBce1xy XG4gIHB1YmxpYzp8c3RydWN0IEM6Ok90aGVyRmlsZUNsYXNzIFx7KVxyXG4gICAgaW50IHo7XHJc blx9IgorK2dkYl90ZXN0ICJwdHlwZSBPdGhlckZpbGVDbGFzcyIgInR5cGUgPSAoY2xhc3MgQzo6 T3RoZXJGaWxlQ2xhc3MgXHtcclxuICBwdWJsaWM6fHN0cnVjdCBDOjpPdGhlckZpbGVDbGFzcyBc eylcclxuICAgIGludCB6O1xyXG4uKlx9IgorIGNwX3Rlc3RfcHR5cGVfY2xhc3MgXAorIAkicHR5 cGUgOjpDOjpPdGhlckZpbGVDbGFzcyIgIiIgImNsYXNzIiAiQzo6T3RoZXJGaWxlQ2xhc3MiIFwK KyAJeworSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlMS5jYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3Bh Y2UxLmNjCTIwMTAtMDEtMDEgMDg6MzI6MDEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMS9n ZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UxLmNjCTIwMTAtMDYtMjkgMTc6NTY6NDIuMDAw MDAwMDAwICswMjAwCitAQCAtMjEsNyArMjEsMTUgQEAgbmFtZXNwYWNlIEMKKyAgIGNsYXNzIE90 aGVyRmlsZUNsYXNzIHsKKyAgIHB1YmxpYzoKKyAgICAgaW50IHo7CisrCisrICAgIHR5cGVkZWYg c2hvcnQgY090aGVyRmlsZUNsYXNzVHlwZTsKKysgICAgc3RhdGljIGNvbnN0IGNPdGhlckZpbGVD bGFzc1R5cGUgY090aGVyRmlsZUNsYXNzVmFyID0gMzE4OworKyAgICBjT3RoZXJGaWxlQ2xhc3NU eXBlIGNPdGhlckZpbGVDbGFzc1Zhcl91c2UgKCk7CisgICB9OworKyAgT3RoZXJGaWxlQ2xhc3M6 OmNPdGhlckZpbGVDbGFzc1R5cGUgT3RoZXJGaWxlQ2xhc3M6OmNPdGhlckZpbGVDbGFzc1Zhcl91 c2UgKCkKKysgIHsKKysgICAgcmV0dXJuIGNPdGhlckZpbGVDbGFzc1ZhcjsKKysgIH0KKyAKKyAg IG5hbWVzcGFjZSB7CisgICAgIGludCBjWE90aGVyRmlsZSA9IDI5OworQEAgLTM1LDYgKzQzLDEz IEBAIG5hbWVzcGFjZSBDCisgICAgIHN0YXRpYyBPdGhlckZpbGVDbGFzcyAqYyA9IG5ldyBPdGhl ckZpbGVDbGFzcygpOworICAgICBjLT56ID0gY090aGVyRmlsZSArIGNYT3RoZXJGaWxlOworICAg fQorKworKyAgdHlwZWRlZiBzaG9ydCBjT3RoZXJGaWxlVHlwZTsKKysgIHN0YXRpYyBjb25zdCBj T3RoZXJGaWxlVHlwZSBjT3RoZXJGaWxlVmFyID0gMzE5OworKyAgY090aGVyRmlsZVR5cGUgY090 aGVyRmlsZVZhcl91c2UgKCkKKysgIHsKKysgICAgcmV0dXJuIGNPdGhlckZpbGVWYXI7CisrICB9 CisgfQorIAorIG5hbWVzcGFjZSB7CitJbmRleDogZ2RiLTcuMS9nZGIvdmFsb3BzLmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTAtMDYtMjkgMTc6NTQ6MTYu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdmFsb3BzLmMJMjAxMC0wNi0yOSAxODox NTowMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zMjUzLDkgKzMyNTMsMTcgQEAgdmFsdWVfbWF5YmVf bmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IAorICAgc3RydWN0IHN5bWJvbCAqc3ltOworICAg c3RydWN0IHZhbHVlICpyZXN1bHQ7CisgCistICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVz cGFjZShuYW1lc3BhY2VfbmFtZSwgbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdldF9zZWxlY3RlZF9ibG9jayAoMCksIAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVkFSX0RPTUFJTik7CisrICBzeW0gPSBjcF9sb29rdXBfc3ltYm9sX25hbWVz cGFjZSAobmFtZXNwYWNlX25hbWUsIG5hbWUsCisrCQkJCSAgICBnZXRfc2VsZWN0ZWRfYmxvY2sg KDApLCBWQVJfRE9NQUlOKTsKKysKKysgIGlmIChzeW0gPT0gTlVMTCkKKysgICAgeworKyAgICAg IGNoYXIgKmNvbmNhdGVuYXRlZF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKG5hbWVzcGFjZV9uYW1l KSArIDIKKysJCQkJCSsgc3RybGVuIChuYW1lKSArIDEpOworKworKyAgICAgIHNwcmludGYgKGNv bmNhdGVuYXRlZF9uYW1lLCAiJXM6OiVzIiwgbmFtZXNwYWNlX25hbWUsIG5hbWUpOworKyAgICAg IHN5bSA9IGxvb2t1cF9zdGF0aWNfc3ltYm9sX2F1eCAoY29uY2F0ZW5hdGVkX25hbWUsIFZBUl9E T01BSU4pOworKyAgICB9CisgCisgICBpZiAoc3ltID09IE5VTEwpCisgICAgIHJldHVybiBOVUxM OworLS0tIGEvZ2RiL3N5bXRhYi5jCisrKysgYi9nZGIvc3ltdGFiLmMKK0BAIC0xMTIyLDEwICsx MTIxLDIxIEBAIGxvb2t1cF9zeW1ib2xfYXV4IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdHJ1 Y3QgYmxvY2sgKmJsb2NrLAorICAgICByZXR1cm4gc3ltOworIAorICAgLyogTm93IHNlYXJjaCBh bGwgc3RhdGljIGZpbGUtbGV2ZWwgc3ltYm9scy4gIE5vdCBzdHJpY3RseSBjb3JyZWN0LAorLSAg ICAgYnV0IG1vcmUgdXNlZnVsIHRoYW4gYW4gZXJyb3IuICBEbyB0aGUgc3ltdGFicyBmaXJzdCwg dGhlbiBjaGVjaworLSAgICAgdGhlIHBzeW10YWJzLiAgSWYgYSBwc3ltdGFiIGluZGljYXRlcyB0 aGUgZXhpc3RlbmNlIG9mIHRoZQorLSAgICAgZGVzaXJlZCBuYW1lIGFzIGEgZmlsZS1sZXZlbCBz dGF0aWMsIHRoZW4gZG8gcHN5bXRhYi10by1zeW10YWIKKy0gICAgIGNvbnZlcnNpb24gb24gdGhl IGZseSBhbmQgcmV0dXJuIHRoZSBmb3VuZCBzeW1ib2wuICovCisrICAgICBidXQgbW9yZSB1c2Vm dWwgdGhhbiBhbiBlcnJvci4gICovCisrCisrICByZXR1cm4gbG9va3VwX3N0YXRpY19zeW1ib2xf YXV4IChuYW1lLCBkb21haW4pOworK30KKysKKysvKiBTZWFyY2ggYWxsIHN0YXRpYyBmaWxlLWxl dmVsIHN5bWJvbHMgZm9yIE5BTUUgZnJvbSBET01BSU4uICBEbyB0aGUgc3ltdGFicworKyAgIGZp cnN0LCB0aGVuIGNoZWNrIHRoZSBwc3ltdGFicy4gIElmIGEgcHN5bXRhYiBpbmRpY2F0ZXMgdGhl IGV4aXN0ZW5jZSBvZiB0aGUKKysgICBkZXNpcmVkIG5hbWUgYXMgYSBmaWxlLWxldmVsIHN0YXRp YywgdGhlbiBkbyBwc3ltdGFiLXRvLXN5bXRhYiBjb252ZXJzaW9uIG9uCisrICAgdGhlIGZseSBh bmQgcmV0dXJuIHRoZSBmb3VuZCBzeW1ib2wuICovCisrCisrc3RydWN0IHN5bWJvbCAqCisrbG9v a3VwX3N0YXRpY19zeW1ib2xfYXV4IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBkb21haW5fZW51 bSBkb21haW4pCisreworKyAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CisrICBzdHJ1Y3Qgc3lt Ym9sICpzeW07CisgCisgICBzeW0gPSBsb29rdXBfc3ltYm9sX2F1eF9zeW10YWJzIChTVEFUSUNf QkxPQ0ssIG5hbWUsIGRvbWFpbik7CisgICBpZiAoc3ltICE9IE5VTEwpCgpkaWZmIC0tZ2l0IGEv Z2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYtMm9mMy5wYXRjaCBiL2dkYi1iejYwMjMx NC1wdHlwZS1jbGFzcy10eXBlZGVmLTJvZjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uM2YwMWViMwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1iejYwMjMxNC1wdHlw ZS1jbGFzcy10eXBlZGVmLTJvZjMucGF0Y2gKQEAgLTAsMCArMSwzMDggQEAKK2NvbW1pdCA3NThh MWY3MTQ5Y2I3NDY5YzdlNmJiMzBjYjU3MjcxNWVlOTBhNmU4CitBdXRob3I6IEphbiBLcmF0b2No dmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBNb24gSnVuIDI4IDIwOjM5 OjI3IDIwMTAgKzAwMDAKKworICAgIGdkYi8KKyAgICAJKiBjLXR5cGVwcmludC5jIChjX3R5cGVf cHJpbnRfYmFzZSk6IEZvciBubyBmaWVsZHMgY2hlY2sgaW5jbHVkZSBhbHNvCisgICAgCVRZUEVf VFlQRURFRl9GSUVMRF9DT1VOVC4gIFByaW50IG5ldyB0eXBlZGVmcyBzZWN0aW9uLgorICAgIAkq IGR3YXJmMnJlYWQuYyAoc3RydWN0IHR5cGVkZWZfZmllbGRfbGlzdCkKKyAgICAJKHN0cnVjdCBm aWVsZF9pbmZvKSA8dHlwZWRlZl9maWVsZF9saXN0LCB0eXBlZGVmX2ZpZWxkX2xpc3RfY291bnQ+ OiBOZXcuCisgICAgCShkd2FyZjJfYWRkX3R5cGVkZWYpOiBOZXcuCisgICAgCShyZWFkX3N0cnVj dHVyZV90eXBlKTogQ2FsbCBkd2FyZjJfYWRkX3R5cGVkZWYgZm9yIERXX1RBR190eXBlZGVmLgor ICAgIAlDb3B5IGFsc28gRkkuVFlQRURFRl9GSUVMRF9MSVNULgorICAgIAkqIGdkYnR5cGVzLmgg KHN0cnVjdCB0eXBlZGVmX2ZpZWxkKQorICAgIAkoc3RydWN0IGNwbHVzX3N0cnVjdF90eXBlKSA8 dHlwZWRlZl9maWVsZCwgdHlwZWRlZl9maWVsZF9jb3VudD4KKyAgICAJKFRZUEVfVFlQRURFRl9G SUVMRF9BUlJBWSwgVFlQRV9UWVBFREVGX0ZJRUxELCBUWVBFX1RZUEVERUZfRklFTERfTkFNRSkK KyAgICAJKFRZUEVfVFlQRURFRl9GSUVMRF9UWVBFLCBUWVBFX1RZUEVERUZfRklFTERfQ09VTlQp OiBOZXcuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS8KKyAgICAJKiBnZGIuY3AvbmFtZXNwYWNl LmV4cCAocHR5cGUgT3RoZXJGaWxlQ2xhc3MgdHlwZWRlZnMpCisgICAgCShwdHlwZSA6OkM6Ok90 aGVyRmlsZUNsYXNzIHR5cGVkZWZzKTogTmV3LgorICAgIAkqIGdkYi5jcC9uYW1lc3BhY2UxLmNj IChDOjpPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVHlwZTIpCisgICAgCShDOjpPdGhl ckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVmFyMik6IE5ldy4KKyAgICAJKEM6Ok90aGVyRmls ZUNsYXNzOjpjT3RoZXJGaWxlQ2xhc3NWYXJfdXNlKTogVXNlIGFsc28KKyAgICAJY090aGVyRmls ZUNsYXNzVmFyMi4KKyAgICAJKEM6OmNPdGhlckZpbGVUeXBlMiwgQzo6Y090aGVyRmlsZVZhcjIp OiBOZXcuCisgICAgCShDOjpjT3RoZXJGaWxlVmFyX3VzZSk6IHVzZSBhbHNvIGNPdGhlckZpbGVW YXIyLgorICAgIAkqIGdkYi5jcC91c2VyZGVmLmV4cCAocHR5cGUgJipjKTogUGVybWl0IGFyYml0 cmFyeSB0cmFpbGluZyB0ZXh0LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hh bmdlTG9nCisjIyAtMSw1ICsxLDE5IEBACisgMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorIAorKwkqIGMtdHlwZXByaW50LmMgKGNfdHlwZV9w cmludF9iYXNlKTogRm9yIG5vIGZpZWxkcyBjaGVjayBpbmNsdWRlIGFsc28KKysJVFlQRV9UWVBF REVGX0ZJRUxEX0NPVU5ULiAgUHJpbnQgbmV3IHR5cGVkZWZzIHNlY3Rpb24uCisrCSogZHdhcmYy cmVhZC5jIChzdHJ1Y3QgdHlwZWRlZl9maWVsZF9saXN0KQorKwkoc3RydWN0IGZpZWxkX2luZm8p IDx0eXBlZGVmX2ZpZWxkX2xpc3QsIHR5cGVkZWZfZmllbGRfbGlzdF9jb3VudD46IE5ldy4KKysJ KGR3YXJmMl9hZGRfdHlwZWRlZik6IE5ldy4KKysJKHJlYWRfc3RydWN0dXJlX3R5cGUpOiBDYWxs IGR3YXJmMl9hZGRfdHlwZWRlZiBmb3IgRFdfVEFHX3R5cGVkZWYuCisrCUNvcHkgYWxzbyBGSS5U WVBFREVGX0ZJRUxEX0xJU1QuCisrCSogZ2RidHlwZXMuaCAoc3RydWN0IHR5cGVkZWZfZmllbGQp CisrCShzdHJ1Y3QgY3BsdXNfc3RydWN0X3R5cGUpIDx0eXBlZGVmX2ZpZWxkLCB0eXBlZGVmX2Zp ZWxkX2NvdW50PgorKwkoVFlQRV9UWVBFREVGX0ZJRUxEX0FSUkFZLCBUWVBFX1RZUEVERUZfRklF TEQsIFRZUEVfVFlQRURFRl9GSUVMRF9OQU1FKQorKwkoVFlQRV9UWVBFREVGX0ZJRUxEX1RZUEUs IFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCk6IE5ldy4KKysKKysyMDEwLTA2LTI4ICBKYW4gS3Jh dG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisgCSogY3AtbmFtZXNwYWNl LmMgKGNwX2xvb2t1cF9uZXN0ZWRfdHlwZSk6IE5ldyB2YXJpYWJsZQorIAljb25jYXRlbmF0ZWRf bmFtZS4gIFR1cm4gdGhlIGN1cnJlbnQgcmV0dXJuIGNvbmRpdGlvbiBpbnRvIGEgcmV2ZXJzZQor IAlvbmUuICBDYWxsIGFsc28gbG9va3VwX3N0YXRpY19zeW1ib2xfYXV4IG9uIHRoZSBjb25zdHJ1 Y3RlZCBxdWFsaWZpZWQKK0luZGV4OiBnZGItNy4xL2dkYi9jLXR5cGVwcmludC5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi9jLXR5cGVwcmludC5jCTIwMTAtMDYtMjkgMTc6NTQ6 MDkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvYy10eXBlcHJpbnQuYwkyMDEwLTA2 LTI5IDE4OjE3OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTc3NCw3ICs3NzQsOCBAQCBjX3R5cGVf cHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0CisgCSAgY3BfdHlwZV9wcmludF9kZXJp dmF0aW9uX2luZm8gKHN0cmVhbSwgdHlwZSk7CisgCisgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAie1xuIik7CistCSAgaWYgKChUWVBFX05GSUVMRFMgKHR5cGUpID09IDApICYmIChUWVBF X05GTl9GSUVMRFMgKHR5cGUpID09IDApKQorKwkgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09 IDAgJiYgVFlQRV9ORk5fRklFTERTICh0eXBlKSA9PSAwCisrCSAgICAgICYmIFRZUEVfVFlQRURF Rl9GSUVMRF9DT1VOVCAodHlwZSkgPT0gMCkKKyAJICAgIHsKKyAJICAgICAgaWYgKFRZUEVfU1RV QiAodHlwZSkpCisgCQlmcHJpbnRmaV9maWx0ZXJlZCAobGV2ZWwgKyA0LCBzdHJlYW0sIF8oIjxp bmNvbXBsZXRlIHR5cGU+XG4iKSk7CitAQCAtMTA2MCw2ICsxMDYxLDI5IEBAIGNfdHlwZV9wcmlu dF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3QKKyAJCX0KKyAJICAgIH0KKyAKKysJICAvKiBQ cmludCB0eXBlZGVmcyBkZWZpbmVkIGluIHRoaXMgY2xhc3MuICAqLworKworKwkgIGlmIChUWVBF X1RZUEVERUZfRklFTERfQ09VTlQgKHR5cGUpICE9IDApCisrCSAgICB7CisrCSAgICAgIGlmIChU WVBFX05GSUVMRFMgKHR5cGUpICE9IDAgfHwgVFlQRV9ORk5fRklFTERTICh0eXBlKSAhPSAwKQor KwkJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXG4iKTsKKysKKysJICAgICAgZm9yIChpID0g MDsgaSA8IFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCAodHlwZSk7IGkrKykKKysJCXsKKysJCSAg c3RydWN0IHR5cGUgKnRhcmdldCA9IFRZUEVfVFlQRURFRl9GSUVMRF9UWVBFICh0eXBlLCBpKTsK KysKKysJCSAgLyogRGVyZWZlcmVuY2UgdGhlIHR5cGVkZWYgZGVjbGFyYXRpb24gaXRzZWxmLiAg Ki8KKysJCSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0YXJnZXQpID09IFRZUEVfQ09ERV9UWVBF REVGKTsKKysJCSAgdGFyZ2V0ID0gVFlQRV9UQVJHRVRfVFlQRSAodGFyZ2V0KTsKKysKKysJCSAg cHJpbnRfc3BhY2VzX2ZpbHRlcmVkIChsZXZlbCArIDQsIHN0cmVhbSk7CisrCQkgIGZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgInR5cGVkZWYgIik7CisrCQkgIGNfcHJpbnRfdHlwZSAodGFyZ2V0 LCAoY2hhciAqKSBUWVBFX1RZUEVERUZfRklFTERfTkFNRSAodHlwZSwgaSksCisrCQkJCXN0cmVh bSwgc2hvdyAtIDEsIGxldmVsICsgNCk7CisrCQkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg IjtcbiIpOworKwkJfQorKwkgICAgfQorKworIAkgIGZwcmludGZpX2ZpbHRlcmVkIChsZXZlbCwg c3RyZWFtLCAifSIpOworIAorIAkgIGlmIChUWVBFX0xPQ0FMVFlQRV9QVFIgKHR5cGUpICYmIHNo b3cgPj0gMCkKK0luZGV4OiBnZGItNy4xL2dkYi9kd2FyZjJyZWFkLmMKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTA2LTI5IDE3OjU0OjI4LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi03LjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEwLTA2LTI5IDE4OjE3 OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTcyMiw2ICs3MjIsMTYgQEAgc3RydWN0IGZpZWxkX2lu Zm8KKyAKKyAgICAgLyogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGZuZmllbGRsaXN0cyBhcnJh eS4gICovCisgICAgIGludCBuZm5maWVsZHM7CisrCisrICAgIC8qIHR5cGVkZWZzIGRlZmluZWQg aW5zaWRlIHRoaXMgY2xhc3MuICBUWVBFREVGX0ZJRUxEX0xJU1QgY29udGFpbnMgaGVhZCBvZgor KyAgICAgICBhIE5VTEwgdGVybWluYXRlZCBsaXN0IG9mIFRZUEVERUZfRklFTERfTElTVF9DT1VO VCBlbGVtZW50cy4gICovCisrICAgIHN0cnVjdCB0eXBlZGVmX2ZpZWxkX2xpc3QKKysgICAgICB7 CisrCXN0cnVjdCB0eXBlZGVmX2ZpZWxkIGZpZWxkOworKwlzdHJ1Y3QgdHlwZWRlZl9maWVsZF9s aXN0ICpuZXh0OworKyAgICAgIH0KKysgICAgKnR5cGVkZWZfZmllbGRfbGlzdDsKKysgICAgdW5z aWduZWQgdHlwZWRlZl9maWVsZF9saXN0X2NvdW50OworICAgfTsKKyAKKyAvKiBPbmUgaXRlbSBv biB0aGUgcXVldWUgb2YgY29tcGlsYXRpb24gdW5pdHMgdG8gcmVhZCBpbiBmdWxsIHN5bWJvbHMK K0BAIC01MDc1LDYgKzUwODUsMzkgQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2lu Zm8gKmZpcAorICAgICB9CisgfQorIAorKy8qIEFkZCBhIHR5cGVkZWYgZGVmaW5lZCBpbiB0aGUg c2NvcGUgb2YgdGhlIEZJUCdzIGNsYXNzLiAgKi8KKysKKytzdGF0aWMgdm9pZAorK2R3YXJmMl9h ZGRfdHlwZWRlZiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUs CisrCQkgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisreyAKKysgIHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlID0gY3UtPm9iamZpbGU7CisrICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9v YmpmaWxlX2FyY2ggKG9iamZpbGUpOworKyAgc3RydWN0IHR5cGVkZWZfZmllbGRfbGlzdCAqbmV3 X2ZpZWxkOworKyAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKysgIHN0cnVjdCB0eXBlZGVmX2Zp ZWxkICpmcDsKKysgIGNoYXIgKmZpZWxkbmFtZSA9ICIiOworKworKyAgLyogQWxsb2NhdGUgYSBu ZXcgZmllbGQgbGlzdCBlbnRyeSBhbmQgbGluayBpdCBpbi4gICovCisrICBuZXdfZmllbGQgPSB4 emFsbG9jIChzaXplb2YgKCpuZXdfZmllbGQpKTsKKysgIG1ha2VfY2xlYW51cCAoeGZyZWUsIG5l d19maWVsZCk7CisrCisrICBnZGJfYXNzZXJ0IChkaWUtPnRhZyA9PSBEV19UQUdfdHlwZWRlZik7 CisrCisrICBmcCA9ICZuZXdfZmllbGQtPmZpZWxkOworKworKyAgLyogR2V0IG5hbWUgb2YgZmll bGQuICAqLworKyAgZnAtPm5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrICBpZiAoZnAt Pm5hbWUgPT0gTlVMTCkKKysgICAgcmV0dXJuOworKworKyAgZnAtPnR5cGUgPSByZWFkX3R5cGVf ZGllIChkaWUsIGN1KTsKKysKKysgIG5ld19maWVsZC0+bmV4dCA9IGZpcC0+dHlwZWRlZl9maWVs ZF9saXN0OworKyAgZmlwLT50eXBlZGVmX2ZpZWxkX2xpc3QgPSBuZXdfZmllbGQ7CisrICBmaXAt PnR5cGVkZWZfZmllbGRfbGlzdF9jb3VudCsrOworK30KKysKKyAvKiBDcmVhdGUgdGhlIHZlY3Rv ciBvZiBmaWVsZHMsIGFuZCBhdHRhY2ggaXQgdG8gdGhlIHR5cGUuICAqLworIAorIHN0YXRpYyB2 b2lkCitAQCAtNTYwMCw2ICs1NjQzLDggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaQorIAkgICAgICAvKiBDKysgYmFzZSBjbGFzcyBmaWVsZC4gICovCisgCSAgICAg IGR3YXJmMl9hZGRfZmllbGQgKCZmaSwgY2hpbGRfZGllLCBjdSk7CisgCSAgICB9CisrCSAgZWxz ZSBpZiAoY2hpbGRfZGllLT50YWcgPT0gRFdfVEFHX3R5cGVkZWYpCisrCSAgICBkd2FyZjJfYWRk X3R5cGVkZWYgKCZmaSwgY2hpbGRfZGllLCBjdSk7CisgCSAgY2hpbGRfZGllID0gc2libGluZ19k aWUgKGNoaWxkX2RpZSk7CisgCX0KKyAKK0BAIC01NjczLDYgKzU3MTgsMjggQEAgcmVhZF9zdHJ1 Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaQorIAkJfQorIAkgICAgfQorIAl9CisrCisr ICAgICAgLyogQ29weSBmaS50eXBlZGVmX2ZpZWxkX2xpc3QgbGlua2VkIGxpc3QgZWxlbWVudHMg Y29udGVudCBpbnRvIHRoZQorKwkgYWxsb2NhdGVkIGFycmF5IFRZUEVfVFlQRURFRl9GSUVMRF9B UlJBWSAodHlwZSkuICAqLworKyAgICAgIGlmIChmaS50eXBlZGVmX2ZpZWxkX2xpc3QpCisrCXsK KysJICBpbnQgaSA9IGZpLnR5cGVkZWZfZmllbGRfbGlzdF9jb3VudDsKKysKKysJICBUWVBFX1RZ UEVERUZfRklFTERfQVJSQVkgKHR5cGUpCisrCSAgICA9IFRZUEVfQUxMT0MgKHR5cGUsIHNpemVv ZiAoVFlQRV9UWVBFREVGX0ZJRUxEICh0eXBlLCAwKSkgKiBpKTsKKysJICBUWVBFX1RZUEVERUZf RklFTERfQ09VTlQgKHR5cGUpID0gaTsKKysKKysJICAvKiBSZXZlcnNlIHRoZSBsaXN0IG9yZGVy IHRvIGtlZXAgdGhlIGRlYnVnIGluZm8gZWxlbWVudHMgb3JkZXIuICAqLworKwkgIHdoaWxlICgt LWkgPj0gMCkKKysJICAgIHsKKysJICAgICAgc3RydWN0IHR5cGVkZWZfZmllbGQgKmRlc3QsICpz cmM7CisrCSAgICAgIAorKwkgICAgICBkZXN0ID0gJlRZUEVfVFlQRURFRl9GSUVMRCAodHlwZSwg aSk7CisrCSAgICAgIHNyYyA9ICZmaS50eXBlZGVmX2ZpZWxkX2xpc3QtPmZpZWxkOworKwkgICAg ICBmaS50eXBlZGVmX2ZpZWxkX2xpc3QgPSBmaS50eXBlZGVmX2ZpZWxkX2xpc3QtPm5leHQ7Cisr CSAgICAgICpkZXN0ID0gKnNyYzsKKysJICAgIH0KKysJfQorICAgICB9CisgCisgICBxdWlya19n Y2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHR5cGUsIGN1LT5vYmpmaWxlKTsKK0luZGV4OiBn ZGItNy4xL2dkYi9nZGJ0eXBlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMS5vcmlnL2dkYi9n ZGJ0eXBlcy5oCTIwMTAtMDYtMjkgMTc6NTQ6MTcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu MS9nZGIvZ2RidHlwZXMuaAkyMDEwLTA2LTI5IDE4OjE4OjI5LjAwMDAwMDAwMCArMDIwMAorQEAg LTk0OCw2ICs5NDgsMTkgQEAgc3RydWN0IGNwbHVzX3N0cnVjdF90eXBlCisgICAgICAgIG1lbWJl ciBmdW5jdGlvbnMgb3IgdmlydHVhbCBiYXNlIGNsYXNzZXMuICBNaW51cyBvbmUgaWYgbm90Cisg ICAgICAgIGR5bmFtaWMuICBaZXJvIGlmIG5vdCB5ZXQgY29tcHV0ZWQuICAqLworICAgICBpbnQg aXNfZHluYW1pYyA6IDI7CisrCisrICAgIC8qIHR5cGVkZWZzIGRlZmluZWQgaW5zaWRlIHRoaXMg Y2xhc3MuICBUWVBFREVGX0ZJRUxEIHBvaW50cyB0byBhbiBhcnJheSBvZgorKyAgICAgICBUWVBF REVGX0ZJRUxEX0NPVU5UIGVsZW1lbnRzLiAgKi8KKysgICAgc3RydWN0IHR5cGVkZWZfZmllbGQK KysgICAgICB7CisrCS8qIFVucXVhbGlmaWVkIG5hbWUgdG8gYmUgcHJlZml4ZWQgYnkgb3duaW5n IGNsYXNzIHF1YWxpZmllZCBuYW1lLiAgKi8KKysJY29uc3QgY2hhciAqbmFtZTsKKysKKysJLyog VHlwZSB0aGlzIHR5cGVkZWYgbmFtZWQgTkFNRSByZXByZXNlbnRzLiAgKi8KKysJc3RydWN0IHR5 cGUgKnR5cGU7CisrICAgICAgfQorKyAgICAqdHlwZWRlZl9maWVsZDsKKysgICAgdW5zaWduZWQg dHlwZWRlZl9maWVsZF9jb3VudDsKKyAgIH07CisgCisgLyogU3RydWN0IHVzZWQgZm9yIHJhbmtp bmcgYSBmdW5jdGlvbiBmb3Igb3ZlcmxvYWQgcmVzb2x1dGlvbiAqLworQEAgLTExODIsNiArMTE5 NSwxNyBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CisgI2RlZmlu ZSBUWVBFX0xPQ0FMVFlQRV9GSUxFKHRoaXN0eXBlKSAoVFlQRV9DUExVU19TUEVDSUZJQyh0aGlz dHlwZSktPmxvY2FsdHlwZV9wdHItPmZpbGUpCisgI2RlZmluZSBUWVBFX0xPQ0FMVFlQRV9MSU5F KHRoaXN0eXBlKSAoVFlQRV9DUExVU19TUEVDSUZJQyh0aGlzdHlwZSktPmxvY2FsdHlwZV9wdHIt PmxpbmUpCisgCisrI2RlZmluZSBUWVBFX1RZUEVERUZfRklFTERfQVJSQVkodGhpc3R5cGUpIFwK KysgIFRZUEVfQ1BMVVNfU1BFQ0lGSUMgKHRoaXN0eXBlKS0+dHlwZWRlZl9maWVsZAorKyNkZWZp bmUgVFlQRV9UWVBFREVGX0ZJRUxEKHRoaXN0eXBlLCBuKSBcCisrICBUWVBFX0NQTFVTX1NQRUNJ RklDICh0aGlzdHlwZSktPnR5cGVkZWZfZmllbGRbbl0KKysjZGVmaW5lIFRZUEVfVFlQRURFRl9G SUVMRF9OQU1FKHRoaXN0eXBlLCBuKSBcCisrICBUWVBFX1RZUEVERUZfRklFTEQgKHRoaXN0eXBl LCBuKS5uYW1lCisrI2RlZmluZSBUWVBFX1RZUEVERUZfRklFTERfVFlQRSh0aGlzdHlwZSwgbikg XAorKyAgVFlQRV9UWVBFREVGX0ZJRUxEICh0aGlzdHlwZSwgbikudHlwZQorKyNkZWZpbmUgVFlQ RV9UWVBFREVGX0ZJRUxEX0NPVU5UKHRoaXN0eXBlKSBcCisrICBUWVBFX0NQTFVTX1NQRUNJRklD ICh0aGlzdHlwZSktPnR5cGVkZWZfZmllbGRfY291bnQKKysKKyAjZGVmaW5lIFRZUEVfSVNfT1BB UVVFKHRoaXN0eXBlKSAoKChUWVBFX0NPREUgKHRoaXN0eXBlKSA9PSBUWVBFX0NPREVfU1RSVUNU KSB8fCAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFRZUEVf Q09ERSAodGhpc3R5cGUpID09IFRZUEVfQ09ERV9VTklPTikpICAgICAgICAmJiBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUWVBFX05GSUVMRFMgKHRoaXN0eXBlKSA9PSAw KSAgICAgICAgICAgICAgICAgICAgICYmIFwKK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL25hbWVzcGFjZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLmV4cAkyMDEwLTA2LTI5IDE4OjE3OjE3LjAwMDAwMDAw MCArMDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLmV4cAky MDEwLTA2LTI5IDE4OjE4OjU4LjAwMDAwMDAwMCArMDIwMAorQEAgLTMzMiw2ICszMzIsMjEgQEAg Y3BfdGVzdF9wdHlwZV9jbGFzcyBcCisgCX0KKyBnZGJfdGVzdCAicHR5cGUgQzo6T3RoZXJGaWxl Q2xhc3MiICJObyBzeW1ib2wgXCJPdGhlckZpbGVDbGFzc1wiIGluIG5hbWVzcGFjZSBcIkM6OkNc Ii4iCisgCisrIyBUZXN0IGNsYXNzIHR5cGVkZWZzIHByaW50aW5nLgorK3NldCBleHBlY3QgInR5 cGUgPSBjbGFzcyBDOjpPdGhlckZpbGVDbGFzcyBce1xyXG4uKlxyXG4gKnR5cGVkZWYgc2hvcnQg Y090aGVyRmlsZUNsYXNzVHlwZTtcclxuICp0eXBlZGVmIGxvbmcgY090aGVyRmlsZUNsYXNzVHlw ZTI7XHJcblx9IgorK2lmIHtbdGVzdF9jb21waWxlcl9pbmZvIHtnY2MtWzAtM10tKn1dCisrICAg IHx8IFt0ZXN0X2NvbXBpbGVyX2luZm8ge2djYy00LVswLTRdLSp9XX0geworKyAgICAjIFRoZSB0 eXBlIGluIGNsYXNzIGlzIG1pc3NpbmcgaW4gb2xkZXIgR0NDcy4KKysgICAgc2V0dXBfeGZhaWwg Ki0qLSogCisrfQorK2dkYl90ZXN0ICJwdHlwZSBPdGhlckZpbGVDbGFzcyIgJGV4cGVjdCAicHR5 cGUgT3RoZXJGaWxlQ2xhc3MgdHlwZWRlZnMiCisraWYge1t0ZXN0X2NvbXBpbGVyX2luZm8ge2dj Yy1bMC0zXS0qfV0KKysgICAgfHwgW3Rlc3RfY29tcGlsZXJfaW5mbyB7Z2NjLTQtWzAtNF0tKn1d fSB7CisrICAgICMgVGhlIHR5cGUgaW4gY2xhc3MgaXMgbWlzc2luZyBpbiBvbGRlciBHQ0NzLgor KyAgICBzZXR1cF94ZmFpbCAqLSotKiAKKyt9CisrZ2RiX3Rlc3QgInB0eXBlIDo6Qzo6T3RoZXJG aWxlQ2xhc3MiICRleHBlY3QgInB0eXBlIDo6Qzo6T3RoZXJGaWxlQ2xhc3MgdHlwZWRlZnMiCisr CisgIyBTb21lIGFub255bW91cyBuYW1lc3BhY2UgdGVzdHMuCisgCisgZ2RiX3Rlc3QgInByaW50 IGNYIiAiXFwkXFswLTlcXS4qID0gNiIKK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2Ri LmNwL25hbWVzcGFjZTEuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xLm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvbmFtZXNwYWNlMS5jYwkyMDEwLTA2LTI5IDE3OjU2OjQyLjAwMDAwMDAwMCAr MDIwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlMS5jYwkyMDEw LTA2LTI5IDE4OjE3OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAgLTIzLDEyICsyMywxNCBAQCBuYW1l c3BhY2UgQworICAgICBpbnQgejsKKyAKKyAgICAgdHlwZWRlZiBzaG9ydCBjT3RoZXJGaWxlQ2xh c3NUeXBlOworKyAgICB0eXBlZGVmIGxvbmcgY090aGVyRmlsZUNsYXNzVHlwZTI7CisgICAgIHN0 YXRpYyBjb25zdCBjT3RoZXJGaWxlQ2xhc3NUeXBlIGNPdGhlckZpbGVDbGFzc1ZhciA9IDMxODsK KysgICAgc3RhdGljIGNvbnN0IGNPdGhlckZpbGVDbGFzc1R5cGUyIGNPdGhlckZpbGVDbGFzc1Zh cjIgPSAzMjA7CisgICAgIGNPdGhlckZpbGVDbGFzc1R5cGUgY090aGVyRmlsZUNsYXNzVmFyX3Vz ZSAoKTsKKyAgIH07CisgICBPdGhlckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVHlwZSBPdGhl ckZpbGVDbGFzczo6Y090aGVyRmlsZUNsYXNzVmFyX3VzZSAoKQorICAgeworLSAgICByZXR1cm4g Y090aGVyRmlsZUNsYXNzVmFyOworKyAgICByZXR1cm4gY090aGVyRmlsZUNsYXNzVmFyICsgY090 aGVyRmlsZUNsYXNzVmFyMjsKKyAgIH0KKyAKKyAgIG5hbWVzcGFjZSB7CitAQCAtNDUsMTAgKzQ3 LDEyIEBAIG5hbWVzcGFjZSBDCisgICB9CisgCisgICB0eXBlZGVmIHNob3J0IGNPdGhlckZpbGVU eXBlOworKyAgdHlwZWRlZiBsb25nIGNPdGhlckZpbGVUeXBlMjsKKyAgIHN0YXRpYyBjb25zdCBj T3RoZXJGaWxlVHlwZSBjT3RoZXJGaWxlVmFyID0gMzE5OworKyAgc3RhdGljIGNvbnN0IGNPdGhl ckZpbGVUeXBlMiBjT3RoZXJGaWxlVmFyMiA9IDMyMTsKKyAgIGNPdGhlckZpbGVUeXBlIGNPdGhl ckZpbGVWYXJfdXNlICgpCisgICB7CistICAgIHJldHVybiBjT3RoZXJGaWxlVmFyOworKyAgICBy ZXR1cm4gY090aGVyRmlsZVZhciArIGNPdGhlckZpbGVWYXIyOworICAgfQorIH0KKyAKK0luZGV4 OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3VzZXJkZWYuZXhwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3VzZXJkZWYuZXhwCTIwMTAtMDYt MjkgMTc6NTQ6MTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dk Yi5jcC91c2VyZGVmLmV4cAkyMDEwLTA2LTI5IDE4OjE3OjQ4LjAwMDAwMDAwMCArMDIwMAorQEAg LTE1NCw3ICsxNTQsNyBAQCBnZGJfdGVzdCAiYnJlYWsgQTI6OidvcGVyYXRvciArJyIgIi4qQnJl CisgZ2RiX3Rlc3QgInByaW50IGMiICJcXFwkXFswLTlcXSogPSB7bSA9IHt6ID0gLip9fSIKKyBn ZGJfdGVzdCAicHJpbnQgKmMiICJcXFwkXFswLTlcXSogPSBcXChNZW1iZXIgJlxcKSBAJGhleDog e3ogPSAuKn0iCisgZ2RiX3Rlc3QgInByaW50ICYqYyIgIlxcXCRcWzAtOVxdKiA9IFxcKE1lbWJl ciBcXCpcXCkgJGhleCIKKy1nZGJfdGVzdCAicHR5cGUgJipjIiAidHlwZSA9IChzdHJ1Y3R8Y2xh c3MpIE1lbWJlciB7KFxbXHJcbiBcXStwdWJsaWM6KT9cW1xyXG4gXF0raW50IHo7XFtcclxuXF0r fSAmXFwqIgorK2dkYl90ZXN0ICJwdHlwZSAmKmMiICJ0eXBlID0gKHN0cnVjdHxjbGFzcykgTWVt YmVyIHsoXFtcclxuIFxdK3B1YmxpYzopP1xbXHJcbiBcXStpbnQgejtcW1xyXG5cXS4qfSAmXFwq IgorIAorIGdkYl90ZXN0ICJwcmludCBvcGVyYXRvcj09IChtZW0xLCBtZW0yKSIgIiA9IGZhbHNl IgorIGdkYl90ZXN0ICJwcmludCBvcGVyYXRvcj09IChtZW0xLCBtZW0xKSIgIiA9IHRydWUiCgpk aWZmIC0tZ2l0IGEvZ2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYtM29mMy5wYXRjaCBi L2dkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTNvZjMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBhZDUwZAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTNvZjMucGF0Y2gKQEAgLTAsMCArMSwzOCBAQAor Y29tbWl0IDQ3N2MxMzU5YjIxN2NkYzA1MmE3YzlmODNjYWU5Yzg5NDM5Njg5NGMKK0F1dGhvcjog SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CitEYXRlOiAgIE1vbiBK dW4gMjggMjI6MDM6MzEgMjAxMCArMDAwMAorCisgICAgZ2RiLworICAgIAkqIGR3YXJmMnJlYWQu YyAocmVhZF9zdHJ1Y3R1cmVfdHlwZSkgPGZpLnR5cGVkZWZfZmllbGRfbGlzdD46IENhbGwKKyAg ICAJQUxMT0NBVEVfQ1BMVVNfU1RSVUNUX1RZUEUuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMj IyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTAtMDYtMjggIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJKiBkd2FyZjJyZWFkLmMg KHJlYWRfc3RydWN0dXJlX3R5cGUpIDxmaS50eXBlZGVmX2ZpZWxkX2xpc3Q+OiBDYWxsCisrCUFM TE9DQVRFX0NQTFVTX1NUUlVDVF9UWVBFLgorKworIDIwMTAtMDYtMjggIFBoaWwgTXVsZG9vbiAg PHBtdWxkb29uQHJlZGhhdC5jb20+CisgICAgICAgICAgICAgVG9tIFRyb21leSAgPHRyb21leUBy ZWRoYXQuY29tPgorICAgICAgICAgICAgIFRoaWFnbyBKdW5nIEJhdWVybWFubiAgPGJhdWVybWFu QGJyLmlibS5jb20+CisjIyAtMjcsOCArMzIsNiBAQAorIAkqIHB5dGhvbi9weS1pbmZlcmlvci5j OiBOZXcgRmlsZS4KKyAJKiBweXRob24vcHktaW5mdGhyZWFkLmM6IE5ldyBGaWxlLgorIAorLQor LQorIDIwMTAtMDYtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKyAKKyAJKiBjLXR5cGVwcmludC5jIChjX3R5cGVfcHJpbnRfYmFzZSk6IEZvciBubyBmaWVs ZHMgY2hlY2sgaW5jbHVkZSBhbHNvCistLS0gYS9nZGIvZHdhcmYycmVhZC5jCisrKysgYi9nZGIv ZHdhcmYycmVhZC5jCitAQCAtNTMyNyw2ICs1MzI3LDcgQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIAl7CisgCSAgaW50 IGkgPSBmaS50eXBlZGVmX2ZpZWxkX2xpc3RfY291bnQ7CisgCisrCSAgQUxMT0NBVEVfQ1BMVVNf U1RSVUNUX1RZUEUgKHR5cGUpOworIAkgIFRZUEVfVFlQRURFRl9GSUVMRF9BUlJBWSAodHlwZSkK KyAJICAgID0gVFlQRV9BTExPQyAodHlwZSwgc2l6ZW9mIChUWVBFX1RZUEVERUZfRklFTEQgKHR5 cGUsIDApKSAqIGkpOworIAkgIFRZUEVfVFlQRURFRl9GSUVMRF9DT1VOVCAodHlwZSkgPSBpOwoK ZGlmZiAtLWdpdCBhL2dkYi1iejYwNjE4NS1vYnN0YWNrLTFvZjUucGF0Y2ggYi9nZGItYno2MDYx ODUtb2JzdGFjay0xb2Y1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUyODc5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItYno2MDYxODUtb2JzdGFjay0xb2Y1LnBh dGNoCkBAIC0wLDAgKzEsMjE0IEBACitjb21taXQgNzhjMTQ0ZThjM2FlN2JiMzZkNjMyZjZiZmFh YWFkOWM5NzE5OWNlNgorQXV0aG9yOiBjbW9sbGVyIDxjbW9sbGVyPgorRGF0ZTogICBUdWUgQXBy IDIwIDIwOjIyOjA5IDIwMTAgKzAwMDAKKworICAgIFBSIDEwODY3CisgICAgKiBjcC12YWxwcmlu dC5jIChnbG9iYWwpOiBBZGRpbmcgbmV3IHN0YXRpYyBhcnJheSByZWN1cnNpb24KKyAgICBkZXRl Y3Rpb24gb2JzdGFjay4KKyAgICAoY3BfcHJpbnRfdmFsdWVfZmllbGRzLCBjcF9wcmludF9zdGF0 aWNfZmllbGQpOiBBZGRlZCBuZXcgc3RhdGljCisgICAgYXJyYXkgcmVjdXJzaW9uIGRldGVjdGlv biBjb2RlLgorICAgICogZ2RiLmNwL01ha2VmaWxlLmluICAoRVhFQ1VUQUJMRVMpOiBBZGRlZCBw cjEwNjg3CisgICAgKiBnZGIuY3AvcHIxMDY4Ny5jYzogTmV3IGZpbGUuCisgICAgKiBnZGIuY3Av cHIxMDY4Ny5leHA6IE5ldyBmaWxlCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9D aGFuZ2VMb2cKKyMjIC0xLDMgKzEsMTIgQEAKKysyMDEwLTA0LTIwICBDaHJpcyBNb2xsZXIgIDxj bW9sbGVyQHJlZGhhdC5jb20+CisrCQorKwlQUiAxMDg2NworKworKwkqIGNwLXZhbHByaW50LmMg KGdsb2JhbCk6IEFkZGluZyBuZXcgc3RhdGljIGFycmF5IHJlY3Vyc2lvbgorKwlkZXRlY3Rpb24g b2JzdGFjay4KKysJKGNwX3ByaW50X3ZhbHVlX2ZpZWxkcywgY3BfcHJpbnRfc3RhdGljX2ZpZWxk KTogQWRkZWQgbmV3IHN0YXRpYworKwlhcnJheSByZWN1cnNpb24gZGV0ZWN0aW9uIGNvZGUuCisr CisgMjAxMC0wNC0yMCAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5vcmc+CisgCisgCSog aTM4Ni1saW51eC10ZGVwLmMgKGkzODZfbGludXhfcmVnc2V0X3NlY3Rpb25zKTogU2l6ZSBvZiB0 aGUKK0luZGV4OiBnZGItNy4xL2dkYi9jcC12YWxwcmludC5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuMS5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTAtMDItMDggMTk6MDQ6MTYuMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMS9nZGIvY3AtdmFscHJpbnQuYwkyMDEwLTA2LTI4IDIwOjIxOjUz LjAwMDAwMDAwMCArMDIwMAorQEAgLTcxLDYgKzcxLDcgQEAgc2hvd19zdGF0aWNfZmllbGRfcHJp bnQgKHN0cnVjdCB1aV9maWxlIAorIAorIHN0YXRpYyBzdHJ1Y3Qgb2JzdGFjayBkb250X3ByaW50 X3ZiX29ic3RhY2s7Cisgc3RhdGljIHN0cnVjdCBvYnN0YWNrIGRvbnRfcHJpbnRfc3RhdG1lbV9v YnN0YWNrOworK3N0YXRpYyBzdHJ1Y3Qgb2JzdGFjayBkb250X3ByaW50X3N0YXRfYXJyYXlfb2Jz dGFjazsKKyAKKyBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9jcF92YWxwcmludCAodm9pZCk7Cisg CitAQCAtMTU1LDEyICsxNTYsMTcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlw ZSAqdHlwZQorIHsKKyAgIGludCBpLCBsZW4sIG5fYmFzZWNsYXNzZXM7CisgICBpbnQgZmllbGRz X3NlZW4gPSAwOworKyAgc3RhdGljIGludCBsYXN0X3NldF9yZWN1cnNlID0gLTE7CisgCisgICBD SEVDS19UWVBFREVGICh0eXBlKTsKKyAgIAorLSAgaWYgKHJlY3Vyc2UgPT0gMAorLSAgICAgICYm IG9ic3RhY2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaykgPiAwKQor LSAgICBvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaywgTlVMTCk7Cisr ICBpZiAocmVjdXJzZSA9PSAwKQorKyAgICB7CisrICAgICAgaWYgKG9ic3RhY2tfb2JqZWN0X3Np emUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaykgPiAwKQorKwlvYnN0YWNrX2ZyZWUgKCZk b250X3ByaW50X3N0YXRtZW1fb2JzdGFjaywgTlVMTCk7CisrICAgICAgaWYgKG9ic3RhY2tfb2Jq ZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaykgPiAwKQorKwlvYnN0YWNr X2ZyZWUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaywgTlVMTCk7CisrICAgIH0KKyAK KyAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgInsiKTsKKyAgIGxlbiA9IFRZUEVfTkZJRUxE UyAodHlwZSk7CitAQCAtMTgxLDEyICsxODcsMjAgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChz dHJ1Y3QgdHlwZSAqdHlwZQorICAgZWxzZQorICAgICB7CisgICAgICAgdm9pZCAqc3RhdG1lbV9v YnN0YWNrX3RvcCA9IE5VTEw7CisrICAgICAgdm9pZCAqc3RhdF9hcnJheV9vYnN0YWNrX3RvcCA9 IE5VTEw7CisgICAgICAgCisgICAgICAgaWYgKGRvbnRfcHJpbnRfc3RhdG1lbSA9PSAwKQorIAl7 CisgCSAgLyogU2V0IHRoZSBjdXJyZW50IHByaW50ZWQtc3RhdGljcyBzdGFjayB0b3AuICAqLwor IAkgIHN0YXRtZW1fb2JzdGFja190b3AKKyAJICAgID0gb2JzdGFja19uZXh0X2ZyZWUgKCZkb250 X3ByaW50X3N0YXRtZW1fb2JzdGFjayk7CisrCisrCSAgaWYgKGxhc3Rfc2V0X3JlY3Vyc2UgIT0g cmVjdXJzZSkKKysJICAgIHsKKysJICAgICAgc3RhdF9hcnJheV9vYnN0YWNrX3RvcAorKwkJPSBv YnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0YWNrKTsKKysJICAg ICAgbGFzdF9zZXRfcmVjdXJzZSA9IHJlY3Vyc2U7CisrCSAgICB9CisgCX0KKyAKKyAgICAgICBm b3IgKGkgPSBuX2Jhc2VjbGFzc2VzOyBpIDwgbGVuOyBpKyspCitAQCAtMzA3LDkgKzMyMSwxNiBA QCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCisgCisgICAgICAgaWYg KGRvbnRfcHJpbnRfc3RhdG1lbSA9PSAwKQorIAl7CistCSAgLyogSW4gZWZmZWN0LCBhIHBvcCBv ZiB0aGUgcHJpbnRlZC1zdGF0aWNzIHN0YWNrLiAgKi8KKyAJICBpZiAob2JzdGFja19vYmplY3Rf c2l6ZSAoJmRvbnRfcHJpbnRfc3RhdG1lbV9vYnN0YWNrKSA+IDApIAorIAkgICAgb2JzdGFja19m cmVlICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2ssIHN0YXRtZW1fb2JzdGFja190b3ApOwor KworKwkgIGlmIChsYXN0X3NldF9yZWN1cnNlICE9IHJlY3Vyc2UpCisrCSAgICB7CisrCSAgICAg IGlmIChvYnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2sp ID4gMCkgCisrCQlvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaywK KysJCQkgICAgICBzdGF0X2FycmF5X29ic3RhY2tfdG9wKTsKKysJICAgICAgbGFzdF9zZXRfcmVj dXJzZSA9IC0xOworKwkgICAgfQorIAl9CisgCisgICAgICAgaWYgKG9wdGlvbnMtPnByZXR0eSkK K0BAIC01MDgsNiArNTI5LDcgQEAgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAq dHlwZQorIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z KQorIHsKKyAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CisrICAKKyAgIGlmIChU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJVQ1QpCisgICAgIHsKKyAgICAgICBDT1JF X0FERFIgKmZpcnN0X2RvbnRfcHJpbnQ7CitAQCAtNTQyLDYgKzU2NCwzMiBAQCBjcF9wcmludF9z dGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlCisgICAgICAgcmV0dXJuOworICAgICB9Cisg CisrICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpCisrICAgIHsKKysg ICAgICBzdHJ1Y3QgdHlwZSAqKmZpcnN0X2RvbnRfcHJpbnQ7CisrICAgICAgaW50IGk7CisrICAg ICAgc3RydWN0IHR5cGUgKnRhcmdldF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7Cisr CisrICAgICAgZmlyc3RfZG9udF9wcmludAorKwk9IChzdHJ1Y3QgdHlwZSAqKikgb2JzdGFja19i YXNlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2spOworKyAgICAgIGkgPSBvYnN0YWNr X29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2spCisrCS8gc2l6ZW9m IChDT1JFX0FERFIpOworKworKyAgICAgIHdoaWxlICgtLWkgPj0gMCkKKysJeworKwkgIGlmICh0 YXJnZXRfdHlwZSA9PSBmaXJzdF9kb250X3ByaW50W2ldKQorKwkgICAgeworKwkgICAgICBmcHV0 c19maWx0ZXJlZCAoIjxzYW1lIGFzIHN0YXRpYyBtZW1iZXIgb2YgYW4gYWxyZWFkeSIKKysJCQkg ICAgICAiIHNlZW4gdHlwZT4iLAorKwkJCSAgICAgIHN0cmVhbSk7CisrCSAgICAgIHJldHVybjsK KysJICAgIH0KKysJfQorKworKyAgICAgIG9ic3RhY2tfZ3JvdyAoJmRvbnRfcHJpbnRfc3RhdF9h cnJheV9vYnN0YWNrLCAoY2hhciAqKSAmdGFyZ2V0X3R5cGUsCisrCQkgICAgc2l6ZW9mIChzdHJ1 Y3QgdHlwZSAqKSk7CisrICAgIH0KKysKKyAgIG9wdHMgPSAqb3B0aW9uczsKKyAgIG9wdHMuZGVy ZWZfcmVmID0gMDsKKyAgIHZhbF9wcmludCAodHlwZSwgdmFsdWVfY29udGVudHNfYWxsICh2YWwp LCAKK0BAIC02NzIsNiArNzIwLDcgQEAgU2hvdyBwcmludGluZyBvZiBvYmplY3QncyBkZXJpdmVk IHR5cGUgYgorIAkJCSAgIHNob3dfb2JqZWN0cHJpbnQsCisgCQkJICAgJnNldHByaW50bGlzdCwg JnNob3dwcmludGxpc3QpOworIAorKyAgb2JzdGFja19iZWdpbiAoJmRvbnRfcHJpbnRfc3RhdF9h cnJheV9vYnN0YWNrLCAzMiAqIHNpemVvZiAoQ09SRV9BRERSKSk7CisgICBvYnN0YWNrX2JlZ2lu ICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2ssIDMyICogc2l6ZW9mIChDT1JFX0FERFIpKTsK KyAgIG9ic3RhY2tfYmVnaW4gKCZkb250X3ByaW50X3ZiX29ic3RhY2ssIDMyICogc2l6ZW9mIChz dHJ1Y3QgdHlwZSAqKSk7CisgfQorSW5kZXg6IGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av cHIxMDY4Ny5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvcHIxMDY4 Ny5jYwkyMDEwLTA2LTI4IDIwOjIxOjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwyNCBA QAorK2NsYXNzIHZlYzIgCisreworKyAgcHVibGljOgorKyAgICB2ZWMyKCkgeyBfdlswXSA9IF92 WzFdID0gMDsgfQorKyAgICB2ZWMyKGludCB4LCBpbnQgeSkgeyBfdlswXSA9IHg7IF92WzFdID0g eTsgfQorKyAgICBzdGF0aWMgdmVjMiBheGlzWzJdOworKyAgICBzdGF0aWMgdmVjMiBheGlzNls2 XTsKKysgIHByaXZhdGU6CisrICAgIGludCBfdlsyXTsKKyt9OworKworK3ZlYzIgdmVjMjo6YXhp c1syXSA9IHsgdmVjMigxLDApLCB2ZWMyKDAsMSkgfTsKKyt2ZWMyIHZlYzI6OmF4aXM2WzZdID0g eyAKKysgIHZlYzIoMSwwKSwgdmVjMigwLDEpLAorKyAgdmVjMigyLDApLCB2ZWMyKDAsMiksCisr ICB2ZWMyKDMsMCksIHZlYzIoMCwzKSAKKyt9OworKworK2ludCBtYWluKGludCBhcmdjLCBjaGFy KmFyZ3ZbXSkKKyt7CisrICB2ZWMyIGE7CisrCisrICByZXR1cm4gMDsgIC8vIG1hcmtlcgorK30K K0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ByMTA2ODcuZXhwCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisr KysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9wcjEwNjg3LmV4cAkyMDEwLTA2LTI4IDIw OjIxOjUzLjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzMSBAQAorKyNDb3B5cmlnaHQgMjAx MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisrCisrc2V0IHRlc3RmaWxlIHByMTA2ODcKKytzZXQgc3JjZmlsZSAke3Rlc3Rm aWxlfS5jYworK2lmIFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR0ZXN0ZmlsZS5leHAgJHRlc3RmaWxl ICRzcmNmaWxlIHtkZWJ1ZyBjKyt9XSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1 bnRvX21haW5dIHRoZW4geworKyAgICBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIKKysgICAgcmV0 dXJuCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJtYXJrZXIi XQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXIiCisrCisrZ2RiX3Rlc3QgInAg YSIgIntzdGF0aWMgYXhpcyA9IHt7c3RhdGljIGF4aXMgPSA8c2FtZSBhcyBzdGF0aWMgbWVtYmVy IG9mIGFuIGFscmVhZHkuKiIKKysKCmRpZmYgLS1naXQgYS9nZGItYno2MDYxODUtb2JzdGFjay0y b2Y1LnBhdGNoIGIvZ2RiLWJ6NjA2MTg1LW9ic3RhY2stMm9mNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGIxY2I0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWJ6 NjA2MTg1LW9ic3RhY2stMm9mNS5wYXRjaApAQCAtMCwwICsxLDE2MyBAQAorY29tbWl0IGQ1NGY1 NjcxZTE5MGE1YzBjYThmZDFmZjA3MDM3MmJmMjBlYjQyYTgKK0F1dGhvcjogY21vbGxlciA8Y21v bGxlcj4KK0RhdGU6ICAgV2VkIEFwciAyMSAxNzozMzo1MSAyMDEwICswMDAwCisKKyAgICBQUiA5 MTY3CisgICAgKiBjcC12YWxwcmludC5jIChjcF9wcmludF92YWx1ZV9maWVsZHMpOiBSZXBsYWNl ZCBvYnN0YWNrX2Jhc2UoKQorICAgIG1ldGhvZCBvZiBwb3BwaW5nIHJlY3Vyc2lvbi1kZXRlY3Rp b24gc3RhY2sgd2l0aCBhIG1ldGhvZCBiYXNlZCBvbgorICAgIG9ic3RhY2tfb2JqZWN0X3NpemUo KS4KKyAgICAqIGdkYi5jcC9NYWtlZmlsZS5pbiAoRVhFQ1VUQUJMRVMpOiBBZGRlZCBwcjkxNjcu CisgICAgKiBnZGIuY3AvcHI5MTY3LmNjOiBOZXcgZmlsZS4KKyAgICAqIGdkYi5jcC9wcjkxNjcu ZXhwOiBOZXcgZmlsZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxv ZworIyMgLTEsMyArMSwxMCBAQAorKzIwMTAtMDQtMjEgIENocmlzIE1vbGxlciAgPGNtb2xsZXJA cmVkaGF0LmNvbT4KKysKKysJUFIgOTE2NworKwkqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50X3Zh bHVlX2ZpZWxkcyk6IFJlcGxhY2VkIG9ic3RhY2tfYmFzZSgpCisrICAgICAgICBtZXRob2Qgb2Yg cG9wcGluZyByZWN1cnNpb24tZGV0ZWN0aW9uIHN0YWNrIHdpdGggYSBtZXRob2QgYmFzZWQgb24K KysgICAgICAgIG9ic3RhY2tfb2JqZWN0X3NpemUoKS4KKysKKyAyMDEwLTA0LTIxICBQaWVycmUg TXVsbGVyICA8bXVsbGVyQGljcy51LXN0cmFzYmcuZnI+CisgCisgCVBSIHBhc2NhbC8xMTQ5Mi4K KyMjIC0zMTg0LDcgKzMxOTEsNyBAQAorIAlhZGRyX2JpdC4gIEFkanVzdCBMT0FEX0FERFIgc2ln biBmb3IgY3Jvc3MtYXJjaCBpbmZlcmlvcnMuCisgCisgMjAxMC0wMi0xNyAgVHJpc3RhbiBHaW5n b2xkICA8Z2luZ29sZEBhZGFjb3JlLmNvbT4KKy0JICAgIFBldHIgSGx1esOtbiA8cGV0ci5obHV6 aW5AZ21haWwuY29tPgorKwkgICAgUGV0ciBIbHV677+9biA8cGV0ci5obHV6aW5AZ21haWwuY29t PgorIAorIAkqIGF2ci10ZGVwLmMgKGF2cl9zY2FuX3Byb2xvZ3VlKTogQ29udmVydCBhbiBpZiBz dGF0ZW1lbnQgdG8gYQorIAlnZGJfYXNzZXJ0LiAgRml4IGluZm8tPnNpemUgZm9yIFNJRyBwcm9s b2d1ZS4KK0luZGV4OiBnZGItNy4xL2dkYi9jcC12YWxwcmludC5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuMS5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTAtMDYtMjggMjA6MjE6NTMuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvY3AtdmFscHJpbnQuYwkyMDEwLTA2LTI4IDIwOjIy OjE2LjAwMDAwMDAwMCArMDIwMAorQEAgLTE4NiwxNCArMTg2LDEzIEBAIGNwX3ByaW50X3ZhbHVl X2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKKyAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiPE5vIGRhdGEgZmllbGRzPiIpOworICAgZWxzZQorICAgICB7CistICAgICAgdm9pZCAqc3Rh dG1lbV9vYnN0YWNrX3RvcCA9IE5VTEw7CisrICAgICAgaW50IG9ic3RhY2tfaW5pdGlhbF9zaXpl ID0gMDsKKyAgICAgICB2b2lkICpzdGF0X2FycmF5X29ic3RhY2tfdG9wID0gTlVMTDsKKyAgICAg ICAKKyAgICAgICBpZiAoZG9udF9wcmludF9zdGF0bWVtID09IDApCisgCXsKKy0JICAvKiBTZXQg dGhlIGN1cnJlbnQgcHJpbnRlZC1zdGF0aWNzIHN0YWNrIHRvcC4gICovCistCSAgc3RhdG1lbV9v YnN0YWNrX3RvcAorLQkgICAgPSBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdG1l bV9vYnN0YWNrKTsKKysJICBvYnN0YWNrX2luaXRpYWxfc2l6ZSA9CisrCSAgICBvYnN0YWNrX29i amVjdF9zaXplICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2spOworIAorIAkgIGlmIChsYXN0 X3NldF9yZWN1cnNlICE9IHJlY3Vyc2UpCisgCSAgICB7CitAQCAtMzIxLDggKzMyMCwxOSBAQCBj cF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCisgCisgICAgICAgaWYgKGRv bnRfcHJpbnRfc3RhdG1lbSA9PSAwKQorIAl7CistCSAgaWYgKG9ic3RhY2tfb2JqZWN0X3NpemUg KCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaykgPiAwKSAKKy0JICAgIG9ic3RhY2tfZnJlZSAo JmRvbnRfcHJpbnRfc3RhdG1lbV9vYnN0YWNrLCBzdGF0bWVtX29ic3RhY2tfdG9wKTsKKysJICBp bnQgb2JzdGFja19maW5hbF9zaXplID0KKysgICAgICAgICAgIG9ic3RhY2tfb2JqZWN0X3NpemUg KCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjayk7CisrCisrCSAgaWYgKG9ic3RhY2tfZmluYWxf c2l6ZSA+IG9ic3RhY2tfaW5pdGlhbF9zaXplKSB7CisrCSAgICAvKiBJbiBlZmZlY3QsIGEgcG9w IG9mIHRoZSBwcmludGVkLXN0YXRpY3Mgc3RhY2suICAqLworKworKwkgICAgdm9pZCAqZnJlZV90 b19wdHIgPQorKwkgICAgICBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdG1lbV9v YnN0YWNrKSAtCisrCSAgICAgIChvYnN0YWNrX2ZpbmFsX3NpemUgLSBvYnN0YWNrX2luaXRpYWxf c2l6ZSk7CisrCisrCSAgICBvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFj aywKKysJCQkgIGZyZWVfdG9fcHRyKTsKKysJICB9CisgCisgCSAgaWYgKGxhc3Rfc2V0X3JlY3Vy c2UgIT0gcmVjdXJzZSkKKyAJICAgIHsKK0BAIC01NTUsNyArNTY1LDYgQEAgY3BfcHJpbnRfc3Rh dGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZQorICAgICAgIGFkZHIgPSB2YWx1ZV9hZGRyZXNz ICh2YWwpOworICAgICAgIG9ic3RhY2tfZ3JvdyAoJmRvbnRfcHJpbnRfc3RhdG1lbV9vYnN0YWNr LCAoY2hhciAqKSAmYWRkciwKKyAJCSAgICBzaXplb2YgKENPUkVfQUREUikpOworLQorICAgICAg IENIRUNLX1RZUEVERUYgKHR5cGUpOworICAgICAgIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAodHlw ZSwgdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbCksCisgCQkJICAgICB2YWx1ZV9jb250ZW50c19h bGwgKHZhbCksCitJbmRleDogZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9wcjkxNjcuY2MK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ByOTE2Ny5jYwkyMDEwLTA2 LTI4IDIwOjIyOjE2LjAwMDAwMDAwMCArMDIwMAorQEAgLTAsMCArMSwzNiBAQAorKyNpbmNsdWRl IDxpb3N0cmVhbT4KKysKKyt0ZW1wbGF0ZTx0eXBlbmFtZSBEQVRBPgorK3N0cnVjdCBBVEIKKyt7 CisrICAgIGludCBkYXRhOworKyAgICBBVEIoKSA6IGRhdGEoMCkge30KKyt9OworKworKworK3Rl bXBsYXRlPHR5cGVuYW1lIERBVEEsCisrCSB0eXBlbmFtZSBEZXJpdmVkVHlwZSA+CisrY2xhc3Mg QSA6IHB1YmxpYyBBVEI8REFUQT4KKyt7CisrcHVibGljOgorKyAgICBzdGF0aWMgRGVyaXZlZFR5 cGUgY29uc3QgREVGQVVMVF9JTlNUQU5DRTsKKyt9OworKworK3RlbXBsYXRlPHR5cGVuYW1lIERB VEEsIHR5cGVuYW1lIERlcml2ZWRUeXBlPgorK2NvbnN0IERlcml2ZWRUeXBlIEE8REFUQSwgRGVy aXZlZFR5cGU+OjpERUZBVUxUX0lOU1RBTkNFOworKworK2NsYXNzIEIgOiBwdWJsaWMgQTxpbnQs IEI+CisreworKyAgICAKKyt9OworKworK2ludCBtYWluKCkKKyt7CisrICAgIEIgYjsKKysgICAg Ly8gSWYgdGhpcyBpZi1ibG9jayBpcyByZW1vdmVkIHRoZW4gR0RCIHNoYWxsCisrICAgIC8vIG5v dCBpbmZpbml0ZWx5IHJlY3Vyc2Ugd2hlbiB0cnlpbmcgdG8gcHJpbnQgYi4KKysKKysgICAgcmV0 dXJuIDA7CQkvLyBtYXJrZXIKKyt9CisrCisrCitJbmRleDogZ2RiLTcuMS9nZGIvdGVzdHN1aXRl L2dkYi5jcC9wcjkxNjcuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5j cC9wcjkxNjcuZXhwCTIwMTAtMDYtMjggMjA6MjI6MTYuMDAwMDAwMDAwICswMjAwCitAQCAtMCww ICsxLDMxIEBACisrI0NvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzZXQgdGVzdGZpbGUgcHI5 MTY3Cisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytpZiBbcHJlcGFyZV9mb3JfdGVzdGlu ZyAkdGVzdGZpbGUuZXhwICR0ZXN0ZmlsZSAkc3JjZmlsZSB7ZGVidWcgYysrfV0geworKyAgICBy ZXR1cm4gLTEKKyt9CisrCisraWYgIVtydW50b19tYWluXSB0aGVuIHsKKysgICAgZmFpbCAiQ2Fu J3QgcnVuIHRvIG1haW4iCisrICAgIHJldHVybgorK30KKysKKytnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAibWFya2VyIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi bWFya2VyIgorKworK2dkYl90ZXN0ICJwIGIiICJ7PEE8aW50LCBCPj4gPSB7PEFUQjxpbnQ+PiA9 IHtkYXRhID0gMH0sIHN0YXRpYyBERUZBVUxUX0lOU1RBTkNFID0gPG9wdGltaXplZCBvdXQ+fSwg PE5vIGRhdGEgZmllbGRzPn0iCisrCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjA2MTg1LW9ic3RhY2st M29mNS5wYXRjaCBiL2dkYi1iejYwNjE4NS1vYnN0YWNrLTNvZjUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA5MmMwMAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejYwNjE4NS1vYnN0YWNrLTNvZjUucGF0Y2gKQEAgLTAsMCArMSw4NSBAQAorY29tbWl0IDQwN2Ni MTkyZGNhYzI2MDJhZWJhYTdlMjYyNDE5YWRiNTgwZWNjYTYKK0F1dGhvcjogY21vbGxlciA8Y21v bGxlcj4KK0RhdGU6ICAgVGh1IEFwciAyMiAyMDoxMjowNiAyMDEwICswMDAwCisKKyAgICAqIGNw LXZhbHByaW50LmMgKGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyk6IFJlcGxhY2VkIG9ic3RhY2tfYmFz ZSgpCisgICAgbWV0aG9kIG9mIHBvcHBpbmcgcmVjdXJzaW9uLWRldGVjdGlvbiBzdGFjayB3aXRo IGEgbWV0aG9kIGJhc2VkIG9uCisgICAgb2JzdGFja19vYmplY3Rfc2l6ZSgpLiAgKFNpbWlsYXIg dG8gdGhlIFBSOTE2NyBwYXRjaCBiZWxvdywgYnV0IGZvcgorICAgIHRoZSBzdGF0aWMgYXJyYXkg b2JzdGFjayByYXRoZXIgdGhhbiB0aGUgc3RhdGljIG1lbWJlciBvYnN0YWNrLikKKworIyMjIGEv Z2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSwxMCBAQAorKzIw MTAtMDQtMjIgIENocmlzIE1vbGxlciAgPGNtb2xsZXJAcmVkaGF0LmNvbT4KKysKKysJKiBjcC12 YWxwcmludC5jIChjcF9wcmludF92YWx1ZV9maWVsZHMpOiBSZXBsYWNlZCBvYnN0YWNrX2Jhc2Uo KQorKyAgICAgICAgbWV0aG9kIG9mIHBvcHBpbmcgcmVjdXJzaW9uLWRldGVjdGlvbiBzdGFjayB3 aXRoIGEgbWV0aG9kIGJhc2VkIG9uCisrICAgICAgICBvYnN0YWNrX29iamVjdF9zaXplKCkuICAo U2ltaWxhciB0byB0aGUgUFI5MTY3IHBhdGNoIGJlbG93LCBidXQgZm9yCisrCXRoZSBzdGF0aWMg YXJyYXkgb2JzdGFjayByYXRoZXIgdGhhbiB0aGUgc3RhdGljIG1lbWJlciBvYnN0YWNrLikKKysK KyAyMDEwLTA0LTIyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisgCisgCSogYW1k NjQtbGludXgtbmF0LmMgKGFtZDY0X2xpbnV4X2dyZWdzZXQ2NF9yZWdfb2Zmc2V0KTogUmVtb3Zl ZC4KKy0tLSBhL2dkYi9jcC12YWxwcmludC5jCisrKysgYi9nZGIvY3AtdmFscHJpbnQuYworQEAg LTE4NiwxOCArMTg2LDE4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUsCisgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIjxObyBkYXRhIGZpZWxkcz4iKTsKKyAgIGVsc2UKKyAgICAgeworLSAgICAgIGludCBvYnN0 YWNrX2luaXRpYWxfc2l6ZSA9IDA7CistICAgICAgdm9pZCAqc3RhdF9hcnJheV9vYnN0YWNrX3Rv cCA9IE5VTEw7CisrICAgICAgaW50IHN0YXRtZW1fb2JzdGFja19pbml0aWFsX3NpemUgPSAwOwor KyAgICAgIGludCBzdGF0X2FycmF5X29ic3RhY2tfaW5pdGlhbF9zaXplID0gMDsKKyAgICAgICAK KyAgICAgICBpZiAoZG9udF9wcmludF9zdGF0bWVtID09IDApCisgCXsKKy0JICBvYnN0YWNrX2lu aXRpYWxfc2l6ZSA9CisrCSAgc3RhdG1lbV9vYnN0YWNrX2luaXRpYWxfc2l6ZSA9CisgCSAgICBv YnN0YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0bWVtX29ic3RhY2spOworIAorIAkg IGlmIChsYXN0X3NldF9yZWN1cnNlICE9IHJlY3Vyc2UpCisgCSAgICB7CistCSAgICAgIHN0YXRf YXJyYXlfb2JzdGFja190b3AKKy0JCT0gb2JzdGFja19uZXh0X2ZyZWUgKCZkb250X3ByaW50X3N0 YXRfYXJyYXlfb2JzdGFjayk7CisrCSAgICAgIHN0YXRfYXJyYXlfb2JzdGFja19pbml0aWFsX3Np emUgPQorKwkJb2JzdGFja19vYmplY3Rfc2l6ZSAoJmRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0 YWNrKTsKKyAJICAgICAgbGFzdF9zZXRfcmVjdXJzZSA9IHJlY3Vyc2U7CisgCSAgICB9CisgCX0K K0BAIC0zMjMsMTIgKzMyMywxMiBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLAorIAkgIGludCBvYnN0YWNrX2ZpbmFsX3Np emUgPQorICAgICAgICAgICAgb2JzdGFja19vYmplY3Rfc2l6ZSAoJmRvbnRfcHJpbnRfc3RhdG1l bV9vYnN0YWNrKTsKKyAKKy0JICBpZiAob2JzdGFja19maW5hbF9zaXplID4gb2JzdGFja19pbml0 aWFsX3NpemUpIHsKKysJICBpZiAob2JzdGFja19maW5hbF9zaXplID4gc3RhdG1lbV9vYnN0YWNr X2luaXRpYWxfc2l6ZSkgeworIAkgICAgLyogSW4gZWZmZWN0LCBhIHBvcCBvZiB0aGUgcHJpbnRl ZC1zdGF0aWNzIHN0YWNrLiAgKi8KKyAKKyAJICAgIHZvaWQgKmZyZWVfdG9fcHRyID0KKyAJICAg ICAgb2JzdGFja19uZXh0X2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaykgLQorLQkg ICAgICAob2JzdGFja19maW5hbF9zaXplIC0gb2JzdGFja19pbml0aWFsX3NpemUpOworKwkgICAg ICAob2JzdGFja19maW5hbF9zaXplIC0gc3RhdG1lbV9vYnN0YWNrX2luaXRpYWxfc2l6ZSk7Cisg CisgCSAgICBvYnN0YWNrX2ZyZWUgKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaywKKyAJCQkg IGZyZWVfdG9fcHRyKTsKK0BAIC0zMzYsOSArMzM2LDE4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxk cyAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUsCisgCisgCSAgaWYg KGxhc3Rfc2V0X3JlY3Vyc2UgIT0gcmVjdXJzZSkKKyAJICAgIHsKKy0JICAgICAgaWYgKG9ic3Rh Y2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaykgPiAwKSAKKy0J CW9ic3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0YWNrLAorLQkJCSAgICAg IHN0YXRfYXJyYXlfb2JzdGFja190b3ApOworKwkgICAgICBpbnQgb2JzdGFja19maW5hbF9zaXpl ID0KKysJCW9ic3RhY2tfb2JqZWN0X3NpemUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFj ayk7CisrCSAgICAgIAorKwkgICAgICBpZiAob2JzdGFja19maW5hbF9zaXplID4gc3RhdF9hcnJh eV9vYnN0YWNrX2luaXRpYWxfc2l6ZSkKKysJCXsKKysJCSAgdm9pZCAqZnJlZV90b19wdHIgPQor KwkJICAgIG9ic3RhY2tfbmV4dF9mcmVlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2sp IC0KKysJCSAgICAob2JzdGFja19maW5hbF9zaXplIC0gc3RhdF9hcnJheV9vYnN0YWNrX2luaXRp YWxfc2l6ZSk7CisrCisrCQkgIG9ic3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdF9hcnJheV9v YnN0YWNrLAorKwkJCQlmcmVlX3RvX3B0cik7CisrCQl9CisgCSAgICAgIGxhc3Rfc2V0X3JlY3Vy c2UgPSAtMTsKKyAJICAgIH0KKyAJfQoKZGlmZiAtLWdpdCBhL2dkYi1iejYwNjE4NS1vYnN0YWNr LTRvZjUucGF0Y2ggYi9nZGItYno2MDYxODUtb2JzdGFjay00b2Y1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNTNhMmIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt Yno2MDYxODUtb2JzdGFjay00b2Y1LnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK2NvbW1pdCA3NDQ3 MzU1NTBkNGE0ZmQ2ZDRiZTQwNzc2MDY5ZDc5OWRjYTVlZTM5CitBdXRob3I6IFVscmljaCBXZWln YW5kIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgorRGF0ZTogICBNb24gSnVuIDE0IDE2OjA5OjU1IDIw MTAgKzAwMDAKKworICAgIAkqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50X3N0YXRpY19maWVsZCk6 IE1lbWJlcnMgb2YKKyAgICAJZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2sgYXJlIG9mIHR5 cGUgInN0cnVjdCB0eXBlICoiLgorICAgIAkoX2luaXRpYWxpemVfY3BfdmFscHJpbnQpOiBMaWtl d2lzZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEs NSArMSwxMSBAQAorIDIwMTAtMDYtMTQgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJt LmNvbT4KKyAKKysJKiBjcC12YWxwcmludC5jIChjcF9wcmludF9zdGF0aWNfZmllbGQpOiBNZW1i ZXJzIG9mCisrCWRvbnRfcHJpbnRfc3RhdF9hcnJheV9vYnN0YWNrIGFyZSBvZiB0eXBlICJzdHJ1 Y3QgdHlwZSAqIi4KKysJKF9pbml0aWFsaXplX2NwX3ZhbHByaW50KTogTGlrZXdpc2UuCisrCisr MjAxMC0wNi0xNCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgorKworIAkq IGZyYW1lLmMgKGZyYW1lX3JlZ2lzdGVyX3Vud2luZCk6IERvIG5vdCBhY2Nlc3MgY29udGVudHMK KyAJb2YgIm9wdGltaXplZCBvdXQiIHVud291bmQgcmVnaXN0ZXIgdmFsdWUuCisgCistLS0gYS9n ZGIvY3AtdmFscHJpbnQuYworKysrIGIvZ2RiL2NwLXZhbHByaW50LmMKK0BAIC02MTUsNyArNjE1 LDcgQEAgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgICAgICBm aXJzdF9kb250X3ByaW50CisgCT0gKHN0cnVjdCB0eXBlICoqKSBvYnN0YWNrX2Jhc2UgKCZkb250 X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjayk7CisgICAgICAgaSA9IG9ic3RhY2tfb2JqZWN0X3Np emUgKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaykKKy0JLyBzaXplb2YgKENPUkVfQURE Uik7CisrCS8gc2l6ZW9mIChzdHJ1Y3QgdHlwZSAqKTsKKyAKKyAgICAgICB3aGlsZSAoLS1pID49 IDApCisgCXsKK0BAIC03NjQsNyArNzY0LDcgQEAgU2hvdyBwcmludGluZyBvZiBvYmplY3QncyBk ZXJpdmVkIHR5cGUgYmFzZWQgb24gdnRhYmxlIGluZm8uIiksIE5VTEwsCisgCQkJICAgc2hvd19v YmplY3RwcmludCwKKyAJCQkgICAmc2V0cHJpbnRsaXN0LCAmc2hvd3ByaW50bGlzdCk7CisgCist ICBvYnN0YWNrX2JlZ2luICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2ssIDMyICogc2l6 ZW9mIChDT1JFX0FERFIpKTsKKysgIG9ic3RhY2tfYmVnaW4gKCZkb250X3ByaW50X3N0YXRfYXJy YXlfb2JzdGFjaywgMzIgKiBzaXplb2YgKHN0cnVjdCB0eXBlICopKTsKKyAgIG9ic3RhY2tfYmVn aW4gKCZkb250X3ByaW50X3N0YXRtZW1fb2JzdGFjaywgMzIgKiBzaXplb2YgKENPUkVfQUREUikp OworICAgb2JzdGFja19iZWdpbiAoJmRvbnRfcHJpbnRfdmJfb2JzdGFjaywgMzIgKiBzaXplb2Yg KHN0cnVjdCB0eXBlICopKTsKKyB9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NjA2MTg1LW9ic3RhY2st NW9mNS5wYXRjaCBiL2dkYi1iejYwNjE4NS1vYnN0YWNrLTVvZjUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDE3MWU1NgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1i ejYwNjE4NS1vYnN0YWNrLTVvZjUucGF0Y2gKQEAgLTAsMCArMSwyMDIgQEAKK2NvbW1pdCA0N2M4 Yzc2NGE5YmU2ZDAyM2VjYTQ1MDMzNmU2ZDlkZTE2OTcwZmMwCitBdXRob3I6IEphbiBLcmF0b2No dmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogICBNb24gSnVuIDI4IDE2OjU5 OjQzIDIwMTAgKzAwMDAKKworICAgIGdkYi8KKyAgICAJKiBjcC12YWxwcmludC5jIChjcF9wcmlu dF92YWx1ZV9maWVsZHMpIDxyZWN1cnNlID09IDA+OiBDYWxsCisgICAgCW9ic3RhY2tfYmVnaW4g YWZ0ZXIgZWFjaCBvYnN0YWNrX2ZyZWUuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS8KKyAgICAJ KiBnZGIuY3Avc3RhdGljLXByaW50LXF1aXQuZXhwLCBnZGIuY3Avc3RhdGljLXByaW50LXF1aXQu Y2M6IE5ldy4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMg LTEsMyArMSw4IEBACisrMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPgorKworKwkqIGNwLXZhbHByaW50LmMgKGNwX3ByaW50X3ZhbHVlX2ZpZWxk cykgPHJlY3Vyc2UgPT0gMD46IENhbGwKKysJb2JzdGFja19iZWdpbiBhZnRlciBlYWNoIG9ic3Rh Y2tfZnJlZS4KKysKKyAyMDEwLTA2LTI3ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Cisg CisgCSogdmFsdWUuYyAodmFsdWVfc3RhdGljX2ZpZWxkKTogVXNlIGBzd2l0Y2gnIGluc3RlYWQg b2YgYGlmJy4KKyMjIC0xMiwyNyArMTcsMjcgQEAKKyAKKyAyMDEwLTA2LTI1ICBQYXVsIEhpbGZp bmdlciAgPGhpbGZpbmdlckBhZGFjb3JlLmNvbT4KKyAKKy0gICAgICAgICogZGVmcy5oIChtYWtl X2NvbW1hbmRfc3RhdHNfY2xlYW51cCk6IERlY2xhcmUuCistICAgICAgICAoc2V0X2Rpc3BsYXlf dGltZSk6IERlY2xhcmUuCistICAgICAgICAoc2V0X2Rpc3BsYXlfc3BhY2UpOiBEZWNsYXJlLgor LSAgICAgICAgKiBldmVudC10b3AuYyAoY29tbWFuZF9oYW5kbGVyKTogVXNlIG1ha2VfY29tbWFu ZF9zdGF0c19jbGVhbnVwLgorLSAgICAgICAgKiBtYWluLmMgKGRpc3BsYXlfdGltZSwgZGlzcGxh eV9zcGFjZSk6IE1vdmUgZGVmaW5pdGlvbnMgdG8gdXRpbHMuYy4KKy0gICAgICAgIChjYXB0dXJl ZF9tYWluKTogVXNlIG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwIHRvIGdldCBzdGFydC11cAor LSAgICAgICAgc3RhdGlzdGljcy4KKy0gICAgICAgIFVzZSBzZXRfZGlzcGxheV90aW1lIGFuZCBz ZXRfZGlzcGxheV9zcGFjZSBmb3IgcHJvY2Vzc2luZyBPUFRfU1RBVElTVElDUworLSAgICAgICAg Y2FzZS4KKy0gICAgICAgICogbWFpbnQuYyAobWFpbnRlbmFuY2VfdGltZV9kaXNwbGF5KTogVXNl IHNldF9kaXNwbGF5X3RpbWUuCistICAgICAgICAobWFpbnRlbmFuY2Vfc3BhY2VfZGlzcGxheSk6 IFVzZSBzZXRfZGlzcGxheV9zcGFjZS4KKy0gICAgICAgICogdG9wLmMgKGV4ZWN1dGVfY29tbWFu ZCk6IFJlbW92ZSBvYnNvbGV0ZSAnbWFpbnQgdGltZScgY29kZS4KKy0gICAgICAgIChjb21tYW5k X2xvb3ApOiBVc2UgbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAuCistICAgICAgICAqIHV0aWxz LmMgKHN0cnVjdCBjbWRfc3RhdHMpOiBTdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgaW5pdGlhbCB0aW1l CistICAgICAgICBhbmQgc3BhY2UgdXNhZ2UuCistICAgICAgICAoZGlzcGxheV90aW1lLCBkaXNw bGF5X3NwYWNlKTogTW92ZSBkZWZpbml0aW9ucyBoZXJlIGZyb20gdXRpbHMuYy4KKy0gICAgICAg IChzZXRfZGlzcGxheV90aW1lKTogTmV3IGZ1bmN0aW9uLgorLSAgICAgICAgKHNldF9kaXNwbGF5 X3NwYWNlKTogTmV3IGZ1bmN0aW9uLgorLSAgICAgICAgKG1ha2VfY29tbWFuZF9zdGF0c19jbGVh bnVwKTogTmV3IGZ1bmN0aW9uLgorLSAgICAgICAgKHJlcG9ydF9jb21tYW5kX3N0YXRzKTogTmV3 IGF1eGlsaWFyeSBmdW5jdGlvbiBmb3IKKy0gICAgICAgIG1ha2VfY29tbWFuZF9zdGF0c19jbGVh bnVwLgorKwkqIGRlZnMuaCAobWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXApOiBEZWNsYXJlLgor Kwkoc2V0X2Rpc3BsYXlfdGltZSk6IERlY2xhcmUuCisrCShzZXRfZGlzcGxheV9zcGFjZSk6IERl Y2xhcmUuCisrCSogZXZlbnQtdG9wLmMgKGNvbW1hbmRfaGFuZGxlcik6IFVzZSBtYWtlX2NvbW1h bmRfc3RhdHNfY2xlYW51cC4KKysJKiBtYWluLmMgKGRpc3BsYXlfdGltZSwgZGlzcGxheV9zcGFj ZSk6IE1vdmUgZGVmaW5pdGlvbnMgdG8gdXRpbHMuYy4KKysJKGNhcHR1cmVkX21haW4pOiBVc2Ug bWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAgdG8gZ2V0IHN0YXJ0LXVwCisrCXN0YXRpc3RpY3Mu CisrCVVzZSBzZXRfZGlzcGxheV90aW1lIGFuZCBzZXRfZGlzcGxheV9zcGFjZSBmb3IgcHJvY2Vz c2luZyBPUFRfU1RBVElTVElDUworKwljYXNlLgorKwkqIG1haW50LmMgKG1haW50ZW5hbmNlX3Rp bWVfZGlzcGxheSk6IFVzZSBzZXRfZGlzcGxheV90aW1lLgorKwkobWFpbnRlbmFuY2Vfc3BhY2Vf ZGlzcGxheSk6IFVzZSBzZXRfZGlzcGxheV9zcGFjZS4KKysJKiB0b3AuYyAoZXhlY3V0ZV9jb21t YW5kKTogUmVtb3ZlIG9ic29sZXRlICdtYWludCB0aW1lJyBjb2RlLgorKwkoY29tbWFuZF9sb29w KTogVXNlIG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwLgorKwkqIHV0aWxzLmMgKHN0cnVjdCBj bWRfc3RhdHMpOiBTdHJ1Y3R1cmUgZm9yIHN0b3JpbmcgaW5pdGlhbCB0aW1lCisrCWFuZCBzcGFj ZSB1c2FnZS4KKysJKGRpc3BsYXlfdGltZSwgZGlzcGxheV9zcGFjZSk6IE1vdmUgZGVmaW5pdGlv bnMgaGVyZSBmcm9tIHV0aWxzLmMuCisrCShzZXRfZGlzcGxheV90aW1lKTogTmV3IGZ1bmN0aW9u LgorKwkoc2V0X2Rpc3BsYXlfc3BhY2UpOiBOZXcgZnVuY3Rpb24uCisrCShtYWtlX2NvbW1hbmRf c3RhdHNfY2xlYW51cCk6IE5ldyBmdW5jdGlvbi4KKysJKHJlcG9ydF9jb21tYW5kX3N0YXRzKTog TmV3IGF1eGlsaWFyeSBmdW5jdGlvbiBmb3IKKysJbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAu CisgCisgMjAxMC0wNi0yNSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgor IAorIyMgLTYxMDMsNyArNjEwOCw3IEBACisgCisgCVBSIGdkYi85MDY3CisgCSogY3AtdmFscHJp bnQuYyAoY3BfcHJpbnRfdmFsdWVfZmllbGRzKSBGaXggdXNlIG9mIG9ic3RhY2tzLgorLQljcF9w cmludF9zdGF0aWNfZmllbGQpICBGaXggdXNlIG9mIG9ic3RhY2tzLgorKwkoY3BfcHJpbnRfc3Rh dGljX2ZpZWxkKSAgRml4IHVzZSBvZiBvYnN0YWNrcy4KKyAKKyAyMDEwLTAyLTA4ICBQZWRybyBB bHZlcyAgPHBlZHJvQGNvZGVzb3VyY2VyeS5jb20+CisgCistLS0gYS9nZGIvY3AtdmFscHJpbnQu YworKysrIGIvZ2RiL2NwLXZhbHByaW50LmMKK0BAIC0xNjQsMTAgKzE2NCwxOSBAQCBjcF9wcmlu dF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBl LAorICAgCisgICBpZiAocmVjdXJzZSA9PSAwKQorICAgICB7CisrICAgICAgLyogQW55IG9iamVj dCBjYW4gYmUgbGVmdCBvbiBvYnN0YWNrcyBvbmx5IGR1cmluZyBhbiB1bmV4cGVjdGVkIGVycm9y LiAgKi8KKysKKyAgICAgICBpZiAob2JzdGFja19vYmplY3Rfc2l6ZSAoJmRvbnRfcHJpbnRfc3Rh dG1lbV9vYnN0YWNrKSA+IDApCistCW9ic3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdG1lbV9v YnN0YWNrLCBOVUxMKTsKKysJeworKwkgIG9ic3RhY2tfZnJlZSAoJmRvbnRfcHJpbnRfc3RhdG1l bV9vYnN0YWNrLCBOVUxMKTsKKysJICBvYnN0YWNrX2JlZ2luICgmZG9udF9wcmludF9zdGF0bWVt X29ic3RhY2ssIDMyICogc2l6ZW9mIChDT1JFX0FERFIpKTsKKysJfQorICAgICAgIGlmIChvYnN0 YWNrX29iamVjdF9zaXplICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2spID4gMCkKKy0J b2JzdGFja19mcmVlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2ssIE5VTEwpOworKwl7 CisrCSAgb2JzdGFja19mcmVlICgmZG9udF9wcmludF9zdGF0X2FycmF5X29ic3RhY2ssIE5VTEwp OworKwkgIG9ic3RhY2tfYmVnaW4gKCZkb250X3ByaW50X3N0YXRfYXJyYXlfb2JzdGFjaywKKysJ CQkgMzIgKiBzaXplb2YgKHN0cnVjdCB0eXBlICopKTsKKysJfQorICAgICB9CisgCisgICBmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICJ7Iik7CisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsNyBAQAorKzIwMTAt MDYtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJ KiBnZGIuY3Avc3RhdGljLXByaW50LXF1aXQuZXhwLCBnZGIuY3Avc3RhdGljLXByaW50LXF1aXQu Y2M6IE5ldy4KKysKKyAyMDEwLTA2LTI4ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Cisg CisgCSogZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cCAocmVhY2gpOiBSZWxheCBleHBlY3RlZCBv dXRwdXQgYSBiaXQuCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9z dGF0aWMtcHJpbnQtcXVpdC5jYworQEAgLTAsMCArMSwzMiBAQAorKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMTAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworKworK2NsYXNzIEQKKysgIHsKKysgIHB1YmxpYzoKKysgICAg aW50IGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmc7Cisr ICB9OworKworK2NsYXNzIEMKKysgIHsKKysgIHB1YmxpYzoKKysgICAgaW50IGxvb29vb29vb29v b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmc7CisrICAgIHN0YXRpYyBEIGZp ZWxkOworKyAgfTsKKysKKytEIEM6OmZpZWxkOworK0MgYzsKKy0tLSAvZGV2L251bGwKKysrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3N0YXRpYy1wcmludC1xdWl0LmV4cAorQEAgLTAsMCArMSw1 MCBAQAorKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lmIHsgW3NraXBfY3BsdXNfdGVz dHNdIH0geyBjb250aW51ZSB9CisrCisrc2V0IHRlc3RmaWxlIHN0YXRpYy1wcmludC1xdWl0Cisr c2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytzZXQgZXhlY3V0YWJsZSAkdGVzdGZpbGUubwor K3NldCBvYmpmaWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorKworK2lmIHsg W2dkYl9jb21waWxlICRzcmNkaXIvJHN1YmRpci8kc3JjZmlsZSAkb2JqZmlsZSBvYmplY3Qge2Rl YnVnIGMrK31dICE9ICIifSB7CisrICAgIHVudGVzdGVkICR7dGVzdGZpbGV9LmV4cAorKyAgICBy ZXR1cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorKworK2dkYl90ZXN0 ICJzZXQgd2lkdGggODAiCisrZ2RiX3Rlc3QgInNldCBoZWlnaHQgMiIKKysKKytzZXQgdGVzdCAi cHJpbnQgYyIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAiID0g XHtsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nID0gMCwg c3RhdGljIGZpZWxkID0gXHtcclxuLS0tVHlwZSA8cmV0dXJuPiB0byBjb250aW51ZSwgb3IgcSA8 cmV0dXJuPiB0byBxdWl0LS0tJCIgeworKwlwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICIg dG8gcXVpdC0tLSQiIHsKKysJZmFpbCAkdGVzdAorKwlyZXR1cm4gLTEKKysgICAgfQorK30KKysK KytnZGJfdGVzdCAicSIgIi4qIgorKworKyMgTm93IHRoZSBvYnN0YWNrIGlzIHVuaW5pdGlhbGl6 ZWQuICBFeGNlcmNpc2UgaXQuCisrCisrZ2RiX3Rlc3QgInNldCBwYWdpbmF0aW9uIG9mZiIKKytn ZGJfdGVzdCAicHJpbnQgYyIgIi4qIiAiZmlyc3QgcHJpbnQiCisrZ2RiX3Rlc3QgInByaW50IGMi ICIuKiIgInNlY29uZCBwcmludCIKCmRpZmYgLS1naXQgYS9nZGItYno2MDY2NjAtcHJpbnQtb2Jq ZWN0LW5vbnZpcnR1YWwucGF0Y2ggYi9nZGItYno2MDY2NjAtcHJpbnQtb2JqZWN0LW5vbnZpcnR1 YWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1MjAzOAotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1iejYwNjY2MC1wcmludC1vYmplY3Qtbm9udmlydHVhbC5wYXRj aApAQCAtMCwwICsxLDEwNiBAQAorY29tbWl0IGJiNjA0ZjllNzBkZTUxNWIxM2UyYTkzNWQ4YWQ5 ZDJmYjAyOTA4NDkKK0F1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+CitEYXRlOiAgIE1vbiBKdW4gMjggMjA6MTI6NTIgMjAxMCArMDAwMAorCisgICAgZ2Ri LworICAgIAlGaXggbW9kaWZpY2F0aW9uIG9mIGNwbHVzX3N0cnVjdF9kZWZhdWx0LgorICAgIAkq IGR3YXJmMnJlYWQuYyAoZHdhcmYyX2FkZF9tZW1iZXJfZm4pIDxubyBEV19BVF92dGFibGVfZWxl bV9sb2NhdGlvbj46CisgICAgCUNhbGwgQUxMT0NBVEVfQ1BMVVNfU1RSVUNUX1RZUEUuCis8cmVt b3ZlZD4KKyAgICAJKiBnZGJ0eXBlcy5jIChjcGx1c19zdHJ1Y3RfZGVmYXVsdCk6IE5ldyBlbXB0 eSBpbml0aWFsaXplciwgY29tbWVudCBpdC4KKzwvcmVtb3ZlZD4KKyAgICAKKyAgICBnZGIvdGVz dHN1aXRlLworICAgIAkqIGdkYi5jcC92aXJ0YmFzZS5jYyAoY2xhc3MgUlRUSV9iYXNlLCBjbGFz cyBSVFRJX2RhdGEpCisgICAgCShtYWluKSA8cnR0aV9kYXRhPjogTmV3LgorICAgIAkqIGdkYi5j cC92aXJ0YmFzZS5leHAgKHByaW50IHJ0dGlfZGF0YSk6IE5ldy4KKworIyMjIGEvZ2RiL0NoYW5n ZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsMyArMSwxMCBAQAorKzIwMTAtMDYtMjgg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJRml4IG1v ZGlmaWNhdGlvbiBvZiBjcGx1c19zdHJ1Y3RfZGVmYXVsdC4KKysJKiBkd2FyZjJyZWFkLmMgKGR3 YXJmMl9hZGRfbWVtYmVyX2ZuKSA8bm8gRFdfQVRfdnRhYmxlX2VsZW1fbG9jYXRpb24+OgorKwlD YWxsIEFMTE9DQVRFX0NQTFVTX1NUUlVDVF9UWVBFLgorKwkqIGdkYnR5cGVzLmMgKGNwbHVzX3N0 cnVjdF9kZWZhdWx0KTogTmV3IGVtcHR5IGluaXRpYWxpemVyLCBjb21tZW50IGl0LgorKworIyMj IGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n CisjIyAtMSw0ICsxLDEwIEBACisrMjAxMC0wNi0yOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgorKworKwkqIGdkYi5jcC92aXJ0YmFzZS5jYyAoY2xhc3MgUlRU SV9iYXNlLCBjbGFzcyBSVFRJX2RhdGEpCisrCShtYWluKSA8cnR0aV9kYXRhPjogTmV3LgorKwkq IGdkYi5jcC92aXJ0YmFzZS5leHAgKHByaW50IHJ0dGlfZGF0YSk6IE5ldy4KKysKKyMjIy0tLSBh L2dkYi9nZGJ0eXBlcy5jCisjIyMrKysgYi9nZGIvZ2RidHlwZXMuYworIyMjQEAgLTE3MzMsNyAr MTczMyw4IEBAIGNoZWNrX3N0dWJfbWV0aG9kX2dyb3VwIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IG1ldGhvZF9pZCkKKyMjIyAgICAgfQorIyMjIH0KKyMjIyAKKyMjIy1jb25zdCBzdHJ1Y3QgY3Bs dXNfc3RydWN0X3R5cGUgY3BsdXNfc3RydWN0X2RlZmF1bHQ7CisjIyMrLyogRW5zdXJlIGl0IGlz IGluIC5yb2RhdGEgKGlmIGF2YWlsYWJsZSkgYnkgd29ya2Fyb3VuZGluZyBHQ0MgUFIgNDQ2OTAu ICAqLworIyMjK2NvbnN0IHN0cnVjdCBjcGx1c19zdHJ1Y3RfdHlwZSBjcGx1c19zdHJ1Y3RfZGVm YXVsdCA9IHsgfTsKKyMjIyAKKyMjIyB2b2lkCisjIyMgYWxsb2NhdGVfY3BsdXNfc3RydWN0X3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlKQorSW5kZXg6IGdkYi03LjEvZ2RiL2R3YXJmMnJlYWQuYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTAtMDYtMjkg MTg6MjY6NDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMS9nZGIvZHdhcmYycmVhZC5jCTIw MTAtMDYtMjkgMTg6Mzk6NDMuMDAwMDAwMDAwICswMjAwCitAQCAtNTQwNCw2ICs1NDA0LDcgQEAg ZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvIAorIAkgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywKKyAJCSAgICAgXygiTWVtYmVyIGZ1bmN0aW9uIFwiJXNcIiAo b2Zmc2V0ICVkKSBpcyB2aXJ0dWFsIGJ1dCB0aGUgdnRhYmxlIG9mZnNldCBpcyBub3Qgc3BlY2lm aWVkIiksCisgCQkgICAgIGZpZWxkbmFtZSwgZGllLT5vZmZzZXQpOworKwkgIEFMTE9DQVRFX0NQ TFVTX1NUUlVDVF9UWVBFICh0eXBlKTsKKyAJICBUWVBFX0NQTFVTX0RZTkFNSUMgKHR5cGUpID0g MTsKKyAJfQorICAgICB9CitJbmRleDogZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dkYi5jcC92aXJ0 YmFzZS5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5j cC92aXJ0YmFzZS5jYwkyMDEwLTAyLTAzIDAwOjQwOjI4LjAwMDAwMDAwMCArMDEwMAorKysrIGdk Yi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmlydGJhc2UuY2MJMjAxMC0wNi0yOSAxODozOTo0 My4wMDAwMDAwMDAgKzAyMDAKK0BAIC03NCw4ICs3NCwxOSBAQCBwdWJsaWM6CisgICB2aXJ0dWFs IHZvaWQgYigpIHt9CisgfTsKKyAKKytjbGFzcyBSVFRJX2Jhc2UKKyt7CisrcHVibGljOgorKyAg dmlydHVhbCB+UlRUSV9iYXNlKCkge30KKyt9OworIAorLQorK2NsYXNzIFJUVElfZGF0YQorK3sK KytwdWJsaWM6CisrICBSVFRJX2Jhc2UgYmFzZTsKKysgIGludCBkYXRhOworKyAgUlRUSV9kYXRh KCkgOiBkYXRhKDEpIHt9CisrfTsKKyAKKyBpbnQgbWFpbigpIHsKKyAgIHBoOjpEZXJpdmVkIHRz dDsKK0BAIC04NCw2ICs5NSw3IEBAIGludCBtYWluKCkgeworIAorICAgRSAqZSA9IG5ldyBFOwor ICAgUkhCICpiID0gbmV3IFJIQygpOworKyAgUlRUSV9kYXRhIHJ0dGlfZGF0YTsKKyAKKyAgIHJl dHVybiAwOwkJCS8vIGJyZWFrcG9pbnQgMworIH0KK0luZGV4OiBnZGItNy4xL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL3ZpcnRiYXNlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5jcC92aXJ0YmFzZS5leHAJMjAxMC0wMi0wNCAyMjowNDozMC4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy4xL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZpcnRiYXNlLmV4cAky MDEwLTA2LTI5IDE4OjM5OjU2LjAwMDAwMDAwMCArMDIwMAorQEAgLTYwLDMgKzYwLDggQEAgZ2Ri X3Rlc3QgInByaW50ICooRCAqKSBlIiAiID0gezxDPiA9IHt2IAorICMgaHR0cHM6Ly9idWd6aWxs YS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01NjA3NDEKKyBnZGJfdGVzdCAic2V0IHByaW50 IG9iamVjdCBvbiIgIiIKKyBnZGJfdGVzdCAicHJpbnQveCBiLT5tQSIgIiA9IDB4YWFhYWFhYWEi CisrCisrIyBBIHJlZ3Jlc3Npb24gdGVzdCByZXBvcnRlZCB0byBSZWQgSGF0IGJ1Z3ppbGxhLCBz ZWU6CisrIyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTYwNjY2 MAorKyMgYHNldCBwcmludCBvYmplY3Qgb24nIGlzIGV4cGVjdGVkLgorK2dkYl90ZXN0ICJwcmlu dCBydHRpX2RhdGEiICIgPSAuKiwgZGF0YSA9IDFcfSIKCmRpZmYgLS1naXQgYS9nZGItaW5mY2Fs bC1zcC11bmRlcmZsb3cucGF0Y2ggYi9nZGItaW5mY2FsbC1zcC11bmRlcmZsb3cucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYwMmE0ZgotLS0gL2Rldi9udWxsCisr KyBiL2dkYi1pbmZjYWxsLXNwLXVuZGVyZmxvdy5wYXRjaApAQCAtMCwwICsxLDgxIEBACitodHRw Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMi9tc2cwMDUxNS5odG1sCitT dWJqZWN0OiBbcGF0Y2hdIGluZmNhbGw6IFJlbW92ZSBnZGJfYXNzZXJ0ICgkc3Agb3ZlcmZsb3cp CisKK0hpLAorCitzZXQgJHNwPTAKK2NhbGwgc29tZXRoaW5nKCkKKy0+CisuLi8uLi9nZGIvaW5m Y2FsbC5jOjUyMTogaW50ZXJuYWwtZXJyb3I6IGNhbGxfZnVuY3Rpb25fYnlfaGFuZDogQXNzZXJ0 aW9uCitgKGdkYmFyY2hfaW5uZXJfdGhhbiAoZ2RiYXJjaCwgMSwgMikgJiYgc3AgPD0gb2xkX3Nw KSB8fCAoZ2RiYXJjaF9pbm5lcl90aGFuCisoZ2RiYXJjaCwgMiwgMSkgJiYgc3AgPj0gb2xkX3Nw KScgZmFpbGVkLgorCithcyAkc3AgLSBmcmFtZSA9PSAweGZmZmZzbXRoIHdoaWNoIGlzIG5vdCBs b3dlciB0aGFuICRzcC4KKworSXQgbXVzdCBub3QgYmUgZ2RiX2Fzc2VydCgpLiAgSXQgY2FuIGJl IGFuIGVycm9yKCkgYnV0IEkgbGVmdCBpdCBqdXN0IHRvIGRvOgorCShnZGIpIHNldCAkc3A9MAor CShnZGIpIGNhbGwgZG91YmxlaXQgKDEpCisJQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVz cyAweGZmZmZmZmZmZmZmZmZmNzgKKwkoZ2RiKSBzZXQgJHNwPS0xCisJKGdkYikgY2FsbCBkb3Vi bGVpdCAoMSkKKwlDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4ZmZmZmZmZmZmZmZm ZmY2OAorCitVbmF3YXJlIGhvdyBpbmNvbnZlbmllbnQgaXMgYW4gaW50ZW50aW9uYWwgY3Jhc2gg b2YgdGhlIHRlc3RjYXNlIG9uIHNvbWUKK2VtYmVkZGVkL25vbi1NTVUgc3lzdGVtcy4KK05vIHJl Z3Jlc3Npb25zIG9uIHt4ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmExMi1saW51eC1nbnUu CisKKworVGhhbmtzLAorSmFuCisKKworZ2RiLworMjAxMC0wMi0xOSAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBpbmZjYWxsLmMgKGNhbGxfZnVuY3Rp b25fYnlfaGFuZCk6IFJlbW92ZSBnZGJfYXNzZXJ0IG9uIHNwIGFuZCBvbGRfc3AuCisJTmV3IGNv bW1lbnQuCisKK2dkYi90ZXN0c3VpdGUvCisyMDEwLTAyLTE5ICBKYW4gS3JhdG9jaHZpbCAgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2NhbGxmdW5jcy5leHA6IE5l dyB0ZXN0cyBmb3IgJHNwdmFsIDAgYW5kIC0xLiAgUmVtb3ZlIHJldHVybi4KKworLS0tIGEvZ2Ri L2luZmNhbGwuYworKysrIGIvZ2RiL2luZmNhbGwuYworQEAgLTUxOCwxMCArNTE4LDkgQEAgY2Fs bF9mdW5jdGlvbl9ieV9oYW5kIChzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLCBpbnQgbmFyZ3MsIHN0 cnVjdCB2YWx1ZSAqKmFyZ3MpCisgCSAgICAgIC8qIFN0YWNrIGdyb3dzIHVwLiAgKi8KKyAJICAg ICAgc3AgPSBnZGJhcmNoX2ZyYW1lX2FsaWduIChnZGJhcmNoLCBvbGRfc3AgKyAxKTsKKyAJICB9 CistCWdkYl9hc3NlcnQgKChnZGJhcmNoX2lubmVyX3RoYW4gKGdkYmFyY2gsIDEsIDIpCistCQkg ICAgJiYgc3AgPD0gb2xkX3NwKQorLQkJICAgIHx8IChnZGJhcmNoX2lubmVyX3RoYW4gKGdkYmFy Y2gsIDIsIDEpCistCQkgICAgICAgJiYgc3AgPj0gb2xkX3NwKSk7CisrCS8qIFNQIG1heSBoYXZl IG92ZXJmbG93biBhZGRyZXNzIHplcm8gaGVyZSBmcm9tIE9MRF9TUC4gIE1lbW9yeSBhY2Nlc3MK KysJICAgZnVuY3Rpb25zIHdpbGwgcHJvYmFibHkgZmFpbCBpbiBzdWNoIGNhc2UgYnV0IHRoYXQg aXMgYSB0YXJnZXQncworKwkgICBwcm9ibGVtLiAgKi8KKyAgICAgICB9CisgICAgIGVsc2UKKyAg ICAgICAvKiBGSVhNRTogY2FnbmV5LzIwMDItMDktMTg6IEhleSwgeW91IGxvb3NlIQorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYWxsZnVuY3MuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2NhbGxmdW5jcy5leHAKK0BAIC00NjksNSArNDY5LDE4IEBAIGlmIHskb2xkX3Jl Z19jb250ZW50ID09ICRuZXdfcmVnX2NvbnRlbnR9IHRoZW4geworICAgICBmYWlsICJuZXN0ZWQg Y2FsbCBkdW1taWVzIHByZXNlcnZlIHJlZ2lzdGVyIGNvbnRlbnRzIgorIH0KKyAKKy1yZXR1cm4g MAorKyMgR0RCIHNob3VsZCBub3QgY3Jhc2ggYnkgaW50ZXJuYWwgZXJyb3Igb24gJHNwIG92ZXJm bG93IGR1cmluZyB0aGUgaW5mZXJpb3IKKysjIGNhbGwuICBJdCBpcyBPSyBpdCB3aWxsIHN0b3Ag b24gc29tZTogQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweCRoZXguCisgCisrZm9y ZWFjaCBzcHZhbCB7MCAtMX0geworKyAgICBzZXQgb2xkX2xkcHJlZml4ICRwZl9wcmVmaXgKKysg ICAgbGFwcGVuZCBwZl9wcmVmaXggInNwPSRzcHZhbDoiCisrCisrICAgIGdkYl90ZXN0IHtzZXQg JG9sZF9zcCA9ICRzcH0KKysgICAgZ2RiX3Rlc3QgInNldCBcJHNwID0gJHNwdmFsIgorKworKyAg ICBnZGJfdGVzdCAiY2FsbCBkb3VibGVpdCAoMSkiCisrCisrICAgIGdkYl90ZXN0IHtzZXQgJHNw ID0gJG9sZF9zcH0KKysgICAgc2V0IHBmX3ByZWZpeCAkb2xkX2xkcHJlZml4CisrfQorCgpkaWZm IC0tZ2l0IGEvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLW1vcmli dW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjZiNTBhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItbW9yaWJ1bmQtdXRyYWNlLXdv cmthcm91bmQucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAoraHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQu Y29tL3Nob3dfYnVnLmNnaT9pZD01OTA2MjMKK2h0dHA6Ly9zb3VyY2VzLnJlZGhhdC5jb20vYnVn emlsbGEvc2hvd19idWcuY2dpP2lkPTExNTkzCisKK0J1ZyBpbiBGU0YgR0RCIGV4cGxvaXRlZCBi eSB0aGUgcHRyYWNlLW9uLXV0cmFjZSBpbnRlcmFjdGlvbi4KKworLS0tIGEvZ2RiL2JyZWFrcG9p bnQuYworKysrIGIvZ2RiL2JyZWFrcG9pbnQuYworQEAgLTkwODQsNiArOTA4NCw4IEBAIHVwZGF0 ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCisgCQkgdHJhcHMgd2Ug Y2FuIG5vIGxvbmdlciBleHBsYWluLiAgKi8KKyAKKyAJICAgICAgb2xkX2xvYy0+ZXZlbnRzX3Rp bGxfcmV0aXJlbWVudCA9IDMgKiAodGhyZWFkX2NvdW50ICgpICsgMSk7CisrCSAgICAgIC8qIFJl ZCBIYXQgQnVnIDU5MDYyMy4gICovCisrCSAgICAgIG9sZF9sb2MtPmV2ZW50c190aWxsX3JldGly ZW1lbnQgKj0gMTA7CisgCSAgICAgIG9sZF9sb2MtPm93bmVyID0gTlVMTDsKKyAKKyAJICAgICAg VkVDX3NhZmVfcHVzaCAoYnBfbG9jYXRpb25fcCwgbW9yaWJ1bmRfbG9jYXRpb25zLCBvbGRfbG9j KTsKCmRpZmYgLS1naXQgYS9nZGItcGllLTFvZjYtcmVwcmVsaW5rZWQtYmluLnBhdGNoIGIvZ2Ri LXBpZS0xb2Y2LXJlcHJlbGlua2VkLWJpbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4yNzdiYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXBpZS0xb2Y2LXJlcHJl bGlua2VkLWJpbi5wYXRjaApAQCAtMCwwICsxLDQ0MyBAQAoraHR0cDovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNnMDEwMDguaHRtbAorU3ViamVjdDogW3BhdGNoIDEv Nl06IFBJRTogQXR0YWNoIGJpbmFyeSBldmVuIGFmdGVyIHJlLXByZWxpbmtlZCB1bmRlcm5lYXRo CisKK0hpLAorCit0aGVyZSBpcyBhIHJlZ3Jlc3Npb24gKGFnYWluc3QgcHJldmlvdXMgdW5yZWxl YXNlZCBjb21taXRzKSBieToKKwlSZTogUkZDOiBWZXJpZnkgQVRfRU5UUlkgYmVmb3JlIHVzaW5n IGl0CisJaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNnMDAz OTUuaHRtbAorCitmb3IgbG9hZGluZyBQSUUgZXhlY3V0YWJsZXMgd2hpY2ggaGF2ZSBjaGFuZ2Vk IG9uIHRoZSBkaXNrIHNpbmNlIHN0YXJ0ZWQuCitUaGVyZSBhcmUgaW4gZmFjdCAzIGRpZmZlcmVu dCBhZGRyZXNzZXMgb25lIGhhcyB0byBwcm9wZXJseSBkZWFsIHdpdGguCisKK1RoaXMgcGF0Y2gg dXNlcyBleHBsaWNpdCAiZmlsZSIgc28gaXQgaXMgbm90IGRlcGVuZGVudCBvbiBwZW5kaW5nOgor CVtwYXRjaF0gQXR0YWNoIHRvIHJ1bm5pbmcgYnV0IGRlbGV0ZWQgZXhlY3V0YWJsZQorCWh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwOTUwLmh0bWwKKwor VGhlIHR3byBjb3B5LXBhc3RlZCBibG9ja3MgZm9yIGVsZjMyIGFuZCBlbGY2NCBhcmUgIm5vdCBu aWNlIiBidXQgdGhpcyBpcyB0aGUKK2N1cnJlbnQgc3R5bGUgaW4gR0RCLgorCitObyByZWdyZXNz aW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMTItbGludXgtZ251IGZvciB0 aGUgd2hvbGUKK3BhdGNoIHNlcmllcyB0b2dldGhlci4KKworCitUaGFua3MsCitKYW4KKworCitn ZGIvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+CisKKwlGaXggYXR0YWNoaW5nIHRvIFBJRXMgcHJlbGlua2VkIG9uIHRoZSBkaXNrIHNpbmNl IHRoZWlyIHN0YXJ0LgorCSogc29saWItc3ZyNC5jIChzdnI0X2V4ZWNfZGlzcGxhY2VtZW50KTog TmV3IHZhcmlhYmxlIGFyY2hfc2l6ZS4KKwlWZXJpZnkgaXQgYWdhaW5zdCBiZmRfZ2V0X2FyY2hf c2l6ZS4gIFRyeSB0byBtYXRjaCBhcmJpdHJhcnkKKwlkaXNwbGFjZW1lbnQgZm9yIHRoZSBwaGRy cyBjb21wYXJpc29uLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0wMy0yOSAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuYmFzZS9icmVhay1pbnRl cnAuZXhwOiBSdW4gJGJpbnBpZSB3aXRoIG5ldyB2YWx1ZSAiQVRUQUNIIiwgbmV3CisJY29kZSBm b3IgaXQuICBOZXcgdmFyaWFibGUgcmVsaW5rX2FyZ3MuCisJKHByZWxpbmtZRVMpOiBDYWxsIHBy ZWxpbmtOTy4KKwkodGVzdF9hdHRhY2gpOiBBY2NlcHQgbmV3IHBhcmFtZXRlciByZWxpbmtfYXJn cy4gIFJlLXByZWxpbmsgdGhlIGJpbmFyeQorCWluIHN1Y2ggY2FzZS4gIE1vdmUgdGhlIGNvcmUg Y29kZSB0byAuLi4KKwkodGVzdF9hdHRhY2hfZ2RiKTogLi4uIGEgbmV3IGZ1bmN0aW9uLiAgU2Vu ZCBHREIgY29tbWFuZCAiZmlsZSIuCisJRXh0ZW5kIGV4cGVjdGVkICJBdHRhY2hpbmcgdG8gIiBz dHJpbmcuCisKKy0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKKysrKyBiL2dkYi9zb2xpYi1zdnI0LmMK K0BAIC0xNzUwLDEzICsxNzUwLDE4MyBAQCBzdnI0X2V4ZWNfZGlzcGxhY2VtZW50IChDT1JFX0FE RFIgKmRpc3BsYWNlbWVudHApCisgCSByZWFsbHkgZG8gbm90IG1hdGNoLiAgKi8KKyAgICAgICBp bnQgcGhkcnNfc2l6ZSwgcGhkcnMyX3NpemUsIG9rID0gMTsKKyAgICAgICBnZGJfYnl0ZSAqYnVm LCAqYnVmMjsKKysgICAgICBpbnQgYXJjaF9zaXplOworIAorLSAgICAgIGJ1ZiA9IHJlYWRfcHJv Z3JhbV9oZWFkZXIgKC0xLCAmcGhkcnNfc2l6ZSwgTlVMTCk7CisrICAgICAgYnVmID0gcmVhZF9w cm9ncmFtX2hlYWRlciAoLTEsICZwaGRyc19zaXplLCAmYXJjaF9zaXplKTsKKyAgICAgICBidWYy ID0gcmVhZF9wcm9ncmFtX2hlYWRlcnNfZnJvbV9iZmQgKGV4ZWNfYmZkLCAmcGhkcnMyX3NpemUp OworLSAgICAgIGlmIChidWYgIT0gTlVMTCAmJiBidWYyICE9IE5VTEwKKy0JICAmJiAocGhkcnNf c2l6ZSAhPSBwaGRyczJfc2l6ZQorLQkgICAgICB8fCBtZW1jbXAgKGJ1ZiwgYnVmMiwgcGhkcnNf c2l6ZSkgIT0gMCkpCistCW9rID0gMDsKKysgICAgICBpZiAoYnVmICE9IE5VTEwgJiYgYnVmMiAh PSBOVUxMKQorKwl7CisrCSAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKHRhcmdldF9nZGJhcmNoKTsKKysKKysJICAvKiBXZSBhcmUgZGVhbGluZyB3aXRo IHRocmVlIGRpZmZlcmVudCBhZGRyZXNzZXMuICBFWEVDX0JGRAorKwkgICAgIHJlcHJlc2VudHMg Y3VycmVudCBhZGRyZXNzIGluIG9uLWRpc2sgZmlsZS4gIHRhcmdldCBtZW1vcnkgY29udGVudAor KwkgICAgIG1heSBiZSBkaWZmZXJlbnQgZnJvbSBFWEVDX0JGRCBhcyB0aGUgZmlsZSBtYXkgaGF2 ZSBiZWVuIHByZWxpbmtlZAorKwkgICAgIHRvIGEgZGlmZmVyZW50IGFkZHJlc3Mgc2luY2UgdGhl IGV4ZWN1dGFibGUgaGFzIGJlZW4gbG9hZGVkLgorKwkgICAgIE1vcmVvdmVyIHRoZSBhZGRyZXNz IG9mIHBsYWNlbWVudCBpbiB0YXJnZXQgbWVtb3J5IGNhbiBiZQorKwkgICAgIGRpZmZlcmVudCBm cm9tIHdoYXQgc2F5IHRoZSB0YXJnZXQgbWVtb3J5IHByb2dyYW0gaGVhZGVycyAtIHRoaXMKKysJ ICAgICBpcyB0aGUgZ29hbCBvZiBQSUUuCisrCisrCSAgICAgRGV0ZWN0ZWQgRElTUExBQ0VNRU5U IGNvdmVycyBib3RoIHRoZSBvZmZzZXRzIG9mIFBJRSBwbGFjZW1lbnQgYW5kCisrCSAgICAgcG9z c2libGUgbmV3IHByZWxpbmsgc2luY2Ugc3RhcnQgb2YgdGhlIHByb2dyYW0uICBIZXJlIHJlbG9j YXRlCisrCSAgICAgQlVGIGFuZCBCVUYyIGp1c3QgYnkgdGhlIEVYRUNfQkZEIHZzLiB0YXJnZXQg bWVtb3J5IGNvbnRlbnQgb2Zmc2V0CisrCSAgICAgZm9yIHRoZSB2ZXJpZmljYXRpb24gcHVycG9z ZS4gICovCisrCisrCSAgaWYgKHBoZHJzX3NpemUgIT0gcGhkcnMyX3NpemUKKysJICAgICAgfHwg YmZkX2dldF9hcmNoX3NpemUgKGV4ZWNfYmZkKSAhPSBhcmNoX3NpemUpCisrCSAgICBvayA9IDA7 CisrCSAgZWxzZSBpZiAoYXJjaF9zaXplID09IDMyICYmIHBoZHJzX3NpemUgPj0gc2l6ZW9mIChF bGYzMl9FeHRlcm5hbF9QaGRyKQorKwkgICAgICAgICAgICYmIHBoZHJzX3NpemUgJSBzaXplb2Yg KEVsZjMyX0V4dGVybmFsX1BoZHIpID09IDApCisrCSAgICB7CisrCSAgICAgIEVsZl9JbnRlcm5h bF9FaGRyICplaGRyMiA9IGVsZl90ZGF0YSAoZXhlY19iZmQpLT5lbGZfaGVhZGVyOworKwkgICAg ICBFbGZfSW50ZXJuYWxfUGhkciAqcGhkcjIgPSBlbGZfdGRhdGEgKGV4ZWNfYmZkKS0+cGhkcjsK KysJICAgICAgQ09SRV9BRERSIGRpc3BsYWNlbWVudCA9IDA7CisrCSAgICAgIGludCBpOworKwor KwkgICAgICAvKiBESVNQTEFDRU1FTlQgY291bGQgYmUgZm91bmQgZWFzaWVyIGJ5IHRoZSBkaWZm ZXJlbmNlIG9mCisrCSAgICAgICAgIGVoZHIyLT5lX2VudHJ5IGJ1dCBhbHJlYWR5IHJlYWQgQlVG IGRvZXMgbm90IGNvbnRhaW4gZWhkci4gICovCisrCisrCSAgICAgIGZvciAoaSA9IDA7IGkgPCBl aGRyMi0+ZV9waG51bTsgaSsrKQorKwkJaWYgKHBoZHIyW2ldLnBfdHlwZSA9PSBQVF9MT0FEKQor KwkJICB7CisrCQkgICAgRWxmMzJfRXh0ZXJuYWxfUGhkciAqcGhkcnA7CisrCQkgICAgZ2RiX2J5 dGUgKmJ1Zl92YWRkcl9wLCAqYnVmX3BhZGRyX3A7CisrCQkgICAgQ09SRV9BRERSIHZhZGRyLCBw YWRkcjsKKysJCSAgICBDT1JFX0FERFIgZGlzcGxhY2VtZW50X3ZhZGRyID0gMDsKKysJCSAgICBD T1JFX0FERFIgZGlzcGxhY2VtZW50X3BhZGRyID0gMDsKKysKKysJCSAgICBwaGRycCA9ICYoKEVs ZjMyX0V4dGVybmFsX1BoZHIgKikgYnVmKVtpXTsKKysJCSAgICBidWZfdmFkZHJfcCA9IChnZGJf Ynl0ZSAqKSAmcGhkcnAtPnBfdmFkZHI7CisrCQkgICAgYnVmX3BhZGRyX3AgPSAoZ2RiX2J5dGUg KikgJnBoZHJwLT5wX3BhZGRyOworKworKwkJICAgIHZhZGRyID0gZXh0cmFjdF91bnNpZ25lZF9p bnRlZ2VyIChidWZfdmFkZHJfcCwgNCwKKysJCQkJCQkgICAgICBieXRlX29yZGVyKTsKKysJCSAg ICBkaXNwbGFjZW1lbnRfdmFkZHIgPSB2YWRkciAtIHBoZHIyW2ldLnBfdmFkZHI7CisrCisrCQkg ICAgcGFkZHIgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGJ1Zl9wYWRkcl9wLCA0LAorKwkJ CQkJCSAgICAgIGJ5dGVfb3JkZXIpOworKwkJICAgIGRpc3BsYWNlbWVudF9wYWRkciA9IHBhZGRy IC0gcGhkcjJbaV0ucF9wYWRkcjsKKysKKysJCSAgICBpZiAoZGlzcGxhY2VtZW50X3ZhZGRyID09 IGRpc3BsYWNlbWVudF9wYWRkcikKKysJCSAgICAgIGRpc3BsYWNlbWVudCA9IGRpc3BsYWNlbWVu dF92YWRkcjsKKysKKysJCSAgICBicmVhazsKKysJCSAgfQorKworKwkgICAgICAvKiBOb3cgY29t cGFyZSBCVUYgYW5kIEJVRjIgd2l0aCBvcHRpb25hbCBESVNQTEFDRU1FTlQuICAqLworKworKwkg ICAgICBmb3IgKGkgPSAwOyBpIDwgcGhkcnNfc2l6ZSAvIHNpemVvZiAoRWxmMzJfRXh0ZXJuYWxf UGhkcik7IGkrKykKKysJCXsKKysJCSAgRWxmMzJfRXh0ZXJuYWxfUGhkciAqcGhkcnA7CisrCQkg IEVsZjMyX0V4dGVybmFsX1BoZHIgKnBoZHIycDsKKysJCSAgZ2RiX2J5dGUgKmJ1Zl92YWRkcl9w LCAqYnVmX3BhZGRyX3A7CisrCQkgIENPUkVfQUREUiB2YWRkciwgcGFkZHI7CisrCisrCQkgIHBo ZHJwID0gJigoRWxmMzJfRXh0ZXJuYWxfUGhkciAqKSBidWYpW2ldOworKwkJICBidWZfdmFkZHJf cCA9IChnZGJfYnl0ZSAqKSAmcGhkcnAtPnBfdmFkZHI7CisrCQkgIGJ1Zl9wYWRkcl9wID0gKGdk Yl9ieXRlICopICZwaGRycC0+cF9wYWRkcjsKKysJCSAgcGhkcjJwID0gJigoRWxmMzJfRXh0ZXJu YWxfUGhkciAqKSBidWYyKVtpXTsKKysKKysJCSAgLyogUFRfR05VX1NUQUNLIGFkZHJlc3NlcyBh cmUgbGVmdCBhcyB6ZXJvIG5vdCBiZWluZworKwkJICAgICByZWxvY2F0ZWQgYnkgcHJlbGluaywg dGhlaXIgZGlzcGxhY2luZyB3b3VsZCBjcmVhdGUgZmFsc2UKKysJCSAgICAgdmVyaWZpY2F0aW9u IGZhaWx1cmUuICBGZWVsIGZyZWUgdG8gdGVzdCB0aGUgdW5yZWxvY2F0ZWQKKysJCSAgICAgY29t cGFyaXNvbiBmb3IgYW55IHNlZ21lbnQgdHlwZS4gICovCisrCisrCQkgIGlmIChtZW1jbXAgKHBo ZHJwLCBwaGRyMnAsIHNpemVvZiAoKnBoZHJwKSkgPT0gMCkKKysJCSAgICBjb250aW51ZTsKKysK KysJCSAgdmFkZHIgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKGJ1Zl92YWRkcl9wLCA0LCBi eXRlX29yZGVyKTsKKysJCSAgdmFkZHIgLT0gZGlzcGxhY2VtZW50OworKwkJICBzdG9yZV91bnNp Z25lZF9pbnRlZ2VyIChidWZfdmFkZHJfcCwgNCwgYnl0ZV9vcmRlciwgdmFkZHIpOworKworKwkJ ICBwYWRkciA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmX3BhZGRyX3AsIDQsIGJ5dGVf b3JkZXIpOworKwkJICBwYWRkciAtPSBkaXNwbGFjZW1lbnQ7CisrCQkgIHN0b3JlX3Vuc2lnbmVk X2ludGVnZXIgKGJ1Zl9wYWRkcl9wLCA0LCBieXRlX29yZGVyLCBwYWRkcik7CisrCisrCQkgIGlm IChtZW1jbXAgKHBoZHJwLCBwaGRyMnAsIHNpemVvZiAoKnBoZHJwKSkgPT0gMCkKKysJCSAgICBj b250aW51ZTsKKysKKysJCSAgb2sgPSAwOworKwkJICBicmVhazsKKysJCX0KKysJICAgIH0KKysJ ICBlbHNlIGlmIChhcmNoX3NpemUgPT0gNjQgJiYgcGhkcnNfc2l6ZSA+PSBzaXplb2YgKEVsZjY0 X0V4dGVybmFsX1BoZHIpCisrCSAgICAgICAgICAgJiYgcGhkcnNfc2l6ZSAlIHNpemVvZiAoRWxm NjRfRXh0ZXJuYWxfUGhkcikgPT0gMCkKKysJICAgIHsKKysJICAgICAgRWxmX0ludGVybmFsX0Vo ZHIgKmVoZHIyID0gZWxmX3RkYXRhIChleGVjX2JmZCktPmVsZl9oZWFkZXI7CisrCSAgICAgIEVs Zl9JbnRlcm5hbF9QaGRyICpwaGRyMiA9IGVsZl90ZGF0YSAoZXhlY19iZmQpLT5waGRyOworKwkg ICAgICBDT1JFX0FERFIgZGlzcGxhY2VtZW50ID0gMDsKKysJICAgICAgaW50IGk7CisrCisrCSAg ICAgIC8qIERJU1BMQUNFTUVOVCBjb3VsZCBiZSBmb3VuZCBlYXNpZXIgYnkgdGhlIGRpZmZlcmVu Y2Ugb2YKKysJICAgICAgICAgZWhkcjItPmVfZW50cnkgYnV0IGFscmVhZHkgcmVhZCBCVUYgZG9l cyBub3QgY29udGFpbiBlaGRyLiAgKi8KKysKKysJICAgICAgZm9yIChpID0gMDsgaSA8IGVoZHIy LT5lX3BobnVtOyBpKyspCisrCQlpZiAocGhkcjJbaV0ucF90eXBlID09IFBUX0xPQUQpCisrCQkg IHsKKysJCSAgICBFbGY2NF9FeHRlcm5hbF9QaGRyICpwaGRycDsKKysJCSAgICBnZGJfYnl0ZSAq YnVmX3ZhZGRyX3AsICpidWZfcGFkZHJfcDsKKysJCSAgICBDT1JFX0FERFIgdmFkZHIsIHBhZGRy OworKwkJICAgIENPUkVfQUREUiBkaXNwbGFjZW1lbnRfdmFkZHIgPSAwOworKwkJICAgIENPUkVf QUREUiBkaXNwbGFjZW1lbnRfcGFkZHIgPSAwOworKworKwkJICAgIHBoZHJwID0gJigoRWxmNjRf RXh0ZXJuYWxfUGhkciAqKSBidWYpW2ldOworKwkJICAgIGJ1Zl92YWRkcl9wID0gKGdkYl9ieXRl ICopICZwaGRycC0+cF92YWRkcjsKKysJCSAgICBidWZfcGFkZHJfcCA9IChnZGJfYnl0ZSAqKSAm cGhkcnAtPnBfcGFkZHI7CisrCisrCQkgICAgdmFkZHIgPSBleHRyYWN0X3Vuc2lnbmVkX2ludGVn ZXIgKGJ1Zl92YWRkcl9wLCA4LAorKwkJCQkJCSAgICAgIGJ5dGVfb3JkZXIpOworKwkJICAgIGRp c3BsYWNlbWVudF92YWRkciA9IHZhZGRyIC0gcGhkcjJbaV0ucF92YWRkcjsKKysKKysJCSAgICBw YWRkciA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmX3BhZGRyX3AsIDgsCisrCQkJCQkJ ICAgICAgYnl0ZV9vcmRlcik7CisrCQkgICAgZGlzcGxhY2VtZW50X3BhZGRyID0gcGFkZHIgLSBw aGRyMltpXS5wX3BhZGRyOworKworKwkJICAgIGlmIChkaXNwbGFjZW1lbnRfdmFkZHIgPT0gZGlz cGxhY2VtZW50X3BhZGRyKQorKwkJICAgICAgZGlzcGxhY2VtZW50ID0gZGlzcGxhY2VtZW50X3Zh ZGRyOworKworKwkJICAgIGJyZWFrOworKwkJICB9CisrCisrCSAgICAgIC8qIE5vdyBjb21wYXJl IEJVRiBhbmQgQlVGMiB3aXRoIG9wdGlvbmFsIERJU1BMQUNFTUVOVC4gICovCisrCisrCSAgICAg IGZvciAoaSA9IDA7IGkgPCBwaGRyc19zaXplIC8gc2l6ZW9mIChFbGY2NF9FeHRlcm5hbF9QaGRy KTsgaSsrKQorKwkJeworKwkJICBFbGY2NF9FeHRlcm5hbF9QaGRyICpwaGRycDsKKysJCSAgRWxm NjRfRXh0ZXJuYWxfUGhkciAqcGhkcjJwOworKwkJICBnZGJfYnl0ZSAqYnVmX3ZhZGRyX3AsICpi dWZfcGFkZHJfcDsKKysJCSAgQ09SRV9BRERSIHZhZGRyLCBwYWRkcjsKKysKKysJCSAgcGhkcnAg PSAmKChFbGY2NF9FeHRlcm5hbF9QaGRyICopIGJ1ZilbaV07CisrCQkgIGJ1Zl92YWRkcl9wID0g KGdkYl9ieXRlICopICZwaGRycC0+cF92YWRkcjsKKysJCSAgYnVmX3BhZGRyX3AgPSAoZ2RiX2J5 dGUgKikgJnBoZHJwLT5wX3BhZGRyOworKwkJICBwaGRyMnAgPSAmKChFbGY2NF9FeHRlcm5hbF9Q aGRyICopIGJ1ZjIpW2ldOworKworKwkJICAvKiBQVF9HTlVfU1RBQ0sgYWRkcmVzc2VzIGFyZSBs ZWZ0IGFzIHplcm8gbm90IGJlaW5nCisrCQkgICAgIHJlbG9jYXRlZCBieSBwcmVsaW5rLCB0aGVp ciBkaXNwbGFjaW5nIHdvdWxkIGNyZWF0ZSBmYWxzZQorKwkJICAgICB2ZXJpZmljYXRpb24gZmFp bHVyZS4gIEZlZWwgZnJlZSB0byB0ZXN0IHRoZSB1bnJlbG9jYXRlZAorKwkJICAgICBjb21wYXJp c29uIGZvciBhbnkgc2VnbWVudCB0eXBlLiAgKi8KKysKKysJCSAgaWYgKG1lbWNtcCAocGhkcnAs IHBoZHIycCwgc2l6ZW9mICgqcGhkcnApKSA9PSAwKQorKwkJICAgIGNvbnRpbnVlOworKworKwkJ ICB2YWRkciA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoYnVmX3ZhZGRyX3AsIDgsIGJ5dGVf b3JkZXIpOworKwkJICB2YWRkciAtPSBkaXNwbGFjZW1lbnQ7CisrCQkgIHN0b3JlX3Vuc2lnbmVk X2ludGVnZXIgKGJ1Zl92YWRkcl9wLCA4LCBieXRlX29yZGVyLCB2YWRkcik7CisrCisrCQkgIHBh ZGRyID0gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIChidWZfcGFkZHJfcCwgOCwgYnl0ZV9vcmRl cik7CisrCQkgIHBhZGRyIC09IGRpc3BsYWNlbWVudDsKKysJCSAgc3RvcmVfdW5zaWduZWRfaW50 ZWdlciAoYnVmX3BhZGRyX3AsIDgsIGJ5dGVfb3JkZXIsIHBhZGRyKTsKKysKKysJCSAgaWYgKG1l bWNtcCAocGhkcnAsIHBoZHIycCwgc2l6ZW9mICgqcGhkcnApKSA9PSAwKQorKwkJICAgIGNvbnRp bnVlOworKworKwkJICBvayA9IDA7CisrCQkgIGJyZWFrOworKwkJfQorKwkgICAgfQorKwkgIGVs c2UKKysJICAgIG9rID0gMDsKKysJfQorIAorICAgICAgIHhmcmVlIChidWYpOworICAgICAgIHhm cmVlIChidWYyKTsKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4 cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCitAQCAtMTU0 LDYgKzE1NCwxMiBAQCBwcm9jIHByZWxpbmtZRVMge2FyZyB7bmFtZSAiIn19IHsKKyAgICAgaWYg eyRuYW1lID09ICIifSB7CisgCXNldCBuYW1lIFtmaWxlIHRhaWwgJGFyZ10KKyAgICAgfQorKwor KyAgICAjIFRyeSB0byB1bnByZWxpbmsgaXQgZmlyc3Qgc28gdGhhdCBpZiBpdCBoYXMgYmVlbiBh bHJlYWR5IHByZWxpbmtlZCBiZWZvcmUKKysgICAgIyB3ZSBnZXQgZGlmZmVyZW50IGFkZHJlc3Mg bm93IGFuZCB0aGUgcmVzdWx0IGlzIG5vdCBhZmZlY3RlZCBieSB0aGUKKysgICAgIyBwcmV2aW91 cyAkYXJnIHN0YXRlLi4KKysgICAgcHJlbGlua05PICRhcmcgIiRuYW1lIHByZS11bnByZWxpbmsi CisrCisgICAgIHNldCB0ZXN0ICJwcmVsaW5rICRuYW1lIgorICAgICBzZXQgY29tbWFuZCAiZXhl YyAvdXNyL3NiaW4vcHJlbGluayAtcU5SIC0tbm8tZXhlYy1zaGllbGQgJGFyZyIKKyAgICAgdmVy Ym9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgorQEAgLTMxOSwzOCArMzI1LDEyIEBAIHBy b2MgdGVzdF9jb3JlIHtmaWxlIGRpc3BsYWNlbWVudH0geworICAgICBzZXQgcGZfcHJlZml4ICRv bGRfbGRwcmVmaXgKKyB9CisgCistcHJvYyB0ZXN0X2F0dGFjaCB7ZmlsZSBkaXNwbGFjZW1lbnR9 IHsKKy0gICAgZ2xvYmFsIGJvYXJkX2luZm8gZ2RiX3Byb21wdCBleHBlY3Rfb3V0CistCistICAg IGdkYl9leGl0CistCistICAgIHNldCB0ZXN0ICJzbGVlcCBmdW5jdGlvbiBzdGFydGVkIgorLQor LSAgICBzZXQgY29tbWFuZCAiJHtmaWxlfSBzbGVlcCIKKy0gICAgc2V0IHJlcyBbcmVtb3RlX3Nw YXduIGhvc3QgJGNvbW1hbmRdOworLSAgICBpZiB7ICRyZXMgPCAwIHx8ICRyZXMgPT0gIiIgfSB7 CistCXBlcnJvciAiU3Bhd25pbmcgJGNvbW1hbmQgZmFpbGVkLiIKKy0JZmFpbCAkdGVzdAorLQly ZXR1cm4KKy0gICAgfQorLSAgICBzZXQgcGlkIFtleHBfcGlkIC1pICRyZXNdCistICAgIGdkYl9l eHBlY3QgeworLQktcmUgInNsZWVwaW5nXHJcbiIgeworLQkgICAgcGFzcyAkdGVzdAorLQl9Cist CWVvZiB7CistCSAgICBmYWlsICIkdGVzdCAoZW9mKSIKKy0JICAgIHJldHVybgorLQl9CistCXRp bWVvdXQgeworLQkgICAgZmFpbCAiJHRlc3QgKHRpbWVvdXQpIgorLQkgICAgcmV0dXJuCistCX0K Ky0gICAgfQorK3Byb2MgdGVzdF9hdHRhY2hfZ2RiIHtmaWxlIHBpZCBkaXNwbGFjZW1lbnQgcHJl Zml4fSB7CisrICAgIGdsb2JhbCBnZGJfcHJvbXB0IGV4cGVjdF9vdXQKKyAKKyAgICAgZ2xvYmFs IHBmX3ByZWZpeAorICAgICBzZXQgb2xkX2xkcHJlZml4ICRwZl9wcmVmaXgKKy0gICAgbGFwcGVu ZCBwZl9wcmVmaXggImF0dGFjaDoiCisrICAgIGxhcHBlbmQgcGZfcHJlZml4ICIkcHJlZml4OiIK KyAKKyAgICAgZ2RiX2V4aXQKKyAgICAgZ2RiX3N0YXJ0CitAQCAtMzU4LDkgKzMzOCwxMyBAQCBw cm9jIHRlc3RfYXR0YWNoIHtmaWxlIGRpc3BsYWNlbWVudH0geworICAgICAjIFByaW50IHRoZSAi UElFIChQb3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlKSBkaXNwbGFjZW1lbnQiIG1lc3Nh Z2UuCisgICAgIGdkYl90ZXN0ICJzZXQgdmVyYm9zZSBvbiIKKyAKKysgICAgaWYgeyRmaWxlICE9 ICIifSB7CisrCWdkYl90ZXN0ICJmaWxlICRmaWxlIiAiUmVhZGluZyBzeW1ib2xzIGZyb20gLipk b25lXFwuIiAiZmlsZSIKKysgICAgfQorKworICAgICBzZXQgdGVzdCAiYXR0YWNoIgorICAgICBn ZGJfdGVzdF9tdWx0aXBsZSAiYXR0YWNoICRwaWQiICR0ZXN0IHsKKy0JLXJlICJBdHRhY2hpbmcg dG8gcHJvY2VzcyAkcGlkXHJcbiIgeworKwktcmUgIkF0dGFjaGluZyB0byAocHJvZ3JhbTogLios ICk/cHJvY2VzcyAkcGlkXHJcbiIgeworIAkgICAgIyBNaXNzaW5nICIkZ2RiX3Byb21wdCAkIiBp cyBpbnRlbnRpb25hbC4KKyAJICAgIHBhc3MgJHRlc3QKKyAJfQorQEAgLTM5NiwxMSArMzgwLDU2 IEBAIHByb2MgdGVzdF9hdHRhY2gge2ZpbGUgZGlzcGxhY2VtZW50fSB7CisgICAgIGdkYl90ZXN0 ICJidCIgIiNcWzAtOVxdKyArXFteXHJcblxdKlxcbWxpYmZ1bmNcXE1cW15cclxuXF0qXHJcbiNc WzAtOVxdKyArXFteXHJcblxdKlxcbW1haW5cXE0uKiIgImF0dGFjaCBtYWluIGJ0IgorICAgICBn ZGJfZXhpdAorIAorLSAgICByZW1vdGVfZXhlYyBob3N0ICJraWxsIC05ICRwaWQiCistCisgICAg IHNldCBwZl9wcmVmaXggJG9sZF9sZHByZWZpeAorIH0KKyAKKytwcm9jIHRlc3RfYXR0YWNoIHtm aWxlIGRpc3BsYWNlbWVudCB7cmVsaW5rX2FyZ3MgIiJ9fSB7CisrICAgIGdsb2JhbCBib2FyZF9p bmZvCisrCisrICAgIGdkYl9leGl0CisrCisrICAgIHNldCB0ZXN0ICJzbGVlcCBmdW5jdGlvbiBz dGFydGVkIgorKworKyAgICBzZXQgY29tbWFuZCAiJHtmaWxlfSBzbGVlcCIKKysgICAgc2V0IHJl cyBbcmVtb3RlX3NwYXduIGhvc3QgJGNvbW1hbmRdOworKyAgICBpZiB7ICRyZXMgPCAwIHx8ICRy ZXMgPT0gIiIgfSB7CisrCXBlcnJvciAiU3Bhd25pbmcgJGNvbW1hbmQgZmFpbGVkLiIKKysJZmFp bCAkdGVzdAorKwlyZXR1cm4KKysgICAgfQorKyAgICBzZXQgcGlkIFtleHBfcGlkIC1pICRyZXNd CisrICAgIGdkYl9leHBlY3QgeworKwktcmUgInNsZWVwaW5nXHJcbiIgeworKwkgICAgcGFzcyAk dGVzdAorKwl9CisrCWVvZiB7CisrCSAgICBmYWlsICIkdGVzdCAoZW9mKSIKKysJICAgIHJldHVy bgorKwl9CisrCXRpbWVvdXQgeworKwkgICAgZmFpbCAiJHRlc3QgKHRpbWVvdXQpIgorKwkgICAg cmV0dXJuCisrCX0KKysgICAgfQorKworKyAgICBpZiB7JHJlbGlua19hcmdzID09ICIifSB7Cisr CXRlc3RfYXR0YWNoX2dkYiAiIiAkcGlkICRkaXNwbGFjZW1lbnQgImF0dGFjaCIKKysgICAgfSBl bHNlIHsKKysJIyBUaGVzZSBjb3VsZCBiZSByYXRoZXIgcGFzc2VkIGFzIGFyZ3VtZW50cy4KKysJ Z2xvYmFsIGV4ZWMgaW50ZXJwX3NhdmVkIGludGVycAorKworKwlmb3JlYWNoIHJlbGluayB7WUVT IE5PfSB7CisrCSAgICBpZiB7W3ByZWxpbmskcmVsaW5rICRyZWxpbmtfYXJncyBbZmlsZSB0YWls ICRleGVjXV0KKysJICAgICAgICAmJiBbY29weSAkaW50ZXJwX3NhdmVkICRpbnRlcnBdfSB7Cisr CQkjIC9wcm9jL1BJRC9leGUgY2Fubm90IGJlIGxvYWRlZCBhcyBpdCBpcyAiRVhFQ05BTUUgKGRl bGV0ZWQpIi4KKysJCXRlc3RfYXR0YWNoX2dkYiAkZXhlYyAkcGlkICRkaXNwbGFjZW1lbnQgImF0 dGFjaC1yZWxpbmskcmVsaW5rIgorKwkgICAgfQorKwl9CisrICAgIH0KKysKKysgICAgcmVtb3Rl X2V4ZWMgaG9zdCAia2lsbCAtOSAkcGlkIgorK30KKysKKyBwcm9jIHRlc3RfbGQge2ZpbGUgaWZt YWluIHRyeW5vc3ltIGRpc3BsYWNlbWVudH0geworICAgICBnbG9iYWwgc3JjZGlyIHN1YmRpciBn ZGJfcHJvbXB0IGV4cGVjdF9vdXQKKyAKK0BAIC02MDksNyArNjM4LDEwIEBAIGZvcmVhY2ggbGRw cmVsaW5rIHtOTyBZRVN9IHsKKyAJc2V0IG9sZF9iaW5wcmVmaXggJHBmX3ByZWZpeAorIAlmb3Jl YWNoIGJpbnByZWxpbmsge05PIFlFU30geworIAkgICAgZm9yZWFjaCBiaW5zZXBkZWJ1ZyB7Tk8g SU4gU0VQfSB7CistCQlmb3JlYWNoIGJpbnBpZSB7Tk8gWUVTfSB7CisrCQkjICJBVFRBQ0giIGlz IGxpa2UgIllFUyIgYnV0IGl0IGlzIG1vZGlmaWVkIGR1cmluZyBydW4uCisrCQkjIEl0IGNhbm5v dCBiZSB1c2VkIGZvciBwcm9ibGVtIHJlcHJvZHVjaWJpbGl0eSBhZnRlciB0aGUKKysJCSMgdGVz dGNhc2UgZW5kcy4KKysJCWZvcmVhY2ggYmlucGllIHtOTyBZRVMgQVRUQUNIfSB7CisgCQkgICAg IyBUaGlzIGNvbWJpbmF0aW9uIGlzIG5vdCBwb3NzaWJsZSwgbm9uLVBJRSAoZml4ZWQgYWRkcmVz cykKKyAJCSAgICAjIGJpbmFyeSBjYW5ub3QgYmUgcHJlbGlua2VkIHRvIGFueSAob3RoZXIpIGFk ZHJlc3MuCisgCQkgICAgaWYgeyRiaW5wcmVsaW5rID09ICJZRVMiICYmICRiaW5waWUgPT0gIk5P In0geworQEAgLTYyOCw3ICs2NjAsNyBAQCBmb3JlYWNoIGxkcHJlbGluayB7Tk8gWUVTfSB7Cisg CQkgICAgaWYgeyRiaW5zZXBkZWJ1ZyAhPSAiTk8ifSB7CisgCQkJbGFwcGVuZCBvcHRzIHtkZWJ1 Z30KKyAJCSAgICB9CistCQkgICAgaWYgeyRiaW5waWUgPT0gIllFUyJ9IHsKKysJCSAgICBpZiB7 JGJpbnBpZSAhPSAiTk8ifSB7CisgCQkJbGFwcGVuZCBvcHRzIHthZGRpdGlvbmFsX2ZsYWdzPS1m UElFIC1waWV9CisgCQkgICAgfQorIAkJICAgIGlmIHtbYnVpbGRfZXhlY3V0YWJsZSAke3Rlc3R9 LmV4cCBbZmlsZSB0YWlsICRleGVjXSAkc3JjZmlsZSAkb3B0c10gPT0gLTF9IHsKK0BAIC02ODAs MTYgKzcxMiw0NSBAQCBmb3JlYWNoIGxkcHJlbGluayB7Tk8gWUVTfSB7CisgCQkJbGFwcGVuZCBk ZXN0cyAkZGVzdAorIAkJICAgIH0KKyAKKy0JCSAgICBpZiB7W3ByZWxpbmskYmlucHJlbGluayAi LS1keW5hbWljLWxpbmtlcj0kaW50ZXJwIC0tbGQtbGlicmFyeS1wYXRoPSRkaXIgJGV4ZWMgJGlu dGVycCBbY29uY2F0ICRkZXN0c10iIFtmaWxlIHRhaWwgJGV4ZWNdXQorKwkJICAgIGlmIHskYmlu cGllID09ICJOTyJ9IHsKKysJCQlzZXQgZGlzcGxhY2VtZW50ICJOT05FIgorKwkJICAgIH0gZWxz ZWlmIHskYmlucHJlbGluayA9PSAiTk8ifSB7CisrCQkJc2V0IGRpc3BsYWNlbWVudCAiTk9OWkVS TyIKKysJCSAgICB9IGVsc2UgeworKwkJCXNldCBkaXNwbGFjZW1lbnQgIlpFUk8iCisrCQkgICAg fQorKworKwkJICAgIHNldCByZWxpbmtfYXJncyAiLS1keW5hbWljLWxpbmtlcj0kaW50ZXJwIC0t bGQtbGlicmFyeS1wYXRoPSRkaXIgJGV4ZWMgJGludGVycCBbY29uY2F0ICRkZXN0c10iCisrCQkg ICAgaWYge1twcmVsaW5rJGJpbnByZWxpbmsgJHJlbGlua19hcmdzIFtmaWxlIHRhaWwgJGV4ZWNd XQorIAkJICAgICAgICAmJiBbY29weSAkaW50ZXJwX3NhdmVkICRpbnRlcnBdfSB7CistCQkJaWYg eyRiaW5waWUgPT0gIk5PIn0geworLQkJCSAgICBzZXQgZGlzcGxhY2VtZW50ICJOT05FIgorLQkJ CX0gZWxzZWlmIHskYmlucHJlbGluayA9PSAiTk8ifSB7CistCQkJICAgIHNldCBkaXNwbGFjZW1l bnQgIk5PTlpFUk8iCisrCQkJaWYgeyRiaW5waWUgIT0gIkFUVEFDSCJ9IHsKKysJCQkgICAgdGVz dF9sZCAkZXhlYyAxIFtleHByIHskYmluc2VwZGVidWcgPT0gIk5PIn1dICRkaXNwbGFjZW1lbnQK KyAJCQl9IGVsc2UgeworLQkJCSAgICBzZXQgZGlzcGxhY2VtZW50ICJaRVJPIgorKwkJCSAgICAj IElmIHRoZSBmaWxlIGhhcyBiZWVuIHJhbmRvbWx5IHByZWxpbmtlZCBpdCBtdXN0CisrCQkJICAg ICMgYmUgIk5PTlpFUk8iLiAgV2UgY291bGQgc2VlICJaRVJPIiBvbmx5IGlmIGl0IHdhcworKwkJ CSAgICAjIHVucHJlbGlua2VkIG5hIGl0IGlzIG5vdyBydW5uaW5nIGF0IHRoZSBzYW1lCisrCQkJ ICAgICMgYWRkcmVzcyAtIHdoaWNoIGlzIDAgYnV0IGV4ZWN1dGFibGUgY2FuIG5ldmVyIHJ1bgor KwkJCSAgICAjIGF0IGFkZHJlc3MgMC4KKysKKysJCQkgICAgc2V0IGRpc3BsYWNlbWVudCAiTk9O WkVSTyIKKysJCQkgICAgdGVzdF9hdHRhY2ggJGV4ZWMgJGRpc3BsYWNlbWVudCAkcmVsaW5rX2Fy Z3MKKysKKysJCQkgICAgIyBBVFRBQ0ggZXhlY3V0YWJsZXMgKyBsaWJyYXJpZXMgZ2V0IG1vZGlm aWVkIHNpbmNlCisrCQkJICAgICMgdGhleSBoYXZlIGJlZW4gcnVuLiAgVGhleSBjYW5ub3QgYmUg dXNlZCBmb3IKKysJCQkgICAgIyBwcm9ibGVtIHJlcHJvZHVjaWJpbGl0eSBhZnRlciB0aGUgdGVz dGNhc2UgZW5kcy4KKysJCQkgICAgc2V0IGV4ZWNfZGVidWcgW3N5c3RlbV9kZWJ1Z19nZXQgJGV4 ZWNdCisrCQkJICAgIGlmIHskZXhlY19kZWJ1ZyAhPSAiIn0geworKwkJCQkjIGBmaWxlIGRlbGV0 ZSBbZ2xvYiAiJHtleGVjX2RlYnVnfSoiXScgZG9lcyBub3Qgd29yay4KKysJCQkJZm9yZWFjaCBm IFtnbG9iICIke2V4ZWNfZGVidWd9KiJdIHsKKysJCQkJICAgIGZpbGUgZGVsZXRlICRmCisrCQkJ CX0KKysJCQkgICAgfQorKwkJCSAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgJGRpcgorKwkJCSAgICAj IGBmaWxlIGRlbGV0ZSBbZ2xvYiAiJHtleGVjfSoiXScgZG9lcyBub3Qgd29yay4KKysJCQkgICAg Zm9yZWFjaCBmIFtnbG9iICIke2V4ZWN9KiJdIHsKKysJCQkJZmlsZSBkZWxldGUgJGYKKysJCQkg ICAgfQorIAkJCX0KKy0JCQl0ZXN0X2xkICRleGVjIDEgW2V4cHIgeyRiaW5zZXBkZWJ1ZyA9PSAi Tk8ifV0gJGRpc3BsYWNlbWVudAorIAkJICAgIH0KKyAJCX0KKyAJICAgIH0KKwoKZGlmZiAtLWdp dCBhL2dkYi1waWUtMm9mNi1yZXByZWxpbmtlZC1sZC5wYXRjaCBiL2dkYi1waWUtMm9mNi1yZXBy ZWxpbmtlZC1sZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjA1 NGE4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXBpZS0yb2Y2LXJlcHJlbGlua2VkLWxkLnBhdGNo CkBAIC0wLDAgKzEsODcgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDEwLTAzL21zZzAxMDAwLmh0bWwKK1N1YmplY3Q6IFtwYXRjaCAyLzZdIFBJRTogQXR0YWNoIGJp bmFyeSBldmVuIGFmdGVyIGxkLnNvIHJlLXByZWxpbmtlZCAgdW5kZXJuZWF0aAorCitIaSwKKwor d2hlbiBJIGhhdmUgc2VlbiB0aGUgUElFLWJpbmFyeS1jaGFuZ2VkLXNpY2Utc3RhcnQgdGVzdGVk IGFsc28KK2xkLnNvLWNoYW5nZWQtc2luY2Utc3RhcnQgYW5kIGl0IGRpZCBub3Qgd29yay4KKwor VGhlcmUgaXMgcXVlc3Rpb25hYmxlIHdoZW4gdG8gcHJpbnQgYW5kIHdoZW4gdG8gbm90IHRvIHBy aW50IG5vbi1mYXRhbCBtZW1vcnkKK3JlYWQgZXJyb3JzLiAgU2ltaWxhciBjaGFuZ2UgSSByZXF1 ZXN0ZWQgaW4KKwlSZTogW1JGQy9pYTY0XSBtZW1vcnkgZXJyb3Igd2hlbiByZWFkaW5nIHdyb25n IGNvcmUgZmlsZQorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAy L21zZzAwMDAxLmh0bWwKK3NvIHRoYXQgR0RCIHByaW50cyBhdCBsZWFzdCBhcyBhIHdhcm5pbmcK KwlDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIC4uLgord2hlbiBzb21lIHVuZXhwZWN0 ZWQgZXJyb3IgaGFwcGVucy4KKworQ29udHJhcnkgdG8gaXQgdGhlcmUgaXMgbm90IHN1Y2ggd2Fy bmluZyBwcmVzZW50IGluIHRoZSBjb2RlIGJlbG93IGFzIGluIHRoZQorY2FzZSBvZiBub24tdmFs Z3JpbmQgUElFIHdpdGggcmUtcHJlbGlua2VkIGxkLnNvIHRoZSBtZW1vcnkgcmVhZCBlcnJvciBo YXBwZW5zCit0aGVyZS4gIFNvbWUgR0RCIGNvZGUgcmV3b3JrIGNvdWxkIHByb2JhYmx5IGF2b2lk IGl0LgorCitKdXN0IGZvciBleGFtcGxlIGFsbCB0aGUgbWVtb3J5IHJlYWQgZXJyb3JzIGluIHJl YWRfcHJvZ3JhbV9oZWFkZXIgb3IgZXZlbgorLSBwcmltYXJpbHkgLSBzY2FuX2R5bnRhZyBhcmUg Y3VycmVudGx5IElNTy1pbmNvcnJlY3RseSBzaWxlbnQgYW5kIG90aGVycy4KK1RoZXJlZm9yZSBw b3N0ZWQgdGhlIHBhdGNoIHRoaXMgd2F5LCBtYWtpbmcgYWxsIHRoZXNlIHdhcm5pbmdzIHByaW50 ZWQgYW5kCitwb3NzaWJseSBmaXhpbmcgY29kZSBhdHRlbXB0aW5nIGluY29ycmVjdCByZWFkcyBh bG9uZyB0aGUgd2F5IGNvdWxkIGJlIGRvbmUgYnkKK2EgZGlmZmVyZW50IHBhdGNoLgorCitObyBy ZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMTItbGludXgtZ251 IGZvciB0aGUgd2hvbGUKK3BhdGNoIHNlcmllcyB0b2dldGhlci4KKworCitUaGFua3MsCitKYW4K KworCitnZGIvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+CisKKwkqIGF1eHYuYyAobGRfc29feGZlcl9hdXh2KTogRG8gbm90IGVycm9yIG9u IGZhaWxlZCByZWFkIG9mIGRhdGFfYWRkcmVzcy4KKworZ2RiL3Rlc3RzdWl0ZS8KKzIwMTAtMDMt MjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogZ2Ri LmJhc2UvYnJlYWstaW50ZXJwLmV4cCAodGVzdF9hdHRhY2gpOiBLZWVwICRpbnRlcnAgY2hhbmdl ZC4gIE1vdmUKKwlpdHMgcmVzdG9yZSBhZnRlciB0aGUgPCRyZWxpbmtfYXJncyAhPSAiIj4gbG9v cC4gIG5ldyBjb21tZW50LgorCistLS0gYS9nZGIvYXV4di5jCisrKysgYi9nZGIvYXV4di5jCitA QCAtOTYsNyArOTYsMTYgQEAgbGRfc29feGZlcl9hdXh2IChnZGJfYnl0ZSAqcmVhZGJ1ZiwKKyAK KyAgIHBvaW50ZXJfYWRkcmVzcyA9IFNZTUJPTF9WQUxVRV9BRERSRVNTIChtc3ltKTsKKyAKKy0g IGRhdGFfYWRkcmVzcyA9IHJlYWRfbWVtb3J5X3R5cGVkX2FkZHJlc3MgKHBvaW50ZXJfYWRkcmVz cywgcHRyX3R5cGUpOworKyAgLyogV2hpbGUgaXQgaXMgYW4gZXJyb3IgSSBhbSBub3QgYXdhcmUg aG93IHRvIHNvbHZlIGF0dGFjaGluZyB0byBQSUUgdW5kZXIKKysgICAgIHZhbGdyaW5kIC0tZGIt YXR0YWNoPXllcyBkaWZmZXJlbnQgd2F5IHdoZW4gbGQuc28gb24tZGlzayBmaWxlIGhhcyBwcmVs aW5rCisrICAgICBjaGFuZ2UgaW4gdGhlIG1lYW50aW1lLiAgQ3VycmVudGx5IEdEQiB3aWxsIGRy b3AgYmFjayB0byBwcm9jZnNfeGZlcl9hdXh2CisrICAgICAoc28gdGhhdCBhdCBsZWFzdCBub24t dmFsZ3JpbmQgUElFIGF0dGFjaG1lbnRzIHdpdGggcHJlbGluayBjaGFuZ2Ugb2YKKysgICAgIGxk LnNvIHdvcmspLiAgVG8gbWFrZSBpdCB3b3JraW5nIGV2ZW4gd2l0aCB2YWxncmluZCBpcyBQUiAx MTQ0MCByZXF1aXJpbmcKKysgICAgIGEgdmFsZ3JpbmQgZXh0ZW5zaW9uLiAgKi8KKysgIGlmICh0 YXJnZXRfcmVhZF9tZW1vcnkgKHBvaW50ZXJfYWRkcmVzcywgcHRyX2J1ZiwgcHRyX3NpemUpICE9 IDApCisrICAgIHJldHVybiAtMTsKKysKKysgIGRhdGFfYWRkcmVzcyA9IGV4dHJhY3RfdHlwZWRf YWRkcmVzcyAocHRyX2J1ZiwgcHRyX3R5cGUpOworIAorICAgLyogUG9zc2libHkgc3RpbGwgbm90 IGluaXRpYWxpemVkIHN1Y2ggYXMgZHVyaW5nIGFuIGluZmVyaW9yIHN0YXJ0dXAuICAqLworICAg aWYgKGRhdGFfYWRkcmVzcyA9PSAwKQorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVh ay1pbnRlcnAuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JyZWFrLWludGVycC5l eHAKK0BAIC00MTksMTIgKzQxOSwxNiBAQCBwcm9jIHRlc3RfYXR0YWNoIHtmaWxlIGRpc3BsYWNl bWVudCB7cmVsaW5rX2FyZ3MgIiJ9fSB7CisgCWdsb2JhbCBleGVjIGludGVycF9zYXZlZCBpbnRl cnAKKyAKKyAJZm9yZWFjaCByZWxpbmsge1lFUyBOT30geworLQkgICAgaWYge1twcmVsaW5rJHJl bGluayAkcmVsaW5rX2FyZ3MgW2ZpbGUgdGFpbCAkZXhlY11dCistCSAgICAgICAgJiYgW2NvcHkg JGludGVycF9zYXZlZCAkaW50ZXJwXX0geworKwkgICAgIyBJdCB3b3VsZCBiZSBtb3JlIGNvcnJl Y3QgdG8gYWxzbyBbY29weSAkaW50ZXJwX3NhdmVkICRpbnRlcnBdCisrCSAgICAjIGhlcmUgdG8g cmVhbGx5IHRlc3QganVzdCBkaWZmZXJlbnQgcHJlbGluayBvZiAkZXhlYy4KKysJICAgICMgQnV0 IHdlIHdvdWxkIG5lZWQgYSBzZXBhcmF0ZSB0ZXN0IGZvciBkaWZmZXJlbnQgcHJlbGluayBvZiBs ZC5zbworKwkgICAgIyB3aGVyZSBhIGJ1ZyBvY2N1cmVkLiAgSXQgaXMgbm93IGFsbCBtZXJnZWQg aW50byB0aGlzIHNpbmdsZSB0ZXN0LgorKwkgICAgaWYgW3ByZWxpbmskcmVsaW5rICRyZWxpbmtf YXJncyBbZmlsZSB0YWlsICRleGVjXV0geworIAkJIyAvcHJvYy9QSUQvZXhlIGNhbm5vdCBiZSBs b2FkZWQgYXMgaXQgaXMgIkVYRUNOQU1FIChkZWxldGVkKSIuCisgCQl0ZXN0X2F0dGFjaF9nZGIg JGV4ZWMgJHBpZCAkZGlzcGxhY2VtZW50ICJhdHRhY2gtcmVsaW5rJHJlbGluayIKKyAJICAgIH0K KyAJfQorKwljb3B5ICRpbnRlcnBfc2F2ZWQgJGludGVycAorICAgICB9CisgCisgICAgIHJlbW90 ZV9leGVjIGhvc3QgImtpbGwgLTkgJHBpZCIKKwoKZGlmZiAtLWdpdCBhL2dkYi1waWUtM29mNi1y ZWxvY2F0ZS1vbmNlLnBhdGNoIGIvZ2RiLXBpZS0zb2Y2LXJlbG9jYXRlLW9uY2UucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3YTVkYgotLS0gL2Rldi9udWxsCisr KyBiL2dkYi1waWUtM29mNi1yZWxvY2F0ZS1vbmNlLnBhdGNoCkBAIC0wLDAgKzEsNDEyIEBACito dHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMy9tc2cwMTAwMS5odG1s CitTdWJqZWN0OiBbcGF0Y2ggMy82XSBQSUU6IEZpeCBvY2Nhc2lvbmFsIGVycm9yIGF0dGFjaGlu ZyBpNjg2IGJpbmFyeQorCitbIFRlc3RjYXNlIGRpZmYgYmFja3BvcnRlZC4gIF0KKworSGksCisK K3RoaXMgaXMgdGhlIHJlYWwgYnVncmVwb3J0IHdoaWNoIHN0YXJ0ZWQgdGhpcyBwYXRjaCBzZXJp ZXMuCisJZ2RiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSIgb24gYSBydW5uaW5nIHByb2Nlc3MKKwlo dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU3Njc0MgorCitPZmZz ZXRzIG9uIGk2ODYgY2F1c2UgdGhhdCB3aGlsZSBhdHRhY2hpbmcgdG8gYW4gdW5wcmVsaW5rZWQg cnVubmluZyBQSUUKK3NjYW5fZHludGFnIHdpbGwgaW5jb3JyZWN0bHkgZ2V0IGEgc3VjY2Vzc2Z1 bCByZWFkIGluIHNjYW5fZHludGFnIGZyb20gRFRfREVCVUcKK2l0IGV4cGVjdHMgaXMgZnJvbSB0 aGUgbWFuaSBleGVjdXRhYmxlIGJ1dCBpbiBmYWN0IGl0IGlzIGZyb20gc29tZSBsZC5zbyBvcgor bGliYy5zbyAobG9jYXRlZCBsb3cgZm9yIC0tZXhlYy1zaGllbGQpLiAgQW5vdGhlciBpc3N1ZSBp cyB0aGF0IHNjYW5fZHludGFnCitjb3VsZCB2ZXJpZnkgbW9yZSB0aGF0IHRoZSB0YXJnZXQgbWVt b3J5IG1hdGNoZXMgdGhlIC5keW5hbWljIHNlY3Rpb24gaXQgaXMKK3JlYWRpbmcgZnJvbSBleGVj X2JmZC4gIEl0IGNvdWxkIGFsc28gY29tcGxhaW4gd2hlbiB0aGUgcmVhZCBmYWlsZWQgKGFzIGFs d2F5cworZmFpbGVkIHNvIGZvciBmb3IgUElFIGF0dGFjaGVzIGZpcnN0LCBzdWNjZWVkZWQgbGF0 ZXIgc28gbm9ib2R5IGhhcyBub3RpY2VkCithbnl0aGluZykuCisKK1RoZSBzdWNjZXNzZnVsIHJl YWQgcmVhZHMgYSBib2d1cyBEVF9ERUJVRyB2YWx1ZSBhbmQgR0RCIGVycm9ycyBvbiBpdCBsYXRl ci4KK1RoaXMgaXMgYWdhaW4gYSBub24tZmF0YWwgZXJyb3IgYWZ0ZXIgdGhlIHBhdGNoIGJ5IEpv ZWwgQnJvYmVja2VyIGFib3ZlIGJ1dCBpdAord2FzIG5vdCBzbyBiZWZvcmUgYW5kIGl0IGlzIGlu Y29ycmVjdCBhbnl3YXkuCisKK1RoZSBzdnI0X3JlbG9jYXRlX21haW5fZXhlY3V0YWJsZSBjYWxs IGluIHN2cjRfc3BlY2lhbF9zeW1ib2xfaGFuZGxpbmcgd2FzCit0aGVyZSBiZWZvcmUgZGVsYXll ZCB0aGF0IHdheSBmb3Igc3ZyNF9zdGF0aWNfZXhlY19kaXNwbGFjZW1lbnQuCitCdXQgc3ZyNF9z dGF0aWNfZXhlY19kaXNwbGFjZW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBpbiB0aGUgbWVhbnRpbWUg Ynk6CisJUmU6IFJGQzogVmVyaWZ5IEFUX0VOVFJZIGJlZm9yZSB1c2luZyBpdAorCWh0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwMDMwLmh0bWwKKworU28g aXQgY2FuIGJlIHNpbXBsaWZpZWQgKyBjb3JyZWN0ZWQgbm93LiAgTW9yZW92ZXIgR0RCIHdpbGwg bm93IGZpbmFsbHkgcHJpbnQKK2V4YWN0bHkgIlVzaW5nIFBJRSAoUG9zaXRpb24gSW5kZXBlbmRl bnQgRXhlY3V0YWJsZSkgZGlzcGxhY2VtZW50IiBleGFjdGx5CitvbmNlLgorCitUaGUgcmVwcm9k dWNlciBkZXBlbmRzIG9uIHZhcmlvdXMgb2Zmc2V0cyB3aGljaCBtYXkgYmUgZGlzdHJvIGRlcGVu ZGVudCBidXQgaXQKK3dhcyBtYWRlIHNvIHRoYXQgaXQgaXMgaG9wZWZ1bGx5IHJlcHJvZHVjaWJs ZSBldmVyeXdoZXJlLiAgUmVwcm9kdWNlZCArIGZpeGVkCitvbiBGZWRvcmEgMTIgeDg2XzY0IGFu ZCBpNjg2LgorCitObyByZWdyZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVk b3JhMTItbGludXgtZ251IGZvciB0aGUgd2hvbGUKK3BhdGNoIHNlcmllcyB0b2dldGhlci4KKwor CitUaGFua3MsCitKYW4KKworCitnZGIvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAgPGph bi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGF1eHYuYyAobWVtb3J5X3hmZXJfYXV4dik6 IFVwZGF0ZSBhdHRhY2ggY29tbWVudC4KKwkqIHNvbGliLXN2cjQuYyAoc3ZyNF9zcGVjaWFsX3N5 bWJvbF9oYW5kbGluZyk6IFJlbW92ZSB0aGUgY2FsbCB0bworCXN2cjRfcmVsb2NhdGVfbWFpbl9l eGVjdXRhYmxlLgorCShzdnI0X3NvbGliX2NyZWF0ZV9pbmZlcmlvcl9ob29rKTogTWFrZSB0aGUg Y2FsbCB0bworCXN2cjRfcmVsb2NhdGVfbWFpbl9leGVjdXRhYmxlIHVuY29uZGl0aW9uYWwuCisK K2dkYi90ZXN0c3VpdGUvCisyMDEwLTAzLTI5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+CisKKwkqIGdkYi5iYXNlL2F0dGFjaC1waWUtbWlzcmVhZC5leHAsIGdk Yi5iYXNlL2F0dGFjaC1waWUtbWlzcmVhZC5jOiBOZXcuCisKKy0tLSBhL2dkYi9hdXh2LmMKKysr KyBiL2dkYi9hdXh2LmMKK0BAIC0xOTgsNyArMTk4LDggQEAgbWVtb3J5X3hmZXJfYXV4diAoc3Ry dWN0IHRhcmdldF9vcHMgKm9wcywKKyAKKyAgICAvKiBsZF9zb194ZmVyX2F1eHYgaXMgdGhlIG9u bHkgZnVuY3Rpb24gc2FmZSBmb3IgdmlydHVhbCBleGVjdXRhYmxlcyBiZWluZworICAgICAgIGV4 ZWN1dGVkIGJ5IHZhbGdyaW5kJ3MgbWVtY2hlY2suICBBcyB1c2luZyBsZF9zb194ZmVyX2F1eHYg aXMgcHJvYmxlbWF0aWMKKy0gICAgICBkdXJpbmcgaW5mZXJpb3Igc3RhcnR1cCBHREIgZG9lcyBj YWxsIGl0IG9ubHkgZm9yIGF0dGFjaGVkIHByb2Nlc3Nlcy4gICovCisrICAgICAgZHVyaW5nIGlu ZmVyaW9yIHN0YXJ0dXAgYXMgbGQuc28gc3ltYm9sIHRhYmxlcyBhcmUgbm90IHlldCByZWxvY2F0 ZWQgR0RCCisrICAgICAgY2FsbHMgbGRfc29feGZlcl9hdXh2IG9ubHkgZm9yIGF0dGFjaGVkIHBy b2Nlc3Nlcy4gICovCisgCisgICBpZiAoY3VycmVudF9pbmZlcmlvciAoKS0+YXR0YWNoX2ZsYWcg IT0gMCkKKyAgICAgeworLS0tIGEvZ2RiL3NvbGliLXN2cjQuYworKysrIGIvZ2RiL3NvbGliLXN2 cjQuYworQEAgLTE2MjgsNyArMTYyOCw2IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRfaW5m byAqaW5mbywgaW50IGZyb21fdHR5KQorIHN0YXRpYyB2b2lkCisgc3ZyNF9zcGVjaWFsX3N5bWJv bF9oYW5kbGluZyAodm9pZCkKKyB7CistICBzdnI0X3JlbG9jYXRlX21haW5fZXhlY3V0YWJsZSAo KTsKKyB9CisgCisgLyogUmVhZCB0aGUgRUxGIHByb2dyYW0gaGVhZGVycyBmcm9tIEFCRkQuICBS ZXR1cm4gdGhlIGNvbnRlbnRzIGFuZAorQEAgLTIwNjUsOCArMjA2NCw3IEBAIHN2cjRfc29saWJf Y3JlYXRlX2luZmVyaW9yX2hvb2sgKGludCBmcm9tX3R0eSkKKyAgIGluZm8gPSBnZXRfc3ZyNF9p bmZvICgpOworIAorICAgLyogUmVsb2NhdGUgdGhlIG1haW4gZXhlY3V0YWJsZSBpZiBuZWNlc3Nh cnkuICAqLworLSAgaWYgKGN1cnJlbnRfaW5mZXJpb3IgKCktPmF0dGFjaF9mbGFnID09IDApCist ICAgIHN2cjRfcmVsb2NhdGVfbWFpbl9leGVjdXRhYmxlICgpOworKyAgc3ZyNF9yZWxvY2F0ZV9t YWluX2V4ZWN1dGFibGUgKCk7CisgCisgICBpZiAoIXN2cjRfaGF2ZV9saW5rX21hcF9vZmZzZXRz ICgpKQorICAgICByZXR1cm47CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2F0dGFjaC1waWUtbWlzcmVhZC5jCitAQCAtMCwwICsxLDQ3IEBACisrLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmln aHQgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2lu Y2x1ZGUgPHVuaXN0ZC5oPgorKworK2NvbnN0IGNoYXIgc3R1YltdID0geworKyNpZmRlZiBHRU4K KysjIGluY2x1ZGUgR0VOCisrI2VuZGlmCisrfTsKKysKKytpbnQKKyttYWluIChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCisreworKyAgLyogR2VuZXJhdG9yIG9mIEdFTiB3cml0dGVuIGluIFB5dGhv biB0YWtlcyBhYm91dCAxNXMgZm9yIHg4Nl82NCdzIDRNQi4gICovCisrICBpZiAoYXJnYyA9PSAy KQorKyAgICB7CisrICAgICAgbG9uZyBjb3VudCA9IHN0cnRvbCAoYXJndlsxXSwgTlVMTCwgMCk7 CisrCisrICAgICAgd2hpbGUgKGNvdW50LS0gPiAwKQorKwlwdXRzICgiMHg1NSwiKTsKKysKKysg ICAgICByZXR1cm4gMDsKKysgICAgfQorKyAgaWYgKGFyZ2MgIT0gMSkKKysgICAgcmV0dXJuIDE7 CisrCisrICBwdXRzICgic2xlZXBpbmciKTsKKysgIGZmbHVzaCAoc3Rkb3V0KTsKKysKKysgIHJl dHVybiBzbGVlcCAoNjApOworK30KKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXR0YWNoLXBpZS1taXNyZWFkLmV4cAorQEAgLTAsMCArMSwyMDkgQEAKKysjIENv cHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRoaXMgdGVzdCBvbmx5IHdvcmtzIG9uIEdOVS9M aW51eC4KKytpZiB7ICFbaXNuYXRpdmVdIHx8IFtpc19yZW1vdGUgaG9zdF0gfHwgIVtpc3Rhcmdl dCAqLWxpbnV4Kl0gfHwgW3NraXBfc2hsaWJfdGVzdHNdfSB7CisrICAgIGNvbnRpbnVlCisrfQor KworK3NldCB0ZXN0ICJhdHRhY2gtcGllLW1pc3JlYWQiCisrc2V0IHNyY2ZpbGUgJHt0ZXN0fS5j Cisrc2V0IGdlbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3R9LWdlbi5oCisrc2V0IGV4 ZWN1dGFibGUgJHt0ZXN0fQorK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVj dXRhYmxlfQorKworK2lmIHtbYnVpbGRfZXhlY3V0YWJsZSAke3Rlc3R9LmV4cCAkZXhlY3V0YWJs ZSAkc3JjZmlsZSBbbGlzdCAiYWRkaXRpb25hbF9mbGFncz0tZlBJRSAtcGllIl1dID09IC0xfSB7 CisrICAgIHJldHVybiAtMQorK30KKysKKysjIFByb2dyYW0gSGVhZGVyczoKKysjICAgVHlwZSAg ICAgICAgICAgT2Zmc2V0ICAgVmlydEFkZHIgICAgICAgICAgIFBoeXNBZGRyICAgICAgICAgICBG aWxlU2l6ICBNZW1TaXogICBGbGcgQWxpZ24KKysjICAgTE9BRCAgICAgICAgICAgMHgwMDAwMDAg MHgwMDAwMDAwMDAwNDAwMDAwIDB4MDAwMDAwMDAwMDQwMDAwMCAweDEzNGY1ZWMgMHgxMzRmNWVj IFIgRSAweDIwMDAwMAorKyMgICBMT0FEICAgICAgICAgICAweDEzNGY1ZjAgMHgwMDAwMDAwMDAx OTRmNWYwIDB4MDAwMDAwMDAwMTk0ZjVmMCAweDFkYmM2MCAweDIxNDA4OCBSVyAgMHgyMDAwMDAK KysjICAgRFlOQU1JQyAgICAgICAgMHgxMzRmNjE4IDB4MDAwMDAwMDAwMTk0ZjYxOCAweDAwMDAw MDAwMDE5NGY2MTggMHgwMDAyMDAgMHgwMDAyMDAgUlcgIDB4OAorKyMKKytwcm9jIHJlYWRfcGhk ciB7YmluZmlsZSB0ZXN0fSB7CisrICAgIHNldCByZWFkZWxmX3Byb2dyYW0gW3RyYW5zZm9ybSBy ZWFkZWxmXQorKyAgICBzZXQgY29tbWFuZCAiZXhlYyAkcmVhZGVsZl9wcm9ncmFtIC1XbCAkYmlu ZmlsZSIKKysgICAgdmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgorKyAgICBzZXQg cmVzdWx0IFtjYXRjaCAkY29tbWFuZCBvdXRwdXRdCisrICAgIHZlcmJvc2UgLWxvZyAicmVzdWx0 IGlzICRyZXN1bHQiCisrICAgIHZlcmJvc2UgLWxvZyAib3V0cHV0IGlzICRvdXRwdXQiCisrICAg IGlmIHskcmVzdWx0ICE9IDB9IHsKKysJZmFpbCAkdGVzdAorKwlyZXR1cm4KKysgICAgfQorKyAg ICBpZiAhW3JlZ2V4cCB7XG5Qcm9ncmFtIEhlYWRlcnM6XG4gKlR5cGUgW15cbl0qIEFsaWduXG4o Lio/KVxuXG59ICRvdXRwdXQgdHJhc2ggcGhkcl0geworKwlmYWlsICIkdGVzdCAobm8gUHJvZ3Jh bSBIZWFkZXJzKSIKKysJcmV0dXJuCisrICAgIH0KKysgICAgaWYgIVtyZWdleHAgLWxpbmUge14g KkRZTkFNSUMgKzB4WzAtOWEtZl0rICsoMHhbMC05YS1mXSspIH0gJHBoZHIgdHJhc2ggZHluYW1p Y192YWRkcl0geworKwlmYWlsICIkdGVzdCAobm8gRFlOQU1JQyBmb3VuZCkiCisrCXJldHVybgor KyAgICB9CisrICAgIHZlcmJvc2UgLWxvZyAiZHluYW1pY192YWRkciBpcyAkZHluYW1pY192YWRk ciIKKysgICAgc2V0IGFsaWduX21heCAtMQorKyAgICBmb3JlYWNoIHt0cmFzaCBhbGlnbn0gW3Jl Z2V4cCAtbGluZSAtYWxsIC1pbmxpbmUge14gKkxPQUQgLiogKDB4WzAtOV0rKSR9ICRwaGRyXSB7 CisrCWlmIHskYWxpZ25fbWF4IDwgJGFsaWdufSB7CisrCSAgICBzZXQgYWxpZ25fbWF4ICRhbGln bgorKwl9CisrICAgIH0KKysgICAgdmVyYm9zZSAtbG9nICJhbGlnbl9tYXggaXMgJGFsaWduX21h eCIKKysgICAgaWYgeyRhbGlnbl9tYXggPT0gLTF9IHsKKysJZmFpbCAiJHRlc3QgKG5vIExPQUQg Zm91bmQpIgorKwlyZXR1cm4KKysgICAgfQorKyAgICBwYXNzICR0ZXN0CisrICAgIHJldHVybiBb bGlzdCAkZHluYW1pY192YWRkciAkYWxpZ25fbWF4XQorK30KKysKKytzZXQgcGhkciBbcmVhZF9w aGRyICRiaW5maWxlICJyZWFkZWxmIGluaXRpYWwgc2NhbiJdCisrc2V0IGR5bmFtaWNfdmFkZHIg W2xpbmRleCAkcGhkciAwXQorK3NldCBhbGlnbl9tYXggW2xpbmRleCAkcGhkciAxXQorKworK3Nl dCBzdHViX3NpemUgW2Zvcm1hdCAweCV4IFtleHByICIyICogJGFsaWduX21heCAtICgkZHluYW1p Y192YWRkciAmICgkYWxpZ25fbWF4IC0gMSkpIl1dCisrdmVyYm9zZSAtbG9nICJzdHViX3NpemUg aXMgJHN0dWJfc2l6ZSIKKysKKysjIE9uIHg4Nl82NCBpdCBpcyBjb21tb25seSBhYm91dCA0TUIu CisraWYgeyRzdHViX3NpemUgPiAyNTAwMDAwMH0geworKyAgICB4ZmFpbCAic3R1YiBzaXplICRz dHViX3NpemUgaXMgdG9vIGxhcmdlIgorKyAgICByZXR1cm4KKyt9CisrCisrc2V0IHRlc3QgImdl bmVyYXRlIHN0dWIiCisrc2V0IGNvbW1hbmQgImV4ZWMgJGJpbmZpbGUgJHN0dWJfc2l6ZSA+JGdl bmZpbGUiCisrdmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgorK3NldCByZXN1bHQg W2NhdGNoICRjb21tYW5kIG91dHB1dF0KKyt2ZXJib3NlIC1sb2cgInJlc3VsdCBpcyAkcmVzdWx0 IgorK3ZlcmJvc2UgLWxvZyAib3V0cHV0IGlzICRvdXRwdXQiCisraWYgeyRyZXN1bHQgPT0gMH0g eworKyAgICBwYXNzICR0ZXN0CisrfSBlbHNlIHsKKysgICAgZmFpbCAkdGVzdAorK30KKysKKytp ZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHt0ZXN0fS5leHAgJGV4ZWN1dGFibGUgJHNyY2ZpbGUgW2xp c3QgImFkZGl0aW9uYWxfZmxhZ3M9LWZQSUUgLXBpZSAtREdFTj1cIiRnZW5maWxlXCIiXV0gPT0g LTF9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgeDg2XzY0IGZpbGUgaGFzIDI1TUIsIG5v IG5lZWQgdG8ga2VlcCBpdC4KKytmaWxlIGRlbGV0ZSAtLSAkZ2VuZmlsZQorKworK3NldCBwaGRy IFtyZWFkX3BoZHIgJGJpbmZpbGUgInJlYWRlbGYgcmVidWlsdCB3aXRoIHN0dWJfc2l6ZSJdCisr c2V0IGR5bmFtaWNfdmFkZHJfcHJlbGlua25vIFtsaW5kZXggJHBoZHIgMF0KKysKKytzZXQgY29t bWFuZCAiZXhlYyAvdXNyL3NiaW4vcHJlbGluayAtcSAtTiAtLW5vLWV4ZWMtc2hpZWxkIC1SICRi aW5maWxlIgorK3ZlcmJvc2UgLWxvZyAiY29tbWFuZCBpcyAkY29tbWFuZCIKKytzZXQgcmVzdWx0 IFtjYXRjaCAkY29tbWFuZCBvdXRwdXRdCisrdmVyYm9zZSAtbG9nICJyZXN1bHQgaXMgJHJlc3Vs dCIKKyt2ZXJib3NlIC1sb2cgIm91dHB1dCBpcyAkb3V0cHV0IgorKworK3NldCB0ZXN0ICJwcmVs aW5rIC1SIgorK2lmIHskcmVzdWx0ID09IDAgJiYgJG91dHB1dCA9PSAiIn0geworKyAgICBwYXNz ICR0ZXN0CisrfSBlbHNlaWYgeyRyZXN1bHQgPT0gMSAmJiBbcmVnZXhwIHteKGNvdWxkbid0IGV4 ZWN1dGUgIi91c3Ivc2Jpbi9wcmVsaW5rW15cclxuXSoiOiBubyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5XG4/KSokfSAkb3V0cHV0XX0geworKyAgICB1bnRlc3RlZCBhdHRhY2gtcGllLW1pc3JlYWQu ZXhwCisrICAgIHJldHVybiAtMQorK30gZWxzZSB7CisrICAgIGZhaWwgJHRlc3QKKyt9CisrCisr c2V0IHBoZHIgW3JlYWRfcGhkciAkYmluZmlsZSAicmVhZGVsZiB3aXRoIHByZWxpbmsgLVIiXQor K3NldCBkeW5hbWljX3ZhZGRyX3ByZWxpbmt5ZXMgW2xpbmRleCAkcGhkciAwXQorKworK3NldCBm aXJzdF9vZmZzZXQgW2Zvcm1hdCAweCV4IFtleHByICRkeW5hbWljX3ZhZGRyX3ByZWxpbmt5ZXMg LSAkZHluYW1pY192YWRkcl9wcmVsaW5rbm9dXQorK3ZlcmJvc2UgLWxvZyAiZmlyc3Rfb2Zmc2V0 IGlzICRmaXJzdF9vZmZzZXQiCisrCisrc2V0IHRlc3QgImZpcnN0IG9mZnNldCBpcyBub24temVy byIKKytpZiB7JGZpcnN0X29mZnNldCA9PSAwfSB7CisrICAgIGZhaWwgIiR0ZXN0ICgtZlBJRSAt cGllIGluIGVmZmVjdD8pIgorK30gZWxzZSB7CisrICAgIHBhc3MgJHRlc3QKKyt9CisrCisrc2V0 IHRlc3QgInN0YXJ0IGluZmVyaW9yIgorK2dkYl9leGl0CisrCisrc2V0IHJlcyBbcmVtb3RlX3Nw YXduIGhvc3QgJGJpbmZpbGVdOworK2lmIHsgJHJlcyA8IDAgfHwgJHJlcyA9PSAiIiB9IHsKKysg ICAgcGVycm9yICJTcGF3bmluZyAkYmluZmlsZSBmYWlsZWQuIgorKyAgICBmYWlsICR0ZXN0Cisr ICAgIHJldHVybgorK30KKytzZXQgcGlkIFtleHBfcGlkIC1pICRyZXNdCisrZ2RiX2V4cGVjdCB7 CisrICAgIC1yZSAic2xlZXBpbmdcclxuIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorKyAgICBl b2YgeworKwlmYWlsICIkdGVzdCAoZW9mKSIKKysJcmVtb3RlX2V4ZWMgaG9zdCAia2lsbCAtOSAk cGlkIgorKwlyZXR1cm4KKysgICAgfQorKyAgICB0aW1lb3V0IHsKKysJZmFpbCAiJHRlc3QgKHRp bWVvdXQpIgorKwlyZW1vdGVfZXhlYyBob3N0ICJraWxsIC05ICRwaWQiCisrCXJldHVybgorKyAg ICB9CisrfQorKworKyMgRHVlIHRvIGFsaWdubWVudHMgaXQgd2FzIHJlcHJvZHVjaWJsZSB3aXRo IDEgb24geDg2XzY0IGJ1dCAyIG9uIGk2ODYuCisrZm9yZWFjaCBhbGlnbl9tdWx0IHsxIDJ9IHsK KysgICAgc2V0IG9sZF9sZHByZWZpeCAkcGZfcHJlZml4CisrICAgIGxhcHBlbmQgcGZfcHJlZml4 ICJzaGlmdC1ieS0kYWxpZ25fbXVsdDoiCisrCisrICAgICMgRklYTUU6IFdlIGJlbGlldmUgdGhl cmUgaXMgZW5vdWdoIHJvb20gdW5kZXIgRklSU1RfT0ZGU0VULgorKyAgICBzZXQgc2hpZnRlZF9v ZmZzZXQgW2Zvcm1hdCAweCV4IFtleHByICIkZmlyc3Rfb2Zmc2V0IC0gJGFsaWduX211bHQgKiAk YWxpZ25fbWF4Il1dCisrICAgIHZlcmJvc2UgLWxvZyAic2hpZnRlZF9vZmZzZXQgaXMgJHNoaWZ0 ZWRfb2Zmc2V0IgorKworKyAgICBzZXQgY29tbWFuZCAiZXhlYyAvdXNyL3NiaW4vcHJlbGluayAt cSAtTiAtLW5vLWV4ZWMtc2hpZWxkIC1yICRzaGlmdGVkX29mZnNldCAkYmluZmlsZSIKKysgICAg dmVyYm9zZSAtbG9nICJjb21tYW5kIGlzICRjb21tYW5kIgorKyAgICBzZXQgcmVzdWx0IFtjYXRj aCAkY29tbWFuZCBvdXRwdXRdCisrICAgIHZlcmJvc2UgLWxvZyAicmVzdWx0IGlzICRyZXN1bHQi CisrICAgIHZlcmJvc2UgLWxvZyAib3V0cHV0IGlzICRvdXRwdXQiCisrCisrICAgIHNldCB0ZXN0 ICJwcmVsaW5rIC1yIgorKyAgICBpZiB7JHJlc3VsdCA9PSAwICYmICRvdXRwdXQgPT0gIiJ9IHsK KysJcGFzcyAkdGVzdAorKyAgICB9IGVsc2UgeworKwlmYWlsICR0ZXN0CisrICAgIH0KKysKKysg ICAgY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorKworKyAgICBzZXQgdGVzdCAiYXR0YWNoIgor KyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiYXR0YWNoICRwaWQiICR0ZXN0IHsKKysJLXJlICJBdHRh Y2hpbmcgdG8gcHJvZ3JhbTogLiosIHByb2Nlc3MgJHBpZFxyXG4iIHsKKysJICAgICMgTWlzc2lu ZyAiJGdkYl9wcm9tcHQgJCIgaXMgaW50ZW50aW9uYWwuCisrCSAgICBwYXNzICR0ZXN0CisrCX0K KysgICAgfQorKworKyAgICBzZXQgdGVzdCAiZXJyb3Igb24gQ2Fubm90IGFjY2VzcyBtZW1vcnkg YXQgYWRkcmVzcyIKKysgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworKwktcmUgIlxy XG5DYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIC4qJGdkYl9wcm9tcHQgJCIgeworKwkg ICAgZmFpbCAkdGVzdAorKwl9CisrCS1yZSAiJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAk dGVzdAorKwl9CisrICAgIH0KKysKKysgICAgZ2RiX3Rlc3QgImRldGFjaCIgIkRldGFjaGluZyBm cm9tIHByb2dyYW06IC4qIgorKworKyAgICBzZXQgcGZfcHJlZml4ICRvbGRfbGRwcmVmaXgKKyt9 CisrCisrcmVtb3RlX2V4ZWMgaG9zdCAia2lsbCAtOSAkcGlkIgorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2JyZWFrLWludGVycC5leHAKK0BAIC0yNDgsOSArMjQ4LDggQEAgcHJvYyByZWFjaCB7ZnVuYyBj b21tYW5kIGRpc3BsYWNlbWVudH0geworIAkJfQorIAkJaWYgeyRkaXNwbGFjZW1lbnQgPT0gJGNh c2V9IHsKKyAJCSAgICBwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorLQkJICAgICMgUGVybWl0IG11 bHRpcGxlIHN1Y2ggbWVzc2FnZXMuCisgCQkgICAgc2V0IGRpc3BsYWNlbWVudCAiRk9VTkQtJGRp c3BsYWNlbWVudCIKKy0JCX0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJGT1VORC0kY2FzZSJ9 IHsKKysJCX0gZWxzZSB7CisgCQkgICAgZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQKKyAJCX0KKyAJ CWV4cF9jb250aW51ZQorQEAgLTMwNCw5ICszMDMsOCBAQCBwcm9jIHRlc3RfY29yZSB7ZmlsZSBk aXNwbGFjZW1lbnR9IHsKKyAJICAgIH0KKyAJICAgIGlmIHskZGlzcGxhY2VtZW50ID09ICRjYXNl fSB7CisgCQlwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorLQkJIyBQZXJtaXQgbXVsdGlwbGUgc3Vj aCBtZXNzYWdlcy4KKyAJCXNldCBkaXNwbGFjZW1lbnQgIkZPVU5ELSRkaXNwbGFjZW1lbnQiCist CSAgICB9IGVsc2VpZiB7JGRpc3BsYWNlbWVudCAhPSAiRk9VTkQtJGNhc2UifSB7CisrCSAgICB9 IGVsc2UgeworIAkJZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQKKyAJICAgIH0KKyAJICAgIGV4cF9j b250aW51ZQorQEAgLTM2Miw5ICszNjAsOCBAQCBwcm9jIHRlc3RfYXR0YWNoX2dkYiB7ZmlsZSBw aWQgZGlzcGxhY2VtZW50IHByZWZpeH0geworIAkgICAgfQorIAkgICAgaWYgeyRkaXNwbGFjZW1l bnQgPT0gJGNhc2V9IHsKKyAJCXBhc3MgJHRlc3RfZGlzcGxhY2VtZW50CistCQkjIFBlcm1pdCBt dWx0aXBsZSBzdWNoIG1lc3NhZ2VzLgorIAkJc2V0IGRpc3BsYWNlbWVudCAiRk9VTkQtJGRpc3Bs YWNlbWVudCIKKy0JICAgIH0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJGT1VORC0kY2FzZSJ9 IHsKKysJICAgIH0gZWxzZSB7CisgCQlmYWlsICR0ZXN0X2Rpc3BsYWNlbWVudAorIAkgICAgfQor IAkgICAgZXhwX2NvbnRpbnVlCitAQCAtNDUxLDkgKzQ0OCw3IEBACisgICAgIGdkYl90ZXN0ICJi dCIgIiMwICtcW15cclxuXF0qXFxtZGxfbWFpblxcTS4qIiAiZGwgYnQiCisgCisgICAgIGlmICRp Zm1haW4geworLQkjIERpc3BsYWNlbWVudCBtZXNzYWdlIHdpbGwgYmUgcHJpbnRlZCB0aGUgc2Vj b25kIHRpbWUgb24gaW5pdGlhbGl6aW5nCistCSMgdGhlIGxpbmtlciBmcm9tIHN2cjRfc3BlY2lh bF9zeW1ib2xfaGFuZGxpbmcuCistCXJlYWNoICJtYWluIiBjb250aW51ZSAkZGlzcGxhY2VtZW50 CisrCXJlYWNoICJtYWluIiBjb250aW51ZSAiTk9ORSIKKyAKKyAJcmVhY2ggImxpYmZ1bmMiIGNv bnRpbnVlICJOT05FIgorIAorQEAgLTUyOCw5ICs1MTcsOCBAQCBwcm9jIHRlc3RfbGQge2ZpbGUg aWZtYWluIHRyeW5vc3ltIGRpc3BsYWNlbWVudH0geworIAkJfQorIAkJaWYgeyRkaXNwbGFjZW1l bnQgPT0gJGNhc2V9IHsKKyAJCSAgICBwYXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorLQkJICAgICMg UGVybWl0IG11bHRpcGxlIHN1Y2ggbWVzc2FnZXMuCisgCQkgICAgc2V0IGRpc3BsYWNlbWVudCAi Rk9VTkQtJGRpc3BsYWNlbWVudCIKKy0JCX0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJGT1VO RC0kY2FzZSJ9IHsKKysJCX0gZWxzZSB7CisgCQkgICAgZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQK KyAJCX0KKyAJCWV4cF9jb250aW51ZQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXBpZS1yZXJ1bi5wYXRj aCBiL2dkYi1waWUtcmVydW4ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZGQwNjgwNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1waWUtcmVydW4ucGF0Y2gKQEAgLTAs MCArMSwxMjcgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAz L21zZzAwODY4Lmh0bWwKK1N1YmplY3Q6IFtwYXRjaF0gUElFOiBGaXggYmFjayByZS1ydW4gIFtS ZTogW3BhdGNoXSBzdnI0X2V4ZWNfZGlzcGxhY2VtZW50ICBzdWNjZXNzIGluZGljYXRvcl0KKwor SGksCisKK2N1cnJlbnRseToKKworJCBlY2hvICdtYWluKCl7fSd8Z2NjIC1vIDEgLWZQSUUgLXBp ZSAteCBjIC07IC4vZ2RiIC1ueCAtZXggJ3NldCBkaXNhYmxlLXJhbmRvbWl6YXRpb24gb2ZmJyAt ZXggJ2IgbWFpbicgLWV4IHIgLWV4IGMgLWV4IHIgLi8xCitCcmVha3BvaW50IDEgYXQgMHg2YjAK K1N0YXJ0aW5nIHByb2dyYW06IC9ob21lL2prcmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2RiL3Rl c3RzdWl0ZS8xIAorQnJlYWtwb2ludCAxLCAweDAwMDA3ZmJmNzNlOGM2YjAgaW4gbWFpbiAoKQor Q29udGludWluZy4KK1Byb2dyYW0gZXhpdGVkIHdpdGggY29kZSAwMTQwLgorU3RhcnRpbmcgcHJv Z3JhbTogL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi1jbGVhbi9nZGIvdGVzdHN1aXRlLzEgCitF cnJvciBpbiByZS1zZXR0aW5nIGJyZWFrcG9pbnQgMTogQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQg YWRkcmVzcyAweDdmYmY3M2U4YzZhYworCitJdCBpcyBzaW5jZToKKwlbcGF0Y2hdIHN2cjRfZXhl Y19kaXNwbGFjZW1lbnQgc3VjY2VzcyBpbmRpY2F0b3IgW1JlOiBQSUUgcXVlc3Rpb25dCisJaHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDMvbXNnMDAzMzYuaHRtbAor CisKK09uIE1vbiwgMDggTWFyIDIwMTAgMjI6NTM6NTggKzAxMDAsIEphbiBLcmF0b2NodmlsIHdy b3RlOgorPiBBdHRhY2hlZCB0aGVzZSBjaGFuZ2VzOgorPiAKKz4gKiBzdnI0X2V4ZWNfZGlzcGxh Y2VtZW50IGNhbGxpbmcgY29udmVudGlvbiBzaG91bGQgaGF2ZSBzdWNjZXNzIGluZGljYXRvci4K Kz4gCis+ICogUHJlc2VydmluZyBub3cgc2VjdGlvbl9vZmZzZXRzIGlmIHRoZXkgYXJlIGFscmVh ZHkgc2V0LCBpbnNwaXJlZCBieQorPiAgIGluaXRfb2JqZmlsZV9zZWN0X2luZGljZXMuCis+IAor PiBJIGJlbGlldmUgZWl0aGVyIG9mIHBhcnRzIHdvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIHRoaXMg cHJvYmxlbS4KKworVGhlIGZpcnN0IHBhcnQgaGFzIGNhdXNlZCB0aGUgcmVncmVzc2lvbiBmb3Ig UElFIG9uIG5hdGl2ZSB4ODYqIEdOVS9MaW51eCBob3N0LgorCitBcyBJIGJlbGlldmUgZm9yIERh bmllbCBKLidzIHNlZW4gcmVncmVzc2lvbiBvZiBgcU9mZnNldHMnIHRoZSBzZWNvbmQgYWxyZWFk eQorY2hlY2tlZC1pbiBwYXJ0IGlzIHN1ZmZpY2llbnQgLSBJIHdvdWxkIGxpa2UgdG8gcmVtb3Zl IHRoZSBmaXJzdCBwYXJ0LgorCitPSyB0byBjaGVjayBpdCBpbj8KKworTm8gcmVncmVzc2lvbnMg b24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYTEyLWxpbnV4LWdudS4KKworKEkgZG8g bm90IHRoaW5rIG9uZSBuZWVkcyB0byB0aGluayBhYm91dCA3LjEtYnJhbmNoIGFzIGl0IGlzIG5v dCBhIHJlZ3Jlc3Npb24KK2FnYWluc3QgYW55IEZTRiBHREIgcmVsZWFzZS4pCisKKworVGhhbmtz LAorSmFuCisKKworZ2RiLworMjAxMC0wMy0yNSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgorCisJRml4IHJlLXJ1biBvZiBQSUUgZXhlY3V0YWJsZS4KKwkqIHNv bGliLXN2cjQuYyAoc3ZyNF9yZWxvY2F0ZV9tYWluX2V4ZWN1dGFibGUpIDxzeW1maWxlX29iamZp bGU+OiBSZW1vdmUKKwl0aGUgcGFydCBvZiBwcmUtc2V0IFNZTUZJTEVfT0JKRklMRS0+U0VDVElP Tl9PRkZTRVRTLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0wMy0yNSAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJRml4IHJlLXJ1biBvZiBQSUUgZXhlY3V0 YWJsZS4KKwkqIGdkYi5iYXNlL2JyZWFrLWludGVycC5leHAgKHRlc3RfbGQpOiBUdXJuIG9mZiAi ZGlzYWJsZS1yYW5kb21pemF0aW9uIi4KKwlSZW1vdmUgJGRpc3BsYWNlbWVudF9tYWluIHRvIG1h dGNoIHRoZSBzb2xpYi1zdnI0LmMgY2hhbmdlLiAgTmV3ICJraWxsIgorCWFuZCByZS0icnVuIiBv ZiB0aGUgaW5mZXJpb3IuCisKKy0tLSBhL2dkYi9zb2xpYi1zdnI0LmMKKysrKyBiL2dkYi9zb2xp Yi1zdnI0LmMKK0BAIC0xNzkxLDE3ICsxNzkxLDEwIEBAIHN2cjRfcmVsb2NhdGVfbWFpbl9leGVj dXRhYmxlICh2b2lkKQorIHsKKyAgIENPUkVfQUREUiBkaXNwbGFjZW1lbnQ7CisgCistICBpZiAo c3ltZmlsZV9vYmpmaWxlKQorLSAgICB7CistICAgICAgaW50IGk7CistCistICAgICAgLyogUmVt b3RlIHRhcmdldCBtYXkgaGF2ZSBhbHJlYWR5IHNldCBzcGVjaWZpYyBvZmZzZXRzIGJ5IGBxT2Zm c2V0cycKKy0JIHdoaWNoIHNob3VsZCBiZSBwcmVmZXJyZWQuICAqLworLQorLSAgICAgIGZvciAo aSA9IDA7IGkgPCBzeW1maWxlX29iamZpbGUtPm51bV9zZWN0aW9uczsgaSsrKQorLQlpZiAoQU5P RkZTRVQgKHN5bWZpbGVfb2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBpKSAhPSAwKQorLQkgIHJl dHVybjsKKy0gICAgfQorKyAgLyogU1lNRklMRV9PQkpGSUxFLT5TRUNUSU9OX09GRlNFVFMgbWF5 IG5vdyBjb250YWluIGRpc3BsYWNlbWVudCBmcm9tIHRoZQorKyAgICAgcHJldmlvdXMgcnVuIG9m IHRoZSBpbmZlcmlvci4gIFJlLXNldCBpdCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgdmFsdWUs CisrICAgICBpZiB3ZSBjYW4gZmluZCBpdCBvdXQuICBCdXQgb3RoZXJ3aXNlIGtlZXAgaXQgYXMg Zm9yIHJlbW90ZSB0YXJnZXQgaXQgbWF5CisrICAgICBoYXZlIGJlZW4gcHJlLXNldCBieSB0aGUg YHFPZmZzZXRzJyBwYWNrZXQuICAqLworIAorICAgaWYgKCEgc3ZyNF9leGVjX2Rpc3BsYWNlbWVu dCAoJmRpc3BsYWNlbWVudCkpCisgICAgIHJldHVybjsKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYnJlYWstaW50ZXJwLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVh ay1pbnRlcnAuZXhwCitAQCAtNDE2LDI1ICs0MTYsMjggQEAgcHJvYyB0ZXN0X2xkIHtmaWxlIGlm bWFpbiB0cnlub3N5bSBkaXNwbGFjZW1lbnR9IHsKKyAgICAgIyBQcmludCB0aGUgIlBJRSAoUG9z aXRpb24gSW5kZXBlbmRlbnQgRXhlY3V0YWJsZSkgZGlzcGxhY2VtZW50IiBtZXNzYWdlLgorICAg ICBnZGJfdGVzdCAic2V0IHZlcmJvc2Ugb24iCisgCisrICAgICMgQSBiaXQgYmV0dGVyIHRlc3Qg Y292ZXJhZ2UuCisrICAgIGdkYl90ZXN0ICJzZXQgZGlzYWJsZS1yYW5kb21pemF0aW9uIG9mZiIK KysKKyAgICAgcmVhY2ggImRsX21haW4iICJydW4gc2VndiIgJGRpc3BsYWNlbWVudAorIAorICAg ICBnZGJfdGVzdCAiYnQiICIjMCArXFteXHJcblxdKlxcbWRsX21haW5cXE0uKiIgImRsIGJ0Igor IAorICAgICBpZiAkaWZtYWluIHsKKyAJIyBEaXNwbGFjZW1lbnQgbWVzc2FnZSB3aWxsIGJlIHBy aW50ZWQgdGhlIHNlY29uZCB0aW1lIG9uIGluaXRpYWxpemluZworLQkjIHRoZSBsaW5rZXIgZnJv bSBzdnI0X3NwZWNpYWxfc3ltYm9sX2hhbmRsaW5nLiAgSWYgYW55IEFOT0ZGU0VUIGhhcworLQkj IGJlZW4gYWxyZWFkeSBzZXQgYXMgbm9uLXplcm8gdGhlIGRldGVjdGlvbiB3aWxsIG5vIGxvbmdl ciBiZSBydW4uCistCWlmIHskZGlzcGxhY2VtZW50ID09ICJOT05aRVJPIn0geworLQkgICAgc2V0 IGRpc3BsYWNlbWVudF9tYWluICJOT05FIgorLQl9IGVsc2UgeworLQkgICAgc2V0IGRpc3BsYWNl bWVudF9tYWluICRkaXNwbGFjZW1lbnQKKy0JfQorLQlyZWFjaCAibWFpbiIgY29udGludWUgJGRp c3BsYWNlbWVudF9tYWluCisrCSMgdGhlIGxpbmtlciBmcm9tIHN2cjRfc3BlY2lhbF9zeW1ib2xf aGFuZGxpbmcuCisrCXJlYWNoICJtYWluIiBjb250aW51ZSAkZGlzcGxhY2VtZW50CisgCisgCXJl YWNoICJsaWJmdW5jIiBjb250aW51ZSAiTk9ORSIKKyAKKyAJZ2RiX3Rlc3QgImJ0IiAiIzAgK1xb XlxyXG5cXSpcXG1saWJmdW5jXFxNXFteXHJcblxdKlxyXG4jMSArXFteXHJcblxdKlxcbW1haW5c XE0uKiIgIm1haW4gYnQiCisrICAgIH0KKyAKKysgICAgIyBUcnkgcmUtcnVuIGlmIHRoZSBuZXcg UElFIGRpc3BsYWNlbWVudCB0YWtlcyBlZmZlY3QuCisrICAgIGdkYl90ZXN0ICJraWxsIiAiIiAi a2lsbCIge0tpbGwgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWRcPyBcKHkgb3IgblwpIH0gInki CisrICAgIHJlYWNoICJkbF9tYWluIiAicnVuICBzZWd2IiAkZGlzcGxhY2VtZW50CisrCisrICAg IGlmICRpZm1haW4geworIAl0ZXN0X2NvcmUgJGZpbGUgJGRpc3BsYWNlbWVudAorIAorIAl0ZXN0 X2F0dGFjaCAkZmlsZSAkZGlzcGxhY2VtZW50CisKCmRpZmYgLS1naXQgYS9nZGItcmVhZGxpbmUt Ni4wLXNpZ25hbC5wYXRjaCBiL2dkYi1yZWFkbGluZS02LjAtc2lnbmFsLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjhjOGM2Li4wMDAwMDAwCi0tLSBhL2dkYi1yZWFkbGlu ZS02LjAtc2lnbmFsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjQ4ICswLDAgQEAKLWh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA5LTExL21zZzAwNTk2Lmh0bWwKLVN1 YmplY3Q6IFtnZGIgRllJLXBhdGNoXSBjYWxsYmFjay1tb2RlIHJlYWRsaW5lLTYuMCByZWdyZXNz aW9uCi0KLUhpIENoZXQsCi0KLUZTRiBHREIgY3VycmVudGx5IHNoaXBzIGJ1bmRsZWQgd2l0aCBy ZWFkbGluZS01LjIgd2hpY2ggd29ya3MgZmluZS4KLUJ1dCB1c2luZyAtLXdpdGgtc3lzdGVtLXJl YWRsaW5lIGFuZCByZWFkbGluZS02LjAtcGF0Y2hsZXZlbDQgaGFzCi1hIHJlZ3Jlc3Npb246Ci0K LXJlYWRsaW5lLTUuMjogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlwZSBDVFJMLUM6Ci0oZ2RiKSBR dWl0Ci0oZ2RiKSBfCi0KLXJlYWRsaW5lLTYuMDogUnVuIGBnZGIgLW54IC1xJyBhbmQgdHlwZSBD VFJMLUM6Ci0oZ2RiKSBfCi0gPSBub3RoaW5nIGhhcHBlbnMgKGl0IGdldHMgYnVmZmVyZWQgYW5k IGV4ZWN1dGVkIGxhdGVyKQotCShJdCBkb2VzIGFsc28gRkFJTCBvbiBnZGIuZ2RiL3NlbGZ0ZXN0 LmV4cC4pCi0KLUl0IGlzIGJlY2F1c2UgR0RCIHdhaXRzIGluIGl0cyBvd24gcG9sbCgpIG1haW5s b29wIGFuZCByZWFkbGluZSB1c2VzIHZpYQotcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIGFu ZCBybF9jYWxsYmFja19oYW5kbGVyX3JlbW92ZS4gIFRoaXMgd2F5IHRoZQotcmVhZGxpbmUgaW50 ZXJuYWwgdmFyaWFibGUgX3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSByZW1haW5zIDAgYW5kIENU UkwtQyBnZXRzCi1vbmx5IHN0b3JlZCB0byBfcmxfY2F1Z2h0X3NpZ25hbCBidXQgbm90IGV4ZWN1 dGVkLgotCi1TZWVuIGluIHJsX3NpZ25hbF9oYW5kbGVyIGV2ZW4gaWYgX3JsX2ludGVycnVwdF9p bW1lZGlhdGVseSBpcyBzZXQgYW5kCi1fcmxfaGFuZGxlX3NpZ25hbCBpcyBjYWxsZWQgdGhlbiB0 aGUgc2lnbmFsIGlzIHN0aWxsIHN0b3JlZCB0bwotX3JsX2NhdWdodF9zaWduYWwuICBJbiB0aGUg X3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSBjYXNlIGl0IHNob3VsZCBub3QgYmUKLXN0b3JlZCB3 aGVuIGl0IHdhcyBhbHJlYWR5IHByb2Nlc3NlZC4KLQotcmxfc2lnbmFsX2hhbmRsZXIgZG9lcyBg X3JsX2ludGVycnVwdF9pbW1lZGlhdGVseSA9IDA7JyAtIHdoaWxlIEkgYW0gbm90IGF3YXJlCi1v ZiBpdHMgbWVhbmluZyBpdCBicmVha3MgdGhlIG5lc3QtY291bnRpbmcgb2Ygb3RoZXIgcm91dGlu ZXMgd2hpY2ggZG8KLWBfcmxfaW50ZXJydXB0X2ltbWVkaWF0ZWx5Kys7JyBhbmQgYF9ybF9pbnRl cnJ1cHRfaW1tZWRpYXRlbHktLTsnIHBvc3NpYmx5Ci1jcmVhdGluZyBwcm9ibGVtYXRpYyBgX3Js X2ludGVycnVwdF9pbW1lZGlhdGVseSA9PSAtMScuCi0KLWBfcmxfaW50ZXJydXB0X2ltbWVkaWF0 ZWx5JyBpcyBhbiBpbnRlcm5hbCB2YXJpYWJsZSwgaG93IGl0IGNvdWxkIGJlIGFjY2Vzc2VkCi1i eSBhIHJlYWRsaW5lIGFwcGxpY2F0aW9uPyAoT0ssIG1heWJlIGl0IHNob3VsZCBub3QgYmUgdXNl ZC4pCi0KLUF0dGFjaGluZyBhIGN1cnJlbnQgR0RCLXNpZGUgcGF0Y2ggYnV0IGl0IG11c3QgYWNj ZXNzIHJlYWRsaW5lIGludGVybmFsCi12YXJpYWJsZSBfcmxfY2F1Z2h0X3NpZ25hbCBhbmQgaXQg aXMgZ2VuZXJhbGx5IGp1c3QgYSB3b3JrYXJvdW5kLiAgQ291bGQgeW91Ci1wbGVhc2UgaW5jbHVk ZSBzdXBwb3J0IGZvciBzaWduYWxzIGluIHRoaXMgYXN5bmNocm9ub3VzIG1vZGUgaW4gcmVhZGxp bmUtNi4xPwotSSBmaW5kIGl0IHdvdWxkIGJlIGVub3VnaCB0byBtYWtlIFJMX0NIRUNLX1NJR05B TFMgcHVibGljPwotCi0KLUdEQjogTm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMy LGk2ODZ9LWZlZG9yYTEyLWxpbnV4LWdudS4KLUJ1dCB0aGlzIGlzIG5vdCBhIHBhdGNoIGludGVu ZGVkIHRvIGJlIGFjY2VwdGVkLgotCi0KLVRoYW5rcywKLUphbgotCi0KLWdkYi8KLTIwMDktMTEt MjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogY29u ZmlnLmluLCBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCi0JKiBjb25maWd1cmUuYWMgKGZvciByZWFk bGluZV9lY2hvaW5nX3ApOiBNb3ZlIGluc2lkZSAkTElCUyBjaGFuZ2UuCi0JKGZvciBfcmxfY2F1 Z2h0X3NpZ25hbCk6IE5ldy4KLQkqIGV2ZW50LWxvb3AuYzogSW5jbHVkZSByZWFkbGluZS9yZWFk bGluZS5oLgotCShnZGJfZG9fb25lX2V2ZW50KSBbSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFM XTogTmV3LgotCi1nZGIvdGVzdHN1aXRlLwotMjAwOS0xMS0yOSAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cCAoYmFj a3RyYWNlIHRocm91Z2ggc2lnbmFsIGhhbmRsZXIpOiBNb3ZlIGJlZm9yZQotCVNJR0lOVCBwYXNz LCBkcm9wIHRoZSB0aW1lb3V0IGNhc2UuCi0JKHNlbmQgU0lHSU5UIHNpZ25hbCB0byBjaGlsZCBw cm9jZXNzKTogVXNlIGdkYl90ZXN0LgotCShiYWNrdHJhY2UgdGhyb3VnaCByZWFkbGluZSBoYW5k bGVyKTogTmV3LgotCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvY29uZmlnLmluCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9jb25maWcuaW4JMjAx MC0wMS0xNSAxMjo0ODowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1 L2dkYi9jb25maWcuaW4JMjAxMC0wMS0xNSAxMjo0ODo0MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0z NTksNiArMzU5LDkgQEAKLSAvKiBEZWZpbmUgaWYgUHl0aG9uIGludGVycHJldGVyIGlzIGJlaW5n IGxpbmtlZCBpbi4gKi8KLSAjdW5kZWYgSEFWRV9QWVRIT04KLSAKLSsvKiByZWFkbGluZS02LjAg d29ya2Fyb3VuZCBvZiBibG9ja2VkIHNpZ25hbHMuICovCi0rI3VuZGVmIEhBVkVfUkVBRExJTkVf Q0FVR0hUX1NJR05BTAotKwotIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVhbHBh dGgnIGZ1bmN0aW9uLiAqLwotICN1bmRlZiBIQVZFX1JFQUxQQVRICi0gCi1JbmRleDogZ2RiLTcu MC41MC4yMDEwMDExNS9nZGIvY29uZmlndXJlLmFjCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41 MC4yMDEwMDExNS5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxMC0wMS0xNSAxMjo0ODowNC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAwMTE1L2dkYi9jb25maWd1cmUuYWMJMjAx MC0wMS0xNSAxMjo0ODo0MC4wMDAwMDAwMDAgKzAxMDAKLUBAIC03NzcsMTcgKzc3NywyNSBAQCBp ZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxpbmUiID0geWVzOyB0Ci0gICAjIHJlYWRsaW5lLTYu MCBzdGFydGVkIHRvIHVzZSB0aGUgbmFtZSBgX3JsX2VjaG9pbmdfcCcuCi0gICAjIGAkKFJFQURM SU5FX0RJUikvJyBvZiBidW5kbGVkIHJlYWRsaW5lIHdvdWxkIG5vdCByZXNvbHZlIGluIGNvbmZp Z3VyZS4KLSAKLS0gIEFDX01TR19DSEVDS0lORyhbZm9yIHJlYWRsaW5lX2VjaG9pbmdfcF0pCi0g ICBzYXZlX0xJQlM9JExJQlMKLSAgIExJQlM9IiRMSUJTICRSRUFETElORSIKLSsgIEFDX01TR19D SEVDS0lORyhbZm9yIHJlYWRsaW5lX2VjaG9pbmdfcF0pCi0gICBBQ19MSU5LX0lGRUxTRShBQ19M QU5HX1BST0dSQU0oLFtbZXh0ZXJuIGludCByZWFkbGluZV9lY2hvaW5nX3A7Ci0gCQkJCSAgICBy ZXR1cm4gcmVhZGxpbmVfZWNob2luZ19wO11dKSwKLSAJCSBbUkVBRExJTkVfRUNIT0lOR19QPXll c10sCi0gCQkgW1JFQURMSU5FX0VDSE9JTkdfUD1ubwotIAkJICBBQ19ERUZJTkUoW3JlYWRsaW5l X2VjaG9pbmdfcF0sIFtfcmxfZWNob2luZ19wXSwKLSAJCQkgICAgW3JlYWRsaW5lLTYuMCBzdGFy dGVkIHRvIHVzZSBkaWZmZXJlbnQgbmFtZS5dKV0pCi0tICBMSUJTPSIkc2F2ZV9MSUJTIgotICAg QUNfTVNHX1JFU1VMVChbJFJFQURMSU5FX0VDSE9JTkdfUF0pCi0rICBBQ19NU0dfQ0hFQ0tJTkco W2ZvciBfcmxfY2F1Z2h0X3NpZ25hbF0pCi0rICBBQ19MSU5LX0lGRUxTRShBQ19MQU5HX1BST0dS QU0oLFtbZXh0ZXJuIGludCB2b2xhdGlsZSBfcmxfY2F1Z2h0X3NpZ25hbDsKLSsJCQkJICAgIHJl dHVybiBfcmxfY2F1Z2h0X3NpZ25hbDtdXSksCi0rCQkgW1JFQURMSU5FX0NBVUdIVF9TSUdOQUw9 eWVzCi0rCQkgIEFDX0RFRklORShbSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFMXSwsCi0rCQkJ ICAgIFtyZWFkbGluZS02LjAgd29ya2Fyb3VuZCBvZiBibG9ja2VkIHNpZ25hbHMuXSldLAotKwkJ IFtSRUFETElORV9DQVVHSFRfU0lHTkFMPW5vXSkKLSsgIEFDX01TR19SRVNVTFQoWyRSRUFETElO RV9DQVVHSFRfU0lHTkFMXSkKLSsgIExJQlM9IiRzYXZlX0xJQlMiCi0gZWxzZQotICAgUkVBRExJ TkU9JyQoUkVBRExJTkVfRElSKS9saWJyZWFkbGluZS5hJwotICAgUkVBRExJTkVfREVQUz0nJChS RUFETElORSknCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvZXZlbnQtbG9vcC5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9ldmVudC1sb29wLmMJ MjAxMC0wMS0wMSAwODozMTozMS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIwMTAw MTE1L2dkYi9ldmVudC1sb29wLmMJMjAxMC0wMS0xNSAxMjo0ODo0MC4wMDAwMDAwMDAgKzAxMDAK LUBAIC0zNyw2ICszNyw3IEBACi0gI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKLSAjaW5jbHVkZSAi Z2RiX2Fzc2VydC5oIgotICNpbmNsdWRlICJnZGJfc2VsZWN0LmgiCi0rI2luY2x1ZGUgInJlYWRs aW5lL3JlYWRsaW5lLmgiCi0gCi0gLyogRGF0YSBwb2ludCB0byBwYXNzIHRvIHRoZSBldmVudCBo YW5kbGVyLiAgKi8KLSB0eXBlZGVmIHVuaW9uIGV2ZW50X2RhdGEKLUBAIC00MTEsNiArNDEyLDkg QEAgZ2RiX2RvX29uZV9ldmVudCAodm9pZCAqZGF0YSkKLSAgIHN0YXRpYyBpbnQgZXZlbnRfc291 cmNlX2hlYWQgPSAwOwotICAgY29uc3QgaW50IG51bWJlcl9vZl9zb3VyY2VzID0gMzsKLSAgIGlu dCBjdXJyZW50ID0gMDsKLSsjaWZkZWYgSEFWRV9SRUFETElORV9DQVVHSFRfU0lHTkFMCi0rICBl eHRlcm4gaW50IHZvbGF0aWxlIF9ybF9jYXVnaHRfc2lnbmFsOwotKyNlbmRpZgotIAotICAgLyog QW55IGV2ZW50cyBhbHJlYWR5IHdhaXRpbmcgaW4gdGhlIHF1ZXVlPyAgKi8KLSAgIGlmIChwcm9j ZXNzX2V2ZW50ICgpKQotQEAgLTQ1NSw2ICs0NTksMTYgQEAgZ2RiX2RvX29uZV9ldmVudCAodm9p ZCAqZGF0YSkKLSAgIGlmIChnZGJfd2FpdF9mb3JfZXZlbnQgKDEpIDwgMCkKLSAgICAgcmV0dXJu IC0xOwotIAotKyNpZmRlZiBIQVZFX1JFQURMSU5FX0NBVUdIVF9TSUdOQUwKLSsgIGlmIChhc3lu Y19jb21tYW5kX2VkaXRpbmdfcCAmJiBSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykKLSsg ICAgICAmJiBfcmxfY2F1Z2h0X3NpZ25hbCkKLSsgICAgewotKyAgICAgIC8qIENhbGwgUkxfQ0hF Q0tfU0lHTkFMUyB0aGlzIHdheS4gICovCi0rICAgICAgcmxfY2FsbGJhY2tfaGFuZGxlcl9yZW1v dmUgKCk7Ci0rICAgICAgcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIChOVUxMLCBpbnB1dF9o YW5kbGVyKTsKLSsgICAgfQotKyNlbmRpZgotKwotICAgLyogSGFuZGxlIGFueSBuZXcgZXZlbnRz IG9jY3VycmVkIHdoaWxlIHdhaXRpbmcuICAqLwotICAgaWYgKHByb2Nlc3NfZXZlbnQgKCkpCi0g ICAgIHJldHVybiAxOwotSW5kZXg6IGdkYi03LjAuNTAuMjAxMDAxMTUvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjAuNTAuMjAxMDAxMTUu b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTAtMDEtMTUgMTI6NDg6 MDEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvdGVzdHN1aXRl L2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTAtMDEtMTUgMTI6NDg6NDAuMDAwMDAwMDAwICswMTAw Ci1AQCAtNDcxLDMxICs0NzEsNDIgQEAgR0RCLipDb3B5cmlnaHQgXFswLTlcXSsgRnJlZSBTb2Z0 d2FyZSBGbwotIAkgICAgZmFpbCAiJGRlc2NyaXB0aW9uICh0aW1lb3V0KSIKLSAJfQotICAgICB9 Ci0tICAgIAotLSAgICBzZXQgZGVzY3JpcHRpb24gInNlbmQgU0lHSU5UIHNpZ25hbCB0byBjaGls ZCBwcm9jZXNzIgotLSAgICBzZW5kX2dkYiAic2lnbmFsIFNJR0lOVFxuIgotLSAgICBnZGJfZXhw ZWN0IHsKLS0JLXJlICJDb250aW51aW5nIHdpdGggc2lnbmFsIFNJR0lOVC4qJGdkYl9wcm9tcHQg JCIgewotKwotKyAgICAjIGdldCBhIHN0YWNrIHRyYWNlIHdpdGggdGhlIHBvbGwgZnVuY3Rpb24K LSsgICAgIwotKyAgICAjIFRoaXMgZmFpbHMgb24gc29tZSBsaW51eCBzeXN0ZW1zIGZvciB1bmtu b3duIHJlYXNvbnMuICBPbiB0aGUKLSsgICAgIyBzeXN0ZW1zIHdoZXJlIGl0IGZhaWxzLCBzb21l dGltZXMgaXQgd29ya3MgZmluZSB3aGVuIHJ1biBtYW51YWxseS4KLSsgICAgIyBUaGUgdGVzdHN1 aXRlIGZhaWx1cmVzIG1heSBub3QgYmUgbGltaXRlZCB0byBqdXN0IGFvdXQgc3lzdGVtcy4KLSsg ICAgc2V0dXBfeGZhaWwgImkqODYtcGMtbGludXhhb3V0LWdudSIKLSsgICAgc2V0IGRlc2NyaXB0 aW9uICJiYWNrdHJhY2UgdGhyb3VnaCBzaWduYWwgaGFuZGxlciIKLSsgICAgZ2RiX3Rlc3RfbXVs dGlwbGUgImJhY2t0cmFjZSIgJGRlc2NyaXB0aW9uIHsKLSsJLXJlICIjMC4qKHJlYWR8cG9sbCku KmluIG1haW4gXFwoLipcXCkgYXQgLipnZGJcXC5jLiokZ2RiX3Byb21wdCAkIiB7Ci0gCSAgICBw YXNzICIkZGVzY3JpcHRpb24iCi0gCX0KLSAJLXJlICIuKiRnZGJfcHJvbXB0ICQiIHsKLSsJICAg ICMgT24gdGhlIGFscGhhLCB3ZSBoaXQgdGhlIGluZmFtb3VzIHByb2JsZW0gYWJvdXQgZ2RiCi0r CSAgICAjIGJlaW5nIHVuYWJsZSB0byBnZXQgdGhlIGZyYW1lIHBvaW50ZXIgKG1lbnRpb25lZCBp bgotKwkgICAgIyBnZGIvUkVBRE1FKS4gIEFzIGl0IGlzIGludGVybWl0dGVudCwgdGhlcmUgaXMg bm8gd2F5IHRvCi0rCSAgICAjIFhGQUlMIGl0IHdoaWNoIHdpbGwgZ2l2ZSB1cyBhbiBYUEFTUyBp ZiB0aGUgcHJvYmxlbSBnb2VzCi0rCSAgICAjIGF3YXkuCi0rCSAgICBzZXR1cF94ZmFpbCAiYWxw aGEqLSotb3NmKiIKLSAJICAgIGZhaWwgIiRkZXNjcmlwdGlvbiIKLSAJfQotLQl0aW1lb3V0IHsK LS0JICAgIGZhaWwgIiRkZXNjcmlwdGlvbiAodGltZW91dCkiCi0tCX0KLSAgICAgfQotICAgICAK LS0gICAgIyBnZXQgYSBzdGFjayB0cmFjZQotKyAgICBnZGJfdGVzdCAic2lnbmFsIFNJR0lOVCIg IkNvbnRpbnVpbmcgd2l0aCBzaWduYWwgU0lHSU5ULioiIFwKLSsJICAgICAic2VuZCBTSUdJTlQg c2lnbmFsIHRvIGNoaWxkIHByb2Nlc3MiCi0rICAgIAotKyAgICAjIGdldCBhIHN0YWNrIHRyYWNl IGJlaW5nIHJlZGVsaXZlcmVkIGJ5IHJlYWRsaW5lCi0gICAgICMKLSAgICAgIyBUaGlzIGZhaWxz IG9uIHNvbWUgbGludXggc3lzdGVtcyBmb3IgdW5rbm93biByZWFzb25zLiAgT24gdGhlCi0gICAg ICMgc3lzdGVtcyB3aGVyZSBpdCBmYWlscywgc29tZXRpbWVzIGl0IHdvcmtzIGZpbmUgd2hlbiBy dW4gbWFudWFsbHkuCi0gICAgICMgVGhlIHRlc3RzdWl0ZSBmYWlsdXJlcyBtYXkgbm90IGJlIGxp bWl0ZWQgdG8ganVzdCBhb3V0IHN5c3RlbXMuCi0rICAgICMgT3B0aW9uYWwgc3lzdGVtIHJlYWRs aW5lIG1heSBub3QgaGF2ZSBzeW1ib2xzIHRvIGJlIHNob3duLgotICAgICBzZXR1cF94ZmFpbCAi aSo4Ni1wYy1saW51eGFvdXQtZ251IgotLSAgICBzZXQgZGVzY3JpcHRpb24gImJhY2t0cmFjZSB0 aHJvdWdoIHNpZ25hbCBoYW5kbGVyIgotLSAgICBzZW5kX2dkYiAiYmFja3RyYWNlXG4iCi0tICAg IGdkYl9leHBlY3QgewotLQktcmUgIiMwLioocmVhZHxwb2xsKS4qaW4gbWFpbiBcXCguKlxcKSBh dCAuKmdkYlxcLmMuKiRnZGJfcHJvbXB0ICQiIHsKLSsgICAgc2V0IGRlc2NyaXB0aW9uICJiYWNr dHJhY2UgdGhyb3VnaCByZWFkbGluZSBoYW5kbGVyIgotKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAi YmFja3RyYWNlIiAkZGVzY3JpcHRpb24gewotKwktcmUgIiMwLipnZGJfZG9fb25lX2V2ZW50Lipp biBtYWluIFxcKC4qXFwpIGF0IC4qZ2RiXFwuYy4qJGdkYl9wcm9tcHQgJCIgewotIAkgICAgcGFz cyAiJGRlc2NyaXB0aW9uIgotIAl9Ci0gCS1yZSAiLiokZ2RiX3Byb21wdCAkIiB7Ci1AQCAtNTA3 LDkgKzUxOCw2IEBAIEdEQi4qQ29weXJpZ2h0IFxbMC05XF0rIEZyZWUgU29mdHdhcmUgRm8KLSAJ ICAgIHNldHVwX3hmYWlsICJhbHBoYSotKi1vc2YqIgotIAkgICAgZmFpbCAiJGRlc2NyaXB0aW9u IgotIAl9Ci0tCXRpbWVvdXQgewotLQkgICAgZmFpbCAiJGRlc2NyaXB0aW9uICh0aW1lb3V0KSIK LS0JfQotICAgICB9Ci0gCi0gCi1JbmRleDogZ2RiLTcuMC41MC4yMDEwMDExNS9nZGIvY29uZmln dXJlCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMC41MC4yMDEwMDExNS5vcmlnL2dkYi9jb25maWd1 cmUJMjAxMC0wMS0xNSAxMjo0ODowNC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4wLjUwLjIw MTAwMTE1L2dkYi9jb25maWd1cmUJMjAxMC0wMS0xNSAxMjo0ODo0Ni4wMDAwMDAwMDAgKzAxMDAK LUBAIC02NzcyLDYgKzY3NzIsMTg1IEBAIGVsc2UKLSBmaQotIAotIAotKwotKwotKwotKwotKyMg Q2hlY2sgd2hldGhlciAtLXdpdGgtc2VwYXJhdGUtZGVidWctZGlyIHdhcyBnaXZlbi4KLStpZiB0 ZXN0ICIke3dpdGhfc2VwYXJhdGVfZGVidWdfZGlyK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdp dGh2YWw9JHdpdGhfc2VwYXJhdGVfZGVidWdfZGlyOwotKyAgICBERUJVR0RJUj0kd2l0aHZhbAot K2Vsc2UKLSsgIERFQlVHRElSPSR7bGliZGlyfS9kZWJ1ZwotK2ZpCi0rCi0rCi0rICB0ZXN0ICJ4 JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9IiRhY19kZWZhdWx0X3ByZWZpeCIKLSsgIHRlc3Qg IngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLSsgIGFj X2RlZmluZV9kaXI9YGV2YWwgZWNobyAkREVCVUdESVJgCi0rICBhY19kZWZpbmVfZGlyPWBldmFs IGVjaG8gJGFjX2RlZmluZV9kaXJgCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNk ZWZpbmUgREVCVUdESVIgIiRhY19kZWZpbmVfZGlyIgotK19BQ0VPRgotKwotKwotKwotKyAgaWYg dGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSB8fCB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9ICd4 JHtwcmVmaXh9JzsgdGhlbgotKyAgICAgaWYgdGVzdCAieCRwcmVmaXgiID0geE5PTkU7IHRoZW4K LSsgICAgIAl0ZXN0X3ByZWZpeD0vdXNyL2xvY2FsCi0rICAgICBlbHNlCi0rCXRlc3RfcHJlZml4 PSRwcmVmaXgKLSsgICAgIGZpCi0rICBlbHNlCi0rICAgICB0ZXN0X3ByZWZpeD0kZXhlY19wcmVm aXgKLSsgIGZpCi0rICB2YWx1ZT0wCi0rICBjYXNlICR7YWNfZGVmaW5lX2Rpcn0gaW4KLSsgICAg ICIke3Rlc3RfcHJlZml4fSJ8IiR7dGVzdF9wcmVmaXh9LyIqfFwKLSsJJyR7ZXhlY19wcmVmaXh9 J3wnJHtleGVjX3ByZWZpeH0vJyopCi0rICAgICB2YWx1ZT0xCi0rICAgICA7OwotKyAgZXNhYwot KwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIERFQlVHRElSX1JFTE9DQVRB QkxFICR2YWx1ZQotK19BQ0VPRgotKwotKwotKwotKyMgR0RCJ3MgZGF0YWRpciByZWxvY2F0aW9u Ci0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nZGItZGF0YWRpciB3YXMgZ2l2ZW4u Ci0raWYgdGVzdCAiJHt3aXRoX2dkYl9kYXRhZGlyK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdp dGh2YWw9JHdpdGhfZ2RiX2RhdGFkaXI7Ci0rICAgIEdEQl9EQVRBRElSPSR3aXRodmFsCi0rZWxz ZQotKyAgR0RCX0RBVEFESVI9JHtkYXRhZGlyfS9nZGIKLStmaQotKwotKwotKyAgdGVzdCAieCRw cmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgiCi0rICB0ZXN0ICJ4 JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZpeH0nCi0rICBhY19k ZWZpbmVfZGlyPWBldmFsIGVjaG8gJEdEQl9EQVRBRElSYAotKyAgYWNfZGVmaW5lX2Rpcj1gZXZh bCBlY2hvICRhY19kZWZpbmVfZGlyYAotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsj ZGVmaW5lIEdEQl9EQVRBRElSICIkYWNfZGVmaW5lX2RpciIKLStfQUNFT0YKLSsKLSsKLSsKLSsg IGlmIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgfHwgdGVzdCAieCRleGVjX3ByZWZpeCIg PSAneCR7cHJlZml4fSc7IHRoZW4KLSsgICAgIGlmIHRlc3QgIngkcHJlZml4IiA9IHhOT05FOyB0 aGVuCi0rICAgICAJdGVzdF9wcmVmaXg9L3Vzci9sb2NhbAotKyAgICAgZWxzZQotKwl0ZXN0X3By ZWZpeD0kcHJlZml4Ci0rICAgICBmaQotKyAgZWxzZQotKyAgICAgdGVzdF9wcmVmaXg9JGV4ZWNf cHJlZml4Ci0rICBmaQotKyAgdmFsdWU9MAotKyAgY2FzZSAke2FjX2RlZmluZV9kaXJ9IGluCi0r ICAgICAiJHt0ZXN0X3ByZWZpeH0ifCIke3Rlc3RfcHJlZml4fS8iKnxcCi0rCScke2V4ZWNfcHJl Zml4fSd8JyR7ZXhlY19wcmVmaXh9LycqKQotKyAgICAgdmFsdWU9MQotKyAgICAgOzsKLSsgIGVz YWMKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBHREJfREFUQURJUl9S RUxPQ0FUQUJMRSAkdmFsdWUKLStfQUNFT0YKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIg LS13aXRoLXJlbG9jYXRlZC1zb3VyY2VzIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfcmVs b2NhdGVkX3NvdXJjZXMrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9yZWxv Y2F0ZWRfc291cmNlczsgcmVsb2Nfc3JjZGlyPSIke3dpdGh2YWx9IgotKwotKyAgdGVzdCAieCRw cmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgiCi0rICB0ZXN0ICJ4 JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZpeH0nCi0rICBhY19k ZWZpbmVfZGlyPWBldmFsIGVjaG8gJHJlbG9jX3NyY2RpcmAKLSsgIGFjX2RlZmluZV9kaXI9YGV2 YWwgZWNobyAkYWNfZGVmaW5lX2RpcmAKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0r I2RlZmluZSBSRUxPQ19TUkNESVIgIiRhY19kZWZpbmVfZGlyIgotK19BQ0VPRgotKwotKwotKwot K2ZpCi0rCi0rCi0rIyBHREIncyBkYXRhZGlyIHJlbG9jYXRpb24KLSsKLStnZGJkYXRhZGlyPSR7 ZGF0YWRpcn0vZ2RiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nZGItZGF0YWRpciB3 YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2dkYl9kYXRhZGlyK3NldH0iID0gc2V0OyB0aGVu IDoKLSsgIHdpdGh2YWw9JHdpdGhfZ2RiX2RhdGFkaXI7IGdkYmRhdGFkaXI9IiR7d2l0aHZhbH0i Ci0rZmkKLSsKLSsKLSsKLSsgIHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0iJGFj X2RlZmF1bHRfcHJlZml4IgotKyAgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVj X3ByZWZpeD0nJHtwcmVmaXh9JwotKyAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRnZGJkYXRh ZGlyYAotKyAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRhY19kZWZpbmVfZGlyYAotKwotK2Nh dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIEdEQl9EQVRBRElSICIkYWNfZGVmaW5l X2RpciIKLStfQUNFT0YKLSsKLSsKLSsKLStpZiB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05F IHx8IHRlc3QgIngkZXhlY19wcmVmaXgiID0gJ3gke3ByZWZpeH0nOyB0aGVuCi0rICBpZiB0ZXN0 ICJ4JHByZWZpeCIgPSB4Tk9ORTsgdGhlbgotKyAgICB0ZXN0X3ByZWZpeD0vdXNyL2xvY2FsCi0r ICBlbHNlCi0rICAgIHRlc3RfcHJlZml4PSRwcmVmaXgKLSsgIGZpCi0rZWxzZQotKyAgdGVzdF9w cmVmaXg9JGV4ZWNfcHJlZml4Ci0rZmkKLSsKLStjYXNlICR7Z2RiZGF0YWRpcn0gaW4KLSsgICIk e3Rlc3RfcHJlZml4fSJ8IiR7dGVzdF9wcmVmaXh9LyIqfFwKLSsgICcke2V4ZWNfcHJlZml4fSd8 JyR7ZXhlY19wcmVmaXh9LycqKQotKwotKyRhc19lY2hvICIjZGVmaW5lIEdEQl9EQVRBRElSX1JF TE9DQVRBQkxFIDEiID4+Y29uZmRlZnMuaAotKwotKyAgOzsKLStlc2FjCi0rR0RCX0RBVEFESVJf UEFUSD0ke2dkYmRhdGFkaXJ9Ci0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1weXRo b25kaXIgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9weXRob25kaXIrc2V0fSIgPSBzZXQ7 IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9weXRob25kaXI7IHB5dGhvbmRpcj0iJHt3aXRodmFs fSIKLStlbHNlCi0rICBweXRob25kaXI9bm8KLStmaQotKwotKwotKyMgSWYgdGhlIHVzZXIgcGFz c2VkIGluIGEgcGF0aCwgZGVmaW5lIGl0LiAgT3RoZXJ3aXNlLCBjb21wdXRlIGl0IGF0Ci0rIyBy dW50aW1lIGJhc2VkIG9uIHRoZSBwb3NzaWJseS1yZWxvY2F0YWJsZSBkYXRhZGlyLgotK2lmIHRl c3QgIiRweXRob25kaXIiID0gIm5vIjsgdGhlbgotKyAgcHl0aG9uZGlyPSckKEdEQl9EQVRBRElS X1BBVEgpL3B5dGhvbicKLStlbHNlCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNk ZWZpbmUgUFlUSE9ORElSICIkcHl0aG9uZGlyIgotK19BQ0VPRgotKwotK2ZpCi0rCi0rCi0gIyBJ bnRlZ3JhdGlvbiB3aXRoIHJwbSBsaWJyYXJ5IHRvIHN1cHBvcnQgbWlzc2luZyBkZWJ1Z2luZm8g c3VnZ2VzdGlvbnMuCi0gIyAtLXdpdGhvdXQtcnBtOiBEaXNhYmxlIGFueSBycG0gc3VwcG9ydC4K LSAjIC0td2l0aC1ycG09bGlibmFtZS5zbzogVHJ5IHRvIGR5bmFtaWNhbGx5IG9wZW4gYGxpYm5h bWUuc28nIGR1cmluZyBydW50aW1lLgotQEAgLTcyNTUsMTg1ICs3NDM0LDYgQEAgZmkKLSAKLSAK LSAKLS0KLS0jIENoZWNrIHdoZXRoZXIgLS13aXRoLXNlcGFyYXRlLWRlYnVnLWRpciB3YXMgZ2l2 ZW4uCi0taWYgdGVzdCAiJHt3aXRoX3NlcGFyYXRlX2RlYnVnX2RpcitzZXR9IiA9IHNldDsgdGhl biA6Ci0tICB3aXRodmFsPSR3aXRoX3NlcGFyYXRlX2RlYnVnX2RpcjsKLS0gICAgREVCVUdESVI9 JHdpdGh2YWwKLS1lbHNlCi0tICBERUJVR0RJUj0ke2xpYmRpcn0vZGVidWcKLS1maQotLQotLQot LSAgdGVzdCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgi Ci0tICB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FICYmIGV4ZWNfcHJlZml4PScke3ByZWZp eH0nCi0tICBhY19kZWZpbmVfZGlyPWBldmFsIGVjaG8gJERFQlVHRElSYAotLSAgYWNfZGVmaW5l X2Rpcj1gZXZhbCBlY2hvICRhY19kZWZpbmVfZGlyYAotLQotLWNhdCA+PmNvbmZkZWZzLmggPDxf QUNFT0YKLS0jZGVmaW5lIERFQlVHRElSICIkYWNfZGVmaW5lX2RpciIKLS1fQUNFT0YKLS0KLS0K LS0KLS0gIGlmIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgfHwgdGVzdCAieCRleGVjX3By ZWZpeCIgPSAneCR7cHJlZml4fSc7IHRoZW4KLS0gICAgIGlmIHRlc3QgIngkcHJlZml4IiA9IHhO T05FOyB0aGVuCi0tICAgICAJdGVzdF9wcmVmaXg9L3Vzci9sb2NhbAotLSAgICAgZWxzZQotLQl0 ZXN0X3ByZWZpeD0kcHJlZml4Ci0tICAgICBmaQotLSAgZWxzZQotLSAgICAgdGVzdF9wcmVmaXg9 JGV4ZWNfcHJlZml4Ci0tICBmaQotLSAgdmFsdWU9MAotLSAgY2FzZSAke2FjX2RlZmluZV9kaXJ9 IGluCi0tICAgICAiJHt0ZXN0X3ByZWZpeH0ifCIke3Rlc3RfcHJlZml4fS8iKnxcCi0tCScke2V4 ZWNfcHJlZml4fSd8JyR7ZXhlY19wcmVmaXh9LycqKQotLSAgICAgdmFsdWU9MQotLSAgICAgOzsK LS0gIGVzYWMKLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBERUJVR0RJ Ul9SRUxPQ0FUQUJMRSAkdmFsdWUKLS1fQUNFT0YKLS0KLS0KLS0KLS0jIEdEQidzIGRhdGFkaXIg cmVsb2NhdGlvbgotLQotLQotLQotLSMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ2RiLWRhdGFkaXIg d2FzIGdpdmVuLgotLWlmIHRlc3QgIiR7d2l0aF9nZGJfZGF0YWRpcitzZXR9IiA9IHNldDsgdGhl biA6Ci0tICB3aXRodmFsPSR3aXRoX2dkYl9kYXRhZGlyOwotLSAgICBHREJfREFUQURJUj0kd2l0 aHZhbAotLWVsc2UKLS0gIEdEQl9EQVRBRElSPSR7ZGF0YWRpcn0vZ2RiCi0tZmkKLS0KLS0KLS0g IHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0iJGFjX2RlZmF1bHRfcHJlZml4Igot LSAgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9 JwotLSAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRHREJfREFUQURJUmAKLS0gIGFjX2RlZmlu ZV9kaXI9YGV2YWwgZWNobyAkYWNfZGVmaW5lX2RpcmAKLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCi0tI2RlZmluZSBHREJfREFUQURJUiAiJGFjX2RlZmluZV9kaXIiCi0tX0FDRU9GCi0t Ci0tCi0tCi0tICBpZiB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9IHhOT05FIHx8IHRlc3QgIngkZXhl Y19wcmVmaXgiID0gJ3gke3ByZWZpeH0nOyB0aGVuCi0tICAgICBpZiB0ZXN0ICJ4JHByZWZpeCIg PSB4Tk9ORTsgdGhlbgotLSAgICAgCXRlc3RfcHJlZml4PS91c3IvbG9jYWwKLS0gICAgIGVsc2UK LS0JdGVzdF9wcmVmaXg9JHByZWZpeAotLSAgICAgZmkKLS0gIGVsc2UKLS0gICAgIHRlc3RfcHJl Zml4PSRleGVjX3ByZWZpeAotLSAgZmkKLS0gIHZhbHVlPTAKLS0gIGNhc2UgJHthY19kZWZpbmVf ZGlyfSBpbgotLSAgICAgIiR7dGVzdF9wcmVmaXh9InwiJHt0ZXN0X3ByZWZpeH0vIip8XAotLQkn JHtleGVjX3ByZWZpeH0nfCcke2V4ZWNfcHJlZml4fS8nKikKLS0gICAgIHZhbHVlPTEKLS0gICAg IDs7Ci0tICBlc2FjCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotLSNkZWZpbmUgR0RC X0RBVEFESVJfUkVMT0NBVEFCTEUgJHZhbHVlCi0tX0FDRU9GCi0tCi0tCi0tCi0tCi0tIyBDaGVj ayB3aGV0aGVyIC0td2l0aC1yZWxvY2F0ZWQtc291cmNlcyB3YXMgZ2l2ZW4uCi0taWYgdGVzdCAi JHt3aXRoX3JlbG9jYXRlZF9zb3VyY2VzK3NldH0iID0gc2V0OyB0aGVuIDoKLS0gIHdpdGh2YWw9 JHdpdGhfcmVsb2NhdGVkX3NvdXJjZXM7IHJlbG9jX3NyY2Rpcj0iJHt3aXRodmFsfSIKLS0KLS0g IHRlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0iJGFjX2RlZmF1bHRfcHJlZml4Igot LSAgdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9 JwotLSAgYWNfZGVmaW5lX2Rpcj1gZXZhbCBlY2hvICRyZWxvY19zcmNkaXJgCi0tICBhY19kZWZp bmVfZGlyPWBldmFsIGVjaG8gJGFjX2RlZmluZV9kaXJgCi0tCi0tY2F0ID4+Y29uZmRlZnMuaCA8 PF9BQ0VPRgotLSNkZWZpbmUgUkVMT0NfU1JDRElSICIkYWNfZGVmaW5lX2RpciIKLS1fQUNFT0YK LS0KLS0KLS0KLS1maQotLQotLQotLSMgR0RCJ3MgZGF0YWRpciByZWxvY2F0aW9uCi0tCi0tZ2Ri ZGF0YWRpcj0ke2RhdGFkaXJ9L2dkYgotLQotLQotLSMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ2Ri LWRhdGFkaXIgd2FzIGdpdmVuLgotLWlmIHRlc3QgIiR7d2l0aF9nZGJfZGF0YWRpcitzZXR9IiA9 IHNldDsgdGhlbiA6Ci0tICB3aXRodmFsPSR3aXRoX2dkYl9kYXRhZGlyOyBnZGJkYXRhZGlyPSIk e3dpdGh2YWx9IgotLWZpCi0tCi0tCi0tCi0tICB0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBw cmVmaXg9IiRhY19kZWZhdWx0X3ByZWZpeCIKLS0gIHRlc3QgIngkZXhlY19wcmVmaXgiID0geE5P TkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScKLS0gIGFjX2RlZmluZV9kaXI9YGV2YWwgZWNo byAkZ2RiZGF0YWRpcmAKLS0gIGFjX2RlZmluZV9kaXI9YGV2YWwgZWNobyAkYWNfZGVmaW5lX2Rp cmAKLS0KLS1jYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCi0tI2RlZmluZSBHREJfREFUQURJUiAi JGFjX2RlZmluZV9kaXIiCi0tX0FDRU9GCi0tCi0tCi0tCi0taWYgdGVzdCAieCRleGVjX3ByZWZp eCIgPSB4Tk9ORSB8fCB0ZXN0ICJ4JGV4ZWNfcHJlZml4IiA9ICd4JHtwcmVmaXh9JzsgdGhlbgot LSAgaWYgdGVzdCAieCRwcmVmaXgiID0geE5PTkU7IHRoZW4KLS0gICAgdGVzdF9wcmVmaXg9L3Vz ci9sb2NhbAotLSAgZWxzZQotLSAgICB0ZXN0X3ByZWZpeD0kcHJlZml4Ci0tICBmaQotLWVsc2UK LS0gIHRlc3RfcHJlZml4PSRleGVjX3ByZWZpeAotLWZpCi0tCi0tY2FzZSAke2dkYmRhdGFkaXJ9 IGluCi0tICAiJHt0ZXN0X3ByZWZpeH0ifCIke3Rlc3RfcHJlZml4fS8iKnxcCi0tICAnJHtleGVj X3ByZWZpeH0nfCcke2V4ZWNfcHJlZml4fS8nKikKLS0KLS0kYXNfZWNobyAiI2RlZmluZSBHREJf REFUQURJUl9SRUxPQ0FUQUJMRSAxIiA+PmNvbmZkZWZzLmgKLS0KLS0gIDs7Ci0tZXNhYwotLUdE Ql9EQVRBRElSX1BBVEg9JHtnZGJkYXRhZGlyfQotLQotLQotLQotLSMgQ2hlY2sgd2hldGhlciAt LXdpdGgtcHl0aG9uZGlyIHdhcyBnaXZlbi4KLS1pZiB0ZXN0ICIke3dpdGhfcHl0aG9uZGlyK3Nl dH0iID0gc2V0OyB0aGVuIDoKLS0gIHdpdGh2YWw9JHdpdGhfcHl0aG9uZGlyOyBweXRob25kaXI9 IiR7d2l0aHZhbH0iCi0tZWxzZQotLSAgcHl0aG9uZGlyPW5vCi0tZmkKLS0KLS0KLS0jIElmIHRo ZSB1c2VyIHBhc3NlZCBpbiBhIHBhdGgsIGRlZmluZSBpdC4gIE90aGVyd2lzZSwgY29tcHV0ZSBp dCBhdAotLSMgcnVudGltZSBiYXNlZCBvbiB0aGUgcG9zc2libHktcmVsb2NhdGFibGUgZGF0YWRp ci4KLS1pZiB0ZXN0ICIkcHl0aG9uZGlyIiA9ICJubyI7IHRoZW4KLS0gIHB5dGhvbmRpcj0nJChH REJfREFUQURJUl9QQVRIKS9weXRob24nCi0tZWxzZQotLQotLWNhdCA+PmNvbmZkZWZzLmggPDxf QUNFT0YKLS0jZGVmaW5lIFBZVEhPTkRJUiAiJHB5dGhvbmRpciIKLS1fQUNFT0YKLS0KLS1maQot LQotLQotLQotLQotLQotIHN1YmRpcnM9IiRzdWJkaXJzIGRvYyB0ZXN0c3VpdGUiCi0gCi0gCi1A QCAtOTI5MCwxMCArOTI5MCwxMCBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxpbmUiID0g eWVzOyB0Ci0gICAjIHJlYWRsaW5lLTYuMCBzdGFydGVkIHRvIHVzZSB0aGUgbmFtZSBgX3JsX2Vj aG9pbmdfcCcuCi0gICAjIGAkKFJFQURMSU5FX0RJUikvJyBvZiBidW5kbGVkIHJlYWRsaW5lIHdv dWxkIG5vdCByZXNvbHZlIGluIGNvbmZpZ3VyZS4KLSAKLS0gIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2VjaG9pbmdfcCIgPiY1 Ci0tJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHJlYWRsaW5lX2VjaG9pbmdfcC4uLiAiID4mNjsg fQotICAgc2F2ZV9MSUJTPSRMSUJTCi0gICBMSUJTPSIkTElCUyAkUkVBRExJTkUiCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciByZWFkbGlu ZV9lY2hvaW5nX3AiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciByZWFkbGluZV9lY2hv aW5nX3AuLi4gIiA+JjY7IH0KLSAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKLSAvKiBlbmQgY29uZmRlZnMuaC4gICovCi0gCi1AQCAtOTMxNiw5ICs5MzE2LDM1 IEBAICRhc19lY2hvICIjZGVmaW5lIHJlYWRsaW5lX2VjaG9pbmdfcCBfcmwKLSBmaQotIHJtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotICAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotLSAgTElCUz0iJHNhdmVfTElCUyIKLSAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUkVBRExJTkVfRUNI T0lOR19QIiA+JjUKLSAkYXNfZWNobyAiJFJFQURMSU5FX0VDSE9JTkdfUCIgPiY2OyB9Ci0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBfcmxf Y2F1Z2h0X3NpZ25hbCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIF9ybF9jYXVnaHRf c2lnbmFsLi4uICIgPiY2OyB9Ci0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7 Ci0rZXh0ZXJuIGludCB2b2xhdGlsZSBfcmxfY2F1Z2h0X3NpZ25hbDsKLSsJCQkJICAgIHJldHVy biBfcmxfY2F1Z2h0X3NpZ25hbDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStp ZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBSRUFETElORV9DQVVHSFRf U0lHTkFMPXllcwotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfUkVBRExJTkVfQ0FVR0hUX1NJ R05BTCAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLStlbHNlCi0rICBSRUFETElORV9DQVVHSFRfU0lH TkFMPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUkVBRExJTkVfQ0FVR0hU X1NJR05BTCIgPiY1Ci0rJGFzX2VjaG8gIiRSRUFETElORV9DQVVHSFRfU0lHTkFMIiA+JjY7IH0K LSsgIExJQlM9IiRzYXZlX0xJQlMiCi0gZWxzZQotICAgUkVBRExJTkU9JyQoUkVBRExJTkVfRElS KS9saWJyZWFkbGluZS5hJwotICAgUkVBRExJTkVfREVQUz0nJChSRUFETElORSknCgpkaWZmIC0t Z2l0IGEvZ2RiLXJoZWw1LWdjYzQ0LnBhdGNoIGIvZ2RiLXJoZWw1LWdjYzQ0LnBhdGNoCmluZGV4 IDE1ZDM0ZGYuLmQ3NjE1MzggMTAwNjQ0Ci0tLSBhL2dkYi1yaGVsNS1nY2M0NC5wYXRjaAorKysg Yi9nZGItcmhlbDUtZ2NjNDQucGF0Y2gKQEAgLTY5LDcgKzY5LDcgQEAgSW5kZXg6IGdkYi03LjAu NTAuMjAxMDAxMTUvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCiAgfQog IAogQEAgLTQ4MCw5ICs1MDAsMzMgQEAgZm9yZWFjaCBsZHByZWxpbmsge05PIFlFU30gewotIAkJ ICAgIGlmIHskYmlucGllID09ICJZRVMifSB7CisgCQkgICAgaWYgeyRiaW5waWUgIT0gIk5PIn0g ewogIAkJCWxhcHBlbmQgb3B0cyB7YWRkaXRpb25hbF9mbGFncz0tZlBJRSAtcGllfQogIAkJICAg IH0KIC0JCSAgICBpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHt0ZXN0fS5leHAgW2ZpbGUgdGFpbCAk ZXhlY10gJHNyY2ZpbGUgJG9wdHNdID09IC0xfSB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXNvbGliLW1l bW9yeS1lcnJvci1ub25mYXRhbC5wYXRjaCBiL2dkYi1zb2xpYi1tZW1vcnktZXJyb3Itbm9uZmF0 YWwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhkNzNkOAotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1zb2xpYi1tZW1vcnktZXJyb3Itbm9uZmF0YWwucGF0Y2gKQEAg LTAsMCArMSw0MSBAQAorW1JGQy9pYTY0XSBtZW1vcnkgZXJyb3Igd2hlbiByZWFkaW5nIHdyb25n IGNvcmUgZmlsZQoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDEv bXNnMDA2NDUuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAt MDIvbXNnMDAwMDEuaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIw MTAtMDMvbXNnMDAyOTguaHRtbAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAx MC0wMy9tc2cwMDA2NS5odG1sCitjOTYxYThkYTQyMjI4MzY2MmUwOWVlNDk4YzA1OThkNDhmYzlk NzBmCisKKy0tLSBzcmMvZ2RiL3NvbGliLXN2cjQuYwkyMDEwLzAyLzI0IDAwOjI5OjAyCTEuMTI1 CisrKysgc3JjL2dkYi9zb2xpYi1zdnI0LmMJMjAxMC8wMy8wOCAwNzo0NTo0OQkxLjEyNgorQEAg LTg2OCw5ICs4NjgsMTYgQEAKKyB7CisgICBzdHJ1Y3QgbGlua19tYXBfb2Zmc2V0cyAqbG1vID0g c3ZyNF9mZXRjaF9saW5rX21hcF9vZmZzZXRzICgpOworICAgc3RydWN0IHR5cGUgKnB0cl90eXBl ID0gYnVpbHRpbl90eXBlICh0YXJnZXRfZ2RiYXJjaCktPmJ1aWx0aW5fZGF0YV9wdHI7CisrICBD T1JFX0FERFIgYWRkciA9IDA7CisrICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsK KyAKKy0gIHJldHVybiByZWFkX21lbW9yeV90eXBlZF9hZGRyZXNzIChpbmZvLT5kZWJ1Z19iYXNl ICsgbG1vLT5yX21hcF9vZmZzZXQsCistCQkJCSAgICBwdHJfdHlwZSk7CisrICBUUllfQ0FUQ0gg KGV4LCBSRVRVUk5fTUFTS19FUlJPUikKKysgICAgeworKyAgICAgIGFkZHIgPSByZWFkX21lbW9y eV90eXBlZF9hZGRyZXNzIChpbmZvLT5kZWJ1Z19iYXNlICsgbG1vLT5yX21hcF9vZmZzZXQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cl90eXBlKTsKKysgICAg fQorKyAgZXhjZXB0aW9uX3ByaW50IChnZGJfc3RkZXJyLCBleCk7CisrICByZXR1cm4gYWRkcjsK KyB9CisgCisgLyogRmluZCByX2JyayBmcm9tIHRoZSBpbmZlcmlvcidzIGRlYnVnIGJhc2UuICAq LworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDMvMDggMDE6NDk6MzAJMS4xMTQ0MQorIyMj IHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDMvMDggMDc6NDU6NDkJMS4xMTQ0MgorIyMgLTEsMyAr MSwxMCBAQAorKzIwMTAtMDMtMDggIEpvZWwgQnJvYmVja2VyICA8YnJvYmVja2VyQGFkYWNvcmUu Y29tPgorKworKwlNZW1vcnkgZXJyb3Igd2hlbiByZWFkaW5nIHdyb25nIGNvcmUgZmlsZS4KKysJ KiBzb2xpYi1zdnI0LmMgKHNvbGliX3N2cjRfcl9tYXApOiBjYXRjaCBhbmQgcHJpbnQgYWxsIGV4 Y2VwdGlvbgorKwllcnJvcnMgd2hpbGUgcmVhZGluZyB0aGUgaW5mZXJpb3IgbWVtb3J5LCBhbmQg cmV0dXJuIHplcm8gaWYKKysJYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQuCisrCisgMjAxMC0wMy0w NyAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+CisgCisgCSogcmVjb3JkLmMg KHJlY29yZF9yZXN0b3JlKTogUmVuYW1lIHRtcHU4IHRvIHJlY3R5cGUuCgpkaWZmIC0tZ2l0IGEv Z2RiLXN0YWxlLXJlbGF0ZWRfYnJlYWtwb2ludC5wYXRjaCBiL2dkYi1zdGFsZS1yZWxhdGVkX2Jy ZWFrcG9pbnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1Yjk0YzQuLjAw MDAwMDAKLS0tIGEvZ2RiLXN0YWxlLXJlbGF0ZWRfYnJlYWtwb2ludC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDE1NCArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNo ZXMvMjAwOS0xMi9tc2cwMDM2NC5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIHJlbGF0ZWRfYnJlYWtw b2ludCBzdGFsZSByZWYgY3Jhc2ggZml4Ci0KLUhpLAotCi1nZXR0aW5nIG9jY2FzaW9uYWwgcmFu ZG9tOgotIFBBU1M6IGdkYi50aHJlYWRzL2xvY2FsLXdhdGNoLXdyb25nLXRocmVhZC5leHA6IGxv Y2FsIHdhdGNocG9pbnQgc3RpbGwgdHJpZ2dlcnMKLSBQQVNTOiBnZGIudGhyZWFkcy9sb2NhbC13 YXRjaC13cm9uZy10aHJlYWQuZXhwOiBsZXQgdGhyZWFkX2Z1bmN0aW9uMCByZXR1cm4KLSBQQVNT OiBnZGIudGhyZWFkcy9sb2NhbC13YXRjaC13cm9uZy10aHJlYWQuZXhwOiBicmVha3BvaW50IG9u IHRocmVhZF9mdW5jdGlvbjAncyBjYWxsZXIKLS1QQVNTOiBnZGIudGhyZWFkcy9sb2NhbC13YXRj aC13cm9uZy10aHJlYWQuZXhwOiBsb2NhbCB3YXRjaHBvaW50IGF1dG9tYXRpY2FsbHkgZGVsZXRl ZAotK0VSUk9SOiBQcm9jZXNzIG5vIGxvbmdlciBleGlzdHMKLStVTlJFU09MVkVEOiBnZGIudGhy ZWFkcy9sb2NhbC13YXRjaC13cm9uZy10aHJlYWQuZXhwOiBsb2NhbCB3YXRjaHBvaW50IGF1dG9t YXRpY2FsbHkgZGVsZXRlZAotCi1JdCBpcyBldmVuIHJlcHJvZHVjaWJsZSBvbiBIRUFEIHVzaW5n ICJpbnB1dCIgZmlsZSBiZWxvdyBhbmQ6Ci0JdmFsZ3JpbmQgLi4vZ2RiIC1ueCA8aW5wdXQKLQot KGdkYikgKGdkYikgQnJlYWtwb2ludCA2IGF0IDB4NDAwNjg1OiBmaWxlIC4vZ2RiLnRocmVhZHMv bG9jYWwtd2F0Y2gtd3JvbmctdGhyZWFkLmMsIGxpbmUgNDcuCi0oZ2RiKSA9PTMxNzU5PT0gSW52 YWxpZCB3cml0ZSBvZiBzaXplIDQKLT09MzE3NTk9PSAgICBhdCAweDYwMUExMTogYnBzdGF0X2No ZWNrX2JyZWFrcG9pbnRfY29uZGl0aW9ucyAoYnJlYWtwb2ludC5jOjM0ODIpCi09PTMxNzU5PT0g ICAgYnkgMHg2MDFDNzA6IGJwc3RhdF9zdG9wX3N0YXR1cyAoYnJlYWtwb2ludC5jOjM1OTYpCi09 PTMxNzU5PT0gICAgYnkgMHg2NUQyMjg6IGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoaW5mcnVuLmM6 MzU4OSkKLT09MzE3NTk9PSAgICBieSAweDY1QTU2Mzogd2FpdF9mb3JfaW5mZXJpb3IgKGluZnJ1 bi5jOjIyODEpCi09PTMxNzU5PT0gICAgYnkgMHg2NTlBQTA6IHByb2NlZWQgKGluZnJ1bi5jOjE4 ODMpCi09PTMxNzU5PT0gICAgYnkgMHg2NTMwMEI6IGNvbnRpbnVlXzEgKGluZmNtZC5jOjY2OCkK LT09MzE3NTk9PSAgICBieSAweDY1MzI4MjogY29udGludWVfY29tbWFuZCAoaW5mY21kLmM6NzYw KQotPT0zMTc1OT09ICAgIGJ5IDB4NUM1MUQ4OiBkb19jZnVuYyAoY2xpLWRlY29kZS5jOjY3KQot PT0zMTc1OT09ICAgIGJ5IDB4NUM4MjRGOiBjbWRfZnVuYyAoY2xpLWRlY29kZS5jOjE3MzgpCi09 PTMxNzU5PT0gICAgYnkgMHg0ODMzNUE6IGV4ZWN1dGVfY29tbWFuZCAodG9wLmM6NDUwKQotPT0z MTc1OT09ICAgIGJ5IDB4NjcyNzNFOiBjb21tYW5kX2hhbmRsZXIgKGV2ZW50LXRvcC5jOjUxMSkK LT09MzE3NTk9PSAgICBieSAweDY3MkU1MzogY29tbWFuZF9saW5lX2hhbmRsZXIgKGV2ZW50LXRv cC5jOjczNikKLT09MzE3NTk9PSAgQWRkcmVzcyAweGJiZGM5NTAgaXMgMjQwIGJ5dGVzIGluc2lk ZSBhIGJsb2NrIG9mIHNpemUgMzM2IGZyZWUnZAotPT0zMTc1OT09ICAgIGF0IDB4NEEwNEQ3Mjog ZnJlZSAodmdfcmVwbGFjZV9tYWxsb2MuYzozMjUpCi09PTMxNzU5PT0gICAgYnkgMHg0ODZFNEI6 IHhmcmVlICh1dGlscy5jOjEyODYpCi09PTMxNzU5PT0gICAgYnkgMHg2MEJDMzU6IGRlbGV0ZV9i cmVha3BvaW50IChicmVha3BvaW50LmM6ODcwOCkKLT09MzE3NTk9PSAgICBieSAweDYwQkRBRjog ZGVsZXRlX2NvbW1hbmQgKGJyZWFrcG9pbnQuYzo4NzY1KQotPT0zMTc1OT09ICAgIGJ5IDB4NUM1 MUQ4OiBkb19jZnVuYyAoY2xpLWRlY29kZS5jOjY3KQotPT0zMTc1OT09ICAgIGJ5IDB4NUM4MjRG OiBjbWRfZnVuYyAoY2xpLWRlY29kZS5jOjE3MzgpCi09PTMxNzU5PT0gICAgYnkgMHg0ODMzNUE6 IGV4ZWN1dGVfY29tbWFuZCAodG9wLmM6NDUwKQotPT0zMTc1OT09ICAgIGJ5IDB4NjcyNzNFOiBj b21tYW5kX2hhbmRsZXIgKGV2ZW50LXRvcC5jOjUxMSkKLT09MzE3NTk9PSAgICBieSAweDY3MkU1 MzogY29tbWFuZF9saW5lX2hhbmRsZXIgKGV2ZW50LXRvcC5jOjczNikKLT09MzE3NTk9PSAgICBi eSAweDY3MkZDRjogZ2RiX3JlYWRsaW5lMiAoZXZlbnQtdG9wLmM6ODE3KQotPT0zMTc1OT09ICAg IGJ5IDB4NjcyNUY3OiBzdGRpbl9ldmVudF9oYW5kbGVyIChldmVudC10b3AuYzo0MzMpCi09PTMx NzU5PT0gICAgYnkgMHg2NzBDREU6IGhhbmRsZV9maWxlX2V2ZW50IChldmVudC1sb29wLmM6ODEy KQotPT0zMTc1OT09IAotCi1XYXRjaHBvaW50IDQgZGVsZXRlZCBiZWNhdXNlIHRoZSBwcm9ncmFt IGhhcyBsZWZ0IHRoZSBibG9jayBpbgotd2hpY2ggaXRzIGV4cHJlc3Npb24gaXMgdmFsaWQuCi0K LQotVGhlcmUgaXMgYWxyZWFkeSBhdXRvbWF0aWMgZGVsZXRpb24gb2YgUkVMQVRFRF9CUkVBS1BP SU5UIGluCi1tYXBfYnJlYWtwb2ludF9udW1iZXJzIGJ1dCAiZGVsZXRlIGJyZWFrcG9pbnRzIiAo Zm9yIGFsbCB0aGUgYnJlYWtwb2ludHMpCi1jYWxscyBkZWxldGVfYnJlYWtwb2ludCBmcm9tIGRl bGV0ZV9jb21tYW5kIGRpcmVjdGx5IHdpdGhvdXQgY2FsbGluZwotbWFwX2JyZWFrcG9pbnRfbnVt YmVycyBhbmQgaXQgZG9lcyBub3QgZGVsZXRlIHRoZSBhc3NvY2lhdGVkCi1icF93YXRjaHBvaW50 X3Njb3BlLgotCi1JIGZpbmQgdGhlIGF0dGFjaGVkIHBhdGNoIGlzIHJpZ2h0IGZvciBkZWxldGVf YnJlYWtwb2ludCBpdHNlbGYgYXMgc3VjaAotZnVuY3Rpb24gc2hvdWxkIG5vdCBsZWF2ZSBzdGFs ZSByZWZlcmVuY2VzIGluIHRoZSBsZWZ0b3ZlciBkYXRhIHN0cnVjdHVyZXMuCi1Ib3cgd2VsbCBj b3VsZCBiZSBvdGhlciBjb2RlIGNsZWFuZWQgdXAgd2l0aCB0aGlzIHBhdGNoIGluIHBsYWNlIEkg aGF2ZSBub3QKLXRhcmdldGVkIGJ5IHRoaXMgcGF0Y2guCi0KLQotVGhlIGV4aXN0aW5nIGNvZGUg ZXhwZWN0cyBhY2Nlc3NpYmlsaXR5IG9mIGZyZWVkIG1lbW9yeSBhbmQgZGlzY3Vzc2VzIHRoZQot Y3VycmVudCBzdGFsZSByZWZlcmVuY2VzIHByb2JsZW06Ci0KLXZvaWQKLWRlbGV0ZV9icmVha3Bv aW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQotWy4uLl0KLSAgLyogSGFzIHRoaXMgYnAgYWxy ZWFkeSBiZWVuIGRlbGV0ZWQ/ICBUaGlzIGNhbiBoYXBwZW4gYmVjYXVzZSBtdWx0aXBsZQotICAg ICBsaXN0cyBjYW4gaG9sZCBwb2ludGVycyB0byBicCdzLiAgYnBzdGF0IGxpc3RzIGFyZSBlc3Bl Y2lhbCBjdWxwcml0cy4KLQotICAgICBPbmUgZXhhbXBsZSBvZiB0aGlzIGhhcHBlbmluZyBpcyBh IHdhdGNocG9pbnQncyBzY29wZSBicC4gIFdoZW4gdGhlCi0gICAgIHNjb3BlIGJwIHRyaWdnZXJz LCB3ZSBub3RpY2UgdGhhdCB0aGUgd2F0Y2hwb2ludCBpcyBvdXQgb2Ygc2NvcGUsIGFuZAotICAg ICBkZWxldGUgaXQuICBXZSBhbHNvIGRlbGV0ZSBpdHMgc2NvcGUgYnAuICBCdXQgdGhlIHNjb3Bl IGJwIGlzIG1hcmtlZAotICAgICAiYXV0by1kZWxldGluZyIsIGFuZCBpcyBhbHJlYWR5IG9uIGEg YnBzdGF0LiAgVGhhdCBicHN0YXQgaXMgdGhlbgotICAgICBjaGVja2VkIGZvciBhdXRvLWRlbGV0 aW5nIGJwJ3MsIHdoaWNoIGFyZSBkZWxldGVkLgotCi0gICAgIEEgcmVhbCBzb2x1dGlvbiB0byB0 aGlzIHByb2JsZW0gbWlnaHQgaW52b2x2ZSByZWZlcmVuY2UgY291bnRzIGluIGJwJ3MsCi0gICAg IGFuZC9vciBnaXZpbmcgdGhlbSBwb2ludGVycyBiYWNrIHRvIHRoZWlyIHJlZmVyZW5jaW5nIGJw c3RhdCdzLCBhbmQKLSAgICAgdGVhY2hpbmcgZGVsZXRlX2JyZWFrcG9pbnQgdG8gb25seSBmcmVl IGEgYnAncyBzdG9yYWdlIHdoZW4gbm8gbW9yZQotICAgICByZWZlcmVuY2VzIHdlcmUgZXh0ZW50 LiAgQSBjaGVhcGVyIGJhbmRhaWQgd2FzIGNob3Nlbi4gICovCi0gIGlmIChicHQtPnR5cGUgPT0g YnBfbm9uZSkKLSAgICByZXR1cm47Ci1bLi4uXQotICBicHQtPnR5cGUgPSBicF9ub25lOwotCi0g IHhmcmVlIChicHQpOwotfQotCi0KLVdoaWxlIGZpeGluZyB0aGlzIHBhcnQgbWF5IGJlIGRpZmZp Y3VsdCBJIGZpbmQgdGhlIGF0dGFjaGVkIHBhdGNoIGVhc3kgZW5vdWdoCi1maXhpbmcgdGhlIElN TyBjdXJyZW50bHkgbW9zdCBjb21tb24gY3Jhc2ggZHVlIHRvIGl0LgotCi1ObyByZWdyZXNzaW9u cyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMTItbGludXgtZ251LgotCi0KLVRo YW5rcywKLUphbgotCi0KLSJpbnB1dCI6Ci1zZXQgaGVpZ2h0IDAKLXNldCB3aWR0aCAwCi1zZXQg Y29uZmlybSBubwotZmlsZSAuLi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvbG9jYWwtd2F0Y2gtd3Jv bmctdGhyZWFkCi1zZXQgY2FuLXVzZS1ody13YXRjaHBvaW50cyAxCi1icmVhayBtYWluCi1ydW4K LWJyZWFrIGxvY2FsLXdhdGNoLXdyb25nLXRocmVhZC5jOjM2Ci1jb250aW51ZQotZGVsZXRlIGJy ZWFrcG9pbnRzCi13YXRjaCAqbXlwCi1jb250aW51ZQotZGVsZXRlIGJyZWFrcG9pbnRzCi1lY2hv IE1BS0Ugd2F0Y2hcbgotd2F0Y2ggKm15cCBpZiB0cmlnZ2VyICE9IDAKLWVjaG8gTUFLRSBicmVh a1xuCi1icmVhayBsb2NhbC13YXRjaC13cm9uZy10aHJlYWQuYzo2MAotaW5mbyBicmVhawotY29u dGludWUKLWVjaG8gREVMRVRFIGZpdmVcbgotZGVsZXRlIDUKLXNldCB0cmlnZ2VyPTEKLWNvbnRp bnVlCi1zZXQgKm15cD0wCi1icmVhayBsb2NhbC13YXRjaC13cm9uZy10aHJlYWQuYzo0NwotY29u dGludWUKLQotCi0KLTIwMDktMTItMjMgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KLQotCSogYnJlYWtwb2ludC5jIChkZWxldGVfYnJlYWtwb2ludCA8YnB0LT5y ZWxhdGVkX2JyZWFrcG9pbnQgIT0gTlVMTD4pOgotCU5ldy4KLQotLS0tIGEvZ2RiL2JyZWFrcG9p bnQuYwotKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwotQEAgLTg2NDksNiArODY0OSwxNiBAQCBkZWxl dGVfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKLSAgIGlmIChicHQtPnR5cGUg PT0gYnBfbm9uZSkKLSAgICAgcmV0dXJuOwotIAotKyAgLyogQXQgbGVhc3QgYXZvaWQgdGhpcyBz dGFsZSByZWZlcmVuY2UgdW50aWwgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBvZgotKyAgICAgYnJl YWtwb2ludHMgZ2V0cyByZXNvbHZlZC4gICovCi0rICBpZiAoYnB0LT5yZWxhdGVkX2JyZWFrcG9p bnQgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIGdkYl9hc3NlcnQgKGJwdC0+cmVsYXRlZF9icmVh a3BvaW50LT5yZWxhdGVkX2JyZWFrcG9pbnQgPT0gYnB0KTsKLSsgICAgICBicHQtPnJlbGF0ZWRf YnJlYWtwb2ludC0+ZGlzcG9zaXRpb24gPSBkaXNwX2RlbF9hdF9uZXh0X3N0b3A7Ci0rICAgICAg YnB0LT5yZWxhdGVkX2JyZWFrcG9pbnQtPnJlbGF0ZWRfYnJlYWtwb2ludCA9IE5VTEw7Ci0rICAg ICAgYnB0LT5yZWxhdGVkX2JyZWFrcG9pbnQgPSBOVUxMOwotKyAgICB9Ci0rCi0gICBvYnNlcnZl cl9ub3RpZnlfYnJlYWtwb2ludF9kZWxldGVkIChicHQtPm51bWJlcik7Ci0gCi0gICBpZiAoYnJl YWtwb2ludF9jaGFpbiA9PSBicHQpCi0KCmRpZmYgLS1naXQgYS9nZGItdW53aW5kLWRlYnVnaG9v ay1zYWZlLWZhaWwucGF0Y2ggYi9nZGItdW53aW5kLWRlYnVnaG9vay1zYWZlLWZhaWwucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQxNmIzMwotLS0gL2Rldi9udWxs CisrKyBiL2dkYi11bndpbmQtZGVidWdob29rLXNhZmUtZmFpbC5wYXRjaApAQCAtMCwwICsxLDQ2 IEBACitjb21taXQgODAyMjE0Yzk3ZDE2NjFhZDMzN2FhZDBkMDExZGRlZDQ0ZjBiNWRkZAorQXV0 aG9yOiBUb20gVHJvbWV5IDx0cm9tZXlAcmVkaGF0LmNvbT4KK0RhdGU6ICAgTW9uIEFwciAyNiAx NToxNTo1NSAyMDEwIC0wNjAwCisKKyAgICBGYWlsIGdyYWNlZnVsbHkgaWYgdGhlIF9VbndpbmRf RGVidWdIb29rIGFyZ3VtZW50IGlzIG9wdGltaXplZCBvdXQKKworZGlmZiAtLWdpdCBhL2dkYi9p bmZydW4uYyBiL2dkYi9pbmZydW4uYworaW5kZXggMmVlYTU1MC4uOWE1YjUzNCAxMDA2NDQKKy0t LSBhL2dkYi9pbmZydW4uYworKysrIGIvZ2RiL2luZnJ1bi5jCitAQCAtNDkyNSwyMCArNDkyNSwy NCBAQCBpbnNlcnRfZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgdGhyZWFkX2lu Zm8gKnRwLAorIAorICAgICAgIHZzeW0gPSBsb29rdXBfc3ltYm9sIChTWU1CT0xfTElOS0FHRV9O QU1FIChzeW0pLCBiLCBWQVJfRE9NQUlOLCBOVUxMKTsKKyAgICAgICB2YWx1ZSA9IHJlYWRfdmFy X3ZhbHVlICh2c3ltLCBmcmFtZSk7CistICAgICAgaGFuZGxlciA9IHZhbHVlX2FzX2FkZHJlc3Mg KHZhbHVlKTsKKysgICAgICAvKiBJZiB0aGUgdmFsdWUgd2FzIG9wdGltaXplZCBvdXQsIHJldmVy dCB0byB0aGUgb2xkIGJlaGF2aW9yLiAgKi8KKysgICAgICBpZiAoISB2YWx1ZV9vcHRpbWl6ZWRf b3V0ICh2YWx1ZSkpCisrCXsKKysJICBoYW5kbGVyID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsdWUp OworIAorLSAgICAgIC8qIFdlJ3JlIGdvaW5nIHRvIHJlcGxhY2UgdGhlIGN1cnJlbnQgc3RlcC1y ZXN1bWUgYnJlYWtwb2ludAorLQkgd2l0aCBhbiBleGNlcHRpb24tcmVzdW1lIGJyZWFrcG9pbnQu ICAqLworLSAgICAgIGRlbGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50ICh0cCk7CisrCSAgLyog V2UncmUgZ29pbmcgdG8gcmVwbGFjZSB0aGUgY3VycmVudCBzdGVwLXJlc3VtZSBicmVha3BvaW50 CisrCSAgICAgd2l0aCBhbiBleGNlcHRpb24tcmVzdW1lIGJyZWFrcG9pbnQuICAqLworKwkgIGRl bGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50ICh0cCk7CisgCistICAgICAgaWYgKGRlYnVnX2lu ZnJ1bikKKy0JZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorLQkJCSAgICAiaW5mcnVu OiBleGNlcHRpb24gcmVzdW1lIGF0ICVseFxuIiwKKy0JCQkgICAgKHVuc2lnbmVkIGxvbmcpIGhh bmRsZXIpOworKwkgIGlmIChkZWJ1Z19pbmZydW4pCisrCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csCisrCQkJCSJpbmZydW46IGV4Y2VwdGlvbiByZXN1bWUgYXQgJWx4XG4iLAor KwkJCQkodW5zaWduZWQgbG9uZykgaGFuZGxlcik7CisgCistICAgICAgYnAgPSBzZXRfbW9tZW50 YXJ5X2JyZWFrcG9pbnRfYXRfcGMgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksCistCQkJCQkgICBo YW5kbGVyLCBicF9leGNlcHRpb25fcmVzdW1lKTsKKy0gICAgICBpbmZlcmlvcl90aHJlYWQgKCkt PnN0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKysJICBicCA9IHNldF9tb21lbnRhcnlfYnJl YWtwb2ludF9hdF9wYyAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwKKysJCQkJCSAgICAgICBoYW5k bGVyLCBicF9leGNlcHRpb25fcmVzdW1lKTsKKysJICBpbmZlcmlvcl90aHJlYWQgKCktPnN0ZXBf cmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKysJfQorICAgICB9CisgfQorIAoKZGlmZiAtLWdpdCBh L2dkYi11bndpbmQtZGVidWdob29rLXN0ZXAtaW5kZXBlbmRlbnQucGF0Y2ggYi9nZGItdW53aW5k LWRlYnVnaG9vay1zdGVwLWluZGVwZW5kZW50LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjA3YmQyYmEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdW53aW5kLWRlYnVn aG9vay1zdGVwLWluZGVwZW5kZW50LnBhdGNoCkBAIC0wLDAgKzEsMjM1IEBACitjb21taXQgZjhj YTAzZTAwOTdhZTQ5YzY2Y2YzM2E1MGUzMjQ3YmNjZDNhNGEzMworQXV0aG9yOiBUb20gVHJvbWV5 IDx0cm9tZXlAcmVkaGF0LmNvbT4KK0RhdGU6ICAgV2VkIEFwciAyOCAxNDoxNzozOCAyMDEwIC0w NjAwCisKKyAgICBSZWltcGxlbWVudCBpbmZydW4gcGFydHMgb2YgbmV4dC1vdmVyLXRocm93Lgor ICAgIFByZXZpb3VzbHksIHdlIHJlc2V0IHRoZSBzdGVwLXJlc3VtZSBicmVha3BvaW50LgorICAg IEhvd2V2ZXIsIHRoaXMgY2FuIGRvIHRoZSB3cm9uZyB0aGluZyBpZiBhbiBleGNlcHRpb24KKyAg ICBpcyB0aHJvd24gYW5kIGNhdWdodCBiZW5lYXRoIHRoZSBuZXh0aW5nIGZyYW1lLgorICAgIFRo ZSBuZXcgYXBwcm9hY2ggaXMgdG8gaGF2ZSBhIHNlcGFyYXRlIGV4Y2VwdGlvbi1yZXN1bWUKKyAg ICBicmVha3BvaW50LgorCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnRocmVhZC5oIGIvZ2RiL2dkYnRo cmVhZC5oCitpbmRleCA2MTFkY2JiLi45NjM4MzY4IDEwMDY0NAorLS0tIGEvZ2RiL2dkYnRocmVh ZC5oCisrKysgYi9nZGIvZ2RidGhyZWFkLmgKK0BAIC02Niw2ICs2Niw5IEBAIHN0cnVjdCB0aHJl YWRfaW5mbworICAgLyogU3RlcC1yZXN1bWUgb3IgbG9uZ2ptcC1yZXN1bWUgYnJlYWtwb2ludC4g ICovCisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqc3RlcF9yZXN1bWVfYnJlYWtwb2ludDsKKyAKKysg IC8qIEV4Y2VwdGlvbi1yZXN1bWUgYnJlYWtwb2ludC4gICovCisrICBzdHJ1Y3QgYnJlYWtwb2lu dCAqZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50OworKworICAgLyogUmFuZ2UgdG8gc2luZ2xl IHN0ZXAgd2l0aGluLgorIAorICAgICAgSWYgdGhpcyBpcyBub256ZXJvLCByZXNwb25kIHRvIGEg c2luZ2xlLXN0ZXAgc2lnbmFsIGJ5IGNvbnRpbnVpbmcKK0BAIC0yMjUsNiArMjI4LDkgQEAgZXh0 ZXJuIHZvaWQgZGVsZXRlX3RocmVhZF9zaWxlbnQgKHB0aWRfdCk7CisgLyogRGVsZXRlIGEgc3Rl cF9yZXN1bWVfYnJlYWtwb2ludCBmcm9tIHRoZSB0aHJlYWQgZGF0YWJhc2UuICovCisgZXh0ZXJu IHZvaWQgZGVsZXRlX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgKHN0cnVjdCB0aHJlYWRfaW5mbyAq KTsKKyAKKysvKiBEZWxldGUgYW4gZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IGZyb20gdGhl IHRocmVhZCBkYXRhYmFzZS4gKi8KKytleHRlcm4gdm9pZCBkZWxldGVfZXhjZXB0aW9uX3Jlc3Vt ZV9icmVha3BvaW50IChzdHJ1Y3QgdGhyZWFkX2luZm8gKik7CisrCisgLyogVHJhbnNsYXRlIHRo ZSBpbnRlZ2VyIHRocmVhZCBpZCAoR0RCJ3MgaG9tZWdyb3duIGlkLCBub3QgdGhlIHN5c3RlbSdz KQorICAgIGludG8gYSAicGlkIiAod2hpY2ggbWF5IGJlIG92ZXJsb2FkZWQgd2l0aCBleHRyYSB0 aHJlYWQgaW5mb3JtYXRpb24pLiAgKi8KKyBleHRlcm4gcHRpZF90IHRocmVhZF9pZF90b19waWQg KGludCk7CitkaWZmIC0tZ2l0IGEvZ2RiL2luZnJ1bi5jIGIvZ2RiL2luZnJ1bi5jCitpbmRleCA5 YTViNTM0Li4zNTQ2Y2YxIDEwMDY0NAorLS0tIGEvZ2RiL2luZnJ1bi5jCisrKysgYi9nZGIvaW5m cnVuLmMKK0BAIC0zMDAsNiArMzAwLDcgQEAgZm9sbG93X2ZvcmsgKHZvaWQpCisgICAgICBwYXJl bnQgdGhyZWFkIHN0cnVjdHVyZSdzIHJ1biBjb250cm9sIHJlbGF0ZWQgZmllbGRzLCBub3QganVz dCB0aGVzZS4KKyAgICAgIEluaXRpYWxpemVkIHRvIGF2b2lkICJtYXkgYmUgdXNlZCB1bmluaXRp YWxpemVkIiB3YXJuaW5ncyBmcm9tIGdjYy4gICovCisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqc3Rl cF9yZXN1bWVfYnJlYWtwb2ludCA9IE5VTEw7CisrICBzdHJ1Y3QgYnJlYWtwb2ludCAqZXhjZXB0 aW9uX3Jlc3VtZV9icmVha3BvaW50ID0gTlVMTDsKKyAgIENPUkVfQUREUiBzdGVwX3JhbmdlX3N0 YXJ0ID0gMDsKKyAgIENPUkVfQUREUiBzdGVwX3JhbmdlX2VuZCA9IDA7CisgICBzdHJ1Y3QgZnJh bWVfaWQgc3RlcF9mcmFtZV9pZCA9IHsgMCB9OworQEAgLTM1Miw2ICszNTMsOCBAQCBmb2xsb3df Zm9yayAodm9pZCkKKyAJICAgIHN0ZXBfcmFuZ2Vfc3RhcnQgPSB0cC0+c3RlcF9yYW5nZV9zdGFy dDsKKyAJICAgIHN0ZXBfcmFuZ2VfZW5kID0gdHAtPnN0ZXBfcmFuZ2VfZW5kOworIAkgICAgc3Rl cF9mcmFtZV9pZCA9IHRwLT5zdGVwX2ZyYW1lX2lkOworKwkgICAgZXhjZXB0aW9uX3Jlc3VtZV9i cmVha3BvaW50CisrCSAgICAgID0gY2xvbmVfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHRwLT5leGNl cHRpb25fcmVzdW1lX2JyZWFrcG9pbnQpOworIAorIAkgICAgLyogRm9yIG5vdywgZGVsZXRlIHRo ZSBwYXJlbnQncyBzciBicmVha3BvaW50LCBvdGhlcndpc2UsCisgCSAgICAgICBwYXJlbnQvY2hp bGQgc3IgYnJlYWtwb2ludHMgYXJlIGNvbnNpZGVyZWQgZHVwbGljYXRlcywKK0BAIC0zNjIsNiAr MzY1LDcgQEAgZm9sbG93X2ZvcmsgKHZvaWQpCisgCSAgICB0cC0+c3RlcF9yYW5nZV9zdGFydCA9 IDA7CisgCSAgICB0cC0+c3RlcF9yYW5nZV9lbmQgPSAwOworIAkgICAgdHAtPnN0ZXBfZnJhbWVf aWQgPSBudWxsX2ZyYW1lX2lkOworKwkgICAgZGVsZXRlX2V4Y2VwdGlvbl9yZXN1bWVfYnJlYWtw b2ludCAodHApOworIAkgIH0KKyAKKyAJcGFyZW50ID0gaW5mZXJpb3JfcHRpZDsKK0BAIC00MDMs NiArNDA3LDggQEAgZm9sbG93X2ZvcmsgKHZvaWQpCisgCQkgICAgdHAtPnN0ZXBfcmFuZ2Vfc3Rh cnQgPSBzdGVwX3JhbmdlX3N0YXJ0OworIAkJICAgIHRwLT5zdGVwX3JhbmdlX2VuZCA9IHN0ZXBf cmFuZ2VfZW5kOworIAkJICAgIHRwLT5zdGVwX2ZyYW1lX2lkID0gc3RlcF9mcmFtZV9pZDsKKysJ CSAgICB0cC0+ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50CisrCQkgICAgICA9IGV4Y2VwdGlv bl9yZXN1bWVfYnJlYWtwb2ludDsKKyAJCSAgfQorIAkJZWxzZQorIAkJICB7CitAQCAtNDU2LDYg KzQ2Miw5IEBAIGZvbGxvd19pbmZlcmlvcl9yZXNldF9icmVha3BvaW50cyAodm9pZCkKKyAgIGlm ICh0cC0+c3RlcF9yZXN1bWVfYnJlYWtwb2ludCkKKyAgICAgYnJlYWtwb2ludF9yZV9zZXRfdGhy ZWFkICh0cC0+c3RlcF9yZXN1bWVfYnJlYWtwb2ludCk7CisgCisrICBpZiAodHAtPmV4Y2VwdGlv bl9yZXN1bWVfYnJlYWtwb2ludCkKKysgICAgYnJlYWtwb2ludF9yZV9zZXRfdGhyZWFkICh0cC0+ ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50KTsKKysKKyAgIC8qIFJlaW5zZXJ0IGFsbCBicmVh a3BvaW50cyBpbiB0aGUgY2hpbGQuICBUaGUgdXNlciBtYXkgaGF2ZSBzZXQKKyAgICAgIGJyZWFr cG9pbnRzIGFmdGVyIGNhdGNoaW5nIHRoZSBmb3JrLCBpbiB3aGljaCBjYXNlIHRob3NlCisgICAg ICB3ZXJlIG5ldmVyIHNldCBpbiB0aGUgY2hpbGQsIGJ1dCBvbmx5IGluIHRoZSBwYXJlbnQuICBU aGlzIG1ha2VzCitAQCAtNjk0LDYgKzcwMyw3IEBAIGZvbGxvd19leGVjIChwdGlkX3QgcGlkLCBj aGFyICpleGVjZF9wYXRobmFtZSkKKyAgIC8qIElmIHRoZXJlIHdhcyBvbmUsIGl0J3MgZ29uZSBu b3cuICBXZSBjYW5ub3QgdHJ1bHkgc3RlcC10by1uZXh0CisgICAgICBzdGF0ZW1lbnQgdGhyb3Vn aCBhbiBleGVjKCkuICovCisgICB0aC0+c3RlcF9yZXN1bWVfYnJlYWtwb2ludCA9IE5VTEw7Cisr ICB0aC0+ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50ID0gTlVMTDsKKyAgIHRoLT5zdGVwX3Jh bmdlX3N0YXJ0ID0gMDsKKyAgIHRoLT5zdGVwX3JhbmdlX2VuZCA9IDA7CisgCitAQCAtMjE0NSw2 ICsyMTU1LDcgQEAgZGVsZXRlX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnRfY2FsbGJhY2sgKHN0cnVj dCB0aHJlYWRfaW5mbyAqaW5mbywgdm9pZCAqZGF0YSkKKyAgICAgcmV0dXJuIDA7CisgCisgICBk ZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoaW5mbyk7CisrICBkZWxldGVfZXhjZXB0aW9u X3Jlc3VtZV9icmVha3BvaW50IChpbmZvKTsKKyAgIHJldHVybiAwOworIH0KKyAKK0BAIC0yMTY4 LDYgKzIxNzksNyBAQCBkZWxldGVfc3RlcF90aHJlYWRfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAo dm9pZCkKKyAJIHN0ZXBwaW5nLiAgKi8KKyAgICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwID0g aW5mZXJpb3JfdGhyZWFkICgpOworICAgICAgIGRlbGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50 ICh0cCk7CisrICAgICAgZGVsZXRlX2V4Y2VwdGlvbl9yZXN1bWVfYnJlYWtwb2ludCAodHApOwor ICAgICB9CisgICBlbHNlCisgICAgIC8qIEluIGFsbC1zdG9wIG1vZGUsIGRlbGV0ZSBhbGwgc3Rl cC1yZXN1bWUgYW5kIGxvbmdqbXAtcmVzdW1lCitAQCAtMzgzMiwzMCArMzg0NCwzMSBAQCBpbmZy dW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdkYmFyY2hfZ2V0X2xvbmdqbXBf dGFyZ2V0KVxuIik7CisgCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAorIAkJCSAg ICAgICJpbmZydW46IEJQU1RBVF9XSEFUX0NMRUFSX0xPTkdKTVBfUkVTVU1FXG4iKTsKKyAKKy0J Z2RiX2Fzc2VydCAoZWNzLT5ldmVudF90aHJlYWQtPnN0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgIT0g TlVMTCk7CistCWRlbGV0ZV9zdGVwX3Jlc3VtZV9icmVha3BvaW50IChlY3MtPmV2ZW50X3RocmVh ZCk7CistCistCWlmICghd2hhdC5pc19sb25nam1wKQorKwlpZiAod2hhdC5pc19sb25nam1wKQor KwkgIHsKKysJICAgIGdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3Jlc3VtZV9i cmVha3BvaW50ICE9IE5VTEwpOworKwkgICAgZGVsZXRlX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnQg KGVjcy0+ZXZlbnRfdGhyZWFkKTsKKysJICB9CisrCWVsc2UKKyAJICB7CisgCSAgICAvKiBUaGVy ZSBhcmUgc2V2ZXJhbCBjYXNlcyB0byBjb25zaWRlci4KKy0JICAgICAgIAorKworIAkgICAgICAg MS4gVGhlIGluaXRpYXRpbmcgZnJhbWUgbm8gbG9uZ2VyIGV4aXN0cy4gIEluIHRoaXMgY2FzZQor IAkgICAgICAgd2UgbXVzdCBzdG9wLCBiZWNhdXNlIHRoZSBleGNlcHRpb24gaGFzIGdvbmUgdG9v IGZhci4KKy0JICAgICAgIAorKworIAkgICAgICAgMi4gVGhlIGluaXRpYXRpbmcgZnJhbWUgZXhp c3RzLCBhbmQgaXMgdGhlIHNhbWUgYXMgdGhlCistCSAgICAgICBjdXJyZW50IGZyYW1lLgorLQkg ICAgICAgCistCSAgICAgICAyLjEuIElmIHdlIGFyZSBzdGVwcGluZywgZGVmZXIgdG8gdGhlIHN0 ZXBwaW5nIGxvZ2ljLgorLQkgICAgICAgCistCSAgICAgICAyLjIuIE90aGVyd2lzZSwgd2UgYXJl IG5vdCBzdGVwcGluZywgc28gd2UgYXJlIGRvaW5nIGEKKy0JICAgICAgICJmaW5pc2giIGFuZCB3 ZSBoYXZlIHJlYWNoZWQgdGhlIGNhbGxpbmcgZnJhbWUuICBTbywKKy0JICAgICAgIHN0b3AuCist CSAgICAgICAKKysJICAgICAgIGN1cnJlbnQgZnJhbWUuICBXZSBzdG9wLCBiZWNhdXNlIHRoZSBl eGNlcHRpb24gaGFzIGJlZW4KKysJICAgICAgIGNhdWdodC4KKysKKyAJICAgICAgIDMuIFRoZSBp bml0aWF0aW5nIGZyYW1lIGV4aXN0cyBhbmQgaXMgZGlmZmVyZW50IGZyb20KKyAJICAgICAgIHRo ZSBjdXJyZW50IGZyYW1lLiAgVGhpcyBtZWFucyB0aGUgZXhjZXB0aW9uIGhhcyBiZWVuCisgCSAg ICAgICBjYXVnaHQgYmVuZWF0aCB0aGUgaW5pdGlhdGluZyBmcmFtZSwgc28ga2VlcCBnb2luZy4g ICovCisgCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqaW5pdF9mcmFtZQorIAkgICAgICA9IGZyYW1l X2ZpbmRfYnlfaWQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5pbml0aWF0aW5nX2ZyYW1lKTsKKysKKysJ ICAgIGdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5leGNlcHRpb25fcmVzdW1lX2JyZWFr cG9pbnQgIT0gTlVMTCk7CisrCSAgICBkZWxldGVfZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50 IChlY3MtPmV2ZW50X3RocmVhZCk7CisrCisgCSAgICBpZiAoaW5pdF9mcmFtZSkKKyAJICAgICAg eworIAkJc3RydWN0IGZyYW1lX2lkIGN1cnJlbnRfaWQKK0BAIC0zODYzLDE1ICszODc2LDcgQEAg aW5mcnVuOiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9SRVNVTUUgKCFnZGJhcmNoX2dldF9sb25n am1wX3RhcmdldClcbiIpOworIAkJaWYgKGZyYW1lX2lkX2VxIChjdXJyZW50X2lkLAorIAkJCQkg ZWNzLT5ldmVudF90aHJlYWQtPmluaXRpYXRpbmdfZnJhbWUpKQorIAkJICB7CistCQkgICAgaWYg KGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3JhbmdlX3N0YXJ0KQorLQkJICAgICAgeworLQkJCS8q IENhc2UgMi4xLiAgKi8KKy0JCQlicmVhazsKKy0JCSAgICAgIH0KKy0JCSAgICBlbHNlCistCQkg ICAgICB7CistCQkJLyogQ2FzZSAyLjI6IGZhbGwgdGhyb3VnaC4gICovCistCQkgICAgICB9Cisr CQkgICAgLyogQ2FzZSAyLiAgRmFsbCB0aHJvdWdoLiAgKi8KKyAJCSAgfQorIAkJZWxzZQorIAkJ ICB7CitAQCAtMzg4MCw2ICszODg1LDEwIEBAIGluZnJ1bjogQlBTVEFUX1dIQVRfU0VUX0xPTkdK TVBfUkVTVU1FICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXQpXG4iKTsKKyAJCSAgICByZXR1 cm47CisgCQkgIH0KKyAJICAgICAgfQorKworKwkgICAgLyogRm9yIENhc2VzIDEgYW5kIDIsIHJl bW92ZSB0aGUgc3RlcC1yZXN1bWUgYnJlYWtwb2ludCwKKysJICAgICAgIGlmIGl0IGV4aXN0cy4g ICovCisrCSAgICBkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJl YWQpOworIAkgIH0KKyAKKyAJZWNzLT5ldmVudF90aHJlYWQtPnN0b3Bfc3RlcCA9IDE7CitAQCAt NDkzMCwxMCArNDkzOSw2IEBAIGluc2VydF9leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQgKHN0 cnVjdCB0aHJlYWRfaW5mbyAqdHAsCisgCXsKKyAJICBoYW5kbGVyID0gdmFsdWVfYXNfYWRkcmVz cyAodmFsdWUpOworIAorLQkgIC8qIFdlJ3JlIGdvaW5nIHRvIHJlcGxhY2UgdGhlIGN1cnJlbnQg c3RlcC1yZXN1bWUgYnJlYWtwb2ludAorLQkgICAgIHdpdGggYW4gZXhjZXB0aW9uLXJlc3VtZSBi cmVha3BvaW50LiAgKi8KKy0JICBkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2ludCAodHApOwor LQorIAkgIGlmIChkZWJ1Z19pbmZydW4pCisgCSAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRsb2csCisgCQkJCSJpbmZydW46IGV4Y2VwdGlvbiByZXN1bWUgYXQgJWx4XG4iLAorQEAgLTQ5 NDEsNyArNDk0Niw3IEBAIGluc2VydF9leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQgKHN0cnVj dCB0aHJlYWRfaW5mbyAqdHAsCisgCisgCSAgYnAgPSBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnRf YXRfcGMgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksCisgCQkJCQkgICAgICAgaGFuZGxlciwgYnBf ZXhjZXB0aW9uX3Jlc3VtZSk7CistCSAgaW5mZXJpb3JfdGhyZWFkICgpLT5zdGVwX3Jlc3VtZV9i cmVha3BvaW50ID0gYnA7CisrCSAgaW5mZXJpb3JfdGhyZWFkICgpLT5leGNlcHRpb25fcmVzdW1l X2JyZWFrcG9pbnQgPSBicDsKKyAJfQorICAgICB9CisgfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2dkYjk1OTMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5l eHAKK2luZGV4IGVlOWFlZmYuLmM3N2RiZDggMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5jcC9nZGI5NTkzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5leHAK K0BAIC0xNDUsNyArMTQ1LDcgQEAgZ2RiX3Rlc3QgInN0ZXAiIFwKKyAgICJzdGVwIGludG8gZmlu aXNoLCBmb3IgdW50aWwiCisgCisgZ2RiX3Rlc3QgInVudGlsIiBcCistICAiLipjYXRjaCAuaW50 IHguKiIgXAorKyAgIi4qZnVuY3Rpb24xICgpLioiIFwKKyAgICJ1bnRpbCB3aXRoIG5vIGFyZ3Vt ZW50IDEiCisgCisgc2V0IGxpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgIm1hcmtlciBmb3IgdW50 aWwiICR0ZXN0ZmlsZS5jY10KK2RpZmYgLS1naXQgYS9nZGIvdGhyZWFkLmMgYi9nZGIvdGhyZWFk LmMKK2luZGV4IDE2YTIwN2MuLjNjNTJhZTQgMTAwNjQ0CistLS0gYS9nZGIvdGhyZWFkLmMKKysr KyBiL2dkYi90aHJlYWQuYworQEAgLTkwLDYgKzkwLDE2IEBAIGRlbGV0ZV9zdGVwX3Jlc3VtZV9i cmVha3BvaW50IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwKQorICAgICB9CisgfQorIAorK3ZvaWQK KytkZWxldGVfZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgdGhyZWFkX2luZm8g KnRwKQorK3sKKysgIGlmICh0cCAmJiB0cC0+ZXhjZXB0aW9uX3Jlc3VtZV9icmVha3BvaW50KQor KyAgICB7CisrICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKHRwLT5leGNlcHRpb25fcmVzdW1lX2Jy ZWFrcG9pbnQpOworKyAgICAgIHRwLT5leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQgPSBOVUxM OworKyAgICB9CisrfQorKworIHN0YXRpYyB2b2lkCisgY2xlYXJfdGhyZWFkX2luZmVyaW9yX3Jl c291cmNlcyAoc3RydWN0IHRocmVhZF9pbmZvICp0cCkKKyB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXVw c3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmI2NDNhZDYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdXBzdHJlYW0ucGF0 Y2gKQEAgLTAsMCArMSwxMTc5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8y MDEwLTAzL21zZzAwMTA0Lmh0bWwKKzU4NTU5NTQ0NTRmMTlhODAxZjc2YmJmN2JhYWZkMTFhNjkz YzVkMzMKKworSW1wb3J0ZWQgdG8gc3luYyBnZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwIGZvciBn ZGItcGllLXJlcnVuLnBhdGNoLgorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wMy8xMSAw Mzo0NTo0OAkxLjExNDY5CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wMy8xMSAyMjowNzow MAkxLjExNDcwCisjIyAtMSwzICsxLDkgQEAKKysyMDEwLTAzLTExICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisrCSogc29saWItc3ZyNC5jIChMTV9BRERS X0NIRUNLKSA8aW5mb192ZXJib3NlPjogVXNlIHByaW50Zl91bmZpbHRlcmVkCisrCWZvciB0aGUg UElDIGRpc3BsYWNlbWVudCwgcHJpbnQgYWxzbyB0aGUgZGlzcGxhY2VtZW50IHZhbHVlLgorKwko c3ZyNF9leGVjX2Rpc3BsYWNlbWVudCk6ICBQcmludCBESVNQTEFDRU1FTlQgaWYgSU5GT19WRVJC T1NFLgorKworIDIwMTAtMDMtMTAgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+ CisgCisgCSogcmVtb3RlLW1pcHMuYyAoY2xvc2VfcG9ydHMsIG1pcHNfaW5pdGlhbGl6ZV9jbGVh bnVwcykKKy0tLSBzcmMvZ2RiL3NvbGliLXN2cjQuYwkyMDEwLzAzLzEwIDIwOjU1OjQ0CTEuMTI5 CisrKysgc3JjL2dkYi9zb2xpYi1zdnI0LmMJMjAxMC8wMy8xMSAyMjowNzowMgkxLjEzMAorQEAg LTI0MywxMiArMjQzLDEwIEBACisgCSAgICAgIGxfYWRkciA9IGxfZHluYWRkciAtIGR5bmFkZHI7 CisgCisgCSAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCistCQl7CistCQkgIHdhcm5pbmcgKF8oIi5k eW5hbWljIHNlY3Rpb24gZm9yIFwiJXNcIiAiCistCQkJICAgICAiaXMgbm90IGF0IHRoZSBleHBl Y3RlZCBhZGRyZXNzIiksIHNvLT5zb19uYW1lKTsKKy0JCSAgd2FybmluZyAoXygiZGlmZmVyZW5j ZSBhcHBlYXJzIHRvIGJlIGNhdXNlZCBieSBwcmVsaW5rLCAiCistCQkJICAgICAiYWRqdXN0aW5n IGV4cGVjdGF0aW9ucyIpKTsKKy0JCX0KKysJCXByaW50Zl91bmZpbHRlcmVkIChfKCJVc2luZyBQ SUMgKFBvc2l0aW9uIEluZGVwZW5kZW50IENvZGUpICIKKysJCQkJICAgICAicHJlbGluayBkaXNw bGFjZW1lbnQgJXMgZm9yIFwiJXNcIi5cbiIpLAorKwkJCQkgICBwYWRkcmVzcyAodGFyZ2V0X2dk YmFyY2gsIGxfYWRkciksCisrCQkJCSAgIHNvLT5zb19uYW1lKTsKKyAJICAgIH0KKyAJICBlbHNl CisgCSAgICB3YXJuaW5nIChfKCIuZHluYW1pYyBzZWN0aW9uIGZvciBcIiVzXCIgIgorQEAgLTE3 NjcsNiArMTc2NSwxOCBAQAorIAlyZXR1cm4gMDsKKyAgICAgfQorIAorKyAgaWYgKGluZm9fdmVy Ym9zZSkKKysgICAgeworKyAgICAgIC8qIEl0IGNhbiBiZSBwcmludGVkIHJlcGVhdGVkbHkgYXMg dGhlcmUgaXMgbm8gZWFzeSB3YXkgdG8gY2hlY2sKKysJIHRoZSBleGVjdXRhYmxlIHN5bWJvbHMv ZmlsZSBoYXMgYmVlbiBhbHJlYWR5IHJlbG9jYXRlZCB0bworKwkgZGlzcGxhY2VtZW50LiAgKi8K KysKKysgICAgICBwcmludGZfdW5maWx0ZXJlZCAoXygiVXNpbmcgUElFIChQb3NpdGlvbiBJbmRl cGVuZGVudCBFeGVjdXRhYmxlKSAiCisrCQkJICAgImRpc3BsYWNlbWVudCAlcyBmb3IgXCIlc1wi LlxuIiksCisrCQkJIHBhZGRyZXNzICh0YXJnZXRfZ2RiYXJjaCwgZGlzcGxhY2VtZW50KSwKKysJ CQkgYmZkX2dldF9maWxlbmFtZSAoZXhlY19iZmQpKTsKKysgICAgfQorKworICAgKmRpc3BsYWNl bWVudHAgPSBkaXNwbGFjZW1lbnQ7CisgICByZXR1cm4gMTsKKyB9CisjIyMgc3JjL2dkYi90ZXN0 c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDMvMTEgMDA6MjA6MjkJMS4yMTY4CisjIyMgc3JjL2dkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDMvMTEgMjI6MDc6MDIJMS4yMTY5CisjIyAtMSwzICsx LDIwIEBACisrMjAxMC0wMy0xMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgorKworKwkqIGdkYi5iYXNlL2JyZWFrLWludGVycC5leHA6IENyZWF0ZSBuZXcgZGlz cGxhY2VtZW50IHBhcmFtZXRlciB2YWx1ZQorKwlmb3IgdGhlIHRlc3RfbGQgY2FsbHMuCisrCShy ZWFjaCk6IE5ldyBwYXJhbWV0ZXIgZGlzcGxhY2VtZW50LCB2ZXJpZnkgaXRzIGNvbnRlbnQuICBO ZXcgcHVzaCBvZgorKwlwZl9wcmVmaXggInJlYWNoLSRmdW5jOiIuICBJbXBvcnQgZ2xvYmFsIGV4 cGVjdF9vdXQuCisrCSh0ZXN0X2NvcmUpOiBOZXcgcGFyYW1ldGVyIGRpc3BsYWNlbWVudCwgdmVy aWZ5IGl0cyBjb250ZW50LiAgTmV3IHB1c2gKKysJb2YgcGZfcHJlZml4ICJjb3JlOiIuICBOZXcg Y29tbWFuZCAic2V0IHZlcmJvc2Ugb24iLiAgSW1wb3J0IGdsb2JhbAorKwlleHBlY3Rfb3V0Lgor KwkodGVzdF9hdHRhY2gpOiBOZXcgcGFyYW1ldGVyIGRpc3BsYWNlbWVudCwgdmVyaWZ5IGl0cyBj b250ZW50LiAgTmV3CisrCXB1c2ggb2YgcGZfcHJlZml4ICJhdHRhY2g6Ii4gIE5ldyBjb21tYW5k ICJzZXQgdmVyYm9zZSBvbiIuICBJbXBvcnQKKysJZ2xvYmFsIGV4cGVjdF9vdXQuCisrCSh0ZXN0 X2xkKTogTmV3IHBhcmFtZXRlciBkaXNwbGFjZW1lbnQsIHBhc3MgaXQgdG8gdGhlIHJlYWNoLCB0 ZXN0X2NvcmUKKysJYW5kIHRlc3RfYXR0YWNoIGNhbGxzIGFuZCB2ZXJpZnkgaXRzIGNvbnRlbnQg aW4gdGhlICJsZC5zbyBleGl0IiB0ZXN0LgorKwkqIGdkYi5iYXNlL3ByZWxpbmsuZXhwOiBSZW1v dmUgZ2RiX2V4aXQgYW5kIGZpbmFsIHJldHVybi4KKysJKHByZWxpbmspOiBVcGRhdGUgZXhwZWN0 ZWQgdGV4dCwgdXNlIGdkYl90ZXN0LgorKworIDIwMTAtMDMtMTAgIERvdWcgRXZhbnMgIDxkamVA Z29vZ2xlLmNvbT4KKyAKKyAJKiBnZGIuYmFzZS9jaGVja3BvaW50LmV4cDogRml4IGNvbW1lbnQu CistLS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cAkyMDEwLzAx LzI3IDIwOjUzOjIyCTEuNgorKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JyZWFrLWlu dGVycC5leHAJMjAxMC8wMy8xMSAyMjowNzowMwkxLjcKK0BAIC0yMjEsMzAgKzIyMSw2MSBAQAor IH0KKyAKKyAjIGBydW50bycgZG9lcyBub3QgY2hlY2sgd2Ugc3RvcHBlZCByZWFsbHkgYXQgdGhl IGZ1bmN0aW9uIHdlIHNwZWNpZmllZC4KKy1wcm9jIHJlYWNoIHtmdW5jIGNvbW1hbmR9IHsKKy0g ICAgZ2xvYmFsIGdkYl9wcm9tcHQKKysjIERJU1BMQUNFTUVOVCBjYW4gYmUgIk5PTkUiLCAiWkVS TyIgb3IgIk5PTlpFUk8iCisrcHJvYyByZWFjaCB7ZnVuYyBjb21tYW5kIGRpc3BsYWNlbWVudH0g eworKyAgICBnbG9iYWwgZ2RiX3Byb21wdCBleHBlY3Rfb3V0CisrCisrICAgIGdsb2JhbCBwZl9w cmVmaXgKKysgICAgc2V0IG9sZF9sZHByZWZpeCAkcGZfcHJlZml4CisrICAgIGxhcHBlbmQgcGZf cHJlZml4ICJyZWFjaC0kZnVuYzoiCisgCisgICAgIGlmIFtnZGJfYnJlYWtwb2ludCAkZnVuYyBh bGxvdy1wZW5kaW5nXSB7CistCXNldCB0ZXN0ICJyZWFjaCAkZnVuYyIKKysJc2V0IHRlc3QgInJl YWNoIgorKwlzZXQgdGVzdF9kaXNwbGFjZW1lbnQgInNlZW4gZGlzcGxhY2VtZW50IG1lc3NhZ2Ug YXMgJGRpc3BsYWNlbWVudCIKKyAJZ2RiX3Rlc3RfbXVsdGlwbGUgJGNvbW1hbmQgJHRlc3Qgewor KwkgICAgLXJlICJVc2luZyBQSUUgXFwoUG9zaXRpb24gSW5kZXBlbmRlbnQgRXhlY3V0YWJsZVxc KSBkaXNwbGFjZW1lbnQgKDB4XFswLTlhLWZcXSspICIgeworKwkJIyBNaXNzaW5nICIkZ2RiX3By b21wdCAkIiBpcyBpbnRlbnRpb25hbC4KKysJCWlmIHskZXhwZWN0X291dCgxLHN0cmluZykgPT0g IjB4MCJ9IHsKKysJCSAgICBzZXQgY2FzZSAiWkVSTyIKKysJCX0gZWxzZSB7CisrCQkgICAgc2V0 IGNhc2UgIk5PTlpFUk8iCisrCQl9CisrCQlpZiB7JGRpc3BsYWNlbWVudCA9PSAkY2FzZX0gewor KwkJICAgIHBhc3MgJHRlc3RfZGlzcGxhY2VtZW50CisrCQkgICAgIyBQZXJtaXQgbXVsdGlwbGUg c3VjaCBtZXNzYWdlcy4KKysJCSAgICBzZXQgZGlzcGxhY2VtZW50ICJGT1VORC0kZGlzcGxhY2Vt ZW50IgorKwkJfSBlbHNlaWYgeyRkaXNwbGFjZW1lbnQgIT0gIkZPVU5ELSRjYXNlIn0geworKwkJ ICAgIGZhaWwgJHRlc3RfZGlzcGxhY2VtZW50CisrCQl9CisrCQlleHBfY29udGludWUKKysJICAg IH0KKyAJICAgIC1yZSAiQnJlYWtwb2ludCBcWzAtOVxdKywgJGZ1bmMgXFwoLipcXCkgYXQgLio6 XFswLTlcXStcclxuLiokZ2RiX3Byb21wdCAkIiB7CisgCQlwYXNzICR0ZXN0CisgCSAgICB9Cist CSAgICAtcmUgIkJyZWFrcG9pbnQgXFswLTlcXSssIFxbMC05eGEtZlxdKyBpbiAkZnVuYyBcXChc XCkoIGZyb20gLiopP1xyXG4kZ2RiX3Byb21wdCAkIiB7IAorKwkgICAgLXJlICJCcmVha3BvaW50 IFxbMC05XF0rLCBcWzAtOXhhLWZcXSsgaW4gJGZ1bmMgXFwoXFwpKCBmcm9tIC4qKT9cclxuJGdk Yl9wcm9tcHQgJCIgeworIAkJcGFzcyAkdGVzdAorIAkgICAgfQorIAl9CisrCWlmICFbcmVnZXhw IHteKE5PTkV8Rk9VTkQtLiopJH0gJGRpc3BsYWNlbWVudF0geworKwkgICAgZmFpbCAkdGVzdF9k aXNwbGFjZW1lbnQKKysJfQorICAgICB9CisrCisrICAgIHNldCBwZl9wcmVmaXggJG9sZF9sZHBy ZWZpeAorIH0KKyAKKy1wcm9jIHRlc3RfY29yZSB7ZmlsZX0geworLSAgICBnbG9iYWwgc3JjZGly IHN1YmRpciBnZGJfcHJvbXB0CisrcHJvYyB0ZXN0X2NvcmUge2ZpbGUgZGlzcGxhY2VtZW50fSB7 CisrICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIGdkYl9wcm9tcHQgZXhwZWN0X291dAorIAorICAg ICBzZXQgY29yZWZpbGUgW2NvcmVfZmluZCAkZmlsZSB7fSAic2VndiJdCisgICAgIGlmIHskY29y ZWZpbGUgPT0gIiJ9IHsKKyAJcmV0dXJuCisgICAgIH0KKyAKKysgICAgZ2xvYmFsIHBmX3ByZWZp eAorKyAgICBzZXQgb2xkX2xkcHJlZml4ICRwZl9wcmVmaXgKKysgICAgbGFwcGVuZCBwZl9wcmVm aXggImNvcmU6IgorKworICAgICBnZGJfZXhpdAorICAgICBnZGJfc3RhcnQKKyAgICAgIyBDbGVh ciBpdCB0byBuZXZlciBmaW5kIGFueSBzZXBhcmF0ZSBkZWJ1ZyBpbmZvcyBpbiAkZGVidWdfcm9v dC4KK0BAIC0yNTIsMTQgKzI4Myw0NCBAQAorICAgICBnZGJfcmVpbml0aWFsaXplX2RpciAkc3Jj ZGlyLyRzdWJkaXIKKyAgICAgZ2RiX2xvYWQgJGZpbGUKKyAKKy0gICAgIyBEbyBub3QgY2hlY2sg dGhlIGJpbmFyeSBmaWxlbmFtZSBhcyBpdCBtYXkgYmUgdHJ1bmNhdGVkLgorLSAgICBnZGJfdGVz dCAiY29yZS1maWxlICRjb3JlZmlsZSIgIkNvcmUgd2FzIGdlbmVyYXRlZCBieSAuKlxyXG4jMCAu KiIgImNvcmUgbG9hZGVkIgorKyAgICAjIFByaW50IHRoZSAiUElFIChQb3NpdGlvbiBJbmRlcGVu ZGVudCBFeGVjdXRhYmxlKSBkaXNwbGFjZW1lbnQiIG1lc3NhZ2UuCisrICAgIGdkYl90ZXN0ICJz ZXQgdmVyYm9zZSBvbiIKKysKKysgICAgc2V0IHRlc3QgImNvcmUgbG9hZGVkIgorKyAgICBzZXQg dGVzdF9kaXNwbGFjZW1lbnQgInNlZW4gZGlzcGxhY2VtZW50IG1lc3NhZ2UiCisrICAgIGdkYl90 ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJGNvcmVmaWxlIiAkdGVzdCB7CisrCS1yZSAiVXNpbmcg UElFIFxcKFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFibGVcXCkgZGlzcGxhY2VtZW50ICgw eFxbMC05YS1mXF0rKSAiIHsKKysJICAgICMgTWlzc2luZyAiJGdkYl9wcm9tcHQgJCIgaXMgaW50 ZW50aW9uYWwuCisrCSAgICBpZiB7JGV4cGVjdF9vdXQoMSxzdHJpbmcpID09ICIweDAifSB7Cisr CQlzZXQgY2FzZSAiWkVSTyIKKysJICAgIH0gZWxzZSB7CisrCQlzZXQgY2FzZSAiTk9OWkVSTyIK KysJICAgIH0KKysJICAgIGlmIHskZGlzcGxhY2VtZW50ID09ICRjYXNlfSB7CisrCQlwYXNzICR0 ZXN0X2Rpc3BsYWNlbWVudAorKwkJIyBQZXJtaXQgbXVsdGlwbGUgc3VjaCBtZXNzYWdlcy4KKysJ CXNldCBkaXNwbGFjZW1lbnQgIkZPVU5ELSRkaXNwbGFjZW1lbnQiCisrCSAgICB9IGVsc2VpZiB7 JGRpc3BsYWNlbWVudCAhPSAiRk9VTkQtJGNhc2UifSB7CisrCQlmYWlsICR0ZXN0X2Rpc3BsYWNl bWVudAorKwkgICAgfQorKwkgICAgZXhwX2NvbnRpbnVlCisrCX0KKysJLXJlICJDb3JlIHdhcyBn ZW5lcmF0ZWQgYnkgLipcclxuIzAgLiokZ2RiX3Byb21wdCAkIiB7CisrCSAgICAjIERvIG5vdCBj aGVjayB0aGUgYmluYXJ5IGZpbGVuYW1lIGFzIGl0IG1heSBiZSB0cnVuY2F0ZWQuCisrCSAgICBw YXNzICR0ZXN0CisrCX0KKysgICAgfQorKyAgICBpZiAhW3JlZ2V4cCB7XihOT05FfEZPVU5ELS4q KSR9ICRkaXNwbGFjZW1lbnRdIHsKKysJZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQKKysgICAgfQor IAorICAgICBnZGJfdGVzdCAiYnQiICIjXFswLTlcXSsgK1xbXlxyXG5cXSpcXG1saWJmdW5jXFxN XFteXHJcblxdKlxyXG4jXFswLTlcXSsgK1xbXlxyXG5cXSpcXG1tYWluXFxNLioiICJjb3JlIG1h aW4gYnQiCisrCisrICAgIHNldCBwZl9wcmVmaXggJG9sZF9sZHByZWZpeAorIH0KKyAKKy1wcm9j IHRlc3RfYXR0YWNoIHtmaWxlfSB7CistICAgIGdsb2JhbCBib2FyZF9pbmZvCisrcHJvYyB0ZXN0 X2F0dGFjaCB7ZmlsZSBkaXNwbGFjZW1lbnR9IHsKKysgICAgZ2xvYmFsIGJvYXJkX2luZm8gZ2Ri X3Byb21wdCBleHBlY3Rfb3V0CisgCisgICAgIGdkYl9leGl0CisgCitAQCAtMjg3LDE3ICszNDgs NjEgQEAKKyAJfQorICAgICB9CisgCisrICAgIGdsb2JhbCBwZl9wcmVmaXgKKysgICAgc2V0IG9s ZF9sZHByZWZpeCAkcGZfcHJlZml4CisrICAgIGxhcHBlbmQgcGZfcHJlZml4ICJhdHRhY2g6Igor KworICAgICBnZGJfZXhpdAorICAgICBnZGJfc3RhcnQKKy0gICAgZ2RiX3Rlc3QgImF0dGFjaCAk cGlkIiAiQXR0YWNoaW5nIHRvIHByb2Nlc3MgJHBpZFxyXG4uKiIgImF0dGFjaCIKKysKKysgICAg IyBQcmludCB0aGUgIlBJRSAoUG9zaXRpb24gSW5kZXBlbmRlbnQgRXhlY3V0YWJsZSkgZGlzcGxh Y2VtZW50IiBtZXNzYWdlLgorKyAgICBnZGJfdGVzdCAic2V0IHZlcmJvc2Ugb24iCisrCisrICAg IHNldCB0ZXN0ICJhdHRhY2giCisrICAgIGdkYl90ZXN0X211bHRpcGxlICJhdHRhY2ggJHBpZCIg JHRlc3QgeworKwktcmUgIkF0dGFjaGluZyB0byBwcm9jZXNzICRwaWRcclxuIiB7CisrCSAgICAj IE1pc3NpbmcgIiRnZGJfcHJvbXB0ICQiIGlzIGludGVudGlvbmFsLgorKwkgICAgcGFzcyAkdGVz dAorKwl9CisrICAgIH0KKysKKysgICAgc2V0IHRlc3QgImF0dGFjaCBmaW5hbCBwcm9tcHQiCisr ICAgIHNldCB0ZXN0X2Rpc3BsYWNlbWVudCAic2VlbiBkaXNwbGFjZW1lbnQgbWVzc2FnZSIKKysg ICAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3QgeworKwktcmUgIlVzaW5nIFBJRSBcXChQb3Np dGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlXFwpIGRpc3BsYWNlbWVudCAoMHhcWzAtOWEtZlxd KykgIiB7CisrCSAgICAjIE1pc3NpbmcgIiRnZGJfcHJvbXB0ICQiIGlzIGludGVudGlvbmFsLgor KwkgICAgaWYgeyRleHBlY3Rfb3V0KDEsc3RyaW5nKSA9PSAiMHgwIn0geworKwkJc2V0IGNhc2Ug IlpFUk8iCisrCSAgICB9IGVsc2UgeworKwkJc2V0IGNhc2UgIk5PTlpFUk8iCisrCSAgICB9Cisr CSAgICBpZiB7JGRpc3BsYWNlbWVudCA9PSAkY2FzZX0geworKwkJcGFzcyAkdGVzdF9kaXNwbGFj ZW1lbnQKKysJCSMgUGVybWl0IG11bHRpcGxlIHN1Y2ggbWVzc2FnZXMuCisrCQlzZXQgZGlzcGxh Y2VtZW50ICJGT1VORC0kZGlzcGxhY2VtZW50IgorKwkgICAgfSBlbHNlaWYgeyRkaXNwbGFjZW1l bnQgIT0gIkZPVU5ELSRjYXNlIn0geworKwkJZmFpbCAkdGVzdF9kaXNwbGFjZW1lbnQKKysJICAg IH0KKysJICAgIGV4cF9jb250aW51ZQorKwl9CisrCS1yZSAiJGdkYl9wcm9tcHQgJCIgeworKwkg ICAgcGFzcyAkdGVzdAorKwl9CisrICAgIH0KKysgICAgaWYgIVtyZWdleHAge14oTk9ORXxGT1VO RC0uKikkfSAkZGlzcGxhY2VtZW50XSB7CisrCWZhaWwgJHRlc3RfZGlzcGxhY2VtZW50CisrICAg IH0KKysKKyAgICAgZ2RiX3Rlc3QgImJ0IiAiI1xbMC05XF0rICtcW15cclxuXF0qXFxtbGliZnVu Y1xcTVxbXlxyXG5cXSpcclxuI1xbMC05XF0rICtcW15cclxuXF0qXFxtbWFpblxcTS4qIiAiYXR0 YWNoIG1haW4gYnQiCisgICAgIGdkYl9leGl0CisgCisgICAgIHJlbW90ZV9leGVjIGhvc3QgImtp bGwgLTkgJHBpZCIKKysKKysgICAgc2V0IHBmX3ByZWZpeCAkb2xkX2xkcHJlZml4CisgfQorIAor LXByb2MgdGVzdF9sZCB7ZmlsZSBpZm1haW4gdHJ5bm9zeW19IHsKKy0gICAgZ2xvYmFsIHNyY2Rp ciBzdWJkaXIgZ2RiX3Byb21wdAorK3Byb2MgdGVzdF9sZCB7ZmlsZSBpZm1haW4gdHJ5bm9zeW0g ZGlzcGxhY2VtZW50fSB7CisrICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIGdkYl9wcm9tcHQgZXhw ZWN0X291dAorIAorICAgICAjIEZpcnN0IHRlc3Qgbm9ybWFsIGBmaWxlJy1jb21tYW5kIGxvYWRl ZCAkRklMRSB3aXRoIHN5bWJvbHMuCisgCitAQCAtMzA4LDIwICs0MTMsMzEgQEAKKyAgICAgZ2Ri X3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisgICAgIGdkYl9sb2FkICRmaWxlCisg CistICAgIHJlYWNoICJkbF9tYWluIiAicnVuIHNlZ3YiCisrICAgICMgUHJpbnQgdGhlICJQSUUg KFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFibGUpIGRpc3BsYWNlbWVudCIgbWVzc2FnZS4K KysgICAgZ2RiX3Rlc3QgInNldCB2ZXJib3NlIG9uIgorKworKyAgICByZWFjaCAiZGxfbWFpbiIg InJ1biBzZWd2IiAkZGlzcGxhY2VtZW50CisgCisgICAgIGdkYl90ZXN0ICJidCIgIiMwICtcW15c clxuXF0qXFxtZGxfbWFpblxcTS4qIiAiZGwgYnQiCisgCisgICAgIGlmICRpZm1haW4geworLQly ZWFjaCAibWFpbiIgY29udGludWUKKysJIyBEaXNwbGFjZW1lbnQgbWVzc2FnZSB3aWxsIGJlIHBy aW50ZWQgdGhlIHNlY29uZCB0aW1lIG9uIGluaXRpYWxpemluZworKwkjIHRoZSBsaW5rZXIgZnJv bSBzdnI0X3NwZWNpYWxfc3ltYm9sX2hhbmRsaW5nLiAgSWYgYW55IEFOT0ZGU0VUIGhhcworKwkj IGJlZW4gYWxyZWFkeSBzZXQgYXMgbm9uLXplcm8gdGhlIGRldGVjdGlvbiB3aWxsIG5vIGxvbmdl ciBiZSBydW4uCisrCWlmIHskZGlzcGxhY2VtZW50ID09ICJOT05aRVJPIn0geworKwkgICAgc2V0 IGRpc3BsYWNlbWVudF9tYWluICJOT05FIgorKwl9IGVsc2UgeworKwkgICAgc2V0IGRpc3BsYWNl bWVudF9tYWluICRkaXNwbGFjZW1lbnQKKysJfQorKwlyZWFjaCAibWFpbiIgY29udGludWUgJGRp c3BsYWNlbWVudF9tYWluCisgCistCXJlYWNoICJsaWJmdW5jIiBjb250aW51ZQorKwlyZWFjaCAi bGliZnVuYyIgY29udGludWUgIk5PTkUiCisgCisgCWdkYl90ZXN0ICJidCIgIiMwICtcW15cclxu XF0qXFxtbGliZnVuY1xcTVxbXlxyXG5cXSpcclxuIzEgK1xbXlxyXG5cXSpcXG1tYWluXFxNLioi ICJtYWluIGJ0IgorIAorLQl0ZXN0X2NvcmUgJGZpbGUKKysJdGVzdF9jb3JlICRmaWxlICRkaXNw bGFjZW1lbnQKKyAKKy0JdGVzdF9hdHRhY2ggJGZpbGUKKysJdGVzdF9hdHRhY2ggJGZpbGUgJGRp c3BsYWNlbWVudAorICAgICB9CisgCisgICAgIGlmICEkdHJ5bm9zeW0geworQEAgLTM0MSwxOCAr NDU3LDIxIEBACisgICAgIGdkYl90ZXN0ICJzZXQgZGVidWctZmlsZS1kaXJlY3RvcnkiCisgICAg IGdkYl9yZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorIAorKyAgICAjIFByaW50IHRo ZSAiUElFIChQb3NpdGlvbiBJbmRlcGVuZGVudCBFeGVjdXRhYmxlKSBkaXNwbGFjZW1lbnQiIG1l c3NhZ2UuCisrICAgIGdkYl90ZXN0ICJzZXQgdmVyYm9zZSBvbiIKKysKKyAgICAgIyBUZXN0IG5v IChlcnJvcikgbWVzc2FnZSBoYXMgYmVlbiBwcmludGVkIGJ5IGBleGVjLWZpbGUnLgorICAgICBz ZXQgZXNjYXBlZGZpbGUgW3N0cmluZ190b19yZWdleHAgJGZpbGVdCisgICAgIGdkYl90ZXN0ICJl eGVjLWZpbGUgJGZpbGUiICJleGVjLWZpbGUgJGVzY2FwZWRmaWxlIiAibG9hZCIKKyAKKyAgICAg aWYgJGlmbWFpbiB7CistCXJlYWNoICJkbF9tYWluIiBydW4KKysJcmVhY2ggImRsX21haW4iIHJ1 biAkZGlzcGxhY2VtZW50CisgCisgCXNldCB0ZXN0ICJpbmZvIGZpbGVzIgorIAlzZXQgZW50cnlu b2hleCAiIgorIAlnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisgCSAgICAtcmUgIlxy XG5cW1x0IFxdKkVudHJ5IHBvaW50OlxbXHQgXF0qMHgoXFswLTlhLWZcXSspXHJcbi4qJGdkYl9w cm9tcHQgJCIgeworLQkJc2V0IGVudHJ5bm9oZXggJGV4cGVjdF9vdXQoMSxzdHJpbmcpIAorKwkJ c2V0IGVudHJ5bm9oZXggJGV4cGVjdF9vdXQoMSxzdHJpbmcpCisgCQlwYXNzICR0ZXN0CisgCSAg ICB9CisgCX0KK0BAIC0zNjMsNyArNDgyLDM0IEBACisgICAgIH0gZWxzZSB7CisgCSMgVGhlcmUg aXMgbm8gc3ltYm9sIHRvIGJyZWFrIGF0IGxkLnNvLiAgTW9yZW92ZXIgaXQgY2FuIGV4aXQgd2l0 aCBhbgorIAkjIGVycm9yIGNvZGUuCistCWdkYl90ZXN0ICJydW4iICJQcm9ncmFtIGV4aXRlZCAo bm9ybWFsbHl8d2l0aCBjb2RlIFxbMC05XF0rKVxcLiIgImxkLnNvIGV4aXQiCisrCisrCXNldCB0 ZXN0ICJsZC5zbyBleGl0IgorKwlzZXQgdGVzdF9kaXNwbGFjZW1lbnQgInNlZW4gZGlzcGxhY2Vt ZW50IG1lc3NhZ2UiCisrCWdkYl90ZXN0X211bHRpcGxlICJydW4iICR0ZXN0IHsKKysJICAgIC1y ZSAiVXNpbmcgUElFIFxcKFBvc2l0aW9uIEluZGVwZW5kZW50IEV4ZWN1dGFibGVcXCkgZGlzcGxh Y2VtZW50ICgweFxbMC05YS1mXF0rKSAiIHsKKysJCSMgTWlzc2luZyAiJGdkYl9wcm9tcHQgJCIg aXMgaW50ZW50aW9uYWwuCisrCQlpZiB7JGV4cGVjdF9vdXQoMSxzdHJpbmcpID09ICIweDAifSB7 CisrCQkgICAgc2V0IGNhc2UgIlpFUk8iCisrCQl9IGVsc2UgeworKwkJICAgIHNldCBjYXNlICJO T05aRVJPIgorKwkJfQorKwkJaWYgeyRkaXNwbGFjZW1lbnQgPT0gJGNhc2V9IHsKKysJCSAgICBw YXNzICR0ZXN0X2Rpc3BsYWNlbWVudAorKwkJICAgICMgUGVybWl0IG11bHRpcGxlIHN1Y2ggbWVz c2FnZXMuCisrCQkgICAgc2V0IGRpc3BsYWNlbWVudCAiRk9VTkQtJGRpc3BsYWNlbWVudCIKKysJ CX0gZWxzZWlmIHskZGlzcGxhY2VtZW50ICE9ICJGT1VORC0kY2FzZSJ9IHsKKysJCSAgICBmYWls ICR0ZXN0X2Rpc3BsYWNlbWVudAorKwkJfQorKwkJZXhwX2NvbnRpbnVlCisrCSAgICB9CisrCSAg ICAtcmUgIlByb2dyYW0gZXhpdGVkIChub3JtYWxseXx3aXRoIGNvZGUgXFswLTlcXSspXFwuXHJc biRnZGJfcHJvbXB0ICQiIHsKKysJCSMgRG8gbm90IGNoZWNrIHRoZSBiaW5hcnkgZmlsZW5hbWUg YXMgaXQgbWF5IGJlIHRydW5jYXRlZC4KKysJCXBhc3MgJHRlc3QKKysJICAgIH0KKysJfQorKwlp ZiAhW3JlZ2V4cCB7XihOT05FfEZPVU5ELS4qKSR9ICRkaXNwbGFjZW1lbnRdIHsKKysJICAgIGZh aWwgJHRlc3RfZGlzcGxhY2VtZW50CisrCX0KKyAgICAgfQorIAorICAgICBzZXQgcGZfcHJlZml4 ICRvbGRfbGRwcmVmaXgKK0BAIC00NTAsNyArNTk2LDEyIEBACisgCWlmICFbcHJlbGluayRsZHBy ZWxpbmsgJGludGVycF0geworIAkgICAgY29udGludWUKKyAJfQorLQl0ZXN0X2xkICRpbnRlcnAg MCBbZXhwciB7JGxkc2VwZGVidWcgPT0gIk5PIn1dCisrCWlmIHskbGRwcmVsaW5rID09ICJOTyJ9 IHsKKysJICAgIHNldCBkaXNwbGFjZW1lbnQgIk5PTlpFUk8iCisrCX0gZWxzZSB7CisrCSAgICBz ZXQgZGlzcGxhY2VtZW50ICJaRVJPIgorKwl9CisrCXRlc3RfbGQgJGludGVycCAwIFtleHByIHsk bGRzZXBkZWJ1ZyA9PSAiTk8ifV0gJGRpc3BsYWNlbWVudAorIAorIAlpZiAhW2NvcHkgJGludGVy cCAkaW50ZXJwX3NhdmVkXSB7CisgCSAgICBjb250aW51ZQorQEAgLTUzMSw3ICs2ODIsMTQgQEAK KyAKKyAJCSAgICBpZiB7W3ByZWxpbmskYmlucHJlbGluayAiLS1keW5hbWljLWxpbmtlcj0kaW50 ZXJwIC0tbGQtbGlicmFyeS1wYXRoPSRkaXIgJGV4ZWMgJGludGVycCBbY29uY2F0ICRkZXN0c10i IFtmaWxlIHRhaWwgJGV4ZWNdXQorIAkJICAgICAgICAmJiBbY29weSAkaW50ZXJwX3NhdmVkICRp bnRlcnBdfSB7CistCQkJdGVzdF9sZCAkZXhlYyAxIFtleHByIHskYmluc2VwZGVidWcgPT0gIk5P In1dCisrCQkJaWYgeyRiaW5waWUgPT0gIk5PIn0geworKwkJCSAgICBzZXQgZGlzcGxhY2VtZW50 ICJOT05FIgorKwkJCX0gZWxzZWlmIHskYmlucHJlbGluayA9PSAiTk8ifSB7CisrCQkJICAgIHNl dCBkaXNwbGFjZW1lbnQgIk5PTlpFUk8iCisrCQkJfSBlbHNlIHsKKysJCQkgICAgc2V0IGRpc3Bs YWNlbWVudCAiWkVSTyIKKysJCQl9CisrCQkJdGVzdF9sZCAkZXhlYyAxIFtleHByIHskYmluc2Vw ZGVidWcgPT0gIk5PIn1dICRkaXNwbGFjZW1lbnQKKyAJCSAgICB9CisgCQl9CisgCSAgICB9Cist LS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJlbGluay5leHAJMjAxMC8wMi8xMyAxMjow MjoyOQkxLjExCisrKysgc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvcHJlbGluay5leHAJMjAx MC8wMy8xMSAyMjowNzowMwkxLjEyCitAQCAtMTEyLDE1ICsxMTIsNCBAQAorICMgUHJpbnQgdGhl ICJhZGp1c3RpbmcgZXhwZWN0YXRpb25zIiBtZXNzYWdlLgorIGdkYl90ZXN0ICJzZXQgdmVyYm9z ZSBvbiIKKyAKKy1zZXQgdGVzdCAicHJlbGluayIKKy1nbG9iYWwgZ2RiX3Byb21wdAorLWdkYl90 ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJG9iamRpci8kc3ViZGlyL3ByZWxpbmsuY29yZSIgIiR0 ZXN0IiB7CistICAgIC1yZSAid2FybmluZzogXC5keW5hbWljIHNlY3Rpb24uKm5vdCBhdCB0aGUg ZXhwZWN0ZWQgYWRkcmVzcy4qd2FybmluZzogZGlmZmVyZW5jZS4qY2F1c2VkIGJ5IHByZWxpbmss IGFkanVzdGluZyBleHBlY3RhdGlvbnMuKiRnZGJfcHJvbXB0ICQiIHsKKy0JcGFzcyAiJHRlc3Qi CistICAgIH0KKy19CistCistZ2RiX2V4aXQKKy0KKy1yZXR1cm4gMAorLQorK2dkYl90ZXN0ICJj b3JlLWZpbGUgJG9iamRpci8kc3ViZGlyL3ByZWxpbmsuY29yZSIge1VzaW5nIFBJQyBcKFBvc2l0 aW9uIEluZGVwZW5kZW50IENvZGVcKSBwcmVsaW5rIGRpc3BsYWNlbWVudC4qfSAicHJlbGluayIK KworCisKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDMvbXNnMDAwNjYu aHRtbAorMTY1NTg0NTc3ODNkNzFlMjg1NmZmMmI5Y2VhYTgzMTk5ZDJkOTgxMQorCisjIyMgc3Jj L2dkYi9DaGFuZ2VMb2cJMjAxMC8wMy8wOCAwNzo0NTo0OQkxLjExNDQyCisjIyMgc3JjL2dkYi9D aGFuZ2VMb2cJMjAxMC8wMy8wOCAwODozMjo0OQkxLjExNDQzCisjIyAtMSwzICsxLDggQEAKKysy MDEwLTAzLTA4ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Cisr CisrCSogc3ltZmlsZS5jIChhZGRyX2luZm9fbWFrZV9yZWxhdGl2ZSk6IE5ldyB2YXJpYWJsZSBz ZWN0X25hbWUsIHVzZSBpdC4KKysJRG8gbm90IHdhcm4gb24gIi5nbnUubGlibGlzdCIgYW5kICIu Z251LmNvbmZsaWN0Ii4KKysKKyAyMDEwLTAzLTA4ICBKb2VsIEJyb2JlY2tlciAgPGJyb2JlY2tl ckBhZGFjb3JlLmNvbT4KKyAKKyAJTWVtb3J5IGVycm9yIHdoZW4gcmVhZGluZyB3cm9uZyBjb3Jl IGZpbGUuCistLS0gc3JjL2dkYi9zeW1maWxlLmMJMjAxMC8wMy8wNSAxOTozMjo0NAkxLjI3NQor KysrIHNyYy9nZGIvc3ltZmlsZS5jCTIwMTAvMDMvMDggMDg6MzI6NDkJMS4yNzYKK0BAIC01OTIs NyArNTkyLDggQEAKKyAKKyAgIGZvciAoaSA9IDA7IGkgPCBhZGRycy0+bnVtX3NlY3Rpb25zICYm IGFkZHJzLT5vdGhlcltpXS5uYW1lOyBpKyspCisgICAgIHsKKy0gICAgICBhc2VjdGlvbiAqc2Vj dCA9IGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lIChhYmZkLCBhZGRycy0+b3RoZXJbaV0ubmFtZSk7 CisrICAgICAgY29uc3QgY2hhciAqc2VjdF9uYW1lID0gYWRkcnMtPm90aGVyW2ldLm5hbWU7Cisr ICAgICAgYXNlY3Rpb24gKnNlY3QgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJmZCwgc2Vj dF9uYW1lKTsKKyAKKyAgICAgICBpZiAoc2VjdCkKKyAJeworQEAgLTYwOSw4ICs2MTAsMjIgQEAK KyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIHdhcm5pbmcgKF8oInNlY3Rpb24gJXMgbm90IGZv dW5kIGluICVzIiksIGFkZHJzLT5vdGhlcltpXS5uYW1lLAorLQkJICAgYmZkX2dldF9maWxlbmFt ZSAoYWJmZCkpOworKwkgIC8qIFRoaXMgc2VjdGlvbiBkb2VzIG5vdCBleGlzdCBpbiBBQkZELCB3 aGljaCBpcyBub3JtYWxseQorKwkgICAgIHVuZXhwZWN0ZWQgYW5kIHdlIHdhbnQgdG8gaXNzdWUg YSB3YXJuaW5nLgorKworKwkgICAgIEhvd2V2ZXIsIHRoZSBFTEYgcHJlbGlua2VyIGRvZXMgY3Jl YXRlIGEgY291cGxlIG9mIHNlY3Rpb25zCisrCSAgICAgKCIuZ251LmxpYmxpc3QiIGFuZCAiLmdu dS5jb25mbGljdCIpIHdoaWNoIGFyZSBtYXJrZWQgaW4gdGhlIG1haW4KKysJICAgICBleGVjdXRh YmxlIGFzIGxvYWRhYmxlICh0aGV5IGFyZSBsb2FkZWQgaW4gbWVtb3J5IGZyb20gdGhlCisrCSAg ICAgRFlOQU1JQyBzZWdtZW50KSBhbmQgeWV0IGFyZSBub3QgcHJlc2VudCBpbiBzZXBhcmF0ZSBk ZWJ1ZyBpbmZvCisrCSAgICAgZmlsZXMuICBUaGlzIGlzIGZpbmUsIGFuZCBzaG91bGQgbm90IGNh dXNlIGEgd2FybmluZy4gIFNoYXJlZAorKwkgICAgIGxpYnJhcmllcyBjb250YWluIGp1c3QgdGhl IHNlY3Rpb24gIi5nbnUubGlibGlzdCIgYnV0IGl0IGlzIG5vdAorKwkgICAgIG1hcmtlZCBhcyBs b2FkYWJsZSB0aGVyZS4gICovCisrCisrCSAgaWYgKCEoc3RyY21wIChzZWN0X25hbWUsICIuZ251 LmxpYmxpc3QiKSA9PSAwCisrCQl8fCBzdHJjbXAgKHNlY3RfbmFtZSwgIi5nbnUuY29uZmxpY3Qi KSA9PSAwKSkKKysJICAgIHdhcm5pbmcgKF8oInNlY3Rpb24gJXMgbm90IGZvdW5kIGluICVzIiks IHNlY3RfbmFtZSwKKysJCSAgICAgYmZkX2dldF9maWxlbmFtZSAoYWJmZCkpOworKworIAkgIGFk ZHJzLT5vdGhlcltpXS5hZGRyID0gMDsKKyAKKyAJICAvKiBTRUNUSU5ERVggaXMgaW52YWxpZCBp ZiBBRERSIGlzIHplcm8uICAqLworCisKKworaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1j dnMvMjAxMC0wMy9tc2cwMDEzOC5odG1sCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxMC0wMy9tc2cwMDUzNS5odG1sCitjYzNlNzE2NTFlMmZkMDE2OGEyZDNkZDRlZmMy ZDNlMTVmZDUwOGRkCisKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEwLzAzLzE1IDAzOjQ4OjQ2 CTEuMTE0NzkKKyMjIyBzcmMvZ2RiL0NoYW5nZUxvZwkyMDEwLzAzLzE1IDA5OjMxOjMwCTEuMTE0 ODAKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTAtMDMtMTUgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJKiBzeW1maWxlLmMgKGFkZHJfaW5mb19tYWtlX3Jl bGF0aXZlKTogSWdub3JlIGFsc28gbWlzc2luZyAiLmR5bmJzcyIKKysJYW5kICIuc2R5bmJzcyIu ICBVcGRhdGUgdGhlIGNvbW1lbnQuCisrCisgMjAxMC0wMy0xNSAgSmllIFpoYW5nICA8amllQGNv ZGVzb3VyY2VyeS5jb20+CisgCisgCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBlbWFpbCBhZGRy ZXNzLgorLS0tIHNyYy9nZGIvc3ltZmlsZS5jCTIwMTAvMDMvMTAgMTg6MjA6MDcJMS4yNzcKKysr KyBzcmMvZ2RiL3N5bWZpbGUuYwkyMDEwLzAzLzE1IDA5OjMxOjM0CTEuMjc4CitAQCAtNTc2LDE2 ICs1NzYsMTkgQEAKKyAJICAvKiBUaGlzIHNlY3Rpb24gZG9lcyBub3QgZXhpc3QgaW4gQUJGRCwg d2hpY2ggaXMgbm9ybWFsbHkKKyAJICAgICB1bmV4cGVjdGVkIGFuZCB3ZSB3YW50IHRvIGlzc3Vl IGEgd2FybmluZy4KKyAKKy0JICAgICBIb3dldmVyLCB0aGUgRUxGIHByZWxpbmtlciBkb2VzIGNy ZWF0ZSBhIGNvdXBsZSBvZiBzZWN0aW9ucworLQkgICAgICgiLmdudS5saWJsaXN0IiBhbmQgIi5n bnUuY29uZmxpY3QiKSB3aGljaCBhcmUgbWFya2VkIGluIHRoZSBtYWluCistCSAgICAgZXhlY3V0 YWJsZSBhcyBsb2FkYWJsZSAodGhleSBhcmUgbG9hZGVkIGluIG1lbW9yeSBmcm9tIHRoZQorLQkg ICAgIERZTkFNSUMgc2VnbWVudCkgYW5kIHlldCBhcmUgbm90IHByZXNlbnQgaW4gc2VwYXJhdGUg ZGVidWcgaW5mbworLQkgICAgIGZpbGVzLiAgVGhpcyBpcyBmaW5lLCBhbmQgc2hvdWxkIG5vdCBj YXVzZSBhIHdhcm5pbmcuICBTaGFyZWQKKy0JICAgICBsaWJyYXJpZXMgY29udGFpbiBqdXN0IHRo ZSBzZWN0aW9uICIuZ251LmxpYmxpc3QiIGJ1dCBpdCBpcyBub3QKKy0JICAgICBtYXJrZWQgYXMg bG9hZGFibGUgdGhlcmUuICAqLworKwkgICAgIEhvd2V2ZXIsIHRoZSBFTEYgcHJlbGlua2VyIGRv ZXMgY3JlYXRlIGEgZmV3IHNlY3Rpb25zIHdoaWNoIGFyZQorKwkgICAgIG1hcmtlZCBpbiB0aGUg bWFpbiBleGVjdXRhYmxlIGFzIGxvYWRhYmxlICh0aGV5IGFyZSBsb2FkZWQgaW4KKysJICAgICBt ZW1vcnkgZnJvbSB0aGUgRFlOQU1JQyBzZWdtZW50KSBhbmQgeWV0IGFyZSBub3QgcHJlc2VudCBp bgorKwkgICAgIHNlcGFyYXRlIGRlYnVnIGluZm8gZmlsZXMuICBUaGlzIGlzIGZpbmUsIGFuZCBz aG91bGQgbm90IGNhdXNlCisrCSAgICAgYSB3YXJuaW5nLiAgU2hhcmVkIGxpYnJhcmllcyBjb250 YWluIGp1c3QgdGhlIHNlY3Rpb24KKysJICAgICAiLmdudS5saWJsaXN0IiBidXQgaXQgaXMgbm90 IG1hcmtlZCBhcyBsb2FkYWJsZSB0aGVyZS4gIFRoZXJlIGlzCisrCSAgICAgbm8gb3RoZXIgd2F5 IHRvIGlkZW50aWZ5IHRoZW0gdGhhbiBieSB0aGVpciBuYW1lIGFzIHRoZSBzZWN0aW9ucworKwkg ICAgIGNyZWF0ZWQgYnkgcHJlbGluayBoYXZlIG5vIHNwZWNpYWwgZmxhZ3MuICAqLworIAorIAkg IGlmICghKHN0cmNtcCAoc2VjdF9uYW1lLCAiLmdudS5saWJsaXN0IikgPT0gMAorLQkJfHwgc3Ry Y21wIChzZWN0X25hbWUsICIuZ251LmNvbmZsaWN0IikgPT0gMCkpCisrCQl8fCBzdHJjbXAgKHNl Y3RfbmFtZSwgIi5nbnUuY29uZmxpY3QiKSA9PSAwCisrCQl8fCBzdHJjbXAgKHNlY3RfbmFtZSwg Ii5keW5ic3MiKSA9PSAwCisrCQl8fCBzdHJjbXAgKHNlY3RfbmFtZSwgIi5zZHluYnNzIikgPT0g MCkpCisgCSAgICB3YXJuaW5nIChfKCJzZWN0aW9uICVzIG5vdCBmb3VuZCBpbiAlcyIpLCBzZWN0 X25hbWUsCisgCQkgICAgIGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpKTsKKyAKKworCisKK2h0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwNzk5Lmh0bWwKK1N1 YmplY3Q6IFtwYXRjaF0gRml4IHNlcGFyYXRlLWRlYnVnIHdpdGggbm9uLXVuaXF1ZSBzZWN0aW9u IG5hbWVzIChQUiAxMTQwOSkKKworQSBkaWZmZXJlbnQgdmVyc2lvbiB3YXMgY2hlY2tlZC1pbiBi dXQgdGhleSBhcmUgaW50ZXJjaGFuZ2VhYmxlOgorCWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDEwLTAzL21zZzAwNzk5Lmh0bWwKKwlodHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLWN2cy8yMDEwLTAzL21zZzAwMjQxLmh0bWwKKworSGksCisKK2dkYi03LjEgaXMgbm93 IGJyb2tlbiBmb3IgZXhhbXBsZSBmb3IgZGVidWdnaW5nIC91c3IvYmluL2VtYWNzIGR1ZSB0bzoK K2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTE0MDkKKyAg WzIyXSAuZGF0YSAgIFBST0dCSVRTIDAwMDAwMDAwMDA3ZmU4YTAgMWZlOGEwIDIxNTA2OCAwMCAg V0EgIDAgICAwIDMyCisgIFsyM10gLmRhdGEgICBQUk9HQklUUyAwMDAwMDAwMDAwYTEzOTIwIDQx MzkyMCA2OGM2ZTAgMDAgIFdBICAwICAgMCAzMgorCitJdCBpcyBpbiBmYWN0IGEgcmVncmVzc2lv biBhZ2FpbnN0IGdkYi03LjAgYnkgbWUgZHVlIHRvOgorCitjb21taXQgNzFkMDA2OWE5ZjIzOGEx MWY3ZjQ1NWJmNmFkMmFkZmMyNTY4MzUyMQorQXV0aG9yOiBKYW4gS3JhdG9jaHZpbCA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KK0RhdGU6ICAgVHVlIEphbiA1IDE1OjUxOjAxIDIwMTAgKzAw MDAKKworZ2RiLworICAgICAgICAqIHN5bWZpbGUuYyAoc3ltc19mcm9tX29iamZpbGUpOiBSZW1v dmUgdGhlICFNQUlOTElORSBjb25kaXRpb25hbC4KKworYXMgd2hpbGUgdGhlIGNvZGUgd2FzIGJy b2tlbiBldmVuIGJlZm9yZSB0aGUgYnJva2VuIHJlbG9jYXRpb24gd2FzIG5vdCBhcHBsaWVkCit0 byBtYWlubGluZSBiaW5hcnkgKGJlZm9yZSBQSUUrT1NYIHBhdGNoZXMgd2VudCBpbikuCisKKwor Tm8gcmVncmVzc2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYTEyLWxpbnV4 LWdudS4KKworT0sgdG8gY2hlY2staW4gYWxzbyBmb3IgZ2RiLTcuMSAoNy4xLjEpPworCisKK1Ro YW5rcywKK0phbgorCisKK2dkYi8KKzIwMTAtMDMtMjMgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KKworCSogc3ltZmlsZS5jIChhZGRyX2luZm9fbWFrZV9yZWxh dGl2ZSk6IE1vdmUgc2VjdCBkZWNsYXJhdGlvbiB0byB0aGUKKwlvdXRlciBibG9jay4gIEluaXRp YWxpemUgaXQgdG8gTlVMTC4gIFByZWZlciBTRUNULT5uZXh0IG1vcmUgdGhhbgorCWJmZF9nZXRf c2VjdGlvbl9ieV9uYW1lLgorCitnZGIvdGVzdHN1aXRlLworMjAxMC0wMy0yMyAgSmFuIEtyYXRv Y2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuYmFzZS9kdXAtc2Vj dC5leHAsIGdkYi5iYXNlL2R1cC1zZWN0LlM6IE5ldy4KKworLS0tIGEvZ2RiL3N5bWZpbGUuYwor KysrIGIvZ2RiL3N5bWZpbGUuYworQEAgLTUyOSw2ICs1MjksNyBAQCBhZGRyX2luZm9fbWFrZV9y ZWxhdGl2ZSAoc3RydWN0IHNlY3Rpb25fYWRkcl9pbmZvICphZGRycywgYmZkICphYmZkKQorICAg YXNlY3Rpb24gKmxvd2VyX3NlY3Q7CisgICBDT1JFX0FERFIgbG93ZXJfb2Zmc2V0OworICAgaW50 IGk7CisrICBhc2VjdGlvbiAqc2VjdDsKKyAKKyAgIC8qIEZpbmQgbG93ZXN0IGxvYWRhYmxlIHNl Y3Rpb24gdG8gYmUgdXNlZCBhcyBzdGFydGluZyBwb2ludCBmb3IKKyAgICAgIGNvbnRpbmd1b3Vz IHNlY3Rpb25zLiAgKi8KK0BAIC01NTMsMTEgKzU1NCwyMyBAQCBhZGRyX2luZm9fbWFrZV9yZWxh dGl2ZSAoc3RydWN0IHNlY3Rpb25fYWRkcl9pbmZvICphZGRycywgYmZkICphYmZkKQorICAgICAg KHRoZSBsb2FkYWJsZSBzZWN0aW9uIGRpcmVjdGx5IGJlbG93IGl0IGluIG1lbW9yeSkuCisgICAg ICB0aGlzX29mZnNldCA9IGxvd2VyX29mZnNldCA9IGxvd2VyX2FkZHIgLSBsb3dlcl9vcmlnX2Fk ZHIgKi8KKyAKKysgIHNlY3QgPSBOVUxMOworICAgZm9yIChpID0gMDsgaSA8IGFkZHJzLT5udW1f c2VjdGlvbnMgJiYgYWRkcnMtPm90aGVyW2ldLm5hbWU7IGkrKykKKyAgICAgeworICAgICAgIGNv bnN0IGNoYXIgKnNlY3RfbmFtZSA9IGFkZHJzLT5vdGhlcltpXS5uYW1lOworLSAgICAgIGFzZWN0 aW9uICpzZWN0ID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKGFiZmQsIHNlY3RfbmFtZSk7Cisg CisrICAgICAgLyogUHJlZmVyIHRoZSBuZXh0IHNlY3Rpb24gb2YgdGhhdCB3ZSBoYXZlIGZvdW5k IGxhc3QuICBUaGUgc2VwYXJhdGUKKysJIGRlYnVnIGluZm8gZmlsZXMgaGF2ZSBlaXRoZXIgdGhl IHNhbWUgc2VjdGlvbiBsYXlvdXQgb3IganVzdCBhIGZldworKwkgc2VjdGlvbnMgYXJlIG1pc3Np bmcgdGhlcmUuICBPbiB0aGUgb3RoZXIgaGFuZCB0aGUgc2VjdGlvbiBuYW1lIGlzIG5vdAorKwkg dW5pcXVlIGFuZCB3ZSBjb3VsZCBmaW5kIGFuIGluYXBwcm9wcmFpdGUgc2VjdGlvbiBieSBpdHMg bmFtZS4gICovCisrCisrICAgICAgaWYgKHNlY3QpCisrCXNlY3QgPSBzZWN0LT5uZXh0OworKyAg ICAgIGlmIChzZWN0ICYmIHN0cmNtcCAoc2VjdF9uYW1lLCBiZmRfZ2V0X3NlY3Rpb25fbmFtZSAo YWJmZCwgc2VjdCkpICE9IDApCisrCXNlY3QgPSBOVUxMOworKworKyAgICAgIGlmIChzZWN0ID09 IE5VTEwpCisrCXNlY3QgPSBiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoYWJmZCwgc2VjdF9uYW1l KTsKKyAgICAgICBpZiAoc2VjdCkKKyAJeworIAkgIC8qIFRoaXMgaXMgdGhlIGluZGV4IHVzZWQg YnkgQkZELiAqLworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9k dXAtc2VjdC5TCitAQCAtMCwwICsxLDIyIEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisrCisrCS5zZWN0aW9uCXNlY3QxLCAiYSIKKyt2YXIxOgkuYnl0ZQkxCisrCisr CS5zZWN0aW9uCXNlY3QyLCAiYSIKKyt2YXIyOgkuYnl0ZQkyCistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2R1cC1zZWN0LmV4cAorQEAgLTAsMCArMSw3OSBAQAor KyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysj IENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisr IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgaW5hcHByb3ByaWF0ZSBvZmZzZXRp bmcgb2YgbXVsdGlwbGUgc2VjdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lLgorKyMgV2hlbiBrZXB0 IGluIG9iamVjdCBmaWxlIChiZWZvcmUgZmluYWwgZXhlY3V0YWJsZSBsaW5rKSBpdCBzdGlsbCB3 b3Jrcy4KKysjIFdoZW4gc2VwYXJhdGUgZGVidWcgaW5mbyBmaWxlIGlzIG5vdCB1c2VkIGl0IHN0 aWxsIHdvcmtzLgorKyMgV2hlbiB0aGUgRUxGIHN5bWJvbCB0YWJsZSBpcyBrZXB0IGluIHRoZSBt YWluIGJpbmFyeSBpdCBzdGlsbCB3b3Jrcy4KKysjIFVzZWQgLlMgZmlsZSBhcyBpbiAuYyBmaWxl IHdlIHdvdWxkIG5lZWQgX19hdHRyaXV0ZV9fKChzZWN0aW9uKSkgd2hpY2ggaXMKKysjIGEgR0ND IGV4dGVuc2lvbi4KKysKKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3 aGljaCBzdXBwb3J0IEVMRiBhbmQgdXNlIGdhcy4KKysjIEZvciBub3cgcGljayBhIHNhbXBsaW5n IG9mIGxpa2VseSB0YXJnZXRzLgorK2lmIHshW2lzdGFyZ2V0ICotKi1saW51eCpdCisrICAgICYm ICFbaXN0YXJnZXQgKi0qLWdudSpdCisrICAgICYmICFbaXN0YXJnZXQgKi0qLWVsZipdCisrICAg ICYmICFbaXN0YXJnZXQgYXJtLSotZWFiaSpdCisrICAgICYmICFbaXN0YXJnZXQgcG93ZXJwYy0q LWVhYmkqXX0geworKyAgICByZXR1cm4gMAorK30KKysKKytzZXQgdGVzdGZpbGUgZHVwLXNlY3QK KytzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5TCisrc2V0IHNyY21haW5maWxlIHN0YXJ0LmMKKytz ZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQorK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRp cn0vJHtleGVjdXRhYmxlfQorKworK2lmIHtbYnVpbGRfZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS5l eHAgJGV4ZWN1dGFibGUgW2xpc3QgJHtzcmNmaWxlfSAke3NyY21haW5maWxlfV0ge31dID09IC0x fSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytzZXQgdGVzdCAicmVuYW1lIHNlY3Rpb24iCisr c2V0IG9iamNvcHlfcHJvZ3JhbSBbdHJhbnNmb3JtIG9iamNvcHldCisrc2V0IHJlc3VsdCBbY2F0 Y2ggImV4ZWMgJG9iamNvcHlfcHJvZ3JhbSAtLXJlbmFtZS1zZWN0aW9uIHNlY3QyPXNlY3QxICRi aW5maWxlIiBvdXRwdXRdCisrdmVyYm9zZSAicmVzdWx0IGlzICRyZXN1bHQiCisrdmVyYm9zZSAi b3V0cHV0IGlzICRvdXRwdXQiCisraWYgeyRyZXN1bHQgIT0gMH0geworKyAgICBmYWlsICR0ZXN0 CisrICAgIHJldHVybgorK30KKytwYXNzICR0ZXN0CisrCisrc2V0IHRlc3QgInNwbGl0IgorK2lm IHtbZ2RiX2dudV9zdHJpcF9kZWJ1ZyAkYmluZmlsZV0gIT0gMH0geworKyAgICBmYWlsICR0ZXN0 CisrfSBlbHNlIHsKKysgICAgcGFzcyAkdGVzdAorK30KKysKKysjIGdkYl9nbnVfc3RyaXBfZGVi dWcgdXNlcyBvbmx5IC0tc3RyaXAtZGVidWcgYW5kIGtlZXBzIHRoZSBFTEYgc3ltYm9sIHRhYmxl CisrIyBpbiAkYmluZmlsZS4KKytzZXQgdGVzdCAic3RyaXAiCisrc2V0IHN0cmlwX3Byb2dyYW0g W3RyYW5zZm9ybSBzdHJpcF0KKytzZXQgcmVzdWx0IFtjYXRjaCAiZXhlYyAkc3RyaXBfcHJvZ3Jh bSAkYmluZmlsZSIgb3V0cHV0XQorK3ZlcmJvc2UgInJlc3VsdCBpcyAkcmVzdWx0IgorK3ZlcmJv c2UgIm91dHB1dCBpcyAkb3V0cHV0IgorK2lmIHskcmVzdWx0ICE9IDB9IHsKKysgICAgZmFpbCAk dGVzdAorKyAgICByZXR1cm4KKyt9CisrcGFzcyAkdGVzdAorKworK2NsZWFuX3Jlc3RhcnQgJGV4 ZWN1dGFibGUKKysKKytnZGJfdGVzdCAicC9kICooY29uc3QgY2hhciAqKSAmdmFyMSIgIiA9IDEi ICJ2YXIxIGFmdGVyIHN0cmlwIgorK2dkYl90ZXN0ICJwL2QgKihjb25zdCBjaGFyICopICZ2YXIy IiAiID0gMiIgInZhcjIgYWZ0ZXIgc3RyaXAiCisKKworCitbcGF0Y2hdIEZpeCBicmVha3BvaW50 IGF0ICpfc3RhcnQKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTA0 L21zZzAwMDU5Lmh0bWwKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItY3ZzLzIwMTAtMDQv bXNnMDAwMjkuaHRtbAorCisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wNC8wNCAxMzo1NDo0 MgkxLjExNTY4CisjIyMgc3JjL2dkYi9DaGFuZ2VMb2cJMjAxMC8wNC8wNCAyMjoxMjowNAkxLjEx NTY5CisjIyAtMSw1ICsxLDEwIEBACisgMjAxMC0wNC0wNCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgorIAorKwkqIGluZmNtZC5jIChydW5fY29tbWFuZF8xKTog Q2FsbCBwcm9jZWVkIHdpdGggcmVnY2FjaGVfcmVhZF9wYyBhZGRyZXNzLgorKwkqIGNvbmZpZy9k amdwcC9mbmNoYW5nZS5sc3Q6IEFkZCB0cmFuc2xhdGlvbiBmb3IgYnJlYWstZW50cnkuZXhwLgor KworKzIwMTAtMDQtMDQgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKysKKyAJKiBicmVha3BvaW50LmMgKGJwc3RhdF9maW5kX3N0ZXBfcmVzdW1lX2JyZWFrcG9p bnQpOiBSZW1vdmUuCisgCSogYnJlYWtwb2ludC5oIChicHN0YXRfZmluZF9zdGVwX3Jlc3VtZV9i cmVha3BvaW50KTogUmVtb3ZlLgorIAorLS0tIHNyYy9nZGIvaW5mY21kLmMJMjAxMC8wMy8yNSAy MDo0ODo1MwkxLjI2MworKysrIHNyYy9nZGIvaW5mY21kLmMJMjAxMC8wNC8wNCAyMjoxMjowNAkx LjI2NAorQEAgLTU4MCw4ICs1ODAsOSBAQAorICAgICAgaGFzIGRvbmUgaXRzIHRoaW5nOyBub3cg d2UgYXJlIHNldHRpbmcgdXAgdGhlIHJ1bm5pbmcgcHJvZ3JhbS4gICovCisgICBwb3N0X2NyZWF0 ZV9pbmZlcmlvciAoJmN1cnJlbnRfdGFyZ2V0LCAwKTsKKyAKKy0gIC8qIFN0YXJ0IHRoZSB0YXJn ZXQgcnVubmluZy4gICovCistICBwcm9jZWVkICgoQ09SRV9BRERSKSAtMSwgVEFSR0VUX1NJR05B TF8wLCAwKTsKKysgIC8qIFN0YXJ0IHRoZSB0YXJnZXQgcnVubmluZy4gIERvIG5vdCB1c2UgLTEg Y29udGludWF0aW9uIGFzIGl0IHdvdWxkIHNraXAKKysgICAgIGJyZWFrcG9pbnQgcmlnaHQgYXQg dGhlIGVudHJ5IHBvaW50LiAgKi8KKysgIHByb2NlZWQgKHJlZ2NhY2hlX3JlYWRfcGMgKGdldF9j dXJyZW50X3JlZ2NhY2hlICgpKSwgVEFSR0VUX1NJR05BTF8wLCAwKTsKKyAKKyAgIC8qIFNpbmNl IHRoZXJlIHdhcyBubyBlcnJvciwgdGhlcmUncyBubyBuZWVkIHRvIGZpbmlzaCB0aGUgdGhyZWFk CisgICAgICBzdGF0ZXMgaGVyZS4gICovCistLS0gc3JjL2dkYi9jb25maWcvZGpncHAvZm5jaGFu Z2UubHN0CTIwMTAvMDIvMDEgMTk6Mjc6NTUJMS4xMDgKKysrKyBzcmMvZ2RiL2NvbmZpZy9kamdw cC9mbmNoYW5nZS5sc3QJMjAxMC8wNC8wNCAyMjoxMjowNwkxLjEwOQorQEAgLTM3MSw2ICszNzEs NyBAQAorIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3Bvd2VycGMtcHJvbG9ndWUuZXhwIEBW QC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3BwYy1wcm9sb2d1ZS5leHAKKyBAVkAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9iaXRmaWVsZHMyLmMgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYml0 ZmllbDIuYworIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWxkczIuZXhwIEBWQC9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JpdGZpZWwyLmV4cAorK0BWQC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2JyZWFrLWVudHJ5LmV4cCBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmtlbnRy eS5leHAKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlbWFrZXIyLmMgQFZAL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZTJtYWtlci5jCisgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvaGFzaGxpbmUxLmV4cCBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9oYXNoMWxpbmUuZXhw CisgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaGFzaGxpbmUyLmV4cCBAVkAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9oYXNoMmxpbmUuZXhwCisjIyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nCTIwMTAvMDQvMDIgMDU6MTM6MDcJMS4yMjE4CisjIyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nCTIwMTAvMDQvMDQgMjI6MTI6MDkJMS4yMjE5CisjIyAtMSwzICsxLDcgQEAKKysyMDEw LTA0LTA0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisr CSogZ2RiLmJhc2UvYnJlYWstZW50cnkuZXhwOiBOZXcuCisrCisgMjAxMC0wNC0wMiAgSHVpIFpo dSAgPHRlYXdhdGVyQGdtYWlsLmNvbT4KKyAgICAgICAgICAgICBNaWNoYWVsIFNueWRlciA8bXNu eWRlckB2bXdhcmUuY29tPgorIAorLS0tIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JyZWFr LWVudHJ5LmV4cAorKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JyZWFrLWVudHJ5LmV4 cAkyMDEwLTA0LTA1IDIwOjE3OjM5LjIzNDY4NDAwMCArMDAwMAorQEAgLTAsMCArMSw0MyBAQAor KyMgQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMK KysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysjIFRlc3QgaW5mZXJpb3IgY2FuIHN0 b3AgYXQgaXRzIHZlcnkgZmlyc3QgaW5zdHJ1Y3Rpb24sIHVzdWFsbHkgIl9zdGFydCIuCisrIyBE eW5hbWljIGV4ZWN1dGFibGVzIGhhdmUgZmlyc3QgaW5zdHJ1Y3Rpb24gaW4gbGQuc28uCisrCisr c2V0IHRlc3RmaWxlIGJyZWFrLWVudHJ5CisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rl c3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gc3RhcnQuYyB7YWRkaXRpb25hbF9mbGFncz0tc3RhdGlj fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytzZXQgdGVzdCAiaW5mbyBmaWxlcyIKKytz ZXQgZW50cnkgIiIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAi XHJcblxbXHQgXF0qRW50cnkgcG9pbnQ6XFtcdCBcXSooMHhcWzAtOWEtZlxdKylcclxuLiokZ2Ri X3Byb21wdCAkIiB7CisrCXNldCBlbnRyeSAkZXhwZWN0X291dCgxLHN0cmluZykKKysJcGFzcyAk dGVzdAorKyAgICB9CisrfQorK2lmIHskZW50cnkgPT0gIiJ9IHsKKysgICAgdW50ZXN0ZWQgJHt0 ZXN0ZmlsZX0uZXhwCisrICAgIHJldHVybgorK30KKysKKytpZiAhW3J1bnRvICIqJGVudHJ5Il0g eworKyAgICByZXR1cm4KKyt9CisrZ2RiX3Rlc3Qge3AveCAkcGN9ICIgPSAkZW50cnkiCisrCisr Z2RiX2JyZWFrcG9pbnQgIm1haW4iCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1haW4i ICJtYWluLioiCisKKworCitodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dp P2lkPTU5MDY0OAorUmU6IFtyZmNdIFdvcmsgYXJvdW5kIGludmFsaWQgRysrIERXQVJGIGZvciB1 bm5hbWVkIGFnZ3JlZ2F0ZXMKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDEwLTAzL21zZzAwOTA5Lmh0bWwKK2NvbW1pdCA1ZTQwYWYxOTViZDc0YTY2ZDMwMGQ4ZjQ4MWNh YjFmMmJhNTMzZjNhCisKK1sgY3V0IG9ubHkgYSBwYXJ0IG9mIGl0IF0KKworLS0tIGEvZ2RiL2Nv bXBsZXRlci5jCisrKysgYi9nZGIvY29tcGxldGVyLmMKK0BAIC00MDEsNyArNDAxLDcgQEAgYWRk X3N0cnVjdF9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgKm5leHRwLCBjaGFyICoqb3V0 cHV0LAorIAkgICAgICBjb21wdXRlZF90eXBlX25hbWUgPSAxOworIAkgICAgfQorIAkgIC8qIE9t aXQgY29uc3RydWN0b3JzIGZyb20gdGhlIGNvbXBsZXRpb24gbGlzdC4gICovCistCSAgaWYgKHR5 cGVfbmFtZSAmJiBzdHJjbXAgKHR5cGVfbmFtZSwgbmFtZSkpCisrCSAgaWYgKCF0eXBlX25hbWUg fHwgc3RyY21wICh0eXBlX25hbWUsIG5hbWUpKQorIAkgICAgeworIAkgICAgICBvdXRwdXRbKm5l eHRwXSA9IHhzdHJkdXAgKG5hbWUpOworIAkgICAgICArKypuZXh0cDsKKworCisKK2h0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NTc4MTM2CitodHRwczovL2J1Z3pp bGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTU5MzkyNgoraHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDQvbXNnMDA4MjAuaHRtbAoraHR0cDovL3NvdXJjZXdh cmUub3JnL21sL2dkYi1jdnMvMjAxMC0wNC9tc2cwMDI0MC5odG1sCisKKyMjIyBzcmMvZ2RiL0No YW5nZUxvZwkyMDEwLzA0LzIzIDE4OjA5OjE2CTEuMTE2NzgKKyMjIyBzcmMvZ2RiL0NoYW5nZUxv ZwkyMDEwLzA0LzIzIDIxOjQ0OjE5CTEuMTE2NzkKKyMjIC0xLDMgKzEsMTQgQEAKKysyMDEwLTA0 LTIzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgorKwkgICAgUGF1 bCBQbHV6aG5pa292ICA8cHBsdXpobmlrb3ZAZ29vZ2xlLmNvbT4KKysJICAgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysKKysJRml4IGRlYWRsb2NrIG9uIGxv b3BlZCBsaXN0IG9mIGxvYWRlZCBzaGFyZWQgb2JqZWN0cy4KKysJKiBzb2xpYi1zdnI0LmMgKExN X1BSRVYpOiBOZXcgZnVuY3Rpb24uCisrCShJR05PUkVfRklSU1RfTElOS19NQVBfRU5UUlkpOiBV c2UgaXQuCisrCShzdnI0X2N1cnJlbnRfc29zKTogQ2hlY2sgZm9yIGNvcnJlY3QgbF9wcmV2LiAg TmV3IHZhcmlhYmxlcyBwcmV2X2xtCisrCWFuZCBuZXh0X2xtLiAgQ2xlYXIgcHJldl9sbSBmb3Ig c29saWJfc3ZyNF9yX2xkc29tYXAuCisrCSogY29uZmlnL2RqZ3BwL2ZuY2hhbmdlLmxzdDogQWRk IHRyYW5zbGF0aW9uIGZvciBzb2xpYi1jb3JydXB0ZWQuZXhwLgorKworIDIwMTAtMDQtMjMgIERv dWcgRXZhbnMgIDxkamVAZ29vZ2xlLmNvbT4KKyAKKyAJKiBjb25maWd1cmUuYWMgKENPTkZJR19T UkNTKTogQWRkIHB5LWF1dG8tbG9hZC5vIGV2ZW4gaWYgbm90IHVzaW5nCistLS0gc3JjL2dkYi9z b2xpYi1zdnI0LmMJMjAxMC8wMy8xMSAyMjowNzowMgkxLjEzMAorKysrIHNyYy9nZGIvc29saWIt c3ZyNC5jCTIwMTAvMDQvMjMgMjE6NDQ6MTkJMS4xMzEKK0BAIC0yNzIsNiArMjcyLDE2IEBACisg fQorIAorIHN0YXRpYyBDT1JFX0FERFIKKytMTV9QUkVWIChzdHJ1Y3Qgc29fbGlzdCAqc28pCisr eworKyAgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKmxtbyA9IHN2cjRfZmV0Y2hfbGlua19tYXBf b2Zmc2V0cyAoKTsKKysgIHN0cnVjdCB0eXBlICpwdHJfdHlwZSA9IGJ1aWx0aW5fdHlwZSAodGFy Z2V0X2dkYmFyY2gpLT5idWlsdGluX2RhdGFfcHRyOworKworKyAgcmV0dXJuIGV4dHJhY3RfdHlw ZWRfYWRkcmVzcyAoc28tPmxtX2luZm8tPmxtICsgbG1vLT5sX3ByZXZfb2Zmc2V0LAorKwkJCQlw dHJfdHlwZSk7CisrfQorKworK3N0YXRpYyBDT1JFX0FERFIKKyBMTV9OQU1FIChzdHJ1Y3Qgc29f bGlzdCAqc28pCisgeworICAgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKmxtbyA9IHN2cjRfZmV0 Y2hfbGlua19tYXBfb2Zmc2V0cyAoKTsKK0BAIC0yODQsMTYgKzI5NCwxMiBAQAorIHN0YXRpYyBp bnQKKyBJR05PUkVfRklSU1RfTElOS19NQVBfRU5UUlkgKHN0cnVjdCBzb19saXN0ICpzbykKKyB7 CistICBzdHJ1Y3QgbGlua19tYXBfb2Zmc2V0cyAqbG1vID0gc3ZyNF9mZXRjaF9saW5rX21hcF9v ZmZzZXRzICgpOworLSAgc3RydWN0IHR5cGUgKnB0cl90eXBlID0gYnVpbHRpbl90eXBlICh0YXJn ZXRfZ2RiYXJjaCktPmJ1aWx0aW5fZGF0YV9wdHI7CistCisgICAvKiBBc3N1bWUgdGhhdCBldmVy eXRoaW5nIGlzIGEgbGlicmFyeSBpZiB0aGUgZHluYW1pYyBsb2FkZXIgd2FzIGxvYWRlZAorICAg ICAgbGF0ZSBieSBhIHN0YXRpYyBleGVjdXRhYmxlLiAgKi8KKyAgIGlmIChleGVjX2JmZCAmJiBi ZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSAoZXhlY19iZmQsICIuZHluYW1pYyIpID09IE5VTEwpCisg ICAgIHJldHVybiAwOworIAorLSAgcmV0dXJuIGV4dHJhY3RfdHlwZWRfYWRkcmVzcyAoc28tPmxt X2luZm8tPmxtICsgbG1vLT5sX3ByZXZfb2Zmc2V0LAorLQkJCQlwdHJfdHlwZSkgPT0gMDsKKysg IHJldHVybiBMTV9QUkVWIChzbykgPT0gMDsKKyB9CisgCisgLyogUGVyIHBzcGFjZSBTVlI0IHNw ZWNpZmljIGRhdGEuICAqLworQEAgLTExMDEsNyArMTEwNyw3IEBACisgc3RhdGljIHN0cnVjdCBz b19saXN0ICoKKyBzdnI0X2N1cnJlbnRfc29zICh2b2lkKQorIHsKKy0gIENPUkVfQUREUiBsbTsK KysgIENPUkVfQUREUiBsbSwgcHJldl9sbTsKKyAgIHN0cnVjdCBzb19saXN0ICpoZWFkID0gMDsK KyAgIHN0cnVjdCBzb19saXN0ICoqbGlua19wdHIgPSAmaGVhZDsKKyAgIENPUkVfQUREUiBsZHNv bWFwID0gMDsKK0BAIC0xMTIwLDYgKzExMjYsNyBAQAorIAorICAgLyogV2FsayB0aGUgaW5mZXJp b3IncyBsaW5rIG1hcCBsaXN0LCBhbmQgYnVpbGQgb3VyIGxpc3Qgb2YKKyAgICAgIGBzdHJ1Y3Qg c29fbGlzdCcgbm9kZXMuICAqLworKyAgcHJldl9sbSA9IDA7CisgICBsbSA9IHNvbGliX3N2cjRf cl9tYXAgKGluZm8pOworIAorICAgd2hpbGUgKGxtKQorQEAgLTExMjcsNiArMTEzNCw3IEBACisg ICAgICAgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKmxtbyA9IHN2cjRfZmV0Y2hfbGlua19tYXBf b2Zmc2V0cyAoKTsKKyAgICAgICBzdHJ1Y3Qgc29fbGlzdCAqbmV3ID0gWFpBTExPQyAoc3RydWN0 IHNvX2xpc3QpOworICAgICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW4gPSBtYWtlX2NsZWFu dXAgKHhmcmVlLCBuZXcpOworKyAgICAgIENPUkVfQUREUiBuZXh0X2xtOworIAorICAgICAgIG5l dy0+bG1faW5mbyA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IGxtX2luZm8pKTsKKyAgICAgICBt YWtlX2NsZWFudXAgKHhmcmVlLCBuZXctPmxtX2luZm8pOworQEAgLTExMzgsMTQgKzExNDYsMjEg QEAKKyAKKyAgICAgICByZWFkX21lbW9yeSAobG0sIG5ldy0+bG1faW5mby0+bG0sIGxtby0+bGlu a19tYXBfc2l6ZSk7CisgCistICAgICAgbG0gPSBMTV9ORVhUIChuZXcpOworKyAgICAgIG5leHRf bG0gPSBMTV9ORVhUIChuZXcpOworKworKyAgICAgIGlmIChMTV9QUkVWIChuZXcpICE9IHByZXZf bG0pCisrCXsKKysJICB3YXJuaW5nIChfKCJDb3JydXB0ZWQgc2hhcmVkIGxpYnJhcnkgbGlzdCIp KTsKKysJICBmcmVlX3NvIChuZXcpOworKwkgIG5leHRfbG0gPSAwOworKwl9CisgCisgICAgICAg LyogRm9yIFNWUjQgdmVyc2lvbnMsIHRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgbGluayBtYXAgaXMg Zm9yIHRoZQorICAgICAgICAgIGluZmVyaW9yIGV4ZWN1dGFibGUsIHNvIHdlIG11c3QgaWdub3Jl IGl0LiAgRm9yIHNvbWUgdmVyc2lvbnMgb2YKKyAgICAgICAgICBTVlI0LCBpdCBoYXMgbm8gbmFt ZS4gIEZvciBvdGhlcnMgKFNvbGFyaXMgMi4zIGZvciBleGFtcGxlKSwgaXQKKyAgICAgICAgICBk b2VzIGhhdmUgYSBuYW1lLCBzbyB3ZSBjYW4gbm8gbG9uZ2VyIHVzZSBhIG1pc3NpbmcgbmFtZSB0 bworICAgICAgICAgIGRlY2lkZSB3aGVuIHRvIGlnbm9yZSBpdC4gKi8KKy0gICAgICBpZiAoSUdO T1JFX0ZJUlNUX0xJTktfTUFQX0VOVFJZIChuZXcpICYmIGxkc29tYXAgPT0gMCkKKysgICAgICBl bHNlIGlmIChJR05PUkVfRklSU1RfTElOS19NQVBfRU5UUlkgKG5ldykgJiYgbGRzb21hcCA9PSAw KQorIAl7CisgCSAgaW5mby0+bWFpbl9sbV9hZGRyID0gbmV3LT5sbV9pbmZvLT5sbV9hZGRyOwor IAkgIGZyZWVfc28gKG5ldyk7CitAQCAtMTE4MiwxMiArMTE5NywxOCBAQAorIAkgICAgfQorIAl9 CisgCisrICAgICAgcHJldl9sbSA9IGxtOworKyAgICAgIGxtID0gbmV4dF9sbTsKKysKKyAgICAg ICAvKiBPbiBTb2xhcmlzLCB0aGUgZHluYW1pYyBsaW5rZXIgaXMgbm90IGluIHRoZSBub3JtYWwg bGlzdCBvZgorIAkgc2hhcmVkIG9iamVjdHMsIHNvIG1ha2Ugc3VyZSB3ZSBwaWNrIGl0IHVwIHRv by4gIEhhdmluZworIAkgc3ltYm9sIGluZm9ybWF0aW9uIGZvciB0aGUgZHluYW1pYyBsaW5rZXIg aXMgcXVpdGUgY3J1Y2lhbAorIAkgZm9yIHNraXBwaW5nIGR5bmFtaWMgbGlua2VyIHJlc29sdmVy IGNvZGUuICAqLworICAgICAgIGlmIChsbSA9PSAwICYmIGxkc29tYXAgPT0gMCkKKy0JbG0gPSBs ZHNvbWFwID0gc29saWJfc3ZyNF9yX2xkc29tYXAgKGluZm8pOworKwl7CisrCSAgbG0gPSBsZHNv bWFwID0gc29saWJfc3ZyNF9yX2xkc29tYXAgKGluZm8pOworKwkgIHByZXZfbG0gPSAwOworKwl9 CisgCisgICAgICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NoYWluKTsKKyAgICAgfQorLS0tIHNy Yy9nZGIvY29uZmlnL2RqZ3BwL2ZuY2hhbmdlLmxzdAkyMDEwLzA0LzA5IDE1OjE1OjA1CTEuMTEy CisrKysgc3JjL2dkYi9jb25maWcvZGpncHAvZm5jaGFuZ2UubHN0CTIwMTAvMDQvMjMgMjE6NDQ6 MTkJMS4xMTMKK0BAIC0zOTcsNiArMzk3LDcgQEAKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9zaWdpbmZvLW9iai5jIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NpLW9iai5jCisgQFZA L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2lnaW5mby1hZGRyLmV4cCBAVkAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9zaS1hZGRyLmV4cAorIEBWQC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NpZ2lu Zm8tb2JqLmV4cCBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zaS1vYmouZXhwCisrQFZAL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItY29ycnVwdGVkLmV4cCBAVkAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9zby1jcnB0ZC5leHAKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xp Yi1kaXNjLmMgQFZAL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc28tZGlzYy5jCisgQFZAL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItZGlzcGxheS1saWIuYyBAVkAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9zby1kaXNwbGliLmMKKyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1k aXNwbGF5LW1haW4uYyBAVkAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zby1kaXNwbWFpbi5jCisj IyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDQvMjMgMTg6MDM6MzEJMS4yMjUy CisjIyMgc3JjL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCTIwMTAvMDQvMjMgMjE6NDQ6MjAJMS4y MjUzCisjIyAtMSwzICsxLDggQEAKKysyMDEwLTA0LTIzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisrCUZpeCBkZWFkbG9jayBvbiBsb29wZWQgbGlzdCBv ZiBsb2FkZWQgc2hhcmVkIG9iamVjdHMuCisrCSogZ2RiLmJhc2Uvc29saWItY29ycnVwdGVkLmV4 cDogTmV3LgorKworIDIwMTAtMDQtMjMgIERvdWcgRXZhbnMgIDxkamVAZ29vZ2xlLmNvbT4KKyAK KyAJKiBnZGIucHl0aG9uL3B5LXNlY3Rpb24tc2NyaXB0LmM6IE5ldyBmaWxlLgorLS0tIHNyYy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLWNvcnJ1cHRlZC5leHAKKysrKyBzcmMvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1jb3JydXB0ZWQuZXhwCTIwMTAtMDUtMjQgMTg6MDA6NTIu MDU3OTk1MDAwICswMDAwCitAQCAtMCwwICsxLDQ2IEBACisrIyBDb3B5cmlnaHQgMjAxMCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrCisrc2V0IHRlc3RmaWxlICJzb2xpYi1jb3JydXB0ZWQiCisrc2V0IHNyY2ZpbGUgc3Rh cnQuYworKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVz dGZpbGV9ICR7c3JjZmlsZX1dIH0geworKyAgICB1bnRlc3RlZCAke3Rlc3RmaWxlfS5leHAKKysg ICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICBmYWlsICJDYW4n dCBydW4gdG8gbWFpbiIKKysgICAgcmV0dXJuCisrfQorKworK2dkYl90ZXN0ICJpbmZvIHNoYXJl ZGxpYnJhcnkiICIiICJub3JtYWwgbGlzdCIKKysKKysjIEdEQiBjaGVja3MgdGhlcmUgZm9yIG1h dGNoaW5nIExfUFJFVi4KKytzZXQgdGVzdCAibWFrZSBzb2xpYnMgbG9vcGluZyIKKytnZGJfdGVz dF9tdWx0aXBsZSAicC94IF9yX2RlYnVnLT5yX21hcC0+bF9uZXh0ID0gX3JfZGVidWctPnJfbWFw IiAkdGVzdCB7CisrICAgIC1yZSAiKE5vIHN5bWJvbCBcIl9yX2RlYnVnXCIgaW4gY3VycmVudCBj b250ZXh0XFwufEF0dGVtcHQgdG8gZXh0cmFjdCBhIGNvbXBvbmVudCBvZiBhIHZhbHVlIHRoYXQg aXMgbm90IGEgc3RydWN0dXJlIHBvaW50ZXJcXC4pXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJIyBn bGliYyBkZWJ1ZyBpbmZvIGlzIG5vdCBhdmFpbGFibGUgYW5kIGl0IGlzIHRvbyBkaWZmaWN1bHQg dG8gZmluZCBhbmQKKysJIyBwYXJzZSBpdCBmcm9tIHRoaXMgdGVzdGNhc2Ugd2l0aG91dCB0aGUg Z2RiIHN1cHBvcnRpbmcgZnVuY3Rpb25zLgorKwl2ZXJib3NlIC1sb2cgIm5vIF9yX2RlYnVnIHN5 bWJvbCBoYXMgYmVlbiBmb3VuZCIKKysJeGZhaWwgJHRlc3QKKysJdW50ZXN0ZWQgJHt0ZXN0Zmls ZX0uZXhwCisrCXJldHVybgorKyAgICB9CisrICAgIC1yZSAiID0gMHhcWzAtOWEtZlxdK1xyXG4k Z2RiX3Byb21wdCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQorK30KKytnZGJfdGVzdCAiaW5m byBzaGFyZWRsaWJyYXJ5IiAid2FybmluZzogQ29ycnVwdGVkIHNoYXJlZCBsaWJyYXJ5IGxpc3Rc clxuLioiICJjb3JydXB0ZWQgbGlzdCIKKworCisKK1JlOiBbcGF0Y2hdIEZpeCBjcmFzaCBvbiAv cHJvYy9QSUQvc3RhdCByYWNlCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMv MjAxMC0wNS9tc2cwMDY4NS5odG1sCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8y MDEwLTA1L21zZzAwMjQ0Lmh0bWwKKworIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDUvMjgg MTg6MDA6NDEJMS4xMTg1NQorIyMjIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMTAvMDUvMjggMTg6MjM6 MTMJMS4xMTg1NgorIyMgLTEsNSArMSwxMCBAQAorIDIwMTAtMDUtMjggIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKyAKKysJKiBsaW51eC1uYXQuYyAobGludXhf bmF0X2NvcmVfb2ZfdGhyZWFkXzEpOiBGaXggY3Jhc2ggb24gaW52YWxpZAorKwlDT05URU5ULgor KworKzIwMTAtMDUtMjggIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KKysKKyAJKiBsaW51eC1uYXQuYyAobGludXhfbmF0X3dhaXRfMSk6IERvIG5vdCBjYWxsCisg CWxpbnV4X25hdF9jb3JlX29mX3RocmVhZF8xIG9uIFRBUkdFVF9XQUlUS0lORF9FWElURUQgb3IK KyAJVEFSR0VUX1dBSVRLSU5EX1NJR05BTExFRC4KKy0tLSBzcmMvZ2RiL2xpbnV4LW5hdC5jCTIw MTAvMDUvMjggMTg6MDA6NDYJMS4xNjkKKysrKyBzcmMvZ2RiL2xpbnV4LW5hdC5jCTIwMTAvMDUv MjggMTg6MjM6MTUJMS4xNzAKK0BAIC01NTA5LDE1ICs1NTA5LDIxIEBACisgICBtYWtlX2NsZWFu dXAgKHhmcmVlLCBjb250ZW50KTsKKyAKKyAgIHAgPSBzdHJjaHIgKGNvbnRlbnQsICcoJyk7Cist ICBwID0gc3RyY2hyIChwLCAnKScpICsgMjsgLyogc2tpcCAiKSIgYW5kIGEgd2hpdGVzcGFjZS4g Ki8KKysKKysgIC8qIFNraXAgIikiLiAgKi8KKysgIGlmIChwICE9IE5VTEwpCisrICAgIHAgPSBz dHJjaHIgKHAsICcpJyk7CisrICBpZiAocCAhPSBOVUxMKQorKyAgICBwKys7CisgCisgICAvKiBJ ZiB0aGUgZmlyc3QgZmllbGQgYWZ0ZXIgcHJvZ3JhbSBuYW1lIGhhcyBpbmRleCAwLCB0aGVuIGNv cmUgbnVtYmVyIGlzCisgICAgICB0aGUgZmllbGQgd2l0aCBpbmRleCAzNi4gIFRoZXJlJ3Mgbm8g Y29uc3RhbnQgZm9yIHRoYXQgYW55d2hlcmUuICAqLworLSAgcCA9IHN0cnRva19yIChwLCAiICIs ICZ0cyk7CistICBmb3IgKGkgPSAwOyBpICE9IDM2OyArK2kpCisrICBpZiAocCAhPSBOVUxMKQor KyAgICBwID0gc3RydG9rX3IgKHAsICIgIiwgJnRzKTsKKysgIGZvciAoaSA9IDA7IHAgIT0gTlVM TCAmJiBpICE9IDM2OyArK2kpCisgICAgIHAgPSBzdHJ0b2tfciAoTlVMTCwgIiAiLCAmdHMpOwor IAorLSAgaWYgKHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisrICBpZiAocCA9PSBOVUxM IHx8IHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisgICAgIGNvcmUgPSAtMTsKKyAKKyAg IGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyMjIyBzcmMvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cJ MjAxMC8wNS8yNiAyMjo0MDoyMgkxLjM4NgorIyMjIHNyYy9nZGIvZ2Ric2VydmVyL0NoYW5nZUxv ZwkyMDEwLzA1LzI4IDE4OjIzOjE1CTEuMzg3CisjIyAtMSwzICsxLDggQEAKKysyMDEwLTA1LTI4 ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCisrCSogbGlu dXgtbG93LmMgKGxpbnV4X2NvcmVfb2ZfdGhyZWFkKTogRml4IGNyYXNoIG9uIGludmFsaWQgQ09O VEVOVC4KKysJTmV3IGNvbW1lbnQuCisrCisgMjAxMC0wNS0yNiAgT3prYW4gU2V6ZXIgIDxzZXpl cm96QGdtYWlsLmNvbT4KKyAKKyAJKiBnZGJyZXBsYXkuYyAocmVtb3RlX29wZW4pOiBDaGVjayBl cnJvciByZXR1cm4gZnJvbSBzb2NrZXQoKSBjYWxsIGJ5CistLS0gc3JjL2dkYi9nZGJzZXJ2ZXIv bGludXgtbG93LmMJMjAxMC8wNS8wMyAwNDowMjoyMAkxLjE0OAorKysrIHNyYy9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCTIwMTAvMDUvMjggMTg6MjM6MTUJMS4xNDkKK0BAIC00MzQ2LDEzICs0 MzQ2LDIxIEBACisgICAgIH0KKyAKKyAgIHAgPSBzdHJjaHIgKGNvbnRlbnQsICcoJyk7CistICBw ID0gc3RyY2hyIChwLCAnKScpICsgMjsgLyogc2tpcCAiKSIgYW5kIGEgd2hpdGVzcGFjZS4gKi8K KyAKKy0gIHAgPSBzdHJ0b2tfciAocCwgIiAiLCAmdHMpOworLSAgZm9yIChpID0gMDsgaSAhPSAz NjsgKytpKQorKyAgLyogU2tpcCAiKSIuICAqLworKyAgaWYgKHAgIT0gTlVMTCkKKysgICAgcCA9 IHN0cmNociAocCwgJyknKTsKKysgIGlmIChwICE9IE5VTEwpCisrICAgIHArKzsKKysKKysgIC8q IElmIHRoZSBmaXJzdCBmaWVsZCBhZnRlciBwcm9ncmFtIG5hbWUgaGFzIGluZGV4IDAsIHRoZW4g Y29yZSBudW1iZXIgaXMKKysgICAgIHRoZSBmaWVsZCB3aXRoIGluZGV4IDM2LiAgVGhlcmUncyBu byBjb25zdGFudCBmb3IgdGhhdCBhbnl3aGVyZS4gICovCisrICBpZiAocCAhPSBOVUxMKQorKyAg ICBwID0gc3RydG9rX3IgKHAsICIgIiwgJnRzKTsKKysgIGZvciAoaSA9IDA7IHAgIT0gTlVMTCAm JiBpICE9IDM2OyArK2kpCisgICAgIHAgPSBzdHJ0b2tfciAoTlVMTCwgIiAiLCAmdHMpOworIAor LSAgaWYgKHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisrICBpZiAocCA9PSBOVUxMIHx8 IHNzY2FuZiAocCwgIiVkIiwgJmNvcmUpID09IDApCisgICAgIGNvcmUgPSAtMTsKKyAKKyAgIGZy ZWUgKGNvbnRlbnQpOworCisKKworUmU6IFtwYXRjaF0gdGVzdHN1aXRlOiB3YXRjaHRocmVhZHMt cmVvcmRlcjogTGludXgga2VybmVsIGNvbXBhdC4KK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDEwLTA1L21zZzAwNjk2Lmh0bWwKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9t bC9nZGItY3ZzLzIwMTAtMDUvbXNnMDAyNTUuaHRtbAorCisjIyMgc3JjL2dkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nCTIwMTAvMDUvMjggMjM6NDc6NDAJMS4yMjkzCisjIyMgc3JjL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nCTIwMTAvMDUvMzEgMDM6MzE6MTYJMS4yMjk0CisjIyAtMSwzICsxLDExIEBA CisrMjAxMC0wNS0zMSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgorKworKwlBY2NlcHQgdGhlIG5ldyBMaW51eCBrZXJuZWwgInQgKHRyYWNpbmcgc3RvcCkiIHN0 cmluZy4KKysJKiBnZGIudGhyZWFkcy93YXRjaHRocmVhZHMtcmVvcmRlci5jICh0aHJlYWQxX2Z1 bmMsIHRocmVhZDJfZnVuYyk6CisrCVVwZGF0ZSBjb21tZW50LgorKwkoc3RhdGVfd2FpdCkgPFQg KHRyYWNpbmcgc3RvcCk+OiBOZXcuCisrCShtYWluKTogVXBkYXRlIHRoZSBzdGF0ZV93YWl0IGV4 cGVjdCBzdHJpbmcuCisrCisgMjAxMC0wNS0yOCAgUGVkcm8gQWx2ZXMgIDxwZWRyb0Bjb2Rlc291 cmNlcnkuY29tPgorIAorIAkqIGxpbWl0cy5jLCBsaW1pdHMuZXhwOiBEZWxldGUgZmlsZXMuCist LS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2h0aHJlYWRzLXJlb3JkZXIuYwky MDEwLzAxLzIwIDIxOjA5OjMwCTEuMworKysrIHNyYy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRz L3dhdGNodGhyZWFkcy1yZW9yZGVyLmMJMjAxMC8wNS8zMSAwMzozMToxNwkxLjQKK0BAIC05OSw3 ICs5OSw3IEBACisgCisgICByd2F0Y2hfc3RvcmUgPSB0aHJlYWQxX3J3YXRjaDsKKyAKKy0gIC8q IEJlIHN1cmUgdGhlICJUICh0cmFjaW5nIHN0b3ApIiB0ZXN0IGNhbiBwcm9jZWVkIGZvciBib3Ro IHRocmVhZHMuICAqLworKyAgLyogQmUgc3VyZSB0aGUgInQgKHRyYWNpbmcgc3RvcCkiIHRlc3Qg Y2FuIHByb2NlZWQgZm9yIGJvdGggdGhyZWFkcy4gICovCisgICB0aW1lZF9tdXRleF9sb2NrICgm dGVybWluYXRlX211dGV4KTsKKyAgIGkgPSBwdGhyZWFkX211dGV4X3VubG9jayAoJnRlcm1pbmF0 ZV9tdXRleCk7CisgICBhc3NlcnQgKGkgPT0gMCk7CitAQCAtMTI1LDcgKzEyNSw3IEBACisgCisg ICByd2F0Y2hfc3RvcmUgPSB0aHJlYWQyX3J3YXRjaDsKKyAKKy0gIC8qIEJlIHN1cmUgdGhlICJU ICh0cmFjaW5nIHN0b3ApIiB0ZXN0IGNhbiBwcm9jZWVkIGZvciBib3RoIHRocmVhZHMuICAqLwor KyAgLyogQmUgc3VyZSB0aGUgInQgKHRyYWNpbmcgc3RvcCkiIHRlc3QgY2FuIHByb2NlZWQgZm9y IGJvdGggdGhyZWFkcy4gICovCisgICB0aW1lZF9tdXRleF9sb2NrICgmdGVybWluYXRlX211dGV4 KTsKKyAgIGkgPSBwdGhyZWFkX211dGV4X3VubG9jayAoJnRlcm1pbmF0ZV9tdXRleCk7CisgICBh c3NlcnQgKGkgPT0gMCk7CitAQCAtMjExLDYgKzIxMSwxMyBAQAorICAgZG8KKyAgICAgeworICAg ICAgIHN0YXRlID0gcHJvY19zdHJpbmcgKGZpbGVuYW1lLCAiU3RhdGU6XHQiKTsKKysKKysgICAg ICAvKiB0b3J2YWxkcy9saW51eC0yLjYuZ2l0IDQ2NDc2M2NmMWM2ZGY2MzJkY2NjOGYyZjRjN2U1 MDE2MzE1NGEyYzAKKysJIGhhcyBjaGFuZ2VkICJUICh0cmFjaW5nIHN0b3ApIiB0byAidCAodHJh Y2luZyBzdG9wKSIuICBNYWtlIHRoZSBHREIKKysJIHRlc3RjYXNlIGJhY2t3YXJkIGNvbXBhdGli bGUgd2l0aCBvbGRlciBMaW51eCBrZXJuZWxzLiAgKi8KKysgICAgICBpZiAoc3RyY21wIChzdGF0 ZSwgIlQgKHRyYWNpbmcgc3RvcCkiKSA9PSAwKQorKwlzdGF0ZSA9ICJ0ICh0cmFjaW5nIHN0b3Ap IjsKKysKKyAgICAgICBpZiAoc3RyY21wIChzdGF0ZSwgd2FudGVkKSA9PSAwKQorIAl7CisgCSAg ZnJlZSAoZmlsZW5hbWUpOworQEAgLTMzNiw5ICszNDMsOSBAQAorICAgICB7CisgICAgICAgLyog czM5MHgtdW5rbm93bi1saW51eC1nbnUgd2lsbCBmYWlsIHdpdGggIlIgKHJ1bm5pbmcpIi4gICov CisgCistICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMV90aWQsICJUICh0cmFjaW5nIHN0b3ApIik7 CisrICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMV90aWQsICJ0ICh0cmFjaW5nIHN0b3ApIik7Cisg CistICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMl90aWQsICJUICh0cmFjaW5nIHN0b3ApIik7Cisr ICAgICAgc3RhdGVfd2FpdCAodGhyZWFkMl90aWQsICJ0ICh0cmFjaW5nIHN0b3ApIik7CisgICAg IH0KKyAKKyAgIGNsZWFudXAgKCk7CgpkaWZmIC0tZ2l0IGEvZ2RiLXVzaW5nLWRpcmVjdGl2ZS1s ZWFrLnBhdGNoIGIvZ2RiLXVzaW5nLWRpcmVjdGl2ZS1sZWFrLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxZmFhOTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdXNp bmctZGlyZWN0aXZlLWxlYWsucGF0Y2gKQEAgLTAsMCArMSwyMTQgQEAKK0ZTRiBHREIgdmFyaWFu dCBpcyBhdDoKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAzL21z ZzAwNzg5Lmh0bWwKKworY29tbWl0IDU2YjQ1ZjQ5NGY2NDczNjBmOWQ2ZmY4NGYxMmY1OWMwOGNi ZTA1YWYKK0F1dGhvcjogU2FtaSBXYWdpYWFsbGEgPHN3YWdpYWFsQHJlZGhhdC5jb20+CitEYXRl OiAgIE1vbiBNYXIgMjkgMTY6MDg6NTggMjAxMCAtMDQwMAorCisgICAgRml4IHVzaW5nX2RpcmVj dGl2ZSBtZW1vcnkgbGVhay4KKworZGlmZiAtLWdpdCBhL2dkYi9idWlsZHN5bS5jIGIvZ2RiL2J1 aWxkc3ltLmMKK2luZGV4IGZmMmM5YjEuLjM1ZTQ2NjMgMTAwNjQ0CistLS0gYS9nZGIvYnVpbGRz eW0uYworKysrIGIvZ2RiL2J1aWxkc3ltLmMKK0BAIC0zODcsNiArMzg3LDcgQEAgZmluaXNoX2Js b2NrIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBwZW5kaW5nICoqbGlzdGhlYWQsCisg ICAgIH0KKyAKKyAgIGJsb2NrX3NldF91c2luZyAoYmxvY2ssIHVzaW5nX2RpcmVjdGl2ZXMsICZv YmpmaWxlLT5vYmpmaWxlX29ic3RhY2spOworKyAgdXNpbmdfZGlyZWN0aXZlcyA9IE5VTEw7Cisg CisgICByZWNvcmRfcGVuZGluZ19ibG9jayAob2JqZmlsZSwgYmxvY2ssIG9wYmxvY2spOworIAor ZGlmZiAtLWdpdCBhL2dkYi9jcC1uYW1lc3BhY2UuYyBiL2dkYi9jcC1uYW1lc3BhY2UuYworaW5k ZXggNjMyNWVhZC4uYzZkZjkxZiAxMDA2NDQKKy0tLSBhL2dkYi9jcC1uYW1lc3BhY2UuYworKysr IGIvZ2RiL2NwLW5hbWVzcGFjZS5jCitAQCAtMTIwLDcgKzEyMCw4IEBAIGNwX3NjYW5fZm9yX2Fu b255bW91c19uYW1lc3BhY2VzIChjb25zdCBzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wpCisgCQkgYW5v bnltb3VzIG5hbWVzcGFjZS4gIFNvIGFkZCBzeW1ib2xzIGluIGl0IHRvIHRoZQorIAkJIG5hbWVz cGFjZSBnaXZlbiBieSB0aGUgcHJldmlvdXMgY29tcG9uZW50IGlmIHRoZXJlIGlzCisgCQkgb25l LCBvciB0byB0aGUgZ2xvYmFsIG5hbWVzcGFjZSBpZiB0aGVyZSBpc24ndC4gICovCistCSAgICAg IGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGRlc3QsIHNyYywgTlVMTCwgIiIsIDApOworKwkgICAg ICBjcF9hZGRfdXNpbmdfZGlyZWN0aXZlIChkZXN0LCBzcmMsIE5VTEwsICIiLCAwLAorKwkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmU1lNQk9MX1NZTVRBQiAoc3ltYm9sKS0+b2JqZmls ZS0+b2JqZmlsZV9vYnN0YWNrKTsKKyAJICAgIH0KKyAJICAvKiBUaGUgIisgMiIgaXMgZm9yIHRo ZSAiOjoiLiAgKi8KKyAJICBwcmV2aW91c19jb21wb25lbnQgPSBuZXh0X2NvbXBvbmVudCArIDI7 CitAQCAtMTMyLDExICsxMzMsMTcgQEAgY3Bfc2Nhbl9mb3JfYW5vbnltb3VzX25hbWVzcGFjZXMg KGNvbnN0IHN0cnVjdCBzeW1ib2wgKnN5bWJvbCkKKyB9CisgCisgLyogQWRkIGEgdXNpbmcgZGly ZWN0aXZlIHRvIHVzaW5nX2xpc3QuIElmIHRoZSB1c2luZyBkaXJlY3RpdmUgaW4gcXVlc3Rpb24K Ky0gICBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkLCBkb24ndCBhZGQgaXQgdHdpY2UuICAqLworKyAg IGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQsIGRvbid0IGFkZCBpdCB0d2ljZS4KKysgICBDcmVhdGUg YSBuZXcgc3RydWN0IHVzaW5nX2RpcmVjdCB3aGljaCBpbXBvcnRzIHRoZSBuYW1lc3BhY2UgU1JD IGludG8gdGhlCisrICAgc2NvcGUgREVTVC4gIEFMSUFTIGlzIHRoZSBuYW1lIG9mIHRoZSBpbXBv cnRlZCBuYW1lc3BhY2UgaW4gdGhlIGN1cnJlbnQKKysgICBzY29wZS4gIElmIEFMSUFTIGlzIE5V TEwgdGhlbiB0aGUgbmFtZXNwYWNlIGlzIGtub3duIGJ5IGl0cyBvcmlnaW5hbCBuYW1lLgorKyAg IFRoZSBhcmd1bWVudHMgYXJlIGNvcGllZCBpbnRvIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgc28g dGhleSBjYW4gYmUKKysgICB0ZW1wb3Jhcmllcy4gICovCisgCisgdm9pZAorIGNwX2FkZF91c2lu Z19kaXJlY3RpdmUgKGNvbnN0IGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgY29uc3QgY2hh ciAqYWxpYXMsCistCQkJY29uc3QgY2hhciAqZGVjbGFyYXRpb24sIGNvbnN0IGludCBsaW5lX251 bWJlcikKKysJCQljb25zdCBjaGFyICpkZWNsYXJhdGlvbiwgY29uc3QgaW50IGxpbmVfbnVtYmVy LAorKwkJCXN0cnVjdCBvYnN0YWNrICpvYnN0YWNrKQorIHsKKyAgIHN0cnVjdCB1c2luZ19kaXJl Y3QgKmN1cnJlbnQ7CisgICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpuZXc7CitAQCAtMTQ2LDEyICsx NTMsMjYgQEAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAoY29uc3QgY2hhciAqZGVzdCwgY29uc3Qg Y2hhciAqc3JjLCBjb25zdCBjaGFyICphbGlhcywKKyAgIGZvciAoY3VycmVudCA9IHVzaW5nX2Rp cmVjdGl2ZXM7IGN1cnJlbnQgIT0gTlVMTDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHQpCisgICAg IHsKKyAgICAgICBpZiAoc3RyY21wIChjdXJyZW50LT5pbXBvcnRfc3JjLCBzcmMpID09IDAKKy0g ICAgICAgICAgJiYgc3RyY21wIChjdXJyZW50LT5pbXBvcnRfZGVzdCwgZGVzdCkgPT0gMCkKKysJ ICAmJiBzdHJjbXAgKGN1cnJlbnQtPmltcG9ydF9kZXN0LCBkZXN0KSA9PSAwCisrCSAgJiYgKChh bGlhcyA9PSBOVUxMICYmIGN1cnJlbnQtPmFsaWFzID09IE5VTEwpCisrCSAgICAgIHx8IChhbGlh cyAhPSBOVUxMICYmIGN1cnJlbnQtPmFsaWFzICE9IE5VTEwKKysJCSAgJiYgc3RyY21wIChhbGlh cywgY3VycmVudC0+YWxpYXMpID09IDApKSkKKyAJcmV0dXJuOworICAgICB9CisgCistICB1c2lu Z19kaXJlY3RpdmVzID0gY3BfYWRkX3VzaW5nIChkZXN0LCBzcmMsIGFsaWFzLCBkZWNsYXJhdGlv biwKKy0JCQkJICAgbGluZV9udW1iZXIsIHVzaW5nX2RpcmVjdGl2ZXMpOworKyAgbmV3ID0gT0JT VEFDS19aQUxMT0MgKG9ic3RhY2ssIHN0cnVjdCB1c2luZ19kaXJlY3QpOworKworKyAgbmV3LT5p bXBvcnRfc3JjID0gb2JzYXZlc3RyaW5nIChzcmMsIHN0cmxlbiAoc3JjKSwgb2JzdGFjayk7Cisr ICBuZXctPmltcG9ydF9kZXN0ID0gb2JzYXZlc3RyaW5nIChkZXN0LCBzdHJsZW4gKGRlc3QpLCBv YnN0YWNrKTsKKysKKysgIGlmIChhbGlhcyAhPSBOVUxMKQorKyAgICBuZXctPmFsaWFzID0gb2Jz YXZlc3RyaW5nIChhbGlhcywgc3RybGVuIChhbGlhcyksIG9ic3RhY2spOworKworKyAgbmV3LT5k ZWNsYXJhdGlvbiA9IG9ic2F2ZXN0cmluZyAoZGVjbGFyYXRpb24sIHN0cmxlbiAoZGVjbGFyYXRp b24pLCBvYnN0YWNrKTsKKysgIG5ldy0+bGluZV9udW1iZXIgPSBsaW5lX251bWJlcjsKKysKKysg IG5ldy0+bmV4dCA9IHVzaW5nX2RpcmVjdGl2ZXM7CisrICB1c2luZ19kaXJlY3RpdmVzID0gbmV3 OworIAorIH0KKyAKK0BAIC0yMDMsNDIgKzIyNCw2IEBAIGNwX2lzX2Fub255bW91cyAoY29uc3Qg Y2hhciAqbmFtZXNwYWNlKQorIAkgICE9IE5VTEwpOworIH0KKyAKKy0vKiBDcmVhdGUgYSBuZXcg c3RydWN0IHVzaW5nIGRpcmVjdCB3aGljaCBpbXBvcnRzIHRoZSBuYW1lc3BhY2UgU1JDCistICAg aW50byB0aGUgc2NvcGUgREVTVC4gIEFMSUFTIGlzIHRoZSBuYW1lIG9mIHRoZSBpbXBvcnRlZCBu YW1lc3BhY2UKKy0gICBpbiB0aGUgY3VycmVudCBzY29wZS4gIElmIEFMSUFTIGlzIE5VTEwgdGhl biB0aGUKKy0gICBuYW1lc3BhY2UgaXMga25vd24gYnkgaXRzIG9yaWdpbmFsIG5hbWUuCistCist ICAgU2V0IGl0cyBuZXh0IG1lbWJlciBpbiB0aGUgbGlua2VkIGxpc3QgdG8gTkVYVDsgYWxsb2Nh dGUgYWxsIG1lbW9yeQorLSAgIHVzaW5nIHhtYWxsb2MuICBJdCBjb3BpZXMgdGhlIHN0cmluZ3Ms IHNvIE5BTUUgY2FuIGJlIGEgdGVtcG9yYXJ5CistICAgc3RyaW5nLiAgKi8KKy0KKy1zdHJ1Y3Qg dXNpbmdfZGlyZWN0ICoKKy1jcF9hZGRfdXNpbmcgKGNvbnN0IGNoYXIgKmRlc3QsCistICAgICAg ICAgICAgICBjb25zdCBjaGFyICpzcmMsCistICAgICAgICAgICAgICBjb25zdCBjaGFyICphbGlh cywKKy0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRlY2xhcmF0aW9uLAorLSAgICAgICAgICAg ICAgY29uc3QgaW50IGxpbmVfbnVtYmVyLAorLQkgICAgICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpu ZXh0KQorLXsKKy0gIHN0cnVjdCB1c2luZ19kaXJlY3QgKnJldHZhbDsKKy0KKy0gIHJldHZhbCA9 IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHVzaW5nX2RpcmVjdCkpOworLSAgcmV0dmFsLT5pbXBv cnRfc3JjID0gc2F2ZXN0cmluZyAoc3JjLCBzdHJsZW4gKHNyYykpOworLSAgcmV0dmFsLT5pbXBv cnRfZGVzdCA9IHNhdmVzdHJpbmcgKGRlc3QsIHN0cmxlbiAoZGVzdCkpOworLQorLSAgaWYgKGFs aWFzICE9IE5VTEwpCistICAgIHJldHZhbC0+YWxpYXMgPSBzYXZlc3RyaW5nIChhbGlhcywgc3Ry bGVuIChhbGlhcykpOworLSAgZWxzZQorLSAgICByZXR2YWwtPmFsaWFzID0gTlVMTDsKKy0KKy0g IHJldHZhbC0+ZGVjbGFyYXRpb24gPSBzYXZlc3RyaW5nIChkZWNsYXJhdGlvbiwgc3RybGVuIChk ZWNsYXJhdGlvbikpOworLSAgcmV0dmFsLT5saW5lX251bWJlciA9IGxpbmVfbnVtYmVyOworLSAg cmV0dmFsLT5uZXh0ID0gbmV4dDsKKy0gIHJldHZhbC0+c2VhcmNoZWQgPSAwOworLQorLSAgcmV0 dXJuIHJldHZhbDsKKy19CistCisgLyogVGhlIEMrKy1zcGVjaWZpYyB2ZXJzaW9uIG9mIG5hbWUg bG9va3VwIGZvciBzdGF0aWMgYW5kIGdsb2JhbAorICAgIG5hbWVzLiAgVGhpcyBtYWtlcyBzdXJl IHRoYXQgbmFtZXMgZ2V0IGxvb2tlZCBmb3IgaW4gYWxsIG5hbWVzcGFjZXMKKyAgICB0aGF0IGFy ZSBpbiBzY29wZS4gIE5BTUUgaXMgdGhlIG5hdHVyYWwgbmFtZSBvZiB0aGUgc3ltYm9sIHRoYXQK K2RpZmYgLS1naXQgYS9nZGIvY3Atc3VwcG9ydC5oIGIvZ2RiL2NwLXN1cHBvcnQuaAoraW5kZXgg NTdhYTVlNS4uNDFmMTdmZSAxMDA2NDQKKy0tLSBhL2dkYi9jcC1zdXBwb3J0LmgKKysrKyBiL2dk Yi9jcC1zdXBwb3J0LmgKK0BAIC0xMDEsMTQgKzEwMSw4IEBAIGV4dGVybiB2b2lkIGNwX2FkZF91 c2luZ19kaXJlY3RpdmUgKGNvbnN0IGNoYXIgKmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmFsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmRlY2xhcmF0aW9uLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCBsaW5lX251bWJlcik7CistCistZXh0ZXJuIHN0 cnVjdCB1c2luZ19kaXJlY3QgKmNwX2FkZF91c2luZyAoY29uc3QgY2hhciAqZGVzdCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYWxp YXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqZGVjbGFyYXRpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgaW50IGxpbmVfbnVtYmVyLAorLQkJCQkJICBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICpu ZXh0KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgbGlu ZV9udW1iZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG9i c3RhY2sgKm9ic3RhY2spOworIAorIGV4dGVybiB2b2lkIGNwX2luaXRpYWxpemVfbmFtZXNwYWNl ICh2b2lkKTsKKyAKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJl YWQuYworaW5kZXggZTNhNzgwZS4uYjczZjQ0NCAxMDA2NDQKKy0tLSBhL2dkYi9kd2FyZjJyZWFk LmMKKysrKyBiL2dkYi9kd2FyZjJyZWFkLmMKK0BAIC0zNTYzLDEyICszNTYzLDEyIEBAIHJlYWRf aW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorICAgICB9CisgICB9CisgICAKKy0gIHVzaW5nX2RpcmVjdGl2ZXMgPSBjcF9hZGRfdXNp bmcgKGltcG9ydF9wcmVmaXgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj YW5vbmljYWxfbmFtZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9y dF9hbGlhcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydGVkX2Rl Y2xhcmF0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1i ZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2luZ19kaXJlY3RpdmVz KTsKKysgIGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKGltcG9ydF9wcmVmaXgsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICBjYW5vbmljYWxfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgIGltcG9ydF9hbGlhcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydGVkX2Rl Y2xhcmF0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjayk7Cisg fQorIAorIHN0YXRpYyB2b2lkCitAQCAtNTcwMyw3ICs1NzAzLDEyIEBAIHJlYWRfbmFtZXNwYWNl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICAgICAgaWYg KGlzX2Fub255bW91cykKKyAJeworIAkgIGNvbnN0IGNoYXIgKnByZXZpb3VzX3ByZWZpeCA9IGRl dGVybWluZV9wcmVmaXggKGRpZSwgY3UpOworLQkgIGNwX2FkZF91c2luZ19kaXJlY3RpdmUgKHBy ZXZpb3VzX3ByZWZpeCwgVFlQRV9OQU1FICh0eXBlKSwgTlVMTCwgIiIsIGR3YXJmMl9yZWFkX2Rl Y2xfbGluZShkaWUsIGN1KSk7CisrCSAgY3BfYWRkX3VzaW5nX2RpcmVjdGl2ZSAocHJldmlvdXNf cHJlZml4LAorKwkgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfTkFNRSAodHlwZSksCisr CSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysJICAgICAgICAgICAgICAgICAgICAg ICAgICAiIiwKKysJICAgICAgICAgICAgICAgICAgICAgICAgICBkd2FyZjJfcmVhZF9kZWNsX2xp bmUoZGllLCBjdSksCisrCSAgICAgICAgICAgICAgICAgICAgICAgICAgJm9iamZpbGUtPm9iamZp bGVfb2JzdGFjayk7CisgCX0KKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL2dkYjIzODQtYmFzZS5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjIzODQtYmFz ZS5jYworaW5kZXggMDllZDA0ZS4uYjU4ZjMwZCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL2dkYjIzODQtYmFzZS5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiMjM4 NC1iYXNlLmNjCitAQCAtMjMsNiArMjMsOCBAQCBiYXNlOjpiYXNlIChpbnQgX3gpCisgeworIH0K KyAKKyt1c2luZyBuYW1lc3BhY2UgQjsKKysKKyBpbnQKKyBiYXNlOjptZXRoICgpCisgeworZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2dkYjIzODQtYmFzZS5oIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvZ2RiMjM4NC1iYXNlLmgKK2luZGV4IGIwOTcwMWUuLjk4MTk0M2MgMTAwNjQ0 CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGIyMzg0LWJhc2UuaAorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvZ2RiMjM4NC1iYXNlLmgKK0BAIC0xNiw2ICsxNiwxMCBAQAorICAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorICAgICovCisgCisrbmFtZXNwYWNlIEJ7CisrICBpbnQgeDsKKyt9CisrCisg Y2xhc3MgYmFzZQorIHsKKyAgcHVibGljOgoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNw ZWMKaW5kZXggZWY4ZTkzYi4uOTVjM2U2MSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2Ri LnNwZWMKQEAgLTMyLDE3ICszMiwxOCBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9 CiAjIFNldCB2ZXJzaW9uIHRvIGNvbnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0 aGUgRlNGIGdkYiB2ZXJzaW9ucyBhcmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNl cywgbGlrZSA2LjMKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRhdGUgZm9yIGRh aWx5IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25hcHNob3QgZnJv bSBtYWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVhc2UgYnJhbmNo KS4KLVZlcnNpb246IDcuMC41MC4yMDEwMDIwMworVmVyc2lvbjogNy4xCiAKICMgVGhlIHJlbGVh c2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0 IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBy cG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMTUl ez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXtkaXN0fQorUmVsZWFzZTogMjglez9fd2l0aF91 cHN0cmVhbToudXBzdHJlYW19JXtkaXN0fQogCi1MaWNlbnNlOiBHUEx2MysKK0xpY2Vuc2U6IEdQ THYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0 aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBHRkRMIGFuZCBCU0QgYW5kIFB1 YmxpYyBEb21haW4KIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKKyMgRG8gbm90IHByb3Zp ZGUgVVJMIGZvciBzbmFwc2hvdHMgYXMgdGhlIGZpbGUgbGFzdHMgdGhlcmUgb25seSBmb3IgMiBk YXlzLgogIyBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIvZ2RiL3NuYXBzaG90cy9icmFuY2gvZ2Ri LSV7dmVyc2lvbn0udGFyLmJ6MgogIyBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIvZ2RiL3JlbGVh c2VzL2dkYi0le3ZlcnNpb259LnRhci5iejIKLVNvdXJjZTogZnRwOi8vc291cmNld2FyZS5vcmcv cHViL2dkYi9zbmFwc2hvdHMvYnJhbmNoL2dkYi0le3ZlcnNpb259LnRhci5iejIKK1NvdXJjZTog ZnRwOi8vc291cmNld2FyZS5vcmcvcHViL2dkYi9yZWxlYXNlcy9nZGItJXt2ZXJzaW9ufS50YXIu YnoyCiBCdWlsZHJvb3Q6ICUobWt0ZW1wIC11ZCAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lv bn0tJXtyZWxlYXNlfS1YWFhYWFgpCiBVUkw6IGh0dHA6Ly9nbnUub3JnL3NvZnR3YXJlL2dkYi8K IApAQCAtMTE4LDcgKzExOSw2IEBAIFBhdGNoMTE4OiBnZGItNi4zLWdzdGFjay0yMDA1MDQxMS5w YXRjaAogCiAjIFZTWVNDQUxMIGFuZCBQSUUKIFBhdGNoMTIyOiBnZGItNi4zLXRlc3QtcGllLTIw MDUwMTA3LnBhdGNoCi1QYXRjaDEyNDogZ2RiLWFyY2hlci1waWUtMDMxNS1icmVha3BvaW50X2Fk ZHJlc3NfbWF0Y2gucGF0Y2gKIFBhdGNoMzg5OiBnZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gK IFBhdGNoMzk0OiBnZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNhYmxlZC5wYXRjaAogCkBA IC0xODMsMTAgKzE4Myw2IEBAIFBhdGNoMTcwOiBnZGItNi4zLWJ0LXBhc3QtemVyby0yMDA1MTIw MS5wYXRjaAogIyBVc2UgYmlnZ2VyIG51bWJlcnMgdGhhbiBpbnQuCiBQYXRjaDE3NjogZ2RiLTYu My1sYXJnZS1jb3JlLTIwMDUxMjA2LnBhdGNoCiAKLSMgSGFyZC1jb2RlIGV4ZWN1dGFibGUgbmFt ZXMgaW4gZ3N0YWNrLCBzdWNoIHRoYXQgaXQgY2FuIHJ1biB3aXRoIGEKLSMgY29ycnVwdGVkIG9y IG1pc3NpbmcgUEFUSC4KLVBhdGNoMTc3OiBnZGItNi4zLWdzdGFjay13aXRob3V0LXBhdGgtMjAw NjA0MTQucGF0Y2gKLQogIyBGaXggZGVidWdpbmZvIGFkZHJlc3NlcyByZXNvbHZpbmcgZm9yIC0t ZW1pdC1yZWxvY3MgTGludXgga2VybmVscyAoQlogMjAzNjYxKS4KIFBhdGNoMTg4OiBnZGItNi41 LWJ6MjAzNjYxLWVtaXQtcmVsb2NzLnBhdGNoCiAKQEAgLTIyNCw4ICsyMjAsNyBAQCBQYXRjaDIx MzogZ2RiLTYuNS1yZWFkbGluZS1sb25nLWxpbmUtY3Jhc2gtdGVzdC5wYXRjaAogIyBGaXggYm9n dXMgMHgwIHVud2luZCBvZiB0aGUgdGhyZWFkJ3MgdG9wbW9zdCBmdW5jdGlvbiBjbG9uZSgzKSAo QlogMjE2NzExKS4KIFBhdGNoMjE0OiBnZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9z dC5wYXRjaAogCi0jIFRyeSB0byByZWR1Y2Ugc2lkZWVmZmVjdHMgb2Ygc2tpcHBpbmcgcHBjIC5z byBsaWJzIHRyYW1wb2xpbmVzIChCWiAyMTgzNzkpLgotUGF0Y2gyMTU6IGdkYi02LjUtYnoyMTgz NzktcHBjLXNvbGliLXRyYW1wb2xpbmUtZml4LnBhdGNoCisjIFRlc3Qgc2lkZWVmZmVjdHMgb2Yg c2tpcHBpbmcgcHBjIC5zbyBsaWJzIHRyYW1wb2xpbmVzIChCWiAyMTgzNzkpLgogUGF0Y2gyMTY6 IGdkYi02LjUtYnoyMTgzNzktcHBjLXNvbGliLXRyYW1wb2xpbmUtdGVzdC5wYXRjaAogCiAjIEZp eCBsb2NrdXAgb24gdHJhbXBvbGluZSB2cy4gaXRzIGZ1bmN0aW9uIGxvb2t1cDsgdW5yZXByb2R1 Y2libGUgKEJaIDIxODM3OSkuCkBAIC0yNDEsNyArMjM2LDcgQEAgUGF0Y2gyMjk6IGdkYi02LjMt YnoxNDA1MzItcHBjLXVud2luZGluZy10ZXN0LnBhdGNoCiBQYXRjaDIzMTogZ2RiLTYuMy1iejIw MjY4OS1leGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgQmFja3BvcnRlZCBmaXh1cHMg cG9zdCB0aGUgc291cmNlIHRhcmJhbGwuCi0jUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAor UGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAogCiAjIFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2 L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkgKEJaIDIzMDAwMCkuCiBQYXRjaDIzNDogZ2Ri LTYuNi1iejIzMDAwMC1wb3dlcjYtZGlzYXNzZW1ibHktdGVzdC5wYXRjaApAQCAtMzQ0LDEzICsz MzksNiBAQCBQYXRjaDMyNDogZ2RiLTYuOC1nbGliYy1oZWFkZXJzLWNvbXBhdC5wYXRjaAogIyBD cmVhdGUgYSBzaW5nbGUgYmluYXJ5IGBnZGInIGF1dG9kZXRlY3RpbmcgLS10dWkgYnkgaXRzIGFy Z3ZbMF0uCiBQYXRjaDMyNjogZ2RiLTYuOC10dWktc2luZ2xlYmluYXJ5LnBhdGNoCiAKLSMgU3Vw cG9ydCB0cmFuc3BhcmVudCBkZWJ1Z2dpbmcgb2YgaW5saW5lZCBmdW5jdGlvbnMgZm9yIGFuIG9w dGltaXplZCBjb2RlLgotIyBEaXNhYmxlIGJyZWFrLWJ5LW5hbWUgb24gaW5saW5lZCBmdW5jdGlv bnMgZHVlIHRvIGEgcmVncmVzc2lvbiBvbiBwYXJhbWV0ZXJzCi0jIG9mIGlubGluZWQgZnVuY3Rp b25zIGZhbHNlbHkgPG9wdGltaXplZCBvdXQ+IChCWiA1NTY5NzUgQ29tbWVudCA4KS4KLSMgRGlz YWJsZSBhZGRvbiAoZmluaXNoKSBkdWUgdG8gaW5saW5lLWNtZHMuZXhwOiB1cCBmcm9tIG91dGVy X2lubGluZTIgYXNzZXJ0LgotUGF0Y2gzNTA6IGdkYi02LjgtaW5saW5pbmctYWRkb24ucGF0Y2gK LVBhdGNoMzI4OiBnZGItNi44LWlubGluaW5nLWJ5LW5hbWUucGF0Y2gKLQogIyBGaXggUFJQU0lO Rk8gaW4gdGhlIGNvcmUgZmlsZXMgZHVtcGVkIGJ5IGdjb3JlIChCWiAyNTQyMjkpLgogUGF0Y2gz Mjk6IGdkYi02LjgtYnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2gKIApAQCAtMzc0LDYgKzM2 Miw3IEBAIFBhdGNoMzQ4OiBnZGItNi44LWJ6NDY2OTAxLWJhY2t0cmFjZS1mdWxsLXByZWxpbmtl ZC5wYXRjaAogCiAjIFRoZSBtZXJnZWQgYnJhbmNoIGBhcmNoZXInIG9mOiBodHRwOi8vc291cmNl d2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogUGF0Y2gzNDk6IGdkYi1hcmNoZXIucGF0 Y2gKK1BhdGNoNDIwOiBnZGItYXJjaGVyLWFkYS5wYXRjaAogCiAjIEZpeCBwYXJzaW5nIGVsZjY0 LWkzODYgZmlsZXMgZm9yIGtkdW1wIFBBRSB2bWNvcmUgZHVtcHMgKEJaIDQ1NzE4NykuCiAjIC0g VHVybiBvbiA2NC1iaXQgQkZEIHN1cHBvcnQsIGdsb2JhbGx5IGVuYWJsZSBBQ19TWVNfTEFSR0VG SUxFLgpAQCAtMzg1LDkgKzM3NCw2IEBAIFBhdGNoMzgxOiBnZGItc2ltdWx0YW5lb3VzLXN0ZXAt cmVzdW1lLWJyZWFrcG9pbnQtdGVzdC5wYXRjaAogIyBGaXggR05VL0xpbnV4IGNvcmUgb3Blbjog Q2FuJ3QgcmVhZCBwYXRobmFtZSBmb3IgbG9hZCBtYXA6IElucHV0L291dHB1dCBlcnJvci4KIFBh dGNoMzgyOiBnZGItY29yZS1vcGVuLXZkc28td2FybmluZy5wYXRjaAogCi0jIEZpeCBjYWxsYmFj ay1tb2RlIHJlYWRsaW5lLTYuMCByZWdyZXNzaW9uIGZvciBDVFJMLUMuCi1QYXRjaDM5MDogZ2Ri LXJlYWRsaW5lLTYuMC1zaWduYWwucGF0Y2gKLQogIyBGaXggc3lzY2FsbCByZXN0YXJ0cyBmb3Ig YW1kNjQtPmkzODYgYmlhcmNoLgogUGF0Y2gzOTE6IGdkYi14ODZfNjQtaTM4Ni1zeXNjYWxsLXJl c3RhcnQucGF0Y2gKIApAQCAtNDA0LDkgKzM5MCw2IEBAIFBhdGNoMzM1OiBnZGItcmhlbDUtY29t cGF0LnBhdGNoCiAjIEZpeCByZWdyZXNzaW9uIGJ5IHB5dGhvbiBvbiBpYTY0IGR1ZSB0byBzdGFs ZSBjdXJyZW50IGZyYW1lLgogUGF0Y2gzOTc6IGdkYi1mb2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50 LnBhdGNoCiAKLSMgRml4IHJlbGF0ZWRfYnJlYWtwb2ludCBzdGFsZSByZWYgY3Jhc2guCi1QYXRj aDQwMDogZ2RiLXN0YWxlLXJlbGF0ZWRfYnJlYWtwb2ludC5wYXRjaAotCiAjIFdvcmthcm91bmQg Y2NhY2hlIG1ha2luZyBsaW5lbm8gbm9uLXplcm8gZm9yIGNvbW1hbmQtbGluZSBkZWZpbml0aW9u cy4KIFBhdGNoNDAzOiBnZGItY2NhY2hlLXdvcmthcm91bmQucGF0Y2gKIApAQCAtNDI5LDYgKzQx MiwxMjEgQEAgUGF0Y2g0MTI6IGdkYi11bnVzZWQtcmV2ZXJ0LnBhdGNoCiAjIEZpeCBpMzg2K3g4 Nl82NCByd2F0Y2grYXdhdGNoIGJlZm9yZSBydW4sIHJlZ3Jlc3Npb24gYWdhaW5zdCA2LjggKEJa IDU0MTg2NikuCiBQYXRjaDQxNzogZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNo CiAKKyMgUmVtb3ZlIGZhbHNlIGdkYl9hc3NlcnQgb24gJHNwIHVuZGVyZmxvdy4KK1BhdGNoNDIy OiBnZGItaW5mY2FsbC1zcC11bmRlcmZsb3cucGF0Y2gKKworIyBGaXggZG91YmxlLWZyZWUgb24g c3RkOjp0ZXJtaW5hdGUgaGFuZGxlciAoVG9tIFRyb21leSwgQlogNTYyOTc1KS4KK1BhdGNoNDI5 OiBnZGItYno1NjI5NzUtc3RkLXRlcm1pbmF0ZS1kb3VibGUtZnJlZS5wYXRjaAorCisjIFBJRTog Rml4IGJhY2sgcmUtcmV1bi4KK1BhdGNoNDMwOiBnZGItcGllLXJlcnVuLnBhdGNoCisKKyMgRG8g bm90IGNvbnNpZGVyIG1lbW9yeSBlcnJvciBvbiByZWFkaW5nIF9yX2RlYnVnLT5yX21hcCBhcyBm YXRhbCAoQlogNTc2NzQyKS4KK1BhdGNoNDMyOiBnZGItc29saWItbWVtb3J5LWVycm9yLW5vbmZh dGFsLnBhdGNoCisKKyMgdGVzdHN1aXRlOiBGaXggdW5zdGFibGUgcmVzdWx0cyBvZiBnZGIuYmFz ZS9wcmVsaW5rLmV4cC4KK1BhdGNoNDMzOiBnZGItNi43LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0 cy1wcmVsaW5rLnBhdGNoIAorCisjIFtwYXRjaCAxLzZdIFBJRTogQXR0YWNoIGJpbmFyeSBldmVu IGFmdGVyIHJlLXByZWxpbmtlZCB1bmRlcm5lYXRoCisjIFtwYXRjaCAyLzZdIFBJRTogQXR0YWNo IGJpbmFyeSBldmVuIGFmdGVyIGxkLnNvIHJlLXByZWxpbmtlZCB1bmRlcm5lYXRoCisjIFtwYXRj aCAzLzZdIFBJRTogRml4IG9jY2FzaW9uYWwgZXJyb3IgYXR0YWNoaW5nIGk2ODYgYmluYXJ5CitQ YXRjaDQzNDogZ2RiLXBpZS0xb2Y2LXJlcHJlbGlua2VkLWJpbi5wYXRjaAorUGF0Y2g0MzU6IGdk Yi1waWUtMm9mNi1yZXByZWxpbmtlZC1sZC5wYXRjaAorUGF0Y2g0MzY6IGdkYi1waWUtM29mNi1y ZWxvY2F0ZS1vbmNlLnBhdGNoCisKKyMgW2V4cHItY3VtdWxhdGl2ZV0gdXNpbmctZGlyZWN0aXZl OiBGaXggbWVtb3J5IGxlYWsgKFNhbWkgV2FnaWFhbGxhKS4KK1BhdGNoNDM3OiBnZGItdXNpbmct ZGlyZWN0aXZlLWxlYWsucGF0Y2gKKworIyBGaXggZGFuZ2xpbmcgZGlzcGxheXMgaW4gc2VwYXJh dGUgZGVidWdpbmZvIChCWiA1NzQ0ODMpLgorUGF0Y2g0Mzg6IGdkYi1iejU3NDQ4My1kaXNwbGF5 LXNlcGRlYnVnLnBhdGNoCisKKyMgU3VwcG9ydCBBVlggcmVnaXN0ZXJzIChCWiA1NzgyNTApLgor UGF0Y2g0Mzk6IGdkYi1iejU3ODI1MC1hdngtMDFvZjEwLnBhdGNoCitQYXRjaDQ0MDogZ2RiLWJ6 NTc4MjUwLWF2eC0wMm9mMTAucGF0Y2gKK1BhdGNoNDQxOiBnZGItYno1NzgyNTAtYXZ4LTAzb2Yx MC5wYXRjaAorUGF0Y2g0NDI6IGdkYi1iejU3ODI1MC1hdngtMDRvZjEwLnBhdGNoCitQYXRjaDQ0 MzogZ2RiLWJ6NTc4MjUwLWF2eC0wNW9mMTAucGF0Y2gKK1BhdGNoNDQ0OiBnZGItYno1NzgyNTAt YXZ4LTA2b2YxMC5wYXRjaAorUGF0Y2g0NDU6IGdkYi1iejU3ODI1MC1hdngtMDdvZjEwLnBhdGNo CitQYXRjaDQ0NjogZ2RiLWJ6NTc4MjUwLWF2eC0wOG9mMTAucGF0Y2gKK1BhdGNoNDQ3OiBnZGIt Yno1NzgyNTAtYXZ4LTA5b2YxMC5wYXRjaAorUGF0Y2g0NDg6IGdkYi1iejU3ODI1MC1hdngtMTBv ZjEwLnBhdGNoCitQYXRjaDQ0OTogZ2RiLWJ6NTc4MjUwLWF2eC0xMG9mMTAtcHBjLnBhdGNoCisK KyMgRml4IGNyYXNoIG9uIEMrKyB0eXBlcyBpbiBzb21lIGRlYnVnIGluZm8gZmlsZXMgKEJaIDU3 NTI5MiwgS2VpdGggU2VpdHopLgorIyBUZW1wb3JhcmlseSB3b3JrYXJvdW5kIHRoZSBjcmFzaCBv ZiBCWiA1NzUyOTIgYXMgdGhlcmUgd2FzIG5vdyBCWiA1ODU0NDUuCisjIFJlLWVuYWJsZSB0aGUg QlogNTc1MjkyIGFuZCBCWiA1ODU0NDUgQysrIGZpeCB1c2luZyBhbiB1cGRhdGVkIHBhdGNoLgor UGF0Y2g0NTE6IGdkYi1iejU3NTI5Mi1kZWxheWVkLXBoeXNuYW1lLnBhdGNoCitQYXRjaDQ1NTog Z2RiLWJ6NTc1MjkyLXZvaWQtd29ya2Fyb3VuZC5wYXRjaAorCisjIFByZXR0eSBwcmludGVycyBu b3Qgd2VsbCBkb2N1bWVudGVkIChCWiA1NzA2MzUsIFRvbSBUcm9tZXksIEphbiBLcmF0b2Nodmls KS4KK1BhdGNoNDUyOiBnZGItYno1NzA2MzUtcHJldHR5cHJpbnQtZG9jMS5wYXRjaAorUGF0Y2g0 NTM6IGdkYi1iejU3MDYzNS1wcmV0dHlwcmludC1kb2MyLnBhdGNoCisKKyMgRml4IGNyYXNoIHdo ZW4gdXNpbmcgR05VIElGVU5DIGNhbGwgZnJvbSBicmVha3BvaW50IGNvbmRpdGlvbi4KK1BhdGNo NDU0OiBnZGItYno1Mzk1OTAtZ251LWlmdW5jLWZpeC1jb25kLnBhdGNoCisKKyMgRmFpbCBncmFj ZWZ1bGx5IGlmIHRoZSBfVW53aW5kX0RlYnVnSG9vayBhcmcuIGlzIG9wdGltaXplZCBvdXQgKFRv bSBUcm9tZXkpLgorIyBNYWtlIF9VbndpbmRfRGVidWdIb29rIGluZGVwZW5kZW50IGZyb20gc3Rl cC1yZXN1bWUgYnJlYWtwb2ludCAoVG9tIFRyb21leSkuCitQYXRjaDQ1NjogZ2RiLXVud2luZC1k ZWJ1Z2hvb2stc2FmZS1mYWlsLnBhdGNoCitQYXRjaDQ1NzogZ2RiLXVud2luZC1kZWJ1Z2hvb2st c3RlcC1pbmRlcGVuZGVudC5wYXRjaAorCisjIHRlc3RzdWl0ZTogRml4IGdkYi5iYXNlL3ZsYS1v dmVyZmxvdy5leHAgRkFJTGluZyBvbiBzMzkweCAoQlogNTkwNjM1KS4KK1BhdGNoNDU4OiBnZGIt YXJjaGVyLXZsYS10ZXN0LW9vbS5wYXRjaAorCisjIFdvcmthcm91bmQgbm9uLXN0b3AgbW9yaWJ1 bmQgbG9jYXRpb25zIGV4cGxvaXRlZCBieSBrZXJuZWwgdXRyYWNlIChCWiA1OTA2MjMpLgorUGF0 Y2g0NTk6IGdkYi1tb3JpYnVuZC11dHJhY2Utd29ya2Fyb3VuZC5wYXRjaAorCisjIEZpeCBjcmFz aCBvbiBWTEEgYm91bmQgcmVmZXJlbmNpbmcgYW4gb3B0aW1pemVkLW91dCB2YXJpYWJsZSAoQlog NTkxODc5KS4KK1BhdGNoNDYwOiBnZGItYXJjaGVyLXZsYS1yZWYtb3B0aW1pemVkb3V0LnBhdGNo CisKKyMgUmVtb3ZlIGNvcmUgZmlsZSB3aGVuIHN0YXJ0aW5nIGEgcHJvY2VzcyAoQlogNTk0NTYw KS4KK1BhdGNoNDYxOiBnZGItYno1OTQ1NjAtY29yZS12cy1wcm9jZXNzLnBhdGNoCisKKyMgSW1w b3J0IGZpeCBvZiBUVUkgbGF5b3V0IGludGVybmFsIGVycm9yIChCWiA1OTU0NzUpLgorUGF0Y2g0 NjI6IGdkYi1iejU5NTQ3NS10dWktbGF5b3V0LnBhdGNoCisKKyMgRml4IGFuZCBzdXBwb3J0IERX X09QXypwaWVjZSAoVG9tIFRyb21leSwgQlogNTg5NDY3KS4KK1BhdGNoNDYzOiBnZGItYno1ODk0 NjctcGllY2VzMDFvZjQucGF0Y2gKK1BhdGNoNDY0OiBnZGItYno1ODk0NjctcGllY2VzMDJvZjQu cGF0Y2gKK1BhdGNoNDY1OiBnZGItYno1ODk0NjctcGllY2VzMDNvZjQucGF0Y2gKK1BhdGNoNDY2 OiBnZGItYno1ODk0NjctcGllY2VzMW9mNC5wYXRjaAorUGF0Y2g0Njc6IGdkYi1iejU4OTQ2Ny1w aWVjZXMyb2Y0LnBhdGNoCitQYXRjaDQ2ODogZ2RiLWJ6NTg5NDY3LXBpZWNlczNvZjQucGF0Y2gK K1BhdGNoNDY5OiBnZGItYno1ODk0NjctcGllY2VzNG9mNC5wYXRjaAorUGF0Y2g0NzE6IGdkYi1i ejU4OTQ2Ny1waWVjZXMtdmxhLWNvbXBhdC5wYXRjaAorCisjIEZpeCBmb2xsb3ctZXhlYyBmb3Ig QysrIHByb2dyYW1zIChidWdyZXBvcnRlZCBieSBNYXJ0aW4gU3RyYW5za3kpLgorUGF0Y2g0NzA6 IGdkYi1hcmNoZXItbmV4dC1vdmVyLXRocm93LWN4eC1leGVjLnBhdGNoCisKKyMgRml4IEFETCBh bm9ueW1vdXMgdHlwZSBjcmFzaCAoQlogNjAwNzQ2LCBTYW1pIFdhZ2lhYWxsYSkuCitQYXRjaDQ3 MjogZ2RiLWJ6NjAwNzQ2LWtvZW5pZy1jcmFzaC5wYXRjaAorCisjIEJhY2twb3J0IERXQVJGLTQg c3VwcG9ydCAoQlogNjAxODg3LCBUb20gVHJvbWV5KS4KK1BhdGNoNDczOiBnZGItYno2MDE4ODct ZHdhcmY0LTFvZjIucGF0Y2gKK1BhdGNoNDc0OiBnZGItYno2MDE4ODctZHdhcmY0LTJvZjIucGF0 Y2gKK1BhdGNoNDc1OiBnZGItYno2MDE4ODctZHdhcmY0LXJoLXRlc3QucGF0Y2gKKworIyBGaXgg b2JzdGFjayBjb3JydXB0aW9ucyBvbiBDKysgKEJaIDYwNjE4NSwgQ2hyaXMgTW9sbGVyLCBKYW4g S3JhdG9jaHZpbCkuCitQYXRjaDQ3NjogZ2RiLWJ6NjA2MTg1LW9ic3RhY2stMW9mNS5wYXRjaAor UGF0Y2g0Nzc6IGdkYi1iejYwNjE4NS1vYnN0YWNrLTJvZjUucGF0Y2gKK1BhdGNoNDc4OiBnZGIt Yno2MDYxODUtb2JzdGFjay0zb2Y1LnBhdGNoCitQYXRjaDQ3OTogZ2RiLWJ6NjA2MTg1LW9ic3Rh Y2stNG9mNS5wYXRjaAorUGF0Y2g0ODA6IGdkYi1iejYwNjE4NS1vYnN0YWNrLTVvZjUucGF0Y2gK KworIyBJbXByb3ZlIHN1cHBvcnQgZm9yIHR5cGVkZWZzIGluIGNsYXNzZXMgKEJaIDYwMjMxNCku CitQYXRjaDQ4MTogZ2RiLWJ6NjAyMzE0LXB0eXBlLWNsYXNzLXR5cGVkZWYtMW9mMy5wYXRjaAor UGF0Y2g0ODI6IGdkYi1iejYwMjMxNC1wdHlwZS1jbGFzcy10eXBlZGVmLTJvZjMucGF0Y2gKK1Bh dGNoNDgzOiBnZGItYno2MDIzMTQtcHR5cGUtY2xhc3MtdHlwZWRlZi0zb2YzLnBhdGNoCisKKyMg Rml4IGBzZXQgcHJpbnQgb2JqZWN0IG9uJyBmb3Igc29tZSBub24tZHluYW1pYyBjbGFzc2VzIChC WiA2MDY2NjApLgorUGF0Y2g0ODQ6IGdkYi1iejYwNjY2MC1wcmludC1vYmplY3Qtbm9udmlydHVh bC5wYXRjaAorCisjIFByaW50IDJEIEMrKyB2ZWN0b3JzIGFzIG1hdHJpY2VzIChCWiA1NjI3NjMs IHNvdXJjZXdhcmUxMDY1OSwgQ2hyaXMgTW9sbGVyKS4KK1BhdGNoNDg1OiBnZGItYno1NjI3NjMt cHJldHR5LXByaW50LTJkLXZlY3RvcnMtcHJlcmVxLnBhdGNoCitQYXRjaDQ4NjogZ2RiLWJ6NTYy NzYzLXByZXR0eS1wcmludC0yZC12ZWN0b3JzLnBhdGNoCitQYXRjaDQ4NzogZ2RiLWJ6NTYyNzYz LXByZXR0eS1wcmludC0yZC12ZWN0b3JzLWxpYnN0ZGN4eC5wYXRjaAorCiBCdWlsZFJlcXVpcmVz OiBuY3Vyc2VzLWRldmVsJXs/X2lzYX0gdGV4aW5mbyBnZXR0ZXh0IGZsZXggYmlzb24gZXhwYXQt ZGV2ZWwlez9faXNhfQogUmVxdWlyZXM6IHJlYWRsaW5lJXs/X2lzYX0KIEJ1aWxkUmVxdWlyZXM6 IHJlYWRsaW5lLWRldmVsJXs/X2lzYX0KQEAgLTQ1OSw3ICs1NTcsNyBAQCBCdWlsZFJlcXVpcmVz OiBsaWJzdGRjKyslez9faXNhfQogJWRlZmluZSBiaXRzX290aGVyICV7P19pc2F9CiAlaWYgMCV7 IT9lbDU6MX0KICVpZmFyY2ggczM5MHgKLSVkZWZpbmUgYml0c19vdGhlciAoJXtfX2lzYV9uYW1l fS0zMSkKKyVkZWZpbmUgYml0c19vdGhlciAoJXtfX2lzYV9uYW1lfS0zMikKICVlbHNlICMhczM5 MHgKICVpZmFyY2ggcHBjCiAlZGVmaW5lIGJpdHNfb3RoZXIgKCV7X19pc2FfbmFtZX0tNjQpCkBA IC01MzksNyArNjM3LDggQEAgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLCBhbGxvd3MgeW91IHRvIGRl YnVnIHByb2dyYW1zIHdyaXR0ZW4gaW4gQywgQysrLAogSmF2YSwgYW5kIG90aGVyIGxhbmd1YWdl cywgYnkgZXhlY3V0aW5nIHRoZW0gaW4gYSBjb250cm9sbGVkIGZhc2hpb24KIGFuZCBwcmludGlu ZyB0aGVpciBkYXRhLgogCi1UaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBwcm9ncmFtIHRoYXQgYWxs b3dzIHlvdSB0byBydW4gR0RCIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgdGhhbiB0aGUgb25lIHdo aWNoIGlzIHJ1bm5pbmcgdGhlIHByb2dyYW0gYmVpbmcgZGVidWdnZWQuCitUaGlzIHBhY2thZ2Ug cHJvdmlkZXMgYSBwcm9ncmFtIHRoYXQgYWxsb3dzIHlvdSB0byBydW4gR0RCIG9uIGEgZGlmZmVy ZW50CittYWNoaW5lIHRoYW4gdGhlIG9uZSB3aGljaCBpcyBydW5uaW5nIHRoZSBwcm9ncmFtIGJl aW5nIGRlYnVnZ2VkLgogJWVuZGlmICMgMCV7IT9lbDU6MX0KIAogJXByZXAKQEAgLTU2Myw5ICs2 NjIsOSBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9vYmpjLWV4cC5jIGdk Yi9wLWV4cC5jCiAKICVpZiAwJXshP193aXRoX3Vwc3RyZWFtOjF9CiAKLSNwYXRjaDIzMiAtcDEK KyVwYXRjaDIzMiAtcDEKICVwYXRjaDM0OSAtcDEKLSVwYXRjaDEyNCAtcDEKKyVwYXRjaDQyMCAt cDEKICVwYXRjaDEgLXAxCiAlcGF0Y2gzIC1wMQogCkBAIC01OTYsNyArNjk1LDYgQEAgcm0gLWYg Z2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBh dGNoMTY5IC1wMQogJXBhdGNoMTcwIC1wMQogJXBhdGNoMTc2IC1wMQotJXBhdGNoMTc3IC1wMQog JXBhdGNoMTg4IC1wMQogJXBhdGNoMTkwIC1wMQogJXBhdGNoMTk0IC1wMQpAQCAtNjA5LDcgKzcw Nyw2IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2Ri L3AtZXhwLmMKICVwYXRjaDIxMSAtcDEKICVwYXRjaDIxMyAtcDEKICVwYXRjaDIxNCAtcDEKLSVw YXRjaDIxNSAtcDEKICVwYXRjaDIxNiAtcDEKICVwYXRjaDIxNyAtcDEKICVwYXRjaDIyNSAtcDEK QEAgLTY1MSw4ICs3NDgsNiBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9v YmpjLWV4cC5jIGdkYi9wLWV4cC5jCiAlcGF0Y2gzMjIgLXAxCiAlcGF0Y2gzMjQgLXAxCiAlcGF0 Y2gzMjYgLXAxCi0jIyNwYXRjaDM1MCAtcDEKLSMjI3BhdGNoMzI4IC1wMQogJXBhdGNoMzI5IC1w MQogJXBhdGNoMzMwIC1wMQogJXBhdGNoMzMxIC1wMQpAQCAtNjYzLDExICs3NTgsOSBAQCBybSAt ZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9vYmpjLWV4cC5jIGdkYi9wLWV4cC5jCiAl cGF0Y2gzNjAgLXAxCiAlcGF0Y2gzODEgLXAxCiAlcGF0Y2gzODIgLXAxCi0lcGF0Y2gzOTAgLXAx CiAlcGF0Y2gzOTEgLXAxCiAlcGF0Y2gzOTIgLXAxCiAlcGF0Y2gzOTcgLXAxCi0lcGF0Y2g0MDAg LXAxCiAlcGF0Y2g0MDMgLXAxCiAlcGF0Y2g0MDQgLXAxCiAlcGF0Y2g0MDUgLXAxCkBAIC02Nzgs NiArNzcxLDY0IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhw LmMgZ2RiL3AtZXhwLmMKICVwYXRjaDQwOCAtcDEKICVwYXRjaDQxMiAtcDEKICVwYXRjaDQxNyAt cDEKKyVwYXRjaDQyMiAtcDEKKyVwYXRjaDQyOSAtcDEKKyVwYXRjaDQzMCAtcDEKKyVwYXRjaDQz MiAtcDEKKyVwYXRjaDQzMyAtcDEKKyVwYXRjaDQzNCAtcDEKKyVwYXRjaDQzNSAtcDEKKyVwYXRj aDQzNiAtcDEKKyVwYXRjaDQzNyAtcDEKKyVwYXRjaDQzOCAtcDEKKyVwYXRjaDQzOSAtcDEKKyVw YXRjaDQ0MCAtcDEKKyVwYXRjaDQ0MSAtcDEKKyVwYXRjaDQ0MiAtcDEKKyVwYXRjaDQ0MyAtcDEK KyVwYXRjaDQ0NCAtcDEKKyVwYXRjaDQ0NSAtcDEKKyVwYXRjaDQ0NiAtcDEKKyVwYXRjaDQ0NyAt cDEKKyVwYXRjaDQ0OCAtcDEKKyVwYXRjaDQ0OSAtcDEKKyVwYXRjaDQ1MSAtcDEKKyVwYXRjaDQ1 MiAtcDEKKyVwYXRjaDQ1MyAtcDEKKyVwYXRjaDQ1NCAtcDEKKyVwYXRjaDQ1NSAtcDEKKyVwYXRj aDQ1NiAtcDEKKyVwYXRjaDQ1NyAtcDEKKyVwYXRjaDQ1OCAtcDEKKyVwYXRjaDQ1OSAtcDEKKyVw YXRjaDQ2MCAtcDEKKyVwYXRjaDQ2MSAtcDEKKyVwYXRjaDQ2MiAtcDEKKyVwYXRjaDQ2MyAtcDEK KyVwYXRjaDQ2NCAtcDEKKyVwYXRjaDQ2NSAtcDEKKyVwYXRjaDQ2NiAtcDEKKyVwYXRjaDQ2NyAt cDEKKyVwYXRjaDQ2OCAtcDEKKyVwYXRjaDQ2OSAtcDEKKyVwYXRjaDQ3MSAtcDEKKyVwYXRjaDQ3 MCAtcDEKKyVwYXRjaDQ3MiAtcDEKKyVwYXRjaDQ3MyAtcDEKKyVwYXRjaDQ3NCAtcDEKKyVwYXRj aDQ3NSAtcDEKKyVwYXRjaDQ3NiAtcDEKKyVwYXRjaDQ3NyAtcDEKKyVwYXRjaDQ3OCAtcDEKKyVw YXRjaDQ3OSAtcDEKKyVwYXRjaDQ4MCAtcDEKKyVwYXRjaDQ4MSAtcDEKKyVwYXRjaDQ4MiAtcDEK KyVwYXRjaDQ4MyAtcDEKKyVwYXRjaDQ4NCAtcDEKKyVwYXRjaDQ4NSAtcDEKKyVwYXRjaDQ4NiAt cDEKKyVwYXRjaDQ4NyAtcDEKIAogJXBhdGNoNDE1IC1wMQogJXBhdGNoMzkzIC1wMQpAQCAtNjg1 LDcgKzgzNiw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhw LmMgZ2RiL3AtZXhwLmMKICMgUGF0Y2g0MTU6IGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1h cy1hcmcucGF0Y2gKICMgQ3VycmVudGx5IGRpc2FibGVkIGZvciBSSEVMIGFzIGl0IGlzIGEgbmV3 IGV4cGVyaW1lbnRhbCBmZWF0dXJlIG5vdCBwcmVzZW50CiAjIGluIEZTRiBHREIgYW5kIHBvc3Np Ymx5IGFmZmVjdGluZyBuZXcgdXNlciBzY3JpcHRzLgotJWlmIDAleyE/cmhlbDoxfQorJWlmIDAl ez9yaGVsOjF9CiAlcGF0Y2g0MTUgLXAxIC1SCiAlZW5kaWYKICVpZiAwJXshP2VsNToxfQpAQCAt OTc4LDcgKzExMjksNyBAQCBmaQogCiAlZmlsZXMKICVkZWZhdHRyKC0scm9vdCxyb290KQotJWRv YyBDT1BZSU5HIENPUFlJTkcuTElCIFJFQURNRSBORVdTCislZG9jIENPUFlJTkczIENPUFlJTkcg Q09QWUlORy5MSUIgUkVBRE1FIE5FV1MKICV7X2JpbmRpcn0vZ2NvcmUKICV7X2JpbmRpcn0vZ2Ri CiAle19iaW5kaXJ9L2dkYnR1aQpAQCAtMTAxMCw2ICsxMTYxLDE0OCBAQCBmaQogJWVuZGlmCiAK ICVjaGFuZ2Vsb2cKKyogU3VuIEp1bCAxMSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPiAtIDcuMS0yOC5mYzE0CistIFJlYnVpbGQgZm9yIEZlZG9yYSAxNC4K KworKiBXZWQgSnVuIDMwIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+IC0gNy4xLTI4LmZjMTMKKy0gUHJpbnQgMkQgQysrIHZlY3RvcnMgYXMgbWF0cmljZXMg KEJaIDU2Mjc2Mywgc291cmNld2FyZTEwNjU5LCBDaHJpcyBNb2xsZXIpLgorCisqIFdlZCBKdW4g MzAgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEt MjcuZmMxMworLSBGaXggb2JzdGFjayBjb3JydXB0aW9ucyBvbiBDKysgKEJaIDYwNjE4NSwgQ2hy aXMgTW9sbGVyLCBKYW4gS3JhdG9jaHZpbCkuCistIEltcHJvdmUgc3VwcG9ydCBmb3IgdHlwZWRl ZnMgaW4gY2xhc3NlcyAoQlogNjAyMzE0KS4KKy0gRml4IGBzZXQgcHJpbnQgb2JqZWN0IG9uJyBm b3Igc29tZSBub24tZHluYW1pYyBjbGFzc2VzIChCWiA2MDY2NjApLgorCisqIFdlZCBKdW4gIDkg MjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMjYu ZmMxMworLSBCYWNrcG9ydCBEV0FSRi00IHN1cHBvcnQgKEJaIDYwMTg4NywgVG9tIFRyb21leSku CisKKyogV2VkIEp1biAgOSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMS0yNS5mYzEzCistIEZpeCBBREwgYW5vbnltb3VzIHR5cGUgY3Jhc2ggKEJa IDYwMDc0NiwgU2FtaSBXYWdpYWFsbGEpLgorCisqIFR1ZSBKdW4gIDEgMjAxMCBKYW4gS3JhdG9j aHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMjQuZmMxMworLSBGaXggY3Jh c2ggb24gL3Byb2MvUElEL3N0YXQgcmFjZSBkdXJpbmcgaW5mZXJpb3IgZXhpdCAoQlogNTk2NzUx KS4KKy0gdGVzdHN1aXRlOiBnZGIudGhyZWFkcy93YXRjaHRocmVhZHMtcmVvcmRlci5leHAga2Vy bmVsLTIuNi4zMyBjb21wYXQuIGZpeC4KKworKiBTdW4gTWF5IDMwIDIwMTAgSmFuIEtyYXRvY2h2 aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTIzLmZjMTMKKy0gRml4IGFuZCBz dXBwb3J0IERXX09QXypwaWVjZSAoVG9tIFRyb21leSwgQlogNTg5NDY3KS4KKy0gRml4IGZvbGxv dy1leGVjIGZvciBDKysgcHJvZ3JhbXMgKGJ1Z3JlcG9ydGVkIGJ5IE1hcnRpbiBTdHJhbnNreSku CisKKyogTW9uIE1heSAyNCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMS0yMi5mYzEzCistIFJlbW92ZSBjb3JlIGZpbGUgd2hlbiBzdGFydGluZyBh IHByb2Nlc3MgKEJaIDU5NDU2MCkuCistIEZpeCBsb2NrIHVwIG9uIGxvb3BzIGluIHRoZSBzb2xp YiBjaGFpbiAoQlogNTkzOTI2KS4KKy0gSW1wb3J0IGZpeCBvZiBUVUkgbGF5b3V0IGludGVybmFs IGVycm9yIChCWiA1OTU0NzUpLgorCisqIFN1biBNYXkgMTYgMjAxMCBKYW4gS3JhdG9jaHZpbCA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMjEuZmMxMworLSBNYWtlIGdkYi02Ljgt YnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2ggUkhFTC01IC91c3IvYmluL3BhdGNoIGNvbXBh dGlibGUKKyAgKGJ1Z3JlcG9ydGVkIGJ5IEpvbmFzIE1hZWJlKS4KKworKiBUaHUgTWF5IDEzIDIw MTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTIwLmZj MTMKKy0gRml4IGNyYXNoIG9uIFZMQSBib3VuZCByZWZlcmVuY2luZyBhbiBvcHRpbWl6ZWQtb3V0 IHZhcmlhYmxlIChCWiA1OTE4NzkpLgorLSBSZS1lbmFibGUgdGhlIEJaIDU3NTI5MiBhbmQgQlog NTg1NDQ1IEMrKyBmaXggdXNpbmcgYW4gdXBkYXRlZCBwYXRjaC4KKworKiBXZWQgTWF5IDEyIDIw MTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTE5LmZj MTMKKy0gQmFja3BvcnQgPHRhYj4tY29tcGxldGlvbiBidWcgb24gYW5vbnltb3VzIHN0cnVjdHVy ZSBmaWVsZHMgKEJaIDU5MDY0OCkuCistIHRlc3RzdWl0ZTogRml4IGdkYi5iYXNlL3ZsYS1vdmVy Zmxvdy5leHAgRkFJTGluZyBvbiBzMzkweCAoQlogNTkwNjM1KS4KKy0gV29ya2Fyb3VuZCBub24t c3RvcCBtb3JpYnVuZCBsb2NhdGlvbnMgZXhwbG9pdGVkIGJ5IGtlcm5lbCB1dHJhY2UgKEJaIDU5 MDYyMykuCisKKyogVGh1IEFwciAyOSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZp bEByZWRoYXQuY29tPiAtIDcuMS0xOC5mYzEzCistIE1ha2UgX1Vud2luZF9EZWJ1Z0hvb2sgaW5k ZXBlbmRlbnQgZnJvbSBzdGVwLXJlc3VtZSBicmVha3BvaW50IChUb20gVHJvbWV5KS4KKworKiBU dWUgQXByIDI3IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ IC0gNy4xLTE3LmZjMTMKKy0gRmFpbCBncmFjZWZ1bGx5IGlmIHRoZSBfVW53aW5kX0RlYnVnSG9v ayBhcmcuIGlzIG9wdGltaXplZCBvdXQgKFRvbSBUcm9tZXkpLgorCisqIFR1ZSBBcHIgMjcgMjAx MCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMTYuZmMx MworLSBUZW1wb3JhcmlseSB3b3JrYXJvdW5kIHRoZSBjcmFzaCBvZiBCWiA1NzUyOTIgYXMgdGhl cmUgd2FzIG5vdyBCWiA1ODU0NDUuCisKKyogTW9uIEFwciAyNiAyMDEwIEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xNS5mYzEzCistIEZpeCBjcmFzaCB3 aGVuIHVzaW5nIEdOVSBJRlVOQyBjYWxsIGZyb20gYnJlYWtwb2ludCBjb25kaXRpb24uCistIEF2 b2lkIGludGVybmFsIGVycm9yIGJ5IGRpc2FibGluZyB0aGUgcHJldmlvdXMgQlogNTc1MjkyIGZp eCAoQlogNTg1NDQ1KS4KKworKiBUaHUgQXByIDIyIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTE0LmZjMTMKKy0gRml4IGNyYXNoIG9uIEMrKyB0 eXBlcyBpbiBzb21lIGRlYnVnIGluZm8gZmlsZXMgKEJaIDU3NTI5MiwgS2VpdGggU2VpdHopLgor LSBQcmV0dHkgcHJpbnRlcnMgbm90IHdlbGwgZG9jdW1lbnRlZCAoQlogNTcwNjM1LCBUb20gVHJv bWV5LCBKYW4gS3JhdG9jaHZpbCkuCisKKyogRnJpIEFwciAxNiAyMDEwIEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xMy5mYzEzCistIGFyY2hlci1qYW5r cmF0b2NodmlsLWZlZG9yYTEzIGNvbW1pdDogMzk5OThjNDk2OTg4ZmFhYTE1MDljYzZhYjc2YjVj NDc3NzY1OWJmNAorLSBbdmxhXSBGaXggYm91bmRhcmllcyBmb3IgYXJyYXlzIG9uIC1PMiAtZyAo c3VwcG9ydCBib3VuZC1yZWYtPnZhci0+bG9jbGlzdCkuCistIFt2bGFdIEZpeCBjb3B5X3R5cGVf cmVjdXJzaXZlIGZvciB1bmF2YWlsYWJsZSB2YXJpYWJsZXMgKEpvb3N0IHZhbiBkZXIgU2x1aXMp LgorCisqIFN1biBBcHIgMTEgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4gLSA3LjEtMTIuZmMxMworLSBGaXggY3Jhc2ggb24gdHJ5aW5nIHRvIGxvYWQgaW52 YWxpZCBleGVjdXRhYmxlIChCWiA1ODEyMTUpLgorCisqIFRodSBBcHIgIDggMjAxMCBKYW4gS3Jh dG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMTEuZmMxMworLSB0ZXN0 c3VpdGU6IEZpeCBnZGIuYmFzZS9nc3RhY2suZXhwIGFsc28gZm9yIHBwYzY0IGluZmVyaW9ycyAo Zm9yIEJaIDU3OTc5MykuCisKKyogVGh1IEFwciAgOCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMS0xMC5mYzEzCistIEZpeCBzMzkwIC0td2l0aCB0 ZXN0c3VpdGUgQnVpbGRyZXF1aWVycyB0byBiZSAoczM5MC0zMikgKEJaIDU4MDM0NywgQ2FpIFFp YW4pLgorCisqIFdlZCBBcHIgIDcgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4gLSA3LjEtOS5mYzEzCistIEZpeCBnc3RhY2sgdG8gcHJpbnQgZXZlbiB0aGUg ZnJhbWUgIzAuICBOZXcgZ2RiLmJhc2UvZ3N0YWNrLmV4cC4gIChCWiA1Nzk3OTMpCistIE1lcmdl IGdkYi02LjMtZ3N0YWNrLXdpdGhvdXQtcGF0aC0yMDA2MDQxNC5wKiBpbnRvIGdkYi02LjMtZ3N0 YWNrLTIwMDUwNDExLnAqLAorICBubyByZWFsIGNvZGUgY2hhbmdlLgorCisqIE1vbiBBcHIgIDUg MjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtOC5m YzEzCistIEZpeCBicmVha3BvaW50IGF0ICpfc3RhcnQgKEJaIDE2Mjc3NSwgYnVncmVwb3J0IGJ5 IEpvaG4gUmVpc2VyKS4KKworKiBTYXQgQXByICAzIDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTcuZmMxMworLSBGaXggcHBjIGJ1aWxkIG9mIHRo ZSBBVlggcmVnaXN0ZXJzIHN1cHBvcnQgKGZvciBCWiA1NzgyNTApLgorCisqIFNhdCBBcHIgIDMg MjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtNi5m YzEzCistIFN1cHBvcnQgQVZYIHJlZ2lzdGVycyAoQlogNTc4MjUwKS4KKworKiBTYXQgQXByICAz IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTUu ZmMxMworLSBGaXggZGFuZ2xpbmcgZGlzcGxheXMgaW4gc2VwYXJhdGUgZGVidWdpbmZvIChCWiA1 NzQ0ODMpLgorCisqIFdlZCBNYXIgMzEgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4gLSA3LjEtNC5mYzEzCistIFJlbW92ZSBnZGItcmVhZGxpbmUtNi4wLXNp Z25hbC5wYXRjaCB3aXRoIGEgYnVnIGNhdXNpbmcgY3Jhc2ggd2hpbGUgbm8gbG9uZ2VyCisgIHJl cXVpcmVkIHdpdGggRi0xMyByZWFkbGluZS02LjEgKEJaIDU3NTUxNikKKworKiBNb24gTWFyIDI5 IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xLTMu ZmMxMworLSBbZXhwci1jdW11bGF0aXZlXSB1c2luZy1kaXJlY3RpdmU6IEZpeCBtZW1vcnkgbGVh ayAoU2FtaSBXYWdpYWFsbGEpLgorCisqIE1vbiBNYXIgMjkgMjAxMCBKYW4gS3JhdG9jaHZpbCA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjEtMi5mYzEzCistIERyb3Agb2Jzb2xldGVk IGBnZGItYXJjaGVyLXBpZS0wMzE1LWJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaC5wYXRjaCcuCist IERvIG5vdCBjb25zaWRlciBtZW1vcnkgZXJyb3Igb24gcmVhZGluZyBfcl9kZWJ1Zy0+cl9tYXAg YXMgZmF0YWwgKEJaIDU3Njc0MikuCisgIC0gUElFOiBBdHRhY2ggYmluYXJ5IGV2ZW4gYWZ0ZXIg cmUtcHJlbGlua2VkIHVuZGVybmVhdGguCisgIC0gUElFOiBBdHRhY2ggYmluYXJ5IGV2ZW4gYWZ0 ZXIgbGQuc28gcmUtcHJlbGlua2VkIHVuZGVybmVhdGguCisgIC0gUElFOiBGaXggb2NjYXNpb25h bCBlcnJvciBhdHRhY2hpbmcgaTY4NiBiaW5hcnkgKEJaIDU3Njc0MikuCistIHRlc3RzdWl0ZTog Rml4IHVuc3RhYmxlIHJlc3VsdHMgb2YgZ2RiLmJhc2UvcHJlbGluay5leHAuCisKKyogVGh1IE1h ciAyNSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcu MS0xLmZjMTMKKy0gVXBkYXRlIHRvIG5ldyBGU0YgR0RCIHJlbGVhc2UuCisKKyogTW9uIE1hciAx NSAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMC45 MC4yMDEwMDMxMi0yNC5mYzEzCistIERyb3AgZ2RiLTYuNS1iejIxODM3OS1wcGMtc29saWItdHJh bXBvbGluZS1maXgucGF0Y2ggaGF2aW5nIGZhbHNlIHN5bWJvbHMKKyAgcmVzb2x2aW5nIChyZWxh dGVkIHRvIEJaIDU3MzI3NykuCisKKyogRnJpIE1hciAxMiAyMDEwIEphbiBLcmF0b2NodmlsIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMC45MC4yMDEwMDMxMi0yMy5mYzEzCistIFVw ZGF0ZSB0byBuZXcgRlNGIEdEQiBzbmFwc2hvdC4KKy0gRml4IGRvdWJsZS1mcmVlIG9uIHN0ZDo6 dGVybWluYXRlIGhhbmRsZXIgKFRvbSBUcm9tZXksIEJaIDU2Mjk3NSkuCisKKyogV2VkIE1hciAx MCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMC45 MC4yMDEwMDMwNi0yMi5mYzEzCistIEFub3RoZXIgTGljZW5zZSB1cGRhdGUuCisKKyogV2VkIE1h ciAxMCAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcu MC45MC4yMDEwMDMwNi0yMS5mYzEzCistIFVwZGF0ZSBMaWNlbnNlIGZvciBhbGwgdGhlIGxpY2Vu c2VzIGNvbnRhaW5lZCBpbiAuc3JjLnJwbS4KKworKiBNb24gTWFyICA4IDIwMTAgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4wLjkwLjIwMTAwMzA2LTIwLmZj MTMKKy0gUmVtb3ZlIHVuYXBwbGllZDogZ2RiLTYuOC1pbmxpbmluZy1hZGRvbi5wYXRjaCBnZGIt Ni44LWlubGluaW5nLWJ5LW5hbWUucGF0Y2gKKworKiBNb24gTWFyICA4IDIwMTAgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4wLjkwLjIwMTAwMzA2LTE5LmZj MTMKKy0gSW5jbHVkZSBhbHNvICUlZG9jIENPUFlJTkczIChyZXZpZXcgYnkgUGV0ciBNYWNoYXRh KS4KKy0gUmVtb3ZlIFVSTCBmb3IgU291cmNlIChyZXZpZXcgYnkgTWF0ZWogQ2VwbCkuCisKKyog U3VuIE1hciAgNyAyMDEwIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PiAtIDcuMC45MC4yMDEwMDMwNi0xOC5mYzEzCistIGFyY2hlci1qYW5rcmF0b2NodmlsLWZlZG9y YTEzIGNvbW1pdDogNTljMzVhMzFmMDk4MWEwZjBiODg0YjMyYzkxYWU2MzI1YjIxMjZjZAorCisq IFN1biBGZWIgMjggMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4gLSA3LjAuNTAuMjAxMDAyMDMtMTcuZmMxMworLSBGaXggZmFsc2Ugd2FybmluZzogc2VjdGlv biAuZ251LmxpYmxpc3Qgbm90IGZvdW5kIGluIC4uLgorLSBGaXggY3Jhc2ggb24gc3RhbGUgYWRk cmluZm8tPnNlY3RpbmRleCAobW9yZSBzZW5zaXRpdmUgZHVlIHRvIHRoZSBQSUUgcGF0Y2gpLgor CisqIEZyaSBGZWIgMjYgMjAxMCBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4gLSA3LjAuNTAuMjAxMDAyMDMtMTYuZmMxMworLSBGaXggaWE2NCBwYXJ0IG9mIHRoZSBi dC1jbG9uZS1zdG9wLmV4cCBmaXguCistIEZpeCBnZGIuYWRhLyogcmVncmVzc2lvbnMgKEtlaXRo IFNlaXR6KS4KKy0gUmVtb3ZlIGZhbHNlIGdkYl9hc3NlcnQgb24gJHNwIHVuZGVyZmxvdy4KKwog KiBNb24gRmViICA4IDIwMTAgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+IC0gNy4wLjUwLjIwMTAwMjAzLTE1LmZjMTMKIC0gRml4IGkzODYreDg2XzY0IHJ3YXRjaCth d2F0Y2ggYmVmb3JlIHJ1biwgcmVncmVzc2lvbiBhZ2FpbnN0IDYuOCAoQlogNTQxODY2KS4KIAoK ZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDg1Y2FhYjYuLjllNDA1YTggMTAw NjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKLTE3OWQ1ZTU0 NTc1ZjdhNGQ4ZGZiZTQyM2UxZWU2Njc4ICBnZGItNy4wLjUwLjIwMTAwMjAzLnRhci5iejIKKzIx ZGNlNjEwNDc2YzA1NDY4N2I1Mjc3MGQyZGRjNjU3ICBnZGItNy4xLnRhci5iejIKIDA0ZTVjNGIx YjllNjMzNDIyY2M0ODk5MGZlNjE5NThkICBsaWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFy LmJ6Mgo=