From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CE1C6C2D0DB for ; Wed, 29 Jan 2020 14:45:54 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A063320663 for ; Wed, 29 Jan 2020 14:45:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="dUTP4h2Q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A063320663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iwob6-0007Fs-BO; Wed, 29 Jan 2020 14:45:40 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iwob5-0007Fc-3r for xen-devel@lists.xenproject.org; Wed, 29 Jan 2020 14:45:39 +0000 X-Inumbo-ID: 0158b60c-42a6-11ea-ad98-bc764e2007e4 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 0158b60c-42a6-11ea-ad98-bc764e2007e4; Wed, 29 Jan 2020 14:45:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1580309134; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ESNEET6I+PO0EuyrahfL5uaji1n0hG5COBYrVolw4cU=; b=dUTP4h2QCKBIsv68T2pyR3H/QMXDmsOqcoduuYAvyMeQyoMxKjh07kTz ZcBCCZbs7xja3vOnN6+//+Hd1cmMWMkvPwR8y0LQxu75/Pi6cHwJKT6+/ 41wNxavU2RucHUsi1/g5TPahR4N/E+7ZyG4shh8h1qjcjcqFqFkYYSje5 M=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ip4:168.245.78.127 ~all" Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: pDpPKsUMAZy5AcEhetZF+rZDtgeb3T6SFIKHeKI6LJOFbJYQr3nOzDZXsWe2dsFSaTEgsl8s45 6EhounZ7330ogbTODPSaASq8rAAI2G2fdCvG5069eIJHQdGWQhmCrloqvC8tKje5+1T+l9D0KC ieqsyHIyrO28zzPDL7HnvP/+hHV5sxplVWLGd3FnKYHIwrxXxXVxoLrL9YNBqq+I6F4Aw5iEgp YS9KSi+NvM1GyFacZ6DXJb1z2vBBndt4GYQfEf+onjgDbuvZy9Tjedz2Nwuzgcx1qDNT4Tq0Py RjI= X-SBRS: 2.7 X-MesageID: 12056470 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.70,378,1574139600"; d="scan'208";a="12056470" From: Roger Pau Monne To: Date: Wed, 29 Jan 2020 15:45:13 +0100 Message-ID: <20200129144514.96686-2-roger.pau@citrix.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200129144514.96686-1-roger.pau@citrix.com> References: <20200129144514.96686-1-roger.pau@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 1/2] nvmx: implement support for MSR bitmaps X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Jun Nakajima , Wei Liu , Andrew Cooper , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Q3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBuZXN0ZWQgVk1YIGhhcyBhIGhhbGYgYmFrZWQgaGFu ZGxpbmcgb2YgTVNSCmJpdG1hcHMgZm9yIHRoZSBMMSBWTU06IGl0IG1hcHMgdGhlIEwxIFZNTSBw cm92aWRlZCBNU1IgYml0bWFwLCBidXQKZG9lc24ndCBhY3R1YWxseSBsb2FkIGl0IGludG8gdGhl IG5lc3RlZCB2bWNzLCBhbmQgdGh1cyB0aGUgbmVzdGVkCmd1ZXN0IHZtY3MgZW5kcyB1cCB1c2lu ZyB0aGUgc2FtZSBNU1IgYml0bWFwIGFzIHRoZSBMMSBWTU0uCgpUaGlzIGlzIHdyb25nIGFzIHRo ZXJlJ3Mgbm8gYXNzdXJhbmNlIHRoYXQgdGhlIHNldCBvZiBmZWF0dXJlcyBlbmFibGVkCmZvciB0 aGUgTDEgdm1jcyBhcmUgdGhlIHNhbWUgdGhhdCBMMSBpdHNlbGYgaXMgZ29pbmcgdG8gdXNlIGlu IHRoZQpuZXN0ZWQgdm1jcywgYW5kIHRodXMgY2FuIGxlYWQgdG8gbWlzY29uZmlndXJhdGlvbnMu CgpGb3IgZXhhbXBsZSBMMSB2bWNzIGNhbiB1c2UgeDJBUElDIHZpcnR1YWxpemF0aW9uIGFuZCB2 aXJ0dWFsCmludGVycnVwdCBkZWxpdmVyeSwgYW5kIHRodXMgc29tZSB4MkFQSUMgTVNScyB3b24n dCBiZSB0cmFwcGVkIHNvIHRoYXQKdGhleSBjYW4gYmUgaGFuZGxlZCBkaXJlY3RseSBieSB0aGUg aGFyZHdhcmUgdXNpbmcgdmlydHVhbGl6YXRpb24KZXh0ZW5zaW9ucy4gT24gdGhlIG90aGVyIGhh bmQsIHRoZSBuZXN0ZWQgdm1jcyBjcmVhdGVkIGJ5IEwxIFZNTSBtaWdodApub3QgdXNlIGFueSBv ZiBzdWNoIGZlYXR1cmVzLCBzbyB1c2luZyBhIE1TUiBiaXRtYXAgdGhhdCBkb2Vzbid0IHRyYXAK YWNjZXNzZXMgdG8gdGhlIHgyQVBJQyBNU1JzIHdpbGwgYmUgbGVha2luZyB0aGVtIHRvIHRoZSB1 bmRlcmx5aW5nCmhhcmR3YXJlLgoKRml4IHRoaXMgYnkgY3JhZnRpbmcgYSBtZXJnZWQgTVNSIGJp dG1hcCBiZXR3ZWVuIHRoZSBvbmUgdXNlZCBieSBMMQphbmQgdGhlIG5lc3RlZCBndWVzdC4KClNp Z25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0K VGhpcyBzZWVtcyBiZXR0ZXIgdGhhbiB3aGF0J3MgZG9uZSBjdXJyZW50bHksIGJ1dCBUQkggdGhl cmUncyBhIGxvdCBvZgp3b3JrIHRvIGJlIGRvbmUgaW4gbnZteCBpbiBvcmRlciB0byBtYWtlIGl0 IGZ1bmN0aW9uYWwgYW5kIHNlY3VyZSB0aGF0CkknbSBub3Qgc3VyZSB3aGV0aGVyIGJ1aWxkaW5n IG9uIHRvcCBvZiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcwpzb21ldGhpbmcgc2FuZSB0 byBkbywgb3IgaXQgd291bGQgYmUgYmV0dGVyIHRvIHN0YXJ0IGZyb20gc2NyYXRjaCBhbmQKcmUt aW1wbGVtZW50IG52bXggdG8ganVzdCBzdXBwb3J0IHRoZSBtaW5pbXVtIHJlcXVpcmVkIHNldCBv ZiBWVHgKZmVhdHVyZXMgaW4gYSBzYW5lIGFuZCBzYWZlIHdheS4KLS0tCkNoYW5nZXMgc2luY2Ug djE6CiAtIFNwbGl0IHRoZSB4MkFQSUMgTVNSIGZpeCBpbnRvIGEgc2VwYXJhdGUgcGF0Y2guCiAt IE1vdmUgc2V0dGluZyBNU1JfQklUTUFQIHZtY3MgZmllbGQgaW50byBsb2FkX3Z2bWNzX2hvc3Rf c3RhdGUgZm9yCiAgIHZpcnR1YWwgdm1leGl0LgogLSBBbGxvY2F0ZSBtZW1vcnkgd2l0aCBNRU1G X25vX293bmVyLgogLSBVc2UgdGFicyB0byBhbGlnbiBjb21tZW50IG9mIHRoZSBuZXN0ZWR2bXgg c3RydWN0IGZpZWxkLgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAgICAgICAgfCA2 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3ZteC92dm14LmggfCAgMyArLQogMiBmaWxlcyBjaGFuZ2VkLCA2MiBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyBi L3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYwppbmRleCA0N2VlZTFlNWI5Li5jMzViNGJhYjg0 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bXgvdnZteC5jCkBAIC0xMjgsNiArMTI4LDE2IEBAIGludCBudm14X3ZjcHVfaW5p dGlhbGlzZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UodncpOwog ICAgIH0KIAorICAgIGlmICggY3B1X2hhc192bXhfbXNyX2JpdG1hcCApCisgICAgeworICAgICAg ICBudm14LT5tc3JfbWVyZ2VkID0gYWxsb2NfZG9taGVhcF9wYWdlKGQsIE1FTUZfbm9fb3duZXIp OworICAgICAgICBpZiAoICFudm14LT5tc3JfbWVyZ2VkICkKKyAgICAgICAgeworICAgICAgICAg ICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIm5lc3Q6IGFsbG9jYXRpb24gZm9yIE1TUiBiaXRtYXAg ZmFpbGVkXG4iKTsKKyAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgICAgICB9CisgICAg fQorCiAgICAgbnZteC0+ZXB0LmVuYWJsZWQgPSAwOwogICAgIG52bXgtPmd1ZXN0X3ZwaWQgPSAw OwogICAgIG52bXgtPnZteG9uX3JlZ2lvbl9wYSA9IElOVkFMSURfUEFERFI7CkBAIC0xODIsNiAr MTkyLDExIEBAIHZvaWQgbnZteF92Y3B1X2Rlc3Ryb3koc3RydWN0IHZjcHUgKnYpCiAgICAgICAg IGZyZWVfZG9taGVhcF9wYWdlKHYtPmFyY2guaHZtLnZteC52bXdyaXRlX2JpdG1hcCk7CiAgICAg ICAgIHYtPmFyY2guaHZtLnZteC52bXdyaXRlX2JpdG1hcCA9IE5VTEw7CiAgICAgfQorICAgIGlm ICggbnZteC0+bXNyX21lcmdlZCApCisgICAgeworICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShu dm14LT5tc3JfbWVyZ2VkKTsKKyAgICAgICAgbnZteC0+bXNyX21lcmdlZCA9IE5VTEw7CisgICAg fQogfQogIAogdm9pZCBudm14X2RvbWFpbl9yZWxpbnF1aXNoX3Jlc291cmNlcyhzdHJ1Y3QgZG9t YWluICpkKQpAQCAtNTQ4LDYgKzU2MywzNyBAQCB1bnNpZ25lZCBsb25nICpfc2hhZG93X2lvX2Jp dG1hcChzdHJ1Y3QgdmNwdSAqdikKICAgICByZXR1cm4gbmVzdGVkaHZtX3ZjcHVfaW9tYXBfZ2V0 KHBvcnQ4MCwgcG9ydEVEKTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlX21zcmJpdG1hcChzdHJ1 Y3QgdmNwdSAqdikKK3sKKyAgICBzdHJ1Y3QgbmVzdGVkdm14ICpudm14ID0gJnZjcHVfMl9udm14 KHYpOworICAgIHN0cnVjdCB2bXhfbXNyX2JpdG1hcCAqbXNyX2JpdG1hcDsKKyAgICB1bnNpZ25l ZCBpbnQgbXNyOworCisgICAgQVNTRVJUKF9fbjJfZXhlY19jb250cm9sKHYpICYgQ1BVX0JBU0VE X0FDVElWQVRFX01TUl9CSVRNQVApOworCisgICAgaWYgKCAhbnZteC0+bXNyYml0bWFwICkKKyAg ICAgICAgcmV0dXJuOworCisgICAgbXNyX2JpdG1hcCA9IF9fbWFwX2RvbWFpbl9wYWdlKG52bXgt Pm1zcl9tZXJnZWQpOworCisgICAgYml0bWFwX29yKG1zcl9iaXRtYXAtPnJlYWRfbG93LCBudm14 LT5tc3JiaXRtYXAtPnJlYWRfbG93LAorICAgICAgICAgICAgICB2LT5hcmNoLmh2bS52bXgubXNy X2JpdG1hcC0+cmVhZF9sb3csCisgICAgICAgICAgICAgIHNpemVvZihtc3JfYml0bWFwLT5yZWFk X2xvdykgKiA4KTsKKyAgICBiaXRtYXBfb3IobXNyX2JpdG1hcC0+cmVhZF9oaWdoLCBudm14LT5t c3JiaXRtYXAtPnJlYWRfaGlnaCwKKyAgICAgICAgICAgICAgdi0+YXJjaC5odm0udm14Lm1zcl9i aXRtYXAtPnJlYWRfaGlnaCwKKyAgICAgICAgICAgICAgc2l6ZW9mKG1zcl9iaXRtYXAtPnJlYWRf aGlnaCkgKiA4KTsKKyAgICBiaXRtYXBfb3IobXNyX2JpdG1hcC0+d3JpdGVfbG93LCBudm14LT5t c3JiaXRtYXAtPndyaXRlX2xvdywKKyAgICAgICAgICAgICAgdi0+YXJjaC5odm0udm14Lm1zcl9i aXRtYXAtPndyaXRlX2xvdywKKyAgICAgICAgICAgICAgc2l6ZW9mKG1zcl9iaXRtYXAtPndyaXRl X2xvdykgKiA4KTsKKyAgICBiaXRtYXBfb3IobXNyX2JpdG1hcC0+d3JpdGVfaGlnaCwgbnZteC0+ bXNyYml0bWFwLT53cml0ZV9oaWdoLAorICAgICAgICAgICAgICB2LT5hcmNoLmh2bS52bXgubXNy X2JpdG1hcC0+d3JpdGVfaGlnaCwKKyAgICAgICAgICAgICAgc2l6ZW9mKG1zcl9iaXRtYXAtPndy aXRlX2hpZ2gpICogOCk7CisKKyAgICB1bm1hcF9kb21haW5fcGFnZShtc3JfYml0bWFwKTsKKwor ICAgIF9fdm13cml0ZShNU1JfQklUTUFQLCBwYWdlX3RvX21hZGRyKG52bXgtPm1zcl9tZXJnZWQp KTsKK30KKwogdm9pZCBudm14X3VwZGF0ZV9leGVjX2NvbnRyb2woc3RydWN0IHZjcHUgKnYsIHUz MiBob3N0X2NudHJsKQogewogICAgIHUzMiBwaW9fY250cmwgPSAoQ1BVX0JBU0VEX0FDVElWQVRF X0lPX0JJVE1BUApAQCAtNTU4LDEwICs2MDQsMTUgQEAgdm9pZCBudm14X3VwZGF0ZV9leGVjX2Nv bnRyb2woc3RydWN0IHZjcHUgKnYsIHUzMiBob3N0X2NudHJsKQogICAgIHNoYWRvd19jbnRybCA9 IF9fbjJfZXhlY19jb250cm9sKHYpOwogICAgIHBpb19jbnRybCAmPSBzaGFkb3dfY250cmw7CiAg ICAgLyogRW5mb3JjZSB0aGUgcmVtb3ZlZCBmZWF0dXJlcyAqLwotICAgIHNoYWRvd19jbnRybCAm PSB+KENQVV9CQVNFRF9BQ1RJVkFURV9NU1JfQklUTUFQCi0gICAgICAgICAgICAgICAgICAgICAg fCBDUFVfQkFTRURfQUNUSVZBVEVfSU9fQklUTUFQCisgICAgc2hhZG93X2NudHJsICY9IH4oQ1BV X0JBU0VEX0FDVElWQVRFX0lPX0JJVE1BUAogICAgICAgICAgICAgICAgICAgICAgIHwgQ1BVX0JB U0VEX1VOQ09ORF9JT19FWElUSU5HKTsKLSAgICBzaGFkb3dfY250cmwgfD0gaG9zdF9jbnRybDsK KyAgICAvKgorICAgICAqIERvIE5PVCBlbmZvcmNlIHRoZSBNU1IgYml0bWFwIGN1cnJlbnRseSB1 c2VkIGJ5IEwxLCBhcyBjZXJ0YWluIGhhcmR3YXJlCisgICAgICogdmlydHVhbGl6YXRpb24gZmVh dHVyZXMgcmVxdWlyZSBzcGVjaWZpYyBNU1IgYml0bWFwIHNldHRpbmdzLCBidXQKKyAgICAgKiB3 aXRob3V0IHRoZSBndWVzdCBhbHNvIHVzaW5nIHRoZXNlIHNhbWUgZmVhdHVyZXMgdGhlIGJpdG1h cCBjb3VsZCBiZQorICAgICAqIGxlYWtpbmcgdGhyb3VnaCB1bndhbnRlZCBNU1IgYWNjZXNzZXMu CisgICAgICovCisgICAgc2hhZG93X2NudHJsIHw9IChob3N0X2NudHJsICYgfkNQVV9CQVNFRF9B Q1RJVkFURV9NU1JfQklUTUFQKTsKICAgICBpZiAoIHBpb19jbnRybCA9PSBDUFVfQkFTRURfVU5D T05EX0lPX0VYSVRJTkcgKSB7CiAgICAgICAgIC8qIEwxIFZNTSBpbnRlcmNlcHRzIGFsbCBJL08g aW5zdHJ1Y3Rpb25zICovCiAgICAgICAgIHNoYWRvd19jbnRybCB8PSBDUFVfQkFTRURfVU5DT05E X0lPX0VYSVRJTkc7CkBAIC01ODQsNiArNjM1LDkgQEAgdm9pZCBudm14X3VwZGF0ZV9leGVjX2Nv bnRyb2woc3RydWN0IHZjcHUgKnYsIHUzMiBob3N0X2NudHJsKQogICAgICAgICBfX3Ztd3JpdGUo SU9fQklUTUFQX0IsIHZpcnRfdG9fbWFkZHIoYml0bWFwKSArIFBBR0VfU0laRSk7CiAgICAgfQog CisgICAgaWYgKCBzaGFkb3dfY250cmwgJiBDUFVfQkFTRURfQUNUSVZBVEVfTVNSX0JJVE1BUCAp CisgICAgICAgIHVwZGF0ZV9tc3JiaXRtYXAodik7CisKICAgICAvKiBUT0RPOiBjaGFuZ2UgTDAg aW50ciB3aW5kb3cgdG8gTVRGIG9yIE5NSSB3aW5kb3cgKi8KICAgICBfX3Ztd3JpdGUoQ1BVX0JB U0VEX1ZNX0VYRUNfQ09OVFJPTCwgc2hhZG93X2NudHJsKTsKIH0KQEAgLTEyNzgsNiArMTMzMiw5 IEBAIHN0YXRpYyB2b2lkIGxvYWRfdnZtY3NfaG9zdF9zdGF0ZShzdHJ1Y3QgdmNwdSAqdikKICAg ICBodm1fc2V0X3RzY19vZmZzZXQodiwgdi0+YXJjaC5odm0uY2FjaGVfdHNjX29mZnNldCwgMCk7 CiAKICAgICBzZXRfdnZtY3ModiwgVk1fRU5UUllfSU5UUl9JTkZPLCAwKTsKKworICAgIGlmICgg di0+YXJjaC5odm0udm14LmV4ZWNfY29udHJvbCAmIENQVV9CQVNFRF9BQ1RJVkFURV9NU1JfQklU TUFQICkKKyAgICAgICAgX192bXdyaXRlKE1TUl9CSVRNQVAsIHZpcnRfdG9fbWFkZHIodi0+YXJj aC5odm0udm14Lm1zcl9iaXRtYXApKTsKIH0KIAogc3RhdGljIHZvaWQgc3luY19leGNlcHRpb25f c3RhdGUoc3RydWN0IHZjcHUgKnYpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS92bXgvdnZteC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3Z2bXguaAppbmRleCA2 YjljNGFlMGIyLi5jOGQ1NjAwZmRkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS92bXgvdnZteC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92dm14LmgKQEAg LTM3LDcgKzM3LDggQEAgc3RydWN0IG5lc3RlZHZteCB7CiAgICAgICovCiAgICAgcGFkZHJfdCAg ICB2bXhvbl9yZWdpb25fcGE7CiAgICAgdm9pZCAgICAgICAqaW9iaXRtYXBbMl07CQkvKiBtYXAg KHZhKSBvZiBMMSBndWVzdCBJL08gYml0bWFwICovCi0gICAgdm9pZCAgICAgICAqbXNyYml0bWFw OwkJLyogbWFwICh2YSkgb2YgTDEgZ3Vlc3QgTVNSIGJpdG1hcCAqLworICAgIHN0cnVjdCB2bXhf bXNyX2JpdG1hcCAqbXNyYml0bWFwOwkvKiBtYXAgKHZhKSBvZiBMMSBndWVzdCBNU1IgYml0bWFw ICovCisgICAgc3RydWN0IHBhZ2VfaW5mbyAqbXNyX21lcmdlZDsJLyogbWVyZ2VkIEwxIGFuZCBM MSBndWVzdCBNU1IgYml0bWFwICovCiAgICAgLyogZGVmZXJyZWQgbmVzdGVkIGludGVycnVwdCAq LwogICAgIHN0cnVjdCB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgaW50cl9pbmZvOwotLSAKMi4y NS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==