From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH i-g-t 5/8] tools/intel_vbt_decode: unify child device printing across versions Date: Fri, 20 Oct 2017 16:49:52 +0300 Message-ID: <20171020134952.GG10981@intel.com> References: <20171019152259.31615-1-jani.nikula@intel.com> <20171019152259.31615-6-jani.nikula@intel.com> <20171019172410.GZ10981@intel.com> <87a80mjdf8.fsf@intel.com> <20171020113352.GF10981@intel.com> <874lquj6wd.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D7D36EC63 for ; Fri, 20 Oct 2017 13:49:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <874lquj6wd.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMDQ6MTc6MDZQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gRnJpLCAyMCBPY3QgMjAxNywgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCAwMTo1 NjoxMVBNICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3 LCBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPiB3cm90ZToK PiA+PiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3IGF0IDA2OjIyOjU2UE0gKzAzMDAsIEphbmkgTmlr dWxhIHdyb3RlOgo+ID4+ID4+IE1ha2UgaXQgZWFzaWVyIHRvIGNvbXBhcmUgZHVtcGluZyBhZ2Fp bnN0IHRoZSBzdHJ1Y3QgZGVmaW5pdGlvbi4KPiA+PiA+PiAKPiA+PiA+PiBTaWduZWQtb2ZmLWJ5 OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ID4+ID4+IC0tLQo+ID4+ID4+ ICB0b29scy9pbnRlbF92YnRfZGVjb2RlLmMgfCAxMjggKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+PiAgMSBmaWxlIGNoYW5nZWQsIDcxIGluc2Vy dGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQo+ID4+ID4+IAo+ID4+ID4+IGRpZmYgLS1naXQgYS90 b29scy9pbnRlbF92YnRfZGVjb2RlLmMgYi90b29scy9pbnRlbF92YnRfZGVjb2RlLmMKPiA+PiA+ PiBpbmRleCA2OWNmMWU0YzZjYzYuLmJjNWYzODExMjYxOSAxMDA2NDQKPiA+PiA+PiAtLS0gYS90 b29scy9pbnRlbF92YnRfZGVjb2RlLmMKPiA+PiA+PiArKysgYi90b29scy9pbnRlbF92YnRfZGVj b2RlLmMKPiA+PiA+PiBAQCAtNDAxLDc0ICs0MDEsODggQEAgc3RhdGljIGNvbnN0IGNoYXIgKm1p cGlfYnJpZGdlX3R5cGUodWludDhfdCB0eXBlKQo+ID4+ID4+ICBzdGF0aWMgdm9pZCBkdW1wX2No aWxkX2RldmljZShzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKPiA+PiA+PiAgCQkJICAgICAgY29u c3Qgc3RydWN0IGNoaWxkX2RldmljZV9jb25maWcgKmNoaWxkKQo+ID4+ID4+ICB7Cj4gPj4gPj4g LQljb25zdCBzdHJ1Y3QgY2hpbGRfZGV2aWNlX2NvbmZpZyAqZWZwID0gY2hpbGQ7Cj4gPj4gPj4g LQo+ID4+ID4+ICAJaWYgKCFjaGlsZC0+ZGV2aWNlX3R5cGUpCj4gPj4gPj4gIAkJcmV0dXJuOwo+ ID4+ID4+ICAKPiA+PiA+PiArCXByaW50ZigiXHRDaGlsZCBkZXZpY2UgaW5mbzpcbiIpOwo+ID4+ ID4+ICsJcHJpbnRmKCJcdFx0RGV2aWNlIGhhbmRsZTogMHglMDR4ICglcylcbiIsIGNoaWxkLT5o YW5kbGUsCj4gPj4gPj4gKwkgICAgICAgY2hpbGRfZGV2aWNlX2hhbmRsZShjaGlsZC0+aGFuZGxl KSk7Cj4gPj4gPj4gKwlwcmludGYoIlx0XHREZXZpY2UgdHlwZTogMHglMDR4ICglcylcbiIsIGNo aWxkLT5kZXZpY2VfdHlwZSwKPiA+PiA+PiArCSAgICAgICBjaGlsZF9kZXZpY2VfdHlwZShjaGls ZC0+ZGV2aWNlX3R5cGUpKTsKPiA+PiA+PiArCWR1bXBfY2hpbGRfZGV2aWNlX3R5cGVfYml0cyhj aGlsZC0+ZGV2aWNlX3R5cGUpOwo+ID4+ID4+ICsKPiA+PiA+PiAgCWlmIChjb250ZXh0LT5iZGIt PnZlcnNpb24gPCAxNTIpIHsKPiA+PiA+PiAtCQlwcmludGYoIlx0Q2hpbGQgZGV2aWNlIGluZm86 XG4iKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHREZXZpY2UgdHlwZTogJTA0eCAoJXMpXG4iLCBj aGlsZC0+ZGV2aWNlX3R5cGUsCj4gPj4gPj4gLQkJICAgICAgIGNoaWxkX2RldmljZV90eXBlKGNo aWxkLT5kZXZpY2VfdHlwZSkpOwo+ID4+ID4+ICAJCXByaW50ZigiXHRcdFNpZ25hdHVyZTogJS4q c1xuIiwgKGludClzaXplb2YoY2hpbGQtPmRldmljZV9pZCksIGNoaWxkLT5kZXZpY2VfaWQpOwo+ ID4+ID4+IC0JCXByaW50ZigiXHRcdEFJTSBvZmZzZXQ6ICVkXG4iLCBjaGlsZC0+YWRkaW5fb2Zm c2V0KTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHREVk8gcG9ydDogMHglMDJ4XG4iLCBjaGlsZC0+ ZHZvX3BvcnQpOwo+ID4+ID4+IC0JfSBlbHNlIHsgLyogMTUyKyBoYXZlIEVGUCBibG9ja3MgaGVy ZSAqLwo+ID4+ID4+IC0JCXByaW50ZigiXHRFRlAgZGV2aWNlIGluZm86XG4iKTsKPiA+PiA+PiAt CQlwcmludGYoIlx0XHREZXZpY2UgaGFuZGxlOiAweCUwNHggKCVzKVxuIiwgZWZwLT5oYW5kbGUs Cj4gPj4gPj4gLQkJICAgICAgIGNoaWxkX2RldmljZV9oYW5kbGUoZWZwLT5oYW5kbGUpKTsKPiA+ PiA+PiAtCQlwcmludGYoIlx0XHREZXZpY2UgdHlwZTogMHglMDR4ICglcylcbiIsIGVmcC0+ZGV2 aWNlX3R5cGUsCj4gPj4gPj4gLQkJICAgICAgIGNoaWxkX2RldmljZV90eXBlKGVmcC0+ZGV2aWNl X3R5cGUpKTsKPiA+PiA+PiAtCQlkdW1wX2NoaWxkX2RldmljZV90eXBlX2JpdHMoZWZwLT5kZXZp Y2VfdHlwZSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0STJDIHNwZWVkOiAweCUwMnhcbiIsIGVm cC0+aTJjX3NwZWVkKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHREUCBvbmJvYXJkIHJlZHJpdmVy OiAweCUwMnhcbiIsIGVmcC0+ZHBfb25ib2FyZF9yZWRyaXZlcik7Cj4gPj4gPj4gLQkJcHJpbnRm KCJcdFx0RFAgb25kb2NrIHJlZHJpdmVyOiAweCUwMnhcbiIsIGVmcC0+ZHBfb25kb2NrX3JlZHJp dmVyKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRIRE1JIG1heCBkYXRhIHJhdGU6IDB4JTAyeFxu IiwgZWZwLT5oZG1pX21heF9kYXRhX3JhdGUpOwo+ID4+ID4+IC0JCXByaW50ZigiXHRcdEhETUkg bGV2ZWwgc2hpZnRlciB2YWx1ZTogMHglMDJ4XG4iLCBlZnAtPmhkbWlfbGV2ZWxfc2hpZnRlcl92 YWx1ZSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0T2Zmc2V0IHRvIERURCBidWZmZXIgZm9yIGVk aWRsZXNzIEVGUDogMHglMDJ4XG4iLCBlZnAtPmR0ZF9idWZfcHRyKTsKPiA+PiA+PiAtCQlwcmlu dGYoIlx0XHREdWFsIHBpcGUgZ2FuZ2VkIGVEUDogJXNcbiIsIFlFU05PKGVmcC0+Z2FuZ2VkX2Vk cCkpOwo+ID4+ID4+IC0JCXByaW50ZigiXHRcdENvbXByZXNzaW9uIG1ldGhvZCBDUFM6ICVzXG4i LCBZRVNOTyhlZnAtPmNvbXByZXNzaW9uX21ldGhvZCkpOwo+ID4+ID4+IC0JCXByaW50ZigiXHRc dENvbXByZXNzaW9uIGVuYWJsZTogJXNcbiIsIFlFU05PKGVmcC0+Y29tcHJlc3Npb25fZW5hYmxl KSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0RWRpZGxlc3MgRUZQOiAlc1xuIiwgWUVTTk8oZWZw LT5lZGlkbGVzc19lZnApKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRDb21wcmVzc2lvbiBzdHJ1 Y3R1cmUgaW5kZXg6IDB4JTAyeClcbiIsIGVmcC0+Y29tcHJlc3Npb25fc3RydWN0dXJlX2luZGV4 KTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRTbGF2ZSBEREkgcG9ydDogMHglMDJ4ICglcylcbiIs IGVmcC0+c2xhdmVfcG9ydCwgZHZvX3BvcnQoZWZwLT5zbGF2ZV9wb3J0KSk7Cj4gPj4gPj4gLQkJ cHJpbnRmKCJcdFx0QUlNIG9mZnNldDogJWRcbiIsIGNoaWxkLT5hZGRpbl9vZmZzZXQpOwo+ID4+ ID4+IC0JCXByaW50ZigiXHRcdFBvcnQ6IDB4JTAyeCAoJXMpXG4iLCBlZnAtPmR2b19wb3J0LCBk dm9fcG9ydChlZnAtPmR2b19wb3J0KSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0QUlNIEkyQyBw aW46IDB4JTAyeFxuIiwgZWZwLT5pMmNfcGluKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRBSU0g U2xhdmUgYWRkcmVzczogMHglMDJ4XG4iLCBlZnAtPnNsYXZlX2FkZHIpOwo+ID4+ID4+IC0JCXBy aW50ZigiXHRcdEREQyBwaW46IDB4JTAyeFxuIiwgZWZwLT5kZGNfcGluKTsKPiA+PiA+PiAtCQlw cmludGYoIlx0XHRFRElEIGJ1ZmZlciBwdHI6IDB4JTAyeFxuIiwgZWZwLT5lZGlkX3B0cik7Cj4g Pj4gPj4gLQkJcHJpbnRmKCJcdFx0RFZPIGNvbmZpZzogMHglMDJ4XG4iLCBlZnAtPmR2b19jZmcp Owo+ID4+ID4+IC0JCXByaW50ZigiXHRcdEhQRCBzZW5zZSBpbnZlcnQ6ICVzXG4iLCBZRVNOTyhl ZnAtPmhwZF9pbnZlcnQpKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRJYm9vc3QgZW5hYmxlOiAl c1xuIiwgWUVTTk8oZWZwLT5pYm9vc3QpKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRPbmJvYXJk IExTUENPTjogJXNcbiIsIFlFU05PKGVmcC0+bHNwY29uKSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJc dFx0TGFuZSByZXZlcnNhbDogJXNcbiIsIFlFU05PKGVmcC0+bGFuZV9yZXZlcnNhbCkpOwo+ID4+ ID4+IC0JCXByaW50ZigiXHRcdEVGUCByb3V0ZWQgdGhyb3VnaCBkb2NrOiAlc1xuIiwgWUVTTk8o ZWZwLT5lZnBfcm91dGVkKSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0SERNSSBjb21wYXRpYmxl PyAlc1xuIiwgWUVTTk8oZWZwLT5oZG1pX3N1cHBvcnQpKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0 XHREUCBjb21wYXRpYmxlPyAlc1xuIiwgWUVTTk8oZWZwLT5kcF9zdXBwb3J0KSk7Cj4gPj4gPj4g LQkJcHJpbnRmKCJcdFx0VE1EUyBjb21wYXRpYmxlPyAlc1xuIiwgWUVTTk8oZWZwLT50bWRzX3N1 cHBvcnQpKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHRBdXggY2hhbm5lbDogMHglMDJ4XG4iLCBl ZnAtPmF1eF9jaGFubmVsKTsKPiA+PiA+PiAtCQlwcmludGYoIlx0XHREb25nbGUgZGV0ZWN0OiAw eCUwMnhcbiIsIGVmcC0+ZG9uZ2xlX2RldGVjdCk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0SW50 ZWdyYXRlZCBlbmNvZGVyIGluc3RlYWQgb2YgU0RWTzogJXNcbiIsIFlFU05PKGVmcC0+aW50ZWdy YXRlZF9lbmNvZGVyKSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0SG90cGx1IGNvbm5lY3Qgc3Rh dHVzOiAweCUwMnhcbiIsIGVmcC0+aHBkX3N0YXR1cyk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0 U0RWTyBzdGFsbCBzaWduYWwgYXZhaWxhYmxlOiAlc1xuIiwgWUVTTk8oZWZwLT5zZHZvX3N0YWxs KSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0UGlwZSBjYXBhYmlsaXRpZXM6IDB4JTAyeFxuIiwg ZWZwLT5waXBlX2NhcCk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0RFZPIHdpcmluZzogMHglMDJ4 XG4iLCBlZnAtPmR2b193aXJpbmcpOwo+ID4+ID4+IC0JCXByaW50ZigiXHRcdE1JUEkgYnJpZGdl IHR5cGU6ICUwMnggKCVzKVxuIiwgZWZwLT5taXBpX2JyaWRnZV90eXBlLAo+ID4+ID4+IC0JCSAg ICAgICBtaXBpX2JyaWRnZV90eXBlKGVmcC0+bWlwaV9icmlkZ2VfdHlwZSkpOwo+ID4+ID4+IC0J CXByaW50ZigiXHRcdERldmljZSBjbGFzcyBleHRlbmRzaW9uOiAweCUwMnhcbiIsIGVmcC0+ZXh0 ZW5kZWRfdHlwZSk7Cj4gPj4gPj4gLQkJcHJpbnRmKCJcdFx0RFZPIGZ1bmN0aW9uOiAweCUwMnhc biIsIGVmcC0+ZHZvX2Z1bmN0aW9uKTsKPiA+PiA+PiArCX0gZWxzZSB7Cj4gPj4gPj4gKwkJcHJp bnRmKCJcdFx0STJDIHNwZWVkOiAweCUwMnhcbiIsIGNoaWxkLT5pMmNfc3BlZWQpOwo+ID4+ID4+ ICsJCXByaW50ZigiXHRcdERQIG9uYm9hcmQgcmVkcml2ZXI6IDB4JTAyeFxuIiwgY2hpbGQtPmRw X29uYm9hcmRfcmVkcml2ZXIpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdERQIG9uZG9jayByZWRy aXZlcjogMHglMDJ4XG4iLCBjaGlsZC0+ZHBfb25kb2NrX3JlZHJpdmVyKTsKPiA+PiA+PiArCQlw cmludGYoIlx0XHRIRE1JIGxldmVsIHNoaWZ0ZXIgdmFsdWU6IDB4JTAyeFxuIiwgY2hpbGQtPmhk bWlfbGV2ZWxfc2hpZnRlcl92YWx1ZSk7Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0SERNSSBtYXgg ZGF0YSByYXRlOiAweCUwMnhcbiIsIGNoaWxkLT5oZG1pX21heF9kYXRhX3JhdGUpOwo+ID4+ID4+ ICsJCXByaW50ZigiXHRcdE9mZnNldCB0byBEVEQgYnVmZmVyIGZvciBlZGlkbGVzcyBDSElMRDog MHglMDJ4XG4iLCBjaGlsZC0+ZHRkX2J1Zl9wdHIpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdEVk aWRsZXNzIEVGUDogJXNcbiIsIFlFU05PKGNoaWxkLT5lZGlkbGVzc19lZnApKTsKPiA+PiA+PiAr CQlwcmludGYoIlx0XHRDb21wcmVzc2lvbiBlbmFibGU6ICVzXG4iLCBZRVNOTyhjaGlsZC0+Y29t cHJlc3Npb25fZW5hYmxlKSk7Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0Q29tcHJlc3Npb24gbWV0 aG9kIENQUzogJXNcbiIsIFlFU05PKGNoaWxkLT5jb21wcmVzc2lvbl9tZXRob2QpKTsKPiA+PiA+ PiArCQlwcmludGYoIlx0XHREdWFsIHBpcGUgZ2FuZ2VkIGVEUDogJXNcbiIsIFlFU05PKGNoaWxk LT5nYW5nZWRfZWRwKSk7Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0Q29tcHJlc3Npb24gc3RydWN0 dXJlIGluZGV4OiAweCUwMngpXG4iLCBjaGlsZC0+Y29tcHJlc3Npb25fc3RydWN0dXJlX2luZGV4 KTsKPiA+PiA+PiArCQlwcmludGYoIlx0XHRTbGF2ZSBEREkgcG9ydDogMHglMDJ4ICglcylcbiIs IGNoaWxkLT5zbGF2ZV9wb3J0LCBkdm9fcG9ydChjaGlsZC0+c2xhdmVfcG9ydCkpOwo+ID4+ID4+ ICsJfQo+ID4+ID4+ICsKPiA+PiA+PiArCXByaW50ZigiXHRcdEFJTSBvZmZzZXQ6ICVkXG4iLCBj aGlsZC0+YWRkaW5fb2Zmc2V0KTsKPiA+PiA+PiArCXByaW50ZigiXHRcdERWTyBQb3J0OiAweCUw MnggKCVzKVxuIiwgY2hpbGQtPmR2b19wb3J0LCBkdm9fcG9ydChjaGlsZC0+ZHZvX3BvcnQpKTsK PiA+PiA+PiArCj4gPj4gPj4gKwlpZiAoY29udGV4dC0+YmRiLT52ZXJzaW9uIDwgMTUyKQo+ID4+ ID4+ICsJCXJldHVybjsKPiA+PiA+PiArCj4gPj4gPj4gKwlwcmludGYoIlx0XHRBSU0gSTJDIHBp bjogMHglMDJ4XG4iLCBjaGlsZC0+aTJjX3Bpbik7Cj4gPj4gPj4gKwlwcmludGYoIlx0XHRBSU0g U2xhdmUgYWRkcmVzczogMHglMDJ4XG4iLCBjaGlsZC0+c2xhdmVfYWRkcik7Cj4gPj4gPj4gKwlw cmludGYoIlx0XHREREMgcGluOiAweCUwMnhcbiIsIGNoaWxkLT5kZGNfcGluKTsKPiA+PiA+PiAr CXByaW50ZigiXHRcdEVESUQgYnVmZmVyIHB0cjogMHglMDJ4XG4iLCBjaGlsZC0+ZWRpZF9wdHIp Owo+ID4+ID4+ICsJcHJpbnRmKCJcdFx0RFZPIGNvbmZpZzogMHglMDJ4XG4iLCBjaGlsZC0+ZHZv X2NmZyk7Cj4gPj4gPj4gKwo+ID4+ID4+ICsJaWYgKGNvbnRleHQtPmJkYi0+dmVyc2lvbiA8IDE1 OCkgewo+ID4+ID4+ICsJCXByaW50ZigiXHRcdERWTzIgUG9ydDogMHglMDJ4ICglcylcbiIsIGNo aWxkLT5kdm8yX3BvcnQsIGR2b19wb3J0KGNoaWxkLT5kdm8yX3BvcnQpKTsKPiA+PiA+PiArCQlw cmludGYoIlx0XHRJMkMyIHBpbjogMHglMDJ4XG4iLCBjaGlsZC0+aTJjMl9waW4pOwo+ID4+ID4+ ICsJCXByaW50ZigiXHRcdFNsYXZlMiBhZGRyZXNzOiAweCUwMnhcbiIsIGNoaWxkLT5zbGF2ZTJf YWRkcik7Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0RERDMiBwaW46IDB4JTAyeFxuIiwgY2hpbGQt PmRkYzJfcGluKTsKPiA+PiA+PiArCX0gZWxzZSB7Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0RUZQ IHJvdXRlZCB0aHJvdWdoIGRvY2s6ICVzXG4iLCBZRVNOTyhjaGlsZC0+ZWZwX3JvdXRlZCkpOwo+ ID4+ID4+ICsJCXByaW50ZigiXHRcdExhbmUgcmV2ZXJzYWw6ICVzXG4iLCBZRVNOTyhjaGlsZC0+ bGFuZV9yZXZlcnNhbCkpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdE9uYm9hcmQgTFNQQ09OOiAl c1xuIiwgWUVTTk8oY2hpbGQtPmxzcGNvbikpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdElib29z dCBlbmFibGU6ICVzXG4iLCBZRVNOTyhjaGlsZC0+aWJvb3N0KSk7Cj4gPj4gPj4gKwkJcHJpbnRm KCJcdFx0SFBEIHNlbnNlIGludmVydDogJXNcbiIsIFlFU05PKGNoaWxkLT5ocGRfaW52ZXJ0KSk7 Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0SERNSSBjb21wYXRpYmxlPyAlc1xuIiwgWUVTTk8oY2hp bGQtPmhkbWlfc3VwcG9ydCkpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdERQIGNvbXBhdGlibGU/ ICVzXG4iLCBZRVNOTyhjaGlsZC0+ZHBfc3VwcG9ydCkpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRc dFRNRFMgY29tcGF0aWJsZT8gJXNcbiIsIFlFU05PKGNoaWxkLT50bWRzX3N1cHBvcnQpKTsKPiA+ PiA+PiArCQlwcmludGYoIlx0XHRBdXggY2hhbm5lbDogMHglMDJ4XG4iLCBjaGlsZC0+YXV4X2No YW5uZWwpOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdERvbmdsZSBkZXRlY3Q6IDB4JTAyeFxuIiwg Y2hpbGQtPmRvbmdsZV9kZXRlY3QpOwo+ID4+ID4KPiA+PiA+IFRoZSB2ZXJzaW9uIG9mIHRoZSBz cGVjIEkgaGF2ZSBhdCBoYW5kIHNheXMgYXV4IGFuZCBkb25nbGUgYXJlCj4gPj4gPiBhbHJlYWR5 IHBhcnQgb2YgdmVyc2lvbiAxNTUuCj4gPj4gCj4gPj4gU2VlbXMgbGlrZSBkdm8yL2kyYzIvc2xh dmUyL2RkYzIgd2VyZSBjb252ZXJ0ZWQgdG8gZmxhZ3MgYXQgMTU1LiBPa2F5IGlmCj4gPj4gSSBq dXN0IGNoYW5nZSB0aGUgY29uZGl0aW9uIGFib3ZlIGZyb20gPCAxNTggdG8gPCAxNTU/Cj4gPgo+ ID4gQXllLgo+ID4KPiA+IEkgZGlkbid0IHRyYXdsIHRocm91Z2ggYWxsIHRoZSBncml0dHkgZGV0 YWlscyBvZiB0aGUgZW50aXJlIHNlcmllcywgYnV0Cj4gPiB3aGF0IEkgZG8gc2VlIEkgbGlrZSwg c28gZm9yIHRoZSBzZXJpZXMKPiA+IEFja2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgo+IAo+IFRoYW5rcywgcHVzaGVkIHRoZSBsb3QuCj4gCj4g PiBJIHdvbmRlciBpZiB3ZSBzaG91bGQgYWRkIG1vcmUgdmVyc2lvbiBjaGVja3Mgc28gdGhhdCB3 ZSB3b3VsZG4ndCBkdW1wCj4gPiB0aGluZ3MgdGhhdCBhcmVuJ3QgYWN0dWFsbHkgc3BlY2lmaWVk PyBPbmUgY3JhenkgaWRlYSBJIGhhZCBpcyB0aGF0IHdlCj4gPiBjb3VsZCBkZWZpbmUgYSBwYXJh bGxlbCBzdHJ1Y3R1cmUgd2hpY2ggd291bGQgaGF2ZSBhIG1hdGNoaW5nIHU4IG1lbWJlcgo+ID4g dG8gZXZlcnl0aGluZyBpbiB0aGUgY2hpbGRfZGV2aWNlX2NvbmZpZywgYW5kIHdlIHdvdWxkIGlu aXRpYWxpemUKPiA+IGVhY2ggbWVtYmVyIHdpdGggdGhlIGNvcnJlY3QgdmVyc2lvbiBudW1iZXIu IFRoZW4gd2UgY291bGQgaGF2ZSBzb21lCj4gPiBraW5kIG9mIG5pY2UgZHVtcCBtYWNyby9mdW5j dGlvbiB0aGF0IGNoZWNrcyB0aGUgY3VycmVudCBWQlQgdmVyc2lvbgo+ID4gYWdhaW5zdCB0aGUg bnVtYmVyIGZyb20gc2FpZCBwYXJhbGxlbCBzdHJ1Y3R1cmUuCj4gCj4gT3ZlcmVuZ2luZWVyaW5n PyA7KQoKUG9zc2libHkuIEJ1dCBpdCBzZWVtcyBsaWtlIGEgbXVjaCBuaWNlciB3YXkgdG8gZ28g YWJvdXQgaXQgdGhhdApzcHJpbmtpbmcgJ2lmICh2ZXJzaW9uID49IC4uLiknIGNoZWNrcyBhbGwg b3Zlci4gQWx0aG91Z2ggSSBndWVzcwp3ZSBjb3VsZCBhbHNvIGp1c3QgcGFzcyB0aGUgaGFyZGNv ZGVkIG1pbmltdW0gdmVyc2lvbiB0byB0aGF0Cm1hY3JvL2Z1bmN0aW9uIEkgd2FzIHRoaW5raW5n IHdlJ2QgYWRkLgoKPiAKPiBCUiwKPiBKYW5pLgo+IAo+IAo+ID4KPiA+PiAKPiA+PiBCUiwKPiA+ PiBKYW5pLgo+ID4+IAo+ID4+IAo+ID4+ID4KPiA+PiA+PiArCX0KPiA+PiA+PiArCj4gPj4gPj4g KwlwcmludGYoIlx0XHRQaXBlIGNhcGFiaWxpdGllczogMHglMDJ4XG4iLCBjaGlsZC0+cGlwZV9j YXApOwo+ID4+ID4+ICsJcHJpbnRmKCJcdFx0U0RWTyBzdGFsbCBzaWduYWwgYXZhaWxhYmxlOiAl c1xuIiwgWUVTTk8oY2hpbGQtPnNkdm9fc3RhbGwpKTsKPiA+PiA+PiArCXByaW50ZigiXHRcdEhv dHBsdSBjb25uZWN0IHN0YXR1czogMHglMDJ4XG4iLCBjaGlsZC0+aHBkX3N0YXR1cyk7Cj4gPj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiA+PiA+IFByZS1leGlzdGluZyB0eXBvCj4g Pj4gPgo+ID4+ID4+ICsJcHJpbnRmKCJcdFx0SW50ZWdyYXRlZCBlbmNvZGVyIGluc3RlYWQgb2Yg U0RWTzogJXNcbiIsIFlFU05PKGNoaWxkLT5pbnRlZ3JhdGVkX2VuY29kZXIpKTsKPiA+PiA+PiAr CXByaW50ZigiXHRcdERWTyB3aXJpbmc6IDB4JTAyeFxuIiwgY2hpbGQtPmR2b193aXJpbmcpOwo+ ID4+ID4+ICsKPiA+PiA+PiArCWlmIChjb250ZXh0LT5iZGItPnZlcnNpb24gPCAxNzEpIHsKPiA+ PiA+PiArCQlwcmludGYoIlx0XHREVk8yIHdpcmluZzogMHglMDJ4XG4iLCBjaGlsZC0+ZHZvMl93 aXJpbmcpOwo+ID4+ID4+ICsJfSBlbHNlIHsKPiA+PiA+PiArCQlwcmludGYoIlx0XHRNSVBJIGJy aWRnZSB0eXBlOiAlMDJ4ICglcylcbiIsIGNoaWxkLT5taXBpX2JyaWRnZV90eXBlLAo+ID4+ID4+ ICsJCSAgICAgICBtaXBpX2JyaWRnZV90eXBlKGNoaWxkLT5taXBpX2JyaWRnZV90eXBlKSk7Cj4g Pj4gPj4gIAl9Cj4gPj4gPj4gIAo+ID4+ID4+ICsJcHJpbnRmKCJcdFx0RGV2aWNlIGNsYXNzIGV4 dGVuZHNpb246IDB4JTAyeFxuIiwgY2hpbGQtPmV4dGVuZGVkX3R5cGUpOwo+ID4+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gPj4gPiBkaXR0bwo+ID4+ID4KPiA+ PiA+PiArCXByaW50ZigiXHRcdERWTyBmdW5jdGlvbjogMHglMDJ4XG4iLCBjaGlsZC0+ZHZvX2Z1 bmN0aW9uKTsKPiA+PiA+PiArCj4gPj4gPj4gIAlpZiAoY29udGV4dC0+YmRiLT52ZXJzaW9uID49 IDE5NSkgewo+ID4+ID4+IC0JCXByaW50ZigiXHRcdERQIFVTQiB0eXBlIEMgc3VwcG9ydDogJXNc biIsIFlFU05PKGVmcC0+ZHBfdXNiX3R5cGVfYykpOwo+ID4+ID4+IC0JCXByaW50ZigiXHRcdDJY IERQIEdQSU8gaW5kZXg6IDB4JTAyeFxuIiwgZWZwLT5kcF9ncGlvX2luZGV4KTsKPiA+PiA+PiAt CQlwcmludGYoIlx0XHQyWCBEUCBHUElPIHBpbiBudW1iZXI6IDB4JTAyeFxuIiwgZWZwLT5kcF9n cGlvX3Bpbl9udW0pOwo+ID4+ID4+ICsJCXByaW50ZigiXHRcdERQIFVTQiB0eXBlIEMgc3VwcG9y dDogJXNcbiIsIFlFU05PKGNoaWxkLT5kcF91c2JfdHlwZV9jKSk7Cj4gPj4gPj4gKwkJcHJpbnRm KCJcdFx0MlggRFAgR1BJTyBpbmRleDogMHglMDJ4XG4iLCBjaGlsZC0+ZHBfZ3Bpb19pbmRleCk7 Cj4gPj4gPj4gKwkJcHJpbnRmKCJcdFx0MlggRFAgR1BJTyBwaW4gbnVtYmVyOiAweCUwMnhcbiIs IGNoaWxkLT5kcF9ncGlvX3Bpbl9udW0pOwo+ID4+ID4+ICAJfQo+ID4+ID4+ICAKPiA+PiA+PiAg CWlmIChjb250ZXh0LT5iZGItPnZlcnNpb24gPj0gMTk2KSB7Cj4gPj4gPj4gLQkJcHJpbnRmKCJc dFx0SUJvb3N0IGxldmVsIGZvciBIRE1JOiAweCUwMnhcbiIsIGVmcC0+aGRtaV9pYm9vc3RfbGV2 ZWwpOwo+ID4+ID4+IC0JCXByaW50ZigiXHRcdElCb29zdCBsZXZlbCBmb3IgRFAvZURQOiAweCUw MnhcbiIsIGVmcC0+ZHBfaWJvb3N0X2xldmVsKTsKPiA+PiA+PiArCQlwcmludGYoIlx0XHRJQm9v c3QgbGV2ZWwgZm9yIEhETUk6IDB4JTAyeFxuIiwgY2hpbGQtPmhkbWlfaWJvb3N0X2xldmVsKTsK PiA+PiA+PiArCQlwcmludGYoIlx0XHRJQm9vc3QgbGV2ZWwgZm9yIERQL2VEUDogMHglMDJ4XG4i LCBjaGlsZC0+ZHBfaWJvb3N0X2xldmVsKTsKPiA+PiA+PiAgCX0KPiA+PiA+PiAgfQo+ID4+ID4+ ICAKPiA+PiA+PiAtLSAKPiA+PiA+PiAyLjExLjAKPiA+PiAKPiA+PiAtLSAKPiA+PiBKYW5pIE5p a3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiAKPiAtLSAKPiBKYW5p IE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0tIApWaWxsZSBT eXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=