From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 11/12] drm/i915: Extract DIMM info on cnl+ Date: Wed, 06 Mar 2019 21:48:33 +0200 Message-ID: <87ftrziy26.fsf@intel.com> References: <20190225202907.731-1-ville.syrjala@linux.intel.com> <20190225202907.731-12-ville.syrjala@linux.intel.com> <87woldb8jq.fsf@intel.com> <20190306192509.GO3888@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6A9AE6E184 for ; Wed, 6 Mar 2019 19:48:36 +0000 (UTC) In-Reply-To: <20190306192509.GO3888@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 =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwNiBNYXIgMjAxOSwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVHVlLCBNYXIgMDUsIDIwMTkgYXQgMDY6MTY6NTdQTSAr MDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IE9uIE1vbiwgMjUgRmViIDIwMTksIFZpbGxlIFN5 cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPj4gPiBGcm9tOiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiA+Cj4+ID4g V2UnbGwgbmVlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVtb3J5IGNvbmZpZ3VyYXRpb24gb24g Y25sKyB0b28uCj4+ID4gRXh0ZW5kIHRoZSBjb2RlIHRvIHBhcnNlIHRoZSBzbGlnaHRseSBjaGFu Z2VkIHJlZ2lzdGVyIGxheW91dC4KPj4gPgo+PiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCB8IDE3ICsrKysr KystCj4+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25z KC0pCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gPiBpbmRleCBlM2FhZmUyYmYz YjcuLjk1MzYxODE0YjUzMSAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiA+ IEBAIC0xMDk1LDE3ICsxMDk1LDQzIEBAIHN0YXRpYyBpbnQgc2tsX2dldF9kaW1tX3JhbmtzKHUx NiB2YWwpCj4+ID4gIAlpZiAoc2tsX2dldF9kaW1tX3NpemUodmFsKSA9PSAwKQo+PiA+ICAJCXJl dHVybiAwOwo+PiA+ICAKPj4gPiAtCXN3aXRjaCAodmFsICYgU0tMX0RSQU1fUkFOS19NQVNLKSB7 Cj4+ID4gLQljYXNlIFNLTF9EUkFNX1JBTktfU0lOR0xFOgo+PiA+IC0JY2FzZSBTS0xfRFJBTV9S QU5LX0RVQUw6Cj4+ID4gLQkJdmFsID0gKHZhbCAmIFNLTF9EUkFNX1JBTktfTUFTSykgPj4gU0tM X0RSQU1fUkFOS19TSElGVDsKPj4gPiAtCQlyZXR1cm4gdmFsICsgMTsKPj4gPiArCXZhbCA9ICh2 YWwgJiBTS0xfRFJBTV9SQU5LX01BU0spID4+IFNLTF9EUkFNX1JBTktfU0hJRlQ7Cj4+ID4gKwo+ PiA+ICsJcmV0dXJuIHZhbCArIDE7Cj4+IAo+PiBUaGlzIHBhcnQgaXMgYSBiaXQgb3V0IG9mIHBs YWNlLiBSZWJhc2UgZmFpbD8KPgo+IEF5ZS4gTW92ZWQgdG8gcGF0Y2ggMDIgd2hlcmUgaXQgYmVs b25ncy4KPgo+PiAKPj4gPiArfQo+PiA+ICsKPj4gPiArc3RhdGljIGludCBjbmxfZ2V0X2RpbW1f c2l6ZSh1MTYgdmFsKQo+PiA+ICt7Cj4+ID4gKwlyZXR1cm4gKHZhbCAmIENOTF9EUkFNX1NJWkVf TUFTSykgLyAyOwo+PiAKPj4gTXVsdGlwbGVzIG9mIDAuNSBHQi4uLiB3aGF0IGFuIG9kZCB1bml0 LiBXaGF0IGlmIHRoZXJlJ3MgYW4gb2RkIHZhbHVlPwo+Cj4gVGhlIHdvcnN0IHRoaW5nIHRoYXQg Y291bGQgaGFwcGVuIGlzIHRoYXQgdGhlIDE2IEdiIGRldGVjdGlvbgo+IGdpdmVzIHVzIHRoZSB3 cm9uZyBhbnN3ZXIuIFRoZSBvdGhlciB0aGluZyBpcyB0aGF0IHdlJ2QgcHJpbnQKPiBvdXQgdGhl IHdyb25nIHNpemUuCj4KPiBJJ20gbm90IHN1cmUgaWYgdGhlcmUgaXMgYW55IGNoYW5jZSBvZiBo YXZpbmcgc3VjaCBvZGRseSBzaXplZAo+IERSQU0gY2hpcHMgb24gYW55IG1vZGVybiBESU1NIHRo YXQgd2UnZCBoaXQgdGhpcy4gSSBkaWRuJ3QKPiByZWFsbHkgd2FudCB0byBjaGFuZ2UgZXZlcnl0 aGluZyBqdXN0IGZvciB0aGlzIGF0IHRoaXMgdGltZS4KPiBXZSBjYW4gYWx3YXlzIHJldmlzaXQg aXQgbGF0ZXIgaWYgbmVjZXNhcnkuCgpBY2suCgo+Cj4+IAo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtz dGF0aWMgaW50IGNubF9nZXRfZGltbV93aWR0aCh1MTYgdmFsKQo+PiA+ICt7Cj4+ID4gKwlpZiAo Y25sX2dldF9kaW1tX3NpemUodmFsKSA9PSAwKQo+PiA+ICsJCXJldHVybiAwOwo+PiA+ICsKPj4g PiArCXN3aXRjaCAodmFsICYgQ05MX0RSQU1fV0lEVEhfTUFTSykgewo+PiA+ICsJY2FzZSBDTkxf RFJBTV9XSURUSF9YODoKPj4gPiArCWNhc2UgQ05MX0RSQU1fV0lEVEhfWDE2Ogo+PiA+ICsJY2Fz ZSBDTkxfRFJBTV9XSURUSF9YMzI6Cj4+ID4gKwkJdmFsID0gKHZhbCAmIENOTF9EUkFNX1dJRFRI X01BU0spID4+IENOTF9EUkFNX1dJRFRIX1NISUZUOwo+PiA+ICsJCXJldHVybiA4IDw8IHZhbDsK Pj4gPiAgCWRlZmF1bHQ6Cj4+ID4gIAkJTUlTU0lOR19DQVNFKHZhbCk7Cj4+ID4gIAkJcmV0dXJu IDA7Cj4+ID4gIAl9Cj4+ID4gIH0KPj4gPiAgCj4+ID4gK3N0YXRpYyBpbnQgY25sX2dldF9kaW1t X3JhbmtzKHUxNiB2YWwpCj4+ID4gK3sKPj4gPiArCWlmIChjbmxfZ2V0X2RpbW1fc2l6ZSh2YWwp ID09IDApCj4+ID4gKwkJcmV0dXJuIDA7Cj4+ID4gKwo+PiA+ICsJdmFsID0gKHZhbCAmIENOTF9E UkFNX1JBTktfTUFTSykgPj4gQ05MX0RSQU1fUkFOS19TSElGVDsKPj4gPiArCj4+ID4gKwlyZXR1 cm4gdmFsICsgMTsKPj4gPiArfQo+PiA+ICsKPj4gPiAgc3RhdGljIGJvb2wKPj4gPiAgc2tsX2lz XzE2Z2JfZGltbShjb25zdCBzdHJ1Y3QgZHJhbV9kaW1tX2luZm8gKmRpbW0pCj4+ID4gIHsKPj4g PiBAQCAtMTExMywxMiArMTEzOSwxOSBAQCBza2xfaXNfMTZnYl9kaW1tKGNvbnN0IHN0cnVjdCBk cmFtX2RpbW1faW5mbyAqZGltbSkKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGljIHZvaWQKPj4g PiAtc2tsX2RyYW1fZ2V0X2RpbW1faW5mbyhzdHJ1Y3QgZHJhbV9kaW1tX2luZm8gKmRpbW0sCj4+ ID4gK3NrbF9kcmFtX2dldF9kaW1tX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+PiA+ICsJCSAgICAgICBzdHJ1Y3QgZHJhbV9kaW1tX2luZm8gKmRpbW0sCj4+ID4gIAkJ ICAgICAgIGludCBjaGFubmVsLCBjaGFyIGRpbW1fbmFtZSwgdTE2IHZhbCkKPj4gPiAgewo+PiA+ IC0JZGltbS0+c2l6ZSA9IHNrbF9nZXRfZGltbV9zaXplKHZhbCk7Cj4+ID4gLQlkaW1tLT53aWR0 aCA9IHNrbF9nZXRfZGltbV93aWR0aCh2YWwpOwo+PiA+IC0JZGltbS0+cmFua3MgPSBza2xfZ2V0 X2RpbW1fcmFua3ModmFsKTsKPj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwKSB7 Cj4+ID4gKwkJZGltbS0+c2l6ZSA9IGNubF9nZXRfZGltbV9zaXplKHZhbCk7Cj4+ID4gKwkJZGlt bS0+d2lkdGggPSBjbmxfZ2V0X2RpbW1fd2lkdGgodmFsKTsKPj4gPiArCQlkaW1tLT5yYW5rcyA9 IGNubF9nZXRfZGltbV9yYW5rcyh2YWwpOwo+PiA+ICsJfSBlbHNlIHsKPj4gPiArCQlkaW1tLT5z aXplID0gc2tsX2dldF9kaW1tX3NpemUodmFsKTsKPj4gPiArCQlkaW1tLT53aWR0aCA9IHNrbF9n ZXRfZGltbV93aWR0aCh2YWwpOwo+PiA+ICsJCWRpbW0tPnJhbmtzID0gc2tsX2dldF9kaW1tX3Jh bmtzKHZhbCk7Cj4+ID4gKwl9Cj4+ID4gIAo+PiA+ICAJRFJNX0RFQlVHX0tNUygiQ0glZCBESU1N ICVjIHNpemU6ICVkIEdCLCB3aWR0aDogWCVkLCByYW5rczogJWQsIDE2R2IgRElNTXM6ICVzXG4i LAo+PiA+ICAJCSAgICAgIGNoYW5uZWwsIGRpbW1fbmFtZSwgZGltbS0+c2l6ZSwgZGltbS0+d2lk dGgsIGRpbW0tPnJhbmtzLAo+PiA+IEBAIC0xMTI2LDExICsxMTU5LDE0IEBAIHNrbF9kcmFtX2dl dF9kaW1tX2luZm8oc3RydWN0IGRyYW1fZGltbV9pbmZvICpkaW1tLAo+PiA+ICB9Cj4+ID4gIAo+ PiA+ICBzdGF0aWMgaW50Cj4+ID4gLXNrbF9kcmFtX2dldF9jaGFubmVsX2luZm8oc3RydWN0IGRy YW1fY2hhbm5lbF9pbmZvICpjaCwKPj4gPiArc2tsX2RyYW1fZ2V0X2NoYW5uZWxfaW5mbyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ID4gKwkJCSAgc3RydWN0IGRyYW1fY2hh bm5lbF9pbmZvICpjaCwKPj4gPiAgCQkJICBpbnQgY2hhbm5lbCwgdTMyIHZhbCkKPj4gPiAgewo+ PiA+IC0Jc2tsX2RyYW1fZ2V0X2RpbW1faW5mbygmY2gtPmRpbW1fbCwgY2hhbm5lbCwgJ0wnLCB2 YWwgJiAweGZmZmYpOwo+PiA+IC0Jc2tsX2RyYW1fZ2V0X2RpbW1faW5mbygmY2gtPmRpbW1fcywg Y2hhbm5lbCwgJ1MnLCB2YWwgPj4gMTYpOwo+PiA+ICsJc2tsX2RyYW1fZ2V0X2RpbW1faW5mbyhk ZXZfcHJpdiwgJmNoLT5kaW1tX2wsCj4+ID4gKwkJCSAgICAgICBjaGFubmVsLCAnTCcsIHZhbCAm IDB4ZmZmZik7Cj4+ID4gKwlza2xfZHJhbV9nZXRfZGltbV9pbmZvKGRldl9wcml2LCAmY2gtPmRp bW1fcywKPj4gPiArCQkJICAgICAgIGNoYW5uZWwsICdTJywgdmFsID4+IDE2KTsKPj4gPiAgCj4+ ID4gIAlpZiAoY2gtPmRpbW1fbC5zaXplID09IDAgJiYgY2gtPmRpbW1fcy5zaXplID09IDApIHsK Pj4gPiAgCQlEUk1fREVCVUdfS01TKCJDSCVkIG5vdCBwb3B1bGF0ZWRcbiIsIGNoYW5uZWwpOwo+ PiA+IEBAIC0xMTcyLDEyICsxMjA4LDEyIEBAIHNrbF9kcmFtX2dldF9jaGFubmVsc19pbmZvKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPiAgCWludCByZXQ7Cj4+ID4gIAo+ PiA+ICAJdmFsID0gSTkxNV9SRUFEKFNLTF9NQURfRElNTV9DSDBfMF8wXzBfTUNIQkFSX01DTUFJ Tik7Cj4+ID4gLQlyZXQgPSBza2xfZHJhbV9nZXRfY2hhbm5lbF9pbmZvKCZjaDAsIDAsIHZhbCk7 Cj4+ID4gKwlyZXQgPSBza2xfZHJhbV9nZXRfY2hhbm5lbF9pbmZvKGRldl9wcml2LCAmY2gwLCAw LCB2YWwpOwo+PiA+ICAJaWYgKHJldCA9PSAwKQo+PiA+ICAJCWRyYW1faW5mby0+bnVtX2NoYW5u ZWxzKys7Cj4+ID4gIAo+PiA+ICAJdmFsID0gSTkxNV9SRUFEKFNLTF9NQURfRElNTV9DSDFfMF8w XzBfTUNIQkFSX01DTUFJTik7Cj4+ID4gLQlyZXQgPSBza2xfZHJhbV9nZXRfY2hhbm5lbF9pbmZv KCZjaDEsIDEsIHZhbCk7Cj4+ID4gKwlyZXQgPSBza2xfZHJhbV9nZXRfY2hhbm5lbF9pbmZvKGRl dl9wcml2LCAmY2gxLCAxLCB2YWwpOwo+PiA+ICAJaWYgKHJldCA9PSAwKQo+PiA+ICAJCWRyYW1f aW5mby0+bnVtX2NoYW5uZWxzKys7Cj4+ID4gIAo+PiA+IEBAIC0xMzY5LDEzICsxNDA1LDEwIEBA IGludGVsX2dldF9kcmFtX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ PiA+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5KQo+PiA+ICAJCXJldHVybjsKPj4gPiAg Cj4+ID4gLQkvKiBOZWVkIHRvIGNhbGN1bGF0ZSBiYW5kd2lkdGggb25seSBmb3IgR2VuOSAqLwo+ PiA+ICAJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQo+PiA+ICAJCXJldCA9IGJ4dF9nZXRfZHJh bV9pbmZvKGRldl9wcml2KTsKPj4gPiAtCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwgOSkpCj4+ ID4gLQkJcmV0ID0gc2tsX2dldF9kcmFtX2luZm8oZGV2X3ByaXYpOwo+PiA+ICAJZWxzZQo+PiA+ IC0JCXJldCA9IHNrbF9kcmFtX2dldF9jaGFubmVsc19pbmZvKGRldl9wcml2KTsKPj4gPiArCQly ZXQgPSBza2xfZ2V0X2RyYW1faW5mbyhkZXZfcHJpdik7Cj4+IAo+PiBUaGUgcGFydCB0aGF0J3Mg aGlkZGVuIGhlcmUgaXMgdGhlIHVzZSBvZiB0aGUgY29tbW9uIHBhcnRzIGluCj4+IHNrbF9nZXRf ZHJhbV9pbmZvKCkgYW5kIGluIHBhcnRpY3VsYXIKPj4gU0tMX01FTU9SWV9GUkVRX01VTFRJUExJ RVJfSFouIFNwZWMgc2F5cyAiVGhlIHZhbHVlIGlzIGdpdmVuIGluIHVuaXRzIG9mCj4+IDEzMy4z MyBNSHoiLiBCdXQgaXQgc2F5cyB0aGUgc2FtZSBmb3IgU0tMIHRvby4gV2hhdCBhbSBJIG1pc3Np bmc/Cj4KPiBUaGUgd2hvbGUgRFJBTSBjbG9ja2luZyBpcyBhIGJpdCBvZiBhIG15c3RlcnkgdG8g bWUuIFNvIGZhciBJIGRpZG4ndAo+IGZpbmQgYW55IGdvb2QgZG9jcyBvbiB0aGUgc3ViamVjdC4g VGhlIHJlZ2lzdGVycyB0YWxrIGFib3V0IFFDTEsgKHdoaWNoCj4gaXMgdGhlIGRhdGEgY2xvY2sg SUlVQykgYnV0IGJ1bmNoIG9mIHN0dWZmIGlzIGludGVyZXN0ZWQgaW4gdGhlIERDTEsKPiAodGhl IGNvbW1hbmQgY2xvY2spIHRob3VnaC4gSSBndWVzcyB0aGVyZSdzIDE6MSByZWxhdGlvbnNoaXAs IGFuZCBJCj4gc3VwcG9zZSB0aGUgZmFjdG9yIG9mIHR3byBoZXJlIGlzIG1heWJlIGp1c3QgZHVl IHRvIHRoZSBERFIuCgpPa2F5LiBMZXQncyBnbyB3aXRoIHRoaXMgdGhlbi4gU3RyaWtlIHRoZSB0 ZW50YXRpdmUgYmVsb3cuCgpCUiwKSmFuaS4KCj4KPj4gCj4+IFRlbnRhdGl2ZSBSZXZpZXdlZC1i eTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPj4gCj4+ID4gIAlpZiAocmV0 KQo+PiA+ICAJCXJldHVybjsKPj4gPiAgCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ID4g aW5kZXggNzMwYmIxOTE3ZmQxLi5iMzViMDIyMDc2NGYgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPj4gPiBAQCAtOTg3NSw4ICs5ODc1LDIxIEBAIGVudW0gc2tsX3Bvd2VyX2dh dGUgewo+PiA+ICAjZGVmaW5lICBTS0xfRFJBTV9XSURUSF9YMzIJCQkoMHgyIDw8IDgpCj4+ID4g ICNkZWZpbmUgIFNLTF9EUkFNX1JBTktfTUFTSwkJCSgweDEgPDwgMTApCj4+ID4gICNkZWZpbmUg IFNLTF9EUkFNX1JBTktfU0hJRlQJCQkxMAo+PiA+IC0jZGVmaW5lICBTS0xfRFJBTV9SQU5LX1NJ TkdMRQkJCSgweDAgPDwgMTApCj4+ID4gLSNkZWZpbmUgIFNLTF9EUkFNX1JBTktfRFVBTAkJCSgw eDEgPDwgMTApCj4+ID4gKyNkZWZpbmUgIFNLTF9EUkFNX1JBTktfMQkJCSgweDAgPDwgMTApCj4+ ID4gKyNkZWZpbmUgIFNLTF9EUkFNX1JBTktfMgkJCSgweDEgPDwgMTApCj4+ID4gKyNkZWZpbmUg IFNLTF9EUkFNX1JBTktfTUFTSwkJCSgweDEgPDwgMTApCj4+ID4gKyNkZWZpbmUgIENOTF9EUkFN X1NJWkVfTUFTSwkJCTB4N0YKPj4gPiArI2RlZmluZSAgQ05MX0RSQU1fV0lEVEhfTUFTSwkJCSgw eDMgPDwgNykKPj4gPiArI2RlZmluZSAgQ05MX0RSQU1fV0lEVEhfU0hJRlQJCQk3Cj4+ID4gKyNk ZWZpbmUgIENOTF9EUkFNX1dJRFRIX1g4CQkJKDB4MCA8PCA3KQo+PiA+ICsjZGVmaW5lICBDTkxf RFJBTV9XSURUSF9YMTYJCQkoMHgxIDw8IDcpCj4+ID4gKyNkZWZpbmUgIENOTF9EUkFNX1dJRFRI X1gzMgkJCSgweDIgPDwgNykKPj4gPiArI2RlZmluZSAgQ05MX0RSQU1fUkFOS19NQVNLCQkJKDB4 MyA8PCA5KQo+PiA+ICsjZGVmaW5lICBDTkxfRFJBTV9SQU5LX1NISUZUCQkJOQo+PiA+ICsjZGVm aW5lICBDTkxfRFJBTV9SQU5LXzEJCQkoMHgwIDw8IDkpCj4+ID4gKyNkZWZpbmUgIENOTF9EUkFN X1JBTktfMgkJCSgweDEgPDwgOSkKPj4gPiArI2RlZmluZSAgQ05MX0RSQU1fUkFOS18zCQkJKDB4 MiA8PCA5KQo+PiA+ICsjZGVmaW5lICBDTkxfRFJBTV9SQU5LXzQJCQkoMHgzIDw8IDkpCj4+ID4g IAo+PiA+ICAvKiBQbGVhc2Ugc2VlIGhzd19yZWFkX2Rjb21wKCkgYW5kIGhzd193cml0ZV9kY29t cCgpIGJlZm9yZSB1c2luZyB0aGlzIHJlZ2lzdGVyLAo+PiA+ICAgKiBzaW5jZSBvbiBIU1cgd2Ug Y2FuJ3Qgd3JpdGUgdG8gaXQgdXNpbmcgSTkxNV9XUklURS4gKi8KPj4gCj4+IC0tIAo+PiBKYW5p IE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCgotLSAKSmFuaSBOaWt1 bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=