From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandru Isaila Subject: [PATCH v4 1/3] x86/hvm: Rename enum hvm_copy_result to hvm_translation_result Date: Wed, 20 Sep 2017 12:22:31 +0300 Message-ID: <1505899353-13554-2-git-send-email-aisaila@bitdefender.com> References: <1505899353-13554-1-git-send-email-aisaila@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1505899353-13554-1-git-send-email-aisaila@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: jun.nakajima@intel.com, kevin.tian@intel.com, sstabellini@kernel.org, wei.liu2@citrix.com, suravee.suthikulpanit@amd.com, george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, tim@xen.org, paul.durrant@citrix.com, jbeulich@suse.com, boris.ostrovsky@oracle.com, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkFja2VkLWJ5 OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj aEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29t PgpBY2tlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgotLS0K IHhlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5jICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYv aHZtL2VtdWxhdGUuYyAgICAgICAgfCA0MCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiB4 ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMgICAgICB8 IDIwICsrKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYyAgfCAg NSArKy0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICAgICAgfCAgMiArLQogeGVuL2Fy Y2gveDg2L2h2bS92aXJpZGlhbi5jICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vdm1z aS5jICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jICAg fCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jICAgICAgIHwgMTQgKysrKystLS0t LQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAgIHwgMTIgKysrKy0tLS0tCiB4ZW4v Y29tbW9uL2xpYmVsZi9saWJlbGYtbG9hZGVyLmMgfCAgNCArLS0KIHhlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL3N1cHBvcnQuaCB8IDQwICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEzIGZp bGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvaHZtL2Rv bTBfYnVpbGQuYwppbmRleCAwMjBjMzU1Li5lOGY3NDZjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVpbGQuYwpA QCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHB2aF9zZXR1cF92bXhfcmVhbG1v ZGVfaGVscGVycyhzdHJ1Y3QgZG9tYWluICpkKQogICAgIGlmICggIXB2aF9zdGVhbF9yYW0oZCwg SFZNX1ZNODZfVFNTX1NJWkUsIDEyOCwgR0IoNCksICZnYWRkcikgKQogICAgIHsKICAgICAgICAg aWYgKCBodm1fY29weV90b19ndWVzdF9waHlzKGdhZGRyLCBOVUxMLCBIVk1fVk04Nl9UU1NfU0la RSwgdikgIT0KLSAgICAgICAgICAgICBIVk1DT1BZX29rYXkgKQorICAgICAgICAgICAgIEhWTVRS QU5TX29rYXkgKQogICAgICAgICAgICAgcHJpbnRrKCJVbmFibGUgdG8gemVybyBWTTg2IFRTUyBh cmVhXG4iKTsKICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVk04 Nl9UU1NfU0laRURdID0KICAgICAgICAgICAgIFZNODZfVFNTX1VQREFURUQgfCAoKHVpbnQ2NF90 KUhWTV9WTTg2X1RTU19TSVpFIDw8IDMyKSB8IGdhZGRyOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCA1NDgx MWMxLi5jYzg3NGNlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBp bnQgaW9yZXFfc2VydmVyX3JlYWQoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICppb19oYW5k bGVyLAogICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplLAogICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCAqZGF0YSkKIHsKLSAgICBpZiAoIGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5 cyhkYXRhLCBhZGRyLCBzaXplKSAhPSBIVk1DT1BZX29rYXkgKQorICAgIGlmICggaHZtX2NvcHlf ZnJvbV9ndWVzdF9waHlzKGRhdGEsIGFkZHIsIHNpemUpICE9IEhWTVRSQU5TX29rYXkgKQogICAg ICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAKICAgICByZXR1cm4gWDg2RU1VTF9P S0FZOwpAQCAtODkzLDE4ICs4OTMsMTggQEAgc3RhdGljIGludCBfX2h2bWVtdWxfcmVhZCgKIAog ICAgIHN3aXRjaCAoIHJjICkKICAgICB7Ci0gICAgY2FzZSBIVk1DT1BZX29rYXk6CisgICAgY2Fz ZSBIVk1UUkFOU19va2F5OgogICAgICAgICBicmVhazsKLSAgICBjYXNlIEhWTUNPUFlfYmFkX2d2 YV90b19nZm46CisgICAgY2FzZSBIVk1UUkFOU19iYWRfbGluZWFyX3RvX2dmbjoKICAgICAgICAg eDg2X2VtdWxfcGFnZWZhdWx0KHBmaW5mby5lYywgcGZpbmZvLmxpbmVhciwgJmh2bWVtdWxfY3R4 dC0+Y3R4dCk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKLSAgICBjYXNlIEhW TUNPUFlfYmFkX2dmbl90b19tZm46CisgICAgY2FzZSBIVk1UUkFOU19iYWRfZ2ZuX3RvX21mbjoK ICAgICAgICAgaWYgKCBhY2Nlc3NfdHlwZSA9PSBodm1fYWNjZXNzX2luc25fZmV0Y2ggKQogICAg ICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogCiAgICAgICAgIHJldHVybiBo dm1lbXVsX2xpbmVhcl9tbWlvX3JlYWQoYWRkciwgYnl0ZXMsIHBfZGF0YSwgcGZlYywgaHZtZW11 bF9jdHh0LCAwKTsKLSAgICBjYXNlIEhWTUNPUFlfZ2ZuX3BhZ2VkX291dDoKLSAgICBjYXNlIEhW TUNPUFlfZ2ZuX3NoYXJlZDoKKyAgICBjYXNlIEhWTVRSQU5TX2dmbl9wYWdlZF9vdXQ6CisgICAg Y2FzZSBIVk1UUkFOU19nZm5fc2hhcmVkOgogICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRSWTsK ICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CkBAIC0x MDEyLDE1ICsxMDEyLDE1IEBAIHN0YXRpYyBpbnQgaHZtZW11bF93cml0ZSgKIAogICAgIHN3aXRj aCAoIHJjICkKICAgICB7Ci0gICAgY2FzZSBIVk1DT1BZX29rYXk6CisgICAgY2FzZSBIVk1UUkFO U19va2F5OgogICAgICAgICBicmVhazsKLSAgICBjYXNlIEhWTUNPUFlfYmFkX2d2YV90b19nZm46 CisgICAgY2FzZSBIVk1UUkFOU19iYWRfbGluZWFyX3RvX2dmbjoKICAgICAgICAgeDg2X2VtdWxf cGFnZWZhdWx0KHBmaW5mby5lYywgcGZpbmZvLmxpbmVhciwgJmh2bWVtdWxfY3R4dC0+Y3R4dCk7 CiAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKLSAgICBjYXNlIEhWTUNPUFlfYmFk X2dmbl90b19tZm46CisgICAgY2FzZSBIVk1UUkFOU19iYWRfZ2ZuX3RvX21mbjoKICAgICAgICAg cmV0dXJuIGh2bWVtdWxfbGluZWFyX21taW9fd3JpdGUoYWRkciwgYnl0ZXMsIHBfZGF0YSwgcGZl YywgaHZtZW11bF9jdHh0LCAwKTsKLSAgICBjYXNlIEhWTUNPUFlfZ2ZuX3BhZ2VkX291dDoKLSAg ICBjYXNlIEhWTUNPUFlfZ2ZuX3NoYXJlZDoKKyAgICBjYXNlIEhWTVRSQU5TX2dmbl9wYWdlZF9v dXQ6CisgICAgY2FzZSBIVk1UUkFOU19nZm5fc2hhcmVkOgogICAgICAgICByZXR1cm4gWDg2RU1V TF9SRVRSWTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFC TEU7CkBAIC0xMzg0LDcgKzEzODQsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX21vdnMoCiAg ICAgICAgICAgICByZXR1cm4gcmM7CiAgICAgICAgIH0KIAotICAgICAgICByYyA9IEhWTUNPUFlf b2theTsKKyAgICAgICAgcmMgPSBIVk1UUkFOU19va2F5OwogICAgIH0KICAgICBlbHNlCiAgICAg ICAgIC8qCkBAIC0xMzk0LDE2ICsxMzk0LDE2IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9yZXBfbW92 cygKICAgICAgICAgICovCiAgICAgICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVzdF9waHlzKGJ1 Ziwgc2dwYSwgYnl0ZXMpOwogCi0gICAgaWYgKCByYyA9PSBIVk1DT1BZX29rYXkgKQorICAgIGlm ICggcmMgPT0gSFZNVFJBTlNfb2theSApCiAgICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3Rf cGh5cyhkZ3BhLCBidWYsIGJ5dGVzLCBjdXJyZW50KTsKIAogICAgIHhmcmVlKGJ1Zik7CiAKLSAg ICBpZiAoIHJjID09IEhWTUNPUFlfZ2ZuX3BhZ2VkX291dCApCisgICAgaWYgKCByYyA9PSBIVk1U UkFOU19nZm5fcGFnZWRfb3V0ICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfUkVUUlk7Ci0gICAg aWYgKCByYyA9PSBIVk1DT1BZX2dmbl9zaGFyZWQgKQorICAgIGlmICggcmMgPT0gSFZNVFJBTlNf Z2ZuX3NoYXJlZCApCiAgICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOwotICAgIGlmICggcmMg IT0gSFZNQ09QWV9va2F5ICkKKyAgICBpZiAoIHJjICE9IEhWTVRSQU5TX29rYXkgKQogICAgIHsK ICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJGYWlsZWQgbWVtb3J5LXRvLW1lbW9y eSBSRVAgTU9WUzogc2dwYT0lIgogICAgICAgICAgICAgICAgICBQUklwYWRkciIgZGdwYT0lIlBS SXBhZGRyIiByZXBzPSVsdSBieXRlc19wZXJfcmVwPSV1XG4iLApAQCAtMTUxMywxMCArMTUxMywx MCBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX3N0b3MoCiAKICAgICAgICAgc3dpdGNoICggcmMg KQogICAgICAgICB7Ci0gICAgICAgIGNhc2UgSFZNQ09QWV9nZm5fcGFnZWRfb3V0OgotICAgICAg ICBjYXNlIEhWTUNPUFlfZ2ZuX3NoYXJlZDoKKyAgICAgICAgY2FzZSBIVk1UUkFOU19nZm5fcGFn ZWRfb3V0OgorICAgICAgICBjYXNlIEhWTVRSQU5TX2dmbl9zaGFyZWQ6CiAgICAgICAgICAgICBy ZXR1cm4gWDg2RU1VTF9SRVRSWTsKLSAgICAgICAgY2FzZSBIVk1DT1BZX29rYXk6CisgICAgICAg IGNhc2UgSFZNVFJBTlNfb2theToKICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CiAg ICAgICAgIH0KIApAQCAtMjE3Miw3ICsyMTcyLDcgQEAgdm9pZCBodm1fZW11bGF0ZV9pbml0X3Bl cl9pbnNuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyKSAm JgogICAgICAgICAgICAgIGh2bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVhcihodm1lbXVsX2N0eHQt Pmluc25fYnVmLCBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplb2YoaHZtZW11bF9jdHh0LT5pbnNuX2J1ZiksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBmZWMsIE5VTEwpID09IEhWTUNPUFlfb2theSkgPworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZmVjLCBOVUxMKSA9PSBIVk1UUkFO U19va2F5KSA/CiAgICAgICAgICAgICBzaXplb2YoaHZtZW11bF9jdHh0LT5pbnNuX2J1ZikgOiAw OwogICAgIH0KICAgICBlbHNlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIv eGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA2Y2I5MDNkLi40ODhhY2JmIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAg LTI5MTUsOSArMjkxNSw5IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogCiAgICAgcmMgPSBodm1f Y29weV9mcm9tX2d1ZXN0X2xpbmVhcigKICAgICAgICAgJnRzcywgcHJldl90ci5iYXNlLCBzaXpl b2YodHNzKSwgUEZFQ19wYWdlX3ByZXNlbnQsICZwZmluZm8pOwotICAgIGlmICggcmMgPT0gSFZN Q09QWV9iYWRfZ3ZhX3RvX2dmbiApCisgICAgaWYgKCByYyA9PSBIVk1UUkFOU19iYWRfbGluZWFy X3RvX2dmbiApCiAgICAgICAgIGh2bV9pbmplY3RfcGFnZV9mYXVsdChwZmluZm8uZWMsIHBmaW5m by5saW5lYXIpOwotICAgIGlmICggcmMgIT0gSFZNQ09QWV9va2F5ICkKKyAgICBpZiAoIHJjICE9 IEhWTVRSQU5TX29rYXkgKQogICAgICAgICBnb3RvIG91dDsKIAogICAgIGVmbGFncyA9IHJlZ3Mt PmVmbGFnczsKQEAgLTI5NTUsMjAgKzI5NTUsMjAgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW9mKHRzcyksIHRy YWNlKSAtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW9m KHRzcyksIGVpcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEZFQ19wYWdl X3ByZXNlbnQsICZwZmluZm8pOwotICAgIGlmICggcmMgPT0gSFZNQ09QWV9iYWRfZ3ZhX3RvX2dm biApCisgICAgaWYgKCByYyA9PSBIVk1UUkFOU19iYWRfbGluZWFyX3RvX2dmbiApCiAgICAgICAg IGh2bV9pbmplY3RfcGFnZV9mYXVsdChwZmluZm8uZWMsIHBmaW5mby5saW5lYXIpOwotICAgIGlm ICggcmMgIT0gSFZNQ09QWV9va2F5ICkKKyAgICBpZiAoIHJjICE9IEhWTVRSQU5TX29rYXkgKQog ICAgICAgICBnb3RvIG91dDsKIAogICAgIHJjID0gaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5lYXIo CiAgICAgICAgICZ0c3MsIHRyLmJhc2UsIHNpemVvZih0c3MpLCBQRkVDX3BhZ2VfcHJlc2VudCwg JnBmaW5mbyk7Ci0gICAgaWYgKCByYyA9PSBIVk1DT1BZX2JhZF9ndmFfdG9fZ2ZuICkKKyAgICBp ZiAoIHJjID09IEhWTVRSQU5TX2JhZF9saW5lYXJfdG9fZ2ZuICkKICAgICAgICAgaHZtX2luamVj dF9wYWdlX2ZhdWx0KHBmaW5mby5lYywgcGZpbmZvLmxpbmVhcik7CiAgICAgLyoKLSAgICAgKiBO b3RlOiBUaGUgSFZNQ09QWV9nZm5fc2hhcmVkIGNhc2UgY291bGQgYmUgb3B0aW1pc2VkLCBpZiB0 aGUgY2FsbGVlCisgICAgICogTm90ZTogVGhlIEhWTVRSQU5TX2dmbl9zaGFyZWQgY2FzZSBjb3Vs ZCBiZSBvcHRpbWlzZWQsIGlmIHRoZSBjYWxsZWUKICAgICAgKiBmdW5jdGlvbnMga25ldyB3ZSB3 YW50IFJPIGFjY2Vzcy4KICAgICAgKi8KLSAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCisg ICAgaWYgKCByYyAhPSBIVk1UUkFOU19va2F5ICkKICAgICAgICAgZ290byBvdXQ7CiAKICAgICBu ZXdfY3BsID0gdHNzLmVmbGFncyAmIFg4Nl9FRkxBR1NfVk0gPyAzIDogdHNzLmNzICYgMzsKQEAg LTMwMTAsMTIgKzMwMTAsMTIgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAgICAgIHJjID0g aHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKHRyLmJhc2UgKyBvZmZzZXRvZih0eXBlb2YodHNzKSwg YmFja19saW5rKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRzcy5i YWNrX2xpbmssIHNpemVvZih0c3MuYmFja19saW5rKSwgMCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnBmaW5mbyk7Ci0gICAgICAgIGlmICggcmMgPT0gSFZNQ09QWV9i YWRfZ3ZhX3RvX2dmbiApCisgICAgICAgIGlmICggcmMgPT0gSFZNVFJBTlNfYmFkX2xpbmVhcl90 b19nZm4gKQogICAgICAgICB7CiAgICAgICAgICAgICBodm1faW5qZWN0X3BhZ2VfZmF1bHQocGZp bmZvLmVjLCBwZmluZm8ubGluZWFyKTsKICAgICAgICAgICAgIGV4bl9yYWlzZWQgPSAxOwogICAg ICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKCByYyAhPSBIVk1DT1BZX29rYXkgKQorICAgICAgICBl bHNlIGlmICggcmMgIT0gSFZNVFJBTlNfb2theSApCiAgICAgICAgICAgICBnb3RvIG91dDsKICAg ICB9CiAKQEAgLTMwNTEsMTIgKzMwNTEsMTIgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAg ICAgIHsKICAgICAgICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfbGluZWFyKGxpbmVhcl9h ZGRyLCAmZXJyY29kZSwgb3BzeiwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZwZmluZm8pOwotICAgICAgICAgICAgaWYgKCByYyA9PSBIVk1DT1BZX2JhZF9n dmFfdG9fZ2ZuICkKKyAgICAgICAgICAgIGlmICggcmMgPT0gSFZNVFJBTlNfYmFkX2xpbmVhcl90 b19nZm4gKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGh2bV9pbmplY3RfcGFnZV9m YXVsdChwZmluZm8uZWMsIHBmaW5mby5saW5lYXIpOwogICAgICAgICAgICAgICAgIGV4bl9yYWlz ZWQgPSAxOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoIHJjICE9IEhWTUNP UFlfb2theSApCisgICAgICAgICAgICBlbHNlIGlmICggcmMgIT0gSFZNVFJBTlNfb2theSApCiAg ICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDczLDcgKzMw NzMsNyBAQCB2b2lkIGh2bV90YXNrX3N3aXRjaCgKICNkZWZpbmUgSFZNQ09QWV90b19ndWVzdCAg ICgxdTw8MCkKICNkZWZpbmUgSFZNQ09QWV9waHlzICAgICAgICgwdTw8MikKICNkZWZpbmUgSFZN Q09QWV9saW5lYXIgICAgICgxdTw8MikKLXN0YXRpYyBlbnVtIGh2bV9jb3B5X3Jlc3VsdCBfX2h2 bV9jb3B5KAorc3RhdGljIGVudW0gaHZtX3RyYW5zbGF0aW9uX3Jlc3VsdCBfX2h2bV9jb3B5KAog ICAgIHZvaWQgKmJ1ZiwgcGFkZHJfdCBhZGRyLCBpbnQgc2l6ZSwgc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGludCBmbGFncywKICAgICB1aW50MzJfdCBwZmVjLCBwYWdlZmF1bHRfaW5mb190ICpw ZmluZm8pCiB7CkBAIC0zMDk4LDcgKzMwOTgsNyBAQCBzdGF0aWMgZW51bSBodm1fY29weV9yZXN1 bHQgX19odm1fY29weSgKICAgICAgKiBIZW5jZSB3ZSBiYWlsIGltbWVkaWF0ZWx5IGlmIGNhbGxl ZCBmcm9tIGF0b21pYyBjb250ZXh0LgogICAgICAqLwogICAgIGlmICggaW5fYXRvbWljKCkgKQot ICAgICAgICByZXR1cm4gSFZNQ09QWV91bmhhbmRsZWFibGU7CisgICAgICAgIHJldHVybiBIVk1U UkFOU191bmhhbmRsZWFibGU7CiAjZW5kaWYKIAogICAgIHdoaWxlICggdG9kbyA+IDAgKQpAQCAt MzExMywxNSArMzExMywxNSBAQCBzdGF0aWMgZW51bSBodm1fY29weV9yZXN1bHQgX19odm1fY29w eSgKICAgICAgICAgICAgIGlmICggZ2ZuID09IGdmbl94KElOVkFMSURfR0ZOKSApCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCBwZmVjICYgUEZFQ19wYWdlX3BhZ2VkICkKLSAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIEhWTUNPUFlfZ2ZuX3BhZ2VkX291dDsKKyAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIEhWTVRSQU5TX2dmbl9wYWdlZF9vdXQ7CiAgICAgICAgICAgICAg ICAgaWYgKCBwZmVjICYgUEZFQ19wYWdlX3NoYXJlZCApCi0gICAgICAgICAgICAgICAgICAgIHJl dHVybiBIVk1DT1BZX2dmbl9zaGFyZWQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBIVk1U UkFOU19nZm5fc2hhcmVkOwogICAgICAgICAgICAgICAgIGlmICggcGZpbmZvICkKICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBmaW5mby0+bGluZWFyID0gYWRkcjsKICAg ICAgICAgICAgICAgICAgICAgcGZpbmZvLT5lYyA9IHBmZWMgJiB+UEZFQ19pbXBsaWNpdDsKICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEhWTUNPUFlfYmFkX2d2YV90 b19nZm47CisgICAgICAgICAgICAgICAgcmV0dXJuIEhWTVRSQU5TX2JhZF9saW5lYXJfdG9fZ2Zu OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZ3BhIHw9IChwYWRkcl90KWdmbiA8PCBQQUdF X1NISUZUOwogICAgICAgICB9CkBAIC0zMTM5LDI4ICszMTM5LDI4IEBAIHN0YXRpYyBlbnVtIGh2 bV9jb3B5X3Jlc3VsdCBfX2h2bV9jb3B5KAogICAgICAgICBpZiAoIHYgPT0gY3VycmVudAogICAg ICAgICAgICAgICYmICFuZXN0ZWRodm1fdmNwdV9pbl9ndWVzdG1vZGUodikKICAgICAgICAgICAg ICAmJiBodm1fbW1pb19pbnRlcm5hbChncGEpICkKLSAgICAgICAgICAgIHJldHVybiBIVk1DT1BZ X2JhZF9nZm5fdG9fbWZuOworICAgICAgICAgICAgcmV0dXJuIEhWTVRSQU5TX2JhZF9nZm5fdG9f bWZuOwogCiAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbih2LT5kb21haW4sIGdmbiwg JnAybXQsIFAyTV9VTlNIQVJFKTsKIAogICAgICAgICBpZiAoICFwYWdlICkKLSAgICAgICAgICAg IHJldHVybiBIVk1DT1BZX2JhZF9nZm5fdG9fbWZuOworICAgICAgICAgICAgcmV0dXJuIEhWTVRS QU5TX2JhZF9nZm5fdG9fbWZuOwogCiAgICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyhwMm10KSAp CiAgICAgICAgIHsKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICAgICAgcDJt X21lbV9wYWdpbmdfcG9wdWxhdGUodi0+ZG9tYWluLCBnZm4pOwotICAgICAgICAgICAgcmV0dXJu IEhWTUNPUFlfZ2ZuX3BhZ2VkX291dDsKKyAgICAgICAgICAgIHJldHVybiBIVk1UUkFOU19nZm5f cGFnZWRfb3V0OwogICAgICAgICB9CiAgICAgICAgIGlmICggcDJtX2lzX3NoYXJlZChwMm10KSAp CiAgICAgICAgIHsKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICAgICAgcmV0 dXJuIEhWTUNPUFlfZ2ZuX3NoYXJlZDsKKyAgICAgICAgICAgIHJldHVybiBIVk1UUkFOU19nZm5f c2hhcmVkOwogICAgICAgICB9CiAgICAgICAgIGlmICggcDJtX2lzX2dyYW50KHAybXQpICkKICAg ICAgICAgewogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAgICAgICByZXR1cm4g SFZNQ09QWV91bmhhbmRsZWFibGU7CisgICAgICAgICAgICByZXR1cm4gSFZNVFJBTlNfdW5oYW5k bGVhYmxlOwogICAgICAgICB9CiAKICAgICAgICAgcCA9IChjaGFyICopX19tYXBfZG9tYWluX3Bh Z2UocGFnZSkgKyAoYWRkciAmIH5QQUdFX01BU0spOwpAQCAtMzE5OCwyNCArMzE5OCwyNCBAQCBz dGF0aWMgZW51bSBodm1fY29weV9yZXN1bHQgX19odm1fY29weSgKICAgICAgICAgcHV0X3BhZ2Uo cGFnZSk7CiAgICAgfQogCi0gICAgcmV0dXJuIEhWTUNPUFlfb2theTsKKyAgICByZXR1cm4gSFZN VFJBTlNfb2theTsKIH0KIAotZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3Rf cGh5cygKK2VudW0gaHZtX3RyYW5zbGF0aW9uX3Jlc3VsdCBodm1fY29weV90b19ndWVzdF9waHlz KAogICAgIHBhZGRyX3QgcGFkZHIsIHZvaWQgKmJ1ZiwgaW50IHNpemUsIHN0cnVjdCB2Y3B1ICp2 KQogewogICAgIHJldHVybiBfX2h2bV9jb3B5KGJ1ZiwgcGFkZHIsIHNpemUsIHYsCiAgICAgICAg ICAgICAgICAgICAgICAgSFZNQ09QWV90b19ndWVzdCB8IEhWTUNPUFlfcGh5cywgMCwgTlVMTCk7 CiB9CiAKLWVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5cygKK2Vu dW0gaHZtX3RyYW5zbGF0aW9uX3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoCiAgICAg dm9pZCAqYnVmLCBwYWRkcl90IHBhZGRyLCBpbnQgc2l6ZSkKIHsKICAgICByZXR1cm4gX19odm1f Y29weShidWYsIHBhZGRyLCBzaXplLCBjdXJyZW50LAogICAgICAgICAgICAgICAgICAgICAgIEhW TUNPUFlfZnJvbV9ndWVzdCB8IEhWTUNPUFlfcGh5cywgMCwgTlVMTCk7CiB9CiAKLWVudW0gaHZt X2NvcHlfcmVzdWx0IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcigKK2VudW0gaHZtX3RyYW5zbGF0 aW9uX3Jlc3VsdCBodm1fY29weV90b19ndWVzdF9saW5lYXIoCiAgICAgdW5zaWduZWQgbG9uZyBh ZGRyLCB2b2lkICpidWYsIGludCBzaXplLCB1aW50MzJfdCBwZmVjLAogICAgIHBhZ2VmYXVsdF9p bmZvX3QgKnBmaW5mbykKIHsKQEAgLTMyMjQsNyArMzIyNCw3IEBAIGVudW0gaHZtX2NvcHlfcmVz dWx0IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcigKICAgICAgICAgICAgICAgICAgICAgICBQRkVD X3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzIHwgcGZlYywgcGZpbmZvKTsKIH0KIAot ZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5lYXIoCitlbnVtIGh2 bV90cmFuc2xhdGlvbl9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF9saW5lYXIoCiAgICAgdm9p ZCAqYnVmLCB1bnNpZ25lZCBsb25nIGFkZHIsIGludCBzaXplLCB1aW50MzJfdCBwZmVjLAogICAg IHBhZ2VmYXVsdF9pbmZvX3QgKnBmaW5mbykKIHsKQEAgLTMyMzMsNyArMzIzMyw3IEBAIGVudW0g aHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAogICAgICAgICAgICAg ICAgICAgICAgIFBGRUNfcGFnZV9wcmVzZW50IHwgcGZlYywgcGZpbmZvKTsKIH0KIAotZW51bSBo dm1fY29weV9yZXN1bHQgaHZtX2ZldGNoX2Zyb21fZ3Vlc3RfbGluZWFyKAorZW51bSBodm1fdHJh bnNsYXRpb25fcmVzdWx0IGh2bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVhcigKICAgICB2b2lkICpi dWYsIHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IHNpemUsIHVpbnQzMl90IHBmZWMsCiAgICAgcGFn ZWZhdWx0X2luZm9fdCAqcGZpbmZvKQogewpAQCAtMzY3MCw3ICszNjcwLDcgQEAgdm9pZCBodm1f dWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzaWcpLCBodm1fYWNjZXNzX2luc25fZmV0 Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3MsICZhZGRyKSAm JgogICAgICAgICAgICAgIChodm1fZmV0Y2hfZnJvbV9ndWVzdF9saW5lYXIoc2lnLCBhZGRyLCBz aXplb2Yoc2lnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdh bGssIE5VTEwpID09IEhWTUNPUFlfb2theSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHdhbGssIE5VTEwpID09IEhWTVRSQU5TX29rYXkpICYmCiAgICAgICAg ICAgICAgKG1lbWNtcChzaWcsICJceGZceGJ4ZW4iLCBzaXplb2Yoc2lnKSkgPT0gMCkgKQogICAg ICAgICB7CiAgICAgICAgICAgICByZWdzLT5yaXAgKz0gc2l6ZW9mKHNpZyk7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jIGIveGVuL2FyY2gveDg2L2h2bS9pbnRlcmNl cHQuYwppbmRleCBlNTFlZmQ1Li5lZjgyNDE5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2ludGVyY2VwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMKQEAgLTEzNiwx NCArMTM2LDE0IEBAIGludCBodm1fcHJvY2Vzc19pb19pbnRlcmNlcHQoY29uc3Qgc3RydWN0IGh2 bV9pb19oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgIHN3aXRjaCAoIGh2bV9jb3B5 X3RvX2d1ZXN0X3BoeXMocC0+ZGF0YSArIHN0ZXAgKiBpLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEsIHAtPnNpemUsIGN1cnJlbnQpICkKICAg ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgY2FzZSBIVk1DT1BZX29rYXk6CisgICAg ICAgICAgICAgICAgY2FzZSBIVk1UUkFOU19va2F5OgogICAgICAgICAgICAgICAgICAgICBicmVh azsKLSAgICAgICAgICAgICAgICBjYXNlIEhWTUNPUFlfYmFkX2dmbl90b19tZm46CisgICAgICAg ICAgICAgICAgY2FzZSBIVk1UUkFOU19iYWRfZ2ZuX3RvX21mbjoKICAgICAgICAgICAgICAgICAg ICAgLyogRHJvcCB0aGUgd3JpdGUgYXMgcmVhbCBoYXJkd2FyZSB3b3VsZC4gKi8KICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgY2FzZSBIVk1DT1BZX2JhZF9n dmFfdG9fZ2ZuOgotICAgICAgICAgICAgICAgIGNhc2UgSFZNQ09QWV9nZm5fcGFnZWRfb3V0Ogot ICAgICAgICAgICAgICAgIGNhc2UgSFZNQ09QWV9nZm5fc2hhcmVkOgorICAgICAgICAgICAgICAg IGNhc2UgSFZNVFJBTlNfYmFkX2xpbmVhcl90b19nZm46CisgICAgICAgICAgICAgICAgY2FzZSBI Vk1UUkFOU19nZm5fcGFnZWRfb3V0OgorICAgICAgICAgICAgICAgIGNhc2UgSFZNVFJBTlNfZ2Zu X3NoYXJlZDoKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CiAgICAg ICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICAgICAgICAgIGRlZmF1 bHQ6CkBAIC0xNjQsMTQgKzE2NCwxNCBAQCBpbnQgaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KGNv bnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwKICAgICAgICAgICAgICAgICBzd2l0 Y2ggKCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoJmRhdGEsIHAtPmRhdGEgKyBzdGVwICogaSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC0+c2l6 ZSkgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjYXNlIEhWTUNPUFlfb2th eToKKyAgICAgICAgICAgICAgICBjYXNlIEhWTVRSQU5TX29rYXk6CiAgICAgICAgICAgICAgICAg ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgSFZNQ09QWV9iYWRfZ2ZuX3RvX21mbjoK KyAgICAgICAgICAgICAgICBjYXNlIEhWTVRSQU5TX2JhZF9nZm5fdG9fbWZuOgogICAgICAgICAg ICAgICAgICAgICBkYXRhID0gfjA7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgICAgIGNhc2UgSFZNQ09QWV9iYWRfZ3ZhX3RvX2dmbjoKLSAgICAgICAgICAgICAgICBj YXNlIEhWTUNPUFlfZ2ZuX3BhZ2VkX291dDoKLSAgICAgICAgICAgICAgICBjYXNlIEhWTUNPUFlf Z2ZuX3NoYXJlZDoKKyAgICAgICAgICAgICAgICBjYXNlIEhWTVRSQU5TX2JhZF9saW5lYXJfdG9f Z2ZuOgorICAgICAgICAgICAgICAgIGNhc2UgSFZNVFJBTlNfZ2ZuX3BhZ2VkX291dDoKKyAgICAg ICAgICAgICAgICBjYXNlIEhWTVRSQU5TX2dmbl9zaGFyZWQ6CiAgICAgICAgICAgICAgICAgICAg IEFTU0VSVF9VTlJFQUNIQUJMRSgpOwogICAgICAgICAgICAgICAgICAgICAvKiBmYWxsIHRocm91 Z2ggKi8KICAgICAgICAgICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS9zdm0vbmVzdGVkc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYwpp bmRleCA4ZmQ5YzIzLi42NmExNzc3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9u ZXN0ZWRzdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYwpAQCAtMzU3 LDcgKzM1Nyw3IEBAIHN0YXRpYyBpbnQgbnN2bV92bXJ1bl9wZXJtaXNzaW9ubWFwKHN0cnVjdCB2 Y3B1ICp2LCBib29sX3QgdmlvcG0pCiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICpob3N0X3ZtY2Ig PSBhcmNoX3N2bS0+dm1jYjsKICAgICB1bnNpZ25lZCBsb25nICpuc19tc3JwbV9wdHI7CiAgICAg dW5zaWduZWQgaW50IGk7Ci0gICAgZW51bSBodm1fY29weV9yZXN1bHQgcmV0OworICAgIGVudW0g aHZtX3RyYW5zbGF0aW9uX3Jlc3VsdCByZXQ7CiAgICAgdW5zaWduZWQgbG9uZyAqbnNfdmlvbWFw OwogICAgIGJvb2xfdCBpb3BvcnRfODAgPSAxLCBpb3BvcnRfZWQgPSAxOwogCkBAIC0zNjUsNyAr MzY1LDggQEAgc3RhdGljIGludCBuc3ZtX3ZtcnVuX3Blcm1pc3Npb25tYXAoc3RydWN0IHZjcHUg KnYsIGJvb2xfdCB2aW9wbSkKIAogICAgIHJldCA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5cyhz dm0tPm5zX2NhY2hlZF9tc3JwbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bnNfdm1jYi0+X21zcnBtX2Jhc2VfcGEsIE1TUlBNX1NJWkUpOwotICAgIGlmIChyZXQgIT0gSFZN Q09QWV9va2F5KSB7CisgICAgaWYgKCByZXQgIT0gSFZNVFJBTlNfb2theSApCisgICAgewogICAg ICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAiaHZtX2NvcHlfZnJvbV9ndWVzdF9waHlzIG1zcnBt ICV1XG4iLCByZXQpOwogICAgICAgICByZXR1cm4gMTsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL3N2bS9zdm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCmluZGV4 IDZiMTliMTYuLjEyZGRjOGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCkBAIC0xMjY2LDcgKzEyNjYsNyBAQCBz dGF0aWMgdm9pZCBzdm1fZW11bF9zd2ludF9pbmplY3Rpb24oc3RydWN0IHg4Nl9ldmVudCAqZXZl bnQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRkVDX2ltcGxpY2l0LCAm cGZpbmZvKTsKICAgICBpZiAoIHJjICkKICAgICB7Ci0gICAgICAgIGlmICggcmMgPT0gSFZNQ09Q WV9iYWRfZ3ZhX3RvX2dmbiApCisgICAgICAgIGlmICggcmMgPT0gSFZNVFJBTlNfYmFkX2xpbmVh cl90b19nZm4gKQogICAgICAgICB7CiAgICAgICAgICAgICBmYXVsdCA9IFRSQVBfcGFnZV9mYXVs dDsKICAgICAgICAgICAgIGVjID0gcGZpbmZvLmVjOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS92aXJpZGlhbi5jIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi5jCmluZGV4IGUwNTQ2 ZjMuLmYwZmE1OWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYworKysg Yi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKQEAgLTkxNCw3ICs5MTQsNyBAQCBpbnQgdmly aWRpYW5faHlwZXJjYWxsKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgICAgIC8q IEdldCBpbnB1dCBwYXJhbWV0ZXJzLiAqLwogICAgICAgICBpZiAoIGh2bV9jb3B5X2Zyb21fZ3Vl c3RfcGh5cygmaW5wdXRfcGFyYW1zLCBpbnB1dF9wYXJhbXNfZ3BhLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW5wdXRfcGFyYW1zKSkgIT0gSFZNQ09QWV9v a2F5ICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGlucHV0 X3BhcmFtcykpICE9IEhWTVRSQU5TX29rYXkgKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg ICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jIGIveGVuL2FyY2gveDg2 L2h2bS92bXNpLmMKaW5kZXggOWIzNWU5Yi4uNzEyNmRlNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92bXNpLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKQEAgLTYwOSw3ICs2 MDksNyBAQCB2b2lkIG1zaXhfd3JpdGVfY29tcGxldGlvbihzdHJ1Y3QgdmNwdSAqdikKICAgICAg ICAgaWYgKCBkZXNjICYmCiAgICAgICAgICAgICAgaHZtX2NvcHlfZnJvbV9ndWVzdF9waHlzKCZk YXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92 Y3B1Lmh2bV9pby5tc2l4X3Nub29wX2dwYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZW9mKGRhdGEpKSA9PSBIVk1DT1BZX29rYXkgJiYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRhdGEpKSA9PSBIVk1UUkFOU19va2F5ICYm CiAgICAgICAgICAgICAgIShkYXRhICYgUENJX01TSVhfVkVDVE9SX0JJVE1BU0spICkKICAgICAg ICAgICAgIGN0cmxfYWRkcmVzcyA9IHNub29wX2FkZHI7CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxt b2RlLmMKaW5kZXggMTFiZGU1OC4uMTJkNDNhZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bXgvcmVhbG1vZGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCkBA IC00MCw3ICs0MCw3IEBAIHN0YXRpYyB2b2lkIHJlYWxtb2RlX2RlbGl2ZXJfZXhjZXB0aW9uKAog ICAgIGxhc3RfYnl0ZSA9ICh2ZWN0b3IgKiA0KSArIDM7CiAgICAgaWYgKCBpZHRyLT5saW1pdCA8 IGxhc3RfYnl0ZSB8fAogICAgICAgICAgaHZtX2NvcHlfZnJvbV9ndWVzdF9waHlzKCZjc19laXAs IGlkdHItPmJhc2UgKyB2ZWN0b3IgKiA0LCA0KSAhPQotICAgICAgICAgSFZNQ09QWV9va2F5ICkK KyAgICAgICAgIEhWTVRSQU5TX29rYXkgKQogICAgIHsKICAgICAgICAgLyogU29mdHdhcmUgaW50 ZXJydXB0PyAqLwogICAgICAgICBpZiAoIGluc25fbGVuICE9IDAgKQpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS92bXgvdnZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCmlu ZGV4IGUyMzYxYTEuLmNkMGVlMGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2 bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKQEAgLTQ4MSw5ICs0ODEsOSBA QCBzdGF0aWMgaW50IGRlY29kZV92bXhfaW5zdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywK ICAgICAgICAgICAgIGludCByYyA9IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKHBvcGVyYW5k UywgYmFzZSwgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDAsICZwZmluZm8pOwogCi0gICAgICAgICAgICBpZiAoIHJjID09IEhWTUNPUFlfYmFk X2d2YV90b19nZm4gKQorICAgICAgICAgICAgaWYgKCByYyA9PSBIVk1UUkFOU19iYWRfbGluZWFy X3RvX2dmbiApCiAgICAgICAgICAgICAgICAgaHZtX2luamVjdF9wYWdlX2ZhdWx0KHBmaW5mby5l YywgcGZpbmZvLmxpbmVhcik7Ci0gICAgICAgICAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSAp CisgICAgICAgICAgICBpZiAoIHJjICE9IEhWTVRSQU5TX29rYXkgKQogICAgICAgICAgICAgICAg IHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICAgICAgfQogICAgICAgICBkZWNvZGUtPm1l bSA9IGJhc2U7CkBAIC0xNDY4LDcgKzE0NjgsNyBAQCBpbnQgbnZteF9oYW5kbGVfdm14b24oc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgfQogCiAgICAgcmMgPSBodm1fY29weV9mcm9t X2d1ZXN0X3BoeXMoJm52bWNzX3JldmlkLCBncGEsIHNpemVvZihudm1jc19yZXZpZCkpOwotICAg IGlmICggcmMgIT0gSFZNQ09QWV9va2F5IHx8CisgICAgaWYgKCByYyAhPSBIVk1UUkFOU19va2F5 IHx8CiAgICAgICAgICAobnZtY3NfcmV2aWQgJiB+Vk1YX0JBU0lDX1JFVklTSU9OX01BU0spIHx8 CiAgICAgICAgICAoKG52bWNzX3JldmlkIF4gdm14X2Jhc2ljX21zcikgJiBWTVhfQkFTSUNfUkVW SVNJT05fTUFTSykgKQogICAgIHsKQEAgLTE3NDYsOSArMTc0Niw5IEBAIGludCBudm14X2hhbmRs ZV92bXB0cnN0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIGdwYSA9IG52Y3B1LT5u dl92dm1jeGFkZHI7CiAKICAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X2xpbmVhcihkZWNvZGUu bWVtLCAmZ3BhLCBkZWNvZGUubGVuLCAwLCAmcGZpbmZvKTsKLSAgICBpZiAoIHJjID09IEhWTUNP UFlfYmFkX2d2YV90b19nZm4gKQorICAgIGlmICggcmMgPT0gSFZNVFJBTlNfYmFkX2xpbmVhcl90 b19nZm4gKQogICAgICAgICBodm1faW5qZWN0X3BhZ2VfZmF1bHQocGZpbmZvLmVjLCBwZmluZm8u bGluZWFyKTsKLSAgICBpZiAoIHJjICE9IEhWTUNPUFlfb2theSApCisgICAgaWYgKCByYyAhPSBI Vk1UUkFOU19va2F5ICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogCiAgICAg dm1zdWNjZWVkKHJlZ3MpOwpAQCAtMTgzNSw5ICsxODM1LDkgQEAgaW50IG52bXhfaGFuZGxlX3Zt cmVhZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBzd2l0Y2ggKCBkZWNvZGUudHlw ZSApIHsKICAgICBjYXNlIFZNWF9JTlNUX01FTVJFR19UWVBFX01FTU9SWToKICAgICAgICAgcmMg PSBodm1fY29weV90b19ndWVzdF9saW5lYXIoZGVjb2RlLm1lbSwgJnZhbHVlLCBkZWNvZGUubGVu LCAwLCAmcGZpbmZvKTsKLSAgICAgICAgaWYgKCByYyA9PSBIVk1DT1BZX2JhZF9ndmFfdG9fZ2Zu ICkKKyAgICAgICAgaWYgKCByYyA9PSBIVk1UUkFOU19iYWRfbGluZWFyX3RvX2dmbiApCiAgICAg ICAgICAgICBodm1faW5qZWN0X3BhZ2VfZmF1bHQocGZpbmZvLmVjLCBwZmluZm8ubGluZWFyKTsK LSAgICAgICAgaWYgKCByYyAhPSBIVk1DT1BZX29rYXkgKQorICAgICAgICBpZiAoIHJjICE9IEhW TVRSQU5TX29rYXkgKQogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogICAg ICAgICBicmVhazsKICAgICBjYXNlIFZNWF9JTlNUX01FTVJFR19UWVBFX1JFRzoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hh ZG93L2NvbW1vbi5jCmluZGV4IDM5MjZlZDYuLjhiOTMxMGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21t b24uYwpAQCAtMTk2LDE2ICsxOTYsMTYgQEAgaHZtX3JlYWQoZW51bSB4ODZfc2VnbWVudCBzZWcs CiAKICAgICBzd2l0Y2ggKCByYyApCiAgICAgewotICAgIGNhc2UgSFZNQ09QWV9va2F5OgorICAg IGNhc2UgSFZNVFJBTlNfb2theToKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKLSAgICBj YXNlIEhWTUNPUFlfYmFkX2d2YV90b19nZm46CisgICAgY2FzZSBIVk1UUkFOU19iYWRfbGluZWFy X3RvX2dmbjoKICAgICAgICAgeDg2X2VtdWxfcGFnZWZhdWx0KHBmaW5mby5lYywgcGZpbmZvLmxp bmVhciwgJnNoX2N0eHQtPmN0eHQpOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047 Ci0gICAgY2FzZSBIVk1DT1BZX2JhZF9nZm5fdG9fbWZuOgotICAgIGNhc2UgSFZNQ09QWV91bmhh bmRsZWFibGU6CisgICAgY2FzZSBIVk1UUkFOU19iYWRfZ2ZuX3RvX21mbjoKKyAgICBjYXNlIEhW TVRSQU5TX3VuaGFuZGxlYWJsZToKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxF OwotICAgIGNhc2UgSFZNQ09QWV9nZm5fcGFnZWRfb3V0OgotICAgIGNhc2UgSFZNQ09QWV9nZm5f c2hhcmVkOgorICAgIGNhc2UgSFZNVFJBTlNfZ2ZuX3BhZ2VkX291dDoKKyAgICBjYXNlIEhWTVRS QU5TX2dmbl9zaGFyZWQ6CiAgICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOwogICAgIH0KIApk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9saWJlbGYvbGliZWxmLWxvYWRlci5jIGIveGVuL2NvbW1v bi9saWJlbGYvbGliZWxmLWxvYWRlci5jCmluZGV4IGM4YjdlYzkuLjBmNDY4NzIgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vbGliZWxmL2xpYmVsZi1sb2FkZXIuYworKysgYi94ZW4vY29tbW9uL2xp YmVsZi9saWJlbGYtbG9hZGVyLmMKQEAgLTE1NCwxMCArMTU0LDEwIEBAIHN0YXRpYyBlbGZfZXJy b3JzdGF0dXMgZWxmX21lbWNweShzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqZHN0LCB2b2lkICpzcmMs CiAjaWZkZWYgQ09ORklHX1g4NgogICAgIGlmICggaXNfaHZtX3ZjcHUodikgKQogICAgIHsKLSAg ICAgICAgZW51bSBodm1fY29weV9yZXN1bHQgcmM7CisgICAgICAgIGVudW0gaHZtX3RyYW5zbGF0 aW9uX3Jlc3VsdCByYzsKIAogICAgICAgICByYyA9IGh2bV9jb3B5X3RvX2d1ZXN0X3BoeXMoKHBh ZGRyX3QpZHN0LCBzcmMsIHNpemUsIHYpOwotICAgICAgICByZXR1cm4gcmMgIT0gSFZNQ09QWV9v a2F5ID8gLTEgOiAwOworICAgICAgICByZXR1cm4gcmMgIT0gSFZNVFJBTlNfb2theSA/IC0xIDog MDsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v c3VwcG9ydC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3VwcG9ydC5oCmluZGV4IGIxOGRi YjYuLmUzYjAzNWQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N1cHBvcnQu aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdXBwb3J0LmgKQEAgLTUzLDIzICs1Mywy MyBAQCBleHRlcm4gdW5zaWduZWQgaW50IG9wdF9odm1fZGVidWdfbGV2ZWw7CiAKIGV4dGVybiB1 bnNpZ25lZCBsb25nIGh2bV9pb19iaXRtYXBbXTsKIAotZW51bSBodm1fY29weV9yZXN1bHQgewot ICAgIEhWTUNPUFlfb2theSA9IDAsCi0gICAgSFZNQ09QWV9iYWRfZ3ZhX3RvX2dmbiwKLSAgICBI Vk1DT1BZX2JhZF9nZm5fdG9fbWZuLAotICAgIEhWTUNPUFlfdW5oYW5kbGVhYmxlLAotICAgIEhW TUNPUFlfZ2ZuX3BhZ2VkX291dCwKLSAgICBIVk1DT1BZX2dmbl9zaGFyZWQsCitlbnVtIGh2bV90 cmFuc2xhdGlvbl9yZXN1bHQgeworICAgIEhWTVRSQU5TX29rYXksCisgICAgSFZNVFJBTlNfYmFk X2xpbmVhcl90b19nZm4sCisgICAgSFZNVFJBTlNfYmFkX2dmbl90b19tZm4sCisgICAgSFZNVFJB TlNfdW5oYW5kbGVhYmxlLAorICAgIEhWTVRSQU5TX2dmbl9wYWdlZF9vdXQsCisgICAgSFZNVFJB TlNfZ2ZuX3NoYXJlZCwKIH07CiAKIC8qCiAgKiBDb3B5IHRvL2Zyb20gYSBndWVzdCBwaHlzaWNh bCBhZGRyZXNzLgotICogUmV0dXJucyBIVk1DT1BZX29rYXksIGVsc2UgSFZNQ09QWV9iYWRfZ2Zu X3RvX21mbiBpZiB0aGUgZ2l2ZW4gcGh5c2ljYWwKKyAqIFJldHVybnMgSFZNVFJBTlNfb2theSwg ZWxzZSBIVk1UUkFOU19iYWRfZ2ZuX3RvX21mbiBpZiB0aGUgZ2l2ZW4gcGh5c2ljYWwKICAqIGFk ZHJlc3MgcmFuZ2UgZG9lcyBub3QgbWFwIGVudGlyZWx5IG9udG8gb3JkaW5hcnkgbWFjaGluZSBt ZW1vcnkuCiAgKi8KLWVudW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X3RvX2d1ZXN0X3BoeXMo CitlbnVtIGh2bV90cmFuc2xhdGlvbl9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cygKICAg ICBwYWRkcl90IHBhZGRyLCB2b2lkICpidWYsIGludCBzaXplLCBzdHJ1Y3QgdmNwdSAqdik7Ci1l bnVtIGh2bV9jb3B5X3Jlc3VsdCBodm1fY29weV9mcm9tX2d1ZXN0X3BoeXMoCitlbnVtIGh2bV90 cmFuc2xhdGlvbl9yZXN1bHQgaHZtX2NvcHlfZnJvbV9ndWVzdF9waHlzKAogICAgIHZvaWQgKmJ1 ZiwgcGFkZHJfdCBwYWRkciwgaW50IHNpemUpOwogCiAvKgpAQCAtNzksMTMgKzc5LDEzIEBAIGVu dW0gaHZtX2NvcHlfcmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfcGh5cygKICAqIHRvIHNldCB0 aGVtLgogICogCiAgKiBSZXR1cm5zOgotICogIEhWTUNPUFlfb2theTogQ29weSB3YXMgZW50aXJl bHkgc3VjY2Vzc2Z1bC4KLSAqICBIVk1DT1BZX2JhZF9nZm5fdG9fbWZuOiBTb21lIGd1ZXN0IHBo eXNpY2FsIGFkZHJlc3MgZGlkIG5vdCBtYXAgdG8KLSAqICAgICAgICAgICAgICAgICAgICAgICAg ICBvcmRpbmFyeSBtYWNoaW5lIG1lbW9yeS4KLSAqICBIVk1DT1BZX2JhZF9ndmFfdG9fZ2ZuOiBT b21lIGd1ZXN0IHZpcnR1YWwgYWRkcmVzcyBkaWQgbm90IGhhdmUgYSB2YWxpZAotICogICAgICAg ICAgICAgICAgICAgICAgICAgIG1hcHBpbmcgdG8gYSBndWVzdCBwaHlzaWNhbCBhZGRyZXNzLiAg VGhlCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWZhdWx0X2luZm9fdCBzdHJ1Y3R1 cmUgd2lsbCBiZSBmaWxsZWQgaW4gaWYKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICBwcm92 aWRlZC4KKyAqICBIVk1UUkFOU19va2F5OiBDb3B5IHdhcyBlbnRpcmVseSBzdWNjZXNzZnVsLgor ICogIEhWTVRSQU5TX2JhZF9nZm5fdG9fbWZuOiBTb21lIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3Mg ZGlkIG5vdCBtYXAgdG8KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkaW5hcnkgbWFj aGluZSBtZW1vcnkuCisgKiAgSFZNVFJBTlNfYmFkX2xpbmVhcl90b19nZm46IFNvbWUgZ3Vlc3Qg bGluZWFyIGFkZHJlc3MgZGlkIG5vdCBoYXZlIGEKKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmFsaWQgbWFwcGluZyB0byBhIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MuCisgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBwYWdlZmF1bHRfaW5mb190IHN0cnVjdHVyZSB3 aWxsIGJlIGZpbGxlZAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBpZiBwcm92 aWRlZC4KICAqLwogdHlwZWRlZiBzdHJ1Y3QgcGFnZWZhdWx0X2luZm8KIHsKQEAgLTkzLDEzICs5 MywxMyBAQCB0eXBlZGVmIHN0cnVjdCBwYWdlZmF1bHRfaW5mbwogICAgIGludCBlYzsKIH0gcGFn ZWZhdWx0X2luZm9fdDsKIAotZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2NvcHlfdG9fZ3Vlc3Rf bGluZWFyKAorZW51bSBodm1fdHJhbnNsYXRpb25fcmVzdWx0IGh2bV9jb3B5X3RvX2d1ZXN0X2xp bmVhcigKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHZvaWQgKmJ1ZiwgaW50IHNpemUsIHVpbnQz Ml90IHBmZWMsCiAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKTsKLWVudW0gaHZtX2NvcHlf cmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAorZW51bSBodm1fdHJhbnNsYXRpb25f cmVzdWx0IGh2bV9jb3B5X2Zyb21fZ3Vlc3RfbGluZWFyKAogICAgIHZvaWQgKmJ1ZiwgdW5zaWdu ZWQgbG9uZyBhZGRyLCBpbnQgc2l6ZSwgdWludDMyX3QgcGZlYywKICAgICBwYWdlZmF1bHRfaW5m b190ICpwZmluZm8pOwotZW51bSBodm1fY29weV9yZXN1bHQgaHZtX2ZldGNoX2Zyb21fZ3Vlc3Rf bGluZWFyKAorZW51bSBodm1fdHJhbnNsYXRpb25fcmVzdWx0IGh2bV9mZXRjaF9mcm9tX2d1ZXN0 X2xpbmVhcigKICAgICB2b2lkICpidWYsIHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IHNpemUsIHVp bnQzMl90IHBmZWMsCiAgICAgcGFnZWZhdWx0X2luZm9fdCAqcGZpbmZvKTsKIAotLSAKMi43LjQK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK