From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [RFC PATCH 01/31] cpufreq: move cpufreq.h file to the xen/include/xen location Date: Thu, 9 Nov 2017 19:09:51 +0200 Message-ID: <1510247421-24094-2-git-send-email-olekstysh@gmail.com> References: <1510247421-24094-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCqLa-0003vh-6X for xen-devel@lists.xenproject.org; Thu, 09 Nov 2017 17:10:34 +0000 Received: by mail-lf0-f65.google.com with SMTP id a132so8046369lfa.7 for ; Thu, 09 Nov 2017 09:10:32 -0800 (PST) In-Reply-To: <1510247421-24094-1-git-send-email-olekstysh@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Andrew Cooper , Oleksandr Dmytryshyn , Julien Grall , Oleksandr Tyshchenko , Jan Beulich List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIERteXRyeXNoeW4gPG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxv Z2ljLmNvbT4KCkNwdWZyZXEgZHJpdmVyIHNob3VsZCBiZSBtb3JlIGdlbmVyYWxpemFibGUgKG5v dCBBQ1BJLXNwZWNpZmljKS4KVGh1cyB0aGlzIGZpbGUgc2hvdWxkIGJlIHBsYWNlZCB0byBtb3Jl IGNvbnZlbmllbnQgbG9jYXRpb24uCgpUaGlzIGlzIGEgcmViYXNlZCB2ZXJzaW9uIG9mIHRoZSBv cmlnaW5hbCBwYXRjaDoKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRl dmVsLzIwMTQtMTEvbXNnMDA5MzguaHRtbAoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIERteXRy eXNoeW4gPG9sZWtzYW5kci5kbXl0cnlzaHluQGdsb2JhbGxvZ2ljLmNvbT4KU2lnbmVkLW9mZi1i eTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29tPgpD QzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5k cmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxp bmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGxpbmFyby5vcmc+ Ci0tLQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogeGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHhlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvY3B1ZnJlcS5jICAgICAgICAgIHwgICAyICstCiB4 ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL3Bvd2Vybm93LmMgICAgICAgICB8ICAgMiArLQogeGVu L2FyY2gveDg2L2FjcGkvcG93ZXIuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHhlbi9h cmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jICAgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vZHJp dmVycy9hY3BpL3Btc3RhdC5jICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2RyaXZl cnMvY3B1ZnJlcS9jcHVmcmVxLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHhlbi9kcml2ZXJz L2NwdWZyZXEvY3B1ZnJlcV9taXNjX2dvdmVybm9ycy5jIHwgICAyICstCiB4ZW4vZHJpdmVycy9j cHVmcmVxL2NwdWZyZXFfb25kZW1hbmQuYyAgICAgICB8ICAgNCArLQogeGVuL2RyaXZlcnMvY3B1 ZnJlcS91dGlsaXR5LmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHhlbi9pbmNsdWRlL2FjcGkv Y3B1ZnJlcS9jcHVmcmVxLmggICAgICAgICAgIHwgMjQ1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiB4ZW4vaW5jbHVkZS94ZW4vY3B1ZnJlcS5oICAgICAgICAgICAgICAgICAgICB8IDI0OCAr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDEzIGZpbGVzIGNoYW5nZWQsIDI2MCBpbnNlcnRp b25zKCspLCAyNTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUv YWNwaS9jcHVmcmVxL2NwdWZyZXEuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3hl bi9jcHVmcmVxLmgKCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4 IDViOWUxMjMuLjUyNGUwNjcgMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlO RVJTCkBAIC0yOTUsNiArMjk1LDcgQEAgWDoJeGVuL2FyY2gveDg2L2FjcGkvYm9vdC5jCiBYOgl4 ZW4vYXJjaC94ODYvYWNwaS9saWIuYwogRjoJeGVuL2RyaXZlcnMvY3B1ZnJlcS8KIEY6CXhlbi9p bmNsdWRlL2FjcGkvY3B1ZnJlcS8KK0Y6CXhlbi9pbmNsdWRlL3hlbi9jcHVmcmVxLmgKIAogUFVC TElDIEkvTyBJTlRFUkZBQ0VTIEFORCBQViBEUklWRVJTIERFU0lHTlMKIE06ICBLb25yYWQgUnpl c3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvYWNwaS9jcHVfaWRsZS5jIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYwppbmRl eCA0ODJiOGE3Li5jNjY2MjJlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRs ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTQ5LDcgKzQ5LDcgQEAK ICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogI2luY2x1ZGUgPHB1YmxpYy9wbGF0Zm9ybS5oPgog I2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KLSNpbmNsdWRlIDxhY3BpL2NwdWZyZXEvY3B1ZnJl cS5oPgorI2luY2x1ZGUgPHhlbi9jcHVmcmVxLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KICNp bmNsdWRlIDxhc20vY3B1aWRsZS5oPgogI2luY2x1ZGUgPGFzbS9td2FpdC5oPgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2FjcGkvY3B1ZnJlcS9jcHVmcmVxLmMgYi94ZW4vYXJjaC94ODYvYWNw aS9jcHVmcmVxL2NwdWZyZXEuYwppbmRleCAxZjhkMDJhLi5iZDgyMDI1IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL2NwdWZyZXEuYworKysgYi94ZW4vYXJjaC94ODYvYWNw aS9jcHVmcmVxL2NwdWZyZXEuYwpAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgPGFzbS9wZXJj cHUuaD4KICNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPgogI2luY2x1ZGUgPGFjcGkvYWNwaS5o PgotI2luY2x1ZGUgPGFjcGkvY3B1ZnJlcS9jcHVmcmVxLmg+CisjaW5jbHVkZSA8eGVuL2NwdWZy ZXEuaD4KIAogZW51bSB7CiAgICAgVU5ERUZJTkVEX0NBUEFCTEUgPSAwLApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2FjcGkvY3B1ZnJlcS9wb3dlcm5vdy5jIGIveGVuL2FyY2gveDg2L2FjcGkv Y3B1ZnJlcS9wb3dlcm5vdy5jCmluZGV4IDhmMWFjNzQuLjc5ZjU1YTMgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvcG93ZXJub3cuYworKysgYi94ZW4vYXJjaC94ODYvYWNw aS9jcHVmcmVxL3Bvd2Vybm93LmMKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDxhc20vcGVy Y3B1Lmg+CiAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KICNpbmNsdWRlIDxhY3BpL2FjcGku aD4KLSNpbmNsdWRlIDxhY3BpL2NwdWZyZXEvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPHhlbi9jcHVm cmVxLmg+CiAKICNkZWZpbmUgQ1BVSURfRlJFUV9WT0xUX0NBUEFCSUxJVElFUyAgICAweDgwMDAw MDA3CiAjZGVmaW5lIENQQl9DQVBBQkxFICAgICAgICAgICAgIDB4MDAwMDAyMDAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMgYi94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5j CmluZGV4IDFlNGU1NjguLmJlZWJkNWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL3Bv d2VyLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkvcG93ZXIuYwpAQCAtMjgsNyArMjgsNyBAQAog I2luY2x1ZGUgPGFzbS90Ym9vdC5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CiAjaW5jbHVkZSA8 YXNtL2lvX2FwaWMuaD4KLSNpbmNsdWRlIDxhY3BpL2NwdWZyZXEvY3B1ZnJlcS5oPgorI2luY2x1 ZGUgPHhlbi9jcHVmcmVxLmg+CiAKIHVpbnQzMl90IHN5c3RlbV9yZXNldF9jb3VudGVyID0gMTsK IApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9td2FpdC1pZGxlLmMgYi94ZW4vYXJjaC94 ODYvY3B1L213YWl0LWlkbGUuYwppbmRleCA3NjJkZmYxLi4yOWYwMjg2IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvY3B1L213YWl0LWlkbGUuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L213YWl0 LWlkbGUuYwpAQCAtNTgsNyArNTgsNyBAQAogI2luY2x1ZGUgPGFzbS9ocGV0Lmg+CiAjaW5jbHVk ZSA8YXNtL213YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgotI2luY2x1ZGUgPGFjcGkvY3B1 ZnJlcS9jcHVmcmVxLmg+CisjaW5jbHVkZSA8eGVuL2NwdWZyZXEuaD4KIAogI2RlZmluZSBNV0FJ VF9JRExFX1ZFUlNJT04gIjAuNC4xIgogI3VuZGVmIFBSRUZJWApkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvYWNwaS9wbXN0YXQuYyBiL3hlbi9kcml2ZXJzL2FjcGkvcG1zdGF0LmMKaW5kZXggMmE2 YzRjNy4uMmRiZGUxYyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvYWNwaS9wbXN0YXQuYworKysg Yi94ZW4vZHJpdmVycy9hY3BpL3Btc3RhdC5jCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8 eGVuL2FjcGkuaD4KIAogI2luY2x1ZGUgPHB1YmxpYy9zeXNjdGwuaD4KLSNpbmNsdWRlIDxhY3Bp L2NwdWZyZXEvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPHhlbi9jcHVmcmVxLmg+CiAjaW5jbHVkZSA8 eGVuL3Btc3RhdC5oPgogCiBERUZJTkVfUEVSX0NQVV9SRUFEX01PU1RMWShzdHJ1Y3QgcG1fcHgg KiwgY3B1ZnJlcV9zdGF0aXN0aWNfZGF0YSk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9jcHVm cmVxL2NwdWZyZXEuYyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCmluZGV4IDIxMmY0 OGYuLmFiOTA5ZTIgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCisr KyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCkBAIC00Myw3ICs0Myw3IEBACiAjaW5j bHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KICNpbmNsdWRl IDxhY3BpL2FjcGkuaD4KLSNpbmNsdWRlIDxhY3BpL2NwdWZyZXEvY3B1ZnJlcS5oPgorI2luY2x1 ZGUgPHhlbi9jcHVmcmVxLmg+CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgX19yZWFkX21vc3RseSB1 c3JfbWluX2ZyZXE7CiBzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgdXNyX21heF9m cmVxOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxX21pc2NfZ292ZXJu b3JzLmMgYi94ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXFfbWlzY19nb3Zlcm5vcnMuYwppbmRl eCA3NDZiYmNkLi40YTU1MTBjIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZy ZXFfbWlzY19nb3Zlcm5vcnMuYworKysgYi94ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXFfbWlz Y19nb3Zlcm5vcnMuYwpAQCAtMTgsNyArMTgsNyBAQAogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CiAj aW5jbHVkZSA8eGVuL3BlcmNwdS5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgotI2luY2x1ZGUg PGFjcGkvY3B1ZnJlcS9jcHVmcmVxLmg+CisjaW5jbHVkZSA8eGVuL2NwdWZyZXEuaD4KIAogLyoK ICAqIGNwdWZyZXEgdXNlcnNwYWNlIGdvdmVybm9yCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9j cHVmcmVxL2NwdWZyZXFfb25kZW1hbmQuYyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcV9v bmRlbWFuZC5jCmluZGV4IGZlNmM2M2QuLjFjMzg0ZWMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJz L2NwdWZyZXEvY3B1ZnJlcV9vbmRlbWFuZC5jCisrKyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvY3B1 ZnJlcV9vbmRlbWFuZC5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICB4ZW4vYXJjaC94ODYvYWNw aS9jcHVmcmVxL2NwdWZyZXFfb25kZW1hbmQuYworICogIHhlbi9kcml2ZXJzL2NwdWZyZXEvY3B1 ZnJlcV9vbmRlbWFuZC5jCiAgKgogICogIENvcHlyaWdodCAoQykgIDIwMDEgUnVzc2VsbCBLaW5n CiAgKiAgICAgICAgICAgIChDKSAgMjAwMyBWZW5rYXRlc2ggUGFsbGlwYWRpIDx2ZW5rYXRlc2gu cGFsbGlwYWRpQGludGVsLmNvbT4uCkBAIC0xOCw3ICsxOCw3IEBACiAjaW5jbHVkZSA8eGVuL3R5 cGVzLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAjaW5jbHVkZSA8eGVuL3RpbWVyLmg+Ci0j aW5jbHVkZSA8YWNwaS9jcHVmcmVxL2NwdWZyZXEuaD4KKyNpbmNsdWRlIDx4ZW4vY3B1ZnJlcS5o PgogCiAjZGVmaW5lIERFRl9GUkVRVUVOQ1lfVVBfVEhSRVNIT0xEICAgICAgICAgICAgICAoODAp CiAjZGVmaW5lIE1JTl9GUkVRVUVOQ1lfVVBfVEhSRVNIT0xEICAgICAgICAgICAgICAoMTEpCmRp ZmYgLS1naXQgYS94ZW4vZHJpdmVycy9jcHVmcmVxL3V0aWxpdHkuYyBiL3hlbi9kcml2ZXJzL2Nw dWZyZXEvdXRpbGl0eS5jCmluZGV4IDUzODc5ZmUuLmE2ODdlNWEgMTAwNjQ0Ci0tLSBhL3hlbi9k cml2ZXJzL2NwdWZyZXEvdXRpbGl0eS5jCisrKyBiL3hlbi9kcml2ZXJzL2NwdWZyZXEvdXRpbGl0 eS5jCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAjaW5jbHVkZSA8 eGVuL3RpbWVyLmg+CiAjaW5jbHVkZSA8eGVuL3RyYWNlLmg+Ci0jaW5jbHVkZSA8YWNwaS9jcHVm cmVxL2NwdWZyZXEuaD4KKyNpbmNsdWRlIDx4ZW4vY3B1ZnJlcS5oPgogI2luY2x1ZGUgPHB1Ymxp Yy9zeXNjdGwuaD4KIAogc3RydWN0IGNwdWZyZXFfZHJpdmVyICAgKmNwdWZyZXFfZHJpdmVyOwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYWNwaS9jcHVmcmVxL2NwdWZyZXEuaCBiL3hlbi9pbmNs dWRlL2FjcGkvY3B1ZnJlcS9jcHVmcmVxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGE1Y2Q3ZDAuLjAwMDAwMDAKLS0tIGEveGVuL2luY2x1ZGUvYWNwaS9jcHVmcmVxL2NwdWZyZXEu aAorKysgL2Rldi9udWxsCkBAIC0xLDI0NSArMCwwIEBACi0vKgotICogIHhlbi9pbmNsdWRlL2Fj cGkvY3B1ZnJlcS9jcHVmcmVxLmgKLSAqCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAxIFJ1c3NlbGwg S2luZwotICogICAgICAgICAgICAoQykgMjAwMiAtIDIwMDMgRG9taW5payBCcm9kb3dza2kgPGxp bnV4QGJyb2RvLmRlPgotICoKLSAqICRJZDogY3B1ZnJlcS5oLHYgMS4zNiAyMDAzLzAxLzIwIDE3 OjMxOjQ4IGRiIEV4cCAkCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqLwotCi0jaWZuZGVmIF9f WEVOX0NQVUZSRVFfUE1fSF9fCi0jZGVmaW5lIF9fWEVOX0NQVUZSRVFfUE1fSF9fCi0KLSNpbmNs dWRlIDx4ZW4vdHlwZXMuaD4KLSNpbmNsdWRlIDx4ZW4vbGlzdC5oPgotI2luY2x1ZGUgPHhlbi9j cHVtYXNrLmg+Ci0KLSNpbmNsdWRlICJwcm9jZXNzb3JfcGVyZi5oIgotCi1ERUNMQVJFX1BFUl9D UFUoc3BpbmxvY2tfdCwgY3B1ZnJlcV9zdGF0aXN0aWNfbG9jayk7Ci0KLWV4dGVybiBib29sX3Qg Y3B1ZnJlcV92ZXJib3NlOwotCi1zdHJ1Y3QgY3B1ZnJlcV9nb3Zlcm5vcjsKLQotc3RydWN0IGFj cGlfY3B1ZnJlcV9kYXRhIHsKLSAgICBzdHJ1Y3QgcHJvY2Vzc29yX3BlcmZvcm1hbmNlICphY3Bp X2RhdGE7Ci0gICAgc3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxlICpmcmVxX3RhYmxlOwot ICAgIHVuc2lnbmVkIGludCBhcmNoX2NwdV9mbGFnczsKLX07Ci0KLWV4dGVybiBzdHJ1Y3QgYWNw aV9jcHVmcmVxX2RhdGEgKmNwdWZyZXFfZHJ2X2RhdGFbTlJfQ1BVU107Ci0KLXN0cnVjdCBjcHVm cmVxX2NwdWluZm8gewotICAgIHVuc2lnbmVkIGludCAgICAgICAgbWF4X2ZyZXE7Ci0gICAgdW5z aWduZWQgaW50ICAgICAgICBzZWNvbmRfbWF4X2ZyZXE7ICAgIC8qIFAxIGlmIFR1cmJvIE1vZGUg aXMgb24gKi8KLSAgICB1bnNpZ25lZCBpbnQgICAgICAgIG1pbl9mcmVxOwotICAgIHVuc2lnbmVk IGludCAgICAgICAgdHJhbnNpdGlvbl9sYXRlbmN5OyAvKiBpbiAxMF4oLTkpIHMgPSBuYW5vc2Vj b25kcyAqLwotfTsKLQotc3RydWN0IHBlcmZfbGltaXRzIHsKLSAgICBib29sX3Qgbm9fdHVyYm87 Ci0gICAgYm9vbF90IHR1cmJvX2Rpc2FibGVkOwotICAgIHVpbnQzMl90IHR1cmJvX3BjdDsKLSAg ICB1aW50MzJfdCBtYXhfcGVyZl9wY3Q7IC8qIG1heCBwZXJmb3JtYW5jZSBpbiBwZXJjZW50YWdl ICovCi0gICAgdWludDMyX3QgbWluX3BlcmZfcGN0OyAvKiBtaW4gcGVyZm9ybWFuY2UgaW4gcGVy Y2VudGFnZSAqLwotICAgIHVpbnQzMl90IG1heF9wZXJmOwotICAgIHVpbnQzMl90IG1pbl9wZXJm OwotICAgIHVpbnQzMl90IG1heF9wb2xpY3lfcGN0OwotICAgIHVpbnQzMl90IG1pbl9wb2xpY3lf cGN0OwotfTsKLQotc3RydWN0IGNwdWZyZXFfcG9saWN5IHsKLSAgICBjcHVtYXNrX3Zhcl90ICAg ICAgIGNwdXM7ICAgICAgICAgIC8qIGFmZmVjdGVkIENQVXMgKi8KLSAgICB1bnNpZ25lZCBpbnQg ICAgICAgIHNoYXJlZF90eXBlOyAgIC8qIEFOWSBvciBBTEwgYWZmZWN0ZWQgQ1BVcwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIHNldCBjcHVmcmVxICov Ci0gICAgdW5zaWduZWQgaW50ICAgICAgICBjcHU7ICAgICAgICAgICAvKiBjcHUgbnIgb2YgcmVn aXN0ZXJlZCBDUFUgKi8KLSAgICBzdHJ1Y3QgY3B1ZnJlcV9jcHVpbmZvICAgIGNwdWluZm87Ci0K LSAgICB1bnNpZ25lZCBpbnQgICAgICAgIG1pbjsgICAgLyogaW4ga0h6ICovCi0gICAgdW5zaWdu ZWQgaW50ICAgICAgICBtYXg7ICAgIC8qIGluIGtIeiAqLwotICAgIHVuc2lnbmVkIGludCAgICAg ICAgY3VyOyAgICAvKiBpbiBrSHosIG9ubHkgbmVlZGVkIGlmIGNwdWZyZXEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICogZ292ZXJub3JzIGFyZSB1c2VkICovCi0gICAgc3RydWN0 IHBlcmZfbGltaXRzICBsaW1pdHM7Ci0gICAgc3RydWN0IGNwdWZyZXFfZ292ZXJub3IgICAgICpn b3Zlcm5vcjsKLQotICAgIGJvb2xfdCAgICAgICAgICAgICAgcmVzdW1lOyAvKiBmbGFnIGZvciBj cHVmcmVxIDFzdCBydW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogUzMgd2Fr ZXVwLCBob3RwbHVnIGNwdSwgZXRjICovCi0gICAgczggICAgICAgICAgICAgICAgICB0dXJibzsg IC8qIHRyaXN0YXRlIGZsYWc6IDAgZm9yIHVuc3VwcG9ydGVkCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqIC0xIGZvciBkaXNhYmxlLCAxIGZvciBlbmFibGVkCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqIFNlZSBDUFVGUkVRX1RVUkJPXyogYmVsb3cgZm9yIGRl ZmluZXMgKi8KLSAgICBib29sX3QgICAgICAgICAgICAgIGFwZXJmX21wZXJmOyAvKiBDUFUgaGFz IEFQRVJGL01QRVJGIE1TUnMgKi8KLX07Ci1ERUNMQVJFX1BFUl9DUFUoc3RydWN0IGNwdWZyZXFf cG9saWN5ICosIGNwdWZyZXFfY3B1X3BvbGljeSk7Ci0KLWV4dGVybiBpbnQgX19jcHVmcmVxX3Nl dF9wb2xpY3koc3RydWN0IGNwdWZyZXFfcG9saWN5ICpkYXRhLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSk7Ci0KLSNkZWZpbmUg Q1BVRlJFUV9TSEFSRURfVFlQRV9OT05FICgwKSAvKiBOb25lICovCi0jZGVmaW5lIENQVUZSRVFf U0hBUkVEX1RZUEVfSFcgICAoMSkgLyogSFcgZG9lcyBuZWVkZWQgY29vcmRpbmF0aW9uICovCi0j ZGVmaW5lIENQVUZSRVFfU0hBUkVEX1RZUEVfQUxMICAoMikgLyogQWxsIGRlcGVuZGVudCBDUFVz IHNob3VsZCBzZXQgZnJlcSAqLwotI2RlZmluZSBDUFVGUkVRX1NIQVJFRF9UWVBFX0FOWSAgKDMp IC8qIEZyZXEgY2FuIGJlIHNldCBmcm9tIGFueSBkZXBlbmRlbnQgQ1BVKi8KLQotLyoqKioqKioq KioqKioqKioqKioqIGNwdWZyZXEgdHJhbnNpdGlvbiBub3RpZmllcnMgKioqKioqKioqKioqKioq KioqKi8KLQotc3RydWN0IGNwdWZyZXFfZnJlcXMgewotICAgIHVuc2lnbmVkIGludCBjcHU7ICAg IC8qIGNwdSBuciAqLwotICAgIHVuc2lnbmVkIGludCBvbGQ7Ci0gICAgdW5zaWduZWQgaW50IG5l dzsKLSAgICB1OCBmbGFnczsgICAgICAgICAgICAvKiBmbGFncyBvZiBjcHVmcmVxX2RyaXZlciwg c2VlIGJlbG93LiAqLwotfTsKLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgICAgICAgICAgICAgICAg ICAgICAgICAgQ1BVRlJFUSBHT1ZFUk5PUlMgICAgICAgICAgICAgICAgICAgICAgICAqCi0gKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwotCi0jZGVmaW5lIENQVUZSRVFfR09WX1NUQVJUICAxCi0jZGVmaW5lIENQVUZS RVFfR09WX1NUT1AgICAyCi0jZGVmaW5lIENQVUZSRVFfR09WX0xJTUlUUyAzCi0KLXN0cnVjdCBj cHVmcmVxX2dvdmVybm9yIHsKLSAgICBjaGFyICAgIG5hbWVbQ1BVRlJFUV9OQU1FX0xFTl07Ci0g ICAgaW50ICAgICAoKmdvdmVybm9yKShzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSwKLSAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBldmVudCk7Ci0gICAgYm9vbF90ICAo KmhhbmRsZV9vcHRpb24pKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKLSAg ICBzdHJ1Y3QgbGlzdF9oZWFkIGdvdmVybm9yX2xpc3Q7Ci19OwotCi1leHRlcm4gc3RydWN0IGNw dWZyZXFfZ292ZXJub3IgKmNwdWZyZXFfb3B0X2dvdmVybm9yOwotZXh0ZXJuIHN0cnVjdCBjcHVm cmVxX2dvdmVybm9yIGNwdWZyZXFfZ292X2RiczsKLWV4dGVybiBzdHJ1Y3QgY3B1ZnJlcV9nb3Zl cm5vciBjcHVmcmVxX2dvdl91c2Vyc3BhY2U7Ci1leHRlcm4gc3RydWN0IGNwdWZyZXFfZ292ZXJu b3IgY3B1ZnJlcV9nb3ZfcGVyZm9ybWFuY2U7Ci1leHRlcm4gc3RydWN0IGNwdWZyZXFfZ292ZXJu b3IgY3B1ZnJlcV9nb3ZfcG93ZXJzYXZlOwotCi1leHRlcm4gc3RydWN0IGxpc3RfaGVhZCBjcHVm cmVxX2dvdmVybm9yX2xpc3Q7Ci0KLWV4dGVybiBpbnQgY3B1ZnJlcV9yZWdpc3Rlcl9nb3Zlcm5v cihzdHJ1Y3QgY3B1ZnJlcV9nb3Zlcm5vciAqZ292ZXJub3IpOwotZXh0ZXJuIHN0cnVjdCBjcHVm cmVxX2dvdmVybm9yICpfX2ZpbmRfZ292ZXJub3IoY29uc3QgY2hhciAqZ292ZXJub3IpOwotI2Rl ZmluZSBDUFVGUkVRX0RFRkFVTFRfR09WRVJOT1IgJmNwdWZyZXFfZ292X2RicwotCi0vKiBwYXNz IGEgdGFyZ2V0IHRvIHRoZSBjcHVmcmVxIGRyaXZlciAqLwotZXh0ZXJuIGludCBfX2NwdWZyZXFf ZHJpdmVyX3RhcmdldChzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHRhcmdldF9mcmVxLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmVsYXRpb24pOwotCi0j ZGVmaW5lIEdPVl9HRVRBVkcgICAgIDEKLSNkZWZpbmUgVVNSX0dFVEFWRyAgICAgMgotZXh0ZXJu IGludCBjcHVmcmVxX2RyaXZlcl9nZXRhdmcodW5zaWduZWQgaW50IGNwdSwgdW5zaWduZWQgaW50 IGZsYWcpOwotCi0jZGVmaW5lIENQVUZSRVFfVFVSQk9fRElTQUJMRUQgICAgICAtMQotI2RlZmlu ZSBDUFVGUkVRX1RVUkJPX1VOU1VQUE9SVEVEICAgMAotI2RlZmluZSBDUFVGUkVRX1RVUkJPX0VO QUJMRUQgICAgICAgMQotCi1leHRlcm4gaW50IGNwdWZyZXFfdXBkYXRlX3R1cmJvKGludCBjcHVp ZCwgaW50IG5ld19zdGF0ZSk7Ci1leHRlcm4gaW50IGNwdWZyZXFfZ2V0X3R1cmJvX3N0YXR1cyhp bnQgY3B1aWQpOwotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgCi1fX2NwdWZyZXFfZ292ZXJub3Io c3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksIHVuc2lnbmVkIGludCBldmVudCkKLXsKLSAg ICByZXR1cm4gcG9saWN5LT5nb3Zlcm5vci0+Z292ZXJub3IocG9saWN5LCBldmVudCk7Ci19Ci0K LQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgotICogICAgICAgICAgICAgICAgICAgICAgQ1BVRlJFUSBEUklWRVIg SU5URVJGQUNFICAgICAgICAgICAgICAgICAgICAgKgotICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2RlZmlu ZSBDUFVGUkVRX1JFTEFUSU9OX0wgMCAgLyogbG93ZXN0IGZyZXF1ZW5jeSBhdCBvciBhYm92ZSB0 YXJnZXQgKi8KLSNkZWZpbmUgQ1BVRlJFUV9SRUxBVElPTl9IIDEgIC8qIGhpZ2hlc3QgZnJlcXVl bmN5IGJlbG93IG9yIGF0IHRhcmdldCAqLwotCi1zdHJ1Y3QgY3B1ZnJlcV9kcml2ZXIgewotICAg IGNoYXIgICBuYW1lW0NQVUZSRVFfTkFNRV9MRU5dOwotICAgIGludCAgICAoKmluaXQpKHN0cnVj dCBjcHVmcmVxX3BvbGljeSAqcG9saWN5KTsKLSAgICBpbnQgICAgKCp2ZXJpZnkpKHN0cnVjdCBj cHVmcmVxX3BvbGljeSAqcG9saWN5KTsKLSAgICBpbnQgICAgKCpzZXRwb2xpY3kpKHN0cnVjdCBj cHVmcmVxX3BvbGljeSAqcG9saWN5KTsKLSAgICBpbnQgICAgKCp1cGRhdGUpKGludCBjcHVpZCwg c3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3kpOwotICAgIGludCAgICAoKnRhcmdldCkoc3Ry dWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgdGFyZ2V0X2ZyZXEsCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmVs YXRpb24pOwotICAgIHVuc2lnbmVkIGludCAgICAoKmdldCkodW5zaWduZWQgaW50IGNwdSk7Ci0g ICAgdW5zaWduZWQgaW50ICAgICgqZ2V0YXZnKSh1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25lZCBp bnQgZmxhZyk7Ci0gICAgaW50ICAgICgqZXhpdCkoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xp Y3kpOwotfTsKLQotZXh0ZXJuIHN0cnVjdCBjcHVmcmVxX2RyaXZlciAqY3B1ZnJlcV9kcml2ZXI7 Ci0KLWludCBjcHVmcmVxX3JlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgY3B1ZnJlcV9kcml2ZXIgKik7 Ci0KLXN0YXRpYyBfX2lubGluZV9fCi12b2lkIGNwdWZyZXFfdmVyaWZ5X3dpdGhpbl9saW1pdHMo c3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG1pbiwgdW5zaWduZWQgaW50IG1heCkKLXsKLSAgICBpZiAo cG9saWN5LT5taW4gPCBtaW4pCi0gICAgICAgIHBvbGljeS0+bWluID0gbWluOwotICAgIGlmIChw b2xpY3ktPm1heCA8IG1pbikKLSAgICAgICAgcG9saWN5LT5tYXggPSBtaW47Ci0gICAgaWYgKHBv bGljeS0+bWluID4gbWF4KQotICAgICAgICBwb2xpY3ktPm1pbiA9IG1heDsKLSAgICBpZiAocG9s aWN5LT5tYXggPiBtYXgpCi0gICAgICAgIHBvbGljeS0+bWF4ID0gbWF4OwotICAgIGlmIChwb2xp Y3ktPm1pbiA+IHBvbGljeS0+bWF4KQotICAgICAgICBwb2xpY3ktPm1pbiA9IHBvbGljeS0+bWF4 OwotICAgIHJldHVybjsKLX0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgICAgICAgICAgICAgICAg ICAgIEZSRVFVRU5DWSBUQUJMRSBIRUxQRVJTICAgICAgICAgICAgICAgICAgICAgICAqCi0gKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwotCi0jZGVmaW5lIENQVUZSRVFfRU5UUllfSU5WQUxJRCB+MAotI2RlZmluZSBD UFVGUkVRX1RBQkxFX0VORCAgICAgfjEKLQotc3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxl IHsKLSAgICB1bnNpZ25lZCBpbnQgICAgaW5kZXg7ICAgICAvKiBhbnkgKi8KLSAgICB1bnNpZ25l ZCBpbnQgICAgZnJlcXVlbmN5OyAvKiBrSHogLSBkb2Vzbid0IG5lZWQgdG8gYmUgaW4gYXNjZW5k aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogb3JkZXIgKi8KLX07Ci0KLWlu dCBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJsZV9jcHVpbmZvKHN0cnVjdCBjcHVmcmVxX3BvbGljeSAq cG9saWN5LAotICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJs ZSAqdGFibGUpOwotCi1pbnQgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGVfdmVyaWZ5KHN0cnVjdCBj cHVmcmVxX3BvbGljeSAqcG9saWN5LAotICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjcHVmcmVx X2ZyZXF1ZW5jeV90YWJsZSAqdGFibGUpOwotCi1pbnQgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGVf dGFyZ2V0KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LAotICAgICAgICAgICAgICAgICAg IHN0cnVjdCBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJsZSAqdGFibGUsCi0gICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IHRhcmdldF9mcmVxLAotICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCByZWxhdGlvbiwKLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmluZGV4KTsK LQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCi0gKiAgICAgICAgICAgICAgICAgICAgIFVOSUZJRUQgREVCVUcg SEVMUEVSUyAgICAgICAgICAgICAgICAgICAgICAgICAqCi0gKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdHJ1 Y3QgY3B1X2Ric19pbmZvX3MgewotICAgIHVpbnQ2NF90IHByZXZfY3B1X2lkbGU7Ci0gICAgdWlu dDY0X3QgcHJldl9jcHVfd2FsbDsKLSAgICBzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKmN1cl9wb2xp Y3k7Ci0gICAgc3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxlICpmcmVxX3RhYmxlOwotICAg IGludCBjcHU7Ci0gICAgdW5zaWduZWQgaW50IGVuYWJsZToxOwotICAgIHVuc2lnbmVkIGludCBz dG9wcGFibGU6MTsKLSAgICB1bnNpZ25lZCBpbnQgdHVyYm9fZW5hYmxlZDoxOwotfTsKLQotaW50 IGNwdWZyZXFfZ292ZXJub3JfZGJzKHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LCB1bnNp Z25lZCBpbnQgZXZlbnQpOwotaW50IGdldF9jcHVmcmVxX29uZGVtYW5kX3BhcmEodWludDMyX3Qg KnNhbXBsaW5nX3JhdGVfbWF4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgKnNhbXBsaW5nX3JhdGVfbWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgKnNhbXBsaW5nX3JhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAqdXBfdGhyZXNob2xkKTsKLWludCB3cml0ZV9vbmRlbWFuZF9zYW1wbGluZ19yYXRlKHVu c2lnbmVkIGludCBzYW1wbGluZ19yYXRlKTsKLWludCB3cml0ZV9vbmRlbWFuZF91cF90aHJlc2hv bGQodW5zaWduZWQgaW50IHVwX3RocmVzaG9sZCk7Ci0KLWludCB3cml0ZV91c2Vyc3BhY2Vfc2Nh bGluZ19zZXRzcGVlZCh1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25lZCBpbnQgZnJlcSk7Ci0KLXZv aWQgY3B1ZnJlcV9kYnNfdGltZXJfc3VzcGVuZCh2b2lkKTsKLXZvaWQgY3B1ZnJlcV9kYnNfdGlt ZXJfcmVzdW1lKHZvaWQpOwotCi0jZW5kaWYgLyogX19YRU5fQ1BVRlJFUV9QTV9IX18gKi8KZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9jcHVmcmVxLmggYi94ZW4vaW5jbHVkZS94ZW4vY3B1 ZnJlcS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzhhNmMKLS0tIC9k ZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS94ZW4vY3B1ZnJlcS5oCkBAIC0wLDAgKzEsMjQ4IEBA CisvKgorICogIHhlbi9pbmNsdWRlL2FjcGkvY3B1ZnJlcS9jcHVmcmVxLmgKKyAqCisgKiAgQ29w eXJpZ2h0IChDKSAyMDAxIFJ1c3NlbGwgS2luZworICogICAgICAgICAgICAoQykgMjAwMiAtIDIw MDMgRG9taW5payBCcm9kb3dza2kgPGxpbnV4QGJyb2RvLmRlPgorICoKKyAqICRJZDogY3B1ZnJl cS5oLHYgMS4zNiAyMDAzLzAxLzIwIDE3OjMxOjQ4IGRiIEV4cCAkCisgKgorICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KKyAqLworCisjaWZuZGVmIF9fWEVOX0NQVUZSRVFfUE1fSF9fCisjZGVmaW5lIF9fWEVO X0NQVUZSRVFfUE1fSF9fCisKKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDx4ZW4v bGlzdC5oPgorI2luY2x1ZGUgPHhlbi9wZXJjcHUuaD4KKyNpbmNsdWRlIDx4ZW4vc3BpbmxvY2su aD4KKyNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KKyNpbmNsdWRlIDx4ZW4vY3B1bWFzay5oPgorCisj aW5jbHVkZSA8YWNwaS9jcHVmcmVxL3Byb2Nlc3Nvcl9wZXJmLmg+CisKK0RFQ0xBUkVfUEVSX0NQ VShzcGlubG9ja190LCBjcHVmcmVxX3N0YXRpc3RpY19sb2NrKTsKKworZXh0ZXJuIGJvb2xfdCBj cHVmcmVxX3ZlcmJvc2U7CisKK3N0cnVjdCBjcHVmcmVxX2dvdmVybm9yOworCitzdHJ1Y3QgYWNw aV9jcHVmcmVxX2RhdGEgeworICAgIHN0cnVjdCBwcm9jZXNzb3JfcGVyZm9ybWFuY2UgKmFjcGlf ZGF0YTsKKyAgICBzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGUgKmZyZXFfdGFibGU7Cisg ICAgdW5zaWduZWQgaW50IGFyY2hfY3B1X2ZsYWdzOworfTsKKworZXh0ZXJuIHN0cnVjdCBhY3Bp X2NwdWZyZXFfZGF0YSAqY3B1ZnJlcV9kcnZfZGF0YVtOUl9DUFVTXTsKKworc3RydWN0IGNwdWZy ZXFfY3B1aW5mbyB7CisgICAgdW5zaWduZWQgaW50ICAgICAgICBtYXhfZnJlcTsKKyAgICB1bnNp Z25lZCBpbnQgICAgICAgIHNlY29uZF9tYXhfZnJlcTsgICAgLyogUDEgaWYgVHVyYm8gTW9kZSBp cyBvbiAqLworICAgIHVuc2lnbmVkIGludCAgICAgICAgbWluX2ZyZXE7CisgICAgdW5zaWduZWQg aW50ICAgICAgICB0cmFuc2l0aW9uX2xhdGVuY3k7IC8qIGluIDEwXigtOSkgcyA9IG5hbm9zZWNv bmRzICovCit9OworCitzdHJ1Y3QgcGVyZl9saW1pdHMgeworICAgIGJvb2xfdCBub190dXJibzsK KyAgICBib29sX3QgdHVyYm9fZGlzYWJsZWQ7CisgICAgdWludDMyX3QgdHVyYm9fcGN0OworICAg IHVpbnQzMl90IG1heF9wZXJmX3BjdDsgLyogbWF4IHBlcmZvcm1hbmNlIGluIHBlcmNlbnRhZ2Ug Ki8KKyAgICB1aW50MzJfdCBtaW5fcGVyZl9wY3Q7IC8qIG1pbiBwZXJmb3JtYW5jZSBpbiBwZXJj ZW50YWdlICovCisgICAgdWludDMyX3QgbWF4X3BlcmY7CisgICAgdWludDMyX3QgbWluX3BlcmY7 CisgICAgdWludDMyX3QgbWF4X3BvbGljeV9wY3Q7CisgICAgdWludDMyX3QgbWluX3BvbGljeV9w Y3Q7Cit9OworCitzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgeworICAgIGNwdW1hc2tfdmFyX3QgICAg ICAgY3B1czsgICAgICAgICAgLyogYWZmZWN0ZWQgQ1BVcyAqLworICAgIHVuc2lnbmVkIGludCAg ICAgICAgc2hhcmVkX3R5cGU7ICAgLyogQU5ZIG9yIEFMTCBhZmZlY3RlZCBDUFVzCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgc2V0IGNwdWZyZXEgKi8K KyAgICB1bnNpZ25lZCBpbnQgICAgICAgIGNwdTsgICAgICAgICAgIC8qIGNwdSBuciBvZiByZWdp c3RlcmVkIENQVSAqLworICAgIHN0cnVjdCBjcHVmcmVxX2NwdWluZm8gICAgY3B1aW5mbzsKKwor ICAgIHVuc2lnbmVkIGludCAgICAgICAgbWluOyAgICAvKiBpbiBrSHogKi8KKyAgICB1bnNpZ25l ZCBpbnQgICAgICAgIG1heDsgICAgLyogaW4ga0h6ICovCisgICAgdW5zaWduZWQgaW50ICAgICAg ICBjdXI7ICAgIC8qIGluIGtIeiwgb25seSBuZWVkZWQgaWYgY3B1ZnJlcQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKiBnb3Zlcm5vcnMgYXJlIHVzZWQgKi8KKyAgICBzdHJ1Y3Qg cGVyZl9saW1pdHMgIGxpbWl0czsKKyAgICBzdHJ1Y3QgY3B1ZnJlcV9nb3Zlcm5vciAgICAgKmdv dmVybm9yOworCisgICAgYm9vbF90ICAgICAgICAgICAgICByZXN1bWU7IC8qIGZsYWcgZm9yIGNw dWZyZXEgMXN0IHJ1bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBTMyB3YWtl dXAsIGhvdHBsdWcgY3B1LCBldGMgKi8KKyAgICBzOCAgICAgICAgICAgICAgICAgIHR1cmJvOyAg LyogdHJpc3RhdGUgZmxhZzogMCBmb3IgdW5zdXBwb3J0ZWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICogLTEgZm9yIGRpc2FibGUsIDEgZm9yIGVuYWJsZWQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICogU2VlIENQVUZSRVFfVFVSQk9fKiBiZWxvdyBmb3IgZGVm aW5lcyAqLworICAgIGJvb2xfdCAgICAgICAgICAgICAgYXBlcmZfbXBlcmY7IC8qIENQVSBoYXMg QVBFUkYvTVBFUkYgTVNScyAqLworfTsKK0RFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgY3B1ZnJlcV9w b2xpY3kgKiwgY3B1ZnJlcV9jcHVfcG9saWN5KTsKKworZXh0ZXJuIGludCBfX2NwdWZyZXFfc2V0 X3BvbGljeShzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKmRhdGEsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5KTsKKworI2RlZmluZSBD UFVGUkVRX1NIQVJFRF9UWVBFX05PTkUgKDApIC8qIE5vbmUgKi8KKyNkZWZpbmUgQ1BVRlJFUV9T SEFSRURfVFlQRV9IVyAgICgxKSAvKiBIVyBkb2VzIG5lZWRlZCBjb29yZGluYXRpb24gKi8KKyNk ZWZpbmUgQ1BVRlJFUV9TSEFSRURfVFlQRV9BTEwgICgyKSAvKiBBbGwgZGVwZW5kZW50IENQVXMg c2hvdWxkIHNldCBmcmVxICovCisjZGVmaW5lIENQVUZSRVFfU0hBUkVEX1RZUEVfQU5ZICAoMykg LyogRnJlcSBjYW4gYmUgc2V0IGZyb20gYW55IGRlcGVuZGVudCBDUFUqLworCisvKioqKioqKioq KioqKioqKioqKiogY3B1ZnJlcSB0cmFuc2l0aW9uIG5vdGlmaWVycyAqKioqKioqKioqKioqKioq KioqLworCitzdHJ1Y3QgY3B1ZnJlcV9mcmVxcyB7CisgICAgdW5zaWduZWQgaW50IGNwdTsgICAg LyogY3B1IG5yICovCisgICAgdW5zaWduZWQgaW50IG9sZDsKKyAgICB1bnNpZ25lZCBpbnQgbmV3 OworICAgIHU4IGZsYWdzOyAgICAgICAgICAgIC8qIGZsYWdzIG9mIGNwdWZyZXFfZHJpdmVyLCBz ZWUgYmVsb3cuICovCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICBDUFVGUkVRIEdPVkVSTk9SUyAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKKyNkZWZpbmUgQ1BVRlJFUV9HT1ZfU1RBUlQgIDEKKyNkZWZpbmUgQ1BVRlJF UV9HT1ZfU1RPUCAgIDIKKyNkZWZpbmUgQ1BVRlJFUV9HT1ZfTElNSVRTIDMKKworc3RydWN0IGNw dWZyZXFfZ292ZXJub3IgeworICAgIGNoYXIgICAgbmFtZVtDUFVGUkVRX05BTUVfTEVOXTsKKyAg ICBpbnQgICAgICgqZ292ZXJub3IpKHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LAorICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGV2ZW50KTsKKyAgICBib29sX3QgICgq aGFuZGxlX29wdGlvbikoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOworICAg IHN0cnVjdCBsaXN0X2hlYWQgZ292ZXJub3JfbGlzdDsKK307CisKK2V4dGVybiBzdHJ1Y3QgY3B1 ZnJlcV9nb3Zlcm5vciAqY3B1ZnJlcV9vcHRfZ292ZXJub3I7CitleHRlcm4gc3RydWN0IGNwdWZy ZXFfZ292ZXJub3IgY3B1ZnJlcV9nb3ZfZGJzOworZXh0ZXJuIHN0cnVjdCBjcHVmcmVxX2dvdmVy bm9yIGNwdWZyZXFfZ292X3VzZXJzcGFjZTsKK2V4dGVybiBzdHJ1Y3QgY3B1ZnJlcV9nb3Zlcm5v ciBjcHVmcmVxX2dvdl9wZXJmb3JtYW5jZTsKK2V4dGVybiBzdHJ1Y3QgY3B1ZnJlcV9nb3Zlcm5v ciBjcHVmcmVxX2dvdl9wb3dlcnNhdmU7CisKK2V4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGNwdWZy ZXFfZ292ZXJub3JfbGlzdDsKKworZXh0ZXJuIGludCBjcHVmcmVxX3JlZ2lzdGVyX2dvdmVybm9y KHN0cnVjdCBjcHVmcmVxX2dvdmVybm9yICpnb3Zlcm5vcik7CitleHRlcm4gc3RydWN0IGNwdWZy ZXFfZ292ZXJub3IgKl9fZmluZF9nb3Zlcm5vcihjb25zdCBjaGFyICpnb3Zlcm5vcik7CisjZGVm aW5lIENQVUZSRVFfREVGQVVMVF9HT1ZFUk5PUiAmY3B1ZnJlcV9nb3ZfZGJzCisKKy8qIHBhc3Mg YSB0YXJnZXQgdG8gdGhlIGNwdWZyZXEgZHJpdmVyICovCitleHRlcm4gaW50IF9fY3B1ZnJlcV9k cml2ZXJfdGFyZ2V0KHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqcG9saWN5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGFyZ2V0X2ZyZXEsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCByZWxhdGlvbik7CisKKyNk ZWZpbmUgR09WX0dFVEFWRyAgICAgMQorI2RlZmluZSBVU1JfR0VUQVZHICAgICAyCitleHRlcm4g aW50IGNwdWZyZXFfZHJpdmVyX2dldGF2Zyh1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25lZCBpbnQg ZmxhZyk7CisKKyNkZWZpbmUgQ1BVRlJFUV9UVVJCT19ESVNBQkxFRCAgICAgIC0xCisjZGVmaW5l IENQVUZSRVFfVFVSQk9fVU5TVVBQT1JURUQgICAwCisjZGVmaW5lIENQVUZSRVFfVFVSQk9fRU5B QkxFRCAgICAgICAxCisKK2V4dGVybiBpbnQgY3B1ZnJlcV91cGRhdGVfdHVyYm8oaW50IGNwdWlk LCBpbnQgbmV3X3N0YXRlKTsKK2V4dGVybiBpbnQgY3B1ZnJlcV9nZXRfdHVyYm9fc3RhdHVzKGlu dCBjcHVpZCk7CisKK3N0YXRpYyBfX2lubGluZV9fIGludCAKK19fY3B1ZnJlcV9nb3Zlcm5vcihz dHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSwgdW5zaWduZWQgaW50IGV2ZW50KQoreworICAg IHJldHVybiBwb2xpY3ktPmdvdmVybm9yLT5nb3Zlcm5vcihwb2xpY3ksIGV2ZW50KTsKK30KKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICBDUFVGUkVRIERSSVZFUiBJ TlRFUkZBQ0UgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5l IENQVUZSRVFfUkVMQVRJT05fTCAwICAvKiBsb3dlc3QgZnJlcXVlbmN5IGF0IG9yIGFib3ZlIHRh cmdldCAqLworI2RlZmluZSBDUFVGUkVRX1JFTEFUSU9OX0ggMSAgLyogaGlnaGVzdCBmcmVxdWVu Y3kgYmVsb3cgb3IgYXQgdGFyZ2V0ICovCisKK3N0cnVjdCBjcHVmcmVxX2RyaXZlciB7CisgICAg Y2hhciAgIG5hbWVbQ1BVRlJFUV9OQU1FX0xFTl07CisgICAgaW50ICAgICgqaW5pdCkoc3RydWN0 IGNwdWZyZXFfcG9saWN5ICpwb2xpY3kpOworICAgIGludCAgICAoKnZlcmlmeSkoc3RydWN0IGNw dWZyZXFfcG9saWN5ICpwb2xpY3kpOworICAgIGludCAgICAoKnNldHBvbGljeSkoc3RydWN0IGNw dWZyZXFfcG9saWN5ICpwb2xpY3kpOworICAgIGludCAgICAoKnVwZGF0ZSkoaW50IGNwdWlkLCBz dHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSk7CisgICAgaW50ICAgICgqdGFyZ2V0KShzdHJ1 Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCB0YXJnZXRfZnJlcSwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCByZWxh dGlvbik7CisgICAgdW5zaWduZWQgaW50ICAgICgqZ2V0KSh1bnNpZ25lZCBpbnQgY3B1KTsKKyAg ICB1bnNpZ25lZCBpbnQgICAgKCpnZXRhdmcpKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGlu dCBmbGFnKTsKKyAgICBpbnQgICAgKCpleGl0KShzdHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGlj eSk7Cit9OworCitleHRlcm4gc3RydWN0IGNwdWZyZXFfZHJpdmVyICpjcHVmcmVxX2RyaXZlcjsK KworaW50IGNwdWZyZXFfcmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCBjcHVmcmVxX2RyaXZlciAqKTsK Kworc3RhdGljIF9faW5saW5lX18KK3ZvaWQgY3B1ZnJlcV92ZXJpZnlfd2l0aGluX2xpbWl0cyhz dHJ1Y3QgY3B1ZnJlcV9wb2xpY3kgKnBvbGljeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgbWF4KQoreworICAgIGlmIChw b2xpY3ktPm1pbiA8IG1pbikKKyAgICAgICAgcG9saWN5LT5taW4gPSBtaW47CisgICAgaWYgKHBv bGljeS0+bWF4IDwgbWluKQorICAgICAgICBwb2xpY3ktPm1heCA9IG1pbjsKKyAgICBpZiAocG9s aWN5LT5taW4gPiBtYXgpCisgICAgICAgIHBvbGljeS0+bWluID0gbWF4OworICAgIGlmIChwb2xp Y3ktPm1heCA+IG1heCkKKyAgICAgICAgcG9saWN5LT5tYXggPSBtYXg7CisgICAgaWYgKHBvbGlj eS0+bWluID4gcG9saWN5LT5tYXgpCisgICAgICAgIHBvbGljeS0+bWluID0gcG9saWN5LT5tYXg7 CisgICAgcmV0dXJuOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAg ICAgRlJFUVVFTkNZIFRBQkxFIEhFTFBFUlMgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKKyNkZWZpbmUgQ1BVRlJFUV9FTlRSWV9JTlZBTElEIH4wCisjZGVmaW5lIENQ VUZSRVFfVEFCTEVfRU5EICAgICB+MQorCitzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGUg eworICAgIHVuc2lnbmVkIGludCAgICBpbmRleDsgICAgIC8qIGFueSAqLworICAgIHVuc2lnbmVk IGludCAgICBmcmVxdWVuY3k7IC8qIGtIeiAtIGRvZXNuJ3QgbmVlZCB0byBiZSBpbiBhc2NlbmRp bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBvcmRlciAqLworfTsKKworaW50 IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxlX2NwdWluZm8oc3RydWN0IGNwdWZyZXFfcG9saWN5ICpw b2xpY3ksCisgICAgICAgICAgICAgICAgICAgc3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxl ICp0YWJsZSk7CisKK2ludCBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJsZV92ZXJpZnkoc3RydWN0IGNw dWZyZXFfcG9saWN5ICpwb2xpY3ksCisgICAgICAgICAgICAgICAgICAgc3RydWN0IGNwdWZyZXFf ZnJlcXVlbmN5X3RhYmxlICp0YWJsZSk7CisKK2ludCBjcHVmcmVxX2ZyZXF1ZW5jeV90YWJsZV90 YXJnZXQoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksCisgICAgICAgICAgICAgICAgICAg c3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxlICp0YWJsZSwKKyAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgdGFyZ2V0X2ZyZXEsCisgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IHJlbGF0aW9uLAorICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqaW5kZXgpOwor CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgVU5JRklFRCBERUJVRyBI RUxQRVJTICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0cnVj dCBjcHVfZGJzX2luZm9fcyB7CisgICAgdWludDY0X3QgcHJldl9jcHVfaWRsZTsKKyAgICB1aW50 NjRfdCBwcmV2X2NwdV93YWxsOworICAgIHN0cnVjdCBjcHVmcmVxX3BvbGljeSAqY3VyX3BvbGlj eTsKKyAgICBzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGUgKmZyZXFfdGFibGU7CisgICAg aW50IGNwdTsKKyAgICB1bnNpZ25lZCBpbnQgZW5hYmxlOjE7CisgICAgdW5zaWduZWQgaW50IHN0 b3BwYWJsZToxOworICAgIHVuc2lnbmVkIGludCB0dXJib19lbmFibGVkOjE7Cit9OworCitpbnQg Y3B1ZnJlcV9nb3Zlcm5vcl9kYnMoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksIHVuc2ln bmVkIGludCBldmVudCk7CitpbnQgZ2V0X2NwdWZyZXFfb25kZW1hbmRfcGFyYSh1aW50MzJfdCAq c2FtcGxpbmdfcmF0ZV9tYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCAqc2FtcGxpbmdfcmF0ZV9taW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCAqc2FtcGxpbmdfcmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90ICp1cF90aHJlc2hvbGQpOworaW50IHdyaXRlX29uZGVtYW5kX3NhbXBsaW5nX3JhdGUodW5z aWduZWQgaW50IHNhbXBsaW5nX3JhdGUpOworaW50IHdyaXRlX29uZGVtYW5kX3VwX3RocmVzaG9s ZCh1bnNpZ25lZCBpbnQgdXBfdGhyZXNob2xkKTsKKworaW50IHdyaXRlX3VzZXJzcGFjZV9zY2Fs aW5nX3NldHNwZWVkKHVuc2lnbmVkIGludCBjcHUsIHVuc2lnbmVkIGludCBmcmVxKTsKKwordm9p ZCBjcHVmcmVxX2Ric190aW1lcl9zdXNwZW5kKHZvaWQpOwordm9pZCBjcHVmcmVxX2Ric190aW1l cl9yZXN1bWUodm9pZCk7CisKKyNlbmRpZiAvKiBfX1hFTl9DUFVGUkVRX1BNX0hfXyAqLwotLSAK Mi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK