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=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 D8F1DC31E46 for ; Wed, 12 Jun 2019 07:28:29 +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 B3CB920874 for ; Wed, 12 Jun 2019 07:28:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B3CB920874 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.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 1haxft-00012N-6b; Wed, 12 Jun 2019 07:28:01 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1haxfs-00012I-Oj for xen-devel@lists.xenproject.org; Wed, 12 Jun 2019 07:28:00 +0000 X-Inumbo-ID: 9a3e8807-8ce3-11e9-8980-bc764e045a96 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 9a3e8807-8ce3-11e9-8980-bc764e045a96; Wed, 12 Jun 2019 07:27:58 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Wed, 12 Jun 2019 01:27:57 -0600 Message-Id: <5D00A97B02000078002374E5@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Wed, 12 Jun 2019 01:27:55 -0600 From: "Jan Beulich" To: References: <1558721577-13958-1-git-send-email-andrii.anisov@gmail.com> <1558721577-13958-3-git-send-email-andrii.anisov@gmail.com> <5CFA734902000078002364C0@prv1-mh.provo.novell.com> <25ea00e0-c5fc-6606-f3f5-12001675bb60@gmail.com> In-Reply-To: <25ea00e0-c5fc-6606-f3f5-12001675bb60@gmail.com> Mime-Version: 1.0 Content-Disposition: inline Subject: Re: [Xen-devel] [PATCH v3] xen: introduce VCPUOP_register_runstate_phys_memory_area hypercall 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: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , xen-devel , "andrii_anisov@epam.com" , 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" Pj4+IE9uIDExLjA2LjE5IGF0IDE4OjA5LCA8YW5kcmlpLmFuaXNvdkBnbWFpbC5jb20+IHdyb3Rl Ogo+IE9uIDA3LjA2LjE5IDE3OjIzLCBKYW4gQmV1bGljaCB3cm90ZToKPj4+Pj4gT24gMjQuMDUu MTkgYXQgMjA6MTIsIDxhbmRyaWkuYW5pc292QGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiBGcm9tOiBB bmRyaWkgQW5pc292IDxhbmRyaWlfYW5pc292QGVwYW0uY29tPgo+Pj4KPj4+IEV4aXN0aW5nIGlu dGVyZmFjZSB0byByZWdpc3RlciBydW5zdGF0ZSBhcmUgd2l0aCBpdHMgdmlydHVhbCBhZGRyZXNz Cj4+PiBpcyBwcm9uZSB0byBpc3N1ZXMgd2hpY2ggYmVjYW1lIG1vcmUgb2J2aW91cyB3aXRoIEtQ VEkgZW5hYmxlbWVudCBpbgo+Pj4gZ3Vlc3RzLiBUaGUgbmF0dXJlIG9mIHRob3NlIGlzc3VlcyBp cyB0aGUgZmFjdCB0aGF0IHRoZSBndWVzdCBjb3VsZAo+Pj4gYmUgaW50ZXJydXB0ZWQgYnkgdGhl IGh5cGVydmlzb3IgYXQgYW55IHRpbWUsIGFuZCB0aGVyZSBpcyBubyBndWFyYW50ZWUKPj4+IHRv IGhhdmUgdGhlIHJlZ2lzdGVyZWQgdmlydHVhbCBhZGRyZXNzIHRyYW5zbGF0ZWQgd2l0aCB0aGUg Y3VycmVudGx5Cj4+PiBhdmFpbGFibGUgZ3Vlc3QncyBwYWdlIHRhYmxlcy4gQmVmb3JlIHRoZSBL UFRJIHN1Y2ggYSBzaXR1YXRpb24gd2FzCj4+PiBwb3NzaWJsZSBpbiBjYXNlIHRoZSBndWVzdCBp cyBjYXVnaHQgaW4gdGhlIG1pZGRsZSBvZiBQVCBwcm9jZXNzaW5nCj4+PiAoZS5nLiBzdXBlcnBh Z2Ugc2hhdHRlcmluZykuIFdpdGggdGhlIEtQVEkgdGhpcyBoYXBwZW5zIGFsc28gd2hlbiB0aGUK Pj4+IGd1ZXN0IHJ1bnMgdXNlcnNwYWNlLCBzbyBoYXMgYSBwcmV0dHkgaGlnaCBwcm9iYWJpbGl0 eS4KPj4gCj4+IEV4Y2VwdCB3aGVuIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgS1BUSSBpbiB0aGUgZ3Vl c3QgaW4gdGhlIGZpcnN0IHBsYWNlLAo+PiBhcyBpcyB0aGUgY2FzZSBmb3IgeDg2LTY0IFBWIGd1 ZXN0cy4gSSB0aGluayB0aGlzIGlzIHdvcnRod2hpbGUgY2xhcmlmeWluZy4KPj4gCj4+PiBTbyBp dCB3YXMgYWdyZWVkIHRvIHJlZ2lzdGVyIHJ1bnN0YXRlIHdpdGggdGhlIGd1ZXN0J3MgcGh5c2lj YWwgYWRkcmVzcwo+Pj4gc28gdGhhdCBpdHMgbWFwcGluZyBpcyBwZXJtYW5lbnQgZnJvbSB0aGUg aHlwZXJ2aXNvciBwb2ludCBvZiB2aWV3LiBbMV0KPj4+Cj4+PiBUaGUgaHlwZXJjYWxsIGVtcGxv eXMgdGhlIHNhbWUgdmNwdV9yZWdpc3Rlcl9ydW5zdGF0ZV9tZW1vcnlfYXJlYQo+Pj4gc3RydWN0 dXJlIGZvciB0aGUgaW50ZXJmYWNlLCBidXQgcmVxdWlyZXMgYSByZWdpc3RlcmVkIGFyZWEgdG8g bm90Cj4+PiBjcm9zcyBhIHBhZ2UgYm91bmRhcnkuCj4+Pgo+Pj4gWzFdIGh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxOS0wMi9tc2cwMDQxNi5o dG1sIAo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJpaSBBbmlzb3YgPGFuZHJpaV9hbmlzb3ZA ZXBhbS5jb20+Cj4+IAo+PiBJIHdvdWxkIGhhdmUgcmVhbGx5IGhvcGVkIHRoYXQgeW91IHdvdWxk IG91dGxpbmUgdGhlIGludGVuZGVkIGludGVyYWN0aW9uCj4+IGJldHdlZW4gYm90aCBpbnRlcmZh Y2VzLAo+IAo+IEknZCBzdXBwb3NlIG5vIHNwZWNpZmljIGludGVyYWN0aW9uIGJldHdlZW4gaW50 ZXJmYWNlcy4gSSBoYXJkbHkgaW1hZ2luZSAKPiByZWFsaXN0aWMgdXNlLWNhc2VzIHdoZXJlIHRo aXMgbWlnaHQgYmUgbmVlZGVkLgo+IAo+PiBzdWNoIHRoYXQgd2hpbGUgcmV2aWV3aW5nIG9uZSBj YW4ganVkZ2Ugd2hldGhlcgo+PiB5b3UncmUgYWN0dWFsbHkgbWF0Y2hpbmcgdGhlIGdvYWwuIEkg dGhpbmsgaXQgaXMgYWN0dWFsbHkgbWFuZGF0b3J5IHRvIG1ha2UKPj4gZXhwbGljaXQgaW4gdGhl IHB1YmxpYyBoZWFkZXIgd2hhdCBsZXZlbCBvZiBtaXhpbmcgaXMgcGVybWl0dGVkLCB3aGF0IGlz IG5vdAo+PiBwZXJtaXR0ZWQsIGFuZCB3aGF0IG1peCBvZiByZXF1ZXN0cyBpcyBzaW1wbHkgdW5k ZWZpbmVkLj4gCj4+IEluIHBhcnRpY3VsYXIsIHdoaWxlIHdlIGRpZCB3b3JrIG91dCBkdXJpbmcg cHJpb3IgZGlzY3Vzc2lvbnMgdGhhdCBzb21lCj4+IGxldmVsIG9mIG1peGluZyBoYXMgdG8gYmUg cGVybWl0dGVkLCBJJ20gdW5jb252aW5jZWQgdGhhdCBhcmJpdHJhcnkKPj4gbWl4aW5nIGhhcyB0 byBiZSBhbGxvd2VkLiBGb3IgZXhhbXBsZSwgc3dpdGNoaW5nIGZyb20gb25lIG1vZGVsIHRvCj4+ IGFub3RoZXIgY291bGQgYmUgcGVybWl0dGVkIG9ubHkgd2l0aCBqdXN0IGEgc2luZ2xlIGFjdGl2 ZSB2Q1BVLiBUaGlzCj4+IG1pZ2h0IGFsbG93IHRvIGRvIGF3YXkgYWdhaW4gd2l0aCB0aGUgcnVu c3RhdGVfaW5fdXNlIGZpZWxkIHlvdSBhZGQuCj4gCj4gV2VsbCwgbXkgcG9pbnQgaGVyZSBpcyB0 byBsZWZ0IGl0IGFzIGlzLCBtYXliZSBhZGQgbW9yZSBkb2N1bWVudGF0aW9uLiBJZiAKPiBvbmUg bGlrZXMgc2hvb3RpbmcgaGlzIGxlZywgd2Ugc2hvdWxkIG9ubHkgY2FyZSBhYm91dCBhdm9pZGlu ZyByaWNvY2hldCBoYXJtcyAKPiBoeXBlcnZpc29yIG9yIG90aGVyIGd1ZXN0cy4KPiBJZiB5b3Ug ZGlzYWdyZWUsIHBsZWFzZSBzdWdnZXN0IHlvdXIgaW50ZXJhY3Rpb24gbW9kZWwsIEknbGwgYmUg aGFwcHkgdG8gCj4gaW1wbGVtZW50IGl0LgoKV2VsbCwgaWYgIm1peCBhcyB5b3UgbGlrZSIgaXMg ZmluZSBmb3IgZ3Vlc3RzIHRvIGZvbGxvdywgdGhlbiBva2F5LiBCdXQKd2UgbmVlZCB0byBiZSBf cmVhbGx5XyBjZXJ0YWluIHRoZXJlJ3Mgbm8gaXNzdWUgd2l0aCB0aGlzLiBSZWxheGluZwp0aGUg aW50ZXJmYWNlIGlzIGFsd2F5cyBwb3NzaWJsZSwgd2hpbGUgdGlnaHRlbmluZyBhbiBpbnRlcmZh Y2UgaXMKYWxtb3N0IGFsd2F5cyBhdCBsZWFzdCBhIHByb2JsZW0sIGlmIHBvc3NpYmxlIGF0IGFs bC4KCj4+PiAtLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPj4+ICsrKyBiL3hlbi9hcmNoL2Fy bS9kb21haW4uYwo+Pj4gQEAgLTI3NCwxNyArMjc0LDE1IEBAIHN0YXRpYyB2b2lkIGN0eHRfc3dp dGNoX3RvKHN0cnVjdCB2Y3B1ICpuKQo+Pj4gICAgICAgdmlydF90aW1lcl9yZXN0b3JlKG4pOwo+ Pj4gICB9Cj4+PiAgIAo+Pj4gLS8qIFVwZGF0ZSBwZXItVkNQVSBndWVzdCBydW5zdGF0ZSBzaGFy ZWQgbWVtb3J5IGFyZWEgKGlmIHJlZ2lzdGVyZWQpLiAqLwo+Pj4gLXN0YXRpYyB2b2lkIHVwZGF0 ZV9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQo+Pj4gK3N0YXRpYyB2b2lkIHVwZGF0ZV9y dW5zdGF0ZV9ieV9ndmFkZHIoc3RydWN0IHZjcHUgKnYpCj4+PiAgIHsKPj4+ICAgICAgIHZvaWQg X191c2VyICpndWVzdF9oYW5kbGUgPSBOVUxMOwo+Pj4gICAKPj4+IC0gICAgaWYgKCBndWVzdF9o YW5kbGVfaXNfbnVsbChydW5zdGF0ZV9ndWVzdCh2KSkgKQo+Pj4gLSAgICAgICAgcmV0dXJuOwo+ Pj4gKyAgICBBU1NFUlQoIWd1ZXN0X2hhbmRsZV9pc19udWxsKHJ1bnN0YXRlX2d1ZXN0X3ZpcnQo dikpKTsKPj4+ICAgCj4+PiAgICAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4sIHJ1bnN0YXRl X3VwZGF0ZV9mbGFnKSApCj4+PiAgICAgICB7Cj4+PiAtICAgICAgICBndWVzdF9oYW5kbGUgPSAm di0+cnVuc3RhdGVfZ3Vlc3QucC0+c3RhdGVfZW50cnlfdGltZSArIDE7Cj4+PiArICAgICAgICBn dWVzdF9oYW5kbGUgPSAmdi0+cnVuc3RhdGVfZ3Vlc3QudmlydC5wLT5zdGF0ZV9lbnRyeV90aW1l ICsgMTsKPj4+ICAgICAgICAgICBndWVzdF9oYW5kbGUtLTsKPj4+ICAgICAgICAgICB2LT5ydW5z dGF0ZS5zdGF0ZV9lbnRyeV90aW1lIHw9IFhFTl9SVU5TVEFURV9VUERBVEU7Cj4+PiAgICAgICAg ICAgX19yYXdfY29weV90b19ndWVzdChndWVzdF9oYW5kbGUsCj4+PiBAQCAtMjkyLDcgKzI5MCw3 IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHN0cnVjdCB2Y3B1ICp2KQo+Pj4g ICAgICAgICAgIHNtcF93bWIoKTsKPj4+ICAgICAgIH0KPj4+ICAgCj4+PiAtICAgIF9fY29weV90 b19ndWVzdChydW5zdGF0ZV9ndWVzdCh2KSwgJnYtPnJ1bnN0YXRlLCAxKTsKPj4+ICsgICAgX19j b3B5X3RvX2d1ZXN0KHJ1bnN0YXRlX2d1ZXN0X3ZpcnQodiksICZ2LT5ydW5zdGF0ZSwgMSk7Cj4+ IAo+PiBJbiBhIHByaW9yIHZlcnNpb24geW91IGRpZCB0aGUgbWVjaGFuaWNhbCBwYXJ0IG9mIGFk anVzdGluZyB0aGUgVkEtYmFzZWQKPj4gY29kZSBpbiBhIHByZXJlcSBwYXRjaCwgYWlkaW5nIHJl dmlldy4gSXMgdGhlcmUgYSBwYXJ0aWN1bGFyIHJlYXNvbiB5b3UKPj4gZm9sZGVkIGV2ZXJ5dGhp bmcgaW50byBvbmUgcGF0Y2ggbm93Pwo+IAo+IEkgc2lsZW50bHkgZm9sbG93ZWQgc3VnZ2VzdGlv biBmcm9tIEdlb3JnZSBbMV0uIEFueSBvYmplY3Rpb25zPwoKSG1tLCBJIGNhbid0IHJlYWQgdGhp cyBpbnRvIEdlb3JnZSdzIHN1Z2dlc3Rpb24uIEFpdWkgaGUgZGlkIHN1Z2dlc3QKbm90IHRvIHNw bGl0IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBuZXcgaW50ZXJmYWNlIGZyb20gaXRzIGltcGxlbWVu dGF0aW9uLgpCdXQgdGhhdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1lYW4gdG8gc3F1YXNoIF9ldmVy eXRoaW5nXyBpbiBvbmUKcGF0Y2guCgo+Pj4gK3N0YXRpYyBib29sIHVwZGF0ZV9ydW5zdGF0ZV9i eV9ncGFkZHJfY29tcGF0KHN0cnVjdCB2Y3B1ICp2KQo+Pj4gK3sKPj4+ICsgICAgc3RydWN0IGNv bXBhdF92Y3B1X3J1bnN0YXRlX2luZm8gKnJ1bnN0YXRlID0KPj4+ICsgICAgICAgICAgICAoc3Ry dWN0IGNvbXBhdF92Y3B1X3J1bnN0YXRlX2luZm8gKil2LT5ydW5zdGF0ZV9ndWVzdC5waHlzOwo+ Pj4gKwo+Pj4gKyAgICBBU1NFUlQocnVuc3RhdGUgIT0gTlVMTCk7Cj4+PiArCj4+PiArICAgIGlm ICggVk1fQVNTSVNUKHYtPmRvbWFpbiwgcnVuc3RhdGVfdXBkYXRlX2ZsYWcpICkKPj4+ICsgICAg ewo+Pj4gKyAgICAgICAgcnVuc3RhdGUtPnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRF X1VQREFURTsKPj4+ICsgICAgICAgIHNtcF93bWIoKTsKPj4+ICsgICAgICAgIHYtPnJ1bnN0YXRl LnN0YXRlX2VudHJ5X3RpbWUgfD0gWEVOX1JVTlNUQVRFX1VQREFURTsKPj4+ICsgICAgfQo+Pj4g Kwo+Pj4gKyAgICB7Cj4+PiArICAgICAgICBzdHJ1Y3QgY29tcGF0X3ZjcHVfcnVuc3RhdGVfaW5m byBpbmZvOwo+Pj4gKyAgICAgICAgWExBVF92Y3B1X3J1bnN0YXRlX2luZm8oJmluZm8sICZ2LT5y dW5zdGF0ZSk7Cj4+PiArICAgICAgICBtZW1jcHkodi0+cnVuc3RhdGVfZ3Vlc3QucGh5cywgJmlu Zm8sIHNpemVvZihpbmZvKSk7Cj4+PiArICAgIH0KPj4+ICsgICAgZWxzZQo+Pj4gKyAgICAgICAg bWVtY3B5KHYtPnJ1bnN0YXRlX2d1ZXN0LnBoeXMsICZ2LT5ydW5zdGF0ZSwgc2l6ZW9mKHYtPnJ1 bnN0YXRlKSk7Cj4+IAo+PiBUaGlzICJlbHNlIiBkb2VzIG5vdCBzZWVtIHRvIGJlIHBhaXJlZCB3 aXRoIGFuIGlmKCkuIERvZXMgdGhpcyBidWlsZAo+PiBhdCBhbGw/Cj4gCj4gVGhpcyBwYXJ0aWN1 bGFyIC0gbm90IQo+IEFuZCBpdCBpcyByZWFsbHkgc3RyYW5nZSwgSSByZW1lbWJlciBJIGNoZWNr ZWQgcGF0Y2ggY29tcGlsYXRpb24gZm9yIHg4Ni4gCj4gTG9va2luZyB0aHJvdWdoIGdpdCByZWZs b2cgdG8gcmVhbGl6ZSBhdCB3aGF0IGFtZW5kIGl0IGJlY2FtZSBicm9rZW4uCj4gQnV0IGFsc28g SSBkbyBub3QgY29tcGxldGVseSB1bmRlcnN0YW5kIHRoZSBtZWFuaW5nIG9mICJfY29tcGF0IiBh bmQgaWYgaXQgCj4gc2hvdWxkIGJlIHN1cHBvcnRlZCBoZXJlPwoKV2VsbCwgSSdtIGFmcmFpZCBJ IGRvbid0IHVuZGVyc3RhbmQgd2hhdCB5b3UncmUgYWZ0ZXIuIE9mIGNvdXJzZQpjb21wYXQgbW9k ZSBndWVzdHMgbmVlZCB0byBjb250aW51ZSB0byBiZSBzdXBwb3J0ZWQsIGFuZCB0aGUKbmV3IGlu dGVyZmFjZSB3b3VsZCBhbHNvIGJldHRlciBiZSBhdmFpbGFibGUgdG8gdGhlbS4gQW5kIGl0IGlz CmEgZmFjdCB0aGF0IHRoZWlyIHJ1bnN0YXRlIGFyZWEgbGF5b3V0IGRpZmZlcnMgZnJvbSB0aGF0 IG9mIDY0LWJpdApndWVzdHMuCgo+Pj4gKyAgICBtZm4gPSBkb21haW5fcGFnZV9tYXBfdG9fbWZu KHYtPnJ1bnN0YXRlX2d1ZXN0LnBoeXMpOwo+Pj4gKwo+Pj4gKyAgICB1bm1hcF9kb21haW5fcGFn ZV9nbG9iYWwoKHZvaWQgKikKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodW5z aWduZWQgbG9uZyl2LT5ydW5zdGF0ZV9ndWVzdC5waHlzICYKPj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQUdFX01BU0spKTsKPj4+ICsKPj4+ICsgICAgdi0+cnVuc3RhdGVfZ3Vl c3QucGh5cyA9IE5VTEw7Cj4+IAo+PiBJIHRoaW5rIHlvdSB3b3VsZCBiZXR0ZXIgc3RvcmUgTlVM TCBiZWZvcmUgdW5tYXBwaW5nLgo+IAo+IERvIHlvdSBtZWFuIHVzaW5nIGxvY2FsIHZhcmlhYmxl IHRvIHBhc3MgYWRkcmVzcyB0byAKPiB1bm1hcF9kb21haW5fcGFnZV9nbG9iYWwoKSwgYW5kIHNl dHRpbmcgdi0+cnVuc3RhdGVfZ3Vlc3QucGh5cyB0byBOVUxMIHByaW9yIAo+IHRvIHVubWFwPwoK WWVzLgoKPj4+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCj4+PiArKysgYi94ZW4vaW5j bHVkZS94ZW4vc2NoZWQuaAo+Pj4gQEAgLTE2MywxNyArMTYzLDMxIEBAIHN0cnVjdCB2Y3B1Cj4+ PiAgICAgICB2b2lkICAgICAgICAgICAgKnNjaGVkX3ByaXY7ICAgIC8qIHNjaGVkdWxlci1zcGVj aWZpYyBkYXRhICovCj4+PiAgIAo+Pj4gICAgICAgc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyBy dW5zdGF0ZTsKPj4+ICsKPj4+ICsgICAgZW51bSB7Cj4+PiArICAgICAgICBSVU5TVEFURV9OT05F ID0gMCwKPj4+ICsgICAgICAgIFJVTlNUQVRFX1BBRERSID0gMSwKPj4+ICsgICAgICAgIFJVTlNU QVRFX1ZBRERSID0gMiwKPj4+ICsgICAgfSBydW5zdGF0ZV9ndWVzdF90eXBlOwo+Pj4gKwo+Pj4g KyAgICB1bnNpZ25lZCBsb25nIHJ1bnN0YXRlX2luX3VzZTsKPj4gCj4+IFdoeSAidW5zaWduZWQg bG9uZyI/IElzbid0IGEgYm9vbCBhbGwgeW91IG5lZWQ/Cj4gCj4gQm9vbCBzaG91bGQgYmUgZW5v dWdoLiBCdXQgaXQgc2VlbXMgd2Ugd2lsbCBoYXZlIGEgbG9jayBoZXJlLgo+IAo+PiBBbHNvIHRo ZXNlIHdvdWxkIG5vdyBhbGwgd2FudCB0byBiZSBncm91cGVkIGluIGEgc3ViLXN0cnVjdHVyZSBu YW1lZAo+PiAicnVuc3RhdGUiLCByYXRoZXIgdGhhbiBoYXZpbmcgInJ1bnN0YXRlXyIgcHJlZml4 ZXMuCj4gCj4gTWVtYmVyIGBydW5zdGF0ZWAgaGFzIGFscmVhZHkgYSB0eXBlIG9mIGBzdHJ1Y3Qg dmNwdV9ydW5zdGF0ZV9pbmZvYCB3aGljaCBpcyAKPiBhbiBpbnRlcmZhY2UgdHlwZS4KPiBgcnVu c3RhdGVfZ3Vlc3RgIGlzIGEgdW5pb24uIEknZCBub3QgbGlrZSBtb3ZpbmcgYHJ1bnN0YXRlX2d1 ZXN0YCB1bmlvbiBpbnRvIAo+IGFub3RoZXIgc3Vic3RydWN0dXJlLiBCZWNhdXNlIHdlIHdvdWxk IGhhdmUgbG9uZyBsaW5lcyBsaWtlIAo+IGB2LT5zdHJ1Y3QucnVuc3RhdGVfZ3Vlc3QudmlydC5w LT5zdGF0ZV9lbnRyeV90aW1lYC4KCllvdSBkaWRuJ3QgZ2V0IG15IHBvaW50IHRoZW46IFdoYXQg SSdtIGFmdGVyIGlzCgogICAgc3RydWN0IHsKICAgICAgICBzdHJ1Y3QgdmNwdV9ydW5zdGF0ZV9p bmZvIGluZm87CiAgICAgICAgZW51bSB7CiAgICAgICAgICAgIFJVTlNUQVRFX05PTkUsCiAgICAg ICAgICAgIFJVTlNUQVRFX1BBRERSLAogICAgICAgICAgICBSVU5TVEFURV9WQUREUiwKICAgICAg ICB9IGd1ZXN0X3R5cGU7CiAgICAgICAgYm9vbCBpbl91c2U7CiAgICB9IHJ1bnN0YXRlOwoKKGFu ZCBvZiBjb3Vyc2UgdGhlIHRyYW5zZm9ybWF0aW9uIHRvIHJ1bnN0YXRlLmluZm8gYnJva2VuIG91 dAppbnRvIGEgc2VwYXJhdGUgcHJlcnJlcSBwYXRjaCkuCgpKYW4KCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs