From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/8] drm/i915/huc: Add HuC fw loading support Date: Fri, 16 Dec 2016 16:40:47 +0000 Message-ID: References: <1481840990-31191-1-git-send-email-anusha.srivatsa@intel.com> <1481840990-31191-4-git-send-email-anusha.srivatsa@intel.com> <7db31d87-955d-7180-e2e8-8b8a526642e1@linux.intel.com> <20161216162911.GF2257@ahiler-desk.igk.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id BE4066EC8E for ; Fri, 16 Dec 2016 16:40:53 +0000 (UTC) In-Reply-To: <20161216162911.GF2257@ahiler-desk.igk.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Arkadiusz Hiler Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE2LzEyLzIwMTYgMTY6MjksIEFya2FkaXVzeiBIaWxlciB3cm90ZToKPiBPbiBGcmksIERl YyAxNiwgMjAxNiBhdCAwNDoxMzoxNFBNICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4K Pj4gT24gMTUvMTIvMjAxNiAyMjoyOSwgYW51c2hhc3Igd3JvdGU6Cj4+PiBGcm9tOiBBbnVzaGEg U3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4+Pgo+Pj4gVGhlIEh1QyBsb2Fk aW5nIHByb2Nlc3MgaXMgc2ltaWxhciB0byBHdUMuIFRoZSBpbnRlbF91Y19md19mZXRjaCgpCj4+ PiBpcyB1c2VkIGZvciBib3RoIGNhc2VzLgo+Pj4KPj4+IEh1QyBsb2FkaW5nIG5lZWRzIHRvIGJl IGJlZm9yZSBHdUMgbG9hZGluZy4gVGhlIFdPUENNIHNldHRpbmcgbXVzdAo+Pj4gYmUgZG9uZSBl YXJseSBiZWZvcmUgbG9hZGluZyBhbnkgb2YgdGhlbS4KPj4+Cj4+PiB2MjogcmViYXNlZCBvbi10 b3Agb2YgZHJtLWludGVsLW5pZ2h0bHkuCj4+PiAgICAgcmVtb3ZlZCBpZihIQVNfR1VDKCkpIGJl Zm9yZSB0aGUgZ3VjIGNhbGwuIChELkdvcmRvbikKPj4+ICAgICB1cGRhdGUgaHVjX3ZlcnNpb24g bnVtYmVyIG9mIGZvcm1hdC4KPj4+IHYzOiByZWJhc2VkIHRvIGRybS1pbnRlbC1uaWdodGx5LCBj aGFuZ2VkIHRoZSBmaWxlIG5hbWUgZm9ybWF0IHRvCj4+PiAgICAgbWF0Y2ggdGhlIG9uZSBpbiB0 aGUgaHVjIHBhY2thZ2UuCj4+PiAgICAgQ2hhbmdlZCBkZXYtPmRldl9wcml2YXRlIHRvIHRvX2k5 MTUoKQo+Pj4gdjQ6IG1vdmVkIGZ1bmN0aW9uIGJhY2sgdG8gd2hlcmUgaXQgd2FzLgo+Pj4gICAg IGNoYW5nZSB3YWl0X2Zvcl9hdG9taWMgdG8gd2FpdF9mb3IuCj4+PiB2NTogcmViYXNlZCArIGNv bW1lbnQgY2hhbmdlcy4KPj4+IHY3OiByZWJhc2VkLgo+Pj4gdjg6IHJlYmFzZWQuCj4+PiB2OTog cmViYXNlZC4gQ2hhbmdlZCB0aGUgeWVhciBpbiB0aGUgY29weXJpZ2h0IG1lc3NhZ2UgdG8gcmVm bGVjdAo+Pj4gdGhlIHJpZ2h0IHllYXIuQ29ycmVjdCB0aGUgY29tbWVudHMscmVtb3ZlIHRoZSB1 bndhbnRlZCBXQVJOIG1lc3NhZ2UsCj4+PiByZXBsYWNlIGRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlKCkgd2l0aCBpOTE1X2dlbV9vYmplY3RfcHV0KCkuTWFrZSB0aGUKPj4+IHByb3RvdHlwZXMg aW4gaW50ZWxfaHVjLmggbm9uLWV4dGVybi4KPj4+IHYxMDogcmViYXNlZC4gVXBkYXRlIHRoZSBm aWxlIGNvbnN0cnVjdGlvbiBkb25lIGJ5IEh1Qy4gSXQgaXMgc2ltaWxhciB0bwo+Pj4gR3VDLkFk b3B0ZWQgdGhlIGFwcHJvYWNoIHVzZWQgaW4tCj4+PiBodHRwczovL3BhdGNod29yay5mcmVlZGVz a3RvcC5vcmcvcGF0Y2gvMTA0MzU1LyA8VHZydGtvIFVyc3VsaW4+Cj4+PiB2MTE6IEZpeCB3YXJu aW5ncyByZW1vdmUgb2xkIGRlY2xhcmF0aW9uCj4+PiB2MTI6IENoYW5nZSBkZXYgdG8gZGV2X3By aXYgaW4gbWFjcm8gZGVmaW5pdGlvbi4KPj4+IENvcnJlY3RlZCBjb21tZW50cy4KPj4+IHYxMzog cmViYXNlZC4KPj4+IHYxNDogcmViYXNlZCBvbiB0b3Agb2YgZHJtLXRpcAo+Pj4gdjE1OiByZWJh c2VkLiBVcGRhdGVkIGZ1bmN0aW9ucyBpbnRlbF9odWNfbG9hZCgpLGludGVsX2h1Y19pbml0KCkg YW5kCj4+PiBpbnRlbF91Y19md19mZXRjaCgpIHRvIGFjY2VwdCBkZXZfcHJpdiBpbnN0ZWFkIG9m IGRldi4gTW92ZWQgY29udGVudHMKPj4+IG9mIGludGVsX2h1Yy5oIHRvIGludGVsX3VjLmgKPj4+ IHYxNjogY2hhbmdlIFNLTF9GV18gdG8gU0tMX0hVQ19GV18uIEFkZCBpbnRlbF8gcHJlZml4IHRv IGd1Y193b3BjbV9zaXplKCkuCj4+PiBSZW1vdmUgdW53YW50ZWQgY2hlY2tzIGluIGludGVsX3Vj LmguIFJlbmFtZSBodWNfZncgaW4gc3RydWN0IGludGVsX2h1YyB0bwo+Pj4gc2ltcGx5IGZ3IHRv IGF2b2lkIHJlZHVuZGVuY3kuCj4+Pgo+Pj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+Cj4+PiBUZXN0ZWQtYnk6IFhpYW5nIEhhaWhhbyA8aGFpaGFvLnhpYW5n QGludGVsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNy aXZhdHNhQGludGVsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50 ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogUGV0ZXIgQW50b2luZSA8cGV0ZXIuYW50b2luZUBp bnRlbC5jb20+Cj4+PiAtLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAg ICAgICAgfCAgIDEgKwo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAg ICB8ICAgNCArLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8 ICAgMyArLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oICAgICB8ICAg MyArCj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIHwgIDExICst Cj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xvYWRlci5jIHwgMjY0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfdWMuaCAgICAgICAgIHwgIDE4ICsrKwo+Pj4gIDcgZmlsZXMgY2hhbmdlZCwgMjk3IGluc2Vy dGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2h1Y19sb2FkZXIuYwo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl Cj4+PiBpbmRleCA1MTk2NTA5Li40NWFlMTI0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl Cj4+PiBAQCAtNTcsNiArNTcsNyBAQCBpOTE1LXkgKz0gaTkxNV9jbWRfcGFyc2VyLm8gXAo+Pj4g ICMgZ2VuZXJhbC1wdXJwb3NlIG1pY3JvY29udHJvbGxlciAoR3VDKSBzdXBwb3J0Cj4+PiAgaTkx NS15ICs9IGludGVsX3VjLm8gXAo+Pj4gIAkgIGludGVsX2d1Y19sb2FkZXIubyBcCj4+PiArCSAg aW50ZWxfaHVjX2xvYWRlci5vIFwKPj4+ICAJICBpOTE1X2d1Y19zdWJtaXNzaW9uLm8KPj4+Cj4+ PiAgIyBhdXRvZ2VuZXJhdGVkIG51bGwgcmVuZGVyIHN0YXRlCj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKPj4+IGluZGV4IDY0Mjg1ODguLjg1YTQ3YzIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4+PiBAQCAtNjAwLDYgKzYwMCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2FkX21v ZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4gIAlpZiAocmV0KQo+Pj4gIAkJ Z290byBjbGVhbnVwX2lycTsKPj4+Cj4+PiArCWludGVsX2h1Y19pbml0KGRldl9wcml2KTsKPj4+ ICAJaW50ZWxfZ3VjX2luaXQoZGV2X3ByaXYpOwo+Pj4KPj4+ICAJcmV0ID0gaTkxNV9nZW1faW5p dChkZXZfcHJpdik7Cj4+PiBAQCAtNjI3LDYgKzYyOCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sb2Fk X21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4gIAkJRFJNX0VSUk9SKCJm YWlsZWQgdG8gaWRsZSBoYXJkd2FyZTsgY29udGludWluZyB0byB1bmxvYWQhXG4iKTsKPj4+ICAJ aTkxNV9nZW1fZmluaShkZXZfcHJpdik7Cj4+PiAgY2xlYW51cF9pcnE6Cj4+PiArCWludGVsX2h1 Y19maW5pKGRldik7Cj4+PiAgCWludGVsX2d1Y19maW5pKGRldl9wcml2KTsKPj4+ICAJZHJtX2ly cV91bmluc3RhbGwoZGV2KTsKPj4+ICAJaW50ZWxfdGVhcmRvd25fZ21idXMoZGV2X3ByaXYpOwo+ Pj4gQEAgLTEzMTMsNyArMTMxNSw3IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4+Pgo+Pj4gIAkvKiBGbHVzaCBhbnkgb3V0c3RhbmRpbmcgdW5waW5f d29yay4gKi8KPj4+ICAJZHJhaW5fd29ya3F1ZXVlKGRldl9wcml2LT53cSk7Cj4+PiAtCj4+PiAr CWludGVsX2h1Y19maW5pKGRldik7Cj4+PiAgCWludGVsX2d1Y19maW5pKGRldl9wcml2KTsKPj4+ ICAJaTkxNV9nZW1fZmluaShkZXZfcHJpdik7Cj4+PiAgCWludGVsX2ZiY19jbGVhbnVwX2NmYihk ZXZfcHJpdik7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IGluZGV4IDQxOTlkMjYuLmJk NWYyMzUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+PiBAQCAtMjEzNCw2ICsy MTM0LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+Pj4KPj4+ICAJc3RydWN0IGludGVs X2d2dCAqZ3Z0Owo+Pj4KPj4+ICsJc3RydWN0IGludGVsX2h1YyBodWM7Cj4+PiAgCXN0cnVjdCBp bnRlbF9ndWMgZ3VjOwo+Pj4KPj4+ICAJc3RydWN0IGludGVsX2NzciBjc3I7Cj4+PiBAQCAtMjkw OCw3ICsyOTA5LDcgQEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4+PiAgI2RlZmluZSBIQVNfR1VDKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5m by5oYXNfZ3VjKQo+Pj4gICNkZWZpbmUgSEFTX0dVQ19VQ09ERShkZXZfcHJpdikJKEhBU19HVUMo ZGV2X3ByaXYpKQo+Pj4gICNkZWZpbmUgSEFTX0dVQ19TQ0hFRChkZXZfcHJpdikJKEhBU19HVUMo ZGV2X3ByaXYpKQo+Pj4gLQo+Pj4gKyNkZWZpbmUgSEFTX0hVQ19VQ09ERShkZXZfcHJpdikJKEhB U19HVUMoZGV2X3ByaXYpKQo+Pj4gICNkZWZpbmUgSEFTX1JFU09VUkNFX1NUUkVBTUVSKGRldl9w cml2KSAoKGRldl9wcml2KS0+aW5mby5oYXNfcmVzb3VyY2Vfc3RyZWFtZXIpCj4+Pgo+Pj4gICNk ZWZpbmUgSEFTX1BPT0xFRF9FVShkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaGFzX3Bvb2xl ZF9ldSkKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCj4+PiBpbmRleCA1ZTYzOGZj Li5mOTgyOWY2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNf cmVnLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCj4+PiBA QCAtNjEsOSArNjEsMTIgQEAKPj4+ICAjZGVmaW5lICAgRE1BX0FERFJFU1NfU1BBQ0VfR1RUCQkg ICg4IDw8IDE2KQo+Pj4gICNkZWZpbmUgRE1BX0NPUFlfU0laRQkJCV9NTUlPKDB4YzMxMCkKPj4+ ICAjZGVmaW5lIERNQV9DVFJMCQkJX01NSU8oMHhjMzE0KQo+Pj4gKyNkZWZpbmUgICBIVUNfVUtF Uk5FTAkJCSAgKDE8PDkpCj4+PiAgI2RlZmluZSAgIFVPU19NT1ZFCQkJICAoMTw8NCkKPj4+ICAj ZGVmaW5lICAgU1RBUlRfRE1BCQkJICAoMTw8MCkKPj4+ICAjZGVmaW5lIERNQV9HVUNfV09QQ01f T0ZGU0VUCQlfTU1JTygweGMzNDApCj4+PiArI2RlZmluZSAgIEhVQ19MT0FESU5HX0FHRU5UX1ZD UgkJICAoMDw8MSkKPj4+ICsjZGVmaW5lICAgSFVDX0xPQURJTkdfQUdFTlRfR1VDCQkgICgxPDwx KQo+Pj4gICNkZWZpbmUgICBHVUNfV09QQ01fT0ZGU0VUX1ZBTFVFCSAgMHg4MDAwMAkvKiA1MTJL QiAqLwo+Pj4gICNkZWZpbmUgR1VDX01BWF9JRExFX0NPVU5UCQlfTU1JTygweEMzRTQpCj4+Pgo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+Pj4gaW5kZXggMDllNDYz Yi4uMjI1NzQ5NSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19sb2FkZXIuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRl ci5jCj4+PiBAQCAtMzA5LDggKzMwOSw4IEBAIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1h KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAJSTkxNV9XUklURShETUFf QUREUl8xX0hJR0gsIERNQV9BRERSRVNTX1NQQUNFX1dPUENNKTsKPj4+Cj4+PiAgCS8qIEZpbmFs bHkgc3RhcnQgdGhlIERNQSAqLwo+Pj4gLQlJOTE1X1dSSVRFKERNQV9DVFJMLCBfTUFTS0VEX0JJ VF9FTkFCTEUoVU9TX01PVkUgfCBTVEFSVF9ETUEpKTsKPj4+IC0KPj4+ICsJSTkxNV9XUklURShE TUFfQ1RSTCwgX01BU0tFRF9CSVRfRU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSB8Cj4+PiAr CQlfTUFTS0VEX0JJVF9ESVNBQkxFKEhVQ19VS0VSTkVMKSk7Cj4+PiAgCS8qCj4+PiAgCSAqIFdh aXQgZm9yIHRoZSBETUEgdG8gY29tcGxldGUgJiB0aGUgR3VDIHRvIHN0YXJ0IHVwLgo+Pj4gIAkg KiBOQjogRG9jcyByZWNvbW1lbmQgbm90IHVzaW5nIHRoZSBpbnRlcnJ1cHQgZm9yIGNvbXBsZXRp b24uCj4+PiBAQCAtMzM0LDcgKzMzNCw3IEBAIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXJfZG1h KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAJcmV0dXJuIHJldDsKPj4+ ICB9Cj4+Pgo+Pj4gLXN0YXRpYyB1MzIgZ3VjX3dvcGNtX3NpemUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+Pj4gK3UzMiBpbnRlbF9ndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+PiAgewo+Pj4gIAl1MzIgd29wY21fc2l6ZSA9IEdV Q19XT1BDTV9UT1A7Cj4+Pgo+Pj4gQEAgLTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgaW50IGd1Y191 Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4+ICAJaW50ZWxf dW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwo+Pj4KPj4+ICAJ LyogaW5pdCBXT1BDTSAqLwo+Pj4gLQlJOTE1X1dSSVRFKEdVQ19XT1BDTV9TSVpFLCBndWNfd29w Y21fc2l6ZShkZXZfcHJpdikpOwo+Pj4gKwlJOTE1X1dSSVRFKEdVQ19XT1BDTV9TSVpFLCBpbnRl bF9ndWNfd29wY21fc2l6ZShkZXZfcHJpdikpOwo+Pj4gIAlJOTE1X1dSSVRFKERNQV9HVUNfV09Q Q01fT0ZGU0VULCBHVUNfV09QQ01fT0ZGU0VUX1ZBTFVFKTsKPj4+Cj4+PiAgCS8qIEVuYWJsZSBN SUEgY2FjaGluZy4gR3VDIGNsb2NrIGdhdGluZyBpcyBkaXNhYmxlZC4gKi8KPj4+IEBAIC01MTEs NiArNTExLDcgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4+PiAgCQlpZiAoZXJyKQo+Pj4gIAkJCWdvdG8gZmFpbDsKPj4+Cj4+PiArCQlp bnRlbF9odWNfbG9hZChkZXZfcHJpdik7Cj4+PiAgCQllcnIgPSBndWNfdWNvZGVfeGZlcihkZXZf cHJpdik7Cj4+Cj4+IE91dCBvZiBjdXJpb3NpdHkgLSBob3cgY29tZSBpdCBpcyBPSyB0byBsb2Fk IEh1QyBiZWZvcmUgdGhlIEd1QywgaWYgdGhlIEh1Qwo+PiBuZWVkcyB0aGUgR3VDPwo+Cj4gWW91 IGp1c3QgZG8gdGhlIERNQSB0cmFuc2ZlciBvZiB0aGUgY29kZSB0byB0aGUgbWVtb3J5IGFuZCBz b21lIGluaXRpYWwKPiBzZXR1cCwgYnkgYW55IG1lYW5zIGl0J3Mgbm90IHJlYWR5IHlldC4KPgo+ IFRoZW4sIHlvdSBoYXZlIHRvIGxvYWQgR3VDLCB3aGljaCBwaWNrcyB1cCB0aGF0IEh1QyBpcyB0 aGVyZSBhbmQgaGFuZGxlcwo+IGl0IHByZXNlbmNlIGludGVybmFsbHkgKGhhcyB0byBkbyB3aXRo IHRoZSBjaGVja3N1bXMgYW5kIHNpZ25pbmcKPiB2ZXJpZmljYXRpb24pLgo+Cj4gRnJvbSB3aGF0 IEkndmUgc2VlbiB0aGlzIG11c3QgYmUgdGhlIGV4YWN0IG9yZGVyaW5nLgo+Cj4gVGhlbiwgd2hl biB5b3UgaGF2ZSBib3RoIGluIHBsYWNlLCB5b3UgY2FuIHRyaWdnZXIgYXV0aGVudGljYXRpb24g b2YKPiBIdUMuIE9ubHkgYWZ0ZXIgR3VDIGhhcyBhdXRoZWQgSHVDIHN1Y2Nlc3NmdWxseSBpdCdz IHJlYWR5IC0geW91IGNhbgo+IHN0YXJ0IGlzc3VpbmcgSFVDXyogQ1MgaW5zdHJ1Y3Rpb25zLgoK Q29vbCwgdGhhbmtzIGZvciBleHBsYWluaW5nIGl0LgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==