From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 22/43] drm/i915: Introduce intel_context.pin_mutex for pin management Date: Wed, 6 Mar 2019 14:43:13 +0000 Message-ID: <024c957a-10ef-4368-0c81-8a96ccd3ead2@linux.intel.com> References: <20190306142517.22558-1-chris@chris-wilson.co.uk> <20190306142517.22558-23-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 4F92B6E0C3 for ; Wed, 6 Mar 2019 14:43:16 +0000 (UTC) In-Reply-To: <20190306142517.22558-23-chris@chris-wilson.co.uk> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org Cc: matthew.auld@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA2LzAzLzIwMTkgMTQ6MjQsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbnRyb2R1Y2UgYSBt dXRleCB0byBzdGFydCBsb2NraW5nIHRoZSBIVyBjb250ZXh0cyBpbmRlcGVuZGVudGx5IG9mCj4g c3RydWN0X211dGV4LCB3aXRoIGEgdmlldyB0byByZWR1Y2luZyB0aGUgY29hcnNlIHN0cnVjdF9t dXRleC4gVGhlCj4gaW50ZWxfY29udGV4dC5waW5fbXV0ZXggaXMgdXNlZCB0byBndWFyZCB0aGUg dHJhbnNpdGlvbiB0byBhbmQgZnJvbSBiZWluZwo+IHBpbm5lZCBvbiB0aGUgZ3B1LCBhbmQgc28g aXMgcmVxdWlyZWQgYmVmb3JlIHN0YXJ0aW5nIHRvIGJ1aWxkIGFueQo+IHJlcXVlc3QuIFRoZSBp bnRlbF9jb250ZXh0IHdpbGwgdGhlbiByZW1haW4gcGlubmVkIHVudGlsIHRoZSByZXF1ZXN0Cj4g Y29tcGxldGVzLCBidXQgdGhlIG11dGV4IGNhbiBiZSByZWxlYXNlZCBpbW1lZGlhdGVseSB1bnBp biBjb21wbGV0aW9uIG9mCj4gcGlubmluZyB0aGUgY29udGV4dC4KPiAKPiBBIHNsaWdodCB2YXJp YW50IG9mIHRoZSBhYm92ZSBpcyB1c2VkIGJ5IHBlci1jb250ZXh0IHNzZXUgdGhhdCB3YW50cyB0 bwo+IGluc3BlY3QgdGhlIHBpbm5lZCBzdGF0dXMgb2YgdGhlIGNvbnRleHQsIGFuZCByZXF1aXJl cyB0aGF0IGl0IHJlbWFpbnMKPiBzdGFibGUgKGVpdGhlciAhcGlubmVkIG9yIHBpbm5lZCkgYWNy b3NzIGl0cyBvcGVyYXRpb24uIEJ5IHVzaW5nIHRoZQo+IHBpbl9tdXRleCB0byBzZXJpYWxpc2Ug b3BlcmF0aW9ucyB3aGlsZSBwaW5fY291bnQ9PTAsIHdlIGNhbiB0YWtlIHRoYXQKPiBwaW5fbXV0 ZXggZm9yIHN0YWJpbGlzZSB0aGUgYm9vbGVhbiBwaW4gc3RhdHVzLgoKQ2hhbmdlIGxvZyEKCj4g U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4g Q2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgfCAgMiArLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgICAgIHwgNzYgKysrKysr Ky0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dC5jICAg ICAgICAgIHwgNTYgKysrKysrKysrKysrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbnRleHQuaCAgICAgICAgICB8IDM4ICsrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NvbnRleHRfdHlwZXMuaCAgICB8ICA4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICAgICAgIHwgIDQgKy0KPiAgIC4uLi9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYyAgfCAgMiArLQo+ICAgOSBmaWxlcyBjaGFu Z2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gaW5kZXggNzFkOGNlMzhmNDJjLi44ODYzZGQ0MTRjZGUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtNDY2Miw3ICs0NjYyLDcgQEAgc3RhdGljIGludCBfX2lu dGVsX2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQo+ICAgCQlpZiAoIXN0YXRlKQo+ICAgCQkJY29udGludWU7Cj4gICAKPiAtCQlHRU1fQlVHX09O KGNlLT5waW5fY291bnQpOwo+ICsJCUdFTV9CVUdfT04oaW50ZWxfY29udGV4dF9pc19waW5uZWQo Y2UpKTsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBBcyB3ZSB3aWxsIGhvbGQgYSByZWZlcmVuY2Ug dG8gdGhlIGxvZ2ljYWwgc3RhdGUsIGl0IHdpbGwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jCj4gaW5kZXggZjdhMDc1ZWZjY2FkLi4zNTU0MWY5OWIzN2QgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTEwOTgsMjMgKzEwOTgs MjcgQEAgc3RhdGljIGludCBnZW44X2VtaXRfcnBjc19jb25maWcoc3RydWN0IGk5MTVfcmVxdWVz dCAqcnEsCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQKPiAtZ2VuOF9tb2RpZnlfcnBjc19ncHUo c3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+IC0JCSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+IC0JCSAgICAgc3RydWN0IGludGVsX3NzZXUgc3NldSkKPiArZ2VuOF9tb2Rp ZnlfcnBjcyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHN0cnVjdCBpbnRlbF9zc2V1IHNzZXUp Cj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+aTkxNTsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gY2UtPmVuZ2luZS0+aTkxNTsKPiAg IAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgKnByZXY7Cj4gICAJaW50ZWxfd2FrZXJlZl90IHdh a2VyZWY7Cj4gICAJaW50IHJldDsKPiAgIAo+IC0JR0VNX0JVR19PTighY2UtPnBpbl9jb3VudCk7 Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjZS0+cGluX211dGV4KTsKPiAgIAo+IC0JbG9ja2Rl cF9hc3NlcnRfaGVsZCgmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwkvKgo+ICsJICogSWYg Y29udGV4dCBpcyBub3QgaWRsZSB3ZSBoYXZlIHRvIHN1Ym1pdCBhbiBvcmRlcmVkIHJlcXVlc3Qg dG8gbW9kaWZ5Cj4gKwkgKiBpdHMgY29udGV4dCBpbWFnZSB2aWEgdGhlIGtlcm5lbCBjb250ZXh0 LiBQcmlzdGluZSBhbmQgaWRsZSBjb250ZXh0cwo+ICsJICogd2lsbCBiZSBjb25maWd1cmVkIG9u IHBpbm5pbmcuCj4gKwkgKi8KPiArCWlmICghaW50ZWxfY29udGV4dF9pc19waW5uZWQoY2UpKQo+ ICsJCXJldHVybiAwOwo+ICAgCj4gICAJLyogU3VibWl0dGluZyByZXF1ZXN0cyBldGMgbmVlZHMg dGhlIGh3IGF3YWtlLiAqLwo+ICAgCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1 KTsKPiAgIAo+IC0JcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2MoZW5naW5lLCBpOTE1LT5rZXJuZWxf Y29udGV4dCk7Cj4gKwlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhjZS0+ZW5naW5lLCBpOTE1LT5r ZXJuZWxfY29udGV4dCk7Cj4gICAJaWYgKElTX0VSUihycSkpIHsKPiAgIAkJcmV0ID0gUFRSX0VS UihycSk7Cj4gICAJCWdvdG8gb3V0X3B1dDsKPiBAQCAtMTE1OCw1MyArMTE2MiwzMCBAQCBnZW44 X21vZGlmeV9ycGNzX2dwdShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gICB9Cj4gICAKPiAg IHN0YXRpYyBpbnQKPiAtX19pOTE1X2dlbV9jb250ZXh0X3JlY29uZmlndXJlX3NzZXUoc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAtCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUsCj4gLQkJCQkgICAgc3RydWN0IGludGVsX3NzZXUgc3NldSkKPiAraTkxNV9nZW1f Y29udGV4dF9yZWNvbmZpZ3VyZV9zc2V1KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4g KwkJCQkgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiArCQkJCSAgc3RydWN0IGlu dGVsX3NzZXUgc3NldSkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Cj4gICAJ aW50IHJldCA9IDA7Cj4gICAKPiAtCWNlID0gaW50ZWxfY29udGV4dF9pbnN0YW5jZShjdHgsIGVu Z2luZSk7Cj4gLQlpZiAoSVNfRVJSKGNlKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihjZSk7Cj4gLQo+ ICAgCUdFTV9CVUdfT04oSU5URUxfR0VOKGN0eC0+aTkxNSkgPCA4KTsKPiAgIAlHRU1fQlVHX09O KGVuZ2luZS0+aWQgIT0gUkNTMCk7Cj4gICAKPiArCWNlID0gaW50ZWxfY29udGV4dF9waW5fbG9j ayhjdHgsIGVuZ2luZSk7Cj4gKwlpZiAoSVNfRVJSKGNlKSkKPiArCQlyZXR1cm4gUFRSX0VSUihj ZSk7Cj4gKwo+ICAgCS8qIE5vdGhpbmcgdG8gZG8gaWYgdW5tb2RpZmllZC4gKi8KPiAgIAlpZiAo IW1lbWNtcCgmY2UtPnNzZXUsICZzc2V1LCBzaXplb2Yoc3NldSkpKQo+IC0JCXJldHVybiAwOwo+ IC0KPiAtCS8qCj4gLQkgKiBJZiBjb250ZXh0IGlzIG5vdCBpZGxlIHdlIGhhdmUgdG8gc3VibWl0 IGFuIG9yZGVyZWQgcmVxdWVzdCB0byBtb2RpZnkKPiAtCSAqIGl0cyBjb250ZXh0IGltYWdlIHZp YSB0aGUga2VybmVsIGNvbnRleHQuIFByaXN0aW5lIGFuZCBpZGxlIGNvbnRleHRzCj4gLQkgKiB3 aWxsIGJlIGNvbmZpZ3VyZWQgb24gcGlubmluZy4KPiAtCSAqLwo+IC0JaWYgKGNlLT5waW5fY291 bnQpCj4gLQkJcmV0ID0gZ2VuOF9tb2RpZnlfcnBjc19ncHUoY2UsIGVuZ2luZSwgc3NldSk7Cj4g KwkJZ290byB1bmxvY2s7Cj4gICAKPiArCXJldCA9IGdlbjhfbW9kaWZ5X3JwY3MoY2UsIHNzZXUp Owo+ICAgCWlmICghcmV0KQo+ICAgCQljZS0+c3NldSA9IHNzZXU7Cj4gICAKPiAtCXJldHVybiBy ZXQ7Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbnQKPiAtaTkxNV9nZW1fY29udGV4dF9yZWNvbmZpZ3Vy ZV9zc2V1KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gLQkJCQkgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAtCQkJCSAgc3RydWN0IGludGVsX3NzZXUgc3NldSkKPiAt ewo+IC0JaW50IHJldDsKPiAtCj4gLQlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmN0 eC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gLQlpZiAocmV0KQo+IC0JCXJldHVybiByZXQ7 Cj4gLQo+IC0JcmV0ID0gX19pOTE1X2dlbV9jb250ZXh0X3JlY29uZmlndXJlX3NzZXUoY3R4LCBl bmdpbmUsIHNzZXUpOwo+IC0KPiAtCW11dGV4X3VubG9jaygmY3R4LT5pOTE1LT5kcm0uc3RydWN0 X211dGV4KTsKPiAtCj4gK3VubG9jazoKPiArCWludGVsX2NvbnRleHRfcGluX3VubG9jayhjZSk7 Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IEBAIC0xNjIyLDExICsxNjAzLDEyIEBAIHN0 YXRpYyBpbnQgY2xvbmVfc3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqZHN0LAo+ICAgCQlp ZiAoIW1lbWNtcCgmc3NldSwgJmRlZmF1bHRfc3NldSwgc2l6ZW9mKHNzZXUpKSkKPiAgIAkJCWNv bnRpbnVlOwo+ICAgCj4gLQkJY2UgPSBpbnRlbF9jb250ZXh0X2luc3RhbmNlKGRzdCwgZW5naW5l KTsKPiArCQljZSA9IGludGVsX2NvbnRleHRfcGluX2xvY2soZHN0LCBlbmdpbmUpOwo+ICAgCQlp ZiAoSVNfRVJSKGNlKSkKPiAgIAkJCXJldHVybiBQVFJfRVJSKGNlKTsKPiAgIAo+ICAgCQljZS0+ c3NldSA9IHNzZXU7Cj4gKwkJaW50ZWxfY29udGV4dF9waW5fdW5sb2NrKGNlKTsKPiAgIAl9Cj4g ICAKPiAgIAlyZXR1cm4gMDsKPiBAQCAtMTgwNiw3ICsxNzg4LDYgQEAgc3RhdGljIGludCBnZXRf c3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAgCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Cj4gICAJdW5zaWdu ZWQgbG9uZyBsb29rdXA7Cj4gLQlpbnQgcmV0Owo+ICAgCj4gICAJaWYgKGFyZ3MtPnNpemUgPT0g MCkKPiAgIAkJZ290byBvdXQ7Cj4gQEAgLTE4MzMsMjEgKzE4MTQsMTYgQEAgc3RhdGljIGludCBn ZXRfc3NldShzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAgCWlmICghZW5naW5lKQo+ ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAo+IC0JY2UgPSBpbnRlbF9jb250ZXh0X2luc3RhbmNl KGN0eCwgZW5naW5lKTsKPiArCWNlID0gaW50ZWxfY29udGV4dF9waW5fbG9jayhjdHgsIGVuZ2lu ZSk7IC8qIHNlcmlhbGlzZSB3aXRoIHNldF9zc2V1ICovCj4gICAJaWYgKElTX0VSUihjZSkpCj4g ICAJCXJldHVybiBQVFJfRVJSKGNlKTsKPiAgIAo+IC0JLyogT25seSB1c2UgZm9yIG11dGV4IGhl cmUgaXMgdG8gc2VyaWFsaXplIGdldF9wYXJhbSBhbmQgc2V0X3BhcmFtLiAqLwo+IC0JcmV0ID0g bXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+IC0KPiAgIAl1c2VyX3NzZXUuc2xpY2VfbWFz ayA9IGNlLT5zc2V1LnNsaWNlX21hc2s7Cj4gICAJdXNlcl9zc2V1LnN1YnNsaWNlX21hc2sgPSBj ZS0+c3NldS5zdWJzbGljZV9tYXNrOwo+ICAgCXVzZXJfc3NldS5taW5fZXVzX3Blcl9zdWJzbGlj ZSA9IGNlLT5zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlOwo+ICAgCXVzZXJfc3NldS5tYXhfZXVz X3Blcl9zdWJzbGljZSA9IGNlLT5zc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlOwo+ICAgCj4gLQlt dXRleF91bmxvY2soJmN0eC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlpbnRlbF9jb250 ZXh0X3Bpbl91bmxvY2soY2UpOwo+ICAgCj4gICAJaWYgKGNvcHlfdG9fdXNlcih1NjRfdG9fdXNl cl9wdHIoYXJncy0+dmFsdWUpLCAmdXNlcl9zc2V1LAo+ICAgCQkJIHNpemVvZih1c2VyX3NzZXUp KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dC5jCj4gaW5kZXggNGMxZGFjYjY5ZjUx Li44YmYwZDM4ZDNhMDggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dC5jCj4g QEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIF9faW50ZWxfY29udGV4dF9yZW1vdmUoc3RydWN0IGlu dGVsX2NvbnRleHQgKmNlKQo+ICAgCXNwaW5fdW5sb2NrKCZjdHgtPmh3X2NvbnRleHRzX2xvY2sp Owo+ICAgfQo+ICAgCj4gLXN0cnVjdCBpbnRlbF9jb250ZXh0ICoKPiArc3RhdGljIHN0cnVjdCBp bnRlbF9jb250ZXh0ICoKPiAgIGludGVsX2NvbnRleHRfaW5zdGFuY2Uoc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKPiAgIAkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPiAgIHsKPiBAQCAtMTI2LDYgKzEyNiwyMSBAQCBpbnRlbF9jb250ZXh0X2luc3RhbmNlKHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gICAJcmV0dXJuIHBvczsKPiAgIH0KPiAgIAo+ ICtzdHJ1Y3QgaW50ZWxfY29udGV4dCAqCj4gK2ludGVsX2NvbnRleHRfcGluX2xvY2soc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiArCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+ICsJX19hY3F1aXJlcyhjZS0+cGluX211dGV4KQo+ICt7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2U7Cj4gKwo+ICsJY2UgPSBpbnRlbF9jb250ZXh0X2luc3RhbmNlKGN0 eCwgZW5naW5lKTsKPiArCWlmIChJU19FUlIoY2UpKQo+ICsJCXJldHVybiBjZTsKPiArCj4gKwlt dXRleF9sb2NrKCZjZS0+cGluX211dGV4KTsKPiArCXJldHVybiBjZTsKPiArfQo+ICsKPiAgIHN0 cnVjdCBpbnRlbF9jb250ZXh0ICoKPiAgIGludGVsX2NvbnRleHRfcGluKHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgsCj4gICAJCSAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ IEBAIC0xMzMsMTYgKzE0OCwyMCBAQCBpbnRlbF9jb250ZXh0X3BpbihzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4LAo+ICAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPiAgIAlpbnQgZXJy Owo+ICAgCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOwo+IC0KPiAgIAljZSA9IGludGVsX2NvbnRleHRfaW5zdGFuY2UoY3R4LCBlbmdpbmUpOwo+ ICAgCWlmIChJU19FUlIoY2UpKQo+ICAgCQlyZXR1cm4gY2U7Cj4gICAKPiAtCWlmICh1bmxpa2Vs eSghY2UtPnBpbl9jb3VudCsrKSkgewo+ICsJaWYgKGxpa2VseShhdG9taWNfaW5jX25vdF96ZXJv KCZjZS0+cGluX2NvdW50KSkpCj4gKwkJcmV0dXJuIGNlOwo+ICsKPiArCWlmIChtdXRleF9sb2Nr X2ludGVycnVwdGlibGUoJmNlLT5waW5fbXV0ZXgpKQo+ICsJCXJldHVybiBFUlJfUFRSKC1FSU5U Uik7Cj4gKwo+ICsJaWYgKGxpa2VseSghYXRvbWljX3JlYWQoJmNlLT5waW5fY291bnQpKSkgewo+ ICAgCQllcnIgPSBjZS0+b3BzLT5waW4oY2UpOwo+ICAgCQlpZiAoZXJyKQo+IC0JCQlnb3RvIGVy cl91bnBpbjsKPiArCQkJZ290byBlcnI7Cj4gICAKPiAgIAkJbXV0ZXhfbG9jaygmY3R4LT5tdXRl eCk7Cj4gICAJCWxpc3RfYWRkKCZjZS0+YWN0aXZlX2xpbmssICZjdHgtPmFjdGl2ZV9lbmdpbmVz KTsKPiBAQCAtMTUwLDE2ICsxNjksMzUgQEAgaW50ZWxfY29udGV4dF9waW4oc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiAgIAo+ICAgCQlpOTE1X2dlbV9jb250ZXh0X2dldChjdHgpOwo+ ICAgCQlHRU1fQlVHX09OKGNlLT5nZW1fY29udGV4dCAhPSBjdHgpOwo+ICsKPiArCQlzbXBfbWJf X2JlZm9yZV9hdG9taWMoKTsKPiAgIAl9Cj4gLQlHRU1fQlVHX09OKCFjZS0+cGluX2NvdW50KTsg Lyogbm8gb3ZlcmZsb3chICovCj4gICAKPiArCWF0b21pY19pbmMoJmNlLT5waW5fY291bnQpOwo+ ICsJR0VNX0JVR19PTighaW50ZWxfY29udGV4dF9pc19waW5uZWQoY2UpKTsgLyogbm8gb3ZlcmZs b3chICovCj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZjZS0+cGluX211dGV4KTsKPiAgIAlyZXR1cm4g Y2U7Cj4gICAKPiAtZXJyX3VucGluOgo+IC0JY2UtPnBpbl9jb3VudCA9IDA7Cj4gK2VycjoKPiAr CW11dGV4X3VubG9jaygmY2UtPnBpbl9tdXRleCk7Cj4gICAJcmV0dXJuIEVSUl9QVFIoZXJyKTsK PiAgIH0KPiAgIAo+ICt2b2lkIGludGVsX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRl eHQgKmNlKQo+ICt7Cj4gKwlpZiAobGlrZWx5KGF0b21pY19hZGRfdW5sZXNzKCZjZS0+cGluX2Nv dW50LCAtMSwgMSkpKQo+ICsJCXJldHVybjsKPiArCj4gKwkvKiBXZSBtYXkgYmUgY2FsbGVkIGZy b20gaW5zaWRlIGludGVsX2NvbnRleHRfcGluKCkgdG8gZXZpY3QgYW5vdGhlciAqLwo+ICsJbXV0 ZXhfbG9ja19uZXN0ZWQoJmNlLT5waW5fbXV0ZXgsIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKPiAr Cj4gKwlpZiAobGlrZWx5KGF0b21pY19kZWNfYW5kX3Rlc3QoJmNlLT5waW5fY291bnQpKSkKPiAr CQljZS0+b3BzLT51bnBpbihjZSk7Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZjZS0+cGluX211dGV4 KTsKPiArfQo+ICsKPiAgIHN0YXRpYyB2b2lkIGludGVsX2NvbnRleHRfcmV0aXJlKHN0cnVjdCBp OTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCj4gICAJCQkJIHN0cnVjdCBpOTE1X3JlcXVlc3Qg KnJxKQo+ICAgewo+IEBAIC0xODEsNiArMjE5LDggQEAgaW50ZWxfY29udGV4dF9pbml0KHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSwKPiAgIAlJTklUX0xJU1RfSEVBRCgmY2UtPnNpZ25hbF9saW5r KTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmY2UtPnNpZ25hbHMpOwo+ICAgCj4gKwltdXRleF9pbml0 KCZjZS0+cGluX211dGV4KTsKPiArCj4gICAJLyogVXNlIHRoZSB3aG9sZSBkZXZpY2UgYnkgZGVm YXVsdCAqLwo+ICAgCWNlLT5zc2V1ID0gaW50ZWxfZGV2aWNlX2RlZmF1bHRfc3NldShjdHgtPmk5 MTUpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbnRl eHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbnRleHQuaAo+IGluZGV4IGVhMjE0 NzM4OTFmNy4uOTU0NmQ5MzI0MDZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2NvbnRleHQuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbnRl eHQuaAo+IEBAIC03LDYgKzcsOCBAQAo+ICAgI2lmbmRlZiBfX0lOVEVMX0NPTlRFWFRfSF9fCj4g ICAjZGVmaW5lIF9fSU5URUxfQ09OVEVYVF9IX18KPiAgIAo+ICsjaW5jbHVkZSA8bGludXgvbG9j a2RlcC5oPgo+ICsKPiAgICNpbmNsdWRlICJpbnRlbF9jb250ZXh0X3R5cGVzLmgiCj4gICAjaW5j bHVkZSAiaW50ZWxfZW5naW5lX3R5cGVzLmgiCj4gICAKPiBAQCAtMjksMTggKzMxLDMwIEBAIGlu dGVsX2NvbnRleHRfbG9va3VwKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gICAJCSAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiAgIAo+ICAgLyoqCj4gLSAqIGlu dGVsX2NvbnRleHRfaW5zdGFuY2UgLSBMb29rdXAgb3IgYWxsb2NhdGUgdGhlIEhXIGNvbnRleHQg Zm9yIChjdHgsIGVuZ2luZSkKPiArICogaW50ZWxfY29udGV4dF9waW5fbG9jayAtIFN0YWJsaXNl cyB0aGUgJ3Bpbm5lZCcgc3RhdHVzIG9mIHRoZSBIVyBjb250ZXh0Cj4gICAgKiBAY3R4IC0gdGhl IHBhcmVudCBHRU0gY29udGV4dAo+ICAgICogQGVuZ2luZSAtIHRoZSB0YXJnZXQgSFcgZW5naW5l Cj4gICAgKgo+IC0gKiBSZXR1cm5zIHRoZSBleGlzdGluZyBIVyBjb250ZXh0IGZvciB0aGlzIHBh aXIgb2YgKEdFTSBjb250ZXh0LCBlbmdpbmUpLCBvcgo+IC0gKiBhbGxvY2F0ZXMgYW5kIGluaXRp YWxpc2VzIGEgZnJlc2ggY29udGV4dC4gT25jZSBhbGxvY2F0ZWQsIHRoZSBIVyBjb250ZXh0Cj4g LSAqIHJlbWFpbnMgcmVzaWRlbnQgdW50aWwgdGhlIEdFTSBjb250ZXh0IGlzIGRlc3Ryb3llZC4K PiArICogQWNxdWlyZSBhIGxvY2sgb24gdGhlIHBpbm5lZCBzdGF0dXMgb2YgdGhlIEhXIGNvbnRl eHQsIHN1Y2ggdGhhdCB0aGUgY29udGV4dAo+ICsgKiBjYW4gbmVpdGhlciBiZSBib3VuZCB0byB0 aGUgR1BVIG9yIHVuYm91bmQgd2hpbHN0IHRoZSBsb2NrIGlzIGhlbGQsIGkuZS4KPiArICogaW50 ZWxfY29udGV4dF9pc19waW5uZWQoKSByZW1haW5zIHN0YWJsZS4KPiAgICAqLwo+ICAgc3RydWN0 IGludGVsX2NvbnRleHQgKgo+IC1pbnRlbF9jb250ZXh0X2luc3RhbmNlKHN0cnVjdCBpOTE1X2dl bV9jb250ZXh0ICpjdHgsCj4gK2ludGVsX2NvbnRleHRfcGluX2xvY2soc3RydWN0IGk5MTVfZ2Vt X2NvbnRleHQgKmN0eCwKPiAgIAkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSk7Cj4gICAKPiArc3RhdGljIGlubGluZSBib29sCj4gK2ludGVsX2NvbnRleHRfaXNfcGlubmVk KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiArewo+ICsJcmV0dXJuIGF0b21pY19yZWFkKCZj ZS0+cGluX2NvdW50KTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIGludGVsX2NvbnRl eHRfcGluX3VubG9jayhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gK19fcmVsZWFzZXMoY2Ut PnBpbl9tdXRleCkKPiArewo+ICsJbXV0ZXhfdW5sb2NrKCZjZS0+cGluX211dGV4KTsKPiArfQo+ ICsKPiAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICoKPiAgIF9faW50ZWxfY29udGV4dF9pbnNlcnQo c3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAkJICAgICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSwKPiBAQCAtNTMsMTggKzY3LDEwIEBAIGludGVsX2NvbnRleHRfcGlu KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSk7Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ludGVsX2NvbnRleHRfcGluKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiAgIHsKPiAtCUdFTV9CVUdfT04oIWNlLT5waW5fY291 bnQpOwo+IC0JY2UtPnBpbl9jb3VudCsrOwo+ICsJR0VNX0JVR19PTighaW50ZWxfY29udGV4dF9p c19waW5uZWQoY2UpKTsKPiArCWF0b21pY19pbmMoJmNlLT5waW5fY291bnQpOwo+ICAgfQo+ICAg Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZSkKPiAtewo+IC0JR0VNX0JVR19PTighY2UtPnBpbl9jb3VudCk7Cj4gLQlpZiAo LS1jZS0+cGluX2NvdW50KQo+IC0JCXJldHVybjsKPiAtCj4gLQlHRU1fQlVHX09OKCFjZS0+b3Bz KTsKPiAtCWNlLT5vcHMtPnVucGluKGNlKTsKPiAtfQo+ICt2b2lkIGludGVsX2NvbnRleHRfdW5w aW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKTsKPiAgIAo+ICAgI2VuZGlmIC8qIF9fSU5URUxf Q09OVEVYVF9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29udGV4dF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dF90eXBl cy5oCj4gaW5kZXggODA0ZmE5M2RlODUzLi42ZGM5YjRiOTA2N2IgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dF90eXBlcy5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29udGV4dF90eXBlcy5oCj4gQEAgLTgsNiArOCw3IEBACj4gICAj ZGVmaW5lIF9fSU5URUxfQ09OVEVYVF9UWVBFU19fCj4gICAKPiAgICNpbmNsdWRlIDxsaW51eC9s aXN0Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3Ji dHJlZS5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gICAKPiBAQCAtMzgsMTQgKzM5 LDE5IEBAIHN0cnVjdCBpbnRlbF9jb250ZXh0IHsKPiAgIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqZ2VtX2NvbnRleHQ7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAg CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmFjdGl2ZTsKPiArCj4gICAJc3RydWN0IGxpc3RfaGVh ZCBhY3RpdmVfbGluazsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbF9saW5rOwo+ICAgCXN0 cnVjdCBsaXN0X2hlYWQgc2lnbmFsczsKPiArCj4gICAJc3RydWN0IGk5MTVfdm1hICpzdGF0ZTsK PiAgIAlzdHJ1Y3QgaW50ZWxfcmluZyAqcmluZzsKPiArCj4gICAJdTMyICpscmNfcmVnX3N0YXRl Owo+ICAgCXU2NCBscmNfZGVzYzsKPiAtCWludCBwaW5fY291bnQ7Cj4gKwo+ICsJYXRvbWljX3Qg cGluX2NvdW50Owo+ICsJc3RydWN0IG11dGV4IHBpbl9tdXRleDsgLyogZ3VhcmRzIHBpbm5pbmcg YW5kIGFzc29jaWF0ZWQgb24tZ3B1aW5nICovCj4gICAKPiAgIAkvKioKPiAgIAkgKiBhY3RpdmVf dHJhY2tlcjogQWN0aXZlIHRyYWNrZXIgZm9yIHRoZSBleHRlcm5hbCBycSBhY3Rpdml0eQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggZjcxMzRkNjUwMTg3Li43YjkzOGVhZmY5YzUg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0xMjQ0LDcgKzEyNDQsNyBAQCBz dGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19jb250ZXh0X2Zpbmkoc3RydWN0IGludGVsX2NvbnRleHQg KmNlKQo+ICAgCj4gICBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF9kZXN0cm95KHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjZSkKPiAgIHsKPiAtCUdFTV9CVUdfT04oY2UtPnBpbl9jb3VudCk7 Cj4gKwlHRU1fQlVHX09OKGludGVsX2NvbnRleHRfaXNfcGlubmVkKGNlKSk7Cj4gICAKPiAgIAlp ZiAoY2UtPnN0YXRlKQo+ICAgCQlfX2V4ZWNsaXN0c19jb250ZXh0X2ZpbmkoY2UpOwo+IEBAIC0x NDgxLDcgKzE0ODEsNyBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19yZXF1ZXN0X2FsbG9jKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gICB7Cj4gICAJaW50IHJldDsKPiAgIAo+IC0JR0VN X0JVR19PTighcmVxdWVzdC0+aHdfY29udGV4dC0+cGluX2NvdW50KTsKPiArCUdFTV9CVUdfT04o IWludGVsX2NvbnRleHRfaXNfcGlubmVkKHJlcXVlc3QtPmh3X2NvbnRleHQpKTsKPiAgIAo+ICAg CS8qCj4gICAJICogRmx1c2ggZW5vdWdoIHNwYWNlIHRvIHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBv ZiB3YWl0aW5nIGFmdGVyCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ IGluZGV4IDAzNjU2MDIxZDA0Yy4uY2M0ZmNkODliODQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0xMzU3LDcgKzEzNTcsNyBAQCBzdGF0aWMgdm9p ZCBfX3JpbmdfY29udGV4dF9maW5pKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPiAgIAo+ICAg c3RhdGljIHZvaWQgcmluZ19jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGludGVsX2NvbnRleHQgKmNl KQo+ICAgewo+IC0JR0VNX0JVR19PTihjZS0+cGluX2NvdW50KTsKPiArCUdFTV9CVUdfT04oaW50 ZWxfY29udGV4dF9pc19waW5uZWQoY2UpKTsKPiAgIAo+ICAgCWlmIChjZS0+c3RhdGUpCj4gICAJ CV9fcmluZ19jb250ZXh0X2ZpbmkoY2UpOwo+IEBAIC0xOTE4LDcgKzE5MTgsNyBAQCBzdGF0aWMg aW50IHJpbmdfcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0KQo+ICAg ewo+ICAgCWludCByZXQ7Cj4gICAKPiAtCUdFTV9CVUdfT04oIXJlcXVlc3QtPmh3X2NvbnRleHQt PnBpbl9jb3VudCk7Cj4gKwlHRU1fQlVHX09OKCFpbnRlbF9jb250ZXh0X2lzX3Bpbm5lZChyZXF1 ZXN0LT5od19jb250ZXh0KSk7Cj4gICAJR0VNX0JVR19PTihyZXF1ZXN0LT50aW1lbGluZS0+aGFz X2luaXRpYWxfYnJlYWRjcnVtYik7Cj4gICAKPiAgIAkvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGRmMTM4MDQ5ODYx Mi4uYjZlZDA1NWFiZjVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTEwMjQsNyArMTAyNCw3IEBAIF9fc3NldV90 ZXN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAgCWlmIChyZXQpCj4gICAJCWdv dG8gb3V0X2NvbnRleHQ7Cj4gICAKPiAtCXJldCA9IF9faTkxNV9nZW1fY29udGV4dF9yZWNvbmZp Z3VyZV9zc2V1KGN0eCwgZW5naW5lLCBzc2V1KTsKPiArCXJldCA9IGk5MTVfZ2VtX2NvbnRleHRf cmVjb25maWd1cmVfc3NldShjdHgsIGVuZ2luZSwgc3NldSk7Cj4gICAJaWYgKHJldCkKPiAgIAkJ Z290byBvdXRfc3BpbjsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvbW9ja19lbmdpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9t b2NrX2VuZ2luZS5jCj4gaW5kZXggOTlkNzQ2MzIxOGQwLi5mNmQxMjBlMDVlZTQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZW5naW5lLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19lbmdpbmUuYwo+IEBAIC0xMzEs NyArMTMxLDcgQEAgc3RhdGljIHZvaWQgbW9ja19jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZSkKPiAgIAo+ICAgc3RhdGljIHZvaWQgbW9ja19jb250ZXh0X2Rlc3Ryb3koc3Ry dWN0IGludGVsX2NvbnRleHQgKmNlKQo+ICAgewo+IC0JR0VNX0JVR19PTihjZS0+cGluX2NvdW50 KTsKPiArCUdFTV9CVUdfT04oaW50ZWxfY29udGV4dF9pc19waW5uZWQoY2UpKTsKPiAgIAo+ICAg CWlmIChjZS0+cmluZykKPiAgIAkJbW9ja19yaW5nX2ZyZWUoY2UtPnJpbmcpOwo+IAoKUmV2aWV3 ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+CgpSZWdhcmRz LAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==