From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [v2 5/6] i915/dp/fec: Configure the Forward Error Correction bits. Date: Tue, 23 Oct 2018 16:59:23 -0700 Message-ID: <20181023235923.GB18652@intel.com> References: <20181015215037.13901-1-anusha.srivatsa@intel.com> <20181015215037.13901-6-anusha.srivatsa@intel.com> <20181019183911.GW9144@intel.com> <20181019192442.GN8224@intel.com> <20181019195829.GE9144@intel.com> <20181019202905.GA31686@intel.com> <20181019231146.GG9144@intel.com> <83F5C7385F545743AD4FB2A62F75B07347F7AC05@ORSMSX108.amr.corp.intel.com> <20181022182606.GP9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id DAD026E0E3 for ; Tue, 23 Oct 2018 23:56:54 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181022182606.GP9144@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 =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMjIsIDIwMTggYXQgMDk6MjY6MDZQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgT2N0IDIyLCAyMDE4IGF0IDA2OjA0OjI4UE0gKzAwMDAsIFNyaXZh dHNhLCBBbnVzaGEgd3JvdGU6Cj4gPiAKPiA+IAo+ID4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tCj4gPiA+RnJvbTogVmlsbGUgU3lyasOkbMOkIFttYWlsdG86dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb21dCj4gPiA+U2VudDogRnJpZGF5LCBPY3RvYmVyIDE5LCAyMDE4IDQ6MTIgUE0K PiA+ID5UbzogTmF2YXJlLCBNYW5hc2kgRCA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+ ID5DYzogU3JpdmF0c2EsIEFudXNoYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT47IGludGVs LQo+ID4gPmdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFNpbmdoLCBHYXVyYXYgSyA8Z2F1cmF2 Lmsuc2luZ2hAaW50ZWwuY29tPjsgSmFuaQo+ID4gPk5pa3VsYSA8amFuaS5uaWt1bGFAbGludXgu aW50ZWwuY29tPgo+ID4gPlN1YmplY3Q6IFJlOiBbdjIgNS82XSBpOTE1L2RwL2ZlYzogQ29uZmln dXJlIHRoZSBGb3J3YXJkIEVycm9yIENvcnJlY3Rpb24gYml0cy4KPiA+ID4KPiA+ID5PbiBGcmks IE9jdCAxOSwgMjAxOCBhdCAwMToyOTowNVBNIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ ID4gPj4gT24gRnJpLCBPY3QgMTksIDIwMTggYXQgMTA6NTg6MjlQTSArMDMwMCwgVmlsbGUgU3ly asOkbMOkIHdyb3RlOgo+ID4gPj4gPiBPbiBGcmksIE9jdCAxOSwgMjAxOCBhdCAxMjoyNDo0M1BN IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPj4gPiA+IE9uIEZyaSwgT2N0IDE5LCAy MDE4IGF0IDA5OjM5OjExUE0gKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ID4+ID4g PiA+IE9uIE1vbiwgT2N0IDE1LCAyMDE4IGF0IDAyOjUwOjM2UE0gLTA3MDAsIEFudXNoYSBTcml2 YXRzYSB3cm90ZToKPiA+ID4+ID4gPiA+ID4gSWYgRkVDIGlzIHN1cHBvcnRlZCwgdGhlIGNvcnJl c3BvbmRpbmcgRFBfVFBfQ1RMIHJlZ2lzdGVyIGJpdHMKPiA+ID4+ID4gPiA+ID4gaGF2ZSB0byBi ZSBjb25maWd1cmVkLgo+ID4gPj4gPiA+ID4gPgo+ID4gPj4gPiA+ID4gPiBUaGUgZHJpdmVyIGhh cyB0byBwcm9ncmFtIHRoZSBGRUNfRU5BQkxFIGluIERQX1RQX0NUTFszMF0KPiA+ID4+ID4gPiA+ ID4gcmVnaXN0ZXIgYW5kIHdhaXQgdGlsbCBGRUNfU1RBVFVTIGluIERQX1RQX0NUTFsyOF0gaXMg MS4KPiA+ID4+ID4gPiA+ID4gQWxzbyBhZGQgdGhlIHdhcm4gbWVzc2FnZSB0byBtYWtlIHN1cmUg dGhhdCB0aGUgY29udHJvbAo+ID4gPj4gPiA+ID4gPiByZWdpc3RlciBpcyBhbHJlYWR5IGFjdGl2 ZSB3aGlsZSBlbmFibGluZyBGRUMuCj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ID4gPiA+IHYyOgo+ ID4gPj4gPiA+ID4gPiAtIENoYW5nZSBjb21taXQgbWVzc2FnZS4gQ29uZmlndXJlIGZlYyBzdGF0 ZSBhZnRlcgo+ID4gPj4gPiA+ID4gPiAgIGxpbmsgdHJhaW5pbmcgKE1hbmFzaSwgR2F1cmF2KQo+ ID4gPj4gPiA+ID4gPiAtIFJlbW92ZSByZWR1bmRlbnQgY2hlY2tzIChNYW5hc2kpCj4gPiA+PiA+ ID4gPiA+IC0gUmVtb3ZlIHRoZSByZWdpc3RlcnMgdGhhdCBnZXQgYWRkZWQgYXV0b21hZ2ljYWxs eSAoQW51c2hhKQo+ID4gPj4gPiA+ID4gPgo+ID4gPj4gPiA+ID4gPiB2Mzogcy9pbnRlbF9kcF9z ZXRfZmVjX3N0YXRlKCkvaW50ZWxfZHBfZW5hYmxlX2ZlY19zdGF0ZSgpCj4gPiA+PiA+ID4gPiA+ IChHYXVyYXYpCj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ID4gPiA+IHY0OiByZWJhc2VkLgo+ID4g Pj4gPiA+ID4gPgo+ID4gPj4gPiA+ID4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNp bmdoQGludGVsLmNvbT4KPiA+ID4+ID4gPiA+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+PiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4+ID4gPiA+ID4gQ2M6IE1hbmFzaSBOYXZh cmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+PiA+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4+ID4g PiA+ID4gLS0tCj4gPiA+PiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o ICB8ICAyICsrCj4gPiA+PiA+ID4gPiA+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j IHwgIDIgKysKPiA+ID4+ID4gPiA+ID4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAg fCAyNwo+ID4gPj4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+PiA+ID4gPiA+IHwgIDMgKystCj4gPiA+PiA+ ID4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK PiA+ID4+ID4gPiA+ID4KPiA+ID4+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGluZGV4Cj4gPiA+PiA+ID4gPiA+IGJjZGU3OGJjMDAyNy4uYzhkN2ZkY2Q3ODIz IDEwMDY0NAo+ID4gPj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gPiA+PiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgK PiA+ID4+ID4gPiA+ID4gQEAgLTkwOTMsNiArOTA5Myw3IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUg ewo+ID4gPj4gPiA+ID4gPiAgI2RlZmluZSBfRFBfVFBfQ1RMX0IJCQkweDY0MTQwCj4gPiA+PiA+ ID4gPiA+ICAjZGVmaW5lIERQX1RQX0NUTChwb3J0KSBfTU1JT19QT1JUKHBvcnQsIF9EUF9UUF9D VExfQSwKPiA+ID5fRFBfVFBfQ1RMX0IpCj4gPiA+PiA+ID4gPiA+ICAjZGVmaW5lICBEUF9UUF9D VExfRU5BQkxFCQkJKDEgPDwgMzEpCj4gPiA+PiA+ID4gPiA+ICsjZGVmaW5lICBEUF9UUF9DVExf RkVDX0VOQUJMRQkJCSgxIDw8IDMwKQo+ID4gPj4gPiA+ID4gPiAgI2RlZmluZSAgRFBfVFBfQ1RM X01PREVfU1NUCQkJKDAgPDwgMjcpCj4gPiA+PiA+ID4gPiA+ICAjZGVmaW5lICBEUF9UUF9DVExf TU9ERV9NU1QJCQkoMSA8PCAyNykKPiA+ID4+ID4gPiA+ID4gICNkZWZpbmUgIERQX1RQX0NUTF9G T1JDRV9BQ1QJCQkoMSA8PCAyNSkKPiA+ID4+ID4gPiA+ID4gQEAgLTkxMTEsNiArOTExMiw3IEBA IGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+ID4gPj4gPiA+ID4gPiAgI2RlZmluZSBfRFBfVFBfU1RB VFVTX0EJCQkweDY0MDQ0Cj4gPiA+PiA+ID4gPiA+ICAjZGVmaW5lIF9EUF9UUF9TVEFUVVNfQgkJ CTB4NjQxNDQKPiA+ID4+ID4gPiA+ID4gICNkZWZpbmUgRFBfVFBfU1RBVFVTKHBvcnQpIF9NTUlP X1BPUlQocG9ydCwgX0RQX1RQX1NUQVRVU19BLAo+ID4gPj4gPiA+ID4gPiBfRFBfVFBfU1RBVFVT X0IpCj4gPiA+PiA+ID4gPiA+ICsjZGVmaW5lICBEUF9UUF9TVEFUVVNfRkVDX0VOQUJMRV9MSVZF CQkoMSA8PCAyOCkKPiA+ID4+ID4gPiA+ID4gICNkZWZpbmUgIERQX1RQX1NUQVRVU19JRExFX0RP TkUJCQkoMSA8PCAyNSkKPiA+ID4+ID4gPiA+ID4gICNkZWZpbmUgIERQX1RQX1NUQVRVU19BQ1Rf U0VOVAkJCSgxIDw8IDI0KQo+ID4gPj4gPiA+ID4gPiAgI2RlZmluZSAgRFBfVFBfU1RBVFVTX01P REVfU1RBVFVTX01TVAkJKDEgPDwgMjMpCj4gPiA+PiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gPj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+PiA+ID4gPiA+IGluZGV4IGY1MzE5MDAxNjViZi4u NjdjMDEzZWE0ZDM5IDEwMDY0NAo+ID4gPj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYwo+ID4gPj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYwo+ID4gPj4gPiA+ID4gPiBAQCAtMjkxMSw2ICsyOTExLDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0Cj4gPiA+aW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ID4+ID4gPiA+ID4gIAkJCQkJICAgICAgRFBfREVDT01QUkVTU0lPTl9FTik7 Cj4gPiA+PiA+ID4gPiA+ICAJaW50ZWxfZHBfc2lua19zZXRfZmVjX3JlYWR5KGludGVsX2RwLCBj cnRjX3N0YXRlLAo+ID4gPkRQX0ZFQ19SRUFEWSk7Cj4gPiA+PiA+ID4gPiA+ICAJaW50ZWxfZHBf c3RhcnRfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gPiA+PiA+ID4gPiA+ICsJaW50ZWxfZHBfZW5h YmxlX2ZlY19zdGF0ZShpbnRlbF9kcCwgY3J0Y19zdGF0ZSk7Cj4gPiA+PiA+ID4gPgo+ID4gPj4g PiA+ID4gVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSB0aGUgY29ycmVjdCBzcG90LiBBY2NvcmRpbmcg dG8gdGhlIHNwZWMKPiA+ID4+ID4gPiA+IGl0IHNob3VsZCBiZSBhZnRlciBzdG9wX2xpbmtfdHJh aW4oKSAod2hlcmUgd2Ugc2V0IERQX1RQX0NUTCB0bwo+ID4gPj4gPiA+ID4gdG8gbm9ybWFsKS4K PiA+ID4+ID4gPiA+Cj4gPiA+PiA+ID4KPiA+ID4+ID4gPiBZZXMgSSBzZWUgaW4gdGhlIGRpc3Bs YXkgcG9ydCBlbmFibGluZyBzZXF1ZW5jZSBwYWdlIG9mIHRoZSBzcGVjLAo+ID4gPj4gPiA+IHRo YXQgaXQgc2F5cyBlbmFibGUgRkVDIGFmdGVyIERQX1RQX0NUTCBpcyBzZXQgdG8gTm9ybWFsLiBB bHNvIHRoZQo+ID4gPj4gPiA+IEZFQyBwYWdlIHNheXMgdGhhdCB0aGlzIHNob3VsZCBiZSBlbmFi bGVkIG9ubHkgYWZ0ZXIgZW5zdXJpbmcgdGhhdAo+ID4gPj4gPiA+IGxpbmsgdHJhaW5pbmcgY29t cGxldGVkLiBTbyBhY2NvcmRpbmcgdG8gdGhhdCB0aGlzIGNhbGwgc2hvdWxkIGhhcHBlbiBhZnRl cgo+ID4gPmludGVsX2RwX3N0b3BfbGlua190cmFpbigpLgo+ID4gPj4gPiA+IFNvIHllcyBtb3Zl IHRoaXMgdG8gYWZ0ZXIgaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluaW5nKCkuCj4gPiA+PiA+ID4K PiA+ID4+ID4gPiA+ID4gKwo+ID4gPj4gPiA+ID4gPiAgCWlmIChwb3J0ICE9IFBPUlRfQSB8fCBJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gPiA+PiA+ID4gPiA+ICAJCWludGVsX2RwX3N0b3Bf bGlua190cmFpbihpbnRlbF9kcCk7Cj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ID4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+PiA+ID4gPiA+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBpbmRleAo+ID4gPj4gPiA+ID4gPiBiNGU4 YWYzMTQyYTIuLmI5Zjg1NTAyZDlmZiAxMDA2NDQKPiA+ID4+ID4gPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+PiA+ID4gPiA+IEBAIC0zMDE3LDYgKzMwMTcsMzMg QEAgdm9pZCBpbnRlbF9kcF9zaW5rX3NldF9mZWNfcmVhZHkoc3RydWN0Cj4gPiA+aW50ZWxfZHAg KmludGVsX2RwLAo+ID4gPj4gPiA+ID4gPiAgCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gZ2V0 IEZFQyBlbmFibGVkIGluCj4gPiA+c2lua1xuIik7ICB9Cj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ ID4gPiA+ICt2b2lkIGludGVsX2RwX2VuYWJsZV9mZWNfc3RhdGUoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKPiA+ID4+ID4gPiA+ID4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkgewo+ID4gPj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwo+ID4gPj4gPiA+ID4gPiAr CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiA+ID5kcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gPiA+PiA+ID4gPiA+ICsJZW51bSBwb3J0IHBvcnQgPSBpbnRl bF9kaWdfcG9ydC0+YmFzZS5wb3J0Owo+ID4gPj4gPiA+ID4gPiArCXUzMiB2YWw7Cj4gPiA+PiA+ ID4gPiA+ICsKPiA+ID4+ID4gPiA+ID4gKwkvKiBGRUMgc3VwcG9ydCBleGlzdHMgZm9yIERQIDEu NCBvbmx5ICovCj4gPiA+PiA+ID4gPiA+ICsJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkp Cj4gPiA+PiA+ID4gPiA+ICsJCXJldHVybjsKPiA+ID4+ID4gPiA+ID4gKwo+ID4gPj4gPiA+ID4g PiArCS8qIElmIERpc3BsYXkgQ29tcHJlc3Npb24gaXMgbm90IGVuYWJsZWQsIEZFQyBuZWVkIG5v dCBiZQo+ID4gPmNvbmZpZ3VyZWQgKi8KPiA+ID4+ID4gPiA+ID4gKwlpZiAoIWNydGNfc3RhdGUt PmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlKQo+ID4gPj4gPiA+ID4gPiArCQlyZXR1cm47 Cj4gPiA+PiA+ID4gPiA+ICsKPiA+ID4+ID4gPiA+ID4gKwl2YWwgPSBJOTE1X1JFQUQoRFBfVFBf Q1RMKHBvcnQpKTsKPiA+ID4+ID4gPiA+ID4gKwl2YWwgfD0gRFBfVFBfQ1RMX0ZFQ19FTkFCTEU7 Cj4gPiA+PiA+ID4gPiA+ICsJSTkxNV9XUklURShEUF9UUF9DVEwocG9ydCksIHZhbCk7Cj4gPiA+ PiA+ID4gPiA+ICsKPiA+ID4+ID4gPiA+ID4gKwlpZiAoaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIo ZGV2X3ByaXYsIERQX1RQX1NUQVRVUyhwb3J0KSwKPiA+ID4+ID4gPiA+ID4gKwkJCQkgICAgRFBf VFBfU1RBVFVTX0ZFQ19FTkFCTEVfTElWRSwKPiA+ID4+ID4gPiA+ID4gKwkJCQkgICAgRFBfVFBf U1RBVFVTX0ZFQ19FTkFCTEVfTElWRSwKPiA+ID4+ID4gPiA+ID4gKwkJCQkgICAgMSkpCj4gPiA+ PiA+ID4gPiA+ICsJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIEZFQyBFbmFibGUK PiA+ID5TdGF0dXNcbiIpOyB9Cj4gPiA+PiA+ID4gPgo+ID4gPj4gPiA+ID4gVGhlcmUgaXMgbm8g cmVhc29uIHRvIHN0aWNrIHRoZXNlIGludG8gaW50ZWxfZHAuYyB3aGVuIHRoZSBvbmx5Cj4gPiA+ PiA+ID4gPiBjYWxsZXIgaXMgaW4gaW50ZWxfZGRpLmMuCj4gPiA+PiA+ID4gPgo+ID4gPj4gPiA+ Cj4gPiA+PiA+ID4gU28gbWF5IGJlIG1vdmUgdGhlIHNldF9kc2Nfc3RhdGUgZnVuY3Rpb24gYWxz byBmcm9tIGludGVsX2RwLmMgdG8KPiA+ID4+ID4gPiBpbnRlbF9kZGkuYyBPciBkb2VzIGl0IG1h a2Ugc2Vuc2UgdG8gbW92ZSBhbGwgdGhlc2UgRFNDIHJlbGF0ZWQgZnVuY3Rpb25zCj4gPiA+aW5j bHVkaW5nIGZlYyB0byBpbnRlbF9kc2MuYz8KPiA+ID4+ID4gPgo+ID4gPj4gPiA+ID4gV2UgYWxz byBzZWVtIHRvIGJlIG1pc3NpbmcgcGxhdGZvcm0gY2hlY2tzLiBGRUMgZG9lc24ndCBhcHBlYXIK PiA+ID4+ID4gPiA+IHRvIGJlIGEgdGhpbmcgcHJpb3IgdG8gSUNMLiBJIGd1ZXNzIHRoZSBlZHAr Y29tcHJlc3Npb25fZW5hYmxlCj4gPiA+PiA+ID4gPiB0YWtlcyBjYXJlIG9mIHRoaXMsIGJ1dCBJ IHRoaW5rIEknZCByYXRoZXIgc3RpY2sgYSBuZXcKPiA+ID4+ID4gPiA+IGZlY19lbmFibGUgYm9v bCBpbnRvIHRoZSBjcnRjIHN0YXRlLiBUaGF0IHdheSB3ZSBnZXQgY2FuIGFkZCBpdCB0byB0aGUK PiA+ID5zdGF0ZSBjaGVja2VyIGFzIHdlbGwuCj4gPiA+PiA+ID4gPgo+ID4gPj4gPiA+Cj4gPiA+ PiA+ID4gZmVjX2VuYWJsZSBjYW4gYmUgYWRkZWQgdG8gY3J0Y19zdGF0ZS0+ZHNjX3BhcmFtcyBt YXkgYmU/Cj4gPiA+PiA+Cj4gPiA+PiA+IElzbid0IEZFQyBzb21ldGhpbmcgdGhhdCBjYW4gYmUg dXNlZCB3L28gRFNDIHRvbz8KPiA+ID4+ID4KPiA+ID4+Cj4gPiA+PiBOb3BlLCBGRUMgYWx3YXlz IGdvZXMgaGFuZCBpbiBoYW5kIHdpdGggRFNDIG9uIGV4dGVybmFsIERQIGFuZCB0aGF0Cj4gPiA+ PiBEU0Mgb24gZXh0ZXJuYWwgRFAgY2Fubm90IGJlIGVuYWJsZWQgd2l0aG91dCBGRUMuCj4gPiA+ Cj4gPiA+U3VyZSwgRFNDIG5lZWRzIEZFQy4gQnV0IEZFQyBkb2Vzbid0IG5lZWQgRFNDLiBBdCBs ZWFzdCBpZiBJJ20gcmVhZGluZyB0aGUgc3BlYwo+ID4gPmNvcnJlY3RseS4KPiA+ID4KPiA+ID5G RUMgaXMgZW5hYmxlZCBmb3IgdGhlIGVudGlyZSBtYWluIGxpbmssIHNvIGV2ZXJ5dGhpbmcgZ2V0 dGluZyB0cmFuc3BvcnRlZCBvdmVyIGl0Cj4gPiA+Z2V0IEZFQ2NlZC4gRFNDIG9uIHRoZSBvdGhl ciBoYW5kIG9wZXJhdGVzIG9uIG9uIGEgc3RyZWFtIGxldmVsLiBTbyBhc3N1bWluZyBhCj4gPiA+ TVNUIGJyYW5jaCBkZXZpY2UgdGhhdCBjYW4gZG8gRkVDIGJ1dCBjYW4ndCBkbyBEU0MgeW91IHNo b3VsZCBiZSBhYmxlIHRyYW5zcG9ydAo+ID4gPmJvdGggY29tcHJlc3NlZCBhbmQgdW5jb21wcmVz c2VkIHN0cmVhbXMgdGhyb3VnaCBpdCBzaW11bHRhbmVvdXNseS4gS2luZGEKPiA+ID5tYWtlcyBt ZSB0aGluayB0aGF0IHdlIHdhbnQgdG8gZW5hYmxlIEZFQyBmb3IgTVNUIHdoZW5ldmVyIHRoZSBk b3duc3RyZWFtCj4gPiA+ZGV2aWNlIHN1cHBvcnRzIGl0Lgo+ID4gCj4gPiBGRUMgZm9yIE1TVCBt b2RlcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBJQ0wgcGxhdGZvcm0uIFdlIGNvdWxkIGV4dGVuZCB0 aGlzIGZvciBmdXR1cmUgcGxhdGZvcm1zICBmb3IgYnJhbmNoIGRldmljZXMgdGhhdCBzdXBwb3J0 IEZFQy4KPiAKPiBIbW0uIFdlbGwsIGxvb2tzIGxpa2Ugd2UnbGwgaGF2ZSB0byB0aGluayBhYm91 dCB0aGF0IHNvb24gZW5vdWdoIGFueXdheSwKPiBzbyBJTU8gYmV0dGVyIGRvIGl0IHJpZ2h0IGZy b20gdGhlIHN0YXJ0LiBBdm9pZHMgaGF2aW5nIHRvIHJld3JpdGUgdGhlCj4gU1NUIHBhdGggeWV0 IGFnYWluIHdoZW4gd2UgYWRkIHRoZSBNU1Qgc3VwcG9ydC4gQW5kIHdlJ2xsIGFsc28gZ2V0IHRo ZQo+IHN0YXRlIGNoZWNrZXIgYXMgYSBib251cy4KCkkgdGhpbmsgaXQgbWFrZXMgc2Vuc2UgdG8g YWRkIGNydGNfc3RhdGUtPmZlY19lbmFibGUgdmFyaWFibGUgdG8gYWRkIGl0IG5vbiBjb21wcmVz c2VkIGFuZCBNU1QgY2FzZXMgbGF0ZXIuCkJ1dCBmb3IgSUNMLCB0byBhZGQgdGhlIGJhc2ljIEZF QyBzdXBwb3J0LCB0aGlzIHBhdGNoIHNlcmllcyBjYW4gb25seSBlbmFibGUgaXQgZm9yIERTQyBT U1QgY2FzZXMuCgpNYW5hc2kKCj4gCj4gPiAKPiA+ID5BbmQgSSBzdXBwb3NlIHdlIGNvdWxkIGFs c28gY29uc2lkZXIgdXNpbmcgRkVDIG9wcG9ydHVuaXN0aWNhbGx5IGZvcgo+ID4gPnVuY29tcHJl c3NlZCBTU1Qgd2hlbiB3ZSBoYXZlIHRoZSBleHRyYSBsaW5rIGJhbmR3aWR0aCB0byBoYW5kbGUg dGhlIGV4dHJhCj4gPiA+b3ZlcmhlYWQuCj4gPiAKPiA+IFllcy4gVGhlIHJlcXVpcmVtZW50IHRo b3VnaCBpcyBmb3IgY29tcHJlc3NlZCBzdHJlYW1zLiBJIGFtIG5vdCBzdXJlIGlmIHdlIHdpbGwg aGF2ZSB0byBwYXkgYW55IHBvd2VyIHBlbmFsdHkgZm9yIFNTVC4gQWxzbyBteSB1bmRlcnN0YW5k aW5nIGlzIHRoYXQgaWYgYSBmZXcgc3ltYm9scyBpbiBhIG5vbi1jb21wcmVzc2VkIHN0cmVhbSBh cmUgaW4gZXJyb3IsIHRoZW4gb25seSB0aG9zZSBzeW1ib2xzIHdpbGwgYmUgaW4gZXJyb3IuIFRo ZXNlIGVycm9ycyBkbyBub3QgY2F1c2Ugb3RoZXIgcGl4ZWxzIHRvIGdldCBjb3JydXB0ZWQuIElu IGNvbXByZXNzZWQgc3RyZWFtcywgaWYgYSBmZXcgc3ltYm9scyBhcmUgaW4gZXJyb3IsIGl0IGNh biBjYXVzZSB0aGUgZW50aXJlIHNsaWNlIHRvIGdldCBjb3JydXB0ZWQuIFdpbGwgd2UgYmUgZ2V0 dGluZyBhbnkgbXVjaCByZXR1cm4gb24gbm9uLWNvbXByZXNzZWQgc3RyZWFtcz8KPiAKPiBObyBp ZGVhLgo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=