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: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/opensips] f43: OpenSIPS ver. 3.6.8 Date: Wed, 19 Aug 2026 17:39:01 GMT Message-ID: <178716114114.1.14227488554179368310.rpms-opensips-3d31f43fb127@fedoraproject.org> List-ID: X-Git-Repo: rpms/opensips X-Git-Branch: f43 X-Git-Rev: 3d31f43fb127240a26ed3ba1dcda763082067033 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnNpcHMKICAgICAgICAgICAgQnJhbmNoIDogZjQzCiAgICAgICAgICAg IENvbW1pdCA6IDNkMzFmNDNmYjEyNzI0MGEyNmVkM2JhMWRjZGE3NjMwODIwNjcwMzMKICAgICAg ICAgICAgQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAyNi0wOC0xOVQxOTozNjo0NyswMjowMAogICAgICAgICAgICBTdGF0 cyAgOiArNjQ5Ly0xNTc1IGluIDEyIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9vcGVuc2lwcy9jLzNkMzFmNDNmYjEyNzI0MGEy NmVkM2JhMWRjZGE3NjMwODIwNjcwMzM/YnJhbmNoPWY0MwoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBPcGVuU0lQUyB2ZXIuIDMuNi44CgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgoKLS0tCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDAxLUNv bnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2ggYi9vcGVuc2lwcy0wMDAxLUNv bnNpc3RlbnRseS11c2UtcnRwcHJveHktc3dpdGNoZXMucGF0Y2gKaW5kZXggNmJjNmVjOC4uNTZk ZGY0ZiAxMDA2NDQKLS0tIGEvb3BlbnNpcHMtMDAwMS1Db25zaXN0ZW50bHktdXNlLXJ0cHByb3h5 LXN3aXRjaGVzLnBhdGNoCisrKyBiL29wZW5zaXBzLTAwMDEtQ29uc2lzdGVudGx5LXVzZS1ydHBw cm94eS1zd2l0Y2hlcy5wYXRjaApAQCAtNSwxOSArNSwxOSBAQCBTdWJqZWN0OiBbUEFUQ0hdIENv bnNpc3RlbnRseSB1c2UgcnRwcHJveHkgc3dpdGNoZXMKIAogU2lnbmVkLW9mZi1ieTogUGV0ZXIg TGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KIAotZGlmZiAtLWdpdCBhL21vZHVsZXMvcnRw cHJveHkvZG9jL3J0cHByb3h5X2FkbWluLnhtbCBiL21vZHVsZXMvcnRwcHJveHkvZG9jL3J0cHBy b3h5X2FkbWluLnhtbAotaW5kZXggMmFlNGM5YjJiMC4uYzE3Yjc3ZDA1ZiAxMDA2NDQKLS0tLSBh L21vZHVsZXMvcnRwcHJveHkvZG9jL3J0cHByb3h5X2FkbWluLnhtbAotKysrIGIvbW9kdWxlcy9y dHBwcm94eS9kb2MvcnRwcHJveHlfYWRtaW4ueG1sCi1AQCAtNjM3LDcgKzYzNyw3IEBAIG1vZHBh cmFtKCJydHBwcm94eSIsICJnZW5lcmF0ZWRfc2RwX21lZGlhX2lwIiwgIjEwLjAuMC4xIikKLSAJ CQkJY29ubmVjdGlvbiBpbmZvcm1hdGlvbi4KLSAJCQkJPC9wYXJhPjwvbGlzdGl0ZW0+Ci0gCQkJ CTxsaXN0aXRlbT48cGFyYT4KLS0JCQkJPGVtcGhhc2lzPnMvdzwvZW1waGFzaXM+IC0gZmxhZ3Mg dGhhdCBmb3IgdGhlIFVBIGZyb20gd2hpY2ggCi0rCQkJCTxlbXBoYXNpcz5zPC9lbXBoYXNpcz4g LSBmbGFncyB0aGF0IGZvciB0aGUgVUEgZnJvbSB3aGljaCAKLSAJCQkJbWVzc2FnZSBpcyByZWNl aXZlZCwgc3VwcG9ydCBzeW1tZXRyaWMgUlRQIG11c3QgYmUgZm9yY2VkLgotIAkJCQk8L3BhcmE+ PC9saXN0aXRlbT4KLSAJCQkJPGxpc3RpdGVtPjxwYXJhPgorZGlmZiAtLWdpdCBhL21vZHVsZXMv cnRwcHJveHkvUkVBRE1FLm1kIGIvbW9kdWxlcy9ydHBwcm94eS9SRUFETUUubWQKK2luZGV4IGVl M2JhM2JhODUuLmEwNzVmNjMwN2MgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3J0cHByb3h5L1JFQURN RS5tZAorKysrIGIvbW9kdWxlcy9ydHBwcm94eS9SRUFETUUubWQKK0BAIC01MTIsNyArNTEyLDcg QEAgZGVzY3JpcHRpb24gKG89KSBzaG91bGQgYmUgYWxzbyBjaGFuZ2VkLgorICAgLSAqYyogLSBm bGFncyB0byBjaGFuZ2UgdGhlIHNlc3Npb24tbGV2ZWwgCisgU0RQIGNvbm5lY3Rpb24gKGM9KSBJ UCBpZiBtZWRpYS1kZXNjcmlwdGlvbiBhbHNvIGluY2x1ZGVzIAorIGNvbm5lY3Rpb24gaW5mb3Jt YXRpb24uCistICAtICpzL3cqIC0gZmxhZ3MgdGhhdCBmb3IgdGhlIFVBIGZyb20gd2hpY2ggCisr ICAtICpzKiAtIGZsYWdzIHRoYXQgZm9yIHRoZSBVQSBmcm9tIHdoaWNoIAorIG1lc3NhZ2UgaXMg cmVjZWl2ZWQsIHN1cHBvcnQgc3ltbWV0cmljIFJUUCBtdXN0IGJlIGZvcmNlZC4KKyAgIC0gKm5b PFNPQ0tFVD5dKiAtIGZsYWdzIHRoYXQgZW5hYmxlcworIHRoZSBub3RpZmljYXRpb24gdGltZW91 dCBmb3IgdGhlIHNlc3Npb24uIE9uZSBjYW4gc3BlY2lmeSBhbgogZGlmZiAtLWdpdCBhL21vZHVs ZXMvcnRwcHJveHkvcnRwcHJveHkuYyBiL21vZHVsZXMvcnRwcHJveHkvcnRwcHJveHkuYwogaW5k ZXggZDZlNjY1ZTM4Yy4uNjJiYzA5OGZlYSAxMDA2NDQKIC0tLSBhL21vZHVsZXMvcnRwcHJveHkv cnRwcHJveHkuYwoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMDUtRml4LXJhYmJpdG1xLWMtZGVw cmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2ggYi9vcGVuc2lwcy0wMDA1LUZpeC1yYWJiaXRt cS1jLWRlcHJlY2F0ZWQtaGVhZGVyLXdhcm5pbmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBiN2JmNDkwLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMDUtRml4LXJhYmJp dG1xLWMtZGVwcmVjYXRlZC1oZWFkZXItd2FybmluZ3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw0NzAgKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVu a292QGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMjYgT2N0IDIwMjUgMTU6Mjk6MDQgKzAxMDAKLVN1 YmplY3Q6IFtQQVRDSF0gRml4IHJhYmJpdG1xLWMgZGVwcmVjYXRlZCBoZWFkZXIgd2FybmluZ3MK LU1JTUUtVmVyc2lvbjogMS4wCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTgKLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKLQotRHVyaW5nIGNvbXBpbGF0aW9u IG9mIGV2ZW50X3JhYmJpdG1xIG1vZHVsZSwgc2V2ZXJhbCB3YXJuaW5ncyBhcHBlYXI6Ci0KLWBg YAotQ29tcGlsaW5nIHJhYmJpdG1xX2NvbnN1bWVyLmMKLWdjYyAtZlBJQyAtRFBJQyAtTzIgLWZs dG89YXV0byAtZmZhdC1sdG8tb2JqZWN0cyAtZmV4Y2VwdGlvbnMgLWcgLWdyZWNvcmQtZ2NjLXN3 aXRjaGVzIC1waXBlIC1XYWxsIC1Xbm8tY29tcGxhaW4td3JvbmctbGFuZyAtV2Vycm9yPWZvcm1h dC1zZWN1cml0eSAtV3AsLVVfRk9SVElGWV9TT1VSQ0UsLURfRk9SVElGWV9TT1VSQ0U9MyAtV3As LURfR0xJQkNYWF9BU1NFUlRJT05TIC1zcGVjcz0vdXNyL2xpYi9ycG0vcmVkaGF0L3JlZGhhdC1o YXJkZW5lZC1jYzEgLWZzdGFjay1wcm90ZWN0b3Itc3Ryb25nIC1zcGVjcz0vdXNyL2xpYi9ycG0v cmVkaGF0L3JlZGhhdC1hbm5vYmluLWNjMSAtbTY0IC1tYXJjaD14ODYtNjQgLW10dW5lPWdlbmVy aWMgLWZhc3luY2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24g LWZjZi1wcm90ZWN0aW9uIC1tdGxzLWRpYWxlY3Q9Z251MiAtZm5vLW9taXQtZnJhbWUtcG9pbnRl ciAtbW5vLW9taXQtbGVhZi1mcmFtZS1wb2ludGVyIC1ETU9EX05BTUU9J3JhYmJpdG1xX2NvbnN1 bWVyJyAtRFBLR19NQUxMT0MgIC1EU0hNX01NQVAgIC1EVVNFX01DQVNUICAtRERJU0FCTEVfTkFH TEUgIC1EU1RBVElTVElDUyAgLURIQVZFX1JFU09MVl9SRVMgIC1ERl9NQUxMT0MgIC1EUV9NQUxM T0MgIC1ESFBfTUFMTE9DICAtRERCR19NQUxMT0MgIC1ERl9QQVJBTExFTF9NQUxMT0MgIC1ESEFW RV9TVERBVE9NSUMgLURIQVZFX0dFTkVSSUNTICAtRE5BTUU9JyJvcGVuc2lwcyInIC1EVkVSU0lP Tj0nIjMuNi4yIicgLURBUkNIPScieDg2XzY0IicgLURPUz0nImxpbnV4IicgLURDT01QSUxFUj0n ImdjYyAxNSInIC1EX19DUFVfeDg2XzY0IC1EX19PU19saW51eCAtRF9fU01QX3llcyAtRENGR19E SVI9JyIvZXRjL29wZW5zaXBzLyInICAtRFZFUlNJT05UWVBFPSciZ2l0IicgLURUSElTUkVWSVNJ T049JyI5OTRiY2Q2OTAiJyAtREZBU1RfTE9DSyAtREFEQVBUSVZFX1dBSVQgLURBREFQVElWRV9X QUlUX0xPT1BTPTEwMjQgLURIQVZFX0dFVEhPU1RCWU5BTUUyIC1ESEFWRV9VTklPTl9TRU1VTiAt REhBVkVfTVNHX05PU0lHTkFMIC1ESEFWRV9NU0dIRFJfTVNHX0NPTlRST0wgLURIQVZFX0FMTE9D QV9IIC1ESEFWRV9USU1FR00gLURIQVZFX0VQT0xMIC1ESEFWRV9TSUdJT19SVCAtREhBVkVfU0VM RUNUICAtYyByYWJiaXRtcV9jb25zdW1lci5jIC1vIHJhYmJpdG1xX2NvbnN1bWVyLm8KLUluIGZp bGUgaW5jbHVkZWQgZnJvbSBybXFfY29ubmVjdGlvbi5oOjI1LAotICAgICAgICAgICAgICAgICBm cm9tIHJhYmJpdG1xX2NvbnN1bWVyLmM6MjU6Ci0vdXNyL2luY2x1ZGUvYW1xcC5oOjEwOjU6IHdh cm5pbmc6ICN3YXJuaW5nICJhbXFwLmggaXMgZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvYW1x cC5oIGluc3RlYWQuIiBbLVdjcHBdCi0gICAxMCB8ICMgICB3YXJuaW5nICJhbXFwLmggaXMgZGVw cmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvYW1xcC5oIGluc3RlYWQuIgotICAgICAgfCAgICAgXn5+ fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHJtcV9jb25uZWN0aW9uLmg6MjY6Ci0vdXNyL2lu Y2x1ZGUvYW1xcF90Y3Bfc29ja2V0Lmg6MTA6NTogd2FybmluZzogI3dhcm5pbmcgImFtcXBfdGNw X3NvY2tldC5oIGlzIGRlcHJlY2F0ZWQsIHVzZSByYWJiaXRtcS1jL3RjcF9zb2NrZXQuaCBpbnN0 ZWFkLiIgWy1XY3BwXQotICAgMTAgfCAjICAgd2FybmluZyAiYW1xcF90Y3Bfc29ja2V0LmggaXMg ZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvdGNwX3NvY2tldC5oIGluc3RlYWQuIgotICAgICAg fCAgICAgXn5+fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHJtcV9jb25uZWN0aW9uLmg6Mjc6 Ci0vdXNyL2luY2x1ZGUvYW1xcF9zc2xfc29ja2V0Lmg6MTI6NTogd2FybmluZzogI3dhcm5pbmcg ImFtcXBfc3NsX3NvY2tldC5oIGlzIGRlcHJlY2F0ZWQsIHVzZSByYWJiaXRtcS1jL3NzbF9zb2Nr ZXQuaCBpbnN0ZWFkLiIgWy1XY3BwXQotICAgMTIgfCAjICAgd2FybmluZyAiYW1xcF9zc2xfc29j a2V0LmggaXMgZGVwcmVjYXRlZCwgdXNlIHJhYmJpdG1xLWMvc3NsX3NvY2tldC5oIGluc3RlYWQu IgotICAgICAgfCAgICAgXn5+fn5+fgotcmFiYml0bXFfY29uc3VtZXIuYzogSW4gZnVuY3Rpb24g 4oCYbW9kX2luaXTigJk6Ci1yYWJiaXRtcV9jb25zdW1lci5jOjk5OjE3OiB3YXJuaW5nOiDigJhh bXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ54oCZIGlzIGRlcHJlY2F0ZWQgWy1XZGVwcmVj YXRlZC1kZWNsYXJhdGlvbnNdCi0gICA5OSB8ICAgICAgICAgICAgICAgICBhbXFwX3NldF9pbml0 aWFsaXplX3NzbF9saWJyYXJ5KDApOwotICAgICAgfCAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVk ZS9hbXFwX3NzbF9zb2NrZXQuaDoxNToKLS91c3IvaW5jbHVkZS9yYWJiaXRtcS1jL3NzbF9zb2Nr ZXQuaDoyNTA6MTY6IG5vdGU6IGRlY2xhcmVkIGhlcmUKLSAgMjUwIHwgdm9pZCBBTVFQX0NBTEwg YW1xcF9zZXRfaW5pdGlhbGl6ZV9zc2xfbGlicmFyeShhbXFwX2Jvb2xlYW5fdCBkb19pbml0aWFs aXplKTsKLSAgICAgIHwgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgotYGBgCi0KLVRoZSByYWJiaXRtcS1jIGxpYnJhcnkgcmVvcmdhbml6ZWQgaGVhZGVycyBp bnRvIGEgcmFiYml0bXEtYy8KLXN1YmRpcmVjdG9yeSBpbiB2ZXJzaW9uIDAuOC4wICgyMDE3KS4g VGhlIG9sZCB0b3AtbGV2ZWwgaGVhZGVycyByZW1haW4KLWFzIGRlcHJlY2F0ZWQgd3JhcHBlcnMg dGhhdCBlbWl0IHdhcm5pbmdzLiBBZGRpdGlvbmFsbHksIHRoZSBmdW5jdGlvbgotYW1xcF9zZXRf aW5pdGlhbGl6ZV9zc2xfbGlicmFyeSgpIHdhcyBkZXByZWNhdGVkIGluIHZlcnNpb24gMC4xMy4w Ci0oMjAyMikgYXMgU1NMIGluaXRpYWxpemF0aW9uIGJlY2FtZSBhdXRvbWF0aWMuCi0KLUNoYW5n ZXMgbWFkZToKLQotMS4gUmVtb3ZlZCBvYnNvbGV0ZSB2ZXJzaW9uIGd1YXJkIGZvciByYWJiaXRt cS1jIDAuNC4wOgotICAgVGhlIGd1YXJkIGNoZWNraW5nIEFNUVBfVkVSU0lPTiA+PSAweDAwMDQw MDAwIGFuZCBkZWZpbmluZwotICAgQU1RUF9WRVJTSU9OX3YwNCB3YXMgbmVlZGVkIGZvciBhbmNp ZW50IHZlcnNpb25zICgyMDEzKS4gQWxsIGN1cnJlbnRseQotICAgc3VwcG9ydGVkIGRpc3RyaWJ1 dGlvbnMgc2hpcCByYWJiaXRtcS1jID49IDAuOS4wLCBtYWtpbmcgdGhpcyBjaGVjawotICAgdW5u ZWNlc3NhcnkuCi0KLTIuIFVwZGF0ZWQgaGVhZGVyIGluY2x1ZGVzIHRvIHVzZSByYWJiaXRtcS1j LyBzdWJkaXJlY3Rvcnk6Ci0gICAtIENoYW5nZWQ6ICNpbmNsdWRlIDxhbXFwLmg+Ci0gICAtIFRv OiAgICAgICNpbmNsdWRlIDxyYWJiaXRtcS1jL2FtcXAuaD4KLSAgIC0gQXBwbGllZCB0bzogYW1x cC5oLCBhbXFwX2ZyYW1pbmcuaCwgYW1xcF90Y3Bfc29ja2V0LmgsIGFtcXBfc3NsX3NvY2tldC5o Ci0KLTMuIEFkZGVkIHZlcnNpb24gZ3VhcmQgZm9yIGFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xp YnJhcnkoKToKLSAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggYXJndW1lbnQgMCB0byB0 ZWxsIHJhYmJpdG1xLWMgTk9UIHRvCi0gICBpbml0aWFsaXplIE9wZW5TU0wsIHNpbmNlIE9wZW5T SVBTIG1hbmFnZXMgaXRzIG93biBTU0wvVExTIHN0YWNrIGF0IGEKLSAgIGhpZ2hlciBsZXZlbC4g VGhlIGZ1bmN0aW9uIGlzIG5lZWRlZCBmb3IgcmFiYml0bXEtYyA8IDAuMTMuMCBidXQgd2FzCi0g ICBkZXByZWNhdGVkIGluIDAuMTMuMCB3aGVuIHRoZSBsaWJyYXJ5IG1hZGUgU1NMIGluaXRpYWxp emF0aW9uIGJlaGF2aW9yCi0gICBjb25maWd1cmFibGUgYnkgZGVmYXVsdC4KLQotICAgQ2hhbmdl ZDoKLSAgICAgYW1xcF9zZXRfaW5pdGlhbGl6ZV9zc2xfbGlicmFyeSgwKTsKLSAgIFRvOgotICAg ICAjaWYgQU1RUF9WRVJTSU9OIDwgQU1RUF9WRVJTSU9OX0NPREUoMCwgMTMsIDAsIDApCi0gICAg ICAgICBhbXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KDApOwotICAgICAjZW5kaWYKLQot Tm90ZTogVGhlIGV4aXN0aW5nIHZlcnNpb24gZ3VhcmQgZm9yIEFNUVBfVkVSU0lPTiA8IDAuMTAu MCAoc3NsX2xvY2spIHdhcwotcHJlc2VydmVkIGFzIGl0IGhhbmRsZXMgcmVhbCBBUEkgZGlmZmVy ZW5jZXMgYmV0d2VlbiAwLjkueCBhbmQgMC4xMC4wKwotdmVyc2lvbnMgc3RpbGwgcHJlc2VudCBp biBjdXJyZW50IGRpc3RyaWJ1dGlvbnMuCi0KLUNvbXBhdGliaWxpdHkgYW5hbHlzaXM6Ci0KLVN1 cnZleSBvZiBhY3RpdmVseSBzdXBwb3J0ZWQgZGlzdHJpYnV0aW9ucyBzaG93cyBhbGwgc2hpcCBy YWJiaXRtcS1jID49IDAuOS4wOgotCi0tIFJIRUwvUm9ja3kvQWxtYSA4Lzk6ID49IDAuOS4wCi0t IFVidW50dSAyMC4wNC8yMi4wNC8yNC4wNDogPj0gMC45LjAKLS0gRGViaWFuIDExLzEyOiA+PSAw LjkuMAotLSBGZWRvcmEgMzkvNDAvNDE6ID49IDAuMTMuMAotLSBtYWNPUyBIb21lYnJldzogMC4x NS4wCi0tIG1hY09TIE1hY1BvcnRzOiAwLjExLjAKLQotVGhlIDAuNC4wIGNvbXBhdGliaWxpdHkg Y29kZSAoZnJvbSAyMDEzKSBpcyBubyBsb25nZXIgbmVlZGVkLiBUaGUgMC4xMy4wCi1ndWFyZCBp cyBuZWNlc3NhcnkgYXMgc29tZSBMVFMgZGlzdHJpYnV0aW9ucyBzdGlsbCBzaGlwIDAuOS54LTAu MTIueC4KLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgot Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9SRUFETUUgYi9tb2R1bGVzL2V2 ZW50X3JhYmJpdG1xL1JFQURNRQotaW5kZXggOGFkMjRiZjg1Ni4uMzU5OTg1ZmMyYSAxMDA2NDQK LS0tLSBhL21vZHVsZXMvZXZlbnRfcmFiYml0bXEvUkVBRE1FCi0rKysgYi9tb2R1bGVzL2V2ZW50 X3JhYmJpdG1xL1JFQURNRQotQEAgLTEzMCw3ICsxMzAsNyBAQCBDaGFwdGVyIDEuIEFkbWluIEd1 aWRlCi0gCi0gICAgVGhlIGZvbGxvd2luZyBsaWJyYXJpZXMgb3IgYXBwbGljYXRpb25zIG11c3Qg YmUgaW5zdGFsbGVkCi0gICAgYmVmb3JlIHJ1bm5pbmcgT3BlblNJUFMgd2l0aCB0aGlzIG1vZHVs ZSBsb2FkZWQ6Ci0tICAgICAqIGxpYnJhYmJpdG1xLWRldgotKyAgICAgKiBsaWJyYWJiaXRtcS1k ZXYgdmVyLiAwLjkgb3IgaGlnaGVyCi0gCi0gMS41LiBFeHBvcnRlZCBQYXJhbWV0ZXJzCi0gCi1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRt aW4ueG1sIGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRtaW4u eG1sCi1pbmRleCA0Mzg5Njc1NDE3Li42ZDQ2MTljZTUxIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9l dmVudF9yYWJiaXRtcS9kb2MvZXZlbnRfcmFiYml0bXFfYWRtaW4ueG1sCi0rKysgYi9tb2R1bGVz L2V2ZW50X3JhYmJpdG1xL2RvYy9ldmVudF9yYWJiaXRtcV9hZG1pbi54bWwKLUBAIC0xMzEsNyAr MTMxLDcgQEAKLSAJCQk8aXRlbWl6ZWRsaXN0PgotIAkJCTxsaXN0aXRlbT4KLSAJCQk8cGFyYT4K LS0JCQkJPGVtcGhhc2lzPmxpYnJhYmJpdG1xLWRldjwvZW1waGFzaXM+Ci0rCQkJCTxlbXBoYXNp cz5saWJyYWJiaXRtcS1kZXYgdmVyLiAwLjkgb3IgaGlnaGVyPC9lbXBoYXNpcz4KLSAJCQk8L3Bh cmE+Ci0gCQkJPC9saXN0aXRlbT4KLSAJCQk8L2l0ZW1pemVkbGlzdD4KLWRpZmYgLS1naXQgYS9t b2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMgYi9tb2R1bGVzL2V2ZW50X3Jh YmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMKLWluZGV4IGNhYzUzOTY0ZWYuLjMwMjhiZDk2ZGUgMTAw NjQ0Ci0tLS0gYS9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL2V2ZW50X3JhYmJpdG1xLmMKLSsrKyBi L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvZXZlbnRfcmFiYml0bXEuYwotQEAgLTUwLDkgKzUwLDcg QEAgc3RhdGljIHVuc2lnbmVkIGludCBoZWFydGJlYXQgPSAwOwotIHN0YXRpYyBpbnQgcm1xX2Nv bm5lY3RfdGltZW91dCA9IFJNUV9ERUZBVUxUX0NPTk5FQ1RfVElNRU9VVDsKLSBzdGF0aWMgaW50 IHJtcV90aW1lb3V0ID0gMDsKLSBzdHJ1Y3QgdGltZXZhbCBjb25uX3RpbWVvdXRfdHY7Ci0tI2lm IGRlZmluZWQgQU1RUF9WRVJTSU9OICYmIEFNUVBfVkVSU0lPTiA+PSAweDAwMDkwMDAwCi0gc3Ry dWN0IHRpbWV2YWwgcnBjX3RpbWVvdXRfdHY7Ci0tI2VuZGlmCi0gaW50IHVzZV90bHM7Ci0gc3Ry dWN0IHRsc19tZ21fYmluZHMgdGxzX2FwaTsKLSBzdHJ1Y3Qgb3BlbnNzbF9iaW5kcyBvcGVuc3Ns X2FwaTsKLUBAIC0yMDEsMjQgKzE5OSwxNCBAQCBzdGF0aWMgaW50IG1vZF9pbml0KHZvaWQpCi0g CWNvbm5fdGltZW91dF90di50dl9zZWMgPSBybXFfY29ubmVjdF90aW1lb3V0LzEwMDA7Ci0gCWNv bm5fdGltZW91dF90di50dl91c2VjID0gKHJtcV9jb25uZWN0X3RpbWVvdXQlMTAwMCkqMTAwMDsK LSAKLS0jaWYgZGVmaW5lZCBBTVFQX1ZFUlNJT04gJiYgQU1RUF9WRVJTSU9OID49IDB4MDAwOTAw MDAKLSAJaWYgKHJtcV90aW1lb3V0IDwgMCkgewotIAkJTE1fV0FSTigiaW52YWxpZCB2YWx1ZSBm b3IgJ3RpbWVvdXQnICVkOyBmYWxsYmFjayB0byBibG9ja2luZyBtb2RlXG4iLCBybXFfdGltZW91 dCk7Ci0gCQlybXFfdGltZW91dCA9IDA7Ci0gCX0KLSAJcnBjX3RpbWVvdXRfdHYudHZfc2VjID0g cm1xX3RpbWVvdXQvMTAwMDsKLSAJcnBjX3RpbWVvdXRfdHYudHZfdXNlYyA9IChybXFfdGltZW91 dCUxMDAwKSoxMDAwOwotLSNlbHNlCi0tCWlmIChybXFfdGltZW91dCAhPSAwKQotLQkJTE1fV0FS Tigic2V0dGluZyB0aGUgdGltZW91dCB3aXRob3V0IHN1cHBvcnQgZm9yIGl0OyBmYWxsYmFjayB0 byBibG9ja2luZyBtb2RlXG4iKTsKLS0jZW5kaWYKLSAKLSAJaWYgKHVzZV90bHMpIHsKLS0JCSNp Zm5kZWYgQU1RUF9WRVJTSU9OX3YwNAotLQkJTE1fRVJSKCJUTFMgbm90IHN1cHBvcnRlZCBmb3Ig bGlicmFiYml0bXEgdmVyc2lvbiBsb3dlciB0aGFuIDAuNC4wXG4iKTsKLS0JCXJldHVybiAtMTsK LS0JCSNlbmRpZgotLQotIAkJaWYgKGxvYWRfdGxzX29wZW5zc2xfYXBpKCZvcGVuc3NsX2FwaSkp IHsKLSAJCQlMTV9EQkcoIkZhaWxlZCB0byBsb2FkIG9wZW5zc2wgQVBJXG4iKTsKLSAJCQlyZXR1 cm4gLTE7Ci1AQCAtMjQxLDcgKzIyOSw5IEBAIHN0YXRpYyBpbnQgbW9kX2luaXQodm9pZCkKLSAJ CX0KLSAJCSNlbmRpZgotIAotKyNpZiBBTVFQX1ZFUlNJT04gPCBBTVFQX1ZFUlNJT05fQ09ERSgw LCAxMywgMCwgMCkKLSAJCWFtcXBfc2V0X2luaXRpYWxpemVfc3NsX2xpYnJhcnkoMCk7Ci0rI2Vu ZGlmCi0gCX0KLSAKLSAJcmV0dXJuIDA7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJi aXRtcS9ldmVudF9yYWJiaXRtcS5oIGIvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ldmVudF9yYWJi aXRtcS5oCi1pbmRleCA1YjExNThlMTZmLi5iMjdjMmFkNjRkIDEwMDY0NAotLS0tIGEvbW9kdWxl cy9ldmVudF9yYWJiaXRtcS9ldmVudF9yYWJiaXRtcS5oCi0rKysgYi9tb2R1bGVzL2V2ZW50X3Jh YmJpdG1xL2V2ZW50X3JhYmJpdG1xLmgKLUBAIC0yNywxMyArMjcsMTAgQEAKLSAjaWZuZGVmIF9F Vl9STVFfSF8KLSAjZGVmaW5lIF9FVl9STVFfSF8KLSAKLS0jaW5jbHVkZSA8YW1xcC5oPgotLSNp bmNsdWRlIDxhbXFwX2ZyYW1pbmcuaD4KLS0jaWYgZGVmaW5lZCBBTVFQX1ZFUlNJT04gJiYgQU1R UF9WRVJTSU9OID49IDB4MDAwNDAwMDAKLS0gICNkZWZpbmUgQU1RUF9WRVJTSU9OX3YwNAotLSNp bmNsdWRlIDxhbXFwX3RjcF9zb2NrZXQuaD4KLS0jaW5jbHVkZSA8YW1xcF9zc2xfc29ja2V0Lmg+ Ci0tI2VuZGlmCi0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvYW1xcC5oPgotKyNpbmNsdWRlIDxyYWJi aXRtcS1jL2ZyYW1pbmcuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy90Y3Bfc29ja2V0Lmg+Ci0r I2luY2x1ZGUgPHJhYmJpdG1xLWMvc3NsX3NvY2tldC5oPgotIAotICNpbmNsdWRlICIuLi90bHNf bWdtL2FwaS5oIgotICNpbmNsdWRlICJybXFfc2VydmVycy5oIgotZGlmZiAtLWdpdCBhL21vZHVs ZXMvZXZlbnRfcmFiYml0bXEvcm1xX3NlcnZlcnMuYyBiL21vZHVsZXMvZXZlbnRfcmFiYml0bXEv cm1xX3NlcnZlcnMuYwotaW5kZXggZDkyMGU1OTlkMS4uZDFmNmExOWFiNCAxMDA2NDQKLS0tLSBh L21vZHVsZXMvZXZlbnRfcmFiYml0bXEvcm1xX3NlcnZlcnMuYwotKysrIGIvbW9kdWxlcy9ldmVu dF9yYWJiaXRtcS9ybXFfc2VydmVycy5jCi1AQCAtMzMsNjEgKzMzLDcgQEAKLSAKLSAjaW5jbHVk ZSAicm1xX3NlcnZlcnMuaCIKLSAjaW5jbHVkZSAicmFiYml0bXFfc2VuZC5oIgotLSNpbmNsdWRl IDxhbXFwX2ZyYW1pbmcuaD4KLS0KLS0jaWZkZWYgQU1RUF9WRVJTSU9OX3YwNAotLSNkZWZpbmUg cm1xX3BhcnNlX3JtIGFtcXBfcGFyc2VfdXJsCi0tI2Vsc2UKLS0jaW5jbHVkZSAiLi4vLi4vZGIv ZGJfaWQuaCIKLS0jd2FybmluZyAiWW91IGFyZSB1c2luZyBhbiBvbGQsIHVuc3VwcG9ydGVkIFJh YmJpdE1RIGxpYnJhcnkgdmVyc2lvbiAtIGNvbXBpbGUgb24geW91ciBvd24gcmlzayEiCi0tLyog dWdseSBoYWNrIHRvIG1vdmUgcHRyIGZyb20gaWQgdG8gcm1xX3VyaSAqLwotLSNkZWZpbmUgUFRS X01PVkUoX2Zyb20sIF90bykgXAotLQlkbyB7IFwKLS0JCShfdG8pID0gKF9mcm9tKTsgXAotLQkJ KF9mcm9tKSA9IE5VTEw7IFwKLS0JfSB3aGlsZSgwKQotLXN0YXRpYyBpbmxpbmUgaW50IHJtcV9w YXJzZV9ybShjaGFyICp1cmwsIHJtcV91cmkgKnVyaSkKLS17Ci0tCXN0ciBzdXJsOwotLQlzdHJ1 Y3QgZGJfaWQgKmlkOwotLQotLQlzdXJsLnMgPSB1cmw7Ci0tCXN1cmwubGVuID0gc3RybGVuKHVy bCk7Ci0tCi0tCWlmICgoaWQgPSBuZXdfZGJfaWQoJnN1cmwpKSA9PSBOVUxMKQotLQkJcmV0dXJu IC0xOwotLQotLQlpZiAoc3RyY21wKGlkLT5zY2hlbWUsICJhbXFwcyIpID09IDApCi0tCQl1cmkt PnNzbCA9IDE7Ci0tCi0tCS8qIHRoZXJlIG1pZ2h0IG1lIGEgcGtnIGxlYWsgY29tcGFyZWQgdG8g dGhlIG5ld2VyIHZlcnNpb24sIGJ1dCBwYXJzaW5nCi0tCSAqIG9ubHkgaGFwcGVuZHMgYXQgc3Rh cnR1cCwgc28gd2Ugc2hvdWxkIG5vdCB3b3JyeSBhYm91dCB0aGlzIG5vdyAqLwotLQlpZiAoaWQt PnVzZXJuYW1lKQotLQkJUFRSX01PVkUoaWQtPnVzZXJuYW1lLCB1cmktPnVzZXIpOwotLQllbHNl Ci0tCQl1cmktPnVzZXIgPSAiZ3Vlc3QiOwotLQlpZiAoaWQtPnBhc3N3b3JkKQotLQkJUFRSX01P VkUoaWQtPnBhc3N3b3JkLCB1cmktPnBhc3N3b3JkKTsKLS0JZWxzZQotLQkJdXJpLT5wYXNzd29y ZCA9ICJndWVzdCI7Ci0tCWlmIChpZC0+aG9zdCkKLS0JCVBUUl9NT1ZFKGlkLT5ob3N0LCB1cmkt Pmhvc3QpOwotLQllbHNlCi0tCQl1cmktPmhvc3QgPSAibG9jYWxob3N0IjsKLS0JaWYgKGlkLT5k YXRhYmFzZSkKLS0JCVBUUl9NT1ZFKGlkLT5kYXRhYmFzZSwgdXJpLT52aG9zdCk7Ci0tCWVsc2UK LS0JCXVyaS0+dmhvc3QgPSAiLyI7Ci0tCWlmIChpZC0+cG9ydCkKLS0JCXVyaS0+cG9ydCA9IGlk LT5wb3J0OwotLQllbHNlIGlmICh1cmktPnNzbCkKLS0JCXVyaS0+cG9ydCA9IDU2NzE7Ci0tCWVs c2UKLS0JCXVyaS0+cG9ydCA9IDU2NzI7Ci0tCWZyZWVfZGJfaWQoaWQpOwotLQlyZXR1cm4gMDsK LS19Ci0tI2VuZGlmCi0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvZnJhbWluZy5oPgotIAotIHN0YXRp YyBPU0lQU19MSVNUX0hFQUQocm1xX3NlcnZlcnMpOwotIAotQEAgLTExNyw5ICs2Myw2IEBAIGlu dCBybXFfZXJyb3IoY2hhciBjb25zdCAqY29udGV4dCwgYW1xcF9ycGNfcmVwbHlfdCB4KQotIHsK LSAJYW1xcF9jb25uZWN0aW9uX2Nsb3NlX3QgKm1jb25uOwotIAlhbXFwX2NoYW5uZWxfY2xvc2Vf dCAqbWNoYW47Ci0tI2lmbmRlZiBBTVFQX1ZFUlNJT05fdjA0Ci0tCWNoYXIgKmVycm9yc3RyOwot LSNlbmRpZgotIAotIAlzd2l0Y2ggKHgucmVwbHlfdHlwZSkgewotIAkJY2FzZSBBTVFQX1JFU1BP TlNFX05PUk1BTDoKLUBAIC0xMzAsMTMgKzczLDcgQEAgaW50IHJtcV9lcnJvcihjaGFyIGNvbnN0 ICpjb250ZXh0LCBhbXFwX3JwY19yZXBseV90IHgpCi0gCQkJYnJlYWs7Ci0gCi0gCQljYXNlIEFN UVBfUkVTUE9OU0VfTElCUkFSWV9FWENFUFRJT046Ci0tI2lmbmRlZiBBTVFQX1ZFUlNJT05fdjA0 Ci0tCQkJZXJyb3JzdHIgPSBhbXFwX2Vycm9yX3N0cmluZyh4LmxpYnJhcnlfZXJyb3IpOwotLQkJ CUxNX0VSUigiJXM6ICVzXG4iLCBjb250ZXh0LCBlcnJvcnN0cik7Ci0tCQkJZnJlZShlcnJvcnN0 cik7Ci0tI2Vsc2UKLSAJCQlMTV9FUlIoIiVzOiAlc1xuIiwgY29udGV4dCwgYW1xcF9lcnJvcl9z dHJpbmcyKHgubGlicmFyeV9lcnJvcikpOwotLSNlbmRpZgotIAkJCWJyZWFrOwotIAotIAkJY2Fz ZSBBTVFQX1JFU1BPTlNFX1NFUlZFUl9FWENFUFRJT046Ci1AQCAtMTcwLDkgKzEwNyw3IEBAIGlu dCBybXFfZXJyb3IoY2hhciBjb25zdCAqY29udGV4dCwgYW1xcF9ycGNfcmVwbHlfdCB4KQotICAq LwotIGludCBybXFfc2VydmVyX3JlY29ubmVjdChybXFfY29ubmVjdGlvbl90ICpjb25uLCBjaGFy ICphZGRyZXNzLCBpbnQgcG9ydCwgaW50IG1heF9mcmFtZXMsIHN0ciBjaWQpCi0gewotLSNpZiBk ZWZpbmVkIEFNUVBfVkVSU0lPTl92MDQKLSAJYW1xcF9zb2NrZXRfdCAqYW1xcF9zb2NrOwotLSNl bmRpZgotIAlpbnQgc29ja2V0OwotIAotIAlzd2l0Y2ggKGNvbm4tPnN0YXRlKSB7Ci1AQCAtMTgy LDcgKzExNyw2IEBAIGludCBybXFfc2VydmVyX3JlY29ubmVjdChybXFfY29ubmVjdGlvbl90ICpj b25uLCBjaGFyICphZGRyZXNzLCBpbnQgcG9ydCwgaW50IG1hCi0gCQkJTE1fRVJSKCJjYW5ub3Qg Y3JlYXRlIGFtcXAgY29ubmVjdGlvbiFcbiIpOwotIAkJCXJldHVybiAtMTsKLSAJCX0KLS0jaWYg ZGVmaW5lZCBBTVFQX1ZFUlNJT05fdjA0Ci0gCQlpZiAodXNlX3RscyAmJiAoY29ubi0+dXJpLnNz bCB8fCAoY29ubi0+ZmxhZ3MmUk1RX1BBUkFNX1RMUykpKSB7Ci0gCQkJaWYgKCFjb25uLT50bHNf ZG9tKSB7Ci0gCQkJCWNvbm4tPnRsc19kb20gPSB0bHNfYXBpLmZpbmRfY2xpZW50X2RvbWFpbl9u YW1lKCZjb25uLT50bHNfZG9tX25hbWUpOwotQEAgLTMxNCwxNiArMjQ4LDYgQEAgaW50IHJtcV9z ZXJ2ZXJfcmVjb25uZWN0KHJtcV9jb25uZWN0aW9uX3QgKmNvbm4sIGNoYXIgKmFkZHJlc3MsIGlu dCBwb3J0LCBpbnQgbWEKLSAJCQkJYW1xcF9zZXRfcnBjX3RpbWVvdXQoY29ubi0+Y29ubiwgJnJw Y190aW1lb3V0X3R2KSA8IDApCi0gCQkJTE1fRVJSKCJzZXR0aW5nIFJQQyB0aW1lb3V0IC0gZ29p bmcgYmxvY2tpbmdcbiIpOwotICNlbmRpZgotLQotLSNlbHNlCi0tCQlzb2NrZXQgPSBhbXFwX29w ZW5fc29ja2V0X25vYmxvY2soYWRkcmVzcywgcG9ydCwKLS0JCQkJJmNvbm5fdGltZW91dF90dik7 Ci0tCQlpZiAoc29ja2V0IDwgMCkgewotLQkJCUxNX0VSUigiY2Fubm90IG9wZW4gQU1RUCBzb2Nr ZXRcbiIpOwotLQkJCXJldHVybiAtMTsKLS0JCX0KLS0JCWFtcXBfc2V0X3NvY2tmZChjb25uLT5j b25uLCBzb2NrZXQpOwotLSNlbmRpZgotIAkJY29ubi0+c3RhdGUgPSBSTVFTX0lOSVQ7Ci0gCQkv KiBmYWxsIHRocm91Z2ggKi8KLSAJY2FzZSBSTVFTX0lOSVQ6Ci1AQCAtNTY4LDcgKzQ5Miw3IEBA IG5vX3ZhbHVlOgotIAltZW1jcHkodXJpLCBzdXJpLnMsIHN1cmkubGVuKTsKLSAJdXJpW3N1cmku bGVuXSA9IDA7Ci0gCi0tCWlmIChybXFfcGFyc2Vfcm0odXJpLCAmc3J2LT5jb25uLnVyaSkgIT0g MCkgewotKwlpZiAoYW1xcF9wYXJzZV91cmwodXJpLCAmc3J2LT5jb25uLnVyaSkgIT0gMCkgewot IAkJTE1fRVJSKCJbJS4qc10gY2Fubm90IHBhcnNlIHJhYmJpdG1xIHVyaTogJXNcbiIsIGNpZC5s ZW4sIGNpZC5zLCB1cmkpOwotIAkJZ290byBmcmVlOwotIAl9Ci1AQCAtNjA1LDcgKzUyOSw3IEBA IG5vX3ZhbHVlOgotIAkJfQotIAkJbWVtY3B5KHNydi0+Y29ubi5leGNoYW5nZS5ieXRlcywgZXhj aGFuZ2UucywgZXhjaGFuZ2UubGVuKTsKLSAJfSBlbHNlCi0tCQlzcnYtPmNvbm4uZXhjaGFuZ2Ug PSBSTVFfRU1QVFk7Ci0rCQlzcnYtPmNvbm4uZXhjaGFuZ2UgPSBhbXFwX2VtcHR5X2J5dGVzOwot IAotIAlzcnYtPmNvbm4uc3RhdGUgPSBSTVFTX09GRjsKLSAJc3J2LT5jaWQgPSBjaWQ7Ci1AQCAt Njc3LDE2ICs2MDEsNiBAQCB2b2lkIHJtcV9jb25uZWN0X3NlcnZlcnModm9pZCkKLSAKLSBpbnQg YW1xcF9jaGVja19zdGF0dXMocm1xX2Nvbm5lY3Rpb25fdCAqY29ubiwgaW50IHIsIGludCAqcmV0 cnksIHN0ciBjaWQpCi0gewotLSNpZm5kZWYgQU1RUF9WRVJTSU9OX3YwNAotLQlpZiAociAhPSAw KSB7Ci0tCQlMTV9FUlIoIlslLipzXSB1bmtub3duIEFNUVAgZXJyb3IgWyVkXSB3aGlsZSBzZW5k aW5nXG4iLAotLQkJCQlzcnYtPmNpZC5sZW4sIHNydi0+Y2lkLnMsIHIpOwotLQkJLyogd2UgY2xv c2UgdGhlIGNvbm5lY3Rpb24gaGVyZSB0byBiZSBhYmxlIHRvIHJlLWNvbm5lY3QgbGF0ZXIgKi8K LS0JCS8qIFRPRE86IGNsb3NlIHRoZSBjb25uZWN0aW9uICovCi0tCQlyZXR1cm4gcjsKLS0JfQot LQlyZXR1cm4gMDsKLS0jZWxzZQotIAlzd2l0Y2ggKHIpIHsKLSAJCWNhc2UgQU1RUF9TVEFUVVNf T0s6Ci0gCQkJcmV0dXJuIDA7Ci1AQCAtNzQxLDcgKzY1NSw2IEBAIG5vX2Nsb3NlOgotIAkJcmV0 dXJuIDE7Ci0gCX0KLSAJcmV0dXJuIHI7Ci0tI2VuZGlmCi0gfQotIAotIGludCBybXFfYmFzaWNf c2VydmVyX3B1Ymxpc2gocm1xX2Nvbm5lY3Rpb25fdCAqY29ubiwgaW50IG1heF9mcmFtZXMsCi1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5oIGIvbW9kdWxl cy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5oCi1pbmRleCBhNzAwZDgwMDQ5Li4wZDg1M2Y4 ZjJiIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9ldmVudF9yYWJiaXRtcS9ybXFfc2VydmVycy5oCi0r KysgYi9tb2R1bGVzL2V2ZW50X3JhYmJpdG1xL3JtcV9zZXJ2ZXJzLmgKLUBAIC00MCw3ICs0MCw3 IEBACi0gCi0gI2luY2x1ZGUgIi4uL3Rsc19vcGVuc3NsL29wZW5zc2xfYXBpLmgiCi0gI2luY2x1 ZGUgIi4uL3Rsc19tZ20vYXBpLmgiCi0tI2luY2x1ZGUgPGFtcXAuaD4KLSsjaW5jbHVkZSA8cmFi Yml0bXEtYy9hbXFwLmg+Ci0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi0gCi0gI2lmIEFN UVBfVkVSU0lPTiA8IEFNUVBfVkVSU0lPTl9DT0RFKDAsIDEwLCAwLCAwKQotQEAgLTQ5LDMwICs0 OSw4IEBACi0gZXh0ZXJuIGdlbl9sb2NrX3QgKnNzbF9sb2NrOwotICNlbmRpZgotIAotLS8qIEFN UVBfVkVSU0lPTiB3YXMgb25seSBhZGRlZCBpbiB2MC40LjAgLSB0aGVyZSBpcyBubyB3YXkgdG8g Y2hlY2sgdGhlCi0tICogdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBiZWZvcmUgdGhpcywgc28gd2Ug Y29uc2lkZXIgZXZlcnl0aGluZyBiZXlvbmQgdjAuNC4wCi0tICogYXMgb2xkIGFuZCBpbm5lZmlj aWVudCAqLwotLSNpZiBkZWZpbmVkIEFNUVBfVkVSU0lPTiAmJiBBTVFQX1ZFUlNJT04gPj0gQU1R UF9WRVJTSU9OX0NPREUoMCwgNCwgMCwgMCkKLS0gICNkZWZpbmUgQU1RUF9WRVJTSU9OX3YwNAot LSNpbmNsdWRlIDxhbXFwX3RjcF9zb2NrZXQuaD4KLS0jaW5jbHVkZSA8YW1xcF9zc2xfc29ja2V0 Lmg+Ci0tI2RlZmluZSBybXFfdXJpIHN0cnVjdCBhbXFwX2Nvbm5lY3Rpb25faW5mbwotLSNkZWZp bmUgUk1RX0VNUFRZIGFtcXBfZW1wdHlfYnl0ZXMKLS0jZWxzZQotLS8qIGFsdGhvdWdoIHN0cnVj dCBhbXFwX2Nvbm5lY3Rpb25faW5mbyB3YXMgYWRkZWQgaW4gdjAuMi4wLCB0aGVyZSBpcyBubyB3 YXkKLS0gKiB0byBjaGVjayBhZ2FpbnN0IHRoYXQgdmVyc2lvbiwgc28gd2UgYXNzdW1lIGl0IGRv ZXMgbm90IGV4aXN0IHVudGlsIHYwLjQuMAotLSAqLwotLXR5cGVkZWYgc3RydWN0IF9ybXFfdXJp IHsKLS0JY2hhciAqdXNlcjsKLS0JY2hhciAqcGFzc3dvcmQ7Ci0tCWNoYXIgKmhvc3Q7Ci0tCWNo YXIgKnZob3N0OwotLQlpbnQgcG9ydDsKLS0JaW50IHNzbDsKLS19IHJtcV91cmk7Ci0tI2RlZmlu ZSBSTVFfRU1QVFkgQU1RUF9FTVBUWV9CWVRFUwotLSNlbmRpZgotLQotKyNpbmNsdWRlIDxyYWJi aXRtcS1jL3RjcF9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9zc2xfc29ja2V0Lmg+ Ci0gCi0gZW51bSBybXFfc2VydmVyX3N0YXRlIHsgUk1RU19PRkYsIFJNUVNfSU5JVCwgUk1RU19D T05OLCBSTVFTX09OLCBSTVFTX1BSRUlOSVQgfTsKLSAKLUBAIC04Miw3ICs2MCw3IEBAIGVudW0g cm1xX3NlcnZlcl9zdGF0ZSB7IFJNUVNfT0ZGLCBSTVFTX0lOSVQsIFJNUVNfQ09OTiwgUk1RU19P TiwgUk1RU19QUkVJTklUIH07Ci0gCi0gdHlwZWRlZiBzdHJ1Y3Qgcm1xX2Nvbm5lY3Rpb24gewot IAllbnVtIHJtcV9zZXJ2ZXJfc3RhdGUgc3RhdGU7Ci0tCXJtcV91cmkgdXJpOwotKwlzdHJ1Y3Qg YW1xcF9jb25uZWN0aW9uX2luZm8gdXJpOwotIAl1bnNpZ25lZCBmbGFnczsKLSAJaW50IGhlYXJ0 YmVhdDsKLSAJc3RyIHRsc19kb21fbmFtZTsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3JhYmJpdG1x X2NvbnN1bWVyL1JFQURNRSBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvUkVBRE1FCi1pbmRl eCBhZWQzYmY0OWZiLi42Yzc2MGQ1NTQ3IDEwMDY0NAotLS0tIGEvbW9kdWxlcy9yYWJiaXRtcV9j b25zdW1lci9SRUFETUUKLSsrKyBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvUkVBRE1FCi1A QCAtNzIsOCArNzIsOCBAQCBDaGFwdGVyIDEuIEFkbWluIEd1aWRlCi0gICAgYmVmb3JlIHJ1bm5p bmcgT3BlblNJUFMgd2l0aCB0aGlzIG1vZHVsZSBsb2FkZWQ6Ci0gICAgICAqIGxpYnJhYmJpdG1x LWRldgotIAotLSAgIE5PdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGgg dmVyc2lvbnMgMC40IG9yCi0tICAgYmVsb3cgb2YgdGhlIGxpYnJhYmJpdG1xLWRldiBsaWJyYXJ5 LgotKyAgIE5vdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdmVyc2lv bnMgYmVsb3cgMC45Ci0rICAgb2YgdGhlIGxpYnJhYmJpdG1xLWRldiBsaWJyYXJ5LgotIAotIDEu My4gRXhwb3J0ZWQgUGFyYW1ldGVycwotIAotZGlmZiAtLWdpdCBhL21vZHVsZXMvcmFiYml0bXFf Y29uc3VtZXIvZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2FkbWluLnhtbCBiL21vZHVsZXMvcmFiYml0 bXFfY29uc3VtZXIvZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2FkbWluLnhtbAotaW5kZXggYThkYTNj YjJhNy4uODU2ZWQ3Mzk1NCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIv ZG9jL3JhYmJpdG1xX2NvbnN1bWVyX2FkbWluLnhtbAotKysrIGIvbW9kdWxlcy9yYWJiaXRtcV9j b25zdW1lci9kb2MvcmFiYml0bXFfY29uc3VtZXJfYWRtaW4ueG1sCi1AQCAtNTAsNyArNTAsNyBA QAotIAkJCTwvbGlzdGl0ZW0+Ci0gCQkJPC9pdGVtaXplZGxpc3Q+Ci0gCQk8cGFyYT4KLS0JCQlO T3RlIHRoYXQgdGhlIG1vZHVsZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHZlcnNpb25zIDAuNCBv ciBiZWxvdyBvZgotKwkJCU5vdGUgdGhhdCB0aGUgbW9kdWxlIGlzIG5vdCBjb21wYXRpYmxlIHdp dGggdmVyc2lvbnMgYmVsb3cgMC45IG9mCi0gCQkJdGhlIGxpYnJhYmJpdG1xLWRldiBsaWJyYXJ5 LgotIAkJPC9wYXJhPgotIAk8L3NlY3Rpb24+Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9yYWJiaXRt cV9jb25zdW1lci9yYWJiaXRtcV9jb25zdW1lci5jIGIvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1l ci9yYWJiaXRtcV9jb25zdW1lci5jCi1pbmRleCA2NDYyZjU3MDhjLi5jNmNmMjQxN2RiIDEwMDY0 NAotLS0tIGEvbW9kdWxlcy9yYWJiaXRtcV9jb25zdW1lci9yYWJiaXRtcV9jb25zdW1lci5jCi0r KysgYi9tb2R1bGVzL3JhYmJpdG1xX2NvbnN1bWVyL3JhYmJpdG1xX2NvbnN1bWVyLmMKLUBAIC05 Niw3ICs5Niw5IEBAIHN0YXRpYyBpbnQgbW9kX2luaXQodm9pZCkKLSAJCQlyZXR1cm4gLTE7Ci0g CQl9Ci0gCi0rI2lmIEFNUVBfVkVSU0lPTl9NQUpPUiA9PSAwICYmIEFNUVBfVkVSU0lPTl9NSU5P UiA8IDEzCi0gCQlhbXFwX3NldF9pbml0aWFsaXplX3NzbF9saWJyYXJ5KDApOwotKyNlbmRpZiAv LyBBTVFQX1ZFUlNJT05fTUFKT1IgPT0gMCAmJiBBTVFQX1ZFUlNJT05fTUlOT1IgPCAxMwotIAl9 Ci0gCi0gCXJldHVybiAwOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIv cm1xX2Nvbm5lY3Rpb24uaCBiL21vZHVsZXMvcmFiYml0bXFfY29uc3VtZXIvcm1xX2Nvbm5lY3Rp b24uaAotaW5kZXggOGFlYTQ4NzEwYS4uYTM0YTBkZWI1MSAxMDA2NDQKLS0tLSBhL21vZHVsZXMv cmFiYml0bXFfY29uc3VtZXIvcm1xX2Nvbm5lY3Rpb24uaAotKysrIGIvbW9kdWxlcy9yYWJiaXRt cV9jb25zdW1lci9ybXFfY29ubmVjdGlvbi5oCi1AQCAtMjIsOSArMjIsOSBAQAotICNpZm5kZWYg X1JNUV9DT05ORUNUSU9OX0hfCi0gI2RlZmluZSBfUk1RX0NPTk5FQ1RJT05fSF8KLSAKLS0jaW5j bHVkZSA8YW1xcC5oPgotLSNpbmNsdWRlIDxhbXFwX3RjcF9zb2NrZXQuaD4KLS0jaW5jbHVkZSA8 YW1xcF9zc2xfc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPHJhYmJpdG1xLWMvYW1xcC5oPgotKyNpbmNs dWRlIDxyYWJiaXRtcS1jL3RjcF9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8cmFiYml0bXEtYy9zc2xf c29ja2V0Lmg+Ci0gCi0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi0gI2luY2x1ZGUgIi4u Ly4uL2V2aS9ldmlfcGFyYW1zLmgiCgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwNS1GaXgtdW5p bml0aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoIGIvb3Bl bnNpcHMtMDAwNS1GaXgtdW5pbml0aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJ LWZ1bmN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlZGY5NzMK LS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc2lwcy0wMDA1LUZpeC11bmluaXRpYWxpemVkLXZhcmlh YmxlLXdhcm5pbmdzLWluLVNRTC1BUEktZnVuY3QucGF0Y2gKQEAgLTAsMCArMSwxNDUgQEAKK0Zy b20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitE YXRlOiBTdW4sIDI2IE9jdCAyMDI1IDE2OjUwOjUzICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZp eCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzIGluIFNRTCBBUEkgZnVuY3Rpb25zCitN SU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0R1cmluZyBjb21waWxhdGlvbiBv ZiBzcWxvcHMgbW9kdWxlIHdpdGggR0NDIDE1LCB3YXJuaW5ncyBhcHBlYXIgYWJvdXQKK3BvdGVu dGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzOgorCitgYGAKK0NvbXBpbGluZyBzcWxvcHNf ZGIuYworZ2NjIC1mUElDIC1EUElDIC1PMiAtZmx0bz1hdXRvIC1mZmF0LWx0by1vYmplY3RzIC1m ZXhjZXB0aW9ucyAtZyAtZ3JlY29yZC1nY2Mtc3dpdGNoZXMgLXBpcGUgLVdhbGwgLVduby1jb21w bGFpbi13cm9uZy1sYW5nIC1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5IC1XcCwtVV9GT1JUSUZZX1NP VVJDRSwtRF9GT1JUSUZZX1NPVVJDRT0zIC1XcCwtRF9HTElCQ1hYX0FTU0VSVElPTlMgLXNwZWNz PS91c3IvbGliL3JwbS9yZWRoYXQvcmVkaGF0LWhhcmRlbmVkLWNjMSAtZnN0YWNrLXByb3RlY3Rv ci1zdHJvbmcgLXNwZWNzPS91c3IvbGliL3JwbS9yZWRoYXQvcmVkaGF0LWFubm9iaW4tY2MxIC1t NjQgLW1hcmNoPXg4Ni02NCAtbXR1bmU9Z2VuZXJpYyAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFi bGVzIC1mc3RhY2stY2xhc2gtcHJvdGVjdGlvbiAtZmNmLXByb3RlY3Rpb24gLW10bHMtZGlhbGVj dD1nbnUyIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIC1tbm8tb21pdC1sZWFmLWZyYW1lLXBvaW50 ZXIgLURNT0RfTkFNRT0nc3Fsb3BzJyAtRFBLR19NQUxMT0MgIC1EU0hNX01NQVAgIC1EVVNFX01D QVNUICAtRERJU0FCTEVfTkFHTEUgIC1EU1RBVElTVElDUyAgLURIQVZFX1JFU09MVl9SRVMgIC1E Rl9NQUxMT0MgIC1EUV9NQUxMT0MgIC1ESFBfTUFMTE9DICAtRERCR19NQUxMT0MgIC1ERl9QQVJB TExFTF9NQUxMT0MgIC1ESEFWRV9TVERBVE9NSUMgLURIQVZFX0dFTkVSSUNTICAtRE5BTUU9JyJv cGVuc2lwcyInIC1EVkVSU0lPTj0nIjMuNi4yIicgLURBUkNIPScieDg2XzY0IicgLURPUz0nImxp bnV4IicgLURDT01QSUxFUj0nImdjYyAxNSInIC1EX19DUFVfeDg2XzY0IC1EX19PU19saW51eCAt RF9fU01QX3llcyAtRENGR19ESVI9JyIvZXRjL29wZW5zaXBzLyInICAtRFZFUlNJT05UWVBFPSci Z2l0IicgLURUSElTUkVWSVNJT049JyI5OTRiY2Q2OTAiJyAtREZBU1RfTE9DSyAtREFEQVBUSVZF X1dBSVQgLURBREFQVElWRV9XQUlUX0xPT1BTPTEwMjQgLURIQVZFX0dFVEhPU1RCWU5BTUUyIC1E SEFWRV9VTklPTl9TRU1VTiAtREhBVkVfTVNHX05PU0lHTkFMIC1ESEFWRV9NU0dIRFJfTVNHX0NP TlRST0wgLURIQVZFX0FMTE9DQV9IIC1ESEFWRV9USU1FR00gLURIQVZFX0VQT0xMIC1ESEFWRV9T SUdJT19SVCAtREhBVkVfU0VMRUNUIC1jIHNxbG9wc19kYi5jIC1vIHNxbG9wc19kYi5vCitJbiBm aWxlIGluY2x1ZGVkIGZyb20gLi4vLi4vbWVtL21lbS5oOjMwLAorICAgICAgICAgICAgICAgICBm cm9tIHNxbG9wc19kYi5jOjI3Ogorc3Fsb3BzX2RiLmM6IEluIGZ1bmN0aW9uIOKAmHNxbF9hcGlf ZGVsZXRl4oCZOgorLi4vLi4vbWVtLy4uL2RwcmludC5oOjQ1NDozMzogd2FybmluZzog4oCYaWTi gJkgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBbLVdtYXliZS11bmluaXRpYWxpemVkXQorICA0 NTQgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRwcmludChfbG9nX2xldmVsLCBf bG9nX2ZhY2lsaXR5LCBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAgNDU1IHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPR19QUkVGSVhfVVRJTChNT0RfTkFNRSksIF9f RFBfRlVOQywgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisgIDQ1NiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3RkZXJyX3ByZWZpeCBMT0dfUFJF RklYIF9mbXQsIFwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorICA0NTcgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKikiJXMiIF9zeXNsb2dfcHJlZml4 IExPR19QUkVGSVggX2ZtdCwgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgorICA0NTggfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIg KilfZm10LCBcCisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB+fn5+fn5+fn5+fn5+fn4KKyAgNDU5IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRwX3RpbWUoKSwgZHBfbXlfcGlkKCksIGxvZ19wcmVmaXgsIF9fRFBfRlVOQywg IyMgYXJncykgXAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgorc3Fsb3BzX2RiLmM6OTIxOjE0OiBub3RlOiDigJhpZOKAmSB3YXMgZGVjbGFyZWQgaGVyZQor ICA5MjEgfCAgICAgICAgIHN0ciAqaWQ7CisgICAgICB8ICAgICAgICAgICAgICBefgorYGBgCisK K0luIHNxbF9hcGlfc2VsZWN0KCksIHNxbF9hcGlfdXBkYXRlKCksIHNxbF9hcGlfaW5zZXJ0KCks CitzcWxfYXBpX2RlbGV0ZSgpLCBhbmQgc3FsX2FwaV9yZXBsYWNlKCkgZnVuY3Rpb25zLCB0aGUg J2lkJyBwb2ludGVyCit2YXJpYWJsZSAodXNlZCBmb3IgcHJlcGFyZWQgc3RhdGVtZW50IGlkZW50 aWZpZXJzKSBpcyBkZWNsYXJlZCBidXQgY291bGQKK2JlIHVuaW5pdGlhbGl6ZWQuCisKK0xldCdz IGVuc3VyZSB0aGF0OgorCistIFRoZSB2YXJpYWJsZSBpcyBhbHdheXMgaW5pdGlhbGl6ZWQgKHBy ZXZlbnRzIHVuZGVmaW5lZCBiZWhhdmlvcikKKy0gRGVidWcgbG9nZ2luZyBvbmx5IG9jY3VycyB3 aGVuIGEgcHJlcGFyZWQgc3RhdGVtZW50IElEIHdhcyBhY3R1YWxseQorICBnZW5lcmF0ZWQKKy0g VGhlIGNvZGUgaXMgc2FmZSBldmVuIHdoZW4gbm8gZmlsdGVyIGtleXMgYXJlIHByb3ZpZGVkCisK K05vdGU6IFRoaXMgd2FzIGEgcmVhbCBidWcsIG5vdCBqdXN0IGEgc3B1cmlvdXMgY29tcGlsZXIg d2FybmluZy4gSW4KK3NjZW5hcmlvcyB3aGVyZSBEQl9DQVBfUFJFUEFSRURfU1RNVCBpcyBzdXBw b3J0ZWQsIF9xdWVyeV9pZF9zdGFydCgpCitzdWNjZWVkcywgYnV0IG5vIGZpbHRlciBrZXlzIGV4 aXN0LCB0aGUgY29kZSB3b3VsZCBkZXJlZmVyZW5jZSBhbgordW5pbml0aWFsaXplZCBwb2ludGVy LgorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgor QXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+CisKK2Rp ZmYgLS1naXQgYS9tb2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIuYyBiL21vZHVsZXMvc3Fsb3BzL3Nx bG9wc19kYi5jCitpbmRleCA4YjU3YTEzYzQ4Li5jZjM2NDU5M2Y4IDEwMDY0NAorLS0tIGEvbW9k dWxlcy9zcWxvcHMvc3Fsb3BzX2RiLmMKKysrKyBiL21vZHVsZXMvc3Fsb3BzL3NxbG9wc19kYi5j CitAQCAtNzUyLDcgKzc1Miw4IEBAIGludCBzcWxfYXBpX3NlbGVjdChzdHJ1Y3QgZGJfdXJsICp1 cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNKU09OICpKY29scywKKyAJKGtleXMgJiYgKGlkPV9x dWVyeV9pZF9hZGRfZmlsdGVyKGtleXMsb3BzLG5rKSk9PU5VTEwpICkgeworIAkJTE1fREJHKCJu b3QgdXNpbmcgUFNcbiIpOworIAl9IGVsc2UgeworLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5c biIsaWQtPmxlbixpZC0+cyk7CisrCQlpZihpZCkKKysJCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipz PlxuIixpZC0+bGVuLGlkLT5zKTsKKyAJCWlmIChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1tYXBf Y3JlYXRlKDApKSE9TlVMTCkgeworIAkJCWlmICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwgKmlk ICkpIT1OVUxMKSB7CisgCQkJCUxNX0RCRygidXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKK0BAIC04 MDQsNyArODA1LDcgQEAgaW50IHNxbF9hcGlfdXBkYXRlKHN0cnVjdCBkYl91cmwgKnVybCwgc3Ry dWN0IHNpcF9tc2cqIG1zZywgY0pTT04gKkpjb2xzLAorIAlkYl9vcF90ICp1b3BzLCAqb3BzOwor IAlkYl92YWxfdCAqdXZhbHMsICp2YWxzOworIAlpbnQgbmssIHVuazsKKy0Jc3RyICppZDsKKysJ c3RyICppZCA9IE5VTEw7CisgCWRiX3BzX3QgKm15X3BzOworIAorIAkvKiBjb252ZXJ0IEpTT04g dG8gQ09McyAqLworQEAgLTgzOCw3ICs4MzksOCBAQCBpbnQgc3FsX2FwaV91cGRhdGUoc3RydWN0 IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBjSlNPTiAqSmNvbHMsCisgCShrZXlz ICYmIChpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcihrZXlzLG9wcyxuaykpPT1OVUxMKSApIHsKKyAJ CUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RCRygiUFMgaWQg aXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1fREJHKCJQUyBp ZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1OVUxMIHx8IChw c19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBw c19tYXAsICppZCApKSE9TlVMTCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9w cyk7CitAQCAtODY4LDcgKzg3MCw3IEBAIGludCBzcWxfYXBpX2luc2VydChzdHJ1Y3QgZGJfdXJs ICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAqdGFibGUsCisgCWRiX29wX3QgKnVvcHM7 CisgCWRiX3ZhbF90ICp1dmFsczsKKyAJaW50IHVuazsKKy0Jc3RyICppZDsKKysJc3RyICppZCA9 IE5VTEw7CisgCWRiX3BzX3QgKm15X3BzOworIAorIAkvKiBjb252ZXJ0IEpTT04gdG8gQ09McyAq LworQEAgLTg4OCw3ICs4OTAsOCBAQCBpbnQgc3FsX2FwaV9pbnNlcnQoc3RydWN0IGRiX3VybCAq dXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRhYmxlLAorIAkoaWQ9X3F1ZXJ5X2lkX2Fk ZF9maWx0ZXIodWtleXMsdW9wcyx1bmspKT09TlVMTCApIHsKKyAJCUxNX0RCRygibm90IHVzaW5n IFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5s ZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQt PmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgw KSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVM TCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9wcyk7CitAQCAtOTE4LDcgKzky MSw3IEBAIGludCBzcWxfYXBpX2RlbGV0ZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBf bXNnKiBtc2csCisgCWRiX29wX3QgKm9wczsKKyAJZGJfdmFsX3QgKnZhbHM7CisgCWludCBuazsK Ky0Jc3RyICppZDsKKysJc3RyICppZCA9IE5VTEw7CisgCWRiX3BzX3QgKm15X3BzOworIAorIAkv KiBjb252ZXJ0IEpTT04gdG8ga2V5cyAqLworQEAgLTk0NSw3ICs5NDgsOCBAQCBpbnQgc3FsX2Fw aV9kZWxldGUoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLAorIAkoa2V5 cyAmJiAoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIoa2V5cyxvcHMsbmspKT09TlVMTCkgKSB7Cisg CQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7CisgCX0gZWxzZSB7CistCQlMTV9EQkcoIlBTIGlk IGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKKysJCWlmKGlkKQorKwkJCUxNX0RCRygiUFMg aWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOworIAkJaWYgKHBzX21hcCE9TlVMTCB8fCAo cHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7CisgCQkJaWYgKCAobXlfcHM9bWFwX2dldCgg cHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKKyAJCQkJTE1fREJHKCJ1c2luZyBQUyAlcFxuIiwqbXlf cHMpOworQEAgLTk3NSw3ICs5NzksNyBAQCBpbnQgc3FsX2FwaV9yZXBsYWNlKHN0cnVjdCBkYl91 cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgc3RyICp0YWJsZSwKKyAJZGJfb3BfdCAqdW9w czsKKyAJZGJfdmFsX3QgKnV2YWxzOworIAlpbnQgdW5rOworLQlzdHIgKmlkOworKwlzdHIgKmlk ID0gTlVMTDsKKyAJZGJfcHNfdCAqbXlfcHM7CisgCisgCS8qIGNvbnZlcnQgSlNPTiB0byBDT0xz ICovCitAQCAtOTk1LDcgKzk5OSw4IEBAIGludCBzcWxfYXBpX3JlcGxhY2Uoc3RydWN0IGRiX3Vy bCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRhYmxlLAorIAkoaWQ9X3F1ZXJ5X2lk X2FkZF9maWx0ZXIodWtleXMsdW9wcyx1bmspKT09TlVMTCApIHsKKyAJCUxNX0RCRygibm90IHVz aW5nIFBTXG4iKTsKKyAJfSBlbHNlIHsKKy0JCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlk LT5sZW4saWQtPnMpOworKwkJaWYoaWQpCisrCQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIs aWQtPmxlbixpZC0+cyk7CisgCQlpZiAocHNfbWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0 ZSgwKSkhPU5VTEwpIHsKKyAJCQlpZiAoIChteV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9 TlVMTCkgeworIAkJCQlMTV9EQkcoInVzaW5nIFBTICVwXG4iLCpteV9wcyk7CgpkaWZmIC0tZ2l0 IGEvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24tcHBj NjRsZS1hbmQtaTY4LnBhdGNoIGIvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YV9s aXN0LXdhcm5pbmctb24tcHBjNjRsZS1hbmQtaTY4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjZjOWQ2MjgKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc2lwcy0wMDA2 LUZpeC11bmluaXRpYWxpemVkLXZhX2xpc3Qtd2FybmluZy1vbi1wcGM2NGxlLWFuZC1pNjgucGF0 Y2gKQEAgLTAsMCArMSwxMDAgQEAKK0Zyb20gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292 IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRlOiBGcmksIDI2IERlYyAyMDI1IDE3OjI1OjA1ICsw MTAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCB1bmluaXRpYWxpemVkIHZhX2xpc3Qgd2FybmluZyBv biBwcGM2NGxlIGFuZCBpNjg2IHdpdGgKKyBHQ0MgMTUKKworRHVyaW5nIGNvbXBpbGF0aW9uIG9u IHBwYzY0bGUgYW5kIGk2ODYgYXJjaGl0ZWN0dXJlcyB3aXRoIEdDQyAxNSwgYQord2FybmluZyBh cHBlYXJzOgorCitgYGAKK2NhY2hlZGJfcmVkaXNfZGJhc2UuYzogSW4gZnVuY3Rpb24gJ3JlZGlz X3J1bl9jb21tYW5kX2FyZ3YnOgorY2FjaGVkYl9yZWRpc19kYmFzZS5jOjY1OToxNjogd2Fybmlu ZzogJ18nIGlzIHVzZWQgdW5pbml0aWFsaXplZCBbLVd1bmluaXRpYWxpemVkXQorICA2NTkgfCAg ICAgICAgIHJldHVybiBfcmVkaXNfcnVuX2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFy Z2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEwsIF8pOworICAgICAgfCAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CitjYWNoZWRiX3JlZGlzX2RiYXNlLmM6NjU3OjE3OiBub3RlOiAnXycgd2FzIGRl Y2xhcmVkIGhlcmUKKyAgNjU3IHwgICAgICAgICB2YV9saXN0IF87CisgICAgICB8ICAgICAgICAg ICAgICAgICBeCitgYGAKKworSW4gY29tbWl0IGQ2YWQ2ZDQwMzlmY2Y2ODYyNDQ4MWY2OWVlNjdl ZmY5MmY3YjNhYjIsIHRoZQorYHJlZGlzX3J1bl9jb21tYW5kX2FyZ3YoKWAgZnVuY3Rpb24gd2Fz IG1vZGlmaWVkIHRvIHBhc3MgYW4KK3VuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIHRvIGBfcmVkaXNf cnVuX2NvbW1hbmQoKWAuCisKK1RoZSBvcmlnaW5hbCBsb2dpYyBpczoKK2BgYGMKK3N0YXRpYyBp bnQgcmVkaXNfcnVuX2NvbW1hbmRfYXJndiguLi4pIHsKKyAgICB2YV9saXN0IF87CisgICAgcmV0 dXJuIF9yZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGwsIGtleSwgYXJnYywgYXJndiwg YXJndmxlbiwgTlVMTCwgXyk7Cit9CitgYGAKKworVGhlIHVuZGVyc2NvcmUgYF9gIHdhcyB1c2Vk IGFzIGEgImRvbid0IGNhcmUiIHBsYWNlaG9sZGVyLCBzaW5jZSB3aGVuCitgYXJnY2AgaXMgbm9u LXplcm8sIGBfcmVkaXNfcnVuX2NvbW1hbmQoKWAgdXNlcyB0aGUgYGFyZ3ZgIHBhdGggYW5kCitu ZXZlciBhY2Nlc3NlcyB0aGUgYHZhX2xpc3RgIHBhcmFtZXRlcjoKKworYGBgYworaWYgKGFyZ2Mp IHsKKyAgICByZXBseSA9IHJlZGlzQ29tbWFuZEFyZ3Yobm9kZS0+Y29udGV4dCwgYXJnYywgYXJn diwgYXJndmxlbik7Cit9IGVsc2UgeworICAgIHZhX2NvcHkoYXEsIGFwKTsgIC8vIE9ubHkgZXhl Y3V0ZWQgd2hlbiBhcmdjID09IDAKKyAgICByZXBseSA9IHJlZGlzdkNvbW1hbmQobm9kZS0+Y29u dGV4dCwgY21kX2ZtdCwgYXEpOworICAgIHZhX2VuZChhcSk7Cit9CitgYGAKKworV2hpbGUgdGhp cyB3b3JrZWQgaW4gcHJhY3RpY2UgKHRoZSB1bmluaXRpYWxpemVkIGB2YV9saXN0YCBpcyBuZXZl cgorYWN0dWFsbHkgdXNlZCksIEdDQyAxNSBub3cgY29ycmVjdGx5IHdhcm5zIHRoYXQgcGFzc2lu ZyB1bmluaXRpYWxpemVkCitkYXRhIGlzIHVuZGVmaW5lZCBiZWhhdmlvciwgZXZlbiBpZiB0aGF0 IGRhdGEgaXMgbmV2ZXIgYWNjZXNzZWQuCisKK0luaXRpYWxpemUgdGhlIGB2YV9saXN0YCB0byBh IHNhZmUgdmFsdWUgdXNpbmcgemVyby1pbml0aWFsaXphdGlvbi4gVGhpcworc2F0aXNmaWVzIHRo ZSBjb21waWxlcidzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY2hlY2sgd2hpbGUgbWFpbnRhaW5p bmcKK3RoZSBvcmlnaW5hbCBsb2dpYyAtIHRoZSBgdmFfbGlzdGAgc3RpbGwgd29uJ3QgYmUgdXNl ZCB3aGVuIGBhcmdjYCBpcworbm9uLXplcm8sIGJ1dCBpdCdzIG5vdyB2YWxpZGx5IGluaXRpYWxp emVkLgorCisqKkNoYW5nZWQ6KioKK2BgYGMKK3ZhX2xpc3QgXzsKK2BgYAorCisqKlRvOioqCitg YGBjCit2YV9saXN0IHVudXNlZF9hcCA9IHswfTsKK2BgYAorCitBbHNvIHJlbmFtZWQgZnJvbSBg X2AgdG8gYHVudXNlZF9hcGAgZm9yIGNsYXJpdHksIGFzIHNpbmdsZSB1bmRlcnNjb3JlCitpZGVu dGlmaWVycyBjYW4gYmUgcHJvYmxlbWF0aWMgYW5kIGRvbid0IGNsZWFybHkgY29udmV5IGludGVu dC4KKworRXZlbiB0aG91Z2ggdGhlIHVuaW5pdGlhbGl6ZWQgYHZhX2xpc3RgIGlzIG5ldmVyIGFj Y2Vzc2VkIGluIHByYWN0aWNlLAorcGFzc2luZyB1bmluaXRpYWxpemVkIGRhdGEgdmlvbGF0ZXMg QydzIHJ1bGVzIGFuZCBjYW4gY2F1c2UgaXNzdWVzIHdpdGg6CisKKy0gU3RhdGljIGFuYWx5c2lz IHRvb2xzCistIENvbXBpbGVyIG9wdGltaXphdGlvbnMgdGhhdCBhc3N1bWUgbm8gdW5kZWZpbmVk IGJlaGF2aW9yCistIEZ1dHVyZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYHZhX2xpc3RgIGltcGxl bWVudGF0aW9ucworLSBDb2RlIG1haW50YWluYWJpbGl0eSAodW5jbGVhciBpbnRlbnQpCisKK1Ro aXMgY2hhbmdlIG1ha2VzIHRoZSBjb2RlIGNvbXBsaWFudCB3aXRoIEMgc3RhbmRhcmRzIHdoaWxl IHByZXNlcnZpbmcKK3RoZSBvcmlnaW5hbCBmdW5jdGlvbmFsaXR5LgorCitSZWxhdGVkIGNvbW1p dDogZDZhZDZkNDAzOWZjZjY4NjI0NDgxZjY5ZWU2N2VmZjkyZjdiM2FiMgorKCJjYWNoZWRiX3Jl ZGlzOiBwcm9wZXJseSBwYXNzIHZhcmlhYmxlIGFyZ3VtZW50cyB0byBhIFJlZGlzIGNvbW1hbmQi KQorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgor QXNzaXN0ZWQtYnk6IENsYXVkZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+CisKK2Rp ZmYgLS1naXQgYS9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFzZS5jIGIv bW9kdWxlcy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYworaW5kZXggNWVmOTJj NmE1YS4uNWM2YTljNzJkMyAxMDA2NDQKKy0tLSBhL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNo ZWRiX3JlZGlzX2RiYXNlLmMKKysrKyBiL21vZHVsZXMvY2FjaGVkYl9yZWRpcy9jYWNoZWRiX3Jl ZGlzX2RiYXNlLmMKK0BAIC02NjAsOSArNjYwLDkgQEAgc3RhdGljIGludCByZWRpc19ydW5fY29t bWFuZChjYWNoZWRiX2NvbiAqY29ubmVjdGlvbiwgcmVkaXNSZXBseSAqKnJwbCwKKyBzdGF0aWMg aW50IHJlZGlzX3J1bl9jb21tYW5kX2FyZ3YoY2FjaGVkYl9jb24gKmNvbm5lY3Rpb24sIHJlZGlz UmVwbHkgKipycGwsCisgICAgICAgICAgICAgICBzdHIgKmtleSwgaW50IGFyZ2MsIGNvbnN0IGNo YXIgKiphcmd2LCBjb25zdCBzaXplX3QgKmFyZ3ZsZW4pCisgeworLQl2YV9saXN0IF87CisrCXZh X2xpc3QgdW51c2VkX2FwID0gezB9OworIAorLQlyZXR1cm4gX3JlZGlzX3J1bl9jb21tYW5kKGNv bm5lY3Rpb24sIHJwbCwga2V5LCBhcmdjLCBhcmd2LCBhcmd2bGVuLCBOVUxMLCBfKTsKKysJcmV0 dXJuIF9yZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGwsIGtleSwgYXJnYywgYXJndiwg YXJndmxlbiwgTlVMTCwgdW51c2VkX2FwKTsKKyB9CisgCisgaW50IHJlZGlzX2dldChjYWNoZWRi X2NvbiAqY29ubmVjdGlvbixzdHIgKmF0dHIsc3RyICp2YWwpCgpkaWZmIC0tZ2l0IGEvb3BlbnNp cHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1 bmN0LnBhdGNoIGIvb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YXJpYWJsZS13YXJu aW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBhNTMyYmYwLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMDYtRml4LXVuaW5pdGlhbGl6ZWQt dmFyaWFibGUtd2FybmluZ3MtaW4tU1FMLUFQSS1mdW5jdC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDE1NCArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPgotRGF0ZTogU3VuLCAyNiBPY3QgMjAyNSAxNjo1MDo1MyArMDEwMAot U3ViamVjdDogW1BBVENIXSBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5ncyBpbiBT UUwgQVBJIGZ1bmN0aW9ucwotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1E dXJpbmcgY29tcGlsYXRpb24gb2Ygc3Fsb3BzIG1vZHVsZSB3aXRoIEdDQyAxNSwgd2FybmluZ3Mg YXBwZWFyIGFib3V0Ci1wb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlczoKLQotYGBg Ci1Db21waWxpbmcgc3Fsb3BzX2RiLmMKLWdjYyAtZlBJQyAtRFBJQyAtTzIgLWZsdG89YXV0byAt ZmZhdC1sdG8tb2JqZWN0cyAtZmV4Y2VwdGlvbnMgLWcgLWdyZWNvcmQtZ2NjLXN3aXRjaGVzIC1w aXBlIC1XYWxsIC1Xbm8tY29tcGxhaW4td3JvbmctbGFuZyAtV2Vycm9yPWZvcm1hdC1zZWN1cml0 eSAtV3AsLVVfRk9SVElGWV9TT1VSQ0UsLURfRk9SVElGWV9TT1VSQ0U9MyAtV3AsLURfR0xJQkNY WF9BU1NFUlRJT05TIC1zcGVjcz0vdXNyL2xpYi9ycG0vcmVkaGF0L3JlZGhhdC1oYXJkZW5lZC1j YzEgLWZzdGFjay1wcm90ZWN0b3Itc3Ryb25nIC1zcGVjcz0vdXNyL2xpYi9ycG0vcmVkaGF0L3Jl ZGhhdC1hbm5vYmluLWNjMSAtbTY0IC1tYXJjaD14ODYtNjQgLW10dW5lPWdlbmVyaWMgLWZhc3lu Y2hyb25vdXMtdW53aW5kLXRhYmxlcyAtZnN0YWNrLWNsYXNoLXByb3RlY3Rpb24gLWZjZi1wcm90 ZWN0aW9uIC1tdGxzLWRpYWxlY3Q9Z251MiAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtbW5vLW9t aXQtbGVhZi1mcmFtZS1wb2ludGVyIC1ETU9EX05BTUU9J3NxbG9wcycgLURQS0dfTUFMTE9DICAt RFNITV9NTUFQICAtRFVTRV9NQ0FTVCAgLURESVNBQkxFX05BR0xFICAtRFNUQVRJU1RJQ1MgIC1E SEFWRV9SRVNPTFZfUkVTICAtREZfTUFMTE9DICAtRFFfTUFMTE9DICAtREhQX01BTExPQyAgLURE QkdfTUFMTE9DICAtREZfUEFSQUxMRUxfTUFMTE9DICAtREhBVkVfU1REQVRPTUlDIC1ESEFWRV9H RU5FUklDUyAgLUROQU1FPScib3BlbnNpcHMiJyAtRFZFUlNJT049JyIzLjYuMiInIC1EQVJDSD0n Ing4Nl82NCInIC1ET1M9JyJsaW51eCInIC1EQ09NUElMRVI9JyJnY2MgMTUiJyAtRF9fQ1BVX3g4 Nl82NCAtRF9fT1NfbGludXggLURfX1NNUF95ZXMgLURDRkdfRElSPSciL2V0Yy9vcGVuc2lwcy8i JyAgLURWRVJTSU9OVFlQRT0nImdpdCInIC1EVEhJU1JFVklTSU9OPSciOTk0YmNkNjkwIicgLURG QVNUX0xPQ0sgLURBREFQVElWRV9XQUlUIC1EQURBUFRJVkVfV0FJVF9MT09QUz0xMDI0IC1ESEFW RV9HRVRIT1NUQllOQU1FMiAtREhBVkVfVU5JT05fU0VNVU4gLURIQVZFX01TR19OT1NJR05BTCAt REhBVkVfTVNHSERSX01TR19DT05UUk9MIC1ESEFWRV9BTExPQ0FfSCAtREhBVkVfVElNRUdNIC1E SEFWRV9FUE9MTCAtREhBVkVfU0lHSU9fUlQgLURIQVZFX1NFTEVDVCAtYyBzcWxvcHNfZGIuYyAt byBzcWxvcHNfZGIubwotSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4uLy4uL21lbS9tZW0uaDozMCwK LSAgICAgICAgICAgICAgICAgZnJvbSBzcWxvcHNfZGIuYzoyNzoKLXNxbG9wc19kYi5jOiBJbiBm dW5jdGlvbiDigJhzcWxfYXBpX2RlbGV0ZeKAmToKLS4uLy4uL21lbS8uLi9kcHJpbnQuaDo0NTQ6 MzM6IHdhcm5pbmc6IOKAmGlk4oCZIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgWy1XbWF5YmUt dW5pbml0aWFsaXplZF0KLSAgNDU0IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk cHJpbnQoX2xvZ19sZXZlbCwgX2xvZ19mYWNpbGl0eSwgXAotICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0g IDQ1NSB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT0dfUFJFRklY X1VUSUwoTU9EX05BTUUpLCBfX0RQX0ZVTkMsIFwKLSAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgotICA0NTYgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3N0 ZGVycl9wcmVmaXggTE9HX1BSRUZJWCBfZm10LCBcCi0gICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K LSAgNDU3IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyICop IiVzIiBfc3lzbG9nX3ByZWZpeCBMT0dfUFJFRklYIF9mbXQsIFwKLSAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KLSAgNDU4IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjaGFyICopX2ZtdCwgXAotICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+Ci0gIDQ1OSB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcF90aW1lKCksIGRwX215X3BpZCgpLCBsb2df cHJlZml4LCBfX0RQX0ZVTkMsICMjIGFyZ3MpIFwKLSAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KLXNxbG9wc19kYi5jOjkyMToxNDogbm90ZTog4oCYaWTigJkg d2FzIGRlY2xhcmVkIGhlcmUKLSAgOTIxIHwgICAgICAgICBzdHIgKmlkOwotICAgICAgfCAgICAg ICAgICAgICAgXn4KLWBgYAotCi1JbiBzcWxfYXBpX3NlbGVjdCgpLCBzcWxfYXBpX3VwZGF0ZSgp LCBzcWxfYXBpX2luc2VydCgpLAotc3FsX2FwaV9kZWxldGUoKSwgYW5kIHNxbF9hcGlfcmVwbGFj ZSgpIGZ1bmN0aW9ucywgdGhlICdpZCcgcG9pbnRlcgotdmFyaWFibGUgKHVzZWQgZm9yIHByZXBh cmVkIHN0YXRlbWVudCBpZGVudGlmaWVycykgaXMgZGVjbGFyZWQgYnV0IGNvdWxkCi1iZSB1bmlu aXRpYWxpemVkLgotCi1MZXQncyBlbnN1cmUgdGhhdDoKLQotLSBUaGUgdmFyaWFibGUgaXMgYWx3 YXlzIGluaXRpYWxpemVkIChwcmV2ZW50cyB1bmRlZmluZWQgYmVoYXZpb3IpCi0tIERlYnVnIGxv Z2dpbmcgb25seSBvY2N1cnMgd2hlbiBhIHByZXBhcmVkIHN0YXRlbWVudCBJRCB3YXMgYWN0dWFs bHkKLSAgZ2VuZXJhdGVkCi0tIFRoZSBjb2RlIGlzIHNhZmUgZXZlbiB3aGVuIG5vIGZpbHRlciBr ZXlzIGFyZSBwcm92aWRlZAotCi1Ob3RlOiBUaGlzIHdhcyBhIHJlYWwgYnVnLCBub3QganVzdCBh IHNwdXJpb3VzIGNvbXBpbGVyIHdhcm5pbmcuIEluCi1zY2VuYXJpb3Mgd2hlcmUgREJfQ0FQX1BS RVBBUkVEX1NUTVQgaXMgc3VwcG9ydGVkLCBfcXVlcnlfaWRfc3RhcnQoKQotc3VjY2VlZHMsIGJ1 dCBubyBmaWx0ZXIga2V5cyBleGlzdCwgdGhlIGNvZGUgd291bGQgZGVyZWZlcmVuY2UgYW4KLXVu aW5pdGlhbGl6ZWQgcG9pbnRlci4KLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxl bWVua292QGdtYWlsLmNvbT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBz Oi8vY2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zcWxvcHMvc3Fsb3BzX2RiLmMg Yi9tb2R1bGVzL3NxbG9wcy9zcWxvcHNfZGIuYwotaW5kZXggNWRlN2I1NTk5NS4uY2YzNjQ1OTNm OCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvc3Fsb3BzL3NxbG9wc19kYi5jCi0rKysgYi9tb2R1bGVz L3NxbG9wcy9zcWxvcHNfZGIuYwotQEAgLTcxMyw3ICs3MTMsNyBAQCBpbnQgc3FsX2FwaV9zZWxl Y3Qoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBjSlNPTiAqSmNvbHMs Ci0gCWRiX29wX3QgKm9wczsKLSAJZGJfdmFsX3QgKnZhbHM7Ci0gCWludCBuaywgbmM7Ci0tCXN0 ciAqaWQ7Ci0rCXN0ciAqaWQgPSBOVUxMOwotIAlkYl9wc190ICpteV9wczsKLSAKLSAJLyogY29u dmVydCBKU09OIHRvIENPTHMgKi8KLUBAIC03NTIsNyArNzUyLDggQEAgaW50IHNxbF9hcGlfc2Vs ZWN0KHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgY0pTT04gKkpjb2xz LAotIAkoa2V5cyAmJiAoaWQ9X3F1ZXJ5X2lkX2FkZF9maWx0ZXIoa2V5cyxvcHMsbmspKT09TlVM TCkgKSB7Ci0gCQlMTV9EQkcoIm5vdCB1c2luZyBQU1xuIik7Ci0gCX0gZWxzZSB7Ci0tCQlMTV9E QkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSsJCWlmKGlkKQotKwkJCUxN X0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotIAkJaWYgKHBzX21hcCE9 TlVMTCB8fCAocHNfbWFwPW1hcF9jcmVhdGUoMCkpIT1OVUxMKSB7Ci0gCQkJaWYgKCAobXlfcHM9 bWFwX2dldCggcHNfbWFwLCAqaWQgKSkhPU5VTEwpIHsKLSAJCQkJTE1fREJHKCJ1c2luZyBQUyAl cFxuIiwqbXlfcHMpOwotQEAgLTgwNCw3ICs4MDUsNyBAQCBpbnQgc3FsX2FwaV91cGRhdGUoc3Ry dWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBjSlNPTiAqSmNvbHMsCi0gCWRi X29wX3QgKnVvcHMsICpvcHM7Ci0gCWRiX3ZhbF90ICp1dmFscywgKnZhbHM7Ci0gCWludCBuaywg dW5rOwotLQlzdHIgKmlkOwotKwlzdHIgKmlkID0gTlVMTDsKLSAJZGJfcHNfdCAqbXlfcHM7Ci0g Ci0gCS8qIGNvbnZlcnQgSlNPTiB0byBDT0xzICovCi1AQCAtODM4LDcgKzgzOSw4IEBAIGludCBz cWxfYXBpX3VwZGF0ZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIGNK U09OICpKY29scywKLSAJKGtleXMgJiYgKGlkPV9xdWVyeV9pZF9hZGRfZmlsdGVyKGtleXMsb3Bz LG5rKSk9PU5VTEwpICkgewotIAkJTE1fREJHKCJub3QgdXNpbmcgUFNcbiIpOwotIAl9IGVsc2Ug ewotLQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0rCQlpZihp ZCkKLSsJCQlMTV9EQkcoIlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSAJCWlm IChwc19tYXAhPU5VTEwgfHwgKHBzX21hcD1tYXBfY3JlYXRlKDApKSE9TlVMTCkgewotIAkJCWlm ICggKG15X3BzPW1hcF9nZXQoIHBzX21hcCwgKmlkICkpIT1OVUxMKSB7Ci0gCQkJCUxNX0RCRygi dXNpbmcgUFMgJXBcbiIsKm15X3BzKTsKLUBAIC04NjgsNyArODcwLDcgQEAgaW50IHNxbF9hcGlf aW5zZXJ0KHN0cnVjdCBkYl91cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywgc3RyICp0YWJs ZSwKLSAJZGJfb3BfdCAqdW9wczsKLSAJZGJfdmFsX3QgKnV2YWxzOwotIAlpbnQgdW5rOwotLQlz dHIgKmlkOwotKwlzdHIgKmlkID0gTlVMTDsKLSAJZGJfcHNfdCAqbXlfcHM7Ci0gCi0gCS8qIGNv bnZlcnQgSlNPTiB0byBDT0xzICovCi1AQCAtODg4LDcgKzg5MCw4IEBAIGludCBzcWxfYXBpX2lu c2VydChzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAqdGFibGUs Ci0gCShpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcih1a2V5cyx1b3BzLHVuaykpPT1OVUxMICkgewot IAkJTE1fREJHKCJub3QgdXNpbmcgUFNcbiIpOwotIAl9IGVsc2UgewotLQkJTE1fREJHKCJQUyBp ZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0rCQlpZihpZCkKLSsJCQlMTV9EQkcoIlBT IGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSAJCWlmIChwc19tYXAhPU5VTEwgfHwg KHBzX21hcD1tYXBfY3JlYXRlKDApKSE9TlVMTCkgewotIAkJCWlmICggKG15X3BzPW1hcF9nZXQo IHBzX21hcCwgKmlkICkpIT1OVUxMKSB7Ci0gCQkJCUxNX0RCRygidXNpbmcgUFMgJXBcbiIsKm15 X3BzKTsKLUBAIC05MTgsNyArOTIxLDcgQEAgaW50IHNxbF9hcGlfZGVsZXRlKHN0cnVjdCBkYl91 cmwgKnVybCwgc3RydWN0IHNpcF9tc2cqIG1zZywKLSAJZGJfb3BfdCAqb3BzOwotIAlkYl92YWxf dCAqdmFsczsKLSAJaW50IG5rOwotLQlzdHIgKmlkOwotKwlzdHIgKmlkID0gTlVMTDsKLSAJZGJf cHNfdCAqbXlfcHM7Ci0gCi0gCS8qIGNvbnZlcnQgSlNPTiB0byBrZXlzICovCi1AQCAtOTQ1LDcg Kzk0OCw4IEBAIGludCBzcWxfYXBpX2RlbGV0ZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBz aXBfbXNnKiBtc2csCi0gCShrZXlzICYmIChpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcihrZXlzLG9w cyxuaykpPT1OVUxMKSApIHsKLSAJCUxNX0RCRygibm90IHVzaW5nIFBTXG4iKTsKLSAJfSBlbHNl IHsKLS0JCUxNX0RCRygiUFMgaWQgaXMgPCUuKnM+XG4iLGlkLT5sZW4saWQtPnMpOwotKwkJaWYo aWQpCi0rCQkJTE1fREJHKCJQUyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0gCQlp ZiAocHNfbWFwIT1OVUxMIHx8IChwc19tYXA9bWFwX2NyZWF0ZSgwKSkhPU5VTEwpIHsKLSAJCQlp ZiAoIChteV9wcz1tYXBfZ2V0KCBwc19tYXAsICppZCApKSE9TlVMTCkgewotIAkJCQlMTV9EQkco InVzaW5nIFBTICVwXG4iLCpteV9wcyk7Ci1AQCAtOTc1LDcgKzk3OSw3IEBAIGludCBzcWxfYXBp X3JlcGxhY2Uoc3RydWN0IGRiX3VybCAqdXJsLCBzdHJ1Y3Qgc2lwX21zZyogbXNnLCBzdHIgKnRh YmxlLAotIAlkYl9vcF90ICp1b3BzOwotIAlkYl92YWxfdCAqdXZhbHM7Ci0gCWludCB1bms7Ci0t CXN0ciAqaWQ7Ci0rCXN0ciAqaWQgPSBOVUxMOwotIAlkYl9wc190ICpteV9wczsKLSAKLSAJLyog Y29udmVydCBKU09OIHRvIENPTHMgKi8KLUBAIC05OTUsNyArOTk5LDggQEAgaW50IHNxbF9hcGlf cmVwbGFjZShzdHJ1Y3QgZGJfdXJsICp1cmwsIHN0cnVjdCBzaXBfbXNnKiBtc2csIHN0ciAqdGFi bGUsCi0gCShpZD1fcXVlcnlfaWRfYWRkX2ZpbHRlcih1a2V5cyx1b3BzLHVuaykpPT1OVUxMICkg ewotIAkJTE1fREJHKCJub3QgdXNpbmcgUFNcbiIpOwotIAl9IGVsc2UgewotLQkJTE1fREJHKCJQ UyBpZCBpcyA8JS4qcz5cbiIsaWQtPmxlbixpZC0+cyk7Ci0rCQlpZihpZCkKLSsJCQlMTV9EQkco IlBTIGlkIGlzIDwlLipzPlxuIixpZC0+bGVuLGlkLT5zKTsKLSAJCWlmIChwc19tYXAhPU5VTEwg fHwgKHBzX21hcD1tYXBfY3JlYXRlKDApKSE9TlVMTCkgewotIAkJCWlmICggKG15X3BzPW1hcF9n ZXQoIHBzX21hcCwgKmlkICkpIT1OVUxMKSB7Ci0gCQkJCUxNX0RCRygidXNpbmcgUFMgJXBcbiIs Km15X3BzKTsKCmRpZmYgLS1naXQgYS9vcGVuc2lwcy0wMDA3LUZpeC1DOTAtc3R5bGUtZGVjbGFy YXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2ggYi9vcGVuc2lwcy0wMDA3LUZp eC1DOTAtc3R5bGUtZGVjbGFyYXRpb24td2FybmluZ3MtaW4tc25tcHN0YXRzLW1vZHUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY4OWU0ZQotLS0gL2Rldi9udWxs CisrKyBiL29wZW5zaXBzLTAwMDctRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1p bi1zbm1wc3RhdHMtbW9kdS5wYXRjaApAQCAtMCwwICsxLDM4MSBAQAorRnJvbSAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KK0RhdGU6IFNhdCwgMzEg SmFuIDIwMjYgMTU6MTE6MjAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IEM5MC1zdHlsZSBk ZWNsYXJhdGlvbiB3YXJuaW5ncyBpbiBzbm1wc3RhdHMgbW9kdWxlCisKK0J1aWxkIGZhaWxzIHdp dGggYC1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVtZW50YCAoZW5mb3JjZWQgYnkKK25l dC1zbm1wIHBrZy1jb25maWcpIGR1ZSB0byB2YXJpYWJsZXMgZGVjbGFyZWQgYWZ0ZXIgZXhlY3V0 YWJsZQorc3RhdGVtZW50czoKKworYGBgCitvcGVuc2VyT2JqZWN0cy5jOjYxOTo5OiBlcnJvcjog SVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNs YXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCisgIDYxOSB8ICAgICAgICAgaW50IG5ld190aHJlc2hv bGQgPSAoaW50KShsb25nKShpbnQgKil2YWw7CisKK29wZW5zZXJTSVBDb21tb25PYmplY3RzLmM6 MjQ0OjE3OiBlcnJvcjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29k ZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCisgIDI0NCB8ICAgICAgICAg ICAgICAgICBjaGFyICpvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsK Kworb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYzo0NzU6OTogZXJyb3I6IElTTyBDOTAgZm9yYmlk cyBtaXhlZCBkZWNsYXJhdGlvbnMgYW5kIGNvZGUgWy1XZXJyb3I9ZGVjbGFyYXRpb24tYWZ0ZXIt c3RhdGVtZW50XQorICA0NzUgfCAgICAgICAgIGNoYXIgKnN0ckVudGl0eVR5cGUgPSAoY2hhciAq KXZhbDsKKworb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jOjI2Njo5OiBlcnJvcjogSVNPIEM5MCBm b3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNsYXJhdGlvbi1h ZnRlci1zdGF0ZW1lbnRdCisgIDI2NiB8ICAgICAgICAgc3RhdGljIGNoYXIgKmRlZmF1bHRVc2Vy ID0gIkRlZmF1bHRVc2VyIjsKKworb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jOjM2MTo5OiBlcnJv cjogSVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1k ZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCisgIDM2MSB8ICAgICAgICAgbmV0c25tcF92YXJp YWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7CitgYGAKKworVGhlIG5ldC1zbm1w IGxpYnJhcnkncyBwa2ctY29uZmlnIGFkZHMKK2AtV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0 YXRlbWVudGAgdG8gQ0ZMQUdTLCBlbmZvcmNpbmcgQzkwLXN0eWxlCitkZWNsYXJhdGlvbiBvcmRl cmluZyAoYWxsIGRlY2xhcmF0aW9ucyBiZWZvcmUgc3RhdGVtZW50cykuCisKK1doaWxlIE9wZW5T SVBTIGFkaGVyZXMgdG8gdGhlIEM5OSBzdGFuZGFyZCAod2hpY2ggYWxsb3dzIG1peGVkCitkZWNs YXJhdGlvbnMgYW5kIGNvZGUpLCB0aGUgbmV0LXNubXAgbGlicmFyeSBjb3VsZCByZXF1aXJlIEM5 MC1zdHlsZQorZGVjbGFyYXRpb25zIGZvciBtb2R1bGVzIHRoYXQgbGluayBhZ2FpbnN0IGl0LiBG b2xsb3dpbmcgdGhpcyBzdHlsZQorZG9lc24ndCBodXJ0IEM5OSBjb21wYXRpYmlsaXR5IGFuZCBp bXByb3ZlcyBjb2RlIHBvcnRhYmlsaXR5LmAKKworU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5r b3YgPGxlbWVua292QGdtYWlsLmNvbT4KK0Fzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykg PGh0dHBzOi8vY2xhdWRlLmFpPgorCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3Bl bnNlck9iamVjdHMuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKK2luZGV4 IDE4MGI2MmRkYTcuLjkwOWRiNGM4MGIgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9v cGVuc2VyT2JqZWN0cy5jCisrKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5j CitAQCAtNjA1LDYgKzYwNSw4IEBAIGludCBoYW5kbGVfb3BlbnNlckRpYWxvZ0xpbWl0TWFqb3JB bGFybShuZXRzbm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAorIHN0YXRpYyBpbnQgc2V0X2lmX3Zh bGlkX3RocmVzaG9sZChtb2RwYXJhbV90IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqdmFyU3RyLAor IAlpbnQgKm5ld1ZhbCkKKyB7CisrCWludCBuZXdfdGhyZXNob2xkOworKworIAlpZiAodmFsPT0w KSB7CisgCQlMTV9FUlIoIiVzIGNhbGxlZCB3aXRoIGEgbnVsbCB2YWx1ZSFcbiIsIHZhclN0cik7 CisgCQlyZXR1cm4gLTE7CitAQCAtNjE2LDcgKzYxOCw3IEBAIHN0YXRpYyBpbnQgc2V0X2lmX3Zh bGlkX3RocmVzaG9sZChtb2RwYXJhbV90IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqdmFyU3RyLAor IAkJcmV0dXJuIC0xOworIAl9CisgCistCWludCBuZXdfdGhyZXNob2xkID0gKGludCkobG9uZyko aW50ICopdmFsOworKwluZXdfdGhyZXNob2xkID0gKGludCkobG9uZykoaW50ICopdmFsOworIAor IAlpZiAobmV3X3RocmVzaG9sZCA8IC0xKSB7CisgCQlMTV9FUlIoIiVzIGNhbGxlZCB3aXRoIGFu IGludmFsaWQgdGhyZXNob2xkPSVkIVxuIiwKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0 cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UENvbW1vbk9iamVjdHMuYworaW5kZXggZTM3YWI2ZWYyYS4uZjJkZGJhNWE3YSAxMDA2NDQKKy0t LSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMKKysrKyBiL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMKK0BAIC0yMjUsNiArMjI1 LDggQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2VydmljZVN0YXJ0VGltZShuZXRzbm1wX21pYl9o YW5kbGVyICpoYW5kbGVyLAorIAorIAlpbnQgZWxhcHNlZFRpbWUgPSAwOworIAljaGFyIGJ1ZmZl cltTTk1QR0VUX01BWF9CVUZGRVJdOworKwljaGFyICpvcGVuQnJhY2VQb3NpdGlvbiA9IE5VTEw7 CisrCWNoYXIgKmNsb3NlZEJyYWNlUG9zaXRpb24gPSBOVUxMOworIAorIAlGSUxFICp0aGVGaWxl ID0gZm9wZW4oU05NUEdFVF9URU1QX0ZJTEUsICJyIik7CisgCitAQCAtMjQxLDggKzI0Myw4IEBA IGludCBoYW5kbGVfb3BlbnNlclNJUFNlcnZpY2VTdGFydFRpbWUobmV0c25tcF9taWJfaGFuZGxl ciAqaGFuZGxlciwKKyAKKyAJCS8qIEZpbmQgdGhlIHBvc2l0aW9ucyBvZiAnKCcgYW5kICcpJyBz byB3ZSBjYW4gZXh0cmFjdCBvdXQgdGhlCisgCQkgKiB0aW1ldGlja3MgdmFsdWUuICovCistCQlj aGFyICpvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKKy0JCWNoYXIg KmNsb3NlZEJyYWNlUG9zaXRpb24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOworKwkJb3BlbkJyYWNl UG9zaXRpb24gICA9IHN0cmNocihidWZmZXIsICcoJyk7CisrCQljbG9zZWRCcmFjZVBvc2l0aW9u ID0gc3RyY2hyKGJ1ZmZlciwgJyknKTsKKyAKKyAJCS8qIE1ha2Ugc3VyZSB0aGF0IGJvdGggdGhl ICcoJyBhbmQgJyknIGV4aXN0IGluIHRoZSBmaWxlLCBhbmQKKyAJCSAqIHRoYXQgJygnIG9jY3Vy cyBlYXJsaWVyIHRoYW4gdGhlICcpJy4gIElmIGFsbCB0aGVzZQorQEAgLTQ2NCw2ICs0NjYsNyBA QCBpbnQgaGFuZGxlX29wZW5zZXJTSVBPdGhlcndpc2VEaXNjYXJkZWRNc2dzKG5ldHNubXBfbWli X2hhbmRsZXIgKmhhbmRsZXIsCisgICovCisgaW50IGhhbmRsZVNpcEVudGl0eVR5cGUoIG1vZHBh cmFtX3QgdHlwZSwgdm9pZCogdmFsKQorIHsKKysJY2hhciAqc3RyRW50aXR5VHlwZSA9IE5VTEw7 CisgCisgCS8qIEJ5IGRlZmF1bHQgd2Ugc3RhcnQgb2ZmIGFzICJvdGhlciIuICovCisgCXN0YXRp YyBjaGFyIGZpcnN0VGltZSA9IDE7CitAQCAtNDcyLDcgKzQ3NSw3IEBAIGludCBoYW5kbGVTaXBF bnRpdHlUeXBlKCBtb2RwYXJhbV90IHR5cGUsIHZvaWQqIHZhbCkKKyAJCXJldHVybiAtMTsKKyAJ fQorIAorLQljaGFyICpzdHJFbnRpdHlUeXBlID0gKGNoYXIgKil2YWw7CisrCXN0ckVudGl0eVR5 cGUgPSAoY2hhciAqKXZhbDsKKyAKKyAJLyogVGhpcyBpcyBvdXIgZmlyc3QgdGltZSB0aHJvdWdo IHRoaXMgZnVuY3Rpb24sIHNvIHdlIG5lZWQgdG8gY2hhbmdlCisgCSAqIG9wZW5zZXJFbnRpdHlU eXBlIGZyb20gaXRzIGRlZmF1bHQgdG8gMCwgYWxsb3dpbmcgb3VyIGJpdG1hc2tzIGJlbG93Citk aWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jIGIv bW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbnRhY3RUYWJsZS5jCitpbmRleCA3ZWRjMTIx MGNlLi4wMzU4ODAyOWM4IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UENvbnRhY3RUYWJsZS5jCisrKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFj dFRhYmxlLmMKK0BAIC0yNjEsMTAgKzI2MSwxMCBAQCB2b2lkIGRlbGV0ZUNvbnRhY3RSb3coaW50 IHVzZXJJbmRleCwgaW50IGNvbnRhY3RJbmRleCkKKyAgKi8KKyB2b2lkIGluaXRfb3BlbnNlclNJ UENvbnRhY3RUYWJsZSh2b2lkKQorIHsKKy0JaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQQ29u dGFjdFRhYmxlKCk7CistCisgCXN0YXRpYyBjaGFyICpkZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNl ciI7CisgCisrCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUENvbnRhY3RUYWJsZSgpOworKwor IAljcmVhdGVDb250YWN0Um93KDEsIDEsIGRlZmF1bHRVc2VyLCBOVUxMKTsKKyB9CisgCitAQCAt MzU0LDE0ICszNTQsMTYgQEAgaW50IG9wZW5zZXJTSVBDb250YWN0VGFibGVfZ2V0X3ZhbHVlKAor IAljaGFyICAgICAgICpyZXRyaWV2ZWRFeHBpcnk7CisgCXN0cnVjdCB0bSAgdGltZVZhbHVlOwor IAorKwluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IE5VTEw7CisrCW9wZW5zZXJTSVBDb250 YWN0VGFibGVfY29udGV4dCAqY29udGV4dCA9IE5VTEw7CisrCisgCS8qIEZpcnN0IHRoaW5ncyBm aXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgorIAkg KiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNo ZXN0IGRhdGEuICovCisgCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKKyAKKy0JbmV0c25t cF92YXJpYWJsZV9saXN0ICp2YXIgPSByZXF1ZXN0LT5yZXF1ZXN0dmI7CisrCXZhciA9IHJlcXVl c3QtPnJlcXVlc3R2YjsKKyAKKy0Jb3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICpjb250 ZXh0ID0KKy0JCShvcGVuc2VyU0lQQ29udGFjdFRhYmxlX2NvbnRleHQgKilpdGVtOworKwljb250 ZXh0ID0gKG9wZW5zZXJTSVBDb250YWN0VGFibGVfY29udGV4dCAqKWl0ZW07CisgCisgCXN3aXRj aCh0YWJsZV9pbmZvLT5jb2xudW0pCisgCXsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0 cy9vcGVuc2VyU0lQUG9ydFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUG9y dFRhYmxlLmMKK2luZGV4IGExMDc1ODI3M2EuLjNhMDNiNzJiMjEgMTAwNjQ0CistLS0gYS9tb2R1 bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUG9ydFRhYmxlLmMKKysrKyBiL21vZHVsZXMvc25tcHN0 YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYworQEAgLTEwNCwxOSArMTA0LDE3IEBAIG9wZW5zZXJT SVBQb3J0VGFibGVfY29udGV4dCAqZ2V0Um93KGludCBpcFR5cGUsIHVuc2lnbmVkIGludCAqaXBB ZGRyZXNzKQorIHsKKyAJaW50IGxlbmd0aE9mT0lEOworIAlvaWQgKmN1cnJlbnRPSURJbmRleCA9 IGNyZWF0ZUluZGV4KGlwVHlwZSwgaXBBZGRyZXNzLCAmbGVuZ3RoT2ZPSUQpOworKwluZXRzbm1w X2luZGV4IHRoZUluZGV4OworKwlvcGVuc2VyU0lQUG9ydFRhYmxlX2NvbnRleHQgKnJvd1RvUmV0 dXJuID0gTlVMTDsKKyAKKyAJaWYgKGN1cnJlbnRPSURJbmRleCA9PSBOVUxMKQorIAl7CisgCQly ZXR1cm4gTlVMTDsKKyAJfQorIAorLQluZXRzbm1wX2luZGV4IHRoZUluZGV4OworLQorIAl0aGVJ bmRleC5vaWRzID0gY3VycmVudE9JREluZGV4OworIAl0aGVJbmRleC5sZW4gID0gbGVuZ3RoT2ZP SUQ7CisgCistCW9wZW5zZXJTSVBQb3J0VGFibGVfY29udGV4dCAqcm93VG9SZXR1cm47CistCisg CS8qIExldHMgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIHJvdy4gKi8KKyAJ cm93VG9SZXR1cm4gPSBDT05UQUlORVJfRklORChjYi5jb250YWluZXIsICZ0aGVJbmRleCk7Cisg CitAQCAtMjE4LDggKzIxNiw2IEBAIHZvaWQgaW5pdF9vcGVuc2VyU0lQUG9ydFRhYmxlKHZvaWQp CisgeworIAlpbnQgY3VyU05NUEluZGV4ID0gMDsKKyAKKy0JaW5pdGlhbGl6ZV90YWJsZV9vcGVu c2VyU0lQUG9ydFRhYmxlKCk7CistCisgCXVuc2lnbmVkIGludCAqVURQTGlzdCA9IE5VTEw7Cisg CXVuc2lnbmVkIGludCAqVENQTGlzdCA9IE5VTEw7CisgCXVuc2lnbmVkIGludCAqVExTTGlzdCA9 IE5VTEw7CitAQCAtMjI4LDYgKzIyNCw4IEBAIHZvaWQgaW5pdF9vcGVuc2VyU0lQUG9ydFRhYmxl KHZvaWQpCisgCWludCBudW1UQ1BTb2NrZXRzOworIAlpbnQgbnVtVExTU29ja2V0czsKKyAKKysJ aW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUG9ydFRhYmxlKCk7CisrCisgCS8qIFJldHJpZXZl IHRoZSBsaXN0IG9mIHRoZSBudW1iZXIgb2YgVURQIGFuZCBUQ1Agc29ja2V0cy4gKi8KKyAJbnVt VURQU29ja2V0cyA9IGdldF9zb2NrZXRfbGlzdF9mcm9tX3Byb3RvKCZVRFBMaXN0LCBQUk9UT19V RFApOworIAludW1UQ1BTb2NrZXRzID0gZ2V0X3NvY2tldF9saXN0X2Zyb21fcHJvdG8oJlRDUExp c3QsIFBST1RPX1RDUCk7CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJ UFJlZ1VzZXJMb29rdXBUYWJsZS5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1Vz ZXJMb29rdXBUYWJsZS5jCitpbmRleCAzMjRkZjYxOGZkLi5hNTRiNTgzNzUyIDEwMDY0NAorLS0t IGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZS5jCisrKysg Yi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKK0BAIC01 MTQsMjMgKzUxNCwyMCBAQCB2b2lkIG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfc2V0X3Jl c2VydmUyKCBuZXRzbm1wX3JlcXVlc3RfZ3JvdXAgKnJnICkKKyAgKi8KKyB2b2lkIG9wZW5zZXJT SVBSZWdVc2VyTG9va3VwVGFibGVfc2V0X2FjdGlvbiggbmV0c25tcF9yZXF1ZXN0X2dyb3VwICpy ZyApCisgeworLQkvKiBGaXJzdCB0aGluZ3MgZmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUg aW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KKy0JICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQu IFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVzaGVzdCBkYXRhLiAqLworLQljb25zdW1lSW50ZXJw cm9jZXNzQnVmZmVyKCk7CistCisgCWFvclRvSW5kZXhTdHJ1Y3RfdCAqaGFzaFJlY29yZDsKKy0K KyAJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXI7CisrCW5ldHNubXBfcmVxdWVzdF9ncm91cF9p dGVtICpjdXJyZW50OworKwlpbnQgcm93X2VyciA9IDA7CisrCW9wZW5zZXJTSVBSZWdVc2VyTG9v a3VwVGFibGVfY29udGV4dCAqcm93X2N0eCA9IE5VTEw7CisrCW9wZW5zZXJTSVBSZWdVc2VyTG9v a3VwVGFibGVfY29udGV4dCAqdW5kb19jdHggPSBOVUxMOworIAorLQlvcGVuc2VyU0lQUmVnVXNl ckxvb2t1cFRhYmxlX2NvbnRleHQgKnJvd19jdHggPQorLQkJKG9wZW5zZXJTSVBSZWdVc2VyTG9v a3VwVGFibGVfY29udGV4dCAqKXJnLT5leGlzdGluZ19yb3c7CistCistCW9wZW5zZXJTSVBSZWdV c2VyTG9va3VwVGFibGVfY29udGV4dCAqdW5kb19jdHggPQorLQkJKG9wZW5zZXJTSVBSZWdVc2Vy TG9va3VwVGFibGVfY29udGV4dCAqKXJnLT51bmRvX2luZm87CisrCS8qIEZpcnN0IHRoaW5ncyBm aXJzdCwgd2UgbmVlZCB0byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgorKwkg KiBjYXNlIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNo ZXN0IGRhdGEuICovCisrCWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKKyAKKy0JbmV0c25t cF9yZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7CisrCXJvd19jdHggPSAob3BlbnNlclNJUFJl Z1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4aXN0aW5nX3JvdzsKKyAKKy0JaW50CQkJ cm93X2VyciA9IDA7CisrCXVuZG9fY3R4ID0gKG9wZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVf Y29udGV4dCAqKXJnLT51bmRvX2luZm87CisgCisgCS8qIENvcHkgdGhlIGFjdHVhbCBkYXRhIHRv IHRoZSByb3cuICovCisgCWZvciggY3VycmVudCA9IHJnLT5saXN0OyBjdXJyZW50OyBjdXJyZW50 ID0gY3VycmVudC0+bmV4dCApIHsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVu c2VyU0lQUmVnVXNlclRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNl clRhYmxlLmMKK2luZGV4IDQzYjE0Y2RlYjcuLjljZjAyOWRmOWQgMTAwNjQ0CistLS0gYS9tb2R1 bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlclRhYmxlLmMKKysrKyBiL21vZHVsZXMvc25t cHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYworQEAgLTIyNSwxNSArMjI1LDE0IEBAIHZv aWQgdXBkYXRlVXNlcihjaGFyICp1c2VyTmFtZSkKKyAgKiBSZXR1cm5zOiBUaGUgcm93cyB1c2Vy SW5kZXggb24gc3VjY2VzcywgYW5kIDAgb3RoZXJ3aXNlLiAqLworIGludCBjcmVhdGVSZWdVc2Vy Um93KGNoYXIgKnN0cmluZ1RvUmVnaXN0ZXIpCisgeworLQlpbnQgc3RhdGljIGluZGV4ID0gMDsK Ky0KKy0JaW5kZXgrKzsKKy0KKyAJb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICp0aGVS b3c7CistCisgCW9pZCAgKk9JREluZGV4OworIAlpbnQgIHN0cmluZ0xlbmd0aDsKKyAKKysJaW50 IHN0YXRpYyBpbmRleCA9IDA7CisrCisrCWluZGV4Kys7CisrCisgCXRoZVJvdyA9IFNOTVBfTUFM TE9DX1RZUEVERUYob3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0KTsKKyAKKyAJaWYgKHRo ZVJvdyA9PSBOVUxMKSB7CitAQCAtMjgwLDEyICsyNzksMTIgQEAgaW50IGNyZWF0ZVJlZ1VzZXJS b3coY2hhciAqc3RyaW5nVG9SZWdpc3RlcikKKyAvKiBJbml0aWFsaXplcyB0aGUgb3BlbnNlclNJ UFJlZ1VzZXJUYWJsZSBtb2R1bGUuICAqLworIHZvaWQgaW5pdF9vcGVuc2VyU0lQUmVnVXNlclRh YmxlKHZvaWQpCisgeworLQkvKiBSZWdpc3RlciB0aGlzIHRhYmxlIHdpdGggdGhlIG1hc3RlciBh Z2VudCAqLworLQlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBSZWdVc2VyVGFibGUoKTsKKy0K KyAJLyogV2UgbmVlZCB0byBjcmVhdGUgYSBkZWZhdWx0IHJvdywgc28gY3JlYXRlIERlZmF1bHRV c2VyICovCisgCXN0YXRpYyBjaGFyICpkZWZhdWx0VXNlciA9ICJEZWZhdWx0VXNlciI7CisgCisr CS8qIFJlZ2lzdGVyIHRoaXMgdGFibGUgd2l0aCB0aGUgbWFzdGVyIGFnZW50ICovCisrCWluaXRp YWxpemVfdGFibGVfb3BlbnNlclNJUFJlZ1VzZXJUYWJsZSgpOworKworIAljcmVhdGVSZWdVc2Vy Um93KGRlZmF1bHRVc2VyKTsKKyB9CisgCitAQCAtMzUwLDE0ICszNDksMTYgQEAgaW50IG9wZW5z ZXJTSVBSZWdVc2VyVGFibGVfZ2V0X3ZhbHVlKAorIAkJbmV0c25tcF9pbmRleCAqaXRlbSwKKyAJ CW5ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvICp0YWJsZV9pbmZvICkKKyB7CisrCW5ldHNubXBf dmFyaWFibGVfbGlzdCAqdmFyID0gTlVMTDsKKysJb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250 ZXh0ICpjb250ZXh0ID0gTlVMTDsKKysKKyAJLyogRmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVk IHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBidWZmZXIsIGluCisgCSAqIGNhc2Ugc29tZXRo aW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJldHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8K KyAJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigpOworIAorLQluZXRzbm1wX3ZhcmlhYmxlX2xp c3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKKysJdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZi OworIAorLQlvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKmNvbnRleHQgPQorLQkJKG9w ZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqKWl0ZW07CisrCWNvbnRleHQgPSAob3BlbnNl clNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICopaXRlbTsKKyAKKyAJc3dpdGNoKHRhYmxlX2luZm8t PmNvbG51bSkKKyAJeworZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBT dGF0dXNDb2Rlc1RhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29k ZXNUYWJsZS5jCitpbmRleCAyYjM5NmM2OTg1Li43OWYzYTEyOWEzIDEwMDY0NAorLS0tIGEvbW9k dWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYworKysrIGIvbW9kdWxl cy9zbm1wc3RhdHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYworQEAgLTMxMCw2ICszMTAs NyBAQCBpbnQgb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGVfY2FuX2RlbGV0ZSgKKyBvcGVuc2Vy U0lQU3RhdHVzQ29kZXNUYWJsZV9jb250ZXh0ICoKKyBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJs ZV9jcmVhdGVfcm93KCBuZXRzbm1wX2luZGV4KiBoZHIpCisgeworKwlpbnQgY29kZUluZGV4Owor IAlzdGF0X3ZhciAqaW5fc3RhdHVzX2NvZGU7CisgCXN0YXRfdmFyICpvdXRfc3RhdHVzX2NvZGU7 CisgCitAQCAtMzM3LDcgKzMzOCw3IEBAIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NyZWF0 ZV9yb3coIG5ldHNubXBfaW5kZXgqIGhkcikKKyAJLyogUmV0cmlldmUgdGhlIGluZGV4IGZvciB0 aGUgc3RhdHVzIGNvZGUsIGFuZCB0aGVuIGFzc2lnbiB0aGUgc3RhcnRpbmcKKyAJICogdmFsdWVz LiAgVGhlIHN0YXJ0aW5nIHZhbHVlcyB3aWxsIGJlIHVzZWQgdG8gY2FsY3VsYXRlIGRlbHRhcyBk dXJpbmcKKyAJICogdGhlIG5leHQgc25tcGdldC9zbm1wd2Fsay9zbm1wdGFibGUvZXRjLiAqLwor LQlpbnQgY29kZUluZGV4ID0gY3R4LT5vcGVuc2VyU0lQU3RhdHVzQ29kZVZhbHVlOworKwljb2Rl SW5kZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0dXNDb2RlVmFsdWU7CisgCisgCWN0eC0+c3RhcnRp bmdJblN0YXR1c0NvZGVWYWx1ZSAgPSAwOworIAljdHgtPnN0YXJ0aW5nT3V0U3RhdHVzQ29kZVZh bHVlID0gMDsKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMuYyBiL21v ZHVsZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCitpbmRleCA5NWJjMWMxZjNiLi41NzVjMGQxMDY4 IDEwMDY0NAorLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKKysrKyBiL21vZHVs ZXMvc25tcHN0YXRzL3NubXBzdGF0cy5jCitAQCAtMzQ2LDcgKzM0NiwxMiBAQCBzdGF0aWMgdm9p ZCBzaWdjaGxkX2hhbmRsZXIoaW50IHNpZ25hbCkKKyAgKi8KKyBzdGF0aWMgaW50IHNwYXduX3N5 c1VwVGltZV9jaGlsZCh2b2lkKQorIHsKKysJcGlkX3QgcmVzdWx0X3BpZDsKKysJaW50IHNubXBn ZXRfZmQ7CisrCWludCBsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoOworKwlpbnQgc25tcGdl dF9iaW5hcnlfbmFtZV9sZW5ndGg7CisgCXN0cnVjdCBzaWdhY3Rpb24gbmV3X3NpZ2NobGRfaGFu ZGxlcjsKKysJY2hhciAqYXJnc1s2XTsKKyAKKyAJY2hhciAqbG9jYWxfcGF0aF90b19zbm1wZ2V0 ID0gIi91c3IvYmluLyI7CisgCWNoYXIgKnNubXBnZXRfYmluYXJ5X25hbWUgICA9ICIvc25tcGdl dCI7CitAQCAtMzYyLDcgKzM2Nyw3IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxk KHZvaWQpCisgCW5ld19zaWdjaGxkX2hhbmRsZXIuc2FfaGFuZGxlciA9IHNpZ2NobGRfaGFuZGxl cjsKKyAJc2lnYWN0aW9uKFNJR0NITEQsICZuZXdfc2lnY2hsZF9oYW5kbGVyLCAmb2xkX3NpZ2No bGRfaGFuZGxlcik7CisgCistCXBpZF90IHJlc3VsdF9waWQgPSBmb3JrKCk7CisrCXJlc3VsdF9w aWQgPSBmb3JrKCk7CisgCisgCWlmIChyZXN1bHRfcGlkIDwgMCkgeworIAkJTE1fRVJSKCJmYWls ZWQgdG8gbm90IHNwYXduIGFuIGFnZW50IHRvIGNoZWNrIHN5c1VwVGltZVxuIik7CitAQCAtMzgw LDcgKzM4NSw3IEBAIHN0YXRpYyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCisgCisg CS8qIElmIHdlIGFyZSBoZXJlLCB0aGVuIHdlIGFyZSB0aGUgY2hpbGQgcHJvY2Vzcy4gIExldHMg c2V0IHVwIHRoZSBmaWxlCisgCSAqIGRlc2NyaXB0b3JzIHNvIHdlIGNhbiBjYXB0dXJlIHRoZSBv dXRwdXQgb2Ygc25tcGdldC4gKi8KKy0JaW50IHNubXBnZXRfZmQgPQorKwlzbm1wZ2V0X2ZkID0K KyAJCW9wZW4oU05NUEdFVF9URU1QX0ZJTEUsIE9fQ1JFQVR8T19UUlVOQ3xPX1JEV1IsCisgCQkJ CVNfSVJVU1J8U19JV1VTUnxTX0lSR1JQfFNfSVJPVEgpOworIAorQEAgLTQwMSw4ICs0MDYsMTIg QEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyAJCQkJIiAgRGVmYXVs dGluZyB0byAlc1xuIiwJc25tcF9jb21tdW5pdHlfc3RyaW5nKTsKKyAJfQorIAorLQljaGFyICph cmdzW10gPSB7Ii1PdiIsICItYyIsICBzbm1wX2NvbW11bml0eV9zdHJpbmcsICJsb2NhbGhvc3Qi LAorLQkJU1lTVVBUSU1FX09JRCwgKGNoYXIgKikgMH07CisrCWFyZ3NbMF0gPSAiLU92IjsKKysJ YXJnc1sxXSA9ICItYyI7CisrCWFyZ3NbMl0gPSBzbm1wX2NvbW11bml0eV9zdHJpbmc7CisrCWFy Z3NbM10gPSAibG9jYWxob3N0IjsKKysJYXJnc1s0XSA9IFNZU1VQVElNRV9PSUQ7CisrCWFyZ3Nb NV0gPSAoY2hhciAqKTA7CisgCisgCS8qIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgcGF0aCB0byBzbm1w Z2V0LCBzbyB3ZSBjYW4gcmV0cmlldmUgdGhlCisgCSAqIHN5c1VwVGltZS4gKi8KK0BAIC00MTYs OCArNDI1LDggQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hpbGQodm9pZCkKKyAJCWxv Y2FsX3BhdGhfdG9fc25tcGdldCA9IHNubXBnZXRfcGF0aDsKKyAJfQorIAorLQlpbnQgbG9jYWxf cGF0aF90b19zbm1wZ2V0X2xlbmd0aCA9IHN0cmxlbihsb2NhbF9wYXRoX3RvX3NubXBnZXQpOwor LQlpbnQgc25tcGdldF9iaW5hcnlfbmFtZV9sZW5ndGggICA9IHN0cmxlbihzbm1wZ2V0X2JpbmFy eV9uYW1lKTsKKysJbG9jYWxfcGF0aF90b19zbm1wZ2V0X2xlbmd0aCA9IHN0cmxlbihsb2NhbF9w YXRoX3RvX3NubXBnZXQpOworKwlzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aCAgID0gc3RybGVu KHNubXBnZXRfYmluYXJ5X25hbWUpOworIAorIAkvKiBBbGxvY2F0ZSBlbm91Z2ggbWVtb3J5IHRv IGhvbGQgdGhlIHBhdGgsIHRoZSBiaW5hcnkgbmFtZSwgYW5kIHRoZQorIAkgKiBudWxsIGNoYXJh Y3Rlci4gIFdlIGRvbid0IHVzZSBwa2dfbWVtb3J5IGhlcmUuICovCitkaWZmIC0tZ2l0IGEvbW9k dWxlcy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMgYi9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMu YworaW5kZXggZGZjMDk3OGI3NC4uMmY3ZWQ5YTMwNyAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc25t cHN0YXRzL3V0aWxpdGllcy5jCisrKysgYi9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYwor QEAgLTcyLDEzICs3MiwxMyBAQCBpbnQgc3RyaW5nSGFuZGxlclNhbml0eUNoZWNrKCBtb2RwYXJh bV90IHR5cGUsIHZvaWQgKnZhbCwgY2hhciAqcGFyYW1ldGVyTmFtZSkKKyBpbnQgZ2V0X3N0YXRp c3RpYyhjaGFyICpzdGF0TmFtZSkKKyB7CisgCWludCByZXN1bHQgPSAwOworLQorKwlzdGF0X3Zh ciAqdGhlVmFyID0gTlVMTDsKKyAJc3RyIHRoZVN0cjsKKyAKKyAJdGhlU3RyLnMgICA9IHN0YXRO YW1lOworIAl0aGVTdHIubGVuID0gc3RybGVuKHN0YXROYW1lKTsKKyAKKy0Jc3RhdF92YXIgKnRo ZVZhciA9IGdldF9zdGF0KCZ0aGVTdHIpOworKwl0aGVWYXIgPSBnZXRfc3RhdCgmdGhlU3RyKTsK KyAKKyAJaWYgKHRoZVZhcj09MCkgeworIAkJTE1fSU5GTygiZmFpbGVkIHRvIHJldHJpZXZlIHN0 YXRpc3RpY3MgZm9yICVzXG4iLCBzdGF0TmFtZSk7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAw Ny1GaXgtY29uc3QtY29ycmVjdG5lc3Mtd2FybmluZ3MtaW4tSFRUUC1hbmQtRnJlZVNXSVRDLnBh dGNoIGIvb3BlbnNpcHMtMDAwNy1GaXgtY29uc3QtY29ycmVjdG5lc3Mtd2FybmluZ3MtaW4tSFRU UC1hbmQtRnJlZVNXSVRDLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWVk NTNkLi4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMDctRml4LWNvbnN0LWNvcnJlY3RuZXNzLXdh cm5pbmdzLWluLUhUVFAtYW5kLUZyZWVTV0lUQy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1 NiArMCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZA Z21haWwuY29tPgotRGF0ZTogU2F0LCAyMCBEZWMgMjAyNSAyMDoxNjo0OCArMDEwMAotU3ViamVj dDogW1BBVENIXSBGaXggY29uc3QtY29ycmVjdG5lc3Mgd2FybmluZ3MgaW4gSFRUUCBhbmQgRnJl ZVNXSVRDSCBFU0wKLSBjb2RlCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0K LUR1cmluZyBjb21waWxhdGlvbiB3aXRoIEdDQyAxNS4yLjEsIGNvbnN0LXF1YWxpZmllciB3YXJu aW5ncyBhcHBlYXIgaW4gbXVsdGlwbGUgbW9kdWxlczoKLWBgYAotbW9kdWxlcy9odHRwZC9odHRw ZF9wcm9jLmM6MzQ4OjI0OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzICdjb25zdCcgcXVh bGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZSBbLVdkaXNjYXJkZWQtcXVhbGlmaWVyc10K LSAgMzQ4IHwgICAgICAgICAgICAgICAgIGlmICggKHA9c3RyY2hyKHZhbHVlLCAnOycpKSE9TlVM TCApIHsKLSAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICBeCi0KLS4uLgotCi1tb2R1bGVz L2ZyZWVzd2l0Y2gvZXNsL3NyYy9lc2xfZXZlbnQuYzo0Mjg6MjQ6IHdhcm5pbmc6IGFzc2lnbm1l bnQgZGlzY2FyZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlIFst V2Rpc2NhcmRlZC1xdWFsaWZpZXJzXQotICA0MjggfCAgICAgICAgIGlmICgoaW5kZXhfcHRyID0g c3RyY2hyKGhlYWRlcl9uYW1lLCAnWycpKSkgewotICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIF4KLWBgYAotCi1JbiBgZXNsX2V2ZW50X2Jhc2VfYWRkX2hlYWRlcigpYCwgdGhlIGBoZWFk ZXJfbmFtZWAgcGFyYW1ldGVyIGlzIGBjb25zdCBjaGFyICpgLCBhbmQgYHN0cmNocigpYCByZXR1 cm5zIGBjb25zdCBjaGFyICpgIHdoZW4gZ2l2ZW4gYSBjb25zdCBpbnB1dC4gVGhlIGBpbmRleF9w dHJgIHZhcmlhYmxlIHdhcyBkZWNsYXJlZCBhcyBub24tY29uc3QgYGNoYXIgKmAsIGNhdXNpbmcg dGhlIHdhcm5pbmcuCi0KLSoqRml4OioqIENoYW5nZWQgdmFyaWFibGUgZGVjbGFyYXRpb24gZnJv bSBgY2hhciAqaW5kZXhfcHRyYCB0byBgY29uc3QgY2hhciAqaW5kZXhfcHRyYC4KLQotVGhpcyBp cyBzYWZlIGJlY2F1c2UgYGluZGV4X3B0cmAgaXMgb25seSB1c2VkIGZvciByZWFkaW5nL3BhcnNp bmcsIG5ldmVyIGZvciBtb2RpZmljYXRpb24uCi0KLVRoZSBgZ2V0Q29ubmVjdGlvbkhlYWRlcigp YCBmdW5jdGlvbiByZWNlaXZlcyBgdmFsdWVgIGFzIGBjb25zdCBjaGFyICpgLCBhbmQgYHN0cmNo cigpYCBwcmVzZXJ2ZXMgY29uc3QtbmVzcyBieSByZXR1cm5pbmcgYGNvbnN0IGNoYXIgKmAuIEhv d2V2ZXIsIHRoZSBjb2RlIHdhcyBhc3NpZ25pbmcgdGhpcyB0byBhIG5vbi1jb25zdCBgY2hhciAq cGAgYW5kIHRoZW4gbW9kaWZ5aW5nIHRoZSBzdHJpbmcgYnkgdGVtcG9yYXJpbHkgaW5zZXJ0aW5n IGEgbnVsbCB0ZXJtaW5hdG9yIHRvIHBhcnNlIHRoZSBNSU1FIHR5cGUuCi0KLSoqT3JpZ2luYWwg YXBwcm9hY2ggKHByb2JsZW1hdGljKToqKgotYGBgYwotY2hhciAqcCwgYms7Ci1pZiAoIChwPXN0 cmNocih2YWx1ZSwgJzsnKSkhPU5VTEwgKSB7Ci0gICAgd2hpbGUoIHA+dmFsdWUgJiYgKCoocC0x KT09JyAnIHx8ICoocC0xKT09J1x0JykgKSBwLS07Ci0gICAgYmsgPSAqcDsKLSAgICAqcCA9IDA7 ICAvLyBNb2RpZnkgY29uc3Qgc3RyaW5nIQotICAgIGlmIChzdHJjYXNlY21wKCJ0ZXh0L3htbCIs IHZhbHVlKSA9PSAwKSAuLi4KLSAgICAqcCA9IGJrOyAgLy8gUmVzdG9yZQotfQotYGBgCi0KLVRo aXMgdmlvbGF0ZXMgY29uc3QtY29ycmVjdG5lc3MgYnkgbW9kaWZ5aW5nIGEgY29uc3Qgc3RyaW5n LCB3aGljaCBpcyB1bmRlZmluZWQgYmVoYXZpb3IgZXZlbiBpZiBpdCBoYXBwZW5zIHRvIHdvcmsg aW4gcHJhY3RpY2UuCi0KLUNhbGN1bGF0ZSB0aGUgZWZmZWN0aXZlIGxlbmd0aCB3aXRob3V0IG1v ZGlmeWluZyB0aGUgc3RyaW5nLgotCi0qKk5ldyBhcHByb2FjaDoqKgotYGBgYwotY29uc3QgY2hh ciAqcCwgKmVuZDsKLWVuZCA9IHZhbHVlICsgc3RybGVuKHZhbHVlKTsgIC8vIGRlZmF1bHQgdG8g ZnVsbCBsZW5ndGgKLWlmICggKHA9c3RyY2hyKHZhbHVlLCAnOycpKSE9TlVMTCApIHsKLSAgICBl bmQgPSBwOwotICAgIHdoaWxlKCBlbmQ+dmFsdWUgJiYgKCooZW5kLTEpPT0nICcgfHwgKihlbmQt MSk9PSdcdCcpICkgZW5kLS07Ci19Ci1pZiAoc3RybmNhc2VjbXAoInRleHQveG1sIiwgdmFsdWUs IGVuZCAtIHZhbHVlKSA9PSAwKSAuLi4KLWBgYAotCi1UaGUgbGVuZ3RoIGNhbGN1bGF0aW9uIGBl bmQgLSB2YWx1ZWAgZW5zdXJlcyB3ZSBjb21wYXJlIGV4YWN0bHkgdGhlIE1JTUUgdHlwZSBwb3J0 aW9uLCBwcmV2ZW50aW5nIGZhbHNlIG1hdGNoZXMgd2l0aCBsb25nZXIgc3RyaW5ncy4KLQotKipF eGFtcGxlIG9mIHRoZSBwcm9ibGVtIHdlJ3JlIHByZXZlbnRpbmc6KioKLWBgYAotQ29udGVudC1U eXBlOiB0ZXh0L3htbGZvb2JhcjsgY2hhcnNldD11dGYtOAotYGBgCi0KLVdpdGhvdXQgdXNpbmcg dGhlIGNhbGN1bGF0ZWQgbGVuZ3RoOgotYGBgYwotLy8gQkFEOiBVc2luZyBhIGZpeGVkIGxlbmd0 aAotaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L3htbCIsIHZhbHVlLCA4KSA9PSAwKSAuLi4KLS8vIFRo aXMgd291bGQgbWF0Y2ggInRleHQveG1sZm9vYmFyIiBiZWNhdXNlIGZpcnN0IDggY2hhcnMgbWF0 Y2ghCi1gYGAKLQotV2l0aCBjYWxjdWxhdGVkIGxlbmd0aDoKLWBgYGMKLWVuZCA9IHN0cmNocih2 YWx1ZSwgJzsnKSAgLy8gUG9pbnRzIHRvICc7JwotLy8gQWZ0ZXIgdHJpbW1pbmc6IGVuZCAtIHZh bHVlID0gMTQgKGxlbmd0aCBvZiAidGV4dC94bWxmb29iYXIiKQotaWYgKHN0cm5jYXNlY21wKCJ0 ZXh0L3htbCIsIHZhbHVlLCAxNCkgPT0gMCkgLi4uCi0vLyDinJMgQ29ycmVjdGx5IHJlamVjdHM6 IHN0cm5jYXNlY21wIGNvbXBhcmVzIDggY2hhcnMgb2YgInRleHQveG1sIgotLy8gICB2cyAxNCBj aGFycyBuZWVkZWQsIGhpdHMgXDAgaW4gZmlyc3Qgc3RyaW5nLCByZXR1cm5zIG5vbi16ZXJvCi1g YGAKLQotVGhlIGtleSBpbnNpZ2h0OiBgc3RybmNhc2VjbXAoc3RyMSwgc3RyMiwgbilgIHdpbGwg cmV0dXJuIG5vbi16ZXJvIGlmIGVpdGhlciBzdHJpbmcgaXMgc2hvcnRlciB0aGFuIGBuYCBjaGFy YWN0ZXJzIChkdWUgdG8gbnVsbCB0ZXJtaW5hdG9yKSwgZW5zdXJpbmcgd2UgZG9uJ3QgbWF0Y2gg c3RyaW5ncyB0aGF0IGFyZSBsb25nZXIgdGhhbiBvdXIgZXhwZWN0ZWQgTUlNRSB0eXBlLgotCi0x LiBDaGFuZ2VkIGBjaGFyICpwLCBiaztgIHRvIGBjb25zdCBjaGFyICpwLCAqZW5kO2AKLTIuIFJl bW92ZWQgYGJrYCB2YXJpYWJsZSAobm8gbG9uZ2VyIG5lZWRlZCkKLTMuIENhbGN1bGF0ZSBgZW5k YCBwb2ludGVyIHRvIG1hcmsgdGhlIGVmZmVjdGl2ZSBlbmQgb2YgdGhlIE1JTUUgdHlwZQotNC4g VXBkYXRlZCBhbGwgTUlNRSB0eXBlIGNvbXBhcmlzb25zIHRvIHVzZSBgc3RybmNhc2VjbXAoKWAg d2l0aCBgZW5kIC0gdmFsdWVgIGxlbmd0aAotNS4gUmVtb3ZlZCBjb2RlIHRoYXQgbW9kaWZpZWQg YW5kIHJlc3RvcmVkIHRoZSBjb25zdCBzdHJpbmcKLQotQWZmZWN0ZWQgTUlNRSB0eXBlczoKLS0g YHRleHQveG1sYAotLSBgYXBwbGljYXRpb24vanNvbmAKLS0gYHRleHQvaHRtbGAKLS0gYHRleHQv cGxhaW5gCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5j b20+Ci1Bc3Npc3RlZC1ieTogQ2xhdWRlIChBbnRocm9waWMpIDxodHRwczovL2NsYXVkZS5haT4K LQotZGlmZiAtLWdpdCBhL21vZHVsZXMvZnJlZXN3aXRjaC9lc2wvc3JjL2VzbF9ldmVudC5jIGIv bW9kdWxlcy9mcmVlc3dpdGNoL2VzbC9zcmMvZXNsX2V2ZW50LmMKLWluZGV4IGExMmI2ZDYzN2Iu LmY2MjQ5NzM4ODQgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2ZyZWVzd2l0Y2gvZXNsL3NyYy9lc2xf ZXZlbnQuYwotKysrIGIvbW9kdWxlcy9mcmVlc3dpdGNoL2VzbC9zcmMvZXNsX2V2ZW50LmMKLUBA IC00MjUsNyArNDI1LDcgQEAgc3RhdGljIGVzbF9zdGF0dXNfdCBlc2xfZXZlbnRfYmFzZV9hZGRf aGVhZGVyKGVzbF9ldmVudF90ICpldmVudCwgZXNsX3N0YWNrX3Qgc3QKLSAJCWVzbF9ldmVudF9z ZXRfYm9keShldmVudCwgZGF0YSk7Ci0gCX0KLSAKLS0JaWYgKChpbmRleF9wdHIgPSBzdHJjaHIo aGVhZGVyX25hbWUsICdbJykpKSB7Ci0rCWlmICgoaW5kZXhfcHRyID0gKGNoYXIgKilzdHJjaHIo aGVhZGVyX25hbWUsICdbJykpKSB7Ci0gCQlpbmRleF9wdHIrKzsKLSAJCWluZGV4ID0gYXRvaShp bmRleF9wdHIpOwotIAkJcmVhbF9oZWFkZXJfbmFtZSA9IERVUChoZWFkZXJfbmFtZSk7Ci1kaWZm IC0tZ2l0IGEvbW9kdWxlcy9odHRwZC9odHRwZF9wcm9jLmMgYi9tb2R1bGVzL2h0dHBkL2h0dHBk X3Byb2MuYwotaW5kZXggNzA4ZTAwYjQwZC4uMjY0NmYwNDE0NyAxMDA2NDQKLS0tLSBhL21vZHVs ZXMvaHR0cGQvaHR0cGRfcHJvYy5jCi0rKysgYi9tb2R1bGVzL2h0dHBkL2h0dHBkX3Byb2MuYwot QEAgLTMyNiw3ICszMjYsNyBAQCBNSERfUkVUIGdldENvbm5lY3Rpb25IZWFkZXIodm9pZCAqY2xz LCBlbnVtIE1IRF9WYWx1ZUtpbmQga2luZCwKLSAJc3RydWN0IHBvc3RfcmVxdWVzdCAqcHIgPSAo c3RydWN0IHBvc3RfcmVxdWVzdCopY2xzOwotIAlzdHIgY29udGVudF9sZW5ndGg7Ci0gCXVuc2ln bmVkIGludCBsZW47Ci0tCWNoYXIgKnAsIGJrOwotKwljb25zdCBjaGFyICpwLCAqZW5kOwotIAot IAlpZiAoY2xzID09IE5VTEwpIHsKLSAJCUxNX0VSUigiVW5hYmxlIHRvIHN0b3JlIHJldHVybiBk YXRhXG4iKTsKLUBAIC0zNTAsMjQgKzM1MCwyNCBAQCBNSERfUkVUIGdldENvbm5lY3Rpb25IZWFk ZXIodm9pZCAqY2xzLCBlbnVtIE1IRF9WYWx1ZUtpbmQga2luZCwKLSAJaWYgKHN0cmNhc2VjbXAo IkNvbnRlbnQtVHlwZSIsIGtleSkgPT0gMCkgewotIAkJTE1fREJHKCJDb250ZW50LVR5cGU9JXNc biIsIHZhbHVlKTsKLSAJCS8qIGV4dHJhY3Qgb25seSB0aGUgbWltZSAqLwotKwkJZW5kID0gdmFs dWUgKyBzdHJsZW4odmFsdWUpOyAgLy8gZGVmYXVsdCB0byBmdWxsIGxlbmd0aAotIAkJaWYgKCAo cD1zdHJjaHIodmFsdWUsICc7JykpIT1OVUxMICkgewotLQkJCXdoaWxlKCBwPnZhbHVlICYmICgq KHAtMSk9PScgJyB8fCAqKHAtMSk9PSdcdCcpICkgcC0tOwotLQkJCWJrID0gKnA7Ci0tCQkJKnAg PSAwOwotKwkJCWVuZCA9IHA7Ci0rCQkJd2hpbGUoIGVuZD52YWx1ZSAmJiAoKihlbmQtMSk9PScg JyB8fCAqKGVuZC0xKT09J1x0JykgKSBlbmQtLTsKLSAJCX0KLS0JCWlmIChzdHJjYXNlY21wKCJ0 ZXh0L3htbCIsIHZhbHVlKSA9PSAwKQotKwkJbGVuID0gZW5kIC0gdmFsdWU7Ci0rCQlpZiAoc3Ry bmNhc2VjbXAoInRleHQveG1sIiwgdmFsdWUsIGVuZCAtIHZhbHVlKSA9PSAwKQotIAkJCXByLT5j b250ZW50X3R5cGUgPSBIVFRQRF9URVhUX1hNTF9DTlRfVFlQRTsKLS0JCWVsc2UgaWYgKHN0cm5j YXNlY21wKCJhcHBsaWNhdGlvbi9qc29uIiwgdmFsdWUsIDE2KSA9PSAwKQotKwkJZWxzZSBpZiAo c3RybmNhc2VjbXAoImFwcGxpY2F0aW9uL2pzb24iLCB2YWx1ZSwgZW5kIC0gdmFsdWUpID09IDAp Ci0gCQkJcHItPmNvbnRlbnRfdHlwZSA9IEhUVFBEX0FQUExJQ0FUSU9OX0pTT05fQ05UX1RZUEU7 Ci0tCQllbHNlIGlmIChzdHJuY2FzZWNtcCgidGV4dC9odG1sIiwgdmFsdWUsIDkpID09IDApCi0r CQllbHNlIGlmIChzdHJuY2FzZWNtcCgidGV4dC9odG1sIiwgdmFsdWUsIGVuZCAtIHZhbHVlKSA9 PSAwKQotIAkJCXByLT5jb250ZW50X3R5cGUgPSBIVFRQRF9URVhUX0hUTUxfVFlQRTsKLS0JCWVs c2UgaWYgKHN0cm5jYXNlY21wKCJ0ZXh0L3BsYWluIiwgdmFsdWUsIDEwKSA9PSAwKQotKwkJZWxz ZSBpZiAoc3RybmNhc2VjbXAoInRleHQvcGxhaW4iLCB2YWx1ZSwgZW5kIC0gdmFsdWUpID09IDAp Ci0gCQkJcHItPmNvbnRlbnRfdHlwZSA9IEhUVFBEX1RFWFRfUExBSU5fVFlQRTsKLSAJCWVsc2Ug ewotIAkJCXByLT5jb250ZW50X3R5cGUgPSBIVFRQRF9VTktOT1dOX0NOVF9UWVBFOwotIAkJCUxN X0VSUigiVW5leHBlY3RlZCBDb250ZW50LVR5cGU9WyVzXVxuIiwgdmFsdWUpOwotIAkJfQotLQkJ aWYgKHApICpwID0gYms7Ci0gCQlnb3RvIGRvbmU7Ci0gCX0KLSAJaWYgKHN0cmNhc2VjbXAoIkNv bnRlbnQtTGVuZ3RoIiwga2V5KSA9PSAwKSB7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAwOC1G aXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24tcHBjNjRsZS1hbmQtaTY4LnBhdGNo IGIvb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24tcHBj NjRsZS1hbmQtaTY4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzlkNjI4 Li4wMDAwMDAwCi0tLSBhL29wZW5zaXBzLTAwMDgtRml4LXVuaW5pdGlhbGl6ZWQtdmFfbGlzdC13 YXJuaW5nLW9uLXBwYzY0bGUtYW5kLWk2OC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMCAr MCwwIEBACi1Gcm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21h aWwuY29tPgotRGF0ZTogRnJpLCAyNiBEZWMgMjAyNSAxNzoyNTowNSArMDEwMAotU3ViamVjdDog W1BBVENIXSBGaXggdW5pbml0aWFsaXplZCB2YV9saXN0IHdhcm5pbmcgb24gcHBjNjRsZSBhbmQg aTY4NiB3aXRoCi0gR0NDIDE1Ci0KLUR1cmluZyBjb21waWxhdGlvbiBvbiBwcGM2NGxlIGFuZCBp Njg2IGFyY2hpdGVjdHVyZXMgd2l0aCBHQ0MgMTUsIGEKLXdhcm5pbmcgYXBwZWFyczoKLQotYGBg Ci1jYWNoZWRiX3JlZGlzX2RiYXNlLmM6IEluIGZ1bmN0aW9uICdyZWRpc19ydW5fY29tbWFuZF9h cmd2JzoKLWNhY2hlZGJfcmVkaXNfZGJhc2UuYzo2NTk6MTY6IHdhcm5pbmc6ICdfJyBpcyB1c2Vk IHVuaW5pdGlhbGl6ZWQgWy1XdW5pbml0aWFsaXplZF0KLSAgNjU5IHwgICAgICAgICByZXR1cm4g X3JlZGlzX3J1bl9jb21tYW5kKGNvbm5lY3Rpb24sIHJwbCwga2V5LCBhcmdjLCBhcmd2LCBhcmd2 bGVuLCBOVUxMLCBfKTsKLSAgICAgIHwgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotY2Fj aGVkYl9yZWRpc19kYmFzZS5jOjY1NzoxNzogbm90ZTogJ18nIHdhcyBkZWNsYXJlZCBoZXJlCi0g IDY1NyB8ICAgICAgICAgdmFfbGlzdCBfOwotICAgICAgfCAgICAgICAgICAgICAgICAgXgotYGBg Ci0KLUluIGNvbW1pdCBkNmFkNmQ0MDM5ZmNmNjg2MjQ0ODFmNjllZTY3ZWZmOTJmN2IzYWIyLCB0 aGUKLWByZWRpc19ydW5fY29tbWFuZF9hcmd2KClgIGZ1bmN0aW9uIHdhcyBtb2RpZmllZCB0byBw YXNzIGFuCi11bmluaXRpYWxpemVkIGB2YV9saXN0YCB0byBgX3JlZGlzX3J1bl9jb21tYW5kKClg LgotCi1UaGUgb3JpZ2luYWwgbG9naWMgaXM6Ci1gYGBjCi1zdGF0aWMgaW50IHJlZGlzX3J1bl9j b21tYW5kX2FyZ3YoLi4uKSB7Ci0gICAgdmFfbGlzdCBfOwotICAgIHJldHVybiBfcmVkaXNfcnVu X2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFyZ2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEws IF8pOwotfQotYGBgCi0KLVRoZSB1bmRlcnNjb3JlIGBfYCB3YXMgdXNlZCBhcyBhICJkb24ndCBj YXJlIiBwbGFjZWhvbGRlciwgc2luY2Ugd2hlbgotYGFyZ2NgIGlzIG5vbi16ZXJvLCBgX3JlZGlz X3J1bl9jb21tYW5kKClgIHVzZXMgdGhlIGBhcmd2YCBwYXRoIGFuZAotbmV2ZXIgYWNjZXNzZXMg dGhlIGB2YV9saXN0YCBwYXJhbWV0ZXI6Ci0KLWBgYGMKLWlmIChhcmdjKSB7Ci0gICAgcmVwbHkg PSByZWRpc0NvbW1hbmRBcmd2KG5vZGUtPmNvbnRleHQsIGFyZ2MsIGFyZ3YsIGFyZ3ZsZW4pOwot fSBlbHNlIHsKLSAgICB2YV9jb3B5KGFxLCBhcCk7ICAvLyBPbmx5IGV4ZWN1dGVkIHdoZW4gYXJn YyA9PSAwCi0gICAgcmVwbHkgPSByZWRpc3ZDb21tYW5kKG5vZGUtPmNvbnRleHQsIGNtZF9mbXQs IGFxKTsKLSAgICB2YV9lbmQoYXEpOwotfQotYGBgCi0KLVdoaWxlIHRoaXMgd29ya2VkIGluIHBy YWN0aWNlICh0aGUgdW5pbml0aWFsaXplZCBgdmFfbGlzdGAgaXMgbmV2ZXIKLWFjdHVhbGx5IHVz ZWQpLCBHQ0MgMTUgbm93IGNvcnJlY3RseSB3YXJucyB0aGF0IHBhc3NpbmcgdW5pbml0aWFsaXpl ZAotZGF0YSBpcyB1bmRlZmluZWQgYmVoYXZpb3IsIGV2ZW4gaWYgdGhhdCBkYXRhIGlzIG5ldmVy IGFjY2Vzc2VkLgotCi1Jbml0aWFsaXplIHRoZSBgdmFfbGlzdGAgdG8gYSBzYWZlIHZhbHVlIHVz aW5nIHplcm8taW5pdGlhbGl6YXRpb24uIFRoaXMKLXNhdGlzZmllcyB0aGUgY29tcGlsZXIncyB1 bmluaXRpYWxpemVkIHZhcmlhYmxlIGNoZWNrIHdoaWxlIG1haW50YWluaW5nCi10aGUgb3JpZ2lu YWwgbG9naWMgLSB0aGUgYHZhX2xpc3RgIHN0aWxsIHdvbid0IGJlIHVzZWQgd2hlbiBgYXJnY2Ag aXMKLW5vbi16ZXJvLCBidXQgaXQncyBub3cgdmFsaWRseSBpbml0aWFsaXplZC4KLQotKipDaGFu Z2VkOioqCi1gYGBjCi12YV9saXN0IF87Ci1gYGAKLQotKipUbzoqKgotYGBgYwotdmFfbGlzdCB1 bnVzZWRfYXAgPSB7MH07Ci1gYGAKLQotQWxzbyByZW5hbWVkIGZyb20gYF9gIHRvIGB1bnVzZWRf YXBgIGZvciBjbGFyaXR5LCBhcyBzaW5nbGUgdW5kZXJzY29yZQotaWRlbnRpZmllcnMgY2FuIGJl IHByb2JsZW1hdGljIGFuZCBkb24ndCBjbGVhcmx5IGNvbnZleSBpbnRlbnQuCi0KLUV2ZW4gdGhv dWdoIHRoZSB1bmluaXRpYWxpemVkIGB2YV9saXN0YCBpcyBuZXZlciBhY2Nlc3NlZCBpbiBwcmFj dGljZSwKLXBhc3NpbmcgdW5pbml0aWFsaXplZCBkYXRhIHZpb2xhdGVzIEMncyBydWxlcyBhbmQg Y2FuIGNhdXNlIGlzc3VlcyB3aXRoOgotCi0tIFN0YXRpYyBhbmFseXNpcyB0b29scwotLSBDb21w aWxlciBvcHRpbWl6YXRpb25zIHRoYXQgYXNzdW1lIG5vIHVuZGVmaW5lZCBiZWhhdmlvcgotLSBG dXR1cmUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGB2YV9saXN0YCBpbXBsZW1lbnRhdGlvbnMKLS0g Q29kZSBtYWludGFpbmFiaWxpdHkgKHVuY2xlYXIgaW50ZW50KQotCi1UaGlzIGNoYW5nZSBtYWtl cyB0aGUgY29kZSBjb21wbGlhbnQgd2l0aCBDIHN0YW5kYXJkcyB3aGlsZSBwcmVzZXJ2aW5nCi10 aGUgb3JpZ2luYWwgZnVuY3Rpb25hbGl0eS4KLQotUmVsYXRlZCBjb21taXQ6IGQ2YWQ2ZDQwMzlm Y2Y2ODYyNDQ4MWY2OWVlNjdlZmY5MmY3YjNhYjIKLSgiY2FjaGVkYl9yZWRpczogcHJvcGVybHkg cGFzcyB2YXJpYWJsZSBhcmd1bWVudHMgdG8gYSBSZWRpcyBjb21tYW5kIikKLQotU2lnbmVkLW9m Zi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLUFzc2lzdGVkLWJ5OiBD bGF1ZGUgKEFudGhyb3BpYykgPGh0dHBzOi8vY2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0IGEvbW9k dWxlcy9jYWNoZWRiX3JlZGlzL2NhY2hlZGJfcmVkaXNfZGJhc2UuYyBiL21vZHVsZXMvY2FjaGVk Yl9yZWRpcy9jYWNoZWRiX3JlZGlzX2RiYXNlLmMKLWluZGV4IDVlZjkyYzZhNWEuLjVjNmE5Yzcy ZDMgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFz ZS5jCi0rKysgYi9tb2R1bGVzL2NhY2hlZGJfcmVkaXMvY2FjaGVkYl9yZWRpc19kYmFzZS5jCi1A QCAtNjYwLDkgKzY2MCw5IEBAIHN0YXRpYyBpbnQgcmVkaXNfcnVuX2NvbW1hbmQoY2FjaGVkYl9j b24gKmNvbm5lY3Rpb24sIHJlZGlzUmVwbHkgKipycGwsCi0gc3RhdGljIGludCByZWRpc19ydW5f Y29tbWFuZF9hcmd2KGNhY2hlZGJfY29uICpjb25uZWN0aW9uLCByZWRpc1JlcGx5ICoqcnBsLAot ICAgICAgICAgICAgICAgc3RyICprZXksIGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJndiwgY29u c3Qgc2l6ZV90ICphcmd2bGVuKQotIHsKLS0JdmFfbGlzdCBfOwotKwl2YV9saXN0IHVudXNlZF9h cCA9IHswfTsKLSAKLS0JcmV0dXJuIF9yZWRpc19ydW5fY29tbWFuZChjb25uZWN0aW9uLCBycGws IGtleSwgYXJnYywgYXJndiwgYXJndmxlbiwgTlVMTCwgXyk7Ci0rCXJldHVybiBfcmVkaXNfcnVu X2NvbW1hbmQoY29ubmVjdGlvbiwgcnBsLCBrZXksIGFyZ2MsIGFyZ3YsIGFyZ3ZsZW4sIE5VTEws IHVudXNlZF9hcCk7Ci0gfQotIAotIGludCByZWRpc19nZXQoY2FjaGVkYl9jb24gKmNvbm5lY3Rp b24sc3RyICphdHRyLHN0ciAqdmFsKQoKZGlmZiAtLWdpdCBhL29wZW5zaXBzLTAwMDktRml4LXBv aW50ZXItdHJ1bmNhdGlvbi13YXJuaW5nLW9uLTMyLWJpdC1hcmNoaXRlY3R1ci5wYXRjaCBiL29w ZW5zaXBzLTAwMDktRml4LXBvaW50ZXItdHJ1bmNhdGlvbi13YXJuaW5nLW9uLTMyLWJpdC1hcmNo aXRlY3R1ci5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQ2YTgwMi4uMDAw MDAwMAotLS0gYS9vcGVuc2lwcy0wMDA5LUZpeC1wb2ludGVyLXRydW5jYXRpb24td2FybmluZy1v bi0zMi1iaXQtYXJjaGl0ZWN0dXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOTEgKzAsMCBA QAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KLURhdGU6IEZyaSwgMjYgRGVjIDIwMjUgMjE6MDg6MDAgKzAxMDAKLVN1YmplY3Q6IFtQQVRD SF0gRml4IHBvaW50ZXIgdHJ1bmNhdGlvbiB3YXJuaW5nIG9uIDMyLWJpdCBhcmNoaXRlY3R1cmVz IGluCi0gYWFhX2RpYW1ldGVyCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0K LUR1cmluZyBjb21waWxhdGlvbiBvbiBpNjg2ICgzMi1iaXQpIGFyY2hpdGVjdHVyZSB3aXRoIEdD QyAxNSwgYSBwb2ludGVyCi10cnVuY2F0aW9uIHdhcm5pbmcgYXBwZWFyczoKLQotYGBgCi1hYWFf ZGlhbWV0ZXIuYzogSW4gZnVuY3Rpb24gJ2RtX3NlbmRfYW5zd2VyJzoKLWFhYV9kaWFtZXRlci5j OjQyMzo3Mzogd2FybmluZzogY2FzdCB0byBwb2ludGVyIGZyb20gaW50ZWdlciBvZiBkaWZmZXJl bnQgc2l6ZSBbLVdpbnQtdG8tcG9pbnRlci1jYXN0XQotICA0MjMgfCAgZG1zZyA9IF9kbV9jcmVh dGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JQTCwgYXBwaWQsIGNtZGNvZGUsICh2b2lkICop ZmRfcmVxKTsKLWBgYAotCi1UaGUgYGRtX21lc3NhZ2VgIHN0cnVjdCBzdG9yZXMgYSBwb2ludGVy IHRvIGEgRnJlZURpYW1ldGVyIG1lc3NhZ2UKLXN0cnVjdHVyZSBpbiB0aGUgYGZkX3JlcWAgZmll bGQsIGJ1dCB0aGUgdHlwZSBpcyBtaXNtYXRjaGVkIGFjcm9zcwotZGlmZmVyZW50IGNvZGUgcGF0 aHM6Ci0KLTEuIEluIGBhYWFfZGlhbWV0ZXIuY2AsIGEgcG9pbnRlciBpcyBzZXJpYWxpemVkIGFz IGB1aW50NjRfdGAgKDggYnl0ZXMpCi0yLiBJdCdzIHRoZW4gY2FzdCB0byBgdm9pZCAqYCBhbmQg cGFzc2VkIHRvIGBfZG1fY3JlYXRlX21lc3NhZ2UoKWAKLTMuIE9uICoqaTY4NioqLCBgdm9pZCAq YCBpcyBvbmx5IDQgYnl0ZXMsIGNhdXNpbmcgKip0cnVuY2F0aW9uKiogb2YgdGhlCi0gICB1cHBl ciAzMiBiaXRzCi00LiBJbiBgZG1fcGVlci5jYCwgaXQncyBjYXN0IGJhY2sgdG8gYHN0cnVjdCBt c2cgKmAgZm9yIHVzZQotCi0qKk9uIHg4Nl82NCAoNjQtYml0KToqKgotCi0tIGB1aW50NjRfdGAg PSA4IGJ5dGVzCi0tIGB2b2lkICpgID0gOCBieXRlcwotLSBObyB0cnVuY2F0aW9uLCB3b3JrcyBm aW5lCi0KLSoqT24gaTY4NiAoMzItYml0KToqKgotCi0tIGB1aW50NjRfdGAgPSA4IGJ5dGVzCi0t IGB2b2lkICpgID0gNCBieXRlcwotLSAqKlRydW5jYXRpb24gb2NjdXJzKiosIGxvc2luZyB1cHBl ciAzMiBiaXRzIG9mIHRoZSBwb2ludGVyIQotCi1DaGFuZ2UgYGZkX3JlcWAgZnJvbSBgdm9pZCAq YCB0byBgdWludHB0cl90YCB0aHJvdWdob3V0IHRoZSBjb2RlYmFzZS4KLQotYHVpbnRwdHJfdGAg aXM6Ci0KLS0gKipQb3J0YWJsZSoqOiBTaXplZCBjb3JyZWN0bHkgZm9yIHBvaW50ZXJzIG9uIGFu eSBhcmNoaXRlY3R1cmUgKDQKLSAgYnl0ZXMgb24gMzItYml0LCA4IGJ5dGVzIG9uIDY0LWJpdCkK LS0gKipTdGFuZGFyZCoqOiBEZWZpbmVkIGluIEM5OSBgPHN0ZGludC5oPmAKLS0gKipTZW1hbnRp YyoqOiBFeHBsaWNpdGx5IGRlc2lnbmVkIGZvciBzdG9yaW5nIHBvaW50ZXIgdmFsdWVzIGFzCi0g IGludGVnZXJzCi0tICoqU2FmZSoqOiBHdWFyYW50ZWVkIGJ5IEM5OSB0byBwcmVzZXJ2ZSBwb2lu dGVyIHZhbHVlcyBkdXJpbmcKLSAgcm91bmQtdHJpcCBjb252ZXJzaW9ucwotCi0qKjEuIFN0cnVj dCBkZWZpbml0aW9uIChgbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5oYCBsaW5lIDkzKToq KgotCi1gYGBjCi1zdHJ1Y3QgZG1fbWVzc2FnZSB7Ci0gICAgLy8gQ2hhbmdlZCBmcm9tOiB2b2lk ICpmZF9yZXE7Ci0gICAgdWludHB0cl90IGZkX3JlcTsKLSAgICAvLyAuLi4KLX07Ci1gYGAKLQot KioyLiBGdW5jdGlvbiBzaWduYXR1cmUgKGBtb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmhg IH5saW5lIDE2NSk6KioKLQotYGBgYwotYWFhX21lc3NhZ2UgKl9kbV9jcmVhdGVfbWVzc2FnZShh YWFfY29ubiAqXywgaW50IG1zZ190eXBlLAotICAgIHVuc2lnbmVkIGludCBhcHBfaWQsIHVuc2ln bmVkIGludCBjbWRfY29kZSwgdWludHB0cl90IGZkX3JlcSk7Ci0gICAgLy8gQ2hhbmdlZCBmcm9t OiB2b2lkICpmZF9yZXEKLWBgYAotCi0qKjMuIEZ1bmN0aW9uIGRlZmluaXRpb24gKGBtb2R1bGVz L2FhYV9kaWFtZXRlci9kbV9pbXBsLmNgIGxpbmUgMTY5NSk6KioKLQotYGBgYwotYWFhX21lc3Nh Z2UgKl9kbV9jcmVhdGVfbWVzc2FnZShhYWFfY29ubiAqXywgaW50IG1zZ190eXBlLAotICAgIHVu c2lnbmVkIGludCBhcHBfaWQsIHVuc2lnbmVkIGludCBjbWRfY29kZSwgdWludHB0cl90IGZkX21z ZykKLSAgICAvLyBDaGFuZ2VkIGZyb206IHZvaWQgKmZkX21zZwotYGBgCi0KLSoqNC4gQ2FsbCBz aXRlcyAtIHBvaW50ZXIgdG8gdWludHB0cl90OioqCi0KLWBgYGMKLS8vIGFhYV9kaWFtZXRlci5j IGxpbmUgNDIzIC0gcmVtb3ZlIHZvaWQqIGNhc3Q6Ci1kbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdl KE5VTEwsIEFBQV9DVVNUT01fUlBMLCBhcHBpZCwgY21kY29kZSwgZmRfcmVxKTsKLQotLy8gZG1f aW1wbC5jIC0gYWRkIGV4cGxpY2l0IGNhc3RzIHdoZW4gc3RvcmluZyBwb2ludGVyczoKLWRtLmZk X3JlcSA9ICh1aW50cHRyX3QpcmVxOwotZG0tPmZkX3JlcSA9ICh1aW50cHRyX3QpZmRfbXNnOwot YGBgCi0KLSoqNS4gQ2FsbCBzaXRlcyB3aXRoIE5VTEwgLSB1c2UgMCBpbnN0ZWFkOioqCi0KLVNp bmNlIGB1aW50cHRyX3RgIGlzIGFuIGludGVnZXIgdHlwZSAobm90IGEgcG9pbnRlciB0eXBlKSwg d2UgdXNlIGAwYAotaW5zdGVhZCBvZiBgTlVMTGAgdG8gcmVwcmVzZW50ICJubyBwb2ludGVyIjoK LQotYGBgYwotLy8gTXVsdGlwbGUgbG9jYXRpb25zIGluIGFhYV9kaWFtZXRlci5jLCBkbV9pbXBs LmM6Ci1kbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCAqYXBw X2lkLCAqY21kX2NvZGUsIDApOwotLy8gQ2hhbmdlZCBmcm9tOiAuLi4sIE5VTEwpOwotYGBgCi0K LSoqTm90ZToqKiBJbiBDLCBgTlVMTGAgaXMgdHlwaWNhbGx5IGAoKHZvaWQgKikwKWAgLSBhIHBv aW50ZXIgdHlwZS4gV2hlbgotcGFzc2luZyB0byBhbiBpbnRlZ2VyIHBhcmFtZXRlciBsaWtlIGB1 aW50cHRyX3RgLCB3ZSB1c2UgdGhlIGludGVnZXIgYDBgCi1kaXJlY3RseSB0byBhdm9pZCBpbXBs aWNpdCBwb2ludGVyLXRvLWludGVnZXIgY29udmVyc2lvbiB3YXJuaW5ncy4KLQotKio2LiBVc2Fn ZSBzaXRlIC0gdWludHB0cl90IHRvIHBvaW50ZXIgKGBkbV9wZWVyLmNgKToqKgotCi1gYGBjCi0v LyBDaGFuZ2VkIGZyb206IHN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopZG0tPmZkX3Jl cTsKLXN0cnVjdCBtc2cgKmFucyA9IChzdHJ1Y3QgbXNnICopKHVpbnRwdHJfdClkbS0+ZmRfcmVx OwotYGBgCi0KLVRoZSBkb3VibGUgY2FzdCBgKHN0cnVjdCBtc2cgKikodWludHB0cl90KXZhbHVl YCBpcyByZXF1aXJlZCBieSBDOTkgZm9yCi1ndWFyYW50ZWVkIGNvcnJlY3RuZXNzOgotCi0xLiAq KkM5OSBndWFyYW50ZWVzKiogdGhhdCBhbnkgcG9pbnRlciBjYW4gYmUgY29udmVydGVkIHRvIGB1 aW50cHRyX3RgIGFuZCBiYWNrCi0yLiBEaXJlY3QgYGludGVnZXIg4oaSIHBvaW50ZXJgIGNvbnZl cnNpb24gaXMgKippbXBsZW1lbnRhdGlvbi1kZWZpbmVkKiogYmVoYXZpb3IKLTMuIFRoZSBwcm9w ZXIgY29udmVyc2lvbiBwYXRoIGlzOiBgcG9pbnRlciDihpIgdWludHB0cl90IOKGkiBwb2ludGVy YAotCi1XaGlsZSBhIHNpbmdsZSBjYXN0IGZyb20gYHVpbnRwdHJfdGAgdG8gcG9pbnRlciBvZnRl biB3b3JrcyBpbiBwcmFjdGljZSwKLXRoZSBkb3VibGUgY2FzdCBleHBsaWNpdGx5IGZvbGxvd3Mg dGhlIEM5OSBzdGFuZGFyZCdzIGd1YXJhbnRlZWQKLWNvbnZlcnNpb24gcGF0aCwgZW5zdXJpbmcg dGhlIGNvZGUgaXMgc3RyaWN0bHkgY29uZm9ybWFudCBhbmQgd29uJ3QKLWNhdXNlIGlzc3VlcyB3 aXRoIHN0cmljdCBhbGlhc2luZyBydWxlcyBvciBmdXR1cmUgY29tcGlsZXIKLW9wdGltaXphdGlv bnMuCi0KLVRoZSBwYXR0ZXJuIGlzOgotLSAqKlBvaW50ZXIg4oaSIHVpbnRwdHJfdCoqOiBgKHVp bnRwdHJfdClwb2ludGVyYAotLSAqKnVpbnRwdHJfdCDihpIgUG9pbnRlcioqOiBgKHN0cnVjdCBt c2cgKikodWludHB0cl90KXZhbHVlYAotLSAqKk51bGwgdmFsdWUqKjogYDBgIChub3QgYE5VTExg LCBzaW5jZSBgdWludHB0cl90YCBpcyBhbiBpbnRlZ2VyIHR5cGUpCi0KLVRoaXMgZml4IGVuc3Vy ZXMgcG9pbnRlcnMgYXJlIGNvcnJlY3RseSBwcmVzZXJ2ZWQgb24gYWxsIGFyY2hpdGVjdHVyZXMK LXdpdGhvdXQgdHJ1bmNhdGlvbi4KLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxl bWVua292QGdtYWlsLmNvbT4KLUFzc2lzdGVkLWJ5OiBDbGF1ZGUgKEFudGhyb3BpYykgPGh0dHBz Oi8vY2xhdWRlLmFpPgotCi1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvYWFhX2Rp YW1ldGVyLmMgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9hYWFfZGlhbWV0ZXIuYwotaW5kZXggNDEw YTRjYjEyMi4uNDM4MmFmN2FjZCAxMDA2NDQKLS0tLSBhL21vZHVsZXMvYWFhX2RpYW1ldGVyL2Fh YV9kaWFtZXRlci5jCi0rKysgYi9tb2R1bGVzL2FhYV9kaWFtZXRlci9hYWFfZGlhbWV0ZXIuYwot QEAgLTE5LDYgKzE5LDcgQEAKLSAgKi8KLSAKLSAjaW5jbHVkZSA8ZnJlZURpYW1ldGVyL2V4dGVu c2lvbi5oPgotKyNpbmNsdWRlIDxzdGRpbnQuaD4KLSAKLSAjaW5jbHVkZSAiLi4vLi4vc3JfbW9k dWxlLmgiCi0gI2luY2x1ZGUgIi4uLy4uL2xpYi9saXN0LmgiCi1AQCAtMzA4LDcgKzMwOSw3IEBA IHN0YXRpYyBpbnQgZG1fc2VuZF9yZXF1ZXN0KHN0cnVjdCBzaXBfbXNnICptc2csIGludCAqYXBw X2lkLCBpbnQgKmNtZF9jb2RlLAotIAkJZ290byBlcnJvcjsKLSAJfQotIAotLQlkbXNnID0gX2Rt X2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCAqYXBwX2lkLCAqY21kX2NvZGUs IE5VTEwpOwotKwlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVR LCAqYXBwX2lkLCAqY21kX2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJCUxNX0VSUigib29t XG4iKTsKLSAJCWdvdG8gZXJyb3I7Ci1AQCAtNDIxLDcgKzQyMiw3IEBAIHN0YXRpYyBpbnQgZG1f c2VuZF9hbnN3ZXIoc3RydWN0IHNpcF9tc2cgKm1zZywgc3RyICphdnBfanNvbiwgaW50ICppc19l cnJvcikKLSAJCXJldmVyc2VfaGV4MmludDY0KHJlcy5ycy5zLCByZXMucnMubGVuLCAxLCAmZmRf cmVxKTsKLSAJfQotIAotLQlkbXNnID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNU T01fUlBMLCBhcHBpZCwgY21kY29kZSwgKHZvaWQgKilmZF9yZXEpOwotKwlkbXNnID0gX2RtX2Ny ZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUlBMLCBhcHBpZCwgY21kY29kZSwgZmRfcmVx KTsKLSAJaWYgKCFkbXNnKSB7Ci0gCQlMTV9FUlIoIm9vbVxuIik7Ci0gCQlnb3RvIGVycm9yOwot QEAgLTU4MSw3ICs1ODIsNyBAQCBzdGF0aWMgaW50IGRtX3NlbmRfcmVxdWVzdF9hc3luYyhzdHJ1 Y3Qgc2lwX21zZyAqbXNnLCBhc3luY19jdHggKmN0eCwKLSAJCWdvdG8gZXJyb3I7Ci0gCX0KLSAK LS0JZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgKmFwcF9p ZCwgKmNtZF9jb2RlLCBOVUxMKTsKLSsJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBB QUFfQ1VTVE9NX1JFUSwgKmFwcF9pZCwgKmNtZF9jb2RlLCAwKTsKLSAJaWYgKCFkbXNnKSB7Ci0g CQlMTV9FUlIoIm9vbVxuIik7Ci0gCQlnb3RvIGVycm9yOwotZGlmZiAtLWdpdCBhL21vZHVsZXMv YWFhX2RpYW1ldGVyL2RtX2ltcGwuYyBiL21vZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuYwot aW5kZXggMTYwOGVjMjc2Yy4uMzkzNDgzZmQyMSAxMDA2NDQKLS0tLSBhL21vZHVsZXMvYWFhX2Rp YW1ldGVyL2RtX2ltcGwuYwotKysrIGIvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1faW1wbC5jCi1A QCAtMjEsNiArMjEsNyBAQAotICNpbmNsdWRlIDxmcmVlRGlhbWV0ZXIvZXh0ZW5zaW9uLmg+Ci0g I2luY2x1ZGUgPHN5cy9ldmVudGZkLmg+Ci0gI2luY2x1ZGUgPGludHR5cGVzLmg+Ci0rI2luY2x1 ZGUgPHN0ZGludC5oPgotIAotICNpbmNsdWRlICIuLi8uLi91dC5oIgotICNpbmNsdWRlICIuLi8u Li9saWIvbGlzdC5oIgotQEAgLTYwMSw3ICs2MDIsNyBAQCBzdGF0aWMgaW50IGRtX3JlY2VpdmVf cmVxKHN0cnVjdCBtc2cgKipfcmVxLCBzdHJ1Y3QgYXZwICogYXZwLCBzdHJ1Y3Qgc2Vzc2lvbiAq Ci0gCi0gCQltZW1zZXQoJmRtLCAwLCBzaXplb2YgZG0pOwotIAotLQkJZG0uZmRfcmVxID0gcmVx OwotKwkJZG0uZmRfcmVxID0gKHVpbnRwdHJfdClyZXE7Ci0gCQlkbS5hcHBfaWQgPSBoZHItPm1z Z19hcHBsOwotIAkJZG0uY21kX2NvZGUgPSBoZHItPm1zZ19jb2RlOwotIAkJZG0uZXJyb3JfYml0 ID0gMTsKLUBAIC0xNzU0LDcgKzE3NTUsNyBAQCBpbnQgZG1fYXBpX2ZpbmRfY21kKGRpYW1ldGVy X2Nvbm4gKmNvbm4sIGludCBjbWRfY29kZSkKLSB9Ci0gCi0gYWFhX21lc3NhZ2UgKl9kbV9jcmVh dGVfbWVzc2FnZShhYWFfY29ubiAqXywgaW50IG1zZ190eXBlLAotLSAgICAgICAgdW5zaWduZWQg aW50IGFwcF9pZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB2b2lkICpmZF9tc2cpCi0rICAgICAg ICB1bnNpZ25lZCBpbnQgYXBwX2lkLCB1bnNpZ25lZCBpbnQgY21kX2NvZGUsIHVpbnRwdHJfdCBm ZF9tc2cpCi0gewotIAlhYWFfbWVzc2FnZSAqbTsKLSAJc3RydWN0IGRtX21lc3NhZ2UgKmRtOwot QEAgLTE3ODEsNyArMTc4Miw3IEBAIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFh X2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAJZG0tPmFtID0gbTsKLSAJZG0tPmFwcF9pZCA9IGFw cF9pZDsKLSAJZG0tPmNtZF9jb2RlID0gY21kX2NvZGU7Ci0tCWRtLT5mZF9yZXEgPSBmZF9tc2c7 Ci0rCWRtLT5mZF9yZXEgPSAodWludHB0cl90KWZkX21zZzsKLSAKLSAJcmV0dXJuIG07Ci0gfQot QEAgLTE3ODksNyArMTc5MCw3IEBAIGFhYV9tZXNzYWdlICpfZG1fY3JlYXRlX21lc3NhZ2UoYWFh X2Nvbm4gKl8sIGludCBtc2dfdHlwZSwKLSAKLSBhYWFfbWVzc2FnZSAqZG1fY3JlYXRlX21lc3Nh Z2UoYWFhX2Nvbm4gKl8sIGludCBtc2dfdHlwZSkKLSB7Ci0tCXJldHVybiBfZG1fY3JlYXRlX21l c3NhZ2UoXywgbXNnX3R5cGUsIDAsIDAsIE5VTEwpOwotKwlyZXR1cm4gX2RtX2NyZWF0ZV9tZXNz YWdlKF8sIG1zZ190eXBlLCAwLCAwLCAwKTsKLSB9Ci0gCi0gCi1AQCAtMjE0NCw3ICsyMTQ1LDcg QEAgaW50IGRtX2FwaV9zZW5kX3JlcShkaWFtZXRlcl9jb25uICpjb25uLCBpbnQgYXBwX2lkLCBp bnQgY21kX2NvZGUsIGNKU09OICpyZXEsIGQKLSAJCXJldHVybiAtMjsKLSAJfQotIAotLQlkbXNn ID0gX2RtX2NyZWF0ZV9tZXNzYWdlKE5VTEwsIEFBQV9DVVNUT01fUkVRLCBhcHBfaWQsIGNtZF9j b2RlLCBOVUxMKTsKLSsJZG1zZyA9IF9kbV9jcmVhdGVfbWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9N X1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgMCk7Ci0gCWlmICghZG1zZykgewotIAkJTE1fRVJSKCJv b21cbiIpOwotIAkJcmV0dXJuIC0xOwotQEAgLTIxODEsNyArMjE4Miw3IEBAIGludCBkbV9hcGlf c2VuZF9yZXFfYXN5bmMoZGlhbWV0ZXJfY29ubiAqY29ubiwgaW50IGFwcF9pZCwgaW50IGNtZF9j b2RlLCBjSlNPTiAqCi0gCQlyZXR1cm4gLTI7Ci0gCX0KLSAKLS0JZG1zZyA9IF9kbV9jcmVhdGVf bWVzc2FnZShOVUxMLCBBQUFfQ1VTVE9NX1JFUSwgYXBwX2lkLCBjbWRfY29kZSwgTlVMTCk7Ci0r CWRtc2cgPSBfZG1fY3JlYXRlX21lc3NhZ2UoTlVMTCwgQUFBX0NVU1RPTV9SRVEsIGFwcF9pZCwg Y21kX2NvZGUsIDApOwotIAlpZiAoIWRtc2cpIHsKLSAJCUxNX0VSUigib29tXG4iKTsKLSAJCXJl dHVybiAtMTsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmggYi9t b2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKLWluZGV4IGIyNWNkNzdmMTkuLjUyZTNmMjNk YTUgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL2FhYV9kaWFtZXRlci9kbV9pbXBsLmgKLSsrKyBiL21v ZHVsZXMvYWFhX2RpYW1ldGVyL2RtX2ltcGwuaAotQEAgLTI0LDYgKzI0LDcgQEAKLSAjaW5jbHVk ZSAiLi4vLi4vYWFhL2FhYS5oIgotICNpbmNsdWRlICIuLi8uLi9tZW0vc2htX21lbS5oIgotICNp bmNsdWRlICJkaWFtZXRlcl9hcGkuaCIKLSsjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gCi0gI2RlZmlu ZSBfX0ZEX0NIRUNLKF9fY2FsbF9fLCBfX3JldG9rX18sIF9fcmV0dmFsX18pIFwKLSAJZG8geyBc Ci1AQCAtOTEsNyArOTIsNyBAQCBzdHJ1Y3QgX2RtX2RpY3QgewotIHN0cnVjdCBkbV9tZXNzYWdl IHsKLSAJYWFhX21lc3NhZ2UgKmFtOyAvKiBiYWNrLXJlZmVyZW5jZSwgdXNlZnVsIGR1cmluZyBj bGVhbnVwICovCi0gCi0tCXZvaWQgKmZkX3JlcTsKLSsJdWludHB0cl90IGZkX3JlcTsKLSAJdW5z aWduZWQgaW50IGFwcF9pZDsgICAvKiB0aGVzZSB0d28gYXJlIHVzZWQgd2hlbiBzZW5kaW5nICov Ci0gCXVuc2lnbmVkIGludCBjbWRfY29kZTsgLyogY3VzdG9tIERpYW1ldGVyIHJlcXVlc3RzICov Ci0gCWludCBlcnJvcl9iaXQ7Ci1AQCAtMTgyLDcgKzE4Myw3IEBAIGludCBkbV9yZWdpc3Rlcl9j YWxsYmFja3Modm9pZCk7Ci0gaW50IGRtX2ZpbmQoYWFhX2Nvbm4gKl8sIGFhYV9tYXAgKm1hcCwg aW50IG9wKTsKLSBhYWFfbWVzc2FnZSAqZG1fY3JlYXRlX21lc3NhZ2UoYWFhX2Nvbm4gKl8sIGlu dCBtc2dfdHlwZSk7Ci0gYWFhX21lc3NhZ2UgKl9kbV9jcmVhdGVfbWVzc2FnZShhYWFfY29ubiAq XywgaW50IG1zZ190eXBlLAotLSAgICAgICAgdW5zaWduZWQgaW50IGFwcF9pZCwgdW5zaWduZWQg aW50IGNtZF9jb2RlLCB2b2lkICpmZF9yZXEpOwotKyAgICAgICAgdW5zaWduZWQgaW50IGFwcF9p ZCwgdW5zaWduZWQgaW50IGNtZF9jb2RlLCB1aW50cHRyX3QgZmRfcmVxKTsKLSBpbnQgZG1fYXZw X2FkZChhYWFfY29ubiAqXywgYWFhX21lc3NhZ2UgKm1zZywgYWFhX21hcCAqYXZwLCB2b2lkICp2 YWwsCi0gICAgICAgICAgICAgICAgaW50IHZhbF9sZW5ndGgsIGludCB2ZW5kb3IpOwotIGludCBk bV9idWlsZF9hdnBzKHN0cnVjdCBsaXN0X2hlYWQgKnN1YmF2cHMsIGNKU09OICphcnJheSk7Ci1k aWZmIC0tZ2l0IGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5jIGIvbW9kdWxlcy9hYWFf ZGlhbWV0ZXIvZG1fcGVlci5jCi1pbmRleCA5ZGJmZDFkNmM5Li4wNmIxN2E4ODQ1IDEwMDY0NAot LS0tIGEvbW9kdWxlcy9hYWFfZGlhbWV0ZXIvZG1fcGVlci5jCi0rKysgYi9tb2R1bGVzL2FhYV9k aWFtZXRlci9kbV9wZWVyLmMKLUBAIC0yNCw2ICsyNCw3IEBACi0gI2luY2x1ZGUgIi4uLy4uL3Ny X21vZHVsZS5oIgotICNpbmNsdWRlICIuLi8uLi9sb2NraW5nLmgiCi0gI2luY2x1ZGUgIi4uLy4u L2xpYi9saXN0LmgiCi0rI2luY2x1ZGUgPHN0ZGludC5oPgotIAotICNpbmNsdWRlICJkbV9pbXBs LmgiCi0gI2luY2x1ZGUgImRtX3BlZXIuaCIKLUBAIC01MTEsNyArNTEyLDcgQEAgc3RhdGljIGlu dCBkbV9zZW5kX2N1c3RvbV9yZXEoc3RydWN0IGRtX21lc3NhZ2UgKm1zZykKLSAKLSBpbnQgZG1f c2VuZF9jdXN0b21fcnBsKHN0cnVjdCBkbV9tZXNzYWdlICpkbSkKLSB7Ci0tCXN0cnVjdCBtc2cg KmFucyA9IChzdHJ1Y3QgbXNnICopZG0tPmZkX3JlcTsKLSsJc3RydWN0IG1zZyAqYW5zID0gKHN0 cnVjdCBtc2cgKikodWludHB0cl90KWRtLT5mZF9yZXE7Ci0gCWludCByYywgZmxhZ3MgPSAwOwot IAotIAlpZiAoIWRtX3NlcnZlcl9hdXRvcmVwbHlfZXJyb3IgJiYgZG1fcmVtb3ZlX3VucmVwbGll ZF9yZXEoYW5zKSAhPSAwKSB7CgpkaWZmIC0tZ2l0IGEvb3BlbnNpcHMtMDAxMC1GaXgtQzkwLXN0 eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoIGIvb3BlbnNp cHMtMDAxMC1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1t b2R1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjg5ZTRlLi4wMDAwMDAw Ci0tLSBhL29wZW5zaXBzLTAwMTAtRml4LUM5MC1zdHlsZS1kZWNsYXJhdGlvbi13YXJuaW5ncy1p bi1zbm1wc3RhdHMtbW9kdS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4MSArMCwwIEBACi1G cm9tIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgot RGF0ZTogU2F0LCAzMSBKYW4gMjAyNiAxNToxMToyMCArMDEwMAotU3ViamVjdDogW1BBVENIXSBG aXggQzkwLXN0eWxlIGRlY2xhcmF0aW9uIHdhcm5pbmdzIGluIHNubXBzdGF0cyBtb2R1bGUKLQot QnVpbGQgZmFpbHMgd2l0aCBgLVdlcnJvcj1kZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRgIChl bmZvcmNlZCBieQotbmV0LXNubXAgcGtnLWNvbmZpZykgZHVlIHRvIHZhcmlhYmxlcyBkZWNsYXJl ZCBhZnRlciBleGVjdXRhYmxlCi1zdGF0ZW1lbnRzOgotCi1gYGAKLW9wZW5zZXJPYmplY3RzLmM6 NjE5Ojk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2Rl IFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KLSAgNjE5IHwgICAgICAgICBp bnQgbmV3X3RocmVzaG9sZCA9IChpbnQpKGxvbmcpKGludCAqKXZhbDsKLQotb3BlbnNlclNJUENv bW1vbk9iamVjdHMuYzoyNDQ6MTc6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFy YXRpb25zIGFuZCBjb2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KLSAg MjQ0IHwgICAgICAgICAgICAgICAgIGNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIo YnVmZmVyLCAnKCcpOwotCi1vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jOjQ3NTo5OiBlcnJvcjog SVNPIEM5MCBmb3JiaWRzIG1peGVkIGRlY2xhcmF0aW9ucyBhbmQgY29kZSBbLVdlcnJvcj1kZWNs YXJhdGlvbi1hZnRlci1zdGF0ZW1lbnRdCi0gIDQ3NSB8ICAgICAgICAgY2hhciAqc3RyRW50aXR5 VHlwZSA9IChjaGFyICopdmFsOwotCi1vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmM6MjY2Ojk6IGVy cm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlIFstV2Vycm9y PWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KLSAgMjY2IHwgICAgICAgICBzdGF0aWMgY2hh ciAqZGVmYXVsdFVzZXIgPSAiRGVmYXVsdFVzZXIiOwotCi1vcGVuc2VyU0lQQ29udGFjdFRhYmxl LmM6MzYxOjk6IGVycm9yOiBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBj b2RlIFstV2Vycm9yPWRlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudF0KLSAgMzYxIHwgICAgICAg ICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsKLWBgYAot Ci1UaGUgbmV0LXNubXAgbGlicmFyeSdzIHBrZy1jb25maWcgYWRkcwotYC1XZXJyb3I9ZGVjbGFy YXRpb24tYWZ0ZXItc3RhdGVtZW50YCB0byBDRkxBR1MsIGVuZm9yY2luZyBDOTAtc3R5bGUKLWRl Y2xhcmF0aW9uIG9yZGVyaW5nIChhbGwgZGVjbGFyYXRpb25zIGJlZm9yZSBzdGF0ZW1lbnRzKS4K LQotV2hpbGUgT3BlblNJUFMgYWRoZXJlcyB0byB0aGUgQzk5IHN0YW5kYXJkICh3aGljaCBhbGxv d3MgbWl4ZWQKLWRlY2xhcmF0aW9ucyBhbmQgY29kZSksIHRoZSBuZXQtc25tcCBsaWJyYXJ5IGNv dWxkIHJlcXVpcmUgQzkwLXN0eWxlCi1kZWNsYXJhdGlvbnMgZm9yIG1vZHVsZXMgdGhhdCBsaW5r IGFnYWluc3QgaXQuIEZvbGxvd2luZyB0aGlzIHN0eWxlCi1kb2Vzbid0IGh1cnQgQzk5IGNvbXBh dGliaWxpdHkgYW5kIGltcHJvdmVzIGNvZGUgcG9ydGFiaWxpdHkuYAotCi1TaWduZWQtb2ZmLWJ5 OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgotQXNzaXN0ZWQtYnk6IENsYXVk ZSAoQW50aHJvcGljKSA8aHR0cHM6Ly9jbGF1ZGUuYWk+Ci0KLWRpZmYgLS1naXQgYS9tb2R1bGVz L3NubXBzdGF0cy9vcGVuc2VyT2JqZWN0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlck9i amVjdHMuYwotaW5kZXggMTgwYjYyZGRhNy4uOTA5ZGI0YzgwYiAxMDA2NDQKLS0tLSBhL21vZHVs ZXMvc25tcHN0YXRzL29wZW5zZXJPYmplY3RzLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29w ZW5zZXJPYmplY3RzLmMKLUBAIC02MDUsNiArNjA1LDggQEAgaW50IGhhbmRsZV9vcGVuc2VyRGlh bG9nTGltaXRNYWpvckFsYXJtKG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gc3RhdGlj IGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBj aGFyICp2YXJTdHIsCi0gCWludCAqbmV3VmFsKQotIHsKLSsJaW50IG5ld190aHJlc2hvbGQ7Ci0r Ci0gCWlmICh2YWw9PTApIHsKLSAJCUxNX0VSUigiJXMgY2FsbGVkIHdpdGggYSBudWxsIHZhbHVl IVxuIiwgdmFyU3RyKTsKLSAJCXJldHVybiAtMTsKLUBAIC02MTYsNyArNjE4LDcgQEAgc3RhdGlj IGludCBzZXRfaWZfdmFsaWRfdGhyZXNob2xkKG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBj aGFyICp2YXJTdHIsCi0gCQlyZXR1cm4gLTE7Ci0gCX0KLSAKLS0JaW50IG5ld190aHJlc2hvbGQg PSAoaW50KShsb25nKShpbnQgKil2YWw7Ci0rCW5ld190aHJlc2hvbGQgPSAoaW50KShsb25nKShp bnQgKil2YWw7Ci0gCi0gCWlmIChuZXdfdGhyZXNob2xkIDwgLTEpIHsKLSAJCUxNX0VSUigiJXMg Y2FsbGVkIHdpdGggYW4gaW52YWxpZCB0aHJlc2hvbGQ9JWQhXG4iLAotZGlmZiAtLWdpdCBhL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBDb21tb25PYmplY3RzLmMgYi9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQQ29tbW9uT2JqZWN0cy5jCi1pbmRleCBlMzdhYjZlZjJhLi5mMmRkYmE1 YTdhIDEwMDY0NAotLS0tIGEvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVj dHMuYwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUENvbW1vbk9iamVjdHMuYwot QEAgLTIyNSw2ICsyMjUsOCBAQCBpbnQgaGFuZGxlX29wZW5zZXJTSVBTZXJ2aWNlU3RhcnRUaW1l KG5ldHNubXBfbWliX2hhbmRsZXIgKmhhbmRsZXIsCi0gCi0gCWludCBlbGFwc2VkVGltZSA9IDA7 Ci0gCWNoYXIgYnVmZmVyW1NOTVBHRVRfTUFYX0JVRkZFUl07Ci0rCWNoYXIgKm9wZW5CcmFjZVBv c2l0aW9uID0gTlVMTDsKLSsJY2hhciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IE5VTEw7Ci0gCi0g CUZJTEUgKnRoZUZpbGUgPSBmb3BlbihTTk1QR0VUX1RFTVBfRklMRSwgInIiKTsKLSAKLUBAIC0y NDEsOCArMjQzLDggQEAgaW50IGhhbmRsZV9vcGVuc2VyU0lQU2VydmljZVN0YXJ0VGltZShuZXRz bm1wX21pYl9oYW5kbGVyICpoYW5kbGVyLAotIAotIAkJLyogRmluZCB0aGUgcG9zaXRpb25zIG9m ICcoJyBhbmQgJyknIHNvIHdlIGNhbiBleHRyYWN0IG91dCB0aGUKLSAJCSAqIHRpbWV0aWNrcyB2 YWx1ZS4gKi8KLS0JCWNoYXIgKm9wZW5CcmFjZVBvc2l0aW9uICAgPSBzdHJjaHIoYnVmZmVyLCAn KCcpOwotLQkJY2hhciAqY2xvc2VkQnJhY2VQb3NpdGlvbiA9IHN0cmNocihidWZmZXIsICcpJyk7 Ci0rCQlvcGVuQnJhY2VQb3NpdGlvbiAgID0gc3RyY2hyKGJ1ZmZlciwgJygnKTsKLSsJCWNsb3Nl ZEJyYWNlUG9zaXRpb24gPSBzdHJjaHIoYnVmZmVyLCAnKScpOwotIAotIAkJLyogTWFrZSBzdXJl IHRoYXQgYm90aCB0aGUgJygnIGFuZCAnKScgZXhpc3QgaW4gdGhlIGZpbGUsIGFuZAotIAkJICog dGhhdCAnKCcgb2NjdXJzIGVhcmxpZXIgdGhhbiB0aGUgJyknLiAgSWYgYWxsIHRoZXNlCi1AQCAt NDY0LDYgKzQ2Niw3IEBAIGludCBoYW5kbGVfb3BlbnNlclNJUE90aGVyd2lzZURpc2NhcmRlZE1z Z3MobmV0c25tcF9taWJfaGFuZGxlciAqaGFuZGxlciwKLSAgKi8KLSBpbnQgaGFuZGxlU2lwRW50 aXR5VHlwZSggbW9kcGFyYW1fdCB0eXBlLCB2b2lkKiB2YWwpCi0gewotKwljaGFyICpzdHJFbnRp dHlUeXBlID0gTlVMTDsKLSAKLSAJLyogQnkgZGVmYXVsdCB3ZSBzdGFydCBvZmYgYXMgIm90aGVy Ii4gKi8KLSAJc3RhdGljIGNoYXIgZmlyc3RUaW1lID0gMTsKLUBAIC00NzIsNyArNDc1LDcgQEAg aW50IGhhbmRsZVNpcEVudGl0eVR5cGUoIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCogdmFsKQotIAkJ cmV0dXJuIC0xOwotIAl9Ci0gCi0tCWNoYXIgKnN0ckVudGl0eVR5cGUgPSAoY2hhciAqKXZhbDsK LSsJc3RyRW50aXR5VHlwZSA9IChjaGFyICopdmFsOwotIAotIAkvKiBUaGlzIGlzIG91ciBmaXJz dCB0aW1lIHRocm91Z2ggdGhpcyBmdW5jdGlvbiwgc28gd2UgbmVlZCB0byBjaGFuZ2UKLSAJICog b3BlbnNlckVudGl0eVR5cGUgZnJvbSBpdHMgZGVmYXVsdCB0byAwLCBhbGxvd2luZyBvdXIgYml0 bWFza3MgYmVsb3cKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29u dGFjdFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMK LWluZGV4IDdlZGMxMjEwY2UuLjAzNTg4MDI5YzggMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQQ29udGFjdFRhYmxlLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29w ZW5zZXJTSVBDb250YWN0VGFibGUuYwotQEAgLTI2MSwxMCArMjYxLDEwIEBAIHZvaWQgZGVsZXRl Q29udGFjdFJvdyhpbnQgdXNlckluZGV4LCBpbnQgY29udGFjdEluZGV4KQotICAqLwotIHZvaWQg aW5pdF9vcGVuc2VyU0lQQ29udGFjdFRhYmxlKHZvaWQpCi0gewotLQlpbml0aWFsaXplX3RhYmxl X29wZW5zZXJTSVBDb250YWN0VGFibGUoKTsKLS0KLSAJc3RhdGljIGNoYXIgKmRlZmF1bHRVc2Vy ID0gIkRlZmF1bHRVc2VyIjsKLSAKLSsJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQQ29udGFj dFRhYmxlKCk7Ci0rCi0gCWNyZWF0ZUNvbnRhY3RSb3coMSwgMSwgZGVmYXVsdFVzZXIsIE5VTEwp OwotIH0KLSAKLUBAIC0zNTQsMTQgKzM1NCwxNiBAQCBpbnQgb3BlbnNlclNJUENvbnRhY3RUYWJs ZV9nZXRfdmFsdWUoCi0gCWNoYXIgICAgICAgKnJldHJpZXZlZEV4cGlyeTsKLSAJc3RydWN0IHRt ICB0aW1lVmFsdWU7Ci0gCi0rCW5ldHNubXBfdmFyaWFibGVfbGlzdCAqdmFyID0gTlVMTDsKLSsJ b3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKLSsKLSAJLyog Rmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBi dWZmZXIsIGluCi0gCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJl dHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KLSAJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigp OwotIAotLQluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhciA9IHJlcXVlc3QtPnJlcXVlc3R2YjsK LSsJdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOwotIAotLQlvcGVuc2VyU0lQQ29udGFjdFRhYmxl X2NvbnRleHQgKmNvbnRleHQgPQotLQkJKG9wZW5zZXJTSVBDb250YWN0VGFibGVfY29udGV4dCAq KWl0ZW07Ci0rCWNvbnRleHQgPSAob3BlbnNlclNJUENvbnRhY3RUYWJsZV9jb250ZXh0ICopaXRl bTsKLSAKLSAJc3dpdGNoKHRhYmxlX2luZm8tPmNvbG51bSkKLSAJewotZGlmZiAtLWdpdCBhL21v ZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRz L29wZW5zZXJTSVBQb3J0VGFibGUuYwotaW5kZXggYTEwNzU4MjczYS4uM2EwM2I3MmIyMSAxMDA2 NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBQb3J0VGFibGUuYwotKysrIGIv bW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFBvcnRUYWJsZS5jCi1AQCAtMTA0LDE5ICsxMDQs MTcgQEAgb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpnZXRSb3coaW50IGlwVHlwZSwgdW5z aWduZWQgaW50ICppcEFkZHJlc3MpCi0gewotIAlpbnQgbGVuZ3RoT2ZPSUQ7Ci0gCW9pZCAqY3Vy cmVudE9JREluZGV4ID0gY3JlYXRlSW5kZXgoaXBUeXBlLCBpcEFkZHJlc3MsICZsZW5ndGhPZk9J RCk7Ci0rCW5ldHNubXBfaW5kZXggdGhlSW5kZXg7Ci0rCW9wZW5zZXJTSVBQb3J0VGFibGVfY29u dGV4dCAqcm93VG9SZXR1cm4gPSBOVUxMOwotIAotIAlpZiAoY3VycmVudE9JREluZGV4ID09IE5V TEwpCi0gCXsKLSAJCXJldHVybiBOVUxMOwotIAl9Ci0gCi0tCW5ldHNubXBfaW5kZXggdGhlSW5k ZXg7Ci0tCi0gCXRoZUluZGV4Lm9pZHMgPSBjdXJyZW50T0lESW5kZXg7Ci0gCXRoZUluZGV4Lmxl biAgPSBsZW5ndGhPZk9JRDsKLSAKLS0Jb3BlbnNlclNJUFBvcnRUYWJsZV9jb250ZXh0ICpyb3dU b1JldHVybjsKLS0KLSAJLyogTGV0cyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYW4gZXhpc3Rp bmcgcm93LiAqLwotIAlyb3dUb1JldHVybiA9IENPTlRBSU5FUl9GSU5EKGNiLmNvbnRhaW5lciwg JnRoZUluZGV4KTsKLSAKLUBAIC0yMTgsOCArMjE2LDYgQEAgdm9pZCBpbml0X29wZW5zZXJTSVBQ b3J0VGFibGUodm9pZCkKLSB7Ci0gCWludCBjdXJTTk1QSW5kZXggPSAwOwotIAotLQlpbml0aWFs aXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKLS0KLSAJdW5zaWduZWQgaW50ICpVRFBM aXN0ID0gTlVMTDsKLSAJdW5zaWduZWQgaW50ICpUQ1BMaXN0ID0gTlVMTDsKLSAJdW5zaWduZWQg aW50ICpUTFNMaXN0ID0gTlVMTDsKLUBAIC0yMjgsNiArMjI0LDggQEAgdm9pZCBpbml0X29wZW5z ZXJTSVBQb3J0VGFibGUodm9pZCkKLSAJaW50IG51bVRDUFNvY2tldHM7Ci0gCWludCBudW1UTFNT b2NrZXRzOwotIAotKwlpbml0aWFsaXplX3RhYmxlX29wZW5zZXJTSVBQb3J0VGFibGUoKTsKLSsK LSAJLyogUmV0cmlldmUgdGhlIGxpc3Qgb2YgdGhlIG51bWJlciBvZiBVRFAgYW5kIFRDUCBzb2Nr ZXRzLiAqLwotIAludW1VRFBTb2NrZXRzID0gZ2V0X3NvY2tldF9saXN0X2Zyb21fcHJvdG8oJlVE UExpc3QsIFBST1RPX1VEUCk7Ci0gCW51bVRDUFNvY2tldHMgPSBnZXRfc29ja2V0X2xpc3RfZnJv bV9wcm90bygmVENQTGlzdCwgUFJPVE9fVENQKTsKLWRpZmYgLS1naXQgYS9tb2R1bGVzL3NubXBz dGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMgYi9tb2R1bGVzL3NubXBzdGF0cy9v cGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlLmMKLWluZGV4IDMyNGRmNjE4ZmQuLmE1NGI1ODM3 NTIgMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQUmVnVXNlckxvb2t1 cFRhYmxlLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyTG9va3Vw VGFibGUuYwotQEAgLTUxNCwyMyArNTE0LDIwIEBAIHZvaWQgb3BlbnNlclNJUFJlZ1VzZXJMb29r dXBUYWJsZV9zZXRfcmVzZXJ2ZTIoIG5ldHNubXBfcmVxdWVzdF9ncm91cCAqcmcgKQotICAqLwot IHZvaWQgb3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9zZXRfYWN0aW9uKCBuZXRzbm1wX3Jl cXVlc3RfZ3JvdXAgKnJnICkKLSB7Ci0tCS8qIEZpcnN0IHRoaW5ncyBmaXJzdCwgd2UgbmVlZCB0 byBjb25zdW1lIHRoZSBpbnRlcnByb2Nlc3MgYnVmZmVyLCBpbgotLQkgKiBjYXNlIHNvbWV0aGlu ZyBoYXMgY2hhbmdlZC4gV2Ugd2FudCB0byByZXR1cm4gdGhlIGZyZXNoZXN0IGRhdGEuICovCi0t CWNvbnN1bWVJbnRlcnByb2Nlc3NCdWZmZXIoKTsKLS0KLSAJYW9yVG9JbmRleFN0cnVjdF90ICpo YXNoUmVjb3JkOwotLQotIAluZXRzbm1wX3ZhcmlhYmxlX2xpc3QgKnZhcjsKLSsJbmV0c25tcF9y ZXF1ZXN0X2dyb3VwX2l0ZW0gKmN1cnJlbnQ7Ci0rCWludCByb3dfZXJyID0gMDsKLSsJb3BlbnNl clNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICpyb3dfY3R4ID0gTlVMTDsKLSsJb3BlbnNl clNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0eCA9IE5VTEw7Ci0gCi0tCW9w ZW5zZXJTSVBSZWdVc2VyTG9va3VwVGFibGVfY29udGV4dCAqcm93X2N0eCA9Ci0tCQkob3BlbnNl clNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPmV4aXN0aW5nX3JvdzsKLS0KLS0J b3BlbnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICp1bmRvX2N0eCA9Ci0tCQkob3Bl bnNlclNJUFJlZ1VzZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsKLSsJLyog Rmlyc3QgdGhpbmdzIGZpcnN0LCB3ZSBuZWVkIHRvIGNvbnN1bWUgdGhlIGludGVycHJvY2VzcyBi dWZmZXIsIGluCi0rCSAqIGNhc2Ugc29tZXRoaW5nIGhhcyBjaGFuZ2VkLiBXZSB3YW50IHRvIHJl dHVybiB0aGUgZnJlc2hlc3QgZGF0YS4gKi8KLSsJY29uc3VtZUludGVycHJvY2Vzc0J1ZmZlcigp OwotIAotLQluZXRzbm1wX3JlcXVlc3RfZ3JvdXBfaXRlbSAqY3VycmVudDsKLSsJcm93X2N0eCA9 IChvcGVuc2VyU0lQUmVnVXNlckxvb2t1cFRhYmxlX2NvbnRleHQgKilyZy0+ZXhpc3Rpbmdfcm93 OwotIAotLQlpbnQJCQlyb3dfZXJyID0gMDsKLSsJdW5kb19jdHggPSAob3BlbnNlclNJUFJlZ1Vz ZXJMb29rdXBUYWJsZV9jb250ZXh0ICopcmctPnVuZG9faW5mbzsKLSAKLSAJLyogQ29weSB0aGUg YWN0dWFsIGRhdGEgdG8gdGhlIHJvdy4gKi8KLSAJZm9yKCBjdXJyZW50ID0gcmctPmxpc3Q7IGN1 cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0ICkgewotZGlmZiAtLWdpdCBhL21vZHVsZXMv c25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29w ZW5zZXJTSVBSZWdVc2VyVGFibGUuYwotaW5kZXggNDNiMTRjZGViNy4uOWNmMDI5ZGY5ZCAxMDA2 NDQKLS0tLSBhL21vZHVsZXMvc25tcHN0YXRzL29wZW5zZXJTSVBSZWdVc2VyVGFibGUuYwotKysr IGIvbW9kdWxlcy9zbm1wc3RhdHMvb3BlbnNlclNJUFJlZ1VzZXJUYWJsZS5jCi1AQCAtMjI1LDE1 ICsyMjUsMTQgQEAgdm9pZCB1cGRhdGVVc2VyKGNoYXIgKnVzZXJOYW1lKQotICAqIFJldHVybnM6 IFRoZSByb3dzIHVzZXJJbmRleCBvbiBzdWNjZXNzLCBhbmQgMCBvdGhlcndpc2UuICovCi0gaW50 IGNyZWF0ZVJlZ1VzZXJSb3coY2hhciAqc3RyaW5nVG9SZWdpc3RlcikKLSB7Ci0tCWludCBzdGF0 aWMgaW5kZXggPSAwOwotLQotLQlpbmRleCsrOwotLQotIAlvcGVuc2VyU0lQUmVnVXNlclRhYmxl X2NvbnRleHQgKnRoZVJvdzsKLS0KLSAJb2lkICAqT0lESW5kZXg7Ci0gCWludCAgc3RyaW5nTGVu Z3RoOwotIAotKwlpbnQgc3RhdGljIGluZGV4ID0gMDsKLSsKLSsJaW5kZXgrKzsKLSsKLSAJdGhl Um93ID0gU05NUF9NQUxMT0NfVFlQRURFRihvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQp OwotIAotIAlpZiAodGhlUm93ID09IE5VTEwpIHsKLUBAIC0yODAsMTIgKzI3OSwxMiBAQCBpbnQg Y3JlYXRlUmVnVXNlclJvdyhjaGFyICpzdHJpbmdUb1JlZ2lzdGVyKQotIC8qIEluaXRpYWxpemVz IHRoZSBvcGVuc2VyU0lQUmVnVXNlclRhYmxlIG1vZHVsZS4gICovCi0gdm9pZCBpbml0X29wZW5z ZXJTSVBSZWdVc2VyVGFibGUodm9pZCkKLSB7Ci0tCS8qIFJlZ2lzdGVyIHRoaXMgdGFibGUgd2l0 aCB0aGUgbWFzdGVyIGFnZW50ICovCi0tCWluaXRpYWxpemVfdGFibGVfb3BlbnNlclNJUFJlZ1Vz ZXJUYWJsZSgpOwotLQotIAkvKiBXZSBuZWVkIHRvIGNyZWF0ZSBhIGRlZmF1bHQgcm93LCBzbyBj cmVhdGUgRGVmYXVsdFVzZXIgKi8KLSAJc3RhdGljIGNoYXIgKmRlZmF1bHRVc2VyID0gIkRlZmF1 bHRVc2VyIjsKLSAKLSsJLyogUmVnaXN0ZXIgdGhpcyB0YWJsZSB3aXRoIHRoZSBtYXN0ZXIgYWdl bnQgKi8KLSsJaW5pdGlhbGl6ZV90YWJsZV9vcGVuc2VyU0lQUmVnVXNlclRhYmxlKCk7Ci0rCi0g CWNyZWF0ZVJlZ1VzZXJSb3coZGVmYXVsdFVzZXIpOwotIH0KLSAKLUBAIC0zNTAsMTQgKzM0OSwx NiBAQCBpbnQgb3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9nZXRfdmFsdWUoCi0gCQluZXRzbm1wX2lu ZGV4ICppdGVtLAotIAkJbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm8gKnRhYmxlX2luZm8gKQot IHsKLSsJbmV0c25tcF92YXJpYWJsZV9saXN0ICp2YXIgPSBOVUxMOwotKwlvcGVuc2VyU0lQUmVn VXNlclRhYmxlX2NvbnRleHQgKmNvbnRleHQgPSBOVUxMOwotKwotIAkvKiBGaXJzdCB0aGluZ3Mg Zmlyc3QsIHdlIG5lZWQgdG8gY29uc3VtZSB0aGUgaW50ZXJwcm9jZXNzIGJ1ZmZlciwgaW4KLSAJ ICogY2FzZSBzb21ldGhpbmcgaGFzIGNoYW5nZWQuIFdlIHdhbnQgdG8gcmV0dXJuIHRoZSBmcmVz aGVzdCBkYXRhLiAqLwotIAljb25zdW1lSW50ZXJwcm9jZXNzQnVmZmVyKCk7Ci0gCi0tCW5ldHNu bXBfdmFyaWFibGVfbGlzdCAqdmFyID0gcmVxdWVzdC0+cmVxdWVzdHZiOwotKwl2YXIgPSByZXF1 ZXN0LT5yZXF1ZXN0dmI7Ci0gCi0tCW9wZW5zZXJTSVBSZWdVc2VyVGFibGVfY29udGV4dCAqY29u dGV4dCA9Ci0tCQkob3BlbnNlclNJUFJlZ1VzZXJUYWJsZV9jb250ZXh0ICopaXRlbTsKLSsJY29u dGV4dCA9IChvcGVuc2VyU0lQUmVnVXNlclRhYmxlX2NvbnRleHQgKilpdGVtOwotIAotIAlzd2l0 Y2godGFibGVfaW5mby0+Y29sbnVtKQotIAl7Ci1kaWZmIC0tZ2l0IGEvbW9kdWxlcy9zbm1wc3Rh dHMvb3BlbnNlclNJUFN0YXR1c0NvZGVzVGFibGUuYyBiL21vZHVsZXMvc25tcHN0YXRzL29wZW5z ZXJTSVBTdGF0dXNDb2Rlc1RhYmxlLmMKLWluZGV4IDJiMzk2YzY5ODUuLjc5ZjNhMTI5YTMgMTAw NjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5j Ci0rKysgYi9tb2R1bGVzL3NubXBzdGF0cy9vcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZS5jCi1A QCAtMzEwLDYgKzMxMCw3IEBAIGludCBvcGVuc2VyU0lQU3RhdHVzQ29kZXNUYWJsZV9jYW5fZGVs ZXRlKAotIG9wZW5zZXJTSVBTdGF0dXNDb2Rlc1RhYmxlX2NvbnRleHQgKgotIG9wZW5zZXJTSVBT dGF0dXNDb2Rlc1RhYmxlX2NyZWF0ZV9yb3coIG5ldHNubXBfaW5kZXgqIGhkcikKLSB7Ci0rCWlu dCBjb2RlSW5kZXg7Ci0gCXN0YXRfdmFyICppbl9zdGF0dXNfY29kZTsKLSAJc3RhdF92YXIgKm91 dF9zdGF0dXNfY29kZTsKLSAKLUBAIC0zMzcsNyArMzM4LDcgQEAgb3BlbnNlclNJUFN0YXR1c0Nv ZGVzVGFibGVfY3JlYXRlX3JvdyggbmV0c25tcF9pbmRleCogaGRyKQotIAkvKiBSZXRyaWV2ZSB0 aGUgaW5kZXggZm9yIHRoZSBzdGF0dXMgY29kZSwgYW5kIHRoZW4gYXNzaWduIHRoZSBzdGFydGlu ZwotIAkgKiB2YWx1ZXMuICBUaGUgc3RhcnRpbmcgdmFsdWVzIHdpbGwgYmUgdXNlZCB0byBjYWxj dWxhdGUgZGVsdGFzIGR1cmluZwotIAkgKiB0aGUgbmV4dCBzbm1wZ2V0L3NubXB3YWxrL3NubXB0 YWJsZS9ldGMuICovCi0tCWludCBjb2RlSW5kZXggPSBjdHgtPm9wZW5zZXJTSVBTdGF0dXNDb2Rl VmFsdWU7Ci0rCWNvZGVJbmRleCA9IGN0eC0+b3BlbnNlclNJUFN0YXR1c0NvZGVWYWx1ZTsKLSAK LSAJY3R4LT5zdGFydGluZ0luU3RhdHVzQ29kZVZhbHVlICA9IDA7Ci0gCWN0eC0+c3RhcnRpbmdP dXRTdGF0dXNDb2RlVmFsdWUgPSAwOwotZGlmZiAtLWdpdCBhL21vZHVsZXMvc25tcHN0YXRzL3Nu bXBzdGF0cy5jIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKLWluZGV4IDk1YmMxYzFm M2IuLjU3NWMwZDEwNjggMTAwNjQ0Ci0tLS0gYS9tb2R1bGVzL3NubXBzdGF0cy9zbm1wc3RhdHMu YwotKysrIGIvbW9kdWxlcy9zbm1wc3RhdHMvc25tcHN0YXRzLmMKLUBAIC0zNDYsNyArMzQ2LDEy IEBAIHN0YXRpYyB2b2lkIHNpZ2NobGRfaGFuZGxlcihpbnQgc2lnbmFsKQotICAqLwotIHN0YXRp YyBpbnQgc3Bhd25fc3lzVXBUaW1lX2NoaWxkKHZvaWQpCi0gewotKwlwaWRfdCByZXN1bHRfcGlk OwotKwlpbnQgc25tcGdldF9mZDsKLSsJaW50IGxvY2FsX3BhdGhfdG9fc25tcGdldF9sZW5ndGg7 Ci0rCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aDsKLSAJc3RydWN0IHNpZ2FjdGlvbiBu ZXdfc2lnY2hsZF9oYW5kbGVyOwotKwljaGFyICphcmdzWzZdOwotIAotIAljaGFyICpsb2NhbF9w YXRoX3RvX3NubXBnZXQgPSAiL3Vzci9iaW4vIjsKLSAJY2hhciAqc25tcGdldF9iaW5hcnlfbmFt ZSAgID0gIi9zbm1wZ2V0IjsKLUBAIC0zNjIsNyArMzY3LDcgQEAgc3RhdGljIGludCBzcGF3bl9z eXNVcFRpbWVfY2hpbGQodm9pZCkKLSAJbmV3X3NpZ2NobGRfaGFuZGxlci5zYV9oYW5kbGVyID0g c2lnY2hsZF9oYW5kbGVyOwotIAlzaWdhY3Rpb24oU0lHQ0hMRCwgJm5ld19zaWdjaGxkX2hhbmRs ZXIsICZvbGRfc2lnY2hsZF9oYW5kbGVyKTsKLSAKLS0JcGlkX3QgcmVzdWx0X3BpZCA9IGZvcmso KTsKLSsJcmVzdWx0X3BpZCA9IGZvcmsoKTsKLSAKLSAJaWYgKHJlc3VsdF9waWQgPCAwKSB7Ci0g CQlMTV9FUlIoImZhaWxlZCB0byBub3Qgc3Bhd24gYW4gYWdlbnQgdG8gY2hlY2sgc3lzVXBUaW1l XG4iKTsKLUBAIC0zODAsNyArMzg1LDcgQEAgc3RhdGljIGludCBzcGF3bl9zeXNVcFRpbWVfY2hp bGQodm9pZCkKLSAKLSAJLyogSWYgd2UgYXJlIGhlcmUsIHRoZW4gd2UgYXJlIHRoZSBjaGlsZCBw cm9jZXNzLiAgTGV0cyBzZXQgdXAgdGhlIGZpbGUKLSAJICogZGVzY3JpcHRvcnMgc28gd2UgY2Fu IGNhcHR1cmUgdGhlIG91dHB1dCBvZiBzbm1wZ2V0LiAqLwotLQlpbnQgc25tcGdldF9mZCA9Ci0r CXNubXBnZXRfZmQgPQotIAkJb3BlbihTTk1QR0VUX1RFTVBfRklMRSwgT19DUkVBVHxPX1RSVU5D fE9fUkRXUiwKLSAJCQkJU19JUlVTUnxTX0lXVVNSfFNfSVJHUlB8U19JUk9USCk7Ci0gCi1AQCAt NDAxLDggKzQwNiwxMiBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGlsZCh2b2lkKQot IAkJCQkiICBEZWZhdWx0aW5nIHRvICVzXG4iLAlzbm1wX2NvbW11bml0eV9zdHJpbmcpOwotIAl9 Ci0gCi0tCWNoYXIgKmFyZ3NbXSA9IHsiLU92IiwgIi1jIiwgIHNubXBfY29tbXVuaXR5X3N0cmlu ZywgImxvY2FsaG9zdCIsCi0tCQlTWVNVUFRJTUVfT0lELCAoY2hhciAqKSAwfTsKLSsJYXJnc1sw XSA9ICItT3YiOwotKwlhcmdzWzFdID0gIi1jIjsKLSsJYXJnc1syXSA9IHNubXBfY29tbXVuaXR5 X3N0cmluZzsKLSsJYXJnc1szXSA9ICJsb2NhbGhvc3QiOwotKwlhcmdzWzRdID0gU1lTVVBUSU1F X09JRDsKLSsJYXJnc1s1XSA9IChjaGFyICopMDsKLSAKLSAJLyogTWFrZSBzdXJlIHdlIGhhdmUg YSBwYXRoIHRvIHNubXBnZXQsIHNvIHdlIGNhbiByZXRyaWV2ZSB0aGUKLSAJICogc3lzVXBUaW1l LiAqLwotQEAgLTQxNiw4ICs0MjUsOCBAQCBzdGF0aWMgaW50IHNwYXduX3N5c1VwVGltZV9jaGls ZCh2b2lkKQotIAkJbG9jYWxfcGF0aF90b19zbm1wZ2V0ID0gc25tcGdldF9wYXRoOwotIAl9Ci0g Ci0tCWludCBsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0gc3RybGVuKGxvY2FsX3BhdGhf dG9fc25tcGdldCk7Ci0tCWludCBzbm1wZ2V0X2JpbmFyeV9uYW1lX2xlbmd0aCAgID0gc3RybGVu KHNubXBnZXRfYmluYXJ5X25hbWUpOwotKwlsb2NhbF9wYXRoX3RvX3NubXBnZXRfbGVuZ3RoID0g c3RybGVuKGxvY2FsX3BhdGhfdG9fc25tcGdldCk7Ci0rCXNubXBnZXRfYmluYXJ5X25hbWVfbGVu Z3RoICAgPSBzdHJsZW4oc25tcGdldF9iaW5hcnlfbmFtZSk7Ci0gCi0gCS8qIEFsbG9jYXRlIGVu b3VnaCBtZW1vcnkgdG8gaG9sZCB0aGUgcGF0aCwgdGhlIGJpbmFyeSBuYW1lLCBhbmQgdGhlCi0g CSAqIG51bGwgY2hhcmFjdGVyLiAgV2UgZG9uJ3QgdXNlIHBrZ19tZW1vcnkgaGVyZS4gKi8KLWRp ZmYgLS1naXQgYS9tb2R1bGVzL3NubXBzdGF0cy91dGlsaXRpZXMuYyBiL21vZHVsZXMvc25tcHN0 YXRzL3V0aWxpdGllcy5jCi1pbmRleCBkZmMwOTc4Yjc0Li4yZjdlZDlhMzA3IDEwMDY0NAotLS0t IGEvbW9kdWxlcy9zbm1wc3RhdHMvdXRpbGl0aWVzLmMKLSsrKyBiL21vZHVsZXMvc25tcHN0YXRz L3V0aWxpdGllcy5jCi1AQCAtNzIsMTMgKzcyLDEzIEBAIGludCBzdHJpbmdIYW5kbGVyU2FuaXR5 Q2hlY2soIG1vZHBhcmFtX3QgdHlwZSwgdm9pZCAqdmFsLCBjaGFyICpwYXJhbWV0ZXJOYW1lKQot IGludCBnZXRfc3RhdGlzdGljKGNoYXIgKnN0YXROYW1lKQotIHsKLSAJaW50IHJlc3VsdCA9IDA7 Ci0tCi0rCXN0YXRfdmFyICp0aGVWYXIgPSBOVUxMOwotIAlzdHIgdGhlU3RyOwotIAotIAl0aGVT dHIucyAgID0gc3RhdE5hbWU7Ci0gCXRoZVN0ci5sZW4gPSBzdHJsZW4oc3RhdE5hbWUpOwotIAot LQlzdGF0X3ZhciAqdGhlVmFyID0gZ2V0X3N0YXQoJnRoZVN0cik7Ci0rCXRoZVZhciA9IGdldF9z dGF0KCZ0aGVTdHIpOwotIAotIAlpZiAodGhlVmFyPT0wKSB7Ci0gCQlMTV9JTkZPKCJmYWlsZWQg dG8gcmV0cmlldmUgc3RhdGlzdGljcyBmb3IgJXNcbiIsIHN0YXROYW1lKTsKCmRpZmYgLS1naXQg YS9vcGVuc2lwcy5zcGVjIGIvb3BlbnNpcHMuc3BlYwppbmRleCA3ZTg2OTdlLi4wODgxZjdlIDEw MDY0NAotLS0gYS9vcGVuc2lwcy5zcGVjCisrKyBiL29wZW5zaXBzLnNwZWMKQEAgLTEsMTAgKzEs MTAgQEAKLSVnbG9iYWwgZ2l0X2NvbW1pdCBlYWVlNDhlMjhlMzFlMDlkNjVmNzM1YjQ3OGQ5Y2E1 N2RjN2NjY2VkCislZ2xvYmFsIGdpdF9jb21taXQgZjlmODUyNjBlNWRlZjczZTNmODU0ZjVlMjJk MTQ4ZDJkOTc3ZTg1ZgogCiAlZ2xvYmFsIEVYQ0xVREVfTU9EVUxFUyBjYWNoZWRiX2Nhc3NhbmRy YSBjYWNoZWRiX2R5bmFtb2RiICV7IT9fd2l0aF9vcmFjbGU6ZGJfb3JhY2xlfSBldmVudF9zcXMg ZXhhbXBsZSBsYXVuY2hfZGFya2x5IG9zcCBydHAuaW8gc25ndGMgdGxzX3dvbGZzc2wKIAogU3Vt bWFyeTogIE9wZW4gU291cmNlIFNJUCBTZXJ2ZXIKIE5hbWU6ICAgICBvcGVuc2lwcwotVmVyc2lv bjogIDMuNi43CitWZXJzaW9uOiAgMy42LjgKIFJlbGVhc2U6ICAlYXV0b3JlbGVhc2UKIExpY2Vu c2U6ICBHUEwtMi4wLW9yLWxhdGVyCiBTb3VyY2UwOiAgaHR0cHM6Ly9naXRodWIuY29tLyV7bmFt ZX0vJXtuYW1lfS9hcmNoaXZlLyV7dmVyc2lvbn0vJXtuYW1lfS0le3ZlcnNpb259LnRhci5negpA QCAtMTQsMTIgKzE0LDkgQEAgUGF0Y2g6IG9wZW5zaXBzLTAwMDEtQ29uc2lzdGVudGx5LXVzZS1y dHBwcm94eS1zd2l0Y2hlcy5wYXRjaAogUGF0Y2g6IG9wZW5zaXBzLTAwMDItQ2xlYW51cC1PcmFj bGUtcy1tYWtlZmlsZXMucGF0Y2gKIFBhdGNoOiBvcGVuc2lwcy0wMDAzLWRiX29yYS1udWxsLXRl cm1pbmF0aW5nLXN0cmluZy1pcy1tb3JlLXNhZmVseS1tb3N0LW0ucGF0Y2gKIFBhdGNoOiBvcGVu c2lwcy0wMDA0LVJldHVybi1hY3R1YWwtcGF5bG9hZC1JRC1pbi1jYXNlLW9mLWEtZHluYW1pYy1w YXlsb2EucGF0Y2gKLVBhdGNoOiBvcGVuc2lwcy0wMDA1LUZpeC1yYWJiaXRtcS1jLWRlcHJlY2F0 ZWQtaGVhZGVyLXdhcm5pbmdzLnBhdGNoCi1QYXRjaDogb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0 aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoCi1QYXRjaDog b3BlbnNpcHMtMDAwNy1GaXgtY29uc3QtY29ycmVjdG5lc3Mtd2FybmluZ3MtaW4tSFRUUC1hbmQt RnJlZVNXSVRDLnBhdGNoCi1QYXRjaDogb3BlbnNpcHMtMDAwOC1GaXgtdW5pbml0aWFsaXplZC12 YV9saXN0LXdhcm5pbmctb24tcHBjNjRsZS1hbmQtaTY4LnBhdGNoCi1QYXRjaDogb3BlbnNpcHMt MDAwOS1GaXgtcG9pbnRlci10cnVuY2F0aW9uLXdhcm5pbmctb24tMzItYml0LWFyY2hpdGVjdHVy LnBhdGNoCi1QYXRjaDogb3BlbnNpcHMtMDAxMC1GaXgtQzkwLXN0eWxlLWRlY2xhcmF0aW9uLXdh cm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCitQYXRjaDogb3BlbnNpcHMtMDAwNS1GaXgt dW5pbml0aWFsaXplZC12YXJpYWJsZS13YXJuaW5ncy1pbi1TUUwtQVBJLWZ1bmN0LnBhdGNoCitQ YXRjaDogb3BlbnNpcHMtMDAwNi1GaXgtdW5pbml0aWFsaXplZC12YV9saXN0LXdhcm5pbmctb24t cHBjNjRsZS1hbmQtaTY4LnBhdGNoCitQYXRjaDogb3BlbnNpcHMtMDAwNy1GaXgtQzkwLXN0eWxl LWRlY2xhcmF0aW9uLXdhcm5pbmdzLWluLXNubXBzdGF0cy1tb2R1LnBhdGNoCiAKIFVSTDogICAg ICBodHRwczovL29wZW5zaXBzLm9yZwogCkBAIC05MTUsNyArOTEyLDcgQEAgY2xpZW50cy4KICVh dXRvc2V0dXAgLXAxCiAKICVidWlsZAotTE9DQUxCQVNFPS91c3IgTklDRVI9MCBDRkxBR1M9IiV7 b3B0ZmxhZ3N9IiBMREZMQUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSIgJXs/X3dpdGhfb3JhY2xl Ok9SQUhPTUU9IiRPUkFDTEVfSE9NRSJ9ICV7X19tYWtlfSBhbGwgbW9kdWxlcy1yZWFkbWUgJXs/ X3NtcF9tZmxhZ3N9IFRMUz0xIFZFUlNJT05UWVBFPWdpdCBUSElTUkVWSVNJT049JXtzdWIgJWdp dF9jb21taXQgMCA5fSBIVFRQMkRfVVNFX1NZU1RFTT15ZXMgSFRUUDJEX1VTRV9TSEFSRUQ9eWVz IFwKK0xPQ0FMQkFTRT0vdXNyIE5JQ0VSPTAgQ0ZMQUdTPSIle29wdGZsYWdzfSIgTERGTEFHUz0i JXs/X19nbG9iYWxfbGRmbGFnc30iICV7P193aXRoX29yYWNsZTpPUkFIT01FPSIkT1JBQ0xFX0hP TUUifSAle19fbWFrZX0gYWxsICV7P19zbXBfbWZsYWdzfSBUTFM9MSBWRVJTSU9OVFlQRT1naXQg VEhJU1JFVklTSU9OPSV7c3ViICVnaXRfY29tbWl0IDAgOX0gSFRUUDJEX1VTRV9TWVNURU09eWVz IEhUVFAyRF9VU0VfU0hBUkVEPXllcyBcCiAgIGV4Y2x1ZGVfbW9kdWxlcz0iJUVYQ0xVREVfTU9E VUxFUyIgXAogICBQWVRIT049L3Vzci9iaW4vcHl0aG9uMyBcCiAgIGNmZ190YXJnZXQ9JXtfc3lz Y29uZmRpcn0vb3BlbnNpcHMvCkBAIC05OTYsMTIgKzk5MywxNSBAQCBpbnN0YWxsIC1EIC1wIC1t IDY0NCBwYWNrYWdpbmcvcmVkaGF0X2ZlZG9yYS8le25hbWV9LnN5c2NvbmZpZyAle2J1aWxkcm9v dH0le19zeQogJWNvbmZpZyhub3JlcGxhY2UpICV7X3N5c2NvbmZkaXJ9L29wZW5zaXBzL3Rscy91 c2VyL3VzZXItcHJpdmtleS5wZW0KIAogJWRpciAle19kYXRhZGlyfS9vcGVuc2lwcy8KKyVkaXIg JXtfZGF0YWRpcn0vb3BlbnNpcHMvZXhhbXBsZXMvCislZGlyICV7X2RhdGFkaXJ9L29wZW5zaXBz L2V4YW1wbGVzL3RlbXBsYXRlcy8KICVkaXIgJXtfZGF0YWRpcn0vb3BlbnNpcHMvZGJ0ZXh0Lwog JWRpciAle19kYXRhZGlyfS9vcGVuc2lwcy9kYnRleHQvb3BlbnNpcHMvCiAlZGlyICV7X2RhdGFk aXJ9L29wZW5zaXBzL21lbnVjb25maWdfdGVtcGxhdGVzLwogCiAle19kYXRhZGlyfS9vcGVuc2lw cy9kYnRleHQvb3BlbnNpcHMvKgogJXtfZGF0YWRpcn0vb3BlbnNpcHMvbWVudWNvbmZpZ190ZW1w bGF0ZXMvKi5tNAorJXtfZGF0YWRpcn0vb3BlbnNpcHMvZXhhbXBsZXMvdGVtcGxhdGVzLyoKIAog JXtfbWFuZGlyfS9tYW41L29wZW5zaXBzLmNmZy41KgogJXtfbWFuZGlyfS9tYW44L29wZW5zaXBz LjgqCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNWY4NzhjMy4uZmVmZjZl ZiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIg KG9wZW5zaXBzLTMuNi43LnRhci5neikgPSAxNzUwYjFiNzZiNTQ5YTI0NDJiOGEyN2Q0YTliMTBh NzlmZjY3MGQxZjdhNzA3NWQ0NzFmY2MwNTBkNDdiMzllYTliNzhkODU0NWFjM2I0MTMyYjM2MTFi MmM0MTE1ODA0MzYzOTM4MjlmYjQ1MTMwYzc5MTVmM2JjYzc5NGYzYgorU0hBNTEyIChvcGVuc2lw cy0zLjYuOC50YXIuZ3opID0gYzg4NmZmZTBmMTk1MGZmZjUyNTNlZGZlNTcyMzRhZWU1NWQ1MDRi OWE3Zjc1ZWRkMmU3NzgxYWJlOTJjZDdjOWVlMWRiYTEzYWJjZmY1NzQzMmU3MjBiODQwYThiYmM1 MDc2NDQ3ZDIwMjM1MjJmOTllMDFlZTIwZjIyMTgyY2IK