From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sivakumar Thulasimani Subject: Re: [PATCH v2 5/7] drm/i915: Move intel_dp->lane_count into pipe_config Date: Thu, 13 Aug 2015 12:30:53 +0530 Message-ID: <55CC40A5.7060503@intel.com> References: <1436184606-18729-6-git-send-email-ville.syrjala@linux.intel.com> <1436189955-22210-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 160E16E33C for ; Thu, 13 Aug 2015 00:00:27 -0700 (PDT) In-Reply-To: <1436189955-22210-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmV2aWV3ZWQtYnk6IFNpdmFrdW1hciBUaHVsYXNpbWFuaSA8c2l2YWt1bWFyLnRodWxhc2ltYW5p QGludGVsLmNvbT4KCk9uIE1vbmRheSAwNiBKdWx5IDIwMTUgMDc6MDkgUE0sIHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tIHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPiBDdXJyZW50bHkgd2UgY2xvYmJlciBpbnRlbF9k cC0+bGFuZV9jb3VudCBpbiBjb21wdXRlIGNvbmZpZywgd2hpY2ggbWVhbnMKPiBhZnRlciBhIHJl amVjdGVkIG1vZGVzZXQgd2UgbWF5IG5vIGxvbmdlciBiZSBhYmxlIHRvIHJldHJhaW4gdGhlIGN1 cnJlbnQKPiBsaW5rLiBNb3ZlIGxhbmVfY291bnQgaW50byBwaXBlX2NvbmZpZyB0byBhdm9pZCB0 aGF0Lgo+Cj4gdjI6IEFkZCBtaXNzaW5nICc6JyB0byB0aGUgcGlwZSBjb25maWcgZGVidWcgZHVt cAo+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAg ICB8ICAzICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAxMCAr KystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICA3ICsrKy0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCA2MCArKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX21zdC5jICB8ICA2ICsrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICB8ICAzICstCj4gICA2IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDI4IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggZDVjNzk0YS4uZjVk Yzc1YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC00MDk2LDYgKzQwOTYsNyBA QCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiAgIC8qIEhvdyBtYW55IHdpcmVzIHRvIHVz ZS4gSSBndWVzcyAzIHdhcyB0b28gaGFyZCAqLwo+ICAgI2RlZmluZSAgIERQX1BPUlRfV0lEVEgo d2lkdGgpCQkoKCh3aWR0aCkgLSAxKSA8PCAxOSkKPiAgICNkZWZpbmUgICBEUF9QT1JUX1dJRFRI X01BU0sJCSg3IDw8IDE5KQo+ICsjZGVmaW5lICAgRFBfUE9SVF9XSURUSF9TSElGVAkJMTkKPiAg IAo+ICAgLyogTXlzdGljIERQQ0QgdmVyc2lvbiAxLjEgc3BlY2lhbCBtb2RlICovCj4gICAjZGVm aW5lICAgRFBfRU5IQU5DRURfRlJBTUlORwkJKDEgPDwgMTgpCj4gQEAgLTcxMjgsNiArNzEyOSw4 IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAgI2RlZmluZSAgRERJX0JVRl9JU19J RExFCQkJKDE8PDcpCj4gICAjZGVmaW5lICBERElfQV80X0xBTkVTCQkJCSgxPDw0KQo+ICAgI2Rl ZmluZSAgRERJX1BPUlRfV0lEVEgod2lkdGgpCQkJKCgod2lkdGgpIC0gMSkgPDwgMSkKPiArI2Rl ZmluZSAgRERJX1BPUlRfV0lEVEhfTUFTSwkJCSg3IDw8IDEpCj4gKyNkZWZpbmUgIERESV9QT1JU X1dJRFRIX1NISUZUCQkJMQo+ICAgI2RlZmluZSAgRERJX0lOSVRfRElTUExBWV9ERVRFQ1RFRAkJ KDE8PDApCj4gICAKPiAgIC8qIERESSBCdWZmZXIgVHJhbnNsYXRpb25zICovCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA5NmZiNDcyLi44ZGY1OTZkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiBAQCAtNzIzLDExICs3MjMsMTEgQEAgdm9pZCBpbnRlbF9kZGlfaW5p dF9kcF9idWZfcmVnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICAg CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiAgIAkJZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ICAgCj4gICAJaW50ZWxfZHAtPkRQ ID0gaW50ZWxfZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8Cj4gICAJCURESV9CVUZfQ1RMX0VO QUJMRSB8IERESV9CVUZfVFJBTlNfU0VMRUNUKDApOwo+IC0JaW50ZWxfZHAtPkRQIHw9IERESV9Q T1JUX1dJRFRIKGludGVsX2RwLT5sYW5lX2NvdW50KTsKPiAtCj4gKwlpbnRlbF9kcC0+RFAgfD0g RERJX1BPUlRfV0lEVEgoY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50KTsKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVyICoKPiBAQCAtMTkxMyw3ICsxOTEzLDcgQEAgdm9p ZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gICAJCX0gZWxzZQo+ICAgCQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfU1NU Owo+ICAgCj4gLQkJdGVtcCB8PSBERElfUE9SVF9XSURUSChpbnRlbF9kcC0+bGFuZV9jb3VudCk7 Cj4gKwkJdGVtcCB8PSBERElfUE9SVF9XSURUSChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291 bnQpOwo+ICAgCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKSB7Cj4gICAJ CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmZW5jX3RvX21zdChlbmNvZGVyKS0+cHJpbWFy eS0+ZHA7Cj4gICAKPiBAQCAtMTkyMiw3ICsxOTIyLDcgQEAgdm9pZCBpbnRlbF9kZGlfZW5hYmxl X3RyYW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gICAJCX0gZWxzZQo+ICAg CQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfU1NUOwo+ICAgCj4gLQkJdGVtcCB8 PSBERElfUE9SVF9XSURUSChpbnRlbF9kcC0+bGFuZV9jb3VudCk7Cj4gKwkJdGVtcCB8PSBERElf UE9SVF9XSURUSChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQpOwo+ICAgCX0gZWxzZSB7 Cj4gICAJCVdBUk4oMSwgIkludmFsaWQgZW5jb2RlciB0eXBlICVkIGZvciBwaXBlICVjXG4iLAo+ ICAgCQkgICAgIGludGVsX2VuY29kZXItPnR5cGUsIHBpcGVfbmFtZShwaXBlKSk7Cj4gQEAgLTMw NzIsNiArMzA3Miw4IEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gICAJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfU1NUOgo+ ICAgCWNhc2UgVFJBTlNfRERJX01PREVfU0VMRUNUX0RQX01TVDoKPiAgIAkJcGlwZV9jb25maWct Pmhhc19kcF9lbmNvZGVyID0gdHJ1ZTsKPiArCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9Cj4g KwkJCSgodGVtcCAmIERESV9QT1JUX1dJRFRIX01BU0spID4+IERESV9QT1JUX1dJRFRIX1NISUZU KSArIDE7Cj4gICAJCWludGVsX2RwX2dldF9tX24oaW50ZWxfY3J0YywgcGlwZV9jb25maWcpOwo+ ICAgCQlicmVhazsKPiAgIAlkZWZhdWx0Ogo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiBpbmRleCAxMzZiNTMzLi5kNTY5NzNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC0xMTk4MSwxNCArMTE5ODEsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHVtcF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgIAkJICAgICAgcGlw ZV9jb25maWctPmZkaV9tX24uZ21jaF9tLCBwaXBlX2NvbmZpZy0+ZmRpX21fbi5nbWNoX24sCj4g ICAJCSAgICAgIHBpcGVfY29uZmlnLT5mZGlfbV9uLmxpbmtfbSwgcGlwZV9jb25maWctPmZkaV9t X24ubGlua19uLAo+ICAgCQkgICAgICBwaXBlX2NvbmZpZy0+ZmRpX21fbi50dSk7Cj4gLQlEUk1f REVCVUdfS01TKCJkcDogJWksIGdtY2hfbTogJXUsIGdtY2hfbjogJXUsIGxpbmtfbTogJXUsIGxp bmtfbjogJXUsIHR1OiAldVxuIiwKPiArCURSTV9ERUJVR19LTVMoImRwOiAlaSwgbGFuZXM6ICVp LCBnbWNoX206ICV1LCBnbWNoX246ICV1LCBsaW5rX206ICV1LCBsaW5rX246ICV1LCB0dTogJXVc biIsCj4gICAJCSAgICAgIHBpcGVfY29uZmlnLT5oYXNfZHBfZW5jb2RlciwKPiArCQkgICAgICBw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiAgIAkJICAgICAgcGlwZV9jb25maWctPmRwX21fbi5n bWNoX20sIHBpcGVfY29uZmlnLT5kcF9tX24uZ21jaF9uLAo+ICAgCQkgICAgICBwaXBlX2NvbmZp Zy0+ZHBfbV9uLmxpbmtfbSwgcGlwZV9jb25maWctPmRwX21fbi5saW5rX24sCj4gICAJCSAgICAg IHBpcGVfY29uZmlnLT5kcF9tX24udHUpOwo+ICAgCj4gLQlEUk1fREVCVUdfS01TKCJkcDogJWks IGdtY2hfbTI6ICV1LCBnbWNoX24yOiAldSwgbGlua19tMjogJXUsIGxpbmtfbjI6ICV1LCB0dTI6 ICV1XG4iLAo+ICsJRFJNX0RFQlVHX0tNUygiZHA6ICVpLCBsYW5lczogJWksIGdtY2hfbTI6ICV1 LCBnbWNoX24yOiAldSwgbGlua19tMjogJXUsIGxpbmtfbjI6ICV1LCB0dTI6ICV1XG4iLAo+ICAg CQkgICAgICBwaXBlX2NvbmZpZy0+aGFzX2RwX2VuY29kZXIsCj4gKwkJICAgICAgcGlwZV9jb25m aWctPmxhbmVfY291bnQsCj4gICAJCSAgICAgIHBpcGVfY29uZmlnLT5kcF9tMl9uMi5nbWNoX20s Cj4gICAJCSAgICAgIHBpcGVfY29uZmlnLT5kcF9tMl9uMi5nbWNoX24sCj4gICAJCSAgICAgIHBp cGVfY29uZmlnLT5kcF9tMl9uMi5saW5rX20sCj4gQEAgLTEyNDU2LDYgKzEyNDU4LDcgQEAgaW50 ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCVBJUEVf Q09ORl9DSEVDS19JKGZkaV9tX24udHUpOwo+ICAgCj4gICAJUElQRV9DT05GX0NIRUNLX0koaGFz X2RwX2VuY29kZXIpOwo+ICsJUElQRV9DT05GX0NIRUNLX0kobGFuZV9jb3VudCk7Cj4gICAKPiAg IAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA4KSB7Cj4gICAJCVBJUEVfQ09ORl9DSEVDS19J KGRwX21fbi5nbWNoX20pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGI2YmEwMmUu LmRhMDM2ZTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMTQ2Miw3ICsxNDYy LDcgQEAgZm91bmQ6Cj4gICAJCQlpbnRlbF9kcC0+bGltaXRlZF9jb2xvcl9yYW5nZTsKPiAgIAl9 Cj4gICAKPiAtCWludGVsX2RwLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiArCXBpcGVfY29u ZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiAgIAo+ICAgCWlmIChpbnRlbF9kcC0+bnVt X3NpbmtfcmF0ZXMpIHsKPiAgIAkJaW50ZWxfZHAtPmxpbmtfYncgPSAwOwo+IEBAIC0xNDc4LDcg KzE0NzgsNyBAQCBmb3VuZDoKPiAgIAlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGNvbW1vbl9y YXRlc1tjbG9ja107Cj4gICAKPiAgIAlEUk1fREVCVUdfS01TKCJEUCBsaW5rIGJ3ICUwMnggbGFu ZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gLQkJICAgICAgaW50ZWxfZHAtPmxpbmtf YncsIGludGVsX2RwLT5sYW5lX2NvdW50LAo+ICsJCSAgICAgIGludGVsX2RwLT5saW5rX2J3LCBw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCwKPiAgIAkJICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xv Y2ssIGJwcCk7Cj4gICAJRFJNX0RFQlVHX0tNUygiRFAgbGluayBidyByZXF1aXJlZCAlaSBhdmFp bGFibGUgJWlcbiIsCj4gICAJCSAgICAgIG1vZGVfcmF0ZSwgbGlua19hdmFpbCk7Cj4gQEAgLTE1 NzMsNyArMTU3Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3ByZXBhcmUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCj4gICAKPiAgIAkvKiBIYW5kbGUgRFAgYml0cyBpbiBjb21tb24g YmV0d2VlbiBhbGwgdGhyZWUgcmVnaXN0ZXIgZm9ybWF0cyAqLwo+ICAgCWludGVsX2RwLT5EUCB8 PSBEUF9WT0xUQUdFXzBfNCB8IERQX1BSRV9FTVBIQVNJU18wOwo+IC0JaW50ZWxfZHAtPkRQIHw9 IERQX1BPUlRfV0lEVEgoaW50ZWxfZHAtPmxhbmVfY291bnQpOwo+ICsJaW50ZWxfZHAtPkRQIHw9 IERQX1BPUlRfV0lEVEgoY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50KTsKPiAgIAo+ICAgCWlmIChj cnRjLT5jb25maWctPmhhc19hdWRpbykKPiAgIAkJaW50ZWxfZHAtPkRQIHw9IERQX0FVRElPX09V VFBVVF9FTkFCTEU7Cj4gQEAgLTIyNzYsNiArMjI3Niw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rw X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAKPiAgIAlwaXBl X2NvbmZpZy0+aGFzX2RwX2VuY29kZXIgPSB0cnVlOwo+ICAgCj4gKwlwaXBlX2NvbmZpZy0+bGFu ZV9jb3VudCA9Cj4gKwkJKCh0bXAgJiBEUF9QT1JUX1dJRFRIX01BU0spID4+IERQX1BPUlRfV0lE VEhfU0hJRlQpICsgMTsKPiArCj4gICAJaW50ZWxfZHBfZ2V0X21fbihjcnRjLCBwaXBlX2NvbmZp Zyk7Cj4gICAKPiAgIAlpZiAocG9ydCA9PSBQT1JUX0EpIHsKPiBAQCAtMzMwMSwxMyArMzMwNCwx NSBAQCBzdGF0aWMgdm9pZAo+ICAgaW50ZWxfZ2V0X2FkanVzdF90cmFpbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAo+ICAgCQkgICAgICAgY29uc3QgdWludDhfdCBsaW5rX3N0YXR1c1tEUF9M SU5LX1NUQVRVU19TSVpFXSkKPiAgIHsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0KPiAr CQl0b19pbnRlbF9jcnRjKGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5iYXNlLmNydGMp Owo+ICAgCXVpbnQ4X3QgdiA9IDA7Cj4gICAJdWludDhfdCBwID0gMDsKPiAgIAlpbnQgbGFuZTsK PiAgIAl1aW50OF90IHZvbHRhZ2VfbWF4Owo+ICAgCXVpbnQ4X3QgcHJlZW1waF9tYXg7Cj4gICAK PiAtCWZvciAobGFuZSA9IDA7IGxhbmUgPCBpbnRlbF9kcC0+bGFuZV9jb3VudDsgbGFuZSsrKSB7 Cj4gKwlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50OyBsYW5l KyspIHsKPiAgIAkJdWludDhfdCB0aGlzX3YgPSBkcm1fZHBfZ2V0X2FkanVzdF9yZXF1ZXN0X3Zv bHRhZ2UobGlua19zdGF0dXMsIGxhbmUpOwo+ICAgCQl1aW50OF90IHRoaXNfcCA9IGRybV9kcF9n ZXRfYWRqdXN0X3JlcXVlc3RfcHJlX2VtcGhhc2lzKGxpbmtfc3RhdHVzLCBsYW5lKTsKPiAgIAo+ IEBAIC0zNDc2LDggKzM0ODEsMTAgQEAgaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKPiAgIAkJCXVpbnQ4X3QgZHBfdHJhaW5fcGF0KQo+ICAgewo+ICAg CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 Cj4gKwkJdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9Cj4gKwkJdG9faW50ZWxfY3J0YyhpbnRlbF9kaWdfcG9ydC0+YmFz ZS5iYXNlLmNydGMpOwo+ICAgCXVpbnQ4X3QgYnVmW3NpemVvZihpbnRlbF9kcC0+dHJhaW5fc2V0 KSArIDFdOwo+ICAgCWludCByZXQsIGxlbjsKPiAgIAo+IEBAIC0zNDkzLDggKzM1MDAsOCBAQCBp bnRlbF9kcF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAgCQls ZW4gPSAxOwo+ICAgCX0gZWxzZSB7Cj4gICAJCS8qIERQX1RSQUlOSU5HX0xBTkV4X1NFVCBmb2xs b3cgRFBfVFJBSU5JTkdfUEFUVEVSTl9TRVQgKi8KPiAtCQltZW1jcHkoYnVmICsgMSwgaW50ZWxf ZHAtPnRyYWluX3NldCwgaW50ZWxfZHAtPmxhbmVfY291bnQpOwo+IC0JCWxlbiA9IGludGVsX2Rw LT5sYW5lX2NvdW50ICsgMTsKPiArCQltZW1jcHkoYnVmICsgMSwgaW50ZWxfZHAtPnRyYWluX3Nl dCwgY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50KTsKPiArCQlsZW4gPSBjcnRjLT5jb25maWctPmxh bmVfY291bnQgKyAxOwo+ICAgCX0KPiAgIAo+ICAgCXJldCA9IGRybV9kcF9kcGNkX3dyaXRlKCZp bnRlbF9kcC0+YXV4LCBEUF9UUkFJTklOR19QQVRURVJOX1NFVCwKPiBAQCAtMzUxOCw4ICszNTI1 LDEwIEBAIGludGVsX2RwX3VwZGF0ZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIHVpbnQzMl90ICpEUCwKPiAgIAkJCSAgIGNvbnN0IHVpbnQ4X3QgbGlua19zdGF0dXNbRFBf TElOS19TVEFUVVNfU0laRV0pCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiArCQl0b19pOTE1KGludGVsX2RpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0KPiArCQl0b19p bnRlbF9jcnRjKGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuY3J0Yyk7Cj4gICAJaW50IHJldDsK PiAgIAo+ICAgCWludGVsX2dldF9hZGp1c3RfdHJhaW4oaW50ZWxfZHAsIGxpbmtfc3RhdHVzKTsK PiBAQCAtMzUyOSw5ICszNTM4LDkgQEAgaW50ZWxfZHBfdXBkYXRlX2xpbmtfdHJhaW4oc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgdWludDMyX3QgKkRQLAo+ICAgCVBPU1RJTkdfUkVBRChpbnRl bF9kcC0+b3V0cHV0X3JlZyk7Cj4gICAKPiAgIAlyZXQgPSBkcm1fZHBfZHBjZF93cml0ZSgmaW50 ZWxfZHAtPmF1eCwgRFBfVFJBSU5JTkdfTEFORTBfU0VULAo+IC0JCQkJaW50ZWxfZHAtPnRyYWlu X3NldCwgaW50ZWxfZHAtPmxhbmVfY291bnQpOwo+ICsJCQkJaW50ZWxfZHAtPnRyYWluX3NldCwg Y3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50KTsKPiAgIAo+IC0JcmV0dXJuIHJldCA9PSBpbnRlbF9k cC0+bGFuZV9jb3VudDsKPiArCXJldHVybiByZXQgPT0gY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50 Owo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9kcF9zZXRfaWRsZV9saW5rX3RyYWlu KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gQEAgLTM1NzAsNiArMzU3OSw4IEBAIHZvaWQK PiAgIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApLT5iYXNlLmJhc2U7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9Cj4gKwkJ dG9faW50ZWxfY3J0YyhkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UuYmFzZS5jcnRjKTsK PiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAgCWludCBpOwo+ ICAgCXVpbnQ4X3Qgdm9sdGFnZTsKPiBAQCAtMzU4Miw3ICszNTkzLDcgQEAgaW50ZWxfZHBfc3Rh cnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgCj4gICAJLyogV3Jp dGUgdGhlIGxpbmsgY29uZmlndXJhdGlvbiBkYXRhICovCj4gICAJbGlua19jb25maWdbMF0gPSBp bnRlbF9kcC0+bGlua19idzsKPiAtCWxpbmtfY29uZmlnWzFdID0gaW50ZWxfZHAtPmxhbmVfY291 bnQ7Cj4gKwlsaW5rX2NvbmZpZ1sxXSA9IGNydGMtPmNvbmZpZy0+bGFuZV9jb3VudDsKPiAgIAlp ZiAoZHJtX2RwX2VuaGFuY2VkX2ZyYW1lX2NhcChpbnRlbF9kcC0+ZHBjZCkpCj4gICAJCWxpbmtf Y29uZmlnWzFdIHw9IERQX0xBTkVfQ09VTlRfRU5IQU5DRURfRlJBTUVfRU47Cj4gICAJZHJtX2Rw X2RwY2Rfd3JpdGUoJmludGVsX2RwLT5hdXgsIERQX0xJTktfQldfU0VULCBsaW5rX2NvbmZpZywg Mik7Cj4gQEAgLTM2MTYsNyArMzYyNyw3IEBAIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgIAkJCWJyZWFrOwo+ICAgCQl9Cj4gICAKPiAtCQlp ZiAoZHJtX2RwX2Nsb2NrX3JlY292ZXJ5X29rKGxpbmtfc3RhdHVzLCBpbnRlbF9kcC0+bGFuZV9j b3VudCkpIHsKPiArCQlpZiAoZHJtX2RwX2Nsb2NrX3JlY292ZXJ5X29rKGxpbmtfc3RhdHVzLCBj cnRjLT5jb25maWctPmxhbmVfY291bnQpKSB7Cj4gICAJCQlEUk1fREVCVUdfS01TKCJjbG9jayBy ZWNvdmVyeSBPS1xuIik7Cj4gICAJCQlicmVhazsKPiAgIAkJfQo+IEBAIC0zNjM5LDEwICszNjUw LDEwIEBAIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKPiAgIAkJfQo+ICAgCj4gICAJCS8qIENoZWNrIHRvIHNlZSBpZiB3ZSd2ZSB0cmllZCB0aGUg bWF4IHZvbHRhZ2UgKi8KPiAtCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfZHAtPmxhbmVfY291bnQ7 IGkrKykKPiArCQlmb3IgKGkgPSAwOyBpIDwgY3J0Yy0+Y29uZmlnLT5sYW5lX2NvdW50OyBpKysp Cj4gICAJCQlpZiAoKGludGVsX2RwLT50cmFpbl9zZXRbaV0gJiBEUF9UUkFJTl9NQVhfU1dJTkdf UkVBQ0hFRCkgPT0gMCkKPiAgIAkJCQlicmVhazsKPiAtCQlpZiAoaSA9PSBpbnRlbF9kcC0+bGFu ZV9jb3VudCkgewo+ICsJCWlmIChpID09IGNydGMtPmNvbmZpZy0+bGFuZV9jb3VudCkgewo+ICAg CQkJKytsb29wX3RyaWVzOwo+ICAgCQkJaWYgKGxvb3BfdHJpZXMgPT0gNSkgewo+ICAgCQkJCURS TV9FUlJPUigidG9vIG1hbnkgZnVsbCByZXRyaWVzLCBnaXZlIHVwXG4iKTsKPiBAQCAtMzY3OSw2 ICszNjkwLDggQEAgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ICAgdm9pZAo+ICAgaW50ZWxfZHBfY29tcGxldGVfbGlua190cmFpbihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ICAgewo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMgPQo+ ICsJCXRvX2ludGVsX2NydGMoZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlLmJhc2UuY3J0 Yyk7Cj4gICAJYm9vbCBjaGFubmVsX2VxID0gZmFsc2U7Cj4gICAJaW50IHRyaWVzLCBjcl90cmll czsKPiAgIAl1aW50MzJfdCBEUCA9IGludGVsX2RwLT5EUDsKPiBAQCAtMzcxNCw3ICszNzI3LDgg QEAgaW50ZWxfZHBfY29tcGxldGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ICAgCQl9Cj4gICAKPiAgIAkJLyogTWFrZSBzdXJlIGNsb2NrIGlzIHN0aWxsIG9rICovCj4g LQkJaWYgKCFkcm1fZHBfY2xvY2tfcmVjb3Zlcnlfb2sobGlua19zdGF0dXMsIGludGVsX2RwLT5s YW5lX2NvdW50KSkgewo+ICsJCWlmICghZHJtX2RwX2Nsb2NrX3JlY292ZXJ5X29rKGxpbmtfc3Rh dHVzLAo+ICsJCQkJCSAgICAgIGNydGMtPmNvbmZpZy0+bGFuZV9jb3VudCkpIHsKPiAgIAkJCWlu dGVsX2RwLT50cmFpbl9zZXRfdmFsaWQgPSBmYWxzZTsKPiAgIAkJCWludGVsX2RwX3N0YXJ0X2xp bmtfdHJhaW4oaW50ZWxfZHApOwo+ICAgCQkJaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oaW50ZWxf ZHAsICZEUCwKPiBAQCAtMzcyNCw3ICszNzM4LDggQEAgaW50ZWxfZHBfY29tcGxldGVfbGlua190 cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgCQkJY29udGludWU7Cj4gICAJCX0K PiAgIAo+IC0JCWlmIChkcm1fZHBfY2hhbm5lbF9lcV9vayhsaW5rX3N0YXR1cywgaW50ZWxfZHAt PmxhbmVfY291bnQpKSB7Cj4gKwkJaWYgKGRybV9kcF9jaGFubmVsX2VxX29rKGxpbmtfc3RhdHVz LAo+ICsJCQkJCSBjcnRjLT5jb25maWctPmxhbmVfY291bnQpKSB7Cj4gICAJCQljaGFubmVsX2Vx ID0gdHJ1ZTsKPiAgIAkJCWJyZWFrOwo+ICAgCQl9Cj4gQEAgLTQxNjgsNiArNDE4Myw4IEBAIHVw ZGF0ZV9zdGF0dXM6Cj4gICBzdGF0aWMgaW50Cj4gICBpbnRlbF9kcF9jaGVja19tc3Rfc3RhdHVz KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9Cj4gKwkJdG9faW50ZWxfY3J0YyhkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2Uu YmFzZS5jcnRjKTsKPiAgIAlib29sIGJyZXQ7Cj4gICAKPiAgIAlpZiAoaW50ZWxfZHAtPmlzX21z dCkgewo+IEBAIC00MTgwLDcgKzQxOTcsOCBAQCBnb19hZ2FpbjoKPiAgIAkJaWYgKGJyZXQgPT0g dHJ1ZSkgewo+ICAgCj4gICAJCQkvKiBjaGVjayBsaW5rIHN0YXR1cyAtIGVzaVsxMF0gPSAweDIw MGMgKi8KPiAtCQkJaWYgKGludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzICYmICFkcm1fZHBfY2hh bm5lbF9lcV9vaygmZXNpWzEwXSwgaW50ZWxfZHAtPmxhbmVfY291bnQpKSB7Cj4gKwkJCWlmIChp bnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyAmJgo+ICsJCQkgICAgIWRybV9kcF9jaGFubmVsX2Vx X29rKCZlc2lbMTBdLCBjcnRjLT5jb25maWctPmxhbmVfY291bnQpKSB7Cj4gICAJCQkJRFJNX0RF QlVHX0tNUygiY2hhbm5lbCBFUSBub3Qgb2ssIHJldHJhaW5pbmdcbiIpOwo+ICAgCQkJCWludGVs X2RwX3N0YXJ0X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ICAgCQkJCWludGVsX2RwX2NvbXBsZXRl X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+IEBAIC00MjM1LDYgKzQyNTMsOCBAQCBpbnRlbF9kcF9j aGVja19saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgewo+ICAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ICAgCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0KGludGVs X2RwKS0+YmFzZTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0KPiArCQl0b19pbnRlbF9j cnRjKGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5iYXNlLmNydGMpOwo+ICAgCXU4IHNp bmtfaXJxX3ZlY3RvcjsKPiAgIAl1OCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXTsK PiAgIAo+IEBAIC00MjczLDcgKzQyOTMsNyBAQCBpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAgCQkJRFJNX0RFQlVHX0RSSVZFUigiQ1Agb3Ig c2luayBzcGVjaWZpYyBpcnEgdW5oYW5kbGVkXG4iKTsKPiAgIAl9Cj4gICAKPiAtCWlmICghZHJt X2RwX2NoYW5uZWxfZXFfb2sobGlua19zdGF0dXMsIGludGVsX2RwLT5sYW5lX2NvdW50KSkgewo+ ICsJaWYgKCFkcm1fZHBfY2hhbm5lbF9lcV9vayhsaW5rX3N0YXR1cywgY3J0Yy0+Y29uZmlnLT5s YW5lX2NvdW50KSkgewo+ICAgCQlEUk1fREVCVUdfS01TKCIlczogY2hhbm5lbCBFUSBub3Qgb2ss IHJldHJhaW5pbmdcbiIsCj4gICAJCQkgICAgICBpbnRlbF9lbmNvZGVyLT5iYXNlLm5hbWUpOwo+ ICAgCQlpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4IDZlNGNjNTMuLmVlZGE3MzAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBib29sIGlu dGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgIAkJaW50ZWxfZHAtPnJhdGVfc2VsZWN0ID0gMDsKPiAgIAl9Cj4gICAKPiAtCWludGVsX2Rw LT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsKPiArCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0g bGFuZV9jb3VudDsKPiAgIAo+ICAgCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IDI0Owo+ICAgCXBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gcmF0ZTsKPiBAQCAtMjc2LDYgKzI3NiwxMCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kcF9tc3RfZW5jX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gICAJCWJyZWFrOwo+ICAgCX0KPiAgIAlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwo+ICsKPiArCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50 ID0KPiArCQkoKHRlbXAgJiBERElfUE9SVF9XSURUSF9NQVNLKSA+PiBERElfUE9SVF9XSURUSF9T SElGVCkgKyAxOwo+ICsKPiAgIAlpbnRlbF9kcF9nZXRfbV9uKGNydGMsIHBpcGVfY29uZmlnKTsK PiAgIAo+ICAgCWludGVsX2RkaV9jbG9ja19nZXQoJmludGVsX2RpZ19wb3J0LT5iYXNlLCBwaXBl X2NvbmZpZyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA5ODNhN2E3Li43MDNi Mzk0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNDMwLDYgKzQzMCw4IEBA IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgIAkvKiBVc2VkIGJ5IFNEVk8gKGFuZCBpZiB3 ZSBldmVyIGZpeCBpdCwgSERNSSkuICovCj4gICAJdW5zaWduZWQgcGl4ZWxfbXVsdGlwbGllcjsK PiAgIAo+ICsJdWludDhfdCBsYW5lX2NvdW50Owo+ICsKPiAgIAkvKiBQYW5lbCBmaXR0ZXIgY29u dHJvbHMgZm9yIGdlbjItZ2VuNCArIFZMViAqLwo+ICAgCXN0cnVjdCB7Cj4gICAJCXUzMiBjb250 cm9sOwo+IEBAIC03MTgsNyArNzIwLDYgQEAgc3RydWN0IGludGVsX2RwIHsKPiAgIAlib29sIGNv bG9yX3JhbmdlX2F1dG87Cj4gICAJdWludDhfdCBsaW5rX2J3Owo+ICAgCXVpbnQ4X3QgcmF0ZV9z ZWxlY3Q7Cj4gLQl1aW50OF90IGxhbmVfY291bnQ7Cj4gICAJdWludDhfdCBkcGNkW0RQX1JFQ0VJ VkVSX0NBUF9TSVpFXTsKPiAgIAl1aW50OF90IHBzcl9kcGNkW0VEUF9QU1JfUkVDRUlWRVJfQ0FQ X1NJWkVdOwo+ICAgCXVpbnQ4X3QgZG93bnN0cmVhbV9wb3J0c1tEUF9NQVhfRE9XTlNUUkVBTV9Q T1JUU107CgotLSAKcmVnYXJkcywKU2l2YWt1bWFyIFRodWxhc2ltYW5pCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=