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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 1F2E1C4338F for ; Wed, 28 Jul 2021 19:07:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 1ECFC60295 for ; Wed, 28 Jul 2021 19:06:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1ECFC60295 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C00ED6E0AB; Wed, 28 Jul 2021 19:06:58 +0000 (UTC) Received: from mail-oi1-x231.google.com (mail-oi1-x231.google.com [IPv6:2607:f8b0:4864:20::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id BA1256E0AB for ; Wed, 28 Jul 2021 19:06:57 +0000 (UTC) Received: by mail-oi1-x231.google.com with SMTP id q6so5014206oiw.7 for ; Wed, 28 Jul 2021 12:06:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Uc433EeYPvRq2zO3NsXasoywwDszcLdwUYOzmvJT9ZU=; b=a4LLOQ5uXzsyQJN5RT1h0KkyMoTsqBINQU+i0yiFFBYZ1JGPpaFa7o4+66nW6RFC9s uuCMTIUyWTXFa+EdQ2MPA8jL2AsTpUlRxruCwYuE2PCY0BdFCZjnF+R/zubPYw86mbb2 dYN3JPS4KcOcaLCxmVMkdoONRvwK6JhQZQugY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Uc433EeYPvRq2zO3NsXasoywwDszcLdwUYOzmvJT9ZU=; b=sEY6p6U2YjiSED6RljRnLDIZF2DD9JFKCIXoDvc0E5WMzoGCrWlbbmkOHb2Q6IUax0 N1n5phMpMAMi6lE/Z5M5X6PiCZ/FY2xP4TSZfYNQV/KU1pyIL1mFQYOdMJYK86lElF9n DSDB0VINH0uqyB/sCk2TXBrNLnxI2tPx4PO+fOKAuTXPrr/U1GrAzCv8EKsRGSjaezNl TsqGl7Xr6CyRi9OgCXhPsa/2JTAAvdPUsoRXEcg8+ZoQkc/cO41arzqC0adRAtY2nxVs /qUp+ZOhBbOvRINFnt8RFONtfPZdzJh0CPICBxDTTBEqbeBKKWvb9fMvLTa4+1bmTmUT AkAQ== X-Gm-Message-State: AOAM5307gJ2YmF9D66rwAwgENvDPvxcakYSBX9D6oSu+PFhwRFMbuHFp oz4o3+IJqo3xGc3boiMm2aXFvYCNvKIrNa/kP0N4UA== X-Google-Smtp-Source: ABdhPJwkeYblSGHHrQhhSW0ofPkL0uZkOZghekHtnUGlXBWdKX0GNlgdhP8NJ4FlbazkC6E0heC4ryqVQv/mapXEIKM= X-Received: by 2002:aca:d682:: with SMTP id n124mr656209oig.128.1627499216807; Wed, 28 Jul 2021 12:06:56 -0700 (PDT) MIME-Version: 1.0 References: <20210506161930.309688-1-imre.deak@intel.com> <20210506161930.309688-5-imre.deak@intel.com> In-Reply-To: From: Daniel Vetter Date: Wed, 28 Jul 2021 21:06:45 +0200 Message-ID: To: Rodrigo Vivi Subject: Re: [Intel-gfx] [PATCH v2 04/10] drm/i915/xelpd: First stab at DPT support X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Wilson Chris P , Auld Matthew , Bommu Krishnaiah , intel-gfx Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCBKdWwgMjgsIDIwMjEgYXQgNjo0MSBQTSBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2 aUBpbnRlbC5jb20+IHdyb3RlOgo+Cj4gT24gV2VkLCBKdWwgMjgsIDIwMjEgYXQgMDg6NTA6MjBB TSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIFRodSwgTWF5IDYsIDIwMjEgYXQg NjoxOSBQTSBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+IHdyb3RlOgo+ID4gPgo+ID4g PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ ID4gPgo+ID4gPiBBZGQgc3VwcG9ydCBmb3IgRFBUIChkaXNwbGF5IHBhZ2UgdGFibGUpLiBEUFQg aXMgYQo+ID4gPiBzbGlnaHRseSBwZWN1bGlhciB0d28gbGV2ZWwgcGFnZSB0YWJsZSBzY2hlbWUg dXNlZCBmb3IKPiA+ID4gdGlsZWQgc2Nhbm91dCBidWZmZXJzIChsaW5lYXIgdXNlcyBkaXJlY3Qg Z2d0dCBtYXBwaW5nCj4gPiA+IHN0aWxsKS4gVGhlIHBsYW5lIHN1cmZhY2UgYWRkcmVzcyB3aWxs IHBvaW50IGF0IGEgcGFnZQo+ID4gPiBpbiB0aGUgRFBUIHdoaWNoIGhvbGRzIHRoZSBQVEVzIGZv ciA1MTIgYWN0dWFsIHBhZ2VzLgo+ID4gPiBUaHVzIHdlIHJlcXVpcmUgMS81MTIgb2YgdGhlIGdn dHR0IGFkZHJlc3Mgc3BhY2UKPiA+ID4gY29tcGFyZWQgdG8gYSBkaXJlY3QgZ2d0dCBtYXBwaW5n Lgo+ID4gPgo+ID4gPiBXZSBjcmVhdGUgYSBuZXcgRFBUIGFkZHJlc3Mgc3BhY2UgZm9yIGVhY2gg ZnJhbWVidWZmZXIgYW5kCj4gPiA+IHRyYWNrIHR3byB2bWFzIChvbmUgZm9yIHRoZSBEUFQsIGFu b3RoZXIgZm9yIHRoZSBnZ3R0KS4KPiA+ID4KPiA+ID4gVE9ETzoKPiA+ID4gLSBJcyB0aGUgaTkx NV9hZGRyZXNzX3NwYWNlIGFwcHJvYWFjaCBzYW5lPwo+ID4gPiAtIE1heWJlIGRvbid0IG1hcCB0 aGUgd2hvbGUgRFBUIHRvIHdyaXRlIHRoZSBQVEVzPwo+ID4gPiAtIERlYWwgd2l0aCByZW1hcHBp bmcvcm90YXRpb24/IE5lZWQgdG8gY3JlYXRlIGEKPiA+ID4gICBzZXBhcmF0ZSBEUFQgZm9yIGVh Y2ggcmVtYXBwZWQvcm90YXRlZCBwbGFuZSBJCj4gPiA+ICAgZ3Vlc3MuIE9yIGVsc2Ugd2UnZCBu ZWVkIHRvIG1ha2UgdGhlIHBlci1mYiBEUFQKPiA+ID4gICBsYXJnZSBlbm91Z2ggdG8gc3VwcG9y dCBwb3RlbnRpYWxseSBzZXZlcmFsCj4gPiA+ICAgcmVtYXBwZWQvcm90YXRlZCB2bWFzLiBIb3cg bGFyZ2Ugc2hvdWxkIHRoYXQgYmU/Cj4gPgo+ID4gSSBrbm93IHRoaXMgY29kZSBwcmVkYXRlcyBl ZmZvcnRzIHRvIHNwbGl0IHVwIGludGVsX2Rpc3BsYXkuYywgYnV0Cj4gPiBhZGRpbmcgZW50aXJl bHkgbmV3IGZlYXR1cmUgdG8gaW50ZWxfZGlzcGxheS5jIGxpa2UgdGhpcyBpc24ndCBjb29sLgo+ ID4gUGxlYXNlIG1vdmUgdGhpcyB0byBpbnRlbF9kaXNwbGF5X3B0LmMgb3Igc29tZXRoaW5nIGxp a2UgdGhhdCBhbmQgZ2l2ZQo+ID4gaXQgYSByZWFzb25hYmxlIGludGVyZmFjZS4gTWluaW1hbCBr ZXJuZWxkb2MgYXMgYm9udXMgd291bGQgYmUgZ3JlYXQKPiA+IHRvby4KPiA+Cj4gPiBJJ20gZmVl bGluZyBsaWtlIGRpbSBzaG91bGQgcmVqZWN0IGFueSBwYXRjaCB3aGljaCBoYXMgYSBwb3NpdGl2 ZQo+ID4gZGlmZnN0YXQgb24gaW50ZWxfZGlzcGxheS5jIHVudGlsIHRoaXMgZmlsZSBpcyBpbiBi ZXR0ZXIgc2hhcGUuIFdvdWxkCj4gPiBiZSBoYXJzaCwgYnV0IHdlIHNlZW0gdG8gYmUgc3R1Y2sg aW4gb25lIHN0ZXAgZm9yd2FyZCwgb25lIHN0ZXAgYmFjawo+ID4gbW9kZS4KPgo+IEkgbGlrZSB0 aGlzIGlkZWEsIGFsdGhvdWdoIHRoYXQgd291bGQgbWVhbiBtb3JlIGludGVsLW9ubHkgc3R1ZmYg aW4gZGltCj4gd2hhdCBpcyBub3QgZ29vZCA6LwoKT2sgSSd2ZSBzdHVtYmxlZCBvdmVyIHRoaXMg cGF0Y2ggYSAybmQgdGltZSwgYW5kIHRoaXMgdGltZSBpdCdzIGJhZC4KClRoaXMgd2Fzbid0IHBy b3Blcmx5IGNvbnZlcnRlZCBvdmVyIHRvIHRoZSBkbWFfcmVzdl9sb2NrIHdvcmsgZnJvbQpNYWFy dGVuLCB0aGUgaW50ZWxfcGluX2ZiX29ial9kcHQoKSBmdW5jdGlvbiBpcyBzdGlsbCBhbGwgY29w eXBhc3RlZApmcm9tIHRoZSBvbGQgc3R5bGUgaG93IHRoaXMgd29yay4gVGhhdCdzIGRlZmluaXRl bHkgbm90IGdyZWF0IGF0IGFsbC4KU29tZW9uZSBuZWVkcyB0byBmaXggdGhpcy4KLURhbmllbAoK PiA+IC1EYW5pZWwKPiA+Cj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEJv bW11IEtyaXNobmFpYWggPGtyaXNobmFpYWguYm9tbXVAaW50ZWwuY29tPgo+ID4gPiBDYzogV2ls c29uIENocmlzIFAgPENocmlzLlAuV2lsc29uQGludGVsLmNvbT4KPiA+ID4gQ2M6IFRhbmcgQ1Eg PGNxLnRhbmdAaW50ZWwuY29tPgo+ID4gPiBDYzogQXVsZCBNYXR0aGV3IDxtYXR0aGV3LmF1bGRA aW50ZWwuY29tPgo+ID4gPiBSZXZpZXdlZC1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGlu dGVsLmNvbT4KPiA+ID4gUmV2aWV3ZWQtYnk6IFdpbHNvbiBDaHJpcyBQIDxDaHJpcy5QLldpbHNv bkBpbnRlbC5jb20+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGlu dGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljX3BsYW5lLmMgfCAgIDcgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jICB8IDM1MiArKysrKysrKysrKysrKysrKy0KPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oICB8ICAgMSArCj4gPiA+ICAu Li4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgMTUgKy0KPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgICAgICB8ICAgNiAr LQo+ID4gPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5jICAgIHwg IDE5ICstCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW44X3BwZ3R0LmggICAgICAg ICAgfCAgIDcgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ2d0dC5jICAg ICAgICAgIHwgICA3ICstCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQu aCAgICAgICAgICAgfCAgIDUgKwo+ID4gPiAgOSBmaWxlcyBjaGFuZ2VkLCAzOTIgaW5zZXJ0aW9u cygrKSwgMjcgZGVsZXRpb25zKC0pCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ID4gPiBpbmRleCA3YmZiMjZjYTBi ZDA3Li4zNmY1MmExZDc1NTJmIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiA+ID4gQEAgLTEwMiw3ICsxMDIs OCBAQCBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUp Cj4gPiA+Cj4gPiA+ICAgICAgICAgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVf c3RhdGUocGxhbmUsICZpbnRlbF9zdGF0ZS0+dWFwaSk7Cj4gPiA+Cj4gPiA+IC0gICAgICAgaW50 ZWxfc3RhdGUtPnZtYSA9IE5VTEw7Cj4gPiA+ICsgICAgICAgaW50ZWxfc3RhdGUtPmdndHRfdm1h ID0gTlVMTDsKPiA+ID4gKyAgICAgICBpbnRlbF9zdGF0ZS0+ZHB0X3ZtYSA9IE5VTEw7Cj4gPiA+ ICAgICAgICAgaW50ZWxfc3RhdGUtPmZsYWdzID0gMDsKPiA+ID4KPiA+ID4gICAgICAgICAvKiBh ZGQgcmVmZXJlbmNlIHRvIGZiICovCj4gPiA+IEBAIC0xMjUsNyArMTI2LDkgQEAgaW50ZWxfcGxh bmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiA+ID4gIHsK PiA+ID4gICAgICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gdG9f aW50ZWxfcGxhbmVfc3RhdGUoc3RhdGUpOwo+ID4gPiAtICAgICAgIGRybV9XQVJOX09OKHBsYW5l LT5kZXYsIHBsYW5lX3N0YXRlLT52bWEpOwo+ID4gPiArCj4gPiA+ICsgICAgICAgZHJtX1dBUk5f T04ocGxhbmUtPmRldiwgcGxhbmVfc3RhdGUtPmdndHRfdm1hKTsKPiA+ID4gKyAgICAgICBkcm1f V0FSTl9PTihwbGFuZS0+ZGV2LCBwbGFuZV9zdGF0ZS0+ZHB0X3ZtYSk7Cj4gPiA+Cj4gPiA+ICAg ICAgICAgX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlKCZwbGFuZV9zdGF0 ZS0+dWFwaSk7Cj4gPiA+ICAgICAgICAgaWYgKHBsYW5lX3N0YXRlLT5ody5mYikKPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gaW5kZXgg NWQ1M2VlNGM1OGY1Yi4uOTlhOTIxZWEyZTgxYiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTY3LDYgKzY3LDcg QEAKPiA+ID4gICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fb2JqZWN0LmgiCj4gPiA+Cj4gPiA+ICAj aW5jbHVkZSAiZ3QvaW50ZWxfcnBzLmgiCj4gPiA+ICsjaW5jbHVkZSAiZ3QvZ2VuOF9wcGd0dC5o Igo+ID4gPgo+ID4gPiAgI2luY2x1ZGUgImc0eF9kcC5oIgo+ID4gPiAgI2luY2x1ZGUgImc0eF9o ZG1pLmgiCj4gPiA+IEBAIC0xMjQsNiArMTI1LDE3NiBAQCBzdGF0aWMgdm9pZCBpbGtfcGZpdF9l bmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ID4gPiAg c3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPiA+ID4KPiA+ID4gK3N0cnVjdCBp OTE1X2RwdCB7Cj4gPiA+ICsgICAgICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSB2bTsKPiA+ ID4gKwo+ID4gPiArICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gPiA+ ICsgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gPiA+ICsgICAgICAgdm9pZCBfX2lvbWVt ICppb21lbTsKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUgaTkxNV9pc19kcHQodm0p ICgodm0pLT5pc19kcHQpCj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGk5MTVf ZHB0ICoKPiA+ID4gK2k5MTVfdm1fdG9fZHB0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt KQo+ID4gPiArewo+ID4gPiArICAgICAgIEJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaTkx NV9kcHQsIHZtKSk7Cj4gPiA+ICsgICAgICAgR0VNX0JVR19PTighaTkxNV9pc19kcHQodm0pKTsK PiA+ID4gKyAgICAgICByZXR1cm4gY29udGFpbmVyX29mKHZtLCBzdHJ1Y3QgaTkxNV9kcHQsIHZt KTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArI2RlZmluZSBkcHRfdG90YWxfZW50cmllcyhkcHQp ICgoZHB0KS0+dm0udG90YWwgPj4gUEFHRV9TSElGVCkKPiA+ID4gKwo+ID4gPiArc3RhdGljIHZv aWQgZ2VuOF9zZXRfcHRlKHZvaWQgX19pb21lbSAqYWRkciwgZ2VuOF9wdGVfdCBwdGUpCj4gPiA+ ICt7Cj4gPiA+ICsgICAgICAgd3JpdGVxKHB0ZSwgYWRkcik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ ID4gK3N0YXRpYyB2b2lkIGRwdF9pbnNlcnRfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRtYV9hZGRyX3QgYWRkciwK PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCBvZmZzZXQsCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgZmxhZ3MpCj4gPiA+ICt7Cj4gPiA+ICsg ICAgICAgc3RydWN0IGk5MTVfZHB0ICpkcHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7Cj4gPiA+ICsg ICAgICAgZ2VuOF9wdGVfdCBfX2lvbWVtICpiYXNlID0gZHB0LT5pb21lbTsKPiA+ID4gKwo+ID4g PiArICAgICAgIGdlbjhfc2V0X3B0ZShiYXNlICsgb2Zmc2V0IC8gSTkxNV9HVFRfUEFHRV9TSVpF LAo+ID4gPiArICAgICAgICAgICAgICAgICAgICB2bS0+cHRlX2VuY29kZShhZGRyLCBsZXZlbCwg ZmxhZ3MpKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIHZvaWQgZHB0X2luc2VydF9l bnRyaWVzKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEsCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlbnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgZmxhZ3MpCj4gPiA+ICt7Cj4gPiA+ICsg ICAgICAgc3RydWN0IGk5MTVfZHB0ICpkcHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7Cj4gPiA+ICsg ICAgICAgZ2VuOF9wdGVfdCBfX2lvbWVtICpiYXNlID0gZHB0LT5pb21lbTsKPiA+ID4gKyAgICAg ICBjb25zdCBnZW44X3B0ZV90IHB0ZV9lbmNvZGUgPSB2bS0+cHRlX2VuY29kZSgwLCBsZXZlbCwg ZmxhZ3MpOwo+ID4gPiArICAgICAgIHN0cnVjdCBzZ3RfaXRlciBzZ3RfaXRlcjsKPiA+ID4gKyAg ICAgICBkbWFfYWRkcl90IGFkZHI7Cj4gPiA+ICsgICAgICAgaW50IGk7Cj4gPiA+ICsKPiA+ID4g KyAgICAgICAvKgo+ID4gPiArICAgICAgICAqIE5vdGUgdGhhdCB3ZSBpZ25vcmUgUFRFX1JFQURf T05MWSBoZXJlLiBUaGUgY2FsbGVyIG11c3QgYmUgY2FyZWZ1bAo+ID4gPiArICAgICAgICAqIG5v dCB0byBhbGxvdyB0aGUgdXNlciB0byBvdmVycmlkZSBhY2Nlc3MgdG8gYSByZWFkIG9ubHkgcGFn ZS4KPiA+ID4gKyAgICAgICAgKi8KPiA+ID4gKwo+ID4gPiArICAgICAgIGkgPSB2bWEtPm5vZGUu c3RhcnQgLyBJOTE1X0dUVF9QQUdFX1NJWkU7Cj4gPiA+ICsgICAgICAgZm9yX2VhY2hfc2d0X2Rh ZGRyKGFkZHIsIHNndF9pdGVyLCB2bWEtPnBhZ2VzKQo+ID4gPiArICAgICAgICAgICAgICAgZ2Vu OF9zZXRfcHRlKCZiYXNlW2krK10sIHB0ZV9lbmNvZGUgfCBhZGRyKTsKPiA+ID4gK30KPiA+ID4g Kwo+ID4gPiArc3RhdGljIHZvaWQgZHB0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nf c3BhY2UgKnZtLAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IHN0YXJ0LCB1 NjQgbGVuZ3RoKQo+ID4gPiArewo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBk cHRfYmluZF92bWEoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV92bV9wdF9zdGFzaCAqc3Rhc2gsCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBjYWNoZV9sZXZlbCwKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBmbGFncykKPiA+ID4gK3sKPiA+ID4gKyAg ICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gdm1hLT5vYmo7Cj4gPiA+ICsg ICAgICAgdTMyIHB0ZV9mbGFnczsKPiA+ID4gKwo+ID4gPiArICAgICAgIC8qIEFwcGxpY2FibGUg dG8gVkxWIChnZW44KyBkbyBub3Qgc3VwcG9ydCBSTyBpbiB0aGUgR0dUVCkgKi8KPiA+ID4gKyAg ICAgICBwdGVfZmxhZ3MgPSAwOwo+ID4gPiArICAgICAgIGlmICh2bWEtPnZtLT5oYXNfcmVhZF9v bmx5ICYmIGk5MTVfZ2VtX29iamVjdF9pc19yZWFkb25seShvYmopKQo+ID4gPiArICAgICAgICAg ICAgICAgcHRlX2ZsYWdzIHw9IFBURV9SRUFEX09OTFk7Cj4gPiA+ICsgICAgICAgaWYgKGk5MTVf Z2VtX29iamVjdF9pc19sbWVtKG9iaikpCj4gPiA+ICsgICAgICAgICAgICAgICBwdGVfZmxhZ3Mg fD0gUFRFX0xNOwo+ID4gPiArCj4gPiA+ICsgICAgICAgdm1hLT52bS0+aW5zZXJ0X2VudHJpZXMo dm1hLT52bSwgdm1hLCBjYWNoZV9sZXZlbCwgcHRlX2ZsYWdzKTsKPiA+ID4gKwo+ID4gPiArICAg ICAgIHZtYS0+cGFnZV9zaXplcy5ndHQgPSBJOTE1X0dUVF9QQUdFX1NJWkU7Cj4gPiA+ICsKPiA+ ID4gKyAgICAgICAvKgo+ID4gPiArICAgICAgICAqIFdpdGhvdXQgYWxpYXNpbmcgUFBHVFQgdGhl cmUncyBubyBkaWZmZXJlbmNlIGJldHdlZW4KPiA+ID4gKyAgICAgICAgKiBHTE9CQUwvTE9DQUxf QklORCwgaXQncyBhbGwgdGhlIHNhbWUgcHRlcy4gSGVuY2UgdW5jb25kaXRpb25hbGx5Cj4gPiA+ ICsgICAgICAgICogdXBncmFkZSB0byBib3RoIGJvdW5kIGlmIHdlIGJpbmQgZWl0aGVyIHRvIGF2 b2lkIGRvdWJsZS1iaW5kaW5nLgo+ID4gPiArICAgICAgICAqLwo+ID4gPiArICAgICAgIGF0b21p Y19vcihJOTE1X1ZNQV9HTE9CQUxfQklORCB8IEk5MTVfVk1BX0xPQ0FMX0JJTkQsICZ2bWEtPmZs YWdzKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIHZvaWQgZHB0X3VuYmluZF92bWEo c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQo+ID4g PiArewo+ID4gPiArICAgICAgIHZtLT5jbGVhcl9yYW5nZSh2bSwgdm1hLT5ub2RlLnN0YXJ0LCB2 bWEtPnNpemUpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBkcHRfY2xlYW51 cChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgICBz dHJ1Y3QgaTkxNV9kcHQgKmRwdCA9IGk5MTVfdm1fdG9fZHB0KHZtKTsKPiA+ID4gKwo+ID4gPiAr ICAgICAgIGk5MTVfZ2VtX29iamVjdF9wdXQoZHB0LT5vYmopOwo+ID4gPiArfQo+ID4gPiArCj4g PiA+ICtzdGF0aWMgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqCj4gPiA+ICtpbnRlbF9kcHRf Y3JlYXRlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ID4gPiArewo+ID4gPiArICAgICAg IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmRldik7Cj4gPiA+ ICsgICAgICAgc2l6ZV90IHNpemUgPSBESVZfUk9VTkRfVVBfVUxMKG9iai0+c2l6ZSwgNTEyKTsK PiA+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZHB0X29iajsKPiA+ID4g KyAgICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKPiA+ID4gKyAgICAgICBzdHJ1 Y3QgaTkxNV9kcHQgKmRwdDsKPiA+ID4gKyAgICAgICBpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsg ICAgICAgc2l6ZSA9IHJvdW5kX3VwKHNpemUsIDQwOTYpOwo+ID4gPiArCj4gPiA+ICsgICAgICAg aWYgKEhBU19MTUVNKGk5MTUpKQo+ID4gPiArICAgICAgICAgICAgICAgZHB0X29iaiA9IGk5MTVf Z2VtX29iamVjdF9jcmVhdGVfbG1lbShpOTE1LCBzaXplLCAwKTsKPiA+ID4gKyAgICAgICBlbHNl Cj4gPiA+ICsgICAgICAgICAgICAgICBkcHRfb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW4oaTkxNSwgc2l6ZSk7Cj4gPiA+ICsgICAgICAgaWYgKElTX0VSUihkcHRfb2JqKSkKPiA+ ID4gKyAgICAgICAgICAgICAgIHJldHVybiBFUlJfQ0FTVChkcHRfb2JqKTsKPiA+ID4gKwo+ID4g PiArICAgICAgIHJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwoZHB0X29iaiwg STkxNV9DQUNIRV9OT05FKTsKPiA+ID4gKyAgICAgICBpZiAocmV0KSB7Cj4gPiA+ICsgICAgICAg ICAgICAgICBpOTE1X2dlbV9vYmplY3RfcHV0KGRwdF9vYmopOwo+ID4gPiArICAgICAgICAgICAg ICAgcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ID4gKyAgICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAg ICAgICBkcHQgPSBremFsbG9jKHNpemVvZigqZHB0KSwgR0ZQX0tFUk5FTCk7Cj4gPiA+ICsgICAg ICAgaWYgKCFkcHQpIHsKPiA+ID4gKyAgICAgICAgICAgICAgIGk5MTVfZ2VtX29iamVjdF9wdXQo ZHB0X29iaik7Cj4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK PiA+ID4gKyAgICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAgICB2bSA9ICZkcHQtPnZtOwo+ID4g PiArCj4gPiA+ICsgICAgICAgdm0tPmd0ID0gJmk5MTUtPmd0Owo+ID4gPiArICAgICAgIHZtLT5p OTE1ID0gaTkxNTsKPiA+ID4gKyAgICAgICB2bS0+ZG1hID0gaTkxNS0+ZHJtLmRldjsKPiA+ID4g KyAgICAgICB2bS0+dG90YWwgPSAoc2l6ZSAvIHNpemVvZihnZW44X3B0ZV90KSkgKiBJOTE1X0dU VF9QQUdFX1NJWkU7Cj4gPiA+ICsgICAgICAgdm0tPmlzX2RwdCA9IHRydWU7Cj4gPiA+ICsKPiA+ ID4gKyAgICAgICBpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdCh2bSwgVk1fQ0xBU1NfRFBUKTsKPiA+ ID4gKwo+ID4gPiArICAgICAgIHZtLT5pbnNlcnRfcGFnZSA9IGRwdF9pbnNlcnRfcGFnZTsKPiA+ ID4gKyAgICAgICB2bS0+Y2xlYXJfcmFuZ2UgPSBkcHRfY2xlYXJfcmFuZ2U7Cj4gPiA+ICsgICAg ICAgdm0tPmluc2VydF9lbnRyaWVzID0gZHB0X2luc2VydF9lbnRyaWVzOwo+ID4gPiArICAgICAg IHZtLT5jbGVhbnVwID0gZHB0X2NsZWFudXA7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICB2bS0+dm1h X29wcy5iaW5kX3ZtYSAgICA9IGRwdF9iaW5kX3ZtYTsKPiA+ID4gKyAgICAgICB2bS0+dm1hX29w cy51bmJpbmRfdm1hICA9IGRwdF91bmJpbmRfdm1hOwo+ID4gPiArICAgICAgIHZtLT52bWFfb3Bz LnNldF9wYWdlcyAgID0gZ2d0dF9zZXRfcGFnZXM7Cj4gPiA+ICsgICAgICAgdm0tPnZtYV9vcHMu Y2xlYXJfcGFnZXMgPSBjbGVhcl9wYWdlczsKPiA+ID4gKwo+ID4gPiArICAgICAgIHZtLT5wdGVf ZW5jb2RlID0gZ2VuOF9nZ3R0X3B0ZV9lbmNvZGU7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICBkcHQt Pm9iaiA9IGRwdF9vYmo7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICByZXR1cm4gJmRwdC0+dm07Cj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RwdF9kZXN0cm95KHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQo+ID4gPiArewo+ID4gPiArICAgICAgIHN0cnVjdCBp OTE1X2RwdCAqZHB0ID0gaTkxNV92bV90b19kcHQodm0pOwo+ID4gPiArCj4gPiA+ICsgICAgICAg aTkxNV92bV9jbG9zZSgmZHB0LT52bSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIC8qIHJldHVy bnMgSFBMTCBmcmVxdWVuY3kgaW4ga0h6ICovCj4gPiA+ICBpbnQgdmx2X2dldF9ocGxsX3Zjbyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ICB7Cj4gPiA+IEBAIC05NzQs NiArMTE0NSw5IEBAIHVuc2lnbmVkIGludCBpbnRlbF9zdXJmX2FsaWdubWVudChjb25zdCBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ID4gIHsKPiA+ID4gICAgICAgICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGZiLT5kZXYpOwo+ID4gPgo+ID4gPiAr ICAgICAgIGlmIChpbnRlbF9mYl91c2VzX2RwdChmYikpCj4gPiA+ICsgICAgICAgICAgICAgICBy ZXR1cm4gNTEyICogNDA5NjsKPiA+ID4gKwo+ID4gPiAgICAgICAgIC8qIEFVWF9ESVNUIG5lZWRz IG9ubHkgNEsgYWxpZ25tZW50ICovCj4gPiA+ICAgICAgICAgaWYgKGlzX2Njc19wbGFuZShmYiwg Y29sb3JfcGxhbmUpKQo+ID4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIDQwOTY7Cj4gPiA+IEBA IC0xMDI3LDYgKzEyMDEsNjIgQEAgc3RhdGljIGJvb2wgaW50ZWxfcGxhbmVfdXNlc19mZW5jZShj b25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gPiAgICAgICAg ICAgICAgICAgIHBsYW5lX3N0YXRlLT52aWV3Lmd0dC50eXBlID09IEk5MTVfR0dUVF9WSUVXX05P Uk1BTCk7Cj4gPiA+ICB9Cj4gPiA+Cj4gPiA+ICtzdGF0aWMgc3RydWN0IGk5MTVfdm1hICoKPiA+ ID4gK2ludGVsX3Bpbl9mYl9vYmpfZHB0KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4g PiArICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9nZ3R0X3ZpZXcgKnZpZXcs Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgIGJvb2wgdXNlc19mZW5jZSwKPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqb3V0X2ZsYWdzLAo+ID4gPiArICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKPiA+ID4gK3sKPiA+ID4g KyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmItPmRldjsKPiA+ID4gKyAgICAgICBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiA+ICsg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7 Cj4gPiA+ICsgICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gPiA+ICsgICAgICAgdTMyIGFs aWdubWVudDsKPiA+ID4gKyAgICAgICBpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsgICAgICAgaWYg KFdBUk5fT04oIWk5MTVfZ2VtX29iamVjdF9pc19mcmFtZWJ1ZmZlcihvYmopKSkKPiA+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+ID4gPiArCj4gPiA+ICsgICAg ICAgYWxpZ25tZW50ID0gNDA5NiAqIDUxMjsKPiA+ID4gKwo+ID4gPiArICAgICAgIGF0b21pY19p bmMoJmRldl9wcml2LT5ncHVfZXJyb3IucGVuZGluZ19mYl9waW4pOwo+ID4gPiArCj4gPiA+ICsg ICAgICAgcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9sZXZlbChvYmosIEk5MTVfQ0FD SEVfTk9ORSk7Cj4gPiA+ICsgICAgICAgaWYgKHJldCkgewo+ID4gPiArICAgICAgICAgICAgICAg dm1hID0gRVJSX1BUUihyZXQpOwo+ID4gPiArICAgICAgICAgICAgICAgZ290byBlcnI7Cj4gPiA+ ICsgICAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgICAgdm1hID0gaTkxNV92bWFfaW5zdGFuY2Uo b2JqLCB2bSwgdmlldyk7Cj4gPiA+ICsgICAgICAgaWYgKElTX0VSUih2bWEpKQo+ID4gPiArICAg ICAgICAgICAgICAgZ290byBlcnI7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICBpZiAoaTkxNV92bWFf bWlzcGxhY2VkKHZtYSwgMCwgYWxpZ25tZW50LCAwKSkgewo+ID4gPiArICAgICAgICAgICAgICAg cmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7Cj4gPiA+ICsgICAgICAgICAgICAgICBpZiAocmV0 KSB7Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHZtYSA9IEVSUl9QVFIocmV0KTsKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnI7Cj4gPiA+ICsgICAgICAgICAgICAg ICB9Cj4gPiA+ICsgICAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgICAgcmV0ID0gaTkxNV92bWFf cGluKHZtYSwgMCwgYWxpZ25tZW50LCBQSU5fR0xPQkFMKTsKPiA+ID4gKyAgICAgICBpZiAocmV0 KSB7Cj4gPiA+ICsgICAgICAgICAgICAgICB2bWEgPSBFUlJfUFRSKHJldCk7Cj4gPiA+ICsgICAg ICAgICAgICAgICBnb3RvIGVycjsKPiA+ID4gKyAgICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAg ICB2bWEtPmRpc3BsYXlfYWxpZ25tZW50ID0gbWF4X3QodTY0LCB2bWEtPmRpc3BsYXlfYWxpZ25t ZW50LCBhbGlnbm1lbnQpOwo+ID4gPiArCj4gPiA+ICsgICAgICAgaTkxNV9nZW1fb2JqZWN0X2Zs dXNoX2lmX2Rpc3BsYXkob2JqKTsKPiA+ID4gKwo+ID4gPiArICAgICAgIGk5MTVfdm1hX2dldCh2 bWEpOwo+ID4gPiArZXJyOgo+ID4gPiArICAgICAgIGF0b21pY19kZWMoJmRldl9wcml2LT5ncHVf ZXJyb3IucGVuZGluZ19mYl9waW4pOwo+ID4gPiArCj4gPiA+ICsgICAgICAgcmV0dXJuIHZtYTsK PiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RydWN0IGk5MTVfdm1hICoKPiA+ID4gIGludGVsX3Bp bl9hbmRfZmVuY2VfZmJfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBib29sIHBoeXNfY3Vyc29yLAo+ID4gPiBAQCAtMTYzMCw2 ICsxODYwLDQ5IEBAIHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2Rpc2FibGVfbm9hdG9taWMoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4gPiA+ICAgICAgICAgaW50ZWxfd2FpdF9mb3JfdmJsYW5r KGRldl9wcml2LCBjcnRjLT5waXBlKTsKPiA+ID4gIH0KPiA+ID4KPiA+ID4gK3N0YXRpYyBzdHJ1 Y3QgaTkxNV92bWEgKmludGVsX2RwdF9waW4oc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0p Cj4gPiA+ICt7Cj4gPiA+ICsgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB2 bS0+aTkxNTsKPiA+ID4gKyAgICAgICBzdHJ1Y3QgaTkxNV9kcHQgKmRwdCA9IGk5MTVfdm1fdG9f ZHB0KHZtKTsKPiA+ID4gKyAgICAgICBpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPiA+ID4gKyAg ICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiA+ID4gKyAgICAgICB2b2lkIF9faW9tZW0gKmlv bWVtOwo+ID4gPiArCj4gPiA+ICsgICAgICAgd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0 KCZpOTE1LT5ydW50aW1lX3BtKTsKPiA+ID4gKyAgICAgICBhdG9taWNfaW5jKCZpOTE1LT5ncHVf ZXJyb3IucGVuZGluZ19mYl9waW4pOwo+ID4gPiArCj4gPiA+ICsgICAgICAgdm1hID0gaTkxNV9n ZW1fb2JqZWN0X2dndHRfcGluKGRwdC0+b2JqLCBOVUxMLCAwLCA0MDk2LAo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIQVNfTE1FTShpOTE1KSA/IDAgOiBQSU5f TUFQUEFCTEUpOwo+ID4gPiArICAgICAgIGlmIChJU19FUlIodm1hKSkKPiA+ID4gKyAgICAgICAg ICAgICAgIGdvdG8gZXJyOwo+ID4gPiArCj4gPiA+ICsgICAgICAgaW9tZW0gPSBpOTE1X3ZtYV9w aW5faW9tYXAodm1hKTsKPiA+ID4gKyAgICAgICBpOTE1X3ZtYV91bnBpbih2bWEpOwo+ID4gPiAr ICAgICAgIGlmIChJU19FUlIoaW9tZW0pKSB7Cj4gPiA+ICsgICAgICAgICAgICAgICB2bWEgPSBp b21lbTsKPiA+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ID4gPiArICAgICAgIH0KPiA+ ID4gKwo+ID4gPiArICAgICAgIGRwdC0+dm1hID0gdm1hOwo+ID4gPiArICAgICAgIGRwdC0+aW9t ZW0gPSBpb21lbTsKPiA+ID4gKwo+ID4gPiArICAgICAgIGk5MTVfdm1hX2dldCh2bWEpOwo+ID4g PiArCj4gPiA+ICtlcnI6Cj4gPiA+ICsgICAgICAgYXRvbWljX2RlYygmaTkxNS0+Z3B1X2Vycm9y LnBlbmRpbmdfZmJfcGluKTsKPiA+ID4gKyAgICAgICBpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkx NS0+cnVudGltZV9wbSwgd2FrZXJlZik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICByZXR1cm4gdm1h Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcHRfdW5waW4oc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0pCj4gPiA+ICt7Cj4gPiA+ICsgICAgICAgc3RydWN0 IGk5MTVfZHB0ICpkcHQgPSBpOTE1X3ZtX3RvX2RwdCh2bSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAg ICBpOTE1X3ZtYV91bnBpbl9pb21hcChkcHQtPnZtYSk7Cj4gPiA+ICsgICAgICAgaTkxNV92bWFf cHV0KGRwdC0+dm1hKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIHZvaWQKPiA+ID4g IGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMsCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX2luaXRp YWxfcGxhbmVfY29uZmlnICpwbGFuZV9jb25maWcpCj4gPiA+IEBAIC0xNjc1LDEyICsxOTQ4LDEy IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmooc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMsCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gPgo+ID4g PiAgICAgICAgICAgICAgICAgc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShjLT5wcmltYXJ5 LT5zdGF0ZSk7Cj4gPiA+IC0gICAgICAgICAgICAgICBpZiAoIXN0YXRlLT52bWEpCj4gPiA+ICsg ICAgICAgICAgICAgICBpZiAoIXN0YXRlLT5nZ3R0X3ZtYSkKPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7Cj4gPiA+Cj4gPiA+ICAgICAgICAgICAgICAgICBpZiAoaW50ZWxf cGxhbmVfZ2d0dF9vZmZzZXQoc3RhdGUpID09IHBsYW5lX2NvbmZpZy0+YmFzZSkgewo+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICBmYiA9IHN0YXRlLT5ody5mYjsKPiA+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgdm1hID0gc3RhdGUtPnZtYTsKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgdm1hID0gc3RhdGUtPmdndHRfdm1hOwo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIHZhbGlkX2ZiOwo+ID4gPiAgICAgICAgICAgICAgICAgfQo+ID4gPiAgICAgICAgIH0K PiA+ID4gQEAgLTE3MDcsNyArMTk4MCw3IEBAIGludGVsX2ZpbmRfaW5pdGlhbF9wbGFuZV9vYmoo c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZpbnRlbF9zdGF0ZS0+dmlldyk7Cj4gPiA+Cj4gPiA+ICAgICAgICAgX19pOTE1X3Zt YV9waW4odm1hKTsKPiA+ID4gLSAgICAgICBpbnRlbF9zdGF0ZS0+dm1hID0gaTkxNV92bWFfZ2V0 KHZtYSk7Cj4gPiA+ICsgICAgICAgaW50ZWxfc3RhdGUtPmdndHRfdm1hID0gaTkxNV92bWFfZ2V0 KHZtYSk7Cj4gPiA+ICAgICAgICAgaWYgKGludGVsX3BsYW5lX3VzZXNfZmVuY2UoaW50ZWxfc3Rh dGUpICYmIGk5MTVfdm1hX3Bpbl9mZW5jZSh2bWEpID09IDApCj4gPiA+ICAgICAgICAgICAgICAg ICBpZiAodm1hLT5mZW5jZSkKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfc3Rh dGUtPmZsYWdzIHw9IFBMQU5FX0hBU19GRU5DRTsKPiA+ID4gQEAgLTEwNTUxLDI1ICsxMDgyNCw2 MCBAQCBpbnQgaW50ZWxfcGxhbmVfcGluX2ZiKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpCj4gPiA+ICAgICAgICAgICAgICAgICBwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09S ICYmCj4gPiA+ICAgICAgICAgICAgICAgICBJTlRFTF9JTkZPKGRldl9wcml2KS0+ZGlzcGxheS5j dXJzb3JfbmVlZHNfcGh5c2ljYWw7Cj4gPiA+Cj4gPiA+IC0gICAgICAgdm1hID0gaW50ZWxfcGlu X2FuZF9mZW5jZV9mYl9vYmooZmIsIHBoeXNfY3Vyc29yLAo+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZwbGFuZV9zdGF0ZS0+dmlldy5ndHQsCj4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfcGxhbmVfdXNlc19m ZW5jZShwbGFuZV9zdGF0ZSksCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnBsYW5lX3N0YXRlLT5mbGFncyk7Cj4gPiA+IC0gICAgICAgaWYgKElTX0VSUih2 bWEpKQo+ID4gPiAtICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIodm1hKTsKPiA+ID4gLQo+ ID4gPiAtICAgICAgIHBsYW5lX3N0YXRlLT52bWEgPSB2bWE7Cj4gPiA+ICsgICAgICAgaWYgKCFp bnRlbF9mYl91c2VzX2RwdChmYikpIHsKPiA+ID4gKyAgICAgICAgICAgICAgIHZtYSA9IGludGVs X3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGZiLCBwaHlzX2N1cnNvciwKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwbGFuZV9zdGF0ZS0+dmlldy5n dHQsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnRlbF9wbGFuZV91c2VzX2ZlbmNlKHBsYW5lX3N0YXRlKSwKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwbGFuZV9zdGF0ZS0+ZmxhZ3Mp Owo+ID4gPiArICAgICAgICAgICAgICAgaWYgKElTX0VSUih2bWEpKQo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUih2bWEpOwo+ID4gPiArCj4gPiA+ICsgICAgICAg ICAgICAgICBwbGFuZV9zdGF0ZS0+Z2d0dF92bWEgPSB2bWE7Cj4gPiA+ICsgICAgICAgfSBlbHNl IHsKPiA+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxf ZmIgPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYik7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAg ICAgIHZtYSA9IGludGVsX2RwdF9waW4oaW50ZWxfZmItPmRwdF92bSk7Cj4gPiA+ICsgICAgICAg ICAgICAgICBpZiAoSVNfRVJSKHZtYSkpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBQVFJfRVJSKHZtYSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAgICAgIHBsYW5lX3N0 YXRlLT5nZ3R0X3ZtYSA9IHZtYTsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgICAgdm1hID0g aW50ZWxfcGluX2ZiX29ial9kcHQoZmIsICZwbGFuZV9zdGF0ZS0+dmlldy5ndHQsIGZhbHNlLAo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBsYW5lX3N0 YXRlLT5mbGFncywgaW50ZWxfZmItPmRwdF92bSk7Cj4gPiA+ICsgICAgICAgICAgICAgICBpZiAo SVNfRVJSKHZtYSkpIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZHB0X3Vu cGluKGludGVsX2ZiLT5kcHRfdm0pOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBwbGFu ZV9zdGF0ZS0+Z2d0dF92bWEgPSBOVUxMOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gUFRSX0VSUih2bWEpOwo+ID4gPiArICAgICAgICAgICAgICAgfQo+ID4gPiArCj4gPiA+ ICsgICAgICAgICAgICAgICBwbGFuZV9zdGF0ZS0+ZHB0X3ZtYSA9IHZtYTsKPiA+ID4gKwo+ID4g PiArICAgICAgICAgICAgICAgV0FSTl9PTihwbGFuZV9zdGF0ZS0+Z2d0dF92bWEgPT0gcGxhbmVf c3RhdGUtPmRwdF92bWEpOwo+ID4gPiArICAgICAgIH0KPiA+ID4KPiA+ID4gICAgICAgICByZXR1 cm4gMDsKPiA+ID4gIH0KPiA+ID4KPiA+ID4gIHZvaWQgaW50ZWxfcGxhbmVfdW5waW5fZmIoc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUpCj4gPiA+ICB7Cj4gPiA+ICsg ICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBvbGRfcGxhbmVfc3RhdGUtPmh3LmZi Owo+ID4gPiAgICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ID4gPgo+ID4gPiAtICAgICAg IHZtYSA9IGZldGNoX2FuZF96ZXJvKCZvbGRfcGxhbmVfc3RhdGUtPnZtYSk7Cj4gPiA+IC0gICAg ICAgaWYgKHZtYSkKPiA+ID4gLSAgICAgICAgICAgICAgIGludGVsX3VucGluX2ZiX3ZtYSh2bWEs IG9sZF9wbGFuZV9zdGF0ZS0+ZmxhZ3MpOwo+ID4gPiArICAgICAgIGlmICghaW50ZWxfZmJfdXNl c19kcHQoZmIpKSB7Cj4gPiA+ICsgICAgICAgICAgICAgICB2bWEgPSBmZXRjaF9hbmRfemVybygm b2xkX3BsYW5lX3N0YXRlLT5nZ3R0X3ZtYSk7Cj4gPiA+ICsgICAgICAgICAgICAgICBpZiAodm1h KQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF91bnBpbl9mYl92bWEodm1hLCBv bGRfcGxhbmVfc3RhdGUtPmZsYWdzKTsKPiA+ID4gKyAgICAgICB9IGVsc2Ugewo+ID4gPiArICAg ICAgICAgICAgICAgc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVs X2ZyYW1lYnVmZmVyKGZiKTsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgICAgdm1hID0gZmV0 Y2hfYW5kX3plcm8oJm9sZF9wbGFuZV9zdGF0ZS0+ZHB0X3ZtYSk7Cj4gPiA+ICsgICAgICAgICAg ICAgICBpZiAodm1hKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF91bnBpbl9m Yl92bWEodm1hLCBvbGRfcGxhbmVfc3RhdGUtPmZsYWdzKTsKPiA+ID4gKwo+ID4gPiArICAgICAg ICAgICAgICAgdm1hID0gZmV0Y2hfYW5kX3plcm8oJm9sZF9wbGFuZV9zdGF0ZS0+Z2d0dF92bWEp Owo+ID4gPiArICAgICAgICAgICAgICAgaWYgKHZtYSkKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgaW50ZWxfZHB0X3VucGluKGludGVsX2ZiLT5kcHRfdm0pOwo+ID4gPiArICAgICAgIH0K PiA+ID4gIH0KPiA+ID4KPiA+ID4gIC8qKgo+ID4gPiBAQCAtMTEwOTIsNiArMTE0MDAsMTAgQEAg c3RhdGljIHZvaWQgaW50ZWxfdXNlcl9mcmFtZWJ1ZmZlcl9kZXN0cm95KHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiKQo+ID4gPiAgICAgICAgIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50 ZWxfZmIgPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYik7Cj4gPiA+Cj4gPiA+ICAgICAgICAgZHJt X2ZyYW1lYnVmZmVyX2NsZWFudXAoZmIpOwo+ID4gPiArCj4gPiA+ICsgICAgICAgaWYgKGludGVs X2ZiX3VzZXNfZHB0KGZiKSkKPiA+ID4gKyAgICAgICAgICAgICAgIGludGVsX2RwdF9kZXN0cm95 KGludGVsX2ZiLT5kcHRfdm0pOwo+ID4gPiArCj4gPiA+ICAgICAgICAgaW50ZWxfZnJvbnRidWZm ZXJfcHV0KGludGVsX2ZiLT5mcm9udGJ1ZmZlcik7Cj4gPiA+Cj4gPiA+ICAgICAgICAga2ZyZWUo aW50ZWxfZmIpOwo+ID4gPiBAQCAtMTEyNjIsNiArMTE1NzQsMTggQEAgc3RhdGljIGludCBpbnRl bF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIsCj4g PiA+ICAgICAgICAgaWYgKHJldCkKPiA+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+ID4g Pgo+ID4gPiArICAgICAgIGlmIChpbnRlbF9mYl91c2VzX2RwdChmYikpIHsKPiA+ID4gKyAgICAg ICAgICAgICAgIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtOwo+ID4gPiArCj4gPiA+ICsg ICAgICAgICAgICAgICB2bSA9IGludGVsX2RwdF9jcmVhdGUoJm9iai0+YmFzZSk7Cj4gPiA+ICsg ICAgICAgICAgICAgICBpZiAoSVNfRVJSKHZtKSkgewo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICByZXQgPSBQVFJfRVJSKHZtKTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290 byBlcnI7Cj4gPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAg ICAgIGludGVsX2ZiLT5kcHRfdm0gPSB2bTsKPiA+ID4gKyAgICAgICB9Cj4gPiA+ICsKPiA+ID4g ICAgICAgICByZXQgPSBkcm1fZnJhbWVidWZmZXJfaW5pdCgmZGV2X3ByaXYtPmRybSwgZmIsICZp bnRlbF9mYl9mdW5jcyk7Cj4gPiA+ICAgICAgICAgaWYgKHJldCkgewo+ID4gPiAgICAgICAgICAg ICAgICAgZHJtX2VycigmZGV2X3ByaXYtPmRybSwgImZyYW1lYnVmZmVyIGluaXQgZmFpbGVkICVk XG4iLCByZXQpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuaAo+ID4gPiBpbmRleCBmYzBkZjRjNjNlOGRlLi5iZjEyZTc3YmNkMTc1IDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAo+ ID4gPiBAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMjsKPiA+ID4gIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eDsKPiA+ID4gIHN0cnVjdCBkcm1fcGxhbmU7Cj4g PiA+ICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlOwo+ID4gPiArc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZTsKPiA+ID4gIHN0cnVjdCBpOTE1X2dndHRfdmlldzsKPiA+ID4gIHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGU7Cj4gPiA+ICBzdHJ1Y3QgaW50ZWxfY3J0YzsKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gaW5k ZXggNmQ4Y2RhYTM2NzQ4NS4uN2ZlOTY3NzdkYzY3MSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4g QEAgLTEyOCw2ICsxMjgsOCBAQCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgewo+ID4gPiAgICAg ICAgIHN0cnVjdCBpbnRlbF9mYl92aWV3IG5vcm1hbF92aWV3Owo+ID4gPiAgICAgICAgIHN0cnVj dCBpbnRlbF9mYl92aWV3IHJvdGF0ZWRfdmlldzsKPiA+ID4gICAgICAgICBzdHJ1Y3QgaW50ZWxf ZmJfdmlldyByZW1hcHBlZF92aWV3Owo+ID4gPiArCj4gPiA+ICsgICAgICAgc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqZHB0X3ZtOwo+ID4gPiAgfTsKPiA+ID4KPiA+ID4gIHN0cnVjdCBpbnRl bF9mYmRldiB7Cj4gPiA+IEBAIC02MTAsNyArNjEyLDggQEAgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlIHsKPiA+ID4gICAgICAgICAgICAgICAgIGVudW0gZHJtX3NjYWxpbmdfZmlsdGVyIHNjYWxp bmdfZmlsdGVyOwo+ID4gPiAgICAgICAgIH0gaHc7Cj4gPiA+Cj4gPiA+IC0gICAgICAgc3RydWN0 IGk5MTVfdm1hICp2bWE7Cj4gPiA+ICsgICAgICAgc3RydWN0IGk5MTVfdm1hICpnZ3R0X3ZtYTsK PiA+ID4gKyAgICAgICBzdHJ1Y3QgaTkxNV92bWEgKmRwdF92bWE7Cj4gPiA+ICAgICAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKPiA+ID4gICNkZWZpbmUgUExBTkVfSEFTX0ZFTkNFIEJJVCgwKQo+ ID4gPgo+ID4gPiBAQCAtMTk3Miw5ICsxOTc1LDE1IEBAIGludGVsX3dhaXRfZm9yX3ZibGFua19p Zl9hY3RpdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlw Cj4gPiA+ICAgICAgICAgICAgICAgICBpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBp cGUpOwo+ID4gPiAgfQo+ID4gPgo+ID4gPiAtc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcGxhbmVf Z2d0dF9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiA+ID4g K3N0YXRpYyBpbmxpbmUgYm9vbCBpbnRlbF9mYl91c2VzX2RwdChjb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYikKPiA+ID4gIHsKPiA+ID4gLSAgICAgICByZXR1cm4gaTkxNV9nZ3R0X29m ZnNldChzdGF0ZS0+dm1hKTsKPiA+ID4gKyAgICAgICByZXR1cm4gZmIgJiYgRElTUExBWV9WRVIo dG9faTkxNShmYi0+ZGV2KSkgPj0gMTMgJiYKPiA+ID4gKyAgICAgICAgICAgICAgIGZiLT5tb2Rp ZmllciAhPSBEUk1fRk9STUFUX01PRF9MSU5FQVI7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0 YXRpYyBpbmxpbmUgdTMyIGludGVsX3BsYW5lX2dndHRfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICsgICAgICAgcmV0dXJu IGk5MTVfZ2d0dF9vZmZzZXQocGxhbmVfc3RhdGUtPmdndHRfdm1hKTsKPiA+ID4gIH0KPiA+ID4K PiA+ID4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2Zyb250YnVmZmVyICoKPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCj4gPiA+IGluZGV4IGIyZjNhYzg0 NmY1YjYuLjE4NDdhMTYxY2IzNzQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9mYmMuYwo+ID4gPiBAQCAtNzM3LDExICs3MzcsMTEgQEAgc3RhdGljIHZv aWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiA+ID4gICAgICAgICBjYWNoZS0+ZmVuY2VfeV9vZmZzZXQgPSBpbnRlbF9wbGFuZV9mZW5jZV95 X29mZnNldChwbGFuZV9zdGF0ZSk7Cj4gPiA+Cj4gPiA+ICAgICAgICAgZHJtX1dBUk5fT04oJmRl dl9wcml2LT5kcm0sIHBsYW5lX3N0YXRlLT5mbGFncyAmIFBMQU5FX0hBU19GRU5DRSAmJgo+ID4g PiAtICAgICAgICAgICAgICAgICAgICFwbGFuZV9zdGF0ZS0+dm1hLT5mZW5jZSk7Cj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgIXBsYW5lX3N0YXRlLT5nZ3R0X3ZtYS0+ZmVuY2UpOwo+ID4gPgo+ ID4gPiAgICAgICAgIGlmIChwbGFuZV9zdGF0ZS0+ZmxhZ3MgJiBQTEFORV9IQVNfRkVOQ0UgJiYK PiA+ID4gLSAgICAgICAgICAgcGxhbmVfc3RhdGUtPnZtYS0+ZmVuY2UpCj4gPiA+IC0gICAgICAg ICAgICAgICBjYWNoZS0+ZmVuY2VfaWQgPSBwbGFuZV9zdGF0ZS0+dm1hLT5mZW5jZS0+aWQ7Cj4g PiA+ICsgICAgICAgICAgIHBsYW5lX3N0YXRlLT5nZ3R0X3ZtYS0+ZmVuY2UpCj4gPiA+ICsgICAg ICAgICAgICAgICBjYWNoZS0+ZmVuY2VfaWQgPSBwbGFuZV9zdGF0ZS0+Z2d0dF92bWEtPmZlbmNl LT5pZDsKPiA+ID4gICAgICAgICBlbHNlCj4gPiA+ICAgICAgICAgICAgICAgICBjYWNoZS0+ZmVu Y2VfaWQgPSAtMTsKPiA+ID4KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvc2tsX3VuaXZlcnNhbF9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9za2xfdW5pdmVyc2FsX3BsYW5lLmMKPiA+ID4gaW5kZXggMGQzNGE1YWQ0ZTJiOS4uNmRm M2U3NDVmODMwZCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9za2xfdW5pdmVyc2FsX3BsYW5lLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9za2xfdW5pdmVyc2FsX3BsYW5lLmMKPiA+ID4gQEAgLTkzNCw2ICs5MzQsMjEgQEAg c3RhdGljIHUzMiBnbGtfcGxhbmVfY29sb3JfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ID4gPiAgICAgICAgIHJldHVybiBwbGFuZV9jb2xvcl9jdGw7Cj4g PiA+ICB9Cj4gPiA+Cj4gPiA+ICtzdGF0aWMgdTMyIHNrbF9zdXJmX2FkZHJlc3MoY29uc3Qgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBjb2xvcl9wbGFuZSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgICBjb25z dCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKPiA+ID4g KyAgICAgICB1MzIgb2Zmc2V0ID0gcGxhbmVfc3RhdGUtPnZpZXcuY29sb3JfcGxhbmVbY29sb3Jf cGxhbmVdLm9mZnNldDsKPiA+ID4gKwo+ID4gPiArICAgICAgIGlmIChpbnRlbF9mYl91c2VzX2Rw dChmYikpIHsKPiA+ID4gKyAgICAgICAgICAgICAgIFdBUk5fT04ob2Zmc2V0ICYgMHgxZmZmZmYp Owo+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIG9mZnNldCA+PiA5Owo+ID4gPiArICAgICAg IH0gZWxzZSB7Cj4gPiA+ICsgICAgICAgICAgICAgICBXQVJOX09OKG9mZnNldCAmIDB4ZmZmKTsK PiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBvZmZzZXQ7Cj4gPiA+ICsgICAgICAgfQo+ID4g PiArfQo+ID4gPiArCj4gPiA+ICBzdGF0aWMgdm9pZAo+ID4gPiAgc2tsX3Byb2dyYW1fcGxhbmUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ID4gICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiA+IEBAIC05NDQsNyArOTU5 LDcgQEAgc2tsX3Byb2dyYW1fcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ID4g ICAgICAgICBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwo+ID4gPiAgICAgICAg IGVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7Cj4gPiA+ICAgICAgICAgY29uc3Qgc3RydWN0 IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKPiA+ ID4gLSAgICAgICB1MzIgc3VyZl9hZGRyID0gcGxhbmVfc3RhdGUtPnZpZXcuY29sb3JfcGxhbmVb Y29sb3JfcGxhbmVdLm9mZnNldDsKPiA+ID4gKyAgICAgICB1MzIgc3VyZl9hZGRyID0gc2tsX3N1 cmZfYWRkcmVzcyhwbGFuZV9zdGF0ZSwgY29sb3JfcGxhbmUpOwo+ID4gPiAgICAgICAgIHUzMiBz dHJpZGUgPSBza2xfcGxhbmVfc3RyaWRlKHBsYW5lX3N0YXRlLCBjb2xvcl9wbGFuZSk7Cj4gPiA+ ICAgICAgICAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ aHcuZmI7Cj4gPiA+ICAgICAgICAgaW50IGF1eF9wbGFuZSA9IHNrbF9tYWluX3RvX2F1eF9wbGFu ZShmYiwgY29sb3JfcGxhbmUpOwo+ID4gPiBAQCAtOTgzLDcgKzk5OCw3IEBAIHNrbF9wcm9ncmFt X3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gPiA+ICAgICAgICAgfQo+ID4gPgo+ ID4gPiAgICAgICAgIGlmIChhdXhfcGxhbmUpIHsKPiA+ID4gLSAgICAgICAgICAgICAgIGF1eF9k aXN0ID0gcGxhbmVfc3RhdGUtPnZpZXcuY29sb3JfcGxhbmVbYXV4X3BsYW5lXS5vZmZzZXQgLSBz dXJmX2FkZHI7Cj4gPiA+ICsgICAgICAgICAgICAgICBhdXhfZGlzdCA9IHNrbF9zdXJmX2FkZHJl c3MocGxhbmVfc3RhdGUsIGF1eF9wbGFuZSkgLSBzdXJmX2FkZHI7Cj4gPiA+Cj4gPiA+ICAgICAg ICAgICAgICAgICBpZiAoRElTUExBWV9WRVIoZGV2X3ByaXYpIDwgMTIpCj4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIGF1eF9kaXN0IHw9IHNrbF9wbGFuZV9zdHJpZGUocGxhbmVfc3RhdGUs IGF1eF9wbGFuZSk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9n ZW44X3BwZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW44X3BwZ3R0LmgKPiA+ID4g aW5kZXggNzZhMDhiOWMxZjVjOC4uYjkwMjhjMmFkM2M3ZCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuOF9wcGd0dC5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2dlbjhfcHBndHQuaAo+ID4gPiBAQCAtNiw4ICs2LDE1IEBACj4gPiA+ICAj aWZuZGVmIF9fR0VOOF9QUEdUVF9IX18KPiA+ID4gICNkZWZpbmUgX19HRU44X1BQR1RUX0hfXwo+ ID4gPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ID4gPiArCj4gPiA+ICtzdHJ1 Y3QgaTkxNV9hZGRyZXNzX3NwYWNlOwo+ID4gPiAgc3RydWN0IGludGVsX2d0Owo+ID4gPiArZW51 bSBpOTE1X2NhY2hlX2xldmVsOwo+ID4gPgo+ID4gPiAgc3RydWN0IGk5MTVfcHBndHQgKmdlbjhf cHBndHRfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndCAqZ3QpOwo+ID4gPiArdTY0IGdlbjhfZ2d0dF9w dGVfZW5jb2RlKGRtYV9hZGRyX3QgYWRkciwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHUzMiBmbGFncyk7Cj4gPiA+Cj4gPiA+ICAjZW5kaWYKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2dndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2dndHQuYwo+ID4gPiBpbmRleCBkY2IzYjI5OWNmNGFhLi4zNTA2OWNhNWQ3ZGVi IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9nZ3R0LmMK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ2d0dC5jCj4gPiA+IEBA IC0xOCw2ICsxOCw3IEBACj4gPiA+ICAjaW5jbHVkZSAiaTkxNV92Z3B1LmgiCj4gPiA+Cj4gPiA+ ICAjaW5jbHVkZSAiaW50ZWxfZ3R0LmgiCj4gPiA+ICsjaW5jbHVkZSAiZ2VuOF9wcGd0dC5oIgo+ ID4gPgo+ID4gPiAgc3RhdGljIGludAo+ID4gPiAgaTkxNV9nZXRfZ2d0dF92bWFfcGFnZXMoc3Ry dWN0IGk5MTVfdm1hICp2bWEpOwo+ID4gPiBAQCAtMTg3LDkgKzE4OCw5IEBAIHN0YXRpYyB2b2lk IGdtY2hfZ2d0dF9pbnZhbGlkYXRlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCj4gPiA+ICAgICAg ICAgaW50ZWxfZ3R0X2NoaXBzZXRfZmx1c2goKTsKPiA+ID4gIH0KPiA+ID4KPiA+ID4gLXN0YXRp YyB1NjQgZ2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ID4gPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgZmxhZ3MpCj4gPiA+ICt1NjQg Z2VuOF9nZ3R0X3B0ZV9lbmNvZGUoZG1hX2FkZHJfdCBhZGRyLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsLAo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgdTMyIGZsYWdzKQo+ID4gPiAgewo+ID4gPiAgICAgICAgIGdlbjhfcHRl X3QgcHRlID0gYWRkciB8IF9QQUdFX1BSRVNFTlQ7Cj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2d0dC5oCj4gPiA+IGluZGV4IDQ0Y2UyN2M1MTYzMTkuLmNhMDBiNDU4MjdiNzQg MTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0dC5oCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0dC5oCj4gPiA+IEBAIC0y NDgsNiArMjQ4LDcgQEAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSB7Cj4gPiA+ICAgICAgICAg c3RydWN0IGRtYV9yZXN2IHJlc3Y7IC8qIHJlc2VydmF0aW9uIGxvY2sgZm9yIGFsbCBwZCBvYmpl Y3RzLCBhbmQgYnVmZmVyIHBvb2wgKi8KPiA+ID4gICNkZWZpbmUgVk1fQ0xBU1NfR0dUVCAwCj4g PiA+ICAjZGVmaW5lIFZNX0NMQVNTX1BQR1RUIDEKPiA+ID4gKyNkZWZpbmUgVk1fQ0xBU1NfRFBU IDIKPiA+ID4KPiA+ID4gICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc2NyYXRj aFs0XTsKPiA+ID4gICAgICAgICAvKioKPiA+ID4gQEAgLTI1OCw2ICsyNTksOSBAQCBzdHJ1Y3Qg aTkxNV9hZGRyZXNzX3NwYWNlIHsKPiA+ID4gICAgICAgICAvKiBHbG9iYWwgR1RUICovCj4gPiA+ ICAgICAgICAgYm9vbCBpc19nZ3R0OjE7Cj4gPiA+Cj4gPiA+ICsgICAgICAgLyogRGlzcGxheSBw YWdlIHRhYmxlICovCj4gPiA+ICsgICAgICAgYm9vbCBpc19kcHQ6MTsKPiA+ID4gKwo+ID4gPiAg ICAgICAgIC8qIFNvbWUgc3lzdGVtcyBzdXBwb3J0IHJlYWQtb25seSBtYXBwaW5ncyBmb3IgR0dU VCBhbmQvb3IgUFBHVFQgKi8KPiA+ID4gICAgICAgICBib29sIGhhc19yZWFkX29ubHk6MTsKPiA+ ID4KPiA+ID4gQEAgLTM1NCw2ICszNTgsNyBAQCBzdHJ1Y3QgaTkxNV9wcGd0dCB7Cj4gPiA+ICB9 Owo+ID4gPgo+ID4gPiAgI2RlZmluZSBpOTE1X2lzX2dndHQodm0pICgodm0pLT5pc19nZ3R0KQo+ ID4gPiArI2RlZmluZSBpOTE1X2lzX2RwdCh2bSkgKCh2bSktPmlzX2RwdCkKPiA+ID4KPiA+ID4g IGludCBfX211c3RfY2hlY2sKPiA+ID4gIGk5MTVfdm1fbG9ja19vYmplY3RzKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLCBzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4ICp3dyk7Cj4gPiA+IC0t Cj4gPiA+IDIuMjcuMAo+ID4gPgo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBE YW5pZWwgVmV0dGVyCj4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+ IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=