From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Merge commit '3f32311b4a6fe79de1a3da7bca5c08613eb3734e' Date: Sat, 27 Jun 2026 23:57:47 GMT Message-ID: <178260466702.1.3268556433029150359.rpms-gdb-a5a9adcd40e3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: a5a9adcd40e34226d3129c5177f8fe8292d704f6 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogYTVhOWFkY2Q0MGUzNDIyNmQzMTI5YzUxNzdm OGZlODI5MmQ3MDRmNgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNi0wOC0yM1QyMDo1NDoxNSswMjowMApTdGF0cyAgOiArNDEw OS8tNDg2NyBpbiA0MSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qu b3JnL3JwbXMvZ2RiL2MvYTVhOWFkY2Q0MGUzNDIyNmQzMTI5YzUxNzdmOGZlODI5MmQ3MDRmNj9i cmFuY2g9Z2RiLTE3LjItcmViYXNlLWY0NAoKTG9nOgpNZXJnZSBjb21taXQgJzNmMzIzMTFiNGE2 ZmU3OWRlMWEzZGE3YmNhNWMwODYxM2ViMzczNGUnCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25v cmUgYi8uZ2l0aWdub3JlCmluZGV4IGRiYjE1Y2IuLjJjNDYwMGYgMTAwNjQ0Ci0tLSBhLy5naXRp Z25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYz LXB5dGhvbi1yMjI1NTIxLnRhci54egotL2dkYi03LjExLjEudGFyLnh6CisvZ2RiLTcuMTEuOTAu MjAxNjA4MDcudGFyLnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0u cGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCA1ZWZjYzVhLi41 NmNlN2RiIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysg Yi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtMSwyNSArMSwxNiBAQAotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL2V2ZW50LXRvcC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2V2ZW50LXRvcC5jCi1AQCAtMzcsNiArMzcsNyBAQAotICNpbmNsdWRlICJnZGJjbWQuaCIJ CS8qIGZvciBkb250X3JlcGVhdCgpICovCi0gI2luY2x1ZGUgImFubm90YXRlLmgiCi0gI2luY2x1 ZGUgIm1haW50LmgiCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZXZlbnQtdG9w LmMJMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0wMyAxNDozNzoxMi41NzIxMzA3MzQgKzAy MDAKK0BAIC00MCw2ICs0MCw3IEBACisgI2luY2x1ZGUgImJ1ZmZlci5oIgorICNpbmNsdWRlICJz ZXItZXZlbnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3NlbGVjdC5oIgogKyNpbmNsdWRlICJzeW1maWxl LmgiCiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRs aW5lL3JlYWRsaW5lLmgiCi1AQCAtMTgwLDYgKzE4MSw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hh cl93cmFwcGVyIChnZGJfY2xpZW4KLSB2b2lkCi0gY2xpX2NvbW1hbmRfbG9vcCAodm9pZCAqZGF0 YSkKLSB7Ci0rICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOwotKwotICAgZGlzcGxheV9nZGJfcHJv bXB0ICgwKTsKLSAKLSAgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50IGxvb3Au ICAqLwotQEAgLTI5OCw2ICszMDEsOCBAQCBkaXNwbGF5X2dkYl9wcm9tcHQgKGNvbnN0IGNoYXIg Km5ld19wcm9tCitAQCAtMzQ3LDYgKzM0OCw4IEBACiAgICAvKiBSZXNldCB0aGUgbmVzdGluZyBk ZXB0aCB1c2VkIHdoZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAgKi8KICAgIHJlc2V0X2NvbW1h bmRfbmVzdF9kZXB0aCAoKTsKICAKQEAgLTI4LDExICsxOSwyMyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXAg KGZyZWVfY3VycmVudF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJvbXB0KTsKICAKICAgIC8qIERv IG5vdCBjYWxsIHRoZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNpdCBwcm9tcHQgY2hhbmdlIGFz Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAorQEAgLTc5NCw3ICs3 OTcsMTAgQEAKKyAgICAgICBjb21tYW5kX2hhbmRsZXIgKGNtZCk7CisgCisgICAgICAgaWYgKHVp LT5wcm9tcHRfc3RhdGUgIT0gUFJPTVBURUQpCistCWRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7Cisr CXsKKysJICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOworKwkgIGRpc3BsYXlfZ2RiX3Byb21wdCAo MCk7CisrCX0KKyAgICAgfQorIH0KKyAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv c3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv c3ltZmlsZS5oCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAotQEAgLTU4 Nyw2ICs1ODcsOCBAQCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hCist LS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6 MzQ6MzIuMDMyNzUzNjY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZp bGUuaAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3MzEzMDc0MiArMDIwMAorQEAgLTU5Miw2ICs1OTIs OCBAQAogIC8qIGJ1aWxkLWlkIHN1cHBvcnQuICAqLwogIGV4dGVybiBzdHJ1Y3QgYmZkX2J1aWxk X2lkICpidWlsZF9pZF9hZGRyX2dldCAoQ09SRV9BRERSIGFkZHIpOwogIGV4dGVybiB2b2lkIGRl YnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcp OwpAQCAtNDEsNDggKzQ0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3lt ZmlsZS5oCiAgCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotQEAgLTE2NDIsNyAr MTY0Miw3IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKLSAJICAgIHdhcm5pbmcgIkNv dWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2Zm IHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0 LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3Rz dWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQtaWQtdmVy Ym9zZSAwXG4iCi0gICAgIGdkYl9leHBlY3QgMTAgewotIAktcmUgIiRnZGJfcHJvbXB0ICQiIHsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVz dHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotQEAgLTIwNCw3ICsyMDQsNyBAQCBwcm9jIGRlZmF1 bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0 aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5n IHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1 cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5v dCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3Nl IDBcbiIKLSAgICAgZ2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiLioxOTAtZ2RiLXNldCBidWlsZC1p ZC12ZXJib3NlIDBcclxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9wcm9tcHQkIiB7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi90dWkvdHVpLWludGVycC5jCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLUBAIC0zMSw2ICszMSw3IEBA Ci0gI2luY2x1ZGUgInR1aS90dWktaW8uaCIKLSAjaW5jbHVkZSAiaW5mcnVuLmgiCi0gI2luY2x1 ZGUgIm9ic2VydmVyLmgiCi0rI2luY2x1ZGUgInN5bWZpbGUuaCIKLSAKLSBzdGF0aWMgc3RydWN0 IHVpX291dCAqdHVpX3VpX291dCAoc3RydWN0IGludGVycCAqc2VsZik7Ci0gCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FjbG9jYWwubTQKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvYWNsb2NhbC5tNAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL2FjbG9jYWwubTQKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWNsb2Nh bC5tNAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2FjbG9jYWwubTQJMjAxNi0w Ny0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvYWNsb2NhbC5tNAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3NjEzMDc2OCArMDIwMAogQEAgLTEx LDYgKzExLDIyMSBAQAogICMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQQogICMgUEFSVElDVUxBUiBQVVJQT1NFLgpAQCAtMzA1LDEw ICsyNzAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hY2xvY2FsLm00CiAg IyBBTV9BVVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLSotIEF1dG9jb25mIC0qLQogIAogICMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvbmZp Zy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZp Zy5pbgotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4KKy0tLSBnZGItNy4x MS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUy MTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnLmluCTIwMTYt MDctMDMgMTQ6Mzc6MTIuNTc2MTMwNzY4ICswMjAwCiBAQCAtMzMsNiArMzMsOSBAQAogIC8qIERl ZmluZSB0byBCRkQncyBkZWZhdWx0IHRhcmdldCB2ZWN0b3IuICovCiAgI3VuZGVmIERFRkFVTFRf QkZEX1ZFQwpAQCAtMzE5LDcgKzI4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgdHJhbnNsYXRpb24gb2YgcHJvZ3JhbSBt ZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2ZQogICAgIGxhbmd1YWdlIGlzIHJlcXVlc3RlZC4g Ki8KICAjdW5kZWYgRU5BQkxFX05MUwotQEAgLTI1OCw2ICsyNjEsOSBAQAorQEAgLTI2MSw2ICsy NjQsOSBAQAogIC8qIERlZmluZSBpZiBQeXRob24gMi43IGlzIGJlaW5nIHVzZWQuICovCiAgI3Vu ZGVmIEhBVkVfTElCUFlUSE9OMl83CiAgCkBAIC0zMjksMTEgKzI5NCwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVf TElCVU5XSU5EX0lBNjRfSAogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25m aWd1cmUKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlndXJlCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29uZmlndXJlCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQotQEAgLTcwNSw2ICs3MDUsMTEgQEAgUEtH VkVSU0lPTgorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2 LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9jb25maWd1cmUJMjAxNi0wNy0wMyAxNDozNzoxMi41ODExMzA4MTEgKzAyMDAKK0BAIC03 MDUsNiArNzA1LDExIEBACiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VUX09CUwog IHN1YmRpcnMKQEAgLTM0NSw3ICszMTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2NvbmZpZ3VyZQogIEdEQl9EQVRBRElSCiAgREVCVUdESVIKICBNQUtFSU5GT19FWFRSQV9G TEFHUwotQEAgLTgxMyw2ICs4MTgsNyBAQCB3aXRoX2dkYl9kYXRhZGlyCitAQCAtODE0LDYgKzgx OSw3IEBACiAgd2l0aF9yZWxvY2F0ZWRfc291cmNlcwogIHdpdGhfYXV0b19sb2FkX2RpcgogIHdp dGhfYXV0b19sb2FkX3NhZmVfcGF0aApAQCAtMzUzLDcgKzMxOCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFibGVfNjRf Yml0X2JmZAogIGVuYWJsZV9nZGJjbGkKLUBAIC04NjksNiArODc1LDExIEBAIENDQworQEAgLTg3 MCw2ICs4NzYsMTEgQEAKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJTkZPRkxBR1MKQEAgLTM2NSw3 ICszMzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogIFlB Q0MKICBZRkxBR1MKICBYTUtNRicKLUBAIC0xNTQwLDYgKzE1NTEsOCBAQCBPcHRpb25hbCBQYWNr YWdlczoKK0BAIC0xNTQxLDYgKzE1NTIsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAg Wy0td2l0aC1hdXRvLWxvYWQtZGlyXQogICAgLS13aXRob3V0LWF1dG8tbG9hZC1zYWZlLXBhdGgK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvIG5vdCByZXN0cmljdCBhdXRvLWxvYWRlZCBm aWxlcyBsb2NhdGlvbnMKQEAgLTM3NCw3ICszMzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2NvbmZpZ3VyZQogICAgLS13aXRoLWxpYnVud2luZC1pYTY0ICAgdXNlIGxpYnVu d2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwogICAgLS13aXRoLWN1cnNlcyAg ICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5Ci1AQCAtMTU5NSw2ICsxNjA4LDEzIEBA IFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorQEAgLTE1OTUsNiArMTYw OCwxMyBAQAogICAgTUFLRUlORk8gICAgUGFyZW50IGNvbmZpZ3VyZSBkZXRlY3RzIGlmIGl0IGlz IG9mIHN1ZmZpY2llbnQgdmVyc2lvbi4KICAgIE1BS0VJTkZPRkxBR1MKICAgICAgICAgICAgICAg IFBhcmFtZXRlcnMgZm9yIE1BS0VJTkZPLgpAQCAtMzg4LDcgKzM1Myw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgICBZQUNDICAgICAgICBUaGUgYFlldCBB bm90aGVyIEMgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMgdG8KICAg ICAgICAgICAgICAgIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29uIC15Jywg YGJ5YWNjJywgYHlhY2MnLgogICAgWUZMQUdTICAgICAgVGhlIGxpc3Qgb2YgYXJndW1lbnRzIHRo YXQgd2lsbCBiZSBwYXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4KLUBAIC01NjU1LDYgKzU2NzUs NDk0IEBAIF9BQ0VPRgorQEAgLTU2MTMsNiArNTYzMyw0OTQgQEAKICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0 aCIgPiY1CiAgJGFzX2VjaG8gIiR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsgfQogIApA QCAtODgzLDExICs4NDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25m aWd1cmUKICAKICAKICBzdWJkaXJzPSIkc3ViZGlycyB0ZXN0c3VpdGUiCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi9jb25maWd1cmUuYWMKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29u ZmlndXJlLmFjCi1AQCAtMTc3LDYgKzE3NywxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURf U0FGRV9QQVRILCBlc2NhcAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZp Z3VyZS5hYwkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4 MTkgKzAyMDAKK0BAIC0xNzcsNiArMTc3LDE5OSBAQAogIAkgICAgICBbRGlyZWN0b3JpZXMgc2Fm ZSB0byBob2xkIGF1dG8tbG9hZGVkIGZpbGVzLl0pCiAgQUNfTVNHX1JFU1VMVChbJHdpdGhfYXV0 b19sb2FkX3NhZmVfcGF0aF0pCiAgCkBAIC0xMDg3LDExICsxMDUyLDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCiAgQUNfQ09ORklHX1NVQkRJUlModGVz dHN1aXRlKQogIAogICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0IGFsdGVybmF0aXZlIHRhcmdl dCBjb25maWd1cmF0aW9ucwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb3JlbG93 LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29yZWxvdy5jCi0rKysgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwotQEAgLTMxMCw3ICszMTAsNyBAQCBidWlsZF9p ZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5KQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9y aWcvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAyMjc1MzU4MiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAxNDozNzoxMi41 ODIxMzA4MTkgKzAyMDAKK0BAIC0zMTAsNyArMzEwLDcgQEAKICAgICAgICAgIHN5bWZpbGVfb2Jq ZmlsZS0+ZmxhZ3MgfD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURFRDsKICAgICAgfQogICAgZWxz ZQpAQCAtMTEwMCwxMCArMTA2NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2NvcmVsb3cuYwogIAogICAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOwogIAotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi9idWlsZC1pZC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlk LmMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTYtMDct MDMgMTQ6MzY6NTAuMTI0OTM4MTg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2J1aWxkLWlkLmMJMjAxNi0wNy0wMyAxNDo0MjoyNS4xNzE4MTIxMzQgKzAyMDAKIEBAIC0zNSw2 ICszNSw3IEBACiAgI2luY2x1ZGUgImVsZi9jb21tb24uaCIKICAjaW5jbHVkZSAiZWxmLWJmZC5o IgpAQCAtMTExMiw3ICsxMDc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9i dWlsZC1pZC5jCiAgCiAgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NFX05PTkUgMAogICNkZWZpbmUg QlVJTERfSURfVkVSQk9TRV9GSUxFTkFNRVMgMQotQEAgLTY2NSw4ICs2NjYsMzY2IEBAIGJ1aWxk X2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2IKK0BAIC02NjUsOCArNjY2LDM2NiBA QAogICAgcmV0dXJuIHJlc3VsdDsKICB9CiAgCkBAIC0xMjIxLDEzICsxMTg2LDEzIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwkgICAgcmV0dXJuIDA7CiAr CSAgfQogKwotKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSBkbHN5bSAoaCwgImhlYWRlckZvcm1h dCIpKQotKwkgICAgICAmJiAocnBtUmVhZENvbmZpZ0ZpbGVzX3AgPSBkbHN5bSAoaCwgInJwbVJl YWRDb25maWdGaWxlcyIpKQotKwkgICAgICAmJiAocnBtZGJGcmVlSXRlcmF0b3JfcCA9IGRsc3lt IChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKLSsJICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9y X3AgPSBkbHN5bSAoaCwgInJwbWRiTmV4dEl0ZXJhdG9yIikpCi0rCSAgICAgICYmIChycG10c0Ny ZWF0ZV9wID0gZGxzeW0gKGgsICJycG10c0NyZWF0ZSIpKQotKwkgICAgICAmJiAocnBtdHNGcmVl X3AgPSBkbHN5bSAoaCwgInJwbXRzRnJlZSIpKQotKwkgICAgICAmJiAocnBtdHNJbml0SXRlcmF0 b3JfcCA9IGRsc3ltIChoLCAicnBtdHNJbml0SXRlcmF0b3IiKSkpKQorKwlpZiAoISgoaGVhZGVy Rm9ybWF0X3AgPSAoY2hhciAqKCopIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNn X3QgKmVycm1zZykpIGRsc3ltIChoLCAiaGVhZGVyRm9ybWF0IikpCisrCSAgICAgICYmIChycG1S ZWFkQ29uZmlnRmlsZXNfcCA9IChpbnQgKCopIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hh ciAqIHRhcmdldCkpIGRsc3ltIChoLCAicnBtUmVhZENvbmZpZ0ZpbGVzIikpCisrCSAgICAgICYm IChycG1kYkZyZWVJdGVyYXRvcl9wID0gKHJwbWRiTWF0Y2hJdGVyYXRvciAoKikgKHJwbWRiTWF0 Y2hJdGVyYXRvciBtaSkpIGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKKysJICAgICAg JiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSAoSGVhZGVyICgqKSAocnBtZGJNYXRjaEl0ZXJhdG9y IG1pKSkgZGxzeW0gKGgsICJycG1kYk5leHRJdGVyYXRvciIpKQorKwkgICAgICAmJiAocnBtdHND cmVhdGVfcCA9IChycG10cyAoKikgKHZvaWQpKSBkbHN5bSAoaCwgInJwbXRzQ3JlYXRlIikpCisr CSAgICAgICYmIChycG10c0ZyZWVfcCA9IChycG10cyAoKikgKHJwbXRzIHRzKSkgZGxzeW0gKGgs ICJycG10c0ZyZWUiKSkKKysJICAgICAgJiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSAocnBtZGJN YXRjaEl0ZXJhdG9yICgqKSAoY29uc3QgcnBtdHMgdHMsIHJwbVRhZyBycG10YWcsIGNvbnN0IHZv aWQgKmtleXAsIHNpemVfdCBrZXlsZW4pKSBkbHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikp KSkKICsJICB7CiArCSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5j b21wYXRpYmxlICglcyksICIKICsJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0 aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKQEAgLTEyODMsMTIgKzEyNDgsMTIgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiArCSAgaWYgKHMgPiBkZWJ1 Z2luZm8gJiYgbWVtY21wIChzLCAiLnNyYy5ycG0iLCBzcmNycG1sZW4pID09IDApCiArCSAgICB7 CiArCSAgICAgIC8qIHMyID0gYC0le3JlbGVhc2V9LnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0n ICovCi0rCSAgICAgIHMyID0gbWVtcmNociAoZGVidWdpbmZvLCAnLScsIHMgLSBkZWJ1Z2luZm8p OworKwkgICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzIC0gZGVi dWdpbmZvKTsKICsJICAgIH0KICsJICBpZiAoczIpCiArCSAgICB7CiArCSAgICAgIC8qIHMyID0g YC0le3ZlcnNpb259LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KLSsJ ICAgICAgczIgPSBtZW1yY2hyIChkZWJ1Z2luZm8sICctJywgczIgLSBkZWJ1Z2luZm8pOworKwkg ICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzMiAtIGRlYnVnaW5m byk7CiArCSAgICB9CiArCSAgaWYgKCFzMikKICsJICAgIHsKQEAgLTEzMTEsNyArMTI3Niw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwogKwkgIC8qIFJQ TURCSV9QQUNLQUdFUyByZXF1aXJlcyBrZXlsZW4gPT0gc2l6ZW9mIChpbnQpLiAgKi8KICsJICAv KiBSUE1EQklfTEFCRUwgaXMgYW4gaW50ZXJmYWNlIGZvciBOVlItYmFzZWQgZGJpRmluZEJ5TGFi ZWwoKS4gICovCi0rCSAgbWlfZGVidWdpbmZvID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMsIFJQ TURCSV9MQUJFTCwgZGVidWdpbmZvLCAwKTsKKysJICBtaV9kZWJ1Z2luZm8gPSBycG10c0luaXRJ dGVyYXRvcl9wICh0cywgKHJwbVRhZykgUlBNREJJX0xBQkVMLCBkZWJ1Z2luZm8sIDApOwogKwkg IHhmcmVlIChkZWJ1Z2luZm8pOwogKwkgIGlmIChtaV9kZWJ1Z2luZm8pCiArCSAgICB7CkBAIC0x MzYyLDcgKzEzMjcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlk LmMKICsKICsJICAgICAgKnNsb3QgPSBkZWJ1Z2luZm87CiArCi0rCSAgICAgIG1pc3NpbmdfcnBt ID0geG1hbGxvYyAoc2l6ZW9mICgqbWlzc2luZ19ycG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsK KysJICAgICAgbWlzc2luZ19ycG0gPSAoc3RydWN0IG1pc3NpbmdfcnBtICopIHhtYWxsb2MgKHNp emVvZiAoKm1pc3NpbmdfcnBtKSArIHN0cmxlbiAoZGVidWdpbmZvKSk7CiArCSAgICAgIHN0cmNw eSAobWlzc2luZ19ycG0tPnJwbSwgZGVidWdpbmZvKTsKICsJICAgICAgbWlzc2luZ19ycG0tPm5l eHQgPSBtaXNzaW5nX3JwbV9saXN0OwogKwkgICAgICBtaXNzaW5nX3JwbV9saXN0ID0gbWlzc2lu Z19ycG07CkBAIC0xNDAwLDcgKzEzNjUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2J1aWxkLWlkLmMKICsgIGlmIChtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMgPT0gMCkKICsg ICAgcmV0dXJuOwogKwotKyAgYXJyYXkgPSB4bWFsbG9jIChzaXplb2YgKCphcnJheSkgKiBtaXNz aW5nX3JwbV9saXN0X2VudHJpZXMpOworKyAgYXJyYXkgPSAoY2hhciAqKikgeG1hbGxvYyAoc2l6 ZW9mICgqYXJyYXkpICogbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKICsgIGNsZWFudXBzID0g bWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJyYXkpOwogKwogKyAgYXJyYXlfaXRlciA9IGFycmF5OwpA QCAtMTQ4MCw3ICsxNDQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWls ZC1pZC5jCiAgICAgYXZvaWRhbmNlLiAgKi8KICAKICBzdHJ1Y3QgbWlzc2luZ19maWxlcGFpcgot QEAgLTcyMCwxMSArMTA3OSwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9pZCkKK0BA IC03MjAsMTEgKzEwNzksMTcgQEAKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVz dCBmcm9tIG1pc3NpbmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxl cGFpcl9oYXNoID0gTlVMTDsKICAgICAgfQpAQCAtMTQ5OCw3ICsxNDYzLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICBtaXNzaW5nX2ZpbGVwYWlyX2No YW5nZSAoKTsKICB9CiAgCi1AQCAtNzkxLDE0ICsxMTU2LDM5IEBAIGRlYnVnX3ByaW50X21pc3Np bmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwKK0BAIC03OTEsMTQgKzExNTYsMzkgQEAKICAKICAgICpz bG90ID0gbWlzc2luZ19maWxlcGFpcjsKICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1z b2xpYi1taXNzaW5nLWlkcy5wYXRjaAppbmRleCBhODk4OTNjLi5mNGRjY2M5IDEwMDY0NAotLS0g YS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCisrKyBiL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKQEAgLTEsMyArMSw2 IEBACitnZGIgcmV0dXJucyBhbiBpbmNvcnJlY3QgYmFjayB0cmFjZSB3aGVuIGFwcGx5aW5nIGEg ZGVidWdpbmZvCitodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEz Mzk4NjIKKwogSW5kZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvc29saWItc3ZyNC5jCTIw MTUtMDctMDkgMTg6MTg6NTQuNTI2NDE3NzY2ICswMjAwCkBAIC01NywzICs2MCwxNjMgQEAgSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQuYwogIAogIAkgICAgeGZyZWUg KGJ1aWxkX2lkX2ZpbGVuYW1lKTsKICAJICAgIHhmcmVlIChidWlsZF9pZCk7CistLS0gL2Rldi9u dWxsCTIwMTYtMDctMDIgMjA6Mjk6MDEuNjc5NDA0OTQzICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nY29yZS1idWlsZGlkLWV4ZWMtYnV0LW5v dC1zb2xpYi5leHAJMjAxNi0wNy0zMSAyMzowNDo0OS4wNjI3NTM3MjIgKzAyMDAKK0BAIC0wLDAg KzEsMTA1IEBACisrIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisraWYge1tza2lwX3NobGli X3Rlc3RzXX0geworKyAgICByZXR1cm4gMAorK30KKysKKytzZXQgdGVzdGZpbGUgImdjb3JlLWJ1 aWxkaWQtZXhlYy1idXQtbm90LXNvbGliIgorK3NldCBzcmNtYWluZmlsZSAke3Rlc3RmaWxlfS1t YWluLmMKKytzZXQgc3JjbGliZmlsZSAke3Rlc3RmaWxlfS1saWIuYworK3NldCBsaWJmaWxlIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfS1saWIuc29dCisrc2V0IG9iamZpbGUgW3N0 YW5kYXJkX291dHB1dF9maWxlICR7dGVzdGZpbGV9LW1haW4ub10KKytzZXQgZXhlY3V0YWJsZSAk e3Rlc3RmaWxlfS1tYWluCisrc2V0IGJpbmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7ZXhl Y3V0YWJsZX1dCisrc2V0IGdjb3JlZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRh YmxlfS5nY29yZV0KKytzZXQgb3V0ZGlyIFtmaWxlIGRpcm5hbWUgJGJpbmZpbGVdCisrCisraWYg eyBbZ2RiX2NvbXBpbGVfc2hsaWIgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2xpYmZpbGV9ICR7 bGliZmlsZX0gImRlYnVnIGFkZGl0aW9uYWxfZmxhZ3M9LVdsLC0tYnVpbGQtaWQiXSAhPSAiIgor KyAgICAgfHwgW2dkYl9jb21waWxlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNtYWluZmlsZX0g JHtvYmpmaWxlfSBvYmplY3Qge2RlYnVnfV0gIT0gIiIgfSB7CisrICAgICB1bnN1cHBvcnRlZCAi LVdsLC0tYnVpbGQtaWQgY29tcGlsYXRpb24gZmFpbGVkIgorKyAgICAgcmV0dXJuIC0xCisrfQor K3NldCBvcHRzIFtsaXN0IGRlYnVnIHNobGliPSR7bGliZmlsZX0gImFkZGl0aW9uYWxfZmxhZ3M9 LVdsLC0tYnVpbGQtaWQiXQorK2lmIHsgW2dkYl9jb21waWxlICR7b2JqZmlsZX0gJHtiaW5maWxl fSBleGVjdXRhYmxlICRvcHRzXSAhPSAiIiB9IHsKKysgICAgIHVuc3VwcG9ydGVkICItV2wsLS1i dWlsZC1pZCBjb21waWxhdGlvbiBmYWlsZWQiCisrICAgICByZXR1cm4gLTEKKyt9CisrCisrY2xl YW5fcmVzdGFydCAkZXhlY3V0YWJsZQorK2dkYl9sb2FkX3NobGliICRsaWJmaWxlCisrCisrIyBE b2VzIHRoaXMgZ2RiIHN1cHBvcnQgZ2NvcmU/Cisrc2V0IHRlc3QgImhlbHAgZ2NvcmUiCisrZ2Ri X3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgeworKyAgICAtcmUgIlVuZGVmaW5lZCBjb21tYW5k OiAuZ2NvcmUuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSMgZ2NvcmUgY29tbWFuZCBub3Qgc3Vw cG9ydGVkIC0tIG5vdGhpbmcgdG8gdGVzdCBoZXJlLgorKwl1bnN1cHBvcnRlZCAiZ2RiIGRvZXMg bm90IHN1cHBvcnQgZ2NvcmUgb24gdGhpcyB0YXJnZXQiCisrCXJldHVybiAtMTsKKysgICAgfQor KyAgICAtcmUgIlNhdmUgYSBjb3JlIGZpbGUgLipcclxuJGdkYl9wcm9tcHQgJCIgeworKwlwYXNz ICR0ZXN0CisrICAgIH0KKyt9CisrCisraWYgeyAhW3J1bnRvIGxpYl0gfSB0aGVuIHsKKysgICAg cmV0dXJuIC0xCisrfQorKworK3NldCBlc2NhcGVkZmlsZW5hbWUgW3N0cmluZ190b19yZWdleHAg JHtnY29yZWZpbGV9XQorKworK3NldCB0ZXN0ICJzYXZlIGEgY29yZWZpbGUiCisrZ2RiX3Rlc3Rf bXVsdGlwbGUgImdjb3JlICR7Z2NvcmVmaWxlfSIgJHRlc3QgeworKyAgICAtcmUgIlNhdmVkIGNv cmVmaWxlICR7ZXNjYXBlZGZpbGVuYW1lfVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCXBhc3MgJHRl c3QKKysgICAgfQorKyAgICAtcmUgIkNhbid0IGNyZWF0ZSBhIGNvcmVmaWxlXHJcbiRnZGJfcHJv bXB0ICQiIHsKKysJdW5zdXBwb3J0ZWQgJHRlc3QKKysJcmV0dXJuIC0xCisrICAgIH0KKyt9Cisr CisrIyBOb3cgcmVzdGFydCBnZGIgYW5kIGxvYWQgdGhlIGNvcmVmaWxlLgorKworK2NsZWFuX3Jl c3RhcnQgJGV4ZWN1dGFibGUKKytnZGJfbG9hZF9zaGxpYiAkbGliZmlsZQorKworK3NldCBidWls ZGlkIFtidWlsZF9pZF9kZWJ1Z19maWxlbmFtZV9nZXQgJGxpYmZpbGVdCisrCisrcmVnc3ViIHtc LmRlYnVnJH0gJGJ1aWxkaWQge30gYnVpbGRpZAorKworK3NldCBkZWJ1Z2RpciBbc3RhbmRhcmRf b3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0tZGVidWdkaXJdCisrZmlsZSBkZWxldGUgLWZvcmNlIC0t ICRkZWJ1Z2RpcgorKworK2ZpbGUgbWtkaXIgJGRlYnVnZGlyL1tmaWxlIGRpcm5hbWUgJGxpYmZp bGVdCisrZmlsZSBjb3B5ICRsaWJmaWxlICRkZWJ1Z2Rpci8ke2xpYmZpbGV9CisrCisrZmlsZSBt a2RpciAkZGVidWdkaXIvW2ZpbGUgZGlybmFtZSAkYnVpbGRpZF0KKytmaWxlIGNvcHkgJGxpYmZp bGUgJGRlYnVnZGlyLyR7YnVpbGRpZH0KKysKKytyZW1vdGVfZXhlYyBidWlsZCAibG4gLXMgL2xp YiAgICAgICAke2RlYnVnZGlyfS8iCisrcmVtb3RlX2V4ZWMgYnVpbGQgImxuIC1zIC9saWI2NCAg ICAgJHtkZWJ1Z2Rpcn0vIgorKyMgL3VzciBpcyBub3QgbmVlZGVkLCBhbGwgdGhlIGxpYnMgYXJl IGluIC9saWI2NDogbGlibS5zby42IGxpYmMuc28uNiBsZC1saW51eC14ODYtNjQuc28uMgorKwor K2dkYl90ZXN0ICJzZXQgc29saWItYWJzb2x1dGUtcHJlZml4ICRkZWJ1Z2RpciIKKysKKytnZGJf dGVzdF9ub19vdXRwdXQgInNldCBkZWJ1Zy1maWxlLWRpcmVjdG9yeSAkZGVidWdkaXIiICJzZXQg ZGVidWctZmlsZS1kaXJlY3RvcnkiCisrCisrZ2RiX3Rlc3QgImNvcmUgJHtnY29yZWZpbGV9IiAi Q29yZSB3YXMgZ2VuZXJhdGVkIGJ5IC4qIiAicmUtbG9hZCBnZW5lcmF0ZWQgY29yZWZpbGUiCisr CisrZ2RiX3Rlc3QgImZyYW1lIiAiIzAgXFteXHJcblxdKiBsaWIgLioiICJsaWJyYXJ5IGdvdCBs b2FkZWQiCisrCisrZ2RiX3Rlc3QgImJ0IgorK2dkYl90ZXN0ICJpbmZvIHNoYXJlZCIKKy0tLSAv ZGV2L251bGwJMjAxNi0wNy0wMiAyMDoyOTowMS42Nzk0MDQ5NDMgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcyMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLWJ1aWxkaWQtZXhlYy1i dXQtbm90LXNvbGliLW1haW4uYwkyMDE2LTA3LTI4IDIxOjA2OjQwLjk3Nzc4NjkyMiArMDIwMAor QEAgLTAsMCArMSwyNSBAQAorKy8qIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrZXh0ZXJuIHZvaWQgbGliICh2 b2lkKTsKKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysgIGxpYiAoKTsKKysgIHJldHVybiAw OworK30KKy0tLSAvZGV2L251bGwJMjAxNi0wNy0wMiAyMDoyOTowMS42Nzk0MDQ5NDMgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcyMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLWJ1 aWxkaWQtZXhlYy1idXQtbm90LXNvbGliLWxpYi5jCTIwMTYtMDctMjggMjE6MDY6NDAuOTc3Nzg2 OTIyICswMjAwCitAQCAtMCwwICsxLDIxIEBACisrLyogQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKyt2b2lkCisr bGliICh2b2lkKQorK3sKKyt9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5w YXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKaW5kZXggYjI1YWQ4ZS4uZmY3Nzc3 NSAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAorKysgYi9nZGItNi42 LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv Y29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIv Y29yZWxvdy5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL2NvcmVsb3cuYwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5 NSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE2 LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAxNDozNDozMi4wMjI3NTM1ODIgKzAyMDAKIEBAIC00 NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJnZGJfYmZkLmgiCiAgI2luY2x1ZGUgImNvbXBsZXRl ci5oIgpAQCAtOTQsMTEgKzk0LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv Y29yZWxvdy5jCiArCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNo b3dsaXN0KTsKICB9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2RvYy9nZGIudGV4 aW5mbworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvZ2RiLnRleGluZm8KID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9kb2MvZ2RiLnRleGlu Zm8JMjAxNi0wMi0xNSAyMzoyNTozNi40NTU1OTg5NTggKzAxMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTYtMDItMTUgMjM6MjY6MDYuMzYyODExMzAy ICswMTAwCi1AQCAtMTg2ODQsNiArMTg2ODQsMjcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1Mjgg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTYt MDctMDMgMTQ6MzQ6MzIuMDMwNzUzNjUxICswMjAwCitAQCAtMTg5MTYsNiArMTg5MTYsMjcgQEAK ICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjYsMTAgKzEyNiwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1 Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBs aW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUgbmFtZWQKLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjkwLjIwMTYwMjExLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1 OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMJ MjAxNi0wMi0xNSAyMzoyNjo0Ni42MTMwOTcwODMgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDYzMC5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1Mjgg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5jCTIwMTYtMDct MDMgMTQ6MzQ6MzIuMDMxNzUzNjU5ICswMjAwCiBAQCAtNDUsNiArNDUsNyBAQAogICNpbmNsdWRl ICJhdXh2LmgiCiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKQEAgLTE5NCwxMCArMTk0LDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc29saWItc3ZyNC5jCiAgICAgICAgeGZyZWUg KGJ1ZmZlcik7CiAgCiAgICAgICAgLyogSWYgdGhpcyBlbnRyeSBoYXMgbm8gbmFtZSwgb3IgaXRz IG5hbWUgbWF0Y2hlcyB0aGUgbmFtZQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9l bGZyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZWxmcmVhZC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTYt MDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2VsZnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI2OjA2LjM2NDgxMTMxNiArMDEwMAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4 LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9lbGZyZWFkLmMJ MjAxNi0wNy0wMyAxNDozNDozMi4wMzE3NTM2NTkgKzAyMDAKIEBAIC0xMjU5LDkgKzEyNTksMTAg QEAKICAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSA9PSBOVUxMCiAgCSAg ICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgPT0gTlVMTCkKQEAg LTIyNCwxMSArMjI0LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZWxmcmVh ZC5jCiAgICAgIH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3N5bWZp bGUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zeW1maWxlLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNi0wMi0x NSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv c3ltZmlsZS5oCTIwMTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2Mzk1ICswMTAwCi1AQCAtNTg0LDYg KzU4NCwxMCBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3N5bWZpbGUuaAky MDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9zeW1maWxlLmgJMjAxNi0wNy0wMyAxNDozNDozMi4wMzI3NTM2NjggKzAyMDAKK0BA IC01ODksNiArNTg5LDEwIEBACiAgdm9pZCBtYXBfc3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2Zp bGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEsCiAgCQkJICAgaW50IG5lZWRfZnVsbG5hbWUp OwogIApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9zeW1maWxlLmgKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAogIC8qIE5hbWVzIGZvciBh IGR3YXJmMiBkZWJ1Z2dpbmcgc2VjdGlvbi4gIFRoZSBmaWVsZCBOT1JNQUwgaXMgdGhlIG5vcm1h bAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTAyLTE1IDIzOjI2 OjQ2LjUxNjA5NjM5NSArMDEwMAotQEAgLTE2NDAsNiArMTY0MCwxNiBAQAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0 OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKK0BA IC0xNjQxLDYgKzE2NDEsMTYgQEAKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lk dGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjYwLDExICsyNjAsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICAgICAgcmV0dXJuIDAK ICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvbWkt c3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9y aWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44 NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAotQEAg LTIwNCw2ICsyMDQsMTYgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0 c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9y dC5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKK0BAIC0zMDksNiArMzA5 LDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0gewogIAkgICAgd2Fybmlu ZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yNzksMTIg KzI3OSwxMiBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIv bWktc3VwcG9ydC5leHAKICsJfQogKyAgICB9CiAgCi0gICAgICMgQ3JlYXRlIHRoZSBuZXcgUFRZ IGZvciB0aGUgaW5mZXJpb3IgcHJvY2Vzcy4KICAgICAgaWYgeyAkc2VwYXJhdGVfaW5mZXJpb3Jf cHR5IH0gewotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9vYmpmaWxlcy5oCisgCW1p X2NyZWF0ZV9pbmZlcmlvcl9wdHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvb2Jq ZmlsZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL29i amZpbGVzLmgJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvb2JqZmlsZXMuaAkyMDE2LTAyLTE1IDIzOjI2OjA2LjM2NjgxMTMz MCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAx Ni0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvb2JqZmlsZXMuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzNDc1MzY4NSArMDIwMAogQEAg LTQ4OSw2ICs0ODksMTAgQEAKICAKICAjZGVmaW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYp CkBAIC0yOTYsMTAgKzI5NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL29i amZpbGVzLmgKICAvKiBEZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyBkZWZpbmVkIGluIG9iamZp bGVzLmMgKi8KICAKICBleHRlcm4gc3RydWN0IG9iamZpbGUgKmFsbG9jYXRlX29iamZpbGUgKGJm ZCAqLCBjb25zdCBjaGFyICpuYW1lLCBpbnQpOwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29y ZWZpbGUuZXhwCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0w Mi0xNSAyMzoyNjo1NS4xNzgxNTc4OTYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTYtMDctMDMgMTQ6MzM6 MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzQ3NTM2ODUgKzAy MDAKIEBAIC0yOTMsMyArMjkzLDMzIEBACiAgCXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzM0LDEw ICszMzQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvY29yZWZpbGUuZXhwCiArICAgIGdkYl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhl YyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5nX3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRd JywgZmlsZSB0eXBlIC4qIgogKyAgICBwYXNzICR3aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9y aWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsr KyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwkyMDE2LTAyLTE1IDIzOjI2OjQ2 LjUxNjA5NjM5NSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxk LWlkLmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvYnVpbGQtaWQuYwkyMDE2LTA3LTAzIDE0OjM2OjUwLjEyNDkzODE4NyAr MDIwMAogQEAgLTI2LDExICsyNiw2NyBAQAogICNpbmNsdWRlICJvYmpmaWxlcy5oIgogICNpbmNs dWRlICJmaWxlbmFtZXMuaCIKQEAgLTM4NSwxMCArMzg1LDEwIEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwogKwkgICYmIG1lbWNtcCAoeG5wLT5uYW1lLCAiR05V Iiwgc2l6ZW9mICJHTlUiKSA9PSAwKQogKwl7CiArCSAgc2l6ZV90IHNpemUgPSBkZXNjc3o7Ci0r CSAgZ2RiX2J5dGUgKmRhdGEgPSAodm9pZCAqKSBkZXNjZGF0YTsKKysJICBnZGJfYnl0ZSAqZGF0 YSA9IChnZGJfYnl0ZSAqKSBkZXNjZGF0YTsKICsJICBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpyZXR2 YWw7CiArCi0rCSAgcmV0dmFsID0geG1hbGxvYyAoc2l6ZW9mICpyZXR2YWwgLSAxICsgc2l6ZSk7 CisrCSAgcmV0dmFsID0gKHN0cnVjdCBiZmRfYnVpbGRfaWQgKikgeG1hbGxvYyAoc2l6ZW9mICpy ZXR2YWwgLSAxICsgc2l6ZSk7CiArCSAgcmV0dmFsLT5zaXplID0gc2l6ZTsKICsJICBtZW1jcHkg KHJldHZhbC0+ZGF0YSwgZGF0YSwgc2l6ZSk7CiArCkBAIC00MjksNyArNDI5LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCWdkYl9ieXRlICpidWY7CiAr CWludCBlcnI7CiArCi0rCWJ1ZiA9IHhtYWxsb2MgKGhkci0+cF9maWxlc3opOworKwlidWYgPSAo Z2RiX2J5dGUgKikgeG1hbGxvYyAoaGRyLT5wX2ZpbGVzeik7CiArCWVyciA9IHRhcmdldF9yZWFk X21lbW9yeSAobG9hZGJhc2UgKyBpX3BoZHJbaV0ucF92YWRkciwgYnVmLAogKwkJCQkgIGhkci0+ cF9maWxlc3opOwogKwlpZiAoZXJyID09IDApCkBAIC02MzMsOCArNjMzLDggQEAgSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArICB4X3BoZHJzX3NpemUgPSAoYmZk X2dldF9hcmNoX3NpemUgKHRlbXBsKSA9PSA2NCA/IHNpemVvZiAoRWxmNjRfRXh0ZXJuYWxfUGhk cikKICsJCQkJCQk6IHNpemVvZiAoRWxmMzJfRXh0ZXJuYWxfUGhkcikpOwogKwotKyAgaV9waGRy cyA9IHhtYWxsb2MgKGlfZWhkci5lX3BobnVtICogKHNpemVvZiAqaV9waGRycyArIHhfcGhkcnNf c2l6ZSkpOwotKyAgeF9waGRyc19wdHIgPSAodm9pZCAqKSAmaV9waGRyc1tpX2VoZHIuZV9waG51 bV07CisrICBpX3BoZHJzID0gKEVsZl9JbnRlcm5hbF9QaGRyICopIHhtYWxsb2MgKGlfZWhkci5l X3BobnVtICogKHNpemVvZiAqaV9waGRycyArIHhfcGhkcnNfc2l6ZSkpOworKyAgeF9waGRyc19w dHIgPSAoZ2RiX2J5dGUgKikgJmlfcGhkcnNbaV9laGRyLmVfcGhudW1dOwogKyAgZXJyID0gdGFy Z2V0X3JlYWRfbWVtb3J5IChlaGRyX3ZtYSArIGlfZWhkci5lX3Bob2ZmLCAoYmZkX2J5dGUgKikg eF9waGRyc19wdHIsCiArCQkJICAgIGlfZWhkci5lX3BobnVtICogeF9waGRyc19zaXplKTsKICsg IGlmIChlcnIpCkBAIC03MDAsNyArNzAwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9idWlsZC1pZC5jCiArICAgIHsKICsgICAgICBzdHJ1Y3QgYnVpbGRfaWRfYWRkcl9zZWN0 ICpjYW5kaWRhdGU7CiArCi0rICAgICAgY2FuZGlkYXRlID0geG1hbGxvYyAoc2l6ZW9mICpjYW5k aWRhdGUpOworKyAgICAgIGNhbmRpZGF0ZSA9IChzdHJ1Y3QgYnVpbGRfaWRfYWRkcl9zZWN0ICop IHhtYWxsb2MgKHNpemVvZiAqY2FuZGlkYXRlKTsKICsgICAgICBjYW5kaWRhdGUtPm5leHQgPSBi dWlsZF9pZF9hZGRyX3NlY3Q7CiArICAgICAgYnVpbGRfaWRfYWRkcl9zZWN0ID0gY2FuZGlkYXRl OwogKyAgICAgIGNhbmRpZGF0ZS0+c2VjdCA9IHNlY3Q7CkBAIC04MjUsNyArODI1LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiAtCSAgICAgICArIChzaXpl b2YgIi8uYnVpbGQtaWQvIiAtIDEpICsgMQogLQkgICAgICAgKyAyICogYnVpbGRfaWRfbGVuICsg KHNpemVvZiAiLmRlYnVnIiAtIDEpICsgMSk7CiAtICBsaW5rID0gKGNoYXIgKikgYWxsb2NhIChh bGxvY19sZW4pOwotKyAgbGluayA9IHhtYWxsb2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3Rv cnkpICsgMiAqIGJ1aWxkX2lkX2xlbiArIDUwKTsKKysgIGxpbmsgPSAoY2hhciAqKSB4bWFsbG9j IChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSArIDIgKiBidWlsZF9pZF9sZW4gKyA1MCk7 CiAgCiAgICAvKiBLZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgc28gdGhhdCBERUJVR19GSUxF X0RJUkVDVE9SWSBiZWluZyAiIiB3aWxsCiAgICAgICBjYXVzZSAiLy5idWlsZC1pZC8uLi4iIGxv b2t1cHMuICAqLwpAQCAtOTM3LDggKzkzNyw4IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvYnVpbGQtaWQuYwogKwl7CiArCSAgc2l6ZV90IGxlbl9vcmlnID0gc3RybGVuIChsaW5r X2FsbCk7CiArCi0rCSAgbGlua19hbGwgPSB4cmVhbGxvYyAobGlua19hbGwsCi0rCQkJICAgICAg IGxlbl9vcmlnICsgMSArIHN0cmxlbiAobGluazBfcmVzb2x2ZWQpICsgMSk7CisrCSAgbGlua19h bGwgPSAoY2hhciAqKSB4cmVhbGxvYyAobGlua19hbGwsCisrCQkJCQlsZW5fb3JpZyArIDEgKyBz dHJsZW4gKGxpbmswX3Jlc29sdmVkKSArIDEpOwogKwogKwkgIC8qIFVzZSB3aGl0ZXNwYWNlIGlu c3RlYWQgb2YgRElSTkFNRV9TRVBBUkFUT1IgdG8gYmUgY29tcGF0aWJsZSB3aXRoCiArCSAgICAg aXRzIHBvc3NpYmxlIHVzZSBhcyBhbiBhcmd1bWVudCBmb3IgaW5zdGFsbGF0aW9uIGNvbW1hbmQu ICAqLwpAQCAtMTA5NSw5ICsxMDk1LDkgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9idWlsZC1pZC5jCiArICBpZiAoKnNsb3QgIT0gTlVMTCkKICsgICAgcmV0dXJuOwogKwotKyAg bWlzc2luZ19maWxlcGFpciA9IG9ic3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3Rh Y2ssCi0rCQkJCSAgICAgIHNpemVvZiAoKm1pc3NpbmdfZmlsZXBhaXIpIC0gMQotKwkJCQkgICAg ICArIGJpbmFyeV9sZW4wICsgZGVidWdfbGVuMCk7CisrICBtaXNzaW5nX2ZpbGVwYWlyID0gKHN0 cnVjdCBtaXNzaW5nX2ZpbGVwYWlyICopIG9ic3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWly X29ic3RhY2ssCisrCQkJCQkJCQlzaXplb2YgKCptaXNzaW5nX2ZpbGVwYWlyKSAtIDEKKysJCQkJ CQkJCSsgYmluYXJ5X2xlbjAgKyBkZWJ1Z19sZW4wKTsKICsgIG1pc3NpbmdfZmlsZXBhaXItPmJp bmFyeSA9IG1pc3NpbmdfZmlsZXBhaXItPmRhdGE7CiArICBtZW1jcHkgKG1pc3NpbmdfZmlsZXBh aXItPmJpbmFyeSwgYmluYXJ5LCBiaW5hcnlfbGVuMCk7CiArICBpZiAoZGVidWcgIT0gTlVMTCkK QEAgLTExNjYsMTAgKzExNjYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9i dWlsZC1pZC5jCiArCiArICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1 Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvYnVpbGQtaWQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWls ZC1pZC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvYnVp bGQtaWQuaAkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5oCTIwMTYtMDItMTUgMjM6MjY6MDYuMzY4ODExMzQ1 ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE2 LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9idWlsZC1pZC5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDM1NzUzNjk0ICswMjAwCiBAQCAt MjAsOSArMjAsMTAgQEAKICAjaWZuZGVmIEJVSUxEX0lEX0gKICAjZGVmaW5lIEJVSUxEX0lEX0gK QEAgLTEyMDQsMTEgKzEyMDQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9i dWlsZC1pZC5oCiArCQkJCQkgICAgICAgY2hhciAqKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybik7 CiAgCiAgI2VuZGlmIC8qIEJVSUxEX0lEX0ggKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJm MnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI1OjM2LjQ2MTU5OTAwMSArMDEwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzM4 MTEzODAgKzAxMDAKLUBAIC0yNTE2LDcgKzI1MTYsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wNy0w MyAxNDozNDozMi4wNDA3NTM3MzYgKzAyMDAKK0BAIC0yNTM1LDcgKzI1MzUsNyBAQAogICAgICB9 CiAgCiAgICBpZiAoZHd6X2JmZCA9PSBOVUxMKQpAQCAtMTIxNywxMSArMTIxNywxMSBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAgaWYgKGR3el9i ZmQgPT0gTlVMTCkKICAgICAgZXJyb3IgKF8oImNvdWxkIG5vdCBmaW5kICcuZ251X2RlYnVnYWx0 bGluaycgZmlsZSBmb3IgJXMiKSwKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcHl0 aG9uL3B5LW9iamZpbGUuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24v cHktb2JqZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9n ZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYt MDItMTUgMjM6MjY6MDYuMzczODExMzgwICswMTAwCi1AQCAtMTM5LDcgKzEzOSw3IEBACistLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTA3 LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDQwNzUzNzM2ICswMjAw CitAQCAtMTM2LDcgKzEzNiw3IEBACiAgCiAgICBUUlkKICAgICAgewpAQCAtMTIzMCw3ICsxMjMw LDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9weXRob24vcHktb2JqZmlsZS5j CiAgICAgIH0KICAgIENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewotQEAg LTU0OCw3ICs1NDgsNyBAQAorQEAgLTU0Nyw3ICs1NDcsNyBAQAogICAgICAgIC8qIERvbid0IHJl dHVybiBzZXBhcmF0ZSBkZWJ1ZyBmaWxlcy4gICovCiAgICAgICAgaWYgKG9iamZpbGUtPnNlcGFy YXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgIT0gTlVMTCkKICAJY29udGludWU7CkBAIC0xMjM5 LDExICsxMjM5LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcHl0aG9uL3B5 LW9iamZpbGUuYwogICAgICAgIGlmIChvYmZkX2J1aWxkX2lkID09IE5VTEwpCiAgCWNvbnRpbnVl OwogICAgICAgIGlmIChvYmpmcHlfYnVpbGRfaWRfbWF0Y2hlcyAob2JmZF9idWlsZF9pZCwgYnVp bGRfaWQpKQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb2ZmcmVhZC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9jb2ZmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6 MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvZmZyZWFk LmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzQ4MTEzODcgKzAxMDAKLUBAIC03MzksNyArNzM5LDcg QEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb2ZmcmVhZC5jCTIwMTYtMDct MDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2NvZmZyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wNDE3NTM3NDUgKzAyMDAKK0BAIC03Mzcs NyArNzM3LDcgQEAKICAgICAgewogICAgICAgIGNoYXIgKmRlYnVnZmlsZTsKICAKCmRpZmYgLS1n aXQgYS9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2ggYi9nZGIt Ni44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKaW5kZXggYTBjNDcyYi4u NDRiODMxMSAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9w cGVkLnBhdGNoCisrKyBiL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5w YXRjaApAQCAtMSw3ICsxLDggQEAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2 LW9yaWcvZ2RiL2luZnJ1bi5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pbmZydW4uYwotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2luZnJ1bi5jCTIwMTYtMDEtMDkgMTU6MDU6 MDYuMTI3NDgxNzU4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2luZnJ1bi5j CTIwMTYtMDEtMDkgMTU6MDU6MjQuMDU0NTkzMDQ4ICswMTAwCi1AQCAtNjI2LDYgKzYyNiwxMyBA QCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0IGRlCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2luZnJ1bi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvaW5mcnVuLmMJMjAxNi0wNy0xNiAxNDozNzowOS4zMTcxNzgxNTAg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaW5mcnVuLmMJMjAxNi0wNy0xNiAx NDozNzoxMC42MzYxODg3NjUgKzAyMDAKK0BAIC02MjAsNiArNjIwLDEzIEBACiAgCQkJCXRhcmdl dF9waWRfdG9fc3RyIChwcm9jZXNzX3B0aWQpKTsKICAJICAgIH0KICAKQEAgLTE1LDEwICsxNiwx MSBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9pbmZydW4u YyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaQogIAkgIHRhcmdldF9kZXRhY2ggKE5VTEwsIDAp OwogIAl9CiAgCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9s aW51eC1uYXQuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgtbmF0LmMKLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE2LTAxLTA5IDE1OjA1OjA2 LjIyNTQ4MjM2NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQu YwkyMDE2LTAxLTA5IDE1OjA1OjI0LjA1MDU5MzAyMyArMDEwMAotQEAgLTE5NCw2ICsxOTQsMTEg QEAgZW51bSB0cmlib29sIGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9IFRSSQorSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9saW51eC1uYXQuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6Mzc6MDkuMzIw MTc4MTc0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xpbnV4LW5hdC5jCTIw MTYtMDctMTYgMTQ6Mzg6MDkuNTc0NjYzMDk0ICswMjAwCitAQCAtMTk0LDYgKzE5NCwxMSBAQAog IHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyAqbGludXhfb3BzOwogIHN0YXRpYyBzdHJ1Y3QgdGFy Z2V0X29wcyBsaW51eF9vcHNfc2F2ZWQ7CiAgCkBAIC0zMCw3ICszMiw3IEBAIGRpZmYgLWR1cCAt cnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkCiAgLyogVGhlIG1ldGhvZCB0byBjYWxsLCBpZiBhbnksIHdoZW4gYSBuZXcg dGhyZWFkIGlzIGF0dGFjaGVkLiAgKi8KICBzdGF0aWMgdm9pZCAoKmxpbnV4X25hdF9uZXdfdGhy ZWFkKSAoc3RydWN0IGx3cF9pbmZvICopOwogIAotQEAgLTk2MSw2ICs5NjYsOSBAQCBsaW51eF9u YXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90IHB0aWQsCitAQCAtMTA0Nyw2ICsxMDUyLDkgQEAK ICAgICAgICBpZiAoZGVidWdfbGludXhfbmF0KQogIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRsb2csCiAgCQkJICAgICJMTlBBVzogQXR0YWNoaW5nIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4i KTsKQEAgLTQwLDggKzQyLDggQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYt b3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAKICAgICAgICAv KiBUaGUgcHJvY2VzcyBpcyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250 cm9sCiAgCSBzdG9wLCB1bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVE IC8KLUBAIC0xMzAzLDYgKzEzMTEsMjUgQEAgZ2V0X3BlbmRpbmdfc3RhdHVzIChzdHJ1Y3QgbHdw X2luZm8gKmxwLAotIAkJCSAgICBnZGJfc2lnbmFsX3RvX3N0cmluZyAoc2lnbm8pKTsKK0BAIC0x NDA0LDYgKzE0MTIsMjUgQEAKKyAgICAgICByZXR1cm4gZ2RiX3NpZ25hbF90b19ob3N0IChzaWdu byk7CiAgICAgIH0KICAKICsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUApAQCAtNjYsMTggKzY4 LDE4IEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4 LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkCiAgICByZXR1cm4gMDsKICB9CiAgCi1AQCAt MTQxNiw2ICsxNDQzLDEwIEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpv cHMKLSAgICAgfQotICAgZWxzZQotICAgICBsaW51eF9vcHMtPnRvX2RldGFjaCAob3BzLCBhcmdz LCBmcm9tX3R0eSk7Ci0rI2lmZGVmIE5FRURfREVUQUNIX1NJR1NUT1AKK0BAIC0xNTYyLDYgKzE1 ODksMTAgQEAKKyAgICAgICBkZXRhY2hfb25lX2x3cCAobWFpbl9sd3AsICZzaWdubyk7CisgCisg ICAgICAgaW5mX3B0cmFjZV9kZXRhY2hfc3VjY2VzcyAob3BzKTsKICsKLSsgIHBpZF93YXNfc3Rv cHBlZCA9IDA7CisrI2lmZGVmIE5FRURfREVUQUNIX1NJR1NUT1AKKysgICAgICBwaWRfd2FzX3N0 b3BwZWQgPSAwOwogKyNlbmRpZgorICAgICB9CisgICBkZWxldGVfbHdwIChtYWluX2x3cC0+cHRp ZCk7CiAgfQotIAotIC8qIFJlc3VtZSBleGVjdXRpb24gb2YgdGhlIGluZmVyaW9yIHByb2Nlc3Mu ICBJZiBTVEVQIGlzIG5vbnplcm8sCi1AQCAtMTY3NCw2ICsxNzA1LDE2IEBAIGxpbnV4X25hdF9y ZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKK0BAIC0xODIzLDYgKzE4NTQsMTYgQEAKICAg ICAgICByZXR1cm47CiAgICAgIH0KICAKQEAgLTk0LDcgKzk2LDcgQEAgZGlmZiAtZHVwIC1ydXAg Z2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2QKICAgIGlmIChyZXN1bWVfbWFueSkKICAgICAgaXRlcmF0ZV9vdmVyX2x3cHMgKHB0 aWQsIGxpbnV4X25hdF9yZXN1bWVfY2FsbGJhY2ssIGxwKTsKICAKLUBAIC0zNjE4LDYgKzM2NTks MTAgQEAgbGludXhfbmF0X21vdXJuX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0XworQEAgLTM4MTks NiArMzg2MCwxMCBAQAogIAogICAgLyogTGV0IHRoZSBhcmNoLXNwZWNpZmljIG5hdGl2ZSBjb2Rl IGtub3cgdGhpcyBwcm9jZXNzIGlzIGdvbmUuICAqLwogICAgbGludXhfbmF0X2ZvcmdldF9wcm9j ZXNzIChwaWQpOwpAQCAtMTA1LDEwICsxMDcsMTEgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAu NTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QK ICB9CiAgCiAgLyogQ29udmVydCBhIG5hdGl2ZS9ob3N0IHNpZ2luZm8gb2JqZWN0LCBpbnRvL2Zy b20gdGhlIHNpZ2luZm8gaW4gdGhlCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEw Ni1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQu ZXhwCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJl YWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE2LTAxLTA2IDAyOjQ4OjM4LjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0 YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDEtMDkgMTU6MDU6NDguOTE3NzQ3MTAxICswMTAwCi1AQCAt NTYsNyArNTYsNjUgQEAgcHJvYyBjb3JlZnVuYyB7IHRocmVhZHR5cGUgfSB7CitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBl ZC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDctMTYgMTQ6Mzc6MDku MzIxMTc4MTgyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNi0wNy0xNiAxNDozNzoxMC42NDAxODg3 OTcgKzAyMDAKK0BAIC01Niw3ICs1Niw2NSBAQAogICAgICBnZGJfcmVpbml0aWFsaXplX2RpciAk c3JjZGlyLyRzdWJkaXIKICAgICAgZ2RiX2xvYWQgJHtiaW5maWxlfQogIAoKZGlmZiAtLWdpdCBh L2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2ggYi9nZGItNi44LXF1aXQtbmV2ZXItYWJv cnRzLnBhdGNoCmluZGV4IDQ3ZTFjNjQuLjU1ZTcxNGUgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtcXVp dC1uZXZlci1hYm9ydHMucGF0Y2gKKysrIGIvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRj aApAQCAtNSwzOCArNSw0MiBAQCBTb21lIG9mIHRoZSB0aHJlYWRzIG1heSBub3QgYmUgcHJvcGVy bHkgUFRSQUNFX0RFVEFDSGVkIHdoaWNoIGh1cnRzIGlmIHRoZXkKIHNob3VsZCBoYXZlIGJlZW4g ZGV0YWNoZWQgd2l0aCBTSUdTVE9QIChhcyB0aGV5IGFyZSBhY2NpZGVudGFsbHkgbGVmdCBydW5u aW5nCiBvbiB0aGUgZGVidWdnZXIgdGVybWluYXRpb24pLgogCi1kaWZmIC1kdXAgLXJ1cCBnZGIt Ny4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9kZWZzLmggZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2RlZnMuaAotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2RlZnMuaAkyMDE2LTAx LTA5IDE1OjA2OjU3LjY1ODE3Mjg3NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9kZWZzLmgJMjAxNi0wMS0wOSAxNTowNzoxMi40MzEyNjQzNzggKzAxMDAKLUBAIC0xNDUsNiAr MTQ1LDkgQEAgZXh0ZXJuIHZvaWQgc2V0X3F1aXRfZmxhZyAodm9pZCk7CitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL2RlZnMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL2RlZnMuaAkyMDE2LTA3LTAzIDE2OjQwOjQzLjQyMzA3ODkyNiArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kZWZzLmgJMjAxNi0wNy0wMyAxNjo0MTow OC41NjgyNzE3NDEgKzAyMDAKK0BAIC0xNzUsNiArMTc1LDEwIEBACiAgLyogRmxhZyB0aGF0IGZ1 bmN0aW9uIHF1aXQgc2hvdWxkIGNhbGwgcXVpdF9mb3JjZS4gICovCiAgZXh0ZXJuIHZvbGF0aWxl IGludCBzeW5jX3F1aXRfZm9yY2VfcnVuOwogIAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9Q CiArZXh0ZXJuIGludCBxdWl0X2ZsYWdfY2xlYW51cDsKICsjZW5kaWYKLSBleHRlcm4gaW50IGlt bWVkaWF0ZV9xdWl0OwotIAorKwogIGV4dGVybiB2b2lkIHF1aXQgKHZvaWQpOwotZGlmZiAtZHVw IC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZXh0ZW5zaW9uLmMgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2V4dGVuc2lvbi5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3Jp Zy9nZGIvZXh0ZW5zaW9uLmMJMjAxNi0wMS0wNiAwMjo0ODozNy4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZXh0ZW5zaW9uLmMJMjAxNi0wMS0wOSAxNTowNzox Mi40MzQyNjQzOTYgKzAxMDAKLUBAIC04MzMsNiArODMzLDExIEBAIGNoZWNrX3F1aXRfZmxhZyAo dm9pZCkKKyAKKyAvKiBIZWxwZXIgZm9yIHRoZSBRVUlUIG1hY3JvLiAgKi8KK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvZXh0ZW5zaW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4x MS41MC4yMDE2MDYzMC5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2OjQwOjQxLjcy MzA2NTg5MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYwky MDE2LTA3LTAzIDE2OjQxOjQ0Ljg5NjU1MDMwOSArMDIwMAorQEAgLTgzMCw2ICs4MzAsMTEgQEAK ICAgIGludCBpLCByZXN1bHQgPSAwOwogICAgY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFn ZV9kZWZuICpleHRsYW5nOwogIAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9QCiArICBpZiAo cXVpdF9mbGFnX2NsZWFudXApCiArICAgIHJldHVybiAwOwotKwogKyNlbmRpZgorKwogICAgQUxM X0VOQUJMRURfRVhURU5TSU9OX0xBTkdVQUdFUyAoaSwgZXh0bGFuZykKICAgICAgewogICAgICAg IGlmIChleHRsYW5nLT5vcHMtPmNoZWNrX3F1aXRfZmxhZyAhPSBOVUxMKQotZGlmZiAtZHVwIC1y dXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMgZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3RvcC5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMJMjAx Ni0wMS0wNiAwMjo0ODozOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvdG9wLmMJMjAxNi0wMS0wOSAxNTowNzoxMi40MzIyNjQzODQgKzAxMDAKLUBAIC0xNTU3 LDcgKzE1NTcsMTMgQEAgcXVpdF9mb3JjZSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90b3AuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDEuNzI0MDY1 ODk4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RvcC5jCTIwMTYtMDctMDMg MTY6NDA6NDMuNDI0MDc4OTM0ICswMjAwCitAQCAtMTYxNyw3ICsxNjE3LDEzIEBACiAgICBxdC5h cmdzID0gYXJnczsKICAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7CiAgCkBAIC01MCwyMCArNTQs MjEgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RvcC4KICAKICAgIC8qIEdldCBvdXQgb2YgdGZpbmQg bW9kZSwgYW5kIGtpbGwgb3IgZGV0YWNoIGFsbCBpbmZlcmlvcnMuICAqLwogICAgVFJZCi1kaWZm IC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi91dGlscy5jIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi91dGlscy5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9n ZGIvdXRpbHMuYwkyMDE2LTAxLTA5IDE1OjA2OjU3LjY1NDE3Mjg1MCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi91dGlscy5jCTIwMTYtMDEtMDkgMTU6MDc6MTIuNDMzMjY0Mzkw ICswMTAwCi1AQCAtMTIyLDYgKzEyMiwxMyBAQCBpbnQgam9iX2NvbnRyb2w7CitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41 MC4yMDE2MDYzMC5vcmlnL2dkYi91dGlscy5jCTIwMTYtMDctMDMgMTY6NDA6NDEuNzI1MDY1OTA1 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAx Njo0MTozOC45NjE1MDQ3OTkgKzAyMDAKK0BAIC0xMDksNiArMTA5LDEzIEBACiAgCi0gaW50IGlt bWVkaWF0ZV9xdWl0OworIGludCBqb2JfY29udHJvbDsKICAKICsjaWZkZWYgTkVFRF9ERVRBQ0hf U0lHU1RPUAogKy8qIE5vbnplcm8gbWVhbnMgd2UgYXJlIGFscmVhZHkgcHJvY2Vzc2luZyB0aGUg cXVpdHRpbmcgY2xlYW51cHMgYW5kIHdlIHNob3VsZAogKyAgIG5vIGxvbmdlciBnZXQgYWJvcnRl ZC4gICovCiArCiAraW50IHF1aXRfZmxhZ19jbGVhbnVwOwotKwogKyNlbmRpZgorKwogIC8qIE5v bnplcm8gbWVhbnMgdGhhdCBzdHJpbmdzIHdpdGggY2hhcmFjdGVyIHZhbHVlcyA+MHg3RiBzaG91 bGQgYmUgcHJpbnRlZAogICAgIGFzIG9jdGFsIGVzY2FwZXMuICBaZXJvIG1lYW5zIGp1c3QgcHJp bnQgdGhlIHZhbHVlIChlLmcuIGl0J3MgYW4KICAgICBpbnRlcm5hdGlvbmFsIGNoYXJhY3Rlciwg YW5kIHRoZSB0ZXJtaW5hbCBvciB3aW5kb3cgY2FuIGNvcGUuKSAgKi8KCmRpZmYgLS1naXQgYS9n ZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaCBiL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCmlu ZGV4IGZhNjAzODAuLjdmN2UxODQgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBh dGNoCisrKyBiL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJy YXkuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRh L3BhY2tlZF9hcnJheS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTYtMDItMTUgMjM6 MzM6MjkuODMwOTU5OTcyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yODk5OTk4 NDYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9h cnJheS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzYxNzI4ODkgKzAyMDAKIEBAIC01Niw1ICs1 NiwxMSBAQAogICAgICAgICAgIyBhcmUuICBPYnNlcnZlZCB3aXRoIChGU0YgR05VIEFkYSA0LjUu MyAyMDExMDEyNCkuCiAgICAgICAgICB4ZmFpbCAkdGVzdApAQCAtMTQsMTAgKzE0LDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2Fy cmF5LmV4cAogKyAgICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYt Zm9vLlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL3g4Nl82NC12bGEtdHlwZWRlZi1mb28uUwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1 MyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gv eDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICsw MjAwCiBAQCAtMCwwICsxLDQ1NSBAQAogKwkuZmlsZQkieDg2XzY0LXZsYS10eXBlZGVmLmMiCiAr CS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCkBAIC00NzQsMTAgKzQ3NCwxMCBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXR5cGVkZWYtZm9vLlMKICsJLnN0cmluZwkiR05VIEMgNC4zLjIgMjAwODExMDUgKFJl ZCBIYXQgNC4zLjItNykiCiArCS5pZGVudAkiR0NDOiAoR05VKSA0LjMuMiAyMDA4MTEwNSAoUmVk IEhhdCA0LjMuMi03KSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0 LXZsYS10eXBlZGVmLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwkyMDE2LTAy LTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMJMjAxNi0wNy0xNiAxNjo1 MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsNDUgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNTI0LDEwICs1MjQsMTAg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2 XzY0LXZsYS10eXBlZGVmLmMKICt9CiArCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxh LXR5cGVkZWYuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkw OTk5ODUzICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3 ICswMjAwCiBAQCAtMCwwICsxLDY0IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTU5MywxMCArNTkzLDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5l eHAKICtnZGJfdGVzdCAid2hhdGlzIGFycmF5IiAidHlwZSA9IGFycmF5X3QiICJzZWNvbmQ6IHdo YXRpcyBhcnJheSIKICsKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxb NzhcXFxdIiAic2Vjb25kOiBwdHlwZSBhcnJheSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlp ZHguYwkyMDE2LTAyLTE1IDIzOjMzOjI5LjgzMDk1OTk3MiArMDEwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE2LTAyLTE1IDIz OjM1OjU2LjI5MDk5OTg1MyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMTcs NiArMTcsMTMgQEAKICAKICBpbnQgYXJyYXlbXSA9IHsxLCAyLCAzLCA0fTsKQEAgLTYxMSwxMCAr NjExLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmMKICBpbnQKICBtYWluICh2b2lkKQogIHsKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2FycmF5aWR4LmV4cAkyMDE2LTAyLTE1IDIzOjMzOjI5LjgzMDk1OTk3MiArMDEwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHgu ZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE2LTA3 LTE2IDAzOjQ4OjU5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3 MTcyODk3ICswMjAwCiBAQCAtNDksNCArNDksMTIgQEAKICAgICAgICAgICAiXFx7XFxcWzBcXFxd ID0gMSwgXFxcWzFcXFxdID0gMiwgXFxcWzJcXFxdID0gMywgXFxcWzNcXFxdID0gNFxcfSIgXAog ICAgICAgICAgICJQcmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4ZXMgb24iCkBAIC02MjksMTAg KzYyOSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9hcnJheWlkeC5leHAKICsJdW5zdXBwb3J0ZWQgIiR0ZXN0IChubyBHQ0MpIgogKyAgICB9 CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv aW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJu YWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJu YWwtdmFyLWZpZWxkLWFkZHJlc3MuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIw MAogQEAgLTAsMCArMSwyMCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCiArCkBAIC02NTQsMTAgKzY1NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRk cmVzcy5jCiArc3RydWN0IHsKICsgIGludCBmaWVsZDsKICt9IHN0YXRpY3N0cnVjdCA9IHsgMSB9 OwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50 ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVy bmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCAr MDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50 ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3 ICswMjAwCiBAQCAtMCwwICsxLDI2IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTY4NSwxMCArNjg1LDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1h ZGRyZXNzLmV4CiArCiArZ2RiX3Rlc3Qge3NldCAkdmFyc3RydWN0ID0gc3RhdGljc3RydWN0fQog K2dkYl90ZXN0IHtwICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAxIgotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJh bWUuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMJMjAxNi0wNy0xNiAx Njo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsMzEgQEAKICsvKiBUaGlzIHRlc3Rj YXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNzIxLDEwICs3MjEs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLWZyYW1lLmMKICsgIGYgKHMpOwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLWZyYW1lLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAky MDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzOCBAQAogKyMg Q29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtNzY0 LDEwICs3NjQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvdmxhLWZyYW1lLmV4cAogK30KICsKICtnZGJfdGVzdCAiYnQgZnVsbCIgIlxyXG4g K3MgPSBcIlhcXFxcMDAwXCJcclxuLioiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5j CTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwkyMDE2LTA3LTE2IDE2 OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzMCBAQAogKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03OTksMTAgKzc5OSwx MCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEtb3ZlcmZsb3cuYwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLW92ZXJmbG93LmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mjk5OTg2NyArMDEwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93 LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwxMDkg QEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtOTEzLDEwICs5MTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAogK2dkYl90ZXN0ICJidCIgImluIFxbXiBc XSphYm9ydCBcXCguKiBpbiBtYWluIFxcKC4qIiAiQmFja3RyYWNlIGFmdGVyIGFib3J0KCkiCiAr CiArdmVyYm9zZSAtbG9nICJrYl9mb3VuZCBpbiBidCBhZnRlciBhYm9ydCgpID0gW2V4cHIgW21l bW9yeV92X3BhZ2VzX2dldF0gKiAkcGFnZXNpemUgLyAxMDI0XSIKLUluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMJMjAxNi0wMi0xNSAy MzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3ZsYS5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAw CiBAQCAtMCwwICsxLDU1IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhl IEdOVSBkZWJ1Z2dlci4KICsKQEAgLTk3MywxMCArOTczLDEwIEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiArICBmb28gKDc4KTsKICsg IHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3ZsYS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3ZsYS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4Njcg KzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zs YS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsNjIg QEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMTA0MCwxMCArMTA0MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhwCiArZ2RiX3Rlc3QgInAgdGVtcDEiICIgPSAnMScgPHJl cGVhdHMgNzggdGltZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMSIKICtnZGJfdGVzdCAicCB0ZW1w MiIgIiA9ICcyJyA8cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dk Yl90ZXN0ICJwIHRlbXAzIiAiID0gJzMnIDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJp bnQgdGVtcDMiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9j bGlzdC5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5ODY3ICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMJ MjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsMjQ2IEBACiAr LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAg LTEyOTEsMTAgKzEyOTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiArCS5zdHJpbmcJCSJjaGFyIgog Ky5MdWludF9zdHI6CiArCS5zdHJpbmcJCSJ1bnNpZ25lZCBpbnQiCi1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4 cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItYm91bmQtbG9jbGlzdC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTYtMDItMTUgMjM6 MzU6NTYuMjkyOTk5ODY3ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMz LjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw2NiBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMzYyLDEwICsxMzYyLDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJv dW5kLWxvY2xpc3QuZXhwCiArCiArIyBUaGUgcmVnaXN0ZXIgY29udGFpbnMgdW5wcmVkaWN0YWJs ZSB2YWx1ZSAtIHRoZSBhcnJheSBzaXplLgogK2dkYl90ZXN0ICJwdHlwZSByZWdfc3RyaW5nIiB7 dHlwZSA9IGNoYXIgXFstP1swLTldK1xdfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3Ry aXBwZWQuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDE2 LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKy8qIFRo aXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xNDA5 LDEwICsxNDA5LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmMKICsgIGZ1bmMxICgxLCAyKTsKICsgIHJldHVybiAw OwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN0cmlwcGVkLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAJMjAxNi0w Mi0xNSAyMzozNTo1Ni4yOTM5OTk4NzQgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2LTA3LTE2IDE2OjUz OjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw3OSBAQAogKyMgQ29weXJpZ2h0IDIwMDYg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNDkzLDEwICsxNDkzLDEwIEBA IEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LXN0cmlwcGVkLmV4cAogK2dkYl90ZXN0ICJzdGVwIiBcCiArICAgICAgICAgImZ1bmMuKiBcXCgu KlxcKSBhdCAuKiIgXAogKyAgICAgICAgICJzdGVwIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0 aW9uLlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRh dGEtbG9jYXRpb24uUwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1l bWJlci1kYXRhLWxvY2F0aW9uLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAK IEBAIC0wLDAgKzEsODMgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUg R05VIGRlYnVnZ2VyLgogKwpAQCAtMTU4MSwxMCArMTU4MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRh dGEtbG9jYQogKwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwogKwkuYnl0ZQkJMHgw CQkJLyogVGVybWluYXRvciAqLwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAorSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3Ry dWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0 aW9uLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1k YXRhLWxvY2F0aW9uLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAg LTAsMCArMSwzNyBAQAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0xNjIzLDEwICsxNjIzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2Nh CiArY2xlYW5fcmVzdGFydCAkYmluZmlsZQogKwogK2dkYl90ZXN0ICJwdHlwZSBzdHJ1Y3Qgc29t ZV9zdHJ1Y3QiICJ0eXBlID0gc3RydWN0IHNvbWVfc3RydWN0IHtcW1xyXG4gXHRcXSp2b2lkIGZp ZWxkO1xbXHJcbiBcdFxdKn0iCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUu UwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICsw MTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAK IEBAIC0wLDAgKzEsMTIxIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhl IEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE3NDksMTAgKzE3NDksMTAgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlw ZS5TCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCiArCS5ieXRlCQkweDAJCQkv KiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0 ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiAr MDIwMAogQEAgLTAsMCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIwMTIgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNzkzLDEwICsxNzkzLDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5 cGUuZXhwCiArCiArZ2RiX3Rlc3QgInB0eXBlIG5vdHlwZV9zdHJpbmciIHt0eXBlID0gY2hhciBc WzEyOVxdfQogK2dkYl90ZXN0ICJwIG5vdHlwZV9zdHJpbmciICIgPSAneCcgPHJlcGVhdHMgMTI5 IHRpbWVzPiIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAJ MjAxNi0wMi0xNSAyMzozNTo1Ni4yOTQ5OTk4ODEgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAJMjAxNi0wNy0x NiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNDIgQEAKICsjIENvcHlyaWdo dCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTg0MCwxMCArMTg0 MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9kd2FyZi1zdHJpZGUuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJyZWFr LWhlcmUiICIuKmJyZWFrLWhlcmUuKiIKICtnZGJfdGVzdCAicCBjNDBwdCgxKSIgIiA9ICcwLWhl bGxvLioiCiArZ2RiX3Rlc3QgInAgYzQwcHQoMikiICIgPSAnMS1oZWxsby4qIgotSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRl LmY5MAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHdhcmYtc3RyaWRlLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2 LjI5NDk5OTg4MSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3Mjkx NCArMDIwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTg4NSwxMCArMTg4NSwxMCBAQCBJbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUu ZjkwCiArICBwcmludCAqLCBjNDBwdCAgISBicmVhay1oZXJlCiArCiArZW5kIHByb2dyYW0gcmVw cm8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R5bmFtaWMuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNi0wMi0xNSAyMzozNjozOS4z NTgzMDU2MzUgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTYtMDctMTYgMTc6MTk6MjQuMjU1MjAyMDEzICswMjAw CiBAQCAtMCwwICsxLDE1MSBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJ4LWluaXQiXQogK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJ2YXJ4LWluaXQiCiArZ2RiX3Rlc3QgInAgdmFyeCIgIlxcJFxbMC05XF0q ID0gPG5vdCBhbGxvY2F0ZWQ+IiAicCB2YXJ4IHVuYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwdHlw ZSB2YXJ4IiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBlIHZhcnggdW5hbGxvY2F0ZWQi CisrZ2RiX3Rlc3QgInB0eXBlIHZhcngiIHt0eXBlID0gcmVhbFwoa2luZD00XCkgXCg6LDosOlwp fSAicHR5cGUgdmFyeCB1bmFsbG9jYXRlZCIKICtnZGJfdGVzdCAicCB2YXJ4KDEsNSwxNykiIHtu byBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInAgdmFyeCgx LDUsMTcpIHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngoMSw1LDE3KT0xIiB7bm8gc3Vj aCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3 KT0xIHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwdHlwZSB2YXJ4KDEsNSwxNykiIHtubyBzdWNo IHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInB0eXBlIHZhcngoMSw1 LDE3KSB1bmFsbG9jYXRlZCIKQEAgLTE5NTQsNyArMTk1NCw3IEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rl c3QgInAgdmFyeCgyLCA2LCAxOCkiICJcXCRcWzAtOVxdKiA9IDgiCiArZ2RiX3Rlc3QgInAgdmFy eCg2LCAxNSwgMjgpIiAiXFwkXFswLTlcXSogPSA5IgogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRc WzAtOVxdKiA9IDxub3QgYXNzb2NpYXRlZD4iICJwIHZhcnYgdW5hc3NvY2lhdGVkIgotK2dkYl90 ZXN0ICJwdHlwZSB2YXJ2IiAidHlwZSA9IDxub3QgYXNzb2NpYXRlZD4iICJwdHlwZSB2YXJ2IHVu YXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFydiIge3R5cGUgPSByZWFsXChraW5kPTRc KSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ2IHVuYXNzb2NpYXRlZCIKICsKICtzZXQgdGVzdCAib3V0 cHV0IHZhcngiCiArZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgewpAQCAtMTk4Miw3ICsx OTgyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vZHluYW1pYy5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFydi1kZWFz c29jaWF0ZWQiCiArIyBUaGUgbGF0dGVyIG9uZSBpcyBmb3IgdGhlIEludGVsIEZvcnRyYW4gQ29t cGlsZXIgMTAuMS4wMDggcG9pbnRlciB0eXBlLgogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAt OVxdKiA9ICg8bm90IGFzc29jaWF0ZWQ+fC4qKENhbm5vdCBhY2Nlc3MgaXR8VW5hYmxlIHRvIGFj Y2VzcyB0aGUgb2JqZWN0KSBiZWNhdXNlIHRoZSBvYmplY3QgaXMgbm90IGFzc29jaWF0ZWQuKSIg InAgdmFydiBkZWFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcnYiICJ0eXBlID0gKDxu b3QgYXNzb2NpYXRlZD58LiooQ2Fubm90IGFjY2VzcyBpdHxVbmFibGUgdG8gYWNjZXNzIHRoZSBv YmplY3QpIGJlY2F1c2UgdGhlIG9iamVjdCBpcyBub3QgYXNzb2NpYXRlZC4pIiAicHR5cGUgdmFy diBkZWFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcnYiIHt0eXBlID0gcmVhbFwoa2lu ZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInAg bCIgIlxcJFxbMC05XF0qID0gXFwuRkFMU0VcXC4iICJwIGwgaWYgdmFydiBkZWFzc29jaWF0ZWQi CiArZ2RiX3Rlc3QgInAgdmFydigxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZl Y3RvciBub3QgYXNzb2NpYXRlZFwpfQogK2dkYl90ZXN0ICJwdHlwZSB2YXJ2KDEsNSwxNykiIHtu byBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXCl9CkBAIC0xOTkw LDcgKzE5OTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2YXJ4LWRlYWxsb2NhdGVkIl0KICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFy eC1kZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicCB2YXJ4IiAiXFwkXFswLTlcXSogPSA8bm90IGFs bG9jYXRlZD4iICJwIHZhcnggZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcngiICJ0 eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmFyeCBkZWFsbG9jYXRlZCIKKytnZGJfdGVz dCAicHR5cGUgdmFyeCIge3R5cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2 YXJ4IGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIGwiICJcXCRcWzAtOVxdKiA9IFxcLkZBTFNF XFwuIiAicCBsIGlmIHZhcnggZGVhbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcp IiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZh cngoMSw1LDE3KSBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiB7 bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwdHlwZSB2 YXJ4KDEsNSwxNykgZGVhbGxvY2F0ZWQiCkBAIC0yMDQxLDEwICsyMDQxLDEwIEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhw CiArZ2RiX3Rlc3QgInAgdmFydCgzLDgpIiAiXFwkXFswLTlcXSogPSA5IgogKyMgbWFwcyB0byBm b286OnZhcnkoMSwzKQogK2dkYl90ZXN0ICJwIHZhcnQoMiw5KSIgIlxcJFxbMC05XF0qID0gMTAi Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLmY5MAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHluYW1pYy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk0 OTk5ODgxICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9keW5hbWljLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAog QEAgLTAsMCArMSw5OCBAQAogKyEgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArIQpAQCAtMjE0NCwxMCArMjE0NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAogKyAgaWYgKHgg KDEsIDEpIC5uZS4gOCAub3IuIHggKDIsIDIpIC5uZS4gOSAub3IuIHggKDEsIDIpIC5uZS4gNCkg Y2FsbCBhYm9ydAogKyAgaWYgKHggKDMsIDEpIC5uZS4gMTApIGNhbGwgYWJvcnQKICtlbmQKLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmlu Zy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N0cmluZy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJMjAxNi0wMi0xNSAyMzozNjozOS4zNTkzMDU2NDIg KzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3N0cmluZy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAg KzEsNTkgQEAKICsjIENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKwpAQCAtMjIwOCwxMCArMjIwOCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInZhci1maW5pc2giCiArZ2RiX3Rlc3QgInAgZSIgIlxcJFxbMC05XF0qID0gJ2Ug ICAnIiAicCBlIHJlLXNldCIKICtnZGJfdGVzdCAicCBmIiAiXFwkXFswLTlcXSogPSBcXChcXCgg J2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwp IFxcKCAnZjIgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAg ICdcXCkgXFwoICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcs ICdmICAgJ1xcKSBcXCkiICJwICpmIHJlLXNldCIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5m OTAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAJMjAxNi0wNy0xNiAx Njo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMzcgQEAKICshIENvcHlyaWdodCAy MDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTIyNTAsMTAgKzIyNTAs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3RyaW5nLmY5MAogKyAgaCA9ICdoJwogKyAgY2FsbCBmb28gKGcsIGgpCiArZW5kCi1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5n ZS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N1YnJhbmdlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5 ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9zdWJyYW5nZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBA IC0wLDAgKzEsNzIgQEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwpAQCAtMjMyNywxMCArMjMyNywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKICtnZGJfdW5sb2Fk CiArc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgogK2dkYl90ZXN0IHtw ICRhICgzLCAyOjIpfSB7ID0gXCgyM1wpfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdl LmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCTIwMTYtMDct MTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDI4IEBACiArISBDb3B5cmln aHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMzYwLDEwICsy MzYwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N1YnJhbmdlLmY5MAogKyAgcHRyID0+IGEKICsgIHdyaXRlICgqLCopIGEgICAgICAg ICAgICAgICAgICEgYnJlYWstc3RhdGljCiArZW5kCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p Mi12YXItc3RhbGUtdHlwZS5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFs ZS10eXBlLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEs MjYgQEAKICsvKiBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTIzOTEsMTAgKzIzOTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCiArCiArICByZXR1cm4gMDsK ICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWky LXZhci1zdGFsZS10eXBlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCTIw MTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAkyMDE2LTA3LTE2 IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw1NyBAQAogKyMgQ29weXJpZ2h0 IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMjQ1MywxMCArMjQ1 MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWkyLXZhci1zdGFsZS10eXBlLmV4cAogK21pX2NyZWF0ZV92YXJvYmogInZsYSIgInZsYSIgImNy ZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGEiCiArCiArbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoi ICJcXF5kb25lLGNoYW5nZWxpc3Q9LioiICItdmFyLXVwZGF0ZSAqIgotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1 bmMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9h cnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE2LTAy LTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE2LTA3LTE2 IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSwyMiBAQAogKy8qIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI0ODAsMTAgKzI0ODAs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9h cnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwogK3sKICsgIHJldHVybiBhcnJbMF07CiArfQotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9t LXJlZ2lzdGVyLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE2LTAyLTE1 IDIzOjM1OjU2LjI5Njk5OTg5NSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJMjAxNi0wNy0xNiAxNjo1Mzoz My43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIGZpbGUgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNTEzLDEwICsyNTEzLDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJv bS1yZWdpc3Rlci5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20t cmVnaXN0ZXIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk2 OTk5ODk1ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIy ICswMjAwCiBAQCAtMCwwICsxLDMzIEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNTUxLDEwICsyNTUxLDEwIEBAIEluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rl ci5leHAKICsjIFNlZW4gcmVncmVzc2lvbjoKICsjIEFkZHJlc3MgcmVxdWVzdGVkIGZvciBpZGVu dGlmaWVyICJhcnIiIHdoaWNoIGlzIGluIHJlZ2lzdGVyICRyZGkKICtnZGJfdGVzdCAicCBhcnJc WzBcXSIgIlxcJFxbMC05XF0rID0gNDIiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCTIwMTYt MDItMTUgMjM6MzY6MzkuMzU5MzA1NjQyICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43 NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAw OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNjYwLDEwICsyNjYwLDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwv YXJyYXlzLmV4cAogK30KICtnZGJfdGVzdCAicHJpbnQgRHluQXJyQ2hhciIgIi4qID0gJ2FiY2Rl ZmdoaWprbG0nIiAiUHJpbnQgZHluYW1pYyBhcnJheSBvZiBjaGFyIgogKwotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5w YXMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNj YWwvYXJyYXlzLnBhcwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Njk5OTg5NSArMDEwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIw MTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCiBAQCAtMCwwICsxLDgyIEBACiArewog KyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAg LTI3NDcsMTAgKzI3NDcsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCiArICBzIDo9ICd0ZXN0JyMwJ3N0cmluZyc7CiAr ICB3cml0ZWxuKHMpOyB7IHNldCBicmVha3BvaW50IDIgaGVyZSB9CiArZW5kLgotSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIw MTYtMDItMTUgMjM6MzU6NTUuMzI2OTkzMDA4ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Nzk5OTkw MyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIv Z2RiLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjA2MzE2NzMxNSArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0xNiAxNjo1Mzoz My43NDExNzI5MzAgKzAyMDAKIEBAIC0xNzMsNiArMTczLDExIEBACiAgCSAgICBzZW5kX2dkYiAi eVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCkBAIC0yNzYzLDEwICsyNzYzLDEwIEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgCS1yZSAiRGlz Y2FyZCBzeW1ib2wgdGFibGUgZnJvbSAuKnkgb3Igbi4qJCIgewogIAkgICAgc2VuZF9nZGIgInlc biIKICAJICAgIGV4cF9jb250aW51ZQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAx NjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDItMTUgMjM6MzM6 MjkuODMwOTU5OTcyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5ODk5OTkxMCArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAky MDE2LTA3LTE2IDAzOjQ4OjU5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDEx NzI5MzAgKzAyMDAKIEBAIC0zNyw2ICszNyw5IEBACiAgICAgIGdsb2JhbCBwYXNjYWxfY29tcGls ZXJfaXNfZnBjCiAgICAgIGdsb2JhbCBncGNfY29tcGlsZXIKCmRpZmYgLS1naXQgYS9nZGItYXJj aGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRjaAppbmRleCA2MTdjYzBmLi44ZDkyNjVmIDEwMDY0 NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsNyAr Miw3IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRw Oi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQg c25hcHNob3Q6Ci1jb21taXQgZjBlZTc4YzVjY2VmZTM4OGE2NDI3MzM1M2VjZDVjOTlkYWU2MjU1 OAorY29tbWl0IGNmZWU2NGVlODY5YTZhNmU0YWIwYjY0YWYxNDlkNGNmNTk1MTdkODAKIAogdHJv bWV5L3B5dGhvbgogCkBAIC0xNiwxMCArMTYsMTAgQEAgaW5kZXggMDAwMDAwMC4uMTczYjhlYQog K1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVsZCB0aGUgUHl0aG9uIGNvZGUgZm9yIGdkYi4gIEl0 IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBzbWFsbCBhbW91bnQgb2YgY29kZSBoZXJlIGhhcyBu b3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFtLgogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5p biBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggOTUxMDRlZi4uYTliMTk4YSAxMDA2NDQKK2luZGV4 IDVhZjYxMDMuLjljNjljYjAgMTAwNjQ0CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dk Yi9NYWtlZmlsZS5pbgotQEAgLTE1MzQsNiArMTUzNCwxMiBAQCBzdGFtcC1oOiAkKHNyY2Rpcikv Y29uZmlnLmluIGNvbmZpZy5zdGF0dXMKK0BAIC0xNTUzLDYgKzE1NTMsMTIgQEAgc3RhbXAtaDog JChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3RhdHVzCiAgCSAgQ09ORklHX0xJTktTPSBcCiAg CSAgJChTSEVMTCkgY29uZmlnLnN0YXR1cwogIApAQCAtMzMsMTAgKzMzLDEwIEBAIGluZGV4IDk1 MTA0ZWYuLmE5YjE5OGEgMTAwNjQ0CiAgCSQoU0hFTEwpIGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNr CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluIGIvZ2RiL2Rh dGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1pbmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAor aW5kZXggM2YyMzUxNi4uYjVkNjM5MCAxMDA2NDQKIC0tLSBhL2dkYi9kYXRhLWRpcmVjdG9yeS9N YWtlZmlsZS5pbgogKysrIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1AQCAtNjUs NyArNjUsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BAIC02Niw3ICs2NiwxMCBAQCBQWVRI T05fRklMRV9MSVNUID0gXAogIAlnZGIvdW53aW5kZXIucHkgXAogIAlnZGIvcHJvbXB0LnB5IFwK ICAJZ2RiL3htZXRob2QucHkgXApAQCAtNDcsOCArNDcsOCBAQCBpbmRleCAzMGNmZDE3Li5lOTc3 YjMwIDEwMDY0NAogIAlnZGIvY29tbWFuZC94bWV0aG9kcy5weSBcCiAgCWdkYi9jb21tYW5kL2Zy YW1lX2ZpbHRlcnMucHkgXAogIAlnZGIvY29tbWFuZC91bndpbmRlcnMucHkgXAotQEAgLTc2LDYg Kzc5LDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKLSAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5 IFwKK0BAIC03OCw2ICs4MSw4IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCisgCWdkYi9mdW5jdGlv bi9hc19zdHJpbmcucHkgXAogIAlnZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5IFwKICAJZ2RiL2Z1 bmN0aW9uL3N0cmZucy5weSBcCiArCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXApAQCAtNTcs NyArNTcsNyBAQCBpbmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAogIAlnZGIvcHJpbnRlci9i b3VuZF9yZWdpc3RlcnMucHkKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIv Z2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggMTY2NTM3Mi4uYzRjYWZmYyAxMDA2NDQKK2luZGV4 IGY1ZGRlNjEuLjFkOTJiZDYgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysg Yi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtMTIyNSw2ICsxMjI1LDE2IEBAIGZvciByZW1vdGUg ZGVidWdnaW5nLgpAQCAtNzgsNyArNzgsNyBAQCBpbmRleCAxNjY1MzcyLi5jNGNhZmZjIDEwMDY0 NAogIEBpdGVtIC10dWkKICBAY2luZGV4IEBjb2Rley0tdHVpfQogZGlmZiAtLWdpdCBhL2dkYi9k b2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCi1pbmRleCA1N2VjMjJlLi4xM2Jl YjA1IDEwMDY0NAoraW5kZXggYTE3ZTM3ZC4uYzU2MDY4YiAxMDA2NDQKIC0tLSBhL2dkYi9kb2Mv cHl0aG9uLnRleGkKICsrKyBiL2dkYi9kb2MvcHl0aG9uLnRleGkKIEBAIC04OCw4ICs4OCw2IEBA IGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgpAQCAtMTExLDcgKzExMSw3IEBA IGluZGV4IDA1YTM4YjIuLjk4MDFmZGYgMTAwNjQ0CiAgICBzZXQgdmFyaWFibGUgJGdkYl9pbml0 X2RvbmUgPSAxCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4 IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CitpbmRleCA1NDc3Mzc5Li5iN2U0MTNmIDEwMDY0NAog LS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAg LTEyMiw3ICsxMjIsNyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0NAogICNpbmNsdWRl ICJzb3VyY2UuaCIKICAjaW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgiCiAgI2luY2x1ZGUgIm9iamZp bGVzLmgiCi1AQCAtNDUzLDYgKzQ1NCw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitA QCAtNDU5LDYgKzQ2MCw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICBjaGFyICpj ZGFyZyA9IE5VTEw7CiAgICBjaGFyICp0dHlhcmcgPSBOVUxMOwogIApAQCAtMTkwLDcgKzE5MCw3 IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgICAgIHsKICAgICAgICAvKiBUaGUg cmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgdGhlCiAg CSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFuZCB0aGUg cmVzdAotQEAgLTExMzcsNyArMTE3MSw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitA QCAtMTEyNyw3ICsxMTYxLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAKICAgIC8q IFJlYWQgaW4gdGhlIG9sZCBoaXN0b3J5IGFmdGVyIGFsbCB0aGUgY29tbWFuZCBmaWxlcyBoYXZl IGJlZW4KICAgICAgIHJlYWQuICAqLwpAQCAtMjAwLDcgKzIwMCw3IEBAIGluZGV4IGFlY2Q2MGEu LmQwZjc4MzQgMTAwNjQ0CiAgCiAgICBpZiAoYmF0Y2hfZmxhZykKICAgICAgewotQEAgLTExNDgs MTMgKzExODMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMTM4LDEzICsx MTczLDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAvKiBTaG93IHRpbWUgYW5k L29yIHNwYWNlIHVzYWdlLiAgKi8KICAgIGRvX2NsZWFudXBzIChwcmVfc3RhdF9jaGFpbik7CiAg CkBAIC0yMzIsNyArMjMyLDcgQEAgaW5kZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKICAgICAg fQogICAgLyogTm8gZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVpdF9jb21tYW5kLiAgKi8KICB9 Ci1AQCAtMTE4OCw2ICsxMjM1LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKQorQEAgLTExODcsNiArMTIzNCwxMiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlzIHRoZSBH TlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNdIFtleGVjdXRhYmxl LWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTI0NSw3ICsyNDUsNyBAQCBp bmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0NAogICAgICBnZGIgW29wdGlvbnNdIC0tYXJncyBl eGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5dXG5cblwKICAiKSwgc3RyZWFt KTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKLUBAIC0xMjMyLDYgKzEyODUsMTMgQEAgT3V0 cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5cCitAQCAtMTIzMSw2ICsxMjg0LDEz IEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAogICNlbmRpZgogICAg ZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1kYnggICAgICAgICAgICAgIERCWCBjb21wYXRp YmlsaXR5IG1vZGUuXG5cCkBAIC00NDMsMTAgKzQ0MywxMCBAQCBpbmRleCAwMDAwMDAwLi44NzQy NjgwCiArCiArSW5TY29wZSAoKQogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmMgYi9n ZGIvcHl0aG9uL3B5dGhvbi5jCi1pbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAoraW5kZXgg NjIxZTIwMS4uNzAzYTFhMCAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKICsrKyBi L2dkYi9weXRob24vcHl0aG9uLmMKLUBAIC05Myw2ICs5Myw4IEBAIGNvbnN0IHN0cnVjdCBleHRl bnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0aG9uID0KK0BAIC05NSw2 ICs5NSw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25f bGFuZ3VhZ2VfcHl0aG9uID0KICAjaW5jbHVkZSAibGluZXNwZWMuaCIKICAjaW5jbHVkZSAic291 cmNlLmgiCiAgI2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTQ1NSw3ICs0NTUsNyBAQCBpbmRleCA0 Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogICNpbmNsdWRlICJ0YXJnZXQuaCIKICAjaW5jbHVkZSAi Z2RidGhyZWFkLmgiCiAgI2luY2x1ZGUgImludGVycHMuaCIKLUBAIC0xMjYyLDYgKzEyNjQsODMg QEAgZ2RicHlfcHJpbnRfc3RhY2sgKHZvaWQpCitAQCAtMTI2Myw2ICsxMjY1LDkyIEBAIGdkYnB5 X3ByaW50X3N0YWNrICh2b2lkKQogIAogIC8qIFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2Uu CiAgICAgVGhlcmUgYWx3YXlzIGlzIG9uZS4gICovCkBAIC00NzcsNyArNDc3LDE0IEBAIGluZGV4 IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICAgIHJldHVybiBQeUVycl9Gb3JtYXQgKFB5RXhj X1J1bnRpbWVFcnJvciwgXygiQ2Fubm90IGludm9rZSBDTEkgZnJvbSBNSS4iKSk7CiArCiArICBp bl9jbGkgPSAxOwotKyAgY3VycmVudF9pbnRlcnBfY29tbWFuZF9sb29wICgpOworKyAgLyogU2Vl IGNhcHR1cmVkX2NvbW1hbmRfbG9vcC4gICovCisrCisrICAvKiBHaXZlIHRoZSBpbnRlcnByZXRl ciBhIGNoYW5jZSB0byBwcmludCBhIHByb21wdC4gICovCisrICBpbnRlcnBfcHJlX2NvbW1hbmRf bG9vcCAodG9wX2xldmVsX2ludGVycHJldGVyICgpKTsKKysKKysgIC8qIE5vdyBpdCdzIHRpbWUg dG8gc3RhcnQgdGhlIGV2ZW50IGxvb3AuICAqLworKyAgc3RhcnRfZXZlbnRfbG9vcCAoKTsKKysK ICsgIGluX2NsaSA9IDA7CiArCiArICBQeV9SRVRVUk5fTk9ORTsKQEAgLTUwMCwxMyArNTA3LDE1 IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICBQeVN5c19TZXRBcmd2IChhcmdj IC0gMSwgYXJndiArIDEpOwogKyNlbHNlCiArICB7Ci0rICAgIHdjaGFyX3QgKip3YXJndiA9IGFs bG9jYSAoc2l6ZW9mICgqd2FyZ3YpICogKGFyZ2MgKyAxKSk7CisrICAgIHdjaGFyX3QgKip3YXJn diA9ICh3Y2hhcl90ICoqKSBhbGxvY2EgKHNpemVvZiAoKndhcmd2KSAqIChhcmdjICsgMSkpOwog KyAgICBpbnQgaTsKICsKICsgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKICsgICAgICB7 CiArCXNpemVfdCBsZW4gPSBtYnN0b3djcyAoTlVMTCwgYXJndltpXSwgMCk7Ci0rCXNpemVfdCBs ZW4yOworKwkvKiBQeXRob24tcmVsYXRlZCBHREIgc291cmNlcyBhcmUgYnVpbHQgd2l0aCAtRE5E RUJVRworKwkgICBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9p ZD0yMDQ0NSAqLworKwlzaXplX3QgbGVuMiBBVFRSSUJVVEVfVU5VU0VEOwogKwogKwlpZiAobGVu ID09IChzaXplX3QpIC0xKQogKwkgIHsKQEAgLTUxNCw3ICs1MjMsNyBAQCBpbmRleCA0Zjg4YjBl Li44NzBhMWJhIDEwMDY0NAogKwkJICAgICBpLCBhcmd2W2ldKTsKICsJICAgIGV4aXQgKDEpOwog KwkgIH0KLSsJd2FyZ3ZbaV0gPSBhbGxvY2EgKHNpemVvZiAoKip3YXJndikgKiAobGVuICsgMSkp OworKwl3YXJndltpXSA9ICh3Y2hhcl90ICopIGFsbG9jYSAoc2l6ZW9mICgqKndhcmd2KSAqIChs ZW4gKyAxKSk7CiArCWxlbjIgPSBtYnN0b3djcyAod2FyZ3ZbaV0sIGFyZ3ZbaV0sIGxlbiArIDEp OwogKwlhc3NlcnQgKGxlbjIgPT0gbGVuKTsKICsgICAgICB9CkBAIC01MzksNyArNTQ4LDcgQEAg aW5kZXggNGY4OGIwZS4uODcwYTFiYSAxMDA2NDQKICAKICBzdGF0aWMgUHlPYmplY3QgKgogIGdk YnB5X2dldF9jdXJyZW50X3Byb2dzcGFjZSAoUHlPYmplY3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1 bnVzZWQyKQotQEAgLTE5ODIsNiArMjA2MSw4IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRo b2RzW10gPQorQEAgLTE5ODEsNiArMjA2OSw4IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRo b2RzW10gPQogIEV2YWx1YXRlIGNvbW1hbmQsIGEgc3RyaW5nLCBhcyBhIGdkYiBDTEkgY29tbWFu ZC4gIE9wdGlvbmFsbHkgcmV0dXJuc1xuXAogIGEgUHl0aG9uIFN0cmluZyBjb250YWluaW5nIHRo ZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgaWYgdG9fc3RyaW5nIGlzXG5cCiAgc2V0IHRvIFRydWUu IiB9LApAQCAtNTQ5LDcgKzU1OCw3IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAg ICAgICJSZXR1cm4gYSBnZGIgcGFyYW1ldGVyJ3MgdmFsdWUiIH0sCiAgCiBkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRob24vcHl0aG9uLmgKLWluZGV4IGU2YmZjY2Eu LjY4OGRhYTMgMTAwNjQ0CitpbmRleCBiODEwMTg3Li5hMzYyMGFiIDEwMDY0NAogLS0tIGEvZ2Ri L3B5dGhvbi9weXRob24uaAogKysrIGIvZ2RiL3B5dGhvbi9weXRob24uaAogQEAgLTI1LDQgKzI1 LDYgQEAKQEAgLTU2MCwxMCArNTY5LDEwIEBAIGluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0 CiArCiAgI2VuZGlmIC8qIEdEQl9QWVRIT05fSCAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3Qu ZXhwCi1pbmRleCA5ZjI1YTQ4Li44OGIwODQyIDEwMDY0NAoraW5kZXggMmZkZDllMy4uMzkxOTAw ZCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKICsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLUBAIC05Miw2ICs5MiwxMCBAQCBw cm9jIGRvX3N0ZXBzX2FuZF9uZXh0cyB7fSB7CitAQCAtODcsNiArODcsMTAgQEAgcHJvYyBkb19z dGVwc19hbmRfbmV4dHMge30gewogIAkJc2V0IGRlc2NyaXB0aW9uICJzdGVwIG92ZXIgY21kYXJn X3ZlYyBpbml0aWFsaXphdGlvbiIKICAJCXNldCBjb21tYW5kICJzdGVwIgogIAkgICAgfQpAQCAt NTc1LDcgKzU4NCw3IEBAIGluZGV4IDlmMjVhNDguLjg4YjA4NDIgMTAwNjQ0CiAgCQlzZXQgZGVz Y3JpcHRpb24gIm5leHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0 aGluZyBpdCBjYWxscyIKICAJCXNldCBjb21tYW5kICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZnJhbWUuZXhwCi1pbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAoraW5kZXggYjVh NDY4Mi4uZDU0NTFhNiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1m cmFtZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKIEBA IC05NSw2ICs5NSw4IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBm MC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yCkBAIC01ODgsMTAgKzU5Nywx MCBAQCBpbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJp bnQgKCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpLnJlYWRfcmVnaXN0ZXIg KCdzcCcpID09IGdkYi5wYXJzZV9hbmRfZXZhbCAoJ1wkc3AnKSkpIiBcCiAgICAiID0gVHJ1ZSIg XAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgYi9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1pbmRleCBiYWExN2I3Li40NWFk NjdlIDEwMDY0NAoraW5kZXggNTdhOWJhMS4uZDkwZDg1YSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS12YWx1ZS5leHAKLUBAIC0zODgsNiArMzg4LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9h ZnRlcl9kZWF0aCB7fSB7CitAQCAtMzk3LDYgKzM5NywxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0 ZXJfZGVhdGgge30gewogICAgICAicHJpbnQgdmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYwNyw3 ICs2MTYsNyBAQCBpbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAogICMgUmVncmVzc2lvbiB0 ZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAog ICMgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxs b3dpbmcgYQogICMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTUxNyw2ICs1 MjYsNyBAQCB0ZXN0X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTI2LDYgKzUzNSw3IEBAIHRlc3Rf dmFsdWVfaW5faW5mZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xh enlfc3RyaW5ncwogIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKCmRpZmYgLS1naXQgYS9nZGItYXR0 YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9m NS5wYXRjaAppbmRleCA0OGQ3YWI0Li5mYjdkYjI1IDEwMDY0NAotLS0gYS9nZGItYXR0YWNoLWZh aWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUu cGF0Y2gKQEAgLTM3LDEzICszNywxMyBAQCBnZGIvZ2Ric2VydmVyLwogCShsaW51eF9jcmVhdGVf aW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGlsZCk6IENhbGwgaXQgaW5zdGVhZCBvZgogCWRp cmVjdCBwdHJhY2UuCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbmF0L2xpbnV4 LXB0cmFjZS5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL25hdC9saW51eC1wdHJh Y2UuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL25hdC9s aW51eC1wdHJhY2UuYwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4MDcwNzk0NCArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNi0wMS0wOCAxOTox NjowMi42NTQ3MzYyNDYgKzAxMDAKLUBAIC0yNCw2ICsyNCwxMCBAQAotICNpbmNsdWRlICJnZGJf d2FpdC5oIgorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJh Y2UuYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0NzgzMzAxNyArMDIwMAorKysrIGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNi0wOC0wNyAyMToxOTozNy42NTA5 MDQxNDIgKzAyMDAKK0BAIC0yNSw2ICsyNSwxMCBAQAogICNpbmNsdWRlICJnZGJfcHRyYWNlLmgi CisgI2luY2x1ZGUgImdyZWdzZXQuaCIKICAKICsjaWZkZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhf SAogKyMgaW5jbHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CkBAIC01Miw3ICs1Miw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiAgLyogU3RvcmVz IHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlIHJ1bm5pbmcga2VybmVsLgogICAg IEEgdmFsdWUgb2YgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBmb3IgZmVhdHVyZXMgeWV0LiAg QSB2YWx1ZQogICAgIG9mIDAgbWVhbnMgdGhlcmUgYXJlIG5vIHN1cHBvcnRlZCBmZWF0dXJlcy4g ICovCi1AQCAtNDgsNiArNTIsOCBAQAorQEAgLTQ5LDYgKzUzLDggQEAKICAgICAgYnVmZmVyX3ht bF9wcmludGYgKGJ1ZmZlciwgXygicHJvY2VzcyAlZCBpcyBhIHpvbWJpZSAiCiAgCQkJCSAiLSB0 aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkIiksCiAgCQkgICAgICAgKGludCkgcGlk KTsKQEAgLTYxLDcgKzYxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQv bGludXgtcHRyYWNlLmMKICB9CiAgCiAgLyogU2VlIGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01 OTQsNiArNjAwLDIyIEBACitAQCAtNTkyLDYgKzU5OCwyMiBAQAogICAgbGludXhfcHRyYWNlX3Rl c3RfcmV0X3RvX254ICgpOwogIH0KICAKQEAgLTg0LDExICs4NCwxMSBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogIC8qIEV4dHJhY3QgZXh0ZW5k ZWQgcHRyYWNlIGV2ZW50IGZyb20gd2FpdCBzdGF0dXMuICAqLwogIAogIGludAotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKK0luZGV4OiBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCTIwMTYtMDEtMDgg MTk6MTU6NTcuNTgxNzA3OTUwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL25h dC9saW51eC1wdHJhY2UuaAkyMDE2LTAxLTA4IDE5OjE2OjAyLjY1NTczNjI1MSArMDEwMAotQEAg LTE2NCw2ICsxNjQsNyBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL25hdC9s aW51eC1wdHJhY2UuaAkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0NzgzMzAxNyArMDIwMAorKysrIGdk Yi03LjExLjkwLjIwMTYwODA3L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNi0wOC0wNyAyMTox OTozNy42NTA5MDQxNDIgKzAyMDAKK0BAIC0xODUsNiArMTg1LDcgQEAKICBleHRlcm4gY2hhciAq bGludXhfcHRyYWNlX2F0dGFjaF9mYWlsX3JlYXNvbl9zdHJpbmcgKHB0aWRfdCBwdGlkLCBpbnQg ZXJyKTsKICAKICBleHRlcm4gdm9pZCBsaW51eF9wdHJhY2VfaW5pdF93YXJuaW5ncyAodm9pZCk7 CkBAIC05NiwxMSArOTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQv bGludXgtcHRyYWNlLmgKICBleHRlcm4gdm9pZCBsaW51eF9jaGVja19wdHJhY2VfZmVhdHVyZXMg KHZvaWQpOwogIGV4dGVybiB2b2lkIGxpbnV4X2VuYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90 IHBpZCwgaW50IGF0dGFjaGVkKTsKICBleHRlcm4gdm9pZCBsaW51eF9kaXNhYmxlX2V2ZW50X3Jl cG9ydGluZyAocGlkX3QgcGlkKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29u ZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZ3VyZS5hYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5h YwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4MjcwNzk1NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9jb25maWd1cmUuYWMJMjAxNi0wMS0wOCAxOToxNjowMi42NTY3MzYyNTcgKzAx MDAKLUBAIC0yMDc3LDYgKzIwNzcsMTAgQEAKKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmln L2dkYi9jb25maWd1cmUuYWMJMjAxNi0wOC0wNyAyMToxOToyOS45NDc4MzMwMTcgKzAyMDAKKysr KyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlndXJlLmFjCTIwMTYtMDgtMDcgMjE6MTk6 MzcuNjUwOTA0MTQyICswMjAwCitAQCAtMjEwOCw2ICsyMTA4LDEwIEBACiAgZXNhYwogIEFDX0RF RklORV9VTlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxlbmFtZS5d KQogIApAQCAtMTExLDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZlYXR1cmVzIHRoYXQgY2FuIGJl IGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2Yg R0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2 ZXIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZl ci9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTYtMDEtMDggMTk6MTU6NTcuNTgyNzA3OTU1 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUu YWMJMjAxNi0wMS0wOCAxOToxNjowMi42NTY3MzYyNTcgKzAxMDAKLUBAIC01MjQsNiArNTI0LDEw IEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZS5hYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0ODgzMzAyNyArMDIwMAorKysrIGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTYtMDgtMDcgMjE6MTk6Mzcu NjUxOTA0MTUxICswMjAwCitAQCAtNDU4LDYgKzQ1OCwxMCBAQAogICAgIGZpCiAgZmkKICAKQEAg LTEyNiwxMSArMTI2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2Vy dmVyL2NvbmZpZ3VyZS5hYwogIEFDX1NVQlNUKEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJT VChHREJTRVJWRVJfTElCUykKICBBQ19TVUJTVChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE2 LTAxLTA4IDE5OjE1OjU3LjU4NTcwNzk3MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNi0wMS0wOCAxOToxNjowMi42NTg3MzYyNjgg KzAxMDAKLUBAIC04NTMsNiArODUzLDI5IEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3Jp Zy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTYtMDgtMDcgMjE6MTk6MjkuOTQ5ODMzMDM2 ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cu YwkyMDE2LTA4LTA3IDIxOjE5OjM3LjY1MjkwNDE2MSArMDIwMAorQEAgLTkzMyw2ICs5MzMsMjkg QEAKICAgIHJldHVybiBsd3A7CiAgfQogIApAQCAtMTYwLDcgKzE2MCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgLyogU3RhcnQgYW4g aW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgogICAgIEFMTEFSR1MgaXMgYSB2 ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAotQEAgLTg3Niw3ICs4OTksNyBA QAorQEAgLTk1Niw3ICs5NzksNyBAQAogICAgaWYgKHBpZCA9PSAwKQogICAgICB7CiAgICAgICAg Y2xvc2VfbW9zdF9mZHMgKCk7CkBAIC0xNjksMTAgKzE2OSwxMCBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIAogICAgICAgIHNldHBnaWQg KDAsIDApOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pbmYtcHRyYWNlLmMK K0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvaW5mLXB0cmFjZS5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTYtMDEt MDggMTk6MTU6NTcuNTg2NzA3OTc3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2luZi1wdHJhY2UuYwkyMDE2LTAxLTA4IDE5OjE2OjAyLjY1OTczNjI3NCArMDEwMAorLS0tIGdk Yi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2luZi1wdHJhY2UuYwkyMDE2LTA4LTA3IDIxOjE5 OjI5Ljk0OTgzMzAzNiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9pbmYtcHRy YWNlLmMJMjAxNi0wOC0wNyAyMToxOTozNy42NTM5MDQxNzAgKzAyMDAKIEBAIC03OSw3ICs3OSwx NSBAQAogIGluZl9wdHJhY2VfbWUgKHZvaWQpCiAgewpAQCAtMTg5LDExICsxODksMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pbmYtcHRyYWNlLmMKICB9CiAgCiAgLyogU3Rh cnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBm aWxlIHRvCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2xpbnV4LW5hdC5jCitJbmRl eDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNi0wMS0wOCAxOTox NTo1Ny41ODc3MDc5ODMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgt bmF0LmMJMjAxNi0wMS0wOCAxOToxNjowMi42NjA3MzYyNzkgKzAxMDAKLUBAIC0xMDE2LDYgKzEw MTYsNyBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIw MTYtMDgtMDcgMjE6MTk6MjkuOTUwODMzMDQ1ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4 MDcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjU0OTA0MTc5ICswMjAwCitA QCAtMTEwMiw2ICsxMTAyLDcgQEAKICB7CiAgICBzdHJ1Y3QgY2xlYW51cCAqcmVzdG9yZV9wZXJz b25hbGl0eQogICAgICA9IG1heWJlX2Rpc2FibGVfYWRkcmVzc19zcGFjZV9yYW5kb21pemF0aW9u IChkaXNhYmxlX3JhbmRvbWl6YXRpb24pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgtbmF0LmMKICAKICAgIC8qIFRoZSBmb3JrX2NoaWxk IG1lY2hhbmlzbSBpcyBzeW5jaHJvbm91cyBhbmQgY2FsbHMgdGFyZ2V0X3dhaXQsIHNvCiAgICAg ICB3ZSBoYXZlIHRvIG1hc2sgdGhlIGFzeW5jIG1vZGUuICAqLwotQEAgLTEwMjMsNyArMTAyNCwy OCBAQAorQEAgLTExMDksNyArMTExMCwyOCBAQAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBh bGwgc2lnbmFscyBkdXJpbmcgc3RhcnR1cC4gICovCiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxz IChvcHMsIDAsIE5VTEwpOwogIApAQCAtMjMxLDExICsyMzEsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQuYwogIAogICAgZG9fY2xlYW51cHMgKHJlc3RvcmVf cGVyc29uYWxpdHkpOwogIH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmln LmluCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE2LTAxLTA4 IDE5OjE1OjU3LjU4ODcwNzk4OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9j b25maWcuaW4JMjAxNi0wMS0wOCAxOToxNjowMi42NjA3MzYyNzkgKzAxMDAKLUBAIC0yNjQsNiAr MjY0LDkgQEAKKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9jb25maWcuaW4JMjAx Ni0wOC0wNyAyMToxOToyOS45NTA4MzMwNDUgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvY29uZmlnLmluCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjU0OTA0MTc5ICswMjAwCitAQCAt MjY3LDYgKzI2Nyw5IEBACiAgLyogRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVz ZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUlBNCiAgCkBAIC0yNDUsNyArMjQ1LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0Lmg+IGhlYWRlciBmaWxlLiAqLwogICN1bmRlZiBI QVZFX0xJQlVOV0lORF9JQTY0X0gKICAKLUBAIC0zOTYsNiArMzk5LDkgQEAKK0BAIC0zOTksNiAr NDAyLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNjbV9uZXdfc21vYicg ZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0NNX05FV19TTU9CCiAgCkBAIC0yNTUsMTEgKzI1 NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5k ZWYgSEFWRV9TRVRMT0NBTEUKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29u ZmlndXJlCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZ3VyZQogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTAx LTA4IDE5OjE1OjU3LjU5MzcwODAxNyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9jb25maWd1cmUJMjAxNi0wMS0wOCAxOToxNjowMi42NjU3MzYzMDcgKzAxMDAKLUBAIC0xNDY1 Myw2ICsxNDY1Myw2NCBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2NvbmZp Z3VyZQkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk1MzgzMzA3MyArMDIwMAorKysrIGdkYi03LjExLjkw LjIwMTYwODA3L2dkYi9jb25maWd1cmUJMjAxNi0wOC0wNyAyMToxOTozNy42NTg5MDQyMTYgKzAy MDAKK0BAIC0xNDY0Miw2ICsxNDY0Miw2NCBAQAogIF9BQ0VPRgogIAogIApAQCAtMzI0LDExICsz MjQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUKICAKICAj IFN1cHBvcnQgZm9yIC0td2l0aC1zeXNyb290IGlzIGEgY29weSBvZiBHREJfQUNfV0lUSF9ESVIs CiAgIyBleGNlcHQgdGhhdCB0aGUgYXJndW1lbnQgdG8gLS13aXRoLXN5c3Jvb3QgaXMgb3B0aW9u YWwuCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4K K0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25m aWcuaW4JMjAxNi0wMS0wOCAxOToxNTo1Ny41OTU3MDgwMjggKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2LTAxLTA4IDE5OjE2OjAyLjY2 NTczNjMwNyArMDEwMAotQEAgLTExNyw2ICsxMTcsOSBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYw ODA3Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNi0wOC0wNyAyMToxOToyOS45NTQ4 MzMwODIgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZ2Ric2VydmVyL2NvbmZp Zy5pbgkyMDE2LTA4LTA3IDIxOjE5OjM3LjY1ODkwNDIxNiArMDIwMAorQEAgLTEyMCw2ICsxMjAs OSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWNoZWNrJyBsaWJyYXJ5ICgt bG1jaGVjaykuICovCiAgI3VuZGVmIEhBVkVfTElCTUNIRUNLCiAgCkBAIC0zMzgsNyArMzM4LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAg LyogRGVmaW5lIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgYnJhbmNoIHRyYWNpbmcuICovCiAgI3Vu ZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAgCi1AQCAtMTkzLDYgKzE5Niw5IEBACitAQCAtMTk2LDYg KzE5OSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwd3JpdGUnIGZ1bmN0 aW9uLiAqLwogICN1bmRlZiBIQVZFX1BXUklURQogIApAQCAtMzQ4LDExICszNDgsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRucycgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhB VkVfU0VUTlMKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZQorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmln dXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2Ric2Vy dmVyL2NvbmZpZ3VyZQkyMDE2LTAxLTA4IDE5OjE1OjU3LjU5NzcwODAzOSArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDEtMDggMTk6 MTY6MDIuNjY3NzM2MzE4ICswMTAwCi1AQCAtNzMxMSw2ICs3MzExLDY0IEBACistLS0gZ2RiLTcu MTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE2LTA4LTA3IDIx OjE5OjI5Ljk1NTgzMzA5MSArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJz ZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjYwOTA0MjM1ICswMjAwCitAQCAt NzUzMCw2ICs3NTMwLDY0IEBACiAgICAgZmkKICBmaQogIAoKZGlmZiAtLWdpdCBhL2dkYi1iYXJl LURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2ggYi9nZGItYmFyZS1EV19UQUdfbGV4aWNh bF9ibG9jay0xb2YyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2ZhNWI4 Li4wMDAwMDAwCi0tLSBhL2dkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyMzUgKzAsMCBAQAotRnJvbSAzYTJiNDM2YWU5OTU4YTEwMjk1 NDVjMDMyMDFiNzIyM2ZmMzNjMTUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDMwIE1h eSAyMDE2IDE0OjExOjQzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBDb2RlIGNsZWFudXA6 IGR3YXJmMl9nZXRfcGNfYm91bmRzOiAtMS8wLysxIC0+IGVudW0KLQotTWFrZSB0aGUgY29kZSAo bWF5YmUpIG1vcmUgcmVhZGFibGUgKyBwcmltYXJpbHkgcHJlcGFyZSBpdCBmb3IgW3BhdGNoIDIv Ml0KLWVudW0gZXh0ZW5zaW9uLgotCi1UaGlzIGNoYW5nZSBzaG91bGQgaGF2ZSBubyBjb2RlIGNo YW5nZSBpbXBhY3QuCi0KLWdkYi9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCUNvZGUgY2xlYW51cDogZHdhcmYyX2dl dF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51bQotCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2Jv dW5kc19raW5kKSBOZXcuCi0JKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGl0IGluIHRoZSBk ZWNsYXJhdGlvbi4KLQkocHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIpOiBBZGp1c3Qg Y2FsbGVyLiAgUmVuYW1lIGhhc19wY19pbmZvCi0JdG8gY3VfYm91bmRzX2tpbmQuCi0JKHJlYWRf ZnVuY19zY29wZSwgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlLCByZWFkX2NhbGxfc2l0ZV9zY29w ZSk6Ci0JQWRqdXN0IGNhbGxlcnMuCi0JKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGVudW0g cGNfYm91bmRzX2tpbmQgaW4gdGhlIGRlZmluaXRpb24uCi0JKGR3YXJmMl9nZXRfc3VicHJvZ3Jh bV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLS0tLQot IGdkYi9DaGFuZ2VMb2cgICAgfCAxMiArKysrKysrKysrCi0gZ2RiL2R3YXJmMnJlYWQuYyB8IDcx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQot IyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxNSBA QAotKzIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLSsKLSsJQ29kZSBjbGVhbnVwOiBkd2FyZjJfZ2V0X3BjX2JvdW5kczogLTEvMC8rMSAtPiBl bnVtCi0rCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKSBOZXcuCi0rCShkd2Fy ZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBpdCBpbiB0aGUgZGVjbGFyYXRpb24uCi0rCShwcm9jZXNz X3BzeW10YWJfY29tcF91bml0X3JlYWRlcik6IEFkanVzdCBjYWxsZXIuICBSZW5hbWUgaGFzX3Bj X2luZm8KLSsJdG8gY3VfYm91bmRzX2tpbmQuCi0rCShyZWFkX2Z1bmNfc2NvcGUsIHJlYWRfbGV4 aWNhbF9ibG9ja19zY29wZSwgcmVhZF9jYWxsX3NpdGVfc2NvcGUpOgotKwlBZGp1c3QgY2FsbGVy cy4KLSsJKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGVudW0gcGNfYm91bmRzX2tpbmQgaW4g dGhlIGRlZmluaXRpb24uCi0rCShkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRzLCBnZXRf c2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0rCi0gMjAxNi0wNS0yOSAgSmFuIEty YXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotIAotIAkqIE5FV1MgKFFDYXRj aFN5c2NhbGxzKTogUmVtb3ZlIHRoZSBwYXJhbWV0ZXIuICBJbmNsdWRlIC4uLgotLS0tIGEvZ2Ri L2R3YXJmMnJlYWQuYwotKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE2MDYsOSArMTYwNiwy NSBAQCBzdGF0aWMgdm9pZCByZWFkX2NhbGxfc2l0ZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKLSBzdGF0aWMgaW50IGR3YXJmMl9yYW5nZXNfcmVh ZCAodW5zaWduZWQsIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwKLSAJCQkgICAgICAgc3RydWN0 IGR3YXJmMl9jdSAqLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7Ci0gCi0tc3RhdGljIGludCBk d2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICosCi0tCQkJCSBDT1JFX0FERFIg KiwgQ09SRV9BRERSICosIHN0cnVjdCBkd2FyZjJfY3UgKiwKLS0JCQkJIHN0cnVjdCBwYXJ0aWFs X3N5bXRhYiAqKTsKLSsvKiBIb3cgZHdhcmYyX2dldF9wY19ib3VuZHMgY29uc3RydWN0ZWQgaXRz ICpMT1dQQyBhbmQgKkhJR0hQQyByZXR1cm4KLSsgICB2YWx1ZXMuICAqLwotK2VudW0gcGNfYm91 bmRzX2tpbmQKLSt7Ci0rICAvKiBObyB2YWxpZCBjb21iaW5hdGlvbiBvZiBEV19BVF9sb3dfcGMs IERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRfcmFuZ2VzCi0rICAgICB3YXMgZm91bmQuICAqLwotKyAg UENfQk9VTkRTX05PVF9QUkVTRU5ULAotKwotKyAgLyogRGlzY29udGlndW91cyByYW5nZSB3YXMg Zm91bmQgLSB0aGF0IGlzIERXX0FUX3JhbmdlcyB3YXMgZm91bmQuICAqLwotKyAgUENfQk9VTkRT X1JBTkdFUywKLSsKLSsgIC8qIENvbnRpZ3VvdXMgcmFuZ2Ugd2FzIGZvdW5kIC0gRFdfQVRfbG93 X3BjIGFuZCBEV19BVF9oaWdoX3BjIHdlcmUgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX0hJR0hf TE9XLAotK307Ci0rCi0rc3RhdGljIGVudW0gcGNfYm91bmRzX2tpbmQgZHdhcmYyX2dldF9wY19i b3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAotKwkJCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9BRERS ICosCi0rCQkJCQkJIHN0cnVjdCBkd2FyZjJfY3UgKiwKLSsJCQkJCQkgc3RydWN0IHBhcnRpYWxf c3ltdGFiICopOwotIAotIHN0YXRpYyB2b2lkIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBk aWVfaW5mbyAqLAotIAkJCQkgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAotQEAgLTU5NDcsNyAr NTk2Myw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3Qg ZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotICAgQ09SRV9BRERSIGJhc2VhZGRyOwotICAgQ09S RV9BRERSIGJlc3RfbG93cGMgPSAwLCBiZXN0X2hpZ2hwYyA9IDA7Ci0gICBzdHJ1Y3QgcGFydGlh bF9zeW10YWIgKnBzdDsKLS0gIGludCBoYXNfcGNfaW5mbzsKLSsgIGVudW0gcGNfYm91bmRzX2tp bmQgY3VfYm91bmRzX2tpbmQ7Ci0gICBjb25zdCBjaGFyICpmaWxlbmFtZTsKLSAgIHN0cnVjdCBw cm9jZXNzX3BzeW10YWJfY29tcF91bml0X2RhdGEgKmluZm8KLSAgICAgPSAoc3RydWN0IHByb2Nl c3NfcHN5bXRhYl9jb21wX3VuaXRfZGF0YSAqKSBkYXRhOwotQEAgLTU5NzcsOSArNTk5Myw5IEBA IHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRl cl9zcGVjcyAqcmVhZGVyLAotIAotICAgLyogUG9zc2libHkgc2V0IHRoZSBkZWZhdWx0IHZhbHVl cyBvZiBMT1dQQyBhbmQgSElHSFBDIGZyb20KLSAgICAgIGBEV19BVF9yYW5nZXMnLiAgKi8KLS0g IGhhc19wY19pbmZvID0gZHdhcmYyX2dldF9wY19ib3VuZHMgKGNvbXBfdW5pdF9kaWUsICZiZXN0 X2xvd3BjLAotLQkJCQkgICAgICAmYmVzdF9oaWdocGMsIGN1LCBwc3QpOwotLSAgaWYgKGhhc19w Y19pbmZvID09IDEgJiYgYmVzdF9sb3dwYyA8IGJlc3RfaGlnaHBjKQotKyAgY3VfYm91bmRzX2tp bmQgPSBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoY29tcF91bml0X2RpZSwgJmJlc3RfbG93cGMsCi0r CQkJCQkgJmJlc3RfaGlnaHBjLCBjdSwgcHN0KTsKLSsgIGlmIChjdV9ib3VuZHNfa2luZCA9PSBQ Q19CT1VORFNfSElHSF9MT1cgJiYgYmVzdF9sb3dwYyA8IGJlc3RfaGlnaHBjKQotICAgICAvKiBT dG9yZSB0aGUgY29udGlndW91cyByYW5nZSBpZiBpdCBpcyBub3QgZW1wdHk7IGl0IGNhbiBiZSBl bXB0eSBmb3IKLSAgICAgICAgQ1VzIHdpdGggbm8gY29kZS4gICovCi0gICAgIGFkZHJtYXBfc2V0 X2VtcHR5IChvYmpmaWxlLT5wc3ltdGFic19hZGRybWFwLAotQEAgLTYwMDMsNyArNjAxOSw3IEBA IHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRl cl9zcGVjcyAqcmVhZGVyLAotICAgICAgIGZpcnN0X2RpZSA9IGxvYWRfcGFydGlhbF9kaWVzIChy ZWFkZXIsIGluZm9fcHRyLCAxKTsKLSAKLSAgICAgICBzY2FuX3BhcnRpYWxfc3ltYm9scyAoZmly c3RfZGllLCAmbG93cGMsICZoaWdocGMsCi0tCQkJICAgICEgaGFzX3BjX2luZm8sIGN1KTsKLSsJ CQkgICAgY3VfYm91bmRzX2tpbmQgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5ULCBjdSk7Ci0gCi0g ICAgICAgLyogSWYgd2UgZGlkbid0IGZpbmQgYSBsb3dwYywgc2V0IGl0IHRvIGhpZ2hwYyB0byBh dm9pZAotIAkgY29tcGxhaW50cyBmcm9tIGBtYWludCBjaGVjaycuCSAqLwotQEAgLTYwMTIsNyAr NjAyOCw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3Qg ZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotIAotICAgICAgIC8qIElmIHRoZSBjb21waWxhdGlv biB1bml0IGRpZG4ndCBoYXZlIGFuIGV4cGxpY2l0IGFkZHJlc3MgcmFuZ2UsCi0gCSB0aGVuIHVz ZSB0aGUgaW5mb3JtYXRpb24gZXh0cmFjdGVkIGZyb20gaXRzIGNoaWxkIGRpZXMuICAqLwotLSAg ICAgIGlmICghIGhhc19wY19pbmZvKQotKyAgICAgIGlmIChjdV9ib3VuZHNfa2luZCA9PSBQQ19C T1VORFNfTk9UX1BSRVNFTlQpCi0gCXsKLSAJICBiZXN0X2xvd3BjID0gbG93cGM7Ci0gCSAgYmVz dF9oaWdocGMgPSBoaWdocGM7Ci1AQCAtMTEzNzMsNyArMTEzODksOCBAQCByZWFkX2Z1bmNfc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgfQot IAotICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5k IGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi0tICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91bmRzIChk aWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91 bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0rICAgICAgPT0gUENfQk9VTkRT X05PVF9QUkVTRU5UKQotICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2V4dGVybmFsLCBjdSk7Ci0gICAgICAgaWYgKCFhdHRyIHx8ICFEV19VTlNORCAoYXR0cikp Ci1AQCAtMTE1MzUsNyArMTE1NTIsOCBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgIGFzIG11bHRpcGxl IGxleGljYWwgYmxvY2tzPyAgSGFuZGxpbmcgY2hpbGRyZW4gaW4gYSBzYW5lIHdheSB3b3VsZAot ICAgICAgYmUgbmFzdHkuICBNaWdodCBiZSBlYXNpZXIgdG8gcHJvcGVybHkgZXh0ZW5kIGdlbmVy aWMgYmxvY2tzIHRvCi0gICAgICBkZXNjcmliZSByYW5nZXMuICAqLwotLSAgaWYgKCFkd2FyZjJf Z2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgIGlmIChk d2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKQotKyAg ICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAgcmV0dXJuOwotICAgbG93cGMgPSBn ZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgbG93cGMgKyBiYXNlYWRkcik7Ci0g ICBoaWdocGMgPSBnZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgaGlnaHBjICsg YmFzZWFkZHIpOwotQEAgLTExNzQ1LDcgKzExNzYzLDggQEAgcmVhZF9jYWxsX3NpdGVfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAJICBDT1JFX0FE RFIgbG93cGM7Ci0gCi0gCSAgLyogRFdfQVRfZW50cnlfcGMgc2hvdWxkIGJlIHByZWZlcnJlZC4g ICovCi0tCSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBO VUxMLCB0YXJnZXRfY3UsIE5VTEwpKQotKwkgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFy Z2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwpCi0rCSAgICAgID09IFBDX0JP VU5EU19OT1RfUFJFU0VOVCkKLSAJICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywK LSAJCSAgICAgICBfKCJEV19BVF9HTlVfY2FsbF9zaXRlX3RhcmdldCB0YXJnZXQgRElFIGhhcyBp bnZhbGlkICIKLSAJCSAgICAgICAgICJsb3cgcGMsIGZvciByZWZlcmVuY2luZyBESUUgMHgleCBb aW4gbW9kdWxlICVzXSIpLAotQEAgLTEyMDIwLDExICsxMjAzOSwxMSBAQCBkd2FyZjJfcmFuZ2Vz X3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAotICAgcmV0dXJu IDE7Ci0gfQotIAotLS8qIEdldCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcyBmcm9tIGEgZGll LiAgUmV0dXJuIDEgaWYgdGhlIGF0dHJpYnV0ZXMKLS0gICBhcmUgcHJlc2VudCBhbmQgdmFsaWQs IG90aGVyd2lzZSwgcmV0dXJuIDAuICBSZXR1cm4gLTEgaWYgdGhlIHJhbmdlIGlzCi0tICAgZGlz Y29udGludW91cywgaS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0aW9uLiAg Ki8KLSsvKiBHZXQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMgZnJvbSBhIGRpZS4gIFNlZSBl bnVtIHBjX2JvdW5kc19raW5kCi0rICAgZGVmaW5pdGlvbiBmb3IgdGhlIHJldHVybiB2YWx1ZS4g ICpMT1dQQyBhbmQgKkhJR0hQQyBhcmUgc2V0IGlmZgotKyAgIFBDX0JPVU5EU19OT1RfUFJFU0VO VCBpcyBub3QgcmV0dXJuZWQuICAqLwotIAotLXN0YXRpYyBpbnQKLStzdGF0aWMgZW51bSBwY19i b3VuZHNfa2luZAotIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg Q09SRV9BRERSICpsb3dwYywKLSAJCSAgICAgIENPUkVfQUREUiAqaGlnaHBjLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwKLSAJCSAgICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0KQotQEAgLTEy MDMzLDcgKzEyMDUyLDcgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBDT1JFX0FERFIgKmxvd3BjLAotICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cl9oaWdoOwot ICAgQ09SRV9BRERSIGxvdyA9IDA7Ci0gICBDT1JFX0FERFIgaGlnaCA9IDA7Ci0tICBpbnQgcmV0 ID0gMDsKLSsgIGVudW0gcGNfYm91bmRzX2tpbmQgcmV0ID0gUENfQk9VTkRTX05PVF9QUkVTRU5U OwotIAotICAgYXR0cl9oaWdoID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaGlnaF9wYywgY3Up OwotICAgaWYgKGF0dHJfaGlnaCkKLUBAIC0xMjA0OCwxMCArMTIwNjcsMTAgQEAgZHdhcmYyX2dl dF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAotIAl9 Ci0gICAgICAgZWxzZQotIAkvKiBGb3VuZCBoaWdoIHcvbyBsb3cgYXR0cmlidXRlLiAgKi8KLS0J cmV0dXJuIDA7Ci0rCXJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gCi0gICAgICAgLyog Rm91bmQgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8KLS0gICAgICByZXQgPSAx OwotKyAgICAgIHJldCA9IFBDX0JPVU5EU19ISUdIX0xPVzsKLSAgICAgfQotICAgZWxzZQotICAg ICB7Ci1AQCAtMTIwNzAsMTUgKzEyMDg5LDE1IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJICAvKiBWYWx1ZSBvZiB0aGUg RFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQotIAkgICAgIC5kZWJ1 Z19yYW5nZXMgc2VjdGlvbi4gICovCi0gCSAgaWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKHJhbmdl c19vZmZzZXQsICZsb3csICZoaWdoLCBjdSwgcHN0KSkKLS0JICAgIHJldHVybiAwOwotKwkgICAg cmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSAJICAvKiBGb3VuZCBkaXNjb250aW51b3Vz IHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCi0tCSAgcmV0ID0gLTE7Ci0rCSAgcmV0ID0gUENfQk9V TkRTX1JBTkdFUzsKLSAJfQotICAgICB9Ci0gCi0gICAvKiByZWFkX3BhcnRpYWxfZGllIGhhcyBh bHNvIHRoZSBzdHJpY3QgTE9XIDwgSElHSCByZXF1aXJlbWVudC4gICovCi0gICBpZiAoaGlnaCA8 PSBsb3cpCi0tICAgIHJldHVybiAwOwotKyAgICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5U OwotIAotICAgLyogV2hlbiB1c2luZyB0aGUgR05VIGxpbmtlciwgLmdudS5saW5rb25jZS4gc2Vj dGlvbnMgYXJlIHVzZWQgdG8KLSAgICAgIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY29waWVzIG9mIGZ1 bmN0aW9ucyBhbmQgdnRhYmxlcyBhbmQgc3VjaC4KLUBAIC0xMjA4OSw3ICsxMjEwOCw3IEBAIGR3 YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dw YywKLSAgICAgIElmIHRoaXMgaXMgYSBkaXNjYXJkZWQgZnVuY3Rpb24sIG1hcmsgdGhlIHBjIGJv dW5kcyBhcyBpbnZhbGlkLAotICAgICAgc28gdGhhdCBHREIgd2lsbCBpZ25vcmUgaXQuICAqLwot ICAgaWYgKGxvdyA9PSAwICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3pl cm8pCi0tICAgIHJldHVybiAwOwotKyAgICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwot IAotICAgKmxvd3BjID0gbG93OwotICAgaWYgKGhpZ2hwYykKLUBAIC0xMjExMCw3ICsxMjEyOSw4 IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGll LAotICAgQ09SRV9BRERSIGxvdywgaGlnaDsKLSAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBk aWUtPmNoaWxkOwotIAotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3csICZo aWdoLCBjdSwgTlVMTCkpCi0rICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvdywg JmhpZ2gsIGN1LCBOVUxMKQotKyAgICAgICE9IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAg ewotICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwotICAgICAgICpoaWdocGMgPSBt YXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTEyMTQ3LDcgKzEyMTY3LDggQEAgZ2V0X3Njb3BlX3Bj X2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JFX0FERFIgYmVzdF9oaWdoID0g KENPUkVfQUREUikgMDsKLSAgIENPUkVfQUREUiBjdXJyZW50X2xvdywgY3VycmVudF9oaWdoOwot IAotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZjdXJyZW50X2xvdywgJmN1cnJl bnRfaGlnaCwgY3UsIE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZj dXJyZW50X2xvdywgJmN1cnJlbnRfaGlnaCwgY3UsIE5VTEwpCi0rICAgICAgIT0gUENfQk9VTkRT X05PVF9QUkVTRU5UKQotICAgICB7Ci0gICAgICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKLSAg ICAgICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hpZ2g7Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQg YS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0yb2YyLnBhdGNoIGIvZ2RiLWJhcmUtRFdf VEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggYzg4ZmRmMy4uMDAwMDAwMAotLS0gYS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0y b2YyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQzICswLDAgQEAKLUZyb20gZTM4NTU5M2Vl Zjk4YWM5MmJlNTcxNTllMTQxZjRiODA1ZGFkYmJiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTog TW9uLCAzMCBNYXkgMjAxNiAxNDoxNDo0MyArMDIwMAotU3ViamVjdDogW1BBVENIIDIvMl0gUFIg MTUyMzE6IGltcG9ydCBiYXJlIERXX1RBR19sZXhpY2FsX2Jsb2NrCi0KLUxvY2FsIHZhcmlhYmxl cyBpbiBsYW1iZGFzIGFyZSBub3QgYWNjZXNzaWJsZQotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9i dWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTUyMzEKLQotR0RCOiByZWFkX2xleGljYWxfYmxvY2tf c2NvcGUKLSAgLyogSWdub3JlIGJsb2NrcyB3aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5k IGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi1bLi4uXQotICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91 bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQotICAgIHJldHVybjsKLQotQnV0 IHNvbWV0aW1lcyB0aGVyZSBpczoKLQotRkFJTDogZ2NjLTUuMy4xLTYuZmMyMy54ODZfNjQKLSA8 Mj48OTI+OiBBYmJyZXYgTnVtYmVyOiAxMSAoRFdfVEFHX2xleGljYWxfYmxvY2spCi0gPDM+PDlj PjogQWJicmV2IE51bWJlcjogMTMgKERXX1RBR19zdHJ1Y3R1cmVfdHlwZSkKLSAgICA8OWQ+ICAg RFdfQVRfbmFtZSAgICAgICAgOiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4M2MpOiA8bGFt YmRhKCk+Ci0gICAgWy4uLl0KLQotV2hlcmUgRFdfVEFHX2xleGljYWxfYmxvY2sgaGFzIG5vIGF0 dHJpYnV0ZXMuICBTdWNoIHdob2xlIHN1YnRyZWUgaXMgY3VycmVudGx5Ci1kcm9wcGVkIGJ5IEdE QiB3aGlsZSBJIHRoaW5rIGl0IHNob3VsZCBqdXN0IGltcG9ydCBhbGwgaXRzIGNoaWxkcmVuIERJ RXMuCi0KLUl0IGV2ZW4gWEZBSUwtPlhQQVNTZXMgZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxp bmVkLmV4cDoKLQljb21taXQgMGZhN2ZlNTA2YzI0MmI0NTljNGMwNWQzMzFlN2M3ZDY2ZmI1MjM5 MAotCUF1dGhvcjogSm9lbCBCcm9iZWNrZXIgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KLQkgICAg b3V0IG9mIGxpbmUgZnVuY3Rpb25zIG5lc3RlZCBpbnNpZGUgaW5saW5lIGZ1bmN0aW9ucy4KLVNv IEkgaGF2ZSByZW1vdmVkIHRoYXQgeGZhaWwuCi0KLWdkYi9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8x NTIzMQotCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKTogQWRkIFBDX0JPVU5E U19JTlZBTElELgotCShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciwgcmVhZF9mdW5j X3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0JKHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSk6IElt cG9ydCBESUVzIGZyb20gYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jay4KLQkocmVhZF9jYWxsX3Np dGVfc2NvcGUpOiBBZGp1c3QgY2FsbGVycy4KLQkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBJbXBs ZW1lbnQgcGNfYm91bmRzX2ludmFsaWQuCi0JKGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3Vu ZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLQotZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KLQotCVBSIGMrKy8xNTIzMQotCSogZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9p bmxpbmVkLmV4cDogUmVtb3ZlIHhmYWlscy4KLQkqIGdkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxv Y2stYmFyZS5leHA6IE5ldyBmaWxlLgotLS0tCi0gZ2RiL0NoYW5nZUxvZyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrCi0gZ2RiL2R3YXJmMnJlYWQuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1MyArKysrKysrKysrLS0tLS0tCi0gZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwot IGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cCAgIHwgIDYg LS0KLSAuLi4vZ2RiLmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1iYXJlLmV4cCAgICAgICAgICB8 IDcwICsrKysrKysrKysrKysrKysrKysrKysKLSA1IGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRp b25zKCspLCAyNSBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUuZXhwCi0KLSMjIyBhL2dkYi9DaGFu Z2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDUgKzEsMTUgQEAKLSAyMDE2LTA1LTMw ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0gCi0rCVBSIGMr Ky8xNTIzMQotKwkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCk6IEFkZCBQQ19C T1VORFNfSU5WQUxJRC4KLSsJKHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyLCByZWFk X2Z1bmNfc2NvcGUpOiBBZGp1c3QgY2FsbGVycy4KLSsJKHJlYWRfbGV4aWNhbF9ibG9ja19zY29w ZSk6IEltcG9ydCBESUVzIGZyb20gYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jay4KLSsJKHJlYWRf Y2FsbF9zaXRlX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0rCShkd2FyZjJfZ2V0X3BjX2JvdW5k cyk6IEltcGxlbWVudCBwY19ib3VuZHNfaW52YWxpZC4KLSsJKGR3YXJmMl9nZXRfc3VicHJvZ3Jh bV9wY19ib3VuZHMsIGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLSsKLSsy MDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0r Ci0gCUNvZGUgY2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51bQot IAkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCkgTmV3LgotIAkoZHdhcmYyX2dl dF9wY19ib3VuZHMpOiBVc2UgaXQgaW4gdGhlIGRlY2xhcmF0aW9uLgotLS0tIGEvZ2RiL2R3YXJm MnJlYWQuYwotKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE2MDcsMTMgKzE2MDcsMTYgQEAg c3RhdGljIGludCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09S RV9BRERSICosCi0gCQkJICAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxf c3ltdGFiICopOwotIAotIC8qIEhvdyBkd2FyZjJfZ2V0X3BjX2JvdW5kcyBjb25zdHJ1Y3RlZCBp dHMgKkxPV1BDIGFuZCAqSElHSFBDIHJldHVybgotLSAgIHZhbHVlcy4gICovCi0rICAgdmFsdWVz LiAgS2VlcCB0aGUgaXRlbXMgb3JkZXJlZCB3aXRoIGluY3JlYXNpbmcgY29uc3RyYWludHMgY29t cGxpYW5jZS4gICovCi0gZW51bSBwY19ib3VuZHNfa2luZAotIHsKLS0gIC8qIE5vIHZhbGlkIGNv bWJpbmF0aW9uIG9mIERXX0FUX2xvd19wYywgRFdfQVRfaGlnaF9wYyBvciBEV19BVF9yYW5nZXMK LS0gICAgIHdhcyBmb3VuZC4gICovCi0rICAvKiBObyBhdHRyaWJ1dGUgRFdfQVRfbG93X3BjLCBE V19BVF9oaWdoX3BjIG9yIERXX0FUX3JhbmdlcyB3YXMgZm91bmQuICAqLwotICAgUENfQk9VTkRT X05PVF9QUkVTRU5ULAotIAotKyAgLyogU29tZSBvZiB0aGUgYXR0cmlidXRlcyBEV19BVF9sb3df cGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRfcmFuZ2VzCi0rICAgICB3ZXJlIHByZXNlbnQgYnV0 IHRoZXkgZG8gbm90IGZvcm0gYSB2YWxpZCByYW5nZSBvZiBQQyBhZGRyZXNzZXMuICAqLwotKyAg UENfQk9VTkRTX0lOVkFMSUQsCi0rCi0gICAvKiBEaXNjb250aWd1b3VzIHJhbmdlIHdhcyBmb3Vu ZCAtIHRoYXQgaXMgRFdfQVRfcmFuZ2VzIHdhcyBmb3VuZC4gICovCi0gICBQQ19CT1VORFNfUkFO R0VTLAotIAotQEAgLTYwMTksNyArNjAyMiw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRf cmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotICAgICAgIGZp cnN0X2RpZSA9IGxvYWRfcGFydGlhbF9kaWVzIChyZWFkZXIsIGluZm9fcHRyLCAxKTsKLSAKLSAg ICAgICBzY2FuX3BhcnRpYWxfc3ltYm9scyAoZmlyc3RfZGllLCAmbG93cGMsICZoaWdocGMsCi0t CQkJICAgIGN1X2JvdW5kc19raW5kID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCwgY3UpOwotKwkJ CSAgICBjdV9ib3VuZHNfa2luZCA8PSBQQ19CT1VORFNfSU5WQUxJRCwgY3UpOwotIAotICAgICAg IC8qIElmIHdlIGRpZG4ndCBmaW5kIGEgbG93cGMsIHNldCBpdCB0byBoaWdocGMgdG8gYXZvaWQK LSAJIGNvbXBsYWludHMgZnJvbSBgbWFpbnQgY2hlY2snLgkgKi8KLUBAIC02MDI4LDcgKzYwMzEs NyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRpZV9y ZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAKLSAgICAgICAvKiBJZiB0aGUgY29tcGlsYXRpb24gdW5p dCBkaWRuJ3QgaGF2ZSBhbiBleHBsaWNpdCBhZGRyZXNzIHJhbmdlLAotIAkgdGhlbiB1c2UgdGhl IGluZm9ybWF0aW9uIGV4dHJhY3RlZCBmcm9tIGl0cyBjaGlsZCBkaWVzLiAgKi8KLS0gICAgICBp ZiAoY3VfYm91bmRzX2tpbmQgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotKyAgICAgIGlmIChj dV9ib3VuZHNfa2luZCA8PSBQQ19CT1VORFNfSU5WQUxJRCkKLSAJewotIAkgIGJlc3RfbG93cGMg PSBsb3dwYzsKLSAJICBiZXN0X2hpZ2hwYyA9IGhpZ2hwYzsKLUBAIC0xMTM5MCw3ICsxMTM5Myw3 IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQotIAotICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3aXRoIG1pc3Npbmcgb3IgaW52YWxp ZCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcy4gICovCi0gICBpZiAoZHdhcmYyX2dldF9wY19i b3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSwgTlVMTCkKLS0gICAgICA9PSBQQ19CT1VO RFNfTk9UX1BSRVNFTlQpCi0rICAgICAgPD0gUENfQk9VTkRTX0lOVkFMSUQpCi0gICAgIHsKLSAg ICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKLSAgICAg ICBpZiAoIWF0dHIgfHwgIURXX1VOU05EIChhdHRyKSkKLUBAIC0xMTU1Miw5ICsxMTU1NSwyMCBA QCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLSAgICAgIGFzIG11bHRpcGxlIGxleGljYWwgYmxvY2tzPyAgSGFuZGxp bmcgY2hpbGRyZW4gaW4gYSBzYW5lIHdheSB3b3VsZAotICAgICAgYmUgbmFzdHkuICBNaWdodCBi ZSBlYXNpZXIgdG8gcHJvcGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxvY2tzIHRvCi0gICAgICBkZXNj cmliZSByYW5nZXMuICAqLwotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dw YywgJmhpZ2hwYywgY3UsIE5VTEwpCi0tICAgICAgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQot LSAgICByZXR1cm47Ci0rICBzd2l0Y2ggKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dw YywgJmhpZ2hwYywgY3UsIE5VTEwpKQotKyAgICB7Ci0rICAgIGNhc2UgUENfQk9VTkRTX05PVF9Q UkVTRU5UOgotKyAgICAgIC8qIERXX1RBR19sZXhpY2FsX2Jsb2NrIGhhcyBubyBhdHRyaWJ1dGVz LCBwcm9jZXNzIGl0cyBjaGlsZHJlbiBhcyBpZgotKwkgdGhlcmUgd2FzIG5vIHdyYXBwaW5nIGJ5 IHRoYXQgRFdfVEFHX2xleGljYWxfYmxvY2suCi0rCSBHQ0MgZG9lcyBubyBsb25nZXIgcHJvZHVj ZXMgc3VjaCBEV0FSRiBzaW5jZSBHQ0MgcjIyNDE2MS4gICovCi0rICAgICAgZm9yIChjaGlsZF9k aWUgPSBkaWUtPmNoaWxkOwotKwkgICBjaGlsZF9kaWUgIT0gTlVMTCAmJiBjaGlsZF9kaWUtPnRh ZzsKLSsJICAgY2hpbGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSkpCi0rCXByb2Nlc3Nf ZGllIChjaGlsZF9kaWUsIGN1KTsKLSsgICAgICByZXR1cm47Ci0rICAgIGNhc2UgUENfQk9VTkRT X0lOVkFMSUQ6Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0gICBsb3dwYyA9IGdkYmFyY2hfYWRq dXN0X2R3YXJmMl9hZGRyIChnZGJhcmNoLCBsb3dwYyArIGJhc2VhZGRyKTsKLSAgIGhpZ2hwYyA9 IGdkYmFyY2hfYWRqdXN0X2R3YXJmMl9hZGRyIChnZGJhcmNoLCBoaWdocGMgKyBiYXNlYWRkcik7 Ci0gCi1AQCAtMTE3NjQsNyArMTE3NzgsNyBAQCByZWFkX2NhbGxfc2l0ZV9zY29wZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAotIAkgIC8qIERXX0FUX2Vu dHJ5X3BjIHNob3VsZCBiZSBwcmVmZXJyZWQuICAqLwotIAkgIGlmIChkd2FyZjJfZ2V0X3BjX2Jv dW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwpCi0tCSAgICAg ID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsJICAgICAgPD0gUENfQk9VTkRTX0lOVkFMSUQp Ci0gCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0gCQkgICAgICAgXygiRFdf QVRfR05VX2NhbGxfc2l0ZV90YXJnZXQgdGFyZ2V0IERJRSBoYXMgaW52YWxpZCAiCi0gCQkgICAg ICAgICAibG93IHBjLCBmb3IgcmVmZXJlbmNpbmcgRElFIDB4JXggW2luIG1vZHVsZSAlc10iKSwK LUBAIC0xMjA0MSw3ICsxMjA1NSw3IEBAIGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQgb2Zm c2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4sCi0gCi0gLyogR2V0IGxvdyBhbmQgaGlnaCBwYyBh dHRyaWJ1dGVzIGZyb20gYSBkaWUuICBTZWUgZW51bSBwY19ib3VuZHNfa2luZAotICAgIGRlZmlu aXRpb24gZm9yIHRoZSByZXR1cm4gdmFsdWUuICAqTE9XUEMgYW5kICpISUdIUEMgYXJlIHNldCBp ZmYKLS0gICBQQ19CT1VORFNfTk9UX1BSRVNFTlQgaXMgbm90IHJldHVybmVkLiAgKi8KLSsgICBu ZWl0aGVyIFBDX0JPVU5EU19OT1RfUFJFU0VOVCBub3IgUENfQk9VTkRTX0lOVkFMSUQgYXJlIHJl dHVybmVkLiAgKi8KLSAKLSBzdGF0aWMgZW51bSBwY19ib3VuZHNfa2luZAotIGR3YXJmMl9nZXRf cGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLUBAIC0x MjA1Miw3ICsxMjA2Niw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJfaGlnaDsK LSAgIENPUkVfQUREUiBsb3cgPSAwOwotICAgQ09SRV9BRERSIGhpZ2ggPSAwOwotLSAgZW51bSBw Y19ib3VuZHNfa2luZCByZXQgPSBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rICBlbnVtIHBjX2Jv dW5kc19raW5kIHJldDsKLSAKLSAgIGF0dHJfaGlnaCA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2hpZ2hfcGMsIGN1KTsKLSAgIGlmIChhdHRyX2hpZ2gpCi1AQCAtMTIwNjcsNyArMTIwODEsNyBA QCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAq bG93cGMsCi0gCX0KLSAgICAgICBlbHNlCi0gCS8qIEZvdW5kIGhpZ2ggdy9vIGxvdyBhdHRyaWJ1 dGUuICAqLwotLQlyZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKwlyZXR1cm4gUENfQk9V TkRTX0lOVkFMSUQ7Ci0gCi0gICAgICAgLyogRm91bmQgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgYWRk cmVzc2VzLiAgKi8KLSAgICAgICByZXQgPSBQQ19CT1VORFNfSElHSF9MT1c7Ci1AQCAtMTIwODks MTUgKzEyMTAzLDE3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgQ09SRV9BRERSICpsb3dwYywKLSAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0 dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQotIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlv bi4gICovCi0gCSAgaWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKHJhbmdlc19vZmZzZXQsICZsb3cs ICZoaWdoLCBjdSwgcHN0KSkKLS0JICAgIHJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0r CSAgICByZXR1cm4gUENfQk9VTkRTX0lOVkFMSUQ7Ci0gCSAgLyogRm91bmQgZGlzY29udGludW91 cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwotIAkgIHJldCA9IFBDX0JPVU5EU19SQU5HRVM7Ci0g CX0KLSsgICAgICBlbHNlCi0rCXJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gICAgIH0K LSAKLSAgIC8qIHJlYWRfcGFydGlhbF9kaWUgaGFzIGFsc28gdGhlIHN0cmljdCBMT1cgPCBISUdI IHJlcXVpcmVtZW50LiAgKi8KLSAgIGlmIChoaWdoIDw9IGxvdykKLS0gICAgcmV0dXJuIFBDX0JP VU5EU19OT1RfUFJFU0VOVDsKLSsgICAgcmV0dXJuIFBDX0JPVU5EU19JTlZBTElEOwotIAotICAg LyogV2hlbiB1c2luZyB0aGUgR05VIGxpbmtlciwgLmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJl IHVzZWQgdG8KLSAgICAgIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucyBh bmQgdnRhYmxlcyBhbmQgc3VjaC4KLUBAIC0xMjEwOCw3ICsxMjEyNCw3IEBAIGR3YXJmMl9nZXRf cGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgICAg IElmIHRoaXMgaXMgYSBkaXNjYXJkZWQgZnVuY3Rpb24sIG1hcmsgdGhlIHBjIGJvdW5kcyBhcyBp bnZhbGlkLAotICAgICAgc28gdGhhdCBHREIgd2lsbCBpZ25vcmUgaXQuICAqLwotICAgaWYgKGxv dyA9PSAwICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi0tICAg IHJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rICAgIHJldHVybiBQQ19CT1VORFNfSU5W QUxJRDsKLSAKLSAgICpsb3dwYyA9IGxvdzsKLSAgIGlmIChoaWdocGMpCi1AQCAtMTIxMjksOCAr MTIxNDUsNyBAQCBkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRzIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwKLSAgIENPUkVfQUREUiBsb3csIGhpZ2g7Ci0gICBzdHJ1Y3QgZGllX2luZm8gKmNo aWxkID0gZGllLT5jaGlsZDsKLSAKLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAm bG93LCAmaGlnaCwgY3UsIE5VTEwpCi0tICAgICAgIT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQot KyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3csICZoaWdoLCBjdSwgTlVMTCkg Pj0gUENfQk9VTkRTX1JBTkdFUykKLSAgICAgewotICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3Bj LCBsb3cpOwotICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTEyMTY4 LDcgKzEyMTgzLDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUs Ci0gICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsKLSAKLSAgIGlmIChkd2Fy ZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmY3VycmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1LCBO VUxMKQotLSAgICAgICE9IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsgICAgICA+PSBQQ19CT1VO RFNfUkFOR0VTKQotICAgICB7Ci0gICAgICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKLSAgICAg ICBiZXN0X2hpZ2ggPSBjdXJyZW50X2hpZ2g7Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZwotIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOSBAQAotKzIwMTYt MDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJ UFIgYysrLzE1MjMxCi0rCSogZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDogUmVt b3ZlIHhmYWlscy4KLSsJKiBnZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUuZXhwOiBO ZXcgZmlsZS4KLSsKLSAyMDE2LTA1LTI3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29t PgotIAotIAkqIGdkYi50aHJlYWRzL2F0dGFjaC1tYW55LXNob3J0LWxpdmVkLXRocmVhZHMuZXhw IChiYWRfZGVqYWdudSk6Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvb3V0X29mX2xpbmVf aW5faW5saW5lZC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9vdXRfb2ZfbGluZV9p bl9pbmxpbmVkLmV4cAotQEAgLTIzLDIwICsyMywxNCBAQCBpZiB7W2dkYl9jb21waWxlX2FkYSAi JHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVnIG9wdGltaXplPS1PMn1d Ci0gCi0gY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQotIAotLSMgR0NDIGN1cnJlbnRseSBpcyBt aXNzaW5nIGEgRFdfQVRfb3JpZ2luIGF0dHJpYnV0ZSBpbiBvbmUgb2YgdGhlCi0tIyBsZXhpY2Fs IGJsb2NrcywgcHJldmVudGluZyBHREIgZnJvbSBjcmVhdGluZyBhIHN5bWJvbCBmb3IgdGhlCi0t IyBzdWJwcm9ncmFtIHdlIHdhbnQgdG8gYnJlYWsgb24uCi0tc2V0dXBfeGZhaWwgIiotKi0qIgot IGdkYl90ZXN0ICJicmVhayBmb29fbzIyNF8wMjEuY2hpbGQxLmNoaWxkMiIgXAotICAgICAgICAg ICJCcmVha3BvaW50IFxbMC05XF0rIGF0Lio6IGZpbGUgLipmb29fbzIyNF8wMjEuYWRiLCBsaW5l IFxbMC05XF0rLiIKLSAKLSBnZGJfcnVuX2NtZAotLXNldHVwX3hmYWlsICIqLSotKiIKLSBnZGJf dGVzdCAiIiBcCi0gICAgICAgICAgIkJyZWFrcG9pbnQgJGRlY2ltYWwsIGZvb19vMjI0XzAyMVxc LmNoaWxkMVxcLmNoaWxkMiBcXChzPVxcLlxcLlxcLlxcKS4qIgotIAotIHNldCBvcHRfYWRkcl9p biAiKCRoZXggaW4pPyIKLS1zZXR1cF94ZmFpbCAiKi0qLSoiCi0gZ2RiX3Rlc3QgImJ0IiBcCi0g ICAgIFttdWx0aV9saW5lICIjMCArJG9wdF9hZGRyX2luICtmb29fbzIyNF8wMjFcXC5jaGlsZDFc XC5jaGlsZDIgXFwocz1cXC5cXC5cXC5cXCkuKiIgXAotICAgICAgICAgICAgICAgICAiIzEgKyRv cHRfYWRkcl9pbiArZm9vX28yMjRfMDIxXFwuY2hpbGQxIFxcKFxcKS4qIiBcCi0tLS0gL2Rldi9u dWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFy ZS5leHAKLUBAIC0wLDAgKzEsNzAgQEAKLSsjIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNl bnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLStsb2Fk X2xpYiBkd2FyZi5leHAKLSsKLSsjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0 cyB3aGljaCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCi0raWYgeyFbZHdhcmYyX3N1cHBv cnRdfSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIC5TIG1haW4u YwotKwotKyMgTWFrZSBzb21lIERXQVJGIGZvciB0aGUgdGVzdC4KLStzZXQgYXNtX2ZpbGUgW3N0 YW5kYXJkX291dHB1dF9maWxlICRzcmNmaWxlXQotK0R3YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUg ewotKyAgICBjdSB7fSB7Ci0rCWNvbXBpbGVfdW5pdCB7Ci0rCSAgICB7bG93X3BjIFtnZGJfdGFy Z2V0X3N5bWJvbCBtYWluXSBEV19GT1JNX2FkZHJ9Ci0rCSAgICB7aGlnaF9wYyBbZ2RiX3Rhcmdl dF9zeW1ib2wgbWFpbl0rMHgxMDAwMCBEV19GT1JNX2FkZHJ9Ci0rCX0gewotKwkgICAgZGVjbGFy ZV9sYWJlbHMgaW50ZWdlcl9sYWJlbAotKwotKwkgICAgaW50ZWdlcl9sYWJlbDogRFdfVEFHX2Jh c2VfdHlwZSB7Ci0rCQl7RFdfQVRfYnl0ZV9zaXplIDQgRFdfRk9STV9zZGF0YX0KLSsJCXtEV19B VF9lbmNvZGluZyAgQERXX0FURV9zaWduZWR9Ci0rCQl7RFdfQVRfbmFtZSAgICAgIGludGVnZXJ9 Ci0rCSAgICB9Ci0rCi0rCSAgICBEV19UQUdfc3VicHJvZ3JhbSB7Ci0rCQl7bmFtZSBtYWlufQot KwkJe0RXX0FUX2V4dGVybmFsIDEgZmxhZ30KLSsJCXtsb3dfcGMgW2dkYl90YXJnZXRfc3ltYm9s IG1haW5dIERXX0ZPUk1fYWRkcn0KLSsJCXtoaWdoX3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBtYWlu XSsweDEwMDAwIERXX0ZPUk1fYWRkcn0KLSsJICAgIH0gewotKwkJRFdfVEFHX2xleGljYWxfYmxv Y2sgewotKwkJfSB7Ci0rCQkgICAgRFdfVEFHX3ZhcmlhYmxlIHsKLSsJCQl7RFdfQVRfbmFtZSB0 ZXN0dmFyfQotKwkJCSAgICB7RFdfQVRfdHlwZSA6JGludGVnZXJfbGFiZWx9Ci0rCQkJICAgIHtE V19BVF9leHRlcm5hbCAxIGZsYWd9Ci0rCQkJe0RXX0FUX2xvY2F0aW9uIHsKLSsJCQkgICAgRFdf T1BfYWRkciBbZ2RiX3RhcmdldF9zeW1ib2wgbWFpbl0KLSsJCQl9IFNQRUNJQUxfZXhwcn0KLSsJ CSAgICB9Ci0rCQl9Ci0rCSAgICB9Ci0rCX0KLSsgICAgfQotK30KLSsKLStpZiB7IFtwcmVwYXJl X2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSBcCi0rCQkJICBbbGlzdCAk c3JjZmlsZTIgJGFzbV9maWxlXSB7bm9kZWJ1Z31dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0r Ci0rcnVudG9fbWFpbgotKwotKyMgRkFJTGluZyBHREIgZGlkIHByaW50OiBObyBzeW1ib2wgInRl c3R2YXIiIGluIGN1cnJlbnQgY29udGV4dC4KLStnZGJfdGVzdCAicCB0ZXN0dmFyIiB7ID0gLT9b MC05XSt9Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJl Zm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5k ZXggYjY1N2JkNS4uYmEwNjIyYSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZv cmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApA QCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kz ODYvbGludXg2NC5taAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4 Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9n ZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MDY3NDg3NyAr MDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1o CTIwMTYtMDItMTEgMjA6NTY6NTEuMTU4Nzk3NzEyICswMTAwCistLS0gZ2RiLTcuMTEuOTAuMjAx NjA4MDcub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDE2LTA4LTA3IDIyOjI3OjEz Ljg4OTI4NTI3NCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4 Ni9saW51eDY0Lm1oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUxMzExMTI0ICswMjAwCiBAQCAtNyw3 ICs3LDcgQEAKICAJbGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8gbGludXgtYnRyYWNlLm8g XAogIAlsaW51eC13YWl0cGlkLm8gbGludXgtcGVyc29uYWxpdHkubyB4ODYtbGludXgubyBcCkBA IC0xMSwxMCArMTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcv aTM4Ni9saW51eDY0Lm1oCiAgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0 CiAgCiAgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3Mg dG8gc3ltYm9scyBpbiB0aGUKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmln L2kzODYvbGludXgubWgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnL2kz ODYvbGludXgubWgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dk Yi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2LTAyLTExIDIwOjU2OjI2LjkyNTYzODQzMCArMDEw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2 LTAyLTExIDIwOjU2OjMyLjQ3MTY3NDg4NCArMDEwMAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3 Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIwMTYtMDgtMDcgMjI6Mjc6MTMuODg5Mjg1 Mjc0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4 Lm1oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUxMzExMTI0ICswMjAwCiBAQCAtMSw2ICsxLDYgQEAK ICAjIEhvc3Q6IEludGVsIDM4NiBydW5uaW5nIEdOVS9MaW51eC4KICAKQEAgLTIzLDEwICsyMywx MCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1o CiAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAogIAl4ODYtbmF0Lm8g eDg2LWRyZWdzLm8gaTM4Ni1saW51eC1uYXQubyB4ODYtbGludXgtbmF0Lm8gXAogIAlwcm9jLXNl cnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBcCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvY29uZmlnL2kzODYvbm0tbGludXguaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCTIwMTYtMDItMTEgMjA6NTY6MzIuNDcxNjc0ODg0 ICswMTAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4 LmgJMjAxNi0wOC0wNyAyMjoyOToyMC40NTEzMTExMjQgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAK ICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05VL0xpbnV4IGkzODYuCiArCkBAIC01NiwxMCArNTYs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51 eC5oCiArI2RlZmluZSB0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50KHR5cGUsIGNu dCwgb3QpIDEKICsKICsjZW5kaWYgLyogTk1fTElOVVg2NF9IICovCi1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbm0tbGludXg2NC5oCTIwMTYtMDItMTEg MjA6NTY6MzIuNDcxNjc0ODg0ICswMTAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2Nv bmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE2LTA4LTA3IDIyOjI5OjIwLjQ1MTMxMTEyNCArMDIw MAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5hdGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1k NjQuCiArCkBAIC04OSwxMyArODksMTMgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKICsjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3 YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRpZiAvKiBOTV9MSU5VWDY0 X0ggKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGFyZ2V0LmgKK0luZGV4OiBn ZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC45MC4yMDE2MDIxMS5vcmlnL2dkYi90YXJnZXQuaAkyMDE2LTAyLTExIDIwOjU2OjI2LjkyNjYz ODQzNyArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90YXJnZXQuaAkyMDE2LTAy LTExIDIwOjU2OjMyLjQ3MjY3NDg5MCArMDEwMAotQEAgLTE5MjQsOSArMTkyNCwxMSBAQAotICAg IENOVCBpcyB0aGUgbnVtYmVyIG9mIHN1Y2ggd2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIsIGluY2x1 ZGluZyB0aGlzCi0gICAgb25lLiAgT1RIRVJUWVBFIGlzIHdobyBrbm93cyB3aGF0Li4uICAqLwor LS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTYtMDgtMDcgMjI6 Mjc6MTMuODg5Mjg1Mjc0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rhcmdl dC5oCTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUyMzExMTMyICswMjAwCitAQCAtMTkzOSw5ICsxOTM5 LDExIEBACisgICAgb25lLiAgT1RIRVJUWVBFIGlzIHRoZSBudW1iZXIgb2Ygd2F0Y2hwb2ludHMg b2Ygb3RoZXIgdHlwZXMgdGhhbgorICAgIHRoaXMgb25lIHVzZWQgc28gZmFyLiAgKi8KICAKICsj aWZuZGVmIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQKICAjZGVmaW5lIHRhcmdl dF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQoVFlQRSxDTlQsT1RIRVJUWVBFKSBcCkBAIC0x MDUsMTAgKzEwNSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3RhcmdldC5o CiAgCiAgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVnIHJlZ2lzdGVycyBuZWVkZWQgdG8g d2F0Y2ggdGhlIGdpdmVuCiAgICAgbWVtb3J5IHJlZ2lvbiwgb3IgemVybyBpZiBub3Qgc3VwcG9y dGVkLiAgKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2 MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dh dGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNi0wMi0xMSAyMDo1NjozMi40NzI2NzQ4OTAg KzAxMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dh dGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNi0wOC0wNyAyMjoyOToyMC40NTIzMTExMzIg KzAyMDAKIEBAIC0wLDAgKzEsNDAgQEAKICsjIENvcHlyaWdodCAyMDA5LCAyMDEwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTUwLDMgKzE1MCwxNiBAQCBJbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJl Zm9yZS1ydW4uZXhwCiArZ2RiX3Rlc3QgIiIgIm1haW4gLiogYXQgLioiICJzdGFydCIKICsKICtn ZGJfdGVzdCAiY29udGludWUiICJDb250aW51aW5nLlxyXG5cclxuSGFyZHdhcmUgcmVhZCB3YXRj aHBvaW50IFxbMC05XF0rOiB3YXRjaGVlXHJcblxyXG5WYWx1ZSA9IDBcclxuLioiCitJbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2JyZWFrcG9pbnQuYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE2LTA4LTA3IDIyOjMz OjM4LjgzNTQwNTQ1OCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9icmVha3Bv aW50LmMJMjAxNi0wOC0wNyAyMjozNDo0NS4wMjM5NDE5NTAgKzAyMDAKK0BAIC0xNDk1Myw3ICsx NDk1Myw3IEBACisgCisgICBpZiAoYnB0LT50eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQp CisgICAgIHsKKy0gICAgICBpbnQgaTsKKysgICAgICBpbnQgaSBBVFRSSUJVVEVfVU5VU0VEOwor ICAgICAgIGkgPSBod19icmVha3BvaW50X3VzZWRfY291bnQgKCk7CisgICAgICAgdGFyZ2V0X3Jl c291cmNlc19vayA9IAorIAl0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChicF9o YXJkd2FyZV9icmVha3BvaW50LCAKCmRpZmYgLS1naXQgYS9nZGItZHRzLXJoZWw2LXB5dGhvbi1j b21wYXQucGF0Y2ggYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKaW5kZXggODM4 OGM4Ni4uY2JhMWE1YiAxMDA2NDQKLS0tIGEvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBh dGNoCisrKyBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaApAQCAtMSwxMCArMSwx MCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDIwMDA0 CiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmls ZS5pbgorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtl ZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZGF0 YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODowNTo0My4wNDY3NDYzNTEgKzAy MDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5p bgkyMDE1LTA1LTMxIDE4OjA1OjU4LjQ4Mzg0MTY1NSArMDIwMAotQEAgLTYwLDYgKzYwLDggQEAg UFlUSE9OX0ZJTEVfTElTVCA9IFwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9k YXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjEzLjc4ODE2NDA0MSAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmls ZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2ODE5ODg1MCArMDIwMAorQEAgLTYxLDYgKzYxLDgg QEAKICAJZ2RiL2ZyYW1lcy5weSBcCiAgCWdkYi9GcmFtZUl0ZXJhdG9yLnB5IFwKICAJZ2RiL0Zy YW1lRGVjb3JhdG9yLnB5IFwKQEAgLTEzLDE4ICsxMywxOCBAQCBJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICAJZ2RiL3R5cGVzLnB5IFwK ICAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2RiL3Vud2luZGVyLnB5IFwKLUBAIC03Niw2ICs3OCw3 IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitAQCAtNzcsNiArNzksNyBAQAogIAlnZGIvY29tbWFu ZC9wcmV0dHlfcHJpbnRlcnMucHkgXAogIAlnZGIvY29tbWFuZC9wcm9tcHQucHkgXAogIAlnZGIv Y29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKICAJZ2Ri L2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKKyAJZ2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBcCiAg CWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAotIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwK LUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBw ZXIucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJh bWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xp Yi9nZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBl ci5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSwxMjIg QEAKICsjIFdyYXBwZXIgQVBJIGZvciBmcmFtZXMuCiArCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCBJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVy LnB5CiArCiArICAgIGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFtZSk6CiArICAgICAgICByZXR1 cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFtZSkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTUtMDUtMzEgMTg6 MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhv bi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIw MAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5NSwx MCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dk Yi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJldHVybiBpdGVyCiArICAgIHJldHVybiBvbGRfZnJh bWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhv bi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJ MjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNi0wNy0wMyAx NjozMjoxNy44NjkxOTg4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3Ry YWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTFv ZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaAppbmRleCBiMWMx MzFkLi4yMTAxY2RkIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5w YXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaApAQCAtMSw3ICsx LDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cw MDg0My5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1k aW1lbnNpb25hbCBzdWJhcnJheXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjog bXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSA5OTM4 MzQ0NjlmMWU2NGU1NDYxZTFlMWJlZjkxN2ZkMzg4ZmU0MjhlIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRl bC5jb20+CitEYXRlOiBUaHUsIDEyIE5vdiAyMDE1IDE1OjQ1OjUyICswMTAwCitTdWJqZWN0OiBb UEFUQ0ggMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKIAog QWRkIGFuIGFyZ3VtZW50IGNvdW50IGZvciBzdWJyYW5nZSBleHByZXNzaW9ucyBpbiBGb3J0cmFu LgogQmFzZWQgb24gdGhlIGNvdW50ZWQgdmFsdWUgY2FsY3VsYXRlIGEgbmV3IGFycmF5IHdpdGgg dGhlCkBAIC0zNiwxNyArMzksMTcgQEAgbmV3PiAkMyA9ICggKCAyMSwgMzEsIDQxKSAoIDIyLCAz MiwgNDIpICggMjMsIDMzLCA0MykgKQogCiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1h bm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMgICB8 IDMwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDMxNCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi9mLWV4cC55ICB8ICAgMiArCi0g Z2RiL3ZhbG9wcy5jIHwgMTU3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQorIGdkYi92 YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KICBnZGIvdmFsdWUu aCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDk1IGRlbGV0 aW9ucygtKQorIDQgZmlsZXMgY2hhbmdlZCwgMzgwIGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9u cygtKQogCi1kaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDc4YWQ5 NDYuLmM5ZjMyNWYgMTAwNjQ0Ci0tLS0gYS9nZGIvZXZhbC5jCi0rKysgYi9nZGIvZXZhbC5jCi1A QCAtMzk5LDI5ICszOTksMjUzIEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICph cnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3 L2dkYi9ldmFsLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dk Yi9ldmFsLmMJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvZXZhbC5jCTIwMTYtMDgtMDcgMjI6MDg6MjEuNzA4Njg4MjU5ICsw MjAwCitAQCAtMzk5LDI5ICszOTksMjU0IEBACiAgICByZXR1cm4gaW5kZXg7CiAgfQogIApAQCAt NjYsNDEgKzY5LDQ0IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAtICBpbnQgcGMg PSAoKnBvcykgKyAxOwogKyAgaW50IGksIGRpbV9jb3VudCA9IDA7CiAgICBMT05HRVNUIGxvd19i b3VuZCwgaGlnaF9ib3VuZDsKLSAgIHN0cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYg KFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7Ci0tICBlbnVtIGY5MF9yYW5n ZV90eXBlIHJhbmdlX3R5cGUKLS0gICAgPSAoZW51bSBmOTBfcmFuZ2VfdHlwZSkgbG9uZ2VzdF90 b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKy0gIHN0cnVjdCB0eXBlICpyYW5nZSA9 IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7Cist ICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9IChlbnVtIHJhbmdlX3R5cGUpIGxv bmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CiAtIAogLSAgKnBvcyArPSAz OwogKyAgc3RydWN0IHZhbHVlICpuZXdfYXJyYXkgPSBhcnJheTsKICsgIHN0cnVjdCB0eXBlICph cnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7Ci0rICBz dHJ1Y3QgdHlwZSAqdGVtcF90eXBlOworKyAgc3RydWN0IHR5cGUgKmVsdF90eXBlOworKworKyAg dHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCisrICB7CisrICAgIGVudW0gcmFuZ2VfdHlw ZSBmOTBfcmFuZ2VfdHlwZTsKKysgICAgTE9OR0VTVCBsb3csIGhpZ2g7CisrICB9IHN1YnNjcmlw dF9yYW5nZTsKKysKKysgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2luZAorKyAgeworKyAgICBT VUJTQ1JJUFRfUkFOR0UsICAgIC8qIGUuZy4gIihsb3dib3VuZDpoaWdoYm91bmQpIiAgKi8KKysg ICAgU1VCU0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFsKSIgICovCisrICB9IGtpbmQ7 CiArCiArICAvKiBMb2NhbCBzdHJ1Y3QgdG8gaG9sZCB1c2VyIGRhdGEgZm9yIEZvcnRyYW4gc3Vi YXJyYXkgZGltZW5zaW9ucy4gICovCiArICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlCiArICB7CiAr ICAgIC8qIEZvciBldmVyeSBkaW1lbnNpb24sIHdlIGFyZSBlaXRoZXIgd29ya2luZyBvbiBhIHJh bmdlIG9yIGFuIGluZGV4CiArICAgICAgIGV4cHJlc3Npb24sIHNvIHdlIHN0b3JlIHRoaXMgaW5m byBzZXBhcmF0ZWx5IGZvciBsYXRlci4gICovCi0rICAgIGVudW0KLSsgICAgewotKyAgICAgIFNV QlNDUklQVF9SQU5HRSwgICAgLyogZS5nLiAiKGxvd2JvdW5kOmhpZ2hib3VuZCkiICAqLwotKyAg ICAgIFNVQlNDUklQVF9JTkRFWCAgICAvKiBlLmcuICIobGl0ZXJhbCkiICAqLwotKyAgICB9IGtp bmQ7CisrICAgIGVudW0gc3Vic2NyaXB0X2tpbmQga2luZDsKICsKICsgICAgLyogV2UgYWxzbyBz dG9yZSBlaXRoZXIgdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZCBpbmZvLCBvciB0aGUgaW5kZXgK ICsgICAgICAgbnVtYmVyLiAgQmVmb3JlIGV2YWx1YXRpb24gb2YgdGhlIGlucHV0IHZhbHVlcywg d2UgZG8gbm90IGtub3cgaWYgd2UgYXJlCiArICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24gYSBy YW5nZSBvZiByYW5nZXMsIG9yIGFuIGluZGV4IGluIGEgcmFuZ2UuICBTbyBhcyBhCiArICAgICAg IGZpcnN0IHN0ZXAgd2Ugc3RvcmUgYWxsIGlucHV0IGluIGEgdW5pb24uICBUaGUgYXJyYXkgY2Fs Y3VsYXRpb24gaXRzZWxmCiArICAgICAgIGRlYWxzIHdpdGggdGhpcyBsYXRlciBvbi4gICovCi0r ICAgIHVuaW9uCisrICAgIHVuaW9uIGVsZW1lbnRfcmFuZ2UKICsgICAgewotKyAgICAgIHN0cnVj dCBzdWJzY3JpcHRfcmFuZ2UKLSsgICAgICB7Ci0rICAgICAgICBlbnVtIGY5MF9yYW5nZV90eXBl IGY5MF9yYW5nZV90eXBlOwotKyAgICAgICAgTE9OR0VTVCBsb3csIGhpZ2g7Ci0rICAgICAgfQot KyAgICAgIHJhbmdlOworKyAgICAgIHN1YnNjcmlwdF9yYW5nZSByYW5nZTsKICsgICAgICBMT05H RVNUIG51bWJlcjsKLSsgICAgfTsKKysgICAgfSBVOwogKyAgfSAqc3Vic2NyaXB0X2FycmF5Owog KwogKyAgLyogQ2hlY2sgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhl IHVzZXIgbWF0Y2hlcwpAQCAtMTA5LDcgKzExNSw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYg MTAwNjQ0CiArICBpZiAobmFyZ3MgIT0gY2FsY19mNzdfYXJyYXlfZGltcyAodmFsdWVfdHlwZSAo bmV3X2FycmF5KSkpCiArICAgIGVycm9yIChfKCJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIp KTsKICsKLSsgIHN1YnNjcmlwdF9hcnJheSA9IGFsbG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2Fy cmF5KSAqIG5hcmdzKTsKKysgIHN1YnNjcmlwdF9hcnJheSA9IChzdHJ1Y3Qgc3Vic2NyaXB0X3N0 b3JlKikgYWxsb2NhIChzaXplb2YgKCpzdWJzY3JpcHRfYXJyYXkpICogbmFyZ3MpOwogKwogKyAg LyogUGFyc2UgdGhlIHVzZXIgaW5wdXQgaW50byB0aGUgU1VCU0NSSVBUX0FSUkFZIHRvIHN0b3Jl IGl0LiAgV2UgbmVlZAogKyAgICAgdG8gZXZhbHVhdGUgaXQgZmlyc3QsIGFzIHRoZSBpbnB1dCBp cyBmcm9tIGxlZnQtdG8tcmlnaHQuICBUaGUKQEAgLTEyOCwxNiArMTM0LDIwIEBAIGluZGV4IDc4 YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAtICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2 YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CiArICAgICAgLyog VGhlIHVzZXIgaW5wdXQgaXMgYSByYW5nZSwgd2l0aCBvciB3aXRob3V0IGxvd2VyIGFuZCB1cHBl ciBib3VuZC4KICsJIEUuZy46ICJwIGFycnkoMjo1KSIsICJwIGFycnkoIDo1KSIsICJwIGFycnko IDogKSIsIGV0Yy4gICovCi0rICAgICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1Bf RjkwX1JBTkdFKQorKyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdF KQogKwl7CiArCSAgaW50IHBjID0gKCpwb3MpICsgMTsKLSsJICBzdHJ1Y3Qgc3Vic2NyaXB0X3Jh bmdlICpyYW5nZTsKLSsKKysJICBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlOworIAorLSAgaWYgKHJh bmdlX3R5cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VO RF9ERUZBVUxUKQorLSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7Cist ICBlbHNlCistICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAg KE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwogKwkgIGluZGV4LT5raW5kID0gU1VCU0NS SVBUX1JBTkdFOwotKwkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsKKysJICByYW5nZSA9ICZpbmRl eC0+VS5yYW5nZTsKICsKICsJICAqcG9zICs9IDM7Ci0rCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBl ID0gbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKysJICByYW5nZS0+ ZjkwX3JhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5l bHRzW3BjXS5sb25nY29uc3QpOwogKwogKwkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3Zp ZGVkIGJ5IHRoZSB1c2VyLCB0aGUgYml0IGhhcyBiZWVuCiArCSAgICAgc2V0IGFuZCB3ZSBjYW4g YXNzaWduIHRoZSB2YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgpAQCAtMTU1LDE3 ICsxNjUsMTMgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICsgICAgICBlbHNlCiAr CXsKICsJICBzdHJ1Y3QgdmFsdWUgKnZhbDsKLSAKLS0gIGlmIChyYW5nZV90eXBlID09IEhJR0hf Qk9VTkRfREVGQVVMVCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLS0gICAg aGlnaF9ib3VuZCA9IFRZUEVfSElHSF9CT1VORCAocmFuZ2UpOwotLSAgZWxzZQotLSAgICBoaWdo X2JvdW5kID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwg cG9zLCBub3NpZGUpKTsKKysKICsJICBpbmRleC0+a2luZCA9IFNVQlNDUklQVF9JTkRFWDsKICsK ICsJICAvKiBFdmFsdWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVn ZXIgaW4gRjc3LiAgVGhpcwogKwkgICAgIGVuc3VyZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBwcm92 aWRlZCBpbmRleC4gICovCiArCSAgdmFsID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24g KGV4cCwgcG9zLCBub3NpZGUpOwotKwkgIGluZGV4LT5udW1iZXIgPSB2YWx1ZV9hc19sb25nICh2 YWwpOworKwkgIGluZGV4LT5VLm51bWJlciA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7CiArCX0KICsK ICsgICAgfQpAQCAtMTg4LDcgKzE5NCw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0 CiArCSAgICAgICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBX ZSBzaW1wbHkKICsJICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMgaG93 IG1hbnkgdGltZXMgd2UgYXJlCiArCSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAqLwot KwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPnJhbmdlOworKwkg ICAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsKICsJICAgIC8q IElmIG5vIGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFrZSB0aGUK ICsJICAgICAgIGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3VuZC4gICov CkBAIC0yMzIsMTkgKzIzOCwxOSBAQCBpbmRleCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogKwkg ICAgICAgdG8gZ2V0IHRoZSB2YWx1ZSBvZmZzZXQgcmlnaHQuICAqLwogKwkgICAgaWYgKGRpbV9j b3VudCA9PSAwKQogKwkgICAgICBuZXdfYXJyYXkKLSsJICAgICAgICA9IHZhbHVlX3N1YnNjcmlw dGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRleC0+bnVtYmVyLAorKwkgICAgICAgID0gdmFsdWVf c3Vic2NyaXB0ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4LT5VLm51bWJlciwKICsJCQkJCSAg ICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVlX3R5cGUKICsJCQkJCQkJCSAgKG5ld19hcnJheSkp KTsKICsJICAgIGVsc2UKICsJICAgICAgewogKwkJLyogQ2hlY2sgZm9yIHZhbGlkIGluZGV4IGlu cHV0LiAgKi8KLSsJCWlmIChpbmRleC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5 cGUpCi0rCQkgICAgfHwgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlw ZSkpCisrCQlpZiAoaW5kZXgtPlUubnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUp CisrCQkgICAgfHwgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBl KSkKICsJCSAgZXJyb3IgKF8oImVycm9yIG5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7CiArCiAr CQlkaW1fY291bnQrKzsKICsJCW5ld19hcnJheSA9IHZhbHVlX3NsaWNlXzEgKG5ld19hcnJheSwK LSsJCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+bnVtYmVyKSwKKysJCQkJCSAgIGxvbmdl c3RfdG9faW50IChpbmRleC0+VS5udW1iZXIpLAogKwkJCQkJICAgMSwgLyogbGVuZ3RoIGlzICcx JyBlbGVtZW50ICAqLwogKwkJCQkJICAgZGltX2NvdW50KTsKICsJICAgICAgfQpAQCAtMjcwLDkg KzI3Niw4IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICBpZiAoZGltX2NvdW50 ID4gMSkKICsgICAgewogKyAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7Ci0gCi0tICByZXR1 cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQg KyAxKTsKLSsgICAgICB0ZW1wX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh2YWx1ZV90eXBlIChu ZXdfYXJyYXkpKTsKKysKKysgICAgICBlbHRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHZhbHVl X3R5cGUgKG5ld19hcnJheSkpOwogKwogKyAgICAgIC8qIEV2ZXJ5IFNVQlNDUklQVF9SQU5HRSBp biB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMgYW4gYWN0dWFsIHJhbmdlIGluCiArCSB0aGUgb3V0 cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2UgdGhlIFNVQlNDUklQVF9BUlJBWSBhZ2FpbiwgbG9v a2luZwpAQCAtMjg5LDI2ICsyOTQsMjYgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQK ICsKICsJICAgICAgcmFuZ2VfdHlwZQogKwkJPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5V TEwsCi0rCQkJCSAgICAgdGVtcF90eXBlLAotKwkJCQkgICAgIDEsCi0rCQkJCSAgICAgaW5kZXgt PnJhbmdlLmhpZ2ggLSBpbmRleC0+cmFuZ2UubG93ICsgMSk7CisrCQkJCQkgICAgZWx0X3R5cGUs CisrCQkJCQkgICAgMSwKKysJCQkJCSAgICBpbmRleC0+VS5yYW5nZS5oaWdoCisrCQkJCQkgICAg ICAtIGluZGV4LT5VLnJhbmdlLmxvdyArIDEpOwogKwogKwkgICAgICBpbnRlcmltX2FycmF5X3R5 cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwKLSsJCQkJCQkgICAgICB0ZW1wX3R5cGUsCisr CQkJCQkJICAgICAgZWx0X3R5cGUsCiArCQkJCQkJICAgICAgcmFuZ2VfdHlwZSk7CiArCi0rCSAg ICAgIC8qIEZvciBzb21lIHJlYXNvbiB0aGUgdHlwZSBjb2RlIG9mIHRoZSBjb250ZW50cyBpcyBt aXNzaW5nLCBzbwotKwkJIHJlc2V0IGl0IGZyb20gdGhlIG9yaWdpbmFsIGFycmF5LiAgKi8KICsJ ICAgICAgVFlQRV9DT0RFIChpbnRlcmltX2FycmF5X3R5cGUpCiArCQk9IFRZUEVfQ09ERSAodmFs dWVfdHlwZSAobmV3X2FycmF5KSk7Ci0rCisgCistICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5 LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKICsJICAgICAgdiA9IGFs bG9jYXRlX3ZhbHVlIChpbnRlcmltX2FycmF5X3R5cGUpOwogKwotKwkgICAgICB0ZW1wX3R5cGUg PSB2YWx1ZV90eXBlICh2KTsKKysJICAgICAgZWx0X3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKICsJ ICAgIH0KICsKICsJfQotKyAgICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJh eSwgMCwgVFlQRV9MRU5HVEggKHRlbXBfdHlwZSkpOworKyAgICAgIHZhbHVlX2NvbnRlbnRzX2Nv cHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKGVsdF90eXBlKSk7CiArICAgICAg cmV0dXJuIHY7CiArICAgIH0KICsKQEAgLTMxNiwyNCArMzIxLDI0IEBAIGluZGV4IDc4YWQ5NDYu LmM5ZjMyNWYgMTAwNjQ0CiAgfQogIAogIAotQEAgLTE4MTAsMTQgKzIwMzQsMTEgQEAgZXZhbHVh dGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTgxMCwx NCArMjAzNSwxMSBAQAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJewogIAljYXNlIFRZUEVfQ09E RV9BUlJBWToKLS0JICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9GOTBfUkFOR0Up CistCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCiAtCSAgICByZXR1 cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbm9zaWRlKTsKIC0JICBlbHNl CiAtCSAgICBnb3RvIG11bHRpX2Y3N19zdWJzY3JpcHQ7CiArCSAgcmV0dXJuIHZhbHVlX2Y5MF9z dWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogIAogIAljYXNlIFRZUEVf Q09ERV9TVFJJTkc6Ci0gCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JB TkdFKQorIAkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQogLQkgICAg cmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7CiArCSAg ICByZXR1cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgMSwgbm9zaWRlKTsK ICAJICBlbHNlCiAgCSAgICB7CiAgCSAgICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9j b2VyY2lvbiAoZXhwLCBwb3MsIG5vc2lkZSk7Ci1AQCAtMjIyMiw0OSArMjQ0Myw2IEBAIGV2YWx1 YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIyMjMs NDkgKzI0NDUsNiBAQAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcxKTsKICAKQEAgLTM4Myw3ICsz ODgsNyBAQCBpbmRleCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogICAgICBjYXNlIEJJTk9QX0xP R0lDQUxfQU5EOgogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhw LCBwb3MsIG5vc2lkZSk7CiAgICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCi1AQCAtMzEy MSw2ICszMjk5LDkgQEAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKmFycmF5X3R5 cGUpCitAQCAtMzEyMyw2ICszMzAyLDkgQEAKICAgIGludCBuZGltZW4gPSAxOwogICAgc3RydWN0 IHR5cGUgKnRtcF90eXBlOwogIApAQCAtMzkzLDExICszOTgsMTEgQEAgaW5kZXggNzhhZDk0Ni4u YzlmMzI1ZiAxMDA2NDQKICAgIGlmICgoVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NP REVfQVJSQVkpKQogICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9u LWFycmF5IHR5cGUiKSk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAu eQotaW5kZXggNGZhYWMzMi4uOTM0M2FiYiAxMDA2NDQKLS0tLSBhL2dkYi9mLWV4cC55Ci0rKysg Yi9nZGIvZi1leHAueQotQEAgLTMwOCw2ICszMDgsOCBAQCBhcmdsaXN0IDoJc3VicmFuZ2UKK0lu ZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZi1leHAueQorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2YtZXhwLnkJMjAxNi0wOC0wNyAyMjowNjo0NS4y NjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZi1leHAueQkyMDE2 LTA4LTA3IDIyOjA4OjIxLjcwOTY4ODI2OCArMDIwMAorQEAgLTI1Myw2ICsyNTMsOCBAQAogICAg IAogIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9WRV9DT01NQQogIAkJCXsg YXJnbGlzdF9sZW4rKzsgfQpAQCAtNDA2LDExICs0MTEsMTEgQEAgaW5kZXggNGZhYWMzMi4uOTM0 M2FiYiAxMDA2NDQKICAJOwogIAogIC8qIFRoZXJlIGFyZSBmb3VyIHNvcnRzIG9mIHN1YnJhbmdl IHR5cGVzIGluIEY5MC4gICovCi1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9w cy5jCi1pbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAotLS0tIGEvZ2RiL3ZhbG9wcy5jCi0r KysgYi9nZGIvdmFsb3BzLmMKLUBAIC0zNzU5LDU2ICszNzU5LDE1MSBAQCB2YWx1ZV9vZl90aGlz X3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL3ZhbG9wcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAu MjAxNjA4MDcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkg KzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAy MjoxMzoyMi4wODMzNDA3NTAgKzAyMDAKK0BAIC0zNzc1LDU2ICszNzc1LDE1NCBAQAogIHN0cnVj dCB2YWx1ZSAqCiAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3Vu ZCwgaW50IGxlbmd0aCkKICB7CkBAIC00MjAsNyArNDI1LDkgQEAgaW5kZXggNWEyNDRhOS4uMDll YTg3NyAxMDA2NDQKICsgIHJldHVybiB2YWx1ZV9zbGljZV8xIChhcnJheSwgbG93Ym91bmQsIGxl bmd0aCwgMSk7CiArfQogKwotKy8qIENBTExfQ09VTlQgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYg d2UgYXJlIGNhbGxpbmcgdGhlIGZ1bmN0aW9uIG9uY2UsIGUuZy4KKysvKiBWQUxVRV9TTElDRV8x IGlzIGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1i ZXIKKysgICBvZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lv bi4KKysgICBDQUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5n IHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcuCiArICAgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJl bnQgZGltZW5zaW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2FsbGluZwogKyAgIHRoZSBmdW5j dGlvbiByZXBlYXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtlIGVsZW1l bnRzCiArICAgZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVkuCkBAIC00NDAsNyArNDQ3LDgg QEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsgIHN0cnVjdCB0eXBlICphcnJheV90 eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICsgIHN0cnVjdCB0eXBl ICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUp KTsKICsgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSwgZWx0X29mZnM7Ci0rICBMT05HRVNUIGVsdF9z dHJpZGUsIGFyeV9oaWdoX2JvdW5kLCBhcnlfbG93X2JvdW5kOworKyAgLyogQVRUUklCVVRFX1VO VVNFRDogVkxBIGJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2 LTA4L21zZzAwMDk5Lmh0bWwgKi8KKysgIExPTkdFU1QgZWx0X3N0cmlkZSBBVFRSSUJVVEVfVU5V U0VELCBhcnlfaGlnaF9ib3VuZCwgYXJ5X2xvd19ib3VuZDsKICsgIHN0cnVjdCB2YWx1ZSAqdjsK ICsgIGludCBzbGljZV9yYW5nZV9zaXplLCBpID0gMCwgcm93X2NvdW50ID0gMSwgZWxlbV9jb3Vu dCA9IDE7CiAgCkBAIC00NTQsNiArNDYyLDEwIEBAIGluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAw NjQ0CiAtICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKIC0gIGlm IChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91 bmQpIDwgMCkKIC0gICAgZXJyb3IgKF8oInNsaWNlIGZyb20gYmFkIGFycmF5IG9yIGJpdHN0cmlu ZyIpKTsKKy0KKy0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwgMAorLSAg ICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCistICAgIGVycm9yIChf KCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CiArICBhcnlfbG93X2JvdW5kID0gVFlQRV9MT1dfQk9V TkQgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogKyAgYXJ5X2hpZ2hfYm91bmQgPSBU WVBFX0hJR0hfQk9VTkQgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogKwpAQCAtNDc5 LDEwICs0OTEsNyBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogKwkmJiAoIVRZUEVf QVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQogKwkgICAgICAmJiBl bHRfb2ZmcyA+PSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkpKQogKyAgICBlcnJvciAoXygibm8g c3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSAKLS0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQg fHwgbGVuZ3RoIDwgMAotLSAgICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91 bmQpCi0tICAgIGVycm9yIChfKCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CisrCiArICAvKiBDQUxM X0NPVU5UIGlzIDEgd2hlbiB3ZSBhcmUgZGVhbGluZyBlaXRoZXIgd2l0aCB0aGUgaGlnaGVzdCBk aW1lbnNpb24KICsgICAgIG9mIHRoZSBhcnJheSwgb3IgYSBvbmUgZGltZW5zaW9uYWwgYXJyYXku ICBTZXQgUkFOR0VfVFlQRSBhY2NvcmRpbmdseS4KICsgICAgIEluIGJvdGggY2FzZXMgd2UgY2Fs Y3VsYXRlIGhvdyBtYW55IHJvd3MvZWxlbWVudHMgd2lsbCBiZSBpbiB0aGUgb3V0cHV0CkBAIC01 MTUsMTEgKzUyNCwxNiBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogKyAgICAgIGRv bmUgd2l0aCBpdC4gICovCiAgCiArICBzbGljZV9yYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19y YW5nZV90eXBlIChOVUxMLCBUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKLSsJCQkJCWFy eV9sb3dfYm91bmQsIHNsaWNlX3JhbmdlX3NpemUpOworKwkJCQkJICAgICAgIGFyeV9sb3dfYm91 bmQsIHNsaWNlX3JhbmdlX3NpemUpOwogICAgewogLSAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90 eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAtICAgIExPTkdFU1Qgb2Zmc2V0 CiAtICAgICAgPSAobG93Ym91bmQgLSBsb3dlcmJvdW5kKSAqIFRZUEVfTEVOR1RIIChjaGVja190 eXBlZGVmIChlbGVtZW50X3R5cGUpKTsKKy0KKy0gICAgc2xpY2VfdHlwZSA9IGNyZWF0ZV9hcnJh eV90eXBlICgoc3RydWN0IHR5cGUgKikgTlVMTCwKKy0JCQkJICAgIGVsZW1lbnRfdHlwZSwKKy0J CQkJICAgIHNsaWNlX3JhbmdlX3R5cGUpOworLSAgICBUWVBFX0NPREUgKHNsaWNlX3R5cGUpID0g VFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsK ICsKICsgICAgLyogV2hlbiBDQUxMX0NPVU5UIGVxdWFscyAxIHdlIGNhbiB1c2UgdGhlIGxlZ2Fj eSBjb2RlIGZvciBzdWJhcnJheXMuICAqLwpAQCAtNTI3LDEwICs1NDEsOCBAQCBpbmRleCA1YTI0 NGE5Li4wOWVhODc3IDEwMDY0NAogKyAgICAgIHsKICsJZWxlbWVudF90eXBlID0gVFlQRV9UQVJH RVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAgCi0tICAgIHNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlf dHlwZSAoKHN0cnVjdCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBlbGVtZW50X3R5cGUsCi0tCQkJ CSAgICBzbGljZV9yYW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZ UEVfQ09ERSAoYXJyYXlfdHlwZSk7CistICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZh bF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQorLSAgICAgIHNsaWNlID0gYWxsb2NhdGVf dmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CiArCXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlw ZSAoTlVMTCwgZWxlbWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsKICsKICsJVFlQRV9DT0RF IChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CkBAIC01NDYsOSArNTU4LDcg QEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsJCQkJIHZhbHVlX2VtYmVkZGVkX29m ZnNldCAoYXJyYXkpICsgZWx0X29mZnMsCiArCQkJCSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50 IChsZW5ndGgpKTsKICsJICB9Ci0gCi0tICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZh bF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQotLSAgICAgIHNsaWNlID0gYWxsb2NhdGVf dmFsdWVfbGF6eSAoc2xpY2VfdHlwZSk7CisrCiArICAgICAgfQogKyAgICAvKiBXaGVuIENBTExf Q09VTlQgaXMgbGFyZ2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBvbiBhIHJhbmdlIG9mIHJhbmdl cy4KICsgICAgICAgU28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUgbmV3 IGFycmF5IHdlIHJldHVybi4gICovCkBAIC01OTMsMTEgKzYwMywxMSBAQCBpbmRleCA1YTI0NGE5 Li4wOWVhODc3IDEwMDY0NAogIH0KICAKICAvKiBDcmVhdGUgYSB2YWx1ZSBmb3IgYSBGT1JUUkFO IGNvbXBsZXggbnVtYmVyLiAgQ3VycmVudGx5IG1vc3Qgb2YgdGhlCi1kaWZmIC0tZ2l0IGEvZ2Ri L3ZhbHVlLmggYi9nZGIvdmFsdWUuaAotaW5kZXggMmVhYzVlZi4uMzQwMDQ2MCAxMDA2NDQKLS0t LSBhL2dkYi92YWx1ZS5oCi0rKysgYi9nZGIvdmFsdWUuaAotQEAgLTEwNTYsNiArMTA1Niw4IEBA IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsK K0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsdWUuaAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNi0wOC0wNyAyMjowNjo0 NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsdWUuaAky MDE2LTA4LTA3IDIyOjA4OjIxLjcxMDY4ODI3NiArMDIwMAorQEAgLTEwNjQsNiArMTA2NCw4IEBA CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqLCBp bnQsIGludCk7CiAgCkBAIC02MDYsNiArNjE2LDMgQEAgaW5kZXggMmVhYzVlZi4uMzQwMDQ2MCAx MDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsZXggKHN0cnVj dCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAqKTsKICAK LS0tIAotMi41LjAKLQoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0yb2Y2 LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2gKaW5kZXggYmY0ODE0 My4uYjQxMDBmZSAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0 Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2gKQEAgLTEsMTAgKzEs MTMgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAw ODQxLmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiAyLzZdIGZvcnRyYW46IGNvbWJpbmUgc3ViYXJy YXkgYW5kIHN0cmluZyBjb21wdXRhdGlvbgorUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0 cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCitodHRwczovL3Nv dXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAogCitGcm9t IDczM2IzYjYwYmU1YzhkMjNmYTdlNDc0OThkMzVlNDcwMTUyOGYzYWUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCiBGcm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5u QGludGVsLmNvbT4KK0RhdGU6IEZyaSwgMTMgTm92IDIwMTUgMDk6MDA6MzMgKzAxMDAKK1N1Ympl Y3Q6IFtQQVRDSCAyLzZdIGZvcnRyYW46IGNvbWJpbmUgc3ViYXJyYXkgYW5kIHN0cmluZyBjb21w dXRhdGlvbgogCi1TdHJpbmdzIG9ubHkgaGF2ZSBvbmUgZGltZW5zaW9uLCBidXQgdGhlIGVsZW1l bnQgY29tcHV0YXRpb24gaXMKLWlkZW50aWNhbCB0byB0aGUgc3ViYXJyYXkgY29tcHV0YXRpb24g Zm9yIHJhbmdlcyBhbmQgaW5kaWNlcy4KK1N0cmluZ3MgdHlwZXMgYXJlIGhhbmRsZWQgbGlrZSBh cnJheSB0eXBlcyB3aXRoIG9ubHkgb25lIGRpbWVuc2lvbi4KK1RoZXJlZm9yZSB0aGUgc2FtZSBh bGdvcml0aG0gdG8gY2FsY3VsYXRlIHN1YnNldHMgaXMgdXNlZC4KIAogMjAxMy0xMS0yNiAgQ2hy aXN0b3BoIFdlaW5tYW5uICA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgogCkBAIC0x OSwyNyArMjIsMjcgQEAgU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3Rv cGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp LCA5IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMK LWluZGV4IGM5ZjMyNWYuLjE2NGQ3YWIgMTAwNjQ0CitpbmRleCAzNTgxNWE0Li41YzIwZmVlIDEw MDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwotQEAgLTIwMzQsMTYgKzIw MzQsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlw ZSwKK0BAIC0yMDM1LDE2ICsyMDM1LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICAgICAgc3dpdGNoIChjb2RlKQogIAl7CiAgCWNhc2Ug VFlQRV9DT0RFX0FSUkFZOgogLQkgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4 cCwgcG9zLCBuYXJncywgbm9zaWRlKTsKIC0KICAJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkg IGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX0Y5MF9SQU5HRSkKKy0JICBpZiAoZXhw LT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkKIC0JICAgIHJldHVybiB2YWx1ZV9mOTBf c3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCAxLCBub3NpZGUpOwogLQkgIGVsc2UKIC0JICAgIHsK IC0JICAgICAgYXJnMiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywg bm9zaWRlKTsKIC0JICAgICAgcmV0dXJuIHZhbHVlX3N1YnNjcmlwdCAoYXJnMSwgdmFsdWVfYXNf bG9uZyAoYXJnMikpOwogLQkgICAgfQotKwkgIHJldHVybiAgdmFsdWVfZjkwX3N1YmFycmF5IChh cmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7CisrCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJh cnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogIAogIAljYXNlIFRZUEVfQ09E RV9QVFI6CiAgCWNhc2UgVFlQRV9DT0RFX0ZVTkM6CiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZm IC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTNvZjYucGF0Y2ggYi9nZGItZm9ydHJh bi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaAppbmRleCA1MGE2NTgyLi40ZTRkZTdkIDEwMDY0NAot LS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaAorKysgYi9nZGItZm9ydHJh bi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0NS5odG1sCi1TdWJqZWN0OiBb UEFUQ0ggdjIgMy82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmllbGQK K1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3Vi YXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSAwNThlZDllNTVkYjcyMjQ0ZmUxYzUzNDZh MTFmYTY3ZWZmNjFkMzE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3Bo IFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBNb24sIDIz IE5vdiAyMDE1IDEwOjMxOjQ0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMy82XSBmb3J0cmFuOiBj aGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmllbGQKIAogQ2hhbmdlIEZvcnRyYW4gc3VicmFu Z2UgZW51bSBmb3Igc3VicmFuZ2UgZXhwcmVzc2lvbnMgdG8KIHJlcHJlc2VudCBhIGJpdGZpZWxk IGZvciBlYXNpZXIgbWFuaXB1bGF0aW9uLiAgQ29uc2VxdWVudGx5CkBAIC0xMiwzMSArMTUsNDEg QEAgYmVoYXZpb3VyIG9mIEdEQiBpcyB1bmNoYW5nZWQuCiAKIAkqIGV2YWwuYyAodmFsdWVfZjkw X3N1YmFycmF5KTogQ2hhbmdlIGV2YWx1YXRpb24gb2YgdGhlCiAJc3ViYXJyYXkgYm91bmRhcmll cy4gIFNldCBib3VuZGFyaWVzIHRvIGJlIGVpdGhlciB1c2VyCi0JcHJvdmlkZWQgKGJpdCBpbiBm OTBfcmFuZ2VfdHlwZSB3YXMgc2V0KSBvciB0YWtlIHRoZQotCWRlZmF1bHQgdmFsdWUgaWYgdGhl IGJvdW5kYXJ5IHdhcyBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXIuCisJcHJvdmlkZWQgKGJpdCBp biByYW5nZV90eXBlIHdhcyBzZXQpLCBvciB0YWtlIHRoZSBkZWZhdWx0CisJdmFsdWUgaWYgdGhl IGJvdW5kYXJ5IHdhcyBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXIuCisJKiBleHBwcmludC5jIChw cmludF9zdWJleHBfc3RhbmRhcmQpOiBBbHRlciBib3VuZGFyeSBjb20tCisJcHV0YXRpb25zIHRv IHVzZSB1cGRhdGVkIHJhbmdlX3R5cGUgZW51bS4KKwkqIGV4cHByaW50LmggKGR1bXBfc3ViZXhw X2JvZHlfc3RhbmRhcmQpOiBEaXRvLgorCSogZXhwcmVzc2lvbi5oIChyYW5nZV90eXBlKTogQ2hh bmdlIHRoZSBlbnVtIHRvIHVzZSBiaXQKKwl2YWx1ZXMgZm9yIGVhY2ggYm91bmRhcnksIGlmIHNl dCBieSB0aGUgdXNlci4KIAkqIGYtZXhwLnkgKHN1YnJhbmdlKTogQ2hhbmdlIHJ1bGVzIGZvciBz dWJyYW5nZSBleHByZXNzaW9ucwogCXRvIHdyaXRlIHRoZSByZWxldmFudCBiaXQgc2VxdWVuY2Ug b250byB0aGUgZWx0IHN0YWNrLgotCSogZi1sYW5nLmggKGY5MF9yYW5nZV90eXBlKTogQ2hhbmdl IHRoZSBlbnVtIHRvIHVzZSBiaXQKLQl2YWx1ZXMgZm9yIGVhY2ggYm91bmRhcnksIGlmIHNldCBi eSB0aGUgdXNlci4KLQkqIHBhcnNlLmMgKG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCk6IEluIGNh c2Ugb2YKLQlPUF9GOTBfUkFOR0UgY2hhbmdlIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbnVtYmVy IG9mCi0JYXJndW1lbnRzIG9uIHRoZSBlbHQgc3RhY2ssIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVy IG9mCi0JYm91bmRhcmllcyBwcm92aWRlZCBieSB0aGUgdXNlci4KKwkqIHBhcnNlLmMgKG9wZXJh dG9yX2xlbmd0aF9zdGFuZGFyZCk6IEluIGNhc2Ugb2YgT1BfUkFOR0UKKwljaGFuZ2UgdGhlIGNh bGN1bGF0aW9uIG9mIHRoZSBudW1iZXIgb2YJYXJndW1lbnRzIG9uIHRoZQorCWVsdCBzdGFjaywg ZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgb2YgYm91bmRhcmllcyBwcm92aWRlZAorCWJ5IHRoZSB1 c2VyLgorCSogcnVzdC1leHAueSAoY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbik6IE1vZGlmeSBj YWxjdWxhLQorCXRpb24gb2Ygc3Vic2NyaXB0IGVsZW1lbnRzIHRvIHVzZSBhbHRlcmVkIHJhbmdl X3R5cGUuCisJKiBydXN0LWxhbmcuYyAocnVzdF9yYW5nZSk6IERpdG8uCisJKiBydXN0LWxhbmcu YyAocnVzdF9zdWJzY3JpcHQpOiBEaXRvLgogCiAKIFNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBX ZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgogLS0tCi0gZ2RiL2V2YWwu YyAgIHwgMTQgKysrKysrLS0tLS0tLS0KLSBnZGIvZi1leHAueSAgfCAxMSArKysrKystLS0tLQot IGdkYi9mLWxhbmcuaCB8ICA2ICsrLS0tLQotIGdkYi9wYXJzZS5jICB8IDIxICsrKysrKysrLS0t LS0tLS0tLS0tLQotIDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRp b25zKC0pCisgZ2RiL2V2YWwuYyAgICAgICB8IDE0ICsrKysrKy0tLS0tLS0tCisgZ2RiL2V4cHBy aW50LmMgICB8IDIwICsrKysrKysrLS0tLS0tLS0tLS0tCisgZ2RiL2V4cHJlc3Npb24uaCB8IDE1 ICsrKysrKy0tLS0tLS0tLQorIGdkYi9mLWV4cC55ICAgICAgfCAxMSArKysrKystLS0tLQorIGdk Yi9wYXJzZS5jICAgICAgfCAyMSArKysrKysrKy0tLS0tLS0tLS0tLS0KKyBnZGIvcnVzdC1leHAu eSAgIHwgMTIgKysrLS0tLS0tLS0tCisgZ2RiL3J1c3QtbGFuZy5jICB8IDE3ICsrKysrKysrLS0t LS0tLS0tCisgNyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMo LSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCAxNjRkN2Fi Li45YjhiMDUxIDEwMDY0NAoraW5kZXggNWMyMGZlZS4uNDRlODYwMCAxMDA2NDQKIC0tLSBhL2dk Yi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00ODAsMTIgKzQ4MCwxMiBAQCB2YWx1ZV9m OTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAs CitAQCAtNDgyLDEyICs0ODIsMTIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgIC8qIElmIGEgbG93ZXIgYm91bmQg d2FzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0aGUgYml0IGhhcyBiZWVuCiAgCSAgICAgc2V0IGFu ZCB3ZSBjYW4gYXNzaWduIHRoZSB2YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgog IAkgICAgIHVwcGVyIGJvdW5kLiAgKi8KQEAgLTUzLDcgKzY2LDcgQEAgaW5kZXggMTY0ZDdhYi4u OWI4YjA1MSAxMDA2NDQKICAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVh dGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKICAJCQkJCQkJICBwb3MsIG5vc2lkZSkpOwogIAl9 Ci1AQCAtNTI2LDEyICs1MjYsMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTUyOCwxMiArNTI4LDEwIEBAIHZh bHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKICAKICAJICAgIC8qIElmIG5vIGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUg dXNlciwgd2UgdGFrZSB0aGUKICAJICAgICAgIGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0 aGUgaGlnaCBib3VuZC4gICovCkBAIC02OCw3MCArODEsMTM1IEBAIGluZGV4IDE2NGQ3YWIuLjli OGIwNTEgMTAwNjQ0CiAgCSAgICAgIHJhbmdlLT5oaWdoID0gVFlQRV9ISUdIX0JPVU5EIChpbmRl eF90eXBlKTsKICAKICAJICAgIC8qIEJvdGggdXNlciBwcm92aWRlZCBsb3cgYW5kIGhpZ2ggYm91 bmQgaGF2ZSB0byBiZSBpbnNpZGUgdGhlCitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9n ZGIvZXhwcHJpbnQuYworaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKKy0tLSBhL2dkYi9l eHBwcmludC5jCisrKysgYi9nZGIvZXhwcHJpbnQuYworQEAgLTU2OCwxMiArNTY4LDEwIEBAIHBy aW50X3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCisg CSpwb3MgKz0gMjsKKyAKKyAJZnB1dHNfZmlsdGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOworLQlp ZiAocmFuZ2VfdHlwZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUg PT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1df Qk9VTkQpID09IFNVQkFSUkFZX0xPV19CT1VORCkKKyAJICBwcmludF9zdWJleHAgKGV4cCwgcG9z LCBzdHJlYW0sIFBSRUNfQUJPVkVfQ09NTUEpOworIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3Ry ZWFtKTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJh bmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJB UlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgIHByaW50X3N1YmV4 cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7CisgCWZwdXRzX2ZpbHRlcmVk ICgiKSIsIHN0cmVhbSk7CisgCXJldHVybjsKK0BAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBf c3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCisgCXN3aXRj aCAocmFuZ2VfdHlwZSkKKyAJICB7CistCSAgY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6CisrCSAg Y2FzZSBTVUJBUlJBWV9OT05FX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAn Li4nIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6 CisrCSAgY2FzZSBTVUJBUlJBWV9ISUdIX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJS YW5nZSAnLi5FWFAnIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgSElHSF9CT1VO RF9ERUZBVUxUOgorKwkgIGNhc2UgU1VCQVJSQVlfTE9XX0JPVU5EOgorIAkgICAgZnB1dHNfZmls dGVyZWQgKCJSYW5nZSAnRVhQLi4nIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2Ug Tk9ORV9CT1VORF9ERUZBVUxUOgorKwkgIGNhc2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFS UkFZX0hJR0hfQk9VTkQpOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAn Iiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworIAkgIGRlZmF1bHQ6CitAQCAtMTA3MiwxMSArMTA3 MCw5IEBAIGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAs CisgCSAgICBicmVhazsKKyAJICB9CisgCistCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRf REVGQVVMVAorLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlm ICgocmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5E KQorIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKy0JaWYgKHJhbmdl X3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9C T1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9 PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVh bSwgZWx0KTsKKyAgICAgICB9CisgICAgICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHJl c3Npb24uaCBiL2dkYi9leHByZXNzaW9uLmgKK2luZGV4IDQ5NTJkODQuLjVhNmI3MjAgMTAwNjQ0 CistLS0gYS9nZGIvZXhwcmVzc2lvbi5oCisrKysgYi9nZGIvZXhwcmVzc2lvbi5oCitAQCAtMTUy LDE3ICsxNTIsMTQgQEAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4 cHJlc3Npb24gKiwKKyAJCQkJIHN0cnVjdCB1aV9maWxlICosIGNoYXIgKik7CisgZXh0ZXJuIHZv aWQgZHVtcF9wcmVmaXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVp X2ZpbGUgKik7CisgCistLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5k IGNvdWxkIGJlIGVtcHR5LCBpbmRpY2F0aW5nCistICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVm YXVsdCB0aGF0IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJvdW5kIG9mIHRoZQorLSAgIGFycmF5IG9y IHN0cmluZy4gIFNvIHdlIGhhdmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKKy0gICBl bnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50aWZ5IHRoaXMuICAqLworLSAgIAorKy8qIEluIGFu IE9QX1JBTkdFIGV4cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhl IHVzZXIsIG9yIG5vdC4KKysgICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkg dGhpcy4gICovCisrCisgZW51bSByYW5nZV90eXBlCisgICB7CistICAgIEJPVEhfQk9VTkRfREVG QVVMVCwJCS8qICIoOikiICAqLworLSAgICBMT1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gp IiAgKi8KKy0gICAgSElHSF9CT1VORF9ERUZBVUxULAkJLyogIihsb3c6KSIgICovCistICAgIE5P TkVfQk9VTkRfREVGQVVMVAkJLyogIihsb3c6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9OT05F X0JPVU5EID0gMHgwLAkJLyogIiggOiApIiAgKi8KKysgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0g MHgxLAkJLyogIihsb3c6KSIgICovCisrICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8q ICIoOmhpZ2gpIiAgKi8KKyAgIH07CisgCisgI2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9O X0gpICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggOTM0 M2FiYi4uYjEyMDZkZSAxMDA2NDQKK2luZGV4IGRjMTMxYzEuLmUyYzU0YjYgMTAwNjQ0CiAtLS0g YS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0zMTUsMjYgKzMxNSwyNyBAQCBh cmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKK0BAIC0yNjAsMjYg KzI2MCwyNyBAQCBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEK ICAvKiBUaGVyZSBhcmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZSB0eXBlcyBpbiBGOTAuICAqLwog IAogIHN1YnJhbmdlOglleHAgJzonIGV4cAklcHJlYyBBQk9WRV9DT01NQQotLQkJCXsgd3JpdGVf ZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgCistCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IAogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25n Y3N0IChwc3RhdGUsIE5PTkVfQk9VTkRfREVGQVVMVCk7Ci0rCQkJeyB3cml0ZV9leHBfZWx0X29w Y29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs CiArCQkJCQkJIFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJ CSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorIAkJCSAg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiAgCTsKICAKICBzdWJy YW5nZToJZXhwICc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKyAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIE9QX1JBTkdFKTsKIC0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBI SUdIX0JPVU5EX0RFRkFVTFQpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs IFNVQkFSUkFZX0xPV19CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9GOTBfUkFOR0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBP UF9SQU5HRSk7IH0KICAJOwogIAogIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1B Ci0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworIAkJ CXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3JpdGVf ZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIExPV19CT1VORF9ERUZBVUxUKTsKICsJCQkgIHdyaXRl X2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKLSAJCQkgIHdy aXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKyAJCQkgIHdyaXRl X2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQogIAk7CiAgCiAgc3VicmFuZ2U6 CSc6JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0 ZSwgT1BfRjkwX1JBTkdFKTsKKyAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9Q X1JBTkdFKTsKIC0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBCT1RIX0JPVU5E X0RFRkFVTFQpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIDApOwotIAkJ CSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorIAkJCSAg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiAgCTsKICAKLWRpZmYg LS1naXQgYS9nZGIvZi1sYW5nLmggYi9nZGIvZi1sYW5nLmgKLWluZGV4IGVlY2ExMDcuLjRkNTZi ZjcgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1sYW5nLmgKLSsrKyBiL2dkYi9mLWxhbmcuaAotQEAgLTQ0 LDEwICs0NCw4IEBAIGV4dGVybiB2b2lkIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25z dCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLSAgICAKLSBlbnVtIGY5MF9yYW5nZV90eXBl Ci0gICB7Ci0tICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIoOikiICAqLwotLSAgICBMT1df Qk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8KLS0gICAgSElHSF9CT1VORF9ERUZBVUxU LAkJLyogIihsb3c6KSIgICovCi0tICAgIE5PTkVfQk9VTkRfREVGQVVMVAkJLyogIihsb3c6aGln aCkiICAqLwotKyAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8K LSsgICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLwotICAgfTsK LSAKLSAvKiBBIGNvbW1vbiBibG9jay4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9n ZGIvcGFyc2UuYwotaW5kZXggNDE5MWZjNi4uZDUwMDI3OSAxMDA2NDQKK2luZGV4IDJiMDA3MDgu LjZkNTRhNzcgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBA IC0xMDA2LDIyICsxMDA2LDE3IEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3MsCiAgCi0gICAgIGNhc2UgT1BfRjkwX1JB TkdFOgorICAgICBjYXNlIE9QX1JBTkdFOgogICAgICAgIG9wbGVuID0gMzsKICsgICAgICBhcmdz ID0gMDsKLSAgICAgICByYW5nZV90eXBlID0gKGVudW0gZjkwX3JhbmdlX3R5cGUpCisgICAgICAg cmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5cGUpCiAgCWxvbmdlc3RfdG9faW50IChleHByLT5l bHRzW2VuZHBvcyAtIDJdLmxvbmdjb25zdCk7CiAgCiAtICAgICAgc3dpdGNoIChyYW5nZV90eXBl KQpAQCAtMTU3LDYgKzIzNSwxMDcgQEAgaW5kZXggNDE5MWZjNi4uZDUwMDI3OSAxMDA2NDQKICAK ICAgICAgICBicmVhazsKICAKK2RpZmYgLS1naXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9ydXN0 LWV4cC55CitpbmRleCBjMWE4NjNjLi43NjA5MjliNSAxMDA2NDQKKy0tLSBhL2dkYi9ydXN0LWV4 cC55CisrKysgYi9nZGIvcnVzdC1leHAueQorQEAgLTI0MTgsMjMgKzI0MTgsMTcgQEAgY29udmVy dF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RydWN0IHBhcnNlcl9zdGF0ZSAqc3RhdGUsCisgCisgICAg IGNhc2UgT1BfUkFOR0U6CisgICAgICAgeworLQllbnVtIHJhbmdlX3R5cGUga2luZCA9IEJPVEhf Qk9VTkRfREVGQVVMVDsKKysJZW51bSByYW5nZV90eXBlIGtpbmQgPSBTVUJBUlJBWV9OT05FX0JP VU5EOworIAorIAlpZiAob3BlcmF0aW9uLT5sZWZ0Lm9wICE9IE5VTEwpCisgCSAgeworIAkgICAg Y29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3RhdGUsIG9wZXJhdGlvbi0+bGVmdC5vcCwgdG9w KTsKKy0JICAgIGtpbmQgPSBISUdIX0JPVU5EX0RFRkFVTFQ7CisrCSAgICBraW5kID0gU1VCQVJS QVlfTE9XX0JPVU5EOworIAkgIH0KKyAJaWYgKG9wZXJhdGlvbi0+cmlnaHQub3AgIT0gTlVMTCkK KyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0aW9u LT5yaWdodC5vcCwgdG9wKTsKKy0JICAgIGlmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCkK Ky0JICAgICAga2luZCA9IExPV19CT1VORF9ERUZBVUxUOworLQkgICAgZWxzZQorLQkgICAgICB7 CistCQlnZGJfYXNzZXJ0IChraW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCk7CistCQlraW5kID0g Tk9ORV9CT1VORF9ERUZBVUxUOworLQkgICAgICB9CisrCSAgICBraW5kID0gKHJhbmdlX3R5cGUp IChraW5kIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7CisgCSAgfQorIAl3cml0ZV9leHBfZWx0X29w Y29kZSAoc3RhdGUsIE9QX1JBTkdFKTsKKyAJd3JpdGVfZXhwX2VsdF9sb25nY3N0IChzdGF0ZSwg a2luZCk7CitkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5jCitp bmRleCA1ZGY5OWNlLi44ZDUzZTMxIDEwMDY0NAorLS0tIGEvZ2RiL3J1c3QtbGFuZy5jCisrKysg Yi9nZGIvcnVzdC1sYW5nLmMKK0BAIC0xMTg4LDkgKzExODgsOSBAQCBydXN0X3JhbmdlIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQorICAga2lu ZCA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbKnBvcyArIDFd Lmxvbmdjb25zdCk7CisgICAqcG9zICs9IDM7CisgCistICBpZiAoa2luZCA9PSBISUdIX0JPVU5E X0RFRkFVTFQgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrICBpZiAoKGtpbmQgJiBT VUJBUlJBWV9MT1dfQk9VTkQpID09IFNVQkFSUkFZX0xPV19CT1VORCkKKyAgICAgbG93ID0gZXZh bHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOworLSAgaWYgKGtpbmQg PT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrICBp ZiAoKGtpbmQgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQor ICAgICBoaWdoID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUp OworIAorICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCitAQCAtMTI3OSw3ICsxMjc5LDcgQEAg cnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICpyYW5n ZSwKKyAKKyAgICpsb3cgPSAwOworICAgKmhpZ2ggPSAwOworLSAgKmtpbmQgPSBCT1RIX0JPVU5E X0RFRkFVTFQ7CisrICAqa2luZCA9IFNVQkFSUkFZX05PTkVfQk9VTkQ7CisgCisgICBpZiAoVFlQ RV9ORklFTERTICh0eXBlKSA9PSAwKQorICAgICByZXR1cm47CitAQCAtMTI4NywxNSArMTI4Nywx NCBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUg KnJhbmdlLAorICAgaSA9IDA7CisgICBpZiAoc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUs IDApLCAic3RhcnQiKSA9PSAwKQorICAgICB7CistICAgICAgKmtpbmQgPSBISUdIX0JPVU5EX0RF RkFVTFQ7CisrICAgICAgKmtpbmQgPSBTVUJBUlJBWV9MT1dfQk9VTkQ7CisgICAgICAgKmxvdyA9 IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwgMCkpOworICAgICAgICsraTsKKyAg ICAgfQorICAgaWYgKFRZUEVfTkZJRUxEUyAodHlwZSkgPiBpCisgICAgICAgJiYgc3RyY21wIChU WVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpLCAiZW5kIikgPT0gMCkKKyAgICAgeworLSAgICAgICpr aW5kID0gKCpraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVAorLQkgICAgICAgPyBMT1dfQk9VTkRf REVGQVVMVCA6IE5PTkVfQk9VTkRfREVGQVVMVCk7CisrICAgICAgKmtpbmQgPSAocmFuZ2VfdHlw ZSkgKCpraW5kIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7CisgICAgICAgKmhpZ2ggPSB2YWx1ZV9h c19sb25nICh2YWx1ZV9maWVsZCAocmFuZ2UsIGkpKTsKKyAgICAgfQorIH0KK0BAIC0xMzEwLDcg KzEzMDksNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpw b3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAgIHN0cnVjdCB0eXBlICpyaHN0eXBlOworICAgTE9O R0VTVCBsb3csIGhpZ2hfYm91bmQ7CisgICAvKiBJbml0aWFsaXplZCB0byBhcHBlYXNlIHRoZSBj b21waWxlci4gICovCistICBlbnVtIHJhbmdlX3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVM VDsKKysgIGVudW0gcmFuZ2VfdHlwZSBraW5kID0gU1VCQVJSQVlfTk9ORV9CT1VORDsKKyAgIExP TkdFU1QgaGlnaCA9IDA7CisgICBpbnQgd2FudF9zbGljZSA9IDA7CisgCitAQCAtMTM2Niw3ICsx MzY1LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9z LCBlbnVtIG5vc2lkZSBub3NpZGUsCisgCWVycm9yIChfKCJDYW5ub3Qgc3Vic2NyaXB0IG5vbi1h cnJheSB0eXBlIikpOworIAorICAgICAgIGlmICh3YW50X3NsaWNlCistCSAgJiYgKGtpbmQgPT0g Qk9USF9CT1VORF9ERUZBVUxUIHx8IGtpbmQgPT0gTE9XX0JPVU5EX0RFRkFVTFQpKQorKwkgICYm ICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VORCkgIT0gU1VCQVJSQVlfTE9XX0JPVU5EKSkKKyAJ bG93ID0gbG93X2JvdW5kOworICAgICAgIGlmIChsb3cgPCAwKQorIAllcnJvciAoXygiSW5kZXgg bGVzcyB0aGFuIHplcm8iKSk7CitAQCAtMTM4NCw3ICsxMzgzLDcgQEAgcnVzdF9zdWJzY3JpcHQg KHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCisg CSAgQ09SRV9BRERSIGFkZHI7CisgCSAgc3RydWN0IHZhbHVlICphZGRydmFsLCAqdGVtOworIAor LQkgIGlmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IEhJR0hfQk9VTkRf REVGQVVMVCkKKysJICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSAhPSBTVUJBUlJB WV9ISUdIX0JPVU5EKQorIAkgICAgaGlnaCA9IGhpZ2hfYm91bmQ7CisgCSAgaWYgKGhpZ2ggPCAw KQorIAkgICAgZXJyb3IgKF8oIkhpZ2ggaW5kZXggbGVzcyB0aGFuIHplcm8iKSk7CiAtLSAKLTIu NS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTRvZjYu cGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAppbmRleCA2NTYzZDcx Li4wZTA5NmUzIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRj aAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaApAQCAtMSw3ICsxLDEw IEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0 Mi5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgNC82XSBmb3J0cmFuOiBlbmFibGUgcGFyc2luZyBv ZiBzdHJpZGUgcGFyYW1ldGVyIGZvciBzdWJyYW5nZXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAv Nl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwK IAorRnJvbSAzMzhlNGM4NjBhZDIwNTg5NmI0YTk1Yzc5ZjU0NDcwYzc5ZWViMzQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53 ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBXZWQsIDEgSnVuIDIwMTYgMTU6MTE6MjQgKzAyMDAK K1N1YmplY3Q6IFtQQVRDSCA0LzZdIGZvcnRyYW46IGVuYWJsZSBwYXJzaW5nIG9mIHN0cmlkZSBw YXJhbWV0ZXIgZm9yIHN1YnJhbmdlcwogCiBBbGxvdyB0aGUgdXNlciB0byBwcm92aWRlIGEgc3Ry aWRlIHBhcmFtZXRlciBmb3IgRm9ydHJhbgogc3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0 ZXIgY2FuIGJlIGFueSBpbnRlZ2VyIGV4Y2VwdApAQCAtMTEsMTAgKzE0LDEwIEBAIHN1YmFycmF5 cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50ZWdlciBleGNlcHQKIAogCSog ZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBBZGQgZXhwcmVzc2lvbiBldmFsdWF0aW9uCiAJ Zm9yIGEgc3RyaWRlIHBhcmFtZXRlciBpbiBhIEZvcnRyYW4gcmFuZ2UgZXhwcmVzc2lvbi4KKwkq IGV4cHJlc3Npb24uaCAocmFuZ2VfdHlwZSk6IEFkZCBmaWVsZCB0byBlbnVtIHRvIHNob3cgd2hl bgorCWEgc3RyaWRlIHZhbHVlIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlci4KIAkqIGYtZXhwLnk6 IEFkZCB5YWNjIHJ1bGVzIGZvciB3cml0aW5nIGluZm8gb24gdGhlIGVsdCBzdGFjawogCXdoZW4g dGhlIHVzZXIgcHJvdmlkZWQgYSBzdHJpZGUgYXJndW1lbnQuCi0JKiBmLWxhbmcuaCAoRjkwX1JB TkdFKTogQWRkIGZpZWxkIHRvIGVudW0gdG8gc2hvdyB3aGVuIGEKLQlzdHJpZGUgd2FzIHByb3Zp ZGVkIGJ5IHRoZSB1c2VyLgogCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTog Q2hlY2sgaWYgYSBzdHJpZGUKIAl2YWx1ZSB3YXMgcHJvdmlkZWQsIGFuZCBpbmNyZW1lbnQgYXJn dW1lbnQgY291bnRlcgogCWFjY29yZGluZ2x5LgpAQCAtMjIsMjYgKzI1LDI3IEBAIHN1YmFycmF5 cy4gIFRoZSBzdHJpZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50ZWdlciBleGNlcHQKIAogU2ln bmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRl bC5jb20+CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxMCArKysrKysrKystCi0gZ2RiL2YtZXhwLnkg IHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gZ2RiL2YtbGFuZy5oIHwg IDUgKysrLS0KLSBnZGIvcGFyc2UuYyAgfCAgMyArKysKLSA0IGZpbGVzIGNoYW5nZWQsIDQ2IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisgZ2RiL2V2YWwuYyAgICAgICB8IDExICsrKysr KysrKystCisgZ2RiL2V4cHJlc3Npb24uaCB8ICA3ICsrKysrLS0KKyBnZGIvZi1leHAueSAgICAg IHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQorIGdkYi9wYXJzZS5jICAgICAg fCAgMyArKysKKyBnZGIvdmFsb3BzLmMgICAgIHwgIDQgKystLQorIDUgZmlsZXMgY2hhbmdlZCwg NTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFs LmMgYi9nZGIvZXZhbC5jCi1pbmRleCA5YjhiMDUxLi4zMDhhZGEzIDEwMDY0NAoraW5kZXggNDRl ODYwMC4uYjVhYWYxYyAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMK LUBAIC00MzgsNyArNDM4LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFy cmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAotICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFu Z2UKLSAgICAgICB7Ci0gICAgICAgICBlbnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBl OwotLSAgICAgICAgTE9OR0VTVCBsb3csIGhpZ2g7Ci0rICAgICAgICBMT05HRVNUIGxvdywgaGln aCwgc3RyaWRlOwotICAgICAgIH0KLSAgICAgICByYW5nZTsKLSAgICAgICBMT05HRVNUIG51bWJl cjsKLUBAIC00ODgsNiArNDg4LDE0IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVl ICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00MTksNyArNDE5LDcgQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAorICAgdHlwZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCisgICB7CisgICAgIGVudW0g cmFuZ2VfdHlwZSBmOTBfcmFuZ2VfdHlwZTsKKy0gICAgTE9OR0VTVCBsb3csIGhpZ2g7CisrICAg IExPTkdFU1QgbG93LCBoaWdoLCBzdHJpZGU7CisgICB9IHN1YnNjcmlwdF9yYW5nZTsKKyAKKyAg IHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2luZAorQEAgLTQ5MCw2ICs0OTAsMTUgQEAgdmFsdWVf ZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LAogIAkgICAgICA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQogIAkgICAgcmFuZ2UtPmhpZ2ggPSB2 YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAogIAkJCQkJCQkg IHBvcywgbm9zaWRlKSk7CkBAIC00OSw4MiArNTMsODEgQEAgaW5kZXggOWI4YjA1MS4uMzA4YWRh MyAxMDA2NDQKICsJICAvKiBBc3NpZ24gdGhlIHVzZXIncyBzdHJpZGUgdmFsdWUgaWYgcHJvdmlk ZWQuICAqLwogKwkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfU1RSSURF KSA9PSBTVUJBUlJBWV9TVFJJREUpCiArCSAgICByYW5nZS0+c3RyaWRlID0gdmFsdWVfYXNfbG9u ZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSsJCQkJCQkJICAgIHBvcywgbm9z aWRlKSk7CisrCQkJCQkJCSAgICAgcG9zLCBub3NpZGUpKTsKKysKICsJICAvKiBBc3NpZ24gdGhl IGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCiArCSAgZWxzZQogKwkgICAgcmFuZ2UtPnN0 cmlkZSA9IDE7CiAgCX0KICAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjog InAgYXJyeSg1KSIuICAqLwogICAgICAgIGVsc2UKK2RpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lv bi5oIGIvZ2RiL2V4cHJlc3Npb24uaAoraW5kZXggNWE2YjcyMC4uMzRjYTU0YiAxMDA2NDQKKy0t LSBhL2dkYi9leHByZXNzaW9uLmgKKysrKyBiL2dkYi9leHByZXNzaW9uLmgKK0BAIC0xNTMsMTMg KzE1MywxNiBAQCBleHRlcm4gdm9pZCBkdW1wX3Jhd19leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVz c2lvbiAqLAorIGV4dGVybiB2b2lkIGR1bXBfcHJlZml4X2V4cHJlc3Npb24gKHN0cnVjdCBleHBy ZXNzaW9uICosIHN0cnVjdCB1aV9maWxlICopOworIAorIC8qIEluIGFuIE9QX1JBTkdFIGV4cHJl c3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4K Ky0gICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCisrICAg SW4gYWRkaXRpb24gdG8gdGhpcywgdGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSBhIHN0cmlkZSB2 YWx1ZSB0byBpbmRpY2F0ZWQKKysgICBvbmx5IGNlcnRhaW4gZWxlbWVudHMgb2YgdGhlIGFycmF5 LiAgVGhpcyBlbnVtZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50aWZ5CisrICAgdGhpcy4gICovCisg CisgZW51bSByYW5nZV90eXBlCisgICB7CisgICAgIFNVQkFSUkFZX05PTkVfQk9VTkQgPSAweDAs CQkvKiAiKCA6ICkiICAqLworICAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxv dzopIiAgKi8KKy0gICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAq LworKyAgICBTVUJBUlJBWV9ISUdIX0JPVU5EID0gMHgyLAkJLyogIig6aGlnaCkiICAqLworKyAg ICBTVUJBUlJBWV9TVFJJREUgPSAweDQJCS8qICIoOjpzdHJpZGUpIiAgKi8KKyAgIH07CisgCisg I2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2Yt ZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggYjEyMDZkZS4uNTE1MWZlZSAxMDA2NDQKK2luZGV4 IGUyYzU0YjYuLjcxZjE4MjMgMTAwNjQ0CiAtLS0gYS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2Yt ZXhwLnkKLUBAIC0zMTYsOCArMzE2LDggQEAgYXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICVw cmVjIEFCT1ZFX0NPTU1BCi0gCi0gc3VicmFuZ2U6CWV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NP TU1BCi0gCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOwot LQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCi0tCQkJCQkJIFNVQkFSUkFZX0xP V19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25n Y3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAotKwkJCQkJCSB8IFNVQkFSUkFZX0hJR0hf Qk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdF KTsgfQotIAk7Ci0gCi1AQCAtMzM5LDYgKzMzOSwzNSBAQCBzdWJyYW5nZToJJzonCSVwcmVjIEFC T1ZFX0NPTU1BCi0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFO R0UpOyB9Ci0gCTsKK0BAIC0yODAsNyArMjgwLDM2IEBAIHN1YnJhbmdlOgknOicgZXhwCSVwcmVj IEFCT1ZFX0NPTU1BCiAgCisgc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQorIAkJCXsg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOworLQkJCSAgd3JpdGVfZXhw X2VsdF9sb25nY3N0IChwc3RhdGUsIDApOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChw c3RhdGUsIFNVQkFSUkFZX05PTkVfQk9VTkQpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisrCTsKKysKICsvKiBFYWNoIHN1YnJhbmdlIHR5cGUgY2Fu IGhhdmUgYSBzdHJpZGUgYXJndW1lbnQuICAqLwogK3N1YnJhbmdlOglleHAgJzonIGV4cCAnOicg ZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xP V19CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX0hJR0hfQk9VTkQKICsJCQkJCQkgfCBTVUJBUlJB WV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JB TkdFKTsgfQorKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9 CiArCTsKICsKICtzdWJyYW5nZToJZXhwICc6JyAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0r CQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsg d3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhw X2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAogKwkJCQkJCSB8IFNVQkFS UkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBf UkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 IH0KICsJOwogKwogK3N1YnJhbmdlOgknOicgZXhwICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEK LSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJ eyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9l eHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfSElHSF9CT1VORAogKwkJCQkJCSB8IFNV QkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9G OTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5H RSk7IH0KICsJOwogKwogK3N1YnJhbmdlOgknOicgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQot KwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKysJCQl7 IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKICsJCQkgIHdyaXRlX2V4 cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQotKwk7Ci0rCi0gY29tcGxleG51 bTogICAgIGV4cCAnLCcgZXhwIAotICAgICAgICAgICAgICAgICAJeyB9ICAgICAgICAgICAgICAg ICAgICAgICAgICAKLSAgICAgICAgIDsKLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmggYi9nZGIv Zi1sYW5nLmgKLWluZGV4IDRkNTZiZjcuLjBhZDU3YWYgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1sYW5n LmgKLSsrKyBiL2dkYi9mLWxhbmcuaAotQEAgLTQ0LDggKzQ0LDkgQEAgZXh0ZXJuIHZvaWQgZl92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERS LAotICAgIAotIGVudW0gZjkwX3JhbmdlX3R5cGUKLSAgIHsKLS0gICAgU1VCQVJSQVlfTE9XX0JP VU5EID0gMHgxLAkJLyogIihsb3c6KSIgICovCi0tICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAw eDIJCS8qICIoOmhpZ2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyog Iihsb3c6KSIgb3IgIihsb3c6OikiICovCi0rICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIs CQkvKiAiKDpoaWdoKSIgb3IgIig6aGlnaDopIiAgKi8KLSsgICAgU1VCQVJSQVlfU1RSSURFID0g MHg0CQkvKiAiKDo6c3RyaWRlKSIgICovCi0gICB9OworIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CisgCTsKICAKLSAvKiBBIGNvbW1vbiBibG9jay4gICov CiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggZDUwMDI3OS4u MDcyNDhjMyAxMDA2NDQKK2luZGV4IDZkNTRhNzcuLjk5MmFmODcgMTAwNjQ0CiAtLS0gYS9nZGIv cGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC0xMDE4LDYgKzEwMTgsOSBAQCBvcGVyYXRv cl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5k cG9zLApAQCAtMTM3LDYgKzE0MCwyOCBAQCBpbmRleCBkNTAwMjc5Li4wNzI0OGMzIDEwMDY0NAog ICAgICAgIGJyZWFrOwogIAogICAgICBkZWZhdWx0OgorZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMu YyBiL2dkYi92YWxvcHMuYworaW5kZXggODE3YTRjZi4uZmJjN2RjYiAxMDA2NDQKKy0tLSBhL2dk Yi92YWxvcHMuYworKysrIGIvZ2RiL3ZhbG9wcy5jCitAQCAtMzgzNCw3ICszODM0LDcgQEAgdmFs dWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3Ro LCBpbnQgY2FsbF9jb3VudCkKKyAgIGlmIChjYWxsX2NvdW50ID09IDEpCisgICAgIHsKKyAgICAg ICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKKy0gICAgICBzbGlj ZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsKKysgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5 X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAxOworIAorICAgICAgIC8qIENoZWNrIGlmIHRoZSBh cnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8KKyAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5k cyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQorQEAg LTM4NDYsNyArMzg0Niw3IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGlu dCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCisgICBlbHNlCisgICAgIHsK KyAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChh cnJheV90eXBlKSk7CistICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsg cm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3VudCk7CisrICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9 IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3VudCkgLSAxOworICAgICAgIGFy eV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlwZSk7CisgICAgIH0KKyAKIC0t IAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwt NW9mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCmluZGV4IDlh N2RiYTMuLjJiOWE2NjIgMTAwNjQ0Ci0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2 LnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCkBAIC0xLDkg KzEsMTIgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21z ZzAwODQ0Lmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiA1LzZdIGZvcnRyYW46IGNhbGN1bGF0ZSBz dWJhcnJheSB3aXRoIHN0cmlkZSB2YWx1ZXMuCitSRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZv cnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCiAKK0Zy b20gMTE4OTA5OGMzY2FjYzJlZTY5MDIxZGUxYTgzYWQzMzI4ODIxZDc1NSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1h bm5AaW50ZWwuY29tPgorRGF0ZTogV2VkLCAxIEp1biAyMDE2IDE1OjA0OjAxICswMjAwCitTdWJq ZWN0OiBbUEFUQ0ggNS82XSBmb3J0cmFuOiBjYWxjdWxhdGUgZWxlbWVudHMgb2YgYSBzdWJhcnJh eSB1c2luZyBhCisgcHJvdmlkZWQgc3RyaWRlIHZhbHVlCiAKLUNhbGN1bGF0ZSBlbGVtZW50cyBv ZiBhIHN1YmFycmF5IHVzaW5nIGEgcHJvdmlkZWQgc3RyaWRlIHZhbHVlCiBUaGUgc3RyaWRlIHZh bHVlIGNhbiBiZSBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIsIGJ1dCBtYXkKIG5vdCBi ZSB6ZXJvLiAgSWYgbm8gc3RyaWRlIGlzIHByb3ZpZGVkLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUK IDEgdG8gcHJpbnQgYWxsIGVsZW1lbnRzIGluc2lkZSB0aGUgcmFuZ2UuCkBAIC0zMiw0NCArMzUs MjUgQEAgJDMgPSAoMSwgMywgNSwgNywgOSkKIAogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdl aW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAtLS0KLSBnZGIvZXZhbC5j ICAgfCAxMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KLSBnZGIvdmFsb3BzLmMgfCAgODcgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDEwMiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQorIGdkYi92YWxv cHMuYyB8ICA4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRp b25zKCspLCA0OCBkZWxldGlvbnMoLSkKKyAzIGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25z KCspLCA0MiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZh bC5jCi1pbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAoraW5kZXggYjVhYWYxYy4uMWYyN2I2 ZiAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00MzcsOCAr NDM3LDggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLAotICAgICB7Ci0gICAgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQot ICAgICAgIHsKLS0gICAgICAgIGVudW0gZjkwX3JhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0t ICAgICAgICBMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwotKwllbnVtIGY5MF9yYW5nZV90eXBl IGY5MF9yYW5nZV90eXBlOwotKwlMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwotICAgICAgIH0K LSAgICAgICByYW5nZTsKLSAgICAgICBMT05HRVNUIG51bWJlcjsKLUBAIC00NzUsNyArNDc1LDcg QEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLAotIAkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsKK0BAIC00NzcsNyArNDc3LDcg QEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLAorIAkgIHJhbmdlID0gJmluZGV4LT5VLnJhbmdlOwogIAogIAkgICpwb3MgKz0g MzsKLS0JICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRz W3BjXS5sb25nY29uc3QpOwotKwkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IGV4cC0+ZWx0c1tw Y10ubG9uZ2NvbnN0OworLQkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5 cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CisrCSAgcmFuZ2Ut PmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkgZXhwLT5lbHRzW3BjXS5sb25nY29u c3Q7CiAgCiAgCSAgLyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIs IHRoZSBiaXQgaGFzIGJlZW4KICAJICAgICBzZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVl IGZyb20gdGhlIGVsdCBzdGFjay4gIFNhbWUgZm9yCi1AQCAtNDg0LDYgKzQ4NCw3IEBAIHZhbHVl X2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwKLSAJICAgICAgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQotIAkgICAgcmFuZ2UtPmxvdyA9IHZh bHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCi0gCQkJCQkJCSBw b3MsIG5vc2lkZSkpOwotKwotIAkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJS QVlfSElHSF9CT1VORCkKLSAJICAgICAgPT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIHJh bmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4 cCwKLUBAIC00OTYsNiArNDk3LDEwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVl ICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00OTksNiArNDk5LDEwIEBAIHZh bHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKICAJICAvKiBBc3NpZ24gdGhlIGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCiAg CSAgZWxzZQogIAkgICAgcmFuZ2UtPnN0cmlkZSA9IDE7CkBAIC04MCw3ICs2NCw3IEBAIGluZGV4 IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCX0KICAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFu IGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIuICAqLwogICAgICAgIGVsc2UKLUBAIC01MTIsMTAg KzUxNyw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01MTUsMTAgKzUxOSw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAKICAgICAg fQogIApAQCAtOTMsNyArNzcsNyBAQCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogICAg Zm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCBz dWJzY3JpcHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKLUBAIC01NDgsNiAr NTUxLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01NTEsNiArNTUzLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCXx8IHJh bmdlLT5oaWdoID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICAJICAgICAgZXJyb3Ig KF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CiAgCkBAIC0x MTMsNyArOTcsNyBAQCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogKwogKwl9CiArCi0r ICAgICAgYXJyYXlfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOworKyAgICAg ICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiArICAgIH0KICsK ICsgIC8qIFJlc2V0IEFSUkFZX1RZUEUgYmVmb3JlIHNsaWNpbmcuKi8KQEAgLTEzNywxMiArMTIx LDEyIEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiArCSAgICAgICB0cmVhdCBhbnkg c3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBXZSBzaW1wbHkKICsJICAgICAgIGlu Y3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMgaG93IG1hbnkgdGltZXMgd2UgYXJlCiAr CSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAqLwotKwkgICAgc3RydWN0IHN1YnNjcmlw dF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPnJhbmdlOworKwkgICAgc3Vic2NyaXB0X3JhbmdlICpy YW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsKICAJICAgIC8qIERJTV9DT1VOVCBjb3VudHMgZXZl cnkgdXNlciBhcmd1bWVudCB0aGF0IGlzIHRyZWF0ZWQgYXMgYSByYW5nZS4KICAJICAgICAgIFRo aXMgaXMgbmVjZXNzYXJ5IGZvciBleHByZXNzaW9ucyBsaWtlICdwcmludCBhcnJheSg3LCA4Ojkp LgogIAkgICAgICAgSGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBsaXRlcmFsLCBidXQgbXVz dCBiZSB0cmVhdGVkIGFzIGEKLUBAIC01NTUsMTAgKzYwMCw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01NTgs MTAgKzYwMiw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAgIGRpbV9jb3VudCsrOwogIAogIAkgICAgbmV3X2Fy cmF5CkBAIC0xNTYsMTMgKzE0MCw3IEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAg CSAgfQogIAkgIGJyZWFrOwogIAotQEAgLTU3MiwyNyArNjE2LDM4IEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAg ICAgIHRvIGdldCB0aGUgdmFsdWUgb2Zmc2V0IHJpZ2h0LiAgKi8KLSAJICAgIGlmIChkaW1fY291 bnQgPT0gMCkKLSAJICAgICAgbmV3X2FycmF5Ci0tCSAgICAgICAgPSB2YWx1ZV9zdWJzY3JpcHRl ZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgtPm51bWJlciwKLSsJCT0gdmFsdWVfc3Vic2NyaXB0 ZWRfcnZhbHVlIChuZXdfYXJyYXksIGluZGV4LT5udW1iZXIsCi0gCQkJCQkgICAgZjc3X2dldF9s b3dlcmJvdW5kICh2YWx1ZV90eXBlCitAQCAtNTgwLDIxICs2MjMsMzIgQEAgdmFsdWVfZjkwX3N1 YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkJ CQkJCQkJICAobmV3X2FycmF5KSkpOwogIAkgICAgZWxzZQogIAkgICAgICB7CkBAIC0xNzQsMjEg KzE1MiwyMSBAQCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogKwkJICAgY2Fubm90IGRv IHRoZSByYW5nZSBjaGVja3MgZm9yIHVzLiBTbyB3ZSBoYXZlIHRvIG1ha2Ugc3VyZQogKwkJICAg b3Vyc2VsdmVzIHRoYXQgdGhlIHVzZXIgcHJvdmlkZWQgaW5kZXggaXMgaW5zaWRlIHRoZQogKwkJ ICAgYXJyYXkgYm91bmRzLiAgVGhyb3cgYW4gZXJyb3IgaWYgbm90LiAgKi8KLSAJCWlmIChpbmRl eC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0tCQkgICAgfHwgaW5kZXgt Pm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisgCQlpZiAoaW5kZXgtPlUu bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCistCQkgICAgfHwgaW5kZXgtPlUu bnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKIC0JCSAgZXJyb3IgKF8oImVy cm9yIG5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7Ci0rCQkgICAgJiYgaW5kZXgtPm51bWJlciA8 IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisrCQkgICAgJiYgaW5kZXgtPlUubnVtYmVy ID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAgZXJyb3IgKF8oInByb3ZpZGVk IGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CiArCi0rCQlpZiAoaW5kZXgtPm51 bWJlciA+IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQotKwkJICAgICYmIGluZGV4LT5udW1i ZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQorKwkJaWYgKGluZGV4LT5VLm51bWJl ciA+IFRZUEVfTE9XX0JPVU5EIChpbmRleF90eXBlKQorKwkJICAgICYmIGluZGV4LT5VLm51bWJl ciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCiArCQkgIGVycm9yIChfKCJwcm92aWRl ZCBib3VuZChzKSBvdXRzaWRlIGFycmF5IGJvdW5kKHMpIikpOwogIAogLQkJZGltX2NvdW50Kys7 CiAgCQluZXdfYXJyYXkgPSB2YWx1ZV9zbGljZV8xIChuZXdfYXJyYXksCi0tCQkJCQkgICBsb25n ZXN0X3RvX2ludCAoaW5kZXgtPm51bWJlciksCistCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5k ZXgtPlUubnVtYmVyKSwKIC0JCQkJCSAgIDEsIC8qIGxlbmd0aCBpcyAnMScgZWxlbWVudCAgKi8K LSsJCQkJCSAgIGluZGV4LT5udW1iZXIsCisrCQkJCQkgICBpbmRleC0+VS5udW1iZXIsCiArCQkJ CQkgICAxLCAvKiBDT1VOVCBpcyAnMScgZWxlbWVudCAgKi8KICsJCQkJCSAgIDEsIC8qIFNUUklE RSBzZXQgdG8gJzEnICAqLwogIAkJCQkJICAgZGltX2NvdW50KTsKQEAgLTE5NywxMyArMTc1LDEx IEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAl9 Ci0tICAgIH0KICsgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlw ZSk7Ci0rICB9CisgICAgIH0KICAKICAgIC8qIFdpdGggRElNX0NPVU5UID4gMSB3ZSBjdXJyZW50 bHkgaGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJheSwgYnV0IGV4cGVjdAotICAgICAgYW4gYXJy YXkgb2YgYXJyYXlzLCBkZXBlbmRpbmcgb24gaG93IG1hbnkgcmFuZ2VzIGhhdmUgYmVlbiBwcm92 aWRlZCBieQotQEAgLTYxNyw3ICs2NzIsOSBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2 YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtNjIwLDcgKzY3NCw5IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKICAJIHRoZSBvdXRwdXQgYXJyYXkuICBTbyB3ZSB0cmF2ZXJzZSB0aGUgU1VCU0NS SVBUX0FSUkFZIGFnYWluLCBsb29raW5nCiAgCSBmb3IgYSByYW5nZSBlbnRyeS4gIFdoZW4gd2Ug ZmluZCBvbmUsIHdlIHVzZSB0aGUgcmFuZ2UgaW5mbyB0byBjcmVhdGUKICAJIGFuIGFkZGl0aW9u YWwgcmFuZ2VfdHlwZSB0byBzZXQgdGhlIGNvcnJlY3QgYm91bmRzIGFuZCBkaW1lbnNpb25zIGZv cgpAQCAtMjE0LDM1ICsxOTAsMzUgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAJewogIAkgIHN0cnVjdCBzdWJzY3Jp cHRfc3RvcmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKLUBAIC02MjUsMTIgKzY4Miwy MCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHBy ZXNzaW9uICpleHAsCi0gCSAgaWYgKGluZGV4LT5raW5kID09IFNVQlNDUklQVF9SQU5HRSkKK0BA IC02MjksMTIgKzY4NSwyMCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJy YXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCSAgICB7CiAgCSAgICAgIHN0cnVjdCB0eXBl ICpyYW5nZV90eXBlLCAqaW50ZXJpbV9hcnJheV90eXBlOworIAogKwkgICAgICBpbnQgbmV3X2xl bmd0aDsKICsKICsJICAgICAgLyogVGhlIGxlbmd0aCBvZiBhIHN1Yi1kaW1lbnNpb24gd2l0aCBh bGwgZWxlbWVudHMgYmV0d2VlbiB0aGUKICsJCSBib3VuZHMgcGx1cyB0aGUgc3RhcnQgZWxlbWVu dCBpdHNlbGYuICBJdCBtYXkgYmUgbW9kaWZpZWQgYnkKICsJCSBhIHVzZXIgcHJvdmlkZWQgc3Ry aWRlIHZhbHVlLiAgKi8KLSsJICAgICAgbmV3X2xlbmd0aCA9IGluZGV4LT5yYW5nZS5oaWdoIC0g aW5kZXgtPnJhbmdlLmxvdzsKKysJICAgICAgbmV3X2xlbmd0aCA9IGluZGV4LT5VLnJhbmdlLmhp Z2ggLSBpbmRleC0+VS5yYW5nZS5sb3c7CisrCisrCSAgICAgIG5ld19sZW5ndGggLz0gaW5kZXgt PlUucmFuZ2Uuc3RyaWRlOwogKwotKwkgICAgICBuZXdfbGVuZ3RoIC89IGluZGV4LT5yYW5nZS5z dHJpZGU7Ci0gCiAgCSAgICAgIHJhbmdlX3R5cGUKICAJCT0gY3JlYXRlX3N0YXRpY19yYW5nZV90 eXBlIChOVUxMLAotLQkJCQkgICAgIHRlbXBfdHlwZSwKLS0JCQkJICAgICAxLAotLQkJCQkgICAg IGluZGV4LT5yYW5nZS5oaWdoIC0gaW5kZXgtPnJhbmdlLmxvdyArIDEpOwotKwkJCQkJICAgIHRl bXBfdHlwZSwKLSsJCQkJCSAgICBpbmRleC0+cmFuZ2UubG93LAotKwkJCQkJICAgIGluZGV4LT5y YW5nZS5sb3cgKyBuZXdfbGVuZ3RoKTsKKyAJCQkJCSAgICBlbHRfdHlwZSwKKy0JCQkJCSAgICAx LAorLQkJCQkJICAgIGluZGV4LT5VLnJhbmdlLmhpZ2gKKy0JCQkJCSAgICAgIC0gaW5kZXgtPlUu cmFuZ2UubG93ICsgMSk7CisrCQkJCQkgICAgaW5kZXgtPlUucmFuZ2UubG93LAorKwkJCQkJICAg IGluZGV4LT5VLnJhbmdlLmxvdyArIG5ld19sZW5ndGgpOwogIAogIAkgICAgICBpbnRlcmltX2Fy cmF5X3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwKLSAJCQkJCQkgICAgICB0ZW1wX3R5 cGUsCisgCQkJCQkJICAgICAgZWx0X3R5cGUsCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIv Z2RiL3ZhbG9wcy5jCi1pbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAoraW5kZXggZmJjN2Rj Yi4uZGVkOGVmYyAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwogKysrIGIvZ2RiL3ZhbG9wcy5j Ci1AQCAtMzc1OSwxMCArMzc1OSwxMyBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3Ry dWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitAQCAtMzc2NiwxMCArMzc2NiwxMyBAQCB2YWx1ZV9v Zl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCiAgc3RydWN0 IHZhbHVlICoKICB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5k LCBpbnQgbGVuZ3RoKQogIHsKQEAgLTI1OSw4ICsyMzUsOCBAQCBpbmRleCAwOWVhODc3Li44M2M4 NDYyIDEwMDY0NAogKyAgcmV0dXJuIHZhbHVlX3NsaWNlXzEgKGFycmF5LCBsb3dib3VuZCwgbGVu Z3RoLCAxLCAxKTsKICB9CiAgCi0gLyogQ0FMTF9DT1VOVCBpcyB1c2VkIHRvIGRldGVybWluZSBp ZiB3ZSBhcmUgY2FsbGluZyB0aGUgZnVuY3Rpb24gb25jZSwgZS5nLgotQEAgLTM3NzYsNyArMzc3 OSw4IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGlu dCBsZW5ndGgpCisgLyogVkFMVUVfU0xJQ0VfMSBpcyBjYWxsZWQgZm9yIGVhY2ggYXJyYXkgZGlt ZW5zaW9uIHRvIGNhbGN1bGF0ZSB0aGUgbnVtYmVyCitAQCAtMzc4NSw3ICszNzg4LDggQEAgdmFs dWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkK ICAgICByYW5nZXMgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24uICAqLwogIAogIHN0cnVjdCB2YWx1 ZSAqCkBAIC0yNzAsNyArMjQ2LDcgQEAgaW5kZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICB7 CiAgICBzdHJ1Y3QgdHlwZSAqc2xpY2VfcmFuZ2VfdHlwZSwgKnNsaWNlX3R5cGUsICpyYW5nZV90 eXBlOwogICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcnJheSkpOwotQEAgLTM3OTksMTQgKzM4MDMsMjQgQEAgdmFsdWVfc2xpY2VfMSAoc3Ry dWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3Vu dCkKK0BAIC0zODA4LDE0ICszODEyLDI0IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAgICAgICBh dHRyaWJ1dGVzIG9mIHRoZSB1bmRlcmx5aW5nIHR5cGUuICAqLwogICAgaWYgKGNhbGxfY291bnQg PiAxKQogICAgICB7CkBAIC0yOTcsMjUgKzI3Myw3IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIg MTAwNjQ0CiAgICBlbHRfc3RyaWRlID0gVFlQRV9MRU5HVEggKFRZUEVfSU5ERVhfVFlQRSAoYXJy YXlfdHlwZSkpOwogIAogICAgZWx0X29mZnMgKj0gZWx0X3NpemU7Ci1AQCAtMzgyNSw3ICszODM5 LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBp bnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKLSAgIGlmIChjYWxsX2NvdW50ID09IDEpCi0gICAg IHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKLS0g ICAgICBzbGljZV9yYW5nZV9zaXplID0gZWxlbV9jb3VudDsKLSsgICAgICBzbGljZV9yYW5nZV9z aXplID0gYXJ5X2xvd19ib3VuZCArIGVsZW1fY291bnQgLSAxOwotIAotICAgICAgIC8qIENoZWNr IGlmIHRoZSBhcnJheSBib3VuZHMgYXJlIHZhbGlkLiAgKi8KLSAgICAgICBpZiAoZ2V0X2Rpc2Ny ZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGlnaF9ib3VuZCkg PCAwKQotQEAgLTM4MzcsNyArMzg1MSw3IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAq YXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCi0gICBlbHNl Ci0gICAgIHsKLSAgICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChUWVBFX1RBUkdF VF9UWVBFIChhcnJheV90eXBlKSk7Ci0tICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IChhcnlfbG93 X2JvdW5kICsgcm93X2NvdW50IC0gMSkgKiAoZWxlbV9jb3VudCk7Ci0rICAgICAgc2xpY2VfcmFu Z2Vfc2l6ZSA9IGFyeV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3VudCkgLSAxOwot ICAgICAgIGFyeV9sb3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlwZSk7Ci0gICAg IH0KLSAKLUBAIC0zODQ5LDggKzM4NjMsOSBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4 NTgsOCArMzg3Miw5IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAgICB7CiAgICAgIHN0cnVjdCB0 eXBlICplbGVtZW50X3R5cGU7CiAgCkBAIC0zMjcsNyArMjg1LDcgQEAgaW5kZXggMDllYTg3Ny4u ODNjODQ2MiAxMDA2NDQKICAgICAgICB7CiAgCWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZ UEUgKGFycmF5X3R5cGUpOwogIAotQEAgLTM4NzEsMjkgKzM4ODYsNTMgQEAgdmFsdWVfc2xpY2Vf MSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2Fs bF9jb3VudCkKK0BAIC0zODgwLDI5ICszODk1LDUzIEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2 YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAg CSAgfQogIAogICAgICAgIH0KQEAgLTM1OSw4ICszMTcsOCBAQCBpbmRleCAwOWVhODc3Li44M2M4 NDYyIDEwMDY0NAogIAlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVsZW1l bnRfdHlwZSwgc2xpY2VfcmFuZ2VfdHlwZSk7CiAgCiAtCVRZUEVfQ09ERSAoc2xpY2VfdHlwZSkg PSBUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsJLyogSWYgd2Ug aGF2ZSBhIG9uZSBkaW1lbnNpb25hbCBhcnJheSwgd2UgY29weSBpdHMgVFlQRV9DT0RFLiAgRm9y IGEKLSsJICAgbXVsdGkgZGltZW5zaW9uYWwgYXJyYXkgd2UgY29weSB0aGUgZW1iZWRkZWQgdHlw ZSdzIFRZUEVfQ09ERS4gICovCisrCSAvKiBJZiB3ZSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFy cmF5LCB3ZSBjb3B5IGl0cyBUWVBFX0NPREUuICBGb3IgYQorKwkgICAgbXVsdGkgZGltZW5zaW9u YWwgYXJyYXkgd2UgY29weSB0aGUgZW1iZWRkZWQgdHlwZSdzIFRZUEVfQ09ERS4gICovCiArCWlm IChjYWxsX2NvdW50ID09IDEpCiArCSAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09E RSAoYXJyYXlfdHlwZSk7CiArCWVsc2UKQEAgLTM5NSw3ICszNTMsNyBAQCBpbmRleCAwOWVhODc3 Li44M2M4NDYyIDEwMDY0NAogICAgICAgIH0KICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBi L2dkYi92YWx1ZS5oCi1pbmRleCAzNDAwNDYwLi5jMThlZjJlIDEwMDY0NAoraW5kZXggOTU1ODhh Zi4uZTQxNzYzOSAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAog QEAgLTEwNTYsNyArMTA1Niw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xp Y2UgKHN0cnVjdCB2YWx1ZSAqKTsKQEAgLTQwOCw1ICszNjYsNSBAQCBpbmRleCAzNDAwNDYwLi5j MThlZjJlIDEwMDY0NAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGxl eCAoc3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJICAgIHN0cnVjdCB0eXBl ICopOwogLS0gCi0yLjUuMAorMi41LjUKIAoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlk ZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9m Ni1ub2tmYWlsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjYxZGUxLi4w MDAwMDAwCi0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAtb3JpZwkyMDE2LTAxLTA4IDIy OjQ1OjQ0Ljk1Njg0MjU1MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZXhwCTIwMTYtMDEtMDggMjM6MjY6MDUuMDc4NTU0 NjI5ICswMTAwCi1AQCAtMzksMjcgKzM5LDE2IEBAIGZvcmVhY2ggdmFyIHthIGFsbG9jIHB0cn0g ewotICAgICBzZXQgb2xkX3ByZWZpeCAkcGZfcHJlZml4Ci0gICAgIGxhcHBlbmQgcGZfcHJlZml4 ICIkdmFyOiIKLSAKLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5 IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgyLCAyOjMpIiB7ID0gXCgyMiwgMzJcKX0KLS0gICAg c2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAi cCAkdmFyICgyOjMsIDMpIiB7ID0gXCgzMiwgMzNcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0q IiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgxLCAyOikiIHsg PSBcKDIxLCAzMVwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5 OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDIsIDoyKSIgeyA9IFwoMTIsIDIyXCl9Ci0tICAg IHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3Qg InAgJHZhciAoMywgMjoyKSIgeyA9IFwoMjNcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAi dmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicHR5cGUgJHZhciAoMywgMjoyKSIg IiA9ICRpbnQ0IFxcKDI6MlxcKSIKLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVz c2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICg0LCA6KSIgeyA9IFwoMTQsIDI0LCAz NFwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAg IGdkYl90ZXN0ICJwICR2YXIgKDosIDopIiB7ID0gXChcKCAqMTEsIDEyLCAxMywgMTRcKSBcKCAq MjEsIDIyLCAyMywgMjRcKSBcKCAqMzEsIDMyLCAzMywgMzRcKSAqXCl9Ci0tICAgIHNldHVwX2tm YWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInB0eXBlICR2 YXIgKDosIDopIiAiID0gJGludDQgXFwoNCwzXFwpIgotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoi ICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDopIiAiV3Jvbmcg bnVtYmVyIG9mIHN1YnNjcmlwdHMiCi0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jl c3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoOiwgOiwgOikiICJXcm9uZyBudW1i ZXIgb2Ygc3Vic2NyaXB0cyIKLSAKLSAgICAgc2V0IHBmX3ByZWZpeCAkb2xkX3ByZWZpeAotQEAg LTY4LDUgKzU3LDQgQEAgZm9yZWFjaCB2YXIge2EgYWxsb2MgcHRyfSB7Ci0gZ2RiX3Rlc3Rfbm9f b3V0cHV0IHtzZXQgJGE9YX0KLSBkZWxldGVfYnJlYWtwb2ludHMKLSBnZGJfdW5sb2FkCi0tc2V0 dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotIGdkYl90ZXN0IHtwICRhICgz LCAyOjIpfSB7ID0gXCgyM1wpfQoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRl bC02b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKaW5kZXgg NDdmYWVmMi4uNzc3YmJjOSAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZv ZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKQEAgLTEs NyArMSwxMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDIv bXNnMDA4NDcuaHRtbAotU3ViamVjdDogW1BBVENIIHYyIDYvNl0gZm9ydHJhbjogdGVzdCBjYXNl cyBmb3Igc3ViYXJyYXkgc3RyaWRlcyBhbmQgc2xpY2VzCitSRTogW3BpbmddIFtQQVRDSCB2MiAw LzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKK2h0 dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1s CiAKK0Zyb20gOTgyZDU4MmVlNzM4Y2JjZjI1MmJhOGVhYjU5YTk1MTRlZGRhNzViOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQu d2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTogV2VkLCA0IERlYyAyMDEzIDExOjQ3OjE1ICswMDAw CitTdWJqZWN0OiBbUEFUQ0ggNi82XSBmb3J0cmFuOiB0ZXN0IGNhc2VzIGZvciBzdWJhcnJheSBz dHJpZGVzIGFuZCBzbGljZXMKIAogQWRkIHRlc3QgY2FzZXMgZm9yIHN1YmFycmF5IGNyZWF0aW9u IHdpdGggcmFuZ2UsIGxpdGVyYWwgYW5kCiBzdHJpZGUgdmFsdWUgcGVybXV0YXRpb25zIGZvciBv bmUsIHR3bywgYW5kIHRocmVlIGRpbWVuc2lvbmFsCkBAIC01MTEsNSArNTE0LDUgQEAgaW5kZXgg MDAwMDAwMC4uZjIyZmNiZQogKyAgY2FsbCBzdWIKICtlbmQKIC0tIAotMi41LjAKKzIuNS41CiAK CmRpZmYgLS1naXQgYS9nZGItcHl0aG9uLWdpbC5wYXRjaCBiL2dkYi1weXRob24tZ2lsLnBhdGNo CmluZGV4IDFlM2IwYjkuLjVjZTEzYTggMTAwNjQ0Ci0tLSBhL2dkYi1weXRob24tZ2lsLnBhdGNo CisrKyBiL2dkYi1weXRob24tZ2lsLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9weXRob24udGV4aQorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRleGkKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE1LTA1LTMxIDE3OjU3OjEyLjQzMTU5 Mzk4MyArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9weXRob24udGV4aQky MDE1LTA1LTMxIDE3OjU3OjE0LjY1NDYwNzcwOCArMDIwMAotQEAgLTIyOSw2ICsyMjksMTQgQEAg cmV0dXJuZWQgYXMgYSBzdHJpbmcuICBUaGUgZGVmYXVsdCBpcyBAYworLS0tIGdkYi03LjExLjUw LjIwMTYwNjMwLm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE2LTA3LTAzIDE2OjMwOjM3LjAw OTMzODM1OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRl eGkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTIzODc4NjcgKzAyMDAKK0BAIC0yMjksNiArMjI5LDE0 IEBACiAgcmV0dXJuIHZhbHVlIGlzIEBjb2Rle05vbmV9LiAgSWYgQHZhcnt0b19zdHJpbmd9IGlz IEBjb2Rle1RydWV9LCB0aGUKICBAdmFsdWV7R0RCTn0gdmlydHVhbCB0ZXJtaW5hbCB3aWxsIGJl IHRlbXBvcmFyaWx5IHNldCB0byB1bmxpbWl0ZWQgd2lkdGgKICBhbmQgaGVpZ2h0LCBhbmQgaXRz IHBhZ2luYXRpb24gd2lsbCBiZSBkaXNhYmxlZDsgQHB4cmVme1NjcmVlbiBTaXplfS4KQEAgLTE3 LDExICsxNywxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50 ZXhpCiAgQGVuZCBkZWZ1bgogIAogIEBmaW5kZXggZ2RiLmJyZWFrcG9pbnRzCi1JbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5h bC5oCTIwMTUtMDUtMzEgMTc6NTc6MTIuNDMyNTkzOTg5ICswMjAwCi0rKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDUtMzEgMTc6NTc6MTQu NjU0NjA3NzA4ICswMjAwCi1AQCAtMTQyLDYgKzE0Miw4IEBAIHR5cGVkZWYgaW50IFB5X3NzaXpl X3Q7CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRl cm5hbC5oCTIwMTYtMDctMDMgMTY6MzA6MzcuMDEwMzM4MzY2ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE2LTA3LTAzIDE2OjMw OjQyLjgxMjM4Nzg2NyArMDIwMAorQEAgLTE0MCw2ICsxNDAsOCBAQAogICNkZWZpbmUgUHlHSUxT dGF0ZV9SZWxlYXNlKEFSRykgKCh2b2lkKShBUkcpKQogICNkZWZpbmUgUHlFdmFsX0luaXRUaHJl YWRzKCkKICAjZGVmaW5lIFB5VGhyZWFkU3RhdGVfU3dhcChBUkcpICgodm9pZCkoQVJHKSkKQEAg LTMwLDExICszMCwxMSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5 dGhvbi1pbnRlcm5hbC5oCiAgI2RlZmluZSBQeUV2YWxfUmVsZWFzZUxvY2soKQogICNlbmRpZgog IAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9uLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMx IDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5 dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE4OjAyOjA4Ljg5MTQyNDIyNyArMDIwMAotQEAgLTYy NywxMyArNjI3LDE4IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8K Ky0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9weXRob24vcHl0aG9uLmMJMjAxNi0w Ny0wMyAxNjozMDozNy4wMTEzMzgzNzUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTYtMDctMDMgMTY6MzE6MTYuMzI0NjczNzgzICswMjAwCitA QCAtNjE5LDEzICs2MTksMTggQEAKICB7CiAgICBjb25zdCBjaGFyICphcmc7CiAgICBQeU9iamVj dCAqZnJvbV90dHlfb2JqID0gTlVMTCwgKnRvX3N0cmluZ19vYmogPSBOVUxMOwpAQCAtNTcsNyAr NTcsNyBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAg ICAgIHJldHVybiBOVUxMOwogIAogICAgZnJvbV90dHkgPSAwOwotQEAgLTY1NCwxMiArNjU5LDI4 IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NDYsNiAr NjUxLDE1IEBACiAgICAgICAgdG9fc3RyaW5nID0gY21wOwogICAgICB9CiAgCkBAIC03Myw4ICs3 Myw5IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLmMKICAg IFRSWQogICAgICB7CiAgICAgICAgLyogQ29weSB0aGUgYXJndW1lbnQgdGV4dCBpbiBjYXNlIHRo ZSBjb21tYW5kIG1vZGlmaWVzIGl0LiAgKi8KLSAgICAgICBjaGFyICpjb3B5ID0geHN0cmR1cCAo YXJnKTsKK0BAIC02NTMsNiArNjY3LDEzIEBACiAgICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFu dXAgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBjb3B5KTsKKyAgICAgICBzdHJ1Y3QgaW50ZXJwICpp bnRlcnA7CiAgCiArICAgICAgLyogSW4gdGhlIGNhc2Ugb2YgbG9uZyBydW5uaW5nIEdEQiBjb21t YW5kcywgYWxsb3cgdGhlIHVzZXIgdG8KICsJIHJlbGVhc2UgdGhlIFB5dGhvbiBHSUwgYWNxdWly ZWQgYnkgUHl0aG9uLiAgUmVzdG9yZSB0aGUgR0lMCkBAIC04MywxMCArODQsMTAgQEAgSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYwogKyAgICAgIGlmIChyZWxl YXNlX2dpbCkKICsJc3RhdGUgPSBQeUV2YWxfU2F2ZVRocmVhZCgpOwogKwotICAgICAgIG1ha2Vf Y2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZpbnRlcnByZXRlcl9hc3luYyk7Ci0gICAgICAgaW50 ZXJwcmV0ZXJfYXN5bmMgPSAwOworICAgICAgIG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIg KCZjdXJyZW50X3VpLT5hc3luYyk7CisgICAgICAgY3VycmVudF91aS0+YXN5bmMgPSAwOwogIAot QEAgLTY3MiwxMSArNjkzLDIzIEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxm LCBQeU8KK0BAIC02NzEsMTEgKzY5MiwyMyBAQAogIAkgIGV4ZWN1dGVfY29tbWFuZCAoY29weSwg ZnJvbV90dHkpOwogIAl9CiAgCkBAIC0xMTEsMTAgKzExMiwxMCBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIH0KICAgIEVORF9DQVRDSAogIAot SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdp bC1tdGhyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktZ2lsLW10aHJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMJMjAxNS0wNS0zMSAxNzo1 NzoxNC42NTY2MDc3MjAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYwkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMzM4 Nzg3NiArMDIwMAogQEAgLTAsMCArMSwxMiBAQAogKyNpbmNsdWRlIDxzdGRpby5oPgogKwpAQCAt MTI4LDEwICsxMjksMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMKICsgICAgICBwcmludGYgKCJTbGVlcGluZyAl ZFxuIiwgaSk7CiArICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdp bC1tdGhyZWFkLmV4cAkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NzYwNzcyNiArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVh ZC5leHAJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTMzODc4NzYgKzAyMDAKIEBAIC0wLDAgKzEsNjkg QEAKICsjIENvcHlyaWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTIwMiwxMCArMjAzLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAKICsJfQogKyAgICB9CiArfQot SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdp bC1tdGhyZWFkLnB5CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkJMjAxNS0wNS0zMSAx Nzo1NzoxNC42NTc2MDc3MjYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkJMjAxNi0wNy0wMyAxNjozMDo0Mi44 MTQzODc4ODQgKzAyMDAKIEBAIC0wLDAgKzEsMjIgQEAKICtpbXBvcnQgdGhyZWFkCiAraW1wb3J0 IHRpbWUKCmRpZmYgLS1naXQgYS9nZGItcmVhZGxpbmU2Mi1hc2stbW9yZS1yaC5wYXRjaCBiL2dk Yi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCmluZGV4IGFlNjg5NDYuLjQ2M2Q5ZDMgMTAw NjQ0Ci0tLSBhL2dkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCisrKyBiL2dkYi1yZWFk bGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC0xLDE3ICsxLDE4IEBACi1kaWZmIC1kdXAgLXJ1 cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9ldmVudC10b3AuYyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvZXZlbnQtdG9wLmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dk Yi9ldmVudC10b3AuYwkyMDE2LTAxLTA5IDE0OjUxOjAyLjMyNDI0MzUwNiArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYwkyMDE2LTAxLTA5IDE0OjUxOjMzLjAy OTQzNDEyMSArMDEwMAotQEAgLTEwMzMsNiArMTAzMywxMyBAQCBzZXRfYXN5bmNfZWRpdGluZ19j b21tYW5kIChjaGFyICphcmdzLCBpCi0gdm9pZAotIGdkYl9zZXR1cF9yZWFkbGluZSAodm9pZCkK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZXZlbnQtdG9wLmMKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9ldmVudC10b3AuYwkyMDE2LTA3LTAz IDE2OjMyOjM2LjEwODM0MjE1OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9l dmVudC10b3AuYwkyMDE2LTA3LTAzIDE2OjMyOjU5Ljc4NzUyMzczMyArMDIwMAorQEAgLTEyNTIs NiArMTI1MiwxMyBAQAogIHsKKyAgIHN0cnVjdCB1aSAqdWkgPSBjdXJyZW50X3VpOworIAogKyNp ZmRlZiBORUVEX1JMX1NUQVRFX0ZFRE9SQV9HREIKICsgIC8qIDYuMiByZWdyZXNzaW9uOiBubyBs b25nZWQgYXNrcyBmb3IgLS1tb3JlLS0KICsgICAgIGdkYi5iYXNlL3JlYWRsaW5lLWFzay5leHAK ICsgICAgIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NzAxMTMx ICAqLwogKyAgUkxfU0VUU1RBVEUgKFJMX1NUQVRFX0ZFRE9SQV9HREIpOwotKwogKyNlbmRpZgor KwogICAgLyogVGhpcyBmdW5jdGlvbiBpcyBhIG5vb3AgZm9yIHRoZSBzeW5jIGNhc2UuICBUaGUg YXNzdW1wdGlvbiBpcwogICAgICAgdGhhdCB0aGUgc3luYyBzZXR1cCBpcyBBTEwgZG9uZSBpbiBn ZGJfaW5pdCwgYW5kIHdlIHdvdWxkIG9ubHkKICAgICAgIG1lc3MgaXQgdXAgaGVyZS4gIFRoZSBz eW5jIHN0dWZmIHNob3VsZCByZWFsbHkgZ28gYXdheSBvdmVyCgpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoxMzYzNjM1LWFhcmNoNjQtYXJtdjgxODIucGF0Y2ggYi9nZGItcmhiejEzNjM2MzUtYWFyY2g2 NC1hcm12ODE4Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVlYTU2NS4u MDAwMDAwMAotLS0gYS9nZGItcmhiejEzNjM2MzUtYWFyY2g2NC1hcm12ODE4Mi5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLWNvbW1pdCA0OWVjZWYyYTdkYTJlZTlkZjRhZTY3 NWY5OWI3MDUxOGZiZjFiYjIzCi1BdXRob3I6IEFuZHJldyBQaW5za2kgPGFwaW5za2lAY2F2aXVt LmNvbT4KLURhdGU6ICAgU2F0IEp1bCAyMyAwOTo1Njo0NCAyMDE2IC0wNzAwCi0KLSAgICBGaXgg QVJNdjguMS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVha3BvaW50Ci0gICAgCi0gICAg VGhlIHByb2JsZW0gaGVyZSBpcyBBUk12OC4xIChhbmQgQVJNdjguMikgZGVmaW5lIGEKLSAgICBk aWZmZXJlbnQgZGVidWcgdmVyc2lvbiB0aGFuIEFSTXY4ICg3IGFuZCA4IHJlc3BlY3RpdmVseSku Ci0gICAgVGhpcyBmaXhlcyBodyB3YXRjaHBvaW50cyBhbmQgYnJlYWtwb2ludHMgYnkgY2hlY2tp bmcKLSAgICBmb3IgdGhvc2UgZGVidWcgdmVyc2lvbnMgdG9vLgotICAgIAotICAgIENvbW1pdHRl ZCBhcyBvYnZpb3VzIGFmdGVyIGEgdGVzdCBvbiBhYXJjaDY0LWxpbnV4LWdudQotICAgIChvbiBh IFRodW5kZXJYIG1hY2hpbmUgd2hpY2ggaGFzIEFSTXY4LjEgc3VwcG9ydCBlbmFibGVkKS4KLSAg ICAKLSAgICBDaGFuZ2VMb2c6Ci0gICAgCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwot ICAgIAkoYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5KTogSGFuZGxlCi0gICAg CUFSTXY4LjEgYW5kIEFSTXY4LjIgZGVidWcgdmVyc2lvbnMuCi0gICAgCSogbmF0L2FhcmNoNjQt bGludXgtaHctcG9pbnQuaAotICAgIAkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEpOiBOZXcgZGVm aW5lLgotICAgIAkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpOiBOZXcgZGVmaW5lLgotICAgIAot ICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBQaW5za2kgPGFwaW5za2lAY2F2aXVtLmNvbT4KLQot IyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMiBA QAotKzIwMTYtMDctMjMgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGNhdml1bS5jb20+Ci0rCi0r CSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwotKwkoYWFyY2g2NF9saW51eF9nZXRfZGVi dWdfcmVnX2NhcGFjaXR5KTogSGFuZGxlCi0rCUFSTXY4LjEgYW5kIEFSTXY4LjIgZGVidWcgdmVy c2lvbnMuCi0rCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuaAotKwkoQUFSQ0g2NF9ERUJV R19BUkNIX1Y4XzEpOiBOZXcgZGVmaW5lLgotKwkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpOiBO ZXcgZGVmaW5lLgotKwotIDIwMTYtMDYtMzAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+ 0LIgIDxscm4xOTg2QGdtYWlsLmNvbT4KLSAKLSAJUFIgZ2RiLzE0NTI5Ci0tLS0gYS9nZGIvbmF0 L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwotKysrIGIvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3 LXBvaW50LmMKLUBAIC02MzAsNyArNjMwLDkgQEAgYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVn X2NhcGFjaXR5IChpbnQgdGlkKQotIAotICAgLyogR2V0IGhhcmR3YXJlIHdhdGNocG9pbnQgcmVn aXN0ZXIgaW5mby4gICovCi0gICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIE5U X0FSTV9IV19XQVRDSCwgJmlvdikgPT0gMAotLSAgICAgICYmIEFBUkNINjRfREVCVUdfQVJDSCAo ZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4KQotKyAgICAgICYm IChBQVJDSDY0X0RFQlVHX0FSQ0ggKGRyZWdfc3RhdGUuZGJnX2luZm8pID09IEFBUkNINjRfREVC VUdfQVJDSF9WOAotKwkgIHx8IEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5m bykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEKLSsJICB8fCBBQVJDSDY0X0RFQlVHX0FSQ0gg KGRyZWdfc3RhdGUuZGJnX2luZm8pID09IEFBUkNINjRfREVCVUdfQVJDSF9WOF8yKSkKLSAgICAg ewotICAgICAgIGFhcmNoNjRfbnVtX3dwX3JlZ3MgPSBBQVJDSDY0X0RFQlVHX05VTV9TTE9UUyAo ZHJlZ19zdGF0ZS5kYmdfaW5mbyk7Ci0gICAgICAgaWYgKGFhcmNoNjRfbnVtX3dwX3JlZ3MgPiBB QVJDSDY0X0hXUF9NQVhfTlVNKQotQEAgLTY1MCw3ICs2NTIsOSBAQCBhYXJjaDY0X2xpbnV4X2dl dF9kZWJ1Z19yZWdfY2FwYWNpdHkgKGludCB0aWQpCi0gCi0gICAvKiBHZXQgaGFyZHdhcmUgYnJl YWtwb2ludCByZWdpc3RlciBpbmZvLiAgKi8KLSAgIGlmIChwdHJhY2UgKFBUUkFDRV9HRVRSRUdT RVQsIHRpZCwgTlRfQVJNX0hXX0JSRUFLLCAmaW92KSA9PSAwCi0tICAgICAgJiYgQUFSQ0g2NF9E RUJVR19BUkNIIChkcmVnX3N0YXRlLmRiZ19pbmZvKSA9PSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjgp Ci0rICAgICAgJiYgKEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0g QUFSQ0g2NF9ERUJVR19BUkNIX1Y4Ci0rCSAgfHwgQUFSQ0g2NF9ERUJVR19BUkNIIChkcmVnX3N0 YXRlLmRiZ19pbmZvKSA9PSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjhfMQotKwkgIHx8IEFBUkNINjRf REVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4 XzIpKQotICAgICB7Ci0gICAgICAgYWFyY2g2NF9udW1fYnBfcmVncyA9IEFBUkNINjRfREVCVUdf TlVNX1NMT1RTIChkcmVnX3N0YXRlLmRiZ19pbmZvKTsKLSAgICAgICBpZiAoYWFyY2g2NF9udW1f YnBfcmVncyA+IEFBUkNINjRfSEJQX01BWF9OVU0pCi0tLS0gYS9nZGIvbmF0L2FhcmNoNjQtbGlu dXgtaHctcG9pbnQuaAotKysrIGIvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmgKLUBA IC02OCw2ICs2OCw4IEBACi0gCi0gLyogTWFjcm8gZm9yIHRoZSBleHBlY3RlZCB2ZXJzaW9uIG9m IHRoZSBBUk12OC1BIGRlYnVnIGFyY2hpdGVjdHVyZS4gICovCi0gI2RlZmluZSBBQVJDSDY0X0RF QlVHX0FSQ0hfVjggMHg2Ci0rI2RlZmluZSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjhfMSAweDcKLSsj ZGVmaW5lIEFBUkNINjRfREVCVUdfQVJDSF9WOF8yIDB4OAotIAotIC8qIHB0cmFjZSBleHBlY3Rz IGNvbnRyb2wgcmVnaXN0ZXJzIHRvIGJlIGZvcm1hdHRlZCBhcyBmb2xsb3dzOgotIAoKZGlmZiAt LWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQy NC1iaXRwb3MtMjBvZjI1LnBhdGNoCmluZGV4IDYwMzdlMGUuLmIzN2M1YjkgMTAwNjQ0Ci0tLSBh L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTIwb2YyNS5wYXRjaApAQCAtNDYzLDExICs0NjMsMTEgQEAgQ29udGVudC1UeXBlOiB0 ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlz cG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy1tYWluLnBhdGNoCiAKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3NTM1MTQxMCAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMTk3MzY0NzE0ICswMTAwCi1AQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgc3RydWN0 IHR5cGUgKmRlc2NfYm91bmRzX3R5cGUgKHN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvYWRhLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1MzUxMDExNyArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTI3NTMwMDI4ICswMjAwCitAQCAtNzUsNyArNzUsNyBAQAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFs dWUgKmRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00NzYsNyArNDc2LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGlu dCBmYXRfcG50cl9ib3VuZHNfYml0c2l6ZSAoc3RydWN0IHR5cGUgKik7CiAgCi1AQCAtODMsMTMg KzgzLDEzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVzY19kYXRhX3RhcmdldF90eXAKK0BAIC04 MywxMyArODMsMTMgQEAKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2RhdGEgKHN0cnVj dCB2YWx1ZSAqKTsKICAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgaW50IGRlc2NfYm91bmRfYml0c2l6ZSAo c3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwogIAotQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMg c3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBfdHlwZSAoCitAQCAtMTcyLDcgKzE3Miw3IEBACiAg CiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdW53cmFwX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKik7CiAg CkBAIC01MDEsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEt bGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICpkZWNvZGVfY29uc3RyYWluZWRfcGFja2Vk X2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwogIAotQEAgLTE4Nyw3ICsxODcsOCBAQCBzdGF0 aWMgaW50IGFkYV9pc191bmNvbnN0cmFpbmVkX3BhY2tlZF9hCitAQCAtMTg3LDcgKzE4Nyw4IEBA CiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0X3BhY2tlZCAoc3RydWN0IHZh bHVlICosIGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdmFsdWUgKiopOwogIApAQCAtNTExLDcgKzUxMSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmNv ZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZSAqLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICopOwotQEAgLTIx NSwxNCArMjE2LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUK K0BAIC0yMTUsMTQgKzIxNiwxNCBAQAogIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICpzdGFuZGFyZF9s b29rdXAgKGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IGJsb2NrICosCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluX2VudW0pOwogIApAQCAtNTMwLDcgKzUz MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV90b19maXhlZF92YWx1ZV9jcmVhdGUgKHN0cnVjdCB0eXBl ICosIENPUkVfQUREUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdmFsdWUgKik7Ci1AQCAtMjM2LDcgKzIzNyw3IEBAIHN0YXRpYyBpbnQg YWRhX2lzX2RpcmVjdF9hcnJheV90eXBlIChzdHIKK0BAIC0yMzYsNyArMjM3LDcgQEAKICBzdGF0 aWMgdm9pZCBhZGFfbGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAqLAogIAkJCQkg ICAgc3RydWN0IGxhbmd1YWdlX2FyY2hfaW5mbyAqKTsKICAKQEAgLTUzOSw3ICs1MzksNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCQkJCSAgICAgc3Ry dWN0IHR5cGUgKik7CiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYXNzaWduX2FnZ3JlZ2F0ZSAo c3RydWN0IHZhbHVlICosIHN0cnVjdCB2YWx1ZSAqLCAKLUBAIC03MDAsNyArNzAxLDcgQEAgY29l cmNlX3Vuc3BlY192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlCitAQCAtNzAwLDcgKzcwMSw3IEBA CiAgfQogIAogIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSAqCkBAIC01NDgsNyArNTQ4LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgewogICAgaWYgKHZhbGFk ZHIgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtNzA5LDcgKzcxMCw3IEBAIGNvbmRf b2Zmc2V0X2hvc3QgKGNvbnN0IGdkYl9ieXRlICp2YWxhZGQKK0BAIC03MDksNyArNzEwLDcgQEAK ICB9CiAgCiAgc3RhdGljIENPUkVfQUREUgpAQCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmIChhZGRyZXNzID09IDAp CiAgICAgIHJldHVybiAwOwotQEAgLTE3MTcsNyArMTcxOCw3IEBAIGRlc2NfYm91bmRzIChzdHJ1 Y3QgdmFsdWUgKmFycikKK0BAIC0xNzU2LDcgKzE3NTcsNyBAQAogIC8qIElmIFRZUEUgaXMgdGhl IHR5cGUgb2YgYW4gYXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIpLCAgdGhlIGJpdAogICAg IHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBib3Vu ZHMgZGF0YS4gICovCiAgCkBAIC01NjYsNyArNTY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfYm91bmRzX2JpdHBvcyAoc3RydWN0IHR5 cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlw ZSAodHlwZSksIDEpOwotQEAgLTE3ODMsNyArMTc4NCw3IEBAIGRlc2NfZGF0YSAoc3RydWN0IHZh bHVlICphcnIpCitAQCAtMTgyMiw3ICsxODIzLDcgQEAKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBl IG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwgdGhlIGJpdAogICAgIHBvc2l0 aW9uIG9mIHRoZSBmaWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhLiAgKi8K ICAKQEAgLTU3NSw3ICs1NzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS1sYW5nLmMKICBmYXRfcG50cl9kYXRhX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewog ICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDApOwot QEAgLTE4MTgsNyArMTgxOSw3IEBAIGRlc2Nfb25lX2JvdW5kIChzdHJ1Y3QgdmFsdWUgKmJvdW5k cywgaW4KK0BAIC0xODU3LDcgKzE4NTgsNyBAQAogICAgIG9mIHRoZSBJdGggbG93ZXIgYm91bmQg c3RvcmVkIGluIGl0LCBpZiBXSElDSCBpcyAwLCBhbmQgdGhlIEl0aCB1cHBlcgogICAgIGJvdW5k LCBpZiBXSElDSCBpcyAxLiAgVGhlIGZpcnN0IGJvdW5kIGlzIEk9MS4gICovCiAgCkBAIC01ODQs NyArNTg0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAg ZGVzY19ib3VuZF9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaSwgaW50IHdoaWNoKQog IHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAy ICogaSArIHdoaWNoIC0gMik7Ci1AQCAtMjAwOCw3ICsyMDA5LDcgQEAgYWRhX3R5cGVfb2ZfYXJy YXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBpbgorQEAgLTIwNDcsNyArMjA0OCw3IEBACiAgCSAgICAg ICAgIHplcm8sIGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlY29tcHV0ZWQuICAqLwogIAkgICAg ICBpZiAobG8gPCBoaSkKICAJCXsKQEAgLTU5Myw3ICs1OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCSAgICAgICAgKGhpIC0gbG8gKyAxKSAqIFRZ UEVfRklFTERfQklUU0laRSAoZWx0X3R5cGUsIDApOwogIAogIAkJICBUWVBFX0xFTkdUSCAoYXJy YXlfdHlwZSkgPSAoYXJyYXlfYml0c2l6ZSArIDcpIC8gODsKLUBAIC0yMTY4LDcgKzIxNjksNyBA QCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0eXBlCitAQCAtMjIwNyw3ICsy MjA4LDcgQEAKICAgICB0aGUgbGVuZ3RoIGlzIGFyYml0cmFyeS4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCB0eXBlICoKQEAgLTYwMiw3ICs2MDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqbmV3X2VsdF90eXBlOwogICAg c3RydWN0IHR5cGUgKm5ld190eXBlOwotQEAgLTIyMjIsNyArMjIyMyw3IEBAIGRlY29kZV9jb25z dHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3QKK0BAIC0yMjYxLDcgKzIyNjIsNyBAQAogICAg Y2hhciAqbmFtZTsKICAgIGNvbnN0IGNoYXIgKnRhaWw7CiAgICBzdHJ1Y3QgdHlwZSAqc2hhZG93 X3R5cGU7CkBAIC02MTEsNyArNjExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtbGFuZy5jCiAgCiAgICBpZiAoIXJhd19uYW1lKQogICAgICByYXdfbmFtZSA9IGFkYV90 eXBlX25hbWUgKGRlc2NfYmFzZV90eXBlICh0eXBlKSk7Ci1AQCAtMjI5Myw3ICsyMjk0LDggQEAg ZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJheSAoc3RydWN0CitAQCAtMjMzMiw3ICsyMzMz LDggQEAKICAgCSBhcnJheSB3aXRoIG5vIHdyYXBwZXIuICBJbiBvcmRlciB0byBpbnRlcnByZXQg dGhlIHZhbHVlIHRocm91Z2gKICAgCSB0aGUgKGxlZnQtanVzdGlmaWVkKSBwYWNrZWQgYXJyYXkg dHlwZSB3ZSBqdXN0IGJ1aWx0LCB3ZSBtdXN0CiAgIAkgZmlyc3QgbGVmdC1qdXN0aWZ5IGl0LiAg Ki8KQEAgLTYyMSw3ICs2MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAgICAgICAgbW9kID0gYWRhX21vZHVs dXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsKLUBAIC0yNTIxLDcgKzI1MjMsNyBAQCBhZGFfdW5w YWNrX2Zyb21fY29udGVudHMgKGNvbnN0IGdkYl9ieXRlCitAQCAtMjU2MCw3ICsyNTYyLDcgQEAK ICAKICBzdHJ1Y3QgdmFsdWUgKgogIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3Ry dWN0IHZhbHVlICpvYmosIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNjMwLDcgKzYzMCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgc3RydWN0 IHZhbHVlICp2OwotQEAgLTI1OTQsNyArMjU5Niw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFj a2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNjMzLDcgKzI2MzUsNyBAQAogIAogICAgaWYgKG9iaiAh PSBOVUxMKQogICAgICB7CkBAIC02MzksNyArNjM5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgICAgICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2Nh dGlvbiAodiwgb2JqKTsKICAgICAgICBzZXRfdmFsdWVfYml0cG9zICh2LCBiaXRfb2Zmc2V0ICsg dmFsdWVfYml0cG9zIChvYmopKTsKLUBAIC0yNjQyLDcgKzI2NDQsNyBAQCBhZGFfdmFsdWVfcHJp bWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjY4MSw3ICsyNjgzLDcgQEAKICAgICBu b3Qgb3ZlcmxhcC4gICovCiAgc3RhdGljIHZvaWQKICBtb3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJn ZXQsIGludCB0YXJnX29mZnNldCwgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZSwKQEAgLTY0OCw3ICs2 NDgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAg ICB1bnNpZ25lZCBpbnQgYWNjdW0sIG1hc2s7CiAgICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6 ZTsKLUBAIC0yNzMyLDcgKzI3MzQsNyBAQCBhZGFfdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUg KnRvdmFsLCBzCitAQCAtMjc3MSw3ICsyNzczLDcgQEAKICAgICAgewogICAgICAgIGludCBsZW4g PSAodmFsdWVfYml0cG9zICh0b3ZhbCkKICAJCSArIGJpdHMgKyBIT1NUX0NIQVJfQklUIC0gMSkg LyBIT1NUX0NIQVJfQklUOwpAQCAtNjU3LDcgKzY1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGdkYl9ieXRlICpidWZmZXIgPSAoZ2RiX2J5 dGUgKikgYWxsb2NhIChsZW4pOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsOwogICAgICAgIENP UkVfQUREUiB0b19hZGRyID0gdmFsdWVfYWRkcmVzcyAodG92YWwpOwotQEAgLTI3ODMsNyArMjc4 NSw3IEBAIHZhbHVlX2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVjdCB2YWx1ZQorQEAgLTI4MjIs NyArMjgyNCw3IEBACiAgICAgIChMT05HRVNUKSAgKHZhbHVlX2FkZHJlc3MgKGNvbXBvbmVudCkg LSB2YWx1ZV9hZGRyZXNzIChjb250YWluZXIpKTsKICAgIGludCBiaXRfb2Zmc2V0X2luX2NvbnRh aW5lciA9CiAgICAgIHZhbHVlX2JpdHBvcyAoY29tcG9uZW50KSAtIHZhbHVlX2JpdHBvcyAoY29u dGFpbmVyKTsKQEAgLTY2Niw3ICs2NjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2FkYS1sYW5nLmMKICAKICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBv bmVudCksIHZhbCk7CiAgCi1AQCAtNDM5Miw3ICs0Mzk0LDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVj dCB2YWx1ZSAqdmFsKQorQEAgLTQ0ODAsNyArNDQ4Miw3IEBACiAgICBpZiAoVkFMVUVfTFZBTCAo dmFsKSA9PSBub3RfbHZhbAogICAgICAgIHx8IFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9pbnRl cm5hbHZhcikKICAgICAgewpAQCAtNjc1LDcgKzY3NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyID0KICAg ICAgICAgIHZhbHVlX2FzX2xvbmcgKHZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChs ZW4pKTsKICAKLUBAIC00NDc2LDcgKzQ0NzgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCitAQCAtNDU2 NCw3ICs0NTY2LDcgQEAKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1 Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBl X2FyY2ggKHR5cGUpOwpAQCAtNjg0LDcgKzY4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgZ2RiX2J5dGUgKmJ1ZiA9IChnZGJfYnl0ZSAqKSBhbGxv Y2EgKGxlbik7CiAgICBDT1JFX0FERFIgYWRkcjsKICAKLUBAIC02NzExLDcgKzY3MTMsNyBAQCB2 YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAoc3RyCitAQCAtNjc5OSw3ICs2ODAx LDcgQEAKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNjkzLDcg KzY5Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAg c3RydWN0IHR5cGUgKnRhZ190eXBlOwogIAogICAgaWYgKGZpbmRfc3RydWN0X2ZpZWxkICgiX3Rh ZyIsIHR5cGUsIDAsICZ0YWdfdHlwZSwgJnRhZ19ieXRlX29mZnNldCwKLUBAIC03MTgxLDcgKzcx ODMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlCitAQCAtNzI4 MCw3ICs3MjgyLDcgQEAKICAgICBvbmx5IGluIHRoYXQgaXQgY2FuIGhhbmRsZSBwYWNrZWQgdmFs dWVzIG9mIGFyYml0cmFyeSB0eXBlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAg LTcwMiw3ICs3MDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5n LmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAg ewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNzE5Myw3ICs3MTk1LDcgQEAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzI5Miw3ICs3Mjk0LDcgQEAKICAK ICAgIGlmIChUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5vKSAhPSAwKQogICAg ICB7CkBAIC03MTEsNyArNzExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtbGFuZy5jCiAgICAgICAgaW50IGJpdF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdf dHlwZSwgZmllbGRubyk7CiAgCiAgICAgICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFj a2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29udGVudHMgKGFyZzEpLAotQEAgLTcyMjAsOSArNzIyMiw5 IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTczMTksOSAr NzMyMSw5IEBACiAgICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAg c3RhdGljIGludApAQCAtNzIzLDcgKzcyMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsKICAgIGludCBpOwotQEAg LTcyNDAsOCArNzI0Miw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBz dHIKK0BAIC03MzM5LDggKzczNDEsOCBAQAogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJ RUxEUyAodHlwZSk7IGkgKz0gMSkKICAgICAgewpAQCAtNzM0LDcgKzczNCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRf ZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRf ZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTczMTEsNyArNzMxMyw3IEBAIG51bV92aXNpYmxlX2Zp ZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNzQxMCw3ICs3NDEyLDcgQEAKICAgICBTZWFy Y2hlcyByZWN1cnNpdmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcp LiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc0Myw3ICs3NDMsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzM0NCw3ICs3 MzQ2LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbQorQEAgLTc0 NDMsNyArNzQ0NSw3IEBACiAgICAgICAgICAgIGludCBqOwogICAgICAgICAgICBzdHJ1Y3QgdHlw ZSAqZmllbGRfdHlwZSA9IGFkYV9jaGVja190eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUs CiAgCQkJCQkJCQkJaSkpOwpAQCAtNzUyLDcgKzc1Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgVFlQ RV9ORklFTERTIChmaWVsZF90eXBlKTsgaiArPSAxKQogICAgICAgICAgICAgIHsKLUBAIC03MzYy LDggKzczNjQsOCBAQCBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtCitA QCAtNzQ2MSw4ICs3NDYzLDggQEAKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc2Myw3ICs3 NjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAK ICAvKiBSZXR1cm4gZmllbGQgI0lOREVYIGluIEFSRywgd2hlcmUgdGhlIGluZGV4IGlzIHRoYXQg cmV0dXJuZWQgYnkKLUBAIC03MzcyLDcgKzczNzQsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICph ZGFfaW5kZXhfc3RydWN0X2ZpCitAQCAtNzQ3MSw3ICs3NDczLDcgQEAKICAgKiBJZiBmb3VuZCwg cmV0dXJuIHZhbHVlLCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZh bHVlICoKQEAgLTc3Miw3ICs3NzIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2lu ZGV4X3N0cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03Mzg0 LDcgKzczODYsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitA QCAtNzQ4Myw3ICs3NDg1LDcgQEAKICAgKiAqSU5ERVhfUC4gICovCiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqCkBAIC03ODEsNyArNzgxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtbGFuZy5jCiAgCQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsK LUBAIC03NDc0LDcgKzc0NzYsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVl ICphcmcsCitAQCAtNzU3Myw3ICs3NTc1LDggQEAKICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0 X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC03OTEsNyArNzkx LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAg c3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7CiAgICAgICAgQ09SRV9BRERSIGFkZHJlc3M7CiAgCi1A QCAtNzc5MSw4ICs3Nzk0LDggQEAgYWRhX2NvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkK K0BAIC03OTA0LDggKzc5MDcsOCBAQAogIC8qIFJldHVybiBPRkYgcm91bmRlZCB1cHdhcmQgaWYg bmVjZXNzYXJ5IHRvIGEgbXVsdGlwbGUgb2YKICAgICBBTElHTk1FTlQgKGEgcG93ZXIgb2YgMiku ICAqLwogIApAQCAtODAyLDcgKzgwMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVybiAob2ZmICsgYWxpZ25tZW50IC0gMSkgJiB+KGFs aWdubWVudCAtIDEpOwogIH0KLUBAIC04MTg2LDEwICs4MTg5LDkgQEAgYWRhX3RlbXBsYXRlX3Rv X2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAgLTgyOTksMTAgKzgzMDIsOSBAQAogICAgc3Ry dWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsK ICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgxNSw3ICs4MTUsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgIGludCBmOwogIAogICAgLyogQ29tcHV0 ZSB0aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0aGlzIHJlY29yZCB0eXBlIHRoYXQgYXJlIGdvaW5n Ci1AQCAtODI2Nyw3ICs4MjY5LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBl XzEgKHN0cgorQEAgLTgzODAsNyArODM4Miw3IEBACiAgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBv bmUuICAqLwogIAkgIGlmIChhZGFfaXNfYWxpZ25lcl90eXBlIChmaWVsZF90eXBlKSkKICAJICAg IHsKQEAgLTgyNCw3ICs4MjQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZp ZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25k X29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29mZnNldCk7Ci1AQCAtODQwMywx MSArODQwNSwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitA QCAtODUxNiwxMSArODUxOCwxMSBAQAogICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA8PSAwKQog ICAgICB7CiAgICAgICAgaWYgKFRZUEVfTkFNRSAocnR5cGUpKQpAQCAtODQwLDcgKzg0MCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICB9CiAgICBl bHNlCiAgICAgIHsKLUBAIC04ODc0LDcgKzg4NzYsOCBAQCB0b19maXhlZF9hcnJheV90eXBlIChz dHJ1Y3QgdHlwZSAqdHlwZTAsCitAQCAtODk4Nyw3ICs4OTg5LDggQEAKICAJIHR5cGUgd2FzIGEg cmVndWxhciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJp dHNpemUgb2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRo ZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBi aXRzaXplLiAgKi8KQEAgLTg1MCwxMSArODUwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGludCBlbHRfYml0c2l6ZSA9IFRZUEVfRklFTERf QklUU0laRSAodHlwZTAsIDApOwogIAogICAgICAgIFRZUEVfRklFTERfQklUU0laRSAocmVzdWx0 LCAwKSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FkYS1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9hZGEtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc3MzUxNDIzICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgz NjQ3MjEgKzAxMDAKLUBAIC0xNjgsNyArMTY4LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5 cGUgKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxh bmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NDUxMDEyNSArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICsw MjAwCitAQCAtMTY4LDcgKzE2OCw3IEBACiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGVkZWYg KHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpuZXdfc3ltYm9sLAogIAkJCSAgICAg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICAKQEAgLTg2Myw3ICs4NjMsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgKICAJCQkgICBzdHJ1Y3QgdWlfZmls ZSAqLCBpbnQsCiAgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1AQCAtMTgzLDcgKzE4Myw3IEBAIGV4dGVybiB2 b2lkIGFkYV9lbWl0X2NoYXIgKGludCwgc3RydWN0IHQKK0BAIC0xODMsNyArMTgzLDcgQEAKICBl eHRlcm4gdm9pZCBhZGFfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9m aWxlICopOwogIAogIGV4dGVybiB2b2lkIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiwg c3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTg3Miw3ICs4NzIsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRf YWN0dWFsIChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNTUsNyArMjU1LDcgQEAgZXh0ZXJu IGludCBhZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI1NSw3ICsyNTUsNyBAQAog IAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAo c3RydWN0IHZhbHVlICosCiAgCQkJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqLApAQCAtODgxLDEx ICs4ODEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdHlwZSAqKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmFkYV9jb2VyY2VfdG9fc2ltcGxl X2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRh LXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc3MzUxNDIzICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjE5ODM2NDcyMSArMDEwMAotQEAgLTg5MSw4ICs4OTEsOCBAQCBhZGFfcHJpbnRfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU1NTEwMTMzICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjUyODUzMDAzNiArMDIwMAorQEAgLTg5MSw4ICs4OTEsOCBAQAogIAkgICAgY29u c3QgY2hhciAqbmFtZSA9IGFkYV90eXBlX25hbWUgKHR5cGUpOwogIAogIAkgICAgaWYgKCFhZGFf aXNfcmFuZ2VfdHlwZV9uYW1lIChuYW1lKSkKQEAgLTg5Niw3ICs4OTYsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwogIAkgICAgZWxzZQogIAkgICAg ICB7CiAgCQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJyYW5nZSAiKTsKLUBAIC05MTMsNyAr OTEzLDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworQEAgLTkx Myw3ICs5MTMsOCBAQAogIAkgIH0KICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRkxU OgpAQCAtOTA2LDEwICs5MDYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRU5VTToKICAJ aWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJp bnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FkYS12YWxwcmludC5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk5MzY0NzI4ICsw MTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLXZhbHByaW50LmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wNTY1MTAxNDEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYWRhLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAK IEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKQEAgLTkyNCw3 ICs5MjQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5j CiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICopOwogIAwKICAKLUBAIC0y NzksNyArMjc5LDcgQEAgYWRhX2VtaXRfY2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAor QEAgLTI3OSw3ICsyNzksNyBAQAogICAgIG9mIGEgY2hhcmFjdGVyLiAgKi8KICAKICBzdGF0aWMg aW50CkBAIC05MzMsNyArOTMzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtdmFscHJpbnQuYwogIAkgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIpCiAgewogICAgaWYg KHR5cGVfbGVuID09IDEpCi1AQCAtNDQxLDExICs0NDEsMTEgQEAgYWRhX3ByaW50X3NjYWxhciAo c3RydWN0IHR5cGUgKnR5cGUsIExPTgorQEAgLTQ0MSwxMSArNDQxLDExIEBACiAgCiAgc3RhdGlj IHZvaWQKICBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKmVs dHR5cGUsIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCkBAIC05NDcsNyArOTQ3LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogICAgdW5zaWduZWQgaW50 IHRoaW5nc19wcmludGVkID0gMDsKICAgIGludCBpbl9xdW90ZXMgPSAwOwogICAgaW50IG5lZWRf Y29tbWEgPSAwOwotQEAgLTQ2MCw5ICs0NjAsOSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgc3RydWN0CitAQCAtNDYwLDkgKzQ2MCw5IEBACiAgICAgIHsKICAgICAgICAvKiBQ b3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdlIGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBz ZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4gICovCkBAIC05NTksNyArOTU5LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgICAgIFFVSVQ7 CiAgCi1AQCAtNDkzLDcgKzQ5Myw4IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBzdHJ1Y3QKK0BAIC00OTMsNyArNDkzLDggQEAKICAJICBhZGFfZW1pdF9jaGFyIChjaGFyX2F0 IChzdHJpbmcsIGksIHR5cGVfbGVuLCBieXRlX29yZGVyKSwKICAJCQkgZWx0dHlwZSwgc3RyZWFt LCAnXCcnLCB0eXBlX2xlbik7CiAgCSAgZnB1dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFtKTsKQEAg LTk2OSw3ICs5NjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxw cmludC5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMt PnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1AQCAtNTIxLDcg KzUyMiw3IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC01 MjEsNyArNTIyLDcgQEAKICAKICB2b2lkCiAgYWRhX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTk3OCw3ICs5NzgsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgIGNvbnN0IGNoYXIg KmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC01MzEsMTIgKzUzMiwxMiBAQCBhZGFf cHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0CitAQCAtNTMxLDEyICs1MzIsMTIg QEAKICAKICBzdGF0aWMgaW50CiAgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlw ZSwgaW50IGZpZWxkX251bSwKQEAgLTk5Myw3ICs5OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdl X2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIHN0cnVjdCB0eXBlICp2YXJfdHlwZSA9IFRZUEVfRklF TERfVFlQRSAodHlwZSwgZmllbGRfbnVtKTsKLUBAIC01NzIsMTEgKzU3MywxMSBAQCBwcmludF92 YXJpYW50X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCitAQCAtNTcyLDExICs1NzMsMTEgQEAK ICAKICBzdGF0aWMgaW50CiAgcHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0 IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIGludCBpLCBsZW47Ci1AQCAtNjQzLDcg KzY0NCw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKK0BAIC02 NDMsNyArNjQ0LDcgQEAKICAJICAgIH0KICAJICBlbHNlCiAgCSAgICB7CkBAIC0xMDE2LDcgKzEw MTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAg CSAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgaSk7CiAgCSAg ICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CiAgCi1AQCAtNjg5LDggKzY5MCw4 IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02ODksOCAr NjkwLDggQEAKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUg PSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTEwMjcsNyArMTAyNyw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMKICAKICAgIC8qIFdlIGtub3cg dGhhdCBFTFRUWVBFIGNhbm5vdCBwb3NzaWJseSBiZSBudWxsLCBiZWNhdXNlIHdlIGFzc3VtZQog ICAgICAgdGhhdCB3ZSdyZSBjYWxsZWQgb25seSB3aGVuIFRZUEUgaXMgYSBzdHJpbmctbGlrZSB0 eXBlLgotQEAgLTcwOSw3ICs3MTAsNyBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5 cGUgKnR5cGUsCitAQCAtNzA5LDcgKzcxMCw3IEBACiAgICAgICBlbGVtZW50cyB1cCB0byBpdC4g ICovCiAgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQogICAgICB7CkBAIC0xMDM2 LDcgKzEwMzYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmlu dC5jCiAgCiAgICAgICAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogICAgICAgIGZvciAo dGVtcF9sZW4gPSAwOwotQEAgLTEwNzQsNyArMTA3NSw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChz dHJ1Y3QgdHlwZSAqdHlwZSwgY28KK0BAIC0xMDc0LDcgKzEwNzUsNyBAQAogIAogIHN0YXRpYyB2 b2lkCiAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCkBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0xMTU3LDcgKzExNTgs NyBAQCBhZGFfdmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zCitAQCAtMTE1Nyw3 ICsxMTU4LDcgQEAKICAKICB2b2lkCiAgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTA1NCwxMSArMTA1NCwxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgICBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4x NzkzNTE0MzYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUuYwky MDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcyOCArMDEwMAotQEAgLTU0MiwyMSArNTQyLDIxIEBA IGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9hbm5vdGF0ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41 Mjg1MzAwMzYgKzAyMDAKK0BAIC01MzMsMjEgKzUzMywyMSBAQAogIH0KICAMCiAgdm9pZApAQCAt MTA4NCwxMSArMTA4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90 YXRlLmMKICB9CiAgCiAgdm9pZAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5v dGF0ZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUt MTEtMDIgMjE6MjM6MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2Fubm90YXRlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTkzNjQ3MjggKzAxMDAKLUBAIC05 Miw4ICs5Miw4IEBAIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90 YXRlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKK0BAIC05Miw4ICs5Miw4 IEBACiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2 b2lkIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCk7CiAgCkBAIC0xMDk5LDExICsxMDk5LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lk IGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQg KHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTExLTAy IDIxOjIzOjExLjE4MDM1MTQ0MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h cm0tbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDAzNjQ3MzQgKzAxMDAKLUBAIC0x MDk5LDcgKzEwOTksNyBAQCBhcm1fbGludXhfcmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTYt MDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2FybS1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAor QEAgLTEwNjMsNyArMTA2Myw3IEBACiAgICAgQUREUj8gICovCiAgc3RhdGljIGludAogIGFybV9s aW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxm LApAQCAtMTExMiwxMSArMTExMiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FybS1saW51eC1uYXQuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAg KmNhcCA9IGFybV9saW51eF9nZXRfaHdicF9jYXAgKCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xl bmd0aCwgYWxpZ25lZF9hZGRyOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1n ZGIuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMTgyMzUxNDU2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4 LWdkYi5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtODMsMTIgKzgz LDEyIEBAIHN0YXRpYyB2b2lkIGdlbl90cmFjZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2 MDUxMDE3MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTgzLDEyICs4MywxMiBAQAogIHN0 YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5 cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3Ry dWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAq LCBzdHJ1Y3QgdHlwZSAqKTsKQEAgLTExMzEsNyArMTEzMSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICBzdGF0aWMgdm9pZCBnZW5fc3ltX29mZnNldCAoc3Ry dWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHN5bWJvbCAqKTsKICBzdGF0aWMgdm9pZCBnZW5fdmFy X3JlZiAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSBzdHJ1 Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHN5bWJvbCAqdmFyKTsKLUBAIC0xMzYsMTUgKzEz NiwxNiBAQCBzdGF0aWMgdm9pZCBnZW5fZGVyZWYgKHN0cnVjdCBhZ2VudF9leHByCitAQCAtMTM2 LDE1ICsxMzYsMTYgQEAKICBzdGF0aWMgdm9pZCBnZW5fYWRkcmVzc19vZiAoc3RydWN0IGFnZW50 X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAqKTsKICBzdGF0aWMgdm9pZCBnZW5fYml0ZmllbGRf cmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJ ICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMTUxLDcgKzExNTEsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgCQkJCSAgICAgc3RydWN0IHR5 cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lkIGdlbl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUg KnZhbHVlLAotQEAgLTUzOSw3ICs1NDAsNyBAQCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHBy ICpheCwgc3RydWN0CitAQCAtNTM4LDcgKzUzOSw3IEBACiAgICAgcmlnaHQgc2hpZnQgaXQgYnkg LURJU1RBTkNFIGJpdHMgaWYgRElTVEFOQ0UgPCAwLiAgVGhpcyBnZW5lcmF0ZXMKICAgICB1bnNp Z25lZCAobG9naWNhbCkgcmlnaHQgc2hpZnRzLiAgKi8KICBzdGF0aWMgdm9pZApAQCAtMTE2MCw3 ICsxMTYwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIHsK ICAgIGlmIChkaXN0YW5jZSA+IDApCiAgICAgIHsKLUBAIC01OTMsNyArNTk0LDcgQEAgZ2VuX2Zy YW1lX2xvY2Fsc19hZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTU5Miw3ICs1OTMsNyBAQAog ICAgIHByb2dyYW1taW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVzZSBhcmUg dGhlIHNhbWUKICAgICB0aGluZy4gICovCiAgc3RhdGljIHZvaWQKQEAgLTExNjksNyArMTE2OSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJ dCB3b3VsZCBzdWZmaWNlIHRvIHNpbXBseSBwdXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0 IHRoaXMKICAgICAgIG1ha2VzIGl0IGVhc2llciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2 ZSBvZmZzZXRzIGluIHRoZQotQEAgLTEyNDksNyArMTI1MCw3IEBAIGdlbl9hZGRyZXNzX29mIChz dHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHMKK0BAIC0xMjQ4LDcgKzEyNDksNyBAQAogIHN0YXRpYyB2 b2lkCiAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFn ZW50X2V4cHIgKmF4LAogIAkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUg KnR5cGUsCkBAIC0xMTc4LDcgKzExNzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2F4LWdkYi5jCiAgewogICAgLyogTm90ZSB0aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBi aXRzLiAgKi8KICAgIHN0YXRpYyBlbnVtIGFnZW50X29wIG9wc1tdCi1AQCAtMTI4NCwxMyArMTI4 NSwxMyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4 MywxMyArMTI4NCwxMyBAQAogIAogICAgLyogVGhlIGZpcnN0IGFuZCBvbmUtYWZ0ZXItbGFzdCBi aXRzIGluIHRoZSBmaWVsZCwgYnV0IHJvdW5kZWQgZG93bgogICAgICAgYW5kIHVwIHRvIGJ5dGUg Ym91bmRhcmllcy4gICovCkBAIC0xMTk3LDcgKzExOTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgCiAgICAvKiBUaGUgaW5kZXggaW4gb3BzIG9mIHRoZSBv cGNvZGUgd2UncmUgY29uc2lkZXJpbmcuICAqLwogICAgaW50IG9wOwotQEAgLTE0MDksNyArMTQx MCw3IEBAIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAKK0BAIC0xNDA4 LDcgKzE0MDksNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3Qg YXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMDYsNyArMTIwNiw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0aGlzIGEgYml0ZmllbGQ/ICAq LwogICAgaWYgKFRZUEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVsZG5vKSkKLUBAIC0xNDM0LDcg KzE0MzUsNyBAQCBnZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqCitAQCAt MTQzMyw3ICsxNDM0LDcgQEAKICBzdGF0aWMgaW50CiAgZ2VuX3N0cnVjdF9yZWZfcmVjdXJzaXZl IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICBz dHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyMTUsMTEgKzEyMTUsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAg aW50IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVyYWwuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9heC1nZW5lcmFsLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODIzNTE0NTYgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtMTkyLDcgKzE5Miw3IEBAIGF4X3plcm9fZXh0IChz dHJ1Y3QgYWdlbnRfZXhwciAqeCwgaW50IG4KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9heC1nZW5lcmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjA1MTAxNzMgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2VuZXJhbC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTI5NTMwMDQ0ICswMjAwCitAQCAtMTk5LDcgKzE5OSw3IEBACiAgCiAgLyogQXBwZW5kIGEg dHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwog IHZvaWQKQEAgLTEyMjgsMTEgKzEyMjgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9heC1nZW5lcmFsLmMKICB7CiAgICAvKiBOIG11c3QgZml0IGluIGEgYnl0ZS4gICovCiAg ICBpZiAobiA8IDAgfHwgbiA+IDI1NSkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YXguaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYXguaAkyMDE1LTExLTAyIDIxOjIzOjEx LjE4MzM1MTQ2MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC5oCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtMjA3LDcgKzIwNyw3IEBAIGV4dGVy biB2b2lkIGF4X2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkUKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9heC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDYwNTEwMTczICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1 MzAwNDQgKzAyMDAKK0BAIC0yMTAsNyArMjEwLDcgQEAKICBleHRlcm4gdm9pZCBheF96ZXJvX2V4 dCAoc3RydWN0IGFnZW50X2V4cHIgKkVYUFIsIGludCBOKTsKICAKICAvKiBBcHBlbmQgYSB0cmFj ZV9xdWljayBpbnN0cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCkBAIC0x MjQxLDExICsxMjQxLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAog IAogIC8qIEFwcGVuZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwgb3AgKG11 c3QgYmUgYW9wX2dvdG8gb3IKICAgICBhb3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2UgZG9uJ3Qg a25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5ZXQsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2JyZWFrcG9pbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3Bv aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9icmVh a3BvaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODgzNTE0OTYgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA1MzY0 NzY3ICswMTAwCi1AQCAtMjIxNSw5ICsyMjE1LDkgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1 Y3QgYnBfbG9jYXRpb24gKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2JyZWFr cG9pbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2NzUxMDIzMCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzE1MzAw NjAgKzAyMDAKK0BAIC0yMjUxLDkgKzIyNTEsOSBAQAogIAl7CiAgCSAgZnByaW50Zl91bmZpbHRl cmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAgICJpbmZydW46IHN0ZXBwaW5nIHBhc3Qgbm9uLXN0 ZXBwYWJsZSB3YXRjaHBvaW50LiAiCkBAIC0xMjU3LDcgKzEyNTcsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAgICAgcmV0dXJuIDA7CiAg ICAgIH0KLUBAIC03MDUzLDcgKzcwNTMsNyBAQCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0 cnVjdCBhZGRyZXNzCitAQCAtNzE4MSw3ICs3MTgxLDcgQEAKICAKICBzdGF0aWMgaW50CiAgYnJl YWtwb2ludF9hZGRyZXNzX21hdGNoX3JhbmdlIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNl MSwgQ09SRV9BRERSIGFkZHIxLApAQCAtMTI2Niw3ICsxMjY2LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmMKICAJCQkJQ09SRV9BRERSIGFkZHIyKQogIHsK ICAgIHJldHVybiAoKGdkYmFyY2hfaGFzX2dsb2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dkYmFy Y2ggKCkpCi1AQCAtMTEzODcsNyArMTEzODcsNyBAQCBjYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9p bnQgKHN0cnVjdCB2YWx1CitAQCAtMTE1MzQsNyArMTE1MzQsNyBAQAogIAkJICAgICAgJiYgVFlQ RV9DT0RFICh2dHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERS IHZhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CkBAIC0xMjc1LDExICsxMjc1LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCiAgCQkgIGludCBudW1fcmVn czsKICAKICAJCSAgbGVuID0gKHRhcmdldF9leGFjdF93YXRjaHBvaW50cwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvYnJlYWtwb2ludC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkwMzUxNTA5ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjIwNjM2NDc3MyArMDEwMAotQEAgLTIzNyw3ICsyMzcsNyBAQCBzdHJ1Y3QgYnBf dGFyZ2V0X2luZm8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9icmVha3BvaW50 LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjg1MTAyMzggKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYnJlYWtwb2ludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICsw MjAwCitAQCAtMjM3LDcgKzIzNyw3IEBACiAgCiAgICAvKiBJZiB0aGlzIGlzIGEgcmFuZ2VkIGJy ZWFrcG9pbnQsIHRoZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUKICAgICAgIGxlbmd0aCBvZiB0 aGUgcmFuZ2UgdGhhdCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1dGlvbi4gICovCkBAIC0xMjg4 LDcgKzEyODgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQu aAogIAogICAgLyogSWYgdGhlIGJyZWFrcG9pbnQgbGl2ZXMgaW4gbWVtb3J5IGFuZCByZWFkaW5n IHRoYXQgbWVtb3J5IHdvdWxkCiAgICAgICBnaXZlIGJhY2sgdGhlIGJyZWFrcG9pbnQsIGluc3Rl YWQgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLCB0aGVuCi1AQCAtNDEzLDcgKzQxMyw3IEBAIHN0 cnVjdCBicF9sb2NhdGlvbgorQEAgLTQxMyw3ICs0MTMsNyBAQAogICAgLyogRm9yIGhhcmR3YXJl IHdhdGNocG9pbnRzLCB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHJlZ2lvbiBiZWluZwogICAgICAg d2F0Y2hlZC4gIEZvciBoYXJkd2FyZSByYW5nZWQgYnJlYWtwb2ludHMsIHRoZSBzaXplIG9mIHRo ZQogICAgICAgYnJlYWtwb2ludCByYW5nZS4gICovCkBAIC0xMjk3LDExICsxMjk3LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBUeXBl IG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB3 YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0xMS0wMiAyMToy MzoxMS4xOTAzNTE1MDkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5n LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAKLUBAIC0xODcsNyArMTg3LDcg QEAgY19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY5NTEw MjQ2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5jCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMTg2LDcgKzE4Niw3IEBACiAgCiAgdm9p ZAogIGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBl LCAKQEAgLTEzMTAsNyArMTMxMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Yy1sYW5nLmMKICAJICAgIGNvbnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsIGludCBmb3JjZV9lbGxp cHNlcywKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQog IHsKLUBAIC02NzYsNyArNjc2LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpl eHBlY3RfdAorQEAgLTY3NSw3ICs2NzUsNyBAQAogIAkgIH0KICAJZWxzZQogIAkgIHsKQEAgLTEz MTksNyArMTMxOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMK ICAKICAJICAgIC8qIFdyaXRlIHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIuICAqLwogIAkgICAg Zm9yIChpID0gMDsgaSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgKytpKQotQEAgLTY4NSw3ICs2ODUs NyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CitAQCAtNjg0LDcg KzY4NCw3IEBACiAgCSAgICBpZiAoc2F0aXNmeV9leHBlY3RlZCkKICAJICAgICAgewogIAkJTE9O R0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CkBAIC0xMzI4LDExICsxMzI4LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAKICAJCWlmIChnZXRfZGlzY3Jl dGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBlKSwKICAJCQkJCSAmbG93X2Jv dW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9j LWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMTEt MDIgMjE6MjM6MTEuMTkxMzUxNTE1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2MtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0NzczICswMTAwCi1AQCAtNzQsNyAr NzQsNyBAQCBleHRlcm4gdm9pZCBjX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYy1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4w Njk1MTAyNDYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy1sYW5nLmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC03Nyw3ICs3Nyw3IEBACiAgCQkJ ICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9pZCBjX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTEzNDEsNyArMTM0MSw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUg KiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKik7Ci1AQCAtOTQsNyArOTQsNyBAQCBleHRlcm4gdm9pZCBjX3By aW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlwCitAQCAtOTcsNyArOTcsNyBAQAogIGV4dGVybiB2b2lk IGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICogc3RyZWFtLAogIAkJCXN0cnVjdCB0eXBlICpl bHR0eXBlLAogIAkJCWNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCkBAIC0xMzUwLDI4ICsxMzUwLDEx IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKICAJCQljb25zdCBj aGFyICp1c2VyX2VuY29kaW5nLAogIAkJCWludCBmb3JjZV9lbGxpcHNlcywKICAJCQljb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1AQCAtMTIwLDE0ICsxMjAsMTQg QEAgZXh0ZXJuIHZvaWQgY3BfcHJpbnRfY2xhc3NfbWVtYmVyIChjb25zdAotIAkJCQkgICBzdHJ1 Y3QgdWlfZmlsZSAqLCBjaGFyICopOwotIAotIGV4dGVybiB2b2lkIGNwX3ByaW50X3ZhbHVlX2Zp ZWxkcyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLS0JCQkJICAgY29uc3QgZ2RiX2J5 dGUgKiwgaW50LCBDT1JFX0FERFIsCi0rCQkJCSAgIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1Qs IENPUkVfQUREUiwKLSAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICBjb25z dCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKiwKLSAJCQkJICAgc3RydWN0IHR5cGUgKiosIGludCk7Ci0gCi0gZXh0ZXJuIHZvaWQgY3Bf cHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlICosCi0tCQkJCQljb25zdCBnZGJf Ynl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLSsJCQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1Qs IENPUkVfQUREUiwKLSAJCQkJCXN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkJCWNvbnN0IHN0 cnVjdCB2YWx1ZSAqLAotIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEx LjE5MTM1MTUxNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDczNjQ3ODAgKzAxMDAKLUBAIC0yNDIsNyArMjQyLDcg QEAgY192YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3 MDUxMDI1NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC0yNDQsNyArMjQ0LDcgQEAK ICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiAwICYmIFRZUEVfTEVOR1RIICh1bnJlc29sdmVk X2VsdHR5cGUpID4gMCkKICAgICAgewogICAgICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2Jv dW5kOwpAQCAtMTM4MCw3ICsxMzYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9jLXZhbHByaW50LmMKICAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBl X2FyY2ggKHR5cGUpOwogICAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CS8qIE51 bWJlciBvZiBjaGFyYWN0ZXJzIHByaW50ZWQuICAqLwotQEAgLTMxNiw4ICszMTYsOCBAQCBjX3Zh bF9wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtMzE4LDggKzMxOCw4IEBA CiAgCSAgaWYgKGNwX2lzX3Z0YmxfcHRyX3R5cGUgKGVsdHR5cGUpKQogIAkgICAgewogIAkgICAg ICBpID0gMTsKQEAgLTEzOTEsNyArMTM3NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYy12YWxwcmludC5jCiAgCSAgICB9CiAgCSAgZWxzZQogIAkgICAgewotQEAgLTM5NCw3 ICszOTQsNyBAQCBjX3ZhbF9wcmludF9zdHJ1Y3QgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitAQCAt Mzk2LDcgKzM5Niw3IEBACiAgCSAtZnZ0YWJsZV90aHVua3MuICAoT3RoZXJ3aXNlLCBsb29rIHVu ZGVyCiAgCSBUWVBFX0NPREVfUFRSLikgICovCiAgICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKQEAgLTE0MDAsNyArMTM4Myw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCiAgCQkgICAgKyBUWVBFX0ZJRUxE X0JJVFBPUyAodHlwZSwKICAJCQkJCSBWVEJMX0ZOQUREUl9PRkZTRVQpIC8gOCk7CiAgICAgICAg c3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIFZUQkxfRk5B RERSX09GRlNFVCk7Ci1AQCAtNDkzLDcgKzQ5Myw3IEBAIGNfdmFsX3ByaW50X21lbWJlcnB0ciAo c3RydWN0IHR5cGUgKnR5cGUKK0BAIC00OTUsNyArNDk1LDcgQEAKICAKICB2b2lkCiAgY192YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE0 MDksMjkgKzEzOTIsMTggQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHBy aW50LmMKICAJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotQEAgLTU2NSw3ICs1NjUsOCBAQCBjX3Zh bHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0Ci0gCSAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlw ZSwgKnJlYWxfdHlwZSwgKnZhbF90eXBlOwotLSAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwot KyAgaW50IGZ1bGwsIHVzaW5nX2VuYzsKLSsgIExPTkdFU1QgdG9wOwotICAgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgb3B0cyA9ICpvcHRpb25zOwotIAotICAgb3B0cy5kZXJlZl9yZWYgPSAx OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIy ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1AQCAtNjQsMTIgKzY0LDEyIEBAIGlzX29wZXJhdG9y X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvY3AtYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAw NjggKzAyMDAKK0BAIC02NCwxMiArNjQsMTIgQEAKICAgIHJldHVybiAoKmN1cnJlbnRfY3BfYWJp LmlzX29wZXJhdG9yX25hbWUpIChuYW1lKTsKICB9CiAgCiAtaW50CiArTE9OR0VTVAogIGJhc2Vj bGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLAotLQkJICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywK LSsJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsKQogIHsKIC0gIGludCByZXMgPSAwOwpAQCAtMTQzOSw3ICsxNDExLDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYwogIAogICAgZ2RiX2Fz c2VydCAoY3VycmVudF9jcF9hYmkuYmFzZWNsYXNzX29mZnNldCAhPSBOVUxMKTsKICAKLUBAIC05 Niw3ICs5Niw3IEBAIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKK0BA IC05Niw3ICs5Niw3IEBACiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQlzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApA QCAtMTQ0OCwyMCArMTQyMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Nw LWFiaS5jCiAgewogICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBO VUxMKQogICAgICByZXR1cm4gTlVMTDsKLUBAIC0xMDYsNyArMTA2LDcgQEAgdmFsdWVfdmlydHVh bF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQotIAotIHN0cnVjdCB0eXBlICoKLSB2YWx1ZV9y dHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAotLQkJIGludCAqdG9wLCBpbnQg KnVzaW5nX2VuYykKLSsJCSBMT05HRVNUICp0b3AsIGludCAqdXNpbmdfZW5jKQotIHsKLSAgIHN0 cnVjdCB0eXBlICpyZXQgPSBOVUxMOwotIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9jcC1hYmkuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTUt MTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1AQCAtMTA4 LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZpcnR1YWxfZm5fZmkKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMz OjQyLjA3MDUxMDI1NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmku aAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTEwOCw3ICsxMDgsNyBA QAogIAkJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsCiAgCQkJCQkgICAgIGludCBqLAogIAkJ CQkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTE0NzAsMjIgKzE0MzMsMTMgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAogIAogIAogIC8qIFRyeSB0byBmaW5k IHRoZSBydW4tdGltZSB0eXBlIG9mIFZBTFVFLCB1c2luZyBDKysgcnVuLXRpbWUgdHlwZQotQEAg LTEzNSw3ICsxMzUsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2Zp Ci0gICAgRlVMTCwgVE9QLCBhbmQgVVNJTkdfRU5DIGNhbiBlYWNoIGJlIHplcm8sIGluIHdoaWNo IGNhc2Ugd2UgZG9uJ3QKLSAgICBwcm92aWRlIHRoZSBjb3JyZXNwb25kaW5nIHBpZWNlIG9mIGlu Zm9ybWF0aW9uLiAgKi8KLSBleHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3Ry dWN0IHZhbHVlICp2YWx1ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50ICpmdWxsLCBpbnQgKnRvcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50ICpmdWxsLCBMT05HRVNUICp0b3AsCi0gCQkJCSAgICAgaW50ICp1c2luZ19lbmMpOwot IAotIC8qIENvbXB1dGUgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHdoaWNoIGlzIHRoZSBJ TkRFWHRoIGJhc2VjbGFzcwotQEAgLTE0NCwxMSArMTQ0LDExIEBAIGV4dGVybiBzdHJ1Y3QgdHlw ZSAqdmFsdWVfcnR0aV90eXBlIChzdHIKK0BAIC0xNDQsMTEgKzE0NCwxMSBAQAogICAgIGNvbnRl bnRzIG9mIFZBTC4gIFRoZSByZXN1bHQgaXMgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHZh bHVlCiAgICAgcmVsYXRpdmUgdG8gKHRoZSBhZGRyZXNzIG9mKShBUkcpICsgT0ZGU0VULiAgKi8K ICAKIC1leHRlcm4gaW50IGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLAogLQkJ CSAgICAgaW50IGluZGV4LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICAgIGludCBl bWJlZGRlZF9vZmZzZXQsCistCQkJICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKIC0JCQkg ICAgIENPUkVfQUREUiBhZGRyZXNzLAogLQkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwp OwogK2V4dGVybiBMT05HRVNUIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLApA QCAtMTQ5Niw0OCArMTQ1MCwyOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Nw LWFiaS5oCiAgCiAgLyogRGVzY3JpYmUgdGhlIHRhcmdldCBvZiBhIHBvaW50ZXIgdG8gbWV0aG9k LiAgQ09OVEVOVFMgaXMgdGhlIGJ5dGUKICAgICBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgcG9p bnRlciB0byBtZXRob2QuICBUWVBFIGlzIHRoZSBwb2ludGVyIHRvCi1AQCAtMjI3LDEyICsyMjcs MTMgQEAgc3RydWN0IGNwX2FiaV9vcHMKK0BAIC0yMjcsMTIgKzIyNywxMiBAQAogICAgc3RydWN0 IHZhbHVlICooKnZpcnR1YWxfZm5fZmllbGQpIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQkJ ICAgICBzdHJ1Y3QgZm5fZmllbGQgKiBmLAogIAkJCQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAq IHR5cGUsCiAtCQkJCSAgICAgaW50IG9mZnNldCk7CiArCQkJCSAgICAgTE9OR0VTVCBvZmZzZXQp OwogICAgc3RydWN0IHR5cGUgKigqcnR0aV90eXBlKSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1 bGwsCi0tCQkJICAgICBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMpOworIAkJCSAgICAgTE9OR0VT VCAqdG9wLCBpbnQgKnVzaW5nX2VuYyk7CiAtICBpbnQgKCpiYXNlY2xhc3Nfb2Zmc2V0KSAoc3Ry dWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKLS0JCQkgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRk ciwgaW50IGVtYmVkZGVkX29mZnNldCwKKy0JCQkgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwg TE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAtCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSsJCQkgICAgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19l bmMpOwogKyAgTE9OR0VTVCAoKmJhc2VjbGFzc19vZmZzZXQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwg aW50IGluZGV4LAotKwkJCSAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwKLSsJCQkgICAg ICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CisrCQkJICAgICAgIGNvbnN0IGJmZF9ieXRlICp2 YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKysJCQkgICAgICAgQ09SRV9BRERSIGFk ZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKICAgIHZvaWQgKCpwcmludF9tZXRob2Rf cHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAogIAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlw ZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHZvaWQgY3Bf cHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1YwotIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqKTsKLSAKLSBzdGF0aWMgdm9pZCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHR5cGUgKiwKLS0JCQkgICAgY29uc3QgZ2RiX2J5dGUgKiwgaW50LAotKwkJ CSAgICBjb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAotIAkJCSAgICBDT1JFX0FERFIsIHN0cnVj dCB1aV9maWxlICosCi0gCQkJICAgIGludCwgY29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCi1AQCAtMTU0LDcgKzE1NCw3IEBA IGNwX2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAKLSB2b2lkCi0gY3BfcHJp bnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlw ZSwKLS0JCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IG9mZnNldCwKLSsJCSAg ICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0gCQkgICAgICAg Q09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkgICAgICAgaW50 IHJlY3Vyc2UsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJICAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTMzNCw3ICszMzQsNyBAQCBjcF9w cmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MTUxMDI2 MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC12YWxwcmludC5jCTIwMTYt MDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMzM0LDcgKzMzNCw3IEBACiAgCQl9 CiAgCSAgICAgIGVsc2UgaWYgKGkgPT0gdnB0cl9maWVsZG5vICYmIHR5cGUgPT0gdnB0cl9iYXNl dHlwZSkKICAJCXsKQEAgLTE1NDYsNTcgKzE0ODAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9jcC12YWxwcmludC5jCiAgCQkgIHN0cnVjdCB0eXBlICppX3R5cGUgPSBUWVBF X0ZJRUxEX1RZUEUgKHR5cGUsIGkpOwogIAogIAkJICBpZiAodmFscHJpbnRfY2hlY2tfdmFsaWRp dHkgKHN0cmVhbSwgaV90eXBlLCBpX29mZnNldCwgdmFsKSkKLUBAIC00MTcsNyArNDE3LDcgQEAg Y3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQotIAotIHZvaWQKLSBjcF9w cmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zmc2V0LAotKwkJCSAgICBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0gCQkJICAgIENPUkVfQUREUiBhZGRyZXNzLAotIAkJ CSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCQkgICAgY29uc3Qg c3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNDM0LDcgKzQzNCw4IEBAIGNwX3ByaW50X3ZhbHVlX2Zp ZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQotIAkJCQkgICAgIFRBUkdFVF9DSEFSX0JJVCAqIFRZUEVf TEVOR1RIICh0eXBlKSkpCi0gICAgIHsKLSAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwotLSAg ICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICBpbnQgZnVsbCwgdXNpbmdfZW5j OwotKyAgICAgIExPTkdFU1QgdG9wOwotIAotICAgICAgIC8qIFVnaCwgd2UgaGF2ZSB0byBjb252 ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAgKi8KLSAgICAgICB2YWx1ZSA9IHZhbHVlX2Zyb21f Y29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIgKyBvZmZzZXQsCi1AQCAtNDU5LDcg KzQ2MCw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQotIAotIHN0 YXRpYyB2b2lkCi0gY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlw ZSAqcmVhbF90eXBlLAotLQkJY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBvZmZzZXQsCi0r CQljb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0gCQlDT1JFX0FERFIg YWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCWludCByZWN1cnNlLCBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zLAotQEAgLTQ2OSw3ICs0NzAsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUg KnR5cGUsIHN0cnVjCi0gICAgID0gKHN0cnVjdCB0eXBlICoqKSBvYnN0YWNrX25leHRfZnJlZSAo JmRvbnRfcHJpbnRfdmJfb2JzdGFjayk7Ci0gICBzdHJ1Y3Qgb2JzdGFjayB0bXBfb2JzdGFjayA9 IGRvbnRfcHJpbnRfdmJfb2JzdGFjazsKLSAgIGludCBpLCBuX2Jhc2VjbGFzc2VzID0gVFlQRV9O X0JBU0VDTEFTU0VTICh0eXBlKTsKLS0gIGludCB0aGlzb2Zmc2V0OwotKyAgTE9OR0VTVCB0aGlz b2Zmc2V0OwotICAgc3RydWN0IHR5cGUgKnRoaXN0eXBlOwotIAotICAgaWYgKGRvbnRfcHJpbnRf dmIgPT0gMCkKLUBAIC00ODMsNyArNDg0LDcgQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1YwotIAotICAgZm9yIChpID0gMDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykK LSAgICAgewotLSAgICAgIGludCBib2Zmc2V0ID0gMDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQg PSAwOwotICAgICAgIGludCBza2lwID0gMDsKLSAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZWNsYXNz ID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKHR5cGUsIGkpKTsKLSAgICAgICBjb25z dCBjaGFyICpiYXNlbmFtZSA9IFRZUEVfTkFNRSAoYmFzZWNsYXNzKTsKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9kLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5MzM1MTUyOSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9kLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4 NyArMDEwMAotQEAgLTgxLDcgKzgxLDcgQEAgZXh0ZXJuIHN0cnVjdCBibG9ja19zeW1ib2wgZF9s b29rdXBfbmVzdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2QtbGFuZy5oCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2QtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAt ODEsNyArODEsNyBAQAogIC8qIERlZmluZWQgaW4gZC12YWxwcmludC5jICAqLwogIAogIGV4dGVy biB2b2lkIGRfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCkBAIC0xNjA1LDIwICsxNDkzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us CiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kLXZhbHByaW50 LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kLXZhbHBy aW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA4MzY0Nzg3 ICswMTAwCi1AQCAtMjksNyArMjksNyBAQAotIAotIHN0YXRpYyBpbnQKLSBkeW5hbWljX2FycmF5 X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAg ICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCSAgICBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkgICAgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWws Ci0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAt NzMsOSArNzMsOSBAQCBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjCist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDcxNTEwMjYyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Qt dmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAorQEAgLTczLDkg KzczLDkgQEAKICAKICAvKiBJbXBsZW1lbnRzIHRoZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3Ig bGFuZ3VhZ2UgRC4gICovCiAgdm9pZApAQCAtMTYzMSwxMSArMTUxMCwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwogICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBpbnQgcmV0OwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2RvdWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk0MzUxNTM1 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKLUBAIC03NjUsNyArNzY1LDcgQEAgZmxvYXRmb3Jt YXRfZnJvbV9kb3VibGVzdCAoY29uc3Qgc3RydWN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvZG91Ymxlc3QuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MjUxMDI3MCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtNzg0LDcgKzc4NCw3IEBACiAgICAgYnV0IG5vdCBwYXNz ZWQgb24gYnkgR0RCLiAgVGhpcyBzaG91bGQgYmUgZml4ZWQuICAqLwogIAogIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZmxvYXRmb3JtYXQgKgpAQCAtMTY0NCw3ICsxNTIzLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGZsb2F0 Zm9ybWF0ICpmb3JtYXQ7CiAgCi1AQCAtNzkzLDggKzc5Myw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21f bGVuZ3RoIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTgxMiw4ICs4MTIsOCBAQAogICAgZWxzZQogICAg ICBmb3JtYXQgPSBOVUxMOwogICAgaWYgKGZvcm1hdCA9PSBOVUxMKQpAQCAtMTY1NSwxMSArMTUz NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2RvdWJsZXN0LmMKICAgIHJl dHVybiBmb3JtYXQ7CiAgfQogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2Fy ZjJsb2MuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMTk3MzUxNTU1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA5MzY0NzkzICswMTAwCi1A QCAtMTYzMiwxOSArMTYzMiwxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDc2NTEwMzAyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3 YXJmMmxvYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtMTYzOCwx OSArMTYzOCwxOSBAQAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9t IGdkYmFyY2guICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjg1LDcgKzE1NjQsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICBkZXN0X2F2YWls ID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OwogIAotQEAgLTE2ODIsMTMgKzE2ODIsMTMgQEAg c3RhdGljIHZvaWQKK0BAIC0xNjg4LDEzICsxNjg4LDEzIEBACiAgcmVhZF9waWVjZWRfdmFsdWUg KHN0cnVjdCB2YWx1ZSAqdikKICB7CiAgICBpbnQgaTsKQEAgLTE3MDEsNyArMTU4MCw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAgIHNpemVfdCBidWZm ZXJfc2l6ZSA9IDA7CiAgICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKICAgIHN0cnVjdCBjbGVh bnVwICpjbGVhbnVwOwotQEAgLTE3MTUsOCArMTcxNSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKnYpCitAQCAtMTcyMSw4ICsxNzIxLDggQEAKICAgIGZvciAoaSA9IDA7IGkg PCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQogICAgICB7CiAgICAgICAg c3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTcxMiw3ICsx NTkxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAg ICAgIGNvbnN0IGdkYl9ieXRlICppbnRlcm1lZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENv bXB1dGUgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywg aW4KLUBAIC0xODU2LDEzICsxODU2LDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTg2MiwxMyArMTg2 MiwxMyBAQAogIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZh bHVlICpmcm9tKQogIHsKICAgIGludCBpOwpAQCAtMTcyOCw3ICsxNjA3LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXpl ID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIgPSBOVUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNs ZWFudXA7Ci1AQCAtMTg5MCw4ICsxODkwLDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnRvLCBzdAorQEAgLTE4OTYsOCArMTg5Niw4IEBACiAgICBmb3IgKGkgPSAwOyBpIDwg Yy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MzksMTggKzE2 MTgsMTYgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAg ICAgIGludCBuZWVkX2JpdHdpc2U7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZm ZXI7CiAgCi1AQCAtMjAxMCw4ICsyMDEwLDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnRvLCBzdAotICAgIGEgc3ludGhldGljIHBvaW50ZXIuICAqLworQEAgLTIwMTcsNyAr MjAxNyw3IEBACiAgCiAgc3RhdGljIGludAotLWNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRl ciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGJpdF9vZmZzZXQsCisgY2hlY2tfcGll Y2VkX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNU IGJpdF9vZmZzZXQsCiAtCQkJCWludCBiaXRfbGVuZ3RoKQotK2NoZWNrX3BpZWNlZF9zeW50aGV0 aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0 LAogKwkJCQlMT05HRVNUIGJpdF9sZW5ndGgpCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUg KmMKICAgICAgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3Vy ZSAodmFsdWUpOwotQEAgLTIwMjQsNyArMjAyNCw3IEBAIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNf cG9pbnRlciAoY29uc3Qgc3QKK0BAIC0yMDMwLDcgKzIwMzAsNyBAQAogICAgZm9yIChpID0gMDsg aSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzU5LDIwICsx NjM2LDE4IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAK ICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yMDY2LDkgKzIwNjYsMTAgQEAg aW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbAorQEAgLTIxMzIsOCArMjEz Miw4IEBACiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFt ZTsKICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiBiYXRvbjsKLS0gIGludCBpLCBiaXRf b2Zmc2V0LCBiaXRfbGVuZ3RoOworLSAgaW50IGksIGJpdF9sZW5ndGg7CistICBMT05HRVNUIGJp dF9vZmZzZXQ7CiArICBpbnQgaTsKLSsgIExPTkdFU1QgYml0X2xlbmd0aDsKKysgIExPTkdFU1Qg Yml0X2xlbmd0aCwgYml0X29mZnNldDsKICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVj ZSA9IE5VTEw7Ci0tICBMT05HRVNUIGJ5dGVfb2Zmc2V0OwotKyAgTE9OR0VTVCBieXRlX29mZnNl dCwgYml0X29mZnNldDsKKyAgIExPTkdFU1QgYnl0ZV9vZmZzZXQ7CiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlcjsKLSAKLSAgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2 YWx1ZSkpOwotQEAgLTIwODMsNyArMjA4NCw3IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp2YWwKK0BAIC0yMTUwLDcgKzIxNTAsNyBAQAogICAgZm9yIChpID0gMDsgaSA8 IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1 Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzgxLDcgKzE2NTYs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAg ICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjM2Myw3ICsyMzY0LDcgQEAgZHdhcmYy X2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQorQEAgLTI0NDQsNyArMjQ0NCw3IEBA CiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsK ICAJICAgIGdkYl9ieXRlICpjb250ZW50czsKICAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0 ZXM7CkBAIC0xNzkwLDExICsxNjY1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZHdhcmYybG9jLmMKICAKICAJICAgIGlmIChieXRlX29mZnNldCArIFRZUEVfTEVOR1RIICh0 eXBlKSA+IG4pCiAgCSAgICAgIGludmFsaWRfc3ludGhldGljX3BvaW50ZXIgKCk7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDQzNTE2 MDEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjE1MzY0ODMzICswMTAwCi1AQCAtMTkxNywxMiArMTkxNywxMiBAQCBk d2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDgzNTEw MzU4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjUzNjUzMDEwMCArMDIwMAorQEAgLTE5MzUsMTIgKzE5MzUsMTIgQEAK ICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTE4MTEsNyArMTY4Niw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAt MTI1NTQsOCArMTI1NTQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwCitAQCAtMTI1NzMsOCArMTI1NzMsOCBAQAogIAkgICAgICAgICBvYmplY3QsIGFuZCB0aGVu IHN1YnRyYWN0IG9mZiB0aGUgbnVtYmVyIG9mIGJpdHMgb2YKICAJICAgICAgICAgdGhlIGZpZWxk IGl0c2VsZi4gIFRoZSByZXN1bHQgaXMgdGhlIGJpdCBvZmZzZXQgb2YKICAJICAgICAgICAgdGhl IExTQiBvZiB0aGUgZmllbGQuICAqLwpAQCAtMTgyMiwxMSArMTY5NywxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwogIAogIAkgICAgICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXplLCBjdSk7CiAgCSAgICAgIGlmIChhdHRyKQot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvZXZhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA2MzUxNjE0ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIx NjM2NDgzOSArMDEwMAotQEAgLTMxNyw3ICszMTcsOCBAQCBldmFsdWF0ZV9zdHJ1Y3RfdHVwbGUg KHN0cnVjdCB2YWx1ZSAqc3RyCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZXZh bC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg2NTEwMzgzICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2V2YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAor QEAgLTMxNyw3ICszMTcsOCBAQAogICAgd2hpbGUgKC0tbmFyZ3MgPj0gMCkKICAgICAgewogICAg ICAgIHN0cnVjdCB2YWx1ZSAqdmFsID0gTlVMTDsKQEAgLTE4MzYsNyArMTcxMSw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgICAgICAgYmZkX2J5dGUgKmFkZHI7 CiAgCiAgICAgICAgZmllbGRubysrOwotQEAgLTM3OCw3ICszNzksNyBAQCBpbml0X2FycmF5X2Vs ZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCitAQCAtMzc4LDcgKzM3OSw3IEBACiAgCQkgICAg ZW51bSBub3NpZGUgbm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5k KQogIHsKICAgIExPTkdFU1QgaW5kZXg7CkBAIC0xODQ1LDcgKzE3MjAsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5v cGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC01MjYsMTEgKzUyNywxMSBAQCBiaW5v cF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmCitAQCAtODIyLDExICs4MjMsMTEg QEAKICAgICAgLyogRklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVz dWx0IGFuIGludGVnZXIuICAqLwogICAgICB7CiAgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5f dHlwZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CkBAIC0xODYwLDcgKzE3MzUs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogICAgICAgIGludCB1 bnNpZ25lZF9vcGVyYXRpb247CiAgCiAgICAgICAgLyogRGV0ZXJtaW5lIHR5cGUgbGVuZ3RoIGFu ZCBzaWduZWRuZXNzIGFmdGVyIHByb21vdGlvbiBmb3IKLUBAIC03MTIsNyArNzEzLDcgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQorQEAgLTEwMDgsNyArMTAwOSw3 IEBACiAgICBzdHJ1Y3QgdmFsdWUgKiphcmd2ZWM7CiAgICBpbnQgY29kZTsKICAgIGludCBpeDsK QEAgLTE4NjksNyArMTc0NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZh bC5jCiAgICBzdHJ1Y3QgdHlwZSAqKmFyZ190eXBlczsKICAgIGludCBzYXZlX3BvczE7CiAgICBz dHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiA9IE5VTEw7Ci1AQCAtODkxLDcgKzg5Miw3IEBAIGV2YWx1 YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKK0BAIC0xMTg3LDcgKzExODgsNyBA QAogIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFICh0eXBlKTsK ICAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7 CiAgCSAgc3RydWN0IHZhbHVlICphcnJheSA9IGFsbG9jYXRlX3ZhbHVlIChleHBlY3RfdHlwZSk7 CkBAIC0xODc4LDIxICsxNzUzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZXZhbC5jCiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIGluZGV4OwogIAogIAkg IGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9i b3VuZCkgPCAwKQotQEAgLTE5MDAsNyArMTkwMSw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmUKLSAgICAgICB7Ci0gICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IHZhbHVlX3R5cGUgKGFyZzEpOwotICAgICAgICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLS0g ICAgICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICAgIGludCBmdWxsLCB1c2lu Z19lbmM7Ci0rCUxPTkdFU1QgdG9wOwotIAlzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRz OwotIAotIAlnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv Zi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDYzNTE2MTQgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTYzNjQ4Mzkg KzAxMDAKLUBAIC0xMDMsNyArMTAzLDcgQEAgZl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2YtbGFuZy5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2YtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCitAQCAt MTAzLDcgKzEwMyw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBmX3ByaW50c3RyIChzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywK QEAgLTE5MDEsMTEgKzE3NjYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9m LWxhbmcuYwogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZfZ2V0X2VuY29kaW5nICh0eXBl KTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIwNzM1MTYy MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAy IDIxOjIzOjEzLjIxNjM2NDgzOSArMDEwMAotQEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuIHZvaWQg Zl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5lZAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3 NTMwMTA4ICswMjAwCitAQCAtMzAsNyArMzAsNyBAQAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlw ZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAg CQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMgKik7CiAgCkBAIC0xOTE0 LDExICsxNzc5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgK ICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwK ICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDczNTE2MjAgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjQ6MzQuMTA4ODk3MDkwICswMTAwCi1AQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gdm9pZCBf aW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvZi12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUzNzUzMDEwOCArMDIwMAorQEAgLTM4LDcgKzM4LDcgQEAKICBzdGF0aWMgdm9pZCBpbmZv X2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3RhdGljIHZvaWQgZjc3X2dldF9keW5h bWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwogIApAQCAtMTkyNyw3ICsx NzkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAK ICAvKiBBcnJheSB3aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93 J3MgZWxlbWVudHMKICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhl IHNpemUgb2YgZWFjaCBzdWJhcnJheS4gICovCi1AQCAtNzMsOCArNzMsOCBAQCBmNzdfZ2V0X3Vw cGVyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTczLDggKzczLDggQEAKICBzdGF0aWMg dm9pZAogIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAq dHlwZSkKICB7CkBAIC0xOTM4LDcgKzE4MDMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2YtdmFscHJpbnQuYwogIAogICAgLyogUmVjdXJzaXZlbHkgZ28gYWxsIHRoZSB3YXkg ZG93biBpbnRvIGEgcG9zc2libHkgbXVsdGktZGltZW5zaW9uYWwKICAgICAgIEY3NyBhcnJheSBh bmQgZ2V0IHRoZSBib3VuZHMuICBGb3Igc2ltcGxlIGFycmF5cywgdGhpcyBpcyBwcmV0dHkKLUBA IC0xMDYsNyArMTA2LDcgQEAgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0 cgorQEAgLTEwNiw3ICsxMDYsNyBAQAogIHN0YXRpYyB2b2lkCiAgZjc3X3ByaW50X2FycmF5XzEg KGludCBuc3MsIGludCBuZGltZW5zaW9ucywgc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkgICBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE5NDcsNyArMTgxMiw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTE1LDcgKzEx NSw3IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKK0BAIC0xMTUs NyArMTE1LDcgQEAKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBF IChjaGVja190eXBlZGVmICh0eXBlKSk7CiAgICBDT1JFX0FERFIgYWRkciA9IGFkZHJlc3MgKyBl bWJlZGRlZF9vZmZzZXQ7CiAgICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7CkBAIC0x OTU2LDcgKzE4MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJp bnQuYwogIAogICAgZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQs ICZ1cHBlcmJvdW5kKTsKICAKLUBAIC0xNzgsNyArMTc4LDcgQEAgZjc3X3ByaW50X2FycmF5XzEg KGludCBuc3MsIGludCBuZGltZW5zaQorQEAgLTE3Miw3ICsxNzIsNyBAQAogIAogIHN0YXRpYyB2 b2lkCiAgZjc3X3ByaW50X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCkBAIC0xOTY1LDcgKzE4MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2YtdmFscHJpbnQuYwogIAkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLAogIAkJIGludCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAotQEAgLTIxNSw4ICsyMTUsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3By aW50X2RlCitAQCAtMjExLDggKzIxMSw5IEBACiAgICAgZnVuY3Rpb247IHRoZXkgYXJlIGlkZW50 aWNhbC4gICovCiAgCiAgdm9pZApAQCAtMTk3NywxMSArMTg0MiwxMSBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCiAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9maW5kdmFy LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmluZHZhci5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZmluZHZhci5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjA4MzUxNjI3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Zp bmR2YXIuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNzM2NDg0NiArMDEwMAotQEAgLTgwMSw3ICs4 MDEsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L2ZpbmR2YXIuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4ODUxMDM5OSArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9maW5kdmFyLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAx MDggKzAyMDAKK0BAIC04MDIsNyArODAyLDcgQEAKICBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0 ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9p ZCkKICB7CkBAIC0xOTkwLDIxICsxODU1LDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZmluZHZhci5jCiAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gYWxsb2NhdGVfdmFsdWUg KHR5cGUpOwogIAogICAgVkFMVUVfTFZBTCAodmFsdWUpID0gbHZhbF9yZWdpc3RlcjsKLUBAIC04 MzQsMTAgKzgzNCwxMCBAQCB2b2lkCi0gcmVhZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0 IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotIHsKLSAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLS0gIGludCBvZmZzZXQg PSAwOwotLSAgaW50IHJlZ19vZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHZhbHVlKTsKLSsgIExPTkdF U1Qgb2Zmc2V0ID0gMDsKLSsgIExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAodmFs dWUpOworQEAgLTgzOCw3ICs4MzgsNyBAQAorICAgTE9OR0VTVCBvZmZzZXQgPSAwOworICAgTE9O R0VTVCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVnbnVtID0g VkFMVUVfUkVHTlVNICh2YWx1ZSk7CiAtICBpbnQgbGVuID0gdHlwZV9sZW5ndGhfdW5pdHMgKGNo ZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOwogKyAgTE9OR0VTVCBsZW4gPSB0eXBl X2xlbmd0aF91bml0cyAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKSk7CiAgCiAg ICBnZGJfYXNzZXJ0IChWQUxVRV9MVkFMICh2YWx1ZSkgPT0gbHZhbF9yZWdpc3Rlcik7CiAgCi1A QCAtODUyLDcgKzg1Miw3IEBAIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1 ZQorQEAgLTg1Myw3ICs4NTMsNyBAQAogICAgd2hpbGUgKGxlbiA+IDApCiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgdmFsdWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoZnJhbWUs IHJlZ251bSk7CkBAIC0yMDEzLDExICsxODczLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZmluZHZhci5jCiAgCiAgICAgICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBp cyBsYXJnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRv IGNvcHksIHRoZW4gb25seSBjb3B5IHRoZSBhcHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZnJhbWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2ZyYW1lLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDgzNTE2MjcgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxODM2 NDg1MiArMDEwMAotQEAgLTEyNzIsNyArMTI3Miw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0 ZXJfcmVhZCAoc3RydWN0IGYKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mcmFt ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg5NTEwNDA3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2ZyYW1lLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzg1MzAxMTYgKzAyMDAK K0BAIC0xMzIwLDcgKzEzMjAsNyBAQAogIAogIGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRl cyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLApAQCAtMjAyNiw3ICsxODg2 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCiAgCQkJICBpbnQg Km9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLUBAIC0xMzAxLDcgKzEzMDEsNyBAQCBn ZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pCitAQCAtMTM0OSw3ICsxMzQ5 LDcgQEAKICAgICAgfQogICAgaWYgKGxlbiA+IG1heHNpemUpCiAgICAgIGVycm9yIChfKCJCYWQg ZGVidWcgaW5mb3JtYXRpb24gZGV0ZWN0ZWQ6ICIKQEAgLTIwMzUsMTEgKzE4OTUsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCiAgCiAgICAvKiBDb3B5IHRoZSBk YXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mcmFtZS5oCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjA5MzUxNjM0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2ZyYW1lLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTgzNjQ4NTIgKzAxMDAKLUBAIC01ODUs NyArNTg1LDcgQEAgZXh0ZXJuIHZvaWQgcHV0X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wOTA1MTA0MTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuaAky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzODUzMDExNiArMDIwMAorQEAgLTU4NSw3ICs1ODUsNyBAQAog ICAgIGNvbnRlbnRzIGFyZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElN SVpFRFAsCiAgICAgKlVOQVZBSUxBQkxFUCBhY2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBn ZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJl Z251bSwKQEAgLTIwNDgsMTEgKzE5MDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9mcmFtZS5oCiAgCQkJCSAgICAgZ2RiX2J5dGUgKm15YWRkciwKICAJCQkJICAgICBpbnQg Km9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9n ZGJ0eXBlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv Z2RidHlwZXMuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxMjM1MTY1MyArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIwMzY0 ODY2ICswMTAwCi1AQCAtMjcxOSw3ICsyNzE5LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAo c3RydWN0IHR5cGUgKnR5cAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dkYnR5 cGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTI1MTA0MzEgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvZ2RidHlwZXMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCAr MDIwMAorQEAgLTI3MjIsNyArMjcyMiw3IEBACiAgICAgbGVhc3QgYXMgbG9uZyBhcyBPQkpGSUxF LiAgKi8KICAKICBzdHJ1Y3QgdHlwZSAqCkBAIC0yMDYxLDcgKzE5MjEsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3QgY2hhciAqbmFtZSwg c3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAt Mjk1OSw4ICsyOTU5LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwg cworQEAgLTI5NjIsOCArMjk2Miw4IEBACiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNl c3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAt MjA3Miw3ICsxOTMyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBl cy5jCiAgCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAg IGludCBpLCBjb3VudCA9IDA7Ci1AQCAtMjk3MSw3ICsyOTcxLDcgQEAgaXNfdW5pcXVlX2FuY2Vz dG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTI5NzQsNyArMjk3NCw3IEBACiAgICBmb3Ig KGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytp KQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKml0ZXI7CkBAIC0yMDgxLDcgKzE5NDEsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAKICAgICAgICBp dGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKGRjbGFzcywgaSkpOwogIAotQEAg LTMwMTIsNyArMzAxMiw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBl ICoKK0BAIC0zMDE1LDcgKzMwMTUsNyBAQAogIGludAogIGlzX3VuaXF1ZV9hbmNlc3RvciAoc3Ry dWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKQEAgLTIwOTAsNyArMTk1MCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0 dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZv ZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCi1AQCAt NDIwMCw3ICs0MjAwLDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUs CitAQCAtNDIwMyw3ICs0MjAzLDcgQEAKICAgICAgICBicmVhazsKICAgICAgfQogICAgcHV0c19m aWx0ZXJlZCAoIlxuIik7CkBAIC0yMDk5LDQwICsxOTU5LDIwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlw ZSkpCiAgICAgIHsKICAgICAgICBwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIp OwotQEAgLTQzMjgsOCArNDMyOCw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlLAotIAkJCSAgaWR4LCBwbG9uZ2VzdCAoVFlQRV9GSUVMRF9FTlVNVkFMICh0eXBlLCBp ZHgpKSk7Ci0gICAgICAgZWxzZQotIAlwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMgKyAyLAotLQkJ CSAgIlslZF0gYml0cG9zICVkIGJpdHNpemUgJWQgdHlwZSAiLAotLQkJCSAgaWR4LCBUWVBFX0ZJ RUxEX0JJVFBPUyAodHlwZSwgaWR4KSwKLSsJCQkgICJbJWRdIGJpdHBvcyAlcyBiaXRzaXplICVk IHR5cGUgIiwKLSsJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBp ZHgpKSwKLSAJCQkgIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgaWR4KSk7Ci0gICAgICAgZ2Ri X3ByaW50X2hvc3RfYWRkcmVzcyAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpZHgpLCBnZGJfc3Rk b3V0KTsKLSAgICAgICBwcmludGZfZmlsdGVyZWQgKCIgbmFtZSAnJXMnICgiLAotQEAgLTQ2NzEs NyArNDY3MSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNDY2 Myw3ICs0NjYzLDcgQEAKICAKICBzdHJ1Y3QgdHlwZSAqCiAgYXJjaF90eXBlIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKLS0JICAgZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgY2hh ciAqbmFtZSkKLSsJICAgZW51bSB0eXBlX2NvZGUgY29kZSwgTE9OR0VTVCBsZW5ndGgsIGNoYXIg Km5hbWUpCistCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIGludCBsZW5ndGgsIGNvbnN0IGNoYXIg Km5hbWUpCisrCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIExPTkdFU1QgbGVuZ3RoLCBjb25zdCBj aGFyICpuYW1lKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogIAotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjEzMzUxNjYwICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4y MjAzNjQ4NjYgKzAxMDAKLUBAIC01MTIsNyArNTEyLDcgQEAgdW5pb24gZmllbGRfbG9jYXRpb24K LSAgICAgIGdkYmFyY2hfYml0c19iaWdfZW5kaWFuPTAgdGFyZ2V0cywgaXQgaXMgdGhlIGJpdCBv ZmZzZXQgdG8KLSAgICAgIHRoZSBMU0IuICAqLwotIAotLSAgaW50IGJpdHBvczsKLSsgIExPTkdF U1QgYml0cG9zOwotIAotICAgLyogKiBFbnVtIHZhbHVlLiAgKi8KLSAgIExPTkdFU1QgZW51bXZh bDsKLUBAIC04MjIsNyArODIyLDcgQEAgc3RydWN0IHR5cGUKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDkzNTEwNDM5ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmgJMjAxNi0wNy0xNiAx NDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04MDYsNyArODA2LDcgQEAKICAgICAgIHR5cGVf bGVuZ3RoX3VuaXRzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIGluIG9yZGVyIHRvIGdldCB0aGUg bGVuZ3RoCiAgICAgICBleHByZXNzZWQgaW4gdGFyZ2V0IGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0 cy4gICovCiAgCkBAIC0yMTQxLDcgKzE5ODEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2dkYnR5cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBlLCBzaGFyZWQgYnkgYSBncm91 cCBvZiBxdWFsaWZpZWQgdHlwZXMuICAqLwogIAotQEAgLTE3MTcsMTEgKzE3MTcsMTIgQEAgZXh0 ZXJuIHVuc2lnbmVkIGludCB0eXBlX2xlbmd0aF91bml0cyAocworQEAgLTE2NzcsMTEgKzE2Nzcs MTEgQEAKICAKICAvKiAqIEhlbHBlciBmdW5jdGlvbiB0byBjb25zdHJ1Y3Qgb2JqZmlsZS1vd25l ZCB0eXBlcy4gICovCiAgCkBAIC0yMTUwLDE3ICsxOTkwLDE2IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuaAogIAkJCSAgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqKTsK ICAKICAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBhcmNoaXRlY3R1cmUtb3duZWQg dHlwZXMuICAqLwotLWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LCBjaGFyICopOworLWV4dGVybiBzdHJ1Y3QgdHlwZSAq YXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LAogK2V4dGVy biBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29k ZSwgTE9OR0VTVCwKLSsJCQkgICAgICAgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUgKmFy Y2hfaW50ZWdlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLSBl eHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICos IGludCwgaW50LCBjaGFyICopOwotIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFuX3R5 cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9nbnUtdjItYWJpLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi9nbnUtdjItYWJpLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTMz NTE2NjAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjIxMzY0ODcyICswMTAwCi1AQCAtODIsNyArODIsNyBAQCBnbnV2 Ml9pc19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lCisgCQkJICAgICAgIGNvbnN0IGNo YXIgKik7CisgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdk YmFyY2ggKiwgaW50LCBpbnQsCisgCQkJCSAgICAgICBjb25zdCBjaGFyICopOworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjItYWJpLmMKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nbnUtdjItYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wOTM1MTA0MzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYyLWFi aS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAwCitAQCAtODIsNyArODIsNyBA QAogICAgIFRZUEUgaXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBsb2NhdGVkLiAgKi8KICBzdGF0 aWMgc3RydWN0IHZhbHVlICoKICBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUg KiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICogZiwgaW50IGosCkBAIC0yMTY5LDQwICsyMDA4LDI2 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCiAgewogICAg c3RydWN0IHZhbHVlICphcmcxID0gKmFyZzFwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTE4Myw3ICsxODMsOCBAQCBnbnV2 Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCi0gCi0gCi0gc3RhdGljIHN0cnVj dCB0eXBlICoKLS1nbnV2Ml92YWx1ZV9ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpm dWxsLCBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMpCi0rZ251djJfdmFsdWVfcnR0aV90eXBlIChz dHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgTE9OR0VTVCAqdG9wLAotKwkJICAgICAgIGludCAq dXNpbmdfZW5jKQotIHsKLSAgIHN0cnVjdCB0eXBlICprbm93bl90eXBlOwotICAgc3RydWN0IHR5 cGUgKnJ0dGlfdHlwZTsKLUBAIC0zMzgsOSArMzM5LDkgQEAgdmJfbWF0Y2ggKHN0cnVjdCB0eXBl ICp0eXBlLCBpbnQgaW5kZXgsCitAQCAtMzM4LDcgKzMzOCw3IEBACiAgICAgdGFyZ2V0KS4gIFRo ZSByZXN1bHQgaXMgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHZhbHVlIHJlbGF0aXZlCiAg ICAgdG8gKHRoZSBhZGRyZXNzIG9mKShBUkcpICsgT0ZGU0VULiAgKi8KICAKIC1zdGF0aWMgaW50 CiArc3RhdGljIExPTkdFU1QKICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAq dHlwZSwgaW50IGluZGV4LAotLQkJCWNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRk ZWRfb2Zmc2V0LAotKwkJCWNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVk X29mZnNldCwKKyAJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsCiAgCQkJQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQot IHsKLSAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpbmRl eCk7Ci1AQCAtMzU4LDggKzM1OSw4IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0 eXBlICp0eXAKK0BAIC0zNTgsOCArMzU4LDcgQEAKICAJICBpZiAodmJfbWF0Y2ggKHR5cGUsIGks IGJhc2V0eXBlKSkKICAJICAgIHsKICAJICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7Ci0t CSAgICAgIGludCBmaWVsZF9vZmZzZXQ7CistCSAgICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0Owog LQkgICAgICBpbnQgZmllbGRfbGVuZ3RoOwotKwkgICAgICBMT05HRVNUIGZpZWxkX29mZnNldDsK LSsJICAgICAgTE9OR0VTVCBmaWVsZF9sZW5ndGg7CisrCSAgICAgIExPTkdFU1QgZmllbGRfb2Zm c2V0LCBmaWVsZF9sZW5ndGg7CiAgCSAgICAgIENPUkVfQUREUiBhZGRyOwogIAogIAkgICAgICBm aWVsZF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7Ci1A QCAtMzgzLDcgKzM4NCw3IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0 eXAKK0BAIC0zODMsNyArMzgyLDcgQEAKICAJICAvKiBEb24ndCBnbyB0aHJvdWdoIGJhc2VjbGFz c19vZmZzZXQsIGFzIHRoYXQgd3JhcHMKICAJICAgICBleGNlcHRpb25zLCB0aHVzLCBpbm5lciBl eGNlcHRpb25zIHdvdWxkIGJlIHdyYXBwZWQgbW9yZQogIAkgICAgIHRoYW4gb25jZS4gICovCkBA IC0yMjExLDExICsyMDM2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251 LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRy LAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvZ251LXYzLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0MzUxNjY3 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12My1hYmkuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAotQEAgLTEwOCw3ICsxMDgsNyBAQCBidWlsZF9n ZGJfdnRhYmxlX3R5cGUgKHN0cnVjdCBnZGJhcmNoICphCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorQEAgLTEwOCw3ICsxMDgsNyBAQAogIHsKICAgIHN0 cnVjdCB0eXBlICp0OwogICAgc3RydWN0IGZpZWxkICpmaWVsZF9saXN0LCAqZmllbGQ7CkBAIC0y MjI0LDcgKzIwNDksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12My1h YmkuYwogIAogICAgc3RydWN0IHR5cGUgKnZvaWRfcHRyX3R5cGUKICAgICAgPSBidWlsdGluX3R5 cGUgKGFyY2gpLT5idWlsdGluX2RhdGFfcHRyOwotQEAgLTE4NCw3ICsxODQsNyBAQCB2dGFibGVf cHRyZGlmZl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTg0LDcgKzE4NCw3IEBACiAg LyogUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGltYWdpbmFyeSBgc3Ry dWN0CiAgICAgZ2RiX2dudV92M19hYmlfdnRhYmxlJyBvYmplY3QgdG8gdGhlIHZ0YWJsZSdzICJh ZGRyZXNzIHBvaW50IgogICAgIChpLmUuLCB3aGVyZSBvYmplY3RzJyB2aXJ0dWFsIHRhYmxlIHBv aW50ZXJzIHBvaW50KS4gICovCkBAIC0yMjMzLDE2ICsyMDU4LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICB2dGFibGVfYWRkcmVzc19wb2ludF9vZmZz ZXQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKQogIHsKICAgIHN0cnVjdCB0eXBlICp2dGFibGVf dHlwZQotQEAgLTI4Niw3ICsyODYsNyBAQCBnbnV2M19nZXRfdnRhYmxlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjCi0gCi0gc3RhdGljIHN0cnVjdCB0eXBlICoKLSBnbnV2M19ydHRpX3R5cGUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsCi0tICAgICAgICAgICAgICAgICBpbnQgKmZ1bGxfcCwgaW50ICp0 b3BfcCwgaW50ICp1c2luZ19lbmNfcCkKLSsgICAgICAgICAgICAgICAgIGludCAqZnVsbF9wLCBM T05HRVNUICp0b3BfcCwgaW50ICp1c2luZ19lbmNfcCkKLSB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaDsKLSAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKHZhbHVlKSk7Ci1AQCAtNDExLDcgKzQxMSw3IEBAIGdudXYzX2dldF92aXJ0dWFs X2ZuIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC00MTEsNyArNDExLDcgQEAKICBzdGF0aWMgc3Ry dWN0IHZhbHVlICoKICBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2YWx1 ZV9wLAogICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwgaW50IGos CkBAIC0yMjUxLDE4ICsyMDY3LDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z251LXYzLWFiaS5jCiAgewogICAgc3RydWN0IHR5cGUgKnZhbHVlc190eXBlID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoKnZhbHVlX3ApKTsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo OwotQEAgLTQ0MSwxNiArNDQxLDE2IEBAIGdudXYzX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2 YWx1ZSAqKnYKK0BAIC00NDEsNyArNDQxLDcgQEAKICAKICAgICAtMSBpcyByZXR1cm5lZCBvbiBl cnJvci4gICovCiAgCiAtc3RhdGljIGludAogK3N0YXRpYyBMT05HRVNUCiAgZ251djNfYmFzZWNs YXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKLS0JCQljb25zdCBiZmRf Ynl0ZSAqdmFsYWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQljb25zdCBiZmRfYnl0ZSAq dmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJY29uc3QgYmZkX2J5dGUgKnZh bGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAogIAkJCUNPUkVfQUREUiBhZGRyZXNzLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsK K0BAIC00NTAsNyArNDUwLDcgQEAKICAgIHN0cnVjdCB0eXBlICpwdHJfdHlwZTsKICAgIHN0cnVj dCB2YWx1ZSAqdnRhYmxlOwogICAgc3RydWN0IHZhbHVlICp2YmFzZV9hcnJheTsKQEAgLTIyNzEs NyArMjA4NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5j CiAgCiAgICAvKiBEZXRlcm1pbmUgYXJjaGl0ZWN0dXJlLiAgKi8KICAgIGdkYmFyY2ggPSBnZXRf dHlwZV9hcmNoICh0eXBlKTsKLUBAIC00NzQsNyArNDc0LDcgQEAgZ251djNfYmFzZWNsYXNzX29m ZnNldCAoc3RydWN0IHR5cGUgKnR5cAorQEAgLTQ3NCw3ICs0NzQsNyBAQAogICAgY3VyX2Jhc2Vf b2Zmc2V0ID0gY3VyX2Jhc2Vfb2Zmc2V0ICsgdnRhYmxlX2FkZHJlc3NfcG9pbnRfb2Zmc2V0IChn ZGJhcmNoKTsKICAgIGlmICgoLSBjdXJfYmFzZV9vZmZzZXQpICUgVFlQRV9MRU5HVEggKHB0cl90 eXBlKSAhPSAwKQogICAgICBlcnJvciAoXygiTWlzYWxpZ25lZCB2YmFzZSBvZmZzZXQuIikpOwpA QCAtMjI4MCw3ICsyMDk0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUt djMtYWJpLmMKICAKICAgIHZ0YWJsZSA9IGdudXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUs IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQpOwogICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5V TEwpOwotQEAgLTUxOCw3ICs1MTgsNyBAQCBnbnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5 cGUgKmRvbWFpCitAQCAtNTE4LDcgKzUxOCw3IEBACiAgICAgICB3ZSdyZSBvdXQgb2YgbHVjay4g ICovCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkb21haW4pOyBpKysp CiAgICAgIHsKQEAgLTIyODksMTEgKzIxMDMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9nbnUtdjMtYWJpLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGU7CiAgCiAg ICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMIChkb21haW4sIGkpKQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvZ28tbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvZ28tbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0MzUxNjY3ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIy MTM2NDg3MiArMDEwMAotQEAgLTg1LDcgKzg1LDcgQEAgZXh0ZXJuIHZvaWQgZ29fcHJpbnRfdHlw ZSAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dvLWxh bmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9nby1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAy MDAKK0BAIC04NSw3ICs4NSw3IEBACiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8K ICAKICBleHRlcm4gdm9pZCBnb192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTIzMDIsMjAgKzIxMTYsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvZ28tdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTQzNTE2NjcgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tdmFscHJpbnQuYwkyMDE1LTExLTAy IDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAotQEAgLTM3LDcgKzM3LDcgQEAKLSAKLSBzdGF0aWMg dm9pZAotIHByaW50X2dvX3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLAotLQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAot KwkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLSAJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBA IC04Niw5ICs4Niw5IEBAIHByaW50X2dvX3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2dvLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04 Niw5ICs4Niw5IEBACiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUgZm9y IGxhbmd1YWdlIEdvLiAgKi8KICAKICB2b2lkCkBAIC0yMzI4LDExICsyMTMzLDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICB0eXBlID0gY2hlY2tf dHlwZWRlZiAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4yMTUzNTE2NzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYt bGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCi1AQCAtNDQwLDcgKzQ0 MCw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4w OTQ1MTA0NDcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAtNDQwLDcgKzQ0MCw3IEBACiAg ICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOyBpIDwgbmZpZWxkczsgaSsrKQog ICAgICB7CiAgICAgICAgaW50IGFjY2ZsYWdzOwpAQCAtMjM0MSw3ICsyMTQ2LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmMKICAKICAgICAgICBpZiAoZmllbGRz ID09IE5VTEwpCiAgCXsKLUBAIC04OTAsNyArODkwLDcgQEAgamF2YV9wcmludGNoYXIgKGludCBj LCBzdHJ1Y3QgdHlwZSAqdHlwZQorQEAgLTg5MCw3ICs4OTAsNyBAQAogIHN0YXRpYyB2b2lkCiAg amF2YV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUs CiAgCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtMjM1MCwxMSArMjE1NSwxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuYwogIAkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hh ciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2p2LWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxNTM1MTY3MyArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4y MjIzNjQ4NzkgKzAxMDAKLUBAIC00Myw4ICs0Myw4IEBAIHN0cnVjdCBidWlsdGluX2phdmFfdHlw ZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9q di1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC00Myw4ICs0 Myw4IEBACiAgCiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBidWlsdGluX2phdmFfdHlwZSAqYnVpbHRp bl9qYXZhX3R5cGUgKHN0cnVjdCBnZGJhcmNoICopOwogIApAQCAtMjM2NSwyMCArMjE3MCwxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuaAogIAkJCSAgICBjb25z dCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKik7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LXZhbHByaW50LmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0x MS0wMiAyMToyMzoxMS4yMTUzNTE2NzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvanYtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAotQEAg LTI2Niw3ICsyNjYsNyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3Ry Ci0gCi0gc3RhdGljIHZvaWQKLSBqYXZhX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSBpbnQgb2Zmc2V0LAotKwkJCSBM T05HRVNUIG9mZnNldCwKLSAJCQkgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sCi0gCQkJIGludCByZWN1cnNlLAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwK LUBAIC00NTQsNyArNDU0LDcgQEAgamF2YV9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBl ICp0eQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvanYtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAor QEAgLTQ1NCw3ICs0NTQsNyBAQAogIAogIHZvaWQKICBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjM4NywxMSArMjE4MywxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LXZhbHByaW50LmMKICAJCXN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNjM1MTY4MCAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCi1AQCAtNzM5LDcgKzczOSw3IEBAIHVua19sYW5nX3By aW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9sYW5ndWFnZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk1NTEwNDU1ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41NDA1MzAxMzIgKzAyMDAKK0BAIC03NjYsNyArNzY2LDcgQEAKICAKICBzdGF0aWMgdm9pZAog IHVua19sYW5nX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAq dHlwZSwKQEAgLTI0MDAsNyArMjE5Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvbGFuZ3VhZ2UuYwogIAkJICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxp cHNlcywKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQog IHsKLUBAIC03NTgsNyArNzU4LDcgQEAgdW5rX2xhbmdfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUg KnR5cGUsCitAQCAtNzg1LDcgKzc4NSw3IEBACiAgCiAgc3RhdGljIHZvaWQKICB1bmtfbGFuZ192 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAg LTI0MDksMTEgKzIyMDUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5n dWFnZS5jCiAgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkg ICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xh bmd1YWdlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAx NS0xMS0wMiAyMToyMzoxMS4yMTYzNTE2ODAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAg LTE4OSw3ICsxODksNyBAQCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbgorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuaAkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTE5Niw3ICsxOTYsNyBAQAogIAkJCSAgc3Ry dWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAogICAgICB2b2lkICgqbGFfcHJpbnRzdHIpIChzdHJ1 Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsCkBAIC0yNDIyLDcgKzIy MTgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgKICAJCQkg Y29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1AQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVj dCBsYW5ndWFnZV9kZWZuCitAQCAtMjM4LDcgKzIzOCw3IEBACiAgCiAgICAgIHZvaWQgKCpsYV92 YWxfcHJpbnQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGNvbnN0IGdkYl9ieXRlICpjb250 ZW50cywKQEAgLTI0MzEsMTEgKzIyMjcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9sYW5ndWFnZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9tMi1sYW5nLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItbGFuZy5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3MzUxNjg2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL20yLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAot QEAgLTEwNCwxMCArMTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0 eXBlLAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL20yLWxhbmcuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tMi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0xMDQs MTAgKzEwNCwxMCBAQAogIAogIHN0YXRpYyB2b2lkCiAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApA QCAtMjQ0OCw3ICsyMjQ0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1s YW5nLmMKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVv dGVzID0gMDsKICAgIGludCBuZWVkX2NvbW1hID0gMDsKLUBAIC0xMjIsOSArMTIyLDkgQEAgbTJf cHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgorQEAgLTEyMiw5ICsxMjIsOSBA QAogICAgICB7CiAgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhh bWluaW5nCiAgICAgICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAt MjQ2MCw3ICsyMjU2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5n LmMKICAKICAgICAgICBRVUlUOwogIAotQEAgLTE1MCw3ICsxNTAsNyBAQCBtMl9wcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RyCitAQCAtMTUwLDcgKzE1MCw3IEBACiAgCSAgICAg IGluX3F1b3RlcyA9IDA7CiAgCSAgICB9CiAgCSAgbTJfcHJpbnRjaGFyIChzdHJpbmdbaV0sIHR5 cGUsIHN0cmVhbSk7CkBAIC0yNDY5LDExICsyMjY1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbTItbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmlu dGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9 IDE7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuaAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTcz NTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5oCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjIzMzY0ODg1ICswMTAwCi1AQCAtMzQsNyArMzQsNyBAQCBleHRlcm4g dm9pZCBtMl9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvbTItbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTM0LDcgKzM0LDcgQEAKICBleHRlcm4gaW50IG0yX2lz X2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0ZXJuIGludCBtMl9pc191bmJvdW5k ZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlKTsKICAKQEAgLTI0ODIsMTEgKzIyNzgsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1 aV9maWxlICosIGludCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20y LXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvbTItdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTczNTE2ODYgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMy4yMjQzNjQ4OTIgKzAxMDAKLUBAIC0yMzQsOSArMjM0LDEyIEBAIHN0YXRpYyB2b2lkIG0y X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9tMi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTIzNCw5ICsyMzQsMTIgQEAKICAJICBtMl9wcmlu dF9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwog IAl9CiAgICAgICAgZWxzZQpAQCAtMjUwMiwxMSArMjI5OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmludC5jCiAgICAgIH0KICAgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIl0gT0YgIik7CiAgICBtMl9wcmludF90eXBlIChUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKSwgIiIsIHN0cmVhbSwgc2hvdywgbGV2ZWwsIGZsYWdzKTsKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9tMi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCi1AQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgaW50 IHByaW50X3VucGFja2VkX3BvaW50ZXIgKHN0cnVjCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmludC5jCTIwMTYtMDctMTYg MTQ6MzU6MTkuODMwMjk3MDEzICswMjAwCitAQCAtMzUsNyArMzUsNyBAQAogIAkJCQkgICBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50X2FycmF5X2NvbnRl bnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTE1 LDcgKzIzMTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50 LmMKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucywKLUBAIC02Nyw3ICs2Nyw3IEBAIGdldF9sb25nX3NldF9ib3VuZHMgKHN0cnVj dCB0eXBlICp0eXBlLAorQEAgLTY3LDcgKzY3LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3By aW50X2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CkBAIC0yNTI0LDcgKzIzMjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20y LXZhbHByaW50LmMKICAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgaW50IGVt cHR5X3NldCAgICAgICAgPSAxOwotQEAgLTE1OCw3ICsxNTgsNyBAQCBtMl9wcmludF9sb25nX3Nl dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtMTU4LDcgKzE1OCw3IEBACiAgCiAgc3RhdGlj IHZvaWQKICBtMl9wcmludF91bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI1MzMsNyArMjMyOSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYwogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKICB7Ci1AQCAtMjYyLDcgKzI2Miw3IEBAIHByaW50X3ZhcmlhYmxlX2F0X2Fk ZHJlc3MgKHN0cnVjdCB0eXBlICoKK0BAIC0yNjAsNyArMjYwLDcgQEAKICAKICBzdGF0aWMgdm9p ZAogIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCkBAIC0yNTQyLDI3ICsyMzM4LDIzIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYwogIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTMwOCwxNCArMzA4LDE1 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKK0BAIC0zMDgsMTMg KzMwOCwxMyBAQAogICAgIGZ1bmN0aW9uOyB0aGV5IGFyZSBpZGVudGljYWwuICAqLwogIAogIHZv aWQKIC1tMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgaW50IGVtYmVkZGVkX29mZnNldCwKLS0JICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotK20yX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotKwkgICAgICBMT05HRVNUIGVt YmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCSAgICAgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAorK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJICAg ICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwotLSAgdW5zaWduZWQgaW50 IGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KIC0gIHVuc2lnbmVk IGxlbjsKLSsgIFVMT05HRVNUIGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVk LiAgKi8KICsgIFVMT05HRVNUIGxlbjsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOwogICAgQ09S RV9BRERSIGFkZHI7CiAgCi1AQCAtMzQwLDcgKzM0MSw3IEBAIG0yX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGcKK0BAIC0zMzksNyArMzM5LDcgQEAKICAJICAgICAgICAgZWxl bWVudHMgdXAgdG8gaXQuICAqLwogIAkgICAgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9u dWxsKQogIAkJewpAQCAtMjU3MSwxMCArMjM2MywxOSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAKICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIu ICAqLwogIAkJICBmb3IgKHRlbXBfbGVuID0gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbWVtcmFuZ2UuYworQEAgLTQxNSw3ICs0MTUsNyBAQAorIAl7CisgCSAgc3RydWN0IHR5 cGUgKnJhbmdlID0gZWx0dHlwZTsKKyAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsK Ky0JICBpbnQgaTsKKysJICBMT05HRVNUIGk7CisgCSAgaW50IG5lZWRfY29tbWEgPSAwOworIAor IAkgIGZwdXRzX2ZpbHRlcmVkICgieyIsIHN0cmVhbSk7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL21lbXJhbmdlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE4MzUxNjkzICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmMJMjAxNS0xMS0wMiAyMToy MzoxMy4yMjQzNjQ4OTIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9t ZW1yYW5nZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAx NDAgKzAyMDAKIEBAIC0yMSw4ICsyMSw4IEBACiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBA IC0yNTg2LDExICsyMzg3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVt cmFuZ2UuYwogIHsKICAgIFVMT05HRVNUIGgsIGw7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL21lbXJhbmdlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVt cmFuZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21l bXJhbmdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTgzNTE2OTMgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5 MiArMDEwMAotQEAgLTMwLDcgKzMwLDcgQEAgc3RydWN0IG1lbV9yYW5nZQorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTc1 MTA0NzEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTMwLDcgKzMwLDcgQEAKICAgIENP UkVfQUREUiBzdGFydDsKICAKICAgIC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAqLwpAQCAtMjU5 OSw3ICsyNDAwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5o CiAgfTsKICAKICB0eXBlZGVmIHN0cnVjdCBtZW1fcmFuZ2UgbWVtX3JhbmdlX3M7Ci1AQCAtNDAs OCArNDAsOCBAQCBERUZfVkVDX08obWVtX3JhbmdlX3MpOworQEAgLTQwLDggKzQwLDggQEAKICAv KiBSZXR1cm5zIHRydWUgaWYgdGhlIHJhbmdlcyBkZWZpbmVkIGJ5IFtzdGFydDEsIHN0YXJ0MSts ZW4xKSBhbmQKICAgICBbc3RhcnQyLCBzdGFydDIrbGVuMikgb3ZlcmxhcC4gICovCiAgCkBAIC0y NjEwLDExICsyNDExLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFu Z2UuaAogIAogIC8qIFJldHVybnMgdHJ1ZSBpZiBBRERSIGlzIGluIFJBTkdFLiAgKi8KICAKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51eC1uYXQuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTExLTAy IDIxOjIzOjExLjIxODM1MTY5MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9t aXBzLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAt NTg3LDcgKzU4Nyw3IEBAIG1pcHNfbGludXhfc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdAor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbWlwcy1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAor QEAgLTU4Nyw3ICs1ODcsNyBAQAogIAogIHN0YXRpYyBpbnQKICBtaXBzX2xpbnV4X3JlZ2lvbl9v a19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yNjIzLDEx ICsyNDI0LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51eC1u YXQuYwogIHsKICAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIGR1bW15X3JlZ3M7CiAgICBpbnQgaTsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvb3BlbmNsLWxhbmcuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9vcGVuY2wtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIz OjExLjIxOTM1MTY5OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wt bGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAtNzgsMTEgKzc4 LDExIEBAIGJ1aWx0aW5fb3BlbmNsX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGIKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDk3NTEwNDcxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL29wZW5jbC1s YW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKK0BAIC03OCwxMSArNzgs MTEgQEAKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgogIGxvb2t1cF9vcGVuY2xfdmVjdG9yX3R5 cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBlbnVtIHR5cGVfY29kZSBjb2RlLApAQCAtMjY0 MSwzNyArMjQ0MiwyOSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL29wZW5jbC1s YW5nLmMKICAgIHN0cnVjdCB0eXBlICp0eXBlID0gTlVMTDsKICAgIHN0cnVjdCB0eXBlICoqdHlw ZXMgPSBidWlsdGluX29wZW5jbF90eXBlIChnZGJhcmNoKTsKICAKLUBAIC0xNzIsOSArMTcyLDkg QEAgbHZhbF9mdW5jX3JlYWQgKHN0cnVjdCB2YWx1ZSAqdikKLSAgIHN0cnVjdCBsdmFsX2Nsb3N1 cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2 KTsKLSAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodikp OworQEAgLTE3NCw3ICsxNzQsNyBAQAogICAgc3RydWN0IHR5cGUgKmVsdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkpKTsKLS0gIGludCBv ZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOwotLSAgaW50IGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChl bHR5cGUpOworICAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOworICAgTE9OR0VT VCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKIC0gIGludCBuLCBpLCBqID0gMDsKLSsg IExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLSsgIExPTkdFU1QgZWxzaXplID0g VFlQRV9MRU5HVEggKGVsdHlwZSk7CiArICBMT05HRVNUIG4sIGksIGogPSAwOwogICAgTE9OR0VT VCBsb3diID0gMDsKICAgIExPTkdFU1QgaGlnaGIgPSAwOwogIAotQEAgLTIwMSw5ICsyMDEsOSBA QCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0Ci0gICBzdHJ1Y3QgbHZh bF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xv c3VyZSAodik7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKHYpKTsKK0BAIC0yMDMsNyArMjAzLDcgQEAKICAgIHN0cnVjdCB0eXBlICplbHR5cGUgPSBU WVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSk7Ci0t ICBpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLS0gIGludCBlbHNpemUgPSBUWVBFX0xF TkdUSCAoZWx0eXBlKTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKKyAg IExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CiAtICBpbnQgbiwgaSwgaiA9 IDA7Ci0rICBMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7Ci0rICBMT05HRVNUIGVs c2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOwogKyAgTE9OR0VTVCBuLCBpLCBqID0gMDsKICAg IExPTkdFU1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yNDMsMTcg KzI0MywxNyBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0CitAQCAt MjQzLDE3ICsyNDMsMTcgQEAKICAKICBzdGF0aWMgaW50CiAgbHZhbF9mdW5jX2NoZWNrX3N5bnRo ZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsCi0tCQkJCSAgIGludCBvZmZzZXQs IGludCBsZW5ndGgpCistCQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBpbnQgbGVuZ3RoKQogKwkJCQkg ICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCiAgewogICAgc3RydWN0IGx2YWxfY2xv c3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUg KHYpOwpAQCAtMjY5Miw3ICsyNDg1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9vcGVuY2wtbGFuZy5jCiAgCiAgICBpZiAoZW5kcmVzdCkKICAgICAgZW5kKys7Ci1AQCAtMjYz LDggKzI2Myw4IEBAIGx2YWxfZnVuY19jaGVja19zeW50aGV0aWNfcG9pbnRlciAoY29uc3QKK0BA IC0yNjMsOCArMjYzLDggQEAKICAKICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspCiAg ICAgIHsKQEAgLTI3MDMsMTEgKzI0OTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICAgICAgaWYgKCF2YWx1ZV9iaXRzX3N5bnRoZXRpY19w b2ludGVyIChjLT52YWwsCiAgCQkJCQkgYy0+aW5kaWNlc1tpXSAqIGVsc2l6ZSArIGNvbXBfb2Zm c2V0LAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUx Njk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5jCTIwMTUtMTEt MDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFp bl9uYW1lICh2b2lkKQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtbGFuZy5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk4NTEwNDc5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3AtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQyNTMwMTQ4ICswMjAwCitA QCAtOTUsOCArOTUsOCBAQAogICAgIGFyZSBub3QgbXVsdGlwbGUgb2YgVEFSR0VUX0NIQVJfQklU IHRoZW4gdGhlIHJlc3VsdHMgYXJlIHdyb25nCiAgICAgYnV0IHRoaXMgZG9lcyBub3QgaGFwcGVu IGZvciBGcmVlIFBhc2NhbCBub3IgZm9yIEdQQy4gICovCiAgaW50CkBAIC0yNzE4LDcgKzI1MTEs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5jCiAgCQkgICAgICAg c3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCiAgCQkgICAgICAgY29uc3QgY2hhciAqKmFycmF5bmFt ZSkKICB7Ci1AQCAtMjE2LDEyICsyMTYsMTIgQEAgcGFzY2FsX3ByaW50Y2hhciAoaW50IGMsIHN0 cnVjdCB0eXBlICp0eQorQEAgLTIxNiwxMiArMjE2LDEyIEBACiAgCiAgdm9pZAogIHBhc2NhbF9w cmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0y NzMzLDcgKzI1MjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5j CiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9 IDA7CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtMjQ5LDkgKzI0OSw5IEBAIHBhc2NhbF9w cmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKK0BAIC0yNDksOSArMjQ5LDkgQEAKICAg ICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4YW1pbmlu ZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAgLTI3NDUs NyArMjUzOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmMKICAg ICAgICB1bnNpZ25lZCBsb25nIGludCBjdXJyZW50X2NoYXI7CiAgCiAgICAgICAgUVVJVDsKLUBA IC0yODMsNyArMjgzLDcgQEAgcGFzY2FsX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAorQEAgLTI4Myw3ICsyODMsNyBAQAogIAkgICAgICBpbl9xdW90ZXMgPSAwOwogIAkgICAgfQog IAkgIHBhc2NhbF9wcmludGNoYXIgKGN1cnJlbnRfY2hhciwgdHlwZSwgc3RyZWFtKTsKQEAgLTI3 NTQsMTEgKzI1NDcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcu YwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBl YXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9wLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2Ri L3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUxNjk5ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI2MzY0OTA1 ICswMTAwCi1AQCAtMzYsNyArMzYsNyBAQCBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZSAo c3RydWN0IHR5CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC1sYW5nLmgJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wOTg1MTA0NzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKK0BAIC0z Niw3ICszNiw3IEBACiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0 eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAg LTI3NjcsNyArMjU2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5n LmgKICAJCQkgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqKTsKLUBAIC01MCwxMyArNTAsMTMgQEAgZXh0ZXJuIHZvaWQgcGFzY2FsX3R5 cGVfcHJpbnRfbWV0aG9kX2FyZworQEAgLTUwLDEzICs1MCwxMyBAQAogIC8qIFRoZXNlIGFyZSBp biBwLWxhbmcuYzogKi8KICAKICBleHRlcm4gaW50CkBAIC0yNzgzLDIwICsyNTc2LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgKICAJCQkgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqKmNv bnN0IChwYXNjYWxfYnVpbHRpbl90eXBlc1tdKTsKLUBAIC03Miw3ICs3Miw3IEBAIGV4dGVybiB2 b2lkCi0gCQkJCSAgICBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICopOwotIAotIGV4 dGVybiB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAq LCBjb25zdCBnZGJfYnl0ZSAqLAotLQkJCQkJICAgICAgaW50LAotKwkJCQkJICAgICAgTE9OR0VT VCwKLSAJCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKLSAJCQkJCSAgICAg IGludCwKLSAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIwMzUxNzA2ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjIyNjM2NDkwNSArMDEwMAotQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5ODUxMDQ3OSArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41NDI1MzAxNDggKzAyMDAKK0BAIC01OSw3ICs1OSw3IEBACiAgCiAgdm9pZAogIHBhc2NhbF92 YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAg LTI4MDUsNyArMjU4OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxw cmludC5jCiAgCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICBj b25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBAIC02OCw4ICs2OCw4IEBAIHBhc2NhbF92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb24KK0BAIC03MCw4ICs3MCw4IEBACiAgICB1bnNp Z25lZCBsZW47CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICAgIHN0cnVjdCB0 eXBlICplbHR0eXBlOwpAQCAtMjgxNiw1MiArMjYwMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5cGUgKmNoYXJfdHlwZTsKICAg IENPUkVfQUREUiBhZGRyOwogICAgaW50IHdhbnRfc3BhY2UgPSAwOwotQEAgLTQ2Nyw3ICs0Njcs NyBAQCBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3N0YXRpY19mCi0gCQkJCQkgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLSBzdGF0aWMgdm9pZCBw YXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAq LAotLQkJCQkgICAgICAgaW50LAotKwkJCQkgICAgICAgTE9OR0VTVCwKLSAJCQkJICAgICAgIENP UkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlICosCi0gCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq LAotQEAgLTUyNiw3ICs1MjYsNyBAQCBwYXNjYWxfb2JqZWN0X2lzX3Z0YmxfbWVtYmVyIChzdHJ1 Y3QgdHlwCi0gCi0gdm9pZAotIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCSAgaW50IG9mZnNl dCwKLSsJCQkJICBMT05HRVNUIG9mZnNldCwKLSAJCQkJICBDT1JFX0FERFIgYWRkcmVzcywgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCQkJICBpbnQgcmVjdXJzZSwKLSAJCQkJICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC02OTcsNyArNjk3LDcgQEAgcGFzY2FsX29iamVjdF9wcmlu dF92YWx1ZV9maWVsZHMgKHN0cnVjdAotIAotIHN0YXRpYyB2b2lkCi0gcGFzY2FsX29iamVjdF9w cmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot LQkJCSAgIGludCBvZmZzZXQsCi0rCQkJICAgTE9OR0VTVCBvZmZzZXQsCi0gCQkJICAgQ09SRV9B RERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJICAgaW50IHJlY3Vyc2Us Ci0gCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNzIwLDExICs3MjAsMTEgQEAg cGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKgotIAotICAgZm9yIChpID0g MDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykKLSAgICAgewotLSAgICAgIGludCBib2Zmc2V0ID0g MDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQgPSAwOwotICAgICAgIHN0cnVjdCB0eXBlICpiYXNl Y2xhc3MgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwotICAgICAg IGNvbnN0IGNoYXIgKmJhc2VuYW1lID0gdHlwZV9uYW1lX25vX3RhZyAoYmFzZWNsYXNzKTsKLSAg ICAgICBjb25zdCBnZGJfYnl0ZSAqYmFzZV92YWxhZGRyID0gTlVMTDsKLS0gICAgICBpbnQgdGhp c29mZnNldDsKLSsgICAgICBMT05HRVNUIHRoaXNvZmZzZXQ7Ci0gICAgICAgaW50IHNraXAgPSAw OwotIAotICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9wcGMtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMjEzNTE3MTMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHBjLWxpbnV4 LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI3MzY0OTEyICswMTAwCi1AQCAtMTQ0OSw3ICsx NDQ5LDcgQEAgcHBjX2xpbnV4X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0CistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDk5NTEwNDg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1s aW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MjUzMDE0OCArMDIwMAorQEAgLTE0NDks NyArMTQ0OSw3IEBACiAgCiAgc3RhdGljIGludAogIHBwY19saW51eF9yZWdpb25fb2tfZm9yX2h3 X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjg3MCwxMSArMjYxMywx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsK ICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAw KQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ByaW50Y21kLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIx MzUxNzEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ByaW50Y21kLmMJMjAx NS0xMS0wMiAyMToyMzoxMy4yMjczNjQ5MTIgKzAxMDAKLUBAIC0yNzQsNyArMjc0LDcgQEAgcHJp bnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50CistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5OTUxMDQ4NyAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcmludGNtZC5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCitAQCAtMjc5LDcgKzI3OSw3IEBACiAgCQkgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKHZhbCkpOwpAQCAtMjg4Myw3ICsyNjI2LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZBTCAodmFs KSA9PSBsdmFsX21lbW9yeSkKICAgICAgbmV4dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAodmFs KSArIGxlbjsKLUBAIC0zNTIsNyArMzUyLDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29u c3QgZ2RiX2J5dGUgKgorQEAgLTM1Nyw3ICszNTcsNyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgICBMT05HRVNUIHZhbF9sb25nID0g MDsKQEAgLTI4OTIsMTEgKzI2MzUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9wcmludGNtZC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRo cm91Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9w cm9jZnMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3By b2Nmcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIzMzUxNzI2ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3Byb2Nmcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI4MzY0OTE4ICsw MTAwCi1AQCAtNDg2Myw3ICs0ODYzLDcgQEAgcHJvY2ZzX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1 Y3QgdGFyZ2V0XworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMTAwNTEwNDk1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCitAQCAt NDg2Myw3ICs0ODYzLDcgQEAKICAKICBzdGF0aWMgaW50CiAgcHJvY2ZzX3JlZ2lvbl9va19mb3Jf aHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yOTA1LDI0ICsyNjQ4 LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJvY2ZzLmMKICB7CiAgICAv KiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkgb24gU29sYXJpcyAyLjYgYW5kIHVwIHNheXMgdGhh dCB0aGUKICAgICAgIHN5c3RlbSBjYW4gc3VwcG9ydCAidGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3 YXRjaHBvaW50cywgYnV0IGdpdmVzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3B5 dGhvbi9weS1wcmV0dHlwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Jl Z2NhY2hlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9w eXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMzM1MTcyNiArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjEzLjIyOTM2NDkyNSArMDEwMAotQEAgLTcwMyw3ICs3MDMsNyBAQCBw cmludF9jaGlsZHJlbiAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0Ci0gZW51bSBleHRfbGFuZ19y YwotIGdkYnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lv bl9sYW5ndWFnZV9kZWZuICpleHRsYW5nLAotIAkJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCWludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBh ZGRyZXNzLAotKwkJCQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3Ms Ci0gCQkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCQljb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9yZWdjYWNoZS5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjI0MzUxNzMyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjkzNjQ5MjUgKzAxMDAKLUBA IC05NTgsNyArOTU4LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0 cgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNi0wNy0x NiAxNDozMzo0Mi4xMDE1MTA1MDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv cmVnY2FjaGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NDUzMDE2NSArMDIwMAorQEAgLTk2Nyw3 ICs5NjcsNyBAQAogIAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hm ZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5MzEs NyArMjY2MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwog IAkJICAgIGVudW0gcmVnaXN0ZXJfc3RhdHVzICgqcmVhZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsCiAgCQkJCQkJICBpbnQgcmVnbnVtLAogIAkJCQkJCSAgZ2RiX2J5dGUgKmJ1ZiksCi1A QCAtMTAwMiw3ICsxMDAyLDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUg KnJlZworQEAgLTEwMTEsNyArMTAxMSw3IEBACiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICBy ZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVn bnVtLApAQCAtMjk0MCw3ICsyNjcwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2Nh Y2hlLT5kZXNjcjsKICAKLUBAIC0xMDEzLDcgKzEwMTMsNyBAQCByZWdjYWNoZV9yYXdfcmVhZF9w YXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0xMDIyLDcgKzEwMjIsNyBAQAogIAogIHZvaWQKICBy ZWdjYWNoZV9yYXdfd3JpdGVfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJl Z251bSwKQEAgLTI5NDksNyArMjY3OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdj YWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAyNCw3ICsxMDI0LDcgQEAgcmVnY2FjaGVfcmF3X3dyaXRl X3BhcnQgKHN0cnVjdCByZWdjYWNoZQorQEAgLTEwMzMsNyArMTAzMyw3IEBACiAgCiAgZW51bSBy ZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2Fj aGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk1OCw3ICsyNjg4LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hl X2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUBAIC0xMDM1LDcgKzEwMzUsNyBA QCByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjCitAQCAtMTA0NCw3ICsx MDQ0LDcgQEAKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQgKHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTY3LDExICsyNjk3LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCBy ZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjQzNTE3MzIgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAkyMDE1LTExLTAyIDIxOjIzOjEz LjIzMDM2NDkzMSArMDEwMAotQEAgLTkyLDkgKzkyLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVf cmF3X3dyaXRlX3Vuc2lnbmVkCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmVn Y2FjaGUuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwMTUxMDUwMyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9yZWdjYWNoZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ0NTMwMTY1 ICswMjAwCitAQCAtODAsOSArODAsOSBAQAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1 cwogICAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwg aW50IHJlZ251bSwKQEAgLTI5ODMsNyArMjcxMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvcmVnY2FjaGUuaAogIAogIHZvaWQgcmVnY2FjaGVfaW52YWxpZGF0ZSAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSk7CiAgCi1AQCAtMTMxLDEwICsxMzEsMTEg QEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbgorQEAgLTExOSwxMCAr MTE5LDExIEBACiAgICAgd3JpdGUgc3R5bGUgb3BlcmF0aW9ucy4gICovCiAgCiAgZW51bSByZWdp c3Rlcl9zdGF0dXMgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwKQEAgLTI5OTgsMTEgKzI3MjgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9yZWdjYWNoZS5oCiAgCiAgLyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRl IHRoZSBQQy4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlbW90ZS5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcmVtb3RlLmMJMjAxNS0xMS0wMiAyMToy MzoxMS4yMjczNTE3NTIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVtb3Rl LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzIzNjQ5NDUgKzAxMDAKLUBAIC05MTU3LDcgKzkxNTcs NyBAQCBpbnQgcmVtb3RlX2h3X2JyZWFrcG9pbnRfbGltaXQgPSAtMTsKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9yZW1vdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNDUxMDUy NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZW1vdGUuYwkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjU0NTUzMDE3MiArMDIwMAorQEAgLTk0NzMsNyArOTQ3Myw3IEBACiAgCiAgc3Rh dGljIGludAogIHJlbW90ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLApAQCAtMzAxMSwxMSArMjc0MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193YXRjaHBvaW50X2xl bmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3NwdS1tdWx0aWFyY2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyODM1MTc1OSArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMzMzNjQ5NTEgKzAxMDAKLUBAIC0xMjcsNyArMTI3LDcgQEAgc3B1X3RocmVh ZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNTUxMDUzNiAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDU1MzAxNzIgKzAyMDAKK0BAIC0xMjcsNyArMTI3LDcgQEAKICAvKiBP dmVycmlkZSB0aGUgdG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IHJvdXRpbmUuICAqLwog IHN0YXRpYyBpbnQKICBzcHVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFy Z2V0X29wcyAqc2VsZiwKQEAgLTMwMjQsMTEgKzI3NTQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzX2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRoIChzZWxmKTsKICAKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvc3RhY2suYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyOTM1MTc2NSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjMzMzY0OTUx ICswMTAwCi1AQCAtMTc2LDcgKzE3Niw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJh bWVfaW5mbyAqZnIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zdGFjay5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMTA2NTEwNTQ0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3N0YWNrLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC0x NzYsNyArMTc2LDcgQEAKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNz IGFyZ3VtZW50KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMwMzcsNyArMjc2Nyw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogIAkJCSAgIGludCBmaXJzdCwg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9 IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtNTM5LDcgKzUzOSw3IEBAIHByaW50X2ZyYW1l X2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC01MzcsNyArNTM3LDcgQEAKICAgIC8q IE9mZnNldCBvZiBuZXh0IHN0YWNrIGFyZ3VtZW50IGJleW9uZCB0aGUgb25lIHdlIGhhdmUgc2Vl biB0aGF0IGlzCiAgICAgICBhdCB0aGUgaGlnaGVzdCBvZmZzZXQsIG9yIC0xIGlmIHdlIGhhdmVu J3QgY29tZSB0byBhIHN0YWNrCiAgICAgICBhcmd1bWVudCB5ZXQuICAqLwpAQCAtMzA0Niw3ICsy Nzc2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgICAvKiBO dW1iZXIgb2YgaW50cyBvZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAg Ki8KICAgIGludCBhcmdzX3ByaW50ZWQgPSAwOwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFp bjsKLUBAIC01NzMsOCArNTczLDggQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAq ZnVuYywgcworQEAgLTU3MSw4ICs1NzEsOCBAQAogIAkgICAgY2FzZSBMT0NfQVJHOgogIAkgICAg Y2FzZSBMT0NfUkVGX0FSRzoKICAJICAgICAgewpAQCAtMzA1Nyw3ICsyNzg3LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgCiAgCQkvKiBDb21wdXRlIGFkZHJl c3Mgb2YgbmV4dCBhcmd1bWVudCBieSBhZGRpbmcgdGhlIHNpemUgb2YKICAJCSAgIHRoaXMgYXJn dW1lbnQgYW5kIHJvdW5kaW5nIHRvIGFuIGludCBib3VuZGFyeS4gICovCi1AQCAtNzA5LDcgKzcw OSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC03MDcs NyArNzA3LDcgQEAKICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVtLiAg Ki8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMwNjYsMTEgKzI3OTYsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hl c3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRf ZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3lt bWlzYy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjIyOTM1MTc2NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9zeW1taXNjLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzQzNjQ5NTggKzAxMDAKLUBAIC01MzQs MTEgKzUzNCwxMSBAQCBwcmludF9zeW1ib2wgKHZvaWQgKmFyZ3MpCistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA3NTEwNTUy ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjU0NjUzMDE4MSArMDIwMAorQEAgLTUzOCwxMSArNTM4LDExIEBACiAgCiAgCWNh c2UgTE9DX0NPTlNUX0JZVEVTOgogIAkgIHsKQEAgLTMwODUsMTEgKzI4MTUsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zeW1taXNjLmMKICAJICAgIGZvciAoaSA9IDA7IGkg PCBUWVBFX0xFTkdUSCAodHlwZSk7IGkrKykKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAob3V0 ZmlsZSwgIiAlMDJ4IiwKICAJCQkJKHVuc2lnbmVkKSBTWU1CT0xfVkFMVUVfQllURVMgKHN5bWJv bClbaV0pOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMw MzUxNzcyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjM0MzY0OTU4ICswMTAwCi1AQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMg aW50IGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDg1MTA1NjAgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41NDY1MzAxODEgKzAyMDAKK0BAIC01Niw3ICs1Niw3IEBACiAgCQkJCQkJIENPUkVfQUREUiwg Q09SRV9BRERSLCBpbnQpOwogIAogIHN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3 X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMDk4LDcgKzI4MjgsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIHZvaWQg ZGVmYXVsdF9yY21kIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1 aV9maWxlICopOwogIAotQEAgLTMxMzIsNyArMzEzMiw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9z dHJhbGxvYyAoc3RydWN0IGluZmUKK0BAIC0zMTk2LDcgKzMxOTYsNyBAQAogIAogIHN0YXRpYyBp bnQKICBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9v cHMgKnNlbGYsCkBAIC0zMTA3LDExICsyODM3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdGFyZ2V0LmMKICB7CiAgICByZXR1cm4gKGxlbiA8PSBnZGJhcmNoX3B0cl9iaXQg KHRhcmdldF9nZGJhcmNoICgpKSAvIFRBUkdFVF9DSEFSX0JJVCk7CiAgfQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90YXJnZXQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL3RhcmdldC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMxMzUxNzc5ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM1MzY0 OTY0ICswMTAwCi1AQCAtNTQ5LDcgKzU0OSw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4x MDk1MTA1NjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41NDc1MzAxODkgKzAyMDAKK0BAIC01NTEsNyArNTUxLDcgQEAKICAg ICAgLyogRG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUg Y29ycmVzcG9uZGluZwogICAgICAgICB0YXJnZXRfKiBtYWNyby4gICovCiAgICAgIGludCAoKnRv X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0z MTIwLDExICsyODUwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0 LmgKICAgICAgICBUQVJHRVRfREVGQVVMVF9GVU5DIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCk7CiAgCiAgICAgIGludCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRp dGlvbikgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3RyYWNlcG9pbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBv aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90cmFj ZXBvaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzMzNTE3OTIgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM2MzY0 OTcxICswMTAwCi1AQCAtOTMwLDEzICs5MzAsMTMgQEAgYWRkX3JlZ2lzdGVyIChzdHJ1Y3QgY29s bGVjdGlvbl9saXN0ICpjbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RyYWNl cG9pbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExMjUxMDU5MiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDc1MzAx ODkgKzAyMDAKK0BAIC05MzAsMTMgKzkzMCwxMyBAQAogIHN0YXRpYyB2b2lkCiAgYWRkX21lbXJh bmdlIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICptZW1yYW5nZXMsIAogIAkgICAgICBpbnQgdHlw ZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKQEAgLTMxNDAsNyArMjg3MCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICAgIH0KICAKICAgIC8qIHR5cGU6 IG1lbXJhbmdlX2Fic29sdXRlID09IG1lbW9yeSwgb3RoZXIgbiA9PSBiYXNlcmVnICovCi1AQCAt OTY2LDcgKzk2Niw3IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoK K0BAIC05NjYsNyArOTY2LDcgQEAKICAJCUNPUkVfQUREUiBzY29wZSwKICAJCWludCB0cmFjZV9z dHJpbmcpCiAgewpAQCAtMzE0OSw3ICsyODc5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90cmFjZXBvaW50LmMKICAgIHVuc2lnbmVkIGludCByZWc7CiAgICBiZmRfc2lnbmVk X3ZtYSBvZmZzZXQ7CiAgICBpbnQgdHJlYXRfYXNfZXhwciA9IDA7Ci1AQCAtOTkwLDggKzk5MCw4 IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05OTAsOCAr OTkwLDggQEAKICAJICBjaGFyIHRtcFs0MF07CiAgCiAgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zm c2V0KTsKQEAgLTMxNjAsNyArMjg5MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAgdG1wIC8qIGFkZHJlc3MgKi8pOwogIAl9CiAgICAgICAg LyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysrIGNsYXNzIHdpdGggc3RhdGljIGZpZWxkcywgZ28gdG8g Z2VuZXJhbAotQEAgLTEwMjMsOCArMTAyMyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29s bGVjdGlvbl9saXN0ICoKK0BAIC0xMDIzLDggKzEwMjMsOCBAQAogICAgICAgIG9mZnNldCA9IGZy YW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3Nl KQogIAl7CkBAIC0zMTcxLDcgKzI5MDEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2Zp bHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwMzUs OCArMTAzNSw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BA IC0xMDM1LDggKzEwMzUsOCBAQAogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9f dmVyYm9zZSkKICAJewpAQCAtMzE4Miw3ICsyOTEyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHBy aW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwNDcsOCAr MTA0Nyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0x MDQ3LDggKzEwNDcsOCBAQAogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9W QUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMTkzLDcgKzI5 MjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkg IHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUg cHRyIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTI3MDgsNyArMjcwOCw4IEBAIHNjb3BlX2lu Zm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0yNzAzLDcgKzI3MDMsOCBAQAogICAg Y29uc3QgY2hhciAqc3ltbmFtZTsKICAgIGNoYXIgKnNhdmVfYXJncyA9IGFyZ3M7CiAgICBzdHJ1 Y3QgYmxvY2tfaXRlcmF0b3IgaXRlcjsKQEAgLTMyMDMsNyArMjkzMyw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaDsKICAgIGludCByZWdubzsKICAgIHN0cnVjdCBldmVudF9sb2NhdGlvbiAqbG9jYXRpb247 Ci1AQCAtMjg1Miw4ICsyODUzLDExIEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9t X3R0eSkKK0BAIC0yODQ3LDggKzI4NDgsMTEgQEAKICAJCX0KICAJICAgIH0KICAJICBpZiAoU1lN Qk9MX1RZUEUgKHN5bSkpCkBAIC0zMjE3LDI0ICsyOTQ3LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAgICBpZiAoQkxPQ0tfRlVOQ1RJ T04gKGJsb2NrKSkKICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5 cGVwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv dHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3OTggKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzYz NjQ5NzEgKzAxMDAKLUBAIC00MDYsNyArNDA2LDcgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBp bnQgc2hvdykKLSAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBOVUxMOwotICAgc3RydWN0IHR5 cGUgKnR5cGU7Ci0gICBpbnQgZnVsbCA9IDA7Ci0tICBpbnQgdG9wID0gLTE7Ci0rICBMT05HRVNU IHRvcCA9IC0xOwotICAgaW50IHVzaW5nX2VuYyA9IDA7Ci0gICBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyBvcHRzOwotICAgc3RydWN0IHR5cGVfcHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1 bHRfcHR5cGVfZmxhZ3M7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRo LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsYXJpdGguYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yMzQzNTE3OTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFsYXJpdGguYwkyMDE1LTExLTAyIDIxOjIzOjU5LjgyMjY3MTQ5NiArMDEwMAotQEAgLTE4OCwx MiArMTg4LDEyIEBAIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgTE8KKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMTE0NTEwNjA4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFy aXRoLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDg1MzAxOTcgKzAyMDAKK0BAIC0xODgsNyArMTg4 LDcgQEAKICAgICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAqLwogIAogIHN0cnVj dCB2YWx1ZSAqCkBAIC0zMjQzLDE0ICsyOTYwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWxhcml0aC5jCiAgewogICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3RydWN0IHR5cGUgKmVsdF90eXBl ID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotLSAgdW5z aWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLS0gIHVu c2lnbmVkIGludCBlbHRfb2ZmczsKLSsgIFVMT05HRVNUIGVsdF9zaXplID0gdHlwZV9sZW5ndGhf dW5pdHMgKGVsdF90eXBlKTsKLSsgIFVMT05HRVNUIGVsdF9vZmZzOwotICAgTE9OR0VTVCBlbHRf c3RyaWRlID0gVFlQRV9CWVRFX1NUUklERSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7 Ci0gICBzdHJ1Y3QgdmFsdWUgKnY7Ci0gCi1AQCAtNjc4LDcgKzY3OCw3IEBAIHZhbHVlX2NvbmNh dCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QKK0BAIC02NzQsNyArNjc0LDcgQEAKICAgIHN0 cnVjdCB2YWx1ZSAqaW52YWwxOwogICAgc3RydWN0IHZhbHVlICppbnZhbDI7CiAgICBzdHJ1Y3Qg dmFsdWUgKm91dHZhbCA9IE5VTEw7CkBAIC0zMjU5LDcgKzI5NjksNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKICAgIGludCBjb3VudCwgaWR4OwogICAgY2hh ciAqcHRyOwogICAgY2hhciBpbmNoYXI7Ci1AQCAtMTUzMSw3ICsxNTMxLDcgQEAgdmFsdWVfYmlu b3AgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CitAQCAtMTUyNyw3ICsxNTI3LDcgQEAKICBp bnQKICB2YWx1ZV9sb2dpY2FsX25vdCAoc3RydWN0IHZhbHVlICphcmcxKQogIHsKQEAgLTMyNjgs NyArMjk3OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwog ICAgY29uc3QgZ2RiX2J5dGUgKnA7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTE7CiAgCi1AQCAtMTU2 MiwxMSArMTU2MiwxMSBAQCB2YWx1ZV9sb2dpY2FsX25vdCAoc3RydWN0IHZhbHVlICphcmcxKQor QEAgLTE1NTgsMTEgKzE1NTgsMTEgQEAKICBzdGF0aWMgaW50CiAgdmFsdWVfc3RyY21wIChzdHJ1 Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0zMjgzLDIwICsyOTkz LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwogIAogICAg Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9w cy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNDAzNTE4MzggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsb3BzLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzgzNjQ5ODQgKzAxMDAK LUBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnNlYXJjaF9zdHJ1Y3RfZmll bGQKLSAKLSBzdGF0aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3Qg Y2hhciAqLCBzdHJ1Y3QgdmFsdWUgKiosCi0gCQkJCQkgICBzdHJ1Y3QgdmFsdWUgKiosCi0tCQkJ CQkgICBpbnQsIGludCAqLCBzdHJ1Y3QgdHlwZSAqKTsKLSsJCQkJCSAgIExPTkdFU1QsIGludCAq LCBzdHJ1Y3QgdHlwZSAqKTsKLSAKLSBzdGF0aWMgaW50IGZpbmRfb2xvYWRfY2hhbXBfbmFtZXNw YWNlIChzdHJ1Y3QgdmFsdWUgKiosIGludCwKLSAJCQkJICAgICAgIGNvbnN0IGNoYXIgKiwgY29u c3QgY2hhciAqLAotQEAgLTc5LDcgKzc5LDcgQEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xhc3Np Znlfb2xvYWRfbWF0YworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbG9wcy5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE3NTEwNjMyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3ZhbG9wcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ4NTMwMTk3ICswMjAwCitA QCAtNzksNyArNzksNyBAQAogIAkJCQkJICAgaW50LCBpbnQpOwogIAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKiwKQEAg LTMzMDUsMTkgKzMwMDYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9w cy5jCiAgCQkJCQkJICAgICBjb25zdCBjaGFyICosCiAgCQkJCQkJICAgICBzdHJ1Y3QgdHlwZSAq LAogIAkJCQkJCSAgICAgaW50LCBlbnVtIG5vc2lkZSk7Ci1AQCAtOTYsOSArOTYsOSBAQCBzdGF0 aWMgQ09SRV9BRERSIGFsbG9jYXRlX3NwYWNlX2luX2luZmVyCi0gc3RhdGljIHN0cnVjdCB2YWx1 ZSAqY2FzdF9pbnRvX2NvbXBsZXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKLSAK LSBzdGF0aWMgdm9pZCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiosIGNvbnN0IGNo YXIgKiwKLS0JCQkgICAgICBpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCBmbl9maWVsZCAqKiwg aW50ICosCi0rCQkJICAgICAgTE9OR0VTVCwgc3RydWN0IHR5cGUgKiwgc3RydWN0IGZuX2ZpZWxk ICoqLCBpbnQgKiwKLSAJCQkgICAgICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKiosCi0tCQkJ ICAgICAgc3RydWN0IHR5cGUgKiosIGludCAqKTsKLSsJCQkgICAgICBzdHJ1Y3QgdHlwZSAqKiwg TE9OR0VTVCAqKTsKLSAKLSB2b2lkIF9pbml0aWFsaXplX3ZhbG9wcyAodm9pZCk7Ci0gCi1AQCAt MTgzLDcgKzE4Myw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKm4K K0BAIC0xODMsNyArMTgzLDcgQEAKICAgICBzcGFjZS4gICovCiAgCiAgc3RydWN0IHZhbHVlICoK QEAgLTMzMjYsMTcgKzMwMTUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Zh bG9wcy5jCiAgewogICAgc3RydWN0IG9iamZpbGUgKm9iamY7CiAgICBzdHJ1Y3QgdmFsdWUgKnZh bCA9IGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKCJtYWxsb2MiLCAmb2JqZik7Ci1AQCAtMjU2 LDcgKzI1Niw4IEBAIHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKLSAg IGlmIChUWVBFX05BTUUgKHQyKSAhPSBOVUxMKQotICAgICB7Ci0gICAgICAgLyogVHJ5IGRvd25j YXN0aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2YWx1ZS4gICovCi0tICAgICAg aW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwotKyAgICAgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0r ICAgICAgTE9OR0VTVCB0b3A7Ci0gICAgICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLSAKLSAg ICAgICByZWFsX3R5cGUgPSB2YWx1ZV9ydHRpX3R5cGUgKHYyLCAmZnVsbCwgJnRvcCwgJnVzaW5n X2VuYyk7Ci1AQCAtMzk2LDEyICszOTcsMTIgQEAgdmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCB2YQorQEAgLTM5NywxMiArMzk3LDEyIEBACiAgICBpZiAoY29kZTEgPT0gVFlQ RV9DT0RFX0FSUkFZKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9 IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwpAQCAtMzM1MSw2NCArMzAzMCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJICBMT05HRVNUIGxvd19ib3VuZCwg aGlnaF9ib3VuZCwgbmV3X2xlbmd0aDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAo cmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC02MzUsNyArNjM2 LDcgQEAgdmFsdWVfcmVpbnRlcnByZXRfY2FzdCAoc3RydWN0IHR5cGUgKnR5cAotIHN0YXRpYyBp bnQKLSBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKLSAJ CSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAgICAgaW50IGVtYmVkZGVkX29m ZnNldCwKLSsJCSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgQ09SRV9B RERSIGFkZHJlc3MsCi0gCQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgIHN0cnVj dCB0eXBlICpzZWFyY2hfdHlwZSwKLUBAIC02NDcsOCArNjQ4LDggQEAgZHluYW1pY19jYXN0X2No ZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgotIAotICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9C QVNFQ0xBU1NFUyAoc2VhcmNoX3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKLSAgICAg ewotLSAgICAgIGludCBvZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwg dmFsYWRkciwgZW1iZWRkZWRfb2Zmc2V0LAotLQkJCQkgICAgIGFkZHJlc3MsIHZhbCk7Ci0rICAg ICAgTE9OR0VTVCBvZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFs YWRkciwKLSsJCQkJCSBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsIHZhbCk7Ci0gCi0gICAgICAg aWYgKGNsYXNzX3R5cGVzX3NhbWVfcCAoZGVzaXJlZF90eXBlLCBUWVBFX0JBU0VDTEFTUyAoc2Vh cmNoX3R5cGUsIGkpKSkKLSAJewotQEAgLTY4Miw3ICs2ODMsNyBAQCBkeW5hbWljX2Nhc3RfY2hl Y2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCi0gc3RhdGljIGludAotIGR5bmFtaWNfY2FzdF9jaGVj a18yIChzdHJ1Y3QgdHlwZSAqZGVzaXJlZF90eXBlLAotIAkJICAgICAgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsCi0tCQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJICAgICAgTE9OR0VT VCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICAgICBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSAgICAg IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJICAgICAgc3RydWN0IHR5cGUgKnNlYXJjaF90eXBlLAot QEAgLTY5Miw3ICs2OTMsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRl c2lyCi0gCi0gICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlw ZSkgJiYgcmVzdWx0X2NvdW50IDwgMjsgKytpKQotICAgICB7Ci0tICAgICAgaW50IG9mZnNldDsK LSsgICAgICBMT05HRVNUIG9mZnNldDsKLSAKLSAgICAgICBpZiAoISBCQVNFVFlQRV9WSUFfUFVC TElDIChzZWFyY2hfdHlwZSwgaSkpCi0gCWNvbnRpbnVlOwotQEAgLTcyMyw3ICs3MjQsOCBAQCBk eW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCi0gc3RydWN0IHZhbHVlICoK LSB2YWx1ZV9keW5hbWljX2Nhc3QgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKmFy ZykKLSB7Ci0tICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0rICBpbnQgZnVsbCwgdXNpbmdf ZW5jOwotKyAgTE9OR0VTVCB0b3A7Ci0gICBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHR5cGUpOwotICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7Ci0gICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0 dGlfdHlwZTsKLUBAIC05NTQsNyArOTU2LDcgQEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUg KnR5cGUsIENPUkVfQQotIH0KLSAKLSB2b2lkCi0tcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2 YWx1ZSAqdmFsLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotK3JlYWRfdmFsdWVfbWVtb3J5IChzdHJ1 Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICBpbnQgc3RhY2ss IENPUkVfQUREUiBtZW1hZGRyLAotIAkJICAgZ2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0 aCkKLSB7Ci1AQCAtMTA1Nyw3ICsxMDU5LDcgQEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUg KnRvdmFsLCBzdHJ1YworQEAgLTEwNjMsNyArMTA2Myw3IEBACiAgICAgICAgewogIAljb25zdCBn ZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAgCUNPUkVfQUREUiBjaGFuZ2VkX2FkZHI7CkBAIC0zNDE3 LDEzNCArMzAzOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMK ICAgICAgICAgIGdkYl9ieXRlIGJ1ZmZlcltzaXplb2YgKExPTkdFU1QpXTsKICAKICAJaWYgKHZh bHVlX2JpdHNpemUgKHRvdmFsKSkKLUBAIC0xMTI2LDcgKzExMjgsNyBAQCB2YWx1ZV9hc3NpZ24g KHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCi0gCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkp Ci0gCSAgewotIAkgICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQgKHRvdmFs KTsKLS0JICAgIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHBhcmVudCkgKyB2YWx1ZV9vZmZz ZXQgKHRvdmFsKTsKLSsJICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQp ICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Ci0gCSAgICBpbnQgY2hhbmdlZF9sZW47Ci0gCSAgICBn ZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07Ci0gCSAgICBpbnQgb3B0aW0sIHVuYXZh aWw7Ci1AQCAtMTU5MCw3ICsxNTkyLDcgQEAgdmFsdWVfYXJyYXkgKGludCBsb3dib3VuZCwgaW50 IGhpZ2hib3VuZAotIHsKLSAgIGludCBuZWxlbTsKLSAgIGludCBpZHg7Ci0tICB1bnNpZ25lZCBp bnQgdHlwZWxlbmd0aDsKLSsgIFVMT05HRVNUIHR5cGVsZW5ndGg7Ci0gICBzdHJ1Y3QgdmFsdWUg KnZhbDsKLSAgIHN0cnVjdCB0eXBlICphcnJheXR5cGU7Ci0gCi1AQCAtMTc2Niw3ICsxNzY4LDcg QEAgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXJhcmdzLCBpbnQgbgotIAotIHN0YXRpYyB2 b2lkCi0gdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1ZSAqKnJlc3VsdF9wdHIsIHN0 cnVjdCB2YWx1ZSAqdiwKLS0JCSAgICAgIGludCAqbGFzdF9ib2Zmc2V0LCBpbnQgYm9mZnNldCwK LSsJCSAgICAgIExPTkdFU1QgKmxhc3RfYm9mZnNldCwgTE9OR0VTVCBib2Zmc2V0LAotIAkJICAg ICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUpCi0gewotICAgaWYgKHYgIT0g TlVMTCkKLUBAIC0xNzkwLDEwICsxNzkyLDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1 Y3QgdmFsdWUgKipyZXMKLSAgICBsb29rdXAgaXMgYW1iaWd1b3VzLiAgKi8KLSAKLSBzdGF0aWMg dm9pZAotLWRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2 YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLStkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAotIAkJCXN0cnVj dCB0eXBlICp0eXBlLCBpbnQgbG9va2luZ19mb3JfYmFzZWNsYXNzLAotIAkJCXN0cnVjdCB2YWx1 ZSAqKnJlc3VsdF9wdHIsCi0tCQkJaW50ICpsYXN0X2JvZmZzZXQsCi0rCQkJTE9OR0VTVCAqbGFz dF9ib2Zmc2V0LAotIAkJCXN0cnVjdCB0eXBlICpvdXRlcm1vc3RfdHlwZSkKLSB7Ci0gICBpbnQg aTsKLUBAIC0xODQwLDcgKzE4NDIsNyBAQCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBj aGFyICpuYW1lCi0gCQkgICA8dmFyaWFudCBmaWVsZD4uICAqLwotIAotIAkJc3RydWN0IHZhbHVl ICp2ID0gTlVMTDsKLS0JCWludCBuZXdfb2Zmc2V0ID0gb2Zmc2V0OwotKwkJTE9OR0VTVCBuZXdf b2Zmc2V0ID0gb2Zmc2V0OwotIAotIAkJLyogVGhpcyBpcyBwcmV0dHkgZ3Jvc3MuICBJbiBHKyss IHRoZSBvZmZzZXQgaW4gYW4KLSAJCSAgIGFub255bW91cyB1bmlvbiBpcyByZWxhdGl2ZSB0byB0 aGUgYmVnaW5uaW5nIG9mIHRoZQotQEAgLTE4NzksNyArMTg4MSw3IEBAIGRvX3NlYXJjaF9zdHJ1 Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKLSAJCQkgICAgICYmIChzdHJjbXBfaXcgKG5hbWUs IAotIAkJCQkJICAgIFRZUEVfQkFTRUNMQVNTX05BTUUgKHR5cGUsIAotIAkJCQkJCQkJIGkpKSA9 PSAwKSk7Ci0tICAgICAgaW50IGJvZmZzZXQgPSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEp ICsgb2Zmc2V0OwotKyAgICAgIExPTkdFU1QgYm9mZnNldCA9IHZhbHVlX2VtYmVkZGVkX29mZnNl dCAoYXJnMSkgKyBvZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0 eXBlLCBpKSkKLSAJewotQEAgLTE5NTUsNyArMTk1Nyw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmllbGQg KGNvbnN0IGNoYXIgKm5hbWUsIHMKLSAJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGludCBsb29r aW5nX2Zvcl9iYXNlY2xhc3MpCi0gewotICAgc3RydWN0IHZhbHVlICpyZXN1bHQgPSBOVUxMOwot LSAgaW50IGJvZmZzZXQgPSAwOwotKyAgTE9OR0VTVCBib2Zmc2V0ID0gMDsKLSAKLSAgIGRvX3Nl YXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFyZzEsIDAsIHR5cGUsIGxvb2tpbmdfZm9yX2Jhc2Vj bGFzcywKLSAJCQkgICZyZXN1bHQsICZib2Zmc2V0LCB0eXBlKTsKLUBAIC0xOTcyLDcgKzE5NzQs NyBAQCBzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzCi0gCi0gc3RhdGlj IHN0cnVjdCB2YWx1ZSAqCi0gc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUs IHN0cnVjdCB2YWx1ZSAqKmFyZzFwLAotLQkJICAgICAgc3RydWN0IHZhbHVlICoqYXJncywgaW50 IG9mZnNldCwKLSsJCSAgICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIExPTkdFU1Qgb2Zmc2V0LAot IAkJICAgICAgaW50ICpzdGF0aWNfbWVtZnVuY3AsIHN0cnVjdCB0eXBlICp0eXBlKQotIHsKLSAg IGludCBpOwotQEAgLTIwMzYsOCArMjAzOCw4IEBAIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25z dCBjaGFyICpuYW1lLAotIAotICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAt IDE7IGkgPj0gMDsgaS0tKQotICAgICB7Ci0tICAgICAgaW50IGJhc2Vfb2Zmc2V0OwotLSAgICAg IGludCB0aGlzX29mZnNldDsKLSsgICAgICBMT05HRVNUIGJhc2Vfb2Zmc2V0OwotKyAgICAgIExP TkdFU1QgdGhpc19vZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0 eXBlLCBpKSkKLSAJewotQEAgLTIyNzIsMTAgKzIyNzQsMTAgQEAgdmFsdWVfc3RydWN0X2VsdF9i aXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgotIAotIHN0YXRpYyB2b2lkCi0gZmluZF9tZXRob2RfbGlz dCAoc3RydWN0IHZhbHVlICoqYXJncCwgY29uc3QgY2hhciAqbWV0aG9kLAotLQkJICBpbnQgb2Zm c2V0LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLSsJCSAgTE9OR0VTVCBvZmZzZXQsIHN0cnVjdCB0eXBl ICp0eXBlLAotIAkJICBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0LCBpbnQgKm51bV9mbnMsCi0g CQkgIFZFQyAoeG1ldGhvZF93b3JrZXJfcHRyKSAqKnhtX3dvcmtlcl92ZWMsCi0tCQkgIHN0cnVj dCB0eXBlICoqYmFzZXR5cGUsIGludCAqYm9mZnNldCkKLSsJCSAgc3RydWN0IHR5cGUgKipiYXNl dHlwZSwgTE9OR0VTVCAqYm9mZnNldCkKLSB7Ci0gICBpbnQgaTsKLSAgIHN0cnVjdCBmbl9maWVs ZCAqZiA9IE5VTEw7Ci1AQCAtMjMzMiw3ICsyMzM0LDcgQEAgZmluZF9tZXRob2RfbGlzdCAoc3Ry dWN0IHZhbHVlICoqYXJncCwgYwotICAgICAgZXh0ZW5zaW9uIG1ldGhvZHMuICAqLwotICAgZm9y IChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQotICAgICB7 Ci0tICAgICAgaW50IGJhc2Vfb2Zmc2V0OwotKyAgICAgIExPTkdFU1QgYmFzZV9vZmZzZXQ7Ci0g Ci0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTIz NzUsNyArMjM3Nyw3IEBAIHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgZm5fZmll bGQgKipmbl9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnVtX2Zu cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0 cikgKip4bV93b3JrZXJfdmVjLAotLQkJCSAgICAgIHN0cnVjdCB0eXBlICoqYmFzZXR5cGUsIGlu dCAqYm9mZnNldCkKLSsJCQkgICAgICBzdHJ1Y3QgdHlwZSAqKmJhc2V0eXBlLCBMT05HRVNUICpi b2Zmc2V0KQotIHsKLSAgIHN0cnVjdCB0eXBlICp0OwotIAotQEAgLTI0ODYsNyArMjQ4OCw3IEBA IGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB2YWx1ZSAqKmFyZ3MKLSAgIC8qIE51bWJlciBv ZiBvdmVybG9hZGVkIGluc3RhbmNlcyBiZWluZyBjb25zaWRlcmVkLiAgKi8KLSAgIGludCBudW1f Zm5zID0gMDsKLSAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IE5VTEw7Ci0tICBpbnQgYm9mZnNl dDsKLSsgIExPTkdFU1QgYm9mZnNldDsKLSAKLSAgIHN0cnVjdCBjbGVhbnVwICphbGxfY2xlYW51 cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7Ci0gCi1AQCAtMzMwMCw3ICsz MzAyLDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEsIHN0cgorQEAgLTMz MjgsNyArMzMyOCw3IEBACiAgICAgdGhlIGZvcm0gIkRPTUFJTjo6TkFNRSIuICAqLwogIAogIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMzU1Myw3ICszMDQ4LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY29u c3QgY2hhciAqbmFtZSwKICAJCQkJc3RydWN0IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50 X2FkZHJlc3MsCi1AQCAtMzMzNCw3ICszMzM2LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVm ZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTMzNjIsNyArMzM2Miw3IEBACiAgCSAgaWYgKHdhbnRfYWRk cmVzcykKICAJICAgIHJldHVybiB2YWx1ZV9mcm9tX2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9t ZW1iZXJwdHJfdHlwZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwgZG9tYWluKSwKQEAgLTM1NjIs NyArMzA1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJ ICBlbHNlIGlmIChub3NpZGUgIT0gRVZBTF9OT1JNQUwpCiAgCSAgICByZXR1cm4gYWxsb2NhdGVf dmFsdWUgKFRZUEVfRklFTERfVFlQRSAodCwgaSkpOwogIAkgIGVsc2UKLUBAIC0zNTAyLDcgKzM1 MDQsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CitAQCAtMzUz MCw3ICszNTMwLDcgQEAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBp ID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKQEAgLTM1NzEsMTYg KzMwNjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCiAg ICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAw OwotQEAgLTM1ODMsNyArMzU4NSw3IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0 IHN0cnVjdAotIAotIHN0cnVjdCB0eXBlICoKLSB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0 cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLCAKLS0JCQkgIGludCAqdG9wLCBpbnQgKnVzaW5nX2Vu YykKLSsJCQkgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpCi0gewotICAgc3RydWN0IHZh bHVlICp0YXJnZXQgPSBOVUxMOwotICAgc3RydWN0IHR5cGUgKnR5cGUsICpyZWFsX3R5cGUsICp0 YXJnZXRfdHlwZTsKLUBAIC0zNjUxLDEyICszNjUzLDEyIEBAIHZhbHVlX3J0dGlfaW5kaXJlY3Rf dHlwZSAoc3RydWN0IHZhbHVlICoKK0BAIC0zNjc5LDcgKzM2NzksNyBAQAogIHN0cnVjdCB2YWx1 ZSAqCiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1 Y3QgdHlwZSAqcnR5cGUsIApAQCAtMzU4OSwyNiArMzA3NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCQkgICBpbnQgeHVzaW5nX2VuYykKICB7CiAgICBz dHJ1Y3QgdHlwZSAqcmVhbF90eXBlOwotICAgaW50IGZ1bGwgPSAwOwotLSAgaW50IHRvcCA9IC0x OwotKyAgTE9OR0VTVCB0b3AgPSAtMTsKLSAgIGludCB1c2luZ19lbmMgPSAwOwotICAgc3RydWN0 IHZhbHVlICpuZXdfdmFsOwotIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxw cmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjQyMzUxODUxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzkzNjQ5OTEgKzAxMDAKLUBAIC0y OTksNyArMjk5LDcgQEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eQot IGludAotIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAot IAkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkg TE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQot IHsKLSAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKLUBAIC04MzQsNyArODM0LDcgQEAg Z2VuZXJpY192YWxfcHJpbnRfY29tcGxleCAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTg1MTA2 NDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU0OTUzMDIwNSArMDIwMAorQEAgLTkwNyw3ICs5MDcsNyBAQAogIAogIHZv aWQKICBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLApAQCAtMzYxNywyNSArMzA4OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFscHJpbnQuYwogIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtOTY5LDcgKzk2 OSw3IEBAIGdlbmVyaWNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KLSAgICBSRUNV UlNFLiAgKi8KLSAKLSB2b2lkCi0tdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rdmFsX3ByaW50IChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRf b2Zmc2V0LAotIAkgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCi0gCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0xMjIxLDcgKzEyMjEsNyBA QCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCi0gCi0gdm9pZAotIHZh bF9wcmludF9zY2FsYXJfZm9ybWF0dGVkIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgICAgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkgICAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zLAotIAkJCSAgICBpbnQgc2l6ZSwKLUBAIC0xNzY2LDcgKzE3NjYsNyBA QCBwcmludF9kZWNpbWFsX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyCitAQCAtMTg0Miw3ICsx ODQyLDcgQEAKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM2NDQsMTMgKzMwOTcsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMKICB7CiAgICBjb25zdCBnZGJf Ynl0ZSAqcDsKICAKLUBAIC0xODgzLDIyICsxODgzLDIyIEBAIG1heWJlX3ByaW50X2FycmF5X2lu ZGV4IChzdHJ1Y3QgdHlwZSAqaW4KLSAKLSB2b2lkCi0gdmFsX3ByaW50X2FycmF5X2VsZW1lbnRz IChzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQg ZW1iZWRkZWRfb2Zmc2V0LAotKwkJCSAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qg ZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sCitAQCAtMTk2NCwxNyArMTk2NCwxNyBAQAogIAkJCSAgaW50IHJlY3Vyc2UsCiAg CQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLApAQCAtMzY3Myw3ICszMTIwLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGln aF9ib3VuZDsKICAgIExPTkdFU1QgbG93X3BvcywgaGlnaF9wb3M7CiAgCi1AQCAtMTk4OCw3ICsx OTg4LDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAorQEAgLTIw NjQsNyArMjA2NCw3IEBACiAgCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSArIDEsIHZh bCwgb3B0aW9ucywKICAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7CiAgCSAgYW5ub3RhdGVfZWx0 X3JlcCAocmVwcyk7CkBAIC0zNjgyLDcgKzMxMjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3ZhbHByaW50LmMKICAJICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJ ICBpID0gcmVwMSAtIDE7Ci1AQCAtMjY0NCw3ICsyNjQ0LDcgQEAgcHJpbnRfY29udmVydGVkX2No YXJzX3RvX29ic3RhY2sgKHN0cnVjdAorQEAgLTI3MjAsNyArMjcyMCw3IEBACiAgCiAgdm9pZAog IGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0 eXBlLCAKQEAgLTM2OTEsMTYgKzMxMzgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxs aXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJ ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI0MjM1MTg1MSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjM5MzY0OTkxICswMTAwCi1AQCAtMTE1LDExICsxMTUsMTEgQEAgZXh0ZXJuIHZvaWQgbWF5 YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCQkgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICopOwotIAotLWV4dGVybiB2b2lkIHZhbF9wcmludF9hcnJheV9l bGVtZW50cyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgaW50LAotK2V4dGVybiB2 b2lkIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5 dGUgKiwgTE9OR0VTVCwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxwcmlu dC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE4NTEwNjQwICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZhbHByaW50LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAy MDAKK0BAIC0xMTksNyArMTE5LDcgQEAKICAJCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlf ZmlsZSAqLCBpbnQsCiAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkgICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLApAQCAtMzcwOSwxNiArMzE1MSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAogIAogIGV4dGVy biB2b2lkIHZhbF9wcmludF90eXBlX2NvZGVfaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJf Ynl0ZSAqLAogIAkJCQkgICAgIHN0cnVjdCB1aV9maWxlICopOwotQEAgLTEyOSw3ICsxMjksNyBA QCBleHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzCi0gCQkJCSAgICAgICBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSAKLSBleHRlcm4gdm9pZCB2YWxfcHJpbnRfc2NhbGFy X2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKiwKLS0JCQkJCWNvbnN0IGdkYl9ieXRlICosIGludCwK LSsJCQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsCi0gCQkJCQljb25zdCBzdHJ1Y3QgdmFs dWUgKiwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCi0gCQkJCQlp bnQsCi1AQCAtMTQ1LDcgKzE0NSw3IEBAIGV4dGVybiB2b2lkIHByaW50X2RlY2ltYWxfY2hhcnMg KHN0cnVjdAorQEAgLTE0MSw3ICsxNDEsNyBAQAogIAkJCQkgdW5zaWduZWQgaW50LCBlbnVtIGJm ZF9lbmRpYW4pOwogIAogIGV4dGVybiB2b2lkIHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2Zp bGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTM3MjcsNyArMzE2MCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAogIAogIGV4dGVybiB2b2lkIHByaW50X2No YXJfY2hhcnMgKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICosCiAgCQkJICAgICAgY29u c3QgZ2RiX2J5dGUgKiwgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOwotQEAgLTE5NCw3 ICsxOTQsNyBAQCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGVjb3JhdGlvbnMKK0BAIC0xOTQs NyArMTk0LDcgQEAKICAKICAKICBleHRlcm4gdm9pZCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzczNiw3ICszMTY5LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCiAgCQkJICAgICAg IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0yMDQsNyArMjA0LDcgQEAgZXh0ZXJuIHZv aWQgZ2VuZXJpY19lbWl0X2NoYXIgKGludCBjLCBzdAorQEAgLTIwNCw3ICsyMDQsNyBAQAogIAkJ CSAgICAgICBpbnQgcXVvdGVyLCBjb25zdCBjaGFyICplbmNvZGluZyk7CiAgCiAgZXh0ZXJuIHZv aWQgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUg KnR5cGUsIApAQCAtMzc0NSw4MyArMzE3OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZv cmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJt aW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI0ODM1MTg5 MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjQxMzY1MDA0ICswMTAwCi1AQCAtNjYsMTAgKzY2LDEwIEBAIHN0cnVjdCBpbnRl cm5hbF9mdW5jdGlvbgotIHN0cnVjdCByYW5nZQotIHsKLSAgIC8qIExvd2VzdCBvZmZzZXQgaW4g dGhlIHJhbmdlLiAgKi8KLS0gIGludCBvZmZzZXQ7Ci0rICBMT05HRVNUIG9mZnNldDsKLSAKLSAg IC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAqLwotLSAgaW50IGxlbmd0aDsKLSsgIExPTkdFU1Qg bGVuZ3RoOwotIH07Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgcmFuZ2UgcmFuZ2VfczsKLUBAIC04MCw4 ICs4MCw4IEBAIERFRl9WRUNfTyhyYW5nZV9zKTsKLSAgICBbb2Zmc2V0Miwgb2Zmc2V0MitsZW4y KSBvdmVybGFwLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tcmFuZ2VzX292ZXJsYXAgKGludCBvZmZz ZXQxLCBpbnQgbGVuMSwKLS0JCWludCBvZmZzZXQyLCBpbnQgbGVuMikKLStyYW5nZXNfb3Zlcmxh cCAoTE9OR0VTVCBvZmZzZXQxLCBMT05HRVNUIGxlbjEsCi0rCQlMT05HRVNUIG9mZnNldDIsIExP TkdFU1QgbGVuMikKLSB7Ci0gICBVTE9OR0VTVCBoLCBsOwotIAotQEAgLTEwNSw3ICsxMDUsNyBA QCByYW5nZV9sZXNzdGhhbiAoY29uc3QgcmFuZ2VfcyAqcjEsIGNvbnN0Ci0gICAgT0ZGU0VUK0xF TkdUSCkuICAqLwotIAotIHN0YXRpYyBpbnQKLS1yYW5nZXNfY29udGFpbiAoVkVDKHJhbmdlX3Mp ICpyYW5nZXMsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rcmFuZ2VzX2NvbnRhaW4gKFZFQyhy YW5nZV9zKSAqcmFuZ2VzLCBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAg cmFuZ2VfcyB3aGF0OwotICAgaW50IGk7Ci1AQCAtMjQwLDcgKzI0MCw3IEBAIHN0cnVjdCB2YWx1 ZQotICAgICAgdGhlIGFkZHJlc3MuICBJZiBsdmFsID09IGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMg YSBmdXJ0aGVyIG9mZnNldCBmcm9tCi0gICAgICBsb2NhdGlvbi5hZGRyZXNzIHdpdGhpbiB0aGUg cmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUgbWVtYmVyCi0gICAgICBlbWJlZGRl ZF9vZmZzZXQgYmVsb3cuICAqLwotLSAgaW50IG9mZnNldDsKLSsgIExPTkdFU1Qgb2Zmc2V0Owot IAotICAgLyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IG51bWJlciBvZiBiaXRzIGNvbnRhaW5l ZCBpbiB0aGVtLiAgKi8KLSAgIGludCBiaXRzaXplOwotQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1 Y3QgdmFsdWUKLSAgICAgIGB0eXBlJywgYW5kIGBlbWJlZGRlZF9vZmZzZXQnIGlzIHplcm8sIHNv IGV2ZXJ5dGhpbmcgd29ya3MKLSAgICAgIG5vcm1hbGx5LiAgKi8KLSAgIHN0cnVjdCB0eXBlICpl bmNsb3NpbmdfdHlwZTsKLS0gIGludCBlbWJlZGRlZF9vZmZzZXQ7Ci0tICBpbnQgcG9pbnRlZF90 b19vZmZzZXQ7Ci0rICBMT05HRVNUIGVtYmVkZGVkX29mZnNldDsKLSsgIExPTkdFU1QgcG9pbnRl ZF90b19vZmZzZXQ7Ci0gCi0gICAvKiBWYWx1ZXMgYXJlIHN0b3JlZCBpbiBhIGNoYWluLCBzbyB0 aGF0IHRoZXkgY2FuIGJlIGRlbGV0ZWQgZWFzaWx5Ci0gICAgICBvdmVyIGNhbGxzIHRvIHRoZSBp bmZlcmlvci4gIFZhbHVlcyBhc3NpZ25lZCB0byBpbnRlcm5hbAotQEAgLTM1MCw3ICszNTAsNyBA QCBnZXRfdmFsdWVfYXJjaCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1Ci0gfQotIAotIGludAot LXZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zm c2V0LCBpbnQgbGVuZ3RoKQotK3ZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgZ2RiX2Fz c2VydCAoIXZhbHVlLT5sYXp5KTsKLSAKLUBAIC0zNTgsNyArMzU4LDggQEAgdmFsdWVfYml0c19h dmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQotIH0KLSAKLSBpbnQKLS12YWx1ZV9ieXRlc19h dmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5n dGgpCi0rdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBM T05HRVNUIG9mZnNldCwKLSsJCSAgICAgICBMT05HRVNUIGxlbmd0aCkKLSB7Ci0gICByZXR1cm4g dmFsdWVfYml0c19hdmFpbGFibGUgKHZhbHVlLAotIAkJCSAgICAgICBvZmZzZXQgKiBUQVJHRVRf Q0hBUl9CSVQsCi1AQCAtMzY2LDcgKzM2Nyw4IEBAIHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29u c3Qgc3RydWN0IHZhbHUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWx1ZS5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE5NTEwNjQ4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3ZhbHVlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BA IC0zNjYsNyArMzY2LDggQEAKICB9CiAgCiAgaW50CkBAIC0zODMxLDM2ICszMTkyLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5jCiAgewogICAgZ2RiX2Fzc2VydCAo IXZhbHVlLT5sYXp5KTsKICAKLUBAIC00MjgsNyArNDMwLDggQEAgdmFsdWVfZW50aXJlbHlfb3B0 aW1pemVkX291dCAoc3RydWN0IHZhbAotICAgIE9GRlNFVCBiaXRzLCBhbmQgZXh0ZW5kaW5nIGZv ciB0aGUgbmV4dCBMRU5HVEggYml0cy4gICovCi0gCi0gc3RhdGljIHZvaWQKLS1pbnNlcnRfaW50 b19iaXRfcmFuZ2VfdmVjdG9yIChWRUMocmFuZ2VfcykgKip2ZWN0b3JwLCBpbnQgb2Zmc2V0LCBp bnQgbGVuZ3RoKQotK2luc2VydF9pbnRvX2JpdF9yYW5nZV92ZWN0b3IgKFZFQyhyYW5nZV9zKSAq KnZlY3RvcnAsIExPTkdFU1Qgb2Zmc2V0LAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsK LSAgIHJhbmdlX3MgbmV3cjsKLSAgIGludCBpOwotQEAgLTU5OSw3ICs2MDIsOCBAQCBtYXJrX3Zh bHVlX2JpdHNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1Ci0gfQotIAotIHZvaWQKLS1tYXJrX3Zh bHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBp bnQgbGVuZ3RoKQotK21hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIExPTkdFU1Qgb2Zmc2V0LAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAg IG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAodmFsdWUsCi0gCQkJICAgICAgIG9mZnNldCAq IFRBUkdFVF9DSEFSX0JJVCwKLUBAIC02MTMsNyArNjE3LDcgQEAgbWFya192YWx1ZV9ieXRlc191 bmF2YWlsYWJsZSAoc3RydWN0IHZhbAotIAotIHN0YXRpYyBpbnQKLSBmaW5kX2ZpcnN0X3Jhbmdl X292ZXJsYXAgKFZFQyhyYW5nZV9zKSAqcmFuZ2VzLCBpbnQgcG9zLAotLQkJCSAgaW50IG9mZnNl dCwgaW50IGxlbmd0aCkKLSsJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCkKLSB7 Ci0gICByYW5nZV9zICpyOwotICAgaW50IGk7Ci1AQCAtODA5LDkgKzgxMyw5IEBAIGZpbmRfZmly c3RfcmFuZ2Vfb3ZlcmxhcF9hbmRfbWF0Y2ggKHN0cnUKK0BAIC04MTIsOSArODEzLDkgQEAKICAg ICBSZXR1cm4gdHJ1ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0Y2guICAqLwogIAogIHN0YXRp YyBpbnQKQEAgLTM4NzMsNTkgKzMyMDUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbHVlLmMKICB7CiAgICAvKiBFYWNoIGFycmF5IGVsZW1lbnQgY29ycmVzcG9uZHMgdG8g YSByYW5nZXMgc291cmNlICh1bmF2YWlsYWJsZSwKICAgICAgIG9wdGltaXplZCBvdXQpLiAgJzEn IGlzIGZvciBWQUwxLCAnMicgZm9yIFZBTDIuICAqLwotQEAgLTg3MSw5ICs4NzUsOSBAQCB2YWx1 ZV9jb250ZW50c19iaXRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsCi0gfQotIAotIGludAotLXZhbHVl X2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIGludCBvZmZzZXQxLAotLQkJ ICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwKLS0JCSAgIGludCBsZW5n dGgpCi0rdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VT VCBvZmZzZXQxLAotKwkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBMT05HRVNUIG9mZnNl dDIsCi0rCQkgICBMT05HRVNUIGxlbmd0aCkKLSB7Ci0gICByZXR1cm4gdmFsdWVfY29udGVudHNf Yml0c19lcSAodmFsMSwgb2Zmc2V0MSAqIFRBUkdFVF9DSEFSX0JJVCwKLSAJCQkJIHZhbDIsIG9m ZnNldDIgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMTAzNywxMyArMTA0MSwxMyBAQCBkZXByZWNh dGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUKLSAgIHZhbHVlLT50eXBlID0gdHlwZTsK LSB9Ci0gCi0taW50Ci0rTE9OR0VTVAotIHZhbHVlX29mZnNldCAoY29uc3Qgc3RydWN0IHZhbHVl ICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUtPm9mZnNldDsKLSB9Ci0gdm9pZAotLXNldF92 YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQpCi0rc2V0X3ZhbHVl X29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQpCi0gewotICAgdmFs dWUtPm9mZnNldCA9IG9mZnNldDsKLSB9Ci1AQCAtMTI1Nyw4ICsxMjYxLDkgQEAgdmFsdWVfcmFu Z2VzX2NvcHlfYWRqdXN0ZWQgKHN0cnVjdCB2YWx1ZQotICAgIERTVF9PRkZTRVQrTEVOR1RIKSBy YW5nZSBhcmUgd2hvbGx5IGF2YWlsYWJsZS4gICovCi0gCi0gdm9pZAotLXZhbHVlX2NvbnRlbnRz X2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJIHN0cnVj dCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwgaW50IGxlbmd0aCkKLSt2YWx1ZV9jb250ZW50 c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIHNzaXplX3QgZHN0X29mZnNldCwKLSsJCQkg c3RydWN0IHZhbHVlICpzcmMsIHNzaXplX3Qgc3JjX29mZnNldCwKLSsJCQkgc3NpemVfdCBsZW5n dGgpCi0gewotICAgcmFuZ2VfcyAqcjsKLSAgIGludCBzcmNfYml0X29mZnNldCwgZHN0X2JpdF9v ZmZzZXQsIGJpdF9sZW5ndGg7Ci1AQCAtMTMwNSw4ICsxMzEwLDggQEAgdmFsdWVfY29udGVudHNf Y29weV9yYXcgKHN0cnVjdCB2YWx1ZSAqZAotICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBh cmUgd2hvbGx5IGF2YWlsYWJsZS4gICovCi0gCi0gdm9pZAotLXZhbHVlX2NvbnRlbnRzX2NvcHkg KHN0cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKLS0JCSAgICAgc3RydWN0IHZhbHVl ICpzcmMsIGludCBzcmNfb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3ZhbHVlX2NvbnRlbnRzX2NvcHkg KHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZzZXQsCi0rCQkgICAgIHN0cnVjdCB2 YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZzZXQsIHNzaXplX3QgbGVuZ3RoKQotIHsKLSAgIGlm IChzcmMtPmxhenkpCi0gICAgIHZhbHVlX2ZldGNoX2xhenkgKHNyYyk7Ci1AQCAtMTM3MCw3ICsx Mzc1LDggQEAgdmFsdWVfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZQorQEAgLTE0 NTYsNyArMTQ1Nyw4IEBACiAgICAgdGhlIGZvbGxvd2luZyBMRU5HVEggYnl0ZXMuICAqLwogIAog IHZvaWQKQEAgLTM5MzUsMTk5ICszMjE1LDIwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdmFsdWUuYwogIHsKICAgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0ICh2YWx1 ZSwKICAJCQkJIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC0xMzgwLDE0ICsxMzg2LDE1 IEBAIG1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3RydWN0IHYKLSAvKiBTZWUgdmFs dWUuaC4gICovCi0gCi0gdm9pZAotLW1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK21hcmtfdmFsdWVfYml0 c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJ CQkgICAgICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgaW5zZXJ0X2ludG9fYml0X3JhbmdlX3Zl Y3RvciAoJnZhbHVlLT5vcHRpbWl6ZWRfb3V0LCBvZmZzZXQsIGxlbmd0aCk7Ci0gfQotIAotIGlu dAotIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs dWUsCi0tCQkJICAgICAgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSsJCQkgICAgICBMT05HRVNU IG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgaWYgKHZhbHVlLT5sdmFsICE9IGx2YWxf Y29tcHV0ZWQKLSAgICAgICB8fCAhdmFsdWUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzLT5jaGVj a19zeW50aGV0aWNfcG9pbnRlcikKLUBAIC0xMzk3LDI2ICsxNDA0LDI2IEBAIHZhbHVlX2JpdHNf c3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnUKLSAJCQkJCQkJCSAgbGVuZ3RoKTsKLSB9Ci0g Ci0taW50Ci0rTE9OR0VTVAotIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2 YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUtPmVtYmVkZGVkX29mZnNldDsKLSB9Ci0gCi0gdm9p ZAotLXNldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2 YWwpCi0rc2V0X3ZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9O R0VTVCB2YWwpCi0gewotICAgdmFsdWUtPmVtYmVkZGVkX29mZnNldCA9IHZhbDsKLSB9Ci0gCi0t aW50Ci0rTE9OR0VTVAotIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZh bHVlKQotIHsKLSAgIHJldHVybiB2YWx1ZS0+cG9pbnRlZF90b19vZmZzZXQ7Ci0gfQotIAotIHZv aWQKLS1zZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGlu dCB2YWwpCi0rc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBMT05HRVNUIHZhbCkKLSB7Ci0gICB2YWx1ZS0+cG9pbnRlZF90b19vZmZzZXQgPSB2YWw7Ci0g fQotQEAgLTIyOTUsNyArMjMwMiw3IEBAIGdldF9pbnRlcm5hbHZhcl9mdW5jdGlvbiAoc3RydWN0 IGludGVybmEKLSB9Ci0gCi0gdm9pZAotLXNldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVj dCBpbnRlcm5hbHZhciAqdmFyLCBpbnQgb2Zmc2V0LCBpbnQgYml0cG9zLAotK3NldF9pbnRlcm5h bHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBMT05HRVNUIG9mZnNldCwg aW50IGJpdHBvcywKLSAJCQkgICBpbnQgYml0c2l6ZSwgc3RydWN0IHZhbHVlICpuZXd2YWwpCi0g ewotICAgZ2RiX2J5dGUgKmFkZHI7Ci1AQCAtMzAyMCw3ICszMDI3LDcgQEAgc2V0X3ZhbHVlX2Vu Y2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKgotICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVs ZC4gICovCi0gCi0gc3RydWN0IHZhbHVlICoKLS12YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwKLSt2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZzZXQsCi0gCQkgICAgICAgaW50IGZpZWxkbm8sIHN0 cnVjdCB0eXBlICphcmdfdHlwZSkKLSB7Ci0gICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzA3Miw3 ICszMDc5LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZwotICAg ICAgIC8qIFRoaXMgZmllbGQgaXMgYWN0dWFsbHkgYSBiYXNlIHN1Ym9iamVjdCwgc28gcHJlc2Vy dmUgdGhlCi0gCSBlbnRpcmUgb2JqZWN0J3MgY29udGVudHMgZm9yIGxhdGVyIHJlZmVyZW5jZXMg dG8gdmlydHVhbAotIAkgYmFzZXMsIGV0Yy4gICovCi0tICAgICAgaW50IGJvZmZzZXQ7Ci0rICAg ICAgTE9OR0VTVCBib2Zmc2V0OwotIAotICAgICAgIC8qIExhenkgcmVnaXN0ZXIgdmFsdWVzIHdp dGggb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRlZC4gICovCi0gICAgICAgaWYgKFZBTFVFX0xWQUwg KGFyZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYgdmFsdWVfbGF6eSAoYXJnMSkpCi1AQCAtMzE1OSw3 ICszMTY2LDcgQEAgdmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IGZpZQotIHN0 cnVjdCB2YWx1ZSAqCi0gdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1 Y3QgZm5fZmllbGQgKmYsCi0gCQlpbnQgaiwgc3RydWN0IHR5cGUgKnR5cGUsCi0tCQlpbnQgb2Zm c2V0KQotKwkJTE9OR0VTVCBvZmZzZXQpCi0gewotICAgc3RydWN0IHZhbHVlICp2OwotICAgc3Ry dWN0IHR5cGUgKmZ0eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMjI5LDE0 ICszMjM2LDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKLSAK LSBzdGF0aWMgTE9OR0VTVAotIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVs ZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAgaW50IGJpdHBvcywgaW50 IGJpdHNpemUpCi0rCQkgICAgIExPTkdFU1QgYml0cG9zLCBpbnQgYml0c2l6ZSkKLSB7Ci0gICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVf YXJjaCAoZmllbGRfdHlwZSkpOwotICAgVUxPTkdFU1QgdmFsOwotICAgVUxPTkdFU1QgdmFsbWFz azsKLSAgIGludCBsc2Jjb3VudDsKLSAgIGludCBieXRlc19yZWFkOwotLSAgaW50IHJlYWRfb2Zm c2V0OwotKyAgTE9OR0VTVCByZWFkX29mZnNldDsKLSAKLSAgIC8qIFJlYWQgdGhlIG1pbmltdW0g bnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkOyB0aGVyZSBtYXkgbm90IGJlCi0gICAgICBlbm91Z2gg Ynl0ZXMgdG8gcmVhZCBhbiBlbnRpcmUgVUxPTkdFU1QuICAqLwotQEAgLTMyODUsNyArMzI5Miw3 IEBAIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF8KLSAKLSBpbnQKLSB1 bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAotLQkJCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywK LSsJCQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAotIAkJCSAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0KQotIHsKLSAgIGludCBiaXRw b3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzMyOSw3ICszMzM2 LDcgQEAgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLAotIHZvaWQKLSB1 bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzdF92YWwsCi0gCQkgICAgICAg aW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0tCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsKQotIHsKLSAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyOwotQEAgLTMzNjcsNyAr MzM3NCw3IEBAIHVucGFja192YWx1ZV9iaXRmaWVsZCAoc3RydWN0IHZhbHVlICpkZXMKLSBzdHJ1 Y3QgdmFsdWUgKgotIHZhbHVlX2ZpZWxkX2JpdGZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 IGZpZWxkbm8sCi0gCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAgIGlu dCBlbWJlZGRlZF9vZmZzZXQsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotKwkJICAgICAgTE9O R0VTVCBlbWJlZGRlZF9vZmZzZXQsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIGlu dCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7Ci0gICBpbnQgYml0 c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzM4OCwxMiAr MzM5NSwxMiBAQCB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsCi0gCi0g dm9pZAotIG1vZGlmeV9maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGdkYl9ieXRlICphZGRyLAot LQkgICAgICBMT05HRVNUIGZpZWxkdmFsLCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSkKLSsJICAg ICAgTE9OR0VTVCBmaWVsZHZhbCwgTE9OR0VTVCBiaXRwb3MsIGludCBiaXRzaXplKQotIHsKLSAg IGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlw ZV9hcmNoICh0eXBlKSk7Ci0gICBVTE9OR0VTVCBvd29yZDsKLSAgIFVMT05HRVNUIG1hc2sgPSAo VUxPTkdFU1QpIC0xID4+ICg4ICogc2l6ZW9mIChVTE9OR0VTVCkgLSBiaXRzaXplKTsKLS0gIGlu dCBieXRlc2l6ZTsKLSsgIExPTkdFU1QgYnl0ZXNpemU7Ci0gCi0gICAvKiBOb3JtYWxpemUgQklU UE9TLiAgKi8KLSAgIGFkZHIgKz0gYml0cG9zIC8gODsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFsdWUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsdWUuaAky MDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWx1ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQxMzY1MDA0ICswMTAwCi1AQCAt MTM1LDggKzEzNSw4IEBAIGV4dGVybiB2b2lkIHNldF92YWx1ZV9wYXJlbnQgKHN0cnVjdCB2YWwK LSAgICB3aXRoaW4gdGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlIG1lbWJl cgotICAgIGVtYmVkZGVkX29mZnNldCBiZWxvdy4gICovCi0gCi0tZXh0ZXJuIGludCB2YWx1ZV9v ZmZzZXQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqKTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfb2Zm c2V0IChzdHJ1Y3QgdmFsdWUgKiwgaW50IG9mZnNldCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVf b2Zmc2V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKik7Ci0rZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX29m ZnNldCAoc3RydWN0IHZhbHVlICosIExPTkdFU1Qgb2Zmc2V0KTsKLSAKLSAvKiBUaGUgY29tbWVu dCBmcm9tICJzdHJ1Y3QgdmFsdWUiIHJlYWRzOiBgYElzIGl0IG1vZGlmaWFibGU/ICBPbmx5Ci0g ICAgcmVsZXZhbnQgaWYgbHZhbCAhPSBub3RfbHZhbC4nJy4gIFNob3VsZG4ndCB0aGUgdmFsdWUg aW5zdGVhZCBiZQotQEAgLTIwNSwxMCArMjA1LDEwIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFs dWVfYWN0dWFsX3R5cGUgKHMKLSAJCQkJICAgICAgIGludCByZXNvbHZlX3NpbXBsZV90eXBlcywK LSAJCQkJICAgICAgIGludCAqcmVhbF90eXBlX2ZvdW5kKTsKLSAKLS1leHRlcm4gaW50IHZhbHVl X3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLS1leHRlcm4gdm9pZCBz ZXRfdmFsdWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwp OwotLWV4dGVybiBpbnQgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVl KTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBpbnQgdmFsKTsKLStleHRlcm4gTE9OR0VTVCB2YWx1ZV9wb2ludGVkX3RvX29mZnNl dCAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0rZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BvaW50ZWRf dG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCk7Ci0rZXh0ZXJuIExP TkdFU1QgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLStleHRl cm4gdm9pZCBzZXRfdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBM T05HRVNUIHZhbCk7Ci0gCi0gLyogRm9yIGx2YWxfY29tcHV0ZWQgdmFsdWVzLCB0aGlzIHN0cnVj dHVyZSBob2xkcyBmdW5jdGlvbnMgdXNlZCB0bwotICAgIHJldHJpZXZlIGFuZCBzZXQgdGhlIHZh bHVlIChvciBwb3J0aW9ucyBvZiB0aGUgdmFsdWUpLgotQEAgLTI0Niw3ICsyNDYsNyBAQCBzdHJ1 Y3QgbHZhbF9mdW5jcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHVlLmgJ MjAxNi0wNy0xNiAxNDozMzo0Mi4xMjA1MTA2NTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdmFsdWUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MDUzMDIxMyArMDIwMAorQEAg LTI0Niw3ICsyNDYsNyBAQAogICAgLyogSWYgbm9uLU5VTEwsIHRoaXMgaXMgdXNlZCB0byBkZXRl cm1pbmUgd2hldGhlciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAgIG9mIFZBTFVFIGFyZSBhIHN5 bnRoZXRpYyBwb2ludGVyLiAgKi8KICAgIGludCAoKmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKSAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3Ro KTsKKy0JCQkJICBMT05HRVNUIG9mZnNldCwgaW50IGxlbmd0aCk7CiArCQkJCSAgTE9OR0VTVCBv ZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKICAKICAgIC8qIFJldHVybiBhIGR1cGxpY2F0ZSBvZiBW QUxVRSdzIGNsb3N1cmUsIGZvciB1c2UgaW4gYSBuZXcgdmFsdWUuCiAgICAgICBUaGlzIG1heSBz aW1wbHkgcmV0dXJuIHRoZSBzYW1lIGNsb3N1cmUsIGlmIFZBTFVFJ3MgaXMKLUBAIC0yODMsNyAr MjgzLDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfY29tcHV0ZWRfdgotICAgIE90 aGVyd2lzZSwgcmV0dXJuIDEuICAqLwotIAotIGV4dGVybiBpbnQgdmFscHJpbnRfY2hlY2tfdmFs aWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLAotLQkJCQkg ICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkJICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0 LAotIAkJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiBzdHJ1Y3Qg dmFsdWUgKmFsbG9jYXRlX29wdGltaXplZF9vdXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlKTsK LUBAIC0zNzcsNyArMzc3LDggQEAgZXh0ZXJuIGludCB2YWx1ZV9vcHRpbWl6ZWRfb3V0IChzdHJ1 Y3QgdgorQEAgLTM3Nyw3ICszNzcsOCBAQAogICAgIG90aGVyd2lzZS4gICovCiAgCiAgZXh0ZXJu IGludCB2YWx1ZV9iaXRzX2FueV9vcHRpbWl6ZWRfb3V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bHVlLApAQCAtNDEzNyw3ICszMjM4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi92YWx1ZS5oCiAgCiAgLyogTGlrZSB2YWx1ZV9vcHRpbWl6ZWRfb3V0LCBidXQgcmV0dXJuIHRy dWUgaWZmIHRoZSB3aG9sZSB2YWx1ZSBpcwogICAgIG9wdGltaXplZCBvdXQuICAqLwotQEAgLTM4 NywxMyArMzg4LDEzIEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dAor QEAgLTM4Nyw3ICszODgsNyBAQAogICAgIExFTkdUSCBieXRlcyBhcyBvcHRpbWl6ZWQgb3V0LiAg Ki8KICAKICBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVj dCB2YWx1ZSAqdmFsdWUsCkBAIC00MTQ2LDEyNCArMzI0NywxMiBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmgKICAKICAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRz IHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgogICAgIExFTkdUSCBiaXRzIGFz IG9wdGltaXplZCBvdXQuICAqLwotIAotIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c19vcHRp bWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkJICAgaW50IG9mZnNldCwgaW50 IGxlbmd0aCk7Ci0rCQkJCQkgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpOwotIAot IC8qIFNldCBvciByZXR1cm4gZmllbGQgaW5kaWNhdGluZyB3aGV0aGVyIGEgdmFyaWFibGUgaXMg aW5pdGlhbGl6ZWQgb3IKLSAgICBub3QsIGJhc2VkIG9uIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBz dXBwbGllZCBieSB0aGUgY29tcGlsZXIuCi1AQCAtNDc2LDcgKzQ3Nyw3IEBAIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3RydWMKLSAgICBleHRlbmRpbmcgZm9yIExFTkdUSCBi aXRzIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KLSAKLSBleHRlcm4gaW50IHZhbHVlX2Jp dHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCQkg aW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCQkgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1Qg bGVuZ3RoKTsKLSAKLSAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29u dGVudHMgYnl0ZXMgc3RhcnRpbmcgYXQKLSAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVO R1RIIGJ5dGVzIGFyZSBhdmFpbGFibGUuICBUaGlzIHJldHVybnMKLUBAIC00ODQsNyArNDg1LDcg QEAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyCi0gICAgYnl0ZSBpcyB1 bmF2YWlsYWJsZS4gICovCi0gCi0gZXh0ZXJuIGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7 Ci0rCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBHaXZlbiBh IHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYml0cyBzdGFydGluZyBhdAot ICAgIE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvciBMRU5HVEggYml0cyBhcmUgYXZhaWxhYmxlLiAg VGhpcyByZXR1cm5zCi1AQCAtNDkyLDcgKzQ5Myw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNf YXZhaWxhYmxlIChjb25zdAotICAgIGJpdCBpcyB1bmF2YWlsYWJsZS4gICovCi0gCi0gZXh0ZXJu IGludCB2YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0J CQkJIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwotKwkJCQkgTE9OR0VTVCBvZmZzZXQsIExPTkdF U1QgbGVuZ3RoKTsKLSAKLSAvKiBMaWtlIHZhbHVlX2J5dGVzX2F2YWlsYWJsZSwgYnV0IHJldHVy biBmYWxzZSBpZiBhbnkgYnl0ZSBpbiB0aGUKLSAgICB3aG9sZSBvYmplY3QgaXMgdW5hdmFpbGFi bGUuICAqLwotQEAgLTUwNiw3ICs1MDcsNyBAQCBleHRlcm4gaW50IHZhbHVlX2VudGlyZWx5X3Vu YXZhaWxhYmxlIChzCi0gICAgTEVOR1RIIGJ5dGVzIGFzIHVuYXZhaWxhYmxlLiAgKi8KLSAKLSBl eHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdWUgKnZh bHVlLAotLQkJCQkJICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKLSsJCQkJCSAgTE9OR0VTVCBv ZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRz IHN0YXJ0aW5nIGF0IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgotICAgIExFTkdUSCBiaXRzIGFz IHVuYXZhaWxhYmxlLiAgKi8KLUBAIC01NjcsOSArNTY4LDkgQEAgZXh0ZXJuIHZvaWQgbWFya192 YWx1ZV9iaXRzX3VuYXZhaWxhYmxlCi0gICAgYWZ0ZXIgdGhlIGluZmVyaW9yIGlzIGdvbmUsIGl0 IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLAotICAgIHRoaXMgcm91dGluZSBt dXN0IG5vdCBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICovCi0gCi0tZXh0ZXJuIGludCB2 YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwK LS0JCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIGludCBvZmZzZXQyLAotLQkJCSAg ICAgIGludCBsZW5ndGgpOwotK2V4dGVybiBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAotKwkJCSAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZzZXQyLAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3Ro KTsKLSAKLSAvKiBSZWFkIExFTkdUSCBhZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMgc3RhcnRpbmcg YXQgTUVNQUREUiBpbnRvIEJVRkZFUiwKLSAgICB3aGljaCBpcyAob3Igd2lsbCBiZSBjb3BpZWQg dG8pIFZBTCdzIGNvbnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBAIC01NzgsNyArNTc5LDcgQEAg ZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydQotICAgIG1lbW9yeSBpcyBs aWtld2lzZSB1bmF2YWlsYWJsZS4gIFNUQUNLIGluZGljYXRlcyB3aGV0aGVyIHRoZSBtZW1vcnkK LSAgICBpcyBrbm93biB0byBiZSBzdGFjayBtZW1vcnkuICAqLwotIAotLWV4dGVybiB2b2lkIHJl YWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50IGVtYmVkZGVkX29mZnNldCwK LStleHRlcm4gdm9pZCByZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSAgICAgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1h ZGRyLAotIAkJCSAgICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsKLSAKLUBA IC02MTQsMTcgKzYxNSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAo c3RyCi0gCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0gCQkJCSAgICAgaW50IGZp ZWxkbm8pOwotIGV4dGVybiBpbnQgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJaW50IGVtYmVkZGVkX29m ZnNldCwgaW50IGZpZWxkbm8sCi0rCQkJCUxPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmll bGRubywKLSAJCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgKnJlc3VsdCk7Ci0g Ci0gZXh0ZXJuIHZvaWQgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3Rf dmFsLAotIAkJCQkgICBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKLS0JCQkJICAgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCSAgIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAotKwkJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkJICAg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVl X2ZpZWxkX2JpdGZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCi0gCQkJCQkg ICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJCSAgIGludCBlbWJlZGRlZF9vZmZzZXQs Ci0rCQkJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkJCSAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsKTsKLSAKLSBleHRlcm4gdm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYs IHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG51bSk7Ci1AQCAtNjgzLDEyICs2ODUsMTIgQEAg ZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQotIAotIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7Ci0gZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOwotLWV4 dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0 X29mZnNldCwKLS0JCQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwKLS0JCQkJ IGludCBsZW5ndGgpOwotLWV4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1 Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJCSAgICAgc3RydWN0IHZhbHVlICpz cmMsIGludCBzcmNfb2Zmc2V0LAotLQkJCQkgICAgIGludCBsZW5ndGgpOwotK2V4dGVybiB2b2lk IHZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZz ZXQsCi0rCQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LAotKwkJCQkg c3NpemVfdCBsZW5ndGgpOwotK2V4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChz dHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAotKwkJCQkgICAgIHN0cnVjdCB2 YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZzZXQsCi0rCQkJCSAgICAgc3NpemVfdCBsZW5ndGgp OwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3JlcGVhdF92YWx1ZSAoc3RydWN0 IHR5cGUgKnR5cGUsIGludCBjb3VudCk7Ci0gCi1AQCAtNzY2LDE2ICs3NjgsMTYgQEAgZXh0ZXJu IGludCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdgotIAotIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBmaWVsZG5vKTsKLSAKLS1l eHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgaW50IG9mZnNldCwKLStleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9wcmltaXRpdmVf ZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZzZXQsCitAQCAtNzcxLDEyICs3 NzIsMTEgQEAKICAJCQkJCSAgICBpbnQgZmllbGRubywKICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAq YXJnX3R5cGUpOwogIAotIAotLWV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV9pbmRpcmVj dF90eXBlIChzdHJ1Y3QgdmFsdWUgKiwgaW50ICosIGludCAqLAotK2V4dGVybiBzdHJ1Y3QgdHlw ZSAqdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKiwgaW50ICosIExPTkdF U1QgKiwKKy0KKyBleHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAo c3RydWN0IHZhbHVlICosIGludCAqLCBMT05HRVNUICosCiAgCQkJCQkgICAgICBpbnQgKik7CiAg CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAq LCBzdHJ1Y3QgdHlwZSAqLCBpbnQsCkBAIC00MjcyLDQ0ICszMjYxLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfY2FzdF9wb2ludGVycyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAg Ci1AQCAtODcwLDcgKzg3Miw3IEBAIGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9zdHJpbmcg KHN0cnUKLSBleHRlcm4gdm9pZCBjbGVhcl9pbnRlcm5hbHZhciAoc3RydWN0IGludGVybmFsdmFy ICp2YXIpOwotIAotIGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVj dCBpbnRlcm5hbHZhciAqdmFyLAotLQkJCQkgICAgICAgaW50IG9mZnNldCwKLSsJCQkJICAgICAg IExPTkdFU1Qgb2Zmc2V0LAotIAkJCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0g CQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKLSAKLUBAIC05NTEsNyArOTUzLDcg QEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9wIChzdHJ1YwotIAkJCQkgICBlbnVt IG5vc2lkZSBub3NpZGUpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZuX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICpmLAotLQkJCQkgICAgIGlu dCBqLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCk7Ci0rCQkJCSAgICAgaW50IGosIHN0 cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG9mZnNldCk7Ci0gCi0gZXh0ZXJuIGludCBiaW5vcF90 eXBlc191c2VyX2RlZmluZWRfcCAoZW51bSBleHBfb3Bjb2RlIG9wLAotIAkJCQkgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUxLAotQEAgLTk3OSw3ICs5ODEsOCBAQCBleHRlcm4gdm9pZCByZWxlYXNl X3ZhbHVlX29yX2luY3JlZiAoc3RyCi0gZXh0ZXJuIGludCByZWNvcmRfbGF0ZXN0X3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKnZhbCk7Ci0gCi0gZXh0ZXJuIHZvaWQgbW9kaWZ5X2ZpZWxkIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgZ2RiX2J5dGUgKmFkZHIsCi0tCQkJICBMT05HRVNUIGZpZWxkdmFsLCBpbnQg Yml0cG9zLCBpbnQgYml0c2l6ZSk7Ci0rCQkJICBMT05HRVNUIGZpZWxkdmFsLCBMT05HRVNUIGJp dHBvcywKLSsJCQkgIGludCBiaXRzaXplKTsKLSAKLSBleHRlcm4gdm9pZCB0eXBlX3ByaW50IChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqdmFyc3RyaW5nLAotIAkJCXN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCBzaG93KTsKLUBAIC0xMDA5LDcgKzEwMTIsNyBAQCBleHRlcm4gdm9p ZCB2YWx1ZV9wcmludF9hcnJheV9lbGVtZW50cyAoCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfcmVsZWFzZV90b19tYXJrIChzdHJ1Y3QgdmFsdWUgKm1hcmspOwotIAotIGV4dGVybiB2b2lk IHZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot LQkJICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJICAg ICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSAgICAg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucywKLUBAIC0xMDYyLDEwICsxMDY1LDExIEBAIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX2xpdGVyYWxfY29tcGwKK0BAIC0xMDY1LDEwICsxMDY1LDExIEBACiAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAog IAkJCQkJCXN0cnVjdCBvYmpmaWxlICoqKTsKICAKQEAgLTQzMjMsMTEgKzMyNzUsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgLyogVXNlciBmdW5jdGlv biBoYW5kbGVyLiAgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvczM5MC1s aW51eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LW5h dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvczM5MC1s aW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjQyMzY1MDEwICswMTAwCi1AQCAtNjEyLDcgKzYxMiw3IEBAIHMzOTBfY2FuX3VzZV9od19icmVh a3BvaW50IChzdHJ1Y3QgdGFyZ2UKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9z MzkwLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDoz Mzo0NC41NTA1MzAyMTMgKzAyMDAKK0BAIC02MTIsNyArNjEyLDcgQEAKICAKICBzdGF0aWMgaW50 CiAgczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpz ZWxmLApAQCAtNDMzNiwzNyArMzI4OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gMTsKICB9Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjUwMzUxOTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVu c2lvbi1wcml2LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDIzNjUwMTAgKzAxMDAKLUBAIC0xODEs NyArMTgxLDcgQEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9vcHMKLSAgIGVudW0gZXh0X2xh bmdfcmMgKCphcHBseV92YWxfcHJldHR5X3ByaW50ZXIpCi0gICAgIChjb25zdCBzdHJ1Y3QgZXh0 ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKiwKLSAgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKLS0gICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBh ZGRyZXNzLAotKyAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNz LAotICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgICBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMsCi0gICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpOwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRl cm5hbC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUwMzUxOTA0ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIz OjEzLjI0MjM2NTAxMCArMDEwMAotQEAgLTMxNiw3ICszMTYsNyBAQCBleHRlcm4gaW50IGdkYnB5 X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCi0gZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2RicHlf YXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCi0gICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5n dWFnZV9kZWZuICosCi0gICAgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAotLSAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKyAgIExP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwK LSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MzM2NTAxNyArMDEw MAotQEAgLTczNiwxNCArNzM2LDE0IEBAIGRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UgKHN0cnUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90YXJnZXQtZGVsZWdh dGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjE1MTA2NjQgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUw NTMwMjEzICswMjAwCitAQCAtNzM2LDE0ICs3MzYsMTQgQEAKICB9CiAgCiAgc3RhdGljIGludApA QCAtNDM4Myw3ICszMzA5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJn ZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAgZnByaW50Zl91bmZpbHRlcmVk IChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoLi4u KVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAtNzUzLDcgKzc1Myw3IEBAIGRl YnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMKK0BAIC03NTMsNyArNzUzLDcg QEAKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2Rl YnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBn ZGJfc3RkbG9nKTsKQEAgLTQzOTIsMTEgKzMzMTgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIpID0g IiwgZ2RiX3N0ZGxvZyk7CiAgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChyZXN1bHQpOwogICAg ZnB1dHNfdW5maWx0ZXJlZCAoIlxuIiwgZ2RiX3N0ZGxvZyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yNTIzNTE5MTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWFyY2g2NC1s aW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MzM2NTAxNyArMDEwMAotQEAgLTczNiw3 ICs3MzYsNyBAQCBhYXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QKKy0tLSBn ZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAK K0BAIC03MzYsNyArNzM2LDcgQEAKICAKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDQw NSwxMSArMzMzMSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNoNjQt bGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX3dh dGNocG9pbnQgKGFkZHIsIGxlbik7CiAgfQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9uYXQveDg2LWRyZWdzLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4 Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv bmF0L3g4Ni1kcmVncy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWdu ZWRfd2F0Y2hwb2ludCAoc3RydWN0IHg4CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTM4NCw3ICszODQsNyBAQAogIAogIHN0YXRpYyBp bnQKICB4ODZfaGFuZGxlX25vbmFsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWJ1Z19y ZWdfc3RhdGUgKnN0YXRlLApAQCAtNDQxOCw3ICszMzQ0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmMKICAJCQkJICBlbnVtIHRhcmdldF9od19icF90 eXBlIHR5cGUpCiAgewogICAgaW50IHJldHZhbCA9IDA7Ci1AQCAtNTUyLDcgKzU1Miw3IEBAIHg4 Nl9kcl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWIKK0BAIC01NTIsNyArNTUyLDcg QEAKICAKICBpbnQKICB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2 X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCkBAIC00NDI3LDExICszMzUzLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewogICAgaW50IG5yZWdz OwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jb21waWxlL2NvbXBpbGUtYy1z dXBwb3J0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY29tcGlsZS9jb21waWxl LWMtc3VwcG9ydC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUx OTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1j LXN1cHBvcnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTI5OSwx MSArMjk5LDExIEBAIGdlbmVyYXRlX3JlZ2lzdGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0 LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjI1MTA2NzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTUxNTMwMjIxICswMjAwCitAQCAtMjk5LDExICsyOTksMTEgQEAKICAKICAJICAgICAgZGVm YXVsdDoKICAJCWZwcmludGZfdW5maWx0ZXJlZCAoc3RyZWFtLApAQCAtNDQ0NSwxMSArMzM3MSwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1 cHBvcnQuYwogIAkgICAgICB9CiAgCSAgICBmcHV0c191bmZpbHRlcmVkICgiO1xuIiwgc3RyZWFt KTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE1 LTExLTAyIDIxOjIzOjExLjI1MzM1MTkyMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAK LUBAIC0xMTYsNyArMTE2LDcgQEAgZXh0ZXJuIGludCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQg KHN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAky MDE2LTA3LTE2IDE0OjMzOjQyLjEyMjUxMDY3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAy MDAKK0BAIC0xMTYsNyArMTE2LDcgQEAKICAvKiBSZXR1cm4gbm9uLXplcm8gaWYgd2UgY2FuIHdh dGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAogICAgIGFkZHJlc3MgQUREUiBhbmQg d2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCiAgZXh0ZXJuIGludCB4ODZfZHJfcmVnaW9u X29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCkBA IC00NDU4LDExICszMzg0LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0 L3g4Ni1kcmVncy5oCiAgCiAgLyogSWYgdGhlIGluZmVyaW9yIGhhcyBzb21lIGJyZWFrL3dhdGNo cG9pbnQgdGhhdCB0cmlnZ2VyZWQsIHNldCB0aGUKICAgICBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0 aCB0aGF0IGJyZWFrL3dhdGNocG9pbnQgYW5kIHJldHVybiB0cnVlLgotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIveDg2LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIveDg2LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3g4Ni1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2 NTAyNCArMDEwMAotQEAgLTE3NCw3ICsxNzQsNyBAQCB4ODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0 cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIveDg2LW5h dC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIzNTEwNjgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3g4Ni1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIw MAorQEAgLTE3NCw3ICsxNzQsNyBAQAogIAogIHN0YXRpYyBpbnQKICB4ODZfcmVnaW9uX29rX2Zv cl93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTQ0NzEsMjkgKzMzOTcs MjUgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMKICB7CiAgICBz dHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAgPSB4ODZfZGVidWdfcmVnX3N0 YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0xMS0w MiAyMToyMzoxMS4yNTMzNTE5MjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEw MAotQEAgLTYwNiw3ICs2MDYsNyBAQCBleHRlcm4gdm9pZCBnZGJzY21fcHJlc2VydmVfdmFsdWVz Ci0gZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2Ric2NtX2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRl cgotICAgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqLAotICAgIHN0cnVj dCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0gICBpbnQgZW1iZWRkZWRf b2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwg Q09SRV9BRERSIGFkZHJlc3MsCi0gICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9ydXN0LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1NDM1MTkz MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ndWlsZS9zY20tcHJldHR5LXBy aW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDUzNjUwMzAgKzAxMDAKLUBAIC05NTgsNyArOTU4 LDcgQEAgcHBzY21fcHJpbnRfY2hpbGRyZW4gKFNDTSBwcmludGVyLCBlbnVtCi0gZW51bSBleHRf bGFuZ19yYwotIGdkYnNjbV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKGNvbnN0IHN0cnVjdCBl eHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKLSAJCQkJIHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENP UkVfQUREUiBhZGRyZXNzLAotKwkJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQURE UiBhZGRyZXNzLAotIAkJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0g CQkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3J1c3QtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIzNTEwNjgwICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3J1c3QtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUx NTMwMjIxICswMjAwCitAQCAtNDEwLDcgKzQxMCw3IEBACisgCisgc3RhdGljIHZvaWQKKyBydXN0 X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0J ICAgICAgIGNvbnN0IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsCisrCSAg ICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCBVTE9OR0VTVCBsZW5ndGgsCisgCSAgICAgICBj b25zdCBjaGFyICp1c2VyX2VuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCisgCSAgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7CitAQCAtNDU2LDcg KzQ1Niw3IEBACisgLyogbGFfdmFsX3ByaW50IGltcGxlbWVudGF0aW9uIGZvciBSdXN0LiAgKi8K KyAKKyBzdGF0aWMgdm9pZAorLXJ1c3RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisrcnVzdF92YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBl bWJlZGRlZF9vZmZzZXQsCisgCQlDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCisgCQljb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCWNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQoKZGlmZiAtLWdpdCBhL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNv ZjI1LnBhdGNoCmluZGV4IDFmNmQyMzcuLjg1NzYwZGIgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2Yy NS5wYXRjaApAQCAtMTM3LDEwICsxMzcsMTAgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gK IENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0 dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYWxwaGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjU5MjgxMzk5MCArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoyMC4zMDg4MzQ3MTcgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9h bHBoYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS4zOTA1MDI3MTggKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYWxwaGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTEx NTE5Nzg4ICswMjAwCiBAQCAtMjk5LDE3ICsyOTksMTcgQEAKICB7CiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xODMsMTEg KzE4MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FscGhhLXRkZXAuYwog IAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxlbik7 CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0bGVuOwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNTk0 ODE0MDAxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjIwLjMwOTgzNDcyMyArMDEwMAotQEAgLTY5OSw3ICs2OTksNyBAQAor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ1LjM5MTUwMjcyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h bWQ2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTI1MTk3OTYgKzAyMDAKK0BAIC03Mjks NyArNzI5LDcgQEAKICAJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndy aXRlYnVmKQogIHsKICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJdOwpAQCAtMTk2 LDcgKzE5Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5j CiAgICBzdGF0aWMgaW50IGludGVnZXJfcmVnbnVtW10gPSB7IEFNRDY0X1JBWF9SRUdOVU0sIEFN RDY0X1JEWF9SRUdOVU0gfTsKICAgIHN0YXRpYyBpbnQgc3NlX3JlZ251bVtdID0geyBBTUQ2NF9Y TU0wX1JFR05VTSwgQU1ENjRfWE1NMV9SRUdOVU0gfTsKICAgIGludCBpbnRlZ2VyX3JlZyA9IDA7 Ci1AQCAtODUwLDggKzg1MCw4IEBACitAQCAtODgwLDggKzg4MCw4IEBACiAgICB9OwogICAgc3Ry dWN0IHZhbHVlICoqc3RhY2tfYXJncyA9IFhBTExPQ0FWRUMgKHN0cnVjdCB2YWx1ZSAqLCBuYXJn cyk7CiAgICBpbnQgbnVtX3N0YWNrX2FyZ3MgPSAwOwpAQCAtMjA3LDcgKzIwNyw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5jCiAgICBpbnQgaW50ZWdlcl9y ZWcgPSAwOwogICAgaW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7Ci1AQCAtODYzLDcgKzg2Myw3 IEBACitAQCAtODkzLDcgKzg5Myw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykK ICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7 CkBAIC0yMTYsMTAgKzIxNiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2Ft ZDY0LXRkZXAuYwogICAgICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJdOwogICAg ICAgIGludCBuZWVkZWRfaW50ZWdlcl9yZWdzID0gMDsKICAgICAgICBpbnQgbmVlZGVkX3NzZV9y ZWdzID0gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtd2luZG93cy10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW1kNjQtd2luZG93cy10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hbWQ2NC13 aW5kb3dzLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjU5NTgxNDAwNiArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjIwLjMxMDgzNDcyOCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuMzkzNTAyNzQyICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTYt MDctMTYgMTQ6MzU6NDcuNTEyNTE5Nzk2ICswMjAwCiBAQCAtMjg4LDcgKzI4OCw3IEBACiAgCQkJ ICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJCSAg ICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQpAQCAtMjI5LDEx ICsyMjksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC13aW5kb3dz LXRkZXAuYwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1ZSBp cyByZXR1cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2FybS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjAzODE0MDUxICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NzowNS43MzcwODgxMDcgKzAxMDAKLUBAIC0zMzQwLDcgKzMzNDAsNyBAQAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDA1 MDI3OTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM2OjMwLjMyODg2NDM3NiArMDIwMAorQEAgLTM0NDMsNyArMzQ0Myw3IEBACiAg ICAgYXJyYXkpLiAgVmVjdG9yIHR5cGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCwgbWF0 Y2hpbmcgdGhlCiAgICAgZ2VuZXJpYyBBQVBDUyBzdXBwb3J0LiAgKi8KICAKQEAgLTI0Miw3ICsy NDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICBhcm1f dmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQsCiAgCQkJICAgIGVudW0gYXJt X3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90eXBlKQogIHsKLUBAIC0zNDIzLDcgKzM0MjMsNyBA QAorQEAgLTM1MjYsNyArMzUyNiw3IEBACiAgCSAgfQogIAllbHNlCiAgCSAgewpAQCAtMjUxLDcg KzI1MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYwogIAkg ICAgdW5zaWduZWQgdW5pdGxlbjsKICAKICAJICAgIGNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9j YW5kaWRhdGUgKFRZUEVfVEFSR0VUX1RZUEUgKHQpLAotQEAgLTM0NDYsMTMgKzM0NDYsMTUgQEAK K0BAIC0zNTQ5LDEyICszNTQ5LDEyIEBACiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoK ICAgICAgICB7CkBAIC0yNjEsMTYgKzI2MSwxMiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2FybS10ZGVwLmMKICAJaW50IGk7CiAgCWZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVM RFMgKHQpOyBpKyspCiAgCSAgewotLQkgICAgaW50IHN1Yl9jb3VudCA9IGFybV92ZnBfY3ByY19z dWJfY2FuZGlkYXRlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLAotLQkJCQkJCQliYXNlX3R5cGUp OwotKwkgICAgTE9OR0VTVCBzdWJfY291bnQ7Ci0rCi0rCSAgICBzdWJfY291bnQgPSBhcm1fdmZw X2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKLSsJCQkJCQkgICAg YmFzZV90eXBlKTsKLSAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCi0gCSAgICAgIHJldHVybiAt MTsKLSAJICAgIGNvdW50ICs9IHN1Yl9jb3VudDsKLUBAIC0zNDcyLDEzICszNDc0LDE1IEBACist CSAgICBpbnQgc3ViX2NvdW50ID0gMDsKKysJICAgIExPTkdFU1Qgc3ViX2NvdW50ID0gMDsKKyAK KyAJICAgIGlmICghZmllbGRfaXNfc3RhdGljICgmVFlQRV9GSUVMRCAodCwgaSkpKQorIAkgICAg ICBzdWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBF ICh0LCBpKSwKK0BAIC0zNTc4LDEzICszNTc4LDE1IEBACiAgCiAgICAgIGNhc2UgVFlQRV9DT0RF X1VOSU9OOgogICAgICAgIHsKQEAgLTI4OSw3ICsyODUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAg ICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQg OiBzdWJfY291bnQpOwotQEAgLTM1MTQsNyArMzUxOCw3IEBACitAQCAtMzYyMCw3ICszNjIyLDcg QEAKICAJCQlpbnQgKmNvdW50KQogIHsKICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSBi ID0gVkZQX0NQUkNfVU5LTk9XTjsKQEAgLTI5OCw3ICsyOTQsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAgIGlmIChjIDw9IDAgfHwgYyA+IDQpCiAgICAg IHJldHVybiAwOwogICAgKmJhc2VfdHlwZSA9IGI7Ci1AQCAtMzU5NSw3ICszNTk5LDcgQEAKK0BA IC0zNzAxLDcgKzM3MDMsNyBAQAogIAogICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJn czsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTMwNywxMSArMzAzLDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlw ZTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAgICAgICAgZW51bSB0eXBlX2Nv ZGUgdHlwZWNvZGU7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wMS0wOCAx OToxNjoxNi42MDQ4MTQwNTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXZy LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNDgzNDc1MCArMDEwMAotQEAgLTExOTYsMTMg KzExOTYsMTMgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hdnItdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAxNTAyODA2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTY1MTk4MjggKzAyMDAK K0BAIC0xMTk1LDEzICsxMTk1LDEzIEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7CkBAIC0z MjcsNyArMzIzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hdnItdGRlcC5j CiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kgPSBYTkVXIChzdHJ1Y3Qgc3Rh Y2tfaXRlbSk7Ci1AQCAtMTI5MSwxMiArMTI5MSwxMiBAQAorQEAgLTEyODksMTIgKzEyODksMTIg QEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0zNDEsMjIg KzMzNywyMiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMKIC0g ICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogKyAgICAgIHNzaXplX3QgbGVuID0g VFlQRV9MRU5HVEggKHR5cGUpOwogIAotICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50aWFs IGxhc3QgcmVnaXN0ZXIgbmVlZGVkLiAgKi8KLSAgICAgICBsYXN0X3JlZ251bSA9IHJlZ251bSAt IChsZW4gKyAobGVuICYgMSkpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9iZmlu LXRkZXAuYworICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIg bmVlZGVkLgorICAgICAgICAgIEUuZy4gRm9yIGxlbmd0aCAyLCByZWdpc3RlcnMgcmVnbnVtIGFu ZCByZWdudW0tMSAoc2F5IDI1IGFuZCAyNCkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYmZpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9iZmluLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwNTgxNDA2MiArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9iZmluLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIw LjMxNTgzNDc1NiArMDEwMAotQEAgLTUwNCw3ICs1MDQsNyBAQAotICAgZ2RiX2J5dGUgYnVmWzRd OworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2JmaW4tdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDAxNTAyODA2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2JmaW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE2NTE5ODI4ICswMjAwCitAQCAtNTAy LDcgKzUwMiw3IEBACisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgaTsKICAgIGxvbmcgcmVnX3IwLCByZWdfcjEsIHJl Z19yMjsKIC0gIGludCB0b3RhbF9sZW4gPSAwOwogKyAgc3NpemVfdCB0b3RhbF9sZW4gPSAwOwot ICAgZW51bSBiZmluX2FiaSBhYmkgPSBiZmluX2FiaSAoZ2RiYXJjaCk7Ci0gICBDT1JFX0FERFIg ZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCi1AQCAt NTI4LDcgKzUyOCw3IEBACisgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQorICAg ICB7CitAQCAtNTI0LDcgKzUyNCw3IEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdmFs dWVfdHlwZSA9IHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3Qg dHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlKTsKQEAgLTM2NSwxMCAr MzYxLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYmZpbi10ZGVwLmMKICAK ICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAgIHdyaXRlX21lbW9yeSAoc3AsIHZh bHVlX2NvbnRlbnRzIChhcmdzW2ldKSwgY29udGFpbmVyX2xlbik7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDY4MTQwNjggKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoy MC4zMTY4MzQ3NjIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcmlz LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMzUwMjgyMyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9jcmlzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNzUxOTgz NiArMDIwMAogQEAgLTY2MywxMyArNjYzLDEzIEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KQEAg LTM4NSw3ICszODEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRl cC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpID0gWE5FVyAoc3RydWN0IHN0YWNrX2l0 ZW0pOwogICAgc2ktPmRhdGEgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAobGVuKTsKLUBAIC04NDEs MTMgKzg0MSwxMyBAQAorQEAgLTgzMywxMyArODMzLDEzIEBACiAgCiAgICBmb3IgKGFyZ251bSA9 IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtNDAzLDExICszOTksMTEg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jcmlzLXRkZXAuYwogICAgICAgIAog ICAgICAgIC8qIEhvdyBtYXkgcmVnaXN0ZXJzIHdvcnRoIG9mIHN0b3JhZ2UgZG8gd2UgbmVlZCBm b3IgdGhpcyBhcmd1bWVudD8gICovCiAgICAgICAgcmVnX2RlbWFuZCA9IChsZW4gLyA0KSArIChs ZW4gJSA0ICE9IDAgPyAxIDogMCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4 MzAwLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9oODMwMC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9oODMwMC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDc4MTQwNzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzE2ODM0NzYyICsw MTAwCi1AQCAtNjM5LDcgKzYzOSw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvaDgzMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAzNTAyODIzICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUxNzUxOTgzNiArMDIwMAorQEAgLTYzNyw3ICs2MzcsNyBAQAogIAkJICAgICAgIGludCBzdHJ1 Y3RfcmV0dXJuLCBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewogICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtNDE2LDcgKzQx Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCiAgICBp bnQgd29yZHNpemUgPSBCSU5XT1JEIChnZGJhcmNoKTsKICAgIGludCByZWcgPSBFX0FSRzBfUkVH TlVNOwogICAgaW50IGFyZ3VtZW50OwotQEAgLTY2NiwxMSArNjY2LDExIEBACitAQCAtNjY0LDEx ICs2NjQsMTEgQEAKICAgICAgewogICAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1thcmd1bWVudF0pOwpAQCAt NDMwLDcgKzQyNiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRl cC5jCiAgICAgICAgZ2RiX2J5dGUgKnBhZGRlZCA9IChnZGJfYnl0ZSAqKSB4bWFsbG9jIChwYWRk ZWRfbGVuKTsKICAgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcGFkZGVkKTsK ICAKLUBAIC02OTksNyArNjk5LDcgQEAKK0BAIC02OTcsNyArNjk3LDcgQEAKICAJICAgICAgLyog SGVhdmVucyB0byBCZXRzeSAtLS0gaXQncyByZWFsbHkgZ29pbmcgaW4gcmVnaXN0ZXJzIQogIAkg ICAgICAgICBOb3RlIHRoYXQgb24gdGhlIGg4LzMwMHMsIHRoZXJlIGFyZSBnYXBzIGJldHdlZW4g dGhlCiAgCSAgICAgICAgIHJlZ2lzdGVycyBpbiB0aGUgcmVnaXN0ZXIgZmlsZS4gICovCkBAIC00 MzksMTEgKzQzNSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRk ZXAuYwogIAogIAkgICAgICBmb3IgKG9mZnNldCA9IDA7IG9mZnNldCA8IHBhZGRlZF9sZW47IG9m ZnNldCArPSB3b3Jkc2l6ZSkKICAJCXsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv aHBwYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9ocHBhLXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwOTgxNDA4NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNzgzNDc2NyArMDEw MAotQEAgLTk5NSw3ICs5OTUsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L2hwcGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDA1NTAyODM5ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2hwcGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE4 NTE5ODQ0ICswMjAwCitAQCAtOTkxLDcgKzk5MSw3IEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg dmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90 eXBlIChhcmcpOwpAQCAtNDUyLDcgKzQ0OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYnVmOwogICAgICAg IGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAgICAgaW50IHJlZ251bTsKLUBAIC0xMTkwLDcgKzEx OTAsNyBAQAorQEAgLTExODYsNyArMTE4Niw3IEBACiAgCQkgICAgIHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgICBnZGJfYnl0ZSAqcmVhZGJ1Ziwg Y29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsKQEAgLTQ2MSwxMCArNDU3LDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMKICAgIGludCByZWdudW0sIG9m ZnNldDsKICAKICAgIGlmIChsZW4gPiAxNikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kz ODYtZGFyd2luLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwOTgxNDA4NSAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoyMC4zMTc4MzQ3NjcgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDU1MDI4 MzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE4NTE5ODQ0ICswMjAwCiBAQCAtMTYzLDcgKzE2Myw3IEBA CiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysr KQpAQCAtNDc0LDExICs0NzAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9p Mzg2LWRhcndpbi10ZGVwLmMKICAgICAgICBpbnQgbnVtX20xMjggPSAwOwogIAogICAgICAgIGlm IChzdHJ1Y3RfcmV0dXJuKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRk ZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MTYuNjE1ODE0MTE4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2kzODYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzE5ODM0Nzc4ICswMTAwCi1AQCAt MjY2Myw3ICsyNjYzLDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pMzg2 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMDUwMjg3OSArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2 MCArMDIwMAorQEAgLTI2NjQsNyArMjY2NCw3IEBACiAgICBnZGJfYnl0ZSBidWZbNF07CiAgICBp bnQgaTsKICAgIGludCB3cml0ZV9wYXNzOwpAQCAtNDg3LDcgKzQ4Myw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0aGUg dG90YWwgc3BhY2UgcmVxdWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQgc3RydWN0CiAgICAgICByZXR1 cm4gYWRkcmVzcyBpbiBhIGZpcnN0IHBhc3MgKGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWduZWQK LUBAIC0yNjcxLDcgKzI2NzEsNyBAQAorQEAgLTI2NzIsNyArMjY3Miw3IEBACiAgCiAgICBmb3Ig KHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBA IC00OTYsNyArNDkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRk ZXAuYwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQogIAl7Ci1AQCAtMjY4OCw3ICsyNjg4 LDcgQEAKK0BAIC0yNjg5LDcgKzI2ODksNyBAQAogIAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBu YXJnczsgaSsrKQogIAl7CkBAIC01MDUsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogIAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewot QEAgLTI4OTUsNyArMjg5NSw3IEBACitAQCAtMjg5Niw3ICsyODk2LDcgQEAKICB7CiAgICBzdHJ1 Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0g dHlwZV9jb2RlIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwpAQCAtNTE0LDcgKzUxMCw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGdkYl9hc3Nl cnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVDVAogICAgICAgICAgICAgICAgfHwgY29kZSA9PSBU WVBFX0NPREVfVU5JT04KLUBAIC0zNjQxLDcgKzM2NDEsNyBAQAorQEAgLTM3MTgsNyArMzcxOCw3 IEBACiAgaTM4Nl9jb252ZXJ0X3JlZ2lzdGVyX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAog IAkJCSBpbnQgcmVnbnVtLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBAIC01MjMsNyArNTE5LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyog VmFsdWVzIG1heSBiZSBzcHJlYWQgYWNyb3NzIG11bHRpcGxlIHJlZ2lzdGVycy4gIE1vc3QgZGVi dWdnaW5nCiAgICAgICBmb3JtYXRzIGFyZW4ndCBleHByZXNzaXZlIGVub3VnaCB0byBzcGVjaWZ5 IHRoZSBsb2NhdGlvbnMsIHNvCi1AQCAtMzY3NCw3ICszNjc0LDcgQEAKK0BAIC0zNzUxLDcgKzM3 NTEsNyBAQAogIAkJCWludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApCiAgewogICAg c3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwpAQCAtNTMy LDcgKzUyOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMK ICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQogICAgICByZXR1 cm4gaTM4N19yZWdpc3Rlcl90b192YWx1ZSAoZnJhbWUsIHJlZ251bSwgdHlwZSwgdG8sCi1AQCAt MzcxMCw3ICszNzEwLDcgQEAKK0BAIC0zNzg3LDcgKzM3ODcsNyBAQAogIGkzODZfdmFsdWVfdG9f cmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKICAJCQlzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKmZyb20pCiAgewpAQCAtNTQxLDExICs1Mzcs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAg aWYgKGkzODZfZnBfcmVnbnVtX3AgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksIHJlZ251bSkpCiAg ICAgIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaXEyMDAwLXRkZXAuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjE2LjYxNjgxNDEyNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9p cTIwMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIwODM0Nzg0ICswMTAwCi1AQCAtNjUx LDggKzY1MSw5IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaXEyMDAwLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMTUwMjg4NyArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTIwNTE5ODYw ICswMjAwCitAQCAtNjQ2LDggKzY0Niw5IEBACiAgICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAg YmZkX2J5dGUgYnVmWzRdOwogICAgc3RydWN0IHR5cGUgKnR5cGU7CkBAIC01NTcsMTEgKzU1Mywx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2lxMjAwMC10ZGVwLmMKICAgIC8q IFVzZWQgdG8gY29weSBzdHJ1Y3QgYXJndW1lbnRzIGludG8gdGhlIHN0YWNrLiAgKi8KICAgIENP UkVfQUREUiBzdHJ1Y3RfcHRyOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9t MzJyLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMzJyLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL20zMnItdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MTYuNjE2ODE0MTI0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIwODM0Nzg0ICswMTAw Ci1AQCAtNjg3LDcgKzY4Nyw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv bTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTE1MDI4ODcgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvbTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1 MTk4NjAgKzAyMDAKK0BAIC02ODUsNyArNjg1LDcgQEAKICAgIENPUkVfQUREUiByZWd2YWw7CiAg ICBnZGJfYnl0ZSAqdmFsOwogICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsK QEAgLTU3MCwxMCArNTY2LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTMy ci10ZGVwLmMKICAKICAgIC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdubWVudC4g ICovCiAgICBzcCA9IHNwICYgfjM7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL202 OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL202OGstdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbTY4ay10ZGVwLmMJ MjAxNi0wMS0wOCAxOToxNjoxNi42MTc4MTQxMjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbTY4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjA4MzQ3ODQgKzAxMDAK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9t NjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAogQEAgLTM4Miw3 ICszODIsNyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3Rk ZXAgKGdkYmFyY2gpOwpAQCAtNTk2LDEwICs1OTIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9tNjhrLXRkZXAuYwogIAogICAgICAgIC8qIE5vbi1zY2FsYXJzIGJpZ2dlciB0 aGFuIDQgYnl0ZXMgYXJlIGxlZnQgYWxpZ25lZCwgb3RoZXJzIGFyZQogIAkgcmlnaHQgYWxpZ25l ZC4gICovCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL204OGstdGRlcC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL204OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoxNi42MTc4MTQxMjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTg4ay10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjE4MzQ3OTAgKzAxMDAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUw Mjg5NSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ3LjUyMTUxOTg2OCArMDIwMAogQEAgLTI1NywxMyArMjU3LDEzIEBACiAg ewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2Fj aGUpOwpAQCAtNjI3LDEwICs2MjMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9tODhrLXRkZXAuYwogIAogICAgICAgIGlmIChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQog IAl7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21lcC10ZGVwLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42 MTg4MTQxMzUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWVwLXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjIwLjMyMTgzNDc5MCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTM1MDI5MDMgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVwLXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ3LjUyMTUxOTg2OCArMDIwMAogQEAgLTIyNzIsNyArMjI3Miw3IEBACiAgCiAgICBmb3Ig KGkgPSAwOyBpIDwgYXJnYzsgaSsrKQpAQCAtNjQwLDEwICs2MzYsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9tZXAtdGRlcC5jCiAgCiAgICAgICAgaWYgKGFyZ19sZW4gPiBN RVBfR1BSX1NJWkUpCiAgICAgICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L21pcHMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbWlwcy10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MjY4MTQxNzkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAx MDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQyMTUwMjk2NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMzUxOTg4NCArMDIwMAogQEAgLTQ1 NSw3ICs0NTUsNyBAQAogIG1pcHNfeGZlcl9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkgICAgaW50IHJlZ19udW0sIGludCBs ZW5ndGgsCkBAIC02NjQsNyArNjYwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9taXBzLXRkZXAuYwogICAgaWYgKG1pcHNfZGVidWcgJiYgb3V0ICE9IE5VTEwpCiAgICAgIHsK ICAgICAgICBpbnQgaTsKLUBAIC00NTU0LDEzICs0NTU0LDEzIEBACitAQCAtNDUyOSwxMyArNDUy OSwxMyBAQAogICAgICAgIGdkYl9ieXRlIHZhbGJ1ZltNQVhfUkVHSVNURVJfU0laRV07CiAgICAg ICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUg KmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC02ODEsNyAr Njc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogIAog ICAgICAgIC8qIFRoZSBFQUJJIHBhc3NlcyBzdHJ1Y3R1cmVzIHRoYXQgZG8gbm90IGZpdCBpbiBh IHJlZ2lzdGVyIGJ5CiAgICAgICAgICAgcmVmZXJlbmNlLiAgKi8KLUBAIC00ODI5LDcgKzQ4Mjks NyBAQAorQEAgLTQ4MDQsNyArNDgwNCw3IEBACiAgCiAgc3RhdGljIGludAogIG1pcHNfbjMybjY0 X2ZwX2FyZ19jaHVua19wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKmFy Z190eXBlLApAQCAtNjkwLDcgKzY4Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvbWlwcy10ZGVwLmMKICB7CiAgICBpbnQgaTsKICAKLUBAIC00ODQ0LDcgKzQ4NDQsNyBAQAor QEAgLTQ4MTksNyArNDgxOSw3IEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERT IChhcmdfdHlwZSk7IGkrKykKICAgICAgewpAQCAtNjk5LDcgKzY5NSw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmll bGRfdHlwZTsKICAKICAgICAgICAvKiBXZSdyZSBvbmx5IGxvb2tpbmcgYXQgbm9ybWFsIGZpZWxk cy4gICovCi1AQCAtNDg4Niw3ICs0ODg2LDcgQEAKK0BAIC00ODYxLDcgKzQ4NjEsNyBAQAogICAg aW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzA4 LDcgKzcwNCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMK ICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9 IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTUyMzcsMTEgKzUyMzcs MTEgQEAKK0BAIC01MjEyLDExICs1MjEyLDExIEBACiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwog IAkgICBmaWVsZCA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQog IAl7CkBAIC03MjQsNyArNzIwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9t aXBzLXRkZXAuYwogIAkgIGlmIChUWVBFX0xFTkdUSCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBm aWVsZCkpID09IDE2KQogIAkgICAgewogIAkgICAgICAvKiBBIDE2LWJ5dGUgbG9uZyBkb3VibGUg ZmllbGQgZ29lcyBpbiB0d28gY29uc2VjdXRpdmUKLUBAIC01MjgzLDggKzUyODMsOCBAQAorQEAg LTUyNTgsOCArNTI1OCw4IEBACiAgCSAgaWYgKG9mZnNldCArIHhmZXIgPiBUWVBFX0xFTkdUSCAo dHlwZSkpCiAgCSAgICB4ZmVyID0gVFlQRV9MRU5HVEggKHR5cGUpIC0gb2Zmc2V0OwogIAkgIGlm IChtaXBzX2RlYnVnKQpAQCAtNzM1LDcgKzczMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAJICBtaXBzX3hmZXJfcmVnaXN0ZXIgKGdkYmFyY2gsIHJl Z2NhY2hlLAogIAkJCSAgICAgIGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgcmVnbnVtLAog IAkJCSAgICAgIHhmZXIsIEJGRF9FTkRJQU5fVU5LTk9XTiwgcmVhZGJ1Ziwgd3JpdGVidWYsCi1A QCAtNTM0Miw3ICs1MzQyLDcgQEAKK0BAIC01MzE3LDcgKzUzMTcsNyBAQAogICAgaW50IGFyZ3Jl ZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzQ0LDcgKzc0MCw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGludCBz dGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVu Y3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTU0MDYsMTMgKzU0MDYsMTMgQEAKK0BA IC01MzgxLDEzICs1MzgxLDEzIEBACiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgICAg ICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAq YXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTc2MSw3ICs3 NTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCiAg ICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1AQCAtNTg3MCw4ICs1ODcwLDgg QEAKK0BAIC01ODQyLDggKzU4NDIsOCBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9h cmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzcyLDcgKzc2OCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2Fk ZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAKLUBAIC01OTMxLDEz ICs1OTMxLDEzIEBACitAQCAtNTkwMywxMyArNTkwMywxMyBAQAogICAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAg ICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn KSk7CkBAIC03ODksMTEgKzc4NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21uMTAzMDAtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoxNi42Mjc4MTQxODUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbW4xMDMw MC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKLUBAIC0xMjI3LDcg KzEyMjcsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21uMTAzMDAtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDIyNTAyOTc2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODky ICswMjAwCitAQCAtMTIyNSw3ICsxMjI1LDcgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGNvbnN0IGludCBwdXNoX3Np emUgPSByZWdpc3Rlcl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05VTSk7CiAgICBpbnQgcmVnc191 c2VkOwpAQCAtODAyLDExICs3OTgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9tbjEwMzAwLXRkZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBpbnQgYXJnbnVt OwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvbXQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL210LXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL210LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjE2LjYyODgxNDE5MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9tdC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKLUBA IC03ODEsOSArNzgxLDkgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tdC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MjM1MDI5ODQgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvbXQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICsw MjAwCitAQCAtNzgwLDkgKzc4MCw5IEBACiAgICBnZGJfYnl0ZSBidWZbTVRfTUFYX1NUUlVDVF9T SVpFXTsKICAgIGludCBhcmdyZWcgPSBNVF8xU1RfQVJHUkVHOwogICAgaW50IHNwbGl0X3BhcmFt X2xlbiA9IDA7CkBAIC04MTgsMTAgKzgxNCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL210LXRkZXAuYwogICAgaW50IGksIGo7CiAgCiAgICAvKiBGaXJzdCBoYW5kbGUgaG93 ZXZlciBtYW55IGFyZ3Mgd2UgY2FuIGZpdCBpbnRvIE1UXzFTVF9BUkdSRUcgdGhydQotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9wcGMtc3lzdi10ZGVwLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MTYuNjI5ODE0MTk2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3BwYy1zeXN2 LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyNTgzNDgxMiArMDEwMAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQyNDUwMjk5MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMtc3lzdi10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjQ1MTk4OTIgKzAyMDAKIEBAIC02Niw3ICs2Niw3 IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CiAgICBpbnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2 YWx1ZV90eXBlIChmdW5jdGlvbikpOwpAQCAtODY2LDEwICs4NjIsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAKICAgIC8qIEVuZm9yY2UgYWxp Z25tZW50IG9mIHN0YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQuICAqLwogICAgaWYgKGFsaWdu ID4gdGRlcC0+d29yZHNpemUpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgt dGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JsNzgtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoxNi42Mjk4MTQxOTYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjU4MzQ4MTIgKzAxMDAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ1LjQyNDUwMjk5MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ybDc4 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCArMDIwMAogQEAgLTEzMzYsOCAr MTMzNiw4IEBACiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CkBA IC04ODEsMTAgKzg3NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgt dGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1v cnkgKHJsNzhfbWFrZV9kYXRhX2FkZHJlc3MgKHNwKSwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvcnM2MDAwLWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzMDgxNDIw MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9yczYwMDAtYWl4LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjIwLjMyNjgzNDgxNyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI1NTAz MDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI1NTE5OTAwICswMjAwCiBAQCAtMTg2LDkgKzE4Niw5IEBA CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJh cmNoKTsKQEAgLTg5Nyw3ICs4OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3JzNjAwMC1haXgtdGRlcC5jCiAgICBnZGJfYnl0ZSB0bXBfYnVmZmVyWzUwXTsKICAgIGludCBm X2FyZ25vID0gMDsJCS8qIGN1cnJlbnQgZmxvYXRpbmcgcG9pbnQgYXJnbm8gKi8KICAgIGludCB3 b3Jkc2l6ZSA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPndvcmRzaXplOwotQEAgLTMyMSw3ICsz MjEsNyBAQAorQEAgLTMxOSw3ICszMTksNyBAQAogIAogICAgaWYgKChhcmdubyA8IG5hcmdzKSB8 fCBhcmdieXRlcykKICAgICAgewpAQCAtOTA2LDExICs5MDIsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9yczYwMDAtYWl4LXRkZXAuYwogIAogICAgICAgIGlmIChhcmdieXRl cykKICAJewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3MzOTAtbGludXgtdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjMyODE0MjEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI4ODM0 ODI5ICswMTAwCi1AQCAtMjk4MSw3ICsyOTgxLDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNzUwMzAx NiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ3LjUyNjUxOTkwOCArMDIwMAorQEAgLTMxMjUsNyArMzEyNSw3IEBA CiAgLyogRGV0ZXJtaW5lIHdoZXRoZXIgTiBpcyBhIHBvd2VyIG9mIHR3by4gICovCiAgCiAgc3Rh dGljIGludApAQCAtOTE5LDcgKzkxNSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvczM5MC1saW51eC10ZGVwLmMKICB7CiAgICByZXR1cm4gbiAmJiAoKG4gJiAobiAtIDEpKSA9 PSAwKTsKICB9Ci1AQCAtMzAzOCw3ICszMDM4LDcgQEAKK0BAIC0zMTgyLDcgKzMxODIsNyBAQAog IAkJIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyLCBpbnQgaXNfdW5uYW1lZCkKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAt OTI4LDEwICs5MjQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxp bnV4LXRkZXAuYwogICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVnY2FjaGUgIT0gTlVMTDsKICAK ICAgIGlmIChzMzkwX2Z1bmN0aW9uX2FyZ19mbG9hdCAodHlwZSkpCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Njb3JlLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zY29yZS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi9zY29yZS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MzM4MTQyMTggKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDEtMDggMTk6 MTY6MjAuMzI4ODM0ODI5ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv c2NvcmUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI4NTAzMDI0ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Njb3JlLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUy NzUxOTkxNiArMDIwMAogQEAgLTUxNCw3ICs1MTQsNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5 dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ251bTsK QEAgLTk0MSwxMCArOTM3LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2Nv cmUtdGRlcC5jCiAgICBDT1JFX0FERFIgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIENPUkVfQUREUiBh ZGRyID0gMDsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2gtdGRlcC5jCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3NoLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2 OjE2LjYzNTgxNDIzMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjk4MzQ4MzQgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mjk1MDMwMzIg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDcuNTI3NTE5OTE2ICswMjAwCiBAQCAtODA1LDcgKzgwNSw3IEBACiAgc3RhdGljIGlu dAogIHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlw ZSAqdHlwZSkKQEAgLTk4MywyMCArOTc5LDIwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFzc19vbl9zdGFjayA9IDA7CiAgICBpbnQgbGFzdF9y ZWdfYXJnID0gSU5UX01BWDsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2g2 NC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zaDY0LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjE2LjYzNTgxNDIzMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9zaDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyOTgzNDgzNCArMDEwMAot QEAgLTEwNTYsNyArMTA1Niw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv c2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzA1MDMwNDAgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1 MTk5MjUgKzAyMDAKK0BAIC0xMDYwLDcgKzEwNjAsNyBAQAogIAkJICAgICAgQ09SRV9BRERSIHN0 cnVjdF9hZGRyKQogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9i eXRlX29yZGVyIChnZGJhcmNoKTsKIC0gIGludCBzdGFja19vZmZzZXQsIHN0YWNrX2FsbG9jOwog KyAgTE9OR0VTVCBzdGFja19vZmZzZXQsIHN0YWNrX2FsbG9jOwogICAgaW50IGludF9hcmdyZWc7 Ci0gICBpbnQgZmxvYXRfYXJncmVnOwotICAgaW50IGRvdWJsZV9hcmdyZWc7Ci1AQCAtMTA2Nyw3 ICsxMDY3LDcgQEAKKyAgIGludCBmbG9hdF9hcmdfaW5kZXggPSAwOworICAgaW50IGRvdWJsZV9h cmdfaW5kZXggPSAwOworQEAgLTEwNjksNyArMTA2OSw3IEBACiAgICBDT1JFX0FERFIgcmVndmFs OwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIHZhbGJ1Zls4XTsKQEAgLTEw MDUsMTAgKzEwMDEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaDY0LXRk ZXAuYwogICAgaW50IGFyZ3JlZ19zaXplOwogICAgaW50IGZwX2FyZ3NbMTJdOwogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcGFyYy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNjAxMDYub3JpZy9nZGIvc3BhcmMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM2ODE0 MjM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2 LTAxLTA4IDE5OjE2OjIwLjMzMDgzNDg0MCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMTUwMzA0OCArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYy10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAKIEBAIC01MjUsNyArNTI1LDcgQEAKICAgIGZvciAoaSA9 IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0xMDE4LDEwICsxMDE0LDEwIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmMtdGRlcC5jCiAgCiAgICAgICAgaWYgKHNw YXJjX3N0cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQogIAkgIHx8IChzcGFyY19mbG9hdGluZ19w ICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Nw YXJjNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwYXJjNjQtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3BhcmM2 NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mzc4MTQyNDEgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzA4 MzQ4NDAgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zcGFyYzY0LXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMjUwMzA1NiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyODUxOTky NSArMDIwMAogQEAgLTYzNiw3ICs2MzYsOCBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0xMDc3LDEw ICsxMDczLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmM2NC10ZGVw LmMKICAgICAgICBpbnQgcmVnbnVtID0gLTE7CiAgICAgICAgZ2RiX2J5dGUgYnVmWzE2XTsKICAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3B1LXRkZXAuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzODgx NDI0NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcHUtdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MjAuMzMxODM0ODQ1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6 NDcuNTI5NTE5OTMyICswMjAwCiBAQCAtMTQyOSw3ICsxNDI5LDcgQEAKICAgICAgICBzdHJ1Y3Qg dmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTEwOTksMTEgKzEwOTUsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJlZF9z bG90OwogIAkgIAogIAkgIGlmIChzcHVfc2NhbGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGljNngtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM5ODE0MjUy ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTAx LTA4IDE5OjE2OjIwLjMzMjgzNDg1MSArMDEwMAotQEAgLTg5NSw3ICs4OTUsNyBAQAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ1LjQzMzUwMzA2NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWM2eC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjk1MTk5MzIgKzAyMDAKK0BAIC04OTIsNyArODky LDcgQEAKICAgIGludCBhcmdyZWcgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGludCBzdGFja19v ZmZzZXQgPSA0OwpAQCAtMTExMiw3ICsxMTA4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90aWM2eC10ZGVwLmMKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0 aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVy ID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIHN0cnVjdCB0eXBlICpmdW5jX3R5 cGUgPSB2YWx1ZV90eXBlIChmdW5jdGlvbik7Ci1AQCAtOTI5LDcgKzkyOSw3IEBACitAQCAtOTI2 LDcgKzkyNiw3IEBACiAgICAvKiBOb3cgbWFrZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSBh cmdzLiAgKi8KICAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQog ICAgICB7CkBAIC0xMTIxLDcgKzExMTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3RpYzZ4LXRkZXAuYwogICAgICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJl ZmVyZW5jZXNfb2Zmc2V0ICs9IGxlbjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAg LTk0OCw3ICs5NDgsNyBAQAorQEAgLTk0NSw3ICs5NDUsNyBAQAogICAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAg ICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJn KSk7CkBAIC0xMTMwLDcgKzExMjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3RpYzZ4LXRkZXAuYwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RF IChhcmdfdHlwZSk7CiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7Ci1AQCAt MTEwOCw3ICsxMTA4LDggQEAKK0BAIC0xMTA1LDcgKzExMDUsOCBAQAogIAkgICAgfQogIAkgIGVs c2UKICAJICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMTQwLDIz ICsxMTM2LDIzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGljNngtdGRlcC5j CiAgCiAgCSAgYWRkciA9IHNwICsgc3RhY2tfb2Zmc2V0OwogIAkgIHdyaXRlX21lbW9yeSAoYWRk ciwgdmFsLCBsZW4pOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWxlZ3gtdGRl cC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIw MTYtMDEtMDggMTk6MTY6MTYuNjQwODE0MjU3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDM0NTAzMDcyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3RpbGVneC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0y ODgsNyArMjg4LDcgQEAKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CiAgICBpbnQgYXJn cmVnID0gVElMRUdYX1IwX1JFR05VTTsKICAgIGludCBpLCBqOwotLSAgaW50IHR5cGVsZW4sIHNs YWNrbGVuLCBhbGlnbmxlbjsKLSsgIExPTkdFU1QgdHlwZWxlbiwgc2xhY2tsZW4sIGFsaWdubGVu OworLSAgaW50IHR5cGVsZW4sIHNsYWNrbGVuOworKyAgTE9OR0VTVCB0eXBlbGVuLCBzbGFja2xl bjsKICAgIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSBmb3VyX3plcm9fd29yZHNbMTZdID0geyAwIH07 CiAgCiAgICAvKiBJZiBzdHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4gdGhlIHN0cnVjdCByZXR1cm4g YWRkcmVzcyB3aWxsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4NTAtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoxNi42NDA4MTQyNTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv djg1MC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92ODUwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQzNDUwMzA3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92ODUwLXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAogQEAgLTEwMTksNyArMTAxOSw3 IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CiAgICBpbnQgYXJncmVnOwpAQCAtMTE3NSwxMCArMTE3MSwxMCBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnZh bDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42NDE4MTQyNjMgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmF4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2 OjIwLjMzMzgzNDg1NiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Zh eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzU1MDMwODAgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdmF4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMDUxOTk0 MSArMDIwMAogQEAgLTExMSw3ICsxMTEsNyBAQAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gg PSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTE5NywxMCArMTE5Mywx MCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10ZGVwLmMKICAKICAgICAg ICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBjb3VudCArPSAobGVuICsgMykgLyA0Owot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDEt MDggMTk6MTY6MTYuNjQxODE0MjYzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzM4MzQ4NTYgKzAxMDAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDM1NTAzMDgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3hzdG9ybXkxNi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBA IC0yMzMsOCArMjMzLDkgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CkBA IC0xMjEzLDEwICsxMjA5LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHN0 b3JteTE2LXRkZXAuYwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIGJ1Zlt4 c3Rvcm15MTZfcGNfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3h0 ZW5zYS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3h0ZW5zYS10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42NDM4MTQyNzQgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzNDgzNDg2 MiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS40Mzc1MDMwOTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIveHRlbnNhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMTUxOTk0OSArMDIw MAogQEAgLTE2MzgsOCArMTYzOCw3IEBACiAgCiAgICAgICAgaWYgKGxlbiA+IChjYWxsc2l6ZSA+ IDggPyA4IDogMTYpKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUu cGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBhdGNoCmluZGV4IDIwZGI5MTUu LmVmNWUwNDggMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gK KysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRjaApAQCAtNDcsMTEgKzQ3LDEx IEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mNzctYm91 bmRzLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjI1OjE0 LjIzMzE2MTA5NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuaAky MDE1LTExLTAyIDIxOjI1OjIyLjQwNDIxNDg2MCArMDEwMAotQEAgLTYyLDkgKzYyLDkgQEAgc3Ry dWN0IGNvbW1vbl9ibG9jaworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2YtbGFu Zy5oCTIwMTYtMDctMTYgMTA6NTY6MTEuNjgyNzYyNzIyICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTA6NTY6MTUuNTU0NzkzNzA0ICswMjAw CitAQCAtNDksOSArNDksOSBAQAogICAgc3RydWN0IHN5bWJvbCAqY29udGVudHNbMV07CiAgfTsK ICAKQEAgLTYzLDM4ICs2MywzOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Yt bGFuZy5oCiAgCiAgZXh0ZXJuIHZvaWQgZjc3X2dldF9keW5hbWljX2FycmF5X2xlbmd0aCAoc3Ry dWN0IHR5cGUgKik7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXBy aW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJ MjAxNS0xMS0wMiAyMToyNToxNC4yMzQxNjExMDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1OjIyLjQwNDIxNDg2MCArMDEw MAotQEAgLTE3MSw3ICsxNzEsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVj dCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZi10eXBlcHJpbnQuYwky MDE2LTA3LTE2IDEwOjU2OjExLjY4Mjc2MjcyMiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTA6NTY6NDMuNzk1MDE5NjYwICswMjAw CitAQCAtMTQ3LDcgKzE0Nyw3IEBACiAgCQkJICAgICBpbnQgc2hvdywgaW50IHBhc3NlZF9hX3B0 ciwgaW50IGRlbWFuZ2xlZF9hcmdzLAotIAkJCSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJzZV9s ZXZlbCkKKyAJCQkgICAgIGludCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwsIGludCBwcmludF9y YW5rX29ubHkpCiAgewogLSAgaW50IHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKICsgIExPTkdF U1QgdXBwZXJfYm91bmQsIGxvd2VyX2JvdW5kOwogIAogICAgLyogTm8gc3RhdGljIHZhcmlhYmxl cyBhcmUgcGVybWl0dGVkIGFzIGFuIGVycm9yIGNhbGwgbWF5IG9jY3VyIGR1cmluZwogICAgICAg ZXhlY3V0aW9uIG9mIHRoaXMgZnVuY3Rpb24uICAqLwotQEAgLTIwNCw3ICsyMDQsNyBAQCBmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCi0gCi0gICAgICAgICAgIGxvd2Vy X2JvdW5kID0gZjc3X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKLSAgICAgICAgICAgaWYgKGxvd2Vy X2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCi0tICAgICAgICAgICAgZnByaW50 Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQpOwotKyAgICAgICAgICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzOiIsIHBsb25nZXN0IChsb3dlcl9ib3VuZCkpOwor QEAgLTE5NCw3ICsxOTQsNyBAQAorIAl7CisgCSAgbG93ZXJfYm91bmQgPSBmNzdfZ2V0X2xvd2Vy Ym91bmQgKHR5cGUpOworIAkgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1 bHQuICAqLworLQkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91 bmQpOworKwkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJXM6IiwgcGxvbmdlc3QgKGxv d2VyX2JvdW5kKSk7CiAgCi0gICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZl IGFuIGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UKLSAgICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2Fy bmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KLUBAIC0yMTQsNyArMjE0 LDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQotICAgICAgICAg ICBlbHNlCi0gICAgICAgICAgICAgewotICAgICAgICAgICAgICAgdXBwZXJfYm91bmQgPSBmNzdf Z2V0X3VwcGVyYm91bmQgKHR5cGUpOwotLSAgICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7Ci0rICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1cHBlcl9ib3VuZCkpOwotICAgICAgICAgICAg IH0KKyAJICAvKiBNYWtlIHN1cmUgdGhhdCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJy YXksIHdlCisgCSAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91 bmQgYXMgJyonLiAgKi8KK0BAIC0yMDQsNyArMjA0LDcgQEAKKyAJICBlbHNlCisgCSAgICB7Cisg CSAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKy0JICAgICAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7CisrCSAgICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzIiwgcGxvbmdlc3QgKHVwcGVyX2JvdW5kKSk7Cisg CSAgICB9CisgCX0KICAKLSAgICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKLUBAIC0yODMsNyArMjgzLDcgQEAgdm9pZAor QEAgLTI3Niw3ICsyNzYsNyBAQAogIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3csCiAgCQkgICBpbnQgbGV2ZWwpCiAg ewpAQCAtMTAzLDcgKzEwMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10 eXBlcHJpbnQuYwogICAgaW50IGluZGV4OwogIAogICAgUVVJVDsKLUBAIC0zNjUsNyArMzY1LDcg QEAgZl90eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdAorQEAgLTM1OCw3ICsz NTgsNyBAQAogICAgICAgIGVsc2UKICAJewogIAkgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBl cmJvdW5kICh0eXBlKTsKQEAgLTExMiwxMSArMTEyLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwogIAl9CiAgICAgICAgYnJlYWs7CiAgCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyNToxNC4yMzQxNjEx MDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCTIwMTUt MTEtMDIgMjE6MjU6MjIuNDA1MjE0ODY3ICswMTAwCi1AQCAtNDMsNyArNDMsNyBAQCBMT05HRVNU IGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9GT1JUUkFOCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2 MzAub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTYtMDctMTYgMTA6NTY6MTEuNjgyNzYyNzIyICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2 IDEwOjU2OjE1LjU1NDc5MzcwNCArMDIwMAorQEAgLTQzLDcgKzQzLDcgQEAKICAvKiBBcnJheSB3 aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMK ICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFj aCBzdWJhcnJheS4gICovCiAgCkBAIC0xMjUsNyArMTI1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0 eXBlICp0eXBlKQogIHsKICAgIGlmIChUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5F RCAodHlwZSkpCi1AQCAtNTIsNyArNTIsNyBAQCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0 eXBlICp0eXBlKQorQEAgLTUyLDcgKzUyLDcgQEAKICAgIHJldHVybiBUWVBFX0FSUkFZX0xPV0VS X0JPVU5EX1ZBTFVFICh0eXBlKTsKICB9CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLWxhenl2YWx1ZS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUu cGF0Y2gKaW5kZXggMzE5NzhlYy4uODAyNWUyZCAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLWxhenl2YWx1ZS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtbGF6eXZh bHVlLnBhdGNoCkBAIC0xLDE5ICsxLDcgQEAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvdmFsdWUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2Ri L3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzoxNzowNC4wNDIxNDM2MjggKzAyMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwkyMDE1LTEwLTI0IDIzOjE3OjI3LjY4NzMwMDY4OSAr MDIwMAotQEAgLTkzNCw3ICs5MzQsNiBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlw ZSAqdHlwZSkKLSAgICAgIGRlc2NyaXB0aW9uIGNvcnJlY3RseS4gICovCi0gICBjaGVja190eXBl ZGVmICh0eXBlKTsKLSAKLS0gIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5H VEggKHR5cGUpKTsKLSAgIHZhbCA9IFhDTkVXIChzdHJ1Y3QgdmFsdWUpOwotICAgdmFsLT5jb250 ZW50cyA9IE5VTEw7Ci0gICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5l eHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xv bmdlc3QtdHlwZXMtNjRiaXQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAkyMDE1LTEwLTI0IDIz OjE3OjA0LjA0MjE0MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAJMjAxNi0wNy0wMyAxNTowMDo1 Ny42MTczNDc4NTAgKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIFRoaXMgdGVzdGNhc2UgaXMg cGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC00NSw4ICszMyw4IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlw ZXMtNjRiaXQuZXhwCiArCiArIyBUZXN0IDY0LWJpdCBmaWxlIGZpcnN0IGFzIGl0IGlzIG5vdCBj b21waWxlZCBzbyBpdHMgY29tcGlsYXRpb24gbmV2ZXIgZmFpbHMuCiArCi0rc2V0IGZpbGU2NGJp dGJ6MnV1ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tNjRiaXQuYnoyLnV1Ci0rc2V0 IGZpbGU2NGJpdCAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LTY0Yml0Cisrc2V0IGZp bGU2NGJpdGJ6MnV1ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0uYnoyLnV1Cisrc2V0 IGZpbGU2NGJpdCAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CiArCiAraWYge1tjYXRj aCAic3lzdGVtIFwidXVkZWNvZGUgLW8gLSAke2ZpbGU2NGJpdGJ6MnV1fSB8IGJ6aXAyIC1kYyA+ JHtmaWxlNjRiaXR9XCIiXSAhPSAwfSB7CiArICAgIHVudGVzdGVkICJmYWlsZWQgdXVkZWNvZGUg b3IgYnppcDIiCkBAIC02MCw3ICs0OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCiArCiArY2xlYW5f cmVzdGFydCAke2ZpbGU2NGJpdH0KICsKLSsjaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rl c3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0tNjRiaXQgJHNyY2ZpbGUyIHtub2RlYnVnfV0gfSB7Cisr I2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICRz cmNmaWxlMiB7bm9kZWJ1Z31dIH0gewogKyMgICAgcmV0dXJuIC0xCiArI30KICsKQEAgLTc0LDEw ICs2MiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAogK30KICsKICt0ZXN0ICJuYXRpdmUiCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5 cGVzLTY0Yml0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jCTIwMTUtMTAt MjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMJMjAxNi0wNy0wMyAxNTow MDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTA3LDEwICs5NSwxMCBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25n ZXN0LXR5cGVzLTY0Yml0LmMKICt7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdl c3QtdHlwZXMtNjRiaXQuUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5TCTIwMTUtMTAtMjQgMjM6MTc6MDQu MDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4 NTkgKzAyMDAKIEBAIC0wLDAgKzEsMjQ5IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTM2MSwxMCArMzQ5LDEwIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMt NjRiaXQuUwogKwkuc3RyaW5nCSJjaGFyIgogKwkuaWRlbnQJIkdDQzogKEdOVSkgNC43LjMgMjAx MjExMDkgKHByZXJlbGVhc2UpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2di aXRzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9s b25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51dQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5iejIudXUKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlw ZXMtNjRiaXQuYnoyLnV1CTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVz LTY0Yml0LmJ6Mi51dQkyMDE2LTA3LTAzIDE1OjAwOjU3LjYxODM0Nzg1OSArMDIwMAogQEAgLTAs MCArMSw2NyBAQAogK2JlZ2luIDc1NSBnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mgog K00wRUlILjMlITYyOTM2PCdOI09IYCJHL19fX19fX19fXl9fX19fXz9fWV9fX19fXy8vXTdTUUQ1 J14vXyUKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2ggYi9nZGIt dmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDNiOGQ3N2EuLjAwMDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotUmU6IFtQQVRDSCAwNC8yM10gdmxhOiBtYWtl IGR5bmFtaWMgZm9ydHJhbiBhcnJheXMgZnVuY3Rpb25hbC4KLWh0dHBzOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wNi9tc2cwMDU3MC5odG1sCi0KLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMyAyMDo0MTo0OC41NDM1MDQ5 OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwkyMDE1LTEx LTAzIDIwOjQ2OjM2Ljk5NTIzODg4OCArMDEwMAotQEAgLTE5MywxMCArMTkzLDE3IEBAIHZhbHVl X3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKLSAgIHN0cnVjdCB0eXBlICphcnJh eV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKLSAgIHN0cnVjdCB0 eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpKTsKLSAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRf dHlwZSk7Ci0tICB1bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXgg LSBsb3dlcmJvdW5kKTsKLSsgIHVuc2lnbmVkIGludCBlbHRfb2ZmczsKLSAgIExPTkdFU1QgZWx0 X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkp OwotICAgc3RydWN0IHZhbHVlICp2OwotIAotKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKGFy cmF5X3R5cGUpKQotKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9y IG5vdCBhc3NvY2lhdGVkKSIpKTsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKGFycmF5X3R5 cGUpKQotKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBh bGxvY2F0ZWQpIikpOwotKwotKyAgZWx0X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBs b3dlcmJvdW5kKTsKLSsKLSAgIGlmIChlbHRfc3RyaWRlID4gMCkKLSAgICAgZWx0X29mZnMgKj0g ZWx0X3N0cmlkZTsKLSAgIGVsc2UgaWYgKGVsdF9zdHJpZGUgPCAwKQotQEAgLTIxMCwxNCArMjE3 LDcgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgotIAotICAgaWYg KGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJ TkVEIChhcnJheV90eXBlKQotIAkJCSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5p dHMgKGFycmF5X3R5cGUpKSkKLS0gICAgewotLSAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVk IChhcnJheV90eXBlKSkKLS0gICAgICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50 ICh2ZWN0b3Igbm90IGFzc29jaWF0ZWQpIikpOwotLSAgICAgIGVsc2UgaWYgKHR5cGVfbm90X2Fs bG9jYXRlZCAoYXJyYXlfdHlwZSkpCi0tICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3Ig ZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQpIikpOwotLSAgICAgIGVsc2UKLS0gICAgICAg IGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwotLSAgICB9Ci0rICAgIGVycm9y IChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50IikpOwotIAotICAgaWYgKFZBTFVFX0xWQUwgKGFy cmF5KSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5IChhcnJheSkpCi0gICAgIHYgPSBhbGxv Y2F0ZV92YWx1ZV9sYXp5IChlbHRfdHlwZSk7CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0x b2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmI1NzI5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVs LTFvZjcucGF0Y2gKQEAgLTAsMCArMSwxODAgQEAKK0Zyb20gMjZlMTU2ZDYyMjExY2E4NDU4ZmFh MzI2ZjIxOTQwZTlmYTE4YzhmZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJlcm5o YXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMTIgSnVs IDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzddIEZvcnRyYW46IFRlc3Rz dWl0ZSwgZml4IGRpZmZlcmVuY2VzIGluIHR5cGUgbmFtaW5nLgorCitDb250aW51ZWQgb24gMGMx M2Y3ZTU1OWFmZTVmOTczYTU5MzExYjBlNDAxMjk2YzQ4ZDk2YworKGZvcnRyYW46IFRlc3RzdWl0 ZSwgZml4IGRpZmZlcmVudCB0eXBlIG5hbWluZyBhY3Jvc3MgY29tcGlsZXJzKS4KKworMjAxNi0w Ni0wOCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2Ri L1Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBnZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwOiBVc2Ug dHlwZSBuYW1lcyBkZWZpbmVkIGluIGxpYmZvcnRyYW4uCisJKiBnZGIubWkvbWktdmFyLWNoaWxk LWYuZXhwOiBMaWtld2lzZS4KKwkqIGdkYi5taS9taS12bGEtZm9ydHJhbi5leHA6IExpa2V3aXNl LgorCitDaGFuZ2UtSWQ6IEk3ZWU5NDU4N2E5OTJhZGQyN2ZlYzc3Yzc3MjZmOWE2OWM4ZmRmMzcz CistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAgfCAxMiArKysr KysrKy0tLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAgfCAgNyAr KystLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwIHwgMTggKysr KysrKysrKystLS0tLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxNSBk ZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAoraW5k ZXggMDk0NTE4MS4uMjc1ZjczOCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXZhbHVlLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFs dWUuZXhwCitAQCAtMTQsNiArMTQsNyBAQAorICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgCisgc3RhbmRhcmRf dGVzdGZpbGUgInZsYS5mOTAiCisrbG9hZF9saWIgImZvcnRyYW4uZXhwIgorIAorIGlmIHsgW3By ZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0g XAorICAgICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworQEAgLTI1LDEyICsyNiwxNSBAQCBpZiAh W3J1bnRvX21haW5dIHsKKyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgRGVwZW5kaW5nIG9uIHRo ZSBjb21waWxlciBiZWluZyB1c2VkLCB0aGUgdHlwZSBuYW1lcyBjYW4gYmUgcHJpbnRlZCBkaWZm ZXJlbnRseS4KKytzZXQgcmVhbCBbZm9ydHJhbl9yZWFsNF0KKysKKyAjIFRyeSB0byBhY2Nlc3Mg dmFsdWVzIGluIG5vbiBhbGxvY2F0ZWQgVkxBCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZsYTEtaW5pdCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEt aW5pdCIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50 IG5vbi1hbGxvY2F0ZWQgdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBc XFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCg8bm90IGFsbG9jYXRlZD5c XFwpXFxcKVxcXCkgJGhleCIgXAorKyAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwo PG5vdCBhbGxvY2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBub24tYWxsb2Nh dGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9y IGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAorICAgInByaW50IG1lbWJl ciBpbiBub24tYWxsb2NhdGVkIHZsYTEgKDEpIgorQEAgLTUxLDcgKzU1LDcgQEAgd2l0aF90aW1l b3V0X2ZhY3RvciAxNSB7CisgCSJzdGVwIG92ZXIgdmFsdWUgYXNzaWdubWVudCBvZiB2bGExIgor IH0KKyBnZGJfdGVzdCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCgg cmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAi ID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4 IiBcCisgICAicHJpbnQgYWxsb2NhdGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDMs IDYsIDkpIiAiID0gMTMxMSIgInByaW50IGFsbG9jYXRlZCB2bGExKDMsNiw5KSIKKyBnZGJfdGVz dCAicHJpbnQgdmxhMSgxLCAzLCA4KSIgIiA9IDEzMTEiICJwcmludCBhbGxvY2F0ZWQgdmxhMSgx LDMsOCkiCitAQCAtNzEsNyArNzUsNyBAQCBnZGJfdGVzdCAicHJpbnQgdmxhMSg5LCA5LCA5KSIg IiA9IDk5OSIgXAorICMgVHJ5IHRvIGFjY2VzcyB2YWx1ZXMgaW4gdW5kZWZpbmVkIHBvaW50ZXIg dG8gVkxBIChkYW5nbGluZykKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IDxub3QgYXNzb2Np YXRlZD4iICJwcmludCB1bmRlZmluZWQgcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwK Ky0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCg8bm90IGFz c29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCgg JHJlYWwgXFxcKDxub3QgYXNzb2NpYXRlZD5cXFwpXFxcKVxcXCkgJGhleCIgXAorICAgInByaW50 IG5vbi1hc3NvY2lhdGVkICZwdmxhIgorIGdkYl90ZXN0ICJwcmludCBwdmxhKDEsIDMsIDgpIiAi bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXFxcKSIgXAor ICAgInByaW50IHVuZGVmaW5lZCBwdmxhKDEsMyw4KSIKK0BAIC04MCw3ICs4NCw3IEBAIGdkYl90 ZXN0ICJwcmludCBwdmxhKDEsIDMsIDgpIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVj dG9yIG5vdCBhc3NvY2lhdGVkCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InB2bGEtYXNzb2NpYXRlZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNz b2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+ IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBc CisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxc KSAkaGV4IiBcCisgICAicHJpbnQgYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQg cHZsYSgzLCA2LCA5KSIgIiA9IDQyIiAicHJpbnQgYXNzb2NpYXRlZCBwdmxhKDMsNiw5KSIKKyBn ZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIiA9IDEwMDEiICJwcmludCBhc3NvY2lhdGVk IHB2bGEoMSwzLDgpIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1j aGlsZC1mLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAoraW5k ZXggZjNlZDdjMi4uYmM0NGM2YiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21p LXZhci1jaGlsZC1mLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxk LWYuZXhwCitAQCAtMTcsNiArMTcsNyBAQAorIAorIGxvYWRfbGliIG1pLXN1cHBvcnQuZXhwCisg c2V0IE1JRkxBR1MgIi1pPW1pIgorK2xvYWRfbGliICJmb3J0cmFuLmV4cCIKKyAKKyBpZiB7IFtz a2lwX2ZvcnRyYW5fdGVzdHNdIH0geyByZXR1cm4gLTEgfQorIAorQEAgLTQwLDEwICs0MSw4IEBA IG1pX3J1bnRvIE1BSU5fXworIG1pX2NyZWF0ZV92YXJvYmogImFycmF5IiAiYXJyYXkiICJjcmVh dGUgbG9jYWwgdmFyaWFibGUgYXJyYXkiCisgCisgCistIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBp bGVyIHZlcnNpb24gYmVpbmcgdXNlZCwgdGhlIG5hbWUgb2YgdGhlIDQtYnl0ZSBpbnRlZ2VyCist IyBhbmQgcmVhbCB0eXBlcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4gIEZvciBpbnN0YW5j ZSwgZ2ZvcnRyYW4tNC4xIHVzZXMKKy0jICJpbnQ0IiB3aGVyZWFzIGdmb3J0cmFuLTQuMyB1c2Vz ICJpbnRlZ2VyKGtpbmQ9NCkiLgorLXNldCBpbnQ0ICIoaW50NHxpbnRlZ2VyXFwoa2luZD00XFwp KSIKKysjIERlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFt ZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IGludDQgW2ZvcnRyYW5faW50NF0K KyAKKyBzZXQgY2hpbGRyZW4gW2xpc3QgW2xpc3QgImFycmF5Li0xIiAiLTEiIDIgIiRpbnQ0IFxc KDJcXCkiXSBcCisgCQkgIFtsaXN0ICJhcnJheS4wIiAiMCIgMiAiJGludDQgXFwoMlxcKSJdIFwK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAgYi9n ZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKK2luZGV4IDMzM2I3MWEuLjE3 NzllYzAgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5l eHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAorQEAgLTE4 LDYgKzE4LDcgQEAKKyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAorIHNldCBNSUZMQUdTICIt aT1taSIKKytsb2FkX2xpYiAiZm9ydHJhbi5leHAiCisgCisgZ2RiX2V4aXQKKyBpZiBbbWlfZ2Ri X3N0YXJ0XSB7CitAQCAtMzIsNiArMzMsOSBAQCBpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBcCisgICAgICBy ZXR1cm4gLTEKKyB9CisgCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQs IHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5LgorK3NldCByZWFsIFtm b3J0cmFuX3JlYWw0XQorKworIG1pX2RlbGV0ZV9icmVha3BvaW50cworIG1pX2dkYl9yZWluaXRp YWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorIG1pX2dkYl9sb2FkICR7YmluZmlsZX0KK0BAIC01 OCw3ICs2Miw3IEBAIG1pX2dkYl90ZXN0ICI1MDMtdmFyLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxh MV9ub3RfYWxsb2NhdGVkIiBcCisgICAiNTAzXFxeZG9uZSx2YWx1ZT1cIlxcXFswXFxcXVwiIiBc CisgICAiZXZhbCB2YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQiCisgbWlfbGlzdF9hcnJheV92 YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAidmxhMV9ub3RfYWxsb2NhdGVkIiAiMCIgIjEiIFwK Ky0gICAgInJlYWxcXFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJlbiBvZiB2bGExX25vdF9hbGxv Y2F0ZWQiCisrICAgICIkcmVhbCIgImdldCBjaGlsZHJlbiBvZiB2bGExX25vdF9hbGxvY2F0ZWQi CisgCisgCisgCitAQCAtNzEsMTAgKzc1LDEwIEBAIG1pX2V4cGVjdF9zdG9wICJicmVha3BvaW50 LWhpdCIgInZsYSIgIiIgIi4qdmxhLmY5MCIgIiRicF9saW5lbm8iIFwKKyBtaV9nZGJfdGVzdCAi NTEwLWRhdGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExIiBcCisgICAiNTEwXFxeZG9uZSx2YWx1 ZT1cIlxcKC4qXFwpXCIiICJldmFsdWF0ZSBhbGxvY2F0ZWQgdmxhIgorIAorLW1pX2NyZWF0ZV92 YXJvYmpfY2hlY2tlZCB2bGExX2FsbG9jYXRlZCB2bGExICJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxc KDVcXFwpIiBcCisrbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfYWxsb2NhdGVkIHZsYTEg IiRyZWFsIFxcXCg1XFxcKSIgXAorICAgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGExX2FsbG9j YXRlZCIKKyBtaV9nZGJfdGVzdCAiNTExLXZhci1pbmZvLXR5cGUgdmxhMV9hbGxvY2F0ZWQiIFwK Ky0gICI1MTFcXF5kb25lLHR5cGU9XCJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpXCIiIFwK KysgICI1MTFcXF5kb25lLHR5cGU9XCIkcmVhbCBcXFwoNVxcXClcIiIgXAorICAgImluZm8gdHlw ZSB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTEyLXZhci1zaG93LWZv cm1hdCB2bGExX2FsbG9jYXRlZCIgXAorICAgIjUxMlxcXmRvbmUsZm9ybWF0PVwibmF0dXJhbFwi IiBcCitAQCAtODMsNyArODcsNyBAQCBtaV9nZGJfdGVzdCAiNTEzLXZhci1ldmFsdWF0ZS1leHBy ZXNzaW9uIHZsYTFfYWxsb2NhdGVkIiBcCisgICAiNTEzXFxeZG9uZSx2YWx1ZT1cIlxcXFs1XFxc XVwiIiBcCisgICAiZXZhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9saXN0X2FycmF5 X3Zhcm9ial9jaGlsZHJlbl93aXRoX2luZGV4ICJ2bGExX2FsbG9jYXRlZCIgIjUiICIxIiBcCist ICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9hbGxvY2F0ZWQi CisrICAgICIkcmVhbCIgImdldCBjaGlsZHJlbiBvZiB2bGExX2FsbG9jYXRlZCIKKyAKKyAKKyBz ZXQgYnBfbGluZW5vIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWZpbGxlZCJdCitAQCAtMTQ4 LDcgKzE1Miw3IEBAIGdkYl9leHBlY3QgeworIAkgICAgIjU4M1xcXmRvbmUsdmFsdWU9XCJcXFxb MFxcXF1cIiIgXAorIAkgICAgImV2YWwgdmFyaWFibGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisg CW1pX2xpc3RfYXJyYXlfdmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5kZXggInB2bGEyX25vdF9hc3Nv Y2lhdGVkIiAiMCIgIjEiIFwKKy0JICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRy ZW4gb2YgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisrCSAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4g b2YgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisgICAgIH0KKyAgICAgLXJlICI1ODBcXF5lcnJvcixt c2c9XCJ2YWx1ZSBjb250ZW50cyB0b28gbGFyZ2UgXFwoXFswLTlcXSsgYnl0ZXNcXCkuKiR7bWlf Z2RiX3Byb21wdH0kIiB7CisgCSMgVW5kZWZpbmVkIGJlaGF2aW91ciBpbiBnZm9ydHJhbi4KK0BA IC0xNzMsOSArMTc3LDkgQEAgbWlfZ2RiX3Rlc3QgIjU5MC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Np b24gcHZsYTIiIFwKKyAgICJldmFsdWF0ZSBhc3NvY2lhdGVkIHZsYSIKKyAKKyBtaV9jcmVhdGVf dmFyb2JqX2NoZWNrZWQgcHZsYTJfYXNzb2NpYXRlZCBwdmxhMiBcCistICAicmVhbFxcXChraW5k PTRcXFwpIFxcXCg1LDJcXFwpIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEyX2Fzc29jaWF0 ZWQiCisrICAiJHJlYWwgXFxcKDUsMlxcXCkiICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgcHZsYTJf YXNzb2NpYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTkxLXZhci1pbmZvLXR5cGUgcHZsYTJfYXNzb2Np YXRlZCIgXAorLSAgIjU5MVxcXmRvbmUsdHlwZT1cInJlYWxcXFwoa2luZD00XFxcKSBcXFwoNSwy XFxcKVwiIiBcCisrICAiNTkxXFxeZG9uZSx0eXBlPVwiJHJlYWwgXFxcKDUsMlxcXClcIiIgXAor ICAgImluZm8gdHlwZSB2YXJpYWJsZSBwdmxhMl9hc3NvY2lhdGVkIgorIG1pX2dkYl90ZXN0ICI1 OTItdmFyLXNob3ctZm9ybWF0IHB2bGEyX2Fzc29jaWF0ZWQiIFwKKyAgICI1OTJcXF5kb25lLGZv cm1hdD1cIm5hdHVyYWxcIiIgXAorLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1p bnRlbC0yb2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYTE3N2EKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxh LWludGVsLTJvZjcucGF0Y2gKQEAgLTAsMCArMSw3NSBAQAorRnJvbSBhODc5YjI1MDFlNjFlZTNk M2VmYWRiZGI2YjMzMjEyYjU3ZDNhMmUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAx MiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gRm9ydHJhbjog UmVzb2x2ZSBkeW5hbWljIHByb3BlcnRpZXMgb2YgcG9pbnRlciB0eXBlcy4KKworSW4gRm9ydHJh biBhIHBvaW50ZXIgbWF5IGhhdmUgYSBkeW5hbWljIGFzc29jaWF0ZWQgcHJvcGVydHkuCisKKzIw MTYtMDctMDggIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisK K2dkYi9DaGFuZ2Vsb2c6CisJKiBnZGJ0eXBlcy5jIChyZXNvbHZlX2R5bmFtaWNfdHlwZXNfaW50 ZXJuYWwpOiBSZXNvbHZlIHBvaW50ZXIgdHlwZXMuCisJICAocmVzb2x2ZV9keW5hbWljX3BvaW50 ZXIpOiBOZXcuCisKK0NoYW5nZS1JZDogSWU0YjlkNjM5N2NmYTA4OWVlMmUwZGIwMmJlYjE4NDE1 YTc1MWMxYzAKKy0tLQorIGdkYi9nZGJ0eXBlcy5jIHwgMjkgKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0KKyAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYworaW5kZXgg ZWM1YzE3YS4uYjUzZTY0OSAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0eXBlcy5jCisrKysgYi9nZGIv Z2RidHlwZXMuYworQEAgLTE4MDYsNyArMTgwNiw4IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5h bCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCisgICB0eXBlID0gY2hlY2tfdHlw ZWRlZiAodHlwZSk7CisgCisgICAvKiBXZSBvbmx5IHdhbnQgdG8gcmVjb2duaXplIHJlZmVyZW5j ZXMgYXQgdGhlIG91dGVybW9zdCBsZXZlbC4gICovCistICBpZiAodG9wX2xldmVsICYmIFRZUEVf Q09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JFRikKKysgIGlmICh0b3BfbGV2ZWwgJiYKKysgICAg ICAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUkVGIHx8IFRZUEVfQ09ERSAodHlwZSkg PT0gVFlQRV9DT0RFX1BUUikpCisgICAgIHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdF VF9UWVBFICh0eXBlKSk7CisgCisgICAvKiBUeXBlcyB0aGF0IGhhdmUgYSBkeW5hbWljIFRZUEVf REFUQV9MT0NBVElPTiBhcmUgY29uc2lkZXJlZAorQEAgLTIxMDUsNiArMjEwNiwyOCBAQCByZXNv bHZlX2R5bmFtaWNfc3RydWN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgIHJldHVybiByZXNvbHZl ZF90eXBlOworIH0KKyAKKysvKiBXb3JrZXIgZm9yIHBvaW50ZXIgdHlwZXMuICAqLworKworK3N0 YXRpYyBzdHJ1Y3QgdHlwZSAqCisrcmVzb2x2ZV9keW5hbWljX3BvaW50ZXIgKHN0cnVjdCB0eXBl ICp0eXBlLAorKwkJCSBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRyX3N0YWNrKQorK3sK KysgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7CisrICBDT1JFX0FERFIgdmFsdWU7CisrCisr ICB0eXBlID0gY29weV90eXBlICh0eXBlKTsKKysKKysgIC8qIFJlc29sdmUgYXNzb2NpYXRlZCBw cm9wZXJ0eS4gICovCisrICBwcm9wID0gVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpOworKyAg aWYgKHByb3AgIT0gTlVMTCAmJiBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIE5VTEws IGFkZHJfc3RhY2ssICZ2YWx1ZSkpCisrICAgIHsKKysgICAgICBUWVBFX0RZTl9QUk9QX0FERFIg KHByb3ApID0gdmFsdWU7CisrICAgICAgVFlQRV9EWU5fUFJPUF9LSU5EIChwcm9wKSA9IFBST1Bf Q09OU1Q7CisrICAgIH0KKysKKysgIHJldHVybiB0eXBlOworK30KKysKKyAvKiBXb3JrZXIgZm9y IHJlc29sdmVkX2R5bmFtaWNfdHlwZS4gICovCisgCisgc3RhdGljIHN0cnVjdCB0eXBlICoKK0BA IC0yMTUzLDYgKzIxNzYsMTAgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVj dCB0eXBlICp0eXBlLAorIAkgICAgYnJlYWs7CisgCSAgfQorIAorKyAgICAgICAgY2FzZSBUWVBF X0NPREVfUFRSOgorKyAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX3BvaW50ZXIg KHR5cGUsIGFkZHJfc3RhY2spOworKyAJICBicmVhazsKKysKKyAJY2FzZSBUWVBFX0NPREVfQVJS QVk6CisgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAodHlwZSwgYWRk cl9zdGFjayk7CisgCSAgYnJlYWs7CistLSAKKzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxh LWludGVsLTNvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTNvZjcucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA5NTQwNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12 bGEtaW50ZWwtM29mNy5wYXRjaApAQCAtMCwwICsxLDExMyBAQAorRnJvbSBkMmZkNWZlYTJjMDYw NTJjNTNkOTliZmEyNWZkYWVkOWNmNWRkMjE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVl LCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDMvN10gVHlwZXBy aW50OiBSZXNvbHZlIGFueSBkeW5hbWljIHRhcmdldCB0eXBlIG9mIGEgcG9pbnRlci4KKworQmVm b3JlIGNvbnRpbnVpbmcgd2l0aCBsYW5ndWFnZSBzcGVjaWZpYyB0eXBlIHByaW50aW5nCit3ZSBo YXZlIHRvIHJlc29sdmUgdGhlIHRhcmdldCB0eXBlIG9mIGEgcG9pbnRlcgorYXMgd2UgbWlnaHQg d2FubmEgcHJpbnQgbW9yZSBkZXRhaWxzIG9mIHRoZSB0YXJnZXQKK2xpa2UgdGhlIGRpbWVuc2lv biBvZiBhbiBhcnJheS4gV2UgaGF2ZSB0byByZXNvbHZlIGl0IGhlcmUKK2FzIHdlIGRvbid0IGhh dmUgYW55IGFkZHJlc3MgaW5mb3JtYXRpb24gbGF0ZXIgb24uCisKKzIwMTYtMDctMDggIEJlcm5o YXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6 CisJKiB0eXBlcHJpbnQuYyAod2hhdGlzX2V4cCk6IFJlc29sdmUgZHluYW1pYyB0YXJnZXQgdHlw ZQorCSAgb2YgcG9pbnRlcnMuCisKK2dkYi9UZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSogZ2RiLmNw L3ZsYS1jeHguY2M6IEFkZGVkIHBvaW50ZXIgdG8gZHluYW1pYyB0eXBlLgorCSogZ2RiLmNwL3Zs YS1jeHguZXhwOiBUZXN0IHBvaW50ZXIgdG8gZHluYW1pYyB0eXBlLgorCitDaGFuZ2UtSWQ6IElk ZmYwZDZkZDBlYWIzMTI1YjQ1ZDQ3MGExMmI1ZTY2YjM5MmU0MmMzCistLS0KKyBnZGIvdGVzdHN1 aXRlL2dkYi5jcC92bGEtY3h4LmNjICB8ICA5ICsrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2Ri LmNwL3ZsYS1jeHguZXhwIHwgIDUgKysrKysKKyBnZGIvdHlwZXByaW50LmMgICAgICAgICAgICAg ICAgICB8IDE5ICsrKysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2Vy dGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2Mg Yi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNjCitpbmRleCBhMWZkNTEwLi41ZjhmOGFi IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworQEAgLTE1LDYgKzE1LDEwIEBACisgICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisgCisrZXh0ZXJuICJDIiB7CisrI2luY2x1ZGUg PHN0ZGRlZi5oPgorK30KKysKKyBzdHJ1Y3QgY29udGFpbmVyOworIAorIHN0cnVjdCBlbGVtZW50 CitAQCAtNDAsMTEgKzQ0LDE2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAg IHR5cGVkZWYgdHlwZW9mICh2bGEpICZ2bGFyZWZ0eXBlZGVmOworICAgdmxhcmVmdHlwZWRlZiB2 bGFyZWYyICh2bGEpOworICAgY29udGFpbmVyIGM7CisrICB0eXBlb2YgKHZsYSkgKnB0ciA9IE5V TEw7CisrCisrICAvLyBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50CisrICBwdHIgPSAmdmxhOwor IAorICAgZm9yIChpbnQgaSA9IDA7IGkgPCB6OyArK2kpCisgICAgIHZsYVtpXSA9IDUgKyAyICog aTsKKyAKKyAgIC8vIHZsYXNfZmlsbGVkCisgICB2bGFbMF0gPSAyICogdmxhWzBdOworKworICAg cmV0dXJuIHZsYVsyXTsKKyB9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Avdmxh LWN4eC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAoraW5kZXggZjYyMjRk Yy4uYmFiZGZiNyAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhw CisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAorQEAgLTIzLDYgKzIzLDEw IEBAIGlmICFbcnVudG9fbWFpbl0geworICAgICByZXR1cm4gLTEKKyB9CisgCisrZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiXQor K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50Igor K2dkYl90ZXN0ICJwdHlwZSBwdHIiICJpbnQgXFwoXFwqXFwpXFxcW3ZhcmlhYmxlIGxlbmd0aFxc XF0iICJwdHlwZSBwdHIsIEJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisrCisgZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYXNfZmlsbGVkIl0KKyBnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAidmxhc19maWxsZWQiCisgCitAQCAtMzMsMyArMzcsNCBAQCBnZGJfdGVz dCAicHJpbnQgdmxhcmVmIiAiID0gXFwoaW50IFxcKCZcXClcXFxbM1xcXF1cXCkgQCRoZXg6IFxc ezUsIDcsIDlcXH0iCisgIyBidWcgYmVpbmcgdGVzdGVkLCBpdCdzIGJldHRlciBub3QgdG8gZGVw ZW5kIG9uIHRoZSBleGFjdCBzcGVsbGluZy4KKyBnZGJfdGVzdCAicHJpbnQgdmxhcmVmMiIgIiA9 IFxcKC4qXFwpIEAkaGV4OiBcXHs1LCA3LCA5XFx9IgorIGdkYl90ZXN0ICJwcmludCBjIiAiID0g XFx7ZSA9IFxce2MgPSBAJGhleFxcfVxcfSIKKytnZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxc KFxcKlxcKVxcXFszXFxcXSIKK2RpZmYgLS1naXQgYS9nZGIvdHlwZXByaW50LmMgYi9nZGIvdHlw ZXByaW50LmMKK2luZGV4IGU3NzUxM2UuLmUzZDg0YzcgMTAwNjQ0CistLS0gYS9nZGIvdHlwZXBy aW50LmMKKysrKyBiL2dkYi90eXBlcHJpbnQuYworQEAgLTQ4NSw2ICs0ODUsMjUgQEAgd2hhdGlz X2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKKyAgICAgICBwcmludGZfZmlsdGVyZWQgKCIgKi9c biIpOyAgICAKKyAgICAgfQorIAorKyAgLyogUmVzb2x2ZSBhbnkgZHluYW1pYyB0YXJnZXQgdHlw ZSwgYXMgd2UgbWlnaHQgcHJpbnQKKysgICAgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQg dGhlIHRhcmdldC4KKysgICAgIEZvciBleGFtcGxlLCBpbiBGb3J0cmFuIGFuZCBDIHdlIGFyZSBw cmludGluZyB0aGUgZGltZW5zaW9uIG9mIHRoZQorKyAgICAgZHluYW1pYyBhcnJheSB0aGUgcG9p bnRlciBpcyBwb2ludGluZyB0by4gICovCisrICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBF X0NPREVfUFRSCisrICAgICAgJiYgaXNfZHluYW1pY190eXBlICh0eXBlKSA9PSAxKQorKyAgICB7 CisrICAgICAgQ09SRV9BRERSIGFkZHI7CisrICAgICAgaWYgKE5VTEwgIT0gVFlQRV9EQVRBX0xP Q0FUSU9OIChUWVBFX1RBUkdFVF9UWVBFKHR5cGUpKSkKKysJYWRkciA9IHZhbHVlX2FkZHJlc3Mg KHZhbCk7CisrICAgICAgZWxzZQorKwlhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsKTsKKysK KysgICAgICBpZiAoYWRkciAhPSAwCisrCSAgJiYgdHlwZV9ub3RfYXNzb2NpYXRlZCAodHlwZSkg PT0gMCkKKysJVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkgPSByZXNvbHZlX2R5bmFtaWNfdHlwZSAo VFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCisrCQkJCQkJCU5VTEwsIGFkZHIpOworKyAgICB9Cisr CisgICBMQV9QUklOVF9UWVBFICh0eXBlLCAiIiwgZ2RiX3N0ZG91dCwgc2hvdywgMCwgJmZsYWdz KTsKKyAgIHByaW50Zl9maWx0ZXJlZCAoIlxuIik7CisgCistLSAKKzIuNy40CisKCmRpZmYgLS1n aXQgYS9nZGItdmxhLWludGVsLTRvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTRvZjcucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkY2EzNQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi12bGEtaW50ZWwtNG9mNy5wYXRjaApAQCAtMCwwICsxLDUwOCBAQAorRnJvbSBm NjM3ODJkMjVlYmQ1OTNjNGM0NjY5ZDRjMzk0YTI3MDZmMTVlNjYwIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29t PgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENI IDQvN10gRm9ydHJhbjogVHlwZXByaW50LCBmaXggZGFuZ2xpbmcgdHlwZXMuCisKK1Nob3cgdGhl IHR5cGUgb2Ygbm90LWFsbG9jYXRlZCBhbmQvb3Igbm90LWFzc29jaWF0ZWQgdHlwZXMKK2FzIHRo aXMgaXMga25vd24uICBGb3IgYXJyYXkgdHlwZXMgYW5kIHBvaW50ZXIgdG8gYXJyYXkgdHlwZXMK K3dlIGFyZSBnb2luZyB0byBwcmludCB0aGUgbnVtYmVyIG9mIHJhbmtzLgorCisyMDE2LTA2LTMw ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorCitnZGIvQ2hh bmdlTG9nOgorCSogZi10eXBlcHJpbnQuYyAoZl9wcmludF90eXBlKTogRG9uJ3QgYnlwYXNzIGRh bmdsaW5nIHR5cGVzLgorCSAgKGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCk6IEFkZCBwcmlu dF9yYW5rIHBhcmFtZXRlci4KKwkgIChmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBQcmlu dCByYW5rcyBvZiBhcnJheSB0eXBlcworCSAgaW4gY2FzZSB0aGV5IGRhbmdsaW5nLgorCSAgKGZf dHlwZV9wcmludF9iYXNlKTogQWRkIHByaW50X3JhbmsgcGFyYW1ldGVyLgorCitnZGIvVGVzdHN1 aXRlL0NoYW5nZUxvZzoKKwkqIGdkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MDogTmV3LgorCSogZ2Ri LmZvcnRyYW4vcHJpbnRfdHlwZS5leHA6IE5ldy4KKwkqIGdkYi5mb3J0cmFuL3ZsYS1wdHlwZS5l eHA6IEFkYXB0IGV4cGVjdGVkIHJlc3VsdHMuCisJKiBnZGIuZm9ydHJhbi92bGEtdHlwZS5leHA6 IExpa2V3aXNlLgorCSogZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cDogTGlrZXdpc2UuCisJKiBn ZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwOiBMaWtld2lzZS4KKworQ2hhbmdlLUlkOiBJYjU1ZjI4 YjQwOTJjZjg4ZTM0OTE4NDQ5YTJlYmI2ZTVkYWFmZTUxMgorLS0tCisgZ2RiL2YtdHlwZXByaW50 LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA5NSArKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwICAgfCAgODAgKysr KysrKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRf dHlwZS5leHAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cCAgfCAgMTIgKystLQorIGdkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhwICAgfCAgIDcgKystCisgZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwICB8ICAgNCArLQorIGdkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLXZsYS1mb3J0cmFuLmV4cCAgfCAgIDkgKy0tCisgNyBmaWxlcyBjaGFuZ2VkLCAyNDggaW5z ZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCisgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAKKworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAu MjAxNjA2MzAub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5 OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCTIw MTYtMDctMTYgMTA6NTU6NTkuNzYzNjY3MzU1ICswMjAwCitAQCAtMzcsNyArMzcsNyBAQAorICNl bmRpZgorIAorIHN0YXRpYyB2b2lkIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAorLQkJCQkJIGludCwgaW50LCBpbnQpOwor KwkJCQkJIGludCwgaW50LCBpbnQsIGludCk7CisgCisgdm9pZCBmX3R5cGVfcHJpbnRfdmFyc3Bl Y19wcmVmaXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosCisgCQkJCSAgaW50LCBp bnQpOworQEAgLTU0LDE4ICs1NCw2IEBACisgICBlbnVtIHR5cGVfY29kZSBjb2RlOworICAgaW50 IGRlbWFuZ2xlZF9hcmdzOworIAorLSAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKHR5cGUpKQor LSAgICB7CistICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOworLSAgICAg IHJldHVybjsKKy0gICAgfQorLQorLSAgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAodHlwZSkpCist ICAgIHsKKy0gICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKKy0gICAgICBy ZXR1cm47CistICAgIH0KKy0KKyAgIGZfdHlwZV9wcmludF9iYXNlICh0eXBlLCBzdHJlYW0sIHNo b3csIGxldmVsKTsKKyAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOworICAgaWYgKCh2YXJzdHJp bmcgIT0gTlVMTCAmJiAqdmFyc3RyaW5nICE9ICdcMCcpCitAQCAtODcsNyArNzUsNyBAQAorICAg ICAgICAgIHNvIGRvbid0IHByaW50IGFuIGFkZGl0aW9uYWwgcGFpciBvZiAoKSdzLiAgKi8KKyAK KyAgICAgICBkZW1hbmdsZWRfYXJncyA9IHZhcnN0cmluZ1tzdHJsZW4gKHZhcnN0cmluZykgLSAx XSA9PSAnKSc7IAorLSAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAodHlwZSwgc3Ry ZWFtLCBzaG93LCAwLCBkZW1hbmdsZWRfYXJncywgMCk7CisrICAgICAgZl90eXBlX3ByaW50X3Zh cnNwZWNfc3VmZml4ICh0eXBlLCBzdHJlYW0sIHNob3csIDAsIGRlbWFuZ2xlZF9hcmdzLCAwLCAw KTsKKyAgICB9CisgfQorIAorQEAgLTE1Nyw3ICsxNDUsNyBAQAorIHN0YXRpYyB2b2lkCisgZl90 eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKyAJCQkgICAgIGludCBzaG93LCBpbnQgcGFzc2VkX2FfcHRyLCBpbnQgZGVt YW5nbGVkX2FyZ3MsCistCQkJICAgICBpbnQgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKQorKwkJ CSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwgaW50IHByaW50X3Jhbmtfb25seSkK KyB7CisgICBpbnQgdXBwZXJfYm91bmQsIGxvd2VyX2JvdW5kOworIAorQEAgLTE4MSwzNCArMTY5 LDUwIEBACisgCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKKyAKKyAgICAgICBpZiAo dHlwZV9ub3RfYXNzb2NpYXRlZCAodHlwZSkpCistICAgICAgICB2YWxfcHJpbnRfbm90X2Fzc29j aWF0ZWQgKHN0cmVhbSk7CisrCXByaW50X3Jhbmtfb25seSA9IDE7CisgICAgICAgZWxzZSBpZiAo dHlwZV9ub3RfYWxsb2NhdGVkICh0eXBlKSkKKy0gICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2Nh dGVkIChzdHJlYW0pOworKwlwcmludF9yYW5rX29ubHkgPSAxOworKyAgICAgIGVsc2UgaWYgKChU WVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkKKysJCSYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5f UFJPUF9LSU5EIChUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkpKQorKwkgICAgICB8fCAoVFlQ RV9BTExPQ0FURURfUFJPUCAodHlwZSkKKysJCSYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJP UF9LSU5EIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBlKSkpCisrCSAgICAgIHx8IChUWVBFX0RB VEFfTE9DQVRJT04gKHR5cGUpCisrCQkgICYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9L SU5EIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpKSkpCisrCS8qIFRoaXMgY2FzZSBleGlzdCB3 aGVuIHdlIHB0eXBlIGEgdHlwZW5hbWUgd2hpY2ggaGFzIHRoZQorKwkgICBkeW5hbWljIHByb3Bl cnRpZXMgYnV0IGNhbm5vdCBiZSByZXNvbHZlZCBhcyB0aGVyZSBpcworKwkgICBubyBvYmplY3Qu ICAqLworKwlwcmludF9yYW5rX29ubHkgPSAxOworKworKyAgICAgIGlmIChUWVBFX0NPREUgKFRZ UEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfQVJSQVkpCisrCWZfdHlwZV9wcmlu dF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwKKysJ CQkJICAgICAwLCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwsCisrCQkJCSAgICAgcHJpbnRf cmFua19vbmx5KTsKKysKKysgICAgICBpZiAocHJpbnRfcmFua19vbmx5ID09IDEpCisrCWZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIjoiKTsKKyAgICAgICBlbHNlCistICAgICAgICB7CistICAg ICAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NP REVfQVJSQVkpCistICAgICAgICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLCAwLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwLCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOworLQorLSAg ICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7CistICAgICAg ICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLworLSAgICAg ICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKKy0K Ky0gICAgICAgICAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXpl IGFycmF5LCB3ZQorLSAgICAgICAgICAgICBwcmludCBvdXQgYSB3YXJuaW5nIGFuZCBwcmludCB0 aGUgdXBwZXJib3VuZCBhcyAnKicuICAqLworLQorLSAgICAgICAgICBpZiAoVFlQRV9BUlJBWV9V UFBFUl9CT1VORF9JU19VTkRFRklORUQgKHR5cGUpKQorLSAgICAgICAgICAgIGZwcmludGZfZmls dGVyZWQgKHN0cmVhbSwgIioiKTsKKy0gICAgICAgICAgZWxzZQorLSAgICAgICAgICAgIHsKKy0g ICAgICAgICAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKy0g ICAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQp OworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKKy0gICAgICAgICAgICBmX3R5cGVf cHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIGFycmF5cHJp bnRfcmVjdXJzZV9sZXZlbCk7CistICAgICAgICB9CisrCXsKKysJICBsb3dlcl9ib3VuZCA9IGY3 N19nZXRfbG93ZXJib3VuZCAodHlwZSk7CisrCSAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5v dCB0aGUgZGVmYXVsdC4gICovCisrCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZDoi LCBsb3dlcl9ib3VuZCk7CisrCisrCSAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4g YXNzdW1lZCBzaXplIGFycmF5LCB3ZQorKwkgICAgIHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHBy aW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4gICovCisrCisrCSAgaWYgKFRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKKysJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIioiKTsKKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIHVwcGVyX2JvdW5kID0gZjc3 X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKysJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiJWQiLCB1cHBlcl9ib3VuZCk7CisrCSAgICB9CisrCX0KKysKKysgICAgICBpZiAoVFlQRV9D T0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9DT0RFX0FSUkFZKQorKwlmX3R5 cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0s IDAsCisrCQkJCSAgICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJCQkgICAg IHByaW50X3Jhbmtfb25seSk7CisrCisgICAgICAgaWYgKGFycmF5cHJpbnRfcmVjdXJzZV9sZXZl bCA9PSAxKQorIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgICAgICAgZWxzZQor QEAgLTIxOSwxMyArMjIzLDE0IEBACisgICAgIGNhc2UgVFlQRV9DT0RFX1BUUjoKKyAgICAgY2Fz ZSBUWVBFX0NPREVfUkVGOgorICAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwgMSwgMCwKKy0JCQkJICAgYXJyYXlwcmlu dF9yZWN1cnNlX2xldmVsKTsKKysJCQkJICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLCAwKTsK KyAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgICAgICAgYnJlYWs7Cisg CisgICAgIGNhc2UgVFlQRV9DT0RFX0ZVTkM6CisgICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNf c3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLCAwLAorLQkJCQkgICBwYXNz ZWRfYV9wdHIsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCk7CisrCQkJCSAgIHBhc3NlZF9h X3B0ciwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJCQkgICAwKTsKKyAgICAgICBp ZiAocGFzc2VkX2FfcHRyKQorIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgCitA QCAtMzc2LDcgKzM4MSw3IEBACisgCSAgICAgIGZwdXRzX2ZpbHRlcmVkICgiIDo6ICIsIHN0cmVh bSk7CisgCSAgICAgIGZwdXRzX2ZpbHRlcmVkIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGluZGV4 KSwgc3RyZWFtKTsKKyAJICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX0ZJ RUxEX1RZUEUgKHR5cGUsIGluZGV4KSwKKy0JCQkJCSAgIHN0cmVhbSwgc2hvdyAtIDEsIDAsIDAs IDApOworKwkJCQkJICAgc3RyZWFtLCBzaG93IC0gMSwgMCwgMCwgMCwgMCk7CisgCSAgICAgIGZw dXRzX2ZpbHRlcmVkICgiXG4iLCBzdHJlYW0pOworIAkgICAgfQorIAkgIGZwcmludGZpX2ZpbHRl cmVkIChsZXZlbCwgc3RyZWFtLCAiRW5kIFR5cGUgIik7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5 MAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUyNTg2MCArMDIwMAorQEAgLTAsMCArMSw4MCBAQAor KyEgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKysh IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytwcm9ncmFtIHBvaW50ZXJzCisrCisrICB0 eXBlIDo6IHR3bworKyAgICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiBpdmxhMSAoOikKKysgICAg aW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZsYTIgKDosIDopCisrICBlbmQgdHlwZSB0d28KKysK KysgIGxvZ2ljYWwsIHRhcmdldCA6OiBsb2d2CisrICBjb21wbGV4LCB0YXJnZXQgOjogY29tdgor KyAgY2hhcmFjdGVyLCB0YXJnZXQgOjogY2hhcnYKKysgIGNoYXJhY3RlciAobGVuPTMpLCB0YXJn ZXQgOjogY2hhcmEKKysgIGludGVnZXIsIHRhcmdldCA6OiBpbnR2CisrICBpbnRlZ2VyLCB0YXJn ZXQsIGRpbWVuc2lvbiAoMTAsMikgOjogaW50YQorKyAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2 CisrICB0eXBlKHR3byksIHRhcmdldCAgOjogdHdvdgorKworKyAgbG9naWNhbCwgcG9pbnRlciA6 OiBsb2dwCisrICBjb21wbGV4LCBwb2ludGVyIDo6IGNvbXAKKysgIGNoYXJhY3RlciwgcG9pbnRl cjo6IGNoYXJwCisrICBjaGFyYWN0ZXIgKGxlbj0zKSwgcG9pbnRlcjo6IGNoYXJhcAorKyAgaW50 ZWdlciwgcG9pbnRlciA6OiBpbnRwCisrICBpbnRlZ2VyLCBwb2ludGVyLCBkaW1lbnNpb24gKDos OikgOjogaW50YXAKKysgIHJlYWwsIHBvaW50ZXIgOjogcmVhbHAKKysgIHR5cGUodHdvKSwgcG9p bnRlciA6OiB0d29wCisrCisrICBudWxsaWZ5IChsb2dwKQorKyAgbnVsbGlmeSAoY29tcCkKKysg IG51bGxpZnkgKGNoYXJwKQorKyAgbnVsbGlmeSAoY2hhcmFwKQorKyAgbnVsbGlmeSAoaW50cCkK KysgIG51bGxpZnkgKGludGFwKQorKyAgbnVsbGlmeSAocmVhbHApCisrICBudWxsaWZ5ICh0d29w KQorKworKyAgbG9ncCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorKyAg Y29tcCA9PiBjb212CisrICBjaGFycCA9PiBjaGFydgorKyAgY2hhcmFwID0+IGNoYXJhCisrICBp bnRwID0+IGludHYKKysgIGludGFwID0+IGludGEKKysgIHJlYWxwID0+IHJlYWx2CisrICB0d29w ID0+IHR3b3YKKysKKysgIGxvZ3YgPSBhc3NvY2lhdGVkKGxvZ3ApICAgICAhIEJlZm9yZSB2YWx1 ZSBhc3NpZ25tZW50CisrICBjb212ID0gY21wbHgoMSwyKQorKyAgY2hhcnYgPSAiYSIKKysgIGNo YXJhID0gImFiYyIKKysgIGludHYgPSAxMAorKyAgaW50YSg6LDopID0gMQorKyAgaW50YSgzLDEp ID0gMworKyAgcmVhbHYgPSAzLjE0CisrCisrICBhbGxvY2F0ZSAodHdvdiVpdmxhMSgzKSkKKysg IGFsbG9jYXRlICh0d292JWl2bGEyKDIsMikpCisrICB0d292JWl2bGExKDEpID0gMTEKKysgIHR3 b3YlaXZsYTEoMikgPSAxMgorKyAgdHdvdiVpdmxhMSgzKSA9IDEzCisrICB0d292JWl2bGEyKDEs MSkgPSAyMTEKKysgIHR3b3YlaXZsYTIoMiwxKSA9IDIyMQorKyAgdHdvdiVpdmxhMigxLDIpID0g MjEyCisrICB0d292JWl2bGEyKDIsMikgPSAyMjIKKysKKysgIGludHYgPSBpbnR2ICsgMSAhIEFm dGVyIHZhbHVlIGFzc2lnbm1lbnQKKysKKytlbmQgcHJvZ3JhbSBwb2ludGVycworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5l eHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ByaW50X3R5cGUuZXhwCTIwMTYtMDctMTYgMTA6NTU6NDIuMDc5NTI1ODYwICswMjAwCitA QCAtMCwwICsxLDEwMCBAQAorKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9y CisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJk X3Rlc3RmaWxlICJwb2ludGVycy5mOTAiCisrbG9hZF9saWIgZm9ydHJhbi5leHAKKysKKytpZiB7 IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2Zp bGV9IFwKKysgICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9Cisr CisrCisraWYgIVtydW50b19tYWluXSB7CisrICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRv IG1haW4iCisrICAgIHJldHVybiAtMQorK30KKysKKysjIERlcGVuZGluZyBvbiB0aGUgY29tcGls ZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHku Cisrc2V0IGxvZ2ljYWwgW2ZvcnRyYW5fbG9naWNhbDRdCisrc2V0IHJlYWwgW2ZvcnRyYW5fcmVh bDRdCisrc2V0IGludCBbZm9ydHJhbl9pbnQ0XQorK3NldCBjb21wbGV4IFtmb3J0cmFuX2NvbXBs ZXg0XQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgcG9p bnRlciBhc3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHBv aW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHR5cGUgbG9ncCIgInR5cGUgPSBQVFIgVE8g LT4gXFwoICRsb2dpY2FsIFxcKSIgInB0eXBlIGxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90 ZXN0ICJwdHlwZSBjb21wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwpIiAicHR5 cGUgY29tcCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJwIiAidHlwZSA9 IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMSBcXCkiICJwdHlwZSBjaGFycCwgbm90IGFzc29j aWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJhcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNo YXJhY3RlclxcKjMgXFwpIiAicHR5cGUgY2hhcmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVz dCAicHR5cGUgaW50cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRpbnQgXFwpIiAicHR5cGUgaW50 cCwgbm90IGFzc29jaWF0ZWQiCisrc2V0IHRlc3QgInB0eXBlIGludGFwLCBub3QgYXNzb2NpYXRl ZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5cGUgaW50YXAiICR0ZXN0IHsKKysgICAgLXJlICJ0 eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxcKDosOlxcKVxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7 CisrICAgICAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICJ0eXBlID0gJGludCBcXCg6 LDpcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9Cisr fQorK2dkYl90ZXN0ICJwdHlwZSByZWFscCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRyZWFsIFxc KSIgInB0eXBlIHJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdHdvcCIg XAorKyAgICBbbXVsdGlfbGluZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggVHlwZSB0d28iIFwKKysg ICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGExXFwoOlxcKSIgXAorKyAgICAgICAgICAg ICAgICAiICAgICRpbnQgOjogaXZsYTJcXCg6LDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIkVu ZCBUeXBlIHR3byBcXCkiXSBcCisrICAgICJwdHlwZSB0d29wLCBub3QgYXNzb2NpYXRlZCIKKytn ZGJfdGVzdCAicHR5cGUgdHdvIiBcCisrICAgIFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSB0d28i IFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGExXFwoOlxcKSIgXAorKyAgICAg ICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYTJcXCg6LDpcXCkiIFwKKysgICAgICAgICAgICAg ICAgIkVuZCBUeXBlIHR3byJdCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0eXBlIHR3b3AiIFwK KysgICAgW211bHRpX2xpbmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIiBcCisrICAg ICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMVxcKDpcXCkiIFwKKysgICAgICAgICAgICAg ICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisrICAgICAgICAgICAgICAgICJFbmQg VHlwZSB0d28gXFwpIl0KKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAiQWZ0ZXIgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg IkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0eXBlIGxvZ3YiICJ0eXBlID0g JGxvZ2ljYWwiCisrZ2RiX3Rlc3QgInB0eXBlIGNvbXYiICJ0eXBlID0gJGNvbXBsZXgiCisrZ2Ri X3Rlc3QgInB0eXBlIGNoYXJ2IiAidHlwZSA9IGNoYXJhY3RlclxcKjEiCisrZ2RiX3Rlc3QgInB0 eXBlIGNoYXJhIiAidHlwZSA9IGNoYXJhY3RlclxcKjMiCisrZ2RiX3Rlc3QgInB0eXBlIGludHYi ICJ0eXBlID0gJGludCIKKytnZGJfdGVzdCAicHR5cGUgaW50YSIgInR5cGUgPSAkaW50IFxcKDEw LDJcXCkiCisrZ2RiX3Rlc3QgInB0eXBlIHJlYWx2IiAidHlwZSA9ICRyZWFsIgorKworKworK2dk Yl90ZXN0ICJwdHlwZSBsb2dwIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpIgor K2dkYl90ZXN0ICJwdHlwZSBjb21wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwp IgorK2dkYl90ZXN0ICJwdHlwZSBjaGFycCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rl clxcKjEgXFwpIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFyYXAiICJ0eXBlID0gUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCozIFxcKSIKKytnZGJfdGVzdCAicHR5cGUgaW50cCIgInR5cGUgPSBQVFIg VE8gLT4gXFwoICRpbnQgXFwpIgorK3NldCB0ZXN0ICJwdHlwZSBpbnRhcCIKKytnZGJfdGVzdF9t dWx0aXBsZSAkdGVzdCAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9ICRpbnQgXFwoMTAsMlxcKVxy XG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJl ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxcKDEwLDJcXClcXClcclxuJGdkYl9wcm9tcHQg JCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0ICJwdHlwZSBy ZWFscCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRyZWFsIFxcKSIKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0 eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUyNTg2MCArMDIwMAorQEAgLTMyLDkgKzMy LDkgQEAKKyAjIENoZWNrIHRoZSBwdHlwZSBvZiB2YXJpb3VzIFZMQSBzdGF0ZXMgYW5kIHBvaW50 ZXIgdG8gVkxBJ3MuCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEt aW5pdCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKy1nZGJfdGVz dCAicHR5cGUgdmxhMSIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBp bml0aWFsaXplZCIKKy1nZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSA8bm90IGFsbG9jYXRl ZD4iICJwdHlwZSB2bGEyIG5vdCBpbml0aWFsaXplZCIKKy1nZGJfdGVzdCAicHR5cGUgcHZsYSIg InR5cGUgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCisr Z2RiX3Rlc3QgInB0eXBlIHZsYTEiICJ0eXBlID0gJHJlYWwgXFwoOiw6LDpcXCkiICJwdHlwZSB2 bGExIG5vdCBpbml0aWFsaXplZCIKKytnZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSAkcmVh bCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTIgbm90IGluaXRpYWxpemVkIgorK2dkYl90ZXN0ICJw dHlwZSBwdmxhIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUgcHZsYSBub3QgaW5p dGlhbGl6ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3Rv ciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2bGEx KDMsIDYsIDkpIG5vdCBpbml0aWFsaXplZCIKKyBnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwg MjApIiBcCitAQCAtODEsMjAgKzgxLDIwIEBACisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInB2bGEtZGVhc3NvY2lhdGVkIl0KKyBnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAicHZsYS1kZWFzc29jaWF0ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHB2bGEiICJ0eXBlID0g PG5vdCBhc3NvY2lhdGVkPiIgInB0eXBlIHB2bGEgZGVhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJw dHlwZSBwdmxhIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUgcHZsYSBkZWFzc29j aWF0ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHB2bGEoNSwgNDUsIDIwKSIgXAorICAgIm5vIHN1Y2gg dmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRlZFxcXCkiIFwKKyAgICJwdHlw ZSBwdmxhKDUsIDQ1LCAyMCkgbm90IGFzc29jaWF0ZWQiCisgCisgZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgInZsYTEtZGVhbGxvY2F0ZWQiXQorIGdkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2bGExLWRlYWxsb2NhdGVkIgorLWdkYl90ZXN0ICJwdHlwZSB2bGExIiAidHlw ZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBlIHZsYTEgbm90IGFsbG9jYXRlZCIKKytnZGJfdGVz dCAicHR5cGUgdmxhMSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTEgbm90 IGFsbG9jYXRlZCIKKyBnZGJfdGVzdCAicHR5cGUgdmxhMSgzLCA2LCA5KSIgIm5vIHN1Y2ggdmVj dG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAorICAgInB0eXBlIHZs YTEoMywgNiwgOSkgbm90IGFsbG9jYXRlZCIKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAidmxhMi1kZWFsbG9jYXRlZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9p bnQgInZsYTItZGVhbGxvY2F0ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0gPG5v dCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMiBub3QgYWxsb2NhdGVkIgorK2dkYl90ZXN0ICJwdHlw ZSB2bGEyIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUgdmxhMiBub3QgYWxsb2Nh dGVkIgorIGdkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKKyAgICJubyBzdWNoIHZl Y3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2 bGEyKDUsIDQ1LCAyMCkgbm90IGFsbG9jYXRlZCIKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAorPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt dHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAkyMDE2 LTA3LTE2IDEwOjU1OjQyLjA4MDUyNTg2OCArMDIwMAorQEAgLTEzMiw3ICsxMzIsMTAgQEAKKyAg ICAgICAgICAgICAgICAgICAgICAiRW5kIFR5cGUgb25lIiBdCisgCisgIyBDaGVjayBhbGxvY2F0 aW9uIHN0YXR1cyBvZiBkeW5hbWljIGFycmF5IGFuZCBpdCdzIGR5bmFtaWMgbWVtYmVycworLWdk Yl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyIiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIKKytnZGJf dGVzdCAicHR5cGUgZml2ZWR5bmFyciIgXAorKyAgICAgICAgIFttdWx0aV9saW5lICJ0eXBlID0g VHlwZSBmaXZlIiBcCisrICAgICAgICAgICAgICAgICAgICAgIiAgICBUeXBlIG9uZSA6OiB0b25l IiBcCisrICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIGZpdmUgXFwoOlxcKSIgXQorIGdk Yl90ZXN0ICJuZXh0IiAiIgorIGdkYl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyKDIpIiBcCisgICAg ICAgICAgW211bHRpX2xpbmUgInR5cGUgPSBUeXBlIGZpdmUiIFwKK0BAIC0xNDEsNyArMTQ0LDcg QEAKKyAgICAgICAgICAicHR5cGUgZml2ZWR5bmFycigyKSwgdG9uZSBpcyBub3QgYWxsb2NhdGVk IgorIGdkYl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyKDIpJXRvbmUiIFwKKyAgICAgICAgICBbbXVs dGlfbGluZSAidHlwZSA9IFR5cGUgb25lIiBcCistICAgICAgICAgICAgICAgICAgICAgIiAgICAk aW50IDo6IGl2bGFcXCg8bm90IGFsbG9jYXRlZD5cXCkiIFwKKysgICAgICAgICAgICAgICAgICAg ICAiICAgICRpbnQgOjogaXZsYVxcKDosOiw6XFwpIiBcCisgICAgICAgICAgICAgICAgICAgICAg IkVuZCBUeXBlIG9uZSIgXSBcCisgICAgICAgICAgInB0eXBlIGZpdmVkeW5hcnIoMikldG9uZSwg bm90IGFsbG9jYXRlZCIKKyAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41 MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAky MDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE2LTA3LTE2IDEw OjU1OjQyLjA4MDUyNTg2OCArMDIwMAorQEAgLTM0LDcgKzM0LDcgQEAKKyBnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAidmxhMS1pbml0IgorIGdkYl90ZXN0ICJwcmludCB2bGExIiAiID0gPG5v dCBhbGxvY2F0ZWQ+IiAicHJpbnQgbm9uLWFsbG9jYXRlZCB2bGExIgorIGdkYl90ZXN0ICJwcmlu dCAmdmxhMSIgXAorLSAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhbGxv Y2F0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJl YWwgXFxcKDosOiw6XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBub24tYWxsb2NhdGVk ICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVs ZW1lbnQgXFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAorICAgInByaW50IG1lbWJlciBp biBub24tYWxsb2NhdGVkIHZsYTEgKDEpIgorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIFRyeSB0byBh Y2Nlc3MgdmFsdWVzIGluIHVuZGVmaW5lZCBwb2ludGVyIHRvIFZMQSAoZGFuZ2xpbmcpCisgZ2Ri X3Rlc3QgInByaW50IHB2bGEiICIgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHJpbnQgdW5kZWZpbmVk IHB2bGEiCisgZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBcCistICAiID0gXFxcKFBUUiBUTyAtPiBc XFwoICRyZWFsIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIg PSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDosOiw6XFxcKVxcXClcXFwpICRoZXgiIFwK KyAgICJwcmludCBub24tYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgx LCAzLCA4KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRl ZFxcXCkiIFwKKyAgICJwcmludCB1bmRlZmluZWQgcHZsYSgxLDMsOCkiCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5taS9taS12bGEtZm9ydHJhbi5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEt Zm9ydHJhbi5leHAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0xNyw2 ICsxNyw3IEBACisgIyBBcnJheSAoVkxBKS4KKyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAor K2xvYWRfbGliIGZvcnRyYW4uZXhwCisgc2V0IE1JRkxBR1MgIi1pPW1pIgorIGxvYWRfbGliICJm b3J0cmFuLmV4cCIKKyAKK0BAIC01MCwxMCArNTEsMTAgQEAKKyBtaV9nZGJfdGVzdCAiNTAwLWRh dGEtZXZhbHVhdGUtZXhwcmVzc2lvbiB2bGExIiBcCisgICAiNTAwXFxeZG9uZSx2YWx1ZT1cIjxu b3QgYWxsb2NhdGVkPlwiIiAiZXZhbHVhdGUgbm90IGFsbG9jYXRlZCB2bGEiCisgCistbWlfY3Jl YXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfbm90X2FsbG9jYXRlZCB2bGExICI8bm90IGFsbG9jYXRl ZD4iIFwKKyttaV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgdmxhMV9ub3RfYWxsb2NhdGVkIHZsYTEg IiRyZWFsIFxcKDpcXCkiIFwKKyAgICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgdmxhMV9ub3RfYWxs b2NhdGVkIgorIG1pX2dkYl90ZXN0ICI1MDEtdmFyLWluZm8tdHlwZSB2bGExX25vdF9hbGxvY2F0 ZWQiIFwKKy0gICI1MDFcXF5kb25lLHR5cGU9XCI8bm90IGFsbG9jYXRlZD5cIiIgXAorKyAgIjUw MVxcXmRvbmUsdHlwZT1cIiRyZWFsIFxcKDpcXClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJs ZSB2bGExX25vdF9hbGxvY2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUwMi12YXItc2hvdy1mb3JtYXQg dmxhMV9ub3RfYWxsb2NhdGVkIiBcCisgICAiNTAyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIi IFwKK0BAIC0xNDAsMTAgKzE0MSwxMCBAQAorICAgICAtcmUgIjU4MFxcXmRvbmUsdmFsdWU9XCI8 bm90IGFzc29jaWF0ZWQ+XCIuKiR7bWlfZ2RiX3Byb21wdH0kIiB7CisgCXBhc3MgJHRlc3QKKyAK Ky0JbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHB2bGEyX25vdF9hc3NvY2lhdGVkIHB2bGEyICI8 bm90IGFzc29jaWF0ZWQ+IiBcCisrCW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9ub3Rf YXNzb2NpYXRlZCBwdmxhMiAiJHJlYWwgXFwoOiw6XFwpIiBcCisgCSAgICAiY3JlYXRlIGxvY2Fs IHZhcmlhYmxlIHB2bGEyX25vdF9hc3NvY2lhdGVkIgorIAltaV9nZGJfdGVzdCAiNTgxLXZhci1p bmZvLXR5cGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiIFwKKy0JICAgICI1ODFcXF5kb25lLHR5cGU9 XCI8bm90IGFzc29jaWF0ZWQ+XCIiIFwKKysJICAgICI1ODFcXF5kb25lLHR5cGU9XCIkcmVhbCBc XCg6LDpcXClcIiIgXAorIAkgICAgImluZm8gdHlwZSB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2Np YXRlZCIKKyAJbWlfZ2RiX3Rlc3QgIjU4Mi12YXItc2hvdy1mb3JtYXQgcHZsYTJfbm90X2Fzc29j aWF0ZWQiIFwKKyAJICAgICI1ODJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxcIiIgXAoKZGlmZiAt LWdpdCBhL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGNmYzU3Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC01b2Y3LnBhdGNoCkBAIC0wLDAgKzEsMzQ1IEBACitGcm9t IGI2ZTY2OGNjZDM1NmVhM2U3NWQzMGYyMDMxNDMzNGIxMjAzYzIyZGUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBCZXJuaGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5j b20+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDE2IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFU Q0ggNS83XSBSZXNvbHZlIGR5bmFtaWMgdGFyZ2V0IHR5cGVzIG9mIHBvaW50ZXJzLgorCitXaGVu IGRlcmVmZXJlbmNpbmcgcG9pbnRlcnMgdG8gZHluYW1pYyB0YXJnZXQgdHlwZXMsCityZXNvbHZl IHRoZSB0YXJnZXQgdHlwZS4KKworMjAxNi0wNi0zMCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhh cmQuaGVja2VsQGludGVsLmNvbT4KKworZ2RiL0NoYW5nZWxvZzoKKwkqIE5FV1M6IEFkZGVkIGVu dHJ5LgorCSogYy12YWxwcmludC5jIChjX3ByaW50X3ZhbCk6IFJlc29sdmUgZHluYW1pYyB0YXJn ZXQgdHlwZXMuCisJKiB2YWxvcHMuYyAodmFsdWVfaW5kKTogUmVzb2x2ZSBkeW5hbWljIHRhcmdl dCB0eXBlcy4KKwkqIHZhbHByaW50LmMgKGNoZWNrX3ByaW50YWJsZSk6IERvbid0IHNob3J0Y3V0 IG5vdCBhc3NvY2lhdGVkCisJICBwb2ludGVycy4KKworZ2RiL1Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6 CisJKiBwb2ludGVycy5mOTA6IEFkZGVkIHBvaW50ZXIgdG8gZHluYW1pYyB0eXBlcy4KKwkqIGdk Yi5mb3J0cmFuL3BvaW50ZXJzLmV4cDogTmV3LgorCitDaGFuZ2UtSWQ6IEk5OThkNGRhNGE1YmE0 ODk5YjhjYjIxMTU1NzZmNDRlZmE3NDFlNjk4CistLS0KKyBnZGIvTkVXUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArCisgZ2RiL2MtdmFscHJpbnQuYyAgICAgICAgICAgICAg ICAgICAgICAgfCAgMjIgKysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAg ICAgICAgfCAgIDQgKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCB8 IDEyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3BvaW50ZXJzLmY5MCB8ICAxNyArKysrKworIGdkYi92YWxvcHMuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDE2ICsrKystCisgZ2RiL3ZhbHByaW50LmMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDYgLS0KKyA3IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25z KCspLCA4IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3BvaW50ZXJzLmV4cAorCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L05FV1MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9ORVdT CTIwMTYtMDgtMDcgMjE6MTg6NDQuMDMyNDA5MDY1ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAx NjA4MDcvZ2RiL05FV1MJMjAxNi0wOC0wNyAyMToxOToxNy4xNzg3MTUxMTYgKzAyMDAKK0BAIC0x LDYgKzEsOCBAQAorIAkJV2hhdCBoYXMgY2hhbmdlZCBpbiBHREI/CisgCSAgICAgKE9yZ2FuaXpl ZCByZWxlYXNlIGJ5IHJlbGVhc2UpCisgCisrKiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJzIHRv IGR5bmFtaWMgdHlwZXMuCisrCisgKioqIENoYW5nZXMgaW4gR0RCIDcuMTIKKyAKKyAqIEdEQiBh bmQgR0RCc2VydmVyIG5vdyBidWlsZCB3aXRoIGEgQysrIGNvbXBpbGVyIGJ5IGRlZmF1bHQuCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2MtdmFscHJpbnQuYworPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA4LTA3 IDIxOjE4OjQ0LjAzMjQwOTA2NSArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9j LXZhbHByaW50LmMJMjAxNi0wOC0wNyAyMToxODo1MS4wODc0NzQyMDcgKzAyMDAKK0BAIC02NDUs NiArNjQ1LDI4IEBACisgICAgICAgZWxzZQorIAl7CisgCSAgLyogbm9ybWFsIGNhc2UgKi8KKysJ ICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisrCSAgICAgICYmIDEgPT0g aXNfZHluYW1pY190eXBlICh0eXBlKSkKKysJICAgIHsKKysJICAgICAgQ09SRV9BRERSIGFkZHI7 CisrCSAgICAgIGlmIChOVUxMICE9IFRZUEVfREFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSkpKQorKwkJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrCSAgICAgIGVsc2UK KysJCWFkZHIgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWwpOworKworKwkgICAgICAvKiBXZSByZXNv bHZlIHRoZSB0YXJnZXQtdHlwZSBvbmx5IHdoZW4gdGhlCisrCSAgICAgICAgIHBvaW50ZXIgaXMg YXNzb2NpYXRlZC4gICovCisrCSAgICAgIGlmICgoYWRkciAhPSAwKQorKwkJICAmJiAoMCA9PSB0 eXBlX25vdF9hc3NvY2lhdGVkICh0eXBlKSkpCisrCQkgIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUp ID0KKysJCSAgICAgIHJlc29sdmVfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSwKKysJCQkJCSAgICBOVUxMLCBhZGRyKTsKKysJICAgIH0KKysJICBlbHNlCisrCSAgICB7Cisr CSAgICAgIC8qIERvIG5vdGhpbmcuIFJlZmVyZW5jZXMgYXJlIGFscmVhZHkgcmVzb2x2ZWQgZnJv bSB0aGUgYmVnaW5uaW5nLAorKwkgICAgICAgICBvbmx5IHBvaW50ZXJzIGFyZSByZXNvbHZlZCB3 aGVuIHdlIGFjdHVhbCBuZWVkIHRoZSB0YXJnZXQuICAqLworKwkgICAgfQorIAkgIGZwcmludGZf ZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKKyAJICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwp LCAiIiwgc3RyZWFtLCAtMSk7CisgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsK K0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4 LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAJMjAxNi0wOC0wNyAyMToxODo0NC4wMzM0MDkwNzQgKzAy MDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4 LmV4cAkyMDE2LTA4LTA3IDIxOjE4OjUxLjA4ODQ3NDIxNiArMDIwMAorQEAgLTI2LDYgKzI2LDgg QEAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIg YXNzaWdubWVudCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVy IGFzc2lnbm1lbnQiCisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbdmFy aWFibGUgbGVuZ3RoXFxcXSIgInB0eXBlIHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIK KytnZGJfdGVzdCAicHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxcKVxcXFt2YXJpYWJsZSBsZW5n dGhcXFxdXFwpIDB4MCIgInByaW50IHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytn ZGJfdGVzdCAicHJpbnQgKnB0ciIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgw IiAicHJpbnQgKnB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKyAKKyBnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmxhc19maWxsZWQiXQorIGdkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJ2bGFzX2ZpbGxlZCIKK0BAIC0zOCwzICs0MCw1IEBACisgZ2RiX3Rlc3Qg InByaW50IHZsYXJlZjIiICIgPSBcXCguKlxcKSBAJGhleDogXFx7NSwgNywgOVxcfSIKKyBnZGJf dGVzdCAicHJpbnQgYyIgIiA9IFxce2UgPSBcXHtjID0gQCRoZXhcXH1cXH0iCisgZ2RiX3Rlc3Qg InB0eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbM1xcXF0iCisrZ2RiX3Rlc3QgInByaW50IHB0 ciIgIlxcKGludCBcXChcXCpcXClcXFxbM1xcXF1cXCkgJGhleCIKKytnZGJfdGVzdCAicHJpbnQg KnB0ciIgIiA9IFxcezUsIDcsIDlcXH0iCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS45 MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cAkyMDE2LTA4 LTA3IDIxOjE4OjUxLjA4ODQ3NDIxNiArMDIwMAorQEAgLTAsMCArMSwxMjMgQEAKKysjIENvcHly aWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAicG9pbnRlcnMuZjkwIgor K2xvYWRfbGliIGZvcnRyYW4uZXhwCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rl c3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVp ZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAg ICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9Cisr CisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVz IGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5LgorK3NldCBsb2dpY2FsIFtmb3J0cmFuX2xvZ2lj YWw0XQorK3NldCByZWFsIFtmb3J0cmFuX3JlYWw0XQorK3NldCBpbnQgW2ZvcnRyYW5faW50NF0K KytzZXQgY29tcGxleCBbZm9ydHJhbl9jb21wbGV4NF0KKysKKysKKytnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJdCisrZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisrZ2RiX3Rl c3QgInByaW50IGxvZ3AiICI9IFxcKFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpXFwpIDB4MCIg InByaW50IGxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqbG9ncCIgIkNh bm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKmxvZ3AsIG5vdCBhc3Nv Y2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBjb21wIiAiPSBcXChQVFIgVE8gLT4gXFwoICRjb21w bGV4IFxcKVxcKSAweDAiICJwcmludCBjb21wLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAi cHJpbnQgKmNvbXAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50 ICpjb21wLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgY2hhcnAiICI9IFxcKFBU UiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMSBcXClcXCkgMHgwIiAicHJpbnQgY2hhcnAsIG5vdCBh c3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqY2hhcnAiICJDYW5ub3QgYWNjZXNzIG1lbW9y eSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpjaGFycCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rl c3QgInByaW50IGNoYXJhcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxc KSAweDAiICJwcmludCBjaGFyYXAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAq Y2hhcmFwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqY2hh cmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgaW50cCIgIj0gXFwoUFRSIFRP IC0+IFxcKCAkaW50IFxcKVxcKSAweDAiICJwcmludCBpbnRwLCBub3QgYXNzb2NpYXRlZCIKKytn ZGJfdGVzdCAicHJpbnQgKmludHAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4 MCIgInByaW50ICppbnRwLCBub3QgYXNzb2NpYXRlZCIKKytzZXQgdGVzdCAicHJpbnQgaW50YXAs IG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBpbnRhcCIgJHRlc3Qg eworKyAgLXJlICIgPSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwoOiw6XFwpXFwpXFwpIDxub3Qg YXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9Cisr ICAtcmUgIiA9IDxub3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNz ICR0ZXN0CisrICB9CisrfQorK2dkYl90ZXN0ICJwcmludCByZWFscCIgIj0gXFwoUFRSIFRPIC0+ IFxcKCAkcmVhbCBcXClcXCkgMHgwIiAicHJpbnQgcmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorK2dk Yl90ZXN0ICJwcmludCAqcmVhbHAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4 MCIgInByaW50ICpyZWFscCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IFwkbXlf dmFyID0gaW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKVxcKSAweDAiCisrCisrCisr Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSB2YWx1ZSBhc3NpZ25t ZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHZhbHVlIGFzc2lnbm1l bnQiCisrZ2RiX3Rlc3QgInByaW50ICoodHdvcCklaXZsYTIiICI9IDxub3QgYWxsb2NhdGVkPiIK KysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQWZ0ZXIgdmFsdWUg YXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkFmdGVyIHZhbHVlIGFz c2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50IGxvZ3AiICI9IFxcKFBUUiBUTyAtPiBcXCggJGxv Z2ljYWwgXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqbG9ncCIgIj0g XFwuVFJVRVxcLiIKKytnZGJfdGVzdCAicHJpbnQgY29tcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAk Y29tcGxleCBcXClcXCkgJGhleFwoIDwuKj5cKT8iCisrZ2RiX3Rlc3QgInByaW50ICpjb21wIiAi PSBcXCgxLDJcXCkiCisrZ2RiX3Rlc3QgInByaW50IGNoYXJwIiAiPSBcXChQVFIgVE8gLT4gXFwo IGNoYXJhY3RlclxcKjEgXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAq Y2hhcnAiICI9ICdhJyIKKytnZGJfdGVzdCAicHJpbnQgY2hhcmFwIiAiPSBcXChQVFIgVE8gLT4g XFwoIGNoYXJhY3RlclxcKjMgXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmlu dCAqY2hhcmFwIiAiPSAnYWJjJyIKKytnZGJfdGVzdCAicHJpbnQgaW50cCIgIj0gXFwoUFRSIFRP IC0+IFxcKCAkaW50IFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmlu dHAiICI9IDEwIgorK3NldCB0ZXN0X25hbWUgInByaW50IGludGFwLCBhc3NvY2lhdGVkIgorK2dk Yl90ZXN0X211bHRpcGxlICJwcmludCBpbnRhcCIgJHRlc3RfbmFtZSB7CisrICAtcmUgIj0gXFwo XFwoIDEsIDEsIDMoLCAxKXs3fVxcKSBcXCggMSgsIDEpezl9XFwpIFxcKVxyXG4kZ2RiX3Byb21w dCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICI9IFxcKFBUUiBUTyAt PiBcXCggJGludCBcXCgxMCwyXFwpXFwpXFwpICRoZXhcKCA8Lio+XCk/XHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysgICAgZ2RiX3Rlc3QgInByaW50ICppbnRhcCIgIj0gXFwoXFwoIDEsIDEsIDMoLCAx KXs3fVxcKSBcXCggMSgsIDEpezl9XFwpIFxcKSIKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9 CisrfQorK3NldCB0ZXN0X25hbWUgInByaW50IGludHZsYXAsIGFzc29jaWF0ZWQiCisrZ2RiX3Rl c3RfbXVsdGlwbGUgInByaW50IGludHZsYXAiICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKDIs IDIsIDIsIDQoLCAyKXs2fVxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3Rf bmFtZQorKyAgfQorKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXCgxMFxcKVxcKVxc KSAkaGV4XCggPC4qPlwpP1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIGdkYl90ZXN0ICJwcmlu dCAqaW50dmxhcCIgIj0gXFwoMiwgMiwgMiwgNCgsIDIpezZ9XFwpIgorKyAgICBwYXNzICR0ZXN0 X25hbWUKKysgIH0KKyt9CisrZ2RiX3Rlc3QgInByaW50IHJlYWxwIiAiPSBcXChQVFIgVE8gLT4g XFwoICRyZWFsIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKnJlYWxw IiAiPSAzXFwuMTQwMDBcXGQrIgorK2dkYl90ZXN0ICJwcmludCBhcnJheU9mUHRyKDIpJXAiICI9 IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0d28gXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90 ZXN0ICJwcmludCAqKGFycmF5T2ZQdHIoMiklcCkiICI9IFxcKCBpdmxhMSA9IFxcKDExLCAxMiwg MTNcXCksIGl2bGEyID0gXFwoXFwoIDIxMSwgMjIxXFwpIFxcKCAyMTIsIDIyMlxcKSBcXCkgXFwp IgorK3NldCB0ZXN0X25hbWUgInByaW50IGFycmF5T2ZQdHIoMyklcCIKKytnZGJfdGVzdF9tdWx0 aXBsZSAkdGVzdF9uYW1lICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCgg VHlwZSB0d28gXFwpXFwpIDxub3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAg ICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUg dHdvIFxcKVxcKSAweDBcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUK KysgIH0KKyt9Cisrc2V0IHRlc3RfbmFtZSAicHJpbnQgKihhcnJheU9mUHRyKDMpJXApLCBhc3Nv Y2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCAqKGFycmF5T2ZQdHIoMyklcCkiICR0 ZXN0X25hbWUgeworKyAgLXJlICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MFxy XG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICJB dHRlbXB0IHRvIHRha2UgY29udGVudHMgb2YgYSBub3QgYXNzb2NpYXRlZCBwb2ludGVyLlxyXG4k Z2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorK30KKytnZGJfdGVz dCAicHJpbnQgKigoaW50ZWdlciopICZpbnRhICsgMikiICI9IDMiICJwcmludCB0ZW1wb3Jhcnkg cG9pbnRlciwgYXJyYXkiCisrZ2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50dmxhICsg MykiICI9IDQiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYWxsb2NhdGVkIHZsYSIKKytnZGJf dGVzdCAicHJpbnQgXCRwYyIgIj0gXFwoUFRSIFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxc KVxcKSAkaGV4IDxwb2ludGVyc1xcK1xcZCs+IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVyIgorSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRl cnMuZjkwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAkyMDE2LTA4LTA3IDIxOjE4OjQ0LjAzMzQw OTA3NCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vcG9pbnRlcnMuZjkwCTIwMTYtMDgtMDcgMjE6MTg6NTEuMDg4NDc0MjE2ICswMjAwCitA QCAtMjAsMTQgKzIwLDIwIEBACisgICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6 LCA6KQorICAgZW5kIHR5cGUgdHdvCisgCisrICB0eXBlIDo6IHR3b1B0cgorKyAgICB0eXBlICh0 d28pLCBwb2ludGVyIDo6IHAKKysgIGVuZCB0eXBlIHR3b1B0cgorKworICAgbG9naWNhbCwgdGFy Z2V0IDo6IGxvZ3YKKyAgIGNvbXBsZXgsIHRhcmdldCA6OiBjb212CisgICBjaGFyYWN0ZXIsIHRh cmdldCA6OiBjaGFydgorICAgY2hhcmFjdGVyIChsZW49MyksIHRhcmdldCA6OiBjaGFyYQorICAg aW50ZWdlciwgdGFyZ2V0IDo6IGludHYKKyAgIGludGVnZXIsIHRhcmdldCwgZGltZW5zaW9uICgx MCwyKSA6OiBpbnRhCisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlLCBkaW1lbnNpb24g KDopIDo6IGludHZsYQorICAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2CisgICB0eXBlKHR3byks IHRhcmdldCAgOjogdHdvdgorKyAgdHlwZSh0d29QdHIpIDo6IGFycmF5T2ZQdHIgKDMpCisgCisg ICBsb2dpY2FsLCBwb2ludGVyIDo6IGxvZ3AKKyAgIGNvbXBsZXgsIHBvaW50ZXIgOjogY29tcAor QEAgLTM1LDYgKzQxLDcgQEAKKyAgIGNoYXJhY3RlciAobGVuPTMpLCBwb2ludGVyOjogY2hhcmFw CisgICBpbnRlZ2VyLCBwb2ludGVyIDo6IGludHAKKyAgIGludGVnZXIsIHBvaW50ZXIsIGRpbWVu c2lvbiAoOiw6KSA6OiBpbnRhcAorKyAgaW50ZWdlciwgcG9pbnRlciwgZGltZW5zaW9uICg6KSA6 OiBpbnR2bGFwCisgICByZWFsLCBwb2ludGVyIDo6IHJlYWxwCisgICB0eXBlKHR3byksIHBvaW50 ZXIgOjogdHdvcAorIAorQEAgLTQ0LDggKzUxLDEyIEBACisgICBudWxsaWZ5IChjaGFyYXApCisg ICBudWxsaWZ5IChpbnRwKQorICAgbnVsbGlmeSAoaW50YXApCisrICBudWxsaWZ5IChpbnR2bGFw KQorICAgbnVsbGlmeSAocmVhbHApCisgICBudWxsaWZ5ICh0d29wKQorKyAgbnVsbGlmeSAoYXJy YXlPZlB0cigxKSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigyKSVwKQorKyAgbnVsbGlmeSAo YXJyYXlPZlB0cigzKSVwKQorIAorICAgbG9ncCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIg YXNzaWdubWVudAorICAgY29tcCA9PiBjb212CitAQCAtNTMsOCArNjQsMTAgQEAKKyAgIGNoYXJh cCA9PiBjaGFyYQorICAgaW50cCA9PiBpbnR2CisgICBpbnRhcCA9PiBpbnRhCisrICBpbnR2bGFw ID0+IGludHZsYQorICAgcmVhbHAgPT4gcmVhbHYKKyAgIHR3b3AgPT4gdHdvdgorKyAgYXJyYXlP ZlB0cigyKSVwID0+IHR3b3YKKyAKKyAgIGxvZ3YgPSBhc3NvY2lhdGVkKGxvZ3ApICAgICAhIEJl Zm9yZSB2YWx1ZSBhc3NpZ25tZW50CisgICBjb212ID0gY21wbHgoMSwyKQorQEAgLTYzLDYgKzc2 LDEwIEBACisgICBpbnR2ID0gMTAKKyAgIGludGEoOiw6KSA9IDEKKyAgIGludGEoMywxKSA9IDMK KysgIGFsbG9jYXRlIChpbnR2bGEoMTApKQorKyAgaW50dmxhKDopID0gMgorKyAgaW50dmxhKDQp ID0gNAorKyAgaW50dmxhcCA9PiBpbnR2bGEKKyAgIHJlYWx2ID0gMy4xNAorIAorICAgYWxsb2Nh dGUgKHR3b3YlaXZsYTEoMykpCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3ZhbG9w cy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNi0wOC0wNyAyMToxODo0NC4wMzU0MDkwOTMgKzAyMDAKKysrKyBnZGItNy4xMS45MC4y MDE2MDgwNy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMToxODo1MS4wODk0NzQyMjUgKzAyMDAK K0BAIC0xNTYyLDYgKzE1NjIsMTkgQEAKKyAgIGlmIChUWVBFX0NPREUgKGJhc2VfdHlwZSkgPT0g VFlQRV9DT0RFX1BUUikKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICplbmNfdHlwZTsKKysg ICAgICBDT1JFX0FERFIgYWRkcjsKKysKKysgICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAo YmFzZV90eXBlKSkKKysgICAgICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgY29udGVudHMg b2YgYSBub3QgYXNzb2NpYXRlZCBwb2ludGVyLiIpKTsKKysKKysgICAgICBpZiAoTlVMTCAhPSBU WVBFX0RBVEFfTE9DQVRJT04gKFRZUEVfVEFSR0VUX1RZUEUgKGJhc2VfdHlwZSkpKQorKwlhZGRy ID0gdmFsdWVfYWRkcmVzcyAoYXJnMSk7CisrICAgICAgZWxzZQorKwlhZGRyID0gdmFsdWVfYXNf YWRkcmVzcyAoYXJnMSk7CisrCisrICAgICAgaWYgKGFkZHIgIT0gMCkKKysJVFlQRV9UQVJHRVRf VFlQRSAoYmFzZV90eXBlKSA9CisrCSAgICByZXNvbHZlX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJH RVRfVFlQRSAoYmFzZV90eXBlKSwgTlVMTCwgYWRkcik7CisgCisgICAgICAgLyogV2UgbWF5IGJl IHBvaW50aW5nIHRvIHNvbWV0aGluZyBlbWJlZGRlZCBpbiBhIGxhcmdlciBvYmplY3QuCisgICAg ICAgICAgR2V0IHRoZSByZWFsIHR5cGUgb2YgdGhlIGVuY2xvc2luZyBvYmplY3QuICAqLworQEAg LTE1NzcsOCArMTU5MCw3IEBACisgICAgICAgZWxzZQorIAkvKiBSZXRyaWV2ZSB0aGUgZW5jbG9z aW5nIG9iamVjdCBwb2ludGVkIHRvLiAgKi8KKyAJYXJnMiA9IHZhbHVlX2F0X2xhenkgKGVuY190 eXBlLCAKKy0JCQkgICAgICAodmFsdWVfYXNfYWRkcmVzcyAoYXJnMSkKKy0JCQkgICAgICAgLSB2 YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoYXJnMSkpKTsKKysJCQkgICAgICAoYWRkciAtIHZhbHVl X3BvaW50ZWRfdG9fb2Zmc2V0IChhcmcxKSkpOworIAorICAgICAgIGVuY190eXBlID0gdmFsdWVf dHlwZSAoYXJnMik7CisgICAgICAgcmV0dXJuIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUg KGFyZzIsIGVuY190eXBlLCBiYXNlX3R5cGUsIGFyZzEpOworSW5kZXg6IGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi92YWxwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4 MDcub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE2LTA4LTA3IDA0OjAwOjAxLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92YWxwcmludC5jCTIwMTYtMDgtMDcgMjE6 MTg6NTEuMDkwNDc0MjM1ICswMjAwCitAQCAtMTE0MSwxMiArMTE0MSw2IEBACisgICAgICAgcmV0 dXJuIDA7CisgICAgIH0KKyAKKy0gIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkICh2YWx1ZV90eXBl ICh2YWwpKSkKKy0gICAgeworLSAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFt KTsKKy0gICAgICByZXR1cm4gMDsKKy0gICAgfQorLQorICAgaWYgKHR5cGVfbm90X2FsbG9jYXRl ZCAodmFsdWVfdHlwZSAodmFsKSkpCisgICAgIHsKKyAgICAgICB2YWxfcHJpbnRfbm90X2FsbG9j YXRlZCAoc3RyZWFtKTsKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTZvZjcucGF0Y2ggYi9n ZGItdmxhLWludGVsLTZvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNDU5NjhlOQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtNm9mNy5wYXRjaApA QCAtMCwwICsxLDEwMiBAQAorRnJvbSA4NjY1MzQ0YzE0YjlhZThiMmUwYzM3YmEwNmQ2ODgxYTU0 NmQxYTM3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxi ZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOToz NCArMDIwMAorU3ViamVjdDogW1BBVENIIDYvN10gRm9ydHJhbjogVGVzdHN1aXRlLCBhZGQgY3lj bGljIHBvaW50ZXJzLgorCisyMDE2LTA1LTI1ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5o ZWNrZWxAaW50ZWwuY29tPgorCitnZGIvdGVzdHN1aXRlL0NoYW5nZWxvZzoKKwkqIHBvaW50ZXJz LmY5MDogQWRkIGN5bGljIHBvaW50ZXJzLgorCSogcG9pbnRlcnMuZXhwOiBBZGQgcHJpbnQgb2Yg Y3ljbGljIHBvaW50ZXJzLgorCitDaGFuZ2UtSWQ6IEljM2I2MTg3YzU5ODBmZDZjMzdlMmU5NDc4 N2Y4MzIxZTViN2YyZDc1CistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJz LmV4cCB8IDIwICsrKysrKysrKysrKysrKysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9wb2ludGVycy5mOTAgfCAxMiArKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDMyIGlu c2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9p bnRlcnMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKK2luZGV4 IGMxOWQ3ZTAuLjY3Y2Y5OTkgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3BvaW50ZXJzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5l eHAKK0BAIC01Nyw2ICs1NywyNCBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgaW50YXAiICR0 ZXN0IHsKKyBnZGJfdGVzdCAicHJpbnQgcmVhbHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJHJlYWwg XFwpXFwpIDB4MCIgInByaW50IHJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJp bnQgKnJlYWxwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAq cmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorIGdkYl90ZXN0ICJwcmludCBcJG15X3ZhciA9IGludHAi ICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXClcXCkgMHgwIgorK3NldCB0ZXN0ICJwcmludCBj eWNsaWNwMSwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGN5Y2xp Y3AxIiAkdGVzdCB7CisrICAtcmUgIj0gXFwoIGkgPSAtP1xcZCssIHAgPSAweDAgXFwpXHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorKyAgLXJlICI9IFxcKCBpID0g LT9cXGQrLCBwID0gPG5vdCBhc3NvY2lhdGVkPiBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAg ICBwYXNzICR0ZXN0CisrICB9CisrfQorK3NldCB0ZXN0ICJwcmludCBjeWNsaWNwMSVwLCBub3Qg YXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgY3ljbGljcDElcCIgJHRlc3Qg eworKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0eXBld2l0aHBvaW50ZXIgXFwpXFwp IDB4MFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3QKKysgIH0KKysgIC1yZSAi PSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhwb2ludGVyIFxcKVxcKSA8bm90IGFzc29j aWF0ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorK30KKyAK KyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHZhbHVlIGFz c2lnbm1lbnQiXQorQEAgLTExOCw2ICsxMzYsOCBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQg KihhcnJheU9mUHRyKDMpJXApIiAkdGVzdF9uYW1lIHsKKyAgICAgcGFzcyAkdGVzdF9uYW1lCisg ICB9CisgfQorK2dkYl90ZXN0ICJwcmludCBjeWNsaWNwMSIgIj0gXFwoIGkgPSAxLCBwID0gJGhl eFwoIDwuKj5cKT8gXFwpIgorK2dkYl90ZXN0ICJwcmludCBjeWNsaWNwMSVwIiAiPSBcXChQVFIg VE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhwb2ludGVyIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKyBn ZGJfdGVzdCAicHJpbnQgKigoaW50ZWdlciopICZpbnRhICsgMikiICI9IDMiICJwcmludCB0ZW1w b3JhcnkgcG9pbnRlciwgYXJyYXkiCisgZ2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50 dmxhICsgMykiICI9IDQiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYWxsb2NhdGVkIHZsYSIK KyBnZGJfdGVzdCAicHJpbnQgXCRwYyIgIj0gXFwoUFRSIFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxc KFxcKVxcKVxcKSAkaGV4IDxwb2ludGVyc1xcK1xcZCs+IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVy IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKK2luZGV4IDAwMDE5M2MuLjYy NDBjODcgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5 MAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKK0BAIC0yMCw2 ICsyMCwxMSBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6 IGl2bGEyICg6LCA6KQorICAgZW5kIHR5cGUgdHdvCisgCisrICB0eXBlIDo6IHR5cGVXaXRoUG9p bnRlcgorKyAgICBpbnRlZ2VyIGkKKysgICAgdHlwZSh0eXBlV2l0aFBvaW50ZXIpLCBwb2ludGVy OjogcAorKyAgZW5kIHR5cGUgdHlwZVdpdGhQb2ludGVyCisrCisgICB0eXBlIDo6IHR3b1B0cgor ICAgICB0eXBlICh0d28pLCBwb2ludGVyIDo6IHAKKyAgIGVuZCB0eXBlIHR3b1B0cgorQEAgLTM0 LDYgKzM5LDcgQEAgcHJvZ3JhbSBwb2ludGVycworICAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2 CisgICB0eXBlKHR3byksIHRhcmdldCAgOjogdHdvdgorICAgdHlwZSh0d29QdHIpIDo6IGFycmF5 T2ZQdHIgKDMpCisrICB0eXBlKHR5cGVXaXRoUG9pbnRlciksIHRhcmdldDo6IGN5Y2xpY3AxLGN5 Y2xpY3AyCisgCisgICBsb2dpY2FsLCBwb2ludGVyIDo6IGxvZ3AKKyAgIGNvbXBsZXgsIHBvaW50 ZXIgOjogY29tcAorQEAgLTU3LDYgKzYzLDggQEAgcHJvZ3JhbSBwb2ludGVycworICAgbnVsbGlm eSAoYXJyYXlPZlB0cigxKSVwKQorICAgbnVsbGlmeSAoYXJyYXlPZlB0cigyKSVwKQorICAgbnVs bGlmeSAoYXJyYXlPZlB0cigzKSVwKQorKyAgbnVsbGlmeSAoY3ljbGljcDElcCkKKysgIG51bGxp ZnkgKGN5Y2xpY3AyJXApCisgCisgICBsb2dwID0+IGxvZ3YgICAgISBCZWZvcmUgcG9pbnRlciBh c3NpZ25tZW50CisgICBjb21wID0+IGNvbXYKK0BAIC02OCw2ICs3NiwxMCBAQCBwcm9ncmFtIHBv aW50ZXJzCisgICByZWFscCA9PiByZWFsdgorICAgdHdvcCA9PiB0d292CisgICBhcnJheU9mUHRy KDIpJXAgPT4gdHdvdgorKyAgY3ljbGljcDElaSA9IDEKKysgIGN5Y2xpY3AxJXAgPT4gY3ljbGlj cDIKKysgIGN5Y2xpY3AyJWkgPSAyCisrICBjeWNsaWNwMiVwID0+IGN5Y2xpY3AxCisgCisgICBs b2d2ID0gYXNzb2NpYXRlZChsb2dwKSAgICAgISBCZWZvcmUgdmFsdWUgYXNzaWdubWVudAorICAg Y29tdiA9IGNtcGx4KDEsMikKKy0tIAorMi43LjQKKwoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50 ZWwtN29mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi43MjZjMzQxCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1p bnRlbC03b2Y3LnBhdGNoCkBAIC0wLDAgKzEsNTE4IEBACitGcm9tIDFlNWJkOWFlYzllZTAyYzJm NzcxZTRkYzk5NzU3MGM4MmQ3NGIzYjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBC ZXJuaGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDEy IEp1bCAyMDE2IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNy83XSBmb3J0X2R5bl9h cnJheTogRm9ydHJhbiBkeW5hbWljIHN0cmluZyBzdXBwb3J0CisKK1RoaXMgcGF0Y2ggY2hhbmdl cyB0aGUgc2VtYW50aWMgb2YgdGhlIER3YXJmIHN0cmluZyBsZW5ndGgKK2F0dHJpYnV0ZSB0byBy ZWZsZWN0IHRoZSBzdGFuZGFyZCBhcyB3ZWxsIGFzIGVuYWJsZXMKK2NvcnJlY3Qgc3RyaW5nIGxl bmd0aCBjYWxjdWxhdGlvbiBvZiBkeW5hbWljIHN0cmluZ3MuIEFkZAordGVzdHMgZm9yIHZhcm91 cyBkeW5hbWljIHN0cmluZyBldmFsdWF0aW9ucy4KKworT2xkOgorKGdkYikgcCBteV9keW5fc3Ry aW5nCitDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4NjA1ZmMwCisKK05ldzoKKyhn ZGIpIHAgKm15X2R5bl9zdHJpbmcKKyQxID0gJ2ZvbycKKworZ2RiL0NoYW5nbG9nOgorCSogZHdh cmYycmVhZC5jIChyZWFkX3RhZ19zdHJpbmdfdHlwZSk6IGNoYW5nZWQKKwlzZW1hbnRpYyBvZiBE V19BVF9zdHJpbmdfbGVuZ3RoIHRvIGJlIGFibGUgdG8KKwloYW5kbGUgRHdhcmYgYmxvY2tzIGFz IHdlbGwuIFN1cHBvcnQgZm9yCisJRFdfQVRfYnl0ZV9sZW5ndGggYWRkZWQgdG8gZ2V0IGNvcnJl Y3QgbGVuZ3RoCisJaWYgc3BlY2lmaWVkIGluIGNvbWJpbmF0aW9uIHdpdGgKKwlEV19BVF9zdHJp bmdfbGVuZ3RoLgorCShhdHRyX3RvX2R5bmFtaWNfcHJvcCk6IGFkZGVkCisJZnVuY3Rpb25hbGl0 eSB0byBhZGQgRHdhcmYgb3BlcmF0b3JzIHRvIGJhdG9uCisJZGF0YSBhdHRyaWJ1dGUuIEFkZGVk IHBvc3QgdmFsdWVzIHRvIGJhdG9uCisJYXMgcmVxdWlyZWQgYnkgdGhlIHN0cmluZyBldmFsdWF0 aW9uIGNhc2UuCisJKHJlYWRfc3VicmFuZ2VfdHlwZSk6IEFkYXB0IGNhbGxlci4KKwkoc2V0X2Rp ZV90eXBlKTogQWRhcHQgY2FsbGVyLgorCShhZGRfcG9zdF92YWx1ZXNfdG9fYmF0b24pOiBOZXcg ZnVuY3Rpb24uCisgICAgCSogZ2RidHlwZXMuYyAocmVzb2x2ZV9keW5hbWljX3R5cGUpOiBBZGQK KyAgICAJY29uZGl0aW9ucyB0byBzdXBwb3J0IHN0cmluZyB0eXBlcy4KKyAgICAJKHJlc29sdmVf ZHluYW1pY19hcnJheSk6IEFkZCBjb25kaXRpb25zIGZvciBkeW5hbWljCisgICAgCXN0cmluZ3Mg YW5kIGNyZWF0ZSBhIG5ldyBzdHJpbmcgdHlwZS4KKyAgICAJKGlzX2R5bmFtaWNfdHlwZSk6IEZv bGxvdyBwb2ludGVyIGlmIGEgc3RyaW5nIHR5cGUKKyAgICAJd2FzIGRldGVjdGVkLCBhcyBGb3J0 cmFuIHN0cmluZ3MgYXJlIHJlcHJlc2VudGVkCisgICAgCWFzIHBvaW50ZXJzIHRvIHN0cmluZ3Mg aW50ZXJuYWxseS4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiB2bGEtc3RyaW5ncy5m OTA6IE5ldyBmaWxlLgorCSogdmxhLXN0cmluZ3MuZXhwOiBOZXcgZmlsZS4KKworQ2hhbmdlLUlk OiBJN2Q3ZjQ3YzdhNDkwMGE3ZmRiNTExMDIwMzI0NTViNTNkNjBlNjBkNworLS0tCisgZ2RiL2R3 YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTggKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tCisgZ2RiL2dkYnR5cGVzLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMTUgKystCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAg fCAxMDMgKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmluZ3MuZjkwIHwgIDM5ICsrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCAyODUgaW5zZXJ0 aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCisKK2RpZmYgLS1naXQgYS9nZGIv ZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYworaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAx MDA2NDQKKy0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKKysrKyBiL2dkYi9kd2FyZjJyZWFkLmMKK0BA IC0xNzY0LDcgKzE3NjQsOCBAQCBzdGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3Ry dWN0IHNpZ25hdHVyZWRfdHlwZSAqKTsKKyAKKyBzdGF0aWMgaW50IGF0dHJfdG9fZHluYW1pY19w cm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAorIAkJCQkgc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAorLQkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAq cHJvcCk7CisrCQkJCSBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLCBjb25zdCBnZGJfYnl0ZSAq YWRkaXRpb25hbF9kYXRhLAorKwkJCQkgaW50IGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKyAKKyAv KiBtZW1vcnkgYWxsb2NhdGlvbiBpbnRlcmZhY2UgKi8KKyAKK0BAIC0xMTQzNyw3ICsxMTQzOCw3 IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorICAgICB7CisgICAgICAgbmV3b2JqLT5zdGF0aWNfbGluaworIAk9IFhPQk5FVyAo Jm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFtaWNfcHJvcCk7CistICAgICAg YXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmsp OworKyAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0 YXRpY19saW5rLCBOVUxMLCAwKTsKKyAgICAgfQorIAorICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAm bG9jYWxfc3ltYm9sczsKK0BAIC0xNDQ5NSwyOSArMTQ0OTYsOTQgQEAgcmVhZF90YWdfc3RyaW5n X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CisgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwor ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKKy0gIHVuc2lnbmVkIGludCBsZW5ndGg7CisrICB1 bnNpZ25lZCBpbnQgbGVuZ3RoID0gVUlOVF9NQVg7CisrCisrICBpbmRleF90eXBlID0gb2JqZmls ZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7CisrICByYW5nZV90eXBlID0gY3JlYXRlX3N0 YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOworIAorKyAgLyog SWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBpcyBkZWZpbmVkLCB0aGUgbGVuZ3RoIGlzIHN0b3JlZCBp biBtZW1vcnkuICAqLworICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3N0cmluZ19s ZW5ndGgsIGN1KTsKKyAgIGlmIChhdHRyKQorICAgICB7CistICAgICAgbGVuZ3RoID0gRFdfVU5T TkQgKGF0dHIpOworKyAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorKwl7Cisr CSAgc3RydWN0IGF0dHJpYnV0ZSAqYnl0ZV9zaXplLCAqYml0X3NpemU7CisrCSAgc3RydWN0IGR5 bmFtaWNfcHJvcCBoaWdoOworKworKwkgIGJ5dGVfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2J5dGVfc2l6ZSwgY3UpOworKwkgIGJpdF9zaXplID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfYml0X3NpemUsIGN1KTsKKysKKysJICAvKiBEV19BVF9ieXRlX3NpemUgc2hvdWxkIG5ldmVy IG9jY3VyIGluIGNvbWJpbmF0aW9uIHdpdGgKKysJICAgICBEV19BVF9iaXRfc2l6ZS4gICovCisr CSAgaWYgKGJ5dGVfc2l6ZSAhPSBOVUxMICYmIGJpdF9zaXplICE9IE5VTEwpCisrCSAgICBjb21w bGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICAgICAgXygiRFdfQVRfYnl0ZV9zaXpl IEFORCAiCisrCQkJICJEV19BVF9iaXRfc2l6ZSBmb3VuZCB0b2dldGhlciBhdCB0aGUgc2FtZSB0 aW1lLiIpKTsKKysKKysJICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIEFORCBEV19BVF9ieXRl X3NpemUgZXhpc3QgdG9nZXRoZXIsCisrCSAgICAgRFdfQVRfYnl0ZV9zaXplIGRlc2NyaWJlcyB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQKKysJICAgICBmcm9tIHRoZSBs ZW5ndGggbWVtb3J5IGxvY2F0aW9uLiAgKi8KKysJICBpZiAoYnl0ZV9zaXplICE9IE5VTEwpCisr CSAgICB7CisrCSAgICAgIC8qIEJ1aWxkIG5ldyBkd2FyZjJfbG9jZXhwcl9iYXRvbiBzdHJ1Y3R1 cmUgd2l0aCBhZGRpdGlvbnMgdG8gdGhlCisrCQkgZGF0YSBhdHRyaWJ1dGUsIHRvIHJlZmxlY3Qg RFdBUkYgc3BlY2lhbGl0aWVzIHRvIGdldCBhZGRyZXNzCisrCQkgc2l6ZXMuICAqLworKwkgICAg ICBjb25zdCBnZGJfYnl0ZSBhcHBlbmRfb3BzW10gPQorKwkJeworKwkJLyogRFdfT1BfZGVyZWZf c2l6ZTogc2l6ZSBvZiBhbiBhZGRyZXNzIG9uIHRoZSB0YXJnZXQgbWFjaGluZQorKwkJICAgKGJ5 dGVzKSwgd2hlcmUgdGhlIHNpemUgd2lsbCBiZSBzcGVjaWZpZWQgYnkgdGhlIG5leHQKKysJCSAg IG9wZXJhbmQuICAqLworKwkJRFdfT1BfZGVyZWZfc2l6ZSwKKysJCS8qIE9wZXJhbmQgZm9yIERX X09QX2RlcmVmX3NpemUuICAqLworKwkJRFdfVU5TTkQoYnl0ZV9zaXplKSB9OworKworKwkgICAg ICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgYXBwZW5k X29wcywKKysJCQkJCSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkKKysJCWNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywKKysJCQkgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfYnl0ZV9z aXplIikpOworKwkgICAgfQorKwkgIGVsc2UgaWYgKGJpdF9zaXplICE9IE5VTEwpCisrCSAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCisrCQkgICAgICAgXygiRFdfQVRfc3RyaW5n X2xlbmd0aCBBTkQgIgorKwkJCSAiRFdfQVRfYml0X3NpemUgZm91bmQgYnV0IG5vdCBzdXBwb3J0 ZWQgeWV0LiIpKTsKKysJICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIFdJVEhPVVQgRFdfQVRf Ynl0ZV9zaXplIGV4aXN0LCB0aGUgZGVmYXVsdAorKwkgICAgIGlzIHRoZSBhZGRyZXNzIHNpemUg b2YgdGhlIHRhcmdldCBtYWNoaW5lLiAgKi8KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIGNv bnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9CisrCQl7IERXX09QX2RlcmVmIH07CisrCisrCSAg ICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBhcHBl bmRfb3BzLAorKwkJCQkJIEFSUkFZX1NJWkUoYXBwZW5kX29wcykpKQorKwkJY29tcGxhaW50ICgm c3ltZmlsZV9jb21wbGFpbnRzLAorKwkJCSAgIF8oIkNvdWxkIG5vdCBwYXJzZSBEV19BVF9zdHJp bmdfbGVuZ3RoIikpOworKwkgICAgfQorKworKwkgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlw ZSktPmhpZ2ggPSBoaWdoOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgVFlQRV9ISUdIX0JP VU5EIChyYW5nZV90eXBlKSA9IERXX1VOU05EKGF0dHIpOworKwkgIFRZUEVfSElHSF9CT1VORF9L SU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7CisrCX0KKyAgICAgfQorICAgZWxzZQorICAg ICB7CistICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLiAg Ki8KKysgICAgICAvKiBDaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUsIHdo aWNoIHJlcHJlc2VudHMgdGhlIGxlbmd0aAorKwkgaW4gdGhpcyBjYXNlLiAgKi8KKyAgICAgICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXplLCBjdSk7CisgICAgICAgaWYg KGF0dHIpCistICAgICAgICB7CistICAgICAgICAgIGxlbmd0aCA9IERXX1VOU05EIChhdHRyKTsK Ky0gICAgICAgIH0KKysJeworKwkgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19V TlNORChhdHRyKTsKKysJICBUWVBFX0hJR0hfQk9VTkRfS0lORCAocmFuZ2VfdHlwZSkgPSBQUk9Q X0NPTlNUOworKwl9CisgICAgICAgZWxzZQorLSAgICAgICAgeworLSAgICAgICAgICBsZW5ndGgg PSAxOworLSAgICAgICAgfQorKwl7CisrCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9 IDE7CisrCSAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsK KysJfQorICAgICB9CisgCistICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+ YnVpbHRpbl9pbnQ7CistICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChO VUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOworICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3Ry aW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOworICAgdHlwZSA9IGNy ZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBlKTsKKyAKK0BAIC0x NDg0Nyw3ICsxNDkxMyw4IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisgc3RhdGljIGludAorIGF0dHJfdG9fZHluYW1pY19w cm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwK Ky0JCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9w KQorKwkJICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnBy b3AsCisrCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25hbF9kYXRhLCBpbnQgYWRkaXRp b25hbF9kYXRhX3NpemUpCisgeworICAgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0 b247CisgICBzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjayA9ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9v YnN0YWNrOworQEAgLTE0ODU3LDE0ICsxNDkyNCwzMyBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAo Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgCisg ICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKKyAgICAgeworLSAgICAgIGJhdG9uID0g WE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKKysgICAgICBi YXRvbiA9IFhPQk5FVyhvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKKyAg ICAgICBiYXRvbi0+cmVmZXJlbmNlZF90eXBlID0gTlVMTDsKKyAgICAgICBiYXRvbi0+bG9jZXhw ci5wZXJfY3UgPSBjdS0+cGVyX2N1OworLSAgICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19C TE9DSyAoYXR0ciktPnNpemU7CistICAgICAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NL IChhdHRyKS0+ZGF0YTsKKysKKysgICAgICBpZiAoYWRkaXRpb25hbF9kYXRhICE9IE5VTEwgJiYg YWRkaXRpb25hbF9kYXRhX3NpemUgPiAwKQorKwl7CisrCSAgZ2RiX2J5dGUgKmRhdGE7CisrCisr CSAgZGF0YSA9IChnZGJfYnl0ZSAqKSBvYnN0YWNrX2FsbG9jKAorKwkgICAgICAmY3UtPm9iamZp bGUtPm9iamZpbGVfb2JzdGFjaywKKysJICAgICAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRk aXRpb25hbF9kYXRhX3NpemUpOworKwkgIG1lbWNweSAoZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5k YXRhLCBEV19CTE9DSyAoYXR0ciktPnNpemUpOworKwkgIG1lbWNweSAoZGF0YSArIERXX0JMT0NL IChhdHRyKS0+c2l6ZSwgYWRkaXRpb25hbF9kYXRhLAorKwkJICBhZGRpdGlvbmFsX2RhdGFfc2l6 ZSk7CisrCisrCSAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IGRhdGE7CisrCSAgYmF0b24tPmxvY2V4 cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplOwor Kwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NL IChhdHRyKS0+ZGF0YTsKKysJICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIp LT5zaXplOworKwl9CisrCisgICAgICAgcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOworICAgICAg IHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7CistICAgICAgZ2RiX2Fzc2VydCAocHJvcC0+ZGF0 YS5iYXRvbiAhPSBOVUxMKTsKKysgICAgICBnZGJfYXNzZXJ0KHByb3AtPmRhdGEuYmF0b24gIT0g TlVMTCk7CisgICAgIH0KKyAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19yZWYgKGF0dHIpKQorICAg ICB7CitAQCAtMTQ4OTcsOCArMTQ5ODMsMjggQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0 IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorIAkJYmF0b24g PSBYT0JORVcgKG9ic3RhY2ssIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24pOworIAkJYmF0 b24tPnJlZmVyZW5jZWRfdHlwZSA9IGRpZV90eXBlICh0YXJnZXRfZGllLCB0YXJnZXRfY3UpOwor IAkJYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKKy0JCWJhdG9uLT5sb2NleHBy LnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworLQkJYmF0b24tPmxvY2V4cHIu ZGF0YSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGE7CisrCisrCQlpZiAoYWRkaXRpb25h bF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25hbF9kYXRhX3NpemUgPiAwKQorKwkJICB7CisrCQkg ICAgZ2RiX2J5dGUgKmRhdGE7CisrCisrCQkgICAgZGF0YSA9IChnZGJfYnl0ZSAqKSBvYnN0YWNr X2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKKysJCQkgICAgRFdfQkxPQ0sg KHRhcmdldF9hdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysJCSAgICBtZW1j cHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGEsCisrCQkJICAgIERXX0JMT0NL ICh0YXJnZXRfYXR0ciktPnNpemUpOworKwkJICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0 YXJnZXRfYXR0ciktPnNpemUsCisrCQkJICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9k YXRhX3NpemUpOworKworKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOworKwkJICAg IGJhdG9uLT5sb2NleHByLnNpemUgPSAoRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZQorKwkJ CQkJICAgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisrCQkgIH0KKysJCWVsc2UKKysJCSAgewor KwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRh OworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5z aXplOworKwkJICB9CisrCisgCQlwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247CisgCQlwcm9wLT5r aW5kID0gUFJPUF9MT0NFWFBSOworIAkJZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBO VUxMKTsKK0BAIC0xNTAwOCwxNyArMTUxMTQsMTcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisgICBhdHRyID0gZHdh cmYyX2F0dHIgKGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKKyAgIGlmIChhdHRyKQorLSAg ICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdyk7CisrICAgIGF0dHJf dG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93LCBOVUxMLCAwKTsKKyAgIGVsc2Ug aWYgKCFsb3dfZGVmYXVsdF9pc192YWxpZCkKKyAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21w bGFpbnRzLCBfKCJNaXNzaW5nIERXX0FUX2xvd2VyX2JvdW5kICIKKyAJCQkJICAgICAgIi0gRElF IGF0IDB4JXggW2luIG1vZHVsZSAlc10iKSwKKyAJICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2Zm LCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7CisgCisgICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKKy0gIGlmICghYXR0cl90b19keW5hbWljX3By b3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoKSkKKysgIGlmICghYXR0cl90b19keW5hbWljX3Byb3Ag KGF0dHIsIGRpZSwgY3UsICZoaWdoLCBOVUxMLCAwKSkKKyAgICAgeworICAgICAgIGF0dHIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOworLSAgICAgIGlmIChhdHRyX3RvX2R5 bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQorKyAgICAgIGlmIChhdHRyX3RvX2R5 bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQorIAl7CisgCSAgLyog SWYgYm91bmRzIGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4gICov CisgCSAgaWYgKGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5raW5kID09IFBST1BfQ09O U1QpCitAQCAtMjIzODksNyArMjI0OTUsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBhdHRy ID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBjdSk7CisgICBpZiAoYXR0cl9m b3JtX2lzX2Jsb2NrIChhdHRyKSkKKyAgICAgeworLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNf cHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3ApKQorKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNf cHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQorICAgICAgICAgYWRkX2R5bl9w cm9wIChEWU5fUFJPUF9BTExPQ0FURUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOworICAgICB9Cisg ICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCitAQCAtMjI0MDQsNyArMjI1MTAsNyBAQCBzZXRfZGll X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRl ZCwgY3UpOworICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0gICAg ICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgICAg ICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAw KSkKKyAgICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlw ZSwgb2JqZmlsZSk7CisgICAgIH0KKyAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKK0BAIC0yMjQx Nyw3ICsyMjUyMyw3IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAKKyAgIC8qIFJlYWQgRFdfQVRf ZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLworICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKKy0gIGlmIChhdHRyX3RvX2R5bmFtaWNf cHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3ApKQorKyAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCisgICAgIGFkZF9keW5fcHJvcCAoRFlO X1BST1BfREFUQV9MT0NBVElPTiwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CisgCisgICBpZiAoZHdh cmYyX3Blcl9vYmpmaWxlLT5kaWVfdHlwZV9oYXNoID09IE5VTEwpCitkaWZmIC0tZ2l0IGEvZ2Ri L2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYworaW5kZXggYjUzZTY0OS4uMGFhOTExMyAxMDA2 NDQKKy0tLSBhL2dkYi9nZGJ0eXBlcy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTE4NDEs NiArMTg0MSw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUs IGludCB0b3BfbGV2ZWwpCisgICAgICAgfQorIAorICAgICBjYXNlIFRZUEVfQ09ERV9BUlJBWToK KysgICAgY2FzZSBUWVBFX0NPREVfU1RSSU5HOgorICAgICAgIHsKKyAJZ2RiX2Fzc2VydCAoVFlQ RV9ORklFTERTICh0eXBlKSA9PSAxKTsKKyAKK0BAIC0xOTQ1LDcgKzE5NDYsOCBAQCByZXNvbHZl X2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAorICAgc3RydWN0IHR5cGUgKmFyeV9k aW07CisgICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOworIAorLSAgZ2RiX2Fzc2VydCAoVFlQ RV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpOworKyAgZ2RiX2Fzc2VydCAoVFlQRV9D T0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKKysJICAgICAgfHwgVFlQRV9DT0RFICh0eXBl KSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKKyAKKyAgIHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOwor IAorQEAgLTE5NzAsMTMgKzE5NzIsMTcgQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5IChzdHJ1Y3Qg dHlwZSAqdHlwZSwKKyAKKyAgIGFyeV9kaW0gPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9U WVBFIChlbHRfdHlwZSkpOworIAorLSAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NPREUg KGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJBWSkKKysgIGlmIChhcnlfZGltICE9IE5VTEwgJiYg KFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZCisrICAgICAgfHwgVFlQRV9D T0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfU1RSSU5HKSkKKyAgICAgZWx0X3R5cGUgPSByZXNv bHZlX2R5bmFtaWNfYXJyYXkgKGFyeV9kaW0sIGFkZHJfc3RhY2spOworICAgZWxzZQorICAgICBl bHRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOworIAorLSAgcmV0dXJuIGNyZWF0ZV9h cnJheV90eXBlX3dpdGhfc3RyaWRlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFICh0 eXBlLCAwKSk7CisrICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKQor KyAgICByZXR1cm4gY3JlYXRlX3N0cmluZ190eXBlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlw ZSk7CisrICBlbHNlCisrICAgIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAo dHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCisrCQkJCQkgIFRZUEVfRklFTERfQklUU0laRSAo dHlwZSwgMCkpOworIH0KKyAKKyAvKiBSZXNvbHZlIGR5bmFtaWMgYm91bmRzIG9mIG1lbWJlcnMg b2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGljCitAQCAtMjE4MSw2ICsyMTg3LDcgQEAgcmVzb2x2 ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAorICAJICBicmVhazsK KyAKKyAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CisrCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKKyAJ ICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBhZGRyX3N0YWNr KTsKKyAJICBicmVhazsKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpbmdzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNDg0ZmRjYgorLS0tIC9k ZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAK K0BAIC0wLDAgKzEsMTAzIEBACisrIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRh cmRfdGVzdGZpbGUgIi5mOTAiCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3Rm aWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9 XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBz dGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBiZQorKyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2lu ZyBhcyBWTEEncworKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAiY291bGQg bm90IHJ1biB0byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0xIl0KKytnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTEiCisrc2V0IHRlc3QgIndoYXRp cyB2YXJfY2hhciBmaXJzdCB0aW1lIgorK2dkYl90ZXN0X211bHRpcGxlICJ3aGF0aXMgdmFyX2No YXIiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCox MCBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAg IC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjEwXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBh c3MgJHRlc3QKKysgICAgfQorK30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2NoYXIgZmlyc3QgdGlt ZSIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5cGUgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJl ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcclxuJGdkYl9wcm9tcHQg JCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3Rl clxcKjEwXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30K KysKKysKKytnZGJfdGVzdCAibmV4dCIgIlxcZCsuKnZhcl9jaGFyID0gJ2ZvbycuKiIgXAorKyAg Im5leHQgdG8gYWxsb2NhdGlvbiBzdGF0dXMgb2YgdmFyX2NoYXIiCisrZ2RiX3Rlc3QgInByaW50 IGwiICIgPSBcXC5UUlVFXFwuIiAicHJpbnQgYWxsb2NhdGlvbiBzdGF0dXMgZmlyc3QgdGltZSIK KysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmls bGVkLTEiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMSIK KytzZXQgdGVzdCAicHJpbnQgdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0xIgorK2dkYl90ZXN0 X211bHRpcGxlICJwcmludCB2YXJfY2hhciIgJHRlc3QgeworKyAgICAtcmUgIj0gXFwoUFRSIFRP IC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAkaGV4XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysg ICAgICAgIGdkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICI9ICdmb28nIiAicHJpbnQgKnZhcl9j aGFyLCB2YXJfY2hhci1maWxsZWQtMSIKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAt cmUgIj0gJ2ZvbydcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9 CisrfQorK3NldCB0ZXN0ICJwdHlwZSB2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVkLTEiCisrZ2Ri X3Rlc3RfbXVsdGlwbGUgInB0eXBlIHZhcl9jaGFyIiAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9 IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkg ICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjNcclxu JGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0 ICJwcmludCB2YXJfY2hhcigxKSIgIiA9IDEwMiAnZiciICJwcmludCB2YXJfY2hhcigxKSIKKytn ZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMykiICIgPSAxMTEgJ28nIiAicHJpbnQgdmFyX2NoYXIo MykiCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFy LWZpbGxlZC0yIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVk LTIiCisrc2V0IHRlc3QgInByaW50IHZhcl9jaGFyLCB2YXJfY2hhci1maWxsZWQtMiIKKytnZGJf dGVzdF9tdWx0aXBsZSAicHJpbnQgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICI9IFxcKFBU UiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXClcXCkgJGhleFxyXG4kZ2RiX3Byb21wdCAkIiB7 CisrICAgICAgICBnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiPSAnZm9vYmFyJyIgInByaW50 ICp2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVkLTIiCisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0K KysgICAgLXJlICI9ICdmb29iYXInXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRl c3QKKysgICAgfQorK30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxl ZC0yIgorK2dkYl90ZXN0X211bHRpcGxlICJwdHlwZSB2YXJfY2hhciIgJHRlc3QgeworKyAgICAt cmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFyYWN0 ZXJcXCo2XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30K K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MCBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uM2MyMjczNQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKK0BAIC0wLDAgKzEsMzkgQEAK KyshIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKysh IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshCisr ISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3JhbSB2bGFfc3RyaW5ncworKyAg Y2hhcmFjdGVyKGxlbj06KSwgdGFyZ2V0LCBhbGxvY2F0YWJsZSAgIDo6IHZhcl9jaGFyCisrICBj aGFyYWN0ZXIobGVuPTopLCBwb2ludGVyICAgICAgICAgICAgICAgOjogdmFyX2NoYXJfcAorKyAg bG9naWNhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6IGwKKysKKysgIGFsbG9j YXRlKGNoYXJhY3RlcihsZW49MTApIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJf Y2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTEKKysgIHZhcl9jaGFy ID0gJ2ZvbycKKysgIGRlYWxsb2NhdGUodmFyX2NoYXIpICAgICAgICAgICAgICAgICAgICAhIHZh cl9jaGFyLWZpbGxlZC0xCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAg ICAgISB2YXJfY2hhci1kZWFsbG9jYXRlZAorKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj00Mikg OjogdmFyX2NoYXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKQorKyAgdmFyX2NoYXIgPSAn Zm9vYmFyJworKyAgdmFyX2NoYXIgPSAnJyAgICAgICAgICAgICAgICAgICAgICAgICAgICEgdmFy X2NoYXItZmlsbGVkLTIKKysgIHZhcl9jaGFyID0gJ2JhcicgICAgICAgICAgICAgICAgICAgICAg ICAhIHZhcl9jaGFyLWVtcHR5CisrICBkZWFsbG9jYXRlKHZhcl9jaGFyKQorKyAgYWxsb2NhdGUo Y2hhcmFjdGVyKGxlbj0yMSkgOjogdmFyX2NoYXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFy KSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1hbGxvY2F0ZWQtMworKyAgdmFyX2NoYXIgPSAn am9obmRvZScKKysgIHZhcl9jaGFyX3AgPT4gdmFyX2NoYXIKKysgIGwgPSBhc3NvY2lhdGVkKHZh cl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3AtYXNzb2NpYXRlZAorKyAgdmFyX2No YXJfcCA9PiBudWxsKCkKKysgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAg ICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKKytlbmQgcHJvZ3JhbSB2bGFfc3RyaW5ncwor LS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1sb2dpY2FsLW5vdC5wYXRj aCBiL2dkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDBjNTFjODQuLjAwMDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRlbC1sb2dpY2FsLW5v dC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSAuL2dkYi92YWx1ZS5j LW9yaWcJMjAxNS0wMi0xMSAxNToxNzo1OC40MTMyNDE3NzkgKzAxMDAKLSsrKyAuL2dkYi92YWx1 ZS5jCTIwMTUtMDItMTEgMTU6MTk6NDIuMDY4NzE2OTQ5ICswMTAwCi1AQCAtMzA3NCw3ICszMDc0 LDcgQEAgdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZwotIAl9Ci0gCi0g ICAgICAgaWYgKCFUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0tICAgICAgICAgIHx8ICFUWVBF X0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsgICAgICAgICAgfHwg VFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpICE9IFBST1BfQ09OU1QpCi0gCXYtPm9mZnNl dCA9ICh2YWx1ZV9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0gCQkgICAgICsgdmFsdWVfZW1iZWRk ZWRfb2Zmc2V0IChhcmcxKSk7Ci0gICAgIH0KCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLXN0 cmluZ2J0LWZpeC5wYXRjaCBiL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCmluZGV4 IGY2MTk3ZjIuLjMyMTRkZTIgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4 LnBhdGNoCisrKyBiL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCkBAIC0zMSwyNiAr MzEsNiBAQCBKYW4KIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQog Q29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0idmxhc3RyaW5nb25seS5wYXRj aCIKIAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wNS0z MSAxNjoxNDowNC4xNjQ1MzM4MzMgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9n ZGJ0eXBlcy5jCTIwMTUtMDUtMzEgMTY6MTQ6MDUuODQ0NTQ1MzQ0ICswMjAwCi1AQCAtMTg1MSw2 ICsxODUxLDcgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdAotICAg ICAgIH0KLSAKLSAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0rICAgIGNhc2UgVFlQRV9DT0RF X1NUUklORzoKLSAgICAgICB7Ci0gCWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0g MSk7Ci0gCi1AQCAtMjE5Miw2ICsyMTkzLDcgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJu YWwgKHN0cnVjdCB0eQotIAkgIH0KLSAKLSAJY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0rCWNhc2Ug VFlQRV9DT0RFX1NUUklORzoKLSAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2Fy cmF5ICh0eXBlLCBhZGRyX3N0YWNrKTsKLSAJICBicmVhazsKLSAKIEluZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1z dHViLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtdGVzdHMucGF0Y2ggYi9n ZGItdmxhLWludGVsLXRlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmZjOGFiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLXRlc3RzLnBhdGNo CkBAIC0wLDAgKzEsMzc3IEBACitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE2LTAxLTA4IDE5 OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAorQEAgLTAsMCArMSw2MSBAQAorKyMgQ29weXJpZ2h0IDIw MTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBh cmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAor KyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiAh W3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFr cG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKysjIENoZWNrIFZMQSBwYXNzZWQg dG8gZmlyc3QgRm9ydHJhbiBmdW5jdGlvbi4KKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAiZnVuYzEtdmxhLXBhc3NlZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImZ1bmMxLXZsYS1wYXNzZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYSIgIiA9IFxcKCAqXFwoICoy MiwgKjIyLCAqMjIsXFsoKTIyLCAuXF0qXFwpIiBcCisrICAicHJpbnQgdmxhIChmdW5jMSkiCisr Z2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEw LDEwXFxcKSIgXAorKyAgInB0eXBlIHZsYSAoZnVuYzEpIgorKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEtbW9kaWZpZWQiXQorK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJmdW5jMS12bGEtbW9kaWZpZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYSg1 LDUpIiAiID0gNTUiICJwcmludCB2bGEoNSw1KSAoZnVuYzEpIgorK2dkYl90ZXN0ICJwcmludCB2 bGEoNyw3KSIgIiA9IDc3IiAicHJpbnQgdmxhKDUsNSkgKGZ1bmMxKSIKKysKKysjIENoZWNrIGlm IHRoZSB2YWx1ZXMgYXJlIGNvcnJlY3QgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gZnVuYzEKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtcmV0dXJuZWQiXQorK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS1yZXR1cm5lZCIKKytnZGJfdGVzdCAicHJpbnQg cmV0IiAiID0gLlRSVUUuIiAicHJpbnQgcmV0IGFmdGVyIGZ1bmMxIHJldHVybmVkIgorKworKyMg Q2hlY2sgVkxBIHBhc3NlZCB0byBzZWNvbmQgRm9ydHJhbiBmdW5jdGlvbgorK2dkYl9icmVha3Bv aW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMi12bGEtcGFzc2VkIl0KKytnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiZnVuYzItdmxhLXBhc3NlZCIKKytnZGJfdGVzdCAicHJpbnQgdmxh IiBcCisrICAiID0gXFxcKDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0XFxc KSIgXAorKyAgInByaW50IHZsYSAoZnVuYzIpIgorK2dkYl90ZXN0ICJwdHlwZSB2bGEiICJ0eXBl ID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEgKGZ1 bmMyKSIKKysKKysjIENoZWNrIGlmIHRoZSByZXR1cm5lZCBWTEEgaGFzIHRoZSBjb3JyZWN0IHZh bHVlcyBhbmQgcHR5cGUuCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1 bmMyLXJldHVybmVkIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzItcmV0dXJu ZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYTMiICIgPSBcXFwoMSwgMiwgNDQsIDQsIDQ0LCA0NCwg NDQsIDgsIDQ0LCA0NFxcXCkiIFwKKysgICJwcmludCB2bGEzIChhZnRlciBmdW5jMikiCisrZ2Ri X3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxc XCkiIFwKKysgICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMikiCitJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5j LmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAorQEAgLTAsMCArMSw3MSBA QAorKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQor KyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEK KyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQorKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl IC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKysKKytsb2dpY2FsIGZ1 bmN0aW9uIGZ1bmMxICh2bGEpCisrICBpbXBsaWNpdCBub25lCisrICBpbnRlZ2VyLCBhbGxvY2F0 YWJsZSA6OiB2bGEgKDosIDopCisrICBmdW5jMSA9IGFsbG9jYXRlZCh2bGEpCisrICB2bGEoNSw1 KSA9IDU1ICAgICAgICAgICAgICAgISBmdW5jMS12bGEtcGFzc2VkCisrICB2bGEoNyw3KSA9IDc3 CisrICByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgISBmdW5jMS12bGEtbW9kaWZpZWQKKytl bmQgZnVuY3Rpb24gZnVuYzEKKysKKytmdW5jdGlvbiBmdW5jMih2bGEpCisrICBpbXBsaWNpdCBu b25lCisrICBpbnRlZ2VyIDo6IHZsYSAoOikKKysgIGludGVnZXIgOjogZnVuYzIoc2l6ZSh2bGEp KQorKyAgaW50ZWdlciA6OiBrCisrCisrICB2bGEoMSkgPSAxICAgICAgICAgICAgICAgICAgICAh IGZ1bmMyLXZsYS1wYXNzZWQKKysgIHZsYSgyKSA9IDIKKysgIHZsYSg0KSA9IDQKKysgIHZsYSg4 KSA9IDgKKysKKysgIGZ1bmMyID0gdmxhCisrZW5kIGZ1bmN0aW9uIGZ1bmMyCisrCisrcHJvZ3Jh bSB2bGFfZnVuYworKyAgaW1wbGljaXQgbm9uZQorKyAgaW50ZXJmYWNlCisrICAgIGxvZ2ljYWwg ZnVuY3Rpb24gZnVuYzEgKHZsYSkKKysgICAgICBpbnRlZ2VyIDo6IHZsYSAoOiwgOikKKysgICAg ZW5kIGZ1bmN0aW9uCisrICBlbmQgaW50ZXJmYWNlCisrICBpbnRlcmZhY2UKKysgICAgZnVuY3Rp b24gZnVuYzIgKHZsYSkKKysgICAgICBpbnRlZ2VyIDo6IHZsYSAoOikKKysgICAgICBpbnRlZ2Vy IGZ1bmMyKHNpemUodmxhKSkKKysgICAgZW5kIGZ1bmN0aW9uCisrICBlbmQgaW50ZXJmYWNlCisr CisrICBsb2dpY2FsIDo6IHJldAorKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhMSAoOiwg OikKKysgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTIgKDopCisrICBpbnRlZ2VyLCBhbGxv Y2F0YWJsZSA6OiB2bGEzICg6KQorKworKyAgcmV0ID0gLkZBTFNFLgorKworKyAgYWxsb2NhdGUg KHZsYTEgKDEwLDEwKSkKKysgIHZsYTEoOiw6KSA9IDIyCisrCisrICBhbGxvY2F0ZSAodmxhMiAo MTApKQorKyAgdmxhMig6KSA9IDQ0CisrCisrICByZXQgPSBmdW5jMSh2bGExKQorKyAgdmxhMyA9 IGZ1bmMyKHZsYTIpICAgICAgICAgICEgZnVuYzEtcmV0dXJuZWQKKysKKysgIHJldCA9IC5UUlVF LiAgICAgICAgICAgICAgICAhIGZ1bmMyLXJldHVybmVkCisrZW5kIHByb2dyYW0gdmxhX2Z1bmMK K0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1zdHJpZGUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4 NiArMDEwMAorQEAgLTAsMCArMSw0NCBAQAorKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysj IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysj IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKwor K3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rpbmcg JHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkw IHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10g dGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgor KyAgICBjb250aW51ZQorK30KKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInJl LXJldmVyc2UtZWxlbWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMiwg MywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwpIiBcCisrICAicHJpbnQgcmUtcmV2ZXJzZS1lbGVt ZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDEiICJwcmludCBmaXJzdCByZS1y ZXZlcnNlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEoMTApIiAiID0gMTAiICJwcmlu dCBsYXN0IHJlLXJldmVyc2UtZWxlbWVudCIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAib2RkLWVsZW1lbnRzIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi b2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxcKDEsIDMsIDUsIDcs IDlcXFwpIiAicHJpbnQgb2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAi ID0gMSIgInByaW50IGZpcnN0IG9kZC1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDUp IiAiID0gOSIgInByaW50IGxhc3Qgb2RkLWVsZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dk Yl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1lbGVtZW50Il0KKytnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwo NVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVudCIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIg IiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVsZW1lbnQiCitJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlk ZS5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAgKzEsMzAg QEAKKyshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEK KyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysh CisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUKKyshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj ZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisrCisrcHJvZ3JhbSB2 bGFfc3RyaWRlCisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikKKysg IGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAoOikKKysKKysgIGFsbG9jYXRlKHZsYSgxMCkpCisr ICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8pCisrCisrICBwdmxhID0+IHZsYSgxMDoxOi0xKQor KyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1y ZXZlcnNlLWVsZW1lbnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMK KysKKysgIHB2bGEgPT4gbnVsbCgpICAgICAgICAhIHNpbmdsZS1lbGVtZW50CisrZW5kIHByb2dy YW0gdmxhX3N0cmlkZQorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5nc29sZC5leHAJMjAxNi0w MS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAgKzEsMTAxIEBACisrIyBDb3B5 cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCisrCisraWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNm aWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQor KworKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBiZQor KyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncworKworK2lmICFbcnVudG8g TUFJTl9fXSB0aGVuIHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBN QUlOX18iCisrICAgIGNvbnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0xIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIg XAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXFwpICR7aGV4fSIg XAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBmaXJzdCB0aW1lIgorK2dkYl90 ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCox MCBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHR5 cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwK KysgICJwdHlwZSB2YXJfY2hhciBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJuZXh0IiAiXFxkKy4q dmFyX2NoYXIgPSAnZm9vJy4qIiBcCisrICAibmV4dCB0byBhbGxvY2F0aW9uIHN0YXR1cyBvZiB2 YXJfY2hhciIKKytnZGJfdGVzdCAicHJpbnQgbCIgIiA9IC5UUlVFLiIgInByaW50IGFsbG9jYXRp b24gc3RhdHVzIGZpcnN0IHRpbWUiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgInZhcl9jaGFyLWZpbGxlZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi dmFyX2NoYXItZmlsbGVkLTEiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCisrICAiID0g XFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAke2hleH0iIFwKKysgICJwcmlu dCB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHJpbnQgKnZh cl9jaGFyIiAiID0gJ2ZvbyciIFwKKysgICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZp cnN0IHRpbWUiCisrZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4g XFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCisrICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIGZpbGxl ZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgZmls bGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDEpIiAiID0gMTAyICdm JyIgInByaW50IHZhcl9jaGFyKDEpIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigzKSIgIiA9 IDExMSAnbyciICJwcmludCB2YXJfY2hhcigzKSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTIiXQorK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMiIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwK KysgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXFwpICR7aGV4fSIgXAor KyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBzZWNvbmQgdGltZSIKKytnZGJfdGVz dCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2Zvb2JhciciIFwKKysgICJwcmludCAqdmFyX2NoYXIg YWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIi ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAorKyAgIndoYXRpcyB2 YXJfY2hhciBzZWNvbmQgdGltZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0g UFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyIHNl Y29uZCB0aW1lIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJf Y2hhci1lbXB0eSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWVtcHR5 IgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqMCBcXClcXCkgJHtoZXh9IiBcCisrICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIg c2V0IGVtcHR5IgorK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSBcIlwiIiAicHJpbnQg KnZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKKytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAi dHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwKKysgICJ3aGF0aXMgdmFy X2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUg PSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIg YWZ0ZXIgc2V0IGVtcHR5IgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJ2YXJfY2hhci1hbGxvY2F0ZWQtMyJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZh cl9jaGFyLWFsbG9jYXRlZC0zIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9 IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpXFwpICR7aGV4fSIgXAorKyAgInBy aW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0 aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCkiIFwK KysgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCisrZ2RiX3Rl c3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEg XFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCisr CisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyX3AtYXNzb2Np YXRlZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyX3AtYXNzb2NpYXRl ZCIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXJfcCIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBc XCggY2hhcmFjdGVyXFwqNyBcXClcXCkgJHtoZXh9IiBcCisrICAicHJpbnQgdmFyX2NoYXJfcCBh ZnRlciBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXJfcCIgIiA9ICdqb2hu ZG9lJyIgXAorKyAgInByaW50ICp2YXJfY2hhcl8gYWZ0ZXIgYXNzb2NpYXRlZCIKKytnZGJfdGVz dCAid2hhdGlzIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3 IFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCisrZ2RiX3Rl c3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3 IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKK0luZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdz b2xkLmY5MAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2 ICswMTAwCitAQCAtMCwwICsxLDQwIEBACisrISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysh IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCisrISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKysh IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrIQorKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrISBGb3VuZGF0aW9u LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMw NywgVVNBLgorKworK3Byb2dyYW0gdmxhX3N0cmluZ3MKKysgIGNoYXJhY3RlcihsZW49OiksIHRh cmdldCwgYWxsb2NhdGFibGUgICA6OiB2YXJfY2hhcgorKyAgY2hhcmFjdGVyKGxlbj06KSwgcG9p bnRlciAgICAgICAgICAgICAgIDo6IHZhcl9jaGFyX3AKKysgIGxvZ2ljYWwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6OiBsCisrCisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTEw KSA6OiB2YXJfY2hhcikKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAg ICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0xCisrICB2YXJfY2hhciA9ICdmb28nCisrICBkZWFsbG9j YXRlKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1maWxsZWQtMQorKyAg bCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZGVhbGxv Y2F0ZWQKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49NDIpIDo6IHZhcl9jaGFyKQorKyAgbCA9 IGFsbG9jYXRlZCh2YXJfY2hhcikKKysgIHZhcl9jaGFyID0gJ2Zvb2JhcicKKysgIHZhcl9jaGFy ID0gJycgICAgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0yCisrICB2 YXJfY2hhciA9ICdiYXInICAgICAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1lbXB0eQor KyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MjEpIDo6 IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEg dmFyX2NoYXItYWxsb2NhdGVkLTMKKysgIHZhcl9jaGFyID0gJ2pvaG5kb2UnCisrICB2YXJfY2hh cl9wID0+IHZhcl9jaGFyCisrICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAg ICAgISB2YXJfY2hhcl9wLWFzc29jaWF0ZWQKKysgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCisrICBs ID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1h c3NvY2lhdGVkCisrZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKCmRpZmYgLS1naXQgYS9nZGItdmxh LWludGVsLnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZWRmNmIyMy4uMDAwMDAwMAotLS0gYS9nZGItdmxhLWludGVsLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTQ4MCArMCwwIEBACi1bUEFUQ0ggMDAvMjNdIEZvcnRyYW4gZHluYW1p YyBhcnJheSBzdXBwb3J0Ci1odHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIw MTQtMDYvbXNnMDAxMDguaHRtbAotaHR0cHM6Ly9naXRodWIuY29tL2ludGVsLWdkYi92bGEvdHJl ZS92bGEtZm9ydHJhbgotCi1HSVQgc25hcHNob3Q6Ci1jb21taXQgNTExYmZmNTIwMzcyZmZjMTBm YTJmZjU2OWMxNzZiZGYxZTZlNDc1ZAotCi0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvYy12YWxwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvYy12YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDY1NTgyMzU5ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1 OjQ0Ljk3NDYzNzYzMCArMDEwMAotQEAgLTY0Miw3ICs2NDIsMTYgQEAKLSAJewotIAkgIC8qIG5v cm1hbCBjYXNlICovCi0gCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCIpOwotLQkgIHR5 cGVfcHJpbnQgKHZhbHVlX3R5cGUgKHZhbCksICIiLCBzdHJlYW0sIC0xKTsKLSsJICBpZiAoaXNf ZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpCi0rCSAgICB7Ci0rCSAgICAg IHN0cnVjdCB2YWx1ZSAqdjsKLSsKLSsJICAgICAgdiA9IHZhbHVlX2luZCAodmFsKTsKLSsJICAg ICAgdiA9IHZhbHVlX2FkZHIgKHYpOwotKwkgICAgICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2 KSwgIiIsIHN0cmVhbSwgLTEpOwotKwkgICAgfQotKwkgIGVsc2UKLSsJICAgIHR5cGVfcHJpbnQg KHZhbHVlX3R5cGUgKHZhbCksICIiLCBzdHJlYW0sIC0xKTsKLSAJICBmcHJpbnRmX2ZpbHRlcmVk IChzdHJlYW0sICIpICIpOwotIAl9Ci0gICAgIH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvZHdhcmYybG9jLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA2NjU4MjM2NSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJsb2MuaAkyMDE2LTAxLTA4IDE5OjE1 OjQ0Ljk3NDYzNzYzMCArMDEwMAotQEAgLTEzOCw2ICsxMzgsMTEgQEAKLSAJCQkgICAgICBzdHJ1 Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRyX3N0YWNrLAotIAkJCSAgICAgIENPUkVfQUREUiAq dmFsdWUpOwotIAotKy8qIENoZWNrcyBpZiBhIGR3YXJmIGxvY2F0aW9uIGRlZmluaXRpb24gaXMg dmFsaWQuCi0rICAgUmV0dXJucyAxIGlmIHZhbGlkOyAwIG90aGVyd2lzZS4gICovCi0rCi0rZXh0 ZXJuIGludCBkd2FyZjJfYWRkcmVzc19kYXRhX3ZhbGlkIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlw ZSk7Ci0rCi0gLyogQSBoZWxwZXIgZm9yIHRoZSBjb21waWxlciBpbnRlcmZhY2UgdGhhdCBjb21w aWxlcyBhIHNpbmdsZSBkeW5hbWljCi0gICAgcHJvcGVydHkgdG8gQyBjb2RlLgotIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wMS0wOCAxOTox NTozNS4wNzg1ODI0MzIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYy cmVhZC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgwNjM3NjYzICswMTAwCi1AQCAtMTc0NSw3ICsx NzQ1LDkgQEAKLSAKLSBzdGF0aWMgaW50IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyLAotIAkJCQkgc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1LAotLQkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCk7Ci0rCQkJCSBz dHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAotKwkJCQkgY29uc3QgZ2RiX2J5dGUgKmFkZGl0aW9u YWxfZGF0YSwKLSsJCQkJIGludCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0gCi0gLyogbWVtb3J5 IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCi0gCi1AQCAtMTE0MjAsNyArMTE0MjIsNyBAQAotICAg ICB7Ci0gICAgICAgbmV3b2JqLT5zdGF0aWNfbGluawotIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9i amZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFtaWNfcHJvcCk7Ci0tICAgICAgYXR0cl90b19keW5h bWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmspOwotKyAgICAgIGF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBO VUxMLCAwKTsKLSAgICAgfQotIAotICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmbG9jYWxfc3ltYm9s czsKLUBAIC0xNDQ3MSwyOSArMTQ0NzMsOTIgQEAKLSAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJh bmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwotICAgc3RydWN0IGF0dHJpYnV0ZSAq YXR0cjsKLS0gIHVuc2lnbmVkIGludCBsZW5ndGg7Ci0rICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0g VUlOVF9NQVg7Ci0gCi0rICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVp bHRpbl9pbnQ7Ci0rICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxM LCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOwotKwotKyAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0 aCBpcyBkZWZpbmVkLCB0aGUgbGVuZ3RoIGlzIHN0b3JlZCBhdCBzb21lIGxvY2F0aW9uCi0rICAg KiBpbiBtZW1vcnkuICovCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfc3RyaW5n X2xlbmd0aCwgY3UpOwotICAgaWYgKGF0dHIpCi0gICAgIHsKLS0gICAgICBsZW5ndGggPSBEV19V TlNORCAoYXR0cik7Ci0rICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCi0rICAg ICAgICB7Ci0rICAgICAgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmJ5dGVfc2l6ZSwgKmJpdF9zaXpl OwotKyAgICAgICAgICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7Ci0rCi0rICAgICAgICAgIGJ5 dGVfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwotKyAgICAg ICAgICBiaXRfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2JpdF9zaXplLCBjdSk7Ci0r Ci0rICAgICAgICAgIC8qIERXX0FUX2J5dGVfc2l6ZSBzaG91bGQgbmV2ZXIgb2NjdXIgdG9nZXRo ZXIgaW4gY29tYmluYXRpb24gd2l0aAotKyAgICAgICAgICAgICBEV19BVF9zdHJpbmdfbGVuZ3Ro LiAgKi8KLSsgICAgICAgICAgaWYgKChieXRlX3NpemUgPT0gTlVMTCAmJiBiaXRfc2l6ZSAhPSBO VUxMKSB8fAotKyAgICAgICAgICAgICAgICAgIChieXRlX3NpemUgIT0gTlVMTCAmJiBiaXRfc2l6 ZSA9PSBOVUxMKSkKLSsgICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMs IF8oIkRXX0FUX2J5dGVfc2l6ZSBBTkQgIgotKyAgICAgICAgICAgICAgICAgICAgICAiRFdfQVRf Yml0X3NpemUgZm91bmQgdG9nZXRoZXIgYXQgdGhlIHNhbWUgdGltZS4iKSk7Ci0rCi0rICAgICAg ICAgIC8qIElmIERXX0FUX3N0cmluZ19sZW5ndGggQU5EIERXX0FUX2J5dGVfc2l6ZSBleGlzdCB0 b2dldGhlciwgaXQKLSsgICAgICAgICAgICAgZGVzY3JpYmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMg dGhhdCBzaG91bGQgYmUgcmVhZCBmcm9tIHRoZSBsZW5ndGgKLSsgICAgICAgICAgICAgbWVtb3J5 IGxvY2F0aW9uLiAgKi8KLSsgICAgICAgICAgaWYgKGJ5dGVfc2l6ZSAhPSBOVUxMICYmIGJpdF9z aXplID09IE5VTEwpCi0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgLyogQnVpbGQgbmV3 IGR3YXJmMl9sb2NleHByX2JhdG9uIHN0cnVjdHVyZSB3aXRoIGFkZGl0aW9ucyB0byB0aGUKLSsg ICAgICAgICAgICAgICAgIGRhdGEgYXR0cmlidXRlLCB0byByZWZsZWN0IERXQVJGIHNwZWNpYWxp dGllcyB0byBnZXQgYWRkcmVzcwotKyAgICAgICAgICAgICAgICAgc2l6ZXMuICAqLwotKyAgICAg ICAgICAgICAgY29uc3QgZ2RiX2J5dGUgYXBwZW5kX29wc1tdID0gewotKyAgICAgICAgICAgICAg ICAvKiBEV19PUF9kZXJlZl9zaXplOiBzaXplIG9mIGFuIGFkZHJlc3Mgb24gdGhlIHRhcmdldCBt YWNoaW5lCi0rICAgICAgICAgICAgICAgICAgIChieXRlcyksIHdoZXJlIHRoZSBzaXplIHdpbGwg YmUgc3BlY2lmaWVkIGJ5IHRoZSBuZXh0Ci0rICAgICAgICAgICAgICAgICAgIG9wZXJhbmQuICAq LwotKyAgICAgICAgICAgICAgICBEV19PUF9kZXJlZl9zaXplLAotKyAgICAgICAgICAgICAgICAv KiBPcGVyYW5kIGZvciBEV19PUF9kZXJlZl9zaXplLiAgKi8KLSsgICAgICAgICAgICAgICAgRFdf VU5TTkQgKGJ5dGVfc2l6ZSkgfTsKLSsKLSsgICAgICAgICAgICAgIGlmICghYXR0cl90b19keW5h bWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLAotKyAgICAgICAgICAgICAgICAgICAgICBh cHBlbmRfb3BzLCBBUlJBWV9TSVpFIChhcHBlbmRfb3BzKSkpCi0rICAgICAgICAgICAgICAgIGNv bXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgICAgICBf KCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfYnl0ZV9zaXplIikpOwotKyAgICAgICAgICAgIH0KLSsg ICAgICAgICAgZWxzZSBpZiAoYml0X3NpemUgIT0gTlVMTCAmJiBieXRlX3NpemUgPT0gTlVMTCkK LSsgICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX0FUX3N0 cmluZ19sZW5ndGggQU5EICIKLSsgICAgICAgICAgICAgICAgICAgICAgIkRXX0FUX2JpdF9zaXpl IGZvdW5kIGJ1dCBub3Qgc3VwcG9ydGVkIHlldC4iKSk7Ci0rICAgICAgICAgIC8qIElmIERXX0FU X3N0cmluZ19sZW5ndGggV0lUSE9VVCBEV19BVF9ieXRlX3NpemUgZXhpc3QsIHRoZSBkZWZhdWx0 Ci0rICAgICAgICAgICAgIGlzIHRoZSBhZGRyZXNzIHNpemUgb2YgdGhlIHRhcmdldCBtYWNoaW5l LiAgKi8KLSsgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNv bnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9IHsgRFdfT1BfZGVyZWYgfTsKLSsKLSsgICAgICAg ICAgICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBh cHBlbmRfb3BzLAotKyAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFIChhcHBlbmRfb3Bz KSkpCi0rICAgICAgICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsg ICAgICAgICAgICAgICAgICAgICAgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfc3RyaW5nX2xl bmd0aCIpKTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgIFRZUEVfUkFOR0VfREFUQSAo cmFuZ2VfdHlwZSktPmhpZ2ggPSBoaWdoOwotKyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsgICAg ICAgIHsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IERXX1VOU05E IChhdHRyKTsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0g UFJPUF9DT05TVDsKLSsgICAgICAgIH0KLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0tICAgICAg LyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLiAgKi8KLSsgICAgICAv KiBDaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUsIHdoaWNoIHJlcHJlc2Vu dHMgdGhlIGxlbmd0aAotKyAgICAgICAgIGluIHRoaXMgY2FzZS4gICovCi0gICAgICAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwotICAgICAgIGlmIChhdHRy KQotICAgICAgICAgewotLSAgICAgICAgICBsZW5ndGggPSBEV19VTlNORCAoYXR0cik7Ci0rICAg ICAgICAgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNORCAoYXR0cik7Ci0r ICAgICAgICAgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7 Ci0gICAgICAgICB9Ci0gICAgICAgZWxzZQotICAgICAgICAgewotLSAgICAgICAgICBsZW5ndGgg PSAxOwotKyAgICAgICAgICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKLSsgICAg ICAgICAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKLSAg ICAgICAgIH0KLSAgICAgfQotIAotLSAgaW5kZXhfdHlwZSA9IG9iamZpbGVfdHlwZSAob2JqZmls ZSktPmJ1aWx0aW5faW50OwotLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlw ZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKLSAgIGNoYXJfdHlwZSA9IGxhbmd1YWdl X3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsKLSAgIHR5cGUg PSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7Ci0gCi1A QCAtMTQ4MTYsMTMgKzE0ODgxLDE1IEBACi0gICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5 cGUsIGN1KTsKLSB9Ci0gCi0rCi0gLyogUGFyc2UgZHdhcmYgYXR0cmlidXRlIGlmIGl0J3MgYSBi bG9jaywgcmVmZXJlbmNlIG9yIGNvbnN0YW50IGFuZCBwdXQgdGhlCi0gICAgcmVzdWx0aW5nIHZh bHVlIG9mIHRoZSBhdHRyaWJ1dGUgaW50byBzdHJ1Y3QgYm91bmRfcHJvcC4KLSAgICBSZXR1cm5z IDEgaWYgQVRUUiBjb3VsZCBiZSByZXNvbHZlZCBpbnRvIFBST1AsIDAgb3RoZXJ3aXNlLiAgKi8K LSAKLSBzdGF0aWMgaW50Ci0gYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotLQkJICAgICAgc3RydWN0IGR3YXJm Ml9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3ApCi0rCQkgICAgICBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSwgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKLSsJCSAgICAgIGNvbnN0IGdk Yl9ieXRlICphZGRpdGlvbmFsX2RhdGEsIGludCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSkKLSB7Ci0g ICBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbjsKLSAgIHN0cnVjdCBvYnN0YWNr ICpvYnN0YWNrID0gJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ4MzUsOCAr MTQ5MDIsMjUgQEAKLSAgICAgICBiYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJm Ml9wcm9wZXJ0eV9iYXRvbik7Ci0gICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7 Ci0gICAgICAgYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKLS0gICAgICBiYXRv bi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwotLSAgICAgIGJhdG9uLT5s b2NleHByLmRhdGEgPSBEV19CTE9DSyAoYXR0ciktPmRhdGE7Ci0rCi0rICAgICAgaWYgKGFkZGl0 aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKLSsgICAgICAg IHsKLSsgICAgICAgICAgZ2RiX2J5dGUgKmRhdGE7Ci0rCi0rICAgICAgICAgIGRhdGEgPSBvYnN0 YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsgICAgICAgICAgICAg ICAgICBEV19CTE9DSyAoYXR0ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rICAg ICAgICAgIG1lbWNweSAoZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5kYXRhLCBEV19CTE9DSyAoYXR0 ciktPnNpemUpOwotKyAgICAgICAgICBtZW1jcHkgKGRhdGEgKyBEV19CTE9DSyAoYXR0ciktPnNp emUsCi0rICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFf c2l6ZSk7Ci0rCi0rICAgICAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwotKyAgICAg ICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRp b25hbF9kYXRhX3NpemU7Ci0rICAgICAgICB9Ci0rICAgICAgZWxzZQotKyAgICAgICAgewotKyAg ICAgICAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKGF0dHIpLT5kYXRhOwotKyAg ICAgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwotKyAg ICAgICAgfQotICAgICAgIHByb3AtPmRhdGEuYmF0b24gPSBiYXRvbjsKLSAgICAgICBwcm9wLT5r aW5kID0gUFJPUF9MT0NFWFBSOwotICAgICAgIGdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24g IT0gTlVMTCk7Ci1AQCAtMTQ4NzIsOCArMTQ5NTYsMjggQEAKLSAJCWJhdG9uID0gWE9CTkVXIChv YnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKLSAJCWJhdG9uLT5yZWZlcmVu Y2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKLSAJCWJhdG9uLT5s b2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7Ci0tCQliYXRvbi0+bG9jZXhwci5zaXplID0gRFdf QkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKLS0JCWJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19C TE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOwotKwotKwkJaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBO VUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKLSsJCSAgewotKwkJICAgIGdkYl9ieXRl ICpkYXRhOwotKwotKwkJICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9i amZpbGVfb2JzdGFjaywKLSsJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSArIGFk ZGl0aW9uYWxfZGF0YV9zaXplKTsKLSsJCSAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJn ZXRfYXR0ciktPmRhdGEsCi0rCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUpOwot KwkJICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCi0rCQkJ ICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOwotKwotKwkJICAgIGJh dG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwotKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSAo RFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZQotKwkJCQkJICAgKyBhZGRpdGlvbmFsX2RhdGFf c2l6ZSk7Ci0rCQkgIH0KLSsJCWVsc2UKLSsJCSAgewotKwkJICAgIGJhdG9uLT5sb2NleHByLmRh dGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOwotKwkJICAgIGJhdG9uLT5sb2NleHBy LnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOwotKwkJICB9Ci0rCi0gCQlwcm9w LT5kYXRhLmJhdG9uID0gYmF0b247Ci0gCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwotIAkJ Z2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDkyNyw3ICsxNTAz MSw3IEBACi0gICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7Ci0gICBz dHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKLSAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7Ci0tICBz dHJ1Y3QgZHluYW1pY19wcm9wIGxvdywgaGlnaDsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93 LCBoaWdoLCBzdHJpZGU7Ci0gICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7Ci0gICBpbnQgaGln aF9ib3VuZF9pc19jb3VudCA9IDA7Ci0gICBjb25zdCBjaGFyICpuYW1lOwotQEAgLTE0OTQ3LDcg KzE1MDUxLDkgQEAKLSAKLSAgIGxvdy5raW5kID0gUFJPUF9DT05TVDsKLSAgIGhpZ2gua2luZCA9 IFBST1BfQ09OU1Q7Ci0rICBzdHJpZGUua2luZCA9IFBST1BfQ09OU1Q7Ci0gICBoaWdoLmRhdGEu Y29uc3RfdmFsID0gMDsKLSsgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IDA7Ci0gCi0gICAvKiBT ZXQgTE9XX0RFRkFVTFRfSVNfVkFMSUQgaWYgY3VycmVudCBsYW5ndWFnZSBhbmQgRFdBUkYgdmVy c2lvbiBhbGxvdwotICAgICAgb21pdHRpbmcgRFdfQVRfbG93ZXJfYm91bmQuICAqLwotQEAgLTE0 OTgwLDE5ICsxNTA4NiwyNiBAQAotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0rICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zdHJpZGUsIGN1KTsKLSsgIGlmIChhdHRyKQot KyAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmc3RyaWRlLCBO VUxMLCAwKSkKLSsgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiTWlz c2luZyBEV19BVF9ieXRlX3N0cmlkZSAiCi0rICAgICAgICAgICAgICAgICAgIi0gRElFIGF0IDB4 JXggW2luIG1vZHVsZSAlc10iKSwKLSsgICAgICAgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYs IG9iamZpbGVfbmFtZSAoY3UtPm9iamZpbGUpKTsKLSsKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAo ZGllLCBEV19BVF9sb3dlcl9ib3VuZCwgY3UpOwotICAgaWYgKGF0dHIpCi0tICAgIGF0dHJfdG9f ZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93KTsKLSsgICAgYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZsb3csIE5VTEwsIDApOwotICAgZWxzZSBpZiAoIWxvd19k ZWZhdWx0X2lzX3ZhbGlkKQotICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8o Ik1pc3NpbmcgRFdfQVRfbG93ZXJfYm91bmQgIgotIAkJCQkgICAgICAiLSBESUUgYXQgMHgleCBb aW4gbW9kdWxlICVzXSIpLAotIAkgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYsIG9iamZpbGVf bmFtZSAoY3UtPm9iamZpbGUpKTsKLSAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF91cHBlcl9ib3VuZCwgY3UpOwotLSAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJmhpZ2gpKQotKyAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGll LCBjdSwgJmhpZ2gsIE5VTEwsIDApKQotICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2NvdW50LCBjdSk7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCAmaGlnaCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgTlVMTCwgMCkpCi0gCXsKLSAJICAvKiBJZiBib3VuZHMg YXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBjYWxjdWxhdGlvbiBoZXJlLiAgKi8KLSAJICBpZiAo bG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBoaWdoLmtpbmQgPT0gUFJPUF9DT05TVCkKLUBAIC0x NTA1Niw3ICsxNTE2OSw3IEBACi0gICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkg JiYgKGhpZ2guZGF0YS5jb25zdF92YWwgJiBuZWdhdGl2ZV9tYXNrKSkKLSAgICAgaGlnaC5kYXRh LmNvbnN0X3ZhbCB8PSBuZWdhdGl2ZV9tYXNrOwotIAotLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9y YW5nZV90eXBlIChOVUxMLCBvcmlnX2Jhc2VfdHlwZSwgJmxvdywgJmhpZ2gpOwotKyAgcmFuZ2Vf dHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChOVUxMLCBvcmlnX2Jhc2VfdHlwZSwgJmxvdywgJmhp Z2gsICZzdHJpZGUpOwotIAotICAgaWYgKGhpZ2hfYm91bmRfaXNfY291bnQpCi0gICAgIFRZUEVf UkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmZsYWdfdXBwZXJfYm91bmRfaXNfY291bnQgPSAxOwot QEAgLTIyMzYwLDcgKzIyNDczLDcgQEAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9hbGxvY2F0ZWQsIGN1KTsKLSAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQotICAg ICB7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJv cCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJv cCwgTlVMTCwgMCkpCi0gICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwg cHJvcCwgdHlwZSwgb2JqZmlsZSk7Ci0gICAgIH0KLSAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkK LUBAIC0yMjM3NSw3ICsyMjQ4OCw3IEBACi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfYXNzb2NpYXRlZCwgY3UpOwotICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCi0g ICAgIHsKLS0gICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZw cm9wKSkKLSsgICAgICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZw cm9wLCBOVUxMLCAwKSkKLSAgICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRF RCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7Ci0gICAgIH0KLSAgIGVsc2UgaWYgKGF0dHIgIT0gTlVM TCkKLUBAIC0yMjM4OCw3ICsyMjUwMSw3IEBACi0gCi0gICAvKiBSZWFkIERXX0FUX2RhdGFfbG9j YXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7Ci0tICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0 dHIsIGRpZSwgY3UsICZwcm9wKSkKLSsgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQotICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0RB VEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9iamZpbGUpOwotIAotICAgaWYgKGR3YXJmMl9wZXJf b2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9mLXR5cGVwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4MDU4MjQ0MyAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDEt MDggMTk6MTU6NDQuOTgwNjM3NjYzICswMTAwCi1AQCAtMzEsNiArMzEsNyBAQAotICNpbmNsdWRl ICJ0YXJnZXQuaCIKLSAjaW5jbHVkZSAiZi1sYW5nLmgiCi0gI2luY2x1ZGUgInR5cGVwcmludC5o IgotKyNpbmNsdWRlICJ2YWxwcmludC5oIgotIAotICNpZiAwCQkJCS8qIEN1cnJlbnRseSB1bnVz ZWQuICAqLwotIHN0YXRpYyB2b2lkIGZfdHlwZV9wcmludF9hcmdzIChzdHJ1Y3QgdHlwZSAqLCBz dHJ1Y3QgdWlfZmlsZSAqKTsKLUBAIC02NCw2ICs2NSwxNyBAQAotICAgICB7Ci0gICAgICAgdmFs X3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7Ci0gICAgICAgcmV0dXJuOwotKyAgICB9Ci0r Ci0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxf cHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0r ICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmlu dF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybjsKLSAgICAgfQotIAotICAg Zl90eXBlX3ByaW50X2Jhc2UgKHR5cGUsIHN0cmVhbSwgc2hvdywgbGV2ZWwpOwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXZhbHByaW50LmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNi0wMS0wOCAxOToxNToz NS4wODE1ODI0NDggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZi12YWxwcmlu dC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgxNjM3NjY5ICswMTAwCi1AQCAtMzYsOCArMzYsNiBA QAotIAotIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQpOwotIHN0YXRp YyB2b2lkIGluZm9fY29tbW9uX2NvbW1hbmQgKGNoYXIgKiwgaW50KTsKLS1zdGF0aWMgdm9pZCBm NzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0X3RibCAoc3RydWN0IHR5cGUgKiwKLS0JCQkJCSAg ICAgIHN0cnVjdCB1aV9maWxlICopOwotIHN0YXRpYyB2b2lkIGY3N19nZXRfZHluYW1pY19sZW5n dGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsKLSAKLSBpbnQgZjc3X2FycmF5X29mZnNl dF90YmxbTUFYX0ZPUlRSQU5fRElNUyArIDFdWzJdOwotQEAgLTQ1LDE1ICs0Myw2IEBACi0gLyog QXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVs ZW1lbnRzCi0gICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXpl IG9mIGVhY2ggc3ViYXJyYXkuICAqLwotIAotLS8qIFRoZSBmb2xsb3dpbmcgbWFjcm8gZ2l2ZXMg dXMgdGhlIHNpemUgb2YgdGhlIG50aCBkaW1lbnNpb24sIFdoZXJlIAotLSAgIG4gaXMgMSBiYXNl ZC4gICovCi0tCi0tI2RlZmluZSBGNzdfRElNX1NJWkUobikgKGY3N19hcnJheV9vZmZzZXRfdGJs W25dWzFdKQotLQotLS8qIFRoZSBmb2xsb3dpbmcgZ2l2ZXMgdXMgdGhlIG9mZnNldCBmb3Igcm93 IG4gd2hlcmUgbiBpcyAxLWJhc2VkLiAgKi8KLS0KLS0jZGVmaW5lIEY3N19ESU1fT0ZGU0VUKG4p IChmNzdfYXJyYXlfb2Zmc2V0X3RibFtuXVswXSkKLS0KLSBpbnQKLSBmNzdfZ2V0X2xvd2VyYm91 bmQgKHN0cnVjdCB0eXBlICp0eXBlKQotIHsKLUBAIC0xMTEsNDcgKzEwMCw2IEBACi0gICAgICog VFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0g fQotIAotLS8qIEZ1bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgYXJyYXkgb2Zmc2V0LHNpemUgdGFi bGUgZm9yIHRoZSBhcnJheSAKLS0gICB0eXBlICJ0eXBlIi4gICovCi0tCi0tc3RhdGljIHZvaWQK LS1mNzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0X3RibCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0pCi0tewotLSAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwotLSAg aW50IGVsdGxlbjsKLS0gIGludCBuZGltZW4gPSAxOwotLSAgaW50IHVwcGVyLCBsb3dlcjsKLS0K LS0gIHRtcF90eXBlID0gdHlwZTsKLS0KLS0gIHdoaWxlIChUWVBFX0NPREUgKHRtcF90eXBlKSA9 PSBUWVBFX0NPREVfQVJSQVkpCi0tICAgIHsKLS0gICAgICB1cHBlciA9IGY3N19nZXRfdXBwZXJi b3VuZCAodG1wX3R5cGUpOwotLSAgICAgIGxvd2VyID0gZjc3X2dldF9sb3dlcmJvdW5kICh0bXBf dHlwZSk7Ci0tCi0tICAgICAgRjc3X0RJTV9TSVpFIChuZGltZW4pID0gdXBwZXIgLSBsb3dlciAr IDE7Ci0tCi0tICAgICAgdG1wX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSk7Ci0t ICAgICAgbmRpbWVuKys7Ci0tICAgIH0KLS0KLS0gIC8qIE5vdyB3ZSBtdWx0aXBseSBlbHRsZW4g YnkgYWxsIHRoZSBvZmZzZXRzLCBzbyB0aGF0IGxhdGVyIHdlIAotLSAgICAgY2FuIHByaW50IG91 dCBhcnJheSBlbGVtZW50cyBjb3JyZWN0bHkuICBVcCB0aWxsIG5vdyB3ZSAKLS0gICAgIGtub3cg YW4gb2Zmc2V0IHRvIGFwcGx5IHRvIGdldCB0aGUgaXRlbSBidXQgd2UgYWxzbyAKLS0gICAgIGhh dmUgdG8ga25vdyBob3cgbXVjaCB0byBhZGQgdG8gZ2V0IHRvIHRoZSBuZXh0IGl0ZW0uICAqLwot LQotLSAgbmRpbWVuLS07Ci0tICBlbHRsZW4gPSBUWVBFX0xFTkdUSCAodG1wX3R5cGUpOwotLSAg Rjc3X0RJTV9PRkZTRVQgKG5kaW1lbikgPSBlbHRsZW47Ci0tICB3aGlsZSAoLS1uZGltZW4gPiAw KQotLSAgICB7Ci0tICAgICAgZWx0bGVuICo9IEY3N19ESU1fU0laRSAobmRpbWVuICsgMSk7Ci0t ICAgICAgRjc3X0RJTV9PRkZTRVQgKG5kaW1lbikgPSBlbHRsZW47Ci0tICAgIH0KLS19Ci0tCi0t Ci0tCi0gLyogQWN0dWFsIGZ1bmN0aW9uIHdoaWNoIHByaW50cyBvdXQgRjc3IGFycmF5cywgVmFs YWRkciA9PSBhZGRyZXNzIGluIAotICAgIHRoZSBzdXBlcmlvci4gIEFkZHJlc3MgPT0gdGhlIGFk ZHJlc3MgaW4gdGhlIGluZmVyaW9yLiAgKi8KLSAKLUBAIC0xNjQsNDEgKzExMiw2MiBAQAotIAkJ ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0gCQkgICBpbnQg KmVsdHMpCi0gewotKyAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUg KGNoZWNrX3R5cGVkZWYgKHR5cGUpKTsKLSsgIENPUkVfQUREUiBhZGRyID0gYWRkcmVzcyArIGVt YmVkZGVkX29mZnNldDsKLSsgIExPTkdFU1QgbG93ZXJib3VuZCwgdXBwZXJib3VuZDsKLSAgIGlu dCBpOwotIAotKyAgZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQs ICZ1cHBlcmJvdW5kKTsKLSsKLSAgIGlmIChuc3MgIT0gbmRpbWVuc2lvbnMpCi0gICAgIHsKLS0g ICAgICBmb3IgKGkgPSAwOwotLQkgICAoaSA8IEY3N19ESU1fU0laRSAobnNzKSAmJiAoKmVsdHMp IDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLSsgICAgICBzaXplX3QgZGltX3NpemU7Ci0rICAgICAg c2l6ZV90IG9mZnMgPSAwOwotKyAgICAgIExPTkdFU1QgYnl0ZV9zdHJpZGUgPSBhYnMgKFRZUEVf QllURV9TVFJJREUgKHJhbmdlX3R5cGUpKTsKLSsKLSsgICAgICBpZiAoYnl0ZV9zdHJpZGUpCi0r ICAgICAgICBkaW1fc2l6ZSA9IGJ5dGVfc3RyaWRlOwotKyAgICAgIGVsc2UKLSsgICAgICAgIGRp bV9zaXplID0gVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKTsKLSsKLSsgICAg ICBmb3IgKGkgPSBsb3dlcmJvdW5kOwotKwkgICAoaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0 cykgPCBvcHRpb25zLT5wcmludF9tYXgpOwotIAkgICBpKyspCi0gCXsKLSsJICBzdHJ1Y3QgdmFs dWUgKnN1YmFycmF5ID0gdmFsdWVfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcwotKwkgICAgKFRZ UEVfVEFSR0VUX1RZUEUgKHR5cGUpLCB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmdfY29uc3Qg KHZhbCkKLSsJICAgICArIG9mZnMsIGFkZHIgKyBvZmZzKTsKLSsKLSAJICBmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICIoICIpOwotLQkgIGY3N19wcmludF9hcnJheV8xIChuc3MgKyAxLCBuZGlt ZW5zaW9ucywgVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCi0tCQkJICAgICB2YWxhZGRyLAotLQkJ CSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgaSAqIEY3N19ESU1fT0ZGU0VUIChuc3MpLAotLQkJCSAg ICAgYWRkcmVzcywKLS0JCQkgICAgIHN0cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zLCBlbHRz KTsKLSsJICBmNzdfcHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRpbWVuc2lvbnMsIHZhbHVlX3R5 cGUgKHN1YmFycmF5KSwKLSsJCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoc3Vi YXJyYXkpLAotKwkJCSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdWJhcnJheSksCi0rCQkJ ICAgICB2YWx1ZV9hZGRyZXNzIChzdWJhcnJheSksCi0rCQkJICAgICBzdHJlYW0sIHJlY3Vyc2Us IHN1YmFycmF5LCBvcHRpb25zLCBlbHRzKTsKLSsJICBvZmZzICs9IGRpbV9zaXplOwotIAkgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikgIik7Ci0gCX0KLS0gICAgICBpZiAoKmVsdHMgPj0g b3B0aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCBGNzdfRElNX1NJWkUgKG5zcykpIAotKyAgICAgIGlm ICgqZWx0cyA+PSBvcHRpb25zLT5wcmludF9tYXggJiYgaSA8IHVwcGVyYm91bmQpCi0gCWZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwotICAgICB9Ci0gICBlbHNlCi0gICAgIHsKLS0g ICAgICBmb3IgKGkgPSAwOyBpIDwgRjc3X0RJTV9TSVpFIChuc3MpICYmICgqZWx0cykgPCBvcHRp b25zLT5wcmludF9tYXg7Ci0rICAgICAgZm9yIChpID0gbG93ZXJib3VuZDsgaSA8IHVwcGVyYm91 bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXg7Ci0gCSAgIGkrKywgKCplbHRz KSsrKQotIAl7Ci0tCSAgdmFsX3ByaW50IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwKLS0JCSAg ICAgdmFsYWRkciwKLS0JCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgaSAqIEY3N19ESU1fT0ZGU0VU IChuZGltZW5zaW9ucyksCi0tCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwKLS0JCSAg ICAgdmFsLCBvcHRpb25zLCBjdXJyZW50X2xhbmd1YWdlKTsKLSsJICBzdHJ1Y3QgdmFsdWUgKmVs dCA9IHZhbHVlX3N1YnNjcmlwdCAoKHN0cnVjdCB2YWx1ZSAqKXZhbCwgaSk7Ci0rCi0rCSAgdmFs X3ByaW50ICh2YWx1ZV90eXBlIChlbHQpLAotKwkJICAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJp bnRpbmcgKGVsdCksCi0rCQkgICAgIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoZWx0KSwKLSsJCSAg ICAgdmFsdWVfYWRkcmVzcyAoZWx0KSwgc3RyZWFtLCByZWN1cnNlLAotKwkJICAgICBlbHQsIG9w dGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotIAotLQkgIGlmIChpICE9IChGNzdfRElNX1NJWkUg KG5zcykgLSAxKSkKLSsJICBpZiAoaSAhPSB1cHBlcmJvdW5kKQotIAkgICAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiLCAiKTsKLSAKLSAJICBpZiAoKCplbHRzID09IG9wdGlvbnMtPnByaW50 X21heCAtIDEpCi0tCSAgICAgICYmIChpICE9IChGNzdfRElNX1NJWkUgKG5zcykgLSAxKSkpCi0r CSAgICAgICYmIChpICE9IHVwcGVyYm91bmQpKQotIAkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiLi4uIik7Ci0gCX0KLSAgICAgfQotQEAgLTIyNSwxMiArMTk0LDYgQEAKLSBUeXBlIG5v ZGUgY29ycnVwdCEgRjc3IGFycmF5cyBjYW5ub3QgaGF2ZSAlZCBzdWJzY3JpcHRzICglZCBNYXgp IiksCi0gCSAgIG5kaW1lbnNpb25zLCBNQVhfRk9SVFJBTl9ESU1TKTsKLSAKLS0gIC8qIFNpbmNl IEY3NyBhcnJheXMgYXJlIHN0b3JlZCBjb2x1bW4tbWFqb3IsIHdlIHNldCB1cCBhbiAKLS0gICAg IG9mZnNldCB0YWJsZSB0byBnZXQgYXQgdGhlIHZhcmlvdXMgcm93J3MgZWxlbWVudHMuICBUaGUg Ci0tICAgICBvZmZzZXQgdGFibGUgY29udGFpbnMgZW50cmllcyBmb3IgYm90aCBvZmZzZXQgYW5k IHN1YmFycmF5IHNpemUuICAqLwotLQotLSAgZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90 YmwgKHR5cGUsIHN0cmVhbSk7Ci0tCi0gICBmNzdfcHJpbnRfYXJyYXlfMSAoMSwgbmRpbWVuc2lv bnMsIHR5cGUsIHZhbGFkZHIsIGVtYmVkZGVkX29mZnNldCwKLSAJCSAgICAgYWRkcmVzcywgc3Ry ZWFtLCByZWN1cnNlLCB2YWwsIG9wdGlvbnMsICZlbHRzKTsKLSB9Ci1AQCAtMzc1LDEyICszMzgs MTUgQEAKLSAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoICIpOwotICAgICAgIGZv ciAoaW5kZXggPSAwOyBpbmRleCA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGluZGV4KyspCi0gICAg ICAgICB7Ci0tICAgICAgICAgIGludCBvZmZzZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwg aW5kZXgpIC8gODsKLSsJICBzdHJ1Y3QgdmFsdWUgKmZpZWxkID0gdmFsdWVfZmllbGQKLSsJICAg ICgoc3RydWN0IHZhbHVlICopb3JpZ2luYWxfdmFsdWUsIGluZGV4KTsKLSsKLSsgICAgICAgICAg dmFsX3ByaW50ICh2YWx1ZV90eXBlIChmaWVsZCksCi0rCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zv cl9wcmludGluZyAoZmllbGQpLAotKwkJICAgICB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGZpZWxk KSwKLSsJCSAgICAgdmFsdWVfYWRkcmVzcyAoZmllbGQpLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLAot KwkJICAgICBmaWVsZCwgb3B0aW9ucywgY3VycmVudF9sYW5ndWFnZSk7Ci0gCi0tICAgICAgICAg IHZhbF9wcmludCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpbmRleCksIHZhbGFkZHIsCi0tCQkg ICAgIGVtYmVkZGVkX29mZnNldCArIG9mZnNldCwKLS0JCSAgICAgYWRkcmVzcywgc3RyZWFtLCBy ZWN1cnNlICsgMSwKLS0JCSAgICAgb3JpZ2luYWxfdmFsdWUsIG9wdGlvbnMsIGN1cnJlbnRfbGFu Z3VhZ2UpOwotICAgICAgICAgICBpZiAoaW5kZXggIT0gVFlQRV9ORklFTERTICh0eXBlKSAtIDEp Ci0gICAgICAgICAgICAgZnB1dHNfZmlsdGVyZWQgKCIsICIsIHN0cmVhbSk7Ci0gICAgICAgICB9 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnR5cGVzLmMKLT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDEtMDgg MTk6MTU6MzUuMDgzNTgyNDU5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dk YnR5cGVzLmMJMjAxNi0wMS0wOCAxOToxNTo0NC45ODI2Mzc2NzQgKzAxMDAKLUBAIC04MzYsNyAr ODM2LDggQEAKLSBzdHJ1Y3QgdHlwZSAqCi0gY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBl ICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCi0gCQkgICBjb25zdCBzdHJ1 Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQsCi0tCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19w cm9wICpoaWdoX2JvdW5kKQotKwkJICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqaGlnaF9i b3VuZCwKLSsJCSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnN0cmlkZSkKLSB7Ci0gICBp ZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKLSAgICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2Nv cHkgKGluZGV4X3R5cGUpOwotQEAgLTg1MSw2ICs4NTIsNyBAQAotICAgICBUWVBFX1pBTExPQyAo cmVzdWx0X3R5cGUsIHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwotICAgVFlQRV9SQU5H RV9EQVRBIChyZXN1bHRfdHlwZSktPmxvdyA9ICpsb3dfYm91bmQ7Ci0gICBUWVBFX1JBTkdFX0RB VEEgKHJlc3VsdF90eXBlKS0+aGlnaCA9ICpoaWdoX2JvdW5kOwotKyAgVFlQRV9SQU5HRV9EQVRB IChyZXN1bHRfdHlwZSktPnN0cmlkZSA9ICpzdHJpZGU7Ci0gCi0gICBpZiAobG93X2JvdW5kLT5r aW5kID09IFBST1BfQ09OU1QgJiYgbG93X2JvdW5kLT5kYXRhLmNvbnN0X3ZhbCA+PSAwKQotICAg ICBUWVBFX1VOU0lHTkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAgLTg3OSw3ICs4ODEsNyBAQAot IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1 Y3QgdHlwZSAqaW5kZXhfdHlwZSwKLSAJCQkgIExPTkdFU1QgbG93X2JvdW5kLCBMT05HRVNUIGhp Z2hfYm91bmQpCi0gewotLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2g7Ci0rICBzdHJ1 Y3QgZHluYW1pY19wcm9wIGxvdywgaGlnaCwgc3RyaWRlOwotIAotICAgbG93LmtpbmQgPSBQUk9Q X0NPTlNUOwotICAgbG93LmRhdGEuY29uc3RfdmFsID0gbG93X2JvdW5kOwotQEAgLTg4Nyw3ICs4 ODksMTEgQEAKLSAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7Ci0gICBoaWdoLmRhdGEuY29uc3Rf dmFsID0gaGlnaF9ib3VuZDsKLSAKLS0gIHJlc3VsdF90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUg KHJlc3VsdF90eXBlLCBpbmRleF90eXBlLCAmbG93LCAmaGlnaCk7Ci0rICBzdHJpZGUua2luZCA9 IFBST1BfQ09OU1Q7Ci0rICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSAwOwotKwotKyAgcmVzdWx0 X3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAocmVzdWx0X3R5cGUsIGluZGV4X3R5cGUsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbG93LCAmaGlnaCwgJnN0cmlkZSk7Ci0g Ci0gICByZXR1cm4gcmVzdWx0X3R5cGU7Ci0gfQotQEAgLTEwODQsMTYgKzEwOTAsMjEgQEAKLSAg ICAgICAmJiAoIXR5cGVfbm90X2Fzc29jaWF0ZWQgKHJlc3VsdF90eXBlKQotIAkgICYmICF0eXBl X25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBlKSkpCi0gICAgIHsKLS0gICAgICBMT05HRVNUIGxv d19ib3VuZCwgaGlnaF9ib3VuZDsKLSsgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3Vu ZCwgYnl0ZV9zdHJpZGU7Ci0gCi0gICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdl X3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi0gCWxvd19ib3VuZCA9IGhpZ2hf Ym91bmQgPSAwOwotICAgICAgIGVsZW1lbnRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKGVsZW1lbnRf dHlwZSk7Ci0rCi0rICAgICAgYnl0ZV9zdHJpZGUgPSBhYnMgKFRZUEVfQllURV9TVFJJREUgKHJh bmdlX3R5cGUpKTsKLSsKLSAgICAgICAvKiBCZSBjYXJlZnVsIHdoZW4gc2V0dGluZyB0aGUgYXJy YXkgbGVuZ3RoLiAgQWRhIGFycmF5cyBjYW4gYmUKLSAJIGVtcHR5IGFycmF5cyB3aXRoIHRoZSBo aWdoX2JvdW5kIGJlaW5nIHNtYWxsZXIgdGhhbiB0aGUgbG93X2JvdW5kLgotIAkgSW4gc3VjaCBj YXNlcywgdGhlIGFycmF5IGxlbmd0aCBzaG91bGQgYmUgemVyby4gICovCi0gICAgICAgaWYgKGhp Z2hfYm91bmQgPCBsb3dfYm91bmQpCi0gCVRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPSAwOwot KyAgICAgIGVsc2UgaWYgKGJ5dGVfc3RyaWRlID4gMCkKLSsJVFlQRV9MRU5HVEggKHJlc3VsdF90 eXBlKSA9IGJ5dGVfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSAgICAg ICBlbHNlIGlmIChiaXRfc3RyaWRlID4gMCkKLSAJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9 Ci0gCSAgKGJpdF9zdHJpZGUgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpICsgNykgLyA4 OwotQEAgLTE4MDQsMTIgKzE4MTUsMzEgQEAKLSBzdGF0aWMgaW50Ci0gaXNfZHluYW1pY190eXBl X2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKLSB7Ci0rICBpbnQg aW5kZXg7Ci0rCi0rICBpZiAoIXR5cGUpCi0rICAgIHJldHVybiAwOwotKwotICAgdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHR5cGUpOwotIAotICAgLyogV2Ugb25seSB3YW50IHRvIHJlY29nbml6ZSBy ZWZlcmVuY2VzIGF0IHRoZSBvdXRlcm1vc3QgbGV2ZWwuICAqLwotICAgaWYgKHRvcF9sZXZlbCAm JiBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYpCi0gICAgIHR5cGUgPSBjaGVja190 eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7Ci0gCi0rICBpZiAoVFlQRV9BU1NPQ0lB VEVEX1BST1AgKHR5cGUpKQotKyAgICByZXR1cm4gMTsKLSsKLSsgIGlmIChUWVBFX0FMTE9DQVRF RF9QUk9QICh0eXBlKSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICAvKiBTY2FuIGZpZWxkIHR5cGVz IGluIHRoZSBGb3J0cmFuIGNhc2UgZm9yIG5lc3RlZCBkeW5hbWljIHR5cGVzLgotKyAgICAgVGhp cyB3aWxsIGJlIGRvbmUgb25seSBmb3IgRm9ydHJhbiBhcyBpbiB0aGUgQysrIGNhc2UgYW4gZW5k bGVzcyByZWN1cnNpb24KLSsgICAgIGNhbiBvY2N1ciBpbiB0aGUgYXJlYSBvZiBjbGFzc2VzLiAg Ki8KLSsgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9mb3J0 cmFuKQotKyAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBp bmRleCsrKQotKyAgICAgIGlmIChpc19keW5hbWljX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgaW5kZXgpKSkKLSsgICAgICAgIHJldHVybiAxOwotKwotICAgLyogVHlwZXMgdGhhdCBoYXZl IGEgZHluYW1pYyBUWVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKLSAgICAgIGR5bmFt aWMsIGV2ZW4gaWYgdGhlIHR5cGUgaXRzZWxmIGlzIHN0YXRpY2FsbHkgZGVmaW5lZC4KLSAgICAg IEZyb20gYSB1c2VyJ3MgcG9pbnQgb2YgdmlldywgdGhpcyBtYXkgYXBwZWFyIGNvdW50ZXItaW50 dWl0aXZlOwotQEAgLTE4NDQsMTEgKzE4NzQsMTkgQEAKLSAgICAgICB7Ci0gCWdkYl9hc3NlcnQg KFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7Ci0gCi0tCS8qIFRoZSBhcnJheSBpcyBkeW5hbWlj IGlmIGVpdGhlciB0aGUgYm91bmRzIGFyZSBkeW5hbWljLAotLQkgICBvciB0aGUgZWxlbWVudHMg aXQgY29udGFpbnMgaGF2ZSBhIGR5bmFtaWMgY29udGVudHMuICAqLwotKwkvKiBUaGUgYXJyYXkg aXMgZHluYW1pYyBpZiBlaXRoZXIKLSsgICAgIC0gdGhlIGJvdW5kcyBhcmUgZHluYW1pYywKLSsJ ICAgLSB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMgaGF2ZSBhIGR5bmFtaWMgY29udGVudHMKLSsg ICAgIC0gYSBkYXRhX2xvY2F0b24gYXR0cmlidXRlIHdhcyBmb3VuZC4gICovCi0gCWlmIChpc19k eW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSksIDApKQotIAkgIHJl dHVybiAxOwotLQlyZXR1cm4gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9U WVBFICh0eXBlKSwgMCk7Ci0rCWVsc2UgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgIT0g TlVMTAotKwkgICAgICAgICAmJiAoVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBS T1BfTE9DRVhQUgotKwkgICAgICAgICAgICAgfHwgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5 cGUpID09IFBST1BfTE9DTElTVCkpCi0rICAgIHJldHVybiAxOwotKyAgZWxzZQotKyAgICByZXR1 cm4gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgMCk7 Ci0rCWJyZWFrOwotICAgICAgIH0KLSAKLSAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgotQEAg LTE4NjEsNiArMTg5OSwxOCBAQAotIAkgICAgICAmJiBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwg KFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSksIDApKQotIAkgICAgcmV0dXJuIDE7Ci0gICAgICAg fQotKyAgICBjYXNlIFRZUEVfQ09ERV9QVFI6Ci0rICAgICAgewotKyAgICAgICAgaWYgKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpCi0rICAgICAgICAgICAgJiYgKFRZUEVfQ09ERSAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsgICAgICAgICAgICAgICAgfHwg VFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKSkK LSsgICAgICAgICAgcmV0dXJuIGlzX2R5bmFtaWNfdHlwZSAoY2hlY2tfdHlwZWRlZiAoVFlQRV9U QVJHRVRfVFlQRSAodHlwZSkpKTsKLSsKLSsgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgYnJl YWs7Ci0rICAgICAgfQotKyAgICBkZWZhdWx0OgotKyAgICAgIHJldHVybiAwOwotICAgICAgIGJy ZWFrOwotICAgICB9Ci0gCi1AQCAtMTg5MCw3ICsxOTQwLDggQEAKLSAgIHN0cnVjdCB0eXBlICpz dGF0aWNfcmFuZ2VfdHlwZSwgKnN0YXRpY190YXJnZXRfdHlwZTsKLSAgIGNvbnN0IHN0cnVjdCBk eW5hbWljX3Byb3AgKnByb3A7Ci0gICBjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24g KmJhdG9uOwotLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0r ICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotKyAg c3RydWN0IHR5cGUgKnJhbmdlX2NvcHkgPSBjb3B5X3R5cGUgKGR5bl9yYW5nZV90eXBlKTsKLSAK LSAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5cGUpID09IFRZUEVfQ09ERV9S QU5HRSk7Ci0gCi1AQCAtMTkyMiwxMiArMTk3MywxOSBAQAotICAgICAgIGhpZ2hfYm91bmQuZGF0 YS5jb25zdF92YWwgPSAwOwotICAgICB9Ci0gCi0rICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAo ZHluX3JhbmdlX3R5cGUpLT5zdHJpZGU7Ci0rICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5 IChwcm9wLCBOVUxMLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQotKyAgICB7Ci0rICAgICAgc3RyaWRl LmtpbmQgPSBQUk9QX0NPTlNUOwotKyAgICAgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVl OwotKyAgICB9Ci0rCi0gICBzdGF0aWNfdGFyZ2V0X3R5cGUKLS0gICAgPSByZXNvbHZlX2R5bmFt aWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHluX3JhbmdlX3R5cGUpLAotKyAg ICA9IHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFIChyYW5n ZV9jb3B5KSwKLSAJCQkJICAgICBhZGRyX3N0YWNrLCAwKTsKLS0gIHN0YXRpY19yYW5nZV90eXBl ID0gY3JlYXRlX3JhbmdlX3R5cGUgKGNvcHlfdHlwZSAoZHluX3JhbmdlX3R5cGUpLAotKyAgc3Rh dGljX3JhbmdlX3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAocmFuZ2VfY29weSwKLSAJCQkJCSBz dGF0aWNfdGFyZ2V0X3R5cGUsCi0tCQkJCQkgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpOwotKwkJ CQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kLCAmc3RyaWRlKTsKLSAgIFRZUEVfUkFOR0VfREFU QSAoc3RhdGljX3JhbmdlX3R5cGUpLT5mbGFnX2JvdW5kX2V2YWx1YXRlZCA9IDE7Ci0gICByZXR1 cm4gc3RhdGljX3JhbmdlX3R5cGU7Ci0gfQotQEAgLTE5NDYsNyArMjAwNCw4IEBACi0gICBzdHJ1 Y3QgdHlwZSAqYXJ5X2RpbTsKLSAgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7Ci0gCi0tICBn ZGJfYXNzZXJ0IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9BUlJBWSk7Ci0rICBnZGJf YXNzZXJ0IChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9BUlJBWQotKwkgICAgICB8fCBU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9TVFJJTkcpOwotIAotICAgdHlwZSA9IGNvcHlf dHlwZSAodHlwZSk7Ci0gCi1AQCAtMTk3MSwxMyArMjAzMCwxOCBAQAotIAotICAgYXJ5X2RpbSA9 IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGVsdF90eXBlKSk7Ci0gCi0tICBpZiAo YXJ5X2RpbSAhPSBOVUxMICYmIFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZ KQotKyAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBF X0NPREVfQVJSQVkKLSsJCQkgIHx8IFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX1NU UklORykpCi0gICAgIGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5IChhcnlfZGltLCBh ZGRyX3N0YWNrKTsKLSAgIGVsc2UKLSAgICAgZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0 eXBlKTsKLSAKLS0gIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwg ZWx0X3R5cGUsIHJhbmdlX3R5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOwotKyAgaWYgKFRZUEVfQ09ERSAo dHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORwotKyAgICAgICYmIFRZUEVfRklFTERfQklUU0laRSAo dHlwZSwgMCkgPT0gMCkKLSsgICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdfdHlwZSAodHlwZSwgZWx0 X3R5cGUsIHJhbmdlX3R5cGUpOwotKyAgZWxzZQotKyAgICByZXR1cm4gY3JlYXRlX2FycmF5X3R5 cGVfd2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLAotKwkJCQkJICBUWVBF X0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApKTsKLSB9Ci0gCi0gLyogUmVzb2x2ZSBkeW5hbWljIGJv dW5kcyBvZiBtZW1iZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0YXRpYwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4NTU4 MjQ3MSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5oCTIwMTYt MDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtNTc3LDYgKzU3NywxMCBAQAotIAot ICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOwotIAotKyAgLyogKiBTdHJpZGUgb2YgcmFuZ2Uu ICAqLwotKwotKyAgc3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7Ci0rCi0gICAvKiBUcnVlIGlm IEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUK LSAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBp cyBjb21wdXRlZC4gICovCi0gCi1AQCAtNzQ5LDYgKzc1MywxOCBAQAotIAotICAgLyogKiBDb250 YWlucyBhbGwgZHluYW1pYyB0eXBlIHByb3BlcnRpZXMuICAqLwotICAgc3RydWN0IGR5bmFtaWNf cHJvcF9saXN0ICpkeW5fcHJvcF9saXN0OwotKwotKyAgLyogU3RydWN0dXJlIGZvciBEV19BVF9h bGxvY2F0ZWQuCi0rICAgICBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVz IHRoYXQgdGhlIG9iamVjdCBvZiB0aGUgdHlwZQotKyAgICAgY2FuIGJlIGFsbG9jYXRlZC9kZWFs bG9jYXRlZC4gIFRoZSB2YWx1ZSBjYW4gYmUgYSBkd2FyZiBleHByZXNzaW9uLAotKyAgICAgcmVm ZXJlbmNlLCBvciBhIGNvbnN0YW50LiAgKi8KLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmFsbG9j YXRlZDsKLSsKLSsgIC8qIFN0cnVjdHVyZSBmb3IgRFdfQVRfYXNzb2NpYXRlZC4KLSsgICAgIFRo ZSBwcmVzZW5jZSBvZiB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZWQgdGhhdCB0aGUgb2JqZWN0IG9m IHRoZSB0eXBlCi0rICAgICBjYW4gYmUgYXNzb2NpYXRlZC4gIFRoZSB2YWx1ZSBjYW4gYmUgYSBk d2FyZiBleHByZXNzaW9uLAotKyAgICAgcmVmZXJlbmNlLCBvciBhIGNvbnN0YW50LiAgKi8KLSsg IHN0cnVjdCBkeW5hbWljX3Byb3AgKmFzc29jaWF0ZWQ7Ci0gfTsKLSAKLSAvKiAqIEEgYGBzdHJ1 Y3QgdHlwZScnIGRlc2NyaWJlcyBhIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYSB0eXBlLCB3aXRo Ci1AQCAtMTI1NSw2ICsxMjcxLDE1IEBACi0gICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSkt PmhpZ2gua2luZAotICNkZWZpbmUgVFlQRV9MT1dfQk9VTkRfS0lORChyYW5nZV90eXBlKSBcCi0g ICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmxvdy5raW5kCi0rI2RlZmluZSBUWVBFX0JZ VEVfU1RSSURFKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+ c3RyaWRlLmRhdGEuY29uc3RfdmFsCi0rI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFX0JMT0NLKHJh bmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEu bG9jZXhwcgotKyNkZWZpbmUgVFlQRV9CWVRFX1NUUklERV9MT0NMSVNUKHJhbmdlX3R5cGUpIFwK LSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEubG9jbGlzdAotKyNk ZWZpbmUgVFlQRV9CWVRFX1NUUklERV9LSU5EKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0Vf REFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmtpbmQKLSsKLSAKLSAvKiBQcm9wZXJ0eSBhY2Nlc3Nv cnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRpb24uICAqLwotICNkZWZpbmUgVFlQRV9EQVRBX0xP Q0FUSU9OKHRoaXN0eXBlKSBcCi1AQCAtMTI2Niw2ICsxMjkxLDE4IEBACi0gI2RlZmluZSBUWVBF X0RBVEFfTE9DQVRJT05fS0lORCh0aGlzdHlwZSkgXAotICAgVFlQRV9EQVRBX0xPQ0FUSU9OICh0 aGlzdHlwZSktPmtpbmQKLSAKLSsvKiBBbGxvY2F0ZWQgc3RhdHVzIG9mIHR5cGUgb2JqZWN0LiAg SWYgc2V0IHRvIG5vbi16ZXJvIGl0IG1lYW5zIHRoZSBvYmplY3QKLSsgICBpcyBhbGxvY2F0ZWQu IEEgemVybyB2YWx1ZSBtZWFucyBpdCBpcyBub3QgYWxsb2NhdGVkLiAgKi8KLSsjZGVmaW5lIFRZ UEVfTk9UX0FMTE9DQVRFRCh0KSAgKFRZUEVfQUxMT0NBVEVEX1BST1AgKHQpIFwKLSsgICYmIFRZ UEVfQUxMT0NBVEVEX1BST1AgKHQpLT5raW5kID09IFBST1BfQ09OU1QgXAotKyAgJiYgIVRZUEVf QUxMT0NBVEVEX1BST1AgKHQpLT5kYXRhLmNvbnN0X3ZhbCkKLSsKLSsvKiBBc3NvY2lhdGVkIHN0 YXR1cyBvZiB0eXBlIG9iamVjdC4gIElmIHNldCB0byBub24temVybyBpdCBtZWFucyB0aGUgb2Jq ZWN0Ci0rICAgaXMgYXNzb2NpYXRlZC4gQSB6ZXJvIHZhbHVlIG1lYW5zIGl0IGlzIG5vdCBhc3Nv Y2lhdGVkLiAgKi8KLSsjZGVmaW5lIFRZUEVfTk9UX0FTU09DSUFURUQodCkgIChUWVBFX0FTU09D SUFURURfUFJPUCAodCkgXAotKyAgJiYgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHQpLT5raW5kID09 IFBST1BfQ09OU1QgXAotKyAgJiYgIVRZUEVfQVNTT0NJQVRFRF9QUk9QICh0KS0+ZGF0YS5jb25z dF92YWwpCi0rCi0gLyogUHJvcGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdHlwZSBhbGxvY2F0ZWQv YXNzb2NpYXRlZC4gICovCi0gI2RlZmluZSBUWVBFX0FMTE9DQVRFRF9QUk9QKHRoaXN0eXBlKSBc Ci0gICBnZXRfZHluX3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwgdGhpc3R5cGUpCi1AQCAtMTI4 OSw2ICsxMzI2LDkgQEAKLSAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhf VFlQRShhcnJheXR5cGUpKQotICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRF RklORUQoYXJyYXl0eXBlKSBcCi0gICAgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5E RVhfVFlQRShhcnJheXR5cGUpKQotKyNkZWZpbmUgVFlQRV9BUlJBWV9TVFJJREVfSVNfVU5ERUZJ TkVEKGFycmF5dHlwZSkgXAotKyAgIChUWVBFX0JZVEVfU1RSSURFKFRZUEVfSU5ERVhfVFlQRShh cnJheXR5cGUpKSA9PSAwKQotKwotIAotICNkZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9W QUxVRShhcnJheXR5cGUpIFwKLSAgICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgo YXJyYXl0eXBlKSkpKQotQEAgLTE3NzUsNiArMTgxNSw3IEBACi0gCi0gZXh0ZXJuIHN0cnVjdCB0 eXBlICpjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLSAJ CQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKiwKLSsJCQkJICAgICAgIGNvbnN0 IHN0cnVjdCBkeW5hbWljX3Byb3AgKiwKLSAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWlj X3Byb3AgKik7Ci0gCi0gZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3Ry dWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTYt MDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtMCwwICsxLDYxIEBACi0rIyBDb3B5 cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNm aWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQot KwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4g dG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotKyMgQ2hlY2sgVkxB IHBhc3NlZCB0byBmaXJzdCBGb3J0cmFuIGZ1bmN0aW9uLgotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEtcGFzc2VkIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAiZnVuYzEtdmxhLXBhc3NlZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhIiAiID0gXFwo ICpcXCggKjIyLCAqMjIsICoyMixcWygpMjIsIC5cXSpcXCkiIFwKLSsgICJwcmludCB2bGEgKGZ1 bmMxKSIKLStnZGJfdGVzdCAicHR5cGUgdmxhIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxc KSBcXFwoMTAsMTBcXFwpIiBcCi0rICAicHR5cGUgdmxhIChmdW5jMSkiCi0rCi0rZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMxLXZsYS1tb2RpZmllZCJdCi0rZ2RiX2Nv bnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXZsYS1tb2RpZmllZCIKLStnZGJfdGVzdCAicHJp bnQgdmxhKDUsNSkiICIgPSA1NSIgInByaW50IHZsYSg1LDUpIChmdW5jMSkiCi0rZ2RiX3Rlc3Qg InByaW50IHZsYSg3LDcpIiAiID0gNzciICJwcmludCB2bGEoNSw1KSAoZnVuYzEpIgotKwotKyMg Q2hlY2sgaWYgdGhlIHZhbHVlcyBhcmUgY29ycmVjdCBhZnRlciByZXR1cm5pbmcgZnJvbSBmdW5j MQotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS1yZXR1cm5lZCJd Ci0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXJldHVybmVkIgotK2dkYl90ZXN0 ICJwcmludCByZXQiICIgPSAuVFJVRS4iICJwcmludCByZXQgYWZ0ZXIgZnVuYzEgcmV0dXJuZWQi Ci0rCi0rIyBDaGVjayBWTEEgcGFzc2VkIHRvIHNlY29uZCBGb3J0cmFuIGZ1bmN0aW9uCi0rZ2Ri X2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMyLXZsYS1wYXNzZWQiXQotK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMi12bGEtcGFzc2VkIgotK2dkYl90ZXN0ICJw cmludCB2bGEiIFwKLSsgICIgPSBcXFwoNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0 NCwgNDRcXFwpIiBcCi0rICAicHJpbnQgdmxhIChmdW5jMikiCi0rZ2RiX3Rlc3QgInB0eXBlIHZs YSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwXFxcKSIgXAotKyAgInB0eXBl IHZsYSAoZnVuYzIpIgotKwotKyMgQ2hlY2sgaWYgdGhlIHJldHVybmVkIFZMQSBoYXMgdGhlIGNv cnJlY3QgdmFsdWVzIGFuZCBwdHlwZS4KLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251 bWJlciAiZnVuYzItcmV0dXJuZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5j Mi1yZXR1cm5lZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhMyIgIiA9IFxcXCgxLCAyLCA0NCwgNCwg NDQsIDQ0LCA0NCwgOCwgNDQsIDQ0XFxcKSIgXAotKyAgInByaW50IHZsYTMgKGFmdGVyIGZ1bmMy KSIKLStnZGJfdGVzdCAicHR5cGUgdmxhMyIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkg XFxcKDEwXFxcKSIgXAotKyAgInB0eXBlIHZsYTMgKGFmdGVyIGZ1bmMyKSIKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLWZ1bmMuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtMCww ICsxLDcxIEBACi0rISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSshIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rISAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyEgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKLSshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCi0rIQotKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKLSshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w bGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKwotK2xv Z2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkKLSsgIGltcGxpY2l0IG5vbmUKLSsgIGludGVnZXIs IGFsbG9jYXRhYmxlIDo6IHZsYSAoOiwgOikKLSsgIGZ1bmMxID0gYWxsb2NhdGVkKHZsYSkKLSsg IHZsYSg1LDUpID0gNTUgICAgICAgICAgICAgICAhIGZ1bmMxLXZsYS1wYXNzZWQKLSsgIHZsYSg3 LDcpID0gNzcKLSsgIHJldHVybiAgICAgICAgICAgICAgICAgICAgICAhIGZ1bmMxLXZsYS1tb2Rp ZmllZAotK2VuZCBmdW5jdGlvbiBmdW5jMQotKwotK2Z1bmN0aW9uIGZ1bmMyKHZsYSkKLSsgIGlt cGxpY2l0IG5vbmUKLSsgIGludGVnZXIgOjogdmxhICg6KQotKyAgaW50ZWdlciA6OiBmdW5jMihz aXplKHZsYSkpCi0rICBpbnRlZ2VyIDo6IGsKLSsKLSsgIHZsYSgxKSA9IDEgICAgICAgICAgICAg ICAgICAgICEgZnVuYzItdmxhLXBhc3NlZAotKyAgdmxhKDIpID0gMgotKyAgdmxhKDQpID0gNAot KyAgdmxhKDgpID0gOAotKwotKyAgZnVuYzIgPSB2bGEKLStlbmQgZnVuY3Rpb24gZnVuYzIKLSsK LStwcm9ncmFtIHZsYV9mdW5jCi0rICBpbXBsaWNpdCBub25lCi0rICBpbnRlcmZhY2UKLSsgICAg bG9naWNhbCBmdW5jdGlvbiBmdW5jMSAodmxhKQotKyAgICAgIGludGVnZXIgOjogdmxhICg6LCA6 KQotKyAgICBlbmQgZnVuY3Rpb24KLSsgIGVuZCBpbnRlcmZhY2UKLSsgIGludGVyZmFjZQotKyAg ICBmdW5jdGlvbiBmdW5jMiAodmxhKQotKyAgICAgIGludGVnZXIgOjogdmxhICg6KQotKyAgICAg IGludGVnZXIgZnVuYzIoc2l6ZSh2bGEpKQotKyAgICBlbmQgZnVuY3Rpb24KLSsgIGVuZCBpbnRl cmZhY2UKLSsKLSsgIGxvZ2ljYWwgOjogcmV0Ci0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2 bGExICg6LCA6KQotKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhMiAoOikKLSsgIGludGVn ZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTMgKDopCi0rCi0rICByZXQgPSAuRkFMU0UuCi0rCi0rICBh bGxvY2F0ZSAodmxhMSAoMTAsMTApKQotKyAgdmxhMSg6LDopID0gMjIKLSsKLSsgIGFsbG9jYXRl ICh2bGEyICgxMCkpCi0rICB2bGEyKDopID0gNDQKLSsKLSsgIHJldCA9IGZ1bmMxKHZsYTEpCi0r ICB2bGEzID0gZnVuYzIodmxhMikgICAgICAgICAgISBmdW5jMS1yZXR1cm5lZAotKwotKyAgcmV0 ID0gLlRSVUUuICAgICAgICAgICAgICAgICEgZnVuYzItcmV0dXJuZWQKLStlbmQgcHJvZ3JhbSB2 bGFfZnVuYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQu OTg0NjM3Njg2ICswMTAwCi1AQCAtMCwwICsxLDQ0IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Ci0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3Jf dGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtk ZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8g TUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBN QUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJyZS1yZXZlcnNlLWVsZW1lbnRzIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAicmUtcmV2ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxc XCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMFxcXCkiIFwKLSsgICJwcmludCByZS1yZXZl cnNlLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZp cnN0IHJlLXJldmVyc2UtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxMCkiICIgPSAx MCIgInByaW50IGxhc3QgcmUtcmV2ZXJzZS1lbGVtZW50IgotKwotK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJvZGQtZWxlbWVudHMiXQotK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwg MywgNSwgNywgOVxcXCkiICJwcmludCBvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2 bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50 IHB2bGEoNSkiICIgPSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVudCIKLSsKLStnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAic2luZ2xlLWVsZW1lbnQiXQotK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIg IiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmludCBw dmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAs MCArMSwzMCBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt cGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsKLStw cm9ncmFtIHZsYV9zdHJpZGUKLSsgIGludGVnZXIsIHRhcmdldCwgYWxsb2NhdGFibGUgOjogdmxh ICg6KQotKyAgaW50ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQotKwotKyAgYWxsb2NhdGUodmxh KDEwKSkKLSsgIHZsYSA9ICgvIChJLCBJID0gMSwxMCkgLykKLSsKLSsgIHB2bGEgPT4gdmxhKDEw OjE6LTEpCi0rICBwdmxhID0+IHB2bGEoMTA6MTotMSkKLSsgIHB2bGEgPT4gdmxhKDE6MTA6Mikg ICAhIHJlLXJldmVyc2UtZWxlbWVudHMKLSsgIHB2bGEgPT4gdmxhKDU6NDotMikgICAhIG9kZC1l bGVtZW50cwotKwotKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKLStl bmQgcHJvZ3JhbSB2bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE2 LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCArMSwxMDEgQEAKLSsjIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKLSsKLStp ZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3Ny Y2ZpbGV9IFwKLSsgICAge2RlYnVnIGY5MCBxdWlldH1dIH0gewotKyAgICByZXR1cm4gLTEKLSt9 Ci0rCi0rIyBjaGVjayB0aGF0IGFsbCBmb3J0cmFuIHN0YW5kYXJkIGRhdGF0eXBlcyB3aWxsIGJl Ci0rIyBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIHVzaW5nIGFzIFZMQSdzCi0rCi0raWYgIVtydW50 byBNQUlOX19dIHRoZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50 IE1BSU5fXyIKLSsgICAgY29udGludWUKLSt9Ci0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0xIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTEiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFy IiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcXCkgJHtoZXh9 IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIGZpcnN0IHRpbWUiCi0rZ2Ri X3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjEwIFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJw dHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIg XAotKyAgInB0eXBlIHZhcl9jaGFyIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIm5leHQiICJcXGQr Lip2YXJfY2hhciA9ICdmb28nLioiIFwKLSsgICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9m IHZhcl9jaGFyIgotK2dkYl90ZXN0ICJwcmludCBsIiAiID0gLlRSVUUuIiAicHJpbnQgYWxsb2Nh dGlvbiBzdGF0dXMgZmlyc3QgdGltZSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAidmFyX2NoYXItZmlsbGVkLTEiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJ2YXJfY2hhci1maWxsZWQtMSIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKLSsgICIg PSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXFwpICR7aGV4fSIgXAotKyAgInBy aW50IHZhcl9jaGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwcmludCAq dmFyX2NoYXIiICIgPSAnZm9vJyIgXAotKyAgInByaW50ICp2YXJfY2hhciBhZnRlciBmaWxsZWQg Zmlyc3QgdGltZSIKLStnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAt PiBcXCggY2hhcmFjdGVyXFwqMyBcXCkiIFwKLSsgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgZmls bGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBU TyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBm aWxsZWQgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMSkiICIgPSAxMDIg J2YnIiAicHJpbnQgdmFyX2NoYXIoMSkiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDMpIiAi ID0gMTExICdvJyIgInByaW50IHZhcl9jaGFyKDMpIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1maWxsZWQtMiJdCi0rZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInZhcl9jaGFyLWZpbGxlZC0yIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIg XAotKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXClcXCkgJHtoZXh9IiBc Ci0rICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1lIgotK2dkYl90 ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSAnZm9vYmFyJyIgXAotKyAgInByaW50ICp2YXJfY2hh ciBhZnRlciBhbGxvY2F0ZWQgc2Vjb25kIHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hh ciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpIiBcCi0rICAid2hhdGlz IHZhcl9jaGFyIHNlY29uZCB0aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUg PSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXIg c2Vjb25kIHRpbWUiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZh cl9jaGFyLWVtcHR5Il0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZW1w dHkiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCowIFxcKVxcKSAke2hleH0iIFwKLSsgICJwcmludCB2YXJfY2hhciBhZnRl ciBzZXQgZW1wdHkiCi0rZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhciIgIiA9IFwiXCIiICJwcmlu dCAqdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIi ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxcKSIgXAotKyAgIndoYXRpcyB2 YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlw ZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hh ciBhZnRlciBzZXQgZW1wdHkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0zIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi dmFyX2NoYXItYWxsb2NhdGVkLTMiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAi ID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXClcXCkgJHtoZXh9IiBcCi0rICAi cHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCi0rZ2RiX3Rlc3QgIndo YXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjIxIFxcKSIg XAotKyAgIndoYXRpcyB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKLStnZGJf dGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoy MSBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIK LSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXJfcC1hc3Nv Y2lhdGVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXJfcC1hc3NvY2lh dGVkIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcl9wIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKVxcKSAke2hleH0iIFwKLSsgICJwcmludCB2YXJfY2hhcl9w IGFmdGVyIGFzc29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhcl9wIiAiID0gJ2pv aG5kb2UnIiBcCi0rICAicHJpbnQgKnZhcl9jaGFyXyBhZnRlciBhc3NvY2lhdGVkIgotK2dkYl90 ZXN0ICJ3aGF0aXMgdmFyX2NoYXJfcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjcgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKLStnZGJf dGVzdCAicHR5cGUgdmFyX2NoYXJfcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjcgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlu Z3MuZjkwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtc3RyaW5ncy5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAx MDAKLUBAIC0wLDAgKzEsNDAgQEAKLSshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z ZSwgb3IKLSshIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSshIEZvdW5kYXRpb24sIElu Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV U0EuCi0rCi0rcHJvZ3JhbSB2bGFfc3RyaW5ncwotKyAgY2hhcmFjdGVyKGxlbj06KSwgdGFyZ2V0 LCBhbGxvY2F0YWJsZSAgIDo6IHZhcl9jaGFyCi0rICBjaGFyYWN0ZXIobGVuPTopLCBwb2ludGVy ICAgICAgICAgICAgICAgOjogdmFyX2NoYXJfcAotKyAgbG9naWNhbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDo6IGwKLSsKLSsgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MTApIDo6 IHZhcl9jaGFyKQotKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEg dmFyX2NoYXItYWxsb2NhdGVkLTEKLSsgIHZhcl9jaGFyID0gJ2ZvbycKLSsgIGRlYWxsb2NhdGUo dmFyX2NoYXIpICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0xCi0rICBsID0g YWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1kZWFsbG9jYXRl ZAotKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj00MikgOjogdmFyX2NoYXIpCi0rICBsID0gYWxs b2NhdGVkKHZhcl9jaGFyKQotKyAgdmFyX2NoYXIgPSAnZm9vYmFyJwotKyAgdmFyX2NoYXIgPSAn JyAgICAgICAgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZmlsbGVkLTIKLSsgIHZhcl9j aGFyID0gJ2JhcicgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWVtcHR5Ci0rICBk ZWFsbG9jYXRlKHZhcl9jaGFyKQotKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj0yMSkgOjogdmFy X2NoYXIpCi0rICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJf Y2hhci1hbGxvY2F0ZWQtMwotKyAgdmFyX2NoYXIgPSAnam9obmRvZScKLSsgIHZhcl9jaGFyX3Ag PT4gdmFyX2NoYXIKLSsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAh IHZhcl9jaGFyX3AtYXNzb2NpYXRlZAotKyAgdmFyX2NoYXJfcCA9PiBudWxsKCkKLSsgIGwgPSBh c3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29j aWF0ZWQKLStlbmQgcHJvZ3JhbSB2bGFfc3RyaW5ncwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90eXBlcHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDg2NTgyNDc2ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3R5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6 MTU6NDQuOTg0NjM3Njg2ICswMTAwCi1AQCAtNDYwLDYgKzQ2MCwxMyBAQAotIAotICAgdHlwZSA9 IHZhbHVlX3R5cGUgKHZhbCk7Ci0gCi0rICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NP REVfUFRSKQotKyAgICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSkpCi0rICAgICAgewotKwl2YWwgPSB2YWx1ZV9hZGRyICh2YWx1ZV9pbmQgKHZhbCkpOwotKwl0 eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsgICAgICB9Ci0rCi0gICBnZXRfdXNlcl9wcmludF9v cHRpb25zICgmb3B0cyk7Ci0gICBpZiAob3B0cy5vYmplY3RwcmludCkKLSAgICAgewotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxhcml0aC5jCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE2LTAxLTA4IDE5OjE1OjM1 LjA4NzU4MjQ4MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxhcml0aC5j CTIwMTYtMDEtMDggMTk6MTU6NDQuOTg1NjM3NjkxICswMTAwCi1AQCAtMTkzLDkgKzE5MywyMSBA QAotICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBl IChhcnJheSkpOwotICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQ RV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotICAgdW5zaWduZWQgaW50IGVsdF9zaXplID0g dHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfb2ZmcyA9 IGVsdF9zaXplICogbG9uZ2VzdF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rICB1bnNp Z25lZCBpbnQgZWx0X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsK LSsgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQ RSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0IHZhbHVlICp2OwotIAotKyAgaWYgKGVsdF9zdHJp ZGUgPiAwKQotKyAgICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRlOwotKyAgZWxzZSBpZiAoZWx0X3N0 cmlkZSA8IDApCi0rICAgIHsKLSsgICAgICBpbnQgb2ZmcyA9IChlbHRfb2ZmcyArIDEpICogZWx0 X3N0cmlkZTsKLSsKLSsgICAgICBlbHRfb2ZmcyA9IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSAr IG9mZnM7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgZWx0X29mZnMgKj0gZWx0X3NpemU7Ci0rCi0g ICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kIHx8ICghVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19V TkRFRklORUQgKGFycmF5X3R5cGUpCi0gCQkJICAgICAmJiBlbHRfb2ZmcyA+PSB0eXBlX2xlbmd0 aF91bml0cyAoYXJyYXlfdHlwZSkpKQotICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3ZhbHByaW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5v cmlnL2dkYi92YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDg4NTgyNDg3ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHByaW50LmMJMjAxNi0wMS0wOCAxOToxNTo0 NC45ODY2Mzc2OTcgKzAxMDAKLUBAIC0zMTYsNiArMzE2LDE4IEBACi0gICAgICAgcmV0dXJuIDA7 Ci0gICAgIH0KLSAKLSsgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsgICAgewot KyAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm4g MDsKLSsgICAgfQotKwotKyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlwZSkpCi0rICAgIHsK LSsgICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm4g MDsKLSsgICAgfQotKwotICAgaWYgKFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX1VOSU9O Ci0gICAgICAgJiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfU1RSVUNUCi0gICAgICAg JiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpCi1AQCAtMTAyNSwxMiArMTAz NywxNiBAQAotIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sCi0gCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCi0gewotKyAgY29uc3Qgc3RydWN0IHR5cGUgKnR5cGU7Ci0rCi0gICBp ZiAodmFsID09IDApCi0gICAgIHsKLSAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8o IjxhZGRyZXNzIG9mIHZhbHVlIHVua25vd24+IikpOwotICAgICAgIHJldHVybiAwOwotICAgICB9 Ci0gCi0rICB0eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsKLSAgIGlmICh2YWx1ZV9lbnRpcmVs eV9vcHRpbWl6ZWRfb3V0ICh2YWwpKQotICAgICB7Ci0gICAgICAgaWYgKG9wdGlvbnMtPnN1bW1h cnkgJiYgIXZhbF9wcmludF9zY2FsYXJfdHlwZV9wICh2YWx1ZV90eXBlICh2YWwpKSkKLUBAIC0x MDY2LDYgKzEwODIsMTggQEAKLSAgICAgewotICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVk IChzdHJlYW0pOwotICAgICAgIHJldHVybiAwOwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9OT1Rf QVNTT0NJQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0 ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSsgIGlmIChUWVBFX05P VF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICB7Ci0rICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0 ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLSAgIHJldHVybiAxOwot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5oCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE2LTAxLTA4IDE5 OjE1OjM1LjA4ODU4MjQ4NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxw cmludC5oCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg2NjM3Njk3ICswMTAwCi1AQCAtMjMyLDQgKzIz Miw4IEBACi0gCQkJCQlzdHJ1Y3QgZm9ybWF0X2RhdGEgKmZtdHApOwotIGV4dGVybiB2b2lkIHBy aW50X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3RydWN0IGZvcm1hdF9kYXRhICpm bXRwKTsKLSAKLStleHRlcm4gdm9pZCB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSk7Ci0rCi0rZXh0ZXJuIHZvaWQgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVk IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKLSsKLSAjZW5kaWYKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvdmFsdWUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNi0wMS0wOCAxOToxNTozNS4wOTA1ODI0OTkgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsdWUuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0 Ljk4NzYzNzcwMiArMDEwMAotQEAgLTQwLDYgKzQwLDcgQEAKLSAjaW5jbHVkZSAidHJhY2Vwb2lu dC5oIgotICNpbmNsdWRlICJjcC1hYmkuaCIKLSAjaW5jbHVkZSAidXNlci1yZWdzLmgiCi0rI2lu Y2x1ZGUgImR3YXJmMmxvYy5oIgotIAotIC8qIFByb3RvdHlwZXMgZm9yIGV4cG9ydGVkIGZ1bmN0 aW9ucy4gICovCi0gCi1AQCAtMTc4OCw2ICsxNzg5LDI1IEBACi0gICAgICAgaWYgKGZ1bmNzLT5j b3B5X2Nsb3N1cmUpCi0gICAgICAgICBjb21wb25lbnQtPmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1 cmUgPSBmdW5jcy0+Y29weV9jbG9zdXJlICh3aG9sZSk7Ci0gICAgIH0KLSsKLSsgIC8qIEZvciBk eW5hbWljIHR5cGVzIGNvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhlIGNvbXBvbmVudCB2YWx1ZSBs b2NhdGlvbiBpbgotKyAgICAgc3ViIHJhbmdlIHR5cGVzIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBv ZiB0aGUgc3ViIHJhbmdlIHR5cGUsIGlmIG5vdCBiZWluZwotKyAgICAgYW4gaW50ZXJuYWwgR0RC IHZhcmlhYmxlIG9yIHBhcnRzIG9mIGl0LiAgKi8KLSsgIGlmIChWQUxVRV9MVkFMIChjb21wb25l bnQpICE9IGx2YWxfaW50ZXJuYWx2YXIKLSsgICAgICAmJiBWQUxVRV9MVkFMIChjb21wb25lbnQp ICE9IGx2YWxfaW50ZXJuYWx2YXJfY29tcG9uZW50KQotKyAgICB7Ci0rICAgICAgQ09SRV9BRERS IGFkZHI7Ci0rICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlICh3aG9sZSk7Ci0r Ci0rICAgICAgYWRkciA9IHZhbHVlX3Jhd19hZGRyZXNzIChjb21wb25lbnQpOwotKwotKyAgICAg IGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICAgICYmIFRZUEVfREFUQV9M T0NBVElPTl9LSU5EICh0eXBlKSA9PSBQUk9QX0NPTlNUKQotKyAgICAgICAgewotKyAgICAgICAg ICBhZGRyID0gVFlQRV9EQVRBX0xPQ0FUSU9OX0FERFIgKHR5cGUpOwotKyAgICAgICAgICBzZXRf dmFsdWVfYWRkcmVzcyAoY29tcG9uZW50LCBhZGRyKTsKLSsgICAgICAgIH0KLSsgICAgfQotIH0K LSAKLSAMCi1AQCAtMzA5NSwxMyArMzExNSwyMiBAQAotIAl2ID0gYWxsb2NhdGVfdmFsdWVfbGF6 eSAodHlwZSk7Ci0gICAgICAgZWxzZQotIAl7Ci0tCSAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBl KTsKLS0JICB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAodiwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0 ICh2KSwKLS0JCQkJICAgYXJnMSwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSArIG9mZnNl dCwKLS0JCQkJICAgdHlwZV9sZW5ndGhfdW5pdHMgKHR5cGUpKTsKLSsJICBpZiAoVFlQRV9EQVRB X0xPQ0FUSU9OICh0eXBlKQotKwkgICAgICAmJiBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlw ZSkgPT0gUFJPUF9DT05TVCkKLSsJICAgIHYgPSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCB2YWx1ZV9h ZGRyZXNzIChhcmcxKSArIG9mZnNldCk7Ci0rCSAgZWxzZQotKwkgICAgewotKwkgICAgICB2ID0g YWxsb2NhdGVfdmFsdWUgKHR5cGUpOwotKwkgICAgICB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAo diwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKLSsJCQkJICAgICAgIGFyZzEsIHZhbHVlX2Vt YmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZzZXQsCi0rCQkJCSAgICAgICB0eXBlX2xlbmd0aF91 bml0cyAodHlwZSkpOwotKwkgICAgfQotIAl9Ci0tICAgICAgdi0+b2Zmc2V0ID0gKHZhbHVlX29m ZnNldCAoYXJnMSkgKyBvZmZzZXQKLS0JCSAgICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcx KSk7Ci0rCi0rICAgICAgaWYgKCFUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICAg IHx8ICFUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsJdi0+ b2Zmc2V0ID0gKHZhbHVlX29mZnNldCAoYXJnMSkgKyBvZmZzZXQKLSsJCSAgICAgKyB2YWx1ZV9l bWJlZGRlZF9vZmZzZXQgKGFyZzEpKTsKLSAgICAgfQotICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9s b2NhdGlvbiAodiwgYXJnMSk7Ci0gICBWQUxVRV9SRUdOVU0gKHYpID0gVkFMVUVfUkVHTlVNIChh cmcxKTsKLUBAIC0zNjg5LDcgKzM3MTgsOCBAQAotIAkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3Jp Z2luYWxfdmFsdWUpCi0gewotICAgLyogUmUtYWRqdXN0IHR5cGUuICAqLwotLSAgZGVwcmVjYXRl ZF9zZXRfdmFsdWVfdHlwZSAodmFsdWUsIFRZUEVfVEFSR0VUX1RZUEUgKG9yaWdpbmFsX3R5cGUp KTsKLSsgIGlmICghaXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFIChvcmlnaW5hbF90 eXBlKSkpCi0rICAgIGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKHZhbHVlLCBUWVBFX1RBUkdF VF9UWVBFIChvcmlnaW5hbF90eXBlKSk7Ci0gCi0gICAvKiBBZGQgZW1iZWRkaW5nIGluZm8uICAq LwotICAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBlICh2YWx1ZSwgZW5jX3R5cGUpOwotQEAgLTM3 MDYsNiArMzczNiwxMiBAQAotICAgc3RydWN0IHZhbHVlICpyZXR2YWw7Ci0gICBzdHJ1Y3QgdHlw ZSAqZW5jX3R5cGU7Ci0gCi0rICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgIT0g bGFuZ3VhZ2VfZm9ydHJhbgotKyAgICAgICYmIFRZUEVfREFUQV9MT0NBVElPTiAodmFsdWVfdHlw ZV9hcmdfdG1wKSAhPSBOVUxMCi0rICAgICAgJiYgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHZh bHVlX3R5cGVfYXJnX3RtcCkgPT0gUFJPUF9DT05TVCkKLSsgICAgYXJnID0gdmFsdWVfYXRfbGF6 eSAodmFsdWVfdHlwZV9hcmdfdG1wLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0RB VEFfTE9DQVRJT05fQUREUiAodmFsdWVfdHlwZV9hcmdfdG1wKSk7Ci0rCi0gICByZXR2YWwgPSBj b2VyY2VfcmVmX2lmX2NvbXB1dGVkIChhcmcpOwotICAgaWYgKHJldHZhbCkKLSAgICAgcmV0dXJu IHJldHZhbDsKLUBAIC0zODM0LDggKzM4NzAsMTQgQEAKLSAgICAgfQotICAgZWxzZSBpZiAoVkFM VUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKLSAgICAgewotLSAgICAgIENPUkVfQUREUiBh ZGRyID0gdmFsdWVfYWRkcmVzcyAodmFsKTsKLSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKTsKLSsgICAgICBDT1JFX0FE RFIgYWRkcjsKLSsKLSsgICAgICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKSAhPSBOVUxM Ci0rCSAgJiYgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0r CWFkZHIgPSBUWVBFX0RBVEFfTE9DQVRJT05fQUREUiAodHlwZSk7Ci0rICAgICAgZWxzZQotKwlh ZGRyID0gdmFsdWVfYWRkcmVzcyAodmFsKTsKLSAKLSAgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5 cGUpKQotIAlyZWFkX3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9jLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAxLTA4IDE5 OjE1OjM1LjA5MTU4MjUwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2Fy ZjJsb2MuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4ODYzNzcwOCArMDEwMAotQEAgLTIzNjgsNiAr MjM2OCwxMSBAQAotIAkgICAgYWRkcmVzcyA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbHVlX2Zyb21f cG9pbnRlciAocHRyX3R5cGUsIGFkZHJlc3MpKTsKLSAKLSAJICAgIGRvX2NsZWFudXBzICh2YWx1 ZV9jaGFpbik7Ci0rCi0rCSAgICAvKiBTZWxlY3QgcmlnaHQgZnJhbWUgdG8gY29ycmVjdGx5IGV2 YWx1YXRlIFZMQSdzIGR1cmluZyBhIGJhY2t0cmFjZS4gICovCi0rCSAgICBpZiAoaXNfZHluYW1p Y190eXBlICh0eXBlKSkKLSsJICAgICAgc2VsZWN0X2ZyYW1lIChmcmFtZSk7Ci0rCi0gCSAgICBy ZXR2YWwgPSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOwotIAkg ICAgaWYgKGluX3N0YWNrX21lbW9yeSkKLSAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWws IDEpOwotQEAgLTI2NjAsNiArMjY2NSwxOSBAQAotIAkJCSAgICAgZGF0YSwgZGF0YSArIHNpemUs IHBlcl9jdSk7Ci0gfQotIAotKy8qIFNlZSBkd2FyZjJsb2MuaC4gICovCi0rCi0raW50Ci0rZHdh cmYyX2FkZHJlc3NfZGF0YV92YWxpZCAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0rewotKyAg aWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlm IChUWVBFX05PVF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVy biAxOwotK30KLSAMCi0gLyogSGVscGVyIGZ1bmN0aW9ucyBhbmQgYmF0b24gZm9yIGR3YXJmMl9s b2NfZGVzY19uZWVkc19mcmFtZS4gICovCi0gCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIu c3BlYwppbmRleCAzZjY4ZTUxLi4xNTUwNmJmIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9n ZGIuc3BlYwpAQCAtMTksMTUgKzE5LDE1IEBAIFN1bW1hcnk6IEEgR05VIHNvdXJjZS1sZXZlbCBk ZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFuLCBHbyBhbmQgb3RoZXIgbGFuZ3VhZ2VzCiBOYW1l OiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVk Ci0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNjAyMTAKKyVnbG9iYWwgc25hcHNyYyAgICAyMDE2MDgw MQogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVkIGludG8gZ2RiL2du dWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTUwODIyCiAlZ2xvYmFsIHRhcm5hbWUgZ2Ri LSV7dmVyc2lvbn0KLVZlcnNpb246IDcuMTEuMQorVmVyc2lvbjogNy4xMS45MC4yMDE2MDgwNwog CiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVy LCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRv IHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4K LVJlbGVhc2U6IDc3JXs/ZGlzdH0KK1JlbGVhc2U6IDUlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2 MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGgg ZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWlu IGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0yNzUsNiArMjc1LDgg QEAgUGF0Y2gyNzE6IGdkYi02LjUtYnoyNDM4NDUtc3RhbGUtdGVzdGluZy16b21iaWUtdGVzdC5w YXRjaAogIz1wdXNoCiBQYXRjaDI3NDogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAogIyBG aXggbG9hZGluZyBvZiBjb3JlIGZpbGVzIHdpdGhvdXQgYnVpbGQtaWRzIGJ1dCB3aXRoIGJ1aWxk LWlkcyBpbiBleGVjdXRhYmxlcy4KKyMgTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNv cmUgZmlsZXMgb25seSBpZiBubyBleGVjdXRhYmxlIGlzIHNwZWNpZmllZAorIyAoSmFuIEtyYXRv Y2h2aWwsIFJIIEJaIDEzMzk4NjIpLgogIz1wdXNoCiBQYXRjaDY1OTogZ2RiLTYuNi1idWlsZGlk LWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaAogIz1wdXNoCkBAIC01MTksMTIgKzUyMSwx NiBAQCBQYXRjaDEwNjA6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCiBQYXRj aDEwNjE6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBhdGNoCiBQYXRjaDEwNjI6IGdk Yi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCiBQYXRjaDEwNjM6IGdkYi1mb3J0cmFu LXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCi1QYXRjaDg4ODogZ2RiLXZsYS1pbnRlbC5wYXRjaAot UGF0Y2g5ODM6IGdkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0Y2gKK1BhdGNoMTEzMjogZ2Ri LXZsYS1pbnRlbC0xb2Y3LnBhdGNoCitQYXRjaDExMzM6IGdkYi12bGEtaW50ZWwtMm9mNy5wYXRj aAorUGF0Y2gxMTM0OiBnZGItdmxhLWludGVsLTNvZjcucGF0Y2gKK1BhdGNoMTEzNTogZ2RiLXZs YS1pbnRlbC00b2Y3LnBhdGNoCitQYXRjaDExMzY6IGdkYi12bGEtaW50ZWwtNW9mNy5wYXRjaAor UGF0Y2gxMTM3OiBnZGItdmxhLWludGVsLTZvZjcucGF0Y2gKK1BhdGNoMTEzODogZ2RiLXZsYS1p bnRlbC03b2Y3LnBhdGNoCiBQYXRjaDg4OTogZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0 Y2gKLVBhdGNoOTEyOiBnZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKIFBhdGNoODg3OiBn ZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAotUGF0Y2gxMDY5OiBnZGItZm9ydHJhbi1zdHJpZGUt aW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCitQYXRjaDg4ODogZ2RiLXZsYS1pbnRlbC10ZXN0cy5w YXRjaAogCiAjIENvbnRpbnVlIGJhY2t0cmFjZSBldmVuIGlmIGEgZnJhbWUgZmlsdGVyIHRocm93 cyBhbiBleGNlcHRpb24gKFBoaWwgTXVsZG9vbikuCiBQYXRjaDkxODogZ2RiLWJ0cm9idXN0LnBh dGNoCkBAIC01NzAsMTQgKzU3Niw2IEBAIFBhdGNoMTEyMDogZ2RiLXRlc3RzdWl0ZS1kdzItdW5k ZWZpbmVkLXJldC1hZGRyLnBhdGNoCiAjIE5ldyB0ZXN0IGZvciBQeXRob24gIkNhbm5vdCBsb2Nh dGUgb2JqZWN0IGZpbGUgZm9yIGJsb2NrIiAoZm9yIFJIIEJaIDEzMjU3OTUpLgogUGF0Y2gxMTIz OiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0ZXJzLXRlc3QucGF0Y2gKIAotIyBJbXBvcnQgYmFy ZSBEV19UQUdfbGV4aWNhbF9ibG9jayAoUkggQlogMTMyNTM5NikuCi1QYXRjaDExMjg6IGdkYi1i YXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKLVBhdGNoMTEyOTogZ2RiLWJhcmUt RFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaAotCi0jIFthYXJjaDY0XSBGaXggQVJNdjgu MS92OC4yIGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVha3BvaW50Ci0jIChBbmRyZXcgUGluc2tp LCBSSCBCWiAxMzYzNjM1KS4KLVBhdGNoMTE0MTogZ2RiLXJoYnoxMzYzNjM1LWFhcmNoNjQtYXJt djgxODIucGF0Y2gKLQogJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA2CiAjIFJMX1NU QVRFX0ZFRE9SQV9HREIgd291bGQgbm90IGJlIGZvdW5kIGZvcjoKICMgUGF0Y2g2NDI6IGdkYi1y ZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC03NzUsMTAgKzc3MywxNCBAQCBmaW5kIC1u YW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoMTA2MSAtcDEKICVwYXRjaDEwNjIgLXAx CiAlcGF0Y2gxMDYzIC1wMQotJXBhdGNoODg4IC1wMQotJXBhdGNoOTgzIC1wMQorJXBhdGNoMTEz MiAtcDEKKyVwYXRjaDExMzMgLXAxCislcGF0Y2gxMTM0IC1wMQorJXBhdGNoMTEzNSAtcDEKKyVw YXRjaDExMzYgLXAxCislcGF0Y2gxMTM3IC1wMQorJXBhdGNoMTEzOCAtcDEKICVwYXRjaDg4OSAt cDEKLSVwYXRjaDkxMiAtcDEKICVwYXRjaDEgLXAxCiAKICVwYXRjaDEwNSAtcDEKQEAgLTg3Miw3 ICs4NzQsNyBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoODUyIC1w MQogJXBhdGNoODYzIC1wMQogJXBhdGNoODg3IC1wMQotJXBhdGNoMTA2OSAtcDEKKyVwYXRjaDg4 OCAtcDEKICVwYXRjaDkxOCAtcDEKICVwYXRjaDkyNSAtcDEKICVwYXRjaDkyNyAtcDEKQEAgLTg4 Miw2ICs4ODQsMTYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDEw NTYgLXAxCiAlcGF0Y2gxMDczIC1wMQogJXBhdGNoODQ4IC1wMQorJWlmIDAleyE/ZWw2OjF9Citm b3IgaSBpbiBcCisgIGdkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkgXAorICBnZGIv cHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5IFwKKyAgZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1h bmQvYmFja3RyYWNlLnB5IFwKKyAgO2RvCisgIHRlc3QgLWUgJGkKKyAgOiA+JGkKK2RvbmUKKyVl bmRpZgogJXBhdGNoODMzIC1wMQogJXBhdGNoNjQyIC1wMQogJXBhdGNoMzM3IC1wMQpAQCAtODkw LDkgKzkwMiw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2gxMTE4 IC1wMQogJXBhdGNoMTEyMCAtcDEKICVwYXRjaDExMjMgLXAxCi0lcGF0Y2gxMTI4IC1wMQotJXBh dGNoMTEyOSAtcDEKLSVwYXRjaDExNDEgLXAxCiAKICVwYXRjaDEwNzUgLXAxCiAlaWYgMCV7P3Jo ZWw6MX0gJiYgMCV7P3JoZWx9IDw9IDcKQEAgLTk3MCw2ICs5NzksOCBAQCBDRkxBR1M9IiRDRkxB R1MgLURORUVEX1JMX1NUQVRFX0ZFRE9SQV9HREIiCiBDRkxBR1M9IiRDRkxBR1MgLURORUVEX0RF VEFDSF9TSUdTVE9QIgogJWVuZGlmCiAKK2V4cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKwogIyAt LWh0bWxkaXIgYW5kIC0tcGRmZGlyIGFyZSBub3QgdXNlZCBhcyB0aGV5IGFyZSB1c2VkIGZyb20g JXtnZGJfYnVpbGR9LgogLi4vY29uZmlndXJlCQkJCQkJCVwKIAktLXByZWZpeD0le19wcmVmaXh9 CQkJCQlcCkBAIC05ODAsNiArOTkxLDcgQEAgQ0ZMQUdTPSIkQ0ZMQUdTIC1ETkVFRF9ERVRBQ0hf U0lHU1RPUCIKIAktLXdpdGgtc3lzdGVtLWdkYmluaXQ9JXtfc3lzY29uZmRpcn0vZ2RiaW5pdAkJ XAogCS0td2l0aC1nZGItZGF0YWRpcj0le19kYXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFibGUtZ2Ri LWJ1aWxkLXdhcm5pbmdzPSwtV25vLXVudXNlZAkJXAorCS0tZW5hYmxlLWJ1aWxkLXdpdGgtY3h4 CQkJCQlcCiAlaWZuYXJjaCAle2l4ODZ9IGFscGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2 NCBwcGM2NGxlIHNwYXJjIHNwYXJjdjkgc3BhcmM2NCAle2FybX0gYWFyY2g2NAogCS0tZGlzYWJs ZS13ZXJyb3IJCQkJCVwKICVlbHNlCkBAIC0xNDEyLDkgKzE0MjQsMjEgQEAgdGhlbgogZmkKIAog JWNoYW5nZWxvZwotKiBXZWQgQXVnICAzIDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+IC0gNy4xMS4xLTc3LmZjMjQKLS0gW2FhcmNoNjRdIEZpeCBBUk12OC4x L3Y4LjIgZm9yIGh3IHdhdGNocG9pbnQgYW5kIGJyZWFrcG9pbnQKLSAgKEFuZHJldyBQaW5za2ks IFJIIEJaIDEzNjM2MzUpLgorKiBTdW4gQXVnICA3IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS45MC4yMDE2MDgwNy01LmZjMjUKKy0gUmViYXNl IHRvIEZTRiBHREIgNy4xMS45MC4yMDE2MDgwNyAocHJlLTcuMTIgYnJhbmNoIHNuYXBzaG90KS4K KworKiBTdW4gSnVsIDMxIDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+IC0gNy4xMS41MC4yMDE2MDcyMS00LmZjMjUKKy0gVGVzdGNhc2UgZm9yOiBMb2FkIHN0 cmljdGx5IGJ1aWxkLWlkLWNoZWNrZWQgY29yZSBmaWxlcyBvbmx5IGlmIG5vIGV4ZWN1dGFibGUK KyAgaXMgc3BlY2lmaWVkIChKYW4gS3JhdG9jaHZpbCwgUkggQlogMTMzOTg2MikuCisKKyogVGh1 IEp1bCAyOCAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAt IDcuMTEuNTAuMjAxNjA3MjEtMy5mYzI1CistIERvIG5vdCBhcHBseSBSSEVMLTYgcGF0Y2hlcyBv biBub24tUkhFTC02IGV2ZW4gZm9yIHRlc3RzdWl0ZS4KKworKiBUaHUgSnVsIDIxIDIwMTYgSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS41MC4yMDE2MDcy MS0yLmZjMjUKKy0gUmViYXNlIHRvIEZTRiBHREIgNy4xMS41MC4yMDE2MDcyMSAocHJlLTcuMTIg dHJ1bmsgc25hcHNob3QpLgorCisqIFN1biBKdWwgMTcgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjUwLjIwMTYwNzE2LTEuZmMyNQorLSBSZWJh c2UgdG8gRlNGIEdEQiA3LjExLjUwLjIwMTYwNzE2IChwcmUtNy4xMiB0cnVuayBzbmFwc2hvdCku CiAKICogTW9uIEp1biAyNyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDcuMTEuMS03Ni5mYzI0CiAtIFRlc3QgJ2luZm8gdHlwZS1wcmludGVycycgUHl0 aG9uIGVycm9yIChSSCBCWiAxMzUwNDM2KS4KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNl cwppbmRleCAyNjQ3OGViLi5iMzBkYzdjIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJj ZXMKQEAgLTEsMiArMSwyIEBACiA3YWQzMmQzODk0YWFmOTBkMDBhNDM0M2E3MzVjM2UxYyAgZ2Ri LWxpYnN0ZGMrKy12My1weXRob24tcjIyNTUyMS50YXIueHoKLTVhYTcxNTIyZTQ4OGUzNTgyNDM5 MTc5NjdkYjg3NDc2ICBnZGItNy4xMS4xLnRhci54egorMmU1MmRkOGI2M2ViMGE0NTlmZWJiZWUw MTIyMWZiMTAgIGdkYi03LjExLjkwLjIwMTYwODA3LnRhci54ego=