From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [PATCH 2/5] drm/i915: Refactor PSR status debugfs Date: Tue, 11 Dec 2018 10:32:39 -0800 Message-ID: <2e3f2f319e27ab57632f375de09cf464ed8e438e.camel@intel.com> References: <20181204230032.6352-1-jose.souza@intel.com> <20181204230032.6352-2-jose.souza@intel.com> <4d0a8bd1fd7f37e66936ef380d02da9a4c140552.camel@intel.com> Reply-To: dhinakaran.pandiyan@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 A434D6E397 for ; Tue, 11 Dec 2018 18:32:41 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" , "intel-gfx@lists.freedesktop.org" Cc: "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE4LTEyLTExIGF0IDA0OjQ0IC0wODAwLCBTb3V6YSwgSm9zZSB3cm90ZToKPiBP biBNb24sIDIwMTgtMTItMTAgYXQgMjI6NTEgLTA4MDAsIERoaW5ha2FyYW4gUGFuZGl5YW4gd3Jv dGU6Cj4gPiBPbiBUdWUsIDIwMTgtMTItMDQgYXQgMTU6MDAgLTA4MDAsIEpvc8OpIFJvYmVydG8g ZGUgU291emEgd3JvdGU6Cj4gPiA+IFRoZSBvbGQgZGVidWdmcyBmaWVsZHMgd2FzIG5vdCBmb2xs b3dpbmcgYSBuYW1pbmcgcGFydGVybiBhbmQgaXQKPiA+ID4gd2FzCj4gPiA+IGEgYml0IGNvbmZ1 c2luZy4KPiA+ID4gCj4gPiA+IFNvIGl0IHdlbnQgZnJvbToKPiA+ID4gfiQgc3VkbyBtb3JlIC9z eXMva2VybmVsL2RlYnVnL2RyaS8wL2k5MTVfZWRwX3Bzcl9zdGF0dXMKPiA+ID4gU2lua19TdXBw b3J0OiB5ZXMKPiA+ID4gUFNSIG1vZGU6IFBTUjEKPiA+ID4gRW5hYmxlZDogeWVzCj4gPiA+IEJ1 c3kgZnJvbnRidWZmZXIgYml0czogMHgwMDAKPiA+ID4gTWFpbiBsaW5rIGluIHN0YW5kYnkgbW9k ZTogbm8KPiA+ID4gSFcgRW5hYmxlZCAmIEFjdGl2ZSBiaXQ6IHllcwo+ID4gPiBTb3VyY2UgUFNS IHN0YXR1czogMHgyNDA1MDAwNiBbU1JET05BQ0tdCj4gPiA+IAo+ID4gPiBUbzoKPiA+ID4gfiQg c3VkbyBtb3JlIC9zeXMva2VybmVsL2RlYnVnL2RyaS8wL2k5MTVfZWRwX3Bzcl9zdGF0dXMKPiA+ ID4gU2luayBzdXBwb3J0OiB5ZXMgWzB4MDAwMDAwMDNdCj4gPiA+IFN0YXR1czogUFNSMSBlbmFi bGVkCj4gPiA+IFNvdXJjZSBQU1IgY3RsOiBlbmFibGVkIFsweDgxZjAwZTI2XQo+ID4gPiBTb3Vy Y2UgUFNSIHN0YXR1czogU1JERU5UIFsweDQwMDQwMDA2XQo+ID4gPiBCdXN5IGZyb250YnVmZmVy IGJpdHM6IDB4MDAwMDAwMDAKPiA+ID4gCj4gPiA+IFRoZSAnTWFpbiBsaW5rIGluIHN0YW5kYnkg bW9kZScgd2FzIHJlbW92ZWQgYXMgaXQgaXMgbm90IHVzZWZ1bAo+ID4gPiBidXQKPiA+ID4gaWYg bmVlZGVkIGJ5IHNvbWVvbmUgdGhlIGluZm9ybWF0aW9uIGlzIHN0aWxsIGluIHRoZSByZWdpc3Rl cgo+ID4gPiB2YWx1ZQo+ID4gPiBvZiAnU291cmNlIFBTUiBjdGwnIGluc2lkZSBvZiB0aGUgYnJh Y2tldHMsIFBTUiBtb2RlIGFuZCBFbmFibGVkCj4gPiA+IHdhcwo+ID4gPiBzcXVhc2hlZCBpbnRv IFN0YXR1cywgc29tZSByZW5hbWVzIGFuZCByZW9yZGVycyBhbmQgd2UgaGF2ZSB0aGlzCj4gPiA+ IGNsZWFuZXIgdmVyc2lvbi4gVGhpcyB3aWxsIGFsc28gbWFrZSBlYXN5IHRvIHBhcnNlIGRlYnVn ZnMgZm9yCj4gPiA+IElHVAo+ID4gPiB0ZXN0cy4KPiA+ID4gCj4gPiA+IENjOiBSb2RyaWdvIFZp dmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFu IDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4gU3VnZ2VzdGVkLWJ5OiBEaGlu YWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+ID4gU2ln bmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+ Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCA5 NiArKysrKysrKysrKysrKystLS0tLS0KPiA+ID4gLS0tLQo+ID4gPiAtLS0tCj4gPiA+ICAxIGZp bGUgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiBpbmRleCAzOGRjZWUx Y2EwNjIuLjg2MzAzYmEwMjY2NiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKPiA+ID4gQEAgLTI2NjUsNyArMjY2NSw4IEBACj4gPiA+IERFRklORV9TSE9XX0FU VFJJQlVURShpOTE1X3Bzcl9zaW5rX3N0YXR1cyk7Cj4gPiA+ICBzdGF0aWMgdm9pZAo+ID4gPiAg cHNyX3NvdXJjZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1 Y3QKPiA+ID4gc2VxX2ZpbGUKPiA+ID4gKm0pCj4gPiA+ICB7Cj4gPiA+IC0JdTMyIHZhbCwgcHNy X3N0YXR1czsKPiA+ID4gKwl1MzIgdmFsLCBzdGF0dXNfdmFsOwo+ID4gPiArCWNvbnN0IGNoYXIg KnN0YXR1cyA9ICJ1bmtub3duIjsKPiA+ID4gIAo+ID4gPiAgCWlmIChkZXZfcHJpdi0+cHNyLnBz cjJfZW5hYmxlZCkgewo+ID4gPiAgCQlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGxpdmVfc3Rh dHVzW10gPSB7Cj4gPiA+IEBAIC0yNjgxLDE0ICsyNjgyLDExIEBAIHBzcl9zb3VyY2Vfc3RhdHVz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiA+ICpkZXZfcHJpdiwgc3RydWN0IHNlcV9maWxl ICptKQo+ID4gPiAgCQkJIkJVRl9PTiIsCj4gPiA+ICAJCQkiVEdfT04iCj4gPiA+ICAJCX07Cj4g PiA+IC0JCXBzcl9zdGF0dXMgPSBJOTE1X1JFQUQoRURQX1BTUjJfU1RBVFVTKTsKPiA+ID4gLQkJ dmFsID0gKHBzcl9zdGF0dXMgJiBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFTSykgPj4KPiA+ID4g LQkJCUVEUF9QU1IyX1NUQVRVU19TVEFURV9TSElGVDsKPiA+ID4gLQkJaWYgKHZhbCA8IEFSUkFZ X1NJWkUobGl2ZV9zdGF0dXMpKSB7Cj4gPiA+IC0JCQlzZXFfcHJpbnRmKG0sICJTb3VyY2UgUFNS IHN0YXR1czogMHgleCBbJXNdXG4iLAo+ID4gPiAtCQkJCSAgIHBzcl9zdGF0dXMsIGxpdmVfc3Rh dHVzW3ZhbF0pOwo+ID4gPiAtCQkJcmV0dXJuOwo+ID4gPiAtCQl9Cj4gPiA+ICsJCXZhbCA9IEk5 MTVfUkVBRChFRFBfUFNSMl9TVEFUVVMpOwo+ID4gPiArCQlzdGF0dXNfdmFsID0gKHZhbCAmIEVE UF9QU1IyX1NUQVRVU19TVEFURV9NQVNLKSA+Pgo+ID4gPiArCQkJICAgICAgRURQX1BTUjJfU1RB VFVTX1NUQVRFX1NISUZUOwo+ID4gPiArCQlpZiAoc3RhdHVzX3ZhbCA8IEFSUkFZX1NJWkUobGl2 ZV9zdGF0dXMpKQo+ID4gPiArCQkJc3RhdHVzID0gbGl2ZV9zdGF0dXNbc3RhdHVzX3ZhbF07Cj4g PiA+ICAJfSBlbHNlIHsKPiA+ID4gIAkJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBsaXZlX3N0 YXR1c1tdID0gewo+ID4gPiAgCQkJIklETEUiLAo+ID4gPiBAQCAtMjcwMCw3NCArMjY5OCw3OCBA QCBwc3Jfc291cmNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ID4gPiAqZGV2X3By aXYsIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiA+ID4gIAkJCSJTUkRPRkZBQ0siLAo+ID4gPiAgCQkJ IlNSREVOVF9PTiIsCj4gPiA+ICAJCX07Cj4gPiA+IC0JCXBzcl9zdGF0dXMgPSBJOTE1X1JFQUQo RURQX1BTUl9TVEFUVVMpOwo+ID4gPiAtCQl2YWwgPSAocHNyX3N0YXR1cyAmIEVEUF9QU1JfU1RB VFVTX1NUQVRFX01BU0spID4+Cj4gPiA+IC0JCQlFRFBfUFNSX1NUQVRVU19TVEFURV9TSElGVDsK PiA+ID4gLQkJaWYgKHZhbCA8IEFSUkFZX1NJWkUobGl2ZV9zdGF0dXMpKSB7Cj4gPiA+IC0JCQlz ZXFfcHJpbnRmKG0sICJTb3VyY2UgUFNSIHN0YXR1czogMHgleCBbJXNdXG4iLAo+ID4gPiAtCQkJ CSAgIHBzcl9zdGF0dXMsIGxpdmVfc3RhdHVzW3ZhbF0pOwo+ID4gPiAtCQkJcmV0dXJuOwo+ID4g PiAtCQl9Cj4gPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX1NUQVRVUyk7Cj4gPiA+ICsJ CXN0YXR1c192YWwgPSAodmFsICYgRURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSykgPj4KPiA+ID4g KwkJCSAgICAgIEVEUF9QU1JfU1RBVFVTX1NUQVRFX1NISUZUOwo+ID4gPiArCQlpZiAoc3RhdHVz X3ZhbCA8IEFSUkFZX1NJWkUobGl2ZV9zdGF0dXMpKQo+ID4gPiArCQkJc3RhdHVzID0gbGl2ZV9z dGF0dXNbc3RhdHVzX3ZhbF07Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0Jc2VxX3ByaW50Ziht LCAiU291cmNlIFBTUiBzdGF0dXM6IDB4JXggWyVzXVxuIiwgcHNyX3N0YXR1cywKPiA+ID4gInVu a25vd24iKTsKPiA+ID4gKwlzZXFfcHJpbnRmKG0sICJTb3VyY2UgUFNSIHN0YXR1czogJXMgWzB4 JTA4eF1cbiIsIHN0YXR1cywgdmFsKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgc3RhdGljIGlu dCBpOTE1X2VkcF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3Rv X2k5MTUobS0+cHJpdmF0ZSk7Cj4gPiA+IC0JdTMyIHBzcnBlcmYgPSAwOwo+ID4gPiAtCWJvb2wg ZW5hYmxlZCA9IGZhbHNlOwo+ID4gPiAtCWJvb2wgc2lua19zdXBwb3J0Owo+ID4gPiArCXN0cnVj dCBpOTE1X3BzciAqcHNyID0gJmRldl9wcml2LT5wc3I7Cj4gPiA+ICsJY29uc3QgY2hhciAqc3Rh dHVzOwo+ID4gPiArCWJvb2wgZW5hYmxlZDsKPiA+ID4gKwl1MzIgdmFsOwo+ID4gPiAgCj4gPiA+ ICAJaWYgKCFIQVNfUFNSKGRldl9wcml2KSkKPiA+ID4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gPiA+ ICAKPiA+ID4gLQlzaW5rX3N1cHBvcnQgPSBkZXZfcHJpdi0+cHNyLnNpbmtfc3VwcG9ydDsKPiA+ ID4gLQlzZXFfcHJpbnRmKG0sICJTaW5rX1N1cHBvcnQ6ICVzXG4iLCB5ZXNubyhzaW5rX3N1cHBv cnQpKTsKPiA+ID4gLQlpZiAoIXNpbmtfc3VwcG9ydCkKPiA+ID4gKwlzZXFfcHJpbnRmKG0sICJT aW5rIHN1cHBvcnQ6ICVzIiwgeWVzbm8ocHNyLT5zaW5rX3N1cHBvcnQpKTsKPiA+ID4gKwlpZiAo IXBzci0+c2lua19zdXBwb3J0KSB7Cj4gPiA+ICsJCXNlcV9wdXRzKG0sICJcbiIpOwo+ID4gPiAg CQlyZXR1cm4gMDsKPiA+ID4gKwl9Cj4gPiA+ICAKPiA+ID4gIAlpbnRlbF9ydW50aW1lX3BtX2dl dChkZXZfcHJpdik7Cj4gPiA+ICsJbXV0ZXhfbG9jaygmcHNyLT5sb2NrKTsKPiA+ID4gIAo+ID4g PiAtCW11dGV4X2xvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gPiA+IC0Jc2VxX3ByaW50Ziht LCAiUFNSIG1vZGU6ICVzXG4iLAo+ID4gPiAtCQkgICBkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxl ZCA/ICJQU1IyIiA6ICJQU1IxIik7Cj4gPiA+IC0Jc2VxX3ByaW50ZihtLCAiRW5hYmxlZDogJXNc biIsIHllc25vKGRldl9wcml2LT5wc3IuZW5hYmxlZCkpOwo+ID4gPiAtCXNlcV9wcmludGYobSwg IkJ1c3kgZnJvbnRidWZmZXIgYml0czogMHglMDN4XG4iLAo+ID4gPiAtCQkgICBkZXZfcHJpdi0+ cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyk7Cj4gPiA+ICsJc2VxX3ByaW50ZihtLCAiIFsweCUw OHhdXG4iLCBwc3ItPmRwLT5wc3JfZHBjZFswXSk7Cj4gPiAKPiA+IFRoaXMgY2FuIGJlIG1vdmVk IGNsb3NlciB0byB3aGVyZSAiU2luayBzdXBwb3J0IiBpcyBwcmludGVkLgo+ID4gQWxzbywgIHRo ZQo+ID4gZXh0cmEgemVyb2VzIHRoYXQgZ2V0IHByaW50ZWQgZHVlIHRvICIlMDh4IiBsb29rIG9k ZCwgcGxlYXNlCj4gPiBjb25zaWRlcgo+ID4gY2hhbmdpbmcgaXQgdG8gIiUwMngiLgo+IAo+IERv bmUKPiAKPiA+IAo+ID4gPiAgCj4gPiA+IC0JaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVk KQo+ID4gPiAtCQllbmFibGVkID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCkgJiBFRFBfUFNSMl9F TkFCTEU7Cj4gPiA+ICsJaWYgKHBzci0+ZW5hYmxlZCkKPiA+ID4gKwkJc3RhdHVzID0gcHNyLT5w c3IyX2VuYWJsZWQgPyAiUFNSMiBlbmFibGVkIiA6ICJQU1IxCj4gPiA+IGVuYWJsZWQiOwo+ID4g PiAgCWVsc2UKPiA+ID4gLQkJZW5hYmxlZCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBf UFNSX0VOQUJMRTsKPiA+ID4gKwkJc3RhdHVzID0gImRpc2FibGVkIjsKPiA+ID4gKwlzZXFfcHJp bnRmKG0sICJTdGF0dXM6ICVzXG4iLCBzdGF0dXMpOwo+ID4gCj4gPiBDYW4gd2UganVzdCB1c2Ug dGhlIGN0bCBmaWVsZCBhbmQgZ2V0IHJpZCBvZiB0aGlzPyBUaGlzIHN0YXR1cyBhbmQKPiA+IGFu ZAo+ID4gdGhlIG9uZSBiZWxvdyBjYW4gYmUgY29uZnVzaW5nIHRvIHRob3NlIG5vdCBmYW1pbGlh ciB3aXRoIHRoZSBjb2RlCj4gPiBiYXNlLgo+ID4gCj4gPiBXZSBzaG91bGQgYmUgYWJsZSB0byBw YXJzZSBhbGwgdGhlIGluZm9ybWF0aW9uIHdlIG5lZWQgZnJvbSB0d28KPiA+IGxpbmVzCj4gPiBT b3VyY2UgUFNSIGN0bDoJCVtQU1IxLFBTUjJdIGVuYWJsZWQgPHJlZyB2YWx1ZT4KPiA+IFNvdXJj ZSBQU1Igc3RhdHVzOgk8c3RhdGU+IDxyZWcgdmFsdWU+Cj4gCj4gSSdtIGZpbmUgaW4gaGF2aW5n IGp1c3Qgb25lIGJ1dCB3aGVuIHRoZXJlIGlzIGZyb250YnVmZmVyCj4gbW9kaWZpY2F0aW9ucwo+ IFN0YXR1cyBpcyBrZXB0IGFzIGVuYWJsZWQgYW5kIFNvdXJjZSBQU1IgY3RsIGFuZCBTb3VyY2Ug UFNSIHN0YXR1cwo+IGFyZQo+IHNldCB0byBpZGxlIHN0YXRlcywgCgpUaGF0IGlzIGEgZ29vZCBw b2ludCAtICBwc3JfaW52YWxpZGF0ZSgpIHdvdWxkIGRpc2FibGUgdGhlIGZlYXR1cmUgaW4gCmhh cmR3YXJlIGJ1dCB0aGUgZHJpdmVyIHN0YXRlIGlzIGVuYWJsZWQuIEkgZ3Vlc3MsIHlvdSBjb3Vs ZCBjaGFuZ2UKIlN0YXR1cyIgdG8gIlBTUiBtb2RlIi8iRmVhdHVyZSBzdGF0ZSIuIAouLi4KUFNS IG1vZGU6CQl7UFNSMSBlbmFibGVkLCBQU1IyIGVuYWJsZWQsIGRpc2FibGVkfQpTb3VyY2UgUFNS IGN0bDoJCXtlbmFibGVkLCBkaXNhYmxlZH0gLi4uClNvdXJjZSBQU1Igc3RhdHVzOgkuLi4KLi4u CgpJcyB0aGlzIGJldHRlcj8KCkFsc28sIGl0IG1pZ2h0IGJlIHdvcnRoIHByaW50aW5nIHRoZSAi UFNSIG1vZGU6IiBsaW5lIGV2ZW4gd2hlbiB0aGVyZQppcyBubyBzaW5rX3N1cHBvcnQuIEl0J3Mg YW4gdXNlZnVsIHBpZWNlIG9mIGRlYnVnIGluZm9ybWF0aW9uIGFuZApkb2Vzbid0IGFjY2VzcyB0 aGUgaGFyZHdhcmUuCgoKPiB3ZSBrbm93IHRoYXQgYnV0IHRob3NlIG5vdCBmYW1pbGlhciB3aXRo IHRoZSBjb2RlCj4gY291bGQgdGhpbmsgaXQgaXMgZGlzYWJsZWQgYnV0IGl0IHVzdWFseSBoYXBw ZW4gc28gZmFzdCB0aGF0IEkgZ3Vlc3MKPiBpdAo+IGlzIG5vdCBhIHByb2JsZW0uCj4gCj4gQW5k IHdoZW4gUFNSIGlzIGRpc2FibGVkIHdlIHByaW50IHNvbWV0aGluZyBlbHNlIG90aGVyIHRoYW4g U2luawo+IHN1cHBvcnQ/Cj4gCj4gPiAKPiA+IAo+ID4gCj4gPiA+ICAKPiA+ID4gLQlzZXFfcHJp bnRmKG0sICJNYWluIGxpbmsgaW4gc3RhbmRieSBtb2RlOiAlc1xuIiwKPiA+ID4gLQkJICAgeWVz bm8oZGV2X3ByaXYtPnBzci5saW5rX3N0YW5kYnkpKTsKPiA+ID4gKwlpZiAoIXBzci0+ZW5hYmxl ZCkKPiA+ID4gKwkJZ290byB1bmxvY2s7Cj4gPiA+ICAKPiA+ID4gLQlzZXFfcHJpbnRmKG0sICJI VyBFbmFibGVkICYgQWN0aXZlIGJpdDogJXNcbiIsIHllc25vKGVuYWJsZWQpKTsKPiA+ID4gKwlp ZiAocHNyLT5wc3IyX2VuYWJsZWQpIHsKPiA+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1Iy X0NUTCk7Cj4gPiA+ICsJCWVuYWJsZWQgPSB2YWwgJiBFRFBfUFNSMl9FTkFCTEU7Cj4gPiA+ICsJ fSBlbHNlIHsKPiA+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKTsKPiA+ID4gKwkJ ZW5hYmxlZCA9IHZhbCAmIEVEUF9QU1JfRU5BQkxFOwo+ID4gPiArCX0KPiA+ID4gKwlzZXFfcHJp bnRmKG0sICJTb3VyY2UgUFNSIGN0bDogJXMgWzB4JTA4eF1cbiIsCj4gPiA+ICsJCSAgIGVuYWJs ZWRkaXNhYmxlZChlbmFibGVkKSwgdmFsKTsKPiA+ID4gKwlwc3Jfc291cmNlX3N0YXR1cyhkZXZf cHJpdiwgbSk7Cj4gPiA+ICsJc2VxX3ByaW50ZihtLCAiQnVzeSBmcm9udGJ1ZmZlciBiaXRzOiAw eCUwOHhcbiIsCj4gPiA+ICsJCSAgIHBzci0+YnVzeV9mcm9udGJ1ZmZlcl9iaXRzKTsKPiA+ID4g IAo+ID4gPiAgCS8qCj4gPiA+ICAJICogU0tMKyBQZXJmIGNvdW50ZXIgaXMgcmVzZXQgdG8gMCBl dmVyeXRpbWUgREMgc3RhdGUgaXMKPiA+ID4gZW50ZXJlZAo+ID4gPiAgCSAqLwo+ID4gPiAgCWlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gPiA+ IC0JCXBzcnBlcmYgPSBJOTE1X1JFQUQoRURQX1BTUl9QRVJGX0NOVCkgJgo+ID4gPiAtCQkJRURQ X1BTUl9QRVJGX0NOVF9NQVNLOwo+ID4gPiAtCj4gPiA+IC0JCXNlcV9wcmludGYobSwgIlBlcmZv cm1hbmNlX0NvdW50ZXI6ICV1XG4iLCBwc3JwZXJmKTsKPiA+ID4gKwkJdmFsID0gSTkxNV9SRUFE KEVEUF9QU1JfUEVSRl9DTlQpICYKPiA+ID4gRURQX1BTUl9QRVJGX0NOVF9NQVNLOwo+ID4gPiAr CQlzZXFfcHJpbnRmKG0sICJQZXJmb3JtYW5jZSBjb3VudGVyOiAldVxuIiwgdmFsKTsKPiA+ID4g IAl9Cj4gPiA+ICAKPiA+ID4gLQlwc3Jfc291cmNlX3N0YXR1cyhkZXZfcHJpdiwgbSk7Cj4gPiA+ IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gPiAtCj4gPiA+IC0JaWYg KFJFQURfT05DRShkZXZfcHJpdi0+cHNyLmRlYnVnKSAmIEk5MTVfUFNSX0RFQlVHX0lSUSkgewo+ ID4gPiArCWlmIChwc3ItPmRlYnVnICYgSTkxNV9QU1JfREVCVUdfSVJRKSB7Cj4gPiA+ICAJCXNl cV9wcmludGYobSwgIkxhc3QgYXR0ZW1wdGVkIGVudHJ5IGF0OiAlbGxkXG4iLAo+ID4gPiAtCQkJ ICAgZGV2X3ByaXYtPnBzci5sYXN0X2VudHJ5X2F0dGVtcHQpOwo+ID4gPiAtCQlzZXFfcHJpbnRm KG0sICJMYXN0IGV4aXQgYXQ6ICVsbGRcbiIsCj4gPiA+IC0JCQkgICBkZXZfcHJpdi0+cHNyLmxh c3RfZXhpdCk7Cj4gPiA+ICsJCQkgICBwc3ItPmxhc3RfZW50cnlfYXR0ZW1wdCk7Cj4gPiA+ICsJ CXNlcV9wcmludGYobSwgIkxhc3QgZXhpdCBhdDogJWxsZFxuIiwgcHNyLT5sYXN0X2V4aXQpOwo+ ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiArdW5sb2NrOgo+ID4gPiArCW11dGV4X3VubG9jaygmcHNy LT5sb2NrKTsKPiA+ID4gIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Cj4gPiA+ICsK PiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gIH0KPiA+ID4gIAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==