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.7 required=3.0 tests=BAYES_00, 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 87367C433ED for ; Mon, 3 May 2021 08:33:44 +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 405D061221 for ; Mon, 3 May 2021 08:33:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 405D061221 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id ACCFB6E887; Mon, 3 May 2021 08:33:43 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id E7CF26E075; Mon, 3 May 2021 08:33:42 +0000 (UTC) IronPort-SDR: FURPJrh6wvmNdK1Nhg5gd5Vb70DCOXUDicDIGUnqzGMWTxrkHuifMQxWrkerwROrmEXuKouoII vGKcaKdYiFeQ== X-IronPort-AV: E=McAfee;i="6200,9189,9972"; a="195636323" X-IronPort-AV: E=Sophos;i="5.82,268,1613462400"; d="scan'208";a="195636323" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 01:33:42 -0700 IronPort-SDR: tcdz1uWc5IdYgA9+dXYN7yGEsJATBKt23LLcWHg5GhqINtUundxe8FWI3pGmbuebt4q1KULXj6 mvVL/H9Zh8Lw== X-IronPort-AV: E=Sophos;i="5.82,268,1613462400"; d="scan'208";a="432629070" Received: from tbashir-mobl.ger.corp.intel.com (HELO localhost) ([10.252.51.126]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 01:33:36 -0700 From: Jani Nikula To: Lyude Paul , Nikola Cornij , amd-gfx@lists.freedesktop.org, Ben Skeggs In-Reply-To: <8735v82unm.fsf@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20210428234346.1085977-1-nikola.cornij@amd.com> <20210428234346.1085977-2-nikola.cornij@amd.com> <2bc4cf58838635b357e77d2a132fd901dc477c71.camel@redhat.com> <8735v82unm.fsf@intel.com> Date: Mon, 03 May 2021 11:33:33 +0300 Message-ID: <87mttc1ajm.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [Heads up to maintainers] Re: [PATCH v8 1/1] drm/drm_mst: Use Extended Base Receiver Capability DPCD space 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: Maxime Ripard , Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, koba.ko@canonical.com, aurabindo.pillai@amd.com, "Lankhorst, Maarten" , Thomas Zimmermann , mikita.lipski@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gRnJpLCAzMCBBcHIgMjAyMSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4g d3JvdGU6Cj4gT24gVGh1LCAyOSBBcHIgMjAyMSwgTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNv bT4gd3JvdGU6Cj4+IEpGWUkgSmFuaSBhbmQgQmVuOiBJIHdpbGwgYmUgcHVzaGluZyB0aGlzIHBh dGNoIHRvIGRybS1taXNjLW5leHQgc29tZXRpbWUKPj4gdG9kYXkgaWYgdGhlcmUncyBubyBvYmpl Y3Rpb25zCj4KPiBUaGFua3MgZm9yIHRoZSBoZWFkcy11cCwgSSB0aGluayB0aGlzIGJyZWFrcyBp OTE1LiBTZWUgbXkgcmV2aWV3Cj4gY29tbWVudHMgZWxzZXdoZXJlIGluIHRoZSB0aHJlYWQuCgpM b29rcyBsaWtlIHRoaXMgd2FzIG1lcmdlZCBhbnl3YXkuCgo5ODAyNWE2MmNiMDAgKCJkcm0vZHBf bXN0OiBVc2UgRXh0ZW5kZWQgQmFzZSBSZWNlaXZlciBDYXBhYmlsaXR5IERQQ0Qgc3BhY2UiKQoK SSdtIG5vdCBoYXBweSBob3cgdGhpcyBwbGF5ZWQgb3V0LgoKMSkgWW91IG5lZWQgdG8gQ2MgcmVs ZXZhbnQgcGVvcGxlCgoyKSBZb3UgbmVlZCB0byBnZXQgdGhlIGFjayBiZWZvcmUgbWVyZ2luZyBj aGFuZ2VzCgozKSBZb3UgbmVlZCB0byBnaXZlIHBlb3BsZSBtb3JlIHRoYW4gYSBkYXkgdG8gcmVh Y3QsIHdpdGggdGltZSB6b25lcyBhbmQKYWxsOyBJIHJlcGxpZWQgYXMgc29vbiBhcyBJIHNhdyB0 aGUgaGVhZHMtdXAsIGJ1dCBpdCB3YXMgYWxyZWFkeSB0b28KbGF0ZQoKSXQncyBicm9rZW4gb24g aTkxNSwgYW5kIHBlcmhhcHMgdGhhdCBjb3VsZCBiZSBmaXhlZC4KCkhvd2V2ZXIgSSBhbHNvIHRo aW5rIHVzaW5nIERQIHNwZWMgcmF0ZSBjb2RlcyBhbmQgY2FsbGluZyB0aGVtICJyYXRlIiBpcwph IGJhZCBpbnRlcmZhY2UsIGVzcGVjaWFsbHkgd2hlbiB0aGUgdW5pdCBicmVha3MgZG93biB3aXRo IERQIDIuMCByYXRlCmNvZGVzLiBJdCdzIGNvbmZ1c2luZyBhbmQgaXQncyBub3QgZnV0dXJlIHBy b29mLiBGaXhpbmcgdGhhdCBhZnRlcndhcmRzCmZhbGxzIHRvIHdob2V2ZXIgY29tZXMgbmV4dCB0 byBwaWNrIHVwIHRoZSBwaWVjZXMuCgpJJ2QgcmF0aGVyIGp1c3Qgc2VlIHRoaXMgcmV2ZXJ0ZWQg YW5kIHJlZG9uZS4KCgpCUiwKSmFuaS4KCgo+Cj4gQlIsCj4gSmFuaS4KPgo+Cj4+Cj4+IE9uIFdl ZCwgMjAyMS0wNC0yOCBhdCAxOTo0MyAtMDQwMCwgTmlrb2xhIENvcm5paiB3cm90ZToKPj4+IFt3 aHldCj4+PiBEUCAxLjRhIHNwZWMgbWFkYXRlcyB0aGF0IGlmIERQX0VYVEVOREVEX1JFQ0VJVkVS X0NBUF9GSUVMRF9QUkVTRU5UIGlzCj4+PiBzZXQsIEV4dGVuZGVkIEJhc2UgUmVjZWl2ZXIgQ2Fw YWJpbGl0eSBEUENEIHNwYWNlIG11c3QgYmUgdXNlZC4gV2l0aG91dAo+Pj4gZG9pbmcgdGhhdCwg dGhlIHRocmVlIERQQ0QgdmFsdWVzIHRoYXQgZGlmZmVyIHdpbGwgYmUgd3JvbmcsIGxlYWRpbmcg dG8KPj4+IGluY29ycmVjdCBvciBsaW1pdGVkIGZ1bmN0aW9uYWxpdHkuIE1TVCBsaW5rIHJhdGUs IGZvciBleGFtcGxlLCBjb3VsZAo+Pj4gaGF2ZSBhIGxvd2VyIHZhbHVlLiBBbHNvLCBTeW5hcHRp Y3MgcXVpcmsgd291bGRuJ3Qgd29yayBvdXQgd2VsbCB3aGVuCj4+PiBFeHRlbmRlZCBEUENEIHdh cyBub3QgcmVhZCwgcmVzdWx0aW5nIGluIG5vIERTQyBmb3Igc3VjaCBodWJzLgo+Pj4gCj4+PiBb aG93XQo+Pj4gTW9kaWZ5IE1TVCB0b3BvbG9neSBtYW5hZ2VyIHRvIHVzZSB0aGUgdmFsdWVzIGZy b20gRXh0ZW5kZWQgRFBDRCB3aGVyZQo+Pj4gYXBwbGljYWJsZS4KPj4+IAo+Pj4gVG8gcHJldmVu dCByZWdyZXNzaW9uIG9uIHRoZSBzb3VyY2VzIHRoYXQgaGF2ZSBhIGxvd2VyIG1heGltdW0gbGlu ayByYXRlCj4+PiBjYXBhYmlsaXR5IHRoYW4gTUFYX0xJTktfUkFURSBmcm9tIEV4dGVuZGVkIERQ Q0QsIGhhdmUgdGhlIGRyaXZlcnMKPj4+IHN1cHBseSBtYXhpbXVtIGxhbmUgY291bnQgYW5kIHJh dGUgYXQgaW5pdGlhbGl6YXRpb24gdGltZS4KPj4+IAo+Pj4gVGhpcyBhbHNvIHJldmVydHMgJ2Nv bW1pdCAyZGNhYjg3NWU3NjMgKCJSZXZlcnQgZHJtL2RwX21zdDogUmV0cmlldmUKPj4+IGV4dGVu ZGVkIERQQ0QgY2FwcyBmb3IgdG9wb2xvZ3kgbWFuYWdlciIpJywgYnJpbmluZyB0aGUgY2hhbmdl IGJhY2sgdG8KPj4+IHRoZSBvcmlnaW5hbCAnY29tbWl0IGFkNDRjMDMyMDhlNCAoImRybS9kcF9t c3Q6IFJldHJpZXZlIGV4dGVuZGVkIERQQ0QKPj4+IGNhcHMgZm9yIHRvcG9sb2d5IG1hbmFnZXIi KScuCj4+PiAKPj4+IFNpZ25lZC1vZmYtYnk6IE5pa29sYSBDb3JuaWogPG5pa29sYS5jb3JuaWpA YW1kLmNvbT4KPj4+IC0tLQo+Pj4gwqAuLi4vZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21z dF90eXBlcy5jwqDCoCB8wqAgNSArKysKPj4+IMKgLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMv Y29yZS9kY19saW5rX2RwLmPCoCB8IDE4ICsrKysrKysrKysKPj4+IMKgZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2RjX2xpbmsuaMKgwqDCoMKgwqAgfMKgIDIgKysKPj4+IMKgZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuY8KgwqDCoMKgwqDCoMKgwqAgfCAzMyArKysr KysrKysrKystLS0tLS0tCj4+PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHBfbXN0LmPCoMKgIHzCoCA2ICsrKy0KPj4+IMKgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlz cG52NTAvZGlzcC5jwqDCoMKgwqDCoMKgIHzCoCAzICstCj4+PiDCoGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2RwX21zdC5jwqDCoMKgwqDCoMKgwqAgfMKgIDcgKysrKwo+Pj4gwqBpbmNs dWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 IDEyICsrKysrKy0KPj4+IMKgOCBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAxNSBk ZWxldGlvbnMoLSkKPj4+IAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlz cGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCj4+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCj4+PiBpbmRleCA5 OTc1NjdmNmYwYmEuLmI3ZTAxYjZmYjMyOCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCj4+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMu Ywo+Pj4gQEAgLTQyOSw2ICs0MjksOCBAQCB2b2lkIGFtZGdwdV9kbV9pbml0aWFsaXplX2RwX2Nv bm5lY3RvcihzdHJ1Y3QKPj4+IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAo+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5lY3Rvcgo+Pj4gKmFjb25uZWN0b3Is Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBsaW5rX2luZGV4KQo+Pj4gwqB7Cj4+PiArwqDC oMKgwqDCoMKgwqBzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyBtYXhfbGlua19lbmNfY2FwID0gezB9 Owo+Pj4gKwo+Pj4gwqDCoMKgwqDCoMKgwqDCoGFjb25uZWN0b3ItPmRtX2RwX2F1eC5hdXgubmFt ZSA9Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGthc3ByaW50ZihHRlBfS0VS TkVMLCAiQU1ER1BVIERNIGF1eCBodyBidXMgJWQiLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGlua19pbmRleCk7Cj4+PiBAQCAtNDQzLDYg KzQ0NSw3IEBAIHZvaWQgYW1kZ3B1X2RtX2luaXRpYWxpemVfZHBfY29ubmVjdG9yKHN0cnVjdAo+ Pj4gYW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciAqZG0sCj4+PiDCoMKgwqDCoMKgwqDCoMKgaWYgKGFj b25uZWN0b3ItPmJhc2UuY29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkK Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuOwo+Pj4gwqAKPj4+ICvC oMKgwqDCoMKgwqDCoGRjX2xpbmtfZHBfZ2V0X21heF9saW5rX2VuY19jYXAoYWNvbm5lY3Rvci0+ ZGNfbGluaywKPj4+ICZtYXhfbGlua19lbmNfY2FwKTsKPj4+IMKgwqDCoMKgwqDCoMKgwqBhY29u bmVjdG9yLT5tc3RfbWdyLmNicyA9ICZkbV9tc3RfY2JzOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoGRy bV9kcF9tc3RfdG9wb2xvZ3lfbWdyX2luaXQoCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCZhY29ubmVjdG9yLT5tc3RfbWdyLAo+Pj4gQEAgLTQ1MCw2ICs0NTMsOCBAQCB2b2lk IGFtZGdwdV9kbV9pbml0aWFsaXplX2RwX2Nvbm5lY3RvcihzdHJ1Y3QKPj4+IGFtZGdwdV9kaXNw bGF5X21hbmFnZXIgKmRtLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmYWNv bm5lY3Rvci0+ZG1fZHBfYXV4LmF1eCwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgMTYsCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDQsCj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbWF4X2xpbmtfZW5jX2NhcC5sYW5lX2NvdW50LAo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG1heF9saW5rX2VuY19jYXAubGlua19yYXRl LAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBhY29ubmVjdG9yLT5jb25uZWN0 b3JfaWQpOwo+Pj4gwqAKPj4+IMKgwqDCoMKgwqDCoMKgwqBkcm1fY29ubmVjdG9yX2F0dGFjaF9k cF9zdWJjb25uZWN0b3JfcHJvcGVydHkoJmFjb25uZWN0b3ItPmJhc2UpOwo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX2xpbmtfZHAuYwo+Pj4g Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rX2RwLmMKPj4+IGlu ZGV4IDdkMmU0MzNjMjI3NS4uNmZlNjZiN2VlNTNlIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfbGlua19kcC5jCj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvY29yZS9kY19saW5rX2RwLmMKPj4+IEBAIC0xODk0LDYg KzE4OTQsMjQgQEAgYm9vbCBkY19saW5rX2RwX3N5bmNfbHRfZW5kKHN0cnVjdCBkY19saW5rICps aW5rLAo+Pj4gYm9vbCBsaW5rX2Rvd24pCj4+PiDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHRydWU7 Cj4+PiDCoH0KPj4+IMKgCj4+PiArYm9vbCBkY19saW5rX2RwX2dldF9tYXhfbGlua19lbmNfY2Fw KGNvbnN0IHN0cnVjdCBkY19saW5rICpsaW5rLCBzdHJ1Y3QKPj4+IGRjX2xpbmtfc2V0dGluZ3Mg Km1heF9saW5rX2VuY19jYXApCj4+PiArewo+Pj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFtYXhfbGlu a19lbmNfY2FwKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgRENfTE9HX0VS Uk9SKCIlczogQ291bGQgbm90IHJldHVybiBtYXggbGluayBlbmNvZGVyIGNhcHMiLAo+Pj4gX19m dW5jX18pOwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBmYWxzZTsK Pj4+ICvCoMKgwqDCoMKgwqDCoH0KPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDCoGlmIChsaW5rLT5s aW5rX2VuYy0+ZnVuY3MtPmdldF9tYXhfbGlua19jYXApIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBsaW5rLT5saW5rX2VuYy0+ZnVuY3MtPmdldF9tYXhfbGlua19jYXAobGlu ay0+bGlua19lbmMsCj4+PiBtYXhfbGlua19lbmNfY2FwKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqByZXR1cm4gdHJ1ZTsKPj4+ICvCoMKgwqDCoMKgwqDCoH0KPj4+ICsKPj4+ ICvCoMKgwqDCoMKgwqDCoERDX0xPR19FUlJPUigiJXM6IE1heCBsaW5rIGVuY29kZXIgY2FwcyB1 bmtub3duIiwgX19mdW5jX18pOwo+Pj4gK8KgwqDCoMKgwqDCoMKgbWF4X2xpbmtfZW5jX2NhcC0+ bGFuZV9jb3VudCA9IDE7Cj4+PiArwqDCoMKgwqDCoMKgwqBtYXhfbGlua19lbmNfY2FwLT5saW5r X3JhdGUgPSA2Owo+Pj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIGZhbHNlOwo+Pj4gK30KPj4+ICsK Pj4+IMKgc3RhdGljIHN0cnVjdCBkY19saW5rX3NldHRpbmdzIGdldF9tYXhfbGlua19jYXAoc3Ry dWN0IGRjX2xpbmsgKmxpbmspCj4+PiDCoHsKPj4+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgZGNf bGlua19zZXR0aW5ncyBtYXhfbGlua19jYXAgPSB7MH07Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjX2xpbmsuaAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvZGNfbGluay5oCj4+PiBpbmRleCBiMDAxM2U2NzQ4NjQuLmNiNmQwNTQz ZDgzOSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19s aW5rLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY19saW5rLmgK Pj4+IEBAIC0zNDYsNiArMzQ2LDggQEAgYm9vbCBkY19saW5rX2RwX3NldF90ZXN0X3BhdHRlcm4o Cj4+PiDCoMKgwqDCoMKgwqDCoMKgY29uc3QgdW5zaWduZWQgY2hhciAqcF9jdXN0b21fcGF0dGVy biwKPj4+IMKgwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgY3VzdF9wYXR0ZXJuX3NpemUpOwo+ Pj4gwqAKPj4+ICtib29sIGRjX2xpbmtfZHBfZ2V0X21heF9saW5rX2VuY19jYXAoY29uc3Qgc3Ry dWN0IGRjX2xpbmsgKmxpbmssIHN0cnVjdAo+Pj4gZGNfbGlua19zZXR0aW5ncyAqbWF4X2xpbmtf ZW5jX2NhcCk7Cj4+PiArCj4+PiDCoHZvaWQgZGNfbGlua19lbmFibGVfaHBkX2ZpbHRlcihzdHJ1 Y3QgZGNfbGluayAqbGluaywgYm9vbCBlbmFibGUpOwo+Pj4gwqAKPj4+IMKgYm9vbCBkY19saW5r X2lzX2RwX3NpbmtfcHJlc2VudChzdHJ1Y3QgZGNfbGluayAqbGluayk7Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwo+Pj4gYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jCj4+PiBpbmRleCA1NTM5YTkxYjQwMzEuLjMxZDlm M2ZmMGQzOSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9s b2d5LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKPj4+ IEBAIC0zNzA4LDE5ICszNzA4LDI0IEBAIGludCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9zZXRf bXN0KHN0cnVjdAo+Pj4gZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwgYm9vbCBtcwo+Pj4g wqDCoMKgwqDCoMKgwqDCoC8qIHNldCB0aGUgZGV2aWNlIGludG8gTVNUIG1vZGUgKi8KPj4+IMKg wqDCoMKgwqDCoMKgwqBpZiAobXN0X3N0YXRlKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHN0cnVjdCBkcm1fZHBfcGF5bG9hZCByZXNldF9wYXk7Cj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaW50IGxhbmVfY291bnQ7Cj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgaW50IGxpbmtfcmF0ZTsKPj4+IMKgCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoFdBUk5fT04obWdyLT5tc3RfcHJpbWFyeSk7Cj4+PiDCoAo+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBnZXQgZHBjZCBpbmZvICovCj4+PiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChtZ3ItPmF1 eCwgRFBfRFBDRF9SRVYsIG1nci0+ZHBjZCwKPj4+IERQX1JFQ0VJVkVSX0NBUF9TSVpFKTsKPj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0ICE9IERQX1JFQ0VJVkVSX0NB UF9TSVpFKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGRybV9kYmdfa21zKG1nci0+ZGV2LCAiZmFpbGVkIHRvIHJlYWQgRFBDRFxuIik7Cj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0ID0gZHJtX2RwX3JlYWRfZHBjZF9jYXBz KG1nci0+YXV4LCBtZ3ItPmRwY2QpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGlmIChyZXQgPCAwKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGRybV9kYmdfa21zKG1nci0+ZGV2LCAiJXM6IGZhaWxlZCB0byByZWFkIERQQ0Qs IHJldAo+Pj4gJWRcbiIsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWdyLT5hdXgtPm5hbWUsIHJldCk7Cj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBnb3RvIG91 dF91bmxvY2s7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPj4+IMKgCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGFuZV9jb3VudCA9IG1pbl90KGludCwg bWdyLT5kcGNkWzJdICYKPj4+IERQX01BWF9MQU5FX0NPVU5UX01BU0ssIG1nci0+bWF4X2xhbmVf Y291bnQpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxpbmtfcmF0ZSA9IG1p bl90KGludCwgbWdyLT5kcGNkWzFdLCBtZ3ItPm1heF9saW5rX3JhdGUpOwo+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtZ3ItPnBibl9kaXYgPSBkcm1fZHBfZ2V0X3ZjX3BheWxv YWRfYncobWdyLAo+Pj4gLQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBkcm1fZHBfYndfY29kZV90b19saW5rCj4+PiBfcmF0ZShtZ3ItPmRw Y2RbMV0pLAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgbWdyLT5kcGNkWzJdICYKPj4+IERQX01BWF9MQU5FX0NPVU5UX01BU0spOwo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZHJt X2RwX2J3X2NvZGVfdG9fbGkKPj4+IG5rX3JhdGUobGlua19yYXRlKSwKPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxhbmVfY291bnQpOwo+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAobWdyLT5wYm5fZGl2ID09IDAp IHsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJl dCA9IC1FSU5WQUw7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBnb3RvIG91dF91bmxvY2s7Cj4+PiBAQCAtNTQ0OCwxNCArNTQ1MywxNyBAQCBFWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfZ2V0X21zdF90b3BvbG9neV9zdGF0ZSk7Cj4+PiDCoCAqIEBh dXg6IERQIGhlbHBlciBhdXggY2hhbm5lbCB0byB0YWxrIHRvIHRoaXMgZGV2aWNlCj4+PiDCoCAq IEBtYXhfZHBjZF90cmFuc2FjdGlvbl9ieXRlczogaHcgc3BlY2lmaWMgRFBDRCB0cmFuc2FjdGlv biBsaW1pdAo+Pj4gwqAgKiBAbWF4X3BheWxvYWRzOiBtYXhpbXVtIG51bWJlciBvZiBwYXlsb2Fk cyB0aGlzIEdQVSBjYW4gc291cmNlCj4+PiArICogQG1heF9sYW5lX2NvdW50OiBtYXhpbXVtIG51 bWJlciBvZiBsYW5lcyB0aGlzIEdQVSBzdXBwb3J0cwo+Pj4gKyAqIEBtYXhfbGlua19yYXRlOiBt YXhpbXVtIGxpbmsgcmF0ZSB0aGlzIEdQVSBzdXBwb3J0cywgdW5pdHMgYXMgaW4gRFBDRAo+Pj4g wqAgKiBAY29ubl9iYXNlX2lkOiB0aGUgY29ubmVjdG9yIG9iamVjdCBJRCB0aGUgTVNUIGRldmlj ZSBpcyBjb25uZWN0ZWQgdG8uCj4+PiDCoCAqCj4+PiDCoCAqIFJldHVybiAwIGZvciBzdWNjZXNz LCBvciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUKPj4+IMKgICovCj4+PiDCoGludCBk cm1fZHBfbXN0X3RvcG9sb2d5X21ncl9pbml0KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2Rw X2F1eAo+Pj4gKmF1eCwKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgbWF4X2RwY2RfdHJhbnNhY3Rpb25fYnl0ZXMs Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaW50IG1heF9wYXlsb2FkcywgaW50IGNvbm5fYmFzZV9pZCkKPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBpbnQgbWF4X2RwY2RfdHJhbnNhY3Rpb25fYnl0ZXMsIGludAo+Pj4gbWF4X3BheWxvYWRzLAo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGludCBtYXhfbGFuZV9jb3VudCwgaW50IG1heF9saW5rX3JhdGUsCj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaW50IGNvbm5fYmFzZV9pZCkKPj4+IMKgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoHN0cnVjdCBk cm1fZHBfbXN0X3RvcG9sb2d5X3N0YXRlICptc3Rfc3RhdGU7Cj4+PiDCoAo+Pj4gQEAgLTU0OTAs NiArNTQ5OCw4IEBAIGludCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9pbml0KHN0cnVjdAo+Pj4g ZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwKPj4+IMKgwqDCoMKgwqDCoMKgwqBtZ3ItPmF1 eCA9IGF1eDsKPj4+IMKgwqDCoMKgwqDCoMKgwqBtZ3ItPm1heF9kcGNkX3RyYW5zYWN0aW9uX2J5 dGVzID0gbWF4X2RwY2RfdHJhbnNhY3Rpb25fYnl0ZXM7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgbWdy LT5tYXhfcGF5bG9hZHMgPSBtYXhfcGF5bG9hZHM7Cj4+PiArwqDCoMKgwqDCoMKgwqBtZ3ItPm1h eF9sYW5lX2NvdW50ID0gbWF4X2xhbmVfY291bnQ7Cj4+PiArwqDCoMKgwqDCoMKgwqBtZ3ItPm1h eF9saW5rX3JhdGUgPSBtYXhfbGlua19yYXRlOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoG1nci0+Y29u bl9iYXNlX2lkID0gY29ubl9iYXNlX2lkOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoGlmIChtYXhfcGF5 bG9hZHMgKyAxID4gc2l6ZW9mKG1nci0+cGF5bG9hZF9tYXNrKSAqIDggfHwKPj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWF4X3BheWxvYWRzICsgMSA+IHNpemVvZihtZ3ItPnZjcGlfbWFzaykg KiA4KQo+Pj4gQEAgLTU4OTYsMTQgKzU5MDYsMTMgQEAgc3RydWN0IGRybV9kcF9hdXgKPj4+ICpk cm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCkK Pj4+IMKgwqDCoMKgwqDCoMKgwqBpZiAoZHJtX2RwX2hhc19xdWlyaygmZGVzYywgRFBfRFBDRF9R VUlSS19EU0NfV0lUSE9VVF9WSVJUVUFMX0RQQ0QpCj4+PiAmJgo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBwb3J0LT5tZ3ItPmRwY2RbRFBfRFBDRF9SRVZdID49IERQX0RQQ0RfUkVWXzE0ICYm Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBvcnQtPnBhcmVudCA9PSBwb3J0LT5tZ3ItPm1z dF9wcmltYXJ5KSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTggZG93bnN0 cmVhbXBvcnQ7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTggZHBjZF9leHRb RFBfUkVDRUlWRVJfQ0FQX1NJWkVdOwo+Pj4gwqAKPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBpZiAoZHJtX2RwX2RwY2RfcmVhZCgmcG9ydC0+YXV4LCBEUF9ET1dOU1RSRUFNUE9S VF9QUkVTRU5ULAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmRvd25zdHJlYW1wb3J0LCAxKSA8IDApCj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGRybV9kcF9yZWFkX2RwY2RfY2Fw cyhwb3J0LT5tZ3ItPmF1eCwgZHBjZF9leHQpIDwgMCkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBOVUxMOwo+Pj4gwqAKPj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoKGRvd25zdHJlYW1wb3J0ICYgRFBfRFdOX1NU Uk1fUE9SVF9QUkVTRU5UKSAmJgo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKChkb3duc3RyZWFtcG9ydCAmIERQX0RXTl9TVFJNX1BPUlRfVFlQRV9NQVNLKQo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmICgoZHBjZF9leHRbRFBfRE9XTlNUUkVBTVBP UlRfUFJFU0VOVF0gJgo+Pj4gRFBfRFdOX1NUUk1fUE9SVF9QUkVTRU5UKSAmJgo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoKGRwY2RfZXh0W0RQX0RPV05TVFJFQU1Q T1JUX1BSRVNFTlRdICYKPj4+IERQX0RXTl9TVFJNX1BPUlRfVFlQRV9NQVNLKQo+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAhPSBEUF9EV05fU1RSTV9QT1JUX1RZ UEVfQU5BTE9HKSkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiBwb3J0LT5tZ3ItPmF1eDsKPj4+IMKgwqDCoMKgwqDCoMKgwqB9Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4+PiBpbmRl eCA4NjAzODFkNjhkOWQuLmE0MjQ1ZWI0OGVmNCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPj4+IEBAIC05NDIsNiArOTQyLDcgQEAgaW50 ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4+PiAqZGln X3BvcnQsIGludCBjb25uX2Jhc2VfaWQpCj4+PiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9ICZkaWdfcG9ydC0+ZHA7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgZW51bSBw b3J0IHBvcnQgPSBkaWdfcG9ydC0+YmFzZS5wb3J0Owo+Pj4gwqDCoMKgwqDCoMKgwqDCoGludCBy ZXQ7Cj4+PiArwqDCoMKgwqDCoMKgwqBpbnQgYmlvc19tYXhfbGlua19yYXRlOwo+Pj4gwqAKPj4+ IMKgwqDCoMKgwqDCoMKgwqBpZiAoIUhBU19EUF9NU1QoaTkxNSkgfHwgaW50ZWxfZHBfaXNfZWRw KGludGVsX2RwKSkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7 Cj4+PiBAQCAtOTU2LDggKzk1NywxMSBAQCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQKPj4+ICpkaWdfcG9ydCwgaW50IGNvbm5fYmFzZV9pZCkKPj4+ IMKgCj4+PiDCoMKgwqDCoMKgwqDCoMKgLyogY3JlYXRlIGVuY29kZXJzICovCj4+PiDCoMKgwqDC oMKgwqDCoMKgaW50ZWxfZHBfY3JlYXRlX2Zha2VfbXN0X2VuY29kZXJzKGRpZ19wb3J0KTsKPj4+ ICvCoMKgwqDCoMKgwqDCoGJpb3NfbWF4X2xpbmtfcmF0ZSA9IGludGVsX2Jpb3NfZHBfbWF4X2xp bmtfcmF0ZSgmZGlnX3BvcnQtPmJhc2UpOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoHJldCA9IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyX2luaXQoJmludGVsX2RwLT5tc3RfbWdyLCAmaTkxNS0+ZHJtLAo+ Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmludGVsX2RwLT5hdXgsIDE2LCAzLAo+Pj4g Y29ubl9iYXNlX2lkKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZpbnRlbF9kcC0+ YXV4LCAxNiwgMywKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRpZ19wb3J0LT5tYXhf bGFuZXMsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBiaW9zX21heF9saW5rX3JhdGUg LyAyNzAwMCwKPj4+IGNvbm5fYmFzZV9pZCk7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgaWYgKHJldCkK Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIHJldDsKPj4+IMKgCj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCj4+ PiBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3AuYwo+Pj4gaW5kZXggMWM5 YzBjZGY4NWRiLi5lMDJmOWQyZDc0ZWIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L2Rpc3BudjUwL2Rpc3AuYwo+Pj4gQEAgLTE2MTcsNyArMTYxNyw4IEBAIG52NTBfbXN0bV9uZXco c3RydWN0IG5vdXZlYXVfZW5jb2RlciAqb3V0cCwgc3RydWN0Cj4+PiBkcm1fZHBfYXV4ICphdXgs IGludCBhdXhfbWF4LAo+Pj4gwqDCoMKgwqDCoMKgwqDCoG1zdG0tPm1nci5jYnMgPSAmbnY1MF9t c3RtOwo+Pj4gwqAKPj4+IMKgwqDCoMKgwqDCoMKgwqByZXQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5 X21ncl9pbml0KCZtc3RtLT5tZ3IsIGRldiwgYXV4LCBhdXhfbWF4LAo+Pj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWF4X3BheWxvYWRzLCBjb25uX2Jhc2VfaWQpOwo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgbWF4X3BheWxvYWRzLCBvdXRwLT5kY2ItCj4+PiA+ZHBjb25mLmxp bmtfbnIsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvdXRwLT5kY2ItPmRwY29uZi5s aW5rX2J3LAo+Pj4gY29ubl9iYXNlX2lkKTsKPj4+IMKgwqDCoMKgwqDCoMKgwqBpZiAocmV0KQo+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmV0Owo+Pj4gwqAKPj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcF9tc3QuYwo+Pj4g Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcF9tc3QuYwo+Pj4gaW5kZXggNTljZjFk Mjg4NDY1Li44ZjBiMmRjY2QxOTkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9kcF9tc3QuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fZHBfbXN0LmMKPj4+IEBAIC02MjksMTMgKzYyOSwyMCBAQCBpbnQKPj4+IMKgcmFkZW9uX2Rw X21zdF9pbml0KHN0cnVjdCByYWRlb25fY29ubmVjdG9yICpyYWRlb25fY29ubmVjdG9yKQo+Pj4g wqB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJhZGVvbl9j b25uZWN0b3ItPmJhc2UuZGV2Owo+Pj4gK8KgwqDCoMKgwqDCoMKgaW50IG1heF9saW5rX3JhdGU7 Cj4+PiDCoAo+Pj4gwqDCoMKgwqDCoMKgwqDCoGlmICghcmFkZW9uX2Nvbm5lY3Rvci0+ZGRjX2J1 cy0+aGFzX2F1eCkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDA7 Cj4+PiDCoAo+Pj4gK8KgwqDCoMKgwqDCoMKgaWYgKHJhZGVvbl9jb25uZWN0b3JfaXNfZHAxMl9j YXBhYmxlKCZyYWRlb25fY29ubmVjdG9yLT5iYXNlKSkKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBtYXhfbGlua19yYXRlID0gMHgxNDsKPj4+ICvCoMKgwqDCoMKgwqDCoGVsc2UK Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBtYXhfbGlua19yYXRlID0gMHgwYTsK Pj4+ICsKPj4+IMKgwqDCoMKgwqDCoMKgwqByYWRlb25fY29ubmVjdG9yLT5tc3RfbWdyLmNicyA9 ICZtc3RfY2JzOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoHJldHVybiBkcm1fZHBfbXN0X3RvcG9sb2d5 X21ncl9pbml0KCZyYWRlb25fY29ubmVjdG9yLT5tc3RfbWdyLCBkZXYsCj4+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAmcmFkZW9uX2Nvbm5lY3Rvci0+ZGRjX2J1cy0+YXV4LAo+Pj4g MTYsIDYsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDQsIG1heF9saW5rX3JhdGUs Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByYWRlb25fY29ubmVjdG9yLT5iYXNl LmJhc2UuaWQpOwo+Pj4gwqB9Cj4+PiDCoAo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9kcF9tc3RfaGVscGVyLmgKPj4+IGIvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaAo+ Pj4gaW5kZXggMjBkYzcwNTY0MmJkLi5iNWIwYmYzNzgxM2IgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNs dWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fZHBf bXN0X2hlbHBlci5oCj4+PiBAQCAtNTkzLDYgKzU5MywxNCBAQCBzdHJ1Y3QgZHJtX2RwX21zdF90 b3BvbG9neV9tZ3Igewo+Pj4gwqDCoMKgwqDCoMKgwqDCoCAqIEBtYXhfcGF5bG9hZHM6IG1heGlt dW0gbnVtYmVyIG9mIHBheWxvYWRzIHRoZSBHUFUgY2FuIGdlbmVyYXRlLgo+Pj4gwqDCoMKgwqDC oMKgwqDCoCAqLwo+Pj4gwqDCoMKgwqDCoMKgwqDCoGludCBtYXhfcGF5bG9hZHM7Cj4+PiArwqDC oMKgwqDCoMKgwqAvKioKPj4+ICvCoMKgwqDCoMKgwqDCoCAqIEBtYXhfbGFuZV9jb3VudDogbWF4 aW11bSBudW1iZXIgb2YgbGFuZXMgdGhlIEdQVSBjYW4gZHJpdmUuCj4+PiArwqDCoMKgwqDCoMKg wqAgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoGludCBtYXhfbGFuZV9jb3VudDsKPj4+ICvCoMKgwqDC oMKgwqDCoC8qKgo+Pj4gK8KgwqDCoMKgwqDCoMKgICogQG1heF9saW5rX3JhdGU6IG1heGltdW0g bGluayByYXRlIHBlciBsYW5lIEdQVSBjYW4gb3V0cHV0Lgo+Pj4gK8KgwqDCoMKgwqDCoMKgICov Cj4+PiArwqDCoMKgwqDCoMKgwqBpbnQgbWF4X2xpbmtfcmF0ZTsKPj4+IMKgwqDCoMKgwqDCoMKg wqAvKioKPj4+IMKgwqDCoMKgwqDCoMKgwqAgKiBAY29ubl9iYXNlX2lkOiBEUk0gY29ubmVjdG9y IElEIHRoaXMgbWdyIGlzIGNvbm5lY3RlZCB0by4gT25seQo+Pj4gdXNlZAo+Pj4gwqDCoMKgwqDC oMKgwqDCoCAqIHRvIGJ1aWxkIHRoZSBNU1QgY29ubmVjdG9yIHBhdGggdmFsdWUuCj4+PiBAQCAt NzY1LDcgKzc3Myw5IEBAIHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciB7Cj4+PiDCoGlu dCBkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9pbml0KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5 X21nciAqbWdyLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X2RwX2F1eAo+Pj4gKmF1eCwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1heF9kcGNkX3RyYW5zYWN0aW9uX2J5 dGVzLAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGludCBtYXhfcGF5bG9hZHMsIGludCBjb25uX2Jhc2VfaWQpOwo+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGludCBtYXhfcGF5bG9hZHMsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IG1heF9sYW5lX2NvdW50LCBp bnQgbWF4X2xpbmtfcmF0ZSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgY29ubl9iYXNlX2lkKTsKPj4+IMKgCj4+ PiDCoHZvaWQgZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfZGVzdHJveShzdHJ1Y3QgZHJtX2RwX21z dF90b3BvbG9neV9tZ3IgKm1ncik7Cj4+PiDCoAoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVu IFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==