From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 9/9] viridian: introduce struct viridian_page Date: Wed, 31 Oct 2018 12:43:35 +0000 Message-ID: <20181031124335.23867-10-paul.durrant@citrix.com> References: <20181031124335.23867-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gHpqc-0005wy-EJ for xen-devel@lists.xenproject.org; Wed, 31 Oct 2018 12:43:46 +0000 In-Reply-To: <20181031124335.23867-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Paul Durrant , Ian Jackson , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org VGhlICd2cF9hc3Npc3QnIHBhZ2UgaXMgY3VycmVudGx5IGFuIGV4YW1wbGUgb2YgYSBndWVzdCBw YWdlIHdoaWNoIG5lZWRzIHRvCmJlIGtlcHQgbWFwcGVkIHRocm91Z2hvdXQgdGhlIGxpZmUtdGlt ZSBvZiBhIGd1ZXN0LCBidXQgdGhlcmUgYXJlIG90aGVyCnN1Y2ggZXhhbXBsZXMgaW4gdGhlIHNw ZWNpZmljdGlvbiBbMV0uIFRoaXMgcGF0Y2ggdGhlcmVmb3JlIGludHJvZHVjZXMgYQpnZW5lcmlj ICd2aXJpZGlhbl9wYWdlJyB0eXBlIGFuZCBjb252ZXJ0cyB0aGUgY3VycmVudCB2cF9hc3Npc3Qv YXBpY19hc3Npc3QKcmVsYXRlZCBjb2RlIHRvIHVzZSBpdC4gU3Vic2VxdWVudCBwYXRjaGVzIGlt cGxlbWVudGluZyBvdGhlciBlbmxpZ2h0bWVudHMKY2FuIHRoZW4gYWxzbyBtYWtlIHVzZSBvZiBp dC4KClRoaXMgcGF0Y2ggYWxzbyByZW5hbWVzIHRoZSAndnBfYXNzaXN0X3BlbmRpbmcnIGZpZWxk IGluIHN0cnVjdApodm1fdmlyaWRpYW5fdmNwdV9jb250ZXh0IHRvICdhcGljX2Fzc2lzdF9wZW5k aW5nJyB0byBtb3JlIGFjY3VyYXRlbHkKcmVmbGVjdCBpdHMgbWVhbmluZy4gVGhlIHRlcm0gJ3Zw X2Fzc2lzdCcgYXBwbGllcyB0byB0aGUgd2hvbGUgcGFnZSByYXRoZXIKdGhhbiBqdXN0IHRoZSBF T0ktYXZvaWRhbmNlIGVubGlnaHRlbm1lbnQuIE5ldyB2ZXJzb25zIG9mIHRoZSBzcGVjaWZpY2F0 aW9uCmhhdmUgZGVmaW5lZCBkYXRhIHN0cnVjdHVyZXMgZm9yIG90aGVyIGVubGlnaHRlbm1lbnRz IHdpdGhpbiB0aGUgc2FtZSBwYWdlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpbMV0gaHR0cHM6 Ly9naXRodWIuY29tL01pY3Jvc29mdERvY3MvVmlydHVhbGl6YXRpb24tRG9jdW1lbnRhdGlvbi9y YXcvbGl2ZS90bGZzL0h5cGVydmlzb3IlMjBUb3AlMjBMZXZlbCUyMEZ1bmN0aW9uYWwlMjBTcGVj aWZpY2F0aW9uJTIwdjUuMEMucGRmCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu ZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4 LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgotLS0KIHRvb2xzL21pc2MveGVuLWh2bWN0eC5jICAgICAgICAgICAgICAgIHwgIDQg Ky0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3N5bmljLmMgICAgICB8IDQ3ICsrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3Zpcmlk aWFuLmggICAgIHwgMTMgKysrKysrLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2FyY2gteDg2L2h2 bS9zYXZlLmggfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9taXNjL3hlbi1odm1jdHguYyBiL3Rvb2xz L21pc2MveGVuLWh2bWN0eC5jCmluZGV4IDgyM2FhN2Q3MzYuLjRmMzM2YTZjZWEgMTAwNjQ0Ci0t LSBhL3Rvb2xzL21pc2MveGVuLWh2bWN0eC5jCisrKyBiL3Rvb2xzL21pc2MveGVuLWh2bWN0eC5j CkBAIC0zNzAsOSArMzcwLDkgQEAgc3RhdGljIHZvaWQgZHVtcF92aXJpZGlhbl92Y3B1KHZvaWQp CiB7CiAgICAgSFZNX1NBVkVfVFlQRShWSVJJRElBTl9WQ1BVKSBwOwogICAgIFJFQUQocCk7Ci0g ICAgcHJpbnRmKCIgICAgVklSSURJQU5fVkNQVTogdnBfYXNzaXN0X21zciAweCVsbHgsIHZwX2Fz c2lzdF9wZW5kaW5nICVzXG4iLAorICAgIHByaW50ZigiICAgIFZJUklESUFOX1ZDUFU6IHZwX2Fz c2lzdF9tc3IgMHglbGx4LCBhcGljX2Fzc2lzdF9wZW5kaW5nICVzXG4iLAogICAgICAgICAgICAo dW5zaWduZWQgbG9uZyBsb25nKSBwLnZwX2Fzc2lzdF9tc3IsCi0gICAgICAgICAgIHAudnBfYXNz aXN0X3BlbmRpbmcgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICAgICAgICAgcC5hcGljX2Fzc2lz dF9wZW5kaW5nID8gInRydWUiIDogImZhbHNlIik7CiB9CiAKIHN0YXRpYyB2b2lkIGR1bXBfdm1j ZV92Y3B1KHZvaWQpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3N5bmlj LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuL3N5bmljLmMKaW5kZXggNTUwMGQ0NDE4Ni4u NmE3ODg3YTRjNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi9zeW5pYy5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vc3luaWMuYwpAQCAtMzcsMTQgKzM3LDEz IEBAIHN0YXRpYyB2b2lkIGR1bXBfdnBfYXNzaXN0KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQogICAg ICAgICAgICB2LCAodW5zaWduZWQgbG9uZyl2YS0+ZmllbGRzLnBmbik7CiB9CiAKLXN0YXRpYyB2 b2lkIGluaXRpYWxpemVfdnBfYXNzaXN0KHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIHZvaWQgaW5p dGlhbGl6ZV9ndWVzdF9wYWdlKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgdmlyaWRpYW5fcGFnZSAq dnApCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAgICB1bnNpZ25lZCBs b25nIGdtZm4gPSB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Npc3QubXNyLmZpZWxkcy5wZm47 CisgICAgdW5zaWduZWQgbG9uZyBnbWZuID0gdnAtPm1zci5maWVsZHMucGZuOwogICAgIHN0cnVj dCBwYWdlX2luZm8gKnBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCBOVUxMLCBQMk1f QUxMT0MpOwotICAgIEhWX1ZQX0FTU0lTVF9QQUdFICpwdHI7CiAKLSAgICBBU1NFUlQoIXYtPmFy Y2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5wdHIpOworICAgIEFTU0VSVCghdnAtPnB0cik7CiAK ICAgICBpZiAoICFwYWdlICkKICAgICAgICAgZ290byBmYWlsOwpAQCAtNTUsMTYgKzU0LDE0IEBA IHN0YXRpYyB2b2lkIGluaXRpYWxpemVfdnBfYXNzaXN0KHN0cnVjdCB2Y3B1ICp2KQogICAgICAg ICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgcHRyID0gX19tYXBfZG9tYWluX3BhZ2VfZ2xvYmFs KHBhZ2UpOwotICAgIGlmICggIXB0ciApCisgICAgdnAtPnB0ciA9IF9fbWFwX2RvbWFpbl9wYWdl X2dsb2JhbChwYWdlKTsKKyAgICBpZiAoICF2cC0+cHRyICkKICAgICB7CiAgICAgICAgIHB1dF9w YWdlX2FuZF90eXBlKHBhZ2UpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gICAgY2xl YXJfcGFnZShwdHIpOwotCi0gICAgdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0LnB0ciA9 IHB0cjsKKyAgICBjbGVhcl9wYWdlKHZwLT5wdHIpOwogICAgIHJldHVybjsKIAogIGZhaWw6CkBA IC03MiwxOSArNjksMTggQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV92cF9hc3Npc3Qoc3RydWN0 IHZjcHUgKnYpCiAgICAgICAgICAgICAgZ21mbiwgbWZuX3gocGFnZSA/IHBhZ2VfdG9fbWZuKHBh Z2UpIDogSU5WQUxJRF9NRk4pKTsKIH0KIAotc3RhdGljIHZvaWQgdGVhcmRvd25fdnBfYXNzaXN0 KHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIHZvaWQgdGVhcmRvd25fZ3Vlc3RfcGFnZShzdHJ1Y3Qg dmlyaWRpYW5fcGFnZSAqdnApCiB7Ci0gICAgSFZfVlBfQVNTSVNUX1BBR0UgKnB0ciA9IHYtPmFy Y2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5wdHI7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFn ZTsKIAotICAgIGlmICggIXB0ciApCisgICAgaWYgKCAhdnAtPnB0ciApCiAgICAgICAgIHJldHVy bjsKIAotICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5wdHIgPSBOVUxMOworICAg IHBhZ2UgPSBtZm5fdG9fcGFnZShkb21haW5fcGFnZV9tYXBfdG9fbWZuKHZwLT5wdHIpKTsKIAot ICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShkb21haW5fcGFnZV9tYXBfdG9fbWZuKHB0cikpOworICAg IHVubWFwX2RvbWFpbl9wYWdlX2dsb2JhbCh2cC0+cHRyKTsKKyAgICB2cC0+cHRyID0gTlVMTDsK IAotICAgIHVubWFwX2RvbWFpbl9wYWdlX2dsb2JhbChwdHIpOwogICAgIHB1dF9wYWdlX2FuZF90 eXBlKHBhZ2UpOwogfQogCkBAIC0xMDAsMTAgKzk2LDEwIEBAIHZvaWQgdmlyaWRpYW5fYXBpY19h c3Npc3Rfc2V0KHN0cnVjdCB2Y3B1ICp2KQogICAgICAqIHdyb25nIGFuZCB0aGUgVk0gd2lsbCBt b3N0IGxpa2VseSBoYW5nIHNvIGZvcmNlIGEgY3Jhc2ggbm93CiAgICAgICogdG8gbWFrZSB0aGUg cHJvYmxlbSBjbGVhci4KICAgICAgKi8KLSAgICBpZiAoIHYtPmFyY2guaHZtLnZpcmlkaWFuLnZw X2Fzc2lzdC5wZW5kaW5nICkKKyAgICBpZiAoIHYtPmFyY2guaHZtLnZpcmlkaWFuLmFwaWNfYXNz aXN0X3BlbmRpbmcgKQogICAgICAgICBkb21haW5fY3Jhc2godi0+ZG9tYWluKTsKIAotICAgIHYt PmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5wZW5kaW5nID0gdHJ1ZTsKKyAgICB2LT5hcmNo Lmh2bS52aXJpZGlhbi5hcGljX2Fzc2lzdF9wZW5kaW5nID0gdHJ1ZTsKICAgICBwdHItPkFwaWNB c3Npc3Qubm9fZW9pID0gMTsKIH0KIApAQCAtMTE0LDExICsxMTAsMTEgQEAgYm9vbCB2aXJpZGlh bl9hcGljX2Fzc2lzdF9jb21wbGV0ZWQoc3RydWN0IHZjcHUgKnYpCiAgICAgaWYgKCAhcHRyICkK ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCB2LT5hcmNoLmh2bS52aXJpZGlhbi52 cF9hc3Npc3QucGVuZGluZyAmJgorICAgIGlmICggdi0+YXJjaC5odm0udmlyaWRpYW4uYXBpY19h c3Npc3RfcGVuZGluZyAmJgogICAgICAgICAgIXB0ci0+QXBpY0Fzc2lzdC5ub19lb2kgKQogICAg IHsKICAgICAgICAgLyogQW4gRU9JIGhhcyBiZWVuIGF2b2lkZWQgKi8KLSAgICAgICAgdi0+YXJj aC5odm0udmlyaWRpYW4udnBfYXNzaXN0LnBlbmRpbmcgPSBmYWxzZTsKKyAgICAgICAgdi0+YXJj aC5odm0udmlyaWRpYW4uYXBpY19hc3Npc3RfcGVuZGluZyA9IGZhbHNlOwogICAgICAgICByZXR1 cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTEzMyw3ICsxMjksNyBAQCB2b2lkIHZpcmlkaWFuX2FwaWNf YXNzaXN0X2NsZWFyKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICByZXR1cm47CiAKICAgICBwdHIt PkFwaWNBc3Npc3Qubm9fZW9pID0gMDsKLSAgICB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Np c3QucGVuZGluZyA9IGZhbHNlOworICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLmFwaWNfYXNzaXN0 X3BlbmRpbmcgPSBmYWxzZTsKIH0KIAogaW50IHZpcmlkaWFuX3N5bmljX3dybXNyKHN0cnVjdCB2 Y3B1ICp2LCB1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKQEAgLTE1OSwxMSArMTU1LDEyIEBA IGludCB2aXJpZGlhbl9zeW5pY193cm1zcihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1 aW50NjRfdCB2YWwpCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVl9YNjRfTVNSX1ZQX0FT U0lTVF9QQUdFOgotICAgICAgICB0ZWFyZG93bl92cF9hc3Npc3Qodik7IC8qIHJlbGVhc2UgYW55 IHByZXZpb3VzIG1hcHBpbmcgKi8KKyAgICAgICAgLyogcmVsZWFzZSBhbnkgcHJldmlvdXMgbWFw cGluZyAqLworICAgICAgICB0ZWFyZG93bl9ndWVzdF9wYWdlKCZ2LT5hcmNoLmh2bS52aXJpZGlh bi52cF9hc3Npc3QpOwogICAgICAgICB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Npc3QubXNy LnJhdyA9IHZhbDsKICAgICAgICAgZHVtcF92cF9hc3Npc3Qodik7CiAgICAgICAgIGlmICggdi0+ YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0Lm1zci5maWVsZHMuZW5hYmxlZCApCi0gICAgICAg ICAgICBpbml0aWFsaXplX3ZwX2Fzc2lzdCh2KTsKKyAgICAgICAgICAgIGluaXRpYWxpemVfZ3Vl c3RfcGFnZSh2LCAmdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0KTsKICAgICAgICAgYnJl YWs7CiAKICAgICBkZWZhdWx0OgpAQCAtMjEyLDcgKzIwOSw3IEBAIGludCB2aXJpZGlhbl9zeW5p Y19yZG1zcihjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRfdCAqdmFs KQogdm9pZCB2aXJpZGlhbl9zeW5pY19zYXZlX3ZjcHVfY3R4dChjb25zdCBzdHJ1Y3QgdmNwdSAq diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGh2bV92aXJpZGlh bl92Y3B1X2NvbnRleHQgKmN0eHQpCiB7Ci0gICAgY3R4dC0+dnBfYXNzaXN0X3BlbmRpbmcgPSB2 LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Npc3QucGVuZGluZzsKKyAgICBjdHh0LT5hcGljX2Fz c2lzdF9wZW5kaW5nID0gdi0+YXJjaC5odm0udmlyaWRpYW4uYXBpY19hc3Npc3RfcGVuZGluZzsK ICAgICBjdHh0LT52cF9hc3Npc3RfbXNyID0gdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0 Lm1zci5yYXc7CiB9CiAKQEAgLTIyMSw5ICsyMTgsOSBAQCB2b2lkIHZpcmlkaWFuX3N5bmljX2xv YWRfdmNwdV9jdHh0KAogewogICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5tc3Iu cmF3ID0gY3R4dC0+dnBfYXNzaXN0X21zcjsKICAgICBpZiAoIHYtPmFyY2guaHZtLnZpcmlkaWFu LnZwX2Fzc2lzdC5tc3IuZmllbGRzLmVuYWJsZWQgKQotICAgICAgICBpbml0aWFsaXplX3ZwX2Fz c2lzdCh2KTsKKyAgICAgICAgaW5pdGlhbGl6ZV9ndWVzdF9wYWdlKHYsICZ2LT5hcmNoLmh2bS52 aXJpZGlhbi52cF9hc3Npc3QpOwogCi0gICAgdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0 LnBlbmRpbmcgPSAhIWN0eHQtPnZwX2Fzc2lzdF9wZW5kaW5nOworICAgIHYtPmFyY2guaHZtLnZp cmlkaWFuLmFwaWNfYXNzaXN0X3BlbmRpbmcgPSAhIWN0eHQtPmFwaWNfYXNzaXN0X3BlbmRpbmc7 CiB9CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92aXJpZGlhbi5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmlyaWRpYW4uaAppbmRleCAxMWFiZjc3MTk4Li4z Nzg5NTk5MjBkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92aXJpZGlhbi5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFuLmgKQEAgLTg4LDEzICs4OCwx NiBAQCB1bmlvbiB2aXJpZGlhbl9wYWdlX21zcgogICAgIH0gZmllbGRzOwogfTsKIAorc3RydWN0 IHZpcmlkaWFuX3BhZ2UKK3sKKyAgICB1bmlvbiB2aXJpZGlhbl9wYWdlX21zciBtc3I7CisgICAg dm9pZCAqcHRyOworfTsKKwogc3RydWN0IHZpcmlkaWFuX3ZjcHUKIHsKLSAgICBzdHJ1Y3Qgewot ICAgICAgICB1bmlvbiB2aXJpZGlhbl9wYWdlX21zciBtc3I7Ci0gICAgICAgIHZvaWQgKnB0cjsK LSAgICAgICAgYm9vbCBwZW5kaW5nOwotICAgIH0gdnBfYXNzaXN0OworICAgIHN0cnVjdCB2aXJp ZGlhbl9wYWdlIHZwX2Fzc2lzdDsKKyAgICBib29sIGFwaWNfYXNzaXN0X3BlbmRpbmc7CiAgICAg dWludDY0X3QgY3Jhc2hfcGFyYW1bNV07CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9w dWJsaWMvYXJjaC14ODYvaHZtL3NhdmUuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9o dm0vc2F2ZS5oCmluZGV4IDQ2OTFkNGQ0YWEuLjgwZTc2MmMzMzUgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni9odm0vc2F2ZS5oCisrKyBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9hcmNoLXg4Ni9odm0vc2F2ZS5oCkBAIC02MDAsNyArNjAwLDcgQEAgREVDTEFSRV9IVk1fU0FW RV9UWVBFKFZJUklESUFOX0RPTUFJTiwgMTUsIHN0cnVjdCBodm1fdmlyaWRpYW5fZG9tYWluX2Nv bnRleHQpOwogCiBzdHJ1Y3QgaHZtX3ZpcmlkaWFuX3ZjcHVfY29udGV4dCB7CiAgICAgdWludDY0 X3QgdnBfYXNzaXN0X21zcjsKLSAgICB1aW50OF90ICB2cF9hc3Npc3RfcGVuZGluZzsKKyAgICB1 aW50OF90ICBhcGljX2Fzc2lzdF9wZW5kaW5nOwogICAgIHVpbnQ4X3QgIF9wYWRbN107CiB9Owog Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs