From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC] drm: add atomic state printing Date: Fri, 14 Oct 2016 12:16:50 +0300 Message-ID: <20161014091650.GW4329@intel.com> References: <1476378989-11335-1-git-send-email-robdclark@gmail.com> <20161013182440.GQ4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 274436EBE8 for ; Fri, 14 Oct 2016 09:16:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark Cc: "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBPY3QgMTMsIDIwMTYgYXQgMDQ6MTQ6MDRQTSAtMDQwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IE9uIFRodSwgT2N0IDEzLCAyMDE2IGF0IDI6MjQgUE0sIFZpbGxlIFN5cmrDpGzDpAo+IDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4gd3JvdGU6Cj4gPiBPbiBUaHUsIE9jdCAxMywg MjAxNiBhdCAwMToxNjoyOVBNIC0wNDAwLCBSb2IgQ2xhcmsgd3JvdGU6Cj4gPj4gU29tZXRpbWVz IHdlIGp1c3Qgd2FudCB0byBzZWUgdGhlIGF0b21pYyBzdGF0ZSwgd2l0aG91dCBnZXR0aW5nIHNv IG1hbnkKPiA+PiBvdGhlciBkZWJ1ZyB0cmFjZXMuICBTbyBhZGQgYSBuZXcgZHJtLmRlYnVnIGJp dCBmb3IgdGhhdC4KPiA+Pgo+ID4+IE5vdGU6IGl0IHdvdWxkIGJlIG5pY2UgdG8gcHV0IHRoZSBo ZWxwZXJzIGZvciBwcmludGluZyBwbGFuZS9jcnRjIHN0YXRlCj4gPj4gbmV4dCB0byBwbGFuZS9j cnRjIHN0YXRlIHN0cnVjdHMuLiBzbyBzb21lb25lIGFkZGluZyBuZXcgc3R1ZmYgdG8gdGhlCj4g Pj4gc3RhdGUgc3RydWN0cyBpcyBtb3JlIGxpa2VseSB0byByZW1lbWJlciB0byB1cGRhdGUgdGhl IGNvcnJlc3BvbmRpbmcKPiA+PiBwcmludF9zdGF0ZSgpIGZ4bi4gIEJ1dCB0aGUgaGVhZGVyIGlu Y2x1ZGUgb3JkZXIgZm9yIHRoYXQgZG9lc24ndCByZWFsbHkKPiA+PiB3b3JrIG91dC4KPiA+Pgo+ ID4+IEFsc28sIGp1c3QgaW5jbHVkaW5nIHRoZSBjb3JyZXNwb25kaW5nIG1kcCBiaXRzIGFzIGFu IGV4YW1wbGUuICBEdW1wcwo+ID4+IG91dCBzb21ldGhpbmcgbGlrZToKPiA+Pgo+ID4+IFtkcm1d IHBsYW5lWzI0XTogUkdCMAo+ID4+IFtkcm1dICAgICAgICAgY3J0Yz1jcnRjLTAKPiA+PiBbZHJt XSAgICAgICAgIGZiPTM1Cj4gPj4gW2RybV0gICAgICAgICBjcnRjLXBvcz1bMCwwLCA3MjB4NDAw XQo+ID4+IFtkcm1dICAgICAgICAgc3JjLXBvcz1bMCwwLCA3MjB4NDAwXQo+ID4+IFtkcm1dICAg ICAgICAgcm90YXRpb249MAo+ID4+IFtkcm1dICAgICAgICAgcHJlbXVsdGlwbGllZD0wCj4gPj4g W2RybV0gICAgICAgICB6cG9zPTEKPiA+PiBbZHJtXSAgICAgICAgIGFscGhhPTI1NQo+ID4+IFtk cm1dICAgICAgICAgc3RhZ2U9U1RBR0UwCj4gPj4gW2RybV0gICAgICAgICBtb2RlX2NoYW5nZWQ9 MQo+ID4+IFtkcm1dICAgICAgICAgcGVuZGluZz0wCj4gPj4gW2RybV0gY3J0Y1syN106IGNydGMt MAo+ID4+IFtkcm1dICAgICAgICAgZW5hYmxlPTEKPiA+PiBbZHJtXSAgICAgICAgIGFjdGl2ZT0w Cj4gPj4gW2RybV0gICAgICAgICBwbGFuZXNfY2hhbmdlZD0xCj4gPj4gW2RybV0gICAgICAgICBt b2RlX2NoYW5nZWQ9MQo+ID4+IFtkcm1dICAgICAgICAgYWN0aXZlX2NoYW5nZWQ9MAo+ID4+IFtk cm1dICAgICAgICAgY29ubmVjdG9yc19jaGFuZ2VkPTEKPiA+PiBbZHJtXSAgICAgICAgIGNvbG9y X21nbXRfY2hhbmdlZD0wCj4gPj4gW2RybV0gICAgICAgICBwbGFuZV9tYXNrPTEKPiA+PiBbZHJt XSAgICAgICAgIGNvbm5lY3Rvcl9tYXNrPTEKPiA+PiBbZHJtXSAgICAgICAgIGVuY29kZXJfbWFz az0xCj4gPj4gW2RybV0gICAgICAgICBtb2RlOiAwOiIxOTIweDEwODAiIDYwIDE0ODUwMCAxOTIw IDIwMDggMjA1MiAyMjAwIDEwODAgMTA4NCAxMDg5IDExMjUgMHg0OCAweDUKPiA+PiAtLS0KPiA+ PiAgZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYyAgfCAgMyArKwo+ID4+ ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmggICB8IDI4ICsrKysrKysr KysrKysrKysrKwo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUu YyB8ICA0ICsrLQo+ID4+ICBpbmNsdWRlL2RybS9kcm1QLmggICAgICAgICAgICAgICAgICAgICAg ICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+PiAgNCBmaWxlcyBjaGFu Z2VkLCA4MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4+Cj4gPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9jcnRjLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jCj4gPj4gaW5kZXggZTQyZjYyZC4uZGE4NDE3 OSAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0 Yy5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYwo+ ID4+IEBAIC00MzUsNiArNDM1LDkgQEAgc3RhdGljIHZvaWQgbWRwNV9jcnRjX2F0b21pY19mbHVz aChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPj4KPiA+PiAgICAgICBEQkcoIiVzOiBldmVudDog JXAiLCBtZHA1X2NydGMtPm5hbWUsIGNydGMtPnN0YXRlLT5ldmVudCk7Cj4gPj4KPiA+PiArICAg ICBEUk1fREVCVUdfU1RBVEUoImNydGNbJXVdOiAlc1xuIiwgY3J0Yy0+YmFzZS5pZCwgY3J0Yy0+ bmFtZSk7Cj4gPj4gKyAgICAgZHJtX3ByaW50X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4+ ICsKPiA+PiAgICAgICBXQVJOX09OKG1kcDVfY3J0Yy0+ZXZlbnQpOwo+ID4+Cj4gPj4gICAgICAg c3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ID4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmggYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmgKPiA+PiBpbmRleCBlNGIzZmIzLi40NjZhY2Jj IDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMu aAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaAo+ID4+ IEBAIC05Miw2ICs5MiwyMiBAQCBzdHJ1Y3QgbWRwNV9wbGFuZV9zdGF0ZSB7Cj4gPj4gICNkZWZp bmUgdG9fbWRwNV9wbGFuZV9zdGF0ZSh4KSBcCj4gPj4gICAgICAgICAgICAgICBjb250YWluZXJf b2YoeCwgc3RydWN0IG1kcDVfcGxhbmVfc3RhdGUsIGJhc2UpCj4gPj4KPiA+PiArc3RhdGljIGlu bGluZSBjb25zdCBjaGFyICpzdGFnZTJuYW1lKGVudW0gbWRwX21peGVyX3N0YWdlX2lkIHN0YWdl KTsKPiA+PiArCj4gPj4gK3N0YXRpYyBpbmxpbmUgdm9pZAo+ID4+ICttZHA1X3ByaW50X3BsYW5l X3N0YXRlKGNvbnN0IHN0cnVjdCBtZHA1X3BsYW5lX3N0YXRlICpzdGF0ZSkKPiA+PiArewo+ID4+ ICsgICAgIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gc3RhdGUtPmJhc2UucGxhbmU7 Cj4gPj4gKyAgICAgRFJNX0RFQlVHX1NUQVRFKCJwbGFuZVsldV06ICVzXG4iLCBwbGFuZS0+YmFz ZS5pZCwgcGxhbmUtPm5hbWUpOwo+ID4+ICsgICAgIGRybV9wcmludF9wbGFuZV9zdGF0ZSgmc3Rh dGUtPmJhc2UpOwo+ID4+ICsgICAgIERSTV9ERUJVR19TVEFURSgiXHRwcmVtdWx0aXBsaWVkPSV1 XG4iLCBzdGF0ZS0+cHJlbXVsdGlwbGllZCk7Cj4gPj4gKyAgICAgRFJNX0RFQlVHX1NUQVRFKCJc dHpwb3M9JXVcbiIsIHN0YXRlLT56cG9zKTsKPiA+PiArICAgICBEUk1fREVCVUdfU1RBVEUoIlx0 YWxwaGE9JXVcbiIsIHN0YXRlLT5hbHBoYSk7Cj4gPj4gKyAgICAgRFJNX0RFQlVHX1NUQVRFKCJc dHN0YWdlPSVzXG4iLCBzdGFnZTJuYW1lKHN0YXRlLT5zdGFnZSkpOwo+ID4+ICsgICAgIERSTV9E RUJVR19TVEFURSgiXHRtb2RlX2NoYW5nZWQ9JXVcbiIsIHN0YXRlLT5tb2RlX2NoYW5nZWQpOwo+ ID4+ICsgICAgIERSTV9ERUJVR19TVEFURSgiXHRwZW5kaW5nPSV1XG4iLCBzdGF0ZS0+cGVuZGlu Zyk7Cj4gPj4gK30KPiA+PiArCj4gPj4gIGVudW0gbWRwNV9pbnRmX21vZGUgewo+ID4+ICAgICAg IE1EUDVfSU5URl9NT0RFX05PTkUgPSAwLAo+ID4+Cj4gPj4gQEAgLTEyMCw2ICsxMzYsMTggQEAg c3RhdGljIGlubGluZSB1MzIgbWRwNV9yZWFkKHN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMsIHUz MiByZWcpCj4gPj4gICAgICAgcmV0dXJuIG1zbV9yZWFkbChtZHA1X2ttcy0+bW1pbyArIHJlZyk7 Cj4gPj4gIH0KPiA+Pgo+ID4+ICtzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnN0YWdlMm5hbWUo ZW51bSBtZHBfbWl4ZXJfc3RhZ2VfaWQgc3RhZ2UpCj4gPj4gK3sKPiA+PiArICAgICBzdGF0aWMg Y29uc3QgY2hhciAqbmFtZXNbXSA9IHsKPiA+PiArI2RlZmluZSBOQU1FKG4pIFtuXSA9ICNuCj4g Pj4gKyAgICAgICAgICAgICBOQU1FKFNUQUdFX1VOVVNFRCksIE5BTUUoU1RBR0VfQkFTRSksCj4g Pj4gKyAgICAgICAgICAgICBOQU1FKFNUQUdFMCksIE5BTUUoU1RBR0UxKSwgTkFNRShTVEFHRTIp LAo+ID4+ICsgICAgICAgICAgICAgTkFNRShTVEFHRTMpLCBOQU1FKFNUQUdFNCksIE5BTUUoU1RB R0U2KSwKPiA+PiArI3VuZGVmIE5BTUUKPiA+PiArICAgICB9Owo+ID4+ICsgICAgIHJldHVybiBu YW1lc1tzdGFnZV07Cj4gPj4gK30KPiA+PiArCj4gPj4gIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hh ciAqcGlwZTJuYW1lKGVudW0gbWRwNV9waXBlIHBpcGUpCj4gPj4gIHsKPiA+PiAgICAgICBzdGF0 aWMgY29uc3QgY2hhciAqbmFtZXNbXSA9IHsKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9t ZHA1L21kcDVfcGxhbmUuYwo+ID4+IGluZGV4IDQzMmMwOTguLmRmMzAxZGYgMTAwNjQ0Cj4gPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKPiA+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYwo+ID4+IEBAIC0zNTYs NiArMzU2LDggQEAgc3RhdGljIHZvaWQgbWRwNV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+ID4+Cj4gPj4gICAgICAgREJHKCIlczogdXBkYXRlIiwgbWRwNV9w bGFuZS0+bmFtZSk7Cj4gPj4KPiA+PiArICAgICBtZHA1X3ByaW50X3BsYW5lX3N0YXRlKHRvX21k cDVfcGxhbmVfc3RhdGUoc3RhdGUpKTsKPiA+PiArCj4gPj4gICAgICAgaWYgKCFwbGFuZV9lbmFi bGVkKHN0YXRlKSkgewo+ID4+ICAgICAgICAgICAgICAgdG9fbWRwNV9wbGFuZV9zdGF0ZShzdGF0 ZSktPnBlbmRpbmcgPSB0cnVlOwo+ID4+ICAgICAgIH0gZWxzZSBpZiAodG9fbWRwNV9wbGFuZV9z dGF0ZShzdGF0ZSktPm1vZGVfY2hhbmdlZCkgewo+ID4+IEBAIC05MDQsNyArOTA2LDcgQEAgc3Ry dWN0IGRybV9wbGFuZSAqbWRwNV9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g Pj4gICAgICAgdHlwZSA9IHByaXZhdGVfcGxhbmUgPyBEUk1fUExBTkVfVFlQRV9QUklNQVJZIDog RFJNX1BMQU5FX1RZUEVfT1ZFUkxBWTsKPiA+PiAgICAgICByZXQgPSBkcm1fdW5pdmVyc2FsX3Bs YW5lX2luaXQoZGV2LCBwbGFuZSwgMHhmZiwgJm1kcDVfcGxhbmVfZnVuY3MsCj4gPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1kcDVfcGxhbmUtPmZvcm1hdHMsIG1kcDVfcGxhbmUt Pm5mb3JtYXRzLAo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLCBOVUxM KTsKPiA+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSwgIiVzIiwgbWRwNV9w bGFuZS0+bmFtZSk7Cj4gPj4gICAgICAgaWYgKHJldCkKPiA+PiAgICAgICAgICAgICAgIGdvdG8g ZmFpbDsKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRl L2RybS9kcm1QLmgKPiA+PiBpbmRleCAyOGQzNDFhLi4wZWUwYWE0IDEwMDY0NAo+ID4+IC0tLSBh L2luY2x1ZGUvZHJtL2RybVAuaAo+ID4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybVAuaAo+ID4+IEBA IC0xMzMsNiArMTMzLDcgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsKPiA+PiAgI2RlZmlu ZSBEUk1fVVRfUFJJTUUgICAgICAgICAweDA4Cj4gPj4gICNkZWZpbmUgRFJNX1VUX0FUT01JQyAg ICAgICAgICAgICAgICAweDEwCj4gPj4gICNkZWZpbmUgRFJNX1VUX1ZCTCAgICAgICAgICAgMHgy MAo+ID4+ICsjZGVmaW5lIERSTV9VVF9TVEFURSAgICAgICAgIDB4NDAKPiA+Pgo+ID4+ICBleHRl cm4gX19wcmludGYoMiwgMykKPiA+PiAgdm9pZCBkcm1fdXRfZGVidWdfcHJpbnRrKGNvbnN0IGNo YXIgKmZ1bmN0aW9uX25hbWUsCj4gPj4gQEAgLTE5Myw2ICsxOTQsOCBAQCB2b2lkIGRybV9lcnIo Y29uc3QgY2hhciAqZm9ybWF0LCAuLi4pOwo+ID4+ICAjZGVmaW5lIERSTV9JTkZPX09OQ0UoZm10 LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4+ICAgICAgIHByaW50a19v bmNlKEtFUk5fSU5GTyAiWyIgRFJNX05BTUUgIl0gIiBmbXQsICMjX19WQV9BUkdTX18pCj4gPj4K PiA+PiArZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1fZGVidWc7Cj4gPj4gKwo+ID4+ICAvKioKPiA+ PiAgICogRGVidWcgb3V0cHV0Lgo+ID4+ICAgKgo+ID4+IEBAIC0yMzAsNiArMjMzLDQ5IEBAIHZv aWQgZHJtX2Vycihjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7Cj4gPj4gICAgICAgICAgICAgICBp ZiAodW5saWtlbHkoZHJtX2RlYnVnICYgRFJNX1VUX1ZCTCkpICAgICAgICAgICAgICAgICAgIFwK PiA+PiAgICAgICAgICAgICAgICAgICAgICAgZHJtX3V0X2RlYnVnX3ByaW50ayhfX2Z1bmNfXywg Zm10LCAjI2FyZ3MpOyAgICAgXAo+ID4+ICAgICAgIH0gd2hpbGUgKDApCj4gPj4gKyNkZWZpbmUg RFJNX0RFQlVHX1NUQVRFKGZtdCwgYXJncy4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAo+ID4+ICsgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPj4gKyAgICAgICAgICAgICBpZiAo dW5saWtlbHkoZHJtX2RlYnVnICYgRFJNX1VUX1NUQVRFKSkgICAgICAgICAgICAgICAgIFwKPiA+ PiArICAgICAgICAgICAgICAgICAgICAgRFJNX0lORk8oZm10LCAjI2FyZ3MpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgXAo+ID4+ICsgICAgIH0gd2hpbGUgKDApCj4gPj4gKwo+ID4+ICsKPiA+ PiArc3RhdGljIGlubGluZSB2b2lkCj4gPj4gK2RybV9wcmludF9jcnRjX3N0YXRlKGNvbnN0IHN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gPj4gK3sKPiA+PiArICAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZzdGF0ZS0+bW9kZTsKPiA+PiArCj4gPj4gKyAg ICAgRFJNX0RFQlVHX1NUQVRFKCJcdGVuYWJsZT0lZFxuIiwgc3RhdGUtPmVuYWJsZSk7Cj4gPj4g KyAgICAgRFJNX0RFQlVHX1NUQVRFKCJcdGFjdGl2ZT0lZFxuIiwgc3RhdGUtPmFjdGl2ZSk7Cj4g Pj4gKyAgICAgRFJNX0RFQlVHX1NUQVRFKCJcdHBsYW5lc19jaGFuZ2VkPSVkXG4iLCBzdGF0ZS0+ cGxhbmVzX2NoYW5nZWQpOwo+ID4+ICsgICAgIERSTV9ERUJVR19TVEFURSgiXHRtb2RlX2NoYW5n ZWQ9JWRcbiIsIHN0YXRlLT5tb2RlX2NoYW5nZWQpOwo+ID4+ICsgICAgIERSTV9ERUJVR19TVEFU RSgiXHRhY3RpdmVfY2hhbmdlZD0lZFxuIiwgc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkKTsKPiA+PiAr ICAgICBEUk1fREVCVUdfU1RBVEUoIlx0Y29ubmVjdG9yc19jaGFuZ2VkPSVkXG4iLCBzdGF0ZS0+ Y29ubmVjdG9yc19jaGFuZ2VkKTsKPiA+PiArICAgICBEUk1fREVCVUdfU1RBVEUoIlx0Y29sb3Jf bWdtdF9jaGFuZ2VkPSVkXG4iLCBzdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkKTsKPiA+PiArICAg ICBEUk1fREVCVUdfU1RBVEUoIlx0cGxhbmVfbWFzaz0leFxuIiwgc3RhdGUtPnBsYW5lX21hc2sp Owo+ID4+ICsgICAgIERSTV9ERUJVR19TVEFURSgiXHRjb25uZWN0b3JfbWFzaz0leFxuIiwgc3Rh dGUtPmNvbm5lY3Rvcl9tYXNrKTsKPiA+PiArICAgICBEUk1fREVCVUdfU1RBVEUoIlx0ZW5jb2Rl cl9tYXNrPSV4XG4iLCBzdGF0ZS0+ZW5jb2Rlcl9tYXNrKTsKPiA+PiArICAgICBEUk1fREVCVUdf U1RBVEUoIlx0bW9kZTogJWQ6XCIlc1wiICVkICVkICVkICVkICVkICVkICVkICVkICVkICVkIDB4 JXggMHgleFxuIiwKPiA+PiArICAgICAgICAgICAgICAgICAgICAgbW9kZS0+YmFzZS5pZCwgbW9k ZS0+bmFtZSwgbW9kZS0+dnJlZnJlc2gsIG1vZGUtPmNsb2NrLAo+ID4+ICsgICAgICAgICAgICAg ICAgICAgICBtb2RlLT5oZGlzcGxheSwgbW9kZS0+aHN5bmNfc3RhcnQsCj4gPj4gKyAgICAgICAg ICAgICAgICAgICAgIG1vZGUtPmhzeW5jX2VuZCwgbW9kZS0+aHRvdGFsLAo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICBtb2RlLT52ZGlzcGxheSwgbW9kZS0+dnN5bmNfc3RhcnQsCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgIG1vZGUtPnZzeW5jX2VuZCwgbW9kZS0+dnRvdGFsLCBtb2RlLT50 eXBlLCBtb2RlLT5mbGFncyk7Cj4gPj4gK30KPiA+PiArCj4gPj4gK3N0YXRpYyBpbmxpbmUgdm9p ZAo+ID4+ICtkcm1fcHJpbnRfcGxhbmVfc3RhdGUoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqc3RhdGUpCj4gPj4gK3sKPiA+PiArICAgICBEUk1fREVCVUdfU1RBVEUoIlx0Y3J0Yz0lc1xu Iiwgc3RhdGUtPmNydGMgPyBzdGF0ZS0+Y3J0Yy0+bmFtZSA6ICIobnVsbCkiKTsKPiA+PiArICAg ICBEUk1fREVCVUdfU1RBVEUoIlx0ZmI9JWRcbiIsIHN0YXRlLT5mYiA/IHN0YXRlLT5mYi0+YmFz ZS5pZCA6IC0xKTsKPiA+Cj4gPiAtMSBkb2Vzbid0IGxvb2sgbGlrZSBhIGxlZ2l0IHRoaW5nLiAw IHdvdWxkIG1lYW4gIm5vdCB0aGVyZSIgSSB0aGluay4KPiAKPiBobW0sIHllYWgsIEkgZ3Vlc3Mg emVybyBpc24ndCBhIHZhbGlkIG1vZGUtb2JqZWN0IGlkLi4KPiAKPiA+IEkgd29uZGVyIGlmIHdl IHdhbnQgdG8gZHVtcCBvdXQgbW9yZSBhYm91dCB0aGUgZmIgaGVyZSB0b28/IHNpemUrZm10Cj4g PiBwZXJoYXBzPwo+IAo+IHllYWgsIHNvdW5kcyByZWFzb25hYmxlCj4gCj4gPj4gKyAgICAgRFJN X0RFQlVHX1NUQVRFKCJcdGNydGMtcG9zPVslZCwlZCwgJXV4JXVdXG4iLAo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICBzdGF0ZS0+Y3J0Y194LCBzdGF0ZS0+Y3J0Y195LAo+ID4+ICsgICAgICAg ICAgICAgICAgICAgICBzdGF0ZS0+Y3J0Y193LCBzdGF0ZS0+Y3J0Y19oKTsKPiA+PiArICAgICBE Uk1fREVCVUdfU1RBVEUoIlx0c3JjLXBvcz1bJXUsJXUsICV1eCV1XVxuIiwKPiA+PiArICAgICAg ICAgICAgICAgICAgICAgc3RhdGUtPnNyY194ID4+IDE2LCAgc3RhdGUtPnNyY195ID4+IDE2LAo+ ID4+ICsgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c3JjX3cgPj4gMTYsICBzdGF0ZS0+c3Jj X2ggPj4gMTYpOwo+ID4KPiA+IFRoZXNlIHNob3VsZCBiZSBwcmludGVkIHdpdGggdGhlIGZyYWN0 aW9uYWwgcGFydCBpbmNsdWRlZC4gQWxzbyB5b3VyCj4gPiAiWy4uLl0iIHRoaW5nIGRvZXNuJ3Qg bWF0Y2ggdGhlIGZvcm1hdCBJJ3ZlIHRyaWVkIHRvIHVzZSBlbHNld2hlcmUgZm9yCj4gPiB0aGVz ZSB0aGluZ3MuIE1heWJlIHlhbmsgdGhlIHN0dWZmIGZyb20gdGhlIGRybV9yZWN0X3ByaW50KCkg dGhpbmcKPiA+IGludG8gYSBmZXcgbWFjcm9zIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHJpbnQgdGhl bSBlYXNpbHkgYW55d2hlcmUuCj4gPiBTb21ldGhpbmcgbGlrZQo+ID4KPiA+ICNkZWZpbmUgRk1U X0ZJWEVEXzE2XzE2ICIuLi4uIgo+ID4gI2RlZmluZSBzb21ldGhpbmcoeCkgLi4uCj4gPiBwcmlu dGsoImJsYWggIiBGTVRfRklYRURfMTZfMTYgIiBibGVoXG4iLCBzb21ldGhpbmcoc3RhdGUtPnNy Y194KSk7Cj4gPgo+ID4gbWF5YmU/Cj4gPgo+ID4gTWF5YmUgd2Ugc2hvdWxkIGhhdmUgc29tZXRo aW5nIGxpa2UgdGhhdCBmb3IgcHJpbnRpbmcgb3V0IG1vZGVzIHRvbz8KPiA+IEluIGNhc2Ugd2Ug d2FudCB0byBtaXggdXAgbW9kZSBkdW1wcyB3aXRoIG90aGVyIG91dHB1dCBvbiB0aGUgc2FtZQo+ ID4gbGluZS4KPiAKPiB5ZWFoLCBJIGJhc2ljYWxseSBjdXQvcGFzdGUgZnJvbSBkcm1fbW9kZV9k ZWJ1Z19wcmludG1vZGVsaW5lKCkuLiBzbwo+IG1heWJlIHNvbWUgZm10IGFuZCAic3BsaXR0ZXIi IG1hY3JvcyBtYWtlcyBzZW5zZS4uCj4gCj4gPj4gKyAgICAgRFJNX0RFQlVHX1NUQVRFKCJcdHJv dGF0aW9uPSV4XG4iLCBzdGF0ZS0+cm90YXRpb24pOwo+ID4KPiA+IFNob3VsZCB3ZSBkdW1wIG91 dCBhbGwgdGhlIGRlcml2ZWQgc3RhdGUgdG9vPyBUaGUgcHJvYmxlbSBpcyBvZiBjb3Vyc2UKPiA+ IHRoYXQgaXQgbWlnaHQgbm90IGJlIHVwIHRvIGRhdGUgeWV0LCBzbyB3aGVuIGV4YWN0bHkgeW91 IHByaW50IGl0IHdvdWxkCj4gPiBhZmZlY3Qgd2hldGhlciB5b3Ugc3RhbGUgZGF0YSBvciBub3Qu IE1heWJlIGR1bXAgaXQgb25seSBiYXNlZCBvbiBzb21lCj4gPiBib29sIGZ1bmN0aW9uIGFyZ3Vt ZW50Pwo+IAo+IG5vdCBzdXJlIHdoYXQgeW91IG1lYW50IGJ5IGRlcml2ZWQgc3RhdGU/CgpFdmVy eXRoaW5nIG5vdCBkaXJlY3RseSBjb21pbmcgZnJvbSB0aGUgdXNlci4gRWcuIHNyYy9kc3QgcmVj dHMsCm5vcm1hbGl6ZWRfenBvcywgZXRjLgoKPiBBbHRob3VnaCBJIGd1ZXNzIHdlIGNvdWxkCj4g dHJhbnNsYXRlIHRoZSByb3RhdGlvbiB0byBzdHJpbmdzLi4KPiAKPiBidHcsIEknbSBzbGlnaHRs eSBidW1tZWQgdGhhdCBubyBvbmUgaGFzIGludmVudGVkIGEgd2F5IHRvIG1ha2UKPiBzZXFfZmls ZSB0aGF0IGdvZXMgdG8gbG9nLi4gcmUtdXNpbmcgc2FtZSBkdW1wX3N0YXRlKCkgZnhucyBmb3Ig Ym90aAo+IGRlYnVnZnMgYW5kIHByaW50ayB3b3VsZCBiZSBuaWNlLiAgKEFuZCBwZXJoYXBzIGJl IGVub3VnaCBvZiBhbgo+IGFyZ3VtZW50IHRvIGFkZCAoKnByaW50X3N0YXRlKSgpIGZ4biBwdHJz IGludG8KPiBkcm1fe3BsYW5lLGNydGN9X2Z1bmNzLi4pCj4gCj4gQlIsCj4gLVIKPiAKPiA+PiAr fQo+ID4+Cj4gPj4gIC8qQH0qLwo+ID4+Cj4gPj4gQEAgLTk4OCw3ICsxMDM0LDYgQEAgc3RhdGlj IGlubGluZSB3YWl0X3F1ZXVlX2hlYWRfdCAqZHJtX2NydGNfdmJsYW5rX3dhaXRxdWV1ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMKPiA+PiAgLyogZHJtX2Rydi5jICovCj4gPj4gIHZvaWQgZHJtX3B1 dF9kZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPj4gIHZvaWQgZHJtX3VucGx1Z19kZXYo c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPj4gLWV4dGVybiB1bnNpZ25lZCBpbnQgZHJtX2Rl YnVnOwo+ID4+Cj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRGVidWdmcyBz dXBwb3J0ICovCj4gPj4gICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPiA+PiAtLQo+ID4+ IDIuNy40Cj4gPj4KPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+PiBkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwKPiA+Cj4gPiAtLQo+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiBJ bnRlbCBPVEMKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=