From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id A50356E02D for ; Mon, 27 Aug 2018 22:26:51 +0000 (UTC) Date: Mon, 27 Aug 2018 15:26:29 -0700 From: Tarun Vyas Message-ID: <20180827222626.GA20845@otc-chromeosbuild-5> References: <20180821001204.3385-1-rodrigo.vivi@intel.com> <877ekkb1xw.fsf@intel.com> <20180821145820.GA2159@intel.com> <87wosiaduq.fsf@intel.com> <20180822161643.GD2340@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [RFC] tools/dpcd_dump: Introduce DPCD dump on IGT. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Pandiyan, Dhinakaran" Cc: "Nikula, Jani" , "igt-dev@lists.freedesktop.org" , "Antognolli, Rafael" , "Vivi, Rodrigo" List-ID: T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMTA6MTE6NTRBTSAtMDcwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6CgpIaSBHdXlzLAoKPiAKPiAKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tCj4gPiBGcm9tOiBWaXZpLCBSb2RyaWdvCj4gPiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAy MiwgMjAxOCA5OjE3IEFNCj4gPiBUbzogTmlrdWxhLCBKYW5pIDxqYW5pLm5pa3VsYUBpbnRlbC5j b20+Cj4gPiBDYzogaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IEFudG9nbm9sbGksIFJh ZmFlbAo+ID4gPHJhZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT47IFBhbmRpeWFuLCBEaGluYWth cmFuCj4gPiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiBTdWJqZWN0OiBSZTog W2lndC1kZXZdIFtSRkNdIHRvb2xzL2RwY2RfZHVtcDogSW50cm9kdWNlIERQQ0QgZHVtcCBvbiBJ R1QuCj4gPiAKPiA+IE9uIFdlZCwgQXVnIDIyLCAyMDE4IGF0IDAxOjM1OjA5UE0gKzAzMDAsIEph bmkgTmlrdWxhIHdyb3RlOgo+ID4gPiBPbiBUdWUsIDIxIEF1ZyAyMDE4LCBSb2RyaWdvIFZpdmkg PHJvZHJpZ28udml2aUBpbnRlbC5jb20+IHdyb3RlOgo+ID4gPiA+IE9uIFR1ZSwgQXVnIDIxLCAy MDE4IGF0IDEwOjQyOjM1QU0gKzAzMDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+ID4gPiA+PiBPbiBN b24sIDIwIEF1ZyAyMDE4LCBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+IHdy b3RlOgo+ID4gPiA+PiA+IFRoZSBpZGVhIGlzIHRvIHJlbW92ZSB0aGUgZHVtcCBmcm9tIGk5MTUn cyBkZWJ1Z2ZzLCBidXQgYmVmb3JlIHdlCj4gPiA+ID4+ID4gbmVlZCB0byBiZSBhYmxlIHRvIGtl ZXAgdGhlIGN1cnJlbnQgZGVidWcgZHBjZCBsaXN0IGFuZCBJR1Qgc2VlbXMKPiA+ID4gPj4gPiBh IGdvb2QgcGxhY2UgdG8gaGF2ZSBzb21lIGZsZXhpYmlsaXR5Lgo+ID4gPiA+Pgo+ID4gPiA+PiBT ZWUgYWxzbyBbMV0uIEknbSBub3Qgc3VyZSB3aGF0IHRoZSBzdGF0dXMgaXMgbm93LiBUYXJ1bj8K SSBhZGRyZXNzZWQgVmlsbGUncyBjb21tZW50cyBpbiB0aGUgdjI6IGh0dHBzOi8vcGF0Y2h3b3Jr LmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yMjk2ODQvLgpUaGlzIG9uZSBkdW1wcyBbbl0gYnl0ZXMg YXQgYSB0aW1lLCBhcyBzcGVjaWZpZWQgYnkgdGhlIHVzZXIgYW5kIGNhbiBkbyBieXRlIHdyaXRl cy4gCj4gPiA+ID4KPiA+ID4gPiBvaCwgSSBoYWQgbWlzc2VkIHRoYXQsIHNvcnJ5Lgo+ID4gPiA+ IEkgbm93IHJlbWVtYmVyIFRhcnVuIGFuZCBESyB0YWxraW5nIGFib3V0IHRoYXQgYnV0IEkgaGFk IGZvcmdvdHRlbi4uLgo+ID4gPiA+Cj4gPiA+ID4+Cj4gPiA+ID4+IEkgZG9uJ3QgdGhpbmsgd2Ug c2hvdWxkIGhhdmUgYm90aCBhcyBzZXBhcmF0ZSBiaW5hcmllcy4KPiA+ID4gPgo+ID4gPiA+IEkg YWdyZWUhIFRhcnVuLCBmZWVsIGZyZWUgdG8gZ2V0IG15IGR1bXAgZnVuY3Rpb25zIGFuZCBtZXJn ZSB0byB5b3VyCj4gPiA+ID4gd29yay4KQXMgREsgbWVudGlvbmVkIGJlbG93LCB3ZSBwbGFubmVk IHRvIG1lcmdlIGp1c3QgdGhlIFJlYWQvV3JpdGUgZmlyc3QgYW5kIHRoZW4gaW1wcm92ZQpvbiB0 aGF0IGFzIHdlIG1vdmUgb24uIFNvIG1heWJlIHdlIGNhbiBtYWtlIHRoZSBkdW1wIGFzIHRoZSBk ZWZhdWx0IGJlaGF2aW9yCmluIHRoZSBmb2xsb3cgdXAgcGF0Y2hlcyA/Cj4gPiA+ID4KPiA+ID4g PiBtYXliZSBteSBvbmUgY291bGQgYmUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgeW91cnMgd2hlbiBu byBjb25kaXRpb24KPiA+ID4gPiBpcyBnaXZpbmcuCj4gPiA+ID4KPiA+ID4gPiBNeSBpZGVhIGlz IHRvIHN0YXJ0IHdpdGggdGhlIGN1cnJlbnQgZHVtcCB0aGF0IHdlIGhhdmUgaW4gZGVidWdmcwo+ ID4gPiA+IGFuZCBsYXRlciB0byBleHBhbmQgdGhhdCB0byBiZSBtb3JlIGdlbmVyaWMgbGlrZSBp biBhIHR4dCBsaXN0IGxpa2UKPiA+ID4gPiB3ZSBoYXZlIGZvciBpbnRlbF9yZWcuCj4gPiA+Cj4g PiA+IEFuZCBub3cgd2UncmUgZ29pbmcgZnVsbCBjaXJjbGUgd3J0IHRoZSBkaXNjdXNzaW9uIGlu IFsxXS4gSWYgd2UKPiA+ID4gYm9sdGVkIGRwY2QgYWNjZXNzIHRvIGludGVsX3JlZyBkaXJlY3Rs eSwgd2UnZCBnZXQgYWxsIG9mIHRoYXQgZm9yIGZyZWUuLi4KPiA+IAo+ID4gbmFoISBteSBiYWQg Zm9yIG1pc3NpbmcgdGhhdCBkaXNjdXNzaW9uLi4uIHNvcnJ5Cj4gPiAKPiA+IHllYWgsIHRoaXMg aXMgYSBnb29kIHBvaW50Li4uCj4gPiAKPiA+IGJ1dCBvbiB0aGUgb3RoZXIgaGFuZCBJJ20gbm90 IHN1cmUgaWYgSSBsaWtlICppbnRlbCpfcmVnIHRvIHJlYWQgZHBjZCwgc3BlY2lhbGx5IHdpdGgK PiA+IElHVCBub3dhZGF5cyBzdGFuZGluZyBmb3IgSUdUIGlzIEdQVSBUb29scyA7KQo+ID4gCj4g PiBzbywgd2hhdCBhYm91dCBtb3ZpbmcgY29yZSBvZiBpbnRlbF9yZWcgdG8gc29tZSBjb21tb24g bGlicmFyeSBhbmQgaW50ZWxfcmVnCj4gPiBnZXRzIHVzZWQgb25seSBmb3IgaW50ZWwgcmVncyBh bmQgZHBjZF9yZWcgZm9yIGRwY2QgZ2VuZXJpY2FsbHk/Cj4gPiAKPiBZZWFoLCB0aGF0IHdhcyB0 aGUgcGxhbiB3ZSdkIGRpc2N1c3NlZC4gVGhlIGlkZWEgd2FzIHRvIGdldCBkcGNkX3JlZyAtLXJl YWQsIC0td3JpdGUKPiBtZXJnZWQgZmlyc3QgYW5kIHRoZW4gbGF0ZXIgaW1wbGVtZW50IC0tZGVj b2RlLiAKU28gaWYgeW91IGd1eXMgYXJlIE9LIHdpdGggUmVhZCBbbl0gYnl0ZXMvIFdyaXRlLCB0 byBzdGFydCB3aXRoIHRoZW4gd2UgY2FuIGhhdmUgCmh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNr dG9wLm9yZy9wYXRjaC8yMjk2ODQvIHJldmlld2VkIGFuZCBmb2xsb3cgdXAgd2l0aCBpbXByb3Zl bWVudHMuCgpQbGVhc2UgbGV0IG1lIGtub3cgaG93IHdlIHdhbnQgdG8gbW92ZSBmb3J3YXJkIGhl cmUuCgpUaGFua3MsClRhcnVuCj4gCj4gLURLCj4gCj4gPiA+Cj4gPiA+IEJSLAo+ID4gPiBKYW5p Lgo+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+ IFJvZHJpZ28uCj4gPiA+ID4KPiA+ID4gPj4KPiA+ID4gPj4gQlIsCj4gPiA+ID4+IEphbmkuCj4g PiA+ID4+Cj4gPiA+ID4+Cj4gPiA+ID4+IFsxXQo+ID4gPiA+PiBodHRwOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8yMDE4MDYxNDA3MTE0MS4xNDQyNzUtCj4gPiA+ID4+ IDEtdGFydW4udnlhc0BpbnRlbC5jb20KPiA+ID4gPj4KPiA+ID4gPj4KPiA+ID4gPj4gPgo+ID4g PiA+PiA+IEZJWE1FOiBmZmZmZiB0cmFzaC4uLgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gQ3VycmVu dCBkZWJ1Z2ZzOgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gJCBzdWRvIGNhdCAvc3lzL2tlcm5lbC9k ZWJ1Zy9kcmkvMC9EUC0xL2k5MTVfZHBjZAo+ID4gPiA+PiA+IDAwMDA6IDEyIDE0IGM0IDAxIDAx IDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAwIDAyCj4gPiA+ID4+ID4gMDA3MDogMDAgMDAKPiA+ ID4gPj4gPiAwMDgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMAo+ID4gPiA+PiA+IDAxMDA6IDE0IDg0IDAwIDA2IDA2IDA2IDA2IDAwIDAxIDA0IDAwCj4g PiA+ID4+ID4gMDIwMDogNDEgMDAgNzcgNzcgMDEgMDMgMjIgMjIKPiA+ID4gPj4gPiAwNjAwOiAw MQo+ID4gPiA+PiA+IDA3MDA6IDAxCj4gPiA+ID4+ID4gMDcwMTogMDAgMDAgMDAgMDAKPiA+ID4g Pj4gPiAwNzIwOiAwMCAwMSAwMCAwMCAwMCAwMSAwMSAwMCAwMCAwMCAwMCAwMCAwMSAwMCAwMCAw MQo+ID4gPiA+PiA+IDA3MzI6IDAwIDAwCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiAkIHN1ZG8gY2F0 IC9zeXMva2VybmVsL2RlYnVnL2RyaS8wL2VEUC0xL2k5MTVfZHBjZAo+ID4gPiA+PiA+IDAwMDA6 IDEyIDE0IDg0IDQwIDAwIDAwIDAxIDAxIDAyIDAwIDAwIDAwIDAwIDBiIDAwCj4gPiA+ID4+ID4g MDA3MDogMDEgMDAKPiA+ID4gPj4gPiAwMDgwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMAo+ID4gPiA+PiA+IDAxMDA6IDE0IDA0IDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwCj4gPiA+ID4+ID4gMDIwMDogNDEgMDAgMDAgMDAgODAgMDAgNjYgNjYKPiA+ ID4gPj4gPiAwNjAwOiAwMQo+ID4gPiA+PiA+IDA3MDA6IDAyCj4gPiA+ID4+ID4gMDcwMTogOWYg NDAgMDAgMDAKPiA+ID4gPj4gPiAwNzIwOiAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMSAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMAo+ID4gPiA+PiA+IDA3MzI6IDAwIDAwCj4gPiA+ID4+ID4KPiA+ID4g Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IEN1cnJlbnQgZHBjZF9kdW1wIHByb3Bvc2VkIGhl cmU6Cj4gPiA+ID4+ID4gJCBzdWRvIC4vYnVpbGQvdG9vbHMvZHBjZF9kdW1wCj4gPiA+ID4+ID4K PiA+ID4gPj4gPiBEdW1waW5nIERQRERDLUIKPiA+ID4gPj4gPiA6Cj4gPiA+ID4+ID4gMDAwMDog IDEyIDE0IGZmZmZmZmM0IDAxIDAxIDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAwIDAyCj4gPiA+ ID4+ID4gMDA3MDogIDAwIDAwCj4gPiA+ID4+ID4gMDA4MDogIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiA+ID4+ID4gMDEwMDogIDE0IGZmZmZmZjg0 IDAwIDA2IDA2IDA2IDA2IDAwIDAxIDA0IDAwCj4gPiA+ID4+ID4gMDIwMDogIDQxIDAwIDc3IDc3 IDAxIDAzIDIyIDIyCj4gPiA+ID4+ID4gMDYwMDogIDAxCj4gPiA+ID4+ID4gMDcwMDogIDAxCj4g PiA+ID4+ID4gMDcwMTogIDAwIDAwIDAwIDAwCj4gPiA+ID4+ID4gMDcyMDogIDAwIDAxIDAwIDAw IDAwIDAxIDAxIDAwIDAwIDAwIDAwIDAwIDAxIDAwIDAwIDAxCj4gPiA+ID4+ID4gMDczMjogIDAw IDAwCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBEUENEIERQRERDLUMKPiA+ID4gPj4gPiAgc2VlbXMg bm90IGF2YWlsYWJsZS4gc2tpcHBpbmcuLi4KPiA+ID4gPj4gPiBEdW1waW5nIERQRERDLUEKPiA+ ID4gPj4gPiA6Cj4gPiA+ID4+ID4gMDAwMDogIDEyIDE0IGZmZmZmZjg0IDQwIDAwIDAwIDAxIDAx IDAyIDAwIDAwIDAwIDAwIDBiIDAwCj4gPiA+ID4+ID4gMDA3MDogIDAxIDAwCj4gPiA+ID4+ID4g MDA4MDogIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4g PiA+ID4+ID4gMDEwMDogIDE0IDA0IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiA+ID4+ ID4gMDIwMDogIDQxIDAwIDAwIDAwIGZmZmZmZjgwIDAwIDY2IDY2Cj4gPiA+ID4+ID4gMDYwMDog IDAxCj4gPiA+ID4+ID4gMDcwMDogIDAyCj4gPiA+ID4+ID4gMDcwMTogIGZmZmZmZjlmIDQwIDAw IDAwCj4gPiA+ID4+ID4gMDcyMDogIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAxIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwCj4gPiA+ID4+ID4gMDczMjogIDAwIDAwCj4gPiA+ID4+ID4KPiA+ID4gPj4g PiBDYzogUmFmYWVsIEFudG9nbm9sbGkgPHJhZmFlbC5hbnRvZ25vbGxpQGludGVsLmNvbT4KPiA+ ID4gPj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiA+ID4gPj4g PiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ Cj4gPiA+ID4+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50 ZWwuY29tPgo+ID4gPiA+PiA+IC0tLQo+ID4gPiA+PiA+ICB0b29scy9NYWtlZmlsZS5zb3VyY2Vz IHwgICAxICsKPiA+ID4gPj4gPiAgdG9vbHMvZHBjZF9kdW1wLmMgICAgICB8IDE1Mgo+ID4gKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gPj4gPiAgdG9vbHMv bWVzb24uYnVpbGQgICAgICB8ICAgMSArCj4gPiA+ID4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTU0 IGluc2VydGlvbnMoKykgIGNyZWF0ZSBtb2RlIDEwMDY0NAo+ID4gPiA+PiA+IHRvb2xzL2RwY2Rf ZHVtcC5jCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBkaWZmIC0tZ2l0IGEvdG9vbHMvTWFrZWZpbGUu c291cmNlcyBiL3Rvb2xzL01ha2VmaWxlLnNvdXJjZXMKPiA+ID4gPj4gPiBpbmRleCBhYmQyM2Ew Zi4uZjQ5MjFmODMgMTAwNjQ0Cj4gPiA+ID4+ID4gLS0tIGEvdG9vbHMvTWFrZWZpbGUuc291cmNl cwo+ID4gPiA+PiA+ICsrKyBiL3Rvb2xzL01ha2VmaWxlLnNvdXJjZXMKPiA+ID4gPj4gPiBAQCAt Niw2ICs2LDcgQEAgbm9pbnN0X1BST0dSQU1TID0JCVwKPiA+ID4gPj4gPiAgCSQoTlVMTCkKPiA+ ID4gPj4gPgo+ID4gPiA+PiA+ICB0b29sc19wcm9nX2xpc3RzID0JCVwKPiA+ID4gPj4gPiArCWRw Y2RfZHVtcAkJXAo+ID4gPiA+PiA+ICAJaWd0X3N0YXRzCQlcCj4gPiA+ID4+ID4gIAlpbnRlbF9h dWRpb19kdW1wCVwKPiA+ID4gPj4gPiAgCWludGVsX3JlZwkJXAo+ID4gPiA+PiA+IGRpZmYgLS1n aXQgYS90b29scy9kcGNkX2R1bXAuYyBiL3Rvb2xzL2RwY2RfZHVtcC5jIG5ldyBmaWxlIG1vZGUK PiA+ID4gPj4gPiAxMDA2NDQgaW5kZXggMDAwMDAwMDAuLjFiOTg5ZTUzCj4gPiA+ID4+ID4gLS0t IC9kZXYvbnVsbAo+ID4gPiA+PiA+ICsrKyBiL3Rvb2xzL2RwY2RfZHVtcC5jCj4gPiA+ID4+ID4g QEAgLTAsMCArMSwxNTIgQEAKPiA+ID4gPj4gPiArLyoKPiA+ID4gPj4gPiArICogQ29weXJpZ2h0 IChjKSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gPiA+ID4+ID4gKyAqCj4gPiA+ID4+ID4gKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uCj4gPiA+ID4+ID4gK29idGFpbmluZyBhCj4gPiA+ID4+ID4gKyAqIGNvcHkgb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPiA+ID4gPj4g PiArIlNvZnR3YXJlIiksCj4gPiA+ID4+ID4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwo+ID4gPiA+PiA+ICt3aXRob3V0IGxpbWl0YXRp b24KPiA+ID4gPj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsCj4gPiA+ID4+ID4gK3N1YmxpY2Vuc2UsCj4gPiA+ID4+ID4g KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0bwo+ID4gPiA+PiA+ICt3aG9tIHRoZQo+ID4gPiA+PiA+ICsgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ ID4gPiA+PiA+ICsgKgo+ID4gPiA+PiA+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQo+ID4gPiA+PiA+ICsoaW5jbHVkaW5nIHRoZSBuZXh0 Cj4gPiA+ID4+ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGll cyBvciBzdWJzdGFudGlhbAo+ID4gPiA+PiA+ICtwb3J0aW9ucyBvZiB0aGUKPiA+ID4gPj4gPiAr ICogU29mdHdhcmUuCj4gPiA+ID4+ID4gKyAqCj4gPiA+ID4+ID4gKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQo+ID4gPiA+PiA+ICtL SU5ELCBFWFBSRVNTIE9SCj4gPiA+ID4+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiA+ID4gPj4gPiArTUVSQ0hBTlRBQklMSVRZ LAo+ID4gPiA+PiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O SU5GUklOR0VNRU5ULiAgSU4KPiA+IE5PCj4gPiA+ID4+ID4gK0VWRU5UIFNIQUxMCj4gPiA+ID4+ ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLAo+ID4gPiA+PiA+ICtEQU1BR0VTIE9SIE9USEVSCj4gPiA+ID4+ID4gKyAqIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPiA+ID4gPj4g PiArT1RIRVJXSVNFLCBBUklTSU5HCj4gPiA+ID4+ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UKPiA+IE9SCj4gPiA+ID4+ID4g K09USEVSIERFQUxJTkdTCj4gPiA+ID4+ID4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiA+ID4gPj4g PiArICoKPiA+ID4gPj4gPiArICovCj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsjaW5jbHVkZSA8 c3RkaW8uaD4KPiA+ID4gPj4gPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ID4gPiA+PiA+ICsjaW5j bHVkZSA8dW5pc3RkLmg+Cj4gPiA+ID4+ID4gKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiA+ID4g Pj4gPiArI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Cj4gPiA+ID4+ID4gKyNpbmNsdWRlIDxmY250bC5o Pgo+ID4gPiA+PiA+ICsjaW5jbHVkZSA8ZGlyZW50Lmg+Cj4gPiA+ID4+ID4gKyNpbmNsdWRlIDxz dHJpbmcuaD4KPiA+ID4gPj4gPiArCj4gPiA+ID4+ID4gK3N0cnVjdCBkcGNkX2Jsb2NrIHsKPiA+ ID4gPj4gPiArCS8qIERQQ0QgZHVtcCBzdGFydCBhZGRyZXNzLiAqLwo+ID4gPiA+PiA+ICsJdW5z aWduZWQgaW50IG9mZnNldDsKPiA+ID4gPj4gPiArCS8qIERQQ0QgZHVtcCBzaXplLiBJZiB1bnNl dCwgZGVmYXVsdHMgdG8gMS4gKi8KPiA+ID4gPj4gPiArCXNpemVfdCBzaXplOwo+ID4gPiA+PiA+ ICt9Owo+ID4gPiA+PiA+ICsKPiA+ID4gPj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcGNkX2Js b2NrIGRwY2RfZHVtcFtdID0gewo+ID4gPiA+PiA+ICsJLyogRFBfRFBDRF9SRVYgKi8KPiA+ID4g Pj4gPiArCXsgLm9mZnNldCA9IDAsIC5zaXplID0gMTUgfSwKPiA+ID4gPj4gPiArCS8qIERQX1BT Ul9TVVBQT1JUIHRvIERQX1BTUl9DQVBTKi8KPiA+ID4gPj4gPiArCXsgLm9mZnNldCA9ICAweDcw LCAuc2l6ZSA9IDIgfSwKPiA+ID4gPj4gPiArCS8qIERQX0RPV05TVFJFQU1fUE9SVF8wICovCj4g PiA+ID4+ID4gKwl7IC5vZmZzZXQgPSAgMHg4MCwgLnNpemUgPSAxNiB9LAo+ID4gPiA+PiA+ICsJ LyogRFBfTElOS19CV19TRVQgdG8gRFBfRURQX0NPTkZJR1VSQVRJT05fU0VUICovCj4gPiA+ID4+ ID4gKwl7IC5vZmZzZXQgPSAweDEwMCwgLnNpemUgPSAxMSB9LAo+ID4gPiA+PiA+ICsJLyogRFBf U0lOS19DT1VOVCB0byBEUF9BREpVU1RfUkVRVUVTVF9MQU5FMl8zICovCj4gPiA+ID4+ID4gKwl7 IC5vZmZzZXQgPSAweDIwMCwgLnNpemUgPSA4IH0sCj4gPiA+ID4+ID4gKwkvKiBEUF9TRVRfUE9X RVIgKi8KPiA+ID4gPj4gPiArCXsgLm9mZnNldCA9IDB4NjAwIH0sCj4gPiA+ID4+ID4gKwkvKiBE UF9FRFBfRFBDRF9SRVYgKi8KPiA+ID4gPj4gPiArCXsgLm9mZnNldCA9ICAweDcwMCB9LAo+ID4g PiA+PiA+ICsJLyogRFBfRURQX0dFTkVSQUxfQ0FQXzEgdG8gRFBfRURQX0dFTkVSQUxfQ0FQXzMg Ki8KPiA+ID4gPj4gPiArCXsgLm9mZnNldCA9IDB4NzAxLCAuc2l6ZSA9IDQgfSwKPiA+ID4gPj4g PiArCS8qIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIgdG8KPiA+IERQX0VEUF9CQUNL TElHSFRfRlJFUV9DQVBfTUFYX0xTQiAqLwo+ID4gPiA+PiA+ICsJeyAub2Zmc2V0ID0gMHg3MjAs IC5zaXplID0gMTZ9LAo+ID4gPiA+PiA+ICsJLyogRFBfRURQX0RCQ19NSU5JTVVNX0JSSUdIVE5F U1NfU0VUIHRvCj4gPiBEUF9FRFBfREJDX01BWElNVU1fQlJJR0hUTkVTU19TRVQgKi8KPiA+ID4g Pj4gPiArCXsgLm9mZnNldCA9ICAweDczMiwgLnNpemUgPSAyIH0sIH07Cj4gPiA+ID4+ID4gKwo+ ID4gPiA+PiA+ICt2b2lkIGR1bXBfYWxsKGludCBmZCkKPiA+ID4gPj4gPiArewo+ID4gPiA+PiA+ ICsJaW50IHJldCwgaSwgaiwgc2l6ZTsKPiA+ID4gPj4gPiArICAgICAgICBjaGFyIGJ1ZlszMl07 Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsJZm9yIChpID0gMDsgaSA8IHNpemVvZihkcGNkX2R1 bXApIC8gc2l6ZW9mKGRwY2RfZHVtcFswXSk7IGkrKykgewo+ID4gPiA+PiA+ICsJCXJldCA9IGxz ZWVrKGZkLCBkcGNkX2R1bXBbaV0ub2Zmc2V0LCBTRUVLX1NFVCk7Cj4gPiA+ID4+ID4gKwkJaWYg KHJldCA8IDApIHsKPiA+ID4gPj4gPiArCQkJZnByaW50ZihzdGRlcnIsICJsc2VlayB0byAlMDR4 IGZhaWxlZCFcbiIsCj4gPiBkcGNkX2R1bXBbaV0ub2Zmc2V0KTsKPiA+ID4gPj4gPiArCQkJcmV0 dXJuOwo+ID4gPiA+PiA+ICsJCX0KPiA+ID4gPj4gPiArCj4gPiA+ID4+ID4gKwkJc2l6ZSA9IGRw Y2RfZHVtcFtpXS5zaXplID8gZHBjZF9kdW1wW2ldLnNpemU6IDE7Cj4gPiA+ID4+ID4gKwkJcHJp bnRmKCIlMDR4OiAiLCBkcGNkX2R1bXBbaV0ub2Zmc2V0KTsKPiA+ID4gPj4gPiArCQlyZXQgPSBy ZWFkKGZkLCAmYnVmLCBzaXplKTsKPiA+ID4gPj4gPiArCQlpZiAocmV0IDwgMCkgewo+ID4gPiA+ PiA+ICsJCQlmcHJpbnRmKHN0ZGVyciwgInJlYWQgb2YgJWQgYnl0ZXMgdG8gJTA0eCBmYWlsZWQh XG4iLCBzaXplLAo+ID4gZHBjZF9kdW1wW2ldLm9mZnNldCk7Cj4gPiA+ID4+ID4gKwkJCXJldHVy bjsKPiA+ID4gPj4gPiArCQl9Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsJCWZvciAoaiA9IDA7 IGogPCBzaXplOyBqKyspCj4gPiA+ID4+ID4gKwkJCXByaW50ZigiICUwMngiLCBidWZbal0pOwo+ ID4gPiA+PiA+ICsJCXByaW50ZigiXG4iKTsKPiA+ID4gPj4gPiArCX0KPiA+ID4gPj4gPiArfQo+ ID4gPiA+PiA+ICsKPiA+ID4gPj4gPiAraW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ ID4gPiA+PiA+ICt7Cj4gPiA+ID4+ID4gKwlzdHJ1Y3QgZGlyZW50ICpkaXJlbnQ7Cj4gPiA+ID4+ ID4gKwlESVIgKmRpcjsKPiA+ID4gPj4gPiArCWNoYXIgZGV2X3BhdGhbUEFUSF9NQVhdOwo+ID4g PiA+PiA+ICsJY2hhciBzeXNmc19wYXRoW1BBVEhfTUFYXTsKPiA+ID4gPj4gPiArCWludCBkZXZf ZmQsIHN5c2ZzX2ZkLCByZXQgPSAwOwo+ID4gPiA+PiA+ICsJY2hhciBkcGNkX25hbWVbOF07Cj4g PiA+ID4+ID4gKwljaGFyIGRpc2NhcmQ7Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsJZGlyID0g b3BlbmRpcigiL3N5cy9jbGFzcy9kcm1fZHBfYXV4X2Rldi8iKTsKPiA+ID4gPj4gPiArCWlmICgh ZGlyKSB7Cj4gPiA+ID4+ID4gKwkJZnByaW50ZihzdGRlcnIsICJmYWlsIHRvIHJlYWQgL2Rldlxu Iik7Cj4gPiA+ID4+ID4gKwkJcmV0dXJuIC0xOwo+ID4gPiA+PiA+ICsJfQo+ID4gPiA+PiA+ICsK PiA+ID4gPj4gPiArCXdoaWxlICgoZGlyZW50ID0gcmVhZGRpcihkaXIpKSkgewo+ID4gPiA+PiA+ ICsJCWlmIChzdHJuY21wKGRpcmVudC0+ZF9uYW1lLCAiZHJtX2RwX2F1eCIsIDEwKSA9PSAwKSB7 Cj4gPiA+ID4+ID4gKwkJCXNwcmludGYoZGV2X3BhdGgsICIvZGV2LyVzIiwgZGlyZW50LT5kX25h bWUpOwo+ID4gPiA+PiA+ICsJCQlzcHJpbnRmKHN5c2ZzX3BhdGgsCj4gPiAiL3N5cy9jbGFzcy9k cm1fZHBfYXV4X2Rldi8lcy9uYW1lIiwKPiA+ID4gPj4gPiArCQkJCWRpcmVudC0+ZF9uYW1lKTsK PiA+ID4gPj4gPiArCj4gPiA+ID4+ID4gKwkJCXN5c2ZzX2ZkID0gb3BlbihzeXNmc19wYXRoLCBP X1JET05MWSk7Cj4gPiA+ID4+ID4gKwkJCWlmIChzeXNmc19mZCA8IDApIHsKPiA+ID4gPj4gPiAr CQkJCWZwcmludGYoc3RkZXJyLCJmYWlsIHRvIG9wZW4gJXNcbiIsIHN5c2ZzX3BhdGgpOwo+ID4g PiA+PiA+ICsJCQkJY29udGludWU7Cj4gPiA+ID4+ID4gKwkJCX0KPiA+ID4gPj4gPiArCj4gPiA+ ID4+ID4gKwkJCWRldl9mZCA9IG9wZW4oZGV2X3BhdGgsIE9fUkRPTkxZKTsKPiA+ID4gPj4gPiAr CQkJaWYgKGRldl9mZCA8IDApIHsKPiA+ID4gPj4gPiArCQkJCWZwcmludGYoc3RkZXJyLCJmYWls IHRvIG9wZW4gJXNcbiIsIGRldl9wYXRoKTsKPiA+ID4gPj4gPiArCQkJCWNvbnRpbnVlOwo+ID4g PiA+PiA+ICsJCQl9Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsJCQlyZXQgPSByZWFkKHN5c2Zz X2ZkLCAmZHBjZF9uYW1lLCBzaXplb2YoZHBjZF9uYW1lKSk7Cj4gPiA+ID4+ID4gKwkJCWlmIChy ZXQgPCAwKSB7Cj4gPiA+ID4+ID4gKwkJCQlmcHJpbnRmKHN0ZGVyciwgImZhaWwgdG8gcmVhZCBk cGNkIG5hbWUgZnJvbQo+ID4gJXNcblxuIiwgc3lzZnNfcGF0aCk7Cj4gPiA+ID4+ID4gKwkJCQlj b250aW51ZTsKPiA+ID4gPj4gPiArCQkJfQo+ID4gPiA+PiA+ICsJCQlkcGNkX25hbWVbcmV0XSA9 ICdcMCc7Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsJCQkvKiBEdW1teSByZWFkIHRvIGNoZWNr IGlmIGRwY2QgaXMgYXZhaWxhYmxlICovCj4gPiA+ID4+ID4gKwkJCXJldCA9IHJlYWQoZGV2X2Zk LCAmZGlzY2FyZCwgMSk7Cj4gPiA+ID4+ID4gKwkJCWlmIChyZXQgIT0gMSkgewo+ID4gPiA+PiA+ ICsJCQkJZnByaW50ZihzdGRlcnIsICJEUENEICVzIHNlZW1zIG5vdCBhdmFpbGFibGUuCj4gPiBz a2lwcGluZy4uLlxuIiwgZHBjZF9uYW1lKTsKPiA+ID4gPj4gPiArCQkJCWNvbnRpbnVlOwo+ID4g PiA+PiA+ICsJCQl9Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsJCQlwcmludGYoIkR1bXBpbmcg JXM6XG4iLCBkcGNkX25hbWUpOwo+ID4gPiA+PiA+ICsJCQlkdW1wX2FsbChkZXZfZmQpOwo+ID4g PiA+PiA+ICsJCQlwcmludGYoIlxuIik7Cj4gPiA+ID4+ID4gKwo+ID4gPiA+PiA+ICsKPiA+ID4g Pj4gPiArCj4gPiA+ID4+ID4gKwkJCWNsb3NlKHN5c2ZzX2ZkKTsKPiA+ID4gPj4gPiArCQkJY2xv c2UoZGV2X2ZkKTsKPiA+ID4gPj4gPiArCQl9Cj4gPiA+ID4+ID4gKwl9Cj4gPiA+ID4+ID4gKwo+ ID4gPiA+PiA+ICsJY2xvc2VkaXIoZGlyKTsKPiA+ID4gPj4gPiArCj4gPiA+ID4+ID4gKwlyZXR1 cm4gMDsKPiA+ID4gPj4gPiArfQo+ID4gPiA+PiA+IGRpZmYgLS1naXQgYS90b29scy9tZXNvbi5i dWlsZCBiL3Rvb2xzL21lc29uLmJ1aWxkIGluZGV4Cj4gPiA+ID4+ID4gZTQ1MTdkNjYuLjMzMjZh NWE3IDEwMDY0NAo+ID4gPiA+PiA+IC0tLSBhL3Rvb2xzL21lc29uLmJ1aWxkCj4gPiA+ID4+ID4g KysrIGIvdG9vbHMvbWVzb24uYnVpbGQKPiA+ID4gPj4gPiBAQCAtMTQsNiArMTQsNyBAQCBlbmRm b3JlYWNoCj4gPiA+ID4+ID4gIHRvb2xzX3Byb2dzID0gWwo+ID4gPiA+PiA+ICAJIyBGSVhNRSB3 ZSBhbHJlYWR5IGhhdmUgYSBsaWJ0ZXN0Y2FzZSB3aXRoIHRoaXMgbmFtZSBhcyB0YXJnZXQKPiA+ ID4gPj4gPiAgCSMnaWd0X3N0YXRzJywKPiA+ID4gPj4gPiArCSdkcGNkX2R1bXAnLAo+ID4gPiA+ PiA+ICAJJ2ludGVsX2F1ZGlvX2R1bXAnLAo+ID4gPiA+PiA+ICAJJ2ludGVsX2JhY2tsaWdodCcs Cj4gPiA+ID4+ID4gIAknaW50ZWxfYmlvc19kdW1wZXInLAo+ID4gPiA+Pgo+ID4gPiA+PiAtLQo+ ID4gPiA+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCj4g PiA+Cj4gPiA+IC0tCj4gPiA+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGlj cyBDZW50ZXIKPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiA+ID4gaWd0LWRldiBtYWlsaW5nIGxpc3QKPiA+ID4gaWd0LWRldkBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=