From mboxrd@z Thu Jan 1 00:00:00 1970 From: ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [DPU PATCH 04/19] drm/msm: dpu_rm: Replace DPU_EVT with tracepoints Date: Tue, 26 Jun 2018 16:00:21 +0530 Message-ID: <959a1d0ad0f72997ee24f7d4cd7025f6@codeaurora.org> References: <20180620204841.56354-1-seanpaul@chromium.org> <20180620204841.56354-5-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180620204841.56354-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wNi0yMSAwMjoxOCwgU2VhbiBQYXVsIHdyb3RlOgo+IFRoaXMgcGF0Y2ggY29udmVy dHMgYWxsIERQVV9FVlRzIGluIGRwdV9ybSB3aXRoIGVpdGhlciBhIERSTV8qIGxvZwo+IG1lc3Nh Z2Ugb3IgYSBsaW51eCB0cmFjZXBvaW50Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1bCA8 c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpSZXZpZXdlZC1ieTogUmFqZXNoIFlhZGF2IDxyeWFkYXZA Y29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9ybS5jICAgIHwgNjUgKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmggfCA0OSArKysrKysrKysrKysrKysrKwo+ICAyIGZp bGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYwo+IGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKPiBpbmRleCBlZmYzMTZiYjIxMzQuLjEz YzBhMzZkNGVmOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfcm0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCj4g QEAgLTIwLDYgKzIwLDcgQEAKPiAgI2luY2x1ZGUgImRwdV9od19waW5ncG9uZy5oIgo+ICAjaW5j bHVkZSAiZHB1X2h3X2ludGYuaCIKPiAgI2luY2x1ZGUgImRwdV9lbmNvZGVyLmgiCj4gKyNpbmNs dWRlICJkcHVfdHJhY2UuaCIKPiAKPiAgI2RlZmluZSBSRVNFUlZFRF9CWV9PVEhFUihoLCByKSBc Cj4gIAkoKGgpLT5yc3ZwICYmICgoaCktPnJzdnAtPmVuY19pZCAhPSAociktPmVuY19pZCkpCj4g QEAgLTEyMSw5ICsxMjIsOCBAQCBzdGF0aWMgdm9pZCBfZHB1X3JtX3ByaW50X3JzdnBzKAo+ICAJ RFBVX0RFQlVHKCIlZFxuIiwgc3RhZ2UpOwo+IAo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShyc3Zw LCAmcm0tPnJzdnBzLCBsaXN0KSB7Cj4gLQkJRFBVX0RFQlVHKCIlZCByc3ZwW3MldWUldV0gdG9w b2xvZ3kgJWRcbiIsIHN0YWdlLCByc3ZwLT5zZXEsCj4gLQkJCQlyc3ZwLT5lbmNfaWQsIHJzdnAt PnRvcG9sb2d5KTsKPiAtCQlEUFVfRVZUMzIoc3RhZ2UsIHJzdnAtPnNlcSwgcnN2cC0+ZW5jX2lk LCByc3ZwLT50b3BvbG9neSk7Cj4gKwkJRFJNX0RFQlVHX0tNUygiJWQgcnN2cFtzJXVlJXVdIHRv cG9sb2d5ICVkXG4iLCBzdGFnZSwgcnN2cC0+c2VxLAo+ICsJCQkgICAgICByc3ZwLT5lbmNfaWQs IHJzdnAtPnRvcG9sb2d5KTsKPiAgCX0KPiAKPiAgCWZvciAodHlwZSA9IDA7IHR5cGUgPCBEUFVf SFdfQkxLX01BWDsgdHlwZSsrKSB7Cj4gQEAgLTEzMSwxNCArMTMxLDcgQEAgc3RhdGljIHZvaWQg X2RwdV9ybV9wcmludF9yc3ZwcygKPiAgCQkJaWYgKCFibGstPnJzdnAgJiYgIWJsay0+cnN2cF9u eHQpCj4gIAkJCQljb250aW51ZTsKPiAKPiAtCQkJRFBVX0RFQlVHKCIlZCByc3ZwW3MldWUldS0+ cyV1ZSV1XSAlZCAlZFxuIiwgc3RhZ2UsCj4gLQkJCQkoYmxrLT5yc3ZwKSA/IGJsay0+cnN2cC0+ c2VxIDogMCwKPiAtCQkJCShibGstPnJzdnApID8gYmxrLT5yc3ZwLT5lbmNfaWQgOiAwLAo+IC0J CQkJKGJsay0+cnN2cF9ueHQpID8gYmxrLT5yc3ZwX254dC0+c2VxIDogMCwKPiAtCQkJCShibGst PnJzdnBfbnh0KSA/IGJsay0+cnN2cF9ueHQtPmVuY19pZCA6IDAsCj4gLQkJCQlibGstPnR5cGUs IGJsay0+aWQpOwo+IC0KPiAtCQkJRFBVX0VWVDMyKHN0YWdlLAo+ICsJCQlEUk1fREVCVUdfS01T KCIlZCByc3ZwW3MldWUldS0+cyV1ZSV1XSAlZCAlZFxuIiwgc3RhZ2UsCj4gIAkJCQkoYmxrLT5y c3ZwKSA/IGJsay0+cnN2cC0+c2VxIDogMCwKPiAgCQkJCShibGstPnJzdnApID8gYmxrLT5yc3Zw LT5lbmNfaWQgOiAwLAo+ICAJCQkJKGJsay0+cnN2cF9ueHQpID8gYmxrLT5yc3ZwX254dC0+c2Vx IDogMCwKPiBAQCAtNTk3LDcgKzU5MCw4IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2xt cygKPiAgCQlsbVtpXS0+cnN2cF9ueHQgPSByc3ZwOwo+ICAJCXBwW2ldLT5yc3ZwX254dCA9IHJz dnA7Cj4gCj4gLQkJRFBVX0VWVDMyKGxtW2ldLT50eXBlLCByc3ZwLT5lbmNfaWQsIGxtW2ldLT5p ZCwgcHBbaV0tPmlkKTsKPiArCQl0cmFjZV9kcHVfcm1fcmVzZXJ2ZV9sbXMobG1baV0tPmlkLCBs bVtpXS0+dHlwZSwgcnN2cC0+ZW5jX2lkLAo+ICsJCQkJCSBwcFtpXS0+aWQpOwo+ICAJfQo+IAo+ ICAJcmV0dXJuIHJjOwo+IEBAIC02NDIsNyArNjM2LDggQEAgc3RhdGljIGludCBfZHB1X3JtX3Jl c2VydmVfY3RscygKPiAKPiAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0bHMpICYmIGkg PCB0b3AtPm51bV9jdGw7IGkrKykgewo+ICAJCWN0bHNbaV0tPnJzdnBfbnh0ID0gcnN2cDsKPiAt CQlEUFVfRVZUMzIoY3Rsc1tpXS0+dHlwZSwgcnN2cC0+ZW5jX2lkLCBjdGxzW2ldLT5pZCk7Cj4g KwkJdHJhY2VfZHB1X3JtX3Jlc2VydmVfY3RscyhjdGxzW2ldLT5pZCwgY3Rsc1tpXS0+dHlwZSwK PiArCQkJCQkgIHJzdnAtPmVuY19pZCk7Cj4gIAl9Cj4gCj4gIAlyZXR1cm4gMDsKPiBAQCAtNjU2 LDYgKzY1MSw4IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2NkbSgKPiAgewo+ICAJc3Ry dWN0IGRwdV9ybV9od19pdGVyIGl0ZXI7Cj4gCj4gKwlEUk1fREVCVUdfS01TKCJ0eXBlICVkIGlk ICVkXG4iLCB0eXBlLCBpZCk7Cj4gKwo+ICAJZHB1X3JtX2luaXRfaHdfaXRlcigmaXRlciwgMCwg RFBVX0hXX0JMS19DRE0pOwo+ICAJd2hpbGUgKF9kcHVfcm1fZ2V0X2h3X2xvY2tlZChybSwgJml0 ZXIpKSB7Cj4gIAkJY29uc3Qgc3RydWN0IGRwdV9od19jZG0gKmNkbSA9IHRvX2RwdV9od19jZG0o aXRlci5ibGstPmh3KTsKPiBAQCAtNjY4LDE0ICs2NjUsMTYgQEAgc3RhdGljIGludCBfZHB1X3Jt X3Jlc2VydmVfY2RtKAo+ICAJCWlmICh0eXBlID09IERQVV9IV19CTEtfSU5URiAmJiBpZCAhPSBJ TlRGX01BWCkKPiAgCQkJbWF0Y2ggPSB0ZXN0X2JpdChpZCwgJmNhcHMtPmludGZfY29ubmVjdCk7 Cj4gCj4gLQkJRFBVX0RFQlVHKCJ0eXBlICVkIGlkICVkLCBjZG0gaW50ZnMgJWx1IG1hdGNoICVk XG4iLAo+IC0JCQkJdHlwZSwgaWQsIGNhcHMtPmludGZfY29ubmVjdCwgbWF0Y2gpOwo+ICsJCURS TV9ERUJVR19LTVMoIml0ZXI6IHR5cGU6JWQgaWQ6JWQgZW5jOiVkIGNkbTolbHUgbWF0Y2g6JWRc biIsCj4gKwkJCSAgICAgIGl0ZXIuYmxrLT50eXBlLCBpdGVyLmJsay0+aWQsIHJzdnAtPmVuY19p ZCwKPiArCQkJICAgICAgY2Fwcy0+aW50Zl9jb25uZWN0LCBtYXRjaCk7Cj4gCj4gIAkJaWYgKCFt YXRjaCkKPiAgCQkJY29udGludWU7Cj4gCj4gKwkJdHJhY2VfZHB1X3JtX3Jlc2VydmVfY2RtKGl0 ZXIuYmxrLT5pZCwgaXRlci5ibGstPnR5cGUsCj4gKwkJCQkJIHJzdnAtPmVuY19pZCk7Cj4gIAkJ aXRlci5ibGstPnJzdnBfbnh0ID0gcnN2cDsKPiAtCQlEUFVfRVZUMzIoaXRlci5ibGstPnR5cGUs IHJzdnAtPmVuY19pZCwgaXRlci5ibGstPmlkKTsKPiAgCQlicmVhazsKPiAgCX0KPiAKPiBAQCAt NzA5LDcgKzcwOCw4IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2ludGYoCj4gIAkJfQo+ IAo+ICAJCWl0ZXIuYmxrLT5yc3ZwX254dCA9IHJzdnA7Cj4gLQkJRFBVX0VWVDMyKGl0ZXIuYmxr LT50eXBlLCByc3ZwLT5lbmNfaWQsIGl0ZXIuYmxrLT5pZCk7Cj4gKwkJdHJhY2VfZHB1X3JtX3Jl c2VydmVfaW50ZihpdGVyLmJsay0+aWQsIGl0ZXIuYmxrLT50eXBlLAo+ICsJCQkJCSAgcnN2cC0+ ZW5jX2lkKTsKPiAgCQlicmVhazsKPiAgCX0KPiAKPiBAQCAtODAxLDcgKzgwMSw2IEBAIHN0YXRp YyBpbnQgX2RwdV9ybV9wb3B1bGF0ZV9yZXF1aXJlbWVudHMoCj4gIAkJc3RydWN0IGRwdV9ybV9y ZXF1aXJlbWVudHMgKnJlcXMsCj4gIAkJc3RydWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5IHJlcV90 b3BvbG9neSkKPiAgewo+IC0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAm Y3J0Y19zdGF0ZS0+bW9kZTsKPiAgCWludCBpOwo+IAo+ICAJbWVtc2V0KHJlcXMsIDAsIHNpemVv ZigqcmVxcykpOwo+IEBAIC04MzAsMTUgKzgyOSwxMiBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcG9w dWxhdGVfcmVxdWlyZW1lbnRzKAo+ICAJCWNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+Y29ubmVjdG9y X3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0RTSSkKPiAgCQlyZXFzLT50b3BfY3RybCB8PSBC SVQoRFBVX1JNX1RPUENUTF9EUyk7Cj4gCj4gLQlEUFVfREVCVUcoInRvcF9jdHJsOiAweCVsbFgg bnVtX2hfdGlsZXM6ICVkXG4iLCByZXFzLT50b3BfY3RybCwKPiAtCQkJcmVxcy0+aHdfcmVzLmRp c3BsYXlfbnVtX29mX2hfdGlsZXMpOwo+IC0JRFBVX0RFQlVHKCJudW1fbG06ICVkIG51bV9jdGw6 ICVkIHRvcG9sb2d5OiAlZCBzcGxpdF9kaXNwbGF5OiAlZFxuIiwKPiAtCQkJcmVxcy0+dG9wb2xv Z3ktPm51bV9sbSwgcmVxcy0+dG9wb2xvZ3ktPm51bV9jdGwsCj4gLQkJCXJlcXMtPnRvcG9sb2d5 LT50b3BfbmFtZSwKPiAtCQkJcmVxcy0+dG9wb2xvZ3ktPm5lZWRzX3NwbGl0X2Rpc3BsYXkpOwo+ IC0JRFBVX0VWVDMyKG1vZGUtPmhkaXNwbGF5LCBybS0+bG1fbWF4X3dpZHRoLCByZXFzLT50b3Bv bG9neS0+bnVtX2xtLAo+IC0JCQlyZXFzLT50b3BfY3RybCwgcmVxcy0+dG9wb2xvZ3ktPnRvcF9u YW1lLAo+IC0JCQlyZXFzLT50b3BvbG9neS0+bnVtX2N0bCk7Cj4gKwlEUk1fREVCVUdfS01TKCJ0 b3BfY3RybDogMHglbGxYIG51bV9oX3RpbGVzOiAlZFxuIiwgcmVxcy0+dG9wX2N0cmwsCj4gKwkJ ICAgICAgcmVxcy0+aHdfcmVzLmRpc3BsYXlfbnVtX29mX2hfdGlsZXMpOwo+ICsJRFJNX0RFQlVH X0tNUygibnVtX2xtOiAlZCBudW1fY3RsOiAlZCB0b3BvbG9neTogJWQgc3BsaXRfZGlzcGxheTog Cj4gJWRcbiIsCj4gKwkJICAgICAgcmVxcy0+dG9wb2xvZ3ktPm51bV9sbSwgcmVxcy0+dG9wb2xv Z3ktPm51bV9jdGwsCj4gKwkJICAgICAgcmVxcy0+dG9wb2xvZ3ktPnRvcF9uYW1lLAo+ICsJCSAg ICAgIHJlcXMtPnRvcG9sb2d5LT5uZWVkc19zcGxpdF9kaXNwbGF5KTsKPiAKPiAgCXJldHVybiAw Owo+ICB9Cj4gQEAgLTk3MiwxMSArOTY4LDkgQEAgc3RhdGljIGludCBfZHB1X3JtX2NvbW1pdF9y c3ZwKAo+ICAJCX0KPiAgCX0KPiAKPiAtCWlmICghcmV0KSB7Cj4gLQkJRFBVX0RFQlVHKCJyc3J2 IGVuYyAlZCB0b3BvbG9neSAlZFxuIiwgcnN2cC0+ZW5jX2lkLAo+IC0JCQkJcnN2cC0+dG9wb2xv Z3kpOwo+IC0JCURQVV9FVlQzMihyc3ZwLT5lbmNfaWQsIHJzdnAtPnRvcG9sb2d5KTsKPiAtCX0K PiArCWlmICghcmV0KQo+ICsJCURSTV9ERUJVR19LTVMoInJzcnYgZW5jICVkIHRvcG9sb2d5ICVk XG4iLCByc3ZwLT5lbmNfaWQsCj4gKwkJCSAgICAgIHJzdnAtPnRvcG9sb2d5KTsKPiAKPiAgCXJl dHVybiByZXQ7Cj4gIH0KPiBAQCAtMTAwMiwxMCArOTk2LDkgQEAgaW50IGRwdV9ybV9yZXNlcnZl KAo+ICAJaWYgKCFkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKPiAg CQlyZXR1cm4gMDsKPiAKPiAtCURQVV9ERUJVRygicmVzZXJ2aW5nIGh3IGZvciBjb25uICVkIGVu YyAlZCBjcnRjICVkIHRlc3Rfb25seSAlZFxuIiwKPiAtCQkJY29ubl9zdGF0ZS0+Y29ubmVjdG9y LT5iYXNlLmlkLCBlbmMtPmJhc2UuaWQsCj4gLQkJCWNydGNfc3RhdGUtPmNydGMtPmJhc2UuaWQs IHRlc3Rfb25seSk7Cj4gLQlEUFVfRVZUMzIoZW5jLT5iYXNlLmlkLCBjb25uX3N0YXRlLT5jb25u ZWN0b3ItPmJhc2UuaWQpOwo+ICsJRFJNX0RFQlVHX0tNUygicmVzZXJ2aW5nIGh3IGZvciBjb25u ICVkIGVuYyAlZCBjcnRjICVkIHRlc3Rfb25seSAKPiAlZFxuIiwKPiArCQkgICAgICBjb25uX3N0 YXRlLT5jb25uZWN0b3ItPmJhc2UuaWQsIGVuYy0+YmFzZS5pZCwKPiArCQkgICAgICBjcnRjX3N0 YXRlLT5jcnRjLT5iYXNlLmlkLCB0ZXN0X29ubHkpOwo+IAo+ICAJbXV0ZXhfbG9jaygmcm0tPnJt X2xvY2spOwo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfdHJhY2UuaAo+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgK PiBpbmRleCA1ZDNhYTVhOTk0YmUuLjk5YzQ1YjhkODRjMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oCj4gQEAgLTc2OSw2ICs3NjksNTUgQEAgVFJBQ0Vf RVZFTlQoZHB1X3BsYW5lX2Rpc2FibGUsCj4gIAkJICBfX2VudHJ5LT5tdWx0aXJlY3RfbW9kZSkK PiAgKTsKPiAKPiArREVDTEFSRV9FVkVOVF9DTEFTUyhkcHVfcm1faXRlcl90ZW1wbGF0ZSwKPiAr CVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlLCB1aW50MzJf dCBlbmNfaWQpLAo+ICsJVFBfQVJHUyhpZCwgdHlwZSwgZW5jX2lkKSwKPiArCVRQX1NUUlVDVF9f ZW50cnkoCj4gKwkJX19maWVsZCgJdWludDMyX3QsCQlpZAkpCj4gKwkJX19maWVsZCgJZW51bSBk cHVfaHdfYmxrX3R5cGUsCXR5cGUJKQo+ICsJCV9fZmllbGQoCXVpbnQzMl90LAkJZW5jX2lkCSkK PiArCSksCj4gKwlUUF9mYXN0X2Fzc2lnbigKPiArCQlfX2VudHJ5LT5pZCA9IGlkOwo+ICsJCV9f ZW50cnktPnR5cGUgPSB0eXBlOwo+ICsJCV9fZW50cnktPmVuY19pZCA9IGVuY19pZDsKPiArCSks Cj4gKwlUUF9wcmludGsoImlkOiVkIHR5cGU6JWQgZW5jX2lkOiV1IiwgX19lbnRyeS0+aWQsIF9f ZW50cnktPnR5cGUsCj4gKwkJICBfX2VudHJ5LT5lbmNfaWQpCj4gKyk7Cj4gK0RFRklORV9FVkVO VChkcHVfcm1faXRlcl90ZW1wbGF0ZSwgZHB1X3JtX3Jlc2VydmVfY2RtLAo+ICsJVFBfUFJPVE8o dWludDMyX3QgaWQsIGVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGUsIHVpbnQzMl90IGVuY19pZCks Cj4gKwlUUF9BUkdTKGlkLCB0eXBlLCBlbmNfaWQpCj4gKyk7Cj4gK0RFRklORV9FVkVOVChkcHVf cm1faXRlcl90ZW1wbGF0ZSwgZHB1X3JtX3Jlc2VydmVfaW50ZiwKPiArCVRQX1BST1RPKHVpbnQz Ml90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0eXBlLCB1aW50MzJfdCBlbmNfaWQpLAo+ICsJ VFBfQVJHUyhpZCwgdHlwZSwgZW5jX2lkKQo+ICspOwo+ICtERUZJTkVfRVZFTlQoZHB1X3JtX2l0 ZXJfdGVtcGxhdGUsIGRwdV9ybV9yZXNlcnZlX2N0bHMsCj4gKwlUUF9QUk9UTyh1aW50MzJfdCBp ZCwgZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSwgdWludDMyX3QgZW5jX2lkKSwKPiArCVRQX0FS R1MoaWQsIHR5cGUsIGVuY19pZCkKPiArKTsKPiArCj4gK1RSQUNFX0VWRU5UKGRwdV9ybV9yZXNl cnZlX2xtcywKPiArCVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0 eXBlLCB1aW50MzJfdCBlbmNfaWQsCj4gKwkJIHVpbnQzMl90IHBwX2lkKSwKPiArCVRQX0FSR1Mo aWQsIHR5cGUsIGVuY19pZCwgcHBfaWQpLAo+ICsJVFBfU1RSVUNUX19lbnRyeSgKPiArCQlfX2Zp ZWxkKAl1aW50MzJfdCwJCWlkCSkKPiArCQlfX2ZpZWxkKAllbnVtIGRwdV9od19ibGtfdHlwZSwJ dHlwZQkpCj4gKwkJX19maWVsZCgJdWludDMyX3QsCQllbmNfaWQJKQo+ICsJCV9fZmllbGQoCXVp bnQzMl90LAkJcHBfaWQJKQo+ICsJKSwKPiArCVRQX2Zhc3RfYXNzaWduKAo+ICsJCV9fZW50cnkt PmlkID0gaWQ7Cj4gKwkJX19lbnRyeS0+dHlwZSA9IHR5cGU7Cj4gKwkJX19lbnRyeS0+ZW5jX2lk ID0gZW5jX2lkOwo+ICsJCV9fZW50cnktPnBwX2lkID0gcHBfaWQ7Cj4gKwkpLAo+ICsJVFBfcHJp bnRrKCJpZDolZCB0eXBlOiVkIGVuY19pZDoldSBwcF9pZDoldSIsIF9fZW50cnktPmlkLAo+ICsJ CSAgX19lbnRyeS0+dHlwZSwgX19lbnRyeS0+ZW5jX2lkLCBfX2VudHJ5LT5wcF9pZCkKPiArKTsK PiArCj4gICNkZWZpbmUgRFBVX0FUUkFDRV9FTkQobmFtZSkgdHJhY2VfdHJhY2luZ19tYXJrX3dy aXRlKGN1cnJlbnQtPnRnaWQsIAo+IG5hbWUsIDApCj4gICNkZWZpbmUgRFBVX0FUUkFDRV9CRUdJ TihuYW1lKSB0cmFjZV90cmFjaW5nX21hcmtfd3JpdGUoY3VycmVudC0+dGdpZCwgCj4gbmFtZSwg MSkKPiAgI2RlZmluZSBEUFVfQVRSQUNFX0ZVTkMoKSBEUFVfQVRSQUNFX0JFR0lOKF9fZnVuY19f KQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJl bm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K