From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v5 01/19] drm/msm/dpu: remove debugfs support for misr Date: Fri, 7 Sep 2018 08:58:30 -0400 Message-ID: <20180907125830.GA188300@art_vandelay> References: <1536199708-23664-1-git-send-email-jsanka@codeaurora.org> <1536199708-23664-2-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1536199708-23664-2-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBTZXAgMDUsIDIwMTggYXQgMDc6MDg6MTBQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gTUlTUiBzdXBwb3J0IGlzIHRoZSBkZWJ1ZyBmZWF0dXJlIHByZXNlbnQgaW4g U25hcGRyYWdvbiBjaGlwc2V0cy4KPiBBdCB0aGUgbGF5ZXIgbWl4ZXIgYW5kIGludGVyZmFjZXMs IE1JU1IgYWxnb3JpdGhtIGNhbiBnZW5lcmF0ZSBDUkMKPiBzaWduYXR1cmVzIG9mIHRoZSBwaXhl bCBkYXRhIHdoaWNoIGNhbiBiZSB1c2VkIGZvciB2YWxpZGF0aW5nCj4gdGhlIGZyYW1lcyBnZW5l cmF0ZWQuIFNpbmNlIHRoZXJlIGFyZSBubyBjbGllbnRzIGZvciB0aGlzIGZlYXR1cmUsCj4gc3Ry aXAgZG93biB0aGUgc3VwcG9ydCBmcm9tIHRoZSBkcml2ZXIuCj4gCj4gY2hhbmdlcyBpbiB2NDoK PiAJLSBjaGFuZ2VkIGludHJvZHVjZWQgaW4gdGhlIHNlcmllcwo+IGNoYW5nZXMgaW4gdjU6Cj4g CS0gdXBkYXRlIGNvbW1pdCB0ZXh0IHdpdGggdGhlIG5lZWQgZm9yIHRoZSBjaGFuZ2UoU2VhbikK CkF3ZXNvbWUhIFRoYW5rIHlvdSEKClJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNo cm9taXVtLm9yZz4KCgo+IAo+IFNpZ25lZC1vZmYtYnk6IEpleWt1bWFyIFNhbmthcmFuIDxqc2Fu a2FAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmMgICAgICAgICAgIHwgMTM5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oICAgICAgICAgICB8ICAgNiAtCj4g IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgICAgICAgIHwgMTI3 IC0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2VuY29kZXJfcGh5cy5oICAgfCAgIDYgLQo+ICAuLi4vZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyX3BoeXNfdmlkLmMgICB8ICAyOCAtLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5jICAgICAgICB8ICAyOSAtLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5oICAgICAgICB8ICAgNyAtLQo+ICBkcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfbG0uYyAgICAgICAgICB8ICAyOSAtLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfbG0uaCAgICAgICAgICB8 ICAgNyAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5jICAg ICAgICB8ICAgMyAtCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGls LmggICAgICAgIHwgICA2IC0KPiAgMTEgZmlsZXMgY2hhbmdlZCwgMzg3IGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IGluZGV4IGYwYTVl NzcuLjFlMDM4MmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmMKPiBAQCAtNDcsOCArNDcsNiBAQAo+ICAjZGVmaW5lIExFRlRfTUlYRVIgMAo+ICAjZGVmaW5l IFJJR0hUX01JWEVSIDEKPiAgCj4gLSNkZWZpbmUgTUlTUl9CVUZGX1NJWkUJCQkyNTYKPiAtCj4g IHN0YXRpYyBpbmxpbmUgc3RydWN0IGRwdV9rbXMgKl9kcHVfY3J0Y19nZXRfa21zKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKPiBA QCAtMTI3Miw4ICsxMjcwLDYgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfaGFuZGxlX3Bvd2VyX2V2 ZW50KHUzMiBldmVudF90eXBlLCB2b2lkICphcmcpCj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBhcmc7Cj4gIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwo+ICAJc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyOwo+IC0Jc3RydWN0IGRwdV9jcnRjX21peGVyICptOwo+IC0JdTMyIGksIG1p c3Jfc3RhdHVzOwo+ICAKPiAgCWlmICghY3J0Yykgewo+ICAJCURQVV9FUlJPUigiaW52YWxpZCBj cnRjXG4iKTsKPiBAQCAtMTI5NCwyOSArMTI5MCw4IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2hh bmRsZV9wb3dlcl9ldmVudCh1MzIgZXZlbnRfdHlwZSwgdm9pZCAqYXJnKQo+ICAKPiAgCQkJZHB1 X2VuY29kZXJfdmlydF9yZXN0b3JlKGVuY29kZXIpOwo+ICAJCX0KPiAtCj4gLQkJZm9yIChpID0g MDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyArK2kpIHsKPiAtCQkJbSA9ICZkcHVfY3J0Yy0+ bWl4ZXJzW2ldOwo+IC0JCQlpZiAoIW0tPmh3X2xtIHx8ICFtLT5od19sbS0+b3BzLnNldHVwX21p c3IgfHwKPiAtCQkJCQkhZHB1X2NydGMtPm1pc3JfZW5hYmxlKQo+IC0JCQkJY29udGludWU7Cj4g LQo+IC0JCQltLT5od19sbS0+b3BzLnNldHVwX21pc3IobS0+aHdfbG0sIHRydWUsCj4gLQkJCQkJ ZHB1X2NydGMtPm1pc3JfZnJhbWVfY291bnQpOwo+IC0JCX0KPiAgCQlicmVhazsKPiAgCWNhc2Ug RFBVX1BPV0VSX0VWRU5UX1BSRV9ESVNBQkxFOgo+IC0JCWZvciAoaSA9IDA7IGkgPCBkcHVfY3J0 Yy0+bnVtX21peGVyczsgKytpKSB7Cj4gLQkJCW0gPSAmZHB1X2NydGMtPm1peGVyc1tpXTsKPiAt CQkJaWYgKCFtLT5od19sbSB8fCAhbS0+aHdfbG0tPm9wcy5jb2xsZWN0X21pc3IgfHwKPiAtCQkJ CQkhZHB1X2NydGMtPm1pc3JfZW5hYmxlKQo+IC0JCQkJY29udGludWU7Cj4gLQo+IC0JCQltaXNy X3N0YXR1cyA9IG0tPmh3X2xtLT5vcHMuY29sbGVjdF9taXNyKG0tPmh3X2xtKTsKPiAtCQkJZHB1 X2NydGMtPm1pc3JfZGF0YVtpXSA9IG1pc3Jfc3RhdHVzID8gbWlzcl9zdGF0dXMgOgo+IC0JCQkJ CQkJZHB1X2NydGMtPm1pc3JfZGF0YVtpXTsKPiAtCQl9Cj4gLQkJYnJlYWs7Cj4gIAljYXNlIERQ VV9QT1dFUl9FVkVOVF9QT1NUX0RJU0FCTEU6Cj4gIAkJLyoqCj4gIAkJICogTm90aGluZyB0byBk by4gQWxsIHRoZSBwbGFuZXMgb24gdGhlIENSVEMgd2lsbCBiZQo+IEBAIC0xODQ2LDExMyArMTgy MSw2IEBAIHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3N0YXR1c19vcGVuKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ICAJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIF9k cHVfZGVidWdmc19zdGF0dXNfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBzc2l6ZV90IF9kcHVfY3J0Y19taXNyX3NldHVwKHN0cnVjdCBmaWxlICpmaWxlLAo+IC0J CWNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3Mp Cj4gLXsKPiAtCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Cj4gLQlzdHJ1Y3QgZHB1X2NydGNf bWl4ZXIgKm07Cj4gLQlpbnQgaSA9IDAsIHJjOwo+IC0JY2hhciBidWZbTUlTUl9CVUZGX1NJWkUg KyAxXTsKPiAtCXUzMiBmcmFtZV9jb3VudCwgZW5hYmxlOwo+IC0Jc2l6ZV90IGJ1ZmZfY29weTsK PiAtCj4gLQlpZiAoIWZpbGUgfHwgIWZpbGUtPnByaXZhdGVfZGF0YSkKPiAtCQlyZXR1cm4gLUVJ TlZBTDsKPiAtCj4gLQlkcHVfY3J0YyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKPiAtCWJ1ZmZfY29w eSA9IG1pbl90KHNpemVfdCwgY291bnQsIE1JU1JfQlVGRl9TSVpFKTsKPiAtCWlmIChjb3B5X2Zy b21fdXNlcihidWYsIHVzZXJfYnVmLCBidWZmX2NvcHkpKSB7Cj4gLQkJRFBVX0VSUk9SKCJidWZm ZXIgY29weSBmYWlsZWRcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAtCWJ1 ZltidWZmX2NvcHldID0gMDsgLyogZW5kIG9mIHN0cmluZyAqLwo+IC0KPiAtCWlmIChzc2NhbmYo YnVmLCAiJXUgJXUiLCAmZW5hYmxlLCAmZnJhbWVfY291bnQpICE9IDIpCj4gLQkJcmV0dXJuIC1F SU5WQUw7Cj4gLQo+IC0JcmMgPSBfZHB1X2NydGNfcG93ZXJfZW5hYmxlKGRwdV9jcnRjLCB0cnVl KTsKPiAtCWlmIChyYykKPiAtCQlyZXR1cm4gcmM7Cj4gLQo+IC0JbXV0ZXhfbG9jaygmZHB1X2Ny dGMtPmNydGNfbG9jayk7Cj4gLQlkcHVfY3J0Yy0+bWlzcl9lbmFibGUgPSBlbmFibGU7Cj4gLQlk cHVfY3J0Yy0+bWlzcl9mcmFtZV9jb3VudCA9IGZyYW1lX2NvdW50Owo+IC0JZm9yIChpID0gMDsg aSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyArK2kpIHsKPiAtCQlkcHVfY3J0Yy0+bWlzcl9kYXRh W2ldID0gMDsKPiAtCQltID0gJmRwdV9jcnRjLT5taXhlcnNbaV07Cj4gLQkJaWYgKCFtLT5od19s bSB8fCAhbS0+aHdfbG0tPm9wcy5zZXR1cF9taXNyKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJ bS0+aHdfbG0tPm9wcy5zZXR1cF9taXNyKG0tPmh3X2xtLCBlbmFibGUsIGZyYW1lX2NvdW50KTsK PiAtCX0KPiAtCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gLQlfZHB1X2Ny dGNfcG93ZXJfZW5hYmxlKGRwdV9jcnRjLCBmYWxzZSk7Cj4gLQo+IC0JcmV0dXJuIGNvdW50Owo+ IC19Cj4gLQo+IC1zdGF0aWMgc3NpemVfdCBfZHB1X2NydGNfbWlzcl9yZWFkKHN0cnVjdCBmaWxl ICpmaWxlLAo+IC0JCWNoYXIgX191c2VyICp1c2VyX2J1ZmYsIHNpemVfdCBjb3VudCwgbG9mZl90 ICpwcG9zKQo+IC17Cj4gLQlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwo+IC0Jc3RydWN0IGRw dV9jcnRjX21peGVyICptOwo+IC0JaW50IGkgPSAwLCByYzsKPiAtCXUzMiBtaXNyX3N0YXR1czsK PiAtCXNzaXplX3QgbGVuID0gMDsKPiAtCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV0gPSB7 J1wwJ307Cj4gLQo+IC0JaWYgKCpwcG9zKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlmICghZmls ZSB8fCAhZmlsZS0+cHJpdmF0ZV9kYXRhKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCWRw dV9jcnRjID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+IC0JcmMgPSBfZHB1X2NydGNfcG93ZXJfZW5h YmxlKGRwdV9jcnRjLCB0cnVlKTsKPiAtCWlmIChyYykKPiAtCQlyZXR1cm4gcmM7Cj4gLQo+IC0J bXV0ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gLQlpZiAoIWRwdV9jcnRjLT5taXNy X2VuYWJsZSkgewo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1JU1JfQlVGRl9TSVpF IC0gbGVuLAo+IC0JCQkiZGlzYWJsZWRcbiIpOwo+IC0JCWdvdG8gYnVmZl9jaGVjazsKPiAtCX0K PiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7ICsraSkgewo+IC0J CW0gPSAmZHB1X2NydGMtPm1peGVyc1tpXTsKPiAtCQlpZiAoIW0tPmh3X2xtIHx8ICFtLT5od19s bS0+b3BzLmNvbGxlY3RfbWlzcikKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCW1pc3Jfc3RhdHVz ID0gbS0+aHdfbG0tPm9wcy5jb2xsZWN0X21pc3IobS0+aHdfbG0pOwo+IC0JCWRwdV9jcnRjLT5t aXNyX2RhdGFbaV0gPSBtaXNyX3N0YXR1cyA/IG1pc3Jfc3RhdHVzIDoKPiAtCQkJCQkJCWRwdV9j cnRjLT5taXNyX2RhdGFbaV07Cj4gLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9C VUZGX1NJWkUgLSBsZW4sICJsbSBpZHg6JWRcbiIsCj4gLQkJCQkJbS0+aHdfbG0tPmlkeCAtIExN XzApOwo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1JU1JfQlVGRl9TSVpFIC0gbGVu LCAiMHgleFxuIiwKPiAtCQkJCQkJCWRwdV9jcnRjLT5taXNyX2RhdGFbaV0pOwo+IC0JfQo+IC0K PiAtYnVmZl9jaGVjazoKPiAtCWlmIChjb3VudCA8PSBsZW4pIHsKPiAtCQlsZW4gPSAwOwo+IC0J CWdvdG8gZW5kOwo+IC0JfQo+IC0KPiAtCWlmIChjb3B5X3RvX3VzZXIodXNlcl9idWZmLCBidWYs IGxlbikpIHsKPiAtCQlsZW4gPSAtRUZBVUxUOwo+IC0JCWdvdG8gZW5kOwo+IC0JfQo+IC0KPiAt CSpwcG9zICs9IGxlbjsgICAvKiBpbmNyZWFzZSBvZmZzZXQgKi8KPiAtCj4gLWVuZDoKPiAtCW11 dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gLQlfZHB1X2NydGNfcG93ZXJfZW5h YmxlKGRwdV9jcnRjLCBmYWxzZSk7Cj4gLQlyZXR1cm4gbGVuOwo+IC19Cj4gLQo+ICAjZGVmaW5l IERFRklORV9EUFVfREVCVUdGU19TRVFfRk9QUyhfX3ByZWZpeCkgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiAgc3RhdGljIGludCBfX3ByZWZpeCAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlu b2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkJXAo+ICB7CQkJCQkJCQkJXAo+IEBAIC0yMDE0LDExICsx ODgyLDYgQEAgc3RhdGljIGludCBfZHB1X2NydGNfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKPiAgCQkubGxzZWVrID0Jc2VxX2xzZWVrLAo+ICAJCS5yZWxlYXNlID0Jc2luZ2xl X3JlbGVhc2UsCj4gIAl9Owo+IC0Jc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg ZGVidWdmc19taXNyX2ZvcHMgPSB7Cj4gLQkJLm9wZW4gPQkJc2ltcGxlX29wZW4sCj4gLQkJLnJl YWQgPQkJX2RwdV9jcnRjX21pc3JfcmVhZCwKPiAtCQkud3JpdGUgPQlfZHB1X2NydGNfbWlzcl9z ZXR1cCwKPiAtCX07Cj4gIAo+ICAJaWYgKCFjcnRjKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+IEBA IC0yMDQxLDggKzE5MDQsNiBAQCBzdGF0aWMgaW50IF9kcHVfY3J0Y19pbml0X2RlYnVnZnMoc3Ry dWN0IGRybV9jcnRjICpjcnRjKQo+ICAJCQlkcHVfY3J0Yy0+ZGVidWdmc19yb290LAo+ICAJCQkm ZHB1X2NydGMtPmJhc2UsCj4gIAkJCSZkcHVfY3J0Y19kZWJ1Z2ZzX3N0YXRlX2ZvcHMpOwo+IC0J ZGVidWdmc19jcmVhdGVfZmlsZSgibWlzcl9kYXRhIiwgMDYwMCwgZHB1X2NydGMtPmRlYnVnZnNf cm9vdCwKPiAtCQkJCQlkcHVfY3J0YywgJmRlYnVnZnNfbWlzcl9mb3BzKTsKPiAgCj4gIAlyZXR1 cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+IGlu ZGV4IGE4OTY3OTEuLjUzNDg0YjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NydGMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jcnRjLmgKPiBAQCAtMTU2LDkgKzE1Niw2IEBAIHN0cnVjdCBkcHVfY3J0Y19mcmFtZV9l dmVudCB7Cj4gICAqIEBldmVudF90aHJlYWQgIDogUG9pbnRlciB0byBldmVudCBoYW5kbGVyIHRo cmVhZAo+ICAgKiBAZXZlbnRfd29ya2VyICA6IEV2ZW50IHdvcmtlciBxdWV1ZQo+ICAgKiBAZXZl bnRfbG9jayAgICA6IFNwaW5sb2NrIGFyb3VuZCBldmVudCBoYW5kbGluZyBjb2RlCj4gLSAqIEBt aXNyX2VuYWJsZSAgIDogYm9vbGVhbiBlbnRyeSBpbmRpY2F0ZXMgbWlzciBlbmFibGUvZGlzYWJs ZSBzdGF0dXMuCj4gLSAqIEBtaXNyX2ZyYW1lX2NvdW50ICA6IG1pc3IgZnJhbWUgY291bnQgcHJv dmlkZWQgYnkgY2xpZW50Cj4gLSAqIEBtaXNyX2RhdGEgICAgIDogc3RvcmUgbWlzciBkYXRhIGJl Zm9yZSB0dXJuaW5nIG9mZiB0aGUgY2xvY2tzLgo+ICAgKiBAcGhhbmRsZTogUG9pbnRlciB0byBw b3dlciBoYW5kbGVyCj4gICAqIEBwb3dlcl9ldmVudCAgIDogcmVnaXN0ZXJlZCBwb3dlciBldmVu dCBoYW5kbGUKPiAgICogQGN1cl9wZXJmICAgICAgOiBjdXJyZW50IHBlcmZvcm1hbmNlIGNvbW1p dHRlZCB0byBjbG9jay9iYW5kd2lkdGggZHJpdmVyCj4gQEAgLTIwNiw5ICsyMDMsNiBAQCBzdHJ1 Y3QgZHB1X2NydGMgewo+ICAKPiAgCS8qIGZvciBoYW5kbGluZyBpbnRlcm5hbCBldmVudCB0aHJl YWQgKi8KPiAgCXNwaW5sb2NrX3QgZXZlbnRfbG9jazsKPiAtCWJvb2wgbWlzcl9lbmFibGU7Cj4g LQl1MzIgbWlzcl9mcmFtZV9jb3VudDsKPiAtCXUzMiBtaXNyX2RhdGFbQ1JUQ19EVUFMX01JWEVS U107Cj4gIAo+ICAJc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGU7Cj4gIAlzdHJ1Y3Qg ZHB1X3Bvd2VyX2V2ZW50ICpwb3dlcl9ldmVudDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmMKPiBpbmRleCA1YjBlOTQ0Li45OTFiMjJjIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gQEAgLTY1LDggKzY1 LDYgQEAKPiAgCj4gICNkZWZpbmUgTUFYX0NIQU5ORUxTX1BFUl9FTkMgMgo+ICAKPiAtI2RlZmlu ZSBNSVNSX0JVRkZfU0laRQkJCTI1Ngo+IC0KPiAgI2RlZmluZSBJRExFX1NIT1JUX1RJTUVPVVQJ MQo+ICAKPiAgI2RlZmluZSBNQVhfVkRJU1BMQVlfU1BMSVQgMTA4MAo+IEBAIC0xNjEsOCArMTU5 LDYgQEAgZW51bSBkcHVfZW5jX3JjX3N0YXRlcyB7Cj4gICAqIEBmcmFtZV9kb25lX3RpbWVyOgkJ d2F0Y2hkb2cgdGltZXIgZm9yIGZyYW1lIGRvbmUgZXZlbnQKPiAgICogQHZzeW5jX2V2ZW50X3Rp bWVyOgkJdnN5bmMgdGltZXIKPiAgICogQGRpc3BfaW5mbzoJCQlsb2NhbCBjb3B5IG9mIG1zbV9k aXNwbGF5X2luZm8gc3RydWN0Cj4gLSAqIEBtaXNyX2VuYWJsZToJCW1pc3IgZW5hYmxlL2Rpc2Fi bGUgc3RhdHVzCj4gLSAqIEBtaXNyX2ZyYW1lX2NvdW50OgkJbWlzciBmcmFtZSBjb3VudCBiZWZv cmUgc3RhcnQgY2FwdHVyaW5nIHRoZSBkYXRhCj4gICAqIEBpZGxlX3BjX3N1cHBvcnRlZDoJCWlu ZGljYXRlIGlmIGlkbGUgcG93ZXIgY29sbGFwcyBpcyBzdXBwb3J0ZWQKPiAgICogQHJjX2xvY2s6 CQkJcmVzb3VyY2UgY29udHJvbCBtdXRleCBsb2NrIHRvIHByb3RlY3QKPiAgICoJCQkJdmlydCBl bmNvZGVyIG92ZXIgdmFyaW91cyBzdGF0ZSBjaGFuZ2VzCj4gQEAgLTIwMiw4ICsxOTgsNiBAQCBz dHJ1Y3QgZHB1X2VuY29kZXJfdmlydCB7Cj4gIAlzdHJ1Y3QgdGltZXJfbGlzdCB2c3luY19ldmVu dF90aW1lcjsKPiAgCj4gIAlzdHJ1Y3QgbXNtX2Rpc3BsYXlfaW5mbyBkaXNwX2luZm87Cj4gLQli b29sIG1pc3JfZW5hYmxlOwo+IC0JdTMyIG1pc3JfZnJhbWVfY291bnQ7Cj4gIAo+ICAJYm9vbCBp ZGxlX3BjX3N1cHBvcnRlZDsKPiAgCXN0cnVjdCBtdXRleCByY19sb2NrOwo+IEBAIC0xMTkzLDEx ICsxMTg3LDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdmlydF9lbmFibGUoc3RydWN0IGRy bV9lbmNvZGVyICpkcm1fZW5jKQo+ICAJCQlpZiAocGh5cy0+b3BzLmVuYWJsZSkKPiAgCQkJCXBo eXMtPm9wcy5lbmFibGUocGh5cyk7Cj4gIAkJfQo+IC0KPiAtCQlpZiAoZHB1X2VuYy0+bWlzcl9l bmFibGUgJiYgKGRwdV9lbmMtPmRpc3BfaW5mby5jYXBhYmlsaXRpZXMgJgo+IC0JCSAgICAgTVNN X0RJU1BMQVlfQ0FQX1ZJRF9NT0RFKSAmJiBwaHlzLT5vcHMuc2V0dXBfbWlzcikKPiAtCQkJcGh5 cy0+b3BzLnNldHVwX21pc3IocGh5cywgdHJ1ZSwKPiAtCQkJCQkJZHB1X2VuYy0+bWlzcl9mcmFt ZV9jb3VudCk7Cj4gIAl9Cj4gIAo+ICAJaWYgKGRwdV9lbmMtPmN1cl9tYXN0ZXItPm9wcy5lbmFi bGUpCj4gQEAgLTE5NDksMTEzICsxOTM4LDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfZGVi dWdmc19zdGF0dXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLAo+ICAJcmV0dXJuIHNpbmdsZV9v cGVuKGZpbGUsIF9kcHVfZW5jb2Rlcl9zdGF0dXNfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7Cj4g IH0KPiAgCj4gLXN0YXRpYyBzc2l6ZV90IF9kcHVfZW5jb2Rlcl9taXNyX3NldHVwKHN0cnVjdCBm aWxlICpmaWxlLAo+IC0JCWNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1Ziwgc2l6ZV90IGNvdW50 LCBsb2ZmX3QgKnBwb3MpCj4gLXsKPiAtCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5j Owo+IC0JaW50IGkgPSAwLCByYzsKPiAtCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV07Cj4g LQlzaXplX3QgYnVmZl9jb3B5Owo+IC0JdTMyIGZyYW1lX2NvdW50LCBlbmFibGU7Cj4gLQo+IC0J aWYgKCFmaWxlIHx8ICFmaWxlLT5wcml2YXRlX2RhdGEpCj4gLQkJcmV0dXJuIC1FSU5WQUw7Cj4g LQo+IC0JZHB1X2VuYyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKPiAtCj4gLQlidWZmX2NvcHkgPSBt aW5fdChzaXplX3QsIGNvdW50LCBNSVNSX0JVRkZfU0laRSk7Cj4gLQlpZiAoY29weV9mcm9tX3Vz ZXIoYnVmLCB1c2VyX2J1ZiwgYnVmZl9jb3B5KSkKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCj4g LQlidWZbYnVmZl9jb3B5XSA9IDA7IC8qIGVuZCBvZiBzdHJpbmcgKi8KPiAtCj4gLQlpZiAoc3Nj YW5mKGJ1ZiwgIiV1ICV1IiwgJmVuYWJsZSwgJmZyYW1lX2NvdW50KSAhPSAyKQo+IC0JCXJldHVy biAtRUlOVkFMOwo+IC0KPiAtCXJjID0gX2RwdV9lbmNvZGVyX3Bvd2VyX2VuYWJsZShkcHVfZW5j LCB0cnVlKTsKPiAtCWlmIChyYykKPiAtCQlyZXR1cm4gcmM7Cj4gLQo+IC0JbXV0ZXhfbG9jaygm ZHB1X2VuYy0+ZW5jX2xvY2spOwo+IC0JZHB1X2VuYy0+bWlzcl9lbmFibGUgPSBlbmFibGU7Cj4g LQlkcHVfZW5jLT5taXNyX2ZyYW1lX2NvdW50ID0gZnJhbWVfY291bnQ7Cj4gLQlmb3IgKGkgPSAw OyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsgaSsrKSB7Cj4gLQkJc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXMgPSBkcHVfZW5jLT5waHlzX2VuY3NbaV07Cj4gLQo+IC0JCWlmICghcGh5 cyB8fCAhcGh5cy0+b3BzLnNldHVwX21pc3IpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQlwaHlz LT5vcHMuc2V0dXBfbWlzcihwaHlzLCBlbmFibGUsIGZyYW1lX2NvdW50KTsKPiAtCX0KPiAtCW11 dGV4X3VubG9jaygmZHB1X2VuYy0+ZW5jX2xvY2spOwo+IC0JX2RwdV9lbmNvZGVyX3Bvd2VyX2Vu YWJsZShkcHVfZW5jLCBmYWxzZSk7Cj4gLQo+IC0JcmV0dXJuIGNvdW50Owo+IC19Cj4gLQo+IC1z dGF0aWMgc3NpemVfdCBfZHB1X2VuY29kZXJfbWlzcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLAo+ IC0JCWNoYXIgX191c2VyICp1c2VyX2J1ZmYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQo+ IC17Cj4gLQlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKPiAtCWludCBpID0gMCwg bGVuID0gMDsKPiAtCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV0gPSB7J1wwJ307Cj4gLQlp bnQgcmM7Cj4gLQo+IC0JaWYgKCpwcG9zKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlmICghZmls ZSB8fCAhZmlsZS0+cHJpdmF0ZV9kYXRhKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAtCWRw dV9lbmMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Cj4gLQo+IC0JcmMgPSBfZHB1X2VuY29kZXJfcG93 ZXJfZW5hYmxlKGRwdV9lbmMsIHRydWUpOwo+IC0JaWYgKHJjKQo+IC0JCXJldHVybiByYzsKPiAt Cj4gLQltdXRleF9sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7Cj4gLQlpZiAoIWRwdV9lbmMtPm1p c3JfZW5hYmxlKSB7Cj4gLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9CVUZGX1NJ WkUgLSBsZW4sCj4gLQkJCSJkaXNhYmxlZFxuIik7Cj4gLQkJZ290byBidWZmX2NoZWNrOwo+IC0J fSBlbHNlIGlmIChkcHVfZW5jLT5kaXNwX2luZm8uY2FwYWJpbGl0aWVzICYKPiAtCQkJCQkJfk1T TV9ESVNQTEFZX0NBUF9WSURfTU9ERSkgewo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4s IE1JU1JfQlVGRl9TSVpFIC0gbGVuLAo+IC0JCQkidW5zdXBwb3J0ZWRcbiIpOwo+IC0JCWdvdG8g YnVmZl9jaGVjazsKPiAtCX0KPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVtX3Bo eXNfZW5jczsgaSsrKSB7Cj4gLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMgPSBkcHVf ZW5jLT5waHlzX2VuY3NbaV07Cj4gLQo+IC0JCWlmICghcGh5cyB8fCAhcGh5cy0+b3BzLmNvbGxl Y3RfbWlzcikKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBs ZW4sIE1JU1JfQlVGRl9TSVpFIC0gbGVuLAo+IC0JCQkiSW50ZiBpZHg6JWRcbiIsIHBoeXMtPmlu dGZfaWR4IC0gSU5URl8wKTsKPiAtCQlsZW4gKz0gc25wcmludGYoYnVmICsgbGVuLCBNSVNSX0JV RkZfU0laRSAtIGxlbiwgIjB4JXhcbiIsCj4gLQkJCQkJcGh5cy0+b3BzLmNvbGxlY3RfbWlzcihw aHlzKSk7Cj4gLQl9Cj4gLQo+IC1idWZmX2NoZWNrOgo+IC0JaWYgKGNvdW50IDw9IGxlbikgewo+ IC0JCWxlbiA9IDA7Cj4gLQkJZ290byBlbmQ7Cj4gLQl9Cj4gLQo+IC0JaWYgKGNvcHlfdG9fdXNl cih1c2VyX2J1ZmYsIGJ1ZiwgbGVuKSkgewo+IC0JCWxlbiA9IC1FRkFVTFQ7Cj4gLQkJZ290byBl bmQ7Cj4gLQl9Cj4gLQo+IC0JKnBwb3MgKz0gbGVuOyAgIC8qIGluY3JlYXNlIG9mZnNldCAqLwo+ IC0KPiAtZW5kOgo+IC0JbXV0ZXhfdW5sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7Cj4gLQlfZHB1 X2VuY29kZXJfcG93ZXJfZW5hYmxlKGRwdV9lbmMsIGZhbHNlKTsKPiAtCXJldHVybiBsZW47Cj4g LX0KPiAtCj4gIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJt X2VuY29kZXIgKmRybV9lbmMpCj4gIHsKPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVf ZW5jOwo+IEBAIC0yMDcwLDEyICsxOTUyLDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJfaW5p dF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYykKPiAgCQkucmVsZWFzZSA9CXNp bmdsZV9yZWxlYXNlLAo+ICAJfTsKPiAgCj4gLQlzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3Bl cmF0aW9ucyBkZWJ1Z2ZzX21pc3JfZm9wcyA9IHsKPiAtCQkub3BlbiA9IHNpbXBsZV9vcGVuLAo+ IC0JCS5yZWFkID0gX2RwdV9lbmNvZGVyX21pc3JfcmVhZCwKPiAtCQkud3JpdGUgPSBfZHB1X2Vu Y29kZXJfbWlzcl9zZXR1cCwKPiAtCX07Cj4gLQo+ICAJY2hhciBuYW1lW0RQVV9OQU1FX1NJWkVd Owo+ICAKPiAgCWlmICghZHJtX2VuYyB8fCAhZHJtX2VuYy0+ZGV2IHx8ICFkcm1fZW5jLT5kZXYt PmRldl9wcml2YXRlKSB7Cj4gQEAgLTIwOTksOSArMTk3NSw2IEBAIHN0YXRpYyBpbnQgX2RwdV9l bmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCj4gIAlkZWJ1 Z2ZzX2NyZWF0ZV9maWxlKCJzdGF0dXMiLCAwNjAwLAo+ICAJCWRwdV9lbmMtPmRlYnVnZnNfcm9v dCwgZHB1X2VuYywgJmRlYnVnZnNfc3RhdHVzX2ZvcHMpOwo+ICAKPiAtCWRlYnVnZnNfY3JlYXRl X2ZpbGUoIm1pc3JfZGF0YSIsIDA2MDAsCj4gLQkJZHB1X2VuYy0+ZGVidWdmc19yb290LCBkcHVf ZW5jLCAmZGVidWdmc19taXNyX2ZvcHMpOwo+IC0KPiAgCWZvciAoaSA9IDA7IGkgPCBkcHVfZW5j LT5udW1fcGh5c19lbmNzOyBpKyspCj4gIAkJaWYgKGRwdV9lbmMtPnBoeXNfZW5jc1tpXSAmJgo+ ICAJCQkJZHB1X2VuYy0+cGh5c19lbmNzW2ldLT5vcHMubGF0ZV9yZWdpc3RlcikKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCj4gaW5kZXgg YzdkZjhhYS4uYjM5MTdlMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKPiBAQCAtMTE0LDggKzExNCw2IEBAIHN0cnVjdCBkcHVf ZW5jb2Rlcl92aXJ0X29wcyB7Cj4gICAqIEBoYW5kbGVfcG9zdF9raWNrb2ZmOglEbyBhbnkgd29y ayBuZWNlc3NhcnkgcG9zdC1raWNrb2ZmIHdvcmsKPiAgICogQHRyaWdnZXJfc3RhcnQ6CQlQcm9j ZXNzIHN0YXJ0IGV2ZW50IG9uIHBoeXNpY2FsIGVuY29kZXIKPiAgICogQG5lZWRzX3NpbmdsZV9m bHVzaDoJCVdoZXRoZXIgZW5jb2RlciBzbGF2ZXMgbmVlZCB0byBiZSBmbHVzaGVkCj4gLSAqIEBz ZXR1cF9taXNyOgkJU2V0cyB1cCBNSVNSLCBlbmFibGUgYW5kIGRpc2FibGVzIGJhc2VkIG9uIHN5 c2ZzCj4gLSAqIEBjb2xsZWN0X21pc3I6CQlDb2xsZWN0cyBNSVNSIGRhdGEgb24gZnJhbWUgdXBk YXRlCj4gICAqIEBod19yZXNldDoJCQlJc3N1ZSBIVyByZWNvdmVyeSBzdWNoIGFzIENUTCByZXNl dCBhbmQgY2xlYXIKPiAgICoJCQkJRFBVX0VOQ19FUlJfTkVFRFNfSFdfUkVTRVQgc3RhdGUKPiAg ICogQGlycV9jb250cm9sOgkJSGFuZGxlciB0byBlbmFibGUvZGlzYWJsZSBhbGwgdGhlIGVuY29k ZXIgSVJRcwo+IEBAIC0xNTQsMTAgKzE1Miw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzX29w cyB7Cj4gIAl2b2lkICgqaGFuZGxlX3Bvc3Rfa2lja29mZikoc3RydWN0IGRwdV9lbmNvZGVyX3Bo eXMgKnBoeXNfZW5jKTsKPiAgCXZvaWQgKCp0cmlnZ2VyX3N0YXJ0KShzdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5cyAqcGh5c19lbmMpOwo+ICAJYm9vbCAoKm5lZWRzX3NpbmdsZV9mbHVzaCkoc3RydWN0 IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKPiAtCj4gLQl2b2lkICgqc2V0dXBfbWlzciko c3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jcywKPiAtCQkJCWJvb2wgZW5hYmxlLCB1 MzIgZnJhbWVfY291bnQpOwo+IC0JdTMyICgqY29sbGVjdF9taXNyKShzdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5cyAqcGh5c19lbmMpOwo+ICAJdm9pZCAoKmh3X3Jlc2V0KShzdHJ1Y3QgZHB1X2VuY29k ZXJfcGh5cyAqcGh5c19lbmMpOwo+ICAJdm9pZCAoKmlycV9jb250cm9sKShzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5cywgYm9vbCBlbmFibGUpOwo+ICAJdm9pZCAoKnByZXBhcmVfaWRsZV9w Yykoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKPiBpbmRleCAx NGZjN2MyLi42ZmMzZDNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCj4gQEAgLTc1NiwzMiArNzU2LDYgQEAgc3Rh dGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfaXJxX2NvbnRyb2woc3RydWN0IGRwdV9lbmNv ZGVyX3BoeXMgKnBoeXNfZW5jLAo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkcHVfZW5j b2Rlcl9waHlzX3ZpZF9zZXR1cF9taXNyKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2Vu YywKPiAtCQkJCQkJYm9vbCBlbmFibGUsIHUzMiBmcmFtZV9jb3VudCkKPiAtewo+IC0Jc3RydWN0 IGRwdV9lbmNvZGVyX3BoeXNfdmlkICp2aWRfZW5jOwo+IC0KPiAtCWlmICghcGh5c19lbmMpCj4g LQkJcmV0dXJuOwo+IC0JdmlkX2VuYyA9IHRvX2RwdV9lbmNvZGVyX3BoeXNfdmlkKHBoeXNfZW5j KTsKPiAtCj4gLQlpZiAodmlkX2VuYy0+aHdfaW50ZiAmJiB2aWRfZW5jLT5od19pbnRmLT5vcHMu c2V0dXBfbWlzcikKPiAtCQl2aWRfZW5jLT5od19pbnRmLT5vcHMuc2V0dXBfbWlzcih2aWRfZW5j LT5od19pbnRmLAo+IC0JCQkJCQkJZW5hYmxlLCBmcmFtZV9jb3VudCk7Cj4gLX0KPiAtCj4gLXN0 YXRpYyB1MzIgZHB1X2VuY29kZXJfcGh5c192aWRfY29sbGVjdF9taXNyKHN0cnVjdCBkcHVfZW5j b2Rlcl9waHlzICpwaHlzX2VuYykKPiAtewo+IC0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfdmlk ICp2aWRfZW5jOwo+IC0KPiAtCWlmICghcGh5c19lbmMpCj4gLQkJcmV0dXJuIDA7Cj4gLQl2aWRf ZW5jID0gdG9fZHB1X2VuY29kZXJfcGh5c192aWQocGh5c19lbmMpOwo+IC0KPiAtCXJldHVybiB2 aWRfZW5jLT5od19pbnRmICYmIHZpZF9lbmMtPmh3X2ludGYtPm9wcy5jb2xsZWN0X21pc3IgPwo+ IC0JCXZpZF9lbmMtPmh3X2ludGYtPm9wcy5jb2xsZWN0X21pc3IodmlkX2VuYy0+aHdfaW50Zikg OiAwOwo+IC19Cj4gLQo+ICBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3BoeXNfdmlkX2dldF9saW5l X2NvdW50KAo+ICAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKPiAgewo+IEBA IC04MTcsOCArNzkxLDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfaW5pdF9v cHMoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfb3BzICpvcHMpCj4gIAlvcHMtPnByZXBhcmVfZm9y X2tpY2tvZmYgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9wcmVwYXJlX2Zvcl9raWNrb2ZmOwo+ICAJ b3BzLT5oYW5kbGVfcG9zdF9raWNrb2ZmID0gZHB1X2VuY29kZXJfcGh5c192aWRfaGFuZGxlX3Bv c3Rfa2lja29mZjsKPiAgCW9wcy0+bmVlZHNfc2luZ2xlX2ZsdXNoID0gZHB1X2VuY29kZXJfcGh5 c192aWRfbmVlZHNfc2luZ2xlX2ZsdXNoOwo+IC0Jb3BzLT5zZXR1cF9taXNyID0gZHB1X2VuY29k ZXJfcGh5c192aWRfc2V0dXBfbWlzcjsKPiAtCW9wcy0+Y29sbGVjdF9taXNyID0gZHB1X2VuY29k ZXJfcGh5c192aWRfY29sbGVjdF9taXNyOwo+ICAJb3BzLT5od19yZXNldCA9IGRwdV9lbmNvZGVy X2hlbHBlcl9od19yZXNldDsKPiAgCW9wcy0+Z2V0X2xpbmVfY291bnQgPSBkcHVfZW5jb2Rlcl9w aHlzX3ZpZF9nZXRfbGluZV9jb3VudDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2h3X2ludGYuYwo+IGluZGV4IGQyODBkZjUuLjljNmJiYTAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmMKPiBAQCAtNjUsOSArNjUs NiBAQAo+ICAjZGVmaW5lICAgSU5URl9GUkFNRV9DT1VOVCAgICAgICAgICAgICAgMHgwQUMKPiAg I2RlZmluZSAgIElOVEZfTElORV9DT1VOVCAgICAgICAgICAgICAgIDB4MEIwCj4gIAo+IC0jZGVm aW5lIElOVEZfTUlTUl9DVFJMCQkJMHgxODAKPiAtI2RlZmluZSBJTlRGX01JU1JfU0lHTkFUVVJF CQkweDE4NAo+IC0KPiAgc3RhdGljIHN0cnVjdCBkcHVfaW50Zl9jZmcgKl9pbnRmX29mZnNldChl bnVtIGRwdV9pbnRmIGludGYsCj4gIAkJc3RydWN0IGRwdV9tZHNzX2NmZyAqbSwKPiAgCQl2b2lk IF9faW9tZW0gKmFkZHIsCj4gQEAgLTI0NiwzMCArMjQzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2h3 X2ludGZfZ2V0X3N0YXR1cygKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHB1X2h3X2lu dGZfc2V0dXBfbWlzcihzdHJ1Y3QgZHB1X2h3X2ludGYgKmludGYsCj4gLQkJCQkJCWJvb2wgZW5h YmxlLCB1MzIgZnJhbWVfY291bnQpCj4gLXsKPiAtCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAg KmMgPSAmaW50Zi0+aHc7Cj4gLQl1MzIgY29uZmlnID0gMDsKPiAtCj4gLQlEUFVfUkVHX1dSSVRF KGMsIElOVEZfTUlTUl9DVFJMLCBNSVNSX0NUUkxfU1RBVFVTX0NMRUFSKTsKPiAtCS8qIGNsZWFy IG1pc3IgZGF0YSAqLwo+IC0Jd21iKCk7Cj4gLQo+IC0JaWYgKGVuYWJsZSkKPiAtCQljb25maWcg PSAoZnJhbWVfY291bnQgJiBNSVNSX0ZSQU1FX0NPVU5UX01BU0spIHwKPiAtCQkJTUlTUl9DVFJM X0VOQUJMRSB8IElOVEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0s7Cj4gLQo+IC0JRFBVX1JFR19X UklURShjLCBJTlRGX01JU1JfQ1RSTCwgY29uZmlnKTsKPiAtfQo+IC0KPiAtc3RhdGljIHUzMiBk cHVfaHdfaW50Zl9jb2xsZWN0X21pc3Ioc3RydWN0IGRwdV9od19pbnRmICppbnRmKQo+IC17Cj4g LQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjID0gJmludGYtPmh3Owo+IC0KPiAtCXJldHVy biBEUFVfUkVHX1JFQUQoYywgSU5URl9NSVNSX1NJR05BVFVSRSk7Cj4gLX0KPiAtCj4gIHN0YXRp YyB1MzIgZHB1X2h3X2ludGZfZ2V0X2xpbmVfY291bnQoc3RydWN0IGRwdV9od19pbnRmICppbnRm KQo+ICB7Cj4gIAlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjOwo+IEBAIC0yODksOCArMjYy LDYgQEAgc3RhdGljIHZvaWQgX3NldHVwX2ludGZfb3BzKHN0cnVjdCBkcHVfaHdfaW50Zl9vcHMg Km9wcywKPiAgCW9wcy0+c2V0dXBfcHJnX2ZldGNoICA9IGRwdV9od19pbnRmX3NldHVwX3ByZ19m ZXRjaDsKPiAgCW9wcy0+Z2V0X3N0YXR1cyA9IGRwdV9od19pbnRmX2dldF9zdGF0dXM7Cj4gIAlv cHMtPmVuYWJsZV90aW1pbmcgPSBkcHVfaHdfaW50Zl9lbmFibGVfdGltaW5nX2VuZ2luZTsKPiAt CW9wcy0+c2V0dXBfbWlzciA9IGRwdV9od19pbnRmX3NldHVwX21pc3I7Cj4gLQlvcHMtPmNvbGxl Y3RfbWlzciA9IGRwdV9od19pbnRmX2NvbGxlY3RfbWlzcjsKPiAgCW9wcy0+Z2V0X2xpbmVfY291 bnQgPSBkcHVfaHdfaW50Zl9nZXRfbGluZV9jb3VudDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmgKPiBpbmRleCBhNzlkNzM1Li4zYjc3ZGY0 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRm LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5oCj4g QEAgLTU5LDggKzU5LDYgQEAgc3RydWN0IGludGZfc3RhdHVzIHsKPiAgICogQCBzZXR1cF9wcm9n X2ZldGNoIDogZW5hYmxlcy9kaXNhYmxlcyB0aGUgcHJvZ3JhbW1hYmxlIGZldGNoIGxvZ2ljCj4g ICAqIEAgZW5hYmxlX3RpbWluZzogZW5hYmxlL2Rpc2FibGUgdGltaW5nIGVuZ2luZQo+ICAgKiBA IGdldF9zdGF0dXM6IHJldHVybnMgaWYgdGltaW5nIGVuZ2luZSBpcyBlbmFibGVkIG9yIG5vdAo+ IC0gKiBAIHNldHVwX21pc3I6IGVuYWJsZXMvZGlzYWJsZXMgTUlTUiBpbiBIVyByZWdpc3Rlcgo+ IC0gKiBAIGNvbGxlY3RfbWlzcjogcmVhZHMgYW5kIHN0b3JlcyBNSVNSIGRhdGEgZnJvbSBIVyBy ZWdpc3Rlcgo+ICAgKiBAIGdldF9saW5lX2NvdW50OiByZWFkcyBjdXJyZW50IHZlcnRpY2FsIGxp bmUgY291bnRlcgo+ICAgKi8KPiAgc3RydWN0IGRwdV9od19pbnRmX29wcyB7Cj4gQEAgLTc3LDEx ICs3NSw2IEBAIHN0cnVjdCBkcHVfaHdfaW50Zl9vcHMgewo+ICAJdm9pZCAoKmdldF9zdGF0dXMp KHN0cnVjdCBkcHVfaHdfaW50ZiAqaW50ZiwKPiAgCQkJc3RydWN0IGludGZfc3RhdHVzICpzdGF0 dXMpOwo+ICAKPiAtCXZvaWQgKCpzZXR1cF9taXNyKShzdHJ1Y3QgZHB1X2h3X2ludGYgKmludGYs Cj4gLQkJCWJvb2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpOwo+IC0KPiAtCXUzMiAoKmNvbGxl Y3RfbWlzcikoc3RydWN0IGRwdV9od19pbnRmICppbnRmKTsKPiAtCj4gIAl1MzIgKCpnZXRfbGlu ZV9jb3VudCkoc3RydWN0IGRwdV9od19pbnRmICppbnRmKTsKPiAgfTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19sbS5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmMKPiBpbmRleCA0YWI3MmIwLi5hY2I4ZGM4 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19sbS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmMKPiBAQCAt MzQsOSArMzQsNiBAQAo+ICAjZGVmaW5lIExNX0JMRU5EMF9GR19BTFBIQSAgICAgICAgICAgICAg IDB4MDQKPiAgI2RlZmluZSBMTV9CTEVORDBfQkdfQUxQSEEgICAgICAgICAgICAgICAweDA4Cj4g IAo+IC0jZGVmaW5lIExNX01JU1JfQ1RSTAkJCTB4MzEwCj4gLSNkZWZpbmUgTE1fTUlTUl9TSUdO QVRVUkUJCTB4MzE0Cj4gLQo+ICBzdGF0aWMgc3RydWN0IGRwdV9sbV9jZmcgKl9sbV9vZmZzZXQo ZW51bSBkcHVfbG0gbWl4ZXIsCj4gIAkJc3RydWN0IGRwdV9tZHNzX2NmZyAqbSwKPiAgCQl2b2lk IF9faW9tZW0gKmFkZHIsCj4gQEAgLTE3MSwzMCArMTY4LDYgQEAgc3RhdGljIHZvaWQgZHB1X2h3 X2xtX2djKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKm1peGVyLAo+ICB7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIGRwdV9od19sbV9zZXR1cF9taXNyKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKmN0eCwKPiAt CQkJCWJvb2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpCj4gLXsKPiAtCXN0cnVjdCBkcHVfaHdf YmxrX3JlZ19tYXAgKmMgPSAmY3R4LT5odzsKPiAtCXUzMiBjb25maWcgPSAwOwo+IC0KPiAtCURQ VV9SRUdfV1JJVEUoYywgTE1fTUlTUl9DVFJMLCBNSVNSX0NUUkxfU1RBVFVTX0NMRUFSKTsKPiAt CS8qIGNsZWFyIG1pc3IgZGF0YSAqLwo+IC0Jd21iKCk7Cj4gLQo+IC0JaWYgKGVuYWJsZSkKPiAt CQljb25maWcgPSAoZnJhbWVfY291bnQgJiBNSVNSX0ZSQU1FX0NPVU5UX01BU0spIHwKPiAtCQkJ TUlTUl9DVFJMX0VOQUJMRSB8IElOVEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0s7Cj4gLQo+IC0J RFBVX1JFR19XUklURShjLCBMTV9NSVNSX0NUUkwsIGNvbmZpZyk7Cj4gLX0KPiAtCj4gLXN0YXRp YyB1MzIgZHB1X2h3X2xtX2NvbGxlY3RfbWlzcihzdHJ1Y3QgZHB1X2h3X21peGVyICpjdHgpCj4g LXsKPiAtCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMgPSAmY3R4LT5odzsKPiAtCj4gLQly ZXR1cm4gRFBVX1JFR19SRUFEKGMsIExNX01JU1JfU0lHTkFUVVJFKTsKPiAtfQo+IC0KPiAgc3Rh dGljIHZvaWQgX3NldHVwX21peGVyX29wcyhzdHJ1Y3QgZHB1X21kc3NfY2ZnICptLAo+ICAJCXN0 cnVjdCBkcHVfaHdfbG1fb3BzICpvcHMsCj4gIAkJdW5zaWduZWQgbG9uZyBmZWF0dXJlcykKPiBA QCAtMjA3LDggKzE4MCw2IEBAIHN0YXRpYyB2b2lkIF9zZXR1cF9taXhlcl9vcHMoc3RydWN0IGRw dV9tZHNzX2NmZyAqbSwKPiAgCW9wcy0+c2V0dXBfYWxwaGFfb3V0ID0gZHB1X2h3X2xtX3NldHVw X2NvbG9yMzsKPiAgCW9wcy0+c2V0dXBfYm9yZGVyX2NvbG9yID0gZHB1X2h3X2xtX3NldHVwX2Jv cmRlcl9jb2xvcjsKPiAgCW9wcy0+c2V0dXBfZ2MgPSBkcHVfaHdfbG1fZ2M7Cj4gLQlvcHMtPnNl dHVwX21pc3IgPSBkcHVfaHdfbG1fc2V0dXBfbWlzcjsKPiAtCW9wcy0+Y29sbGVjdF9taXNyID0g ZHB1X2h3X2xtX2NvbGxlY3RfbWlzcjsKPiAgfTsKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHB1X2h3 X2Jsa19vcHMgZHB1X2h3X29wcyA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2h3X2xtLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfaHdfbG0uaAo+IGluZGV4IGUyOWU1ZGEuLjViMDM2YWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfbG0uaAo+IEBAIC02NiwxMyArNjYsNiBAQCBzdHJ1Y3Qg ZHB1X2h3X2xtX29wcyB7Cj4gIAkgKi8KPiAgCXZvaWQgKCpzZXR1cF9nYykoc3RydWN0IGRwdV9o d19taXhlciAqbWl4ZXIsCj4gIAkJCXZvaWQgKmNmZyk7Cj4gLQo+IC0JLyogc2V0dXBfbWlzcjog ZW5hYmxlcy9kaXNhYmxlcyBNSVNSIGluIEhXIHJlZ2lzdGVyICovCj4gLQl2b2lkICgqc2V0dXBf bWlzcikoc3RydWN0IGRwdV9od19taXhlciAqY3R4LAo+IC0JCQlib29sIGVuYWJsZSwgdTMyIGZy YW1lX2NvdW50KTsKPiAtCj4gLQkvKiBjb2xsZWN0X21pc3I6IHJlYWRzIGFuZCBzdG9yZXMgTUlT UiBkYXRhIGZyb20gSFcgcmVnaXN0ZXIgKi8KPiAtCXUzMiAoKmNvbGxlY3RfbWlzcikoc3RydWN0 IGRwdV9od19taXhlciAqY3R4KTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBkcHVfaHdfbWl4ZXIgewo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuYwo+IGluZGV4IDRj YWJhZTQuLmNiNWMwMTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2h3X3V0aWwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9od191dGlsLmMKPiBAQCAtNTAsOSArNTAsNiBAQAo+ICAjZGVmaW5lIFFTRUVEM19DTEtfQ1RS TDAgICAgICAgICAgICAgICAgICAgMHg1NAo+ICAjZGVmaW5lIFFTRUVEM19DTEtfQ1RSTDEgICAg ICAgICAgICAgICAgICAgMHg1OAo+ICAjZGVmaW5lIFFTRUVEM19DTEtfU1RBVFVTICAgICAgICAg ICAgICAgICAgMHg1Qwo+IC0jZGVmaW5lIFFTRUVEM19NSVNSX0NUUkwgICAgICAgICAgICAgICAg ICAgMHg3MAo+IC0jZGVmaW5lIFFTRUVEM19NSVNSX1NJR05BVFVSRV8wICAgICAgICAgICAgMHg3 NAo+IC0jZGVmaW5lIFFTRUVEM19NSVNSX1NJR05BVFVSRV8xICAgICAgICAgICAgMHg3OAo+ICAj ZGVmaW5lIFFTRUVEM19QSEFTRV9JTklUX1lfSCAgICAgICAgICAgICAgMHg5MAo+ICAjZGVmaW5l IFFTRUVEM19QSEFTRV9JTklUX1lfViAgICAgICAgICAgICAgMHg5NAo+ICAjZGVmaW5lIFFTRUVE M19QSEFTRV9JTklUX1VWX0ggICAgICAgICAgICAgMHg5OAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5oIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuaAo+IGluZGV4IDEyNDBmNTAuLmNiMDIwNDEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmgKPiBAQCAtMzI1 LDEyICszMjUsNiBAQCB2b2lkIGRwdV9yZWdfd3JpdGUoc3RydWN0IGRwdV9od19ibGtfcmVnX21h cCAqYywKPiAgI2RlZmluZSBEUFVfUkVHX1dSSVRFKGMsIG9mZiwgdmFsKSBkcHVfcmVnX3dyaXRl KGMsIG9mZiwgdmFsLCAjb2ZmKQo+ICAjZGVmaW5lIERQVV9SRUdfUkVBRChjLCBvZmYpIGRwdV9y ZWdfcmVhZChjLCBvZmYpCj4gIAo+IC0jZGVmaW5lIE1JU1JfRlJBTUVfQ09VTlRfTUFTSwkJMHhG Rgo+IC0jZGVmaW5lIE1JU1JfQ1RSTF9FTkFCTEUJCUJJVCg4KQo+IC0jZGVmaW5lIE1JU1JfQ1RS TF9TVEFUVVMJCUJJVCg5KQo+IC0jZGVmaW5lIE1JU1JfQ1RSTF9TVEFUVVNfQ0xFQVIJCUJJVCgx MCkKPiAtI2RlZmluZSBJTlRGX01JU1JfQ1RSTF9GUkVFX1JVTl9NQVNLCUJJVCgzMSkKPiAtCj4g IHZvaWQgKmRwdV9od191dGlsX2dldF9kaXIodm9pZCk7Cj4gIAo+ICB2b2lkIGRwdV9od19zZXR1 cF9zY2FsZXIzKHN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMsCj4gLS0gCj4gVGhlIFF1YWxj b21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9y YSBGb3J1bSwKPiBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cj4gCgot LSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1h aWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==