Received: by 10.192.165.156 with SMTP id m28csp1902199imm; Sat, 14 Apr 2018 08:57:35 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/Pl9oDXFyTVtH6w/asgZOAf7VMqtvM1YFAgjRKRq4H/GADrBFlq+C/Kj3wjM9+1Tq/1Ws7 X-Received: by 10.98.211.211 with SMTP id z80mr15549886pfk.16.1523721454983; Sat, 14 Apr 2018 08:57:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523721454; cv=none; d=google.com; s=arc-20160816; b=OvGOOAlfcXGX8uKGemLpOl8l9gHG41oTNfYFyv8gT4svotEP+Mt38DfPfbfPf0MnF6 +rA8bRJC9TggdHPeRdqXEoML4fihRGVO/Vu9iECqsw/nSBRbQVT+Fo1/ouZN7M1wzeCv xnYSVBy9e4ELFRxrT3RqYGFIy0GcS3h1lwgNlBcAAQtrb4JwffkvCuDCycsYOIt6RRco FPj65diQ3LNV7w7a5cdjaIy6CaLgoU0fLU5RFNr00TyUKEpL1YjzWT31BM5onZeN9yjT kC5sX4/wIodXucPJbXZ98LRTj15VVd4VlahG9pxJrZm8Nlxw1ob/E8CGffgHJ3g1DnWk sYXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=ociq6n8K7d3y5uhaiXiiLM6FTR1wV5cgykZouAmixqs=; b=rD3FEwlFa8eBJ8WIBUvsiS1g+NCVpFWp2O8WnK74weLlg00n7BWqMMXMSVOF4t/ytP F1IOPsJ3V6UxtYLiYUNbevhNCC5JVOIyzyc0ruGhYRExsTU1wMfPfX/FasCIH1StzVkS n+dOg/v7TuOOQ6ToxHIB+GgutTbQoO1qQ4yqmgiJEzKb81VK/u5kHE8K3qK7HJaB1Ie3 yezI6FWxxGqIybZbqacanPEvv9dr9CRSgqsC68VftRK1fav/NKGv290RGYV43CXUf/n0 0wkuQHbT///ibtVkd2OCJUwQuS5H2K2CBaAFxI0gqmlJ+F8+C9baryE5phy8YsabH7L4 PZHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.de header.s=amazon201209 header.b=aznuxjPC; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f1si813546pgq.462.2018.04.14.08.57.21; Sat, 14 Apr 2018 08:57:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.de header.s=amazon201209 header.b=aznuxjPC; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751614AbeDNP4N (ORCPT + 99 others); Sat, 14 Apr 2018 11:56:13 -0400 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]:27594 "EHLO smtp-fw-33001.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751138AbeDNP4K (ORCPT ); Sat, 14 Apr 2018 11:56:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1523721369; x=1555257369; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:mime-version: content-transfer-encoding; bh=ociq6n8K7d3y5uhaiXiiLM6FTR1wV5cgykZouAmixqs=; b=aznuxjPCSa3IwP2GY8b0atyzwJDJ72/qNi0iJ4m0Jh8ci+R2IX4fvhiG hcGSFDpVgrQFNF6Im0od1No7xXe9SPVHKz13q314lLVEN+dSOnAY1yRd9 g39FjzRs3/mab3bf65T4NUV11WBlpg86sHJFmm/0FAoRwkoUag+7KkqiH U=; X-IronPort-AV: E=Sophos;i="5.48,449,1517875200"; d="scan'208";a="726165918" Received: from sea3-co-svc-lb6-vlan2.sea.amazon.com (HELO email-inbound-relay-1a-807d4a99.us-east-1.amazon.com) ([10.47.22.34]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 14 Apr 2018 15:56:07 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166]) by email-inbound-relay-1a-807d4a99.us-east-1.amazon.com (8.14.7/8.14.7) with ESMTP id w3EFtqGw072692 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Sat, 14 Apr 2018 15:56:03 GMT Received: from EX13D01EUB001.ant.amazon.com (10.43.166.194) by EX13MTAUEA001.ant.amazon.com (10.43.61.243) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Sat, 14 Apr 2018 15:56:02 +0000 Received: from EX13D01EUB003.ant.amazon.com (10.43.166.248) by EX13D01EUB001.ant.amazon.com (10.43.166.194) with Microsoft SMTP Server (TLS) id 15.0.1236.3; Sat, 14 Apr 2018 15:56:01 +0000 Received: from EX13D01EUB003.ant.amazon.com ([10.43.166.248]) by EX13D01EUB003.ant.amazon.com ([10.43.166.248]) with mapi id 15.00.1236.000; Sat, 14 Apr 2018 15:56:01 +0000 From: "Raslan, KarimAllah" To: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" CC: "jmattson@google.com" , "tglx@linutronix.de" , "rkrcmar@redhat.com" , "hpa@zytor.com" , "pbonzini@redhat.com" , "mingo@redhat.com" , "x86@kernel.org" Subject: Re: [PATCH 2/2] kvm: nVMX: Introduce KVM_CAP_STATE Thread-Topic: [PATCH 2/2] kvm: nVMX: Introduce KVM_CAP_STATE Thread-Index: AQHT0nC6+MLPx/lKCUKGTnSUimWtFqQAbUeA Date: Sat, 14 Apr 2018 15:56:00 +0000 Message-ID: <1523721359.32594.71.camel@amazon.de> References: <1523545958-28059-1-git-send-email-karahmed@amazon.de> <1523545958-28059-2-git-send-email-karahmed@amazon.de> In-Reply-To: <1523545958-28059-2-git-send-email-karahmed@amazon.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.164.76] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVGh1LCAyMDE4LTA0LTEyIGF0IDE3OjEyICswMjAwLCBLYXJpbUFsbGFoIEFobWVkIHdyb3Rl Og0KPiBGcm9tOiBKaW0gTWF0dHNvbiA8am1hdHRzb25AZ29vZ2xlLmNvbT4NCj4gDQo+IEZvciBu ZXN0ZWQgdmlydHVhbGl6YXRpb24gTDAgS1ZNIGlzIG1hbmFnaW5nIGEgYml0IG9mIHN0YXRlIGZv ciBMMiBndWVzdHMsDQo+IHRoaXMgc3RhdGUgY2FuIG5vdCBiZSBjYXB0dXJlZCB0aHJvdWdoIHRo ZSBjdXJyZW50bHkgYXZhaWxhYmxlIElPQ1RMcy4gSW4NCj4gZmFjdCB0aGUgc3RhdGUgY2FwdHVy ZWQgdGhyb3VnaCBhbGwgb2YgdGhlc2UgSU9DVExzIGlzIHVzdWFsbHkgYSBtaXggb2YgTDENCj4g YW5kIEwyIHN0YXRlLiBJdCBpcyBhbHNvIGRlcGVuZGVudCBvbiB3aGV0aGVyIHRoZSBMMiBndWVz dCB3YXMgcnVubmluZyBhdA0KPiB0aGUgbW9tZW50IHdoZW4gdGhlIHByb2Nlc3Mgd2FzIGludGVy cnVwdGVkIHRvIHNhdmUgaXRzIHN0YXRlLg0KPiANCj4gV2l0aCB0aGlzIGNhcGFiaWxpdHksIHRo ZXJlIGFyZSB0d28gbmV3IHZjcHUgaW9jdGxzOiBLVk1fR0VUX1ZNWF9TVEFURSBhbmQNCj4gS1ZN X1NFVF9WTVhfU1RBVEUuIFRoZXNlIGNhbiBiZSB1c2VkIGZvciBzYXZpbmcgYW5kIHJlc3Rvcmlu ZyBhIFZNIHRoYXQgaXMNCj4gaW4gVk1YIG9wZXJhdGlvbi4NCj4gDQo+IENjOiBQYW9sbyBCb256 aW5pIDxwYm9uemluaUByZWRoYXQuY29tPg0KPiBDYzogUmFkaW0gS3LEjW3DocWZIDxya3JjbWFy QHJlZGhhdC5jb20+DQo+IENjOiBUaG9tYXMgR2xlaXhuZXIgPHRnbHhAbGludXRyb25peC5kZT4N Cj4gQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPg0KPiBDYzogSC4gUGV0ZXIgQW52 aW4gPGhwYUB6eXRvci5jb20+DQo+IENjOiB4ODZAa2VybmVsLm9yZw0KPiBDYzoga3ZtQHZnZXIu a2VybmVsLm9yZw0KPiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiBTaWduZWQt b2ZmLWJ5OiBKaW0gTWF0dHNvbiA8am1hdHRzb25AZ29vZ2xlLmNvbT4NCj4gW2thcmFobWVkQCAt IHJlbmFtZSBzdHJ1Y3RzIGFuZCBmdW5jdGlvbnMgYW5kIG1ha2UgdGhlbSByZWFkeSBmb3IgQU1E IGFuZA0KPiAgICAgICAgICAgICAgYWRkcmVzcyBwcmV2aW91cyBjb21tZW50cy4NCj4gICAgICAg ICAgICAtIHJlYmFzZSAmIGEgYml0IG9mIHJlZmFjdG9yaW5nLg0KPiAgICAgICAgICAgIC0gTWVy Z2UgNy84IGFuZCA4LzggaW50byBvbmUgcGF0Y2guDQo+ICAgICAgICAgICAgLSBGb3JjZSBhIFZN RXhpdCBmcm9tIEwyIGFmdGVyIHJlYWRpbmcgdGhlIGt2bV9zdGF0ZSB0byBhdm9pZA0KPiAgICAg ICAgICAgICAgbWl4ZWQgc3RhdGUgYmV0d2VlbiBMMSBhbmQgTDIgb24gcmVzdXJyZWN0aW5nIHRo ZSBpbnN0YW5jZS4gXQ0KPiBTaWduZWQtb2ZmLWJ5OiBLYXJpbUFsbGFoIEFobWVkIDxrYXJhaG1l ZEBhbWF6b24uZGU+DQo+IC0tLQ0KPiB2MiAtPiB2MzoNCj4gLSBSZW1vdmUgdGhlIGZvcmNlZCBW TUV4aXQgZnJvbSBMMiBhZnRlciByZWFkaW5nIHRoZSBrdm1fc3RhdGUuIFRoZSBhY3R1YWwNCj4g ICBwcm9ibGVtIGlzIHNvbHZlZC4NCj4gLSBSZWJhc2UgYWdhaW4hDQo+IC0gU2V0IG5lc3RlZF9y dW5fcGVuZGluZyBkdXJpbmcgcmVzdG9yZSAobm90IHN1cmUgaWYgaXQgbWFrZXMgc2Vuc2UgeWV0 IG9yDQo+ICAgbm90KS4NCj4gLSBSZWR1Y2UgS1ZNX1JFUVVFU1RfQVJDSF9CQVNFIHRvIDcgaW5z dGVhZCBvZiA4ICh0aGUgb3RoZXIgYWx0ZXJuYXRpdmUgaXMNCj4gICB0byBzd2l0Y2ggZXZlcnl0 aGluZyB0byB1NjQpDQo+IA0KPiB2MSAtPiB2MjoNCj4gLSBSZW5hbWUgc3RydWN0cyBhbmQgZnVu Y3Rpb25zIGFuZCBtYWtlIHRoZW0gcmVhZHkgZm9yIEFNRCBhbmQgYWRkcmVzcw0KPiAgIHByZXZp b3VzIGNvbW1lbnRzLg0KPiAtIFJlYmFzZSAmIGEgYml0IG9mIHJlZmFjdG9yaW5nLg0KPiAtIE1l cmdlIDcvOCBhbmQgOC84IGludG8gb25lIHBhdGNoLg0KPiAtIEZvcmNlIGEgVk1FeGl0IGZyb20g TDIgYWZ0ZXIgcmVhZGluZyB0aGUga3ZtX3N0YXRlIHRvIGF2b2lkIG1peGVkIHN0YXRlDQo+ICAg YmV0d2VlbiBMMSBhbmQgTDIgb24gcmVzdXJyZWN0aW5nIHRoZSBpbnN0YW5jZS4NCj4gLS0tDQo+ ICBEb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQgfCAgNDcgKysrKysrKysrKw0KPiAg YXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCAgIHwgICA3ICsrDQo+ICBhcmNoL3g4Ni9p bmNsdWRlL3VhcGkvYXNtL2t2bS5oICAgfCAgMzggKysrKysrKysNCj4gIGFyY2gveDg2L2t2bS92 bXguYyAgICAgICAgICAgICAgICB8IDE3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQ0KPiAgYXJjaC94ODYva3ZtL3g4Ni5jICAgICAgICAgICAgICAgIHwgIDIxICsrKysr DQo+ICBpbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggICAgICAgICAgfCAgIDIgKy0NCj4gIGluY2x1 ZGUvdWFwaS9saW51eC9rdm0uaCAgICAgICAgICB8ICAgNSArKw0KPiAgNyBmaWxlcyBjaGFuZ2Vk LCAyOTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQgYi9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwv a3ZtL2FwaS50eHQNCj4gaW5kZXggMWM3OTU4Yi4uYzUxZDVkMyAxMDA2NDQNCj4gLS0tIGEvRG9j dW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9hcGkudHh0DQo+ICsrKyBiL0RvY3VtZW50YXRpb24vdmly dHVhbC9rdm0vYXBpLnR4dA0KPiBAQCAtMzU0OCw2ICszNTQ4LDUzIEBAIFJldHVybnM6IDAgb24g c3VjY2VzcywNCj4gIAktRU5PRU5UIG9uIGRlYXNzaWduIGlmIHRoZSBjb25uX2lkIGlzbid0IHJl Z2lzdGVyZWQNCj4gIAktRUVYSVNUIG9uIGFzc2lnbiBpZiB0aGUgY29ubl9pZCBpcyBhbHJlYWR5 IHJlZ2lzdGVyZWQNCj4gIA0KPiArNC4xMTQgS1ZNX0dFVF9TVEFURQ0KPiArDQo+ICtDYXBhYmls aXR5OiBLVk1fQ0FQX1NUQVRFDQo+ICtBcmNoaXRlY3R1cmVzOiB4ODYNCj4gK1R5cGU6IHZjcHUg aW9jdGwNCj4gK1BhcmFtZXRlcnM6IHN0cnVjdCBrdm1fc3RhdGUgKGluL291dCkNCj4gK1JldHVy bnM6IDAgb24gc3VjY2VzcywgLTEgb24gZXJyb3INCj4gK0Vycm9yczoNCj4gKyAgRTJCSUc6ICAg ICB0aGUgZGF0YSBzaXplIGV4Y2VlZHMgdGhlIHZhbHVlIG9mICdzaXplJyBzcGVjaWZpZWQgYnkN Cj4gKyAgICAgICAgICAgICB0aGUgdXNlciAodGhlIHNpemUgcmVxdWlyZWQgd2lsbCBiZSB3cml0 dGVuIGludG8gc2l6ZSkuDQo+ICsNCj4gK3N0cnVjdCBrdm1fc3RhdGUgew0KPiArCV9fdTE2IGZs YWdzOw0KPiArCV9fdTE2IGZvcm1hdDsNCj4gKwlfX3UzMiBzaXplOw0KPiArCXVuaW9uIHsNCj4g KwkJc3RydWN0IGt2bV92bXhfc3RhdGUgdm14Ow0KPiArCQlzdHJ1Y3Qga3ZtX3N2bV9zdGF0ZSBz dm07DQo+ICsJCV9fdTggcGFkWzEyMF07DQo+ICsJfTsNCj4gKwlfX3U4IGRhdGFbMF07DQo+ICt9 Ow0KPiArDQo+ICtUaGlzIGlvY3RsIGNvcGllcyB0aGUgdmNwdSdzIGt2bV9zdGF0ZSBzdHJ1Y3Qg ZnJvbSB0aGUga2VybmVsIHRvIHVzZXJzcGFjZS4NCj4gKw0KPiArNC4xMTUgS1ZNX1NFVF9TVEFU RQ0KPiArDQo+ICtDYXBhYmlsaXR5OiBLVk1fQ0FQX1NUQVRFDQo+ICtBcmNoaXRlY3R1cmVzOiB4 ODYNCj4gK1R5cGU6IHZjcHUgaW9jdGwNCj4gK1BhcmFtZXRlcnM6IHN0cnVjdCBrdm1fc3RhdGUg KGluKQ0KPiArUmV0dXJuczogMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvcg0KPiArDQo+ICtzdHJ1 Y3Qga3ZtX3N0YXRlIHsNCj4gKwlfX3UxNiBmbGFnczsNCj4gKwlfX3UxNiBmb3JtYXQ7DQo+ICsJ X191MzIgc2l6ZTsNCj4gKwl1bmlvbiB7DQo+ICsJCXN0cnVjdCBrdm1fdm14X3N0YXRlIHZteDsN Cj4gKwkJc3RydWN0IGt2bV9zdm1fc3RhdGUgc3ZtOw0KPiArCQlfX3U4IHBhZFsxMjBdOw0KPiAr CX07DQo+ICsJX191OCBkYXRhWzBdOw0KPiArfTsNCj4gKw0KPiArVGhpcyBjb3BpZXMgdGhlIHZj cHUncyBrdm1fc3RhdGUgc3RydWN0IGZyb20gdXNlcnNwYWNlIHRvIHRoZSBrZXJuZWwuDQo+ICs+ Pj4+Pj4+IDEzYTdjOWUuLi4ga3ZtOiBuVk1YOiBJbnRyb2R1Y2UgS1ZNX0NBUF9TVEFURQ0KPiAg DQo+ICA1LiBUaGUga3ZtX3J1biBzdHJ1Y3R1cmUNCj4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gv eDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgNCj4gaW5kZXggOWZhNGY1Ny4uYWQyMTE2YSAxMDA2 NDQNCj4gLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaA0KPiArKysgYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oDQo+IEBAIC03NSw2ICs3NSw3IEBADQo+ICAjZGVm aW5lIEtWTV9SRVFfSFZfRVhJVAkJCUtWTV9BUkNIX1JFUSgyMSkNCj4gICNkZWZpbmUgS1ZNX1JF UV9IVl9TVElNRVIJCUtWTV9BUkNIX1JFUSgyMikNCj4gICNkZWZpbmUgS1ZNX1JFUV9MT0FEX0VP SV9FWElUTUFQCUtWTV9BUkNIX1JFUSgyMykNCj4gKyNkZWZpbmUgS1ZNX1JFUV9HRVRfVk1DUzEy X1BBR0VTCUtWTV9BUkNIX1JFUSgyNCkNCj4gIA0KPiAgI2RlZmluZSBDUjBfUkVTRVJWRURfQklU UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgCSh+ KHVuc2lnbmVkIGxvbmcpKFg4Nl9DUjBfUEUgfCBYODZfQ1IwX01QIHwgWDg2X0NSMF9FTSB8IFg4 Nl9DUjBfVFMgXA0KPiBAQCAtMTA4NCw2ICsxMDg1LDEyIEBAIHN0cnVjdCBrdm1feDg2X29wcyB7 DQo+ICANCj4gIAl2b2lkICgqc2V0dXBfbWNlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOw0KPiAg DQo+ICsJaW50ICgqZ2V0X3N0YXRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ICsJCQkgc3Ry dWN0IGt2bV9zdGF0ZSBfX3VzZXIgKnVzZXJfa3ZtX3N0YXRlKTsNCj4gKwlpbnQgKCpzZXRfc3Rh dGUpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwNCj4gKwkJCSBzdHJ1Y3Qga3ZtX3N0YXRlIF9fdXNl ciAqdXNlcl9rdm1fc3RhdGUpOw0KPiArCXZvaWQgKCpnZXRfdm1jczEyX3BhZ2VzKShzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUpOw0KPiArDQo+ICAJaW50ICgqc21pX2FsbG93ZWQpKHN0cnVjdCBrdm1f dmNwdSAqdmNwdSk7DQo+ICAJaW50ICgqcHJlX2VudGVyX3NtbSkoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LCBjaGFyICpzbXN0YXRlKTsNCj4gIAlpbnQgKCpwcmVfbGVhdmVfc21tKShzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIHU2NCBzbWJhc2UpOw0KPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVk ZS91YXBpL2FzbS9rdm0uaCBiL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgNCj4gaW5k ZXggYzUzNWMyZi4uZDJjODYwYSAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYvaW5jbHVkZS91YXBp L2FzbS9rdm0uaA0KPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oDQo+IEBA IC0zNzgsNCArMzc4LDQyIEBAIHN0cnVjdCBrdm1fc3luY19yZWdzIHsNCj4gICNkZWZpbmUgS1ZN X1g4Nl9RVUlSS19MSU5UMF9SRUVOQUJMRUQJKDEgPDwgMCkNCj4gICNkZWZpbmUgS1ZNX1g4Nl9R VUlSS19DRF9OV19DTEVBUkVECSgxIDw8IDEpDQo+ICANCj4gKyNkZWZpbmUgS1ZNX1NUQVRFX0dV RVNUX01PREUJMHgwMDAwMDAwMQ0KPiArI2RlZmluZSBLVk1fU1RBVEVfUlVOX1BFTkRJTkcJMHgw MDAwMDAwMg0KPiArI2RlZmluZSBLVk1fU1RBVEVfR0lGCQkweDAwMDAwMDA0DQo+ICsNCj4gK3N0 cnVjdCBrdm1fdm14X3N0YXRlIHsNCj4gKwlfX3U2NCB2bXhvbl9wYTsNCj4gKwlfX3U2NCB2bWNz X3BhOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IGt2bV9zdm1fc3RhdGUgew0KPiArCV9fdTY0IGhz YXZlX3BhOw0KPiArCV9fdTY0IHZtY2JfcGE7DQo+ICt9Ow0KPiArDQo+ICsvKiBmb3IgS1ZNX0NB UF9TVEFURSAqLw0KPiArc3RydWN0IGt2bV9zdGF0ZSB7DQo+ICsJLyogS1ZNX1NUQVRFXyogZmxh Z3MgKi8NCj4gKwlfX3UxNiBmbGFnczsNCj4gKw0KPiArCS8qIDAgZm9yIFZNWCwgMSBmb3IgU1ZN LiAgKi8NCj4gKwlfX3UxNiBmb3JtYXQ7DQo+ICsNCj4gKwkvKiAxMjggZm9yIFNWTSwgMTI4ICsg Vk1DUyBzaXplIGZvciBWTVguICAqLw0KPiArCV9fdTMyIHNpemU7DQo+ICsNCj4gKwl1bmlvbiB7 DQo+ICsJCS8qIFZNWE9OLCBWTUNTICovDQo+ICsJCXN0cnVjdCBrdm1fdm14X3N0YXRlIHZteDsN Cj4gKwkJLyogSFNBVkVfUEEsIFZNQ0IgKi8NCj4gKwkJc3RydWN0IGt2bV9zdm1fc3RhdGUgc3Zt Ow0KPiArDQo+ICsJCS8qIFBhZCB0aGUgdW5pb24gdG8gMTIwIGJ5dGVzLiAgKi8NCj4gKwkJX191 OCBwYWRbMTIwXTsNCj4gKwl9Ow0KPiArDQo+ICsJX191OCBkYXRhWzBdOw0KPiArfTsNCj4gKw0K PiAgI2VuZGlmIC8qIF9BU01fWDg2X0tWTV9IICovDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9r dm0vdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14LmMNCj4gaW5kZXggMmY1NzU3MS4uYzJiNDM2YiAx MDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL3ZteC5jDQo+ICsrKyBiL2FyY2gveDg2L2t2bS92 bXguYw0KPiBAQCAtMTAzNTksMTAgKzEwMzU5LDEwIEBAIHN0YXRpYyB2b2lkIHZteF9pbmplY3Rf cGFnZV9mYXVsdF9uZXN0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LA0KPiAgc3RhdGljIGlubGlu ZSBib29sIG5lc3RlZF92bXhfcHJlcGFyZV9tc3JfYml0bWFwKHN0cnVjdCBrdm1fdmNwdSAqdmNw dSwNCj4gIAkJCQkJCSBzdHJ1Y3Qgdm1jczEyICp2bWNzMTIpOw0KPiAgDQo+IC1zdGF0aWMgdm9p ZCBuZXN0ZWRfZ2V0X3ZtY3MxMl9wYWdlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+IC0JCQkJ CXN0cnVjdCB2bWNzMTIgKnZtY3MxMikNCj4gK3N0YXRpYyB2b2lkIG5lc3RlZF9nZXRfdm1jczEy X3BhZ2VzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkNCj4gIHsNCj4gIAlzdHJ1Y3QgdmNwdV92bXgg KnZteCA9IHRvX3ZteCh2Y3B1KTsNCj4gKwlzdHJ1Y3Qgdm1jczEyICp2bWNzMTIgPSBnZXRfdm1j czEyKHZjcHUpOw0KPiAgDQo+ICAJaWYgKG5lc3RlZF9jcHVfaGFzMih2bWNzMTIsIFNFQ09OREFS WV9FWEVDX1ZJUlRVQUxJWkVfQVBJQ19BQ0NFU1NFUykpIHsNCj4gIAkJaWYgKHZtY3MxMi0+YXBp Y19hY2Nlc3NfYWRkciAhPSB2bXgtPm5lc3RlZC5hcGljX2FjY2Vzc19tYXBwaW5nLmdmbiA8PCBQ QUdFX1NISUZUKSB7DQo+IEBAIC0xMTQzMCw4ICsxMTQzMCw2IEBAIHN0YXRpYyBpbnQgZW50ZXJf dm14X25vbl9yb290X21vZGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZyb21fdm1lbnRy eSkNCj4gIAkJcmV0dXJuIDE7DQo+ICAJfQ0KPiAgDQo+IC0JbmVzdGVkX2dldF92bWNzMTJfcGFn ZXModmNwdSwgdm1jczEyKTsNCj4gLQ0KPiAgCW1zcl9lbnRyeV9pZHggPSBuZXN0ZWRfdm14X2xv YWRfbXNyKHZjcHUsDQo+ICAJCQkJCSAgICB2bWNzMTItPnZtX2VudHJ5X21zcl9sb2FkX2FkZHIs DQo+ICAJCQkJCSAgICB2bWNzMTItPnZtX2VudHJ5X21zcl9sb2FkX2NvdW50KTsNCj4gQEAgLTEx NTI5LDYgKzExNTI3LDggQEAgc3RhdGljIGludCBuZXN0ZWRfdm14X3J1bihzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUsIGJvb2wgbGF1bmNoKQ0KPiAgCWlmIChyZXQpDQo+ICAJCXJldHVybiByZXQ7DQo+ ICANCj4gKwluZXN0ZWRfZ2V0X3ZtY3MxMl9wYWdlcyh2Y3B1KTsNCj4gKw0KPiAgCS8qDQo+ICAJ ICogSWYgd2UncmUgZW50ZXJpbmcgYSBoYWx0ZWQgTDIgdmNwdSBhbmQgdGhlIEwyIHZjcHUgd29u J3QgYmUgd29rZW4NCj4gIAkgKiBieSBldmVudCBpbmplY3Rpb24sIGhhbHQgdmNwdS4NCj4gQEAg LTEyNTk1LDYgKzEyNTk1LDE3MSBAQCBzdGF0aWMgaW50IGVuYWJsZV9zbWlfd2luZG93KHN0cnVj dCBrdm1fdmNwdSAqdmNwdSkNCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gIA0KPiArc3RhdGljIGlu dCBnZXRfdm1jc19jYWNoZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ICsJCQkgIHN0cnVjdCBr dm1fc3RhdGUgX191c2VyICp1c2VyX2t2bV9zdGF0ZSkNCj4gK3sNCj4gKwlzdHJ1Y3QgdmNwdV92 bXggKnZteCA9IHRvX3ZteCh2Y3B1KTsNCj4gKwlzdHJ1Y3Qgdm1jczEyICp2bWNzMTIgPSBnZXRf dm1jczEyKHZjcHUpOw0KPiArDQo+ICsJLyoNCj4gKwkgKiBXaGVuIHJ1bm5pbmcgTDIsIHRoZSBh dXRob3JpdGF0aXZlIHZtY3MxMiBzdGF0ZSBpcyBpbiB0aGUNCj4gKwkgKiB2bWNzMDIuIFdoZW4g cnVubmluZyBMMSwgdGhlIGF1dGhvcml0YXRpdmUgdm1jczEyIHN0YXRlIGlzDQo+ICsJICogaW4g dGhlIHNoYWRvdyB2bWNzIGxpbmtlZCB0byB2bWNzMDEsIHVubGVzcw0KPiArCSAqIHN5bmNfc2hh ZG93X3ZtY3MgaXMgc2V0LCBpbiB3aGljaCBjYXNlLCB0aGUgYXV0aG9yaXRhdGl2ZQ0KPiArCSAq IHZtY3MxMiBzdGF0ZSBpcyBpbiB0aGUgdm1jczEyIGFscmVhZHkuDQo+ICsJICovDQo+ICsJaWYg KGlzX2d1ZXN0X21vZGUodmNwdSkpDQo+ICsJCXN5bmNfdm1jczEyKHZjcHUsIHZtY3MxMik7DQo+ ICsJZWxzZSBpZiAoZW5hYmxlX3NoYWRvd192bWNzICYmICF2bXgtPm5lc3RlZC5zeW5jX3NoYWRv d192bWNzKQ0KPiArCQljb3B5X3NoYWRvd190b192bWNzMTIodm14KTsNCj4gKw0KPiArCWlmIChj b3B5X3RvX3VzZXIodXNlcl9rdm1fc3RhdGUtPmRhdGEsIHZtY3MxMiwgc2l6ZW9mKCp2bWNzMTIp KSkNCj4gKwkJcmV0dXJuIC1FRkFVTFQ7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0K PiArc3RhdGljIGludCBnZXRfdm14X3N0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwNCj4gKwkJ CSBzdHJ1Y3Qga3ZtX3N0YXRlIF9fdXNlciAqdXNlcl9rdm1fc3RhdGUpDQo+ICt7DQo+ICsJdTMy IHVzZXJfZGF0YV9zaXplOw0KPiArCXN0cnVjdCB2Y3B1X3ZteCAqdm14ID0gdG9fdm14KHZjcHUp Ow0KPiArCXN0cnVjdCBrdm1fc3RhdGUga3ZtX3N0YXRlID0gew0KPiArCQkuZmxhZ3MgPSAwLA0K PiArCQkuZm9ybWF0ID0gMCwNCj4gKwkJLnNpemUgPSBzaXplb2Yoa3ZtX3N0YXRlKSwNCj4gKwkJ LnZteC52bXhvbl9wYSA9IC0xdWxsLA0KPiArCQkudm14LnZtY3NfcGEgPSAtMXVsbCwNCj4gKwl9 Ow0KPiArDQo+ICsJaWYgKGNvcHlfZnJvbV91c2VyKCZ1c2VyX2RhdGFfc2l6ZSwgJnVzZXJfa3Zt X3N0YXRlLT5zaXplLA0KPiArCQkJICAgc2l6ZW9mKHVzZXJfZGF0YV9zaXplKSkpDQo+ICsJCXJl dHVybiAtRUZBVUxUOw0KPiArDQo+ICsJaWYgKG5lc3RlZF92bXhfYWxsb3dlZCh2Y3B1KSAmJiB2 bXgtPm5lc3RlZC52bXhvbikgew0KPiArCQlrdm1fc3RhdGUudm14LnZteG9uX3BhID0gdm14LT5u ZXN0ZWQudm14b25fcHRyOw0KPiArCQlrdm1fc3RhdGUudm14LnZtY3NfcGEgPSB2bXgtPm5lc3Rl ZC5jdXJyZW50X3ZtcHRyOw0KPiArDQo+ICsJCWlmICh2bXgtPm5lc3RlZC5jdXJyZW50X3ZtcHRy ICE9IC0xdWxsKQ0KPiArCQkJa3ZtX3N0YXRlLnNpemUgKz0gVk1DUzEyX1NJWkU7DQo+ICsNCj4g KwkJaWYgKGlzX2d1ZXN0X21vZGUodmNwdSkpIHsNCj4gKwkJCWt2bV9zdGF0ZS5mbGFncyB8PSBL Vk1fU1RBVEVfR1VFU1RfTU9ERTsNCj4gKw0KPiArCQkJaWYgKHZteC0+bmVzdGVkLm5lc3RlZF9y dW5fcGVuZGluZykNCj4gKwkJCQlrdm1fc3RhdGUuZmxhZ3MgfD0gS1ZNX1NUQVRFX1JVTl9QRU5E SU5HOw0KPiArCQl9DQo+ICsJfQ0KPiArDQo+ICsJaWYgKHVzZXJfZGF0YV9zaXplIDwga3ZtX3N0 YXRlLnNpemUpIHsNCj4gKwkJaWYgKGNvcHlfdG9fdXNlcigmdXNlcl9rdm1fc3RhdGUtPnNpemUs ICZrdm1fc3RhdGUuc2l6ZSwNCj4gKwkJCQkgc2l6ZW9mKGt2bV9zdGF0ZS5zaXplKSkpDQo+ICsJ CQlyZXR1cm4gLUVGQVVMVDsNCj4gKwkJcmV0dXJuIC1FMkJJRzsNCj4gKwl9DQo+ICsNCj4gKwlp ZiAoY29weV90b191c2VyKHVzZXJfa3ZtX3N0YXRlLCAma3ZtX3N0YXRlLCBzaXplb2Yoa3ZtX3N0 YXRlKSkpDQo+ICsJCXJldHVybiAtRUZBVUxUOw0KPiArDQo+ICsJaWYgKHZteC0+bmVzdGVkLmN1 cnJlbnRfdm1wdHIgPT0gLTF1bGwpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJcmV0dXJuIGdl dF92bWNzX2NhY2hlKHZjcHUsIHVzZXJfa3ZtX3N0YXRlKTsNCj4gK30NCj4gKw0KPiArc3RhdGlj IGludCBzZXRfdm1jc19jYWNoZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+ICsJCQkgIHN0cnVj dCBrdm1fc3RhdGUgX191c2VyICp1c2VyX2t2bV9zdGF0ZSwNCj4gKwkJCSAgc3RydWN0IGt2bV9z dGF0ZSAqa3ZtX3N0YXRlKQ0KPiArDQo+ICt7DQo+ICsJc3RydWN0IHZjcHVfdm14ICp2bXggPSB0 b192bXgodmNwdSk7DQo+ICsJc3RydWN0IHZtY3MxMiAqdm1jczEyID0gZ2V0X3ZtY3MxMih2Y3B1 KTsNCj4gKwl1MzIgZXhpdF9xdWFsOw0KPiArCWludCByZXQ7DQo+ICsNCj4gKwlpZiAoKGt2bV9z dGF0ZS0+c2l6ZSA8IChzaXplb2YoKnZtY3MxMikgKyBzaXplb2YoKmt2bV9zdGF0ZSkpKSB8fA0K PiArCSAgICBrdm1fc3RhdGUtPnZteC52bWNzX3BhID09IGt2bV9zdGF0ZS0+dm14LnZteG9uX3Bh IHx8DQo+ICsJICAgICFwYWdlX2FkZHJlc3NfdmFsaWQodmNwdSwga3ZtX3N0YXRlLT52bXgudm1j c19wYSkpDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJaWYgKGNvcHlfZnJvbV91c2Vy KHZtY3MxMiwgdXNlcl9rdm1fc3RhdGUtPmRhdGEsIHNpemVvZigqdm1jczEyKSkpDQo+ICsJCXJl dHVybiAtRUZBVUxUOw0KPiArDQo+ICsJaWYgKHZtY3MxMi0+cmV2aXNpb25faWQgIT0gVk1DUzEy X1JFVklTSU9OKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCXNldF9jdXJyZW50X3Zt cHRyKHZteCwga3ZtX3N0YXRlLT52bXgudm1jc19wYSk7DQo+ICsNCj4gKwlpZiAoIShrdm1fc3Rh dGUtPmZsYWdzICYgS1ZNX1NUQVRFX0dVRVNUX01PREUpKQ0KPiArCQlyZXR1cm4gMDsNCj4gKw0K PiArCWlmIChrdm1fc3RhdGUtPmZsYWdzICYgS1ZNX1NUQVRFX1JVTl9QRU5ESU5HKQ0KPiArCQl2 bXgtPm5lc3RlZC5uZXN0ZWRfcnVuX3BlbmRpbmcgPSAxOw0KPiArDQo+ICsJaWYgKGNoZWNrX3Zt ZW50cnlfcHJlcmVxcyh2Y3B1LCB2bWNzMTIpIHx8DQo+ICsJICAgIGNoZWNrX3ZtZW50cnlfcG9z dHJlcXModmNwdSwgdm1jczEyLCAmZXhpdF9xdWFsKSkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ ICsNCj4gKwlyZXQgPSBlbnRlcl92bXhfbm9uX3Jvb3RfbW9kZSh2Y3B1LCB0cnVlKTsNCj4gKwlp ZiAocmV0KQ0KPiArCQlyZXR1cm4gcmV0Ow0KPiArDQo+ICsJLyoNCj4gKwkgKiBUaGlzIHJlcXVl c3Qgd2lsbCByZXN1bHQgaW4gYSBjYWxsIHRvDQo+ICsJICogbmVzdGVkX2dldF92bWNzMTJfcGFn ZXMgYmVmb3JlIHRoZSBuZXh0IFZNLWVudHJ5Lg0KPiArCSAqLw0KPiArCWt2bV9tYWtlX3JlcXVl c3QoS1ZNX1JFUV9HRVRfVk1DUzEyX1BBR0VTLCB2Y3B1KTsNCj4gKw0KPiArCXZteC0+bmVzdGVk Lm5lc3RlZF9ydW5fcGVuZGluZyA9IDE7DQo+ICsNCj4gKwlyZXR1cm4gMDsNCj4gK30NCj4gKw0K PiArc3RhdGljIGludCBzZXRfdm14X3N0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwNCj4gKwkJ CSBzdHJ1Y3Qga3ZtX3N0YXRlIF9fdXNlciAqdXNlcl9rdm1fc3RhdGUpDQo+ICt7DQo+ICsJc3Ry dWN0IHZjcHVfdm14ICp2bXggPSB0b192bXgodmNwdSk7DQo+ICsJc3RydWN0IGt2bV9zdGF0ZSBr dm1fc3RhdGU7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCWlmIChjb3B5X2Zyb21fdXNlcigma3Zt X3N0YXRlLCB1c2VyX2t2bV9zdGF0ZSwgc2l6ZW9mKGt2bV9zdGF0ZSkpKQ0KPiArCQlyZXR1cm4g LUVGQVVMVDsNCj4gKw0KPiArCWlmIChrdm1fc3RhdGUuc2l6ZSA8IHNpemVvZihrdm1fc3RhdGUp KQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCWlmIChrdm1fc3RhdGUuZm9ybWF0ICE9 IDApDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJaWYgKGt2bV9zdGF0ZS5mbGFncyAm DQo+ICsJICAgIH4oS1ZNX1NUQVRFX1JVTl9QRU5ESU5HIHwgS1ZNX1NUQVRFX0dVRVNUX01PREUp KQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCWlmICghbmVzdGVkX3ZteF9hbGxvd2Vk KHZjcHUpKQ0KPiArCQlyZXR1cm4ga3ZtX3N0YXRlLnZteC52bXhvbl9wYSA9PSAtMXVsbCA/IDAg OiAtRUlOVkFMOw0KPiArDQo+ICsJdm14X2xlYXZlX25lc3RlZCh2Y3B1KTsNCj4gKw0KPiArCXZt eC0+bmVzdGVkLm5lc3RlZF9ydW5fcGVuZGluZyA9DQo+ICsJCSEhKGt2bV9zdGF0ZS5mbGFncyAm IEtWTV9TVEFURV9SVU5fUEVORElORyk7DQo+ICsNCj4gKwlpZiAoa3ZtX3N0YXRlLnZteC52bXhv bl9wYSA9PSAtMXVsbCkNCj4gKwkJcmV0dXJuIDA7DQo+ICsNCj4gKwlpZiAoIXBhZ2VfYWRkcmVz c192YWxpZCh2Y3B1LCBrdm1fc3RhdGUudm14LnZteG9uX3BhKSkNCj4gKwkJcmV0dXJuIC1FSU5W QUw7DQo+ICsNCj4gKwl2bXgtPm5lc3RlZC52bXhvbl9wdHIgPSBrdm1fc3RhdGUudm14LnZteG9u X3BhOw0KPiArCXJldCA9IGVudGVyX3ZteF9vcGVyYXRpb24odmNwdSk7DQo+ICsJaWYgKHJldCkN Cj4gKwkJcmV0dXJuIHJldDsNCj4gKw0KPiArCWlmIChrdm1fc3RhdGUudm14LnZtY3NfcGEgPT0g LTF1bGwpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJcmV0dXJuIHNldF92bWNzX2NhY2hlKHZj cHUsIHVzZXJfa3ZtX3N0YXRlLCAma3ZtX3N0YXRlKTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIHN0 cnVjdCBrdm1feDg2X29wcyB2bXhfeDg2X29wcyBfX3JvX2FmdGVyX2luaXQgPSB7DQo+ICAJLmNw dV9oYXNfa3ZtX3N1cHBvcnQgPSBjcHVfaGFzX2t2bV9zdXBwb3J0LA0KPiAgCS5kaXNhYmxlZF9i eV9iaW9zID0gdm14X2Rpc2FibGVkX2J5X2Jpb3MsDQo+IEBAIC0xMjcyOCw2ICsxMjg5MywxMCBA QCBzdGF0aWMgc3RydWN0IGt2bV94ODZfb3BzIHZteF94ODZfb3BzIF9fcm9fYWZ0ZXJfaW5pdCA9 IHsNCj4gIA0KPiAgCS5zZXR1cF9tY2UgPSB2bXhfc2V0dXBfbWNlLA0KPiAgDQo+ICsJLmdldF9z dGF0ZSA9IGdldF92bXhfc3RhdGUsDQo+ICsJLnNldF9zdGF0ZSA9IHNldF92bXhfc3RhdGUsDQo+ ICsJLmdldF92bWNzMTJfcGFnZXMgPSBuZXN0ZWRfZ2V0X3ZtY3MxMl9wYWdlcywNCj4gKw0KPiAg CS5zbWlfYWxsb3dlZCA9IHZteF9zbWlfYWxsb3dlZCwNCj4gIAkucHJlX2VudGVyX3NtbSA9IHZt eF9wcmVfZW50ZXJfc21tLA0KPiAgCS5wcmVfbGVhdmVfc21tID0gdm14X3ByZV9sZWF2ZV9zbW0s DQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMN Cj4gaW5kZXggMWEyZWQ5Mi4uNTY1ZTFkZSAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL3g4 Ni5jDQo+ICsrKyBiL2FyY2gveDg2L2t2bS94ODYuYw0KPiBAQCAtMjkyMyw2ICsyOTIzLDkgQEAg aW50IGt2bV92bV9pb2N0bF9jaGVja19leHRlbnNpb24oc3RydWN0IGt2bSAqa3ZtLCBsb25nIGV4 dCkNCj4gIAljYXNlIEtWTV9DQVBfWDJBUElDX0FQSToNCj4gIAkJciA9IEtWTV9YMkFQSUNfQVBJ X1ZBTElEX0ZMQUdTOw0KPiAgCQlicmVhazsNCj4gKwljYXNlIEtWTV9DQVBfU1RBVEU6DQo+ICsJ CXIgPSAhIWt2bV94ODZfb3BzLT5nZXRfc3RhdGU7DQo+ICsJCWJyZWFrOw0KPiAgCWRlZmF1bHQ6 DQo+ICAJCWJyZWFrOw0KPiAgCX0NCj4gQEAgLTM5NDEsNiArMzk0NCwyMiBAQCBsb25nIGt2bV9h cmNoX3ZjcHVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsDQo+ICAJCXIgPSBrdm1fdmNwdV9pb2N0 bF9lbmFibGVfY2FwKHZjcHUsICZjYXApOw0KPiAgCQlicmVhazsNCj4gIAl9DQo+ICsJY2FzZSBL Vk1fR0VUX1NUQVRFOiB7DQo+ICsJCXN0cnVjdCBrdm1fc3RhdGUgX191c2VyICp1c2VyX2t2bV9z dGF0ZSA9IGFyZ3A7DQo+ICsNCj4gKwkJciA9IC1FSU5WQUw7DQo+ICsJCWlmIChrdm1feDg2X29w cy0+Z2V0X3N0YXRlKQ0KPiArCQkJciA9IGt2bV94ODZfb3BzLT5nZXRfc3RhdGUodmNwdSwgdXNl cl9rdm1fc3RhdGUpOw0KPiArCQlicmVhazsNCj4gKwl9DQo+ICsJY2FzZSBLVk1fU0VUX1NUQVRF OiB7DQo+ICsJCXN0cnVjdCBrdm1fc3RhdGUgX191c2VyICp1c2VyX2t2bV9zdGF0ZSA9IGFyZ3A7 DQo+ICsNCj4gKwkJciA9IC1FSU5WQUw7DQo+ICsJCWlmIChrdm1feDg2X29wcy0+c2V0X3N0YXRl KQ0KPiArCQkJciA9IGt2bV94ODZfb3BzLT5zZXRfc3RhdGUodmNwdSwgdXNlcl9rdm1fc3RhdGUp Ow0KPiArCQlicmVhazsNCj4gKwl9DQo+ICAJZGVmYXVsdDoNCj4gIAkJciA9IC1FSU5WQUw7DQo+ ICAJfQ0KPiBAQCAtNzIxNCw2ICs3MjMzLDggQEAgc3RhdGljIGludCB2Y3B1X2VudGVyX2d1ZXN0 KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkNCj4gIAlib29sIHJlcV9pbW1lZGlhdGVfZXhpdCA9IGZh bHNlOw0KPiAgDQo+ICAJaWYgKGt2bV9yZXF1ZXN0X3BlbmRpbmcodmNwdSkpIHsNCj4gKwkJaWYg KGt2bV9jaGVja19yZXF1ZXN0KEtWTV9SRVFfR0VUX1ZNQ1MxMl9QQUdFUywgdmNwdSkpDQo+ICsJ CQlrdm1feDg2X29wcy0+Z2V0X3ZtY3MxMl9wYWdlcyh2Y3B1KTsNCj4gIAkJaWYgKGt2bV9jaGVj a19yZXF1ZXN0KEtWTV9SRVFfTU1VX1JFTE9BRCwgdmNwdSkpDQo+ICAJCQlrdm1fbW11X3VubG9h ZCh2Y3B1KTsNCj4gIAkJaWYgKGt2bV9jaGVja19yZXF1ZXN0KEtWTV9SRVFfTUlHUkFURV9USU1F UiwgdmNwdSkpDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggYi9pbmNs dWRlL2xpbnV4L2t2bV9ob3N0LmgNCj4gaW5kZXggN2EyODg5YS4uMDAxYjEyMiAxMDA2NDQNCj4g LS0tIGEvaW5jbHVkZS9saW51eC9rdm1faG9zdC5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgva3Zt X2hvc3QuaA0KPiBAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19lcnJv cl9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQ0KPiAgI2RlZmluZSBLVk1fUkVRX01NVV9SRUxPQUQg ICAgICAgICgxIHwgS1ZNX1JFUVVFU1RfV0FJVCB8IEtWTV9SRVFVRVNUX05PX1dBS0VVUCkNCj4g ICNkZWZpbmUgS1ZNX1JFUV9QRU5ESU5HX1RJTUVSICAgICAyDQo+ICAjZGVmaW5lIEtWTV9SRVFf VU5IQUxUICAgICAgICAgICAgMw0KPiAtI2RlZmluZSBLVk1fUkVRVUVTVF9BUkNIX0JBU0UgICAg IDgNCj4gKyNkZWZpbmUgS1ZNX1JFUVVFU1RfQVJDSF9CQVNFICAgICA3DQoNClBhb2xvL0ppbSwN Cg0KSXMgdGhpcyBiaXQgYWNjZXB0YWJsZSBmb3IgeW91IG9yIHNob3VsZCBJIGp1c3QgZ28gYWhl YWQgYW5kIHVwZGF0ZQ0KInJlcXVlc3RzIiB0byBiZSA2NCBiaXQgaW5zdGVhZD8NCg0KV2UgcmFu IG91dCBvZiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgYml0cyA6KQ0KDQo+ICANCj4gICNkZWZpbmUg S1ZNX0FSQ0hfUkVRX0ZMQUdTKG5yLCBmbGFncykgKHsgXA0KPiAgCUJVSUxEX0JVR19PTigodW5z aWduZWQpKG5yKSA+PSAzMiAtIEtWTV9SRVFVRVNUX0FSQ0hfQkFTRSk7IFwNCj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaA0K PiBpbmRleCAwNzdkMTZmLi42OWU2NzkxIDEwMDY0NA0KPiAtLS0gYS9pbmNsdWRlL3VhcGkvbGlu dXgva3ZtLmgNCj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oDQo+IEBAIC05NjEsNiAr OTYxLDcgQEAgc3RydWN0IGt2bV9wcGNfcmVzaXplX2hwdCB7DQo+ICAjZGVmaW5lIEtWTV9DQVBf UzM5MF9CUEIgMTUyDQo+ICAjZGVmaW5lIEtWTV9DQVBfR0VUX01TUl9GRUFUVVJFUyAxNTMNCj4g ICNkZWZpbmUgS1ZNX0NBUF9IWVBFUlZfRVZFTlRGRCAxNTQNCj4gKyNkZWZpbmUgS1ZNX0NBUF9T VEFURSAxNTUNCj4gIA0KPiAgI2lmZGVmIEtWTV9DQVBfSVJRX1JPVVRJTkcNCj4gIA0KPiBAQCAt MTM5Miw2ICsxMzkzLDEwIEBAIHN0cnVjdCBrdm1fczM5MF91Y2FzX21hcHBpbmcgew0KPiAgLyog TWVtb3J5IEVuY3J5cHRpb24gQ29tbWFuZHMgKi8NCj4gICNkZWZpbmUgS1ZNX01FTU9SWV9FTkNS WVBUX09QICAgICAgX0lPV1IoS1ZNSU8sIDB4YmEsIHVuc2lnbmVkIGxvbmcpDQo+ICANCj4gKy8q IEF2YWlsYWJsZSB3aXRoIEtWTV9DQVBfU1RBVEUgKi8NCj4gKyNkZWZpbmUgS1ZNX0dFVF9TVEFU RSAgICAgICAgIF9JT1dSKEtWTUlPLCAweGJiLCBzdHJ1Y3Qga3ZtX3ZteF9zdGF0ZSkNCj4gKyNk ZWZpbmUgS1ZNX1NFVF9TVEFURSAgICAgICAgIF9JT1coS1ZNSU8sICAweGJjLCBzdHJ1Y3Qga3Zt X3ZteF9zdGF0ZSkNCj4gKw0KPiAgc3RydWN0IGt2bV9lbmNfcmVnaW9uIHsNCj4gIAlfX3U2NCBh ZGRyOw0KPiAgCV9fdTY0IHNpemU7DQpBbWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkg R21iSApCZXJsaW4gLSBEcmVzZGVuIC0gQWFjaGVuCm1haW4gb2ZmaWNlOiBLcmF1c2Vuc3RyLiAz OCwgMTAxMTcgQmVybGluCkdlc2NoYWVmdHNmdWVocmVyOiBEci4gUmFsZiBIZXJicmljaCwgQ2hy aXN0aWFuIFNjaGxhZWdlcgpVc3QtSUQ6IERFMjg5MjM3ODc5CkVpbmdldHJhZ2VuIGFtIEFtdHNn ZXJpY2h0IENoYXJsb3R0ZW5idXJnIEhSQiAxNDkxNzMgQgo=