From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 2/6] drm/i915: Refactor PSR status debugfs Date: Thu, 10 Jan 2019 07:21:10 -0800 Message-ID: <20190110152110.GA2231@intel.com> References: <20190103142107.18304-1-jose.souza@intel.com> <20190103142107.18304-2-jose.souza@intel.com> <49254a5576c1b6eb3c2eb63896038ac900c7644a.camel@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 C43F56F36B for ; Thu, 10 Jan 2019 15:21:11 +0000 (UTC) Content-Disposition: inline In-Reply-To: <49254a5576c1b6eb3c2eb63896038ac900c7644a.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMDksIDIwMTkgYXQgMDI6MzQ6MzZQTSAtMDgwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBPbiBUaHUsIDIwMTktMDEtMDMgYXQgMDY6MjEgLTA4MDAsIEpvc8OpIFJv YmVydG8gZGUgU291emEgd3JvdGU6Cj4gPiBUaGUgb2xkIGRlYnVnZnMgZmllbGRzIHdhcyBub3Qg Zm9sbG93aW5nIGEgbmFtaW5nIHBhcnRlcm4gYW5kIGl0IHdhcwo+ID4gYSBiaXQgY29uZnVzaW5n Lgo+ID4gCj4gPiBTbyBpdCB3ZW50IGZyb206Cj4gPiB+JCBzdWRvIG1vcmUgL3N5cy9rZXJuZWwv ZGVidWcvZHJpLzAvaTkxNV9lZHBfcHNyX3N0YXR1cwo+ID4gU2lua19TdXBwb3J0OiB5ZXMKPiA+ IFBTUiBtb2RlOiBQU1IxCj4gPiBFbmFibGVkOiB5ZXMKPiA+IEJ1c3kgZnJvbnRidWZmZXIgYml0 czogMHgwMDAKPiA+IE1haW4gbGluayBpbiBzdGFuZGJ5IG1vZGU6IG5vCj4gPiBIVyBFbmFibGVk ICYgQWN0aXZlIGJpdDogeWVzCj4gPiBTb3VyY2UgUFNSIHN0YXR1czogMHgyNDA1MDAwNiBbU1JE T05BQ0tdCj4gPiAKPiA+IFRvOgo+ID4gfiQgc3VkbyBtb3JlIC9zeXMva2VybmVsL2RlYnVnL2Ry aS8wL2k5MTVfZWRwX3Bzcl9zdGF0dXMKPiA+IFNpbmsgc3VwcG9ydDogeWVzIFsweDAzXQo+ID4g UFNSIG1vZGU6IFBTUjEgZW5hYmxlZAo+ID4gU291cmNlIFBTUiBjdGw6IGVuYWJsZWQgWzB4ODFm MDBlMjZdCj4gPiBTb3VyY2UgUFNSIHN0YXR1czogSURMRSBbMHgwNDAxMDAwNl0KPiA+IEJ1c3kg ZnJvbnRidWZmZXIgYml0czogMHgwMDAwMDAwMAo+ID4gCj4gPiBUaGUgJ01haW4gbGluayBpbiBz dGFuZGJ5IG1vZGUnIHdhcyByZW1vdmVkIGFzIGl0IGlzIG5vdCB1c2VmdWwgYnV0Cj4gPiBpZiBu ZWVkZWQgYnkgc29tZW9uZSB0aGUgaW5mb3JtYXRpb24gaXMgc3RpbGwgaW4gdGhlIHJlZ2lzdGVy IHZhbHVlCj4gPiBvZiAnU291cmNlIFBTUiBjdGwnIGluc2lkZSBvZiB0aGUgYnJhY2tldHMsIFBT UiBtb2RlIGFuZCBFbmFibGVkIHdhcwo+ID4gc3F1YXNoZWQgaW50byBQU1IgbW9kZSwgc29tZSBy ZW5hbWVzIGFuZCByZW9yZGVycyBhbmQgd2UgaGF2ZSB0aGlzCj4gPiBjbGVhbmVyIHZlcnNpb24u IFRoaXMgd2lsbCBhbHNvIG1ha2UgZWFzeSB0byBwYXJzZSBkZWJ1Z2ZzIGZvciBJR1QKPiA+IHRl c3RzLgo+ID4gCj4gPiB2MjogUHJpbnRpbmcgc2luayBQU1IgdmVyc2lvbiB3aXRoIG9ubHkgMiBo ZXggZGlnaXRzIGFzIGl0IGlzIGEgYnl0ZQo+ID4gCj4gPiBDYzogUm9kcmlnbyBWaXZpIDxyb2Ry aWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2Fy YW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+ID4gU3VnZ2VzdGVkLWJ5OiBEaGluYWthcmFuIFBhbmRp eWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEpv c8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCA5NSArKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0KPiA+IC0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyks IDQ4IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiA+IGluZGV4IDE5MzgyMzA0OGY5Ni4uMWEzMTkyMTU5OGU3IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBAQCAtMjUyOSw3ICsyNTI5LDggQEAgREVGSU5F X1NIT1dfQVRUUklCVVRFKGk5MTVfcHNyX3Npbmtfc3RhdHVzKTsKPiA+ICBzdGF0aWMgdm9pZAo+ ID4gIHBzcl9zb3VyY2Vfc3RhdHVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg c3RydWN0IHNlcV9maWxlCj4gPiAqbSkKPiA+ICB7Cj4gPiAtCXUzMiB2YWwsIHBzcl9zdGF0dXM7 Cj4gPiArCXUzMiB2YWwsIHN0YXR1c192YWw7Cj4gPiArCWNvbnN0IGNoYXIgKnN0YXR1cyA9ICJ1 bmtub3duIjsKPiA+ICAKPiA+ICAJaWYgKGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkKSB7Cj4g PiAgCQlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGxpdmVfc3RhdHVzW10gPSB7Cj4gPiBAQCAt MjU0NSwxNCArMjU0NiwxMSBAQCBwc3Jfc291cmNlX3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZQo+ID4gKmRldl9wcml2LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gPiAgCQkJIkJVRl9PTiIs Cj4gPiAgCQkJIlRHX09OIgo+ID4gIAkJfTsKPiA+IC0JCXBzcl9zdGF0dXMgPSBJOTE1X1JFQUQo RURQX1BTUjJfU1RBVFVTKTsKPiA+IC0JCXZhbCA9IChwc3Jfc3RhdHVzICYgRURQX1BTUjJfU1RB VFVTX1NUQVRFX01BU0spID4+Cj4gPiAtCQkJRURQX1BTUjJfU1RBVFVTX1NUQVRFX1NISUZUOwo+ ID4gLQkJaWYgKHZhbCA8IEFSUkFZX1NJWkUobGl2ZV9zdGF0dXMpKSB7Cj4gPiAtCQkJc2VxX3By aW50ZihtLCAiU291cmNlIFBTUiBzdGF0dXM6IDB4JXggWyVzXVxuIiwKPiA+IC0JCQkJICAgcHNy X3N0YXR1cywgbGl2ZV9zdGF0dXNbdmFsXSk7Cj4gPiAtCQkJcmV0dXJuOwo+ID4gLQkJfQo+ID4g KwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX1NUQVRVUyk7Cj4gPiArCQlzdGF0dXNfdmFsID0g KHZhbCAmIEVEUF9QU1IyX1NUQVRVU19TVEFURV9NQVNLKSA+Pgo+ID4gKwkJCSAgICAgIEVEUF9Q U1IyX1NUQVRVU19TVEFURV9TSElGVDsKPiA+ICsJCWlmIChzdGF0dXNfdmFsIDwgQVJSQVlfU0la RShsaXZlX3N0YXR1cykpCj4gPiArCQkJc3RhdHVzID0gbGl2ZV9zdGF0dXNbc3RhdHVzX3ZhbF07 Cj4gPiAgCX0gZWxzZSB7Cj4gPiAgCQlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGxpdmVfc3Rh dHVzW10gPSB7Cj4gPiAgCQkJIklETEUiLAo+ID4gQEAgLTI1NjQsNzQgKzI1NjIsNzUgQEAgcHNy X3NvdXJjZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ICpkZXZfcHJpdiwgc3Ry dWN0IHNlcV9maWxlICptKQo+ID4gIAkJCSJTUkRPRkZBQ0siLAo+ID4gIAkJCSJTUkRFTlRfT04i LAo+ID4gIAkJfTsKPiA+IC0JCXBzcl9zdGF0dXMgPSBJOTE1X1JFQUQoRURQX1BTUl9TVEFUVVMp Owo+ID4gLQkJdmFsID0gKHBzcl9zdGF0dXMgJiBFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLKSA+ Pgo+ID4gLQkJCUVEUF9QU1JfU1RBVFVTX1NUQVRFX1NISUZUOwo+ID4gLQkJaWYgKHZhbCA8IEFS UkFZX1NJWkUobGl2ZV9zdGF0dXMpKSB7Cj4gPiAtCQkJc2VxX3ByaW50ZihtLCAiU291cmNlIFBT UiBzdGF0dXM6IDB4JXggWyVzXVxuIiwKPiA+IC0JCQkJICAgcHNyX3N0YXR1cywgbGl2ZV9zdGF0 dXNbdmFsXSk7Cj4gPiAtCQkJcmV0dXJuOwo+ID4gLQkJfQo+ID4gKwkJdmFsID0gSTkxNV9SRUFE KEVEUF9QU1JfU1RBVFVTKTsKPiA+ICsJCXN0YXR1c192YWwgPSAodmFsICYgRURQX1BTUl9TVEFU VVNfU1RBVEVfTUFTSykgPj4KPiA+ICsJCQkgICAgICBFRFBfUFNSX1NUQVRVU19TVEFURV9TSElG VDsKPiA+ICsJCWlmIChzdGF0dXNfdmFsIDwgQVJSQVlfU0laRShsaXZlX3N0YXR1cykpCj4gPiAr CQkJc3RhdHVzID0gbGl2ZV9zdGF0dXNbc3RhdHVzX3ZhbF07Cj4gPiAgCX0KPiA+ICAKPiA+IC0J c2VxX3ByaW50ZihtLCAiU291cmNlIFBTUiBzdGF0dXM6IDB4JXggWyVzXVxuIiwgcHNyX3N0YXR1 cywKPiA+ICJ1bmtub3duIik7Cj4gPiArCXNlcV9wcmludGYobSwgIlNvdXJjZSBQU1Igc3RhdHVz OiAlcyBbMHglMDh4XVxuIiwgc3RhdHVzLCB2YWwpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMg aW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbm9kZV90b19p OTE1KG0tPnByaXZhdGUpOwo+ID4gLQl1MzIgcHNycGVyZiA9IDA7Cj4gPiAtCWJvb2wgZW5hYmxl ZCA9IGZhbHNlOwo+ID4gLQlib29sIHNpbmtfc3VwcG9ydDsKPiA+ICsJc3RydWN0IGk5MTVfcHNy ICpwc3IgPSAmZGV2X3ByaXYtPnBzcjsKPiA+ICsJY29uc3QgY2hhciAqc3RhdHVzOwo+ID4gKwli b29sIGVuYWJsZWQ7Cj4gPiArCXUzMiB2YWw7Cj4gPiAgCj4gPiAgCWlmICghSEFTX1BTUihkZXZf cHJpdikpCj4gPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiA+ICAKPiA+IC0Jc2lua19zdXBwb3J0ID0g ZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQ7Cj4gPiAtCXNlcV9wcmludGYobSwgIlNpbmtfU3Vw cG9ydDogJXNcbiIsIHllc25vKHNpbmtfc3VwcG9ydCkpOwo+ID4gLQlpZiAoIXNpbmtfc3VwcG9y dCkKPiA+ICsJc2VxX3ByaW50ZihtLCAiU2luayBzdXBwb3J0OiAlcyIsIHllc25vKHBzci0+c2lu a19zdXBwb3J0KSk7Cj4gPiArCXNlcV9wcmludGYobSwgIiBbMHglMDJ4XVxuIiwgcHNyLT5kcC0+ cHNyX2RwY2RbMF0pOwo+ID4gKwlpZiAoIXBzci0+c2lua19zdXBwb3J0KQo+ID4gIAkJcmV0dXJu IDA7Cj4gPiAgCj4gPiAgCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPiA+ICsJbXV0 ZXhfbG9jaygmcHNyLT5sb2NrKTsKPiA+ICAKPiA+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBz ci5sb2NrKTsKPiA+IC0Jc2VxX3ByaW50ZihtLCAiUFNSIG1vZGU6ICVzXG4iLAo+ID4gLQkJICAg ZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPyAiUFNSMiIgOiAiUFNSMSIpOwo+ID4gLQlzZXFf cHJpbnRmKG0sICJFbmFibGVkOiAlc1xuIiwgeWVzbm8oZGV2X3ByaXYtPnBzci5lbmFibGVkKSk7 Cj4gPiAtCXNlcV9wcmludGYobSwgIkJ1c3kgZnJvbnRidWZmZXIgYml0czogMHglMDN4XG4iLAo+ ID4gLQkJICAgZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMpOwo+ID4gLQo+ID4g LQlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQpCj4gPiAtCQllbmFibGVkID0gSTkxNV9S RUFEKEVEUF9QU1IyX0NUTCkgJiBFRFBfUFNSMl9FTkFCTEU7Cj4gPiArCWlmIChwc3ItPmVuYWJs ZWQpCj4gPiArCQlzdGF0dXMgPSBwc3ItPnBzcjJfZW5hYmxlZCA/ICJQU1IyIGVuYWJsZWQiIDog IlBTUjEKPiA+IGVuYWJsZWQiOwo+ID4gIAllbHNlCj4gPiAtCQllbmFibGVkID0gSTkxNV9SRUFE KEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFOwo+ID4gKwkJc3RhdHVzID0gImRpc2FibGVk IjsKPiA+ICsJc2VxX3ByaW50ZihtLCAiUFNSIG1vZGU6ICVzXG4iLCBzdGF0dXMpOwo+ID4gIAo+ ID4gLQlzZXFfcHJpbnRmKG0sICJNYWluIGxpbmsgaW4gc3RhbmRieSBtb2RlOiAlc1xuIiwKPiA+ IC0JCSAgIHllc25vKGRldl9wcml2LT5wc3IubGlua19zdGFuZGJ5KSk7Cj4gPiArCWlmICghcHNy LT5lbmFibGVkKQo+ID4gKwkJZ290byB1bmxvY2s7Cj4gPiAgCj4gPiAtCXNlcV9wcmludGYobSwg IkhXIEVuYWJsZWQgJiBBY3RpdmUgYml0OiAlc1xuIiwgeWVzbm8oZW5hYmxlZCkpOwo+ID4gKwlp ZiAocHNyLT5wc3IyX2VuYWJsZWQpIHsKPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSMl9D VEwpOwo+ID4gKwkJZW5hYmxlZCA9IHZhbCAmIEVEUF9QU1IyX0VOQUJMRTsKPiA+ICsJfSBlbHNl IHsKPiA+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTCk7Cj4gPiArCQllbmFibGVkID0g dmFsICYgRURQX1BTUl9FTkFCTEU7Cj4gPiArCX0KPiA+ICsJc2VxX3ByaW50ZihtLCAiU291cmNl IFBTUiBjdGw6ICVzIFsweCUwOHhdXG4iLAo+ID4gKwkJICAgZW5hYmxlZGRpc2FibGVkKGVuYWJs ZWQpLCB2YWwpOwo+ID4gKwlwc3Jfc291cmNlX3N0YXR1cyhkZXZfcHJpdiwgbSk7Cj4gPiArCXNl cV9wcmludGYobSwgIkJ1c3kgZnJvbnRidWZmZXIgYml0czogMHglMDh4XG4iLAo+ID4gKwkJICAg cHNyLT5idXN5X2Zyb250YnVmZmVyX2JpdHMpOwo+ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBTS0wr IFBlcmYgY291bnRlciBpcyByZXNldCB0byAwIGV2ZXJ5dGltZSBEQyBzdGF0ZSBpcwo+ID4gZW50 ZXJlZAo+ID4gIAkgKi8KPiBUaGUgY291bnRlciBpcyBwcm9iYWJseSBzdGlsbCB1c2VmdWwgZm9y IGRlYnVnZ2luZyBhbG9uZyB3aXRoCj4gaTkxNS5lbmFibGVfZGMgPSAwLCBhbGxvd3MgdXMgdG8g aXNvbGF0ZSBQU1IgZnJvbSBETUMuIFRoYXQncyBzb21ldGhpbmcKPiB0byBleHBsb3JlIGluIHRo ZSBmdXR1cmU7IHRoaXMgcGF0Y2ggbGd0bQoKeWVhcC4uLiB3ZSBqdXN0IG5lZWQgdG8gYmUgY2Fy ZWZ1bCBob3cgdG8gZXhwb3NlIGl0IHRvIGF2b2lkCnRoZSBjb25mdXNpb24gb2YgcGVvcGxlIHRo aW5raW5nIFBTUiBpcyBicm9rZW4gb25seSBiZWNhdXNlCmNvdW50ZXIgZ290IHJlc2V0Li4uCgo+ IFJldmlld2VkLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGlu dGVsLmNvbT4gCj4gCj4gSG93ZXZlciwgSSBzdWdnZXN0IGdldCBhbiBhY2sgUm9kcmlnby4KCkFj a2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cgo+IAo+IAo+ID4g IAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ ID4gLQkJcHNycGVyZiA9IEk5MTVfUkVBRChFRFBfUFNSX1BFUkZfQ05UKSAmCj4gPiAtCQkJRURQ X1BTUl9QRVJGX0NOVF9NQVNLOwo+ID4gLQo+ID4gLQkJc2VxX3ByaW50ZihtLCAiUGVyZm9ybWFu Y2VfQ291bnRlcjogJXVcbiIsIHBzcnBlcmYpOwo+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9Q U1JfUEVSRl9DTlQpICYKPiA+IEVEUF9QU1JfUEVSRl9DTlRfTUFTSzsKPiA+ICsJCXNlcV9wcmlu dGYobSwgIlBlcmZvcm1hbmNlIGNvdW50ZXI6ICV1XG4iLCB2YWwpOwo+ID4gIAl9Cj4gPiAgCj4g PiAtCXBzcl9zb3VyY2Vfc3RhdHVzKGRldl9wcml2LCBtKTsKPiA+IC0JbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gLQo+ID4gLQlpZiAoUkVBRF9PTkNFKGRldl9wcml2LT5w c3IuZGVidWcpICYgSTkxNV9QU1JfREVCVUdfSVJRKSB7Cj4gPiArCWlmIChwc3ItPmRlYnVnICYg STkxNV9QU1JfREVCVUdfSVJRKSB7Cj4gPiAgCQlzZXFfcHJpbnRmKG0sICJMYXN0IGF0dGVtcHRl ZCBlbnRyeSBhdDogJWxsZFxuIiwKPiA+IC0JCQkgICBkZXZfcHJpdi0+cHNyLmxhc3RfZW50cnlf YXR0ZW1wdCk7Cj4gPiAtCQlzZXFfcHJpbnRmKG0sICJMYXN0IGV4aXQgYXQ6ICVsbGRcbiIsCj4g PiAtCQkJICAgZGV2X3ByaXYtPnBzci5sYXN0X2V4aXQpOwo+ID4gKwkJCSAgIHBzci0+bGFzdF9l bnRyeV9hdHRlbXB0KTsKPiA+ICsJCXNlcV9wcmludGYobSwgIkxhc3QgZXhpdCBhdDogJWxsZFxu IiwgcHNyLT5sYXN0X2V4aXQpOwo+ID4gIAl9Cj4gPiAgCj4gPiArdW5sb2NrOgo+ID4gKwltdXRl eF91bmxvY2soJnBzci0+bG9jayk7Cj4gPiAgCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2 KTsKPiA+ICsKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIAo+IApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK